sdlc-agent-4-enterprise-server 1.10.0 → 1.11.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 (578) hide show
  1. package/.dockerignore +18 -0
  2. package/.env.example +36 -0
  3. package/.env.test +24 -0
  4. package/.huskyrc.json +5 -0
  5. package/.lintstagedrc.json +9 -0
  6. package/Dockerfile +51 -0
  7. package/README.md +4 -1
  8. package/dist/__tests__/sa4e-testkit.d.ts +1 -1
  9. package/dist/__tests__/sa4e-testkit.js +3 -2
  10. package/dist/__tests__/sa4e-testkit.js.map +1 -1
  11. package/dist/database/dialect/DialectHelper.d.ts +8 -0
  12. package/dist/database/dialect/DialectHelper.js +23 -0
  13. package/dist/database/dialect/DialectHelper.js.map +1 -0
  14. package/dist/database/index.d.ts +1 -0
  15. package/dist/database/index.js +1 -0
  16. package/dist/database/index.js.map +1 -1
  17. package/dist/engine/database/graph-repository.d.ts +3 -3
  18. package/dist/engine/database/graph-repository.js +24 -30
  19. package/dist/engine/database/graph-repository.js.map +1 -1
  20. package/dist/engine/database/migrator.d.ts +3 -3
  21. package/dist/engine/database/migrator.js +17 -17
  22. package/dist/engine/database/migrator.js.map +1 -1
  23. package/dist/engine/db/migrations.js +2 -1
  24. package/dist/engine/db/migrations.js.map +1 -1
  25. package/dist/engine/graph/__tests__/graph-isolation.test.js +5 -4
  26. package/dist/engine/graph/__tests__/graph-isolation.test.js.map +1 -1
  27. package/dist/engine/graph/__tests__/graph-services.test.js +10 -9
  28. package/dist/engine/graph/__tests__/graph-services.test.js.map +1 -1
  29. package/dist/engine/graph/__tests__/graph-sync-service.test.js +6 -5
  30. package/dist/engine/graph/__tests__/graph-sync-service.test.js.map +1 -1
  31. package/dist/engine/graph/graph-sync-service.d.ts +5 -4
  32. package/dist/engine/graph/graph-sync-service.js +19 -15
  33. package/dist/engine/graph/graph-sync-service.js.map +1 -1
  34. package/dist/engine/indexer/__tests__/tree-sitter-pipeline.test.js +7 -6
  35. package/dist/engine/indexer/__tests__/tree-sitter-pipeline.test.js.map +1 -1
  36. package/dist/engine/indexer/async-file-scanner.d.ts +8 -0
  37. package/dist/engine/indexer/async-file-scanner.js +94 -0
  38. package/dist/engine/indexer/async-file-scanner.js.map +1 -0
  39. package/dist/engine/indexer/index-helper.d.ts +6 -5
  40. package/dist/engine/indexer/index-helper.js +9 -11
  41. package/dist/engine/indexer/index-helper.js.map +1 -1
  42. package/dist/engine/indexer/indexing-engine.d.ts +4 -3
  43. package/dist/engine/indexer/indexing-engine.js +64 -45
  44. package/dist/engine/indexer/indexing-engine.js.map +1 -1
  45. package/dist/engine/indexer/module-helper.d.ts +3 -3
  46. package/dist/engine/indexer/module-helper.js +16 -18
  47. package/dist/engine/indexer/module-helper.js.map +1 -1
  48. package/dist/engine/indexer/sfdx-helper.d.ts +3 -3
  49. package/dist/engine/indexer/sfdx-helper.js +16 -20
  50. package/dist/engine/indexer/sfdx-helper.js.map +1 -1
  51. package/dist/engine/parsers/indexer/storage.d.ts +4 -4
  52. package/dist/engine/parsers/indexer/storage.js +16 -25
  53. package/dist/engine/parsers/indexer/storage.js.map +1 -1
  54. package/dist/engine/parsers/tree-sitter-indexer.d.ts +3 -3
  55. package/dist/engine/parsers/tree-sitter-indexer.js +6 -6
  56. package/dist/engine/parsers/tree-sitter-indexer.js.map +1 -1
  57. package/dist/engine/scanner/file-scanner.d.ts +13 -0
  58. package/dist/engine/scanner/file-scanner.js +14 -0
  59. package/dist/engine/scanner/file-scanner.js.map +1 -1
  60. package/dist/engine/tools/ai-context-tools.d.ts +1 -1
  61. package/dist/engine/tools/ai-context-tools.js +5 -2
  62. package/dist/engine/tools/ai-context-tools.js.map +1 -1
  63. package/dist/engine/tools/call-graph-tools.d.ts +1 -1
  64. package/dist/engine/tools/call-graph-tools.js +5 -2
  65. package/dist/engine/tools/call-graph-tools.js.map +1 -1
  66. package/dist/engine/tools/impact-tools.d.ts +1 -1
  67. package/dist/engine/tools/impact-tools.js +3 -1
  68. package/dist/engine/tools/impact-tools.js.map +1 -1
  69. package/dist/index.js.map +1 -1
  70. package/dist/modules/code-intel/CodeIntelModule.js +3 -1
  71. package/dist/modules/code-intel/CodeIntelModule.js.map +1 -1
  72. package/dist/modules/kb-graph/service/sync.js +3 -3
  73. package/dist/modules/kb-graph/service/sync.js.map +1 -1
  74. package/dist/modules/memory/MemoryModule.d.ts +2 -0
  75. package/dist/modules/memory/MemoryModule.js +67 -37
  76. package/dist/modules/memory/MemoryModule.js.map +1 -1
  77. package/dist/modules/memory/__tests__/IsolationLayer.test.js.map +1 -1
  78. package/dist/modules/memory/__tests__/MemoryToolDispatcher.test.js +2 -1
  79. package/dist/modules/memory/__tests__/MemoryToolDispatcher.test.js.map +1 -1
  80. package/dist/modules/memory/__tests__/SA4E31-CrossWorkspaceIsolation.test.js +2 -1
  81. package/dist/modules/memory/__tests__/SA4E31-CrossWorkspaceIsolation.test.js.map +1 -1
  82. package/dist/modules/memory/__tests__/SmartIngest.test.js +3 -2
  83. package/dist/modules/memory/__tests__/SmartIngest.test.js.map +1 -1
  84. package/dist/modules/memory/__tests__/e2e/ingest-file-structured-map.e2e.test.d.ts +1 -0
  85. package/dist/modules/memory/__tests__/e2e/ingest-file-structured-map.e2e.test.js +114 -0
  86. package/dist/modules/memory/__tests__/e2e/ingest-file-structured-map.e2e.test.js.map +1 -0
  87. package/dist/modules/memory/dispatchers/analytics.js.map +1 -1
  88. package/dist/modules/memory/dispatchers/crud.d.ts +8 -2
  89. package/dist/modules/memory/dispatchers/crud.js +81 -28
  90. package/dist/modules/memory/dispatchers/crud.js.map +1 -1
  91. package/dist/modules/memory/dispatchers/dispatcher.d.ts +5 -0
  92. package/dist/modules/memory/dispatchers/dispatcher.js +10 -2
  93. package/dist/modules/memory/dispatchers/dispatcher.js.map +1 -1
  94. package/dist/modules/memory/dispatchers/evolution.js.map +1 -1
  95. package/dist/modules/memory/dispatchers/search.js.map +1 -1
  96. package/dist/modules/memory/dispatchers/smart-ingest.js.map +1 -1
  97. package/dist/modules/memory/dispatchers/supersession.js.map +1 -1
  98. package/dist/modules/memory/dispatchers/sync-code.js.map +1 -1
  99. package/dist/modules/memory/engine/core.d.ts +2 -2
  100. package/dist/modules/memory/engine/core.js +61 -33
  101. package/dist/modules/memory/engine/core.js.map +1 -1
  102. package/dist/modules/memory/engine/crud.d.ts +9 -4
  103. package/dist/modules/memory/engine/crud.js +33 -17
  104. package/dist/modules/memory/engine/crud.js.map +1 -1
  105. package/dist/modules/memory/evolution/CompositeScorer.d.ts +3 -3
  106. package/dist/modules/memory/evolution/CompositeScorer.js +5 -5
  107. package/dist/modules/memory/evolution/CompositeScorer.js.map +1 -1
  108. package/dist/modules/memory/evolution/OutcomeService.d.ts +4 -3
  109. package/dist/modules/memory/evolution/OutcomeService.js +10 -7
  110. package/dist/modules/memory/evolution/OutcomeService.js.map +1 -1
  111. package/dist/modules/memory/evolution/strategies/OutcomeStrategy.d.ts +2 -2
  112. package/dist/modules/memory/evolution/strategies/OutcomeStrategy.js +2 -2
  113. package/dist/modules/memory/evolution/strategies/OutcomeStrategy.js.map +1 -1
  114. package/dist/modules/memory/evolution/strategies/PredictiveStrategy.d.ts +3 -3
  115. package/dist/modules/memory/evolution/strategies/PredictiveStrategy.js +5 -5
  116. package/dist/modules/memory/evolution/strategies/PredictiveStrategy.js.map +1 -1
  117. package/dist/modules/memory/llm/LLMService.js +7 -7
  118. package/dist/modules/memory/llm/LLMService.js.map +1 -1
  119. package/dist/modules/memory/llm/__tests__/TagAnalyzerService.it.test.d.ts +1 -0
  120. package/dist/modules/memory/llm/__tests__/TagAnalyzerService.it.test.js +68 -0
  121. package/dist/modules/memory/llm/__tests__/TagAnalyzerService.it.test.js.map +1 -0
  122. package/dist/modules/memory/llm/__tests__/TagAnalyzerService.test.d.ts +1 -0
  123. package/dist/modules/memory/llm/__tests__/TagAnalyzerService.test.js +171 -0
  124. package/dist/modules/memory/llm/__tests__/TagAnalyzerService.test.js.map +1 -0
  125. package/dist/modules/memory/llm/__tests__/analyzeWithChunking.test.d.ts +1 -0
  126. package/dist/modules/memory/llm/__tests__/analyzeWithChunking.test.js +81 -0
  127. package/dist/modules/memory/llm/__tests__/analyzeWithChunking.test.js.map +1 -0
  128. package/dist/modules/memory/llm/__tests__/chunkContent.pbt.test.d.ts +1 -0
  129. package/dist/modules/memory/llm/__tests__/chunkContent.pbt.test.js +72 -0
  130. package/dist/modules/memory/llm/__tests__/chunkContent.pbt.test.js.map +1 -0
  131. package/dist/modules/memory/llm/__tests__/chunkContent.test.d.ts +1 -0
  132. package/dist/modules/memory/llm/__tests__/chunkContent.test.js +70 -0
  133. package/dist/modules/memory/llm/__tests__/chunkContent.test.js.map +1 -0
  134. package/dist/modules/memory/llm/__tests__/parseEnhancedResponse.pbt.test.d.ts +1 -0
  135. package/dist/modules/memory/llm/__tests__/parseEnhancedResponse.pbt.test.js +70 -0
  136. package/dist/modules/memory/llm/__tests__/parseEnhancedResponse.pbt.test.js.map +1 -0
  137. package/dist/modules/memory/llm/__tests__/parseEnhancedResponse.test.d.ts +1 -0
  138. package/dist/modules/memory/llm/__tests__/parseEnhancedResponse.test.js +120 -0
  139. package/dist/modules/memory/llm/__tests__/parseEnhancedResponse.test.js.map +1 -0
  140. package/dist/modules/memory/llm/__tests__/safeParseStructuredMap.pbt.test.d.ts +1 -0
  141. package/dist/modules/memory/llm/__tests__/safeParseStructuredMap.pbt.test.js +70 -0
  142. package/dist/modules/memory/llm/__tests__/safeParseStructuredMap.pbt.test.js.map +1 -0
  143. package/dist/modules/memory/llm/analyzer.d.ts +33 -6
  144. package/dist/modules/memory/llm/analyzer.js +118 -34
  145. package/dist/modules/memory/llm/analyzer.js.map +1 -1
  146. package/dist/modules/memory/llm/prompts.d.ts +1 -1
  147. package/dist/modules/memory/llm/prompts.js +32 -11
  148. package/dist/modules/memory/llm/prompts.js.map +1 -1
  149. package/dist/modules/memory/llm/types.d.ts +37 -0
  150. package/dist/modules/memory/llm/types.js +16 -1
  151. package/dist/modules/memory/llm/types.js.map +1 -1
  152. package/dist/modules/memory/migrations/003-pending-tasks.d.ts +7 -0
  153. package/dist/modules/memory/migrations/003-pending-tasks.js +33 -0
  154. package/dist/modules/memory/migrations/003-pending-tasks.js.map +1 -0
  155. package/dist/modules/memory/task-queue/PendingTaskRepository.d.ts +24 -0
  156. package/dist/modules/memory/task-queue/PendingTaskRepository.js +60 -0
  157. package/dist/modules/memory/task-queue/PendingTaskRepository.js.map +1 -0
  158. package/dist/modules/memory/task-queue/SqliteDbAdapter.d.ts +25 -0
  159. package/dist/modules/memory/task-queue/SqliteDbAdapter.js +59 -0
  160. package/dist/modules/memory/task-queue/SqliteDbAdapter.js.map +1 -0
  161. package/dist/modules/memory/task-queue/TaskWorker.d.ts +58 -0
  162. package/dist/modules/memory/task-queue/TaskWorker.js +249 -0
  163. package/dist/modules/memory/task-queue/TaskWorker.js.map +1 -0
  164. package/dist/modules/memory/task-queue/TaskWorkerConfig.d.ts +27 -0
  165. package/dist/modules/memory/task-queue/TaskWorkerConfig.js +17 -0
  166. package/dist/modules/memory/task-queue/TaskWorkerConfig.js.map +1 -0
  167. package/dist/modules/memory/task-queue/__tests__/TaskWorker.it.test.d.ts +1 -0
  168. package/dist/modules/memory/task-queue/__tests__/TaskWorker.it.test.js +345 -0
  169. package/dist/modules/memory/task-queue/__tests__/TaskWorker.it.test.js.map +1 -0
  170. package/dist/modules/memory/task-queue/__tests__/TaskWorker.test.d.ts +1 -0
  171. package/dist/modules/memory/task-queue/__tests__/TaskWorker.test.js +112 -0
  172. package/dist/modules/memory/task-queue/__tests__/TaskWorker.test.js.map +1 -0
  173. package/dist/modules/memory/task-queue/admin-handlers.d.ts +18 -0
  174. package/dist/modules/memory/task-queue/admin-handlers.js +20 -0
  175. package/dist/modules/memory/task-queue/admin-handlers.js.map +1 -0
  176. package/dist/modules/memory/task-queue/index.d.ts +11 -0
  177. package/dist/modules/memory/task-queue/index.js +10 -0
  178. package/dist/modules/memory/task-queue/index.js.map +1 -0
  179. package/dist/modules/memory/task-queue/models.d.ts +33 -0
  180. package/dist/modules/memory/task-queue/models.js +17 -0
  181. package/dist/modules/memory/task-queue/models.js.map +1 -0
  182. package/dist/modules/orchestration/OrchestrationModule.js.map +1 -1
  183. package/dist/modules/orchestration/reindex/ReindexSubscriberFactory.js.map +1 -1
  184. package/dist/server/__tests__/mcpServer.listtools.it.test.d.ts +2 -2
  185. package/dist/server/__tests__/mcpServer.listtools.it.test.js +7 -7
  186. package/dist/server/__tests__/mcpServer.listtools.it.test.js.map +1 -1
  187. package/dist/server/routes/admin/analytics.js +2 -1
  188. package/dist/server/routes/admin/analytics.js.map +1 -1
  189. package/dist/server/routes/admin/database.js +1 -1
  190. package/dist/server/routes/admin/database.js.map +1 -1
  191. package/dist/server/routes/admin/kb-entries.js +70 -1
  192. package/dist/server/routes/admin/kb-entries.js.map +1 -1
  193. package/dist/server/routes/admin/kb-graph-spatial.js +2 -3
  194. package/dist/server/routes/admin/kb-graph-spatial.js.map +1 -1
  195. package/dist/viewer/admin/index.html +2 -2
  196. package/docker-compose.test.yml +35 -0
  197. package/docker-compose.yml +75 -0
  198. package/documents/F1-memory-kb/BRD.md +597 -0
  199. package/documents/F1-memory-kb/FSD.md +756 -0
  200. package/documents/F1-memory-kb/STATUS.json +43 -0
  201. package/documents/F1-memory-kb/TDD.md +453 -0
  202. package/documents/F10-hook-system/BRD.md +434 -0
  203. package/documents/F10-hook-system/FSD.md +715 -0
  204. package/documents/F10-hook-system/STATUS.json +43 -0
  205. package/documents/F10-hook-system/TDD.md +642 -0
  206. package/documents/F11-webview-panels/BRD.md +432 -0
  207. package/documents/F11-webview-panels/FSD.md +669 -0
  208. package/documents/F11-webview-panels/STATUS.json +43 -0
  209. package/documents/F11-webview-panels/TDD.md +468 -0
  210. package/documents/F12-backend-connection/BRD.md +479 -0
  211. package/documents/F12-backend-connection/FSD.md +622 -0
  212. package/documents/F12-backend-connection/STATUS.json +43 -0
  213. package/documents/F12-backend-connection/TDD.md +386 -0
  214. package/documents/F2-code-intelligence/BRD.md +604 -0
  215. package/documents/F2-code-intelligence/FSD.md +492 -0
  216. package/documents/F2-code-intelligence/STATUS.json +43 -0
  217. package/documents/F2-code-intelligence/TDD.md +486 -0
  218. package/documents/F3-orchestration/BRD.md +527 -0
  219. package/documents/F3-orchestration/FSD.md +686 -0
  220. package/documents/F3-orchestration/STATUS.json +43 -0
  221. package/documents/F3-orchestration/TDD.md +477 -0
  222. package/documents/F4-context-assembly/BRD.md +448 -0
  223. package/documents/F4-context-assembly/FSD.md +372 -0
  224. package/documents/F4-context-assembly/STATUS.json +43 -0
  225. package/documents/F4-context-assembly/TDD.md +338 -0
  226. package/documents/F5-incremental-indexer/BRD.md +472 -0
  227. package/documents/F5-incremental-indexer/FSD.md +800 -0
  228. package/documents/F5-incremental-indexer/STATUS.json +16 -0
  229. package/documents/F5-incremental-indexer/TDD.md +628 -0
  230. package/documents/F6-drawio-engine/BRD.md +365 -0
  231. package/documents/F6-drawio-engine/FSD.md +1100 -0
  232. package/documents/F6-drawio-engine/STATUS.json +43 -0
  233. package/documents/F6-drawio-engine/TDD.md +581 -0
  234. package/documents/F7-langgraph-pipeline/BRD.md +520 -0
  235. package/documents/F7-langgraph-pipeline/FSD.md +597 -0
  236. package/documents/F7-langgraph-pipeline/STATUS.json +43 -0
  237. package/documents/F7-langgraph-pipeline/TDD.md +421 -0
  238. package/documents/F8-chat-panel/BRD.md +479 -0
  239. package/documents/F8-chat-panel/FSD.md +719 -0
  240. package/documents/F8-chat-panel/STATUS.json +43 -0
  241. package/documents/F8-chat-panel/TDD.md +459 -0
  242. package/documents/F9-auth-sso/BRD.md +356 -0
  243. package/documents/F9-auth-sso/FSD.md +663 -0
  244. package/documents/F9-auth-sso/STATUS.json +43 -0
  245. package/documents/F9-auth-sso/TDD.md +708 -0
  246. package/documents/FAILURE-MODES.md +112 -0
  247. package/documents/LOOP-ENGINEERING-PLAN.md +279 -0
  248. package/documents/SA4E-12/BRD.md +454 -0
  249. package/documents/SA4E-12/FSD.md +639 -0
  250. package/documents/SA4E-12/STATUS.json +59 -0
  251. package/documents/SA4E-12/STC.md +1502 -0
  252. package/documents/SA4E-12/STP.md +348 -0
  253. package/documents/SA4E-12/TDD.md +427 -0
  254. package/documents/SA4E-12/TEST-REPORT-SA4E-12.csv +66 -0
  255. package/documents/SA4E-12/test-data/api-keys.csv +16 -0
  256. package/documents/SA4E-12/test-data/models.csv +18 -0
  257. package/documents/SA4E-12/test-data/providers.csv +7 -0
  258. package/documents/SA4E-124/BRD.md +126 -0
  259. package/documents/SA4E-124/DPG+RLN.md +74 -0
  260. package/documents/SA4E-124/FSD.md +102 -0
  261. package/documents/SA4E-124/RUN-LOG.md +13 -0
  262. package/documents/SA4E-124/STATUS.json +18 -0
  263. package/documents/SA4E-124/STP+STC.md +118 -0
  264. package/documents/SA4E-124/TDD.md +87 -0
  265. package/documents/SA4E-125/Architecture-v2.md +165 -0
  266. package/documents/SA4E-125/Architecture-v3.md +99 -0
  267. package/documents/SA4E-125/Architecture-v4.md +122 -0
  268. package/documents/SA4E-125/Architecture-v5.md +140 -0
  269. package/documents/SA4E-125/Architecture-v6.md +94 -0
  270. package/documents/SA4E-125/BRD.md +168 -0
  271. package/documents/SA4E-125/DPG.md +189 -0
  272. package/documents/SA4E-125/FSD.md +742 -0
  273. package/documents/SA4E-125/Langgrap.md +648 -0
  274. package/documents/SA4E-125/Langgraph-Module-Reference.md +448 -0
  275. package/documents/SA4E-125/STATUS.json +18 -0
  276. package/documents/SA4E-125/STC.md +410 -0
  277. package/documents/SA4E-125/STP.md +101 -0
  278. package/documents/SA4E-125/TDD.md +252 -0
  279. package/documents/SA4E-125/UG.md +153 -0
  280. package/documents/SA4E-125/review-1.md +244 -0
  281. package/documents/SA4E-125/review-2.md +93 -0
  282. package/documents/SA4E-125/review-3.md +90 -0
  283. package/documents/SA4E-125/review-4.md +119 -0
  284. package/documents/SA4E-125/review-5.md +94 -0
  285. package/documents/SA4E-125/review-6.md +75 -0
  286. package/documents/SA4E-14/BRD.md +532 -0
  287. package/documents/SA4E-14/FSD.md +890 -0
  288. package/documents/SA4E-14/SECURITY-REPORT.md +470 -0
  289. package/documents/SA4E-14/STATUS.json +16 -0
  290. package/documents/SA4E-14/STC.md +337 -0
  291. package/documents/SA4E-14/STP.md +170 -0
  292. package/documents/SA4E-14/TDD.md +653 -0
  293. package/documents/SA4E-18/BRD-v1-SA4E-18.docx +0 -0
  294. package/documents/SA4E-18/BRD.md +382 -0
  295. package/documents/SA4E-18/FSD-v1-SA4E-18.docx +0 -0
  296. package/documents/SA4E-18/FSD.md +895 -0
  297. package/documents/SA4E-18/STATUS.json +23 -0
  298. package/documents/SA4E-18/STC-v1-SA4E-18.docx +0 -0
  299. package/documents/SA4E-18/STC.md +998 -0
  300. package/documents/SA4E-18/STP-v1-SA4E-18.docx +0 -0
  301. package/documents/SA4E-18/STP.md +323 -0
  302. package/documents/SA4E-18/TDD-v1-SA4E-18.docx +0 -0
  303. package/documents/SA4E-18/TDD.md +827 -0
  304. package/documents/SA4E-18/TEST-REPORT-SA4E-18.csv +35 -0
  305. package/documents/SA4E-18/TEST-REPORT-v1-SA4E-18.docx +0 -0
  306. package/documents/SA4E-18/TEST-REPORT.md +122 -0
  307. package/documents/SA4E-26/BRD-v1-SA4E-26.docx +0 -0
  308. package/documents/SA4E-26/BRD.md +306 -0
  309. package/documents/SA4E-26/DPG-v1-SA4E-26.docx +0 -0
  310. package/documents/SA4E-26/DPG.md +210 -0
  311. package/documents/SA4E-26/FSD-v1-SA4E-26.docx +0 -0
  312. package/documents/SA4E-26/FSD.md +953 -0
  313. package/documents/SA4E-26/RLN-v1-SA4E-26.docx +0 -0
  314. package/documents/SA4E-26/RLN.md +122 -0
  315. package/documents/SA4E-26/RUN-LOG.md +41 -0
  316. package/documents/SA4E-26/STATUS.json +25 -0
  317. package/documents/SA4E-26/STC-v1-SA4E-26.docx +0 -0
  318. package/documents/SA4E-26/STC.md +1011 -0
  319. package/documents/SA4E-26/STP-v1-SA4E-26.docx +0 -0
  320. package/documents/SA4E-26/STP.md +292 -0
  321. package/documents/SA4E-26/TDD-v1-SA4E-26.docx +0 -0
  322. package/documents/SA4E-26/TDD.md +506 -0
  323. package/documents/SA4E-27/BRD.md +471 -0
  324. package/documents/SA4E-27/FSD.md +1100 -0
  325. package/documents/SA4E-27/RUN-LOG.md +5 -0
  326. package/documents/SA4E-27/STATUS.json +15 -0
  327. package/documents/SA4E-27/TDD.md +1156 -0
  328. package/documents/SA4E-28/RUN-LOG.md +9 -0
  329. package/documents/SA4E-28/STATUS.json +24 -0
  330. package/documents/SA4E-28/TICKET-PLAN.md +121 -0
  331. package/documents/SA4E-29/ARCHITECTURE-BASE64-PROXY.md +145 -0
  332. package/documents/SA4E-29/BRD.md +366 -0
  333. package/documents/SA4E-29/FSD.md +675 -0
  334. package/documents/SA4E-29/RUN-LOG.md +5 -0
  335. package/documents/SA4E-29/STATUS.json +16 -0
  336. package/documents/SA4E-29/STC.md +667 -0
  337. package/documents/SA4E-29/STP.md +299 -0
  338. package/documents/SA4E-29/TDD.md +491 -0
  339. package/documents/SA4E-30/BRD.md +258 -0
  340. package/documents/SA4E-30/FSD.md +168 -0
  341. package/documents/SA4E-30/RUN-LOG.md +5 -0
  342. package/documents/SA4E-30/STATUS.json +32 -0
  343. package/documents/SA4E-30/TDD.md +153 -0
  344. package/documents/SA4E-31/RUN-LOG.md +39 -0
  345. package/documents/SA4E-31/STATUS.json +53 -0
  346. package/documents/SA4E-32/BRD.md +163 -0
  347. package/documents/SA4E-32/FSD.md +226 -0
  348. package/documents/SA4E-32/RUN-LOG.md +11 -0
  349. package/documents/SA4E-32/STATUS.json +18 -0
  350. package/documents/SA4E-32/STC.md +64 -0
  351. package/documents/SA4E-32/STP.md +72 -0
  352. package/documents/SA4E-32/TDD.md +132 -0
  353. package/documents/SA4E-34/BRD.md +324 -0
  354. package/documents/SA4E-34/FSD.md +291 -0
  355. package/documents/SA4E-34/RUN-LOG.md +14 -0
  356. package/documents/SA4E-34/STATUS.json +31 -0
  357. package/documents/SA4E-34/TDD.md +236 -0
  358. package/documents/SA4E-35/BRD.md +79 -0
  359. package/documents/SA4E-35/RUN-LOG.md +9 -0
  360. package/documents/SA4E-35/STATUS.json +14 -0
  361. package/documents/SA4E-36/BRD.md +485 -0
  362. package/documents/SA4E-36/FSD.md +886 -0
  363. package/documents/SA4E-36/RUN-LOG.md +30 -0
  364. package/documents/SA4E-36/STATUS.json +46 -0
  365. package/documents/SA4E-36/STC.md +1376 -0
  366. package/documents/SA4E-36/STP.md +445 -0
  367. package/documents/SA4E-36/TDD.md +846 -0
  368. package/documents/SA4E-36/UG.md +240 -0
  369. package/documents/SA4E-37/BRD.md +350 -0
  370. package/documents/SA4E-37/FSD.md +1087 -0
  371. package/documents/SA4E-37/RUN-LOG.md +14 -0
  372. package/documents/SA4E-37/STATUS.json +32 -0
  373. package/documents/SA4E-37/TDD.md +498 -0
  374. package/documents/SA4E-37/UG.md +135 -0
  375. package/documents/SA4E-38/BRD.md +441 -0
  376. package/documents/SA4E-38/FSD.md +671 -0
  377. package/documents/SA4E-38/RUN-LOG.md +12 -0
  378. package/documents/SA4E-38/STC.md +1286 -0
  379. package/documents/SA4E-38/STP.md +360 -0
  380. package/documents/SA4E-38/TDD.md +737 -0
  381. package/documents/SA4E-38/UG.md +78 -0
  382. package/documents/SA4E-38/test-data/business-messages.csv +11 -0
  383. package/documents/SA4E-38/test-data/edge-case-messages.csv +12 -0
  384. package/documents/SA4E-38/test-data/llm-mock-responses.csv +11 -0
  385. package/documents/SA4E-38/test-data/social-messages.csv +11 -0
  386. package/documents/SA4E-38/test-data/unfiltered-entries-seed.csv +11 -0
  387. package/documents/SA4E-39/RUN-LOG.md +11 -0
  388. package/documents/SA4E-39/STATUS.json +22 -0
  389. package/documents/SA4E-40/RUN-LOG.md +9 -0
  390. package/documents/SA4E-42/BRD.md +329 -0
  391. package/documents/SA4E-42/FSD.md +873 -0
  392. package/documents/SA4E-42/PENTEST-REPORT.md +247 -0
  393. package/documents/SA4E-42/RUN-LOG.md +24 -0
  394. package/documents/SA4E-42/SECURITY-REVIEW.md +430 -0
  395. package/documents/SA4E-42/STATUS.json +38 -0
  396. package/documents/SA4E-42/STC.md +351 -0
  397. package/documents/SA4E-42/STP.md +340 -0
  398. package/documents/SA4E-42/TDD.md +344 -0
  399. package/documents/SA4E-42/TEST-REPORT.md +198 -0
  400. package/documents/SA4E-42/test-data-events.csv +15 -0
  401. package/documents/SA4E-42/test-data-tools.csv +14 -0
  402. package/documents/SA4E-44/BRD.md +614 -0
  403. package/documents/SA4E-44/DISCREPANCY.md +82 -0
  404. package/documents/SA4E-44/DPG.md +170 -0
  405. package/documents/SA4E-44/FSD.md +1340 -0
  406. package/documents/SA4E-44/RLN.md +176 -0
  407. package/documents/SA4E-44/RUN-LOG.md +41 -0
  408. package/documents/SA4E-44/SECURITY-ASSESSMENT.md +465 -0
  409. package/documents/SA4E-44/SECURITY-REVIEW.md +287 -0
  410. package/documents/SA4E-44/STATUS.json +31 -0
  411. package/documents/SA4E-44/STC.md +1794 -0
  412. package/documents/SA4E-44/STP.md +281 -0
  413. package/documents/SA4E-44/TDD-REFACTOR-PG.md +171 -0
  414. package/documents/SA4E-44/TDD.md +1130 -0
  415. package/documents/SA4E-44/UG.md +147 -0
  416. package/documents/SA4E-45/BRD.md +413 -0
  417. package/documents/SA4E-45/FSD.md +1549 -0
  418. package/documents/SA4E-45/RUN-LOG.md +18 -0
  419. package/documents/SA4E-45/SECURITY-REVIEW.md +487 -0
  420. package/documents/SA4E-45/STATUS.json +35 -0
  421. package/documents/SA4E-45/STC.md +1080 -0
  422. package/documents/SA4E-45/STP.md +249 -0
  423. package/documents/SA4E-45/TDD.md +648 -0
  424. package/documents/SA4E-45/deployment_guide.md +209 -0
  425. package/documents/SA4E-45/release_notes.md +118 -0
  426. package/documents/SA4E-45/test-data/dialect-inputs.csv +9 -0
  427. package/documents/SA4E-45/test-data/fts-queries.csv +11 -0
  428. package/documents/SA4E-45/test-data/graph-symbols.csv +11 -0
  429. package/documents/SA4E-45/test-data/knowledge-entries.csv +11 -0
  430. package/documents/SA4E-45/test-data/migration-tables.csv +17 -0
  431. package/documents/SA4E-45/test-data/security-inputs.csv +13 -0
  432. package/documents/SA4E-47/BRD.md +721 -0
  433. package/documents/SA4E-47/FSD.md +1150 -0
  434. package/documents/SA4E-47/STC.md +1126 -0
  435. package/documents/SA4E-47/STP.md +409 -0
  436. package/documents/SA4E-47/TDD.md +1450 -0
  437. package/documents/SA4E-47/TEST-REPORT-SA4E-47.csv +36 -0
  438. package/documents/SA4E-6/BRD-TOUCH.md +366 -0
  439. package/documents/SA4E-6/BRD.md +531 -0
  440. package/documents/SA4E-6/FSD.md +1621 -0
  441. package/documents/SA4E-6/STATUS.json +19 -0
  442. package/documents/SA4E-6/TDD-TOUCH.md +768 -0
  443. package/documents/SA4E-6/TDD.md +1123 -0
  444. package/documents/SA4E-CODEINTEL-MT/RUN-LOG.md +27 -0
  445. package/documents/SA4E-CODEINTEL-MT/SECURITY-ASSESSMENT.md +197 -0
  446. package/documents/SA4E-CODEINTEL-MT/STATUS.json +25 -0
  447. package/documents/SA4E-CODEINTEL-MT/TDD.md +746 -0
  448. package/documents/SKILLS-REPO-TICKETS.md +64 -0
  449. package/documents/analysis/langgraph-vs-deerflow-report.md +603 -0
  450. package/documents/drawio-optimize/drawio-anti-edge-collision.md +97 -0
  451. package/documents/evolution-memory/Soliution-3-GPT.md +649 -0
  452. package/documents/evolution-memory/Solution-1-Deepseek.md +267 -0
  453. package/documents/evolution-memory/Solution-2-Grok.md +166 -0
  454. package/documents/evolution-memory/Solution4-gemini.pdf +0 -0
  455. package/documents/workflows/SA4E-workflows.md +167 -0
  456. package/extension/src/__tests__/backend-local-tools.test.ts +156 -46
  457. package/extension/src/__tests__/code-intel.test.ts +356 -0
  458. package/extension/src/__tests__/wrapper-server.helpers.ts +118 -0
  459. package/extension/src/__tests__/wrapper-server.test.ts +198 -0
  460. package/extension/src/backend-local-tools.ts +68 -74
  461. package/extension/src/code-intel/CodeIntelScanner.ts +157 -0
  462. package/extension/src/code-intel/CodeIntelUploader.ts +82 -0
  463. package/extension/src/code-intel/FileChangeWatcher.ts +132 -0
  464. package/extension/src/code-intel/HashCache.ts +57 -0
  465. package/extension/src/code-intel/OfflineQueue.ts +61 -0
  466. package/extension/src/code-intel/TimestampResolver.ts +62 -0
  467. package/extension/src/code-intel/index.ts +12 -0
  468. package/extension/src/code-intel/models.ts +83 -0
  469. package/extension/src/extension.ts +22 -0
  470. package/extension/src/file-meta.ts +92 -0
  471. package/extension/src/indexer-http.ts +4 -3
  472. package/extension/src/langgraph/agents/analyze-input-node.ts +6 -4
  473. package/extension/src/langgraph/agents/dynamic-agent-node.ts +13 -8
  474. package/extension/src/langgraph/agents/registry.ts +1 -1
  475. package/extension/src/langgraph/core/mcp-bridge.ts +1 -1
  476. package/extension/src/langgraph/core/stream-handler.ts +1 -1
  477. package/extension/src/langgraph/engine/engine-chat-handler.ts +1 -1
  478. package/extension/src/langgraph/engine/langgraph-engine.ts +3 -2
  479. package/extension/src/langgraph/hooks/hook-engine.ts +13 -0
  480. package/extension/src/langgraph/index.ts +1 -2
  481. package/extension/src/langgraph/pipeline/sdlc-graph.ts +10 -10
  482. package/extension/src/langgraph/pipeline/sdlc-node-factory.ts +2 -1
  483. package/extension/src/langgraph/subgraphs/core/checkpointer.ts +4 -0
  484. package/extension/src/langgraph/subgraphs/core/llm-provider.ts +4 -0
  485. package/extension/src/langgraph/subgraphs/core/mcp-bridge.ts +4 -0
  486. package/extension/src/langgraph/subgraphs/core/stream-handler.ts +4 -0
  487. package/extension/src/langgraph/subgraphs/hooks/hook-engine.ts +4 -0
  488. package/extension/src/proxy/HttpClient.ts +9 -0
  489. package/extension/src/remote-backend-client.ts +76 -129
  490. package/extension/src/services/Base64ProxyService.ts +180 -0
  491. package/extension/src/services/IndexerHttpClient.ts +92 -11
  492. package/extension/src/services/IndexingService.ts +37 -24
  493. package/extension/src/services/WrapperServer.ts +183 -0
  494. package/minimal-err.txt +12 -0
  495. package/minimal-out.txt +0 -0
  496. package/minimal.js +12 -0
  497. package/package.json +1 -1
  498. package/scripts/db/init.sql +10 -0
  499. package/scripts/run-migrations.ts +221 -0
  500. package/scripts/verify-migrations.ts +76 -0
  501. package/src/__tests__/sa4e-testkit.ts +3 -2
  502. package/src/database/dialect/DialectHelper.ts +24 -0
  503. package/src/database/index.ts +1 -0
  504. package/src/engine/database/graph-repository.ts +39 -41
  505. package/src/engine/database/migrator.ts +20 -20
  506. package/src/engine/db/migrations.ts +2 -1
  507. package/src/engine/graph/__tests__/graph-isolation.test.ts +5 -4
  508. package/src/engine/graph/__tests__/graph-services.test.ts +10 -9
  509. package/src/engine/graph/__tests__/graph-sync-service.test.ts +6 -5
  510. package/src/engine/graph/graph-sync-service.ts +25 -19
  511. package/src/engine/indexer/__tests__/tree-sitter-pipeline.test.ts +7 -6
  512. package/src/engine/indexer/async-file-scanner.ts +109 -0
  513. package/src/engine/indexer/index-helper.ts +21 -17
  514. package/src/engine/indexer/indexing-engine.ts +62 -43
  515. package/src/engine/indexer/module-helper.ts +24 -22
  516. package/src/engine/indexer/sfdx-helper.ts +24 -23
  517. package/src/engine/parsers/indexer/storage.ts +17 -26
  518. package/src/engine/parsers/tree-sitter-indexer.ts +7 -7
  519. package/src/engine/scanner/file-scanner.ts +25 -0
  520. package/src/engine/tools/ai-context-tools.ts +6 -3
  521. package/src/engine/tools/call-graph-tools.ts +6 -3
  522. package/src/engine/tools/impact-tools.ts +4 -2
  523. package/src/index.ts +1 -1
  524. package/src/modules/code-intel/CodeIntelModule.ts +3 -1
  525. package/src/modules/kb-graph/service/sync.ts +3 -3
  526. package/src/modules/memory/MemoryModule.ts +70 -37
  527. package/src/modules/memory/__tests__/IsolationLayer.test.ts +4 -4
  528. package/src/modules/memory/__tests__/MemoryToolDispatcher.test.ts +2 -1
  529. package/src/modules/memory/__tests__/SA4E31-CrossWorkspaceIsolation.test.ts +2 -1
  530. package/src/modules/memory/__tests__/SmartIngest.test.ts +3 -2
  531. package/src/modules/memory/__tests__/e2e/ingest-file-structured-map.e2e.test.ts +131 -0
  532. package/src/modules/memory/dispatchers/analytics.ts +1 -1
  533. package/src/modules/memory/dispatchers/crud.ts +93 -29
  534. package/src/modules/memory/dispatchers/dispatcher.ts +13 -2
  535. package/src/modules/memory/dispatchers/evolution.ts +3 -3
  536. package/src/modules/memory/dispatchers/search.ts +2 -2
  537. package/src/modules/memory/dispatchers/smart-ingest.ts +4 -4
  538. package/src/modules/memory/dispatchers/supersession.ts +2 -2
  539. package/src/modules/memory/dispatchers/sync-code.ts +1 -1
  540. package/src/modules/memory/engine/core.ts +99 -61
  541. package/src/modules/memory/engine/crud.ts +40 -24
  542. package/src/modules/memory/evolution/CompositeScorer.ts +6 -6
  543. package/src/modules/memory/evolution/OutcomeService.ts +20 -13
  544. package/src/modules/memory/evolution/strategies/OutcomeStrategy.ts +3 -3
  545. package/src/modules/memory/evolution/strategies/PredictiveStrategy.ts +7 -6
  546. package/src/modules/memory/llm/LLMService.ts +7 -7
  547. package/src/modules/memory/llm/__tests__/TagAnalyzerService.it.test.ts +81 -0
  548. package/src/modules/memory/llm/__tests__/TagAnalyzerService.test.ts +196 -0
  549. package/src/modules/memory/llm/__tests__/analyzeWithChunking.test.ts +91 -0
  550. package/src/modules/memory/llm/__tests__/chunkContent.pbt.test.ts +102 -0
  551. package/src/modules/memory/llm/__tests__/chunkContent.test.ts +77 -0
  552. package/src/modules/memory/llm/__tests__/parseEnhancedResponse.pbt.test.ts +89 -0
  553. package/src/modules/memory/llm/__tests__/parseEnhancedResponse.test.ts +130 -0
  554. package/src/modules/memory/llm/__tests__/safeParseStructuredMap.pbt.test.ts +83 -0
  555. package/src/modules/memory/llm/analyzer.ts +161 -56
  556. package/src/modules/memory/llm/prompts.ts +32 -11
  557. package/src/modules/memory/llm/types.ts +49 -0
  558. package/src/modules/memory/migrations/003-pending-tasks.ts +38 -0
  559. package/src/modules/memory/task-queue/PendingTaskRepository.ts +94 -0
  560. package/src/modules/memory/task-queue/SqliteDbAdapter.ts +79 -0
  561. package/src/modules/memory/task-queue/TaskWorker.ts +274 -0
  562. package/src/modules/memory/task-queue/TaskWorkerConfig.ts +42 -0
  563. package/src/modules/memory/task-queue/__tests__/TaskWorker.it.test.ts +387 -0
  564. package/src/modules/memory/task-queue/__tests__/TaskWorker.test.ts +131 -0
  565. package/src/modules/memory/task-queue/admin-handlers.ts +22 -0
  566. package/src/modules/memory/task-queue/index.ts +12 -0
  567. package/src/modules/memory/task-queue/models.ts +37 -0
  568. package/src/modules/orchestration/OrchestrationModule.ts +1 -1
  569. package/src/modules/orchestration/reindex/ReindexSubscriberFactory.ts +1 -1
  570. package/src/server/__tests__/mcpServer.listtools.it.test.ts +7 -7
  571. package/src/server/routes/admin/analytics.ts +2 -1
  572. package/src/server/routes/admin/database.ts +1 -1
  573. package/src/server/routes/admin/kb-entries.ts +68 -1
  574. package/src/server/routes/admin/kb-graph-spatial.ts +2 -3
  575. package/src/viewer/admin/index.html +2 -2
  576. package/tests/integration/drawio-export.test.ts +33 -37
  577. package/tests/integration/mcp-drawio-dispatch.test.ts +8 -11
  578. package/tests/integration/pg-memory.test.ts +196 -0
