@claudexor/schema 1.0.0 → 2.0.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 (248) hide show
  1. package/dist/agent-capabilities.d.ts +88 -16
  2. package/dist/agent-capabilities.d.ts.map +1 -1
  3. package/dist/agent-capabilities.js +49 -18
  4. package/dist/agent-capabilities.js.map +1 -1
  5. package/dist/apply-eligibility.d.ts.map +1 -1
  6. package/dist/apply-eligibility.js +22 -6
  7. package/dist/apply-eligibility.js.map +1 -1
  8. package/dist/attachment.d.ts +113 -48
  9. package/dist/attachment.d.ts.map +1 -1
  10. package/dist/attachment.js +60 -45
  11. package/dist/attachment.js.map +1 -1
  12. package/dist/auth.d.ts +1423 -0
  13. package/dist/auth.d.ts.map +1 -0
  14. package/dist/auth.js +317 -0
  15. package/dist/auth.js.map +1 -0
  16. package/dist/budget.d.ts +133 -16
  17. package/dist/budget.d.ts.map +1 -1
  18. package/dist/budget.js +65 -22
  19. package/dist/budget.js.map +1 -1
  20. package/dist/config.d.ts +449 -115
  21. package/dist/config.d.ts.map +1 -1
  22. package/dist/config.js +114 -41
  23. package/dist/config.js.map +1 -1
  24. package/dist/context.d.ts +6 -6
  25. package/dist/context.d.ts.map +1 -1
  26. package/dist/context.js +31 -7
  27. package/dist/context.js.map +1 -1
  28. package/dist/control-operation-responses.d.ts +1172 -0
  29. package/dist/control-operation-responses.d.ts.map +1 -0
  30. package/dist/control-operation-responses.js +35 -0
  31. package/dist/control-operation-responses.js.map +1 -0
  32. package/dist/control-run-detail.d.ts +443 -242
  33. package/dist/control-run-detail.d.ts.map +1 -1
  34. package/dist/control-run-detail.js +72 -17
  35. package/dist/control-run-detail.js.map +1 -1
  36. package/dist/control-run-retry.d.ts +88 -0
  37. package/dist/control-run-retry.d.ts.map +1 -0
  38. package/dist/control-run-retry.js +40 -0
  39. package/dist/control-run-retry.js.map +1 -0
  40. package/dist/control-run-scope.d.ts +25 -0
  41. package/dist/control-run-scope.d.ts.map +1 -0
  42. package/dist/control-run-scope.js +22 -0
  43. package/dist/control-run-scope.js.map +1 -0
  44. package/dist/control-secret.d.ts +90 -0
  45. package/dist/control-secret.d.ts.map +1 -0
  46. package/dist/control-secret.js +35 -0
  47. package/dist/control-secret.js.map +1 -0
  48. package/dist/control-spec.d.ts +592 -0
  49. package/dist/control-spec.d.ts.map +1 -0
  50. package/dist/control-spec.js +85 -0
  51. package/dist/control-spec.js.map +1 -0
  52. package/dist/control-thread-apply.d.ts +175 -0
  53. package/dist/control-thread-apply.d.ts.map +1 -0
  54. package/dist/control-thread-apply.js +31 -0
  55. package/dist/control-thread-apply.js.map +1 -0
  56. package/dist/control-trust.d.ts +74 -10
  57. package/dist/control-trust.d.ts.map +1 -1
  58. package/dist/control-trust.js +31 -11
  59. package/dist/control-trust.js.map +1 -1
  60. package/dist/control.d.ts +1391 -878
  61. package/dist/control.d.ts.map +1 -1
  62. package/dist/control.js +468 -310
  63. package/dist/control.js.map +1 -1
  64. package/dist/decision.d.ts +10 -10
  65. package/dist/decision.d.ts.map +1 -1
  66. package/dist/decision.js +62 -15
  67. package/dist/decision.js.map +1 -1
  68. package/dist/delivery.d.ts +99 -0
  69. package/dist/delivery.d.ts.map +1 -0
  70. package/dist/delivery.js +19 -0
  71. package/dist/delivery.js.map +1 -0
  72. package/dist/events.d.ts +25 -2
  73. package/dist/events.d.ts.map +1 -1
  74. package/dist/events.js +25 -4
  75. package/dist/events.js.map +1 -1
  76. package/dist/gate.d.ts +2 -2
  77. package/dist/gate.d.ts.map +1 -1
  78. package/dist/gate.js +25 -5
  79. package/dist/gate.js.map +1 -1
  80. package/dist/harness.d.ts +558 -175
  81. package/dist/harness.d.ts.map +1 -1
  82. package/dist/harness.js +207 -82
  83. package/dist/harness.js.map +1 -1
  84. package/dist/index.d.ts +15 -0
  85. package/dist/index.d.ts.map +1 -1
  86. package/dist/index.js +15 -0
  87. package/dist/index.js.map +1 -1
  88. package/dist/operation.d.ts +185 -0
  89. package/dist/operation.d.ts.map +1 -0
  90. package/dist/operation.js +50 -0
  91. package/dist/operation.js.map +1 -0
  92. package/dist/orchestrate.d.ts +127 -22
  93. package/dist/orchestrate.d.ts.map +1 -1
  94. package/dist/orchestrate.js +61 -7
  95. package/dist/orchestrate.js.map +1 -1
  96. package/dist/primitives.d.ts.map +1 -1
  97. package/dist/primitives.js +4 -1
  98. package/dist/primitives.js.map +1 -1
  99. package/dist/problem.d.ts +29 -0
  100. package/dist/problem.d.ts.map +1 -0
  101. package/dist/problem.js +17 -0
  102. package/dist/problem.js.map +1 -0
  103. package/dist/project.d.ts +97 -0
  104. package/dist/project.d.ts.map +1 -0
  105. package/dist/project.js +27 -0
  106. package/dist/project.js.map +1 -0
  107. package/dist/quota.d.ts +251 -0
  108. package/dist/quota.d.ts.map +1 -0
  109. package/dist/quota.js +46 -0
  110. package/dist/quota.js.map +1 -0
  111. package/dist/raw.d.ts +195 -0
  112. package/dist/raw.d.ts.map +1 -0
  113. package/dist/raw.js +58 -0
  114. package/dist/raw.js.map +1 -0
  115. package/dist/recovery.d.ts +515 -0
  116. package/dist/recovery.d.ts.map +1 -0
  117. package/dist/recovery.js +93 -0
  118. package/dist/recovery.js.map +1 -0
  119. package/dist/request-requirements.d.ts +36 -0
  120. package/dist/request-requirements.d.ts.map +1 -0
  121. package/dist/request-requirements.js +26 -0
  122. package/dist/request-requirements.js.map +1 -0
  123. package/dist/review.d.ts +26 -26
  124. package/dist/review.d.ts.map +1 -1
  125. package/dist/review.js +50 -10
  126. package/dist/review.js.map +1 -1
  127. package/dist/route.d.ts +10 -10
  128. package/dist/route.d.ts.map +1 -1
  129. package/dist/route.js +19 -4
  130. package/dist/route.js.map +1 -1
  131. package/dist/setup.d.ts +9766 -0
  132. package/dist/setup.d.ts.map +1 -0
  133. package/dist/setup.js +450 -0
  134. package/dist/setup.js.map +1 -0
  135. package/dist/spec.d.ts +174 -57
  136. package/dist/spec.d.ts.map +1 -1
  137. package/dist/spec.js +69 -16
  138. package/dist/spec.js.map +1 -1
  139. package/dist/surface-run-controls.d.ts.map +1 -1
  140. package/dist/surface-run-controls.js +25 -21
  141. package/dist/surface-run-controls.js.map +1 -1
  142. package/dist/task.d.ts +1560 -58
  143. package/dist/task.d.ts.map +1 -1
  144. package/dist/task.js +97 -18
  145. package/dist/task.js.map +1 -1
  146. package/dist/telemetry.d.ts +233 -60
  147. package/dist/telemetry.d.ts.map +1 -1
  148. package/dist/telemetry.js +97 -15
  149. package/dist/telemetry.js.map +1 -1
  150. package/dist/thread.d.ts +68 -41
  151. package/dist/thread.d.ts.map +1 -1
  152. package/dist/thread.js +45 -11
  153. package/dist/thread.js.map +1 -1
  154. package/dist/workproduct.d.ts +3 -3
  155. package/dist/workproduct.d.ts.map +1 -1
  156. package/dist/workproduct.js.map +1 -1
  157. package/dist/workspace.d.ts +1 -1
  158. package/dist/workspace.d.ts.map +1 -1
  159. package/dist/workspace.js +12 -3
  160. package/dist/workspace.js.map +1 -1
  161. package/generated/AgentCapabilityCatalog.schema.json +53 -11
  162. package/generated/BudgetLease.schema.json +55 -6
  163. package/generated/BudgetObservation.schema.json +28 -7
  164. package/generated/ConformanceReport.schema.json +49 -0
  165. package/generated/ControlApplyCheckResponse.schema.json +34 -0
  166. package/generated/ControlArtifactListResponse.schema.json +57 -0
  167. package/generated/ControlAuthReadinessRefreshRequest.schema.json +38 -0
  168. package/generated/ControlAuthReadinessRefreshResponse.schema.json +85 -0
  169. package/generated/ControlDeliveryResponse.schema.json +136 -0
  170. package/generated/ControlHandshakeRequest.schema.json +26 -0
  171. package/generated/ControlHandshakeResponse.schema.json +30 -0
  172. package/generated/ControlHarnessListResponse.schema.json +103 -12
  173. package/generated/ControlHarnessSettingsPatch.schema.json +0 -12
  174. package/generated/ControlJournalEvent.schema.json +42 -0
  175. package/generated/ControlJournalExportReceipt.schema.json +49 -0
  176. package/generated/ControlJournalInspection.schema.json +149 -0
  177. package/generated/ControlJournalQuarantineReceipt.schema.json +55 -0
  178. package/generated/ControlJournalQuarantineRequest.schema.json +24 -0
  179. package/generated/ControlJournalValidation.schema.json +181 -0
  180. package/generated/ControlOperationCatalog.schema.json +128 -0
  181. package/generated/ControlOperationDescriptor.schema.json +110 -0
  182. package/generated/ControlProblem.schema.json +59 -0
  183. package/generated/ControlProject.schema.json +42 -0
  184. package/generated/ControlProjectListResponse.schema.json +54 -0
  185. package/generated/ControlProjectRegisterRequest.schema.json +19 -0
  186. package/generated/ControlProjectRelinkRequest.schema.json +19 -0
  187. package/generated/ControlQueuedRunInfo.schema.json +4 -2
  188. package/generated/ControlQuotaResponse.schema.json +176 -0
  189. package/generated/ControlResource.schema.json +59 -0
  190. package/generated/ControlRunAgainDraft.schema.json +499 -0
  191. package/generated/ControlRunDetail.schema.json +197 -30
  192. package/generated/ControlRunListResponse.schema.json +797 -0
  193. package/generated/ControlRunRetryResponse.schema.json +54 -0
  194. package/generated/ControlRunStartRequest.schema.json +83 -55
  195. package/generated/ControlRunStartResponse.schema.json +78 -0
  196. package/generated/ControlRunSummary.schema.json +140 -20
  197. package/generated/ControlSecretListResponse.schema.json +8 -14
  198. package/generated/ControlSecretMutationResponse.schema.json +32 -0
  199. package/generated/ControlSecretSetRequest.schema.json +27 -0
  200. package/generated/ControlSettingsSnapshot.schema.json +118 -44
  201. package/generated/ControlSettingsUpdateRequest.schema.json +110 -40
  202. package/generated/ControlSetupJob.schema.json +763 -65
  203. package/generated/ControlSetupJobCreateRequest.schema.json +11 -13
  204. package/generated/ControlSetupJobEvent.schema.json +861 -5
  205. package/generated/ControlSetupJobListFilter.schema.json +35 -0
  206. package/generated/ControlSetupJobListResponse.schema.json +763 -65
  207. package/generated/ControlSetupJobSnapshot.schema.json +870 -0
  208. package/generated/ControlSpecAnswersRequest.schema.json +74 -0
  209. package/generated/ControlSpecQuestionsRequest.schema.json +128 -2
  210. package/generated/ControlSpecSession.schema.json +249 -0
  211. package/generated/ControlSpecSessionListResponse.schema.json +261 -0
  212. package/generated/ControlThread.schema.json +20 -2
  213. package/generated/ControlThreadApplyResponse.schema.json +139 -0
  214. package/generated/ControlThreadDetail.schema.json +32 -4
  215. package/generated/ControlThreadListResponse.schema.json +20 -2
  216. package/generated/ControlThreadTurnRequest.schema.json +373 -0
  217. package/generated/ControlThreadTurnResponse.schema.json +73 -0
  218. package/generated/ControlThreadUpdateRequest.schema.json +1 -1
  219. package/generated/ControlTrustListResponse.schema.json +6 -0
  220. package/generated/ControlTrustState.schema.json +6 -0
  221. package/generated/ControlTrustUpdateRequest.schema.json +65 -3
  222. package/generated/ControlUploadCreateRequest.schema.json +37 -0
  223. package/generated/ControlUploadFinalizeRequest.schema.json +17 -0
  224. package/generated/ControlUploadStatus.schema.json +40 -0
  225. package/generated/DecisionRecord.schema.json +6 -3
  226. package/generated/GlobalConfig.schema.json +105 -58
  227. package/generated/HarnessEvent.schema.json +201 -10
  228. package/generated/HarnessManifest.schema.json +63 -12
  229. package/generated/HarnessStatusDto.schema.json +103 -12
  230. package/generated/OrchestrateContract.schema.json +32 -6
  231. package/generated/OrchestratePlan.schema.json +20 -0
  232. package/generated/OrchestratePlanProgress.schema.json +61 -0
  233. package/generated/PaidBudget.schema.json +42 -0
  234. package/generated/Project.schema.json +45 -0
  235. package/generated/ProjectConfig.schema.json +45 -18
  236. package/generated/RawContextPacket.schema.json +184 -0
  237. package/generated/RawGitPatchEnvelope.schema.json +70 -0
  238. package/generated/RunTelemetry.schema.json +80 -0
  239. package/generated/SecretMetadata.schema.json +4 -7
  240. package/generated/SpecPack.schema.json +118 -7
  241. package/generated/TaskContract.schema.json +159 -26
  242. package/generated/TestCommandInvocation.schema.json +45 -0
  243. package/generated/Thread.schema.json +62 -6
  244. package/generated/ThreadTurn.schema.json +24 -11
  245. package/generated/TrustConfig.schema.json +77 -0
  246. package/package.json +1 -1
  247. package/generated/ControlSetupJobConfirmRequest.schema.json +0 -18
  248. package/generated/ControlSpecFreezeRequest.schema.json +0 -83
