agentic-qe 3.6.3 → 3.6.4

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 (147) hide show
  1. package/.claude/helpers/statusline-v3.cjs +4 -3
  2. package/.claude/skills/release/SKILL.md +33 -2
  3. package/.claude/skills/skills-manifest.json +1 -1
  4. package/package.json +1 -1
  5. package/v3/CHANGELOG.md +25 -0
  6. package/v3/dist/adapters/a2a/auth/oauth-provider.d.ts +8 -0
  7. package/v3/dist/adapters/a2a/auth/oauth-provider.d.ts.map +1 -1
  8. package/v3/dist/adapters/a2a/auth/oauth-provider.js +32 -7
  9. package/v3/dist/adapters/a2a/auth/oauth-provider.js.map +1 -1
  10. package/v3/dist/adapters/claude-flow/detect.d.ts +38 -0
  11. package/v3/dist/adapters/claude-flow/detect.d.ts.map +1 -0
  12. package/v3/dist/adapters/claude-flow/detect.js +154 -0
  13. package/v3/dist/adapters/claude-flow/detect.js.map +1 -0
  14. package/v3/dist/adapters/claude-flow/index.d.ts +2 -0
  15. package/v3/dist/adapters/claude-flow/index.d.ts.map +1 -1
  16. package/v3/dist/adapters/claude-flow/index.js +1 -0
  17. package/v3/dist/adapters/claude-flow/index.js.map +1 -1
  18. package/v3/dist/adapters/claude-flow/model-router-bridge.d.ts +1 -1
  19. package/v3/dist/adapters/claude-flow/model-router-bridge.d.ts.map +1 -1
  20. package/v3/dist/adapters/claude-flow/model-router-bridge.js +5 -15
  21. package/v3/dist/adapters/claude-flow/model-router-bridge.js.map +1 -1
  22. package/v3/dist/adapters/claude-flow/pretrain-bridge.d.ts +1 -1
  23. package/v3/dist/adapters/claude-flow/pretrain-bridge.d.ts.map +1 -1
  24. package/v3/dist/adapters/claude-flow/pretrain-bridge.js +6 -16
  25. package/v3/dist/adapters/claude-flow/pretrain-bridge.js.map +1 -1
  26. package/v3/dist/adapters/claude-flow/trajectory-bridge.d.ts +1 -1
  27. package/v3/dist/adapters/claude-flow/trajectory-bridge.d.ts.map +1 -1
  28. package/v3/dist/adapters/claude-flow/trajectory-bridge.js +6 -16
  29. package/v3/dist/adapters/claude-flow/trajectory-bridge.js.map +1 -1
  30. package/v3/dist/cli/bundle.js +73696 -71841
  31. package/v3/dist/cli/commands/claude-flow-setup.d.ts.map +1 -1
  32. package/v3/dist/cli/commands/claude-flow-setup.js +42 -80
  33. package/v3/dist/cli/commands/claude-flow-setup.js.map +1 -1
  34. package/v3/dist/cli/commands/hooks.d.ts.map +1 -1
  35. package/v3/dist/cli/commands/hooks.js +170 -0
  36. package/v3/dist/cli/commands/hooks.js.map +1 -1
  37. package/v3/dist/cli/commands/learning.d.ts.map +1 -1
  38. package/v3/dist/cli/commands/learning.js +296 -0
  39. package/v3/dist/cli/commands/learning.js.map +1 -1
  40. package/v3/dist/cli/handlers/init-handler.d.ts.map +1 -1
  41. package/v3/dist/cli/handlers/init-handler.js +9 -1
  42. package/v3/dist/cli/handlers/init-handler.js.map +1 -1
  43. package/v3/dist/coordination/mincut/mincut-calculator.d.ts +7 -0
  44. package/v3/dist/coordination/mincut/mincut-calculator.d.ts.map +1 -1
  45. package/v3/dist/coordination/mincut/mincut-calculator.js +66 -7
  46. package/v3/dist/coordination/mincut/mincut-calculator.js.map +1 -1
  47. package/v3/dist/domains/contract-testing/services/contract-validator.d.ts.map +1 -1
  48. package/v3/dist/domains/contract-testing/services/contract-validator.js +10 -13
  49. package/v3/dist/domains/contract-testing/services/contract-validator.js.map +1 -1
  50. package/v3/dist/domains/contract-testing/services/schema-validator.d.ts.map +1 -1
  51. package/v3/dist/domains/contract-testing/services/schema-validator.js +4 -2
  52. package/v3/dist/domains/contract-testing/services/schema-validator.js.map +1 -1
  53. package/v3/dist/governance/deterministic-gateway-integration.d.ts.map +1 -1
  54. package/v3/dist/governance/deterministic-gateway-integration.js +3 -1
  55. package/v3/dist/governance/deterministic-gateway-integration.js.map +1 -1
  56. package/v3/dist/init/enhancements/claude-flow-adapter.d.ts +1 -1
  57. package/v3/dist/init/enhancements/claude-flow-adapter.d.ts.map +1 -1
  58. package/v3/dist/init/enhancements/claude-flow-adapter.js +15 -34
  59. package/v3/dist/init/enhancements/claude-flow-adapter.js.map +1 -1
  60. package/v3/dist/init/enhancements/detector.d.ts.map +1 -1
  61. package/v3/dist/init/enhancements/detector.js +7 -34
  62. package/v3/dist/init/enhancements/detector.js.map +1 -1
  63. package/v3/dist/init/phases/06-code-intelligence.d.ts +8 -0
  64. package/v3/dist/init/phases/06-code-intelligence.d.ts.map +1 -1
  65. package/v3/dist/init/phases/06-code-intelligence.js +118 -24
  66. package/v3/dist/init/phases/06-code-intelligence.js.map +1 -1
  67. package/v3/dist/kernel/unified-memory-migration.d.ts.map +1 -1
  68. package/v3/dist/kernel/unified-memory-migration.js +4 -3
  69. package/v3/dist/kernel/unified-memory-migration.js.map +1 -1
  70. package/v3/dist/kernel/unified-memory.d.ts +3 -1
  71. package/v3/dist/kernel/unified-memory.d.ts.map +1 -1
  72. package/v3/dist/kernel/unified-memory.js +119 -44
  73. package/v3/dist/kernel/unified-memory.js.map +1 -1
  74. package/v3/dist/learning/dream/concept-graph.d.ts +13 -2
  75. package/v3/dist/learning/dream/concept-graph.d.ts.map +1 -1
  76. package/v3/dist/learning/dream/concept-graph.js +69 -7
  77. package/v3/dist/learning/dream/concept-graph.js.map +1 -1
  78. package/v3/dist/learning/dream/dream-engine.d.ts +5 -0
  79. package/v3/dist/learning/dream/dream-engine.d.ts.map +1 -1
  80. package/v3/dist/learning/dream/dream-engine.js +54 -3
  81. package/v3/dist/learning/dream/dream-engine.js.map +1 -1
  82. package/v3/dist/learning/dream/spreading-activation.d.ts.map +1 -1
  83. package/v3/dist/learning/dream/spreading-activation.js +74 -6
  84. package/v3/dist/learning/dream/spreading-activation.js.map +1 -1
  85. package/v3/dist/learning/pattern-store.d.ts.map +1 -1
  86. package/v3/dist/learning/pattern-store.js +9 -8
  87. package/v3/dist/learning/pattern-store.js.map +1 -1
  88. package/v3/dist/learning/qe-patterns.d.ts +2 -0
  89. package/v3/dist/learning/qe-patterns.d.ts.map +1 -1
  90. package/v3/dist/learning/qe-patterns.js.map +1 -1
  91. package/v3/dist/learning/qe-reasoning-bank.d.ts +16 -0
  92. package/v3/dist/learning/qe-reasoning-bank.d.ts.map +1 -1
  93. package/v3/dist/learning/qe-reasoning-bank.js +709 -0
  94. package/v3/dist/learning/qe-reasoning-bank.js.map +1 -1
  95. package/v3/dist/mcp/bundle.js +1501 -217
  96. package/v3/dist/mcp/connection-pool.d.ts +1 -1
  97. package/v3/dist/mcp/connection-pool.d.ts.map +1 -1
  98. package/v3/dist/mcp/connection-pool.js +27 -13
  99. package/v3/dist/mcp/connection-pool.js.map +1 -1
  100. package/v3/dist/mcp/handlers/handler-factory.d.ts +2 -0
  101. package/v3/dist/mcp/handlers/handler-factory.d.ts.map +1 -1
  102. package/v3/dist/mcp/handlers/handler-factory.js +52 -4
  103. package/v3/dist/mcp/handlers/handler-factory.js.map +1 -1
  104. package/v3/dist/mcp/http-server.d.ts.map +1 -1
  105. package/v3/dist/mcp/http-server.js +2 -1
  106. package/v3/dist/mcp/http-server.js.map +1 -1
  107. package/v3/dist/mcp/security/oauth21-provider.d.ts.map +1 -1
  108. package/v3/dist/mcp/security/oauth21-provider.js +25 -15
  109. package/v3/dist/mcp/security/oauth21-provider.js.map +1 -1
  110. package/v3/dist/mcp/security/rate-limiter.d.ts.map +1 -1
  111. package/v3/dist/mcp/security/rate-limiter.js +5 -4
  112. package/v3/dist/mcp/security/rate-limiter.js.map +1 -1
  113. package/v3/dist/mcp/security/schema-validator.d.ts.map +1 -1
  114. package/v3/dist/mcp/security/schema-validator.js +13 -9
  115. package/v3/dist/mcp/security/schema-validator.js.map +1 -1
  116. package/v3/dist/mcp/tools/contract-testing/validate.d.ts.map +1 -1
  117. package/v3/dist/mcp/tools/contract-testing/validate.js +3 -2
  118. package/v3/dist/mcp/tools/contract-testing/validate.js.map +1 -1
  119. package/v3/dist/mcp/transport/sse/connection-manager.d.ts +1 -0
  120. package/v3/dist/mcp/transport/sse/connection-manager.d.ts.map +1 -1
  121. package/v3/dist/mcp/transport/sse/connection-manager.js +31 -10
  122. package/v3/dist/mcp/transport/sse/connection-manager.js.map +1 -1
  123. package/v3/dist/mcp/transport/sse/sse-transport.d.ts.map +1 -1
  124. package/v3/dist/mcp/transport/sse/sse-transport.js +2 -1
  125. package/v3/dist/mcp/transport/sse/sse-transport.js.map +1 -1
  126. package/v3/dist/mcp/transport/stdio.d.ts.map +1 -1
  127. package/v3/dist/mcp/transport/stdio.js +2 -1
  128. package/v3/dist/mcp/transport/stdio.js.map +1 -1
  129. package/v3/dist/mcp/transport/websocket/websocket-transport.d.ts.map +1 -1
  130. package/v3/dist/mcp/transport/websocket/websocket-transport.js +2 -1
  131. package/v3/dist/mcp/transport/websocket/websocket-transport.js.map +1 -1
  132. package/v3/dist/performance/optimizer.d.ts.map +1 -1
  133. package/v3/dist/performance/optimizer.js +19 -3
  134. package/v3/dist/performance/optimizer.js.map +1 -1
  135. package/v3/dist/shared/sql-safety.d.ts +18 -0
  136. package/v3/dist/shared/sql-safety.d.ts.map +1 -0
  137. package/v3/dist/shared/sql-safety.js +44 -0
  138. package/v3/dist/shared/sql-safety.js.map +1 -0
  139. package/v3/dist/sync/embeddings/sync-embedding-generator.d.ts.map +1 -1
  140. package/v3/dist/sync/embeddings/sync-embedding-generator.js +9 -7
  141. package/v3/dist/sync/embeddings/sync-embedding-generator.js.map +1 -1
  142. package/v3/dist/sync/interfaces.js +5 -5
  143. package/v3/dist/sync/interfaces.js.map +1 -1
  144. package/v3/dist/sync/readers/sqlite-reader.d.ts.map +1 -1
  145. package/v3/dist/sync/readers/sqlite-reader.js +5 -4
  146. package/v3/dist/sync/readers/sqlite-reader.js.map +1 -1
  147. package/v3/package.json +2 -2