package/.dockerignore ADDED
@@ -0,0 +1,18 @@
1
+ node_modules
2
+ dist
3
+ .code-intel
4
+ .git
5
+ .opencode
6
+ .kiro
7
+ .vscode
8
+ *.md
9
+ *.log
10
+ tests
11
+ documents
12
+ .tsc-out.txt
13
+ minimal*.js
14
+ query.js
15
+ test*.ts
16
+ coverage
17
+ .env
18
+ .env.*
package/.env.example ADDED
@@ -0,0 +1,36 @@
1
+ # SA4E-44 Environment Variables
2
+ # Copy to .env and fill in values
3
+
4
+ # --- Server ---
5
+ NODE_ENV=development
6
+ PORT=48721
7
+
8
+ # --- Database ---
9
+ DATABASE_ADAPTER=postgresql
10
+ DATABASE_URL=postgresql://sa4e_user:sa4e_local_dev_password@localhost:5432/sa4e_db
11
+
12
+ # --- Task Worker (Part 1) ---
13
+ TASK_WORKER_ENABLED=true
14
+ TASK_WORKER_POLL_INTERVAL_MS=5000
15
+ TASK_WORKER_MAX_RETRIES=3
16
+ TASK_WORKER_BACKOFF_BASE_MS=1000
17
+ TASK_WORKER_MAX_CONCURRENT=1
18
+ TASK_WORKER_DEAD_LETTER_ENABLED=true
19
+
20
+ # --- Code Intelligence (Part 2) ---
21
+ CODE_INTEL_ENABLED=true
22
+ CODE_INTEL_MAX_BATCH_SIZE=100
23
+ CODE_INTEL_UPLOAD_TIMEOUT_MS=30000
24
+ CODE_INTEL_VECTOR_ENABLED=false
25
+
26
+ # --- ONNX Runtime (optional --- for embeddings) ---
27
+ ONNX_RUNTIME_URL=http://localhost:8080
28
+ ONNX_MODEL_PATH=./models/all-MiniLM-L6-v2
29
+
30
+ # --- Security ---
31
+ API_KEY=
32
+ API_KEY_REQUIRED=false
33
+
34
+ # --- Logging ---
35
+ LOG_LEVEL=info
36
+ LOG_FORMAT=pretty
package/.env.test ADDED
@@ -0,0 +1,24 @@
1
+ # SA4E-44 Test Environment Variables
2
+ NODE_ENV=test
3
+ PORT=48722
4
+
5
+ DATABASE_ADAPTER=postgresql
6
+ DATABASE_URL=postgresql://sa4e_user:sa4e_test_password@localhost:5433/sa4e_db_test
7
+
8
+ TASK_WORKER_ENABLED=true
9
+ TASK_WORKER_POLL_INTERVAL_MS=100
10
+ TASK_WORKER_MAX_RETRIES=2
11
+ TASK_WORKER_BACKOFF_BASE_MS=50
12
+ TASK_WORKER_MAX_CONCURRENT=1
13
+ TASK_WORKER_DEAD_LETTER_ENABLED=true
14
+
15
+ CODE_INTEL_ENABLED=true
16
+ CODE_INTEL_MAX_BATCH_SIZE=100
17
+ CODE_INTEL_UPLOAD_TIMEOUT_MS=5000
18
+ CODE_INTEL_VECTOR_ENABLED=false
19
+
20
+ API_KEY=test-api-key-sa4e-44
21
+ API_KEY_REQUIRED=true
22
+
23
+ LOG_LEVEL=warn
24
+ LOG_FORMAT=json
package/.huskyrc.json ADDED
@@ -0,0 +1,5 @@
1
+ {
2
+ "hooks": {
3
+ "pre-commit": "npx lint-staged"
4
+ }
5
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "src/**/*.ts": [
3
+ "eslint --max-warnings 0",
4
+ "bash -c 'npx tsc --noEmit'"
5
+ ],
6
+ "src/**/*.{ts,test.ts}": [
7
+ "vitest related --run"
8
+ ]
9
+ }
package/Dockerfile ADDED
@@ -0,0 +1,51 @@
1
+ # SA4E-44 Backend Dockerfile
2
+ # Node.js 20 + Hono backend for Code Intelligence MCP Server
3
+ FROM node:20-alpine AS base
4
+
5
+ WORKDIR /app
6
+
7
+ # Install dependencies for native modules (better-sqlite3, onnxruntime-node)
8
+ RUN apk add --no-cache python3 make g++ git
9
+
10
+ # --- Dependencies stage ---
11
+ FROM base AS deps
12
+ COPY package.json package-lock.json ./
13
+ RUN npm ci --omit=dev
14
+
15
+ # --- Build stage ---
16
+ FROM base AS build
17
+ COPY package.json package-lock.json ./
18
+ RUN npm ci
19
+ COPY tsconfig.json ./
20
+ COPY src/ ./src/
21
+ RUN npm run build
22
+
23
+ # --- Production stage ---
24
+ FROM node:20-alpine AS production
25
+
26
+ WORKDIR /app
27
+
28
+ # Runtime dependencies only
29
+ RUN apk add --no-cache git
30
+
31
+ COPY --from=deps /app/node_modules ./node_modules
32
+ COPY --from=build /app/dist ./dist
33
+ COPY --from=build /app/package.json ./
34
+
35
+ # Create non-root user
36
+ RUN addgroup -g 1001 -S sa4e && \
37
+ adduser -S sa4e -u 1001 -G sa4e && \
38
+ mkdir -p /app/.code-intel && \
39
+ chown -R sa4e:sa4e /app
40
+
41
+ USER sa4e
42
+
43
+ ENV NODE_ENV=production
44
+ ENV PORT=48721
45
+
46
+ EXPOSE 48721
47
+
48
+ HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
49
+ CMD wget --no-verbose --tries=1 --spider http://localhost:48721/health || exit 1
50
+
51
+ CMD ["node", "dist/index.js"]
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
  </p>
