micro-contracts 0.14.4 → 0.15.1
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.
- package/README.md +62 -0
- package/cli-contract.yaml +706 -69
- package/dist/agents/context-builder.d.ts +5 -0
- package/dist/agents/context-builder.d.ts.map +1 -0
- package/dist/agents/context-builder.js +239 -0
- package/dist/agents/context-builder.js.map +1 -0
- package/dist/agents/formatter.d.ts +9 -0
- package/dist/agents/formatter.d.ts.map +1 -0
- package/dist/agents/formatter.js +124 -0
- package/dist/agents/formatter.js.map +1 -0
- package/dist/agents/index.d.ts +5 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +3 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/orchestrator.d.ts +5 -0
- package/dist/agents/orchestrator.d.ts.map +1 -0
- package/dist/agents/orchestrator.js +105 -0
- package/dist/agents/orchestrator.js.map +1 -0
- package/dist/agents/types.d.ts +21 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/types.js +2 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/cli.d.ts +0 -6
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +814 -1161
- package/dist/cli.js.map +1 -1
- package/dist/commands/audit-guardrails.d.ts +13 -0
- package/dist/commands/audit-guardrails.d.ts.map +1 -0
- package/dist/commands/audit-guardrails.js +32 -0
- package/dist/commands/audit-guardrails.js.map +1 -0
- package/dist/commands/audit-openapi.d.ts +13 -0
- package/dist/commands/audit-openapi.d.ts.map +1 -0
- package/dist/commands/audit-openapi.js +32 -0
- package/dist/commands/audit-openapi.js.map +1 -0
- package/dist/commands/propose-overlays.d.ts +13 -0
- package/dist/commands/propose-overlays.d.ts.map +1 -0
- package/dist/commands/propose-overlays.js +32 -0
- package/dist/commands/propose-overlays.js.map +1 -0
- package/dist/commands/review-published.d.ts +13 -0
- package/dist/commands/review-published.d.ts.map +1 -0
- package/dist/commands/review-published.js +32 -0
- package/dist/commands/review-published.js.map +1 -0
- package/dist/generated/commands.d.ts +2 -0
- package/dist/generated/commands.d.ts.map +1 -0
- package/dist/generated/commands.js +2 -0
- package/dist/generated/commands.js.map +1 -0
- package/dist/generated/dsl/agents.d.ts +34 -0
- package/dist/generated/dsl/agents.d.ts.map +1 -0
- package/dist/generated/dsl/agents.js +98 -0
- package/dist/generated/dsl/agents.js.map +1 -0
- package/dist/generated/dsl/handoffs.d.ts +1209 -0
- package/dist/generated/dsl/handoffs.d.ts.map +1 -0
- package/dist/generated/dsl/handoffs.js +205 -0
- package/dist/generated/dsl/handoffs.js.map +1 -0
- package/dist/generated/dsl/index.d.ts +13 -0
- package/dist/generated/dsl/index.d.ts.map +1 -0
- package/dist/generated/dsl/index.js +10 -0
- package/dist/generated/dsl/index.js.map +1 -0
- package/dist/generated/dsl/tasks.d.ts +26 -0
- package/dist/generated/dsl/tasks.d.ts.map +1 -0
- package/dist/generated/dsl/tasks.js +133 -0
- package/dist/generated/dsl/tasks.js.map +1 -0
- package/dist/generated/dsl/workflows.d.ts +34 -0
- package/dist/generated/dsl/workflows.d.ts.map +1 -0
- package/dist/generated/dsl/workflows.js +84 -0
- package/dist/generated/dsl/workflows.js.map +1 -0
- package/dist/generated/index.d.ts +7 -0
- package/dist/generated/index.d.ts.map +1 -0
- package/dist/generated/index.js +7 -0
- package/dist/generated/index.js.map +1 -0
- package/dist/generated/policy-runtime.d.ts +114 -0
- package/dist/generated/policy-runtime.d.ts.map +1 -0
- package/dist/generated/policy-runtime.js +195 -0
- package/dist/generated/policy-runtime.js.map +1 -0
- package/dist/generated/policy.d.ts +619 -0
- package/dist/generated/policy.d.ts.map +1 -0
- package/dist/generated/policy.js +802 -0
- package/dist/generated/policy.js.map +1 -0
- package/dist/generated/program.d.ts +112 -0
- package/dist/generated/program.d.ts.map +1 -0
- package/dist/generated/program.js +266 -0
- package/dist/generated/program.js.map +1 -0
- package/dist/generated/schemas.d.ts +778 -0
- package/dist/generated/schemas.d.ts.map +1 -0
- package/dist/generated/schemas.js +1005 -0
- package/dist/generated/schemas.js.map +1 -0
- package/dist/generated/types.d.ts +395 -0
- package/dist/generated/types.d.ts.map +1 -0
- package/dist/generated/types.js +3 -0
- package/dist/generated/types.js.map +1 -0
- package/docs/cli-reference.md +328 -28
- package/package.json +21 -3
package/cli-contract.yaml
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# yaml-language-server: $schema=./node_modules/cli-contracts/schemas/cli-contract.schema.json
|
|
2
|
-
|
|
2
|
+
cli_contracts: 0.1.0
|
|
3
3
|
|
|
4
4
|
info:
|
|
5
5
|
title: micro-contracts CLI
|
|
6
|
-
version: 0.
|
|
6
|
+
version: 0.15.0
|
|
7
7
|
description: >-
|
|
8
8
|
Contract-first OpenAPI toolchain for TypeScript Web/API systems.
|
|
9
9
|
Generates contract packages, server routes, and frontend clients
|
|
@@ -14,12 +14,29 @@ info:
|
|
|
14
14
|
name: foo-ogawa
|
|
15
15
|
url: https://github.com/foo-ogawa/micro-contracts
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
artifact_slots:
|
|
18
|
+
openapi-specs:
|
|
19
|
+
direction: read
|
|
20
|
+
description: OpenAPI specification files
|
|
21
|
+
config:
|
|
22
|
+
direction: read
|
|
23
|
+
description: micro-contracts.config.yaml configuration
|
|
24
|
+
generated-packages:
|
|
25
|
+
direction: write
|
|
26
|
+
description: Generated contract packages, server routes, and frontend clients
|
|
27
|
+
guardrails-config:
|
|
28
|
+
direction: read
|
|
29
|
+
description: guardrails.yaml configuration
|
|
30
|
+
manifest:
|
|
31
|
+
direction: write
|
|
32
|
+
description: Generated manifest (.generated-manifest.json)
|
|
33
|
+
|
|
34
|
+
command_sets:
|
|
18
35
|
micro-contracts:
|
|
19
36
|
summary: Contract-first OpenAPI toolchain for TypeScript.
|
|
20
37
|
executable: micro-contracts
|
|
21
38
|
|
|
22
|
-
|
|
39
|
+
global_options:
|
|
23
40
|
- name: version
|
|
24
41
|
aliases: [V]
|
|
25
42
|
description: Print version and exit.
|
|
@@ -52,19 +69,19 @@ commandSets:
|
|
|
52
69
|
- name: config
|
|
53
70
|
aliases: [c]
|
|
54
71
|
description: Path to config file (micro-contracts.config.yaml).
|
|
55
|
-
|
|
72
|
+
value_name: path
|
|
56
73
|
schema:
|
|
57
74
|
type: string
|
|
58
75
|
file:
|
|
59
76
|
mode: read
|
|
60
77
|
exists: false
|
|
61
|
-
|
|
78
|
+
media_type: application/yaml
|
|
62
79
|
encoding: utf-8
|
|
63
80
|
|
|
64
81
|
- name: module
|
|
65
82
|
aliases: [m]
|
|
66
83
|
description: Module names, comma-separated. Generates all modules if omitted.
|
|
67
|
-
|
|
84
|
+
value_name: names
|
|
68
85
|
schema:
|
|
69
86
|
type: string
|
|
70
87
|
|
|
@@ -108,7 +125,7 @@ commandSets:
|
|
|
108
125
|
|
|
109
126
|
- name: manifest-dir
|
|
110
127
|
description: Directory for manifest output.
|
|
111
|
-
|
|
128
|
+
value_name: path
|
|
112
129
|
schema:
|
|
113
130
|
type: string
|
|
114
131
|
default: packages/
|
|
@@ -135,12 +152,12 @@ commandSets:
|
|
|
135
152
|
files:
|
|
136
153
|
- path: packages/contract/{module}/**/*.ts
|
|
137
154
|
required: true
|
|
138
|
-
|
|
155
|
+
media_type: text/x-typescript
|
|
139
156
|
encoding: utf-8
|
|
140
157
|
description: Generated contract packages.
|
|
141
158
|
- path: packages/contract-published/{module}/**/*.ts
|
|
142
159
|
required: false
|
|
143
|
-
|
|
160
|
+
media_type: text/x-typescript
|
|
144
161
|
encoding: utf-8
|
|
145
162
|
description: Generated public contract packages.
|
|
146
163
|
|
|
@@ -150,12 +167,12 @@ commandSets:
|
|
|
150
167
|
format: text
|
|
151
168
|
|
|
152
169
|
x-agent:
|
|
153
|
-
|
|
154
|
-
|
|
170
|
+
risk_level: medium
|
|
171
|
+
requires_confirmation: false
|
|
155
172
|
idempotent: true
|
|
156
|
-
|
|
173
|
+
side_effects:
|
|
157
174
|
- file_write
|
|
158
|
-
|
|
175
|
+
recommended_before_use:
|
|
159
176
|
- Ensure micro-contracts.config.yaml exists.
|
|
160
177
|
- Verify OpenAPI specs are valid.
|
|
161
178
|
|
|
@@ -179,7 +196,7 @@ commandSets:
|
|
|
179
196
|
file:
|
|
180
197
|
mode: read
|
|
181
198
|
exists: true
|
|
182
|
-
|
|
199
|
+
media_type: application/yaml
|
|
183
200
|
encoding: utf-8
|
|
184
201
|
|
|
185
202
|
options:
|
|
@@ -201,10 +218,10 @@ commandSets:
|
|
|
201
218
|
format: text
|
|
202
219
|
|
|
203
220
|
x-agent:
|
|
204
|
-
|
|
205
|
-
|
|
221
|
+
risk_level: low
|
|
222
|
+
requires_confirmation: false
|
|
206
223
|
idempotent: true
|
|
207
|
-
|
|
224
|
+
side_effects: []
|
|
208
225
|
|
|
209
226
|
# ── init ─────────────────────────────────────────
|
|
210
227
|
init:
|
|
@@ -232,7 +249,7 @@ commandSets:
|
|
|
232
249
|
- name: dir
|
|
233
250
|
aliases: [d]
|
|
234
251
|
description: Base directory for server/frontend files.
|
|
235
|
-
|
|
252
|
+
value_name: path
|
|
236
253
|
schema:
|
|
237
254
|
type: string
|
|
238
255
|
default: src
|
|
@@ -240,19 +257,19 @@ commandSets:
|
|
|
240
257
|
- name: openapi
|
|
241
258
|
aliases: [i]
|
|
242
259
|
description: OpenAPI spec to process (auto-adds x-micro-contracts-service/method extensions).
|
|
243
|
-
|
|
260
|
+
value_name: path
|
|
244
261
|
schema:
|
|
245
262
|
type: string
|
|
246
263
|
file:
|
|
247
264
|
mode: read
|
|
248
265
|
exists: true
|
|
249
|
-
|
|
266
|
+
media_type: application/yaml
|
|
250
267
|
encoding: utf-8
|
|
251
268
|
|
|
252
269
|
- name: output
|
|
253
270
|
aliases: [o]
|
|
254
271
|
description: Output path for processed OpenAPI. Defaults to spec/{name}/openapi/{name}.yaml.
|
|
255
|
-
|
|
272
|
+
value_name: path
|
|
256
273
|
schema:
|
|
257
274
|
type: string
|
|
258
275
|
|
|
@@ -276,17 +293,17 @@ commandSets:
|
|
|
276
293
|
files:
|
|
277
294
|
- path: spec/{name}/openapi/{name}.yaml
|
|
278
295
|
required: false
|
|
279
|
-
|
|
296
|
+
media_type: application/yaml
|
|
280
297
|
encoding: utf-8
|
|
281
298
|
description: OpenAPI spec (created when --openapi provided or --screens used).
|
|
282
299
|
- path: spec/default/templates/*.hbs
|
|
283
300
|
required: false
|
|
284
|
-
|
|
301
|
+
media_type: text/x-handlebars-template
|
|
285
302
|
encoding: utf-8
|
|
286
303
|
description: Starter Handlebars templates.
|
|
287
304
|
- path: micro-contracts.config.yaml
|
|
288
305
|
required: false
|
|
289
|
-
|
|
306
|
+
media_type: application/yaml
|
|
290
307
|
encoding: utf-8
|
|
291
308
|
description: Config file (created if not already present).
|
|
292
309
|
|
|
@@ -296,10 +313,10 @@ commandSets:
|
|
|
296
313
|
format: text
|
|
297
314
|
|
|
298
315
|
x-agent:
|
|
299
|
-
|
|
300
|
-
|
|
316
|
+
risk_level: medium
|
|
317
|
+
requires_confirmation: false
|
|
301
318
|
idempotent: true
|
|
302
|
-
|
|
319
|
+
side_effects:
|
|
303
320
|
- file_write
|
|
304
321
|
- directory_create
|
|
305
322
|
|
|
@@ -321,19 +338,19 @@ commandSets:
|
|
|
321
338
|
options:
|
|
322
339
|
- name: only
|
|
323
340
|
description: Run only specific checks (comma-separated check names).
|
|
324
|
-
|
|
341
|
+
value_name: checks
|
|
325
342
|
schema:
|
|
326
343
|
type: string
|
|
327
344
|
|
|
328
345
|
- name: skip
|
|
329
346
|
description: Skip specific checks (comma-separated check names).
|
|
330
|
-
|
|
347
|
+
value_name: checks
|
|
331
348
|
schema:
|
|
332
349
|
type: string
|
|
333
350
|
|
|
334
351
|
- name: gate
|
|
335
352
|
description: Run checks for specific gates only (comma-separated, 1-5).
|
|
336
|
-
|
|
353
|
+
value_name: gates
|
|
337
354
|
schema:
|
|
338
355
|
type: string
|
|
339
356
|
|
|
@@ -353,32 +370,32 @@ commandSets:
|
|
|
353
370
|
- name: guardrails
|
|
354
371
|
aliases: [g]
|
|
355
372
|
description: Path to guardrails.yaml.
|
|
356
|
-
|
|
373
|
+
value_name: path
|
|
357
374
|
schema:
|
|
358
375
|
type: string
|
|
359
376
|
file:
|
|
360
377
|
mode: read
|
|
361
378
|
exists: false
|
|
362
|
-
|
|
379
|
+
media_type: application/yaml
|
|
363
380
|
encoding: utf-8
|
|
364
381
|
|
|
365
382
|
- name: generated-dir
|
|
366
383
|
aliases: [d]
|
|
367
384
|
description: Path to generated files directory.
|
|
368
|
-
|
|
385
|
+
value_name: path
|
|
369
386
|
schema:
|
|
370
387
|
type: string
|
|
371
388
|
default: packages/
|
|
372
389
|
|
|
373
390
|
- name: changed-files
|
|
374
391
|
description: Path to file containing list of changed files (for CI).
|
|
375
|
-
|
|
392
|
+
value_name: path
|
|
376
393
|
schema:
|
|
377
394
|
type: string
|
|
378
395
|
file:
|
|
379
396
|
mode: read
|
|
380
397
|
exists: true
|
|
381
|
-
|
|
398
|
+
media_type: text/plain
|
|
382
399
|
encoding: utf-8
|
|
383
400
|
|
|
384
401
|
- name: list
|
|
@@ -408,11 +425,11 @@ commandSets:
|
|
|
408
425
|
format: text
|
|
409
426
|
|
|
410
427
|
x-agent:
|
|
411
|
-
|
|
412
|
-
|
|
428
|
+
risk_level: low
|
|
429
|
+
requires_confirmation: false
|
|
413
430
|
idempotent: true
|
|
414
|
-
|
|
415
|
-
|
|
431
|
+
side_effects: []
|
|
432
|
+
recommended_before_use:
|
|
416
433
|
- Run generate first so generated files exist.
|
|
417
434
|
|
|
418
435
|
# ── pipeline ─────────────────────────────────────
|
|
@@ -433,13 +450,13 @@ commandSets:
|
|
|
433
450
|
- name: config
|
|
434
451
|
aliases: [c]
|
|
435
452
|
description: Path to config file (micro-contracts.config.yaml).
|
|
436
|
-
|
|
453
|
+
value_name: path
|
|
437
454
|
schema:
|
|
438
455
|
type: string
|
|
439
456
|
file:
|
|
440
457
|
mode: read
|
|
441
458
|
exists: false
|
|
442
|
-
|
|
459
|
+
media_type: application/yaml
|
|
443
460
|
encoding: utf-8
|
|
444
461
|
|
|
445
462
|
- name: verbose
|
|
@@ -451,7 +468,7 @@ commandSets:
|
|
|
451
468
|
|
|
452
469
|
- name: skip
|
|
453
470
|
description: Skip specific checks (comma-separated).
|
|
454
|
-
|
|
471
|
+
value_name: checks
|
|
455
472
|
schema:
|
|
456
473
|
type: string
|
|
457
474
|
|
|
@@ -464,19 +481,19 @@ commandSets:
|
|
|
464
481
|
- name: guardrails
|
|
465
482
|
aliases: [g]
|
|
466
483
|
description: Path to guardrails.yaml.
|
|
467
|
-
|
|
484
|
+
value_name: path
|
|
468
485
|
schema:
|
|
469
486
|
type: string
|
|
470
487
|
file:
|
|
471
488
|
mode: read
|
|
472
489
|
exists: false
|
|
473
|
-
|
|
490
|
+
media_type: application/yaml
|
|
474
491
|
encoding: utf-8
|
|
475
492
|
|
|
476
493
|
- name: generated-dir
|
|
477
494
|
aliases: [d]
|
|
478
495
|
description: Path to generated files directory.
|
|
479
|
-
|
|
496
|
+
value_name: path
|
|
480
497
|
schema:
|
|
481
498
|
type: string
|
|
482
499
|
default: packages/
|
|
@@ -548,12 +565,12 @@ commandSets:
|
|
|
548
565
|
format: text
|
|
549
566
|
|
|
550
567
|
x-agent:
|
|
551
|
-
|
|
552
|
-
|
|
568
|
+
risk_level: medium
|
|
569
|
+
requires_confirmation: false
|
|
553
570
|
idempotent: true
|
|
554
|
-
|
|
571
|
+
side_effects:
|
|
555
572
|
- file_write
|
|
556
|
-
|
|
573
|
+
recommended_before_use:
|
|
557
574
|
- Ensure micro-contracts.config.yaml and guardrails.yaml exist.
|
|
558
575
|
- Verify OpenAPI specs are valid.
|
|
559
576
|
|
|
@@ -576,19 +593,19 @@ commandSets:
|
|
|
576
593
|
- name: config
|
|
577
594
|
aliases: [c]
|
|
578
595
|
description: Path to config file.
|
|
579
|
-
|
|
596
|
+
value_name: path
|
|
580
597
|
schema:
|
|
581
598
|
type: string
|
|
582
599
|
file:
|
|
583
600
|
mode: read
|
|
584
601
|
exists: false
|
|
585
|
-
|
|
602
|
+
media_type: application/yaml
|
|
586
603
|
encoding: utf-8
|
|
587
604
|
|
|
588
605
|
- name: module
|
|
589
606
|
aliases: [m]
|
|
590
607
|
description: Module to analyze.
|
|
591
|
-
|
|
608
|
+
value_name: name
|
|
592
609
|
schema:
|
|
593
610
|
type: string
|
|
594
611
|
|
|
@@ -600,13 +617,13 @@ commandSets:
|
|
|
600
617
|
|
|
601
618
|
- name: impact
|
|
602
619
|
description: Analyze impact of changing a specific API (e.g., core.User.getUsers).
|
|
603
|
-
|
|
620
|
+
value_name: ref
|
|
604
621
|
schema:
|
|
605
622
|
type: string
|
|
606
623
|
|
|
607
624
|
- name: who-depends-on
|
|
608
625
|
description: Find modules that depend on a specific API.
|
|
609
|
-
|
|
626
|
+
value_name: ref
|
|
610
627
|
schema:
|
|
611
628
|
type: string
|
|
612
629
|
|
|
@@ -628,10 +645,10 @@ commandSets:
|
|
|
628
645
|
format: text
|
|
629
646
|
|
|
630
647
|
x-agent:
|
|
631
|
-
|
|
632
|
-
|
|
648
|
+
risk_level: low
|
|
649
|
+
requires_confirmation: false
|
|
633
650
|
idempotent: true
|
|
634
|
-
|
|
651
|
+
side_effects: []
|
|
635
652
|
|
|
636
653
|
# ── guardrails-init ──────────────────────────────
|
|
637
654
|
guardrails-init:
|
|
@@ -648,7 +665,7 @@ commandSets:
|
|
|
648
665
|
- name: output
|
|
649
666
|
aliases: [o]
|
|
650
667
|
description: Output path for guardrails.yaml.
|
|
651
|
-
|
|
668
|
+
value_name: path
|
|
652
669
|
schema:
|
|
653
670
|
type: string
|
|
654
671
|
default: guardrails.yaml
|
|
@@ -661,7 +678,7 @@ commandSets:
|
|
|
661
678
|
files:
|
|
662
679
|
- path: '{options.output}'
|
|
663
680
|
required: true
|
|
664
|
-
|
|
681
|
+
media_type: application/yaml
|
|
665
682
|
encoding: utf-8
|
|
666
683
|
|
|
667
684
|
'1':
|
|
@@ -670,10 +687,10 @@ commandSets:
|
|
|
670
687
|
format: text
|
|
671
688
|
|
|
672
689
|
x-agent:
|
|
673
|
-
|
|
674
|
-
|
|
690
|
+
risk_level: low
|
|
691
|
+
requires_confirmation: false
|
|
675
692
|
idempotent: false
|
|
676
|
-
|
|
693
|
+
side_effects:
|
|
677
694
|
- file_write
|
|
678
695
|
|
|
679
696
|
# ── manifest ─────────────────────────────────────
|
|
@@ -693,7 +710,7 @@ commandSets:
|
|
|
693
710
|
- name: dir
|
|
694
711
|
aliases: [d]
|
|
695
712
|
description: Directory to scan.
|
|
696
|
-
|
|
713
|
+
value_name: path
|
|
697
714
|
schema:
|
|
698
715
|
type: string
|
|
699
716
|
default: packages/
|
|
@@ -707,7 +724,7 @@ commandSets:
|
|
|
707
724
|
- name: output
|
|
708
725
|
aliases: [o]
|
|
709
726
|
description: Output manifest path. Defaults to {dir}/.generated-manifest.json.
|
|
710
|
-
|
|
727
|
+
value_name: path
|
|
711
728
|
schema:
|
|
712
729
|
type: string
|
|
713
730
|
|
|
@@ -719,7 +736,7 @@ commandSets:
|
|
|
719
736
|
files:
|
|
720
737
|
- path: '{options.dir}/.generated-manifest.json'
|
|
721
738
|
required: false
|
|
722
|
-
|
|
739
|
+
media_type: application/json
|
|
723
740
|
encoding: utf-8
|
|
724
741
|
description: Generated manifest (not created in verify mode).
|
|
725
742
|
|
|
@@ -729,8 +746,628 @@ commandSets:
|
|
|
729
746
|
format: text
|
|
730
747
|
|
|
731
748
|
x-agent:
|
|
732
|
-
|
|
733
|
-
|
|
749
|
+
risk_level: low
|
|
750
|
+
requires_confirmation: false
|
|
734
751
|
idempotent: true
|
|
735
|
-
|
|
752
|
+
side_effects:
|
|
736
753
|
- file_write
|
|
754
|
+
|
|
755
|
+
# ── audit-openapi ──────────────────────────────
|
|
756
|
+
audit-openapi:
|
|
757
|
+
path: [audit-openapi]
|
|
758
|
+
summary: Run LLM-based OpenAPI design quality audit.
|
|
759
|
+
description: >-
|
|
760
|
+
Performs a semantic review of OpenAPI specification design quality
|
|
761
|
+
using an LLM agent. Evaluates path design, module boundary alignment,
|
|
762
|
+
schema bloat, CRUD vs use-case orientation, and cross-cutting
|
|
763
|
+
concern coverage. Requires agent-contracts-runtime.
|
|
764
|
+
usage:
|
|
765
|
+
- micro-contracts audit-openapi
|
|
766
|
+
- micro-contracts audit-openapi -m core
|
|
767
|
+
- micro-contracts audit-openapi --adapter cursor --report-format text
|
|
768
|
+
- micro-contracts audit-openapi --show-prompt
|
|
769
|
+
|
|
770
|
+
options:
|
|
771
|
+
- name: config
|
|
772
|
+
aliases: [c]
|
|
773
|
+
description: Path to config file (micro-contracts.config.yaml).
|
|
774
|
+
value_name: path
|
|
775
|
+
schema:
|
|
776
|
+
type: string
|
|
777
|
+
file:
|
|
778
|
+
mode: read
|
|
779
|
+
exists: false
|
|
780
|
+
media_type: application/yaml
|
|
781
|
+
encoding: utf-8
|
|
782
|
+
|
|
783
|
+
- name: module
|
|
784
|
+
aliases: [m]
|
|
785
|
+
description: Module name to audit (default is all modules).
|
|
786
|
+
value_name: name
|
|
787
|
+
schema:
|
|
788
|
+
type: string
|
|
789
|
+
|
|
790
|
+
- name: adapter
|
|
791
|
+
aliases: [a]
|
|
792
|
+
description: SDK adapter to use for LLM execution.
|
|
793
|
+
value_name: name
|
|
794
|
+
schema:
|
|
795
|
+
type: string
|
|
796
|
+
enum: [cursor, claude, openai, gemini, mock]
|
|
797
|
+
|
|
798
|
+
- name: model
|
|
799
|
+
description: LLM model override.
|
|
800
|
+
value_name: name
|
|
801
|
+
schema:
|
|
802
|
+
type: string
|
|
803
|
+
|
|
804
|
+
- name: fail-on
|
|
805
|
+
description: Minimum severity that causes a non-zero exit.
|
|
806
|
+
value_name: level
|
|
807
|
+
schema:
|
|
808
|
+
type: string
|
|
809
|
+
enum: [warning, error, critical]
|
|
810
|
+
default: error
|
|
811
|
+
|
|
812
|
+
- name: output
|
|
813
|
+
aliases: [o]
|
|
814
|
+
description: Write result to a file instead of stdout.
|
|
815
|
+
value_name: file
|
|
816
|
+
schema:
|
|
817
|
+
type: string
|
|
818
|
+
file:
|
|
819
|
+
mode: write
|
|
820
|
+
media_type: application/json
|
|
821
|
+
encoding: utf-8
|
|
822
|
+
|
|
823
|
+
- name: report-format
|
|
824
|
+
description: Output format for the audit report.
|
|
825
|
+
value_name: fmt
|
|
826
|
+
schema:
|
|
827
|
+
type: string
|
|
828
|
+
enum: [json, text, yaml]
|
|
829
|
+
default: text
|
|
830
|
+
|
|
831
|
+
exits:
|
|
832
|
+
'0':
|
|
833
|
+
description: Audit completed, no blocking findings.
|
|
834
|
+
stdout:
|
|
835
|
+
format: '{options.report-format}'
|
|
836
|
+
schema:
|
|
837
|
+
$ref: '#/components/schemas/OpenApiAuditResult'
|
|
838
|
+
|
|
839
|
+
'1':
|
|
840
|
+
description: Unexpected error.
|
|
841
|
+
stderr:
|
|
842
|
+
format: text
|
|
843
|
+
|
|
844
|
+
'3':
|
|
845
|
+
description: Input validation failed (config not found, spec invalid).
|
|
846
|
+
stderr:
|
|
847
|
+
format: text
|
|
848
|
+
|
|
849
|
+
'10':
|
|
850
|
+
description: Completed with blocking findings.
|
|
851
|
+
stdout:
|
|
852
|
+
format: '{options.report-format}'
|
|
853
|
+
schema:
|
|
854
|
+
$ref: '#/components/schemas/OpenApiAuditResult'
|
|
855
|
+
|
|
856
|
+
'11':
|
|
857
|
+
description: Runtime dependency missing (agent-contracts-runtime).
|
|
858
|
+
stderr:
|
|
859
|
+
format: text
|
|
860
|
+
|
|
861
|
+
'12':
|
|
862
|
+
description: LLM provider or adapter error.
|
|
863
|
+
stderr:
|
|
864
|
+
format: text
|
|
865
|
+
|
|
866
|
+
effects:
|
|
867
|
+
reads: [openapi-specs, config]
|
|
868
|
+
writes: []
|
|
869
|
+
network:
|
|
870
|
+
description: LLM API calls when adapter is not mock
|
|
871
|
+
requires_secrets: []
|
|
872
|
+
idempotent: true
|
|
873
|
+
|
|
874
|
+
x-agent:
|
|
875
|
+
risk_level: low
|
|
876
|
+
requires_confirmation: false
|
|
877
|
+
idempotent: true
|
|
878
|
+
side_effects: [network]
|
|
879
|
+
sideEffectNote: >-
|
|
880
|
+
Network calls to LLM provider when adapter is not mock.
|
|
881
|
+
Filesystem write only when --output is specified.
|
|
882
|
+
safe_dry_run_option: show-prompt
|
|
883
|
+
expectedDurationMs: 120000
|
|
884
|
+
retryableExitCodes: [12]
|
|
885
|
+
|
|
886
|
+
# ── review-published ───────────────────────────
|
|
887
|
+
review-published:
|
|
888
|
+
path: [review-published]
|
|
889
|
+
summary: Review published API surface for internal leakage.
|
|
890
|
+
description: >-
|
|
891
|
+
Analyzes the published (public-facing) API specification for
|
|
892
|
+
internal type leakage, backward compatibility risks, and
|
|
893
|
+
x-micro-contracts-non-exportable violations.
|
|
894
|
+
Requires agent-contracts-runtime.
|
|
895
|
+
usage:
|
|
896
|
+
- micro-contracts review-published
|
|
897
|
+
- micro-contracts review-published -m billing
|
|
898
|
+
- micro-contracts review-published --adapter claude --report-format json
|
|
899
|
+
|
|
900
|
+
options:
|
|
901
|
+
- name: config
|
|
902
|
+
aliases: [c]
|
|
903
|
+
description: Path to config file (micro-contracts.config.yaml).
|
|
904
|
+
value_name: path
|
|
905
|
+
schema:
|
|
906
|
+
type: string
|
|
907
|
+
file:
|
|
908
|
+
mode: read
|
|
909
|
+
exists: false
|
|
910
|
+
media_type: application/yaml
|
|
911
|
+
encoding: utf-8
|
|
912
|
+
|
|
913
|
+
- name: module
|
|
914
|
+
aliases: [m]
|
|
915
|
+
description: Module name to review (default is all modules).
|
|
916
|
+
value_name: name
|
|
917
|
+
schema:
|
|
918
|
+
type: string
|
|
919
|
+
|
|
920
|
+
- name: adapter
|
|
921
|
+
aliases: [a]
|
|
922
|
+
description: SDK adapter to use for LLM execution.
|
|
923
|
+
value_name: name
|
|
924
|
+
schema:
|
|
925
|
+
type: string
|
|
926
|
+
enum: [cursor, claude, openai, gemini, mock]
|
|
927
|
+
|
|
928
|
+
- name: model
|
|
929
|
+
description: LLM model override.
|
|
930
|
+
value_name: name
|
|
931
|
+
schema:
|
|
932
|
+
type: string
|
|
933
|
+
|
|
934
|
+
- name: fail-on
|
|
935
|
+
description: Minimum severity that causes a non-zero exit.
|
|
936
|
+
value_name: level
|
|
937
|
+
schema:
|
|
938
|
+
type: string
|
|
939
|
+
enum: [warning, error, critical]
|
|
940
|
+
default: error
|
|
941
|
+
|
|
942
|
+
- name: output
|
|
943
|
+
aliases: [o]
|
|
944
|
+
description: Write result to a file instead of stdout.
|
|
945
|
+
value_name: file
|
|
946
|
+
schema:
|
|
947
|
+
type: string
|
|
948
|
+
file:
|
|
949
|
+
mode: write
|
|
950
|
+
media_type: application/json
|
|
951
|
+
encoding: utf-8
|
|
952
|
+
|
|
953
|
+
- name: report-format
|
|
954
|
+
description: Output format for the review report.
|
|
955
|
+
value_name: fmt
|
|
956
|
+
schema:
|
|
957
|
+
type: string
|
|
958
|
+
enum: [json, text, yaml]
|
|
959
|
+
default: text
|
|
960
|
+
|
|
961
|
+
exits:
|
|
962
|
+
'0':
|
|
963
|
+
description: Review completed, no blocking findings.
|
|
964
|
+
stdout:
|
|
965
|
+
format: '{options.report-format}'
|
|
966
|
+
schema:
|
|
967
|
+
$ref: '#/components/schemas/PublishedReviewResult'
|
|
968
|
+
|
|
969
|
+
'1':
|
|
970
|
+
description: Unexpected error.
|
|
971
|
+
stderr:
|
|
972
|
+
format: text
|
|
973
|
+
|
|
974
|
+
'3':
|
|
975
|
+
description: Input validation failed.
|
|
976
|
+
stderr:
|
|
977
|
+
format: text
|
|
978
|
+
|
|
979
|
+
'10':
|
|
980
|
+
description: Completed with blocking findings.
|
|
981
|
+
stdout:
|
|
982
|
+
format: '{options.report-format}'
|
|
983
|
+
schema:
|
|
984
|
+
$ref: '#/components/schemas/PublishedReviewResult'
|
|
985
|
+
|
|
986
|
+
'11':
|
|
987
|
+
description: Runtime dependency missing (agent-contracts-runtime).
|
|
988
|
+
stderr:
|
|
989
|
+
format: text
|
|
990
|
+
|
|
991
|
+
'12':
|
|
992
|
+
description: LLM provider or adapter error.
|
|
993
|
+
stderr:
|
|
994
|
+
format: text
|
|
995
|
+
|
|
996
|
+
effects:
|
|
997
|
+
reads: [openapi-specs, config, generated-packages]
|
|
998
|
+
writes: []
|
|
999
|
+
network:
|
|
1000
|
+
description: LLM API calls when adapter is not mock
|
|
1001
|
+
requires_secrets: []
|
|
1002
|
+
idempotent: true
|
|
1003
|
+
|
|
1004
|
+
x-agent:
|
|
1005
|
+
risk_level: low
|
|
1006
|
+
requires_confirmation: false
|
|
1007
|
+
idempotent: true
|
|
1008
|
+
side_effects: [network]
|
|
1009
|
+
sideEffectNote: >-
|
|
1010
|
+
Network calls to LLM provider when adapter is not mock.
|
|
1011
|
+
Filesystem write only when --output is specified.
|
|
1012
|
+
safe_dry_run_option: show-prompt
|
|
1013
|
+
expectedDurationMs: 120000
|
|
1014
|
+
retryableExitCodes: [12]
|
|
1015
|
+
|
|
1016
|
+
# ── propose-overlays ───────────────────────────
|
|
1017
|
+
propose-overlays:
|
|
1018
|
+
path: [propose-overlays]
|
|
1019
|
+
summary: Propose cross-cutting overlay candidates.
|
|
1020
|
+
description: >-
|
|
1021
|
+
Analyzes the OpenAPI specification and proposes cross-cutting
|
|
1022
|
+
overlay candidates for authentication, tenancy, rate limiting,
|
|
1023
|
+
audit logging, and other patterns. Verifies proposals do not
|
|
1024
|
+
conflict with existing overlay definitions.
|
|
1025
|
+
Requires agent-contracts-runtime.
|
|
1026
|
+
usage:
|
|
1027
|
+
- micro-contracts propose-overlays
|
|
1028
|
+
- micro-contracts propose-overlays -m core
|
|
1029
|
+
- micro-contracts propose-overlays --adapter openai --report-format json
|
|
1030
|
+
|
|
1031
|
+
options:
|
|
1032
|
+
- name: config
|
|
1033
|
+
aliases: [c]
|
|
1034
|
+
description: Path to config file (micro-contracts.config.yaml).
|
|
1035
|
+
value_name: path
|
|
1036
|
+
schema:
|
|
1037
|
+
type: string
|
|
1038
|
+
file:
|
|
1039
|
+
mode: read
|
|
1040
|
+
exists: false
|
|
1041
|
+
media_type: application/yaml
|
|
1042
|
+
encoding: utf-8
|
|
1043
|
+
|
|
1044
|
+
- name: module
|
|
1045
|
+
aliases: [m]
|
|
1046
|
+
description: Module name to analyze (default is all modules).
|
|
1047
|
+
value_name: name
|
|
1048
|
+
schema:
|
|
1049
|
+
type: string
|
|
1050
|
+
|
|
1051
|
+
- name: adapter
|
|
1052
|
+
aliases: [a]
|
|
1053
|
+
description: SDK adapter to use for LLM execution.
|
|
1054
|
+
value_name: name
|
|
1055
|
+
schema:
|
|
1056
|
+
type: string
|
|
1057
|
+
enum: [cursor, claude, openai, gemini, mock]
|
|
1058
|
+
|
|
1059
|
+
- name: model
|
|
1060
|
+
description: LLM model override.
|
|
1061
|
+
value_name: name
|
|
1062
|
+
schema:
|
|
1063
|
+
type: string
|
|
1064
|
+
|
|
1065
|
+
- name: fail-on
|
|
1066
|
+
description: Minimum severity that causes a non-zero exit.
|
|
1067
|
+
value_name: level
|
|
1068
|
+
schema:
|
|
1069
|
+
type: string
|
|
1070
|
+
enum: [warning, error, critical]
|
|
1071
|
+
default: error
|
|
1072
|
+
|
|
1073
|
+
- name: output
|
|
1074
|
+
aliases: [o]
|
|
1075
|
+
description: Write result to a file instead of stdout.
|
|
1076
|
+
value_name: file
|
|
1077
|
+
schema:
|
|
1078
|
+
type: string
|
|
1079
|
+
file:
|
|
1080
|
+
mode: write
|
|
1081
|
+
media_type: application/json
|
|
1082
|
+
encoding: utf-8
|
|
1083
|
+
|
|
1084
|
+
- name: report-format
|
|
1085
|
+
description: Output format for the proposal report.
|
|
1086
|
+
value_name: fmt
|
|
1087
|
+
schema:
|
|
1088
|
+
type: string
|
|
1089
|
+
enum: [json, text, yaml]
|
|
1090
|
+
default: json
|
|
1091
|
+
|
|
1092
|
+
exits:
|
|
1093
|
+
'0':
|
|
1094
|
+
description: Proposal generated successfully.
|
|
1095
|
+
stdout:
|
|
1096
|
+
format: '{options.report-format}'
|
|
1097
|
+
schema:
|
|
1098
|
+
$ref: '#/components/schemas/OverlayProposalResult'
|
|
1099
|
+
|
|
1100
|
+
'1':
|
|
1101
|
+
description: Unexpected error.
|
|
1102
|
+
stderr:
|
|
1103
|
+
format: text
|
|
1104
|
+
|
|
1105
|
+
'3':
|
|
1106
|
+
description: Input validation failed.
|
|
1107
|
+
stderr:
|
|
1108
|
+
format: text
|
|
1109
|
+
|
|
1110
|
+
'10':
|
|
1111
|
+
description: Completed with blocking findings.
|
|
1112
|
+
stdout:
|
|
1113
|
+
format: '{options.report-format}'
|
|
1114
|
+
schema:
|
|
1115
|
+
$ref: '#/components/schemas/OverlayProposalResult'
|
|
1116
|
+
|
|
1117
|
+
'11':
|
|
1118
|
+
description: Runtime dependency missing (agent-contracts-runtime).
|
|
1119
|
+
stderr:
|
|
1120
|
+
format: text
|
|
1121
|
+
|
|
1122
|
+
'12':
|
|
1123
|
+
description: LLM provider or adapter error.
|
|
1124
|
+
stderr:
|
|
1125
|
+
format: text
|
|
1126
|
+
|
|
1127
|
+
effects:
|
|
1128
|
+
reads: [openapi-specs, config]
|
|
1129
|
+
writes: []
|
|
1130
|
+
network:
|
|
1131
|
+
description: LLM API calls when adapter is not mock
|
|
1132
|
+
requires_secrets: []
|
|
1133
|
+
idempotent: true
|
|
1134
|
+
|
|
1135
|
+
x-agent:
|
|
1136
|
+
risk_level: low
|
|
1137
|
+
requires_confirmation: false
|
|
1138
|
+
idempotent: true
|
|
1139
|
+
side_effects: [network]
|
|
1140
|
+
sideEffectNote: >-
|
|
1141
|
+
Network calls to LLM provider when adapter is not mock.
|
|
1142
|
+
Filesystem write only when --output is specified.
|
|
1143
|
+
safe_dry_run_option: show-prompt
|
|
1144
|
+
expectedDurationMs: 120000
|
|
1145
|
+
retryableExitCodes: [12]
|
|
1146
|
+
|
|
1147
|
+
# ── audit-guardrails ───────────────────────────
|
|
1148
|
+
audit-guardrails:
|
|
1149
|
+
path: [audit-guardrails]
|
|
1150
|
+
summary: Audit guardrails configuration for drift and lint coverage.
|
|
1151
|
+
description: >-
|
|
1152
|
+
Checks that guardrails.yaml configuration covers all generated
|
|
1153
|
+
output directories for drift detection and that OpenAPI lint
|
|
1154
|
+
rules are properly configured. Note: file permission and
|
|
1155
|
+
editing checks have been moved to artifact-contracts.
|
|
1156
|
+
Requires agent-contracts-runtime.
|
|
1157
|
+
usage:
|
|
1158
|
+
- micro-contracts audit-guardrails
|
|
1159
|
+
- micro-contracts audit-guardrails --adapter mock --report-format json
|
|
1160
|
+
|
|
1161
|
+
options:
|
|
1162
|
+
- name: config
|
|
1163
|
+
aliases: [c]
|
|
1164
|
+
description: Path to config file (micro-contracts.config.yaml).
|
|
1165
|
+
value_name: path
|
|
1166
|
+
schema:
|
|
1167
|
+
type: string
|
|
1168
|
+
file:
|
|
1169
|
+
mode: read
|
|
1170
|
+
exists: false
|
|
1171
|
+
media_type: application/yaml
|
|
1172
|
+
encoding: utf-8
|
|
1173
|
+
|
|
1174
|
+
- name: guardrails
|
|
1175
|
+
aliases: [g]
|
|
1176
|
+
description: Path to guardrails.yaml.
|
|
1177
|
+
value_name: path
|
|
1178
|
+
schema:
|
|
1179
|
+
type: string
|
|
1180
|
+
file:
|
|
1181
|
+
mode: read
|
|
1182
|
+
exists: false
|
|
1183
|
+
media_type: application/yaml
|
|
1184
|
+
encoding: utf-8
|
|
1185
|
+
|
|
1186
|
+
- name: adapter
|
|
1187
|
+
aliases: [a]
|
|
1188
|
+
description: SDK adapter to use for LLM execution.
|
|
1189
|
+
value_name: name
|
|
1190
|
+
schema:
|
|
1191
|
+
type: string
|
|
1192
|
+
enum: [cursor, claude, openai, gemini, mock]
|
|
1193
|
+
|
|
1194
|
+
- name: model
|
|
1195
|
+
description: LLM model override.
|
|
1196
|
+
value_name: name
|
|
1197
|
+
schema:
|
|
1198
|
+
type: string
|
|
1199
|
+
|
|
1200
|
+
- name: fail-on
|
|
1201
|
+
description: Minimum severity that causes a non-zero exit.
|
|
1202
|
+
value_name: level
|
|
1203
|
+
schema:
|
|
1204
|
+
type: string
|
|
1205
|
+
enum: [warning, error, critical]
|
|
1206
|
+
default: error
|
|
1207
|
+
|
|
1208
|
+
- name: output
|
|
1209
|
+
aliases: [o]
|
|
1210
|
+
description: Write result to a file instead of stdout.
|
|
1211
|
+
value_name: file
|
|
1212
|
+
schema:
|
|
1213
|
+
type: string
|
|
1214
|
+
file:
|
|
1215
|
+
mode: write
|
|
1216
|
+
media_type: application/json
|
|
1217
|
+
encoding: utf-8
|
|
1218
|
+
|
|
1219
|
+
- name: report-format
|
|
1220
|
+
description: Output format for the audit report.
|
|
1221
|
+
value_name: fmt
|
|
1222
|
+
schema:
|
|
1223
|
+
type: string
|
|
1224
|
+
enum: [json, text, yaml]
|
|
1225
|
+
default: text
|
|
1226
|
+
|
|
1227
|
+
exits:
|
|
1228
|
+
'0':
|
|
1229
|
+
description: Audit completed, no blocking findings.
|
|
1230
|
+
stdout:
|
|
1231
|
+
format: '{options.report-format}'
|
|
1232
|
+
schema:
|
|
1233
|
+
$ref: '#/components/schemas/GuardrailsAuditResult'
|
|
1234
|
+
|
|
1235
|
+
'1':
|
|
1236
|
+
description: Unexpected error.
|
|
1237
|
+
stderr:
|
|
1238
|
+
format: text
|
|
1239
|
+
|
|
1240
|
+
'3':
|
|
1241
|
+
description: Input validation failed (guardrails.yaml not found).
|
|
1242
|
+
stderr:
|
|
1243
|
+
format: text
|
|
1244
|
+
|
|
1245
|
+
'10':
|
|
1246
|
+
description: Completed with blocking findings.
|
|
1247
|
+
stdout:
|
|
1248
|
+
format: '{options.report-format}'
|
|
1249
|
+
schema:
|
|
1250
|
+
$ref: '#/components/schemas/GuardrailsAuditResult'
|
|
1251
|
+
|
|
1252
|
+
'11':
|
|
1253
|
+
description: Runtime dependency missing (agent-contracts-runtime).
|
|
1254
|
+
stderr:
|
|
1255
|
+
format: text
|
|
1256
|
+
|
|
1257
|
+
'12':
|
|
1258
|
+
description: LLM provider or adapter error.
|
|
1259
|
+
stderr:
|
|
1260
|
+
format: text
|
|
1261
|
+
|
|
1262
|
+
effects:
|
|
1263
|
+
reads: [guardrails-config, config]
|
|
1264
|
+
writes: []
|
|
1265
|
+
network:
|
|
1266
|
+
description: LLM API calls when adapter is not mock
|
|
1267
|
+
requires_secrets: []
|
|
1268
|
+
idempotent: true
|
|
1269
|
+
|
|
1270
|
+
x-agent:
|
|
1271
|
+
risk_level: low
|
|
1272
|
+
requires_confirmation: false
|
|
1273
|
+
idempotent: true
|
|
1274
|
+
side_effects: [network]
|
|
1275
|
+
sideEffectNote: >-
|
|
1276
|
+
Network calls to LLM provider when adapter is not mock.
|
|
1277
|
+
Filesystem write only when --output is specified.
|
|
1278
|
+
safe_dry_run_option: show-prompt
|
|
1279
|
+
expectedDurationMs: 120000
|
|
1280
|
+
retryableExitCodes: [12]
|
|
1281
|
+
|
|
1282
|
+
components:
|
|
1283
|
+
schemas:
|
|
1284
|
+
# ── AI Agent Interoperability Schemas ──────────────────
|
|
1285
|
+
AgentEvidence:
|
|
1286
|
+
$ref: 'components.yaml#/schemas/agent-evidence'
|
|
1287
|
+
AgentFinding:
|
|
1288
|
+
$ref: 'components.yaml#/schemas/agent-finding'
|
|
1289
|
+
AgentRecommendedAction:
|
|
1290
|
+
$ref: 'components.yaml#/schemas/agent-recommended-action'
|
|
1291
|
+
OpenApiAuditResult:
|
|
1292
|
+
$ref: 'components.yaml#/schemas/agent-audit-result'
|
|
1293
|
+
|
|
1294
|
+
PublishedReviewResult:
|
|
1295
|
+
type: object
|
|
1296
|
+
description: >-
|
|
1297
|
+
Result from review-published command. Contains published endpoint
|
|
1298
|
+
enumeration and internal type leakage analysis.
|
|
1299
|
+
allOf:
|
|
1300
|
+
- $ref: 'components.yaml#/schemas/agent-audit-result'
|
|
1301
|
+
- type: object
|
|
1302
|
+
required: [publishedEndpoints, leakedInternalTypes]
|
|
1303
|
+
properties:
|
|
1304
|
+
publishedEndpoints:
|
|
1305
|
+
type: array
|
|
1306
|
+
items:
|
|
1307
|
+
type: object
|
|
1308
|
+
required: [operationId, path, method]
|
|
1309
|
+
properties:
|
|
1310
|
+
operationId:
|
|
1311
|
+
type: string
|
|
1312
|
+
path:
|
|
1313
|
+
type: string
|
|
1314
|
+
method:
|
|
1315
|
+
type: string
|
|
1316
|
+
leakedInternalTypes:
|
|
1317
|
+
type: array
|
|
1318
|
+
items:
|
|
1319
|
+
type: object
|
|
1320
|
+
required: [schemaName, referencedBy, reason]
|
|
1321
|
+
properties:
|
|
1322
|
+
schemaName:
|
|
1323
|
+
type: string
|
|
1324
|
+
referencedBy:
|
|
1325
|
+
type: string
|
|
1326
|
+
reason:
|
|
1327
|
+
type: string
|
|
1328
|
+
|
|
1329
|
+
OverlayProposalResult:
|
|
1330
|
+
type: object
|
|
1331
|
+
description: >-
|
|
1332
|
+
Result from propose-overlays command. Contains overlay candidate
|
|
1333
|
+
proposals with endpoint, type, rationale, and suggested config.
|
|
1334
|
+
allOf:
|
|
1335
|
+
- $ref: 'components.yaml#/schemas/agent-audit-result'
|
|
1336
|
+
- type: object
|
|
1337
|
+
required: [overlayCandidates]
|
|
1338
|
+
properties:
|
|
1339
|
+
overlayCandidates:
|
|
1340
|
+
type: array
|
|
1341
|
+
items:
|
|
1342
|
+
type: object
|
|
1343
|
+
required: [endpoint, overlayType, rationale]
|
|
1344
|
+
properties:
|
|
1345
|
+
endpoint:
|
|
1346
|
+
type: string
|
|
1347
|
+
overlayType:
|
|
1348
|
+
type: string
|
|
1349
|
+
enum: [auth, tenancy, rateLimit, auditLog, custom]
|
|
1350
|
+
rationale:
|
|
1351
|
+
type: string
|
|
1352
|
+
suggestedConfig:
|
|
1353
|
+
type: object
|
|
1354
|
+
additionalProperties: true
|
|
1355
|
+
|
|
1356
|
+
GuardrailsAuditResult:
|
|
1357
|
+
type: object
|
|
1358
|
+
description: >-
|
|
1359
|
+
Result from audit-guardrails command. Contains drift detection
|
|
1360
|
+
and lint rule coverage analysis.
|
|
1361
|
+
allOf:
|
|
1362
|
+
- $ref: 'components.yaml#/schemas/agent-audit-result'
|
|
1363
|
+
- type: object
|
|
1364
|
+
required: [coveredPaths, uncoveredPaths]
|
|
1365
|
+
properties:
|
|
1366
|
+
coveredPaths:
|
|
1367
|
+
type: array
|
|
1368
|
+
items:
|
|
1369
|
+
type: string
|
|
1370
|
+
uncoveredPaths:
|
|
1371
|
+
type: array
|
|
1372
|
+
items:
|
|
1373
|
+
type: string
|