@claudexor/schema 5.0.1 → 5.1.0

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.
Files changed (229) hide show
  1. package/dist/account-routing-evidence.d.ts +256 -0
  2. package/dist/account-routing-evidence.d.ts.map +1 -1
  3. package/dist/account-routing-evidence.js +27 -2
  4. package/dist/account-routing-evidence.js.map +1 -1
  5. package/dist/agent-capabilities.d.ts +3 -0
  6. package/dist/agent-capabilities.d.ts.map +1 -1
  7. package/dist/agent-capabilities.js +6 -2
  8. package/dist/agent-capabilities.js.map +1 -1
  9. package/dist/attachment.d.ts +103 -6
  10. package/dist/attachment.d.ts.map +1 -1
  11. package/dist/attachment.js +32 -6
  12. package/dist/attachment.js.map +1 -1
  13. package/dist/browser-evidence.d.ts +85 -0
  14. package/dist/browser-evidence.d.ts.map +1 -0
  15. package/dist/browser-evidence.js +72 -0
  16. package/dist/browser-evidence.js.map +1 -0
  17. package/dist/config.d.ts.map +1 -1
  18. package/dist/config.js +1 -1
  19. package/dist/config.js.map +1 -1
  20. package/dist/control-gc.d.ts +30 -0
  21. package/dist/control-gc.d.ts.map +1 -1
  22. package/dist/control-gc.js +28 -1
  23. package/dist/control-gc.js.map +1 -1
  24. package/dist/control-operation-responses.d.ts +438 -36
  25. package/dist/control-operation-responses.d.ts.map +1 -1
  26. package/dist/control-operation-responses.js +11 -2
  27. package/dist/control-operation-responses.js.map +1 -1
  28. package/dist/control-process-scope.d.ts +34 -0
  29. package/dist/control-process-scope.d.ts.map +1 -1
  30. package/dist/control-process-scope.js +13 -0
  31. package/dist/control-process-scope.js.map +1 -1
  32. package/dist/control-run-detail.d.ts +785 -89
  33. package/dist/control-run-detail.d.ts.map +1 -1
  34. package/dist/control-run-event-part.d.ts +3 -3
  35. package/dist/control-run-failure.d.ts +29 -6
  36. package/dist/control-run-failure.d.ts.map +1 -1
  37. package/dist/control-run-failure.js +28 -3
  38. package/dist/control-run-failure.js.map +1 -1
  39. package/dist/control-trust.d.ts +8 -0
  40. package/dist/control-trust.d.ts.map +1 -1
  41. package/dist/control-trust.js +4 -0
  42. package/dist/control-trust.js.map +1 -1
  43. package/dist/control-web-evidence.d.ts +125 -0
  44. package/dist/control-web-evidence.d.ts.map +1 -0
  45. package/dist/control-web-evidence.js +109 -0
  46. package/dist/control-web-evidence.js.map +1 -0
  47. package/dist/control.d.ts +292 -98
  48. package/dist/control.d.ts.map +1 -1
  49. package/dist/control.js +43 -49
  50. package/dist/control.js.map +1 -1
  51. package/dist/credential-profile.d.ts +4 -3
  52. package/dist/credential-profile.d.ts.map +1 -1
  53. package/dist/credential-profile.js +4 -3
  54. package/dist/credential-profile.js.map +1 -1
  55. package/dist/decision.d.ts +9 -9
  56. package/dist/decision.d.ts.map +1 -1
  57. package/dist/decision.js +2 -0
  58. package/dist/decision.js.map +1 -1
  59. package/dist/deferred-message.d.ts +646 -0
  60. package/dist/deferred-message.d.ts.map +1 -1
  61. package/dist/deferred-message.js +16 -2
  62. package/dist/deferred-message.js.map +1 -1
  63. package/dist/events.d.ts +10 -10
  64. package/dist/events.d.ts.map +1 -1
  65. package/dist/events.js +6 -0
  66. package/dist/events.js.map +1 -1
  67. package/dist/harness-confinement.js +1 -1
  68. package/dist/harness-confinement.js.map +1 -1
  69. package/dist/harness-input.d.ts +12 -0
  70. package/dist/harness-input.d.ts.map +1 -1
  71. package/dist/harness-input.js +11 -1
  72. package/dist/harness-input.js.map +1 -1
  73. package/dist/harness-interaction.d.ts +20 -0
  74. package/dist/harness-interaction.d.ts.map +1 -1
  75. package/dist/harness-interaction.js +36 -0
  76. package/dist/harness-interaction.js.map +1 -1
  77. package/dist/harness.d.ts +95 -19
  78. package/dist/harness.d.ts.map +1 -1
  79. package/dist/harness.js +16 -15
  80. package/dist/harness.js.map +1 -1
  81. package/dist/index.d.ts +5 -0
  82. package/dist/index.d.ts.map +1 -1
  83. package/dist/index.js +5 -0
  84. package/dist/index.js.map +1 -1
  85. package/dist/mcp-run-result.d.ts +363 -50
  86. package/dist/mcp-run-result.d.ts.map +1 -1
  87. package/dist/mcp-run-wait.d.ts +133 -7
  88. package/dist/mcp-run-wait.d.ts.map +1 -1
  89. package/dist/operation.d.ts +1 -1
  90. package/dist/operation.d.ts.map +1 -1
  91. package/dist/operation.js +1 -1
  92. package/dist/operation.js.map +1 -1
  93. package/dist/process-scope.d.ts +154 -0
  94. package/dist/process-scope.d.ts.map +1 -1
  95. package/dist/process-scope.js +16 -1
  96. package/dist/process-scope.js.map +1 -1
  97. package/dist/quota.d.ts +14 -0
  98. package/dist/quota.d.ts.map +1 -1
  99. package/dist/quota.js +14 -0
  100. package/dist/quota.js.map +1 -1
  101. package/dist/rate-limit.d.ts +3 -0
  102. package/dist/rate-limit.d.ts.map +1 -1
  103. package/dist/rate-limit.js +4 -0
  104. package/dist/rate-limit.js.map +1 -1
  105. package/dist/raw.d.ts.map +1 -1
  106. package/dist/raw.js +11 -5
  107. package/dist/raw.js.map +1 -1
  108. package/dist/route-controls.d.ts +49 -0
  109. package/dist/route-controls.d.ts.map +1 -0
  110. package/dist/route-controls.js +53 -0
  111. package/dist/route-controls.js.map +1 -0
  112. package/dist/route-health.d.ts +23 -23
  113. package/dist/route-health.js +1 -1
  114. package/dist/route-health.js.map +1 -1
  115. package/dist/run-continuation.d.ts +6 -6
  116. package/dist/run-continuity.d.ts +7 -7
  117. package/dist/run-continuity.d.ts.map +1 -1
  118. package/dist/run-continuity.js +2 -1
  119. package/dist/run-continuity.js.map +1 -1
  120. package/dist/run-facts.d.ts +5 -5
  121. package/dist/run-facts.js +1 -1
  122. package/dist/run-facts.js.map +1 -1
  123. package/dist/status-projection.d.ts +3 -2
  124. package/dist/status-projection.d.ts.map +1 -1
  125. package/dist/status-projection.js +5 -2
  126. package/dist/status-projection.js.map +1 -1
  127. package/dist/task-group.d.ts +3 -0
  128. package/dist/task-group.d.ts.map +1 -1
  129. package/dist/task-group.js +11 -1
  130. package/dist/task-group.js.map +1 -1
  131. package/dist/task.d.ts +2 -2
  132. package/dist/task.d.ts.map +1 -1
  133. package/dist/task.js +4 -4
  134. package/dist/task.js.map +1 -1
  135. package/dist/telemetry.d.ts +602 -117
  136. package/dist/telemetry.d.ts.map +1 -1
  137. package/dist/telemetry.js +17 -88
  138. package/dist/telemetry.js.map +1 -1
  139. package/dist/thread-export.d.ts +847 -0
  140. package/dist/thread-export.d.ts.map +1 -0
  141. package/dist/thread-export.js +238 -0
  142. package/dist/thread-export.js.map +1 -0
  143. package/dist/thread-history.d.ts +248 -132
  144. package/dist/thread-history.d.ts.map +1 -1
  145. package/dist/thread.d.ts +72 -6
  146. package/dist/thread.d.ts.map +1 -1
  147. package/dist/thread.js +19 -3
  148. package/dist/thread.js.map +1 -1
  149. package/dist/tool-ref.d.ts +172 -21
  150. package/dist/tool-ref.d.ts.map +1 -1
  151. package/dist/tool-ref.js +114 -29
  152. package/dist/tool-ref.js.map +1 -1
  153. package/dist/web-evidence.d.ts +91 -0
  154. package/dist/web-evidence.d.ts.map +1 -0
  155. package/dist/web-evidence.js +77 -0
  156. package/dist/web-evidence.js.map +1 -0
  157. package/dist/workspace-preparation.d.ts +54 -0
  158. package/dist/workspace-preparation.d.ts.map +1 -0
  159. package/dist/workspace-preparation.js +59 -0
  160. package/dist/workspace-preparation.js.map +1 -0
  161. package/dist/workspace.js +1 -1
  162. package/dist/workspace.js.map +1 -1
  163. package/generated/AgentCapabilityCatalog.schema.json +20 -2
  164. package/generated/ControlAccountRoutingEvidenceResponse.schema.json +61 -1
  165. package/generated/ControlCredentialProfilesQueryResponse.schema.json +2 -2
  166. package/generated/ControlCredentialProfilesResourcesResponse.schema.json +2 -2
  167. package/generated/ControlCredentialProfilesSnapshotResponse.schema.json +2 -2
  168. package/generated/ControlGcLastResponse.schema.json +22 -0
  169. package/generated/ControlGcReceipt.schema.json +13 -1
  170. package/generated/ControlHarnessListResponse.schema.json +2 -2
  171. package/generated/ControlQueuedRunInfo.schema.json +1 -1
  172. package/generated/ControlResource.schema.json +5 -0
  173. package/generated/ControlResourceRelease.schema.json +44 -0
  174. package/generated/ControlResourceReleaseRequest.schema.json +27 -0
  175. package/generated/ControlRetainedEnvelope.schema.json +2 -1
  176. package/generated/ControlRouteHealth.schema.json +13 -1
  177. package/generated/ControlRunControlResponse.schema.json +41 -3
  178. package/generated/ControlRunDecisionRequest.schema.json +8 -2
  179. package/generated/ControlRunDecisionResponse.schema.json +4 -3
  180. package/generated/ControlRunDetail.schema.json +337 -10
  181. package/generated/ControlRunEventPart.schema.json +1 -0
  182. package/generated/ControlRunListResponse.schema.json +296 -7
  183. package/generated/ControlRunRetryResponse.schema.json +1 -1
  184. package/generated/ControlRunStartInfo.schema.json +1 -1
  185. package/generated/ControlRunStartResponse.schema.json +2 -2
  186. package/generated/ControlRunSummary.schema.json +296 -7
  187. package/generated/ControlThreadDetail.schema.json +1 -0
  188. package/generated/ControlThreadTurnResponse.schema.json +9 -0
  189. package/generated/ControlTrustListResponse.schema.json +8 -0
  190. package/generated/ControlTrustState.schema.json +8 -0
  191. package/generated/ControlUploadImport.schema.json +12 -2
  192. package/generated/ControlUploadImportRequest.schema.json +5 -0
  193. package/generated/DecisionRecord.schema.json +1 -0
  194. package/generated/DeferredMessageDetail.schema.json +43 -7
  195. package/generated/DeferredMessageProjection.schema.json +41 -3
  196. package/generated/DeferredMessageReadResult.schema.json +42 -4
  197. package/generated/DeferredMessageReceipt.schema.json +41 -3
  198. package/generated/EnvelopeCustody.schema.json +3 -2
  199. package/generated/GlobalConfig.schema.json +1 -1
  200. package/generated/HarnessEvent.schema.json +140 -4
  201. package/generated/HarnessManifest.schema.json +2 -2
  202. package/generated/HarnessStatusDto.schema.json +2 -2
  203. package/generated/McpAccountsToolResult.schema.json +62 -2
  204. package/generated/McpRunHandleResult.schema.json +90 -6
  205. package/generated/McpRunToolResult.schema.json +89 -6
  206. package/generated/McpRunWaitResult.schema.json +42 -3
  207. package/generated/McpThreadTurnResult.schema.json +9 -0
  208. package/generated/RawContextPacket.schema.json +6 -4
  209. package/generated/RawGitPatchEnvelope.schema.json +1 -1
  210. package/generated/RoutePoolDegradedPayload.schema.json +2 -1
  211. package/generated/RunContinuityReceipt.schema.json +2 -1
  212. package/generated/RunEvent.schema.json +1 -0
  213. package/generated/RunFacts.schema.json +1 -0
  214. package/generated/RunFailure.schema.json +46 -2
  215. package/generated/RunResumable.schema.json +2 -1
  216. package/generated/RunTelemetry.schema.json +288 -7
  217. package/generated/TaskContract.schema.json +3 -3
  218. package/generated/TaskGroupReceipt.schema.json +1 -1
  219. package/generated/Thread.schema.json +41 -0
  220. package/generated/ThreadExportManifest.schema.json +461 -0
  221. package/generated/ThreadExportReceipt.schema.json +94 -0
  222. package/generated/ThreadHistoryPage.schema.json +47 -2
  223. package/generated/ThreadRetireAbandonRequest.schema.json +21 -0
  224. package/generated/ThreadRetireRequest.schema.json +41 -0
  225. package/generated/ThreadRetirement.schema.json +175 -0
  226. package/generated/ThreadTurn.schema.json +1 -1
  227. package/generated/WorkspaceEnvelope.schema.json +1 -1
  228. package/generated/WorkspacePreparedPayload.schema.json +67 -0
  229. package/package.json +2 -2
