sensemaking 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/README.md +16 -7
  2. package/dist/cjs/cli.js +5 -1
  3. package/dist/cjs/cli.js.map +1 -1
  4. package/dist/cjs/commands/find.js +173 -10
  5. package/dist/cjs/commands/find.js.map +1 -1
  6. package/dist/cjs/commands/map.js +1 -1
  7. package/dist/cjs/commands/map.js.map +1 -1
  8. package/dist/cjs/commands/peek.js +1 -1
  9. package/dist/cjs/commands/peek.js.map +1 -1
  10. package/dist/cjs/commands/shared.d.cts +1 -1
  11. package/dist/cjs/commands/shared.d.ts +1 -1
  12. package/dist/cjs/commands/shared.js +166 -8
  13. package/dist/cjs/commands/shared.js.map +1 -1
  14. package/dist/cjs/commands/status.js +10 -1
  15. package/dist/cjs/commands/status.js.map +1 -1
  16. package/dist/cjs/commands/types.d.cts +1 -0
  17. package/dist/cjs/commands/types.d.ts +1 -0
  18. package/dist/cjs/config.d.cts +26 -2
  19. package/dist/cjs/config.d.ts +26 -2
  20. package/dist/cjs/config.js +171 -10
  21. package/dist/cjs/config.js.map +1 -1
  22. package/dist/cjs/db.js +46 -16
  23. package/dist/cjs/db.js.map +1 -1
  24. package/dist/cjs/errors.d.cts +1 -1
  25. package/dist/cjs/errors.d.ts +1 -1
  26. package/dist/cjs/errors.js.map +1 -1
  27. package/dist/cjs/features/embed.d.cts +14 -0
  28. package/dist/cjs/features/embed.d.ts +14 -0
  29. package/dist/cjs/features/embed.js +840 -0
  30. package/dist/cjs/features/embed.js.map +1 -0
  31. package/dist/cjs/features/index.js +3 -1
  32. package/dist/cjs/features/index.js.map +1 -1
  33. package/dist/cjs/features/types.d.cts +4 -1
  34. package/dist/cjs/features/types.d.ts +4 -1
  35. package/dist/cjs/index.d.cts +3 -10
  36. package/dist/cjs/index.d.ts +3 -10
  37. package/dist/cjs/index.js +2 -52
  38. package/dist/cjs/index.js.map +1 -1
  39. package/dist/cjs/output.d.cts +5 -0
  40. package/dist/cjs/output.d.ts +5 -0
  41. package/dist/cjs/output.js +14 -1
  42. package/dist/cjs/output.js.map +1 -1
  43. package/dist/cjs/scan.js +9 -8
  44. package/dist/cjs/scan.js.map +1 -1
  45. package/dist/cjs/verbs.d.cts +8 -2
  46. package/dist/cjs/verbs.d.ts +8 -2
  47. package/dist/cjs/verbs.js +263 -76
  48. package/dist/cjs/verbs.js.map +1 -1
  49. package/dist/esm/cli.js +5 -1
  50. package/dist/esm/cli.js.map +1 -1
  51. package/dist/esm/commands/find.js +5 -4
  52. package/dist/esm/commands/find.js.map +1 -1
  53. package/dist/esm/commands/map.js +1 -3
  54. package/dist/esm/commands/map.js.map +1 -1
  55. package/dist/esm/commands/peek.js +1 -1
  56. package/dist/esm/commands/peek.js.map +1 -1
  57. package/dist/esm/commands/shared.d.ts +1 -1
  58. package/dist/esm/commands/shared.js +2 -2
  59. package/dist/esm/commands/shared.js.map +1 -1
  60. package/dist/esm/commands/status.js +8 -1
  61. package/dist/esm/commands/status.js.map +1 -1
  62. package/dist/esm/commands/types.d.ts +1 -0
  63. package/dist/esm/commands/types.js.map +1 -1
  64. package/dist/esm/config.d.ts +26 -2
  65. package/dist/esm/config.js +88 -10
  66. package/dist/esm/config.js.map +1 -1
  67. package/dist/esm/db.js +19 -10
  68. package/dist/esm/db.js.map +1 -1
  69. package/dist/esm/errors.d.ts +1 -1
  70. package/dist/esm/errors.js.map +1 -1
  71. package/dist/esm/features/embed.d.ts +14 -0
  72. package/dist/esm/features/embed.js +290 -0
  73. package/dist/esm/features/embed.js.map +1 -0
  74. package/dist/esm/features/index.js +3 -1
  75. package/dist/esm/features/index.js.map +1 -1
  76. package/dist/esm/features/types.d.ts +4 -1
  77. package/dist/esm/features/types.js.map +1 -1
  78. package/dist/esm/index.d.ts +3 -10
  79. package/dist/esm/index.js +4 -6
  80. package/dist/esm/index.js.map +1 -1
  81. package/dist/esm/output.d.ts +5 -0
  82. package/dist/esm/output.js +11 -1
  83. package/dist/esm/output.js.map +1 -1
  84. package/dist/esm/scan.js +9 -8
  85. package/dist/esm/scan.js.map +1 -1
  86. package/dist/esm/verbs.d.ts +8 -2
  87. package/dist/esm/verbs.js +51 -13
  88. package/dist/esm/verbs.js.map +1 -1
  89. package/package.json +2 -1
  90. package/schema.json +17 -1
  91. package/skills/sense/EXAMPLES.md +16 -0
  92. package/skills/sense/SKILL.md +41 -19
  93. package/skills/sense-setup/SKILL.md +73 -0
