@claudexor/schema 5.0.2 → 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 (221) 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-failure.d.ts +29 -6
  35. package/dist/control-run-failure.d.ts.map +1 -1
  36. package/dist/control-run-failure.js +28 -3
  37. package/dist/control-run-failure.js.map +1 -1
  38. package/dist/control-trust.d.ts +8 -0
  39. package/dist/control-trust.d.ts.map +1 -1
  40. package/dist/control-trust.js +4 -0
  41. package/dist/control-trust.js.map +1 -1
  42. package/dist/control-web-evidence.d.ts +125 -0
  43. package/dist/control-web-evidence.d.ts.map +1 -0
  44. package/dist/control-web-evidence.js +109 -0
  45. package/dist/control-web-evidence.js.map +1 -0
  46. package/dist/control.d.ts +292 -98
  47. package/dist/control.d.ts.map +1 -1
  48. package/dist/control.js +43 -49
  49. package/dist/control.js.map +1 -1
  50. package/dist/credential-profile.d.ts +4 -3
  51. package/dist/credential-profile.d.ts.map +1 -1
  52. package/dist/credential-profile.js +4 -3
  53. package/dist/credential-profile.js.map +1 -1
  54. package/dist/decision.d.ts +9 -9
  55. package/dist/decision.d.ts.map +1 -1
  56. package/dist/decision.js +2 -0
  57. package/dist/decision.js.map +1 -1
  58. package/dist/deferred-message.d.ts +646 -0
  59. package/dist/deferred-message.d.ts.map +1 -1
  60. package/dist/deferred-message.js +16 -2
  61. package/dist/deferred-message.js.map +1 -1
  62. package/dist/events.d.ts +6 -6
  63. package/dist/events.d.ts.map +1 -1
  64. package/dist/events.js +1 -0
  65. package/dist/events.js.map +1 -1
  66. package/dist/harness-confinement.js +1 -1
  67. package/dist/harness-confinement.js.map +1 -1
  68. package/dist/harness-input.d.ts +12 -0
  69. package/dist/harness-input.d.ts.map +1 -1
  70. package/dist/harness-input.js +11 -1
  71. package/dist/harness-input.js.map +1 -1
  72. package/dist/harness-interaction.d.ts +20 -0
  73. package/dist/harness-interaction.d.ts.map +1 -1
  74. package/dist/harness-interaction.js +36 -0
  75. package/dist/harness-interaction.js.map +1 -1
  76. package/dist/harness.d.ts +95 -19
  77. package/dist/harness.d.ts.map +1 -1
  78. package/dist/harness.js +16 -15
  79. package/dist/harness.js.map +1 -1
  80. package/dist/index.d.ts +4 -0
  81. package/dist/index.d.ts.map +1 -1
  82. package/dist/index.js +4 -0
  83. package/dist/index.js.map +1 -1
  84. package/dist/mcp-run-result.d.ts +363 -50
  85. package/dist/mcp-run-result.d.ts.map +1 -1
  86. package/dist/mcp-run-wait.d.ts +126 -0
  87. package/dist/mcp-run-wait.d.ts.map +1 -1
  88. package/dist/operation.d.ts +1 -1
  89. package/dist/operation.d.ts.map +1 -1
  90. package/dist/operation.js +1 -1
  91. package/dist/operation.js.map +1 -1
  92. package/dist/process-scope.d.ts +154 -0
  93. package/dist/process-scope.d.ts.map +1 -1
  94. package/dist/process-scope.js +16 -1
  95. package/dist/process-scope.js.map +1 -1
  96. package/dist/quota.d.ts +14 -0
  97. package/dist/quota.d.ts.map +1 -1
  98. package/dist/quota.js +14 -0
  99. package/dist/quota.js.map +1 -1
  100. package/dist/rate-limit.d.ts +3 -0
  101. package/dist/rate-limit.d.ts.map +1 -1
  102. package/dist/rate-limit.js +4 -0
  103. package/dist/rate-limit.js.map +1 -1
  104. package/dist/raw.d.ts.map +1 -1
  105. package/dist/raw.js +11 -5
  106. package/dist/raw.js.map +1 -1
  107. package/dist/route-controls.d.ts +49 -0
  108. package/dist/route-controls.d.ts.map +1 -0
  109. package/dist/route-controls.js +53 -0
  110. package/dist/route-controls.js.map +1 -0
  111. package/dist/route-health.d.ts +23 -23
  112. package/dist/route-health.js +1 -1
  113. package/dist/route-health.js.map +1 -1
  114. package/dist/run-continuation.d.ts +6 -6
  115. package/dist/run-continuity.d.ts +7 -7
  116. package/dist/run-continuity.d.ts.map +1 -1
  117. package/dist/run-continuity.js +2 -1
  118. package/dist/run-continuity.js.map +1 -1
  119. package/dist/run-facts.d.ts +5 -5
  120. package/dist/run-facts.js +1 -1
  121. package/dist/run-facts.js.map +1 -1
  122. package/dist/status-projection.d.ts +3 -2
  123. package/dist/status-projection.d.ts.map +1 -1
  124. package/dist/status-projection.js +5 -2
  125. package/dist/status-projection.js.map +1 -1
  126. package/dist/task-group.d.ts +3 -0
  127. package/dist/task-group.d.ts.map +1 -1
  128. package/dist/task-group.js +11 -1
  129. package/dist/task-group.js.map +1 -1
  130. package/dist/task.d.ts +2 -2
  131. package/dist/task.d.ts.map +1 -1
  132. package/dist/task.js +4 -4
  133. package/dist/task.js.map +1 -1
  134. package/dist/telemetry.d.ts +602 -117
  135. package/dist/telemetry.d.ts.map +1 -1
  136. package/dist/telemetry.js +17 -88
  137. package/dist/telemetry.js.map +1 -1
  138. package/dist/thread-export.d.ts +847 -0
  139. package/dist/thread-export.d.ts.map +1 -0
  140. package/dist/thread-export.js +238 -0
  141. package/dist/thread-export.js.map +1 -0
  142. package/dist/thread-history.d.ts +248 -132
  143. package/dist/thread-history.d.ts.map +1 -1
  144. package/dist/thread.d.ts +72 -6
  145. package/dist/thread.d.ts.map +1 -1
  146. package/dist/thread.js +19 -3
  147. package/dist/thread.js.map +1 -1
  148. package/dist/tool-ref.d.ts +172 -21
  149. package/dist/tool-ref.d.ts.map +1 -1
  150. package/dist/tool-ref.js +114 -29
  151. package/dist/tool-ref.js.map +1 -1
  152. package/dist/web-evidence.d.ts +91 -0
  153. package/dist/web-evidence.d.ts.map +1 -0
  154. package/dist/web-evidence.js +77 -0
  155. package/dist/web-evidence.js.map +1 -0
  156. package/dist/workspace.js +1 -1
  157. package/dist/workspace.js.map +1 -1
  158. package/generated/AgentCapabilityCatalog.schema.json +20 -2
  159. package/generated/ControlAccountRoutingEvidenceResponse.schema.json +61 -1
  160. package/generated/ControlCredentialProfilesQueryResponse.schema.json +2 -2
  161. package/generated/ControlCredentialProfilesResourcesResponse.schema.json +2 -2
  162. package/generated/ControlCredentialProfilesSnapshotResponse.schema.json +2 -2
  163. package/generated/ControlGcLastResponse.schema.json +22 -0
  164. package/generated/ControlGcReceipt.schema.json +13 -1
  165. package/generated/ControlHarnessListResponse.schema.json +2 -2
  166. package/generated/ControlQueuedRunInfo.schema.json +1 -1
  167. package/generated/ControlResource.schema.json +5 -0
  168. package/generated/ControlResourceRelease.schema.json +44 -0
  169. package/generated/ControlResourceReleaseRequest.schema.json +27 -0
  170. package/generated/ControlRetainedEnvelope.schema.json +2 -1
  171. package/generated/ControlRouteHealth.schema.json +13 -1
  172. package/generated/ControlRunControlResponse.schema.json +41 -3
  173. package/generated/ControlRunDecisionRequest.schema.json +8 -2
  174. package/generated/ControlRunDecisionResponse.schema.json +4 -3
  175. package/generated/ControlRunDetail.schema.json +337 -10
  176. package/generated/ControlRunListResponse.schema.json +296 -7
  177. package/generated/ControlRunRetryResponse.schema.json +1 -1
  178. package/generated/ControlRunStartInfo.schema.json +1 -1
  179. package/generated/ControlRunStartResponse.schema.json +2 -2
  180. package/generated/ControlRunSummary.schema.json +296 -7
  181. package/generated/ControlThreadDetail.schema.json +1 -0
  182. package/generated/ControlThreadTurnResponse.schema.json +9 -0
  183. package/generated/ControlTrustListResponse.schema.json +8 -0
  184. package/generated/ControlTrustState.schema.json +8 -0
  185. package/generated/ControlUploadImport.schema.json +12 -2
  186. package/generated/ControlUploadImportRequest.schema.json +5 -0
  187. package/generated/DecisionRecord.schema.json +1 -0
  188. package/generated/DeferredMessageDetail.schema.json +43 -7
  189. package/generated/DeferredMessageProjection.schema.json +41 -3
  190. package/generated/DeferredMessageReadResult.schema.json +42 -4
  191. package/generated/DeferredMessageReceipt.schema.json +41 -3
  192. package/generated/EnvelopeCustody.schema.json +3 -2
  193. package/generated/GlobalConfig.schema.json +1 -1
  194. package/generated/HarnessEvent.schema.json +140 -4
  195. package/generated/HarnessManifest.schema.json +2 -2
  196. package/generated/HarnessStatusDto.schema.json +2 -2
  197. package/generated/McpAccountsToolResult.schema.json +62 -2
  198. package/generated/McpRunHandleResult.schema.json +90 -6
  199. package/generated/McpRunToolResult.schema.json +89 -6
  200. package/generated/McpRunWaitResult.schema.json +41 -3
  201. package/generated/McpThreadTurnResult.schema.json +9 -0
  202. package/generated/RawContextPacket.schema.json +6 -4
  203. package/generated/RawGitPatchEnvelope.schema.json +1 -1
  204. package/generated/RoutePoolDegradedPayload.schema.json +2 -1
  205. package/generated/RunContinuityReceipt.schema.json +2 -1
  206. package/generated/RunFacts.schema.json +1 -0
  207. package/generated/RunFailure.schema.json +46 -2
  208. package/generated/RunResumable.schema.json +2 -1
  209. package/generated/RunTelemetry.schema.json +288 -7
  210. package/generated/TaskContract.schema.json +3 -3
  211. package/generated/TaskGroupReceipt.schema.json +1 -1
  212. package/generated/Thread.schema.json +41 -0
  213. package/generated/ThreadExportManifest.schema.json +461 -0
  214. package/generated/ThreadExportReceipt.schema.json +94 -0
  215. package/generated/ThreadHistoryPage.schema.json +47 -2
  216. package/generated/ThreadRetireAbandonRequest.schema.json +21 -0
  217. package/generated/ThreadRetireRequest.schema.json +41 -0
  218. package/generated/ThreadRetirement.schema.json +175 -0
  219. package/generated/ThreadTurn.schema.json +1 -1
  220. package/generated/WorkspaceEnvelope.schema.json +1 -1
  221. package/package.json +2 -2
