@claudexor/schema 4.8.1 → 5.0.1

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 (217) hide show
  1. package/dist/account-resources.d.ts +325 -56
  2. package/dist/account-resources.d.ts.map +1 -1
  3. package/dist/account-resources.js +35 -5
  4. package/dist/account-resources.js.map +1 -1
  5. package/dist/account-routing-evidence.d.ts +253 -45
  6. package/dist/account-routing-evidence.d.ts.map +1 -1
  7. package/dist/account-target.d.ts +19 -5
  8. package/dist/account-target.d.ts.map +1 -1
  9. package/dist/account-target.js +14 -1
  10. package/dist/account-target.js.map +1 -1
  11. package/dist/agent-capabilities.d.ts +183 -0
  12. package/dist/agent-capabilities.d.ts.map +1 -1
  13. package/dist/agent-capabilities.js +2 -0
  14. package/dist/agent-capabilities.js.map +1 -1
  15. package/dist/budget.d.ts +3 -0
  16. package/dist/budget.d.ts.map +1 -1
  17. package/dist/budget.js +5 -1
  18. package/dist/budget.js.map +1 -1
  19. package/dist/capture-inventory.d.ts +60 -0
  20. package/dist/capture-inventory.d.ts.map +1 -0
  21. package/dist/capture-inventory.js +57 -0
  22. package/dist/capture-inventory.js.map +1 -0
  23. package/dist/control-gc.d.ts +377 -0
  24. package/dist/control-gc.d.ts.map +1 -1
  25. package/dist/control-gc.js +74 -1
  26. package/dist/control-gc.js.map +1 -1
  27. package/dist/control-harness-list.d.ts +102 -18
  28. package/dist/control-harness-list.d.ts.map +1 -1
  29. package/dist/control-harness-models.d.ts +299 -6
  30. package/dist/control-harness-models.d.ts.map +1 -1
  31. package/dist/control-harness-models.js +12 -3
  32. package/dist/control-harness-models.js.map +1 -1
  33. package/dist/control-operation-responses.d.ts +606 -23
  34. package/dist/control-operation-responses.d.ts.map +1 -1
  35. package/dist/control-operation-responses.js +3 -0
  36. package/dist/control-operation-responses.js.map +1 -1
  37. package/dist/control-run-detail.d.ts +1193 -72
  38. package/dist/control-run-detail.d.ts.map +1 -1
  39. package/dist/control-run-event-part.d.ts +3 -3
  40. package/dist/control-run-event-part.js +1 -1
  41. package/dist/control-run-event-part.js.map +1 -1
  42. package/dist/control-run-failure.d.ts +276 -12
  43. package/dist/control-run-failure.d.ts.map +1 -1
  44. package/dist/control-run-failure.js +54 -16
  45. package/dist/control-run-failure.js.map +1 -1
  46. package/dist/control-run-message.js +1 -1
  47. package/dist/control-run-message.js.map +1 -1
  48. package/dist/control-thread-apply.d.ts +165 -0
  49. package/dist/control-thread-apply.d.ts.map +1 -1
  50. package/dist/control-timeline.d.ts +9 -0
  51. package/dist/control-timeline.d.ts.map +1 -1
  52. package/dist/control-timeline.js +20 -3
  53. package/dist/control-timeline.js.map +1 -1
  54. package/dist/control.d.ts +392 -42
  55. package/dist/control.d.ts.map +1 -1
  56. package/dist/control.js +13 -7
  57. package/dist/control.js.map +1 -1
  58. package/dist/credential-profile-snapshot.d.ts +506 -90
  59. package/dist/credential-profile-snapshot.d.ts.map +1 -1
  60. package/dist/daemon-status.d.ts +492 -0
  61. package/dist/daemon-status.d.ts.map +1 -1
  62. package/dist/daemon-status.js +22 -0
  63. package/dist/daemon-status.js.map +1 -1
  64. package/dist/decision.d.ts +9 -9
  65. package/dist/decision.d.ts.map +1 -1
  66. package/dist/decision.js +4 -0
  67. package/dist/decision.js.map +1 -1
  68. package/dist/delivery.d.ts +162 -0
  69. package/dist/delivery.d.ts.map +1 -1
  70. package/dist/delivery.js +32 -0
  71. package/dist/delivery.js.map +1 -1
  72. package/dist/events.d.ts +7 -6
  73. package/dist/events.d.ts.map +1 -1
  74. package/dist/events.js +10 -8
  75. package/dist/events.js.map +1 -1
  76. package/dist/git-result.d.ts +99 -0
  77. package/dist/git-result.d.ts.map +1 -0
  78. package/dist/git-result.js +80 -0
  79. package/dist/git-result.js.map +1 -0
  80. package/dist/harness-model.d.ts +89 -0
  81. package/dist/harness-model.d.ts.map +1 -1
  82. package/dist/harness-model.js +83 -0
  83. package/dist/harness-model.js.map +1 -1
  84. package/dist/harness-speech.d.ts +36 -0
  85. package/dist/harness-speech.d.ts.map +1 -0
  86. package/dist/harness-speech.js +27 -0
  87. package/dist/harness-speech.js.map +1 -0
  88. package/dist/harness.d.ts +371 -35
  89. package/dist/harness.d.ts.map +1 -1
  90. package/dist/harness.js +7 -21
  91. package/dist/harness.js.map +1 -1
  92. package/dist/index.d.ts +5 -0
  93. package/dist/index.d.ts.map +1 -1
  94. package/dist/index.js +5 -0
  95. package/dist/index.js.map +1 -1
  96. package/dist/mcp-run-result.d.ts +620 -51
  97. package/dist/mcp-run-result.d.ts.map +1 -1
  98. package/dist/mcp-run-result.js +45 -5
  99. package/dist/mcp-run-result.js.map +1 -1
  100. package/dist/mcp-run-wait.d.ts +7 -7
  101. package/dist/primitives.d.ts.map +1 -1
  102. package/dist/primitives.js +3 -2
  103. package/dist/primitives.js.map +1 -1
  104. package/dist/project.d.ts +45 -1
  105. package/dist/project.d.ts.map +1 -1
  106. package/dist/project.js +26 -1
  107. package/dist/project.js.map +1 -1
  108. package/dist/quota-read.d.ts +6 -3
  109. package/dist/quota-read.d.ts.map +1 -1
  110. package/dist/quota-read.js +7 -1
  111. package/dist/quota-read.js.map +1 -1
  112. package/dist/quota-scope.d.ts +29 -0
  113. package/dist/quota-scope.d.ts.map +1 -0
  114. package/dist/quota-scope.js +95 -0
  115. package/dist/quota-scope.js.map +1 -0
  116. package/dist/rate-limit.d.ts +3 -0
  117. package/dist/rate-limit.d.ts.map +1 -1
  118. package/dist/rate-limit.js +5 -1
  119. package/dist/rate-limit.js.map +1 -1
  120. package/dist/raw.d.ts +223 -1
  121. package/dist/raw.d.ts.map +1 -1
  122. package/dist/raw.js +86 -0
  123. package/dist/raw.js.map +1 -1
  124. package/dist/readiness.d.ts +87 -18
  125. package/dist/readiness.d.ts.map +1 -1
  126. package/dist/readiness.js +7 -6
  127. package/dist/readiness.js.map +1 -1
  128. package/dist/route-health.d.ts +303 -0
  129. package/dist/route-health.d.ts.map +1 -0
  130. package/dist/route-health.js +71 -0
  131. package/dist/route-health.js.map +1 -0
  132. package/dist/run-continuity.d.ts +3 -0
  133. package/dist/run-continuity.d.ts.map +1 -1
  134. package/dist/run-continuity.js +4 -0
  135. package/dist/run-continuity.js.map +1 -1
  136. package/dist/run-facts.d.ts +5 -5
  137. package/dist/run-facts.d.ts.map +1 -1
  138. package/dist/run-facts.js +1 -0
  139. package/dist/run-facts.js.map +1 -1
  140. package/dist/run-observation.d.ts +6 -6
  141. package/dist/run-observation.d.ts.map +1 -1
  142. package/dist/run-observation.js +7 -1
  143. package/dist/run-observation.js.map +1 -1
  144. package/dist/setup-login.d.ts +1 -1
  145. package/dist/setup-login.js +1 -1
  146. package/dist/setup.d.ts +1 -1
  147. package/dist/setup.js +1 -1
  148. package/dist/status-projection.d.ts.map +1 -1
  149. package/dist/status-projection.js +3 -0
  150. package/dist/status-projection.js.map +1 -1
  151. package/dist/task-group-runs.d.ts +1 -0
  152. package/dist/task-group-runs.d.ts.map +1 -1
  153. package/dist/task-group-runs.js +6 -3
  154. package/dist/task-group-runs.js.map +1 -1
  155. package/dist/telemetry.d.ts +239 -7
  156. package/dist/telemetry.d.ts.map +1 -1
  157. package/dist/telemetry.js +4 -2
  158. package/dist/telemetry.js.map +1 -1
  159. package/dist/thread-history.d.ts +1109 -161
  160. package/dist/thread-history.d.ts.map +1 -1
  161. package/dist/thread-history.js +1 -1
  162. package/dist/thread-history.js.map +1 -1
  163. package/dist/tool-ref.d.ts +94 -3
  164. package/dist/tool-ref.d.ts.map +1 -1
  165. package/dist/tool-ref.js +98 -6
  166. package/dist/tool-ref.js.map +1 -1
  167. package/generated/AgentCapabilityCatalog.schema.json +54 -0
  168. package/generated/BudgetObservation.schema.json +8 -1
  169. package/generated/ControlAccountResetResponse.schema.json +60 -1
  170. package/generated/ControlAccountResourcesFreshnessResponse.schema.json +46 -2
  171. package/generated/ControlAccountResourcesResponse.schema.json +46 -2
  172. package/generated/ControlApplyCheckResponse.schema.json +47 -0
  173. package/generated/ControlCredentialProfilesQueryResponse.schema.json +105 -4
  174. package/generated/ControlCredentialProfilesResourcesResponse.schema.json +105 -4
  175. package/generated/ControlCredentialProfilesSnapshotResponse.schema.json +59 -2
  176. package/generated/ControlDaemonStatus.schema.json +112 -43
  177. package/generated/ControlDeliveryResponse.schema.json +154 -0
  178. package/generated/ControlGcLastResponse.schema.json +184 -0
  179. package/generated/ControlGcReceipt.schema.json +60 -1
  180. package/generated/ControlGcRequest.schema.json +4 -0
  181. package/generated/ControlHarnessAccountCatalog.schema.json +13 -0
  182. package/generated/ControlHarnessAccountModelsResponse.schema.json +13 -0
  183. package/generated/ControlHarnessListResponse.schema.json +59 -2
  184. package/generated/ControlHarnessModelsQueryResponse.schema.json +97 -51
  185. package/generated/ControlHarnessModelsResponse.schema.json +96 -0
  186. package/generated/ControlProjectRemoveReceipt.schema.json +36 -0
  187. package/generated/ControlQuotaQueryResponse.schema.json +46 -2
  188. package/generated/ControlQuotaReadRequest.schema.json +4 -0
  189. package/generated/ControlQuotaRefreshRequest.schema.json +12 -3
  190. package/generated/ControlRouteHealth.schema.json +202 -0
  191. package/generated/ControlRunDecisionResponse.schema.json +14 -0
  192. package/generated/ControlRunDetail.schema.json +376 -6
  193. package/generated/ControlRunEventPart.schema.json +3 -2
  194. package/generated/ControlRunListResponse.schema.json +342 -3
  195. package/generated/ControlRunMessageRequest.schema.json +1 -1
  196. package/generated/ControlRunSummary.schema.json +342 -3
  197. package/generated/ControlThreadApplyResponse.schema.json +154 -0
  198. package/generated/ControlThreadDetail.schema.json +2 -1
  199. package/generated/DecisionRecord.schema.json +1 -0
  200. package/generated/HarnessEvent.schema.json +214 -5
  201. package/generated/HarnessManifest.schema.json +57 -0
  202. package/generated/HarnessModel.schema.json +13 -0
  203. package/generated/HarnessStatusDto.schema.json +59 -2
  204. package/generated/JournaledRunCreatedPayload.schema.json +2 -2
  205. package/generated/McpAccountsToolResult.schema.json +105 -4
  206. package/generated/McpRunHandleResult.schema.json +279 -2
  207. package/generated/McpRunToolResult.schema.json +269 -0
  208. package/generated/McpRunWaitResult.schema.json +2 -1
  209. package/generated/RawContextPacket.schema.json +98 -0
  210. package/generated/RunContinuityReceipt.schema.json +8 -0
  211. package/generated/RunEvent.schema.json +2 -1
  212. package/generated/RunFacts.schema.json +1 -0
  213. package/generated/RunFailure.schema.json +201 -0
  214. package/generated/RunTelemetry.schema.json +123 -2
  215. package/generated/RunWaitManyInput.schema.json +11 -4
  216. package/generated/ThreadHistoryPage.schema.json +204 -2
  217. package/package.json +2 -2
