@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
@@ -260,7 +260,8 @@
260
260
  "type": "string",
261
261
  "enum": [
262
262
  "browser",
263
- "path_deny"
263
+ "path_deny",
264
+ "delegation"
264
265
  ]
265
266
  },
266
267
  "harness_id": {
@@ -284,6 +285,7 @@
284
285
  "manifest_unsupported",
285
286
  "web_policy_off",
286
287
  "access_profile_incompatible",
288
+ "runtime_unavailable",
287
289
  "postdiff_only"
288
290
  ]
289
291
  },
@@ -383,7 +385,7 @@
383
385
  "recovered": {
384
386
  "type": "boolean",
385
387
  "default": false,
386
- "description": "True when a later successful result of the same tool exists in the same attempt."
388
+ "description": "True when a later successful result matches this failed invocation."
387
389
  },
388
390
  "tool_use_id": {
389
391
  "type": [
@@ -580,7 +582,7 @@
580
582
  "validated",
581
583
  "absent"
582
584
  ],
583
- "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)."
585
+ "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)."
584
586
  },
585
587
  "required_inputs": {
586
588
  "type": "array",
@@ -780,6 +782,61 @@
780
782
  "default": [],
781
783
  "description": "All selected-lane capability receipts for this run."
782
784
  },
785
+ "delegation": {
786
+ "anyOf": [
787
+ {
788
+ "type": "object",
789
+ "properties": {
790
+ "requested": {
791
+ "type": "boolean",
792
+ "default": false
793
+ },
794
+ "effective": {
795
+ "type": "boolean",
796
+ "default": false
797
+ },
798
+ "used": {
799
+ "type": "boolean",
800
+ "default": false
801
+ },
802
+ "reason": {
803
+ "type": "string",
804
+ "enum": [
805
+ "pending",
806
+ "not_requested",
807
+ "injected_unused",
808
+ "used",
809
+ "runtime_unavailable",
810
+ "manifest_unsupported",
811
+ "access_profile_incompatible",
812
+ "partially_degraded",
813
+ "startup_failed"
814
+ ],
815
+ "default": "not_requested"
816
+ },
817
+ "remediation": {
818
+ "anyOf": [
819
+ {
820
+ "type": "string",
821
+ "minLength": 1
822
+ },
823
+ {
824
+ "type": "null"
825
+ }
826
+ ],
827
+ "default": null
828
+ }
829
+ },
830
+ "additionalProperties": false,
831
+ "description": "Engine-owned Delegate requested/effective/used receipt; surfaces project it without parsing model output."
832
+ },
833
+ {
834
+ "type": "null"
835
+ }
836
+ ],
837
+ "description": "Run-level Delegate receipt aggregated from engine injection and typed tool evidence; null on legacy artifacts that did not record it.",
838
+ "default": null
839
+ },
783
840
  "tool_warnings_total": {
784
841
  "type": "integer",
785
842
  "minimum": 0,
@@ -948,6 +1005,8 @@
948
1005
  "quality_tier",
949
1006
  "expiring_quota_slack",
950
1007
  "all_incremental_cash_unknown",
1008
+ "delegate_effective_first",
1009
+ "explicit_primary",
951
1010
  "declared_order"
952
1011
  ],
953
1012
  "description": "Typed decisive reason the pool ranked the way it did (QA-034)."
@@ -1057,7 +1116,497 @@
1057
1116
  "type": "null"
1058
1117
  }
1059
1118
  ],
