@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
@@ -85,7 +85,7 @@
85
85
  "retryable": {
86
86
  "type": "boolean",
87
87
  "default": true,
88
- "description": "True when retry can replay this turn (a job was recorded before the failure); false when no job exists to replay."
88
+ "description": "True when retry can replay this turn (a job was recorded before the failure); false when no job exists to replay or a managed resource it names was released."
89
89
  },
90
90
  "required_actions": {
91
91
  "type": "array",
@@ -116,13 +116,51 @@
116
116
  "code"
117
117
  ],
118
118
  "additionalProperties": false,
119
- "description": "Stable hold. Editing, observation and readiness restoration never rearm it; inspect the predecessor result and clear before an ordinary continuation."
119
+ "description": "Stable hold. Editing, observation and readiness restoration never rearm it; inspect the predecessor result and clear before an ordinary continuation. One exception: an unchanged settlement_unknown draft returns by itself when a later settlement of the predecessor's run, by the live daemon that ran it, proves its processes gone (see resumed); a Stop first keeps it held."
120
120
  },
121
121
  {
122
122
  "type": "null"
123
123
  }
124
124
  ],
125
- "description": "Stable hold. Editing, observation and readiness restoration never rearm it; inspect the predecessor result and clear before an ordinary continuation."
125
+ "description": "Stable hold. Editing, observation and readiness restoration never rearm it; inspect the predecessor result and clear before an ordinary continuation. One exception: an unchanged settlement_unknown draft returns by itself when a later settlement of the predecessor's run, by the live daemon that ran it, proves its processes gone (see resumed); a Stop first keeps it held."
126
+ },
127
+ "resumed": {
128
+ "type": "object",
129
+ "properties": {
130
+ "from": {
131
+ "type": "object",
132
+ "properties": {
133
+ "code": {
134
+ "$ref": "#/definitions/DeferredMessageProjection/properties/hold/anyOf/0/properties/code"
135
+ },
136
+ "problem": {
137
+ "$ref": "#/definitions/DeferredMessageProjection/properties/hold/anyOf/0/properties/problem"
138
+ }
139
+ },
140
+ "required": [
141
+ "code"
142
+ ],
143
+ "additionalProperties": false,
144
+ "description": "The hold the draft was returned from."
145
+ },
146
+ "reason": {
147
+ "type": "string",
148
+ "const": "process_scope_settled",
149
+ "description": "A later settlement of the predecessor's run proved its processes gone; the draft was unchanged, not cleared, replaced or stopped."
150
+ },
151
+ "at": {
152
+ "type": "string",
153
+ "minLength": 1,
154
+ "description": "ISO-8601 timestamp string."
155
+ }
156
+ },
157
+ "required": [
158
+ "from",
159
+ "reason",
160
+ "at"
161
+ ],
162
+ "additionalProperties": false,
163
+ "description": "Why this draft left its hold automatically. It then took the existing revision and admission path; any other reason holds it again."
126
164
  },
127
165
  "dispatchedRevision": {
128
166
  "anyOf": [
@@ -88,7 +88,7 @@
88
88
  "retryable": {
89
89
  "type": "boolean",
90
90
  "default": true,
91
- "description": "True when retry can replay this turn (a job was recorded before the failure); false when no job exists to replay."
91
+ "description": "True when retry can replay this turn (a job was recorded before the failure); false when no job exists to replay or a managed resource it names was released."
92
92
  },
93
93
  "required_actions": {
94
94
  "type": "array",
@@ -119,13 +119,51 @@
119
119
  "code"
120
120
  ],
121
121
  "additionalProperties": false,
122
- "description": "Stable hold. Editing, observation and readiness restoration never rearm it; inspect the predecessor result and clear before an ordinary continuation."
122
+ "description": "Stable hold. Editing, observation and readiness restoration never rearm it; inspect the predecessor result and clear before an ordinary continuation. One exception: an unchanged settlement_unknown draft returns by itself when a later settlement of the predecessor's run, by the live daemon that ran it, proves its processes gone (see resumed); a Stop first keeps it held."
123
123
  },
124
124
  {
125
125
  "type": "null"
126
126
  }
127
127
  ],