@@ -488,6 +488,7 @@
488
488
  "owner_task_gone",
489
489
  "crash_interrupted",
490
490
  "workspace_unavailable",
491
+ "capture_refused",
491
492
  "input_required",
492
493
  "work_incomplete",
493
494
  "context_capacity_exhausted",
@@ -1172,6 +1173,68 @@
1172
1173
  ],
1173
1174
  "description": "Vendor-attested request refusal that stops retries and account rotation on its harness; input, executable and credential-source causes carry their own evidence."
1174
1175
  },
1176
+ "rawContextShortfall": {
1177
+ "type": "object",
1178
+ "properties": {
1179
+ "model": {
1180
+ "type": "string",
1181
+ "minLength": 1,
1182
+ "description": "Model whose window was checked."
1183
+ },
1184
+ "context_window": {
1185
+ "type": "integer",
1186
+ "exclusiveMinimum": 0
1187
+ },
1188
+ "packet_tokens": {
1189
+ "type": "integer",
1190
+ "minimum": 0,
1191
+ "description": "The packet with every optional file omitted: mandatory files, file manifest and metadata."
1192
+ },
1193
+ "framing_tokens": {
1194
+ "type": "integer",
1195
+ "minimum": 0,
1196
+ "description": "The request outside the packet: instructions, user text, patch protocol and attachments."
1197
+ },
1198
+ "output_allowance_tokens": {
1199
+ "type": "integer",
1200
+ "minimum": 0,
1201
+ "description": "Tokens kept free for the answer."
1202
+ },
1203
+ "mandatory_files": {
1204
+ "type": "array",
1205
+ "items": {
1206
+ "type": "object",
1207
+ "properties": {
1208
+ "path": {
1209
+ "type": "string",
1210
+ "minLength": 1
1211
+ },
1212
+ "estimated_tokens": {
1213
+ "type": "integer",
1214
+ "minimum": 0,
1215
+ "description": "This file's share of packet_tokens: its packet entry with content and evidence."
1216
+ }
1217
+ },
1218
+ "required": [
1219
+ "path",
1220
+ "estimated_tokens"
1221
+ ],
1222
+ "additionalProperties": false
1223
+ },
1224
+ "description": "Every mandatory file, largest first."
1225
+ }
1226
+ },
1227
+ "required": [
1228
+ "model",
1229
+ "context_window",
1230
+ "packet_tokens",
1231
+ "framing_tokens",
1232
+ "output_allowance_tokens",
1233
+ "mandatory_files"
1234
+ ],
1235
+ "additionalProperties": false,
1236
+ "description": "Typed sizes behind code raw_context_exceeds_window: the window, the request's parts and every mandatory file, so surfaces never read them from safeMessage."
1237
+ },
1175
1238
  "captureFailure": {
1176
1239
  "type": "object",
1177
1240
  "properties": {
@@ -1181,6 +1244,11 @@
1181
1244
  "capture_output_exceeded",
1182
1245
  "capture_output_incomplete",
1183
1246
  "capture_preview_truncated",
1247
+ "capture_space_insufficient",
1248
+ "capture_git_stalled",
1249
+ "capture_git_signal",
1250
+ "capture_read_failed",
1251
+ "capture_object_missing",
1184
1252
  "capture_failed"
1185
1253
  ]
1186
1254
  },