@@ -6,10 +6,41 @@
6
6
  * so QE agents can use it later to reduce token consumption via
7
7
  * semantic code search instead of full file reads.
8
8
  */
9
- import { existsSync } from 'fs';
9
+ import { existsSync, statSync } from 'fs';
10
10
  import { join } from 'path';
11
11
  import { BasePhase, } from './phase-interface.js';
12
12
  import { createMemoryBackend } from '../../kernel/memory-factory.js';
13
+ /** Patterns to exclude from code intelligence scanning */
14
+ const SCAN_IGNORE_PATTERNS = [
15
+ '**/node_modules/**',
16
+ '**/dist/**',
17
+ '**/build/**',
18
+ '**/out/**',
19
+ '**/coverage/**',
20
+ '**/.agentic-qe/**',
21
+ '**/.git/**',
22
+ '**/.next/**',
23
+ '**/.nuxt/**',
24
+ '**/.output/**',
25
+ '**/__pycache__/**',
26
+ '**/.pytest_cache/**',
27
+ '**/target/**',
28
+ '**/vendor/**',
29
+ '**/.venv/**',
30
+ '**/venv/**',
31
+ '**/.tox/**',
32
+ '**/*.min.js',
33
+ '**/*.min.css',
34
+ '**/*.bundle.js',
35
+ '**/*.map',
36
+ '**/package-lock.json',
37
+ '**/yarn.lock',
38
+ '**/pnpm-lock.yaml',
39
+ '**/Pipfile.lock',
40
+ '**/poetry.lock',
41
+ '**/.env',
42
+ '**/.env.*',
43
+ ];
13
44
  /**
14
45
  * Code Intelligence phase - builds knowledge graph
15
46
  */
