@codai/axiom-mcp 1.0.23 → 2.0.0

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.
@@ -0,0 +1,1966 @@
1
+ [
2
+ {
3
+ "name": "axiom_plan_validate",
4
+ "description": "Validate a Plan against PlanSchema and, when all sources are inline, compute its planDigest. Read-only; touches no files.",
5
+ "riskClass": "READ",
6
+ "annotations": {
7
+ "readOnlyHint": true,
8
+ "destructiveHint": false,
9
+ "idempotentHint": true,
10
+ "openWorldHint": false
11
+ },
12
+ "inputSchema": {
13
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
14
+ "type": "object",
15
+ "properties": {
16
+ "plan": {
17
+ "type": "object",
18
+ "propertyNames": {
19
+ "type": "string"
20
+ },
21
+ "additionalProperties": {},
22
+ "description": "Plan document (apiVersion axiom.dev/v2, kind Plan)"
23
+ }
24
+ },
25
+ "required": [
26
+ "plan"
27
+ ]
28
+ },
29
+ "outputSchema": {
30
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
31
+ "type": "object",
32
+ "properties": {
33
+ "ok": {
34
+ "type": "boolean"
35
+ },
36
+ "planDigest": {
37
+ "type": "string",
38
+ "pattern": "^sha256:[a-f0-9]{64}$",
39
+ "description": "sha256:<64 lowercase hex>"
40
+ },
41
+ "errors": {
42
+ "type": "array",
43
+ "items": {
44
+ "type": "object",
45
+ "properties": {
46
+ "path": {
47
+ "type": "string"
48
+ },
49
+ "message": {
50
+ "type": "string"
51
+ },
52
+ "code": {
53
+ "type": "string"
54
+ }
55
+ },
56
+ "required": [
57
+ "path",
58
+ "message"
59
+ ]
60
+ }
61
+ }
62
+ },
63
+ "required": [
64
+ "ok",
65
+ "errors"
66
+ ]
67
+ }
68
+ },
69
+ {
70
+ "name": "axiom_plan_compile",
71
+ "description": "Compile a Plan into a content-addressed ManifestBundle (sorted artifacts, sha256 digests, in-toto planDigest). `store: cas` writes blobs under <root>/.axiom/cas instead of inlining them. When a root is given the bundle is stored under <root>/.axiom/manifests/<hex>.json so later tools can reference it by digest.",
72
+ "riskClass": "ACT",
73
+ "annotations": {
74
+ "readOnlyHint": false,
75
+ "destructiveHint": false,
76
+ "idempotentHint": true,
77
+ "openWorldHint": false
78
+ },
79
+ "inputSchema": {
80
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
81
+ "type": "object",
82
+ "properties": {
83
+ "plan": {
84
+ "type": "object",
85
+ "propertyNames": {
86
+ "type": "string"
87
+ },
88
+ "additionalProperties": {},
89
+ "description": "Plan document"
90
+ },
91
+ "store": {
92
+ "description": "Blob transport; default inline",
93
+ "type": "string",
94
+ "enum": [
95
+ "inline",
96
+ "cas"
97
+ ]
98
+ },
99
+ "root": {
100
+ "description": "Absolute repository root; must equal or lie inside an allowlisted --root",
101
+ "type": "string"
102
+ }
103
+ },
104
+ "required": [
105
+ "plan"
106
+ ]
107
+ },
108
+ "outputSchema": {
109
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
110
+ "type": "object",
111
+ "properties": {
112
+ "manifest": {
113
+ "type": "object",
114
+ "properties": {
115
+ "apiVersion": {
116
+ "type": "string",
117
+ "const": "axiom.dev/v2"
118
+ },
119
+ "kind": {
120
+ "type": "string",
121
+ "const": "Manifest"
122
+ },
123
+ "name": {
124
+ "type": "string",
125
+ "pattern": "^[a-z0-9][a-z0-9-]{0,63}$"
126
+ },
127
+ "profile": {
128
+ "type": "string",
129
+ "minLength": 1
130
+ },
131
+ "planDigest": {
132
+ "type": "string",
133
+ "pattern": "^sha256:[a-f0-9]{64}$",
134
+ "description": "sha256:<64 lowercase hex>"
135
+ },
136
+ "artifacts": {
137
+ "minItems": 1,
138
+ "maxItems": 2000,
139
+ "type": "array",
140
+ "items": {
141
+ "type": "object",
142
+ "properties": {
143
+ "path": {
144
+ "type": "string",
145
+ "minLength": 1,
146
+ "maxLength": 1024,
147
+ "description": "Relative POSIX path, NFC, no reserved names"
148
+ },
149
+ "op": {
150
+ "type": "string",
151
+ "enum": [
152
+ "create",
153
+ "overwrite",
154
+ "delete"
155
+ ]
156
+ },
157
+ "mode": {
158
+ "type": "string",
159
+ "enum": [
160
+ "0644",
161
+ "0755"
162
+ ]
163
+ },
164
+ "digest": {
165
+ "type": "object",
166
+ "properties": {
167
+ "sha256": {
168
+ "type": "string",
169
+ "pattern": "^[a-f0-9]{64}$",
170
+ "description": "Lowercase hex-encoded sha256"
171
+ }
172
+ },
173
+ "required": [
174
+ "sha256"
175
+ ],
176
+ "additionalProperties": false
177
+ },
178
+ "bytes": {
179
+ "type": "integer",
180
+ "minimum": 0,
181
+ "maximum": 9007199254740991
182
+ },
183
+ "origin": {
184
+ "type": "string",
185
+ "enum": [
186
+ "inline",
187
+ "template",
188
+ "cas",
189
+ "ref"
190
+ ]
191
+ }
192
+ },
193
+ "required": [
194
+ "path",
195
+ "op",
196
+ "mode"
197
+ ],
198
+ "additionalProperties": false
199
+ }
200
+ },
201
+ "checks": {
202
+ "type": "array",
203
+ "items": {
204
+ "type": "object",
205
+ "properties": {
206
+ "id": {
207
+ "type": "string",
208
+ "minLength": 1,
209
+ "maxLength": 128
210
+ },
211
+ "predicate": {
212
+ "type": "string",
213
+ "pattern": "^[a-z][a-zA-Z0-9]*\\.[a-zA-Z][a-zA-Z0-9]*$"
214
+ },
215
+ "params": {
216
+ "$ref": "#/$defs/__schema0"
217
+ },
218
+ "severity": {
219
+ "default": "error",
220
+ "type": "string",
221
+ "enum": [
222
+ "error",
223
+ "warn",
224
+ "info"
225
+ ]
226
+ }
227
+ },
228
+ "required": [
229
+ "id",
230
+ "predicate",
231
+ "params"
232
+ ],
233
+ "additionalProperties": false
234
+ }
235
+ },
236
+ "toolchain": {
237
+ "type": "object",
238
+ "properties": {
239
+ "axiom": {
240
+ "type": "string",
241
+ "minLength": 1
242
+ },
243
+ "emitters": {
244
+ "type": "object",
245
+ "propertyNames": {
246
+ "type": "string"
247
+ },
248
+ "additionalProperties": {
249
+ "type": "string"
250
+ }
251
+ }
252
+ },
253
+ "required": [
254
+ "axiom",
255
+ "emitters"
256
+ ],
257
+ "additionalProperties": false
258
+ }
259
+ },
260
+ "required": [
261
+ "apiVersion",
262
+ "kind",
263
+ "name",
264
+ "profile",
265
+ "planDigest",
266
+ "artifacts",
267
+ "checks",
268
+ "toolchain"
269
+ ],
270
+ "additionalProperties": false
271
+ },
272
+ "manifestDigest": {
273
+ "type": "string",
274
+ "pattern": "^sha256:[a-f0-9]{64}$",
275
+ "description": "sha256:<64 lowercase hex>"
276
+ },
277
+ "attestation": {
278
+ "type": "object",
279
+ "properties": {
280
+ "_type": {
281
+ "type": "string",
282
+ "const": "https://in-toto.io/Statement/v1"
283
+ },
284
+ "subject": {
285
+ "minItems": 1,
286
+ "type": "array",
287
+ "items": {
288
+ "type": "object",
289
+ "properties": {
290
+ "name": {
291
+ "type": "string"
292
+ },
293
+ "digest": {
294
+ "type": "object",
295
+ "properties": {
296
+ "sha256": {
297
+ "type": "string",
298
+ "pattern": "^[a-f0-9]{64}$",
299
+ "description": "Lowercase hex-encoded sha256"
300
+ }
301
+ },
302
+ "required": [
303
+ "sha256"
304
+ ],
305
+ "additionalProperties": false
306
+ }
307
+ },
308
+ "required": [
309
+ "name",
310
+ "digest"
311
+ ],
312
+ "additionalProperties": false
313
+ }
314
+ },
315
+ "predicateType": {
316
+ "type": "string",
317
+ "format": "uri"
318
+ },
319
+ "predicate": {
320
+ "type": "object",
321
+ "propertyNames": {
322
+ "type": "string"
323
+ },
324
+ "additionalProperties": {}
325
+ }
326
+ },
327
+ "required": [
328
+ "_type",
329
+ "subject",
330
+ "predicateType",
331
+ "predicate"
332
+ ],
333
+ "additionalProperties": false
334
+ },
335
+ "envelope": {
336
+ "type": "object",
337
+ "properties": {
338
+ "payloadType": {
339
+ "type": "string",
340
+ "const": "application/vnd.in-toto+json"
341
+ },
342
+ "payload": {
343
+ "type": "string",
344
+ "format": "base64",
345
+ "contentEncoding": "base64",
346
+ "pattern": "^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$"
347
+ },
348
+ "signatures": {
349
+ "type": "array",
350
+ "items": {
351
+ "type": "object",
352
+ "properties": {
353
+ "keyid": {
354
+ "type": "string"
355
+ },
356
+ "sig": {
357
+ "type": "string",
358
+ "format": "base64",
359
+ "contentEncoding": "base64",
360
+ "pattern": "^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$"
361
+ }
362
+ },
363
+ "required": [
364
+ "sig"
365
+ ],
366
+ "additionalProperties": false
367
+ }
368
+ }
369
+ },
370
+ "required": [
371
+ "payloadType",
372
+ "payload",
373
+ "signatures"
374
+ ],
375
+ "additionalProperties": false
376
+ },
377
+ "blobs": {
378
+ "default": {},
379
+ "type": "object",
380
+ "propertyNames": {
381
+ "type": "string",
382
+ "pattern": "^sha256:[a-f0-9]{64}$",
383
+ "description": "sha256:<64 lowercase hex>"
384
+ },
385
+ "additionalProperties": {
386
+ "type": "object",
387
+ "properties": {
388
+ "encoding": {
389
+ "type": "string",
390
+ "enum": [
391
+ "utf8",
392
+ "base64"
393
+ ]
394
+ },
395
+ "data": {
396
+ "type": "string"
397
+ }
398
+ },
399
+ "required": [
400
+ "encoding",
401
+ "data"
402
+ ],
403
+ "additionalProperties": false
404
+ }
405
+ }
406
+ },
407
+ "required": [
408
+ "manifest",
409
+ "manifestDigest"
410
+ ],
411
+ "additionalProperties": false,
412
+ "$defs": {
413
+ "__schema0": {
414
+ "anyOf": [
415
+ {
416
+ "type": "string"
417
+ },
418
+ {
419
+ "type": "number"
420
+ },
421
+ {
422
+ "type": "boolean"
423
+ },
424
+ {
425
+ "type": "null"
426
+ },
427
+ {
428
+ "type": "array",
429
+ "items": {
430
+ "$ref": "#/$defs/__schema0"
431
+ }
432
+ },
433
+ {
434
+ "type": "object",
435
+ "propertyNames": {
436
+ "type": "string"
437
+ },
438
+ "additionalProperties": {
439
+ "$ref": "#/$defs/__schema0"
440
+ }
441
+ }
442
+ ]
443
+ }
444
+ }
445
+ }
446
+ },
447
+ {
448
+ "name": "axiom_manifest_verify",
449
+ "description": "Structural and content-address verification: schema, recomputed manifestDigest, every inline blob hashes to its key, attestation subject matches. Never writes.",
450
+ "riskClass": "READ",
451
+ "annotations": {
452
+ "readOnlyHint": true,
453
+ "destructiveHint": false,
454
+ "idempotentHint": true,
455
+ "openWorldHint": false
456
+ },
457
+ "inputSchema": {
458
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
459
+ "type": "object",
460
+ "properties": {
461
+ "bundle": {
462
+ "type": "object",
463
+ "propertyNames": {
464
+ "type": "string"
465
+ },
466
+ "additionalProperties": {},
467
+ "description": "ManifestBundle"
468
+ }
469
+ },
470
+ "required": [
471
+ "bundle"
472
+ ]
473
+ },
474
+ "outputSchema": {
475
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
476
+ "type": "object",
477
+ "properties": {
478
+ "ok": {
479
+ "type": "boolean"
480
+ },
481
+ "manifestDigest": {
482
+ "type": "string",
483
+ "pattern": "^sha256:[a-f0-9]{64}$",
484
+ "description": "sha256:<64 lowercase hex>"
485
+ },
486
+ "canonical": {
487
+ "type": "boolean"
488
+ },
489
+ "signed": {
490
+ "type": "boolean"
491
+ },
492
+ "missing": {
493
+ "type": "array",
494
+ "items": {
495
+ "type": "string"
496
+ }
497
+ },
498
+ "errors": {
499
+ "type": "array",
500
+ "items": {
501
+ "type": "object",
502
+ "properties": {
503
+ "code": {
504
+ "type": "string",
505
+ "enum": [
506
+ "ERR_PATH_NOT_RELATIVE_POSIX",
507
+ "ERR_PATH_SEGMENT",
508
+ "ERR_PATH_NOT_NFC",
509
+ "ERR_PATH_RESERVED_NAME",
510
+ "ERR_PATH_INVALID_CHAR",
511
+ "ERR_PATH_CASE_COLLISION",
512
+ "ERR_SYMLINK_IN_PATH",
513
+ "ERR_CONTAINMENT",
514
+ "ERR_TARGET_TYPE",
515
+ "ERR_EXISTS",
516
+ "ERR_NOT_FOUND",
517
+ "ERR_BLOB_MISSING",
518
+ "ERR_DIGEST_FORMAT",
519
+ "ERR_DIGEST_MISMATCH",
520
+ "ERR_SIZE_MISMATCH",
521
+ "ERR_BLOB_TOO_LARGE",
522
+ "ERR_BUNDLE_TOO_LARGE",
523
+ "ERR_LOCKED",
524
+ "ERR_ROOT_NOT_ALLOWED",
525
+ "ERR_ROOT_REQUIRED",
526
+ "ERR_ROOT_NOT_DIR",
527
+ "ERR_CONFIRM_DIGEST_MISMATCH",
528
+ "ERR_CHECKS_FAILED",
529
+ "ERR_PREIMAGE_CHANGED",
530
+ "ERR_JOURNAL_CORRUPT",
531
+ "ERR_EBUSY",
532
+ "ERR_INVALID_PLAN",
533
+ "ERR_INVALID_MANIFEST",
534
+ "ERR_INVALID_PROFILE",
535
+ "ERR_PREDICATE_UNKNOWN",
536
+ "ERR_PREDICATE_PARAMS",
537
+ "ERR_PROVIDER_FAILED",
538
+ "ERR_GUARD_TIMEOUT",
539
+ "ERR_GUARD_OUTPUT",
540
+ "ERR_GIT_NOT_FOUND",
541
+ "ERR_GIT_NOT_REPO",
542
+ "ERR_GIT_DIRTY",
543
+ "ERR_GIT_BRANCH_EXISTS",
544
+ "ERR_GIT_BRANCH_INVALID",
545
+ "ERR_GIT_FAILED",
546
+ "ERR_REF_OFFLINE",
547
+ "ERR_NOT_CANONICAL",
548
+ "ERR_UNSUPPORTED_OP",
549
+ "ERR_INTERNAL"
550
+ ]
551
+ },
552
+ "message": {
553
+ "type": "string"
554
+ },
555
+ "path": {
556
+ "type": "string"
557
+ }
558
+ },
559
+ "required": [
560
+ "code",
561
+ "message"
562
+ ]
563
+ }
564
+ }
565
+ },
566
+ "required": [
567
+ "ok",
568
+ "canonical",
569
+ "signed",
570
+ "missing",
571
+ "errors"
572
+ ]
573
+ }
574
+ },
575
+ {
576
+ "name": "axiom_check",
577
+ "description": "Evaluate the profile's predicates (plus the manifest's own checks) against the bundle. Repo facts are read from the root when one is available and the profile allows it. Verdict `error` means a provider could not run — never a silent pass.",
578
+ "riskClass": "READ",
579
+ "annotations": {
580
+ "readOnlyHint": true,
581
+ "destructiveHint": false,
582
+ "idempotentHint": true,
583
+ "openWorldHint": false
584
+ },
585
+ "inputSchema": {
586
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
587
+ "type": "object",
588
+ "properties": {
589
+ "bundle": {
590
+ "type": "object",
591
+ "propertyNames": {
592
+ "type": "string"
593
+ },
594
+ "additionalProperties": {},
595
+ "description": "ManifestBundle"
596
+ },
597
+ "profile": {
598
+ "description": "Profile name (builtin default|strict|permissive, or <root>/.axiom/profiles/<name>.json)",
599
+ "type": "string"
600
+ },
601
+ "root": {
602
+ "description": "Absolute repository root; must equal or lie inside an allowlisted --root",
603
+ "type": "string"
604
+ }
605
+ },
606
+ "required": [
607
+ "bundle"
608
+ ]
609
+ },
610
+ "outputSchema": {
611
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
612
+ "type": "object",
613
+ "properties": {
614
+ "apiVersion": {
615
+ "type": "string",
616
+ "const": "axiom.dev/v2"
617
+ },
618
+ "kind": {
619
+ "type": "string",
620
+ "const": "CheckReport"
621
+ },
622
+ "manifestDigest": {
623
+ "type": "string",
624
+ "pattern": "^sha256:[a-f0-9]{64}$",
625
+ "description": "sha256:<64 lowercase hex>"
626
+ },
627
+ "profile": {
628
+ "type": "string"
629
+ },
630
+ "verdict": {
631
+ "type": "string",
632
+ "enum": [
633
+ "pass",
634
+ "fail",
635
+ "error"
636
+ ]
637
+ },
638
+ "findings": {
639
+ "type": "array",
640
+ "items": {
641
+ "type": "object",
642
+ "properties": {
643
+ "id": {
644
+ "type": "string"
645
+ },
646
+ "severity": {
647
+ "type": "string",
648
+ "enum": [
649
+ "error",
650
+ "warn",
651
+ "info"
652
+ ]
653
+ },
654
+ "predicate": {
655
+ "type": "string"
656
+ },
657
+ "message": {
658
+ "type": "string"
659
+ },
660
+ "path": {
661
+ "type": "string",
662
+ "minLength": 1,
663
+ "maxLength": 1024,
664
+ "description": "Relative POSIX path, NFC, no reserved names"
665
+ },
666
+ "facts": {
667
+ "default": {},
668
+ "type": "object",
669
+ "propertyNames": {
670
+ "type": "string"
671
+ },
672
+ "additionalProperties": {
673
+ "$ref": "#/$defs/__schema0"
674
+ }
675
+ }
676
+ },
677
+ "required": [
678
+ "id",
679
+ "severity",
680
+ "predicate",
681
+ "message"
682
+ ],
683
+ "additionalProperties": false
684
+ }
685
+ },
686
+ "factsDigest": {
687
+ "type": "string",
688
+ "pattern": "^sha256:[a-f0-9]{64}$",
689
+ "description": "sha256:<64 lowercase hex>"
690
+ },
691
+ "durationMs": {
692
+ "type": "integer",
693
+ "minimum": 0,
694
+ "maximum": 9007199254740991
695
+ },
696
+ "providers": {
697
+ "type": "array",
698
+ "items": {
699
+ "type": "object",
700
+ "properties": {
701
+ "name": {
702
+ "type": "string"
703
+ },
704
+ "status": {
705
+ "type": "string",
706
+ "enum": [
707
+ "ok",
708
+ "skipped",
709
+ "error"
710
+ ]
711
+ },
712
+ "ms": {
713
+ "type": "integer",
714
+ "minimum": 0,
715
+ "maximum": 9007199254740991
716
+ }
717
+ },
718
+ "required": [
719
+ "name",
720
+ "status",
721
+ "ms"
722
+ ],
723
+ "additionalProperties": false
724
+ }
725
+ }
726
+ },
727
+ "required": [
728
+ "apiVersion",
729
+ "kind",
730
+ "manifestDigest",
731
+ "profile",
732
+ "verdict",
733
+ "findings",
734
+ "factsDigest",
735
+ "durationMs",
736
+ "providers"
737
+ ],
738
+ "additionalProperties": false,
739
+ "$defs": {
740
+ "__schema0": {
741
+ "anyOf": [
742
+ {
743
+ "type": "string"
744
+ },
745
+ {
746
+ "type": "number"
747
+ },
748
+ {
749
+ "type": "boolean"
750
+ },
751
+ {
752
+ "type": "null"
753
+ },
754
+ {
755
+ "type": "array",
756
+ "items": {
757
+ "$ref": "#/$defs/__schema0"
758
+ }
759
+ },
760
+ {
761
+ "type": "object",
762
+ "propertyNames": {
763
+ "type": "string"
764
+ },
765
+ "additionalProperties": {
766
+ "$ref": "#/$defs/__schema0"
767
+ }
768
+ }
769
+ ]
770
+ }
771
+ }
772
+ }
773
+ },
774
+ {
775
+ "name": "axiom_apply_dry_run",
776
+ "description": "Stage the bundle under <root>/.axiom/staging, run pre-apply checks and produce a unified diff against the current tree. Nothing outside .axiom/ is touched. Echo the returned manifestDigest as `confirmDigest` to axiom_apply.",
777
+ "riskClass": "READ",
778
+ "annotations": {
779
+ "readOnlyHint": true,
780
+ "destructiveHint": false,
781
+ "idempotentHint": true,
782
+ "openWorldHint": false
783
+ },
784
+ "inputSchema": {
785
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
786
+ "type": "object",
787
+ "properties": {
788
+ "bundle": {
789
+ "type": "object",
790
+ "propertyNames": {
791
+ "type": "string"
792
+ },
793
+ "additionalProperties": {},
794
+ "description": "ManifestBundle"
795
+ },
796
+ "root": {
797
+ "description": "Absolute repository root; must equal or lie inside an allowlisted --root",
798
+ "type": "string"
799
+ },
800
+ "profile": {
801
+ "description": "Profile name (builtin default|strict|permissive, or <root>/.axiom/profiles/<name>.json)",
802
+ "type": "string"
803
+ }
804
+ },
805
+ "required": [
806
+ "bundle"
807
+ ]
808
+ },
809
+ "outputSchema": {
810
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
811
+ "type": "object",
812
+ "properties": {
813
+ "apiVersion": {
814
+ "type": "string",
815
+ "const": "axiom.dev/v2"
816
+ },
817
+ "kind": {
818
+ "type": "string",
819
+ "const": "ApplyResult"
820
+ },
821
+ "manifestDigest": {
822
+ "type": "string",
823
+ "pattern": "^sha256:[a-f0-9]{64}$",
824
+ "description": "sha256:<64 lowercase hex>"
825
+ },
826
+ "mode": {
827
+ "type": "string",
828
+ "enum": [
829
+ "dry-run",
830
+ "fs",
831
+ "pr"
832
+ ]
833
+ },
834
+ "status": {
835
+ "type": "string",
836
+ "enum": [
837
+ "applied",
838
+ "noop",
839
+ "rolled-back",
840
+ "failed"
841
+ ]
842
+ },
843
+ "root": {
844
+ "type": "string",
845
+ "minLength": 1
846
+ },
847
+ "files": {
848
+ "type": "array",
849
+ "items": {
850
+ "type": "object",
851
+ "properties": {
852
+ "path": {
853
+ "type": "string",
854
+ "minLength": 1,
855
+ "maxLength": 1024,
856
+ "description": "Relative POSIX path, NFC, no reserved names"
857
+ },
858
+ "op": {
859
+ "type": "string",
860
+ "enum": [
861
+ "create",
862
+ "overwrite",
863
+ "delete"
864
+ ]
865
+ },
866
+ "digest": {
867
+ "type": "object",
868
+ "properties": {
869
+ "sha256": {
870
+ "type": "string",
871
+ "pattern": "^[a-f0-9]{64}$",
872
+ "description": "Lowercase hex-encoded sha256"
873
+ }
874
+ },
875
+ "required": [
876
+ "sha256"
877
+ ],
878
+ "additionalProperties": false
879
+ },
880
+ "status": {
881
+ "type": "string",
882
+ "enum": [
883
+ "written",
884
+ "deleted",
885
+ "unchanged",
886
+ "skipped"
887
+ ]
888
+ }
889
+ },
890
+ "required": [
891
+ "path",
892
+ "op",
893
+ "status"
894
+ ],
895
+ "additionalProperties": false
896
+ }
897
+ },
898
+ "diff": {
899
+ "type": "string"
900
+ },
901
+ "journal": {
902
+ "type": "string"
903
+ },
904
+ "git": {
905
+ "type": "object",
906
+ "properties": {
907
+ "branch": {
908
+ "type": "string",
909
+ "minLength": 1
910
+ },
911
+ "commit": {
912
+ "type": "string",
913
+ "pattern": "^[a-f0-9]{40}$"
914
+ },
915
+ "compareUrl": {
916
+ "type": "string",
917
+ "format": "uri"
918
+ }
919
+ },
920
+ "required": [
921
+ "branch"
922
+ ],
923
+ "additionalProperties": false
924
+ },
925
+ "error": {
926
+ "type": "object",
927
+ "properties": {
928
+ "code": {
929
+ "type": "string",
930
+ "enum": [
931
+ "ERR_PATH_NOT_RELATIVE_POSIX",
932
+ "ERR_PATH_SEGMENT",
933
+ "ERR_PATH_NOT_NFC",
934
+ "ERR_PATH_RESERVED_NAME",
935
+ "ERR_PATH_INVALID_CHAR",
936
+ "ERR_PATH_CASE_COLLISION",
937
+ "ERR_SYMLINK_IN_PATH",
938
+ "ERR_CONTAINMENT",
939
+ "ERR_TARGET_TYPE",
940
+ "ERR_EXISTS",
941
+ "ERR_NOT_FOUND",
942
+ "ERR_BLOB_MISSING",
943
+ "ERR_DIGEST_FORMAT",
944
+ "ERR_DIGEST_MISMATCH",
945
+ "ERR_SIZE_MISMATCH",
946
+ "ERR_BLOB_TOO_LARGE",
947
+ "ERR_BUNDLE_TOO_LARGE",
948
+ "ERR_LOCKED",
949
+ "ERR_ROOT_NOT_ALLOWED",
950
+ "ERR_ROOT_REQUIRED",
951
+ "ERR_ROOT_NOT_DIR",
952
+ "ERR_CONFIRM_DIGEST_MISMATCH",
953
+ "ERR_CHECKS_FAILED",
954
+ "ERR_PREIMAGE_CHANGED",
955
+ "ERR_JOURNAL_CORRUPT",
956
+ "ERR_EBUSY",
957
+ "ERR_INVALID_PLAN",
958
+ "ERR_INVALID_MANIFEST",
959
+ "ERR_INVALID_PROFILE",
960
+ "ERR_PREDICATE_UNKNOWN",
961
+ "ERR_PREDICATE_PARAMS",
962
+ "ERR_PROVIDER_FAILED",
963
+ "ERR_GUARD_TIMEOUT",
964
+ "ERR_GUARD_OUTPUT",
965
+ "ERR_GIT_NOT_FOUND",
966
+ "ERR_GIT_NOT_REPO",
967
+ "ERR_GIT_DIRTY",
968
+ "ERR_GIT_BRANCH_EXISTS",
969
+ "ERR_GIT_BRANCH_INVALID",
970
+ "ERR_GIT_FAILED",
971
+ "ERR_REF_OFFLINE",
972
+ "ERR_NOT_CANONICAL",
973
+ "ERR_UNSUPPORTED_OP",
974
+ "ERR_INTERNAL"
975
+ ]
976
+ },
977
+ "message": {
978
+ "type": "string"
979
+ },
980
+ "path": {
981
+ "type": "string",
982
+ "minLength": 1,
983
+ "maxLength": 1024,
984
+ "description": "Relative POSIX path, NFC, no reserved names"
985
+ }
986
+ },
987
+ "required": [
988
+ "code",
989
+ "message"
990
+ ],
991
+ "additionalProperties": false
992
+ }
993
+ },
994
+ "required": [
995
+ "apiVersion",
996
+ "kind",
997
+ "manifestDigest",
998
+ "mode",
999
+ "status",
1000
+ "root",
1001
+ "files"
1002
+ ],
1003
+ "additionalProperties": false
1004
+ }
1005
+ },
1006
+ {
1007
+ "name": "axiom_apply",
1008
+ "description": "Transactionally write the bundle into the root: pre-image verification, staging, journal, atomic renames, scoped rollback on failure. Requires `confirmDigest === bundle.manifestDigest` (echo the digest you saw in dry-run). Idempotent: re-applying an applied digest is a no-op.",
1009
+ "riskClass": "SENSITIVE",
1010
+ "annotations": {
1011
+ "readOnlyHint": false,
1012
+ "destructiveHint": true,
1013
+ "idempotentHint": true,
1014
+ "openWorldHint": false
1015
+ },
1016
+ "inputSchema": {
1017
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1018
+ "type": "object",
1019
+ "properties": {
1020
+ "bundle": {
1021
+ "type": "object",
1022
+ "propertyNames": {
1023
+ "type": "string"
1024
+ },
1025
+ "additionalProperties": {},
1026
+ "description": "ManifestBundle"
1027
+ },
1028
+ "root": {
1029
+ "description": "Absolute repository root; must equal or lie inside an allowlisted --root",
1030
+ "type": "string"
1031
+ },
1032
+ "profile": {
1033
+ "description": "Profile name (builtin default|strict|permissive, or <root>/.axiom/profiles/<name>.json)",
1034
+ "type": "string"
1035
+ },
1036
+ "confirmDigest": {
1037
+ "description": "Must equal bundle.manifestDigest",
1038
+ "type": "string"
1039
+ },
1040
+ "mode": {
1041
+ "description": "fs (default) writes files; pr additionally creates a git branch and commits exactly the touched paths (no push, no PR creation)",
1042
+ "type": "string",
1043
+ "enum": [
1044
+ "fs",
1045
+ "pr"
1046
+ ]
1047
+ },
1048
+ "branch": {
1049
+ "description": "pr mode: branch name (default axiom/<name>/<digest12>)",
1050
+ "type": "string"
1051
+ },
1052
+ "commitMessage": {
1053
+ "description": "pr mode: commit message (passed to git on stdin)",
1054
+ "type": "string"
1055
+ }
1056
+ },
1057
+ "required": [
1058
+ "bundle"
1059
+ ]
1060
+ },
1061
+ "outputSchema": {
1062
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1063
+ "type": "object",
1064
+ "properties": {
1065
+ "apiVersion": {
1066
+ "type": "string",
1067
+ "const": "axiom.dev/v2"
1068
+ },
1069
+ "kind": {
1070
+ "type": "string",
1071
+ "const": "ApplyResult"
1072
+ },
1073
+ "manifestDigest": {
1074
+ "type": "string",
1075
+ "pattern": "^sha256:[a-f0-9]{64}$",
1076
+ "description": "sha256:<64 lowercase hex>"
1077
+ },
1078
+ "mode": {
1079
+ "type": "string",
1080
+ "enum": [
1081
+ "dry-run",
1082
+ "fs",
1083
+ "pr"
1084
+ ]
1085
+ },
1086
+ "status": {
1087
+ "type": "string",
1088
+ "enum": [
1089
+ "applied",
1090
+ "noop",
1091
+ "rolled-back",
1092
+ "failed"
1093
+ ]
1094
+ },
1095
+ "root": {
1096
+ "type": "string",
1097
+ "minLength": 1
1098
+ },
1099
+ "files": {
1100
+ "type": "array",
1101
+ "items": {
1102
+ "type": "object",
1103
+ "properties": {
1104
+ "path": {
1105
+ "type": "string",
1106
+ "minLength": 1,
1107
+ "maxLength": 1024,
1108
+ "description": "Relative POSIX path, NFC, no reserved names"
1109
+ },
1110
+ "op": {
1111
+ "type": "string",
1112
+ "enum": [
1113
+ "create",
1114
+ "overwrite",
1115
+ "delete"
1116
+ ]
1117
+ },
1118
+ "digest": {
1119
+ "type": "object",
1120
+ "properties": {
1121
+ "sha256": {
1122
+ "type": "string",
1123
+ "pattern": "^[a-f0-9]{64}$",
1124
+ "description": "Lowercase hex-encoded sha256"
1125
+ }
1126
+ },
1127
+ "required": [
1128
+ "sha256"
1129
+ ],
1130
+ "additionalProperties": false
1131
+ },
1132
+ "status": {
1133
+ "type": "string",
1134
+ "enum": [
1135
+ "written",
1136
+ "deleted",
1137
+ "unchanged",
1138
+ "skipped"
1139
+ ]
1140
+ }
1141
+ },
1142
+ "required": [
1143
+ "path",
1144
+ "op",
1145
+ "status"
1146
+ ],
1147
+ "additionalProperties": false
1148
+ }
1149
+ },
1150
+ "diff": {
1151
+ "type": "string"
1152
+ },
1153
+ "journal": {
1154
+ "type": "string"
1155
+ },
1156
+ "git": {
1157
+ "type": "object",
1158
+ "properties": {
1159
+ "branch": {
1160
+ "type": "string",
1161
+ "minLength": 1
1162
+ },
1163
+ "commit": {
1164
+ "type": "string",
1165
+ "pattern": "^[a-f0-9]{40}$"
1166
+ },
1167
+ "compareUrl": {
1168
+ "type": "string",
1169
+ "format": "uri"
1170
+ }
1171
+ },
1172
+ "required": [
1173
+ "branch"
1174
+ ],
1175
+ "additionalProperties": false
1176
+ },
1177
+ "error": {
1178
+ "type": "object",
1179
+ "properties": {
1180
+ "code": {
1181
+ "type": "string",
1182
+ "enum": [
1183
+ "ERR_PATH_NOT_RELATIVE_POSIX",
1184
+ "ERR_PATH_SEGMENT",
1185
+ "ERR_PATH_NOT_NFC",
1186
+ "ERR_PATH_RESERVED_NAME",
1187
+ "ERR_PATH_INVALID_CHAR",
1188
+ "ERR_PATH_CASE_COLLISION",
1189
+ "ERR_SYMLINK_IN_PATH",
1190
+ "ERR_CONTAINMENT",
1191
+ "ERR_TARGET_TYPE",
1192
+ "ERR_EXISTS",
1193
+ "ERR_NOT_FOUND",
1194
+ "ERR_BLOB_MISSING",
1195
+ "ERR_DIGEST_FORMAT",
1196
+ "ERR_DIGEST_MISMATCH",
1197
+ "ERR_SIZE_MISMATCH",
1198
+ "ERR_BLOB_TOO_LARGE",
1199
+ "ERR_BUNDLE_TOO_LARGE",
1200
+ "ERR_LOCKED",
1201
+ "ERR_ROOT_NOT_ALLOWED",
1202
+ "ERR_ROOT_REQUIRED",
1203
+ "ERR_ROOT_NOT_DIR",
1204
+ "ERR_CONFIRM_DIGEST_MISMATCH",
1205
+ "ERR_CHECKS_FAILED",
1206
+ "ERR_PREIMAGE_CHANGED",
1207
+ "ERR_JOURNAL_CORRUPT",
1208
+ "ERR_EBUSY",
1209
+ "ERR_INVALID_PLAN",
1210
+ "ERR_INVALID_MANIFEST",
1211
+ "ERR_INVALID_PROFILE",
1212
+ "ERR_PREDICATE_UNKNOWN",
1213
+ "ERR_PREDICATE_PARAMS",
1214
+ "ERR_PROVIDER_FAILED",
1215
+ "ERR_GUARD_TIMEOUT",
1216
+ "ERR_GUARD_OUTPUT",
1217
+ "ERR_GIT_NOT_FOUND",
1218
+ "ERR_GIT_NOT_REPO",
1219
+ "ERR_GIT_DIRTY",
1220
+ "ERR_GIT_BRANCH_EXISTS",
1221
+ "ERR_GIT_BRANCH_INVALID",
1222
+ "ERR_GIT_FAILED",
1223
+ "ERR_REF_OFFLINE",
1224
+ "ERR_NOT_CANONICAL",
1225
+ "ERR_UNSUPPORTED_OP",
1226
+ "ERR_INTERNAL"
1227
+ ]
1228
+ },
1229
+ "message": {
1230
+ "type": "string"
1231
+ },
1232
+ "path": {
1233
+ "type": "string",
1234
+ "minLength": 1,
1235
+ "maxLength": 1024,
1236
+ "description": "Relative POSIX path, NFC, no reserved names"
1237
+ }
1238
+ },
1239
+ "required": [
1240
+ "code",
1241
+ "message"
1242
+ ],
1243
+ "additionalProperties": false
1244
+ }
1245
+ },
1246
+ "required": [
1247
+ "apiVersion",
1248
+ "kind",
1249
+ "manifestDigest",
1250
+ "mode",
1251
+ "status",
1252
+ "root",
1253
+ "files"
1254
+ ],
1255
+ "additionalProperties": false
1256
+ }
1257
+ },
1258
+ {
1259
+ "name": "axiom_rollback",
1260
+ "description": "Replay the journal of a committed/committing manifest in reverse: restore backups, remove created files, drop the applied marker.",
1261
+ "riskClass": "SENSITIVE",
1262
+ "annotations": {
1263
+ "readOnlyHint": false,
1264
+ "destructiveHint": true,
1265
+ "idempotentHint": true,
1266
+ "openWorldHint": false
1267
+ },
1268
+ "inputSchema": {
1269
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1270
+ "type": "object",
1271
+ "properties": {
1272
+ "root": {
1273
+ "description": "Absolute repository root; must equal or lie inside an allowlisted --root",
1274
+ "type": "string"
1275
+ },
1276
+ "manifestDigest": {
1277
+ "type": "string",
1278
+ "description": "`sha256:<hex>` (or bare hex) of the manifest to roll back"
1279
+ }
1280
+ },
1281
+ "required": [
1282
+ "manifestDigest"
1283
+ ]
1284
+ },
1285
+ "outputSchema": {
1286
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1287
+ "type": "object",
1288
+ "properties": {
1289
+ "manifestDigest": {
1290
+ "type": "string",
1291
+ "pattern": "^sha256:[a-f0-9]{64}$",
1292
+ "description": "sha256:<64 lowercase hex>"
1293
+ },
1294
+ "status": {
1295
+ "type": "string",
1296
+ "const": "rolled-back"
1297
+ },
1298
+ "phase": {
1299
+ "type": "string",
1300
+ "enum": [
1301
+ "staged",
1302
+ "committing",
1303
+ "committed",
1304
+ "rolling-back",
1305
+ "rolled-back"
1306
+ ]
1307
+ },
1308
+ "steps": {
1309
+ "type": "integer",
1310
+ "minimum": 0,
1311
+ "maximum": 9007199254740991
1312
+ },
1313
+ "root": {
1314
+ "type": "string"
1315
+ }
1316
+ },
1317
+ "required": [
1318
+ "manifestDigest",
1319
+ "status",
1320
+ "phase",
1321
+ "steps",
1322
+ "root"
1323
+ ]
1324
+ }
1325
+ },
1326
+ {
1327
+ "name": "axiom_manifest_diff",
1328
+ "description": "Compare two manifests by artifact path and digest. Each side is a ManifestBundle or a `sha256:<hex>` reference to a bundle stored under an allowlisted root.",
1329
+ "riskClass": "READ",
1330
+ "annotations": {
1331
+ "readOnlyHint": true,
1332
+ "destructiveHint": false,
1333
+ "idempotentHint": true,
1334
+ "openWorldHint": false
1335
+ },
1336
+ "inputSchema": {
1337
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1338
+ "type": "object",
1339
+ "properties": {
1340
+ "a": {
1341
+ "anyOf": [
1342
+ {
1343
+ "type": "string",
1344
+ "pattern": "^sha256:[a-f0-9]{64}$",
1345
+ "description": "sha256:<64 lowercase hex>"
1346
+ },
1347
+ {
1348
+ "type": "object",
1349
+ "propertyNames": {
1350
+ "type": "string"
1351
+ },
1352
+ "additionalProperties": {}
1353
+ }
1354
+ ],
1355
+ "description": "A ManifestBundle object, or `sha256:<hex>` of a bundle stored under <root>/.axiom/manifests"
1356
+ },
1357
+ "b": {
1358
+ "anyOf": [
1359
+ {
1360
+ "type": "string",
1361
+ "pattern": "^sha256:[a-f0-9]{64}$",
1362
+ "description": "sha256:<64 lowercase hex>"
1363
+ },
1364
+ {
1365
+ "type": "object",
1366
+ "propertyNames": {
1367
+ "type": "string"
1368
+ },
1369
+ "additionalProperties": {}
1370
+ }
1371
+ ],
1372
+ "description": "A ManifestBundle object, or `sha256:<hex>` of a bundle stored under <root>/.axiom/manifests"
1373
+ }
1374
+ },
1375
+ "required": [
1376
+ "a",
1377
+ "b"
1378
+ ]
1379
+ },
1380
+ "outputSchema": {
1381
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1382
+ "type": "object",
1383
+ "properties": {
1384
+ "added": {
1385
+ "type": "array",
1386
+ "items": {
1387
+ "type": "string"
1388
+ }
1389
+ },
1390
+ "removed": {
1391
+ "type": "array",
1392
+ "items": {
1393
+ "type": "string"
1394
+ }
1395
+ },
1396
+ "changed": {
1397
+ "type": "array",
1398
+ "items": {
1399
+ "type": "object",
1400
+ "properties": {
1401
+ "path": {
1402
+ "type": "string"
1403
+ },
1404
+ "from": {
1405
+ "type": [
1406
+ "string",
1407
+ "null"
1408
+ ]
1409
+ },
1410
+ "to": {
1411
+ "type": [
1412
+ "string",
1413
+ "null"
1414
+ ]
1415
+ }
1416
+ },
1417
+ "required": [
1418
+ "path",
1419
+ "from",
1420
+ "to"
1421
+ ]
1422
+ }
1423
+ }
1424
+ },
1425
+ "required": [
1426
+ "added",
1427
+ "removed",
1428
+ "changed"
1429
+ ]
1430
+ }
1431
+ },
1432
+ {
1433
+ "name": "axiom_axm_parse",
1434
+ "description": "Parse .axm v2 text into a Plan with 1-based {line, column} diagnostics; `plan` is present only when error-free. Read-only.",
1435
+ "riskClass": "READ",
1436
+ "annotations": {
1437
+ "readOnlyHint": true,
1438
+ "destructiveHint": false,
1439
+ "idempotentHint": true,
1440
+ "openWorldHint": false
1441
+ },
1442
+ "inputSchema": {
1443
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1444
+ "type": "object",
1445
+ "properties": {
1446
+ "source": {
1447
+ "type": "string",
1448
+ "description": ".axm source text"
1449
+ }
1450
+ },
1451
+ "required": [
1452
+ "source"
1453
+ ]
1454
+ },
1455
+ "outputSchema": {
1456
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1457
+ "type": "object",
1458
+ "properties": {
1459
+ "plan": {
1460
+ "type": "object",
1461
+ "properties": {
1462
+ "apiVersion": {
1463
+ "type": "string",
1464
+ "const": "axiom.dev/v2"
1465
+ },
1466
+ "kind": {
1467
+ "type": "string",
1468
+ "const": "Plan"
1469
+ },
1470
+ "name": {
1471
+ "type": "string",
1472
+ "pattern": "^[a-z0-9][a-z0-9-]{0,63}$"
1473
+ },
1474
+ "intent": {
1475
+ "type": "string",
1476
+ "maxLength": 2000
1477
+ },
1478
+ "profile": {
1479
+ "default": "default",
1480
+ "type": "string",
1481
+ "minLength": 1
1482
+ },
1483
+ "capabilities": {
1484
+ "default": [],
1485
+ "type": "array",
1486
+ "items": {
1487
+ "type": "string",
1488
+ "enum": [
1489
+ "fs",
1490
+ "net",
1491
+ "secret",
1492
+ "ai",
1493
+ "compute",
1494
+ "git"
1495
+ ]
1496
+ }
1497
+ },
1498
+ "artifacts": {
1499
+ "minItems": 1,
1500
+ "maxItems": 2000,
1501
+ "type": "array",
1502
+ "items": {
1503
+ "type": "object",
1504
+ "properties": {
1505
+ "path": {
1506
+ "type": "string",
1507
+ "minLength": 1,
1508
+ "maxLength": 1024,
1509
+ "description": "Relative POSIX path, NFC, no reserved names"
1510
+ },
1511
+ "mode": {
1512
+ "default": "0644",
1513
+ "type": "string",
1514
+ "enum": [
1515
+ "0644",
1516
+ "0755"
1517
+ ]
1518
+ },
1519
+ "op": {
1520
+ "default": "create",
1521
+ "type": "string",
1522
+ "enum": [
1523
+ "create",
1524
+ "overwrite",
1525
+ "delete"
1526
+ ]
1527
+ },
1528
+ "source": {
1529
+ "oneOf": [
1530
+ {
1531
+ "type": "object",
1532
+ "properties": {
1533
+ "type": {
1534
+ "type": "string",
1535
+ "const": "inline"
1536
+ },
1537
+ "content": {
1538
+ "type": "string",
1539
+ "maxLength": 262144
1540
+ },
1541
+ "encoding": {
1542
+ "default": "utf8",
1543
+ "type": "string",
1544
+ "enum": [
1545
+ "utf8",
1546
+ "base64"
1547
+ ]
1548
+ }
1549
+ },
1550
+ "required": [
1551
+ "type",
1552
+ "content"
1553
+ ],
1554
+ "additionalProperties": false
1555
+ },
1556
+ {
1557
+ "type": "object",
1558
+ "properties": {
1559
+ "type": {
1560
+ "type": "string",
1561
+ "const": "cas"
1562
+ },
1563
+ "digest": {
1564
+ "type": "string",
1565
+ "pattern": "^sha256:[a-f0-9]{64}$",
1566
+ "description": "sha256:<64 lowercase hex>"
1567
+ }
1568
+ },
1569
+ "required": [
1570
+ "type",
1571
+ "digest"
1572
+ ],
1573
+ "additionalProperties": false
1574
+ },
1575
+ {
1576
+ "type": "object",
1577
+ "properties": {
1578
+ "type": {
1579
+ "type": "string",
1580
+ "const": "ref"
1581
+ },
1582
+ "uri": {
1583
+ "type": "string",
1584
+ "format": "uri"
1585
+ },
1586
+ "digest": {
1587
+ "type": "string",
1588
+ "pattern": "^sha256:[a-f0-9]{64}$",
1589
+ "description": "sha256:<64 lowercase hex>"
1590
+ }
1591
+ },
1592
+ "required": [
1593
+ "type",
1594
+ "uri",
1595
+ "digest"
1596
+ ],
1597
+ "additionalProperties": false
1598
+ },
1599
+ {
1600
+ "type": "object",
1601
+ "properties": {
1602
+ "type": {
1603
+ "type": "string",
1604
+ "const": "template"
1605
+ },
1606
+ "emitter": {
1607
+ "type": "string",
1608
+ "minLength": 1
1609
+ },
1610
+ "template": {
1611
+ "type": "string",
1612
+ "minLength": 1
1613
+ },
1614
+ "params": {
1615
+ "default": {},
1616
+ "type": "object",
1617
+ "propertyNames": {
1618
+ "type": "string"
1619
+ },
1620
+ "additionalProperties": {
1621
+ "$ref": "#/$defs/__schema0"
1622
+ }
1623
+ }
1624
+ },
1625
+ "required": [
1626
+ "type",
1627
+ "emitter",
1628
+ "template"
1629
+ ],
1630
+ "additionalProperties": false,
1631
+ "description": "v2.1"
1632
+ }
1633
+ ]
1634
+ }
1635
+ },
1636
+ "required": [
1637
+ "path"
1638
+ ],
1639
+ "additionalProperties": false
1640
+ }
1641
+ },
1642
+ "checks": {
1643
+ "default": [],
1644
+ "type": "array",
1645
+ "items": {
1646
+ "type": "object",
1647
+ "properties": {
1648
+ "id": {
1649
+ "type": "string",
1650
+ "minLength": 1,
1651
+ "maxLength": 128
1652
+ },
1653
+ "predicate": {
1654
+ "type": "string",
1655
+ "pattern": "^[a-z][a-zA-Z0-9]*\\.[a-zA-Z][a-zA-Z0-9]*$"
1656
+ },
1657
+ "params": {
1658
+ "$ref": "#/$defs/__schema1"
1659
+ },
1660
+ "severity": {
1661
+ "default": "error",
1662
+ "type": "string",
1663
+ "enum": [
1664
+ "error",
1665
+ "warn",
1666
+ "info"
1667
+ ]
1668
+ }
1669
+ },
1670
+ "required": [
1671
+ "id",
1672
+ "predicate",
1673
+ "params"
1674
+ ],
1675
+ "additionalProperties": false
1676
+ }
1677
+ },
1678
+ "metadata": {
1679
+ "default": {},
1680
+ "type": "object",
1681
+ "propertyNames": {
1682
+ "type": "string"
1683
+ },
1684
+ "additionalProperties": {
1685
+ "$ref": "#/$defs/__schema2"
1686
+ }
1687
+ }
1688
+ },
1689
+ "required": [
1690
+ "apiVersion",
1691
+ "kind",
1692
+ "name",
1693
+ "intent",
1694
+ "artifacts"
1695
+ ],
1696
+ "additionalProperties": false
1697
+ },
1698
+ "diagnostics": {
1699
+ "type": "array",
1700
+ "items": {
1701
+ "type": "object",
1702
+ "properties": {
1703
+ "severity": {
1704
+ "type": "string",
1705
+ "enum": [
1706
+ "error",
1707
+ "warning"
1708
+ ]
1709
+ },
1710
+ "code": {
1711
+ "type": "string",
1712
+ "enum": [
1713
+ "ERR_PATH_NOT_RELATIVE_POSIX",
1714
+ "ERR_PATH_SEGMENT",
1715
+ "ERR_PATH_NOT_NFC",
1716
+ "ERR_PATH_RESERVED_NAME",
1717
+ "ERR_PATH_INVALID_CHAR",
1718
+ "ERR_PATH_CASE_COLLISION",
1719
+ "ERR_SYMLINK_IN_PATH",
1720
+ "ERR_CONTAINMENT",
1721
+ "ERR_TARGET_TYPE",
1722
+ "ERR_EXISTS",
1723
+ "ERR_NOT_FOUND",
1724
+ "ERR_BLOB_MISSING",
1725
+ "ERR_DIGEST_FORMAT",
1726
+ "ERR_DIGEST_MISMATCH",
1727
+ "ERR_SIZE_MISMATCH",
1728
+ "ERR_BLOB_TOO_LARGE",
1729
+ "ERR_BUNDLE_TOO_LARGE",
1730
+ "ERR_LOCKED",
1731
+ "ERR_ROOT_NOT_ALLOWED",
1732
+ "ERR_ROOT_REQUIRED",
1733
+ "ERR_ROOT_NOT_DIR",
1734
+ "ERR_CONFIRM_DIGEST_MISMATCH",
1735
+ "ERR_CHECKS_FAILED",
1736
+ "ERR_PREIMAGE_CHANGED",
1737
+ "ERR_JOURNAL_CORRUPT",
1738
+ "ERR_EBUSY",
1739
+ "ERR_INVALID_PLAN",
1740
+ "ERR_INVALID_MANIFEST",
1741
+ "ERR_INVALID_PROFILE",
1742
+ "ERR_PREDICATE_UNKNOWN",
1743
+ "ERR_PREDICATE_PARAMS",
1744
+ "ERR_PROVIDER_FAILED",
1745
+ "ERR_GUARD_TIMEOUT",
1746
+ "ERR_GUARD_OUTPUT",
1747
+ "ERR_GIT_NOT_FOUND",
1748
+ "ERR_GIT_NOT_REPO",
1749
+ "ERR_GIT_DIRTY",
1750
+ "ERR_GIT_BRANCH_EXISTS",
1751
+ "ERR_GIT_BRANCH_INVALID",
1752
+ "ERR_GIT_FAILED",
1753
+ "ERR_REF_OFFLINE",
1754
+ "ERR_NOT_CANONICAL",
1755
+ "ERR_UNSUPPORTED_OP",
1756
+ "ERR_INTERNAL"
1757
+ ]
1758
+ },
1759
+ "message": {
1760
+ "type": "string"
1761
+ },
1762
+ "range": {
1763
+ "type": "object",
1764
+ "properties": {
1765
+ "start": {
1766
+ "type": "object",
1767
+ "properties": {
1768
+ "line": {
1769
+ "type": "integer",
1770
+ "exclusiveMinimum": 0,
1771
+ "maximum": 9007199254740991
1772
+ },
1773
+ "column": {
1774
+ "type": "integer",
1775
+ "exclusiveMinimum": 0,
1776
+ "maximum": 9007199254740991
1777
+ }
1778
+ },
1779
+ "required": [
1780
+ "line",
1781
+ "column"
1782
+ ]
1783
+ },
1784
+ "end": {
1785
+ "type": "object",
1786
+ "properties": {
1787
+ "line": {
1788
+ "type": "integer",
1789
+ "exclusiveMinimum": 0,
1790
+ "maximum": 9007199254740991
1791
+ },
1792
+ "column": {
1793
+ "type": "integer",
1794
+ "exclusiveMinimum": 0,
1795
+ "maximum": 9007199254740991
1796
+ }
1797
+ },
1798
+ "required": [
1799
+ "line",
1800
+ "column"
1801
+ ]
1802
+ }
1803
+ },
1804
+ "required": [
1805
+ "start",
1806
+ "end"
1807
+ ]
1808
+ }
1809
+ },
1810
+ "required": [
1811
+ "severity",
1812
+ "code",
1813
+ "message",
1814
+ "range"
1815
+ ]
1816
+ }
1817
+ }
1818
+ },
1819
+ "required": [
1820
+ "diagnostics"
1821
+ ],
1822
+ "$defs": {
1823
+ "__schema0": {
1824
+ "anyOf": [
1825
+ {
1826
+ "type": "string"
1827
+ },
1828
+ {
1829
+ "type": "number"
1830
+ },
1831
+ {
1832
+ "type": "boolean"
1833
+ },
1834
+ {
1835
+ "type": "null"
1836
+ },
1837
+ {
1838
+ "type": "array",
1839
+ "items": {
1840
+ "$ref": "#/$defs/__schema0"
1841
+ }
1842
+ },
1843
+ {
1844
+ "type": "object",
1845
+ "propertyNames": {
1846
+ "type": "string"
1847
+ },
1848
+ "additionalProperties": {
1849
+ "$ref": "#/$defs/__schema0"
1850
+ }
1851
+ }
1852
+ ]
1853
+ },
1854
+ "__schema1": {
1855
+ "anyOf": [
1856
+ {
1857
+ "type": "string"
1858
+ },
1859
+ {
1860
+ "type": "number"
1861
+ },
1862
+ {
1863
+ "type": "boolean"
1864
+ },
1865
+ {
1866
+ "type": "null"
1867
+ },
1868
+ {
1869
+ "type": "array",
1870
+ "items": {
1871
+ "$ref": "#/$defs/__schema1"
1872
+ }
1873
+ },
1874
+ {
1875
+ "type": "object",
1876
+ "propertyNames": {
1877
+ "type": "string"
1878
+ },
1879
+ "additionalProperties": {
1880
+ "$ref": "#/$defs/__schema1"
1881
+ }
1882
+ }
1883
+ ]
1884
+ },
1885
+ "__schema2": {
1886
+ "anyOf": [
1887
+ {
1888
+ "type": "string"
1889
+ },
1890
+ {
1891
+ "type": "number"
1892
+ },
1893
+ {
1894
+ "type": "boolean"
1895
+ },
1896
+ {
1897
+ "type": "null"
1898
+ },
1899
+ {
1900
+ "type": "array",
1901
+ "items": {
1902
+ "$ref": "#/$defs/__schema2"
1903
+ }
1904
+ },
1905
+ {
1906
+ "type": "object",
1907
+ "propertyNames": {
1908
+ "type": "string"
1909
+ },
1910
+ "additionalProperties": {
1911
+ "$ref": "#/$defs/__schema2"
1912
+ }
1913
+ }
1914
+ ]
1915
+ }
1916
+ }
1917
+ }
1918
+ },
1919
+ {
1920
+ "name": "axiom_roots_list",
1921
+ "description": "The frozen set of roots this server may read and write, as given by --root at startup.",
1922
+ "riskClass": "READ",
1923
+ "annotations": {
1924
+ "readOnlyHint": true,
1925
+ "destructiveHint": false,
1926
+ "idempotentHint": true,
1927
+ "openWorldHint": false
1928
+ },
1929
+ "inputSchema": {
1930
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1931
+ "type": "object",
1932
+ "properties": {}
1933
+ },
1934
+ "outputSchema": {
1935
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1936
+ "type": "object",
1937
+ "properties": {
1938
+ "roots": {
1939
+ "type": "array",
1940
+ "items": {
1941
+ "type": "object",
1942
+ "properties": {
1943
+ "path": {
1944
+ "type": "string"
1945
+ },
1946
+ "writable": {
1947
+ "type": "boolean"
1948
+ },
1949
+ "hasGit": {
1950
+ "type": "boolean"
1951
+ }
1952
+ },
1953
+ "required": [
1954
+ "path",
1955
+ "writable",
1956
+ "hasGit"
1957
+ ]
1958
+ }
1959
+ }
1960
+ },
1961
+ "required": [
1962
+ "roots"
1963
+ ]
1964
+ }
1965
+ }
1966
+ ]