shieldcortex 2.19.3 → 2.20.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.
Files changed (103) hide show
  1. package/README.md +14 -10
  2. package/dashboard/.next/standalone/dashboard/.next/BUILD_ID +1 -1
  3. package/dashboard/.next/standalone/dashboard/.next/build-manifest.json +2 -2
  4. package/dashboard/.next/standalone/dashboard/.next/prerender-manifest.json +3 -3
  5. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.html +2 -2
  6. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.rsc +1 -1
  7. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  8. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  10. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  11. package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  12. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  13. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.html +1 -1
  14. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.rsc +2 -2
  15. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  16. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  17. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  18. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  19. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  20. package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  21. package/dashboard/.next/standalone/dashboard/.next/server/app/index.html +1 -1
  22. package/dashboard/.next/standalone/dashboard/.next/server/app/index.rsc +3 -3
  23. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  24. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_full.segment.rsc +3 -3
  25. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_head.segment.rsc +1 -1
  26. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_index.segment.rsc +2 -2
  27. package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  28. package/dashboard/.next/standalone/dashboard/.next/server/app/page/react-loadable-manifest.json +3 -3
  29. package/dashboard/.next/standalone/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
  30. package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_25b1b286._.js +1 -1
  31. package/dashboard/.next/standalone/dashboard/.next/server/pages/404.html +1 -1
  32. package/dashboard/.next/standalone/dashboard/.next/server/pages/500.html +2 -2
  33. package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.js +1 -1
  34. package/dashboard/.next/standalone/dashboard/.next/server/server-reference-manifest.json +1 -1
  35. package/dashboard/.next/standalone/dashboard/.next/static/chunks/26118d592a545e00.js +3 -0
  36. package/dashboard/.next/standalone/dashboard/.next/static/chunks/6a6ccfb7834de00a.js +9 -0
  37. package/dashboard/.next/standalone/dashboard/.next/static/chunks/6b11a7d29e9abffd.js +1 -0
  38. package/dashboard/.next/standalone/dashboard/.next/static/chunks/ab13d81ce0e121f2.css +3 -0
  39. package/dashboard/.next/standalone/dashboard/.next/static/chunks/cf05262adfab5818.js +1 -0
  40. package/dist/api/visualization-server.d.ts.map +1 -1
  41. package/dist/api/visualization-server.js +218 -3
  42. package/dist/api/visualization-server.js.map +1 -1
  43. package/dist/cli/doctor.d.ts +6 -0
  44. package/dist/cli/doctor.d.ts.map +1 -0
  45. package/dist/cli/doctor.js +469 -0
  46. package/dist/cli/doctor.js.map +1 -0
  47. package/dist/database/init.d.ts +8 -0
  48. package/dist/database/init.d.ts.map +1 -1
  49. package/dist/database/init.js +208 -4
  50. package/dist/database/init.js.map +1 -1
  51. package/dist/events/webhooks.d.ts +21 -0
  52. package/dist/events/webhooks.d.ts.map +1 -0
  53. package/dist/events/webhooks.js +61 -0
  54. package/dist/events/webhooks.js.map +1 -0
  55. package/dist/graph/backfill.d.ts +6 -2
  56. package/dist/graph/backfill.d.ts.map +1 -1
  57. package/dist/graph/backfill.js +32 -4
  58. package/dist/graph/backfill.js.map +1 -1
  59. package/dist/graph/extract.d.ts.map +1 -1
  60. package/dist/graph/extract.js +105 -37
  61. package/dist/graph/extract.js.map +1 -1
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +8 -5
  64. package/dist/index.js.map +1 -1
  65. package/dist/memory/consolidate.d.ts +23 -0
  66. package/dist/memory/consolidate.d.ts.map +1 -1
  67. package/dist/memory/consolidate.js +239 -2
  68. package/dist/memory/consolidate.js.map +1 -1
  69. package/dist/memory/decay.d.ts.map +1 -1
  70. package/dist/memory/decay.js +9 -0
  71. package/dist/memory/decay.js.map +1 -1
  72. package/dist/memory/embedding-cache.d.ts +21 -0
  73. package/dist/memory/embedding-cache.d.ts.map +1 -0
  74. package/dist/memory/embedding-cache.js +92 -0
  75. package/dist/memory/embedding-cache.js.map +1 -0
  76. package/dist/memory/embedding.d.ts +37 -0
  77. package/dist/memory/embedding.d.ts.map +1 -0
  78. package/dist/memory/embedding.js +86 -0
  79. package/dist/memory/embedding.js.map +1 -0
  80. package/dist/memory/expiry.d.ts +26 -0
  81. package/dist/memory/expiry.d.ts.map +1 -0
  82. package/dist/memory/expiry.js +109 -0
  83. package/dist/memory/expiry.js.map +1 -0
  84. package/dist/memory/store.d.ts +14 -0
  85. package/dist/memory/store.d.ts.map +1 -1
  86. package/dist/memory/store.js +82 -0
  87. package/dist/memory/store.js.map +1 -1
  88. package/dist/memory/types.d.ts +1 -0
  89. package/dist/memory/types.d.ts.map +1 -1
  90. package/dist/memory/types.js.map +1 -1
  91. package/dist/tools/recall.d.ts.map +1 -1
  92. package/dist/tools/recall.js +25 -1
  93. package/dist/tools/recall.js.map +1 -1
  94. package/dist/tools/remember.d.ts +2 -2
  95. package/package.json +1 -1
  96. package/dashboard/.next/standalone/dashboard/.next/static/chunks/7d04c140073d99aa.js +0 -9
  97. package/dashboard/.next/standalone/dashboard/.next/static/chunks/94d1921c4f61a608.css +0 -3
  98. package/dashboard/.next/standalone/dashboard/.next/static/chunks/a3989d0e6629bcf8.js +0 -3
  99. package/dashboard/.next/standalone/dashboard/.next/static/chunks/cac330f9511d34e5.js +0 -1
  100. package/dashboard/.next/standalone/dashboard/.next/static/chunks/fc2dbf641aad1448.js +0 -1
  101. /package/dashboard/.next/standalone/dashboard/.next/static/{x5pEZRSDizF1dS-qqTezT → aFo1BShJENvQZgqpWRJaw}/_buildManifest.js +0 -0
  102. /package/dashboard/.next/standalone/dashboard/.next/static/{x5pEZRSDizF1dS-qqTezT → aFo1BShJENvQZgqpWRJaw}/_clientMiddlewareManifest.json +0 -0
  103. /package/dashboard/.next/standalone/dashboard/.next/static/{x5pEZRSDizF1dS-qqTezT → aFo1BShJENvQZgqpWRJaw}/_ssgManifest.js +0 -0
