16 lines
1.3 KiB
TypeScript

export const UPSTREAM_COMMIT: string;
export type NativeTool = { name: string; description: string; inputSchema: object; readOnly: boolean };
export type NativeEvent = { type: string; sessionId?: string; traceId?: string; payload?: Record<string, unknown> };
export type NativeResult = NativeEvent & { sessionId: string; response: string; usage?: Record<string, number>; projection?: Record<string, unknown> };
export function verifyRuntime(runtimeDir: string): Promise<{ commit: string; sha256: string }>;
export function runNativeZcode(options: {
runId: string; workspaceKey?: string; attemptId?: string; stateDir: string; runtimeDir: string; nodePath: string;
modelId: string; apiType?: string; instructions: string; prompt: string; context?: unknown;
sessionId?: string; signal?: AbortSignal; timeoutMs?: number; tools: NativeTool[];
model: (body: Record<string, unknown>, path: string, signal: AbortSignal) => Promise<Response>;
execute: (name: string, input: Record<string, unknown>, callId: string, signal: AbortSignal) => Promise<Record<string, unknown>>;
formatToolError?: (error: unknown) => string;
onEvent?: (event: NativeEvent | NativeResult) => Promise<void>;
onSandbox?: (metadata: { kind: string; commit: string }) => Promise<void>;
}): Promise<NativeResult>;