@nex-ai/nex 0.1.8 → 0.1.9

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.
Files changed (59) hide show
  1. package/README.md +5 -1
  2. package/dist/commands/setup.d.ts +2 -1
  3. package/dist/commands/setup.js +51 -9
  4. package/dist/commands/setup.js.map +1 -1
  5. package/dist/lib/installers.d.ts +2 -2
  6. package/dist/lib/installers.js +55 -64
  7. package/dist/lib/installers.js.map +1 -1
  8. package/dist/plugin/auto-capture.d.ts +11 -0
  9. package/dist/plugin/auto-capture.js +135 -0
  10. package/dist/plugin/auto-capture.js.map +1 -0
  11. package/dist/plugin/auto-recall.d.ts +11 -0
  12. package/dist/plugin/auto-recall.js +111 -0
  13. package/dist/plugin/auto-recall.js.map +1 -0
  14. package/dist/plugin/auto-register.d.ts +10 -0
  15. package/dist/plugin/auto-register.js +53 -0
  16. package/dist/plugin/auto-register.js.map +1 -0
  17. package/dist/plugin/auto-scan.d.ts +10 -0
  18. package/dist/plugin/auto-scan.js +49 -0
  19. package/dist/plugin/auto-scan.js.map +1 -0
  20. package/dist/plugin/auto-session-start.d.ts +14 -0
  21. package/dist/plugin/auto-session-start.js +146 -0
  22. package/dist/plugin/auto-session-start.js.map +1 -0
  23. package/dist/plugin/capture-filter.d.ts +21 -0
  24. package/dist/plugin/capture-filter.js +32 -0
  25. package/dist/plugin/capture-filter.js.map +1 -0
  26. package/dist/plugin/config.d.ts +54 -0
  27. package/dist/plugin/config.js +166 -0
  28. package/dist/plugin/config.js.map +1 -0
  29. package/dist/plugin/context-files.d.ts +23 -0
  30. package/dist/plugin/context-files.js +103 -0
  31. package/dist/plugin/context-files.js.map +1 -0
  32. package/dist/plugin/context-format.d.ts +18 -0
  33. package/dist/plugin/context-format.js +34 -0
  34. package/dist/plugin/context-format.js.map +1 -0
  35. package/dist/plugin/file-manifest.d.ts +21 -0
  36. package/dist/plugin/file-manifest.js +48 -0
  37. package/dist/plugin/file-manifest.js.map +1 -0
  38. package/dist/plugin/file-scanner.d.ts +19 -0
  39. package/dist/plugin/file-scanner.js +90 -0
  40. package/dist/plugin/file-scanner.js.map +1 -0
  41. package/dist/plugin/nex-client.d.ts +50 -0
  42. package/dist/plugin/nex-client.js +129 -0
  43. package/dist/plugin/nex-client.js.map +1 -0
  44. package/dist/plugin/rate-limiter.d.ts +26 -0
  45. package/dist/plugin/rate-limiter.js +65 -0
  46. package/dist/plugin/rate-limiter.js.map +1 -0
  47. package/dist/plugin/recall-filter.d.ts +23 -0
  48. package/dist/plugin/recall-filter.js +94 -0
  49. package/dist/plugin/recall-filter.js.map +1 -0
  50. package/dist/plugin/session-store.d.ts +23 -0
  51. package/dist/plugin/session-store.js +74 -0
  52. package/dist/plugin/session-store.js.map +1 -0
  53. package/package.json +2 -1
  54. package/plugin-commands/entities.md +18 -0
  55. package/plugin-commands/integrate.md +34 -0
  56. package/plugin-commands/recall.md +5 -0
  57. package/plugin-commands/register.md +28 -0
  58. package/plugin-commands/remember.md +5 -0
  59. package/plugin-commands/scan.md +8 -0
package/README.md CHANGED
@@ -57,19 +57,23 @@ All MCP-based platforms use the same server entry:
57
57
  ## Setup Command
58
58
 
