@hachej/boring-agent 0.1.32 → 0.1.34

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.
@@ -46,6 +46,11 @@ var ErrorCode = z.enum([
46
46
  "PLUGIN_RUNTIME_PRIVATE_FILE",
47
47
  "PLUGIN_RUNTIME_UNSAFE_IMPORT",
48
48
  "PLUGIN_RUNTIME_TRANSFORM_FAILED",
49
+ "RUNTIME_PLUGIN_NOT_FOUND",
50
+ "RUNTIME_PLUGIN_ROUTE_NOT_FOUND",
51
+ "RUNTIME_PLUGIN_HANDLER_FAILED",
52
+ "RUNTIME_PLUGIN_LOAD_FAILED",
53
+ "RUNTIME_PLUGIN_RESPONSE_UNSUPPORTED",
49
54
  // Runtime provisioning
50
55
  "PROVISIONING_LAYOUT_FAILED",
51
56
  "PROVISIONING_SKILLS_FAILED",
@@ -4,7 +4,7 @@ import { FileUIPart, UIMessage, ChatStatus } from 'ai';
4
4
  import * as react from 'react';
5
5
  import { ReactNode, ComponentType, HTMLAttributes, ComponentProps, FormEvent } from 'react';
6
6
  import { T as ToolUiMetadata } from '../tool-ui-DIFNGwYd.js';
7
- import { S as SendMessageInput, e as SessionSummary } from '../harness-CtTHLQyy.js';
7
+ import { S as SendMessageInput, e as SessionSummary } from '../harness-dYuMzxmp.js';
8
8
  import { Button, Collapsible, CollapsibleContent, CollapsibleTrigger, InputGroupAddon, InputGroupButton, InputGroupTextarea } from '@hachej/boring-ui-kit';
9
9
  import { Streamdown } from 'streamdown';
10
10
  import { StickToBottom } from 'use-stick-to-bottom';
@@ -377,12 +377,15 @@ interface UseSessionsResult {
377
377
  activeSession: SessionSummary | undefined;
378
378
  activeSessionId: string | undefined;
379
379
  loading: boolean;
380
+ loadingMore: boolean;
381
+ hasMore: boolean;
380
382
  error: Error | undefined;
381
383
  create: (init?: {
382
384
  title?: string;
383
385
  }) => Promise<SessionSummary>;
384
386
  switch: (id: string) => void;
385
387
  delete: (id: string) => Promise<void>;
388
+ loadMore: () => Promise<void>;
386
389
  }
387
390
  declare function useSessions(opts?: UseSessionsOptions): UseSessionsResult;
388
391
 
@@ -10,7 +10,7 @@ import {
10
10
  } from "../chunk-IDRC4SFU.js";
11
11
  import {
12
12
  ErrorCode
13
- } from "../chunk-UBWQ5LT4.js";
13
+ } from "../chunk-Q7ZLUJQW.js";
14
14
  import {
15
15
  DebugDrawer,
16
16
  cn,
@@ -6836,6 +6836,7 @@ function getAgentCommands(options = {}) {
6836
6836
  import { useState as useState21, useEffect as useEffect19, useCallback as useCallback18, useMemo as useMemo13, useRef as useRef15 } from "react";
6837
6837
  var API_BASE = "/api/v1/agent/sessions";
6838
6838
  var STORAGE_KEY = "boring-agent:activeSessionId";
6839
+ var SESSION_PAGE_SIZE = 50;
6839
6840
  function readPersistedId(storageKey) {
6840
6841
  try {
6841
6842
  return localStorage.getItem(storageKey) ?? void 0;
@@ -6870,9 +6871,15 @@ function retryDelayMs(attempt) {
6870
6871
  function delay(ms) {
6871
6872
  return new Promise((resolve) => setTimeout(resolve, ms));
6872
6873
  }
6873
- async function fetchSessions(headers) {
6874
+ function sessionsUrl(offset) {
6875
+ if (offset <= 0) return API_BASE;
6876
+ const query = new URLSearchParams({ limit: String(SESSION_PAGE_SIZE), offset: String(offset) });
6877
+ return `${API_BASE}?${query.toString()}`;
6878
+ }
6879
+ async function fetchSessions(headers, offset = 0) {
6874
6880
  const init = requestInit(headers);
6875
- const res = init ? await fetch(API_BASE, init) : await fetch(API_BASE);
6881
+ const url = sessionsUrl(offset);
6882
+ const res = init ? await fetch(url, init) : await fetch(url);
6876
6883
  if (res.status === 503) throw new SessionsPreparingError();
6877
6884
  if (!res.ok) throw new Error(`Failed to load sessions: ${res.status}`);
6878
6885
  return res.json();
@@ -6893,6 +6900,8 @@ ${headersScopeKey(requestHeaders)}`,
6893
6900
  () => initialActiveSessionId ?? readPersistedId(storageKey)
6894
6901
  );
6895
6902
  const [loading, setLoading] = useState21(true);
6903
+ const [loadingMore, setLoadingMore] = useState21(false);
6904
+ const [hasMore, setHasMore] = useState21(false);
6896
6905
  const [error, setError] = useState21();
6897
6906
  const [loaded, setLoaded] = useState21(false);
6898
6907
  const versionRef = useRef15(0);
@@ -6914,6 +6923,8 @@ ${headersScopeKey(requestHeaders)}`,
6914
6923
  setError(void 0);
6915
6924
  setLoaded(false);
6916
6925
  setLoading(false);
6926
+ setLoadingMore(false);
6927
+ setHasMore(false);
6917
6928
  return;
6918
6929
  }
6919
6930
  setLoaded(false);
@@ -6947,6 +6958,7 @@ ${headersScopeKey(requestHeaders)}`,
6947
6958
  setError(void 0);
6948
6959
  setLoaded(true);
6949
6960
  setSessions(mergedData);
6961
+ setHasMore(data.length === SESSION_PAGE_SIZE);
6950
6962
  setActiveSessionId((prev) => {
6951
6963
  const preferred = replacingLoadedScope ? persisted : prev ?? persisted;
6952
6964
  if (preferred && mergedData.some((session) => session.id === preferred)) return preferred;
@@ -6963,6 +6975,7 @@ ${headersScopeKey(requestHeaders)}`,
6963
6975
  if (replacingLoadedScope) {
6964
6976
  setSessions([]);
6965
6977
  setActiveSessionId(void 0);
6978
+ setHasMore(false);
6966
6979
  }
6967
6980
  setLoaded(true);
6968
6981
  setError(err instanceof Error ? err : new Error(String(err)));
@@ -6978,6 +6991,8 @@ ${headersScopeKey(requestHeaders)}`,
6978
6991
  setError(void 0);
6979
6992
  setLoaded(false);
6980
6993
  setLoading(false);
6994
+ setLoadingMore(false);
6995
+ setHasMore(false);
6981
6996
  return;
6982
6997
  }
6983
6998
  void refresh();
@@ -6985,6 +7000,23 @@ ${headersScopeKey(requestHeaders)}`,
6985
7000
  mountedRef.current = false;
6986
7001
  };
6987
7002
  }, [enabled, refresh, refreshKey, scopeKey]);
7003
+ const loadMore = useCallback18(async () => {
7004
+ if (!enabled || loadingMore || !hasMore) return;
7005
+ setLoadingMore(true);
7006
+ try {
7007
+ const data = await fetchSessions(requestHeaders, sessions.length);
7008
+ if (!mountedRef.current) return;
7009
+ setSessions((current) => {
7010
+ const seen = new Set(current.map((session) => session.id));
7011
+ return [...current, ...data.filter((session) => !seen.has(session.id))];
7012
+ });
7013
+ setHasMore(data.length === SESSION_PAGE_SIZE);
7014
+ } catch (err) {
7015
+ if (mountedRef.current) setError(err instanceof Error ? err : new Error(String(err)));
7016
+ } finally {
7017
+ if (mountedRef.current) setLoadingMore(false);
7018
+ }
7019
+ }, [enabled, hasMore, loadingMore, requestHeaders, sessions.length]);
6988
7020
  const create = useCallback18(
6989
7021
  async (init) => {
6990
7022
  if (!enabled) throw new Error("Sessions are disabled");
@@ -7051,10 +7083,13 @@ ${headersScopeKey(requestHeaders)}`,
7051
7083
  activeSession: visibleSessions.find((s) => s.id === visibleActiveSessionId),
7052
7084
  activeSessionId: visibleActiveSessionId,
7053
7085
  loading: enabled ? !scopeMatches || loading || !loaded : false,
7086
+ loadingMore,
7087
+ hasMore: enabled && scopeMatches ? hasMore : false,
7054
7088
  error,
7055
7089
  create,
7056
7090
  switch: switchSession,
7057
- delete: deleteSession
7091
+ delete: deleteSession,
7092
+ loadMore
7058
7093
  };
7059
7094
  }
7060
7095
  export {
@@ -1,7 +1,7 @@
1
1
  import { UIMessage, UIMessageChunk } from 'ai';
2
2
 
3
3
  interface SessionStore {
4
- list(ctx: SessionCtx): Promise<SessionSummary[]>;
4
+ list(ctx: SessionCtx, options?: SessionListOptions): Promise<SessionSummary[]>;
5
5
  create(ctx: SessionCtx, init?: {
6
6
  title?: string;
7
7
  }): Promise<SessionSummary>;
@@ -18,6 +18,10 @@ interface SessionCtx {
18
18
  workspaceId: string;
19
19
  userId?: string;
20
20
  }
21
+ interface SessionListOptions {
22
+ limit?: number;
23
+ offset?: number;
24
+ }
21
25
  interface SessionSummary {
22
26
  id: string;
23
27
  title: string;
@@ -1,8 +1,8 @@
1
1
  import { i as WorkspaceRuntimeContext, S as Sandbox, f as SandboxHandleStore, e as SandboxHandleRecord, W as Workspace, F as FileSearch, P as PluginRestartWarning } from '../agentPluginEvents-CF0BGY4D.js';
2
2
  import { Sandbox as Sandbox$1 } from '@vercel/sandbox';
3
3
  import { FastifyInstance, FastifyRequest, FastifyPluginAsync } from 'fastify';
4
- import { f as TelemetrySink, A as AgentTool, i as AgentHarnessFactory } from '../harness-CtTHLQyy.js';
5
- export { j as AgentHarnessFactoryInput } from '../harness-CtTHLQyy.js';
4
+ import { f as TelemetrySink, A as AgentTool, i as AgentHarnessFactory } from '../harness-dYuMzxmp.js';
5
+ export { j as AgentHarnessFactoryInput } from '../harness-dYuMzxmp.js';
6
6
  import { PackageSource, ExtensionFactory, SettingsManager } from '@mariozechner/pi-coding-agent';
7
7
  import 'ai';
8
8
 
@@ -9,7 +9,7 @@ import {
9
9
  } from "../chunk-IDRC4SFU.js";
10
10
  import {
11
11
  ErrorCode
12
- } from "../chunk-UBWQ5LT4.js";
12
+ } from "../chunk-Q7ZLUJQW.js";
13
13
 
14
14
  // src/server/sandbox/direct/createDirectSandbox.ts
15
15
  import { spawn } from "child_process";
@@ -5428,7 +5428,8 @@ import {
5428
5428
  mkdir as mkdir11,
5429
5429
  writeFile as writeFile6,
5430
5430
  appendFile,
5431
- utimes
5431
+ utimes,
5432
+ open as open2
5432
5433
  } from "fs/promises";
5433
5434
  import { readFileSync, readdirSync } from "fs";
5434
5435
  import { join as join9, resolve as resolve7 } from "path";
@@ -5443,6 +5444,7 @@ function defaultSessionDir(cwd) {
5443
5444
  }
5444
5445
  var SAFE_ID = /^[a-zA-Z0-9_-]+$/;
5445
5446
  var SAFE_SESSION_NAMESPACE = /^[a-zA-Z0-9_-]+$/;
5447
+ var SUMMARY_PREFIX_BYTES = 64 * 1024;
5446
5448
  function sessionDirForNamespace(namespace) {
5447
5449
  const safeNamespace = namespace.trim();
5448
5450
  if (!SAFE_SESSION_NAMESPACE.test(safeNamespace)) {
@@ -5464,16 +5466,25 @@ var PiSessionStore = class {
5464
5466
  getSessionDir() {
5465
5467
  return this.sessionDir;
5466
5468
  }
5467
- async list(ctx) {
5469
+ async list(ctx, options) {
5468
5470
  const files = await readdir6(this.sessionDir).catch(() => []);
5469
5471
  const jsonlFiles = files.filter((f) => f.endsWith(".jsonl"));
5470
5472
  const filepaths = jsonlFiles.map((f) => join9(this.sessionDir, f));
5471
5473
  const referencedPiFiles = await this.referencedPiFiles(filepaths);
5472
- const visibleFiles = filepaths.filter((filepath) => !referencedPiFiles.has(resolve7(filepath)));
5474
+ const fileStats = await Promise.all(filepaths.map(async (filepath) => {
5475
+ try {
5476
+ return { filepath, stat: await fsStat(filepath) };
5477
+ } catch {
5478
+ return null;
5479
+ }
5480
+ }));
5481
+ const visibleFiles = fileStats.filter((item) => item !== null).filter(({ filepath }) => !referencedPiFiles.has(resolve7(filepath))).sort((a, b) => b.stat.mtime.getTime() - a.stat.mtime.getTime());
5482
+ const offset = Math.max(0, options?.offset ?? 0);
5483
+ const pageFiles = options?.limit === void 0 ? visibleFiles.slice(offset) : visibleFiles.slice(offset, offset + Math.max(0, options.limit));
5473
5484
  const summaries = await Promise.all(
5474
- visibleFiles.map((filepath) => this.summarizeFile(filepath))
5485
+ pageFiles.map(({ filepath, stat: stat11 }) => this.summarizeFile(filepath, stat11))
5475
5486
  );
5476
- return summaries.filter((s) => s !== null).sort((a, b) => b.updatedAt.localeCompare(a.updatedAt));
5487
+ return summaries.filter((s) => s !== null);
5477
5488
  }
5478
5489
  async create(ctx, init) {
5479
5490
  await mkdir11(this.sessionDir, { recursive: true });
@@ -5669,7 +5680,7 @@ var PiSessionStore = class {
5669
5680
  const referenced = /* @__PURE__ */ new Set();
5670
5681
  await Promise.all(filepaths.map(async (filepath) => {
5671
5682
  try {
5672
- const content = await readFile9(filepath, "utf-8");
5683
+ const content = await readJsonlPrefix(filepath);
5673
5684
  const piFilePath = extractPiSessionFilePath(safeParseEntries(content));
5674
5685
  if (piFilePath && resolve7(piFilePath) !== resolve7(filepath)) {
5675
5686
  referenced.add(resolve7(piFilePath));
@@ -5679,11 +5690,11 @@ var PiSessionStore = class {
5679
5690
  }));
5680
5691
  return referenced;
5681
5692
  }
5682
- async summarizeFile(filepath) {
5693
+ async summarizeFile(filepath, existingStat) {
5683
5694
  try {
5684
5695
  const [fileStat, content] = await Promise.all([
5685
- fsStat(filepath),
5686
- readFile9(filepath, "utf-8")
5696
+ existingStat ?? fsStat(filepath),
5697
+ readJsonlPrefix(filepath)
5687
5698
  ]);
5688
5699
  const firstNewline = content.indexOf("\n");
5689
5700
  if (firstNewline === -1) return null;
@@ -5696,13 +5707,12 @@ var PiSessionStore = class {
5696
5707
  (e) => e.type !== "session"
5697
5708
  );
5698
5709
  const linkedPiFile = extractPiSessionFilePath(entries);
5699
- const linked = linkedPiFile && resolve7(linkedPiFile) !== resolve7(filepath) ? await this.readLinkedPiSession(linkedPiFile) : null;
5710
+ const linked = linkedPiFile && resolve7(linkedPiFile) !== resolve7(filepath) ? await this.readLinkedPiSessionSummary(linkedPiFile) : null;
5700
5711
  const linkedEntries = linked?.entries.filter(
5701
5712
  (e) => e.type !== "session"
5702
5713
  ) ?? [];
5703
- const uiSnapshot = extractLatestUiSnapshot(entries);
5704
5714
  const title = extractTitle(sessionEntries) ?? extractTitle(linkedEntries) ?? firstUserMessage(linkedEntries) ?? firstUserMessage(sessionEntries) ?? "New session";
5705
- const turnCount = uiSnapshot ? uiSnapshot.filter((m) => m.role === "user").length : [...sessionEntries, ...linkedEntries].filter(
5715
+ const turnCount = [...sessionEntries, ...linkedEntries].filter(
5706
5716
  (e) => e.type === "message" && e.message?.role === "user"
5707
5717
  ).length;
5708
5718
  const updatedAtMs = Math.max(fileStat.mtime.getTime(), linked?.mtime.getTime() ?? 0);
@@ -5728,7 +5738,33 @@ var PiSessionStore = class {
5728
5738
  return null;
5729
5739
  }
5730
5740
  }
5741
+ async readLinkedPiSessionSummary(filepath) {
5742
+ try {
5743
+ const [fileStat, content] = await Promise.all([
5744
+ fsStat(filepath),
5745
+ readJsonlPrefix(filepath)
5746
+ ]);
5747
+ return { entries: safeParseEntries(content), mtime: fileStat.mtime };
5748
+ } catch {
5749
+ return null;
5750
+ }
5751
+ }
5731
5752
  };
5753
+ async function readJsonlPrefix(filepath, maxBytes = SUMMARY_PREFIX_BYTES) {
5754
+ const handle = await open2(filepath, "r");
5755
+ try {
5756
+ const buffer = Buffer.alloc(maxBytes);
5757
+ const { bytesRead } = await handle.read(buffer, 0, maxBytes, 0);
5758
+ let content = buffer.subarray(0, bytesRead).toString("utf-8");
5759
+ if (bytesRead === maxBytes) {
5760
+ const lastNewline = content.lastIndexOf("\n");
5761
+ if (lastNewline >= 0) content = content.slice(0, lastNewline + 1);
5762
+ }
5763
+ return content;
5764
+ } finally {
5765
+ await handle.close();
5766
+ }
5767
+ }
5732
5768
  function extractPiSessionFilePath(entries) {
5733
5769
  let piFilePath = null;
5734
5770
  for (const e of entries) {
@@ -9274,6 +9310,8 @@ import { randomUUID as randomUUID4 } from "crypto";
9274
9310
  import { z as z2 } from "zod";
9275
9311
  var DEFAULT_SESSION_TITLE2 = "New session";
9276
9312
  var DEFAULT_WORKSPACE_ID2 = "default";
9313
+ var DEFAULT_SESSION_LIST_LIMIT = 50;
9314
+ var MAX_SESSION_LIST_LIMIT = 100;
9277
9315
  var MAX_ANALYSIS_TRANSCRIPT_CHARS = 12e4;
9278
9316
  var createSessionBodySchema = z2.object({
9279
9317
  title: z2.string().min(1).max(200).optional()
@@ -9292,8 +9330,11 @@ var SessionNotFoundError = class extends Error {
9292
9330
  };
9293
9331
  var InMemorySessionStore = class {
9294
9332
  sessions = /* @__PURE__ */ new Map();
9295
- async list(ctx) {
9296
- return Array.from(this.sessions.values()).filter((session) => session.workspaceId === ctx.workspaceId).sort((a, b) => b.updatedAt.localeCompare(a.updatedAt)).map(toSummary);
9333
+ async list(ctx, options) {
9334
+ const offset = options?.offset ?? 0;
9335
+ const limit = options?.limit;
9336
+ const summaries = Array.from(this.sessions.values()).filter((session) => session.workspaceId === ctx.workspaceId).sort((a, b) => b.updatedAt.localeCompare(a.updatedAt)).map(toSummary);
9337
+ return limit === void 0 ? summaries.slice(offset) : summaries.slice(offset, offset + limit);
9297
9338
  }
9298
9339
  async create(ctx, init) {
9299
9340
  const now = (/* @__PURE__ */ new Date()).toISOString();
@@ -9341,6 +9382,18 @@ function toSummary(session) {
9341
9382
  turnCount: session.messages.filter((message) => message.role === "user").length
9342
9383
  };
9343
9384
  }
9385
+ function sessionListOptions(request) {
9386
+ const query = request.query;
9387
+ return {
9388
+ limit: boundedInteger(query.limit, DEFAULT_SESSION_LIST_LIMIT, 1, MAX_SESSION_LIST_LIMIT),
9389
+ offset: boundedInteger(query.offset, 0, 0, Number.MAX_SAFE_INTEGER)
9390
+ };
9391
+ }
9392
+ function boundedInteger(value, fallback, min, max) {
9393
+ const parsed = typeof value === "string" ? Number.parseInt(value, 10) : NaN;
9394
+ if (!Number.isFinite(parsed)) return fallback;
9395
+ return Math.min(max, Math.max(min, parsed));
9396
+ }
9344
9397
  function getSessionCtx(request) {
9345
9398
  const workspaceContext = request.workspaceContext;
9346
9399
  return {
@@ -9530,7 +9583,7 @@ function sessionRoutes(app, opts, done) {
9530
9583
  app.get("/api/v1/agent/sessions", async (request, reply) => {
9531
9584
  try {
9532
9585
  const store = await resolveSessionStore(request);
9533
- return await store.list(getSessionCtx(request));
9586
+ return await store.list(getSessionCtx(request), sessionListOptions(request));
9534
9587
  } catch (err) {
9535
9588
  return classifySessionError(err, reply);
9536
9589
  }
@@ -1,5 +1,5 @@
1
- import { A as AgentTool } from '../harness-CtTHLQyy.js';
2
- export { a as AgentHarness, J as JSONSchema, R as RunContext, S as SendMessageInput, b as SessionCtx, c as SessionDetail, d as SessionStore, e as SessionSummary, T as TelemetryEvent, f as TelemetrySink, g as ToolExecContext, h as ToolResult, n as noopTelemetry, s as safeCapture } from '../harness-CtTHLQyy.js';
1
+ import { A as AgentTool } from '../harness-dYuMzxmp.js';
2
+ export { a as AgentHarness, J as JSONSchema, R as RunContext, S as SendMessageInput, b as SessionCtx, c as SessionDetail, d as SessionStore, e as SessionSummary, T as TelemetryEvent, f as TelemetrySink, g as ToolExecContext, h as ToolResult, n as noopTelemetry, s as safeCapture } from '../harness-dYuMzxmp.js';
3
3
  import { W as Workspace, S as Sandbox, F as FileSearch } from '../agentPluginEvents-CF0BGY4D.js';
4
4
  export { E as Entry, a as ExecOptions, b as ExecResult, I as IsolatedCodeInput, c as IsolatedCodeOutput, d as SandboxCapability, e as SandboxHandleRecord, f as SandboxHandleStore, g as Stat, h as WORKSPACE_AGENT_PLUGINS_RELOADED_EVENT, i as WorkspaceRuntimeContext } from '../agentPluginEvents-CF0BGY4D.js';
5
5
  export { T as ToolUiMetadata, e as extractToolUiMetadata, i as isToolUiMetadata } from '../tool-ui-DIFNGwYd.js';
@@ -156,46 +156,46 @@ declare const EnvSchema: z.ZodObject<{
156
156
  type AgentEnv = z.infer<typeof EnvSchema>;
157
157
  declare function validateConfig(config: unknown): AgentConfig;
158
158
 
159
- declare const ErrorCode: z.ZodEnum<["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_RUNTIME_NOT_READY", "RUNTIME_PROVISIONING_FAILED", "RUNTIME_PROVISIONING_LOCKED", "BWRAP_UNAVAILABLE", "BWRAP_TIMEOUT", "OUTPUT_TRUNCATED", "SANDBOX_NOT_READY", "SANDBOX_EXPIRED", "VERCEL_API_ERROR", "CIRCUIT_OPEN", "ABORTED", "SESSION_NOT_FOUND", "SESSION_LOCKED", "STREAM_BUFFER_EVICTED", "CURSOR_OUT_OF_RANGE", "BRIDGE_COMMAND_INVALID", "TOOL_NOT_FOUND", "TOOL_INVALID_INPUT", "TOOL_EXECUTION_ERROR", "PLUGIN_LOAD_FAILED", "PLUGIN_NAME_COLLISION", "PLUGIN_RUNTIME_REVISION_MISMATCH", "PLUGIN_RUNTIME_PRIVATE_FILE", "PLUGIN_RUNTIME_UNSAFE_IMPORT", "PLUGIN_RUNTIME_TRANSFORM_FAILED", "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", "INTERNAL_ERROR"]>;
159
+ declare const ErrorCode: z.ZodEnum<["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_RUNTIME_NOT_READY", "RUNTIME_PROVISIONING_FAILED", "RUNTIME_PROVISIONING_LOCKED", "BWRAP_UNAVAILABLE", "BWRAP_TIMEOUT", "OUTPUT_TRUNCATED", "SANDBOX_NOT_READY", "SANDBOX_EXPIRED", "VERCEL_API_ERROR", "CIRCUIT_OPEN", "ABORTED", "SESSION_NOT_FOUND", "SESSION_LOCKED", "STREAM_BUFFER_EVICTED", "CURSOR_OUT_OF_RANGE", "BRIDGE_COMMAND_INVALID", "TOOL_NOT_FOUND", "TOOL_INVALID_INPUT", "TOOL_EXECUTION_ERROR", "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", "INTERNAL_ERROR"]>;
160
160
  type ErrorCode = z.infer<typeof ErrorCode>;
161
- declare const ERROR_CODES: ["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_RUNTIME_NOT_READY", "RUNTIME_PROVISIONING_FAILED", "RUNTIME_PROVISIONING_LOCKED", "BWRAP_UNAVAILABLE", "BWRAP_TIMEOUT", "OUTPUT_TRUNCATED", "SANDBOX_NOT_READY", "SANDBOX_EXPIRED", "VERCEL_API_ERROR", "CIRCUIT_OPEN", "ABORTED", "SESSION_NOT_FOUND", "SESSION_LOCKED", "STREAM_BUFFER_EVICTED", "CURSOR_OUT_OF_RANGE", "BRIDGE_COMMAND_INVALID", "TOOL_NOT_FOUND", "TOOL_INVALID_INPUT", "TOOL_EXECUTION_ERROR", "PLUGIN_LOAD_FAILED", "PLUGIN_NAME_COLLISION", "PLUGIN_RUNTIME_REVISION_MISMATCH", "PLUGIN_RUNTIME_PRIVATE_FILE", "PLUGIN_RUNTIME_UNSAFE_IMPORT", "PLUGIN_RUNTIME_TRANSFORM_FAILED", "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", "INTERNAL_ERROR"];
161
+ declare const ERROR_CODES: ["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_RUNTIME_NOT_READY", "RUNTIME_PROVISIONING_FAILED", "RUNTIME_PROVISIONING_LOCKED", "BWRAP_UNAVAILABLE", "BWRAP_TIMEOUT", "OUTPUT_TRUNCATED", "SANDBOX_NOT_READY", "SANDBOX_EXPIRED", "VERCEL_API_ERROR", "CIRCUIT_OPEN", "ABORTED", "SESSION_NOT_FOUND", "SESSION_LOCKED", "STREAM_BUFFER_EVICTED", "CURSOR_OUT_OF_RANGE", "BRIDGE_COMMAND_INVALID", "TOOL_NOT_FOUND", "TOOL_INVALID_INPUT", "TOOL_EXECUTION_ERROR", "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", "INTERNAL_ERROR"];
162
162
  declare const ApiErrorPayloadSchema: z.ZodObject<{
163
- code: z.ZodEnum<["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_RUNTIME_NOT_READY", "RUNTIME_PROVISIONING_FAILED", "RUNTIME_PROVISIONING_LOCKED", "BWRAP_UNAVAILABLE", "BWRAP_TIMEOUT", "OUTPUT_TRUNCATED", "SANDBOX_NOT_READY", "SANDBOX_EXPIRED", "VERCEL_API_ERROR", "CIRCUIT_OPEN", "ABORTED", "SESSION_NOT_FOUND", "SESSION_LOCKED", "STREAM_BUFFER_EVICTED", "CURSOR_OUT_OF_RANGE", "BRIDGE_COMMAND_INVALID", "TOOL_NOT_FOUND", "TOOL_INVALID_INPUT", "TOOL_EXECUTION_ERROR", "PLUGIN_LOAD_FAILED", "PLUGIN_NAME_COLLISION", "PLUGIN_RUNTIME_REVISION_MISMATCH", "PLUGIN_RUNTIME_PRIVATE_FILE", "PLUGIN_RUNTIME_UNSAFE_IMPORT", "PLUGIN_RUNTIME_TRANSFORM_FAILED", "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", "INTERNAL_ERROR"]>;
163
+ code: z.ZodEnum<["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_RUNTIME_NOT_READY", "RUNTIME_PROVISIONING_FAILED", "RUNTIME_PROVISIONING_LOCKED", "BWRAP_UNAVAILABLE", "BWRAP_TIMEOUT", "OUTPUT_TRUNCATED", "SANDBOX_NOT_READY", "SANDBOX_EXPIRED", "VERCEL_API_ERROR", "CIRCUIT_OPEN", "ABORTED", "SESSION_NOT_FOUND", "SESSION_LOCKED", "STREAM_BUFFER_EVICTED", "CURSOR_OUT_OF_RANGE", "BRIDGE_COMMAND_INVALID", "TOOL_NOT_FOUND", "TOOL_INVALID_INPUT", "TOOL_EXECUTION_ERROR", "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", "INTERNAL_ERROR"]>;
164
164
  message: z.ZodString;
165
165
  details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
166
166
  }, "strip", z.ZodTypeAny, {
167
- code: "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_RUNTIME_NOT_READY" | "RUNTIME_PROVISIONING_FAILED" | "RUNTIME_PROVISIONING_LOCKED" | "BWRAP_UNAVAILABLE" | "BWRAP_TIMEOUT" | "OUTPUT_TRUNCATED" | "SANDBOX_NOT_READY" | "SANDBOX_EXPIRED" | "VERCEL_API_ERROR" | "CIRCUIT_OPEN" | "ABORTED" | "SESSION_NOT_FOUND" | "SESSION_LOCKED" | "STREAM_BUFFER_EVICTED" | "CURSOR_OUT_OF_RANGE" | "BRIDGE_COMMAND_INVALID" | "TOOL_NOT_FOUND" | "TOOL_INVALID_INPUT" | "TOOL_EXECUTION_ERROR" | "PLUGIN_LOAD_FAILED" | "PLUGIN_NAME_COLLISION" | "PLUGIN_RUNTIME_REVISION_MISMATCH" | "PLUGIN_RUNTIME_PRIVATE_FILE" | "PLUGIN_RUNTIME_UNSAFE_IMPORT" | "PLUGIN_RUNTIME_TRANSFORM_FAILED" | "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" | "INTERNAL_ERROR";
167
+ code: "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_RUNTIME_NOT_READY" | "RUNTIME_PROVISIONING_FAILED" | "RUNTIME_PROVISIONING_LOCKED" | "BWRAP_UNAVAILABLE" | "BWRAP_TIMEOUT" | "OUTPUT_TRUNCATED" | "SANDBOX_NOT_READY" | "SANDBOX_EXPIRED" | "VERCEL_API_ERROR" | "CIRCUIT_OPEN" | "ABORTED" | "SESSION_NOT_FOUND" | "SESSION_LOCKED" | "STREAM_BUFFER_EVICTED" | "CURSOR_OUT_OF_RANGE" | "BRIDGE_COMMAND_INVALID" | "TOOL_NOT_FOUND" | "TOOL_INVALID_INPUT" | "TOOL_EXECUTION_ERROR" | "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" | "INTERNAL_ERROR";
168
168
  message: string;
169
169
  details?: Record<string, unknown> | undefined;
170
170
  }, {
171
- code: "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_RUNTIME_NOT_READY" | "RUNTIME_PROVISIONING_FAILED" | "RUNTIME_PROVISIONING_LOCKED" | "BWRAP_UNAVAILABLE" | "BWRAP_TIMEOUT" | "OUTPUT_TRUNCATED" | "SANDBOX_NOT_READY" | "SANDBOX_EXPIRED" | "VERCEL_API_ERROR" | "CIRCUIT_OPEN" | "ABORTED" | "SESSION_NOT_FOUND" | "SESSION_LOCKED" | "STREAM_BUFFER_EVICTED" | "CURSOR_OUT_OF_RANGE" | "BRIDGE_COMMAND_INVALID" | "TOOL_NOT_FOUND" | "TOOL_INVALID_INPUT" | "TOOL_EXECUTION_ERROR" | "PLUGIN_LOAD_FAILED" | "PLUGIN_NAME_COLLISION" | "PLUGIN_RUNTIME_REVISION_MISMATCH" | "PLUGIN_RUNTIME_PRIVATE_FILE" | "PLUGIN_RUNTIME_UNSAFE_IMPORT" | "PLUGIN_RUNTIME_TRANSFORM_FAILED" | "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" | "INTERNAL_ERROR";
171
+ code: "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_RUNTIME_NOT_READY" | "RUNTIME_PROVISIONING_FAILED" | "RUNTIME_PROVISIONING_LOCKED" | "BWRAP_UNAVAILABLE" | "BWRAP_TIMEOUT" | "OUTPUT_TRUNCATED" | "SANDBOX_NOT_READY" | "SANDBOX_EXPIRED" | "VERCEL_API_ERROR" | "CIRCUIT_OPEN" | "ABORTED" | "SESSION_NOT_FOUND" | "SESSION_LOCKED" | "STREAM_BUFFER_EVICTED" | "CURSOR_OUT_OF_RANGE" | "BRIDGE_COMMAND_INVALID" | "TOOL_NOT_FOUND" | "TOOL_INVALID_INPUT" | "TOOL_EXECUTION_ERROR" | "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" | "INTERNAL_ERROR";
172
172
  message: string;
173
173
  details?: Record<string, unknown> | undefined;
174
174
  }>;
175
175
  type ApiErrorPayload = z.infer<typeof ApiErrorPayloadSchema>;
176
176
  declare const ApiErrorResponseSchema: z.ZodObject<{
177
177
  error: z.ZodObject<{
178
- code: z.ZodEnum<["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_RUNTIME_NOT_READY", "RUNTIME_PROVISIONING_FAILED", "RUNTIME_PROVISIONING_LOCKED", "BWRAP_UNAVAILABLE", "BWRAP_TIMEOUT", "OUTPUT_TRUNCATED", "SANDBOX_NOT_READY", "SANDBOX_EXPIRED", "VERCEL_API_ERROR", "CIRCUIT_OPEN", "ABORTED", "SESSION_NOT_FOUND", "SESSION_LOCKED", "STREAM_BUFFER_EVICTED", "CURSOR_OUT_OF_RANGE", "BRIDGE_COMMAND_INVALID", "TOOL_NOT_FOUND", "TOOL_INVALID_INPUT", "TOOL_EXECUTION_ERROR", "PLUGIN_LOAD_FAILED", "PLUGIN_NAME_COLLISION", "PLUGIN_RUNTIME_REVISION_MISMATCH", "PLUGIN_RUNTIME_PRIVATE_FILE", "PLUGIN_RUNTIME_UNSAFE_IMPORT", "PLUGIN_RUNTIME_TRANSFORM_FAILED", "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", "INTERNAL_ERROR"]>;
178
+ code: z.ZodEnum<["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_RUNTIME_NOT_READY", "RUNTIME_PROVISIONING_FAILED", "RUNTIME_PROVISIONING_LOCKED", "BWRAP_UNAVAILABLE", "BWRAP_TIMEOUT", "OUTPUT_TRUNCATED", "SANDBOX_NOT_READY", "SANDBOX_EXPIRED", "VERCEL_API_ERROR", "CIRCUIT_OPEN", "ABORTED", "SESSION_NOT_FOUND", "SESSION_LOCKED", "STREAM_BUFFER_EVICTED", "CURSOR_OUT_OF_RANGE", "BRIDGE_COMMAND_INVALID", "TOOL_NOT_FOUND", "TOOL_INVALID_INPUT", "TOOL_EXECUTION_ERROR", "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", "INTERNAL_ERROR"]>;
179
179
  message: z.ZodString;
180
180
  details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
181
181
  }, "strip", z.ZodTypeAny, {
182
- code: "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_RUNTIME_NOT_READY" | "RUNTIME_PROVISIONING_FAILED" | "RUNTIME_PROVISIONING_LOCKED" | "BWRAP_UNAVAILABLE" | "BWRAP_TIMEOUT" | "OUTPUT_TRUNCATED" | "SANDBOX_NOT_READY" | "SANDBOX_EXPIRED" | "VERCEL_API_ERROR" | "CIRCUIT_OPEN" | "ABORTED" | "SESSION_NOT_FOUND" | "SESSION_LOCKED" | "STREAM_BUFFER_EVICTED" | "CURSOR_OUT_OF_RANGE" | "BRIDGE_COMMAND_INVALID" | "TOOL_NOT_FOUND" | "TOOL_INVALID_INPUT" | "TOOL_EXECUTION_ERROR" | "PLUGIN_LOAD_FAILED" | "PLUGIN_NAME_COLLISION" | "PLUGIN_RUNTIME_REVISION_MISMATCH" | "PLUGIN_RUNTIME_PRIVATE_FILE" | "PLUGIN_RUNTIME_UNSAFE_IMPORT" | "PLUGIN_RUNTIME_TRANSFORM_FAILED" | "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" | "INTERNAL_ERROR";
182
+ code: "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_RUNTIME_NOT_READY" | "RUNTIME_PROVISIONING_FAILED" | "RUNTIME_PROVISIONING_LOCKED" | "BWRAP_UNAVAILABLE" | "BWRAP_TIMEOUT" | "OUTPUT_TRUNCATED" | "SANDBOX_NOT_READY" | "SANDBOX_EXPIRED" | "VERCEL_API_ERROR" | "CIRCUIT_OPEN" | "ABORTED" | "SESSION_NOT_FOUND" | "SESSION_LOCKED" | "STREAM_BUFFER_EVICTED" | "CURSOR_OUT_OF_RANGE" | "BRIDGE_COMMAND_INVALID" | "TOOL_NOT_FOUND" | "TOOL_INVALID_INPUT" | "TOOL_EXECUTION_ERROR" | "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" | "INTERNAL_ERROR";
183
183
  message: string;
184
184
  details?: Record<string, unknown> | undefined;
185
185
  }, {
186
- code: "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_RUNTIME_NOT_READY" | "RUNTIME_PROVISIONING_FAILED" | "RUNTIME_PROVISIONING_LOCKED" | "BWRAP_UNAVAILABLE" | "BWRAP_TIMEOUT" | "OUTPUT_TRUNCATED" | "SANDBOX_NOT_READY" | "SANDBOX_EXPIRED" | "VERCEL_API_ERROR" | "CIRCUIT_OPEN" | "ABORTED" | "SESSION_NOT_FOUND" | "SESSION_LOCKED" | "STREAM_BUFFER_EVICTED" | "CURSOR_OUT_OF_RANGE" | "BRIDGE_COMMAND_INVALID" | "TOOL_NOT_FOUND" | "TOOL_INVALID_INPUT" | "TOOL_EXECUTION_ERROR" | "PLUGIN_LOAD_FAILED" | "PLUGIN_NAME_COLLISION" | "PLUGIN_RUNTIME_REVISION_MISMATCH" | "PLUGIN_RUNTIME_PRIVATE_FILE" | "PLUGIN_RUNTIME_UNSAFE_IMPORT" | "PLUGIN_RUNTIME_TRANSFORM_FAILED" | "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" | "INTERNAL_ERROR";
186
+ code: "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_RUNTIME_NOT_READY" | "RUNTIME_PROVISIONING_FAILED" | "RUNTIME_PROVISIONING_LOCKED" | "BWRAP_UNAVAILABLE" | "BWRAP_TIMEOUT" | "OUTPUT_TRUNCATED" | "SANDBOX_NOT_READY" | "SANDBOX_EXPIRED" | "VERCEL_API_ERROR" | "CIRCUIT_OPEN" | "ABORTED" | "SESSION_NOT_FOUND" | "SESSION_LOCKED" | "STREAM_BUFFER_EVICTED" | "CURSOR_OUT_OF_RANGE" | "BRIDGE_COMMAND_INVALID" | "TOOL_NOT_FOUND" | "TOOL_INVALID_INPUT" | "TOOL_EXECUTION_ERROR" | "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" | "INTERNAL_ERROR";
187
187
  message: string;
188
188
  details?: Record<string, unknown> | undefined;
189
189
  }>;
190
190
  }, "strip", z.ZodTypeAny, {
191
191
  error: {
192
- code: "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_RUNTIME_NOT_READY" | "RUNTIME_PROVISIONING_FAILED" | "RUNTIME_PROVISIONING_LOCKED" | "BWRAP_UNAVAILABLE" | "BWRAP_TIMEOUT" | "OUTPUT_TRUNCATED" | "SANDBOX_NOT_READY" | "SANDBOX_EXPIRED" | "VERCEL_API_ERROR" | "CIRCUIT_OPEN" | "ABORTED" | "SESSION_NOT_FOUND" | "SESSION_LOCKED" | "STREAM_BUFFER_EVICTED" | "CURSOR_OUT_OF_RANGE" | "BRIDGE_COMMAND_INVALID" | "TOOL_NOT_FOUND" | "TOOL_INVALID_INPUT" | "TOOL_EXECUTION_ERROR" | "PLUGIN_LOAD_FAILED" | "PLUGIN_NAME_COLLISION" | "PLUGIN_RUNTIME_REVISION_MISMATCH" | "PLUGIN_RUNTIME_PRIVATE_FILE" | "PLUGIN_RUNTIME_UNSAFE_IMPORT" | "PLUGIN_RUNTIME_TRANSFORM_FAILED" | "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" | "INTERNAL_ERROR";
192
+ code: "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_RUNTIME_NOT_READY" | "RUNTIME_PROVISIONING_FAILED" | "RUNTIME_PROVISIONING_LOCKED" | "BWRAP_UNAVAILABLE" | "BWRAP_TIMEOUT" | "OUTPUT_TRUNCATED" | "SANDBOX_NOT_READY" | "SANDBOX_EXPIRED" | "VERCEL_API_ERROR" | "CIRCUIT_OPEN" | "ABORTED" | "SESSION_NOT_FOUND" | "SESSION_LOCKED" | "STREAM_BUFFER_EVICTED" | "CURSOR_OUT_OF_RANGE" | "BRIDGE_COMMAND_INVALID" | "TOOL_NOT_FOUND" | "TOOL_INVALID_INPUT" | "TOOL_EXECUTION_ERROR" | "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" | "INTERNAL_ERROR";
193
193
  message: string;
194
194
  details?: Record<string, unknown> | undefined;
195
195
  };
196
196
  }, {
197
197
  error: {
198
- code: "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_RUNTIME_NOT_READY" | "RUNTIME_PROVISIONING_FAILED" | "RUNTIME_PROVISIONING_LOCKED" | "BWRAP_UNAVAILABLE" | "BWRAP_TIMEOUT" | "OUTPUT_TRUNCATED" | "SANDBOX_NOT_READY" | "SANDBOX_EXPIRED" | "VERCEL_API_ERROR" | "CIRCUIT_OPEN" | "ABORTED" | "SESSION_NOT_FOUND" | "SESSION_LOCKED" | "STREAM_BUFFER_EVICTED" | "CURSOR_OUT_OF_RANGE" | "BRIDGE_COMMAND_INVALID" | "TOOL_NOT_FOUND" | "TOOL_INVALID_INPUT" | "TOOL_EXECUTION_ERROR" | "PLUGIN_LOAD_FAILED" | "PLUGIN_NAME_COLLISION" | "PLUGIN_RUNTIME_REVISION_MISMATCH" | "PLUGIN_RUNTIME_PRIVATE_FILE" | "PLUGIN_RUNTIME_UNSAFE_IMPORT" | "PLUGIN_RUNTIME_TRANSFORM_FAILED" | "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" | "INTERNAL_ERROR";
198
+ code: "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_RUNTIME_NOT_READY" | "RUNTIME_PROVISIONING_FAILED" | "RUNTIME_PROVISIONING_LOCKED" | "BWRAP_UNAVAILABLE" | "BWRAP_TIMEOUT" | "OUTPUT_TRUNCATED" | "SANDBOX_NOT_READY" | "SANDBOX_EXPIRED" | "VERCEL_API_ERROR" | "CIRCUIT_OPEN" | "ABORTED" | "SESSION_NOT_FOUND" | "SESSION_LOCKED" | "STREAM_BUFFER_EVICTED" | "CURSOR_OUT_OF_RANGE" | "BRIDGE_COMMAND_INVALID" | "TOOL_NOT_FOUND" | "TOOL_INVALID_INPUT" | "TOOL_EXECUTION_ERROR" | "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" | "INTERNAL_ERROR";
199
199
  message: string;
200
200
  details?: Record<string, unknown> | undefined;
201
201
  };
@@ -203,17 +203,17 @@ declare const ApiErrorResponseSchema: z.ZodObject<{
203
203
  type ApiErrorResponse = z.infer<typeof ApiErrorResponseSchema>;
204
204
  declare const ErrorLogFieldsSchema: z.ZodObject<{
205
205
  level: z.ZodEnum<["warn", "error"]>;
206
- code: z.ZodEnum<["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_RUNTIME_NOT_READY", "RUNTIME_PROVISIONING_FAILED", "RUNTIME_PROVISIONING_LOCKED", "BWRAP_UNAVAILABLE", "BWRAP_TIMEOUT", "OUTPUT_TRUNCATED", "SANDBOX_NOT_READY", "SANDBOX_EXPIRED", "VERCEL_API_ERROR", "CIRCUIT_OPEN", "ABORTED", "SESSION_NOT_FOUND", "SESSION_LOCKED", "STREAM_BUFFER_EVICTED", "CURSOR_OUT_OF_RANGE", "BRIDGE_COMMAND_INVALID", "TOOL_NOT_FOUND", "TOOL_INVALID_INPUT", "TOOL_EXECUTION_ERROR", "PLUGIN_LOAD_FAILED", "PLUGIN_NAME_COLLISION", "PLUGIN_RUNTIME_REVISION_MISMATCH", "PLUGIN_RUNTIME_PRIVATE_FILE", "PLUGIN_RUNTIME_UNSAFE_IMPORT", "PLUGIN_RUNTIME_TRANSFORM_FAILED", "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", "INTERNAL_ERROR"]>;
206
+ code: z.ZodEnum<["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_RUNTIME_NOT_READY", "RUNTIME_PROVISIONING_FAILED", "RUNTIME_PROVISIONING_LOCKED", "BWRAP_UNAVAILABLE", "BWRAP_TIMEOUT", "OUTPUT_TRUNCATED", "SANDBOX_NOT_READY", "SANDBOX_EXPIRED", "VERCEL_API_ERROR", "CIRCUIT_OPEN", "ABORTED", "SESSION_NOT_FOUND", "SESSION_LOCKED", "STREAM_BUFFER_EVICTED", "CURSOR_OUT_OF_RANGE", "BRIDGE_COMMAND_INVALID", "TOOL_NOT_FOUND", "TOOL_INVALID_INPUT", "TOOL_EXECUTION_ERROR", "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", "INTERNAL_ERROR"]>;
207
207
  prefix: z.ZodString;
208
208
  msg: z.ZodString;
209
209
  }, "strip", z.ZodUnknown, z.objectOutputType<{
210
210
  level: z.ZodEnum<["warn", "error"]>;
211
- code: z.ZodEnum<["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_RUNTIME_NOT_READY", "RUNTIME_PROVISIONING_FAILED", "RUNTIME_PROVISIONING_LOCKED", "BWRAP_UNAVAILABLE", "BWRAP_TIMEOUT", "OUTPUT_TRUNCATED", "SANDBOX_NOT_READY", "SANDBOX_EXPIRED", "VERCEL_API_ERROR", "CIRCUIT_OPEN", "ABORTED", "SESSION_NOT_FOUND", "SESSION_LOCKED", "STREAM_BUFFER_EVICTED", "CURSOR_OUT_OF_RANGE", "BRIDGE_COMMAND_INVALID", "TOOL_NOT_FOUND", "TOOL_INVALID_INPUT", "TOOL_EXECUTION_ERROR", "PLUGIN_LOAD_FAILED", "PLUGIN_NAME_COLLISION", "PLUGIN_RUNTIME_REVISION_MISMATCH", "PLUGIN_RUNTIME_PRIVATE_FILE", "PLUGIN_RUNTIME_UNSAFE_IMPORT", "PLUGIN_RUNTIME_TRANSFORM_FAILED", "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", "INTERNAL_ERROR"]>;
211
+ code: z.ZodEnum<["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_RUNTIME_NOT_READY", "RUNTIME_PROVISIONING_FAILED", "RUNTIME_PROVISIONING_LOCKED", "BWRAP_UNAVAILABLE", "BWRAP_TIMEOUT", "OUTPUT_TRUNCATED", "SANDBOX_NOT_READY", "SANDBOX_EXPIRED", "VERCEL_API_ERROR", "CIRCUIT_OPEN", "ABORTED", "SESSION_NOT_FOUND", "SESSION_LOCKED", "STREAM_BUFFER_EVICTED", "CURSOR_OUT_OF_RANGE", "BRIDGE_COMMAND_INVALID", "TOOL_NOT_FOUND", "TOOL_INVALID_INPUT", "TOOL_EXECUTION_ERROR", "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", "INTERNAL_ERROR"]>;
212
212
  prefix: z.ZodString;
213
213
  msg: z.ZodString;
214
214
  }, z.ZodUnknown, "strip">, z.objectInputType<{
215
215
  level: z.ZodEnum<["warn", "error"]>;
216
- code: z.ZodEnum<["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_RUNTIME_NOT_READY", "RUNTIME_PROVISIONING_FAILED", "RUNTIME_PROVISIONING_LOCKED", "BWRAP_UNAVAILABLE", "BWRAP_TIMEOUT", "OUTPUT_TRUNCATED", "SANDBOX_NOT_READY", "SANDBOX_EXPIRED", "VERCEL_API_ERROR", "CIRCUIT_OPEN", "ABORTED", "SESSION_NOT_FOUND", "SESSION_LOCKED", "STREAM_BUFFER_EVICTED", "CURSOR_OUT_OF_RANGE", "BRIDGE_COMMAND_INVALID", "TOOL_NOT_FOUND", "TOOL_INVALID_INPUT", "TOOL_EXECUTION_ERROR", "PLUGIN_LOAD_FAILED", "PLUGIN_NAME_COLLISION", "PLUGIN_RUNTIME_REVISION_MISMATCH", "PLUGIN_RUNTIME_PRIVATE_FILE", "PLUGIN_RUNTIME_UNSAFE_IMPORT", "PLUGIN_RUNTIME_TRANSFORM_FAILED", "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", "INTERNAL_ERROR"]>;
216
+ code: z.ZodEnum<["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_RUNTIME_NOT_READY", "RUNTIME_PROVISIONING_FAILED", "RUNTIME_PROVISIONING_LOCKED", "BWRAP_UNAVAILABLE", "BWRAP_TIMEOUT", "OUTPUT_TRUNCATED", "SANDBOX_NOT_READY", "SANDBOX_EXPIRED", "VERCEL_API_ERROR", "CIRCUIT_OPEN", "ABORTED", "SESSION_NOT_FOUND", "SESSION_LOCKED", "STREAM_BUFFER_EVICTED", "CURSOR_OUT_OF_RANGE", "BRIDGE_COMMAND_INVALID", "TOOL_NOT_FOUND", "TOOL_INVALID_INPUT", "TOOL_EXECUTION_ERROR", "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", "INTERNAL_ERROR"]>;
217
217
  prefix: z.ZodString;
218
218
  msg: z.ZodString;
219
219
  }, z.ZodUnknown, "strip">>;
@@ -16,7 +16,7 @@ import {
16
16
  ERROR_CODES,
17
17
  ErrorCode,
18
18
  ErrorLogFieldsSchema
19
- } from "../chunk-UBWQ5LT4.js";
19
+ } from "../chunk-Q7ZLUJQW.js";
20
20
 
21
21
  // src/shared/config-schema.ts
22
22
  import { z } from "zod";
@@ -59,6 +59,11 @@ All API failures must use the response envelope:
59
59
  | `PLUGIN_RUNTIME_PRIVATE_FILE` | Plugin runtime request targeted a disallowed private/non-front file | 403 | user-fix | warn | stable (public API) |
60
60
  | `PLUGIN_RUNTIME_UNSAFE_IMPORT` | Plugin frontend import is browser-unsafe or bypasses the host runtime surface | 400 | user-fix | warn | stable (public API) |
61
61
  | `PLUGIN_RUNTIME_TRANSFORM_FAILED` | Host runtime could not transform the plugin frontend module graph | 500 | report-bug | error | stable (public API) |
62
+ | `RUNTIME_PLUGIN_NOT_FOUND` | Runtime backend gateway could not find a live plugin snapshot | 404 | user-fix | warn | stable (public API) |
63
+ | `RUNTIME_PLUGIN_ROUTE_NOT_FOUND` | Runtime backend gateway could not match an exact plugin-owned route | 404 | user-fix | warn | stable (public API) |
64
+ | `RUNTIME_PLUGIN_HANDLER_FAILED` | Runtime backend handler threw while serving a plugin-owned route | 500 | report-bug | error | stable (public API) |
65
+ | `RUNTIME_PLUGIN_LOAD_FAILED` | Runtime backend module failed to import, validate, capture, or dispose | 500 | report-bug | error | stable (public API) |
66
+ | `RUNTIME_PLUGIN_RESPONSE_UNSUPPORTED` | Runtime backend handler returned an unsupported response value | 500 | report-bug | error | stable (public API) |
62
67
  | `PROVISIONING_LAYOUT_FAILED` | Failed to create/write generated `.boring-agent` layout | 500 | report-bug | error | stable (public API) |
63
68
  | `PROVISIONING_SKILLS_FAILED` | Failed to mirror plugin skills into `.boring-agent/skills` | 500 | report-bug | error | stable (public API) |
64
69
  | `PROVISIONING_TEMPLATES_FAILED` | Failed to seed missing workspace template files | 500 | report-bug | error | stable (public API) |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hachej/boring-agent",
3
- "version": "0.1.32",
3
+ "version": "0.1.34",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "Pane-embeddable coding agent. Ships direct/local/vercel-sandbox execution modes behind one interface.",
@@ -75,7 +75,7 @@
75
75
  "use-stick-to-bottom": "^1.1.3",
76
76
  "yaml": "^2.8.3",
77
77
  "zod": "^3.25.76",
78
- "@hachej/boring-ui-kit": "0.1.32"
78
+ "@hachej/boring-ui-kit": "0.1.34"
79
79
  },
80
80
  "devDependencies": {
81
81
  "@opentelemetry/api": "^1.9.1",