@@ -0,0 +1,26 @@
1
+ {
2
+ "$ref": "#/definitions/ControlHandshakeRequest",
3
+ "definitions": {
4
+ "ControlHandshakeRequest": {
5
+ "type": "object",
6
+ "properties": {
7
+ "protocolMajor": {
8
+ "type": "integer",
9
+ "exclusiveMinimum": 0
10
+ },
11
+ "client": {
12
+ "type": "string",
13
+ "minLength": 1,
14
+ "maxLength": 80
15
+ }
16
+ },
17
+ "required": [
18
+ "protocolMajor",
19
+ "client"
20
+ ],
21
+ "additionalProperties": false,
22
+ "description": "Control-plane protocol negotiation requested before product calls."
23
+ }
24
+ },
25
+ "$schema": "http://json-schema.org/draft-07/schema#"
26
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "$ref": "#/definitions/ControlHandshakeResponse",
3
+ "definitions": {
4
+ "ControlHandshakeResponse": {
5
+ "type": "object",
6
+ "properties": {
7
+ "protocolMajor": {
8
+ "type": "number",
9
+ "const": 2
10
+ },
11
+ "compatible": {
12
+ "type": "boolean",
13
+ "const": true
14
+ },
15
+ "operationsPath": {
16
+ "type": "string",
17
+ "const": "/v2/operations"
18
+ }
19
+ },
20
+ "required": [
21
+ "protocolMajor",
22
+ "compatible",
23
+ "operationsPath"
24
+ ],
25
+ "additionalProperties": false,
26
+ "description": "Successful v2 control-plane negotiation."
27
+ }
28
+ },
29
+ "$schema": "http://json-schema.org/draft-07/schema#"
30
+ }
@@ -80,12 +80,13 @@
80
80
  "type": "string",
