crbro-memory 1.12.0 → 1.14.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 (41) hide show
  1. package/README.md +33 -9
  2. package/bin/crbro.mjs +578 -504
  3. package/dist/engine/cortex.d.ts.map +1 -1
  4. package/dist/engine/cortex.js +31 -1
  5. package/dist/engine/cortex.js.map +1 -1
  6. package/dist/engine/maintenance.d.ts +2 -0
  7. package/dist/engine/maintenance.d.ts.map +1 -1
  8. package/dist/engine/maintenance.js +24 -2
  9. package/dist/engine/maintenance.js.map +1 -1
  10. package/dist/engine/synapses.d.ts +6 -1
  11. package/dist/engine/synapses.d.ts.map +1 -1
  12. package/dist/engine/synapses.js +3 -3
  13. package/dist/engine/synapses.js.map +1 -1
  14. package/dist/search/index.d.ts +20 -0
  15. package/dist/search/index.d.ts.map +1 -1
  16. package/dist/search/index.js +202 -27
  17. package/dist/search/index.js.map +1 -1
  18. package/dist/search/semantic.d.ts +62 -0
  19. package/dist/search/semantic.d.ts.map +1 -0
  20. package/dist/search/semantic.js +250 -0
  21. package/dist/search/semantic.js.map +1 -0
  22. package/dist/search/synonyms.d.ts +2 -0
  23. package/dist/search/synonyms.d.ts.map +1 -0
  24. package/dist/search/synonyms.js +226 -0
  25. package/dist/search/synonyms.js.map +1 -0
  26. package/dist/search/tokenize.d.ts +12 -6
  27. package/dist/search/tokenize.d.ts.map +1 -1
  28. package/dist/search/tokenize.js +20 -6
  29. package/dist/search/tokenize.js.map +1 -1
  30. package/dist/server.d.ts.map +1 -1
  31. package/dist/server.js +337 -152
  32. package/dist/server.js.map +1 -1
  33. package/dist/sync/materialize.d.ts.map +1 -1
  34. package/dist/sync/materialize.js +30 -1
  35. package/dist/sync/materialize.js.map +1 -1
  36. package/dist/sync/space.d.ts.map +1 -1
  37. package/dist/sync/space.js +6 -3
  38. package/dist/sync/space.js.map +1 -1
  39. package/dist/types/index.d.ts +32 -0
  40. package/dist/types/index.d.ts.map +1 -1
  41. package/package.json +54 -54
@@ -14,12 +14,18 @@
14
14
  // one header document per neuron carrying name and tags (which is what keeps
15
15
  // search-by-name working). Scoring runs per term and recombines, so a neuron
16
16
  // wins by having ONE chunk that covers the query, not by being short.
17
+ var __importDefault = (this && this.__importDefault) || function (mod) {
18
+ return (mod && mod.__esModule) ? mod : { "default": mod };
19
+ };
17
20
  Object.defineProperty(exports, "__esModule", { value: true });
18
21
  exports.SearchEngine = exports.INDEX_VERSION = void 0;
19
22
  const orama_1 = require("@orama/orama");
23
+ const node_path_1 = __importDefault(require("node:path"));
20
24
  const fs_js_1 = require("../utils/fs.js");
21
25
  const hash_js_1 = require("../utils/hash.js");
22
26
  const tokenize_js_1 = require("./tokenize.js");
27
+ const semantic_js_1 = require("./semantic.js");
28
+ const ops_js_1 = require("../sync/ops.js");
23
29
  /**
24
30
  * Bump when the schema changes so old on-disk indexes are rebuilt, not loaded.
25
31
  * v3: chunk removal used to rely on an Orama `where` filter that silently
@@ -36,6 +42,28 @@ const BREADTH_CAP = 0.25;
36
42
  const COVERAGE_EXPONENT = 1.5;
37
43
  /** Debounce before writing the index to disk after a learn. */
38
44
  const PERSIST_DEBOUNCE_MS = 5000;