@@ -1205,6 +1273,22 @@
1205
1273
  "type": "string",
1206
1274
  "const": "truncated"
1207
1275
  },
1276
+ "requiredBytes": {
1277
+ "type": "integer",
1278
+ "minimum": 0
1279
+ },
1280
+ "availableBytes": {
1281
+ "type": "integer",
1282
+ "minimum": 0
1283
+ },
1284
+ "signal": {
1285
+ "type": "string",
1286
+ "maxLength": 32
1287
+ },
1288
+ "stallMs": {
1289
+ "type": "integer",
1290
+ "minimum": 0
1291
+ },
1208
1292
  "cleanup": {
1209
1293
  "type": "object",
1210
1294
  "properties": {
@@ -1223,6 +1307,72 @@
1223
1307
  "message"
1224
1308
  ],
1225
1309
  "additionalProperties": false
1310
+ },
1311
+ "inventory": {
1312
+ "type": "object",
1313
+ "properties": {
1314
+ "exact": {
1315
+ "type": "boolean",
1316
+ "const": false,
1317
+ "description": "Always false: an inventory names files; it is not the exact change."
1318
+ },
1319
+ "changedFiles": {
1320
+ "type": "integer",
1321
+ "minimum": 0,
1322
+ "description": "Changed paths the pass counted."
1323
+ },
1324
+ "largest": {
1325
+ "type": "array",
1326
+ "items": {
1327
+ "type": "object",
1328
+ "properties": {
1329
+ "path": {
1330
+ "type": "string",
1331
+ "maxLength": 1024,
1332
+ "description": "Top-relative changed path, exact within the length cap."
1333
+ },
1334
+ "change": {
1335
+ "type": "string",
1336
+ "enum": [
1337
+ "added",
1338
+ "modified",
1339
+ "deleted",
1340
+ "type_changed"
1341
+ ],
1342
+ "description": "What happened to the path between the turn's base and the uncaptured tree."
1343
+ },
1344
+ "sizeBytes": {
1345
+ "anyOf": [
1346
+ {
1347
+ "type": "integer",
1348
+ "minimum": 0
1349
+ },
1350
+ {
1351
+ "type": "null"
1352
+ }
1353
+ ],
1354
+ "description": "Size of the new blob (of the old blob for a deletion); null when Git could not size it."
1355
+ }
1356
+ },
1357
+ "required": [
1358
+ "path",
1359
+ "change",
1360
+ "sizeBytes"
1361
+ ],
1362
+ "additionalProperties": false,
1363
+ "description": "One changed path of a non-exact capture inventory."
1364
+ },
1365
+ "maxItems": 20,
1366
+ "description": "The largest changed files, largest first."
1367
+ }
1368
+ },
1369
+ "required": [
1370
+ "exact",
1371
+ "changedFiles",
1372
+ "largest"
1373
+ ],
1374
+ "additionalProperties": false,
1375
+ "description": "Bounded non-exact inventory of the changed files behind a refused capture."
1226
1376
  }
