@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,301 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://aiwg.io/schemas/models/model-catalog.v1.schema.json",
4
+ "title": "AIWG refreshable provider model catalog",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["version", "refreshedAt", "staleAfterDays", "providers"],
8
+ "properties": {
9
+ "version": { "const": "1.0.0" },
10
+ "refreshedAt": { "type": "string", "format": "date" },
11
+ "staleAfterDays": { "type": "integer", "minimum": 1 },
12
+ "providers": {
13
+ "type": "object",
14
+ "additionalProperties": {
15
+ "type": "object",
16
+ "required": ["roles", "sourceUrl", "verifiedAt"],
17
+ "properties": {
18
+ "roles": {
19
+ "type": "object",
20
+ "required": ["reasoning", "coding", "efficiency"],
21
+ "properties": {
22
+ "reasoning": { "$ref": "#/$defs/model" },
23
+ "coding": { "$ref": "#/$defs/model" },
24
+ "efficiency": { "$ref": "#/$defs/model" }
25
+ }
26
+ },
27
+ "sourceUrl": { "type": "string", "format": "uri" },
28
+ "verifiedAt": { "type": "string", "format": "date" }
29
+ }
30
+ }
31
+ },
32
+ "discovery": {
33
+ "type": "object",
34
+ "additionalProperties": false,
35
+ "required": ["source", "fetchedAt", "providers"],
36
+ "properties": {
37
+ "source": { "enum": ["native", "cache", "remote", "static"] },
38
+ "upstreamSource": { "enum": ["native", "remote", "static"] },
39
+ "fetchedAt": { "type": "string", "format": "date-time" },
40
+ "remoteUrl": { "type": "string", "format": "uri" },
41
+ "remoteError": { "type": "string" },
42
+ "inventorySignature": { "type": "string" },
43
+ "providers": {
44
+ "type": "object",
45
+ "additionalProperties": { "$ref": "#/$defs/providerDiscovery" }
46
+ },
47
+ "instances": {
48
+ "type": "object",
49
+ "additionalProperties": { "$ref": "#/$defs/providerDiscovery" }
50
+ }
51
+ }
52
+ },
53
+ "$schema": { "const": "../../../schemas/models/model-catalog.v1.schema.json" }
54
+ },
55
+ "$defs": {
56
+ "model": {
57
+ "type": "object",
58
+ "additionalProperties": false,
59
+ "required": ["id", "status"],
60
+ "properties": {
61
+ "id": { "type": "string", "minLength": 1 },
62
+ "status": { "enum": ["active", "deprecated", "unverified"] },
63
+ "fallback": { "type": "string", "minLength": 1 },
64
+ "observed": { "type": "boolean" }
65
+ }
66
+ },
67
+ "workerObservation": {
68
+ "type": "object",
69
+ "additionalProperties": false,
70
+ "properties": {
71
+ "version": { "const": 1 },
72
+ "recordId": { "type": "string", "minLength": 1 },
73
+ "cliId": { "type": "string", "minLength": 1 },
74
+ "family": { "type": "string", "minLength": 1 },
75
+ "runtimeVersion": { "type": "string", "minLength": 1 },
76
+ "accountScope": { "type": "string", "minLength": 1 },
77
+ "endpointFingerprint": { "type": "string", "minLength": 1 },
78
+ "observedAt": { "type": "string", "minLength": 1, "format": "date-time" },
79
+ "verifiedAt": { "type": "string", "minLength": 1, "format": "date-time" },
80
+ "releaseDate": { "type": ["string", "null"], "format": "date" },
81
+ "releaseDateKind": { "enum": ["official", "reported", "unknown"] },
82
+ "visibility": { "enum": ["listed", "hidden", "unknown"] },
83
+ "availability": { "enum": ["accessible", "unavailable", "unknown"] },
84
+ "lifecycle": { "enum": ["active", "deprecated", "retired", "unverified"] },
85
+ "sunsetAt": { "type": ["string", "null"], "format": "date-time" },
86
+ "replacementModelId": { "type": "string", "minLength": 1 },
87
+ "contextTokens": { "type": ["integer", "null"], "minimum": 1 },
88
+ "maxOutputTokens": { "type": ["integer", "null"], "minimum": 1 },
89
+ "modalities": {
90
+ "type": "array",
91
+ "items": { "enum": ["text", "image", "audio", "video"] },
92
+ "minItems": 1,
93
+ "uniqueItems": true
94
+ },
95
+ "efforts": {
96
+ "type": "array",
97
+ "items": {
98
+ "type": "object",
99
+ "additionalProperties": false,
100
+ "properties": {
101
+ "id": { "type": "string", "minLength": 1 },
102
+ "selfDelegates": { "type": ["boolean", "null"] }
103
+ },
104
+ "required": ["id", "selfDelegates"]
105
+ },
106
+ "minItems": 0,
107
+ "uniqueItems": true
108
+ },
109
+ "pricing": {
110
+ "type": "object",
111
+ "additionalProperties": false,
112
+ "properties": {
113
+ "costClass": { "enum": ["economy", "standard", "premium", "unknown"] },
114
+ "billing": { "enum": ["metered", "subscription", "local", "unknown"] },
115
+ "currency": { "const": "USD" },
116
+ "inputPerMillion": { "type": ["number", "null"], "minimum": 0 },
117
+ "outputPerMillion": { "type": ["number", "null"], "minimum": 0 }
118
+ },
119
+ "required": ["costClass", "billing", "currency", "inputPerMillion", "outputPerMillion"]
120
+ },
121
+ "dataUse": {
122
+ "type": "object",
123
+ "additionalProperties": false,
124
+ "properties": {
125
+ "processing": { "enum": ["local", "remote", "unknown"] },
126
+ "productImprovement": { "type": ["boolean", "null"] },
127
+ "retentionDays": { "type": ["integer", "null"], "minimum": 0 }
128
+ },
129
+ "required": ["processing", "productImprovement", "retentionDays"]
130
+ },
131
+ "qualification": {
132
+ "type": "object",
133
+ "additionalProperties": false,
134
+ "properties": {
135
+ "status": { "enum": ["qualified", "unqualified"] },
136
+ "roles": {
137
+ "type": "array",
138
+ "items": { "type": "string", "minLength": 1 },
139
+ "minItems": 0,
140
+ "uniqueItems": true
141
+ },
142
+ "fixtureDigest": { "type": "string", "minLength": 1, "pattern": "^sha256:[a-f0-9]{64}$" },
143
+ "verifiedAt": { "type": "string", "minLength": 1, "format": "date-time" },
144
+ "evidenceRef": { "type": "string", "minLength": 1 }
145
+ },
146
+ "required": ["status", "roles"],
147
+ "allOf": [
148
+ {
149
+ "if": {
150
+ "properties": {
151
+ "status": { "const": "qualified" }
152
+ }
153
+ },
154
+ "then": {
155
+ "required": ["fixtureDigest", "verifiedAt", "evidenceRef"],
156
+ "properties": {
157
+ "fixtureDigest": {},
158
+ "verifiedAt": {},
159
+ "evidenceRef": {}
160
+ }
161
+ }
162
+ }
163
+ ]
164
+ },
165
+ "evidenceDigest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
166
+ "conflicts": {
167
+ "type": "array", "minItems": 1,
168
+ "items": {
169
+ "type": "object", "additionalProperties": false,
170
+ "required": ["field", "evidence"],
171
+ "properties": {
172
+ "field": { "type": "string", "pattern": "^/" },
173
+ "evidence": {
174
+ "type": "array", "minItems": 2,
175
+ "items": {
176
+ "type": "object", "additionalProperties": false,
177
+ "required": ["value", "source", "pointer", "observedAt", "digest"],
178
+ "properties": {
179
+ "value": {},
180
+ "source": { "type": "string", "minLength": 1 },
181
+ "pointer": { "type": "string", "pattern": "^/" },
182
+ "observedAt": { "type": "string", "format": "date-time" },
183
+ "digest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" }
184
+ }
185
+ }
186
+ }
187
+ }
188
+ }
189
+ },
190
+ "provenance": {
191
+ "type": "array",
192
+ "items": {
193
+ "type": "object",
194
+ "additionalProperties": false,
195
+ "properties": {
196
+ "fields": {
197
+ "type": "array",
198
+ "items": { "type": "string", "minLength": 1, "pattern": "^/" },
199
+ "minItems": 1,
200
+ "uniqueItems": true
201
+ },
202
+ "source": { "type": "string", "minLength": 1 },
203
+ "kind": { "enum": ["native", "official", "operator", "derived"] },
204
+ "observedAt": { "type": "string", "minLength": 1, "format": "date-time" },
205
+ "digest": { "type": "string", "minLength": 1, "pattern": "^sha256:[a-f0-9]{64}$" },
206
+ "confidence": { "enum": ["verified", "reported", "derived", "unknown"] }
207
+ },
208
+ "required": ["fields", "source", "kind", "observedAt", "digest", "confidence"]
209
+ },
210
+ "minItems": 1,
211
+ "uniqueItems": true
212
+ },
213
+ "firstObservedAt": { "type": "string", "minLength": 1, "format": "date-time" },
214
+ "fetchedAt": { "type": "string", "minLength": 1, "format": "date-time" },
215
+ "retiredAt": { "type": ["string", "null"], "format": "date-time" },
216
+ "supersededBy": { "type": "string", "minLength": 1 },
217
+ "effortSupport": { "enum": ["explicit", "not-applicable", "unknown"] }
218
+ },
219
+ "required": ["version", "recordId", "cliId", "family", "runtimeVersion", "accountScope", "endpointFingerprint", "observedAt", "verifiedAt", "releaseDate", "releaseDateKind", "visibility", "availability", "lifecycle", "contextTokens", "maxOutputTokens", "modalities", "efforts", "pricing", "dataUse", "qualification", "provenance", "firstObservedAt", "fetchedAt", "retiredAt", "effortSupport"],
220
+ "allOf": [
221
+ {
222
+ "if": {
223
+ "properties": {
224
+ "releaseDate": { "type": "null" }
225
+ }
226
+ },
227
+ "then": {
228
+ "properties": {
229
+ "releaseDateKind": { "const": "unknown" }
230
+ }
231
+ },
232
+ "else": {
233
+ "properties": {
234
+ "releaseDateKind": { "enum": ["official", "reported"] }
235
+ }
236
+ }
237
+ },
238
+ {
239
+ "if": {
240
+ "properties": {
241
+ "effortSupport": { "const": "explicit" }
242
+ }
243
+ },
244
+ "then": {
245
+ "properties": {
246
+ "efforts": { "minItems": 1, "type": "array" }
247
+ }
248
+ },
249
+ "else": {
250
+ "properties": {
251
+ "efforts": { "maxItems": 0, "type": "array" }
252
+ }
253
+ }
254
+ }
255
+ ]
256
+ },
257
+ "discoveredModel": {
258
+ "type": "object",
259
+ "additionalProperties": false,
260
+ "required": ["id"],
261
+ "properties": {
262
+ "id": { "type": "string", "minLength": 1 },
263
+ "alias": { "type": "string" },
264
+ "apiModelId": { "type": "string" },
265
+ "displayName": { "type": "string" },
266
+ "llmProvider": { "type": "string" },
267
+ "hidden": { "type": "boolean" },
268
+ "isDefault": { "type": "boolean" },
269
+ "reasoningEfforts": {
270
+ "type": "array",
271
+ "items": { "type": "string" }
272
+ },
273
+ "capabilities": {
274
+ "type": "array",
275
+ "items": { "type": "string" }
276
+ },
277
+ "credentialState": { "enum": ["available", "unavailable", "session", "unknown"] },
278
+ "worker": { "$ref": "#/$defs/workerObservation" }
279
+ }
280
+ },
281
+ "providerDiscovery": {
282
+ "type": "object",
283
+ "required": ["provider", "source", "observedAt", "accountScope", "models"],
284
+ "properties": {
285
+ "provider": { "type": "string" },
286
+ "source": { "enum": ["native", "cache", "remote", "static"] },
287
+ "observedAt": { "type": "string", "format": "date-time" },
288
+ "runtimeVersion": { "type": "string" },
289
+ "accountScope": { "enum": ["local-account", "local-runtime", "public-feed", "static"] },
290
+ "accountBinding": { "type": "string", "minLength": 1 },
291
+ "models": {
292
+ "type": "array",
293
+ "items": { "$ref": "#/$defs/discoveredModel" }
294
+ },
295
+ "errorKind": { "enum": ["authentication", "rate-limit", "timeout", "unsupported", "invalid-output", "command"] },
296
+ "error": { "type": "string" },
297
+ "policy": { "type": "object" }
298
+ }
299
+ }
300
+ }
301
+ }
@@ -0,0 +1,281 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://aiwg.io/schemas/models/model-config-compatibility.v1.schema.json",
4
+ "title": "AIWG model configuration compatibility input",
5
+ "description": "Accepted project/user inputs during migration from legacy model aliases and max-quality.",
6
+ "type": "object",
7
+ "additionalProperties": true,
8
+ "properties": {
9
+ "defaults": {
10
+ "type": "object",
11
+ "additionalProperties": false,
12
+ "properties": {
13
+ "workerSelection": {
14
+ "type": "object",
15
+ "additionalProperties": false,
16
+ "properties": {
17
+ "roleGuidance": {
18
+ "type": "object",
19
+ "additionalProperties": {
20
+ "$ref": "#/$defs/workerRole"
21
+ },
22
+ "propertyNames": {
23
+ "pattern": "^[a-z][a-z0-9-]{0,62}$"
24
+ }
25
+ },
26
+ "guards": {
27
+ "type": "object",
28
+ "additionalProperties": false,
29
+ "properties": {
30
+ "deniedEfforts": {
31
+ "type": "array",
32
+ "items": {
33
+ "type": "string",
34
+ "minLength": 1
35
+ },
36
+ "minItems": 0,
37
+ "uniqueItems": true,
38
+ "default": [
39
+ "ultra"
40
+ ]
41
+ },
42
+ "deniedModels": {
43
+ "type": "array",
44
+ "items": {
45
+ "type": "string",
46
+ "minLength": 1
47
+ },
48
+ "minItems": 0,
49
+ "uniqueItems": true,
50
+ "default": []
51
+ },
52
+ "denySelfDelegation": {
53
+ "type": "boolean",
54
+ "default": true
55
+ },
56
+ "requireExactModel": {
57
+ "type": "boolean",
58
+ "default": true
59
+ },
60
+ "allowedVisibility": {
61
+ "type": "array",
62
+ "uniqueItems": true,
63
+ "items": {
64
+ "enum": [
65
+ "listed",
66
+ "hidden"
67
+ ]
68
+ },
69
+ "default": [
70
+ "listed"
71
+ ]
72
+ },
73
+ "allowedLifecycle": {
74
+ "type": "array",
75
+ "uniqueItems": true,
76
+ "items": {
77
+ "enum": [
78
+ "active",
79
+ "deprecated"
80
+ ]
81
+ },
82
+ "default": [
83
+ "active"
84
+ ]
85
+ },
86
+ "minimumIdentityEvidence": {
87
+ "enum": [
88
+ "runtime-configured",
89
+ "backend-attested"
90
+ ],
91
+ "default": "runtime-configured"
92
+ }
93
+ }
94
+ },
95
+ "dataPolicy": {
96
+ "$ref": "#/$defs/workerDataPolicy"
97
+ },
98
+ "freshness": {
99
+ "type": "object",
100
+ "additionalProperties": false,
101
+ "properties": {
102
+ "warnHours": {
103
+ "type": "integer",
104
+ "minimum": 1,
105
+ "default": 24
106
+ },
107
+ "blockHours": {
108
+ "type": "integer",
109
+ "minimum": 1,
110
+ "default": 168
111
+ },
112
+ "policyDays": {
113
+ "type": "integer",
114
+ "minimum": 1,
115
+ "default": 30
116
+ }
117
+ }
118
+ },
119
+ "taskClasses": {
120
+ "type": "object",
121
+ "propertyNames": {
122
+ "pattern": "^[a-z][a-z0-9-]{0,62}$"
123
+ },
124
+ "additionalProperties": {
125
+ "type": "string",
126
+ "minLength": 1
127
+ }
128
+ },
129
+ "dataClasses": {
130
+ "type": "object",
131
+ "propertyNames": {
132
+ "pattern": "^[a-z][a-z0-9-]{0,62}$"
133
+ },
134
+ "additionalProperties": {
135
+ "$ref": "#/$defs/workerDataPolicy"
136
+ }
137
+ }
138
+ }
139
+ },
140
+ "tier": { "enum": ["economy", "standard", "premium", "max-quality"] },
141
+ "provider": {
142
+ "enum": ["claude", "codex", "copilot", "cursor", "factory", "grokbot", "hermes", "muse", "opencode", "openclaw", "openhuman", "warp", "windsurf"]
143
+ }
144
+ }
145
+ },
146
+ "agentOverrides": {
147
+ "type": "object",
148
+ "additionalProperties": {
149
+ "type": "object",
150
+ "additionalProperties": false,
151
+ "properties": {
152
+ "model-tier": { "enum": ["economy", "standard", "premium", "max-quality"] },
153
+ "model-override": { "type": "string", "minLength": 1 },
154
+ "rationale": { "type": "string", "minLength": 1 }
155
+ }
156
+ }
157
+ },
158
+ "customTiers": {
159
+ "type": "object",
160
+ "additionalProperties": {
161
+ "type": "object",
162
+ "additionalProperties": false,
163
+ "required": ["description", "costMultiplier", "roleMapping"],
164
+ "properties": {
165
+ "description": { "type": "string", "minLength": 1 },
166
+ "costMultiplier": { "type": "number", "minimum": 0 },
167
+ "roleMapping": {
168
+ "type": "object",
169
+ "additionalProperties": false,
170
+ "required": ["reasoning", "coding", "efficiency"],
171
+ "properties": {
172
+ "reasoning": { "enum": ["reasoning", "coding", "efficiency"] },
173
+ "coding": { "enum": ["reasoning", "coding", "efficiency"] },
174
+ "efficiency": { "enum": ["reasoning", "coding", "efficiency"] }
175
+ }
176
+ }
177
+ }
178
+ }
179
+ },
180
+ "rationale": { "type": "string" }
181
+ },
182
+ "$defs": {
183
+ "workerRole": {
184
+ "type": "object",
185
+ "additionalProperties": false,
186
+ "properties": {
187
+ "groups": {
188
+ "type": "array",
189
+ "items": {
190
+ "type": "string",
191
+ "minLength": 1
192
+ },
193
+ "minItems": 1,
194
+ "uniqueItems": true
195
+ },
196
+ "tier": {
197
+ "enum": [
198
+ "economy",
199
+ "standard",
200
+ "premium",
201
+ "max-quality"
202
+ ]
203
+ },
204
+ "initialEffort": {
205
+ "type": [
206
+ "string",
207
+ "null"
208
+ ],
209
+ "minLength": 1
210
+ },
211
+ "effortLadder": {
212
+ "type": "array",
213
+ "items": {
214
+ "type": "string",
215
+ "minLength": 1
216
+ },
217
+ "minItems": 0,
218
+ "uniqueItems": true
219
+ },
220
+ "escalateAfter": {
221
+ "type": "integer",
222
+ "minimum": 1,
223
+ "default": 2
224
+ },
225
+ "maxEscalations": {
226
+ "type": "integer",
227
+ "minimum": 0,
228
+ "default": 2
229
+ },
230
+ "deescalateAfter": {
231
+ "type": "integer",
232
+ "minimum": 1,
233
+ "default": 2
234
+ },
235
+ "allowNotApplicableEffort": {
236
+ "type": "boolean",
237
+ "default": false
238
+ }
239
+ },
240
+ "required": [
241
+ "groups",
242
+ "tier",
243
+ "initialEffort",
244
+ "effortLadder"
245
+ ]
246
+ },
247
+ "workerDataPolicy": {
248
+ "type": "object",
249
+ "additionalProperties": false,
250
+ "properties": {
251
+ "allowedProcessing": {
252
+ "type": "array",
253
+ "items": {
254
+ "enum": [
255
+ "local",
256
+ "remote"
257
+ ]
258
+ },
259
+ "minItems": 0,
260
+ "uniqueItems": true,
261
+ "default": [
262
+ "local",
263
+ "remote"
264
+ ]
265
+ },
266
+ "allowProductImprovement": {
267
+ "type": "boolean",
268
+ "default": false
269
+ },
270
+ "allowUnknown": {
271
+ "type": "boolean",
272
+ "default": false
273
+ },
274
+ "maxRetentionDays": {
275
+ "type": "integer",
276
+ "minimum": 0
277
+ }
278
+ }
279
+ }
280
+ }
281
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://aiwg.io/schemas/models/model-policy.v1.schema.json",
4
+ "title": "AIWG canonical model policy",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["role", "tier"],
8
+ "properties": {
9
+ "role": { "enum": ["efficiency", "coding", "reasoning"] },
10
+ "tier": { "enum": ["economy", "standard", "premium"] },
11
+ "effort": { "enum": ["minimal", "low", "medium", "high", "xhigh"] },
12
+ "override": { "type": "string", "minLength": 1 }
13
+ }
14
+ }