@@ -48,7 +48,7 @@
48
48
  "inherit_native",
49
49
  "external_sandbox_full"
50
50
  ],
51
- "description": "Access profile enforced by the engine."
51
+ "description": "Access profile the engine resolved and passed to its routes; each route's native setting is in attempts[].route_controls."
52
52
  },
53
53
  "external_context_policy": {
54
54
  "type": "string",
@@ -68,7 +68,7 @@
68
68
  "cached",
69
69
  "live"
70
70
  ],
71
- "description": "Web policy actually executed by the selected route."
71
+ "description": "Web policy given to the selected route, after disclosed upgrades (e.g. cached to live); not proof that a native session ran."
72
72
  },
73
73
  "web_required": {
74
74
  "type": "boolean",
@@ -111,12 +111,12 @@
111
111
  "effective_mode": {
112
112
  "$ref": "#/definitions/RunTelemetry/properties/web/properties/policy",
113
113
  "default": "auto",
114
- "description": "Policy actually executed by the harness route (disclosed upgrades, e.g. cached to live)."
114
+ "description": "Policy given to the harness route, after disclosed upgrades (e.g. cached to live); not proof that a native session ran."
115
115
  },
116
116
  "attempted": {
117
117
  "type": "boolean",
118
118
  "default": false,
119
- "description": "Whether any web activity was attempted."
119
+ "description": "Whether a web tool call or engine Browser call was observed; not a network measurement (see observation)."
120
120
  },
121
121
  "satisfied": {
122
122
  "type": "boolean",
@@ -143,7 +143,23 @@
143
143
  "none"
144
144
  ],
145
145
  "default": "none",
146
- "description": "Retrieval-proof strength of observed web activity: verified (typed successful retrieval; content proven), dispatched (operation completed but no typed retrieval outcome; content not proven), or none."
146
+ "description": "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)."
147
+ },
148
+ "verified_content": {
149
+ "anyOf": [
150
+ {
151
+ "type": "string",
152
+ "enum": [
153
+ "page",
154
+ "search_results"
155
+ ]
156
+ },
157
+ {
158
+ "type": "null"
159
+ }
160
+ ],
161
+ "default": null,
162
+ "description": "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."
147
163
  },
