@pulsemcp/air-sdk 0.0.12 → 0.0.13
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/extension-loader.d.ts.map +1 -1
- package/dist/extension-loader.js +26 -2
- package/dist/extension-loader.js.map +1 -1
- package/dist/init-from-repo.d.ts +8 -0
- package/dist/init-from-repo.d.ts.map +1 -1
- package/dist/init-from-repo.js +65 -2
- package/dist/init-from-repo.js.map +1 -1
- package/dist/prepare.d.ts +3 -3
- package/dist/prepare.d.ts.map +1 -1
- package/dist/prepare.js +12 -12
- package/dist/prepare.js.map +1 -1
- package/dist/start.d.ts.map +1 -1
- package/dist/start.js +16 -4
- package/dist/start.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension-loader.d.ts","sourceRoot":"","sources":["../src/extension-loader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"extension-loader.d.ts","sourceRoot":"","sources":["../src/extension-loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,oBAAoB,CAAC;AAEzE,MAAM,WAAW,gBAAgB;IAC/B,yCAAyC;IACzC,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,yCAAyC;IACzC,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,iEAAiE;IACjE,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,iDAAiD;IACjD,GAAG,EAAE,YAAY,EAAE,CAAC;CACrB;AAED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAAE,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,CAAC,CAiB3B"}
|
package/dist/extension-loader.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createRequire } from "module";
|
|
2
|
+
import { join, resolve } from "path";
|
|
2
3
|
import { pathToFileURL } from "url";
|
|
3
4
|
/**
|
|
4
5
|
* Load extensions from the `extensions` array in air.json.
|
|
@@ -40,7 +41,30 @@ async function loadSingleExtension(specifier, airJsonDir) {
|
|
|
40
41
|
mod = await import(fileUrl);
|
|
41
42
|
}
|
|
42
43
|
else {
|
|
43
|
-
|
|
44
|
+
// Try resolving npm packages from the project directory (airJsonDir)
|
|
45
|
+
// first, then fall back to the SDK's own resolution. When the CLI is
|
|
46
|
+
// installed globally, `air install` puts packages under
|
|
47
|
+
// <airJsonDir>/node_modules/ which Node's default resolution from the
|
|
48
|
+
// SDK bundle would never find. The fallback covers the local
|
|
49
|
+
// development / workspace case where packages live in the SDK's own
|
|
50
|
+
// node_modules tree.
|
|
51
|
+
try {
|
|
52
|
+
const projectRequire = createRequire(join(airJsonDir, "__placeholder.js"));
|
|
53
|
+
const resolved = projectRequire.resolve(specifier);
|
|
54
|
+
mod = await import(pathToFileURL(resolved).href);
|
|
55
|
+
}
|
|
56
|
+
catch (projectErr) {
|
|
57
|
+
// Only fall back to SDK-local resolution when the package wasn't
|
|
58
|
+
// found in the project directory. Re-throw other errors (e.g.
|
|
59
|
+
// syntax errors in the resolved module) so they aren't masked.
|
|
60
|
+
const code = projectErr?.code;
|
|
61
|
+
if (code === "MODULE_NOT_FOUND" || code === "ERR_MODULE_NOT_FOUND") {
|
|
62
|
+
mod = await import(specifier);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
throw projectErr;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
44
68
|
}
|
|
45
69
|
}
|
|
46
70
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension-loader.js","sourceRoot":"","sources":["../src/extension-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"extension-loader.js","sourceRoot":"","sources":["../src/extension-loader.ts"],"names":[],"mappings":"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"}
|
package/dist/init-from-repo.d.ts
CHANGED
|
@@ -38,6 +38,10 @@ export interface InitFromRepoResult {
|
|
|
38
38
|
discovered: DiscoveredArtifact[];
|
|
39
39
|
/** Whether an existing config was overwritten. */
|
|
40
40
|
overwritten: boolean;
|
|
41
|
+
/** Absolute path to the auto-generated roots.json, if created. */
|
|
42
|
+
generatedRootsPath: string;
|
|
43
|
+
/** Name/key of the auto-generated root entry. */
|
|
44
|
+
generatedRootName: string;
|
|
41
45
|
}
|
|
42
46
|
/**
|
|
43
47
|
* Parse a git remote URL and extract the GitHub owner/repo.
|
|
@@ -70,6 +74,10 @@ export declare function discoverArtifacts(repoRoot: string, repo: string, branch
|
|
|
70
74
|
* detects the GitHub remote, and generates an air.json with github:// URIs
|
|
71
75
|
* pointing to the repository's default branch.
|
|
72
76
|
*
|
|
77
|
+
* Also auto-generates a roots.json entry describing the current repo,
|
|
78
|
+
* populated with default_skills, default_mcp_servers, and default_hooks
|
|
79
|
+
* from the discovered artifacts.
|
|
80
|
+
*
|
|
73
81
|
* @throws Error if not in a git repo, no GitHub remote, no artifacts found,
|
|
74
82
|
* or air.json already exists (unless force is true).
|
|
75
83
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-from-repo.d.ts","sourceRoot":"","sources":["../src/init-from-repo.ts"],"names":[],"mappings":"AASA,OAAO,EAKL,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"init-from-repo.d.ts","sourceRoot":"","sources":["../src/init-from-repo.ts"],"names":[],"mappings":"AASA,OAAO,EAKL,KAAK,UAAU,EAEhB,MAAM,oBAAoB,CAAC;AAQ5B,+CAA+C;AAC/C,MAAM,MAAM,qBAAqB,GAC7B,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,WAAW,GACX,cAAc,CAAC;AAEnB;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;aAGxB,IAAI,EAAE,qBAAqB;gBAD3C,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,qBAAqB;CAK9C;AAED,MAAM,WAAW,mBAAmB;IAClC,gFAAgF;IAChF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,IAAI,EAAE,UAAU,CAAC;IACjB,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,kBAAkB;IACjC,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,kDAAkD;IAClD,WAAW,EAAE,OAAO,CAAC;IACrB,kEAAkE;IAClE,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iDAAiD;IACjD,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAaD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAiB3D;AAaD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAiCvD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,kBAAkB,EAAE,CA8CtB;AA6BD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAC1B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,kBAAkB,CAiIpB;AAED,yDAAyD;AACzD,MAAM,MAAM,eAAe,GACvB,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,kBAAkB,CAAC,GACvC;IACE,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEN;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,eAAe,CA4BxE"}
|
package/dist/init-from-repo.js
CHANGED
|
@@ -148,6 +148,31 @@ export function discoverArtifacts(repoRoot, repo, branch) {
|
|
|
148
148
|
}
|
|
149
149
|
return discovered;
|
|
150
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* Extract artifact entry IDs from discovered artifact files.
|
|
153
|
+
* Reads each file, parses the JSON, and collects the top-level keys (IDs).
|
|
154
|
+
*/
|
|
155
|
+
function extractArtifactIds(discovered, repoRoot) {
|
|
156
|
+
const ids = {};
|
|
157
|
+
for (const artifact of discovered) {
|
|
158
|
+
const filePath = resolve(repoRoot, artifact.repoPath);
|
|
159
|
+
try {
|
|
160
|
+
const content = readFileSync(filePath, "utf-8");
|
|
161
|
+
const data = JSON.parse(content);
|
|
162
|
+
const { $schema, ...entries } = data;
|
|
163
|
+
const entryIds = Object.keys(entries);
|
|
164
|
+
if (entryIds.length > 0) {
|
|
165
|
+
if (!ids[artifact.type])
|
|
166
|
+
ids[artifact.type] = [];
|
|
167
|
+
ids[artifact.type].push(...entryIds);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
catch {
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
return ids;
|
|
175
|
+
}
|
|
151
176
|
/**
|
|
152
177
|
* Initialize an AIR config from artifact files discovered in a git repository.
|
|
153
178
|
*
|
|
@@ -155,6 +180,10 @@ export function discoverArtifacts(repoRoot, repo, branch) {
|
|
|
155
180
|
* detects the GitHub remote, and generates an air.json with github:// URIs
|
|
156
181
|
* pointing to the repository's default branch.
|
|
157
182
|
*
|
|
183
|
+
* Also auto-generates a roots.json entry describing the current repo,
|
|
184
|
+
* populated with default_skills, default_mcp_servers, and default_hooks
|
|
185
|
+
* from the discovered artifacts.
|
|
186
|
+
*
|
|
158
187
|
* @throws Error if not in a git repo, no GitHub remote, no artifacts found,
|
|
159
188
|
* or air.json already exists (unless force is true).
|
|
160
189
|
*/
|
|
@@ -210,13 +239,40 @@ export function initFromRepo(options) {
|
|
|
210
239
|
// Derive config name from repo name
|
|
211
240
|
const repoName = repo.split("/")[1] || "my-config";
|
|
212
241
|
const configName = repoName.replace(/[^a-zA-Z0-9_-]/g, "-");
|
|
213
|
-
//
|
|
242
|
+
// Auto-generate roots.json for the current repo
|
|
243
|
+
const artifactIds = extractArtifactIds(discovered, repoRoot);
|
|
244
|
+
const rootEntry = {
|
|
245
|
+
display_name: configName,
|
|
246
|
+
description: `Agent root for ${repo}.`,
|
|
247
|
+
url: remoteUrl.trim(),
|
|
248
|
+
default_branch: branch,
|
|
249
|
+
...(artifactIds.skills?.length && { default_skills: artifactIds.skills }),
|
|
250
|
+
...(artifactIds.mcp?.length && { default_mcp_servers: artifactIds.mcp }),
|
|
251
|
+
...(artifactIds.plugins?.length && { default_plugins: artifactIds.plugins }),
|
|
252
|
+
...(artifactIds.hooks?.length && { default_hooks: artifactIds.hooks }),
|
|
253
|
+
};
|
|
254
|
+
const rootsDir = resolve(airDir, "roots");
|
|
255
|
+
mkdirSync(rootsDir, { recursive: true });
|
|
256
|
+
const rootsJson = {
|
|
257
|
+
$schema: "https://raw.githubusercontent.com/pulsemcp/air/main/schemas/roots.schema.json",
|
|
258
|
+
[configName]: rootEntry,
|
|
259
|
+
};
|
|
260
|
+
const rootsPath = resolve(rootsDir, "roots.json");
|
|
261
|
+
writeFileSync(rootsPath, JSON.stringify(rootsJson, null, 2) + "\n");
|
|
262
|
+
// Build air.json — include auto-generated roots.json first, then discovered
|
|
214
263
|
const airJson = {
|
|
215
264
|
name: configName,
|
|
216
265
|
extensions: ["@pulsemcp/air-provider-github"],
|
|
217
266
|
};
|
|
218
267
|
for (const type of ARTIFACT_TYPES) {
|
|
219
|
-
if (
|
|
268
|
+
if (type === "roots") {
|
|
269
|
+
// Combine auto-generated local roots with any discovered roots
|
|
270
|
+
airJson.roots = [
|
|
271
|
+
"./roots/roots.json",
|
|
272
|
+
...(grouped.roots || []),
|
|
273
|
+
];
|
|
274
|
+
}
|
|
275
|
+
else if (grouped[type]) {
|
|
220
276
|
airJson[type] = grouped[type];
|
|
221
277
|
}
|
|
222
278
|
}
|
|
@@ -230,6 +286,8 @@ export function initFromRepo(options) {
|
|
|
230
286
|
branch,
|
|
231
287
|
discovered,
|
|
232
288
|
overwritten,
|
|
289
|
+
generatedRootsPath: rootsPath,
|
|
290
|
+
generatedRootName: configName,
|
|
233
291
|
};
|
|
234
292
|
}
|
|
235
293
|
/**
|
|
@@ -257,6 +315,11 @@ export function smartInit(options) {
|
|
|
257
315
|
if (existsSync(targetPath)) {
|
|
258
316
|
unlinkSync(targetPath);
|
|
259
317
|
}
|
|
318
|
+
// Clean up auto-generated roots.json from a previous repo-mode init
|
|
319
|
+
const rootsPath = resolve(dirname(targetPath), "roots", "roots.json");
|
|
320
|
+
if (existsSync(rootsPath)) {
|
|
321
|
+
unlinkSync(rootsPath);
|
|
322
|
+
}
|
|
260
323
|
}
|
|
261
324
|
const result = initConfig({ path: options?.path });
|
|
262
325
|
return { mode: "blank", ...result };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-from-repo.js","sourceRoot":"","sources":["../src/init-from-repo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EACL,YAAY,EACZ,UAAU,EACV,aAAa,EACb,SAAS,EACT,UAAU,GACX,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,
|
|
1
|
+
{"version":3,"file":"init-from-repo.js","sourceRoot":"","sources":["../src/init-from-repo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EACL,YAAY,EACZ,UAAU,EACV,aAAa,EACb,SAAS,EACT,UAAU,GACX,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,GAGb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,sFAAsF;AACtF,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC,MAAM,CAC/C,CAAC,CAAC,EAAmC,EAAE,CAAC,CAAC,KAAK,KAAK,CACpD,CAAC;AAUF;;;GAGG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAGxB;IAFlB,YACE,OAAe,EACC,IAA2B;QAE3C,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,SAAI,GAAJ,IAAI,CAAuB;QAG3C,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAuCD;;GAEG;AACH,SAAS,WAAW,CAAC,GAAW;IAC9B,OAAO,YAAY,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE;QAC3D,GAAG;QACH,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QAC/B,QAAQ,EAAE,OAAO;KAClB,CAAC,CAAC,IAAI,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAiB;IACjD,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IAEjC,qCAAqC;IACrC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACpE,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEjC,2CAA2C;IAC3C,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAC9B,2CAA2C,CAC5C,CAAC;IACF,IAAI,UAAU;QAAE,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;IAErC,MAAM,IAAI,KAAK,CACb,uDAAuD,OAAO,KAAK;QACjE,2CAA2C,CAC9C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,GAAW,EAAE,MAAM,GAAG,QAAQ;IAClD,OAAO,YAAY,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE;QACxD,GAAG;QACH,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QAC/B,QAAQ,EAAE,OAAO;KAClB,CAAC,CAAC,IAAI,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,mDAAmD;IACnD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CACtB,KAAK,EACL,CAAC,cAAc,EAAE,0BAA0B,CAAC,EAC5C;YACE,GAAG;YACH,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,QAAQ,EAAE,OAAO;SAClB,CACF,CAAC,IAAI,EAAE,CAAC;QACT,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;QAC3D,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,yBAAyB;IAC3B,CAAC;IAED,4BAA4B;IAC5B,KAAK,MAAM,MAAM,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,YAAY,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,MAAM,EAAE,CAAC,EAAE;gBACjE,GAAG;gBACH,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;gBAC/B,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACP,WAAW;QACb,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,QAAgB,EAChB,IAAY,EACZ,MAAc;IAEd,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE;YACzD,GAAG,EAAE,QAAQ;YACb,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC,IAAI,EAAE,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEvB,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,UAAU,GAAyB,EAAE,CAAC;IAE5C,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,oEAAoE;QACpE,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QAExE,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAE1C,+CAA+C;QAC/C,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,KAAK;YAAE,SAAS;QAClD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,SAAS;QAEnD,gDAAgD;QAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,KAAK;gBAAE,SAAS;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QAED,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,IAAI;YACd,GAAG,EAAE,YAAY,IAAI,IAAI,MAAM,IAAI,IAAI,EAAE;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CACzB,UAAgC,EAChC,QAAgB;IAEhB,MAAM,GAAG,GAAsC,EAAE,CAAC;IAClD,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACtD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,IAAI,CAAC;YACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACjD,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAE,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,YAAY,CAC1B,OAA6B;IAE7B,MAAM,GAAG,GAAG,OAAO,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1C,MAAM,WAAW,GAAG,OAAO,EAAE,IAAI,IAAI,qBAAqB,EAAE,CAAC;IAC7D,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,KAAK,CAAC;IACtC,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEpC,4BAA4B;IAC5B,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,WAAW,IAAI,CAAC,KAAK,EAAE,CAAC;QAC1B,MAAM,IAAI,iBAAiB,CACzB,GAAG,WAAW,kBAAkB,EAChC,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,gBAAgB;IAChB,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,iBAAiB,CACzB,uEAAuE;YACrE,yCAAyC,EAC3C,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,oBAAoB;IACpB,IAAI,SAAiB,CAAC;IACtB,IAAI,CAAC;QACH,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,iBAAiB,CACzB,sCAAsC;YACpC,uDAAuD,EACzD,WAAW,CACZ,CAAC;IACJ,CAAC;IAED,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,iBAAiB,CACzB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAChD,WAAW,CACZ,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAE7D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,iBAAiB,CACzB,yDAAyD;YACvD,kEAAkE,EACpE,cAAc,CACf,CAAC;IACJ,CAAC;IAED,8BAA8B;IAC9B,MAAM,OAAO,GAA0C,EAAE,CAAC;IAC1D,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9B,CAAC;QACD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;IAED,oCAAoC;IACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;IACnD,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;IAE5D,gDAAgD;IAChD,MAAM,WAAW,GAAG,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAE7D,MAAM,SAAS,GAAc;QAC3B,YAAY,EAAE,UAAU;QACxB,WAAW,EAAE,kBAAkB,IAAI,GAAG;QACtC,GAAG,EAAE,SAAS,CAAC,IAAI,EAAE;QACrB,cAAc,EAAE,MAAM;QACtB,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC;QACzE,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,mBAAmB,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC;QACxE,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,eAAe,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC;QAC5E,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,aAAa,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC;KACvE,CAAC;IAEF,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEzC,MAAM,SAAS,GAA4B;QACzC,OAAO,EAAE,+EAA+E;QACxF,CAAC,UAAU,CAAC,EAAE,SAAS;KACxB,CAAC;IACF,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAClD,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAEpE,4EAA4E;IAC5E,MAAM,OAAO,GAA4B;QACvC,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,CAAC,+BAA+B,CAAC;KAC9C,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAClC,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,+DAA+D;YAC/D,OAAO,CAAC,KAAK,GAAG;gBACd,oBAAoB;gBACpB,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;aACzB,CAAC;QACJ,CAAC;aAAM,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,eAAe;IACf,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAEpE,OAAO;QACL,WAAW;QACX,MAAM;QACN,IAAI;QACJ,MAAM;QACN,UAAU;QACV,WAAW;QACX,kBAAkB,EAAE,SAAS;QAC7B,iBAAiB,EAAE,UAAU;KAC9B,CAAC;AACJ,CAAC;AAWD;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,OAA6B;IACrD,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,KAAK,CAAC;IAEtC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,CAAC,GAAG,YAAY,iBAAiB,CAAC;YAAE,MAAM,GAAG,CAAC;QAEnD,mDAAmD;QACnD,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,GAAG,CAAC;QAErC,0EAA0E;QAC1E,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,UAAU,GAAG,OAAO,EAAE,IAAI,IAAI,qBAAqB,EAAE,CAAC;YAC5D,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3B,UAAU,CAAC,UAAU,CAAC,CAAC;YACzB,CAAC;YACD,oEAAoE;YACpE,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YACtE,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,UAAU,CAAC,SAAS,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC;IACtC,CAAC;AACH,CAAC"}
|
package/dist/prepare.d.ts
CHANGED
|
@@ -7,8 +7,8 @@ export interface PrepareSessionOptions {
|
|
|
7
7
|
root?: string;
|
|
8
8
|
/** Target directory to prepare. Defaults to process.cwd(). */
|
|
9
9
|
target?: string;
|
|
10
|
-
/** Agent adapter name.
|
|
11
|
-
adapter
|
|
10
|
+
/** Agent adapter name (e.g., "claude"). Required. */
|
|
11
|
+
adapter: string;
|
|
12
12
|
/** Skill IDs to activate (overrides root defaults). */
|
|
13
13
|
skills?: string[];
|
|
14
14
|
/** MCP server IDs to activate (overrides root defaults). */
|
|
@@ -53,5 +53,5 @@ export interface PrepareSessionResult {
|
|
|
53
53
|
*
|
|
54
54
|
* @throws Error if the adapter is not found, air.json is not found, or the specified root doesn't exist.
|
|
55
55
|
*/
|
|
56
|
-
export declare function prepareSession(options
|
|
56
|
+
export declare function prepareSession(options: PrepareSessionOptions): Promise<PrepareSessionResult>;
|
|
57
57
|
//# sourceMappingURL=prepare.d.ts.map
|
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,EACrB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAkB,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAS9E,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,
|
|
1
|
+
{"version":3,"file":"prepare.d.ts","sourceRoot":"","sources":["../src/prepare.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAkB,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAS9E,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;;;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;CAC5B;AAED;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,oBAAoB,CAAC,CAsG/B"}
|
package/dist/prepare.js
CHANGED
|
@@ -16,13 +16,13 @@ import { findUnresolvedVars, unresolvedVarsMessage, } from "./validate-config.js
|
|
|
16
16
|
* @throws Error if the adapter is not found, air.json is not found, or the specified root doesn't exist.
|
|
17
17
|
*/
|
|
18
18
|
export async function prepareSession(options) {
|
|
19
|
-
const airJsonPath = options
|
|
19
|
+
const airJsonPath = options.config ?? getAirJsonPath();
|
|
20
20
|
if (!airJsonPath) {
|
|
21
21
|
throw new Error("No air.json found. Specify a config path or set AIR_CONFIG env var.");
|
|
22
22
|
}
|
|
23
23
|
// Use pre-loaded extensions or load from air.json
|
|
24
24
|
let loaded;
|
|
25
|
-
if (options
|
|
25
|
+
if (options.extensions) {
|
|
26
26
|
loaded = options.extensions;
|
|
27
27
|
}
|
|
28
28
|
else {
|
|
@@ -31,7 +31,7 @@ export async function prepareSession(options) {
|
|
|
31
31
|
loaded = await loadExtensions(airConfig.extensions || [], airJsonDir);
|
|
32
32
|
}
|
|
33
33
|
// Find adapter: prefer extension-provided, fall back to registry
|
|
34
|
-
const adapterName = options
|
|
34
|
+
const adapterName = options.adapter;
|
|
35
35
|
let adapter = loaded.adapters.find((ext) => ext.adapter?.name === adapterName)?.adapter ??
|
|
36
36
|
null;
|
|
37
37
|
if (!adapter) {
|
|
@@ -52,25 +52,25 @@ export async function prepareSession(options) {
|
|
|
52
52
|
// Detect or validate root
|
|
53
53
|
let root;
|
|
54
54
|
let rootAutoDetected = false;
|
|
55
|
-
if (options
|
|
55
|
+
if (options.root) {
|
|
56
56
|
root = artifacts.roots[options.root];
|
|
57
57
|
if (!root) {
|
|
58
58
|
throw new Error(`Root "${options.root}" not found. Available roots: ${Object.keys(artifacts.roots).join(", ") || "(none)"}`);
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
else {
|
|
62
|
-
const targetDir = resolve(options
|
|
62
|
+
const targetDir = resolve(options.target ?? process.cwd());
|
|
63
63
|
root = detectRoot(artifacts.roots, targetDir);
|
|
64
64
|
if (root) {
|
|
65
65
|
rootAutoDetected = true;
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
// Adapter writes .mcp.json and injects skills (no secret resolution)
|
|
69
|
-
const session = await adapter.prepareSession(artifacts, options
|
|
69
|
+
const session = await adapter.prepareSession(artifacts, options.target ?? process.cwd(), {
|
|
70
70
|
root,
|
|
71
|
-
skillOverrides: options
|
|
72
|
-
mcpServerOverrides: options
|
|
73
|
-
skipSubagentMerge: options
|
|
71
|
+
skillOverrides: options.skills,
|
|
72
|
+
mcpServerOverrides: options.mcpServers,
|
|
73
|
+
skipSubagentMerge: options.skipSubagentMerge,
|
|
74
74
|
});
|
|
75
75
|
// Run transforms in extension-list order on the written .mcp.json
|
|
76
76
|
const mcpConfigPath = session.configFiles.find((f) => f.endsWith(".mcp.json"));
|
|
@@ -78,14 +78,14 @@ export async function prepareSession(options) {
|
|
|
78
78
|
await runTransforms({
|
|
79
79
|
transforms: loaded.transforms,
|
|
80
80
|
mcpConfigPath,
|
|
81
|
-
targetDir: options
|
|
81
|
+
targetDir: options.target ?? process.cwd(),
|
|
82
82
|
root,
|
|
83
83
|
artifacts,
|
|
84
|
-
extensionOptions: options
|
|
84
|
+
extensionOptions: options.extensionOptions ?? {},
|
|
85
85
|
});
|
|
86
86
|
}
|
|
87
87
|
// Final validation: ensure no unresolved ${VAR} patterns remain
|
|
88
|
-
if (!options
|
|
88
|
+
if (!options.skipValidation && mcpConfigPath) {
|
|
89
89
|
const config = JSON.parse(readFileSync(mcpConfigPath, "utf-8"));
|
|
90
90
|
const unresolved = findUnresolvedVars(config);
|
|
91
91
|
if (unresolved.length > 0) {
|
package/dist/prepare.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare.js","sourceRoot":"","sources":["../src/prepare.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EACL,aAAa,EACb,cAAc,EACd,gBAAgB,GAGjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAyB,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAElC,OAAO,EACL,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAgD9B;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,
|
|
1
|
+
{"version":3,"file":"prepare.js","sourceRoot":"","sources":["../src/prepare.ts"],"names":[],"mappings":"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"}
|
package/dist/start.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAI5B,MAAM,WAAW,mBAAmB;IAClC,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAkB;IACjC,8BAA8B;IAC9B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,gCAAgC;IAChC,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,oCAAoC;IACpC,aAAa,EAAE,kBAAkB,CAAC;IAClC,4FAA4F;IAC5F,cAAc,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC,sCAAsC;IACtC,YAAY,EAAE,YAAY,CAAC;IAC3B,sCAAsC;IACtC,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,kBAAkB,CAAC,CAqD7B"}
|
package/dist/start.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { resolve, dirname } from "path";
|
|
2
|
+
import { getAirJsonPath, loadAirConfig, resolveArtifacts, emptyArtifacts, } from "@pulsemcp/air-core";
|
|
2
3
|
import { findAdapter, listAvailableAdapters } from "./adapter-registry.js";
|
|
4
|
+
import { loadExtensions } from "./extension-loader.js";
|
|
3
5
|
/**
|
|
4
6
|
* Prepare to start an agent session.
|
|
5
7
|
*
|
|
@@ -19,9 +21,19 @@ export async function startSession(agent, options) {
|
|
|
19
21
|
`Install an adapter: npm install @pulsemcp/air-adapter-${agent}`);
|
|
20
22
|
}
|
|
21
23
|
const airJsonPath = options?.config || getAirJsonPath();
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
let artifacts;
|
|
25
|
+
if (airJsonPath) {
|
|
26
|
+
const airConfig = loadAirConfig(airJsonPath);
|
|
27
|
+
const airJsonDir = dirname(resolve(airJsonPath));
|
|
28
|
+
const loaded = await loadExtensions(airConfig.extensions || [], airJsonDir);
|
|
29
|
+
const providers = loaded.providers
|
|
30
|
+
.map((ext) => ext.provider)
|
|
31
|
+
.filter(Boolean);
|
|
32
|
+
artifacts = await resolveArtifacts(airJsonPath, { providers });
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
artifacts = emptyArtifacts();
|
|
36
|
+
}
|
|
25
37
|
let root;
|
|
26
38
|
if (options?.root) {
|
|
27
39
|
root = artifacts.roots[options.root];
|
package/dist/start.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,cAAc,GAKf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EACL,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,cAAc,GAKf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AA0BvD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,KAAa,EACb,OAA6B;IAE7B,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,MAAM,qBAAqB,EAAE,CAAC;QAChD,MAAM,YAAY,GAChB,SAAS,CAAC,MAAM,GAAG,CAAC;YAClB,CAAC,CAAC,cAAc,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACtC,CAAC,CAAC,uBAAuB,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,yBAAyB,KAAK,MAAM,YAAY,KAAK;YACnD,yDAAyD,KAAK,EAAE,CACnE,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,CAAC;IACxD,IAAI,SAA4B,CAAC;IAEjC,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,UAAU,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC;QAC5E,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS;aAC/B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAS,CAAC;aAC3B,MAAM,CAAC,OAAO,CAAC,CAAC;QACnB,SAAS,GAAG,MAAM,gBAAgB,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IACjE,CAAC;SAAM,CAAC;QACN,SAAS,GAAG,cAAc,EAAE,CAAC;IAC/B,CAAC;IAED,IAAI,IAA2B,CAAC;IAChC,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;QAClB,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CACb,SAAS,OAAO,CAAC,IAAI,iCAAiC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CAC5G,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC9D,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,iBAAiB,IAAI,IAAI,CAAC;QACzD,CAAC,CAAC,MAAM,OAAO,CAAC,WAAW,EAAE;QAC7B,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAE9D,OAAO;QACL,SAAS;QACT,IAAI;QACJ,aAAa;QACb,cAAc;QACd,YAAY;QACZ,kBAAkB,EAAE,OAAO,CAAC,WAAW;KACxC,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pulsemcp/air-sdk",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.13",
|
|
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.13"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@types/node": "^22.10.0",
|