@hachej/boring-agent 0.1.87 → 0.1.88

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,367 @@
1
+ import { z } from 'zod';
2
+
3
+ interface SessionStore {
4
+ list(ctx: SessionCtx, options?: SessionListOptions): Promise<SessionSummary[]>;
5
+ create(ctx: SessionCtx, init?: {
6
+ title?: string;
7
+ }): Promise<SessionSummary>;
8
+ load(ctx: SessionCtx, sessionId: string): Promise<SessionDetail>;
9
+ delete(ctx: SessionCtx, sessionId: string): Promise<void>;
10
+ }
11
+ interface SessionCtx {
12
+ workspaceId?: string;
13
+ userId?: string;
14
+ }
15
+ interface SessionListOptions {
16
+ limit?: number;
17
+ offset?: number;
18
+ includeId?: string;
19
+ }
20
+ interface SessionSummary {
21
+ id: string;
22
+ title: string;
23
+ createdAt: string;
24
+ updatedAt: string;
25
+ turnCount: number;
26
+ }
27
+ type SessionDetail = SessionSummary;
28
+
29
+ interface ToolUiMetadata {
30
+ /** Renderer key registered by the app shell, e.g. `pi-subagent`. */
31
+ rendererId?: string;
32
+ /** Optional grouping label for future tool timelines/summaries. */
33
+ displayGroup?: string;
34
+ /** Optional icon hint. Frontends decide whether/how to honor it. */
35
+ icon?: string;
36
+ /** Renderer-specific structured data. */
37
+ details?: unknown;
38
+ }
39
+ declare function isToolUiMetadata(value: unknown): value is ToolUiMetadata;
40
+ /**
41
+ * Extract structured UI metadata from a ToolResult-like output.
42
+ *
43
+ * Shape:
44
+ * output.details.ui = { rendererId, displayGroup, icon, details }
45
+ */
46
+ declare function extractToolUiMetadata(output: unknown): ToolUiMetadata | undefined;
47
+
48
+ type BoringChatMessageRole = 'user' | 'assistant' | 'system';
49
+ type BoringChatMessageStatus = 'pending' | 'streaming' | 'done' | 'aborted' | 'error';
50
+ type BoringChatReasoningState = 'streaming' | 'done';
51
+ type BoringChatToolState = 'input-streaming' | 'input-available' | 'output-available' | 'output-error' | 'aborted';
52
+ type BoringChatPart = {
53
+ type: 'text';
54
+ id?: string;
55
+ text: string;
56
+ } | {
57
+ type: 'reasoning';
58
+ id: string;
59
+ text: string;
60
+ state?: BoringChatReasoningState;
61
+ } | {
62
+ type: 'tool-call';
63
+ id: string;
64
+ toolName: string;
65
+ input?: unknown;
66
+ state: BoringChatToolState;
67
+ output?: unknown;
68
+ errorText?: string;
69
+ ui?: ToolUiMetadata;
70
+ } | {
71
+ type: 'file';
72
+ id?: string;
73
+ filename?: string;
74
+ mediaType?: string;
75
+ url?: string;
76
+ path?: string;
77
+ filesystem?: string;
78
+ } | {
79
+ type: 'notice';
80
+ id?: string;
81
+ level: 'info' | 'warning' | 'error';
82
+ text: string;
83
+ };
84
+ interface BoringChatMessage {
85
+ id: string;
86
+ role: BoringChatMessageRole;
87
+ status?: BoringChatMessageStatus;
88
+ parts: BoringChatPart[];
89
+ createdAt?: string;
90
+ clientNonce?: string;
91
+ clientSeq?: number;
92
+ piEntryId?: string;
93
+ turnId?: string;
94
+ }
95
+
96
+ declare const ErrorCode: z.ZodEnum<["UNAUTHORIZED", "MISSING_API_KEY", "INVALID_API_KEY", "OIDC_REFRESH_FAILED", "VERCEL_AUTH_FAILED", "CONFIG_INVALID", "PATH_ESCAPE", "PATH_ABSOLUTE", "PATH_NULL_BYTE", "PATH_SYMLINK_ESCAPE", "PATH_NOT_FOUND", "PATH_NOT_WRITABLE", "WORKSPACE_UNINITIALIZED", "WORKSPACE_NOT_READY", "AGENT_HOST_SCOPE_VIOLATION", "AGENT_RUNTIME_NOT_READY", "AGENT_BINDING_DISPOSED", "AGENT_CONTROL_RECEIPT_INVALID", "RUNTIME_PROVISIONING_FAILED", "RUNTIME_PROVISIONING_LOCKED", "BWRAP_UNAVAILABLE", "BWRAP_TIMEOUT", "OUTPUT_TRUNCATED", "SANDBOX_NOT_READY", "SANDBOX_EXPIRED", "VERCEL_API_ERROR", "REMOTE_WORKER_TIMEOUT", "REMOTE_WORKER_STREAM_CLOSED", "CIRCUIT_OPEN", "ABORTED", "PAYMENT_REQUIRED", "MODEL_BUDGET_EXCEEDED", "METERING_UNSUPPORTED_COMMAND", "SESSION_NOT_FOUND", "SESSION_LOCKED", "STREAM_BUFFER_EVICTED", "CURSOR_OUT_OF_RANGE", "BRIDGE_COMMAND_INVALID", "TOOL_NOT_FOUND", "TOOL_INVALID_INPUT", "TOOL_EXECUTION_ERROR", "MCP_AGENT_ARTIFACT_INVALID", "MCP_AGENT_ARTIFACT_TOO_LARGE", "MCP_AGENT_ARTIFACT_UNAVAILABLE", "PLUGIN_LOAD_FAILED", "PLUGIN_NAME_COLLISION", "PLUGIN_RUNTIME_REVISION_MISMATCH", "PLUGIN_RUNTIME_PRIVATE_FILE", "PLUGIN_RUNTIME_UNSAFE_IMPORT", "PLUGIN_RUNTIME_TRANSFORM_FAILED", "RUNTIME_PLUGIN_NOT_FOUND", "RUNTIME_PLUGIN_ROUTE_NOT_FOUND", "RUNTIME_PLUGIN_HANDLER_FAILED", "RUNTIME_PLUGIN_LOAD_FAILED", "RUNTIME_PLUGIN_RESPONSE_UNSUPPORTED", "PROVISIONING_LAYOUT_FAILED", "PROVISIONING_SKILLS_FAILED", "PROVISIONING_TEMPLATES_FAILED", "PROVISIONING_NODE_PREFLIGHT_FAILED", "PROVISIONING_NPM_INSTALL_FAILED", "PROVISIONING_UV_BOOTSTRAP_FAILED", "PROVISIONING_UV_INSTALL_FAILED", "PROVISIONING_ARTIFACT_FAILED", "AR1_SHARE_NOT_FOUND", "AR1_SHARE_TOMBSTONED", "ERR_NOT_IMPLEMENTED_UNTIL_T1", "INTERNAL_ERROR"]>;
97
+ type ErrorCode = z.infer<typeof ErrorCode>;
98
+ declare const ERROR_CODES: ["UNAUTHORIZED", "MISSING_API_KEY", "INVALID_API_KEY", "OIDC_REFRESH_FAILED", "VERCEL_AUTH_FAILED", "CONFIG_INVALID", "PATH_ESCAPE", "PATH_ABSOLUTE", "PATH_NULL_BYTE", "PATH_SYMLINK_ESCAPE", "PATH_NOT_FOUND", "PATH_NOT_WRITABLE", "WORKSPACE_UNINITIALIZED", "WORKSPACE_NOT_READY", "AGENT_HOST_SCOPE_VIOLATION", "AGENT_RUNTIME_NOT_READY", "AGENT_BINDING_DISPOSED", "AGENT_CONTROL_RECEIPT_INVALID", "RUNTIME_PROVISIONING_FAILED", "RUNTIME_PROVISIONING_LOCKED", "BWRAP_UNAVAILABLE", "BWRAP_TIMEOUT", "OUTPUT_TRUNCATED", "SANDBOX_NOT_READY", "SANDBOX_EXPIRED", "VERCEL_API_ERROR", "REMOTE_WORKER_TIMEOUT", "REMOTE_WORKER_STREAM_CLOSED", "CIRCUIT_OPEN", "ABORTED", "PAYMENT_REQUIRED", "MODEL_BUDGET_EXCEEDED", "METERING_UNSUPPORTED_COMMAND", "SESSION_NOT_FOUND", "SESSION_LOCKED", "STREAM_BUFFER_EVICTED", "CURSOR_OUT_OF_RANGE", "BRIDGE_COMMAND_INVALID", "TOOL_NOT_FOUND", "TOOL_INVALID_INPUT", "TOOL_EXECUTION_ERROR", "MCP_AGENT_ARTIFACT_INVALID", "MCP_AGENT_ARTIFACT_TOO_LARGE", "MCP_AGENT_ARTIFACT_UNAVAILABLE", "PLUGIN_LOAD_FAILED", "PLUGIN_NAME_COLLISION", "PLUGIN_RUNTIME_REVISION_MISMATCH", "PLUGIN_RUNTIME_PRIVATE_FILE", "PLUGIN_RUNTIME_UNSAFE_IMPORT", "PLUGIN_RUNTIME_TRANSFORM_FAILED", "RUNTIME_PLUGIN_NOT_FOUND", "RUNTIME_PLUGIN_ROUTE_NOT_FOUND", "RUNTIME_PLUGIN_HANDLER_FAILED", "RUNTIME_PLUGIN_LOAD_FAILED", "RUNTIME_PLUGIN_RESPONSE_UNSUPPORTED", "PROVISIONING_LAYOUT_FAILED", "PROVISIONING_SKILLS_FAILED", "PROVISIONING_TEMPLATES_FAILED", "PROVISIONING_NODE_PREFLIGHT_FAILED", "PROVISIONING_NPM_INSTALL_FAILED", "PROVISIONING_UV_BOOTSTRAP_FAILED", "PROVISIONING_UV_INSTALL_FAILED", "PROVISIONING_ARTIFACT_FAILED", "AR1_SHARE_NOT_FOUND", "AR1_SHARE_TOMBSTONED", "ERR_NOT_IMPLEMENTED_UNTIL_T1", "INTERNAL_ERROR"];
99
+ declare const AgentDefinitionErrorCode: z.ZodEnum<["AGENT_DEFINITION_INVALID", "AGENT_DEFINITION_UNSUPPORTED_FIELD"]>;
100
+ type AgentDefinitionErrorCode = z.infer<typeof AgentDefinitionErrorCode>;
101
+ declare const AgentDeploymentErrorCode: z.ZodEnum<["AGENT_DEPLOYMENT_INVALID", "AGENT_DEPLOYMENT_UNSUPPORTED_FIELD"]>;
102
+ type AgentDeploymentErrorCode = z.infer<typeof AgentDeploymentErrorCode>;
103
+ /**
104
+ * Refusal codes for the agent-consumption contract (AC1, Decision 22,
105
+ * issue #636). Scoped like {@link AgentDeploymentErrorCode} — canonical,
106
+ * but intentionally outside the public {@link ErrorCode} / {@link
107
+ * ERROR_CODES} registry (and `docs/ERROR_CODES.md`) until a runtime
108
+ * dispatcher actually surfaces these over an API boundary.
109
+ */
110
+ declare const AgentConsumptionErrorCode: z.ZodEnum<["AGENT_CONSUMPTION_INVALID_TRANSITION", "AGENT_CONSUMPTION_CYCLE_DETECTED", "AGENT_CONSUMPTION_DEPTH_EXCEEDED", "AGENT_CONSUMPTION_SCHEMA_MISMATCH", "AGENT_CONSUMPTION_LEGACY_ARTIFACT_REJECTED"]>;
111
+ type AgentConsumptionErrorCode = z.infer<typeof AgentConsumptionErrorCode>;
112
+ declare const ApiErrorPayloadSchema: z.ZodObject<{
113
+ code: z.ZodEnum<["UNAUTHORIZED", "MISSING_API_KEY", "INVALID_API_KEY", "OIDC_REFRESH_FAILED", "VERCEL_AUTH_FAILED", "CONFIG_INVALID", "PATH_ESCAPE", "PATH_ABSOLUTE", "PATH_NULL_BYTE", "PATH_SYMLINK_ESCAPE", "PATH_NOT_FOUND", "PATH_NOT_WRITABLE", "WORKSPACE_UNINITIALIZED", "WORKSPACE_NOT_READY", "AGENT_HOST_SCOPE_VIOLATION", "AGENT_RUNTIME_NOT_READY", "AGENT_BINDING_DISPOSED", "AGENT_CONTROL_RECEIPT_INVALID", "RUNTIME_PROVISIONING_FAILED", "RUNTIME_PROVISIONING_LOCKED", "BWRAP_UNAVAILABLE", "BWRAP_TIMEOUT", "OUTPUT_TRUNCATED", "SANDBOX_NOT_READY", "SANDBOX_EXPIRED", "VERCEL_API_ERROR", "REMOTE_WORKER_TIMEOUT", "REMOTE_WORKER_STREAM_CLOSED", "CIRCUIT_OPEN", "ABORTED", "PAYMENT_REQUIRED", "MODEL_BUDGET_EXCEEDED", "METERING_UNSUPPORTED_COMMAND", "SESSION_NOT_FOUND", "SESSION_LOCKED", "STREAM_BUFFER_EVICTED", "CURSOR_OUT_OF_RANGE", "BRIDGE_COMMAND_INVALID", "TOOL_NOT_FOUND", "TOOL_INVALID_INPUT", "TOOL_EXECUTION_ERROR", "MCP_AGENT_ARTIFACT_INVALID", "MCP_AGENT_ARTIFACT_TOO_LARGE", "MCP_AGENT_ARTIFACT_UNAVAILABLE", "PLUGIN_LOAD_FAILED", "PLUGIN_NAME_COLLISION", "PLUGIN_RUNTIME_REVISION_MISMATCH", "PLUGIN_RUNTIME_PRIVATE_FILE", "PLUGIN_RUNTIME_UNSAFE_IMPORT", "PLUGIN_RUNTIME_TRANSFORM_FAILED", "RUNTIME_PLUGIN_NOT_FOUND", "RUNTIME_PLUGIN_ROUTE_NOT_FOUND", "RUNTIME_PLUGIN_HANDLER_FAILED", "RUNTIME_PLUGIN_LOAD_FAILED", "RUNTIME_PLUGIN_RESPONSE_UNSUPPORTED", "PROVISIONING_LAYOUT_FAILED", "PROVISIONING_SKILLS_FAILED", "PROVISIONING_TEMPLATES_FAILED", "PROVISIONING_NODE_PREFLIGHT_FAILED", "PROVISIONING_NPM_INSTALL_FAILED", "PROVISIONING_UV_BOOTSTRAP_FAILED", "PROVISIONING_UV_INSTALL_FAILED", "PROVISIONING_ARTIFACT_FAILED", "AR1_SHARE_NOT_FOUND", "AR1_SHARE_TOMBSTONED", "ERR_NOT_IMPLEMENTED_UNTIL_T1", "INTERNAL_ERROR"]>;
114
+ message: z.ZodString;
115
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
116
+ }, "strip", z.ZodTypeAny, {
117
+ code: "UNAUTHORIZED" | "MISSING_API_KEY" | "INVALID_API_KEY" | "OIDC_REFRESH_FAILED" | "VERCEL_AUTH_FAILED" | "CONFIG_INVALID" | "PATH_ESCAPE" | "PATH_ABSOLUTE" | "PATH_NULL_BYTE" | "PATH_SYMLINK_ESCAPE" | "PATH_NOT_FOUND" | "PATH_NOT_WRITABLE" | "WORKSPACE_UNINITIALIZED" | "WORKSPACE_NOT_READY" | "AGENT_HOST_SCOPE_VIOLATION" | "AGENT_RUNTIME_NOT_READY" | "AGENT_BINDING_DISPOSED" | "AGENT_CONTROL_RECEIPT_INVALID" | "RUNTIME_PROVISIONING_FAILED" | "RUNTIME_PROVISIONING_LOCKED" | "BWRAP_UNAVAILABLE" | "BWRAP_TIMEOUT" | "OUTPUT_TRUNCATED" | "SANDBOX_NOT_READY" | "SANDBOX_EXPIRED" | "VERCEL_API_ERROR" | "REMOTE_WORKER_TIMEOUT" | "REMOTE_WORKER_STREAM_CLOSED" | "CIRCUIT_OPEN" | "ABORTED" | "PAYMENT_REQUIRED" | "MODEL_BUDGET_EXCEEDED" | "METERING_UNSUPPORTED_COMMAND" | "SESSION_NOT_FOUND" | "SESSION_LOCKED" | "STREAM_BUFFER_EVICTED" | "CURSOR_OUT_OF_RANGE" | "BRIDGE_COMMAND_INVALID" | "TOOL_NOT_FOUND" | "TOOL_INVALID_INPUT" | "TOOL_EXECUTION_ERROR" | "MCP_AGENT_ARTIFACT_INVALID" | "MCP_AGENT_ARTIFACT_TOO_LARGE" | "MCP_AGENT_ARTIFACT_UNAVAILABLE" | "PLUGIN_LOAD_FAILED" | "PLUGIN_NAME_COLLISION" | "PLUGIN_RUNTIME_REVISION_MISMATCH" | "PLUGIN_RUNTIME_PRIVATE_FILE" | "PLUGIN_RUNTIME_UNSAFE_IMPORT" | "PLUGIN_RUNTIME_TRANSFORM_FAILED" | "RUNTIME_PLUGIN_NOT_FOUND" | "RUNTIME_PLUGIN_ROUTE_NOT_FOUND" | "RUNTIME_PLUGIN_HANDLER_FAILED" | "RUNTIME_PLUGIN_LOAD_FAILED" | "RUNTIME_PLUGIN_RESPONSE_UNSUPPORTED" | "PROVISIONING_LAYOUT_FAILED" | "PROVISIONING_SKILLS_FAILED" | "PROVISIONING_TEMPLATES_FAILED" | "PROVISIONING_NODE_PREFLIGHT_FAILED" | "PROVISIONING_NPM_INSTALL_FAILED" | "PROVISIONING_UV_BOOTSTRAP_FAILED" | "PROVISIONING_UV_INSTALL_FAILED" | "PROVISIONING_ARTIFACT_FAILED" | "AR1_SHARE_NOT_FOUND" | "AR1_SHARE_TOMBSTONED" | "ERR_NOT_IMPLEMENTED_UNTIL_T1" | "INTERNAL_ERROR";
118
+ message: string;
119
+ details?: Record<string, unknown> | undefined;
120
+ }, {
121
+ code: "UNAUTHORIZED" | "MISSING_API_KEY" | "INVALID_API_KEY" | "OIDC_REFRESH_FAILED" | "VERCEL_AUTH_FAILED" | "CONFIG_INVALID" | "PATH_ESCAPE" | "PATH_ABSOLUTE" | "PATH_NULL_BYTE" | "PATH_SYMLINK_ESCAPE" | "PATH_NOT_FOUND" | "PATH_NOT_WRITABLE" | "WORKSPACE_UNINITIALIZED" | "WORKSPACE_NOT_READY" | "AGENT_HOST_SCOPE_VIOLATION" | "AGENT_RUNTIME_NOT_READY" | "AGENT_BINDING_DISPOSED" | "AGENT_CONTROL_RECEIPT_INVALID" | "RUNTIME_PROVISIONING_FAILED" | "RUNTIME_PROVISIONING_LOCKED" | "BWRAP_UNAVAILABLE" | "BWRAP_TIMEOUT" | "OUTPUT_TRUNCATED" | "SANDBOX_NOT_READY" | "SANDBOX_EXPIRED" | "VERCEL_API_ERROR" | "REMOTE_WORKER_TIMEOUT" | "REMOTE_WORKER_STREAM_CLOSED" | "CIRCUIT_OPEN" | "ABORTED" | "PAYMENT_REQUIRED" | "MODEL_BUDGET_EXCEEDED" | "METERING_UNSUPPORTED_COMMAND" | "SESSION_NOT_FOUND" | "SESSION_LOCKED" | "STREAM_BUFFER_EVICTED" | "CURSOR_OUT_OF_RANGE" | "BRIDGE_COMMAND_INVALID" | "TOOL_NOT_FOUND" | "TOOL_INVALID_INPUT" | "TOOL_EXECUTION_ERROR" | "MCP_AGENT_ARTIFACT_INVALID" | "MCP_AGENT_ARTIFACT_TOO_LARGE" | "MCP_AGENT_ARTIFACT_UNAVAILABLE" | "PLUGIN_LOAD_FAILED" | "PLUGIN_NAME_COLLISION" | "PLUGIN_RUNTIME_REVISION_MISMATCH" | "PLUGIN_RUNTIME_PRIVATE_FILE" | "PLUGIN_RUNTIME_UNSAFE_IMPORT" | "PLUGIN_RUNTIME_TRANSFORM_FAILED" | "RUNTIME_PLUGIN_NOT_FOUND" | "RUNTIME_PLUGIN_ROUTE_NOT_FOUND" | "RUNTIME_PLUGIN_HANDLER_FAILED" | "RUNTIME_PLUGIN_LOAD_FAILED" | "RUNTIME_PLUGIN_RESPONSE_UNSUPPORTED" | "PROVISIONING_LAYOUT_FAILED" | "PROVISIONING_SKILLS_FAILED" | "PROVISIONING_TEMPLATES_FAILED" | "PROVISIONING_NODE_PREFLIGHT_FAILED" | "PROVISIONING_NPM_INSTALL_FAILED" | "PROVISIONING_UV_BOOTSTRAP_FAILED" | "PROVISIONING_UV_INSTALL_FAILED" | "PROVISIONING_ARTIFACT_FAILED" | "AR1_SHARE_NOT_FOUND" | "AR1_SHARE_TOMBSTONED" | "ERR_NOT_IMPLEMENTED_UNTIL_T1" | "INTERNAL_ERROR";
122
+ message: string;
123
+ details?: Record<string, unknown> | undefined;
124
+ }>;
125
+ type ApiErrorPayload = z.infer<typeof ApiErrorPayloadSchema>;
126
+ declare const ApiErrorResponseSchema: z.ZodObject<{
127
+ error: z.ZodObject<{
128
+ code: z.ZodEnum<["UNAUTHORIZED", "MISSING_API_KEY", "INVALID_API_KEY", "OIDC_REFRESH_FAILED", "VERCEL_AUTH_FAILED", "CONFIG_INVALID", "PATH_ESCAPE", "PATH_ABSOLUTE", "PATH_NULL_BYTE", "PATH_SYMLINK_ESCAPE", "PATH_NOT_FOUND", "PATH_NOT_WRITABLE", "WORKSPACE_UNINITIALIZED", "WORKSPACE_NOT_READY", "AGENT_HOST_SCOPE_VIOLATION", "AGENT_RUNTIME_NOT_READY", "AGENT_BINDING_DISPOSED", "AGENT_CONTROL_RECEIPT_INVALID", "RUNTIME_PROVISIONING_FAILED", "RUNTIME_PROVISIONING_LOCKED", "BWRAP_UNAVAILABLE", "BWRAP_TIMEOUT", "OUTPUT_TRUNCATED", "SANDBOX_NOT_READY", "SANDBOX_EXPIRED", "VERCEL_API_ERROR", "REMOTE_WORKER_TIMEOUT", "REMOTE_WORKER_STREAM_CLOSED", "CIRCUIT_OPEN", "ABORTED", "PAYMENT_REQUIRED", "MODEL_BUDGET_EXCEEDED", "METERING_UNSUPPORTED_COMMAND", "SESSION_NOT_FOUND", "SESSION_LOCKED", "STREAM_BUFFER_EVICTED", "CURSOR_OUT_OF_RANGE", "BRIDGE_COMMAND_INVALID", "TOOL_NOT_FOUND", "TOOL_INVALID_INPUT", "TOOL_EXECUTION_ERROR", "MCP_AGENT_ARTIFACT_INVALID", "MCP_AGENT_ARTIFACT_TOO_LARGE", "MCP_AGENT_ARTIFACT_UNAVAILABLE", "PLUGIN_LOAD_FAILED", "PLUGIN_NAME_COLLISION", "PLUGIN_RUNTIME_REVISION_MISMATCH", "PLUGIN_RUNTIME_PRIVATE_FILE", "PLUGIN_RUNTIME_UNSAFE_IMPORT", "PLUGIN_RUNTIME_TRANSFORM_FAILED", "RUNTIME_PLUGIN_NOT_FOUND", "RUNTIME_PLUGIN_ROUTE_NOT_FOUND", "RUNTIME_PLUGIN_HANDLER_FAILED", "RUNTIME_PLUGIN_LOAD_FAILED", "RUNTIME_PLUGIN_RESPONSE_UNSUPPORTED", "PROVISIONING_LAYOUT_FAILED", "PROVISIONING_SKILLS_FAILED", "PROVISIONING_TEMPLATES_FAILED", "PROVISIONING_NODE_PREFLIGHT_FAILED", "PROVISIONING_NPM_INSTALL_FAILED", "PROVISIONING_UV_BOOTSTRAP_FAILED", "PROVISIONING_UV_INSTALL_FAILED", "PROVISIONING_ARTIFACT_FAILED", "AR1_SHARE_NOT_FOUND", "AR1_SHARE_TOMBSTONED", "ERR_NOT_IMPLEMENTED_UNTIL_T1", "INTERNAL_ERROR"]>;
129
+ message: z.ZodString;
130
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
131
+ }, "strip", z.ZodTypeAny, {
132
+ code: "UNAUTHORIZED" | "MISSING_API_KEY" | "INVALID_API_KEY" | "OIDC_REFRESH_FAILED" | "VERCEL_AUTH_FAILED" | "CONFIG_INVALID" | "PATH_ESCAPE" | "PATH_ABSOLUTE" | "PATH_NULL_BYTE" | "PATH_SYMLINK_ESCAPE" | "PATH_NOT_FOUND" | "PATH_NOT_WRITABLE" | "WORKSPACE_UNINITIALIZED" | "WORKSPACE_NOT_READY" | "AGENT_HOST_SCOPE_VIOLATION" | "AGENT_RUNTIME_NOT_READY" | "AGENT_BINDING_DISPOSED" | "AGENT_CONTROL_RECEIPT_INVALID" | "RUNTIME_PROVISIONING_FAILED" | "RUNTIME_PROVISIONING_LOCKED" | "BWRAP_UNAVAILABLE" | "BWRAP_TIMEOUT" | "OUTPUT_TRUNCATED" | "SANDBOX_NOT_READY" | "SANDBOX_EXPIRED" | "VERCEL_API_ERROR" | "REMOTE_WORKER_TIMEOUT" | "REMOTE_WORKER_STREAM_CLOSED" | "CIRCUIT_OPEN" | "ABORTED" | "PAYMENT_REQUIRED" | "MODEL_BUDGET_EXCEEDED" | "METERING_UNSUPPORTED_COMMAND" | "SESSION_NOT_FOUND" | "SESSION_LOCKED" | "STREAM_BUFFER_EVICTED" | "CURSOR_OUT_OF_RANGE" | "BRIDGE_COMMAND_INVALID" | "TOOL_NOT_FOUND" | "TOOL_INVALID_INPUT" | "TOOL_EXECUTION_ERROR" | "MCP_AGENT_ARTIFACT_INVALID" | "MCP_AGENT_ARTIFACT_TOO_LARGE" | "MCP_AGENT_ARTIFACT_UNAVAILABLE" | "PLUGIN_LOAD_FAILED" | "PLUGIN_NAME_COLLISION" | "PLUGIN_RUNTIME_REVISION_MISMATCH" | "PLUGIN_RUNTIME_PRIVATE_FILE" | "PLUGIN_RUNTIME_UNSAFE_IMPORT" | "PLUGIN_RUNTIME_TRANSFORM_FAILED" | "RUNTIME_PLUGIN_NOT_FOUND" | "RUNTIME_PLUGIN_ROUTE_NOT_FOUND" | "RUNTIME_PLUGIN_HANDLER_FAILED" | "RUNTIME_PLUGIN_LOAD_FAILED" | "RUNTIME_PLUGIN_RESPONSE_UNSUPPORTED" | "PROVISIONING_LAYOUT_FAILED" | "PROVISIONING_SKILLS_FAILED" | "PROVISIONING_TEMPLATES_FAILED" | "PROVISIONING_NODE_PREFLIGHT_FAILED" | "PROVISIONING_NPM_INSTALL_FAILED" | "PROVISIONING_UV_BOOTSTRAP_FAILED" | "PROVISIONING_UV_INSTALL_FAILED" | "PROVISIONING_ARTIFACT_FAILED" | "AR1_SHARE_NOT_FOUND" | "AR1_SHARE_TOMBSTONED" | "ERR_NOT_IMPLEMENTED_UNTIL_T1" | "INTERNAL_ERROR";
133
+ message: string;
134
+ details?: Record<string, unknown> | undefined;
135
+ }, {
136
+ code: "UNAUTHORIZED" | "MISSING_API_KEY" | "INVALID_API_KEY" | "OIDC_REFRESH_FAILED" | "VERCEL_AUTH_FAILED" | "CONFIG_INVALID" | "PATH_ESCAPE" | "PATH_ABSOLUTE" | "PATH_NULL_BYTE" | "PATH_SYMLINK_ESCAPE" | "PATH_NOT_FOUND" | "PATH_NOT_WRITABLE" | "WORKSPACE_UNINITIALIZED" | "WORKSPACE_NOT_READY" | "AGENT_HOST_SCOPE_VIOLATION" | "AGENT_RUNTIME_NOT_READY" | "AGENT_BINDING_DISPOSED" | "AGENT_CONTROL_RECEIPT_INVALID" | "RUNTIME_PROVISIONING_FAILED" | "RUNTIME_PROVISIONING_LOCKED" | "BWRAP_UNAVAILABLE" | "BWRAP_TIMEOUT" | "OUTPUT_TRUNCATED" | "SANDBOX_NOT_READY" | "SANDBOX_EXPIRED" | "VERCEL_API_ERROR" | "REMOTE_WORKER_TIMEOUT" | "REMOTE_WORKER_STREAM_CLOSED" | "CIRCUIT_OPEN" | "ABORTED" | "PAYMENT_REQUIRED" | "MODEL_BUDGET_EXCEEDED" | "METERING_UNSUPPORTED_COMMAND" | "SESSION_NOT_FOUND" | "SESSION_LOCKED" | "STREAM_BUFFER_EVICTED" | "CURSOR_OUT_OF_RANGE" | "BRIDGE_COMMAND_INVALID" | "TOOL_NOT_FOUND" | "TOOL_INVALID_INPUT" | "TOOL_EXECUTION_ERROR" | "MCP_AGENT_ARTIFACT_INVALID" | "MCP_AGENT_ARTIFACT_TOO_LARGE" | "MCP_AGENT_ARTIFACT_UNAVAILABLE" | "PLUGIN_LOAD_FAILED" | "PLUGIN_NAME_COLLISION" | "PLUGIN_RUNTIME_REVISION_MISMATCH" | "PLUGIN_RUNTIME_PRIVATE_FILE" | "PLUGIN_RUNTIME_UNSAFE_IMPORT" | "PLUGIN_RUNTIME_TRANSFORM_FAILED" | "RUNTIME_PLUGIN_NOT_FOUND" | "RUNTIME_PLUGIN_ROUTE_NOT_FOUND" | "RUNTIME_PLUGIN_HANDLER_FAILED" | "RUNTIME_PLUGIN_LOAD_FAILED" | "RUNTIME_PLUGIN_RESPONSE_UNSUPPORTED" | "PROVISIONING_LAYOUT_FAILED" | "PROVISIONING_SKILLS_FAILED" | "PROVISIONING_TEMPLATES_FAILED" | "PROVISIONING_NODE_PREFLIGHT_FAILED" | "PROVISIONING_NPM_INSTALL_FAILED" | "PROVISIONING_UV_BOOTSTRAP_FAILED" | "PROVISIONING_UV_INSTALL_FAILED" | "PROVISIONING_ARTIFACT_FAILED" | "AR1_SHARE_NOT_FOUND" | "AR1_SHARE_TOMBSTONED" | "ERR_NOT_IMPLEMENTED_UNTIL_T1" | "INTERNAL_ERROR";
137
+ message: string;
138
+ details?: Record<string, unknown> | undefined;
139
+ }>;
140
+ }, "strip", z.ZodTypeAny, {
141
+ error: {
142
+ code: "UNAUTHORIZED" | "MISSING_API_KEY" | "INVALID_API_KEY" | "OIDC_REFRESH_FAILED" | "VERCEL_AUTH_FAILED" | "CONFIG_INVALID" | "PATH_ESCAPE" | "PATH_ABSOLUTE" | "PATH_NULL_BYTE" | "PATH_SYMLINK_ESCAPE" | "PATH_NOT_FOUND" | "PATH_NOT_WRITABLE" | "WORKSPACE_UNINITIALIZED" | "WORKSPACE_NOT_READY" | "AGENT_HOST_SCOPE_VIOLATION" | "AGENT_RUNTIME_NOT_READY" | "AGENT_BINDING_DISPOSED" | "AGENT_CONTROL_RECEIPT_INVALID" | "RUNTIME_PROVISIONING_FAILED" | "RUNTIME_PROVISIONING_LOCKED" | "BWRAP_UNAVAILABLE" | "BWRAP_TIMEOUT" | "OUTPUT_TRUNCATED" | "SANDBOX_NOT_READY" | "SANDBOX_EXPIRED" | "VERCEL_API_ERROR" | "REMOTE_WORKER_TIMEOUT" | "REMOTE_WORKER_STREAM_CLOSED" | "CIRCUIT_OPEN" | "ABORTED" | "PAYMENT_REQUIRED" | "MODEL_BUDGET_EXCEEDED" | "METERING_UNSUPPORTED_COMMAND" | "SESSION_NOT_FOUND" | "SESSION_LOCKED" | "STREAM_BUFFER_EVICTED" | "CURSOR_OUT_OF_RANGE" | "BRIDGE_COMMAND_INVALID" | "TOOL_NOT_FOUND" | "TOOL_INVALID_INPUT" | "TOOL_EXECUTION_ERROR" | "MCP_AGENT_ARTIFACT_INVALID" | "MCP_AGENT_ARTIFACT_TOO_LARGE" | "MCP_AGENT_ARTIFACT_UNAVAILABLE" | "PLUGIN_LOAD_FAILED" | "PLUGIN_NAME_COLLISION" | "PLUGIN_RUNTIME_REVISION_MISMATCH" | "PLUGIN_RUNTIME_PRIVATE_FILE" | "PLUGIN_RUNTIME_UNSAFE_IMPORT" | "PLUGIN_RUNTIME_TRANSFORM_FAILED" | "RUNTIME_PLUGIN_NOT_FOUND" | "RUNTIME_PLUGIN_ROUTE_NOT_FOUND" | "RUNTIME_PLUGIN_HANDLER_FAILED" | "RUNTIME_PLUGIN_LOAD_FAILED" | "RUNTIME_PLUGIN_RESPONSE_UNSUPPORTED" | "PROVISIONING_LAYOUT_FAILED" | "PROVISIONING_SKILLS_FAILED" | "PROVISIONING_TEMPLATES_FAILED" | "PROVISIONING_NODE_PREFLIGHT_FAILED" | "PROVISIONING_NPM_INSTALL_FAILED" | "PROVISIONING_UV_BOOTSTRAP_FAILED" | "PROVISIONING_UV_INSTALL_FAILED" | "PROVISIONING_ARTIFACT_FAILED" | "AR1_SHARE_NOT_FOUND" | "AR1_SHARE_TOMBSTONED" | "ERR_NOT_IMPLEMENTED_UNTIL_T1" | "INTERNAL_ERROR";
143
+ message: string;
144
+ details?: Record<string, unknown> | undefined;
145
+ };
146
+ }, {
147
+ error: {
148
+ code: "UNAUTHORIZED" | "MISSING_API_KEY" | "INVALID_API_KEY" | "OIDC_REFRESH_FAILED" | "VERCEL_AUTH_FAILED" | "CONFIG_INVALID" | "PATH_ESCAPE" | "PATH_ABSOLUTE" | "PATH_NULL_BYTE" | "PATH_SYMLINK_ESCAPE" | "PATH_NOT_FOUND" | "PATH_NOT_WRITABLE" | "WORKSPACE_UNINITIALIZED" | "WORKSPACE_NOT_READY" | "AGENT_HOST_SCOPE_VIOLATION" | "AGENT_RUNTIME_NOT_READY" | "AGENT_BINDING_DISPOSED" | "AGENT_CONTROL_RECEIPT_INVALID" | "RUNTIME_PROVISIONING_FAILED" | "RUNTIME_PROVISIONING_LOCKED" | "BWRAP_UNAVAILABLE" | "BWRAP_TIMEOUT" | "OUTPUT_TRUNCATED" | "SANDBOX_NOT_READY" | "SANDBOX_EXPIRED" | "VERCEL_API_ERROR" | "REMOTE_WORKER_TIMEOUT" | "REMOTE_WORKER_STREAM_CLOSED" | "CIRCUIT_OPEN" | "ABORTED" | "PAYMENT_REQUIRED" | "MODEL_BUDGET_EXCEEDED" | "METERING_UNSUPPORTED_COMMAND" | "SESSION_NOT_FOUND" | "SESSION_LOCKED" | "STREAM_BUFFER_EVICTED" | "CURSOR_OUT_OF_RANGE" | "BRIDGE_COMMAND_INVALID" | "TOOL_NOT_FOUND" | "TOOL_INVALID_INPUT" | "TOOL_EXECUTION_ERROR" | "MCP_AGENT_ARTIFACT_INVALID" | "MCP_AGENT_ARTIFACT_TOO_LARGE" | "MCP_AGENT_ARTIFACT_UNAVAILABLE" | "PLUGIN_LOAD_FAILED" | "PLUGIN_NAME_COLLISION" | "PLUGIN_RUNTIME_REVISION_MISMATCH" | "PLUGIN_RUNTIME_PRIVATE_FILE" | "PLUGIN_RUNTIME_UNSAFE_IMPORT" | "PLUGIN_RUNTIME_TRANSFORM_FAILED" | "RUNTIME_PLUGIN_NOT_FOUND" | "RUNTIME_PLUGIN_ROUTE_NOT_FOUND" | "RUNTIME_PLUGIN_HANDLER_FAILED" | "RUNTIME_PLUGIN_LOAD_FAILED" | "RUNTIME_PLUGIN_RESPONSE_UNSUPPORTED" | "PROVISIONING_LAYOUT_FAILED" | "PROVISIONING_SKILLS_FAILED" | "PROVISIONING_TEMPLATES_FAILED" | "PROVISIONING_NODE_PREFLIGHT_FAILED" | "PROVISIONING_NPM_INSTALL_FAILED" | "PROVISIONING_UV_BOOTSTRAP_FAILED" | "PROVISIONING_UV_INSTALL_FAILED" | "PROVISIONING_ARTIFACT_FAILED" | "AR1_SHARE_NOT_FOUND" | "AR1_SHARE_TOMBSTONED" | "ERR_NOT_IMPLEMENTED_UNTIL_T1" | "INTERNAL_ERROR";
149
+ message: string;
150
+ details?: Record<string, unknown> | undefined;
151
+ };
152
+ }>;
153
+ type ApiErrorResponse = z.infer<typeof ApiErrorResponseSchema>;
154
+ declare const ErrorLogFieldsSchema: z.ZodObject<{
155
+ level: z.ZodEnum<["warn", "error"]>;
156
+ code: z.ZodEnum<["UNAUTHORIZED", "MISSING_API_KEY", "INVALID_API_KEY", "OIDC_REFRESH_FAILED", "VERCEL_AUTH_FAILED", "CONFIG_INVALID", "PATH_ESCAPE", "PATH_ABSOLUTE", "PATH_NULL_BYTE", "PATH_SYMLINK_ESCAPE", "PATH_NOT_FOUND", "PATH_NOT_WRITABLE", "WORKSPACE_UNINITIALIZED", "WORKSPACE_NOT_READY", "AGENT_HOST_SCOPE_VIOLATION", "AGENT_RUNTIME_NOT_READY", "AGENT_BINDING_DISPOSED", "AGENT_CONTROL_RECEIPT_INVALID", "RUNTIME_PROVISIONING_FAILED", "RUNTIME_PROVISIONING_LOCKED", "BWRAP_UNAVAILABLE", "BWRAP_TIMEOUT", "OUTPUT_TRUNCATED", "SANDBOX_NOT_READY", "SANDBOX_EXPIRED", "VERCEL_API_ERROR", "REMOTE_WORKER_TIMEOUT", "REMOTE_WORKER_STREAM_CLOSED", "CIRCUIT_OPEN", "ABORTED", "PAYMENT_REQUIRED", "MODEL_BUDGET_EXCEEDED", "METERING_UNSUPPORTED_COMMAND", "SESSION_NOT_FOUND", "SESSION_LOCKED", "STREAM_BUFFER_EVICTED", "CURSOR_OUT_OF_RANGE", "BRIDGE_COMMAND_INVALID", "TOOL_NOT_FOUND", "TOOL_INVALID_INPUT", "TOOL_EXECUTION_ERROR", "MCP_AGENT_ARTIFACT_INVALID", "MCP_AGENT_ARTIFACT_TOO_LARGE", "MCP_AGENT_ARTIFACT_UNAVAILABLE", "PLUGIN_LOAD_FAILED", "PLUGIN_NAME_COLLISION", "PLUGIN_RUNTIME_REVISION_MISMATCH", "PLUGIN_RUNTIME_PRIVATE_FILE", "PLUGIN_RUNTIME_UNSAFE_IMPORT", "PLUGIN_RUNTIME_TRANSFORM_FAILED", "RUNTIME_PLUGIN_NOT_FOUND", "RUNTIME_PLUGIN_ROUTE_NOT_FOUND", "RUNTIME_PLUGIN_HANDLER_FAILED", "RUNTIME_PLUGIN_LOAD_FAILED", "RUNTIME_PLUGIN_RESPONSE_UNSUPPORTED", "PROVISIONING_LAYOUT_FAILED", "PROVISIONING_SKILLS_FAILED", "PROVISIONING_TEMPLATES_FAILED", "PROVISIONING_NODE_PREFLIGHT_FAILED", "PROVISIONING_NPM_INSTALL_FAILED", "PROVISIONING_UV_BOOTSTRAP_FAILED", "PROVISIONING_UV_INSTALL_FAILED", "PROVISIONING_ARTIFACT_FAILED", "AR1_SHARE_NOT_FOUND", "AR1_SHARE_TOMBSTONED", "ERR_NOT_IMPLEMENTED_UNTIL_T1", "INTERNAL_ERROR"]>;
157
+ prefix: z.ZodString;
158
+ msg: z.ZodString;
159
+ }, "strip", z.ZodUnknown, z.objectOutputType<{
160
+ level: z.ZodEnum<["warn", "error"]>;
161
+ code: z.ZodEnum<["UNAUTHORIZED", "MISSING_API_KEY", "INVALID_API_KEY", "OIDC_REFRESH_FAILED", "VERCEL_AUTH_FAILED", "CONFIG_INVALID", "PATH_ESCAPE", "PATH_ABSOLUTE", "PATH_NULL_BYTE", "PATH_SYMLINK_ESCAPE", "PATH_NOT_FOUND", "PATH_NOT_WRITABLE", "WORKSPACE_UNINITIALIZED", "WORKSPACE_NOT_READY", "AGENT_HOST_SCOPE_VIOLATION", "AGENT_RUNTIME_NOT_READY", "AGENT_BINDING_DISPOSED", "AGENT_CONTROL_RECEIPT_INVALID", "RUNTIME_PROVISIONING_FAILED", "RUNTIME_PROVISIONING_LOCKED", "BWRAP_UNAVAILABLE", "BWRAP_TIMEOUT", "OUTPUT_TRUNCATED", "SANDBOX_NOT_READY", "SANDBOX_EXPIRED", "VERCEL_API_ERROR", "REMOTE_WORKER_TIMEOUT", "REMOTE_WORKER_STREAM_CLOSED", "CIRCUIT_OPEN", "ABORTED", "PAYMENT_REQUIRED", "MODEL_BUDGET_EXCEEDED", "METERING_UNSUPPORTED_COMMAND", "SESSION_NOT_FOUND", "SESSION_LOCKED", "STREAM_BUFFER_EVICTED", "CURSOR_OUT_OF_RANGE", "BRIDGE_COMMAND_INVALID", "TOOL_NOT_FOUND", "TOOL_INVALID_INPUT", "TOOL_EXECUTION_ERROR", "MCP_AGENT_ARTIFACT_INVALID", "MCP_AGENT_ARTIFACT_TOO_LARGE", "MCP_AGENT_ARTIFACT_UNAVAILABLE", "PLUGIN_LOAD_FAILED", "PLUGIN_NAME_COLLISION", "PLUGIN_RUNTIME_REVISION_MISMATCH", "PLUGIN_RUNTIME_PRIVATE_FILE", "PLUGIN_RUNTIME_UNSAFE_IMPORT", "PLUGIN_RUNTIME_TRANSFORM_FAILED", "RUNTIME_PLUGIN_NOT_FOUND", "RUNTIME_PLUGIN_ROUTE_NOT_FOUND", "RUNTIME_PLUGIN_HANDLER_FAILED", "RUNTIME_PLUGIN_LOAD_FAILED", "RUNTIME_PLUGIN_RESPONSE_UNSUPPORTED", "PROVISIONING_LAYOUT_FAILED", "PROVISIONING_SKILLS_FAILED", "PROVISIONING_TEMPLATES_FAILED", "PROVISIONING_NODE_PREFLIGHT_FAILED", "PROVISIONING_NPM_INSTALL_FAILED", "PROVISIONING_UV_BOOTSTRAP_FAILED", "PROVISIONING_UV_INSTALL_FAILED", "PROVISIONING_ARTIFACT_FAILED", "AR1_SHARE_NOT_FOUND", "AR1_SHARE_TOMBSTONED", "ERR_NOT_IMPLEMENTED_UNTIL_T1", "INTERNAL_ERROR"]>;
162
+ prefix: z.ZodString;
163
+ msg: z.ZodString;
164
+ }, z.ZodUnknown, "strip">, z.objectInputType<{
165
+ level: z.ZodEnum<["warn", "error"]>;
166
+ code: z.ZodEnum<["UNAUTHORIZED", "MISSING_API_KEY", "INVALID_API_KEY", "OIDC_REFRESH_FAILED", "VERCEL_AUTH_FAILED", "CONFIG_INVALID", "PATH_ESCAPE", "PATH_ABSOLUTE", "PATH_NULL_BYTE", "PATH_SYMLINK_ESCAPE", "PATH_NOT_FOUND", "PATH_NOT_WRITABLE", "WORKSPACE_UNINITIALIZED", "WORKSPACE_NOT_READY", "AGENT_HOST_SCOPE_VIOLATION", "AGENT_RUNTIME_NOT_READY", "AGENT_BINDING_DISPOSED", "AGENT_CONTROL_RECEIPT_INVALID", "RUNTIME_PROVISIONING_FAILED", "RUNTIME_PROVISIONING_LOCKED", "BWRAP_UNAVAILABLE", "BWRAP_TIMEOUT", "OUTPUT_TRUNCATED", "SANDBOX_NOT_READY", "SANDBOX_EXPIRED", "VERCEL_API_ERROR", "REMOTE_WORKER_TIMEOUT", "REMOTE_WORKER_STREAM_CLOSED", "CIRCUIT_OPEN", "ABORTED", "PAYMENT_REQUIRED", "MODEL_BUDGET_EXCEEDED", "METERING_UNSUPPORTED_COMMAND", "SESSION_NOT_FOUND", "SESSION_LOCKED", "STREAM_BUFFER_EVICTED", "CURSOR_OUT_OF_RANGE", "BRIDGE_COMMAND_INVALID", "TOOL_NOT_FOUND", "TOOL_INVALID_INPUT", "TOOL_EXECUTION_ERROR", "MCP_AGENT_ARTIFACT_INVALID", "MCP_AGENT_ARTIFACT_TOO_LARGE", "MCP_AGENT_ARTIFACT_UNAVAILABLE", "PLUGIN_LOAD_FAILED", "PLUGIN_NAME_COLLISION", "PLUGIN_RUNTIME_REVISION_MISMATCH", "PLUGIN_RUNTIME_PRIVATE_FILE", "PLUGIN_RUNTIME_UNSAFE_IMPORT", "PLUGIN_RUNTIME_TRANSFORM_FAILED", "RUNTIME_PLUGIN_NOT_FOUND", "RUNTIME_PLUGIN_ROUTE_NOT_FOUND", "RUNTIME_PLUGIN_HANDLER_FAILED", "RUNTIME_PLUGIN_LOAD_FAILED", "RUNTIME_PLUGIN_RESPONSE_UNSUPPORTED", "PROVISIONING_LAYOUT_FAILED", "PROVISIONING_SKILLS_FAILED", "PROVISIONING_TEMPLATES_FAILED", "PROVISIONING_NODE_PREFLIGHT_FAILED", "PROVISIONING_NPM_INSTALL_FAILED", "PROVISIONING_UV_BOOTSTRAP_FAILED", "PROVISIONING_UV_INSTALL_FAILED", "PROVISIONING_ARTIFACT_FAILED", "AR1_SHARE_NOT_FOUND", "AR1_SHARE_TOMBSTONED", "ERR_NOT_IMPLEMENTED_UNTIL_T1", "INTERNAL_ERROR"]>;
167
+ prefix: z.ZodString;
168
+ msg: z.ZodString;
169
+ }, z.ZodUnknown, "strip">>;
170
+ type ErrorLogFields = z.infer<typeof ErrorLogFieldsSchema>;
171
+
172
+ interface ChatError {
173
+ code: ErrorCode;
174
+ message: string;
175
+ retryable?: boolean;
176
+ details?: unknown;
177
+ }
178
+
179
+ type ThinkingLevel = 'off' | 'low' | 'medium' | 'high';
180
+ interface ChatModelSelection {
181
+ provider: string;
182
+ id: string;
183
+ }
184
+ interface ChatAttachmentPayload {
185
+ filename?: string;
186
+ mediaType?: string;
187
+ url: string;
188
+ /** Workspace-relative path when the browser upload endpoint persisted the attachment. */
189
+ path?: string;
190
+ }
191
+ interface ChatSubmitPayload {
192
+ message: string;
193
+ displayMessage?: string;
194
+ clientNonce: string;
195
+ model?: ChatModelSelection;
196
+ thinkingLevel?: ThinkingLevel;
197
+ attachments?: ChatAttachmentPayload[];
198
+ }
199
+
200
+ type PiChatStatus = 'idle' | 'hydrating' | 'submitted' | 'streaming' | 'aborting' | 'error';
201
+ interface QueuedUserMessage {
202
+ id: string;
203
+ kind: 'followup';
204
+ clientNonce?: string;
205
+ clientSeq?: number;
206
+ displayText: string;
207
+ createdAt?: string;
208
+ }
209
+ interface PiChatSnapshot {
210
+ protocolVersion: 1;
211
+ sessionId: string;
212
+ seq: number;
213
+ status: PiChatStatus;
214
+ activeTurnId?: string;
215
+ messages: BoringChatMessage[];
216
+ queue: {
217
+ followUps: QueuedUserMessage[];
218
+ };
219
+ followUpMode: 'one-at-a-time';
220
+ error?: ChatError;
221
+ }
222
+
223
+ type PromptPayload = ChatSubmitPayload;
224
+ interface FollowUpPayload {
225
+ message: string;
226
+ displayMessage?: string;
227
+ clientNonce: string;
228
+ clientSeq: number;
229
+ }
230
+ interface QueueClearPayload {
231
+ clientNonce?: string;
232
+ clientSeq?: number;
233
+ }
234
+ type InterruptPayload = Record<string, never>;
235
+ type StopPayload = Record<string, never>;
236
+ interface CommandReceipt {
237
+ accepted: true;
238
+ cursor: number;
239
+ }
240
+ type PromptReceipt = CommandReceipt & {
241
+ clientNonce: string;
242
+ duplicate?: boolean;
243
+ };
244
+ type FollowUpReceipt = CommandReceipt & {
245
+ clientNonce: string;
246
+ clientSeq: number;
247
+ queued: true;
248
+ duplicate?: boolean;
249
+ };
250
+ type QueueClearReceipt = CommandReceipt & {
251
+ cleared: number;
252
+ };
253
+ type InterruptReceipt = CommandReceipt;
254
+ type StopReceipt = CommandReceipt & {
255
+ stopped: boolean;
256
+ clearedQueue: QueuedUserMessage[];
257
+ };
258
+
259
+ type PiChatEvent = {
260
+ type: 'agent-start';
261
+ seq: number;
262
+ turnId: string;
263
+ } | {
264
+ type: 'agent-end';
265
+ seq: number;
266
+ turnId: string;
267
+ status: 'ok' | 'aborted' | 'error';
268
+ willRetry?: boolean;
269
+ } | {
270
+ type: 'message-start';
271
+ seq: number;
272
+ messageId: string;
273
+ role: 'user' | 'assistant';
274
+ clientNonce?: string;
275
+ clientSeq?: number;
276
+ createdAt?: string;
277
+ text?: string;
278
+ files?: BoringChatPart[];
279
+ } | {
280
+ type: 'message-delta';
281
+ seq: number;
282
+ messageId: string;
283
+ partId: string;
284
+ kind: 'text' | 'reasoning';
285
+ delta: string;
286
+ } | {
287
+ type: 'message-part-end';
288
+ seq: number;
289
+ messageId: string;
290
+ partId: string;
291
+ kind: 'text' | 'reasoning';
292
+ text: string;
293
+ } | {
294
+ type: 'message-end';
295
+ seq: number;
296
+ messageId: string;
297
+ final: BoringChatMessage;
298
+ } | {
299
+ type: 'tool-call';
300
+ seq: number;
301
+ messageId: string;
302
+ toolCallId: string;
303
+ toolName: string;
304
+ input: unknown;
305
+ ui?: ToolUiMetadata;
306
+ } | {
307
+ type: 'tool-result';
308
+ seq: number;
309
+ messageId: string;
310
+ toolCallId: string;
311
+ output: unknown;
312
+ isError?: boolean;
313
+ errorText?: string;
314
+ ui?: ToolUiMetadata;
315
+ } | {
316
+ type: 'queue-updated';
317
+ seq: number;
318
+ queue: {
319
+ followUps: QueuedUserMessage[];
320
+ };
321
+ } | {
322
+ type: 'followup-consumed';
323
+ seq: number;
324
+ clientNonce?: string;
325
+ clientSeq?: number;
326
+ messageId: string;
327
+ } | {
328
+ type: 'file-changed';
329
+ seq: number;
330
+ path: string;
331
+ changeType: string;
332
+ } | {
333
+ type: 'ui-command';
334
+ seq: number;
335
+ command: unknown;
336
+ displayOnly: true;
337
+ } | {
338
+ type: 'usage';
339
+ seq: number;
340
+ usage: unknown;
341
+ } | {
342
+ type: 'auto-retry-start';
343
+ seq: number;
344
+ attempt: number;
345
+ maxAttempts: number;
346
+ delayMs: number;
347
+ errorMessage: string;
348
+ } | {
349
+ type: 'auto-retry-end';
350
+ seq: number;
351
+ success: boolean;
352
+ attempt: number;
353
+ finalError?: string;
354
+ } | {
355
+ type: 'error';
356
+ seq: number;
357
+ turnId?: string;
358
+ retryable?: boolean;
359
+ error: ChatError;
360
+ };
361
+ interface PiChatHeartbeatFrame {
362
+ type: 'heartbeat';
363
+ now: string;
364
+ }
365
+ type PiChatStreamFrame = PiChatEvent | PiChatHeartbeatFrame;
366
+
367
+ export { AgentConsumptionErrorCode as A, type BoringChatPart as B, type ChatError as C, type InterruptReceipt as D, ErrorCode as E, type FollowUpPayload as F, type PiChatHeartbeatFrame as G, type PiChatStreamFrame as H, type InterruptPayload as I, type SessionDetail as J, type ThinkingLevel as K, extractToolUiMetadata as L, isToolUiMetadata as M, type PiChatStatus as P, type QueuedUserMessage as Q, type SessionStore as S, type ToolUiMetadata as T, type BoringChatMessage as a, type PiChatEvent as b, type PromptPayload as c, type PromptReceipt as d, type FollowUpReceipt as e, type QueueClearPayload as f, type QueueClearReceipt as g, type CommandReceipt as h, type StopPayload as i, type StopReceipt as j, type SessionSummary as k, type SessionCtx as l, type ChatModelSelection as m, type SessionListOptions as n, type PiChatSnapshot as o, AgentDefinitionErrorCode as p, AgentDeploymentErrorCode as q, type ApiErrorPayload as r, ApiErrorPayloadSchema as s, type ApiErrorResponse as t, ApiErrorResponseSchema as u, type ChatAttachmentPayload as v, type ChatSubmitPayload as w, ERROR_CODES as x, type ErrorLogFields as y, ErrorLogFieldsSchema as z };
@@ -1,4 +1,4 @@
1
- import { n as SessionListOptions, k as SessionSummary, m as ChatModelSelection, o as PiChatSnapshot, b as PiChatEvent, c as PromptPayload, d as PromptReceipt, F as FollowUpPayload, e as FollowUpReceipt, f as QueueClearPayload, g as QueueClearReceipt, I as InterruptPayload, h as CommandReceipt, i as StopPayload, j as StopReceipt } from './piChatEvent-CUTKRaZD.js';
1
+ import { n as SessionListOptions, k as SessionSummary, m as ChatModelSelection, o as PiChatSnapshot, b as PiChatEvent, c as PromptPayload, d as PromptReceipt, F as FollowUpPayload, e as FollowUpReceipt, f as QueueClearPayload, g as QueueClearReceipt, I as InterruptPayload, h as CommandReceipt, i as StopPayload, j as StopReceipt } from './piChatEvent-nmOBSNU9.js';
2
2
 
