@dawn-ai/memory 0.8.8 → 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/dist/hybrid.d.ts +26 -0
- package/dist/hybrid.d.ts.map +1 -0
- package/dist/hybrid.js +86 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/score.d.ts +6 -0
- package/dist/score.d.ts.map +1 -1
- package/dist/score.js +14 -12
- package/dist/sqlite-store.d.ts +3 -1
- package/dist/sqlite-store.d.ts.map +1 -1
- package/dist/sqlite-store.js +124 -59
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +21 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/vector.d.ts +22 -0
- package/dist/vector.d.ts.map +1 -0
- package/dist/vector.js +42 -0
- package/package.json +3 -3
package/dist/hybrid.d.ts
ADDED
|
@@ -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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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";
|
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
|
*
|
package/dist/score.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
-
/**
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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
|
|
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
|
}
|
package/dist/sqlite-store.d.ts
CHANGED
|
@@ -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":"
|
|
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"}
|
package/dist/sqlite-store.js
CHANGED
|
@@ -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 {
|
|
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 (
|
|
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
|
-
//
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
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
|
-
// 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
|
-
|
|
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":"fa615393362e74c71091b4326a01caa8cdd9a045628596ae6943ae7f00d8405f","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
|
|
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>;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/vector.d.ts
ADDED
|
@@ -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.
|
|
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.
|
|
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.
|
|
37
|
+
"@dawn-ai/config-typescript": "0.8.9"
|
|
38
38
|
},
|
|
39
39
|
"scripts": {
|
|
40
40
|
"build": "tsc -b tsconfig.json",
|