nlm-memory 0.12.0 → 0.13.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 (125) hide show
  1. package/README.md +1 -1
  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 +314 -55
  5. package/dist/cli/nlm.js.map +1 -1
  6. package/dist/core/classifier/prompt.d.ts +70 -0
  7. package/dist/core/classifier/prompt.js +71 -2
  8. package/dist/core/classifier/prompt.js.map +1 -1
  9. package/dist/core/exemplars/extract-exemplar.d.ts +36 -0
  10. package/dist/core/exemplars/extract-exemplar.js +177 -0
  11. package/dist/core/exemplars/extract-exemplar.js.map +1 -0
  12. package/dist/core/exemplars/ingest-exemplar.d.ts +30 -0
  13. package/dist/core/exemplars/ingest-exemplar.js +71 -0
  14. package/dist/core/exemplars/ingest-exemplar.js.map +1 -0
  15. package/dist/core/exemplars/recall-code.d.ts +25 -0
  16. package/dist/core/exemplars/recall-code.js +49 -0
  17. package/dist/core/exemplars/recall-code.js.map +1 -0
  18. package/dist/core/facts/backfill-facts.d.ts +4 -2
  19. package/dist/core/facts/backfill-facts.js +18 -27
  20. package/dist/core/facts/backfill-facts.js.map +1 -1
  21. package/dist/core/hook/strip-injected-context.d.ts +24 -0
  22. package/dist/core/hook/strip-injected-context.js +73 -0
  23. package/dist/core/hook/strip-injected-context.js.map +1 -0
  24. package/dist/core/ingest/ingest-session.d.ts +4 -2
  25. package/dist/core/ingest/ingest-session.js +12 -4
  26. package/dist/core/ingest/ingest-session.js.map +1 -1
  27. package/dist/core/providers/provider-registry.d.ts +31 -11
  28. package/dist/core/providers/provider-registry.js +27 -13
  29. package/dist/core/providers/provider-registry.js.map +1 -1
  30. package/dist/core/recall-facts/fact-recall-service.js +75 -28
  31. package/dist/core/recall-facts/fact-recall-service.js.map +1 -1
  32. package/dist/core/scheduler/scheduler.d.ts +4 -2
  33. package/dist/core/scheduler/scheduler.js +26 -15
  34. package/dist/core/scheduler/scheduler.js.map +1 -1
  35. package/dist/core/sources/source-registry.d.ts +36 -12
  36. package/dist/core/sources/source-registry.js +59 -44
  37. package/dist/core/sources/source-registry.js.map +1 -1
  38. package/dist/core/storage/backup-rotation.d.ts +38 -0
  39. package/dist/core/storage/backup-rotation.js +82 -0
  40. package/dist/core/storage/backup-rotation.js.map +1 -0
  41. package/dist/core/storage/null-code-exemplar-store.d.ts +21 -0
  42. package/dist/core/storage/null-code-exemplar-store.js +19 -0
  43. package/dist/core/storage/null-code-exemplar-store.js.map +1 -0
  44. package/dist/core/storage/pg-fact-store.d.ts +2 -0
  45. package/dist/core/storage/pg-fact-store.js +34 -3
  46. package/dist/core/storage/pg-fact-store.js.map +1 -1
  47. package/dist/core/storage/pg-session-store.d.ts +14 -4
  48. package/dist/core/storage/pg-session-store.js +123 -2
  49. package/dist/core/storage/pg-session-store.js.map +1 -1
  50. package/dist/core/storage/pg-storage.d.ts +11 -2
  51. package/dist/core/storage/pg-storage.js +14 -2
  52. package/dist/core/storage/pg-storage.js.map +1 -1
  53. package/dist/core/storage/pg-tx-context.d.ts +2 -0
  54. package/dist/core/storage/pg-tx-context.js +12 -0
  55. package/dist/core/storage/pg-tx-context.js.map +1 -1
  56. package/dist/core/storage/sqlite-code-exemplar-store.d.ts +40 -0
  57. package/dist/core/storage/sqlite-code-exemplar-store.js +247 -0
  58. package/dist/core/storage/sqlite-code-exemplar-store.js.map +1 -0
  59. package/dist/core/storage/sqlite-fact-store.d.ts +2 -0
  60. package/dist/core/storage/sqlite-fact-store.js +30 -2
  61. package/dist/core/storage/sqlite-fact-store.js.map +1 -1
  62. package/dist/core/storage/sqlite-session-store.d.ts +21 -0
  63. package/dist/core/storage/sqlite-session-store.js +23 -0
  64. package/dist/core/storage/sqlite-session-store.js.map +1 -1
  65. package/dist/core/storage/sqlite-storage.d.ts +6 -0
  66. package/dist/core/storage/sqlite-storage.js +14 -2
  67. package/dist/core/storage/sqlite-storage.js.map +1 -1
  68. package/dist/core/storage/supersedence-log.d.ts +8 -0
  69. package/dist/core/storage/supersedence-log.js +19 -0
  70. package/dist/core/storage/supersedence-log.js.map +1 -1
  71. package/dist/hook/prompt-recall-hook.d.ts +5 -4
  72. package/dist/hook/prompt-recall-hook.js +12 -7
  73. package/dist/hook/prompt-recall-hook.js.map +1 -1
  74. package/dist/http/app.d.ts +7 -1
  75. package/dist/http/app.js +226 -83
  76. package/dist/http/app.js.map +1 -1
  77. package/dist/install/codex.d.ts +29 -1
  78. package/dist/install/codex.js +117 -15
  79. package/dist/install/codex.js.map +1 -1
  80. package/dist/install/cursor.d.ts +4 -4
  81. package/dist/install/cursor.js +7 -7
  82. package/dist/install/cursor.js.map +1 -1
  83. package/dist/install/health.d.ts +56 -0
  84. package/dist/install/health.js +133 -0
  85. package/dist/install/health.js.map +1 -0
  86. package/dist/install/setup.js +1 -1
  87. package/dist/install/setup.js.map +1 -1
  88. package/dist/install/windsurf.d.ts +4 -4
  89. package/dist/install/windsurf.js +7 -7
  90. package/dist/install/windsurf.js.map +1 -1
  91. package/dist/llm/classifier-box.d.ts +4 -0
  92. package/dist/llm/classifier-box.js +9 -2
  93. package/dist/llm/classifier-box.js.map +1 -1
  94. package/dist/llm/ollama-client.d.ts +19 -1
  95. package/dist/llm/ollama-client.js +14 -6
  96. package/dist/llm/ollama-client.js.map +1 -1
  97. package/dist/llm/ollama-code-embedder.d.ts +28 -0
  98. package/dist/llm/ollama-code-embedder.js +73 -0
  99. package/dist/llm/ollama-code-embedder.js.map +1 -0
  100. package/dist/mcp/server.d.ts +10 -0
  101. package/dist/mcp/server.js +132 -1
  102. package/dist/mcp/server.js.map +1 -1
  103. package/dist/ports/code-embedder.d.ts +27 -0
  104. package/dist/ports/code-embedder.js +15 -0
  105. package/dist/ports/code-embedder.js.map +1 -0
  106. package/dist/ports/code-exemplar-store.d.ts +45 -0
  107. package/dist/ports/code-exemplar-store.js +11 -0
  108. package/dist/ports/code-exemplar-store.js.map +1 -0
  109. package/dist/ports/fact-store.d.ts +0 -0
  110. package/dist/ports/fact-store.js.map +1 -1
  111. package/dist/ports/storage.d.ts +8 -0
  112. package/dist/shared/types.d.ts +35 -0
  113. package/dist/ui/assets/{index-Fr5AMEPj.js → index-CVo7KKw2.js} +1 -1
  114. package/dist/ui/assets/{index-C74N8APQ.css → index-DCuQrzJH.css} +1 -1
  115. package/dist/ui/index.html +2 -2
  116. package/migrations/021_code_exemplars.sql +51 -0
  117. package/migrations/022_facts_retired_at.sql +17 -0
  118. package/migrations/pg/021_code_exemplars.sql +45 -0
  119. package/migrations/pg/022_facts_retired_at.sql +12 -0
  120. package/nlm/index.js +6 -1
  121. package/package.json +3 -2
  122. package/plugin/.codex-plugin/plugin.json +2 -2
  123. package/plugin/hooks/hooks.json +13 -2
  124. package/plugin/scripts/prompt-recall-hook.mjs +7 -1
  125. package/plugin/scripts/session-start-hook.mjs +275 -0
