@claudexor/schema 3.1.1 → 3.2.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 (282) hide show
  1. package/dist/agent-capabilities.d.ts +232 -116
  2. package/dist/agent-capabilities.d.ts.map +1 -1
  3. package/dist/agent-capabilities.js +8 -1
  4. package/dist/agent-capabilities.js.map +1 -1
  5. package/dist/apply-eligibility.d.ts +513 -222
  6. package/dist/apply-eligibility.d.ts.map +1 -1
  7. package/dist/apply-eligibility.js +42 -2
  8. package/dist/apply-eligibility.js.map +1 -1
  9. package/dist/attachment.d.ts +17 -17
  10. package/dist/attachment.d.ts.map +1 -1
  11. package/dist/attachment.js +1 -1
  12. package/dist/attachment.js.map +1 -1
  13. package/dist/auth.d.ts +475 -475
  14. package/dist/auth.d.ts.map +1 -1
  15. package/dist/auth.js +1 -1
  16. package/dist/auth.js.map +1 -1
  17. package/dist/budget.d.ts +61 -61
  18. package/dist/budget.d.ts.map +1 -1
  19. package/dist/budget.js +3 -1
  20. package/dist/budget.js.map +1 -1
  21. package/dist/config.d.ts +320 -316
  22. package/dist/config.d.ts.map +1 -1
  23. package/dist/config.js +26 -19
  24. package/dist/config.js.map +1 -1
  25. package/dist/context.d.ts +38 -38
  26. package/dist/context.d.ts.map +1 -1
  27. package/dist/context.js +1 -1
  28. package/dist/context.js.map +1 -1
  29. package/dist/control-auth-route.d.ts +46 -0
  30. package/dist/control-auth-route.d.ts.map +1 -0
  31. package/dist/control-auth-route.js +24 -0
  32. package/dist/control-auth-route.js.map +1 -0
  33. package/dist/control-gc.d.ts +15 -15
  34. package/dist/control-gc.d.ts.map +1 -1
  35. package/dist/control-gc.js +1 -1
  36. package/dist/control-gc.js.map +1 -1
  37. package/dist/control-harness-list.d.ts +896 -0
  38. package/dist/control-harness-list.d.ts.map +1 -0
  39. package/dist/control-harness-list.js +13 -0
  40. package/dist/control-harness-list.js.map +1 -0
  41. package/dist/control-operation-responses.d.ts +691 -590
  42. package/dist/control-operation-responses.d.ts.map +1 -1
  43. package/dist/control-operation-responses.js +27 -1
  44. package/dist/control-operation-responses.js.map +1 -1
  45. package/dist/control-run-detail.d.ts +2663 -920
  46. package/dist/control-run-detail.d.ts.map +1 -1
  47. package/dist/control-run-detail.js +13 -1
  48. package/dist/control-run-detail.js.map +1 -1
  49. package/dist/control-run-retry.d.ts +18 -18
  50. package/dist/control-run-retry.d.ts.map +1 -1
  51. package/dist/control-run-retry.js +1 -1
  52. package/dist/control-run-retry.js.map +1 -1
  53. package/dist/control-run-scope.d.ts +2 -2
  54. package/dist/control-run-scope.d.ts.map +1 -1
  55. package/dist/control-run-scope.js +1 -1
  56. package/dist/control-run-scope.js.map +1 -1
  57. package/dist/control-secret.d.ts +7 -7
  58. package/dist/control-secret.d.ts.map +1 -1
  59. package/dist/control-secret.js +1 -1
  60. package/dist/control-secret.js.map +1 -1
  61. package/dist/control-thread-apply.d.ts +65 -65
  62. package/dist/control-thread-apply.d.ts.map +1 -1
  63. package/dist/control-thread-apply.js +1 -1
  64. package/dist/control-thread-apply.js.map +1 -1
  65. package/dist/control-trust.d.ts +23 -23
  66. package/dist/control-trust.d.ts.map +1 -1
  67. package/dist/control-trust.js +1 -1
  68. package/dist/control-trust.js.map +1 -1
  69. package/dist/control.d.ts +1658 -2225
  70. package/dist/control.d.ts.map +1 -1
  71. package/dist/control.js +43 -73
  72. package/dist/control.js.map +1 -1
  73. package/dist/credential-profile-snapshot.d.ts +3185 -0
  74. package/dist/credential-profile-snapshot.d.ts.map +1 -0
  75. package/dist/credential-profile-snapshot.js +28 -0
  76. package/dist/credential-profile-snapshot.js.map +1 -0
  77. package/dist/credential-profile.d.ts +122 -107
  78. package/dist/credential-profile.d.ts.map +1 -1
  79. package/dist/credential-profile.js +12 -6
  80. package/dist/credential-profile.js.map +1 -1
  81. package/dist/decision.d.ts +122 -117
  82. package/dist/decision.d.ts.map +1 -1
  83. package/dist/decision.js +9 -4
  84. package/dist/decision.js.map +1 -1
  85. package/dist/deep-scan.d.ts +5 -5
  86. package/dist/deep-scan.d.ts.map +1 -1
  87. package/dist/deep-scan.js +1 -1
  88. package/dist/deep-scan.js.map +1 -1
  89. package/dist/delegation.d.ts +73 -0
  90. package/dist/delegation.d.ts.map +1 -0
  91. package/dist/delegation.js +120 -0
  92. package/dist/delegation.js.map +1 -0
  93. package/dist/delivery.d.ts +32 -32
  94. package/dist/delivery.d.ts.map +1 -1
  95. package/dist/delivery.js +1 -1
  96. package/dist/delivery.js.map +1 -1
  97. package/dist/effort.d.ts +1 -1
  98. package/dist/effort.d.ts.map +1 -1
  99. package/dist/effort.js +1 -1
  100. package/dist/effort.js.map +1 -1
  101. package/dist/events.d.ts +57 -37
  102. package/dist/events.d.ts.map +1 -1
  103. package/dist/events.js +23 -1
  104. package/dist/events.js.map +1 -1
  105. package/dist/gate.d.ts +7 -7
  106. package/dist/gate.d.ts.map +1 -1
  107. package/dist/gate.js +1 -1
  108. package/dist/gate.js.map +1 -1
  109. package/dist/git-capability.d.ts +23 -0
  110. package/dist/git-capability.d.ts.map +1 -0
  111. package/dist/git-capability.js +15 -0
  112. package/dist/git-capability.js.map +1 -0
  113. package/dist/harness.d.ts +409 -409
  114. package/dist/harness.d.ts.map +1 -1
  115. package/dist/harness.js +19 -22
  116. package/dist/harness.js.map +1 -1
  117. package/dist/index.d.ts +7 -0
  118. package/dist/index.d.ts.map +1 -1
  119. package/dist/index.js +7 -0
  120. package/dist/index.js.map +1 -1
  121. package/dist/interaction.d.ts +10 -0
  122. package/dist/interaction.d.ts.map +1 -0
  123. package/dist/interaction.js +2 -0
  124. package/dist/interaction.js.map +1 -0
  125. package/dist/operation.d.ts +113 -113
  126. package/dist/operation.d.ts.map +1 -1
  127. package/dist/operation.js +1 -1
  128. package/dist/operation.js.map +1 -1
  129. package/dist/output-schema-dialect.d.ts +1 -1
  130. package/dist/output-schema-dialect.d.ts.map +1 -1
  131. package/dist/output-schema-dialect.js +1 -1
  132. package/dist/output-schema-dialect.js.map +1 -1
  133. package/dist/output-schema.d.ts +2 -2
  134. package/dist/output-schema.js +2 -2
  135. package/dist/plan.d.ts +29 -29
  136. package/dist/plan.d.ts.map +1 -1
  137. package/dist/plan.js +1 -1
  138. package/dist/plan.js.map +1 -1
  139. package/dist/primitives.d.ts +1 -1
  140. package/dist/primitives.d.ts.map +1 -1
  141. package/dist/primitives.js +1 -1
  142. package/dist/primitives.js.map +1 -1
  143. package/dist/problem.d.ts +6 -6
  144. package/dist/problem.d.ts.map +1 -1
  145. package/dist/problem.js +1 -1
  146. package/dist/problem.js.map +1 -1
  147. package/dist/project.d.ts +87 -25
  148. package/dist/project.d.ts.map +1 -1
  149. package/dist/project.js +21 -1
  150. package/dist/project.js.map +1 -1
  151. package/dist/quota.d.ts +48 -48
  152. package/dist/quota.d.ts.map +1 -1
  153. package/dist/quota.js +1 -1
  154. package/dist/quota.js.map +1 -1
  155. package/dist/raw.d.ts +16 -16
  156. package/dist/raw.d.ts.map +1 -1
  157. package/dist/raw.js +1 -1
  158. package/dist/raw.js.map +1 -1
  159. package/dist/readiness.d.ts +264 -226
  160. package/dist/readiness.d.ts.map +1 -1
  161. package/dist/readiness.js +5 -1
  162. package/dist/readiness.js.map +1 -1
  163. package/dist/recovery.d.ts +106 -106
  164. package/dist/recovery.d.ts.map +1 -1
  165. package/dist/recovery.js +1 -1
  166. package/dist/recovery.js.map +1 -1
  167. package/dist/request-requirements.d.ts +12 -12
  168. package/dist/request-requirements.d.ts.map +1 -1
  169. package/dist/request-requirements.js +3 -2
  170. package/dist/request-requirements.js.map +1 -1
  171. package/dist/review.d.ts +29 -29
  172. package/dist/review.d.ts.map +1 -1
  173. package/dist/review.js +1 -1
  174. package/dist/review.js.map +1 -1
  175. package/dist/route.d.ts +11 -11
  176. package/dist/route.d.ts.map +1 -1
  177. package/dist/route.js +1 -1
  178. package/dist/route.js.map +1 -1
  179. package/dist/run-applicability.d.ts +764 -0
  180. package/dist/run-applicability.d.ts.map +1 -0
  181. package/dist/run-applicability.js +56 -0
  182. package/dist/run-applicability.js.map +1 -0
  183. package/dist/run-facts.d.ts +628 -0
  184. package/dist/run-facts.d.ts.map +1 -0
  185. package/dist/run-facts.js +429 -0
  186. package/dist/run-facts.js.map +1 -0
  187. package/dist/run-strategy.d.ts +40 -0
  188. package/dist/run-strategy.d.ts.map +1 -1
  189. package/dist/run-strategy.js +68 -1
  190. package/dist/run-strategy.js.map +1 -1
  191. package/dist/setup-device-code-envelope.d.ts +67 -0
  192. package/dist/setup-device-code-envelope.d.ts.map +1 -0
  193. package/dist/setup-device-code-envelope.js +25 -0
  194. package/dist/setup-device-code-envelope.js.map +1 -0
  195. package/dist/setup-login-protocol.d.ts +6 -0
  196. package/dist/setup-login-protocol.d.ts.map +1 -0
  197. package/dist/setup-login-protocol.js +12 -0
  198. package/dist/setup-login-protocol.js.map +1 -0
  199. package/dist/setup-transport.d.ts +12 -0
  200. package/dist/setup-transport.d.ts.map +1 -0
  201. package/dist/setup-transport.js +22 -0
  202. package/dist/setup-transport.js.map +1 -0
  203. package/dist/setup.d.ts +12572 -3749
  204. package/dist/setup.d.ts.map +1 -1
  205. package/dist/setup.js +34 -38
  206. package/dist/setup.js.map +1 -1
  207. package/dist/status-projection.d.ts +7 -5
  208. package/dist/status-projection.d.ts.map +1 -1
  209. package/dist/status-projection.js +11 -6
  210. package/dist/status-projection.js.map +1 -1
  211. package/dist/surface-run-controls.d.ts.map +1 -1
  212. package/dist/surface-run-controls.js +10 -1
  213. package/dist/surface-run-controls.js.map +1 -1
  214. package/dist/task.d.ts +331 -289
  215. package/dist/task.d.ts.map +1 -1
  216. package/dist/task.js +12 -1
  217. package/dist/task.js.map +1 -1
  218. package/dist/telemetry.d.ts +1189 -627
  219. package/dist/telemetry.d.ts.map +1 -1
  220. package/dist/telemetry.js +13 -13
  221. package/dist/telemetry.js.map +1 -1
  222. package/dist/thread.d.ts +128 -84
  223. package/dist/thread.d.ts.map +1 -1
  224. package/dist/thread.js +16 -2
  225. package/dist/thread.js.map +1 -1
  226. package/dist/tool-ref.d.ts +7 -7
  227. package/dist/tool-ref.d.ts.map +1 -1
  228. package/dist/tool-ref.js +1 -1
  229. package/dist/tool-ref.js.map +1 -1
  230. package/dist/work-report.d.ts +28 -28
  231. package/dist/work-report.d.ts.map +1 -1
  232. package/dist/work-report.js +3 -3
  233. package/dist/work-report.js.map +1 -1
  234. package/dist/workproduct.d.ts +6 -9
  235. package/dist/workproduct.d.ts.map +1 -1
  236. package/dist/workproduct.js +1 -2
  237. package/dist/workproduct.js.map +1 -1
  238. package/dist/workspace.d.ts +14 -14
  239. package/dist/workspace.d.ts.map +1 -1
  240. package/dist/workspace.js +8 -8
  241. package/dist/workspace.js.map +1 -1
  242. package/generated/AgentCapabilityCatalog.schema.json +80 -1
  243. package/generated/ControlCredentialProfilesQueryResponse.schema.json +1333 -0
  244. package/generated/ControlCredentialProfilesResponse.schema.json +10 -2
  245. package/generated/ControlCredentialProfilesSnapshotResponse.schema.json +1312 -0
  246. package/generated/ControlDirectoryEntry.schema.json +36 -0
  247. package/generated/ControlDirectoryListing.schema.json +77 -0
  248. package/generated/ControlHarnessListResponse.schema.json +89 -3
  249. package/generated/ControlRunAgainDraft.schema.json +7 -3
  250. package/generated/ControlRunApplicabilityResponse.schema.json +217 -0
  251. package/generated/ControlRunControlResponse.schema.json +8 -0
  252. package/generated/ControlRunDetail.schema.json +543 -80
  253. package/generated/ControlRunListResponse.schema.json +104 -11
  254. package/generated/ControlRunStartRequest.schema.json +7 -3
  255. package/generated/ControlRunSummary.schema.json +104 -11
  256. package/generated/ControlSettingsSnapshot.schema.json +12 -3
  257. package/generated/ControlSettingsUpdateRequest.schema.json +12 -3
  258. package/generated/ControlSetupJob.schema.json +9 -0
  259. package/generated/ControlSetupJobCreateRequest.schema.json +9 -0
  260. package/generated/ControlSetupJobEvent.schema.json +858 -758
  261. package/generated/ControlSetupJobListResponse.schema.json +9 -0
  262. package/generated/ControlSetupJobSnapshot.schema.json +811 -736
  263. package/generated/ControlThreadDetail.schema.json +83 -1
  264. package/generated/ControlThreadTurnRequest.schema.json +2 -25
  265. package/generated/DecisionRecord.schema.json +12 -2
  266. package/generated/GitCapability.schema.json +46 -0
  267. package/generated/GlobalConfig.schema.json +13 -4
  268. package/generated/HarnessEvent.schema.json +2 -1
  269. package/generated/HarnessManifest.schema.json +3 -3
  270. package/generated/HarnessStatusDto.schema.json +49 -3
  271. package/generated/McpRunHandleResult.schema.json +237 -2
  272. package/generated/McpRunToolResult.schema.json +234 -1
  273. package/generated/OutputReadyPayload.schema.json +44 -0
  274. package/generated/RunEvent.schema.json +1 -0
  275. package/generated/RunFacts.schema.json +569 -0
  276. package/generated/RunFailure.schema.json +4 -3
  277. package/generated/RunTelemetry.schema.json +553 -4
  278. package/generated/TaskContract.schema.json +43 -3
  279. package/generated/ThreadTurn.schema.json +17 -0
  280. package/generated/WorkProduct.schema.json +0 -4
  281. package/generated/WorkspaceEnvelope.schema.json +6 -6
  282. package/package.json +3 -3
