@jigyasudham/veto 3.0.0 → 3.1.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 +42 -4
  2. package/dist/cli.js +31 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/memory/sync.js +2 -2
  5. package/dist/memory/sync.js.map +1 -1
  6. package/dist/transcripts/cache.d.ts +66 -0
  7. package/dist/transcripts/cache.d.ts.map +1 -0
  8. package/dist/transcripts/cache.js +0 -0
  9. package/dist/transcripts/cache.js.map +1 -0
  10. package/dist/transcripts/chunk.d.ts +26 -0
  11. package/dist/transcripts/chunk.d.ts.map +1 -0
  12. package/dist/transcripts/chunk.js +54 -0
  13. package/dist/transcripts/chunk.js.map +1 -0
  14. package/dist/transcripts/embed.d.ts +58 -0
  15. package/dist/transcripts/embed.d.ts.map +1 -0
  16. package/dist/transcripts/embed.js +303 -0
  17. package/dist/transcripts/embed.js.map +1 -0
  18. package/dist/transcripts/ingest.d.ts.map +1 -1
  19. package/dist/transcripts/ingest.js +9 -2
  20. package/dist/transcripts/ingest.js.map +1 -1
  21. package/dist/transcripts/manage.d.ts.map +1 -1
  22. package/dist/transcripts/manage.js +6 -0
  23. package/dist/transcripts/manage.js.map +1 -1
  24. package/dist/transcripts/recall.d.ts +7 -0
  25. package/dist/transcripts/recall.d.ts.map +1 -1
  26. package/dist/transcripts/recall.js +25 -3
  27. package/dist/transcripts/recall.js.map +1 -1
  28. package/dist/transcripts/schema.d.ts +11 -1
  29. package/dist/transcripts/schema.d.ts.map +1 -1
  30. package/dist/transcripts/schema.js +33 -1
  31. package/dist/transcripts/schema.js.map +1 -1
  32. package/dist/transcripts/search.d.ts +35 -0
  33. package/dist/transcripts/search.d.ts.map +1 -1
  34. package/dist/transcripts/search.js +232 -34
  35. package/dist/transcripts/search.js.map +1 -1
  36. package/dist/transcripts/vectors.d.ts +40 -0
  37. package/dist/transcripts/vectors.d.ts.map +1 -0
  38. package/dist/transcripts/vectors.js +203 -0
  39. package/dist/transcripts/vectors.js.map +1 -0
  40. package/package.json +2 -1
  41. package/server.json +2 -2
