@pulsemcp/air-sdk 0.2.2 → 0.3.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,41 @@
1
+ import { type CleanSessionResult } from "@pulsemcp/air-core";
2
+ export interface CleanSessionOptions {
3
+ /**
4
+ * Agent adapter name (e.g., "claude"). When omitted, the adapter is read
5
+ * from the on-disk manifest written by the previous `prepareSession`. Pass
6
+ * an explicit value only to override that lookup.
7
+ */
8
+ adapter?: string;
9
+ /** Target directory whose AIR-managed artifacts should be removed. Defaults to process.cwd(). */
10
+ target?: string;
11
+ /**
12
+ * Path to air.json. Used only to locate adapter packages installed under
13
+ * `~/.air/node_modules/`. The clean operation itself does not require an
14
+ * air.json — it reads the on-disk manifest. Uses AIR_CONFIG env or
15
+ * `~/.air/air.json` when omitted; if no air.json exists, adapter
16
+ * resolution falls back to the SDK's normal Node module search.
17
+ */
18
+ config?: string;
19
+ /** Print what would be removed without modifying disk. */
20
+ dryRun?: boolean;
21
+ /** Skip skill removal — manifest entry for skills is preserved. */
22
+ keepSkills?: boolean;
23
+ /** Skip hook removal — manifest entry for hooks is preserved. */
24
+ keepHooks?: boolean;
25
+ /** Skip MCP server removal — manifest entry for MCP servers is preserved. */
26
+ keepMcpServers?: boolean;
27
+ }
28
+ export interface CleanSessionSdkResult extends CleanSessionResult {
29
+ /** Display name of the adapter that performed the clean. */
30
+ adapterDisplayName: string;
31
+ }
32
+ /**
33
+ * Remove every artifact AIR has previously written to a target directory.
34
+ *
35
+ * Resolves the adapter (from extensions if an air.json is available, then
36
+ * from the adapter registry) and delegates to its `cleanSession()` method.
37
+ * Throws a clear error when the adapter is not installed or doesn't
38
+ * implement `cleanSession`.
39
+ */
40
+ export declare function cleanSession(options?: CleanSessionOptions): Promise<CleanSessionSdkResult>;
41
+ //# sourceMappingURL=clean.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clean.d.ts","sourceRoot":"","sources":["../src/clean.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,kBAAkB,EACxB,MAAM,oBAAoB,CAAC;AAK5B,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iGAAiG;IACjG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mEAAmE;IACnE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iEAAiE;IACjE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6EAA6E;IAC7E,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;IAC/D,4DAA4D;IAC5D,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,qBAAqB,CAAC,CA0DhC"}
package/dist/clean.js ADDED
@@ -0,0 +1,78 @@
1
+ import { resolve, dirname } from "path";
2
+ import { getAirJsonPath, loadAirConfig, loadManifest, getManifestPath, } from "@pulsemcp/air-core";
3
+ import { existsSync } from "fs";
4
+ import { findAdapter, listAvailableAdapters } from "./adapter-registry.js";
5
+ import { loadExtensions } from "./extension-loader.js";
6
+ /**
7
+ * Remove every artifact AIR has previously written to a target directory.
8
+ *
9
+ * Resolves the adapter (from extensions if an air.json is available, then
10
+ * from the adapter registry) and delegates to its `cleanSession()` method.
11
+ * Throws a clear error when the adapter is not installed or doesn't
12
+ * implement `cleanSession`.
13
+ */
14
+ export async function cleanSession(options = {}) {
15
+ const targetDir = resolve(options.target ?? process.cwd());
16
+ const adapterName = options.adapter ?? inferAdapterFromManifest(targetDir);
17
+ if (!adapterName) {
18
+ const manifestPath = getManifestPath(targetDir);
19
+ if (existsSync(manifestPath)) {
20
+ throw new Error(`Manifest at ${manifestPath} does not record which adapter wrote it ` +
21
+ `(written by an older AIR version). Re-run with the adapter name, ` +
22
+ `e.g. \`air clean claude\`.`);
23
+ }
24
+ throw new Error(`No AIR manifest found for ${targetDir} (looked for ${manifestPath}). ` +
25
+ `Run \`air prepare <adapter>\` first, or pass the adapter name explicitly: ` +
26
+ `\`air clean <adapter>\`.`);
27
+ }
28
+ const airJsonPath = options.config ?? getAirJsonPath();
29
+ const airJsonDir = airJsonPath ? dirname(resolve(airJsonPath)) : undefined;
30
+ const searchDirs = airJsonDir ? [airJsonDir] : undefined;
31
+ let adapter = airJsonPath && airJsonDir
32
+ ? await findAdapterFromAirJson(adapterName, airJsonPath, airJsonDir)
33
+ : null;
34
+ if (!adapter) {
35
+ adapter = await findAdapter(adapterName, { searchDirs });
36
+ }
37
+ if (!adapter) {
38
+ const available = await listAvailableAdapters({ searchDirs });
39
+ const availableMsg = available.length > 0
40
+ ? `Available: ${available.join(", ")}`
41
+ : "No adapters installed";
42
+ throw new Error(`No adapter found for "${adapterName}". ${availableMsg}.\n` +
43
+ `Install an adapter: npm install @pulsemcp/air-adapter-${adapterName}`);
44
+ }
45
+ if (!adapter.cleanSession) {
46
+ throw new Error(`Adapter "${adapterName}" does not support clean. ` +
47
+ `Update the adapter package or remove AIR-managed files manually.`);
48
+ }
49
+ const result = await adapter.cleanSession(targetDir, {
50
+ dryRun: options.dryRun,
51
+ keepSkills: options.keepSkills,
52
+ keepHooks: options.keepHooks,
53
+ keepMcpServers: options.keepMcpServers,
54
+ });
55
+ return { ...result, adapterDisplayName: adapter.displayName };
56
+ }
57
+ /**
58
+ * Read the prior-run manifest for `targetDir` and return the adapter name it
59
+ * records. Returns null when no manifest exists, the manifest is corrupt, or
60
+ * it predates the adapter field.
61
+ */
62
+ function inferAdapterFromManifest(targetDir) {
63
+ const manifest = loadManifest(targetDir);
64
+ return manifest?.adapter ?? null;
65
+ }
66
+ async function findAdapterFromAirJson(name, airJsonPath, airJsonDir) {
67
+ try {
68
+ const airConfig = loadAirConfig(airJsonPath);
69
+ if (!airConfig.extensions?.length)
70
+ return null;
71
+ const loaded = await loadExtensions(airConfig.extensions, airJsonDir);
72
+ return loaded.adapters.find((ext) => ext.adapter?.name === name)?.adapter ?? null;
73
+ }
74
+ catch {
75
+ return null;
76
+ }
77
+ }
78
+ //# sourceMappingURL=clean.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clean.js","sourceRoot":"","sources":["../src/clean.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export { loadAirConfig, getDefaultAirJsonPath, getAirJsonPath, resolveArtifacts, mergeArtifacts, expandPlugins, emptyArtifacts, LOCAL_SCOPE, isQualified, qualifyId, parseQualifiedId, validateScope, deriveScope, buildShortnameIndex, lookupArtifactId, resolveReference, stripScopes, ShortnameCollisionError, validateJson, getSchemasDir, getSchemaPath, loadSchema, detectSchemaType, detectSchemaFromValue, getAllSchemaTypes, isValidSchemaType, MANIFEST_VERSION, getDefaultAirHome, getManifestPath, loadManifest, writeManifest, buildManifest, diffManifest, } from "@pulsemcp/air-core";
2
- export type { AirConfig, ResolvedArtifacts, SkillEntry, ReferenceEntry, McpOAuthConfig, McpServerEntry, PluginAuthor, PluginEntry, RootEntry, HookEntry, AgentAdapter, CatalogProvider, CacheFreshnessWarning, CacheRefreshResult, AirExtension, PrepareTransform, PluginEmitter, BuildMarketplaceOptions, BuiltPlugin, BuiltMarketplace, McpConfig, TransformContext, ExtensionCliOption, AgentSessionConfig, StartCommand, PrepareSessionOptions as CorePrepareSessionOptions, PreparedSession, LocalArtifacts, LocalSkillEntry, ValidationResult, ValidationError, ResolveOptions, SchemaType, Manifest, ManifestSelection, ManifestDiff, QualifiedId, ReferenceResolution, ShortnameCollision, } from "@pulsemcp/air-core";
1
+ export { loadAirConfig, getDefaultAirJsonPath, getAirJsonPath, resolveArtifacts, mergeArtifacts, expandPlugins, emptyArtifacts, LOCAL_SCOPE, isQualified, qualifyId, parseQualifiedId, validateScope, deriveScope, buildShortnameIndex, lookupArtifactId, resolveReference, stripScopes, ShortnameCollisionError, validateJson, getSchemasDir, getSchemaPath, loadSchema, detectSchemaType, detectSchemaFromValue, getAllSchemaTypes, isValidSchemaType, MANIFEST_VERSION, getDefaultAirHome, getManifestPath, loadManifest, writeManifest, buildManifest, diffManifest, deleteManifest, } from "@pulsemcp/air-core";
2
+ export type { AirConfig, ResolvedArtifacts, SkillEntry, ReferenceEntry, McpOAuthConfig, McpServerEntry, PluginAuthor, PluginEntry, RootEntry, HookEntry, AgentAdapter, CatalogProvider, CacheFreshnessWarning, CacheRefreshResult, AirExtension, PrepareTransform, PluginEmitter, BuildMarketplaceOptions, BuiltPlugin, BuiltMarketplace, McpConfig, TransformContext, ExtensionCliOption, AgentSessionConfig, StartCommand, PrepareSessionOptions as CorePrepareSessionOptions, PreparedSession, CleanSessionOptions as CoreCleanSessionOptions, CleanSessionResult, LocalArtifacts, LocalSkillEntry, ValidationResult, ValidationError, ResolveOptions, SchemaType, Manifest, ManifestSelection, ManifestDiff, QualifiedId, ReferenceResolution, ShortnameCollision, } from "@pulsemcp/air-core";
3
3
  export { findAdapter, listAvailableAdapters, type FindAdapterOptions, } from "./adapter-registry.js";