package/dist/tool-ref.js CHANGED
@@ -6,18 +6,28 @@ import { z } from "zod/v3";
6
6
  export const ToolKind = z
7
7
  .enum(["web", "file", "command", "mcp", "search", "other"])
8
8
  .describe("Coarse tool classification used for typed governance; adapters map native tool names to a kind.");
9
+ /**
10
+ * #546: the vendor's own report that a background command ended, as far as a
11
+ * protocol source defines it. It is neither an exit code nor the success of the
12
+ * command's work, and a word outside this list is no report at all.
13
+ */
14
+ export const ToolCommandCompletionStatus = z
15
+ .enum(["success", "error", "aborted"])
16
+ .describe("The vendor's word for how a background command ended (Cursor 2026.08.11 shell completions); never an exit code or proof that the command's work succeeded.");
9
17
  /**
10
18
  * #450: what a command-kind tool result established about the PROCESS it
11
19
  * ran, separate from `status` (the tool call's own outcome). A background
12
20
  * handoff or an elapsed timeout returns an ordinary tool result while the
13
21
  * command's end is unobserved, so neither counts as a finished command.
22
+ * #546: a later `command_outcome_refined` status can replace these facts for
23
+ * the same call (`completion_reported`), keeping the handoff facts beside it.
14
24
  * Absent on adapters and legacy events that do not report it.
15
25
  */