@@ -17,6 +17,87 @@
17
17
  "type": "string",
18
18
  "description": "Run id."
19
19
  },
20
+ "parentRunId": {
21
+ "anyOf": [
22
+ {
23
+ "type": "string",
24
+ "minLength": 1,
25
+ "description": "Non-empty identifier string."
26
+ },
27
+ {
28
+ "type": "null"
29
+ }
30
+ ],
31
+ "description": "Parent/follow-up run id, when any.",
32
+ "default": null
33
+ },
34
+ "delegatedFromRunId": {
35
+ "anyOf": [
36
+ {
37
+ "$ref": "#/definitions/ControlRunListResponse/properties/runs/items/properties/parentRunId/anyOf/0"
38
+ },
39
+ {
40
+ "type": "null"
41
+ }
42
+ ],
43
+ "description": "Claudexor Delegate parent run id; null for ordinary runs and native vendor subagents.",
44
+ "default": null
45
+ },
46
+ "delegation": {
47
+ "anyOf": [
48
+ {
49
+ "type": "object",
50
+ "properties": {
51
+ "requested": {
52
+ "type": "boolean",
53
+ "default": false
54
+ },
55
+ "effective": {
56
+ "type": "boolean",
57
+ "default": false
58
+ },
59
+ "used": {
60
+ "type": "boolean",
61
+ "default": false
62
+ },
63
+ "reason": {
64
+ "type": "string",
65
+ "enum": [
66
+ "pending",
67
+ "not_requested",
68
+ "injected_unused",
69
+ "used",
70
+ "runtime_unavailable",
71
+ "manifest_unsupported",
72
+ "access_profile_incompatible",
73
+ "partially_degraded",
74
+ "startup_failed"
75
+ ],
76
+ "default": "not_requested"
77
+ },
78
+ "remediation": {
79
+ "anyOf": [
80
+ {
81
+ "type": "string",
82
+ "minLength": 1
83
+ },
84
+ {
85
+ "type": "null"
86
+ }
87
+ ],
88
+ "default": null
89
+ }
90
+ },
91
+ "additionalProperties": false,
92
+ "description": "Engine-owned Delegate requested/effective/used receipt; surfaces project it without parsing model output."
93
+ },
94
+ {
95
+ "type": "null"
96
+ }
97
+ ],
98
+ "description": "Durable Delegate requested/effective/used receipt projected from engine telemetry; null when legacy telemetry has no receipt.",
99
+ "default": null
100
+ },
20
101
  "taskId": {
21
102
  "type": "string",
22
103
  "description": "Task id, when allocated."
@@ -79,15 +160,16 @@
79
160
  "estimate_headroom",
80
161
  "unknown_paid_in_flight",
81
162
  "budget_overshoot",
82
- "cost_unverifiable"
163
+ "cost_unverifiable",
164
+ "delegation_child_drain_timeout"
83
165
  ],
