@hachej/boring-agent 0.1.31 → 0.1.33

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.
@@ -1,5 +1,5 @@
1
- import { A as AgentTool } from '../harness-CQ0uw6xW.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-CQ0uw6xW.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';
@@ -34,8 +34,8 @@ All API failures must use the response envelope:
34
34
  | `PATH_NOT_WRITABLE` | Path parent missing or write denied | 403 | user-fix | warn | stable (public API) |
35
35
  | `WORKSPACE_UNINITIALIZED` | Workspace adapter/store not initialized yet | 503 | retry | warn | stable (public API) |
36
36
  | `WORKSPACE_NOT_READY` | Workspace substrate (`workspace-fs`, `sandbox-exec`, or `ui-bridge`) is still preparing | 503 | retry | warn | stable (public API) |
37
- | `AGENT_RUNTIME_NOT_READY` | Selected workspace agent runtime is still preparing | 503 | retry | warn | stable (public API) |
38
- | `RUNTIME_PROVISIONING_FAILED` | Agent runtime provisioning failed before runtime became ready | 503 | retry/report | error | stable (public API) |
37
+ | `AGENT_RUNTIME_NOT_READY` | Selected workspace runtime dependencies (`runtime-dependencies` or `runtime:<name>`, e.g. `runtime:python`/`runtime:node`) are still preparing | 503 | retry | warn | stable (public API) |
38
+ | `RUNTIME_PROVISIONING_FAILED` | Agent runtime dependency provisioning failed before Level 3 runtime dependencies became ready | 503 | retry/report | error | stable (public API) |
39
39
  | `RUNTIME_PROVISIONING_LOCKED` | Agent runtime provisioning is locked by another reconciler | 423 | retry | warn | stable (public API) |
40
40
  | `BWRAP_UNAVAILABLE` | `bwrap` binary not found | 500 | report-bug | error | stable (public API) |
41
41
  | `BWRAP_TIMEOUT` | Sandbox command exceeded timeout | 408 | retry | warn | stable (public API) |
@@ -68,3 +68,39 @@ All API failures must use the response envelope:
68
68
  | `PROVISIONING_UV_INSTALL_FAILED` | uv venv or uv pip install failed | 500 | user-fix | error | stable (public API) |
69
69
  | `PROVISIONING_ARTIFACT_FAILED` | Runtime-mode adapter failed to prepare/upload install artifact | 500 | retry | error | stable (public API) |
70
70
  | `INTERNAL_ERROR` | Catch-all internal failure | 500 | report-bug | error | internal (may change) |
71
+
72
+ ## Readiness error details
73
+
74
+ `WORKSPACE_NOT_READY` is reserved for workspace substrate requirements:
75
+
76
+ ```json
77
+ {
78
+ "code": "WORKSPACE_NOT_READY",
79
+ "retryable": true,
80
+ "requirement": "workspace-fs"
81
+ }
82
+ ```
83
+
84
+ Runtime dependency preparation is separate so chat/file work can continue while `.boring-agent` dependencies install:
85
+
86
+ ```json
87
+ {
88
+ "code": "AGENT_RUNTIME_NOT_READY",
89
+ "retryable": true,
90
+ "requirement": "runtime:python",
91
+ "state": "preparing",
92
+ "workspaceId": "workspace_123"
93
+ }
94
+ ```
95
+
96
+ If dependency provisioning fails, dependency-backed tools return:
97
+
98
+ ```json
99
+ {
100
+ "code": "RUNTIME_PROVISIONING_FAILED",
101
+ "retryable": true,
102
+ "requirement": "runtime:python",
103
+ "state": "failed",
104
+ "causeCode": "PROVISIONING_UV_INSTALL_FAILED"
105
+ }
106
+ ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hachej/boring-agent",
3
- "version": "0.1.31",
3
+ "version": "0.1.33",
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.31"
78
+ "@hachej/boring-ui-kit": "0.1.33"
79
79
  },
80
80
  "devDependencies": {
81
81
  "@opentelemetry/api": "^1.9.1",
@@ -129,6 +129,8 @@
129
129
  "lint": "pnpm run typecheck && pnpm run lint:invariants",
130
130
  "lint:invariants": "bash ../../scripts/check-invariants.sh .",
131
131
  "clean": "rm -rf dist .tsbuildinfo",
132
- "smoke:vercel-sandbox": "tsx ./scripts/smoke-vercel-sandbox.mts"
132
+ "smoke:vercel-sandbox": "tsx ./scripts/smoke-vercel-sandbox.mts",
133
+ "smoke:capability-readiness": "tsx ./scripts/smoke-capability-readiness.mts",
134
+ "smoke:capability-readiness:vercel": "tsx ./scripts/smoke-capability-readiness-vercel.mts"
133
135
  }
134
136
  }