16
26
  export const ToolCommandOutcome = z
17
27
  .object({
18
28
  state: z
19
- .enum(["exited", "timed_out", "backgrounded", "unknown"])
20
- .describe("exited: the tool observed the command end; timed_out: the tool's timeout elapsed before an observed end (the process may still run or may have been signalled); backgrounded: the command was handed to a background shell and was still running when the result returned; unknown: the native result established none of these."),
29
+ .enum(["exited", "timed_out", "backgrounded", "completion_reported", "unknown"])
30
+ .describe("exited: the tool observed the command end; timed_out: the tool's timeout elapsed before an observed end (the process may still run or may have been signalled); backgrounded: the command was handed to a background shell and was still running when the result returned; completion_reported: after such a handoff, a later vendor notification reported that the command ended, without an exit code; unknown: the native result established none of these."),
21
31
  signal: z
22
32
  .string()
23
33
  .min(1)
@@ -39,8 +49,63 @@ export const ToolCommandOutcome = z
39
49
  .optional()
40
50
  .describe("Vendor handle of the background shell that kept the command."),
41
51
  pid: z.number().int().positive().optional().describe("Vendor-reported process id."),
52
+ completion_status: ToolCommandCompletionStatus.optional().describe("What the vendor reported about a completion_reported command; never an exit code."),
42
53
  })
43
54
  .describe("Typed facts about the process a command-kind tool ran, separate from status.");