128
- "description": "Stable hold. Editing, observation and readiness restoration never rearm it; inspect the predecessor result and clear before an ordinary continuation."
128
+ "description": "Stable hold. Editing, observation and readiness restoration never rearm it; inspect the predecessor result and clear before an ordinary continuation. One exception: an unchanged settlement_unknown draft returns by itself when a later settlement of the predecessor's run, by the live daemon that ran it, proves its processes gone (see resumed); a Stop first keeps it held."
129
+ },
130
+ "resumed": {
131
+ "type": "object",
132
+ "properties": {
133
+ "from": {
134
+ "type": "object",
135
+ "properties": {
136
+ "code": {
137
+ "$ref": "#/definitions/DeferredMessageReadResult/properties/draft/properties/hold/anyOf/0/properties/code"
138
+ },
139
+ "problem": {
140
+ "$ref": "#/definitions/DeferredMessageReadResult/properties/draft/properties/hold/anyOf/0/properties/problem"
141
+ }
142
+ },
143
+ "required": [
144
+ "code"
145
+ ],
146
+ "additionalProperties": false,
147
+ "description": "The hold the draft was returned from."
148
+ },
149
+ "reason": {
150
+ "type": "string",
151
+ "const": "process_scope_settled",
152
+ "description": "A later settlement of the predecessor's run proved its processes gone; the draft was unchanged, not cleared, replaced or stopped."
153
+ },
154
+ "at": {
155
+ "type": "string",
156
+ "minLength": 1,
157
+ "description": "ISO-8601 timestamp string."
158
+ }
159
+ },
160
+ "required": [
161
+ "from",
162
+ "reason",
163
+ "at"
164
+ ],
165
+ "additionalProperties": false,
166
+ "description": "Why this draft left its hold automatically. It then took the existing revision and admission path; any other reason holds it again."
129
167
  },
130
168
  "dispatchedRevision": {
131
169
  "anyOf": [
@@ -245,7 +283,7 @@
245
283
  "null"
246
284
  ],
247
285
  "default": null,
248
- "description": "Per-harness default model; null = the harness's own default."
286
+ "description": "Per-harness default model; null = the harness's own default, or no model on a route whose request must name one."
249
287
  },
250
288
  "effort": {
251
289
  "anyOf": [
@@ -94,7 +94,7 @@
94
94
  "retryable": {
95
95
  "type": "boolean",
96
96
  "default": true,
97
- "description": "True when retry can replay this turn (a job was recorded before the failure); false when no job exists to replay."
97
+ "description": "True when retry can replay this turn (a job was recorded before the failure); false when no job exists to replay or a managed resource it names was released."
98
98
  },
99
99
  "required_actions": {
100
100
  "type": "array",
@@ -125,13 +125,51 @@
125
125
  "code"
126
126
  ],
127
127
  "additionalProperties": false,
128
- "description": "Stable hold. Editing, observation and readiness restoration never rearm it; inspect the predecessor result and clear before an ordinary continuation."
128
+ "description": "Stable hold. Editing, observation and readiness restoration never rearm it; inspect the predecessor result and clear before an ordinary continuation. One exception: an unchanged settlement_unknown draft returns by itself when a later settlement of the predecessor's run, by the live daemon that ran it, proves its processes gone (see resumed); a Stop first keeps it held."
129
129
  },
130
130
  {
131
131
  "type": "null"
132
132
  }
133
133
  ],
