@danielmarbach/mnemonic-mcp 0.28.0 → 0.30.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.
- package/CHANGELOG.md +17 -1
- package/README.md +7 -0
- package/build/cache.d.ts.map +1 -1
- package/build/cache.js +9 -9
- package/build/cache.js.map +1 -1
- package/build/cli/import-claude-memory.d.ts.map +1 -1
- package/build/cli/import-claude-memory.js +3 -1
- package/build/cli/import-claude-memory.js.map +1 -1
- package/build/config.d.ts.map +1 -1
- package/build/config.js +20 -18
- package/build/config.js.map +1 -1
- package/build/context.d.ts.map +1 -1
- package/build/context.js +8 -2
- package/build/context.js.map +1 -1
- package/build/domain-errors.d.ts +49 -0
- package/build/domain-errors.d.ts.map +1 -0
- package/build/domain-errors.js +99 -0
- package/build/domain-errors.js.map +1 -0
- package/build/embeddings.d.ts.map +1 -1
- package/build/embeddings.js +18 -10
- package/build/embeddings.js.map +1 -1
- package/build/error-utils.d.ts +30 -0
- package/build/error-utils.d.ts.map +1 -1
- package/build/error-utils.js +56 -0
- package/build/error-utils.js.map +1 -1
- package/build/git.d.ts.map +1 -1
- package/build/git.js +6 -2
- package/build/git.js.map +1 -1
- package/build/helpers/embed.d.ts.map +1 -1
- package/build/helpers/embed.js +10 -12
- package/build/helpers/embed.js.map +1 -1
- package/build/helpers/persistence.d.ts.map +1 -1
- package/build/helpers/persistence.js +3 -2
- package/build/helpers/persistence.js.map +1 -1
- package/build/migration.d.ts.map +1 -1
- package/build/migration.js +7 -4
- package/build/migration.js.map +1 -1
- package/build/project-introspection.d.ts.map +1 -1
- package/build/project-introspection.js +3 -1
- package/build/project-introspection.js.map +1 -1
- package/build/project.d.ts.map +1 -1
- package/build/project.js +24 -37
- package/build/project.js.map +1 -1
- package/build/projections.js +1 -1
- package/build/projections.js.map +1 -1
- package/build/provenance.d.ts +8 -2
- package/build/provenance.d.ts.map +1 -1
- package/build/provenance.js +40 -6
- package/build/provenance.js.map +1 -1
- package/build/recall.d.ts.map +1 -1
- package/build/recall.js +2 -1
- package/build/recall.js.map +1 -1
- package/build/relationships.d.ts.map +1 -1
- package/build/relationships.js +6 -6
- package/build/relationships.js.map +1 -1
- package/build/semantic-patch.d.ts.map +1 -1
- package/build/semantic-patch.js +6 -5
- package/build/semantic-patch.js.map +1 -1
- package/build/storage.d.ts.map +1 -1
- package/build/storage.js +38 -56
- package/build/storage.js.map +1 -1
- package/build/structured-content.d.ts +34 -0
- package/build/structured-content.d.ts.map +1 -1
- package/build/structured-content.js +16 -0
- package/build/structured-content.js.map +1 -1
- package/build/temporal-interpretation.d.ts.map +1 -1
- package/build/temporal-interpretation.js +3 -2
- package/build/temporal-interpretation.js.map +1 -1
- package/build/tools/consolidate-helpers.d.ts.map +1 -1
- package/build/tools/consolidate-helpers.js +11 -11
- package/build/tools/consolidate-helpers.js.map +1 -1
- package/build/tools/migration.d.ts.map +1 -1
- package/build/tools/migration.js +6 -5
- package/build/tools/migration.js.map +1 -1
- package/build/tools/recall-helpers.d.ts +12 -0
- package/build/tools/recall-helpers.d.ts.map +1 -1
- package/build/tools/recall-helpers.js +81 -1
- package/build/tools/recall-helpers.js.map +1 -1
- package/build/tools/recall.d.ts.map +1 -1
- package/build/tools/recall.js +81 -11
- package/build/tools/recall.js.map +1 -1
- package/build/tools/remember.d.ts.map +1 -1
- package/build/tools/remember.js +10 -10
- package/build/tools/remember.js.map +1 -1
- package/build/tools/update.d.ts.map +1 -1
- package/build/tools/update.js +28 -29
- package/build/tools/update.js.map +1 -1
- package/build/vault.d.ts.map +1 -1
- package/build/vault.js +35 -50
- package/build/vault.js.map +1 -1
- package/package.json +4 -2
- package/skills/mnemonic-rpi-workflow/SKILL.md +48 -17
package/CHANGELOG.md
CHANGED
|
@@ -4,7 +4,23 @@ All notable changes to `mnemonic` will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
The format is loosely based on Keep a Changelog and uses semver-style version headings.
|
|
6
6
|
|
|
7
|
-
## [
|
|
7
|
+
## [0.30.0] - 2026-05-10
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- Switch docker image from Alpine to Debian due to intermittent failures with musl
|
|
12
|
+
|
|
13
|
+
## [0.29.0] - 2026-05-09
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- `recall` results now include `recallScopeNoteCount`, `diversity` (theme count, role/lifecycle mix), and `retrievalCoverage` (fraction of high-priority anchors covered) in structured output.
|
|
18
|
+
- Recall automatically expands its default result limit for small vaults (25 notes or fewer), providing full-context retrieval without requiring the caller to tune the limit parameter.
|
|
19
|
+
- `recall` results now include per-result `signalStrength` — a composite quality signal (0.00-0.50) from role, centrality, lifecycle, and recency — alongside confidence tiers now derived from this richer dimensional score rather than a single coarse heuristic.
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
- `mnemonic-rpi-workflow` skill: Review phase now always requires a fresh-context subagent with adversarial posture — constraint violation hunting, deliverable completeness check, and fresh verification. Removes same-context self-review option. Review handoff template includes constraint checklist and 6-point adversarial mandate.
|
|
8
24
|
|
|
9
25
|
## [0.28.0] - 2026-05-03
|
|
10
26
|
|
package/README.md
CHANGED
|
@@ -354,6 +354,13 @@ Project identity derives from the **git remote URL**, normalized to a stable slu
|
|
|
354
354
|
|
|
355
355
|
`recall` with `cwd` searches both vaults. Project notes get a **small tiebreaker boost** — a soft signal, not a hard filter — so global memories remain accessible while project context floats to the top.
|
|
356
356
|
|
|
357
|
+
Every result carries structured quality signals to help agents decide what to trust:
|
|
358
|
+
|
|
359
|
+
- **`signalStrength`** — a composite score (0.00-0.50) from role, graph centrality, lifecycle, and recency. Higher values mean more structural support behind the note.
|
|
360
|
+
- **`confidence`** — high/medium/low tier derived from `signalStrength`, replacing a single coarse heuristic.
|
|
361
|
+
- **`diversity`** — theme count, role mix, and lifecycle mix across selected results.
|
|
362
|
+
- **`retrievalCoverage`** — fraction of high-priority anchors (alwaysLoad and summary notes) represented in results.
|
|
363
|
+
|
|
357
364
|
**Hybrid recall** enhances semantic search with lightweight lexical reranking over note projections. When semantic results are weak, a bounded lexical rescue path scans projections for additional candidates, improving exact-match and identifier-heavy recall without changing the storage model or adding new infrastructure. **Canonical explanation promotion** boosts notes that explain key decisions and concepts for "why"-style questions, using structural signals like role, connections, and format rather than keyword matching. **Temporal recency:** when a query suggests temporal intent, newer notes receive an additive ranking nudge in default mode.
|
|
358
365
|
|
|
359
366
|
Recall modes:
|
package/build/cache.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAKxC,UAAU,UAAU;IAClB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7B,QAAQ,EAAE,IAAI,EAAE,CAAC;IACjB,UAAU,EAAE,eAAe,EAAE,CAAC;CAC/B;AAED,UAAU,mBAAmB;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,yBAAyB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,mFAAmF;IACnF,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACrC,yEAAyE;IACzE,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC7C,sEAAsE;IACtE,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;IAC9D,2DAA2D;IAC3D,cAAc,EAAE,mBAAmB,EAAE,CAAC;IACtC,6EAA6E;IAC7E,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACpC,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC;CACrB;AAoCD;;;;;GAKG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CAanD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAOxF;AAED;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"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"}
|
package/build/cache.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { performance } from "perf_hooks";
|
|
2
|
-
import { debugLog } from "./error-utils.js";
|
|
2
|
+
import { attempt, debugLog } from "./error-utils.js";
|
|
3
3
|
// ── Module-level singleton ─────────────────────────────────────────────────────
|
|
4
4
|
const sessionCaches = {};
|
|
5
5
|
// ── Internal helpers ───────────────────────────────────────────────────────────
|
|
@@ -75,7 +75,7 @@ export async function getOrBuildVaultNoteList(projectId, vault) {
|
|
|
75
75
|
return existing.noteList;
|
|
76
76
|
}
|
|
77
77
|
debugLog("cache:miss", `project=${projectId} vault=${vaultPath}`);
|
|
78
|
-
|
|
78
|
+
const result = await attempt("cache:build", async () => {
|
|
79
79
|
const t0 = performance.now();
|
|
80
80
|
const [noteList, embeddings] = await Promise.all([
|
|
81
81
|
vault.storage.listNotes(),
|
|
@@ -86,11 +86,11 @@ export async function getOrBuildVaultNoteList(projectId, vault) {
|
|
|
86
86
|
const ms = (performance.now() - t0).toFixed(1);
|
|
87
87
|
debugLog("cache:build", `project=${projectId} vault=${vaultPath} notes=${noteList.length} embeddings=${embeddings.length} time=${ms}ms`);
|
|
88
88
|
return noteList;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
debugLog("cache:fallback", `project=${projectId} vault=${vaultPath} error=${String(err)}`);
|
|
89
|
+
});
|
|
90
|
+
if (!result.ok) {
|
|
92
91
|
return undefined;
|
|
93
92
|
}
|
|
93
|
+
return result.value;
|
|
94
94
|
}
|
|
95
95
|
/**
|
|
96
96
|
* Get the embeddings list for a vault from the session cache, building it lazily if needed.
|
|
@@ -109,7 +109,7 @@ export async function getOrBuildVaultEmbeddings(projectId, vault) {
|
|
|
109
109
|
return existing.embeddings;
|
|
110
110
|
}
|
|
111
111
|
debugLog("cache:miss", `project=${projectId} vault=${vaultPath}`);
|
|
112
|
-
|
|
112
|
+
const result = await attempt("cache:build", async () => {
|
|
113
113
|
const t0 = performance.now();
|
|
114
114
|
const [noteList, embeddings] = await Promise.all([
|
|
115
115
|
vault.storage.listNotes(),
|
|
@@ -120,11 +120,11 @@ export async function getOrBuildVaultEmbeddings(projectId, vault) {
|
|
|
120
120
|
const ms = (performance.now() - t0).toFixed(1);
|
|
121
121
|
debugLog("cache:build", `project=${projectId} vault=${vaultPath} notes=${noteList.length} embeddings=${embeddings.length} time=${ms}ms`);
|
|
122
122
|
return embeddings;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
debugLog("cache:fallback", `project=${projectId} vault=${vaultPath} error=${String(err)}`);
|
|
123
|
+
});
|
|
124
|
+
if (!result.ok) {
|
|
126
125
|
return undefined;
|
|
127
126
|
}
|
|
127
|
+
return result.value;
|
|
128
128
|
}
|
|
129
129
|
/**
|
|
130
130
|
* Look up a single note from an already-built vault cache.
|
package/build/cache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAIzC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-claude-memory.d.ts","sourceRoot":"","sources":["../../src/cli/import-claude-memory.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"import-claude-memory.d.ts","sourceRoot":"","sources":["../../src/cli/import-claude-memory.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAS7C,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAIxD;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAuJlD"}
|
|
@@ -6,6 +6,7 @@ import { resolveUserPath, defaultVaultPath, defaultClaudeHome } from "../paths.j
|
|
|
6
6
|
import { VaultManager } from "../vault.js";
|
|
7
7
|
import { parseMemorySections } from "../import.js";
|
|
8
8
|
import { MnemonicConfigStore } from "../config.js";
|
|
9
|
+
import { debugLog, getErrorMessage } from "../error-utils.js";
|
|
9
10
|
export function makeImportNoteId(title) {
|
|
10
11
|
const slug = title.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "").slice(0, 60);
|
|
11
12
|
const suffix = randomUUID().split("-")[0];
|
|
@@ -61,7 +62,8 @@ Examples:
|
|
|
61
62
|
try {
|
|
62
63
|
await fs.access(memoryDir);
|
|
63
64
|
}
|
|
64
|
-
catch {
|
|
65
|
+
catch (err) {
|
|
66
|
+
debugLog("import:access", `memory dir not found: ${getErrorMessage(err)}`);
|
|
65
67
|
console.log(`No Claude memory found for this project.`);
|
|
66
68
|
console.log(`Expected: ${memoryDir}`);
|
|
67
69
|
process.exit(0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-claude-memory.js","sourceRoot":"","sources":["../../src/cli/import-claude-memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AAGpC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"import-claude-memory.js","sourceRoot":"","sources":["../../src/cli/import-claude-memory.ts"],"names":[],"mappings":"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"}
|
package/build/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA,OAAO,EAIL,KAAK,mBAAmB,EACzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAE5D,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,WAAW,GAAG,MAAM,CAAC;AAE5D,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB,EAAE,MAAM,CAAC;IAChC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC3D,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;CACnE;AAkID;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA,OAAO,EAIL,KAAK,mBAAmB,EACzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAE5D,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,WAAW,GAAG,MAAM,CAAC;AAE5D,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB,EAAE,MAAM,CAAC;IAChC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC3D,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;CACnE;AAkID;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQ/E;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAarG;AAED,qBAAa,mBAAmB;;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAGd,aAAa,EAAE,MAAM;IAI3B,IAAI,IAAI,OAAO,CAAC,cAAc,CAAC;IAI/B,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAK7E,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC;IAK3F,gBAAgB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5D,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/F,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5D,eAAe,IAAI,IAAI;YAIT,OAAO;YA2BP,QAAQ;CAIvB"}
|
package/build/config.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import fs from "fs/promises";
|
|
2
2
|
import path from "path";
|
|
3
3
|
import { z } from "zod";
|
|
4
|
-
import { debugLog, getErrorMessage } from "./error-utils.js";
|
|
4
|
+
import { attempt, attemptSync, debugLog, getErrorMessage } from "./error-utils.js";
|
|
5
5
|
import { CONSOLIDATION_MODES, PROJECT_POLICY_SCOPES, PROTECTED_BRANCH_BEHAVIORS, } from "./project-memory-policy.js";
|
|
6
6
|
const defaultConfig = {
|
|
7
7
|
// Keep this at the latest schema version. When adding a new latest-schema
|
|
@@ -104,14 +104,14 @@ function normalizeProjectMemoryPolicies(value) {
|
|
|
104
104
|
*/
|
|
105
105
|
export async function readVaultSchemaVersion(vaultPath) {
|
|
106
106
|
const filePath = path.join(path.resolve(vaultPath), "config.json");
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
const parsed = VaultSchemaVersionFragmentSchema.safeParse(JSON.parse(raw));
|
|
110
|
-
return normalizeSchemaVersion(parsed.success ? parsed.data.schemaVersion : undefined);
|
|
111
|
-
}
|
|
112
|
-
catch {
|
|
107
|
+
const result = await attempt("config:read-schema", () => fs.readFile(filePath, "utf-8"));
|
|
108
|
+
if (!result.ok)
|
|
113
109
|
return defaultConfig.schemaVersion;
|
|
114
|
-
|
|
110
|
+
const jsonResult = attemptSync("config:parse", () => JSON.parse(result.value));
|
|
111
|
+
if (!jsonResult.ok)
|
|
112
|
+
return defaultConfig.schemaVersion;
|
|
113
|
+
const parsed = VaultSchemaVersionFragmentSchema.safeParse(jsonResult.value);
|
|
114
|
+
return normalizeSchemaVersion(parsed.success ? parsed.data.schemaVersion : undefined);
|
|
115
115
|
}
|
|
116
116
|
/**
|
|
117
117
|
* Write the schema version to a vault's config.json.
|
|
@@ -120,13 +120,14 @@ export async function readVaultSchemaVersion(vaultPath) {
|
|
|
120
120
|
export async function writeVaultSchemaVersion(vaultPath, schemaVersion) {
|
|
121
121
|
const filePath = path.join(path.resolve(vaultPath), "config.json");
|
|
122
122
|
let existing = {};
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
const
|
|
123
|
+
const existingResult = await attempt("config:read-existing", () => fs.readFile(filePath, "utf-8"));
|
|
124
|
+
if (existingResult.ok) {
|
|
125
|
+
const jsonResult = attemptSync("config:parse", () => JSON.parse(existingResult.value));
|
|
126
|
+
const parsed = jsonResult.ok ? ConfigJsonObjectSchema.safeParse(jsonResult.value) : { success: false, data: undefined };
|
|
126
127
|
existing = parsed.success ? parsed.data : {};
|
|
127
128
|
}
|
|
128
|
-
|
|
129
|
-
debugLog("config:write-schema-version", `no existing config, starting fresh: ${getErrorMessage(
|
|
129
|
+
else {
|
|
130
|
+
debugLog("config:write-schema-version", `no existing config, starting fresh: ${getErrorMessage(existingResult.error)}`);
|
|
130
131
|
}
|
|
131
132
|
existing.schemaVersion = normalizeSchemaVersion(schemaVersion);
|
|
132
133
|
await fs.writeFile(filePath, JSON.stringify(existing, null, 2) + "\n", "utf-8");
|
|
@@ -171,9 +172,10 @@ export class MnemonicConfigStore {
|
|
|
171
172
|
return this.#cache;
|
|
172
173
|
}
|
|
173
174
|
let config;
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
const
|
|
175
|
+
const readResult = await attempt("config:read", () => fs.readFile(this.filePath, "utf-8"));
|
|
176
|
+
if (readResult.ok) {
|
|
177
|
+
const jsonResult = attemptSync("config:parse", () => JSON.parse(readResult.value));
|
|
178
|
+
const parsed = jsonResult.ok ? MnemonicConfigRawSchema.safeParse(jsonResult.value) : { success: false, data: undefined };
|
|
177
179
|
const data = parsed.success ? parsed.data : {};
|
|
178
180
|
config = {
|
|
179
181
|
schemaVersion: normalizeSchemaVersion(data.schemaVersion),
|
|
@@ -183,8 +185,8 @@ export class MnemonicConfigStore {
|
|
|
183
185
|
projectIdentityOverrides: normalizeProjectIdentityOverrides(data.projectIdentityOverrides),
|
|
184
186
|
};
|
|
185
187
|
}
|
|
186
|
-
|
|
187
|
-
debugLog("config:read", `failed, returning defaults: ${getErrorMessage(
|
|
188
|
+
else {
|
|
189
|
+
debugLog("config:read", `failed, returning defaults: ${getErrorMessage(readResult.error)}`);
|
|
188
190
|
config = { ...defaultConfig };
|
|
189
191
|
}
|
|
190
192
|
this.#cache = config;
|
package/build/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/build/context.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAczD,iBAAe,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,CAMnD;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,aAAa,CAAC,CAwBlE;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|
package/build/context.js
CHANGED
|
@@ -1,18 +1,24 @@
|
|
|
1
1
|
import path from "path";
|
|
2
2
|
import { promises as fs } from "fs";
|
|
3
|
+
import { z } from "zod";
|
|
3
4
|
import { MnemonicConfigStore } from "./config.js";
|
|
4
5
|
import { VaultManager } from "./vault.js";
|
|
5
6
|
import { PROJECT_SCOPE_BOOST } from "./tools/recall-helpers.js";
|
|
6
7
|
import { Migrator } from "./migration.js";
|
|
7
8
|
import { defaultVaultPath, resolveUserPath } from "./paths.js";
|
|
9
|
+
import { attempt } from "./error-utils.js";
|
|
10
|
+
const PackageJsonSchema = z.object({ version: z.string().optional() });
|
|
8
11
|
const DEFAULT_RECALL_LIMIT = 5;
|
|
9
12
|
const DEFAULT_MIN_SIMILARITY = 0.3;
|
|
10
13
|
const TEMPORAL_HISTORY_NOTE_LIMIT = 5;
|
|
11
14
|
const TEMPORAL_HISTORY_COMMIT_LIMIT = 5;
|
|
12
15
|
async function readPackageVersion() {
|
|
13
16
|
const packageJsonPath = path.resolve(import.meta.dirname, "../package.json");
|
|
14
|
-
const
|
|
15
|
-
|
|
17
|
+
const readResult = await attempt("context:package-json", () => fs.readFile(packageJsonPath, "utf8"));
|
|
18
|
+
if (!readResult.ok)
|
|
19
|
+
return "0.1.0";
|
|
20
|
+
const parsed = PackageJsonSchema.safeParse(JSON.parse(readResult.value));
|
|
21
|
+
return parsed.success ? (parsed.data.version ?? "0.1.0") : "0.1.0";
|
|
16
22
|
}
|
|
17
23
|
export async function createServerContext() {
|
|
18
24
|
const vaultPath = process.env["VAULT_PATH"]
|
package/build/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAEvE,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAC/B,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AACtC,MAAM,6BAA6B,GAAG,CAAC,CAAC;AAExC,KAAK,UAAU,kBAAkB;IAC/B,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,sBAAsB,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;IACrG,IAAI,CAAC,UAAU,CAAC,EAAE;QAAE,OAAO,OAAO,CAAC;IACnC,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACrE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QACzC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC5C,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAEvB,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,YAAY,CAAC,QAAQ,EAAE,CAAC;IAC9B,MAAM,WAAW,GAAG,IAAI,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAC;IAE5C,OAAO;QACL,MAAM,EAAE,SAAkB;QAC1B,YAAY;QACZ,WAAW;QACX,MAAM;QACN,QAAQ;QACR,SAAS;QACT,kBAAkB,EAAE,oBAAoB;QACxC,oBAAoB,EAAE,sBAAsB;QAC5C,iBAAiB,EAAE,mBAAmB;QACtC,wBAAwB,EAAE,2BAA2B;QACrD,0BAA0B,EAAE,6BAA6B;KAC1D,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export declare class AtomicWriteInProgressError extends Error {
|
|
2
|
+
constructor();
|
|
3
|
+
}
|
|
4
|
+
export declare class MalformedNoteError extends Error {
|
|
5
|
+
constructor(id: string);
|
|
6
|
+
}
|
|
7
|
+
export declare class InvalidNoteIdError extends Error {
|
|
8
|
+
constructor(id: string);
|
|
9
|
+
}
|
|
10
|
+
export declare class VaultNotFoundError extends Error {
|
|
11
|
+
constructor();
|
|
12
|
+
}
|
|
13
|
+
export declare class OllamaUrlError extends Error {
|
|
14
|
+
constructor(reason: string, detail: string);
|
|
15
|
+
}
|
|
16
|
+
export declare class OllamaEmbeddingError extends Error {
|
|
17
|
+
constructor(message: string);
|
|
18
|
+
}
|
|
19
|
+
export declare class UnknownConsolidationModeError extends Error {
|
|
20
|
+
constructor(mode: never);
|
|
21
|
+
}
|
|
22
|
+
export declare class UnknownMigrationError extends Error {
|
|
23
|
+
constructor(migrationName: string);
|
|
24
|
+
}
|
|
25
|
+
export declare class InvalidSchemaVersionError extends Error {
|
|
26
|
+
constructor(version: string);
|
|
27
|
+
}
|
|
28
|
+
export declare class GitLockRetriesExhaustedError extends Error {
|
|
29
|
+
constructor(operationName: string);
|
|
30
|
+
}
|
|
31
|
+
export declare class UnknownRecoveryKindError extends Error {
|
|
32
|
+
constructor(kind: never);
|
|
33
|
+
}
|
|
34
|
+
export declare class UnknownMutationPushModeError extends Error {
|
|
35
|
+
constructor(mode: never);
|
|
36
|
+
}
|
|
37
|
+
export declare class UnknownChangeCategoryError extends Error {
|
|
38
|
+
constructor(category: never);
|
|
39
|
+
}
|
|
40
|
+
export declare class SemanticPatchError extends Error {
|
|
41
|
+
constructor(message: string);
|
|
42
|
+
}
|
|
43
|
+
export declare class MigrationAlreadyRegisteredError extends Error {
|
|
44
|
+
constructor(name: string);
|
|
45
|
+
}
|
|
46
|
+
export declare class UnknownRelationshipTypeError extends Error {
|
|
47
|
+
constructor(type: never);
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=domain-errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain-errors.d.ts","sourceRoot":"","sources":["../src/domain-errors.ts"],"names":[],"mappings":"AAGA,qBAAa,0BAA2B,SAAQ,KAAK;;CAKpD;AAED,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,EAAE,EAAE,MAAM;CAIvB;AAED,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,EAAE,EAAE,MAAM;CAMvB;AAED,qBAAa,kBAAmB,SAAQ,KAAK;;CAK5C;AAED,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAI3C;AAED,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,6BAA8B,SAAQ,KAAK;gBAC1C,IAAI,EAAE,KAAK;CAIxB;AAED,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,aAAa,EAAE,MAAM;CAIlC;AAED,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,4BAA6B,SAAQ,KAAK;gBACzC,aAAa,EAAE,MAAM;CAIlC;AAED,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,IAAI,EAAE,KAAK;CAIxB;AAED,qBAAa,4BAA6B,SAAQ,KAAK;gBACzC,IAAI,EAAE,KAAK;CAIxB;AAED,qBAAa,0BAA2B,SAAQ,KAAK;gBACvC,QAAQ,EAAE,KAAK;CAI5B;AAED,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,+BAAgC,SAAQ,KAAK;gBAC5C,IAAI,EAAE,MAAM;CAIzB;AAED,qBAAa,4BAA6B,SAAQ,KAAK;gBACzC,IAAI,EAAE,KAAK;CAIxB"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
// Domain error classes — replaces bare `new Error(...)` in domain logic.
|
|
2
|
+
// Enforced by ast-grep rule: no-bare-new-error
|
|
3
|
+
export class AtomicWriteInProgressError extends Error {
|
|
4
|
+
constructor() {
|
|
5
|
+
super("Atomic notes write already in progress");
|
|
6
|
+
this.name = "AtomicWriteInProgressError";
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export class MalformedNoteError extends Error {
|
|
10
|
+
constructor(id) {
|
|
11
|
+
super(`Malformed note '${id}': missing frontmatter`);
|
|
12
|
+
this.name = "MalformedNoteError";
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export class InvalidNoteIdError extends Error {
|
|
16
|
+
constructor(id) {
|
|
17
|
+
super(`Invalid note ID: "${id}" contains characters that are not allowed (only alphanumeric, hyphens, and underscores)`);
|
|
18
|
+
this.name = "InvalidNoteIdError";
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export class VaultNotFoundError extends Error {
|
|
22
|
+
constructor() {
|
|
23
|
+
super("Vault not found");
|
|
24
|
+
this.name = "VaultNotFoundError";
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export class OllamaUrlError extends Error {
|
|
28
|
+
constructor(reason, detail) {
|
|
29
|
+
super(reason + ": " + detail);
|
|
30
|
+
this.name = "OllamaUrlError";
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export class OllamaEmbeddingError extends Error {
|
|
34
|
+
constructor(message) {
|
|
35
|
+
super(message);
|
|
36
|
+
this.name = "OllamaEmbeddingError";
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export class UnknownConsolidationModeError extends Error {
|
|
40
|
+
constructor(mode) {
|
|
41
|
+
super(`Unknown consolidation mode: ${mode}`);
|
|
42
|
+
this.name = "UnknownConsolidationModeError";
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
export class UnknownMigrationError extends Error {
|
|
46
|
+
constructor(migrationName) {
|
|
47
|
+
super(`Unknown migration: ${migrationName}`);
|
|
48
|
+
this.name = "UnknownMigrationError";
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
export class InvalidSchemaVersionError extends Error {
|
|
52
|
+
constructor(version) {
|
|
53
|
+
super(`Invalid schema version: ${version}`);
|
|
54
|
+
this.name = "InvalidSchemaVersionError";
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
export class GitLockRetriesExhaustedError extends Error {
|
|
58
|
+
constructor(operationName) {
|
|
59
|
+
super(`[git] ${operationName}() lock retries exhausted`);
|
|
60
|
+
this.name = "GitLockRetriesExhaustedError";
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
export class UnknownRecoveryKindError extends Error {
|
|
64
|
+
constructor(kind) {
|
|
65
|
+
super(`Unknown recovery kind: ${kind}`);
|
|
66
|
+
this.name = "UnknownRecoveryKindError";
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
export class UnknownMutationPushModeError extends Error {
|
|
70
|
+
constructor(mode) {
|
|
71
|
+
super(`Unknown mutation push mode: ${mode}`);
|
|
72
|
+
this.name = "UnknownMutationPushModeError";
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
export class UnknownChangeCategoryError extends Error {
|
|
76
|
+
constructor(category) {
|
|
77
|
+
super(`Unhandled change category: ${category}`);
|
|
78
|
+
this.name = "UnknownChangeCategoryError";
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
export class SemanticPatchError extends Error {
|
|
82
|
+
constructor(message) {
|
|
83
|
+
super(message);
|
|
84
|
+
this.name = "SemanticPatchError";
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
export class MigrationAlreadyRegisteredError extends Error {
|
|
88
|
+
constructor(name) {
|
|
89
|
+
super(`Migration already registered: ${name}`);
|
|
90
|
+
this.name = "MigrationAlreadyRegisteredError";
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
export class UnknownRelationshipTypeError extends Error {
|
|
94
|
+
constructor(type) {
|
|
95
|
+
super(`Unhandled relationship type: ${type}`);
|
|
96
|
+
this.name = "UnknownRelationshipTypeError";
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=domain-errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain-errors.js","sourceRoot":"","sources":["../src/domain-errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["../src/embeddings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AA8BpD,wBAAsB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["../src/embeddings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AA8BpD,wBAAsB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAyB3D;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAWjE;AAED,eAAO,MAAM,UAAU,EAAE,gBAAgD,CAAC"}
|
package/build/embeddings.js
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { embeddingModelId } from "./brands.js";
|
|
2
|
+
import { OllamaUrlError, OllamaEmbeddingError } from "./domain-errors.js";
|
|
3
|
+
import { z } from "zod";
|
|
2
4
|
function validateOllamaUrl(url) {
|
|
3
5
|
let parsed;
|
|
4
6
|
try {
|
|
5
7
|
parsed = new URL(url);
|
|
6
8
|
}
|
|
7
9
|
catch {
|
|
8
|
-
throw new
|
|
10
|
+
throw new OllamaUrlError("OLLAMA_URL is not a valid URL", url);
|
|
9
11
|
}
|
|
10
12
|
if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
|
|
11
|
-
throw new
|
|
13
|
+
throw new OllamaUrlError("OLLAMA_URL must use http: or https: scheme", `got ${parsed.protocol}`);
|
|
12
14
|
}
|
|
13
15
|
const host = parsed.hostname;
|
|
14
16
|
const isLocalhost = host === "localhost" || host === "127.0.0.1" || host === "::1";
|
|
@@ -16,7 +18,7 @@ function validateOllamaUrl(url) {
|
|
|
16
18
|
/^172\.(1[6-9]|2\d|3[01])\./.test(host) ||
|
|
17
19
|
/^192\.168\./.test(host);
|
|
18
20
|
if (!isLocalhost && !isPrivate) {
|
|
19
|
-
throw new
|
|
21
|
+
throw new OllamaUrlError("OLLAMA_URL must resolve to a localhost or private-network address", `got ${host}`);
|
|
20
22
|
}
|
|
21
23
|
return url;
|
|
22
24
|
}
|
|
@@ -29,22 +31,28 @@ export async function embed(text) {
|
|
|
29
31
|
body: JSON.stringify({ model: EMBED_MODEL, input: text, truncate: true }),
|
|
30
32
|
});
|
|
31
33
|
if (!res.ok) {
|
|
32
|
-
throw new
|
|
34
|
+
throw new OllamaEmbeddingError(`Ollama embedding failed: ${res.status} ${res.statusText}. ` +
|
|
33
35
|
`Is Ollama running at ${OLLAMA_URL} with model '${EMBED_MODEL}' pulled?`);
|
|
34
36
|
}
|
|
35
|
-
const
|
|
36
|
-
const
|
|
37
|
+
const OllamaEmbedResponseSchema = z.object({ embeddings: z.array(z.array(z.number())).optional() });
|
|
38
|
+
const parseResult = OllamaEmbedResponseSchema.safeParse(await res.json());
|
|
39
|
+
if (!parseResult.success) {
|
|
40
|
+
throw new OllamaEmbeddingError(`Ollama embedding response had unexpected shape: ${parseResult.error.message}`);
|
|
41
|
+
}
|
|
42
|
+
const embedding = parseResult.data.embeddings?.[0];
|
|
37
43
|
if (!embedding) {
|
|
38
|
-
throw new
|
|
44
|
+
throw new OllamaEmbeddingError(`Ollama embedding response did not include an embedding for model '${EMBED_MODEL}'`);
|
|
39
45
|
}
|
|
40
46
|
return embedding;
|
|
41
47
|
}
|
|
42
48
|
export function cosineSimilarity(a, b) {
|
|
43
49
|
let dot = 0, normA = 0, normB = 0;
|
|
44
50
|
for (let i = 0; i < a.length; i++) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
51
|
+
const av = a[i] ?? 0;
|
|
52
|
+
const bv = b[i] ?? 0;
|
|
53
|
+
dot += av * bv;
|
|
54
|
+
normA += av * av;
|
|
55
|
+
normB += bv * bv;
|
|
48
56
|
}
|
|
49
57
|
if (normA === 0 || normB === 0)
|
|
50
58
|
return 0;
|