@@ -0,0 +1,840 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get embed () {
13
+ return embed;
14
+ },
15
+ get embedPending () {
16
+ return embedPending;
17
+ },
18
+ get semanticCandidates () {
19
+ return semanticCandidates;
20
+ }
21
+ });
22
+ var _nodefs = require("node:fs");
23
+ var _nodeos = require("node:os");
24
+ var _nodepath = require("node:path");
25
+ var _configts = require("../config.js");
26
+ var _errorsts = require("../errors.js");
27
+ var _scants = require("../scan.js");
28
+ function _array_like_to_array(arr, len) {
29
+ if (len == null || len > arr.length) len = arr.length;
30
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
31
+ return arr2;
32
+ }
33
+ function _array_with_holes(arr) {
34
+ if (Array.isArray(arr)) return arr;
35
+ }
36
+ function _array_without_holes(arr) {
37
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
38
+ }
39
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
40
+ try {
41
+ var info = gen[key](arg);
42
+ var value = info.value;
43
+ } catch (error) {
44
+ reject(error);
45
+ return;
46
+ }
47
+ if (info.done) {
48
+ resolve(value);
49
+ } else {
50
+ Promise.resolve(value).then(_next, _throw);
51
+ }
52
+ }
53
+ function _async_to_generator(fn) {
54
+ return function() {
55
+ var self = this, args = arguments;
56
+ return new Promise(function(resolve, reject) {
57
+ var gen = fn.apply(self, args);
58
+ function _next(value) {
59
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
60
+ }
61
+ function _throw(err) {
62
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
63
+ }
64
+ _next(undefined);
65
+ });
66
+ };
67
+ }
68
+ function _getRequireWildcardCache(nodeInterop) {
69
+ if (typeof WeakMap !== "function") return null;
70
+ var cacheBabelInterop = new WeakMap();
71
+ var cacheNodeInterop = new WeakMap();
72
+ return (_getRequireWildcardCache = function(nodeInterop) {
73
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
74
+ })(nodeInterop);
75
+ }
76
+ function _interop_require_wildcard(obj, nodeInterop) {
77
+ if (!nodeInterop && obj && obj.__esModule) {
78
+ return obj;
79
+ }
80
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
81
+ return {
82
+ default: obj
83
+ };
84
+ }
85
+ var cache = _getRequireWildcardCache(nodeInterop);
86
+ if (cache && cache.has(obj)) {
87
+ return cache.get(obj);
88
+ }
89
+ var newObj = {
90
+ __proto__: null
91
+ };
92
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
93
+ for(var key in obj){
94
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
95
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
96
+ if (desc && (desc.get || desc.set)) {
97
+ Object.defineProperty(newObj, key, desc);
98
+ } else {
99
+ newObj[key] = obj[key];
100
+ }
101
+ }
102
+ }
103
+ newObj.default = obj;
104
+ if (cache) {
105
+ cache.set(obj, newObj);
106
+ }
107
+ return newObj;
108
+ }
109
+ function _iterable_to_array(iter) {
110
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
111
+ }
112
+ function _iterable_to_array_limit(arr, i) {
113
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
114
+ if (_i == null) return;
115
+ var _arr = [];
116
+ var _n = true;
117
+ var _d = false;
118
+ var _s, _e;
119
+ try {
120
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
121
+ _arr.push(_s.value);
122
+ if (i && _arr.length === i) break;
123
+ }
124
+ } catch (err) {
125
+ _d = true;
126
+ _e = err;
127
+ } finally{
128
+ try {
129
+ if (!_n && _i["return"] != null) _i["return"]();
130
+ } finally{
131
+ if (_d) throw _e;
132
+ }
133
+ }
134
+ return _arr;
135
+ }
136
+ function _non_iterable_rest() {
137
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
138
+ }
139
+ function _non_iterable_spread() {
140
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
141
+ }
142
+ function _sliced_to_array(arr, i) {
143
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
144
+ }
145
+ function _to_consumable_array(arr) {
146
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
147
+ }
148
+ function _unsupported_iterable_to_array(o, minLen) {
149
+ if (!o) return;
150
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
151
+ var n = Object.prototype.toString.call(o).slice(8, -1);
152
+ if (n === "Object" && o.constructor) n = o.constructor.name;
153
+ if (n === "Map" || n === "Set") return Array.from(n);
154
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
155
+ }
156
+ function _ts_generator(thisArg, body) {
157
+ var f, y, t, _ = {
158
+ label: 0,
159
+ sent: function() {
160
+ if (t[0] & 1) throw t[1];
161
+ return t[1];
162
+ },
163
+ trys: [],
164
+ ops: []
165
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
166
+ return d(g, "next", {
167
+ value: verb(0)
168
+ }), d(g, "throw", {
169
+ value: verb(1)
170
+ }), d(g, "return", {
171
+ value: verb(2)
172
+ }), typeof Symbol === "function" && d(g, Symbol.iterator, {
173
+ value: function() {
174
+ return this;
175
+ }
176
+ }), g;
177
+ function verb(n) {
178
+ return function(v) {
179
+ return step([
180
+ n,
181
+ v
182
+ ]);
183
+ };
184
+ }
185
+ function step(op) {
186
+ if (f) throw new TypeError("Generator is already executing.");
187
+ while(g && (g = 0, op[0] && (_ = 0)), _)try {
188
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
189
+ if (y = 0, t) op = [
190
+ op[0] & 2,
191
+ t.value
192
+ ];
193
+ switch(op[0]){
194
+ case 0:
195
+ case 1:
196
+ t = op;
197
+ break;
198
+ case 4:
199
+ _.label++;
200
+ return {
201
+ value: op[1],
202
+ done: false
203
+ };
204
+ case 5:
205
+ _.label++;
206
+ y = op[1];
207
+ op = [
208
+ 0
209
+ ];
210
+ continue;
211
+ case 7:
212
+ op = _.ops.pop();
213
+ _.trys.pop();
214
+ continue;
215
+ default:
216
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
217
+ _ = 0;
218
+ continue;
219
+ }
220
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
221
+ _.label = op[1];
222
+ break;
223
+ }
224
+ if (op[0] === 6 && _.label < t[1]) {
225
+ _.label = t[1];
226
+ t = op;
227
+ break;
228
+ }
229
+ if (t && _.label < t[2]) {
230
+ _.label = t[2];
231
+ _.ops.push(op);
232
+ break;
233
+ }
234
+ if (t[2]) _.ops.pop();
235
+ _.trys.pop();
236
+ continue;
237
+ }
238
+ op = body.call(thisArg, _);
239
+ } catch (e) {
240
+ op = [
241
+ 6,
242
+ e
243
+ ];
244
+ y = 0;
245
+ } finally{
246
+ f = t = 0;
247
+ }
248
+ if (op[0] & 5) throw op[1];
249
+ return {
250
+ value: op[0] ? op[1] : void 0,
251
+ done: true
252
+ };
253
+ }
254
+ }
255
+ function _ts_values(o) {
256
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
257
+ if (m) return m.call(o);
258
+ if (o && typeof o.length === "number") return {
259
+ next: function() {
260
+ if (o && i >= o.length) o = void 0;
261
+ return {
262
+ value: o && o[i++],
263
+ done: !o
264
+ };
265
+ }
266
+ };
267
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
268
+ }
269
+ // embeddings(path, chunk, start_line, end_line, scale, vector): heading-based chunks,
270
+ // int8 vectors with a per-vector dequantization scale, vector NULL = not yet embedded.
271
+ // Reconcile stores dirty rows inside its transaction; embedding tops up on the next
272
+ // semantic query (embedPending), so staleness costs recall, never correctness.
273
+ // Storage lever fixed by the bake-off (BENCHMARKING.md): int8 at 256 dims is
274
+ // quality-free vs f32-512 when fused. Queries stay f32 at the same dims.
275
+ var STORE_DIMS = 256;
276
+ var BATCH = 64;
277
+ // Deterministic chunker used at reconcile (line ranges stored) and at embed time (text
278
+ // re-derived from the file -- chunk text is never stored). Heading-delimited with the
279
+ // preamble kept; whole file when no headings. The title/summary prefix mirrors the
280
+ // bm25 column weighting.
281
+ function chunksOf(raw, search) {
282
+ var lines = raw.split('\n');
283
+ var starts = [];
284
+ var inFence = false;
285
+ for(var i = 0; i < lines.length; i++){
286
+ if (/^(```|~~~)/.test(lines[i])) {
287
+ inFence = !inFence;
288
+ continue;
289
+ }
290
+ if (!inFence && /^#{1,6} +/.test(lines[i])) starts.push(i + 1);
291
+ }
292
+ var bounds = starts.length === 0 ? [
293
+ 1
294
+ ] : starts[0] > 1 ? [
295
+ 1
296
+ ].concat(_to_consumable_array(starts)) : starts;
297
+ var prefix = [
298
+ search === null || search === void 0 ? void 0 : search.title,
299
+ search === null || search === void 0 ? void 0 : search.summary
300
+ ].filter(Boolean).join('\n');
301
+ var chunks = [];
302
+ bounds.forEach(function(start, i) {
303
+ var end = i + 1 < bounds.length ? bounds[i + 1] - 1 : lines.length;
304
+ var text = lines.slice(start - 1, end).join('\n').trim();
305
+ if (text.length > 0) chunks.push({
306
+ startLine: start,
307
+ endLine: end,
308
+ text: prefix ? "".concat(prefix, "\n").concat(text) : text
309
+ });
310
+ });
311
+ return chunks;
312
+ }
313
+ var embed = {
314
+ name: 'embed',
315
+ schema: function schema(db) {
316
+ db.exec('CREATE TABLE IF NOT EXISTS embeddings ("path" TEXT, chunk INTEGER, start_line INTEGER, end_line INTEGER, scale REAL, vector BLOB, PRIMARY KEY ("path", chunk))');
317
+ },
318
+ extract: function extract(raw, _body, search) {
319
+ return chunksOf(raw, search);
320
+ },
321
+ remove: function remove(db, path) {
322
+ db.prepare('DELETE FROM embeddings WHERE "path" = ?').run(path);
323
+ },
324
+ store: function store(db, path, extracted) {
325
+ var insert = db.prepare('INSERT INTO embeddings ("path", chunk, start_line, end_line, scale, vector) VALUES (?, ?, ?, ?, NULL, NULL)');
326
+ extracted.forEach(function(c, idx) {
327
+ return insert.run(path, idx, c.startLine, c.endLine);
328
+ });
329
+ }
330
+ };
331
+ // --- static type: Model2Vec safetensors + pure-JS tokenizer, model cached in ~/.cache ---
332
+ // Encode convention from model2vec/model.py: no special tokens, drop unk ids, mean-pool,
333
+ // L2-normalize.
334
+ function fetchToFile(url, dest) {
335
+ return fetch(url).then(function(res) {
336
+ return _async_to_generator(function() {
337
+ var _tmp, _;
338
+ return _ts_generator(this, function(_state) {
339
+ switch(_state.label){
340
+ case 0:
341
+ if (!res.ok) throw new _errorsts.SenseError('EMBED_MODEL', "model download failed: ".concat(url, " -> HTTP ").concat(res.status));
342
+ _tmp = [
343
+ "".concat(dest, ".part")
344
+ ];
345
+ _ = Buffer.from;
346
+ return [
347
+ 4,
348
+ res.arrayBuffer()
349
+ ];
350
+ case 1:
351
+ _nodefs.writeFileSync.apply(void 0, _tmp.concat([
352
+ _.apply(Buffer, [
353
+ _state.sent()
354
+ ])
355
+ ]));
356
+ (0, _nodefs.renameSync)("".concat(dest, ".part"), dest);
357
+ return [
358
+ 2
359
+ ];
360
+ }
361
+ });
362
+ })();
363
+ });
364
+ }
365
+ function staticProvider(model) {
366
+ return _async_to_generator(function() {
367
+ var _ref, _tokenizerJson_model, _tokenizerJson_model_vocab, _tokenizerJson_model1, dir, _i, _iter, file, raw, headerLen, header, entry, spec, dims, dataStart, matrix, tokenizerJson, Tokenizer, tok, unkId;
368
+ function one(text) {
369
+ var ids = tok.encode(text, {
370
+ add_special_tokens: false
371
+ }).ids.filter(function(id) {
372
+ return id !== unkId;
373
+ });
374
+ var v = new Float32Array(dims);
375
+ if (ids.length === 0) return v;
376
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
377
+ try {
378
+ for(var _iterator = ids[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
379
+ var id = _step.value;
380
+ var off = id * dims;
381
+ for(var d = 0; d < dims; d++)v[d] += matrix[off + d];
382
+ }
383
+ } catch (err) {
384
+ _didIteratorError = true;
385
+ _iteratorError = err;
386
+ } finally{
387
+ try {
388
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
389
+ _iterator.return();
390
+ }
391
+ } finally{
392
+ if (_didIteratorError) {
393
+ throw _iteratorError;
394
+ }
395
+ }
396
+ }
397
+ var norm = 0;
398
+ for(var d1 = 0; d1 < dims; d1++){
399
+ v[d1] /= ids.length;
400
+ norm += v[d1] * v[d1];
401
+ }
402
+ norm = Math.sqrt(norm) + 1e-32;
403
+ for(var d2 = 0; d2 < dims; d2++)v[d2] /= norm;
404
+ return v;
405
+ }
406
+ return _ts_generator(this, function(_state) {
407
+ switch(_state.label){
408
+ case 0:
409
+ dir = model;
410
+ if (!!(0, _nodefs.existsSync)((0, _nodepath.join)(dir, 'model.safetensors'))) return [
411
+ 3,
412
+ 4
413
+ ];
414
+ dir = (0, _nodepath.join)((0, _nodeos.homedir)(), '.cache', 'sensemaking', 'models', model.replace(/\//g, '--'));
415
+ (0, _nodefs.mkdirSync)(dir, {
416
+ recursive: true
417
+ });
418
+ _i = 0, _iter = [
419
+ 'model.safetensors',
420
+ 'tokenizer.json'
421
+ ];
422
+ _state.label = 1;
423
+ case 1:
424
+ if (!(_i < _iter.length)) return [
425
+ 3,
426
+ 4
427
+ ];
428
+ file = _iter[_i];
429
+ if (!!(0, _nodefs.existsSync)((0, _nodepath.join)(dir, file))) return [
430
+ 3,
431
+ 3
432
+ ];
433
+ console.error("fetching ".concat(model, "/").concat(file, " into ").concat(dir, " (once; delete to refetch)"));
434
+ return [
435
+ 4,
436
+ fetchToFile("https://huggingface.co/".concat(model, "/resolve/main/").concat(file), (0, _nodepath.join)(dir, file))
437
+ ];
438
+ case 2:
439
+ _state.sent();
440
+ _state.label = 3;
441
+ case 3:
442
+ _i++;
443
+ return [
444
+ 3,
445
+ 1
446
+ ];
447
+ case 4:
448
+ raw = (0, _nodefs.readFileSync)((0, _nodepath.join)(dir, 'model.safetensors'));
449
+ headerLen = Number(raw.readBigUInt64LE(0));
450
+ header = JSON.parse(raw.subarray(8, 8 + headerLen).toString('utf8'));
451
+ entry = Object.entries(header).find(function(param) {
452
+ var _param = _sliced_to_array(param, 1), k = _param[0];
453
+ return k !== '__metadata__';
454
+ });
455
+ if (!entry || entry[1].dtype !== 'F32') throw new _errorsts.SenseError('EMBED_MODEL', "".concat(model, ": expected an F32 safetensors matrix"));
456
+ spec = entry[1];
457
+ dims = spec.shape[1];
458
+ dataStart = raw.byteOffset + 8 + headerLen + spec.data_offsets[0];
459
+ matrix = dataStart % 4 === 0 ? new Float32Array(raw.buffer, dataStart, spec.shape[0] * dims) : new Float32Array(raw.buffer.slice(dataStart, dataStart + spec.shape[0] * dims * 4));
460
+ tokenizerJson = JSON.parse((0, _nodefs.readFileSync)((0, _nodepath.join)(dir, 'tokenizer.json'), 'utf8'));
461
+ return [
462
+ 4,
463
+ Promise.resolve().then(function() {
464
+ return /*#__PURE__*/ _interop_require_wildcard(require("@huggingface/tokenizers"));
465
+ })
466
+ ];
467
+ case 5:
468
+ Tokenizer = _state.sent().Tokenizer;
469
+ tok = new Tokenizer(tokenizerJson, {});
470
+ unkId = (_ref = (_tokenizerJson_model1 = tokenizerJson.model) === null || _tokenizerJson_model1 === void 0 ? void 0 : (_tokenizerJson_model_vocab = _tokenizerJson_model1.vocab) === null || _tokenizerJson_model_vocab === void 0 ? void 0 : _tokenizerJson_model_vocab[(_tokenizerJson_model = tokenizerJson.model) === null || _tokenizerJson_model === void 0 ? void 0 : _tokenizerJson_model.unk_token]) !== null && _ref !== void 0 ? _ref : -1;
471
+ return [
472
+ 2,
473
+ {
474
+ id: "static:".concat(model),
475
+ dims: dims,
476
+ embed: function embed(texts) {
477
+ return _async_to_generator(function() {
478
+ return _ts_generator(this, function(_state) {
479
+ return [
480
+ 2,
481
+ texts.map(one)
482
+ ];
483
+ });
484
+ })();
485
+ }
486
+ }
487
+ ];
488
+ }
489
+ });
490
+ })();
491
+ }
492
+ // --- api type: one POST against any OpenAI-compatible /embeddings endpoint ---
493
+ function apiProvider(model, url, keyEnv) {
494
+ return _async_to_generator(function() {
495
+ var base, headers, key, dims;
496
+ function post(texts) {
497
+ return _async_to_generator(function() {
498
+ var res, body;
499
+ return _ts_generator(this, function(_state) {
500
+ switch(_state.label){
501
+ case 0:
502
+ return [
503
+ 4,
504
+ fetch("".concat(base, "/embeddings"), {
505
+ method: 'POST',
506
+ headers: headers,
507
+ body: JSON.stringify({
508
+ model: model,
509
+ input: texts
510
+ })
511
+ })
512
+ ];
513
+ case 1:
514
+ res = _state.sent();
515
+ if (!res.ok) throw new _errorsts.SenseError('EMBED_MODEL', "".concat(base, "/embeddings -> HTTP ").concat(res.status));
516
+ return [
517
+ 4,
518
+ res.json()
519
+ ];
520
+ case 2:
521
+ body = _state.sent();
522
+ return [
523
+ 2,
524
+ body.data.map(function(d) {
525
+ return Float32Array.from(d.embedding);
526
+ })
527
+ ];
528
+ }
529
+ });
530
+ })();
531
+ }
532
+ return _ts_generator(this, function(_state) {
533
+ switch(_state.label){
534
+ case 0:
535
+ if (!url) throw new _errorsts.SenseError('EMBED_MODEL', 'features.embed.type "api" requires a url');
536
+ base = url.replace(/\/+$/, '');
537
+ headers = {
538
+ 'content-type': 'application/json'
539
+ };
540
+ key = keyEnv ? process.env[keyEnv] : undefined;
541
+ if (key) headers.authorization = "Bearer ".concat(key);
542
+ return [
543
+ 4,
544
+ post([
545
+ 'dimension probe'
546
+ ])
547
+ ];
548
+ case 1:
549
+ dims = _state.sent()[0].length;
550
+ return [
551
+ 2,
552
+ {
553
+ id: "api:".concat(base, ":").concat(model),
554
+ dims: dims,
555
+ embed: post
556
+ }
557
+ ];
558
+ }
559
+ });
560
+ })();
561
+ }
562
+ var providers = new Map();
563
+ function getProvider(cfg) {
564
+ var _e_url;
565
+ var e = (0, _configts.embedConfig)(cfg);
566
+ if (!e) throw new _errorsts.SenseError('EMBED_DISABLED', 'semantic expansion needs features.embed in sense.config.json (e.g. "features": { "embed": true })');
567
+ var sig = "".concat(e.type, ":").concat(e.model, ":").concat((_e_url = e.url) !== null && _e_url !== void 0 ? _e_url : '');
568
+ var p = providers.get(sig);
569
+ if (!p) {
570
+ p = e.type === 'api' ? apiProvider(e.model, e.url, e.key) : staticProvider(e.model);
571
+ providers.set(sig, p);
572
+ }
573
+ return p;
574
+ }
575
+ // Slice + re-normalize (Matryoshka); optionally round through int8 storage.
576
+ function toStore(full, dims, int8) {
577
+ var v = new Float32Array(dims);
578
+ var norm = 0;
579
+ for(var d = 0; d < dims; d++)norm += full[d] * full[d];
580
+ norm = Math.sqrt(norm) + 1e-32;
581
+ for(var d1 = 0; d1 < dims; d1++)v[d1] = full[d1] / norm;
582
+ if (!int8) return {
583
+ v: v,
584
+ scale: 1
585
+ };
586
+ var max = 0;
587
+ for(var d2 = 0; d2 < dims; d2++)max = Math.max(max, Math.abs(v[d2]));
588
+ return {
589
+ v: v,
590
+ scale: max / 127 || 1
591
+ };
592
+ }
593
+ function embedPending(db, cfg, baseDir) {
594
+ return _async_to_generator(function() {
595
+ var _loop, provider, dirty, storeDims, byPath, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, row, _byPath_get, list, jobs, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, _step_value, path, chunkIdxs, chunks, _iteratorNormalCompletion2, _didIteratorError2, _iteratorError2, _iterator2, _step2, idx, update, i;
596
+ return _ts_generator(this, function(_state) {
597
+ switch(_state.label){
598
+ case 0:
599
+ _loop = function(i) {
600
+ var batch, vectors;
601
+ return _ts_generator(this, function(_state) {
602
+ switch(_state.label){
603
+ case 0:
604
+ batch = jobs.slice(i, i + BATCH);
605
+ return [
606
+ 4,
607
+ provider.embed(batch.map(function(j) {
608
+ return j.text;
609
+ }))
610
+ ];
611
+ case 1:
612
+ vectors = _state.sent();
613
+ db.exec('BEGIN');
614
+ try {
615
+ batch.forEach(function(job, j) {
616
+ var _toStore = toStore(vectors[j], storeDims, true), v = _toStore.v, scale = _toStore.scale;
617
+ var q = new Int8Array(storeDims);
618
+ for(var d = 0; d < storeDims; d++)q[d] = Math.round(v[d] / scale);
619
+ update.run(scale, Buffer.from(q.buffer), job.path, job.chunk);
620
+ });
621
+ db.exec('COMMIT');
622
+ } catch (err) {
623
+ db.exec('ROLLBACK');
624
+ throw err;
625
+ }
626
+ return [
627
+ 2
628
+ ];
629
+ }
630
+ });
631
+ };
632
+ return [
633
+ 4,
634
+ getProvider(cfg)
635
+ ];
636
+ case 1:
637
+ provider = _state.sent();
638
+ dirty = db.prepare('SELECT "path", chunk FROM embeddings WHERE vector IS NULL ORDER BY "path", chunk').all();
639
+ if (dirty.length === 0) return [
640
+ 2
641
+ ];
642
+ storeDims = Math.min(STORE_DIMS, provider.dims);
643
+ byPath = new Map();
644
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
645
+ try {
646
+ for(_iterator = dirty[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
647
+ row = _step.value;
648
+ ;
649
+ list = (_byPath_get = byPath.get(row.path)) !== null && _byPath_get !== void 0 ? _byPath_get : [];
650
+ list.push(row.chunk);
651
+ byPath.set(row.path, list);
652
+ }
653
+ } catch (err) {
654
+ _didIteratorError = true;
655
+ _iteratorError = err;
656
+ } finally{
657
+ try {
658
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
659
+ _iterator.return();
660
+ }
661
+ } finally{
662
+ if (_didIteratorError) {
663
+ throw _iteratorError;
664
+ }
665
+ }
666
+ }
667
+ jobs = [];
668
+ _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
669
+ try {
670
+ for(_iterator1 = byPath[Symbol.iterator](); !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
671
+ _step_value = _sliced_to_array(_step1.value, 2), path = _step_value[0], chunkIdxs = _step_value[1];
672
+ chunks = void 0;
673
+ try {
674
+ chunks = (0, _scants.parseFile)({
675
+ relPath: path,
676
+ absPath: (0, _nodepath.join)(baseDir, path),
677
+ mtimeMs: 0,
678
+ size: 0
679
+ }, [
680
+ embed
681
+ ]).doc.extracted.embed;
682
+ } catch (unused) {
683
+ continue; // vanished since reconcile; the next reconcile removes its rows
684
+ }
685
+ _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = undefined;
686
+ try {
687
+ for(_iterator2 = chunkIdxs[Symbol.iterator](); !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true){
688
+ idx = _step2.value;
689
+ if (chunks[idx]) jobs.push({
690
+ path: path,
691
+ chunk: idx,
692
+ text: chunks[idx].text
693
+ });
694
+ }
695
+ } catch (err) {
696
+ _didIteratorError2 = true;
697
+ _iteratorError2 = err;
698
+ } finally{
699
+ try {
700
+ if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
701
+ _iterator2.return();
702
+ }
703
+ } finally{
704
+ if (_didIteratorError2) {
705
+ throw _iteratorError2;
706
+ }
707
+ }
708
+ }
709
+ }
710
+ } catch (err) {
711
+ _didIteratorError1 = true;
712
+ _iteratorError1 = err;
713
+ } finally{
714
+ try {
715
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
716
+ _iterator1.return();
717
+ }
718
+ } finally{
719
+ if (_didIteratorError1) {
720
+ throw _iteratorError1;
721
+ }
722
+ }
723
+ }
724
+ update = db.prepare('UPDATE embeddings SET scale = ?, vector = ? WHERE "path" = ? AND chunk = ?');
725
+ i = 0;
726
+ _state.label = 2;
727
+ case 2:
728
+ if (!(i < jobs.length)) return [
729
+ 3,
730
+ 5
731
+ ];
732
+ return [
733
+ 5,
734
+ _ts_values(_loop(i))
735
+ ];
736
+ case 3:
737
+ _state.sent();
738
+ _state.label = 4;
739
+ case 4:
740
+ i += BATCH;
741
+ return [
742
+ 3,
743
+ 2
744
+ ];
745
+ case 5:
746
+ return [
747
+ 2
748
+ ];
749
+ }
750
+ });
751
+ })();
752
+ }
753
+ function semanticCandidates(db, cfg, terms, fetch1) {
754
+ return _async_to_generator(function() {
755
+ var _terms_match, baseDir, provider, storeDims, text, _toStore, qv, rows, best, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, row, q, dot, d, score, existing;
756
+ return _ts_generator(this, function(_state) {
757
+ switch(_state.label){
758
+ case 0:
759
+ baseDir = cfg.baseDir;
760
+ if (!baseDir) throw new _errorsts.SenseError('EMBED_MODEL', 'semantic expansion needs a config with baseDir (use loadConfig/open)');
761
+ return [
762
+ 4,
763
+ embedPending(db, cfg, baseDir)
764
+ ];
765
+ case 1:
766
+ _state.sent();
767
+ return [
768
+ 4,
769
+ getProvider(cfg)
770
+ ];
771
+ case 2:
772
+ provider = _state.sent();
773
+ storeDims = Math.min(STORE_DIMS, provider.dims);
774
+ text = ((_terms_match = terms.match(RegExp("[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376-\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E-\\u066F\\u0671-\\u06D3\\u06D5\\u06E5-\\u06E6\\u06EE-\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4-\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088F\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F-\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC-\\u09DD\\u09DF-\\u09E1\\u09F0-\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F-\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32-\\u0A33\\u0A35-\\u0A36\\u0A38-\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2-\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0-\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F-\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32-\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C-\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99-\\u0B9A\\u0B9C\\u0B9E-\\u0B9F\\u0BA3-\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5C-\\u0C5D\\u0C60-\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDC-\\u0CDE\\u0CE0-\\u0CE1\\u0CF1-\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32-\\u0E33\\u0E40-\\u0E46\\u0E81-\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2-\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065-\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE-\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C8A\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5-\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183-\\u2184\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3006\\u3031-\\u3035\\u303B-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A-\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7DC\\uA7F1-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD-\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5-\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40-\\uFB41\\uFB43-\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC\\u{10000}-\\u{1000B}\\u{1000D}-\\u{10026}\\u{10028}-\\u{1003A}\\u{1003C}-\\u{1003D}\\u{1003F}-\\u{1004D}\\u{10050}-\\u{1005D}\\u{10080}-\\u{100FA}\\u{10280}-\\u{1029C}\\u{102A0}-\\u{102D0}\\u{10300}-\\u{1031F}\\u{1032D}-\\u{10340}\\u{10342}-\\u{10349}\\u{10350}-\\u{10375}\\u{10380}-\\u{1039D}\\u{103A0}-\\u{103C3}\\u{103C8}-\\u{103CF}\\u{10400}-\\u{1049D}\\u{104B0}-\\u{104D3}\\u{104D8}-\\u{104FB}\\u{10500}-\\u{10527}\\u{10530}-\\u{10563}\\u{10570}-\\u{1057A}\\u{1057C}-\\u{1058A}\\u{1058C}-\\u{10592}\\u{10594}-\\u{10595}\\u{10597}-\\u{105A1}\\u{105A3}-\\u{105B1}\\u{105B3}-\\u{105B9}\\u{105BB}-\\u{105BC}\\u{105C0}-\\u{105F3}\\u{10600}-\\u{10736}\\u{10740}-\\u{10755}\\u{10760}-\\u{10767}\\u{10780}-\\u{10785}\\u{10787}-\\u{107B0}\\u{107B2}-\\u{107BA}\\u{10800}-\\u{10805}\\u{10808}\\u{1080A}-\\u{10835}\\u{10837}-\\u{10838}\\u{1083C}\\u{1083F}-\\u{10855}\\u{10860}-\\u{10876}\\u{10880}-\\u{1089E}\\u{108E0}-\\u{108F2}\\u{108F4}-\\u{108F5}\\u{10900}-\\u{10915}\\u{10920}-\\u{10939}\\u{10940}-\\u{10959}\\u{10980}-\\u{109B7}\\u{109BE}-\\u{109BF}\\u{10A00}\\u{10A10}-\\u{10A13}\\u{10A15}-\\u{10A17}\\u{10A19}-\\u{10A35}\\u{10A60}-\\u{10A7C}\\u{10A80}-\\u{10A9C}\\u{10AC0}-\\u{10AC7}\\u{10AC9}-\\u{10AE4}\\u{10B00}-\\u{10B35}\\u{10B40}-\\u{10B55}\\u{10B60}-\\u{10B72}\\u{10B80}-\\u{10B91}\\u{10C00}-\\u{10C48}\\u{10C80}-\\u{10CB2}\\u{10CC0}-\\u{10CF2}\\u{10D00}-\\u{10D23}\\u{10D4A}-\\u{10D65}\\u{10D6F}-\\u{10D85}\\u{10E80}-\\u{10EA9}\\u{10EB0}-\\u{10EB1}\\u{10EC2}-\\u{10EC7}\\u{10F00}-\\u{10F1C}\\u{10F27}\\u{10F30}-\\u{10F45}\\u{10F70}-\\u{10F81}\\u{10FB0}-\\u{10FC4}\\u{10FE0}-\\u{10FF6}\\u{11003}-\\u{11037}\\u{11071}-\\u{11072}\\u{11075}\\u{11083}-\\u{110AF}\\u{110D0}-\\u{110E8}\\u{11103}-\\u{11126}\\u{11144}\\u{11147}\\u{11150}-\\u{11172}\\u{11176}\\u{11183}-\\u{111B2}\\u{111C1}-\\u{111C4}\\u{111DA}\\u{111DC}\\u{11200}-\\u{11211}\\u{11213}-\\u{1122B}\\u{1123F}-\\u{11240}\\u{11280}-\\u{11286}\\u{11288}\\u{1128A}-\\u{1128D}\\u{1128F}-\\u{1129D}\\u{1129F}-\\u{112A8}\\u{112B0}-\\u{112DE}\\u{11305}-\\u{1130C}\\u{1130F}-\\u{11310}\\u{11313}-\\u{11328}\\u{1132A}-\\u{11330}\\u{11332}-\\u{11333}\\u{11335}-\\u{11339}\\u{1133D}\\u{11350}\\u{1135D}-\\u{11361}\\u{11380}-\\u{11389}\\u{1138B}\\u{1138E}\\u{11390}-\\u{113B5}\\u{113B7}\\u{113D1}\\u{113D3}\\u{11400}-\\u{11434}\\u{11447}-\\u{1144A}\\u{1145F}-\\u{11461}\\u{11480}-\\u{114AF}\\u{114C4}-\\u{114C5}\\u{114C7}\\u{11580}-\\u{115AE}\\u{115D8}-\\u{115DB}\\u{11600}-\\u{1162F}\\u{11644}\\u{11680}-\\u{116AA}\\u{116B8}\\u{11700}-\\u{1171A}\\u{11740}-\\u{11746}\\u{11800}-\\u{1182B}\\u{118A0}-\\u{118DF}\\u{118FF}-\\u{11906}\\u{11909}\\u{1190C}-\\u{11913}\\u{11915}-\\u{11916}\\u{11918}-\\u{1192F}\\u{1193F}\\u{11941}\\u{119A0}-\\u{119A7}\\u{119AA}-\\u{119D0}\\u{119E1}\\u{119E3}\\u{11A00}\\u{11A0B}-\\u{11A32}\\u{11A3A}\\u{11A50}\\u{11A5C}-\\u{11A89}\\u{11A9D}\\u{11AB0}-\\u{11AF8}\\u{11BC0}-\\u{11BE0}\\u{11C00}-\\u{11C08}\\u{11C0A}-\\u{11C2E}\\u{11C40}\\u{11C72}-\\u{11C8F}\\u{11D00}-\\u{11D06}\\u{11D08}-\\u{11D09}\\u{11D0B}-\\u{11D30}\\u{11D46}\\u{11D60}-\\u{11D65}\\u{11D67}-\\u{11D68}\\u{11D6A}-\\u{11D89}\\u{11D98}\\u{11DB0}-\\u{11DDB}\\u{11EE0}-\\u{11EF2}\\u{11F02}\\u{11F04}-\\u{11F10}\\u{11F12}-\\u{11F33}\\u{11FB0}\\u{12000}-\\u{12399}\\u{12480}-\\u{12543}\\u{12F90}-\\u{12FF0}\\u{13000}-\\u{1342F}\\u{13441}-\\u{13446}\\u{13460}-\\u{143FA}\\u{14400}-\\u{14646}\\u{16100}-\\u{1611D}\\u{16800}-\\u{16A38}\\u{16A40}-\\u{16A5E}\\u{16A70}-\\u{16ABE}\\u{16AD0}-\\u{16AED}\\u{16B00}-\\u{16B2F}\\u{16B40}-\\u{16B43}\\u{16B63}-\\u{16B77}\\u{16B7D}-\\u{16B8F}\\u{16D40}-\\u{16D6C}\\u{16E40}-\\u{16E7F}\\u{16EA0}-\\u{16EB8}\\u{16EBB}-\\u{16ED3}\\u{16F00}-\\u{16F4A}\\u{16F50}\\u{16F93}-\\u{16F9F}\\u{16FE0}-\\u{16FE1}\\u{16FE3}\\u{16FF2}-\\u{16FF3}\\u{17000}-\\u{18CD5}\\u{18CFF}-\\u{18D1E}\\u{18D80}-\\u{18DF2}\\u{1AFF0}-\\u{1AFF3}\\u{1AFF5}-\\u{1AFFB}\\u{1AFFD}-\\u{1AFFE}\\u{1B000}-\\u{1B122}\\u{1B132}\\u{1B150}-\\u{1B152}\\u{1B155}\\u{1B164}-\\u{1B167}\\u{1B170}-\\u{1B2FB}\\u{1BC00}-\\u{1BC6A}\\u{1BC70}-\\u{1BC7C}\\u{1BC80}-\\u{1BC88}\\u{1BC90}-\\u{1BC99}\\u{1D400}-\\u{1D454}\\u{1D456}-\\u{1D49C}\\u{1D49E}-\\u{1D49F}\\u{1D4A2}\\u{1D4A5}-\\u{1D4A6}\\u{1D4A9}-\\u{1D4AC}\\u{1D4AE}-\\u{1D4B9}\\u{1D4BB}\\u{1D4BD}-\\u{1D4C3}\\u{1D4C5}-\\u{1D505}\\u{1D507}-\\u{1D50A}\\u{1D50D}-\\u{1D514}\\u{1D516}-\\u{1D51C}\\u{1D51E}-\\u{1D539}\\u{1D53B}-\\u{1D53E}\\u{1D540}-\\u{1D544}\\u{1D546}\\u{1D54A}-\\u{1D550}\\u{1D552}-\\u{1D6A5}\\u{1D6A8}-\\u{1D6C0}\\u{1D6C2}-\\u{1D6DA}\\u{1D6DC}-\\u{1D6FA}\\u{1D6FC}-\\u{1D714}\\u{1D716}-\\u{1D734}\\u{1D736}-\\u{1D74E}\\u{1D750}-\\u{1D76E}\\u{1D770}-\\u{1D788}\\u{1D78A}-\\u{1D7A8}\\u{1D7AA}-\\u{1D7C2}\\u{1D7C4}-\\u{1D7CB}\\u{1DF00}-\\u{1DF1E}\\u{1DF25}-\\u{1DF2A}\\u{1E030}-\\u{1E06D}\\u{1E100}-\\u{1E12C}\\u{1E137}-\\u{1E13D}\\u{1E14E}\\u{1E290}-\\u{1E2AD}\\u{1E2C0}-\\u{1E2EB}\\u{1E4D0}-\\u{1E4EB}\\u{1E5D0}-\\u{1E5ED}\\u{1E5F0}\\u{1E6C0}-\\u{1E6DE}\\u{1E6E0}-\\u{1E6E2}\\u{1E6E4}-\\u{1E6E5}\\u{1E6E7}-\\u{1E6ED}\\u{1E6F0}-\\u{1E6F4}\\u{1E6FE}-\\u{1E6FF}\\u{1E7E0}-\\u{1E7E6}\\u{1E7E8}-\\u{1E7EB}\\u{1E7ED}-\\u{1E7EE}\\u{1E7F0}-\\u{1E7FE}\\u{1E800}-\\u{1E8C4}\\u{1E900}-\\u{1E943}\\u{1E94B}\\u{1EE00}-\\u{1EE03}\\u{1EE05}-\\u{1EE1F}\\u{1EE21}-\\u{1EE22}\\u{1EE24}\\u{1EE27}\\u{1EE29}-\\u{1EE32}\\u{1EE34}-\\u{1EE37}\\u{1EE39}\\u{1EE3B}\\u{1EE42}\\u{1EE47}\\u{1EE49}\\u{1EE4B}\\u{1EE4D}-\\u{1EE4F}\\u{1EE51}-\\u{1EE52}\\u{1EE54}\\u{1EE57}\\u{1EE59}\\u{1EE5B}\\u{1EE5D}\\u{1EE5F}\\u{1EE61}-\\u{1EE62}\\u{1EE64}\\u{1EE67}-\\u{1EE6A}\\u{1EE6C}-\\u{1EE72}\\u{1EE74}-\\u{1EE77}\\u{1EE79}-\\u{1EE7C}\\u{1EE7E}\\u{1EE80}-\\u{1EE89}\\u{1EE8B}-\\u{1EE9B}\\u{1EEA1}-\\u{1EEA3}\\u{1EEA5}-\\u{1EEA9}\\u{1EEAB}-\\u{1EEBB}\\u{20000}-\\u{2A6DF}\\u{2A700}-\\u{2B81D}\\u{2B820}-\\u{2CEAD}\\u{2CEB0}-\\u{2EBE0}\\u{2EBF0}-\\u{2EE5D}\\u{2F800}-\\u{2FA1D}\\u{30000}-\\u{3134A}\\u{31350}-\\u{33479}\\u0030-\\u0039\\u00B2-\\u00B3\\u00B9\\u00BC-\\u00BE\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u09F4-\\u09F9\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0B72-\\u0B77\\u0BE6-\\u0BF2\\u0C66-\\u0C6F\\u0C78-\\u0C7E\\u0CE6-\\u0CEF\\u0D58-\\u0D5E\\u0D66-\\u0D78\\u0DE6-\\u0DEF\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F33\\u1040-\\u1049\\u1090-\\u1099\\u1369-\\u137C\\u16EE-\\u16F0\\u17E0-\\u17E9\\u17F0-\\u17F9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19DA\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\u2070\\u2074-\\u2079\\u2080-\\u2089\\u2150-\\u2182\\u2185-\\u2189\\u2460-\\u249B\\u24EA-\\u24FF\\u2776-\\u2793\\u2CFD\\u3007\\u3021-\\u3029\\u3038-\\u303A\\u3192-\\u3195\\u3220-\\u3229\\u3248-\\u324F\\u3251-\\u325F\\u3280-\\u3289\\u32B1-\\u32BF\\uA620-\\uA629\\uA6E6-\\uA6EF\\uA830-\\uA835\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uA9F0-\\uA9F9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19\\u{10107}-\\u{10133}\\u{10140}-\\u{10178}\\u{1018A}-\\u{1018B}\\u{102E1}-\\u{102FB}\\u{10320}-\\u{10323}\\u{10341}\\u{1034A}\\u{103D1}-\\u{103D5}\\u{104A0}-\\u{104A9}\\u{10858}-\\u{1085F}\\u{10879}-\\u{1087F}\\u{108A7}-\\u{108AF}\\u{108FB}-\\u{108FF}\\u{10916}-\\u{1091B}\\u{109BC}-\\u{109BD}\\u{109C0}-\\u{109CF}\\u{109D2}-\\u{109FF}\\u{10A40}-\\u{10A48}\\u{10A7D}-\\u{10A7E}\\u{10A9D}-\\u{10A9F}\\u{10AEB}-\\u{10AEF}\\u{10B58}-\\u{10B5F}\\u{10B78}-\\u{10B7F}\\u{10BA9}-\\u{10BAF}\\u{10CFA}-\\u{10CFF}\\u{10D30}-\\u{10D39}\\u{10D40}-\\u{10D49}\\u{10E60}-\\u{10E7E}\\u{10F1D}-\\u{10F26}\\u{10F51}-\\u{10F54}\\u{10FC5}-\\u{10FCB}\\u{11052}-\\u{1106F}\\u{110F0}-\\u{110F9}\\u{11136}-\\u{1113F}\\u{111D0}-\\u{111D9}\\u{111E1}-\\u{111F4}\\u{112F0}-\\u{112F9}\\u{11450}-\\u{11459}\\u{114D0}-\\u{114D9}\\u{11650}-\\u{11659}\\u{116C0}-\\u{116C9}\\u{116D0}-\\u{116E3}\\u{11730}-\\u{1173B}\\u{118E0}-\\u{118F2}\\u{11950}-\\u{11959}\\u{11BF0}-\\u{11BF9}\\u{11C50}-\\u{11C6C}\\u{11D50}-\\u{11D59}\\u{11DA0}-\\u{11DA9}\\u{11DE0}-\\u{11DE9}\\u{11F50}-\\u{11F59}\\u{11FC0}-\\u{11FD4}\\u{12400}-\\u{1246E}\\u{16130}-\\u{16139}\\u{16A60}-\\u{16A69}\\u{16AC0}-\\u{16AC9}\\u{16B50}-\\u{16B59}\\u{16B5B}-\\u{16B61}\\u{16D70}-\\u{16D79}\\u{16E80}-\\u{16E96}\\u{16FF4}-\\u{16FF6}\\u{1CCF0}-\\u{1CCF9}\\u{1D2C0}-\\u{1D2D3}\\u{1D2E0}-\\u{1D2F3}\\u{1D360}-\\u{1D378}\\u{1D7CE}-\\u{1D7FF}\\u{1E140}-\\u{1E149}\\u{1E2F0}-\\u{1E2F9}\\u{1E4F0}-\\u{1E4F9}\\u{1E5F1}-\\u{1E5FA}\\u{1E8C7}-\\u{1E8CF}\\u{1E950}-\\u{1E959}\\u{1EC71}-\\u{1ECAB}\\u{1ECAD}-\\u{1ECAF}\\u{1ECB1}-\\u{1ECB4}\\u{1ED01}-\\u{1ED2D}\\u{1ED2F}-\\u{1ED3D}\\u{1F100}-\\u{1F10C}\\u{1FBF0}-\\u{1FBF9}]+", "gu"))) !== null && _terms_match !== void 0 ? _terms_match : []).filter(function(t) {
775
+ return ![
776
+ 'AND',
777
+ 'OR',
778
+ 'NOT',
779
+ 'NEAR'
780
+ ].includes(t);
781
+ }).join(' ');
782
+ return [
783
+ 4,
784
+ provider.embed([
785
+ text
786
+ ])
787
+ ];
788
+ case 3:
789
+ _toStore = toStore.apply(void 0, [
790
+ _state.sent()[0],
791
+ storeDims,
792
+ false
793
+ ]), qv = _toStore.v;
794
+ rows = db.prepare('SELECT "path", start_line, end_line, scale, vector FROM embeddings WHERE vector IS NOT NULL').all();
795
+ best = new Map();
796
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
797
+ try {
798
+ for(_iterator = rows[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
799
+ row = _step.value;
800
+ q = new Int8Array(row.vector.buffer, row.vector.byteOffset, Math.min(storeDims, row.vector.byteLength));
801
+ dot = 0;
802
+ for(d = 0; d < q.length; d++)dot += q[d] * qv[d];
803
+ score = dot * row.scale;
804
+ existing = best.get(row.path);
805
+ if (!existing || score > existing.score) best.set(row.path, {
806
+ score: score,
807
+ lines: "L".concat(row.start_line, "-").concat(row.end_line)
808
+ });
809
+ }
810
+ } catch (err) {
811
+ _didIteratorError = true;
812
+ _iteratorError = err;
813
+ } finally{
814
+ try {
815
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
816
+ _iterator.return();
817
+ }
818
+ } finally{
819
+ if (_didIteratorError) {
820
+ throw _iteratorError;
821
+ }
822
+ }
823
+ }
824
+ return [
825
+ 2,
826
+ _to_consumable_array(best.entries()).sort(function(a, b) {
827
+ return b[1].score - a[1].score;
828
+ }).slice(0, fetch1).map(function(param) {
829
+ var _param = _sliced_to_array(param, 2), path = _param[0], b = _param[1];
830
+ return {
831
+ path: path,
832
+ lines: b.lines
833
+ };
834
+ })
835
+ ];
836
+ }
837
+ });
838
+ })();
839
+ }
840
+ /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }