@aiwg/cli 2026.9.9 → 2026.9.10

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 (36) hide show
  1. package/bin/aiwg.mjs +55 -10
  2. package/dist/src/artifacts/cli.js +20 -8
  3. package/dist/src/artifacts/corpus-views/taxonomies.js +1 -1
  4. package/dist/src/cli/handlers/help.js +6 -5
  5. package/dist/src/cli/handlers/init.js +7 -2
  6. package/dist/src/cli/handlers/ralph.js +8 -8
  7. package/dist/src/cli/handlers/steward.js +9 -1
  8. package/dist/src/cli/handlers/use.js +4 -0
  9. package/dist/src/cli/handlers/version.js +13 -4
  10. package/dist/src/cli/services/deployment-verification.js +32 -4
  11. package/dist/src/cli/watch-service.js +43 -3
  12. package/dist/src/dataset/fortemi-capability.d.ts +70 -0
  13. package/dist/src/dataset/fortemi-capability.js +211 -0
  14. package/dist/src/dataset/fortemi-dataset-execution.d.ts +9 -0
  15. package/dist/src/dataset/fortemi-dataset-execution.js +49 -8
  16. package/dist/src/dataset/fortemi-run-receipt.d.ts +1 -0
  17. package/dist/src/dataset/fortemi-run-receipt.js +2 -19
  18. package/dist/src/dataset/fortemi-schema-path.d.ts +7 -0
  19. package/dist/src/dataset/fortemi-schema-path.js +24 -0
  20. package/dist/src/dataset/index.d.ts +1 -0
  21. package/dist/src/dataset/index.js +1 -0
  22. package/dist/src/extensions/project-local-doctor.js +15 -1
  23. package/dist/src/lint/cli.js +5 -1
  24. package/dist/src/lint/reporters.js +17 -0
  25. package/dist/src/lint/runner.js +160 -5
  26. package/dist/src/policy/authorization.js +1 -1
  27. package/dist/src/smiths/context-pipeline/workspace-context.js +102 -63
  28. package/package.json +1 -1
  29. package/schemas/dataset/fortemi-capability-validation/1.0.1/authority.json +61 -0
  30. package/schemas/dataset/fortemi-capability-validation/1.0.1/capability.schema.json +469 -0
  31. package/schemas/security/threat-assessment-report.v1.schema.json +2 -1
  32. package/tools/agents/deploy-agents.mjs +4 -0
  33. package/tools/agents/providers/base.mjs +160 -12
  34. package/tools/agents/providers/claude.mjs +61 -4
  35. package/tools/agents/providers/codex.mjs +9 -0
  36. package/tools/skills/deploy-skills-codex.mjs +121 -7