148
164
  "tool": {
149
165
  "type": [
@@ -168,6 +184,31 @@
168
184
  ],
169
185
  "default": null,
170
186
  "description": "Redacted error detail when web activity failed."
187
+ },
188
+ "observation": {
189
+ "type": "object",
190
+ "properties": {
191
+ "evidence": {
192
+ "type": "string",
193
+ "const": "tool_calls",
194
+ "description": "Web evidence comes from typed web tool calls and engine Browser MCP calls."
195
+ },
196
+ "network": {
197
+ "type": "string",
198
+ "const": "not_measured",
199
+ "description": "Process network traffic is not measured: vendor API traffic, shell commands and other tools can use the network without appearing here."
200
+ }
201
+ },
202
+ "required": [
203
+ "evidence",
204
+ "network"
205
+ ],
206
+ "additionalProperties": false,
207
+ "description": "Scope of the web evidence: observed tool calls only, never a network measurement.",
208
+ "default": {
209
+ "evidence": "tool_calls",
210
+ "network": "not_measured"
211
+ }
171
212
  }
172
213
  },
173
214
  "additionalProperties": false,
@@ -316,9 +357,41 @@
316
357
  "reported_source"
317
358
  ],
318
359
  "additionalProperties": false
360
+ },
361
+ {
362
+ "type": "object",
363
+ "properties": {
364
+ "kind": {
365
+ "type": "string",
366
+ "const": "vendor_not_retryable"
367
+ },
368
+ "source": {
369
+ "type": "string",
370
+ "const": "agy_stderr"
371
+ },
372
+ "error_id": {
373
+ "anyOf": [
374
+ {
375
+ "type": "string",
376
+ "minLength": 1,
377
+ "maxLength": 128
378
+ },
379
+ {
380
+ "type": "null"
381
+ }
382
+ ],
383
+ "description": "The vendor's own error id from the same record, verbatim; null when absent."
384
+ }
385
+ },
386
+ "required": [
387
+ "kind",
388
+ "source",
389
+ "error_id"
390
+ ],
391
+ "additionalProperties": false
319
392
  }
