@claudexor/schema 3.1.2 → 3.2.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 (284) hide show
  1. package/dist/agent-capabilities.d.ts +157 -129
  2. package/dist/agent-capabilities.d.ts.map +1 -1
  3. package/dist/agent-capabilities.js +4 -2
  4. package/dist/agent-capabilities.js.map +1 -1
  5. package/dist/apply-eligibility.d.ts +462 -273
  6. package/dist/apply-eligibility.d.ts.map +1 -1
  7. package/dist/apply-eligibility.js +25 -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 +62 -59
  18. package/dist/budget.d.ts.map +1 -1
  19. package/dist/budget.js +6 -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 +630 -628
  42. package/dist/control-operation-responses.d.ts.map +1 -1
  43. package/dist/control-operation-responses.js +5 -1
  44. package/dist/control-operation-responses.js.map +1 -1
  45. package/dist/control-run-detail.d.ts +2113 -1578
  46. package/dist/control-run-detail.d.ts.map +1 -1
  47. package/dist/control-run-detail.js +7 -1
  48. package/dist/control-run-detail.js.map +1 -1
  49. package/dist/control-run-retry.d.ts +16 -16
  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 +1523 -2354
  70. package/dist/control.d.ts.map +1 -1
  71. package/dist/control.js +23 -45
  72. package/dist/control.js.map +1 -1
  73. package/dist/credential-profile-snapshot.d.ts +3203 -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 +121 -121
  82. package/dist/decision.d.ts.map +1 -1
  83. package/dist/decision.js +2 -1
  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 +13 -13
  90. package/dist/delegation.d.ts.map +1 -1
  91. package/dist/delegation.js +1 -1
  92. package/dist/delegation.js.map +1 -1
  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 +55 -35
  102. package/dist/events.d.ts.map +1 -1
  103. package/dist/events.js +20 -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 +417 -400
  114. package/dist/harness.d.ts.map +1 -1
  115. package/dist/harness.js +11 -25
  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 +2 -2
  138. package/dist/plan.js.map +1 -1
  139. package/dist/primitives.d.ts +3 -5
  140. package/dist/primitives.d.ts.map +1 -1
  141. package/dist/primitives.js +4 -6
  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 +72 -48
  152. package/dist/quota.d.ts.map +1 -1
  153. package/dist/quota.js +6 -2
  154. package/dist/quota.js.map +1 -1
  155. package/dist/rate-limit.d.ts +20 -0
  156. package/dist/rate-limit.d.ts.map +1 -0
  157. package/dist/rate-limit.js +24 -0
  158. package/dist/rate-limit.js.map +1 -0
  159. package/dist/raw.d.ts +16 -16
  160. package/dist/raw.d.ts.map +1 -1
  161. package/dist/raw.js +1 -1
  162. package/dist/raw.js.map +1 -1
  163. package/dist/readiness.d.ts +242 -242
  164. package/dist/readiness.d.ts.map +1 -1
  165. package/dist/readiness.js +1 -1
  166. package/dist/readiness.js.map +1 -1
  167. package/dist/recovery.d.ts +106 -106
  168. package/dist/recovery.d.ts.map +1 -1
  169. package/dist/recovery.js +1 -1
  170. package/dist/recovery.js.map +1 -1
  171. package/dist/request-requirements.d.ts +9 -9
  172. package/dist/request-requirements.d.ts.map +1 -1
  173. package/dist/request-requirements.js +1 -1
  174. package/dist/request-requirements.js.map +1 -1
  175. package/dist/review.d.ts +29 -29
  176. package/dist/review.d.ts.map +1 -1
  177. package/dist/review.js +1 -1
  178. package/dist/review.js.map +1 -1
  179. package/dist/route.d.ts +11 -11
  180. package/dist/route.d.ts.map +1 -1
  181. package/dist/route.js +1 -1
  182. package/dist/route.js.map +1 -1
  183. package/dist/run-applicability.d.ts +764 -0
  184. package/dist/run-applicability.d.ts.map +1 -0
  185. package/dist/run-applicability.js +56 -0
  186. package/dist/run-applicability.js.map +1 -0
  187. package/dist/run-facts.d.ts +628 -0
  188. package/dist/run-facts.d.ts.map +1 -0
  189. package/dist/run-facts.js +429 -0
  190. package/dist/run-facts.js.map +1 -0
  191. package/dist/run-strategy.d.ts +40 -0
  192. package/dist/run-strategy.d.ts.map +1 -1
  193. package/dist/run-strategy.js +68 -1
  194. package/dist/run-strategy.js.map +1 -1
  195. package/dist/setup-device-code-envelope.d.ts +67 -0
  196. package/dist/setup-device-code-envelope.d.ts.map +1 -0
  197. package/dist/setup-device-code-envelope.js +25 -0
  198. package/dist/setup-device-code-envelope.js.map +1 -0
  199. package/dist/setup-login-protocol.d.ts +6 -0
  200. package/dist/setup-login-protocol.d.ts.map +1 -0
  201. package/dist/setup-login-protocol.js +12 -0
  202. package/dist/setup-login-protocol.js.map +1 -0
  203. package/dist/setup-transport.d.ts +12 -0
  204. package/dist/setup-transport.d.ts.map +1 -0
  205. package/dist/setup-transport.js +22 -0
  206. package/dist/setup-transport.js.map +1 -0
  207. package/dist/setup.d.ts +12572 -3749
  208. package/dist/setup.d.ts.map +1 -1
  209. package/dist/setup.js +34 -38
  210. package/dist/setup.js.map +1 -1
  211. package/dist/status-projection.d.ts +7 -5
  212. package/dist/status-projection.d.ts.map +1 -1
  213. package/dist/status-projection.js +11 -6
  214. package/dist/status-projection.js.map +1 -1
  215. package/dist/surface-run-controls.d.ts.map +1 -1
  216. package/dist/surface-run-controls.js +10 -1
  217. package/dist/surface-run-controls.js.map +1 -1
  218. package/dist/task.d.ts +303 -303
  219. package/dist/task.d.ts.map +1 -1
  220. package/dist/task.js +1 -1
  221. package/dist/task.js.map +1 -1
  222. package/dist/telemetry.d.ts +1157 -633
  223. package/dist/telemetry.d.ts.map +1 -1
  224. package/dist/telemetry.js +7 -4
  225. package/dist/telemetry.js.map +1 -1
  226. package/dist/thread.d.ts +133 -84
  227. package/dist/thread.d.ts.map +1 -1
  228. package/dist/thread.js +21 -2
  229. package/dist/thread.js.map +1 -1
  230. package/dist/tool-ref.d.ts +7 -7
  231. package/dist/tool-ref.d.ts.map +1 -1
  232. package/dist/tool-ref.js +1 -1
  233. package/dist/tool-ref.js.map +1 -1
  234. package/dist/work-report.d.ts +28 -28
  235. package/dist/work-report.d.ts.map +1 -1
  236. package/dist/work-report.js +3 -3
  237. package/dist/work-report.js.map +1 -1
  238. package/dist/workproduct.d.ts +6 -9
  239. package/dist/workproduct.d.ts.map +1 -1
  240. package/dist/workproduct.js +1 -2
  241. package/dist/workproduct.js.map +1 -1
  242. package/dist/workspace.d.ts +13 -13
  243. package/dist/workspace.d.ts.map +1 -1
  244. package/dist/workspace.js +1 -1
  245. package/dist/workspace.js.map +1 -1
  246. package/generated/AgentCapabilityCatalog.schema.json +43 -2
  247. package/generated/BudgetObservation.schema.json +16 -0
  248. package/generated/ControlCredentialProfilesQueryResponse.schema.json +1346 -0
  249. package/generated/ControlCredentialProfilesResponse.schema.json +10 -2
  250. package/generated/ControlCredentialProfilesSnapshotResponse.schema.json +1325 -0
  251. package/generated/ControlDirectoryEntry.schema.json +36 -0
  252. package/generated/ControlDirectoryListing.schema.json +77 -0
  253. package/generated/ControlHarnessListResponse.schema.json +41 -1
  254. package/generated/ControlQuotaResponse.schema.json +14 -1
  255. package/generated/ControlRunAgainDraft.schema.json +2 -2
  256. package/generated/ControlRunApplicabilityResponse.schema.json +217 -0
  257. package/generated/ControlRunDetail.schema.json +429 -68
  258. package/generated/ControlRunListResponse.schema.json +12 -3
  259. package/generated/ControlRunStartRequest.schema.json +2 -2
  260. package/generated/ControlRunSummary.schema.json +12 -3
  261. package/generated/ControlSettingsSnapshot.schema.json +12 -3
  262. package/generated/ControlSettingsUpdateRequest.schema.json +12 -3
  263. package/generated/ControlSetupJob.schema.json +9 -0
  264. package/generated/ControlSetupJobCreateRequest.schema.json +9 -0
  265. package/generated/ControlSetupJobEvent.schema.json +858 -758
  266. package/generated/ControlSetupJobListResponse.schema.json +9 -0
  267. package/generated/ControlSetupJobSnapshot.schema.json +811 -736
  268. package/generated/ControlThreadDetail.schema.json +32 -2
  269. package/generated/ControlThreadTurnRequest.schema.json +6 -25
  270. package/generated/DecisionRecord.schema.json +2 -1
  271. package/generated/GitCapability.schema.json +46 -0
  272. package/generated/GlobalConfig.schema.json +13 -4
  273. package/generated/HarnessEvent.schema.json +34 -2
  274. package/generated/HarnessManifest.schema.json +1 -1
  275. package/generated/HarnessStatusDto.schema.json +1 -1
  276. package/generated/McpRunHandleResult.schema.json +165 -1
  277. package/generated/McpRunToolResult.schema.json +165 -1
  278. package/generated/OutputReadyPayload.schema.json +44 -0
  279. package/generated/RunFacts.schema.json +569 -0
  280. package/generated/RunTelemetry.schema.json +493 -3
  281. package/generated/TaskContract.schema.json +1 -1
  282. package/generated/ThreadTurn.schema.json +29 -0
  283. package/generated/WorkProduct.schema.json +0 -4
  284. package/package.json +3 -3
