sdlc-agent-4-enterprise-server 1.20.0 → 1.22.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 (701) hide show
  1. package/README.md +1 -1
  2. package/dist/config/CoreTools.js +1 -1
  3. package/dist/config/CoreTools.js.map +1 -1
  4. package/dist/engine/graph/__tests__/code-edge-extractor.test.d.ts +6 -0
  5. package/dist/engine/graph/__tests__/code-edge-extractor.test.js +116 -0
  6. package/dist/engine/graph/__tests__/code-edge-extractor.test.js.map +1 -0
  7. package/dist/engine/graph/code-edge-extractor.d.ts +38 -0
  8. package/dist/engine/graph/code-edge-extractor.js +89 -0
  9. package/dist/engine/graph/code-edge-extractor.js.map +1 -0
  10. package/dist/engine/graph/graph-sync-service.d.ts +2 -0
  11. package/dist/engine/graph/graph-sync-service.js +15 -0
  12. package/dist/engine/graph/graph-sync-service.js.map +1 -1
  13. package/dist/engine/tools/drawio-export-png.js +2 -2
  14. package/dist/engine/tools/drawio-export-png.js.map +1 -1
  15. package/dist/knowledge/KnowledgeDb.d.ts +30 -0
  16. package/dist/knowledge/KnowledgeDb.js +148 -0
  17. package/dist/knowledge/KnowledgeDb.js.map +1 -0
  18. package/dist/knowledge/KnowledgeModule.d.ts +31 -0
  19. package/dist/knowledge/KnowledgeModule.js +63 -0
  20. package/dist/knowledge/KnowledgeModule.js.map +1 -0
  21. package/dist/knowledge/KnowledgeService.d.ts +50 -0
  22. package/dist/knowledge/KnowledgeService.js +152 -0
  23. package/dist/knowledge/KnowledgeService.js.map +1 -0
  24. package/dist/knowledge/__tests__/KnowledgeService.pbt.test.d.ts +6 -0
  25. package/dist/knowledge/__tests__/KnowledgeService.pbt.test.js +47 -0
  26. package/dist/knowledge/__tests__/KnowledgeService.pbt.test.js.map +1 -0
  27. package/dist/knowledge/__tests__/KnowledgeService.test.d.ts +6 -0
  28. package/dist/knowledge/__tests__/KnowledgeService.test.js +177 -0
  29. package/dist/knowledge/__tests__/KnowledgeService.test.js.map +1 -0
  30. package/dist/knowledge/__tests__/routes.test.d.ts +7 -0
  31. package/dist/knowledge/__tests__/routes.test.js +203 -0
  32. package/dist/knowledge/__tests__/routes.test.js.map +1 -0
  33. package/dist/knowledge/models.d.ts +111 -0
  34. package/dist/knowledge/models.js +12 -0
  35. package/dist/knowledge/models.js.map +1 -0
  36. package/dist/knowledge/routes.d.ts +22 -0
  37. package/dist/knowledge/routes.js +99 -0
  38. package/dist/knowledge/routes.js.map +1 -0
  39. package/dist/knowledge/schema.d.ts +7 -0
  40. package/dist/knowledge/schema.js +87 -0
  41. package/dist/knowledge/schema.js.map +1 -0
  42. package/dist/modules/ModuleFactory.js +3 -0
  43. package/dist/modules/ModuleFactory.js.map +1 -1
  44. package/dist/modules/memory/__tests__/edge-on-ingest.test.d.ts +6 -0
  45. package/dist/modules/memory/__tests__/edge-on-ingest.test.js +115 -0
  46. package/dist/modules/memory/__tests__/edge-on-ingest.test.js.map +1 -0
  47. package/dist/modules/memory/__tests__/graph-fallback.test.d.ts +6 -0
  48. package/dist/modules/memory/__tests__/graph-fallback.test.js +169 -0
  49. package/dist/modules/memory/__tests__/graph-fallback.test.js.map +1 -0
  50. package/dist/modules/memory/dispatchers/graph-fallback.d.ts +35 -0
  51. package/dist/modules/memory/dispatchers/graph-fallback.js +118 -0
  52. package/dist/modules/memory/dispatchers/graph-fallback.js.map +1 -0
  53. package/dist/modules/memory/dispatchers/search.js +26 -1
  54. package/dist/modules/memory/dispatchers/search.js.map +1 -1
  55. package/dist/modules/memory/engine/crud.js +16 -0
  56. package/dist/modules/memory/engine/crud.js.map +1 -1
  57. package/dist/modules/memory/engine/edge-on-ingest.d.ts +54 -0
  58. package/dist/modules/memory/engine/edge-on-ingest.js +113 -0
  59. package/dist/modules/memory/engine/edge-on-ingest.js.map +1 -0
  60. package/dist/modules/pega/PegaHashCache.d.ts +45 -0
  61. package/dist/modules/pega/PegaHashCache.js +57 -0
  62. package/dist/modules/pega/PegaHashCache.js.map +1 -0
  63. package/dist/modules/pega/PegaIndexerHelpers.d.ts +28 -0
  64. package/dist/modules/pega/PegaIndexerHelpers.js +100 -0
  65. package/dist/modules/pega/PegaIndexerHelpers.js.map +1 -0
  66. package/dist/modules/pega/PegaIndexerTool.d.ts +69 -0
  67. package/dist/modules/pega/PegaIndexerTool.js +144 -0
  68. package/dist/modules/pega/PegaIndexerTool.js.map +1 -0
  69. package/dist/modules/pega/__tests__/PegaIndexerTool.test.d.ts +5 -0
  70. package/dist/modules/pega/__tests__/PegaIndexerTool.test.js +208 -0
  71. package/dist/modules/pega/__tests__/PegaIndexerTool.test.js.map +1 -0
  72. package/dist/modules/pega/scripts/__tests__/populate-graph-edges.test.d.ts +5 -0
  73. package/dist/modules/pega/scripts/__tests__/populate-graph-edges.test.js +232 -0
  74. package/dist/modules/pega/scripts/__tests__/populate-graph-edges.test.js.map +1 -0
  75. package/dist/modules/pega/scripts/edge-extractors.d.ts +53 -0
  76. package/dist/modules/pega/scripts/edge-extractors.js +187 -0
  77. package/dist/modules/pega/scripts/edge-extractors.js.map +1 -0
  78. package/dist/modules/pega/scripts/populate-graph-edges.d.ts +30 -0
  79. package/dist/modules/pega/scripts/populate-graph-edges.js +125 -0
  80. package/dist/modules/pega/scripts/populate-graph-edges.js.map +1 -0
  81. package/dist/server/HttpServer.js +7 -0
  82. package/dist/server/HttpServer.js.map +1 -1
  83. package/package.json +1 -1
  84. package/src/config/CoreTools.ts +1 -1
  85. package/src/engine/graph/__tests__/code-edge-extractor.test.ts +147 -0
  86. package/src/engine/graph/code-edge-extractor.ts +123 -0
  87. package/src/engine/graph/graph-sync-service.ts +17 -0
  88. package/src/engine/tools/drawio-export-png.ts +2 -2
  89. package/src/knowledge/KnowledgeDb.ts +161 -0
  90. package/src/knowledge/KnowledgeModule.ts +76 -0
  91. package/src/knowledge/KnowledgeService.ts +177 -0
  92. package/src/knowledge/__tests__/KnowledgeService.pbt.test.ts +63 -0
  93. package/src/knowledge/__tests__/KnowledgeService.test.ts +196 -0
  94. package/src/knowledge/__tests__/routes.test.ts +224 -0
  95. package/src/knowledge/models.ts +129 -0
  96. package/src/knowledge/routes.ts +130 -0
  97. package/src/knowledge/schema.ts +87 -0
  98. package/src/modules/ModuleFactory.ts +3 -0
  99. package/src/modules/memory/__tests__/edge-on-ingest.test.ts +166 -0
  100. package/src/modules/memory/__tests__/graph-fallback.test.ts +210 -0
  101. package/src/modules/memory/dispatchers/graph-fallback.ts +150 -0
  102. package/src/modules/memory/dispatchers/search.ts +29 -1
  103. package/src/modules/memory/engine/crud.ts +16 -0
  104. package/src/modules/memory/engine/edge-on-ingest.ts +159 -0
  105. package/src/modules/pega/PegaHashCache.ts +83 -0
  106. package/src/modules/pega/PegaIndexerHelpers.ts +95 -0
  107. package/src/modules/pega/PegaIndexerTool.ts +200 -0
  108. package/src/modules/pega/__tests__/PegaIndexerTool.test.ts +271 -0
  109. package/src/modules/pega/scripts/__tests__/populate-graph-edges.test.ts +270 -0
  110. package/src/modules/pega/scripts/edge-extractors.ts +219 -0
  111. package/src/modules/pega/scripts/populate-graph-edges.ts +155 -0
  112. package/src/server/HttpServer.ts +8 -0
  113. package/tests/integration/mcp-tools.test.ts +25 -5
  114. package/tests/vitest.setup.ts +6 -0
  115. package/documents/ARCHITECTURE.md +0 -1043
  116. package/documents/ARCHITECTURE.pdf +0 -0
  117. package/documents/Architecture-v2.md +0 -165
  118. package/documents/Architecture-v3.md +0 -99
  119. package/documents/Architecture-v4.md +0 -122
  120. package/documents/Architecture-v5.md +0 -140
  121. package/documents/Architecture-v6.md +0 -94
  122. package/documents/F1-memory-kb/BRD.md +0 -597
  123. package/documents/F1-memory-kb/FSD.md +0 -756
  124. package/documents/F1-memory-kb/STATUS.json +0 -43
  125. package/documents/F1-memory-kb/TDD.md +0 -453
  126. package/documents/F10-hook-system/BRD.md +0 -434
  127. package/documents/F10-hook-system/FSD.md +0 -715
  128. package/documents/F10-hook-system/STATUS.json +0 -43
  129. package/documents/F10-hook-system/TDD.md +0 -642
  130. package/documents/F11-webview-panels/BRD.md +0 -432
  131. package/documents/F11-webview-panels/FSD.md +0 -669
  132. package/documents/F11-webview-panels/STATUS.json +0 -43
  133. package/documents/F11-webview-panels/TDD.md +0 -468
  134. package/documents/F12-backend-connection/BRD.md +0 -479
  135. package/documents/F12-backend-connection/FSD.md +0 -622
  136. package/documents/F12-backend-connection/STATUS.json +0 -43
  137. package/documents/F12-backend-connection/TDD.md +0 -386
  138. package/documents/F2-code-intelligence/BRD.md +0 -604
  139. package/documents/F2-code-intelligence/FSD.md +0 -492
  140. package/documents/F2-code-intelligence/STATUS.json +0 -43
  141. package/documents/F2-code-intelligence/TDD.md +0 -486
  142. package/documents/F3-orchestration/BRD.md +0 -527
  143. package/documents/F3-orchestration/FSD.md +0 -686
  144. package/documents/F3-orchestration/STATUS.json +0 -43
  145. package/documents/F3-orchestration/TDD.md +0 -477
  146. package/documents/F4-context-assembly/BRD.md +0 -448
  147. package/documents/F4-context-assembly/FSD.md +0 -372
  148. package/documents/F4-context-assembly/STATUS.json +0 -43
  149. package/documents/F4-context-assembly/TDD.md +0 -338
  150. package/documents/F5-incremental-indexer/BRD.md +0 -472
  151. package/documents/F5-incremental-indexer/FSD.md +0 -800
  152. package/documents/F5-incremental-indexer/STATUS.json +0 -16
  153. package/documents/F5-incremental-indexer/TDD.md +0 -628
  154. package/documents/F6-drawio-engine/BRD.md +0 -365
  155. package/documents/F6-drawio-engine/FSD.md +0 -1100
  156. package/documents/F6-drawio-engine/STATUS.json +0 -43
  157. package/documents/F6-drawio-engine/TDD.md +0 -581
  158. package/documents/F7-langgraph-pipeline/BRD.md +0 -520
  159. package/documents/F7-langgraph-pipeline/FSD.md +0 -597
  160. package/documents/F7-langgraph-pipeline/STATUS.json +0 -43
  161. package/documents/F7-langgraph-pipeline/TDD.md +0 -421
  162. package/documents/F8-chat-panel/BRD.md +0 -479
  163. package/documents/F8-chat-panel/FSD.md +0 -719
  164. package/documents/F8-chat-panel/STATUS.json +0 -43
  165. package/documents/F8-chat-panel/TDD.md +0 -459
  166. package/documents/F9-auth-sso/BRD.md +0 -356
  167. package/documents/F9-auth-sso/FSD.md +0 -663
  168. package/documents/F9-auth-sso/STATUS.json +0 -43
  169. package/documents/F9-auth-sso/TDD.md +0 -708
  170. package/documents/FAILURE-MODES.md +0 -112
  171. package/documents/GRAPH-EMAIL/BRD.md +0 -488
  172. package/documents/GRAPH-EMAIL/FSD.md +0 -558
  173. package/documents/GRAPH-EMAIL/STATUS.json +0 -25
  174. package/documents/GRAPH-EMAIL/TDD.md +0 -531
  175. package/documents/LOOP-ENGINEERING-PLAN.md +0 -279
  176. package/documents/SA4E-12/BRD.md +0 -454
  177. package/documents/SA4E-12/FSD.md +0 -639
  178. package/documents/SA4E-12/STATUS.json +0 -59
  179. package/documents/SA4E-12/STC.md +0 -1502
  180. package/documents/SA4E-12/STP.md +0 -348
  181. package/documents/SA4E-12/TDD.md +0 -427
  182. package/documents/SA4E-12/TEST-REPORT-SA4E-12.csv +0 -66
  183. package/documents/SA4E-12/test-data/api-keys.csv +0 -16
  184. package/documents/SA4E-12/test-data/models.csv +0 -18
  185. package/documents/SA4E-12/test-data/providers.csv +0 -7
  186. package/documents/SA4E-124/BRD.md +0 -126
  187. package/documents/SA4E-124/DPG+RLN.md +0 -74
  188. package/documents/SA4E-124/FSD.md +0 -102
  189. package/documents/SA4E-124/RUN-LOG.md +0 -13
  190. package/documents/SA4E-124/STATUS.json +0 -18
  191. package/documents/SA4E-124/STP+STC.md +0 -118
  192. package/documents/SA4E-124/TDD.md +0 -87
  193. package/documents/SA4E-125/Architecture-v2.md +0 -165
  194. package/documents/SA4E-125/Architecture-v3.md +0 -99
  195. package/documents/SA4E-125/Architecture-v4.md +0 -122
  196. package/documents/SA4E-125/Architecture-v5.md +0 -140
  197. package/documents/SA4E-125/Architecture-v6.md +0 -94
  198. package/documents/SA4E-125/BRD.md +0 -168
  199. package/documents/SA4E-125/DPG.md +0 -189
  200. package/documents/SA4E-125/FSD.md +0 -742
  201. package/documents/SA4E-125/Langgrap.md +0 -648
  202. package/documents/SA4E-125/Langgraph-Module-Reference.md +0 -448
  203. package/documents/SA4E-125/STATUS.json +0 -18
  204. package/documents/SA4E-125/STC.md +0 -410
  205. package/documents/SA4E-125/STP.md +0 -101
  206. package/documents/SA4E-125/TDD.md +0 -252
  207. package/documents/SA4E-125/UG.md +0 -153
  208. package/documents/SA4E-125/review-1.md +0 -244
  209. package/documents/SA4E-125/review-2.md +0 -93
  210. package/documents/SA4E-125/review-3.md +0 -90
  211. package/documents/SA4E-125/review-4.md +0 -119
  212. package/documents/SA4E-125/review-5.md +0 -94
  213. package/documents/SA4E-125/review-6.md +0 -75
  214. package/documents/SA4E-14/BRD.md +0 -532
  215. package/documents/SA4E-14/FSD.md +0 -890
  216. package/documents/SA4E-14/SECURITY-REPORT.md +0 -470
  217. package/documents/SA4E-14/STATUS.json +0 -16
  218. package/documents/SA4E-14/STC.md +0 -337
  219. package/documents/SA4E-14/STP.md +0 -170
  220. package/documents/SA4E-14/TDD.md +0 -653
  221. package/documents/SA4E-18/BRD-v1-SA4E-18.docx +0 -0
  222. package/documents/SA4E-18/BRD.md +0 -382
  223. package/documents/SA4E-18/FSD-v1-SA4E-18.docx +0 -0
  224. package/documents/SA4E-18/FSD.md +0 -895
  225. package/documents/SA4E-18/STATUS.json +0 -23
  226. package/documents/SA4E-18/STC-v1-SA4E-18.docx +0 -0
  227. package/documents/SA4E-18/STC.md +0 -998
  228. package/documents/SA4E-18/STP-v1-SA4E-18.docx +0 -0
  229. package/documents/SA4E-18/STP.md +0 -323
  230. package/documents/SA4E-18/TDD-v1-SA4E-18.docx +0 -0
  231. package/documents/SA4E-18/TDD.md +0 -827
  232. package/documents/SA4E-18/TEST-REPORT-SA4E-18.csv +0 -35
  233. package/documents/SA4E-18/TEST-REPORT-v1-SA4E-18.docx +0 -0
  234. package/documents/SA4E-18/TEST-REPORT.md +0 -122
  235. package/documents/SA4E-26/BRD-v1-SA4E-26.docx +0 -0
  236. package/documents/SA4E-26/BRD.md +0 -306
  237. package/documents/SA4E-26/DPG-v1-SA4E-26.docx +0 -0
  238. package/documents/SA4E-26/DPG.md +0 -210
  239. package/documents/SA4E-26/FSD-v1-SA4E-26.docx +0 -0
  240. package/documents/SA4E-26/FSD.md +0 -953
  241. package/documents/SA4E-26/RLN-v1-SA4E-26.docx +0 -0
  242. package/documents/SA4E-26/RLN.md +0 -122
  243. package/documents/SA4E-26/RUN-LOG.md +0 -41
  244. package/documents/SA4E-26/STATUS.json +0 -25
  245. package/documents/SA4E-26/STC-v1-SA4E-26.docx +0 -0
  246. package/documents/SA4E-26/STC.md +0 -1011
  247. package/documents/SA4E-26/STP-v1-SA4E-26.docx +0 -0
  248. package/documents/SA4E-26/STP.md +0 -292
  249. package/documents/SA4E-26/TDD-v1-SA4E-26.docx +0 -0
  250. package/documents/SA4E-26/TDD.md +0 -506
  251. package/documents/SA4E-27/BRD.md +0 -471
  252. package/documents/SA4E-27/FSD.md +0 -1100
  253. package/documents/SA4E-27/RUN-LOG.md +0 -5
  254. package/documents/SA4E-27/STATUS.json +0 -15
  255. package/documents/SA4E-27/TDD.md +0 -1156
  256. package/documents/SA4E-28/RUN-LOG.md +0 -9
  257. package/documents/SA4E-28/STATUS.json +0 -24
  258. package/documents/SA4E-28/TICKET-PLAN.md +0 -121
  259. package/documents/SA4E-29/ARCHITECTURE-BASE64-PROXY.md +0 -145
  260. package/documents/SA4E-29/BRD.md +0 -366
  261. package/documents/SA4E-29/FSD.md +0 -675
  262. package/documents/SA4E-29/RUN-LOG.md +0 -5
  263. package/documents/SA4E-29/STATUS.json +0 -16
  264. package/documents/SA4E-29/STC.md +0 -667
  265. package/documents/SA4E-29/STP.md +0 -299
  266. package/documents/SA4E-29/TDD.md +0 -491
  267. package/documents/SA4E-30/BRD.md +0 -258
  268. package/documents/SA4E-30/FSD.md +0 -168
  269. package/documents/SA4E-30/RUN-LOG.md +0 -5
  270. package/documents/SA4E-30/STATUS.json +0 -32
  271. package/documents/SA4E-30/TDD.md +0 -153
  272. package/documents/SA4E-31/RUN-LOG.md +0 -39
  273. package/documents/SA4E-31/STATUS.json +0 -53
  274. package/documents/SA4E-32/BRD.md +0 -163
  275. package/documents/SA4E-32/FSD.md +0 -226
  276. package/documents/SA4E-32/RUN-LOG.md +0 -11
  277. package/documents/SA4E-32/STATUS.json +0 -18
  278. package/documents/SA4E-32/STC.md +0 -64
  279. package/documents/SA4E-32/STP.md +0 -72
  280. package/documents/SA4E-32/TDD.md +0 -132
  281. package/documents/SA4E-34/BRD.md +0 -324
  282. package/documents/SA4E-34/FSD.md +0 -291
  283. package/documents/SA4E-34/RUN-LOG.md +0 -14
  284. package/documents/SA4E-34/STATUS.json +0 -31
  285. package/documents/SA4E-34/TDD.md +0 -236
  286. package/documents/SA4E-35/BRD.md +0 -79
  287. package/documents/SA4E-35/RUN-LOG.md +0 -9
  288. package/documents/SA4E-35/STATUS.json +0 -14
  289. package/documents/SA4E-36/BRD.md +0 -485
  290. package/documents/SA4E-36/FSD.md +0 -886
  291. package/documents/SA4E-36/RUN-LOG.md +0 -30
  292. package/documents/SA4E-36/STATUS.json +0 -46
  293. package/documents/SA4E-36/STC.md +0 -1376
  294. package/documents/SA4E-36/STP.md +0 -445
  295. package/documents/SA4E-36/TDD.md +0 -846
  296. package/documents/SA4E-36/UG.md +0 -240
  297. package/documents/SA4E-37/BRD.md +0 -350
  298. package/documents/SA4E-37/FSD.md +0 -1087
  299. package/documents/SA4E-37/RUN-LOG.md +0 -14
  300. package/documents/SA4E-37/STATUS.json +0 -32
  301. package/documents/SA4E-37/TDD.md +0 -498
  302. package/documents/SA4E-37/UG.md +0 -135
  303. package/documents/SA4E-38/BRD.md +0 -441
  304. package/documents/SA4E-38/FSD.md +0 -671
  305. package/documents/SA4E-38/RUN-LOG.md +0 -12
  306. package/documents/SA4E-38/STC.md +0 -1286
  307. package/documents/SA4E-38/STP.md +0 -360
  308. package/documents/SA4E-38/TDD.md +0 -737
  309. package/documents/SA4E-38/UG.md +0 -78
  310. package/documents/SA4E-38/test-data/business-messages.csv +0 -11
  311. package/documents/SA4E-38/test-data/edge-case-messages.csv +0 -12
  312. package/documents/SA4E-38/test-data/llm-mock-responses.csv +0 -11
  313. package/documents/SA4E-38/test-data/social-messages.csv +0 -11
  314. package/documents/SA4E-38/test-data/unfiltered-entries-seed.csv +0 -11
  315. package/documents/SA4E-39/RUN-LOG.md +0 -11
  316. package/documents/SA4E-39/STATUS.json +0 -22
  317. package/documents/SA4E-40/RUN-LOG.md +0 -9
  318. package/documents/SA4E-42/BRD.md +0 -329
  319. package/documents/SA4E-42/FSD.md +0 -873
  320. package/documents/SA4E-42/PENTEST-REPORT.md +0 -247
  321. package/documents/SA4E-42/RUN-LOG.md +0 -24
  322. package/documents/SA4E-42/SECURITY-REVIEW.md +0 -430
  323. package/documents/SA4E-42/STATUS.json +0 -38
  324. package/documents/SA4E-42/STC.md +0 -351
  325. package/documents/SA4E-42/STP.md +0 -340
  326. package/documents/SA4E-42/TDD.md +0 -344
  327. package/documents/SA4E-42/TEST-REPORT.md +0 -198
  328. package/documents/SA4E-42/test-data-events.csv +0 -15
  329. package/documents/SA4E-42/test-data-tools.csv +0 -14
  330. package/documents/SA4E-44/BRD.md +0 -614
  331. package/documents/SA4E-44/DISCREPANCY.md +0 -82
  332. package/documents/SA4E-44/DPG.md +0 -170
  333. package/documents/SA4E-44/FSD.md +0 -1340
  334. package/documents/SA4E-44/RLN.md +0 -176
  335. package/documents/SA4E-44/RUN-LOG.md +0 -41
  336. package/documents/SA4E-44/SECURITY-ASSESSMENT.md +0 -465
  337. package/documents/SA4E-44/SECURITY-REVIEW.md +0 -287
  338. package/documents/SA4E-44/STATUS.json +0 -31
  339. package/documents/SA4E-44/STC.md +0 -1794
  340. package/documents/SA4E-44/STP.md +0 -281
  341. package/documents/SA4E-44/TDD-REFACTOR-PG.md +0 -171
  342. package/documents/SA4E-44/TDD.md +0 -1130
  343. package/documents/SA4E-44/UG.md +0 -147
  344. package/documents/SA4E-45/BRD.md +0 -413
  345. package/documents/SA4E-45/FSD.md +0 -1549
  346. package/documents/SA4E-45/RUN-LOG.md +0 -20
  347. package/documents/SA4E-45/SECURITY-ASSESSMENT.md +0 -352
  348. package/documents/SA4E-45/SECURITY-REVIEW.md +0 -487
  349. package/documents/SA4E-45/STATUS.json +0 -35
  350. package/documents/SA4E-45/STC.md +0 -1080
  351. package/documents/SA4E-45/STP.md +0 -249
  352. package/documents/SA4E-45/TDD.md +0 -648
  353. package/documents/SA4E-45/UG.md +0 -112
  354. package/documents/SA4E-45/deployment_guide.md +0 -209
  355. package/documents/SA4E-45/release_notes.md +0 -118
  356. package/documents/SA4E-45/test-data/dialect-inputs.csv +0 -9
  357. package/documents/SA4E-45/test-data/fts-queries.csv +0 -11
  358. package/documents/SA4E-45/test-data/graph-symbols.csv +0 -11
  359. package/documents/SA4E-45/test-data/knowledge-entries.csv +0 -11
  360. package/documents/SA4E-45/test-data/migration-tables.csv +0 -17
  361. package/documents/SA4E-45/test-data/security-inputs.csv +0 -13
  362. package/documents/SA4E-47/BRD.md +0 -721
  363. package/documents/SA4E-47/FSD.md +0 -1150
  364. package/documents/SA4E-47/STC.md +0 -1126
  365. package/documents/SA4E-47/STP.md +0 -409
  366. package/documents/SA4E-47/TDD.md +0 -1450
  367. package/documents/SA4E-47/TEST-REPORT-SA4E-47.csv +0 -36
  368. package/documents/SA4E-48/BRD-v1-SA4E-48.docx +0 -0
  369. package/documents/SA4E-48/BRD.md +0 -355
  370. package/documents/SA4E-48/FSD-v1-SA4E-48.docx +0 -0
  371. package/documents/SA4E-48/FSD-v2-SA4E-48.docx +0 -0
  372. package/documents/SA4E-48/FSD.md +0 -1253
  373. package/documents/SA4E-48/STC-v1.0-SA4E-48.xlsx +0 -0
  374. package/documents/SA4E-48/STC.md +0 -1837
  375. package/documents/SA4E-48/STP-v1.0-SA4E-48.docx +0 -0
  376. package/documents/SA4E-48/STP.md +0 -325
  377. package/documents/SA4E-48/TDD-v1-SA4E-48.docx +0 -0
  378. package/documents/SA4E-48/TDD.md +0 -960
  379. package/documents/SA4E-49/RUN-LOG.md +0 -13
  380. package/documents/SA4E-49/STATUS.json +0 -45
  381. package/documents/SA4E-50/UG.md +0 -167
  382. package/documents/SA4E-52/RUN-LOG.md +0 -8
  383. package/documents/SA4E-53/RUN-LOG.md +0 -48
  384. package/documents/SA4E-6/BRD-TOUCH.md +0 -366
  385. package/documents/SA4E-6/BRD.md +0 -531
  386. package/documents/SA4E-6/FSD.md +0 -1621
  387. package/documents/SA4E-6/STATUS.json +0 -19
  388. package/documents/SA4E-6/TDD-TOUCH.md +0 -768
  389. package/documents/SA4E-6/TDD.md +0 -1123
  390. package/documents/SA4E-CODEINTEL-MT/RUN-LOG.md +0 -27
  391. package/documents/SA4E-CODEINTEL-MT/SECURITY-ASSESSMENT.md +0 -197
  392. package/documents/SA4E-CODEINTEL-MT/STATUS.json +0 -25
  393. package/documents/SA4E-CODEINTEL-MT/TDD.md +0 -746
  394. package/documents/SKILLS-REPO-TICKETS.md +0 -64
  395. package/documents/analysis/langgraph-vs-deerflow-report.md +0 -603
  396. package/documents/architecture/ARCH.md +0 -395
  397. package/documents/architecture/TECH-REF.md +0 -397
  398. package/documents/drawio-optimize/drawio-anti-edge-collision.md +0 -97
  399. package/documents/evolution-memory/Soliution-3-GPT.md +0 -649
  400. package/documents/evolution-memory/Solution-1-Deepseek.md +0 -267
  401. package/documents/evolution-memory/Solution-2-Grok.md +0 -166
  402. package/documents/evolution-memory/Solution4-gemini.pdf +0 -0
  403. package/documents/workflows/SA4E-workflows.md +0 -167
  404. package/extension/esbuild.js +0 -36
  405. package/extension/resources/webview-assets/chat/chat.js +0 -1907
  406. package/extension/resources/webview-assets/chat/graph-viz.js +0 -144
  407. package/extension/resources/webview-assets/chat/markdown-renderer.js +0 -254
  408. package/extension/resources/webview-assets/settings/settings.js +0 -575
  409. package/extension/scripts/capture-screenshots.py +0 -45
  410. package/extension/scripts/copy-resources.js +0 -76
  411. package/extension/scripts/gen-checksums.js +0 -68
  412. package/extension/scripts/update-onnx-manifest.js +0 -119
  413. package/extension/src/__tests__/backend-local-tools.test.ts +0 -284
  414. package/extension/src/__tests__/code-intel.test.ts +0 -356
  415. package/extension/src/__tests__/converter.test.ts +0 -297
  416. package/extension/src/__tests__/cross-process.e2e.test.ts +0 -168
  417. package/extension/src/__tests__/drawio-convert.e2e.test.ts +0 -184
  418. package/extension/src/__tests__/indexer.test.ts +0 -219
  419. package/extension/src/__tests__/mcp-handshake.regression.test.ts +0 -115
  420. package/extension/src/__tests__/wrapper-server.helpers.ts +0 -149
  421. package/extension/src/__tests__/wrapper-server.test.ts +0 -263
  422. package/extension/src/activation-helpers.ts +0 -38
  423. package/extension/src/addon-download-helpers.ts +0 -137
  424. package/extension/src/ai-context-commands.ts +0 -102
  425. package/extension/src/anthropic/__tests__/converter.test.ts +0 -201
  426. package/extension/src/anthropic/__tests__/handlers.test.ts +0 -255
  427. package/extension/src/anthropic/converter.ts +0 -95
  428. package/extension/src/anthropic/handlers.ts +0 -106
  429. package/extension/src/anthropic/types.ts +0 -124
  430. package/extension/src/auth/AuthManager.ts +0 -200
  431. package/extension/src/auth/PkceService.ts +0 -32
  432. package/extension/src/auth/TokenRefreshTimer.ts +0 -40
  433. package/extension/src/backend-local-tools.ts +0 -141
  434. package/extension/src/chat-panel/ChatContextPicker.ts +0 -189
  435. package/extension/src/chat-panel/ChatHtmlBuilder.ts +0 -67
  436. package/extension/src/chat-panel/ChatModelManager.ts +0 -49
  437. package/extension/src/chat-panel/ChatStateManager.ts +0 -134
  438. package/extension/src/chat-panel/ChatStatusManager.ts +0 -51
  439. package/extension/src/chat-panel/__tests__/chat-models.test.ts +0 -134
  440. package/extension/src/chat-panel/__tests__/context-usage-tracker.test.ts +0 -170
  441. package/extension/src/chat-panel/__tests__/conversation-manager.test.ts +0 -152
  442. package/extension/src/chat-panel/__tests__/token-counter.test.ts +0 -93
  443. package/extension/src/chat-panel/chat-models.ts +0 -169
  444. package/extension/src/chat-panel/chat-panel-provider.ts +0 -225
  445. package/extension/src/chat-panel/context-usage-tracker.ts +0 -144
  446. package/extension/src/chat-panel/conversation-manager.ts +0 -180
  447. package/extension/src/chat-panel/conversation-types.ts +0 -47
  448. package/extension/src/chat-panel/message-handler.ts +0 -119
  449. package/extension/src/chat-panel/message-protocol.ts +0 -107
  450. package/extension/src/chat-panel/message-routing.ts +0 -114
  451. package/extension/src/chat-panel/token-counter.ts +0 -103
  452. package/extension/src/checksum.ts +0 -199
  453. package/extension/src/code-intel/CodeIntelScanner.ts +0 -159
  454. package/extension/src/code-intel/CodeIntelUploader.ts +0 -84
  455. package/extension/src/code-intel/FileChangeWatcher.ts +0 -134
  456. package/extension/src/code-intel/HashCache.ts +0 -57
  457. package/extension/src/code-intel/OfflineQueue.ts +0 -61
  458. package/extension/src/code-intel/TimestampResolver.ts +0 -64
  459. package/extension/src/code-intel/index.ts +0 -12
  460. package/extension/src/code-intel/models.ts +0 -83
  461. package/extension/src/commands/CommandRegistrar.ts +0 -193
  462. package/extension/src/commands/LlmCommands.ts +0 -111
  463. package/extension/src/config-watcher.ts +0 -175
  464. package/extension/src/config.ts +0 -106
  465. package/extension/src/connection/ConnectionManager.ts +0 -128
  466. package/extension/src/connection/HealthChecker.ts +0 -45
  467. package/extension/src/converter/FileConverterService.ts +0 -62
  468. package/extension/src/converter/IFileConverter.ts +0 -15
  469. package/extension/src/converter/LocalFallbackConverter.ts +0 -93
  470. package/extension/src/converter/RemoteConverter.ts +0 -72
  471. package/extension/src/converter/TextConverter.ts +0 -41
  472. package/extension/src/converter/index.ts +0 -31
  473. package/extension/src/converter-helpers.ts +0 -127
  474. package/extension/src/converter.ts +0 -17
  475. package/extension/src/debug-logger.ts +0 -23
  476. package/extension/src/diagnostics-provider.ts +0 -149
  477. package/extension/src/extension.ts +0 -222
  478. package/extension/src/file-meta.ts +0 -96
  479. package/extension/src/file-utils.ts +0 -64
  480. package/extension/src/history/conversation.ts +0 -91
  481. package/extension/src/ide-adapters.ts +0 -104
  482. package/extension/src/indexer-discovery.ts +0 -106
  483. package/extension/src/indexer-http.ts +0 -99
  484. package/extension/src/indexer.ts +0 -91
  485. package/extension/src/injector-helpers.ts +0 -74
  486. package/extension/src/injector.ts +0 -130
  487. package/extension/src/kb-event-bus.ts +0 -127
  488. package/extension/src/langgraph/__tests__/anthropic-provider-content-guard.test.ts +0 -95
  489. package/extension/src/langgraph/__tests__/base-node-retry.test.ts +0 -277
  490. package/extension/src/langgraph/__tests__/chat-graph-agent-step.test.ts +0 -100
  491. package/extension/src/langgraph/__tests__/chat-graph-loop.test.ts +0 -155
  492. package/extension/src/langgraph/__tests__/chat-panel-e2e.test.ts +0 -617
  493. package/extension/src/langgraph/__tests__/edges-self-correction.test.ts +0 -148
  494. package/extension/src/langgraph/__tests__/hook-executor.test.ts +0 -257
  495. package/extension/src/langgraph/__tests__/hook-loader.test.ts +0 -204
  496. package/extension/src/langgraph/__tests__/mcp-bridge.test.ts +0 -297
  497. package/extension/src/langgraph/__tests__/stream-handler-events.test.ts +0 -158
  498. package/extension/src/langgraph/__tests__/verify-node.test.ts +0 -275
  499. package/extension/src/langgraph/agents/analyze-input-node.ts +0 -92
  500. package/extension/src/langgraph/agents/approval-node.ts +0 -188
  501. package/extension/src/langgraph/agents/dynamic-agent-node.ts +0 -169
  502. package/extension/src/langgraph/agents/feedback-node.ts +0 -68
  503. package/extension/src/langgraph/agents/hotfix-verify-node.ts +0 -144
  504. package/extension/src/langgraph/agents/pipeline-extractor.ts +0 -113
  505. package/extension/src/langgraph/agents/registry.ts +0 -326
  506. package/extension/src/langgraph/agents/security-node.ts +0 -172
  507. package/extension/src/langgraph/agents/verify-node.ts +0 -161
  508. package/extension/src/langgraph/config/alternate-strategies.ts +0 -43
  509. package/extension/src/langgraph/config/verify-criteria.ts +0 -87
  510. package/extension/src/langgraph/core/base-node.ts +0 -312
  511. package/extension/src/langgraph/core/checkpointer-helpers.ts +0 -82
  512. package/extension/src/langgraph/core/checkpointer.ts +0 -106
  513. package/extension/src/langgraph/core/context-budget.ts +0 -191
  514. package/extension/src/langgraph/core/llm-provider.ts +0 -83
  515. package/extension/src/langgraph/core/mcp-bridge.ts +0 -182
  516. package/extension/src/langgraph/core/state-types.ts +0 -36
  517. package/extension/src/langgraph/core/state.ts +0 -69
  518. package/extension/src/langgraph/core/stream-handler.ts +0 -185
  519. package/extension/src/langgraph/engine/engine-chat-handler.ts +0 -66
  520. package/extension/src/langgraph/engine/langgraph-engine.ts +0 -311
  521. package/extension/src/langgraph/errors/non-recoverable-error.ts +0 -13
  522. package/extension/src/langgraph/helpers/hook-helpers.ts +0 -122
  523. package/extension/src/langgraph/helpers/workspace-file-ops.ts +0 -163
  524. package/extension/src/langgraph/hooks/hook-emitter.ts +0 -37
  525. package/extension/src/langgraph/hooks/hook-engine.ts +0 -173
  526. package/extension/src/langgraph/hooks/hook-executor.ts +0 -197
  527. package/extension/src/langgraph/hooks/hook-filters.ts +0 -94
  528. package/extension/src/langgraph/hooks/hook-loader.ts +0 -88
  529. package/extension/src/langgraph/hooks/hook-tool-matcher.ts +0 -64
  530. package/extension/src/langgraph/index.ts +0 -54
  531. package/extension/src/langgraph/pipeline/edges-feedback.ts +0 -63
  532. package/extension/src/langgraph/pipeline/edges.ts +0 -152
  533. package/extension/src/langgraph/pipeline/sdlc-graph.ts +0 -388
  534. package/extension/src/langgraph/pipeline/sdlc-node-factory.ts +0 -60
  535. package/extension/src/langgraph/providers/BaseLlmProvider.ts +0 -122
  536. package/extension/src/langgraph/providers/anthropic-helpers.ts +0 -26
  537. package/extension/src/langgraph/providers/anthropic-provider.ts +0 -142
  538. package/extension/src/langgraph/providers/index.ts +0 -107
  539. package/extension/src/langgraph/providers/ollama-provider.ts +0 -117
  540. package/extension/src/langgraph/providers/ollama-tools.ts +0 -52
  541. package/extension/src/langgraph/providers/onnx-provider.ts +0 -155
  542. package/extension/src/langgraph/providers/onnx-tokenizer.ts +0 -47
  543. package/extension/src/langgraph/providers/openai-helpers.ts +0 -38
  544. package/extension/src/langgraph/providers/openai-provider.ts +0 -176
  545. package/extension/src/langgraph/providers/provider-registry.ts +0 -176
  546. package/extension/src/langgraph/router/intent-classifier.ts +0 -133
  547. package/extension/src/langgraph/router/router-graph.ts +0 -187
  548. package/extension/src/langgraph/router/router-state.ts +0 -19
  549. package/extension/src/langgraph/steering/steering-loader.ts +0 -190
  550. package/extension/src/langgraph/subgraphs/chat-graph-nodes.ts +0 -297
  551. package/extension/src/langgraph/subgraphs/chat-graph.ts +0 -180
  552. package/extension/src/langgraph/subgraphs/code-review-graph.ts +0 -102
  553. package/extension/src/langgraph/subgraphs/core/checkpointer.ts +0 -4
  554. package/extension/src/langgraph/subgraphs/core/llm-provider.ts +0 -4
  555. package/extension/src/langgraph/subgraphs/core/mcp-bridge.ts +0 -4
  556. package/extension/src/langgraph/subgraphs/core/stream-handler.ts +0 -4
  557. package/extension/src/langgraph/subgraphs/docs-graph.ts +0 -80
  558. package/extension/src/langgraph/subgraphs/graph-builder.ts +0 -36
  559. package/extension/src/langgraph/subgraphs/hooks/hook-engine.ts +0 -4
  560. package/extension/src/langgraph/subgraphs/hotfix-graph.ts +0 -93
  561. package/extension/src/langgraph/subgraphs/rag-grader-nodes.ts +0 -230
  562. package/extension/src/langgraph/subgraphs/rag-grader-prompts.ts +0 -54
  563. package/extension/src/langgraph/subgraphs/security-audit-graph.ts +0 -126
  564. package/extension/src/langgraph/subgraphs/verify-node.ts +0 -166
  565. package/extension/src/langgraph/subgraphs/verify-prompt.ts +0 -45
  566. package/extension/src/langgraph/vscode/tool-registry.ts +0 -86
  567. package/extension/src/langgraph/vscode/vscode-tool-definitions.ts +0 -44
  568. package/extension/src/langgraph/vscode/vscode-tools.ts +0 -150
  569. package/extension/src/langgraph/workflow/workflow-executor-actions.ts +0 -173
  570. package/extension/src/langgraph/workflow/workflow-executor.ts +0 -85
  571. package/extension/src/langgraph/workflow/workflow-graph-data.ts +0 -156
  572. package/extension/src/langgraph/workflow/workflow-parser-actions.ts +0 -87
  573. package/extension/src/langgraph/workflow/workflow-parser.ts +0 -74
  574. package/extension/src/logger.ts +0 -34
  575. package/extension/src/mcp-config-builder.ts +0 -114
  576. package/extension/src/mcp-injector.ts +0 -65
  577. package/extension/src/mcp-server-manager.ts +0 -24
  578. package/extension/src/models/LlmProviderConfig.ts +0 -25
  579. package/extension/src/models/LlmTestResult.ts +0 -9
  580. package/extension/src/models/SettingsState.ts +0 -16
  581. package/extension/src/models/index.ts +0 -3
  582. package/extension/src/native-addon-manager.ts +0 -151
  583. package/extension/src/panels/analytics-panel.ts +0 -31
  584. package/extension/src/panels/base-panel.ts +0 -97
  585. package/extension/src/panels/dashboard-panel.ts +0 -29
  586. package/extension/src/panels/graph-panel.ts +0 -27
  587. package/extension/src/panels/impact-panel.ts +0 -162
  588. package/extension/src/panels/login-panel.ts +0 -102
  589. package/extension/src/panels/panel-html.ts +0 -129
  590. package/extension/src/panels/quality-panel.ts +0 -31
  591. package/extension/src/panels/security-panel.ts +0 -155
  592. package/extension/src/panels/settings/SettingsMessageHandler.ts +0 -190
  593. package/extension/src/panels/settings/SettingsPanel.ts +0 -136
  594. package/extension/src/panels/settings-panel.ts +0 -10
  595. package/extension/src/panels/tags-panel.ts +0 -31
  596. package/extension/src/panels/workflow-panel.ts +0 -84
  597. package/extension/src/platform-detector.ts +0 -94
  598. package/extension/src/platform-swap/backup-manager.ts +0 -158
  599. package/extension/src/platform-swap/index.ts +0 -62
  600. package/extension/src/platform-swap/platform-config.ts +0 -84
  601. package/extension/src/platform-swap/platform-detector.ts +0 -90
  602. package/extension/src/platform-swap/platform-status-bar.ts +0 -71
  603. package/extension/src/platform-swap/state-manager.ts +0 -107
  604. package/extension/src/platform-swap/swap-commands.ts +0 -162
  605. package/extension/src/platform-swap/swap-executor.ts +0 -193
  606. package/extension/src/platform-swap/types.ts +0 -68
  607. package/extension/src/proxy/HttpClient.ts +0 -136
  608. package/extension/src/proxy/ToolProxy.ts +0 -61
  609. package/extension/src/remote-backend-client.ts +0 -157
  610. package/extension/src/services/Base64ProxyService.ts +0 -184
  611. package/extension/src/services/IndexerHttpClient.ts +0 -274
  612. package/extension/src/services/IndexingService.ts +0 -117
  613. package/extension/src/services/KBClient.ts +0 -109
  614. package/extension/src/services/LlmTestService.ts +0 -97
  615. package/extension/src/services/ProviderConfigService.ts +0 -85
  616. package/extension/src/services/WorkspaceSyncService.ts +0 -48
  617. package/extension/src/services/WrapperServer.ts +0 -240
  618. package/extension/src/sf-indexer.ts +0 -97
  619. package/extension/src/sidebar/tree-view-provider.ts +0 -173
  620. package/extension/src/symbol-search.ts +0 -130
  621. package/extension/src/test/base-panel.test.ts +0 -168
  622. package/extension/src/test/mcp-server-manager.test.ts +0 -322
  623. package/extension/src/test/mocks/vscode.ts +0 -148
  624. package/extension/src/test/setup.ts +0 -18
  625. package/extension/src/test/tree-view-provider.test.ts +0 -208
  626. package/extension/src/test/webview-panel-manager.test.ts +0 -160
  627. package/extension/src/types/index.ts +0 -6
  628. package/extension/src/types/panel-types.ts +0 -98
  629. package/extension/src/types/server-types.ts +0 -119
  630. package/extension/src/types.ts +0 -5
  631. package/extension/src/ui/status-bar.ts +0 -55
  632. package/extension/src/utils/backend-auth-headers.ts +0 -26
  633. package/extension/src/utils/http-client-utils.ts +0 -90
  634. package/extension/src/utils/mcp-config-file.ts +0 -89
  635. package/extension/src/utils/panel-utils.ts +0 -74
  636. package/extension/src/webview/__tests__/integration.test.ts +0 -341
  637. package/extension/src/webview/__tests__/options.integration.test.ts +0 -273
  638. package/extension/src/webview/__tests__/options.pbt.test.ts +0 -217
  639. package/extension/src/webview/__tests__/options.unit.test.ts +0 -388
  640. package/extension/src/webview/__tests__/pbt.test.ts +0 -251
  641. package/extension/src/webview/__tests__/slash-menu.integration.test.ts +0 -259
  642. package/extension/src/webview/__tests__/slash-menu.pbt.test.ts +0 -229
  643. package/extension/src/webview/__tests__/slash-menu.unit.test.ts +0 -244
  644. package/extension/src/webview/__tests__/spinner.integration.test.ts +0 -219
  645. package/extension/src/webview/__tests__/spinner.pbt.test.ts +0 -151
  646. package/extension/src/webview/__tests__/spinner.unit.test.ts +0 -263
  647. package/extension/src/webview/__tests__/unit-part2.test.ts +0 -377
  648. package/extension/src/webview/__tests__/unit.test.ts +0 -101
  649. package/extension/src/webview/badges/BadgeManager.ts +0 -94
  650. package/extension/src/webview/badges/BadgeRenderer.ts +0 -66
  651. package/extension/src/webview/badges/types.ts +0 -12
  652. package/extension/src/webview/bridge/MessageBridge.ts +0 -107
  653. package/extension/src/webview/bridge/types.ts +0 -15
  654. package/extension/src/webview/context-menu/ContextMenuController.ts +0 -275
  655. package/extension/src/webview/context-menu/ContextMenuItems.ts +0 -72
  656. package/extension/src/webview/context-menu/ContextMenuView.ts +0 -154
  657. package/extension/src/webview/context-menu/FilePicker.ts +0 -103
  658. package/extension/src/webview/context-menu/FolderPicker.ts +0 -101
  659. package/extension/src/webview/context-menu/FuzzyFilter.ts +0 -67
  660. package/extension/src/webview/context-menu/ListPicker.ts +0 -179
  661. package/extension/src/webview/context-menu/PickerPanel.ts +0 -205
  662. package/extension/src/webview/context-menu/types.ts +0 -49
  663. package/extension/src/webview/graph/lod/BudgetManager.ts +0 -53
  664. package/extension/src/webview/graph/lod/ClusteringAlgorithm.ts +0 -186
  665. package/extension/src/webview/graph/lod/DistanceChecker.ts +0 -51
  666. package/extension/src/webview/graph/lod/LODManager.ts +0 -177
  667. package/extension/src/webview/graph/lod/OrbitalLayout.ts +0 -52
  668. package/extension/src/webview/graph/lod/__tests__/lod.test.ts +0 -269
  669. package/extension/src/webview/graph/lod/clustering-helpers.ts +0 -62
  670. package/extension/src/webview/graph/lod/config.ts +0 -36
  671. package/extension/src/webview/graph/lod/index.ts +0 -25
  672. package/extension/src/webview/graph/lod/types.ts +0 -91
  673. package/extension/src/webview/input/InputAreaIntegration.ts +0 -408
  674. package/extension/src/webview/options/OptionsController.ts +0 -203
  675. package/extension/src/webview/options/OptionsView.ts +0 -169
  676. package/extension/src/webview/options/types.ts +0 -42
  677. package/extension/src/webview/protocol.ts +0 -134
  678. package/extension/src/webview/slash-menu/SlashMenuController.ts +0 -249
  679. package/extension/src/webview/slash-menu/SlashMenuItems.ts +0 -89
  680. package/extension/src/webview/slash-menu/SlashMenuView.ts +0 -216
  681. package/extension/src/webview/slash-menu/types.ts +0 -61
  682. package/extension/src/webview/spinner/SpinnerController.ts +0 -114
  683. package/extension/src/webview/spinner/SpinnerView.ts +0 -67
  684. package/extension/src/webview/spinner/types.ts +0 -35
  685. package/extension/src/webview-panel-manager.ts +0 -131
  686. package/extension/tests/mcp-bridge.test.js +0 -177
  687. package/extension/tests/mcp-bridge.test.ts +0 -183
  688. package/extension/vitest.config.ts +0 -25
  689. package/extension/webview-assets/3d-force-graph.min.js +0 -5
  690. package/extension/webview-assets/analytics.js +0 -174
  691. package/extension/webview-assets/chart.min.js +0 -14
  692. package/extension/webview-assets/chat/chat.js +0 -1907
  693. package/extension/webview-assets/chat/graph-viz.js +0 -144
  694. package/extension/webview-assets/chat/markdown-renderer.js +0 -254
  695. package/extension/webview-assets/dashboard.js +0 -246
  696. package/extension/webview-assets/graph.js +0 -636
  697. package/extension/webview-assets/quality.js +0 -203
  698. package/extension/webview-assets/settings/settings.js +0 -575
  699. package/extension/webview-assets/tags.js +0 -182
  700. package/extension/webview-assets/three.min.js +0 -6
  701. package/extension/webview-assets/workflow-graph.js +0 -108
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.19.1-blue?style=for-the-badge" alt="Version">
9
+ <img src="https://img.shields.io/badge/version-1.21.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>
@@ -15,7 +15,7 @@ export const CORE_TOOLS = [
15
15
  'pega_get_rule', 'pega_get_session_context',
16
16
  'pega_query_rule', 'pega_list_rules', 'pega_save_rule',
17
17
  'pega_checkout_rule', 'pega_run_tests', 'pega_get_class_metadata',
18
- 'pega_create_branch',
18
+ 'pega_create_branch', 'pega_index_workspace',
19
19
  ];
