@pulsemcp/air-core 0.0.42 → 0.1.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 +2 -2
- package/dist/config.d.ts +39 -22
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +363 -72
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/scope.d.ts +97 -0
- package/dist/scope.d.ts.map +1 -0
- package/dist/scope.js +174 -0
- package/dist/scope.js.map +1 -0
- package/dist/strip-scopes.d.ts +38 -0
- package/dist/strip-scopes.d.ts.map +1 -0
- package/dist/strip-scopes.js +143 -0
- package/dist/strip-scopes.js.map +1 -0
- package/dist/types.d.ts +30 -4
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/schemas/air.schema.json +13 -8
- package/schemas/schemas/air.schema.json +13 -8
package/dist/types.d.ts
CHANGED
|
@@ -9,10 +9,17 @@ export interface AirConfig {
|
|
|
9
9
|
* `mcp.json`, `references.json`, `plugins.json`, `hooks.json`, or any filename
|
|
10
10
|
* containing those keywords as delimited tokens) or by `$schema`. `.gitignore`
|
|
11
11
|
* at the catalog root is honored; `node_modules`, `.git`, and common build
|
|
12
|
-
* output directories are skipped.
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
12
|
+
* output directories are skipped.
|
|
13
|
+
*
|
|
14
|
+
* Every artifact is canonically addressed as `@scope/id`. Catalog providers
|
|
15
|
+
* supply the scope (e.g. the GitHub provider returns `owner/repo`); local
|
|
16
|
+
* catalogs and per-type arrays use the literal scope `local`. Two catalogs
|
|
17
|
+
* may contribute the same shortname only when their scopes differ — AIR
|
|
18
|
+
* surfaces a warning, but composition still succeeds. Two catalogs that
|
|
19
|
+
* produce the same qualified ID (`@scope/id`) hard-fail at resolution time.
|
|
20
|
+
*
|
|
21
|
+
* To remove a specific qualified ID from the resolved set, list it in
|
|
22
|
+
* `exclude`. Override / patching is intentionally not supported.
|
|
16
23
|
*/
|
|
17
24
|
catalogs?: string[];
|
|
18
25
|
skills?: string[];
|
|
@@ -21,6 +28,13 @@ export interface AirConfig {
|
|
|
21
28
|
plugins?: string[];
|
|
22
29
|
roots?: string[];
|
|
23
30
|
hooks?: string[];
|
|
31
|
+
/**
|
|
32
|
+
* Qualified IDs (`@scope/id`) to drop from the resolved artifact set. This
|
|
33
|
+
* is the only composition control: there is no override, no field-level
|
|
34
|
+
* patching. An entry that does not match any resolved artifact is reported
|
|
35
|
+
* as a warning so typos surface immediately.
|
|
36
|
+
*/
|
|
37
|
+
exclude?: string[];
|
|
24
38
|
/**
|
|
25
39
|
* Protocol used by git-based catalog providers (e.g., github://) when
|
|
26
40
|
* cloning remote repositories. Defaults to "ssh". Set to "https" for
|
|
@@ -261,6 +275,18 @@ export interface CatalogProvider {
|
|
|
261
275
|
* a clear error — `catalogs[]` entries must be traversable.
|
|
262
276
|
*/
|
|
263
277
|
resolveCatalogDir?(uri: string): Promise<string>;
|
|
278
|
+
/**
|
|
279
|
+
* Return the scope assigned to artifacts contributed by this URI. AIR
|
|
280
|
+
* qualifies every artifact as `@scope/id`; providers that supply a
|
|
281
|
+
* meaningful, stable scope (e.g. GitHub's `owner/repo`) implement this
|
|
282
|
+
* method. Providers without `getScope` cause their artifacts to fall
|
|
283
|
+
* back to the literal scope `local` — equivalent to file-system catalogs.
|
|
284
|
+
*
|
|
285
|
+
* Implementations must return a non-empty string composed of
|
|
286
|
+
* alphanumerics, `-`, `_`, `.`, and `/`. Throwing is acceptable for
|
|
287
|
+
* malformed URIs; core surfaces the error at resolution time.
|
|
288
|
+
*/
|
|
289
|
+
getScope?(uri: string): string;
|
|
264
290
|
}
|
|
265
291
|
/**
|
|
266
292
|
* Warning returned by CatalogProvider.checkFreshness() when a cached
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC3C,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACrC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,OAAO,GAAG,KAAK,GAAG,iBAAiB,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,uFAAuF;IACvF,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAMD;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,0EAA0E;IAC1E,cAAc,CACZ,SAAS,EAAE,iBAAiB,EAC5B,IAAI,CAAC,EAAE,SAAS,EAChB,OAAO,CAAC,EAAE,MAAM,GACf,kBAAkB,CAAC;IACtB,iDAAiD;IACjD,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY,CAAC;IAE5D;;;;;OAKG;IACH,cAAc,CACZ,SAAS,EAAE,iBAAiB,EAC5B,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,eAAe,CAAC,CAAC;IAE5B;;;;;;;;OAQG;IACH,kBAAkB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACjE;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,+DAA+D;IAC/D,EAAE,EAAE,MAAM,CAAC;IACX,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC,iEAAiE;IACjE,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,wDAAwD;IACxD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,yCAAyC;IACzC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,wCAAwC;IACxC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,+DAA+D;IAC/D,YAAY,EAAE,YAAY,CAAC;IAC3B;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,SAAS,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACnD,2CAA2C;IAC3C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxE;;;;;OAKG;IACH,gBAAgB,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACnD;;;;OAIG;IACH,cAAc,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAClE;;;OAGG;IACH,YAAY,CAAC,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC/C;;;;;;;;;OASG;IACH,iBAAiB,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACjD;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,uEAAuE;IACvE,GAAG,EAAE,MAAM,CAAC;IACZ,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,OAAO,EAAE,OAAO,CAAC;IACjB,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;CAC7E;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrD,qFAAqF;IACrF,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAChD,oFAAoF;IACpF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,kCAAkC;IAClC,SAAS,EAAE,iBAAiB,CAAC;IAC7B,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,0DAA0D;IAC1D,cAAc,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC5B,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,gBAAgB,CACd,SAAS,EAAE,iBAAiB,EAC5B,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB;IACtC,+DAA+D;IAC/D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,8DAA8D;IAC9D,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,yEAAyE;IACzE,gBAAgB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACrD;AAED,MAAM,WAAW,WAAW;IAC1B,gBAAgB;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB;IACpB,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,6EAA6E;IAC7E,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,gFAAgF;IAChF,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,8DAA8D;IAC9D,cAAc,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACvC;AAMD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd"}
|
package/package.json
CHANGED
package/schemas/air.schema.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
3
|
"$id": "https://raw.githubusercontent.com/pulsemcp/air/main/schemas/air.schema.json",
|
|
4
4
|
"title": "AIR Configuration",
|
|
5
|
-
"description": "Root configuration file for the AIR framework. Points to artifact index files
|
|
5
|
+
"description": "Root configuration file for the AIR framework. Points to artifact catalogs and per-type index files. Every resolved artifact is canonically addressed as `@scope/id`: catalog providers supply scope (e.g. the GitHub provider returns `owner/repo`); local catalogs and per-type arrays use scope `local`. Composition is union-only — there is no override or field-level patching. Use the `exclude` array to drop specific qualified IDs from the resolved set.",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"properties": {
|
|
8
8
|
"$schema": {
|
|
@@ -29,37 +29,42 @@
|
|
|
29
29
|
"catalogs": {
|
|
30
30
|
"type": "array",
|
|
31
31
|
"items": { "type": "string" },
|
|
32
|
-
"description": "Paths or URIs to artifact catalogs.
|
|
32
|
+
"description": "Paths or URIs to artifact catalogs. AIR walks each catalog up to 3 directory levels deep and discovers artifact index files (skills, references, mcp, plugins, roots, hooks) by filename or `$schema`. Every artifact discovered in a catalog is qualified `@scope/id`, where scope is supplied by the catalog provider (e.g. `owner/repo` for github://) or `local` for filesystem catalogs. Composition is union-only — duplicate qualified IDs across catalogs are an error; same shortname under different scopes is allowed and reported as a warning."
|
|
33
|
+
},
|
|
34
|
+
"exclude": {
|
|
35
|
+
"type": "array",
|
|
36
|
+
"items": { "type": "string", "pattern": "^@[a-zA-Z0-9._\\-/]+/[^/]+$" },
|
|
37
|
+
"description": "Qualified IDs (`@scope/id`) to drop from the resolved artifact set. This is the only composition control AIR offers — there is no override or field-level patching. Entries that do not match a resolved artifact surface as warnings."
|
|
33
38
|
},
|
|
34
39
|
"skills": {
|
|
35
40
|
"type": "array",
|
|
36
41
|
"items": { "type": "string" },
|
|
37
|
-
"description": "Paths to
|
|
42
|
+
"description": "Paths to local skill index files. Entries are qualified under scope `local` and unioned with catalog-discovered artifacts."
|
|
38
43
|
},
|
|
39
44
|
"references": {
|
|
40
45
|
"type": "array",
|
|
41
46
|
"items": { "type": "string" },
|
|
42
|
-
"description": "Paths to
|
|
47
|
+
"description": "Paths to local reference index files. Entries are qualified under scope `local` and unioned with catalog-discovered artifacts."
|
|
43
48
|
},
|
|
44
49
|
"mcp": {
|
|
45
50
|
"type": "array",
|
|
46
51
|
"items": { "type": "string" },
|
|
47
|
-
"description": "Paths to MCP server
|
|
52
|
+
"description": "Paths to local MCP server index files. Entries are qualified under scope `local` and unioned with catalog-discovered artifacts."
|
|
48
53
|
},
|
|
49
54
|
"plugins": {
|
|
50
55
|
"type": "array",
|
|
51
56
|
"items": { "type": "string" },
|
|
52
|
-
"description": "Paths to
|
|
57
|
+
"description": "Paths to local plugin index files. Entries are qualified under scope `local` and unioned with catalog-discovered artifacts."
|
|
53
58
|
},
|
|
54
59
|
"roots": {
|
|
55
60
|
"type": "array",
|
|
56
61
|
"items": { "type": "string" },
|
|
57
|
-
"description": "Paths to
|
|
62
|
+
"description": "Paths to local root index files. Entries are qualified under scope `local` and unioned with catalog-discovered artifacts."
|
|
58
63
|
},
|
|
59
64
|
"hooks": {
|
|
60
65
|
"type": "array",
|
|
61
66
|
"items": { "type": "string" },
|
|
62
|
-
"description": "Paths to
|
|
67
|
+
"description": "Paths to local hook index files. Entries are qualified under scope `local` and unioned with catalog-discovered artifacts."
|
|
63
68
|
},
|
|
64
69
|
"gitProtocol": {
|
|
65
70
|
"type": "string",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
3
|
"$id": "https://raw.githubusercontent.com/pulsemcp/air/main/schemas/air.schema.json",
|
|
4
4
|
"title": "AIR Configuration",
|
|
5
|
-
"description": "Root configuration file for the AIR framework. Points to artifact index files
|
|
5
|
+
"description": "Root configuration file for the AIR framework. Points to artifact catalogs and per-type index files. Every resolved artifact is canonically addressed as `@scope/id`: catalog providers supply scope (e.g. the GitHub provider returns `owner/repo`); local catalogs and per-type arrays use scope `local`. Composition is union-only — there is no override or field-level patching. Use the `exclude` array to drop specific qualified IDs from the resolved set.",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"properties": {
|
|
8
8
|
"$schema": {
|
|
@@ -29,37 +29,42 @@
|
|
|
29
29
|
"catalogs": {
|
|
30
30
|
"type": "array",
|
|
31
31
|
"items": { "type": "string" },
|
|
32
|
-
"description": "Paths or URIs to artifact catalogs.
|
|
32
|
+
"description": "Paths or URIs to artifact catalogs. AIR walks each catalog up to 3 directory levels deep and discovers artifact index files (skills, references, mcp, plugins, roots, hooks) by filename or `$schema`. Every artifact discovered in a catalog is qualified `@scope/id`, where scope is supplied by the catalog provider (e.g. `owner/repo` for github://) or `local` for filesystem catalogs. Composition is union-only — duplicate qualified IDs across catalogs are an error; same shortname under different scopes is allowed and reported as a warning."
|
|
33
|
+
},
|
|
34
|
+
"exclude": {
|
|
35
|
+
"type": "array",
|
|
36
|
+
"items": { "type": "string", "pattern": "^@[a-zA-Z0-9._\\-/]+/[^/]+$" },
|
|
37
|
+
"description": "Qualified IDs (`@scope/id`) to drop from the resolved artifact set. This is the only composition control AIR offers — there is no override or field-level patching. Entries that do not match a resolved artifact surface as warnings."
|
|
33
38
|
},
|
|
34
39
|
"skills": {
|
|
35
40
|
"type": "array",
|
|
36
41
|
"items": { "type": "string" },
|
|
37
|
-
"description": "Paths to
|
|
42
|
+
"description": "Paths to local skill index files. Entries are qualified under scope `local` and unioned with catalog-discovered artifacts."
|
|
38
43
|
},
|
|
39
44
|
"references": {
|
|
40
45
|
"type": "array",
|
|
41
46
|
"items": { "type": "string" },
|
|
42
|
-
"description": "Paths to
|
|
47
|
+
"description": "Paths to local reference index files. Entries are qualified under scope `local` and unioned with catalog-discovered artifacts."
|
|
43
48
|
},
|
|
44
49
|
"mcp": {
|
|
45
50
|
"type": "array",
|
|
46
51
|
"items": { "type": "string" },
|
|
47
|
-
"description": "Paths to MCP server
|
|
52
|
+
"description": "Paths to local MCP server index files. Entries are qualified under scope `local` and unioned with catalog-discovered artifacts."
|
|
48
53
|
},
|
|
49
54
|
"plugins": {
|
|
50
55
|
"type": "array",
|
|
51
56
|
"items": { "type": "string" },
|
|
52
|
-
"description": "Paths to
|
|
57
|
+
"description": "Paths to local plugin index files. Entries are qualified under scope `local` and unioned with catalog-discovered artifacts."
|
|
53
58
|
},
|
|
54
59
|
"roots": {
|
|
55
60
|
"type": "array",
|
|
56
61
|
"items": { "type": "string" },
|
|
57
|
-
"description": "Paths to
|
|
62
|
+
"description": "Paths to local root index files. Entries are qualified under scope `local` and unioned with catalog-discovered artifacts."
|
|
58
63
|
},
|
|
59
64
|
"hooks": {
|
|
60
65
|
"type": "array",
|
|
61
66
|
"items": { "type": "string" },
|
|
62
|
-
"description": "Paths to
|
|
67
|
+
"description": "Paths to local hook index files. Entries are qualified under scope `local` and unioned with catalog-discovered artifacts."
|
|
63
68
|
},
|
|
64
69
|
"gitProtocol": {
|
|
65
70
|
"type": "string",
|