@@ -2,10 +2,11 @@
2
2
  * Database initialization and connection management
3
3
  */
4
4
  import Database from 'better-sqlite3';
5
- import { existsSync, mkdirSync, readFileSync, statSync, writeFileSync, unlinkSync } from 'fs';
5
+ import { existsSync, mkdirSync, readFileSync, statSync, writeFileSync, unlinkSync, renameSync, copyFileSync } from 'fs';
6
6
  import { dirname, join } from 'path';
7
7
  import { homedir } from 'os';
8
8
  import { fileURLToPath } from 'url';
9
+ import { execSync } from 'child_process';
9
10
  const __filename = fileURLToPath(import.meta.url);
10
11
  const __dirname = dirname(__filename);
11
12
  let db = null;
@@ -38,6 +39,99 @@ function getDefaultDbPath() {
38
39
  // Fall back to legacy path for existing users
39
40
  return legacyPath;
40
41
  }
42
+ /**
43
+ * Back up a corrupt database file with a timestamped name.
44
+ * Returns the backup path.
45
+ */
46
+ function backupCorruptDatabase(dbPath) {
47
+ const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
48
+ const backupPath = `${dbPath}.corrupt.${timestamp}`;
49
+ try {
50
+ renameSync(dbPath, backupPath);
51
+ }
52
+ catch {
53
+ // If rename fails (e.g. cross-device), try copy + delete
54
+ try {
55
+ copyFileSync(dbPath, backupPath);
56
+ unlinkSync(dbPath);
57
+ }
58
+ catch {
59
+ // Last resort — just note the backup path
60
+ }
61
+ }
62
+ // Also back up WAL and SHM files if present
63
+ for (const suffix of ['-wal', '-shm']) {
64
+ const walPath = dbPath + suffix;
65
+ if (existsSync(walPath)) {
66
+ try {
67
+ renameSync(walPath, backupPath + suffix);
68
+ }
69
+ catch { /* best-effort */ }
70
+ }
71
+ }
72
+ return backupPath;
73
+ }
74
+ /**
75
+ * Attempt to recover a corrupt database by dumping and reimporting.
76
+ * Returns a new Database instance on success, or null on failure.
77
+ */
78
+ function attemptDumpRecovery(dbPath) {
79
+ try {
80
+ // Use sqlite3 CLI to dump — it can often recover partial data
81
+ const dumpOutput = execSync(`sqlite3 "${dbPath}" .dump`, {
82
+ encoding: 'utf-8',
83
+ timeout: 30000,
84
+ maxBuffer: 100 * 1024 * 1024,
85
+ });
86
+ if (!dumpOutput || dumpOutput.trim().length === 0)
87
+ return null;
88
+ // Back up the corrupt file
89
+ const backupPath = backupCorruptDatabase(dbPath);
90
+ console.log(`[database] Backed up corrupt database to: ${backupPath}`);
91
+ // Create fresh database and import the dump
92
+ const freshDb = new Database(dbPath);
93
+ try {
94
+ freshDb.exec(dumpOutput);
95
+ console.log('[database] Successfully recovered data via dump/reimport.');
96
+ return freshDb;
97
+ }
98
+ catch {
99
+ // Dump reimport failed — close and let caller handle fresh creation
100
+ freshDb.close();
101
+ if (existsSync(dbPath)) {
102
+ try {
103
+ unlinkSync(dbPath);
104
+ }
105
+ catch { /* best-effort */ }
106
+ }
107
+ return null;
108
+ }
109
+ }
110
+ catch {
111
+ // sqlite3 CLI not available or dump failed
112
+ return null;
113
+ }
114
+ }
115
+ /**
116
+ * Run integrity check on an open database.
117
+ * Returns 'ok' if healthy, or the error message if corrupt.
118
+ */
119
+ function runIntegrityCheck(database) {
120
+ try {
121
+ // Quick check first (checks first page only)
122
+ const quickResult = database.pragma('integrity_check(1)');
123
+ const quickStatus = quickResult?.[0]?.integrity_check || 'ok';
124
+ if (quickStatus !== 'ok') {
125
+ return quickStatus;
126
+ }
127
+ // Full check
128
+ const fullResult = database.pragma('integrity_check');
129
+ return fullResult?.[0]?.integrity_check || 'ok';
130
+ }
131
+ catch (e) {
132
+ return `integrity check threw: ${e}`;
133
+ }
134
+ }
41
135
  /**
42
136
  * Initialize the database connection
43
137
  */
