@dotcontext/cli 0.8.1 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (417) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +234 -135
  3. package/dist/cli/index.d.ts +15 -0
  4. package/dist/cli/index.d.ts.map +1 -0
  5. package/dist/cli/index.js +27 -0
  6. package/dist/cli/index.js.map +1 -0
  7. package/dist/generators/documentation/codebaseMapGenerator.d.ts +29 -46
  8. package/dist/generators/documentation/codebaseMapGenerator.d.ts.map +1 -1
  9. package/dist/generators/documentation/codebaseMapGenerator.js +148 -244
  10. package/dist/generators/documentation/codebaseMapGenerator.js.map +1 -1
  11. package/dist/generators/documentation/documentationGenerator.d.ts.map +1 -1
  12. package/dist/generators/documentation/documentationGenerator.js +13 -8
  13. package/dist/generators/documentation/documentationGenerator.js.map +1 -1
  14. package/dist/generators/documentation/index.d.ts +1 -1
  15. package/dist/generators/documentation/index.d.ts.map +1 -1
  16. package/dist/generators/shared/structures/documentation/architecture.d.ts.map +1 -1
  17. package/dist/generators/shared/structures/documentation/architecture.js +9 -9
  18. package/dist/generators/shared/structures/documentation/architecture.js.map +1 -1
  19. package/dist/generators/shared/structures/documentation/dataFlow.js +2 -2
  20. package/dist/generators/shared/structures/documentation/dataFlow.js.map +1 -1
  21. package/dist/generators/shared/structures/documentation/glossary.js +2 -2
  22. package/dist/generators/shared/structures/documentation/glossary.js.map +1 -1
  23. package/dist/generators/shared/structures/documentation/projectOverview.d.ts.map +1 -1
  24. package/dist/generators/shared/structures/documentation/projectOverview.js +10 -11
  25. package/dist/generators/shared/structures/documentation/projectOverview.js.map +1 -1
  26. package/dist/generators/shared/structures/skills/factory.d.ts.map +1 -1
  27. package/dist/generators/shared/structures/skills/factory.js +19 -15
  28. package/dist/generators/shared/structures/skills/factory.js.map +1 -1
  29. package/dist/generators/skills/skillGenerator.d.ts +2 -1
  30. package/dist/generators/skills/skillGenerator.d.ts.map +1 -1
  31. package/dist/generators/skills/skillGenerator.js +47 -6
  32. package/dist/generators/skills/skillGenerator.js.map +1 -1
  33. package/dist/generators/skills/templates/indexTemplate.d.ts.map +1 -1
  34. package/dist/generators/skills/templates/indexTemplate.js +22 -15
  35. package/dist/generators/skills/templates/indexTemplate.js.map +1 -1
  36. package/dist/harness/index.d.ts +11 -0
  37. package/dist/harness/index.d.ts.map +1 -0
  38. package/dist/harness/index.js +33 -0
  39. package/dist/harness/index.js.map +1 -0
  40. package/dist/index.js +365 -339
  41. package/dist/index.js.map +1 -1
  42. package/dist/mcp/bin.d.ts +19 -0
  43. package/dist/mcp/bin.d.ts.map +1 -0
  44. package/dist/mcp/bin.js +189 -0
  45. package/dist/mcp/bin.js.map +1 -0
  46. package/dist/mcp/index.d.ts +12 -0
  47. package/dist/mcp/index.d.ts.map +1 -0
  48. package/dist/mcp/index.js +28 -0
  49. package/dist/mcp/index.js.map +1 -0
  50. package/dist/services/autoFill/autoFillService.d.ts.map +1 -1
  51. package/dist/services/autoFill/autoFillService.js +7 -6
  52. package/dist/services/autoFill/autoFillService.js.map +1 -1
  53. package/dist/services/cli/index.d.ts +8 -0
  54. package/dist/services/cli/index.d.ts.map +1 -0
  55. package/dist/services/cli/index.js +17 -0
  56. package/dist/services/cli/index.js.map +1 -0
  57. package/dist/services/cli/mcpInstallService.d.ts +57 -0
  58. package/dist/services/cli/mcpInstallService.d.ts.map +1 -0
  59. package/dist/services/cli/mcpInstallService.js +607 -0
  60. package/dist/services/cli/mcpInstallService.js.map +1 -0
  61. package/dist/services/cli/stateDetector.d.ts +55 -0
  62. package/dist/services/cli/stateDetector.d.ts.map +1 -0
  63. package/dist/services/cli/stateDetector.js +191 -0
  64. package/dist/services/cli/stateDetector.js.map +1 -0
  65. package/dist/services/export/contextExportService.js +3 -3
  66. package/dist/services/export/contextExportService.js.map +1 -1
  67. package/dist/services/export/exportRulesService.d.ts +1 -0
  68. package/dist/services/export/exportRulesService.d.ts.map +1 -1
  69. package/dist/services/export/exportRulesService.js +20 -8
  70. package/dist/services/export/exportRulesService.js.map +1 -1
  71. package/dist/services/export/skillExportService.d.ts.map +1 -1
  72. package/dist/services/export/skillExportService.js +4 -1
  73. package/dist/services/export/skillExportService.js.map +1 -1
  74. package/dist/services/harness/agentsService.d.ts +31 -0
  75. package/dist/services/harness/agentsService.d.ts.map +1 -0
  76. package/dist/services/harness/agentsService.js +135 -0
  77. package/dist/services/harness/agentsService.js.map +1 -0
  78. package/dist/services/harness/contextService.d.ts +167 -0
  79. package/dist/services/harness/contextService.d.ts.map +1 -0
  80. package/dist/services/harness/contextService.js +403 -0
  81. package/dist/services/harness/contextService.js.map +1 -0
  82. package/dist/services/harness/contextTools.d.ts +95 -0
  83. package/dist/services/harness/contextTools.d.ts.map +1 -0
  84. package/dist/services/harness/contextTools.js +990 -0
  85. package/dist/services/harness/contextTools.js.map +1 -0
  86. package/dist/services/harness/datasetService.d.ts +63 -0
  87. package/dist/services/harness/datasetService.d.ts.map +1 -0
  88. package/dist/services/harness/datasetService.js +261 -0
  89. package/dist/services/harness/datasetService.js.map +1 -0
  90. package/dist/services/harness/executionService.d.ts +74 -0
  91. package/dist/services/harness/executionService.d.ts.map +1 -0
  92. package/dist/services/harness/executionService.js +213 -0
  93. package/dist/services/harness/executionService.js.map +1 -0
  94. package/dist/services/harness/index.d.ts +21 -0
  95. package/dist/services/harness/index.d.ts.map +1 -0
  96. package/dist/services/harness/index.js +52 -0
  97. package/dist/services/harness/index.js.map +1 -0
  98. package/dist/services/harness/plansService.d.ts +45 -0
  99. package/dist/services/harness/plansService.d.ts.map +1 -0
  100. package/dist/services/harness/plansService.js +251 -0
  101. package/dist/services/harness/plansService.js.map +1 -0
  102. package/dist/services/harness/policyService.d.ts +116 -0
  103. package/dist/services/harness/policyService.d.ts.map +1 -0
  104. package/dist/services/harness/policyService.js +510 -0
  105. package/dist/services/harness/policyService.js.map +1 -0
  106. package/dist/services/harness/replayService.d.ts +63 -0
  107. package/dist/services/harness/replayService.d.ts.map +1 -0
  108. package/dist/services/harness/replayService.js +242 -0
  109. package/dist/services/harness/replayService.js.map +1 -0
  110. package/dist/services/harness/runtimeStateService.d.ts +120 -0
  111. package/dist/services/harness/runtimeStateService.d.ts.map +1 -0
  112. package/dist/services/harness/runtimeStateService.js +316 -0
  113. package/dist/services/harness/runtimeStateService.js.map +1 -0
  114. package/dist/services/harness/sensorCatalogService.d.ts +50 -0
  115. package/dist/services/harness/sensorCatalogService.d.ts.map +1 -0
  116. package/dist/services/harness/sensorCatalogService.js +308 -0
  117. package/dist/services/harness/sensorCatalogService.js.map +1 -0
  118. package/dist/services/harness/sensorsService.d.ts +64 -0
  119. package/dist/services/harness/sensorsService.d.ts.map +1 -0
  120. package/dist/services/harness/sensorsService.js +88 -0
  121. package/dist/services/harness/sensorsService.js.map +1 -0
  122. package/dist/services/harness/skillsService.d.ts +31 -0
  123. package/dist/services/harness/skillsService.d.ts.map +1 -0
  124. package/dist/services/harness/skillsService.js +296 -0
  125. package/dist/services/harness/skillsService.js.map +1 -0
  126. package/dist/services/harness/taskContractsService.d.ts +88 -0
  127. package/dist/services/harness/taskContractsService.d.ts.map +1 -0
  128. package/dist/services/harness/taskContractsService.js +210 -0
  129. package/dist/services/harness/taskContractsService.js.map +1 -0
  130. package/dist/services/harness/workflowStateService.d.ts +51 -0
  131. package/dist/services/harness/workflowStateService.d.ts.map +1 -0
  132. package/dist/services/harness/workflowStateService.js +215 -0
  133. package/dist/services/harness/workflowStateService.js.map +1 -0
  134. package/dist/services/import/agentsDetector.d.ts.map +1 -1
  135. package/dist/services/import/agentsDetector.js +14 -8
  136. package/dist/services/import/agentsDetector.js.map +1 -1
  137. package/dist/services/import/importAgentsService.d.ts +2 -2
  138. package/dist/services/import/importAgentsService.d.ts.map +1 -1
  139. package/dist/services/import/importAgentsService.js +8 -1
  140. package/dist/services/import/importAgentsService.js.map +1 -1
  141. package/dist/services/import/importRulesService.d.ts +2 -2
  142. package/dist/services/import/importRulesService.d.ts.map +1 -1
  143. package/dist/services/import/importRulesService.js +8 -1
  144. package/dist/services/import/importRulesService.js.map +1 -1
  145. package/dist/services/import/presets.js +2 -2
  146. package/dist/services/import/presets.js.map +1 -1
  147. package/dist/services/import/rulesDetector.d.ts.map +1 -1
  148. package/dist/services/import/rulesDetector.js +16 -1
  149. package/dist/services/import/rulesDetector.js.map +1 -1
  150. package/dist/services/import/types.d.ts +1 -1
  151. package/dist/services/import/types.d.ts.map +1 -1
  152. package/dist/services/mcp/actionLogger.d.ts +2 -1
  153. package/dist/services/mcp/actionLogger.d.ts.map +1 -1
  154. package/dist/services/mcp/actionLogger.js +76 -15
  155. package/dist/services/mcp/actionLogger.js.map +1 -1
  156. package/dist/services/mcp/gateway/agent.d.ts.map +1 -1
  157. package/dist/services/mcp/gateway/agent.js +15 -104
  158. package/dist/services/mcp/gateway/agent.js.map +1 -1
  159. package/dist/services/mcp/gateway/context.d.ts.map +1 -1
  160. package/dist/services/mcp/gateway/context.js +60 -172
  161. package/dist/services/mcp/gateway/context.js.map +1 -1
  162. package/dist/services/mcp/gateway/explore.js +6 -6
  163. package/dist/services/mcp/gateway/explore.js.map +1 -1
  164. package/dist/services/mcp/gateway/harness.d.ts +7 -0
  165. package/dist/services/mcp/gateway/harness.d.ts.map +1 -0
  166. package/dist/services/mcp/gateway/harness.js +337 -0
  167. package/dist/services/mcp/gateway/harness.js.map +1 -0
  168. package/dist/services/mcp/gateway/index.d.ts +3 -2
  169. package/dist/services/mcp/gateway/index.d.ts.map +1 -1
  170. package/dist/services/mcp/gateway/index.js +4 -2
  171. package/dist/services/mcp/gateway/index.js.map +1 -1
  172. package/dist/services/mcp/gateway/metrics.d.ts.map +1 -1
  173. package/dist/services/mcp/gateway/metrics.js +8 -8
  174. package/dist/services/mcp/gateway/metrics.js.map +1 -1
  175. package/dist/services/mcp/gateway/plan.d.ts.map +1 -1
  176. package/dist/services/mcp/gateway/plan.js +23 -211
  177. package/dist/services/mcp/gateway/plan.js.map +1 -1
  178. package/dist/services/mcp/gateway/shared.d.ts +1 -32
  179. package/dist/services/mcp/gateway/shared.d.ts.map +1 -1
  180. package/dist/services/mcp/gateway/shared.js +4 -30
  181. package/dist/services/mcp/gateway/shared.js.map +1 -1
  182. package/dist/services/mcp/gateway/skill.d.ts.map +1 -1
  183. package/dist/services/mcp/gateway/skill.js +14 -281
  184. package/dist/services/mcp/gateway/skill.js.map +1 -1
  185. package/dist/services/mcp/gateway/types.d.ts +74 -3
  186. package/dist/services/mcp/gateway/types.d.ts.map +1 -1
  187. package/dist/services/mcp/gateway/workflowAdvance.d.ts.map +1 -1
  188. package/dist/services/mcp/gateway/workflowAdvance.js +37 -9
  189. package/dist/services/mcp/gateway/workflowAdvance.js.map +1 -1
  190. package/dist/services/mcp/gateway/workflowInit.d.ts.map +1 -1
  191. package/dist/services/mcp/gateway/workflowInit.js +8 -2
  192. package/dist/services/mcp/gateway/workflowInit.js.map +1 -1
  193. package/dist/services/mcp/gateway/workflowManage.d.ts +17 -1
  194. package/dist/services/mcp/gateway/workflowManage.d.ts.map +1 -1
  195. package/dist/services/mcp/gateway/workflowManage.js +155 -10
  196. package/dist/services/mcp/gateway/workflowManage.js.map +1 -1
  197. package/dist/services/mcp/gateway/workflowStatus.d.ts.map +1 -1
  198. package/dist/services/mcp/gateway/workflowStatus.js +5 -3
  199. package/dist/services/mcp/gateway/workflowStatus.js.map +1 -1
  200. package/dist/services/mcp/gatewayTools.d.ts +1 -1
  201. package/dist/services/mcp/gatewayTools.d.ts.map +1 -1
  202. package/dist/services/mcp/gatewayTools.js +2 -1
  203. package/dist/services/mcp/gatewayTools.js.map +1 -1
  204. package/dist/services/mcp/index.d.ts +10 -4
  205. package/dist/services/mcp/index.d.ts.map +1 -1
  206. package/dist/services/mcp/index.js +9 -3
  207. package/dist/services/mcp/index.js.map +1 -1
  208. package/dist/services/mcp/mcpInstallService.d.ts +4 -52
  209. package/dist/services/mcp/mcpInstallService.d.ts.map +1 -1
  210. package/dist/services/mcp/mcpInstallService.js +5 -596
  211. package/dist/services/mcp/mcpInstallService.js.map +1 -1
  212. package/dist/services/mcp/mcpServer.d.ts +5 -6
  213. package/dist/services/mcp/mcpServer.d.ts.map +1 -1
  214. package/dist/services/mcp/mcpServer.js +220 -28
  215. package/dist/services/mcp/mcpServer.js.map +1 -1
  216. package/dist/services/qa/patternInferer.d.ts +2 -31
  217. package/dist/services/qa/patternInferer.d.ts.map +1 -1
  218. package/dist/services/qa/patternInferer.js +4 -353
  219. package/dist/services/qa/patternInferer.js.map +1 -1
  220. package/dist/services/qa/qaService.d.ts +6 -10
  221. package/dist/services/qa/qaService.d.ts.map +1 -1
  222. package/dist/services/qa/qaService.js +17 -53
  223. package/dist/services/qa/qaService.js.map +1 -1
  224. package/dist/services/reverseSync/importSkillsService.d.ts.map +1 -1
  225. package/dist/services/reverseSync/importSkillsService.js +4 -1
  226. package/dist/services/reverseSync/importSkillsService.js.map +1 -1
  227. package/dist/services/reverseSync/reverseQuickSyncService.d.ts.map +1 -1
  228. package/dist/services/reverseSync/reverseQuickSyncService.js +10 -6
  229. package/dist/services/reverseSync/reverseQuickSyncService.js.map +1 -1
  230. package/dist/services/reverseSync/skillsDetector.js +2 -2
  231. package/dist/services/reverseSync/skillsDetector.js.map +1 -1
  232. package/dist/services/reverseSync/toolDetector.d.ts.map +1 -1
  233. package/dist/services/reverseSync/toolDetector.js +3 -0
  234. package/dist/services/reverseSync/toolDetector.js.map +1 -1
  235. package/dist/services/semantic/index.d.ts +1 -0
  236. package/dist/services/semantic/index.d.ts.map +1 -1
  237. package/dist/services/semantic/index.js +3 -1
  238. package/dist/services/semantic/index.js.map +1 -1
  239. package/dist/services/semantic/semanticSnapshotService.d.ts +86 -0
  240. package/dist/services/semantic/semanticSnapshotService.d.ts.map +1 -0
  241. package/dist/services/semantic/semanticSnapshotService.js +573 -0
  242. package/dist/services/semantic/semanticSnapshotService.js.map +1 -0
  243. package/dist/services/shared/contentTypeRegistry.d.ts.map +1 -1
  244. package/dist/services/shared/contentTypeRegistry.js +9 -0
  245. package/dist/services/shared/contentTypeRegistry.js.map +1 -1
  246. package/dist/services/shared/contextLayout.d.ts +18 -0
  247. package/dist/services/shared/contextLayout.d.ts.map +1 -0
  248. package/dist/services/shared/contextLayout.js +139 -0
  249. package/dist/services/shared/contextLayout.js.map +1 -0
  250. package/dist/services/shared/executionContext.d.ts +38 -0
  251. package/dist/services/shared/executionContext.d.ts.map +1 -0
  252. package/dist/services/shared/executionContext.js +39 -0
  253. package/dist/services/shared/executionContext.js.map +1 -0
  254. package/dist/services/shared/index.d.ts +2 -0
  255. package/dist/services/shared/index.d.ts.map +1 -1
  256. package/dist/services/shared/index.js +11 -1
  257. package/dist/services/shared/index.js.map +1 -1
  258. package/dist/services/shared/toolRegistry.d.ts +6 -0
  259. package/dist/services/shared/toolRegistry.d.ts.map +1 -1
  260. package/dist/services/shared/toolRegistry.js +34 -20
  261. package/dist/services/shared/toolRegistry.js.map +1 -1
  262. package/dist/services/stack/scaffoldFilter.d.ts +3 -3
  263. package/dist/services/state/stateDetector.d.ts +4 -49
  264. package/dist/services/state/stateDetector.d.ts.map +1 -1
  265. package/dist/services/state/stateDetector.js +9 -182
  266. package/dist/services/state/stateDetector.js.map +1 -1
  267. package/dist/services/sync/index.d.ts +1 -1
  268. package/dist/services/sync/index.d.ts.map +1 -1
  269. package/dist/services/sync/index.js.map +1 -1
  270. package/dist/services/sync/markdownReferenceHandler.d.ts.map +1 -1
  271. package/dist/services/sync/markdownReferenceHandler.js +7 -2
  272. package/dist/services/sync/markdownReferenceHandler.js.map +1 -1
  273. package/dist/services/sync/presets.d.ts.map +1 -1
  274. package/dist/services/sync/presets.js +1 -0
  275. package/dist/services/sync/presets.js.map +1 -1
  276. package/dist/services/sync/symlinkHandler.d.ts.map +1 -1
  277. package/dist/services/sync/symlinkHandler.js +7 -2
  278. package/dist/services/sync/symlinkHandler.js.map +1 -1
  279. package/dist/services/sync/syncService.d.ts +2 -2
  280. package/dist/services/sync/syncService.d.ts.map +1 -1
  281. package/dist/services/sync/syncService.js +17 -3
  282. package/dist/services/sync/syncService.js.map +1 -1
  283. package/dist/services/sync/types.d.ts +9 -1
  284. package/dist/services/sync/types.d.ts.map +1 -1
  285. package/dist/services/workflow/index.d.ts +1 -1
  286. package/dist/services/workflow/index.d.ts.map +1 -1
  287. package/dist/services/workflow/index.js +2 -1
  288. package/dist/services/workflow/index.js.map +1 -1
  289. package/dist/services/workflow/workflowService.d.ts +68 -0
  290. package/dist/services/workflow/workflowService.d.ts.map +1 -1
  291. package/dist/services/workflow/workflowService.js +416 -1
  292. package/dist/services/workflow/workflowService.js.map +1 -1
  293. package/dist/utils/gitignoreManager.d.ts +8 -0
  294. package/dist/utils/gitignoreManager.d.ts.map +1 -1
  295. package/dist/utils/gitignoreManager.js +40 -0
  296. package/dist/utils/gitignoreManager.js.map +1 -1
  297. package/dist/utils/i18n.d.ts +1 -1
  298. package/dist/utils/i18n.js +2 -2
  299. package/dist/utils/i18n.js.map +1 -1
  300. package/dist/utils/processShutdown.d.ts +20 -0
  301. package/dist/utils/processShutdown.d.ts.map +1 -0
  302. package/dist/utils/processShutdown.js +47 -0
  303. package/dist/utils/processShutdown.js.map +1 -0
  304. package/dist/utils/prompts/index.d.ts +1 -1
  305. package/dist/utils/prompts/index.d.ts.map +1 -1
  306. package/dist/utils/prompts/index.js +1 -3
  307. package/dist/utils/prompts/index.js.map +1 -1
  308. package/dist/utils/prompts/smartDefaults.d.ts +0 -9
  309. package/dist/utils/prompts/smartDefaults.d.ts.map +1 -1
  310. package/dist/utils/prompts/smartDefaults.js +0 -23
  311. package/dist/utils/prompts/smartDefaults.js.map +1 -1
  312. package/dist/utils/prompts/types.d.ts +0 -11
  313. package/dist/utils/prompts/types.d.ts.map +1 -1
  314. package/dist/utils/versionChecker.d.ts.map +1 -1
  315. package/dist/utils/versionChecker.js +17 -8
  316. package/dist/utils/versionChecker.js.map +1 -1
  317. package/dist/workflow/index.d.ts +1 -1
  318. package/dist/workflow/index.d.ts.map +1 -1
  319. package/dist/workflow/index.js +6 -1
  320. package/dist/workflow/index.js.map +1 -1
  321. package/dist/workflow/orchestrator.d.ts.map +1 -1
  322. package/dist/workflow/orchestrator.js +3 -14
  323. package/dist/workflow/orchestrator.js.map +1 -1
  324. package/dist/workflow/plans/planLinker.d.ts +13 -0
  325. package/dist/workflow/plans/planLinker.d.ts.map +1 -1
  326. package/dist/workflow/plans/planLinker.js +77 -2
  327. package/dist/workflow/plans/planLinker.js.map +1 -1
  328. package/dist/workflow/plans/types.d.ts +6 -0
  329. package/dist/workflow/plans/types.d.ts.map +1 -1
  330. package/dist/workflow/skills/frontmatter.d.ts +9 -0
  331. package/dist/workflow/skills/frontmatter.d.ts.map +1 -1
  332. package/dist/workflow/skills/frontmatter.js +16 -0
  333. package/dist/workflow/skills/frontmatter.js.map +1 -1
  334. package/dist/workflow/skills/index.d.ts +1 -1
  335. package/dist/workflow/skills/index.d.ts.map +1 -1
  336. package/dist/workflow/skills/index.js +3 -1
  337. package/dist/workflow/skills/index.js.map +1 -1
  338. package/dist/workflow/skills/skillRegistry.d.ts.map +1 -1
  339. package/dist/workflow/skills/skillRegistry.js +4 -1
  340. package/dist/workflow/skills/skillRegistry.js.map +1 -1
  341. package/dist/workflow/skills/skillTemplates.d.ts.map +1 -1
  342. package/dist/workflow/skills/skillTemplates.js +69 -30
  343. package/dist/workflow/skills/skillTemplates.js.map +1 -1
  344. package/dist/workflow/status/statusManager.d.ts +8 -3
  345. package/dist/workflow/status/statusManager.d.ts.map +1 -1
  346. package/dist/workflow/status/statusManager.js +60 -21
  347. package/dist/workflow/status/statusManager.js.map +1 -1
  348. package/dist/workflow/types.d.ts +1 -1
  349. package/package.json +19 -11
  350. package/dist/services/ai/aiSdkClient.d.ts +0 -67
  351. package/dist/services/ai/aiSdkClient.d.ts.map +0 -1
  352. package/dist/services/ai/aiSdkClient.js +0 -143
  353. package/dist/services/ai/aiSdkClient.js.map +0 -1
  354. package/dist/services/ai/index.d.ts +0 -5
  355. package/dist/services/ai/index.d.ts.map +0 -1
  356. package/dist/services/ai/index.js +0 -40
  357. package/dist/services/ai/index.js.map +0 -1
  358. package/dist/services/ai/providerFactory.d.ts +0 -35
  359. package/dist/services/ai/providerFactory.d.ts.map +0 -1
  360. package/dist/services/ai/providerFactory.js +0 -107
  361. package/dist/services/ai/providerFactory.js.map +0 -1
  362. package/dist/services/ai/schemas.d.ts +0 -557
  363. package/dist/services/ai/schemas.d.ts.map +0 -1
  364. package/dist/services/ai/schemas.js +0 -357
  365. package/dist/services/ai/schemas.js.map +0 -1
  366. package/dist/services/ai/toolRegistry.d.ts +0 -27
  367. package/dist/services/ai/toolRegistry.d.ts.map +0 -1
  368. package/dist/services/ai/toolRegistry.js +0 -151
  369. package/dist/services/ai/toolRegistry.js.map +0 -1
  370. package/dist/services/ai/tools/analyzeSymbolsTool.d.ts +0 -33
  371. package/dist/services/ai/tools/analyzeSymbolsTool.d.ts.map +0 -1
  372. package/dist/services/ai/tools/analyzeSymbolsTool.js +0 -57
  373. package/dist/services/ai/tools/analyzeSymbolsTool.js.map +0 -1
  374. package/dist/services/ai/tools/checkScaffoldingTool.d.ts +0 -18
  375. package/dist/services/ai/tools/checkScaffoldingTool.d.ts.map +0 -1
  376. package/dist/services/ai/tools/checkScaffoldingTool.js +0 -89
  377. package/dist/services/ai/tools/checkScaffoldingTool.js.map +0 -1
  378. package/dist/services/ai/tools/fillScaffoldingTool.d.ts +0 -124
  379. package/dist/services/ai/tools/fillScaffoldingTool.d.ts.map +0 -1
  380. package/dist/services/ai/tools/fillScaffoldingTool.js +0 -397
  381. package/dist/services/ai/tools/fillScaffoldingTool.js.map +0 -1
  382. package/dist/services/ai/tools/getCodebaseMapTool.d.ts +0 -17
  383. package/dist/services/ai/tools/getCodebaseMapTool.d.ts.map +0 -1
  384. package/dist/services/ai/tools/getCodebaseMapTool.js +0 -122
  385. package/dist/services/ai/tools/getCodebaseMapTool.js.map +0 -1
  386. package/dist/services/ai/tools/getFileStructureTool.d.ts +0 -29
  387. package/dist/services/ai/tools/getFileStructureTool.d.ts.map +0 -1
  388. package/dist/services/ai/tools/getFileStructureTool.js +0 -48
  389. package/dist/services/ai/tools/getFileStructureTool.js.map +0 -1
  390. package/dist/services/ai/tools/index.d.ts +0 -21
  391. package/dist/services/ai/tools/index.d.ts.map +0 -1
  392. package/dist/services/ai/tools/index.js +0 -75
  393. package/dist/services/ai/tools/index.js.map +0 -1
  394. package/dist/services/ai/tools/initializeContextTool.d.ts +0 -135
  395. package/dist/services/ai/tools/initializeContextTool.d.ts.map +0 -1
  396. package/dist/services/ai/tools/initializeContextTool.js +0 -447
  397. package/dist/services/ai/tools/initializeContextTool.js.map +0 -1
  398. package/dist/services/ai/tools/listFilesTool.d.ts +0 -18
  399. package/dist/services/ai/tools/listFilesTool.d.ts.map +0 -1
  400. package/dist/services/ai/tools/listFilesTool.js +0 -34
  401. package/dist/services/ai/tools/listFilesTool.js.map +0 -1
  402. package/dist/services/ai/tools/readFileTool.d.ts +0 -17
  403. package/dist/services/ai/tools/readFileTool.d.ts.map +0 -1
  404. package/dist/services/ai/tools/readFileTool.js +0 -63
  405. package/dist/services/ai/tools/readFileTool.js.map +0 -1
  406. package/dist/services/ai/tools/scaffoldPlanTool.d.ts +0 -41
  407. package/dist/services/ai/tools/scaffoldPlanTool.d.ts.map +0 -1
  408. package/dist/services/ai/tools/scaffoldPlanTool.js +0 -183
  409. package/dist/services/ai/tools/scaffoldPlanTool.js.map +0 -1
  410. package/dist/services/ai/tools/searchCodeTool.d.ts +0 -25
  411. package/dist/services/ai/tools/searchCodeTool.d.ts.map +0 -1
  412. package/dist/services/ai/tools/searchCodeTool.js +0 -96
  413. package/dist/services/ai/tools/searchCodeTool.js.map +0 -1
  414. package/dist/services/baseLLMClient.d.ts +0 -12
  415. package/dist/services/baseLLMClient.d.ts.map +0 -1
  416. package/dist/services/baseLLMClient.js +0 -80
  417. package/dist/services/baseLLMClient.js.map +0 -1
