@claudexor/schema 2.1.3 → 3.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 (174) hide show
  1. package/dist/agent-capabilities.d.ts +32 -24
  2. package/dist/agent-capabilities.d.ts.map +1 -1
  3. package/dist/agent-capabilities.js +20 -11
  4. package/dist/agent-capabilities.js.map +1 -1
  5. package/dist/apply-eligibility.d.ts +166 -0
  6. package/dist/apply-eligibility.d.ts.map +1 -1
  7. package/dist/apply-eligibility.js +63 -2
  8. package/dist/apply-eligibility.js.map +1 -1
  9. package/dist/attachment.d.ts +5 -5
  10. package/dist/budget.d.ts +4 -4
  11. package/dist/config.d.ts +59 -41
  12. package/dist/config.d.ts.map +1 -1
  13. package/dist/config.js +16 -6
  14. package/dist/config.js.map +1 -1
  15. package/dist/context.d.ts +6 -6
  16. package/dist/control-operation-responses.d.ts +190 -97
  17. package/dist/control-operation-responses.d.ts.map +1 -1
  18. package/dist/control-operation-responses.js +14 -1
  19. package/dist/control-operation-responses.js.map +1 -1
  20. package/dist/control-run-detail.d.ts +347 -215
  21. package/dist/control-run-detail.d.ts.map +1 -1
  22. package/dist/control-run-detail.js +34 -7
  23. package/dist/control-run-detail.js.map +1 -1
  24. package/dist/control-thread-apply.d.ts +5 -5
  25. package/dist/control-trust.d.ts +6 -6
  26. package/dist/control.d.ts +769 -306
  27. package/dist/control.d.ts.map +1 -1
  28. package/dist/control.js +164 -61
  29. package/dist/control.js.map +1 -1
  30. package/dist/credential-profile.d.ts +400 -1
  31. package/dist/credential-profile.d.ts.map +1 -1
  32. package/dist/credential-profile.js +109 -4
  33. package/dist/credential-profile.js.map +1 -1
  34. package/dist/decision.d.ts +78 -14
  35. package/dist/decision.d.ts.map +1 -1
  36. package/dist/decision.js +53 -20
  37. package/dist/decision.js.map +1 -1
  38. package/dist/delivery.d.ts +3 -3
  39. package/dist/delivery.js +1 -1
  40. package/dist/delivery.js.map +1 -1
  41. package/dist/events.d.ts +32 -6
  42. package/dist/events.d.ts.map +1 -1
  43. package/dist/events.js +45 -11
  44. package/dist/events.js.map +1 -1
  45. package/dist/gate.d.ts +4 -4
  46. package/dist/gate.d.ts.map +1 -1
  47. package/dist/gate.js +2 -2
  48. package/dist/gate.js.map +1 -1
  49. package/dist/harness.d.ts +137 -47
  50. package/dist/harness.d.ts.map +1 -1
  51. package/dist/harness.js +65 -16
  52. package/dist/harness.js.map +1 -1
  53. package/dist/index.d.ts +4 -3
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +4 -3
  56. package/dist/index.js.map +1 -1
  57. package/dist/operation.d.ts +66 -7
  58. package/dist/operation.d.ts.map +1 -1
  59. package/dist/operation.js +29 -2
  60. package/dist/operation.js.map +1 -1
  61. package/dist/output-schema.d.ts +40 -0
  62. package/dist/output-schema.d.ts.map +1 -0
  63. package/dist/output-schema.js +109 -0
  64. package/dist/output-schema.js.map +1 -0
  65. package/dist/plan.d.ts +206 -0
  66. package/dist/plan.d.ts.map +1 -0
  67. package/dist/plan.js +107 -0
  68. package/dist/plan.js.map +1 -0
  69. package/dist/primitives.d.ts +14 -10
  70. package/dist/primitives.d.ts.map +1 -1
  71. package/dist/primitives.js +14 -11
  72. package/dist/primitives.js.map +1 -1
  73. package/dist/project.d.ts +75 -0
  74. package/dist/project.d.ts.map +1 -1
  75. package/dist/project.js +17 -0
  76. package/dist/project.js.map +1 -1
  77. package/dist/quota.d.ts +119 -0
  78. package/dist/quota.d.ts.map +1 -1
  79. package/dist/quota.js +22 -0
  80. package/dist/quota.js.map +1 -1
  81. package/dist/raw.d.ts +4 -4
  82. package/dist/readiness.d.ts +14 -7
  83. package/dist/readiness.d.ts.map +1 -1
  84. package/dist/run-strategy.d.ts +17 -0
  85. package/dist/run-strategy.d.ts.map +1 -0
  86. package/dist/run-strategy.js +47 -0
  87. package/dist/run-strategy.js.map +1 -0
  88. package/dist/setup.d.ts +160 -160
  89. package/dist/status-projection.d.ts +78 -0
  90. package/dist/status-projection.d.ts.map +1 -0
  91. package/dist/status-projection.js +171 -0
  92. package/dist/status-projection.js.map +1 -0
  93. package/dist/task.d.ts +48 -316
  94. package/dist/task.d.ts.map +1 -1
  95. package/dist/task.js +3 -60
  96. package/dist/task.js.map +1 -1
  97. package/dist/telemetry.d.ts +89 -89
  98. package/dist/thread.d.ts +167 -32
  99. package/dist/thread.d.ts.map +1 -1
  100. package/dist/thread.js +92 -28
  101. package/dist/thread.js.map +1 -1
  102. package/dist/tool-ref.d.ts +1 -1
  103. package/generated/AgentCapabilityCatalog.schema.json +4 -6
  104. package/generated/ApplyEligibility.schema.json +1 -1
  105. package/generated/BudgetLease.schema.json +1 -2
  106. package/generated/ConformanceReport.schema.json +1 -2
  107. package/generated/ContinuityDisclosure.schema.json +74 -0
  108. package/generated/ControlApplyRequest.schema.json +1 -2
  109. package/generated/ControlCredentialProfileUpdateRequest.schema.json +20 -0
  110. package/generated/ControlCredentialProfileUpdateResponse.schema.json +142 -0
  111. package/generated/ControlCredentialProfilesResponse.schema.json +126 -2
  112. package/generated/ControlDeliveryResponse.schema.json +0 -1
  113. package/generated/ControlHandshakeResponse.schema.json +31 -3
  114. package/generated/ControlHarnessListResponse.schema.json +11 -6
  115. package/generated/ControlHarnessSettingsPatch.schema.json +4 -0
  116. package/generated/ControlOperationCatalog.schema.json +16 -1
  117. package/generated/ControlOperationDescriptor.schema.json +15 -0
  118. package/generated/ControlProject.schema.json +35 -0
  119. package/generated/ControlProjectListResponse.schema.json +35 -0
  120. package/generated/ControlProjectOutputsResponse.schema.json +57 -0
  121. package/generated/ControlQueuedRunInfo.schema.json +2 -11
  122. package/generated/ControlQuotaResponse.schema.json +42 -0
  123. package/generated/ControlRunAgainDraft.schema.json +37 -35
  124. package/generated/ControlRunDecisionRequest.schema.json +0 -1
  125. package/generated/ControlRunDetail.schema.json +292 -213
  126. package/generated/ControlRunListResponse.schema.json +88 -27
  127. package/generated/ControlRunStartRequest.schema.json +37 -35
  128. package/generated/ControlRunStartResponse.schema.json +2 -11
  129. package/generated/ControlRunSummary.schema.json +88 -27
  130. package/generated/ControlSettingsSnapshot.schema.json +6 -11
  131. package/generated/ControlSettingsUpdateRequest.schema.json +5 -10
  132. package/generated/ControlThread.schema.json +21 -3
  133. package/generated/ControlThreadApplyResponse.schema.json +0 -1
  134. package/generated/ControlThreadCreateRequest.schema.json +12 -3
  135. package/generated/ControlThreadDetail.schema.json +174 -16
  136. package/generated/ControlThreadListResponse.schema.json +60 -3
  137. package/generated/ControlThreadTurnRequest.schema.json +40 -34
  138. package/generated/ControlThreadUpdateRequest.schema.json +19 -0
  139. package/generated/DecisionRecord.schema.json +73 -33
  140. package/generated/GateResult.schema.json +1 -2
  141. package/generated/GlobalConfig.schema.json +7 -12
  142. package/generated/HarnessManifest.schema.json +11 -6
  143. package/generated/HarnessStatusDto.schema.json +11 -6
  144. package/generated/LaneCheckpoint.schema.json +59 -0
  145. package/generated/McpRunHandleResult.schema.json +234 -0
  146. package/generated/McpRunToolResult.schema.json +124 -2
  147. package/generated/RoutePrimaryDivergedPayload.schema.json +56 -0
  148. package/generated/RunEvent.schema.json +9 -5
  149. package/generated/RunTelemetry.schema.json +2 -4
  150. package/generated/TaskContract.schema.json +3 -135
  151. package/generated/Thread.schema.json +21 -3
  152. package/generated/ThreadTurn.schema.json +88 -0
  153. package/package.json +2 -2
  154. package/dist/control-spec.d.ts +0 -603
  155. package/dist/control-spec.d.ts.map +0 -1
  156. package/dist/control-spec.js +0 -87
  157. package/dist/control-spec.js.map +0 -1
  158. package/dist/orchestrate.d.ts +0 -556
  159. package/dist/orchestrate.d.ts.map +0 -1
  160. package/dist/orchestrate.js +0 -356
  161. package/dist/orchestrate.js.map +0 -1
  162. package/dist/spec.d.ts +0 -678
  163. package/dist/spec.d.ts.map +0 -1
  164. package/dist/spec.js +0 -186
  165. package/dist/spec.js.map +0 -1
  166. package/generated/ControlSpecAnswersRequest.schema.json +0 -74
  167. package/generated/ControlSpecQuestionsRequest.schema.json +0 -209
  168. package/generated/ControlSpecSession.schema.json +0 -261
  169. package/generated/ControlSpecSessionListResponse.schema.json +0 -273
  170. package/generated/OrchestrateContract.schema.json +0 -119
  171. package/generated/OrchestratePlan.schema.json +0 -264
  172. package/generated/OrchestratePlanProgress.schema.json +0 -164
  173. package/generated/SessionReboundLineage.schema.json +0 -73
  174. package/generated/SpecPack.schema.json +0 -483