55
+ /**
56
+ * #546: `payload.code` of the `status` event that refines the command outcome
57
+ * of an earlier tool call (today: Cursor reports the end of a command it had
58
+ * handed to a background shell). Its `tool` names that call by `use_id` and
59
+ * carries the refined `command_outcome`, which replaces the call's handoff
60
+ * facts and keeps them beside the new state. It is only ever
61
+ * `completion_reported` with a defined status: it can never prove an exit,
62
+ * restates or changes no call `status`, carries no exit code, and is never a
63
+ * second result. A reader that does not know the code sees an ordinary status
64
+ * event.
65
+ */
66
+ export const COMMAND_OUTCOME_REFINED = "command_outcome_refined";
67
+ /** The call and refined command facts of a `command_outcome_refined` status
68
+ * event or of its stored `harness.event` payload; null for anything else,
69
+ * including a row that claims an exit or an undefined report. */
70
+ export function commandOutcomeRefinement(event) {
71
+ const row = (event !== null && typeof event === "object" ? event : {});
72
+ if (row.type !== "status" || row.payload?.code !== COMMAND_OUTCOME_REFINED)
73
+ return null;
74
+ const useId = row.tool?.use_id;
75
+ const outcome = ToolCommandOutcome.safeParse(row.tool?.command_outcome);
76
+ return typeof useId === "string" &&
77
+ useId &&
78
+ outcome.success &&
79
+ outcome.data.state === "completion_reported" &&
80
+ outcome.data.completion_status
81
+ ? { useId, outcome: outcome.data }
82
+ : null;
83
+ }
84
+ /**
85
+ * #546: what an attempt keeps of the vendor's reports about commands it had
86
+ * handed to a background shell: the exact call and its refined facts. These are
87
+ * command facts, never tool errors, so no recovery, warning, terminal or ranking
88
+ * policy reads them: a deliberately stopped dev server reports `aborted` and may
89
+ * simply have finished correctly. `recent` is bounded by the writer and `total`
90
+ * keeps the true count.
91
+ */
92
+ export const ReportedCommandOutcomes = z
93
+ .object({
94
+ total: z.number().int().nonnegative().describe("True count of reports in this attempt."),
95
+ recent: z
96
+ .array(z.object({
97
+ tool: z.string().describe("Native tool name of the reported call."),
98
+ target: z
99
+ .string()
100
+ .nullable()
101
+ .default(null)
102
+ .describe("Target of the call as issued, when known."),
103
+ tool_use_id: z.string().min(1).describe("The exact call the report refined."),
104
+ command_outcome: ToolCommandOutcome.describe("The call's refined facts: the vendor's word and the handoff, never an exit code."),
105
+ }))
106
+ .describe("The most recent reports, bounded by the writer."),
107
+ })
108
+ .describe("Vendor reports about handed-off commands, kept apart from tool errors.");
44
109
  /**
45
110
  * Typed tool reference attached to `tool_call` / `tool_result` events.
46
111
  * `status` is REQUIRED on `tool_result` events (adapter conformance enforces it);
@@ -89,26 +154,38 @@ export const ToolRef = z
89
154
  /**
90
155
  * QA-042: adapter-stamped RETRIEVAL outcome for a web/browser tool result,
91
156
  * distinct from `status` (the tool-call LIFECYCLE). `verified` = the vendor
92
- * exposed a typed successful retrieval (content/page present); `dispatched`
93
- * = the tool call completed but the vendor exposes NO typed fetch outcome
94
- * (codex `web_search`/`open_page` — a completed item can hide a 502), so the
95
- * evidence is dispatch-only, not proof of content; `failed` = a typed
96
- * retrieval failure. Absent on non-web tools and on adapters that do not
97
- * stamp it. The engine reads THIS (never prose) to separate "web reached"
98
- * from "web verified".
157
+ * exposed a typed successful retrieval, and `web_content` says what it
158
+ * returned; `dispatched` = the call completed but the vendor exposes NO typed
159
+ * fetch outcome (codex `web_search`/`open_page` — a completed item can hide a
160
+ * 502; a Browser page read that got an HTTP error), so the evidence is
161
+ * dispatch-only, not proof of content; `failed` = a typed retrieval failure.
162
+ * Absent on non-web tools, on a Browser call that read no web page (#118),
163
+ * and on adapters that do not stamp it. The engine reads THIS (never prose)
164
+ * to separate "web reached" from "web verified".
99
165
  */
100
166
  web_retrieval: z
101
167
  .enum(["verified", "dispatched", "failed"])
102
168
  .optional()
103
169
  .describe("Adapter-stamped web/browser retrieval outcome (verified/dispatched/failed), distinct from the tool-call status lifecycle."),
170
+ /**
171
+ * #118: what a `verified` retrieval returned. `page` = a fetched or loaded
172
+ * page (claude WebFetch; a Browser navigation or snapshot of an http(s) page
173
+ * with no HTTP error); `search_results` = the results of a web search
174
+ * (claude WebSearch), which is not a fetched page. Absent otherwise.
175
+ */
176
+ web_content: z
177
+ .enum(["page", "search_results"])
178
+ .optional()
179
+ .describe("What a verified web retrieval returned: page (a fetched or loaded page) or search_results (a web search's results, not a fetched page)."),
104
180
  })
105
181
  .describe("Typed tool reference attached to tool_call/tool_result events.");
106
182
  /**
107
183
  * True when a result carries command facts that do not establish an observed
108
- * end: still running in a background shell, timed out, or any other state.
109
- * Such a result never proves the command finished, so it is never a success
110
- * or a recovery. Absent facts (other adapters, legacy events) keep their
111
- * existing meaning; an unrecognized value counts as unconfirmed.
184
+ * exit: handed to a background shell, timed out, a completion reported
185
+ * without an exit code, or any other state. Such a result never proves the
186
+ * command finished successfully, so it is never a success or a recovery.
187
+ * Absent facts (other adapters, legacy events) keep their existing meaning;
188
+ * an unrecognized value counts as unconfirmed.
112
189
  */