3
3
  interface PiSessionRequestContext {
4
4
  workspaceId?: string;
@@ -29,10 +29,16 @@ interface PiChatEventStreamSubscription {
29
29
  }
30
30
  type PiChatEventStreamResult = PiChatEventStreamSubscription | PiChatReplayRangeError;
31
31
  type PiChatEventSubscriber = (event: PiChatEvent) => void;
32
+ interface PiChatAttachmentResult {
33
+ data: Uint8Array;
34
+ mediaType: string;
35
+ filename?: string;
36
+ }
32
37
  interface PiChatSessionService {
33
38
  listSessions?(ctx: PiSessionRequestContext, options?: SessionListOptions): Promise<SessionSummary[]>;
34
39
  createSession?(ctx: PiSessionRequestContext, init?: PiSessionCreateInit): Promise<SessionSummary>;
35
40
  deleteSession?(ctx: PiSessionRequestContext, sessionId: string): Promise<void>;
41
+ readAttachment?(ctx: PiSessionRequestContext, sessionId: string, messageId: string, index: number): Promise<PiChatAttachmentResult>;
36
42
  readState(ctx: PiSessionRequestContext, sessionId: string): Promise<PiChatSnapshot>;
37
43
  subscribe(ctx: PiSessionRequestContext, sessionId: string, cursor: number, subscriber: PiChatEventSubscriber): Promise<PiChatEventStreamResult>;
38
44
  prompt(ctx: PiSessionRequestContext, sessionId: string, payload: PromptPayload): Promise<PromptReceipt>;
@@ -1,16 +1,16 @@
1
1
  import { W as WorkspaceRuntimeContext, S as Sandbox, a as Workspace, E as ExecOptions, b as ExecResult, c as WorkspaceChangeEvent } from '../sandbox-DthfJaOB.js';
2
2
  import { R as RemoteWorkerWorkspaceOp, a as RemoteWorkerWorkspaceResult, b as RemoteWorkerExecRequest } from '../protocol-B_OQKfbI.js';
3
3
  export { B as BwrapResourceLimits, C as CreateBwrapSandboxOptions, c as REMOTE_WORKER_PROVIDER, d as REMOTE_WORKER_RUNTIME_CWD, e as RemoteWorkerErrorPayload, f as RemoteWorkerExecResponse, g as RemoteWorkerFsEventEnvelope, W as WORKER_INTERNAL_TOKEN_HEADER, h as WORKER_REQUEST_ID_HEADER, i as WORKER_WORKSPACE_ID_HEADER, j as createBwrapSandbox } from '../protocol-B_OQKfbI.js';
4
- import { S as SandboxHandleStore, a as SandboxHandleRecord, F as FileSearch, C as CompiledAgentBundle, b as Sha256Digest, A as AgentDeployment, c as ShareEntryStore, P as PluginRestartWarning, W as WorkspaceAgentDispatcherContext, d as WorkspaceAgentDispatcher } from '../workspaceAgentDispatcher-Dv0DocrE.js';
4
+ import { S as SandboxHandleStore, a as SandboxHandleRecord, F as FileSearch, C as CompiledAgentBundle, b as Sha256Digest, A as AgentDeployment, c as ShareEntryStore, P as PluginRestartWarning, W as WorkspaceAgentDispatcherContext, d as WorkspaceAgentDispatcher } from '../workspaceAgentDispatcher-CKEeNPjW.js';
5
5
  import { Sandbox as Sandbox$1 } from '@vercel/sandbox';
6
- import { T as TelemetrySink, s as ToolReadinessRequirement, t as AgentConfig, b as Agent, d as AgentActor, j as AgentEvent, u as AgentTool, v as AgentHarnessFactory } from '../harness-RhGbdGWY.js';
7
- export { w as AgentHarnessFactoryInput } from '../harness-RhGbdGWY.js';
6
+ import { T as TelemetrySink, s as ToolReadinessRequirement, t as AgentConfig, b as Agent, d as AgentActor, j as AgentEvent, u as AgentTool, v as AgentHarnessFactory } from '../harness-VvP0l5Mj.js';
7
+ export { w as AgentHarnessFactoryInput } from '../harness-VvP0l5Mj.js';
8
8
  import { FastifyInstance, FastifyRequest, FastifyPluginAsync } from 'fastify';
9
- import { E as ErrorCode, l as SessionCtx, m as ChatModelSelection } from '../piChatEvent-CUTKRaZD.js';
9
+ import { E as ErrorCode, l as SessionCtx, m as ChatModelSelection } from '../piChatEvent-nmOBSNU9.js';
10
10
  import { IncomingMessage, ServerResponse } from 'node:http';
11
11
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
12
12
  import { PackageSource, ExtensionFactory, SettingsManager } from '@mariozechner/pi-coding-agent';
13
- import { a as AgentEffectAdmission } from '../piChatSessionService-iBtx32ya.js';
13
+ import { a as AgentEffectAdmission } from '../piChatSessionService-DPjJ0g71.js';
14
14
  import 'zod';
15
15
 
16
16
  interface CreateDirectSandboxOptions {
@@ -59,11 +59,11 @@ import {
59
59
  resolveWorkspaceRoot,
60
60
  shareResourceUri,
61
61
  validatePath
62
- } from "../chunk-RRVL5JRE.js";
63
- import "../chunk-YONTHCD7.js";
64
- import "../chunk-LYBTHR7J.js";
62
+ } from "../chunk-G5XLHFO7.js";
63
+ import "../chunk-XPQEF32D.js";
64
+ import "../chunk-M32FXCIN.js";
65
65
  import "../chunk-WSQ5QNIY.js";
66
- import "../chunk-6O5ADR57.js";
66
+ import "../chunk-BDYXKHWY.js";
67
67
  import {
68
68
  PI_PACKAGE_RESOURCE_FILTERS,
69
69
  compactPiPackages,
@@ -71,9 +71,9 @@ import {
71
71
  createResourceSettingsManager,
72
72
  mergePiPackageSources,
73
73
  piPackageSourceKey
74
- } from "../chunk-ZUDWQAAB.js";
74
+ } from "../chunk-3LW57KYG.js";
75
75
  import "../chunk-AQBXNPMD.js";
76
- import "../chunk-HDIRWHJB.js";
76
+ import "../chunk-GOM3VJOJ.js";
77
77
  export {
78
78
  AgentDirectoryCompilerError,
79
79
  FileHandleStore,
@@ -0,0 +1,12 @@
1
+ interface PiSessionTranscriptReadabilityInput {
2
+ filePath: string;
3
+ sessionDir: string;
4
+ runtimeCwd: string;
5
+ expectedHeaderId: string;
6
+ headerVersion: number;
7
+ entries: readonly unknown[];
8
+ }
9
+ /** Validate an offline transcript through the same Pi loader/migrations used in production. */
10
+ declare function isPiSessionTranscriptReadable(input: PiSessionTranscriptReadabilityInput): Promise<boolean>;
11
+
12
+ export { type PiSessionTranscriptReadabilityInput, isPiSessionTranscriptReadable };
@@ -0,0 +1,23 @@
1
+ // src/server/harness/pi-coding-agent/sessionReadability.ts
2
+ async function isPiSessionTranscriptReadable(input) {
3
+ try {
4
+ const {
5
+ CURRENT_SESSION_VERSION,
6
+ migrateSessionEntries,
7
+ SessionManager
8
+ } = await import("@mariozechner/pi-coding-agent");
9
+ if (input.headerVersion < CURRENT_SESSION_VERSION) {
10
+ const entries = structuredClone(input.entries);
11
+ migrateSessionEntries(entries);
12
+ const header = entries[0];
13
+ return header?.type === "session" && header.id === input.expectedHeaderId && header.version === CURRENT_SESSION_VERSION && entries.some((entry) => entry.type === "message");
14
+ }
15
+ const manager = SessionManager.open(input.filePath, input.sessionDir, input.runtimeCwd);
16
+ return manager.getHeader()?.id === input.expectedHeaderId && manager.getEntries().some((entry) => entry.type === "message");
17
+ } catch {
18
+ return false;
19
+ }
20
+ }
21
+ export {
22
+ isPiSessionTranscriptReadable
23
+ };
@@ -4,14 +4,14 @@ import {
4
4
  constantTimeTokenEqual,
5
5
  createBwrapSandbox,
6
6
  createNodeWorkspace
7
- } from "../../chunk-RRVL5JRE.js";
8
- import "../../chunk-YONTHCD7.js";
9
- import "../../chunk-LYBTHR7J.js";
7
+ } from "../../chunk-G5XLHFO7.js";
8
+ import "../../chunk-XPQEF32D.js";
9
+ import "../../chunk-M32FXCIN.js";
10
10
  import "../../chunk-WSQ5QNIY.js";
11
- import "../../chunk-6O5ADR57.js";
12
- import "../../chunk-ZUDWQAAB.js";
11
+ import "../../chunk-BDYXKHWY.js";
12
+ import "../../chunk-3LW57KYG.js";
13
13
  import "../../chunk-AQBXNPMD.js";
14
- import "../../chunk-HDIRWHJB.js";
14
+ import "../../chunk-GOM3VJOJ.js";
15
15
 
16
16
  // src/server/worker/index.ts
17
17
  import Fastify from "fastify";