@struktoai/mirage-core
Version:
A Unified Virtual Filesystem For AI Agents
35 lines • 1.82 kB
TypeScript
import type { RuntimeConfig } from '../config.ts';
import type { MountType } from '../types.ts';
/**
* How to reach the sandbox: the fields every provider has.
*
* This base carries only what all providers support; each provider
* extends it with its own fields (DockerConfig, DaytonaConfig,
* E2BConfig) and its own key list, so an option a provider cannot
* honor fails loud at construction. In yaml this is the runtime
* entry's `config` block, mirroring a mount's.
*/
export interface SandboxConfig extends RuntimeConfig {
/** Environment set in the sandbox. */
env?: Record<string, string>;
/**
* How the sandbox sees the workspace: `ssh` serves every prefix the
* session sees from the host over SFTP (the image needs sshfs), `fuse`
* leaves them to a mirage in the sandbox, `both` serves from the host
* what the sandbox does not mount itself. Unset serves nothing.
*/
mountType?: MountType;
}
/** A provider config with the shared collection fields always present. */
export type NormalizedSandboxConfig<C extends SandboxConfig = SandboxConfig> = C & Required<Pick<SandboxConfig, 'env'>>;
export declare const BASE_CONFIG_KEYS: readonly string[];
/** Fail loud on a `mountType` other than ssh, fuse or both; unset serves nothing. */
export declare function checkMountType(runtime: string, mountType: unknown): MountType | null;
/** Whether a configured id is a string with something in it. Mirrors Python's `nonblank`. */
export declare function nonblank(value: unknown): boolean;
/**
* Fail loud on a required id that is unset or blank, which would otherwise
* reach the provider as an empty name. Mirrors Python's `require_id`.
*/
export declare function requireId(runtime: string, name: string, value: unknown): void;
//# sourceMappingURL=config.d.ts.map