320
393
  ],
321
- "description": "Vendor-attested request refusal that stops retries and account rotation on its harness; input, executable and credential-source causes carry their own evidence."
394
+ "description": "Vendor-attested request refusal that stops retries and account rotation on its harness; input, executable and credential-source causes and an explicit vendor not-retryable verdict carry their own evidence."
322
395
  },
323
396
  "effort_resolution": {
324
397
  "type": "object",
@@ -998,6 +1071,9 @@
998
1071
  "verification": {
999
1072
  "$ref": "#/definitions/RunTelemetry/properties/web/properties/verification"
1000
1073
  },
1074
+ "verified_content": {
1075
+ "$ref": "#/definitions/RunTelemetry/properties/web/properties/verified_content"
1076
+ },
1001
1077
  "tool": {
1002
1078
  "$ref": "#/definitions/RunTelemetry/properties/web/properties/tool"
1003
1079
  },
@@ -1006,11 +1082,74 @@
1006
1082
  },
1007
1083
  "error_summary": {
1008
1084
  "$ref": "#/definitions/RunTelemetry/properties/web/properties/error_summary"
1085
+ },
1086
+ "observation": {
1087
+ "$ref": "#/definitions/RunTelemetry/properties/web/properties/observation"
1009
1088
  }
1010
1089
  },
