@claudexor/schema 4.7.0 → 4.8.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/account-resources.d.ts +37 -37
  2. package/dist/account-routing-evidence.d.ts +14 -14
  3. package/dist/attachment.d.ts +178 -0
  4. package/dist/attachment.d.ts.map +1 -1
  5. package/dist/attachment.js +46 -0
  6. package/dist/attachment.js.map +1 -1
  7. package/dist/captured-run-start.d.ts +1105 -0
  8. package/dist/captured-run-start.d.ts.map +1 -0
  9. package/dist/captured-run-start.js +41 -0
  10. package/dist/captured-run-start.js.map +1 -0
  11. package/dist/command-summary.d.ts +1 -1
  12. package/dist/command-summary.d.ts.map +1 -1
  13. package/dist/command-summary.js +1 -0
  14. package/dist/command-summary.js.map +1 -1
  15. package/dist/control-harness-models.js +1 -1
  16. package/dist/control-harness-models.js.map +1 -1
  17. package/dist/control-operation-responses.d.ts +201 -9
  18. package/dist/control-operation-responses.d.ts.map +1 -1
  19. package/dist/control-operation-responses.js +7 -1
  20. package/dist/control-operation-responses.js.map +1 -1
  21. package/dist/control-run-detail.d.ts +277 -19
  22. package/dist/control-run-detail.d.ts.map +1 -1
  23. package/dist/control-run-detail.js +2 -0
  24. package/dist/control-run-detail.js.map +1 -1
  25. package/dist/control-run-failure.d.ts +29 -4
  26. package/dist/control-run-failure.d.ts.map +1 -1
  27. package/dist/control-run-failure.js +3 -0
  28. package/dist/control-run-failure.js.map +1 -1
  29. package/dist/control-run-retry.d.ts +31 -0
  30. package/dist/control-run-retry.d.ts.map +1 -1
  31. package/dist/control-run-retry.js +12 -1
  32. package/dist/control-run-retry.js.map +1 -1
  33. package/dist/control.d.ts +69 -5
  34. package/dist/control.d.ts.map +1 -1
  35. package/dist/control.js +3 -7
  36. package/dist/control.js.map +1 -1
  37. package/dist/credential-profile-snapshot.d.ts +28 -28
  38. package/dist/credential-profile.d.ts +1 -1
  39. package/dist/credential-profile.js +2 -2
  40. package/dist/credential-profile.js.map +1 -1
  41. package/dist/credential-store.d.ts +3 -2
  42. package/dist/credential-store.d.ts.map +1 -1
  43. package/dist/credential-store.js +5 -4
  44. package/dist/credential-store.js.map +1 -1
  45. package/dist/deferred-message.d.ts +2450 -0
  46. package/dist/deferred-message.d.ts.map +1 -0
  47. package/dist/deferred-message.js +186 -0
  48. package/dist/deferred-message.js.map +1 -0
  49. package/dist/events.d.ts +3 -3
  50. package/dist/events.js +1 -1
  51. package/dist/events.js.map +1 -1
  52. package/dist/harness-input.d.ts +15 -0
  53. package/dist/harness-input.d.ts.map +1 -1
  54. package/dist/harness-input.js +10 -1
  55. package/dist/harness-input.js.map +1 -1
  56. package/dist/harness-model.d.ts +65 -0
  57. package/dist/harness-model.d.ts.map +1 -1
  58. package/dist/harness-model.js +42 -0
  59. package/dist/harness-model.js.map +1 -1
  60. package/dist/harness-quota.d.ts +3 -3
  61. package/dist/harness.d.ts +61 -9
  62. package/dist/harness.d.ts.map +1 -1
  63. package/dist/harness.js +2 -2
  64. package/dist/harness.js.map +1 -1
  65. package/dist/index.d.ts +8 -0
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +8 -0
  68. package/dist/index.js.map +1 -1
  69. package/dist/mcp-run-result.d.ts +356 -12
  70. package/dist/mcp-run-result.d.ts.map +1 -1
  71. package/dist/mcp-run-result.js +5 -0
  72. package/dist/mcp-run-result.js.map +1 -1
  73. package/dist/mcp-run-wait.d.ts +133 -0
  74. package/dist/mcp-run-wait.d.ts.map +1 -1
  75. package/dist/mcp-run-wait.js +4 -0
  76. package/dist/mcp-run-wait.js.map +1 -1
  77. package/dist/mcp-upload.d.ts +133 -0
  78. package/dist/mcp-upload.d.ts.map +1 -0
  79. package/dist/mcp-upload.js +40 -0
  80. package/dist/mcp-upload.js.map +1 -0
  81. package/dist/quota-read.d.ts +8 -8
  82. package/dist/quota.d.ts +26 -20
  83. package/dist/quota.d.ts.map +1 -1
  84. package/dist/quota.js +11 -1
  85. package/dist/quota.js.map +1 -1
  86. package/dist/run-observation.d.ts +189 -0
  87. package/dist/run-observation.d.ts.map +1 -0
  88. package/dist/run-observation.js +93 -0
  89. package/dist/run-observation.js.map +1 -0
  90. package/dist/setup-login.d.ts +5 -5
  91. package/dist/setup.d.ts +63 -63
  92. package/dist/setup.d.ts.map +1 -1
  93. package/dist/setup.js +1 -1
  94. package/dist/setup.js.map +1 -1
  95. package/dist/task-group-runs.d.ts +257 -0
  96. package/dist/task-group-runs.d.ts.map +1 -0
  97. package/dist/task-group-runs.js +91 -0
  98. package/dist/task-group-runs.js.map +1 -0
  99. package/dist/task-group.d.ts +23 -0
  100. package/dist/task-group.d.ts.map +1 -0
  101. package/dist/task-group.js +38 -0
  102. package/dist/task-group.js.map +1 -0
  103. package/dist/telemetry.d.ts +136 -8
  104. package/dist/telemetry.d.ts.map +1 -1
  105. package/dist/telemetry.js +2 -5
  106. package/dist/telemetry.js.map +1 -1
  107. package/dist/thread-history.d.ts +12553 -0
  108. package/dist/thread-history.d.ts.map +1 -0
  109. package/dist/thread-history.js +291 -0
  110. package/dist/thread-history.js.map +1 -0
  111. package/generated/ControlAccountResetResponse.schema.json +1 -0
  112. package/generated/ControlAccountResourcesFreshnessResponse.schema.json +1 -0
  113. package/generated/ControlAccountResourcesResponse.schema.json +1 -0
  114. package/generated/ControlCredentialProfileCreateRequest.schema.json +1 -1
  115. package/generated/ControlCredentialProfilesQueryResponse.schema.json +1 -0
  116. package/generated/ControlCredentialProfilesResourcesResponse.schema.json +1 -0
  117. package/generated/ControlCredentialProfilesSnapshotResponse.schema.json +1 -0
  118. package/generated/ControlQueuedRunInfo.schema.json +10 -0
  119. package/generated/ControlQuotaFreshnessResponse.schema.json +1 -0
  120. package/generated/ControlQuotaQueryResponse.schema.json +1 -0
  121. package/generated/ControlQuotaResponse.schema.json +1 -0
  122. package/generated/ControlRunAgainDraft.schema.json +5 -0
  123. package/generated/ControlRunControlResponse.schema.json +169 -0
  124. package/generated/ControlRunDetail.schema.json +208 -1
  125. package/generated/ControlRunListResponse.schema.json +31 -1
  126. package/generated/ControlRunRetryResponse.schema.json +10 -0
  127. package/generated/ControlRunStartInfo.schema.json +10 -0
  128. package/generated/ControlRunStartRequest.schema.json +5 -0
  129. package/generated/ControlRunStartResponse.schema.json +18 -0
  130. package/generated/ControlRunSummary.schema.json +31 -1
  131. package/generated/ControlSetupJob.schema.json +2 -1
  132. package/generated/ControlSetupJobCreateRequest.schema.json +2 -1
  133. package/generated/ControlSetupJobEvent.schema.json +2 -1
  134. package/generated/ControlSetupJobListFilter.schema.json +2 -1
  135. package/generated/ControlSetupJobListResponse.schema.json +2 -1
  136. package/generated/ControlSetupJobSnapshot.schema.json +2 -1
  137. package/generated/ControlUploadImport.schema.json +124 -0
  138. package/generated/ControlUploadImportRequest.schema.json +66 -0
  139. package/generated/DeferredMessageCall.schema.json +331 -0
  140. package/generated/DeferredMessageDetail.schema.json +917 -0
  141. package/generated/DeferredMessageMutation.schema.json +315 -0
  142. package/generated/DeferredMessageProjection.schema.json +177 -0
  143. package/generated/DeferredMessageReadInput.schema.json +20 -0
  144. package/generated/DeferredMessageReadResult.schema.json +399 -0
  145. package/generated/DeferredMessageReceipt.schema.json +193 -0
  146. package/generated/HarnessEvent.schema.json +75 -1
  147. package/generated/McpAccountsToolResult.schema.json +1 -0
  148. package/generated/McpRunHandleResult.schema.json +226 -19
  149. package/generated/McpRunToolResult.schema.json +228 -11
  150. package/generated/McpRunWaitResult.schema.json +180 -2
  151. package/generated/McpStoreIdentityInput.schema.json +11 -0
  152. package/generated/McpUploadCreateInput.schema.json +54 -0
  153. package/generated/McpUploadFinalizeInput.schema.json +40 -0
  154. package/generated/McpUploadImportInput.schema.json +52 -0
  155. package/generated/McpUploadImportLocalInput.schema.json +27 -0
  156. package/generated/McpUploadImportLocalResult.schema.json +45 -0
  157. package/generated/McpUploadTargetInput.schema.json +20 -0
  158. package/generated/ResourceAttachmentRef.schema.json +21 -0
  159. package/generated/RoutePrimaryDivergedPayload.schema.json +23 -14
  160. package/generated/RunFailure.schema.json +31 -1
  161. package/generated/RunObservationRecord.schema.json +64 -0
  162. package/generated/RunTelemetry.schema.json +83 -1
  163. package/generated/RunWaitManyInput.schema.json +47 -0
  164. package/generated/RunWaitManyResult.schema.json +110 -0
  165. package/generated/RunWaitManySummary.schema.json +75 -0
  166. package/generated/TaskGroupId.schema.json +11 -0
  167. package/generated/TaskGroupReceipt.schema.json +26 -0
  168. package/generated/TaskGroupRunsInput.schema.json +46 -0
  169. package/generated/TaskGroupRunsResult.schema.json +162 -0
  170. package/generated/ThreadHistoryInput.schema.json +48 -0
  171. package/generated/ThreadHistoryPage.schema.json +2857 -0
  172. package/generated/ThreadPromptPart.schema.json +57 -0
  173. package/generated/ThreadPromptPartInput.schema.json +41 -0
  174. package/package.json +2 -2