@@ -24,21 +24,12 @@
24
24
  "enum": [
25
25
  "queued",
26
26
  "running",
27
- "blocked",
28
27
  "succeeded",
29
- "no_op",
30
- "ungated",
31
- "review_not_run",
32
28
  "failed",
33
29
  "cancelled",
34
- "interrupted_unknown",
35
- "cost_unverifiable",
36
- "exhausted_overshoot",
37
- "exhausted",
38
- "not_converged",
39
- "stuck_no_progress"
30
+ "interrupted"
40
31
  ],
41
- "description": "Control-plane run state: queued/running while live, then an honest success, block, failure, interruption, cost, exhaustion, non-convergence, or cancellation terminal."
32
+ "description": "Control-plane run state = the run LIFECYCLE (D8): queued/running while live, then exactly one of succeeded / failed / cancelled / interrupted. Outcome quality (checks/review/delivery) is orthogonal — see outcomeFacts."
42
33
  },
43
34
  "runDir": {
44
35
  "type": "string",
@@ -196,11 +187,9 @@
196
187
  "enum": [
197
188
  "ask",
198
189
  "plan",
199
- "audit",
200
- "agent",
201
- "orchestrate"
190
+ "agent"
202
191
  ],
203
- "description": "Canonical run mode: ask, plan, and audit are read-only; agent writes; orchestrate is the autonomous coordinator intent. Engine strategies (race, attempts, swarm, create) are flags on a mode, not modes."
192
+ "description": "Canonical run mode: ask and plan are read-only, agent writes. Engine strategies (race width, attempts, deep_scan, create, delegate) are flags on a mode, not modes."
204
193
  },