7
7
 
8
8
  <p align="center">
9
- <img src="https://img.shields.io/badge/version-1.9.0-blue?style=for-the-badge" alt="Version">
9
+ <img src="https://img.shields.io/badge/version-1.11.0-blue?style=for-the-badge" alt="Version">
10
10
  <img src="https://img.shields.io/badge/tools-66+-teal?style=for-the-badge" alt="Tools">
11
11
  <img src="https://img.shields.io/badge/node-%3E%3D18-green?style=for-the-badge" alt="Node">
12
12
  </p>
@@ -233,6 +233,9 @@ The embedding model is expected at `.code-intel/models/model.onnx`. Download it:
233
233
 
234
234
  | Version | Date | Ticket | Changes |
235
235
  |---------|------|--------|---------|
236
+ | 1.11.0 | 2026-07-18 | SA4E-42/47 | DatabaseAdapter refactoring (engine, memory, graph, indexer) + LLM Context Chain for document indexing (analyzer, prompts, TaskWorker, structured_map, full content extraction). 66 files, 570 tests pass. |
237
+ | 1.10.1 | 2026-07-16 | — | Bump version + update README |
238
+ | 1.9.0 | 2026-07-15 | — | Agent Sync to All Platforms — 9 agent prompts synced to 5 conversion targets + root `.claude/` and `.opencode/` folders |
236
239
  | 1.8.1 | 2026-07-15 | SA4E-38 | Smart KB Ingest: `mem_smart_ingest` + `mem_smart_ingest_cleanup` tools using local Ollama LLM for semantic evaluation before KB ingestion. ClassifyService + SmartIngestHandler. |