84
- "description": "Machine-readable failure sub-code within a RunFailure category (today the typed budget-denial reasons produced by the budget ledger)."
166
+ "description": "Machine-readable failure sub-code within a RunFailure category (budget-denial reasons and Delegate child-drain timeout)."
85
167
  },
86
168
  {
87
169
  "type": "null"
88
170
  }
89
171
  ],
90
- "description": "Machine-readable failure sub-code within the category (today the typed budget-denial reason from the ledger); null when the category alone is sufficient. Surfaces choose remediation from this, never by parsing safeMessage.",
172
+ "description": "Machine-readable failure sub-code within the category; null when the category alone is sufficient. Surfaces choose remediation from this, never by parsing safeMessage.",
91
173
  "default": null
92
174
  },
93
175
  "harnessId": {
@@ -367,7 +449,7 @@
367
449
  },
368
450
  "spendEstimated": {
369
451
  "type": "boolean",
370
- "description": "True when spend is token-derived rather than natively reported."
452
+ "description": "True when settled cash is estimated rather than exact."
371
453
  },
372
454
  "inputTokens": {
373
455
  "anyOf": [
@@ -498,6 +580,14 @@
498
580
  ],
499
581
  "default": null
500
582
  },
583
+ "profileId": {
584
+ "type": [
585
+ "string",
586
+ "null"
587
+ ],
588
+ "default": null,
589
+ "description": "Credential profile the deciding attempt ran under; null = engine-default credentials."
590
+ },
501
591
  "modelMismatch": {
502
592
  "anyOf": [
503
593
  {
@@ -664,7 +754,8 @@
664
754
  "type": "string",
665
755
  "enum": [
666
756
  "browser",
667
- "path_deny"
757
+ "path_deny",
758
+ "delegation"
668
759
  ]
669
760
  },
670
761
  "harness_id": {
@@ -688,6 +779,7 @@
688
779
  "manifest_unsupported",
689
780
  "web_policy_off",
690
781
  "access_profile_incompatible",
782
+ "runtime_unavailable",
691
783
  "postdiff_only"
692
784
  ]
693
785
  },
@@ -901,6 +993,7 @@
901
993
  "wall_clock_exceeded",
902
994
  "user_cancelled",
903
995
  "crash_interrupted",
996
+ "workspace_unavailable",
904
997
  "input_required",
905
998
  "work_incomplete",
906
999
  "context_capacity_exhausted",
@@ -935,7 +1028,7 @@
935
1028
  "validated",
936
1029
  "absent"
937
1030
  ],