@@ -0,0 +1,569 @@
1
+ {
2
+ "$ref": "#/definitions/RunFacts",
3
+ "definitions": {
4
+ "RunFacts": {
5
+ "type": "object",
6
+ "properties": {
7
+ "schema_version": {
8
+ "type": "number",
9
+ "const": 2,
10
+ "description": "Schema version of the artifact; bumped on breaking ABI changes."
11
+ },
12
+ "run_id": {
13
+ "type": "string",
14
+ "minLength": 1,
15
+ "description": "Non-empty identifier string."
16
+ },
17
+ "task_id": {
18
+ "$ref": "#/definitions/RunFacts/properties/run_id"
19
+ },
20
+ "mode": {
21
+ "type": "string",
22
+ "enum": [
23
+ "ask",
24
+ "plan",
25
+ "agent"
26
+ ],
27
+ "description": "Canonical run mode: ask and plan are read-only, agent writes. Strategy controls are separate schema-owned fields, never modes."
28
+ },
29
+ "outcome": {
30
+ "type": "object",
31
+ "properties": {
32
+ "lifecycle": {
33
+ "type": "string",
34
+ "enum": [
35
+ "succeeded",
36
+ "failed",
37
+ "cancelled",
38
+ "interrupted"
39
+ ],
40
+ "description": "Terminal lifecycle of the run."
41
+ },
42
+ "noChanges": {
43
+ "type": "boolean",
44
+ "default": false,
45
+ "description": "True when the run finished without changing any files (the ex no_op fact)."
46
+ },
47
+ "checks": {
48
+ "type": "string",
49
+ "enum": [
50
+ "passed",
51
+ "failed",
52
+ "not_configured"
53
+ ],
54
+ "description": "Deterministic checks axis: configured project checks passed, failed, or none are configured (a named state, never a stand-in for review results).",
55
+ "default": "not_configured"
56
+ },
57
+ "review": {
58
+ "type": "string",
59
+ "enum": [
60
+ "approved",
61
+ "blocked",
62
+ "not_run"
63
+ ],
64
+ "description": "Review axis: approved (clean cross-family verified review), blocked (open accepted findings), or not_run.",
65
+ "default": "not_run"
66
+ },
67
+ "reason": {
68
+ "anyOf": [
69
+ {
70
+ "type": "string",
71
+ "enum": [
72
+ "harness_failed",
73
+ "no_changes",
74
+ "review_blocked",
75
+ "checks_failed",
76
+ "budget_exhausted",
77
+ "budget_overshoot",
78
+ "cost_unverifiable",
79
+ "not_converged",
80
+ "stuck_no_progress",
81
+ "wall_clock_exceeded",
82
+ "user_cancelled",
83
+ "crash_interrupted",
84
+ "workspace_unavailable",
85
+ "input_required",
86
+ "work_incomplete",
87
+ "context_capacity_exhausted",
88
+ "work_report_contract"
89
+ ],
90
+ "description": "Typed reason qualifying a non-clean terminal; null on a clean success."
91
+ },
92
+ {
93
+ "type": "null"
94
+ }
95
+ ],
96
+ "description": "Typed reason qualifying a non-clean terminal; null on a clean success.",
97
+ "default": null
98
+ },
99
+ "work_state": {
100
+ "type": "object",
101
+ "properties": {
102
+ "state": {
103
+ "type": "string",
104
+ "enum": [
105
+ "completed",
106
+ "needs_input",
107
+ "incomplete",
108
+ "unverified"
109
+ ],
110
+ "description": "Folded work state: the WorkReport state, or unverified when no report was obtainable (transport unsupported / lane gated)."
111
+ },
112
+ "source": {
113
+ "type": "string",
114
+ "enum": [
115
+ "constrained",
116
+ "validated",
117
+ "absent"
118
+ ],
119
+ "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)."
120
+ },
121
+ "required_inputs": {
122
+ "type": "array",
123
+ "items": {
124
+ "type": "object",
125
+ "properties": {
126
+ "kind": {
127
+ "type": "string",
128
+ "enum": [
129
+ "file",
130
+ "context",
131
+ "credential",
132
+ "permission",
133
+ "decision",
134
+ "external_dependency"
135
+ ],
136
+ "description": "Category of a missing input a needs_input/incomplete report lists: a file, additional context, a credential, a permission, a human decision, or an external dependency."
137
+ },
138
+ "locator": {
139
+ "anyOf": [
140
+ {
141
+ "type": "string",
142
+ "maxLength": 512
143
+ },
144
+ {
145
+ "type": "null"
146
+ }
147
+ ],
148
+ "default": null,
149
+ "description": "Concrete pointer to the missing thing (path/url/name); null when unnameable."
150
+ },
151
+ "description": {
152
+ "type": "string",
153
+ "maxLength": 1024,
154
+ "description": "Human-readable description of what is needed and why."
155
+ }
156
+ },
157
+ "required": [
158
+ "kind",
159
+ "description"
160
+ ],
161
+ "additionalProperties": false,
162
+ "description": "One blocking input a needs_input/incomplete WorkReport lists."
163
+ },
164
+ "maxItems": 16,
165
+ "description": "Carried through from a needs_input/incomplete WorkReport for honest disclosure."
166
+ }
167
+ },
168
+ "required": [
169
+ "state",
170
+ "source"
171
+ ],
172
+ "additionalProperties": false,
173
+ "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."
174
+ }
175
+ },
176
+ "required": [
177
+ "lifecycle"
178
+ ],
179
+ "additionalProperties": false,
180
+ "description": "Independent terminal outcome axes of a run (D8/D18)."
181
+ },
182
+ "deliverable": {
183
+ "type": "object",
184
+ "properties": {
185
+ "present": {
186
+ "type": "boolean",
187
+ "description": "Whether the canonical primary deliverable exists."
188
+ },
189
+ "kind": {
190
+ "anyOf": [
191
+ {
192
+ "type": "string",
193
+ "enum": [
194
+ "answer",
195
+ "report",
196
+ "plan",
197
+ "patch",
198
+ "structured_output"
199
+ ]
200
+ },
201
+ {
202
+ "type": "null"
203
+ }
204
+ ],
205
+ "description": "Kind of canonical primary deliverable; null when none exists."
206
+ },
207
+ "path": {
208
+ "type": [
209
+ "string",
210
+ "null"
211
+ ],
212
+ "description": "Run-relative path of the canonical primary deliverable; null when absent."
213
+ },
214
+ "producer_attempt_id": {
215
+ "anyOf": [
216
+ {
217
+ "$ref": "#/definitions/RunFacts/properties/run_id"
218
+ },
219
+ {
220
+ "type": "null"
221
+ }
222
+ ],
223
+ "description": "Attempt that produced the deliverable, when known.",
224
+ "default": null
225
+ }
226
+ },
227
+ "required": [
228
+ "present",
229
+ "kind",
230
+ "path"
231
+ ],
232
+ "additionalProperties": false,
233
+ "description": "Canonical primary-output presence and identity for a terminal run."
234
+ },
235
+ "presentation": {
236
+ "type": "object",
237
+ "properties": {
238
+ "state": {
239
+ "type": "string",
240
+ "enum": [
241
+ "ready",
242
+ "diagnostic"
243
+ ],
244
+ "description": "Terminal output readiness decided by the last valid output.ready receipt."
245
+ },
246
+ "primary": {
247
+ "anyOf": [
248
+ {
249
+ "type": "object",
250
+ "properties": {
251
+ "kind": {
252
+ "type": "string",
253
+ "enum": [
254
+ "answer",
255
+ "report",
256
+ "plan",
257
+ "patch",
258
+ "structured_output",
259
+ "diagnostic"
260
+ ],
261
+ "description": "Presentation kind of the terminal primary artifact."
262
+ },
263
+ "path": {
264
+ "type": "string",
265
+ "minLength": 1,
266
+ "description": "Normalized run-relative path of the terminal primary artifact."
267
+ }
268
+ },
269
+ "required": [
270
+ "kind",
271
+ "path"
272
+ ],
273
+ "additionalProperties": false,
274
+ "description": "Primary user-facing artifact selected once during terminal preparation."
275
+ },
276
+ {
277
+ "type": "null"
278
+ }
279
+ ],
280
+ "description": "Selected terminal primary artifact, or null when the receipt announces readiness without a primary deliverable."
281
+ }
282
+ },
283
+ "required": [
284
+ "state",
285
+ "primary"
286
+ ],
287
+ "additionalProperties": false,
288
+ "description": "Immutable terminal output state and primary artifact. Absent only on legacy RunFacts receipts."
289
+ },
290
+ "participants": {
291
+ "type": "object",
292
+ "properties": {
293
+ "planners": {
294
+ "type": "integer",
295
+ "minimum": 0,
296
+ "description": "Number of participants whose canonical role is planner."
297
+ },
298
+ "attempts": {
299
+ "type": "array",
300
+ "items": {
301
+ "type": "object",
302
+ "properties": {
303
+ "attempt_id": {
304
+ "anyOf": [
305
+ {
306
+ "$ref": "#/definitions/RunFacts/properties/run_id"
307
+ },
308
+ {
309
+ "type": "null"
310
+ }
311
+ ],
312
+ "description": "Attempt id when the participant owns an orchestrator attempt; null for reviewer-panel members."
313
+ },
314
+ "harness_id": {
315
+ "type": "string",
316
+ "minLength": 1,
317
+ "description": "Harness that served this participant role."
318
+ },
319
+ "role": {
320
+ "type": "string",
321
+ "enum": [
322
+ "planner",
323
+ "merge",
324
+ "candidate",
325
+ "scout",
326
+ "reducer",
327
+ "reviewer"
328
+ ],
329
+ "description": "Canonical role of one participant in the terminal run graph."
330
+ },
331
+ "deliverable_present": {
332
+ "type": "boolean",
333
+ "default": false,
334
+ "description": "Whether this participant produced the deliverable its role requested."
335
+ },
336
+ "status": {
337
+ "anyOf": [
338
+ {
339
+ "type": "string",
340
+ "enum": [
341
+ "success",
342
+ "success_with_warnings",
343
+ "blocked",
344
+ "failed"
345
+ ],
346
+ "description": "Terminal outcome recorded for one run participant."
347
+ },
348
+ {
349
+ "type": "null"
350
+ }
351
+ ],
352
+ "description": "Participant outcome when recorded; null for artifact-only reviewer membership.",
353
+ "default": null
354
+ }
355
+ },
356
+ "required": [
357
+ "attempt_id",
358
+ "harness_id",
359
+ "role"
360
+ ],
361
+ "additionalProperties": false,
362
+ "description": "One role-labelled participant in the terminal run graph."
363
+ },
364
+ "default": [],
365
+ "description": "Role-labelled participant roster."
366
+ }
367
+ },
368
+ "required": [
369
+ "planners"
370
+ ],
371
+ "additionalProperties": false,
372
+ "description": "Terminal participant graph plus its planner-lane count."
373
+ },
374
+ "gates": {
375
+ "type": "object",
376
+ "properties": {
377
+ "configured": {
378
+ "type": "boolean",
379
+ "description": "Whether the frozen task configured deterministic gates."
380
+ },
381
+ "required": {
382
+ "type": "integer",
383
+ "minimum": 0,
384
+ "description": "Number of configured required gates."
385
+ },
386
+ "total": {
387
+ "type": "integer",
388
+ "minimum": 0,
389
+ "description": "Total configured deterministic gates."
390
+ },
391
+ "executed": {
392
+ "type": "boolean",
393
+ "description": "Whether the terminal attempt executed the gate set."
394
+ },
395
+ "state": {
396
+ "type": "string",
397
+ "enum": [
398
+ "not_configured",
399
+ "passed",
400
+ "failed",
401
+ "skipped"
402
+ ],
403
+ "description": "Terminal state of the configured deterministic gate set."
404
+ },
405
+ "receipt_attempt_id": {
406
+ "anyOf": [
407
+ {
408
+ "$ref": "#/definitions/RunFacts/properties/run_id"
409
+ },
410
+ {
411
+ "type": "null"
412
+ }
413
+ ],
414
+ "description": "Attempt whose gate receipt decides this projection; null when no gates executed.",
415
+ "default": null
416
+ }
417
+ },
418
+ "required": [
419
+ "configured",
420
+ "required",
421
+ "total",
422
+ "executed",
423
+ "state"
424
+ ],
425
+ "additionalProperties": false,
426
+ "description": "Canonical gate configuration and terminal receipt projection."
427
+ },
428
+ "review": {
429
+ "type": "object",
430
+ "properties": {
431
+ "state": {
432
+ "$ref": "#/definitions/RunFacts/properties/outcome/properties/review"
433
+ },
434
+ "blocker_ids": {
435
+ "type": "array",
436
+ "items": {
437
+ "$ref": "#/definitions/RunFacts/properties/run_id"
438
+ },
439
+ "default": [],
440
+ "description": "Stable ids of accepted evidence-backed blocking findings."
441
+ },
442
+ "blockers": {
443
+ "type": "integer",
444
+ "minimum": 0,
445
+ "description": "Number of blocking findings."
446
+ }
447
+ },
448
+ "required": [
449
+ "state",
450
+ "blockers"
451
+ ],
452
+ "additionalProperties": false,
453
+ "description": "Canonical terminal review verdict and blocking-finding identity."
454
+ },
455
+ "apply": {
456
+ "type": "object",
457
+ "properties": {
458
+ "eligibility": {
459
+ "anyOf": [
460
+ {
461
+ "type": "object",
462
+ "properties": {
463
+ "eligible": {
464
+ "type": "boolean",
465
+ "description": "True when the apply gate would accept this run's patch right now."
466
+ },
467
+ "state": {
468
+ "type": [
469
+ "string",
470
+ "null"
471
+ ],
472
+ "description": "The gate's apply-eligibility classification (e.g. needs_review | not_verified | no_changes | ok) when known."
473
+ },
474
+ "reason": {
475
+ "type": [
476
+ "string",
477
+ "null"
478
+ ],
479
+ "description": "The gate's refusal text when not eligible (null when eligible)."
480
+ },
481
+ "requiredAction": {
482
+ "type": [
483
+ "string",
484
+ "null"
485
+ ],
486
+ "description": "Honest guidance for what actually unblocks apply (typed operator decision, add gates, re-run, or nothing to apply)."
487
+ }
488
+ },
489
+ "required": [
490
+ "eligible",
491
+ "state",
492
+ "reason",
493
+ "requiredAction"
494
+ ],
495
+ "additionalProperties": false,
496
+ "description": "Derived apply-gate verdict for a run's WorkProduct (single producer in the delivery gate)."
497
+ },
498
+ {
499
+ "type": "null"
500
+ }
501
+ ],
502
+ "description": "Delivery-gate eligibility at terminalization; null when nothing is applyable.",
503
+ "default": null
504
+ },
505
+ "operator_decision_present": {
506
+ "type": "boolean",
507
+ "default": false,
508
+ "description": "Whether a valid operator decision was present when the receipt was finalized."
509
+ }
510
+ },
511
+ "additionalProperties": false,
512
+ "description": "Terminal apply eligibility and operator-decision state."
513
+ },
514
+ "required_actions": {
515
+ "type": "array",
516
+ "items": {
517
+ "type": "object",
518
+ "properties": {
519
+ "id": {
520
+ "type": "string",
521
+ "enum": [
522
+ "provide_required_input",
523
+ "complete_incomplete_work",
524
+ "resolve_review_block",
525
+ "fix_failed_checks",
526
+ "record_operator_decision"
527
+ ],
528
+ "description": "Stable machine id for a required operator action on a blocked terminal run."
529
+ },
530
+ "detail": {
531
+ "type": "string",
532
+ "description": "Human-readable guidance for this action (English-only, INV-141)."
533
+ }
534
+ },
535
+ "required": [
536
+ "id",
537
+ "detail"
538
+ ],
539
+ "additionalProperties": false,
540
+ "description": "One typed required operator action derived from a run's terminal outcome facts."
541
+ },
542
+ "default": [],
543
+ "description": "Typed actions required to unblock this terminal outcome."
544
+ },
545
+ "generated_at": {
546
+ "type": "string",
547
+ "minLength": 1,
548
+ "description": "When this immutable terminal receipt was finalized."
549
+ }
550
+ },
551
+ "required": [
552
+ "schema_version",
553
+ "run_id",
554
+ "task_id",
555
+ "mode",
556
+ "outcome",
557
+ "deliverable",
558
+ "participants",
559
+ "gates",
560
+ "review",
561
+ "apply",
562
+ "generated_at"
563
+ ],
564
+ "additionalProperties": false,
565
+ "description": "Validated immutable terminal facts for one run."
566
+ }
567
+ },
568
+ "$schema": "http://json-schema.org/draft-07/schema#"
569
+ }