@pulsemcp/air-cli 0.2.1 → 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,3 @@
1
+ import { Command } from "commander";
2
+ export declare function cleanCommand(): Command;
3
+ //# sourceMappingURL=clean.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clean.d.ts","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,YAAY,IAAI,OAAO,CAmHtC"}
@@ -0,0 +1,64 @@
1
+ import { Command } from "commander";
2
+ import { cleanSession } from "@pulsemcp/air-sdk";
3
+ export function cleanCommand() {
4
+ const cmd = new Command("clean")
5
+ .description("Remove every artifact AIR has previously written to a target directory (skill / hook directories, MCP server keys, manifest). The adapter is read from the manifest by default — pass it explicitly only to override.")
6
+ .argument("[adapter]", "Agent adapter to use (e.g., claude). Inferred from the manifest when omitted.")
7
+ .option("--target <dir>", "Target directory to clean (defaults to cwd)", process.cwd())
8
+ .option("--dry-run", "Print what would be removed without modifying disk")
9
+ .option("--keep-skills", "Don't remove skill directories — preserve them in the manifest")
10
+ .option("--keep-hooks", "Don't remove hook directories or AIR-managed hook entries from settings.json")
11
+ .option("--keep-mcp", "Don't remove AIR-managed MCP server keys from .mcp.json")
12
+ .option("--config <path>", "Path to air.json (only used to locate adapter packages installed via `air install`; defaults to AIR_CONFIG env or ~/.air/air.json)")
13
+ .action(async (adapter, options) => {
14
+ try {
15
+ const result = await cleanSession({
16
+ adapter,
17
+ target: options.target,
18
+ config: options.config,
19
+ dryRun: options.dryRun,
20
+ keepSkills: options.keepSkills,
21
+ keepHooks: options.keepHooks,
22
+ keepMcpServers: options.keepMcp,
23
+ });
24
+ const prefix = options.dryRun ? "Would remove" : "Removed";
25
+ if (!result.manifestExisted) {
26
+ console.error(`No AIR manifest found for ${options.target}. Nothing to clean.`);
27
+ return;
28
+ }
29
+ const totalRemoved = result.removedSkills.length +
30
+ result.removedHooks.length +
31
+ result.removedMcpServers.length;
32
+ console.error(`${prefix} ${totalRemoved} artifact(s) from ${options.target}:`);
33
+ if (result.removedSkills.length > 0) {
34
+ console.error(` Skills: ${result.removedSkills.join(", ")}`);
35
+ }
36
+ if (result.removedHooks.length > 0) {
37
+ console.error(` Hooks: ${result.removedHooks.join(", ")}`);
38
+ }
39
+ if (result.removedMcpServers.length > 0) {
40
+ console.error(` MCP servers: ${result.removedMcpServers.join(", ")}`);
41
+ }
42
+ if (result.mcpConfigPath) {
43
+ console.error(` ${options.dryRun ? "Would update" : "Updated"} ${result.mcpConfigPath}`);
44
+ }
45
+ if (result.settingsPath) {
46
+ console.error(` ${options.dryRun ? "Would update" : "Updated"} ${result.settingsPath}`);
47
+ }
48
+ if (result.manifestRemoved) {
49
+ console.error(` Removed manifest ${result.manifestPath}`);
50
+ }
51
+ else if (!options.dryRun && result.manifestExisted) {
52
+ console.error(` Updated manifest ${result.manifestPath} (kept entries preserved)`);
53
+ }
54
+ console.log(JSON.stringify(result, null, 2));
55
+ }
56
+ catch (err) {
57
+ const message = err instanceof Error ? err.message : "Unknown error";
58
+ console.error(`Error: ${message}`);
59
+ process.exit(1);
60
+ }
61
+ });
62
+ return cmd;
63
+ }
64
+ //# sourceMappingURL=clean.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clean.js","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,UAAU,YAAY;IAC1B,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;SAC7B,WAAW,CACV,uNAAuN,CACxN;SACA,QAAQ,CACP,WAAW,EACX,+EAA+E,CAChF;SACA,MAAM,CACL,gBAAgB,EAChB,6CAA6C,EAC7C,OAAO,CAAC,GAAG,EAAE,CACd;SACA,MAAM,CACL,WAAW,EACX,oDAAoD,CACrD;SACA,MAAM,CACL,eAAe,EACf,gEAAgE,CACjE;SACA,MAAM,CACL,cAAc,EACd,8EAA8E,CAC/E;SACA,MAAM,CACL,YAAY,EACZ,yDAAyD,CAC1D;SACA,MAAM,CACL,iBAAiB,EACjB,oIAAoI,CACrI;SACA,MAAM,CACL,KAAK,EACH,OAA2B,EAC3B,OAOC,EACD,EAAE;QACF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;gBAChC,OAAO;gBACP,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,cAAc,EAAE,OAAO,CAAC,OAAO;aAChC,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;YAE3D,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;gBAC5B,OAAO,CAAC,KAAK,CACX,6BAA6B,OAAO,CAAC,MAAM,qBAAqB,CACjE,CAAC;gBACF,OAAO;YACT,CAAC;YAED,MAAM,YAAY,GAChB,MAAM,CAAC,aAAa,CAAC,MAAM;gBAC3B,MAAM,CAAC,YAAY,CAAC,MAAM;gBAC1B,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC;YAElC,OAAO,CAAC,KAAK,CACX,GAAG,MAAM,IAAI,YAAY,qBAAqB,OAAO,CAAC,MAAM,GAAG,CAChE,CAAC;YAEF,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpC,OAAO,CAAC,KAAK,CAAC,aAAa,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAChE,CAAC;YACD,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnC,OAAO,CAAC,KAAK,CAAC,YAAY,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9D,CAAC;YACD,IAAI,MAAM,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxC,OAAO,CAAC,KAAK,CACX,kBAAkB,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACxD,CAAC;YACJ,CAAC;YAED,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBACzB,OAAO,CAAC,KAAK,CACX,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,aAAa,EAAE,CAC3E,CAAC;YACJ,CAAC;YACD,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBACxB,OAAO,CAAC,KAAK,CACX,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,YAAY,EAAE,CAC1E,CAAC;YACJ,CAAC;YACD,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;gBAC3B,OAAO,CAAC,KAAK,CAAC,sBAAsB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;YAC7D,CAAC;iBAAM,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;gBACrD,OAAO,CAAC,KAAK,CACX,sBAAsB,MAAM,CAAC,YAAY,2BAA2B,CACrE,CAAC;YACJ,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACrE,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CACF,CAAC;IAEJ,OAAO,GAAG,CAAC;AACb,CAAC"}
package/dist/index.js CHANGED
@@ -11,6 +11,7 @@ import { updateCommand } from "./commands/update.js";
11
11
  import { upgradeCommand } from "./commands/upgrade.js";
