nlm-memory 0.5.21 → 0.6.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.
Files changed (164) hide show
  1. package/README.md +129 -19
  2. package/dist/cli/classify-parity.js +1 -1
  3. package/dist/cli/classify-parity.js.map +1 -1
  4. package/dist/cli/nlm.js +152 -12
  5. package/dist/cli/nlm.js.map +1 -1
  6. package/dist/core/actions/overlay.d.ts +22 -0
  7. package/dist/core/actions/overlay.js +56 -0
  8. package/dist/core/actions/overlay.js.map +1 -1
  9. package/dist/core/adapters/pi.js +13 -3
  10. package/dist/core/adapters/pi.js.map +1 -1
  11. package/dist/core/classifier/prompt.d.ts +1 -1
  12. package/dist/core/classifier/prompt.js +1 -1
  13. package/dist/core/dataset/build-dataset.d.ts +14 -1
  14. package/dist/core/dataset/build-dataset.js +68 -11
  15. package/dist/core/dataset/build-dataset.js.map +1 -1
  16. package/dist/core/hook/miss-detect.d.ts +32 -0
  17. package/dist/core/hook/miss-detect.js +67 -0
  18. package/dist/core/hook/miss-detect.js.map +1 -0
  19. package/dist/core/hook/pointer-block.d.ts +12 -1
  20. package/dist/core/hook/pointer-block.js +25 -8
  21. package/dist/core/hook/pointer-block.js.map +1 -1
  22. package/dist/core/providers/provider-registry.js +1 -1
  23. package/dist/core/providers/provider-registry.js.map +1 -1
  24. package/dist/core/recall/miss-log.d.ts +47 -0
  25. package/dist/core/recall/miss-log.js +112 -0
  26. package/dist/core/recall/miss-log.js.map +1 -0
  27. package/dist/core/recall/query-log.d.ts +3 -0
  28. package/dist/core/recall/query-log.js +1 -0
  29. package/dist/core/recall/query-log.js.map +1 -1
  30. package/dist/core/recall/recall-service.d.ts +9 -0
  31. package/dist/core/recall/recall-service.js +81 -18
  32. package/dist/core/recall/recall-service.js.map +1 -1
  33. package/dist/core/recall/recency.d.ts +52 -0
  34. package/dist/core/recall/recency.js +98 -0
  35. package/dist/core/recall/recency.js.map +1 -0
  36. package/dist/core/recall/recent-log.d.ts +1 -0
  37. package/dist/core/recall/recent-log.js +1 -0
  38. package/dist/core/recall/recent-log.js.map +1 -1
  39. package/dist/core/recall/related-facts.d.ts +30 -0
  40. package/dist/core/recall/related-facts.js +134 -0
  41. package/dist/core/recall/related-facts.js.map +1 -0
  42. package/dist/core/recall/rewrite-cache.d.ts +25 -0
  43. package/dist/core/recall/rewrite-cache.js +60 -0
  44. package/dist/core/recall/rewrite-cache.js.map +1 -0
  45. package/dist/core/recall/rewrite-prompt.d.ts +23 -0
  46. package/dist/core/recall/rewrite-prompt.js +81 -0
  47. package/dist/core/recall/rewrite-prompt.js.map +1 -0
  48. package/dist/core/recall-facts/fact-recall-service.d.ts +11 -0
  49. package/dist/core/recall-facts/fact-recall-service.js +69 -4
  50. package/dist/core/recall-facts/fact-recall-service.js.map +1 -1
  51. package/dist/core/scheduler/scheduler.d.ts +7 -0
  52. package/dist/core/scheduler/scheduler.js +26 -0
  53. package/dist/core/scheduler/scheduler.js.map +1 -1
  54. package/dist/core/signals/aggregate.d.ts +21 -0
  55. package/dist/core/signals/aggregate.js +34 -0
  56. package/dist/core/signals/aggregate.js.map +1 -0
  57. package/dist/core/signals/failure-mode-recall.d.ts +18 -0
  58. package/dist/core/signals/failure-mode-recall.js +28 -0
  59. package/dist/core/signals/failure-mode-recall.js.map +1 -0
  60. package/dist/core/signals/ingest-signal.d.ts +19 -0
  61. package/dist/core/signals/ingest-signal.js +63 -0
  62. package/dist/core/signals/ingest-signal.js.map +1 -0
  63. package/dist/core/signals/install-scope.d.ts +8 -0
  64. package/dist/core/signals/install-scope.js +41 -0
  65. package/dist/core/signals/install-scope.js.map +1 -0
  66. package/dist/core/signals/recommend.d.ts +13 -0
  67. package/dist/core/signals/recommend.js +24 -0
  68. package/dist/core/signals/recommend.js.map +1 -0
  69. package/dist/core/storage/pg-fact-store.d.ts +5 -0
  70. package/dist/core/storage/pg-fact-store.js +29 -0
  71. package/dist/core/storage/pg-fact-store.js.map +1 -1
  72. package/dist/core/storage/pg-session-store.js +16 -1
  73. package/dist/core/storage/pg-session-store.js.map +1 -1
  74. package/dist/core/storage/pg-signal-store.d.ts +16 -0
  75. package/dist/core/storage/pg-signal-store.js +100 -0
  76. package/dist/core/storage/pg-signal-store.js.map +1 -0
  77. package/dist/core/storage/pg-storage.d.ts +2 -0
  78. package/dist/core/storage/pg-storage.js +3 -0
  79. package/dist/core/storage/pg-storage.js.map +1 -1
  80. package/dist/core/storage/pg-tx-context.d.ts +5 -0
  81. package/dist/core/storage/pg-tx-context.js +3 -0
  82. package/dist/core/storage/pg-tx-context.js.map +1 -1
  83. package/dist/core/storage/sqlite-fact-store.d.ts +5 -0
  84. package/dist/core/storage/sqlite-fact-store.js +30 -0
  85. package/dist/core/storage/sqlite-fact-store.js.map +1 -1
  86. package/dist/core/storage/sqlite-session-store.d.ts +3 -0
  87. package/dist/core/storage/sqlite-session-store.js +21 -1
  88. package/dist/core/storage/sqlite-session-store.js.map +1 -1
  89. package/dist/core/storage/sqlite-signal-store.d.ts +20 -0
  90. package/dist/core/storage/sqlite-signal-store.js +112 -0
  91. package/dist/core/storage/sqlite-signal-store.js.map +1 -0
  92. package/dist/core/storage/sqlite-storage.d.ts +2 -0
  93. package/dist/core/storage/sqlite-storage.js +6 -2
  94. package/dist/core/storage/sqlite-storage.js.map +1 -1
  95. package/dist/hook/pi-extension.d.ts +3 -1
  96. package/dist/hook/pi-extension.js +4 -2
  97. package/dist/hook/pi-extension.js.map +1 -1
  98. package/dist/hook/prompt-recall-hook.d.ts +10 -1
  99. package/dist/hook/prompt-recall-hook.js +11 -5
  100. package/dist/hook/prompt-recall-hook.js.map +1 -1
  101. package/dist/hook/recall-over-http.d.ts +11 -1
  102. package/dist/hook/recall-over-http.js +21 -6
  103. package/dist/hook/recall-over-http.js.map +1 -1
  104. package/dist/hook/session-start-hook.d.ts +2 -0
  105. package/dist/hook/session-start-hook.js +36 -3
  106. package/dist/hook/session-start-hook.js.map +1 -1
  107. package/dist/hook/stop-hook.js +16 -0
  108. package/dist/hook/stop-hook.js.map +1 -1
  109. package/dist/http/app.d.ts +9 -0
  110. package/dist/http/app.js +125 -10
  111. package/dist/http/app.js.map +1 -1
  112. package/dist/install/codex.d.ts +1 -1
  113. package/dist/install/codex.js +4 -4
  114. package/dist/install/codex.js.map +1 -1
  115. package/dist/install/ollama.d.ts +10 -0
  116. package/dist/install/ollama.js +19 -3
  117. package/dist/install/ollama.js.map +1 -1
  118. package/dist/install/pi.d.ts +1 -1
  119. package/dist/install/pi.js +1 -1
  120. package/dist/install/rules-content.d.ts +51 -0
  121. package/dist/install/rules-content.js +140 -0
  122. package/dist/install/rules-content.js.map +1 -0
  123. package/dist/install/rules-install.d.ts +35 -0
  124. package/dist/install/rules-install.js +79 -0
  125. package/dist/install/rules-install.js.map +1 -0
  126. package/dist/install/setup.js +63 -10
  127. package/dist/install/setup.js.map +1 -1
  128. package/dist/llm/classifier-box.d.ts +2 -1
  129. package/dist/llm/classifier-box.js +3 -0
  130. package/dist/llm/classifier-box.js.map +1 -1
  131. package/dist/llm/deepseek-client.d.ts +5 -2
  132. package/dist/llm/deepseek-client.js +51 -1
  133. package/dist/llm/deepseek-client.js.map +1 -1
  134. package/dist/llm/ollama-client.d.ts +3 -2
  135. package/dist/llm/ollama-client.js +45 -2
  136. package/dist/llm/ollama-client.js.map +1 -1
  137. package/dist/mcp/server.d.ts +1 -0
  138. package/dist/mcp/server.js +23 -3
  139. package/dist/mcp/server.js.map +1 -1
  140. package/dist/ports/fact-store.d.ts +0 -0
  141. package/dist/ports/fact-store.js +0 -0
  142. package/dist/ports/fact-store.js.map +1 -1
  143. package/dist/ports/llm-client.d.ts +24 -0
  144. package/dist/ports/signal-store.d.ts +30 -0
  145. package/dist/ports/signal-store.js +9 -0
  146. package/dist/ports/signal-store.js.map +1 -0
  147. package/dist/ports/storage.d.ts +2 -0
  148. package/dist/ports/transcript-adapter.d.ts +6 -0
  149. package/dist/shared/types.d.ts +76 -0
  150. package/dist/ui/assets/index-CgHq6xeZ.css +1 -0
  151. package/dist/ui/assets/index-DLDd-OM_.js +69 -0
  152. package/dist/ui/index.html +2 -2
  153. package/nlm/README.md +1 -1
  154. package/nlm/index.js +46 -21
  155. package/package.json +7 -5
  156. package/plugin/.codex-plugin/plugin.json +2 -2
  157. package/plugin/README.md +3 -3
  158. package/plugin/scripts/prompt-recall-hook.mjs +45 -20
  159. package/plugin/scripts/stop-hook.mjs +80 -6
  160. package/plugin-hermes-agent/README.md +49 -0
  161. package/plugin-hermes-agent/__init__.py +75 -0
  162. package/plugin-hermes-agent/plugin.yaml +15 -0
  163. package/dist/ui/assets/index-B7j5U42U.css +0 -1
  164. package/dist/ui/assets/index-BO0dvNHn.js +0 -69
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Shared rules-file content + idempotent writer for MCP-only runtimes
3
+ * (Cursor, Windsurf, OpenCode) that lack a pre-prompt hook surface.
4
+ *
5
+ * Each runtime's install adapter calls upsertRulesBlock(targetPath) to write
6
+ * RULES_BLOCK between sentinel markers. Re-running is idempotent: the
7
+ * sentinel-bracketed region is replaced in place, leaving any unrelated
8
+ * content in the target file intact. removeRulesBlock(targetPath) strips
9
+ * only the bracketed region, preserving the rest.
10
+ *
11
+ * Conservative wording: the block instructs the agent to call
12
+ * `recall_sessions` only on history-flavored prompts and to skip on
13
+ * greenfield ones. This trades some recall fire-rate for less noise on
14
+ * prompts where prior context isn't useful.
15
+ */
16
+ import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from "node:fs";
17
+ import { dirname } from "node:path";
18
+ export const CURSOR_MDC_FRONTMATTER = `---
19
+ description: nlm-memory recall nudge — call recall_sessions on history-flavored prompts
20
+ alwaysApply: true
21
+ ---
22
+ `;
23
+ export const START_SENTINEL = "<!-- nlm-memory:start -->";
24
+ export const END_SENTINEL = "<!-- nlm-memory:end -->";
25
+ export const RULES_BLOCK = `# nlm-memory recall
26
+
27
+ If the user references prior work, prior decisions, ongoing projects,
28
+ or asks "what did we figure out about X" / "where did we leave Y" /
29
+ "is Z still open" — call the \`recall_sessions\` MCP tool first with the
30
+ relevant keywords and treat its output as primary context. Cite returned
31
+ session IDs when you reference them.
32
+
33
+ Skip recall on greenfield prompts: drafting new content from scratch,
34
+ naming, brainstorming, or any forward-looking task with no plausible
35
+ prior context.
36
+ `;
37
+ function bracketed() {
38
+ return `${START_SENTINEL}\n${RULES_BLOCK}${END_SENTINEL}\n`;
39
+ }
40
+ /**
41
+ * Write the rules block to targetPath, creating the file (and parent dirs)
42
+ * if needed. If a sentinel-bracketed block already exists, replace it in
43
+ * place; otherwise append to the existing file. Returns the action taken.
44
+ */
45
+ export function upsertRulesBlock(targetPath) {
46
+ const block = bracketed();
47
+ if (!existsSync(targetPath)) {
48
+ mkdirSync(dirname(targetPath), { recursive: true });
49
+ writeFileSync(targetPath, block, { mode: 0o644 });
50
+ return { action: "created", targetPath };
51
+ }
52
+ const existing = readFileSync(targetPath, "utf8");
53
+ const startIdx = existing.indexOf(START_SENTINEL);
54
+ const endIdx = existing.indexOf(END_SENTINEL);
55
+ if (startIdx !== -1 && endIdx !== -1 && endIdx > startIdx) {
56
+ // Existing managed block — replace in place. Capture content before
57
+ // the start sentinel and after the end sentinel (plus its trailing
58
+ // newline if present) to preserve surrounding user content.
59
+ const before = existing.slice(0, startIdx);
60
+ let afterStart = endIdx + END_SENTINEL.length;
61
+ if (existing[afterStart] === "\n")
62
+ afterStart += 1;
63
+ const after = existing.slice(afterStart);
64
+ const next = `${before}${block}${after}`;
65
+ if (next === existing)
66
+ return { action: "unchanged", targetPath };
67
+ writeFileSync(targetPath, next, { mode: 0o644 });
68
+ return { action: "replaced", targetPath };
69
+ }
70
+ // No managed block present — append. Ensure exactly one blank line
71
+ // between any prior content and the new block.
72
+ const trimmed = existing.replace(/\s*$/, "");
73
+ const next = trimmed.length === 0 ? block : `${trimmed}\n\n${block}`;
74
+ writeFileSync(targetPath, next, { mode: 0o644 });
75
+ return { action: "appended", targetPath };
76
+ }
77
+ /**
78
+ * Write a dedicated NLM-owned rules file (no sentinels — whole-file ownership).
79
+ * Used for Cursor's .mdc rules where the file is single-purpose and benefits
80
+ * from YAML frontmatter being at the very top with no other content.
81
+ */
82
+ export function writeDedicatedRulesFile(targetPath, prefix = "") {
83
+ const next = `${prefix}${RULES_BLOCK}`;
84
+ if (!existsSync(targetPath)) {
85
+ mkdirSync(dirname(targetPath), { recursive: true });
86
+ writeFileSync(targetPath, next, { mode: 0o644 });
87
+ return { action: "created", targetPath };
88
+ }
89
+ const existing = readFileSync(targetPath, "utf8");
90
+ if (existing === next)
91
+ return { action: "unchanged", targetPath };
92
+ writeFileSync(targetPath, next, { mode: 0o644 });
93
+ return { action: "replaced", targetPath };
94
+ }
95
+ /**
96
+ * Delete a dedicated NLM-owned rules file. No-op if the file doesn't exist.
97
+ */
98
+ export function deleteDedicatedRulesFile(targetPath) {
99
+ if (!existsSync(targetPath))
100
+ return { action: "no-file", targetPath };
101
+ unlinkSync(targetPath);
102
+ return { action: "deleted-file", targetPath };
103
+ }
104
+ /**
105
+ * Strip the sentinel-bracketed block from targetPath. If the file would be
106
+ * empty (or whitespace-only) after removal, delete the file. If the file
107
+ * doesn't exist or doesn't contain the block, no-op.
108
+ */
109
+ export function removeRulesBlock(targetPath) {
110
+ if (!existsSync(targetPath))
111
+ return { action: "no-file", targetPath };
112
+ const existing = readFileSync(targetPath, "utf8");
113
+ const startIdx = existing.indexOf(START_SENTINEL);
114
+ const endIdx = existing.indexOf(END_SENTINEL);
115
+ if (startIdx === -1 || endIdx === -1 || endIdx <= startIdx) {
116
+ return { action: "not-present", targetPath };
117
+ }
118
+ const before = existing.slice(0, startIdx).replace(/\s*$/, "");
119
+ let afterStart = endIdx + END_SENTINEL.length;
120
+ if (existing[afterStart] === "\n")
121
+ afterStart += 1;
122
+ const after = existing.slice(afterStart).replace(/^\s*/, "");
123
+ let next;
124
+ if (before.length === 0 && after.length === 0) {
125
+ unlinkSync(targetPath);
126
+ return { action: "deleted-file", targetPath };
127
+ }
128
+ else if (before.length === 0) {
129
+ next = `${after}\n`.replace(/\n+$/, "\n");
130
+ }
131
+ else if (after.length === 0) {
132
+ next = `${before}\n`;
133
+ }
134
+ else {
135
+ next = `${before}\n\n${after}\n`.replace(/\n+$/, "\n");
136
+ }
137
+ writeFileSync(targetPath, next, { mode: 0o644 });
138
+ return { action: "removed", targetPath };
139
+ }
140
+ //# sourceMappingURL=rules-content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules-content.js","sourceRoot":"","sources":["../../src/install/rules-content.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Per-runtime rules-file install adapters for MCP-only runtimes
3
+ * (Cursor, Windsurf, OpenCode). Each function resolves the runtime's
4
+ * canonical rules-file path on this OS and delegates to upsertRulesBlock /
5
+ * removeRulesBlock for the actual write.
6
+ *
7
+ * Cursor is workspace-scoped only — current Cursor builds don't expose a
8
+ * documented file path for user-global rules (the UI manages them). The
9
+ * cwd is the install target; pass cwd= to override (tests + multi-project
10
+ * scripting).
11
+ *
12
+ * Windsurf and OpenCode both have user-global file paths and install there.
13
+ */
14
+ import { type RemoveResult, type UpsertResult } from "./rules-content.js";
15
+ export interface InstallRulesOptions {
16
+ /** Working directory for Cursor (workspace-scoped). Ignored elsewhere. */
17
+ readonly cwd?: string;
18
+ /** Home directory override for tests. */
19
+ readonly home?: string;
20
+ }
21
+ export declare function cursorRulesPath(opts?: InstallRulesOptions): string;
22
+ export declare function windsurfRulesPath(opts?: InstallRulesOptions): string;
23
+ export declare function opencodeRulesPath(opts?: InstallRulesOptions): string;
24
+ export declare function installCursorRules(opts?: InstallRulesOptions): UpsertResult;
25
+ export declare function uninstallCursorRules(opts?: InstallRulesOptions): RemoveResult;
26
+ export declare function installWindsurfRules(opts?: InstallRulesOptions): UpsertResult;
27
+ export declare function uninstallWindsurfRules(opts?: InstallRulesOptions): RemoveResult;
28
+ export declare function installOpencodeRules(opts?: InstallRulesOptions): UpsertResult;
29
+ export declare function uninstallOpencodeRules(opts?: InstallRulesOptions): RemoveResult;
30
+ /**
31
+ * Human-readable summary for the connect command's stdout. Returns null when
32
+ * nothing changed.
33
+ */
34
+ export declare function describeUpsert(runtime: string, result: UpsertResult): string;
35
+ export declare function describeRemove(runtime: string, result: RemoveResult): string;
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Per-runtime rules-file install adapters for MCP-only runtimes
3
+ * (Cursor, Windsurf, OpenCode). Each function resolves the runtime's
4
+ * canonical rules-file path on this OS and delegates to upsertRulesBlock /
5
+ * removeRulesBlock for the actual write.
6
+ *
7
+ * Cursor is workspace-scoped only — current Cursor builds don't expose a
8
+ * documented file path for user-global rules (the UI manages them). The
9
+ * cwd is the install target; pass cwd= to override (tests + multi-project
10
+ * scripting).
11
+ *
12
+ * Windsurf and OpenCode both have user-global file paths and install there.
13
+ */
14
+ import { homedir, platform } from "node:os";
15
+ import { join } from "node:path";
16
+ import { CURSOR_MDC_FRONTMATTER, deleteDedicatedRulesFile, removeRulesBlock, upsertRulesBlock, writeDedicatedRulesFile, } from "./rules-content.js";
17
+ const CURSOR_RULE_RELATIVE = join(".cursor", "rules", "nlm-recall.mdc");
18
+ const WINDSURF_GLOBAL = join(".codeium", "windsurf", "memories", "global_rules.md");
19
+ const OPENCODE_GLOBAL = join(".config", "opencode", "AGENTS.md");
20
+ export function cursorRulesPath(opts = {}) {
21
+ return join(opts.cwd ?? process.cwd(), CURSOR_RULE_RELATIVE);
22
+ }
23
+ export function windsurfRulesPath(opts = {}) {
24
+ return join(opts.home ?? homedir(), WINDSURF_GLOBAL);
25
+ }
26
+ export function opencodeRulesPath(opts = {}) {
27
+ return join(opts.home ?? homedir(), OPENCODE_GLOBAL);
28
+ }
29
+ export function installCursorRules(opts = {}) {
30
+ // Cursor MDC: dedicated single-purpose file with YAML frontmatter at top.
31
+ return writeDedicatedRulesFile(cursorRulesPath(opts), CURSOR_MDC_FRONTMATTER);
32
+ }
33
+ export function uninstallCursorRules(opts = {}) {
34
+ return deleteDedicatedRulesFile(cursorRulesPath(opts));
35
+ }
36
+ export function installWindsurfRules(opts = {}) {
37
+ return upsertRulesBlock(windsurfRulesPath(opts));
38
+ }
39
+ export function uninstallWindsurfRules(opts = {}) {
40
+ return removeRulesBlock(windsurfRulesPath(opts));
41
+ }
42
+ export function installOpencodeRules(opts = {}) {
43
+ return upsertRulesBlock(opencodeRulesPath(opts));
44
+ }
45
+ export function uninstallOpencodeRules(opts = {}) {
46
+ return removeRulesBlock(opencodeRulesPath(opts));
47
+ }
48
+ /**
49
+ * Human-readable summary for the connect command's stdout. Returns null when
50
+ * nothing changed.
51
+ */
52
+ export function describeUpsert(runtime, result) {
53
+ switch (result.action) {
54
+ case "created":
55
+ return `nlm rules nudge created: ${result.targetPath} (${runtime})`;
56
+ case "appended":
57
+ return `nlm rules nudge appended to existing file: ${result.targetPath} (${runtime})`;
58
+ case "replaced":
59
+ return `nlm rules nudge updated in place: ${result.targetPath} (${runtime})`;
60
+ case "unchanged":
61
+ return `nlm rules nudge already current: ${result.targetPath} (${runtime})`;
62
+ }
63
+ }
64
+ export function describeRemove(runtime, result) {
65
+ switch (result.action) {
66
+ case "removed":
67
+ return `nlm rules nudge removed from ${result.targetPath} (${runtime})`;
68
+ case "deleted-file":
69
+ return `nlm rules nudge file deleted: ${result.targetPath} (${runtime})`;
70
+ case "not-present":
71
+ return `no nlm rules nudge found in ${result.targetPath} (${runtime})`;
72
+ case "no-file":
73
+ return `no rules file at ${result.targetPath} (${runtime})`;
74
+ }
75
+ }
76
+ // Silence unused-import warning for platform; reserved for future
77
+ // Windows/Linux divergence in path resolution (currently uniform via $HOME).
78
+ void platform;
79
+ //# sourceMappingURL=rules-install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules-install.js","sourceRoot":"","sources":["../../src/install/rules-install.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,8 @@ import { connectHermes } from "./hermes.js";
19
19
  import { codexBinaryAvailable, connectCodex, pluginScriptsDir } from "./codex.js";
