@claudexor/schema 3.1.2 → 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 (277) 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 +3 -1
  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 +59 -59
  18. package/dist/budget.d.ts.map +1 -1
  19. package/dist/budget.js +1 -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 +625 -628
  42. package/dist/control-operation-responses.d.ts.map +1 -1
  43. package/dist/control-operation-responses.js +2 -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 +1515 -2354
  70. package/dist/control.d.ts.map +1 -1
  71. package/dist/control.js +20 -45
  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 +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 +400 -400
  114. package/dist/harness.d.ts.map +1 -1
  115. package/dist/harness.js +9 -8
  116. package/dist/harness.js.map +1 -1
  117. package/dist/index.d.ts +6 -0
  118. package/dist/index.d.ts.map +1 -1
  119. package/dist/index.js +6 -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 +242 -242
  160. package/dist/readiness.d.ts.map +1 -1
  161. package/dist/readiness.js +1 -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 +9 -9
  168. package/dist/request-requirements.d.ts.map +1 -1
  169. package/dist/request-requirements.js +1 -1
  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 +303 -303
  215. package/dist/task.d.ts.map +1 -1
  216. package/dist/task.js +1 -1
  217. package/dist/task.js.map +1 -1
  218. package/dist/telemetry.d.ts +1157 -633
  219. package/dist/telemetry.d.ts.map +1 -1
  220. package/dist/telemetry.js +7 -4
  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 +13 -13
  239. package/dist/workspace.d.ts.map +1 -1
  240. package/dist/workspace.js +1 -1
  241. package/dist/workspace.js.map +1 -1
  242. package/generated/AgentCapabilityCatalog.schema.json +41 -0
  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 +41 -1
  249. package/generated/ControlRunAgainDraft.schema.json +1 -1
  250. package/generated/ControlRunApplicabilityResponse.schema.json +217 -0
  251. package/generated/ControlRunDetail.schema.json +427 -66
  252. package/generated/ControlRunListResponse.schema.json +11 -2
  253. package/generated/ControlRunStartRequest.schema.json +1 -1
  254. package/generated/ControlRunSummary.schema.json +11 -2
  255. package/generated/ControlSettingsSnapshot.schema.json +12 -3
  256. package/generated/ControlSettingsUpdateRequest.schema.json +12 -3
  257. package/generated/ControlSetupJob.schema.json +9 -0
  258. package/generated/ControlSetupJobCreateRequest.schema.json +9 -0
  259. package/generated/ControlSetupJobEvent.schema.json +858 -758
  260. package/generated/ControlSetupJobListResponse.schema.json +9 -0
  261. package/generated/ControlSetupJobSnapshot.schema.json +811 -736
  262. package/generated/ControlThreadDetail.schema.json +19 -1
  263. package/generated/ControlThreadTurnRequest.schema.json +1 -24
  264. package/generated/DecisionRecord.schema.json +2 -1
  265. package/generated/GitCapability.schema.json +46 -0
  266. package/generated/GlobalConfig.schema.json +13 -4
  267. package/generated/HarnessEvent.schema.json +2 -1
  268. package/generated/HarnessManifest.schema.json +1 -1
  269. package/generated/HarnessStatusDto.schema.json +1 -1
  270. package/generated/McpRunHandleResult.schema.json +165 -1
  271. package/generated/McpRunToolResult.schema.json +165 -1
  272. package/generated/OutputReadyPayload.schema.json +44 -0
  273. package/generated/RunFacts.schema.json +569 -0
  274. package/generated/RunTelemetry.schema.json +492 -2
  275. package/generated/ThreadTurn.schema.json +17 -0
  276. package/generated/WorkProduct.schema.json +0 -4
  277. package/package.json +3 -3
@@ -582,7 +582,7 @@
582
582
  "validated",
583
583
  "absent"
584
584
  ],
585
- "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)."
586
586
  },
587
587
  "required_inputs": {
588
588
  "type": "array",
@@ -1116,7 +1116,497 @@
1116
1116
  "type": "null"
1117
1117
  }
1118
1118
  ],
1119
- "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.",
1120
1610
  "default": null
1121
1611
  },
1122
1612
  "generated_at": {
@@ -159,6 +159,23 @@
159
159
  "default": true,
160
160
  "description": "True when retry can replay this turn (a job was recorded before the failure); false when no job exists to replay."
161
161
  },
162
+ "required_actions": {
163
+ "type": "array",
164
+ "items": {
165
+ "type": "string",
166
+ "minLength": 1,
167
+ "maxLength": 512
168
+ },
169
+ "maxItems": 16,
170
+ "default": [],
171
+ "description": "Bounded user actions that may make an exact retry succeed."
172
+ },
173
+ "context": {
174
+ "type": "object",
175
+ "additionalProperties": {},
176
+ "default": {},
177
+ "description": "Bounded typed recovery context; never arbitrary provider or environment output."
178
+ },
162
179
  "failed_at": {
163
180
  "type": "string",
164
181
  "minLength": 1,
@@ -28,10 +28,6 @@
28
28
  "minLength": 1,
29
29
  "description": "Attempt that produced it, when known."
30
30
  },
31
- "evidence_dir": {
32
- "type": "string",
33
- "description": "Directory holding run evidence artifacts."
34
- },
35
31
  "files": {
36
32
  "type": "object",
37
33
  "additionalProperties": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@claudexor/schema",
3
- "version": "3.1.2",
3
+ "version": "3.2.0",
4
4
  "license": "MIT",
5
5
  "description": "Single source of truth for all Claudexor data shapes (Zod + generated JSON Schema).",
6
6
  "type": "module",
@@ -18,9 +18,9 @@
18
18
  "generated"
19
19
  ],
20
20
  "dependencies": {
21
- "zod": "^3.24.1",
21
+ "zod": "^4.4.3",
22
22
  "zod-to-json-schema": "^3.24.1",
23
- "@claudexor/util": "3.1.2"
23
+ "@claudexor/util": "3.2.0"
24
24
  },
25
25
  "repository": {
26
26
  "type": "git",