59
59
  ```bash
60
- nex setup # Auto-detect platforms, install Claude Code plugin, create .nex.toml
60
+ nex setup # Auto-detect platforms, install plugin, scan files, create .nex.toml
61
61
  nex setup --with-mcp # Also write MCP config to all detected platforms
62
62
  nex setup --platform cursor # Install for a specific platform only
63
63
  nex setup --no-plugin # Only create config files, skip hooks/commands
64
+ nex setup --no-scan # Skip file scanning during setup
64
65
  nex setup status # Show all platforms, install status, and connections
65
66
  ```
66
67
 
67
68
  **Default behavior** (no flags):
68
69
  - Claude Code: installs hooks + slash commands (no MCP — avoids filling context windows)
69
70
  - Other platforms: detected but MCP not written until `--with-mcp` is passed
71
+ - Scans current directory and ingests new/changed files into Nex
70
72
  - Creates `.nex.toml` project config with commented defaults
71
73
  - Syncs API key to `~/.nex-mcp.json` (shared config)
72
74
 
75
+ **Single install**: `npm install -g @nex-ai/nex` bundles everything — the Claude Code plugin hooks, slash commands, and MCP server are all included. No separate packages needed.
76
+
73
77
  > **Tip:** AI agents don't automatically know about Nex. Explicitly tell your agent to "use Nex for context and memory" in your prompts or CLAUDE.md instructions.
74
78
 
75
79
  ## Project Config: `.nex.toml`
@@ -1,10 +1,11 @@
1
1
  /**
2
2
  * `nex setup` command — detect platforms, install plugin/MCP, create .nex.toml.
3
3
  *
4
- * nex setup Interactive: detect → install plugin + config
4
+ * nex setup Interactive: detect → install plugin + scan files + config
5
5
  * nex setup --platform <name> Direct install for specific platform
6
6
  * nex setup --with-mcp Also install MCP server
7
7
  * nex setup --no-plugin Skip hooks/commands, only config files
8
+ * nex setup --no-scan Skip file scanning during setup
8
9
  * nex setup status Show install status + integration connections
9
10
  */
10
11
  export {};
@@ -1,10 +1,11 @@
1
1
  /**
2
2
  * `nex setup` command — detect platforms, install plugin/MCP, create .nex.toml.
3
3
  *
4
- * nex setup Interactive: detect → install plugin + config
4
+ * nex setup Interactive: detect → install plugin + scan files + config
5
5
  * nex setup --platform <name> Direct install for specific platform
6
6
  * nex setup --with-mcp Also install MCP server
7
7
  * nex setup --no-plugin Skip hooks/commands, only config files
8
+ * nex setup --no-scan Skip file scanning during setup
8
9
  * nex setup status Show install status + integration connections
9
10
  */
10
11
  import { existsSync } from "node:fs";
@@ -17,6 +18,7 @@ import { confirm, ask } from "../lib/prompt.js";
17
18
  import { detectPlatforms, getPlatformById, VALID_PLATFORM_IDS } from "../lib/platform-detect.js";
18
19
  import { installMcpServer, installClaudeCodePlugin, syncApiKeyToMcpConfig } from "../lib/installers.js";
19
20
  import { writeDefaultProjectConfig } from "../lib/project-config.js";