20
20
  import { connectPi } from "./pi.js";
21
21
  import { defaultDbPath as openCodeDefaultDbPath } from "../core/adapters/opencode.js";
22
- import { EMBEDDING_MODEL, embeddingModelPresent, ensureMcpToken, installOllama, ollamaBinaryAvailable, ollamaServerRunning, pullEmbeddingModel, startOllamaServer, waitForOllamaServer, writeClassifierConfig, } from "./ollama.js";
22
+ import { EMBEDDING_MODEL, embeddingModelPresent, ensureMcpToken, installOllama, ollamaBinaryAvailable, ollamaModelPresent, ollamaServerRunning, pullEmbeddingModel, pullOllamaModel, startOllamaServer, waitForOllamaServer, writeClassifierConfig, } from "./ollama.js";
23
+ const RECOMMENDED_OLLAMA_CLASSIFIER = "qwen3:4b-instruct-2507-q4_K_M";
23
24
  import { installClaudeCodeHooks } from "./claude-code.js";
24
25
  import { hardenNlmDirPermissions } from "./nlm-dir-perms.js";
25
26
  const OS = platform();
@@ -240,15 +241,32 @@ export async function runSetup(opts) {
240
241
  }
241
242
  else {
242
243
  const ollamaModels = await fetchOllamaChatModels();
243
- let modelValue = "phi4-mini:latest";
244
+ const recommendedPresent = ollamaModels.includes(RECOMMENDED_OLLAMA_CLASSIFIER);
245
+ let modelValue = RECOMMENDED_OLLAMA_CLASSIFIER;
244
246
  if (ollamaModels.length > 0) {
247
+ const options = [];
248
+ if (!recommendedPresent) {
249
+ options.push({
250
+ value: `__pull__:${RECOMMENDED_OLLAMA_CLASSIFIER}`,
251
+ label: `${RECOMMENDED_OLLAMA_CLASSIFIER} (pull now)`,
252
+ hint: "recommended default — best local classifier (2026-06-02 bench), ~3.5 GB",
253
+ });
254
+ }
255
+ for (const m of ollamaModels) {
256
+ if (m === RECOMMENDED_OLLAMA_CLASSIFIER) {
257
+ options.push({
258
+ value: m,
259
+ label: m,
260
+ hint: "recommended default — best local classifier (2026-06-02 bench)",
261
+ });
262
+ }
263
+ else {
264
+ options.push({ value: m, label: m });
265
+ }
266
+ }
245
267
  const model = await select({
246
268
  message: "Which Ollama chat model?",
247
- options: ollamaModels.map((m) => ({
248
- value: m,
249
- label: m,
250
- hint: m === "phi4-mini:latest" ? "recommended default — small, fast" : undefined,
251
- })),
269
+ options,
252
270
  });
253
271
  if (isCancel(model)) {
254
272
  cancel("Setup cancelled.");
@@ -257,8 +275,43 @@ export async function runSetup(opts) {
257
275
  modelValue = model;
258
276
  }
259
277
  else {
260
- log.warn("No Ollama chat models detected. Defaulting to phi4-mini:latest.");
261
- log.warn(" Pull a model with: ollama pull phi4-mini (or any chat model you prefer)");
278
+ log.warn(`No Ollama chat models detected. Recommended default: ${RECOMMENDED_OLLAMA_CLASSIFIER}.`);
279
+ }
280
+ // Auto-pull path: triggered either by explicit "pull now" choice from the
281
+ // menu, or by the no-models-present branch above.
282
+ const pullPrefix = "__pull__:";
283
+ const needsPull = modelValue.startsWith(pullPrefix) ||
284
+ (ollamaModels.length === 0 && modelValue === RECOMMENDED_OLLAMA_CLASSIFIER);
285
+ if (needsPull) {
286
+ const targetTag = modelValue.startsWith(pullPrefix)
287
+ ? modelValue.slice(pullPrefix.length)
288
+ : modelValue;
289
+ modelValue = targetTag;
290
+ const doPull = await confirm({
291
+ message: `Pull ${targetTag} now? (~3.5 GB, required for local classification)`,
292
+ });
293
+ if (isCancel(doPull)) {
294
+ cancel("Setup cancelled.");
295
+ process.exit(0);
296
+ }
297
+ if (doPull) {
298
+ const ps = spinner();
299
+ ps.start(`Pulling ${targetTag} (this may take a few minutes)`);
300
+ const result = pullOllamaModel(targetTag);
301
+ if (result.ok) {
302
+ ps.stop(`${targetTag} ready`);
303
+ }
304
+ else {
305
+ ps.stop("Model pull failed");
306
+ log.warn(`Run \`ollama pull ${targetTag}\` manually to retry.`);
307
+ }
308
+ }
309
+ else {
310
+ log.warn(`Skipping model pull — run \`ollama pull ${targetTag}\` before classifying.`);
311
+ }
312
+ }
313
+ else if (!ollamaModelPresent(modelValue)) {
314
+ log.warn(`${modelValue} not detected locally — run \`ollama pull ${modelValue}\` before classifying.`);
262
315
  }
263
316
  writeClassifierConfig({ choice: "ollama-offline", model: modelValue });
264
317
  log.success(`Ollama classifier (${modelValue}) saved to ~/.nlm/.env`);
@@ -408,7 +461,7 @@ export async function runSetup(opts) {
408
461
  const cs = spinner();
409
462
  cs.start("Connecting Codex");
410
463
  try {
411
- const report = connectCodex({ source: "pbmagnet4/nlm-memory-ts" }, pluginScriptsDir(opts.repoRoot));
464
+ const report = connectCodex({ source: "pbmagnet4/nlm-memory" }, pluginScriptsDir(opts.repoRoot));
412
465
  if (report.marketplaceAdd?.status !== 0 || report.pluginAdd?.status !== 0) {
413
466
  cs.stop("Codex connect had errors — run `nlm connect codex` manually to retry");
414
467
  }
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/install/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/install/setup.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  * separately through the dedicated Ollama embedder; the classifier slot is
8
8
  * for transcript classification only.
9
9
  */
10
- import type { ClassifyResult, EmbedResult, EmbeddingKind, LLMClient } from "../ports/llm-client.js";
10
+ import type { ClassifyResult, EmbedResult, EmbeddingKind, LLMClient, RewriteResult } from "../ports/llm-client.js";
11
11
  export type ClassifierProvider = "deepseek" | "ollama";
12
12
  export interface ClassifierBoxOptions {
13
13
  readonly provider: ClassifierProvider;
@@ -25,5 +25,6 @@ export declare class ClassifierBox implements LLMClient {
25
25
  swap(provider: ClassifierProvider, model: string): void;
26
26
  embed(_text: string, _kind: EmbeddingKind): Promise<EmbedResult>;
27
27
  classify(transcript: string): Promise<ClassifyResult>;
28
+ rewriteForRecall(query: string): Promise<RewriteResult>;
28
29
  private construct;
29
30
  }
@@ -33,6 +33,9 @@ export class ClassifierBox {
33
33
  classify(transcript) {
34
34
  return this.inner.classify(transcript);
35
35
  }
36
+ rewriteForRecall(query) {
37
+ return this.inner.rewriteForRecall(query);
38
+ }
36
39
  construct(provider, model) {
37
40
  if (provider === "ollama") {
38
41
  return new OllamaClient({ baseUrl: this.ollamaUrl, classifyModel: model });
@@ -1 +1 @@
1
- {"version":3,"file":"classifier-box.js","sourceRoot":"","sources":["../../src/llm/classifier-box.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAUlD,MAAM,OAAO,aAAa;IAChB,KAAK,CAAY;IACjB,YAAY,CAAqB;IACjC,SAAS,CAAS;IACT,SAAS,CAAS;IAEnC,YAAY,IAA0B;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,wBAAwB,CAAC;QAC5D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,QAAQ,KAAyB,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAChE,IAAI,KAAK,KAAa,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAE9C,IAAI,CAAC,QAA4B,EAAE,KAAa;QAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,KAAa,EAAE,KAAoB;QACvC,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;IAC/F,CAAC;IAED,QAAQ,CAAC,UAAkB;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAEO,SAAS,CAAC,QAA4B,EAAE,KAAa;QAC3D,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,OAAO,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7E,CAAC;QACD,OAAO,IAAI,cAAc,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;CACF"}
1
+ {"version":3,"file":"classifier-box.js","sourceRoot":"","sources":["../../src/llm/classifier-box.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAUlD,MAAM,OAAO,aAAa;IAChB,KAAK,CAAY;IACjB,YAAY,CAAqB;IACjC,SAAS,CAAS;IACT,SAAS,CAAS;IAEnC,YAAY,IAA0B;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,wBAAwB,CAAC;QAC5D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,QAAQ,KAAyB,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAChE,IAAI,KAAK,KAAa,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAE9C,IAAI,CAAC,QAA4B,EAAE,KAAa;QAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,KAAa,EAAE,KAAoB;QACvC,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;IAC/F,CAAC;IAED,QAAQ,CAAC,UAAkB;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAED,gBAAgB,CAAC,KAAa;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAEO,SAAS,CAAC,QAA4B,EAAE,KAAa;QAC3D,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,OAAO,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7E,CAAC;QACD,OAAO,IAAI,cAAc,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;CACF"}
@@ -7,7 +7,9 @@
7
7
  * • ~$0.002/session at typical sizes — full backfill of ~1,200 sessions
8
8
  * ≈ $2.50.
9
9
  * • Strong extraction quality (12+ entities, accurate decisions,
10
- * 0.9 confidence) where phi4-mini struggles or times out.
10
+ * 0.9 confidence). The 2026-06-02 head-to-head bench found qwen3:4b
11
+ * statistically tied on schema validity and entity counts at $0/local;
12
+ * DeepSeek remains the speed/throughput pick.
11
13
  *
12
14
  * Same prompt module as OllamaClient — only the transport differs. Same
13
15
  * error semantics: LLMUnreachableError for network/HTTP, ClassifierSchemaError
@@ -17,7 +19,7 @@
17
19
  * Embedding is not supported by DeepSeek's API — `embed()` throws. Wire a
18
20
  * separate embedder (OllamaClient) for semantic recall.
19
21
  */
20
- import type { ClassifyResult, EmbedResult, EmbeddingKind, LLMClient } from "../ports/llm-client.js";
22
+ import type { ClassifyResult, EmbedResult, EmbeddingKind, LLMClient, RewriteResult } from "../ports/llm-client.js";
21
23
  export type FetchImpl = typeof fetch;
22
24
  export interface DeepSeekClientOptions {
23
25
  readonly apiKey?: string;
@@ -37,4 +39,5 @@ export declare class DeepSeekClient implements LLMClient {
37
39
  constructor(opts?: DeepSeekClientOptions);
38
40
  embed(_text: string, _kind: EmbeddingKind): Promise<EmbedResult>;
39
41
  classify(transcript: string, priorContext?: string): Promise<ClassifyResult>;
42
+ rewriteForRecall(query: string): Promise<RewriteResult>;
40
43
  }
@@ -7,7 +7,9 @@
7
7
  * • ~$0.002/session at typical sizes — full backfill of ~1,200 sessions
8
8
  * ≈ $2.50.
9
9
  * • Strong extraction quality (12+ entities, accurate decisions,
10
- * 0.9 confidence) where phi4-mini struggles or times out.
10
+ * 0.9 confidence). The 2026-06-02 head-to-head bench found qwen3:4b
11
+ * statistically tied on schema validity and entity counts at $0/local;
12
+ * DeepSeek remains the speed/throughput pick.
11
13
  *
12
14
  * Same prompt module as OllamaClient — only the transport differs. Same
13
15
  * error semantics: LLMUnreachableError for network/HTTP, ClassifierSchemaError
@@ -19,7 +21,16 @@
19
21
  */
20
22
  import { LLMUnreachableError } from "../ports/llm-client.js";
21
23
  import { CLASSIFIER_SYSTEM_PROMPT, buildUserPrompt, coerceClassifyResult, stripJsonFences, validateClassifierJson, } from "../core/classifier/prompt.js";
24
+ import { REWRITE_SYSTEM_PROMPT, parseRewriteJson } from "../core/recall/rewrite-prompt.js";
22
25
  import { ClassifierSchemaError } from "./ollama-client.js";
26
+ const DEFAULT_REWRITE_TIMEOUT_MS = 5_000;
27
+ function rewriteTimeoutMs() {
28
+ const raw = process.env["NLM_RECALL_REWRITE_TIMEOUT_MS"];
29
+ if (!raw)
30
+ return DEFAULT_REWRITE_TIMEOUT_MS;
31
+ const parsed = Number.parseInt(raw, 10);
32
+ return Number.isFinite(parsed) && parsed > 0 ? parsed : DEFAULT_REWRITE_TIMEOUT_MS;
33
+ }
23
34
  export class DeepSeekClient {
24
35
  apiKey;
25
36
  baseUrl;
@@ -110,5 +121,44 @@ export class DeepSeekClient {
110
121
  clearTimeout(timer);
111
122
  }
112
123
  }
124
+ async rewriteForRecall(query) {
125
+ const controller = new AbortController();
126
+ const timer = setTimeout(() => controller.abort(), rewriteTimeoutMs());
127
+ try {
128
+ const res = await this.fetchImpl(`${this.baseUrl}/chat/completions`, {
129
+ method: "POST",
130
+ headers: {
131
+ "Content-Type": "application/json",
132
+ Authorization: `Bearer ${this.apiKey}`,
133
+ },
134
+ body: JSON.stringify({
135
+ model: this.classifyModel,
136
+ messages: [
137
+ { role: "system", content: REWRITE_SYSTEM_PROMPT },
138
+ { role: "user", content: query },
139
+ ],
140
+ response_format: { type: "json_object" },
141
+ temperature: 0.1,
142
+ max_tokens: 512,
143
+ stream: false,
144
+ }),
145
+ signal: controller.signal,
146
+ });
147
+ if (!res.ok) {
148
+ throw new LLMUnreachableError("deepseek-rewrite", `status ${res.status}: ${await res.text().catch(() => "")}`);
149
+ }
150
+ const data = (await res.json());
151
+ const rawContent = data.choices?.[0]?.message?.content?.trim() ?? "";
152
+ return parseRewriteJson(rawContent, "deepseek");
153
+ }
154
+ catch (e) {
155
+ if (e instanceof LLMUnreachableError)
156
+ throw e;
157
+ throw new LLMUnreachableError("deepseek-rewrite", e);
158
+ }
159
+ finally {
160
+ clearTimeout(timer);
161
+ }
162
+ }
113
163
  }
114
164
  //# sourceMappingURL=deepseek-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deepseek-client.js","sourceRoot":"","sources":["../../src/llm/deepseek-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deepseek-client.js","sourceRoot":"","sources":["../../src/llm/deepseek-client.ts"],"names":[],"mappings":"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"}