134
- "description": "Stable hold. Editing, observation and readiness restoration never rearm it; inspect the predecessor result and clear before an ordinary continuation."
134
+ "description": "Stable hold. Editing, observation and readiness restoration never rearm it; inspect the predecessor result and clear before an ordinary continuation. One exception: an unchanged settlement_unknown draft returns by itself when a later settlement of the predecessor's run, by the live daemon that ran it, proves its processes gone (see resumed); a Stop first keeps it held."
135
+ },
136
+ "resumed": {
137
+ "type": "object",
138
+ "properties": {
139
+ "from": {
140
+ "type": "object",
141
+ "properties": {
142
+ "code": {
143
+ "$ref": "#/definitions/DeferredMessageReceipt/properties/draft/properties/hold/anyOf/0/properties/code"
144
+ },
145
+ "problem": {
146
+ "$ref": "#/definitions/DeferredMessageReceipt/properties/draft/properties/hold/anyOf/0/properties/problem"
147
+ }
148
+ },
149
+ "required": [
150
+ "code"
151
+ ],
152
+ "additionalProperties": false,
153
+ "description": "The hold the draft was returned from."
154
+ },
155
+ "reason": {
156
+ "type": "string",
157
+ "const": "process_scope_settled",
158
+ "description": "A later settlement of the predecessor's run proved its processes gone; the draft was unchanged, not cleared, replaced or stopped."
159
+ },
160
+ "at": {
161
+ "type": "string",
162
+ "minLength": 1,
163
+ "description": "ISO-8601 timestamp string."
164
+ }
165
+ },
166
+ "required": [
167
+ "from",
168
+ "reason",
169
+ "at"
170
+ ],
171
+ "additionalProperties": false,
172
+ "description": "Why this draft left its hold automatically. It then took the existing revision and admission path; any other reason holds it again."
135
173
  },
136
174
  "dispatchedRevision": {
137
175
  "anyOf": [
@@ -106,7 +106,7 @@
106
106
  "policy_profile": {
107
107
  "type": "string",
108
108
  "default": "workspace_write",
109
- "description": "Access profile the envelope enforces."
109
+ "description": "Access profile recorded for the envelope."
110
110
  },
111
111
  "dirty_policy": {
112
112
  "type": "string",
@@ -148,13 +148,14 @@
148
148
  "transport",
149
149
  "permission_denied",
150
150
  "context_exhausted",
151
+ "turn_limit",
151
152
  "wall_clock",
152
153
  "cancelled",
153
154
  "host_restart",
154
155
  "input_required",
155
156
  "other"
156
157
  ],
157
- "description": "Typed reason the previous process stopped: a vendor limit (next account eligible), the whole pool spent, a pinned account's limit, a transport death (crash, timeout, watchdog), a confirmed native tool permission refusal, context exhaustion, the wall-clock deadline, a cancel, a daemon/host restart, a model that asked for input, or another typed cause."
158
+ "description": "Typed reason the previous process stopped: a vendor limit (next account eligible), the whole pool spent, a pinned account's limit, an error without a typed cause (`transport`: a crash, an inactivity timeout or a harness-reported error; not proof that a process died or the network failed), a confirmed native tool permission refusal, context exhaustion, the run's max-turns cap, the wall-clock deadline, a cancel, a daemon/host restart, a model that asked for input, or another typed cause."
158
159
  },
159
160
  {
160
161
  "type": "null"
@@ -418,7 +418,7 @@
418
418
  "null"
419
419
  ],
420
420
  "default": null,
421
- "description": "Per-harness default model; null = the harness's own default."
421
+ "description": "Per-harness default model; null = the harness's own default, or no model on a route whose request must name one."
422
422
  },