@@ -2,364 +2,15 @@
2
2
  /**
3
3
  * Pattern Inferer
4
4
  *
5
- * Infers functional patterns (auth, database, API, etc.) from codebase-map.json
6
- * without re-analyzing the codebase. This is an optimization that uses
7
- * pre-computed symbol data to detect capabilities.
5
+ * Backward-compatible adapter for persisted codebase summaries.
6
+ * Functional patterns are now stored directly in the summary artifact.
8
7
  */
9
8
  Object.defineProperty(exports, "__esModule", { value: true });
10
9
  exports.PatternInferer = void 0;
11
- /**
12
- * Pattern Inferer - derives functional patterns from codebase-map.json
13
- */
10
+ const codebaseMapGenerator_1 = require("../../generators/documentation/codebaseMapGenerator");
14
11
  class PatternInferer {
15
- /**
16
- * Infer functional patterns from a pre-computed codebase map
17
- */
18
12
  inferFromMap(map) {
19
- const patterns = [];
20
- const allSymbols = this.getAllSymbols(map);
21
- // Authentication pattern detection
22
- const authPattern = this.detectAuthPattern(allSymbols, map);
23
- if (authPattern)
24
- patterns.push(authPattern);
25
- // Database pattern detection
26
- const dbPattern = this.detectDatabasePattern(allSymbols, map);
27
- if (dbPattern)
28
- patterns.push(dbPattern);
29
- // API pattern detection
30
- const apiPattern = this.detectApiPattern(allSymbols, map);
31
- if (apiPattern)
32
- patterns.push(apiPattern);
33
- // Cache pattern detection
34
- const cachePattern = this.detectCachePattern(allSymbols);
35
- if (cachePattern)
36
- patterns.push(cachePattern);
37
- // Queue/messaging pattern detection
38
- const queuePattern = this.detectQueuePattern(allSymbols);
39
- if (queuePattern)
40
- patterns.push(queuePattern);
41
- // WebSocket pattern detection
42
- const wsPattern = this.detectWebSocketPattern(allSymbols);
43
- if (wsPattern)
44
- patterns.push(wsPattern);
45
- // Logging pattern detection
46
- const loggingPattern = this.detectLoggingPattern(allSymbols);
47
- if (loggingPattern)
48
- patterns.push(loggingPattern);
49
- // Validation pattern detection
50
- const validationPattern = this.detectValidationPattern(allSymbols);
51
- if (validationPattern)
52
- patterns.push(validationPattern);
53
- // Error handling pattern detection
54
- const errorPattern = this.detectErrorHandlingPattern(allSymbols);
55
- if (errorPattern)
56
- patterns.push(errorPattern);
57
- // Testing pattern detection
58
- const testingPattern = this.detectTestingPattern(allSymbols, map);
59
- if (testingPattern)
60
- patterns.push(testingPattern);
61
- return {
62
- hasAuthPattern: patterns.some((p) => p.type === 'auth'),
63
- hasDatabasePattern: patterns.some((p) => p.type === 'database'),
64
- hasApiPattern: patterns.some((p) => p.type === 'api'),
65
- hasCachePattern: patterns.some((p) => p.type === 'cache'),
66
- hasQueuePattern: patterns.some((p) => p.type === 'queue'),
67
- hasWebSocketPattern: patterns.some((p) => p.type === 'websocket'),
68
- hasLoggingPattern: patterns.some((p) => p.type === 'logging'),
69
- hasValidationPattern: patterns.some((p) => p.type === 'validation'),
70
- hasErrorHandlingPattern: patterns.some((p) => p.type === 'error-handling'),
71
- hasTestingPattern: patterns.some((p) => p.type === 'testing'),
72
- patterns,
73
- };
74
- }
75
- /**
76
- * Get all symbols from the map as a flat array
77
- */
78
- getAllSymbols(map) {
79
- return [
80
- ...map.symbols.classes,
81
- ...map.symbols.interfaces,
82
- ...map.symbols.functions,
83
- ...map.symbols.types,
84
- ...map.symbols.enums,
85
- ];
86
- }
87
- /**
88
- * Find symbols matching any of the given patterns
89
- */
90
- findSymbolsMatching(symbols, patterns) {
91
- return symbols.filter((s) => patterns.some((p) => p.test(s.name) || (s.file && p.test(s.file))));
92
- }
93
- /**
94
- * Create pattern indicators from matched symbols
95
- */
96
- createIndicators(matches, reasonPrefix) {
97
- return matches.slice(0, 10).map((s) => ({
98
- file: s.file,
99
- symbol: s.name,
100
- line: s.line,
101
- reason: `${reasonPrefix}: ${s.name}`,
102
- }));
103
- }
104
- // Pattern detection methods
105
- detectAuthPattern(symbols, map) {
106
- const indicators = [];
107
- // Check for auth-related symbols
108
- const authPatterns = [
109
- /^(auth|login|logout|verify|jwt|token|session|password|credential|oauth)/i,
110
- /Auth$/i,
111
- /Authentication$/i,
112
- /Authenticator$/i,
113
- ];
114
- const authSymbols = this.findSymbolsMatching(symbols, authPatterns);
115
- indicators.push(...this.createIndicators(authSymbols, 'Auth-related symbol'));
116
- // Check for auth-related file paths
117
- const authFilePaths = symbols.filter((s) => /\/(auth|login|session|middleware)\//i.test(s.file));
118
- for (const s of authFilePaths.slice(0, 5)) {
119
- indicators.push({
120
- file: s.file,
121
- reason: 'Auth-related file path',
122
- });
123
- }
124
- // Check architecture layers for auth indicators
125
- if (map.architecture.layers.some((l) => /auth/i.test(l.name))) {
126
- indicators.push({
127
- file: '',
128
- reason: 'Auth-related architecture layer detected',
129
- });
130
- }
131
- if (indicators.length === 0)
132
- return null;
133
- return {
134
- type: 'auth',
135
- confidence: Math.min(1, indicators.length * 0.15),
136
- indicators: indicators.slice(0, 10),
137
- description: 'Authentication and authorization functionality',
138
- };
139
- }
140
- detectDatabasePattern(symbols, map) {
141
- const indicators = [];
142
- // Check for database-related symbols
143
- const dbPatterns = [
144
- /^(repository|model|entity|schema|migration|query|database|db)/i,
145
- /Repository$/i,
146
- /Model$/i,
147
- /Entity$/i,
148
- /Schema$/i,
149
- ];
150
- const dbSymbols = this.findSymbolsMatching(symbols, dbPatterns);
151
- indicators.push(...this.createIndicators(dbSymbols, 'Database-related symbol'));
152
- // Check for database-related file paths
153
- const dbFilePaths = symbols.filter((s) => /\/(models?|repositories|entities|migrations?|schemas?|database)\//i.test(s.file));
154
- for (const s of dbFilePaths.slice(0, 5)) {
155
- indicators.push({
156
- file: s.file,
157
- reason: 'Database-related file path',
158
- });
159
- }
160
- // Check architecture layers for data layer
161
- const hasDataLayer = map.architecture.layers.some((l) => /repository|model|data/i.test(l.name));
162
- if (hasDataLayer) {
163
- indicators.push({
164
- file: '',
165
- reason: 'Data layer detected in architecture',
166
- });
167
- }
168
- if (indicators.length === 0)
169
- return null;
170
- return {
171
- type: 'database',
172
- confidence: Math.min(1, indicators.length * 0.15),
173
- indicators: indicators.slice(0, 10),
174
- description: 'Database access and ORM functionality',
175
- };
176
- }
177
- detectApiPattern(symbols, map) {
178
- const indicators = [];
179
- // Check for API-related symbols
180
- const apiPatterns = [
181
- /^(controller|handler|router|route|endpoint|api|rest|graphql|resolver)/i,
182
- /Controller$/i,
183
- /Handler$/i,
184
- /Router$/i,
185
- /Resolver$/i,
186
- ];
187
- const apiSymbols = this.findSymbolsMatching(symbols, apiPatterns);
188
- indicators.push(...this.createIndicators(apiSymbols, 'API-related symbol'));
189
- // Check for API-related file paths
190
- const apiFilePaths = symbols.filter((s) => /\/(routes?|controllers?|handlers?|api|endpoints?|resolvers?)\//i.test(s.file));
191
- for (const s of apiFilePaths.slice(0, 5)) {
192
- indicators.push({
193
- file: s.file,
194
- reason: 'API-related file path',
195
- });
196
- }
197
- // Check architecture layers for controller layer
198
- const hasControllerLayer = map.architecture.layers.some((l) => /controller|handler|route/i.test(l.name));
199
- if (hasControllerLayer) {
200
- indicators.push({
201
- file: '',
202
- reason: 'Controller layer detected in architecture',
203
- });
204
- }
205
- // Check for API frameworks in stack
206
- const apiFrameworks = ['express', 'fastify', 'nestjs', 'koa', 'hapi', 'graphql'];
207
- if (map.stack.frameworks.some((f) => apiFrameworks.includes(f.toLowerCase()))) {
208
- indicators.push({
209
- file: '',
210
- reason: `API framework detected: ${map.stack.frameworks.filter((f) => apiFrameworks.includes(f.toLowerCase())).join(', ')}`,
211
- });
212
- }
213
- if (indicators.length === 0)
214
- return null;
215
- return {
216
- type: 'api',
217
- confidence: Math.min(1, indicators.length * 0.15),
218
- indicators: indicators.slice(0, 10),
219
- description: 'API endpoints and routing',
220
- };
221
- }
222
- detectCachePattern(symbols) {
223
- const indicators = [];
224
- // Check for cache-related symbols
225
- const cachePatterns = [/^(cache|redis|memcache|lru|ttl)/i, /Cache$/i];
226
- const cacheSymbols = this.findSymbolsMatching(symbols, cachePatterns);
227
- indicators.push(...this.createIndicators(cacheSymbols, 'Cache-related symbol'));
228
- if (indicators.length === 0)
229
- return null;
230
- return {
231
- type: 'cache',
232
- confidence: Math.min(1, indicators.length * 0.2),
233
- indicators: indicators.slice(0, 10),
234
- description: 'Caching and data memoization',
235
- };
236
- }
237
- detectQueuePattern(symbols) {
238
- const indicators = [];
239
- // Check for queue-related symbols
240
- const queuePatterns = [
241
- /^(queue|worker|job|task|consumer|producer|message)/i,
242
- /Queue$/i,
243
- /Worker$/i,
244
- /Job$/i,
245
- ];
246
- const queueSymbols = this.findSymbolsMatching(symbols, queuePatterns);
247
- indicators.push(...this.createIndicators(queueSymbols, 'Queue-related symbol'));
248
- if (indicators.length === 0)
249
- return null;
250
- return {
251
- type: 'queue',
252
- confidence: Math.min(1, indicators.length * 0.2),
253
- indicators: indicators.slice(0, 10),
254
- description: 'Message queues and background jobs',
255
- };
256
- }
257
- detectWebSocketPattern(symbols) {
258
- const indicators = [];
259
- // Check for WebSocket-related symbols
260
- const wsPatterns = [
261
- /^(websocket|socket|ws|realtime|broadcast|subscribe)/i,
262
- /Socket$/i,
263
- /WebSocket$/i,
264
- ];
265
- const wsSymbols = this.findSymbolsMatching(symbols, wsPatterns);
266
- indicators.push(...this.createIndicators(wsSymbols, 'WebSocket-related symbol'));
267
- if (indicators.length === 0)
268
- return null;
269
- return {
270
- type: 'websocket',
271
- confidence: Math.min(1, indicators.length * 0.2),
272
- indicators: indicators.slice(0, 10),
273
- description: 'Real-time WebSocket communication',
274
- };
275
- }
276
- detectLoggingPattern(symbols) {
277
- const indicators = [];
278
- // Check for logging-related symbols
279
- const logPatterns = [/^(logger|log|logging|telemetry|metrics)/i, /Logger$/i];
280
- const logSymbols = this.findSymbolsMatching(symbols, logPatterns);
281
- indicators.push(...this.createIndicators(logSymbols, 'Logging-related symbol'));
282
- if (indicators.length === 0)
283
- return null;
284
- return {
285
- type: 'logging',
286
- confidence: Math.min(1, indicators.length * 0.2),
287
- indicators: indicators.slice(0, 10),
288
- description: 'Logging and observability',
289
- };
290
- }
291
- detectValidationPattern(symbols) {
292
- const indicators = [];
293
- // Check for validation-related symbols
294
- const validPatterns = [
295
- /^(valid|schema|sanitize|parse|check|assert)/i,
296
- /Validator$/i,
297
- /Schema$/i,
298
- ];
299
- const validSymbols = this.findSymbolsMatching(symbols, validPatterns);
300
- indicators.push(...this.createIndicators(validSymbols, 'Validation-related symbol'));
301
- if (indicators.length === 0)
302
- return null;
303
- return {
304
- type: 'validation',
305
- confidence: Math.min(1, indicators.length * 0.2),
306
- indicators: indicators.slice(0, 10),
307
- description: 'Input validation and schema enforcement',
308
- };
309
- }
310
- detectErrorHandlingPattern(symbols) {
311
- const indicators = [];
312
- // Check for error-related symbols
313
- const errorPatterns = [
314
- /^(error|exception|handler|catch|fallback)/i,
315
- /Error$/i,
316
- /Exception$/i,
317
- ];
318
- const errorSymbols = this.findSymbolsMatching(symbols, errorPatterns);
319
- indicators.push(...this.createIndicators(errorSymbols, 'Error handling symbol'));
320
- // Check for error-related file paths
321
- const errorFilePaths = symbols.filter((s) => /\/(errors?|exceptions?)\//i.test(s.file));
322
- for (const s of errorFilePaths.slice(0, 5)) {
323
- indicators.push({
324
- file: s.file,
325
- reason: 'Error handling file path',
326
- });
327
- }
328
- if (indicators.length === 0)
329
- return null;
330
- return {
331
- type: 'error-handling',
332
- confidence: Math.min(1, indicators.length * 0.15),
333
- indicators: indicators.slice(0, 10),
334
- description: 'Error handling and exception management',
335
- };
336
- }
337
- detectTestingPattern(symbols, map) {
338
- const indicators = [];
339
- // Check for test frameworks in stack
340
- if (map.stack.testFrameworks.length > 0) {
341
- indicators.push({
342
- file: '',
343
- reason: `Test frameworks: ${map.stack.testFrameworks.join(', ')}`,
344
- });
345
- }
346
- // Check for test-related file paths
347
- const testFilePaths = symbols.filter((s) => /\.(test|spec)\.(ts|tsx|js|jsx)$/.test(s.file) ||
348
- /\/__tests__\//.test(s.file));
349
- for (const s of testFilePaths.slice(0, 5)) {
350
- indicators.push({
351
- file: s.file,
352
- reason: 'Test file',
353
- });
354
- }
355
- if (indicators.length === 0)
356
- return null;
357
- return {
358
- type: 'testing',
359
- confidence: Math.min(1, indicators.length * 0.15),
360
- indicators: indicators.slice(0, 10),
361
- description: 'Testing infrastructure and test files',
362
- };
13
+ return map.functionalPatterns ?? (0, codebaseMapGenerator_1.createEmptyFunctionalPatterns)();
363
14
  }
364
15
  }
365
16
  exports.PatternInferer = PatternInferer;
@@ -1 +1 @@
1
- {"version":3,"file":"patternInferer.js","sourceRoot":"","sources":["../../../src/services/qa/patternInferer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"patternInferer.js","sourceRoot":"","sources":["../../../src/services/qa/patternInferer.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAIH,8FAAoG;AAEpG,MAAa,cAAc;IACzB,YAAY,CAAC,GAAgB;QAC3B,OAAO,GAAG,CAAC,kBAAkB,IAAI,IAAA,oDAA6B,GAAE,CAAC;IACnE,CAAC;CACF;AAJD,wCAIC"}
@@ -4,8 +4,8 @@
4
4
  * Generates and manages Q&A content for the codebase.
5
5
  * Pre-answers common questions to reduce token usage during sessions.
6
6
  *
7
- * OPTIMIZATION: Uses codebase-map.json when available to avoid re-analyzing
8
- * the codebase. This provides ~10x faster Q&A generation when the map exists.
7
+ * OPTIMIZATION: Uses a persisted semantic snapshot when available to avoid
8
+ * re-analyzing the codebase.
9
9
  */
10
10
  import { type TopicDetectionResult } from './topicDetector';
11
11
  /**
@@ -42,15 +42,15 @@ export declare class QAService {
42
42
  private analyzer;
43
43
  private stackDetector;
44
44
  private topicDetector;
45
- private patternInferer;
45
+ private snapshotService;
46
46
  constructor(options?: {
47
47
  useLSP?: boolean;
48
48
  });
49
49
  /**
50
50
  * Generate Q&A from codebase analysis
51
51
  *
52
- * OPTIMIZATION: Uses codebase-map.json when available to avoid re-analyzing.
53
- * If the map doesn't exist, falls back to full analysis.
52
+ * OPTIMIZATION: Uses a persisted semantic snapshot when available.
53
+ * If the snapshot doesn't exist or is stale, falls back to full analysis.
54
54
  */
55
55
  generateFromCodebase(repoPath: string): Promise<QAGenerationResult>;
56
56
  /**
@@ -92,11 +92,7 @@ export declare class QAService {
92
92
  private parseQAEntry;
93
93
  private calculateRelevance;
94
94
  /**
95
- * Load codebase-map.json if it exists
96
- */
97
- private loadCodebaseMap;
98
- /**
99
- * Convert codebase-map stack section to StackInfo format
95
+ * Convert persisted summary stack section to StackInfo format
100
96
  */
101
97
  private convertMapStackToStackInfo;
102
98
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"qaService.d.ts","sourceRoot":"","sources":["../../../src/services/qa/qaService.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,EAA+B,KAAK,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAKzF;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,OAAO,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,EAAE,oBAAoB,CAAC;CACtC;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,cAAc,CAAiB;gBAE3B,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE;IAO1C;;;;;OAKG;IACG,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAuDzE;;OAEG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IA0CxE;;OAEG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IA2BlD;;OAEG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAexE;;OAEG;YACW,kBAAkB;IAsGhC,OAAO,CAAC,4BAA4B;YA+EtB,8BAA8B;IA+C5C,OAAO,CAAC,yBAAyB;IAqBjC,OAAO,CAAC,0BAA0B;YAqBpB,qBAAqB;YAiDrB,wBAAwB;IA0BtC,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,sBAAsB;YAkBhB,0BAA0B;IAuBxC,OAAO,CAAC,qBAAqB;IA4B7B,OAAO,CAAC,2BAA2B;IAkBnC,OAAO,CAAC,qBAAqB;IAkB7B,OAAO,CAAC,sBAAsB;IAkB9B,OAAO,CAAC,4BAA4B;IAkBpC,OAAO,CAAC,wBAAwB;IAwBhC,OAAO,CAAC,eAAe;YAST,iBAAiB;YA+BjB,aAAa;IAmB3B,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,gBAAgB;IA2BxB,OAAO,CAAC,YAAY;IAgDpB,OAAO,CAAC,kBAAkB;IAkD1B;;OAEG;YACW,eAAe;IAe7B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAmClC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGhC"}
1
+ {"version":3,"file":"qaService.d.ts","sourceRoot":"","sources":["../../../src/services/qa/qaService.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,OAAO,EAA+B,KAAK,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAIzF;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,OAAO,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,EAAE,oBAAoB,CAAC;CACtC;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,eAAe,CAA0B;gBAErC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE;IAO1C;;;;;OAKG;IACG,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAmDzE;;OAEG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IA0CxE;;OAEG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IA2BlD;;OAEG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAexE;;OAEG;YACW,kBAAkB;IAsGhC,OAAO,CAAC,4BAA4B;YA+EtB,8BAA8B;IA+C5C,OAAO,CAAC,yBAAyB;IAqBjC,OAAO,CAAC,0BAA0B;YAqBpB,qBAAqB;YAiDrB,wBAAwB;IA0BtC,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,sBAAsB;YAkBhB,0BAA0B;IAuBxC,OAAO,CAAC,qBAAqB;IA4B7B,OAAO,CAAC,2BAA2B;IAkBnC,OAAO,CAAC,qBAAqB;IAkB7B,OAAO,CAAC,sBAAsB;IAkB9B,OAAO,CAAC,4BAA4B;IAkBpC,OAAO,CAAC,wBAAwB;IAwBhC,OAAO,CAAC,eAAe;YAST,iBAAiB;YA+BjB,aAAa;IAmB3B,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,gBAAgB;IA2BxB,OAAO,CAAC,YAAY;IAgDpB,OAAO,CAAC,kBAAkB;IAkD1B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAmBlC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGhC"}
@@ -5,8 +5,8 @@
5
5
  * Generates and manages Q&A content for the codebase.
6
6
  * Pre-answers common questions to reduce token usage during sessions.
7
7
  *
8
- * OPTIMIZATION: Uses codebase-map.json when available to avoid re-analyzing
9
- * the codebase. This provides ~10x faster Q&A generation when the map exists.
8
+ * OPTIMIZATION: Uses a persisted semantic snapshot when available to avoid
9
+ * re-analyzing the codebase.
10
10
  */
11
11
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
12
  if (k2 === undefined) k2 = k;
@@ -46,9 +46,9 @@ exports.QAService = void 0;
46
46
  const fs = __importStar(require("fs-extra"));
47
47
  const path = __importStar(require("path"));
48
48
  const codebaseAnalyzer_1 = require("../semantic/codebaseAnalyzer");
49
+ const semanticSnapshotService_1 = require("../semantic/semanticSnapshotService");
49
50
  const stackDetector_1 = require("../stack/stackDetector");
50
51
  const topicDetector_1 = require("./topicDetector");
51
- const patternInferer_1 = require("./patternInferer");
52
52
  /**
53
53
  * Q&A Service for generating and searching Q&A content
54
54
  */
@@ -57,27 +57,24 @@ class QAService {
57
57
  this.analyzer = new codebaseAnalyzer_1.CodebaseAnalyzer(options);
58
58
  this.stackDetector = new stackDetector_1.StackDetector();
59
59
  this.topicDetector = new topicDetector_1.TopicDetector();
60
- this.patternInferer = new patternInferer_1.PatternInferer();
60
+ this.snapshotService = new semanticSnapshotService_1.SemanticSnapshotService();
61
61
  }
62
62
  /**
63
63
  * Generate Q&A from codebase analysis
64
64
  *
65
- * OPTIMIZATION: Uses codebase-map.json when available to avoid re-analyzing.
66
- * If the map doesn't exist, falls back to full analysis.
65
+ * OPTIMIZATION: Uses a persisted semantic snapshot when available.
66
+ * If the snapshot doesn't exist or is stale, falls back to full analysis.
67
67
  */
68
68
  async generateFromCodebase(repoPath) {
69
69
  const absolutePath = path.resolve(repoPath);
70
- // Try to use pre-computed codebase map for faster generation
71
- const codebaseMap = await this.loadCodebaseMap(absolutePath);
72
70
  let stack;
73
71
  let patterns;
74
- if (codebaseMap) {
75
- // Use pre-computed data from codebase-map.json (fast path)
76
- stack = this.convertMapStackToStackInfo(codebaseMap);
77
- patterns = this.patternInferer.inferFromMap(codebaseMap);
72
+ try {
73
+ const snapshot = await this.snapshotService.ensureFreshSummary(absolutePath);
74
+ stack = this.convertMapStackToStackInfo(snapshot.summary);
75
+ patterns = snapshot.summary.functionalPatterns;
78
76
  }
79
- else {
80
- // Fall back to full analysis (slow path)
77
+ catch {
81
78
  stack = await this.stackDetector.detect(absolutePath);
82
79
  patterns = await this.analyzer.detectFunctionalPatterns(absolutePath);
83
80
  }
@@ -810,41 +807,9 @@ class QAService {
810
807
  };
811
808
  }
812
809
  /**
813
- * Load codebase-map.json if it exists
814
- */
815
- async loadCodebaseMap(repoPath) {
816
- const mapPath = path.join(repoPath, '.context', 'docs', 'codebase-map.json');
817
- try {
818
- if (await fs.pathExists(mapPath)) {
819
- const content = await fs.readFile(mapPath, 'utf-8');
820
- return JSON.parse(content);
821
- }
822
- }
823
- catch {
824
- // If loading fails, return null to fall back to full analysis
825
- }
826
- return null;
827
- }
828
- /**
829
- * Convert codebase-map stack section to StackInfo format
810
+ * Convert persisted summary stack section to StackInfo format
830
811
  */
831
812
  convertMapStackToStackInfo(map) {
832
- // Infer CLI-related fields from symbols and architecture
833
- const hasBinField = map.architecture.entryPoints.some((ep) => ep.startsWith('bin/'));
834
- const cliLibraries = [];
835
- // Check for CLI frameworks in the symbols
836
- const allSymbols = [
837
- ...map.symbols.classes,
838
- ...map.symbols.functions,
839
- ];
840
- if (allSymbols.some((s) => /commander|yargs|oclif|inquirer/i.test(s.name))) {
841
- if (/commander/i.test(JSON.stringify(allSymbols)))
842
- cliLibraries.push('commander');
843
- if (/yargs/i.test(JSON.stringify(allSymbols)))
844
- cliLibraries.push('yargs');
845
- if (/oclif/i.test(JSON.stringify(allSymbols)))
846
- cliLibraries.push('oclif');
847
- }
848
813
  return {
849
814
  primaryLanguage: map.stack.primaryLanguage,
850
815
  languages: map.stack.languages,
@@ -855,12 +820,11 @@ class QAService {
855
820
  isMonorepo: map.stack.isMonorepo,
856
821
  hasDocker: map.stack.hasDocker,
857
822
  hasCI: map.stack.hasCI,
858
- files: [], // Files are not stored in codebase-map, but not needed for Q&A generation
859
- // Inferred fields
860
- hasBinField,
861
- cliLibraries,
862
- hasMainExport: map.publicAPI.length > 0,
863
- hasTypesField: map.symbols.types.length > 0,
823
+ files: [],
824
+ hasBinField: map.stack.hasBinField,
825
+ cliLibraries: map.stack.cliLibraries || [],
826
+ hasMainExport: map.stack.hasMainExport,
827
+ hasTypesField: map.stack.hasTypesField,
864
828
  };
865
829
  }
866
830
  /**