1227
1377
  },
1228
1378
  "required": [
@@ -1269,6 +1419,9 @@
1269
1419
  "subscription_window_exhausted",
1270
1420
  "credential_pool_exhausted",
1271
1421
  "input_too_large",
1422
+ "raw_context_mandatory_unavailable",
1423
+ "raw_context_exceeds_window",
1424
+ "model_catalog_unavailable",
1272
1425
  "vendor_cli_too_old",
1273
1426
  "credential_source_unconfirmed",
1274
1427
  "delegated_home_unavailable",
@@ -1352,6 +1505,55 @@
1352
1505
  "default": null,
1353
1506
  "description": "When the refused window reopens (a spent subscription quota window), or null when the failure has no such time. Callers schedule a retry off this field, never off safeMessage."
1354
1507
  },
1508
+ "quotaRefusal": {
1509
+ "type": "object",
1510
+ "properties": {
1511
+ "basis": {
1512
+ "type": "string",
1513
+ "enum": [
1514
+ "owner_reserve",
1515
+ "provider_window",
1516
+ "provider_cooldown"
1517
+ ],
1518
+ "description": "owner_reserve: usage reached the saved headroom_threshold below 100% while the provider reports quota left; provider_window: the provider reports the window spent; provider_cooldown: a provider rate-limit cooldown is in force."
1519
+ },
1520
+ "constraintId": {
1521
+ "type": [
1522
+ "string",
1523
+ "null"
1524
+ ],
1525
+ "description": "The refusing quota window, when known."
1526
+ },
1527
+ "usedRatio": {
1528
+ "anyOf": [
1529
+ {
1530
+ "type": "number",
1531
+ "minimum": 0,
1532
+ "maximum": 1
1533
+ },
1534
+ {
1535
+ "type": "null"
1536
+ }
1537
+ ],
1538
+ "description": "Its observed usage, when known."
1539
+ },
1540
+ "threshold": {
1541
+ "type": [
1542
+ "number",
1543
+ "null"
1544
+ ],
1545
+ "description": "The headroom_threshold the decision applied, when it applied one."
1546
+ }
1547
+ },
1548
+ "required": [
1549
+ "basis",
1550
+ "constraintId",
1551
+ "usedRatio",
1552
+ "threshold"
1553
+ ],
1554
+ "additionalProperties": false,
1555
+ "description": "Present when quota admission refused the account (code subscription_window_exhausted): separates the owner's saved reserve from provider exhaustion. Absent on other failures and on records written before this field existed."
1556
+ },
1355
1557
  "vendorFailure": {
1356
1558
  "anyOf": [
1357
1559
  {
@@ -2182,6 +2384,14 @@
2182
2384
  "not_applicable"
2183
2385
  ],
2184
2386
  "description": "Whether the predecessor's last input (its turn prompt or an admitted steering message) is known to be in the vendor history: confirmed, uncertain (carried in the notice as a reference to reconcile, never replayed blindly), or not applicable."
2387
+ },
2388
+ "sourceRetirement": {
2389
+ "type": "string",
2390
+ "enum": [
2391
+ "retired",
2392
+ "not_confirmed"
2393
+ ],
2394
+ "description": "After a native_moved carrier published the new holder: retired (the adapter removed the source copy) or not_confirmed (removal failed, possibly part-way). Absent = no move retired a source for this try."
2185
2395
  }
2186
2396
  },