@@ -0,0 +1,399 @@
1
+ {
2
+ "$ref": "#/definitions/DeferredMessageReadResult",
3
+ "definitions": {
4
+ "DeferredMessageReadResult": {
5
+ "type": "object",
6
+ "properties": {
7
+ "draft": {
8
+ "type": "object",
9
+ "properties": {
10
+ "draftId": {
11
+ "type": "string",
12
+ "minLength": 1,
13
+ "description": "Non-empty identifier string."
14
+ },
15
+ "revision": {
16
+ "type": "integer",
17
+ "exclusiveMinimum": 0,
18
+ "maximum": 9007199254740991
19
+ },
20
+ "state": {
21
+ "type": "string",
22
+ "enum": [
23
+ "waiting",
24
+ "held",
25
+ "dispatched",
26
+ "cleared"
27
+ ]
28
+ },
29
+ "predecessorJobId": {
30
+ "$ref": "#/definitions/DeferredMessageReadResult/properties/draft/properties/draftId"
31
+ },
32
+ "predecessorRunId": {
33
+ "anyOf": [
34
+ {
35
+ "$ref": "#/definitions/DeferredMessageReadResult/properties/draft/properties/draftId"
36
+ },
37
+ {
38
+ "type": "null"
39
+ }
40
+ ],
41
+ "description": "Non-empty identifier string."
42
+ },
43
+ "predecessorResult": {
44
+ "type": "string",
45
+ "description": "Existing addressed run-detail/result path; no duplicate result store."
46
+ },
47
+ "hold": {
48
+ "anyOf": [
49
+ {
50
+ "type": "object",
51
+ "properties": {
52
+ "code": {
53
+ "type": "string",
54
+ "enum": [
55
+ "predecessor_failed",
56
+ "predecessor_cancelled",
57
+ "predecessor_interrupted",
58
+ "predecessor_needs_input",
59
+ "predecessor_incomplete",
60
+ "predecessor_facts_unavailable",
61
+ "predecessor_work_unverified",
62
+ "predecessor_checks_failed",
63
+ "predecessor_review_blocked",
64
+ "predecessor_output_unavailable",
65
+ "settlement_unknown",
66
+ "stop_requested",
67
+ "shutdown",
68
+ "restart_requires_controller",
69
+ "partition_retired",
70
+ "admission_refused"
71
+ ]
72
+ },
73
+ "problem": {
74
+ "type": "object",
75
+ "properties": {
76
+ "message": {
77
+ "type": "string",
78
+ "description": "Human-readable refusal message."
79
+ },
80
+ "code": {
81
+ "type": [
82
+ "string",
83
+ "null"
84
+ ],
85
+ "default": null,
86
+ "description": "Machine-readable refusal code carried from the throwing gate; null when the failure had no typed code."
87
+ },
88
+ "retryable": {
89
+ "type": "boolean",
90
+ "default": true,
91
+ "description": "True when retry can replay this turn (a job was recorded before the failure); false when no job exists to replay."
92
+ },
93
+ "required_actions": {
94
+ "type": "array",
95
+ "items": {
96
+ "type": "string",
97
+ "minLength": 1,
98
+ "maxLength": 512
99
+ },
100
+ "maxItems": 16,
101
+ "default": [],
102
+ "description": "Bounded user actions that may make an exact retry succeed."
103
+ },
104
+ "context": {
105
+ "type": "object",
106
+ "additionalProperties": {},
107
+ "default": {},
108
+ "description": "Bounded typed recovery context; never arbitrary provider or environment output."
109
+ }
110
+ },
111
+ "required": [
112
+ "message"
113
+ ],
114
+ "additionalProperties": false,
115
+ "description": "Typed, sanitized problem for a thread turn that could not start."
116
+ }
117
+ },
118
+ "required": [
119
+ "code"
120
+ ],
121
+ "additionalProperties": false,
122
+ "description": "Stable hold. Editing, observation and readiness restoration never rearm it; inspect the predecessor result and clear before an ordinary continuation."
123
+ },
124
+ {
125
+ "type": "null"
126
+ }
127
+ ],
128
+ "description": "Stable hold. Editing, observation and readiness restoration never rearm it; inspect the predecessor result and clear before an ordinary continuation."
129
+ },
130
+ "dispatchedRevision": {
131
+ "anyOf": [
132
+ {
133
+ "$ref": "#/definitions/DeferredMessageReadResult/properties/draft/properties/revision"
134
+ },
135
+ {
136
+ "type": "null"
137
+ }
138
+ ]
139
+ },
140
+ "successorJobId": {
141
+ "anyOf": [
142
+ {
143
+ "$ref": "#/definitions/DeferredMessageReadResult/properties/draft/properties/draftId"
144
+ },
145
+ {
146
+ "type": "null"
147
+ }
148
+ ],
149
+ "description": "Non-empty identifier string."
150
+ },
151
+ "successorRunId": {
152
+ "anyOf": [
153
+ {
154
+ "$ref": "#/definitions/DeferredMessageReadResult/properties/draft/properties/draftId"
155
+ },
156
+ {
157
+ "type": "null"
158
+ }
159
+ ],
160
+ "description": "Non-empty identifier string."
161
+ }
162
+ },
163
+ "required": [
164
+ "draftId",
165
+ "revision",
166
+ "state",
167
+ "predecessorJobId",
168
+ "predecessorRunId",
169
+ "predecessorResult",
170
+ "hold",
171
+ "dispatchedRevision",
172
+ "successorJobId",
173
+ "successorRunId"
174
+ ],
175
+ "additionalProperties": false,
176
+ "description": "Compact addressed draft state, with exact predecessor result and successor handles. A terminal predecessor does not imply the draft has resolved."
177
+ },
178
+ "promptPreview": {
179
+ "type": "string"
180
+ },
181
+ "promptBytes": {
182
+ "type": "integer",
183
+ "minimum": 0
184
+ },
185
+ "omittedPromptBytes": {
186
+ "type": "integer",
187
+ "minimum": 0
188
+ },
189
+ "attachments": {
190
+ "type": "array",
191
+ "items": {
192
+ "type": "object",
193
+ "properties": {
194
+ "resourceId": {
195
+ "type": "string",
196
+ "minLength": 1,
197
+ "description": "Immutable daemon resource id returned by upload finalize."
198
+ }
199
+ },
200
+ "required": [
201
+ "resourceId"
202
+ ],
203
+ "additionalProperties": false,
204
+ "description": "Reference to an immutable daemon-owned uploaded resource."
205
+ },
206
+ "maxItems": 32
207
+ },
208
+ "omittedAttachments": {
209
+ "type": "integer",
210
+ "minimum": 0
211
+ },
212
+ "controls": {
213
+ "anyOf": [
214
+ {
215
+ "type": "object",
216
+ "properties": {
217
+ "capturedAt": {
218
+ "type": "string",
219
+ "minLength": 1,
220
+ "description": "Draft creation; edits never recapture controls."
221
+ },
222
+ "inherited": {
223
+ "type": "object",
224
+ "additionalProperties": {},
225
+ "description": "Continuation-inherited groups from the predecessor's accepted request (mode, scope, execution, harness and model groups, promptCacheTtl); omitted per-harness models were completed from Settings at creation."
226
+ },
227
+ "resolved": {
228
+ "type": "object",
229
+ "additionalProperties": {},
230
+ "description": "Create-time controls as captured: explicit draft controls, otherwise ordinary new-run defaults at creation, never the predecessor's value. An omitted access is the project's default access at creation, not the predecessor's."
231
+ },
232
+ "settings": {
233
+ "anyOf": [
234
+ {
235
+ "type": "object",
236
+ "properties": {
237
+ "harnesses": {
238
+ "type": "object",
239
+ "additionalProperties": {
240
+ "type": "object",
241
+ "properties": {
242
+ "default_model": {
243
+ "type": [
244
+ "string",
245
+ "null"
246
+ ],
247
+ "default": null,
248
+ "description": "Per-harness default model; null = the harness's own default."
249
+ },
250
+ "effort": {
251
+ "anyOf": [
252
+ {
253
+ "type": "string",
254
+ "minLength": 1,
255
+ "maxLength": 32,
256
+ "pattern": "^[a-z0-9]+(?:[_-][a-z0-9]+)*$",
257
+ "description": "Cross-harness reasoning-effort level as a lowercase slug (open vocabulary, mirroring the vendor contract); adapters advertise the levels they accept per model, ordered weakest to strongest by the vendor itself, and a shared normalizer passes advertised levels through, clamps inside the vendor order, places a word the vendor order lacks by the shared preference order (none < minimal < low < medium < high < xhigh < max < ultra) onto an advertised level, and refuses words neither order places."
258
+ },
259
+ {
260
+ "type": "null"
261
+ }
262
+ ],
263
+ "description": "Default reasoning effort for the harness; null = harness default.",
264
+ "default": null
265
+ },
266
+ "max_turns": {
267
+ "anyOf": [
268
+ {
269
+ "type": "integer",
270
+ "exclusiveMinimum": 0
271
+ },
272
+ {
273
+ "type": "null"
274
+ }
275
+ ],
276
+ "default": null,
277
+ "description": "Default max agent turns; null = no limit."
278
+ },
279
+ "max_rounds": {
280
+ "anyOf": [
281
+ {
282
+ "type": "integer",
283
+ "exclusiveMinimum": 0
284
+ },
285
+ {
286
+ "type": "null"
287
+ }
288
+ ],
289
+ "default": null,
290
+ "description": "Default max convergence rounds; null = engine default."
291
+ },
292
+ "fallback_model": {
293
+ "type": [
294
+ "string",
295
+ "null"
296
+ ],
297
+ "default": null,
298
+ "description": "Model to fall back to on typed fallback signals; null = none."
299
+ },
300
+ "web": {
301
+ "type": "string",
302
+ "enum": [
303
+ "off",
304
+ "auto",
305
+ "cached",
306
+ "live"
307
+ ],
308
+ "description": "Default web policy for this harness.",
309
+ "default": "auto"
310
+ },
311
+ "auth_preference": {
312
+ "type": "string",
313
+ "enum": [
314
+ "subscription",
315
+ "api_key",
316
+ "auto"
317
+ ],
318
+ "description": "Preferred auth route: subscription (native/OAuth session), api_key (a stored API key), or auto (engine picks subscription-first with policy fallback). A preference, not a secret.",
319
+ "default": "auto"
320
+ }
321
+ },
322
+ "additionalProperties": false,
323
+ "description": "Per-harness settings."
324
+ }
325
+ },
326
+ "eligibleHarnesses": {
327
+ "type": "array",
328
+ "items": {
329
+ "type": "string",
330
+ "minLength": 1,
331
+ "pattern": "\\S",
332
+ "description": "User-supplied string that must contain visible content, not just whitespace."
333
+ }
334
+ },
335
+ "primaryHarness": {
336
+ "anyOf": [
337
+ {
338
+ "$ref": "#/definitions/DeferredMessageReadResult/properties/controls/anyOf/0/properties/settings/anyOf/0/properties/eligibleHarnesses/items"
339
+ },
340
+ {
341
+ "type": "null"
342
+ }
343
+ ],
344
+ "description": "User-supplied string that must contain visible content, not just whitespace."
345
+ },
346
+ "authPreference": {
347
+ "$ref": "#/definitions/DeferredMessageReadResult/properties/controls/anyOf/0/properties/settings/anyOf/0/properties/harnesses/additionalProperties/properties/auth_preference"
348
+ }
349
+ },
350
+ "required": [
351
+ "harnesses",
352
+ "eligibleHarnesses",
353
+ "primaryHarness",
354
+ "authPreference"
355
+ ],
356
+ "additionalProperties": false
357
+ },
358
+ {
359
+ "type": "null"
360
+ }
361
+ ],
362
+ "description": "Settings execution preferences captured at creation (per-harness defaults, eligible and primary harness, auth preference), used at dispatch instead of current values."
363
+ }
364
+ },
365
+ "required": [
366
+ "capturedAt",
367
+ "inherited",
368
+ "resolved",
369
+ "settings"
370
+ ],
371
+ "additionalProperties": false,
372
+ "description": "Frozen effective controls. Dispatch reads tool permissions, account and harness enablement, trust, quota, capabilities, paid-fallback policy and other settings afresh; a refusal holds the draft."
373
+ },
374
+ {
375
+ "type": "null"
376
+ }
377
+ ],
378
+ "description": "Null after clear."
379
+ },
380
+ "detailPath": {
381
+ "type": "string"
382
+ }
383
+ },
384
+ "required": [
385
+ "draft",
386
+ "promptPreview",
387
+ "promptBytes",
388
+ "omittedPromptBytes",
389
+ "attachments",
390
+ "omittedAttachments",
391
+ "controls",
392
+ "detailPath"
393
+ ],
394
+ "additionalProperties": false,
395
+ "description": "Bounded editable-content snapshot. Read the exact predecessorResult path (or claudexor_run_result for its job/run handle) for predecessor output; output is never duplicated here. Terminal predecessor observation does not imply draft resolution."
396
+ }
397
+ },
398
+ "$schema": "http://json-schema.org/draft-07/schema#"
399
+ }
@@ -0,0 +1,193 @@
1
+ {
2
+ "$ref": "#/definitions/DeferredMessageReceipt",
3
+ "definitions": {
4
+ "DeferredMessageReceipt": {
5
+ "type": "object",
6
+ "properties": {
7
+ "appliedRevision": {
8
+ "type": "integer",
9
+ "exclusiveMinimum": 0,
10
+ "maximum": 9007199254740991,
11
+ "description": "The exact revision originally applied by this idempotency key."
12
+ },
13
+ "draft": {
14
+ "type": "object",
15
+ "properties": {
16
+ "draftId": {
17
+ "type": "string",
18
+ "minLength": 1,
19
+ "description": "Non-empty identifier string."
20
+ },
21
+ "revision": {
22
+ "type": "integer",
23
+ "exclusiveMinimum": 0,
24
+ "maximum": 9007199254740991
25
+ },
26
+ "state": {
27
+ "type": "string",
28
+ "enum": [
29
+ "waiting",
30
+ "held",
31
+ "dispatched",
32
+ "cleared"
33
+ ]
34
+ },
35
+ "predecessorJobId": {
36
+ "$ref": "#/definitions/DeferredMessageReceipt/properties/draft/properties/draftId"
37
+ },
38
+ "predecessorRunId": {
39
+ "anyOf": [
40
+ {
41
+ "$ref": "#/definitions/DeferredMessageReceipt/properties/draft/properties/draftId"
42
+ },
43
+ {
44
+ "type": "null"
45
+ }
46
+ ],
47
+ "description": "Non-empty identifier string."
48
+ },
49
+ "predecessorResult": {
50
+ "type": "string",
51
+ "description": "Existing addressed run-detail/result path; no duplicate result store."
52
+ },
53
+ "hold": {
54
+ "anyOf": [
55
+ {
56
+ "type": "object",
57
+ "properties": {
58
+ "code": {
59
+ "type": "string",
60
+ "enum": [
61
+ "predecessor_failed",
62
+ "predecessor_cancelled",
63
+ "predecessor_interrupted",
64
+ "predecessor_needs_input",
65
+ "predecessor_incomplete",
66
+ "predecessor_facts_unavailable",
67
+ "predecessor_work_unverified",
68
+ "predecessor_checks_failed",
69
+ "predecessor_review_blocked",
70
+ "predecessor_output_unavailable",
71
+ "settlement_unknown",
72
+ "stop_requested",
73
+ "shutdown",
74
+ "restart_requires_controller",
75
+ "partition_retired",
76
+ "admission_refused"
77
+ ]
78
+ },
79
+ "problem": {
80
+ "type": "object",
81
+ "properties": {
82
+ "message": {
83
+ "type": "string",
84
+ "description": "Human-readable refusal message."
85
+ },
86
+ "code": {
87
+ "type": [
88
+ "string",
89
+ "null"
90
+ ],
91
+ "default": null,
92
+ "description": "Machine-readable refusal code carried from the throwing gate; null when the failure had no typed code."
93
+ },
94
+ "retryable": {
95
+ "type": "boolean",
96
+ "default": true,
97
+ "description": "True when retry can replay this turn (a job was recorded before the failure); false when no job exists to replay."
98
+ },
99
+ "required_actions": {
100
+ "type": "array",
101
+ "items": {
102
+ "type": "string",
103
+ "minLength": 1,
104
+ "maxLength": 512
105
+ },
106
+ "maxItems": 16,
107
+ "default": [],
108
+ "description": "Bounded user actions that may make an exact retry succeed."
109
+ },
110
+ "context": {
111
+ "type": "object",
112
+ "additionalProperties": {},
113
+ "default": {},
114
+ "description": "Bounded typed recovery context; never arbitrary provider or environment output."
115
+ }
116
+ },
117
+ "required": [
118
+ "message"
119
+ ],
120
+ "additionalProperties": false,
121
+ "description": "Typed, sanitized problem for a thread turn that could not start."
122
+ }
123
+ },
124
+ "required": [
125
+ "code"
126
+ ],
127
+ "additionalProperties": false,
128
+ "description": "Stable hold. Editing, observation and readiness restoration never rearm it; inspect the predecessor result and clear before an ordinary continuation."
129
+ },
130
+ {
131
+ "type": "null"
132
+ }
133
+ ],
134
+ "description": "Stable hold. Editing, observation and readiness restoration never rearm it; inspect the predecessor result and clear before an ordinary continuation."
135
+ },
136
+ "dispatchedRevision": {
137
+ "anyOf": [
138
+ {
139
+ "$ref": "#/definitions/DeferredMessageReceipt/properties/draft/properties/revision"
140
+ },
141
+ {
142
+ "type": "null"
143
+ }
144
+ ]
145
+ },
146
+ "successorJobId": {
147
+ "anyOf": [
148
+ {
149
+ "$ref": "#/definitions/DeferredMessageReceipt/properties/draft/properties/draftId"
150
+ },
151
+ {
152
+ "type": "null"
153
+ }
154
+ ],
155
+ "description": "Non-empty identifier string."
156
+ },
157
+ "successorRunId": {
158
+ "anyOf": [
159
+ {
160
+ "$ref": "#/definitions/DeferredMessageReceipt/properties/draft/properties/draftId"
161
+ },
162
+ {
163
+ "type": "null"
164
+ }
165
+ ],
166
+ "description": "Non-empty identifier string."
167
+ }
168
+ },
169
+ "required": [
170
+ "draftId",
171
+ "revision",
172
+ "state",
173
+ "predecessorJobId",
174
+ "predecessorRunId",
175
+ "predecessorResult",
176
+ "hold",
177
+ "dispatchedRevision",
178
+ "successorJobId",
179
+ "successorRunId"
180
+ ],
181
+ "additionalProperties": false,
182
+ "description": "Compact addressed draft state, with exact predecessor result and successor handles. A terminal predecessor does not imply the draft has resolved."
183
+ }
184
+ },
185
+ "required": [
186
+ "appliedRevision",
187
+ "draft"
188
+ ],
189
+ "additionalProperties": false
190
+ }
191
+ },
192
+ "$schema": "http://json-schema.org/draft-07/schema#"
193
+ }