1060
- "description": "Deep-scan reducer outcome (#27); null on non-deep-scan runs and legacy artifacts.",
1119
+ "description": "Deep-scan reducer outcome (#27); null on non-deep-scan/legacy runs.",
1120
+ "default": null
1121
+ },
1122
+ "run_facts": {
1123
+ "anyOf": [
1124
+ {
1125
+ "type": "object",
1126
+ "properties": {
1127
+ "schema_version": {
1128
+ "$ref": "#/definitions/RunTelemetry/properties/schema_version"
1129
+ },
1130
+ "run_id": {
1131
+ "$ref": "#/definitions/RunTelemetry/properties/final_attempt_id/anyOf/0"
1132
+ },
1133
+ "task_id": {
1134
+ "$ref": "#/definitions/RunTelemetry/properties/final_attempt_id/anyOf/0"
1135
+ },
1136
+ "mode": {
1137
+ "$ref": "#/definitions/RunTelemetry/properties/mode"
1138
+ },
1139
+ "outcome": {
1140
+ "type": "object",
1141
+ "properties": {
1142
+ "lifecycle": {
1143
+ "type": "string",
1144
+ "enum": [
1145
+ "succeeded",
1146
+ "failed",
1147
+ "cancelled",
1148
+ "interrupted"
1149
+ ],
1150
+ "description": "Terminal lifecycle of the run."
1151
+ },
1152
+ "noChanges": {
1153
+ "type": "boolean",
1154
+ "default": false,
1155
+ "description": "True when the run finished without changing any files (the ex no_op fact)."
1156
+ },
1157
+ "checks": {
1158
+ "type": "string",
1159
+ "enum": [
1160
+ "passed",
1161
+ "failed",
1162
+ "not_configured"
1163
+ ],
1164
+ "description": "Deterministic checks axis: configured project checks passed, failed, or none are configured (a named state, never a stand-in for review results).",
1165
+ "default": "not_configured"
1166
+ },
1167
+ "review": {
1168
+ "type": "string",
1169
+ "enum": [
1170
+ "approved",
1171
+ "blocked",
1172
+ "not_run"
1173
+ ],
1174
+ "description": "Review axis: approved (clean cross-family verified review), blocked (open accepted findings), or not_run.",
1175
+ "default": "not_run"
1176
+ },
1177
+ "reason": {
1178
+ "anyOf": [
1179
+ {
1180
+ "type": "string",
1181
+ "enum": [
1182
+ "harness_failed",
1183
+ "no_changes",
1184
+ "review_blocked",
1185
+ "checks_failed",
1186
+ "budget_exhausted",
1187
+ "budget_overshoot",
1188
+ "cost_unverifiable",
1189
+ "not_converged",
1190
+ "stuck_no_progress",
1191
+ "wall_clock_exceeded",
1192
+ "user_cancelled",
1193
+ "crash_interrupted",
1194
+ "workspace_unavailable",
1195
+ "input_required",
1196
+ "work_incomplete",
1197
+ "context_capacity_exhausted",
1198
+ "work_report_contract"
1199
+ ],
1200
+ "description": "Typed reason qualifying a non-clean terminal; null on a clean success."
1201
+ },
1202
+ {
1203
+ "type": "null"
1204
+ }
1205
+ ],
1206
+ "description": "Typed reason qualifying a non-clean terminal; null on a clean success.",
1207
+ "default": null
1208
+ },
1209
+ "work_state": {
1210
+ "$ref": "#/definitions/RunTelemetry/properties/attempts/items/properties/outcome/properties/work_state",
1211
+ "description": "D-16 model-attested work outcome, orthogonal to lifecycle; a needs_input/incomplete state vetoes applyability and exit 0. Absent on runs with no work_report transport."
1212
+ }
1213
+ },
1214
+ "required": [
1215
+ "lifecycle"
1216
+ ],
1217
+ "additionalProperties": false,
1218
+ "description": "Independent terminal outcome axes of a run (D8/D18)."
1219
+ },
1220
+ "deliverable": {
1221
+ "type": "object",
1222
+ "properties": {
1223
+ "present": {
1224
+ "type": "boolean",
1225
+ "description": "Whether the canonical primary deliverable exists."
1226
+ },
1227
+ "kind": {
1228
+ "anyOf": [
1229
+ {
1230
+ "type": "string",
1231
+ "enum": [
1232
+ "answer",
1233
+ "report",
1234
+ "plan",
1235
+ "patch",
1236
+ "structured_output"
1237
+ ]
1238
+ },
1239
+ {
1240
+ "type": "null"
1241
+ }
1242
+ ],
1243
+ "description": "Kind of canonical primary deliverable; null when none exists."
1244
+ },
1245
+ "path": {
1246
+ "type": [
1247
+ "string",
1248
+ "null"
1249
+ ],
1250
+ "description": "Run-relative path of the canonical primary deliverable; null when absent."
1251
+ },
1252
+ "producer_attempt_id": {
1253
+ "anyOf": [
1254
+ {
1255
+ "$ref": "#/definitions/RunTelemetry/properties/final_attempt_id/anyOf/0"
1256
+ },
1257
+ {
1258
+ "type": "null"
1259
+ }
1260
+ ],
1261
+ "description": "Attempt that produced the deliverable, when known.",
1262
+ "default": null
1263
+ }
1264
+ },
1265
+ "required": [
1266
+ "present",
1267
+ "kind",
1268
+ "path"
1269
+ ],
1270
+ "additionalProperties": false,
1271
+ "description": "Canonical primary-output presence and identity for a terminal run."
1272
+ },
1273
+ "presentation": {
1274
+ "type": "object",
1275
+ "properties": {
1276
+ "state": {
1277
+ "type": "string",
1278
+ "enum": [
1279
+ "ready",
1280
+ "diagnostic"
1281
+ ],
1282
+ "description": "Terminal output readiness decided by the last valid output.ready receipt."
1283
+ },
1284
+ "primary": {
1285
+ "anyOf": [
1286
+ {
1287
+ "type": "object",
1288
+ "properties": {
1289
+ "kind": {
1290
+ "type": "string",
1291
+ "enum": [
1292
+ "answer",
1293
+ "report",
1294
+ "plan",
1295
+ "patch",
1296
+ "structured_output",
1297
+ "diagnostic"
1298
+ ],
1299
+ "description": "Presentation kind of the terminal primary artifact."
1300
+ },
1301
+ "path": {
1302
+ "type": "string",
1303
+ "minLength": 1,
1304
+ "description": "Normalized run-relative path of the terminal primary artifact."
1305
+ }
1306
+ },
1307
+ "required": [
1308
+ "kind",
1309
+ "path"
1310
+ ],
1311
+ "additionalProperties": false,
1312
+ "description": "Primary user-facing artifact selected once during terminal preparation."
1313
+ },
1314
+ {
1315
+ "type": "null"
1316
+ }
1317
+ ],
1318
+ "description": "Selected terminal primary artifact, or null when the receipt announces readiness without a primary deliverable."
1319
+ }
1320
+ },
1321
+ "required": [
1322
+ "state",
1323
+ "primary"
1324
+ ],
1325
+ "additionalProperties": false,
1326
+ "description": "Immutable terminal output state and primary artifact. Absent only on legacy RunFacts receipts."
1327
+ },
1328
+ "participants": {
1329
+ "type": "object",
1330
+ "properties": {
1331
+ "planners": {
1332
+ "type": "integer",
1333
+ "minimum": 0,
1334
+ "description": "Number of participants whose canonical role is planner."
1335
+ },
1336
+ "attempts": {
1337
+ "type": "array",
1338
+ "items": {
1339
+ "type": "object",
1340
+ "properties": {
1341
+ "attempt_id": {
1342
+ "anyOf": [
1343
+ {
1344
+ "$ref": "#/definitions/RunTelemetry/properties/final_attempt_id/anyOf/0"
1345
+ },
1346
+ {
1347
+ "type": "null"
1348
+ }
1349
+ ],
1350
+ "description": "Attempt id when the participant owns an orchestrator attempt; null for reviewer-panel members."
1351
+ },
1352
+ "harness_id": {
1353
+ "type": "string",
1354
+ "minLength": 1,
1355
+ "description": "Harness that served this participant role."
1356
+ },
1357
+ "role": {
1358
+ "type": "string",
1359
+ "enum": [
1360
+ "planner",
1361
+ "merge",
1362
+ "candidate",
1363
+ "scout",
1364
+ "reducer",
1365
+ "reviewer"
1366
+ ],
1367
+ "description": "Canonical role of one participant in the terminal run graph."
1368
+ },
1369
+ "deliverable_present": {
1370
+ "type": "boolean",
1371
+ "default": false,
1372
+ "description": "Whether this participant produced the deliverable its role requested."
1373
+ },
1374
+ "status": {
1375
+ "anyOf": [
1376
+ {
1377
+ "type": "string",
1378
+ "enum": [
1379
+ "success",
1380
+ "success_with_warnings",
1381
+ "blocked",
1382
+ "failed"
1383
+ ],
1384
+ "description": "Terminal outcome recorded for one run participant."
1385
+ },
1386
+ {
1387
+ "type": "null"
1388
+ }
1389
+ ],
1390
+ "description": "Participant outcome when recorded; null for artifact-only reviewer membership.",
1391
+ "default": null
1392
+ }
1393
+ },
1394
+ "required": [
1395
+ "attempt_id",
1396
+ "harness_id",
1397
+ "role"
1398
+ ],
1399
+ "additionalProperties": false,
1400
+ "description": "One role-labelled participant in the terminal run graph."
1401
+ },
1402
+ "default": [],
1403
+ "description": "Role-labelled participant roster."
1404
+ }
1405
+ },
1406
+ "required": [
1407
+ "planners"
1408
+ ],
1409
+ "additionalProperties": false,
1410
+ "description": "Terminal participant graph plus its planner-lane count."
1411
+ },
1412
+ "gates": {
1413
+ "type": "object",
1414
+ "properties": {
1415
+ "configured": {
1416
+ "type": "boolean",
1417
+ "description": "Whether the frozen task configured deterministic gates."
1418
+ },
1419
+ "required": {
1420
+ "type": "integer",
1421
+ "minimum": 0,
1422
+ "description": "Number of configured required gates."
1423
+ },
1424
+ "total": {
1425
+ "type": "integer",
1426
+ "minimum": 0,
1427
+ "description": "Total configured deterministic gates."
1428
+ },
1429
+ "executed": {
1430
+ "type": "boolean",
1431
+ "description": "Whether the terminal attempt executed the gate set."
1432
+ },
1433
+ "state": {
1434
+ "type": "string",
1435
+ "enum": [
1436
+ "not_configured",
1437
+ "passed",
1438
+ "failed",
1439
+ "skipped"
1440
+ ],
1441
+ "description": "Terminal state of the configured deterministic gate set."
1442
+ },
1443
+ "receipt_attempt_id": {
1444
+ "anyOf": [
1445
+ {
1446
+ "$ref": "#/definitions/RunTelemetry/properties/final_attempt_id/anyOf/0"
1447
+ },
1448
+ {
1449
+ "type": "null"
1450
+ }
1451
+ ],
1452
+ "description": "Attempt whose gate receipt decides this projection; null when no gates executed.",
1453
+ "default": null
1454
+ }
1455
+ },
1456
+ "required": [
1457
+ "configured",
1458
+ "required",
1459
+ "total",
1460
+ "executed",
1461
+ "state"
1462
+ ],
1463
+ "additionalProperties": false,
1464
+ "description": "Canonical gate configuration and terminal receipt projection."
1465
+ },
1466
+ "review": {
1467
+ "type": "object",
1468
+ "properties": {
1469
+ "state": {
1470
+ "$ref": "#/definitions/RunTelemetry/properties/run_facts/anyOf/0/properties/outcome/properties/review"
1471
+ },
1472
+ "blocker_ids": {
1473
+ "type": "array",
1474
+ "items": {
1475
+ "$ref": "#/definitions/RunTelemetry/properties/final_attempt_id/anyOf/0"
1476
+ },
1477
+ "default": [],
1478
+ "description": "Stable ids of accepted evidence-backed blocking findings."
1479
+ },
1480
+ "blockers": {
1481
+ "type": "integer",
1482
+ "minimum": 0,
1483
+ "description": "Number of blocking findings."
1484
+ }
1485
+ },
1486
+ "required": [
1487
+ "state",
1488
+ "blockers"
1489
+ ],
1490
+ "additionalProperties": false,
1491
+ "description": "Canonical terminal review verdict and blocking-finding identity."
1492
+ },
1493
+ "apply": {
1494
+ "type": "object",
1495
+ "properties": {
1496
+ "eligibility": {
1497
+ "anyOf": [
1498
+ {
1499
+ "type": "object",
1500
+ "properties": {
1501
+ "eligible": {
1502
+ "type": "boolean",
1503
+ "description": "True when the apply gate would accept this run's patch right now."
1504
+ },
1505
+ "state": {
1506
+ "type": [
1507
+ "string",
1508
+ "null"
1509
+ ],
1510
+ "description": "The gate's apply-eligibility classification (e.g. needs_review | not_verified | no_changes | ok) when known."
1511
+ },
1512
+ "reason": {
1513
+ "type": [
1514
+ "string",
1515
+ "null"
1516
+ ],
1517
+ "description": "The gate's refusal text when not eligible (null when eligible)."
1518
+ },
1519
+ "requiredAction": {
1520
+ "type": [
1521
+ "string",
1522
+ "null"
1523
+ ],
1524
+ "description": "Honest guidance for what actually unblocks apply (typed operator decision, add gates, re-run, or nothing to apply)."
1525
+ }
1526
+ },
1527
+ "required": [
1528
+ "eligible",
1529
+ "state",
1530
+ "reason",
1531
+ "requiredAction"
1532
+ ],
1533
+ "additionalProperties": false,
1534
+ "description": "Derived apply-gate verdict for a run's WorkProduct (single producer in the delivery gate)."
1535
+ },
1536
+ {
1537
+ "type": "null"
1538
+ }
1539
+ ],
1540
+ "description": "Delivery-gate eligibility at terminalization; null when nothing is applyable.",
1541
+ "default": null
1542
+ },
1543
+ "operator_decision_present": {
1544
+ "type": "boolean",
1545
+ "default": false,
1546
+ "description": "Whether a valid operator decision was present when the receipt was finalized."
1547
+ }
1548
+ },
1549
+ "additionalProperties": false,
1550
+ "description": "Terminal apply eligibility and operator-decision state."
1551
+ },
1552
+ "required_actions": {
1553
+ "type": "array",
1554
+ "items": {
1555
+ "type": "object",
1556
+ "properties": {
1557
+ "id": {
1558
+ "type": "string",
1559
+ "enum": [
1560
+ "provide_required_input",
1561
+ "complete_incomplete_work",
1562
+ "resolve_review_block",
1563
+ "fix_failed_checks",
1564
+ "record_operator_decision"
1565
+ ],
1566
+ "description": "Stable machine id for a required operator action on a blocked terminal run."
1567
+ },
1568
+ "detail": {
1569
+ "type": "string",
1570
+ "description": "Human-readable guidance for this action (English-only, INV-141)."
1571
+ }
1572
+ },
1573
+ "required": [
1574
+ "id",
1575
+ "detail"
1576
+ ],
1577
+ "additionalProperties": false,
1578
+ "description": "One typed required operator action derived from a run's terminal outcome facts."
1579
+ },
1580
+ "default": [],
1581
+ "description": "Typed actions required to unblock this terminal outcome."
1582
+ },
1583
+ "generated_at": {
1584
+ "type": "string",
1585
+ "minLength": 1,
1586
+ "description": "When this immutable terminal receipt was finalized."
1587
+ }
1588
+ },
1589
+ "required": [
1590
+ "schema_version",
1591
+ "run_id",
1592
+ "task_id",
1593
+ "mode",
1594
+ "outcome",
1595
+ "deliverable",
1596
+ "participants",
1597
+ "gates",
1598
+ "review",
1599
+ "apply",
1600
+ "generated_at"
1601
+ ],
1602
+ "additionalProperties": false,
1603
+ "description": "Validated immutable terminal facts for one run."
1604
+ },
1605
+ {
1606
+ "type": "null"
1607
+ }
1608
+ ],
1609
+ "description": "Exact validated terminal receipt; null before terminalization or on legacy runs.",
1061
1610
  "default": null
1062
1611
  },
