@codai/axiom-mcp 2.1.0 → 2.2.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.
- package/README.md +56 -24
- package/dist/{axm-lazy-CR-FmFVd.js → axm-lazy-LAnrfjUO.js} +32 -3
- package/dist/axm-lazy-Xin1nh7Q.js +6284 -0
- package/dist/axm-lazy.js +119 -9
- package/dist/cli-main.js +1650 -14959
- package/dist/dist-Bt9Wvd_P.js +6379 -0
- package/dist/{dist-FFqnyzCe.js → dist-D4M2Lyji.js} +264 -27
- package/dist/gate-lazy.js +581 -46
- package/dist/gc-lazy.js +6885 -0
- package/dist/http-lazy.js +18262 -9889
- package/dist/index.d.ts +140 -4
- package/dist/index.js +575 -41
- package/dist/mcp-lazy.js +23050 -0
- package/dist/migrate-lazy.js +48 -7
- package/dist/verify-tree-lazy.js +6893 -0
- package/package.json +14 -9
- package/spec/codai-tools.json +283 -0
- package/spec/tools.json +1487 -160
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codai/axiom-mcp",
|
|
3
3
|
"mcpName": "io.github.dragoscv/axiom",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.2.0",
|
|
5
5
|
"description": "AXIOM v2 MCP server (stdio) and CLI: validate, compile, check and transactionally apply content-addressed manifest bundles inside an allowlisted set of roots",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"author": "Dragos Catalin Vladulescu",
|
|
@@ -45,17 +45,22 @@
|
|
|
45
45
|
"README.md"
|
|
46
46
|
],
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@codai/axiom-apply": "2.
|
|
49
|
-
"@codai/axiom-axm": "2.
|
|
50
|
-
"@codai/axiom-canon": "2.
|
|
51
|
-
"@codai/axiom-checks": "2.
|
|
52
|
-
"@codai/axiom-emitters-web": "2.
|
|
53
|
-
"@codai/axiom-plan": "2.
|
|
54
|
-
"@codai/axiom-schema": "2.
|
|
55
|
-
"@modelcontextprotocol/
|
|
48
|
+
"@codai/axiom-apply": "2.2.0",
|
|
49
|
+
"@codai/axiom-axm": "2.2.0",
|
|
50
|
+
"@codai/axiom-canon": "2.2.0",
|
|
51
|
+
"@codai/axiom-checks": "2.2.0",
|
|
52
|
+
"@codai/axiom-emitters-web": "2.2.0",
|
|
53
|
+
"@codai/axiom-plan": "2.2.0",
|
|
54
|
+
"@codai/axiom-schema": "2.2.0",
|
|
55
|
+
"@modelcontextprotocol/server": "2.0.0",
|
|
56
56
|
"zod": "4.6.5"
|
|
57
57
|
},
|
|
58
|
+
"optionalDependencies": {
|
|
59
|
+
"@cedar-policy/cedar-wasm": "4.13.0"
|
|
60
|
+
},
|
|
58
61
|
"devDependencies": {
|
|
62
|
+
"@modelcontextprotocol/client": "2.0.0",
|
|
63
|
+
"fast-check": "4.10.1",
|
|
59
64
|
"tsdown": "0.23.0",
|
|
60
65
|
"tsx": "4.23.13",
|
|
61
66
|
"typescript": "7.0.2",
|
package/spec/codai-tools.json
CHANGED
|
@@ -110,6 +110,289 @@
|
|
|
110
110
|
]
|
|
111
111
|
}
|
|
112
112
|
},
|
|
113
|
+
{
|
|
114
|
+
"name": "axiom_check_start",
|
|
115
|
+
"risk": "READ",
|
|
116
|
+
"description": "Same evaluation as axiom_check, but returned immediately as a task so long `guard.external` suites (up to 15 min per guard) outlive the client's per-call timeout. Poll axiom_task_get with the returned taskId every pollIntervalMs until status is completed|failed|cancelled; the CheckReport is in `result`. Finished tasks are pollable for ttlMs, then forgotten. Tasks live in this server process only (D-24 — tool-level tasks, not the io.modelcontextprotocol/tasks wire extension).",
|
|
117
|
+
"parameters": {
|
|
118
|
+
"type": "object",
|
|
119
|
+
"properties": {
|
|
120
|
+
"bundle": {
|
|
121
|
+
"type": "object",
|
|
122
|
+
"propertyNames": {
|
|
123
|
+
"type": "string"
|
|
124
|
+
},
|
|
125
|
+
"additionalProperties": {},
|
|
126
|
+
"description": "ManifestBundle"
|
|
127
|
+
},
|
|
128
|
+
"profile": {
|
|
129
|
+
"description": "Profile name (builtin default|strict|permissive, or <root>/.axiom/profiles/<name>.json)",
|
|
130
|
+
"type": "string"
|
|
131
|
+
},
|
|
132
|
+
"root": {
|
|
133
|
+
"description": "Absolute repository root; must equal or lie inside an allowlisted --root",
|
|
134
|
+
"type": "string"
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
"required": [
|
|
138
|
+
"bundle"
|
|
139
|
+
]
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"name": "axiom_task_get",
|
|
144
|
+
"risk": "READ",
|
|
145
|
+
"description": "Status of a task created by axiom_check_start. While `working` only the descriptor is returned; once terminal, `result` (completed) or `error` (failed|cancelled) is attached. Unknown or expired taskId → ERR_TASK_NOT_FOUND.",
|
|
146
|
+
"parameters": {
|
|
147
|
+
"type": "object",
|
|
148
|
+
"properties": {
|
|
149
|
+
"taskId": {
|
|
150
|
+
"type": "string",
|
|
151
|
+
"minLength": 1,
|
|
152
|
+
"description": "taskId returned by axiom_check_start"
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
"required": [
|
|
156
|
+
"taskId"
|
|
157
|
+
]
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"name": "axiom_task_cancel",
|
|
162
|
+
"risk": "ACT",
|
|
163
|
+
"description": "Abort a `working` task: every running guard process tree is killed and the task ends `cancelled` with error ERR_TASK_CANCELLED. Idempotent — a terminal task is returned unchanged.",
|
|
164
|
+
"parameters": {
|
|
165
|
+
"type": "object",
|
|
166
|
+
"properties": {
|
|
167
|
+
"taskId": {
|
|
168
|
+
"type": "string",
|
|
169
|
+
"minLength": 1,
|
|
170
|
+
"description": "taskId returned by axiom_check_start"
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
"required": [
|
|
174
|
+
"taskId"
|
|
175
|
+
]
|
|
176
|
+
}
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
"name": "axiom_plan_begin",
|
|
180
|
+
"risk": "ACT",
|
|
181
|
+
"description": "Start assembling a Plan whose JSON would exceed the 4 MiB per-call cap: send the header here (everything except `artifacts`), append artifacts in chunks with axiom_plan_add, then axiom_plan_seal compiles the whole. The sealed bundle's manifestDigest is identical to a one-shot axiom_plan_compile of the same Plan. Sessions are in-memory, expire after 30 min idle, and hold at most 2000 artifacts / 64 MiB.",
|
|
182
|
+
"parameters": {
|
|
183
|
+
"type": "object",
|
|
184
|
+
"properties": {
|
|
185
|
+
"name": {
|
|
186
|
+
"type": "string",
|
|
187
|
+
"pattern": "^[a-z0-9][a-z0-9-]{0,63}$"
|
|
188
|
+
},
|
|
189
|
+
"intent": {
|
|
190
|
+
"type": "string",
|
|
191
|
+
"maxLength": 2000
|
|
192
|
+
},
|
|
193
|
+
"profile": {
|
|
194
|
+
"default": "default",
|
|
195
|
+
"type": "string",
|
|
196
|
+
"minLength": 1
|
|
197
|
+
},
|
|
198
|
+
"capabilities": {
|
|
199
|
+
"default": [],
|
|
200
|
+
"type": "array",
|
|
201
|
+
"items": {
|
|
202
|
+
"type": "string",
|
|
203
|
+
"enum": [
|
|
204
|
+
"fs",
|
|
205
|
+
"net",
|
|
206
|
+
"secret",
|
|
207
|
+
"ai",
|
|
208
|
+
"compute",
|
|
209
|
+
"git"
|
|
210
|
+
]
|
|
211
|
+
}
|
|
212
|
+
},
|
|
213
|
+
"checks": {
|
|
214
|
+
"default": [],
|
|
215
|
+
"type": "array",
|
|
216
|
+
"items": {
|
|
217
|
+
"type": "object",
|
|
218
|
+
"properties": {
|
|
219
|
+
"id": {
|
|
220
|
+
"type": "string",
|
|
221
|
+
"minLength": 1,
|
|
222
|
+
"maxLength": 128
|
|
223
|
+
},
|
|
224
|
+
"predicate": {
|
|
225
|
+
"type": "string",
|
|
226
|
+
"pattern": "^[a-z][a-zA-Z0-9]*\\.[a-zA-Z][a-zA-Z0-9]*$"
|
|
227
|
+
},
|
|
228
|
+
"params": {
|
|
229
|
+
"$ref": "#/$defs/__schema0"
|
|
230
|
+
},
|
|
231
|
+
"severity": {
|
|
232
|
+
"default": "error",
|
|
233
|
+
"type": "string",
|
|
234
|
+
"enum": [
|
|
235
|
+
"error",
|
|
236
|
+
"warn",
|
|
237
|
+
"info"
|
|
238
|
+
]
|
|
239
|
+
}
|
|
240
|
+
},
|
|
241
|
+
"required": [
|
|
242
|
+
"id",
|
|
243
|
+
"predicate",
|
|
244
|
+
"params"
|
|
245
|
+
],
|
|
246
|
+
"additionalProperties": false
|
|
247
|
+
}
|
|
248
|
+
},
|
|
249
|
+
"counter": {
|
|
250
|
+
"type": "integer",
|
|
251
|
+
"minimum": 0,
|
|
252
|
+
"maximum": 9007199254740991
|
|
253
|
+
},
|
|
254
|
+
"metadata": {
|
|
255
|
+
"default": {},
|
|
256
|
+
"type": "object",
|
|
257
|
+
"propertyNames": {
|
|
258
|
+
"type": "string"
|
|
259
|
+
},
|
|
260
|
+
"additionalProperties": {
|
|
261
|
+
"$ref": "#/$defs/__schema1"
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
},
|
|
265
|
+
"required": [
|
|
266
|
+
"name",
|
|
267
|
+
"intent"
|
|
268
|
+
],
|
|
269
|
+
"$defs": {
|
|
270
|
+
"__schema0": {
|
|
271
|
+
"anyOf": [
|
|
272
|
+
{
|
|
273
|
+
"type": "string"
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
"type": "number"
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
"type": "boolean"
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
"type": "null"
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
"type": "array",
|
|
286
|
+
"items": {
|
|
287
|
+
"$ref": "#/$defs/__schema0"
|
|
288
|
+
}
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
"type": "object",
|
|
292
|
+
"propertyNames": {
|
|
293
|
+
"type": "string"
|
|
294
|
+
},
|
|
295
|
+
"additionalProperties": {
|
|
296
|
+
"$ref": "#/$defs/__schema0"
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
]
|
|
300
|
+
},
|
|
301
|
+
"__schema1": {
|
|
302
|
+
"anyOf": [
|
|
303
|
+
{
|
|
304
|
+
"type": "string"
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
"type": "number"
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
"type": "boolean"
|
|
311
|
+
},
|
|
312
|
+
{
|
|
313
|
+
"type": "null"
|
|
314
|
+
},
|
|
315
|
+
{
|
|
316
|
+
"type": "array",
|
|
317
|
+
"items": {
|
|
318
|
+
"$ref": "#/$defs/__schema1"
|
|
319
|
+
}
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
"type": "object",
|
|
323
|
+
"propertyNames": {
|
|
324
|
+
"type": "string"
|
|
325
|
+
},
|
|
326
|
+
"additionalProperties": {
|
|
327
|
+
"$ref": "#/$defs/__schema1"
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
]
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
"name": "axiom_plan_add",
|
|
337
|
+
"risk": "ACT",
|
|
338
|
+
"description": "Add a chunk of Plan artifacts (each ≤ 4 MiB call, inline content ≤ 256 KiB per artifact as in a Plan) to an open session. Paths must be unique across every chunk (ERR_INVALID_PLAN otherwise); a sealed or over-budget session is ERR_PLAN_SESSION_STATE.",
|
|
339
|
+
"parameters": {
|
|
340
|
+
"type": "object",
|
|
341
|
+
"properties": {
|
|
342
|
+
"sessionId": {
|
|
343
|
+
"type": "string",
|
|
344
|
+
"minLength": 1,
|
|
345
|
+
"description": "sessionId returned by axiom_plan_begin"
|
|
346
|
+
},
|
|
347
|
+
"artifacts": {
|
|
348
|
+
"minItems": 1,
|
|
349
|
+
"type": "array",
|
|
350
|
+
"items": {
|
|
351
|
+
"type": "object",
|
|
352
|
+
"propertyNames": {
|
|
353
|
+
"type": "string"
|
|
354
|
+
},
|
|
355
|
+
"additionalProperties": {}
|
|
356
|
+
},
|
|
357
|
+
"description": "Plan artifacts, same shape as Plan.artifacts[]"
|
|
358
|
+
}
|
|
359
|
+
},
|
|
360
|
+
"required": [
|
|
361
|
+
"sessionId",
|
|
362
|
+
"artifacts"
|
|
363
|
+
]
|
|
364
|
+
}
|
|
365
|
+
},
|
|
366
|
+
{
|
|
367
|
+
"name": "axiom_plan_seal",
|
|
368
|
+
"risk": "ACT",
|
|
369
|
+
"description": "Assemble the session's header + every added artifact into one Plan and compile it exactly like axiom_plan_compile (same options, same digest). The session is consumed whether or not compilation succeeds. Bundles whose inline blobs exceed 4 MiB need `store: cas` (and therefore a root).",
|
|
370
|
+
"parameters": {
|
|
371
|
+
"type": "object",
|
|
372
|
+
"properties": {
|
|
373
|
+
"sessionId": {
|
|
374
|
+
"type": "string",
|
|
375
|
+
"minLength": 1,
|
|
376
|
+
"description": "sessionId returned by axiom_plan_begin"
|
|
377
|
+
},
|
|
378
|
+
"store": {
|
|
379
|
+
"description": "Blob transport; default inline",
|
|
380
|
+
"type": "string",
|
|
381
|
+
"enum": [
|
|
382
|
+
"inline",
|
|
383
|
+
"cas"
|
|
384
|
+
]
|
|
385
|
+
},
|
|
386
|
+
"root": {
|
|
387
|
+
"description": "Absolute repository root; must equal or lie inside an allowlisted --root",
|
|
388
|
+
"type": "string"
|
|
389
|
+
}
|
|
390
|
+
},
|
|
391
|
+
"required": [
|
|
392
|
+
"sessionId"
|
|
393
|
+
]
|
|
394
|
+
}
|
|
395
|
+
},
|
|
113
396
|
{
|
|
114
397
|
"name": "axiom_apply_dry_run",
|
|
115
398
|
"risk": "READ",
|