20
20
  /**
21
21
  * Normalize allowlist: drop invalid (BR-05), de-dup (BR-08),
@@ -1 +1 @@
1
- {"version":3,"file":"CoreTools.js","sourceRoot":"","sources":["../../src/config/CoreTools.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,2EAA2E;AAC3E,MAAM,CAAC,MAAM,UAAU,GAAsB;IAC3C,YAAY,EAAE,sBAAsB,EAAE,sBAAsB;CACpD,CAAC;AAEX,sFAAsF;AACtF,MAAM,CAAC,MAAM,UAAU,GAAsB;IAC3C,YAAY,EAAE,YAAY,EAAE,iBAAiB;IAC7C,aAAa,EAAE,qBAAqB;IACpC,YAAY,EAAE,sBAAsB,EAAE,sBAAsB;IAC5D,mBAAmB,EAAE,oBAAoB;IACzC,eAAe,EAAE,0BAA0B;IAC3C,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB;IACtD,oBAAoB,EAAE,gBAAgB,EAAE,yBAAyB;IACjE,oBAAoB;CACZ,CAAC;AAEX;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAe;IAClD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;QAC3B,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QACxD,IAAI,CAAC,EAAE;YAAE,MAAM,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,4CAA4C,CAAC,CAAC;QAClF,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,GAAG,CAAS,CAAC,GAAG,KAAK,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"CoreTools.js","sourceRoot":"","sources":["../../src/config/CoreTools.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,2EAA2E;AAC3E,MAAM,CAAC,MAAM,UAAU,GAAsB;IAC3C,YAAY,EAAE,sBAAsB,EAAE,sBAAsB;CACpD,CAAC;AAEX,sFAAsF;AACtF,MAAM,CAAC,MAAM,UAAU,GAAsB;IAC3C,YAAY,EAAE,YAAY,EAAE,iBAAiB;IAC7C,aAAa,EAAE,qBAAqB;IACpC,YAAY,EAAE,sBAAsB,EAAE,sBAAsB;IAC5D,mBAAmB,EAAE,oBAAoB;IACzC,eAAe,EAAE,0BAA0B;IAC3C,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB;IACtD,oBAAoB,EAAE,gBAAgB,EAAE,yBAAyB;IACjE,oBAAoB,EAAE,sBAAsB;CACpC,CAAC;AAEX;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAe;IAClD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;QAC3B,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QACxD,IAAI,CAAC,EAAE;YAAE,MAAM,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,4CAA4C,CAAC,CAAC;QAClF,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,GAAG,CAAS,CAAC,GAAG,KAAK,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC;AACpD,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * SA4E-91 — Tests for CodeEdgeExtractor strategies.
3
+ * Verifies IMPORTS, CALLS, and EXTENDS edges are extracted from code_dependencies,
4
+ * code_call_graph, and symbols tables, then inserted into graph_edges.
5
+ */
6
+ export {};
@@ -0,0 +1,116 @@
1
+ /**
2
+ * SA4E-91 — Tests for CodeEdgeExtractor strategies.
3
+ * Verifies IMPORTS, CALLS, and EXTENDS edges are extracted from code_dependencies,
4
+ * code_call_graph, and symbols tables, then inserted into graph_edges.
5
+ */
6
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
7
+ import Database from 'better-sqlite3';
8
+ import pino from 'pino';
9
+ import { SqliteDbAdapter } from '../../../modules/memory/task-queue/SqliteDbAdapter.js';
10
+ import { ImportsEdgeStrategy, CallsEdgeStrategy, ExtendsEdgeStrategy, extractAndInsertCodeEdges, } from '../code-edge-extractor.js';
11
+ const PID = 'proj_test';
12
+ const log = pino({ level: 'silent' });
13
+ const INDEX_SCHEMA = `
14
+ CREATE TABLE files (id INTEGER PRIMARY KEY AUTOINCREMENT, project_id TEXT NOT NULL DEFAULT '',
15
+ path TEXT, relative_path TEXT, language TEXT, module TEXT, content_hash TEXT, size_bytes INTEGER, line_count INTEGER);
16
+ CREATE TABLE symbols (id INTEGER PRIMARY KEY AUTOINCREMENT, project_id TEXT NOT NULL DEFAULT '',
17
+ file_id INTEGER, name TEXT, kind TEXT, signature TEXT, start_line INTEGER, end_line INTEGER,
18
+ parent_symbol TEXT, parent_symbol_id INTEGER, visibility TEXT, doc_comment TEXT, complexity INTEGER, is_exported INTEGER DEFAULT 0);
19
+ CREATE TABLE code_dependencies (id INTEGER PRIMARY KEY AUTOINCREMENT,
20
+ source_file_id INTEGER NOT NULL, target_file_id INTEGER, target_path TEXT NOT NULL DEFAULT '',
21
+ dependency_type TEXT NOT NULL DEFAULT 'import');
22
+ CREATE TABLE code_call_graph (id INTEGER PRIMARY KEY AUTOINCREMENT,
23
+ caller_symbol_id INTEGER NOT NULL, callee_symbol_id INTEGER NOT NULL, call_site_line INTEGER);
24
+ `;
25
+ const ADMIN_SCHEMA = `
26
+ CREATE TABLE graph_nodes (entry_id TEXT PRIMARY KEY, label TEXT NOT NULL DEFAULT '',
27
+ type TEXT NOT NULL DEFAULT 'DOCUMENT', tier TEXT NOT NULL DEFAULT 'SHARED', project_id TEXT NOT NULL DEFAULT '',
28
+ x REAL DEFAULT 0, y REAL DEFAULT 0, z REAL DEFAULT 0, level INTEGER DEFAULT 2, cluster_id TEXT,
29
+ created_at TEXT DEFAULT (datetime('now')));
30
+ CREATE TABLE graph_edges (id INTEGER PRIMARY KEY AUTOINCREMENT,
31
+ source TEXT NOT NULL, target TEXT NOT NULL,
32
+ weight REAL NOT NULL DEFAULT 0.5, rel_type TEXT NOT NULL DEFAULT 'RELATED_TO',
33
+ UNIQUE(source, target));
34
+ `;
35
+ describe('SA4E-91 CodeEdgeExtractor', () => {
36
+ let indexDb;
37
+ let adminDb;
38
+ beforeEach(() => {
39
+ indexDb = new Database(':memory:');
40
+ indexDb.exec(INDEX_SCHEMA);
41
+ adminDb = new Database(':memory:');
42
+ adminDb.exec(ADMIN_SCHEMA);
43
+ });
44
+ afterEach(() => { indexDb.close(); adminDb.close(); });
45
+ describe('ImportsEdgeStrategy', () => {
46
+ it('extracts IMPORTS edges from code_dependencies', async () => {
47
+ indexDb.prepare(`INSERT INTO files (project_id, path, relative_path) VALUES (?, '/a.ts', 'a.ts')`).run(PID);
48
+ indexDb.prepare(`INSERT INTO files (project_id, path, relative_path) VALUES (?, '/b.ts', 'b.ts')`).run(PID);
49
+ indexDb.prepare(`INSERT INTO code_dependencies (source_file_id, target_file_id, target_path) VALUES (1, 2, './b')`).run();
50
+ const strategy = new ImportsEdgeStrategy();
51
+ const edges = await strategy.extract(new SqliteDbAdapter(indexDb), PID);
52
+ expect(edges).toHaveLength(1);
53
+ expect(edges[0]).toEqual({ source: 'code:1', target: 'code:2', label: 'IMPORTS', weight: 0.8 });
54
+ });
55
+ it('skips dependencies with null target_file_id', async () => {
56
+ indexDb.prepare(`INSERT INTO files (project_id, path, relative_path) VALUES (?, '/a.ts', 'a.ts')`).run(PID);
57
+ indexDb.prepare(`INSERT INTO code_dependencies (source_file_id, target_file_id, target_path) VALUES (1, NULL, 'lodash')`).run();
58
+ const strategy = new ImportsEdgeStrategy();
59
+ const edges = await strategy.extract(new SqliteDbAdapter(indexDb), PID);
60
+ expect(edges).toHaveLength(0);
61
+ });
62
+ });
63
+ describe('CallsEdgeStrategy', () => {
64
+ it('extracts CALLS edges from code_call_graph', async () => {
65
+ indexDb.prepare(`INSERT INTO files (project_id, path, relative_path) VALUES (?, '/x.ts', 'x.ts')`).run(PID);
66
+ indexDb.prepare(`INSERT INTO symbols (project_id, file_id, name, kind) VALUES (?, 1, 'foo', 'function')`).run(PID);
67
+ indexDb.prepare(`INSERT INTO symbols (project_id, file_id, name, kind) VALUES (?, 1, 'bar', 'function')`).run(PID);
68
+ indexDb.prepare(`INSERT INTO code_call_graph (caller_symbol_id, callee_symbol_id, call_site_line) VALUES (1, 2, 10)`).run();
69
+ const strategy = new CallsEdgeStrategy();
70
+ const edges = await strategy.extract(new SqliteDbAdapter(indexDb), PID);
71
+ expect(edges).toHaveLength(1);
72
+ expect(edges[0]).toEqual({ source: 'code:1', target: 'code:2', label: 'CALLS', weight: 0.7 });
73
+ });
74
+ });
75
+ describe('ExtendsEdgeStrategy', () => {
76
+ it('extracts EXTENDS edges from parent_symbol_id', async () => {
77
+ indexDb.prepare(`INSERT INTO files (project_id, path, relative_path) VALUES (?, '/c.ts', 'c.ts')`).run(PID);
78
+ indexDb.prepare(`INSERT INTO symbols (project_id, file_id, name, kind, parent_symbol_id) VALUES (?, 1, 'Base', 'class', NULL)`).run(PID);
79
+ indexDb.prepare(`INSERT INTO symbols (project_id, file_id, name, kind, parent_symbol_id) VALUES (?, 1, 'Child', 'class', 1)`).run(PID);
80
+ const strategy = new ExtendsEdgeStrategy();
81
+ const edges = await strategy.extract(new SqliteDbAdapter(indexDb), PID);
82
+ expect(edges).toHaveLength(1);
83
+ expect(edges[0]).toEqual({ source: 'code:2', target: 'code:1', label: 'EXTENDS', weight: 0.9 });
84
+ });
85
+ });
86
+ describe('extractAndInsertCodeEdges (integration)', () => {
87
+ it('inserts all edge types into graph_edges', async () => {
88
+ // File A=1 imports File B=2, but Symbol X=3 (in file A) calls Symbol Y=4 (in file B)
89
+ indexDb.prepare(`INSERT INTO files (project_id, path, relative_path) VALUES (?, '/a.ts', 'a.ts')`).run(PID);
90
+ indexDb.prepare(`INSERT INTO files (project_id, path, relative_path) VALUES (?, '/b.ts', 'b.ts')`).run(PID);
91
+ indexDb.prepare(`INSERT INTO symbols (project_id, file_id, name, kind) VALUES (?, 1, 'fn1', 'function')`).run(PID);
92
+ indexDb.prepare(`INSERT INTO symbols (project_id, file_id, name, kind) VALUES (?, 1, 'fn2', 'function')`).run(PID);
93
+ indexDb.prepare(`INSERT INTO symbols (project_id, file_id, name, kind) VALUES (?, 2, 'fn3', 'function')`).run(PID);
94
+ // File 1 → File 2 (IMPORTS edge: code:1 → code:2)
95
+ indexDb.prepare(`INSERT INTO code_dependencies (source_file_id, target_file_id, target_path) VALUES (1, 2, './b')`).run();
96
+ // Symbol 2 → Symbol 3 (CALLS edge: code:2 → code:3)
97
+ indexDb.prepare(`INSERT INTO code_call_graph (caller_symbol_id, callee_symbol_id, call_site_line) VALUES (2, 3, 10)`).run();
98
+ const count = await extractAndInsertCodeEdges(new SqliteDbAdapter(indexDb), new SqliteDbAdapter(adminDb), PID, log);
99
+ expect(count).toBe(2);
100
+ const edges = adminDb.prepare('SELECT * FROM graph_edges ORDER BY rel_type').all();
101
+ expect(edges).toHaveLength(2);
102
+ expect(edges.some((e) => e.rel_type === 'IMPORTS')).toBe(true);
103
+ expect(edges.some((e) => e.rel_type === 'CALLS')).toBe(true);
104
+ });
105
+ it('is idempotent — duplicate inserts ignored', async () => {
106
+ indexDb.prepare(`INSERT INTO files (project_id, path, relative_path) VALUES (?, '/a.ts', 'a.ts')`).run(PID);
107
+ indexDb.prepare(`INSERT INTO files (project_id, path, relative_path) VALUES (?, '/b.ts', 'b.ts')`).run(PID);
108
+ indexDb.prepare(`INSERT INTO code_dependencies (source_file_id, target_file_id, target_path) VALUES (1, 2, './b')`).run();
109
+ await extractAndInsertCodeEdges(new SqliteDbAdapter(indexDb), new SqliteDbAdapter(adminDb), PID, log);
110
+ await extractAndInsertCodeEdges(new SqliteDbAdapter(indexDb), new SqliteDbAdapter(adminDb), PID, log);
111
+ const edges = adminDb.prepare('SELECT * FROM graph_edges').all();
112
+ expect(edges.length).toBe(1);
113
+ });
114
+ });
115
+ });
116
+ //# sourceMappingURL=code-edge-extractor.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-edge-extractor.test.js","sourceRoot":"","sources":["../../../../src/engine/graph/__tests__/code-edge-extractor.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * SA4E-91 — Code Edge Extractor.
3
+ * Extracts IMPORTS, EXTENDS, and CALLS edges from code intelligence data
4
+ * (code_dependencies, code_call_graph, symbols) after graph node projection.
5
+ * Non-blocking, best-effort: failures never break the index run.
6
+ */
7
+ import type { DatabaseAdapter } from '../../database/adapters/DatabaseAdapter.js';
8
+ import type { Logger } from 'pino';
9
+ /** A graph edge extracted from code intelligence tables. */
10
+ export interface CodeGraphEdge {
11
+ source: string;
12
+ target: string;
13
+ label: string;
14
+ weight: number;
15
+ }
16
+ /** Strategy interface for code edge extraction. */
17
+ export interface CodeEdgeStrategy {
18
+ /** Extract edges for the given project from the index DB. */
19
+ extract(indexAdapter: DatabaseAdapter, projectId: string): Promise<CodeGraphEdge[]>;
20
+ }
21
+ /** Extracts IMPORTS edges from code_dependencies table. */
22
+ export declare class ImportsEdgeStrategy implements CodeEdgeStrategy {
23
+ extract(indexAdapter: DatabaseAdapter, projectId: string): Promise<CodeGraphEdge[]>;
24
+ }
25
+ /** Extracts CALLS edges from code_call_graph table. */
26
+ export declare class CallsEdgeStrategy implements CodeEdgeStrategy {
27
+ extract(indexAdapter: DatabaseAdapter, projectId: string): Promise<CodeGraphEdge[]>;
28
+ }
29
+ /** Extracts EXTENDS edges from class inheritance (parent_symbol_id). */
30
+ export declare class ExtendsEdgeStrategy implements CodeEdgeStrategy {
31
+ extract(indexAdapter: DatabaseAdapter, projectId: string): Promise<CodeGraphEdge[]>;
32
+ }
33
+ /**
34
+ * Batch-insert extracted code edges into graph_edges (admin DB).
35
+ * Uses ON CONFLICT DO NOTHING for idempotency.
36
+ * Non-fatal: catches all errors to avoid breaking index pipeline.
37
+ */
38
+ export declare function extractAndInsertCodeEdges(indexAdapter: DatabaseAdapter, adminAdapter: DatabaseAdapter, projectId: string, log: Logger): Promise<number>;
@@ -0,0 +1,89 @@
1
+ /**
2
+ * SA4E-91 — Code Edge Extractor.
3
+ * Extracts IMPORTS, EXTENDS, and CALLS edges from code intelligence data
4
+ * (code_dependencies, code_call_graph, symbols) after graph node projection.
5
+ * Non-blocking, best-effort: failures never break the index run.
6
+ */
7
+ /** Extracts IMPORTS edges from code_dependencies table. */
8
+ export class ImportsEdgeStrategy {
9
+ async extract(indexAdapter, projectId) {
10
+ const rows = await indexAdapter.allAsync(`SELECT cd.source_file_id, cd.target_file_id
11
+ FROM code_dependencies cd
12
+ JOIN files f ON cd.source_file_id = f.id
13
+ WHERE f.project_id = ? AND cd.target_file_id IS NOT NULL`, [projectId]);
14
+ return rows.map(r => ({
15
+ source: `code:${r.source_file_id}`,
16
+ target: `code:${r.target_file_id}`,
17
+ label: 'IMPORTS',
18
+ weight: 0.8,
19
+ }));
20
+ }
21
+ }
22
+ /** Extracts CALLS edges from code_call_graph table. */
23
+ export class CallsEdgeStrategy {
24
+ async extract(indexAdapter, projectId) {
25
+ const rows = await indexAdapter.allAsync(`SELECT cg.caller_symbol_id AS caller_id, cg.callee_symbol_id AS callee_id
26
+ FROM code_call_graph cg
27
+ JOIN symbols s ON cg.caller_symbol_id = s.id
28
+ WHERE s.project_id = ?`, [projectId]);
29
+ return rows.map(r => ({
30
+ source: `code:${r.caller_id}`,
31
+ target: `code:${r.callee_id}`,
32
+ label: 'CALLS',
33
+ weight: 0.7,
34
+ }));
35
+ }
36
+ }
37
+ /** Extracts EXTENDS edges from class inheritance (parent_symbol_id). */
38
+ export class ExtendsEdgeStrategy {
39
+ async extract(indexAdapter, projectId) {
40
+ const rows = await indexAdapter.allAsync(`SELECT s.id AS child_id, s.parent_symbol_id AS parent_id
41
+ FROM symbols s
42
+ WHERE s.project_id = ? AND s.parent_symbol_id IS NOT NULL`, [projectId]);
43
+ return rows.map(r => ({
44
+ source: `code:${r.child_id}`,
45
+ target: `code:${r.parent_id}`,
46
+ label: 'EXTENDS',
47
+ weight: 0.9,
48
+ }));
49
+ }
50
+ }
51
+ /** Registry of all code-edge strategies. */
52
+ const CODE_EDGE_STRATEGIES = [
53
+ new ImportsEdgeStrategy(),
54
+ new CallsEdgeStrategy(),
55
+ new ExtendsEdgeStrategy(),
56
+ ];
57
+ /**
58
+ * Batch-insert extracted code edges into graph_edges (admin DB).
59
+ * Uses ON CONFLICT DO NOTHING for idempotency.
60
+ * Non-fatal: catches all errors to avoid breaking index pipeline.
61
+ */
62
+ export async function extractAndInsertCodeEdges(indexAdapter, adminAdapter, projectId, log) {
63
+ let totalInserted = 0;
64
+ for (const strategy of CODE_EDGE_STRATEGIES) {
65
+ try {
66
+ const edges = await strategy.extract(indexAdapter, projectId);
67
+ totalInserted += await batchInsertEdges(adminAdapter, edges);
68
+ }
69
+ catch (err) {
70
+ // Best-effort: log and continue with next strategy
71
+ log.warn({ err }, `[code-edge-extractor] Strategy ${strategy.constructor.name} failed`);
72
+ }
73
+ }
74
+ return totalInserted;
75
+ }
76
+ /** Insert edges in batch, ignoring conflicts (idempotent). */
77
+ async function batchInsertEdges(adapter, edges) {
78
+ let count = 0;
79
+ const sql = adapter.getEngine() === 'sqlite'
80
+ ? `INSERT OR IGNORE INTO graph_edges (source, target, weight, rel_type) VALUES (?, ?, ?, ?)`
81
+ : `INSERT INTO graph_edges (source, target, weight, rel_type) VALUES ($1, $2, $3, $4) ON CONFLICT (source, target) DO NOTHING`;
82
+ for (const edge of edges) {
83
+ const result = await adapter.runAsync(sql, [edge.source, edge.target, edge.weight, edge.label]);
84
+ if ((result.changes ?? 0) > 0)
85
+ count++;
86
+ }
87
+ return count;
88
+ }
89
+ //# sourceMappingURL=code-edge-extractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-edge-extractor.js","sourceRoot":"","sources":["../../../src/engine/graph/code-edge-extractor.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,8 @@ export declare class GraphSyncService {
17
17
  constructor(indexAdapter: DatabaseAdapter, adminAdapter: DatabaseAdapter, log: Logger);