1011
1090
  "additionalProperties": false,
1012
1091
  "description": "Typed web-evidence record computed by the orchestrator; surfaces project it and never re-derive evidence from raw events."
1013
1092
  },
1093
+ "route_controls": {
1094
+ "type": "object",
1095
+ "properties": {
1096
+ "web_mechanism": {
1097
+ "type": "string",
1098
+ "enum": [
1099
+ "native",
1100
+ "tools",
1101
+ "uncontrolled",
1102
+ "none"
1103
+ ],
1104
+ "description": "How this route's own web tools are switched for its web policy (the manifest's web_policy)."
1105
+ },
1106
+ "access": {
1107
+ "type": "string",
1108
+ "enum": [
1109
+ "readonly",
1110
+ "workspace_write",
1111
+ "full",
1112
+ "inherit_native"
1113
+ ],
1114
+ "description": "Access profile handed to this spawn."
1115
+ },
1116
+ "native_access": {
1117
+ "type": [
1118
+ "string",
1119
+ "null"
1120
+ ],
1121
+ "description": "The vendor access setting the adapter builds for that profile, in the vendor's own spelling (argv or request parameters) and from the helper that passes it; null when it passes none or does not disclose it."
1122
+ },
1123
+ "access_mechanism": {
1124
+ "type": "string",
1125
+ "enum": [
1126
+ "fs_sandbox",
1127
+ "permission_deny",
1128
+ "tool_allowlist",
1129
+ "tool_policy",
1130
+ "native_settings",
1131
+ "none"
1132
+ ],
1133
+ "description": "How the route's access profile reaches the harness: fs_sandbox (the vendor's own file-system sandbox, as the vendor applies it), permission_deny, tool_allowlist or tool_policy (vendor tool permissions; the manifest declares no OS file boundary), native_settings (inherit_native: Claudexor passes no access profile, so the harness's own configuration decides and what it confines is unknown here), or none (full access, or a route that declares no control)."
1134
+ }
1135
+ },
1136
+ "required": [
1137
+ "web_mechanism",
1138
+ "access",
1139
+ "native_access",
1140
+ "access_mechanism"
1141
+ ],
1142
+ "additionalProperties": false,
1143
+ "description": "Native web and access controls prepared for this attempt's last spawn (#118, #413); absent on older records and when no spawn was dispatched."
1144
+ },
1145
+ "native_session_started": {
1146
+ "type": "boolean",
1147
+ "description": "Present with route_controls: whether an adapter reported a native session started during this attempt (the typed started event, which an adapter's own pre-spawn refusal never emits). False means none was observed: refused before launch, or stopped or ended before a start was reported. It does not prove that no process ran."
1148
+ },
1149
+ "harness_home_isolated": {
1150
+ "type": "boolean",
1151
+ "description": "The attempt's applied HOME fact (same producer as attempt.yaml): true when the engine assigned its child a Claudexor-owned HOME, false when the engine did not replace HOME, so the child inherits the engine's own environment. Absent where the lane records none, never inferred."
1152
+ },
1014
1153
  "tool_errors": {
1015
1154
  "type": "array",
1016
1155
  "items": {
@@ -1081,6 +1220,112 @@
1081
1220
  "default": 0,
1082
1221
  "description": "Tool errors with no later successful recovery."
1083
1222
  },
1223
+ "reported_command_outcomes": {
1224
+ "type": "object",
1225
+ "properties": {
1226
+ "total": {
1227
+ "type": "integer",
1228
+ "minimum": 0,
1229
+ "description": "True count of reports in this attempt."
1230
+ },
1231
+ "recent": {
1232
+ "type": "array",
1233
+ "items": {
1234
+ "type": "object",
1235
+ "properties": {
1236
+ "tool": {
1237
+ "type": "string",
1238
+ "description": "Native tool name of the reported call."
1239
+ },
1240
+ "target": {
1241
+ "type": [
1242
+ "string",
1243
+ "null"
1244
+ ],
1245
+ "default": null,
1246
+ "description": "Target of the call as issued, when known."
1247
+ },
1248
+ "tool_use_id": {
1249
+ "type": "string",
1250
+ "minLength": 1,
1251
+ "description": "The exact call the report refined."
1252
+ },
1253
+ "command_outcome": {
1254
+ "type": "object",
1255
+ "properties": {
1256
+ "state": {
1257
+ "type": "string",
1258
+ "enum": [
1259
+ "exited",
1260
+ "timed_out",
1261
+ "backgrounded",
1262
+ "completion_reported",
1263
+ "unknown"
1264
+ ],
1265
+ "description": "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."
1266
+ },
1267
+ "signal": {
1268
+ "type": "string",
1269
+ "minLength": 1,
1270
+ "description": "Vendor-reported signal name of an exited command."
1271
+ },
1272
+ "timeout_ms": {
1273
+ "type": "integer",
1274
+ "minimum": 0,
1275
+ "description": "The elapsed tool timeout behind timed_out or a timeout-driven background handoff."
1276
+ },
1277
+ "background_reason": {
1278
+ "type": "string",
1279
+ "enum": [
1280
+ "timeout",
1281
+ "requested"
1282
+ ],
1283
+ "description": "Why a backgrounded command left the foreground: its timeout or a request."
1284
+ },
1285
+ "shell_id": {
1286
+ "type": "string",
1287
+ "minLength": 1,
1288
+ "description": "Vendor handle of the background shell that kept the command."
1289
+ },
1290
+ "pid": {
1291
+ "type": "integer",
1292
+ "exclusiveMinimum": 0,
1293
+ "description": "Vendor-reported process id."
1294
+ },
1295
+ "completion_status": {
1296
+ "type": "string",
1297
+ "enum": [
1298
+ "success",
1299
+ "error",
1300
+ "aborted"
1301
+ ],
1302
+ "description": "What the vendor reported about a completion_reported command; never an exit code."
1303
+ }
1304
+ },
1305
+ "required": [
1306
+ "state"
1307
+ ],
1308
+ "additionalProperties": false,
1309
+ "description": "The call's refined facts: the vendor's word and the handoff, never an exit code."
1310
+ }
1311
+ },
1312
+ "required": [
1313
+ "tool",
1314
+ "tool_use_id",
1315
+ "command_outcome"
1316
+ ],
1317
+ "additionalProperties": false
1318
+ },
1319
+ "description": "The most recent reports, bounded by the writer."
1320
+ }
1321
+ },
1322
+ "required": [
1323
+ "total",
1324
+ "recent"
1325
+ ],
1326
+ "additionalProperties": false,
1327
+ "description": "Vendor reports about handed-off commands, kept apart from tool errors."
1328
+ },
1084
1329
  "statusless_tool_results": {
1085
1330
  "type": "integer",
1086
1331
  "minimum": 0,
@@ -1389,6 +1634,41 @@
1389
1634
  "type": "boolean",
1390
1635
  "default": false,
1391
1636
  "description": "The browser was armed but never called while generic web evidence satisfied the run (disclosure only; not a failure)."
1637
+ },
1638
+ "startup": {
1639
+ "type": "object",
1640
+ "properties": {
1641
+ "status": {
1642
+ "type": "string",
1643
+ "enum": [
1644
+ "ready",
1645
+ "failed",
1646
+ "cancelled",
1647
+ "starting",
1648
+ "not_observed"
1649
+ ],
1650
+ "description": "Startup state when the first model request was allowed: ready (Codex reported the server started), failed, cancelled, starting (still starting when the hold ended: Codex's 90 s limit plus a 5 s grace for its status), or not_observed (no startup status at all)."
1651
+ },
1652
+ "waited_ms": {
1653
+ "type": "integer",
1654
+ "minimum": 0,
1655
+ "description": "How long the adapter held the first model request for this outcome."
1656
+ },
1657
+ "error": {
1658
+ "type": [
1659
+ "string",
1660
+ "null"
1661
+ ],
1662
+ "default": null,
1663
+ "description": "The vendor's own reason for a failed or cancelled startup, masked."
1664
+ }
1665
+ },
1666
+ "required": [
1667
+ "status",
1668
+ "waited_ms"
1669
+ ],
1670
+ "additionalProperties": false,
1671
+ "description": "The selected Browser's startup outcome as the adapter reported it before the first model request (#215); absent when the route reported none."
1392
1672
  }
1393
1673
  },
