draken 0.1.5 → 0.2.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/ACCEPTANCE.md +31 -0
- package/CHANGELOG.md +33 -0
- package/CONTRIBUTING.md +129 -0
- package/MEMORY.md +98 -0
- package/PERSONA.md +67 -0
- package/README.md +156 -78
- package/SETUP.md +111 -0
- package/SOURCES.md +75 -0
- package/TRAY.md +54 -0
- package/VOICE.md +118 -0
- package/dist/auth/middleware.d.ts +3 -1
- package/dist/auth/middleware.d.ts.map +1 -1
- package/dist/auth/middleware.js +20 -15
- package/dist/auth/middleware.js.map +1 -1
- package/dist/cli.js +77 -58
- package/dist/cli.js.map +1 -1
- package/dist/db/agent-migration.d.ts +7 -0
- package/dist/db/agent-migration.d.ts.map +1 -0
- package/dist/db/agent-migration.js +36 -0
- package/dist/db/agent-migration.js.map +1 -0
- package/dist/db/evidence.d.ts +37 -0
- package/dist/db/evidence.d.ts.map +1 -0
- package/dist/db/evidence.js +110 -0
- package/dist/db/evidence.js.map +1 -0
- package/dist/db/pointer-migration.d.ts +7 -0
- package/dist/db/pointer-migration.d.ts.map +1 -0
- package/dist/db/pointer-migration.js +117 -0
- package/dist/db/pointer-migration.js.map +1 -0
- package/dist/db/retained-text.d.ts +8 -0
- package/dist/db/retained-text.d.ts.map +1 -0
- package/dist/db/retained-text.js +36 -0
- package/dist/db/retained-text.js.map +1 -0
- package/dist/db/schema.d.ts +1 -5
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +200 -55
- package/dist/db/schema.js.map +1 -1
- package/dist/db/snapshot-pointers.d.ts +5 -0
- package/dist/db/snapshot-pointers.d.ts.map +1 -0
- package/dist/db/snapshot-pointers.js +174 -0
- package/dist/db/snapshot-pointers.js.map +1 -0
- package/dist/memory/automatic.d.ts +38 -0
- package/dist/memory/automatic.d.ts.map +1 -0
- package/dist/memory/automatic.js +155 -0
- package/dist/memory/automatic.js.map +1 -0
- package/dist/memory/context.d.ts +12 -0
- package/dist/memory/context.d.ts.map +1 -0
- package/dist/memory/context.js +59 -0
- package/dist/memory/context.js.map +1 -0
- package/dist/memory/embedding-pool.d.ts +28 -0
- package/dist/memory/embedding-pool.d.ts.map +1 -0
- package/dist/memory/embedding-pool.js +135 -0
- package/dist/memory/embedding-pool.js.map +1 -0
- package/dist/memory/embedding-worker.d.ts +2 -0
- package/dist/memory/embedding-worker.d.ts.map +1 -0
- package/dist/memory/embedding-worker.js +32 -0
- package/dist/memory/embedding-worker.js.map +1 -0
- package/dist/memory/index.d.ts +26 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +283 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/model.d.ts +15 -0
- package/dist/memory/model.d.ts.map +1 -0
- package/dist/memory/model.js +152 -0
- package/dist/memory/model.js.map +1 -0
- package/dist/memory/service.d.ts +8 -0
- package/dist/memory/service.d.ts.map +1 -0
- package/dist/memory/service.js +217 -0
- package/dist/memory/service.js.map +1 -0
- package/dist/memory/sources.d.ts +15 -0
- package/dist/memory/sources.d.ts.map +1 -0
- package/dist/memory/sources.js +87 -0
- package/dist/memory/sources.js.map +1 -0
- package/dist/memory/stamps.d.ts +13 -0
- package/dist/memory/stamps.d.ts.map +1 -0
- package/dist/memory/stamps.js +101 -0
- package/dist/memory/stamps.js.map +1 -0
- package/dist/memory/storage.d.ts +5 -0
- package/dist/memory/storage.d.ts.map +1 -0
- package/dist/memory/storage.js +107 -0
- package/dist/memory/storage.js.map +1 -0
- package/dist/memory/types.d.ts +68 -0
- package/dist/memory/types.d.ts.map +1 -0
- package/dist/memory/types.js +8 -0
- package/dist/memory/types.js.map +1 -0
- package/dist/memory/worker.d.ts +2 -0
- package/dist/memory/worker.d.ts.map +1 -0
- package/dist/memory/worker.js +82 -0
- package/dist/memory/worker.js.map +1 -0
- package/dist/npm-cli.d.ts +4 -0
- package/dist/npm-cli.d.ts.map +1 -0
- package/dist/npm-cli.js +36 -0
- package/dist/npm-cli.js.map +1 -0
- package/dist/pi/runtime.d.ts +34 -0
- package/dist/pi/runtime.d.ts.map +1 -0
- package/dist/pi/runtime.js +210 -0
- package/dist/pi/runtime.js.map +1 -0
- package/dist/pi/setup.d.ts +5 -0
- package/dist/pi/setup.d.ts.map +1 -0
- package/dist/pi/setup.js +147 -0
- package/dist/pi/setup.js.map +1 -0
- package/dist/routes/auth.d.ts.map +1 -1
- package/dist/routes/auth.js +3 -1
- package/dist/routes/auth.js.map +1 -1
- package/dist/routes/live-voice.d.ts +3 -0
- package/dist/routes/live-voice.d.ts.map +1 -0
- package/dist/routes/live-voice.js +49 -0
- package/dist/routes/live-voice.js.map +1 -0
- package/dist/routes/{browse.d.ts → memory.d.ts} +1 -1
- package/dist/routes/memory.d.ts.map +1 -0
- package/dist/routes/memory.js +18 -0
- package/dist/routes/memory.js.map +1 -0
- package/dist/routes/{tasks.d.ts → sync.d.ts} +1 -1
- package/dist/routes/sync.d.ts.map +1 -0
- package/dist/routes/sync.js +127 -0
- package/dist/routes/sync.js.map +1 -0
- package/dist/routes/{projects.d.ts → voice.d.ts} +1 -1
- package/dist/routes/voice.d.ts.map +1 -0
- package/dist/routes/voice.js +35 -0
- package/dist/routes/voice.js.map +1 -0
- package/dist/server-state.d.ts +30 -0
- package/dist/server-state.d.ts.map +1 -0
- package/dist/server-state.js +113 -0
- package/dist/server-state.js.map +1 -0
- package/dist/server-status.d.ts +7 -0
- package/dist/server-status.d.ts.map +1 -0
- package/dist/server-status.js +34 -0
- package/dist/server-status.js.map +1 -0
- package/dist/server.d.ts +5 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +148 -46
- package/dist/server.js.map +1 -1
- package/dist/sources/adapters.d.ts +15 -0
- package/dist/sources/adapters.d.ts.map +1 -0
- package/dist/sources/adapters.js +159 -0
- package/dist/sources/adapters.js.map +1 -0
- package/dist/sources/registry.d.ts +17 -0
- package/dist/sources/registry.d.ts.map +1 -0
- package/dist/sources/registry.js +56 -0
- package/dist/sources/registry.js.map +1 -0
- package/dist/sync/collector.d.ts +3 -0
- package/dist/sync/collector.d.ts.map +1 -0
- package/dist/sync/collector.js +284 -0
- package/dist/sync/collector.js.map +1 -0
- package/dist/sync/cost.d.ts +7 -0
- package/dist/sync/cost.d.ts.map +1 -0
- package/dist/sync/cost.js +31 -0
- package/dist/sync/cost.js.map +1 -0
- package/dist/sync/jsonl.d.ts +34 -0
- package/dist/sync/jsonl.d.ts.map +1 -0
- package/dist/sync/jsonl.js +161 -0
- package/dist/sync/jsonl.js.map +1 -0
- package/dist/sync/manager.d.ts +12 -0
- package/dist/sync/manager.d.ts.map +1 -0
- package/dist/sync/manager.js +211 -0
- package/dist/sync/manager.js.map +1 -0
- package/dist/sync/normalize.d.ts +22 -0
- package/dist/sync/normalize.d.ts.map +1 -0
- package/dist/sync/normalize.js +107 -0
- package/dist/sync/normalize.js.map +1 -0
- package/dist/sync/pi-output.d.ts +33 -0
- package/dist/sync/pi-output.d.ts.map +1 -0
- package/dist/sync/pi-output.js +186 -0
- package/dist/sync/pi-output.js.map +1 -0
- package/dist/sync/pi.d.ts +15 -0
- package/dist/sync/pi.d.ts.map +1 -0
- package/dist/sync/pi.js +149 -0
- package/dist/sync/pi.js.map +1 -0
- package/dist/sync/recap.d.ts +25 -0
- package/dist/sync/recap.d.ts.map +1 -0
- package/dist/sync/recap.js +118 -0
- package/dist/sync/recap.js.map +1 -0
- package/dist/sync/references.d.ts +10 -0
- package/dist/sync/references.d.ts.map +1 -0
- package/dist/sync/references.js +50 -0
- package/dist/sync/references.js.map +1 -0
- package/dist/sync/source-files.d.ts +16 -0
- package/dist/sync/source-files.d.ts.map +1 -0
- package/dist/sync/source-files.js +56 -0
- package/dist/sync/source-files.js.map +1 -0
- package/dist/sync/store.d.ts +36 -0
- package/dist/sync/store.d.ts.map +1 -0
- package/dist/sync/store.js +359 -0
- package/dist/sync/store.js.map +1 -0
- package/dist/sync/summary-budget.d.ts +19 -0
- package/dist/sync/summary-budget.d.ts.map +1 -0
- package/dist/sync/summary-budget.js +39 -0
- package/dist/sync/summary-budget.js.map +1 -0
- package/dist/sync/tree.d.ts +69 -0
- package/dist/sync/tree.d.ts.map +1 -0
- package/dist/sync/tree.js +599 -0
- package/dist/sync/tree.js.map +1 -0
- package/dist/tray/controller.d.ts +51 -0
- package/dist/tray/controller.d.ts.map +1 -0
- package/dist/tray/controller.js +178 -0
- package/dist/tray/controller.js.map +1 -0
- package/dist/tray/launcher.d.ts +3 -0
- package/dist/tray/launcher.d.ts.map +1 -0
- package/dist/tray/launcher.js +47 -0
- package/dist/tray/launcher.js.map +1 -0
- package/dist/tray/native.d.ts +12 -0
- package/dist/tray/native.d.ts.map +1 -0
- package/dist/tray/native.js +93 -0
- package/dist/tray/native.js.map +1 -0
- package/dist/tray/processes.d.ts +5 -0
- package/dist/tray/processes.d.ts.map +1 -0
- package/dist/tray/processes.js +99 -0
- package/dist/tray/processes.js.map +1 -0
- package/dist/tray/worker.d.ts +4 -0
- package/dist/tray/worker.d.ts.map +1 -0
- package/dist/tray/worker.js +150 -0
- package/dist/tray/worker.js.map +1 -0
- package/dist/types.d.ts +212 -20
- package/dist/types.d.ts.map +1 -1
- package/dist/voice/continuation.d.ts +25 -0
- package/dist/voice/continuation.d.ts.map +1 -0
- package/dist/voice/continuation.js +94 -0
- package/dist/voice/continuation.js.map +1 -0
- package/dist/voice/legacy-history.d.ts +5 -0
- package/dist/voice/legacy-history.d.ts.map +1 -0
- package/dist/voice/legacy-history.js +34 -0
- package/dist/voice/legacy-history.js.map +1 -0
- package/dist/voice/live-context.d.ts +14 -0
- package/dist/voice/live-context.d.ts.map +1 -0
- package/dist/voice/live-context.js +137 -0
- package/dist/voice/live-context.js.map +1 -0
- package/dist/voice/live.d.ts +37 -0
- package/dist/voice/live.d.ts.map +1 -0
- package/dist/voice/live.js +448 -0
- package/dist/voice/live.js.map +1 -0
- package/package.json +49 -16
- package/public/assets/index-CYz_kpAp.js +126 -0
- package/public/assets/index-DmRid5xE.css +1 -0
- package/public/assets/index-Ymd62i3g.js +40 -0
- package/public/assets/persona-C_m1CVKe.css +1 -0
- package/public/assets/persona-XbLvCqRT.js +1 -0
- package/public/assets/scene-CBV2oPhA.js +3854 -0
- package/public/index.html +6 -8
- package/public/persona/THREE-LICENSE.txt +21 -0
- package/public/persona/call-poster.webp +0 -0
- package/public/persona/reference.jpg +0 -0
- package/public/persona/sample.wav +0 -0
- package/public/persona.html +7 -0
- package/runtime/pi/package-lock.json +1549 -0
- package/runtime/pi/package.json +12 -0
- package/tests/fixtures/voice-question.wav +0 -0
- package/tray/assets/error.ico +0 -0
- package/tray/assets/error.png +0 -0
- package/tray/assets/running.ico +0 -0
- package/tray/assets/running.png +0 -0
- package/tray/assets/starting.ico +0 -0
- package/tray/assets/starting.png +0 -0
- package/tray/assets/stopped.ico +0 -0
- package/tray/assets/stopped.png +0 -0
- package/tray/assets/stopping.ico +0 -0
- package/tray/assets/stopping.png +0 -0
- package/tray/macos.js +72 -0
- package/tray/windows.ps1 +104 -0
- package/voice/realtime/README.md +84 -0
- package/voice/realtime/backend.mjs +81 -0
- package/voice/realtime/native.mjs +210 -0
- package/voice/realtime/peer.d.mts +15 -0
- package/voice/realtime/peer.mjs +116 -0
- package/voice/realtime/probe-browser.mjs +81 -0
- package/voice/realtime/probe-server.mjs +86 -0
- package/voice/realtime/probe.html +11 -0
- package/voice/realtime/probe.mjs +42 -0
- package/voice/realtime/rpc.mjs +118 -0
- package/voice/realtime/setup.mjs +32 -0
- package/voice/tls.mjs +49 -0
- package/dist/db/queries.d.ts +0 -16
- package/dist/db/queries.d.ts.map +0 -1
- package/dist/db/queries.js +0 -91
- package/dist/db/queries.js.map +0 -1
- package/dist/docker/dockerfile.d.ts +0 -50
- package/dist/docker/dockerfile.d.ts.map +0 -1
- package/dist/docker/dockerfile.js +0 -160
- package/dist/docker/dockerfile.js.map +0 -1
- package/dist/docker/manager.d.ts +0 -42
- package/dist/docker/manager.d.ts.map +0 -1
- package/dist/docker/manager.js +0 -421
- package/dist/docker/manager.js.map +0 -1
- package/dist/git/status.d.ts +0 -76
- package/dist/git/status.d.ts.map +0 -1
- package/dist/git/status.js +0 -332
- package/dist/git/status.js.map +0 -1
- package/dist/routes/browse.d.ts.map +0 -1
- package/dist/routes/browse.js +0 -49
- package/dist/routes/browse.js.map +0 -1
- package/dist/routes/git.d.ts +0 -9
- package/dist/routes/git.d.ts.map +0 -1
- package/dist/routes/git.js +0 -338
- package/dist/routes/git.js.map +0 -1
- package/dist/routes/projects.d.ts.map +0 -1
- package/dist/routes/projects.js +0 -220
- package/dist/routes/projects.js.map +0 -1
- package/dist/routes/tasks.d.ts.map +0 -1
- package/dist/routes/tasks.js +0 -313
- package/dist/routes/tasks.js.map +0 -1
- package/draken.dockerfile.template +0 -18
- package/public/assets/index-3ngsG5kF.css +0 -1
- package/public/assets/index-B3YSD0ee.js +0 -252
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.EmbeddingPool = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const os_1 = require("os");
|
|
9
|
+
const worker_threads_1 = require("worker_threads");
|
|
10
|
+
const model_1 = require("./model");
|
|
11
|
+
const failure = () => new Error('Local embedding worker failed; no other runtime or model was substituted');
|
|
12
|
+
/** At most two model copies and six kernel threads. Small/constrained machines
|
|
13
|
+
* keep one lane. All lanes die with their owning history process on cancellation.
|
|
14
|
+
* Workers are lazy: a warm-cache query needs only one, and a read needs none. */
|
|
15
|
+
class EmbeddingPool {
|
|
16
|
+
directory;
|
|
17
|
+
parallelism;
|
|
18
|
+
files;
|
|
19
|
+
lanes = [];
|
|
20
|
+
sequence = 0;
|
|
21
|
+
busy = false;
|
|
22
|
+
epoch = 0;
|
|
23
|
+
retiring = Promise.resolve();
|
|
24
|
+
constructor(directory) {
|
|
25
|
+
this.directory = directory;
|
|
26
|
+
const cpus = (0, os_1.availableParallelism)(), memory = process.availableMemory();
|
|
27
|
+
const workers = cpus >= 12 && memory >= 4 * 1024 ** 3 ? 2 : 1;
|
|
28
|
+
const perLane = workers === 2 ? 3 : Math.max(1, Math.min(4, Math.floor(cpus / 2)));
|
|
29
|
+
this.parallelism = { workers, threads: workers * perLane };
|
|
30
|
+
this.files = new model_1.LocalEmbedder(directory);
|
|
31
|
+
}
|
|
32
|
+
get fingerprint() { return this.files.fingerprint; }
|
|
33
|
+
ready() { return this.files.ready(); }
|
|
34
|
+
setup(report) { return this.files.setup(report); }
|
|
35
|
+
lane(index) {
|
|
36
|
+
if (this.lanes[index]) {
|
|
37
|
+
if (this.lanes[index].dead)
|
|
38
|
+
throw failure();
|
|
39
|
+
return this.lanes[index];
|
|
40
|
+
}
|
|
41
|
+
const worker = new worker_threads_1.Worker(path_1.default.join(__dirname, 'embedding-worker.js'), {
|
|
42
|
+
workerData: { directory: this.directory, threads: this.parallelism.threads / this.parallelism.workers },
|
|
43
|
+
execArgv: [], env: { PATH: process.env.PATH, LANG: process.env.LANG, SYSTEMROOT: process.env.SYSTEMROOT },
|
|
44
|
+
stdout: true, stderr: true,
|
|
45
|
+
});
|
|
46
|
+
worker.stdout.resume();
|
|
47
|
+
worker.stderr.resume();
|
|
48
|
+
const lane = { worker };
|
|
49
|
+
this.lanes[index] = lane;
|
|
50
|
+
const fail = () => { lane.dead = true; const pending = lane.pending; lane.pending = undefined; pending?.reject(failure()); };
|
|
51
|
+
worker.on('error', fail);
|
|
52
|
+
worker.on('exit', fail);
|
|
53
|
+
worker.on('message', (message) => {
|
|
54
|
+
const pending = lane.pending;
|
|
55
|
+
if (!pending)
|
|
56
|
+
return;
|
|
57
|
+
if (message?.id !== pending.id || message.error || !(message.vector instanceof ArrayBuffer) || message.vector.byteLength !== 384 * 4) {
|
|
58
|
+
fail();
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
const vector = new Float32Array(message.vector);
|
|
62
|
+
if (vector.some(value => !Number.isFinite(value))) {
|
|
63
|
+
fail();
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
lane.pending = undefined;
|
|
67
|
+
pending.resolve(vector);
|
|
68
|
+
});
|
|
69
|
+
return lane;
|
|
70
|
+
}
|
|
71
|
+
run(index, text, query) {
|
|
72
|
+
const lane = this.lane(index);
|
|
73
|
+
return new Promise((resolve, reject) => {
|
|
74
|
+
if (lane.pending) {
|
|
75
|
+
reject(failure());
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
const id = ++this.sequence;
|
|
79
|
+
lane.pending = { id, resolve, reject };
|
|
80
|
+
try {
|
|
81
|
+
lane.worker.postMessage({ id, text, query });
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
lane.pending = undefined;
|
|
85
|
+
reject(failure());
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
async embed(text, query) { return (await this.work([text], query))[0]; }
|
|
90
|
+
embedMany(texts, parallel = true) { return this.work(texts, false, parallel); }
|
|
91
|
+
async work(texts, query, parallel = false) {
|
|
92
|
+
if (this.busy || texts.length > 8 || texts.some(text => typeof text !== 'string' || text.length > 16000))
|
|
93
|
+
throw new Error('Invalid or overlapping embedding batch');
|
|
94
|
+
this.busy = true;
|
|
95
|
+
const epoch = this.epoch;
|
|
96
|
+
try {
|
|
97
|
+
await this.retiring;
|
|
98
|
+
if (epoch !== this.epoch)
|
|
99
|
+
throw failure();
|
|
100
|
+
let next = 0;
|
|
101
|
+
const vectors = new Array(texts.length);
|
|
102
|
+
await Promise.all(Array.from({ length: Math.min(parallel ? this.parallelism.workers : 1, texts.length) }, async (_, lane) => {
|
|
103
|
+
while (next < texts.length) {
|
|
104
|
+
if (epoch !== this.epoch)
|
|
105
|
+
throw failure();
|
|
106
|
+
const index = next++;
|
|
107
|
+
vectors[index] = await this.run(lane, texts[index], query);
|
|
108
|
+
}
|
|
109
|
+
}));
|
|
110
|
+
if (epoch !== this.epoch)
|
|
111
|
+
throw failure();
|
|
112
|
+
return vectors;
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
115
|
+
await this.close();
|
|
116
|
+
throw error;
|
|
117
|
+
}
|
|
118
|
+
finally {
|
|
119
|
+
this.busy = false;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
async close() {
|
|
123
|
+
this.epoch++;
|
|
124
|
+
const lanes = this.lanes;
|
|
125
|
+
this.lanes = [];
|
|
126
|
+
this.retiring = Promise.all([this.retiring, ...lanes.map(lane => {
|
|
127
|
+
lane.pending?.reject(failure());
|
|
128
|
+
lane.pending = undefined;
|
|
129
|
+
return lane.worker.terminate();
|
|
130
|
+
})]);
|
|
131
|
+
await this.retiring;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
exports.EmbeddingPool = EmbeddingPool;
|
|
135
|
+
//# sourceMappingURL=embedding-pool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedding-pool.js","sourceRoot":"","sources":["../../src/memory/embedding-pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedding-worker.d.ts","sourceRoot":"","sources":["../../src/memory/embedding-worker.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const path_1 = __importDefault(require("path"));
|
|
7
|
+
const worker_threads_1 = require("worker_threads");
|
|
8
|
+
const model_1 = require("./model");
|
|
9
|
+
// No database, source-file discovery, download or provider credentials. The
|
|
10
|
+
// owning history process verifies/downloads weights; this lane only reads them.
|
|
11
|
+
if (!worker_threads_1.parentPort || !path_1.default.isAbsolute(worker_threads_1.workerData?.directory || ''))
|
|
12
|
+
throw new Error('Invalid embedding lane');
|
|
13
|
+
const model = new model_1.LocalEmbedder(worker_threads_1.workerData.directory, worker_threads_1.workerData.threads);
|
|
14
|
+
let busy = false;
|
|
15
|
+
worker_threads_1.parentPort.on('message', async (message) => {
|
|
16
|
+
if (busy || !Number.isSafeInteger(message?.id) || typeof message.text !== 'string' || message.text.length > 16000 || typeof message.query !== 'boolean') {
|
|
17
|
+
worker_threads_1.parentPort.postMessage({ id: message?.id, error: true });
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
busy = true;
|
|
21
|
+
try {
|
|
22
|
+
const vector = await model.embed(message.text, message.query);
|
|
23
|
+
worker_threads_1.parentPort.postMessage({ id: message.id, vector: vector.buffer }, [vector.buffer]);
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
worker_threads_1.parentPort.postMessage({ id: message.id, error: true });
|
|
27
|
+
}
|
|
28
|
+
finally {
|
|
29
|
+
busy = false;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=embedding-worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedding-worker.js","sourceRoot":"","sources":["../../src/memory/embedding-worker.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,mDAAwD;AACxD,mCAAwC;AAExC,4EAA4E;AAC5E,gFAAgF;AAChF,IAAI,CAAC,2BAAU,IAAI,CAAC,cAAI,CAAC,UAAU,CAAC,2BAAU,EAAE,SAAS,IAAI,EAAE,CAAC;IAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;AAC5G,MAAM,KAAK,GAAG,IAAI,qBAAa,CAAC,2BAAU,CAAC,SAAS,EAAE,2BAAU,CAAC,OAAO,CAAC,CAAC;AAC1E,IAAI,IAAI,GAAG,KAAK,CAAC;AACjB,2BAAU,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,OAAY,EAAE,EAAE;IAC9C,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACxJ,2BAAW,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,OAAO;IACpE,CAAC;IACD,IAAI,GAAG,IAAI,CAAC;IACZ,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9D,2BAAW,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAqB,CAAC,CAAC,CAAC;IACrG,CAAC;IAAC,MAAM,CAAC;QAAC,2BAAW,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAAC,CAAC;YAC7D,CAAC;QAAC,IAAI,GAAG,KAAK,CAAC;IAAC,CAAC;AAC3B,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type Database from 'better-sqlite3';
|
|
2
|
+
import { type RootInput } from '../sources/registry';
|
|
3
|
+
import { type Embedder, type HistoryPage, type HistoryQuery, type HistoryResults, type ReportHistory } from './types';
|
|
4
|
+
export declare class HistoryIndex {
|
|
5
|
+
private db;
|
|
6
|
+
private source;
|
|
7
|
+
private model;
|
|
8
|
+
private root;
|
|
9
|
+
private modelPrepared;
|
|
10
|
+
private current;
|
|
11
|
+
private normalized;
|
|
12
|
+
constructor(db: Database.Database, source: Database.Database, model: Embedder, root?: RootInput);
|
|
13
|
+
/** Change only derived delta rows. Revalidate sources on every search/read so an
|
|
14
|
+
* exclusion, edit, source removal or discard cannot leak through stale vectors. */
|
|
15
|
+
private refresh;
|
|
16
|
+
/** Automatic, on demand. A search never requires a separate setup/update action.
|
|
17
|
+
* Freeze the candidate set here; revalidation may remove records, but arrivals
|
|
18
|
+
* during this lookup belong to the next one rather than a partial keyword mode. */
|
|
19
|
+
prepare(scope?: Partial<HistoryQuery>, report?: ReportHistory, checkpoint?: boolean): Promise<void>;
|
|
20
|
+
private ensureModel;
|
|
21
|
+
private filter;
|
|
22
|
+
search(query: HistoryQuery, report?: ReportHistory): Promise<HistoryResults>;
|
|
23
|
+
private record;
|
|
24
|
+
read(ref: string, offset?: number): HistoryPage;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAKrE,OAAO,EAAiB,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAKrI,qBAAa,YAAY;IAIX,OAAO,CAAC,EAAE;IAAqB,OAAO,CAAC,MAAM;IAAqB,OAAO,CAAC,KAAK;IAAY,OAAO,CAAC,IAAI;IAHnH,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,UAAU,CAA4B;gBAC1B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAU,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAU,KAAK,EAAE,QAAQ,EAAU,IAAI,GAAE,SAA4B;IAajJ;uFACmF;IACnF,OAAO,CAAC,OAAO;IA8Bf;;uFAEmF;IAC7E,OAAO,CAAC,KAAK,GAAE,OAAO,CAAC,YAAY,CAAM,EAAE,MAAM,CAAC,EAAE,aAAa,EAAE,UAAU,UAAuD;YA0D5H,WAAW;IAGzB,OAAO,CAAC,MAAM;IAOR,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAkClF,OAAO,CAAC,MAAM;IAKd,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,WAAW;CAS3C"}
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.HistoryIndex = void 0;
|
|
37
|
+
const vec = __importStar(require("sqlite-vec"));
|
|
38
|
+
const normalize_1 = require("../sync/normalize");
|
|
39
|
+
const registry_1 = require("../sources/registry");
|
|
40
|
+
const jsonl_1 = require("../sync/jsonl");
|
|
41
|
+
const storage_1 = require("./storage");
|
|
42
|
+
const stamps_1 = require("./stamps");
|
|
43
|
+
const sources_1 = require("./sources");
|
|
44
|
+
const types_1 = require("./types");
|
|
45
|
+
const LIMITATIONS = 'Search of retained, currently admitted history, not exhaustive recall or independent verification. Excluded/missing sessions, pre-baseline session evidence and discarded sync discussions are omitted. Original logs may contain material not retained here. Summaries are not indexed as primary evidence. No review, decisions or execution changed.';
|
|
46
|
+
class HistoryIndex {
|
|
47
|
+
db;
|
|
48
|
+
source;
|
|
49
|
+
model;
|
|
50
|
+
root;
|
|
51
|
+
modelPrepared = false;
|
|
52
|
+
current = new Map();
|
|
53
|
+
normalized = new jsonl_1.NormalizationCache();
|
|
54
|
+
constructor(db, source, model, root = (0, registry_1.getSourceRoots)()) {
|
|
55
|
+
this.db = db;
|
|
56
|
+
this.source = source;
|
|
57
|
+
this.model = model;
|
|
58
|
+
this.root = root;
|
|
59
|
+
vec.load(db);
|
|
60
|
+
db.pragma('foreign_keys = ON');
|
|
61
|
+
db.pragma('journal_mode = WAL');
|
|
62
|
+
db.pragma('busy_timeout = 5000');
|
|
63
|
+
// Cap retained journal high-water space after checkpoints, not active work.
|
|
64
|
+
db.pragma('journal_size_limit = 4194304');
|
|
65
|
+
const fresh = !db.prepare("SELECT 1 FROM sqlite_master WHERE type='table'").get();
|
|
66
|
+
db.transaction(() => {
|
|
67
|
+
(0, storage_1.initHistoryStorage)(db, model.fingerprint);
|
|
68
|
+
// A newly created cache has a known empty baseline even if its first
|
|
69
|
+
// preparation is interrupted. Existing caches must not be guessed empty.
|
|
70
|
+
if (fresh)
|
|
71
|
+
(0, stamps_1.saveSourceCheckpoint)(db, new Map());
|
|
72
|
+
})();
|
|
73
|
+
}
|
|
74
|
+
/** Change only derived delta rows. Revalidate sources on every search/read so an
|
|
75
|
+
* exclusion, edit, source removal or discard cannot leak through stale vectors. */
|
|
76
|
+
refresh(addNew = true) {
|
|
77
|
+
const current = new Map();
|
|
78
|
+
this.source.transaction(() => this.db.transaction(() => {
|
|
79
|
+
const retained = new Set();
|
|
80
|
+
const existing = new Set(this.db.prepare('SELECT ref FROM records').all().map(row => row.ref));
|
|
81
|
+
const insert = this.db.prepare('INSERT INTO records VALUES(?,?,?,?,?,?,?)');
|
|
82
|
+
const passage = this.db.prepare('INSERT OR IGNORE INTO passages(hash) VALUES(?)');
|
|
83
|
+
const find = this.db.prepare('SELECT id FROM passages WHERE hash=?');
|
|
84
|
+
const words = this.db.prepare('INSERT INTO words(rowid,body) VALUES(?,?)');
|
|
85
|
+
const chunk = this.db.prepare('INSERT INTO chunk_links(ref,offset,passage_id) VALUES(?,?,?)');
|
|
86
|
+
for (const item of (0, sources_1.historySources)(this.source, this.root, this.normalized)) {
|
|
87
|
+
retained.add(item.ref);
|
|
88
|
+
if (existing.has(item.ref)) {
|
|
89
|
+
current.set(item.ref, item);
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
if (!addNew)
|
|
93
|
+
continue;
|
|
94
|
+
current.set(item.ref, item);
|
|
95
|
+
insert.run(item.ref, JSON.stringify({ ...item, text: undefined }), item.session_id, item.sync_id, item.at, item.group, item.position);
|
|
96
|
+
for (let offset = 0; offset < item.text.length; offset += 700) {
|
|
97
|
+
const body = `${item.title}\n${item.role}\n${item.text.slice(offset, offset + 800)}`, hash = (0, sources_1.digest)(this.model.fingerprint + '\0' + body);
|
|
98
|
+
passage.run(hash);
|
|
99
|
+
const row = find.get(hash);
|
|
100
|
+
const link = chunk.run(item.ref, offset, row.id);
|
|
101
|
+
words.run(link.lastInsertRowid, body);
|
|
102
|
+
if (offset + 800 >= item.text.length)
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
const remove = this.db.prepare('DELETE FROM records WHERE ref=?');
|
|
107
|
+
let removed = false;
|
|
108
|
+
for (const ref of existing)
|
|
109
|
+
if (!retained.has(ref)) {
|
|
110
|
+
remove.run(ref);
|
|
111
|
+
removed = true;
|
|
112
|
+
}
|
|
113
|
+
if (removed)
|
|
114
|
+
this.db.exec('DELETE FROM passages WHERE id NOT IN (SELECT passage_id FROM chunk_links)');
|
|
115
|
+
})())();
|
|
116
|
+
this.current = current;
|
|
117
|
+
}
|
|
118
|
+
/** Automatic, on demand. A search never requires a separate setup/update action.
|
|
119
|
+
* Freeze the candidate set here; revalidation may remove records, but arrivals
|
|
120
|
+
* during this lookup belong to the next one rather than a partial keyword mode. */
|
|
121
|
+
async prepare(scope = {}, report, checkpoint = !scope.session_id && !scope.sync_id && !scope.before) {
|
|
122
|
+
report?.((0, types_1.historyUpdate)('scanning'));
|
|
123
|
+
// Scoped lookups cannot claim global background coverage. Capture the
|
|
124
|
+
// candidate metadata before inference; later source changes stay pending.
|
|
125
|
+
const stamps = checkpoint ? (0, stamps_1.sourceStamps)(this.source, scope.before || new Date().toISOString()) : undefined;
|
|
126
|
+
this.refresh();
|
|
127
|
+
const filter = this.filter(scope);
|
|
128
|
+
const groups = this.db.prepare(`SELECT DISTINCT p.id FROM passages p JOIN chunk_links c ON c.passage_id=p.id JOIN records r ON r.ref=c.ref
|
|
129
|
+
WHERE p.embedded=0 ${filter.sql} ORDER BY p.id`).all(...filter.args);
|
|
130
|
+
const reused = this.db.prepare(`SELECT COUNT(DISTINCT p.id) n FROM passages p JOIN chunk_links c ON c.passage_id=p.id JOIN records r ON r.ref=c.ref
|
|
131
|
+
WHERE p.embedded=1 ${filter.sql}`).get(...filter.args).n;
|
|
132
|
+
const total = groups.length;
|
|
133
|
+
let completed = 0, computed = 0, meanMs = 0, measured = 0;
|
|
134
|
+
const notify = (stage) => report?.((0, types_1.historyUpdate)(stage, { total, completed, reused, parallelism: this.model.parallelism,
|
|
135
|
+
remaining_seconds: completed === total ? 0 : measured >= 8 ? Math.ceil((total - completed) * meanMs / 1000) : null }));
|
|
136
|
+
if (!total) {
|
|
137
|
+
if (stamps)
|
|
138
|
+
(0, stamps_1.saveSourceCheckpoint)(this.db, stamps);
|
|
139
|
+
notify('indexing');
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
notify('loading');
|
|
143
|
+
await this.ensureModel(report);
|
|
144
|
+
const getChunk = this.db.prepare('SELECT c.ref,c.offset,p.hash FROM chunk_links c JOIN passages p ON p.id=c.passage_id WHERE p.id=? ORDER BY c.id LIMIT 1');
|
|
145
|
+
const saveVector = this.db.prepare('INSERT INTO passage_vectors(rowid,embedding) VALUES(?,?)');
|
|
146
|
+
const markReady = this.db.prepare('UPDATE passages SET embedded=1 WHERE id=?');
|
|
147
|
+
const pending = [];
|
|
148
|
+
let lastCommit = Date.now();
|
|
149
|
+
const commit = () => {
|
|
150
|
+
if (!pending.length)
|
|
151
|
+
return;
|
|
152
|
+
this.db.transaction(() => {
|
|
153
|
+
for (const item of pending) {
|
|
154
|
+
saveVector.run(BigInt(item.id), item.embedding);
|
|
155
|
+
markReady.run(item.id);
|
|
156
|
+
}
|
|
157
|
+
})();
|
|
158
|
+
completed += pending.length;
|
|
159
|
+
pending.length = 0;
|
|
160
|
+
lastCommit = Date.now();
|
|
161
|
+
notify('indexing');
|
|
162
|
+
};
|
|
163
|
+
notify('indexing');
|
|
164
|
+
for (let offset = 0; offset < groups.length; offset += 8) {
|
|
165
|
+
if (!computed)
|
|
166
|
+
notify('loading');
|
|
167
|
+
const batch = groups.slice(offset, offset + 8), bodies = batch.map(group => {
|
|
168
|
+
const chunk = getChunk.get(group.id), record = this.record(chunk.ref);
|
|
169
|
+
const body = `${record.title}\n${record.role}\n${record.text.slice(chunk.offset, chunk.offset + 800)}`;
|
|
170
|
+
if ((0, sources_1.digest)(this.model.fingerprint + '\0' + body) !== chunk.hash)
|
|
171
|
+
throw new Error('Verified search passage changed');
|
|
172
|
+
return body;
|
|
173
|
+
});
|
|
174
|
+
const start = Date.now(), vectors = [];
|
|
175
|
+
if (this.model.embedMany)
|
|
176
|
+
vectors.push(...await this.model.embedMany(bodies, total >= 32));
|
|
177
|
+
else
|
|
178
|
+
for (const body of bodies)
|
|
179
|
+
vectors.push(await this.model.embed(body, false));
|
|
180
|
+
if (vectors.length !== batch.length)
|
|
181
|
+
throw new Error('Incomplete embedding batch');
|
|
182
|
+
const embeddings = vectors.map(vector => {
|
|
183
|
+
if (!(vector instanceof Float32Array) || vector.length !== 384 || vector.some(value => !Number.isFinite(value)))
|
|
184
|
+
throw new Error('Invalid embedding');
|
|
185
|
+
return Buffer.from(vector.buffer, vector.byteOffset, vector.byteLength);
|
|
186
|
+
});
|
|
187
|
+
// Wall time per completed passage reflects parallel throughput. Exclude
|
|
188
|
+
// the first batch's cold model load and count only committed delta work.
|
|
189
|
+
if (computed) {
|
|
190
|
+
const ms = (Date.now() - start) / batch.length;
|
|
191
|
+
meanMs = measured ? meanMs * 0.9 + ms * 0.1 : ms;
|
|
192
|
+
measured += batch.length;
|
|
193
|
+
}
|
|
194
|
+
computed += batch.length;
|
|
195
|
+
batch.forEach((group, i) => pending.push({ id: group.id, embedding: embeddings[i] }));
|
|
196
|
+
if (pending.length >= 64 || Date.now() - lastCommit >= 1000)
|
|
197
|
+
commit();
|
|
198
|
+
}
|
|
199
|
+
commit();
|
|
200
|
+
notify('indexing');
|
|
201
|
+
this.refresh(false);
|
|
202
|
+
if (stamps)
|
|
203
|
+
(0, stamps_1.saveSourceCheckpoint)(this.db, stamps);
|
|
204
|
+
}
|
|
205
|
+
async ensureModel(report) {
|
|
206
|
+
if (!this.modelPrepared || !this.model.ready()) {
|
|
207
|
+
await this.model.setup(report);
|
|
208
|
+
this.modelPrepared = true;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
filter(query) {
|
|
212
|
+
const conditions = [], args = [];
|
|
213
|
+
if (query.session_id) {
|
|
214
|
+
conditions.push('r.session_id=?');
|
|
215
|
+
args.push(query.session_id);
|
|
216
|
+
}
|
|
217
|
+
if (query.sync_id) {
|
|
218
|
+
conditions.push('r.sync_id=?');
|
|
219
|
+
args.push(query.sync_id);
|
|
220
|
+
}
|
|
221
|
+
if (query.before) {
|
|
222
|
+
conditions.push('r.at IS NOT NULL AND r.at<=?');
|
|
223
|
+
args.push(query.before);
|
|
224
|
+
}
|
|
225
|
+
return { sql: conditions.length ? ' AND ' + conditions.join(' AND ') : '', args };
|
|
226
|
+
}
|
|
227
|
+
async search(query, report) {
|
|
228
|
+
await this.prepare(query, report);
|
|
229
|
+
report?.((0, types_1.historyUpdate)('searching'));
|
|
230
|
+
const filter = this.filter(query);
|
|
231
|
+
const any = this.db.prepare(`SELECT 1 FROM chunks c JOIN records r ON r.ref=c.ref WHERE 1=1 ${filter.sql} LIMIT 1`).get(...filter.args);
|
|
232
|
+
if (!any)
|
|
233
|
+
return { mode: 'hybrid', results: [], limitations: LIMITATIONS };
|
|
234
|
+
await this.ensureModel(report);
|
|
235
|
+
const embedding = await this.model.embed((0, normalize_1.cleanText)(query.question, 2000), true);
|
|
236
|
+
// Prune exclusions/edits again after inference without admitting unembedded
|
|
237
|
+
// arrivals. All returned candidates have both lexical and semantic coverage.
|
|
238
|
+
this.refresh(false);
|
|
239
|
+
const scores = new Map();
|
|
240
|
+
const add = (rows) => {
|
|
241
|
+
const distinct = new Set();
|
|
242
|
+
for (const row of rows) {
|
|
243
|
+
const identity = this.record(row.ref).identity;
|
|
244
|
+
if (distinct.has(identity))
|
|
245
|
+
continue;
|
|
246
|
+
distinct.add(identity);
|
|
247
|
+
const old = scores.get(identity), score = 1 / (60 + distinct.size);
|
|
248
|
+
scores.set(identity, { score: (old?.score || 0) + score, chunk: old?.chunk || row });
|
|
249
|
+
}
|
|
250
|
+
};
|
|
251
|
+
const stop = new Set('the a an and or of to in on is it we i you our my what why how did do does was were have has had this that with for from about remember recall previous earlier history please'.split(' '));
|
|
252
|
+
const terms = [...new Set(query.question.toLowerCase().match(/[\p{L}\p{N}_]+/gu) || [])].filter(term => !stop.has(term)).slice(0, 32);
|
|
253
|
+
if (terms.length)
|
|
254
|
+
add(this.db.prepare(`SELECT c.id,c.ref,c.offset FROM words JOIN chunks c ON c.id=words.rowid JOIN records r ON r.ref=c.ref
|
|
255
|
+
WHERE words MATCH ? AND c.embedded=1 ${filter.sql} ORDER BY bm25(words),c.id LIMIT 80`).all(terms.map(term => `"${term}"`).join(' OR '), ...filter.args));
|
|
256
|
+
add(this.db.prepare(`SELECT c.id,c.ref,c.offset FROM passage_vectors v JOIN chunk_links c ON c.passage_id=v.rowid JOIN records r ON r.ref=c.ref
|
|
257
|
+
WHERE v.embedding MATCH ? AND k=80 AND v.rowid IN (SELECT c.passage_id FROM chunk_links c JOIN passages p ON p.id=c.passage_id JOIN records r ON r.ref=c.ref WHERE p.embedded=1 ${filter.sql})
|
|
258
|
+
AND v.distance<=0.25 ${filter.sql} ORDER BY v.distance,c.id LIMIT 80`).all(Buffer.from(embedding.buffer), ...filter.args, ...filter.args));
|
|
259
|
+
const results = [...scores.values()].sort((a, b) => b.score - a.score || a.chunk.id - b.chunk.id).slice(0, 8).map(({ chunk, score }) => {
|
|
260
|
+
const record = this.record(chunk.ref);
|
|
261
|
+
return { ...record, text: record.text.slice(chunk.offset, chunk.offset + 800), offset: chunk.offset, score };
|
|
262
|
+
});
|
|
263
|
+
return { mode: 'hybrid', results, limitations: LIMITATIONS + ' Records arriving or changing during this lookup are considered by the next lookup.' };
|
|
264
|
+
}
|
|
265
|
+
record(ref) {
|
|
266
|
+
const record = this.current.get(ref);
|
|
267
|
+
if (!record)
|
|
268
|
+
throw new Error('This historical record is no longer admitted or its text changed. Search again.');
|
|
269
|
+
return record;
|
|
270
|
+
}
|
|
271
|
+
read(ref, offset = 0) {
|
|
272
|
+
this.refresh();
|
|
273
|
+
const item = this.record(ref);
|
|
274
|
+
const rows = this.db.prepare(`SELECT ref FROM records WHERE group_id=? ORDER BY COALESCE(at,''),position,ref`).all(item.group);
|
|
275
|
+
const records = rows.map(row => this.record(row.ref)), at = records.findIndex(row => row.ref === ref);
|
|
276
|
+
const before = records.slice(0, at).reverse().find(row => row.identity !== item.identity);
|
|
277
|
+
const after = records.slice(at + 1).find(row => row.identity !== item.identity && row.identity !== before?.identity);
|
|
278
|
+
const neighbors = [before, after].filter((row) => Boolean(row)).map(row => ({ ...row, text: row.text.slice(0, 600) }));
|
|
279
|
+
return { record: { ...item, text: item.text.slice(offset, offset + 4000) }, offset, total: item.text.length, neighbors };
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
exports.HistoryIndex = HistoryIndex;
|
|
283
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type Embedder, type ReportHistory } from './types';
|
|
2
|
+
export declare class LocalEmbedder implements Embedder {
|
|
3
|
+
private directory;
|
|
4
|
+
private threads;
|
|
5
|
+
readonly fingerprint = "Xenova/multilingual-e5-small@761b726dd34fb83930e26aab4e9ac3899aa1fa78/q8-mean-normalized-v1";
|
|
6
|
+
private session?;
|
|
7
|
+
private tokenizer?;
|
|
8
|
+
constructor(directory: string, threads?: number);
|
|
9
|
+
ready(): boolean;
|
|
10
|
+
private verified;
|
|
11
|
+
setup(report?: ReportHistory): Promise<void>;
|
|
12
|
+
private load;
|
|
13
|
+
embed(text: string, query: boolean): Promise<Float32Array>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/memory/model.ts"],"names":[],"mappings":"AAOA,OAAO,EAAiB,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAa3E,qBAAa,aAAc,YAAW,QAAQ;IAIhC,OAAO,CAAC,SAAS;IAAU,OAAO,CAAC,OAAO;IAHtD,QAAQ,CAAC,WAAW,iGAAY;IAChC,OAAO,CAAC,OAAO,CAAC,CAAuB;IACvC,OAAO,CAAC,SAAS,CAAC,CAAY;gBACV,SAAS,EAAE,MAAM,EAAU,OAAO,SAAmE;IAGzH,KAAK;YACS,QAAQ;IAKhB,KAAK,CAAC,MAAM,CAAC,EAAE,aAAa;YAyBpB,IAAI;IAaZ,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;CA0BjE"}
|