12
12
  import { exportCommand } from "./commands/export.js";
13
13
  import { resolveCommand } from "./commands/resolve.js";
14
+ import { cleanCommand } from "./commands/clean.js";
14
15
  const require = createRequire(import.meta.url);
15
16
  const { version } = require("../package.json");
16
17
  const program = new Command();
@@ -28,5 +29,6 @@ program.addCommand(updateCommand());
28
29
  program.addCommand(upgradeCommand());
29
30
  program.addCommand(exportCommand());
30
31
  program.addCommand(resolveCommand());
32
+ program.addCommand(cleanCommand());
31
33
  program.parseAsync();
32
34
  //# 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":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAE/C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CAAC,gDAAgD,CAAC;KAC7D,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;AACtC,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;AAErC,OAAO,CAAC,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAE/C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CAAC,gDAAgD,CAAC;KAC7D,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;AACtC,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;AAEnC,OAAO,CAAC,UAAU,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pulsemcp/air-cli",
3
- "version": "0.2.1",
3
+ "version": "0.3.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -26,7 +26,7 @@
26
26
  "lint": "tsc --noEmit"
27
27
  },
28
28
  "dependencies": {
29
- "@pulsemcp/air-sdk": "0.2.1",
29
+ "@pulsemcp/air-sdk": "0.3.0",
30
30
  "commander": "^12.1.0",
31
31
  "chalk": "^5.3.0"
32
32
  },