205
194
  "strategy": {
206
195
  "anyOf": [
@@ -210,7 +199,7 @@
210
199
  "race",
211
200
  "attempts",
212
201
  "until_clean",
213
- "swarm",
202
+ "deep_scan",
214
203
  "create"
215
204
  ]
216
205
  },
@@ -218,7 +207,7 @@
218
207
  "type": "null"
219
208
  }
220
209
  ],
221
- "description": "Engine strategy flag on the mode (race width / attempt caps / until-clean / swarm / create); flags, not modes."
210
+ "description": "Engine strategy flag on the mode (race width / attempt caps / until-clean / deep-scan / create); flags, not modes."
222
211
  },
223
212
  "prompt": {
224
213
  "type": "string",
@@ -281,7 +270,7 @@
281
270
  "harness"
282
271
  ],
283
272
  "additionalProperties": false,
284
- "description": "One reviewer of an explicit reviewer panel."
273
+ "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`)."
285
274
  },
286
275
  "description": "Explicit reviewer panel used for the run."
287
276
  },
@@ -835,6 +824,87 @@
835
824
  "description": "Honest terminal outcome of a run (what the turn actually did), projected from the work product and answer artifacts.",
836
825
  "default": {}
837
826
  },
827
+ "outcomeFacts": {
828
+ "anyOf": [
829
+ {
830
+ "type": "object",
831
+ "properties": {
832
+ "lifecycle": {
833
+ "type": "string",
834
+ "enum": [
835
+ "succeeded",
836
+ "failed",
837
+ "cancelled",
838
+ "interrupted"
839
+ ],
840
+ "description": "Terminal lifecycle of the run."
841
+ },
842
+ "noChanges": {
843
+ "type": "boolean",
844
+ "default": false,
845
+ "description": "True when the run finished without changing any files (the ex no_op fact)."
846
+ },
847
+ "checks": {
848
+ "type": "string",
849
+ "enum": [
850
+ "passed",
851
+ "failed",
852
+ "not_configured"
853
+ ],
854
+ "description": "Deterministic checks axis: configured project checks passed, failed, or none are configured (a named state, never a stand-in for review results).",
855
+ "default": "not_configured"
856
+ },
857
+ "review": {
858
+ "type": "string",
859
+ "enum": [
860
+ "approved",
861
+ "blocked",
862
+ "not_run"
863
+ ],
864
+ "description": "Review axis: approved (clean cross-family verified review), blocked (open accepted findings), or not_run.",
865
+ "default": "not_run"
866
+ },
867
+ "reason": {
868
+ "anyOf": [
869
+ {
870
+ "type": "string",
871
+ "enum": [
872
+ "harness_failed",
873
+ "no_changes",
874
+ "review_blocked",
875
+ "checks_failed",
876
+ "budget_exhausted",
877
+ "budget_overshoot",
878
+ "cost_unverifiable",
879
+ "not_converged",
880
+ "stuck_no_progress",
881
+ "wall_clock_exceeded",
882
+ "user_cancelled",
883
+ "crash_interrupted"
884
+ ],
885
+ "description": "Typed reason qualifying a non-clean terminal; null on a clean success."
886
+ },
887
+ {
888
+ "type": "null"
889
+ }
890
+ ],
891
+ "description": "Typed reason qualifying a non-clean terminal; null on a clean success.",
892
+ "default": null
893
+ }
894
+ },
895
+ "required": [
896
+ "lifecycle"
897
+ ],
898
+ "additionalProperties": false,
899
+ "description": "Independent terminal outcome axes of a run (D8/D18)."
900
+ },
901
+ {
902
+ "type": "null"
903
+ }
904
+ ],
905
+ "description": "D8 terminal outcome axes (checks/review/reason/noChanges) projected from decision.facts or derived from the failure; null while non-terminal.",
906
+ "default": null
907
+ },
838
908
  "waitingOnUser": {
839
909
  "type": "boolean",
840
910
  "default": false,
@@ -925,15 +995,6 @@
925
995
  },
