draken 0.1.6 → 0.3.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 (326) hide show
  1. package/ACCEPTANCE.md +34 -0
  2. package/CHANGELOG.md +65 -0
  3. package/CONTRIBUTING.md +129 -0
  4. package/MEMORY.md +118 -0
  5. package/PERSONA.md +67 -0
  6. package/README.md +168 -78
  7. package/SETUP.md +111 -0
  8. package/SOURCES.md +75 -0
  9. package/TRAY.md +54 -0
  10. package/VOICE.md +126 -0
  11. package/dist/auth/middleware.d.ts +3 -1
  12. package/dist/auth/middleware.d.ts.map +1 -1
  13. package/dist/auth/middleware.js +20 -15
  14. package/dist/auth/middleware.js.map +1 -1
  15. package/dist/cli.js +77 -113
  16. package/dist/cli.js.map +1 -1
  17. package/dist/db/agent-migration.d.ts +7 -0
  18. package/dist/db/agent-migration.d.ts.map +1 -0
  19. package/dist/db/agent-migration.js +36 -0
  20. package/dist/db/agent-migration.js.map +1 -0
  21. package/dist/db/evidence.d.ts +37 -0
  22. package/dist/db/evidence.d.ts.map +1 -0
  23. package/dist/db/evidence.js +110 -0
  24. package/dist/db/evidence.js.map +1 -0
  25. package/dist/db/pointer-migration.d.ts +7 -0
  26. package/dist/db/pointer-migration.d.ts.map +1 -0
  27. package/dist/db/pointer-migration.js +117 -0
  28. package/dist/db/pointer-migration.js.map +1 -0
  29. package/dist/db/retained-text.d.ts +8 -0
  30. package/dist/db/retained-text.d.ts.map +1 -0
  31. package/dist/db/retained-text.js +36 -0
  32. package/dist/db/retained-text.js.map +1 -0
  33. package/dist/db/schema.d.ts +1 -5
  34. package/dist/db/schema.d.ts.map +1 -1
  35. package/dist/db/schema.js +206 -55
  36. package/dist/db/schema.js.map +1 -1
  37. package/dist/db/snapshot-pointers.d.ts +5 -0
  38. package/dist/db/snapshot-pointers.d.ts.map +1 -0
  39. package/dist/db/snapshot-pointers.js +174 -0
  40. package/dist/db/snapshot-pointers.js.map +1 -0
  41. package/dist/memory/automatic.d.ts +38 -0
  42. package/dist/memory/automatic.d.ts.map +1 -0
  43. package/dist/memory/automatic.js +155 -0
  44. package/dist/memory/automatic.js.map +1 -0
  45. package/dist/memory/context.d.ts +12 -0
  46. package/dist/memory/context.d.ts.map +1 -0
  47. package/dist/memory/context.js +107 -0
  48. package/dist/memory/context.js.map +1 -0
  49. package/dist/memory/embedding-pool.d.ts +28 -0
  50. package/dist/memory/embedding-pool.d.ts.map +1 -0
  51. package/dist/memory/embedding-pool.js +135 -0
  52. package/dist/memory/embedding-pool.js.map +1 -0
  53. package/dist/memory/embedding-worker.d.ts +2 -0
  54. package/dist/memory/embedding-worker.d.ts.map +1 -0
  55. package/dist/memory/embedding-worker.js +32 -0
  56. package/dist/memory/embedding-worker.js.map +1 -0
  57. package/dist/memory/index.d.ts +32 -0
  58. package/dist/memory/index.d.ts.map +1 -0
  59. package/dist/memory/index.js +441 -0
  60. package/dist/memory/index.js.map +1 -0
  61. package/dist/memory/model-files.d.ts +9 -0
  62. package/dist/memory/model-files.d.ts.map +1 -0
  63. package/dist/memory/model-files.js +13 -0
  64. package/dist/memory/model-files.js.map +1 -0
  65. package/dist/memory/model.d.ts +15 -0
  66. package/dist/memory/model.d.ts.map +1 -0
  67. package/dist/memory/model.js +147 -0
  68. package/dist/memory/model.js.map +1 -0
  69. package/dist/memory/readiness.d.ts +16 -0
  70. package/dist/memory/readiness.d.ts.map +1 -0
  71. package/dist/memory/readiness.js +131 -0
  72. package/dist/memory/readiness.js.map +1 -0
  73. package/dist/memory/reconcile.d.ts +11 -0
  74. package/dist/memory/reconcile.d.ts.map +1 -0
  75. package/dist/memory/reconcile.js +132 -0
  76. package/dist/memory/reconcile.js.map +1 -0
  77. package/dist/memory/service.d.ts +10 -0
  78. package/dist/memory/service.d.ts.map +1 -0
  79. package/dist/memory/service.js +243 -0
  80. package/dist/memory/service.js.map +1 -0
  81. package/dist/memory/sources.d.ts +15 -0
  82. package/dist/memory/sources.d.ts.map +1 -0
  83. package/dist/memory/sources.js +94 -0
  84. package/dist/memory/sources.js.map +1 -0
  85. package/dist/memory/stamps.d.ts +13 -0
  86. package/dist/memory/stamps.d.ts.map +1 -0
  87. package/dist/memory/stamps.js +101 -0
  88. package/dist/memory/stamps.js.map +1 -0
  89. package/dist/memory/storage.d.ts +5 -0
  90. package/dist/memory/storage.d.ts.map +1 -0
  91. package/dist/memory/storage.js +116 -0
  92. package/dist/memory/storage.js.map +1 -0
  93. package/dist/memory/types.d.ts +89 -0
  94. package/dist/memory/types.d.ts.map +1 -0
  95. package/dist/memory/types.js +8 -0
  96. package/dist/memory/types.js.map +1 -0
  97. package/dist/memory/worker.d.ts +2 -0
  98. package/dist/memory/worker.d.ts.map +1 -0
  99. package/dist/memory/worker.js +84 -0
  100. package/dist/memory/worker.js.map +1 -0
  101. package/dist/npm-cli.d.ts +4 -0
  102. package/dist/npm-cli.d.ts.map +1 -0
  103. package/dist/npm-cli.js +36 -0
  104. package/dist/npm-cli.js.map +1 -0
  105. package/dist/pi/runtime.d.ts +34 -0
  106. package/dist/pi/runtime.d.ts.map +1 -0
  107. package/dist/pi/runtime.js +210 -0
  108. package/dist/pi/runtime.js.map +1 -0
  109. package/dist/pi/setup.d.ts +5 -0
  110. package/dist/pi/setup.d.ts.map +1 -0
  111. package/dist/pi/setup.js +147 -0
  112. package/dist/pi/setup.js.map +1 -0
  113. package/dist/routes/auth.d.ts.map +1 -1
  114. package/dist/routes/auth.js +3 -1
  115. package/dist/routes/auth.js.map +1 -1
  116. package/dist/routes/live-voice.d.ts +3 -0
  117. package/dist/routes/live-voice.d.ts.map +1 -0
  118. package/dist/routes/live-voice.js +49 -0
  119. package/dist/routes/live-voice.js.map +1 -0
  120. package/dist/routes/{browse.d.ts → memory.d.ts} +1 -1
  121. package/dist/routes/memory.d.ts.map +1 -0
  122. package/dist/routes/memory.js +18 -0
  123. package/dist/routes/memory.js.map +1 -0
  124. package/dist/routes/{tasks.d.ts → sync.d.ts} +1 -1
  125. package/dist/routes/sync.d.ts.map +1 -0
  126. package/dist/routes/sync.js +145 -0
  127. package/dist/routes/sync.js.map +1 -0
  128. package/dist/routes/{projects.d.ts → voice.d.ts} +1 -1
  129. package/dist/routes/voice.d.ts.map +1 -0
  130. package/dist/routes/voice.js +35 -0
  131. package/dist/routes/voice.js.map +1 -0
  132. package/dist/server-state.d.ts +30 -0
  133. package/dist/server-state.d.ts.map +1 -0
  134. package/dist/server-state.js +113 -0
  135. package/dist/server-state.js.map +1 -0
  136. package/dist/server-status.d.ts +7 -0
  137. package/dist/server-status.d.ts.map +1 -0
  138. package/dist/server-status.js +34 -0
  139. package/dist/server-status.js.map +1 -0
  140. package/dist/server.d.ts +5 -1
  141. package/dist/server.d.ts.map +1 -1
  142. package/dist/server.js +148 -46
  143. package/dist/server.js.map +1 -1
  144. package/dist/sources/adapters.d.ts +15 -0
  145. package/dist/sources/adapters.d.ts.map +1 -0
  146. package/dist/sources/adapters.js +159 -0
  147. package/dist/sources/adapters.js.map +1 -0
  148. package/dist/sources/registry.d.ts +17 -0
  149. package/dist/sources/registry.d.ts.map +1 -0
  150. package/dist/sources/registry.js +56 -0
  151. package/dist/sources/registry.js.map +1 -0
  152. package/dist/sync/collector.d.ts +3 -0
  153. package/dist/sync/collector.d.ts.map +1 -0
  154. package/dist/sync/collector.js +324 -0
  155. package/dist/sync/collector.js.map +1 -0
  156. package/dist/sync/cost.d.ts +7 -0
  157. package/dist/sync/cost.d.ts.map +1 -0
  158. package/dist/sync/cost.js +31 -0
  159. package/dist/sync/cost.js.map +1 -0
  160. package/dist/sync/jsonl.d.ts +34 -0
  161. package/dist/sync/jsonl.d.ts.map +1 -0
  162. package/dist/sync/jsonl.js +161 -0
  163. package/dist/sync/jsonl.js.map +1 -0
  164. package/dist/sync/manager.d.ts +15 -0
  165. package/dist/sync/manager.d.ts.map +1 -0
  166. package/dist/sync/manager.js +287 -0
  167. package/dist/sync/manager.js.map +1 -0
  168. package/dist/sync/normalize.d.ts +22 -0
  169. package/dist/sync/normalize.d.ts.map +1 -0
  170. package/dist/sync/normalize.js +107 -0
  171. package/dist/sync/normalize.js.map +1 -0
  172. package/dist/sync/pi-output.d.ts +33 -0
  173. package/dist/sync/pi-output.d.ts.map +1 -0
  174. package/dist/sync/pi-output.js +186 -0
  175. package/dist/sync/pi-output.js.map +1 -0
  176. package/dist/sync/pi.d.ts +15 -0
  177. package/dist/sync/pi.d.ts.map +1 -0
  178. package/dist/sync/pi.js +149 -0
  179. package/dist/sync/pi.js.map +1 -0
  180. package/dist/sync/recap.d.ts +25 -0
  181. package/dist/sync/recap.d.ts.map +1 -0
  182. package/dist/sync/recap.js +118 -0
  183. package/dist/sync/recap.js.map +1 -0
  184. package/dist/sync/reconciliation.d.ts +16 -0
  185. package/dist/sync/reconciliation.d.ts.map +1 -0
  186. package/dist/sync/reconciliation.js +22 -0
  187. package/dist/sync/reconciliation.js.map +1 -0
  188. package/dist/sync/references.d.ts +10 -0
  189. package/dist/sync/references.d.ts.map +1 -0
  190. package/dist/sync/references.js +50 -0
  191. package/dist/sync/references.js.map +1 -0
  192. package/dist/sync/source-files.d.ts +16 -0
  193. package/dist/sync/source-files.d.ts.map +1 -0
  194. package/dist/sync/source-files.js +56 -0
  195. package/dist/sync/source-files.js.map +1 -0
  196. package/dist/sync/store.d.ts +36 -0
  197. package/dist/sync/store.d.ts.map +1 -0
  198. package/dist/sync/store.js +359 -0
  199. package/dist/sync/store.js.map +1 -0
  200. package/dist/sync/summary-budget.d.ts +19 -0
  201. package/dist/sync/summary-budget.d.ts.map +1 -0
  202. package/dist/sync/summary-budget.js +39 -0
  203. package/dist/sync/summary-budget.js.map +1 -0
  204. package/dist/sync/tree.d.ts +69 -0
  205. package/dist/sync/tree.d.ts.map +1 -0
  206. package/dist/sync/tree.js +599 -0
  207. package/dist/sync/tree.js.map +1 -0
  208. package/dist/tray/controller.d.ts +51 -0
  209. package/dist/tray/controller.d.ts.map +1 -0
  210. package/dist/tray/controller.js +178 -0
  211. package/dist/tray/controller.js.map +1 -0
  212. package/dist/tray/launcher.d.ts +3 -0
  213. package/dist/tray/launcher.d.ts.map +1 -0
  214. package/dist/tray/launcher.js +47 -0
  215. package/dist/tray/launcher.js.map +1 -0
  216. package/dist/tray/native.d.ts +12 -0
  217. package/dist/tray/native.d.ts.map +1 -0
  218. package/dist/tray/native.js +93 -0
  219. package/dist/tray/native.js.map +1 -0
  220. package/dist/tray/processes.d.ts +5 -0
  221. package/dist/tray/processes.d.ts.map +1 -0
  222. package/dist/tray/processes.js +99 -0
  223. package/dist/tray/processes.js.map +1 -0
  224. package/dist/tray/worker.d.ts +4 -0
  225. package/dist/tray/worker.d.ts.map +1 -0
  226. package/dist/tray/worker.js +150 -0
  227. package/dist/tray/worker.js.map +1 -0
  228. package/dist/types.d.ts +221 -20
  229. package/dist/types.d.ts.map +1 -1
  230. package/dist/voice/continuation.d.ts +25 -0
  231. package/dist/voice/continuation.d.ts.map +1 -0
  232. package/dist/voice/continuation.js +95 -0
  233. package/dist/voice/continuation.js.map +1 -0
  234. package/dist/voice/history-focus.d.ts +14 -0
  235. package/dist/voice/history-focus.d.ts.map +1 -0
  236. package/dist/voice/history-focus.js +39 -0
  237. package/dist/voice/history-focus.js.map +1 -0
  238. package/dist/voice/legacy-history.d.ts +5 -0
  239. package/dist/voice/legacy-history.d.ts.map +1 -0
  240. package/dist/voice/legacy-history.js +34 -0
  241. package/dist/voice/legacy-history.js.map +1 -0
  242. package/dist/voice/live-context.d.ts +14 -0
  243. package/dist/voice/live-context.d.ts.map +1 -0
  244. package/dist/voice/live-context.js +137 -0
  245. package/dist/voice/live-context.js.map +1 -0
  246. package/dist/voice/live.d.ts +37 -0
  247. package/dist/voice/live.d.ts.map +1 -0
  248. package/dist/voice/live.js +462 -0
  249. package/dist/voice/live.js.map +1 -0
  250. package/dist/voice/preparation.d.ts +8 -0
  251. package/dist/voice/preparation.d.ts.map +1 -0
  252. package/dist/voice/preparation.js +59 -0
  253. package/dist/voice/preparation.js.map +1 -0
  254. package/package.json +49 -16
  255. package/public/assets/index-BQFBaSKm.js +40 -0
  256. package/public/assets/index-CYCbTSh1.js +131 -0
  257. package/public/assets/index-DntUQtGK.css +1 -0
  258. package/public/assets/persona-BVIfx5k8.js +1 -0
  259. package/public/assets/persona-C_m1CVKe.css +1 -0
  260. package/public/assets/scene-CBV2oPhA.js +3854 -0
  261. package/public/index.html +6 -8
  262. package/public/persona/THREE-LICENSE.txt +21 -0
  263. package/public/persona/call-poster.webp +0 -0
  264. package/public/persona/chat-avatar.webp +0 -0
  265. package/public/persona/reference.jpg +0 -0
  266. package/public/persona/sample.wav +0 -0
  267. package/public/persona.html +7 -0
  268. package/runtime/pi/package-lock.json +1549 -0
  269. package/runtime/pi/package.json +12 -0
  270. package/tests/fixtures/voice-question.wav +0 -0
  271. package/tray/assets/error.ico +0 -0
  272. package/tray/assets/error.png +0 -0
  273. package/tray/assets/running.ico +0 -0
  274. package/tray/assets/running.png +0 -0
  275. package/tray/assets/starting.ico +0 -0
  276. package/tray/assets/starting.png +0 -0
  277. package/tray/assets/stopped.ico +0 -0
  278. package/tray/assets/stopped.png +0 -0
  279. package/tray/assets/stopping.ico +0 -0
  280. package/tray/assets/stopping.png +0 -0
  281. package/tray/macos.js +72 -0
  282. package/tray/windows.ps1 +104 -0
  283. package/voice/realtime/README.md +84 -0
  284. package/voice/realtime/backend.mjs +81 -0
  285. package/voice/realtime/native.mjs +210 -0
  286. package/voice/realtime/peer.d.mts +15 -0
  287. package/voice/realtime/peer.mjs +116 -0
  288. package/voice/realtime/probe-browser.mjs +81 -0
  289. package/voice/realtime/probe-server.mjs +86 -0
  290. package/voice/realtime/probe.html +11 -0
  291. package/voice/realtime/probe.mjs +42 -0
  292. package/voice/realtime/rpc.mjs +118 -0
  293. package/voice/realtime/setup.mjs +32 -0
  294. package/voice/tls.mjs +49 -0
  295. package/dist/db/queries.d.ts +0 -16
  296. package/dist/db/queries.d.ts.map +0 -1
  297. package/dist/db/queries.js +0 -91
  298. package/dist/db/queries.js.map +0 -1
  299. package/dist/docker/dockerfile.d.ts +0 -50
  300. package/dist/docker/dockerfile.d.ts.map +0 -1
  301. package/dist/docker/dockerfile.js +0 -160
  302. package/dist/docker/dockerfile.js.map +0 -1
  303. package/dist/docker/manager.d.ts +0 -42
  304. package/dist/docker/manager.d.ts.map +0 -1
  305. package/dist/docker/manager.js +0 -421
  306. package/dist/docker/manager.js.map +0 -1
  307. package/dist/git/status.d.ts +0 -76
  308. package/dist/git/status.d.ts.map +0 -1
  309. package/dist/git/status.js +0 -332
  310. package/dist/git/status.js.map +0 -1
  311. package/dist/routes/browse.d.ts.map +0 -1
  312. package/dist/routes/browse.js +0 -49
  313. package/dist/routes/browse.js.map +0 -1
  314. package/dist/routes/git.d.ts +0 -9
  315. package/dist/routes/git.d.ts.map +0 -1
  316. package/dist/routes/git.js +0 -338
  317. package/dist/routes/git.js.map +0 -1
  318. package/dist/routes/projects.d.ts.map +0 -1
  319. package/dist/routes/projects.js +0 -220
  320. package/dist/routes/projects.js.map +0 -1
  321. package/dist/routes/tasks.d.ts.map +0 -1
  322. package/dist/routes/tasks.js +0 -313
  323. package/dist/routes/tasks.js.map +0 -1
  324. package/draken.dockerfile.template +0 -18
  325. package/public/assets/index-3ngsG5kF.css +0 -1
  326. 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, allowDownload = true) { return this.files.setup(report, allowDownload); }
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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=embedding-worker.d.ts.map
@@ -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,32 @@
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
+ /** Voice can verify and query prepared passages, never build a missing corpus.
21
+ * Fresh original-byte/projection checks remain mandatory; the ready receipt
22
+ * only controls scheduling, not source authority. No derived writes here. */
23
+ private assertPrepared;
24
+ private ensureModel;
25
+ private keywords;
26
+ private admitted;
27
+ private filter;
28
+ search(query: HistoryQuery, report?: ReportHistory, preparedOnly?: boolean): Promise<HistoryResults>;
29
+ private record;
30
+ read(ref: string, offset?: number, preparedBefore?: string): HistoryPage;
31
+ }
32
+ //# 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;AAOrE,OAAO,EAAiB,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAmBrI,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,UAA4F;IAqE/K;;iFAE6E;IAC7E,OAAO,CAAC,cAAc;YAkBR,WAAW;IAGzB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,MAAM;IASR,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,aAAa,EAAE,YAAY,UAAQ,GAAG,OAAO,CAAC,cAAc,CAAC;IA2FxG,OAAO,CAAC,MAAM;IAKd,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,WAAW;CAepE"}