113
190
  export function commandOutcomeUnconfirmed(value) {
114
191
  if (value === undefined || value === null)
@@ -123,8 +200,12 @@ function durationLabel(ms) {
123
200
  }
124
201
  /**
125
202
  * The one English description of an unconfirmed command outcome (INV-134,
126
- * INV-141), used by adapter result text and ACP. Null when nothing needs
127
- * disclosure: no facts, or an observed exit.
203
+ * INV-141), used by adapter text, ACP and the continuation packet; the macOS
204
+ * note mirrors it word for word. A handoff says only what was seen: the
205
+ * command went to a background shell and its completion was not observed,
206
+ * never that it is still running. A reported completion leads with the
207
+ * report, keeps the exit code unknown and keeps the handoff as history. Null
208
+ * when nothing needs disclosure: no facts, or an observed exit.
128
209
  */
129
210
  export function commandOutcomeLabel(value) {
130
211
  if (!commandOutcomeUnconfirmed(value))
@@ -134,19 +215,23 @@ export function commandOutcomeLabel(value) {
134
215
  return "Command outcome not reported";
135
216
  const { state, timeout_ms: ms, background_reason: reason, shell_id, pid } = parsed.data;
136
217
  const handle = [shell_id && `shell ${shell_id}`, pid && `pid ${pid}`].filter(Boolean);
137
- const lead = state === "timed_out"
138
- ? [
139
- ms === undefined ? "Timed out" : `Timed out after ${durationLabel(ms)}`,
140
- "exit status unknown",
141
- ]
142
- : reason === "timeout" && ms !== 0
143
- ? [
144
- ms === undefined
145
- ? "Moved to background after its timeout"
146
- : `Moved to background after ${durationLabel(ms)}`,
147
- "still running",
148
- ]
149
- : ["Running in background"];
150
- return [...lead, ...handle].join(" · ");
218
+ if (state === "timed_out") {
219
+ const lead = ms === undefined ? "Timed out" : `Timed out after ${durationLabel(ms)}`;
220
+ return [lead, "exit status unknown", ...handle].join(" · ");
221
+ }
222
+ const after = reason === "timeout" && ms !== 0
223
+ ? ms === undefined
224
+ ? " after its timeout"
225
+ : ` after its ${durationLabel(ms)} timeout`
226
+ : "";
227
+ if (state === "backgrounded")
228
+ return [`Handed off to background${after}; completion not observed`, ...handle].join(" · ");
229
+ const vendor = parsed.data.completion_status;
230
+ const reported = vendor && vendor !== "success" ? ` (${vendor})` : "";
231
+ return [
232
+ `Completion reported${reported}; exit code unknown`,
233
+ `handed off to background${after}`,
234
+ ...handle,
235
+ ].join(" · ");
151
236
  }
152
237
  //# sourceMappingURL=tool-ref.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-ref.js","sourceRoot":"","sources":["../src/tool-ref.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-ref.js","sourceRoot":"","sources":["../src/tool-ref.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ import { z } from "zod/v3";
2
+ export declare const WebEvidenceStatus: z.ZodEnum<["none", "attempted", "satisfied", "failed", "unverified"]>;
3
+ export type WebEvidenceStatus = z.infer<typeof WebEvidenceStatus>;
4
+ /**
5
+ * What web evidence covers (#118). Every engine version has observed the same
6
+ * two things, so the default is also true of records written before it: the
7
+ * harness's typed web tool calls and calls to the engine Browser MCP. Process
8
+ * network traffic is not measured: the vendor API connection always exists, and
9
+ * an allowed shell command or another tool can reach the network without a web
10
+ * tool call. `attempted: false` is therefore never a statement about network use.
11
+ */
12
+ export declare const WebObservation: z.ZodObject<{
13
+ evidence: z.ZodLiteral<"tool_calls">;
14
+ network: z.ZodLiteral<"not_measured">;
15
+ }, "strip", z.ZodTypeAny, {
16
+ evidence: "tool_calls";
17
+ network: "not_measured";
18
+ }, {
19
+ evidence: "tool_calls";
20
+ network: "not_measured";
21
+ }>;
22
+ export type WebObservation = z.infer<typeof WebObservation>;
23
+ export declare const WebEvidenceRecord: z.ZodObject<{
24
+ required: z.ZodDefault<z.ZodBoolean>;
25
+ policy: z.ZodDefault<z.ZodEnum<["off", "auto", "cached", "live"]>>;
26
+ effective_mode: z.ZodDefault<z.ZodEnum<["off", "auto", "cached", "live"]>>;
27
+ attempted: z.ZodDefault<z.ZodBoolean>;
28
+ satisfied: z.ZodDefault<z.ZodBoolean>;
29
+ status: z.ZodDefault<z.ZodEnum<["none", "attempted", "satisfied", "failed", "unverified"]>>;
30
+ /**
31
+ * QA-042: retrieval STRENGTH of satisfied/attempted web activity, orthogonal
32
+ * to `status`. `verified` = at least one result was a typed successful
33
+ * retrieval, and `verified_content` says whether it was a page or search
34
+ * results; `dispatched` = a web call completed without one (codex
35
+ * `web_search`/`open_page`, a Browser page read that got an HTTP error);
36
+ * `none` = no search or page retrieval was observed. #118: a Browser call
37
+ * that read no web page (closing, clicking, tabs, about:blank) still makes
38
+ * `satisfied` true, as the required-web gate always counted it, but leaves
39
+ * the strength at `none`. A surface renders "Web verified" only for a
40
+ * verified page and "Web searched" for verified search results.
41
+ */
42
+ verification: z.ZodDefault<z.ZodEnum<["verified", "dispatched", "none"]>>;
43
+ verified_content: z.ZodDefault<z.ZodNullable<z.ZodEnum<["page", "search_results"]>>>;
44
+ tool: z.ZodDefault<z.ZodNullable<z.ZodString>>;
45
+ target: z.ZodDefault<z.ZodNullable<z.ZodString>>;
46
+ error_summary: z.ZodDefault<z.ZodNullable<z.ZodString>>;
47
+ observation: z.ZodDefault<z.ZodObject<{
48
+ evidence: z.ZodLiteral<"tool_calls">;
49
+ network: z.ZodLiteral<"not_measured">;
50
+ }, "strip", z.ZodTypeAny, {
51
+ evidence: "tool_calls";
52
+ network: "not_measured";
53
+ }, {
54
+ evidence: "tool_calls";
55
+ network: "not_measured";
56
+ }>>;
57
+ }, "strip", z.ZodTypeAny, {
58
+ required: boolean;
59
+ policy: "auto" | "cached" | "live" | "off";
60
+ effective_mode: "auto" | "cached" | "live" | "off";
61
+ attempted: boolean;
62
+ satisfied: boolean;
63
+ status: "attempted" | "failed" | "none" | "satisfied" | "unverified";
64
+ verification: "dispatched" | "none" | "verified";
65
+ verified_content: "page" | "search_results" | null;
66
+ tool: string | null;
67
+ target: string | null;
68
+ error_summary: string | null;
69
+ observation: {
70
+ evidence: "tool_calls";
71
+ network: "not_measured";
72
+ };
73
+ }, {
74
+ required?: boolean | undefined;
75
+ policy?: "auto" | "cached" | "live" | "off" | undefined;
76
+ effective_mode?: "auto" | "cached" | "live" | "off" | undefined;
77
+ attempted?: boolean | undefined;
78
+ satisfied?: boolean | undefined;
79
+ status?: "attempted" | "failed" | "none" | "satisfied" | "unverified" | undefined;
80
+ verification?: "dispatched" | "none" | "verified" | undefined;
81
+ verified_content?: "page" | "search_results" | null | undefined;
82
+ tool?: string | null | undefined;
83
+ target?: string | null | undefined;
84
+ error_summary?: string | null | undefined;
85
+ observation?: {
86
+ evidence: "tool_calls";
87
+ network: "not_measured";
88
+ } | undefined;
89
+ }>;
90
+ export type WebEvidenceRecord = z.infer<typeof WebEvidenceRecord>;
91
+ //# sourceMappingURL=web-evidence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-evidence.d.ts","sourceRoot":"","sources":["../src/web-evidence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,eAAO,MAAM,iBAAiB,uEAE0D,CAAC;AACzF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc;;;;;;;;;EAWqE,CAAC;AACjG,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,eAAO,MAAM,iBAAiB;;;;;;;IAoB1B;;;;;;;;;;;OAWG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiCJ,CAAC;AACJ,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,77 @@
1
+ import { z } from "zod/v3";
2
+ import { ExternalContextPolicy } from "./primitives.js";
3
+ export const WebEvidenceStatus = z
4
+ .enum(["none", "attempted", "satisfied", "failed", "unverified"])
5
+ .describe("Observed web activity: none, attempted, satisfied, failed, or unverified.");
6
+ /**
7
+ * What web evidence covers (#118). Every engine version has observed the same
8
+ * two things, so the default is also true of records written before it: the
9
+ * harness's typed web tool calls and calls to the engine Browser MCP. Process
10
+ * network traffic is not measured: the vendor API connection always exists, and
11
+ * an allowed shell command or another tool can reach the network without a web
12
+ * tool call. `attempted: false` is therefore never a statement about network use.
13
+ */
14
+ export const WebObservation = z
15
+ .object({
16
+ evidence: z
17
+ .literal("tool_calls")
18
+ .describe("Web evidence comes from typed web tool calls and engine Browser MCP calls."),
19
+ network: z
20
+ .literal("not_measured")
21
+ .describe("Process network traffic is not measured: vendor API traffic, shell commands and other tools can use the network without appearing here."),
22
+ })
23
+ .describe("Scope of the web evidence: observed tool calls only, never a network measurement.");
24
+ export const WebEvidenceRecord = z
25
+ .object({
26
+ required: z.boolean().default(false).describe("Explicit stored web requirement."),
27
+ policy: ExternalContextPolicy.default("auto").describe("Requested web policy for the run."),
28
+ effective_mode: ExternalContextPolicy.default("auto").describe("Policy given to the harness route, after disclosed upgrades (e.g. cached to live); not proof that a native session ran."),
29
+ attempted: z
30
+ .boolean()
31
+ .default(false)
32
+ .describe("Whether a web tool call or engine Browser call was observed; not a network measurement (see observation)."),
33
+ satisfied: z
34
+ .boolean()
35
+ .default(false)
36
+ .describe("Completed without a typed failure; verification records retrieval-proof strength."),
37
+ status: WebEvidenceStatus.default("none"),
38
+ /**
39
+ * QA-042: retrieval STRENGTH of satisfied/attempted web activity, orthogonal
40
+ * to `status`. `verified` = at least one result was a typed successful
41
+ * retrieval, and `verified_content` says whether it was a page or search
42
+ * results; `dispatched` = a web call completed without one (codex
43
+ * `web_search`/`open_page`, a Browser page read that got an HTTP error);
44
+ * `none` = no search or page retrieval was observed. #118: a Browser call
45
+ * that read no web page (closing, clicking, tabs, about:blank) still makes
46
+ * `satisfied` true, as the required-web gate always counted it, but leaves
47
+ * the strength at `none`. A surface renders "Web verified" only for a
48
+ * verified page and "Web searched" for verified search results.
49
+ */
50
+ verification: z
51
+ .enum(["verified", "dispatched", "none"])
52
+ .default("none")
53
+ .describe("Retrieval-proof strength of observed web activity: verified (a typed successful retrieval; verified_content says of what), dispatched (a web call completed without a typed retrieval result), or none (no search or page retrieval observed, though a Browser action may have completed)."),
54
+ verified_content: z
55
+ .enum(["page", "search_results"])
56
+ .nullable()
57
+ .default(null)
58
+ .describe("What the verified retrieval returned: page (a fetched or loaded page; it outranks search results) or search_results (a web search's results, not a fetched page); null when nothing was verified or the record predates this field."),
59
+ tool: z
60
+ .string()
61
+ .nullable()
62
+ .default(null)
63
+ .describe("Web tool that produced the evidence, when any."),
64
+ target: z
65
+ .string()
66
+ .nullable()
67
+ .default(null)
68
+ .describe("Target (query/url) of the web activity as issued, when any."),
69
+ error_summary: z
70
+ .string()
71
+ .nullable()
72
+ .default(null)
73
+ .describe("Redacted error detail when web activity failed."),
74
+ observation: WebObservation.default({ evidence: "tool_calls", network: "not_measured" }),
75
+ })
76
+ .describe("Typed web-evidence record computed by the orchestrator; surfaces project it and never re-derive evidence from raw events.");
77
+ //# sourceMappingURL=web-evidence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-evidence.js","sourceRoot":"","sources":["../src/web-evidence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;KAChE,QAAQ,CAAC,2EAA2E,CAAC,CAAC;AAGzF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC;KAC5B,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC;SACR,OAAO,CAAC,YAAY,CAAC;SACrB,QAAQ,CAAC,4EAA4E,CAAC;IACzF,OAAO,EAAE,CAAC;SACP,OAAO,CAAC,cAAc,CAAC;SACvB,QAAQ,CACP,yIAAyI,CAC1I;CACJ,CAAC;KACD,QAAQ,CAAC,mFAAmF,CAAC,CAAC;AAGjG,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IACjF,MAAM,EAAE,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAC3F,cAAc,EAAE,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAC5D,yHAAyH,CAC1H;IACD,SAAS,EAAE,CAAC;SACT,OAAO,EAAE;SACT,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CACP,2GAA2G,CAC5G;IACH,SAAS,EAAE,CAAC;SACT,OAAO,EAAE;SACT,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CACP,mFAAmF,CACpF;IACH,MAAM,EAAE,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC;IACzC;;;;;;;;;;;OAWG;IACH,YAAY,EAAE,CAAC;SACZ,IAAI,CAAC,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;SACxC,OAAO,CAAC,MAAM,CAAC;SACf,QAAQ,CACP,4RAA4R,CAC7R;IACH,gBAAgB,EAAE,CAAC;SAChB,IAAI,CAAC,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;SAChC,QAAQ,EAAE;SACV,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CACP,qOAAqO,CACtO;IACH,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,gDAAgD,CAAC;IAC7D,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,6DAA6D,CAAC;IAC1E,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,iDAAiD,CAAC;IAC9D,WAAW,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;CACzF,CAAC;KACD,QAAQ,CACP,2HAA2H,CAC5H,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { z } from "zod/v3";
2
+ /**
3
+ * Typed payload of `workspace.prepared`: what an isolated directory copy held
4
+ * when it was created, read from its own selected-input baseline. A selected
5
+ * path that was not found may be a future output; it is reported, not refused.
6
+ */
7
+ export declare const WorkspacePreparedPayload: z.ZodObject<{
8
+ attempt_id: z.ZodString;
9
+ source_root: z.ZodString;
10
+ scope_paths: z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">;
11
+ copied: z.ZodObject<{
12
+ files: z.ZodNumber;
13
+ directories: z.ZodNumber;
14
+ symlinks: z.ZodNumber;
15
+ }, "strict", z.ZodTypeAny, {
16
+ files: number;
17
+ directories: number;
18
+ symlinks: number;
19
+ }, {
20
+ files: number;
21
+ directories: number;
22
+ symlinks: number;
23
+ }>;
24
+ missing_paths: z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">;
25
+ }, "strict", z.ZodTypeAny, {
26
+ attempt_id: string;
27
+ source_root: string;
28
+ scope_paths: string[];
29
+ copied: {
30
+ files: number;
31
+ directories: number;
32
+ symlinks: number;
33
+ };
34
+ missing_paths: string[];
35
+ }, {
36
+ attempt_id: string;
37
+ source_root: string;
38
+ scope_paths: string[];
39
+ copied: {
40
+ files: number;
41
+ directories: number;
42
+ symlinks: number;
43
+ };
44
+ missing_paths: string[];
45
+ }>;
46
+ export type WorkspacePreparedPayload = z.infer<typeof WorkspacePreparedPayload>;
47
+ /** THE text of a prepared copy (timeline, CLI, the executor's prompt) and
48
+ * whether it warrants attention: nothing was copied or a selected path was
49
+ * not found. A copied empty directory or symbolic link is present, not missing. */
50
+ export declare function workspacePreparationSummary(payload: WorkspacePreparedPayload): {
51
+ warning: boolean;
52
+ text: string;
53
+ };
54
+ //# sourceMappingURL=workspace-preparation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-preparation.d.ts","sourceRoot":"","sources":["../src/workspace-preparation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAK3B;;;;GAIG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBwD,CAAC;AAC9F,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAahF;;mFAEmF;AACnF,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,wBAAwB,GAAG;IAC9E,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAqBA"}
@@ -0,0 +1,59 @@
1
+ import { z } from "zod/v3";
2
+ import { WorkspaceScopePath } from "./files-manifest.js";
3
+ const Count = z.number().int().nonnegative();
4
+ /**
5
+ * Typed payload of `workspace.prepared`: what an isolated directory copy held
6
+ * when it was created, read from its own selected-input baseline. A selected
7
+ * path that was not found may be a future output; it is reported, not refused.
8
+ */
9
+ export const WorkspacePreparedPayload = z
10
+ .object({
11
+ attempt_id: z.string().min(1).describe("Attempt that first runs in the prepared copy."),
12
+ source_root: z.string().min(1).describe("Folder the selected paths were resolved against."),
13
+ scope_paths: z
14
+ .array(WorkspaceScopePath)
15
+ .describe("Selected input paths exactly as requested; empty when none were selected."),
16
+ copied: z
17
+ .object({ files: Count, directories: Count, symlinks: Count })
18
+ .strict()
19
+ .describe("Entries copied into the isolated copy; symbolic links are copied as links, not followed."),
20
+ missing_paths: z
21
+ .array(WorkspaceScopePath)
22
+ .describe("Selected paths that did not exist under source_root when the copy was prepared."),
23
+ })
24
+ .strict()
25
+ .describe("Validated payload of a workspace.prepared run event (isolated directory copy).");
26
+ /** Every path, JSON-quoted: the selection is the caller's own and no other
27
+ * record names absent ones, so nothing is clipped; quoting keeps a newline,
28
+ * quote or control character inside one path from breaking the line. */
29
+ function pathList(paths) {
30
+ return paths.map((path) => JSON.stringify(path)).join(", ");
31
+ }
32
+ function plural(count, noun) {
33
+ return count === 0 ? null : `${count} ${noun}${count === 1 ? "" : "s"}`;
34
+ }
35
+ /** THE text of a prepared copy (timeline, CLI, the executor's prompt) and
36
+ * whether it warrants attention: nothing was copied or a selected path was
37
+ * not found. A copied empty directory or symbolic link is present, not missing. */
38
+ export function workspacePreparationSummary(payload) {
39
+ const { copied, missing_paths: missing, scope_paths: scope } = payload;
40
+ const counts = [
41
+ plural(copied.files, "file"),
42
+ copied.directories === 0
43
+ ? null
44
+ : `${copied.directories} ${copied.directories === 1 ? "directory" : "directories"}`,
45
+ plural(copied.symlinks, "symbolic link"),
46
+ ].filter((part) => part !== null);
47
+ const from = scope.length === 0 ? "(no input paths were selected)" : `from ${pathList(scope)}`;
48
+ return {
49
+ warning: counts.length === 0 || missing.length > 0,
50
+ text: `Isolated copy prepared from ${payload.source_root}: ` +
51
+ `${counts.length === 0 ? "nothing" : counts.join(", ")} copied ${from}.` +
52
+ (missing.length > 0
53
+ ? ` Not found there when the copy was prepared: ${pathList(missing)}` +
54
+ " (absent in the copy; may be created as new output)."
55
+ : "") +
56
+ (copied.symlinks > 0 ? " Symbolic links were copied as links, not followed." : ""),
57
+ };
58
+ }
59
+ //# sourceMappingURL=workspace-preparation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-preparation.js","sourceRoot":"","sources":["../src/workspace-preparation.ts"],"names":[],"mappings":"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"}
package/dist/workspace.js CHANGED
@@ -36,7 +36,7 @@ export const WorkspaceEnvelope = z
36
36
  policy_profile: z
37
37
  .string()
38
38
  .default("workspace_write")
39
- .describe("Access profile the envelope enforces."),
39
+ .describe("Access profile recorded for the envelope."),
40
40
  dirty_policy: DirtyPolicy.default("refuse"),
41
41
  created_at: IsoTimestamp.describe("When the envelope was created."),
42
42
  })
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAExE;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC;IACN,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;IAC/B,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IACrD,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IAC3D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;IAC9E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;IACvF,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,mDAAmD,CAAC;IAChE,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,CAAC,mEAAmE,CAAC;IAChF,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,mDAAmD,CAAC;IAChE,cAAc,EAAE,aAAa,CAAC,QAAQ,EAAE;IACxC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE;IACnD,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,CAAC,4EAA4E,CAAC;IACzF,mBAAmB,EAAE,CAAC;SACnB,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SAC9B,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CACP,wFAAwF,CACzF;IACH,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,OAAO,CAAC,iBAAiB,CAAC;SAC1B,QAAQ,CAAC,uCAAuC,CAAC;IACpD,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC3C,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC,gCAAgC,CAAC;CACpE,CAAC;KACD,QAAQ,CACP,+KAA+K,CAChL,CAAC"}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAExE;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC;IACN,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;IAC/B,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IACrD,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IAC3D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;IAC9E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;IACvF,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,mDAAmD,CAAC;IAChE,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,CAAC,mEAAmE,CAAC;IAChF,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,mDAAmD,CAAC;IAChE,cAAc,EAAE,aAAa,CAAC,QAAQ,EAAE;IACxC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE;IACnD,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,CAAC,4EAA4E,CAAC;IACzF,mBAAmB,EAAE,CAAC;SACnB,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SAC9B,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CACP,wFAAwF,CACzF;IACH,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,OAAO,CAAC,iBAAiB,CAAC;SAC1B,QAAQ,CAAC,2CAA2C,CAAC;IACxD,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC3C,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC,gCAAgC,CAAC;CACpE,CAAC;KACD,QAAQ,CACP,+KAA+K,CAChL,CAAC"}
@@ -392,7 +392,7 @@
392
392
  ],
