@aiwg/cli 2026.10.0 → 2026.10.3

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 (168) hide show
  1. package/agentic/code/providers/capability-matrix.yaml +270 -0
  2. package/agentic/code/providers/model-capabilities.v1.json +3091 -24
  3. package/bin/aiwg.mjs +86 -21
  4. package/dist/src/a2a/codecs.js +9 -0
  5. package/dist/src/artifacts/corpus-tools/vision-extract.js +105 -15
  6. package/dist/src/artifacts/repair.js +9 -4
  7. package/dist/src/channel/manager.mjs +59 -10
  8. package/dist/src/cli/child-process-result.js +40 -0
  9. package/dist/src/cli/env.js +38 -16
  10. package/dist/src/cli/flag-parsing.js +236 -0
  11. package/dist/src/cli/handlers/decision.js +297 -2
  12. package/dist/src/cli/handlers/diagnose.js +9 -2
  13. package/dist/src/cli/handlers/feedback.js +14 -5
  14. package/dist/src/cli/handlers/init.js +245 -30
  15. package/dist/src/cli/handlers/mc.js +23 -0
  16. package/dist/src/cli/handlers/models.js +69 -6
  17. package/dist/src/cli/handlers/ralph.js +3 -0
  18. package/dist/src/cli/handlers/refresh.js +16 -0
  19. package/dist/src/cli/handlers/regenerate.js +14 -0
  20. package/dist/src/cli/handlers/runtime-info.js +24 -9
  21. package/dist/src/cli/handlers/script-runner.js +16 -6
  22. package/dist/src/cli/handlers/session.js +396 -62
  23. package/dist/src/cli/handlers/sessions.js +146 -40
  24. package/dist/src/cli/handlers/setup-manifest.js +439 -39
  25. package/dist/src/cli/handlers/setup.js +139 -39
  26. package/dist/src/cli/handlers/subcommands.js +3 -1
  27. package/dist/src/cli/handlers/team.js +18 -8
  28. package/dist/src/cli/handlers/use.js +13 -0
  29. package/dist/src/cli/handlers/utilities.js +106 -23
  30. package/dist/src/cli/prompt-utils.js +72 -0
  31. package/dist/src/cli/provider-resolution.js +11 -0
  32. package/dist/src/config/aiwg-config.js +268 -4
  33. package/dist/src/config/cli.js +146 -19
  34. package/dist/src/config/dispatch-thresholds-runtime.mjs +38 -0
  35. package/dist/src/config/project-artifacts-health.mjs +14 -3
  36. package/dist/src/config/user-config.js +36 -10
  37. package/dist/src/decision/adapters/jev.js +80 -28
  38. package/dist/src/decision/ask.js +352 -0
  39. package/dist/src/decision/driver.js +4 -0
  40. package/dist/src/decision/entry.js +38 -6
  41. package/dist/src/decision/heldout/collector.js +10 -1
  42. package/dist/src/decision/index.js +3 -0
  43. package/dist/src/decision/interop.js +60 -8
  44. package/dist/src/decision/jev-credentials.js +121 -0
  45. package/dist/src/decision/ledger.js +839 -0
  46. package/dist/src/decision/validate.js +6 -3
  47. package/dist/src/effects/dispatch-verifier.js +252 -0
  48. package/dist/src/effects/index.js +1 -0
  49. package/dist/src/features/installer.js +2 -2
  50. package/dist/src/flow/graph-metadata.js +5 -0
  51. package/dist/src/gates/providers/loader.js +3 -1
  52. package/dist/src/installation/manager-command.mjs +1 -1
  53. package/dist/src/installation/manager.mjs +17 -2
  54. package/dist/src/lint/runner.js +2 -2
  55. package/dist/src/mcp/adapters/codex-runtime.js +360 -56
  56. package/dist/src/mcp/cli.mjs +587 -77
  57. package/dist/src/mcp/config-file.mjs +279 -0
  58. package/dist/src/mcp/config-layers.mjs +348 -0
  59. package/dist/src/mcp/credentials.mjs +484 -0
  60. package/dist/src/mcp/grok-build-config.mjs +16 -26
  61. package/dist/src/mcp/helpers.mjs +106 -2
  62. package/dist/src/mcp/omp-config.mjs +50 -29
  63. package/dist/src/mcp/profiles.js +97 -23
  64. package/dist/src/mcp/profiles.mjs +99 -27
  65. package/dist/src/mcp/registry.js +264 -57
  66. package/dist/src/mcp/registry.mjs +198 -45
  67. package/dist/src/mcp/server.mjs +403 -20
  68. package/dist/src/mcp/toml-string.mjs +9 -0
  69. package/dist/src/mcp/toml-strip-mcp.mjs +135 -0
  70. package/dist/src/mcp/tool-filters.mjs +357 -0
  71. package/dist/src/mcp/tools/agentic-sandbox.mjs +3 -1
  72. package/dist/src/mcp/tools/decision.mjs +58 -0
  73. package/dist/src/mcp/tools/orchestration.mjs +38 -0
  74. package/dist/src/mcp/tools/subsystems.mjs +39 -8
  75. package/dist/src/mcp/tools/worker-invoke.mjs +1539 -0
  76. package/dist/src/mcp/tools/worker-shell-control.mjs +258 -0
  77. package/dist/src/mcp/tools/worker-stdin-runtime.mjs +79 -0
  78. package/dist/src/memory/project-registry.js +2 -2
  79. package/dist/src/mission-protocol/codecs.js +639 -1
  80. package/dist/src/mission-protocol/types.js +110 -0
  81. package/dist/src/mission-protocol/worker-status.js +2 -0
  82. package/dist/src/models/config-loader.js +70 -13
  83. package/dist/src/models/grok-build-models.js +93 -41
  84. package/dist/src/models/model-capabilities.v1.json +3091 -24
  85. package/dist/src/models/model-discovery.js +862 -63
  86. package/dist/src/models/provider-policy.js +625 -11
  87. package/dist/src/models/qualification-digest.mjs +17 -0
  88. package/dist/src/models/resolver.js +259 -0
  89. package/dist/src/models/worker-direct-readiness.js +529 -0
  90. package/dist/src/models/worker-dispatch-offer.js +169 -0
  91. package/dist/src/models/worker-health-readiness.js +131 -0
  92. package/dist/src/models/worker-installation.mjs +879 -0
  93. package/dist/src/models/wrapper-route.js +18 -0
  94. package/dist/src/ops/registry.js +9 -14
  95. package/dist/src/plugins/standalone-packager.js +4 -3
  96. package/dist/src/process/bounded-child-process.mjs +387 -0
  97. package/dist/src/process/cli-command.mjs +75 -0
  98. package/dist/src/providers/capability-matrix.js +8 -0
  99. package/dist/src/providers/capability-matrix.yaml +270 -0
  100. package/dist/src/providers/grok-build-headless.js +43 -21
  101. package/dist/src/providers/provider-definitions.js +9 -1
  102. package/dist/src/providers/provider-definitions.mjs +9 -2
  103. package/dist/src/serve/executor-registry.js +16 -24
  104. package/dist/src/serve/fleet-mission-conductor.js +9 -0
  105. package/dist/src/serve/mission-conductor.js +9 -0
  106. package/dist/src/serve/shared-host-scheduler.js +2 -0
  107. package/dist/src/serve/worker-invocation.js +538 -0
  108. package/dist/src/serve/worker-stdin-frame.mjs +107 -0
  109. package/dist/src/sessions/adapter-registry.js +45 -0
  110. package/dist/src/sessions/adapters/generic.js +37 -3
  111. package/dist/src/sessions/adapters/grokbot-locator.js +111 -0
  112. package/dist/src/sessions/adapters/grokbot.js +423 -24
  113. package/dist/src/sessions/adapters/muse-workspace-scan.js +108 -0
  114. package/dist/src/sessions/adapters/muse.js +68 -29
  115. package/dist/src/sessions/adapters/pi.js +1 -0
  116. package/dist/src/sessions/batch-contracts.js +13 -1
  117. package/dist/src/sessions/batch-import.js +23 -42
  118. package/dist/src/sessions/candidates.js +47 -11
  119. package/dist/src/sessions/contracts.js +35 -0
  120. package/dist/src/sessions/coverage-preflight.js +134 -0
  121. package/dist/src/sessions/discovery.js +3 -0
  122. package/dist/src/sessions/grok-build-cli.js +67 -5
  123. package/dist/src/sessions/importer.js +24 -8
  124. package/dist/src/sessions/index.js +2 -0
  125. package/dist/src/sessions/repository.js +54 -13
  126. package/dist/src/sessions/workspace-discovery.js +99 -37
  127. package/dist/src/skills/adapters/clawhub.js +10 -8
  128. package/dist/src/skills/adapters/openclaw.js +10 -7
  129. package/dist/src/smiths/context-pipeline/parallelism-section.js +192 -3
  130. package/dist/src/smiths/context-pipeline/workspace-context.js +116 -9
  131. package/dist/src/smiths/hook-bridge/codex-translator.js +6 -5
  132. package/dist/src/smiths/mcpsmith/example.js +1 -1
  133. package/dist/src/smiths/toolsmith/runtime-discovery.mjs +10 -14
  134. package/dist/src/storage/backends/logseq.js +68 -7
  135. package/dist/src/storage/fortemi-qualification-receipt.js +2 -2
  136. package/dist/src/testing/generators/test-code-generator.js +57 -30
  137. package/dist/src/uhp/client.js +11 -1
  138. package/dist/src/uhp/mission.js +5 -0
  139. package/dist/src/update/checker.mjs +5 -5
  140. package/dist/src/update/notifier.mjs +54 -2
  141. package/dist/src/writing/fidelity.js +18 -1
  142. package/package.json +18 -1
  143. package/schemas/mission-v1.schema.json +2429 -0
  144. package/schemas/models/model-catalog.v1.schema.json +301 -0
  145. package/schemas/models/model-config-compatibility.v1.schema.json +281 -0
  146. package/schemas/models/model-policy.v1.schema.json +14 -0
  147. package/schemas/models/provider-model-capabilities.v1.schema.json +1066 -0
  148. package/tools/_resolve-impl.mjs +39 -0
  149. package/tools/agents/deploy-agents.mjs +15 -2
  150. package/tools/agents/providers/base.mjs +63 -43
  151. package/tools/agents/providers/grokbot.mjs +11 -12
  152. package/tools/agents/providers/hermes.mjs +6 -3
  153. package/tools/agents/providers/omp.mjs +5 -2
  154. package/tools/agents/providers/openclaw-translator.mjs +19 -5
  155. package/tools/providers/deepseek-harness-transport.mjs +358 -0
  156. package/tools/providers/omp-transport.mjs +192 -0
  157. package/tools/ralph-external/lib/claude-adapter.mjs +389 -0
  158. package/tools/ralph-external/lib/codex-adapter.mjs +432 -0
  159. package/tools/ralph-external/lib/deepseek-harness-adapter.mjs +397 -0
  160. package/tools/ralph-external/lib/factory-adapter.mjs +503 -0
  161. package/tools/ralph-external/lib/muse-adapter.mjs +364 -0
  162. package/tools/ralph-external/lib/omp-adapter.mjs +315 -0
  163. package/tools/ralph-external/lib/opencode-adapter.mjs +575 -0
  164. package/tools/ralph-external/lib/openhuman-adapter.mjs +75 -0
  165. package/tools/ralph-external/lib/pi-adapter.mjs +333 -0
  166. package/tools/ralph-external/lib/provider-adapter.mjs +690 -0
  167. package/tools/ralph-external/lib/worker-health.mjs +439 -0
  168. package/vscode-extension/schemas/aiwg.config.v1.json +1953 -0
