@pulsemcp/air-sdk 0.0.21 → 0.0.23
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/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/prepare.d.ts.map +1 -1
- package/dist/prepare.js +17 -7
- package/dist/prepare.js.map +1 -1
- package/dist/transform-runner.d.ts +6 -3
- package/dist/transform-runner.d.ts.map +1 -1
- package/dist/transform-runner.js +50 -6
- package/dist/transform-runner.js.map +1 -1
- package/dist/validate-config.d.ts +10 -4
- package/dist/validate-config.d.ts.map +1 -1
- package/dist/validate-config.js +31 -6
- package/dist/validate-config.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -23,5 +23,5 @@ export type { RunTransformsOptions } from "./transform-runner.js";
|
|
|
23
23
|
export { updateProviderCaches } from "./update.js";
|
|
24
24
|
export type { UpdateProviderCachesOptions, UpdateProviderCachesResult, } from "./update.js";
|
|
25
25
|
export { checkProviderFreshness } from "./cache-freshness.js";
|
|
26
|
-
export { findUnresolvedVars, validateNoUnresolvedVars, unresolvedVarsMessage, } from "./validate-config.js";
|
|
26
|
+
export { findUnresolvedVars, findUnresolvedHookVars, validateNoUnresolvedVars, unresolvedVarsMessage, } from "./validate-config.js";
|
|
27
27
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,aAAa,EACb,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,cAAc,EAEd,YAAY,EAEZ,aAAa,EACb,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EAEV,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,cAAc,EACd,cAAc,EACd,YAAY,EACZ,WAAW,EACX,SAAS,EACT,SAAS,EAET,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,EACZ,qBAAqB,IAAI,yBAAyB,EAClD,eAAe,EAEf,gBAAgB,EAChB,eAAe,EAEf,cAAc,EAEd,UAAU,GACX,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,KAAK,kBAAkB,GACxB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGlE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAE7E,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAErE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACjF,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAChE,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEzF,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE1E,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,YAAY,EACV,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,YAAY,EACV,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAGlE,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EACV,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,aAAa,EACb,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,cAAc,EAEd,YAAY,EAEZ,aAAa,EACb,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EAEV,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,cAAc,EACd,cAAc,EACd,YAAY,EACZ,WAAW,EACX,SAAS,EACT,SAAS,EAET,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,EACZ,qBAAqB,IAAI,yBAAyB,EAClD,eAAe,EAEf,gBAAgB,EAChB,eAAe,EAEf,cAAc,EAEd,UAAU,GACX,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,KAAK,kBAAkB,GACxB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGlE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAE7E,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAErE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACjF,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAChE,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEzF,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE1E,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,YAAY,EACV,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,YAAY,EACV,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAGlE,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EACV,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -28,5 +28,5 @@ export { updateProviderCaches } from "./update.js";
|
|
|
28
28
|
// Cache freshness checking
|
|
29
29
|
export { checkProviderFreshness } from "./cache-freshness.js";
|
|
30
30
|
// Config validation
|
|
31
|
-
export { findUnresolvedVars, validateNoUnresolvedVars, unresolvedVarsMessage, } from "./validate-config.js";
|
|
31
|
+
export { findUnresolvedVars, findUnresolvedHookVars, validateNoUnresolvedVars, unresolvedVarsMessage, } from "./validate-config.js";
|
|
32
32
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,OAAO;AACL,oBAAoB;AACpB,aAAa,EACb,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,cAAc;AACd,aAAa;AACb,YAAY;AACZ,UAAU;AACV,aAAa,EACb,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAsC5B,mBAAmB;AACnB,OAAO,EACL,WAAW,EACX,qBAAqB,GAEtB,MAAM,uBAAuB,CAAC;AAE/B,iBAAiB;AACjB,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAElE,wBAAwB;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGvC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AASjF,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAGhE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAM9C,sBAAsB;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAMjD,mBAAmB;AACnB,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,mBAAmB;AACnB,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,4BAA4B;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAMnD,2BAA2B;AAC3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,oBAAoB;AACpB,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,OAAO;AACL,oBAAoB;AACpB,aAAa,EACb,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,cAAc;AACd,aAAa;AACb,YAAY;AACZ,UAAU;AACV,aAAa,EACb,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAsC5B,mBAAmB;AACnB,OAAO,EACL,WAAW,EACX,qBAAqB,GAEtB,MAAM,uBAAuB,CAAC;AAE/B,iBAAiB;AACjB,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAElE,wBAAwB;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGvC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AASjF,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAGhE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAM9C,sBAAsB;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAMjD,mBAAmB;AACnB,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,mBAAmB;AACnB,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,4BAA4B;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAMnD,2BAA2B;AAC3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,oBAAoB;AACpB,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC"}
|
package/dist/prepare.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare.d.ts","sourceRoot":"","sources":["../src/prepare.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,eAAe,EAErB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAkB,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"prepare.d.ts","sourceRoot":"","sources":["../src/prepare.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,eAAe,EAErB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAkB,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAU9E,MAAM,WAAW,qBAAqB;IACpC,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAoB;IACnC,oDAAoD;IACpD,OAAO,EAAE,eAAe,CAAC;IACzB,mDAAmD;IACnD,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,2FAA2F;IAC3F,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,oBAAoB,CAAC,CAiI/B"}
|
package/dist/prepare.js
CHANGED
|
@@ -6,7 +6,7 @@ import { loadExtensions } from "./extension-loader.js";
|
|
|
6
6
|
import { runTransforms } from "./transform-runner.js";
|
|
7
7
|
import { checkProviderFreshness } from "./cache-freshness.js";
|
|
8
8
|
import { readFileSync } from "fs";
|
|
9
|
-
import { findUnresolvedVars, unresolvedVarsMessage, } from "./validate-config.js";
|
|
9
|
+
import { findUnresolvedVars, findUnresolvedHookVars, unresolvedVarsMessage, } from "./validate-config.js";
|
|
10
10
|
/**
|
|
11
11
|
* Prepare a target directory for an agent session.
|
|
12
12
|
*
|
|
@@ -79,7 +79,7 @@ export async function prepareSession(options) {
|
|
|
79
79
|
pluginOverrides: options.plugins,
|
|
80
80
|
skipSubagentMerge: options.skipSubagentMerge,
|
|
81
81
|
});
|
|
82
|
-
// Run transforms in extension-list order on the written .mcp.json
|
|
82
|
+
// Run transforms in extension-list order on the written .mcp.json and HOOK.json files
|
|
83
83
|
const mcpConfigPath = session.configFiles.find((f) => f.endsWith(".mcp.json"));
|
|
84
84
|
if (loaded.transforms.length > 0 && mcpConfigPath) {
|
|
85
85
|
await runTransforms({
|
|
@@ -89,14 +89,24 @@ export async function prepareSession(options) {
|
|
|
89
89
|
root,
|
|
90
90
|
artifacts,
|
|
91
91
|
extensionOptions: options.extensionOptions ?? {},
|
|
92
|
+
hookPaths: session.hookPaths,
|
|
92
93
|
});
|
|
93
94
|
}
|
|
94
95
|
// Final validation: ensure no unresolved ${VAR} patterns remain
|
|
95
|
-
if (!options.skipValidation
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
96
|
+
if (!options.skipValidation) {
|
|
97
|
+
const allUnresolved = [];
|
|
98
|
+
if (mcpConfigPath) {
|
|
99
|
+
const config = JSON.parse(readFileSync(mcpConfigPath, "utf-8"));
|
|
100
|
+
allUnresolved.push(...findUnresolvedVars(config));
|
|
101
|
+
}
|
|
102
|
+
if (session.hookPaths.length > 0) {
|
|
103
|
+
allUnresolved.push(...findUnresolvedHookVars(session.hookPaths));
|
|
104
|
+
}
|
|
105
|
+
// Deduplicate
|
|
106
|
+
const unique = [...new Set(allUnresolved)];
|
|
107
|
+
if (unique.length > 0) {
|
|
108
|
+
const targetDir = options.target ?? process.cwd();
|
|
109
|
+
throw new Error(unresolvedVarsMessage(targetDir, unique));
|
|
100
110
|
}
|
|
101
111
|
}
|
|
102
112
|
return {
|
package/dist/prepare.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare.js","sourceRoot":"","sources":["../src/prepare.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"prepare.js","sourceRoot":"","sources":["../src/prepare.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,12 +12,15 @@ export interface RunTransformsOptions {
|
|
|
12
12
|
artifacts: ResolvedArtifacts;
|
|
13
13
|
/** Parsed CLI option values contributed by extensions */
|
|
14
14
|
extensionOptions: Record<string, unknown>;
|
|
15
|
+
/** Paths to hook directories injected by the adapter (each contains a HOOK.json) */
|
|
16
|
+
hookPaths?: string[];
|
|
15
17
|
}
|
|
16
18
|
/**
|
|
17
|
-
* Run transforms sequentially on the written .mcp.json
|
|
19
|
+
* Run transforms sequentially on the written .mcp.json and HOOK.json files.
|
|
18
20
|
*
|
|
19
|
-
* Reads the current
|
|
20
|
-
*
|
|
21
|
+
* Reads the current .mcp.json, collects HOOK.json contents from hook
|
|
22
|
+
* directories, pipes the combined config through each transform in
|
|
23
|
+
* declaration order, then writes the results back.
|
|
21
24
|
* No-op if there are no transforms.
|
|
22
25
|
*/
|
|
23
26
|
export declare function runTransforms(opts: RunTransformsOptions): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-runner.d.ts","sourceRoot":"","sources":["../src/transform-runner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transform-runner.d.ts","sourceRoot":"","sources":["../src/transform-runner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAGV,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACV,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,oBAAoB;IACnC,+DAA+D;IAC/D,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,8CAA8C;IAC9C,aAAa,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,8BAA8B;IAC9B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,yDAAyD;IACzD,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyD7E"}
|
package/dist/transform-runner.js
CHANGED
|
@@ -1,28 +1,72 @@
|
|
|
1
|
-
import { readFileSync, writeFileSync } from "fs";
|
|
1
|
+
import { existsSync, readFileSync, writeFileSync } from "fs";
|
|
2
|
+
import { join, basename } from "path";
|
|
2
3
|
/**
|
|
3
|
-
* Run transforms sequentially on the written .mcp.json
|
|
4
|
+
* Run transforms sequentially on the written .mcp.json and HOOK.json files.
|
|
4
5
|
*
|
|
5
|
-
* Reads the current
|
|
6
|
-
*
|
|
6
|
+
* Reads the current .mcp.json, collects HOOK.json contents from hook
|
|
7
|
+
* directories, pipes the combined config through each transform in
|
|
8
|
+
* declaration order, then writes the results back.
|
|
7
9
|
* No-op if there are no transforms.
|
|
8
10
|
*/
|
|
9
11
|
export async function runTransforms(opts) {
|
|
10
|
-
const { transforms, mcpConfigPath, targetDir, root, artifacts, extensionOptions, } = opts;
|
|
12
|
+
const { transforms, mcpConfigPath, targetDir, root, artifacts, extensionOptions, hookPaths, } = opts;
|
|
11
13
|
if (transforms.length === 0)
|
|
12
14
|
return;
|
|
13
15
|
let config = JSON.parse(readFileSync(mcpConfigPath, "utf-8"));
|
|
16
|
+
// Collect HOOK.json contents into config.hooks keyed by hook ID
|
|
17
|
+
const hookFiles = collectHookFiles(hookPaths);
|
|
18
|
+
if (Object.keys(hookFiles).length > 0) {
|
|
19
|
+
config.hooks = {};
|
|
20
|
+
for (const [id, path] of Object.entries(hookFiles)) {
|
|
21
|
+
try {
|
|
22
|
+
config.hooks[id] = JSON.parse(readFileSync(path, "utf-8"));
|
|
23
|
+
}
|
|
24
|
+
catch (err) {
|
|
25
|
+
throw new Error(`Failed to parse ${path}: ${err instanceof Error ? err.message : String(err)}`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
14
29
|
const context = {
|
|
15
30
|
targetDir,
|
|
16
31
|
root,
|
|
17
32
|
artifacts,
|
|
18
33
|
options: extensionOptions,
|
|
19
34
|
mcpConfigPath,
|
|
35
|
+
hookPaths,
|
|
20
36
|
};
|
|
21
37
|
for (const ext of transforms) {
|
|
22
38
|
if (!ext.transform)
|
|
23
39
|
continue;
|
|
24
40
|
config = await ext.transform.transform(config, context);
|
|
25
41
|
}
|
|
26
|
-
|
|
42
|
+
// Write back .mcp.json (strip hooks — they live in separate files)
|
|
43
|
+
const { hooks: _hooks, ...mcpOnly } = config;
|
|
44
|
+
writeFileSync(mcpConfigPath, JSON.stringify(mcpOnly, null, 2) + "\n");
|
|
45
|
+
// Write back transformed HOOK.json files
|
|
46
|
+
if (config.hooks) {
|
|
47
|
+
for (const [id, hookConfig] of Object.entries(config.hooks)) {
|
|
48
|
+
const hookJsonPath = hookFiles[id];
|
|
49
|
+
if (hookJsonPath) {
|
|
50
|
+
writeFileSync(hookJsonPath, JSON.stringify(hookConfig, null, 2) + "\n");
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Build a map of hook ID → HOOK.json file path from hook directories.
|
|
57
|
+
* Only includes hooks whose HOOK.json actually exists.
|
|
58
|
+
*/
|
|
59
|
+
function collectHookFiles(hookPaths) {
|
|
60
|
+
const result = {};
|
|
61
|
+
if (!hookPaths)
|
|
62
|
+
return result;
|
|
63
|
+
for (const dir of hookPaths) {
|
|
64
|
+
const hookJsonPath = join(dir, "HOOK.json");
|
|
65
|
+
if (existsSync(hookJsonPath)) {
|
|
66
|
+
const id = basename(dir);
|
|
67
|
+
result[id] = hookJsonPath;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return result;
|
|
27
71
|
}
|
|
28
72
|
//# sourceMappingURL=transform-runner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-runner.js","sourceRoot":"","sources":["../src/transform-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"transform-runner.js","sourceRoot":"","sources":["../src/transform-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
import type { McpConfig } from "@pulsemcp/air-core";
|
|
2
2
|
/**
|
|
3
|
-
* Find all unresolved ${VAR} patterns in
|
|
4
|
-
* Recursively walks all string values in
|
|
3
|
+
* Find all unresolved ${VAR} patterns in a transform config.
|
|
4
|
+
* Recursively walks all string values in MCP servers and hooks.
|
|
5
5
|
*/
|
|
6
6
|
export declare function findUnresolvedVars(config: McpConfig): string[];
|
|
7
|
+
/**
|
|
8
|
+
* Find unresolved ${VAR} patterns in HOOK.json files at the given paths.
|
|
9
|
+
* Reads each HOOK.json, walks all string values, and returns unique var names.
|
|
10
|
+
*/
|
|
11
|
+
export declare function findUnresolvedHookVars(hookPaths: string[]): string[];
|
|
7
12
|
/**
|
|
8
13
|
* Validate that no unresolved ${VAR} patterns remain in the .mcp.json file.
|
|
9
|
-
* This
|
|
14
|
+
* This only checks the MCP config file; use findUnresolvedHookVars() to
|
|
15
|
+
* also check HOOK.json files, or rely on prepareSession() which checks both.
|
|
10
16
|
*
|
|
11
17
|
* @throws Error listing all unresolved variables if any are found.
|
|
12
18
|
*/
|
|
13
19
|
export declare function validateNoUnresolvedVars(mcpConfigPath: string): void;
|
|
14
|
-
export declare function unresolvedVarsMessage(
|
|
20
|
+
export declare function unresolvedVarsMessage(configPath: string, unresolved: string[]): string;
|
|
15
21
|
//# sourceMappingURL=validate-config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-config.d.ts","sourceRoot":"","sources":["../src/validate-config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validate-config.d.ts","sourceRoot":"","sources":["../src/validate-config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAIpD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,EAAE,CAS9D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAapE;AAwBD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAQpE;AAED,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAAE,GACnB,MAAM,CAKR"}
|
package/dist/validate-config.js
CHANGED
|
@@ -1,14 +1,38 @@
|
|
|
1
|
-
import { readFileSync } from "fs";
|
|
1
|
+
import { existsSync, readFileSync } from "fs";
|
|
2
|
+
import { join } from "path";
|
|
2
3
|
const ENV_VAR_PATTERN = /\$\{([^}]+)\}/g;
|
|
3
4
|
/**
|
|
4
|
-
* Find all unresolved ${VAR} patterns in
|
|
5
|
-
* Recursively walks all string values in
|
|
5
|
+
* Find all unresolved ${VAR} patterns in a transform config.
|
|
6
|
+
* Recursively walks all string values in MCP servers and hooks.
|
|
6
7
|
*/
|
|
7
8
|
export function findUnresolvedVars(config) {
|
|
8
9
|
const vars = new Set();
|
|
9
10
|
if (config.mcpServers) {
|
|
10
11
|
walkValue(config.mcpServers, vars);
|
|
11
12
|
}
|
|
13
|
+
if (config.hooks) {
|
|
14
|
+
walkValue(config.hooks, vars);
|
|
15
|
+
}
|
|
16
|
+
return [...vars];
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Find unresolved ${VAR} patterns in HOOK.json files at the given paths.
|
|
20
|
+
* Reads each HOOK.json, walks all string values, and returns unique var names.
|
|
21
|
+
*/
|
|
22
|
+
export function findUnresolvedHookVars(hookPaths) {
|
|
23
|
+
const vars = new Set();
|
|
24
|
+
for (const dir of hookPaths) {
|
|
25
|
+
const hookJsonPath = join(dir, "HOOK.json");
|
|
26
|
+
if (!existsSync(hookJsonPath))
|
|
27
|
+
continue;
|
|
28
|
+
try {
|
|
29
|
+
const hookConfig = JSON.parse(readFileSync(hookJsonPath, "utf-8"));
|
|
30
|
+
walkValue(hookConfig, vars);
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
// Skip unparseable HOOK.json files
|
|
34
|
+
}
|
|
35
|
+
}
|
|
12
36
|
return [...vars];
|
|
13
37
|
}
|
|
14
38
|
function walkValue(value, vars) {
|
|
@@ -34,7 +58,8 @@ function walkValue(value, vars) {
|
|
|
34
58
|
}
|
|
35
59
|
/**
|
|
36
60
|
* Validate that no unresolved ${VAR} patterns remain in the .mcp.json file.
|
|
37
|
-
* This
|
|
61
|
+
* This only checks the MCP config file; use findUnresolvedHookVars() to
|
|
62
|
+
* also check HOOK.json files, or rely on prepareSession() which checks both.
|
|
38
63
|
*
|
|
39
64
|
* @throws Error listing all unresolved variables if any are found.
|
|
40
65
|
*/
|
|
@@ -45,8 +70,8 @@ export function validateNoUnresolvedVars(mcpConfigPath) {
|
|
|
45
70
|
throw new Error(unresolvedVarsMessage(mcpConfigPath, unresolved));
|
|
46
71
|
}
|
|
47
72
|
}
|
|
48
|
-
export function unresolvedVarsMessage(
|
|
49
|
-
return (`Unresolved variable${unresolved.length === 1 ? "" : "s"} in ${
|
|
73
|
+
export function unresolvedVarsMessage(configPath, unresolved) {
|
|
74
|
+
return (`Unresolved variable${unresolved.length === 1 ? "" : "s"} in ${configPath}: ${unresolved.map((v) => `\${${v}}`).join(", ")}. ` +
|
|
50
75
|
`Ensure all variables are provided via environment or a secrets transform.`);
|
|
51
76
|
}
|
|
52
77
|
//# sourceMappingURL=validate-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-config.js","sourceRoot":"","sources":["../src/validate-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"validate-config.js","sourceRoot":"","sources":["../src/validate-config.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pulsemcp/air-sdk",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.23",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"lint": "tsc --noEmit"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@pulsemcp/air-core": "0.0.
|
|
32
|
+
"@pulsemcp/air-core": "0.0.23"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@types/node": "^22.10.0",
|