81
81
  "enum": [
82
82
  "native_session",
83
+ "oauth_token_env",
83
84
  "api_key_env",
84
85
  "api_key_flag",
85
86
  "provider_auth_file",
86
87
  "none"
87
88
  ],
88
- "description": "Where a harness's credentials can come from: a native login session, an API key via env var or CLI flag, a provider auth file, or none."
89
+ "description": "Concrete credential source used or probed by a harness."
89
90
  },
90
91
  "default": [],
91
92
  "description": "Auth sources this harness supports."
@@ -198,21 +199,62 @@
198
199
  "default": {},
199
200
  "description": "Declared isolation containment facts for a harness."
200
201
  },
201
- "image_input": {
202
- "type": "string",
203
- "enum": [
204
- "file_path",
205
- "base64_stream",
206
- "base64_inline",
207
- "none"
208
- ],
209
- "description": "How a harness accepts image input: file_path (CLI file argument), base64_stream (base64 image block on the stream), base64_inline (data-URL in the request), or none (no vision input on this route).",
210
- "default": "none"
202
+ "attachment_inputs": {
203
+ "type": "array",
204
+ "items": {
205
+ "type": "object",
206
+ "properties": {
207
+ "kind": {
208
+ "type": "string",
209
+ "enum": [
210
+ "image",
211
+ "file"
212
+ ],
213
+ "description": "Kind of attached resource: image input or generic file bytes."
214
+ },
215
+ "mime_types": {
216
+ "type": "array",
217
+ "items": {
218
+ "type": "string",
219
+ "minLength": 1
220
+ },
221
+ "minItems": 1
222
+ },
223
+ "max_bytes": {
224
+ "type": "integer",
225
+ "exclusiveMinimum": 0
226
+ },
227
+ "max_count": {
228
+ "type": "integer",
229
+ "exclusiveMinimum": 0
230
+ },
231
+ "transport": {
232
+ "type": "string",
233
+ "enum": [
234
+ "file_path",
235
+ "base64_stream",
236
+ "base64_inline",
237
+ "text_inline"
238
+ ],
239
+ "description": "Native adapter transport used for one supported attachment class."
240
+ }
241
+ },
242
+ "required": [
243
+ "kind",
244
+ "mime_types",
245
+ "max_bytes",
246
+ "max_count",
247
+ "transport"
248
+ ],
249
+ "additionalProperties": false,
250
+ "description": "Finite MIME, size, count and transport limits declared by one adapter."
251
+ },
252
+ "default": []
211
253
  }
212
254
  },