45
+ /** How many of the top results also carry their neuron's next best chunks. */
46
+ const ALSO_MATCHED_RESULTS = 3;
47
+ /** Semantic fusion (opt-in): candidates asked of the vector index per query. */
48
+ const SEMANTIC_CANDIDATES = 40;
49
+ /** Reciprocal-rank fusion constant. 60 is the paper's value; results are not sensitive to it. */
50
+ const RRF_K = 60;
51
+ /**
52
+ * Below this cosine a vector-only candidate is not surfaced. e5-small
53
+ * compresses cosines into roughly 0.80-0.92: unrelated text sits at
54
+ * 0.80-0.84 (distractor top-1 median 0.832, max 0.841 on the benchmark), so
55
+ * anything under this line would be the false-confidence failure the
56
+ * retrieval benchmark measures against. Chosen by sweeping the benchmark's
57
+ * own set — a tuned number, documented as such.
58
+ */
59
+ const SEMANTIC_FLOOR_DEFAULT = 0.84;
60
+ /** Read at query time, not import time, so a test or a sweep can move it. */
61
+ function semanticFloor() {
62
+ const v = Number(process.env.CRBRO_SEMANTIC_FLOOR);
63
+ return Number.isFinite(v) && v > 0 && v <= 1 ? v : SEMANTIC_FLOOR_DEFAULT;
64
+ }
65
+ /** At or above this cosine a vector-only match is reported as strong. */
66
+ const SEMANTIC_STRONG = 0.86;
39
67
  const SCHEMA = {
40
68
  id: 'string', // "<neuron_id>#<hash>" — must be `id` for Orama
41
69
  neuron: 'string',
@@ -62,8 +90,23 @@ class SearchEngine {
62
90
  * ones inserting every chunk, so we simply remember what we inserted.
63
91
  */
64
92
  chunksByNeuron = new Map();
93
+ /**
94
+ * The opt-in semantic layer: CRBRO_SEMANTIC=1 plus
95
+ * `npx crbro-memory semantic install`. Null when off — every path below
96
+ * then behaves exactly as the lexical engine alone.
97
+ */
98
+ semantic = null;
99
+ /** Chunks inserted since the last embedding pass: id → text. */
100
+ pendingEmbed = new Map();
65
101
  constructor(brain) {
66
102
  this.brain = brain;
103
+ if ((0, semantic_js_1.semanticEnabled)()) {
104
+ this.semantic = new semantic_js_1.SemanticIndex(node_path_1.default.dirname(brain.paths.chunksIndex()));
105
+ }
106
+ }
107
+ /** Vectors held by the semantic layer (0 when it is off). */
108
+ semanticCount() {
109
+ return this.semantic ? this.semantic.count() : 0;
67
110
  }
68
111
  // ─── Lifecycle ─────────────────────────────────────────────────
69
112
  /**
@@ -76,6 +119,13 @@ class SearchEngine {
76
119
  * ourselves is the only reliable guard.
77
120
  */
78
121
  async init() {
122
+ if (this.semantic) {
123
+ await this.semantic.load();
124
+ // Warm the model off the critical path: boot returns at once and the
125
+ // first recall waits only for what is left of the ~13 s cold load.
126
+ if (this.semantic.count() > 0)
127
+ this.semantic.warm();
128
+ }
79
129
  const indexPath = this.brain.paths.chunksIndex();
80
130
  if (await (0, fs_js_1.fileExists)(indexPath)) {
81
131
  try {
@@ -137,6 +187,7 @@ class SearchEngine {
137
187
  // Skip unreadable neuron, keep going.
138
188
  }
139
189
  }
190
+ await this.flushEmbeddings();
140
191
  await this.persist();
141
192
  await this.dropLegacyIndex();
142
193
  return this.docCount;
@@ -151,6 +202,8 @@ class SearchEngine {
151
202
  return;
152
203
  await this.removeNeuronChunks(neuron.id);
153
204
  await this.insertNeuronChunks(neuron);
205
+ // Ids are content hashes: only the neuron's NEW lines get embedded.
206
+ await this.flushEmbeddings();
154
207
  this.markDirty();
155
208
  }
156
209
  /** Write the index to disk now. */
@@ -166,6 +219,12 @@ class SearchEngine {
166
219
  // ~25% of both size and write time for something no human reads.
167
220
  await (0, fs_js_1.writeJSON)(this.brain.paths.chunksIndex(), payload, { pretty: false });
168
221
  this.dirty = false;
222
+ if (this.semantic) {
223
+ try {
224
+ await this.semantic.persist();
225
+ }
226
+ catch { /* vectors are derived data; recall survives */ }
227
+ }
169
228
  }
170
229
  /** Flush if there are unsaved changes. Called on consolidate/shutdown. */
171
230
  async flush() {
@@ -221,13 +280,22 @@ class SearchEngine {
221
280
  }
222
281
  }
223
282
  }
283
+ // Coverage weighting: a chunk matching five of six terms beats a scrap
284
+ // matching one.
285
+ for (const chunk of perChunk.values()) {
286
+ const coverage = chunk.matched / terms.length;
287
+ chunk.score = chunk.score * Math.pow(coverage, COVERAGE_EXPONENT);
288
+ }
289
+ // Semantic fusion — only when the opt-in layer is installed, enabled and
290
+ // holds vectors. Off, this is a no-op and the scores above stand.
291
+ if (this.semantic && this.semantic.ready() && this.semantic.count() > 0) {
292
+ await this.fuseSemantic(query, perChunk, options?.domain);
293
+ }
224
294
  if (perChunk.size === 0)
225
295
  return [];
226
- // Coverage weighting, then group chunks by neuron, best first.
296
+ // Group chunks by neuron, best first.
227
297
  const byNeuron = new Map();
228
298
  for (const chunk of perChunk.values()) {
229
- const coverage = chunk.matched / terms.length;
230
- chunk.score = chunk.score * Math.pow(coverage, COVERAGE_EXPONENT);
231
299
  const list = byNeuron.get(chunk.neuron);
232
300
  if (list)
233
301
  list.push(chunk);
@@ -236,7 +304,75 @@ class SearchEngine {
236
304
  }
237
305
  for (const list of byNeuron.values())
238
306
  list.sort((a, b) => b.score - a.score);
239
- return this.materializeResults([...byNeuron.values()], limit);
307
+ return this.materializeResults([...byNeuron.values()], limit, terms.length);
308
+ }
309
+ /**
310
+ * Blend the vector ranking into the lexical one with reciprocal-rank
311
+ * fusion: rank-based, so the two score scales never have to agree. A chunk
312
+ * ranked first by both scores 1.0; one seen by a single list scores about
313
+ * half. Vector-only candidates below the cosine floor are dropped, and the
314
+ * header chunks (name + tags) are never surfaced by vector alone.
315
+ */
316
+ async fuseSemantic(query, perChunk, domain) {
317
+ let sem;
318
+ try {
319
+ sem = await this.semantic.query(query, SEMANTIC_CANDIDATES);
320
+ }
321
+ catch {
322
+ return; // the semantic layer never breaks recall
323
+ }
324
+ const floor = semanticFloor();
325
+ sem = sem.filter(h => h.score >= floor);
326
+ if (sem.length === 0)
327
+ return;
328
+ for (const h of sem) {
329
+ if (perChunk.has(h.id))
330
+ continue;
331
+ let doc;
332
+ try {
333
+ doc = await (0, orama_1.getByID)(this.db, h.id);
334
+ }
335
+ catch {
336
+ doc = undefined;
337
+ }
338
+ if (!doc || doc.kind === 'header')
339
+ continue;
340
+ if (domain && doc.domain !== domain)
341
+ continue;
342
+ perChunk.set(h.id, {
343
+ neuron: doc.neuron, name: doc.name, domain: doc.domain, text: doc.text,
344
+ kind: doc.kind, added: doc.added, heat: doc.heat || 0, score: 0, matched: 0,
345
+ });
346
+ }
347
+ const lex = [...perChunk.entries()]
348
+ .filter(([, c]) => c.matched > 0)
349
+ .sort((a, b) => b[1].score - a[1].score);
350
+ const lexRank = new Map(lex.map(([id], i) => [id, i + 1]));
351
+ const semRank = new Map(sem.map((h, i) => [h.id, i + 1]));
352
+ const semScore = new Map(sem.map(h => [h.id, h.score]));
353
+ const top = 2 / (RRF_K + 1);
354
+ for (const [id, chunk] of perChunk) {
355
+ const l = lexRank.get(id);
356
+ const s = semRank.get(id);
357
+ chunk.score = ((l ? 1 / (RRF_K + l) : 0) + (s ? 1 / (RRF_K + s) : 0)) / top;
358
+ if (s !== undefined)
359
+ chunk.semantic = semScore.get(id);
360
+ }
361
+ }
362
+ /** Embed the chunks inserted since the last pass. Never throws. */
363
+ async flushEmbeddings() {
364
+ if (!this.semantic || this.pendingEmbed.size === 0)
365
+ return;
366
+ const batch = [...this.pendingEmbed].map(([id, text]) => ({ id, text }));
367
+ this.pendingEmbed.clear();
368
+ if (!this.semantic.ready())
369
+ return;
370
+ try {
371
+ await this.semantic.upsert(batch);
372
+ }
373
+ catch {
374
+ // Model missing or failing: recall stays lexical, indexing is unharmed.
375
+ }
240
376
  }
241
377
  /**
242
378
  * Turn per-neuron chunk lists into results, validating each chunk against
@@ -251,7 +387,7 @@ class SearchEngine {
251
387
  * fall back to its next valid chunk instead. Stale neurons are quietly
252
388
  * re-indexed; chunks of deleted neurons are removed on the spot.
253
389
  */
254
- async materializeResults(porNeurona, limit) {
390
+ async materializeResults(porNeurona, limit, queryTermCount) {
255
391
  // Only the plausible head pays the neuron reads: nothing below it could
256
392
  // reach the answer even if everything above dropped out.
257
393
  porNeurona.sort((a, b) => b[0].score - a[0].score);
@@ -273,36 +409,65 @@ class SearchEngine {
273
409
  this.markDirty();
274
410
  continue;
275
411
  }
276
- let elegido = null;
412
+ const vivos = [];
277
413
  let huboRancio = false;
278
414
  for (const chunk of chunks) {
279
- if (!legible || neuron === null || this.chunkVive(chunk, neuron)) {
280
- elegido = chunk;
281
- break;
282
- }
283
- huboRancio = true;
415
+ if (!legible || neuron === null || this.chunkVive(chunk, neuron))
416
+ vivos.push(chunk);
417
+ else
418
+ huboRancio = true;
284
419
  }
285
420
  if (huboRancio && neuron) {
286
421
  // Heal in the background, never block recall.
287
422
  void this.indexNeuron(neuron).catch(() => { });
288
423
  }
289
- if (!elegido)
424
+ if (vivos.length === 0)
290
425
  continue;
426
+ // The header chunk (name + tags) is identity, not knowledge: it may rank
427
+ // the neuron, but it never speaks for it while a live content chunk
428
+ // matched too. Measured on the blind benchmark, letting it win cost 3 of
429
+ // the 13 misses — this rule alone moves recall@1 from 56% to 60%.
430
+ const contenido = vivos.filter(c => c.kind !== 'header');
431
+ const elegido = contenido[0] || vivos[0];
291
432
  const breadth = Math.min((chunks.length - 1) * BREADTH_BONUS, BREADTH_CAP);
433
+ // A keyword engine answers almost any question with something. The
434
+ // label says how much of the question the answer actually covers, so
435
+ // the reader can tell a hit from a coincidence.
436
+ const lexicalStrong = queryTermCount <= 1
437
+ ? elegido.matched >= 1
438
+ : elegido.matched >= 2 && elegido.matched / queryTermCount >= 0.5;
439
+ const strong = lexicalStrong || (elegido.semantic ?? 0) >= SEMANTIC_STRONG;
292
440
  resultados.push({
293
- neuron_id: elegido.neuron,
294
- name: elegido.name,
295
- domain: elegido.domain,
296
- relevance_score: Math.round((elegido.score + breadth) * 1000) / 1000,
297
- matching_content: elegido.text,
298
- matched_kind: elegido.kind,
299
- matched_added: elegido.added || '',
300
- heat: elegido.heat,
301
- ...(neuron?.map?.text ? { has_map: true } : {}),
441
+ r: {
442
+ neuron_id: elegido.neuron,
443
+ name: elegido.name,
444
+ domain: elegido.domain,
445
+ relevance_score: Math.round((vivos[0].score + breadth) * 1000) / 1000,
446
+ matching_content: elegido.text,
447
+ matched_kind: elegido.kind,
448
+ matched_added: elegido.added || '',
449
+ heat: elegido.heat,
450
+ matched_terms: elegido.matched,
451
+ query_terms: queryTermCount,
452
+ confidence: strong ? 'strong' : 'weak',
453
+ ...(elegido.semantic !== undefined ? { semantic_score: elegido.semantic } : {}),
454
+ ...(neuron?.map?.text ? { has_map: true } : {}),
455
+ },
456
+ extra: contenido.filter(c => c !== elegido).slice(0, 2),
302
457
  });
303
458
  }
304
- resultados.sort((a, b) => b.relevance_score - a.relevance_score);
305
- return resultados.slice(0, limit);
459
+ resultados.sort((a, b) => b.r.relevance_score - a.r.relevance_score);
460
+ const top = resultados.slice(0, limit);
461
+ // The neuron's next best lines, for the head of the list only: the line
462
+ // you need is not always the one that scored highest. Measured, it lifts
463
+ // fact-level recall@3 from 73% to 79%, and it costs tokens only where
464
+ // they can still change the answer.
465
+ for (const { r, extra } of top.slice(0, ALSO_MATCHED_RESULTS)) {
466
+ if (extra.length > 0) {
467
+ r.also_matched = extra.map(c => ({ text: c.text, kind: c.kind, added: c.added || '' }));
468
+ }
469
+ }
470
+ return top.map(x => x.r);
306
471
  }
307
472
  /** Does the chunk still describe something the neuron holds as current? */
308
473
  chunkVive(chunk, neuron) {
@@ -426,6 +591,9 @@ class SearchEngine {
426
591
  added: decision.date || '',
427
592
  });
428
593
  }
594
+ // Dated through the entry_dates sidecar (1.13). Entries recorded before
595
+ // it simply carry no date, as before.
596
+ const fecha = (t) => neuron.entry_dates?.[(0, ops_js_1.entryId)(t)] || '';
429
597
  for (const pattern of neuron.patterns || []) {
430
598
  if (!pattern)
431
599
  continue;
@@ -434,7 +602,7 @@ class SearchEngine {
434
602
  id: (0, hash_js_1.chunkId)(neuron.id, pattern),
435
603
  text: pattern,
436
604
  kind: 'pattern',
437
- added: '',
605
+ added: fecha(pattern),
438
606
  });
439
607
  }
440
608
  for (const pref of neuron.preferences || []) {
@@ -445,7 +613,7 @@ class SearchEngine {
445
613
  id: (0, hash_js_1.chunkId)(neuron.id, pref),
446
614
  text: pref,
447
615
  kind: 'preference',
448
- added: '',
616
+ added: fecha(pref),
449
617
  });
450
618
  }