926
996
  "description": "Typed argv gates."
927
997
  },
928
- "specId": {
929
- "type": "string",
930
- "description": "SpecPack id the run was held to."
931
- },
932
- "specHash": {
933
- "type": "string",
934
- "minLength": 1,
935
- "description": "Content hash of the SpecPack the run was held to."
936
- },
937
998
  "createdAt": {
938
999
  "type": "string",
939
1000
  "description": "When the run was created."
@@ -955,6 +1016,14 @@
955
1016
  "additionalProperties": false,
956
1017
  "description": "Run summary row served by GET /runs and embedded in run detail: state, routing, budget, policies, and honest outcome."
957
1018
  },
1019
+ "outcomeBanner": {
1020
+ "type": [
1021
+ "string",
1022
+ "null"
1023
+ ],
1024
+ "default": null,
1025
+ "description": "Server-owned outcome headline (status-projection.outcomeBanner); null while the run is not terminal."
1026
+ },
958
1027
  "lastSeq": {
959
1028
  "type": "integer",
960
1029
  "minimum": 0,
@@ -1220,36 +1289,8 @@
1220
1289
  ],
1221
1290
  "description": "Winning attempt/candidate id; null when nothing won."
1222
1291
  },
1223
- "status": {
1224
- "type": "string",
1225
- "enum": [
1226
- "success",
1227
- "no_op",
1228
- "ungated",
1229
- "review_not_run",
1230
- "blocked",
1231
- "failed",
1232
- "interrupted_unknown",
1233
- "cost_unverifiable",
1234
- "exhausted_overshoot",
1235
- "exhausted",
1236
- "not_converged",
1237
- "stuck_no_progress",
1238
- "cancelled"
1239
- ],
1240
- "description": "Terminal status of a run, including truthful blocked, interrupted-unknown, cost-unverifiable, overshoot, exhaustion, non-convergence, failure, and cancellation outcomes."
1241
- },
1242
- "outcome": {
1243
- "type": "string",
1244
- "enum": [
1245
- "ready",
1246
- "no_op",
1247
- "ungated",
1248
- "review_not_run",
1249
- "blocked"
1250
- ],
1251
- "description": "Arbitration outcome for the winning candidate: ready (verified applyable), no_op (no changes), ungated (no gates configured), review_not_run, or blocked.",
1252
- "default": "blocked"
1292
+ "facts": {
1293
+ "$ref": "#/definitions/ControlRunDetail/properties/summary/properties/outcomeFacts/anyOf/0"
1253
1294
  },
1254
1295
  "why_winner": {
1255
1296
  "type": "string",
@@ -1318,10 +1359,9 @@
1318
1359
  "apply",
1319
1360
  "inspect",
1320
1361
  "continue",
1321
- "split_task",
1322
1362
  "human_review"
1323
1363
  ],
1324
- "description": "Recommended next action for the run's work product: apply it, inspect first, continue working, split the task, or get human review.",
1364
+ "description": "Recommended next action for the run's work product: apply it, inspect first, continue working, or get human review.",
1325
1365
  "default": "inspect"
1326
1366
  },
