@dawn-ai/memory 0.8.7 → 0.8.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,117 @@
1
+ <p align="center">
2
+ <img src="https://raw.githubusercontent.com/cacheplane/dawnai/main/docs/brand/dawn-logo-horizontal-black-on-white.png" alt="Dawn" width="180" />
3
+ </p>
4
+
5
+ # @dawn-ai/memory
6
+
7
+ Deterministic long-term memory storage and recall utilities for Dawn's typed
8
+ `memory.ts` capability. The package is the storage/ranking layer used by
9
+ `@dawn-ai/core`; application routes usually declare memory with
10
+ `defineMemory()` from `@dawn-ai/sdk`.
11
+
12
+ This is part of [Dawn - the TypeScript meta-framework for LangGraph](https://github.com/cacheplane/dawnai).
13
+ Conceptual docs: [Memory](https://dawnai.org/docs/memory) and
14
+ [Configuration](https://dawnai.org/docs/configuration#memory).
15
+
16
+ ## Install
17
+
18
+ ```bash
19
+ pnpm add @dawn-ai/memory
20
+ ```
21
+
22
+ ```ts
23
+ import {
24
+ classifyWrite,
25
+ scoreMemory,
26
+ serializeNamespace,
27
+ sqliteMemoryStore,
28
+ tokenize,
29
+ type MemoryRecord,
30
+ type MemoryStore,
31
+ } from "@dawn-ai/memory"
32
+ ```
33
+
34
+ ## Public API
35
+
36
+ ### Store
37
+
38
+ - `sqliteMemoryStore({ path, recall? })` creates the default `MemoryStore`.
39
+ Use `path: ":memory:"` for tests or `<appRoot>/.dawn/memory.sqlite` for a
40
+ file-backed store. The implementation uses `node:sqlite`, runs its own
41
+ migrations, tokenizes stored records, and returns deterministic search
42
+ results.
43
+ - `MemoryStore` is the storage contract:
44
+ `put`, `get`, `search`, `update`, `supersede`, `delete`, and
45
+ `listCandidates`.
46
+ - `MemoryRecord`, `MemoryQuery`, `MemoryKind`, `MemoryStatus`, and
47
+ `MemorySource` describe the rows the runtime reads and writes.
48
+
49
+ ### Namespaces and reconciliation
50
+
51
+ - `serializeNamespace(tuple)` converts a `MemoryScopeTuple` into the stable
52
+ namespace string used by route memory.
53
+ - `classifyWrite(incoming, candidates, identityKeys)` returns a `WriteOp` for
54
+ idempotent writes, supersession, or insertion by comparing one incoming record
55
+ against a list of candidate records. Dawn's `auto` write mode uses the same
56
+ identity-key concept.
57
+
58
+ ### Ranking
59
+
60
+ - `scoreMemory(args)` scores a candidate row with relevance, recency, and
61
+ confidence.
62
+ - `DEFAULT_RECALL_WEIGHTS`, `DEFAULT_RECENCY_HALF_LIFE_MS`, and
63
+ `DEFAULT_CANDIDATE_POOL` match the defaults documented in
64
+ [Memory](https://dawnai.org/docs/memory#how-recall-ranks).
65
+ - `RecallWeights` and `RecallRankingOptions` configure the default SQLite
66
+ store's ranked recall.
67
+ - `idf(df, corpusSize)` and `tokenize(text)` expose the deterministic tokenizer
68
+ and scoring primitives for tests and custom stores.
69
+
70
+ ## Configuration
71
+
72
+ Most apps configure memory through `dawn.config.ts`, not by constructing this
73
+ package directly:
74
+
75
+ ```ts
76
+ export default {
77
+ memory: {
78
+ writes: "candidate",
79
+ indexMaxEntries: 20,
80
+ recall: {
81
+ weights: { relevance: 0.6, recency: 0.3, confidence: 0.1 },
82
+ recencyHalfLifeMs: 14 * 24 * 60 * 60 * 1000,
83
+ candidatePool: 256,
84
+ },
85
+ },
86
+ } satisfies import("@dawn-ai/core").DawnConfig
87
+ ```
88
+
89
+ See [Memory configuration](https://dawnai.org/docs/memory#configuration) for
90
+ write modes, namespace scope, and recall tuning.
91
+
92
+ ## Testing Notes
93
+
94
+ For route-level tests, prefer `seedMemory` from `@dawn-ai/testing`; it accepts a
95
+ store instance or a `{ path }` and fills sensible defaults for partial records.
96
+ Use `sqliteMemoryStore({ path: ":memory:" })` when testing storage behavior
97
+ directly.
98
+
99
+ The recall implementation is deterministic and does not call the network,
100
+ embedding services, FTS5, or the system clock. Ranked searches use the supplied
101
+ `MemoryQuery.now` timestamp, or the newest candidate timestamp when `now` is
102
+ omitted.
103
+
104
+ ## Limitations and Security
105
+
106
+ - Only the semantic memory path is wired end-to-end in Dawn today. Episodic,
107
+ procedural, and reflection kinds are typed for future use.
108
+ - `sqliteMemoryStore` is an embedded local store. It is not a multi-process
109
+ database service or a tenant isolation boundary by itself.
110
+ - Candidate review, approval, and route scoping live in Dawn's runtime and CLI;
111
+ this package stores records and ranks search results.
112
+ - Data is stored as plaintext SQLite rows. Treat the database path as sensitive
113
+ application data.
114
+
115
+ ## License
116
+
117
+ MIT
@@ -0,0 +1,26 @@
1
+ import { type RecallRankingOptions, type RecallWeights } from "./score.js";
2
+ import type { MemoryRecord, VectorRankingOptions } from "./types.js";
3
+ /**
4
+ * Rank keyword candidates by IDF relevance (+ recency/confidence per weights).
5
+ * `candidates` are the rows the store retrieved as matching ≥1 query token;
6
+ * `dfByToken`/`corpusSize` are the store's live stats. Returns the full sorted
7
+ * list (caller pages + tag-filters). `now` absent → newest candidate's updatedAt.
8
+ * `tokenize` defaults to the shared `tokenize()` — callers pass their own only if
9
+ * they index tokens differently (both stores pass the imported `tokenize`).
10
+ */
11
+ export declare function rankKeywordCandidates(candidates: readonly MemoryRecord[], dfByToken: ReadonlyMap<string, number>, corpusSize: number, queryTokens: readonly string[], now: string | undefined, options?: RecallRankingOptions, tk?: (s: string) => string[]): MemoryRecord[];
12
+ /**
13
+ * Fuse a keyword-ranked list and a vector-ranked list (already cosine-sorted and
14
+ * sliced to vectorK by the store) via co-equal RRF, then a bounded recency/
15
+ * confidence second stage. Returns the fused sorted records (caller pages +
16
+ * tag-filters). `options.recencyHalfLifeMs` should be pre-resolved by the caller
17
+ * (the pure fn cannot see recall config).
18
+ */
19
+ export declare function fuseHybrid(args: {
20
+ readonly keywordRanked: readonly MemoryRecord[];
21
+ readonly vectorRanked: readonly MemoryRecord[];
22
+ readonly now?: string | undefined;
23
+ readonly options?: VectorRankingOptions | undefined;
24
+ }): MemoryRecord[];
25
+ export type { RecallWeights };
26
+ //# sourceMappingURL=hybrid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hybrid.d.ts","sourceRoot":"","sources":["../src/hybrid.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAGnB,MAAM,YAAY,CAAA;AAEnB,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAcpE;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,SAAS,YAAY,EAAE,EACnC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EACtC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,SAAS,MAAM,EAAE,EAC9B,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,OAAO,CAAC,EAAE,oBAAoB,EAC9B,EAAE,GAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAAa,GACrC,YAAY,EAAE,CAuBhB;AAMD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAC/B,QAAQ,CAAC,aAAa,EAAE,SAAS,YAAY,EAAE,CAAA;IAC/C,QAAQ,CAAC,YAAY,EAAE,SAAS,YAAY,EAAE,CAAA;IAC9C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAA;CACpD,GAAG,YAAY,EAAE,CAiCjB;AAED,YAAY,EAAE,aAAa,EAAE,CAAA"}
package/dist/hybrid.js ADDED
@@ -0,0 +1,86 @@
1
+ // Pure, backend-agnostic hybrid ranking core. Both sqliteMemoryStore and
2
+ // @dawn-ai/memory-pgvector call these after doing their own retrieval, so recall
3
+ // ranking is identical across backends. No I/O, no clock, no randomness.
4
+ import { recencyDecay, scoreMemory, } from "./score.js";
5
+ import { tokenize } from "./tokenize.js";
6
+ import { fuseRRF } from "./vector.js";
7
+ function cmp(a, b) {
8
+ return a < b ? -1 : a > b ? 1 : 0;
9
+ }
10
+ function newestUpdatedAt(records) {
11
+ return records.reduce((m, r) => (r.updatedAt > m ? r.updatedAt : m), "");
12
+ }
13
+ function tokensFor(rec, tk) {
14
+ const values = Object.values(rec.data).filter((v) => typeof v === "string");
15
+ return tk([rec.content, rec.tags.join(" "), values.join(" ")].join(" "));
16
+ }
17
+ /**
18
+ * Rank keyword candidates by IDF relevance (+ recency/confidence per weights).
19
+ * `candidates` are the rows the store retrieved as matching ≥1 query token;
20
+ * `dfByToken`/`corpusSize` are the store's live stats. Returns the full sorted
21
+ * list (caller pages + tag-filters). `now` absent → newest candidate's updatedAt.
22
+ * `tokenize` defaults to the shared `tokenize()` — callers pass their own only if
23
+ * they index tokens differently (both stores pass the imported `tokenize`).
24
+ */
25
+ export function rankKeywordCandidates(candidates, dfByToken, corpusSize, queryTokens, now, options, tk = tokenize) {
26
+ if (candidates.length === 0)
27
+ return [];
28
+ const referenceNow = now ?? newestUpdatedAt(candidates);
29
+ const scored = candidates.map((record) => ({
30
+ record,
31
+ score: scoreMemory({
32
+ memoryTokens: new Set(tokensFor(record, tk)),
33
+ queryTokens: [...queryTokens],
34
+ dfByToken,
35
+ corpusSize,
36
+ updatedAt: record.updatedAt,
37
+ confidence: record.confidence,
38
+ referenceNow,
39
+ ...(options ? { options } : {}),
40
+ }),
41
+ }));
42
+ scored.sort((a, b) => b.score - a.score ||
43
+ cmp(b.record.updatedAt, a.record.updatedAt) ||
44
+ cmp(a.record.id, b.record.id));
45
+ return scored.map((s) => s.record);
46
+ }
47
+ function finite(n, d) {
48
+ return typeof n === "number" && Number.isFinite(n) ? n : d;
49
+ }
50
+ /**
51
+ * Fuse a keyword-ranked list and a vector-ranked list (already cosine-sorted and
52
+ * sliced to vectorK by the store) via co-equal RRF, then a bounded recency/
53
+ * confidence second stage. Returns the fused sorted records (caller pages +
54
+ * tag-filters). `options.recencyHalfLifeMs` should be pre-resolved by the caller
55
+ * (the pure fn cannot see recall config).
56
+ */
57
+ export function fuseHybrid(args) {
58
+ const v = args.options ?? {};
59
+ const wKeyword = finite(v.weights?.keyword, 1);
60
+ const wVector = finite(v.weights?.vector, 1);
61
+ const wRec = finite(v.recencyWeight, 0.3);
62
+ const wConf = finite(v.confidenceWeight, 0.1);
63
+ const byId = new Map();
64
+ for (const r of args.keywordRanked)
65
+ byId.set(r.id, r);
66
+ for (const r of args.vectorRanked)
67
+ if (!byId.has(r.id))
68
+ byId.set(r.id, r);
69
+ if (byId.size === 0)
70
+ return [];
71
+ const rrf = fuseRRF([
72
+ { ids: args.keywordRanked.map((r) => r.id), weight: wKeyword },
73
+ { ids: args.vectorRanked.map((r) => r.id), weight: wVector },
74
+ ], typeof v.rrfK === "number" ? { k: v.rrfK } : undefined);
75
+ const referenceNow = args.now ?? newestUpdatedAt([...byId.values()]);
76
+ const fused = [...byId.values()].map((record) => {
77
+ const base = rrf.get(record.id) ?? 0;
78
+ const rec = recencyDecay(record.updatedAt, referenceNow, v.recencyHalfLifeMs);
79
+ const conf = record.confidence < 0 ? 0 : record.confidence > 1 ? 1 : record.confidence;
80
+ return { record, score: base * (1 + wRec * rec + wConf * conf) };
81
+ });
82
+ fused.sort((a, b) => b.score - a.score ||
83
+ cmp(b.record.updatedAt, a.record.updatedAt) ||
84
+ cmp(a.record.id, b.record.id));
85
+ return fused.map((s) => s.record);
86
+ }
package/dist/index.d.ts CHANGED
@@ -1,7 +1,9 @@
1
+ export { fuseHybrid, rankKeywordCandidates } from "./hybrid.js";
1
2
  export { type MemoryScopeTuple, serializeNamespace } from "./namespace.js";
2
3
  export { classifyWrite, type WriteOp } from "./reconcile.js";
3
- export { DEFAULT_CANDIDATE_POOL, DEFAULT_RECALL_WEIGHTS, DEFAULT_RECENCY_HALF_LIFE_MS, idf, type RecallRankingOptions, type RecallWeights, scoreMemory, } from "./score.js";
4
+ export { DEFAULT_CANDIDATE_POOL, DEFAULT_RECALL_WEIGHTS, DEFAULT_RECENCY_HALF_LIFE_MS, idf, type RecallRankingOptions, type RecallWeights, recencyDecay, scoreMemory, } from "./score.js";
4
5
  export { sqliteMemoryStore } from "./sqlite-store.js";
5
6
  export { tokenize } from "./tokenize.js";
6
- export type { MemoryKind, MemoryQuery, MemoryRecord, MemorySource, MemoryStatus, MemoryStore, } from "./types.js";
7
+ export type { MemoryKind, MemoryQuery, MemoryRecord, MemorySource, MemoryStatus, MemoryStore, VectorRankingOptions, } from "./types.js";
8
+ export { cosineSimilarity, DEFAULT_RRF_K, DEFAULT_VECTOR_K, fuseRRF, type RankedList, } from "./vector.js";
7
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAC5D,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,4BAA4B,EAC5B,GAAG,EACH,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,WAAW,GACZ,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,YAAY,EACV,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,GACZ,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAE,KAAK,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAC5D,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,4BAA4B,EAC5B,GAAG,EACH,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,YAAY,EACZ,WAAW,GACZ,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,YAAY,EACV,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,oBAAoB,GACrB,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,OAAO,EACP,KAAK,UAAU,GAChB,MAAM,aAAa,CAAA"}
package/dist/index.js CHANGED
@@ -1,5 +1,7 @@
1
+ export { fuseHybrid, rankKeywordCandidates } from "./hybrid.js";
1
2
  export { serializeNamespace } from "./namespace.js";
2
3
  export { classifyWrite } from "./reconcile.js";
3
- export { DEFAULT_CANDIDATE_POOL, DEFAULT_RECALL_WEIGHTS, DEFAULT_RECENCY_HALF_LIFE_MS, idf, scoreMemory, } from "./score.js";
4
+ export { DEFAULT_CANDIDATE_POOL, DEFAULT_RECALL_WEIGHTS, DEFAULT_RECENCY_HALF_LIFE_MS, idf, recencyDecay, scoreMemory, } from "./score.js";
4
5
  export { sqliteMemoryStore } from "./sqlite-store.js";
5
6
  export { tokenize } from "./tokenize.js";
7
+ export { cosineSimilarity, DEFAULT_RRF_K, DEFAULT_VECTOR_K, fuseRRF, } from "./vector.js";
@@ -1 +1 @@
1
- {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../src/namespace.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CASlE"}
1
+ {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../src/namespace.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;AAcD,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CASlE"}
package/dist/namespace.js CHANGED
@@ -1,11 +1,21 @@
1
1
  const ORDER = ["workspace", "route", "tenant", "user", "agent"];
2
+ // "|" separates dimensions and "=" separates key from value, so a dimension
3
+ // VALUE containing either would corrupt the namespace (prefix-match collisions,
4
+ // mis-split in suggestedMemoryPattern). Percent-encode both — and "%" itself,
5
+ // first, so the encoding is reversible. Keys are fixed names from ORDER and
6
+ // never need encoding. Values with none of these chars (the common case) are
7
+ // returned unchanged, so existing stored namespaces and persisted permission
8
+ // patterns keep matching byte-for-byte.
9
+ function encodeValue(value) {
10
+ return value.replaceAll("%", "%25").replaceAll("|", "%7C").replaceAll("=", "%3D");
11
+ }
2
12
  /** Serialize a scope tuple to a stable namespace string. Fail-closed on empty. */
3
13
  export function serializeNamespace(tuple) {
4
14
  const parts = [];
5
15
  for (const key of ORDER) {
6
16
  const value = tuple[key];
7
17
  if (value !== undefined && value !== "")
8
- parts.push(`${key}=${value}`);
18
+ parts.push(`${key}=${encodeValue(value)}`);
9
19
  }
10
20
  if (parts.length === 0)
11
21
  throw new Error("serializeNamespace: scope tuple must have at least one dimension");
package/dist/score.d.ts CHANGED
@@ -21,6 +21,12 @@ export declare const DEFAULT_CANDIDATE_POOL = 256;
21
21
  * zeroing out or going negative (as unsmoothed idf would).
22
22
  */
23
23
  export declare function idf(df: number, corpusSize: number): number;
24
+ /**
25
+ * Exponential recency decay in (0, 1]. age = referenceMs − updatedMs, clamped ≥ 0;
26
+ * invalid/absent timestamps degrade to age 0 (decay 1). Non-positive/non-finite
27
+ * halfLife falls back to the default.
28
+ */
29
+ export declare function recencyDecay(updatedAt: string, referenceNow: string, halfLifeMs?: number): number;
24
30
  /**
25
31
  * Composite recall score: wRel·relevance + wRec·recency + wConf·confidence.
26
32
  *
@@ -1 +1 @@
1
- {"version":3,"file":"score.d.ts","sourceRoot":"","sources":["../src/score.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAA;IAChC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAChC;AAED,eAAO,MAAM,sBAAsB;;;;CAIzB,CAAA;AAEV,eAAO,MAAM,4BAA4B,QAA2B,CAAA;AACpE,eAAO,MAAM,sBAAsB,MAAM,CAAA;AAEzC;;;;GAIG;AACH,wBAAgB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAI1D;AAYD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAChC,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IAC1C,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAA;IACvC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,oBAAoB,CAAA;CACxC,GAAG,MAAM,CAyBT"}
1
+ {"version":3,"file":"score.d.ts","sourceRoot":"","sources":["../src/score.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAA;IAChC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAChC;AAED,eAAO,MAAM,sBAAsB;;;;CAIzB,CAAA;AAEV,eAAO,MAAM,4BAA4B,QAA2B,CAAA;AACpE,eAAO,MAAM,sBAAsB,MAAM,CAAA;AAEzC;;;;GAIG;AACH,wBAAgB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAI1D;AAMD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CASjG;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAChC,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IAC1C,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAA;IACvC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,oBAAoB,CAAA;CACxC,GAAG,MAAM,CAiBT"}
package/dist/score.js CHANGED
@@ -21,10 +21,19 @@ export function idf(df, corpusSize) {
21
21
  function clamp01(v) {
22
22
  return Number.isFinite(v) ? (v < 0 ? 0 : v > 1 ? 1 : v) : 0;
23
23
  }
24
- /** Parse an ISO timestamp; NaN (invalid/missing) degrades to null, never throws. */
25
- function parseMs(iso) {
26
- const ms = Date.parse(iso);
27
- return Number.isNaN(ms) ? null : ms;
24
+ /**
25
+ * Exponential recency decay in (0, 1]. age = referenceMs − updatedMs, clamped ≥ 0;
26
+ * invalid/absent timestamps degrade to age 0 (decay 1). Non-positive/non-finite
27
+ * halfLife falls back to the default.
28
+ */
29
+ export function recencyDecay(updatedAt, referenceNow, halfLifeMs) {
30
+ const hl = typeof halfLifeMs === "number" && Number.isFinite(halfLifeMs) && halfLifeMs > 0
31
+ ? halfLifeMs
32
+ : DEFAULT_RECENCY_HALF_LIFE_MS;
33
+ const ref = Date.parse(referenceNow);
34
+ const upd = Date.parse(updatedAt);
35
+ const ageMs = Number.isNaN(ref) || Number.isNaN(upd) ? 0 : Math.max(0, ref - upd);
36
+ return 2 ** (-ageMs / hl);
28
37
  }
29
38
  /**
30
39
  * Composite recall score: wRel·relevance + wRec·recency + wConf·confidence.
@@ -42,10 +51,6 @@ function parseMs(iso) {
42
51
  */
43
52
  export function scoreMemory(args) {
44
53
  const weights = { ...DEFAULT_RECALL_WEIGHTS, ...args.options?.weights };
45
- const rawHalfLife = args.options?.recencyHalfLifeMs;
46
- const halfLife = typeof rawHalfLife === "number" && Number.isFinite(rawHalfLife) && rawHalfLife > 0
47
- ? rawHalfLife
48
- : DEFAULT_RECENCY_HALF_LIFE_MS;
49
54
  let matchedIdf = 0;
50
55
  let totalIdf = 0;
51
56
  for (const t of args.queryTokens) {
@@ -55,10 +60,7 @@ export function scoreMemory(args) {
55
60
  matchedIdf += w;
56
61
  }
57
62
  const relevance = totalIdf > 0 ? matchedIdf / totalIdf : 0;
58
- const ref = parseMs(args.referenceNow);
59
- const upd = parseMs(args.updatedAt);
60
- const ageMs = ref !== null && upd !== null ? Math.max(0, ref - upd) : 0;
61
- const recency = 2 ** (-ageMs / halfLife);
63
+ const recency = recencyDecay(args.updatedAt, args.referenceNow, args.options?.recencyHalfLifeMs);
62
64
  const confidence = clamp01(args.confidence);
63
65
  return weights.relevance * relevance + weights.recency * recency + weights.confidence * confidence;
64
66
  }
@@ -1,8 +1,10 @@
1
1
  import { type RecallRankingOptions } from "./score.js";
2
- import type { MemoryStore } from "./types.js";
2
+ import type { MemoryStore, VectorRankingOptions } from "./types.js";
3
3
  export declare function sqliteMemoryStore(opts: {
4
4
  path: string;
5
5
  /** Recall ranking tuning; all fields defaulted. See score.ts. */
6
6
  recall?: RecallRankingOptions;
7
+ /** Store-level hybrid tuning; used when a query omits `vector`. All fields defaulted. */
8
+ vector?: VectorRankingOptions;
7
9
  }): MemoryStore;
8
10
  //# sourceMappingURL=sqlite-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-store.d.ts","sourceRoot":"","sources":["../src/sqlite-store.ts"],"names":[],"mappings":"AAIA,OAAO,EAA0B,KAAK,oBAAoB,EAAe,MAAM,YAAY,CAAA;AAE3F,OAAO,KAAK,EAA6B,WAAW,EAAE,MAAM,YAAY,CAAA;AA6GxE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,iEAAiE;IACjE,MAAM,CAAC,EAAE,oBAAoB,CAAA;CAC9B,GAAG,WAAW,CAgLd"}
1
+ {"version":3,"file":"sqlite-store.d.ts","sourceRoot":"","sources":["../src/sqlite-store.ts"],"names":[],"mappings":"AAKA,OAAO,EAA0B,KAAK,oBAAoB,EAAsB,MAAM,YAAY,CAAA;AAElG,OAAO,KAAK,EAA6B,WAAW,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAqH9F,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,iEAAiE;IACjE,MAAM,CAAC,EAAE,oBAAoB,CAAA;IAC7B,yFAAyF;IACzF,MAAM,CAAC,EAAE,oBAAoB,CAAA;CAC9B,GAAG,WAAW,CAiRd"}
@@ -1,8 +1,10 @@
1
1
  import { mkdirSync } from "node:fs";
2
2
  import { dirname } from "node:path";
3
3
  import { DatabaseSync } from "node:sqlite";
4
- import { DEFAULT_CANDIDATE_POOL, scoreMemory } from "./score.js";
4
+ import { fuseHybrid, rankKeywordCandidates } from "./hybrid.js";
5
+ import { DEFAULT_CANDIDATE_POOL } from "./score.js";
5
6
  import { tokenize } from "./tokenize.js";
7
+ import { cosineSimilarity, DEFAULT_VECTOR_K } from "./vector.js";
6
8
  // ---------------------------------------------------------------------------
7
9
  // Inline DB helpers (mirrors packages/sqlite-storage/src/internal — not
8
10
  // re-exported from that package's public API, so we replicate the tiny shim).
@@ -62,6 +64,13 @@ const MIGRATIONS = [
62
64
  CREATE INDEX idx_memtok_mem ON memory_tokens(memory_id);
63
65
  `,
64
66
  },
67
+ {
68
+ version: 2,
69
+ up: `
70
+ ALTER TABLE memories ADD COLUMN embedding BLOB;
71
+ ALTER TABLE memories ADD COLUMN embedding_model TEXT;
72
+ `,
73
+ },
65
74
  ];
66
75
  // ---------------------------------------------------------------------------
67
76
  // Row ↔ record conversion
@@ -108,15 +117,79 @@ export function sqliteMemoryStore(opts) {
108
117
  const row = db.prepare("SELECT * FROM memories WHERE id = ?").get(id);
109
118
  return row ? rowToRecord(row) : null;
110
119
  }
111
- function putRecord(rec) {
120
+ function putRecord(rec, embed) {
121
+ const blob = embed?.embedding && embed.embeddingModel
122
+ ? Buffer.from(embed.embedding.buffer.slice(embed.embedding.byteOffset, embed.embedding.byteOffset + embed.embedding.byteLength))
123
+ : null;
124
+ const model = embed?.embedding && embed.embeddingModel ? embed.embeddingModel : null;
112
125
  db.prepare(`INSERT OR REPLACE INTO memories
113
- (id,kind,namespace,content,data,source,confidence,tags,status,supersedes,created_at,updated_at,effective_at,expires_at)
114
- VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)`).run(rec.id, rec.kind, rec.namespace, rec.content, JSON.stringify(rec.data), JSON.stringify(rec.source), rec.confidence, JSON.stringify(rec.tags), rec.status, rec.supersedes ? JSON.stringify(rec.supersedes) : null, rec.createdAt, rec.updatedAt, rec.effectiveAt ?? null, rec.expiresAt ?? null);
126
+ (id,kind,namespace,content,data,source,confidence,tags,status,supersedes,created_at,updated_at,effective_at,expires_at,embedding,embedding_model)
127
+ VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)`).run(rec.id, rec.kind, rec.namespace, rec.content, JSON.stringify(rec.data), JSON.stringify(rec.source), rec.confidence, JSON.stringify(rec.tags), rec.status, rec.supersedes ? JSON.stringify(rec.supersedes) : null, rec.createdAt, rec.updatedAt, rec.effectiveAt ?? null, rec.expiresAt ?? null, blob, model);
115
128
  reindex(rec);
116
129
  }
130
+ // Re-read a row's persisted embedding so update() does not drop it (putRecord
131
+ // rewrites the full row; without this the embedding columns would go null).
132
+ function getEmbeddingRow(id) {
133
+ const row = db
134
+ .prepare("SELECT embedding, embedding_model FROM memories WHERE id = ?")
135
+ .get(id);
136
+ if (row?.embedding && row.embedding_model) {
137
+ return {
138
+ embedding: new Float32Array(row.embedding.buffer.slice(row.embedding.byteOffset, row.embedding.byteOffset + row.embedding.byteLength)),
139
+ embeddingModel: row.embedding_model,
140
+ };
141
+ }
142
+ return {};
143
+ }
144
+ // Keyword-ranked list: candidate pool → live corpus stats → scoreMemory →
145
+ // stable sort (score DESC, updated_at DESC, id ASC). Returns the FULL sorted
146
+ // list (caller pages + tag-filters). `weightsOverride` lets the hybrid path
147
+ // rank by relevance ONLY; when absent the default recall weights apply — this
148
+ // is the exact behavior the shipped smarter-recall path exercises.
149
+ function rankKeyword(q, baseSql, baseParams, terms, weightsOverride) {
150
+ const rawPool = opts.recall?.candidatePool;
151
+ const pool = typeof rawPool === "number" && Number.isFinite(rawPool) && rawPool > 0
152
+ ? Math.floor(rawPool)
153
+ : DEFAULT_CANDIDATE_POOL;
154
+ const placeholders = terms.map(() => "?").join(",");
155
+ // 1) Candidate pool: rows matching ≥1 query token, newest first (pool
156
+ // truncation by recency is deterministic).
157
+ const candidateRows = db
158
+ .prepare(`SELECT m.* FROM memories m WHERE ${baseSql}
159
+ AND m.id IN (SELECT memory_id FROM memory_tokens WHERE token IN (${placeholders}))
160
+ ORDER BY m.updated_at DESC, m.id ASC LIMIT ?`)
161
+ .all(...baseParams, ...terms, pool);
162
+ const candidates = candidateRows.map(rowToRecord);
163
+ if (candidates.length === 0)
164
+ return [];
165
+ // 2) Corpus stats, computed live (nothing cached → nothing to go stale).
166
+ const corpusSize = db.prepare(`SELECT COUNT(*) AS n FROM memories m WHERE ${baseSql}`).get(...baseParams).n;
167
+ const dfRows = db
168
+ .prepare(`SELECT t.token AS token, COUNT(DISTINCT t.memory_id) AS df
169
+ FROM memory_tokens t JOIN memories m ON m.id = t.memory_id
170
+ WHERE ${baseSql} AND t.token IN (${placeholders}) GROUP BY t.token`)
171
+ .all(...baseParams, ...terms);
172
+ const dfByToken = new Map(dfRows.map((r) => [r.token, r.df]));
173
+ // 3) Score + sort via the shared pure ranking core. Candidate token sets are
174
+ // recomputed via the same `tokenize` reindex() uses, so they are
175
+ // guaranteed consistent with the table.
176
+ const options = weightsOverride || opts.recall
177
+ ? { ...opts.recall, ...(weightsOverride ? { weights: weightsOverride } : {}) }
178
+ : undefined;
179
+ return rankKeywordCandidates(candidates, dfByToken, corpusSize, terms, q.now, options, tokenize);
180
+ }
181
+ // Page (limit) then tag post-filter — today's ranked-path semantics, unchanged.
182
+ function pageAndTagFilter(records, limit, q) {
183
+ let out = records.slice(0, limit);
184
+ if (q.tags && q.tags.length > 0) {
185
+ const want = new Set(q.tags);
186
+ out = out.filter((r) => r.tags.some((t) => want.has(t)));
187
+ }
188
+ return out;
189
+ }
117
190
  return {
118
- async put(rec) {
119
- putRecord(rec);
191
+ async put(rec, opts) {
192
+ putRecord(rec, opts);
120
193
  },
121
194
  async get(id) {
122
195
  return getById(id);
@@ -145,65 +218,57 @@ export function sqliteMemoryStore(opts) {
145
218
  }
146
219
  return records;
147
220
  }
148
- // Ranked path — see docs/superpowers/specs/2026-07-05-smarter-recall-design.md.
149
- const rawPool = opts.recall?.candidatePool;
150
- const pool = typeof rawPool === "number" && Number.isFinite(rawPool) && rawPool > 0
151
- ? Math.floor(rawPool)
152
- : DEFAULT_CANDIDATE_POOL;
153
- const placeholders = terms.map(() => "?").join(",");
154
- // 1) Candidate pool: rows matching ≥1 query token, newest first (pool
155
- // truncation by recency is deterministic).
156
- const candidateRows = db
157
- .prepare(`SELECT m.* FROM memories m WHERE ${baseSql}
158
- AND m.id IN (SELECT memory_id FROM memory_tokens WHERE token IN (${placeholders}))
159
- ORDER BY m.updated_at DESC, m.id ASC LIMIT ?`)
160
- .all(...baseParams, ...terms, pool);
161
- const candidates = candidateRows.map(rowToRecord);
162
- if (candidates.length === 0)
163
- return [];
164
- // 2) Corpus stats, computed live (nothing cached → nothing to go stale).
165
- const corpusSize = db.prepare(`SELECT COUNT(*) AS n FROM memories m WHERE ${baseSql}`).get(...baseParams).n;
166
- const dfRows = db
167
- .prepare(`SELECT t.token AS token, COUNT(DISTINCT t.memory_id) AS df
168
- FROM memory_tokens t JOIN memories m ON m.id = t.memory_id
169
- WHERE ${baseSql} AND t.token IN (${placeholders}) GROUP BY t.token`)
170
- .all(...baseParams, ...terms);
171
- const dfByToken = new Map(dfRows.map((r) => [r.token, r.df]));
172
- // 3) Score. Candidate token sets are recomputed via the same helper
173
- // reindex() uses, so they are guaranteed consistent with the table.
174
- // Pool is updated_at-DESC ordered, so candidates[0] is the newest —
175
- // the data-derived reference when the caller supplies no clock.
176
- const referenceNow = q.now ?? candidates[0]?.updatedAt ?? "";
177
- const scored = candidates.map((record) => ({
178
- record,
179
- score: scoreMemory({
180
- memoryTokens: new Set(tokensFor(record)),
181
- queryTokens: terms,
182
- dfByToken,
183
- corpusSize,
184
- updatedAt: record.updatedAt,
185
- confidence: record.confidence,
186
- referenceNow,
187
- ...(opts.recall ? { options: opts.recall } : {}),
188
- }),
189
- }));
190
- // 4) Sort (score DESC, updated_at DESC, id ASC — stable) and page.
191
- scored.sort((a, b) => b.score - a.score ||
192
- cmp(b.record.updatedAt, a.record.updatedAt) ||
193
- cmp(a.record.id, b.record.id));
194
- let records = scored.slice(0, limit).map((s) => s.record);
195
- // 5) Tag post-filter on the returned page — today's semantics, unchanged.
196
- if (q.tags && q.tags.length > 0) {
197
- const want = new Set(q.tags);
198
- records = records.filter((r) => r.tags.some((t) => want.has(t)));
221
+ // Hybrid path — active only when the caller supplies a query embedding.
222
+ // Keyword vector-nearest, RRF-fused, then a bounded recency/confidence
223
+ // multiplier. See docs/superpowers/specs/2026-07-06-vector-recall-design.md.
224
+ if (q.queryEmbedding && q.embedderId) {
225
+ const v = q.vector ?? opts.vector ?? {};
226
+ const vectorK = typeof v.vectorK === "number" && Number.isFinite(v.vectorK) && v.vectorK > 0
227
+ ? Math.floor(v.vectorK)
228
+ : DEFAULT_VECTOR_K;
229
+ // Keyword-ranked records: reuse the ranked pool, ordered by relevance ONLY.
230
+ const kwRecords = rankKeyword(q, baseSql, baseParams, terms, {
231
+ relevance: 1,
232
+ recency: 0,
233
+ confidence: 0,
234
+ });
235
+ // Vector-ranked records: brute-force cosine over rows with a matching
236
+ // embedder tag and a non-null embedding, cosine-sorted then sliced to K.
237
+ const vecRows = db
238
+ .prepare(`SELECT m.id AS id, m.embedding AS embedding FROM memories m
239
+ WHERE ${baseSql} AND m.embedding_model = ? AND m.embedding IS NOT NULL`)
240
+ .all(...baseParams, q.embedderId);
241
+ const queryEmbedding = q.queryEmbedding;
242
+ const vectorRanked = vecRows
243
+ .map((r) => {
244
+ const emb = new Float32Array(r.embedding.buffer.slice(r.embedding.byteOffset, r.embedding.byteOffset + r.embedding.byteLength));
245
+ return { id: r.id, sim: cosineSimilarity(queryEmbedding, emb) };
246
+ })
247
+ .sort((a, b) => b.sim - a.sim || cmp(a.id, b.id))
248
+ .slice(0, vectorK)
249
+ .map((r) => getById(r.id))
250
+ .filter((r) => r !== null);
251
+ // One half-life knob: fall back to the shared recall tuning so a
252
+ // configured recall.recencyHalfLifeMs governs hybrid recency too.
253
+ const recencyHalfLifeMs = v.recencyHalfLifeMs ?? opts.recall?.recencyHalfLifeMs;
254
+ return pageAndTagFilter(fuseHybrid({
255
+ keywordRanked: kwRecords,
256
+ vectorRanked,
257
+ now: q.now,
258
+ options: {
259
+ ...v,
260
+ ...(recencyHalfLifeMs !== undefined ? { recencyHalfLifeMs } : {}),
261
+ },
262
+ }), limit, q);
199
263
  }
200
- return records;
264
+ // Ranked path — see docs/superpowers/specs/2026-07-05-smarter-recall-design.md.
265
+ return pageAndTagFilter(rankKeyword(q, baseSql, baseParams, terms), limit, q);
201
266
  },
202
267
  async update(id, patch) {
203
268
  const current = getById(id);
204
269
  if (!current)
205
270
  throw new Error(`memory not found: ${id}`);
206
- putRecord({ ...current, ...patch, id });
271
+ putRecord({ ...current, ...patch, id }, getEmbeddingRow(id));
207
272
  },
208
273
  async supersede(id, bySupersedingId) {
209
274
  if (!getById(id))
@@ -1 +1 @@
1
- {"fileNames":["../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2025.float16.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/namespace.ts","../src/types.ts","../src/reconcile.ts","../src/score.ts","../src/tokenize.ts","../src/sqlite-store.ts","../src/index.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/web-globals/blob.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/web-globals/console.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/web-globals/crypto.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/web-globals/encoding.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/utility.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/header.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/readable.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/fetch.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/formdata.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/connector.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/client-stats.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/client.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/errors.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/pool.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/handlers.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/round-robin-pool.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/h2c-client.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/agent.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/dispatcher1-wrapper.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/mock-call-history.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/snapshot-agent.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/socks5-proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/api.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/cache-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/util.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/cookies.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/patch.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/websocket.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/eventsource.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/content-type.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/cache.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/index.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/web-globals/importmeta.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/web-globals/messaging.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/web-globals/performance.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/web-globals/timers.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/web-globals/url.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/ffi.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/inspector/promises.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/path/posix.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/path/win32.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/quic.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/sea.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/sqlite.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/stream/iter.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/test/reporters.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/util/types.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/zlib/iter.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/index.d.ts"],"fileIdsList":[[68,130,131,133,141,146,149,151,152,153,166],[68,132,133,141,146,149,151,152,153,166],[133,141,146,149,151,152,153,166],[68,133,141,146,149,151,152,153,166,175],[68,133,134,139,141,144,146,149,151,152,153,155,166,171,184],[68,133,134,135,141,144,146,149,151,152,153,166],[68,133,136,141,146,149,151,152,153,166,185],[68,133,137,138,141,146,149,151,152,153,157,166],[68,133,138,141,146,149,151,152,153,166,171,181],[68,133,139,141,144,146,149,151,152,153,155,166],[68,132,133,140,141,146,149,151,152,153,166],[68,133,141,142,146,149,151,152,153,166],[68,133,141,143,144,146,149,151,152,153,166],[68,132,133,141,144,146,149,151,152,153,166],[68,133,141,146,149,151,152,153,166],[68,133,141,144,146,147,149,151,152,153,166,171,184],[68,133,141,144,146,147,149,151,152,153,166,171,173,175],[68,120,133,141,144,146,148,149,151,152,153,155,166,171,184],[68,133,141,144,146,148,149,151,152,153,155,166,171,181,184],[68,133,141,146,148,149,150,151,152,153,166,171,181,184],[67,68,69,70,71,72,73,74,75,76,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192],[68,133,141,144,146,149,151,152,153,166],[68,133,141,146,149,151,153,166],[68,133,141,146,149,151,152,153,154,166,184],[68,133,141,144,146,149,151,152,153,155,166,171],[68,133,141,146,149,151,152,153,157,166],[68,133,141,146,149,151,152,153,158,166],[68,133,141,144,146,149,151,152,153,161,166],[68,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191],[68,133,141,146,149,151,152,153,163,166],[68,133,141,146,149,151,152,153,164,166],[68,133,138,141,146,149,151,152,153,155,166,175],[68,133,141,144,146,149,151,152,153,166,167],[68,133,141,146,149,151,152,153,166,168,185,188],[68,133,141,144,146,149,151,152,153,166,171,173,174,175],[68,133,141,146,149,151,152,153,166,172,175],[68,133,141,144,146,149,151,152,153,166,171,173],[68,133,141,144,146,149,151,152,153,166,171,174,175],[68,133,141,146,149,151,152,153,166,175,185],[68,133,141,146,149,151,152,153,166,176],[68,130,133,141,146,149,151,152,153,166,171,178,184],[68,133,141,146,149,151,152,153,166,171,177],[68,133,141,144,146,149,151,152,153,166,179,180],[68,133,141,146,149,151,152,153,166,179,180],[68,133,138,141,146,149,151,152,153,155,166,171,181],[68,133,141,146,149,151,152,153,166,182],[68,133,141,146,149,151,152,153,155,166,183],[68,133,141,146,148,149,151,152,153,164,166,184],[68,133,141,146,149,151,152,153,166,185,186],[68,133,138,141,146,149,151,152,153,166,186],[68,133,141,146,149,151,152,153,166,171,187],[68,133,141,146,149,151,152,153,154,166,188],[68,133,141,146,149,151,152,153,166,189],[68,133,136,141,146,149,151,152,153,166],[68,133,138,141,146,149,151,152,153,166],[68,133,141,146,149,151,152,153,166,185],[68,120,133,141,146,149,151,152,153,166],[68,133,141,146,149,151,152,153,166,184],[68,133,141,146,149,151,152,153,166,190],[68,133,141,146,149,151,152,153,161,166],[68,133,141,146,149,151,152,153,166,180],[68,120,133,141,144,146,147,149,151,152,153,161,166,171,175,184,187,188,190],[68,133,141,146,149,151,152,153,166,171,191],[68,133,141,146,149,151,152,153,166,173,192],[68,83,86,89,90,133,141,146,149,151,152,153,166,184],[68,86,133,141,146,149,151,152,153,166,171,184],[68,86,90,133,141,146,149,151,152,153,166,184],[68,133,141,146,149,151,152,153,166,171],[68,80,133,141,146,149,151,152,153,166],[68,84,133,141,146,149,151,152,153,166],[68,82,83,86,133,141,146,149,151,152,153,166,184],[68,133,141,146,149,151,152,153,155,166,181],[68,133,141,146,149,151,152,153,166,193],[68,80,133,141,146,149,151,152,153,166,193],[68,82,86,133,141,146,149,151,152,153,155,166,184],[68,77,78,79,81,85,133,141,144,146,149,151,152,153,166,171,184],[68,86,133,141,146,149,151,152,153,166],[68,86,95,104,133,141,146,149,151,152,153,166],[68,78,84,133,141,146,149,151,152,153,166],[68,86,114,115,133,141,146,149,151,152,153,166],[68,78,81,86,133,141,146,149,151,152,153,166,175,184,193],[68,82,86,133,141,146,149,151,152,153,166,184],[68,77,133,141,146,149,151,152,153,166],[68,80,81,82,84,85,86,87,88,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,115,116,117,118,119,133,141,146,149,151,152,153,166],[68,86,107,110,133,141,146,149,151,152,153,166],[68,86,95,97,98,133,141,146,149,151,152,153,166],[68,84,86,97,99,133,141,146,149,151,152,153,166],[68,85,133,141,146,149,151,152,153,166],[68,78,80,86,133,141,146,149,151,152,153,166],[68,86,90,97,99,133,141,146,149,151,152,153,166],[68,90,133,141,146,149,151,152,153,166],[68,84,86,89,133,141,146,149,151,152,153,166,184],[68,78,82,86,95,133,141,146,149,151,152,153,166],[68,86,107,133,141,146,149,151,152,153,166],[68,99,133,141,146,149,151,152,153,166],[68,78,82,86,90,133,141,146,149,151,152,153,166],[68,80,86,114,133,141,146,149,151,152,153,166,175,190,193],[60,61,62,63,64,65,68,133,141,146,149,151,152,153,166],[61,68,133,141,146,149,151,152,153,166],[61,63,64,68,133,141,146,149,151,152,153,158,166,170]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"f128dae7c44d8f35ee42e0a437000a57c9f06cc04f8b4fb42eebf44954d53dc8","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ecb8e347cb6b2a8927c09b86263663289418df375f5e68e11a0ae683776978f","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc65254f6bd700c553da8b46cc68b05efbadcaab6ffd7c42985a84c6e501a609","signature":"f4f9a84e76cfb956db79492de761e713ba1c1f835861a8caa676779b8b46cc2d","impliedFormat":99},{"version":"ac92021b26fdccc067e8414e8d9a75d38175d02897eec2f4bc28278e4cdafd9d","signature":"9b5e9c95327028f2b7539657052592378c2682b91743c3729b6fd58ffaac2921","impliedFormat":99},{"version":"4607b706100a168640643cc7def454ae02912ddcddddef5ca4e4f72434688eb3","signature":"6c41244b65bffde345227d8f6951040558c9e2a7a4bda6a5a18317456455eb17","impliedFormat":99},{"version":"14e46b554644086887430bc6323c34638962ebe0efb088759ef110cff50c0f8f","signature":"e840dbe567625b79739139a2b85416c0168f01dba124905432f4252df79fb4bb","impliedFormat":99},{"version":"908e1d6768cb7ef1c2311bdd015e4b6ef1a4e96b6cf0f0f56d8aca2a2d278afc","signature":"44470dc7afb8deb244e5081b7bde2bbb1ff05897814092ffe4220147d43b729f","impliedFormat":99},{"version":"de8d86224e2e8ae6fa7e15293b9c3dbcf720e6a8678904c44651a7c3c596c9c4","signature":"d1f94bb39181095d94aaff5730296f143393f113fe794486320604d7d064690a","impliedFormat":99},{"version":"d74645d6b78c7326622b489260b71b3acd4c2cdb3bc8a1e9ce70a9e3fd46130e","signature":"aaeb7e3cb900b7af8cac1a7ffbc7689ec5d4f94d2280791649cb165dc69713ea","impliedFormat":99},{"version":"0ccdaa19852d25ecd84eec365c3bfa16e7859cadecf6e9ca6d0dbbbee439743f","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc2110f7decca6bfb9392e30421cfa1436479e4a6756e8fec6cbc22625d4f881","affectsGlobalScope":true,"impliedFormat":1},{"version":"f53a7652392cf26ebbe4e29fd0672aa87c93bd6d0241289c13fab87b9ac35c8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5e01375c9e124a83b52ee4b3244ed1a4d214a6cfb54ac73e164a823a4a7860a","affectsGlobalScope":true,"impliedFormat":1},{"version":"f90ae2bbce1505e67f2f6502392e318f5714bae82d2d969185c4a6cecc8af2fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b58e207b93a8f1c88bbf2a95ddc686ac83962b13830fe8ad3f404ffc7051fb4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1fefabcb2b06736a66d2904074d56268753654805e829989a46a0161cd8412c5","affectsGlobalScope":true,"impliedFormat":1},{"version":"b00a630557d1622ad312633bdbfbdb9c6b7220d948dca9f899db30679f160074","affectsGlobalScope":true,"impliedFormat":1},{"version":"c18a99f01eb788d849ad032b31cafd49de0b19e083fe775370834c5675d7df8e","affectsGlobalScope":true,"impliedFormat":1},{"version":"5247874c2a23b9a62d178ae84f2db6a1d54e6c9a2e7e057e178cc5eea13757fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"88809d6c1b9c78d04a133646a6feb926def05a8774c308c7c93bc32ee163d271","impliedFormat":1},{"version":"156a859e21ef3244d13afeeba4e49760a6afa035c149dda52f0c45ea8903b338","impliedFormat":1},{"version":"3ac40516c33b87f751f7507346933081a26cdb8a3e11a6b3aa07d23f803c85db","impliedFormat":1},{"version":"615754924717c0b1e293e083b83503c0a872717ad5aa60ed7f1a699eb1b4ea5c","impliedFormat":1},{"version":"14e9acf826baba0ef4b5665704084896e7bcc06f65a9ab13af7e93d27d6b7069","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"829bc57ee8f287b490ab5bbc5a962fca57e432c1e38ec680ecd3ecaf12800613","impliedFormat":1},{"version":"eec76bf6b9346f3f95fa402621b889489e96930e72295b0369022f332e9b4a6a","impliedFormat":1},{"version":"3a3ff14da53d5013f3e6d8c4ad55225e3649c08786c4421ce639c00d8d589b7d","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"38004e6801340cb890afb8cb5a9fc8972297e7f88ab94026e4b0b3c61fb32f8a","impliedFormat":1},{"version":"d243db6b25788f439e7e2f03c05688e92f46764351673bb0e7b2f3631232e186","impliedFormat":1},{"version":"4d327f7d72ad0918275cea3eee49a6a8dc8114ae1d5b7f3f5d0774de75f7439a","impliedFormat":1},{"version":"149f9a9e7f04e67afa0e2a49fc0ff421035c01d6b793cfcae7d2e9f6819431e2","impliedFormat":1},{"version":"e8a9dfa4c75ef6d25df8b40eaa9c31e0a69452aaf2ced4a3f4215dbdbaa876f4","impliedFormat":1},{"version":"a70af845a2eb9dd6e2723e319e14ea7fb28b129ec1361c21509b49305448c323","impliedFormat":1},{"version":"b53dc572d4f187904207ae1166652de47aab8eeb00c254d009cb226863076b56","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"f501234c5aeeeb5d7659412335227466aaacf30b952372d60afeb21c02c96348","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"9ac977503f15bf13ca7c82ad9a32a782f42d43e474824e8b3bffe228fd5f2639","impliedFormat":1},{"version":"8b91ff5bb912be3ea213cbcf0075aace1f5d4ff249a0d227ed673868cb7bfabc","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"8aee8b6d4f9f62cf3776cda1305fb18763e2aade7e13cea5bbe699112df85214","impliedFormat":1},{"version":"98498b101803bb3dde9f76a56e65c14b75db1cc8bec5f4db72be541570f74fc5","impliedFormat":1},{"version":"7cb4f431a4591b0e23002bed805dc871a874dfed6b9a3994dce68a6df73e6739","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"436d7b4543b340b0f3eef4310d524242e41369b9652aa9c70428767c4dcac455","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"12950411eeab8563b349cb7959543d92d8d02c289ed893d78499a19becb5a8cc","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"e99963ae1e3a48ca7a7958c02f3e88bb963eb7978c28b68ae6b8c9f03309d83c","impliedFormat":1},{"version":"c3f5289820990ab66b70c7fb5b63cb674001009ff84b13de40619619a9c8175f","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3275d55fac10b799c9546804126239baf020d220136163f763b55a74e50e750","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa68a0a3b7cb32c00e39ee3cd31f8f15b80cac97dce51b6ee7fc14a1e8deb30b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c36e755bced82df7fb6ce8169265d0a7bb046ab4e2cb6d0da0cb72b22033e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"7a93de4ff8a63bafe62ba86b89af1df0ccb5e40bb85b0c67d6bbcfdcf96bf3d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"90e85f9bc549dfe2b5749b45fe734144e96cd5d04b38eae244028794e142a77e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e0a5deeb610b2a50a6350bd23df6490036a1773a8a71d70f2f9549ab009e67ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"594ae90cacd813fa392ff80d2e0a8eff4e41f4a136329a940e321399dd8895b4","impliedFormat":1},{"version":"d1f333ade8ff35a409b4984e1f11956fe11c61855b0c7e9b59f0313e48b40c4a","impliedFormat":1},{"version":"0224aa4b3464895d69c413a640a19ac2166778a74eb5eb3b36b021c72d42b274","impliedFormat":1},{"version":"2e6fca0024dd8a076a886d9ec031a936ea59ad878a25b944820495d92f8381dd","affectsGlobalScope":true,"impliedFormat":1},{"version":"177459cba484e2f1e08872a3d2fdbca3162d9d43ca5ec9dc0c946835b55f74be","impliedFormat":1},{"version":"2fbf504c4791f9d32cd766cfe6b605bcda63289b925401953a7900db9af85348","impliedFormat":1},{"version":"ed0fb633cae35948d9e144004299a4bdf1ab912667c787b7fbffcd6d8c7b92a2","impliedFormat":1},{"version":"1678b04557dca52feab73cc67610918a7f5e25bfdba3e7fa081acd625d93106d","impliedFormat":1},{"version":"0e312260895afc9de021ce9de3c8a857392f0ccc7f19d3a030e4d6136a4ac91e","impliedFormat":1},{"version":"2ea729503db9793f2691162fec3dd1118cab62e96d025f8eeb376d43ec293395","impliedFormat":1},{"version":"98fc7231d6c846a8ed19bdef026ddffe5e2182cc818be74899287421ad370a87","impliedFormat":1},{"version":"3a40b5d34e014017539acb92f04cf2bc0aa71e49efb33c66039df93be97842a1","impliedFormat":1},{"version":"2bc7aa4fba46df0bd495425a7c8201437a7d465f83854fac859df2d67f664df3","impliedFormat":1},{"version":"41d17e1ad9a002feb11c8cdd2777e5bbc0cdb1e3f595d237e4dded0b6949983b","impliedFormat":1},{"version":"8c7e618c2a91ea7f6b5cca272a295864e92c16413be8fc56a943e8c7d5320011","affectsGlobalScope":true,"impliedFormat":1},{"version":"79a85c64bf083c5f4dd7074e804d1000c0c47301b84d48417a224decd681be30","impliedFormat":1},{"version":"9f1e3a76d5f509b5579e567de522b402cb79e201c4f47dcd014451c0580b290d","impliedFormat":1},{"version":"2ddab5b6932f9a6327f71baeb82a1d6b0824e0d23a4c7a5de5d355857113c22f","impliedFormat":1},{"version":"70f3f8b2dcaf7388f26731a59c79437813e3620b594903525a303cb2a7901016","impliedFormat":1},{"version":"62e8f884c3bc6dff6189b6e662ebe8b238a645938f2df7a97b8a82fca56773a4","impliedFormat":1},{"version":"2c2bdaa1d8ead9f68628d6d9d250e46ee8e81aa4898b4769a36956ae15e060fe","impliedFormat":1},{"version":"57a0d1b3d59063d4af2d3f8aac27cfe3c20a0f5d1faf0f8598ccf0b779637939","impliedFormat":1},{"version":"5ff4433a2deae4f85ab1377e90a7554ce6b47ae51c69a84ca30a6e22fae85834","impliedFormat":1},{"version":"82b91e4e42e6c41bc7fc1b6c2dc5eba6a2ba98375eb1f210e6ff6bba2d54177e","impliedFormat":1},{"version":"97234c5303866576f913d0ccae7d58d6322d9e803c7bf1228a3fda46ab8087b2","affectsGlobalScope":true,"impliedFormat":1},{"version":"93ecf87143cac7b9d05cffc1d6bdc075b7e4fdd48ff05f1fad85043f6ae678d3","impliedFormat":1},{"version":"4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","impliedFormat":1},{"version":"6f200afcb82b3e9a54bed6db23f2edf2508cd266801257312c0f124b47f2bdb9","impliedFormat":1},{"version":"ec501101c2a96133a6c695f934c8f6642149cc728571b29cbb7b770984c1088e","impliedFormat":1},{"version":"b214ebcf76c51b115453f69729ee8aa7b7f8eccdae2a922b568a45c2d7ff52f7","impliedFormat":1},{"version":"429c9cdfa7d126255779efd7e6d9057ced2d69c81859bbab32073bad52e9ba76","impliedFormat":1},{"version":"39338f84e8c4d0e3de7b3c4a7024fb3925f42100eed5cbe73be58902799dff4d","impliedFormat":1},{"version":"fbf83eb33bf5e329527add92acc65da59323876c702ddccf5f4bf1e848c92369","affectsGlobalScope":true,"impliedFormat":1},{"version":"230763250f20449fa7b3c9273e1967adb0023dc890d4be1553faca658ee65971","impliedFormat":1},{"version":"c3e9078b60cb329d1221f5878e88cecfa3e74460550e605a58fcfb41a66029ff","impliedFormat":1},{"version":"515318bc6e656f75e9e34db625316bfafbafd800dfb1642574af93735a24ad38","impliedFormat":1},{"version":"441b9bb09013654aa3d050e68b06464d8959b473e85868249d9d18f692acd35b","impliedFormat":1},{"version":"bc18a1991ba681f03e13285fa1d7b99b03b67ee671b7bc936254467177543890","impliedFormat":1},{"version":"55246f15e33ff1e2e9e679b25fa9790a48db55dc63d567fe25fac8b6a0efe911","impliedFormat":1},{"version":"fa94bbf532b7af8f394b95fa310980d6e20bd2d4c871c6a6cb9f70f03750a44b","impliedFormat":1},{"version":"03b7804d69cecd66850abada858ed6d4a59001f8c228a9fe212306ee860a4ff6","impliedFormat":1},{"version":"5b26c4dd672d88336bb929787c9bfb55119e80ba89ec6dc923da1c063892843e","affectsGlobalScope":true,"impliedFormat":1},{"version":"7fa2214bb0d64701bc6f9ce8cde2fd2ff8c571e0b23065fa04a8a5a6beb91511","impliedFormat":1},{"version":"987fd1f85dc36f4b2c927aa3db814ac6b452e970f4f55d24ed4ecbb7df09be00","impliedFormat":1},{"version":"f12624a4a8d042b68914eac1b0a16571fc1c523173fcdf2517c65d191bd5a86c","impliedFormat":1},{"version":"b4769767f13a1692a66186e01c3aa186ff808d5ff72ed36eda8c37738fb2ac92","impliedFormat":1},{"version":"841983e39bd4cbb463be385e92fda11057cab368bf27100a801c492f1d86cbaa","impliedFormat":1},{"version":"683edfc4f2b411ebe04729cb6dc09ddd26fbac2c57771a6d7c55964af776e176","impliedFormat":1},{"version":"1ec3f3a5f04cc42df33274fbe5c0937d9a9e06f249a7a26288d7d54f0763ffd4","impliedFormat":1},{"version":"e4156ddb25aa0e3b5303d372f26957b36778f0f6bbd4326359269873295e3058","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc1b433a84cae05ddc5672d4823170af78606ad21ecef60dbc4570190cbf1357","impliedFormat":1},{"version":"e47f532d6e1617833f13a5b0710c0089d402c89c2f2b54f324e5a20e418d287a","impliedFormat":1},{"version":"7f78cfb2b343838612c192cb251746e3a7c62ac7675726a47e130d9b213f6580","impliedFormat":1},{"version":"201db9cf1687fab1adf5282fcba861f382b32303dc4f67c89d59655e78a25461","impliedFormat":1},{"version":"8e2577e7262051fd3c5bd6ca2b2056d358ff8853565720f92455860824c25188","impliedFormat":1},{"version":"7ec8d7d483f7394f9da611b10d3a0e402f76ff5c991261e6ce43a15f81ca4258","impliedFormat":1},{"version":"bb9dbb4b2ad81e3e71ec5ba4314973718555b9d04ba2a17dfbf875efecb8e2c0","impliedFormat":1},{"version":"82c3cc48c692438e41b94d936b8acd75ca97b18c50fa1af8a0715eb9d07d18cd","impliedFormat":1},{"version":"045a210189ec63c5488410b33f9fca53d77d051599d0d6506d8048551399c5f3","impliedFormat":1},{"version":"99ab6d0d660ce4d21efb52288a39fd35bb3f556980ec5463b1ae8f304a3bbc85","impliedFormat":1},{"version":"632c45ccb4cdc2c3a80c7a36a63dd7763016e59cac5e07bfb3e37e3548957028","impliedFormat":1},{"version":"c9a2daf6cd1eb854cd5b9e424247c5e306692055738c2effd35f7871d942b76e","impliedFormat":1},{"version":"afa1c49f8e559e413d57343339db857d2a8159435cf9cf7d4deb41718fff1b88","impliedFormat":1},{"version":"e50a7130339a951e6da9e968ed5521b0997a5b0479e148914087213839b5474c","impliedFormat":1}],"root":[[60,66]],"options":{"allowJs":false,"composite":true,"declaration":true,"declarationMap":true,"exactOptionalPropertyTypes":true,"module":199,"noUncheckedIndexedAccess":true,"outDir":"./","rootDir":"../src","skipLibCheck":true,"strict":true,"stripInternal":true,"target":9,"tsBuildInfoFile":"./tsconfig.tsbuildinfo"},"referencedMap":[[130,1],[131,1],[132,2],[68,3],[133,4],[134,5],[135,6],[136,7],[137,8],[138,9],[139,10],[140,11],[141,12],[142,12],[143,13],[144,14],[145,15],[146,16],[147,17],[69,15],[67,15],[148,18],[149,19],[150,20],[193,21],[151,22],[152,23],[153,22],[154,24],[155,25],[157,26],[158,27],[159,27],[160,27],[161,28],[162,29],[163,30],[164,31],[165,32],[166,33],[167,33],[168,34],[169,15],[170,15],[171,35],[172,36],[173,37],[174,38],[175,39],[176,40],[177,41],[178,42],[179,43],[180,44],[181,45],[182,46],[183,47],[184,48],[185,49],[186,50],[187,51],[188,52],[189,53],[70,22],[71,15],[72,54],[73,55],[74,15],[75,56],[76,15],[121,57],[122,58],[123,59],[124,59],[125,60],[126,15],[127,4],[128,61],[129,58],[190,62],[191,63],[192,64],[156,15],[58,15],[59,15],[11,15],[10,15],[2,15],[12,15],[13,15],[14,15],[15,15],[16,15],[17,15],[18,15],[19,15],[3,15],[20,15],[21,15],[4,15],[22,15],[26,15],[23,15],[24,15],[25,15],[27,15],[28,15],[29,15],[5,15],[30,15],[31,15],[32,15],[33,15],[6,15],[37,15],[34,15],[35,15],[36,15],[38,15],[7,15],[39,15],[44,15],[45,15],[40,15],[41,15],[42,15],[43,15],[8,15],[49,15],[46,15],[47,15],[48,15],[50,15],[9,15],[51,15],[52,15],[53,15],[55,15],[54,15],[56,15],[1,15],[57,15],[95,65],[109,66],[92,67],[110,68],[119,69],[83,70],[84,71],[82,72],[118,73],[113,74],[117,75],[86,76],[96,77],[106,78],[85,79],[116,80],[80,81],[81,74],[87,77],[88,15],[94,82],[91,77],[78,83],[120,84],[111,85],[99,86],[98,77],[100,87],[103,88],[97,89],[101,90],[114,73],[89,91],[90,92],[104,93],[79,68],[108,94],[107,77],[93,92],[102,95],[105,96],[112,15],[77,15],[115,97],[66,98],[60,15],[62,99],[63,15],[65,100],[64,15],[61,15]],"latestChangedDtsFile":"./index.d.ts","version":"6.0.2"}
1
+ {"fileNames":["../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.es2025.float16.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@6.0.2/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/score.ts","../src/tokenize.ts","../src/types.ts","../src/vector.ts","../src/hybrid.ts","../src/namespace.ts","../src/reconcile.ts","../src/sqlite-store.ts","../src/index.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/web-globals/blob.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/web-globals/console.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/web-globals/crypto.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/web-globals/encoding.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/utility.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/header.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/readable.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/fetch.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/formdata.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/connector.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/client-stats.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/client.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/errors.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/pool.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/handlers.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/round-robin-pool.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/h2c-client.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/agent.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/dispatcher1-wrapper.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/mock-call-history.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/snapshot-agent.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/socks5-proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/api.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/cache-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/util.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/cookies.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/patch.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/websocket.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/eventsource.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/content-type.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/cache.d.ts","../../../node_modules/.pnpm/undici-types@8.3.0/node_modules/undici-types/index.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/web-globals/importmeta.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/web-globals/messaging.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/web-globals/performance.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/web-globals/timers.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/web-globals/url.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/ffi.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/inspector/promises.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/path/posix.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/path/win32.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/quic.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/sea.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/sqlite.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/stream/iter.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/test/reporters.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/util/types.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/zlib/iter.d.ts","../../../node_modules/.pnpm/@types+node@26.1.0/node_modules/@types/node/index.d.ts"],"fileIdsList":[[70,132,133,135,143,148,151,153,154,155,168],[70,134,135,143,148,151,153,154,155,168],[135,143,148,151,153,154,155,168],[70,135,143,148,151,153,154,155,168,177],[70,135,136,141,143,146,148,151,153,154,155,157,168,173,186],[70,135,136,137,143,146,148,151,153,154,155,168],[70,135,138,143,148,151,153,154,155,168,187],[70,135,139,140,143,148,151,153,154,155,159,168],[70,135,140,143,148,151,153,154,155,168,173,183],[70,135,141,143,146,148,151,153,154,155,157,168],[70,134,135,142,143,148,151,153,154,155,168],[70,135,143,144,148,151,153,154,155,168],[70,135,143,145,146,148,151,153,154,155,168],[70,134,135,143,146,148,151,153,154,155,168],[70,135,143,148,151,153,154,155,168],[70,135,143,146,148,149,151,153,154,155,168,173,186],[70,135,143,146,148,149,151,153,154,155,168,173,175,177],[70,122,135,143,146,148,150,151,153,154,155,157,168,173,186],[70,135,143,146,148,150,151,153,154,155,157,168,173,183,186],[70,135,143,148,150,151,152,153,154,155,168,173,183,186],[69,70,71,72,73,74,75,76,77,78,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194],[70,135,143,146,148,151,153,154,155,168],[70,135,143,148,151,153,155,168],[70,135,143,148,151,153,154,155,156,168,186],[70,135,143,146,148,151,153,154,155,157,168,173],[70,135,143,148,151,153,154,155,159,168],[70,135,143,148,151,153,154,155,160,168],[70,135,143,146,148,151,153,154,155,163,168],[70,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193],[70,135,143,148,151,153,154,155,165,168],[70,135,143,148,151,153,154,155,166,168],[70,135,140,143,148,151,153,154,155,157,168,177],[70,135,143,146,148,151,153,154,155,168,169],[70,135,143,148,151,153,154,155,168,170,187,190],[70,135,143,146,148,151,153,154,155,168,173,175,176,177],[70,135,143,148,151,153,154,155,168,174,177],[70,135,143,146,148,151,153,154,155,168,173,175],[70,135,143,146,148,151,153,154,155,168,173,176,177],[70,135,143,148,151,153,154,155,168,177,187],[70,135,143,148,151,153,154,155,168,178],[70,132,135,143,148,151,153,154,155,168,173,180,186],[70,135,143,148,151,153,154,155,168,173,179],[70,135,143,146,148,151,153,154,155,168,181,182],[70,135,143,148,151,153,154,155,168,181,182],[70,135,140,143,148,151,153,154,155,157,168,173,183],[70,135,143,148,151,153,154,155,168,184],[70,135,143,148,151,153,154,155,157,168,185],[70,135,143,148,150,151,153,154,155,166,168,186],[70,135,143,148,151,153,154,155,168,187,188],[70,135,140,143,148,151,153,154,155,168,188],[70,135,143,148,151,153,154,155,168,173,189],[70,135,143,148,151,153,154,155,156,168,190],[70,135,143,148,151,153,154,155,168,191],[70,135,138,143,148,151,153,154,155,168],[70,135,140,143,148,151,153,154,155,168],[70,135,143,148,151,153,154,155,168,187],[70,122,135,143,148,151,153,154,155,168],[70,135,143,148,151,153,154,155,168,186],[70,135,143,148,151,153,154,155,168,192],[70,135,143,148,151,153,154,155,163,168],[70,135,143,148,151,153,154,155,168,182],[70,122,135,143,146,148,149,151,153,154,155,163,168,173,177,186,189,190,192],[70,135,143,148,151,153,154,155,168,173,193],[70,135,143,148,151,153,154,155,168,175,194],[70,85,88,91,92,135,143,148,151,153,154,155,168,186],[70,88,135,143,148,151,153,154,155,168,173,186],[70,88,92,135,143,148,151,153,154,155,168,186],[70,135,143,148,151,153,154,155,168,173],[70,82,135,143,148,151,153,154,155,168],[70,86,135,143,148,151,153,154,155,168],[70,84,85,88,135,143,148,151,153,154,155,168,186],[70,135,143,148,151,153,154,155,157,168,183],[70,135,143,148,151,153,154,155,168,195],[70,82,135,143,148,151,153,154,155,168,195],[70,84,88,135,143,148,151,153,154,155,157,168,186],[70,79,80,81,83,87,135,143,146,148,151,153,154,155,168,173,186],[70,88,135,143,148,151,153,154,155,168],[70,88,97,106,135,143,148,151,153,154,155,168],[70,80,86,135,143,148,151,153,154,155,168],[70,88,116,117,135,143,148,151,153,154,155,168],[70,80,83,88,135,143,148,151,153,154,155,168,177,186,195],[70,84,88,135,143,148,151,153,154,155,168,186],[70,79,135,143,148,151,153,154,155,168],[70,82,83,84,86,87,88,89,90,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,117,118,119,120,121,135,143,148,151,153,154,155,168],[70,88,109,112,135,143,148,151,153,154,155,168],[70,88,97,99,100,135,143,148,151,153,154,155,168],[70,86,88,99,101,135,143,148,151,153,154,155,168],[70,87,135,143,148,151,153,154,155,168],[70,80,82,88,135,143,148,151,153,154,155,168],[70,88,92,99,101,135,143,148,151,153,154,155,168],[70,92,135,143,148,151,153,154,155,168],[70,86,88,91,135,143,148,151,153,154,155,168,186],[70,80,84,88,97,135,143,148,151,153,154,155,168],[70,88,109,135,143,148,151,153,154,155,168],[70,101,135,143,148,151,153,154,155,168],[70,80,84,88,92,135,143,148,151,153,154,155,168],[70,82,88,116,135,143,148,151,153,154,155,168,177,192,195],[60,61,62,63,70,135,143,148,151,153,154,155,168],[60,61,62,63,64,65,66,67,70,135,143,148,151,153,154,155,168],[62,70,135,143,148,151,153,154,155,168],[60,61,62,63,64,70,135,143,148,151,153,154,155,160,168,172]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"f128dae7c44d8f35ee42e0a437000a57c9f06cc04f8b4fb42eebf44954d53dc8","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ecb8e347cb6b2a8927c09b86263663289418df375f5e68e11a0ae683776978f","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},{"version":"8032a2cfc308eaa926e62b1fb92bdcc6cabdd1c994e8d5100653c051d835c9b3","signature":"74c30adfb0f3a909182820aca209beafd6332c6b93c9640b65b31dea2cbc32ba","impliedFormat":99},{"version":"908e1d6768cb7ef1c2311bdd015e4b6ef1a4e96b6cf0f0f56d8aca2a2d278afc","signature":"44470dc7afb8deb244e5081b7bde2bbb1ff05897814092ffe4220147d43b729f","impliedFormat":99},{"version":"00039299df9cfbf6676df5505119ae047f355c18f89d01edbe2c5975cb9eac95","signature":"0194ecdea02609044a70fa6f08462ce5f721a2e8494bcaca4040803d47be25cf","impliedFormat":99},{"version":"b2703ab606613a5bc9a4f7c7b73b8295d77b656de0724b062740ac20ebb15a23","signature":"1d6b03d4d78df1f0cd72b90d21d478ac054cb0ab4b8ac18d9592a0db74737d91","impliedFormat":99},{"version":"41dc2b78affbf38c3f0f2417c4dc13557ab8ee3e512c00a455b265b414841b60","signature":"31ab76815f275005f10804e9a6b0facb6dcb079d9d8f756e97a9ceb5db90ae66","impliedFormat":99},{"version":"fa615393362e74c71091b4326a01caa8cdd9a045628596ae6943ae7f00d8405f","signature":"f4f9a84e76cfb956db79492de761e713ba1c1f835861a8caa676779b8b46cc2d","impliedFormat":99},{"version":"4607b706100a168640643cc7def454ae02912ddcddddef5ca4e4f72434688eb3","signature":"6c41244b65bffde345227d8f6951040558c9e2a7a4bda6a5a18317456455eb17","impliedFormat":99},{"version":"aa4eb262e0fcdb8372c2b6c744c7d18827d640e6e75c1c5db0ae3b9406ca8433","signature":"3c818a8cf8338e187bd0d2348d03f84e19489b12b26c51929d0b6276df4aec14","impliedFormat":99},{"version":"3cf21f30dc6d72ba1976fd98d42e40a325734089d960e9d695dff3657c1b31f6","signature":"642626eabf3dcec3ae2b1ddab277551fff56351b520ba1c06c6686e69ff4564b","impliedFormat":99},{"version":"0ccdaa19852d25ecd84eec365c3bfa16e7859cadecf6e9ca6d0dbbbee439743f","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc2110f7decca6bfb9392e30421cfa1436479e4a6756e8fec6cbc22625d4f881","affectsGlobalScope":true,"impliedFormat":1},{"version":"f53a7652392cf26ebbe4e29fd0672aa87c93bd6d0241289c13fab87b9ac35c8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5e01375c9e124a83b52ee4b3244ed1a4d214a6cfb54ac73e164a823a4a7860a","affectsGlobalScope":true,"impliedFormat":1},{"version":"f90ae2bbce1505e67f2f6502392e318f5714bae82d2d969185c4a6cecc8af2fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b58e207b93a8f1c88bbf2a95ddc686ac83962b13830fe8ad3f404ffc7051fb4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1fefabcb2b06736a66d2904074d56268753654805e829989a46a0161cd8412c5","affectsGlobalScope":true,"impliedFormat":1},{"version":"b00a630557d1622ad312633bdbfbdb9c6b7220d948dca9f899db30679f160074","affectsGlobalScope":true,"impliedFormat":1},{"version":"c18a99f01eb788d849ad032b31cafd49de0b19e083fe775370834c5675d7df8e","affectsGlobalScope":true,"impliedFormat":1},{"version":"5247874c2a23b9a62d178ae84f2db6a1d54e6c9a2e7e057e178cc5eea13757fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"88809d6c1b9c78d04a133646a6feb926def05a8774c308c7c93bc32ee163d271","impliedFormat":1},{"version":"156a859e21ef3244d13afeeba4e49760a6afa035c149dda52f0c45ea8903b338","impliedFormat":1},{"version":"3ac40516c33b87f751f7507346933081a26cdb8a3e11a6b3aa07d23f803c85db","impliedFormat":1},{"version":"615754924717c0b1e293e083b83503c0a872717ad5aa60ed7f1a699eb1b4ea5c","impliedFormat":1},{"version":"14e9acf826baba0ef4b5665704084896e7bcc06f65a9ab13af7e93d27d6b7069","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"829bc57ee8f287b490ab5bbc5a962fca57e432c1e38ec680ecd3ecaf12800613","impliedFormat":1},{"version":"eec76bf6b9346f3f95fa402621b889489e96930e72295b0369022f332e9b4a6a","impliedFormat":1},{"version":"3a3ff14da53d5013f3e6d8c4ad55225e3649c08786c4421ce639c00d8d589b7d","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"38004e6801340cb890afb8cb5a9fc8972297e7f88ab94026e4b0b3c61fb32f8a","impliedFormat":1},{"version":"d243db6b25788f439e7e2f03c05688e92f46764351673bb0e7b2f3631232e186","impliedFormat":1},{"version":"4d327f7d72ad0918275cea3eee49a6a8dc8114ae1d5b7f3f5d0774de75f7439a","impliedFormat":1},{"version":"149f9a9e7f04e67afa0e2a49fc0ff421035c01d6b793cfcae7d2e9f6819431e2","impliedFormat":1},{"version":"e8a9dfa4c75ef6d25df8b40eaa9c31e0a69452aaf2ced4a3f4215dbdbaa876f4","impliedFormat":1},{"version":"a70af845a2eb9dd6e2723e319e14ea7fb28b129ec1361c21509b49305448c323","impliedFormat":1},{"version":"b53dc572d4f187904207ae1166652de47aab8eeb00c254d009cb226863076b56","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"f501234c5aeeeb5d7659412335227466aaacf30b952372d60afeb21c02c96348","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"9ac977503f15bf13ca7c82ad9a32a782f42d43e474824e8b3bffe228fd5f2639","impliedFormat":1},{"version":"8b91ff5bb912be3ea213cbcf0075aace1f5d4ff249a0d227ed673868cb7bfabc","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"8aee8b6d4f9f62cf3776cda1305fb18763e2aade7e13cea5bbe699112df85214","impliedFormat":1},{"version":"98498b101803bb3dde9f76a56e65c14b75db1cc8bec5f4db72be541570f74fc5","impliedFormat":1},{"version":"7cb4f431a4591b0e23002bed805dc871a874dfed6b9a3994dce68a6df73e6739","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"436d7b4543b340b0f3eef4310d524242e41369b9652aa9c70428767c4dcac455","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"12950411eeab8563b349cb7959543d92d8d02c289ed893d78499a19becb5a8cc","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"e99963ae1e3a48ca7a7958c02f3e88bb963eb7978c28b68ae6b8c9f03309d83c","impliedFormat":1},{"version":"c3f5289820990ab66b70c7fb5b63cb674001009ff84b13de40619619a9c8175f","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3275d55fac10b799c9546804126239baf020d220136163f763b55a74e50e750","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa68a0a3b7cb32c00e39ee3cd31f8f15b80cac97dce51b6ee7fc14a1e8deb30b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c36e755bced82df7fb6ce8169265d0a7bb046ab4e2cb6d0da0cb72b22033e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"7a93de4ff8a63bafe62ba86b89af1df0ccb5e40bb85b0c67d6bbcfdcf96bf3d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"90e85f9bc549dfe2b5749b45fe734144e96cd5d04b38eae244028794e142a77e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e0a5deeb610b2a50a6350bd23df6490036a1773a8a71d70f2f9549ab009e67ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"594ae90cacd813fa392ff80d2e0a8eff4e41f4a136329a940e321399dd8895b4","impliedFormat":1},{"version":"d1f333ade8ff35a409b4984e1f11956fe11c61855b0c7e9b59f0313e48b40c4a","impliedFormat":1},{"version":"0224aa4b3464895d69c413a640a19ac2166778a74eb5eb3b36b021c72d42b274","impliedFormat":1},{"version":"2e6fca0024dd8a076a886d9ec031a936ea59ad878a25b944820495d92f8381dd","affectsGlobalScope":true,"impliedFormat":1},{"version":"177459cba484e2f1e08872a3d2fdbca3162d9d43ca5ec9dc0c946835b55f74be","impliedFormat":1},{"version":"2fbf504c4791f9d32cd766cfe6b605bcda63289b925401953a7900db9af85348","impliedFormat":1},{"version":"ed0fb633cae35948d9e144004299a4bdf1ab912667c787b7fbffcd6d8c7b92a2","impliedFormat":1},{"version":"1678b04557dca52feab73cc67610918a7f5e25bfdba3e7fa081acd625d93106d","impliedFormat":1},{"version":"0e312260895afc9de021ce9de3c8a857392f0ccc7f19d3a030e4d6136a4ac91e","impliedFormat":1},{"version":"2ea729503db9793f2691162fec3dd1118cab62e96d025f8eeb376d43ec293395","impliedFormat":1},{"version":"98fc7231d6c846a8ed19bdef026ddffe5e2182cc818be74899287421ad370a87","impliedFormat":1},{"version":"3a40b5d34e014017539acb92f04cf2bc0aa71e49efb33c66039df93be97842a1","impliedFormat":1},{"version":"2bc7aa4fba46df0bd495425a7c8201437a7d465f83854fac859df2d67f664df3","impliedFormat":1},{"version":"41d17e1ad9a002feb11c8cdd2777e5bbc0cdb1e3f595d237e4dded0b6949983b","impliedFormat":1},{"version":"8c7e618c2a91ea7f6b5cca272a295864e92c16413be8fc56a943e8c7d5320011","affectsGlobalScope":true,"impliedFormat":1},{"version":"79a85c64bf083c5f4dd7074e804d1000c0c47301b84d48417a224decd681be30","impliedFormat":1},{"version":"9f1e3a76d5f509b5579e567de522b402cb79e201c4f47dcd014451c0580b290d","impliedFormat":1},{"version":"2ddab5b6932f9a6327f71baeb82a1d6b0824e0d23a4c7a5de5d355857113c22f","impliedFormat":1},{"version":"70f3f8b2dcaf7388f26731a59c79437813e3620b594903525a303cb2a7901016","impliedFormat":1},{"version":"62e8f884c3bc6dff6189b6e662ebe8b238a645938f2df7a97b8a82fca56773a4","impliedFormat":1},{"version":"2c2bdaa1d8ead9f68628d6d9d250e46ee8e81aa4898b4769a36956ae15e060fe","impliedFormat":1},{"version":"57a0d1b3d59063d4af2d3f8aac27cfe3c20a0f5d1faf0f8598ccf0b779637939","impliedFormat":1},{"version":"5ff4433a2deae4f85ab1377e90a7554ce6b47ae51c69a84ca30a6e22fae85834","impliedFormat":1},{"version":"82b91e4e42e6c41bc7fc1b6c2dc5eba6a2ba98375eb1f210e6ff6bba2d54177e","impliedFormat":1},{"version":"97234c5303866576f913d0ccae7d58d6322d9e803c7bf1228a3fda46ab8087b2","affectsGlobalScope":true,"impliedFormat":1},{"version":"93ecf87143cac7b9d05cffc1d6bdc075b7e4fdd48ff05f1fad85043f6ae678d3","impliedFormat":1},{"version":"4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","impliedFormat":1},{"version":"6f200afcb82b3e9a54bed6db23f2edf2508cd266801257312c0f124b47f2bdb9","impliedFormat":1},{"version":"ec501101c2a96133a6c695f934c8f6642149cc728571b29cbb7b770984c1088e","impliedFormat":1},{"version":"b214ebcf76c51b115453f69729ee8aa7b7f8eccdae2a922b568a45c2d7ff52f7","impliedFormat":1},{"version":"429c9cdfa7d126255779efd7e6d9057ced2d69c81859bbab32073bad52e9ba76","impliedFormat":1},{"version":"39338f84e8c4d0e3de7b3c4a7024fb3925f42100eed5cbe73be58902799dff4d","impliedFormat":1},{"version":"fbf83eb33bf5e329527add92acc65da59323876c702ddccf5f4bf1e848c92369","affectsGlobalScope":true,"impliedFormat":1},{"version":"230763250f20449fa7b3c9273e1967adb0023dc890d4be1553faca658ee65971","impliedFormat":1},{"version":"c3e9078b60cb329d1221f5878e88cecfa3e74460550e605a58fcfb41a66029ff","impliedFormat":1},{"version":"515318bc6e656f75e9e34db625316bfafbafd800dfb1642574af93735a24ad38","impliedFormat":1},{"version":"441b9bb09013654aa3d050e68b06464d8959b473e85868249d9d18f692acd35b","impliedFormat":1},{"version":"bc18a1991ba681f03e13285fa1d7b99b03b67ee671b7bc936254467177543890","impliedFormat":1},{"version":"55246f15e33ff1e2e9e679b25fa9790a48db55dc63d567fe25fac8b6a0efe911","impliedFormat":1},{"version":"fa94bbf532b7af8f394b95fa310980d6e20bd2d4c871c6a6cb9f70f03750a44b","impliedFormat":1},{"version":"03b7804d69cecd66850abada858ed6d4a59001f8c228a9fe212306ee860a4ff6","impliedFormat":1},{"version":"5b26c4dd672d88336bb929787c9bfb55119e80ba89ec6dc923da1c063892843e","affectsGlobalScope":true,"impliedFormat":1},{"version":"7fa2214bb0d64701bc6f9ce8cde2fd2ff8c571e0b23065fa04a8a5a6beb91511","impliedFormat":1},{"version":"987fd1f85dc36f4b2c927aa3db814ac6b452e970f4f55d24ed4ecbb7df09be00","impliedFormat":1},{"version":"f12624a4a8d042b68914eac1b0a16571fc1c523173fcdf2517c65d191bd5a86c","impliedFormat":1},{"version":"b4769767f13a1692a66186e01c3aa186ff808d5ff72ed36eda8c37738fb2ac92","impliedFormat":1},{"version":"841983e39bd4cbb463be385e92fda11057cab368bf27100a801c492f1d86cbaa","impliedFormat":1},{"version":"683edfc4f2b411ebe04729cb6dc09ddd26fbac2c57771a6d7c55964af776e176","impliedFormat":1},{"version":"1ec3f3a5f04cc42df33274fbe5c0937d9a9e06f249a7a26288d7d54f0763ffd4","impliedFormat":1},{"version":"e4156ddb25aa0e3b5303d372f26957b36778f0f6bbd4326359269873295e3058","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc1b433a84cae05ddc5672d4823170af78606ad21ecef60dbc4570190cbf1357","impliedFormat":1},{"version":"e47f532d6e1617833f13a5b0710c0089d402c89c2f2b54f324e5a20e418d287a","impliedFormat":1},{"version":"7f78cfb2b343838612c192cb251746e3a7c62ac7675726a47e130d9b213f6580","impliedFormat":1},{"version":"201db9cf1687fab1adf5282fcba861f382b32303dc4f67c89d59655e78a25461","impliedFormat":1},{"version":"8e2577e7262051fd3c5bd6ca2b2056d358ff8853565720f92455860824c25188","impliedFormat":1},{"version":"7ec8d7d483f7394f9da611b10d3a0e402f76ff5c991261e6ce43a15f81ca4258","impliedFormat":1},{"version":"bb9dbb4b2ad81e3e71ec5ba4314973718555b9d04ba2a17dfbf875efecb8e2c0","impliedFormat":1},{"version":"82c3cc48c692438e41b94d936b8acd75ca97b18c50fa1af8a0715eb9d07d18cd","impliedFormat":1},{"version":"045a210189ec63c5488410b33f9fca53d77d051599d0d6506d8048551399c5f3","impliedFormat":1},{"version":"99ab6d0d660ce4d21efb52288a39fd35bb3f556980ec5463b1ae8f304a3bbc85","impliedFormat":1},{"version":"632c45ccb4cdc2c3a80c7a36a63dd7763016e59cac5e07bfb3e37e3548957028","impliedFormat":1},{"version":"c9a2daf6cd1eb854cd5b9e424247c5e306692055738c2effd35f7871d942b76e","impliedFormat":1},{"version":"afa1c49f8e559e413d57343339db857d2a8159435cf9cf7d4deb41718fff1b88","impliedFormat":1},{"version":"e50a7130339a951e6da9e968ed5521b0997a5b0479e148914087213839b5474c","impliedFormat":1}],"root":[[60,68]],"options":{"allowJs":false,"composite":true,"declaration":true,"declarationMap":true,"exactOptionalPropertyTypes":true,"module":199,"noUncheckedIndexedAccess":true,"outDir":"./","rootDir":"../src","skipLibCheck":true,"strict":true,"stripInternal":true,"target":9,"tsBuildInfoFile":"./tsconfig.tsbuildinfo"},"referencedMap":[[132,1],[133,1],[134,2],[70,3],[135,4],[136,5],[137,6],[138,7],[139,8],[140,9],[141,10],[142,11],[143,12],[144,12],[145,13],[146,14],[147,15],[148,16],[149,17],[71,15],[69,15],[150,18],[151,19],[152,20],[195,21],[153,22],[154,23],[155,22],[156,24],[157,25],[159,26],[160,27],[161,27],[162,27],[163,28],[164,29],[165,30],[166,31],[167,32],[168,33],[169,33],[170,34],[171,15],[172,15],[173,35],[174,36],[175,37],[176,38],[177,39],[178,40],[179,41],[180,42],[181,43],[182,44],[183,45],[184,46],[185,47],[186,48],[187,49],[188,50],[189,51],[190,52],[191,53],[72,22],[73,15],[74,54],[75,55],[76,15],[77,56],[78,15],[123,57],[124,58],[125,59],[126,59],[127,60],[128,15],[129,4],[130,61],[131,58],[192,62],[193,63],[194,64],[158,15],[58,15],[59,15],[11,15],[10,15],[2,15],[12,15],[13,15],[14,15],[15,15],[16,15],[17,15],[18,15],[19,15],[3,15],[20,15],[21,15],[4,15],[22,15],[26,15],[23,15],[24,15],[25,15],[27,15],[28,15],[29,15],[5,15],[30,15],[31,15],[32,15],[33,15],[6,15],[37,15],[34,15],[35,15],[36,15],[38,15],[7,15],[39,15],[44,15],[45,15],[40,15],[41,15],[42,15],[43,15],[8,15],[49,15],[46,15],[47,15],[48,15],[50,15],[9,15],[51,15],[52,15],[53,15],[55,15],[54,15],[56,15],[1,15],[57,15],[97,65],[111,66],[94,67],[112,68],[121,69],[85,70],[86,71],[84,72],[120,73],[115,74],[119,75],[88,76],[98,77],[108,78],[87,79],[118,80],[82,81],[83,74],[89,77],[90,15],[96,82],[93,77],[80,83],[122,84],[113,85],[101,86],[100,77],[102,87],[105,88],[99,89],[103,90],[116,73],[91,91],[92,92],[106,93],[81,68],[110,94],[109,77],[95,92],[104,95],[107,96],[114,15],[79,15],[117,97],[64,98],[68,99],[65,15],[66,100],[60,15],[67,101],[61,15],[62,15],[63,15]],"latestChangedDtsFile":"./index.d.ts","version":"6.0.2"}
package/dist/types.d.ts CHANGED
@@ -31,9 +31,29 @@ export interface MemoryQuery {
31
31
  * Optional; when absent, recency is measured relative to the newest
32
32
  * candidate's updatedAt (data-derived — the library never reads a clock). */
33
33
  readonly now?: string;
34
+ /** When present, the store runs the hybrid path: keyword ∪ vector-nearest, RRF-fused. */
35
+ readonly queryEmbedding?: Float32Array;
36
+ /** Only rows whose stored embedding_model equals this are vector-compared. */
37
+ readonly embedderId?: string;
38
+ /** Hybrid tuning; all fields defaulted. */
39
+ readonly vector?: VectorRankingOptions;
40
+ }
41
+ export interface VectorRankingOptions {
42
+ readonly weights?: {
43
+ readonly keyword?: number;
44
+ readonly vector?: number;
45
+ };
46
+ readonly rrfK?: number;
47
+ readonly vectorK?: number;
48
+ readonly recencyWeight?: number;
49
+ readonly confidenceWeight?: number;
50
+ readonly recencyHalfLifeMs?: number;
34
51
  }
35
52
  export interface MemoryStore {
36
- put(rec: MemoryRecord): Promise<void>;
53
+ put(rec: MemoryRecord, opts?: {
54
+ readonly embedding?: Float32Array;
55
+ readonly embeddingModel?: string;
56
+ }): Promise<void>;
37
57
  get(id: string): Promise<MemoryRecord | null>;
38
58
  search(q: MemoryQuery): Promise<readonly MemoryRecord[]>;
39
59
  update(id: string, patch: Partial<MemoryRecord>): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,YAAY,GAAG,YAAY,CAAA;AAC9E,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,QAAQ,GAAG,YAAY,CAAA;AAChE,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;IACzD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CACpB;AACD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;IAChC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B;AACD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAA;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB;;kFAE8E;IAC9E,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CACtB;AACD,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAA;IAC7C,MAAM,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC,CAAA;IACxD,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/D,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,cAAc,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC,CAAA;CAC1E"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,YAAY,GAAG,YAAY,CAAA;AAC9E,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,QAAQ,GAAG,YAAY,CAAA;AAChE,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;IACzD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CACpB;AACD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;IAChC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B;AACD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAA;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB;;kFAE8E;IAC9E,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,yFAAyF;IACzF,QAAQ,CAAC,cAAc,CAAC,EAAE,YAAY,CAAA;IACtC,8EAA8E;IAC9E,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,CAAC,EAAE,oBAAoB,CAAA;CACvC;AACD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC1E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CACpC;AACD,MAAM,WAAW,WAAW;IAC1B,GAAG,CACD,GAAG,EAAE,YAAY,EACjB,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC;QAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7E,OAAO,CAAC,IAAI,CAAC,CAAA;IAChB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAA;IAC7C,MAAM,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC,CAAA;IACxD,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/D,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,cAAc,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC,CAAA;CAC1E"}
@@ -0,0 +1,22 @@
1
+ export declare const DEFAULT_RRF_K = 60;
2
+ export declare const DEFAULT_VECTOR_K = 64;
3
+ export interface RankedList {
4
+ /**
5
+ * Ids ordered best → worst. Rank is the 1-based index. Ids within a single
6
+ * list are expected to be unique; duplicates accumulate score.
7
+ */
8
+ readonly ids: readonly string[];
9
+ /** Per-list weight in the fusion; default 1 (co-equal). */
10
+ readonly weight?: number;
11
+ }
12
+ /** Raw cosine similarity in [-1, 1]. Zero-norm, length-mismatch, or non-finite result → 0 (never NaN/throw). */
13
+ export declare function cosineSimilarity(a: Float32Array, b: Float32Array): number;
14
+ /**
15
+ * Reciprocal Rank Fusion. score(id) = Σ_lists weight / (k + rank). An id absent
16
+ * from a list contributes 0 (RRF subsumes the union of the lists). Rank-based, so
17
+ * it is immune to the score-scale incompatibility between IDF and cosine.
18
+ */
19
+ export declare function fuseRRF(lists: readonly RankedList[], opts?: {
20
+ readonly k?: number;
21
+ }): Map<string, number>;
22
+ //# sourceMappingURL=vector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector.d.ts","sourceRoot":"","sources":["../src/vector.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa,KAAK,CAAA;AAC/B,eAAO,MAAM,gBAAgB,KAAK,CAAA;AAElC,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,CAAA;IAC/B,2DAA2D;IAC3D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,gHAAgH;AAChH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM,CAezE;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7B,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAYrB"}
package/dist/vector.js ADDED
@@ -0,0 +1,42 @@
1
+ // Pure vector-recall primitives — no I/O, no clock, no randomness. Deterministic
2
+ // so aimock fixtures and eval replays stay stable. See
3
+ // docs/superpowers/specs/2026-07-06-vector-recall-design.md.
4
+ export const DEFAULT_RRF_K = 60;
5
+ export const DEFAULT_VECTOR_K = 64;
6
+ /** Raw cosine similarity in [-1, 1]. Zero-norm, length-mismatch, or non-finite result → 0 (never NaN/throw). */
7
+ export function cosineSimilarity(a, b) {
8
+ if (a.length !== b.length || a.length === 0)
9
+ return 0;
10
+ let dot = 0;
11
+ let na = 0;
12
+ let nb = 0;
13
+ for (let i = 0; i < a.length; i++) {
14
+ const x = a[i];
15
+ const y = b[i];
16
+ dot += x * y;
17
+ na += x * x;
18
+ nb += y * y;
19
+ }
20
+ if (na === 0 || nb === 0)
21
+ return 0;
22
+ const r = dot / (Math.sqrt(na) * Math.sqrt(nb));
23
+ return Number.isFinite(r) ? r : 0;
24
+ }
25
+ /**
26
+ * Reciprocal Rank Fusion. score(id) = Σ_lists weight / (k + rank). An id absent
27
+ * from a list contributes 0 (RRF subsumes the union of the lists). Rank-based, so
28
+ * it is immune to the score-scale incompatibility between IDF and cosine.
29
+ */
30
+ export function fuseRRF(lists, opts) {
31
+ const rawK = opts?.k;
32
+ const k = typeof rawK === "number" && Number.isFinite(rawK) && rawK > 0 ? rawK : DEFAULT_RRF_K;
33
+ const out = new Map();
34
+ for (const list of lists) {
35
+ const w = typeof list.weight === "number" && Number.isFinite(list.weight) ? list.weight : 1;
36
+ for (let i = 0; i < list.ids.length; i++) {
37
+ const id = list.ids[i];
38
+ out.set(id, (out.get(id) ?? 0) + w / (k + (i + 1)));
39
+ }
40
+ }
41
+ return out;
42
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dawn-ai/memory",
3
- "version": "0.8.7",
3
+ "version": "0.8.9",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -30,11 +30,11 @@
30
30
  "access": "public"
31
31
  },
32
32
  "dependencies": {
33
- "@dawn-ai/sqlite-storage": "0.8.7"
33
+ "@dawn-ai/sqlite-storage": "0.8.9"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@types/node": "26.1.0",
37
- "@dawn-ai/config-typescript": "0.8.7"
37
+ "@dawn-ai/config-typescript": "0.8.9"
38
38
  },
39
39
  "scripts": {
40
40
  "build": "tsc -b tsconfig.json",