2187
2397
  "required": [
@@ -2382,13 +2592,80 @@
2382
2592
  "exactPatchRecorded"
2383
2593
  ],
2384
2594
  "additionalProperties": false,
2385
- "description": "What a run's saved copies hide: secret-like strings kept in the work, hidden on disk."
2595
+ "description": "What a historical (INV-062) run's saved copies hide: secret-like strings kept in the work, hidden on disk."
2596
+ },
2597
+ {
2598
+ "type": "null"
2599
+ }
2600
+ ],
2601
+ "description": "Historical disclosure of a run written under the retired INV-062 that hid secret-like strings in its saved copies (paths and counts only); null for current runs, which save exact bytes.",
2602
+ "default": null
2603
+ },
2604
+ "objectResult": {
2605
+ "anyOf": [
2606
+ {
2607
+ "type": "object",
2608
+ "properties": {
2609
+ "digest": {
2610
+ "type": "string",
2611
+ "pattern": "^sha256:[0-9a-f]{64}$",
2612
+ "description": "Result digest v1 (sha256 of the canonical object descriptor)."
2613
+ },
2614
+ "patchView": {
2615
+ "type": "string",
2616
+ "enum": [
2617
+ "rendered",
2618
+ "unavailable"
2619
+ ],
2620
+ "description": "Whether final/patch.diff holds a rendered view of the result."
2621
+ },
2622
+ "reason": {
2623
+ "type": [
2624
+ "string",
2625
+ "null"
2626
+ ],
2627
+ "description": "Why no view was rendered (for example exceeds_view_limit); null when rendered."
2628
+ },
2629
+ "estimatedBytes": {
2630
+ "anyOf": [
2631
+ {
2632
+ "type": "integer",
2633
+ "minimum": 0
2634
+ },
2635
+ {
2636
+ "type": "null"
2637
+ }
2638
+ ],
2639
+ "description": "Estimate of the view size from blob sizes, not an upper bound; just above the view limit when the render itself overflowed; null when rendered or unknown."
2640
+ },
2641
+ "changedFiles": {
2642
+ "anyOf": [
2643
+ {
2644
+ "type": "integer",
2645
+ "minimum": 0
2646
+ },
2647
+ {
2648
+ "type": "null"
2649
+ }
2650
+ ],
2651
+ "description": "Changed paths of an unrendered result (from its inventory); null otherwise."
2652
+ }
2653
+ },
2654
+ "required": [
2655
+ "digest",
2656
+ "patchView",
2657
+ "reason",
2658
+ "estimatedBytes",
2659
+ "changedFiles"
2660
+ ],
2661
+ "additionalProperties": false,
2662
+ "description": "The exact object result of a run and whether its patch view exists."
2386
2663
  },
2387
2664
  {
2388
2665
  "type": "null"
2389
2666
  }
2390
2667
  ],
2391
- "description": "INV-062 disclosure: secret-like strings kept in the work but hidden in saved copies (paths and counts only); null when nothing was hidden.",
2668
+ "description": "#535: the exact Git-object result and whether its patch view exists; null for a run without an object result.",
2392
2669
  "default": null
2393
2670
  }