1327
1367
  "verification_basis": {
@@ -1428,10 +1468,10 @@
1428
1468
  },
1429
1469
  "required": [
1430
1470
  "winner",
1431
- "status"
1471
+ "facts"
1432
1472
  ],
1433
1473
  "additionalProperties": false,
1434
- "description": "The arbitration decision for a run: winner, status/outcome, reasons, spend, and the verification that backs applyability."
1474
+ "description": "The arbitration decision for a run: winner, outcome axes, reasons, spend, and the verification that backs applyability."
1435
1475
  },
1436
1476
  {
1437
1477
  "type": "null"
@@ -1532,6 +1572,196 @@
1532
1572
  "description": "The run's work product; null when none was produced.",
1533
1573
  "default": null
1534
1574
  },
1575
+ "planReadiness": {
1576
+ "anyOf": [
1577
+ {
1578
+ "type": "object",
1579
+ "properties": {
1580
+ "state": {
1581
+ "type": "string",
1582
+ "enum": [
1583
+ "ready",
1584
+ "needs_answers",
1585
+ "unverified"
1586
+ ],
1587
+ "description": "Derived plan readiness: ready (block parsed, zero open questions), needs_answers (open questions remain), unverified (no parseable block — the planner ignored the format)."
1588
+ },
1589
+ "questionCount": {
1590
+ "type": "integer",
1591
+ "minimum": 0,
1592
+ "default": 0
1593
+ }
1594
+ },
1595
+ "required": [
1596
+ "state"
1597
+ ],
1598
+ "additionalProperties": false,
1599
+ "description": "Server-derived readiness of a plan run (one derivation owner; D17)."
1600
+ },
1601
+ {
1602
+ "type": "null"
1603
+ }
1604
+ ],
1605
+ "description": "Derived readiness of a plan run; null for non-plan runs.",
1606
+ "default": null
1607
+ },
1608
+ "planQuestions": {
1609
+ "type": "array",
1610
+ "items": {
1611
+ "type": "object",
1612
+ "properties": {
1613
+ "id": {
1614
+ "type": "string",
1615
+ "minLength": 1,
1616
+ "description": "Stable question id within the plan revision."
1617
+ },
1618
+ "kind": {
1619
+ "type": "string",
1620
+ "enum": [
1621
+ "single",
1622
+ "multi",
1623
+ "text"
1624
+ ],
1625
+ "description": "Question kind: pick exactly one, pick one or more, or free text."
1626
+ },
1627
+ "prompt": {
1628
+ "type": "string",
1629
+ "minLength": 1,
1630
+ "description": "The question text."
1631
+ },
1632
+ "options": {
1633
+ "type": "array",
1634
+ "items": {
1635
+ "type": "object",
1636
+ "properties": {
1637
+ "id": {
1638
+ "type": "string",
1639
+ "minLength": 1,
1640
+ "description": "Stable option id within the question."
1641
+ },
1642
+ "label": {
1643
+ "type": "string",
1644
+ "minLength": 1,
1645
+ "description": "Option label shown to the user."
1646
+ }
1647
+ },
1648
+ "required": [
1649
+ "id",
1650
+ "label"
1651
+ ],
1652
+ "additionalProperties": false,
1653
+ "description": "One selectable option of a plan question."
1654
+ },
1655
+ "default": [],
1656
+ "description": "Options for single/multi questions; empty for free text."
1657
+ },
1658
+ "allow_text": {
1659
+ "type": "boolean",
1660
+ "default": false,
1661
+ "description": "True when a free-text answer is accepted (text questions)."
1662
+ }
1663
+ },
1664
+ "required": [
1665
+ "id",
1666
+ "kind",
1667
+ "prompt"
1668
+ ],
1669
+ "additionalProperties": false,
1670
+ "description": "One open question surfaced by a plan revision."
1671
+ },
1672
+ "default": [],
1673
+ "description": "Open questions of a plan run (projected from final/questions.json); empty otherwise."
1674
+ },
1675
+ "council": {
1676
+ "anyOf": [
1677
+ {
1678
+ "type": "object",
1679
+ "properties": {
1680
+ "requested": {
1681
+ "type": "integer",
1682
+ "exclusiveMinimum": 0,
1683
+ "description": "Requested member count (n; 2..4)."
1684
+ },
1685
+ "drafted": {
1686
+ "type": "integer",
1687
+ "minimum": 0,
1688
+ "description": "Members whose draft survived to the merge."
1689
+ },
1690
+ "degraded": {
1691
+ "type": "boolean",
1692
+ "default": false,
1693
+ "description": "True when fewer members drafted than requested (failures disclosed per member)."
1694
+ },
1695
+ "mergedBy": {
1696
+ "type": [
1697
+ "string",
1698
+ "null"
1699
+ ],
1700
+ "default": null,
1701
+ "description": "Harness that produced the unified plan (the primary); null if the merge failed."
1702
+ },
1703
+ "members": {
1704
+ "type": "array",
1705
+ "items": {
1706
+ "type": "object",
1707
+ "properties": {
1708
+ "harnessId": {
1709
+ "type": "string",
1710
+ "minLength": 1,
1711
+ "description": "Harness that drafted (or merged) this member's plan."
1712
+ },
1713
+ "role": {
1714
+ "type": "string",
1715
+ "enum": [
1716
+ "primary",
1717
+ "member"
1718
+ ],
1719
+ "description": "primary = the merger that synthesizes the unified plan; member = draft only."
1720
+ },
1721
+ "status": {
1722
+ "type": "string",
1723
+ "enum": [
1724
+ "drafted",
1725
+ "failed",
1726
+ "merged"
1727
+ ],
1728
+ "description": "drafted = draft landed; merged = this member produced the unified plan; failed."
1729
+ },
1730
+ "error": {
1731
+ "type": [
1732
+ "string",
1733
+ "null"
1734
+ ],
1735
+ "default": null,
1736
+ "description": "First redacted draft error; null unless the member failed."
1737
+ }
1738
+ },
1739
+ "required": [
1740
+ "harnessId",
1741
+ "role",
1742
+ "status"
1743
+ ],
1744
+ "additionalProperties": false,
1745
+ "description": "One council member's role and draft/merge outcome."
1746
+ },
1747
+ "default": [],
1748
+ "description": "Per-member role and outcome."
1749
+ }
1750
+ },
1751
+ "required": [
1752
+ "requested",
1753
+ "drafted"
1754
+ ],
1755
+ "additionalProperties": false,
1756
+ "description": "Council membership + merge disclosure for a --council plan run."
1757
+ },
1758
+ {
1759
+ "type": "null"
1760
+ }
1761
+ ],
1762
+ "description": "Council membership + merge disclosure; null for solo plans and non-plan runs.",
1763
+ "default": null
1764
+ },
1535
1765
  "applyEligibility": {
1536
1766
  "anyOf": [
1537
1767
  {
@@ -1546,7 +1776,7 @@
1546
1776
  "string",
1547
1777
  "null"
1548
1778
  ],
1549
- "description": "The gate's state classification (e.g. blocked | ungated | review_not_run | no_op | ok) when known."
1779
+ "description": "The gate's apply-eligibility classification (e.g. needs_review | not_verified | no_changes | ok) when known."
1550
1780
  },
1551
1781
  "reason": {
1552
1782
  "type": [
@@ -1930,157 +2160,6 @@
1930
2160
  "default": [],
1931
2161
  "description": "Interactive questions currently awaiting answers."
1932
2162
  },
1933
- "orchestrate": {
1934
- "anyOf": [
1935
- {
1936
- "type": "object",
1937
- "properties": {
1938
- "steps": {
1939
- "type": "array",
1940
- "items": {
1941
- "type": "object",
1942
- "properties": {
1943
- "index": {
1944
- "type": "integer",
1945
- "minimum": 0,
1946
- "description": "Position of the step in the plan."
1947
- },
1948
- "tool": {
1949
- "type": "string",
1950
- "enum": [
1951
- "start_run",
1952
- "race",
1953
- "status",
1954
- "answer_question",
1955
- "apply",
1956
- "review"
1957
- ],
1958
- "description": "Tool in the orchestrate planner's belt, mapping 1:1 onto engine entry points: start_run, race (best-of-N), status, answer_question, apply, and review."
1959
- },
1960
- "risk": {
1961
- "type": "string",
1962
- "enum": [
1963
- "safe",
1964
- "risky"
1965
- ],
1966
- "description": "Risk class of the step: safe (no live-tree mutation) or risky."
1967
- },
1968
- "status": {
1969
- "type": "string",
1970
- "enum": [
1971
- "pending",
1972
- "running",
1973
- "done",
1974
- "skipped",
1975
- "blocked",
1976
- "failed"
1977
- ],
1978
- "description": "Executor status of one plan step: pending, running, done, skipped, blocked (risky step awaiting a human), or failed."
1979
- },
1980
- "required": {
1981
- "type": "boolean",
1982
- "default": true
1983
- },
1984
- "terminal_status": {
1985
- "anyOf": [
1986
- {
1987
- "$ref": "#/definitions/ControlRunDetail/properties/decision/anyOf/0/properties/status"
1988
- },
1989
- {
1990
- "type": "null"
1991
- }
1992
- ],
1993
- "description": "Actual child/delivery terminal used by the parent outcome reducer.",
1994
- "default": null
1995
- },
1996
- "terminal_source": {
1997
- "anyOf": [
1998
- {
1999
- "type": "string",
2000
- "enum": [
2001
- "executor",
2002
- "subrun",
2003
- "review",
2004
- "delivery",
2005
- "policy",
2006
- "budget"
2007
- ]
2008
- },
2009
- {
2010
- "type": "null"
2011
- }
2012
- ],
2013
- "default": null,
2014
- "description": "Authority that produced terminal_status."
2015
- },
2016
- "evidence_refs": {
2017
- "type": "array",
2018
- "items": {
2019
- "type": "string",
2020
- "minLength": 1
2021
- },
2022
- "default": [],
2023
- "description": "Immutable run artifact or delivery receipt references."
2024
- },
2025
- "run_id": {
2026
- "type": [
2027
- "string",
2028
- "null"
2029
- ],
2030
- "default": null,
2031
- "description": "Sub-run id this step started/targeted, when known."
2032
- },
2033
- "detail": {
2034
- "type": [
2035
- "string",
2036
- "null"
2037
- ],
2038
- "default": null,
2039
- "description": "Human-readable step detail."
2040
- }
2041
- },
2042
- "required": [
2043
- "index",
2044
- "tool",
2045
- "risk",
2046
- "status"
2047
- ],
2048
- "additionalProperties": false
2049
- },
2050
- "default": [],
2051
- "description": "Per-step outcomes, in plan order."
2052
- },
2053
- "autonomy": {
2054
- "type": "string",
2055
- "enum": [
2056
- "suggest",
2057
- "auto_safe",
2058
- "auto_full"
2059
- ],
2060
- "description": "How much the orchestrate planner may act without confirmation: suggest (user executes the plan), auto_safe (auto-runs only provably safe steps), auto_full (auto-runs everything)."
2061
- },
2062
- "stopped_reason": {
2063
- "type": [
2064
- "string",
2065
- "null"
2066
- ],
2067
- "default": null,
2068
- "description": "Set when the executor stopped early (first risky step under auto_safe, budget, abort)."
2069
- }
2070
- },
2071
- "required": [
2072
- "autonomy"
2073
- ],
2074
- "additionalProperties": false,
2075
- "description": "Typed executor progress over a plan's tool calls, persisted as final/orchestration_progress.yaml and projected into run detail."
2076
- },
2077
- {
2078
- "type": "null"
2079
- }
2080
- ],
2081
- "description": "Typed executor progress for an orchestrate run; null for non-orchestrate runs or suggest autonomy.",
2082
- "default": null
2083
- },
2084
2163
  "candidates": {
2085
2164
  "type": "array",
2086
2165
  "items": {