1394
1674
  "additionalProperties": false,
@@ -1926,6 +2206,7 @@
1926
2206
  "input_required",
1927
2207
  "work_incomplete",
1928
2208
  "context_capacity_exhausted",
2209
+ "turn_limit_reached",
1929
2210
  "work_report_contract"
1930
2211
  ],
1931
2212
  "description": "Typed reason qualifying a non-clean terminal; null on a clean success."
@@ -2339,7 +2620,7 @@
2339
2620
  "type": "null"
2340
2621
  }
2341
2622
  ],
2342
- "description": "Exact validated terminal receipt; null before terminalization or on legacy runs.",
2623
+ "description": "Legacy-compatible nullable terminal-fact mirror; null for new terminalized runs and legacy runs because the canonical receipt is final/run_facts.yaml.",
2343
2624
  "default": null
2344
2625
  },
2345
2626
  "generated_at": {
@@ -411,7 +411,7 @@
411
411
  "effective_profile": {
412
412
  "$ref": "#/definitions/TaskContract/properties/access/properties/requested_profile",
413
413
  "default": "workspace_write",
414
- "description": "Access profile actually enforced by the engine (mode/trust clamps applied; never client-supplied)."
414
+ "description": "Access profile the engine resolved and passes to the harness (mode/trust clamps applied; never client-supplied); the harness's native setting decides what it confines."
415
415
  },
416
416
  "auxiliary_writable_roots": {
417
417
  "type": "array",
@@ -427,7 +427,7 @@
427
427
  "requested_profile": "workspace_write",
428
428
  "effective_profile": "workspace_write"
429
429
  },
430
- "description": "Requested vs engine-enforced access profile."
430
+ "description": "Requested vs engine-resolved access profile."
431
431
  },