423
423
  "effort": {
424
424
  "anyOf": [
@@ -142,9 +142,41 @@
142
142
  "reported_source"
143
143
  ],
144
144
  "additionalProperties": false
145
+ },
146
+ {
147
+ "type": "object",
148
+ "properties": {
149
+ "kind": {
150
+ "type": "string",
151
+ "const": "vendor_not_retryable"
152
+ },
153
+ "source": {
154
+ "type": "string",
155
+ "const": "agy_stderr"
156
+ },
157
+ "error_id": {
158
+ "anyOf": [
159
+ {
160
+ "type": "string",
161
+ "minLength": 1,
162
+ "maxLength": 128
163
+ },
164
+ {
165
+ "type": "null"
166
+ }
167
+ ],
168
+ "description": "The vendor's own error id from the same record, verbatim; null when absent."
169
+ }
170
+ },
171
+ "required": [
172
+ "kind",
173
+ "source",
174
+ "error_id"
175
+ ],
176
+ "additionalProperties": false
145
177
  }
146
178
  ],
147
- "description": "Vendor-attested request refusal that stops retries and account rotation on its harness; input, executable and credential-source causes carry their own evidence."
179
+ "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."
148
180
  },
149
181
  "effort_resolution": {
150
182
  "type": "object",
@@ -456,6 +488,58 @@
456
488
  "additionalProperties": false,
457
489
  "description": "Requested, configured and observed prompt-cache lifetime facts for one attempt. Lifecycle, outcome and cost are separate facts and never derive from this receipt."
458
490
  },
491
+ "route_controls": {
492
+ "type": "object",
493
+ "properties": {
494
+ "web_mechanism": {
495
+ "type": "string",
496
+ "enum": [
497
+ "native",
498
+ "tools",
499
+ "uncontrolled",
500
+ "none"
501
+ ],
502
+ "description": "How this route's own web tools are switched for its web policy (the manifest's web_policy)."
503
+ },
504
+ "access": {
505
+ "type": "string",
506
+ "enum": [
507
+ "readonly",
508
+ "workspace_write",
509
+ "full",
510
+ "inherit_native"
511
+ ],
512
+ "description": "Access profile handed to this spawn."
513
+ },
514
+ "native_access": {
515
+ "type": [
516
+ "string",
517
+ "null"
518
+ ],
519
+ "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."
520
+ },
521
+ "access_mechanism": {
522
+ "type": "string",
523
+ "enum": [
524
+ "fs_sandbox",
525
+ "permission_deny",
526
+ "tool_allowlist",
527
+ "tool_policy",
528
+ "native_settings",
529
+ "none"
530
+ ],
531
+ "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)."
532
+ }
533
+ },
534
+ "required": [
535
+ "web_mechanism",
536
+ "access",
537
+ "native_access",
538
+ "access_mechanism"
539
+ ],
540
+ "additionalProperties": false,
541
+ "description": "Per-spawn receipt of the native web and access controls prepared for a route, recorded just before dispatch; not proof that a native process ran with them. Claudexor adds no outer boundary."
542
+ },
459
543
  "type": {
460
544
  "type": "string",
461
545
  "enum": [
@@ -584,9 +668,10 @@
584
668
  "exited",
585
669
  "timed_out",
586
670
  "backgrounded",
671
+ "completion_reported",
587
672
  "unknown"
588
673
  ],
589
- "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; unknown: the native result established none of these."
674
+ "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."
590
675
  },
591
676
  "signal": {
592
677
  "type": "string",
@@ -615,6 +700,15 @@
615
700
  "type": "integer",
616
701
  "exclusiveMinimum": 0,
617
702
  "description": "Vendor-reported process id."
703
+ },
704
+ "completion_status": {
705
+ "type": "string",
706
+ "enum": [
707
+ "success",
708
+ "error",
709
+ "aborted"
710
+ ],
711
+ "description": "What the vendor reported about a completion_reported command; never an exit code."
618
712
  }
619
713
  },
620
714
  "required": [
@@ -631,13 +725,21 @@
631
725
  "failed"
632
726
  ],
633
727
  "description": "Adapter-stamped web/browser retrieval outcome (verified/dispatched/failed), distinct from the tool-call status lifecycle."
728
+ },
729
+ "web_content": {
730
+ "type": "string",
731
+ "enum": [
732
+ "page",
733
+ "search_results"
734
+ ],
735
+ "description": "What a verified web retrieval returned: page (a fetched or loaded page) or search_results (a web search's results, not a fetched page)."
634
736
  }
