import type { ExtensionAPI, ExtensionContext } from "@earendil-works/pi-coding-agent"; import type { FabricState } from "../fabric-state.js"; import type { FabricProgramRunReplyV1, FabricProgramRunSnapshotV1 } from "../protocol.js"; export declare const PROGRAM_RUN_MESSAGE_TYPE = "pi-fabric-program-run"; export interface ProgramHostDeps { state: Pick; pi: Pick; } interface HostProgramRunBase { input?: unknown; signal?: AbortSignal; } /** A saved program, chosen by name or digest. */ export interface HostSavedProgramRunRequest extends HostProgramRunBase { ref: string; requirePromoted?: boolean; } /** Caller-supplied TypeScript. Fabric computes its SHA-256 for the run's identity. */ export interface HostCodeProgramRunRequest extends HostProgramRunBase { code: string; } export type HostProgramRunRequest = HostSavedProgramRunRequest | HostCodeProgramRunRequest; export declare const runHostProgram: (deps: ProgramHostDeps, context: ExtensionContext, request: HostProgramRunRequest) => Promise; /** * `pi-fabric:program:run:v1`; replies exactly once, never throws. It reads only * the snapshot the listener took at the event boundary, never the caller's object. */ export declare const handleFabricProgramRunEvent: (request: FabricProgramRunSnapshotV1, deps: ProgramHostDeps & { context: ExtensionContext | undefined; }) => Promise; /** `/fabric programs [list|promote |retire ]` and `/fabric run [json input]`. */ export declare const runFabricProgramsCommand: (deps: ProgramHostDeps, context: ExtensionContext, command: "programs" | "run", argumentsText: string) => Promise; export {}; //# sourceMappingURL=host.d.ts.map