@@ -0,0 +1,2429 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://aiwg.io/schemas/mission.aiwg.io/v1",
4
+ "title": "AIWG Mission Protocol v1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["apiVersion", "kind", "metadata", "spec", "status", "provenance"],
8
+ "properties": {
9
+ "apiVersion": { "const": "mission.aiwg.io/v1" },
10
+ "kind": { "const": "Mission" },
11
+ "metadata": {
12
+ "type": "object",
13
+ "additionalProperties": false,
14
+ "required": ["id"],
15
+ "properties": {
16
+ "id": { "type": "string", "minLength": 1, "maxLength": 512 },
17
+ "createdAt": { "type": "string", "format": "date-time" },
18
+ "updatedAt": { "type": "string", "format": "date-time" },
19
+ "parentId": { "type": "string", "minLength": 1, "maxLength": 512 },
20
+ "previousId": { "type": "string", "minLength": 1, "maxLength": 512 },
21
+ "lineage": {
22
+ "type": "array", "maxItems": 1024,
23
+ "items": {
24
+ "type": "object", "additionalProperties": false,
25
+ "required": ["relation", "id"],
26
+ "properties": { "relation": { "type": "string", "minLength": 1 }, "id": { "type": "string", "minLength": 1 } }
27
+ }
28
+ }
29
+ }
30
+ },
31
+ "spec": {
32
+ "type": "object", "additionalProperties": false, "required": ["objective"],
33
+ "properties": {
34
+ "objective": { "type": "string", "minLength": 1 },
35
+ "completionCriterion": { "type": "string", "minLength": 1 },
36
+ "budgets": {
37
+ "type": "object", "additionalProperties": false,
38
+ "properties": {
39
+ "maxAttempts": { "type": "integer", "minimum": 1 },
40
+ "timeoutSeconds": { "type": "integer", "minimum": 1 },
41
+ "maxCostUsd": { "type": "number", "minimum": 0 },
42
+ "maxTokens": { "type": "integer", "minimum": 1 }
43
+ }
44
+ }
45
+ }
46
+ },
47
+ "status": {
48
+ "type": "object", "additionalProperties": false,
49
+ "required": ["state", "terminal", "artifacts"],
50
+ "properties": {
51
+ "state": { "enum": ["pending", "running", "blocked", "operator-review", "completed", "failed", "incomplete", "cancelled", "unknown"] },
52
+ "terminal": { "type": "boolean" },
53
+ "nativeState": { "type": "string" },
54
+ "sourceUpdatedAt": { "type": "string", "format": "date-time" },
55
+ "partialOutput": true,
56
+ "error": {
57
+ "type": "object", "additionalProperties": false, "required": ["message"],
58
+ "properties": { "code": { "type": "string" }, "message": { "type": "string" }, "retryable": { "type": "boolean" } }
59
+ },
60
+ "completion": {
61
+ "type": "object", "additionalProperties": false, "required": ["satisfied"],
62
+ "properties": { "satisfied": { "type": "boolean" }, "reason": { "type": "string" } }
63
+ },
64
+ "artifacts": {
65
+ "type": "array", "maxItems": 10000,
66
+ "items": {
67
+ "type": "object", "additionalProperties": false, "required": ["id", "kind"],
68
+ "properties": {
69
+ "id": { "type": "string", "minLength": 1 }, "kind": { "type": "string", "minLength": 1 },
70
+ "uri": { "type": "string" }, "sha256": { "type": "string", "pattern": "^[a-fA-F0-9]{64}$" },
71
+ "mediaType": { "type": "string" }, "sizeBytes": { "type": "integer", "minimum": 0 },
72
+ "extensions": { "$ref": "#/$defs/extensions" }
73
+ }
74
+ }
75
+ },
76
+ "verification": {
77
+ "type": "array", "maxItems": 1000,
78
+ "items": {
79
+ "type": "object", "additionalProperties": false, "required": ["name", "status"],
80
+ "properties": {
81
+ "name": { "type": "string", "minLength": 1 },
82
+ "status": { "enum": ["passed", "failed", "skipped", "unknown"] },
83
+ "evidence": { "type": "string", "maxLength": 4096 }
84
+ }
85
+ }
86
+ }
87
+ }
88
+ },
89
+ "provenance": {
90
+ "type": "object", "additionalProperties": false,
91
+ "required": ["sourceContract", "sourceVersion"],
92
+ "properties": {
93
+ "sourceContract": { "type": "string", "minLength": 1 }, "sourceVersion": { "type": "string", "minLength": 1 },
94
+ "transport": { "type": "string" }, "sourceId": { "type": "string" }
95
+ }
96
+ },
97
+ "extensions": { "$ref": "#/$defs/extensions" }
98
+ },
99
+ "$defs": {
100
+ "extensions": {
101
+ "type": "object",
102
+ "propertyNames": { "pattern": "^[a-z0-9][a-z0-9.-]*\\.[a-z0-9][a-z0-9._-]*$" },
103
+ "additionalProperties": true,
104
+ "properties": { "aiwg.worker-dispatch": { "$ref": "#/$defs/workerDispatch" } },
105
+ "maxProperties": 256
106
+ },
107
+ "workerArtifact": {
108
+ "type": "object",
109
+ "additionalProperties": false,
110
+ "properties": {
111
+ "ref": {
112
+ "type": "string",
113
+ "minLength": 1,
114
+ "maxLength": 2048
115
+ },
116
+ "digest": {
117
+ "type": "string",
118
+ "pattern": "^sha256:[a-f0-9]{64}$"
119
+ }
120
+ },
121
+ "required": [
122
+ "ref",
123
+ "digest"
124
+ ]
125
+ },
126
+ "workerEffort": {
127
+ "type": "object",
128
+ "additionalProperties": false,
129
+ "properties": {
130
+ "support": {
131
+ "enum": [
132
+ "explicit",
133
+ "not-applicable"
134
+ ]
135
+ },
136
+ "value": {
137
+ "type": [
138
+ "string",
139
+ "null"
140
+ ],
141
+ "minLength": 1,
142
+ "maxLength": 256
143
+ }
144
+ },
145
+ "required": [
146
+ "support",
147
+ "value"
148
+ ],
149
+ "allOf": [
150
+ {
151
+ "if": {
152
+ "properties": {
153
+ "support": {
154
+ "const": "not-applicable"
155
+ }
156
+ }
157
+ },
158
+ "then": {
159
+ "properties": {
160
+ "value": {
161
+ "type": "null"
162
+ }
163
+ }
164
+ },
165
+ "else": {
166
+ "properties": {
167
+ "value": {
168
+ "type": "string"
169
+ }
170
+ }
171
+ }
172
+ }
173
+ ]
174
+ },
175
+ "workerTuple": {
176
+ "type": "object",
177
+ "additionalProperties": false,
178
+ "properties": {
179
+ "group": {
180
+ "type": "string",
181
+ "minLength": 1,
182
+ "maxLength": 256
183
+ },
184
+ "member": {
185
+ "type": "string",
186
+ "minLength": 1,
187
+ "maxLength": 256
188
+ },
189
+ "cli": {
190
+ "type": "string",
191
+ "minLength": 1,
192
+ "maxLength": 256
193
+ },
194
+ "model": {
195
+ "type": "string",
196
+ "minLength": 1,
197
+ "maxLength": 256
198
+ },
199
+ "inferenceProvider": {
200
+ "type": "string",
201
+ "minLength": 1,
202
+ "maxLength": 256
203
+ },
204
+ "family": {
205
+ "type": "string",
206
+ "minLength": 1,
207
+ "maxLength": 256
208
+ },
209
+ "effort": {
210
+ "$ref": "#/$defs/workerEffort"
211
+ },
212
+ "profileRef": {
213
+ "type": "string",
214
+ "minLength": 1,
215
+ "maxLength": 256
216
+ },
217
+ "qualificationDigest": {
218
+ "type": "string",
219
+ "pattern": "^sha256:[a-f0-9]{64}$"
220
+ }
221
+ },
222
+ "required": [
223
+ "group",
224
+ "member",
225
+ "cli",
226
+ "model",
227
+ "inferenceProvider",
228
+ "family",
229
+ "effort",
230
+ "profileRef",
231
+ "qualificationDigest"
232
+ ]
233
+ },
234
+ "workerLimits": {
235
+ "type": "object",
236
+ "additionalProperties": false,
237
+ "properties": {
238
+ "tokens": {
239
+ "type": "integer",
240
+ "minimum": 1
241
+ },
242
+ "costUsd": {
243
+ "type": [
244
+ "number",
245
+ "null"
246
+ ],
247
+ "minimum": 0
248
+ },
249
+ "wallSeconds": {
250
+ "type": "integer",
251
+ "minimum": 1
252
+ },
253
+ "maxAttempts": {
254
+ "type": "integer",
255
+ "minimum": 1,
256
+ "maximum": 100
257
+ }
258
+ },
259
+ "required": [
260
+ "tokens",
261
+ "costUsd",
262
+ "wallSeconds",
263
+ "maxAttempts"
264
+ ]
265
+ },
266
+ "workerSelectionIntent": {
267
+ "type": "object",
268
+ "additionalProperties": false,
269
+ "properties": {
270
+ "version": {
271
+ "const": 1
272
+ },
273
+ "taskId": {
274
+ "type": "string",
275
+ "minLength": 1,
276
+ "maxLength": 256
277
+ },
278
+ "requestId": {
279
+ "type": "string",
280
+ "minLength": 1,
281
+ "maxLength": 256
282
+ },
283
+ "parent": {
284
+ "type": "object",
285
+ "additionalProperties": false,
286
+ "properties": {
287
+ "kind": {
288
+ "enum": [
289
+ "mission",
290
+ "flow",
291
+ "ralph",
292
+ "job"
293
+ ]
294
+ },
295
+ "id": {
296
+ "type": "string",
297
+ "minLength": 1,
298
+ "maxLength": 256
299
+ }
300
+ },
301
+ "required": [
302
+ "kind",
303
+ "id"
304
+ ]
305
+ },
306
+ "objective": {
307
+ "type": "string",
308
+ "minLength": 1,
309
+ "maxLength": 8192
310
+ },
311
+ "taskClass": {
312
+ "type": "string",
313
+ "minLength": 1,
314
+ "maxLength": 256
315
+ },
316
+ "role": {
317
+ "enum": [
318
+ "efficiency",
319
+ "coding",
320
+ "reasoning"
321
+ ]
322
+ },
323
+ "inputs": {
324
+ "type": "array",
325
+ "items": {
326
+ "$ref": "#/$defs/workerArtifact"
327
+ },
328
+ "maxItems": 64
329
+ },
330
+ "ownership": {
331
+ "type": "array",
332
+ "items": {
333
+ "type": "string",
334
+ "minLength": 1,
335
+ "maxLength": 256
336
+ },
337
+ "maxItems": 64
338
+ },
339
+ "requiredTools": {
340
+ "type": "array",
341
+ "items": {
342
+ "type": "string",
343
+ "minLength": 1,
344
+ "maxLength": 256
345
+ },
346
+ "maxItems": 64
347
+ },
348
+ "dataClass": {
349
+ "type": "string",
350
+ "minLength": 1,
351
+ "maxLength": 256
352
+ },
353
+ "group": {
354
+ "type": "string",
355
+ "minLength": 1,
356
+ "maxLength": 256
357
+ },
358
+ "pins": {
359
+ "type": "object",
360
+ "additionalProperties": false,
361
+ "properties": {
362
+ "member": {
363
+ "type": "string",
364
+ "minLength": 1,
365
+ "maxLength": 256
366
+ },
367
+ "model": {
368
+ "type": "string",
369
+ "minLength": 1,
370
+ "maxLength": 256
371
+ },
372
+ "effort": {
373
+ "$ref": "#/$defs/workerEffort"
374
+ }
375
+ },
376
+ "required": []
377
+ },
378
+ "allowFallback": {
379
+ "type": "boolean"
380
+ },
381
+ "limits": {
382
+ "$ref": "#/$defs/workerLimits"
383
+ },
384
+ "acceptance": {
385
+ "type": "array",
386
+ "items": {
387
+ "type": "object",
388
+ "additionalProperties": false,
389
+ "properties": {
390
+ "id": {
391
+ "type": "string",
392
+ "minLength": 1,
393
+ "maxLength": 256
394
+ },
395
+ "criterion": {
396
+ "type": "string",
397
+ "minLength": 1,
398
+ "maxLength": 8192
399
+ },
400
+ "checkRef": {
401
+ "type": "string",
402
+ "minLength": 1,
403
+ "maxLength": 256
404
+ }
405
+ },
406
+ "required": [
407
+ "id",
408
+ "criterion",
409
+ "checkRef"
410
+ ]
411
+ },
412
+ "maxItems": 32,
413
+ "minItems": 1
414
+ },
415
+ "verification": {
416
+ "type": "object",
417
+ "additionalProperties": false,
418
+ "properties": {
419
+ "runnerRef": {
420
+ "type": "string",
421
+ "minLength": 1,
422
+ "maxLength": 256
423
+ },
424
+ "independentReview": {
425
+ "enum": [
426
+ "required",
427
+ "advisory"
428
+ ]
429
+ },
430
+ "differentFamily": {
431
+ "enum": [
432
+ "require",
433
+ "prefer"
434
+ ]
435
+ }
436
+ },
437
+ "required": [
438
+ "runnerRef",
439
+ "independentReview",
440
+ "differentFamily"
441
+ ]
442
+ }
443
+ },
444
+ "required": [
445
+ "version",
446
+ "taskId",
447
+ "requestId",
448
+ "parent",
449
+ "objective",
450
+ "taskClass",
451
+ "role",
452
+ "inputs",
453
+ "ownership",
454
+ "requiredTools",
455
+ "dataClass",
456
+ "group",
457
+ "pins",
458
+ "allowFallback",
459
+ "limits",
460
+ "acceptance",
461
+ "verification"
462
+ ]
463
+ },
464
+ "workerBrief": {
465
+ "type": "object",
466
+ "additionalProperties": false,
467
+ "properties": {
468
+ "version": {
469
+ "const": 1
470
+ },
471
+ "invocationId": {
472
+ "type": "string",
473
+ "minLength": 1,
474
+ "maxLength": 256
475
+ },
476
+ "intent": {
477
+ "$ref": "#/$defs/workerSelectionIntent"
478
+ },
479
+ "intentDigest": {
480
+ "type": "string",
481
+ "pattern": "^sha256:[a-f0-9]{64}$"
482
+ },
483
+ "decision": {
484
+ "$ref": "#/$defs/workerArtifact"
485
+ },
486
+ "policyDigest": {
487
+ "type": "string",
488
+ "pattern": "^sha256:[a-f0-9]{64}$"
489
+ },
490
+ "catalogDigest": {
491
+ "type": "string",
492
+ "pattern": "^sha256:[a-f0-9]{64}$"
493
+ },
494
+ "selected": {
495
+ "$ref": "#/$defs/workerTuple"
496
+ },
497
+ "lease": {
498
+ "type": "object",
499
+ "additionalProperties": false,
500
+ "properties": {
501
+ "authorityRef": {
502
+ "type": "string",
503
+ "minLength": 1,
504
+ "maxLength": 256
505
+ },
506
+ "generation": {
507
+ "type": "integer",
508
+ "minimum": 1
509
+ },
510
+ "reservationId": {
511
+ "type": "string",
512
+ "minLength": 1,
513
+ "maxLength": 256
514
+ }
515
+ },
516
+ "required": [
517
+ "authorityRef",
518
+ "generation",
519
+ "reservationId"
520
+ ]
521
+ },
522
+ "workspace": {
523
+ "type": "object",
524
+ "additionalProperties": false,
525
+ "properties": {
526
+ "path": {
527
+ "type": "string",
528
+ "minLength": 1,
529
+ "maxLength": 256
530
+ },
531
+ "baseRevision": {
532
+ "type": [
533
+ "string",
534
+ "null"
535
+ ],
536
+ "minLength": 1,
537
+ "maxLength": 256
538
+ }
539
+ },
540
+ "required": [
541
+ "path",
542
+ "baseRevision"
543
+ ]
544
+ },
545
+ "authorizationRefs": {
546
+ "type": "array",
547
+ "items": {
548
+ "type": "string",
549
+ "minLength": 1,
550
+ "maxLength": 256
551
+ },
552
+ "maxItems": 64
553
+ },
554
+ "delegationAllowance": {
555
+ "const": 0
556
+ },
557
+ "output": {
558
+ "type": "object",
559
+ "additionalProperties": false,
560
+ "properties": {
561
+ "schemaRef": {
562
+ "const": "https://aiwg.io/schemas/mission.aiwg.io/v1#/$defs/workerClaims"
563
+ },
564
+ "resultPath": {
565
+ "type": "string",
566
+ "minLength": 1,
567
+ "maxLength": 256
568
+ }
569
+ },
570
+ "required": [
571
+ "schemaRef",
572
+ "resultPath"
573
+ ]
574
+ }
575
+ },
576
+ "required": [
577
+ "version",
578
+ "invocationId",
579
+ "intent",
580
+ "intentDigest",
581
+ "decision",
582
+ "policyDigest",
583
+ "catalogDigest",
584
+ "selected",
585
+ "lease",
586
+ "workspace",
587
+ "authorizationRefs",
588
+ "delegationAllowance",
589
+ "output"
590
+ ]
591
+ },
592
+ "workerClaims": {
593
+ "type": "object",
594
+ "additionalProperties": false,
595
+ "properties": {
596
+ "version": {
597
+ "const": 1
598
+ },
599
+ "status": {
600
+ "enum": [
601
+ "completed",
602
+ "partial",
603
+ "blocked",
604
+ "failed"
605
+ ]
606
+ },
607
+ "summary": {
608
+ "type": "string",
609
+ "minLength": 1,
610
+ "maxLength": 8192
611
+ },
612
+ "claims": {
613
+ "type": "array",
614
+ "items": {
615
+ "type": "object",
616
+ "additionalProperties": false,
617
+ "properties": {
618
+ "id": {
619
+ "type": "string",
620
+ "minLength": 1,
621
+ "maxLength": 256
622
+ },
623
+ "text": {
624
+ "type": "string",
625
+ "minLength": 1,
626
+ "maxLength": 8192
627
+ },
628
+ "evidence": {
629
+ "type": "array",
630
+ "items": {
631
+ "$ref": "#/$defs/workerArtifact"
632
+ },
633
+ "maxItems": 16
634
+ }
635
+ },
636
+ "required": [
637
+ "id",
638
+ "text",
639
+ "evidence"
640
+ ]
641
+ },
642
+ "maxItems": 64
643
+ },
644
+ "artifacts": {
645
+ "type": "array",
646
+ "items": {
647
+ "type": "object",
648
+ "additionalProperties": false,
649
+ "properties": {
650
+ "path": {
651
+ "type": "string",
652
+ "minLength": 1,
653
+ "maxLength": 256
654
+ },
655
+ "digest": {
656
+ "type": "string",
657
+ "pattern": "^sha256:[a-f0-9]{64}$"
658
+ },
659
+ "change": {
660
+ "enum": [
661
+ "created",
662
+ "modified",
663
+ "deleted",
664
+ "unchanged"
665
+ ]
666
+ }
667
+ },
668
+ "required": [
669
+ "path",
670
+ "digest",
671
+ "change"
672
+ ]
673
+ },
674
+ "maxItems": 64
675
+ },
676
+ "checks": {
677
+ "type": "array",
678
+ "items": {
679
+ "type": "object",
680
+ "additionalProperties": false,
681
+ "properties": {
682
+ "checkId": {
683
+ "type": "string",
684
+ "minLength": 1,
685
+ "maxLength": 256
686
+ },
687
+ "exitCode": {
688
+ "type": [
689
+ "integer",
690
+ "null"
691
+ ]
692
+ },
693
+ "evidence": {
694
+ "$ref": "#/$defs/workerArtifact"
695
+ },
696
+ "environment": {
697
+ "type": "string",
698
+ "minLength": 1,
699
+ "maxLength": 256
700
+ }
701
+ },
702
+ "required": [
703
+ "checkId",
704
+ "exitCode",
705
+ "evidence",
706
+ "environment"
707
+ ]
708
+ },
709
+ "maxItems": 64
710
+ },
711
+ "limitations": {
712
+ "type": "array",
713
+ "items": {
714
+ "type": "string",
715
+ "minLength": 1,
716
+ "maxLength": 8192
717
+ },
718
+ "maxItems": 32
719
+ }
720
+ },
721
+ "required": [
722
+ "version",
723
+ "status",
724
+ "summary",
725
+ "claims",
726
+ "artifacts",
727
+ "checks",
728
+ "limitations"
729
+ ]
730
+ },
731
+ "workerUsage": {
732
+ "type": "object",
733
+ "additionalProperties": false,
734
+ "properties": {
735
+ "inputTokens": {
736
+ "type": [
737
+ "integer",
738
+ "null"
739
+ ],
740
+ "minimum": 0
741
+ },
742
+ "outputTokens": {
743
+ "type": [
744
+ "integer",
745
+ "null"
746
+ ],
747
+ "minimum": 0
748
+ },
749
+ "cacheTokens": {
750
+ "type": [
751
+ "integer",
752
+ "null"
753
+ ],
754
+ "minimum": 0
755
+ },
756
+ "reasoningTokens": {
757
+ "type": [
758
+ "integer",
759
+ "null"
760
+ ],
761
+ "minimum": 0
762
+ },
763
+ "costUsd": {
764
+ "type": [
765
+ "number",
766
+ "null"
767
+ ],
768
+ "minimum": 0
769
+ },
770
+ "quality": {
771
+ "enum": [
772
+ "reported",
773
+ "estimated",
774
+ "unknown"
775
+ ]
776
+ },
777
+ "reservedTokens": {
778
+ "type": "integer",
779
+ "minimum": 0
780
+ },
781
+ "reservedUsd": {
782
+ "type": [
783
+ "number",
784
+ "null"
785
+ ],
786
+ "minimum": 0
787
+ }
788
+ },
789
+ "required": [
790
+ "inputTokens",
791
+ "outputTokens",
792
+ "cacheTokens",
793
+ "reasoningTokens",
794
+ "costUsd",
795
+ "quality",
796
+ "reservedTokens",
797
+ "reservedUsd"
798
+ ],
799
+ "allOf": [
800
+ {
801
+ "if": {
802
+ "properties": {
803
+ "quality": {
804
+ "const": "unknown"
805
+ }
806
+ },
807
+ "required": [
808
+ "quality"
809
+ ]
810
+ },
811
+ "then": {
812
+ "properties": {
813
+ "inputTokens": {
814
+ "type": "null"
815
+ },
816
+ "outputTokens": {
817
+ "type": "null"
818
+ },
819
+ "cacheTokens": {
820
+ "type": "null"
821
+ },
822
+ "reasoningTokens": {
823
+ "type": "null"
824
+ },
825
+ "costUsd": {
826
+ "type": "null"
827
+ }
828
+ }
829
+ }
830
+ }
831
+ ]
832
+ },
833
+ "workerExecution": {
834
+ "type": "object",
835
+ "additionalProperties": false,
836
+ "properties": {
837
+ "status": {
838
+ "enum": [
839
+ "completed",
840
+ "failed",
841
+ "cancelled",
842
+ "timed-out",
843
+ "uncertain"
844
+ ]
845
+ },
846
+ "exitCode": {
847
+ "type": [
848
+ "integer",
849
+ "null"
850
+ ]
851
+ },
852
+ "requested": {
853
+ "$ref": "#/$defs/workerTuple"
854
+ },
855
+ "observedModel": {
856
+ "type": [
857
+ "string",
858
+ "null"
859
+ ],
860
+ "minLength": 1,
861
+ "maxLength": 256
862
+ },
863
+ "observedFamily": {
864
+ "type": [
865
+ "string",
866
+ "null"
867
+ ],
868
+ "minLength": 1,
869
+ "maxLength": 256
870
+ },
871
+ "observedEffort": {
872
+ "anyOf": [
873
+ {
874
+ "$ref": "#/$defs/workerEffort"
875
+ },
876
+ {
877
+ "type": "null"
878
+ }
879
+ ]
880
+ },
881
+ "identityEvidence": {
882
+ "type": "array",
883
+ "items": {
884
+ "$ref": "#/$defs/workerArtifact"
885
+ },
886
+ "maxItems": 16
887
+ },
888
+ "identityQuality": {
889
+ "enum": [
890
+ "backend-attested",
891
+ "runtime-configured-only",
892
+ "unavailable"
893
+ ]
894
+ },
895
+ "startedAt": {
896
+ "type": "string",
897
+ "format": "date-time"
898
+ },
899
+ "endedAt": {
900
+ "type": [
901
+ "string",
902
+ "null"
903
+ ],
904
+ "format": "date-time"
905
+ },
906
+ "termination": {
907
+ "enum": [
908
+ "confirmed",
909
+ "uncertain"
910
+ ]
911
+ },
912
+ "usage": {
913
+ "$ref": "#/$defs/workerUsage"
914
+ },
915
+ "failure": {
916
+ "anyOf": [
917
+ {
918
+ "type": "null"
919
+ },
920
+ {
921
+ "type": "object",
922
+ "additionalProperties": false,
923
+ "properties": {
924
+ "class": {
925
+ "enum": [
926
+ "rate-limit",
927
+ "unavailable",
928
+ "timeout",
929
+ "auth",
930
+ "invalid-request",
931
+ "policy",
932
+ "parse",
933
+ "verification",
934
+ "unknown"
935
+ ]
936
+ },
937
+ "message": {
938
+ "type": "string",
939
+ "minLength": 1,
940
+ "maxLength": 8192
941
+ },
942
+ "retryable": {
943
+ "type": "boolean"
944
+ },
945
+ "quotaScope": {
946
+ "type": "string",
947
+ "minLength": 1,
948
+ "maxLength": 256
949
+ },
950
+ "resetAt": {
951
+ "type": "string",
952
+ "format": "date-time"
953
+ }
954
+ },
955
+ "required": [
956
+ "class",
957
+ "message",
958
+ "retryable"
959
+ ]
960
+ }
961
+ ]
962
+ },
963
+ "health": {
964
+ "$ref": "#/$defs/workerHealthSummary"
965
+ }
966
+ },
967
+ "required": [
968
+ "status",
969
+ "exitCode",
970
+ "requested",
971
+ "observedModel",
972
+ "observedFamily",
973
+ "observedEffort",
974
+ "identityEvidence",
975
+ "identityQuality",
976
+ "startedAt",
977
+ "endedAt",
978
+ "termination",
979
+ "usage",
980
+ "failure"
981
+ ],
982
+ "allOf": [
983
+ {
984
+ "if": {
985
+ "properties": {
986
+ "status": {
987
+ "const": "completed"
988
+ }
989
+ },
990
+ "required": [
991
+ "status"
992
+ ]
993
+ },
994
+ "then": {
995
+ "properties": {
996
+ "termination": {
997
+ "const": "confirmed"
998
+ },
999
+ "endedAt": {
1000
+ "type": "string",
1001
+ "format": "date-time"
1002
+ },
1003
+ "exitCode": {
1004
+ "enum": [
1005
+ 0,
1006
+ null
1007
+ ]
1008
+ },
1009
+ "failure": {
1010
+ "type": "null"
1011
+ }
1012
+ }
1013
+ }
1014
+ }
1015
+ ]
1016
+ },
1017
+ "workerVerification": {
1018
+ "type": "object",
1019
+ "additionalProperties": false,
1020
+ "properties": {
1021
+ "status": {
1022
+ "enum": [
1023
+ "pending",
1024
+ "accepted",
1025
+ "rejected",
1026
+ "blocked"
1027
+ ]
1028
+ },
1029
+ "verifierId": {
1030
+ "type": [
1031
+ "string",
1032
+ "null"
1033
+ ],
1034
+ "minLength": 1,
1035
+ "maxLength": 256
1036
+ },
1037
+ "runnerRef": {
1038
+ "type": [
1039
+ "string",
1040
+ "null"
1041
+ ],
1042
+ "minLength": 1,
1043
+ "maxLength": 256
1044
+ },
1045
+ "artifactDigest": {
1046
+ "anyOf": [
1047
+ {
1048
+ "type": "string",
1049
+ "pattern": "^sha256:[a-f0-9]{64}$"
1050
+ },
1051
+ {
1052
+ "type": "null"
1053
+ }
1054
+ ]
1055
+ },
1056
+ "evidence": {
1057
+ "type": "array",
1058
+ "items": {
1059
+ "$ref": "#/$defs/workerArtifact"
1060
+ },
1061
+ "maxItems": 64
1062
+ },
1063
+ "findings": {
1064
+ "type": "array",
1065
+ "items": {
1066
+ "type": "string",
1067
+ "minLength": 1,
1068
+ "maxLength": 8192
1069
+ },
1070
+ "maxItems": 64
1071
+ }
1072
+ },
1073
+ "required": [
1074
+ "status",
1075
+ "verifierId",
1076
+ "runnerRef",
1077
+ "artifactDigest",
1078
+ "evidence",
1079
+ "findings"
1080
+ ],
1081
+ "allOf": [
1082
+ {
1083
+ "if": {
1084
+ "properties": {
1085
+ "status": {
1086
+ "const": "accepted"
1087
+ }
1088
+ }
1089
+ },
1090
+ "then": {
1091
+ "properties": {
1092
+ "verifierId": {
1093
+ "type": "string",
1094
+ "minLength": 1,
1095
+ "maxLength": 256
1096
+ },
1097
+ "runnerRef": {
1098
+ "type": "string",
1099
+ "minLength": 1,
1100
+ "maxLength": 256
1101
+ },
1102
+ "artifactDigest": {
1103
+ "type": "string",
1104
+ "pattern": "^sha256:[a-f0-9]{64}$"
1105
+ },
1106
+ "evidence": {
1107
+ "minItems": 1
1108
+ }
1109
+ }
1110
+ }
1111
+ }
1112
+ ]
1113
+ },
1114
+ "workerResult": {
1115
+ "type": "object",
1116
+ "additionalProperties": false,
1117
+ "properties": {
1118
+ "version": {
1119
+ "const": 1
1120
+ },
1121
+ "taskId": {
1122
+ "type": "string",
1123
+ "minLength": 1,
1124
+ "maxLength": 256
1125
+ },
1126
+ "invocationId": {
1127
+ "type": "string",
1128
+ "minLength": 1,
1129
+ "maxLength": 256
1130
+ },
1131
+ "briefDigest": {
1132
+ "type": "string",
1133
+ "pattern": "^sha256:[a-f0-9]{64}$"
1134
+ },
1135
+ "execution": {
1136
+ "$ref": "#/$defs/workerExecution"
1137
+ },
1138
+ "worker": {
1139
+ "anyOf": [
1140
+ {
1141
+ "$ref": "#/$defs/workerClaims"
1142
+ },
1143
+ {
1144
+ "type": "null"
1145
+ }
1146
+ ]
1147
+ },
1148
+ "verification": {
1149
+ "$ref": "#/$defs/workerVerification"
1150
+ }
1151
+ },
1152
+ "required": [
1153
+ "version",
1154
+ "taskId",
1155
+ "invocationId",
1156
+ "briefDigest",
1157
+ "execution",
1158
+ "worker",
1159
+ "verification"
1160
+ ],
1161
+ "allOf": [
1162
+ {
1163
+ "if": {
1164
+ "properties": {
1165
+ "verification": {
1166
+ "type": "object",
1167
+ "properties": {
1168
+ "status": {
1169
+ "const": "accepted"
1170
+ }
1171
+ },
1172
+ "required": [
1173
+ "status"
1174
+ ]
1175
+ }
1176
+ },
1177
+ "required": [
1178
+ "verification"
1179
+ ]
1180
+ },
1181
+ "then": {
1182
+ "properties": {
1183
+ "execution": {
1184
+ "type": "object",
1185
+ "properties": {
1186
+ "status": {
1187
+ "const": "completed"
1188
+ }
1189
+ },
1190
+ "required": [
1191
+ "status"
1192
+ ]
1193
+ },
1194
+ "worker": {
1195
+ "type": "object",
1196
+ "properties": {
1197
+ "status": {
1198
+ "const": "completed"
1199
+ }
1200
+ },
1201
+ "required": [
1202
+ "status"
1203
+ ]
1204
+ }
1205
+ }
1206
+ }
1207
+ }
1208
+ ]
1209
+ },
1210
+ "workerDispatch": {
1211
+ "type": "object",
1212
+ "additionalProperties": false,
1213
+ "properties": {
1214
+ "version": {
1215
+ "const": 1
1216
+ },
1217
+ "requiredFeatures": {
1218
+ "type": "array",
1219
+ "items": {
1220
+ "enum": [
1221
+ "worker-dispatch.v1",
1222
+ "worker-policy-origins.v1",
1223
+ "worker-admission-fencing.v1",
1224
+ "worker-claims.v1",
1225
+ "worker-activation.v1",
1226
+ "worker-health.v1"
1227
+ ]
1228
+ },
1229
+ "uniqueItems": true,
1230
+ "minItems": 5,
1231
+ "maxItems": 6,
1232
+ "allOf": [
1233
+ {
1234
+ "contains": {
1235
+ "const": "worker-dispatch.v1"
1236
+ }
1237
+ },
1238
+ {
1239
+ "contains": {
1240
+ "const": "worker-policy-origins.v1"
1241
+ }
1242
+ },
1243
+ {
1244
+ "contains": {
1245
+ "const": "worker-admission-fencing.v1"
1246
+ }
1247
+ },
1248
+ {
1249
+ "contains": {
1250
+ "const": "worker-claims.v1"
1251
+ }
1252
+ },
1253
+ {
1254
+ "contains": {
1255
+ "const": "worker-activation.v1"
1256
+ }
1257
+ }
1258
+ ]
1259
+ },
1260
+ "taskId": {
1261
+ "type": "string",
1262
+ "minLength": 1,
1263
+ "maxLength": 256
1264
+ },
1265
+ "requestId": {
1266
+ "type": "string",
1267
+ "minLength": 1,
1268
+ "maxLength": 256
1269
+ },
1270
+ "invocationId": {
1271
+ "type": "string",
1272
+ "minLength": 1,
1273
+ "maxLength": 256
1274
+ },
1275
+ "state": {
1276
+ "enum": [
1277
+ "prepared",
1278
+ "queued",
1279
+ "running",
1280
+ "completed",
1281
+ "failed",
1282
+ "cancelled",
1283
+ "timed-out",
1284
+ "uncertain"
1285
+ ]
1286
+ },
1287
+ "intent": {
1288
+ "$ref": "#/$defs/workerArtifact"
1289
+ },
1290
+ "brief": {
1291
+ "anyOf": [
1292
+ {
1293
+ "$ref": "#/$defs/workerArtifact"
1294
+ },
1295
+ {
1296
+ "type": "null"
1297
+ }
1298
+ ]
1299
+ },
1300
+ "result": {
1301
+ "anyOf": [
1302
+ {
1303
+ "$ref": "#/$defs/workerArtifact"
1304
+ },
1305
+ {
1306
+ "type": "null"
1307
+ }
1308
+ ]
1309
+ },
1310
+ "previousRecord": {
1311
+ "anyOf": [
1312
+ {
1313
+ "$ref": "#/$defs/workerArtifact"
1314
+ },
1315
+ {
1316
+ "type": "null"
1317
+ }
1318
+ ]
1319
+ }
1320
+ },
1321
+ "required": [
1322
+ "version",
1323
+ "requiredFeatures",
1324
+ "taskId",
1325
+ "requestId",
1326
+ "invocationId",
1327
+ "state",
1328
+ "intent",
1329
+ "brief",
1330
+ "result",
1331
+ "previousRecord"
1332
+ ]
1333
+ },
1334
+ "workerDirectIntent": {
1335
+ "type": "object",
1336
+ "additionalProperties": false,
1337
+ "properties": {
1338
+ "version": {
1339
+ "const": 1
1340
+ },
1341
+ "taskId": {
1342
+ "type": "string",
1343
+ "minLength": 1,
1344
+ "maxLength": 256
1345
+ },
1346
+ "requestId": {
1347
+ "type": "string",
1348
+ "minLength": 1,
1349
+ "maxLength": 256
1350
+ },
1351
+ "parent": {
1352
+ "type": [
1353
+ "object",
1354
+ "null"
1355
+ ],
1356
+ "additionalProperties": false,
1357
+ "properties": {
1358
+ "kind": {
1359
+ "const": "conductor-session"
1360
+ },
1361
+ "id": {
1362
+ "type": "string",
1363
+ "minLength": 1,
1364
+ "maxLength": 256
1365
+ }
1366
+ },
1367
+ "required": [
1368
+ "kind",
1369
+ "id"
1370
+ ]
1371
+ },
1372
+ "objective": {
1373
+ "type": "string",
1374
+ "minLength": 1,
1375
+ "maxLength": 8192
1376
+ },
1377
+ "taskClass": {
1378
+ "type": "string",
1379
+ "minLength": 1,
1380
+ "maxLength": 256
1381
+ },
1382
+ "role": {
1383
+ "enum": [
1384
+ "efficiency",
1385
+ "coding",
1386
+ "reasoning"
1387
+ ]
1388
+ },
1389
+ "inputs": {
1390
+ "type": "array",
1391
+ "items": {
1392
+ "$ref": "#/$defs/workerArtifact"
1393
+ },
1394
+ "maxItems": 64
1395
+ },
1396
+ "ownership": {
1397
+ "type": "array",
1398
+ "items": {
1399
+ "type": "string",
1400
+ "minLength": 1,
1401
+ "maxLength": 256
1402
+ },
1403
+ "maxItems": 64
1404
+ },
1405
+ "requiredTools": {
1406
+ "type": "array",
1407
+ "items": {
1408
+ "type": "string",
1409
+ "minLength": 1,
1410
+ "maxLength": 256
1411
+ },
1412
+ "maxItems": 64
1413
+ },
1414
+ "dataClass": {
1415
+ "type": "string",
1416
+ "minLength": 1,
1417
+ "maxLength": 256
1418
+ },
1419
+ "group": {
1420
+ "type": "string",
1421
+ "minLength": 1,
1422
+ "maxLength": 256
1423
+ },
1424
+ "pins": {
1425
+ "type": "object",
1426
+ "additionalProperties": false,
1427
+ "properties": {
1428
+ "member": {
1429
+ "type": "string",
1430
+ "minLength": 1,
1431
+ "maxLength": 256
1432
+ },
1433
+ "model": {
1434
+ "type": "string",
1435
+ "minLength": 1,
1436
+ "maxLength": 256
1437
+ },
1438
+ "effort": {
1439
+ "$ref": "#/$defs/workerEffort"
1440
+ }
1441
+ },
1442
+ "required": []
1443
+ },
1444
+ "allowFallback": {
1445
+ "type": "boolean"
1446
+ },
1447
+ "limits": {
1448
+ "$ref": "#/$defs/workerLimits"
1449
+ },
1450
+ "acceptance": {
1451
+ "type": "array",
1452
+ "items": {
1453
+ "type": "object",
1454
+ "additionalProperties": false,
1455
+ "properties": {
1456
+ "id": {
1457
+ "type": "string",
1458
+ "minLength": 1,
1459
+ "maxLength": 256
1460
+ },
1461
+ "criterion": {
1462
+ "type": "string",
1463
+ "minLength": 1,
1464
+ "maxLength": 8192
1465
+ },
1466
+ "checkRef": {
1467
+ "type": "string",
1468
+ "minLength": 1,
1469
+ "maxLength": 256
1470
+ }
1471
+ },
1472
+ "required": [
1473
+ "id",
1474
+ "criterion",
1475
+ "checkRef"
1476
+ ]
1477
+ },
1478
+ "maxItems": 32,
1479
+ "minItems": 1
1480
+ },
1481
+ "verification": {
1482
+ "type": "object",
1483
+ "additionalProperties": false,
1484
+ "properties": {
1485
+ "runnerRef": {
1486
+ "type": [
1487
+ "string",
1488
+ "null"
1489
+ ],
1490
+ "minLength": 1,
1491
+ "maxLength": 256
1492
+ },
1493
+ "independentReview": {
1494
+ "enum": [
1495
+ "required",
1496
+ "advisory"
1497
+ ]
1498
+ },
1499
+ "differentFamily": {
1500
+ "enum": [
1501
+ "require",
1502
+ "prefer"
1503
+ ]
1504
+ },
1505
+ "controlledContext": {
1506
+ "type": "string",
1507
+ "minLength": 1,
1508
+ "maxLength": 1024
1509
+ }
1510
+ },
1511
+ "required": [
1512
+ "independentReview",
1513
+ "differentFamily",
1514
+ "controlledContext"
1515
+ ]
1516
+ }
1517
+ },
1518
+ "required": [
1519
+ "version",
1520
+ "taskId",
1521
+ "requestId",
1522
+ "objective",
1523
+ "taskClass",
1524
+ "role",
1525
+ "inputs",
1526
+ "ownership",
1527
+ "requiredTools",
1528
+ "dataClass",
1529
+ "group",
1530
+ "pins",
1531
+ "allowFallback",
1532
+ "limits",
1533
+ "acceptance",
1534
+ "verification"
1535
+ ]
1536
+ },
1537
+ "workerDirectBrief": {
1538
+ "type": "object",
1539
+ "additionalProperties": false,
1540
+ "properties": {
1541
+ "version": {
1542
+ "const": 1
1543
+ },
1544
+ "invocationId": {
1545
+ "type": "string",
1546
+ "minLength": 1,
1547
+ "maxLength": 256
1548
+ },
1549
+ "intent": {
1550
+ "$ref": "#/$defs/workerDirectIntent"
1551
+ },
1552
+ "intentDigest": {
1553
+ "type": "string",
1554
+ "pattern": "^sha256:[a-f0-9]{64}$"
1555
+ },
1556
+ "decision": {
1557
+ "$ref": "#/$defs/workerArtifact"
1558
+ },
1559
+ "policyDigest": {
1560
+ "type": "string",
1561
+ "pattern": "^sha256:[a-f0-9]{64}$"
1562
+ },
1563
+ "catalogDigest": {
1564
+ "type": "string",
1565
+ "pattern": "^sha256:[a-f0-9]{64}$"
1566
+ },
1567
+ "selected": {
1568
+ "$ref": "#/$defs/workerTuple"
1569
+ },
1570
+ "workspace": {
1571
+ "type": "object",
1572
+ "additionalProperties": false,
1573
+ "properties": {
1574
+ "path": {
1575
+ "type": "string",
1576
+ "minLength": 1,
1577
+ "maxLength": 256
1578
+ },
1579
+ "baseRevision": {
1580
+ "type": [
1581
+ "string",
1582
+ "null"
1583
+ ],
1584
+ "minLength": 1,
1585
+ "maxLength": 256
1586
+ }
1587
+ },
1588
+ "required": [
1589
+ "path",
1590
+ "baseRevision"
1591
+ ]
1592
+ },
1593
+ "authorizationRefs": {
1594
+ "type": "array",
1595
+ "items": {
1596
+ "type": "string",
1597
+ "minLength": 1,
1598
+ "maxLength": 256
1599
+ },
1600
+ "maxItems": 64
1601
+ },
1602
+ "delegationAllowance": {
1603
+ "const": 0
1604
+ },
1605
+ "output": {
1606
+ "type": "object",
1607
+ "additionalProperties": false,
1608
+ "properties": {
1609
+ "schemaRef": {
1610
+ "const": "https://aiwg.io/schemas/mission.aiwg.io/v1#/$defs/workerClaims"
1611
+ },
1612
+ "resultPath": {
1613
+ "type": "string",
1614
+ "minLength": 1,
1615
+ "maxLength": 256
1616
+ }
1617
+ },
1618
+ "required": [
1619
+ "schemaRef",
1620
+ "resultPath"
1621
+ ]
1622
+ },
1623
+ "mode": {
1624
+ "const": "direct"
1625
+ }
1626
+ },
1627
+ "required": [
1628
+ "version",
1629
+ "invocationId",
1630
+ "intent",
1631
+ "intentDigest",
1632
+ "policyDigest",
1633
+ "catalogDigest",
1634
+ "selected",
1635
+ "workspace",
1636
+ "authorizationRefs",
1637
+ "delegationAllowance",
1638
+ "output",
1639
+ "mode"
1640
+ ]
1641
+ },
1642
+ "workerResolvedInvocation": {
1643
+ "type": "object",
1644
+ "additionalProperties": false,
1645
+ "properties": {
1646
+ "version": {
1647
+ "const": 1
1648
+ },
1649
+ "mode": {
1650
+ "enum": [
1651
+ "direct",
1652
+ "managed"
1653
+ ]
1654
+ },
1655
+ "transport": {
1656
+ "enum": [
1657
+ "shell",
1658
+ "mcp"
1659
+ ]
1660
+ },
1661
+ "selected": {
1662
+ "$ref": "#/$defs/workerTuple"
1663
+ },
1664
+ "policyDigest": {
1665
+ "type": "string",
1666
+ "pattern": "^sha256:[a-f0-9]{64}$"
1667
+ },
1668
+ "catalogDigest": {
1669
+ "type": "string",
1670
+ "pattern": "^sha256:[a-f0-9]{64}$"
1671
+ },
1672
+ "profileDigest": {
1673
+ "type": "string",
1674
+ "pattern": "^sha256:[a-f0-9]{64}$"
1675
+ },
1676
+ "expiresAt": {
1677
+ "type": "string",
1678
+ "format": "date-time"
1679
+ },
1680
+ "argv": {
1681
+ "type": "array",
1682
+ "items": {
1683
+ "type": "string",
1684
+ "maxLength": 1048576
1685
+ },
1686
+ "minItems": 1,
1687
+ "maxItems": 512
1688
+ },
1689
+ "cwd": {
1690
+ "type": "string",
1691
+ "minLength": 1,
1692
+ "maxLength": 4096
1693
+ },
1694
+ "stdin": {
1695
+ "enum": [
1696
+ "closed",
1697
+ "brief-text",
1698
+ "brief-json",
1699
+ "adapter-frame"
1700
+ ]
1701
+ },
1702
+ "artifacts": {
1703
+ "type": "array",
1704
+ "maxItems": 16,
1705
+ "items": {
1706
+ "type": "object",
1707
+ "additionalProperties": false,
1708
+ "properties": {
1709
+ "name": {
1710
+ "type": "string",
1711
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}(?![\\s\\S])"
1712
+ },
1713
+ "content": {
1714
+ "type": "string",
1715
+ "maxLength": 1048576
1716
+ },
1717
+ "location": {
1718
+ "const": "run-directory"
1719
+ }
1720
+ },
1721
+ "required": [
1722
+ "name",
1723
+ "content"
1724
+ ]
1725
+ }
1726
+ },
1727
+ "briefPath": {
1728
+ "type": "string",
1729
+ "minLength": 1,
1730
+ "maxLength": 4096
1731
+ },
1732
+ "stdoutPath": {
1733
+ "type": "string",
1734
+ "minLength": 1,
1735
+ "maxLength": 4096
1736
+ },
1737
+ "stderrPath": {
1738
+ "type": "string",
1739
+ "minLength": 1,
1740
+ "maxLength": 4096
1741
+ },
1742
+ "finalPath": {
1743
+ "type": "string",
1744
+ "minLength": 1,
1745
+ "maxLength": 4096
1746
+ },
1747
+ "shellCommand": {
1748
+ "type": "string",
1749
+ "maxLength": 2097152
1750
+ },
1751
+ "envNames": {
1752
+ "type": "array",
1753
+ "items": {
1754
+ "type": "string",
1755
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
1756
+ "maxLength": 256
1757
+ },
1758
+ "maxItems": 128,
1759
+ "uniqueItems": true
1760
+ },
1761
+ "mcp": {
1762
+ "type": "object",
1763
+ "additionalProperties": false,
1764
+ "properties": {
1765
+ "serverRef": {
1766
+ "type": "string",
1767
+ "minLength": 1,
1768
+ "maxLength": 4096
1769
+ },
1770
+ "tool": {
1771
+ "type": "string",
1772
+ "minLength": 1,
1773
+ "maxLength": 4096
1774
+ },
1775
+ "arguments": {
1776
+ "type": "object",
1777
+ "maxProperties": 64
1778
+ },
1779
+ "inputSchemaDigest": {
1780
+ "type": "string",
1781
+ "pattern": "^sha256:[a-f0-9]{64}$"
1782
+ },
1783
+ "timeoutSeconds": {
1784
+ "type": "integer",
1785
+ "minimum": 1
1786
+ },
1787
+ "outputSchemaDigest": {
1788
+ "type": "string",
1789
+ "pattern": "^sha256:[a-f0-9]{64}$"
1790
+ },
1791
+ "sessionIsolation": {
1792
+ "enum": [
1793
+ "per-call",
1794
+ "per-instance",
1795
+ "serialized"
1796
+ ]
1797
+ }
1798
+ },
1799
+ "required": [
1800
+ "serverRef",
1801
+ "tool",
1802
+ "arguments",
1803
+ "inputSchemaDigest",
1804
+ "timeoutSeconds",
1805
+ "outputSchemaDigest",
1806
+ "sessionIsolation"
1807
+ ]
1808
+ },
1809
+ "readiness": {
1810
+ "enum": [
1811
+ "preparatory",
1812
+ "launchable"
1813
+ ]
1814
+ },
1815
+ "briefDigest": {
1816
+ "anyOf": [
1817
+ {
1818
+ "type": "string",
1819
+ "pattern": "^sha256:[a-f0-9]{64}$"
1820
+ },
1821
+ {
1822
+ "type": "null"
1823
+ }
1824
+ ]
1825
+ },
1826
+ "limits": {
1827
+ "$ref": "#/$defs/workerLimits"
1828
+ },
1829
+ "maxOutputBytes": {
1830
+ "type": "integer",
1831
+ "minimum": 1
1832
+ },
1833
+ "effectiveCaps": {
1834
+ "type": "object",
1835
+ "maxProperties": 64,
1836
+ "additionalProperties": {
1837
+ "type": "integer",
1838
+ "minimum": 1
1839
+ }
1840
+ },
1841
+ "controlEvidence": {
1842
+ "type": "array",
1843
+ "maxItems": 64,
1844
+ "items": {
1845
+ "type": "string",
1846
+ "minLength": 1,
1847
+ "maxLength": 2048
1848
+ }
1849
+ },
1850
+ "health": {
1851
+ "$ref": "#/$defs/workerEffectiveHealth"
1852
+ }
1853
+ },
1854
+ "required": [
1855
+ "version",
1856
+ "mode",
1857
+ "transport",
1858
+ "selected",
1859
+ "policyDigest",
1860
+ "catalogDigest",
1861
+ "profileDigest",
1862
+ "expiresAt",
1863
+ "readiness",
1864
+ "briefDigest",
1865
+ "limits",
1866
+ "maxOutputBytes",
1867
+ "effectiveCaps",
1868
+ "controlEvidence"
1869
+ ],
1870
+ "allOf": [
1871
+ {
1872
+ "if": {
1873
+ "properties": {
1874
+ "transport": {
1875
+ "const": "shell"
1876
+ }
1877
+ }
1878
+ },
1879
+ "then": {
1880
+ "required": [
1881
+ "argv",
1882
+ "cwd",
1883
+ "stdin",
1884
+ "shellCommand",
1885
+ "envNames",
1886
+ "finalPath",
1887
+ "briefPath",
1888
+ "stdoutPath",
1889
+ "stderrPath"
1890
+ ],
1891
+ "not": {
1892
+ "required": [
1893
+ "mcp"
1894
+ ]
1895
+ }
1896
+ },
1897
+ "else": {
1898
+ "required": [
1899
+ "mcp"
1900
+ ],
1901
+ "not": {
1902
+ "anyOf": [
1903
+ {
1904
+ "required": [
1905
+ "shellCommand"
1906
+ ]
1907
+ },
1908
+ {
1909
+ "required": [
1910
+ "argv"
1911
+ ]
1912
+ },
1913
+ {
1914
+ "required": [
1915
+ "stdin"
1916
+ ]
1917
+ },
1918
+ {
1919
+ "required": [
1920
+ "envNames"
1921
+ ]
1922
+ }
1923
+ ]
1924
+ }
1925
+ }
1926
+ },
1927
+ {
1928
+ "if": {
1929
+ "properties": {
1930
+ "readiness": {
1931
+ "const": "launchable"
1932
+ }
1933
+ }
1934
+ },
1935
+ "then": {
1936
+ "properties": {
1937
+ "briefDigest": {
1938
+ "type": "string",
1939
+ "pattern": "^sha256:[a-f0-9]{64}$"
1940
+ }
1941
+ }
1942
+ }
1943
+ }
1944
+ ]
1945
+ },
1946
+ "workerDirectVerification": {
1947
+ "type": "object",
1948
+ "additionalProperties": false,
1949
+ "properties": {
1950
+ "status": {
1951
+ "enum": [
1952
+ "pending",
1953
+ "accepted",
1954
+ "rejected",
1955
+ "blocked"
1956
+ ]
1957
+ },
1958
+ "verifierId": {
1959
+ "type": [
1960
+ "string",
1961
+ "null"
1962
+ ],
1963
+ "minLength": 1,
1964
+ "maxLength": 256
1965
+ },
1966
+ "runnerRef": {
1967
+ "type": [
1968
+ "string",
1969
+ "null"
1970
+ ],
1971
+ "minLength": 1,
1972
+ "maxLength": 256
1973
+ },
1974
+ "artifactDigest": {
1975
+ "anyOf": [
1976
+ {
1977
+ "type": "string",
1978
+ "pattern": "^sha256:[a-f0-9]{64}$"
1979
+ },
1980
+ {
1981
+ "type": "null"
1982
+ }
1983
+ ]
1984
+ },
1985
+ "evidence": {
1986
+ "type": "array",
1987
+ "items": {
1988
+ "$ref": "#/$defs/workerArtifact"
1989
+ },
1990
+ "maxItems": 64
1991
+ },
1992
+ "findings": {
1993
+ "type": "array",
1994
+ "items": {
1995
+ "type": "string",
1996
+ "minLength": 1,
1997
+ "maxLength": 8192
1998
+ },
1999
+ "maxItems": 64
2000
+ },
2001
+ "controlledContext": {
2002
+ "type": [
2003
+ "string",
2004
+ "null"
2005
+ ],
2006
+ "minLength": 1,
2007
+ "maxLength": 1024
2008
+ }
2009
+ },
2010
+ "required": [
2011
+ "status",
2012
+ "verifierId",
2013
+ "runnerRef",
2014
+ "artifactDigest",
2015
+ "evidence",
2016
+ "findings",
2017
+ "controlledContext"
2018
+ ],
2019
+ "allOf": [
2020
+ {
2021
+ "if": {
2022
+ "properties": {
2023
+ "status": {
2024
+ "const": "accepted"
2025
+ }
2026
+ }
2027
+ },
2028
+ "then": {
2029
+ "properties": {
2030
+ "verifierId": {
2031
+ "type": "string",
2032
+ "minLength": 1,
2033
+ "maxLength": 256
2034
+ },
2035
+ "artifactDigest": {
2036
+ "type": "string",
2037
+ "pattern": "^sha256:[a-f0-9]{64}$"
2038
+ },
2039
+ "controlledContext": {
2040
+ "type": "string",
2041
+ "minLength": 1,
2042
+ "maxLength": 1024
2043
+ },
2044
+ "findings": {
2045
+ "minItems": 1
2046
+ }
2047
+ }
2048
+ }
2049
+ }
2050
+ ]
2051
+ },
2052
+ "workerDirectResult": {
2053
+ "type": "object",
2054
+ "additionalProperties": false,
2055
+ "properties": {
2056
+ "version": {
2057
+ "const": 1
2058
+ },
2059
+ "taskId": {
2060
+ "type": "string",
2061
+ "minLength": 1,
2062
+ "maxLength": 256
2063
+ },
2064
+ "invocationId": {
2065
+ "type": "string",
2066
+ "minLength": 1,
2067
+ "maxLength": 256
2068
+ },
2069
+ "briefDigest": {
2070
+ "type": "string",
2071
+ "pattern": "^sha256:[a-f0-9]{64}$"
2072
+ },
2073
+ "execution": {
2074
+ "$ref": "#/$defs/workerExecution"
2075
+ },
2076
+ "worker": {
2077
+ "anyOf": [
2078
+ {
2079
+ "$ref": "#/$defs/workerClaims"
2080
+ },
2081
+ {
2082
+ "type": "null"
2083
+ }
2084
+ ]
2085
+ },
2086
+ "verification": {
2087
+ "$ref": "#/$defs/workerDirectVerification"
2088
+ },
2089
+ "mode": {
2090
+ "const": "direct"
2091
+ }
2092
+ },
2093
+ "required": [
2094
+ "version",
2095
+ "taskId",
2096
+ "invocationId",
2097
+ "briefDigest",
2098
+ "execution",
2099
+ "worker",
2100
+ "verification",
2101
+ "mode"
2102
+ ],
2103
+ "allOf": [
2104
+ {
2105
+ "if": {
2106
+ "properties": {
2107
+ "verification": {
2108
+ "type": "object",
2109
+ "properties": {
2110
+ "status": {
2111
+ "const": "accepted"
2112
+ }
2113
+ },
2114
+ "required": [
2115
+ "status"
2116
+ ]
2117
+ }
2118
+ },
2119
+ "required": [
2120
+ "verification"
2121
+ ]
2122
+ },
2123
+ "then": {
2124
+ "properties": {
2125
+ "execution": {
2126
+ "type": "object",
2127
+ "properties": {
2128
+ "status": {
2129
+ "const": "completed"
2130
+ }
2131
+ },
2132
+ "required": [
2133
+ "status"
2134
+ ]
2135
+ },
2136
+ "worker": {
2137
+ "type": "object",
2138
+ "properties": {
2139
+ "status": {
2140
+ "const": "completed"
2141
+ }
2142
+ },
2143
+ "required": [
2144
+ "status"
2145
+ ]
2146
+ }
2147
+ }
2148
+ }
2149
+ }
2150
+ ]
2151
+ },
2152
+ "workerHealthSummary": {
2153
+ "type": "object",
2154
+ "additionalProperties": false,
2155
+ "properties": {
2156
+ "version": {
2157
+ "const": 1
2158
+ },
2159
+ "state": {
2160
+ "enum": [
2161
+ "launching",
2162
+ "started",
2163
+ "active",
2164
+ "quiet",
2165
+ "stalled",
2166
+ "hung",
2167
+ "crashed",
2168
+ "failed-to-start",
2169
+ "completed",
2170
+ "failed",
2171
+ "cancelled"
2172
+ ]
2173
+ },
2174
+ "coverage": {
2175
+ "enum": [
2176
+ "full",
2177
+ "degraded",
2178
+ "unobserved"
2179
+ ]
2180
+ },
2181
+ "handshake": {
2182
+ "enum": [
2183
+ "semantic",
2184
+ "process-only",
2185
+ "unobserved"
2186
+ ]
2187
+ },
2188
+ "lastObservedAt": {
2189
+ "type": [
2190
+ "string",
2191
+ "null"
2192
+ ],
2193
+ "format": "date-time"
2194
+ },
2195
+ "lastActivityAt": {
2196
+ "type": [
2197
+ "string",
2198
+ "null"
2199
+ ],
2200
+ "format": "date-time"
2201
+ },
2202
+ "lastProgressAt": {
2203
+ "type": [
2204
+ "string",
2205
+ "null"
2206
+ ],
2207
+ "format": "date-time"
2208
+ },
2209
+ "reasonCode": {
2210
+ "type": "string",
2211
+ "minLength": 1,
2212
+ "maxLength": 4096
2213
+ },
2214
+ "termination": {
2215
+ "enum": [
2216
+ "running",
2217
+ "confirmed",
2218
+ "uncertain"
2219
+ ]
2220
+ },
2221
+ "transitionCount": {
2222
+ "type": "integer",
2223
+ "minimum": 0,
2224
+ "maximum": 1000000
2225
+ },
2226
+ "restartCount": {
2227
+ "type": "integer",
2228
+ "minimum": 0,
2229
+ "maximum": 10000
2230
+ },
2231
+ "unavailableSignals": {
2232
+ "type": "array",
2233
+ "maxItems": 32,
2234
+ "uniqueItems": true,
2235
+ "items": {
2236
+ "type": "string",
2237
+ "minLength": 1,
2238
+ "maxLength": 4096
2239
+ }
2240
+ },
2241
+ "transitionRefs": {
2242
+ "type": "array",
2243
+ "maxItems": 64,
2244
+ "items": {
2245
+ "$ref": "#/$defs/workerArtifact"
2246
+ }
2247
+ },
2248
+ "observerGeneration": {
2249
+ "type": [
2250
+ "integer",
2251
+ "null"
2252
+ ],
2253
+ "minimum": 0
2254
+ },
2255
+ "startupDeadlineAt": {
2256
+ "type": [
2257
+ "string",
2258
+ "null"
2259
+ ],
2260
+ "format": "date-time"
2261
+ },
2262
+ "hardDeadlineAt": {
2263
+ "type": [
2264
+ "string",
2265
+ "null"
2266
+ ],
2267
+ "format": "date-time"
2268
+ },
2269
+ "maxCheckGapSeconds": {
2270
+ "type": [
2271
+ "number",
2272
+ "null"
2273
+ ],
2274
+ "minimum": 0
2275
+ },
2276
+ "confidence": {
2277
+ "enum": [
2278
+ "observed",
2279
+ "suspected",
2280
+ "unobserved"
2281
+ ]
2282
+ },
2283
+ "handshakeAt": {
2284
+ "type": [
2285
+ "string",
2286
+ "null"
2287
+ ],
2288
+ "format": "date-time"
2289
+ },
2290
+ "stalledAt": {
2291
+ "type": [
2292
+ "string",
2293
+ "null"
2294
+ ],
2295
+ "format": "date-time"
2296
+ }
2297
+ },
2298
+ "required": [
2299
+ "version",
2300
+ "state",
2301
+ "coverage",
2302
+ "handshake",
2303
+ "lastObservedAt",
2304
+ "lastActivityAt",
2305
+ "lastProgressAt",
2306
+ "reasonCode",
2307
+ "termination",
2308
+ "transitionCount",
2309
+ "restartCount",
2310
+ "unavailableSignals",
2311
+ "transitionRefs",
2312
+ "observerGeneration",
2313
+ "startupDeadlineAt",
2314
+ "hardDeadlineAt",
2315
+ "maxCheckGapSeconds",
2316
+ "confidence",
2317
+ "handshakeAt",
2318
+ "stalledAt"
2319
+ ]
2320
+ },
2321
+ "workerEffectiveHealth": {
2322
+ "type": "object",
2323
+ "additionalProperties": false,
2324
+ "properties": {
2325
+ "version": {
2326
+ "const": 1
2327
+ },
2328
+ "startupSeconds": {
2329
+ "type": "integer",
2330
+ "minimum": 1,
2331
+ "maximum": 86400
2332
+ },
2333
+ "checkSeconds": {
2334
+ "type": "integer",
2335
+ "minimum": 1,
2336
+ "maximum": 60
2337
+ },
2338
+ "quietSeconds": {
2339
+ "type": "number",
2340
+ "minimum": 1,
2341
+ "maximum": 86400
2342
+ },
2343
+ "stallSeconds": {
2344
+ "type": "number",
2345
+ "minimum": 1,
2346
+ "maximum": 86400
2347
+ },
2348
+ "diagnosticGraceSeconds": {
2349
+ "type": "integer",
2350
+ "minimum": 1,
2351
+ "maximum": 86400
2352
+ },
2353
+ "terminateGraceSeconds": {
2354
+ "type": "integer",
2355
+ "minimum": 1,
2356
+ "maximum": 60
2357
+ },
2358
+ "hardTimeoutSeconds": {
2359
+ "type": "integer",
2360
+ "minimum": 1,
2361
+ "maximum": 86400
2362
+ },
2363
+ "maxSteps": {
2364
+ "type": "integer",
2365
+ "minimum": 1,
2366
+ "maximum": 10000
2367
+ },
2368
+ "stepEnforcement": {
2369
+ "enum": [
2370
+ "native",
2371
+ "external",
2372
+ "observed",
2373
+ "unavailable"
2374
+ ]
2375
+ },
2376
+ "scale": {
2377
+ "type": "number",
2378
+ "minimum": 1,
2379
+ "maximum": 6
2380
+ },
2381
+ "profileRef": {
2382
+ "type": "string",
2383
+ "minLength": 1,
2384
+ "maxLength": 4096
2385
+ },
2386
+ "origins": {
2387
+ "type": "object",
2388
+ "maxProperties": 32,
2389
+ "propertyNames": { "type": "string", "maxLength": 80 },
2390
+ "additionalProperties": {
2391
+ "type": "array",
2392
+ "minItems": 1,
2393
+ "maxItems": 6,
2394
+ "items": { "type": "string", "minLength": 1, "maxLength": 4096 }
2395
+ }
2396
+ },
2397
+ "truncatedWindows": {
2398
+ "type": "array",
2399
+ "maxItems": 3,
2400
+ "uniqueItems": true,
2401
+ "items": { "enum": ["startup", "quiet", "stall"] }
2402
+ },
2403
+ "runDir": {
2404
+ "type": [
2405
+ "string",
2406
+ "null"
2407
+ ],
2408
+ "minLength": 1,
2409
+ "maxLength": 4096
2410
+ }
2411
+ },
2412
+ "required": [
2413
+ "version",
2414
+ "startupSeconds",
2415
+ "checkSeconds",
2416
+ "quietSeconds",
2417
+ "stallSeconds",
2418
+ "diagnosticGraceSeconds",
2419
+ "terminateGraceSeconds",
2420
+ "hardTimeoutSeconds",
2421
+ "maxSteps",
2422
+ "stepEnforcement",
2423
+ "scale",
2424
+ "profileRef",
2425
+ "runDir"
2426
+ ]
2427
+ }
2428
+ }
2429
+ }