938
- "description": "Provenance of a WorkReport: constrained (native schema transport), validated (whole-answer JSON), or absent (no transport could carry one — a disclosed absence, not a failure)."
1031
+ "description": "Provenance of a WorkReport: constrained (native schema transport), validated (instructed terminal metadata), or absent (no transport could carry one — a disclosed absence, not a failure)."
939
1032
  },
940
1033
  "required_inputs": {
941
1034
  "type": "array",
@@ -1008,7 +1101,7 @@
1008
1101
  "waitingOnUser": {
1009
1102
  "type": "boolean",
1010
1103
  "default": false,
1011
- "description": "True while at least one interactive question is awaiting the user's answer."
1104
+ "description": "True while at least one interactive question awaits answer, timeout, run-terminal, or interruption release."
1012
1105
  },
1013
1106
  "route": {
1014
1107
  "anyOf": [
@@ -1075,9 +1168,7 @@
1075
1168
  "order": {
1076
1169
  "type": "array",
1077
1170
  "items": {
1078
- "type": "string",
1079
- "minLength": 1,
1080
- "description": "Non-empty identifier string."
1171
+ "$ref": "#/definitions/ControlRunListResponse/properties/runs/items/properties/parentRunId/anyOf/0"
1081
1172
  },
1082
1173
  "default": [],
1083
1174
  "description": "Final ranked order, harness ids."
@@ -1085,7 +1176,7 @@
1085
1176
  "dropped": {
1086
1177
  "type": "array",
1087
1178
  "items": {
1088
- "$ref": "#/definitions/ControlRunListResponse/properties/runs/items/properties/routingRationale/anyOf/0/properties/order/items"
1179
+ "$ref": "#/definitions/ControlRunListResponse/properties/runs/items/properties/parentRunId/anyOf/0"
1089
1180
  },
1090
1181
  "default": [],
1091
1182
  "description": "Ids removed by paid_fallback or cooldown before ranking."
@@ -1098,6 +1189,8 @@
1098
1189
  "quality_tier",
1099
1190
  "expiring_quota_slack",
1100
1191
  "all_incremental_cash_unknown",
1192
+ "delegate_effective_first",
1193
+ "explicit_primary",
1101
1194
  "declared_order"
1102
1195
  ],
1103
1196
  "description": "Typed decisive reason the pool ranked the way it did (QA-034)."
@@ -386,7 +386,11 @@
386
386
  },
387
387
  "parentRunId": {
388
388
  "$ref": "#/definitions/ControlRunStartRequest/properties/threadId",
389
- "description": "Run this turn follows up on."
389
+ "description": "Server-owned parent/follow-up lineage; rejected on direct POST /runs."
390
+ },
391
+ "delegatedFromRunId": {
392
+ "$ref": "#/definitions/ControlRunStartRequest/properties/threadId",
393
+ "description": "Internal belt-child provenance only; equals parentRunId and is rejected on direct POST /runs."
390
394
  },
391
395
  "retryOf": {
392
396
  "$ref": "#/definitions/ControlRunStartRequest/properties/threadId",
@@ -446,7 +450,7 @@
446
450
  "description": "One reviewer of an explicit reviewer panel — a harness plus optional model and effort. The CLI spells one entry `harness=model:effort` (e.g. `claude=claude-opus-4-8:max`)."
447
451
  },
448
452
  "minItems": 1,
449
- "description": "Explicit reviewer panel — who reviews the change, one entry per reviewer as `harness=model:effort` (CLI `--reviewers \"claude=claude-opus-4-8:max,cursor=gemini-3.1-pro\"`). Duplicate harness entries are kept so one provider can review through several models; overrides the legacy reviewerModels/reviewerEfforts maps."
453
+ "description": "Explicit Agent reviewer panel — who reviews the change, one entry per reviewer as `harness=model:effort` (CLI `--reviewer-panel \"claude=claude-opus-4-8:max,cursor=gemini-3.1-pro\"`). Duplicate harness entries are kept so one provider can review through several models; overrides the legacy reviewerModels/reviewerEfforts maps."
450
454
  },
451
455
  "authPreference": {
452
456
  "type": "string",
@@ -471,7 +475,7 @@
471
475
  },
472
476
  "delegate": {
473
477
  "type": "boolean",
474
- "description": "Agent-only: inject the Claudexor delegation belt so the harness can spawn bounded isolated sub-runs; refused on non-agent modes or harnesses without mcp_injection."
478
+ "description": "Agent-only: inject the Claudexor delegation belt so the harness can spawn bounded isolated sub-runs; non-agent modes refuse, while known belt or harness unavailability degrades before start to ordinary Agent with a durable warning."
475
479
  },
476
480
  "maxSeconds": {
477
481
  "type": "integer",
@@ -12,6 +12,87 @@
12
12
  "type": "string",
13
13
  "description": "Run id."
14
14
  },
15
+ "parentRunId": {
16
+ "anyOf": [
17
+ {
18
+ "type": "string",
19
+ "minLength": 1,
20
+ "description": "Non-empty identifier string."
21
+ },
22
+ {
23
+ "type": "null"
24
+ }
25
+ ],
26
+ "description": "Parent/follow-up run id, when any.",
27
+ "default": null
28
+ },
29
+ "delegatedFromRunId": {
30
+ "anyOf": [
31
+ {
32
+ "$ref": "#/definitions/ControlRunSummary/properties/parentRunId/anyOf/0"
33
+ },
34
+ {
35
+ "type": "null"
36
+ }
37
+ ],
38
+ "description": "Claudexor Delegate parent run id; null for ordinary runs and native vendor subagents.",
39
+ "default": null
40
+ },
41
+ "delegation": {
42
+ "anyOf": [
43
+ {
44
+ "type": "object",
45
+ "properties": {
46
+ "requested": {
47
+ "type": "boolean",
48
+ "default": false
49
+ },
50
+ "effective": {
51
+ "type": "boolean",
52
+ "default": false
53
+ },
54
+ "used": {
55
+ "type": "boolean",
56
+ "default": false
57
+ },
58
+ "reason": {
59
+ "type": "string",
60
+ "enum": [
61
+ "pending",
62
+ "not_requested",
63
+ "injected_unused",
64
+ "used",
65
+ "runtime_unavailable",
66
+ "manifest_unsupported",
67
+ "access_profile_incompatible",
68
+ "partially_degraded",
69
+ "startup_failed"
70
+ ],
71
+ "default": "not_requested"
72
+ },
73
+ "remediation": {
74
+ "anyOf": [
75
+ {
76
+ "type": "string",
77
+ "minLength": 1
78
+ },
79
+ {
80
+ "type": "null"
81
+ }
82
+ ],
83
+ "default": null
84
+ }
85
+ },
86
+ "additionalProperties": false,
87
+ "description": "Engine-owned Delegate requested/effective/used receipt; surfaces project it without parsing model output."
88
+ },
89
+ {
90
+ "type": "null"
91
+ }
92
+ ],
93
+ "description": "Durable Delegate requested/effective/used receipt projected from engine telemetry; null when legacy telemetry has no receipt.",
94
+ "default": null
95
+ },
15
96
  "taskId": {
16
97
  "type": "string",
17
98
  "description": "Task id, when allocated."
@@ -74,15 +155,16 @@
74
155
  "estimate_headroom",
75
156
  "unknown_paid_in_flight",
76
157
  "budget_overshoot",
77
- "cost_unverifiable"
158
+ "cost_unverifiable",
159
+ "delegation_child_drain_timeout"
78
160
  ],
79
- "description": "Machine-readable failure sub-code within a RunFailure category (today the typed budget-denial reasons produced by the budget ledger)."
161
+ "description": "Machine-readable failure sub-code within a RunFailure category (budget-denial reasons and Delegate child-drain timeout)."
80
162
  },
81
163
  {
82
164
  "type": "null"
83
165
  }
84
166
  ],