393
393
  "description": "Active filesystem/command access profile for a run: readonly (no writes), workspace_write (use the harness's native workspace-write policy), full (unrestricted; requires the per-repo trust allow for a run an operator starts at a surface, not for an execution.delegated run), inherit_native (defer to the harness's own native settings)."
394
394
  },
395
- "description": "Access profiles the adapter can enforce."
395
+ "description": "Access profiles the adapter can translate to its harness."
396
396
  },
397
397
  "readonlyMechanism": {
398
398
  "type": "string",
@@ -402,7 +402,7 @@
402
402
  "tool_allowlist",
403
403
  "none"
404
404
  ],
405
- "description": "HOW read-only is enforced (fs_sandbox | permission_deny | tool_allowlist | none) — none means read-only intent is advisory for this harness."
405
+ "description": "HOW a harness applies read-only (fs_sandbox | permission_deny | tool_allowlist | none) — none means read-only intent is advisory for this harness."
406
406
  },
407
407
  "writeMechanism": {
408
408
  "type": "string",
@@ -556,6 +556,23 @@
556
556
  },
557
557
  "description": "Accepted POST /runs request keys (derived from the ControlRunStartRequest schema; the CLI/MCP/ACP surfaces project subsets of these)."
558
558
  },
559
+ "runDecisionActions": {
560
+ "type": "array",
561
+ "items": {
562
+ "type": "string",
563
+ "enum": [
564
+ "accept_clean_patch",
565
+ "rerun_with_feedback",
566
+ "accept_risk",
567
+ "override_needs_human",
568
+ "revert_run",
569
+ "discard",
570
+ "taken"
571
+ ],
572
+ "description": "Operator decision: apply an accepted result, rerun with feedback, accept risk, override needs-human, revert a recorded Git effect, acknowledge a captured terminal patch result, or discard remaining copied files without applying them."
573
+ },
574
+ "description": "Actions accepted by POST /runs/:id/decision; taken acknowledges a captured terminal patch result."
575
+ },
559
576
  "outputSchemaDialects": {
560
577
  "type": "array",
561
578
  "items": {
@@ -740,6 +757,7 @@
740
757
  "availableHarnesses",
741
758
  "modes",
742
759
  "runControlKeys",
760
+ "runDecisionActions",
743
761
  "outputSchemaDialects",
744
762
  "mutability",
745
763
  "cliCommands",