feat: consolidate sandbox configurations into a single object (#1154)

This commit is contained in:
Brandon Keiji
2025-06-18 10:01:00 -07:00
committed by GitHub
parent 30d1662128
commit 332512853e
9 changed files with 154 additions and 93 deletions

View File

@@ -5,7 +5,7 @@
*/
import { describe, it, expect, vi, beforeEach } from 'vitest';
import { Config, ConfigParameters } from './config.js';
import { Config, ConfigParameters, SandboxConfig } from './config.js';
import * as path from 'path';
import { setGeminiMdFilename as mockSetGeminiMdFilename } from '../tools/memoryTool.js';
import {
@@ -53,7 +53,10 @@ vi.mock('../telemetry/index.js', async (importOriginal) => {
describe('Server Config (config.ts)', () => {
const API_KEY = 'server-api-key';
const MODEL = 'gemini-pro';
const SANDBOX = false;
const SANDBOX: SandboxConfig = {
command: 'docker',
image: 'gemini-cli-sandbox',
};
const TARGET_DIR = '/path/to/target';
const DEBUG_MODE = false;
const QUESTION = 'test question';

View File

@@ -73,11 +73,16 @@ export class MCPServerConfig {
) {}
}
export interface SandboxConfig {
command: 'docker' | 'podman' | 'sandbox-exec';
image: string;
}
export interface ConfigParameters {
sessionId: string;
contentGeneratorConfig: ContentGeneratorConfig;
embeddingModel?: string;
sandbox?: boolean | string;
sandbox?: SandboxConfig;
targetDir: string;
debugMode: boolean;
question?: string;
@@ -108,7 +113,7 @@ export class Config {
private readonly sessionId: string;
private readonly contentGeneratorConfig: ContentGeneratorConfig;
private readonly embeddingModel: string;
private readonly sandbox: boolean | string | undefined;
private readonly sandbox: SandboxConfig | undefined;
private readonly targetDir: string;
private readonly debugMode: boolean;
private readonly question: string | undefined;
@@ -198,7 +203,7 @@ export class Config {
return this.embeddingModel;
}
getSandbox(): boolean | string | undefined {
getSandbox(): SandboxConfig | undefined {
return this.sandbox;
}