eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
46 lines (45 loc) • 2.7 kB
TypeScript
import type { SessionAuth, SessionParent, SessionTurn } from "#context/keys.js";
import type { SandboxProviderRuntime } from "#shared/sandbox-provider.js";
import type { RuntimeSandboxSession, RuntimeSandboxSessionFor, SandboxSession } from "#shared/sandbox-session.js";
declare const ENVIRONMENT: unique symbol;
declare const PROVIDER_RUNTIME: unique symbol;
declare const CONFIGURATION_HASH: unique symbol;
export interface SandboxSelectorContext {
readonly session: {
readonly auth: SessionAuth;
readonly id: string;
readonly parent?: SessionParent;
readonly turn: SessionTurn;
};
}
export type SandboxSelector = (context: SandboxSelectorContext) => Promise<RuntimeSandboxSession> | RuntimeSandboxSession;
export type SandboxOpenArguments<Options> = Options extends undefined ? [] : Record<never, never> extends Options ? [options?: Options] : [options: Options];
export interface SandboxEnvironmentIdentity {
readonly [CONFIGURATION_HASH]: string;
readonly [ENVIRONMENT]: true;
readonly [PROVIDER_RUNTIME]: SandboxProviderRuntime;
readonly provider: string;
}
export interface SandboxEnvironment<Options extends object | undefined = object, Session extends SandboxSession = SandboxSession> extends SandboxEnvironmentIdentity {
open(...args: SandboxOpenArguments<Options>): Promise<RuntimeSandboxSessionFor<Session>>;
}
interface ConstructorRuntime {
open(input: {
readonly configurationHash: string;
readonly environment: object;
readonly environmentConfigurationHash: string;
readonly options: object | undefined;
readonly provider: SandboxProviderRuntime;
}): Promise<RuntimeSandboxSession>;
}
export declare function createSandboxEnvironment<Options extends object | undefined = object, Session extends SandboxSession = SandboxSession>(input: {
readonly configuration?: unknown;
readonly runtime: SandboxProviderRuntime;
}): SandboxEnvironment<Options, Session>;
export declare function getSandboxEnvironmentConfigurationHash(environment: SandboxEnvironmentIdentity): string;
export declare function getSandboxEnvironmentRuntime(environment: SandboxEnvironmentIdentity): SandboxProviderRuntime;
export declare function bindSandboxEnvironment(selector: SandboxSelector, environment: SandboxEnvironmentIdentity): SandboxSelector;
export declare function getBoundSandboxEnvironment(value: unknown): SandboxEnvironmentIdentity | undefined;
export declare function isSandboxEnvironment(value: unknown): value is SandboxEnvironmentIdentity;
export declare function runWithSandboxConstructorRuntime<T>(runtime: ConstructorRuntime, callback: () => Promise<T> | T): Promise<T>;
export {};