432
432
  "external_context": {
433
433
  "type": "object",
@@ -451,7 +451,7 @@
451
451
  "effective_mode": {
452
452
  "$ref": "#/definitions/TaskContract/properties/external_context/properties/policy",
453
453
  "default": "auto",
454
- "description": "Policy the selected route actually executes (disclosed upgrades, e.g. cached to live)."
454
+ "description": "Policy given to the selected route, after disclosed upgrades (e.g. cached to live)."
455
455
  }
456
456
  },
457
457
  "additionalProperties": false,
@@ -12,7 +12,7 @@
12
12
  "storeId": {
13
13
  "type": "string",
14
14
  "minLength": 1,
15
- "description": "Identity of the durable engine store that accepted this group member, stable across restarts."
15
+ "description": "Identity of the durable engine store that accepted this command, stable across restarts. A group member always carries it; an ordinary receipt carries it only for a request sending `X-Claudexor-Store-Identity: 1`, and it stays absent, meaning unknown, when the store has no identity to give."
16
16
  }
17
17
  },
18
18
  "required": [
@@ -270,6 +270,47 @@
270
270
  ],
271
271
  "default": null,
272
272
  "description": "Lifecycle state restored while the trash retention window remains open."
273
+ },
274
+ "retirement": {
275
+ "type": "object",
276
+ "properties": {
277
+ "operationId": {
278
+ "type": "string",
279
+ "minLength": 1,
280
+ "description": "The caller's durable release intent."
281
+ },
282
+ "exportId": {
283
+ "type": "string",
284
+ "description": "The manifest identity the caller transferred."
285
+ },
286
+ "closureDigest": {
287
+ "type": "string",
288
+ "description": "The engine-record identity at acceptance."
289
+ },
290
+ "contentDigest": {
291
+ "type": "string",
292
+ "description": "Every exported byte, re-hashed by the engine."
293
+ },
294
+ "laneDigest": {
295
+ "type": "string",
296
+ "description": "The lane bytes acceptance named for removal."
297
+ },
298
+ "acceptedAt": {
299
+ "type": "string",
300
+ "minLength": 1,
301
+ "description": "When the purge decision committed."
302
+ }
303
+ },
304
+ "required": [
305
+ "operationId",
306
+ "exportId",
307
+ "closureDigest",
308
+ "contentDigest",
309
+ "laneDigest",
310
+ "acceptedAt"
311
+ ],
312
+ "additionalProperties": false,
313
+ "description": "Present on a thread purged through conditional retirement; absent otherwise."
273
314
  }
274
315
  },
275
316
  "required": [