2394
2671
  },
@@ -503,6 +503,7 @@
503
503
  "owner_task_gone",
504
504
  "crash_interrupted",
505
505
  "workspace_unavailable",
506
+ "capture_refused",
506
507
  "input_required",
507
508
  "work_incomplete",
508
509
  "context_capacity_exhausted",
@@ -1166,6 +1167,68 @@
1166
1167
  ],
1167
1168
  "description": "Vendor-attested request refusal that stops retries and account rotation on its harness; input, executable and credential-source causes carry their own evidence."
1168
1169
  },
1170
+ "rawContextShortfall": {
1171
+ "type": "object",
1172
+ "properties": {
1173
+ "model": {
1174
+ "type": "string",
1175
+ "minLength": 1,
1176
+ "description": "Model whose window was checked."
1177
+ },
1178
+ "context_window": {
1179
+ "type": "integer",
1180
+ "exclusiveMinimum": 0
1181
+ },
1182
+ "packet_tokens": {
1183
+ "type": "integer",
1184
+ "minimum": 0,
1185
+ "description": "The packet with every optional file omitted: mandatory files, file manifest and metadata."
1186
+ },
1187
+ "framing_tokens": {
1188
+ "type": "integer",
1189
+ "minimum": 0,
1190
+ "description": "The request outside the packet: instructions, user text, patch protocol and attachments."
1191
+ },
1192
+ "output_allowance_tokens": {
1193
+ "type": "integer",
1194
+ "minimum": 0,
1195
+ "description": "Tokens kept free for the answer."
1196
+ },
1197
+ "mandatory_files": {
1198
+ "type": "array",
1199
+ "items": {
1200
+ "type": "object",
1201
+ "properties": {
1202
+ "path": {
1203
+ "type": "string",
1204
+ "minLength": 1
1205
+ },
1206
+ "estimated_tokens": {
1207
+ "type": "integer",
1208
+ "minimum": 0,
1209
+ "description": "This file's share of packet_tokens: its packet entry with content and evidence."
1210
+ }
1211
+ },
1212
+ "required": [
1213
+ "path",
1214
+ "estimated_tokens"
1215
+ ],
1216
+ "additionalProperties": false
1217
+ },
1218
+ "description": "Every mandatory file, largest first."
1219
+ }
1220
+ },
1221
+ "required": [
1222
+ "model",
1223
+ "context_window",
1224
+ "packet_tokens",
1225
+ "framing_tokens",
1226
+ "output_allowance_tokens",
1227
+ "mandatory_files"
1228
+ ],
1229
+ "additionalProperties": false,
1230
+ "description": "Typed sizes behind code raw_context_exceeds_window: the window, the request's parts and every mandatory file, so surfaces never read them from safeMessage."
1231
+ },
1169
1232
  "captureFailure": {
1170
1233
  "type": "object",
1171
1234
  "properties": {
@@ -1175,6 +1238,11 @@
1175
1238
  "capture_output_exceeded",
1176
1239
  "capture_output_incomplete",
1177
1240
  "capture_preview_truncated",
1241
+ "capture_space_insufficient",
1242
+ "capture_git_stalled",
1243
+ "capture_git_signal",
1244
+ "capture_read_failed",
1245
+ "capture_object_missing",
1178
1246
  "capture_failed"
1179
1247
  ]
1180
1248
  },
