/** * Environment variable that opts an eval run out of Copilot config-home * isolation, running instead against the host's real `~/.copilot` (or ambient * `COPILOT_HOME`). Off by default — runs are hermetic unless this is set to `1`. */ export declare const USE_HOST_COPILOT_HOME_ENV = "EVALUATE_USE_HOST_COPILOT_HOME"; /** JSON settings payload materialized into a run-scoped Copilot config home. */ export declare const COPILOT_HOME_SETTINGS_JSON_ENV = "COPILOT_HOME_SETTINGS_JSON"; /** Read the settings key case-insensitively so behavior is uniform across platforms. */ export declare function readCopilotHomeSettingsJson(env: NodeJS.ProcessEnv): string | undefined; /** * Resolve the Copilot config home for an eval run. * * By default this returns a **fresh, empty** temporary directory so the spawned * Copilot runtime (`copilot --server`/headless) never reads the developer's * persisted `~/.copilot/settings.json`. That makes eval runs deterministically * hermetic against local machine state: persisted `/model` and `/subagents` * picker preferences (model, reasoning effort, context tier), permissions, MCP * config, disabled skills, hooks, and extensions cannot silently govern a run. * Anything an eval legitimately needs (model, skills, MCP servers) is passed * explicitly through the SDK session options, so an empty config home removes * only the *implicit* local state. * * Returns `undefined` (i.e. use the host config) when * {@link USE_HOST_COPILOT_HOME_ENV} is set to `"1"`. * * **Ownership:** when this returns a path, it has created a real temporary * directory on disk. The caller owns that directory and is responsible for * removing it when done (e.g. `rmSync(dir, { recursive: true, force: true })`); * `CopilotSdkExecutor` does this in `shutdown()`. Nothing is created when the * opt-out returns `undefined`. * * See microsoft/vally#655. * * @param env Environment to read the opt-out flag from. Defaults to `process.env`. * @param makeTempDir Factory for the isolated directory. Injectable for tests. */ export declare function createIsolatedCopilotHome(env?: NodeJS.ProcessEnv, makeTempDir?: () => string): string | undefined; /** * Create an isolated Copilot config home containing the supplied settings. * * The explicit settings payload always gets a fresh home, regardless of the * host-config opt-out, so an eval cannot silently run with different settings. */ export declare function createCopilotHomeFromSettingsJson(settingsJson: string, makeTempDir?: () => string): string; //# sourceMappingURL=copilot-home.d.ts.map