4
4
  export { normalizeGitUrl, detectRoot } from "./root-detection.js";
5
5
  export { validateFile } from "./validate.js";
@@ -14,6 +14,8 @@ export { startSession } from "./start.js";
14
14
  export type { StartSessionOptions, StartSessionResult } from "./start.js";
15
15
  export { prepareSession, computeMergedDefaults, resolveCategoryOverride, } from "./prepare.js";
16
16
  export type { PrepareSessionOptions, PrepareSessionResult, MergedArtifactDefaults, } from "./prepare.js";
17
+ export { cleanSession } from "./clean.js";
18
+ export type { CleanSessionOptions, CleanSessionSdkResult, } from "./clean.js";
17
19
  export { exportMarketplace } from "./export-marketplace.js";
18
20
  export type { ExportMarketplaceOptions, ExportMarketplaceResult, } from "./export-marketplace.js";
19
21
  export { resolveFullArtifacts } from "./resolve.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -9,7 +9,7 @@ validateJson,
9
9
  // Schemas
10
10
  getSchemasDir, getSchemaPath, loadSchema, detectSchemaType, detectSchemaFromValue, getAllSchemaTypes, isValidSchemaType,
11
11
  // Manifest
12
- MANIFEST_VERSION, getDefaultAirHome, getManifestPath, loadManifest, writeManifest, buildManifest, diffManifest, } from "@pulsemcp/air-core";
12
+ MANIFEST_VERSION, getDefaultAirHome, getManifestPath, loadManifest, writeManifest, buildManifest, diffManifest, deleteManifest, } from "@pulsemcp/air-core";
13
13
  // Adapter registry