18
18
  /** Re-project a tenant's code symbols into graph_nodes. SA4E-53: async. */
19
19
  syncProjectSymbols(projectId: string): Promise<void>;
20
+ /** SA4E-91: Extract code relationships into graph_edges (non-fatal). */
21
+ private syncCodeEdges;
20
22
  private readTopSymbols;
21
23
  private replaceCodeNodes;
22
24
  private toLabel;
@@ -8,6 +8,7 @@
8
8
  */
9
9
  import { DialectHelper } from '../../database/dialect/DialectHelper.js';
10
10
  import { KIND_TO_TYPE } from '../../modules/kb-graph/service/constants.js';
11
+ import { extractAndInsertCodeEdges } from './code-edge-extractor.js';
11
12
  const CODE_KINDS = ['class', 'interface', 'function', 'method', 'enum', 'type', 'constructor'];
12
13
  export class GraphSyncService {
13
14
  indexAdapter;
@@ -33,12 +34,26 @@ export class GraphSyncService {
33
34
  const symbols = await this.readTopSymbols(projectId);
34
35
  await this.replaceCodeNodes(projectId, symbols);
35
36
  this.log.info(`[graph-sync] Synced ${symbols.length} code nodes for project ${projectId}`);
37
+ // SA4E-91: Extract and insert code edges (IMPORTS, CALLS, EXTENDS)
38
+ await this.syncCodeEdges(projectId);
36
39
  }
37
40
  catch (err) {
38
41
  // Non-fatal: visualization projection must never fail the index run.
39
42
  this.log.error({ err }, `[graph-sync] Failed to sync code nodes for ${projectId}`);
40
43
  }
41
44
  }
