import { type CodexAppServerRunOptions, type CodexAppServerRunResult } from "./codex-app-server.js"; import { type ActorCapabilities, type ActorPersonaRef, type ActorTrace } from "./actor-contract.js"; import { type TerminalAgentSessionOptions, type TerminalAgentSessionResult } from "./terminal-agent-actor.js"; import { type PiSessionResult } from "./pi-agent-core.js"; import { type ClaudeAgentSessionOptions, type ClaudeAgentSessionResult, type ClaudeSessionResult } from "./claude-agent-sdk.js"; import { type CuaActorSessionOptions } from "./computer-use-actor.js"; import type { CuaLoopResult } from "./computer-use.js"; import { type ScriptedBrowserSessionOptions, type ScriptedBrowserSessionResult } from "./scripted-browser-actor.js"; export type ActorId = "codex-app-server" | "pi-agent-core" | "claude-agent-sdk" | "openai-computer-use" | "local-agent" | "scripted-browser" | "codex-exec"; interface ActorDescriptorBase { id: ActorId; label: string; capabilities: ActorCapabilities; } export interface CodexActorDescriptor extends ActorDescriptorBase { id: "codex-app-server"; runSession(options: CodexAppServerRunOptions): Promise; toActorTrace(result: CodexAppServerRunResult, persona: ActorPersonaRef): ActorTrace; } export interface PiActorDescriptor extends ActorDescriptorBase { id: "pi-agent-core"; toActorTrace(session: PiSessionResult, persona: ActorPersonaRef): ActorTrace; } export interface ClaudeActorDescriptor extends ActorDescriptorBase { id: "claude-agent-sdk"; runSession(options: ClaudeAgentSessionOptions): Promise; toActorTrace(session: ClaudeSessionResult, persona: ActorPersonaRef): ActorTrace; } export interface CuaActorDescriptor extends ActorDescriptorBase { id: "openai-computer-use"; runSession(options: CuaActorSessionOptions): Promise; } export interface LocalAgentActorDescriptor extends ActorDescriptorBase { id: "local-agent"; runSession(options: CuaActorSessionOptions): Promise; } export interface ScriptedBrowserActorDescriptor extends ActorDescriptorBase { id: "scripted-browser"; runSession(options: ScriptedBrowserSessionOptions): Promise; } export interface TerminalActorDescriptor extends ActorDescriptorBase { id: "codex-exec"; runSession(options: TerminalAgentSessionOptions): Promise; } export type ActorDescriptor = CodexActorDescriptor | PiActorDescriptor | ClaudeActorDescriptor | CuaActorDescriptor | LocalAgentActorDescriptor | ScriptedBrowserActorDescriptor | TerminalActorDescriptor; /** * REGISTRY CONTRACT: an actor whose capabilities include the "computer-use" lane is a * CuaActorDescriptor — its runSession takes CuaActorSessionOptions and returns a CuaLoopResult. * Any future computer-use provider (e.g. stagehand-cua) must keep that session signature; this * guard is what lets the lab dispatch on capabilities rather than on hardcoded actor ids. */ export declare function isCuaActorDescriptor(descriptor: ActorDescriptor): descriptor is CuaActorDescriptor; /** * REGISTRY CONTRACT (mirror of isCuaActorDescriptor): an actor whose capabilities include the * "scripted-browser" lane IS a ScriptedBrowserActorDescriptor — runSession takes * ScriptedBrowserSessionOptions and returns ScriptedBrowserSessionResult (trace fully formed, * like the CUA shape — no separate toActorTrace). Any future scripted driver (e.g. a HAR * replayer) must keep this signature; it is what lets the lab dispatch on capabilities, not ids. */ export declare function isScriptedBrowserActorDescriptor(descriptor: ActorDescriptor): descriptor is ScriptedBrowserActorDescriptor; /** * REGISTRY CONTRACT (mirror of isCuaActorDescriptor / isScriptedBrowserActorDescriptor): an actor * whose capabilities include the "terminal" lane IS a TerminalActorDescriptor. This is the guard * the terminal-product lab uses for route selection and capability enforcement. The current * descriptor's direct runSession is intentionally unsupported; live execution is route-owned. * Any future terminal actor must declare keyPlacement honestly and integrate with that lifecycle. */ export declare function isTerminalActorDescriptor(descriptor: ActorDescriptor): descriptor is TerminalActorDescriptor; export declare const actorRegistry: Record; export declare function getActor(id: "codex-app-server"): CodexActorDescriptor; export declare function getActor(id: "pi-agent-core"): PiActorDescriptor; export declare function getActor(id: "claude-agent-sdk"): ClaudeActorDescriptor; export declare function getActor(id: "openai-computer-use"): CuaActorDescriptor; export declare function getActor(id: "scripted-browser"): ScriptedBrowserActorDescriptor; export declare function getActor(id: "codex-exec"): TerminalActorDescriptor; export declare function getActor(id: ActorId): ActorDescriptor; export {};