1063
1612
  "generated_at": {
@@ -70,6 +70,48 @@
70
70
  "additionalProperties": false,
71
71
  "description": "Canonical run mode for this task."
72
72
  },
73
+ "delegation_requested": {
74
+ "type": "boolean",
75
+ "default": false,
76
+ "description": "Whether the caller requested the Delegate agent strategy."
77
+ },
78
+ "run_lineage": {
79
+ "type": "object",
80
+ "properties": {
81
+ "parent_run_id": {
82
+ "anyOf": [
83
+ {
84
+ "type": "string",
85
+ "minLength": 1,
86
+ "description": "Non-empty identifier string."
87
+ },
88
+ {
89
+ "type": "null"
90
+ }
91
+ ],
92
+ "description": "Non-empty identifier string.",
93
+ "default": null
94
+ },
95
+ "delegated_from_run_id": {
96
+ "anyOf": [
97
+ {
98
+ "$ref": "#/definitions/TaskContract/properties/run_lineage/properties/parent_run_id/anyOf/0"
99
+ },
100
+ {
101
+ "type": "null"
102
+ }
103
+ ],
104
+ "description": "Non-empty identifier string.",
105
+ "default": null
106
+ }
107
+ },
108
+ "additionalProperties": false,
109
+ "default": {
110
+ "parent_run_id": null,
111
+ "delegated_from_run_id": null
112
+ },
113
+ "description": "Server-owned run lineage; delegated_from_run_id is present only for a Claudexor belt child."
114
+ },
73
115
  "user_intent": {
74
116
  "type": "object",
75
117
  "properties": {
@@ -118,9 +160,7 @@
118
160
  "credential_profile_id": {
119
161
  "anyOf": [
120
162
  {
121
- "type": "string",
122
- "minLength": 1,
123
- "description": "Non-empty identifier string."
163
+ "$ref": "#/definitions/TaskContract/properties/run_lineage/properties/parent_run_id/anyOf/0"
124
164
  },
125
165
  {
126
166
  "type": "null"