@@ -21,16 +52,26 @@ export class CodeIntelligencePhase extends BasePhase {
21
52
  requiresPhases = ['database'];
22
53
  async run(context) {
23
54
  const { projectRoot } = context;
24
- // Check for existing index
25
55
  const hasIndex = await this.checkCodeIntelligenceIndex(projectRoot);
26
- if (hasIndex) {
56
+ if (!hasIndex) {
57
+ context.services.log(' Building knowledge graph...');
58
+ return await this.runCodeIntelligenceScan(projectRoot, context, false);
59
+ }
60
+ // Delta scan: check for files modified since last index
61
+ const lastIndexedAt = await this.getLastIndexedAt(projectRoot);
62
+ if (!lastIndexedAt) {
27
63
  const entryCount = await this.getKGEntryCount(projectRoot);
28
64
  context.services.log(` Using existing index (${entryCount} entries)`);
29
65
  return { status: 'existing', entries: entryCount };
30
66
  }
31
- // Run full scan
32
- context.services.log(' Building knowledge graph...');
33
- return await this.runCodeIntelligenceScan(projectRoot, context);
67
+ const changedFiles = await this.findChangedFiles(projectRoot, lastIndexedAt);
68
+ if (changedFiles.length === 0) {
69
+ const entryCount = await this.getKGEntryCount(projectRoot);
70
+ context.services.log(` Index up to date (${entryCount} entries)`);
71
+ return { status: 'existing', entries: entryCount };
72
+ }
73
+ context.services.log(` Delta scan: ${changedFiles.length} files changed since last index...`);
74
+ return await this.runCodeIntelligenceScan(projectRoot, context, true, changedFiles);
34
75
  }
35
76
  /**
36
77
  * Check if code intelligence index exists
@@ -83,12 +124,9 @@ export class CodeIntelligencePhase extends BasePhase {
83
124
  * - Test target discovery (what tests cover what code)
84
125
  * - Token reduction (search KG instead of reading entire files)
85
126
  */
86
- async runCodeIntelligenceScan(projectRoot, context) {
127
+ async runCodeIntelligenceScan(projectRoot, context, incremental, changedFiles) {
87
128
  try {
88
- // Import knowledge graph service
89
129
  const { KnowledgeGraphService } = await import('../../domains/code-intelligence/services/knowledge-graph.js');
90
- // FIXED: Use SQLite backend for PERSISTENCE instead of InMemoryBackend
91
- // This ensures KG data survives init and is available to QE agents
92
130
  const dbPath = join(projectRoot, '.agentic-qe', 'memory.db');
93
131
  const memoryConfig = {
94
132
  type: 'sqlite',
@@ -102,27 +140,31 @@ export class CodeIntelligencePhase extends BasePhase {
102
140
  namespace: 'code-intelligence:kg',
103
141
  enableVectorEmbeddings: true,
104
142
  });
105
- // Find source files
106
- const glob = await import('fast-glob');
107
- const files = await glob.default([
108
- '**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx', '**/*.py'
109
- ], {
110
- cwd: projectRoot,
111
- ignore: ['**/node_modules/**', '**/dist/**', '**/coverage/**', '**/.agentic-qe/**'],
112
- });
113
- // Index files - this now persists to SQLite
143
+ let filesToIndex;
144
+ if (changedFiles) {
145
+ filesToIndex = changedFiles;
146
+ }
147
+ else {
148
+ const glob = await import('fast-glob');
149
+ const files = await glob.default([
150
+ '**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx', '**/*.py'
151
+ ], {
152
+ cwd: projectRoot,
153
+ ignore: SCAN_IGNORE_PATTERNS,
154
+ });
155
+ filesToIndex = files.map(f => join(projectRoot, f));
156
+ }
114
157
  const result = await kgService.index({
115
- paths: files.map(f => join(projectRoot, f)),
116
- incremental: false,
158
+ paths: filesToIndex,
159
+ incremental,
117
160
  includeTests: true,
118
161
  });
119
- // Clear caches but keep persisted data
120
162
  kgService.destroy();
121
- // Dispose memory backend to flush writes
122
163
  await memory.dispose();
123
164
  if (result.success) {
124
165
  const entries = result.value.nodesCreated + result.value.edgesCreated;
125
- context.services.log(` Indexed ${entries} entries to ${dbPath}`);
166
+ const label = incremental ? 'Delta indexed' : 'Indexed';
167
+ context.services.log(` ${label} ${entries} entries to ${dbPath}`);
126
168
  return { status: 'indexed', entries };
127
169
  }
128
170
  return { status: 'error', entries: 0 };
@@ -132,6 +174,58 @@ export class CodeIntelligencePhase extends BasePhase {
132
174
  return { status: 'skipped', entries: 0 };
133
175
  }
134
176
  }
177
+ /**
178
+ * Read the indexedAt timestamp from KG metadata
179
+ */
180
+ async getLastIndexedAt(projectRoot) {
181
+ const dbPath = join(projectRoot, '.agentic-qe', 'memory.db');
182
+ try {
183
+ const Database = (await import('better-sqlite3')).default;
184
+ const db = new Database(dbPath);
185
+ const row = db.prepare(`
186
+ SELECT value FROM kv_store
187
+ WHERE namespace = 'code-intelligence:kg'
188
+ AND key = 'metadata:index'
189
+ `).get();
190
+ db.close();
191
+ if (!row)
192
+ return null;
193
+ const metadata = JSON.parse(row.value);
194
+ if (!metadata.indexedAt)
195
+ return null;
196
+ const date = new Date(metadata.indexedAt);
197
+ return isNaN(date.getTime()) ? null : date;
198
+ }
199
+ catch {
200
+ return null;
201
+ }
202
+ }
203
+ /**
204
+ * Find files modified since the given date
205
+ */
206
+ async findChangedFiles(projectRoot, since) {
207
+ const glob = await import('fast-glob');
208
+ const files = await glob.default([
209
+ '**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx', '**/*.py'
210
+ ], {
211
+ cwd: projectRoot,
212
+ ignore: SCAN_IGNORE_PATTERNS,
213
+ });
214
+ const sinceMs = since.getTime();
215
+ const changed = [];
216
+ for (const file of files) {
217
+ const fullPath = join(projectRoot, file);
218
+ try {
219
+ if (statSync(fullPath).mtimeMs > sinceMs) {
220
+ changed.push(fullPath);
221
+ }
222
+ }
223
+ catch {
224
+ // File may have been deleted between glob and stat
225
+ }
226
+ }
227
+ return changed;
228
+ }
135
229
  }
136
230
  // Instance exported from index.ts
137
231
  //# sourceMappingURL=06-code-intelligence.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"06-code-intelligence.js","sourceRoot":"","sources":["../../../src/init/phases/06-code-intelligence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"06-code-intelligence.js","sourceRoot":"","sources":["../../../src/init/phases/06-code-intelligence.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EACL,SAAS,GAEV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,mBAAmB,EAA4B,MAAM,gCAAgC,CAAC;AAO/F,0DAA0D;AAC1D,MAAM,oBAAoB,GAAG;IAC3B,oBAAoB;IACpB,YAAY;IACZ,aAAa;IACb,WAAW;IACX,gBAAgB;IAChB,mBAAmB;IACnB,YAAY;IACZ,aAAa;IACb,aAAa;IACb,eAAe;IACf,mBAAmB;IACnB,qBAAqB;IACrB,cAAc;IACd,cAAc;IACd,aAAa;IACb,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,UAAU;IACV,sBAAsB;IACtB,cAAc;IACd,mBAAmB;IACnB,iBAAiB;IACjB,gBAAgB;IAChB,SAAS;IACT,WAAW;CACZ,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,SAAiC;IACjE,IAAI,GAAG,mBAAmB,CAAC;IAC3B,WAAW,GAAG,4BAA4B,CAAC;IAC3C,KAAK,GAAG,EAAE,CAAC;IACX,QAAQ,GAAG,KAAK,CAAC;IACjB,cAAc,GAAG,CAAC,UAAU,CAAU,CAAC;IAEtC,KAAK,CAAC,GAAG,CAAC,OAAoB;QACtC,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;QAEhC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAC;QAEpE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;YACtD,OAAO,MAAM,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QACzE,CAAC;QAED,wDAAwD;QACxD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAC/D,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YAC3D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,2BAA2B,UAAU,WAAW,CAAC,CAAC;YACvE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;QACrD,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAC7E,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YAC3D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,uBAAuB,UAAU,WAAW,CAAC,CAAC;YACnE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;QACrD,CAAC;QAED,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,YAAY,CAAC,MAAM,oCAAoC,CAAC,CAAC;QAC/F,OAAO,MAAM,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACtF,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,0BAA0B,CAAC,WAAmB;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;QAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC;YAC1D,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;YAChC,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC;;;OAGzB,CAAC,CAAC,GAAG,EAAuB,CAAC;YAC9B,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe,CAAC,WAAmB;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;QAC7D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC;YAC1D,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;YAChC,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC;;;OAGzB,CAAC,CAAC,GAAG,EAAuB,CAAC;YAC9B,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,MAAM,CAAC,KAAK,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACK,KAAK,CAAC,uBAAuB,CACnC,WAAmB,EACnB,OAAoB,EACpB,WAAoB,EACpB,YAAuB;QAEvB,IAAI,CAAC;YACH,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,6DAA6D,CAAC,CAAC;YAE9G,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;YAC7D,MAAM,YAAY,GAAwB;gBACxC,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE;oBACN,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,IAAI;iBACd;aACF,CAAC;YAEF,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YAE1E,MAAM,SAAS,GAAG,IAAI,qBAAqB,CAAC,MAAM,EAAE;gBAClD,SAAS,EAAE,sBAAsB;gBACjC,sBAAsB,EAAE,IAAI;aAC7B,CAAC,CAAC;YAEH,IAAI,YAAsB,CAAC;YAC3B,IAAI,YAAY,EAAE,CAAC;gBACjB,YAAY,GAAG,YAAY,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;gBACvC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;oBAC/B,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS;iBACxD,EAAE;oBACD,GAAG,EAAE,WAAW;oBAChB,MAAM,EAAE,oBAAoB;iBAC7B,CAAC,CAAC;gBACH,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;YACtD,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC;gBACnC,KAAK,EAAE,YAAY;gBACnB,WAAW;gBACX,YAAY,EAAE,IAAI;aACnB,CAAC,CAAC;YAEH,SAAS,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;YAEvB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;gBACtE,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;gBACxD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,KAAK,IAAI,OAAO,eAAe,MAAM,EAAE,CAAC,CAAC;gBACnE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;YACxC,CAAC;YAED,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,mCAAmC,KAAK,EAAE,CAAC,CAAC;YAClE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QAC3C,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB,CAAC,WAAmB;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;QAC7D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC;YAC1D,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;YAChC,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC;;;;OAItB,CAAC,CAAC,GAAG,EAAmC,CAAC;YAC1C,EAAE,CAAC,KAAK,EAAE,CAAC;YAEX,IAAI,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAC;YACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,CAAC,SAAS;gBAAE,OAAO,IAAI,CAAC;YACrC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC1C,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB,CAAC,WAAmB,EAAE,KAAW;QAC7D,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;YAC/B,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS;SACxD,EAAE;YACD,GAAG,EAAE,WAAW;YAChB,MAAM,EAAE,oBAAoB;SAC7B,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;QAChC,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC;gBACH,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,GAAG,OAAO,EAAE,CAAC;oBACzC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,mDAAmD;YACrD,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAED,kCAAkC"}
@@ -1 +1 @@
1
- {"version":3,"file":"unified-memory-migration.d.ts","sourceRoot":"","sources":["../../src/kernel/unified-memory-migration.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,aAAa,EAAE,OAAO,CAAC;IACvB,qDAAqD;IACrD,0BAA0B,EAAE,OAAO,CAAC;IACpC,yDAAyD;IACzD,MAAM,EAAE,OAAO,CAAC;CACjB;AASD;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAClC,OAAO,CAAC,eAAe,CAAC,CA2N1B;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,GAAE,MAAsB,GAAG,OAAO,CAGxE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,MAAsB,GAAG;IACnE,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;CACvB,CAaA"}
1
+ {"version":3,"file":"unified-memory-migration.d.ts","sourceRoot":"","sources":["../../src/kernel/unified-memory-migration.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,aAAa,EAAE,OAAO,CAAC;IACvB,qDAAqD;IACrD,0BAA0B,EAAE,OAAO,CAAC;IACpC,yDAAyD;IACzD,MAAM,EAAE,OAAO,CAAC;CACjB;AASD;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAClC,OAAO,CAAC,eAAe,CAAC,CA2N1B;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,GAAE,MAAsB,GAAG,OAAO,CAGxE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,MAAsB,GAAG;IACnE,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;CACvB,CAaA"}
@@ -10,6 +10,7 @@
10
10
  import Database from 'better-sqlite3';
11
11
  import * as fs from 'fs';
12
12
  import * as path from 'path';
13
+ import { validateTableName } from '../shared/sql-safety.js';
13
14
  const DEFAULT_OPTIONS = {
14
15
  baseDir: '.agentic-qe',
15
16
  createBackups: true,
@@ -95,7 +96,7 @@ export async function migrateToUnifiedMemory(options) {
95
96
  continue;
96
97
  }
97
98
  // Count rows
98
- const countRow = sourceDb.prepare(`SELECT COUNT(*) as count FROM ${tableName}`).get();
99
+ const countRow = sourceDb.prepare(`SELECT COUNT(*) as count FROM ${validateTableName(tableName)}`).get();
99
100
  const rowCount = countRow.count;
100
101
  if (rowCount === 0) {
101
102
  continue;
@@ -112,12 +113,12 @@ export async function migrateToUnifiedMemory(options) {
112
113
  `).get(tableName);
113
114
  targetDb.exec(schemaRow.sql);
114
115
  // Copy data
115
- const rows = sourceDb.prepare(`SELECT * FROM ${tableName}`).all();
116
+ const rows = sourceDb.prepare(`SELECT * FROM ${validateTableName(tableName)}`).all();
116
117
  if (rows.length > 0) {
117
118
  const columns = Object.keys(rows[0]);
118
119
  const placeholders = columns.map(() => '?').join(', ');
119
120
  const insertStmt = targetDb.prepare(`
120
- INSERT OR REPLACE INTO ${tableName} (${columns.join(', ')})
121
+ INSERT OR REPLACE INTO ${validateTableName(tableName)} (${columns.join(', ')})
121
122
  VALUES (${placeholders})
122
123
  `);
123
124
  const insertMany = targetDb.transaction((items) => {
@@ -1 +1 @@
1
- {"version":3,"file":"unified-memory-migration.js","sourceRoot":"","sources":["../../src/kernel/unified-memory-migration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unified-memory-migration.js","sourceRoot":"","sources":["../../src/kernel/unified-memory-migration.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,7 @@
17
17
  * - No confusion about where data lives
18
18
  */
19
19
  import { type Database as DatabaseType, type Statement } from 'better-sqlite3';
20
+ export { validateTableName, ALLOWED_TABLE_NAMES } from '../shared/sql-safety.js';
20
21
  import { type CRDTStore, type CRDTStoreState, type CRDTStoreDelta } from '../memory/crdt/index.js';
21
22
  /**
22
23
  * Find the project root by walking up the directory tree.
@@ -172,7 +173,8 @@ export declare class UnifiedMemoryManager {
172
173
  */
173
174
  vectorDelete(id: string): Promise<boolean>;
174
175
  /**
175
- * Search for similar vectors
176
+ * Search for similar vectors.
177
+ * Uses batch SQL query instead of N+1 individual queries for metadata enrichment.
176
178
  */
177
179
  vectorSearch(query: number[], k?: number, namespace?: string): Promise<Array<{
178
180
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"unified-memory.d.ts","sourceRoot":"","sources":["../../src/kernel/unified-memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unified-memory.d.ts","sourceRoot":"","sources":["../../src/kernel/unified-memory.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,12 @@ import * as path from 'path';
22
22
  import { cosineSimilarity } from '../shared/utils/vector-math.js';
23
23
  import { HYPERGRAPH_SCHEMA } from '../migrations/20260120_add_hypergraph_tables.js';
24
24
  import { MEMORY_CONSTANTS, HNSW_CONSTANTS } from './constants.js';
25
+ // ============================================================================
26
+ // SQL Table Name Allowlist (defense-in-depth against SQL injection)
27
+ // ============================================================================
28
+ // Re-export from shared module for backward compatibility
29
+ export { validateTableName, ALLOWED_TABLE_NAMES } from '../shared/sql-safety.js';
30
+ import { validateTableName } from '../shared/sql-safety.js';
25
31
  // CRDT imports for distributed state synchronization
26
32
  import { createCRDTStore, } from '../memory/crdt/index.js';
27
33
  // ============================================================================
@@ -591,6 +597,74 @@ const SONA_PATTERNS_SCHEMA = `
591
597
  CREATE INDEX IF NOT EXISTS idx_sona_patterns_confidence ON sona_patterns(confidence DESC);
592
598
  CREATE INDEX IF NOT EXISTS idx_sona_patterns_updated ON sona_patterns(updated_at DESC);
593
599
  `;
600
+ // ============================================================================
601
+ // In-Memory HNSW Index for Fast Vector Search
602
+ // ============================================================================
603
+ /**
604
+ * Binary min/max heap for O(log n) insertion and extraction.
605
+ * Replaces sorted arrays with O(n) splice in HNSW beam search.
606
+ */
607
+ class BinaryHeap {
608
+ data = [];
609
+ compareFn;
610
+ constructor(compareFn) {
611
+ this.compareFn = compareFn;
612
+ }
613
+ push(item) {
614
+ this.data.push(item);
615
+ this.bubbleUp(this.data.length - 1);
616
+ }
617
+ pop() {
618
+ if (this.data.length === 0)
619
+ return undefined;
620
+ const top = this.data[0];
621
+ const last = this.data.pop();
622
+ if (this.data.length > 0) {
623
+ this.data[0] = last;
624
+ this.sinkDown(0);
625
+ }
626
+ return top;
627
+ }
628
+ peek() {
629
+ return this.data[0];
630
+ }
631
+ size() {
632
+ return this.data.length;
633
+ }
634
+ bubbleUp(i) {
635
+ while (i > 0) {
636
+ const parent = (i - 1) >> 1;
637
+ if (this.compareFn(this.data[i], this.data[parent]) < 0) {
638
+ [this.data[i], this.data[parent]] = [this.data[parent], this.data[i]];
639
+ i = parent;
640
+ }
641
+ else {
642
+ break;
643
+ }
644
+ }
645
+ }
646
+ sinkDown(i) {
647
+ const n = this.data.length;
648
+ while (true) {
649
+ let smallest = i;
650
+ const left = 2 * i + 1;
651
+ const right = 2 * i + 2;
652
+ if (left < n && this.compareFn(this.data[left], this.data[smallest]) < 0) {
653
+ smallest = left;
654
+ }
655
+ if (right < n && this.compareFn(this.data[right], this.data[smallest]) < 0) {
656
+ smallest = right;
657
+ }
658
+ if (smallest !== i) {
659
+ [this.data[i], this.data[smallest]] = [this.data[smallest], this.data[i]];
660
+ i = smallest;
661
+ }
662
+ else {
663
+ break;
664
+ }
665
+ }
666
+ }
667
+ }
594
668
  /**
595
669
  * In-memory HNSW (Hierarchical Navigable Small World) index built from
596
670
  * SQLite vectors on startup. Provides O(log n) approximate nearest
@@ -657,23 +731,30 @@ class InMemoryHNSWIndex {
657
731
  /**
658
732
  * Beam search at a single layer: starting from an entry point, explore
659
733
  * up to `ef` candidates and return the `ef` closest found.
660
- * Uses a candidate set (max-heap behavior via sorted array) and a result
661
- * set. Returns results sorted by descending similarity.
734
+ * Uses a max-heap for candidates and a min-heap for results to achieve
735
+ * O(log n) insertion instead of O(n) Array.splice.
736
+ * Returns results sorted by descending similarity.
662
737
  */
663
738
  searchLayerBeam(query, entryIds, level, ef) {
664
739
  const visited = new Set(entryIds);
665
- // Candidates: sorted descending by score (best first)
666
- const candidates = entryIds
740
+ const initial = entryIds
667
741
  .filter(id => this.nodes.has(id))
668
742
  .map(id => ({ id, score: this.similarity(query, id) }));
669
- candidates.sort((a, b) => b.score - a.score);
670
- // Results: the ef-closest seen so far, sorted descending by score
671
- const results = [...candidates];
672
- while (candidates.length > 0) {
673
- const closest = candidates.shift();
743
+ // Max-heap for candidates (best score = highest priority)
744
+ const candidateHeap = new BinaryHeap((a, b) => b.score - a.score // max-heap: highest score first
745
+ );
746
+ // Min-heap for results (worst score at top for fast eviction)
747
+ const resultHeap = new BinaryHeap((a, b) => a.score - b.score // min-heap: lowest score first
748
+ );
749
+ for (const entry of initial) {
750
+ candidateHeap.push(entry);
751
+ resultHeap.push(entry);
752
+ }
753
+ while (candidateHeap.size() > 0) {
754
+ const closest = candidateHeap.pop();
674
755
  // If the closest candidate is worse than the worst in results
675
756
  // and we already have ef results, stop
676
- if (results.length >= ef && closest.score < results[results.length - 1].score) {
757
+ if (resultHeap.size() >= ef && closest.score < resultHeap.peek().score) {
677
758
  break;
678
759
  }
679
760
  const node = this.nodes.get(closest.id);
@@ -687,38 +768,24 @@ class InMemoryHNSWIndex {
687
768
  if (!this.nodes.has(neighborId))
688
769
  continue;
689
770
  const score = this.similarity(query, neighborId);
690
- const worstResult = results.length >= ef ? results[results.length - 1].score : -Infinity;
691
- if (results.length < ef || score > worstResult) {
692
- // Insert into candidates in sorted position
693
- const candidateEntry = { id: neighborId, score };
694
- let inserted = false;
695
- for (let i = 0; i < candidates.length; i++) {
696
- if (score > candidates[i].score) {
697
- candidates.splice(i, 0, candidateEntry);
698
- inserted = true;
699
- break;
700
- }
701
- }
702
- if (!inserted)
703
- candidates.push(candidateEntry);
704
- // Insert into results in sorted position
705
- inserted = false;
706
- for (let i = 0; i < results.length; i++) {
707
- if (score > results[i].score) {
708
- results.splice(i, 0, candidateEntry);
709
- inserted = true;
710
- break;
711
- }
712
- }
713
- if (!inserted)
714
- results.push(candidateEntry);
715
- // Trim results to ef
716
- if (results.length > ef) {
717
- results.pop();
771
+ const worstResult = resultHeap.size() >= ef ? resultHeap.peek().score : -Infinity;
772
+ if (resultHeap.size() < ef || score > worstResult) {
773
+ const entry = { id: neighborId, score };
774
+ candidateHeap.push(entry);
775
+ resultHeap.push(entry);
776
+ // Evict worst result if over capacity
777
+ if (resultHeap.size() > ef) {
778
+ resultHeap.pop();
718
779
  }
719
780
  }
720
781
  }
721
782
  }
783
+ // Drain result heap into array sorted descending by score
784
+ const results = [];
785
+ while (resultHeap.size() > 0) {
786
+ results.push(resultHeap.pop());
787
+ }
788
+ results.reverse(); // min-heap drains ascending, reverse for descending
722
789
  return results;
723
790
  }
724
791
  /**
@@ -1087,7 +1154,8 @@ export class UnifiedMemoryManager {
1087
1154
  if (!this.db)
1088
1155
  return false;
1089
1156
  try {
1090
- const info = this.db.prepare(`PRAGMA table_info(${tableName})`).all();
1157
+ const safeName = validateTableName(tableName);
1158
+ const info = this.db.prepare(`PRAGMA table_info(${safeName})`).all();
1091
1159
  return info.some(col => col.name === columnName);
1092
1160
  }
1093
1161
  catch {
@@ -1123,7 +1191,7 @@ export class UnifiedMemoryManager {
1123
1191
  if (tableExists && !this.columnExists(table, requiredColumn)) {
1124
1192
  console.log(`[UnifiedMemory] Upgrading v2 table: ${table} (missing ${requiredColumn})`);
1125
1193
  // Drop the old table - will be recreated with v3 schema
1126
- this.db.exec(`DROP TABLE IF EXISTS ${table}`);
1194
+ this.db.exec(`DROP TABLE IF EXISTS ${validateTableName(table)}`);
1127
1195
  }
1128
1196
  }
1129
1197
  }
@@ -1314,17 +1382,24 @@ export class UnifiedMemoryManager {
1314
1382
  return result.changes > 0;
1315
1383
  }
1316
1384
  /**
1317
- * Search for similar vectors
1385
+ * Search for similar vectors.
1386
+ * Uses batch SQL query instead of N+1 individual queries for metadata enrichment.
1318
1387
  */
1319
1388
  async vectorSearch(query, k = 10, namespace) {
1320
1389
  this.ensureInitialized();
1321
1390
  // Use in-memory HNSW index for fast search
1322
1391
  const results = this.vectorIndex.search(query, k * 2); // Get extra for namespace filtering
1323
- // If namespace filter, post-filter results
1392
+ if (results.length === 0)
1393
+ return [];
1394
+ // Batch fetch metadata for all result IDs in a single query (fixes N+1)
1395
+ const ids = results.map(r => r.id);
1396
+ const placeholders = ids.map(() => '?').join(',');
1397
+ const rows = this.db.prepare(`SELECT id, namespace, metadata FROM vectors WHERE id IN (${placeholders})`).all(...ids);
1398
+ const metadataMap = new Map(rows.map(row => [row.id, row]));
1324
1399
  if (namespace) {
1325
1400
  const filteredResults = [];
1326
1401
  for (const result of results) {
1327
- const row = this.db.prepare('SELECT namespace, metadata FROM vectors WHERE id = ?').get(result.id);
1402
+ const row = metadataMap.get(result.id);
1328
1403
  if (row && row.namespace === namespace) {
1329
1404
  filteredResults.push({
1330
1405
  id: result.id,
@@ -1339,7 +1414,7 @@ export class UnifiedMemoryManager {
1339
1414
  }
1340
1415
  // No namespace filter, just enrich with metadata
1341
1416
  return results.slice(0, k).map(result => {
1342
- const row = this.db.prepare('SELECT metadata FROM vectors WHERE id = ?').get(result.id);
1417
+ const row = metadataMap.get(result.id);
1343
1418
  return {
1344
1419
  id: result.id,
1345
1420
  score: result.score,