@@ -55,8 +149,43 @@ export function initDatabase(dbPath) {
55
149
  }
56
150
  // Store path for size monitoring
57
151
  currentDbPath = expandedPath;
58
- // Create database connection
59
- db = new Database(expandedPath);
152
+ // Wrap the initial open in try/catch to handle corrupt files gracefully
153
+ let database;
154
+ try {
155
+ database = new Database(expandedPath);
156
+ }
157
+ catch (openError) {
158
+ // Database file is corrupt or not a valid SQLite database
159
+ console.error('❌ Database file is corrupt or not a valid SQLite database.');
160
+ const backupPath = backupCorruptDatabase(expandedPath);
161
+ console.error(` Backed up to ${backupPath}`);
162
+ console.error(' Creating fresh database...');
163
+ database = new Database(expandedPath);
164
+ }
165
+ // Integrity check on existing databases (skip for newly created files)
166
+ if (existsSync(expandedPath) && statSync(expandedPath).size > 0) {
167
+ const integrityResult = runIntegrityCheck(database);
168
+ if (integrityResult !== 'ok') {
169
+ console.warn(`[database] WARNING: Database integrity check failed: ${integrityResult}`);
170
+ // Close the corrupt connection before attempting recovery
171
+ database.close();
172
+ // Attempt dump/reimport recovery
173
+ const recovered = attemptDumpRecovery(expandedPath);
174
+ if (recovered) {
175
+ database = recovered;
176
+ }
177
+ else {
178
+ // Recovery failed — backup and create fresh
179
+ if (existsSync(expandedPath)) {
180
+ const backupPath = backupCorruptDatabase(expandedPath);
181
+ console.error(`[database] Recovery failed. Backed up corrupt file to: ${backupPath}`);
182
+ }
183
+ console.error('[database] Creating fresh database...');
184
+ database = new Database(expandedPath);
185
+ }
186
+ }
187
+ }
188
+ db = database;
60
189
  // Enable WAL mode for better concurrency
