@aman_asmuei/amem 0.8.2 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/hooks.js ADDED
@@ -0,0 +1,213 @@
1
+ import path from "node:path";
2
+ import os from "node:os";
3
+ import fs from "node:fs";
4
+ /**
5
+ * Generate Claude Code hook configuration for automatic memory capture.
6
+ */
7
+ export function generateHooksConfig(config) {
8
+ const hooks = {};
9
+ if (config.captureToolUse) {
10
+ hooks.PostToolUse = [{
11
+ type: "command",
12
+ command: getPostToolUseCommand(),
13
+ timeout: 10000,
14
+ description: "amem: capture tool observations for persistent memory",
15
+ }];
16
+ }
17
+ if (config.captureSessionEnd) {
18
+ hooks.Stop = [{
19
+ type: "command",
20
+ command: getStopCommand(),
21
+ timeout: 15000,
22
+ description: "amem: summarize session and extract final memories",
23
+ }];
24
+ }
25
+ return hooks;
26
+ }
27
+ function getPostToolUseCommand() {
28
+ const scriptPath = getHookScriptPath("post-tool-use.mjs");
29
+ return `node "${scriptPath}"`;
30
+ }
31
+ function getStopCommand() {
32
+ const scriptPath = getHookScriptPath("session-end.mjs");
33
+ return `node "${scriptPath}"`;
34
+ }
35
+ function getHookScriptPath(name) {
36
+ const amemDir = process.env.AMEM_DIR || path.join(os.homedir(), ".amem");
37
+ return path.join(amemDir, "hooks", name);
38
+ }
39
+ /**
40
+ * Install hook scripts to ~/.amem/hooks/ and configure Claude Code settings.
41
+ */
42
+ export function installHooks(config) {
43
+ const amemDir = process.env.AMEM_DIR || path.join(os.homedir(), ".amem");
44
+ const hooksDir = path.join(amemDir, "hooks");
45
+ fs.mkdirSync(hooksDir, { recursive: true });
46
+ const installed = [];
47
+ const dbPath = process.env.AMEM_DB || path.join(amemDir, "memory.db");
48
+ if (config.captureToolUse) {
49
+ const scriptPath = path.join(hooksDir, "post-tool-use.mjs");
50
+ fs.writeFileSync(scriptPath, getPostToolUseScript(dbPath));
51
+ if (process.platform !== "win32")
52
+ fs.chmodSync(scriptPath, 0o755);
53
+ installed.push("post-tool-use.mjs");
54
+ }
55
+ if (config.captureSessionEnd) {
56
+ const scriptPath = path.join(hooksDir, "session-end.mjs");
57
+ fs.writeFileSync(scriptPath, getSessionEndScript(dbPath));
58
+ if (process.platform !== "win32")
59
+ fs.chmodSync(scriptPath, 0o755);
60
+ installed.push("session-end.mjs");
61
+ }
62
+ // Update Claude Code settings.json with hook configuration
63
+ const claudeDir = path.join(os.homedir(), ".claude");
64
+ const settingsPath = path.join(claudeDir, "settings.json");
65
+ let settings = {};
66
+ if (fs.existsSync(settingsPath)) {
67
+ try {
68
+ const raw = fs.readFileSync(settingsPath, "utf-8").trim();
69
+ if (raw)
70
+ settings = JSON.parse(raw);
71
+ }
72
+ catch {
73
+ // Start fresh if corrupted
74
+ }
75
+ }
76
+ const hooksConfig = generateHooksConfig(config);
77
+ const existingHooks = (settings.hooks ?? {});
78
+ // Merge amem hooks with existing hooks (don't overwrite user hooks)
79
+ for (const [event, newHooks] of Object.entries(hooksConfig)) {
80
+ const existing = (existingHooks[event] ?? []);
81
+ // Remove any previous amem hooks
82
+ const filtered = existing.filter(h => !String(h.description ?? "").includes("amem:"));
83
+ existingHooks[event] = [...filtered, ...newHooks];
84
+ }
85
+ settings.hooks = existingHooks;
86
+ fs.mkdirSync(claudeDir, { recursive: true });
87
+ fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + "\n");
88
+ return { installed, configPath: settingsPath };
89
+ }
90
+ /**
91
+ * Remove amem hooks from Claude Code settings and delete hook scripts.
92
+ */
93
+ export function uninstallHooks() {
94
+ const amemDir = process.env.AMEM_DIR || path.join(os.homedir(), ".amem");
95
+ const hooksDir = path.join(amemDir, "hooks");
96
+ const removed = [];
97
+ for (const name of ["post-tool-use.mjs", "session-end.mjs"]) {
98
+ const scriptPath = path.join(hooksDir, name);
99
+ if (fs.existsSync(scriptPath)) {
100
+ fs.unlinkSync(scriptPath);
101
+ removed.push(name);
102
+ }
103
+ }
104
+ // Remove amem hooks from Claude Code settings
105
+ const settingsPath = path.join(os.homedir(), ".claude", "settings.json");
106
+ if (fs.existsSync(settingsPath)) {
107
+ try {
108
+ const raw = fs.readFileSync(settingsPath, "utf-8").trim();
109
+ if (raw) {
110
+ const settings = JSON.parse(raw);
111
+ const hooks = (settings.hooks ?? {});
112
+ for (const event of Object.keys(hooks)) {
113
+ hooks[event] = hooks[event].filter(h => !String(h.description ?? "").includes("amem:"));
114
+ if (hooks[event].length === 0)
115
+ delete hooks[event];
116
+ }
117
+ settings.hooks = hooks;
118
+ fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + "\n");
119
+ }
120
+ }
121
+ catch {
122
+ // Can't parse settings — skip
123
+ }
124
+ }
125
+ return { removed };
126
+ }
127
+ // ── Hook Script Templates ──────────────────────────────
128
+ function getPostToolUseScript(dbPath) {
129
+ const escaped = dbPath.replace(/\\/g, "\\\\").replace(/'/g, "\\'");
130
+ return `#!/usr/bin/env node
131
+ // amem PostToolUse hook - captures tool observations for persistent memory
132
+ // Auto-generated by amem. Do not edit manually.
133
+
134
+ import { createRequire } from 'node:module';
135
+ import { randomUUID } from 'node:crypto';
136
+
137
+ const toolName = process.env.TOOL_NAME || '';
138
+ const toolInput = process.env.TOOL_INPUT || '';
139
+
140
+ // Skip amem's own tools to avoid infinite loops
141
+ if (toolName.startsWith('memory_') || toolName.startsWith('reminder_')) {
142
+ process.exit(0);
143
+ }
144
+
145
+ // Skip noisy/low-value tools
146
+ const SKIP_TOOLS = new Set(['Read', 'Glob', 'Grep', 'LS', 'Bash']);
147
+ if (SKIP_TOOLS.has(toolName)) {
148
+ process.exit(0);
149
+ }
150
+
151
+ if (!toolName || !toolInput || toolInput.length < 10) {
152
+ process.exit(0);
153
+ }
154
+
155
+ try {
156
+ const require = createRequire(import.meta.url);
157
+ const Database = require('better-sqlite3');
158
+ const db = new Database('${escaped}');
159
+ db.pragma('journal_mode = WAL');
160
+ db.pragma('busy_timeout = 2000');
161
+
162
+ const id = randomUUID();
163
+ const now = Date.now();
164
+ const sessionId = process.env.CLAUDE_SESSION_ID || 'hook-' + new Date().toISOString().slice(0, 10);
165
+ const project = process.env.AMEM_PROJECT || 'global';
166
+
167
+ const content = 'Tool: ' + toolName + '\\nInput: ' + toolInput.slice(0, 500);
168
+ const metadata = JSON.stringify({ hook: 'PostToolUse', tool: toolName });
169
+
170
+ db.prepare(
171
+ 'INSERT INTO conversation_log (id, session_id, role, content, timestamp, project, metadata) VALUES (?, ?, ?, ?, ?, ?, ?)'
172
+ ).run(id, sessionId, 'system', content, now, project, metadata);
173
+
174
+ db.close();
175
+ } catch {
176
+ process.exit(0);
177
+ }
178
+ `;
179
+ }
180
+ function getSessionEndScript(dbPath) {
181
+ const escaped = dbPath.replace(/\\/g, "\\\\").replace(/'/g, "\\'");
182
+ return `#!/usr/bin/env node
183
+ // amem Stop hook - logs session end marker for later summarization
184
+ // Auto-generated by amem. Do not edit manually.
185
+
186
+ import { createRequire } from 'node:module';
187
+ import { randomUUID } from 'node:crypto';
188
+
189
+ try {
190
+ const require = createRequire(import.meta.url);
191
+ const Database = require('better-sqlite3');
192
+ const db = new Database('${escaped}');
193
+ db.pragma('journal_mode = WAL');
194
+ db.pragma('busy_timeout = 2000');
195
+
196
+ const id = randomUUID();
197
+ const now = Date.now();
198
+ const sessionId = process.env.CLAUDE_SESSION_ID || 'hook-' + new Date().toISOString().slice(0, 10);
199
+ const project = process.env.AMEM_PROJECT || 'global';
200
+
201
+ const metadata = JSON.stringify({ hook: 'Stop', event: 'session_end' });
202
+
203
+ db.prepare(
204
+ 'INSERT INTO conversation_log (id, session_id, role, content, timestamp, project, metadata) VALUES (?, ?, ?, ?, ?, ?, ?)'
205
+ ).run(id, sessionId, 'system', '[SESSION_END] Session completed. Run memory_summarize to extract insights.', now, project, metadata);
206
+
207
+ db.close();
208
+ } catch {
209
+ process.exit(0);
210
+ }
211
+ `;
212
+ }
213
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -110,13 +110,35 @@ Call memory_extract with an array of memories. Each memory should be:
110
110
 
111
111
  - Ephemeral task details ("currently debugging X")
112
112
  - Things obvious from the code itself
113
- - Sensitive data (API keys, passwords)
113
+ - Sensitive data (API keys, passwords) — these are auto-redacted but avoid storing them
114
114
  - Exact file contents (just reference the path)
115
115
 
116
+ ## Privacy
117
+
118
+ - Wrap sensitive text in \`<private>...</private>\` tags — it will be stripped before storage
119
+ - API keys, tokens, and passwords are auto-redacted by pattern matching
120
+ - Never store credentials even if the user provides them
121
+
122
+ ## Temporal Validity
123
+
124
+ When a fact or decision changes:
125
+ - Use **memory_expire** to mark the old memory as no longer valid (preserved for history)
126
+ - Store the new memory — contradictions are auto-detected and old versions auto-expired
127
+ - Don't delete old memories — expiry preserves the timeline for "what was true when?"
128
+
129
+ ## Memory Tiers
130
+
131
+ Promote critical memories to higher tiers:
132
+ - **core** — Always injected at session start. Only the most important corrections/decisions (~500 tokens max)
133
+ - **working** — Session-scoped context, auto-surfaced for the current task
134
+ - **archival** — Default. Searchable but not auto-injected
135
+ Use memory_tier to move memories between tiers.
136
+
116
137
  ## Patching vs. Storing
117
138
 
118
139
  - Memory mostly right but has a wrong detail → **memory_patch** (surgical, auto-versioned)
119
140
  - Memory completely wrong → memory_forget then memory_store
141
+ - Memory outdated → **memory_expire** (preserves history) then memory_store
120
142
  - Always check with memory_search or memory_recall before creating a duplicate
121
143
 
122
144
  ## Building the Knowledge Graph
@@ -126,11 +148,17 @@ After storing decisions, link connected memories with memory_relate:
126
148
  - Correction "caused_by" Decision (why something is off-limits)
127
149
  - Topology "depends_on" Topology (how modules relate)
128
150
 
129
- ## Lossless Log
151
+ ## Advanced Recall
152
+
153
+ - **memory_recall** — Fast semantic search (default)
154
+ - **memory_multi_recall** — Combines 4 strategies: semantic + FTS + graph traversal + temporal. Use when standard recall misses something.
155
+ - **memory_search** — Exact full-text keyword matching
156
+
157
+ ## Session Management
130
158
 
131
- For raw exchanges not yet ready to distill:
132
159
  - Use memory_log to preserve turns verbatim (append-only, nothing lost)
133
- - Search later with memory_log_recall and promote to proper memories`,
160
+ - At session end, call **memory_summarize** with key decisions, corrections, and a summary
161
+ - Use **memory_history** to review past session summaries`,
134
162
  },
135
163
  }],
136
164
  }));
@@ -143,11 +171,13 @@ server.registerPrompt("session-start", {
143
171
  type: "text",
144
172
  text: `You have access to Amem memory. At the start of this conversation:
145
173
 
146
- 1. Call memory_inject with the likely topic — this surfaces corrections (hard constraints) and decisions first
147
- 2. Call memory_context for broader preferences, patterns, and topology
148
- 3. Apply corrections as absolute constraintsthey override everything else
149
- 4. Reference memories naturally: "I remember you prefer X" not "According to my memory database..."
150
- 5. If continuing previous work, call memory_log_recall with the session ID or a keyword to replay raw history
174
+ 1. Call **memory_inject** with the likely topic — surfaces corrections (hard constraints) and decisions first
175
+ 2. Call **reminder_check** shows overdue and upcoming reminders
176
+ 3. Check **core tier** memories with memory_tier action:list tier:core these are always-on context
177
+ 4. Call memory_context for broader preferences, patterns, and topology
178
+ 5. Apply corrections as absolute constraints they override everything else
179
+ 6. Reference memories naturally: "I remember you prefer X" not "According to my memory database..."
180
+ 7. If continuing previous work, call memory_log_recall or memory_history to review past sessions
151
181
 
152
182
  ## Tool Quick Reference
153
183
 
@@ -155,11 +185,15 @@ server.registerPrompt("session-start", {
155
185
  |------|------|
156
186
  | Load context for a task | memory_inject, memory_context |
157
187
  | Find something specific | memory_recall (semantic), memory_search (exact) |
188
+ | Deep search (4 strategies) | memory_multi_recall |
158
189
  | Store a new memory | memory_store or memory_extract (batch) |
159
190
  | Fix an existing memory | memory_patch (surgical, versioned) |
191
+ | Mark as outdated | memory_expire (preserves history) |
192
+ | Manage priority | memory_tier (core/working/archival) |
160
193
  | See what changed | memory_since "7d" |
161
194
  | Preserve raw conversation | memory_log |
162
- | Replay a past session | memory_log_recall |
195
+ | Summarize a session | memory_summarize |
196
+ | Review past sessions | memory_history |
163
197
  | Link related memories | memory_relate |
164
198
  | View edit history | memory_versions |
165
199
  | Clean up the database | memory_consolidate |`,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/memory.d.ts CHANGED
@@ -21,6 +21,9 @@ export interface Memory {
21
21
  source: string;
22
22
  embedding: Float32Array | null;
23
23
  scope: string;
24
+ validFrom: number;
25
+ validUntil: number | null;
26
+ tier: 'core' | 'working' | 'archival';
24
27
  }
25
28
  export interface ScoreInput {
26
29
  relevance: number;
@@ -44,6 +47,10 @@ export interface RecallOptions {
44
47
  minConfidence?: number;
45
48
  scope?: string;
46
49
  explain?: boolean;
50
+ /** Filter out expired memories (valid_until < now). Default: true */
51
+ filterExpired?: boolean;
52
+ /** Only return memories from this tier */
53
+ tier?: Memory["tier"];
47
54
  }
48
55
  export interface RecalledMemory extends Memory {
49
56
  score: number;
@@ -90,3 +97,30 @@ export interface ConsolidationReport {
90
97
  };
91
98
  }
92
99
  export declare function consolidateMemories(db: AmemDatabase, cosineSim: (a: Float32Array, b: Float32Array) => number, options: ConsolidationOptions): ConsolidationReport;
100
+ export interface MultiStrategyOptions {
101
+ query: string;
102
+ queryEmbedding: Float32Array | null;
103
+ limit: number;
104
+ scope?: string;
105
+ weights?: {
106
+ semantic: number;
107
+ fts: number;
108
+ graph: number;
109
+ temporal: number;
110
+ };
111
+ }
112
+ /**
113
+ * Multi-strategy retrieval: combines semantic search, FTS5, knowledge graph traversal,
114
+ * and temporal recency into a unified ranking. Each strategy votes independently,
115
+ * then scores are merged with configurable weights.
116
+ */
117
+ export declare function multiStrategyRecall(db: AmemDatabase, options: MultiStrategyOptions): RecalledMemory[];
118
+ /**
119
+ * When storing a new memory that contradicts an existing one,
120
+ * auto-expire the old memory instead of requiring manual consolidation.
121
+ */
122
+ export declare function autoExpireContradictions(db: AmemDatabase, newContent: string, newEmbedding: Float32Array | null, newType: MemoryTypeValue): {
123
+ expired: string[];
124
+ reason: string;
125
+ };
126
+ export { sanitizeContent } from "./config.js";
package/dist/memory.js CHANGED
@@ -30,7 +30,7 @@ export function detectConflict(newContent, existingContent, similarity) {
30
30
  };
31
31
  }
32
32
  export function recallMemories(db, options) {
33
- const { query, queryEmbedding, limit, type, tag, minConfidence, scope, explain } = options;
33
+ const { query, queryEmbedding, limit, type, tag, minConfidence, scope, explain, filterExpired = true, tier } = options;
34
34
  const now = Date.now();
35
35
  let candidates;
36
36
  if (type) {
@@ -51,6 +51,14 @@ export function recallMemories(db, options) {
51
51
  else {
52
52
  candidates = db.getAll();
53
53
  }
54
+ // Filter out expired memories (temporal validity)
55
+ if (filterExpired) {
56
+ candidates = candidates.filter(m => m.validUntil === null || m.validUntil > now);
57
+ }
58
+ // Filter by tier
59
+ if (tier) {
60
+ candidates = candidates.filter(m => m.tier === tier);
61
+ }
54
62
  if (minConfidence) {
55
63
  candidates = candidates.filter((m) => m.confidence >= minConfidence);
56
64
  }
@@ -244,4 +252,115 @@ export function consolidateMemories(db, cosineSim, options) {
244
252
  after: { total: afterTotal },
245
253
  };
246
254
  }
255
+ /**
256
+ * Multi-strategy retrieval: combines semantic search, FTS5, knowledge graph traversal,
257
+ * and temporal recency into a unified ranking. Each strategy votes independently,
258
+ * then scores are merged with configurable weights.
259
+ */
260
+ export function multiStrategyRecall(db, options) {
261
+ const { query, queryEmbedding, limit, scope } = options;
262
+ const weights = options.weights ?? { semantic: 0.4, fts: 0.3, graph: 0.15, temporal: 0.15 };
263
+ const now = Date.now();
264
+ const scoreMap = new Map();
265
+ const initEntry = (m) => {
266
+ if (!scoreMap.has(m.id)) {
267
+ scoreMap.set(m.id, { memory: m, scores: { semantic: 0, fts: 0, graph: 0, temporal: 0 } });
268
+ }
269
+ return scoreMap.get(m.id);
270
+ };
271
+ // Strategy 1: Semantic search (embedding similarity)
272
+ if (queryEmbedding) {
273
+ const candidates = scope ? db.getAllForProject(scope) : db.getAll();
274
+ const validCandidates = candidates.filter(m => m.validUntil === null || m.validUntil > now);
275
+ for (const m of validCandidates) {
276
+ if (!m.embedding)
277
+ continue;
278
+ const sim = Math.max(0, cosineSimilarity(queryEmbedding, m.embedding));
279
+ if (sim > 0.2) {
280
+ const entry = initEntry(m);
281
+ entry.scores.semantic = sim;
282
+ }
283
+ }
284
+ }
285
+ // Strategy 2: Full-text search (FTS5 exact matching)
286
+ try {
287
+ const ftsResults = db.fullTextSearch(query, limit * 2, scope);
288
+ const validFts = ftsResults.filter(m => m.validUntil === null || m.validUntil > now);
289
+ for (let i = 0; i < validFts.length; i++) {
290
+ const m = validFts[i];
291
+ const entry = initEntry(m);
292
+ // FTS rank: highest rank for first result, decaying
293
+ entry.scores.fts = Math.max(entry.scores.fts, 1.0 - (i / validFts.length) * 0.5);
294
+ }
295
+ }
296
+ catch {
297
+ // FTS may fail — skip this strategy
298
+ }
299
+ // Strategy 3: Knowledge graph traversal
300
+ // Find memories that are related to high-scoring candidates
301
+ const topSemanticIds = [...scoreMap.entries()]
302
+ .sort((a, b) => b[1].scores.semantic - a[1].scores.semantic)
303
+ .slice(0, 10)
304
+ .map(([id]) => id);
305
+ for (const id of topSemanticIds) {
306
+ const related = db.getRelatedMemories(id);
307
+ for (const m of related) {
308
+ if (m.validUntil !== null && m.validUntil <= now)
309
+ continue;
310
+ const entry = initEntry(m);
311
+ const parentScore = scoreMap.get(id)?.scores.semantic ?? 0;
312
+ // Graph neighbors get a fraction of the parent's score
313
+ entry.scores.graph = Math.max(entry.scores.graph, parentScore * 0.6);
314
+ }
315
+ }
316
+ // Strategy 4: Temporal boost (recently accessed/created memories score higher)
317
+ for (const [, entry] of scoreMap) {
318
+ const hoursSinceAccess = (now - entry.memory.lastAccessed) / (1000 * 60 * 60);
319
+ entry.scores.temporal = Math.pow(0.995, Math.max(0, hoursSinceAccess));
320
+ }
321
+ // Merge scores with weights
322
+ const results = [];
323
+ for (const [, entry] of scoreMap) {
324
+ const { semantic, fts, graph, temporal } = entry.scores;
325
+ const importance = IMPORTANCE_WEIGHTS[entry.memory.type] ?? 0.4;
326
+ const combined = (semantic * weights.semantic +
327
+ fts * weights.fts +
328
+ graph * weights.graph +
329
+ temporal * weights.temporal) * entry.memory.confidence * importance;
330
+ results.push({ ...entry.memory, score: combined });
331
+ }
332
+ results.sort((a, b) => b.score - a.score);
333
+ return results.slice(0, limit);
334
+ }
335
+ // ── Auto-expire contradictions ─────────────────────────
336
+ /**
337
+ * When storing a new memory that contradicts an existing one,
338
+ * auto-expire the old memory instead of requiring manual consolidation.
339
+ */
340
+ export function autoExpireContradictions(db, newContent, newEmbedding, newType) {
341
+ if (!newEmbedding)
342
+ return { expired: [], reason: "no embedding" };
343
+ const existing = db.getRecentWithEmbeddings(50000);
344
+ const expired = [];
345
+ for (const mem of existing) {
346
+ if (!mem.embedding)
347
+ continue;
348
+ if (mem.type !== newType)
349
+ continue; // Only expire same-type memories
350
+ if (mem.validUntil !== null)
351
+ continue; // Already expired
352
+ const sim = cosineSimilarity(newEmbedding, mem.embedding);
353
+ if (sim > 0.75 && sim < 0.95) {
354
+ // High similarity but not exact match = likely contradicting/superseding
355
+ const conflict = detectConflict(newContent, mem.content, sim);
356
+ if (conflict.isConflict) {
357
+ db.expireMemory(mem.id);
358
+ expired.push(mem.id);
359
+ }
360
+ }
361
+ }
362
+ return { expired, reason: expired.length > 0 ? `auto-expired ${expired.length} contradicting memories` : "no contradictions" };
363
+ }
364
+ // ── Privacy helper (re-exported for tools) ─────────────
365
+ export { sanitizeContent } from "./config.js";
247
366
  //# sourceMappingURL=memory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,UAAU,EAAE,YAAY;IACxB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,YAAY;IACxB,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,MAAM;CACJ,CAAC;AAIX,MAAM,CAAC,MAAM,kBAAkB,GAAoC;IACjE,UAAU,EAAE,GAAG;IACf,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,GAAG;IACZ,UAAU,EAAE,GAAG;IACf,QAAQ,EAAE,GAAG;IACb,IAAI,EAAE,GAAG;CACV,CAAC;AA2BF,MAAM,UAAU,YAAY,CAAC,KAAiB;IAC5C,MAAM,gBAAgB,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAC/D,OAAO,KAAK,CAAC,SAAS,GAAG,OAAO,GAAG,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;AACzE,CAAC;AAOD,MAAM,UAAU,cAAc,CAC5B,UAAkB,EAClB,eAAuB,EACvB,UAAkB;IAElB,IAAI,UAAU,KAAK,eAAe,EAAE,CAAC;QACnC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAC3C,CAAC;IACD,OAAO;QACL,UAAU,EAAE,UAAU,GAAG,IAAI;QAC7B,UAAU;KACX,CAAC;AACJ,CAAC;AAoCD,MAAM,UAAU,cAAc,CAC5B,EAAgB,EAChB,OAAsB;IAEtB,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IACvH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEvB,IAAI,UAAoB,CAAC;IACzB,IAAI,IAAI,EAAE,CAAC;QACT,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,KAAK,EAAE,CAAC;YACV,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;SAAM,IAAI,GAAG,EAAE,CAAC;QACf,UAAU,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,KAAK,EAAE,CAAC;YACV,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;SAAM,IAAI,KAAK,EAAE,CAAC;QACjB,UAAU,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;IAC3B,CAAC;IAED,kDAAkD;IAClD,IAAI,aAAa,EAAE,CAAC;QAClB,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC;IACnF,CAAC;IAED,iBAAiB;IACjB,IAAI,IAAI,EAAE,CAAC;QACT,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,aAAa,EAAE,CAAC;QAClB,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,aAAa,CAAC,CAAC;IACvE,CAAC;IAED,sEAAsE;IACtE,IAAI,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAC9B,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CACtC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAC9F,CAAC;QACF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,UAAU,GAAG,cAAc,CAAC;QAC9B,CAAC;QACD,8DAA8D;IAChE,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACvC,IAAI,SAAS,GAAG,GAAG,CAAC;QACpB,IAAI,eAAe,GAAwC,SAAS,CAAC;QACrE,IAAI,cAAc,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACvC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YAC5E,eAAe,GAAG,UAAU,CAAC;QAC/B,CAAC;aAAM,IAAI,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC/E,SAAS,GAAG,IAAI,CAAC;YACjB,eAAe,GAAG,SAAS,CAAC;QAC9B,CAAC;QAED,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;QAC1D,MAAM,gBAAgB,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QACxE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;QAEnE,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO;gBACL,GAAG,MAAM;gBACT,KAAK;gBACL,WAAW,EAAE;oBACX,SAAS;oBACT,eAAe;oBACf,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBACnC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBACrD,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,UAAU;oBACV,eAAe,EAAE,MAAM,CAAC,IAAI;oBAC5B,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;iBACrC;aACiB,CAAC;QACvB,CAAC;QAED,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAoB,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChC,CAAC;AA4BD,MAAM,UAAU,mBAAmB,CACjC,EAAgB,EAChB,SAAuD,EACvD,OAA6B;IAE7B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACrC,MAAM,WAAW,GAAG,EAAE,CAAC,oBAAoB,EAAE,CAAC;IAC9C,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;IACxB,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC;IAE/B,MAAM,OAAO,GAA0B,EAAE,CAAC;IAC1C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,yDAAyD;IACzD,mFAAmF;IACnF,4DAA4D;IAC5D,MAAM,eAAe,GAAG,GAAG,CAAC;IAC5B,MAAM,MAAM,GAAG,IAAI,GAAG,EAA8B,CAAC;IACrD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,SAAS;YAAE,SAAS;QAC7B,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY;YAAE,SAAS;QACxC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QAC/B,uFAAuF;QACvF,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;QAE/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAAE,SAAS;YAEzC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAAE,SAAS;gBAEzC,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAU,CAAC,CAAC;gBAClE,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU;wBAClE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;wBACxB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;oBAE3B,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACzB,OAAO,CAAC,IAAI,CAAC;wBACX,MAAM,EAAE,QAAQ;wBAChB,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC;wBAChC,WAAW,EAAE,WAAW,OAAO,CAAC,OAAO,WAAW,IAAI,CAAC,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY;qBACvG,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS;QACnC,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY;YAAE,SAAS;QAExC,MAAM,eAAe,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;QAC5D,IACE,eAAe,GAAG,OAAO,CAAC,YAAY;YACtC,GAAG,CAAC,UAAU,GAAG,OAAO,CAAC,aAAa;YACtC,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC,cAAc,EACxC,CAAC;YACD,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC;gBACX,MAAM,EAAE,QAAQ;gBAChB,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnB,WAAW,EAAE,WAAW,GAAG,CAAC,OAAO,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,GAAG,CAAC,WAAW,YAAY;aAC7J,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,MAAM,SAAS,GAAqB,EAAE,CAAC;IACvC,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS;QACnC,IAAI,GAAG,CAAC,WAAW,IAAI,CAAC,IAAI,GAAG,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC;YACjD,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YAC/B,QAAQ,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC;gBACX,MAAM,EAAE,UAAU;gBAClB,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnB,WAAW,EAAE,aAAa,GAAG,CAAC,OAAO,iCAAiC,GAAG,CAAC,WAAW,SAAS;aAC/F,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,MAAM,OAAO,GAA4C,EAAE,CAAC;IAC5D,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC;QAC3C,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACtB,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,SAAS;YACnC,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY;gBAAE,SAAS;YACxC,MAAM,eAAe,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;YAC5D,IAAI,eAAe,GAAG,EAAE,IAAI,GAAG,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC;gBACjD,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7D,IAAI,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;oBAC7B,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;oBACpE,OAAO,EAAE,CAAC;oBACV,OAAO,CAAC,IAAI,CAAC;wBACX,MAAM,EAAE,SAAS;wBACjB,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;wBACnB,WAAW,EAAE,YAAY,GAAG,CAAC,OAAO,UAAU,CAAC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;qBACtK,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,gEAAgE;IAChE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YAClB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;oBAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBACnC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBACtC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;oBACtF,IAAI,IAAI,EAAE,CAAC;wBACT,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC;oBACpE,CAAC;oBACD,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;gBAC7B,CAAC;qBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;oBACtC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;YACD,KAAK,MAAM,EAAE,EAAE,EAAE,IAAI,SAAS,EAAE,CAAC;gBAC/B,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YAC/B,CAAC;YACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC/C,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC;IACpH,MAAM,WAAW,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC;IAE1F,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM;QACzD,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM;QACzD,QAAQ;QACR,OAAO;QACP,OAAO;QACP,WAAW;QACX,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE;QAC9B,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;KAC7B,CAAC;AACJ,CAAC;AAiBD;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,EAAgB,EAChB,OAA6B;IAE7B,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IACxD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5F,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEvB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA0G,CAAC;IAEnI,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE;QAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YACxB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5F,CAAC;QACD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC;IAC7B,CAAC,CAAC;IAEF,qDAAqD;IACrD,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;QACpE,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC;QAC5F,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;YAChC,IAAI,CAAC,CAAC,CAAC,SAAS;gBAAE,SAAS;YAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YACvE,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;gBACd,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC3B,KAAK,CAAC,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;IAED,qDAAqD;IACrD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QAC9D,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC;QACrF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC3B,oDAAoD;YACpD,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,oCAAoC;IACtC,CAAC;IAED,wCAAwC;IACxC,4DAA4D;IAC5D,MAAM,cAAc,GAAG,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;SAC3C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;SAC3D,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;SACZ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IAErB,KAAK,MAAM,EAAE,IAAI,cAAc,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QAC1C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,CAAC,UAAU,IAAI,GAAG;gBAAE,SAAS;YAC3D,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;YAC3D,uDAAuD;YACvD,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;QACjC,MAAM,gBAAgB,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9E,KAAK,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,4BAA4B;IAC5B,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;QACjC,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;QACxD,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;QAChE,MAAM,QAAQ,GAAG,CACf,QAAQ,GAAG,OAAO,CAAC,QAAQ;YAC3B,GAAG,GAAG,OAAO,CAAC,GAAG;YACjB,KAAK,GAAG,OAAO,CAAC,KAAK;YACrB,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAC5B,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;QAEzC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAC1C,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,CAAC;AAED,0DAA0D;AAE1D;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,EAAgB,EAChB,UAAkB,EAClB,YAAiC,EACjC,OAAwB;IAExB,IAAI,CAAC,YAAY;QAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IAElE,MAAM,QAAQ,GAAG,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,SAAS;YAAE,SAAS;QAC7B,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;YAAE,SAAS,CAAC,iCAAiC;QACrE,IAAI,GAAG,CAAC,UAAU,KAAK,IAAI;YAAE,SAAS,CAAC,kBAAkB;QAEzD,MAAM,GAAG,GAAG,gBAAgB,CAAC,YAAY,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;QAC1D,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC;YAC7B,yEAAyE;YACzE,MAAM,QAAQ,GAAG,cAAc,CAAC,UAAU,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC9D,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACxB,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACxB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,OAAO,CAAC,MAAM,yBAAyB,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC;AACjI,CAAC;AAED,0DAA0D;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { AmemDatabase } from "../database.js";
3
+ export declare function registerAdvancedTools(server: McpServer, db: AmemDatabase, project: string): void;