/** * Workspace facade — opens/lists/closes the host-side terminal session * that runs an agent for one task. `Workspace.name` is the task id; * callers key on it. Backend implementations live in their own files behind * the shared `Adapter` interface in `workspaceAdapter.ts`; this module * resolves and lazy-loads the selected one, caches it per config, and exposes * the `workspaces` API. */ import type { ResolvedConfig, WorkspaceKindSetting } from "./config.ts"; import { type HostCapabilities } from "./host.ts"; import { type OpenSpec, type WorkspaceAccessHint, type WorkspaceCloseResult, type WorkspaceInterruptResult, type WorkspaceKind, type WorkspaceProbe } from "./workspaceAdapter.ts"; export type { OpenSpec, Workspace, WorkspaceAccessHint, WorkspaceCloseResult, WorkspaceInterruptResult, WorkspaceKind, WorkspaceProbe, WorkspaceStatus, } from "./workspaceAdapter.ts"; export interface WorkspaceResolution { requested: WorkspaceKindSetting; resolved: WorkspaceKind; /** One-line explanation of why `resolved` was chosen. */ reason: string; } interface ResolveArguments { config: ResolvedConfig; host: HostCapabilities; } export declare function resolveWorkspaceKind(arguments_: ResolveArguments): WorkspaceResolution; declare function probeWorkspaces(config: ResolvedConfig, signal?: AbortSignal): Promise; declare function accessHintForWorkspace(config: ResolvedConfig, name: string, signal?: AbortSignal): Promise; declare function interruptWorkspace(config: ResolvedConfig, name: string, signal?: AbortSignal): Promise; export declare const workspaces: { open(config: ResolvedConfig, spec: OpenSpec, signal?: AbortSignal): Promise; probe: typeof probeWorkspaces; close(config: ResolvedConfig, name: string, signal?: AbortSignal): Promise; interrupt: typeof interruptWorkspace; accessHint: typeof accessHintForWorkspace; }; //# sourceMappingURL=workspaces.d.ts.map