@fingerskier/augment 0.1.2 → 0.1.4

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/README.md CHANGED
@@ -46,6 +46,14 @@ Defaults:
46
46
 
47
47
  ## Run Locally
48
48
 
49
+ Show all commands and options:
50
+
51
+ ```powershell
52
+ node .\dist\bin\augment.js help
53
+ ```
54
+
55
+ From the published package: `npx -y @fingerskier/augment help`.
56
+
49
57
  Run diagnostics:
50
58
 
51
59
  ```powershell
@@ -134,29 +142,59 @@ Install the Codex plugin and marketplace entry:
134
142
  npm exec --yes --package @fingerskier/augment -- augment install codex --scope user --memory-root "C:\Users\you\Dropbox\augment-memories"
135
143
  ```
136
144
 
137
- Install Claude instructions:
145
+ Install the Claude plugin:
138
146
 
139
147
  ```powershell
140
148
  npm exec --yes --package @fingerskier/augment -- augment install claude --scope repo --memory-root "C:\Users\you\Dropbox\augment-memories"
141
149
  ```
142
150
 
151
+ `install claude` does five things:
152
+
153
+ - Scaffolds a real Claude Code plugin at `<root>/plugins/augment/`
154
+ (`.claude-plugin/plugin.json`, an auto-discovered `augment-context` skill, and a
155
+ bundled `.mcp.json`).
156
+ - Adds a marketplace entry at `<root>/.claude-plugin/marketplace.json`.
157
+ - **Registers the MCP server directly** so it is active without the marketplace
158
+ step: repo scope writes `<repo>/.mcp.json`; user scope merges into
159
+ `~/.claude.json` (`mcpServers.augment`), preserving every other key.
160
+ - **Best-effort registers the packaged plugin via Claude's own CLI** — it runs
161
+ `claude plugin marketplace add <root>` then
162
+ `claude plugin install augment@<marketplace>` (user scope → `--scope user`;
163
+ repo scope → `--scope project`). If `claude` is not on PATH it skips this and
164
+ prints the manual commands instead. Pass `--no-plugin` to skip it entirely.
165
+ - Upserts the always-on memory-workflow guidance into `CLAUDE.md`.
166
+
167
+ `<root>` is the repo (`--scope repo`) or your home directory (`--scope user`).
168
+ The direct registration is enough on its own — restart Claude Code and the
169
+ `augment` tools appear. The plugin registration is what adds the packaged
170
+ `augment-context` skill to `/plugin list`. If you skipped it (or `claude` was not
171
+ found), run the commands the installer prints, e.g.:
172
+
173
+ ```text
174
+ /plugin marketplace add .
175
+ /plugin install augment@fingerskier-local
176
+ ```
177
+
178
+ Both the direct registration and the plugin register a server named `augment`;
179
+ Claude's scope precedence resolves the duplicate to the higher-precedence one.
180
+
143
181
  Install both:
144
182
 
145
183
  ```powershell
146
184
  npm exec --yes --package @fingerskier/augment -- augment install all --scope user --memory-root "C:\Users\you\Dropbox\augment-memories"
147
185
  ```
148
186
 
149
- Preview writes before changing files:
150
-
151
- ```powershell
152
- npm exec --yes --package @fingerskier/augment -- augment install codex --scope user --dry-run
153
- ```
154
-
155
- The installer configures MCP commands with an isolated npm `--prefix` directory
156
- under `~/.augment/npm-exec` so they work even when launched from this repository.
157
-
158
- Run these package commands from outside this repository. When developing inside
159
- this repo, use `node .\dist\bin\augment.js install ...` after `npm run build`.
187
+ Preview writes before changing files:
188
+
189
+ ```powershell
190
+ npm exec --yes --package @fingerskier/augment -- augment install codex --scope user --dry-run
191
+ ```
192
+
193
+ The installer configures MCP commands with an isolated npm `--prefix` directory
194
+ under `~/.augment/npm-exec` so they work even when launched from this repository.
195
+
196
+ Run these package commands from outside this repository. When developing inside
197
+ this repo, use `node .\dist\bin\augment.js install ...` after `npm run build`.
160
198
 
161
199
  ## Package Check
162
200
 