451
619
  for (const err of neuron.errors || []) {
@@ -456,7 +624,7 @@ class SearchEngine {
456
624
  id: (0, hash_js_1.chunkId)(neuron.id, `error:${err}`),
457
625
  text: err,
458
626
  kind: 'error',
459
- added: '',
627
+ added: fecha(err),
460
628
  });
461
629
  }
462
630
  for (const debt of neuron.debts || []) {
@@ -467,7 +635,7 @@ class SearchEngine {
467
635
  id: (0, hash_js_1.chunkId)(neuron.id, `debt:${debt}`),
468
636
  text: debt,
469
637
  kind: 'debt',
470
- added: '',
638
+ added: fecha(debt),
471
639
  });
472
640
  }
473
641
  if (neuron.map && neuron.map.text) {
@@ -499,6 +667,11 @@ class SearchEngine {
499
667
  this.chunksByNeuron.set(neuron, ids);
500
668
  }
501
669
  ids.add(String(doc.id));
670
+ // Headers are name + tags: lexical only, they would only add noise to
671
+ // the vector index.
672
+ if (this.semantic && doc.kind !== 'header') {
673
+ this.pendingEmbed.set(String(doc.id), String(doc.text || ''));
674
+ }
502
675
  }
503
676
  /**
504
677
  * Drop every chunk belonging to a neuron.
@@ -526,6 +699,8 @@ class SearchEngine {
526
699
  // Already gone.
527
700
  }
528
701
  }
702
+ if (this.semantic)
703
+ this.semantic.remove(ids);
529
704
  this.chunksByNeuron.delete(neuronId);
530
705
  }
531
706
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/search/index.ts"],"names":[],"mappings":";AAAA,oEAAoE;AACpE,uEAAuE;AACvE,EAAE;AACF,mCAAmC;AACnC,2EAA2E;AAC3E,sEAAsE;AACtE,uEAAuE;AACvE,0EAA0E;AAC1E,4EAA4E;AAC5E,6EAA6E;AAC7E,EAAE;AACF,6EAA6E;AAC7E,6EAA6E;AAC7E,6EAA6E;AAC7E,sEAAsE;;;AAEtE,wCAA0E;AAE1E,0CAAoH;AACpH,8CAA2C;AAC3C,+CAAqD;AAIrD;;;;;;GAMG;AACU,QAAA,aAAa,GAAG,CAAC,CAAC;AAE/B,yEAAyE;AACzE,MAAM,aAAa,GAAG,IAAI,CAAC;AAC3B,iFAAiF;AACjF,MAAM,WAAW,GAAG,IAAI,CAAC;AACzB,8EAA8E;AAC9E,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAC9B,+DAA+D;AAC/D,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAEjC,MAAM,MAAM,GAAG;IACb,EAAE,EAAE,QAAiB,EAAQ,iDAAiD;IAC9E,MAAM,EAAE,QAAiB;IACzB,IAAI,EAAE,QAAiB;IACvB,IAAI,EAAE,QAAiB;IACvB,IAAI,EAAE,QAAiB,EAAM,kDAAkD;IAC/E,MAAM,EAAE,QAAiB;IACzB,IAAI,EAAE,QAAiB;IACvB,KAAK,EAAE,QAAiB;IACxB,IAAI,EAAE,QAAiB;CACxB,CAAC;AAmBF,MAAa,YAAY;IAgBH;IAfZ,EAAE,GAAoB,IAAI,CAAC;IAC3B,QAAQ,GAAG,CAAC,CAAC;IACb,KAAK,GAAG,KAAK,CAAC;IACd,YAAY,GAA0B,IAAI,CAAC;IAEnD;;;;;;;OAOG;IACK,cAAc,GAAG,IAAI,GAAG,EAAuB,CAAC;IAExD,YAAoB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;IAAG,CAAC;IAEpC,kEAAkE;IAElE;;;;;;;;OAQG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAEjD,IAAI,MAAM,IAAA,kBAAU,EAAC,SAAS,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAA,gBAAQ,EAAc,SAAS,CAAC,CAAC;gBACtD,IAAI,MAAM,IAAI,MAAM,CAAC,CAAC,KAAK,qBAAa,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;oBACnF,IAAI,CAAC,EAAE,GAAG,IAAA,cAAM,EAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;oBACrC,IAAA,YAAI,EAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC5C,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC;wBAAE,OAAO;oBAC9C,+DAA+D;oBAC/D,gEAAgE;gBAClE,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,uCAAuC;YACzC,CAAC;QACH,CAAC;QAED,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAED;;;;;;;;;;OAUG;IACK,KAAK,CAAC,OAAO;QACnB,MAAM,OAAO,GAAG,MAAM,IAAA,iBAAS,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QAChE,IAAI,OAAO,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC/B,MAAM,QAAQ,GAAG,MAAM,IAAA,mBAAW,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5D,0EAA0E;QAC1E,OAAO,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,EAAE,GAAG,IAAA,cAAM,EAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAE5B,MAAM,GAAG,GAAG,MAAM,IAAA,qBAAa,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEzD,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAA,gBAAQ,EAAS,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnE,IAAI,CAAC,MAAM;oBAAE,SAAS;gBACtB,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACxC,CAAC;YAAC,MAAM,CAAC;gBACP,sCAAsC;YACxC,CAAC;QACH,CAAC;QAED,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,MAAc;QAC9B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QAErB,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACzC,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QACrB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,MAAM,OAAO,GAAgB,EAAE,CAAC,EAAE,qBAAa,EAAE,IAAI,EAAE,IAAA,YAAI,EAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACvE,yEAAyE;QACzE,iEAAiE;QACjE,MAAM,IAAA,iBAAS,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5E,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,0EAA0E;IAC1E,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACvC,CAAC;IAED,kEAAkE;IAElE;;;;;;;;OAQG;IACH,KAAK,CAAC,MAAM,CACV,KAAa,EACb,OAA6C;QAE7C,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,EAAE,CAAC;QAExB,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,IAAA,wBAAU,EAAC,KAAK,CAAC,CAAC;QAChC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAElC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;QAE7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAC1D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAEhC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YAEhC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,MAAM,GAAG,GAAG,GAAG,CAAC,QAAe,CAAC;gBAChC,MAAM,GAAG,GAAG,GAAG,CAAC,EAAY,CAAC;gBAC7B,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEnD,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACnC,IAAI,QAAQ,EAAE,CAAC;oBACb,QAAQ,CAAC,KAAK,IAAI,UAAU,CAAC;oBAC7B,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;gBACxB,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE;wBAChB,MAAM,EAAE,GAAG,CAAC,MAAM;wBAClB,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,MAAM,EAAE,GAAG,CAAC,MAAM;wBAClB,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,KAAK,EAAE,GAAG,CAAC,KAAK;wBAChB,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC;wBACnB,KAAK,EAAE,UAAU;wBACjB,OAAO,EAAE,CAAC;qBACX,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEnC,+DAA+D;QAC/D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAsB,CAAC;QAE/C,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC;YAC9C,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;YAClE,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACxC,IAAI,IAAI;gBAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;gBACtB,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,MAAM,EAAE;YAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAE7E,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,KAAK,CAAC,kBAAkB,CAC9B,UAAwB,EACxB,KAAa;QAEb,wEAAwE;QACxE,yDAAyD;QACzD,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QAEvE,MAAM,UAAU,GAAmB,EAAE,CAAC;QAEtC,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAClC,IAAI,MAAM,GAAkB,IAAI,CAAC;YACjC,IAAI,OAAO,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,IAAA,gBAAQ,EAAS,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YACrE,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,GAAG,KAAK,CAAC,CAAG,+CAA+C;YACpE,CAAC;YAED,IAAI,OAAO,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBAC/B,gEAAgE;gBAChE,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;gBACxC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,SAAS;YACX,CAAC;YAED,IAAI,OAAO,GAAoB,IAAI,CAAC;YACpC,IAAI,UAAU,GAAG,KAAK,CAAC;YACvB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC,OAAO,IAAI,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;oBACjE,OAAO,GAAG,KAAK,CAAC;oBAChB,MAAM;gBACR,CAAC;gBACD,UAAU,GAAG,IAAI,CAAC;YACpB,CAAC;YAED,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;gBACzB,8CAA8C;gBAC9C,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAqB,CAAC,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,CAAC,OAAO;gBAAE,SAAS;YAEvB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,aAAa,EAAE,WAAW,CAAC,CAAC;YAC3E,UAAU,CAAC,IAAI,CAAC;gBACd,SAAS,EAAE,OAAO,CAAC,MAAM;gBACzB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI;gBACpE,gBAAgB,EAAE,OAAO,CAAC,IAAI;gBAC9B,YAAY,EAAE,OAAO,CAAC,IAAI;gBAC1B,aAAa,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;gBAClC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChD,CAAC,CAAC;QACL,CAAC;QAED,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC;QACjE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,2EAA2E;IACnE,SAAS,CAAC,KAAe,EAAE,MAAc;QAC/C,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,MAAM;gBACT,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC;YAChF,KAAK,OAAO;gBACV,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpD,KAAK,MAAM;gBACT,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACnD,KAAK,KAAK;gBACR,OAAO,MAAM,CAAC,GAAG,EAAE,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC;YACzC,KAAK,SAAS;gBACZ,OAAO,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtD,KAAK,YAAY;gBACf,OAAO,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzD,KAAK,UAAU;gBACb,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBACvC,MAAM,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBAClE,OAAO,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC;gBAC9B,CAAC,CAAC,CAAC;YACL;gBACE,6DAA6D;gBAC7D,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;IAED,kEAAkE;IAElE;;;;;OAKG;IACK,KAAK,CAAC,UAAU,CAAC,IAAY,EAAE,MAAe;QACpD,MAAM,GAAG,GAAG,KAAK,EAAE,SAAiB,EAAE,OAAe,IAAI,EAAE,EAAE;YAC3D,MAAM,MAAM,GAAQ;gBAClB,IAAI,EAAE,IAAI;gBACV,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;gBACpC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;gBACpC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;gBAClC,SAAS;aACV,CAAC;YACF,MAAM,GAAG,GAAG,MAAM,IAAA,cAAM,EAAC,IAAI,CAAC,EAAc,EAAE,MAAM,CAAC,CAAC;YACtD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAa,CAAC;YAC/B,kEAAkE;YAClE,oEAAoE;YACpE,2DAA2D;YAC3D,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC,CAAC,QAAgB,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACjF,CAAC,CAAC;QAEF,IAAI,IAAI,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAExB,qEAAqE;QACrE,sEAAsE;QACtE,uEAAuE;QACvE,MAAM,KAAK,GAAG,IAAA,sBAAQ,EAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QACrD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAe,CAAC;YACrC,KAAK,MAAM,CAAC,IAAI,IAAI;gBAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAClD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,KAAK,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;oBAChC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBACxC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;wBAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC;YACD,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC1C,IAAI,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gDAAgD;IACxC,KAAK,CAAC,kBAAkB,CAAC,MAAc;QAC7C,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QAErB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,GAAG;YACX,MAAM,EAAE,MAAM,CAAC,EAAE;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE;YAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,SAAS;YAClC,IAAI;YACJ,IAAI,EAAE,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACxD,CAAC;QAEF,wEAAwE;QACxE,6DAA6D;QAC7D,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;aACnD,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,KAAK,CAAC,CAAC;QACf,MAAM,IAAI,CAAC,GAAG,CAAC;YACb,GAAG,IAAI;YACP,EAAE,EAAE,IAAA,iBAAO,EAAC,MAAM,CAAC,EAAE,EAAE,UAAU,UAAU,EAAE,CAAC;YAC9C,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;SAC5B,CAAC,CAAC;QAEH,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI;gBAAE,SAAS;YAClC,IAAI,SAAS,CAAC,IAAI,CAAC;gBAAE,SAAS;YAC9B,MAAM,IAAI,CAAC,GAAG,CAAC;gBACb,GAAG,IAAI;gBACP,EAAE,EAAE,IAAA,iBAAO,EAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC;gBACjC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;aACxB,CAAC,CAAC;QACL,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;YAC9C,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI;gBAAE,SAAS;YAC1C,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS;gBAC7B,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,MAAM,QAAQ,CAAC,SAAS,EAAE;gBAC5C,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YAClB,MAAM,IAAI,CAAC,GAAG,CAAC;gBACb,GAAG,IAAI;gBACP,EAAE,EAAE,IAAA,iBAAO,EAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC;gBAC5B,IAAI;gBACJ,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,QAAQ,CAAC,IAAI,IAAI,EAAE;aAC3B,CAAC,CAAC;QACL,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YAC5C,IAAI,CAAC,OAAO;gBAAE,SAAS;YACvB,MAAM,IAAI,CAAC,GAAG,CAAC;gBACb,GAAG,IAAI;gBACP,EAAE,EAAE,IAAA,iBAAO,EAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC;gBAC/B,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,EAAE;aACV,CAAC,CAAC;QACL,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;YAC5C,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,MAAM,IAAI,CAAC,GAAG,CAAC;gBACb,GAAG,IAAI;gBACP,EAAE,EAAE,IAAA,iBAAO,EAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC;gBAC5B,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,EAAE;aACV,CAAC,CAAC;QACL,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,MAAM,IAAI,CAAC,GAAG,CAAC;gBACb,GAAG,IAAI;gBACP,EAAE,EAAE,IAAA,iBAAO,EAAC,MAAM,CAAC,EAAE,EAAE,SAAS,GAAG,EAAE,CAAC;gBACtC,IAAI,EAAE,GAAG;gBACT,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE;aACV,CAAC,CAAC;QACL,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,MAAM,IAAI,CAAC,GAAG,CAAC;gBACb,GAAG,IAAI;gBACP,EAAE,EAAE,IAAA,iBAAO,EAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,IAAI,EAAE,CAAC;gBACtC,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,EAAE;aACV,CAAC,CAAC;QACL,CAAC;QAED,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,IAAI,CAAC,GAAG,CAAC;gBACb,GAAG,IAAI;gBACP,EAAE,EAAE,IAAA,iBAAO,EAAC,MAAM,CAAC,EAAE,EAAE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBAChD,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI;gBACrB,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE;aAChC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,GAAG,CAAC,GAA4B;QAC5C,IAAI,CAAC;YACH,MAAM,IAAA,cAAM,EAAC,IAAI,CAAC,EAAc,EAAE,GAAU,CAAC,CAAC;YAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,CAAC;QAAC,MAAM,CAAC;YACP,sEAAsE;QACxE,CAAC;QACD,uEAAuE;QACvE,mEAAmE;QACnE,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,IAAI,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;YACxB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACvC,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,kBAAkB,CAAC,QAAgB;QAC/C,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,kEAAkE;gBAClE,8DAA8D;gBAC9D,MAAM,KAAK,GAAG,MAAM,IAAA,cAAM,EAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACxC,IAAI,KAAK;oBAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;YAC5D,CAAC;YAAC,MAAM,CAAC;gBACP,gBAAgB;YAClB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACK,eAAe,CAAC,IAAa;QACnC,IAAI,CAAC;YACH,MAAM,IAAI,GAAI,IAAY,EAAE,IAAI,EAAE,IAAI,CAAC;YACvC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC;YACpD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YAC5B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAU,EAAE,CAAC;gBAC/C,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM;oBAAE,SAAS;gBAC7C,IAAI,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC9C,IAAI,CAAC,GAAG,EAAE,CAAC;oBACT,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;oBACxB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAC3C,CAAC;gBACD,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1B,CAAC;YACD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC;QAC7D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEO,SAAS;QACf,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,IAAI,CAAC,YAAY;YAAE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACvD,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;YAClC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAmC,CAAC,CAAC,CAAC;QACvE,CAAC,EAAE,mBAAmB,CAAC,CAAC;QACxB,uDAAuD;QACvD,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,KAAK,UAAU;YAAE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IAC/E,CAAC;IAEO,SAAS,CAAC,IAAa;QAC7B,IAAI,CAAC;YACH,MAAM,KAAK,GAAI,IAAY,EAAE,uBAAuB,EAAE,cAAc,CAAC;YACrE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC,MAAM,CAAC;YAC9C,MAAM,IAAI,GAAI,IAAY,EAAE,IAAI,EAAE,IAAI,CAAC;YACvC,IAAI,IAAI;gBAAE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QAC5C,CAAC;QAAC,MAAM,CAAC;YACP,gEAAgE;QAClE,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,eAAe;QAC3B,IAAI,CAAC;YACH,MAAM,IAAA,kBAAU,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC;YACP,eAAe;QACjB,CAAC;IACH,CAAC;CACF;AAljBD,oCAkjBC;AAED,+EAA+E;AAC/E,SAAS,SAAS,CAAC,IAAU;IAC3B,OAAO,IAAI,CAAC,MAAM,KAAK,YAAY,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC;AACrE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/search/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ export declare const SEMANTIC_MODEL = "Xenova/multilingual-e5-small";
2
+ export declare const SEMANTIC_DTYPE = "q8";
3
+ export declare const SEMANTIC_DIM = 384;
4
+ export declare function semanticEnabled(): boolean;
5
+ /** Where the runtime and the model cache live. Machine-level, not brain-level. */
6
+ export declare function semanticHome(): string;
7
+ /** Resolve the transformers.js entry point inside the semantic home, or null. */
8
+ export declare function resolveRuntime(): string | null;
9
+ export declare function semanticStatus(): {
10
+ installed: boolean;
11
+ enabled: boolean;
12
+ home: string;
13
+ model: string;
14
+ };
15
+ export interface SemanticHit {
16
+ id: string;
17
+ /** Cosine similarity, both vectors normalised. */
18
+ score: number;
19
+ }
20
+ export declare class SemanticIndex {
21
+ private dir;
22
+ private ids;
23
+ private pos;
24
+ private vectors;
25
+ private extractor;
26
+ private loading;
27
+ private dirty;
28
+ /** Set once the runtime or the model failed to load: never retried in-process. */
29
+ private broken;
30
+ constructor(dir: string);
31
+ private metaPath;
32
+ private dataPath;
33
+ count(): number;
34
+ has(id: string): boolean;
35
+ ready(): boolean;
36
+ whyNot(): string | null;
37
+ /**
38
+ * Start loading the model in the background. A cold load takes ~13 s on a
39
+ * laptop; paying it at the first recall of the session is the worst place.
40
+ * Boot is not delayed — the first query simply awaits whatever is left.
41
+ */
42
+ warm(): void;
43
+ /** Load the stored vectors, if any. Never throws. */
44
+ load(): Promise<void>;
45
+ persist(): Promise<void>;
46
+ /** Load transformers.js from the semantic home and build the extractor. */
47
+ private model;
48
+ private embed;
49
+ /**
50
+ * Embed the entries whose id is not stored yet. Ids are content hashes, so
51
+ * an unchanged line is never embedded twice.
52
+ */
53
+ upsert(entries: Array<{
54
+ id: string;
55
+ text: string;
56
+ }>): Promise<number>;
57
+ /** Drop vectors for ids that left the index. */
58
+ remove(ids: Iterable<string>): number;
59
+ /** The k nearest chunks to the question, by cosine. */
60
+ query(text: string, k: number): Promise<SemanticHit[]>;
61
+ }
62
+ //# sourceMappingURL=semantic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic.d.ts","sourceRoot":"","sources":["../../src/search/semantic.ts"],"names":[],"mappings":"AAoCA,eAAO,MAAM,cAAc,iCAAiC,CAAC;AAC7D,eAAO,MAAM,cAAc,OAAO,CAAC;AACnC,eAAO,MAAM,YAAY,MAAM,CAAC;AAQhC,wBAAgB,eAAe,IAAI,OAAO,CAGzC;AAED,kFAAkF;AAClF,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,iFAAiF;AACjF,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAO9C;AAED,wBAAgB,cAAc,IAAI;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAOtG;AASD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,aAAa;IAUZ,OAAO,CAAC,GAAG;IATvB,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,GAAG,CAA6B;IACxC,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,KAAK,CAAS;IACtB,kFAAkF;IAClF,OAAO,CAAC,MAAM,CAAuB;gBAEjB,GAAG,EAAE,MAAM;IAE/B,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,QAAQ;IAEhB,KAAK,IAAI,MAAM;IACf,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IACxB,KAAK,IAAI,OAAO;IAChB,MAAM,IAAI,MAAM,GAAG,IAAI;IAEvB;;;;OAIG;IACH,IAAI,IAAI,IAAI;IAKZ,qDAAqD;IAC/C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAerB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAa9B,2EAA2E;YAC7D,KAAK;YA0BL,KAAK;IAgBnB;;;OAGG;IACG,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAqB3E,gDAAgD;IAChD,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM;IAoBrC,uDAAuD;IACjD,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;CAa7D"}