45
+ /** SA4E-91: Extract code relationships into graph_edges (non-fatal). */
46
+ async syncCodeEdges(projectId) {
47
+ try {
48
+ const count = await extractAndInsertCodeEdges(this.indexAdapter, this.adminAdapter, projectId, this.log);
49
+ if (count > 0) {
50
+ this.log.info(`[graph-sync] Inserted ${count} code edges for project ${projectId}`);
51
+ }
52
+ }
53
+ catch (err) {
54
+ this.log.warn({ err }, `[graph-sync] Code edge extraction failed (non-fatal)`);
55
+ }
56
+ }
42
57
  async readTopSymbols(projectId) {
43
58
  const placeholders = CODE_KINDS.map(() => '?').join(',');
44
59
  return this.indexAdapter.allAsync(`SELECT s.id, s.name, s.kind, f.relative_path
@@ -1 +1 @@
1
- {"version":3,"file":"graph-sync-service.js","sourceRoot":"","sources":["../../../src/engine/graph/graph-sync-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph-sync-service.js","sourceRoot":"","sources":["../../../src/engine/graph/graph-sync-service.ts"],"names":[],"mappings":"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"}
@@ -80,9 +80,9 @@ function decodeBase64Content(b64) {
80
80
  }
81
81
  function wrapXmlIfNeeded(content) {
82
82
  const trimmed = content.trim();
83
- if (trimmed.startsWith('<mxfile') || trimmed.startsWith('<?xml'))
83
+ if (trimmed.startsWith('<mxfile') || trimmed.startsWith('<?xml') || trimmed.startsWith('<mxGraphModel'))
84
84
  return content;
85
- return `<?xml version="1.0" encoding="UTF-8"?>\n<mxfile host="app.diagrams.net">\n${content}\n</mxfile>`;
85
+ return `<?xml version="1.0" encoding="UTF-8"?>\n<mxfile host="app.diagrams.net">\n<diagram name="Page-1">\n${content}\n</diagram>\n</mxfile>`;
86
86
  }
87
87
  async function renderWithEngine(renderer, inputPath, outputPath, workspace, orchestrationEngine) {
88
88
  switch (renderer) {
@@ -1 +1 @@
1
- {"version":3,"file":"drawio-export-png.js","sourceRoot":"","sources":["../../../src/engine/tools/drawio-export-png.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"drawio-export-png.js","sourceRoot":"","sources":["../../../src/engine/tools/drawio-export-png.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * SA4E-85 — Knowledge SQLite persistence layer.
3
+ * Internal storage behind KnowledgeService. Not a LangGraph checkpointer —
4
+ * checkpoints are JSON projections stored here. DB perms hardened (Finding #22).
5
+ */
6
+ import Database from 'better-sqlite3';
7
+ import type { Thread, Message, Checkpoint, ToolExecution, Artifact, KnowledgeEvent, Agent, SaveCheckpointInput, MessageInput } from './models.js';
8
+ export declare class KnowledgeDb {
9
+ private db;
10
+ constructor(dbPath?: string, existing?: Database.Database);
11
+ static createInMemory(): KnowledgeDb;
12
+ private migrate;
13
+ close(): void;
14
+ createThread(t: Thread): void;
15
+ listThreads(workspaceId: string): Thread[];
16
+ getThread(threadId: string): Thread | null;
17
+ deleteThread(threadId: string): void;
18
+ appendMessage(workspaceId: string, threadId: string, m: MessageInput, seq: number): void;
19
+ listMessages(threadId: string): Message[];
20
+ countMessages(threadId: string): number;
21
+ getCheckpoint(threadId: string): Checkpoint | null;
22
+ upsertCheckpoint(workspaceId: string, threadId: string, input: SaveCheckpointInput): Checkpoint;
23
+ addToolExecution(exec: ToolExecution): void;
24
+ addArtifact(a: Artifact): void;
25
+ listArtifacts(threadId: string): Artifact[];
26
+ appendEvent(workspaceId: string, threadId: string, type: string, payload: unknown): void;
27
+ listEvents(threadId: string): KnowledgeEvent[];
28
+ upsertAgent(a: Agent): Agent;
29
+ listAgents(): Agent[];
30
+ }
@@ -0,0 +1,148 @@
1
+ /**
2
+ * SA4E-85 — Knowledge SQLite persistence layer.
3
+ * Internal storage behind KnowledgeService. Not a LangGraph checkpointer —
4
+ * checkpoints are JSON projections stored here. DB perms hardened (Finding #22).
5
+ */
6
+ import Database from 'better-sqlite3';
7
+ import * as fs from 'fs';
8
+ import * as path from 'path';
9
+ import * as crypto from 'crypto';
10
+ import { KNOWLEDGE_SCHEMA } from './schema.js';
11
+ function parse(raw, fallback) {
12
+ if (!raw)
13
+ return fallback;
14
+ try {
15
+ return JSON.parse(raw);
16
+ }
17
+ catch {
18
+ return fallback;
19
+ }
20
+ }
21
+ function openDb(dbPath) {
22
+ if (!dbPath)
23
+ throw new Error('KnowledgeDb requires a dbPath');
24
+ const dir = path.dirname(dbPath);
25
+ if (!fs.existsSync(dir))
26
+ fs.mkdirSync(dir, { recursive: true });
27
+ const db = new Database(dbPath);
28
+ db.pragma('journal_mode = WAL');
29
+ db.pragma('foreign_keys = ON');
30
+ try {
31
+ fs.chmodSync(dbPath, 0o600);
32
+ }
33
+ catch { /* best-effort on Windows */ }
34
+ return db;
35
+ }
36
+ export class KnowledgeDb {
37
+ db;
38
+ constructor(dbPath, existing) {
39
+ this.db = existing ?? openDb(dbPath);
40
+ this.migrate();
41
+ }
42
+ static createInMemory() {
43
+ return new KnowledgeDb(undefined, new Database(':memory:'));
44
+ }
45
+ migrate() { this.db.exec(KNOWLEDGE_SCHEMA); }
46
+ close() { this.db.close(); }
47
+ // --- threads (projection) ---
48
+ createThread(t) {
49
+ this.db.prepare('INSERT INTO threads (thread_id, workspace_id, title, agent_id, status, created_at, updated_at) VALUES (@thread_id, @workspace_id, @title, @agent_id, @status, @created_at, @updated_at)')
50
+ .run(t);
51
+ }
52
+ listThreads(workspaceId) {
53
+ return this.db.prepare('SELECT * FROM threads WHERE workspace_id = ? ORDER BY updated_at DESC').all(workspaceId);
54
+ }
55
+ getThread(threadId) {
56
+ const row = this.db.prepare('SELECT * FROM threads WHERE thread_id = ?').get(threadId);
57
+ return row ? row : null;
58
+ }
59
+ deleteThread(threadId) {
60
+ this.db.transaction(() => {
61
+ for (const table of ['threads', 'messages', 'checkpoints', 'tool_executions', 'artifacts', 'events']) {
62
+ this.db.prepare(`DELETE FROM ${table} WHERE thread_id = ?`).run(threadId);
63
+ }
64
+ })();
65
+ }
66
+ // --- messages (projection) ---
67
+ appendMessage(workspaceId, threadId, m, seq) {
68
+ const row = { id: m.id ?? crypto.randomUUID(), thread_id: threadId, workspace_id: workspaceId, role: m.role, content: m.content, agent_id: m.agent_id ?? null, timestamp: m.timestamp ?? new Date().toISOString(), seq };
69
+ this.db.prepare('INSERT OR IGNORE INTO messages (id, thread_id, workspace_id, role, content, agent_id, timestamp, seq) VALUES (@id, @thread_id, @workspace_id, @role, @content, @agent_id, @timestamp, @seq)').run(row);
70
+ }
71
+ listMessages(threadId) {
72
+ return this.db.prepare('SELECT * FROM messages WHERE thread_id = ? ORDER BY seq ASC').all(threadId);
73
+ }
74
+ countMessages(threadId) {
75
+ const row = this.db.prepare('SELECT COUNT(*) as cnt FROM messages WHERE thread_id = ?').get(threadId);
76
+ return row?.cnt ?? 0;
77
+ }
78
+ // --- checkpoints (projection) ---
79
+ getCheckpoint(threadId) {
80
+ const row = this.db.prepare('SELECT * FROM checkpoints WHERE thread_id = ?').get(threadId);
81
+ if (!row)
82
+ return null;
83
+ return {
84
+ thread_id: row.thread_id,
85
+ workspace_id: row.workspace_id,
86
+ checkpoint: parse(row.checkpoint, null),
87
+ metadata: parse(row.metadata, {}),
88
+ channel_versions: parse(row.channel_versions, {}),
89
+ pending_writes: parse(row.pending_writes, []),
90
+ version: row.version,
91
+ updated_at: row.updated_at,
92
+ };
93
+ }
94
+ upsertCheckpoint(workspaceId, threadId, input) {
95
+ const existing = this.getCheckpoint(threadId);
96
+ const version = (existing?.version ?? 0) + 1;
97
+ const writes = [...(existing?.pending_writes ?? []), ...(input.writes ?? input.pendingWrites ?? [])];
98
+ const checkpoint = input.checkpoint ?? existing?.checkpoint ?? null;
99
+ const metadata = input.metadata ?? existing?.metadata ?? {};
100
+ const channelVersions = input.newVersions ?? existing?.channel_versions ?? {};
101
+ const updatedAt = new Date().toISOString();
102
+ this.db.prepare('INSERT INTO checkpoints (thread_id, workspace_id, checkpoint, metadata, channel_versions, pending_writes, version, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?) ON CONFLICT (thread_id) DO UPDATE SET checkpoint = excluded.checkpoint, metadata = excluded.metadata, channel_versions = excluded.channel_versions, pending_writes = excluded.pending_writes, version = excluded.version, updated_at = excluded.updated_at')
103
+ .run(threadId, workspaceId, JSON.stringify(checkpoint), JSON.stringify(metadata), JSON.stringify(channelVersions), JSON.stringify(writes), version, updatedAt);
104
+ return { thread_id: threadId, workspace_id: workspaceId, checkpoint, metadata, channel_versions: channelVersions, pending_writes: writes, version, updated_at: updatedAt };
105
+ }
106
+ // --- tool executions (projection) ---
107
+ addToolExecution(exec) {
108
+ this.db.prepare('INSERT INTO tool_executions (id, thread_id, workspace_id, tool_id, name, status, input, output, created_at) VALUES (@id, @thread_id, @workspace_id, @tool_id, @name, @status, @input, @output, @created_at)')
109
+ .run({ ...exec, input: JSON.stringify(exec.input ?? null), output: JSON.stringify(exec.output ?? null) });
110
+ }
111
+ // --- artifacts (projection) ---
112
+ addArtifact(a) {
113
+ this.db.prepare('INSERT INTO artifacts (id, thread_id, workspace_id, type, name, content, created_at) VALUES (@id, @thread_id, @workspace_id, @type, @name, @content, @created_at)')
114
+ .run({ ...a, content: JSON.stringify(a.content ?? null) });
115
+ }
116
+ listArtifacts(threadId) {
117
+ return this.db.prepare('SELECT * FROM artifacts WHERE thread_id = ? ORDER BY created_at ASC').all(threadId)
118
+ .map((row) => ({ ...row, content: parse(row.content, null) }));
119
+ }
120
+ // --- events (append-only log) ---
121
+ appendEvent(workspaceId, threadId, type, payload) {
122
+ this.db.prepare('INSERT INTO events (thread_id, workspace_id, type, payload, created_at) VALUES (?, ?, ?, ?, ?)')
123
+ .run(threadId, workspaceId, type, JSON.stringify(payload ?? {}), new Date().toISOString());
124
+ }
125
+ listEvents(threadId) {
126
+ return this.db.prepare('SELECT * FROM events WHERE thread_id = ? ORDER BY id ASC').all(threadId)
127
+ .map((row) => ({ ...row, payload: parse(row.payload, null) }));
128
+ }
129
+ // --- agents (registry) ---
130
+ upsertAgent(a) {
131
+ this.db.prepare('INSERT INTO agents (agent_id, name, description, tools, mcp_servers, auto_approve, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?) ON CONFLICT (agent_id) DO UPDATE SET name = excluded.name, description = excluded.description, tools = excluded.tools, mcp_servers = excluded.mcp_servers, auto_approve = excluded.auto_approve, updated_at = excluded.updated_at')
132
+ .run(a.agent_id, a.name, a.description, JSON.stringify(a.tools), JSON.stringify(a.mcp_servers), JSON.stringify(a.auto_approve), a.created_at, a.updated_at);
133
+ return a;
134
+ }
135
+ listAgents() {
136
+ return this.db.prepare('SELECT * FROM agents ORDER BY name ASC').all().map((row) => ({
137
+ agent_id: row.agent_id,
138
+ name: row.name,
139
+ description: row.description,
140
+ tools: parse(row.tools, []),
141
+ mcp_servers: parse(row.mcp_servers, []),
142
+ auto_approve: parse(row.auto_approve, []),
143
+ created_at: row.created_at,
144
+ updated_at: row.updated_at,
145
+ }));
146
+ }
147
+ }
148
+ //# sourceMappingURL=KnowledgeDb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KnowledgeDb.js","sourceRoot":"","sources":["../../src/knowledge/KnowledgeDb.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAK/C,SAAS,KAAK,CAAI,GAA8B,EAAE,QAAW;IAC3D,IAAI,CAAC,GAAG;QAAE,OAAO,QAAQ,CAAC;IAC1B,IAAI,CAAC;QAAC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,QAAQ,CAAC;IAAC,CAAC;AACjE,CAAC;AAED,SAAS,MAAM,CAAC,MAAe;IAC7B,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAAC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAChE,IAAI,CAAC;QAAC,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,4BAA4B,CAAC,CAAC;IAC3E,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,OAAO,WAAW;IACd,EAAE,CAAoB;IAE9B,YAAY,MAAe,EAAE,QAA4B;QACvD,IAAI,CAAC,EAAE,GAAG,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,cAAc;QACnB,OAAO,IAAI,WAAW,CAAC,SAAS,EAAE,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9D,CAAC;IAEO,OAAO,KAAW,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAE3D,KAAK,KAAW,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAElC,+BAA+B;IAC/B,YAAY,CAAC,CAAS;QACpB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,yLAAyL,CAAC;aACvM,GAAG,CAAC,CAAuC,CAAC,CAAC;IAClD,CAAC;IAED,WAAW,CAAC,WAAmB;QAC7B,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,uEAAuE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAwB,CAAC;IAC1I,CAAC;IAED,SAAS,CAAC,QAAgB;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAoB,CAAC;QAC1G,OAAO,GAAG,CAAC,CAAC,CAAE,GAAyB,CAAC,CAAC,CAAC,IAAI,CAAC;IACjD,CAAC;IAED,YAAY,CAAC,QAAgB;QAC3B,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YACvB,KAAK,MAAM,KAAK,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC;gBACrG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,eAAe,KAAK,sBAAsB,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IAED,gCAAgC;IAChC,aAAa,CAAC,WAAmB,EAAE,QAAgB,EAAE,CAAe,EAAE,GAAW;QAC/E,MAAM,GAAG,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC;QACzN,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,6LAA6L,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1N,CAAC;IAED,YAAY,CAAC,QAAgB;QAC3B,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,6DAA6D,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAyB,CAAC;IAC9H,CAAC;IAED,aAAa,CAAC,QAAgB;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,0DAA0D,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAQ,CAAC;QAC7G,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,mCAAmC;IACnC,aAAa,CAAC,QAAgB;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAoB,CAAC;QAC9G,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,OAAO;YACL,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC;YACvC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC;YACjC,gBAAgB,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,CAAC;YACjD,cAAc,EAAE,KAAK,CAAiB,GAAG,CAAC,cAAc,EAAE,EAAE,CAAC;YAC7D,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,UAAU,EAAE,GAAG,CAAC,UAAU;SAC3B,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,WAAmB,EAAE,QAAgB,EAAE,KAA0B;QAChF,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,CAAC,QAAQ,EAAE,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC;QACrG,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,QAAQ,EAAE,UAAU,IAAI,IAAI,CAAC;QACpE,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,QAAQ,EAAE,QAAQ,IAAI,EAAE,CAAC;QAC5D,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,IAAI,QAAQ,EAAE,gBAAgB,IAAI,EAAE,CAAC;QAC9E,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,2ZAA2Z,CAAC;aACza,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACjK,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;IAC7K,CAAC;IAED,uCAAuC;IACvC,gBAAgB,CAAC,IAAmB;QAClC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,6MAA6M,CAAC;aAC3N,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9G,CAAC;IAED,iCAAiC;IACjC,WAAW,CAAC,CAAW;QACrB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,mKAAmK,CAAC;aACjL,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,aAAa,CAAC,QAAgB;QAC5B,OAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,qEAAqE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAsB;aAC9H,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAA0B,CAAC;IAC5F,CAAC;IAED,mCAAmC;IACnC,WAAW,CAAC,WAAmB,EAAE,QAAgB,EAAE,IAAY,EAAE,OAAgB;QAC/E,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,gGAAgG,CAAC;aAC9G,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,UAAU,CAAC,QAAgB;QACzB,OAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,0DAA0D,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAsB;aACnH,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAgC,CAAC;IAClG,CAAC;IAED,4BAA4B;IAC5B,WAAW,CAAC,CAAQ;QAClB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,8WAA8W,CAAC;aAC5X,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;QAC9J,OAAO,CAAC,CAAC;IACX,CAAC;IAED,UAAU;QACR,OAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC,GAAG,EAAuB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACzG,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,KAAK,EAAE,KAAK,CAAW,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC;YACrC,WAAW,EAAE,KAAK,CAAW,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;YACjD,YAAY,EAAE,KAAK,CAAW,GAAG,CAAC,YAAY,EAAE,EAAE,CAAC;YACnD,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,UAAU,EAAE,GAAG,CAAC,UAAU;SAC3B,CAAC,CAAuB,CAAC;IAC5B,CAAC;CACF"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * SA4E-85 — Knowledge Module.
3
+ * Wraps KnowledgeService for the ModuleRegistry lifecycle. Exposes the service
4
+ * to route factories via getService(). DB path follows backend convention:
5
+ * <workspace>/.code-intel/knowledge.db (matching memory module data dir).
6
+ */
7
+ import type { IModule, ModuleStatus } from '../types/module.js';
8
+ import type { ToolHandler, ToolDefinition } from '../types/tool.js';
9
+ import type { Logger } from 'pino';
10
+ import { KnowledgeService } from './KnowledgeService.js';
11
+ export interface KnowledgeModuleOptions {
12
+ dbPath?: string;
13
+ defaultWorkspace?: string;
14
+ service?: KnowledgeService;
15
+ }
16
+ export declare class KnowledgeModule implements IModule {
17
+ private readonly options;
18
+ readonly name = "knowledge";
19
+ private _status;
20
+ private logger;
21
+ private db;
22
+ private service;
23
+ constructor(logger: Logger, options?: KnowledgeModuleOptions);
24
+ get status(): ModuleStatus;
25
+ getService(): KnowledgeService;
26
+ initialize(): Promise<void>;
27
+ shutdown(): Promise<void>;
28
+ getToolHandlers(): Map<string, ToolHandler>;
29
+ getToolDefinitions(): ToolDefinition[];
30
+ private resolveDefaultDbPath;
31
+ }