package/dist/cli.d.ts CHANGED
@@ -1 +1,3 @@
1
1
  export declare function runCli(args: string[]): Promise<void>;
2
+ /** Human-readable usage shown by `augment help`, `--help`, `-h`, and on unknown commands. */
3
+ export declare function helpText(): string;
package/dist/cli.js CHANGED
@@ -1,7 +1,11 @@
1
1
  import { loadConfig } from "./config.js";
2
- import { installIntegration } from "./install.js";
2
+ import { defaultClaudeRunner, installIntegration } from "./install.js";
3
3
  export async function runCli(args) {
4
4
  const command = args[0] ?? "status";
5
+ if (command === "help" || command === "--help" || command === "-h") {
6
+ console.log(helpText());
7
+ return;
8
+ }
5
9
  if (command === "config" || command === "status") {
6
10
  const config = await loadConfig();
7
11
  console.log(JSON.stringify(config, null, 2));
@@ -9,7 +13,7 @@ export async function runCli(args) {
9
13
  }
10
14
  if (command === "install") {
11
15
  const parsed = parseInstallArgs(args.slice(1));
12
- const plan = await installIntegration(parsed);
16
+ const plan = await installIntegration({ ...parsed, runClaude: defaultClaudeRunner });
13
17
  for (const line of plan.summary) {
14
18
  console.log(line);
15
19
  }
@@ -19,17 +23,53 @@ export async function runCli(args) {
19
23
  return;
20
24
  }
21
25
  console.error(`Unknown command: ${command}`);
22
- console.error("Usage: augment [status|config|install <codex|claude|all>]");
26
+ console.error("");
27
+ console.error(helpText());
23
28
  process.exitCode = 1;
24
29
  }
30
+ /** Human-readable usage shown by `augment help`, `--help`, `-h`, and on unknown commands. */
31
+ export function helpText() {
32
+ return [
33
+ "augment — local RAG memory for coding agents",
34
+ "",
35
+ "USAGE",
36
+ " augment <command> [options]",
37
+ "",
38
+ "COMMANDS",
39
+ " status Print the resolved configuration (default command).",
40
+ " config Alias for status.",
41
+ " install <target> Install an agent integration (see below).",
42
+ " help Show this help (also --help, -h).",
43
+ "",
44
+ "INSTALL",
45
+ " augment install <codex|claude|all> [options]",
46
+ "",
47
+ " Options:",
48
+ " --scope user|repo Install for the user (home) or the current repo. Default: user.",
49
+ " --memory-root PATH Set the shared memory root in the generated MCP config.",
50
+ " --dry-run Print what would change without writing files.",
51
+ " --no-plugin Skip the best-effort `claude plugin` registration (claude only).",
52
+ "",
53
+ "RUN FROM npm (outside this repo)",
54
+ " npx -y @fingerskier/augment install claude --scope user --memory-root \"C:\\Users\\you\\Dropbox\\augment-memories\"",
55
+ " npm exec --yes --package @fingerskier/augment -- augment install codex --scope repo",
56
+ " npm exec --yes --package @fingerskier/augment -- augment install all --scope user --dry-run",
57
+ "",
58
+ " Inside this repo, build first then call the compiled bin:",
59
+ " npm run build && node ./dist/bin/augment.js install claude --scope repo",
60
+ "",
61
+ "Docs: https://www.npmjs.com/package/@fingerskier/augment",
62
+ ].join("\n");
63
+ }
25
64
  function parseInstallArgs(args) {
26
65
  const target = args[0];
27
66
  if (!target || !["codex", "claude", "all"].includes(target)) {
28
- throw new Error("Usage: augment install <codex|claude|all> [--scope user|repo] [--memory-root PATH] [--dry-run]");
67
+ throw new Error("Usage: augment install <codex|claude|all> [--scope user|repo] [--memory-root PATH] [--dry-run] [--no-plugin]");
29
68
  }
30
69
  let scope = "user";
31
70
  let memoryRoot;
32
71
  let dryRun = false;
72
+ let noPlugin = false;
33
73
  for (let index = 1; index < args.length; index += 1) {
34
74
  const arg = args[index];
35
75
  if (arg === "--scope") {
@@ -48,6 +88,9 @@ function parseInstallArgs(args) {
48
88
  else if (arg === "--dry-run") {
49
89
  dryRun = true;
50
90
  }
91
+ else if (arg === "--no-plugin") {
92
+ noPlugin = true;
93
+ }
51
94
  else {
52
95
  throw new Error(`Unknown install option: ${arg}`);
53
96
  }
@@ -57,6 +100,7 @@ function parseInstallArgs(args) {
57
100
  scope,
58
101
  memoryRoot,
59
102
  dryRun,
103
+ noPlugin,
60
104
  };
61
105
  }
62
106
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAyC,MAAM,cAAc,CAAC;AAEzF,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAc;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;IAEpC,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC9C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO;IACT,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC3E,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAc;IAMtC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAA8B,CAAC;IACpD,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,gGAAgG,CAAC,CAAC;IACpH,CAAC;IAED,IAAI,KAAK,GAAiB,MAAM,CAAC;IACjC,IAAI,UAA8B,CAAC;IACnC,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,KAAK,CAA6B,CAAC;YACxD,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBACzC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAClD,CAAC;YACD,KAAK,GAAG,KAAK,CAAC;QAChB,CAAC;aAAM,IAAI,GAAG,KAAK,eAAe,EAAE,CAAC;YACnC,UAAU,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;YAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YAC/B,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM;QACN,KAAK;QACL,UAAU;QACV,MAAM;KACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/install.d.ts CHANGED
@@ -1,5 +1,13 @@
1
1
  export type InstallTarget = "codex" | "claude" | "all";
2
2
  export type InstallScope = "user" | "repo";
3
+ export interface ClaudeCommandResult {
4
+ /** Whether the `claude` executable was found on PATH. */
5
+ available: boolean;
6
+ /** Whether the command exited successfully (exit code 0). */
7
+ ok: boolean;
8
+ }
9
+ /** Runs a `claude` CLI command. Injected so installs stay side-effect-free in tests. */
10
+ export type ClaudeCommandRunner = (command: string, args: string[]) => Promise<ClaudeCommandResult>;
3
11
  export interface InstallOptions {
4
12
  target: InstallTarget;
5
13
  scope: InstallScope;
@@ -7,9 +15,19 @@ export interface InstallOptions {
7
15
  dryRun?: boolean;
8
16
  cwd?: string;
9
17
  home?: string;
18
+ /** Skip the best-effort `claude plugin` marketplace+install registration. */
19
+ noPlugin?: boolean;
20
+ /** Runner used to invoke the `claude` CLI. When omitted, registration is not executed (manual fallback). */
21
+ runClaude?: ClaudeCommandRunner;
10
22
  }
11
23
  export interface InstallPlan {
12
24
  summary: string[];
13
25
  files: string[];
14
26
  }
15
27
  export declare function installIntegration(options: InstallOptions): Promise<InstallPlan>;
28
+ /**
29
+ * Real `claude` CLI runner used by the command line. Detects availability with which/where so
30
+ * "not found" is distinguishable from "ran but failed", then runs through a shell on Windows so
31
+ * `.cmd`/`.ps1` shims resolve. Output is suppressed; only availability + exit status matter.
32
+ */
33
+ export declare const defaultClaudeRunner: ClaudeCommandRunner;
package/dist/install.js CHANGED
@@ -1,9 +1,13 @@
1
+ import { spawn } from "node:child_process";
1
2
  import { mkdir, readFile, writeFile } from "node:fs/promises";
2
3
  import { homedir } from "node:os";
3
4
  import path from "node:path";
4
5
  import { fileURLToPath } from "node:url";
5
6
  const PLUGIN_NAME = "augment";
6
- const CODEX_SKILL_NAME = "augment-context";
7
+ const SKILL_NAME = "augment-context";
8
+ const PLUGIN_DESCRIPTION = "Local RAG memory for coding agents.";
9
+ const PLUGIN_AUTHOR = "fingerskier";
10
+ const PLUGIN_HOMEPAGE = "https://www.npmjs.com/package/@fingerskier/augment";
7
11
  const BEGIN_MARKER = "<!-- augment:start -->";
8
12
  const END_MARKER = "<!-- augment:end -->";
9
13
  export async function installIntegration(options) {
@@ -32,11 +36,7 @@ async function installCodex(options) {
32
36
  const skill = await readTemplate("integrations/codex/SKILL.md");
33
37
  const mcpConfig = {
34
38
  mcpServers: {
35
- augment: {
36
- command: "npm",
37
- args: augmentMcpArgs(paths.npmExecPrefix),
38
- env: envConfig(options.memoryRoot),
39
- },
39
+ augment: mcpServerConfig(paths.npmExecPrefix, options.memoryRoot),
40
40
  },
41
41
  };
42
42
  const pluginJson = {
@@ -88,8 +88,138 @@ async function installCodex(options) {
88
88
  };
89
89
  }
90
90
  async function installClaude(options) {
91
- const npmExecPrefix = sharedNpmExecPrefix(options.home);
92
- const targetPath = options.scope === "user" ? path.join(options.home, ".claude", "CLAUDE.md") : path.join(options.cwd, "CLAUDE.md");
91
+ const paths = claudePaths(options);
92
+ const packageInfo = await readPackageInfo();
93
+ const skill = await readTemplate("integrations/codex/SKILL.md");
94
+ const server = mcpServerConfig(paths.npmExecPrefix, options.memoryRoot);
95
+ // Bundled Claude plugin (metadata only — Claude auto-discovers skills/ and .mcp.json).
96
+ const pluginJson = buildClaudePluginJson(packageInfo);
97
+ const mcpConfig = { mcpServers: { augment: server } };
98
+ const marketplace = await updateClaudeMarketplace(paths.marketplacePath, paths.marketplaceName, packageInfo.version);
99
+ // Direct registration so the server is active without the marketplace dance:
100
+ // repo scope -> project .mcp.json; user scope -> ~/.claude.json top-level mcpServers.
101
+ const directExisting = await readOptionalJson(paths.directConfigPath);
102
+ const directConfig = mergeMcpServers(directExisting, server);
103
+ // Always-on behavioral guidance lives in a marked CLAUDE.md block.
104
+ const claudeMd = await buildClaudeMdBlock(paths.claudeMdPath, server);
105
+ const writes = [
106
+ writePlan(paths.pluginJsonPath, jsonText(pluginJson)),
107
+ writePlan(paths.mcpConfigPath, jsonText(mcpConfig)),
108
+ writePlan(paths.skillPath, skill),
109
+ writePlan(paths.marketplacePath, jsonText(marketplace)),
110
+ writePlan(paths.directConfigPath, jsonText(directConfig)),
111
+ writePlan(paths.claudeMdPath, claudeMd),
112
+ ];
113
+ if (!options.dryRun) {
114
+ await mkdir(paths.npmExecPrefix, { recursive: true });
115
+ for (const write of writes) {
116
+ await writeFileEnsured(write.file, write.content);
117
+ }
118
+ }
119
+ const installVerb = options.dryRun ? "Would install" : "Installed";
120
+ const registerVerb = options.dryRun ? "Would register" : "Registered";
121
+ // Best-effort: register the packaged plugin via Claude's own CLI (correct cache + catalog handling).
122
+ const registrationSummary = await registerClaudePlugin(options, paths);
123
+ return {
124
+ summary: [
125
+ `${installVerb} Claude plugin '${PLUGIN_NAME}' (${options.scope} scope).`,
126
+ `${registerVerb} the augment MCP server in ${paths.directConfigPath}.`,
127
+ ...registrationSummary,
128
+ ],
129
+ files: writes.map((write) => write.file),
130
+ };
131
+ }
132
+ /**
133
+ * Drives `claude plugin marketplace add` + `claude plugin install` through the injected runner.
134
+ * Stays a no-op (manual instructions only) when dry-running, when --no-plugin is set, when no
135
+ * runner is supplied, or when the `claude` CLI is not on PATH.
136
+ */
137
+ async function registerClaudePlugin(options, paths) {
138
+ const claudeScope = options.scope === "repo" ? "project" : "user";
139
+ const marketplaceArgs = ["plugin", "marketplace", "add", paths.root, "--scope", claudeScope];
140
+ const installArgs = ["plugin", "install", `${PLUGIN_NAME}@${paths.marketplaceName}`, "--scope", claudeScope];
141
+ const manual = `To register the packaged plugin: /plugin marketplace add ${paths.root} ` +
142
+ `then /plugin install ${PLUGIN_NAME}@${paths.marketplaceName}.`;
143
+ if (options.noPlugin || !options.runClaude) {
144
+ return [manual];
145
+ }
146
+ if (options.dryRun) {
147
+ return [`Would register the plugin via claude CLI: claude ${marketplaceArgs.join(" ")} && claude ${installArgs.join(" ")}.`];
148
+ }
149
+ const added = await options.runClaude("claude", marketplaceArgs);
150
+ if (!added.available) {
151
+ return [`claude CLI not found on PATH — ${manual}`];
152
+ }
153
+ const installed = await options.runClaude("claude", installArgs);
154
+ if (added.ok && installed.ok) {
155
+ return [
156
+ `Registered the augment plugin via claude CLI (marketplace '${paths.marketplaceName}', ${claudeScope} scope).`,
157
+ ];
158
+ }
159
+ return [
160
+ `Plugin registration via claude CLI incomplete ` +
161
+ `(marketplace add ${added.ok ? "ok" : "failed"}, install ${installed.ok ? "ok" : "failed"}) — ${manual}`,
162
+ ];
163
+ }
164
+ function claudePaths(options) {
165
+ const root = options.scope === "repo" ? options.cwd : options.home;
166
+ const pluginRoot = path.join(root, "plugins", PLUGIN_NAME);
167
+ return {
168
+ root,
169
+ pluginRoot,
170
+ pluginJsonPath: path.join(pluginRoot, ".claude-plugin", "plugin.json"),
171
+ mcpConfigPath: path.join(pluginRoot, ".mcp.json"),
172
+ skillPath: path.join(pluginRoot, "skills", SKILL_NAME, "SKILL.md"),
173
+ marketplacePath: path.join(root, ".claude-plugin", "marketplace.json"),
174
+ marketplaceName: options.scope === "repo" ? "fingerskier-local" : "fingerskier",
175
+ directConfigPath: options.scope === "repo" ? path.join(options.cwd, ".mcp.json") : path.join(options.home, ".claude.json"),
176
+ claudeMdPath: options.scope === "user" ? path.join(options.home, ".claude", "CLAUDE.md") : path.join(options.cwd, "CLAUDE.md"),
177
+ npmExecPrefix: sharedNpmExecPrefix(options.home),
178
+ };
179
+ }
180
+ function buildClaudePluginJson(packageInfo) {
181
+ return {
182
+ name: PLUGIN_NAME,
183
+ description: PLUGIN_DESCRIPTION,
184
+ version: packageInfo.version,
185
+ author: { name: PLUGIN_AUTHOR },
186
+ homepage: PLUGIN_HOMEPAGE,
187
+ license: "Apache-2.0",
188
+ keywords: ["mcp", "memory", "rag", "claude"],
189
+ };
190
+ }
191
+ async function updateClaudeMarketplace(marketplacePath, marketplaceName, version) {
192
+ const existing = await readOptionalJson(marketplacePath);
193
+ const marketplace = existing ?? {
194
+ name: marketplaceName,
195
+ owner: { name: PLUGIN_AUTHOR },
196
+ plugins: [],
197
+ };
198
+ marketplace.name ??= marketplaceName;
199
+ marketplace.owner ??= { name: PLUGIN_AUTHOR };
200
+ marketplace.plugins ??= [];
201
+ const entry = {
202
+ name: PLUGIN_NAME,
203
+ source: `./plugins/${PLUGIN_NAME}`,
204
+ description: PLUGIN_DESCRIPTION,
205
+ version,
206
+ };
207
+ const index = marketplace.plugins.findIndex((plugin) => plugin.name === PLUGIN_NAME);
208
+ if (index >= 0) {
209
+ marketplace.plugins[index] = entry;
210
+ }
211
+ else {
212
+ marketplace.plugins.push(entry);
213
+ }
214
+ return marketplace;
215
+ }
216
+ function mergeMcpServers(existing, server) {
217
+ const base = existing && typeof existing === "object" ? existing : {};
218
+ const current = base.mcpServers;
219
+ const servers = current && typeof current === "object" ? current : {};
220
+ return { ...base, mcpServers: { ...servers, [PLUGIN_NAME]: server } };
221
+ }
222
+ async function buildClaudeMdBlock(targetPath, server) {
93
223
  const template = await readTemplate("integrations/claude/CLAUDE.md");
94
224
  const block = [
95
225
  BEGIN_MARKER,
@@ -101,30 +231,14 @@ async function installClaude(options) {
101
231
  "Add this to Claude's MCP configuration (`.mcp.json` at the repo root, or `~/.claude.json`):",
102
232
  "",
103
233
  "```json",
104
- JSON.stringify({
105
- mcpServers: {
106
- augment: {
107
- command: "npm",
108
- args: augmentMcpArgs(npmExecPrefix),
109
- env: envConfig(options.memoryRoot),
110
- },
111
- },
112
- }, null, 2),
234
+ JSON.stringify({ mcpServers: { augment: server } }, null, 2),
113
235
  "```",
114
236
  "",
115
237
  END_MARKER,
116
238
  "",
117
239
  ].join("\n");
118
240
  const existing = await readOptional(targetPath);
119
- const content = upsertMarkedBlock(existing, block);
120
- if (!options.dryRun) {
121
- await mkdir(npmExecPrefix, { recursive: true });
122
- await writeFileEnsured(targetPath, content);
123
- }
124
- return {
125
- summary: [`${options.dryRun ? "Would install" : "Installed"} Claude instructions (${options.scope} scope).`],
126
- files: [targetPath],
127
- };
241
+ return upsertMarkedBlock(existing, block);
128
242
  }
129
243
  function codexPaths(options) {
130
244
  if (options.scope === "repo") {
@@ -133,7 +247,7 @@ function codexPaths(options) {
133
247
  pluginRoot,
134
248
  pluginJsonPath: path.join(pluginRoot, ".codex-plugin", "plugin.json"),
135
249
  mcpConfigPath: path.join(pluginRoot, ".mcp.json"),
136
- skillPath: path.join(pluginRoot, "skills", CODEX_SKILL_NAME, "SKILL.md"),
250
+ skillPath: path.join(pluginRoot, "skills", SKILL_NAME, "SKILL.md"),
137
251
  marketplacePath: path.join(options.cwd, ".agents", "plugins", "marketplace.json"),
138
252
  marketplaceName: "local-repo",
139
253
  npmExecPrefix: sharedNpmExecPrefix(options.home),
@@ -144,7 +258,7 @@ function codexPaths(options) {
144
258
  pluginRoot,
145
259
  pluginJsonPath: path.join(pluginRoot, ".codex-plugin", "plugin.json"),
146
260
  mcpConfigPath: path.join(pluginRoot, ".mcp.json"),
147
- skillPath: path.join(pluginRoot, "skills", CODEX_SKILL_NAME, "SKILL.md"),
261
+ skillPath: path.join(pluginRoot, "skills", SKILL_NAME, "SKILL.md"),
148
262
  marketplacePath: path.join(options.home, ".agents", "plugins", "marketplace.json"),
149
263
  marketplaceName: "personal",
150
264
  npmExecPrefix: sharedNpmExecPrefix(options.home),
@@ -153,9 +267,52 @@ function codexPaths(options) {
153
267
  function sharedNpmExecPrefix(home) {
154
268
  return path.join(home, ".augment", "npm-exec");
155
269
  }
270
+ /**
271
+ * Real `claude` CLI runner used by the command line. Detects availability with which/where so
272
+ * "not found" is distinguishable from "ran but failed", then runs through a shell on Windows so
273
+ * `.cmd`/`.ps1` shims resolve. Output is suppressed; only availability + exit status matter.
274
+ */
275
+ export const defaultClaudeRunner = async (command, args) => {
276
+ if (!(await probeAvailable(command))) {
277
+ return { available: false, ok: false };
278
+ }
279
+ const ok = await runToExit(command, args);
280
+ return { available: true, ok };
281
+ };
282
+ function probeAvailable(command) {
283
+ const probe = process.platform === "win32" ? "where" : "which";
284
+ return new Promise((resolve) => {
285
+ const child = spawn(probe, [command], { stdio: "ignore", shell: process.platform === "win32" });
286
+ child.on("error", () => resolve(false));
287
+ child.on("close", (code) => resolve(code === 0));
288
+ });
289
+ }
290
+ function runToExit(command, args) {
291
+ return new Promise((resolve) => {
292
+ const useShell = process.platform === "win32";
293
+ const child = useShell
294
+ ? spawn([command, ...args.map(shellQuote)].join(" "), [], { stdio: "ignore", shell: true })
295
+ : spawn(command, args, { stdio: "ignore" });
296
+ child.on("error", () => resolve(false));
297
+ child.on("close", (code) => resolve(code === 0));
298
+ });
299
+ }
300
+ function shellQuote(value) {
301
+ return /[\s"]/.test(value) ? `"${value.replace(/"/g, '\\"')}"` : value;
302
+ }
156
303
  function augmentMcpArgs(prefix) {
157
304
  return ["exec", "--yes", "--prefix", prefix, "--package", "@fingerskier/augment", "--", "augment-mcp"];
158
305
  }
306
+ function mcpServerConfig(npmExecPrefix, memoryRoot) {
307
+ return {
308
+ command: "npm",
309
+ args: augmentMcpArgs(npmExecPrefix),
310
+ env: envConfig(memoryRoot),
311
+ };
312
+ }
313
+ function jsonText(value) {
314
+ return `${JSON.stringify(value, null, 2)}\n`;
315
+ }
159
316
  async function updateMarketplace(marketplacePath, marketplaceName) {
160
317
  const existing = await readOptionalJson(marketplacePath);
161
318
  const marketplace = existing ?? {
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
package/docs/FEATURES.md CHANGED
@@ -246,17 +246,32 @@ npm exec --yes --package @fingerskier/augment -- augment install claude --scope
246
246
  npm exec --yes --package @fingerskier/augment -- augment install all --scope user --dry-run
247
247
  ```
248
248
 
249
- Codex install creates or updates:
250
-
251
- - A local plugin folder named `augment`.
252
- - `.codex-plugin/plugin.json`.
253
- - `.mcp.json` pointing to the published `@fingerskier/augment` package through
254
- an isolated npm `--prefix` directory.
255
- - `skills/augment-context/SKILL.md`.
256
- - A personal or repo marketplace entry.
257
-
258
- Claude install creates or updates a marked Augment block in `CLAUDE.md` with the
259
- same cwd-safe MCP command shape.
249
+ Codex install creates or updates:
250
+
251
+ - A local plugin folder named `augment`.
252
+ - `.codex-plugin/plugin.json`.
253
+ - `.mcp.json` pointing to the published `@fingerskier/augment` package through
254
+ an isolated npm `--prefix` directory.
255
+ - `skills/augment-context/SKILL.md`.
256
+ - A personal or repo marketplace entry.
257
+
258
+ Claude install creates or updates:
259
+
260
+ - A real Claude Code plugin folder named `augment` with
261
+ `.claude-plugin/plugin.json`, an auto-discovered `skills/augment-context/SKILL.md`,
262
+ and a bundled `.mcp.json` (same cwd-safe MCP command shape as Codex).
263
+ - A `.claude-plugin/marketplace.json` entry so the plugin is installable via
264
+ `/plugin marketplace add` + `/plugin install augment@<marketplace>`.
265
+ - A direct MCP registration so the server is active immediately: repo scope writes
266
+ `<repo>/.mcp.json`; user scope merges `mcpServers.augment` into `~/.claude.json`,
267
+ preserving all other keys.
268
+ - A best-effort plugin registration through Claude's own CLI — it shells out to
269
+ `claude plugin marketplace add <root>` and `claude plugin install augment@<marketplace>`
270
+ (mapping `--scope repo` to Claude's `project` scope). This uses Claude's official
271
+ install path (cache + catalog) rather than hand-writing Claude's internal plugin
272
+ state. It is skipped when `claude` is not on PATH, on `--dry-run`, or with
273
+ `--no-plugin`, falling back to printing the manual `/plugin` commands.
274
+ - A marked Augment block in `CLAUDE.md` carrying the always-on memory workflow.
260
275
 
261
276
  ## Deferred
262
277
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fingerskier/augment",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "Local RAG memory system for coding agents",
5
5
  "type": "module",
6
6
  "publishConfig": {