@@ -0,0 +1,469 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://fortemi.dev/schemas/dataset-execution-capabilities/validation/1.0.1.schema.json",
4
+ "title": "Dataset Capability Validation Revision 1.0.1 (v1 wire)",
5
+ "oneOf": [
6
+ {
7
+ "$ref": "#/$defs/descriptor"
8
+ },
9
+ {
10
+ "$ref": "#/$defs/request"
11
+ },
12
+ {
13
+ "$ref": "#/$defs/result"
14
+ }
15
+ ],
16
+ "$defs": {
17
+ "capabilityId": {
18
+ "enum": [
19
+ "ingest.full",
20
+ "ingest.snapshot",
21
+ "ingest.incremental",
22
+ "ingest.stream",
23
+ "schema.inspect",
24
+ "identity.stable-revision",
25
+ "identity.record",
26
+ "mutation.upsert",
27
+ "mutation.tombstone",
28
+ "mutation.reconcile",
29
+ "checkpoint.read",
30
+ "checkpoint.write",
31
+ "execution.cancel",
32
+ "rejection.record",
33
+ "index.lexical",
34
+ "index.chunk",
35
+ "index.vector",
36
+ "index.hybrid",
37
+ "index.rerank",
38
+ "index.graph",
39
+ "index.community",
40
+ "lineage.dataset",
41
+ "lineage.record",
42
+ "lineage.field",
43
+ "lineage.relationship-evidence",
44
+ "transaction.atomic-batch",
45
+ "privacy.pre-materialization-filter",
46
+ "pagination.cursor",
47
+ "ordering.deterministic"
48
+ ]
49
+ },
50
+ "semver": {
51
+ "type": "string",
52
+ "maxLength": 256,
53
+ "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?:-((?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*)(?:\\.(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\\+([0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*))?$(?![\\s\\S])"
54
+ },
55
+ "digest": {
56
+ "type": "string",
57
+ "pattern": "^[a-z0-9]+:[a-f0-9]+$"
58
+ },
59
+ "limits": {
60
+ "type": "object",
61
+ "additionalProperties": false,
62
+ "properties": {
63
+ "maxInputBytes": {
64
+ "type": "integer",
65
+ "minimum": 0,
66
+ "maximum": 9007199254740991
67
+ },
68
+ "maxRecordBytes": {
69
+ "type": "integer",
70
+ "minimum": 0,
71
+ "maximum": 9007199254740991
72
+ },
73
+ "maxBatchRecords": {
74
+ "type": "integer",
75
+ "minimum": 0,
76
+ "maximum": 9007199254740991
77
+ },
78
+ "maxConcurrency": {
79
+ "type": "integer",
80
+ "minimum": 0,
81
+ "maximum": 9007199254740991
82
+ },
83
+ "maxPageSize": {
84
+ "type": "integer",
85
+ "minimum": 0,
86
+ "maximum": 9007199254740991
87
+ },
88
+ "maxTraversalDepth": {
89
+ "type": "integer",
90
+ "minimum": 0,
91
+ "maximum": 9007199254740991
92
+ }
93
+ }
94
+ },
95
+ "evidence": {
96
+ "type": "object",
97
+ "additionalProperties": false,
98
+ "required": [
99
+ "id",
100
+ "kind",
101
+ "uri"
102
+ ],
103
+ "properties": {
104
+ "id": {
105
+ "type": "string",
106
+ "minLength": 1
107
+ },
108
+ "kind": {
109
+ "enum": [
110
+ "fixture",
111
+ "conformance-report",
112
+ "live-qualification"
113
+ ]
114
+ },
115
+ "uri": {
116
+ "type": "string",
117
+ "minLength": 1
118
+ },
119
+ "digest": {
120
+ "$ref": "#/$defs/digest"
121
+ }
122
+ }
123
+ },
124
+ "capability": {
125
+ "type": "object",
126
+ "additionalProperties": false,
127
+ "required": [
128
+ "id",
129
+ "version",
130
+ "status",
131
+ "evidence"
132
+ ],
133
+ "properties": {
134
+ "id": {
135
+ "$ref": "#/$defs/capabilityId"
136
+ },
137
+ "version": {
138
+ "$ref": "#/$defs/semver"
139
+ },
140
+ "status": {
141
+ "enum": [
142
+ "supported",
143
+ "experimental",
144
+ "unsupported"
145
+ ]
146
+ },
147
+ "limits": {
148
+ "$ref": "#/$defs/limits"
149
+ },
150
+ "evidence": {
151
+ "type": "array",
152
+ "items": {
153
+ "type": "string",
154
+ "minLength": 1
155
+ },
156
+ "uniqueItems": true
157
+ }
158
+ }
159
+ },
160
+ "runtime": {
161
+ "type": "object",
162
+ "additionalProperties": false,
163
+ "required": [
164
+ "id",
165
+ "version",
166
+ "plane",
167
+ "dataClass",
168
+ "maturity"
169
+ ],
170
+ "properties": {
171
+ "id": {
172
+ "type": "string",
173
+ "minLength": 1
174
+ },
175
+ "version": {
176
+ "$ref": "#/$defs/semver"
177
+ },
178
+ "plane": {
179
+ "enum": [
180
+ "browser-local-archive",
181
+ "static-cache",
182
+ "portable-shard",
183
+ "server-process",
184
+ "live-remote-persistence"
185
+ ]
186
+ },
187
+ "dataClass": {
188
+ "enum": [
189
+ "canonical",
190
+ "regenerable-index",
191
+ "static-cache",
192
+ "portable-projection",
193
+ "remote-persistence"
194
+ ]
195
+ },
196
+ "maturity": {
197
+ "enum": [
198
+ "experimental",
199
+ "alpha",
200
+ "beta",
201
+ "stable"
202
+ ]
203
+ }
204
+ }
205
+ },
206
+ "guarantees": {
207
+ "type": "object",
208
+ "additionalProperties": false,
209
+ "required": [
210
+ "transaction",
211
+ "isolation",
212
+ "durability",
213
+ "availability",
214
+ "ordering"
215
+ ],
216
+ "properties": {
217
+ "transaction": {
218
+ "enum": [
219
+ "none",
220
+ "single-record",
221
+ "atomic-batch"
222
+ ]
223
+ },
224
+ "isolation": {
225
+ "enum": [
226
+ "none",
227
+ "snapshot",
228
+ "serializable"
229
+ ]
230
+ },
231
+ "durability": {
232
+ "enum": [
233
+ "process",
234
+ "memory",
235
+ "filesystem",
236
+ "wal",
237
+ "replicated"
238
+ ]
239
+ },
240
+ "availability": {
241
+ "enum": [
242
+ "local-process",
243
+ "single-host",
244
+ "remote-service"
245
+ ]
246
+ },
247
+ "ordering": {
248
+ "enum": [
249
+ "unspecified",
250
+ "stable-identity",
251
+ "backend-cursor"
252
+ ]
253
+ }
254
+ }
255
+ },
256
+ "descriptor": {
257
+ "type": "object",
258
+ "additionalProperties": false,
259
+ "required": [
260
+ "contract",
261
+ "schemaVersion",
262
+ "runtime",
263
+ "guarantees",
264
+ "capabilities",
265
+ "evidence"
266
+ ],
267
+ "properties": {
268
+ "contract": {
269
+ "const": "fortemi.dataset-execution-capabilities/v1"
270
+ },
271
+ "schemaVersion": {
272
+ "$ref": "#/$defs/semver"
273
+ },
274
+ "runtime": {
275
+ "$ref": "#/$defs/runtime"
276
+ },
277
+ "guarantees": {
278
+ "$ref": "#/$defs/guarantees"
279
+ },
280
+ "capabilities": {
281
+ "type": "array",
282
+ "items": {
283
+ "$ref": "#/$defs/capability"
284
+ }
285
+ },
286
+ "evidence": {
287
+ "type": "array",
288
+ "items": {
289
+ "$ref": "#/$defs/evidence"
290
+ }
291
+ }
292
+ }
293
+ },
294
+ "requirement": {
295
+ "type": "object",
296
+ "additionalProperties": false,
297
+ "required": [
298
+ "id"
299
+ ],
300
+ "properties": {
301
+ "id": {
302
+ "$ref": "#/$defs/capabilityId"
303
+ },
304
+ "minimumVersion": {
305
+ "$ref": "#/$defs/semver"
306
+ },
307
+ "minimumLimits": {
308
+ "$ref": "#/$defs/limits"
309
+ }
310
+ }
311
+ },
312
+ "optionalRequirement": {
313
+ "type": "object",
314
+ "additionalProperties": false,
315
+ "required": [
316
+ "id"
317
+ ],
318
+ "properties": {
319
+ "id": {
320
+ "$ref": "#/$defs/capabilityId"
321
+ },
322
+ "minimumVersion": {
323
+ "$ref": "#/$defs/semver"
324
+ },
325
+ "minimumLimits": {
326
+ "$ref": "#/$defs/limits"
327
+ },
328
+ "fallback": {
329
+ "type": "array",
330
+ "items": {
331
+ "$ref": "#/$defs/capabilityId"
332
+ },
333
+ "uniqueItems": true
334
+ }
335
+ }
336
+ },
337
+ "request": {
338
+ "type": "object",
339
+ "additionalProperties": false,
340
+ "required": [
341
+ "contract",
342
+ "required"
343
+ ],
344
+ "properties": {
345
+ "contract": {
346
+ "const": "fortemi.dataset-execution-capabilities/v1"
347
+ },
348
+ "required": {
349
+ "type": "array",
350
+ "items": {
351
+ "$ref": "#/$defs/requirement"
352
+ }
353
+ },
354
+ "optional": {
355
+ "type": "array",
356
+ "items": {
357
+ "$ref": "#/$defs/optionalRequirement"
358
+ }
359
+ }
360
+ }
361
+ },
362
+ "diagnostic": {
363
+ "type": "object",
364
+ "additionalProperties": false,
365
+ "required": [
366
+ "code",
367
+ "message"
368
+ ],
369
+ "properties": {
370
+ "code": {
371
+ "enum": [
372
+ "CONTRACT_MAJOR_UNSUPPORTED",
373
+ "SCHEMA_VERSION_UNSUPPORTED",
374
+ "DESCRIPTOR_INVALID",
375
+ "CAPABILITY_DUPLICATE",
376
+ "CAPABILITY_INCONSISTENT",
377
+ "REQUIRED_CAPABILITY_MISSING",
378
+ "CAPABILITY_VERSION_INSUFFICIENT",
379
+ "CAPABILITY_LIMIT_INSUFFICIENT"
380
+ ]
381
+ },
382
+ "capability": {
383
+ "$ref": "#/$defs/capabilityId"
384
+ },
385
+ "path": {
386
+ "type": "string"
387
+ },
388
+ "message": {
389
+ "type": "string",
390
+ "minLength": 1
391
+ }
392
+ }
393
+ },
394
+ "degradation": {
395
+ "type": "object",
396
+ "additionalProperties": false,
397
+ "required": [
398
+ "requested",
399
+ "reason",
400
+ "changedGuarantees"
401
+ ],
402
+ "properties": {
403
+ "requested": {
404
+ "$ref": "#/$defs/capabilityId"
405
+ },
406
+ "selected": {
407
+ "$ref": "#/$defs/capabilityId"
408
+ },
409
+ "reason": {
410
+ "enum": [
411
+ "unsupported",
412
+ "version-insufficient",
413
+ "limit-insufficient"
414
+ ]
415
+ },
416
+ "changedGuarantees": {
417
+ "type": "array",
418
+ "minItems": 1,
419
+ "items": {
420
+ "type": "string",
421
+ "minLength": 1
422
+ }
423
+ }
424
+ }
425
+ },
426
+ "result": {
427
+ "type": "object",
428
+ "additionalProperties": false,
429
+ "required": [
430
+ "contract",
431
+ "accepted",
432
+ "runtime",
433
+ "selected",
434
+ "degradations",
435
+ "diagnostics"
436
+ ],
437
+ "properties": {
438
+ "contract": {
439
+ "const": "fortemi.dataset-execution-capabilities/v1"
440
+ },
441
+ "accepted": {
442
+ "type": "boolean"
443
+ },
444
+ "runtime": {
445
+ "$ref": "#/$defs/runtime"
446
+ },
447
+ "selected": {
448
+ "type": "array",
449
+ "items": {
450
+ "$ref": "#/$defs/capabilityId"
451
+ },
452
+ "uniqueItems": true
453
+ },
454
+ "degradations": {
455
+ "type": "array",
456
+ "items": {
457
+ "$ref": "#/$defs/degradation"
458
+ }
459
+ },
460
+ "diagnostics": {
461
+ "type": "array",
462
+ "items": {
463
+ "$ref": "#/$defs/diagnostic"
464
+ }
465
+ }
466
+ }
467
+ }
468
+ }
469
+ }
@@ -93,7 +93,8 @@
93
93
  "impact": { "type": "number", "minimum": 1, "maximum": 5 },