@@ -1199,6 +1267,22 @@
1199
1267
  "type": "string",
1200
1268
  "const": "truncated"
1201
1269
  },
1270
+ "requiredBytes": {
1271
+ "type": "integer",
1272
+ "minimum": 0
1273
+ },
1274
+ "availableBytes": {
1275
+ "type": "integer",
1276
+ "minimum": 0
1277
+ },
1278
+ "signal": {
1279
+ "type": "string",
1280
+ "maxLength": 32
1281
+ },
1282
+ "stallMs": {
1283
+ "type": "integer",
1284
+ "minimum": 0
1285
+ },
1202
1286
  "cleanup": {
1203
1287
  "type": "object",
1204
1288
  "properties": {
@@ -1217,6 +1301,72 @@
1217
1301
  "message"
1218
1302
  ],
1219
1303
  "additionalProperties": false
1304
+ },
1305
+ "inventory": {
1306
+ "type": "object",
1307
+ "properties": {
1308
+ "exact": {
1309
+ "type": "boolean",
1310
+ "const": false,
1311
+ "description": "Always false: an inventory names files; it is not the exact change."
1312
+ },
1313
+ "changedFiles": {
1314
+ "type": "integer",
1315
+ "minimum": 0,
1316
+ "description": "Changed paths the pass counted."
1317
+ },
1318
+ "largest": {
1319
+ "type": "array",
1320
+ "items": {
1321
+ "type": "object",
1322
+ "properties": {
1323
+ "path": {
1324
+ "type": "string",
1325
+ "maxLength": 1024,
1326
+ "description": "Top-relative changed path, exact within the length cap."
1327
+ },
1328
+ "change": {
1329
+ "type": "string",
1330
+ "enum": [
1331
+ "added",
1332
+ "modified",
1333
+ "deleted",
1334
+ "type_changed"
1335
+ ],
1336
+ "description": "What happened to the path between the turn's base and the uncaptured tree."
1337
+ },
1338
+ "sizeBytes": {
1339
+ "anyOf": [
1340
+ {
1341
+ "type": "integer",
1342
+ "minimum": 0
1343
+ },
1344
+ {
1345
+ "type": "null"
1346
+ }
1347
+ ],
1348
+ "description": "Size of the new blob (of the old blob for a deletion); null when Git could not size it."
1349
+ }
1350
+ },
1351
+ "required": [
1352
+ "path",
1353
+ "change",
1354
+ "sizeBytes"
1355
+ ],
1356
+ "additionalProperties": false,
1357
+ "description": "One changed path of a non-exact capture inventory."
1358
+ },
1359
+ "maxItems": 20,
1360
+ "description": "The largest changed files, largest first."
1361
+ }
1362
+ },
1363
+ "required": [
1364
+ "exact",
1365
+ "changedFiles",
1366
+ "largest"
1367
+ ],
1368
+ "additionalProperties": false,
1369
+ "description": "Bounded non-exact inventory of the changed files behind a refused capture."
1220
1370
  }
1221
1371
  },
1222
1372
  "required": [
@@ -1263,6 +1413,9 @@
1263
1413
  "subscription_window_exhausted",
1264
1414
  "credential_pool_exhausted",
1265
1415
  "input_too_large",
1416
+ "raw_context_mandatory_unavailable",
1417
+ "raw_context_exceeds_window",
1418
+ "model_catalog_unavailable",
1266
1419
  "vendor_cli_too_old",
1267
1420
  "credential_source_unconfirmed",
1268
1421
  "delegated_home_unavailable",
@@ -1346,6 +1499,55 @@
1346
1499
  "default": null,
1347
1500
  "description": "When the refused window reopens (a spent subscription quota window), or null when the failure has no such time. Callers schedule a retry off this field, never off safeMessage."
1348
1501
  },