85
- "description": "Machine-readable failure sub-code within the category (today the typed budget-denial reason from the ledger); null when the category alone is sufficient. Surfaces choose remediation from this, never by parsing safeMessage.",
167
+ "description": "Machine-readable failure sub-code within the category; null when the category alone is sufficient. Surfaces choose remediation from this, never by parsing safeMessage.",
86
168
  "default": null
87
169
  },
88
170
  "harnessId": {
@@ -362,7 +444,7 @@
362
444
  },
363
445
  "spendEstimated": {
364
446
  "type": "boolean",
365
- "description": "True when spend is token-derived rather than natively reported."
447
+ "description": "True when settled cash is estimated rather than exact."
366
448
  },
367
449
  "inputTokens": {
368
450
  "anyOf": [
@@ -493,6 +575,14 @@
493
575
  ],
494
576
  "default": null
495
577
  },
578
+ "profileId": {
579
+ "type": [
580
+ "string",
581
+ "null"
582
+ ],
583
+ "default": null,
584
+ "description": "Credential profile the deciding attempt ran under; null = engine-default credentials."
585
+ },
496
586
  "modelMismatch": {
497
587
  "anyOf": [
498
588
  {
@@ -659,7 +749,8 @@
659
749
  "type": "string",
660
750
  "enum": [
661
751
  "browser",
662
- "path_deny"
752
+ "path_deny",
753
+ "delegation"
663
754
  ]
664
755
  },
665
756
  "harness_id": {
@@ -683,6 +774,7 @@
683
774
  "manifest_unsupported",
684
775
  "web_policy_off",
685
776
  "access_profile_incompatible",
777
+ "runtime_unavailable",
686
778
  "postdiff_only"
687
779
  ]
688
780
  },
@@ -896,6 +988,7 @@
896
988
  "wall_clock_exceeded",
897
989
  "user_cancelled",
898
990
  "crash_interrupted",
991
+ "workspace_unavailable",
899
992
  "input_required",
900
993
  "work_incomplete",
901
994
  "context_capacity_exhausted",
@@ -930,7 +1023,7 @@
930
1023
  "validated",
931
1024
  "absent"
932
1025
  ],