94
94
  "taxonomy": { "type": "array", "items": { "type": "string" } },
95
95
  "partId": { "type": "string" },
96
- "context": { "enum": ["requested", "negative", "quoted", "documentation"] },
96
+ "context": { "enum": ["requested", "negative", "quoted", "documentation", "descriptive", "orchestrator-status"] },
97
+ "source": { "type": "object", "additionalProperties": true },
97
98
  "evidence": { "type": "string" },
98
99
  "suppressed": { "type": "boolean" },
99
100
  "suppressionReason": { "type": "string" },
@@ -511,6 +511,7 @@ function parseArgs() {
511
511
  // override these so `aiwg refresh` does not mistake their artifacts for
512
512
  // stale copies of packaged ones.
513
513
  deploySource: null, // Managed-marker source; defaults to 'bundled'
514
+ listingBudget: false, // Honor the provider startup-listing cap despite --copy-all (#2561)
514
515
  deployVersion: null // Managed-marker version; defaults to srcRoot package.json
515
516
  };
516
517
  for (let i = 0; i < args.length; i++) {
@@ -549,6 +550,7 @@ function parseArgs() {
549
550
  else if (a === '--no-commands-warning') cfg.warnOnSkippedCommandsMigration = false;
550
551
  else if (a === '--copy-all' || a === '--copy-standard-skills') cfg.copyStandardSkills = true;
551
552
  else if (a === '--deploy-source' && args[i + 1]) cfg.deploySource = String(args[++i]);
553
+ else if (a === '--listing-budget') cfg.listingBudget = true;
552
554
  else if (a === '--deploy-version' && args[i + 1]) cfg.deployVersion = String(args[++i]);
553
555
  else if (a === '--help' || a === '-h') {
554
556
  printHelp();
@@ -592,6 +594,7 @@ Options:
592
594
  --as-agents-md Aggregate to single AGENTS.md (Codex)
593
595
  --create-agents-md Create/update AGENTS.md template
594
596
  --skip-commands-migration Skip deleting the commands directory before skills deployment
597
+ --listing-budget Honor the provider startup-listing cap even with --copy-all
595
598
  --deploy-source <name> Managed-marker source stamped into deployed artifacts.
596
599
  Defaults to 'bundled'. Deploys that do not ship the packaged
597
600
  framework corpus (e.g. project-local bundles) MUST override
@@ -1019,6 +1022,7 @@ export async function main() {
1019
1022
  // Replaces the legacy AIWG_COPY_STANDARD_SKILLS env var (removed rc.30).
1020
1023
  // Default (#1217) is no-copy + index-driven discovery.
1021
1024
  copyStandardSkills: cfg.copyStandardSkills === true,
1025
+ listingBudget: cfg.listingBudget === true,
1022
1026
  deployVersion: cfg.deployVersion || getDeployVersion(srcRoot),
1023
1027
  deploySource: cfg.deploySource || 'bundled',
1024
1028
  };