@monoes/memory 1.0.16 → 1.0.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -4
- package/dist/atomic-file.js +1 -1
- package/dist/atomic-file.js.map +1 -1
- package/dist/cache-manager.d.ts +1 -1
- package/dist/cache-manager.d.ts.map +1 -1
- package/dist/cache-manager.js +1 -2
- package/dist/cache-manager.js.map +1 -1
- package/dist/checkpointer.d.ts +6 -6
- package/dist/checkpointer.d.ts.map +1 -1
- package/dist/checkpointer.js +10 -10
- package/dist/checkpointer.js.map +1 -1
- package/dist/hnsw-index.d.ts +32 -1
- package/dist/hnsw-index.d.ts.map +1 -1
- package/dist/hnsw-index.js +73 -29
- package/dist/hnsw-index.js.map +1 -1
- package/dist/index.d.ts +16 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -8
- package/dist/index.js.map +1 -1
- package/dist/knowledge/document-chunker.d.ts.map +1 -1
- package/dist/knowledge/document-chunker.js +9 -3
- package/dist/knowledge/document-chunker.js.map +1 -1
- package/dist/knowledge/index.d.ts +4 -4
- package/dist/knowledge/index.d.ts.map +1 -1
- package/dist/knowledge/index.js +1 -1
- package/dist/knowledge/index.js.map +1 -1
- package/dist/knowledge/knowledge-store.d.ts.map +1 -1
- package/dist/knowledge/knowledge-store.js +2 -2
- package/dist/knowledge/knowledge-store.js.map +1 -1
- package/dist/math-utils.d.ts.map +1 -1
- package/dist/math-utils.js.map +1 -1
- package/dist/migration.d.ts +1 -1
- package/dist/migration.d.ts.map +1 -1
- package/dist/migration.js +11 -22
- package/dist/migration.js.map +1 -1
- package/dist/prompt-version-store.d.ts.map +1 -1
- package/dist/prompt-version-store.js.map +1 -1
- package/dist/query-builder.d.ts.map +1 -1
- package/dist/query-builder.js +12 -4
- package/dist/query-builder.js.map +1 -1
- package/dist/sql-backend.d.ts +103 -5
- package/dist/sql-backend.d.ts.map +1 -1
- package/dist/sql-backend.js +341 -27
- package/dist/sql-backend.js.map +1 -1
- package/dist/sql-schema.d.ts.map +1 -1
- package/dist/sql-schema.js +116 -47
- package/dist/sql-schema.js.map +1 -1
- package/dist/sqlite-backend.d.ts +1 -0
- package/dist/sqlite-backend.d.ts.map +1 -1
- package/dist/sqlite-backend.js +6 -0
- package/dist/sqlite-backend.js.map +1 -1
- package/dist/sqljs-backend.d.ts +9 -0
- package/dist/sqljs-backend.d.ts.map +1 -1
- package/dist/sqljs-backend.js +24 -3
- package/dist/sqljs-backend.js.map +1 -1
- package/dist/types/checkpoint.d.ts +2 -2
- package/dist/types/checkpoint.d.ts.map +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/jsonl-store.js +2 -2
- package/dist/utils/jsonl-store.js.map +1 -1
- package/package.json +5 -2
package/dist/sql-backend.js
CHANGED
|
@@ -16,8 +16,12 @@
|
|
|
16
16
|
* @module v1/memory/sql-backend
|
|
17
17
|
*/
|
|
18
18
|
import { EventEmitter } from 'node:events';
|
|
19
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
20
|
+
import { join } from 'node:path';
|
|
21
|
+
import { writeFileAtomicSync } from './atomic-file.js';
|
|
22
|
+
import { HNSWIndex } from './hnsw-index.js';
|
|
19
23
|
import { cosineSimilarity } from './math-utils.js';
|
|
20
|
-
import {
|
|
24
|
+
import { hasFTS5Table, initializeSchema } from './sql-schema.js';
|
|
21
25
|
const DEFAULT_CONFIG = {
|
|
22
26
|
defaultNamespace: 'default',
|
|
23
27
|
maxEntries: 1_000_000,
|
|
@@ -36,6 +40,158 @@ export class SqlBackend extends EventEmitter {
|
|
|
36
40
|
stats = { queryCount: 0, totalQueryTime: 0, writeCount: 0, totalWriteTime: 0 };
|
|
37
41
|
/** Debounce counter: the agent_reads purge is expensive, so it is amortised. */
|
|
38
42
|
_readCount = 0;
|
|
43
|
+
// ===== ANN (HNSW) fast path for search() ==================================
|
|
44
|
+
// Below MONOMIND_HNSW_THRESHOLD active embedded entries, brute-force cosine
|
|
45
|
+
// (a few tens of ms per the docstring on search() below) stays cheaper than
|
|
46
|
+
// building and maintaining a graph. Above it, an index is built once per
|
|
47
|
+
// (dimensions, entry-count, max-updated-at) fingerprint and reused — a
|
|
48
|
+
// change to any of those is the invalidation signal (store/delete change
|
|
49
|
+
// the count; an in-place re-embed of an existing id changes max-updated-at
|
|
50
|
+
// without changing the count).
|
|
51
|
+
_annIndex = null;
|
|
52
|
+
_annEntries = new Map();
|
|
53
|
+
_annDimensions = 0;
|
|
54
|
+
_annBuiltForCount = -1;
|
|
55
|
+
_annBuiltForMaxUpdatedAt = -1;
|
|
56
|
+
static ANN_THRESHOLD = (() => {
|
|
57
|
+
const raw = process.env.MONOMIND_HNSW_THRESHOLD;
|
|
58
|
+
const n = raw !== undefined ? parseInt(raw, 10) : NaN;
|
|
59
|
+
return Number.isFinite(n) && n > 0 ? n : 5000;
|
|
60
|
+
})();
|
|
61
|
+
/** Directory to cache the built ANN graph in, next to the real DB file.
|
|
62
|
+
* Returns null (no persistence) for in-memory databases — there is no
|
|
63
|
+
* stable location to cache next to, and the process-lifetime in-memory
|
|
64
|
+
* cache above already covers repeated searches within one run. */
|
|
65
|
+
getAnnCacheDir() {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
annCachePath() {
|
|
69
|
+
const dir = this.getAnnCacheDir();
|
|
70
|
+
return dir ? join(dir, 'hnsw-index.json') : null;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Staleness fingerprint for the ANN cache: row count alone misses an
|
|
74
|
+
* in-place embedding update (same id, re-embedded content — the count
|
|
75
|
+
* doesn't change), which would otherwise leave the cached graph serving a
|
|
76
|
+
* stale vector for that entry indefinitely. `updated_at` is bumped on
|
|
77
|
+
* every store() call (including updates to an existing id), so pairing
|
|
78
|
+
* count with MAX(updated_at) catches that case too.
|
|
79
|
+
*/
|
|
80
|
+
countEmbeddedActiveEntries() {
|
|
81
|
+
const row = this.driver?.get(`SELECT COUNT(*) as c, COALESCE(MAX(e.updated_at), 0) as m FROM memory_entries e
|
|
82
|
+
JOIN memory_embeddings emb ON emb.entry_id = e.id
|
|
83
|
+
WHERE (e.expires_at IS NULL OR e.expires_at = 0 OR e.expires_at > ?)`, [Date.now()]);
|
|
84
|
+
return { count: row?.c ?? 0, maxUpdatedAt: row?.m ?? 0 };
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Returns a ready-to-search ANN index for the given embedding dimensions,
|
|
88
|
+
* or null when the corpus is below ANN_THRESHOLD (brute force stays the
|
|
89
|
+
* search path). Tries, in order: the process-lifetime cache, a valid
|
|
90
|
+
* on-disk cache (skips the DB read + graph build entirely), then a full
|
|
91
|
+
* rebuild from memory_embeddings (writing a fresh on-disk cache for next
|
|
92
|
+
* time).
|
|
93
|
+
*/
|
|
94
|
+
async getAnnIndex(dimensions, force = false) {
|
|
95
|
+
const { count, maxUpdatedAt } = this.countEmbeddedActiveEntries();
|
|
96
|
+
if (!force && count < SqlBackend.ANN_THRESHOLD)
|
|
97
|
+
return null;
|
|
98
|
+
if (!force &&
|
|
99
|
+
this._annIndex &&
|
|
100
|
+
this._annDimensions === dimensions &&
|
|
101
|
+
this._annBuiltForCount === count &&
|
|
102
|
+
this._annBuiltForMaxUpdatedAt === maxUpdatedAt) {
|
|
103
|
+
return { index: this._annIndex, entries: this._annEntries };
|
|
104
|
+
}
|
|
105
|
+
const cachePath = this.annCachePath();
|
|
106
|
+
if (!force && cachePath && existsSync(cachePath)) {
|
|
107
|
+
try {
|
|
108
|
+
const parsed = JSON.parse(readFileSync(cachePath, 'utf8'));
|
|
109
|
+
if (parsed.entryCount === count &&
|
|
110
|
+
parsed.maxUpdatedAt === maxUpdatedAt &&
|
|
111
|
+
parsed.dimensions === dimensions) {
|
|
112
|
+
const index = HNSWIndex.deserialize(parsed.index);
|
|
113
|
+
const entries = new Map(parsed.entries);
|
|
114
|
+
this._annIndex = index;
|
|
115
|
+
this._annDimensions = dimensions;
|
|
116
|
+
this._annBuiltForCount = count;
|
|
117
|
+
this._annBuiltForMaxUpdatedAt = maxUpdatedAt;
|
|
118
|
+
this._annEntries = entries;
|
|
119
|
+
return { index, entries };
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
// Corrupt or incompatible cache — fall through to a full rebuild.
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
const rows = this.driver?.iterate(`SELECT e.*, emb.embedding AS _emb
|
|
127
|
+
FROM memory_entries e
|
|
128
|
+
JOIN memory_embeddings emb ON emb.entry_id = e.id
|
|
129
|
+
WHERE (e.expires_at IS NULL OR e.expires_at = 0 OR e.expires_at > ?)`, [Date.now()]) ?? [];
|
|
130
|
+
const index = new HNSWIndex({ dimensions, metric: 'cosine' });
|
|
131
|
+
const entries = new Map();
|
|
132
|
+
const points = [];
|
|
133
|
+
for (const row of rows) {
|
|
134
|
+
const buf = row._emb;
|
|
135
|
+
if (!buf || buf.byteLength % 4 !== 0)
|
|
136
|
+
continue;
|
|
137
|
+
const vec = new Float32Array(buf.buffer, buf.byteOffset, buf.byteLength / 4);
|
|
138
|
+
if (vec.length !== dimensions)
|
|
139
|
+
continue;
|
|
140
|
+
const entry = this.rowToEntry(row);
|
|
141
|
+
points.push({ id: entry.id, vector: vec });
|
|
142
|
+
entries.set(entry.id, entry);
|
|
143
|
+
}
|
|
144
|
+
await index.rebuild(points);
|
|
145
|
+
this._annIndex = index;
|
|
146
|
+
this._annDimensions = dimensions;
|
|
147
|
+
this._annBuiltForCount = count;
|
|
148
|
+
this._annBuiltForMaxUpdatedAt = maxUpdatedAt;
|
|
149
|
+
this._annEntries = entries;
|
|
150
|
+
if (cachePath) {
|
|
151
|
+
try {
|
|
152
|
+
writeFileAtomicSync(cachePath, JSON.stringify({
|
|
153
|
+
entryCount: count,
|
|
154
|
+
maxUpdatedAt,
|
|
155
|
+
dimensions,
|
|
156
|
+
index: index.serialize(),
|
|
157
|
+
entries: Array.from(entries.entries()),
|
|
158
|
+
}));
|
|
159
|
+
}
|
|
160
|
+
catch {
|
|
161
|
+
// Best-effort — a failed cache write just means the next cold start rebuilds.
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return { index, entries };
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Diagnostics for `memory search --build-hnsw` / status reporting. Read-only
|
|
168
|
+
* — does not build the index as a side effect.
|
|
169
|
+
*/
|
|
170
|
+
getAnnStatus() {
|
|
171
|
+
return {
|
|
172
|
+
thresholdEntries: SqlBackend.ANN_THRESHOLD,
|
|
173
|
+
activeEmbeddedEntries: this.countEmbeddedActiveEntries().count,
|
|
174
|
+
built: this._annIndex !== null,
|
|
175
|
+
entryCount: this._annEntries.size,
|
|
176
|
+
dimensions: this._annDimensions,
|
|
177
|
+
cachePath: this.annCachePath(),
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Force-build (or reload from a valid on-disk cache) the ANN index
|
|
182
|
+
* regardless of ANN_THRESHOLD — the real implementation behind
|
|
183
|
+
* `memory search --build-hnsw`. Below the threshold, search() itself
|
|
184
|
+
* still uses brute force; this only pre-warms the index and its cache.
|
|
185
|
+
*/
|
|
186
|
+
async forceBuildAnnIndex(dimensions) {
|
|
187
|
+
this.ensureInitialized();
|
|
188
|
+
const result = await this.getAnnIndex(dimensions, true);
|
|
189
|
+
return {
|
|
190
|
+
entryCount: result?.entries.size ?? 0,
|
|
191
|
+
dimensions,
|
|
192
|
+
cachePath: this.annCachePath(),
|
|
193
|
+
};
|
|
194
|
+
}
|
|
39
195
|
constructor(config = {}) {
|
|
40
196
|
super();
|
|
41
197
|
this.config = { ...DEFAULT_CONFIG, ...config };
|
|
@@ -84,12 +240,128 @@ export class SqlBackend extends EventEmitter {
|
|
|
84
240
|
this.ensureInitialized();
|
|
85
241
|
const startTime = performance.now();
|
|
86
242
|
this.validateTags(entry.tags);
|
|
87
|
-
this.driver
|
|
243
|
+
this.driver?.transaction(() => this.storeSync(entry));
|
|
88
244
|
const duration = performance.now() - startTime;
|
|
89
245
|
this.stats.writeCount++;
|
|
90
246
|
this.stats.totalWriteTime += duration;
|
|
91
247
|
this.emit('entry:stored', { id: entry.id, duration });
|
|
92
248
|
}
|
|
249
|
+
/**
|
|
250
|
+
* Compare-and-swap update: writes ONLY if the row's stored `version` still
|
|
251
|
+
* equals `expectedVersion`. The check and the write are one SQL statement
|
|
252
|
+
* (`UPDATE ... WHERE id = ? AND version = ?`), so SQLite's own single-
|
|
253
|
+
* statement atomicity — the same guarantee `store()`'s INSERT OR REPLACE
|
|
254
|
+
* already relies on — makes this a real compare-and-swap against every
|
|
255
|
+
* other writer, in this process or another, with no bridge-level lock.
|
|
256
|
+
*
|
|
257
|
+
* Exists for memory-KG review finding K5: a getByKey() + store() read-
|
|
258
|
+
* merge-write (what every caller did before this) leaves a window in which
|
|
259
|
+
* two concurrent callers each merge onto the same row and the second
|
|
260
|
+
* store() silently overwrites the first's contribution. A caller that reads
|
|
261
|
+
* a row's version, merges onto it, and writes back through here instead
|
|
262
|
+
* gets `false` when its merge has gone stale, rather than winning a race it
|
|
263
|
+
* did not know it was running.
|
|
264
|
+
*
|
|
265
|
+
* Only the columns a claim-ledger merge (memory-kg.ts) actually changes are
|
|
266
|
+
* updated; embeddings are left untouched, matching storeSync's own rule that
|
|
267
|
+
* a revision without a new vector keeps the one it had.
|
|
268
|
+
*
|
|
269
|
+
* @returns true when the write landed, false when the row's version had
|
|
270
|
+
* already moved (or the row no longer exists) — the caller must re-read and
|
|
271
|
+
* re-merge, never assume the write happened.
|
|
272
|
+
*/
|
|
273
|
+
async storeIfVersion(entry, expectedVersion) {
|
|
274
|
+
this.ensureInitialized();
|
|
275
|
+
this.validateTags(entry.tags);
|
|
276
|
+
const d = this.driver;
|
|
277
|
+
return d.transaction(() => {
|
|
278
|
+
const changes = d.run(`UPDATE memory_entries
|
|
279
|
+
SET content = ?, tags = ?, metadata = ?, updated_at = ?, version = ?, "references" = ?
|
|
280
|
+
WHERE id = ? AND version = ?`, [
|
|
281
|
+
entry.content,
|
|
282
|
+
JSON.stringify(entry.tags),
|
|
283
|
+
JSON.stringify(entry.metadata),
|
|
284
|
+
entry.updatedAt,
|
|
285
|
+
entry.version,
|
|
286
|
+
JSON.stringify(entry.references),
|
|
287
|
+
entry.id,
|
|
288
|
+
expectedVersion,
|
|
289
|
+
]);
|
|
290
|
+
if (changes === 0)
|
|
291
|
+
return false;
|
|
292
|
+
d.run('DELETE FROM memory_entry_tags WHERE entry_id = ?', [entry.id]);
|
|
293
|
+
for (const tag of entry.tags) {
|
|
294
|
+
d.run('INSERT OR IGNORE INTO memory_entry_tags (entry_id, tag) VALUES (?, ?)', [
|
|
295
|
+
entry.id,
|
|
296
|
+
tag,
|
|
297
|
+
]);
|
|
298
|
+
}
|
|
299
|
+
return true;
|
|
300
|
+
});
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Compare-and-swap create: the create-side counterpart to `storeIfVersion`.
|
|
304
|
+
* Inserts ONLY if no row already occupies this id or this namespace/key pair
|
|
305
|
+
* (the schema's `UNIQUE(namespace, key)` index — see sql-schema.ts).
|
|
306
|
+
*
|
|
307
|
+
* Exists for the same K5 race on the CREATE side: two concurrent callers
|
|
308
|
+
* asserting the same new KG entity mint the same deterministic `key` but a
|
|
309
|
+
* different random row `id` (see memory-bridge.ts's upsert). Plain `store()`
|
|
310
|
+
* (INSERT OR REPLACE) resolves that collision by silently deleting whichever
|
|
311
|
+
* row landed first — exactly the lost update K5 describes, just on first
|
|
312
|
+
* write instead of a merge. `INSERT OR IGNORE` instead leaves the first row
|
|
313
|
+
* untouched and reports that it did, so the loser re-reads and merges onto
|
|
314
|
+
* it instead of clobbering it.
|
|
315
|
+
*
|
|
316
|
+
* @returns true when this call created the row, false when one already
|
|
317
|
+
* existed — the caller must re-read and merge rather than assume it won.
|
|
318
|
+
*/
|
|
319
|
+
async storeIfAbsent(entry) {
|
|
320
|
+
this.ensureInitialized();
|
|
321
|
+
this.validateTags(entry.tags);
|
|
322
|
+
const d = this.driver;
|
|
323
|
+
return d.transaction(() => {
|
|
324
|
+
const changes = d.run(`INSERT OR IGNORE INTO memory_entries (
|
|
325
|
+
id, key, content, type, namespace, tags, metadata, owner_id, access_level,
|
|
326
|
+
created_at, updated_at, expires_at, event_at, version, "references",
|
|
327
|
+
access_count, last_accessed_at
|
|
328
|
+
) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)`, [
|
|
329
|
+
entry.id,
|
|
330
|
+
entry.key,
|
|
331
|
+
entry.content,
|
|
332
|
+
entry.type,
|
|
333
|
+
entry.namespace,
|
|
334
|
+
JSON.stringify(entry.tags),
|
|
335
|
+
JSON.stringify(entry.metadata),
|
|
336
|
+
entry.ownerId || null,
|
|
337
|
+
entry.accessLevel,
|
|
338
|
+
entry.createdAt,
|
|
339
|
+
entry.updatedAt,
|
|
340
|
+
entry.expiresAt || null,
|
|
341
|
+
entry.eventAt ?? null,
|
|
342
|
+
entry.version,
|
|
343
|
+
JSON.stringify(entry.references),
|
|
344
|
+
entry.accessCount,
|
|
345
|
+
entry.lastAccessedAt,
|
|
346
|
+
]);
|
|
347
|
+
if (changes === 0)
|
|
348
|
+
return false;
|
|
349
|
+
for (const tag of entry.tags) {
|
|
350
|
+
d.run('INSERT OR IGNORE INTO memory_entry_tags (entry_id, tag) VALUES (?, ?)', [
|
|
351
|
+
entry.id,
|
|
352
|
+
tag,
|
|
353
|
+
]);
|
|
354
|
+
}
|
|
355
|
+
if (entry.embedding && entry.embedding.byteLength > 0) {
|
|
356
|
+
const bytes = Buffer.from(entry.embedding.buffer, entry.embedding.byteOffset, entry.embedding.byteLength);
|
|
357
|
+
d.run('INSERT OR REPLACE INTO memory_embeddings (entry_id, embedding) VALUES (?, ?)', [
|
|
358
|
+
entry.id,
|
|
359
|
+
bytes,
|
|
360
|
+
]);
|
|
361
|
+
}
|
|
362
|
+
return true;
|
|
363
|
+
});
|
|
364
|
+
}
|
|
93
365
|
/** Synchronous store body, shared by store() and bulkInsert(). */
|
|
94
366
|
storeSync(entry) {
|
|
95
367
|
const d = this.driver;
|
|
@@ -151,7 +423,7 @@ export class SqlBackend extends EventEmitter {
|
|
|
151
423
|
this.ensureInitialized();
|
|
152
424
|
for (const e of entries)
|
|
153
425
|
this.validateTags(e.tags);
|
|
154
|
-
this.driver
|
|
426
|
+
this.driver?.transaction(() => {
|
|
155
427
|
for (const entry of entries)
|
|
156
428
|
this.storeSync(entry);
|
|
157
429
|
});
|
|
@@ -227,14 +499,14 @@ export class SqlBackend extends EventEmitter {
|
|
|
227
499
|
async get(id, agentId) {
|
|
228
500
|
this.ensureInitialized();
|
|
229
501
|
const startTime = performance.now();
|
|
230
|
-
const row = this.driver
|
|
502
|
+
const row = this.driver?.get('SELECT memory_entries.*, emb.embedding AS _emb FROM memory_entries LEFT JOIN memory_embeddings emb ON emb.entry_id = memory_entries.id WHERE memory_entries.id = ?', [id]);
|
|
231
503
|
if (!row)
|
|
232
504
|
return null;
|
|
233
505
|
// Collaborative memory promotion — https://arxiv.org/abs/2505.18279
|
|
234
506
|
const AGENT_ID_RE = /^[a-zA-Z0-9_-]{1,128}$/;
|
|
235
507
|
if (agentId && AGENT_ID_RE.test(agentId)) {
|
|
236
508
|
try {
|
|
237
|
-
this.driver
|
|
509
|
+
this.driver?.run('INSERT OR IGNORE INTO agent_reads (entry_id, agent_id, read_at) VALUES (?, ?, ?)', [id, agentId, Date.now()]);
|
|
238
510
|
this._readCount++;
|
|
239
511
|
if (this._readCount % 1000 === 0)
|
|
240
512
|
this.checkAndPromoteEntry(id);
|
|
@@ -265,7 +537,7 @@ export class SqlBackend extends EventEmitter {
|
|
|
265
537
|
async getByKey(namespace, key) {
|
|
266
538
|
this.ensureInitialized();
|
|
267
539
|
const startTime = performance.now();
|
|
268
|
-
const row = this.driver
|
|
540
|
+
const row = this.driver?.get('SELECT memory_entries.*, emb.embedding AS _emb FROM memory_entries LEFT JOIN memory_embeddings emb ON emb.entry_id = memory_entries.id WHERE memory_entries.namespace = ? AND memory_entries.key = ?', [namespace, key]);
|
|
269
541
|
if (!row)
|
|
270
542
|
return null;
|
|
271
543
|
const entry = this.rowToEntry(row);
|
|
@@ -363,7 +635,7 @@ export class SqlBackend extends EventEmitter {
|
|
|
363
635
|
sql += ' OFFSET ?';
|
|
364
636
|
params.push(query.offset);
|
|
365
637
|
}
|
|
366
|
-
const rows = this.driver
|
|
638
|
+
const rows = this.driver?.all(sql, params) ?? [];
|
|
367
639
|
const results = rows.map((r) => this.rowToEntry(r));
|
|
368
640
|
const duration = performance.now() - startTime;
|
|
369
641
|
this.stats.queryCount++;
|
|
@@ -372,19 +644,56 @@ export class SqlBackend extends EventEmitter {
|
|
|
372
644
|
return results;
|
|
373
645
|
}
|
|
374
646
|
/**
|
|
375
|
-
* Semantic search
|
|
376
|
-
*
|
|
377
|
-
*
|
|
378
|
-
*
|
|
647
|
+
* Semantic search. Below MONOMIND_HNSW_THRESHOLD active embedded entries
|
|
648
|
+
* (default 5000), brute-force cosine over stored embeddings — namespace-
|
|
649
|
+
* and TTL-filtered in SQL — stays cheaper (a few tens of ms at second-brain
|
|
650
|
+
* scale). Above it, getAnnIndex() builds (or loads a persisted) HNSW graph
|
|
651
|
+
* and this searches that instead; results are still namespace/threshold
|
|
652
|
+
* filtered post-search to match the brute-force semantics exactly.
|
|
379
653
|
*/
|
|
380
654
|
async search(embedding, options) {
|
|
381
655
|
this.ensureInitialized();
|
|
382
656
|
const ns = options.filters?.namespace;
|
|
383
|
-
const
|
|
657
|
+
const ann = await this.getAnnIndex(embedding.length).catch(() => null);
|
|
658
|
+
if (ann) {
|
|
659
|
+
const applyFilters = (raw) => {
|
|
660
|
+
const out = [];
|
|
661
|
+
for (const r of raw) {
|
|
662
|
+
const entry = ann.entries.get(r.id);
|
|
663
|
+
if (!entry)
|
|
664
|
+
continue;
|
|
665
|
+
if (ns && entry.namespace !== ns)
|
|
666
|
+
continue;
|
|
667
|
+
const score = 1 - r.distance;
|
|
668
|
+
if (options.threshold !== undefined && score < options.threshold)
|
|
669
|
+
continue;
|
|
670
|
+
out.push({ entry, score, distance: r.distance });
|
|
671
|
+
if (out.length >= options.k)
|
|
672
|
+
break;
|
|
673
|
+
}
|
|
674
|
+
return out;
|
|
675
|
+
};
|
|
676
|
+
const overFetch = Math.max(options.k * 4, options.k + 20);
|
|
677
|
+
let results = applyFilters(await ann.index.search(embedding, Math.min(overFetch, ann.entries.size)));
|
|
678
|
+
// A fixed over-fetch multiple assumes matches are spread roughly evenly
|
|
679
|
+
// through the globally-nearest candidates. A namespace filter can
|
|
680
|
+
// violate that — a namespace's true nearest neighbors may simply not be
|
|
681
|
+
// among the top `overFetch` globally, understating recall (or
|
|
682
|
+
// returning nothing) even though matches exist elsewhere in the graph.
|
|
683
|
+
// There's no way to know how deep those matches rank without searching
|
|
684
|
+
// further, so the only correct fallback is to widen all the way to the
|
|
685
|
+
// full index rather than guessing a bigger-but-still-arbitrary number.
|
|
686
|
+
if (ns && results.length < options.k && ann.entries.size > overFetch) {
|
|
687
|
+
results = applyFilters(await ann.index.search(embedding, ann.entries.size));
|
|
688
|
+
}
|
|
689
|
+
results.sort((a, b) => b.score - a.score);
|
|
690
|
+
return results;
|
|
691
|
+
}
|
|
692
|
+
const rows = this.driver?.iterate(`SELECT e.*, emb.embedding AS _emb
|
|
384
693
|
FROM memory_entries e
|
|
385
694
|
JOIN memory_embeddings emb ON emb.entry_id = e.id
|
|
386
695
|
WHERE (e.expires_at IS NULL OR e.expires_at = 0 OR e.expires_at > ?)
|
|
387
|
-
${ns ? 'AND e.namespace = ?' : ''}`, ns ? [Date.now(), ns] : [Date.now()]);
|
|
696
|
+
${ns ? 'AND e.namespace = ?' : ''}`, ns ? [Date.now(), ns] : [Date.now()]) ?? [];
|
|
388
697
|
const results = [];
|
|
389
698
|
for (const row of rows) {
|
|
390
699
|
const buf = row._emb;
|
|
@@ -427,20 +736,25 @@ export class SqlBackend extends EventEmitter {
|
|
|
427
736
|
.replace(/[":*^~(){}[\]\\]/g, ' ')
|
|
428
737
|
.split(/\s+/)
|
|
429
738
|
.filter((t) => t.length > 1)
|
|
430
|
-
.map((t) => `"${t}"`)
|
|
431
|
-
|
|
432
|
-
if (!tokens)
|
|
739
|
+
.map((t) => `"${t}"`);
|
|
740
|
+
if (!tokens.length)
|
|
433
741
|
return null;
|
|
434
742
|
const d = this.driver;
|
|
435
743
|
const ns = options.namespace;
|
|
436
|
-
const
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
744
|
+
const search = (match) => d.all(`SELECT f.entry_id, f.key, f.content, e.namespace, rank
|
|
745
|
+
FROM memory_entries_fts f
|
|
746
|
+
JOIN memory_entries e ON e.id = f.entry_id
|
|
747
|
+
WHERE memory_entries_fts MATCH ?
|
|
748
|
+
AND (e.expires_at IS NULL OR e.expires_at = 0 OR e.expires_at > ?)
|
|
749
|
+
${ns ? 'AND e.namespace = ?' : ''}
|
|
750
|
+
ORDER BY rank
|
|
751
|
+
LIMIT ?`, ns ? [match, Date.now(), ns, limit] : [match, Date.now(), limit]);
|
|
752
|
+
// Preserve the precise all-terms query first. Natural-language queries
|
|
753
|
+
// often contain context words absent from the target document, though; a
|
|
754
|
+
// zero-result strict search should still surface the best lexical leads.
|
|
755
|
+
let rows = search(tokens.join(' '));
|
|
756
|
+
if (rows.length === 0 && tokens.length > 1)
|
|
757
|
+
rows = search(tokens.join(' OR '));
|
|
444
758
|
return rows.map((r) => ({
|
|
445
759
|
id: String(r.entry_id),
|
|
446
760
|
key: String(r.key),
|
|
@@ -457,15 +771,15 @@ export class SqlBackend extends EventEmitter {
|
|
|
457
771
|
async count(namespace) {
|
|
458
772
|
this.ensureInitialized();
|
|
459
773
|
const row = namespace
|
|
460
|
-
? this.driver
|
|
774
|
+
? this.driver?.get('SELECT COUNT(*) as count FROM memory_entries WHERE namespace = ?', [
|
|
461
775
|
namespace,
|
|
462
776
|
])
|
|
463
|
-
: this.driver
|
|
777
|
+
: this.driver?.get('SELECT COUNT(*) as count FROM memory_entries');
|
|
464
778
|
return Number(row?.count ?? 0);
|
|
465
779
|
}
|
|
466
780
|
async listNamespaces() {
|
|
467
781
|
this.ensureInitialized();
|
|
468
|
-
return this.driver
|
|
782
|
+
return (this.driver?.all('SELECT DISTINCT namespace FROM memory_entries') ?? []).map((r) => String(r.namespace));
|
|
469
783
|
}
|
|
470
784
|
// ===== Introspection =====================================================
|
|
471
785
|
async getStats() {
|
package/dist/sql-backend.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-backend.js","sourceRoot":"","sources":["../src/sql-backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAwB,MAAM,iBAAiB,CAAC;AAyBvF,MAAM,cAAc,GAAqB;IACvC,gBAAgB,EAAE,SAAS;IAC3B,UAAU,EAAE,SAAS;IACrB,OAAO,EAAE,KAAK;CACf,CAAC;AAEF,iFAAiF;AACjF,MAAM,eAAe,GAAG,MAAM,CAAC;AAE/B,MAAM,OAAO,UAAW,SAAQ,YAAY;IAChC,MAAM,CAAmB;IACzB,MAAM,GAAqB,IAAI,CAAC;IAChC,WAAW,GAAG,KAAK,CAAC;IAC9B,+DAA+D;IAC/D,eAAe,GAA2B,IAAI,CAAC;IAC/C,iEAAiE;IACzD,cAAc,GAAG,KAAK,CAAC;IAEvB,KAAK,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC;IACvF,gFAAgF;IACxE,UAAU,GAAG,CAAC,CAAC;IAEvB,YAAY,MAAM,GAA8B,EAAE;QAChD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;IACjD,CAAC;IAED,yCAAyC;IAC/B,KAAK,CAAC,UAAU;QACxB,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAE7B,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAEtC,kEAAkE;QAClE,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,gCAAgC;QAClC,CAAC;QAED,IAAI,CAAC,eAAe,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAC;YAClE,OAAO,CAAC,GAAG,CACT,yBAAyB,IAAI,CAAC,eAAe,CAAC,QAAQ,wBAAwB;gBAC5E,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,kBAAkB,CACpD,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QAC9C,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,8BAA8B;QAChC,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxB,CAAC;IAED,4EAA4E;IAE5E,KAAK,CAAC,KAAK,CAAC,KAAkB;QAC5B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACpC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE9B,IAAI,CAAC,MAAO,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAEtD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAC/C,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,QAAQ,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,kEAAkE;IAC1D,SAAS,CAAC,KAAkB;QAClC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAO,CAAC;QAEvB,yEAAyE;QACzE,yEAAyE;QACzE,sBAAsB;QACtB,IAAI,gBAAgB,GAAG,KAAK,CAAC,SAAS,CAAC;QACvC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,4DAA4D,EAAE;gBACnF,KAAK,CAAC,EAAE;aACT,CAAC,CAAC;YACH,MAAM,GAAG,GAAG,QAAQ,EAAE,SAA4C,CAAC;YACnE,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;gBAC9B,gBAAgB,GAAG,IAAI,YAAY,CACjC,GAAG,CAAC,MAAqB,EACzB,GAAG,CAAC,UAAU,EACd,GAAG,CAAC,UAAU,GAAG,CAAC,CACnB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,CAAC,CAAC,GAAG,CACH;;;;oDAI8C,EAC9C;YACE,KAAK,CAAC,EAAE;YACR,KAAK,CAAC,GAAG;YACT,KAAK,CAAC,OAAO;YACb,KAAK,CAAC,IAAI;YACV,KAAK,CAAC,SAAS;YACf,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;YAC1B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC9B,KAAK,CAAC,OAAO,IAAI,IAAI;YACrB,KAAK,CAAC,WAAW;YACjB,KAAK,CAAC,SAAS;YACf,KAAK,CAAC,SAAS;YACf,KAAK,CAAC,SAAS,IAAI,IAAI;YACvB,KAAK,CAAC,OAAO,IAAI,IAAI;YACrB,KAAK,CAAC,OAAO;YACb,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC;YAChC,KAAK,CAAC,WAAW;YACjB,KAAK,CAAC,cAAc;SACP,CAChB,CAAC;QAEF,CAAC,CAAC,GAAG,CAAC,kDAAkD,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QACtE,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7B,CAAC,CAAC,GAAG,CAAC,uEAAuE,EAAE;gBAC7E,KAAK,CAAC,EAAE;gBACR,GAAG;aACJ,CAAC,CAAC;QACL,CAAC;QAED,IAAI,gBAAgB,EAAE,CAAC;YACrB,sEAAsE;YACtE,uEAAuE;YACvE,0CAA0C;YAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CACvB,gBAAgB,CAAC,MAAqB,EACtC,gBAAgB,CAAC,UAAU,EAC3B,gBAAgB,CAAC,UAAU,CAC5B,CAAC;YACF,CAAC,CAAC,GAAG,CAAC,8EAA8E,EAAE;gBACpF,KAAK,CAAC,EAAE;gBACR,KAAK;aACN,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAsB;QACrC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,OAAO;YAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,MAAO,CAAC,WAAW,CAAC,GAAG,EAAE;YAC5B,KAAK,MAAM,KAAK,IAAI,OAAO;gBAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,MAAyB;QAChD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;YAAE,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QACjE,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;YAAE,KAAK,CAAC,QAAQ,GAAG,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC9F,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS;YAAE,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAC7E,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;YAAE,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACvE,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;YAAE,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAE1E,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,KAAK,CAAC,OAAO,EAAE,CAAC;QAEhB,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAO,CAAC;QACvB,0EAA0E;QAC1E,yDAAyD;QACzD,CAAC,CAAC,GAAG,CAAC,kDAAkD,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAChE,CAAC,CAAC,GAAG,CAAC,kDAAkD,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,yCAAyC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACvE,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACnC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAa;QAC5B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAO,CAAC;QACvB,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE;YAC/B,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;gBACrB,CAAC,CAAC,GAAG,CAAC,kDAAkD,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChE,CAAC,CAAC,GAAG,CAAC,kDAAkD,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChE,IAAI,CAAC,CAAC,GAAG,CAAC,yCAAyC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;oBAAE,OAAO,EAAE,CAAC;YAC5E,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,SAAiB;QACpC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAO,CAAC;QACvB,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE;YAC/B,CAAC,CAAC,GAAG,CACH;gFACwE,EACxE,CAAC,SAAS,CAAC,CACZ,CAAC;YACF,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,gDAAgD,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;YACrF,CAAC,CAAC,GAAG,CAAC,qFAAqF,CAAC,CAAC;YAC7F,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACrD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,4EAA4E;IAE5E,KAAK,CAAC,GAAG,CAAC,EAAU,EAAE,OAAgB;QACpC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAO,CAAC,GAAG,CAC1B,oKAAoK,EACpK,CAAC,EAAE,CAAC,CACL,CAAC;QACF,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QAEtB,oEAAoE;QACpE,MAAM,WAAW,GAAG,wBAAwB,CAAC;QAC7C,IAAI,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC;gBACH,IAAI,CAAC,MAAO,CAAC,GAAG,CACd,kFAAkF,EAClF,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAC1B,CAAC;gBACF,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,KAAK,CAAC;oBAAE,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;YAClE,CAAC;YAAC,MAAM,CAAC;gBACP,kBAAkB;YACpB,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;QAC9E,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACK,oBAAoB,CAAC,OAAe;QAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACtB,IAAI,CAAC,CAAC;YAAE,OAAO;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAChD,CAAC,CAAC,GAAG,CAAC,4CAA4C,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9D,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CACf,4FAA4F,EAC5F,CAAC,OAAO,EAAE,MAAM,CAAC,CAClB,CAAC;QACF,IAAI,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,CAAC,CAAC,GAAG,CACH,2FAA2F,EAC3F,CAAC,OAAO,CAAC,CACV,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,SAAiB,EAAE,GAAW;QAC3C,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAO,CAAC,GAAG,CAC1B,sMAAsM,EACtM,CAAC,SAAS,EAAE,GAAG,CAAC,CACjB,CAAC;QACF,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;QAC1F,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAkB;QAC5B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAEpC,qEAAqE;QACrE,6DAA6D;QAC7D,IAAI,GAAG,GACL,kJAAkJ,CAAC;QACrJ,MAAM,MAAM,GAAe,EAAE,CAAC;QAE9B,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,GAAG,IAAI,oBAAoB,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;YACd,GAAG,IAAI,cAAc,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QACD,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,GAAG,IAAI,iBAAiB,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,GAAG,IAAI,eAAe,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,GAAG,IAAI,uBAAuB,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,GAAG,IAAI,mBAAmB,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,GAAG,IAAI,sBAAsB,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACxB,GAAG,IAAI,sBAAsB,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,GAAG,IAAI,sBAAsB,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACxB,GAAG,IAAI,sBAAsB,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACnC,CAAC;QACD,mEAAmE;QACnE,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,GAAG,IAAI,oBAAoB,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,GAAG,IAAI,oBAAoB,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;YAC1B,GAAG,IAAI,6CAA6C,CAAC;YACrD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1B,CAAC;QAED,2EAA2E;QAC3E,6EAA6E;QAC7E,4EAA4E;QAC5E,2DAA2D;QAC3D,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,GAAG,IAAI;;6DAEgD,YAAY;YAC7D,CAAC;YACP,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,MAAM,GAA2B;YACrC,SAAS,EAAE,YAAY;YACvB,SAAS,EAAE,YAAY;YACvB,cAAc,EAAE,kBAAkB;YAClC,WAAW,EAAE,cAAc;YAC3B,GAAG,EAAE,KAAK;SACX,CAAC;QACF,MAAM,QAAQ,GACZ,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;YACvE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;YACzB,CAAC,CAAC,YAAY,CAAC;QACnB,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QAChE,GAAG,IAAI,aAAa,QAAQ,IAAI,QAAQ,UAAU,CAAC;QAEnD,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,IAAI,eAAe,CAAC,EAAE,eAAe,CAAC,CAAC;QAC9F,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5B,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,GAAG,IAAI,WAAW,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,MAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAC/C,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,QAAQ,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9E,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,SAAuB,EAAE,OAAsB;QAC1D,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAO,CAAC,OAAO,CAC/B;;;;UAII,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,EAAE,EACrC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CACrC,CAAC;QAEF,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,GAAG,CAAC,IAAuC,CAAC;YACxD,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,GAAG,CAAC,KAAK,CAAC;gBAAE,SAAS;YAC/C,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,MAAqB,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;YAC5F,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM;gBAAE,SAAS;YAC9C,MAAM,UAAU,GAAG,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YACpD,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,UAAU,GAAG,OAAO,CAAC,SAAS;gBAAE,SAAS;YAChF,qEAAqE;YACrE,6DAA6D;YAC7D,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,CAAC;QAC7F,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,aAAa,CACjB,SAAiB,EACjB,OAAO,GAGH,EAAE;QAIN,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO,IAAI,CAAC;QAEtC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC;QAE1E,0EAA0E;QAC1E,wEAAwE;QACxE,wEAAwE;QACxE,2BAA2B;QAC3B,MAAM,MAAM,GAAG,SAAS;aACrB,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC;aACjC,KAAK,CAAC,KAAK,CAAC;aACZ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;aAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;aACpB,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAO,CAAC;QACvB,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;QAE7B,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAChB;;;;;YAKM,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE;;gBAE3B,EACV,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CACnE,CAAC;QAEF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtB,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;YACtB,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;YAClB,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YAC1B,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9B,uEAAuE;YACvE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;SACrB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,2EAA2E;IAC3E,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,SAAkB;QAC5B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,SAAS;YACnB,CAAC,CAAC,IAAI,CAAC,MAAO,CAAC,GAAG,CAAC,kEAAkE,EAAE;gBACnF,SAAS;aACV,CAAC;YACJ,CAAC,CAAC,IAAI,CAAC,MAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;QACrE,OAAO,MAAM,CAAC,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,MAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACjF,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CACpB,CAAC;IACJ,CAAC;IAED,4EAA4E;IAE5E,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAO,CAAC;QAEvB,MAAM,kBAAkB,GAA2B,EAAE,CAAC;QACtD,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,CACrB,4EAA4E,CAC7E,EAAE,CAAC;YACF,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,aAAa,GAA+B;YAChD,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,CAAC;SACT,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,kEAAkE,CAAC,EAAE,CAAC;YAC5F,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAe,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpE,CAAC;QAED,uEAAuE;QACvE,qBAAqB;QACrB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACvC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAClE,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;QACrC,CAAC;QAED,OAAO;YACL,YAAY,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE;YAChC,kBAAkB;YAClB,aAAa;YACb,WAAW;YACX,YAAY,EACV,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACnF,aAAa,EAAE,CAAC;SACjB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,eAAe,GAAa,EAAE,CAAC;QAErC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACtC,OAAO;gBACL,MAAM,EAAE,WAAW;gBACnB,UAAU,EAAE;oBACV,OAAO,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE;oBACxE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;oBACxC,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;iBACzC;gBACD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,MAAM,EAAE,CAAC,yBAAyB,CAAC;gBACnC,eAAe,EAAE,CAAC,gCAAgC,CAAC;aACpD,CAAC;QACJ,CAAC;QAED,IAAI,aAA8B,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;YACxD,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBAClD,uEAAuE;gBACvE,aAAa,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;gBAC/C,eAAe,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;gBACtD,aAAa,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC;YACzF,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;YAClD,aAAa,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9E,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACxC,MAAM,kBAAkB,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC;QACzE,IAAI,kBAAkB,GAAG,EAAE,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;YACnD,eAAe,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;YAChE,aAAa,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;QAChF,CAAC;aAAM,IAAI,kBAAkB,GAAG,EAAE,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YAC/C,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACzC,IAAI,aAAa,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACvC,aAAa,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;YAClF,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GACV,aAAa,CAAC,MAAM,KAAK,WAAW;YAClC,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,UAAU;gBACnC,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,SAAS,CAAC;QAElB,OAAO;YACL,MAAM;YACN,UAAU,EAAE;gBACV,OAAO,EAAE,aAAa;gBACtB,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;gBACxC,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;aACzC;YACD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,MAAM;YACN,eAAe;SAChB,CAAC;IACJ,CAAC;IAED,gEAAgE;IAChE,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QACzB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED,4EAA4E;IAE5E,wEAAwE;IACxE,8EAA8E;IAC9E,0EAA0E;IAC1E,oDAAoD;IAC5C,MAAM,CAAU,MAAM,GAAG,wBAAwB,CAAC;IAClD,MAAM,CAAU,UAAU,GAAG,yBAAyB,CAAC;IACvD,MAAM,CAAU,WAAW,GAAG,GAAG,CAAC;IAEhC,YAAY,CAAC,IAAc;QACnC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,EAAE,GACN,OAAO,GAAG,KAAK,QAAQ;gBACvB,GAAG,CAAC,MAAM,IAAI,UAAU,CAAC,WAAW;gBACpC,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3F,IAAI,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAES,iBAAiB;QACzB,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,GAA4B;QAC7C,yEAAyE;QACzE,mEAAmE;QACnE,wEAAwE;QACxE,sDAAsD;QACtD,IAAI,SAAmC,CAAC;QACxC,MAAM,GAAG,GAAG,GAAG,CAAC,IAAuC,CAAC;QACxD,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YAC9B,SAAS,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,MAAqB,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAC9F,CAAC;QAED,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;YACpB,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;YAC5B,SAAS;YACT,IAAI,EAAE,GAAG,CAAC,IAAkB;YAC5B,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;YAChC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC1C,OAAO,EAAG,GAAG,CAAC,QAA0B,IAAI,SAAS;YACrD,WAAW,EAAE,GAAG,CAAC,YAA0C;YAC3D,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;YACjC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;YACjC,SAAS,EAAG,GAAG,CAAC,UAA4B,IAAI,SAAS;YACzD,OAAO,EAAG,GAAG,CAAC,QAA0B,IAAI,SAAS;YACrD,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;YAC5B,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC9C,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC;YACrC,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC;SAC7C,CAAC;IACJ,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"sql-backend.js","sourceRoot":"","sources":["../src/sql-backend.ts"],"names":[],"mappings":"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"}
|
package/dist/sql-schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-schema.d.ts","sourceRoot":"","sources":["../src/sql-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,+EAA+E;AAC/E,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqD7D;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"sql-schema.d.ts","sourceRoot":"","sources":["../src/sql-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,+EAA+E;AAC/E,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqD7D;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmBjE;AAED,iFAAiF;AACjF,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAOnE;AAED,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,iBAAiB,EAAE,OAAO,CAAC;IAC3B,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,SAAS,GAAG,eAAe,CA+BhF;AAID;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CASvD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAkD1D;AAqED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,eAAe,CAWnE"}
|