@pulsemcp/air-cli 0.0.1 → 0.0.3

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,21 @@
1
+ import { Command } from "commander";
2
+ import { type RootEntry } from "@pulsemcp/air-core";
3
+ /**
4
+ * Normalize a git remote URL to a comparable form: "github.com/owner/repo"
5
+ * Handles HTTPS, SSH (git@), and trailing .git.
6
+ */
7
+ export declare function normalizeGitUrl(url: string): string;
8
+ /**
9
+ * Detect which root matches the current git repository and subdirectory.
10
+ *
11
+ * Algorithm:
12
+ * 1. Get the git remote URL and relative subdirectory from targetDir
13
+ * 2. Normalize the URL and compare against all root URLs
14
+ * 3. Among roots with matching URLs, pick the best subdirectory match:
15
+ * - Exact match (root.subdirectory === current subdirectory)
16
+ * - Longest prefix match
17
+ * - Root-level (no subdirectory / empty subdirectory)
18
+ */
19
+ export declare function detectRoot(roots: Record<string, RootEntry>, targetDir: string): RootEntry | undefined;
20
+ export declare function prepareCommand(): Command;
21
+ //# sourceMappingURL=prepare.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepare.d.ts","sourceRoot":"","sources":["../../src/commands/prepare.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAGL,KAAK,SAAS,EACf,MAAM,oBAAoB,CAAC;AAG5B;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAkBnD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAChC,SAAS,EAAE,MAAM,GAChB,SAAS,GAAG,SAAS,CAkEvB;AAED,wBAAgB,cAAc,IAAI,OAAO,CA2GxC"}
@@ -0,0 +1,165 @@
1
+ import { Command } from "commander";
2
+ import { execSync } from "child_process";
3
+ import { resolve } from "path";
4
+ import { getAirJsonPath, resolveArtifacts, } from "@pulsemcp/air-core";
5
+ import { findAdapter, listAvailableAdapters } from "../adapter-registry.js";
6
+ /**
7
+ * Normalize a git remote URL to a comparable form: "github.com/owner/repo"
8
+ * Handles HTTPS, SSH (git@), and trailing .git.
9
+ */
10
+ export function normalizeGitUrl(url) {
11
+ let normalized = url.trim();
12
+ // SSH format: git@github.com:owner/repo.git → github.com/owner/repo
13
+ const sshMatch = normalized.match(/^git@([^:]+):(.+)$/);
14
+ if (sshMatch) {
15
+ normalized = `${sshMatch[1]}/${sshMatch[2]}`;
16
+ }
17
+ else {
18
+ // HTTPS format: https://github.com/owner/repo.git → github.com/owner/repo
19
+ normalized = normalized.replace(/^https?:\/\//, "");
20
+ }
21
+ // Strip trailing .git
22
+ normalized = normalized.replace(/\.git$/, "");
23
+ // Strip trailing slash
24
+ normalized = normalized.replace(/\/$/, "");
25
+ return normalized;
26
+ }
27
+ /**
28
+ * Detect which root matches the current git repository and subdirectory.
29
+ *
30
+ * Algorithm:
31
+ * 1. Get the git remote URL and relative subdirectory from targetDir
32
+ * 2. Normalize the URL and compare against all root URLs
33
+ * 3. Among roots with matching URLs, pick the best subdirectory match:
34
+ * - Exact match (root.subdirectory === current subdirectory)
35
+ * - Longest prefix match
36
+ * - Root-level (no subdirectory / empty subdirectory)
37
+ */
38
+ export function detectRoot(roots, targetDir) {
39
+ let remoteUrl;
40
+ let relativeDir;
41
+ try {
42
+ remoteUrl = execSync("git remote get-url origin", {
43
+ cwd: targetDir,
44
+ stdio: ["pipe", "pipe", "pipe"],
45
+ encoding: "utf-8",
46
+ }).trim();
47
+ }
48
+ catch {
49
+ // Not in a git repo or no remote — can't auto-detect
50
+ return undefined;
51
+ }
52
+ try {
53
+ relativeDir = execSync("git rev-parse --show-prefix", {
54
+ cwd: targetDir,
55
+ stdio: ["pipe", "pipe", "pipe"],
56
+ encoding: "utf-8",
57
+ }).trim();
58
+ // Remove trailing slash
59
+ relativeDir = relativeDir.replace(/\/$/, "");
60
+ }
61
+ catch {
62
+ relativeDir = "";
63
+ }
64
+ const normalizedRemote = normalizeGitUrl(remoteUrl);
65
+ // Find all roots whose URL matches this repo
66
+ const matchingRoots = [];
67
+ for (const root of Object.values(roots)) {
68
+ if (!root.url)
69
+ continue;
70
+ const normalizedRootUrl = normalizeGitUrl(root.url);
71
+ if (normalizedRemote === normalizedRootUrl) {
72
+ matchingRoots.push(root);
73
+ }
74
+ }
75
+ if (matchingRoots.length === 0)
76
+ return undefined;
77
+ // Find best subdirectory match
78
+ // Priority: exact match → longest prefix → root-level (no/empty subdirectory)
79
+ const rootSubdir = (r) => (r.subdirectory || "").replace(/\/$/, "");
80
+ // 1. Exact match
81
+ const exact = matchingRoots.find((r) => rootSubdir(r) === relativeDir);
82
+ if (exact)
83
+ return exact;
84
+ // 2. Longest prefix match (current dir is within root's subdirectory)
85
+ const prefixMatches = matchingRoots
86
+ .filter((r) => {
87
+ const sub = rootSubdir(r);
88
+ if (!sub)
89
+ return false;
90
+ return relativeDir.startsWith(sub + "/") || relativeDir === sub;
91
+ })
92
+ .sort((a, b) => rootSubdir(b).length - rootSubdir(a).length);
93
+ if (prefixMatches.length > 0)
94
+ return prefixMatches[0];
95
+ // 3. Root-level fallback (root with no subdirectory)
96
+ const rootLevel = matchingRoots.find((r) => !rootSubdir(r));
97
+ if (rootLevel)
98
+ return rootLevel;
99
+ // 4. Any matching root as last resort
100
+ return matchingRoots[0];
101
+ }
102
+ export function prepareCommand() {
103
+ const cmd = new Command("prepare")
104
+ .description("Prepare a target directory for an agent session (write .mcp.json, inject skills) without starting the agent")
105
+ .option("--config <path>", "Path to air.json (defaults to AIR_CONFIG env or ~/.air/air.json)")
106
+ .option("--root <name>", "Root to activate (auto-detected from cwd when omitted)")
107
+ .option("--target <dir>", "Target directory to prepare (defaults to cwd)", process.cwd())
108
+ .option("--adapter <name>", "Agent adapter to use (e.g., claude)", "claude")
109
+ .option("--skills <ids>", "Comma-separated skill IDs (overrides root defaults)")
110
+ .option("--mcp-servers <ids>", "Comma-separated MCP server IDs (overrides root defaults)")
111
+ .action(async (options) => {
112
+ // Find the adapter
113
+ const adapter = await findAdapter(options.adapter);
114
+ if (!adapter) {
115
+ const available = await listAvailableAdapters();
116
+ const availableMsg = available.length > 0
117
+ ? `Available: ${available.join(", ")}`
118
+ : "No adapters installed";
119
+ console.error(`Error: No adapter found for "${options.adapter}". ${availableMsg}.`);
120
+ process.exit(1);
121
+ }
122
+ // Resolve air.json path
123
+ const airJsonPath = options.config || getAirJsonPath();
124
+ if (!airJsonPath) {
125
+ console.error("Error: No air.json found. Specify --config or set AIR_CONFIG env var.");
126
+ process.exit(1);
127
+ }
128
+ // Load and resolve all artifacts
129
+ const artifacts = await resolveArtifacts(airJsonPath);
130
+ // Resolve root: explicit --root, auto-detect, or none
131
+ let root;
132
+ if (options.root) {
133
+ root = artifacts.roots[options.root];
134
+ if (!root) {
135
+ console.error(`Error: Root "${options.root}" not found. Available roots: ${Object.keys(artifacts.roots).join(", ") || "(none)"}`);
136
+ process.exit(1);
137
+ }
138
+ }
139
+ else {
140
+ // Auto-detect from target directory's git context
141
+ const targetDir = resolve(options.target);
142
+ root = detectRoot(artifacts.roots, targetDir);
143
+ if (root) {
144
+ console.error(`Auto-detected root: ${root.name}`);
145
+ }
146
+ }
147
+ // Parse overrides
148
+ const skillOverrides = options.skills
149
+ ? options.skills.split(",").map((s) => s.trim())
150
+ : undefined;
151
+ const mcpServerOverrides = options.mcpServers
152
+ ? options.mcpServers.split(",").map((s) => s.trim())
153
+ : undefined;
154
+ // Prepare the session
155
+ const result = await adapter.prepareSession(artifacts, options.target, {
156
+ root,
157
+ skillOverrides,
158
+ mcpServerOverrides,
159
+ });
160
+ // Output structured JSON to stdout for orchestrator consumption
161
+ console.log(JSON.stringify(result, null, 2));
162
+ });
163
+ return cmd;
164
+ }
165
+ //# sourceMappingURL=prepare.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepare.js","sourceRoot":"","sources":["../../src/commands/prepare.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -2,15 +2,17 @@
2
2
  import { Command } from "commander";
3
3
  import { validateCommand } from "./commands/validate.js";
4
4
  import { startCommand } from "./commands/start.js";
5
+ import { prepareCommand } from "./commands/prepare.js";
5
6
  import { listCommand } from "./commands/list.js";
6
7
  import { initCommand } from "./commands/init.js";
7
8
  const program = new Command();
8
9
  program
9
10
  .name("air")
10
11
  .description("AIR \u2014 Agent Infrastructure Repository CLI")
11
- .version("0.0.1");
12
+ .version("0.0.3");
12
13
  program.addCommand(validateCommand());
13
14
  program.addCommand(startCommand());
15
+ program.addCommand(prepareCommand());
14
16
  program.addCommand(listCommand());
15
17
  program.addCommand(initCommand());
16
18
  program.parseAsync();
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,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,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,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,WAAW,EAAE,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;AAElC,OAAO,CAAC,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,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;AAEjD,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;AAElC,OAAO,CAAC,UAAU,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pulsemcp/air-cli",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -26,8 +26,8 @@
26
26
  "lint": "tsc --noEmit"
27
27
  },
28
28
  "dependencies": {
29
- "@pulsemcp/air-core": "0.0.1",
30
- "@pulsemcp/air-adapter-claude": "0.0.1",
29
+ "@pulsemcp/air-core": "0.0.3",
30
+ "@pulsemcp/air-adapter-claude": "0.0.3",
31
31
  "commander": "^12.1.0",
32
32
  "chalk": "^5.3.0"
33
33
  },