213
255
  "additionalProperties": false,
214
256
  "default": {},
215
- "description": "Structured per-harness facts the engine consumes: auth routing, isolation containment, readonly mechanism, and vision input."
257
+ "description": "Structured per-harness facts the engine consumes: auth routing, isolation containment, readonly mechanism, and finite attachment inputs."
216
258
  },
217
259
  "capabilities": {
218
260
  "type": "object",
@@ -227,6 +269,15 @@
227
269
  "default": false,
228
270
  "description": "The harness can implement code changes (implement intent)."
229
271
  },
272
+ "implementation_transport": {
273
+ "type": "string",
274
+ "enum": [
275
+ "workspace",
276
+ "git_patch_envelope"
277
+ ],
278
+ "description": "Typed producer/consumer transport used when implement=true.",
279
+ "default": "workspace"
280
+ },
230
281
  "create_from_scratch": {
231
282
  "type": "boolean",
232
283
  "default": false,
@@ -436,6 +487,46 @@
436
487
  "default": [],
437
488
  "description": "Human-readable reasons for degraded/unavailable status."
438
489
  },
490
+ "authSources": {
491
+ "type": "array",
492
+ "items": {
493
+ "type": "object",
494
+ "properties": {
495
+ "source": {
496
+ "$ref": "#/definitions/ControlHarnessListResponse/properties/harnesses/items/properties/manifest/anyOf/0/properties/capability_profile/properties/auth/properties/supported_sources/items"
497
+ },
498
+ "availability": {
499
+ "type": "string",
500
+ "enum": [
501
+ "available",
502
+ "unavailable",
503
+ "unknown"
504
+ ]
505
+ },
506
+ "verification": {
507
+ "type": "string",
508
+ "enum": [
509
+ "passed",
510
+ "failed",
511
+ "not_run"
512
+ ]
513
+ },
514
+ "detail": {
515
+ "type": "string",
516
+ "description": "Redacted human-readable source evidence."
517
+ }
518
+ },
519
+ "required": [
520
+ "source",
521
+ "availability",
522
+ "verification"
523
+ ],
524
+ "additionalProperties": false,
525
+ "description": "Doctor-backed readiness for one exact credential source."
526
+ },
527
+ "default": [],
528
+ "description": "Doctor-backed readiness by authentication source; an empty array means readiness was not reported."
529
+ },
439
530
  "configuredModel": {
440
531
  "type": [
441
532
  "string",
@@ -65,18 +65,6 @@
65
65
  ],
66
66
  "description": "New max convergence rounds; null clears it."
67
67
  },