933
- "description": "Provenance of a WorkReport: constrained (native schema transport), validated (whole-answer JSON), or absent (no transport could carry one — a disclosed absence, not a failure)."
1026
+ "description": "Provenance of a WorkReport: constrained (native schema transport), validated (instructed terminal metadata), or absent (no transport could carry one — a disclosed absence, not a failure)."
934
1027
  },
935
1028
  "required_inputs": {
936
1029
  "type": "array",
@@ -1003,7 +1096,7 @@
1003
1096
  "waitingOnUser": {
1004
1097
  "type": "boolean",
1005
1098
  "default": false,
1006
- "description": "True while at least one interactive question is awaiting the user's answer."
1099
+ "description": "True while at least one interactive question awaits answer, timeout, run-terminal, or interruption release."
1007
1100
  },
1008
1101
  "route": {
1009
1102
  "anyOf": [
@@ -1070,9 +1163,7 @@
1070
1163
  "order": {
1071
1164
  "type": "array",
1072
1165
  "items": {
1073
- "type": "string",
1074
- "minLength": 1,
1075
- "description": "Non-empty identifier string."
1166
+ "$ref": "#/definitions/ControlRunSummary/properties/parentRunId/anyOf/0"
1076
1167
  },
1077
1168
  "default": [],
1078
1169
  "description": "Final ranked order, harness ids."
@@ -1080,7 +1171,7 @@
1080
1171
  "dropped": {
1081
1172
  "type": "array",
1082
1173
  "items": {
1083
- "$ref": "#/definitions/ControlRunSummary/properties/routingRationale/anyOf/0/properties/order/items"
1174
+ "$ref": "#/definitions/ControlRunSummary/properties/parentRunId/anyOf/0"
1084
1175
  },
1085
1176
  "default": [],
1086
1177
  "description": "Ids removed by paid_fallback or cooldown before ranking."
@@ -1093,6 +1184,8 @@
1093
1184
  "quality_tier",
1094
1185
  "expiring_quota_slack",
1095
1186
  "all_incremental_cash_unknown",
1187
+ "delegate_effective_first",
1188
+ "explicit_primary",
1096
1189
  "declared_order"
1097
1190
  ],
1098
1191
  "description": "Typed decisive reason the pool ranked the way it did (QA-034)."
@@ -13,10 +13,19 @@
13
13
  "description": "Config file paths that contributed to the snapshot."
14
14
  },
15
15
  "interactionTimeoutMs": {
16
- "type": "integer",
17
- "exclusiveMinimum": 0,
16
+ "anyOf": [
17
+ {
18
+ "type": "integer",
19
+ "minimum": -9007199254740991,
20
+ "maximum": 8000000000000000,
21
+ "exclusiveMinimum": 0
22
+ },
23
+ {
24
+ "type": "null"
25
+ }
26
+ ],
18
27
  "default": 900000,
19
- "description": "How long a run waits for an interactive answer before a benign decline, in milliseconds."
28
+ "description": "Automatic-expiry policy for an interactive answer: positive milliseconds deliver a benign decline at the deadline; null disables automatic expiry."
20
29
  },
21
30
  "routing": {
22
31
  "type": "object",
@@ -78,9 +78,18 @@
78
78
  "description": "Per-intent quality tiers ordered highest to lowest; no provider or benchmark priors are inferred."
79
79
  },
80
80
  "interactionTimeoutMs": {
81
- "type": "integer",
82
- "exclusiveMinimum": 0,
83
- "description": "New interactive-answer timeout, in milliseconds."
81
+ "anyOf": [
82
+ {
83
+ "type": "integer",
84
+ "minimum": -9007199254740991,
85
+ "maximum": 8000000000000000,
86
+ "exclusiveMinimum": 0
87
+ },
88
+ {
89
+ "type": "null"
90
+ }
91
+ ],
92
+ "description": "New interactive-answer timeout in milliseconds; null disables automatic expiry."
84
93
  },
85
94
  "primaryHarness": {
86
95
  "anyOf": [
@@ -23,6 +23,15 @@
23
23
  "const": "login",
24
24
  "description": "The daemon-managed native-login action."
25
25
  },
26
+ "transport": {
27
+ "type": "string",
28
+ "enum": [
29
+ "daemon",
30
+ "client_pty"
31
+ ],
32
+ "description": "Who owns the interactive terminal: daemon opens a local Terminal, or the client attaches its PTY.",
33
+ "default": "daemon"
34
+ },
26
35
  "profileId": {
27
36
  "type": [
28
37
  "string",
@@ -35,6 +35,15 @@
35
35
  "browser_redirect"
36
36
  ],
37
37
  "description": "Codex-only: device_auth (default; app-server device-code, isolated browser window), browser_callback (app-server browser-callback opt-in), or browser_redirect (legacy Terminal localhost callback / fallback)."
38
+ },
39
+ "transport": {
40
+ "type": "string",
41
+ "enum": [
42
+ "daemon",
43
+ "client_pty"
44
+ ],
45
+ "description": "Additive terminal handoff. client_pty prepares a sealed login job for `claudexor setup attach`.",
46
+ "default": "daemon"
38
47
  }
39
48
  },
40
49
  "required": [