cortex-mcp 2.7.6 → 2.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/CHANGELOG.md +305 -58
- package/README.md +394 -224
- package/dist/cli/setup.js +58 -60
- package/dist/cli/setup.js.map +1 -1
- package/dist/config/config.js +2 -2
- package/dist/config/config.js.map +1 -1
- package/dist/db/database.d.ts +8 -0
- package/dist/db/database.d.ts.map +1 -1
- package/dist/db/database.js +35 -54
- package/dist/db/database.js.map +1 -1
- package/dist/db/event-log.d.ts +4 -0
- package/dist/db/event-log.d.ts.map +1 -1
- package/dist/db/event-log.js +14 -10
- package/dist/db/event-log.js.map +1 -1
- package/dist/db/memory-store.d.ts +30 -3
- package/dist/db/memory-store.d.ts.map +1 -1
- package/dist/db/memory-store.js +153 -55
- package/dist/db/memory-store.js.map +1 -1
- package/dist/embedding-worker.js +1 -1
- package/dist/embedding-worker.js.map +1 -1
- package/dist/hooks/git-capture.js +3 -3
- package/dist/hooks/git-hooks.js +5 -2
- package/dist/mcp-stdio.js +39 -5
- package/dist/mcp-stdio.js.map +1 -1
- package/dist/memory/access-pattern-tracker.d.ts +51 -0
- package/dist/memory/access-pattern-tracker.d.ts.map +1 -0
- package/dist/memory/access-pattern-tracker.js +92 -0
- package/dist/memory/access-pattern-tracker.js.map +1 -0
- package/dist/memory/anticipation-engine.d.ts.map +1 -1
- package/dist/memory/anticipation-engine.js +18 -10
- package/dist/memory/anticipation-engine.js.map +1 -1
- package/dist/memory/auto-learner.d.ts.map +1 -1
- package/dist/memory/auto-learner.js +192 -45
- package/dist/memory/auto-learner.js.map +1 -1
- package/dist/memory/completion-resolver.d.ts +38 -0
- package/dist/memory/completion-resolver.d.ts.map +1 -0
- package/dist/memory/completion-resolver.js +127 -0
- package/dist/memory/completion-resolver.js.map +1 -0
- package/dist/memory/confidence-decay.d.ts.map +1 -1
- package/dist/memory/confidence-decay.js +13 -9
- package/dist/memory/confidence-decay.js.map +1 -1
- package/dist/memory/convention-detector.d.ts +11 -0
- package/dist/memory/convention-detector.d.ts.map +1 -0
- package/dist/memory/convention-detector.js +294 -0
- package/dist/memory/convention-detector.js.map +1 -0
- package/dist/memory/correction-detector.d.ts +33 -0
- package/dist/memory/correction-detector.d.ts.map +1 -0
- package/dist/memory/correction-detector.js +129 -0
- package/dist/memory/correction-detector.js.map +1 -0
- package/dist/memory/cross-memory-linker.d.ts +18 -0
- package/dist/memory/cross-memory-linker.d.ts.map +1 -0
- package/dist/memory/cross-memory-linker.js +115 -0
- package/dist/memory/cross-memory-linker.js.map +1 -0
- package/dist/memory/daily-diary.d.ts +30 -0
- package/dist/memory/daily-diary.d.ts.map +1 -0
- package/dist/memory/daily-diary.js +159 -0
- package/dist/memory/daily-diary.js.map +1 -0
- package/dist/memory/embedding-cache.d.ts +32 -0
- package/dist/memory/embedding-cache.d.ts.map +1 -0
- package/dist/memory/embedding-cache.js +76 -0
- package/dist/memory/embedding-cache.js.map +1 -0
- package/dist/memory/embedding-manager.d.ts.map +1 -1
- package/dist/memory/embedding-manager.js +6 -4
- package/dist/memory/embedding-manager.js.map +1 -1
- package/dist/memory/error-learner.d.ts +26 -0
- package/dist/memory/error-learner.d.ts.map +1 -0
- package/dist/memory/error-learner.js +145 -0
- package/dist/memory/error-learner.js.map +1 -0
- package/dist/memory/export-import.js +2 -2
- package/dist/memory/export-import.js.map +1 -1
- package/dist/memory/file-relationships.d.ts +47 -0
- package/dist/memory/file-relationships.d.ts.map +1 -0
- package/dist/memory/file-relationships.js +130 -0
- package/dist/memory/file-relationships.js.map +1 -0
- package/dist/memory/git-memory.d.ts.map +1 -1
- package/dist/memory/git-memory.js +20 -26
- package/dist/memory/git-memory.js.map +1 -1
- package/dist/memory/impact-analyzer.d.ts +16 -0
- package/dist/memory/impact-analyzer.d.ts.map +1 -0
- package/dist/memory/impact-analyzer.js +189 -0
- package/dist/memory/impact-analyzer.js.map +1 -0
- package/dist/memory/instructions-generator.d.ts +30 -0
- package/dist/memory/instructions-generator.d.ts.map +1 -0
- package/dist/memory/instructions-generator.js +117 -0
- package/dist/memory/instructions-generator.js.map +1 -0
- package/dist/memory/learning-rate.js +8 -7
- package/dist/memory/learning-rate.js.map +1 -1
- package/dist/memory/llm-enhancer.d.ts +2 -14
- package/dist/memory/llm-enhancer.d.ts.map +1 -1
- package/dist/memory/llm-enhancer.js +66 -46
- package/dist/memory/llm-enhancer.js.map +1 -1
- package/dist/memory/memory-cache.d.ts.map +1 -1
- package/dist/memory/memory-cache.js +10 -0
- package/dist/memory/memory-cache.js.map +1 -1
- package/dist/memory/memory-consolidator.d.ts.map +1 -1
- package/dist/memory/memory-consolidator.js +20 -14
- package/dist/memory/memory-consolidator.js.map +1 -1
- package/dist/memory/memory-decay.d.ts.map +1 -1
- package/dist/memory/memory-decay.js +82 -52
- package/dist/memory/memory-decay.js.map +1 -1
- package/dist/memory/memory-export-md.d.ts +12 -0
- package/dist/memory/memory-export-md.d.ts.map +1 -0
- package/dist/memory/memory-export-md.js +188 -0
- package/dist/memory/memory-export-md.js.map +1 -0
- package/dist/memory/memory-quality.d.ts +1 -1
- package/dist/memory/memory-quality.d.ts.map +1 -1
- package/dist/memory/memory-quality.js +9 -6
- package/dist/memory/memory-quality.js.map +1 -1
- package/dist/memory/memory-ranker.d.ts.map +1 -1
- package/dist/memory/memory-ranker.js +12 -3
- package/dist/memory/memory-ranker.js.map +1 -1
- package/dist/memory/meta-memory.js +3 -3
- package/dist/memory/meta-memory.js.map +1 -1
- package/dist/memory/mmr-reranker.d.ts +39 -0
- package/dist/memory/mmr-reranker.d.ts.map +1 -0
- package/dist/memory/mmr-reranker.js +115 -0
- package/dist/memory/mmr-reranker.js.map +1 -0
- package/dist/memory/pre-flight.d.ts +24 -0
- package/dist/memory/pre-flight.d.ts.map +1 -0
- package/dist/memory/pre-flight.js +121 -0
- package/dist/memory/pre-flight.js.map +1 -0
- package/dist/memory/preference-learner.d.ts +28 -0
- package/dist/memory/preference-learner.d.ts.map +1 -0
- package/dist/memory/preference-learner.js +144 -0
- package/dist/memory/preference-learner.js.map +1 -0
- package/dist/memory/query-expansion.d.ts +28 -0
- package/dist/memory/query-expansion.d.ts.map +1 -0
- package/dist/memory/query-expansion.js +140 -0
- package/dist/memory/query-expansion.js.map +1 -0
- package/dist/memory/regression-guard.d.ts +35 -0
- package/dist/memory/regression-guard.d.ts.map +1 -0
- package/dist/memory/regression-guard.js +90 -0
- package/dist/memory/regression-guard.js.map +1 -0
- package/dist/memory/resume-work.d.ts +37 -0
- package/dist/memory/resume-work.d.ts.map +1 -0
- package/dist/memory/resume-work.js +141 -0
- package/dist/memory/resume-work.js.map +1 -0
- package/dist/memory/session-tracker.d.ts +2 -0
- package/dist/memory/session-tracker.d.ts.map +1 -1
- package/dist/memory/session-tracker.js +26 -8
- package/dist/memory/session-tracker.js.map +1 -1
- package/dist/memory/soul-manager.d.ts +30 -0
- package/dist/memory/soul-manager.d.ts.map +1 -0
- package/dist/memory/soul-manager.js +171 -0
- package/dist/memory/soul-manager.js.map +1 -0
- package/dist/memory/success-tracker.d.ts +33 -0
- package/dist/memory/success-tracker.d.ts.map +1 -0
- package/dist/memory/success-tracker.js +75 -0
- package/dist/memory/success-tracker.js.map +1 -0
- package/dist/memory/temporal-engine.d.ts.map +1 -1
- package/dist/memory/temporal-engine.js +9 -13
- package/dist/memory/temporal-engine.js.map +1 -1
- package/dist/memory/tool-recommender.d.ts +29 -0
- package/dist/memory/tool-recommender.d.ts.map +1 -0
- package/dist/memory/tool-recommender.js +117 -0
- package/dist/memory/tool-recommender.js.map +1 -0
- package/dist/memory/usage-stats.d.ts +98 -0
- package/dist/memory/usage-stats.d.ts.map +1 -0
- package/dist/memory/usage-stats.js +345 -0
- package/dist/memory/usage-stats.js.map +1 -0
- package/dist/retrieval/hybrid-retriever.d.ts +0 -2
- package/dist/retrieval/hybrid-retriever.d.ts.map +1 -1
- package/dist/retrieval/hybrid-retriever.js +3 -13
- package/dist/retrieval/hybrid-retriever.js.map +1 -1
- package/dist/scanners/architecture-graph.js +2 -2
- package/dist/scanners/architecture-graph.js.map +1 -1
- package/dist/scanners/code-verifier.d.ts +1 -0
- package/dist/scanners/code-verifier.d.ts.map +1 -1
- package/dist/scanners/code-verifier.js +14 -14
- package/dist/scanners/code-verifier.js.map +1 -1
- package/dist/scanners/context-builder.d.ts.map +1 -1
- package/dist/scanners/context-builder.js +33 -45
- package/dist/scanners/context-builder.js.map +1 -1
- package/dist/scanners/export-map.js +2 -2
- package/dist/scanners/export-map.js.map +1 -1
- package/dist/scanners/project-scanner.js +2 -2
- package/dist/scanners/project-scanner.js.map +1 -1
- package/dist/security/encryption.js +1 -1
- package/dist/security/encryption.js.map +1 -1
- package/dist/security/feature-gate.d.ts.map +1 -1
- package/dist/security/feature-gate.js +62 -20
- package/dist/security/feature-gate.js.map +1 -1
- package/dist/security/license.js +282 -35
- package/dist/security/license.js.map +1 -1
- package/dist/security/rate-limiter.d.ts +4 -3
- package/dist/security/rate-limiter.d.ts.map +1 -1
- package/dist/security/rate-limiter.js +11 -29
- package/dist/security/rate-limiter.js.map +1 -1
- package/dist/server/dashboard.js +166 -327
- package/dist/server/dashboard.js.map +1 -1
- package/dist/server/mcp-handler.d.ts.map +1 -1
- package/dist/server/mcp-handler.js +1000 -792
- package/dist/server/mcp-handler.js.map +1 -1
- package/dist/utils/extract-tags.d.ts +16 -0
- package/dist/utils/extract-tags.d.ts.map +1 -0
- package/dist/utils/extract-tags.js +40 -0
- package/dist/utils/extract-tags.js.map +1 -0
- package/package.json +18 -8
- package/dist/core/event-bus.d.ts +0 -19
- package/dist/core/event-bus.d.ts.map +0 -1
- package/dist/core/event-bus.js +0 -51
- package/dist/core/event-bus.js.map +0 -1
package/dist/cli/setup.js
CHANGED
|
@@ -86,8 +86,18 @@ const CLIENTS = {
|
|
|
86
86
|
// ─── Server Entry ─────────────────────────────────────────────────────────────
|
|
87
87
|
const SERVER_ENTRY = {
|
|
88
88
|
command: 'npx',
|
|
89
|
-
args: ['-y', 'cortex-mcp'],
|
|
89
|
+
args: ['-y', 'cortex-mcp@latest'],
|
|
90
|
+
transportType: 'stdio',
|
|
90
91
|
};
|
|
92
|
+
// Entry with optional env vars (for users who set up OpenRouter)
|
|
93
|
+
function getServerEntryWithEnv() {
|
|
94
|
+
const entry = { ...SERVER_ENTRY };
|
|
95
|
+
// Check if OPENROUTER_API_KEY is set in the system environment
|
|
96
|
+
if (process.env.OPENROUTER_API_KEY) {
|
|
97
|
+
entry.env = { OPENROUTER_API_KEY: process.env.OPENROUTER_API_KEY };
|
|
98
|
+
}
|
|
99
|
+
return entry;
|
|
100
|
+
}
|
|
91
101
|
// ─── Helpers ──────────────────────────────────────────────────────────────────
|
|
92
102
|
function readJSON(filePath) {
|
|
93
103
|
try {
|
|
@@ -124,7 +134,7 @@ function configureClient(clientKey) {
|
|
|
124
134
|
return false;
|
|
125
135
|
}
|
|
126
136
|
const config = readJSON(client.configPath);
|
|
127
|
-
const updated = setNestedKey(config, client.configKey,
|
|
137
|
+
const updated = setNestedKey(config, client.configKey, getServerEntryWithEnv());
|
|
128
138
|
writeJSON(client.configPath, updated);
|
|
129
139
|
console.log(`[OK] ${client.name} configured!`);
|
|
130
140
|
console.log(` Config: ${client.configPath}`);
|
|
@@ -141,9 +151,9 @@ function autoDetect() {
|
|
|
141
151
|
}
|
|
142
152
|
// ─── Git Hook Installation ────────────────────────────────────────────────────
|
|
143
153
|
const HOOKS = {
|
|
144
|
-
'post-commit': '#!/bin/sh\n# Cortex — Auto-capture commits\
|
|
145
|
-
'post-checkout': '#!/bin/sh\n# Cortex — Track branch switches\
|
|
146
|
-
'post-merge': '#!/bin/sh\n# Cortex — Track merges\
|
|
154
|
+
'post-commit': '#!/bin/sh\n# Cortex — Auto-capture commits\nnpx cortex-capture 2>/dev/null || true\n',
|
|
155
|
+
'post-checkout': '#!/bin/sh\n# Cortex — Track branch switches\nnpx cortex-hooks checkout "$@" 2>/dev/null || true\n',
|
|
156
|
+
'post-merge': '#!/bin/sh\n# Cortex — Track merges\nnpx cortex-hooks merge "$@" 2>/dev/null || true\n',
|
|
147
157
|
};
|
|
148
158
|
function installGitHooks(workspaceRoot) {
|
|
149
159
|
const gitDir = path.join(workspaceRoot, '.git');
|
|
@@ -164,7 +174,12 @@ function installGitHooks(workspaceRoot) {
|
|
|
164
174
|
fs.appendFileSync(hookPath, `\n# Cortex MCP\n${appendLine}\n`);
|
|
165
175
|
}
|
|
166
176
|
else {
|
|
167
|
-
fs.writeFileSync(hookPath, hookContent
|
|
177
|
+
fs.writeFileSync(hookPath, hookContent);
|
|
178
|
+
// Make executable on Unix (safe no-op on Windows)
|
|
179
|
+
try {
|
|
180
|
+
fs.chmodSync(hookPath, 0o755);
|
|
181
|
+
}
|
|
182
|
+
catch { /* Windows ignores chmod */ }
|
|
168
183
|
}
|
|
169
184
|
installed++;
|
|
170
185
|
}
|
|
@@ -173,35 +188,35 @@ function installGitHooks(workspaceRoot) {
|
|
|
173
188
|
// ─── Prompt Rules Installation ────────────────────────────────────────────────
|
|
174
189
|
// Each AI client has its own rules file. These tell the AI to auto-call
|
|
175
190
|
// force_recall at conversation start and auto_learn after every response.
|
|
176
|
-
const CORTEX_RULES = `# Cortex Memory Rules
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
-
|
|
195
|
-
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
##
|
|
204
|
-
|
|
191
|
+
const CORTEX_RULES = `# Cortex Memory Rules — MANDATORY
|
|
192
|
+
|
|
193
|
+
## At Conversation Start (ALWAYS)
|
|
194
|
+
1. ALWAYS call \`mcp_cortex_force_recall\` with the topic of the user's question
|
|
195
|
+
- This returns ALL corrections, decisions, conventions, and bug fixes
|
|
196
|
+
- Plus topic-specific search results
|
|
197
|
+
- DO NOT skip this step. It is mandatory.
|
|
198
|
+
|
|
199
|
+
## After EVERY Response (ALWAYS)
|
|
200
|
+
2. ALWAYS call \`mcp_cortex_auto_learn\` with the text of your response
|
|
201
|
+
- Cortex will automatically extract and store any decisions, corrections, conventions, or bug fixes
|
|
202
|
+
- This is how Cortex learns passively — zero manual effort required
|
|
203
|
+
- DO NOT skip this step. It is mandatory.
|
|
204
|
+
|
|
205
|
+
## When Decisions Are Made
|
|
206
|
+
ALSO call \`mcp_cortex_store_memory\` for high-importance items:
|
|
207
|
+
- A critical architectural decision (type: DECISION)
|
|
208
|
+
- A mistake that must never be repeated (type: CORRECTION)
|
|
209
|
+
- A project-wide coding convention (type: CONVENTION)
|
|
210
|
+
- A tricky bug that was hard to find (type: BUG_FIX)
|
|
211
|
+
|
|
212
|
+
## Before Suggesting Code
|
|
213
|
+
Call \`mcp_cortex_verify_code\` to check:
|
|
214
|
+
- Are import packages real (exist in package.json)?
|
|
215
|
+
- Are imported functions actually exported?
|
|
216
|
+
- Are env variables defined in .env?
|
|
217
|
+
|
|
218
|
+
## Before Referencing Files
|
|
219
|
+
Call \`mcp_cortex_verify_files\` to check if file paths are real.
|
|
205
220
|
`;
|
|
206
221
|
// Map of client → rules file path (relative to project root)
|
|
207
222
|
const RULES_FILES = {
|
|
@@ -220,8 +235,8 @@ function installPromptRules(workspaceRoot, detectedClients) {
|
|
|
220
235
|
// Don't overwrite — check if Cortex rules already present
|
|
221
236
|
if (fs.existsSync(fullPath)) {
|
|
222
237
|
const existing = fs.readFileSync(fullPath, 'utf-8');
|
|
223
|
-
if (existing.includes('mcp_cortex_force_recall')
|
|
224
|
-
continue; // Already installed
|
|
238
|
+
if (existing.includes('mcp_cortex_force_recall'))
|
|
239
|
+
continue; // Already installed
|
|
225
240
|
// Append to existing rules
|
|
226
241
|
fs.appendFileSync(fullPath, '\n\n' + CORTEX_RULES);
|
|
227
242
|
console.log(`[OK] Cortex rules appended to ${rulesFile}`);
|
|
@@ -277,7 +292,7 @@ function main() {
|
|
|
277
292
|
const count = installGitHooks(cwd);
|
|
278
293
|
if (count > 0) {
|
|
279
294
|
console.log(`[OK] ${count} git hook(s) installed (commits, branches, merges)`);
|
|
280
|
-
console.log(' Every
|
|
295
|
+
console.log(' Every code change will now be auto-captured as a memory!');
|
|
281
296
|
}
|
|
282
297
|
else {
|
|
283
298
|
console.log('[OK] Git hooks already installed');
|
|
@@ -287,29 +302,12 @@ function main() {
|
|
|
287
302
|
console.log('[INFO] No git repo detected in current directory.');
|
|
288
303
|
console.log(' Run "cortex-setup" inside a git repo to enable auto-capture.');
|
|
289
304
|
}
|
|
305
|
+
console.log('\nDone! Restart your AI client to activate Cortex.');
|
|
290
306
|
console.log('');
|
|
291
|
-
console.log('
|
|
292
|
-
console.log('
|
|
293
|
-
console.log('
|
|
294
|
-
console.log('');
|
|
295
|
-
console.log(' NEXT STEPS:');
|
|
296
|
-
console.log(' 1. Restart your AI client (Cursor, Claude, etc.)');
|
|
297
|
-
console.log(' 2. Start a new conversation — Cortex activates automatically');
|
|
298
|
-
console.log(' 3. Open your brain dashboard anytime:');
|
|
299
|
-
console.log(' http://localhost:3456');
|
|
300
|
-
console.log('');
|
|
301
|
-
console.log(' VERIFY IT\'S WORKING:');
|
|
302
|
-
console.log(' Ask your AI: "What does Cortex know about this project?"');
|
|
303
|
-
console.log(' Or ask: "Call force_recall with topic: test"');
|
|
304
|
-
console.log('');
|
|
305
|
-
console.log(' HOW MEMORIES ARE STORED:');
|
|
306
|
-
console.log(' • Auto: AI calls auto_learn after every response (passive)');
|
|
307
|
-
console.log(' • Auto: Git commits captured on every push');
|
|
308
|
-
console.log(' • Manual: Tell AI "remember that we use TypeScript strict mode"');
|
|
309
|
-
console.log('');
|
|
310
|
-
console.log(' RESOURCE URI (for clients that support resource auto-read):');
|
|
311
|
-
console.log(' memory://brain/context');
|
|
312
|
-
console.log('══════════════════════════════════════════════════════════');
|
|
307
|
+
console.log('💡 TIP: Make Cortex 3x smarter for FREE:');
|
|
308
|
+
console.log(' 1. Get a free API key at https://openrouter.ai/keys');
|
|
309
|
+
console.log(' 2. Add OPENROUTER_API_KEY to your MCP config env');
|
|
310
|
+
console.log(' 3. Cortex will use free LLM for smarter memory extraction');
|
|
313
311
|
console.log('');
|
|
314
312
|
}
|
|
315
313
|
main();
|
package/dist/cli/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":";;AACA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AAEzB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;AAU1B,MAAM,OAAO,GAAiC;IAC1C,WAAW,EAAE;QACT,IAAI,EAAE,sBAAsB;QAC5B,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,iBAAiB,CAAC;QACxE,SAAS,EAAE,YAAY;KAC1B;IACD,MAAM,EAAE;QACJ,IAAI,EAAE,gBAAgB;QACtB,UAAU,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;YACpC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,4BAA4B,CAAC;YAC/E,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,qBAAqB,EAAE,QAAQ,EAAE,4BAA4B,CAAC;QAC/F,SAAS,EAAE,YAAY;KAC1B;IACD,MAAM,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC;QAClD,SAAS,EAAE,YAAY;KAC1B;IACD,OAAO,EAAE;QACL,IAAI,EAAE,0BAA0B;QAChC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,eAAe,CAAC;QACvD,SAAS,EAAE,gCAAgC;KAC9C;IACD,QAAQ,EAAE;QACN,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC;QACtE,SAAS,EAAE,YAAY;KAC1B;IACD,GAAG,EAAE;QACD,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;YACpC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,CAAC;YAC/D,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,CAAC;QACxD,SAAS,EAAE,YAAY;KAC1B;CACJ,CAAC;AAEF,iFAAiF;AAEjF,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":";;AACA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AAEzB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;AAU1B,MAAM,OAAO,GAAiC;IAC1C,WAAW,EAAE;QACT,IAAI,EAAE,sBAAsB;QAC5B,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,iBAAiB,CAAC;QACxE,SAAS,EAAE,YAAY;KAC1B;IACD,MAAM,EAAE;QACJ,IAAI,EAAE,gBAAgB;QACtB,UAAU,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;YACpC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,4BAA4B,CAAC;YAC/E,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,qBAAqB,EAAE,QAAQ,EAAE,4BAA4B,CAAC;QAC/F,SAAS,EAAE,YAAY;KAC1B;IACD,MAAM,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC;QAClD,SAAS,EAAE,YAAY;KAC1B;IACD,OAAO,EAAE;QACL,IAAI,EAAE,0BAA0B;QAChC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,eAAe,CAAC;QACvD,SAAS,EAAE,gCAAgC;KAC9C;IACD,QAAQ,EAAE;QACN,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC;QACtE,SAAS,EAAE,YAAY;KAC1B;IACD,GAAG,EAAE;QACD,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;YACpC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,CAAC;YAC/D,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,CAAC;QACxD,SAAS,EAAE,YAAY;KAC1B;CACJ,CAAC;AAEF,iFAAiF;AAEjF,MAAM,YAAY,GAAQ;IACtB,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACjC,aAAa,EAAE,OAAO;CACzB,CAAC;AAEF,iEAAiE;AACjE,SAAS,qBAAqB;IAC1B,MAAM,KAAK,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC;IAClC,+DAA+D;IAC/D,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;QACjC,KAAK,CAAC,GAAG,GAAG,EAAE,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;IACvE,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,iFAAiF;AAEjF,SAAS,QAAQ,CAAC,QAAgB;IAC9B,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC;AAED,SAAS,SAAS,CAAC,QAAgB,EAAE,IAAS;IAC1C,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,YAAY,CAAC,GAAQ,EAAE,OAAe,EAAE,KAAU;IACvD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,OAAO,GAAG,GAAG,CAAC;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAC7C,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;IAC7C,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;IACnC,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CAAC,SAAiB;IACtC,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,mBAAmB,SAAS,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,cAAc,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/D,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAChF,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAEtC,OAAO,CAAC,GAAG,CAAC,QAAQ,MAAM,CAAC,IAAI,cAAc,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IAC/C,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,UAAU;IACf,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAClD,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YACjD,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,iFAAiF;AAEjF,MAAM,KAAK,GAA2B;IAClC,aAAa,EAAE,sFAAsF;IACrG,eAAe,EAAE,mGAAmG;IACpH,YAAY,EAAE,uFAAuF;CACxG,CAAC;AAEF,SAAS,eAAe,CAAC,aAAqB;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAChD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,CAAC,CAAC;IAErC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE3C,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,cAAc,CAAC;QAE9E,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACpD,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,SAAS,CAAE,oBAAoB;YAC9D,0BAA0B;YAC1B,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxF,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,mBAAmB,UAAU,IAAI,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACJ,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YACxC,kDAAkD;YAClD,IAAI,CAAC;gBAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,2BAA2B,CAAC,CAAC;QAChF,CAAC;QACD,SAAS,EAAE,CAAC;IAChB,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AACD,iFAAiF;AACjF,wEAAwE;AACxE,0EAA0E;AAE1E,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BpB,CAAC;AAEF,6DAA6D;AAC7D,MAAM,WAAW,GAA2B;IACxC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC;IAC9C,MAAM,EAAE,cAAc;IACtB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,yBAAyB,CAAC;IACxD,QAAQ,EAAE,gBAAgB;CAC7B,CAAC;AAEF,SAAS,kBAAkB,CAAC,aAAqB,EAAE,eAAyB;IACxE,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,SAAS;YAAE,SAAS,CAAE,mDAAmD;QAE9E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;QAErD,0DAA0D;QAC1D,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACpD,IAAI,QAAQ,CAAC,QAAQ,CAAC,yBAAyB,CAAC;gBAAE,SAAS,CAAE,oBAAoB;YACjF,2BAA2B;YAC3B,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,iCAAiC,SAAS,EAAE,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACJ,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,gBAAgB,SAAS,2BAA2B,CAAC,CAAC;QACtE,CAAC;QACD,SAAS,EAAE,CAAC;IAChB,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,iFAAiF;AAEjF,SAAS,IAAI;IACT,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAElE,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IAEpC,IAAI,eAAe,GAAa,EAAE,CAAC;IAEnC,IAAI,SAAS,EAAE,CAAC;QACZ,eAAe,CAAC,SAAS,CAAC,CAAC;QAC3B,eAAe,GAAG,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;SAAM,CAAC;QACJ,gCAAgC;QAChC,eAAe,GAAG,UAAU,EAAE,CAAC;QAC/B,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACnE,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACnF,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,qBAAqB,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3F,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;gBAChC,eAAe,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;QACL,CAAC;IACL,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,kEAAkE;IAClE,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;QAC5D,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC;QAC9F,CAAC;IACL,CAAC;IAED,8DAA8D;IAC9D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,oDAAoD,CAAC,CAAC;YAC/E,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QACpD,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;IACnF,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACpB,CAAC;AAED,IAAI,EAAE,CAAC"}
|
package/dist/config/config.js
CHANGED
|
@@ -18,14 +18,14 @@ exports.CONFIG = {
|
|
|
18
18
|
// Memory decay
|
|
19
19
|
INSIGHT_MAX_AGE_DAYS: 30,
|
|
20
20
|
UNUSED_MAX_AGE_DAYS: 60,
|
|
21
|
-
MEMORY_CAP:
|
|
21
|
+
MEMORY_CAP: 5000,
|
|
22
22
|
// Cache
|
|
23
23
|
CACHE_TTL: 60_000, // 1 minute
|
|
24
24
|
CACHE_MAX: 50,
|
|
25
25
|
// Embeddings
|
|
26
26
|
EMBEDDING_TIMEOUT: 30_000, // 30 seconds
|
|
27
27
|
// Context
|
|
28
|
-
MAX_CONTEXT_CHARS:
|
|
28
|
+
MAX_CONTEXT_CHARS: 3000,
|
|
29
29
|
MAX_RECALL_RESULTS: 10,
|
|
30
30
|
// Server
|
|
31
31
|
DASHBOARD_PORT: 3456,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,oCAAsC;AAEzB,QAAA,MAAM,GAAG;IAClB,gCAAgC;IAChC,UAAU,EAAE;QACR,CAAC,kBAAU,CAAC,UAAU,CAAC,EAAE,GAAG;QAC5B,CAAC,kBAAU,CAAC,QAAQ,CAAC,EAAE,GAAG;QAC1B,CAAC,kBAAU,CAAC,UAAU,CAAC,EAAE,GAAG;QAC5B,CAAC,kBAAU,CAAC,OAAO,CAAC,EAAE,GAAG;QACzB,CAAC,kBAAU,CAAC,OAAO,CAAC,EAAE,GAAG;QACzB,CAAC,kBAAU,CAAC,UAAU,CAAC,EAAE,GAAG;KACL;IAE3B,eAAe;IACf,oBAAoB,EAAE,EAAE;IACxB,mBAAmB,EAAE,EAAE;IACvB,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,oCAAsC;AAEzB,QAAA,MAAM,GAAG;IAClB,gCAAgC;IAChC,UAAU,EAAE;QACR,CAAC,kBAAU,CAAC,UAAU,CAAC,EAAE,GAAG;QAC5B,CAAC,kBAAU,CAAC,QAAQ,CAAC,EAAE,GAAG;QAC1B,CAAC,kBAAU,CAAC,UAAU,CAAC,EAAE,GAAG;QAC5B,CAAC,kBAAU,CAAC,OAAO,CAAC,EAAE,GAAG;QACzB,CAAC,kBAAU,CAAC,OAAO,CAAC,EAAE,GAAG;QACzB,CAAC,kBAAU,CAAC,UAAU,CAAC,EAAE,GAAG;KACL;IAE3B,eAAe;IACf,oBAAoB,EAAE,EAAE;IACxB,mBAAmB,EAAE,EAAE;IACvB,UAAU,EAAE,IAAI;IAEhB,QAAQ;IACR,SAAS,EAAE,MAAM,EAAM,WAAW;IAClC,SAAS,EAAE,EAAE;IAEb,aAAa;IACb,iBAAiB,EAAE,MAAM,EAAE,aAAa;IAExC,UAAU;IACV,iBAAiB,EAAE,IAAI;IACvB,kBAAkB,EAAE,EAAE;IAEtB,SAAS;IACT,cAAc,EAAE,IAAI;CACvB,CAAC"}
|
package/dist/db/database.d.ts
CHANGED
|
@@ -2,9 +2,17 @@ import type { SqliteDatabase } from '../types';
|
|
|
2
2
|
export declare class CognitiveDatabase {
|
|
3
3
|
private db;
|
|
4
4
|
private _dbPath;
|
|
5
|
+
private _writeCount;
|
|
6
|
+
private _checkpointTimer;
|
|
7
|
+
private static readonly CHECKPOINT_WRITE_THRESHOLD;
|
|
8
|
+
private static readonly CHECKPOINT_INTERVAL_MS;
|
|
5
9
|
constructor(storagePath: string);
|
|
6
10
|
private initialize;
|
|
7
11
|
private migrate;
|
|
12
|
+
/** Start periodic WAL checkpointing (every 30 min) */
|
|
13
|
+
private startCheckpointTimer;
|
|
14
|
+
/** Track a write operation and auto-checkpoint if threshold reached */
|
|
15
|
+
trackWrite(): void;
|
|
8
16
|
/** Get the raw database connection for direct queries */
|
|
9
17
|
get connection(): SqliteDatabase;
|
|
10
18
|
/** Get database file path */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/db/database.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AA0I/C,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,OAAO,CAAS;
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/db/database.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AA0I/C,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,gBAAgB,CAA+C;IACvE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAAO;IACzD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAkB;gBAEpD,WAAW,EAAE,MAAM;IAkB/B,OAAO,CAAC,UAAU;IA2BlB,OAAO,CAAC,OAAO;IAMf,sDAAsD;IACtD,OAAO,CAAC,oBAAoB;IAY5B,uEAAuE;IACvE,UAAU,IAAI,IAAI;IAQlB,yDAAyD;IACzD,IAAI,UAAU,IAAI,cAAc,CAE/B;IAED,6BAA6B;IAC7B,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,iCAAiC;IACjC,IAAI,SAAS,IAAI,MAAM,CAOtB;IAED,sCAAsC;IACtC,UAAU,IAAI,IAAI;IAIlB,oCAAoC;IACpC,KAAK,IAAI,IAAI;CAQd"}
|
package/dist/db/database.js
CHANGED
|
@@ -44,7 +44,7 @@ exports.CognitiveDatabase = void 0;
|
|
|
44
44
|
const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
|
|
45
45
|
const path = __importStar(require("path"));
|
|
46
46
|
const fs = __importStar(require("fs"));
|
|
47
|
-
const SCHEMA_VERSION =
|
|
47
|
+
const SCHEMA_VERSION = 1;
|
|
48
48
|
const SCHEMA_SQL = `
|
|
49
49
|
-- ═══ SETTINGS ═══
|
|
50
50
|
PRAGMA journal_mode=WAL;
|
|
@@ -144,7 +144,6 @@ CREATE TABLE IF NOT EXISTS user_signals (
|
|
|
144
144
|
correction TEXT,
|
|
145
145
|
timestamp INTEGER NOT NULL
|
|
146
146
|
);
|
|
147
|
-
CREATE INDEX IF NOT EXISTS idx_signals_memory ON user_signals(memory_id);
|
|
148
147
|
|
|
149
148
|
-- ═══ RETRIEVAL FEEDBACK ═══
|
|
150
149
|
CREATE TABLE IF NOT EXISTS feedback_log (
|
|
@@ -182,6 +181,10 @@ CREATE TABLE IF NOT EXISTS adaptive_config (
|
|
|
182
181
|
class CognitiveDatabase {
|
|
183
182
|
db;
|
|
184
183
|
_dbPath;
|
|
184
|
+
_writeCount = 0;
|
|
185
|
+
_checkpointTimer = null;
|
|
186
|
+
static CHECKPOINT_WRITE_THRESHOLD = 100;
|
|
187
|
+
static CHECKPOINT_INTERVAL_MS = 30 * 60 * 1000; // 30 minutes
|
|
185
188
|
constructor(storagePath) {
|
|
186
189
|
const dataDir = path.join(storagePath, 'data');
|
|
187
190
|
if (!fs.existsSync(dataDir)) {
|
|
@@ -194,6 +197,7 @@ class CognitiveDatabase {
|
|
|
194
197
|
: undefined;
|
|
195
198
|
this.db = new better_sqlite3_1.default(this._dbPath, { nativeBinding });
|
|
196
199
|
this.initialize();
|
|
200
|
+
this.startCheckpointTimer();
|
|
197
201
|
}
|
|
198
202
|
initialize() {
|
|
199
203
|
// Execute pragmas first (they can't be in a transaction)
|
|
@@ -218,61 +222,34 @@ class CognitiveDatabase {
|
|
|
218
222
|
}
|
|
219
223
|
}
|
|
220
224
|
}
|
|
221
|
-
migrate(
|
|
222
|
-
|
|
223
|
-
//
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
this.
|
|
231
|
-
console.log('[cortex-mcp] Migration: added created_at column');
|
|
232
|
-
}
|
|
233
|
-
// access_count — required by memory ranker
|
|
234
|
-
if (!existingCols.includes('access_count')) {
|
|
235
|
-
this.db.exec('ALTER TABLE memory_units ADD COLUMN access_count INTEGER DEFAULT 0');
|
|
236
|
-
console.log('[cortex-mcp] Migration: added access_count column');
|
|
237
|
-
}
|
|
238
|
-
// last_accessed — required by touch()
|
|
239
|
-
if (!existingCols.includes('last_accessed')) {
|
|
240
|
-
this.db.exec('ALTER TABLE memory_units ADD COLUMN last_accessed INTEGER');
|
|
241
|
-
console.log('[cortex-mcp] Migration: added last_accessed column');
|
|
242
|
-
}
|
|
243
|
-
// confidence — required by confidence decay
|
|
244
|
-
if (!existingCols.includes('confidence')) {
|
|
245
|
-
this.db.exec('ALTER TABLE memory_units ADD COLUMN confidence REAL DEFAULT 0.5');
|
|
246
|
-
console.log('[cortex-mcp] Migration: added confidence column');
|
|
247
|
-
}
|
|
248
|
-
// importance — required by context builder ordering
|
|
249
|
-
if (!existingCols.includes('importance')) {
|
|
250
|
-
this.db.exec('ALTER TABLE memory_units ADD COLUMN importance REAL DEFAULT 0.5');
|
|
251
|
-
console.log('[cortex-mcp] Migration: added importance column');
|
|
252
|
-
}
|
|
253
|
-
// tags — required by pin/unpin
|
|
254
|
-
if (!existingCols.includes('tags')) {
|
|
255
|
-
this.db.exec("ALTER TABLE memory_units ADD COLUMN tags TEXT DEFAULT '[]'");
|
|
256
|
-
console.log('[cortex-mcp] Migration: added tags column');
|
|
225
|
+
migrate(_fromVersion) {
|
|
226
|
+
// Future migrations go here
|
|
227
|
+
// if (fromVersion < 2) { ... }
|
|
228
|
+
this.db.prepare('UPDATE schema_version SET version = ?').run(SCHEMA_VERSION);
|
|
229
|
+
}
|
|
230
|
+
/** Start periodic WAL checkpointing (every 30 min) */
|
|
231
|
+
startCheckpointTimer() {
|
|
232
|
+
this._checkpointTimer = setInterval(() => {
|
|
233
|
+
try {
|
|
234
|
+
this.checkpoint();
|
|
257
235
|
}
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
236
|
+
catch { }
|
|
237
|
+
}, CognitiveDatabase.CHECKPOINT_INTERVAL_MS);
|
|
238
|
+
// Don't block process exit
|
|
239
|
+
if (this._checkpointTimer.unref) {
|
|
240
|
+
this._checkpointTimer.unref();
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
/** Track a write operation and auto-checkpoint if threshold reached */
|
|
244
|
+
trackWrite() {
|
|
245
|
+
this._writeCount++;
|
|
246
|
+
if (this._writeCount >= CognitiveDatabase.CHECKPOINT_WRITE_THRESHOLD) {
|
|
247
|
+
this._writeCount = 0;
|
|
248
|
+
try {
|
|
249
|
+
this.checkpoint();
|
|
272
250
|
}
|
|
251
|
+
catch { }
|
|
273
252
|
}
|
|
274
|
-
this.db.prepare('UPDATE schema_version SET version = ?').run(SCHEMA_VERSION);
|
|
275
|
-
console.log(`[cortex-mcp] Database migration complete. Schema is now v${SCHEMA_VERSION}.`);
|
|
276
253
|
}
|
|
277
254
|
/** Get the raw database connection for direct queries */
|
|
278
255
|
get connection() {
|
|
@@ -298,6 +275,10 @@ class CognitiveDatabase {
|
|
|
298
275
|
}
|
|
299
276
|
/** Close the database connection */
|
|
300
277
|
close() {
|
|
278
|
+
if (this._checkpointTimer) {
|
|
279
|
+
clearInterval(this._checkpointTimer);
|
|
280
|
+
this._checkpointTimer = null;
|
|
281
|
+
}
|
|
301
282
|
this.checkpoint();
|
|
302
283
|
this.db.close();
|
|
303
284
|
}
|
package/dist/db/database.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/db/database.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;GAGG;AACH,oEAAsC;AACtC,2CAA6B;AAC7B,uCAAyB;AAGzB,MAAM,cAAc,GAAG,CAAC,CAAC;AAEzB,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoIlB,CAAC;AAEF,MAAa,iBAAiB;IACpB,EAAE,CAAiB;IACnB,OAAO,CAAS;
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/db/database.ts"],"names":[],"mappings":"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"}
|
package/dist/db/event-log.d.ts
CHANGED
|
@@ -8,6 +8,10 @@ export declare class EventLog {
|
|
|
8
8
|
private db;
|
|
9
9
|
private appendStmt;
|
|
10
10
|
private markProcessedStmt;
|
|
11
|
+
private getUnprocessedStmt;
|
|
12
|
+
private getByFileStmt;
|
|
13
|
+
private getRecentStmt;
|
|
14
|
+
private countStmt;
|
|
11
15
|
constructor(database: CognitiveDatabase);
|
|
12
16
|
/** Append a new event (immutable — never modified after insert) */
|
|
13
17
|
append(event: BrainEvent): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-log.d.ts","sourceRoot":"","sources":["../../src/db/event-log.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,UAAU,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,qBAAa,QAAQ;IACjB,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,UAAU,CAAwC;IAC1D,OAAO,CAAC,iBAAiB,CAAwC;
|
|
1
|
+
{"version":3,"file":"event-log.d.ts","sourceRoot":"","sources":["../../src/db/event-log.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,UAAU,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,qBAAa,QAAQ;IACjB,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,UAAU,CAAwC;IAC1D,OAAO,CAAC,iBAAiB,CAAwC;IAEjE,OAAO,CAAC,kBAAkB,CAAM;IAChC,OAAO,CAAC,aAAa,CAAM;IAC3B,OAAO,CAAC,aAAa,CAAM;IAC3B,OAAO,CAAC,SAAS,CAAM;gBAEX,QAAQ,EAAE,iBAAiB;IAmBvC,mEAAmE;IACnE,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM;IAcjC,qDAAqD;IACrD,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE;IAW3C,iCAAiC;IACjC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIpC,4CAA4C;IAC5C,cAAc,CAAC,KAAK,GAAE,MAAY,GAAG,UAAU,EAAE;IAKjD,yBAAyB;IACzB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,UAAU,EAAE;IAK7D,wBAAwB;IACxB,SAAS,CAAC,KAAK,GAAE,MAAW,GAAG,UAAU,EAAE;IAK3C,wBAAwB;IACxB,KAAK,IAAI,MAAM;IAKf,OAAO,CAAC,UAAU;CAarB"}
|
package/dist/db/event-log.js
CHANGED
|
@@ -5,6 +5,11 @@ class EventLog {
|
|
|
5
5
|
db;
|
|
6
6
|
appendStmt;
|
|
7
7
|
markProcessedStmt;
|
|
8
|
+
// Cached read-query prepared statements
|
|
9
|
+
getUnprocessedStmt;
|
|
10
|
+
getByFileStmt;
|
|
11
|
+
getRecentStmt;
|
|
12
|
+
countStmt;
|
|
8
13
|
constructor(database) {
|
|
9
14
|
this.db = database.connection;
|
|
10
15
|
this.appendStmt = this.db.prepare(`
|
|
@@ -14,6 +19,11 @@ class EventLog {
|
|
|
14
19
|
this.markProcessedStmt = this.db.prepare(`
|
|
15
20
|
UPDATE events SET processed = 1 WHERE id = ?
|
|
16
21
|
`);
|
|
22
|
+
// Cache read query statements
|
|
23
|
+
this.getUnprocessedStmt = this.db.prepare('SELECT * FROM events WHERE processed = 0 ORDER BY timestamp ASC LIMIT ?');
|
|
24
|
+
this.getByFileStmt = this.db.prepare('SELECT * FROM events WHERE file = ? ORDER BY timestamp DESC LIMIT ?');
|
|
25
|
+
this.getRecentStmt = this.db.prepare('SELECT * FROM events ORDER BY timestamp DESC LIMIT ?');
|
|
26
|
+
this.countStmt = this.db.prepare('SELECT COUNT(*) as cnt FROM events');
|
|
17
27
|
}
|
|
18
28
|
/** Append a new event (immutable — never modified after insert) */
|
|
19
29
|
append(event) {
|
|
@@ -45,28 +55,22 @@ class EventLog {
|
|
|
45
55
|
}
|
|
46
56
|
/** Get unprocessed events (oldest first) */
|
|
47
57
|
getUnprocessed(limit = 100) {
|
|
48
|
-
const rows = this.
|
|
49
|
-
.prepare('SELECT * FROM events WHERE processed = 0 ORDER BY timestamp ASC LIMIT ?')
|
|
50
|
-
.all(limit);
|
|
58
|
+
const rows = this.getUnprocessedStmt.all(limit);
|
|
51
59
|
return rows.map(this.rowToEvent);
|
|
52
60
|
}
|
|
53
61
|
/** Get events by file */
|
|
54
62
|
getByFile(filePath, limit = 50) {
|
|
55
|
-
const rows = this.
|
|
56
|
-
.prepare('SELECT * FROM events WHERE file = ? ORDER BY timestamp DESC LIMIT ?')
|
|
57
|
-
.all(filePath, limit);
|
|
63
|
+
const rows = this.getByFileStmt.all(filePath, limit);
|
|
58
64
|
return rows.map(this.rowToEvent);
|
|
59
65
|
}
|
|
60
66
|
/** Get recent events */
|
|
61
67
|
getRecent(limit = 50) {
|
|
62
|
-
const rows = this.
|
|
63
|
-
.prepare('SELECT * FROM events ORDER BY timestamp DESC LIMIT ?')
|
|
64
|
-
.all(limit);
|
|
68
|
+
const rows = this.getRecentStmt.all(limit);
|
|
65
69
|
return rows.map(this.rowToEvent);
|
|
66
70
|
}
|
|
67
71
|
/** Total event count */
|
|
68
72
|
count() {
|
|
69
|
-
const row = this.
|
|
73
|
+
const row = this.countStmt.get();
|
|
70
74
|
return row.cnt;
|
|
71
75
|
}
|
|
72
76
|
rowToEvent(row) {
|
package/dist/db/event-log.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-log.js","sourceRoot":"","sources":["../../src/db/event-log.ts"],"names":[],"mappings":";;;AAOA,MAAa,QAAQ;IACT,EAAE,CAAiB;IACnB,UAAU,CAAwC;IAClD,iBAAiB,CAAwC;
|
|
1
|
+
{"version":3,"file":"event-log.js","sourceRoot":"","sources":["../../src/db/event-log.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,8 +9,25 @@ export declare class MemoryStore {
|
|
|
9
9
|
private touchStmt;
|
|
10
10
|
private insertEdgeStmt;
|
|
11
11
|
private insertVectorStmt;
|
|
12
|
+
private getActiveStmt;
|
|
13
|
+
private getByTypeStmt;
|
|
14
|
+
private getByFileStmt;
|
|
15
|
+
private searchFTSStmt;
|
|
16
|
+
private findByTagStmt;
|
|
17
|
+
private getByTimestampRangeStmt;
|
|
18
|
+
private getByDirectoryStmt;
|
|
19
|
+
private getStaleStmt;
|
|
20
|
+
private getLeastImportantStmt;
|
|
21
|
+
private activeCountStmt;
|
|
22
|
+
private totalCountStmt;
|
|
23
|
+
private findDuplicateStmt;
|
|
24
|
+
private getEdgesFromStmt;
|
|
25
|
+
private getEdgesToStmt;
|
|
12
26
|
private vectors;
|
|
27
|
+
private _transaction;
|
|
13
28
|
constructor(database: CognitiveDatabase);
|
|
29
|
+
/** Run multiple operations in a single SQLite transaction (10-100x faster for bulk writes) */
|
|
30
|
+
runTransaction(fn: () => void): void;
|
|
14
31
|
/** Create a new memory unit (with deduplication) */
|
|
15
32
|
add(memory: Partial<MemoryUnit> & {
|
|
16
33
|
type: MemoryType;
|
|
@@ -19,8 +36,8 @@ export declare class MemoryStore {
|
|
|
19
36
|
}): MemoryUnit;
|
|
20
37
|
/**
|
|
21
38
|
* Find a duplicate memory by type + intent similarity.
|
|
22
|
-
* Uses word-overlap
|
|
23
|
-
* Returns existing memory if similarity >
|
|
39
|
+
* Uses HYBRID approach: Jaccard word-overlap + cosine similarity (when vectors available).
|
|
40
|
+
* Returns existing memory if similarity > threshold, else undefined.
|
|
24
41
|
*/
|
|
25
42
|
private findDuplicate;
|
|
26
43
|
/** Tokenize text into lowercase words (stop-word filtered) */
|
|
@@ -39,7 +56,7 @@ export declare class MemoryStore {
|
|
|
39
56
|
getByType(type: MemoryType, limit?: number): MemoryUnit[];
|
|
40
57
|
/** Get memories related to a file */
|
|
41
58
|
getByFile(filePath: string, limit?: number): MemoryUnit[];
|
|
42
|
-
/** Full-text search via FTS5 */
|
|
59
|
+
/** Full-text search via FTS5 (with query sanitization) */
|
|
43
60
|
searchFTS(query: string, limit?: number): ScoredMemory[];
|
|
44
61
|
/** Store a vector embedding */
|
|
45
62
|
storeVector(id: string, embedding: Float32Array): void;
|
|
@@ -55,6 +72,16 @@ export declare class MemoryStore {
|
|
|
55
72
|
getEdgesTo(targetId: string): GraphEdge[];
|
|
56
73
|
/** Graph traversal — find related memories within N hops */
|
|
57
74
|
getRelated(memoryId: string, maxHops?: number, limit?: number): ScoredMemory[];
|
|
75
|
+
/** Find active memories by tag (SQL LIKE on JSON tags column) */
|
|
76
|
+
findByTag(tag: string, limit?: number): MemoryUnit[];
|
|
77
|
+
/** Get active memories within a timestamp range */
|
|
78
|
+
getActiveByTimestampRange(start: number, end: number, limit?: number): MemoryUnit[];
|
|
79
|
+
/** Get active memories related to files in a directory (SQL LIKE prefix) */
|
|
80
|
+
getByDirectory(dirPrefix: string, limit?: number): MemoryUnit[];
|
|
81
|
+
/** Get active memories with 0 access older than a given age */
|
|
82
|
+
getStaleMemories(maxAgeMs: number, limit?: number): MemoryUnit[];
|
|
83
|
+
/** Get active memories sorted by importance ASC (for cap enforcement) */
|
|
84
|
+
getLeastImportant(limit: number): MemoryUnit[];
|
|
58
85
|
/** Total active memories */
|
|
59
86
|
activeCount(): number;
|
|
60
87
|
/** Total memories (including inactive) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../../src/db/memory-store.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACR,UAAU,EACV,UAAU,EACV,SAAS,EACT,YAAY,EAEf,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../../src/db/memory-store.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACR,UAAU,EACV,UAAU,EACV,SAAS,EACT,YAAY,EAEf,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAKpD,qBAAa,WAAW;IACpB,OAAO,CAAC,EAAE,CAAiB;IAK3B,OAAO,CAAC,gBAAgB,CAAM;IAC9B,OAAO,CAAC,gBAAgB,CAAM;IAC9B,OAAO,CAAC,aAAa,CAAM;IAC3B,OAAO,CAAC,cAAc,CAAM;IAC5B,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,cAAc,CAAM;IAC5B,OAAO,CAAC,gBAAgB,CAAM;IAE9B,OAAO,CAAC,aAAa,CAAM;IAC3B,OAAO,CAAC,aAAa,CAAM;IAC3B,OAAO,CAAC,aAAa,CAAM;IAC3B,OAAO,CAAC,aAAa,CAAM;IAC3B,OAAO,CAAC,aAAa,CAAM;IAC3B,OAAO,CAAC,uBAAuB,CAAM;IACrC,OAAO,CAAC,kBAAkB,CAAM;IAChC,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,qBAAqB,CAAM;IACnC,OAAO,CAAC,eAAe,CAAM;IAC7B,OAAO,CAAC,cAAc,CAAM;IAC5B,OAAO,CAAC,iBAAiB,CAAM;IAC/B,OAAO,CAAC,gBAAgB,CAAM;IAC9B,OAAO,CAAC,cAAc,CAAM;IAG5B,OAAO,CAAC,OAAO,CAAwC;IAGvD,OAAO,CAAC,YAAY,CAAM;gBAEd,QAAQ,EAAE,iBAAiB;IA2HvC,8FAA8F;IAC9F,cAAc,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAMpC,oDAAoD;IACpD,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,UAAU;IAuDnG;;;;OAIG;IACH,OAAO,CAAC,aAAa;IA8CrB,8DAA8D;IAC9D,OAAO,CAAC,QAAQ;IAShB,gCAAgC;IAChC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI;IAoBtD,yBAAyB;IACzB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAKvC,wCAAwC;IACxC,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI;IAInD,iDAAiD;IACjD,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIvB,8BAA8B;IAC9B,SAAS,CAAC,KAAK,GAAE,MAAa,GAAG,UAAU,EAAE;IAK7C,2BAA2B;IAC3B,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,GAAE,MAAY,GAAG,UAAU,EAAE;IAK9D,qCAAqC;IACrC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,UAAU,EAAE;IAK7D,0DAA0D;IAC1D,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,YAAY,EAAE;IAmD5D,+BAA+B;IAC/B,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,GAAG,IAAI;IAMtD,kCAAkC;IAClC,YAAY,CAAC,cAAc,EAAE,YAAY,EAAE,KAAK,GAAE,MAAW,GAAG,YAAY,EAAE;IAoB9E,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,WAAW;IAWnB,mCAAmC;IACnC,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAU9B,qCAAqC;IACrC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE;IAI3C,mCAAmC;IACnC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE;IAIzC,4DAA4D;IAC5D,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,MAAU,EAAE,KAAK,GAAE,MAAW,GAAG,YAAY,EAAE;IAgCrF,iEAAiE;IACjE,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,UAAU,EAAE;IAKxD,mDAAmD;IACnD,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAY,GAAG,UAAU,EAAE;IAKxF,4EAA4E;IAC5E,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,UAAU,EAAE;IAKnE,+DAA+D;IAC/D,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAE,MAAY,GAAG,UAAU,EAAE;IAMrE,yEAAyE;IACzE,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE;IAO9C,4BAA4B;IAC5B,WAAW,IAAI,MAAM;IAKrB,0CAA0C;IAC1C,UAAU,IAAI,MAAM;IAOpB,OAAO,CAAC,WAAW;IAwBZ,YAAY,IAAI,IAAI;CAU9B"}
|