237
240
  | 1.8.0 | 2026-07-15 | SA4E-36 | Multi-tenant RBAC: Project isolation via X-Project-Id header, per-user KB scoping, access group permissions, impersonation. |
238
241
  | 1.7.0 | 2026-07-15 | SA4E-37 | Health Check & Auto-Reconnect: HealthMonitor (parallel pings), ReconnectManager (exponential backoff + jitter), ConnectionStateTracker (state machine + events), TransportFactory. McpClientManager refactored as Facade. 54 unit tests. |
@@ -46,4 +46,4 @@ export interface McpHarness {
46
46
  /** Wire a real getMcpServer(registry) to a Client over linked in-memory transports. */
47
47
  export declare function connectMcp(registry: ModuleRegistry): Promise<McpHarness>;
48
48
  /** The canonical 10 CORE tool names (5 memory + 3 meta + 2 drawio). */
49
- export declare const CORE_8: string[];
49
+ export declare const CORE_10: string[];
@@ -4,6 +4,7 @@
4
4
  */
5
5
  import { DatabaseManager } from '../engine/db/database-manager.js';
6
6
  import { MemoryEngine } from '../modules/memory/engine/index.js';
7
+ import { SqliteDbAdapter } from '../modules/memory/task-queue/SqliteDbAdapter.js';
7
8
  import pino from 'pino';
8
9
  import * as fs from 'fs';
9
10
  import * as os from 'os';
@@ -16,7 +17,7 @@ export function makeTempDb() {
16
17
  const dbPath = path.join(tmpDir, 'index.db');
17
18
  const dbManager = new DatabaseManager(dbPath);
18
19
  dbManager.initialize();
19
- const engine = new MemoryEngine(dbManager.getDb());
20
+ const engine = new MemoryEngine(new SqliteDbAdapter(dbManager.getDb()));
20
21
  return {
21
22
  dbManager,
22
23
  engine,
@@ -77,7 +78,7 @@ export async function connectMcp(registry) {
77
78
  };
78
79
  }
79
80
  /** The canonical 10 CORE tool names (5 memory + 3 meta + 2 drawio). */
80
- export const CORE_8 = [
81
+ export const CORE_10 = [
81
82
  'mem_search', 'mem_ingest', 'mem_ingest_file', 'code_search',
82
83
  'get_curated_context', 'find_tools', 'execute_dynamic_tool', 'orchestration_status',
83
84
  'drawio_export_png', 'drawio_auto_layout',
@@ -1 +1 @@
1
- {"version":3,"file":"sa4e-testkit.js","sourceRoot":"","sources":["../../src/__tests__/sa4e-testkit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sa4e-testkit.js","sourceRoot":"","sources":["../../src/__tests__/sa4e-testkit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { DatabaseEngine } from '../adapters/DatabaseAdapter.js';
2
+ export declare class DialectHelper {
3
+ private readonly engine;
4
+ constructor(engine: DatabaseEngine);
5
+ now(): string;
6
+ upsert(table: string, columns: string[], conflictKey: string, updateColumns: string[]): string;
7
+ insertIgnore(table: string, columns: string[], conflictKey: string): string;
8
+ }
@@ -0,0 +1,23 @@
1
+ export class DialectHelper {
2
+ engine;
3
+ constructor(engine) {
4
+ this.engine = engine;
5
+ }
6
+ now() {
7
+ return this.engine === 'sqlite' ? "datetime('now')" : 'NOW()';
8
+ }
9
+ upsert(table, columns, conflictKey, updateColumns) {
10
+ if (this.engine === 'sqlite') {
11
+ return `INSERT OR REPLACE INTO ${table} (${columns.join(', ')}) VALUES (${columns.map(() => '?').join(', ')})`;
12
+ }
13
+ const setClauses = updateColumns.map(c => `${c} = EXCLUDED.${c}`).join(', ');
14
+ return `INSERT INTO ${table} (${columns.join(', ')}) VALUES (${columns.map(() => '?').join(', ')}) ON CONFLICT (${conflictKey}) DO UPDATE SET ${setClauses}`;
15
+ }
16
+ insertIgnore(table, columns, conflictKey) {
17
+ if (this.engine === 'sqlite') {
18
+ return `INSERT OR IGNORE INTO ${table} (${columns.join(', ')}) VALUES (${columns.map(() => '?').join(', ')})`;
19
+ }
20
+ return `INSERT INTO ${table} (${columns.join(', ')}) VALUES (${columns.map(() => '?').join(', ')}) ON CONFLICT (${conflictKey}) DO NOTHING`;
21
+ }
22
+ }
23
+ //# sourceMappingURL=DialectHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DialectHelper.js","sourceRoot":"","sources":["../../../src/database/dialect/DialectHelper.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAa;IACK;IAA7B,YAA6B,MAAsB;QAAtB,WAAM,GAAN,MAAM,CAAgB;IAAG,CAAC;IAEvD,GAAG;QACD,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC;IAChE,CAAC;IAED,MAAM,CAAC,KAAa,EAAE,OAAiB,EAAE,WAAmB,EAAE,aAAuB;QACnF,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,0BAA0B,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACjH,CAAC;QACD,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7E,OAAO,eAAe,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,WAAW,mBAAmB,UAAU,EAAE,CAAC;IAC/J,CAAC;IAED,YAAY,CAAC,KAAa,EAAE,OAAiB,EAAE,WAAmB;QAChE,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,yBAAyB,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAChH,CAAC;QACD,OAAO,eAAe,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,WAAW,cAAc,CAAC;IAC9I,CAAC;CACF"}
@@ -9,3 +9,4 @@ export { MysqlAdapter } from './adapters/MysqlAdapter.js';
9
9
  export { DatabaseAdapterFactory } from './factory/DatabaseAdapterFactory.js';
10
10
  export { DatabaseConfigService } from './config/DatabaseConfigService.js';
11
11
  export { MigrationService } from './migration/MigrationService.js';
12
+ export { DialectHelper } from './dialect/DialectHelper.js';
@@ -8,4 +8,5 @@ export { MysqlAdapter } from './adapters/MysqlAdapter.js';
8
8
  export { DatabaseAdapterFactory } from './factory/DatabaseAdapterFactory.js';
9
9
  export { DatabaseConfigService } from './config/DatabaseConfigService.js';
10
10
  export { MigrationService } from './migration/MigrationService.js';
11
+ export { DialectHelper } from './dialect/DialectHelper.js';
11
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC"}
@@ -3,7 +3,7 @@
3
3
  * Provides prepared-statement-based access to the relationships table.
4
4
  * SA4E-41: every read is tenant-scoped and fail-closed via CodeIntelIsolation.
5
5
  */
6
- import Database from 'better-sqlite3';
6
+ import type { DatabaseAdapter } from '../../database/adapters/DatabaseAdapter.js';
7
7
  export interface CallerResult {
8
8
  name: string;
9
9
  kind: string;
@@ -32,14 +32,14 @@ export interface RelationshipInput {
32
32
  metadata?: Record<string, unknown> | null;
33
33
  }
34
34
  export declare class GraphRepository {
35
- private db;
35
+ private adapter;
36
36
  private projectId;
37
37
  private scopeParams;
38
38
  private stmts;
39
39
  /**
40
40
  * @param projectId SA4E-41 tenant scope. Undefined ⇒ fail-closed (no rows).
41
41
  */
42
- constructor(db: Database.Database, projectId?: string);
42
+ constructor(adapter: DatabaseAdapter, projectId?: string);
43
43
  /** Insert a batch of relationships within a transaction. */
44
44
  insertRelationships(relationships: RelationshipInput[]): void;
45
45
  /** Delete all relationships originating from a file (optionally tenant-scoped). */
@@ -5,33 +5,32 @@
5
5
  */
6
6
  import { buildCodeScopeFilter } from '../query/code-intel-isolation.js';
7
7
  export class GraphRepository {
8
- db;
8
+ adapter;
9
9
  projectId;
10
10
  scopeParams;
11
11
  stmts;
12
12
  /**
13
13
  * @param projectId SA4E-41 tenant scope. Undefined ⇒ fail-closed (no rows).
14
14
  */
15
- constructor(db, projectId) {
16
- this.db = db;
15
+ constructor(adapter, projectId) {
16
+ this.adapter = adapter;
17
17
  this.projectId = projectId;
18
18
  this.scopeParams = buildCodeScopeFilter(projectId, 's').params;
19
19
  this.prepareStatements();
20
20
  }
21
21
  /** Insert a batch of relationships within a transaction. */
22
22
  insertRelationships(relationships) {
23
- const transaction = this.db.transaction((rels) => {
24
- for (const rel of rels) {
23
+ this.adapter.transaction(() => {
24
+ for (const rel of relationships) {
25
25
  this.stmts.insertRelationship.run(rel.sourceSymbolId, rel.targetSymbol, rel.targetSymbolId ?? null, rel.kind, rel.filePath, rel.line, rel.metadata ? JSON.stringify(rel.metadata) : null);
26
26
  }
27
27
  });
28
- transaction(relationships);
29
28
  }
30
29
  /** Delete all relationships originating from a file (optionally tenant-scoped). */
31
30
  deleteFileRelationships(filePath, projectId) {
32
31
  const pid = projectId ?? this.projectId;
33
32
  if (pid) {
34
- this.db.prepare('DELETE FROM relationships WHERE file_path = ? AND project_id = ?').run(filePath, pid);
33
+ this.adapter.run('DELETE FROM relationships WHERE file_path = ? AND project_id = ?', [filePath, pid]);
35
34
  return;
36
35
  }
37
36
  this.stmts.deleteFileRelationships.run(filePath);
@@ -48,14 +47,13 @@ export class GraphRepository {
48
47
  resolveTargets(batchSize = 1000, projectId) {
49
48
  const pid = projectId ?? this.projectId;
50
49
  const unresolved = (pid
51
- ? this.db.prepare('SELECT r.id, r.target_symbol FROM relationships r WHERE r.target_symbol_id IS NULL AND r.project_id = ? LIMIT ?').all(pid, batchSize)
52
- : this.db.prepare('SELECT r.id, r.target_symbol FROM relationships r WHERE r.target_symbol_id IS NULL LIMIT ?').all(batchSize));
50
+ ? this.adapter.all('SELECT r.id, r.target_symbol FROM relationships r WHERE r.target_symbol_id IS NULL AND r.project_id = ? LIMIT ?', [pid, batchSize])
51
+ : this.adapter.all('SELECT r.id, r.target_symbol FROM relationships r WHERE r.target_symbol_id IS NULL LIMIT ?', [batchSize]));
53
52
  let resolved = 0;
54
- // Resolve targets only within the same tenant to avoid cross-project matches.
55
53
  const findTarget = pid
56
- ? this.db.prepare('SELECT id FROM symbols WHERE name = ? AND project_id = ? LIMIT 1')
57
- : this.db.prepare('SELECT id FROM symbols WHERE name = ? LIMIT 1');
58
- const transaction = this.db.transaction(() => {
54
+ ? this.adapter.prepare('SELECT id FROM symbols WHERE name = ? AND project_id = ? LIMIT 1')
55
+ : this.adapter.prepare('SELECT id FROM symbols WHERE name = ? LIMIT 1');
56
+ this.adapter.transaction(() => {
59
57
  for (const row of unresolved) {
60
58
  const target = (pid ? findTarget.get(row.target_symbol, pid) : findTarget.get(row.target_symbol));
61
59
  if (target) {
@@ -64,36 +62,32 @@ export class GraphRepository {
64
62
  }
65
63
  }
66
64
  });
67
- transaction();
68
65
  return resolved;
69
66
  }
70
67
  /** Get total relationship count (tenant-scoped, fail-closed). */
71
68
  getRelationshipCount() {
72
69
  const scope = buildCodeScopeFilter(this.projectId, 'relationships');
73
- const row = this.db.prepare(`SELECT COUNT(*) as count FROM relationships WHERE ${scope.clause}`).get(...scope.params);
74
- return row.count;
70
+ const row = this.adapter.get(`SELECT COUNT(*) as count FROM relationships WHERE ${scope.clause}`, [...scope.params]);
71
+ return row?.count ?? 0;
75
72
  }
76
73
  /** Get relationship statistics by kind (tenant-scoped, fail-closed). */
77
74
  getStats() {
78
75
  const scope = buildCodeScopeFilter(this.projectId, 'relationships');
79
- return this.db.prepare(`
80
- SELECT kind, COUNT(*) as count
81
- FROM relationships
82
- WHERE ${scope.clause}
83
- GROUP BY kind
84
- ORDER BY count DESC
85
- `).all(...scope.params);
76
+ return this.adapter.all(`SELECT kind, COUNT(*) as count
77
+ FROM relationships
78
+ WHERE ${scope.clause}
79
+ GROUP BY kind
80
+ ORDER BY count DESC`, [...scope.params]);
86
81
  }
87
82
  prepareStatements() {
88
- // scopeClause scopes joined symbols `s` by tenant; fail-closed ('1=0') with no projectId.
89
83
  const scopeClause = buildCodeScopeFilter(this.projectId, 's').clause;
90
84
  this.stmts = {
91
- insertRelationship: this.db.prepare(`
85
+ insertRelationship: this.adapter.prepare(`
92
86
  INSERT INTO relationships (source_symbol_id, target_symbol, target_symbol_id, kind, file_path, line, metadata)
93
87
  VALUES (?, ?, ?, ?, ?, ?, ?)
94
88
  `),
95
- deleteFileRelationships: this.db.prepare('DELETE FROM relationships WHERE file_path = ?'),
96
- findCallers: this.db.prepare(`
89
+ deleteFileRelationships: this.adapter.prepare('DELETE FROM relationships WHERE file_path = ?'),
90
+ findCallers: this.adapter.prepare(`
97
91
  SELECT s.name, s.kind, f.relative_path as file_path, s.start_line as def_line, r.line as call_line,
98
92
  s.parent_symbol as parameters, s.visibility as is_async, s.id
99
93
  FROM relationships r
@@ -103,7 +97,7 @@ export class GraphRepository {
103
97
  ORDER BY f.relative_path, r.line
104
98
  LIMIT ?
105
99
  `),
106
- findCallees: this.db.prepare(`
100
+ findCallees: this.adapter.prepare(`
107
101
  SELECT r.target_symbol as name, r.line as call_line, r.metadata,
108
102
  ts.kind, tf.relative_path as file_path, ts.start_line as def_line
109
103
  FROM relationships r
@@ -114,8 +108,8 @@ export class GraphRepository {
114
108
  ORDER BY r.line
115
109
  LIMIT ?
116
110
  `),
117
- resolveTarget: this.db.prepare('UPDATE relationships SET target_symbol_id = ? WHERE id = ?'),
118
- countRelationships: this.db.prepare('SELECT COUNT(*) as count FROM relationships'),
111
+ resolveTarget: this.adapter.prepare('UPDATE relationships SET target_symbol_id = ? WHERE id = ?'),
112
+ countRelationships: this.adapter.prepare('SELECT COUNT(*) as count FROM relationships'),
119
113
  };
120
114
  }
121
115
  }
@@ -1 +1 @@
1
- {"version":3,"file":"graph-repository.js","sourceRoot":"","sources":["../../../src/engine/database/graph-repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph-repository.js","sourceRoot":"","sources":["../../../src/engine/database/graph-repository.ts"],"names":[],"mappings":"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"}
@@ -2,11 +2,11 @@
2
2
  * KSA-153: Schema Migrator — Applies graph schema migrations.
3
3
  * Extends the existing migration system with graph-specific tables and columns.
4
4
  */
5
- import Database from 'better-sqlite3';
5
+ import type { DatabaseAdapter } from '../../database/adapters/DatabaseAdapter.js';
6
6
  /**
7
7
  * Run graph-related migrations (KSA-153 + KSA-169).
8
8
  * Safe to call multiple times — all operations are idempotent.
9
9
  */
10
- export declare function runGraphMigrations(db: Database.Database): void;
10
+ export declare function runGraphMigrations(adapter: DatabaseAdapter): void;
11
11
  /** Check if graph migrations have been applied. */
12
- export declare function isGraphSchemaReady(db: Database.Database): boolean;
12
+ export declare function isGraphSchemaReady(adapter: DatabaseAdapter): boolean;
@@ -77,27 +77,27 @@ CREATE INDEX IF NOT EXISTS idx_body_embeddings_symbol ON body_embeddings(symbol_
77
77
  * Run graph-related migrations (KSA-153 + KSA-169).
78
78
  * Safe to call multiple times — all operations are idempotent.
79
79
  */
80
- export function runGraphMigrations(db) {
80
+ export function runGraphMigrations(adapter) {
81
81
  logger.error('[graph-migrator] Running graph schema migrations...');
82
- addEnhancedSymbolColumns(db);
83
- db.exec(GRAPH_SCHEMA_SQL);
82
+ addEnhancedSymbolColumns(adapter);
83
+ adapter.exec(GRAPH_SCHEMA_SQL);
84
84
  logger.error('[graph-migrator] Relationships table ready');
85
- db.exec(FILE_INDEX_SQL);
85
+ adapter.exec(FILE_INDEX_SQL);
86
86
  logger.error('[graph-migrator] File index table ready');
87
- db.exec(GRAPH_META_SQL);
87
+ adapter.exec(GRAPH_META_SQL);
88
88
  logger.error('[graph-migrator] Graph metadata table ready');
89
- db.exec(BODY_EMBEDDINGS_SQL);
89
+ adapter.exec(BODY_EMBEDDINGS_SQL);
90
90
  logger.error('[graph-migrator] Body embeddings table ready');
91
- db.prepare('INSERT OR REPLACE INTO schema_version (version) VALUES (?)').run(3);
91
+ adapter.run('INSERT OR REPLACE INTO schema_version (version) VALUES (?)', [3]);
92
92
  logger.error('[graph-migrator] Schema version set to 3');
93
93
  }
94
- function addEnhancedSymbolColumns(db) {
95
- const existing = getExistingColumns(db, 'symbols');
94
+ function addEnhancedSymbolColumns(adapter) {
95
+ const existing = getExistingColumns(adapter, 'symbols');
96
96
  let added = 0;
97
97
  for (const col of ENHANCED_SYMBOL_COLUMNS) {
98
98
  if (!existing.has(col.name)) {
99
99
  try {
100
- db.exec(`ALTER TABLE symbols ADD COLUMN ${col.name} ${col.type}`);
100
+ adapter.exec(`ALTER TABLE symbols ADD COLUMN ${col.name} ${col.type}`);
101
101
  added++;
102
102
  }
103
103
  catch {
@@ -108,23 +108,23 @@ function addEnhancedSymbolColumns(db) {
108
108
  if (added > 0) {
109
109
  logger.error(`[graph-migrator] Added ${added} enhanced symbol columns`);
110
110
  try {
111
- db.exec('CREATE INDEX IF NOT EXISTS idx_sym_parent ON symbols(parent_symbol_id) WHERE parent_symbol_id IS NOT NULL');
112
- db.exec('CREATE INDEX IF NOT EXISTS idx_sym_exported ON symbols(is_exported) WHERE is_exported = 1');
113
- db.exec('CREATE INDEX IF NOT EXISTS idx_sym_file_kind ON symbols(file_id, kind)');
111
+ adapter.exec('CREATE INDEX IF NOT EXISTS idx_sym_parent ON symbols(parent_symbol_id) WHERE parent_symbol_id IS NOT NULL');
112
+ adapter.exec('CREATE INDEX IF NOT EXISTS idx_sym_exported ON symbols(is_exported) WHERE is_exported = 1');
113
+ adapter.exec('CREATE INDEX IF NOT EXISTS idx_sym_file_kind ON symbols(file_id, kind)');
114
114
  }
115
115
  catch {
116
116
  // Indexes may already exist
117
117
  }
118
118
  }
119
119
  }
120
- function getExistingColumns(db, table) {
121
- const rows = db.pragma(`table_info(${table})`);
120
+ function getExistingColumns(adapter, table) {
121
+ const rows = adapter.all(`SELECT * FROM pragma_table_info('${table}')`);
122
122
  return new Set(rows.map(r => r.name));
123
123
  }
124
124
  /** Check if graph migrations have been applied. */
125
- export function isGraphSchemaReady(db) {
125
+ export function isGraphSchemaReady(adapter) {
126
126
  try {
127
- const tables = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='relationships'").get();
127
+ const tables = adapter.get("SELECT name FROM sqlite_master WHERE type='table' AND name='relationships'");
128
128
  return !!tables;
129
129
  }
130
130
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"migrator.js","sourceRoot":"","sources":["../../../src/engine/database/migrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrator.js","sourceRoot":"","sources":["../../../src/engine/database/migrator.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@
5
5
  import pino from 'pino';
6
6
  import { SCHEMA_V1 } from './schema.js';
7
7
  import { runGraphMigrations } from '../database/migrator.js';
8
+ import { SqliteDbAdapter } from '../../modules/memory/task-queue/SqliteDbAdapter.js';
8
9
  import { applyMigrationV5 } from './migration-v5.js';
9
10
  const logger = pino({ name: 'migrations' });
10
11
  function applyMemorySchema(db) {
@@ -62,7 +63,7 @@ export function runMigrations(db, legacyProjectId = 'default') {
62
63
  // Run V3 graph migrations (KSA-145/153/169) — idempotent
63
64
  if (current < 3) {
64
65
  try {
65
- runGraphMigrations(db);
66
+ runGraphMigrations(new SqliteDbAdapter(db));
66
67
  }
67
68
  catch (err) {
68
69
  logger.error({ err }, '[migrations] V3 graph migration error (graceful):');
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../src/engine/db/migrations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../src/engine/db/migrations.ts"],"names":[],"mappings":"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"}