635
737
  },
636
738
  "required": [
637
739
  "name"
638
740
  ],
639
741
  "additionalProperties": false,
640
- "description": "Typed tool info; set on tool_call and tool_result events."
742
+ "description": "Typed tool info; set on tool_call and tool_result events, and on a status event with payload.code command_outcome_refined, where it names the earlier call (use_id) and carries its refined command_outcome."
641
743
  },
642
744
  "interaction": {
643
745
  "type": "object",
@@ -769,7 +871,7 @@
769
871
  "type": "null"
770
872
  }
771
873
  ],
772
- "description": "Base-tree blob oid, or null only when the path is absent in the base tree."
874
+ "description": "Blob oid in the packet's exact tree, or null only when that tree lacks the path."
773
875
  }
774
876
  },
775
877
  "required": [
@@ -1384,6 +1486,13 @@
1384
1486
  ],
1385
1487
  "default": null,
1386
1488
  "description": "Suggested retry delay in milliseconds, when reported."
1489
+ },
1490
+ "reopening": {
1491
+ "type": "string",
1492
+ "enum": [
1493
+ "unknown"
1494
+ ],
1495
+ "description": "unknown: the vendor's own typed code refused further usage on this account and named no reopening time, and the refusal is not known to be a timed window (Codex usage_limit_exceeded also covers a workspace out of credits). No reset is derived from it and the same account is never retried for it. Absent: resets_at, retry_delay_ms and the vendor's window say when to come back, as before."
1387
1496
  }
1388
1497
  },
1389
1498
  "additionalProperties": false,
@@ -1538,6 +1647,33 @@
1538
1647
  "additionalProperties": false,
1539
1648
  "description": "Typed context-management signal (compaction boundary / capacity exhaustion) set by the adapter; orthogonal to the transient-retry taxonomy."
1540
1649
  },
1650
+ "turn_limit": {
1651
+ "type": "object",
1652
+ "properties": {
1653
+ "native_code": {
1654
+ "type": "string",
1655
+ "description": "The vendor's own terminal subtype, verbatim."
1656
+ },
1657
+ "num_turns": {
1658
+ "anyOf": [
1659
+ {
1660
+ "type": "integer",
1661
+ "minimum": 0
1662
+ },
1663
+ {
1664
+ "type": "null"
1665
+ }
1666
+ ],
1667
+ "description": "Turns the vendor counted."
1668
+ }
1669
+ },
1670
+ "required": [
1671
+ "native_code",
1672
+ "num_turns"
1673
+ ],
1674
+ "additionalProperties": false,
1675
+ "description": "Typed max-turns stop set by the adapter on the error event that ends a capped native turn; orthogonal to the transient-retry taxonomy."
1676
+ },
1541
1677
  "error": {
1542
1678
  "type": "string",
1543
1679
  "description": "Error text for error events."
@@ -240,7 +240,7 @@
240
240
  "tool_allowlist",
241
241
  "none"
242
242
  ],
243
- "description": "How read-only access is enforced for a harness: a filesystem sandbox, permission denial, a tool allowlist, or none (read-only intent is advisory).",
243
+ "description": "How a harness applies read-only access: a filesystem sandbox, permission denial, a tool allowlist, or none (read-only intent is advisory).",
244
244
  "default": "none"
245
245
  },
246
246
  "write_mechanism": {
@@ -741,7 +741,7 @@
741
741
  "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)."
742
742
  },
743
743
  "default": [],
744
- "description": "Access profiles the adapter can enforce."
744
+ "description": "Access profiles the adapter can translate to its harness."
745
745
  }
746
746
  },
747
747
  "required": [
@@ -258,7 +258,7 @@
258
258
  "tool_allowlist",
259
259
  "none"
260
260
  ],