@@ -8,21 +8,21 @@
8
8
  */
9
9
  import { existsSync } from "node:fs";
10
10
  import { defaultDbPath } from "../core/adapters/cursor.js";
11
- export function connectCursor(registry, opts = {}) {
11
+ export async function connectCursor(registry, opts = {}) {
12
12
  const adapterDbPath = opts.dbPath ?? defaultDbPath();
13
13
  const adapterExists = existsSync(adapterDbPath);
14
14
  if (opts.dryRun) {
15
15
  return { adapterDbPath, adapterExists, action: "dry-run" };
16
16
  }
17
- const existing = registry.getByName("Cursor");
17
+ const existing = await registry.getByName("Cursor");
18
18
  if (existing) {
19
19
  if (existing.enabled && existing.pathOrUrl === adapterDbPath) {
20
20
  return { adapterDbPath, adapterExists, action: "already-active" };
21
21
  }
22
- registry.update(existing.id, { enabled: true, pathOrUrl: adapterDbPath });
22
+ await registry.update(existing.id, { enabled: true, pathOrUrl: adapterDbPath });
23
23
  return { adapterDbPath, adapterExists, action: "enabled" };
24
24
  }
25
- registry.insert({
25
+ await registry.insert({
26
26
  kind: "cursor",
27
27
  name: "Cursor",
28
28
  pathOrUrl: adapterDbPath,
@@ -31,13 +31,13 @@ export function connectCursor(registry, opts = {}) {
31
31
  });
32
32
  return { adapterDbPath, adapterExists, action: "created" };
33
33
  }
34
- export function disconnectCursor(registry, opts = {}) {
34
+ export async function disconnectCursor(registry, opts = {}) {
35
35
  if (opts.dryRun)
36
36
  return { action: "dry-run" };
37
- const existing = registry.getByName("Cursor");
37
+ const existing = await registry.getByName("Cursor");
38
38
  if (!existing)
39
39
  return { action: "not-found" };
40
- registry.update(existing.id, { enabled: false });
40
+ await registry.update(existing.id, { enabled: false });
41
41
  return { action: "disabled" };
42
42
  }
43
43
  //# sourceMappingURL=cursor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/install/cursor.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAkB3D,MAAM,UAAU,aAAa,CAC3B,QAAwB,EACxB,OAA6B,EAAE;IAE/B,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,IAAI,aAAa,EAAE,CAAC;IACrD,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IAEhD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC7D,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,SAAS,KAAK,aAAa,EAAE,CAAC;YAC7D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;QACpE,CAAC;QACD,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;QAC1E,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC7D,CAAC;IAED,QAAQ,CAAC,MAAM,CAAC;QACd,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,aAAa;QACxB,YAAY,EAAE,YAAY;QAC1B,OAAO,EAAE,aAAa;KACvB,CAAC,CAAC;IACH,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,QAAwB,EACxB,OAA6B,EAAE;IAE/B,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC9C,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAC9C,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IACjD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/install/cursor.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAkB3D,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAA4B,EAC5B,OAA6B,EAAE;IAE/B,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,IAAI,aAAa,EAAE,CAAC;IACrD,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IAEhD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC7D,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACpD,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,SAAS,KAAK,aAAa,EAAE,CAAC;YAC7D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;QACpE,CAAC;QACD,MAAM,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;QAChF,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC7D,CAAC;IAED,MAAM,QAAQ,CAAC,MAAM,CAAC;QACpB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,aAAa;QACxB,YAAY,EAAE,YAAY;QAC1B,OAAO,EAAE,aAAa;KACvB,CAAC,CAAC;IACH,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC7D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAA4B,EAC5B,OAA6B,EAAE;IAE/B,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC9C,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACpD,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAC9C,MAAM,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IACvD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAChC,CAAC"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Install/runtime health checks for `nlm doctor`.
3
+ *
4
+ * The existing doctor checks DB integrity invariants (I1-I6). These checks
5
+ * cover the OTHER half a public user hits: is the daemon up and current, is the
6
+ * MCP token present, are the Claude Code / Codex runtimes wired, and is there a
7
+ * stale `nlm-memory-ts` plugin left over from a pre-rename install.
8
+ *
9
+ * `evaluateInstallHealth` is pure: it takes a fully-gathered `InstallProbe` and
10
+ * returns verdicts. All IO (filesystem reads, daemon ping) happens in the
11
+ * gatherer at the CLI boundary, so the rules are unit-testable without a daemon
12
+ * or a real home directory.
13
+ */
14
+ export type HealthStatus = "ok" | "warn" | "fail";
15
+ export interface HealthCheck {
16
+ readonly id: string;
17
+ readonly status: HealthStatus;
18
+ readonly detail: string;
19
+ /** Exact command to run to resolve a warn/fail. Omitted when status is ok. */
20
+ readonly fix?: string;
21
+ }
22
+ export interface InstallProbe {
23
+ readonly daemon: {
24
+ readonly reachable: boolean;
25
+ /** Version string reported by /api/health, or null if unreachable. */
26
+ readonly version: string | null;
27
+ /** Version this binary expects (package.json). */
28
+ readonly expectedVersion: string;
29
+ };
30
+ readonly env: {
31
+ readonly path: string;
32
+ readonly exists: boolean;
33
+ /** Whether NLM_MCP_TOKEN resolved (from env file or process env). Never the value. */
34
+ readonly hasMcpToken: boolean;
35
+ };
36
+ readonly claudeCode: {
37
+ readonly configPath: string;
38
+ readonly mcpConfigured: boolean;
39
+ };
40
+ readonly codex: {
41
+ readonly configPath: string;
42
+ readonly configPresent: boolean;
43
+ readonly mcpConfigured: boolean;
44
+ /** A pre-rename `nlm-memory-ts` plugin/marketplace entry is still present. */
45
+ readonly staleNlmMemoryTs: boolean;
46
+ };
47
+ }
48
+ export declare function evaluateInstallHealth(probe: InstallProbe): HealthCheck[];
49
+ /**
50
+ * Verdict for `nlm verify`'s synthetic recall smoke test: a GET /api/recall
51
+ * round-trip that proves the HTTP -> store -> response path works. `wellFormed`
52
+ * is whether the body parsed to an object with a `results` array.
53
+ */
54
+ export declare function evaluateRecallSmoke(reachable: boolean, status: number | null, wellFormed: boolean): HealthCheck;
55
+ /** Verdict for the classifier + embedding model presence (Ollama backend). */
56
+ export declare function evaluateModelHealth(embeddingPresent: boolean, classifierModel: string, classifierPresent: boolean): HealthCheck;
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Install/runtime health checks for `nlm doctor`.
3
+ *
4
+ * The existing doctor checks DB integrity invariants (I1-I6). These checks
5
+ * cover the OTHER half a public user hits: is the daemon up and current, is the
6
+ * MCP token present, are the Claude Code / Codex runtimes wired, and is there a
7
+ * stale `nlm-memory-ts` plugin left over from a pre-rename install.
8
+ *
9
+ * `evaluateInstallHealth` is pure: it takes a fully-gathered `InstallProbe` and
10
+ * returns verdicts. All IO (filesystem reads, daemon ping) happens in the
11
+ * gatherer at the CLI boundary, so the rules are unit-testable without a daemon
12
+ * or a real home directory.
13
+ */
14
+ export function evaluateInstallHealth(probe) {
15
+ return [
16
+ daemonReachable(probe),
17
+ daemonVersion(probe),
18
+ mcpToken(probe),
19
+ claudeCodeWiring(probe),
20
+ codexStaleName(probe),
21
+ codexWiring(probe),
22
+ ];
23
+ }
24
+ function daemonReachable(p) {
25
+ if (p.daemon.reachable) {
26
+ return { id: "daemon", status: "ok", detail: "daemon reachable" };
27
+ }
28
+ return {
29
+ id: "daemon",
30
+ status: "fail",
31
+ detail: "daemon unreachable",
32
+ fix: "nlm start",
33
+ };
34
+ }
35
+ function daemonVersion(p) {
36
+ if (!p.daemon.reachable || p.daemon.version === null) {
37
+ return { id: "daemon-version", status: "warn", detail: "daemon version unknown (not running)" };
38
+ }
39
+ if (p.daemon.version === p.daemon.expectedVersion) {
40
+ return { id: "daemon-version", status: "ok", detail: `running ${p.daemon.version}` };
41
+ }
42
+ return {
43
+ id: "daemon-version",
44
+ status: "warn",
45
+ detail: `daemon ${p.daemon.version} != installed ${p.daemon.expectedVersion}`,
46
+ fix: "nlm restart",
47
+ };
48
+ }
49
+ function mcpToken(p) {
50
+ if (p.env.hasMcpToken) {
51
+ return { id: "mcp-token", status: "ok", detail: "NLM_MCP_TOKEN present" };
52
+ }
53
+ return {
54
+ id: "mcp-token",
55
+ status: "warn",
56
+ detail: `NLM_MCP_TOKEN not set (${p.env.exists ? p.env.path : "no .env file"})`,
57
+ fix: "nlm setup",
58
+ };
59
+ }
60
+ function claudeCodeWiring(p) {
61
+ if (p.claudeCode.mcpConfigured) {
62
+ return { id: "claude-code", status: "ok", detail: "MCP server configured" };
63
+ }
64
+ return {
65
+ id: "claude-code",
66
+ status: "warn",
67
+ detail: `no nlm MCP block in ${p.claudeCode.configPath}`,
68
+ fix: "nlm connect claude-code",
69
+ };
70
+ }
71
+ function codexStaleName(p) {
72
+ if (!p.codex.staleNlmMemoryTs) {
73
+ return { id: "codex-stale", status: "ok", detail: "no stale nlm-memory-ts entry" };
74
+ }
75
+ return {
76
+ id: "codex-stale",
77
+ status: "fail",
78
+ detail: "stale nlm-memory-ts plugin entry in Codex config",
79
+ fix: "nlm connect codex --repair",
80
+ };
81
+ }
82
+ /**
83
+ * Verdict for `nlm verify`'s synthetic recall smoke test: a GET /api/recall
84
+ * round-trip that proves the HTTP -> store -> response path works. `wellFormed`
85
+ * is whether the body parsed to an object with a `results` array.
86
+ */
87
+ export function evaluateRecallSmoke(reachable, status, wellFormed) {
88
+ if (!reachable) {
89
+ return { id: "recall-smoke", status: "fail", detail: "daemon unreachable — cannot run recall smoke test", fix: "nlm start" };
90
+ }
91
+ if (status === 200 && wellFormed) {
92
+ return { id: "recall-smoke", status: "ok", detail: "GET /api/recall returned a well-formed result set" };
93
+ }
94
+ return {
95
+ id: "recall-smoke",
96
+ status: "fail",
97
+ detail: `recall smoke test failed (status ${status ?? "none"}, well-formed=${wellFormed})`,
98
+ fix: "nlm restart; check nlm logs",
99
+ };
100
+ }
101
+ /** Verdict for the classifier + embedding model presence (Ollama backend). */
102
+ export function evaluateModelHealth(embeddingPresent, classifierModel, classifierPresent) {
103
+ if (embeddingPresent && classifierPresent) {
104
+ return { id: "models", status: "ok", detail: `embedding + classifier (${classifierModel}) present` };
105
+ }
106
+ const missing = [
107
+ embeddingPresent ? null : "embedding",
108
+ classifierPresent ? null : `classifier (${classifierModel})`,
109
+ ].filter(Boolean).join(", ");
110
+ return {
111
+ id: "models",
112
+ status: "fail",
113
+ detail: `missing Ollama model(s): ${missing}`,
114
+ fix: "nlm setup",
115
+ };
116
+ }
117
+ function codexWiring(p) {
118
+ // Codex is optional. Only warn when its config exists but lacks the MCP block;
119
+ // a user with no Codex config at all isn't misconfigured, just not using it.
120
+ if (!p.codex.configPresent) {
121
+ return { id: "codex", status: "ok", detail: "Codex not configured (optional)" };
122
+ }
123
+ if (p.codex.mcpConfigured) {
124
+ return { id: "codex", status: "ok", detail: "MCP server configured" };
125
+ }
126
+ return {
127
+ id: "codex",
128
+ status: "warn",
129
+ detail: `Codex config present but no nlm MCP block (${p.codex.configPath})`,
130
+ fix: "nlm connect codex",
131
+ };
132
+ }
133
+ //# sourceMappingURL=health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/install/health.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@ 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
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
+ const RECOMMENDED_OLLAMA_CLASSIFIER = "qwen3.5:4b";
24
24
  import { installClaudeCodeHooks } from "./claude-code.js";
25
25
  import { hardenNlmDirPermissions } from "./nlm-dir-perms.js";
26
26
  const OS = platform();
@@ -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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"}
@@ -6,7 +6,7 @@
6
6
  * directory. The connect operation only registers the source row so the daemon
7
7
  * scans it.
8
8
  */
9
- import type { SourceRegistry } from "../core/sources/source-registry.js";
9
+ import type { SourceRegistryPort } from "../core/sources/source-registry.js";
10
10
  export interface ConnectWindsurfOptions {
11
11
  readonly userDir?: string;
12
12
  readonly dryRun?: boolean;
@@ -19,7 +19,7 @@ export interface ConnectWindsurfReport {
19
19
  export interface DisconnectWindsurfReport {
20
20
  readonly action: "disabled" | "not-found" | "dry-run";
21
21
  }
22
- export declare function connectWindsurf(registry: SourceRegistry, opts?: ConnectWindsurfOptions): ConnectWindsurfReport;
23
- export declare function disconnectWindsurf(registry: SourceRegistry, opts?: {
22
+ export declare function connectWindsurf(registry: SourceRegistryPort, opts?: ConnectWindsurfOptions): Promise<ConnectWindsurfReport>;
23
+ export declare function disconnectWindsurf(registry: SourceRegistryPort, opts?: {
24
24
  dryRun?: boolean;
25
- }): DisconnectWindsurfReport;
25
+ }): Promise<DisconnectWindsurfReport>;
@@ -8,21 +8,21 @@
8
8
  */
9
9
  import { existsSync } from "node:fs";
10
10
  import { defaultUserDir } from "../core/adapters/windsurf.js";
11
- export function connectWindsurf(registry, opts = {}) {
11
+ export async function connectWindsurf(registry, opts = {}) {
12
12
  const userDir = opts.userDir ?? defaultUserDir();
13
13
  const dirExists = existsSync(userDir);
14
14
  if (opts.dryRun) {
15
15
  return { userDir, dirExists, action: "dry-run" };
16
16
  }
17
- const existing = registry.getByName("Windsurf");
17
+ const existing = await registry.getByName("Windsurf");
18
18
  if (existing) {
19
19
  if (existing.enabled && existing.pathOrUrl === userDir) {
20
20
  return { userDir, dirExists, action: "already-active" };
21
21
  }
22
- registry.update(existing.id, { enabled: true, pathOrUrl: userDir });
22
+ await registry.update(existing.id, { enabled: true, pathOrUrl: userDir });
23
23
  return { userDir, dirExists, action: "enabled" };
24
24
  }
25
- registry.insert({
25
+ await registry.insert({
26
26
  kind: "windsurf",
27
27
  name: "Windsurf",
28
28
  pathOrUrl: userDir,
@@ -31,13 +31,13 @@ export function connectWindsurf(registry, opts = {}) {
31
31
  });
32
32
  return { userDir, dirExists, action: "created" };
33
33
  }
34
- export function disconnectWindsurf(registry, opts = {}) {
34
+ export async function disconnectWindsurf(registry, opts = {}) {
35
35
  if (opts.dryRun)
36
36
  return { action: "dry-run" };
37
- const existing = registry.getByName("Windsurf");
37
+ const existing = await registry.getByName("Windsurf");
38
38
  if (!existing)
39
39
  return { action: "not-found" };
40
- registry.update(existing.id, { enabled: false });
40
+ await registry.update(existing.id, { enabled: false });
41
41
  return { action: "disabled" };
42
42
  }
43
43
  //# sourceMappingURL=windsurf.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"windsurf.js","sourceRoot":"","sources":["../../src/install/windsurf.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAkB9D,MAAM,UAAU,eAAe,CAC7B,QAAwB,EACxB,OAA+B,EAAE;IAEjC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,cAAc,EAAE,CAAC;IACjD,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAEtC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACnD,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;YACvD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;QAC1D,CAAC;QACD,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;QACpE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACnD,CAAC;IAED,QAAQ,CAAC,MAAM,CAAC;QACd,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,OAAO;QAClB,YAAY,EAAE,cAAc;QAC5B,OAAO,EAAE,SAAS;KACnB,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,QAAwB,EACxB,OAA6B,EAAE;IAE/B,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC9C,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAC9C,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IACjD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"windsurf.js","sourceRoot":"","sources":["../../src/install/windsurf.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAkB9D,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAA4B,EAC5B,OAA+B,EAAE;IAEjC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,cAAc,EAAE,CAAC;IACjD,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAEtC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACnD,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACtD,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;YACvD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;QAC1D,CAAC;QACD,MAAM,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1E,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACnD,CAAC;IAED,MAAM,QAAQ,CAAC,MAAM,CAAC;QACpB,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,OAAO;QAClB,YAAY,EAAE,cAAc;QAC5B,OAAO,EAAE,SAAS;KACnB,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,QAA4B,EAC5B,OAA6B,EAAE;IAE/B,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC9C,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACtD,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAC9C,MAAM,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IACvD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAChC,CAAC"}
@@ -9,6 +9,10 @@
9
9
  */
10
10
  import type { ClassifyResult, EmbedResult, EmbeddingKind, LLMClient, RewriteResult } from "../ports/llm-client.js";
11
11
  export type ClassifierProvider = "deepseek" | "ollama";
12
+ /** Qwen 3.5+ models default to extended chain-of-thought, which blows the
13
+ * classify timeout. Disable thinking for them; non-thinking models like
14
+ * qwen3:4b-instruct are unaffected. */
15
+ export declare function classifierNeedsThinkDisabled(model: string): boolean;
12
16
  export interface ClassifierBoxOptions {
13
17
  readonly provider: ClassifierProvider;
14
18
  readonly model: string;
@@ -7,8 +7,15 @@
7
7
  * separately through the dedicated Ollama embedder; the classifier slot is
8
8
  * for transcript classification only.
9
9
  */
10
+ import { stripInjectedContext } from "../core/hook/strip-injected-context.js";
10
11
  import { DeepSeekClient } from "./deepseek-client.js";
11
12
  import { OllamaClient } from "./ollama-client.js";
13
+ /** Qwen 3.5+ models default to extended chain-of-thought, which blows the
14
+ * classify timeout. Disable thinking for them; non-thinking models like
15
+ * qwen3:4b-instruct are unaffected. */
16
+ export function classifierNeedsThinkDisabled(model) {
17
+ return /qwen3\.5/i.test(model);
18
+ }
12
19
  export class ClassifierBox {
13
20
  inner;
14
21
  providerName;
@@ -31,14 +38,14 @@ export class ClassifierBox {
31
38
  throw new Error("ClassifierBox.embed is not supported — wire OllamaClient as the embedder.");
32
39
  }
33
40
  classify(transcript) {
34
- return this.inner.classify(transcript);
41
+ return this.inner.classify(stripInjectedContext(transcript));
35
42
  }
36
43
  rewriteForRecall(query) {
37
44
  return this.inner.rewriteForRecall(query);
38
45
  }
39
46
  construct(provider, model) {
40
47
  if (provider === "ollama") {
41
- return new OllamaClient({ baseUrl: this.ollamaUrl, classifyModel: model });
48
+ return new OllamaClient({ baseUrl: this.ollamaUrl, classifyModel: model, ...(classifierNeedsThinkDisabled(model) ? { think: false } : {}) });
42
49
  }
43
50
  return new DeepSeekClient({ classifyModel: model });
44
51
  }
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"classifier-box.js","sourceRoot":"","sources":["../../src/llm/classifier-box.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD;;uCAEuC;AACvC,MAAM,UAAU,4BAA4B,CAAC,KAAa;IACxD,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AAQD,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,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC;IAC/D,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,GAAG,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/I,CAAC;QACD,OAAO,IAAI,cAAc,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;CACF"}
@@ -2,7 +2,7 @@
2
2
  * OllamaClient — LLMClient backed by a local Ollama HTTP endpoint.
3
3
  *
4
4
  * embed() → POST /api/embeddings (nomic-embed-text by default)
5
- * classify() → POST /api/chat (qwen3:4b-instruct-2507 by default, format=json)
5
+ * classify() → POST /api/chat (qwen3.5:4b by default, format=json)
6
6
  *
7
7
  * Network/HTTP failure maps to LLMUnreachableError so RecallService can
8
8
  * degrade to keyword mode without crashing. Classification parse failures
@@ -20,6 +20,22 @@ export interface OllamaClientOptions {
20
20
  readonly classifyModel?: string;
21
21
  readonly timeoutMs?: number;
22
22
  readonly classifyTimeoutMs?: number;
23
+ /**
24
+ * Ollama context window for classify/rewrite. Ollama defaults num_ctx to
25
+ * 4096; the classifier prompt for a median session is ~4.5K tokens, so the
26
+ * default silently HTTP-400s every long session. Sized to cover a 20K-char
27
+ * body plus system prompt and JSON output headroom.
28
+ */
29
+ readonly numCtx?: number;
30
+ /**
31
+ * Disable extended chain-of-thought thinking for models that support it
32
+ * (e.g. qwen3.5:4b). Passed as top-level `think: false` in the Ollama
33
+ * /api/chat request body. When omitted, Ollama uses the model's default
34
+ * (thinking ON for thinking-capable models, which causes 30–180s latency
35
+ * even on trivial prompts and triggers timeouts on the 180s classify wall).
36
+ * Set to false for qwen3.5 variants; leave unset for the incumbent.
37
+ */
38
+ readonly think?: boolean;
23
39
  /** Inject a fake fetch for tests. Defaults to global fetch. */
24
40
  readonly fetchImpl?: FetchImpl;
25
41
  }
@@ -29,6 +45,8 @@ export declare class OllamaClient implements LLMClient {
29
45
  private readonly classifyModel;
30
46
  private readonly timeoutMs;
31
47
  private readonly classifyTimeoutMs;
48
+ private readonly numCtx;
49
+ private readonly think;
32
50
  private readonly fetchImpl;
33
51
  constructor(opts?: OllamaClientOptions);
34
52
  embed(text: string, kind: EmbeddingKind): Promise<EmbedResult>;
@@ -2,7 +2,7 @@
2
2
  * OllamaClient — LLMClient backed by a local Ollama HTTP endpoint.
3
3
  *
4
4
  * embed() → POST /api/embeddings (nomic-embed-text by default)
5
- * classify() → POST /api/chat (qwen3:4b-instruct-2507 by default, format=json)
5
+ * classify() → POST /api/chat (qwen3.5:4b by default, format=json)
6
6
  *
7
7
  * Network/HTTP failure maps to LLMUnreachableError so RecallService can
8
8
  * degrade to keyword mode without crashing. Classification parse failures
@@ -12,7 +12,7 @@
12
12
  * not on this concrete class. Tests can substitute a fake client.
13
13
  */
14
14
  import { LLMUnreachableError } from "../ports/llm-client.js";
15
- import { CLASSIFIER_SYSTEM_PROMPT, buildUserPrompt, coerceClassifyResult, stripJsonFences, validateClassifierJson, } from "../core/classifier/prompt.js";
15
+ import { CLASSIFIER_SYSTEM_PROMPT, CLASSIFIER_JSON_SCHEMA, buildUserPrompt, coerceClassifyResult, stripJsonFences, validateClassifierJson, } from "../core/classifier/prompt.js";
16
16
  import { REWRITE_SYSTEM_PROMPT, parseRewriteJson } from "../core/recall/rewrite-prompt.js";
17
17
  const DEFAULT_REWRITE_TIMEOUT_MS = 5_000;
18
18
  function rewriteTimeoutMs() {
@@ -56,13 +56,17 @@ export class OllamaClient {
56
56
  classifyModel;
57
57
  timeoutMs;
58
58
  classifyTimeoutMs;
59
+ numCtx;
60
+ think;
59
61
  fetchImpl;
60
62
  constructor(opts = {}) {
61
63
  this.baseUrl = (opts.baseUrl ?? "http://localhost:11434").replace(/\/+$/, "");
62
64
  this.embedModel = opts.embedModel ?? "nomic-embed-text";
63
- this.classifyModel = opts.classifyModel ?? "qwen3:4b-instruct-2507-q4_K_M";
65
+ this.classifyModel = opts.classifyModel ?? "qwen3.5:4b";
64
66
  this.timeoutMs = opts.timeoutMs ?? 10_000;
65
67
  this.classifyTimeoutMs = opts.classifyTimeoutMs ?? 180_000;
68
+ this.numCtx = opts.numCtx ?? 16_384;
69
+ this.think = opts.think;
66
70
  this.fetchImpl = opts.fetchImpl ?? fetch;
67
71
  }
68
72
  async embed(text, kind) {
@@ -123,8 +127,10 @@ export class OllamaClient {
123
127
  { role: "user", content: userPrompt },
124
128
  ],
125
129
  stream: false,
126
- format: "json",
127
- options: { temperature: 0.1 },
130
+ format: CLASSIFIER_JSON_SCHEMA,
131
+ keep_alive: 0,
132
+ ...(this.think !== undefined ? { think: this.think } : {}),
133
+ options: { temperature: 0.1, num_ctx: this.numCtx },
128
134
  }),
129
135
  signal: controller.signal,
130
136
  });
@@ -170,7 +176,9 @@ export class OllamaClient {
170
176
  ],
171
177
  stream: false,
172
178
  format: "json",
173
- options: { temperature: 0.1 },
179
+ keep_alive: 0,
180
+ ...(this.think !== undefined ? { think: this.think } : {}),
181
+ options: { temperature: 0.1, num_ctx: this.numCtx },
174
182
  }),
175
183
  signal: controller.signal,
176
184
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ollama-client.js","sourceRoot":"","sources":["../../src/llm/ollama-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ollama-client.js","sourceRoot":"","sources":["../../src/llm/ollama-client.ts"],"names":[],"mappings":"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"}