14
14
  export { findAdapter, listAvailableAdapters, } from "./adapter-registry.js";
15
15
  // Root detection
@@ -21,6 +21,7 @@ export { initFromRepo, smartInit, InitFromRepoError } from "./init-from-repo.js"
21
21
  export { listArtifacts, VALID_ARTIFACT_TYPES } from "./list.js";
22
22
  export { startSession } from "./start.js";
23
23
  export { prepareSession, computeMergedDefaults, resolveCategoryOverride, } from "./prepare.js";
24
+ export { cleanSession } from "./clean.js";
24
25
  export { exportMarketplace } from "./export-marketplace.js";
25
26
  export { resolveFullArtifacts } from "./resolve.js";
26
27
  // Extension installer
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,kBAAkB;AAClB,WAAW,EACX,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,uBAAuB;AACvB,aAAa;AACb,YAAY;AACZ,UAAU;AACV,aAAa,EACb,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB;AACjB,WAAW;AACX,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,aAAa,EACb,aAAa,EACb,YAAY,GACb,MAAM,oBAAoB,CAAC;AAoD5B,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;AAOvC,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,EACL,cAAc,EACd,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AAOtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAM5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGpD,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;AAE9B,iFAAiF;AACjF,OAAO,EACL,eAAe,EACf,aAAa,EACb,aAAa,GACd,MAAM,uBAAuB,CAAC;AAU/B,2DAA2D;AAC3D,OAAO,EACL,eAAe,EACf,eAAe,EACf,YAAY,EACZ,WAAW,EACX,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAG1B,6CAA6C;AAC7C,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAS5B,qEAAqE;AACrE,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,aAAa,GACd,MAAM,qBAAqB,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,kBAAkB;AAClB,WAAW,EACX,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,uBAAuB;AACvB,aAAa;AACb,YAAY;AACZ,UAAU;AACV,aAAa,EACb,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB;AACjB,WAAW;AACX,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,aAAa,EACb,aAAa,EACb,YAAY,EACZ,cAAc,GACf,MAAM,oBAAoB,CAAC;AAsD5B,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;AAOvC,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,EACL,cAAc,EACd,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AAOtB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAM1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAM5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGpD,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;AAE9B,iFAAiF;AACjF,OAAO,EACL,eAAe,EACf,aAAa,EACb,aAAa,GACd,MAAM,uBAAuB,CAAC;AAU/B,2DAA2D;AAC3D,OAAO,EACL,eAAe,EACf,eAAe,EACf,YAAY,EACZ,WAAW,EACX,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAG1B,6CAA6C;AAC7C,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAS5B,qEAAqE;AACrE,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,aAAa,GACd,MAAM,qBAAqB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pulsemcp/air-sdk",
3
- "version": "0.2.2",
3
+ "version": "0.3.0",
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.2.2"
32
+ "@pulsemcp/air-core": "0.3.0"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@types/node": "^22.10.0",