@@ -0,0 +1,66 @@
1
+ export type DocCache = {
2
+ /** Highest doc id; arrays below are indexed by doc id, so length is maxId+1. */
3
+ maxId: number;
4
+ /** Token count per doc, for BM25 length normalization. */
5
+ len: Int32Array;
6
+ project: (string | null)[];
7
+ session: string[];
8
+ /** Doc count and average length, for BM25's corpus statistics. */
9
+ count: number;
10
+ avgdl: number;
11
+ };
12
+ /**
13
+ * How many leading dimensions the cheap first pass scores.
14
+ *
15
+ * potion applies PCA, so dimensions arrive ordered by variance and a prefix is
16
+ * unusually informative. Scoring a prefix costs a quarter of a full dot
17
+ * product and, combined with the tail norm, yields an exact upper bound via
18
+ * Cauchy-Schwarz: |tail contribution| <= ||q_tail|| * ||d_tail||. Chunks whose
19
+ * BEST possible score cannot reach the current cutoff are skipped without ever
20
+ * being fully scored — exact, never a recall loss, unlike an ANN index.
21
+ */
22
+ export declare const PREFIX_DIMS = 64;
23
+ export type VectorCache = {
24
+ dim: number;
25
+ count: number;
26
+ /** count * dim, row-major — one contiguous allocation, not one per chunk. */
27
+ data: Int8Array;
28
+ /** L2 norm of each int8 row. */
29
+ norms: Float32Array;
30
+ /** L2 norm of dims [PREFIX_DIMS, dim) per row — the tail a prefix scan has
31
+ * not yet seen. Enables an exact Cauchy-Schwarz bound (see PREFIX_DIMS). */
32
+ tailNorms: Float32Array;
33
+ docIds: Int32Array;
34
+ chunkIdx: Int32Array;
35
+ };
36
+ /** Drop both caches. MUST be called after anything that mutates the index. */
37
+ export declare function resetCaches(): void;
38
+ export declare function getDocCache(): DocCache;
39
+ export declare function getVectorCache(): VectorCache;
40
+ /**
41
+ * A lookup table of in-scope doc ids, built from the cached metadata rather
42
+ * than a per-query SQL round trip. Returns null when no filter applies.
43
+ *
44
+ * Memoized per scope: building it walks every doc id doing string comparisons,
45
+ * which at 41k docs is a real per-query cost, and consecutive queries almost
46
+ * always share a scope. Cleared with the caches it is derived from.
47
+ */
48
+ export declare function scopeMask(docs: DocCache, opts: {
49
+ projectDir?: string;
50
+ sourceSessionId?: string;
51
+ }): Uint8Array | null;
52
+ /**
53
+ * Reusable per-document accumulators for the vector scan.
54
+ *
55
+ * Allocating these per query costs hundreds of kilobytes of zero-fill on every
56
+ * search. They are handed back dirty by contract — the caller resets only the
57
+ * entries it touched, which is proportional to matches rather than to the id
58
+ * space.
59
+ */
60
+ export declare function scoreScratch(maxId: number): {
61
+ score: Float32Array;
62
+ chunk: Int32Array;
63
+ };
64
+ /** Sentinel for "this document has not been scored in this query". */
65
+ export declare const EMPTY_SCORE = -2;
66
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/transcripts/cache.ts"],"names":[],"mappings":"AAmBA,MAAM,MAAM,QAAQ,GAAG;IACrB,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,GAAG,EAAE,UAAU,CAAC;IAChB,OAAO,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,KAAK,CAAC;AAE9B,MAAM,MAAM,WAAW,GAAG;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,IAAI,EAAE,SAAS,CAAC;IAChB,gCAAgC;IAChC,KAAK,EAAE,YAAY,CAAC;IACpB;iFAC6E;IAC7E,SAAS,EAAE,YAAY,CAAC;IACxB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,UAAU,CAAC;CACtB,CAAC;AAKF,8EAA8E;AAC9E,wBAAgB,WAAW,IAAI,IAAI,CAMlC;AAED,wBAAgB,WAAW,IAAI,QAAQ,CA8BtC;AAED,wBAAgB,cAAc,IAAI,WAAW,CAkC5C;AAID;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GACtD,UAAU,GAAG,IAAI,CAcnB;AAKD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,CAMtF;AAED,sEAAsE;AACtE,eAAO,MAAM,WAAW,KAAK,CAAC"}
Binary file
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/transcripts/cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /** Bump on ANY boundary change — forces stored vectors to be re-derived. */
2
+ export declare const CHUNKER_VERSION = 1;
3
+ /** Validated by the paraphrase-gate prototype. Not a tuning knob: changing
4
+ * these invalidates the experiment that justified the semantic layer. */
5
+ export declare const WINDOW_CHARS = 240;
6
+ export declare const STRIDE_CHARS = 120;
7
+ /** Input-size guard, not a tuning knob (C2). A pathological event must not be
8
+ * able to emit unbounded rows; the tail is dropped and stays lexically
9
+ * searchable via BM25, which indexes the whole text regardless. */
10
+ export declare const MAX_WINDOWS_PER_EVENT = 64;
11
+ export type Chunk = {
12
+ index: number;
13
+ /** UTF-16 offsets into the source text, so a hit can aim a snippet (C6). */
14
+ start: number;
15
+ end: number;
16
+ text: string;
17
+ };
18
+ /**
19
+ * Split `text` into overlapping windows.
20
+ *
21
+ * Events at or under the window emit exactly one chunk covering the whole
22
+ * text — the median event is ~205 chars, so most events produce a single row
23
+ * and the vector count stays proportional to content, not to event count.
24
+ */
25
+ export declare function chunkText(text: string): Chunk[];
26
+ //# sourceMappingURL=chunk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk.d.ts","sourceRoot":"","sources":["../../src/transcripts/chunk.ts"],"names":[],"mappings":"AAYA,4EAA4E;AAC5E,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC;0EAC0E;AAC1E,eAAO,MAAM,YAAY,MAAM,CAAC;AAChC,eAAO,MAAM,YAAY,MAAM,CAAC;AAEhC;;oEAEoE;AACpE,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,MAAM,MAAM,KAAK,GAAG;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAWF;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,EAAE,CAc/C"}
@@ -0,0 +1,54 @@
1
+ // Chunking for the semantic layer (VERSION-3 item 6, Phase B).
2
+ //
3
+ // One vector per event demonstrably FAILS the paraphrase gate: mean-pooling a
4
+ // 1,936-char event dilutes the one sentence that answers the question down to
5
+ // ~5% of the vector, and it never surfaces. Splitting events into overlapping
6
+ // windows and scoring each event by its BEST window fixed that — the whole
7
+ // reason this file exists (council outcome 9b0595ad, spec §11 amendment).
8
+ //
9
+ // Boundaries here are a compatibility surface: they are pinned by golden tests
10
+ // (C1), and CHUNKER_VERSION must be bumped if any of it changes, because
11
+ // stored vectors are only meaningful against the chunker that produced them.
12
+ /** Bump on ANY boundary change — forces stored vectors to be re-derived. */
13
+ export const CHUNKER_VERSION = 1;
14
+ /** Validated by the paraphrase-gate prototype. Not a tuning knob: changing
15
+ * these invalidates the experiment that justified the semantic layer. */
16
+ export const WINDOW_CHARS = 240;
17
+ export const STRIDE_CHARS = 120;
18
+ /** Input-size guard, not a tuning knob (C2). A pathological event must not be
19
+ * able to emit unbounded rows; the tail is dropped and stays lexically
20
+ * searchable via BM25, which indexes the whole text regardless. */
21
+ export const MAX_WINDOWS_PER_EVENT = 64;
22
+ /** Never split a surrogate pair: a lone surrogate would corrupt normalization
23
+ * and produce a vector for text that does not exist. Boundaries move forward
24
+ * off a low surrogate, which keeps the result deterministic. */
25
+ function safeBoundary(text, i) {
26
+ if (i <= 0 || i >= text.length)
27
+ return i;
28
+ const c = text.charCodeAt(i);
29
+ return c >= 0xdc00 && c <= 0xdfff ? i + 1 : i;
30
+ }
31
+ /**
32
+ * Split `text` into overlapping windows.
33
+ *
34
+ * Events at or under the window emit exactly one chunk covering the whole
35
+ * text — the median event is ~205 chars, so most events produce a single row
36
+ * and the vector count stays proportional to content, not to event count.
37
+ */
38
+ export function chunkText(text) {
39
+ if (text.length === 0)
40
+ return [];
41
+ if (text.length <= WINDOW_CHARS) {
42
+ return [{ index: 0, start: 0, end: text.length, text }];
43
+ }
44
+ const out = [];
45
+ for (let raw = 0; raw < text.length && out.length < MAX_WINDOWS_PER_EVENT; raw += STRIDE_CHARS) {
46
+ const start = safeBoundary(text, raw);
47
+ const end = safeBoundary(text, Math.min(start + WINDOW_CHARS, text.length));
48
+ out.push({ index: out.length, start, end, text: text.slice(start, end) });
49
+ if (end >= text.length)
50
+ break;
51
+ }
52
+ return out;
53
+ }
54
+ //# sourceMappingURL=chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk.js","sourceRoot":"","sources":["../../src/transcripts/chunk.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,EAAE;AACF,8EAA8E;AAC9E,8EAA8E;AAC9E,8EAA8E;AAC9E,2EAA2E;AAC3E,0EAA0E;AAC1E,EAAE;AACF,+EAA+E;AAC/E,yEAAyE;AACzE,6EAA6E;AAE7E,4EAA4E;AAC5E,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AAEjC;0EAC0E;AAC1E,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC;AAChC,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC;AAEhC;;oEAEoE;AACpE,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAUxC;;iEAEiE;AACjE,SAAS,YAAY,CAAC,IAAY,EAAE,CAAS;IAC3C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,CAAC;IACzC,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC7B,OAAO,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,IAAI,IAAI,CAAC,MAAM,IAAI,YAAY,EAAE,CAAC;QAChC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,GAAG,GAAY,EAAE,CAAC;IACxB,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,qBAAqB,EAAE,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/F,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5E,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1E,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM;YAAE,MAAM;IAChC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,58 @@
1
+ type Header = {
2
+ format: string;
3
+ upstream: {
4
+ model_id: string;
5
+ revision: string;
6
+ };
7
+ vocab_size: number;
8
+ dim: number;
9
+ inference: {
10
+ add_special_tokens: boolean;
11
+ pooling: string;
12
+ normalize: boolean;
13
+ per_token_weights: unknown;
14
+ };
15
+ tokenizer: {
16
+ strip_accents_effective: boolean;
17
+ };
18
+ };
19
+ type Model = {
20
+ header: Header;
21
+ dim: number;
22
+ /** Row-major int8 table, vocab_size * dim. */
23
+ table: Int8Array;
24
+ /** One scale per row: row_f32 = table[row] * scales[row]. */
25
+ scales: Float32Array;
26
+ vocab: Map<string, number>;
27
+ unkId: number | undefined;
28
+ prefix: string;
29
+ maxWordChars: number;
30
+ lowercase: boolean;
31
+ stripAccents: boolean;
32
+ cleanText: boolean;
33
+ handleChineseChars: boolean;
34
+ };
35
+ /** Token ids for `text`, with no special tokens added (the shipped contract). */
36
+ export declare function tokenizeForEmbedding(text: string, model?: Model): number[];
37
+ /**
38
+ * Embed `text` into a unit-length vector.
39
+ *
40
+ * Gather each token's row, dequantize it by that row's scale, mean-pool, then
41
+ * L2-normalize. Text with no tokens (empty or punctuation-free-of-vocab)
42
+ * yields the zero vector rather than NaN — upstream's behaviour, and the
43
+ * reason the epsilon is in the denominator.
44
+ */
45
+ export declare function embed(text: string, model?: Model): Float32Array;
46
+ /** Cosine similarity of two unit vectors — a dot product, given the inputs. */
47
+ export declare function cosine(a: Float32Array, b: Float32Array): number;
48
+ /** True when the model package resolves and its payload passes validation. */
49
+ export declare function embeddingsAvailable(): boolean;
50
+ /** Upstream model id + revision of the loaded payload, for recall provenance. */
51
+ export declare function modelProvenance(): {
52
+ model_id: string;
53
+ revision: string;
54
+ };
55
+ /** Drop the cached table. Tests only — production loads once per process. */
56
+ export declare function resetModelCache(): void;
57
+ export {};
58
+ //# sourceMappingURL=embed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../../src/transcripts/embed.ts"],"names":[],"mappings":"AA6BA,KAAK,MAAM,GAAG;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE;QACT,kBAAkB,EAAE,OAAO,CAAC;QAC5B,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;QACnB,iBAAiB,EAAE,OAAO,CAAC;KAC5B,CAAC;IACF,SAAS,EAAE;QAAE,uBAAuB,EAAE,OAAO,CAAA;KAAE,CAAC;CACjD,CAAC;AAEF,KAAK,KAAK,GAAG;IACX,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,8CAA8C;IAC9C,KAAK,EAAE,SAAS,CAAC;IACjB,6DAA6D;IAC7D,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AA4IF,iFAAiF;AACjF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,QAAS,GAAG,MAAM,EAAE,CAU3E;AA4FD;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,QAAS,GAAG,YAAY,CAqBhE;AAED,+EAA+E;AAC/E,wBAAgB,MAAM,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM,CAI/D;AAED,8EAA8E;AAC9E,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAED,iFAAiF;AACjF,wBAAgB,eAAe,IAAI;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAGxE;AAED,6EAA6E;AAC7E,wBAAgB,eAAe,IAAI,IAAI,CAEtC"}
@@ -0,0 +1,303 @@
1
+ // Pure-JS Model2Vec inference — the semantic half of transcript recall.
2
+ //
3
+ // The model is frozen DATA, not an API: a quantized matrix plus a vocabulary.
4
+ // So this is a reimplementation against a pinned contract, not a translation
5
+ // of upstream code. The contract lives in the model package's `model.json`
6
+ // and every assumption below is asserted at load time, because the failure
7
+ // mode we care about is not a crash — it is plausible-looking wrong vectors.
8
+ //
9
+ // Correctness is pinned by tests/transcripts/embed.test.ts, which replays the
10
+ // golden vectors shipped alongside the weights (fixed text -> expected
11
+ // output, generated by the reference Python implementation in
12
+ // scripts/repack-model.py). If this file drifts, those fail.
13
+ //
14
+ // Zero dependencies, and nothing here runs at import: the model is resolved
15
+ // on first use and never at server boot (condition A2), so a missing or
16
+ // corrupt copy degrades search to BM25 instead of taking Veto down.
17
+ import { readFileSync } from 'node:fs';
18
+ import { createRequire } from 'node:module';
19
+ import { dirname, join } from 'node:path';
20
+ const _require = createRequire(import.meta.url);
21
+ /** Dim of the shipped table. Cross-checked against the header on load. */
22
+ const EXPECTED_FORMAT = 'veto-model/1';
23
+ // model2vec normalizes with this epsilon; matching it keeps golden vectors
24
+ // bit-comparable for zero-norm inputs instead of producing NaN.
25
+ const NORM_EPSILON = 1e-32;
26
+ let _model;
27
+ /** Package root holding the payload. Env override exists for tests and for
28
+ * local work before the model package is published. */
29
+ function modelDir() {
30
+ if (process.env.VETO_MODEL_DIR)
31
+ return join(process.env.VETO_MODEL_DIR, 'model');
32
+ // The package's exports map points at the header; the payload sits beside it.
33
+ return dirname(_require.resolve('@jigyasudham/veto-model/model.json'));
34
+ }
35
+ // ---------------------------------------------------------------------------
36
+ // BertNormalizer
37
+ //
38
+ // Order is upstream's and matters: clean -> CJK spacing -> accents -> case.
39
+ // ---------------------------------------------------------------------------
40
+ // Upstream treats tab/newline/CR as text, not control chars, and strips the
41
+ // rest of the C categories along with NUL and the replacement char.
42
+ const CONTROL = /\p{C}/u;
43
+ const PUNCT = /[!-/:-@[-`{-~]|\p{P}/u;
44
+ function isControl(ch) {
45
+ if (ch === '\t' || ch === '\n' || ch === '\r')
46
+ return false;
47
+ return CONTROL.test(ch);
48
+ }
49
+ function isWhitespace(ch) {
50
+ return ch === ' ' || ch === '\t' || ch === '\n' || ch === '\r' || /\s/u.test(ch);
51
+ }
52
+ // The CJK blocks BERT spaces out so every ideograph becomes its own word.
53
+ // Hiragana/katakana are deliberately absent upstream — they tokenize as runs.
54
+ function isChinese(cp) {
55
+ return ((cp >= 0x4e00 && cp <= 0x9fff) ||
56
+ (cp >= 0x3400 && cp <= 0x4dbf) ||
57
+ (cp >= 0x20000 && cp <= 0x2a6df) ||
58
+ (cp >= 0x2a700 && cp <= 0x2b73f) ||
59
+ (cp >= 0x2b740 && cp <= 0x2b81f) ||
60
+ (cp >= 0x2b820 && cp <= 0x2ceaf) ||
61
+ (cp >= 0xf900 && cp <= 0xfaff) ||
62
+ (cp >= 0x2f800 && cp <= 0x2fa1f));
63
+ }
64
+ function normalize(text, m) {
65
+ let out = text;
66
+ if (m.cleanText) {
67
+ let buf = '';
68
+ for (const ch of out) {
69
+ // NUL and U+FFFD as escapes, matching upstream's filter. Literals
70
+ // here embed raw control bytes and make tools treat this file as binary.
71
+ if (ch === '\u0000' || ch === '\uFFFD' || isControl(ch))
72
+ continue;
73
+ buf += isWhitespace(ch) ? ' ' : ch;
74
+ }
75
+ out = buf;
76
+ }
77
+ if (m.handleChineseChars) {
78
+ let buf = '';
79
+ for (const ch of out) {
80
+ const cp = ch.codePointAt(0);
81
+ buf += isChinese(cp) ? ` ${ch} ` : ch;
82
+ }
83
+ out = buf;
84
+ }
85
+ // `strip_accents: null` in tokenizer.json does NOT mean "off" — upstream
86
+ // resolves it to the value of `lowercase`. Reading the null literally is
87
+ // the silent-divergence bug this whole file is most likely to have; it only
88
+ // shows on accented text, so the golden set carries "café naïve résumé".
89
+ if (m.stripAccents)
90
+ out = out.normalize('NFD').replace(/\p{Mn}/gu, '');
91
+ if (m.lowercase)
92
+ out = out.toLowerCase();
93
+ return out;
94
+ }
95
+ // ---------------------------------------------------------------------------
96
+ // BertPreTokenizer — split on whitespace, then isolate punctuation as its own
97
+ // word. "Isolated" means the punctuation is KEPT as a token, not discarded.
98
+ // ---------------------------------------------------------------------------
99
+ function preTokenize(text) {
100
+ const words = [];
101
+ for (const chunk of text.split(/\s+/u)) {
102
+ if (!chunk)
103
+ continue;
104
+ let cur = '';
105
+ for (const ch of chunk) {
106
+ if (PUNCT.test(ch)) {
107
+ if (cur) {
108
+ words.push(cur);
109
+ cur = '';
110
+ }
111
+ words.push(ch);
112
+ }
113
+ else {
114
+ cur += ch;
115
+ }
116
+ }
117
+ if (cur)
118
+ words.push(cur);
119
+ }
120
+ return words;
121
+ }
122
+ // ---------------------------------------------------------------------------
123
+ // WordPiece — greedy longest-match-first, continuation pieces carry "##".
124
+ // Operates on code points, not UTF-16 units, so astral characters (emoji)
125
+ // are matched and length-capped as single characters like upstream does.
126
+ // ---------------------------------------------------------------------------
127
+ function wordPiece(word, m, out) {
128
+ const chars = Array.from(word);
129
+ if (chars.length > m.maxWordChars) {
130
+ if (m.unkId !== undefined)
131
+ out.push(m.unkId);
132
+ return;
133
+ }
134
+ const pieces = [];
135
+ let start = 0;
136
+ while (start < chars.length) {
137
+ let end = chars.length;
138
+ let id;
139
+ while (start < end) {
140
+ const sub = (start > 0 ? m.prefix : '') + chars.slice(start, end).join('');
141
+ id = m.vocab.get(sub);
142
+ if (id !== undefined)
143
+ break;
144
+ end -= 1;
145
+ }
146
+ // No prefix of the remainder is in the vocabulary: upstream discards every
147
+ // piece found so far and emits a single UNK for the whole word.
148
+ if (id === undefined) {
149
+ if (m.unkId !== undefined)
150
+ out.push(m.unkId);
151
+ return;
152
+ }
153
+ pieces.push(id);
154
+ start = end;
155
+ }
156
+ for (const p of pieces)
157
+ out.push(p);
158
+ }
159
+ /** Token ids for `text`, with no special tokens added (the shipped contract). */
160
+ export function tokenizeForEmbedding(text, model = load()) {
161
+ const ids = [];
162
+ for (const word of preTokenize(normalize(text, model)))
163
+ wordPiece(word, model, ids);
164
+ // Upstream drops UNK entirely rather than pooling it (model2vec model.py:166,
165
+ // "necessary for word-level models"), so an out-of-vocab word contributes
166
+ // nothing instead of dragging every vector toward a shared UNK row. Filtering
167
+ // here rather than skipping at emit time matches upstream for the odd case of
168
+ // a literal "[UNK]" in the input, which WordPiece would otherwise keep.
169
+ return model.unkId === undefined ? ids : ids.filter((id) => id !== model.unkId);
170
+ }
171
+ // ---------------------------------------------------------------------------
172
+ // Load
173
+ // ---------------------------------------------------------------------------
174
+ function load() {
175
+ if (_model)
176
+ return _model;
177
+ const dir = modelDir();
178
+ const header = JSON.parse(readFileSync(join(dir, 'model.json'), 'utf8'));
179
+ if (header.format !== EXPECTED_FORMAT) {
180
+ throw new Error(`veto-model: unsupported payload format ${header.format} (expected ${EXPECTED_FORMAT})`);
181
+ }
182
+ // model2vec multiplies token rows by an optional per-token weight vector
183
+ // before pooling. potion-base-8M ships none, and this implementation pools
184
+ // unweighted — so a model that DOES ship them must not load silently.
185
+ if (header.inference.per_token_weights != null) {
186
+ throw new Error('veto-model: payload declares per-token weights, which this implementation does not apply');
187
+ }
188
+ if (header.inference.add_special_tokens) {
189
+ throw new Error('veto-model: payload expects special tokens, which this implementation does not add');
190
+ }
191
+ if (header.inference.pooling !== 'mean' || !header.inference.normalize) {
192
+ throw new Error(`veto-model: unsupported inference contract (${header.inference.pooling}, normalize=${header.inference.normalize})`);
193
+ }
194
+ const { vocab_size: vocabSize, dim } = header;
195
+ const tableBuf = readFileSync(join(dir, 'embeddings.int8.bin'));
196
+ const scaleBuf = readFileSync(join(dir, 'scales.f32.bin'));
197
+ if (tableBuf.length !== vocabSize * dim) {
198
+ throw new Error(`veto-model: table is ${tableBuf.length} bytes, expected ${vocabSize * dim}`);
199
+ }
200
+ if (scaleBuf.length !== vocabSize * 4) {
201
+ throw new Error(`veto-model: scales are ${scaleBuf.length} bytes, expected ${vocabSize * 4}`);
202
+ }
203
+ const tok = JSON.parse(readFileSync(join(dir, 'tokenizer.json'), 'utf8'));
204
+ const norm = tok.normalizer ?? {};
205
+ const tm = tok.model ?? {};
206
+ if (tm.type !== 'WordPiece' || norm.type !== 'BertNormalizer' || tok.pre_tokenizer?.type !== 'BertPreTokenizer') {
207
+ throw new Error(`veto-model: unsupported tokenizer (${norm.type} / ${tok.pre_tokenizer?.type} / ${tm.type})`);
208
+ }
209
+ const vocab = new Map(Object.entries(tm.vocab ?? {}));
210
+ if (vocab.size !== vocabSize) {
211
+ throw new Error(`veto-model: vocab has ${vocab.size} entries, table has ${vocabSize} rows`);
212
+ }
213
+ const lowercase = norm.lowercase !== false;
214
+ const model = {
215
+ header,
216
+ dim,
217
+ table: new Int8Array(tableBuf.buffer, tableBuf.byteOffset, tableBuf.length),
218
+ // Little-endian float32; Node is LE on every supported platform, and a
219
+ // byteOffset-aligned view would be brittle, so copy through a DataView.
220
+ scales: readScales(scaleBuf, vocabSize),
221
+ vocab,
222
+ unkId: tm.unk_token ? vocab.get(tm.unk_token) : undefined,
223
+ prefix: tm.continuing_subword_prefix ?? '##',
224
+ maxWordChars: tm.max_input_chars_per_word ?? 100,
225
+ lowercase,
226
+ // Resolve null the way upstream does — see normalize().
227
+ stripAccents: norm.strip_accents == null ? lowercase : norm.strip_accents,
228
+ cleanText: norm.clean_text !== false,
229
+ handleChineseChars: norm.handle_chinese_chars !== false,
230
+ };
231
+ if (model.stripAccents !== header.tokenizer.strip_accents_effective) {
232
+ throw new Error('veto-model: resolved strip_accents disagrees with the payload header');
233
+ }
234
+ _model = model;
235
+ return model;
236
+ }
237
+ function readScales(buf, n) {
238
+ const view = new DataView(buf.buffer, buf.byteOffset, buf.length);
239
+ const out = new Float32Array(n);
240
+ for (let i = 0; i < n; i++)
241
+ out[i] = view.getFloat32(i * 4, true);
242
+ return out;
243
+ }
244
+ // ---------------------------------------------------------------------------
245
+ // Embed
246
+ // ---------------------------------------------------------------------------
247
+ /**
248
+ * Embed `text` into a unit-length vector.
249
+ *
250
+ * Gather each token's row, dequantize it by that row's scale, mean-pool, then
251
+ * L2-normalize. Text with no tokens (empty or punctuation-free-of-vocab)
252
+ * yields the zero vector rather than NaN — upstream's behaviour, and the
253
+ * reason the epsilon is in the denominator.
254
+ */
255
+ export function embed(text, model = load()) {
256
+ const ids = tokenizeForEmbedding(text, model);
257
+ const { dim, table, scales } = model;
258
+ const out = new Float32Array(dim);
259
+ if (ids.length === 0)
260
+ return out;
261
+ for (const id of ids) {
262
+ const base = id * dim;
263
+ const scale = scales[id];
264
+ for (let d = 0; d < dim; d++)
265
+ out[d] += table[base + d] * scale;
266
+ }
267
+ let norm = 0;
268
+ for (let d = 0; d < dim; d++) {
269
+ out[d] /= ids.length;
270
+ norm += out[d] * out[d];
271
+ }
272
+ norm = Math.sqrt(norm) + NORM_EPSILON;
273
+ for (let d = 0; d < dim; d++)
274
+ out[d] /= norm;
275
+ return out;
276
+ }
277
+ /** Cosine similarity of two unit vectors — a dot product, given the inputs. */
278
+ export function cosine(a, b) {
279
+ let s = 0;
280
+ for (let i = 0; i < a.length; i++)
281
+ s += a[i] * b[i];
282
+ return s;
283
+ }
284
+ /** True when the model package resolves and its payload passes validation. */
285
+ export function embeddingsAvailable() {
286
+ try {
287
+ load();
288
+ return true;
289
+ }
290
+ catch {
291
+ return false;
292
+ }
293
+ }
294
+ /** Upstream model id + revision of the loaded payload, for recall provenance. */
295
+ export function modelProvenance() {
296
+ const { upstream } = load().header;
297
+ return { model_id: upstream.model_id, revision: upstream.revision };
298
+ }
299
+ /** Drop the cached table. Tests only — production loads once per process. */
300
+ export function resetModelCache() {
301
+ _model = undefined;
302
+ }
303
+ //# sourceMappingURL=embed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embed.js","sourceRoot":"","sources":["../../src/transcripts/embed.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ingest.d.ts","sourceRoot":"","sources":["../../src/transcripts/ingest.ts"],"names":[],"mappings":"AAeA,OAAO,EAAqC,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAO/E,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,MAAM,MAAM,YAAY,GACpB,SAAS,GAAG,iBAAiB,GAAG,WAAW,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,OAAO,CAAC;AAEnG,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAWF,oEAAoE;AACpE,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,CAgF7D;AAED,4FAA4F;AAC5F,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,CAE7D;AAED,0DAA0D;AAC1D,wBAAgB,aAAa,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,SAAW,GAAG,YAAY,CAOtF;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,EAAE,CAGvD"}
1
+ {"version":3,"file":"ingest.d.ts","sourceRoot":"","sources":["../../src/transcripts/ingest.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAqC,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAO/E,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,MAAM,MAAM,YAAY,GACpB,SAAS,GAAG,iBAAiB,GAAG,WAAW,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,OAAO,CAAC;AAEnG,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAWF,oEAAoE;AACpE,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,CA0F7D;AAED,4FAA4F;AAC5F,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,CAE7D;AAED,0DAA0D;AAC1D,wBAAgB,aAAa,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,SAAW,GAAG,YAAY,CAOtF;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,EAAE,CAGvD"}
@@ -10,6 +10,7 @@ import { readFileSync, existsSync } from 'node:fs';
10
10
  import { gunzipSync } from 'node:zlib';
11
11
  import { randomUUID } from 'node:crypto';
12
12
  import { getTranscriptsDb } from './store.js';
13
+ import { resetCaches } from './cache.js';
13
14
  import { parseClaudeTranscript } from './adapters/claude.js';
14
15
  import { tokenize } from './tokenize.js';
15
16
  import { SEARCHABLE_KINDS } from './schema.js';
@@ -65,6 +66,9 @@ export function ingestArchive(archiveId) {
65
66
  try {
66
67
  db.prepare(`DELETE FROM events WHERE archive_id = ?`).run(archiveId);
67
68
  db.prepare(`DELETE FROM search_postings WHERE doc_id IN (SELECT id FROM search_docs WHERE archive_id = ?)`).run(archiveId);
69
+ // Doc ids are reassigned by this re-derive, so stale vectors would not
70
+ // just orphan — they would silently re-attach to the wrong events.
71
+ db.prepare(`DELETE FROM search_vectors WHERE doc_id IN (SELECT id FROM search_docs WHERE archive_id = ?)`).run(archiveId);
68
72
  db.prepare(`DELETE FROM search_docs WHERE archive_id = ?`).run(archiveId);
69
73
  for (const e of events) {
70
74
  const eventId = randomUUID();
@@ -80,9 +84,12 @@ export function ingestArchive(archiveId) {
80
84
  insPosting.run(termId(term), docId, count);
81
85
  }
82
86
  }
83
- db.prepare(`UPDATE archives SET indexed_through_seq = ?, parser_version = ? WHERE id = ?`)
84
- .run(events.length, PARSER_VERSION, archiveId);
87
+ // Vectors were just dropped with their docs; clearing the marker lets
88
+ // the lazy embed pass rebuild them without re-parsing the transcript.
89
+ db.prepare(`UPDATE archives SET indexed_through_seq = ?, parser_version = ?, chunker_version = 0, embed_model = NULL
90
+ WHERE id = ?`).run(events.length, PARSER_VERSION, archiveId);
85
91
  db.exec('COMMIT');
92
+ resetCaches();
86
93
  }
87
94
  catch (e) {
88
95
  db.exec('ROLLBACK');
@@ -1 +1 @@
1
- {"version":3,"file":"ingest.js","sourceRoot":"","sources":["../../src/transcripts/ingest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ingest.js","sourceRoot":"","sources":["../../src/transcripts/ingest.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"manage.d.ts","sourceRoot":"","sources":["../../src/transcripts/manage.ts"],"names":[],"mappings":"AAWA,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAc,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAG7D,MAAM,MAAM,cAAc,GAAG;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAUF,wBAAgB,YAAY,CAAC,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,cAAc,EAAE,CAOjG;AAED,MAAM,MAAM,aAAa,GAAG;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,GAAG,EAAE,OAAO,EAAE,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,GAAG,IAAI,CAAC;AAEpG,wBAAgB,WAAW,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,SAAW,GAAG,aAAa,CAKrF;AAED,MAAM,MAAM,WAAW,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAyCnH,wBAAgB,YAAY,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,SAAW,GAAG,WAAW,CAUpF;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CAI5D;AAED,wBAAgB,QAAQ,IAAI,WAAW,CAQtC;AAED,MAAM,MAAM,SAAS,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAExG,wBAAgB,oBAAoB,IAAI,SAAS,CAMhD;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAI1C"}
1
+ {"version":3,"file":"manage.d.ts","sourceRoot":"","sources":["../../src/transcripts/manage.ts"],"names":[],"mappings":"AAYA,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAc,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAG7D,MAAM,MAAM,cAAc,GAAG;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAUF,wBAAgB,YAAY,CAAC,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,cAAc,EAAE,CAOjG;AAED,MAAM,MAAM,aAAa,GAAG;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,GAAG,EAAE,OAAO,EAAE,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,GAAG,IAAI,CAAC;AAEpG,wBAAgB,WAAW,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,SAAW,GAAG,aAAa,CAKrF;AAED,MAAM,MAAM,WAAW,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAkDnH,wBAAgB,YAAY,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,SAAW,GAAG,WAAW,CAUpF;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CAI5D;AAED,wBAAgB,QAAQ,IAAI,WAAW,CAQtC;AAED,MAAM,MAAM,SAAS,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAExG,wBAAgB,oBAAoB,IAAI,SAAS,CAMhD;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAI1C"}