261
- "description": "How read-only access is enforced for a harness: a filesystem sandbox, permission denial, a tool allowlist, or none (read-only intent is advisory).",
261
+ "description": "How a harness applies read-only access: a filesystem sandbox, permission denial, a tool allowlist, or none (read-only intent is advisory).",
262
262
  "default": "none"
263
263
  },
264
264
  "write_mechanism": {
@@ -759,7 +759,7 @@
759
759
  "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)."
760
760
  },
761
761
  "default": [],
762
- "description": "Access profiles the adapter can enforce."
762
+ "description": "Access profiles the adapter can translate to its harness."
763
763
  }
764
764
  },
765
765
  "required": [
@@ -447,6 +447,66 @@
447
447
  },
448
448
  "description": "Temporary capability marks; absent from engines that predate them. A mark clears on a success there or a catalog or credential change; after expires_at one operation may probe the account."
449
449
  },
450
+ "credentialUnusable": {
451
+ "type": "array",
452
+ "items": {
453
+ "type": "object",
454
+ "properties": {
455
+ "harness_id": {
456
+ "type": "string",
457
+ "minLength": 1,
458
+ "description": "Harness family of the account."
459
+ },
460
+ "profile_id": {
461
+ "type": "string",
462
+ "minLength": 1,
463
+ "description": "Registered account row the refusal was observed on."
464
+ },
465
+ "model": {
466
+ "type": "string",
467
+ "description": "Model the refused run requested, exactly as requested; a vendor-reported id that differs from it does not clear the observation."
468
+ },
469
+ "code": {
470
+ "type": "string",
471
+ "enum": [
472
+ "auth_revoked",
473
+ "capability_refused",
474
+ "verification_failed"
475
+ ],
476
+ "description": "Typed reason an observed credential is unusable: vendor rejection, entitlement refusal, or a failed profile verification probe."
477
+ },
478
+ "detail": {
479
+ "type": [
480
+ "string",
481
+ "null"
482
+ ],
483
+ "description": "Redacted typed evidence of the refusal, such as the vendor's error category; null when none was observed."
484
+ },
485
+ "observed_at": {
486
+ "type": "string",
487
+ "minLength": 1,
488
+ "description": "When the refusal was observed."
489
+ },
490
+ "expires_at": {
491
+ "type": "string",
492
+ "minLength": 1,
493
+ "description": "Self-expiry of the observation (bounded retention, not a vendor reset time)."
494
+ }
495
+ },
496
+ "required": [
497
+ "harness_id",
498
+ "profile_id",
499
+ "model",
500
+ "code",
501
+ "detail",
502
+ "observed_at",
503
+ "expires_at"
504
+ ],
505
+ "additionalProperties": false,
506
+ "description": "A live typed refusal of one model on one registered account. It affects routing for that model only and never changes the account's status, Enabled state or order."
507
+ },
508
+ "description": "Live model-scoped credential refusals of the registered rows, most recent first per account, present only when the client asked (includeCredentialUnusable=true). One clears on a later service of exactly that model, a credential change, or expiry."
509
+ },
450
510
  "refusals": {
451
511
  "type": "array",
452
512
  "items": {
@@ -821,7 +881,7 @@
821
881
  "tool_allowlist",
822
882
  "none"
823
883
  ],
824
- "description": "How read-only access is enforced for a harness: a filesystem sandbox, permission denial, a tool allowlist, or none (read-only intent is advisory).",
884
+ "description": "How a harness applies read-only access: a filesystem sandbox, permission denial, a tool allowlist, or none (read-only intent is advisory).",
825
885
  "default": "none"
826
886
  },
827
887
  "write_mechanism": {
@@ -1322,7 +1382,7 @@
1322
1382
  "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)."
1323
1383
  },
1324
1384
  "default": [],
1325
- "description": "Access profiles the adapter can enforce."
1385
+ "description": "Access profiles the adapter can translate to its harness."
1326
1386
  }
1327
1387
  },
1328
1388
  "required": [