21
+ import { scanFiles, loadScanConfig, isScanEnabled } from "../lib/file-scanner.js";
20
22
  function getClient() {
21
23
  const opts = program.opts();
22
24
  const client = new NexClient(resolveApiKey(opts.apiKey), resolveTimeout(opts.timeout));
@@ -125,8 +127,21 @@ async function runSetup(opts) {
125
127
  process.stderr.write("\nNo API key found. Let's set up your Nex account.\n\n");
126
128
  const wantsRegister = await confirm("Register a new Nex workspace?");
127
129
  if (!wantsRegister) {
128
- printError("Setup requires an API key. Run `nex register --email <email>` or set NEX_API_KEY.");
129
- process.exit(2);
130
+ process.stderr.write("\nSetup complete, but no API key configured.\n\n");
131
+ process.stderr.write("To use Nex, set your API key in one of these locations:\n");
132
+ process.stderr.write(' 1. Environment variable: export NEX_API_KEY="sk-..."\n');
133
+ process.stderr.write(' 2. Global config: ~/.nex-mcp.json → {"api_key": "sk-..."}\n');
134
+ process.stderr.write(' 3. Project config: .nex.toml → [auth] api_key = "sk-..."\n');
135
+ process.stderr.write("\nGet an API key: nex register --email you@company.com\n\n");
136
+ // Still install plugin hooks/commands (they'll gracefully degrade without a key)
137
+ const platforms = detectPlatforms().filter((p) => p.detected);
138
+ for (const platform of platforms) {
139
+ if (platform.id === "claude-code" && !opts.noPlugin) {
140
+ installClaudeCodePlugin();
141
+ }
142
+ }
143
+ writeDefaultProjectConfig();
144
+ return;
130
145
  }
131
146
  const email = await ask("Email (required):", true);
132
147
  const name = await ask("Name (optional):");
@@ -170,12 +185,12 @@ async function runSetup(opts) {
170
185
  else {
171
186
  results.push("Claude Code: hooks already configured");
172
187
  }
173
- if (result.commandsLinked.length > 0) {
174
- results.push(`Claude Code: commands linked (${result.commandsLinked.join(", ")})`);
188
+ if (result.commandsCopied.length > 0) {
189
+ results.push(`Claude Code: commands installed (${result.commandsCopied.join(", ")})`);
175
190
  }
176
191
  }
177
192
  else {
178
- results.push("Claude Code: plugin directory not found — install @nex-crm/claude-code-nex-plugin");
193
+ results.push("Claude Code: bundled plugin not found — reinstall @nex-ai/nex");
179
194
  }
180
195
  }
181
196
  // MCP server — only with --with-mcp
@@ -204,7 +219,32 @@ async function runSetup(opts) {
204
219
  else {
205
220
  results.push(".nex.toml already exists");
206
221
  }
207
- // 6. Output results
222
+ // 6. Scan and ingest project files (requires API key)
223
+ if (!opts.noScan && apiKey && isScanEnabled()) {
224
+ if (opts.format !== "json") {
225
+ process.stderr.write("\nScanning project files...\n");
226
+ }
227
+ const scanOpts = loadScanConfig();
228
+ const client = new NexClient(apiKey, resolveTimeout(globalOpts.timeout));
229
+ try {
230
+ const scanResult = await scanFiles(process.cwd(), scanOpts, async (content, context) => {
231
+ return client.post("/v1/context/text", { content, context });
232
+ });
233
+ if (scanResult.scanned > 0) {
234
+ results.push(`File scan: ${scanResult.scanned} files ingested, ${scanResult.skipped} skipped, ${scanResult.errors} errors`);
235
+ }
236
+ else if (scanResult.skipped > 0) {
237
+ results.push(`File scan: all ${scanResult.skipped} files already up to date`);
238
+ }
239
+ else {
240
+ results.push("File scan: no eligible files found in current directory");
241
+ }
242
+ }
243
+ catch (err) {
244
+ results.push(`File scan: failed — ${err instanceof Error ? err.message : String(err)}`);
245
+ }
246
+ }
247
+ // 7. Output results
208
248
  if (opts.format === "json") {
209
249
  printOutput({
210
250
  platforms: targetPlatforms.map((p) => ({
@@ -222,7 +262,7 @@ async function runSetup(opts) {
222
262
  }
223
263
  process.stderr.write("\n");
224
264
  }
225
- // 7. Show status
265
+ // 8. Show status
226
266
  if (opts.format !== "json") {
227
267
  await showStatus(opts.format);
228
268
  }
@@ -246,13 +286,15 @@ const setup = program
246
286
  .option("--platform <name>", `Target platform: ${VALID_PLATFORM_IDS.join(", ")}`)
247
287
  .option("--with-mcp", "Also install MCP server for detected platforms", false)
248
288
  .option("--no-plugin", "Skip plugin (hooks/commands), only update config files")
289
+ .option("--no-scan", "Skip file scanning during setup")
249
290
  .action(async (cmdOpts) => {
250
291
  const globalOpts = program.opts();
251
292
  const format = resolveFormat(globalOpts.format);
252
293
  await runSetup({
253
294
  platform: cmdOpts.platform,
254
295
  withMcp: cmdOpts.withMcp,
255
- noPlugin: cmdOpts.noPlugin ?? false,
296
+ noPlugin: cmdOpts.plugin === false,
297
+ noScan: cmdOpts.scan === false,
256
298
  format,
257
299
  });
258
300
  });
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
@@ -11,9 +11,9 @@ export declare function installMcpServer(platform: Platform, apiKey: string): {
11
11
  installed: boolean;
12
12
  configPath: string;
13
13
  };
14
- export declare function installClaudeCodePlugin(pluginDir?: string): {
14
+ export declare function installClaudeCodePlugin(): {
15
15
  installed: boolean;
16
16
  hooksAdded: string[];
17
- commandsLinked: string[];
17
+ commandsCopied: string[];
18
18
  };
19
19
  export declare function syncApiKeyToMcpConfig(apiKey: string): void;
@@ -6,11 +6,10 @@
6
6
  * - Zed installer uses context_servers instead of mcpServers
7
7
  * - Continue.dev writes YAML config
8
8
  */
9
- import { readFileSync, writeFileSync, mkdirSync, existsSync, symlinkSync, readdirSync } from "node:fs";
10
- import { join, dirname, resolve } from "node:path";
9
+ import { readFileSync, writeFileSync, mkdirSync, existsSync, readdirSync, unlinkSync, copyFileSync } from "node:fs";
10
+ import { join, dirname } from "node:path";
11
11
  import { homedir } from "node:os";
12
12
  import { fileURLToPath } from "node:url";
13
- import { execFileSync } from "node:child_process";
14
13
  const __filename = fileURLToPath(import.meta.url);
15
14
  const __dirname = dirname(__filename);
16
15
  const MCP_SERVER_ENTRY = {
@@ -78,14 +77,30 @@ function installContinueMcp(configPath, apiKey) {
78
77
  writeJsonFile(mcpPath, config);
79
78
  return { installed: true, configPath: mcpPath };
80
79
  }
81
- export function installClaudeCodePlugin(pluginDir) {
80
+ /**
81
+ * Resolve bundled plugin paths.
82
+ * Plugin source is compiled into dist/plugin/ alongside the CLI.
83
+ * Slash commands are at plugin-commands/ in the package root.
84
+ *
85
+ * From dist/lib/installers.js:
86
+ * __dirname = <pkg>/dist/lib/
87
+ * dist/plugin/ = __dirname/../plugin/
88
+ * plugin-commands/ = __dirname/../../plugin-commands/
89
+ */
90
+ function getPluginDistDir() {
91
+ return join(__dirname, "..", "plugin");
92
+ }
93
+ function getPluginCommandsDir() {
94
+ return join(__dirname, "..", "..", "plugin-commands");
95
+ }
96
+ export function installClaudeCodePlugin() {
82
97
  const home = homedir();
83
98
  const claudeDir = join(home, ".claude");
84
99
  const settingsPath = join(claudeDir, "settings.json");
85
- // Resolve plugin directory — find it relative to the CLI package
86
- const resolvedPluginDir = pluginDir ?? findPluginDir();
87
- if (!resolvedPluginDir) {
88
- return { installed: false, hooksAdded: [], commandsLinked: [] };
100
+ const distDir = getPluginDistDir();
101
+ // Verify bundled plugin exists
102
+ if (!existsSync(join(distDir, "auto-recall.js"))) {
103
+ return { installed: false, hooksAdded: [], commandsCopied: [] };
89
104
  }
90
105
  // 1. Read existing settings.json
91
106
  let settings = {};
@@ -100,8 +115,7 @@ export function installClaudeCodePlugin(pluginDir) {
100
115
  settings.hooks = {};
101
116
  }
102
117
  const hooksAdded = [];
103
- const distDir = join(resolvedPluginDir, "dist");
104
- // 2. Add hooks (idempotent — check if nex hooks already exist)
118
+ // 2. Add hooks (idempotent — remove stale nex hooks, then add fresh ones)
105
119
  const hookDefs = [
106
120
  {
107
121
  event: "SessionStart",
@@ -127,28 +141,28 @@ export function installClaudeCodePlugin(pluginDir) {
127
141
  settings.hooks[def.event] = [];
128
142
  }
129
143
  const groups = settings.hooks[def.event];
130
- const alreadyInstalled = groups.some((g) => g.hooks.some((h) => h.command.includes("nex") || h.command.includes("auto-recall") || h.command.includes("auto-capture") || h.command.includes("auto-session-start")));
131
- if (!alreadyInstalled) {
132
- const hookEntry = {
133
- type: "command",
134
- command: `node ${def.script}`,
135
- timeout: def.timeout,
136
- };
137
- if (def.statusMessage)
138
- hookEntry.statusMessage = def.statusMessage;
139
- if (def.async)
140
- hookEntry.async = true;
141
- groups.push({ matcher: "", hooks: [hookEntry] });
142
- hooksAdded.push(def.event);
143
- }
144
+ // Remove any existing nex hook entries (handles path updates on upgrade)
145
+ const filtered = groups.filter((g) => !g.hooks.some((h) => h.command.includes("auto-recall") || h.command.includes("auto-capture") || h.command.includes("auto-session-start")));
146
+ const hookEntry = {
147
+ type: "command",
148
+ command: `node ${def.script}`,
149
+ timeout: def.timeout,
150
+ };
151
+ if (def.statusMessage)
152
+ hookEntry.statusMessage = def.statusMessage;
153
+ if (def.async)
154
+ hookEntry.async = true;
155
+ filtered.push({ matcher: "", hooks: [hookEntry] });
156
+ settings.hooks[def.event] = filtered;
157
+ hooksAdded.push(def.event);
144
158
  }
145
159
  // 3. Write settings.json
146
160
  mkdirSync(claudeDir, { recursive: true });
147
161
  writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + "\n", "utf-8");
148
- // 4. Symlink slash commands
149
- const commandsLinked = [];
162
+ // 4. Copy slash commands (copy, not symlink — survives npm updates)
163
+ const commandsCopied = [];
150
164
  const commandsDir = join(claudeDir, "commands");
151
- const sourceCommandsDir = join(resolvedPluginDir, "commands");
165
+ const sourceCommandsDir = getPluginCommandsDir();
152
166
  if (existsSync(sourceCommandsDir)) {
153
167
  mkdirSync(commandsDir, { recursive: true });
154
168
  try {
@@ -158,14 +172,19 @@ export function installClaudeCodePlugin(pluginDir) {
158
172
  continue;
159
173
  const target = join(commandsDir, entry);
160
174
  const source = join(sourceCommandsDir, entry);
161
- if (!existsSync(target)) {
162
- try {
163
- symlinkSync(source, target, "file");
164
- commandsLinked.push(entry);
165
- }
166
- catch {
167
- // May fail if file already exists as regular file — skip
168
- }
175
+ // Remove stale symlink or existing file, then copy fresh
176
+ try {
177
+ unlinkSync(target);
178
+ }
179
+ catch {
180
+ // File didn't exist — fine
181
+ }
182
+ try {
183
+ copyFileSync(source, target);
184
+ commandsCopied.push(entry);
185
+ }
186
+ catch {
187
+ // Copy failed — non-critical
169
188
  }
170
189
  }
171
190
  }
@@ -173,35 +192,7 @@ export function installClaudeCodePlugin(pluginDir) {
173
192
  // Commands dir read failed — non-critical
174
193
  }
175
194
  }
176
- return { installed: true, hooksAdded, commandsLinked };
177
- }
178
- /**
179
- * Find the claude-code-plugin directory relative to the CLI install.
180
- * Looks for it as a sibling package in the monorepo or as a globally installed npm package.
181
- */
182
- function findPluginDir() {
183
- // Try common locations
184
- const candidates = [
185
- // Sibling in monorepo (from dist/lib/ → ../../.. = repo root → claude-code-plugin)
186
- resolve(__dirname, "..", "..", "..", "claude-code-plugin"),
187
- // Relative to cli package root (from dist/lib/ → ../.. = cli root → claude-code-plugin)
188
- resolve(__dirname, "..", "..", "claude-code-plugin"),
189
- ];
190
- // Also check npm global node_modules for the published plugin package
191
- try {
192
- const globalPrefix = execFileSync("npm", ["prefix", "-g"], { encoding: "utf-8" }).trim();
193
- candidates.push(join(globalPrefix, "lib", "node_modules", "@nex-crm", "claude-code-nex-plugin"));
194
- candidates.push(join(globalPrefix, "lib", "node_modules", "@nex-ai", "claude-code-plugin"));
195
- }
196
- catch {
197
- // npm not available — skip
198
- }
199
- for (const candidate of candidates) {
200
- if (existsSync(join(candidate, "package.json"))) {
201
- return candidate;
202
- }
203
- }
204
- return undefined;
195
+ return { installed: true, hooksAdded, commandsCopied };
205
196
  }
206
197
  // --- Sync API key to ~/.nex-mcp.json ---
207
198
  export function syncApiKeyToMcpConfig(apiKey) {
@@ -1 +1 @@
1
- {"version":3,"file":"installers.js","sourceRoot":"","sources":["../../src/lib/installers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACvG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,MAAM,gBAAgB,GAAG;IACvB,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACnC,GAAG,EAAE,EAA4B;CAClC,CAAC;AAEF,gCAAgC;AAEhC,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,IAAY,EAAE,IAA6B;IAChE,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,QAAkB,EAClB,MAAc;IAEd,MAAM,KAAK,GAAG;QACZ,GAAG,gBAAgB;QACnB,GAAG,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE;KAC7B,CAAC;IAEF,IAAI,QAAQ,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;QACpC,OAAO,aAAa,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,QAAQ,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;QACzC,OAAO,kBAAkB,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,+FAA+F;IAC/F,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAEjD,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QAChE,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;IACzB,CAAC;IACA,MAAM,CAAC,UAAsC,CAAC,GAAG,GAAG,KAAK,CAAC;IAE3D,aAAa,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC3C,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC;AAC9D,CAAC;AAED,SAAS,aAAa,CACpB,UAAkB,EAClB,KAA8B;IAE9B,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IAExC,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;QAC1E,MAAM,CAAC,eAAe,GAAG,EAAE,CAAC;IAC9B,CAAC;IACA,MAAM,CAAC,eAA2C,CAAC,GAAG,GAAG;QACxD,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE;KACnE,CAAC;IAEF,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAClC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AACzC,CAAC;AAED,SAAS,kBAAkB,CACzB,UAAkB,EAClB,MAAc;IAEd,oEAAoE;IACpE,8CAA8C;IAC9C,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAErC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QAChE,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;IACzB,CAAC;IACA,MAAM,CAAC,UAAsC,CAAC,GAAG,GAAG;QACnD,GAAG,gBAAgB;QACnB,GAAG,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE;KAC7B,CAAC;IAEF,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC/B,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AAClD,CAAC;AAsBD,MAAM,UAAU,uBAAuB,CAAC,SAAkB;IAKxD,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACxC,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAEtD,iEAAiE;IACjE,MAAM,iBAAiB,GAAG,SAAS,IAAI,aAAa,EAAE,CAAC;IACvD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;IAClE,CAAC;IAED,iCAAiC;IACjC,IAAI,QAAQ,GAAiB,EAAE,CAAC;IAChC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAChD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAiB,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,cAAc;IAChB,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACpB,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;IACtB,CAAC;IAED,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAEhD,+DAA+D;IAC/D,MAAM,QAAQ,GAMT;QACH;YACE,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,uBAAuB,CAAC;YAC9C,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,8BAA8B;SAC9C;QACD;YACE,KAAK,EAAE,kBAAkB;YACzB,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC;YACvC,OAAO,EAAE,KAAK;YACd,aAAa,EAAE,gCAAgC;SAChD;QACD;YACE,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC;YACxC,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,IAAI;SACZ;KACF,CAAC;IAEF,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,KAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,QAAQ,CAAC,KAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAClC,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACzC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CACtK,CAAC;QAEF,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,SAAS,GAAc;gBAC3B,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,QAAQ,GAAG,CAAC,MAAM,EAAE;gBAC7B,OAAO,EAAE,GAAG,CAAC,OAAO;aACrB,CAAC;YACF,IAAI,GAAG,CAAC,aAAa;gBAAE,SAAS,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC;YACnE,IAAI,GAAG,CAAC,KAAK;gBAAE,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC;YAEtC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACjD,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;IAE/E,4BAA4B;IAC5B,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAChD,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;IAE9D,IAAI,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAClC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,WAAW,CAAC,iBAAiB,CAAC,CAAC;YAC/C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAAE,SAAS;gBACrC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBACxC,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;gBAE9C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;oBACxB,IAAI,CAAC;wBACH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;wBACpC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC7B,CAAC;oBAAC,MAAM,CAAC;wBACP,yDAAyD;oBAC3D,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,0CAA0C;QAC5C,CAAC;IACH,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa;IACpB,uBAAuB;IACvB,MAAM,UAAU,GAAG;QACjB,mFAAmF;QACnF,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,oBAAoB,CAAC;QAC1D,wFAAwF;QACxF,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,oBAAoB,CAAC;KACrD,CAAC;IAEF,sEAAsE;IACtE,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACzF,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,wBAAwB,CAAC,CAAC,CAAC;QACjG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAC9F,CAAC;IAAC,MAAM,CAAC;QACP,2BAA2B;IAC7B,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;YAChD,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,0CAA0C;AAE1C,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAClD,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IAC3C,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,aAAa,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"installers.js","sourceRoot":"","sources":["../../src/lib/installers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Claude Code Stop hook — auto-capture conversation to Nex + plan file ingestion.
4
+ *
5
+ * Reads { last_assistant_message, session_id } from stdin,
6
+ * filters and sends to Nex for ingestion. Also checks .claude/plans/
7
+ * for changed plan files and ingests up to 2.
8
+ *
9
+ * On ANY error: outputs {} and exits 0 (graceful degradation).
10
+ */
11
+ export {};
@@ -0,0 +1,135 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Claude Code Stop hook — auto-capture conversation to Nex + plan file ingestion.
4
+ *
5
+ * Reads { last_assistant_message, session_id } from stdin,
6
+ * filters and sends to Nex for ingestion. Also checks .claude/plans/
7
+ * for changed plan files and ingests up to 2.
8
+ *
9
+ * On ANY error: outputs {} and exits 0 (graceful degradation).
10
+ */
11
+ import { readdirSync, statSync, readFileSync } from "node:fs";
12
+ import { join, extname } from "node:path";
13
+ import { loadConfig, loadScanConfig, isHookEnabled } from "./config.js";
14
+ import { NexClient } from "./nex-client.js";
15
+ import { captureFilter } from "./capture-filter.js";
16
+ import { RateLimiter } from "./rate-limiter.js";
17
+ import { readManifest, writeManifest, isChanged, markIngested } from "./file-manifest.js";
18
+ /** Ingest timeout — 3s leaves buffer within hook timeout */
19
+ const INGEST_TIMEOUT_MS = 3_000;
20
+ const MAX_PLAN_FILES = 2;
21
+ const rateLimiter = new RateLimiter();
22
+ /**
23
+ * Scan .claude/plans/ for changed .md files and ingest up to MAX_PLAN_FILES.
24
+ */
25
+ async function ingestPlanFiles(client) {
26
+ const scanConfig = loadScanConfig();
27
+ if (!scanConfig.enabled)
28
+ return;
29
+ const plansDir = join(process.cwd(), ".claude", "plans");
30
+ let entries;
31
+ try {
32
+ entries = readdirSync(plansDir, { withFileTypes: true });
33
+ }
34
+ catch {
35
+ return; // No .claude/plans/ dir — normal, skip silently
36
+ }
37
+ const manifest = readManifest();
38
+ let ingested = 0;
39
+ for (const entry of entries) {
40
+ if (ingested >= MAX_PLAN_FILES)
41
+ break;
42
+ if (!entry.isFile())
43
+ continue;
44
+ if (extname(entry.name).toLowerCase() !== ".md")
45
+ continue;
46
+ const fullPath = join(plansDir, entry.name);
47
+ try {
48
+ const stat = statSync(fullPath);
49
+ if (!isChanged(fullPath, stat, manifest))
50
+ continue;
51
+ if (!rateLimiter.canProceed()) {
52
+ process.stderr.write("[nex-capture] Rate limited — skipping plan file ingest\n");
53
+ break;
54
+ }
55
+ let content = readFileSync(fullPath, "utf-8");
56
+ if (content.length > 100_000) {
57
+ content = content.slice(0, 100_000) + "\n[...truncated]";
58
+ }
59
+ const context = `claude-code-plan:${entry.name}`;
60
+ await client.ingest(content, context, INGEST_TIMEOUT_MS);
61
+ markIngested(fullPath, stat, context, manifest);
62
+ ingested++;
63
+ }
64
+ catch (err) {
65
+ process.stderr.write(`[nex-capture] Plan file ingest failed (${entry.name}): ${err instanceof Error ? err.message : String(err)}\n`);
66
+ }
67
+ }
68
+ if (ingested > 0) {
69
+ writeManifest(manifest);
70
+ }
71
+ }
72
+ async function main() {
73
+ try {
74
+ // Read stdin
75
+ const chunks = [];
76
+ for await (const chunk of process.stdin) {
77
+ chunks.push(chunk);
78
+ }
79
+ const raw = Buffer.concat(chunks).toString("utf-8");
80
+ // Check .nex.toml kill switch
81
+ if (!isHookEnabled("capture")) {
82
+ process.stdout.write("{}");
83
+ return;
84
+ }
85
+ let input;
86
+ try {
87
+ input = JSON.parse(raw);
88
+ }
89
+ catch {
90
+ process.stdout.write("{}");
91
+ return;
92
+ }
93
+ let cfg;
94
+ try {
95
+ cfg = loadConfig();
96
+ }
97
+ catch {
98
+ process.stdout.write("{}");
99
+ return;
100
+ }
101
+ const client = new NexClient(cfg.apiKey, cfg.baseUrl);
102
+ // --- Conversation capture (existing behavior) ---
103
+ const message = input.last_assistant_message?.trim();
104
+ if (message) {
105
+ const filterResult = captureFilter(message);
106
+ if (!filterResult.skipped) {
107
+ if (rateLimiter.canProceed()) {
108
+ try {
109
+ await client.ingest(filterResult.text, "claude-code-conversation", INGEST_TIMEOUT_MS);
110
+ }
111
+ catch (err) {
112
+ process.stderr.write(`[nex-capture] Ingest failed: ${err instanceof Error ? err.message : String(err)}\n`);
113
+ }
114
+ }
115
+ else {
116
+ process.stderr.write("[nex-capture] Rate limited — skipping conversation ingest\n");
117
+ }
118
+ }
119
+ }
120
+ // --- Plan file ingestion ---
121
+ try {
122
+ await ingestPlanFiles(client);
123
+ }
124
+ catch (err) {
125
+ process.stderr.write(`[nex-capture] Plan file scan error: ${err instanceof Error ? err.message : String(err)}\n`);
126
+ }
127
+ process.stdout.write("{}");
128
+ }
129
+ catch (err) {
130
+ process.stderr.write(`[nex-capture] Unexpected error: ${err instanceof Error ? err.message : String(err)}\n`);
131
+ process.stdout.write("{}");
132
+ }
133
+ }
134
+ main().then(() => process.exit(0)).catch(() => process.exit(0));
135
+ //# sourceMappingURL=auto-capture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-capture.js","sourceRoot":"","sources":["../../src/plugin/auto-capture.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Claude Code UserPromptSubmit hook — auto-recall from Nex.
4
+ *
5
+ * Reads the user's prompt from stdin, runs it through the recall filter
6
+ * to decide if recall is needed, queries Nex for relevant context,
7
+ * and outputs { additionalContext: "..." } to inject into the conversation.
8
+ *
9
+ * On ANY error: outputs {} and exits 0 (graceful degradation).
10
+ */
11
+ export {};