61
190
  db.pragma('journal_mode = WAL');
62
191
  db.pragma('synchronous = NORMAL');
@@ -300,6 +429,10 @@ function runMigrations(database) {
300
429
  catch {
301
430
  // Tables may already exist - safe to ignore
302
431
  }
432
+ // Migration: graph_extraction_version column for incremental graph backfill
433
+ if (!columnNames.has('graph_extraction_version')) {
434
+ database.exec('ALTER TABLE memories ADD COLUMN graph_extraction_version INTEGER DEFAULT 0');
435
+ }
303
436
  // Migration: Pro feature tables (custom_patterns, iron_dome_policies, firewall_rules)
304
437
  try {
305
438
  database.exec(`
@@ -387,6 +520,76 @@ export function closeDatabase() {
387
520
  }
388
521
  }
389
522
  }
523
+ /**
524
+ * Repair or verify database health.
525
+ * Intended for `shieldcortex doctor` CLI command.
526
+ */
527
+ export function repairDatabase() {
528
+ const database = getDatabase();
529
+ // Step 1: Integrity check
530
+ const integrityResult = runIntegrityCheck(database);
531
+ if (integrityResult === 'ok') {
532
+ return { status: 'ok', message: 'Database is healthy' };
533
+ }
534
+ console.warn(`[database] Integrity check failed: ${integrityResult}`);
535
+ console.warn('[database] Attempting repair via VACUUM and REINDEX...');
536
+ // Step 2: Try VACUUM + REINDEX
537
+ try {
538
+ database.exec('REINDEX');
539
+ database.exec('VACUUM');
540
+ // Re-check after repair attempt
541
+ const recheckResult = runIntegrityCheck(database);
542
+ if (recheckResult === 'ok') {
543
+ return { status: 'repaired', message: 'Database repaired successfully via VACUUM/REINDEX' };
544
+ }
545
+ }
546
+ catch (e) {
547
+ console.warn(`[database] VACUUM/REINDEX failed: ${e}`);
548
+ }
549
+ // Step 3: Still corrupt — backup and recreate
550
+ if (!currentDbPath) {
551
+ return { status: 'recreated', message: 'Database path unknown — cannot backup. Please reinitialise.' };
552
+ }
553
+ // Close current connection
554
+ try {
555
+ database.close();
556
+ }
557
+ catch { /* best-effort */ }
558
+ db = null;
559
+ // Attempt dump recovery first
560
+ const recovered = attemptDumpRecovery(currentDbPath);
561
+ if (recovered) {
562
+ db = recovered;
563
+ // Re-apply pragmas
564
+ db.pragma('journal_mode = WAL');
565
+ db.pragma('synchronous = NORMAL');
566
+ db.pragma('foreign_keys = ON');
567
+ db.pragma('busy_timeout = 10000');
568
+ db.pragma('wal_autocheckpoint = 100');
569
+ return { status: 'repaired', message: 'Database recovered via dump/reimport. Some data may have been lost.' };
570
+ }
571
+ // Full recreation
572
+ const backupPath = backupCorruptDatabase(currentDbPath);
573
+ db = new Database(currentDbPath);
574
+ db.pragma('journal_mode = WAL');
575
+ db.pragma('synchronous = NORMAL');
576
+ db.pragma('foreign_keys = ON');
577
+ db.pragma('busy_timeout = 10000');
578
+ db.pragma('wal_autocheckpoint = 100');
579
+ // Re-apply schema
580
+ const schemaPath = join(__dirname, 'schema.sql');
581
+ if (existsSync(schemaPath)) {
582
+ const schema = readFileSync(schemaPath, 'utf-8');
583
+ db.exec(schema);
584
+ }
585
+ else {
586
+ db.exec(getInlineSchema());
587
+ }
588
+ return {
589
+ status: 'recreated',
590
+ message: `Database was unrecoverable. Corrupt file backed up to ${backupPath}. Fresh database created.`,
591
+ };
592
+ }
390
593
  /**
391
594
  * Register handlers for graceful shutdown
392
595
  */
@@ -481,7 +684,8 @@ function getInlineSchema() {
481
684
  transferable INTEGER DEFAULT 0,
482
685
  trust_score REAL DEFAULT 1.0,
483
686
  sensitivity_level TEXT DEFAULT 'INTERNAL',
484
- source TEXT DEFAULT 'user:direct'
687
+ source TEXT DEFAULT 'user:direct',
688
+ graph_extraction_version INTEGER DEFAULT 0
485
689
  );
486
690
 
487
691
  CREATE VIRTUAL TABLE IF NOT EXISTS memories_fts USING fts5(
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/database/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/database/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Webhook dispatcher — sends POST notifications on memory events.
3
+ * Config stored in ~/.shieldcortex/config.json under "webhooks" key.
4
+ */
5
+ export interface WebhookConfig {
6
+ url: string;
7
+ events: string[];
8
+ secret?: string;
9
+ enabled: boolean;
10
+ }
11
+ /**
12
+ * Load webhook configurations from ~/.shieldcortex/config.json.
13
+ * Returns an empty array if missing or malformed.
14
+ */
15
+ export declare function loadWebhooks(): WebhookConfig[];
16
+ /**
17
+ * Dispatch a webhook event to all matching, enabled webhooks.
18
+ * Fire-and-forget — never throws, never blocks.
19
+ */
20
+ export declare function dispatchWebhook(event: string, payload: Record<string, unknown>): Promise<void>;
21
+ //# sourceMappingURL=webhooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../src/events/webhooks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,aAAa,EAAE,CAU9C;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAqCpG"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Webhook dispatcher — sends POST notifications on memory events.
3
+ * Config stored in ~/.shieldcortex/config.json under "webhooks" key.
4
+ */
5
+ import { readRawConfig } from '../cloud/config.js';
6
+ import { createHmac } from 'crypto';
7
+ /**
8
+ * Load webhook configurations from ~/.shieldcortex/config.json.
9
+ * Returns an empty array if missing or malformed.
10
+ */
11
+ export function loadWebhooks() {
12
+ try {
13
+ const raw = readRawConfig();
14
+ if (!Array.isArray(raw.webhooks))
15
+ return [];
16
+ return raw.webhooks.filter((w) => w && typeof w.url === 'string' && Array.isArray(w.events) && typeof w.enabled === 'boolean');
17
+ }
18
+ catch {
19
+ return [];
20
+ }
21
+ }
22
+ /**
23
+ * Dispatch a webhook event to all matching, enabled webhooks.
24
+ * Fire-and-forget — never throws, never blocks.
25
+ */
26
+ export async function dispatchWebhook(event, payload) {
27
+ try {
28
+ const webhooks = loadWebhooks();
29
+ const matching = webhooks.filter((w) => w.enabled && w.events.includes(event));
30
+ if (matching.length === 0)
31
+ return;
32
+ const body = JSON.stringify({ event, payload, timestamp: new Date().toISOString() });
33
+ const timestamp = new Date().toISOString();
34
+ for (const webhook of matching) {
35
+ const headers = {
36
+ 'Content-Type': 'application/json',
37
+ 'X-ShieldCortex-Event': event,
38
+ 'X-ShieldCortex-Timestamp': timestamp,
39
+ };
40
+ if (webhook.secret) {
41
+ const signature = createHmac('sha256', webhook.secret).update(body).digest('hex');
42
+ headers['X-ShieldCortex-Signature'] = signature;
43
+ }
44
+ // Fire-and-forget with 5-second timeout
45
+ const controller = new AbortController();
46
+ const timeoutId = setTimeout(() => controller.abort(), 5000);
47
+ fetch(webhook.url, {
48
+ method: 'POST',
49
+ headers,
50
+ body,
51
+ signal: controller.signal,
52
+ })
53
+ .catch(() => { })
54
+ .finally(() => clearTimeout(timeoutId));
55
+ }
56
+ }
57
+ catch {
58
+ // Never throw — all errors are silently caught
59
+ }
60
+ }
61
+ //# sourceMappingURL=webhooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../src/events/webhooks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AASpC;;;GAGG;AACH,MAAM,UAAU,YAAY;IAC1B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO,EAAE,CAAC;QAC5C,OAAQ,GAAG,CAAC,QAA4B,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,SAAS,CACnG,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAa,EAAE,OAAgC;IACnF,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/E,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAElC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACrF,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAE3C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,OAAO,GAA2B;gBACtC,cAAc,EAAE,kBAAkB;gBAClC,sBAAsB,EAAE,KAAK;gBAC7B,0BAA0B,EAAE,SAAS;aACtC,CAAC;YAEF,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAClF,OAAO,CAAC,0BAA0B,CAAC,GAAG,SAAS,CAAC;YAClD,CAAC;YAED,wCAAwC;YACxC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;YAE7D,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;gBACjB,MAAM,EAAE,MAAM;gBACd,OAAO;gBACP,IAAI;gBACJ,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC;iBACC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;iBACf,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,+CAA+C;IACjD,CAAC;AACH,CAAC"}
@@ -1,6 +1,10 @@
1
- export declare function backfillGraph(): {
1
+ export interface BackfillResult {
2
2
  entities: number;
3
3
  triples: number;
4
4
  memoriesProcessed: number;
5
- };
5
+ memoriesSkipped: number;
6
+ }
7
+ export declare function backfillGraph(options?: {
8
+ force?: boolean;
9
+ }): BackfillResult;
6
10
  //# sourceMappingURL=backfill.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"backfill.d.ts","sourceRoot":"","sources":["../../src/graph/backfill.ts"],"names":[],"mappings":"AAIA,wBAAgB,aAAa,IAAI;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,CAqChG"}
1
+ {"version":3,"file":"backfill.d.ts","sourceRoot":"","sources":["../../src/graph/backfill.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,cAAc,CAoE3E"}
@@ -1,11 +1,33 @@
1
1
  import { getDatabase } from '../database/init.js';
2
2
  import { extractFromMemory } from './extract.js';
3
3
  import { processExtractionResult } from './resolve.js';
4
- export function backfillGraph() {
4
+ /** Bump this when extract.ts logic changes to force re-extraction */
5
+ const EXTRACTION_VERSION = 2;
6
+ export function backfillGraph(options) {
5
7
  const db = getDatabase();
6
- const memories = db.prepare('SELECT id, title, content, category FROM memories ORDER BY id').all();
7
- let entitiesBefore = db.prepare('SELECT COUNT(*) as c FROM entities').get().c;
8
- let triplesBefore = db.prepare('SELECT COUNT(*) as c FROM triples').get().c;
8
+ const force = options?.force ?? false;
9
+ // Check whether the graph_extraction_version column exists
10
+ let hasVersionColumn = true;
11
+ try {
12
+ const cols = db.prepare('PRAGMA table_info(memories)').all();
13
+ hasVersionColumn = cols.some(c => c.name === 'graph_extraction_version');
14
+ }
15
+ catch {
16
+ hasVersionColumn = false;
17
+ }
18
+ // If no version column or force mode, fall back to processing all memories
19
+ const useIncremental = hasVersionColumn && !force;
20
+ const memories = useIncremental
21
+ ? db.prepare('SELECT id, title, content, category FROM memories WHERE graph_extraction_version < ? ORDER BY id').all(EXTRACTION_VERSION)
22
+ : db.prepare('SELECT id, title, content, category FROM memories ORDER BY id').all();
23
+ // Count total memories to report how many were skipped
24
+ const totalMemories = db.prepare('SELECT COUNT(*) as c FROM memories').get().c;
25
+ const memoriesSkipped = totalMemories - memories.length;
26
+ const entitiesBefore = db.prepare('SELECT COUNT(*) as c FROM entities').get().c;
27
+ const triplesBefore = db.prepare('SELECT COUNT(*) as c FROM triples').get().c;
28
+ const updateVersion = hasVersionColumn
29
+ ? db.prepare('UPDATE memories SET graph_extraction_version = ? WHERE id = ?')
30
+ : null;
9
31
  let processed = 0;
10
32
  for (const mem of memories) {
11
33
  try {
@@ -13,6 +35,10 @@ export function backfillGraph() {
13
35
  if (extraction.entities.length > 0) {
14
36
  processExtractionResult(extraction, mem.id);
15
37
  }
38
+ // Mark this memory as extracted at the current version
39
+ if (updateVersion) {
40
+ updateVersion.run(EXTRACTION_VERSION, mem.id);
41
+ }
16
42
  }
17
43
  catch (e) {
18
44
  console.error(`[backfill] Failed on memory #${mem.id}: ${e}`);
@@ -24,10 +50,12 @@ export function backfillGraph() {
24
50
  }
25
51
  const entitiesAfter = db.prepare('SELECT COUNT(*) as c FROM entities').get().c;
26
52
  const triplesAfter = db.prepare('SELECT COUNT(*) as c FROM triples').get().c;
53
+ console.log(`[backfill] Incremental extraction: processed ${processed} new memories, ${memoriesSkipped} already up-to-date`);
27
54
  return {
28
55
  entities: entitiesAfter - entitiesBefore,
29
56
  triples: triplesAfter - triplesBefore,
30
57
  memoriesProcessed: processed,
58
+ memoriesSkipped,
31
59
  };
32
60
  }
33
61
  //# sourceMappingURL=backfill.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"backfill.js","sourceRoot":"","sources":["../../src/graph/backfill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,UAAU,aAAa;IAC3B,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IAEzB,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,+DAA+D,CAAC,CAAC,GAAG,EAK9F,CAAC;IAEH,IAAI,cAAc,GAAI,EAAE,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC,GAAG,EAAoB,CAAC,CAAC,CAAC;IACjG,IAAI,aAAa,GAAI,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,GAAG,EAAoB,CAAC,CAAC,CAAC;IAE/F,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC3E,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnC,uBAAuB,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,gCAAgC,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QAChE,CAAC;QACD,SAAS,EAAE,CAAC;QACZ,IAAI,SAAS,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,wBAAwB,SAAS,IAAI,QAAQ,CAAC,MAAM,cAAc,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAI,EAAE,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC,GAAG,EAAoB,CAAC,CAAC,CAAC;IAClG,MAAM,YAAY,GAAI,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,GAAG,EAAoB,CAAC,CAAC,CAAC;IAEhG,OAAO;QACL,QAAQ,EAAE,aAAa,GAAG,cAAc;QACxC,OAAO,EAAE,YAAY,GAAG,aAAa;QACrC,iBAAiB,EAAE,SAAS;KAC7B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"backfill.js","sourceRoot":"","sources":["../../src/graph/backfill.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/graph/extract.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAErG,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAoED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAsLpG"}
1
+ {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/graph/extract.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAErG,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAoED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAiPpG"}