@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,1066 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://aiwg.io/schemas/models/provider-model-capabilities.v1.schema.json",
4
+ "title": "AIWG provider model capability registry",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "version",
9
+ "verifiedAt",
10
+ "providers"
11
+ ],
12
+ "properties": {
13
+ "version": {
14
+ "const": "1.0.0"
15
+ },
16
+ "verifiedAt": {
17
+ "type": "string",
18
+ "format": "date"
19
+ },
20
+ "providers": {
21
+ "type": "object",
22
+ "minProperties": 11,
23
+ "additionalProperties": {
24
+ "type": "object",
25
+ "additionalProperties": false,
26
+ "required": [
27
+ "agent",
28
+ "skill",
29
+ "globalChild",
30
+ "identifierSyntax",
31
+ "inheritance",
32
+ "invalidPinFallback",
33
+ "configTarget",
34
+ "artifactFormat",
35
+ "verification",
36
+ "sourceUrl",
37
+ "verifiedAt"
38
+ ],
39
+ "properties": {
40
+ "agent": {
41
+ "$ref": "#/$defs/control"
42
+ },
43
+ "skill": {
44
+ "$ref": "#/$defs/control"
45
+ },
46
+ "globalChild": {
47
+ "$ref": "#/$defs/control"
48
+ },
49
+ "identifierSyntax": {
50
+ "type": "string",
51
+ "minLength": 1
52
+ },
53
+ "effortValues": {
54
+ "type": "array",
55
+ "items": {
56
+ "type": "string",
57
+ "minLength": 1
58
+ },
59
+ "uniqueItems": true
60
+ },
61
+ "inheritance": {
62
+ "type": "string",
63
+ "minLength": 1
64
+ },
65
+ "invalidPinFallback": {
66
+ "type": "string",
67
+ "minLength": 1
68
+ },
69
+ "configTarget": {
70
+ "type": "string",
71
+ "minLength": 1
72
+ },
73
+ "artifactFormat": {
74
+ "type": "string",
75
+ "minLength": 1
76
+ },
77
+ "verification": {
78
+ "type": "string",
79
+ "minLength": 1
80
+ },
81
+ "sourceUrl": {
82
+ "type": "string",
83
+ "format": "uri"
84
+ },
85
+ "verifiedAt": {
86
+ "type": "string",
87
+ "format": "date"
88
+ },
89
+ "workerAdapter": {
90
+ "$ref": "#/$defs/workerAdapter"
91
+ },
92
+ "workerHealthAdapter": {
93
+ "description": "Descriptive health evidence only; does not register an executable worker adapter.",
94
+ "$ref": "#/$defs/workerAdapter"
95
+ },
96
+ "workerHealthCoverage": {
97
+ "type": "object",
98
+ "additionalProperties": false,
99
+ "properties": {
100
+ "scope": {
101
+ "const": "out"
102
+ },
103
+ "coverage": {
104
+ "const": "unobserved"
105
+ },
106
+ "handshake": {
107
+ "const": "unobserved"
108
+ },
109
+ "evidenceGrades": {
110
+ "type": "array",
111
+ "maxItems": 3,
112
+ "uniqueItems": true,
113
+ "items": {
114
+ "enum": [
115
+ "H",
116
+ "R",
117
+ "D"
118
+ ]
119
+ }
120
+ },
121
+ "qualificationOwner": {
122
+ "type": "string",
123
+ "pattern": "^B-OG-[0-9]{2}$"
124
+ },
125
+ "provenance": {
126
+ "type": "array",
127
+ "minItems": 1,
128
+ "maxItems": 16,
129
+ "items": {
130
+ "type": "string",
131
+ "minLength": 1,
132
+ "maxLength": 4096
133
+ }
134
+ },
135
+ "reason": {
136
+ "type": "string",
137
+ "minLength": 1,
138
+ "maxLength": 4096
139
+ }
140
+ },
141
+ "required": [
142
+ "scope",
143
+ "coverage",
144
+ "handshake",
145
+ "evidenceGrades",
146
+ "qualificationOwner",
147
+ "provenance",
148
+ "reason"
149
+ ]
150
+ }
151
+ }
152
+ }
153
+ },
154
+ "workerAdapters": {
155
+ "type": "object",
156
+ "maxProperties": 128,
157
+ "propertyNames": {
158
+ "pattern": "^[a-z][a-z0-9-]{0,62}$"
159
+ },
160
+ "additionalProperties": {
161
+ "$ref": "#/$defs/workerAdapter"
162
+ }
163
+ },
164
+ "workerHealthAdapters": {
165
+ "description": "Descriptive health evidence only; entries do not register executable worker adapters.",
166
+ "type": "object",
167
+ "maxProperties": 128,
168
+ "propertyNames": {
169
+ "pattern": "^[a-z][a-z0-9-]{0,62}$"
170
+ },
171
+ "additionalProperties": {
172
+ "$ref": "#/$defs/workerAdapter"
173
+ }
174
+ },
175
+ "$schema": {
176
+ "enum": [
177
+ "../../../schemas/models/provider-model-capabilities.v1.schema.json",
178
+ "https://aiwg.io/schemas/models/provider-model-capabilities.v1.schema.json"
179
+ ]
180
+ }
181
+ },
182
+ "$defs": {
183
+ "control": {
184
+ "enum": [
185
+ "native",
186
+ "compiled",
187
+ "inherited",
188
+ "global-only",
189
+ "informational",
190
+ "unsupported"
191
+ ]
192
+ },
193
+ "process": {
194
+ "type": "object",
195
+ "additionalProperties": false,
196
+ "properties": {
197
+ "kind": {
198
+ "const": "process"
199
+ },
200
+ "executable": {
201
+ "type": "string",
202
+ "minLength": 1
203
+ },
204
+ "argv": {
205
+ "type": "array",
206
+ "items": {
207
+ "type": "string",
208
+ "minLength": 1
209
+ },
210
+ "minItems": 1
211
+ },
212
+ "stdin": {
213
+ "enum": [
214
+ "closed",
215
+ "brief-json",
216
+ "brief-text",
217
+ "adapter-frame"
218
+ ]
219
+ },
220
+ "cwd": {
221
+ "const": "${workspace}"
222
+ },
223
+ "envAllowlist": {
224
+ "type": "array",
225
+ "items": {
226
+ "type": "string",
227
+ "minLength": 1
228
+ },
229
+ "minItems": 0,
230
+ "uniqueItems": true
231
+ },
232
+ "versionArgv": {
233
+ "type": "array",
234
+ "items": {
235
+ "type": "string",
236
+ "minLength": 1
237
+ },
238
+ "minItems": 1
239
+ },
240
+ "versionPattern": {
241
+ "type": "string",
242
+ "minLength": 1,
243
+ "maxLength": 256
244
+ },
245
+ "maxOutputBytes": {
246
+ "type": "integer",
247
+ "minimum": 1,
248
+ "default": 10485760
249
+ }
250
+ },
251
+ "required": [
252
+ "kind",
253
+ "executable",
254
+ "argv",
255
+ "stdin",
256
+ "cwd",
257
+ "envAllowlist",
258
+ "versionArgv"
259
+ ]
260
+ },
261
+ "http": {
262
+ "type": "object",
263
+ "additionalProperties": false,
264
+ "properties": {
265
+ "kind": {
266
+ "const": "http"
267
+ },
268
+ "protocol": {
269
+ "enum": [
270
+ "ollama",
271
+ "llama-cpp",
272
+ "openai-compatible"
273
+ ]
274
+ },
275
+ "healthPath": {
276
+ "type": "string",
277
+ "minLength": 1,
278
+ "pattern": "^/"
279
+ },
280
+ "modelsPath": {
281
+ "type": "string",
282
+ "minLength": 1,
283
+ "pattern": "^/"
284
+ },
285
+ "generatePath": {
286
+ "type": "string",
287
+ "minLength": 1,
288
+ "pattern": "^/"
289
+ },
290
+ "timeoutSeconds": {
291
+ "type": "integer",
292
+ "minimum": 1,
293
+ "default": 900
294
+ },
295
+ "maxOutputBytes": {
296
+ "type": "integer",
297
+ "minimum": 1,
298
+ "default": 10485760
299
+ }
300
+ },
301
+ "required": [
302
+ "kind",
303
+ "protocol",
304
+ "healthPath",
305
+ "modelsPath",
306
+ "generatePath"
307
+ ]
308
+ },
309
+ "catalogAdapter": {
310
+ "type": "object",
311
+ "additionalProperties": false,
312
+ "properties": {
313
+ "kind": {
314
+ "enum": [
315
+ "command",
316
+ "file",
317
+ "http",
318
+ "module"
319
+ ]
320
+ },
321
+ "locator": {
322
+ "type": "string",
323
+ "minLength": 1
324
+ },
325
+ "argv": {
326
+ "type": "array",
327
+ "items": {
328
+ "type": "string",
329
+ "minLength": 1
330
+ },
331
+ "minItems": 0
332
+ },
333
+ "parser": {
334
+ "type": "string",
335
+ "minLength": 1
336
+ },
337
+ "timeoutSeconds": {
338
+ "type": "integer",
339
+ "minimum": 1,
340
+ "default": 10
341
+ },
342
+ "maxBytes": {
343
+ "type": "integer",
344
+ "minimum": 1,
345
+ "default": 5242880
346
+ }
347
+ },
348
+ "required": [
349
+ "kind",
350
+ "locator",
351
+ "parser"
352
+ ]
353
+ },
354
+ "invocationProfile": {
355
+ "type": "object",
356
+ "additionalProperties": false,
357
+ "properties": {
358
+ "transport": {
359
+ "enum": [
360
+ "shell",
361
+ "mcp"
362
+ ]
363
+ },
364
+ "supportedVersions": {
365
+ "type": "string",
366
+ "minLength": 1
367
+ },
368
+ "controls": {
369
+ "type": "object",
370
+ "additionalProperties": {
371
+ "type": "object",
372
+ "additionalProperties": false,
373
+ "properties": {
374
+ "support": {
375
+ "enum": [
376
+ "native",
377
+ "external",
378
+ "not-applicable",
379
+ "unqualified"
380
+ ]
381
+ },
382
+ "mapping": {
383
+ "type": "string",
384
+ "maxLength": 2048
385
+ },
386
+ "evidence": {
387
+ "type": "string",
388
+ "maxLength": 2048
389
+ }
390
+ },
391
+ "required": [
392
+ "support",
393
+ "mapping",
394
+ "evidence"
395
+ ]
396
+ },
397
+ "required": [
398
+ "model",
399
+ "effort",
400
+ "sandbox",
401
+ "approval",
402
+ "workdir",
403
+ "finalOutput",
404
+ "stdin",
405
+ "structuredOutput",
406
+ "stepCap",
407
+ "trust",
408
+ "children",
409
+ "fallback"
410
+ ],
411
+ "properties": {
412
+ "model": {
413
+ "$ref": "#/$defs/invocationProfile/properties/controls/additionalProperties"
414
+ },
415
+ "effort": {
416
+ "$ref": "#/$defs/invocationProfile/properties/controls/additionalProperties"
417
+ },
418
+ "sandbox": {
419
+ "$ref": "#/$defs/invocationProfile/properties/controls/additionalProperties"
420
+ },
421
+ "approval": {
422
+ "$ref": "#/$defs/invocationProfile/properties/controls/additionalProperties"
423
+ },
424
+ "workdir": {
425
+ "$ref": "#/$defs/invocationProfile/properties/controls/additionalProperties"
426
+ },
427
+ "finalOutput": {
428
+ "$ref": "#/$defs/invocationProfile/properties/controls/additionalProperties"
429
+ },
430
+ "stdin": {
431
+ "$ref": "#/$defs/invocationProfile/properties/controls/additionalProperties"
432
+ },
433
+ "structuredOutput": {
434
+ "$ref": "#/$defs/invocationProfile/properties/controls/additionalProperties"
435
+ },
436
+ "stepCap": {
437
+ "$ref": "#/$defs/invocationProfile/properties/controls/additionalProperties"
438
+ },
439
+ "trust": {
440
+ "$ref": "#/$defs/invocationProfile/properties/controls/additionalProperties"
441
+ },
442
+ "children": {
443
+ "$ref": "#/$defs/invocationProfile/properties/controls/additionalProperties"
444
+ },
445
+ "fallback": {
446
+ "$ref": "#/$defs/invocationProfile/properties/controls/additionalProperties"
447
+ }
448
+ }
449
+ },
450
+ "envAllowlist": {
451
+ "type": "array",
452
+ "items": {
453
+ "type": "string"
454
+ },
455
+ "uniqueItems": true
456
+ },
457
+ "pitfalls": {
458
+ "type": "array",
459
+ "items": {
460
+ "type": "string",
461
+ "maxLength": 2048
462
+ }
463
+ },
464
+ "mcp": {
465
+ "type": "object",
466
+ "additionalProperties": false,
467
+ "properties": {
468
+ "serverRef": {
469
+ "type": "string"
470
+ },
471
+ "tool": {
472
+ "type": "string"
473
+ },
474
+ "inputSchemaDigest": {
475
+ "type": "string",
476
+ "pattern": "^sha256:[a-f0-9]{64}$"
477
+ },
478
+ "outputSchemaDigest": {
479
+ "type": "string",
480
+ "pattern": "^sha256:[a-f0-9]{64}$"
481
+ },
482
+ "sessionIsolation": {
483
+ "enum": [
484
+ "per-call",
485
+ "per-instance",
486
+ "serialized"
487
+ ]
488
+ },
489
+ "cancel": {
490
+ "enum": [
491
+ "confirmed",
492
+ "uncertain"
493
+ ]
494
+ }
495
+ },
496
+ "required": [
497
+ "serverRef",
498
+ "tool",
499
+ "inputSchemaDigest",
500
+ "outputSchemaDigest",
501
+ "sessionIsolation",
502
+ "cancel"
503
+ ]
504
+ },
505
+ "installationQualification": {
506
+ "type": "object",
507
+ "additionalProperties": false,
508
+ "properties": {
509
+ "scopeDigest": {
510
+ "type": "string",
511
+ "pattern": "^sha256:[a-f0-9]{64}$"
512
+ },
513
+ "fixtureDigest": {
514
+ "type": "string",
515
+ "pattern": "^sha256:[a-f0-9]{64}$"
516
+ },
517
+ "verifiedAt": {
518
+ "type": "string",
519
+ "format": "date-time"
520
+ },
521
+ "evidenceRef": {
522
+ "type": "string",
523
+ "minLength": 1
524
+ }
525
+ },
526
+ "required": [
527
+ "scopeDigest",
528
+ "fixtureDigest",
529
+ "verifiedAt",
530
+ "evidenceRef"
531
+ ]
532
+ },
533
+ "health": {
534
+ "type": "object",
535
+ "additionalProperties": false,
536
+ "properties": {
537
+ "version": {
538
+ "const": 1
539
+ },
540
+ "handshake": {
541
+ "enum": [
542
+ "semantic",
543
+ "process-only",
544
+ "unobserved"
545
+ ]
546
+ },
547
+ "outputFraming": {
548
+ "enum": [
549
+ "jsonl",
550
+ "plain",
551
+ "final-json",
552
+ "http-stream",
553
+ "mcp-progress",
554
+ "opaque"
555
+ ]
556
+ },
557
+ "signalParser": {
558
+ "type": "string",
559
+ "minLength": 1,
560
+ "maxLength": 4096
561
+ },
562
+ "sessionLogLocator": {
563
+ "type": [
564
+ "string",
565
+ "null"
566
+ ],
567
+ "maxLength": 4096
568
+ },
569
+ "progressEvidence": {
570
+ "type": "array",
571
+ "maxItems": 16,
572
+ "items": {
573
+ "type": "string",
574
+ "minLength": 1,
575
+ "maxLength": 4096
576
+ }
577
+ },
578
+ "stopEvidence": {
579
+ "type": "string",
580
+ "minLength": 1,
581
+ "maxLength": 4096
582
+ },
583
+ "fixtureRef": {
584
+ "type": "string",
585
+ "minLength": 1,
586
+ "maxLength": 4096
587
+ },
588
+ "qualifiedAt": {
589
+ "type": [
590
+ "string",
591
+ "null"
592
+ ],
593
+ "format": "date-time"
594
+ },
595
+ "statusOperation": {
596
+ "type": [
597
+ "string",
598
+ "null"
599
+ ],
600
+ "maxLength": 256
601
+ },
602
+ "cancelOperation": {
603
+ "type": [
604
+ "string",
605
+ "null"
606
+ ],
607
+ "maxLength": 256
608
+ },
609
+ "coverage": {
610
+ "enum": [
611
+ "full",
612
+ "degraded",
613
+ "unobserved"
614
+ ]
615
+ },
616
+ "qualificationTarget": {
617
+ "enum": [
618
+ "semantic",
619
+ "process-only",
620
+ "unobserved"
621
+ ]
622
+ },
623
+ "evidenceGrades": {
624
+ "type": "array",
625
+ "maxItems": 3,
626
+ "uniqueItems": true,
627
+ "items": {
628
+ "enum": [
629
+ "H",
630
+ "R",
631
+ "D"
632
+ ]
633
+ }
634
+ },
635
+ "provenance": {
636
+ "type": "array",
637
+ "maxItems": 16,
638
+ "items": {
639
+ "type": "object",
640
+ "additionalProperties": false,
641
+ "properties": {
642
+ "kind": {
643
+ "enum": [
644
+ "help",
645
+ "repository",
646
+ "documentation",
647
+ "synthetic"
648
+ ]
649
+ },
650
+ "ref": {
651
+ "type": "string",
652
+ "minLength": 1,
653
+ "maxLength": 4096
654
+ },
655
+ "observedAt": {
656
+ "type": "string",
657
+ "format": "date-time"
658
+ },
659
+ "cliVersion": {
660
+ "type": [
661
+ "string",
662
+ "null"
663
+ ],
664
+ "minLength": 1,
665
+ "maxLength": 256
666
+ }
667
+ },
668
+ "required": [
669
+ "kind",
670
+ "ref",
671
+ "observedAt",
672
+ "cliVersion"
673
+ ]
674
+ }
675
+ },
676
+ "qualificationOwner": {
677
+ "type": "string",
678
+ "pattern": "^B-OG-[0-9]{2}$"
679
+ },
680
+ "qualification": {
681
+ "type": "object",
682
+ "additionalProperties": false,
683
+ "properties": {
684
+ "status": {
685
+ "enum": [
686
+ "unqualified",
687
+ "synthetic",
688
+ "live-qualified"
689
+ ]
690
+ },
691
+ "scopeDigest": {
692
+ "type": [
693
+ "string",
694
+ "null"
695
+ ],
696
+ "pattern": "^sha256:[a-f0-9]{64}$"
697
+ },
698
+ "cliVersion": {
699
+ "type": [
700
+ "string",
701
+ "null"
702
+ ],
703
+ "minLength": 1,
704
+ "maxLength": 256
705
+ },
706
+ "accountScope": {
707
+ "type": [
708
+ "string",
709
+ "null"
710
+ ],
711
+ "minLength": 1,
712
+ "maxLength": 256
713
+ },
714
+ "profileRef": {
715
+ "type": [
716
+ "string",
717
+ "null"
718
+ ],
719
+ "minLength": 1,
720
+ "maxLength": 256
721
+ },
722
+ "modelKey": {
723
+ "type": [
724
+ "string",
725
+ "null"
726
+ ],
727
+ "minLength": 1,
728
+ "maxLength": 4096
729
+ },
730
+ "effort": {
731
+ "type": [
732
+ "string",
733
+ "null"
734
+ ],
735
+ "minLength": 1,
736
+ "maxLength": 256
737
+ },
738
+ "authorizedLive": {
739
+ "type": "boolean"
740
+ }
741
+ },
742
+ "required": [
743
+ "status",
744
+ "scopeDigest",
745
+ "cliVersion",
746
+ "accountScope",
747
+ "profileRef",
748
+ "modelKey",
749
+ "effort",
750
+ "authorizedLive"
751
+ ],
752
+ "allOf": [
753
+ {
754
+ "if": {
755
+ "properties": {
756
+ "status": {
757
+ "enum": [
758
+ "synthetic",
759
+ "live-qualified"
760
+ ]
761
+ }
762
+ }
763
+ },
764
+ "then": {
765
+ "properties": {
766
+ "scopeDigest": {
767
+ "type": "string"
768
+ },
769
+ "cliVersion": {
770
+ "type": "string"
771
+ },
772
+ "accountScope": {
773
+ "type": "string"
774
+ },
775
+ "profileRef": {
776
+ "type": "string"
777
+ },
778
+ "modelKey": {
779
+ "type": "string"
780
+ }
781
+ }
782
+ }
783
+ },
784
+ {
785
+ "if": {
786
+ "properties": {
787
+ "status": {
788
+ "const": "live-qualified"
789
+ }
790
+ }
791
+ },
792
+ "then": {
793
+ "properties": {
794
+ "authorizedLive": {
795
+ "const": true
796
+ }
797
+ }
798
+ }
799
+ }
800
+ ]
801
+ }
802
+ },
803
+ "required": [
804
+ "version",
805
+ "handshake",
806
+ "outputFraming",
807
+ "signalParser",
808
+ "sessionLogLocator",
809
+ "progressEvidence",
810
+ "stopEvidence",
811
+ "fixtureRef",
812
+ "qualifiedAt",
813
+ "statusOperation",
814
+ "cancelOperation"
815
+ ],
816
+ "allOf": [
817
+ {
818
+ "if": {
819
+ "required": [
820
+ "qualification"
821
+ ],
822
+ "properties": {
823
+ "qualification": {
824
+ "properties": {
825
+ "status": {
826
+ "enum": [
827
+ "synthetic",
828
+ "live-qualified"
829
+ ]
830
+ }
831
+ },
832
+ "type": "object"
833
+ }
834
+ }
835
+ },
836
+ "then": {
837
+ "properties": {
838
+ "qualifiedAt": {
839
+ "type": "string"
840
+ }
841
+ }
842
+ }
843
+ }
844
+ ]
845
+ }
846
+ },
847
+ "required": [
848
+ "transport",
849
+ "supportedVersions",
850
+ "controls",
851
+ "envAllowlist",
852
+ "pitfalls"
853
+ ],
854
+ "allOf": [
855
+ {
856
+ "if": {
857
+ "properties": {
858
+ "transport": {
859
+ "const": "mcp"
860
+ }
861
+ }
862
+ },
863
+ "then": {
864
+ "properties": {
865
+ "mcp": {}
866
+ },
867
+ "required": [
868
+ "mcp"
869
+ ]
870
+ }
871
+ }
872
+ ]
873
+ },
874
+ "workerAdapter": {
875
+ "type": "object",
876
+ "additionalProperties": false,
877
+ "properties": {
878
+ "version": {
879
+ "const": 1
880
+ },
881
+ "id": {
882
+ "type": "string",
883
+ "minLength": 1
884
+ },
885
+ "provider": {
886
+ "type": "string",
887
+ "minLength": 1
888
+ },
889
+ "adapterVersion": {
890
+ "type": "string",
891
+ "minLength": 1
892
+ },
893
+ "supportedVersions": {
894
+ "type": "string",
895
+ "minLength": 1
896
+ },
897
+ "runtimeDriver": {
898
+ "type": "string",
899
+ "minLength": 1
900
+ },
901
+ "catalogAdapter": {
902
+ "$ref": "#/$defs/catalogAdapter"
903
+ },
904
+ "invocation": {
905
+ "oneOf": [
906
+ {
907
+ "$ref": "#/$defs/process"
908
+ },
909
+ {
910
+ "$ref": "#/$defs/http"
911
+ }
912
+ ]
913
+ },
914
+ "capabilities": {
915
+ "type": "object",
916
+ "additionalProperties": false,
917
+ "properties": {
918
+ "output": {
919
+ "enum": [
920
+ "native-schema",
921
+ "validated-file",
922
+ "text"
923
+ ]
924
+ },
925
+ "modelPin": {
926
+ "enum": [
927
+ "observed",
928
+ "requested",
929
+ "unsupported"
930
+ ]
931
+ },
932
+ "effort": {
933
+ "enum": [
934
+ "explicit",
935
+ "not-applicable",
936
+ "unsupported"
937
+ ]
938
+ },
939
+ "cancel": {
940
+ "enum": [
941
+ "process-group",
942
+ "session",
943
+ "none"
944
+ ]
945
+ },
946
+ "resume": {
947
+ "type": "boolean"
948
+ },
949
+ "sandboxModes": {
950
+ "type": "array",
951
+ "items": {
952
+ "enum": [
953
+ "read-only",
954
+ "workspace-write",
955
+ "external"
956
+ ]
957
+ },
958
+ "minItems": 1,
959
+ "uniqueItems": true
960
+ },
961
+ "nestedAgentsControllable": {
962
+ "type": "boolean"
963
+ },
964
+ "nativeFallbackControllable": {
965
+ "type": "boolean"
966
+ },
967
+ "hardBudget": {
968
+ "type": "array",
969
+ "items": {
970
+ "enum": [
971
+ "tokens",
972
+ "cost",
973
+ "wall-time"
974
+ ]
975
+ },
976
+ "minItems": 0,
977
+ "uniqueItems": true
978
+ }
979
+ },
980
+ "required": [
981
+ "output",
982
+ "modelPin",
983
+ "effort",
984
+ "cancel",
985
+ "resume",
986
+ "sandboxModes",
987
+ "nestedAgentsControllable",
988
+ "nativeFallbackControllable",
989
+ "hardBudget"
990
+ ]
991
+ },
992
+ "qualification": {
993
+ "type": "object",
994
+ "additionalProperties": false,
995
+ "properties": {
996
+ "status": {
997
+ "enum": [
998
+ "unqualified",
999
+ "qualified"
1000
+ ]
1001
+ },
1002
+ "fixtureDigest": {
1003
+ "type": "string",
1004
+ "minLength": 1,
1005
+ "pattern": "^sha256:[a-f0-9]{64}$"
1006
+ },
1007
+ "verifiedAt": {
1008
+ "type": "string",
1009
+ "minLength": 1,
1010
+ "format": "date-time"
1011
+ },
1012
+ "evidenceRef": {
1013
+ "type": "string",
1014
+ "minLength": 1
1015
+ }
1016
+ },
1017
+ "required": [
1018
+ "status"
1019
+ ],
1020
+ "allOf": [
1021
+ {
1022
+ "if": {
1023
+ "properties": {
1024
+ "status": {
1025
+ "const": "qualified"
1026
+ }
1027
+ }
1028
+ },
1029
+ "then": {
1030
+ "properties": {
1031
+ "fixtureDigest": {},
1032
+ "verifiedAt": {},
1033
+ "evidenceRef": {}
1034
+ },
1035
+ "required": [
1036
+ "fixtureDigest",
1037
+ "verifiedAt",
1038
+ "evidenceRef"
1039
+ ]
1040
+ }
1041
+ }
1042
+ ]
1043
+ },
1044
+ "invocationProfiles": {
1045
+ "type": "object",
1046
+ "minProperties": 1,
1047
+ "additionalProperties": {
1048
+ "$ref": "#/$defs/invocationProfile"
1049
+ }
1050
+ }
1051
+ },
1052
+ "required": [
1053
+ "version",
1054
+ "id",
1055
+ "provider",
1056
+ "adapterVersion",
1057
+ "supportedVersions",
1058
+ "runtimeDriver",
1059
+ "catalogAdapter",
1060
+ "invocation",
1061
+ "capabilities",
1062
+ "qualification"
1063
+ ]
1064
+ }
1065
+ }
1066
+ }