1502
+ "quotaRefusal": {
1503
+ "type": "object",
1504
+ "properties": {
1505
+ "basis": {
1506
+ "type": "string",
1507
+ "enum": [
1508
+ "owner_reserve",
1509
+ "provider_window",
1510
+ "provider_cooldown"
1511
+ ],
1512
+ "description": "owner_reserve: usage reached the saved headroom_threshold below 100% while the provider reports quota left; provider_window: the provider reports the window spent; provider_cooldown: a provider rate-limit cooldown is in force."
1513
+ },
1514
+ "constraintId": {
1515
+ "type": [
1516
+ "string",
1517
+ "null"
1518
+ ],
1519
+ "description": "The refusing quota window, when known."
1520
+ },
1521
+ "usedRatio": {
1522
+ "anyOf": [
1523
+ {
1524
+ "type": "number",
1525
+ "minimum": 0,
1526
+ "maximum": 1
1527
+ },
1528
+ {
1529
+ "type": "null"
1530
+ }
1531
+ ],
1532
+ "description": "Its observed usage, when known."
1533
+ },
1534
+ "threshold": {
1535
+ "type": [
1536
+ "number",
1537
+ "null"
1538
+ ],
1539
+ "description": "The headroom_threshold the decision applied, when it applied one."
1540
+ }
1541
+ },
1542
+ "required": [
1543
+ "basis",
1544
+ "constraintId",
1545
+ "usedRatio",
1546
+ "threshold"
1547
+ ],
1548
+ "additionalProperties": false,
1549
+ "description": "Present when quota admission refused the account (code subscription_window_exhausted): separates the owner's saved reserve from provider exhaustion. Absent on other failures and on records written before this field existed."
1550
+ },
1349
1551
  "vendorFailure": {
1350
1552
  "anyOf": [
1351
1553
  {
@@ -1772,6 +1974,73 @@
1772
1974
  ],
1773
1975
  "description": "Engine-owned Delegate requested/effective/used receipt; surfaces project it without parsing model output.",
1774
1976
  "default": null
1977
+ },
1978
+ "objectResult": {
1979
+ "anyOf": [
1980
+ {
1981
+ "type": "object",
1982
+ "properties": {
1983
+ "digest": {
1984
+ "type": "string",
1985
+ "pattern": "^sha256:[0-9a-f]{64}$",
1986
+ "description": "Result digest v1 (sha256 of the canonical object descriptor)."
1987
+ },
1988
+ "patchView": {
1989
+ "type": "string",
1990
+ "enum": [
1991
+ "rendered",
1992
+ "unavailable"
1993
+ ],
1994
+ "description": "Whether final/patch.diff holds a rendered view of the result."
1995
+ },
1996
+ "reason": {
1997
+ "type": [
1998
+ "string",
1999
+ "null"
2000
+ ],
2001
+ "description": "Why no view was rendered (for example exceeds_view_limit); null when rendered."
2002
+ },
2003
+ "estimatedBytes": {
2004
+ "anyOf": [
2005
+ {
2006
+ "type": "integer",
2007
+ "minimum": 0
2008
+ },
2009
+ {
2010
+ "type": "null"
2011
+ }
2012
+ ],
2013
+ "description": "Estimate of the view size from blob sizes, not an upper bound; just above the view limit when the render itself overflowed; null when rendered or unknown."
2014
+ },
2015
+ "changedFiles": {
2016
+ "anyOf": [
2017
+ {
2018
+ "type": "integer",
2019
+ "minimum": 0
2020
+ },
2021
+ {
2022
+ "type": "null"
2023
+ }
2024
+ ],
2025
+ "description": "Changed paths of an unrendered result (from its inventory); null otherwise."
2026
+ }
2027
+ },
2028
+ "required": [
2029
+ "digest",
2030
+ "patchView",
2031
+ "reason",
2032
+ "estimatedBytes",
2033
+ "changedFiles"
2034
+ ],
2035
+ "additionalProperties": false,
2036
+ "description": "The exact object result of a run and whether its patch view exists."
2037
+ },
2038
+ {
2039
+ "type": "null"
2040
+ }
2041
+ ],
2042
+ "description": "#535: the exact Git-object result and whether its patch view exists; null for a run without an object result.",
2043
+ "default": null
1775
2044
  }
1776
2045
  },
1777
2046
  "required": [
@@ -344,7 +344,8 @@
344
344
  "run.continuation",
345
345
  "run.continuation.denied",
346
346
  "run.continuity",
347
- "workspace.retained"
347
+ "workspace.retained",
348
+ "workspace.settlement_failed"
348
349
  ],
349
350
  "description": "Type of an append-only run event, covering run lifecycle, contract/context creation, budget, routing fallbacks, harness activity, interactions, gates, review, arbitration, work products, and control verbs."
350
351
  },