68
- "maxUsd": {
69
- "anyOf": [
70
- {
71
- "type": "number",
72
- "minimum": 0
73
- },
74
- {
75
- "type": "null"
76
- }
77
- ],
78
- "description": "New per-harness USD cap; null clears it."
79
- },
80
68
  "toolsAllow": {
81
69
  "type": "array",
82
70
  "items": {
@@ -0,0 +1,42 @@
1
+ {
2
+ "$ref": "#/definitions/ControlJournalEvent",
3
+ "definitions": {
4
+ "ControlJournalEvent": {
5
+ "type": "object",
6
+ "properties": {
7
+ "schemaVersion": {
8
+ "type": "number",
9
+ "const": 1
10
+ },
11
+ "cursor": {
12
+ "type": "string",
13
+ "minLength": 1,
14
+ "description": "Opaque partition-scoped resume cursor."
15
+ },
16
+ "partition": {
17
+ "type": "string",
18
+ "minLength": 1
19
+ },
20
+ "type": {
21
+ "type": "string",
22
+ "minLength": 1
23
+ },
24
+ "observedAt": {
25
+ "type": "string",
26
+ "format": "date-time"
27
+ },
28
+ "payload": {}
29
+ },
30
+ "required": [
31
+ "schemaVersion",
32
+ "cursor",
33
+ "partition",
34
+ "type",
35
+ "observedAt"
36
+ ],
37
+ "additionalProperties": false,
38
+ "description": "One durable event from a global or project journal partition."
39
+ }
40
+ },
41
+ "$schema": "http://json-schema.org/draft-07/schema#"
42
+ }
@@ -0,0 +1,49 @@
1
+ {
2
+ "$ref": "#/definitions/ControlJournalExportReceipt",
3
+ "definitions": {
4
+ "ControlJournalExportReceipt": {
5
+ "type": "object",
6
+ "properties": {
7
+ "schemaVersion": {
8
+ "type": "number",
9
+ "const": 1
10
+ },
11
+ "exportId": {
12
+ "type": "string",
13
+ "minLength": 1
14
+ },
15
+ "partition": {
16
+ "type": "string",
17
+ "minLength": 1,
18
+ "maxLength": 256
19
+ },
20
+ "fingerprint": {
21
+ "type": "string",
22
+ "pattern": "^[a-f0-9]{64}$"
23
+ },
24
+ "bundlePath": {
25
+ "type": "string",
26
+ "minLength": 1
27
+ },
28
+ "manifestSha256": {
29
+ "$ref": "#/definitions/ControlJournalExportReceipt/properties/fingerprint"
30
+ },
31
+ "createdAt": {
32
+ "type": "string",
33
+ "format": "date-time"
34
+ }
35
+ },
36
+ "required": [
37
+ "schemaVersion",
38
+ "exportId",
39
+ "partition",
40
+ "fingerprint",
41
+ "bundlePath",
42
+ "manifestSha256",
43
+ "createdAt"
44
+ ],
45
+ "additionalProperties": false
46
+ }
47
+ },
48
+ "$schema": "http://json-schema.org/draft-07/schema#"
49
+ }
@@ -0,0 +1,149 @@
1
+ {
2
+ "$ref": "#/definitions/ControlJournalInspection",
3
+ "definitions": {
4
+ "ControlJournalInspection": {
5
+ "type": "object",
6
+ "properties": {
7
+ "schemaVersion": {
8
+ "type": "number",
9
+ "const": 1
10
+ },
11
+ "partition": {
12
+ "type": "string",
13
+ "minLength": 1,
14
+ "maxLength": 256
15
+ },
16
+ "generation": {
17
+ "type": "integer",
18
+ "minimum": 0
19
+ },
20
+ "status": {
21
+ "type": "string",
22
+ "enum": [
23
+ "ready",
24
+ "recovery_required"
25
+ ]
26
+ },
27
+ "recovery": {
28
+ "anyOf": [
29
+ {
30
+ "type": "object",
31
+ "properties": {
32
+ "status": {
33
+ "type": "string",
34
+ "const": "ready"
35
+ },
36
+ "discardedTailBytes": {
37
+ "type": "integer",
38
+ "minimum": 0
39
+ }
40
+ },
41
+ "required": [
42
+ "status",
43
+ "discardedTailBytes"
44
+ ],
45
+ "additionalProperties": false
46
+ },
47
+ {
48
+ "type": "object",
49
+ "properties": {
50
+ "status": {
51
+ "type": "string",
52
+ "const": "recovery_required"
53
+ },
54
+ "location": {
55
+ "anyOf": [
56
+ {
57
+ "type": "object",
58
+ "properties": {
59
+ "kind": {
60
+ "type": "string",
61
+ "const": "byte"
62
+ },
63
+ "byteOffset": {
64
+ "type": "integer",
65
+ "minimum": 0
66
+ }
67
+ },
68
+ "required": [
69
+ "kind",
70
+ "byteOffset"
71
+ ],
72
+ "additionalProperties": false
73
+ },
74
+ {
75
+ "type": "object",
76
+ "properties": {
77
+ "kind": {
78
+ "type": "string",
79
+ "const": "cursor"
80
+ },
81
+ "epoch": {
82
+ "type": "string",
83
+ "minLength": 1
84
+ },
85
+ "seq": {
86
+ "type": "integer",
87
+ "minimum": 0
88
+ }
89
+ },
90
+ "required": [
91
+ "kind",
92
+ "epoch",
93
+ "seq"
94
+ ],
95
+ "additionalProperties": false
96
+ }
97
+ ]
98
+ },
99
+ "reason": {
100
+ "type": "string",
101
+ "minLength": 1
102
+ },
103
+ "discardedTailBytes": {
104
+ "type": "integer",
105
+ "minimum": 0
106
+ }
107
+ },
108
+ "required": [
109
+ "status",
110
+ "location",
111
+ "reason",
112
+ "discardedTailBytes"
113
+ ],
114
+ "additionalProperties": false
115
+ }
116
+ ]
117
+ },
118
+ "fingerprint": {
119
+ "type": "string",
120
+ "pattern": "^[a-f0-9]{64}$"
121
+ },
122
+ "observedAt": {
123
+ "type": "string",
124
+ "format": "date-time"
125
+ },
126
+ "evidenceRefs": {
127
+ "type": "array",
128
+ "items": {
129
+ "type": "string",
130
+ "minLength": 1
131
+ },
132
+ "minItems": 1
133
+ }
134
+ },
135
+ "required": [
136
+ "schemaVersion",
137
+ "partition",
138
+ "generation",
139
+ "status",
140
+ "recovery",
141
+ "fingerprint",
142
+ "observedAt",
143
+ "evidenceRefs"
144
+ ],
145
+ "additionalProperties": false
146
+ }
147
+ },
148
+ "$schema": "http://json-schema.org/draft-07/schema#"
149
+ }
@@ -0,0 +1,55 @@
1
+ {
2
+ "$ref": "#/definitions/ControlJournalQuarantineReceipt",
3
+ "definitions": {
4
+ "ControlJournalQuarantineReceipt": {
5
+ "type": "object",
6
+ "properties": {
7
+ "schemaVersion": {
8
+ "type": "number",
9
+ "const": 1
10
+ },
11
+ "operationId": {
12
+ "type": "string",
13
+ "format": "uuid"
14
+ },
15
+ "partition": {
16
+ "type": "string",
17
+ "minLength": 1,
18
+ "maxLength": 256
19
+ },
20
+ "previousFingerprint": {
21
+ "type": "string",
22
+ "pattern": "^[a-f0-9]{64}$"
23
+ },
24
+ "quarantineArtifactId": {
25
+ "type": "string",
26
+ "minLength": 1
27
+ },
28
+ "quarantinePath": {
29
+ "type": "string",
30
+ "minLength": 1
31
+ },
32
+ "newEpoch": {
33
+ "type": "string",
34
+ "minLength": 1
35
+ },
36
+ "completedAt": {
37
+ "type": "string",
38
+ "format": "date-time"
39
+ }
40
+ },
41
+ "required": [
42
+ "schemaVersion",
43
+ "operationId",
44
+ "partition",
45
+ "previousFingerprint",
46
+ "quarantineArtifactId",
47
+ "quarantinePath",
48
+ "newEpoch",
49
+ "completedAt"
50
+ ],
51
+ "additionalProperties": false
52
+ }
53
+ },
54
+ "$schema": "http://json-schema.org/draft-07/schema#"
55
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "$ref": "#/definitions/ControlJournalQuarantineRequest",
3
+ "definitions": {
4
+ "ControlJournalQuarantineRequest": {
5
+ "type": "object",
6
+ "properties": {
7
+ "expectedFingerprint": {
8
+ "type": "string",
9
+ "pattern": "^[a-f0-9]{64}$"
10
+ },
11
+ "confirmation": {
12
+ "type": "string",
13
+ "const": "quarantine_and_start_fresh"
14
+ }
15
+ },
16
+ "required": [
17
+ "expectedFingerprint",
18
+ "confirmation"
19
+ ],
20
+ "additionalProperties": false
21
+ }
22
+ },
23
+ "$schema": "http://json-schema.org/draft-07/schema#"
24
+ }