codehere 0.1.1

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 (991) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +378 -0
  3. package/dist/agents/base.d.ts +107 -0
  4. package/dist/agents/base.d.ts.map +1 -0
  5. package/dist/agents/base.js +101 -0
  6. package/dist/agents/base.js.map +1 -0
  7. package/dist/agents/orchestrator-model-driven.d.ts +41 -0
  8. package/dist/agents/orchestrator-model-driven.d.ts.map +1 -0
  9. package/dist/agents/orchestrator-model-driven.js +141 -0
  10. package/dist/agents/orchestrator-model-driven.js.map +1 -0
  11. package/dist/agents/react-orchestrator-agent.d.ts +15 -0
  12. package/dist/agents/react-orchestrator-agent.d.ts.map +1 -0
  13. package/dist/agents/react-orchestrator-agent.js +54 -0
  14. package/dist/agents/react-orchestrator-agent.js.map +1 -0
  15. package/dist/application/agents/execution-agent.d.ts +79 -0
  16. package/dist/application/agents/execution-agent.d.ts.map +1 -0
  17. package/dist/application/agents/execution-agent.js +534 -0
  18. package/dist/application/agents/execution-agent.js.map +1 -0
  19. package/dist/application/agents/multi-agent-orchestrator.d.ts +69 -0
  20. package/dist/application/agents/multi-agent-orchestrator.d.ts.map +1 -0
  21. package/dist/application/agents/multi-agent-orchestrator.js +296 -0
  22. package/dist/application/agents/multi-agent-orchestrator.js.map +1 -0
  23. package/dist/application/agents/planning-agent.d.ts +65 -0
  24. package/dist/application/agents/planning-agent.d.ts.map +1 -0
  25. package/dist/application/agents/planning-agent.js +553 -0
  26. package/dist/application/agents/planning-agent.js.map +1 -0
  27. package/dist/application/agents/validation-agent.d.ts +68 -0
  28. package/dist/application/agents/validation-agent.d.ts.map +1 -0
  29. package/dist/application/agents/validation-agent.js +317 -0
  30. package/dist/application/agents/validation-agent.js.map +1 -0
  31. package/dist/application/architectures/plan-and-act.d.ts +94 -0
  32. package/dist/application/architectures/plan-and-act.d.ts.map +1 -0
  33. package/dist/application/architectures/plan-and-act.js +242 -0
  34. package/dist/application/architectures/plan-and-act.js.map +1 -0
  35. package/dist/application/index.d.ts +12 -0
  36. package/dist/application/index.d.ts.map +1 -0
  37. package/dist/application/index.js +12 -0
  38. package/dist/application/index.js.map +1 -0
  39. package/dist/application/services/agent-factory.d.ts +9 -0
  40. package/dist/application/services/agent-factory.d.ts.map +1 -0
  41. package/dist/application/services/agent-factory.js +28 -0
  42. package/dist/application/services/agent-factory.js.map +1 -0
  43. package/dist/application/services/context-importer.d.ts +71 -0
  44. package/dist/application/services/context-importer.d.ts.map +1 -0
  45. package/dist/application/services/context-importer.js +436 -0
  46. package/dist/application/services/context-importer.js.map +1 -0
  47. package/dist/application/services/context-manager.d.ts +132 -0
  48. package/dist/application/services/context-manager.d.ts.map +1 -0
  49. package/dist/application/services/context-manager.js +369 -0
  50. package/dist/application/services/context-manager.js.map +1 -0
  51. package/dist/application/services/dependency-container.d.ts +187 -0
  52. package/dist/application/services/dependency-container.d.ts.map +1 -0
  53. package/dist/application/services/dependency-container.js +607 -0
  54. package/dist/application/services/dependency-container.js.map +1 -0
  55. package/dist/application/services/git-context-service.d.ts +30 -0
  56. package/dist/application/services/git-context-service.d.ts.map +1 -0
  57. package/dist/application/services/git-context-service.js +83 -0
  58. package/dist/application/services/git-context-service.js.map +1 -0
  59. package/dist/application/services/intelligent-router.d.ts +90 -0
  60. package/dist/application/services/intelligent-router.d.ts.map +1 -0
  61. package/dist/application/services/intelligent-router.js +942 -0
  62. package/dist/application/services/intelligent-router.js.map +1 -0
  63. package/dist/application/services/token-counting-service.d.ts +87 -0
  64. package/dist/application/services/token-counting-service.d.ts.map +1 -0
  65. package/dist/application/services/token-counting-service.js +196 -0
  66. package/dist/application/services/token-counting-service.js.map +1 -0
  67. package/dist/application/services/tool-executor-service.d.ts +14 -0
  68. package/dist/application/services/tool-executor-service.d.ts.map +1 -0
  69. package/dist/application/services/tool-executor-service.js +94 -0
  70. package/dist/application/services/tool-executor-service.js.map +1 -0
  71. package/dist/application/use-cases/ask-question-use-case.d.ts +67 -0
  72. package/dist/application/use-cases/ask-question-use-case.d.ts.map +1 -0
  73. package/dist/application/use-cases/ask-question-use-case.js +437 -0
  74. package/dist/application/use-cases/ask-question-use-case.js.map +1 -0
  75. package/dist/application/use-cases/edit-file-use-case.d.ts +92 -0
  76. package/dist/application/use-cases/edit-file-use-case.d.ts.map +1 -0
  77. package/dist/application/use-cases/edit-file-use-case.js +819 -0
  78. package/dist/application/use-cases/edit-file-use-case.js.map +1 -0
  79. package/dist/application/use-cases/explain-file-use-case.d.ts +21 -0
  80. package/dist/application/use-cases/explain-file-use-case.d.ts.map +1 -0
  81. package/dist/application/use-cases/explain-file-use-case.js +50 -0
  82. package/dist/application/use-cases/explain-file-use-case.js.map +1 -0
  83. package/dist/application/use-cases/index-codebase-use-case.d.ts +46 -0
  84. package/dist/application/use-cases/index-codebase-use-case.d.ts.map +1 -0
  85. package/dist/application/use-cases/index-codebase-use-case.js +113 -0
  86. package/dist/application/use-cases/index-codebase-use-case.js.map +1 -0
  87. package/dist/application/use-cases/planning-use-case.d.ts +46 -0
  88. package/dist/application/use-cases/planning-use-case.d.ts.map +1 -0
  89. package/dist/application/use-cases/planning-use-case.js +276 -0
  90. package/dist/application/use-cases/planning-use-case.js.map +1 -0
  91. package/dist/application/use-cases/react-orchestration-use-case.d.ts +51 -0
  92. package/dist/application/use-cases/react-orchestration-use-case.d.ts.map +1 -0
  93. package/dist/application/use-cases/react-orchestration-use-case.js +362 -0
  94. package/dist/application/use-cases/react-orchestration-use-case.js.map +1 -0
  95. package/dist/application/use-cases/reflexion-use-case.d.ts +24 -0
  96. package/dist/application/use-cases/reflexion-use-case.d.ts.map +1 -0
  97. package/dist/application/use-cases/reflexion-use-case.js +30 -0
  98. package/dist/application/use-cases/reflexion-use-case.js.map +1 -0
  99. package/dist/application/workflows/deterministic-workflows.d.ts +61 -0
  100. package/dist/application/workflows/deterministic-workflows.d.ts.map +1 -0
  101. package/dist/application/workflows/deterministic-workflows.js +189 -0
  102. package/dist/application/workflows/deterministic-workflows.js.map +1 -0
  103. package/dist/ast-parser.d 2.ts +55 -0
  104. package/dist/ast-parser.d.ts +55 -0
  105. package/dist/ast-parser.d.ts.map +1 -0
  106. package/dist/ast-parser.js +331 -0
  107. package/dist/ast-parser.js.map +1 -0
  108. package/dist/cache.d.ts +45 -0
  109. package/dist/cache.d.ts.map +1 -0
  110. package/dist/cache.js +180 -0
  111. package/dist/cache.js.map +1 -0
  112. package/dist/chat.d.ts +4 -0
  113. package/dist/chat.d.ts.map +1 -0
  114. package/dist/chat.js +175 -0
  115. package/dist/chat.js.map +1 -0
  116. package/dist/code-analysis 2.js +327 -0
  117. package/dist/code-analysis.d.ts +50 -0
  118. package/dist/code-analysis.d.ts.map +1 -0
  119. package/dist/code-analysis.js +327 -0
  120. package/dist/code-analysis.js.map +1 -0
  121. package/dist/context.d.ts +44 -0
  122. package/dist/context.d.ts 2.map +1 -0
  123. package/dist/context.d.ts.map +1 -0
  124. package/dist/context.js +187 -0
  125. package/dist/context.js.map +1 -0
  126. package/dist/docs.d.ts +21 -0
  127. package/dist/docs.d.ts.map +1 -0
  128. package/dist/docs.js +146 -0
  129. package/dist/docs.js.map +1 -0
  130. package/dist/domain/entities/code-chunk.d.ts +26 -0
  131. package/dist/domain/entities/code-chunk.d.ts.map +1 -0
  132. package/dist/domain/entities/code-chunk.js +6 -0
  133. package/dist/domain/entities/code-chunk.js.map +1 -0
  134. package/dist/domain/entities/conversation-context.d.ts +245 -0
  135. package/dist/domain/entities/conversation-context.d.ts.map +1 -0
  136. package/dist/domain/entities/conversation-context.js +50 -0
  137. package/dist/domain/entities/conversation-context.js.map +1 -0
  138. package/dist/domain/entities/decision.d.ts +37 -0
  139. package/dist/domain/entities/decision.d.ts.map +1 -0
  140. package/dist/domain/entities/decision.js +9 -0
  141. package/dist/domain/entities/decision.js.map +1 -0
  142. package/dist/domain/entities/edit.d.ts +35 -0
  143. package/dist/domain/entities/edit.d.ts.map +1 -0
  144. package/dist/domain/entities/edit.js +6 -0
  145. package/dist/domain/entities/edit.js.map +1 -0
  146. package/dist/domain/entities/knowledge-node.d.ts +83 -0
  147. package/dist/domain/entities/knowledge-node.d.ts.map +1 -0
  148. package/dist/domain/entities/knowledge-node.js +9 -0
  149. package/dist/domain/entities/knowledge-node.js.map +1 -0
  150. package/dist/domain/entities/knowledge-preservation.d.ts +42 -0
  151. package/dist/domain/entities/knowledge-preservation.d.ts.map +1 -0
  152. package/dist/domain/entities/knowledge-preservation.js +10 -0
  153. package/dist/domain/entities/knowledge-preservation.js.map +1 -0
  154. package/dist/domain/entities/memory.d.ts +36 -0
  155. package/dist/domain/entities/memory.d.ts.map +1 -0
  156. package/dist/domain/entities/memory.js +6 -0
  157. package/dist/domain/entities/memory.js.map +1 -0
  158. package/dist/domain/entities/pattern.d.ts +49 -0
  159. package/dist/domain/entities/pattern.d.ts.map +1 -0
  160. package/dist/domain/entities/pattern.js +7 -0
  161. package/dist/domain/entities/pattern.js.map +1 -0
  162. package/dist/domain/entities/plan.d.ts +42 -0
  163. package/dist/domain/entities/plan.d.ts.map +1 -0
  164. package/dist/domain/entities/plan.js +6 -0
  165. package/dist/domain/entities/plan.js.map +1 -0
  166. package/dist/domain/entities/query.d.ts +17 -0
  167. package/dist/domain/entities/query.d.ts.map +1 -0
  168. package/dist/domain/entities/query.js +6 -0
  169. package/dist/domain/entities/query.js.map +1 -0
  170. package/dist/domain/entities/task.d.ts +152 -0
  171. package/dist/domain/entities/task.d.ts.map +1 -0
  172. package/dist/domain/entities/task.js +61 -0
  173. package/dist/domain/entities/task.js.map +1 -0
  174. package/dist/domain/errors/embeddings-not-found-error.d.ts +9 -0
  175. package/dist/domain/errors/embeddings-not-found-error.d.ts.map +1 -0
  176. package/dist/domain/errors/embeddings-not-found-error.js +13 -0
  177. package/dist/domain/errors/embeddings-not-found-error.js.map +1 -0
  178. package/dist/domain/index.d.ts +16 -0
  179. package/dist/domain/index.d.ts.map +1 -0
  180. package/dist/domain/index.js +19 -0
  181. package/dist/domain/index.js.map +1 -0
  182. package/dist/domain/interfaces/ai-service.interface.d.ts +72 -0
  183. package/dist/domain/interfaces/ai-service.interface.d.ts.map +1 -0
  184. package/dist/domain/interfaces/ai-service.interface.js +6 -0
  185. package/dist/domain/interfaces/ai-service.interface.js.map +1 -0
  186. package/dist/domain/interfaces/code-analyzer.interface.d.ts +38 -0
  187. package/dist/domain/interfaces/code-analyzer.interface.d.ts.map +1 -0
  188. package/dist/domain/interfaces/code-analyzer.interface.js +6 -0
  189. package/dist/domain/interfaces/code-analyzer.interface.js.map +1 -0
  190. package/dist/domain/interfaces/context-repository.interface.d.ts +71 -0
  191. package/dist/domain/interfaces/context-repository.interface.d.ts.map +1 -0
  192. package/dist/domain/interfaces/context-repository.interface.js +10 -0
  193. package/dist/domain/interfaces/context-repository.interface.js.map +1 -0
  194. package/dist/domain/interfaces/decision-repository.interface.d.ts +51 -0
  195. package/dist/domain/interfaces/decision-repository.interface.d.ts.map +1 -0
  196. package/dist/domain/interfaces/decision-repository.interface.js +9 -0
  197. package/dist/domain/interfaces/decision-repository.interface.js.map +1 -0
  198. package/dist/domain/interfaces/embedding-repository.interface.d.ts +33 -0
  199. package/dist/domain/interfaces/embedding-repository.interface.d.ts.map +1 -0
  200. package/dist/domain/interfaces/embedding-repository.interface.js +6 -0
  201. package/dist/domain/interfaces/embedding-repository.interface.js.map +1 -0
  202. package/dist/domain/interfaces/knowledge-graph-repository.interface.d.ts +91 -0
  203. package/dist/domain/interfaces/knowledge-graph-repository.interface.d.ts.map +1 -0
  204. package/dist/domain/interfaces/knowledge-graph-repository.interface.js +9 -0
  205. package/dist/domain/interfaces/knowledge-graph-repository.interface.js.map +1 -0
  206. package/dist/domain/interfaces/knowledge-preservation-repository.interface.d.ts +50 -0
  207. package/dist/domain/interfaces/knowledge-preservation-repository.interface.d.ts.map +1 -0
  208. package/dist/domain/interfaces/knowledge-preservation-repository.interface.js +8 -0
  209. package/dist/domain/interfaces/knowledge-preservation-repository.interface.js.map +1 -0
  210. package/dist/domain/interfaces/memory-repository.interface.d.ts +49 -0
  211. package/dist/domain/interfaces/memory-repository.interface.d.ts.map +1 -0
  212. package/dist/domain/interfaces/memory-repository.interface.js +6 -0
  213. package/dist/domain/interfaces/memory-repository.interface.js.map +1 -0
  214. package/dist/domain/interfaces/pattern-repository.interface.d.ts +48 -0
  215. package/dist/domain/interfaces/pattern-repository.interface.d.ts.map +1 -0
  216. package/dist/domain/interfaces/pattern-repository.interface.js +6 -0
  217. package/dist/domain/interfaces/pattern-repository.interface.js.map +1 -0
  218. package/dist/domain/interfaces/verification-service.interface.d.ts +20 -0
  219. package/dist/domain/interfaces/verification-service.interface.d.ts.map +1 -0
  220. package/dist/domain/interfaces/verification-service.interface.js +6 -0
  221. package/dist/domain/interfaces/verification-service.interface.js.map +1 -0
  222. package/dist/domain/services/codebase-detector.d.ts +18 -0
  223. package/dist/domain/services/codebase-detector.d.ts.map +1 -0
  224. package/dist/domain/services/codebase-detector.js +91 -0
  225. package/dist/domain/services/codebase-detector.js.map +1 -0
  226. package/dist/domain/services/cross-team-pattern-sharing.d.ts +65 -0
  227. package/dist/domain/services/cross-team-pattern-sharing.d.ts.map +1 -0
  228. package/dist/domain/services/cross-team-pattern-sharing.js +125 -0
  229. package/dist/domain/services/cross-team-pattern-sharing.js.map +1 -0
  230. package/dist/domain/services/decision-recorder.d.ts +76 -0
  231. package/dist/domain/services/decision-recorder.d.ts.map +1 -0
  232. package/dist/domain/services/decision-recorder.js +223 -0
  233. package/dist/domain/services/decision-recorder.js.map +1 -0
  234. package/dist/domain/services/decision-retriever.d.ts +75 -0
  235. package/dist/domain/services/decision-retriever.d.ts.map +1 -0
  236. package/dist/domain/services/decision-retriever.js +133 -0
  237. package/dist/domain/services/decision-retriever.js.map +1 -0
  238. package/dist/domain/services/environment-mode-manager.d.ts +12 -0
  239. package/dist/domain/services/environment-mode-manager.d.ts.map +1 -0
  240. package/dist/domain/services/environment-mode-manager.js +22 -0
  241. package/dist/domain/services/environment-mode-manager.js.map +1 -0
  242. package/dist/domain/services/graded-memory-activation.d.ts +37 -0
  243. package/dist/domain/services/graded-memory-activation.d.ts.map +1 -0
  244. package/dist/domain/services/graded-memory-activation.js +69 -0
  245. package/dist/domain/services/graded-memory-activation.js.map +1 -0
  246. package/dist/domain/services/knowledge-access.d.ts +63 -0
  247. package/dist/domain/services/knowledge-access.d.ts.map +1 -0
  248. package/dist/domain/services/knowledge-access.js +132 -0
  249. package/dist/domain/services/knowledge-access.js.map +1 -0
  250. package/dist/domain/services/knowledge-extractor.d.ts +54 -0
  251. package/dist/domain/services/knowledge-extractor.d.ts.map +1 -0
  252. package/dist/domain/services/knowledge-extractor.js +247 -0
  253. package/dist/domain/services/knowledge-extractor.js.map +1 -0
  254. package/dist/domain/services/knowledge-graph-builder.d.ts +70 -0
  255. package/dist/domain/services/knowledge-graph-builder.d.ts.map +1 -0
  256. package/dist/domain/services/knowledge-graph-builder.js +268 -0
  257. package/dist/domain/services/knowledge-graph-builder.js.map +1 -0
  258. package/dist/domain/services/knowledge-graph-query.d.ts +69 -0
  259. package/dist/domain/services/knowledge-graph-query.d.ts.map +1 -0
  260. package/dist/domain/services/knowledge-graph-query.js +187 -0
  261. package/dist/domain/services/knowledge-graph-query.js.map +1 -0
  262. package/dist/domain/services/memory-retriever.d.ts +30 -0
  263. package/dist/domain/services/memory-retriever.d.ts.map +1 -0
  264. package/dist/domain/services/memory-retriever.js +82 -0
  265. package/dist/domain/services/memory-retriever.js.map +1 -0
  266. package/dist/domain/services/memory-synthesizer.d.ts +57 -0
  267. package/dist/domain/services/memory-synthesizer.d.ts.map +1 -0
  268. package/dist/domain/services/memory-synthesizer.js +91 -0
  269. package/dist/domain/services/memory-synthesizer.js.map +1 -0
  270. package/dist/domain/services/pattern-extractor.d.ts +108 -0
  271. package/dist/domain/services/pattern-extractor.d.ts.map +1 -0
  272. package/dist/domain/services/pattern-extractor.js +442 -0
  273. package/dist/domain/services/pattern-extractor.js.map +1 -0
  274. package/dist/domain/services/query-intent-classifier.d.ts +16 -0
  275. package/dist/domain/services/query-intent-classifier.d.ts.map +1 -0
  276. package/dist/domain/services/query-intent-classifier.js +173 -0
  277. package/dist/domain/services/query-intent-classifier.js.map +1 -0
  278. package/dist/domain/services/react-loop.d.ts +52 -0
  279. package/dist/domain/services/react-loop.d.ts.map +1 -0
  280. package/dist/domain/services/react-loop.js +186 -0
  281. package/dist/domain/services/react-loop.js.map +1 -0
  282. package/dist/domain/services/risk-tier-detector.d.ts +17 -0
  283. package/dist/domain/services/risk-tier-detector.d.ts.map +1 -0
  284. package/dist/domain/services/risk-tier-detector.js +78 -0
  285. package/dist/domain/services/risk-tier-detector.js.map +1 -0
  286. package/dist/edit.d.ts +26 -0
  287. package/dist/edit.d.ts 2.map +1 -0
  288. package/dist/edit.d.ts.map +1 -0
  289. package/dist/edit.js +319 -0
  290. package/dist/edit.js.map +1 -0
  291. package/dist/embed.d 2.ts +14 -0
  292. package/dist/embed.d.ts +14 -0
  293. package/dist/embed.d.ts.map +1 -0
  294. package/dist/embed.js +472 -0
  295. package/dist/embed.js.map +1 -0
  296. package/dist/error-handler.d 2.ts +77 -0
  297. package/dist/error-handler.d.ts +77 -0
  298. package/dist/error-handler.d.ts.map +1 -0
  299. package/dist/error-handler.js +256 -0
  300. package/dist/error-handler.js.map +1 -0
  301. package/dist/formatter 2.js +168 -0
  302. package/dist/formatter.d.ts +25 -0
  303. package/dist/formatter.d.ts 2.map +1 -0
  304. package/dist/formatter.d.ts.map +1 -0
  305. package/dist/formatter.js +168 -0
  306. package/dist/formatter.js.map +1 -0
  307. package/dist/git 2.js +198 -0
  308. package/dist/git.d 2.ts +55 -0
  309. package/dist/git.d.ts +55 -0
  310. package/dist/git.d.ts.map +1 -0
  311. package/dist/git.js +198 -0
  312. package/dist/git.js.map +1 -0
  313. package/dist/index 2.d.ts +16 -0
  314. package/dist/index 2.d.ts.map +1 -0
  315. package/dist/index 2.js +429 -0
  316. package/dist/index 2.js.map +1 -0
  317. package/dist/index-backup-before-lazy-loading.d.ts +3 -0
  318. package/dist/index-backup-before-lazy-loading.d.ts.map +1 -0
  319. package/dist/index-backup-before-lazy-loading.js +1551 -0
  320. package/dist/index-backup-before-lazy-loading.js.map +1 -0
  321. package/dist/index.d.ts +16 -0
  322. package/dist/index.d.ts 2.map +1 -0
  323. package/dist/index.d.ts.map +1 -0
  324. package/dist/index.js +489 -0
  325. package/dist/index.js 2.map +1 -0
  326. package/dist/index.js.map +1 -0
  327. package/dist/infrastructure/ai/cohere-ai-service.d.ts +71 -0
  328. package/dist/infrastructure/ai/cohere-ai-service.d.ts.map +1 -0
  329. package/dist/infrastructure/ai/cohere-ai-service.js +676 -0
  330. package/dist/infrastructure/ai/cohere-ai-service.js.map +1 -0
  331. package/dist/infrastructure/ai/command-r-evaluation.d.ts +42 -0
  332. package/dist/infrastructure/ai/command-r-evaluation.d.ts.map +1 -0
  333. package/dist/infrastructure/ai/command-r-evaluation.js +206 -0
  334. package/dist/infrastructure/ai/command-r-evaluation.js.map +1 -0
  335. package/dist/infrastructure/ai/model-config.d.ts +47 -0
  336. package/dist/infrastructure/ai/model-config.d.ts.map +1 -0
  337. package/dist/infrastructure/ai/model-config.js +84 -0
  338. package/dist/infrastructure/ai/model-config.js.map +1 -0
  339. package/dist/infrastructure/ai/provider-ai-service.d.ts +67 -0
  340. package/dist/infrastructure/ai/provider-ai-service.d.ts.map +1 -0
  341. package/dist/infrastructure/ai/provider-ai-service.js +580 -0
  342. package/dist/infrastructure/ai/provider-ai-service.js.map +1 -0
  343. package/dist/infrastructure/cache/embedding-cache.d.ts +58 -0
  344. package/dist/infrastructure/cache/embedding-cache.d.ts.map +1 -0
  345. package/dist/infrastructure/cache/embedding-cache.js +175 -0
  346. package/dist/infrastructure/cache/embedding-cache.js.map +1 -0
  347. package/dist/infrastructure/cache/query-result-cache.d.ts +27 -0
  348. package/dist/infrastructure/cache/query-result-cache.d.ts.map +1 -0
  349. package/dist/infrastructure/cache/query-result-cache.js +66 -0
  350. package/dist/infrastructure/cache/query-result-cache.js.map +1 -0
  351. package/dist/infrastructure/cache/response-cache.d.ts +18 -0
  352. package/dist/infrastructure/cache/response-cache.d.ts.map +1 -0
  353. package/dist/infrastructure/cache/response-cache.js +48 -0
  354. package/dist/infrastructure/cache/response-cache.js.map +1 -0
  355. package/dist/infrastructure/cache/security-scan-cache.d.ts +16 -0
  356. package/dist/infrastructure/cache/security-scan-cache.d.ts.map +1 -0
  357. package/dist/infrastructure/cache/security-scan-cache.js +47 -0
  358. package/dist/infrastructure/cache/security-scan-cache.js.map +1 -0
  359. package/dist/infrastructure/chunking/ast-code-chunker.d.ts +12 -0
  360. package/dist/infrastructure/chunking/ast-code-chunker.d.ts.map +1 -0
  361. package/dist/infrastructure/chunking/ast-code-chunker.js +19 -0
  362. package/dist/infrastructure/chunking/ast-code-chunker.js.map +1 -0
  363. package/dist/infrastructure/chunking/code-aware-chunker.d.ts +63 -0
  364. package/dist/infrastructure/chunking/code-aware-chunker.d.ts.map +1 -0
  365. package/dist/infrastructure/chunking/code-aware-chunker.js +397 -0
  366. package/dist/infrastructure/chunking/code-aware-chunker.js.map +1 -0
  367. package/dist/infrastructure/completion/bash-completion.d.ts +7 -0
  368. package/dist/infrastructure/completion/bash-completion.d.ts.map +1 -0
  369. package/dist/infrastructure/completion/bash-completion.js +25 -0
  370. package/dist/infrastructure/completion/bash-completion.js.map +1 -0
  371. package/dist/infrastructure/completion/fish-completion.d.ts +7 -0
  372. package/dist/infrastructure/completion/fish-completion.d.ts.map +1 -0
  373. package/dist/infrastructure/completion/fish-completion.js +22 -0
  374. package/dist/infrastructure/completion/fish-completion.js.map +1 -0
  375. package/dist/infrastructure/completion/zsh-completion.d.ts +7 -0
  376. package/dist/infrastructure/completion/zsh-completion.d.ts.map +1 -0
  377. package/dist/infrastructure/completion/zsh-completion.js +30 -0
  378. package/dist/infrastructure/completion/zsh-completion.js.map +1 -0
  379. package/dist/infrastructure/config/config-manager.d.ts +158 -0
  380. package/dist/infrastructure/config/config-manager.d.ts.map +1 -0
  381. package/dist/infrastructure/config/config-manager.js +294 -0
  382. package/dist/infrastructure/config/config-manager.js.map +1 -0
  383. package/dist/infrastructure/context/context-compressor.d.ts +94 -0
  384. package/dist/infrastructure/context/context-compressor.d.ts.map +1 -0
  385. package/dist/infrastructure/context/context-compressor.js +329 -0
  386. package/dist/infrastructure/context/context-compressor.js.map +1 -0
  387. package/dist/infrastructure/context/conversation-context.d.ts +82 -0
  388. package/dist/infrastructure/context/conversation-context.d.ts.map +1 -0
  389. package/dist/infrastructure/context/conversation-context.js +213 -0
  390. package/dist/infrastructure/context/conversation-context.js.map +1 -0
  391. package/dist/infrastructure/context/direct-context-provider.d.ts +18 -0
  392. package/dist/infrastructure/context/direct-context-provider.d.ts.map +1 -0
  393. package/dist/infrastructure/context/direct-context-provider.js +222 -0
  394. package/dist/infrastructure/context/direct-context-provider.js.map +1 -0
  395. package/dist/infrastructure/context/git-context-provider.d.ts +30 -0
  396. package/dist/infrastructure/context/git-context-provider.d.ts.map +1 -0
  397. package/dist/infrastructure/context/git-context-provider.js +140 -0
  398. package/dist/infrastructure/context/git-context-provider.js.map +1 -0
  399. package/dist/infrastructure/context/project-context-loader.d.ts +35 -0
  400. package/dist/infrastructure/context/project-context-loader.d.ts.map +1 -0
  401. package/dist/infrastructure/context/project-context-loader.js +184 -0
  402. package/dist/infrastructure/context/project-context-loader.js.map +1 -0
  403. package/dist/infrastructure/context/session-manager.d.ts +42 -0
  404. package/dist/infrastructure/context/session-manager.d.ts.map +1 -0
  405. package/dist/infrastructure/context/session-manager.js +94 -0
  406. package/dist/infrastructure/context/session-manager.js.map +1 -0
  407. package/dist/infrastructure/cost/cost-tracker.d.ts +91 -0
  408. package/dist/infrastructure/cost/cost-tracker.d.ts.map +1 -0
  409. package/dist/infrastructure/cost/cost-tracker.js +361 -0
  410. package/dist/infrastructure/cost/cost-tracker.js.map +1 -0
  411. package/dist/infrastructure/cost/session-token-tracker.d.ts +68 -0
  412. package/dist/infrastructure/cost/session-token-tracker.d.ts.map +1 -0
  413. package/dist/infrastructure/cost/session-token-tracker.js +178 -0
  414. package/dist/infrastructure/cost/session-token-tracker.js.map +1 -0
  415. package/dist/infrastructure/cost-calculator.d.ts +34 -0
  416. package/dist/infrastructure/cost-calculator.d.ts.map +1 -0
  417. package/dist/infrastructure/cost-calculator.js +145 -0
  418. package/dist/infrastructure/cost-calculator.js.map +1 -0
  419. package/dist/infrastructure/cost-estimator.d.ts +48 -0
  420. package/dist/infrastructure/cost-estimator.d.ts.map +1 -0
  421. package/dist/infrastructure/cost-estimator.js +201 -0
  422. package/dist/infrastructure/cost-estimator.js.map +1 -0
  423. package/dist/infrastructure/file-scanner/file-scanner.d.ts +31 -0
  424. package/dist/infrastructure/file-scanner/file-scanner.d.ts.map +1 -0
  425. package/dist/infrastructure/file-scanner/file-scanner.js +106 -0
  426. package/dist/infrastructure/file-scanner/file-scanner.js.map +1 -0
  427. package/dist/infrastructure/governance/nist-ai-rmf.d.ts +105 -0
  428. package/dist/infrastructure/governance/nist-ai-rmf.d.ts.map +1 -0
  429. package/dist/infrastructure/governance/nist-ai-rmf.js +292 -0
  430. package/dist/infrastructure/governance/nist-ai-rmf.js.map +1 -0
  431. package/dist/infrastructure/governance/policy-as-code.d.ts +88 -0
  432. package/dist/infrastructure/governance/policy-as-code.d.ts.map +1 -0
  433. package/dist/infrastructure/governance/policy-as-code.js +257 -0
  434. package/dist/infrastructure/governance/policy-as-code.js.map +1 -0
  435. package/dist/infrastructure/governance/prompt-to-code-lineage.d.ts +136 -0
  436. package/dist/infrastructure/governance/prompt-to-code-lineage.d.ts.map +1 -0
  437. package/dist/infrastructure/governance/prompt-to-code-lineage.js +239 -0
  438. package/dist/infrastructure/governance/prompt-to-code-lineage.js.map +1 -0
  439. package/dist/infrastructure/index.d.ts +7 -0
  440. package/dist/infrastructure/index.d.ts.map +1 -0
  441. package/dist/infrastructure/index.js +7 -0
  442. package/dist/infrastructure/index.js.map +1 -0
  443. package/dist/infrastructure/observability/execution-tracer.d.ts +130 -0
  444. package/dist/infrastructure/observability/execution-tracer.d.ts.map +1 -0
  445. package/dist/infrastructure/observability/execution-tracer.js +400 -0
  446. package/dist/infrastructure/observability/execution-tracer.js.map +1 -0
  447. package/dist/infrastructure/observability/prompt-versioner.d.ts +67 -0
  448. package/dist/infrastructure/observability/prompt-versioner.d.ts.map +1 -0
  449. package/dist/infrastructure/observability/prompt-versioner.js +145 -0
  450. package/dist/infrastructure/observability/prompt-versioner.js.map +1 -0
  451. package/dist/infrastructure/protocols/a2a-metadata.d.ts +278 -0
  452. package/dist/infrastructure/protocols/a2a-metadata.d.ts.map +1 -0
  453. package/dist/infrastructure/protocols/a2a-metadata.js +137 -0
  454. package/dist/infrastructure/protocols/a2a-metadata.js.map +1 -0
  455. package/dist/infrastructure/protocols/a2a-protocol.d.ts +132 -0
  456. package/dist/infrastructure/protocols/a2a-protocol.d.ts.map +1 -0
  457. package/dist/infrastructure/protocols/a2a-protocol.js +314 -0
  458. package/dist/infrastructure/protocols/a2a-protocol.js.map +1 -0
  459. package/dist/infrastructure/protocols/mcp-oauth.d.ts +91 -0
  460. package/dist/infrastructure/protocols/mcp-oauth.d.ts.map +1 -0
  461. package/dist/infrastructure/protocols/mcp-oauth.js +184 -0
  462. package/dist/infrastructure/protocols/mcp-oauth.js.map +1 -0
  463. package/dist/infrastructure/protocols/mcp-server.d.ts +126 -0
  464. package/dist/infrastructure/protocols/mcp-server.d.ts.map +1 -0
  465. package/dist/infrastructure/protocols/mcp-server.js +333 -0
  466. package/dist/infrastructure/protocols/mcp-server.js.map +1 -0
  467. package/dist/infrastructure/protocols/streaming-handler.d.ts +57 -0
  468. package/dist/infrastructure/protocols/streaming-handler.d.ts.map +1 -0
  469. package/dist/infrastructure/protocols/streaming-handler.js +103 -0
  470. package/dist/infrastructure/protocols/streaming-handler.js.map +1 -0
  471. package/dist/infrastructure/providers/cohere-provider.d.ts +39 -0
  472. package/dist/infrastructure/providers/cohere-provider.d.ts.map +1 -0
  473. package/dist/infrastructure/providers/cohere-provider.js +470 -0
  474. package/dist/infrastructure/providers/cohere-provider.js.map +1 -0
  475. package/dist/infrastructure/providers/fake-provider.d.ts +43 -0
  476. package/dist/infrastructure/providers/fake-provider.d.ts.map +1 -0
  477. package/dist/infrastructure/providers/fake-provider.js +138 -0
  478. package/dist/infrastructure/providers/fake-provider.js.map +1 -0
  479. package/dist/infrastructure/providers/local-llm-provider.d.ts +49 -0
  480. package/dist/infrastructure/providers/local-llm-provider.d.ts.map +1 -0
  481. package/dist/infrastructure/providers/local-llm-provider.js +336 -0
  482. package/dist/infrastructure/providers/local-llm-provider.js.map +1 -0
  483. package/dist/infrastructure/providers/model-config.types.d.ts +70 -0
  484. package/dist/infrastructure/providers/model-config.types.d.ts.map +1 -0
  485. package/dist/infrastructure/providers/model-config.types.js +9 -0
  486. package/dist/infrastructure/providers/model-config.types.js.map +1 -0
  487. package/dist/infrastructure/providers/model-provider.interface.d.ts +113 -0
  488. package/dist/infrastructure/providers/model-provider.interface.d.ts.map +1 -0
  489. package/dist/infrastructure/providers/model-provider.interface.js +8 -0
  490. package/dist/infrastructure/providers/model-provider.interface.js.map +1 -0
  491. package/dist/infrastructure/providers/openai-provider.d.ts +38 -0
  492. package/dist/infrastructure/providers/openai-provider.d.ts.map +1 -0
  493. package/dist/infrastructure/providers/openai-provider.js +445 -0
  494. package/dist/infrastructure/providers/openai-provider.js.map +1 -0
  495. package/dist/infrastructure/providers/openrouter-provider.d.ts +42 -0
  496. package/dist/infrastructure/providers/openrouter-provider.d.ts.map +1 -0
  497. package/dist/infrastructure/providers/openrouter-provider.js +407 -0
  498. package/dist/infrastructure/providers/openrouter-provider.js.map +1 -0
  499. package/dist/infrastructure/providers/operation-provider-resolver.d.ts +48 -0
  500. package/dist/infrastructure/providers/operation-provider-resolver.d.ts.map +1 -0
  501. package/dist/infrastructure/providers/operation-provider-resolver.js +105 -0
  502. package/dist/infrastructure/providers/operation-provider-resolver.js.map +1 -0
  503. package/dist/infrastructure/providers/provider-config-loader.d.ts +37 -0
  504. package/dist/infrastructure/providers/provider-config-loader.d.ts.map +1 -0
  505. package/dist/infrastructure/providers/provider-config-loader.js +120 -0
  506. package/dist/infrastructure/providers/provider-config-loader.js.map +1 -0
  507. package/dist/infrastructure/providers/provider-registry.d.ts +53 -0
  508. package/dist/infrastructure/providers/provider-registry.d.ts.map +1 -0
  509. package/dist/infrastructure/providers/provider-registry.js +88 -0
  510. package/dist/infrastructure/providers/provider-registry.js.map +1 -0
  511. package/dist/infrastructure/security/ai-sast-scanner.d.ts +59 -0
  512. package/dist/infrastructure/security/ai-sast-scanner.d.ts.map +1 -0
  513. package/dist/infrastructure/security/ai-sast-scanner.js +241 -0
  514. package/dist/infrastructure/security/ai-sast-scanner.js.map +1 -0
  515. package/dist/infrastructure/security/docker-sandbox.d.ts +57 -0
  516. package/dist/infrastructure/security/docker-sandbox.d.ts.map +1 -0
  517. package/dist/infrastructure/security/docker-sandbox.js +178 -0
  518. package/dist/infrastructure/security/docker-sandbox.js.map +1 -0
  519. package/dist/infrastructure/security/enhanced-security-gate.d.ts +66 -0
  520. package/dist/infrastructure/security/enhanced-security-gate.d.ts.map +1 -0
  521. package/dist/infrastructure/security/enhanced-security-gate.js +210 -0
  522. package/dist/infrastructure/security/enhanced-security-gate.js.map +1 -0
  523. package/dist/infrastructure/security/input-validator.d.ts +46 -0
  524. package/dist/infrastructure/security/input-validator.d.ts.map +1 -0
  525. package/dist/infrastructure/security/input-validator.js +269 -0
  526. package/dist/infrastructure/security/input-validator.js.map +1 -0
  527. package/dist/infrastructure/security/license-scanner.d.ts +55 -0
  528. package/dist/infrastructure/security/license-scanner.d.ts.map +1 -0
  529. package/dist/infrastructure/security/license-scanner.js +167 -0
  530. package/dist/infrastructure/security/license-scanner.js.map +1 -0
  531. package/dist/infrastructure/security/provider-bias-detector.d.ts +53 -0
  532. package/dist/infrastructure/security/provider-bias-detector.d.ts.map +1 -0
  533. package/dist/infrastructure/security/provider-bias-detector.js +164 -0
  534. package/dist/infrastructure/security/provider-bias-detector.js.map +1 -0
  535. package/dist/infrastructure/security/sandbox-executor.d.ts +34 -0
  536. package/dist/infrastructure/security/sandbox-executor.d.ts.map +1 -0
  537. package/dist/infrastructure/security/sandbox-executor.js +64 -0
  538. package/dist/infrastructure/security/sandbox-executor.js.map +1 -0
  539. package/dist/infrastructure/serialization/toon-serializer.d.ts +45 -0
  540. package/dist/infrastructure/serialization/toon-serializer.d.ts.map +1 -0
  541. package/dist/infrastructure/serialization/toon-serializer.js +119 -0
  542. package/dist/infrastructure/serialization/toon-serializer.js.map +1 -0
  543. package/dist/infrastructure/storage/embeddings-path.d.ts +18 -0
  544. package/dist/infrastructure/storage/embeddings-path.d.ts.map +1 -0
  545. package/dist/infrastructure/storage/embeddings-path.js +47 -0
  546. package/dist/infrastructure/storage/embeddings-path.js.map +1 -0
  547. package/dist/infrastructure/storage/memory-stream-service.d.ts +47 -0
  548. package/dist/infrastructure/storage/memory-stream-service.d.ts.map +1 -0
  549. package/dist/infrastructure/storage/memory-stream-service.js +204 -0
  550. package/dist/infrastructure/storage/memory-stream-service.js.map +1 -0
  551. package/dist/infrastructure/storage/plan-repository.d.ts +40 -0
  552. package/dist/infrastructure/storage/plan-repository.d.ts.map +1 -0
  553. package/dist/infrastructure/storage/plan-repository.js +95 -0
  554. package/dist/infrastructure/storage/plan-repository.js.map +1 -0
  555. package/dist/infrastructure/storage/sqlite-context-repository.d.ts +95 -0
  556. package/dist/infrastructure/storage/sqlite-context-repository.d.ts.map +1 -0
  557. package/dist/infrastructure/storage/sqlite-context-repository.js +467 -0
  558. package/dist/infrastructure/storage/sqlite-context-repository.js.map +1 -0
  559. package/dist/infrastructure/storage/sqlite-decision-repository.d.ts +29 -0
  560. package/dist/infrastructure/storage/sqlite-decision-repository.d.ts.map +1 -0
  561. package/dist/infrastructure/storage/sqlite-decision-repository.js +228 -0
  562. package/dist/infrastructure/storage/sqlite-decision-repository.js.map +1 -0
  563. package/dist/infrastructure/storage/sqlite-embedding-repository.d.ts +47 -0
  564. package/dist/infrastructure/storage/sqlite-embedding-repository.d.ts.map +1 -0
  565. package/dist/infrastructure/storage/sqlite-embedding-repository.js +323 -0
  566. package/dist/infrastructure/storage/sqlite-embedding-repository.js.map +1 -0
  567. package/dist/infrastructure/storage/sqlite-knowledge-graph-repository.d.ts +41 -0
  568. package/dist/infrastructure/storage/sqlite-knowledge-graph-repository.d.ts.map +1 -0
  569. package/dist/infrastructure/storage/sqlite-knowledge-graph-repository.js +413 -0
  570. package/dist/infrastructure/storage/sqlite-knowledge-graph-repository.js.map +1 -0
  571. package/dist/infrastructure/storage/sqlite-knowledge-preservation-repository.d.ts +29 -0
  572. package/dist/infrastructure/storage/sqlite-knowledge-preservation-repository.d.ts.map +1 -0
  573. package/dist/infrastructure/storage/sqlite-knowledge-preservation-repository.js +226 -0
  574. package/dist/infrastructure/storage/sqlite-knowledge-preservation-repository.js.map +1 -0
  575. package/dist/infrastructure/storage/sqlite-memory-repository.d.ts +40 -0
  576. package/dist/infrastructure/storage/sqlite-memory-repository.d.ts.map +1 -0
  577. package/dist/infrastructure/storage/sqlite-memory-repository.js +225 -0
  578. package/dist/infrastructure/storage/sqlite-memory-repository.js.map +1 -0
  579. package/dist/infrastructure/storage/sqlite-pattern-repository.d.ts +25 -0
  580. package/dist/infrastructure/storage/sqlite-pattern-repository.d.ts.map +1 -0
  581. package/dist/infrastructure/storage/sqlite-pattern-repository.js +245 -0
  582. package/dist/infrastructure/storage/sqlite-pattern-repository.js.map +1 -0
  583. package/dist/infrastructure/storage/task-helpers.d.ts +69 -0
  584. package/dist/infrastructure/storage/task-helpers.d.ts.map +1 -0
  585. package/dist/infrastructure/storage/task-helpers.js +197 -0
  586. package/dist/infrastructure/storage/task-helpers.js.map +1 -0
  587. package/dist/infrastructure/storage/task-repository.d.ts +67 -0
  588. package/dist/infrastructure/storage/task-repository.d.ts.map +1 -0
  589. package/dist/infrastructure/storage/task-repository.js +205 -0
  590. package/dist/infrastructure/storage/task-repository.js.map +1 -0
  591. package/dist/infrastructure/telemetry/telemetry-service.d.ts +74 -0
  592. package/dist/infrastructure/telemetry/telemetry-service.d.ts.map +1 -0
  593. package/dist/infrastructure/telemetry/telemetry-service.js +167 -0
  594. package/dist/infrastructure/telemetry/telemetry-service.js.map +1 -0
  595. package/dist/infrastructure/ux/appropriate-friction.d.ts +77 -0
  596. package/dist/infrastructure/ux/appropriate-friction.d.ts.map +1 -0
  597. package/dist/infrastructure/ux/appropriate-friction.js +213 -0
  598. package/dist/infrastructure/ux/appropriate-friction.js.map +1 -0
  599. package/dist/infrastructure/ux/bi-directional-learning.d.ts +131 -0
  600. package/dist/infrastructure/ux/bi-directional-learning.d.ts.map +1 -0
  601. package/dist/infrastructure/ux/bi-directional-learning.js +337 -0
  602. package/dist/infrastructure/ux/bi-directional-learning.js.map +1 -0
  603. package/dist/infrastructure/ux/capability-boundaries.d.ts +22 -0
  604. package/dist/infrastructure/ux/capability-boundaries.d.ts.map +1 -0
  605. package/dist/infrastructure/ux/capability-boundaries.js +42 -0
  606. package/dist/infrastructure/ux/capability-boundaries.js.map +1 -0
  607. package/dist/infrastructure/ux/cli-style-guide.d.ts +105 -0
  608. package/dist/infrastructure/ux/cli-style-guide.d.ts.map +1 -0
  609. package/dist/infrastructure/ux/cli-style-guide.js +220 -0
  610. package/dist/infrastructure/ux/cli-style-guide.js.map +1 -0
  611. package/dist/infrastructure/ux/comprehensive-formatter.d.ts +21 -0
  612. package/dist/infrastructure/ux/comprehensive-formatter.d.ts.map +1 -0
  613. package/dist/infrastructure/ux/comprehensive-formatter.js +117 -0
  614. package/dist/infrastructure/ux/comprehensive-formatter.js.map +1 -0
  615. package/dist/infrastructure/ux/contextual-feature-discovery.d.ts +11 -0
  616. package/dist/infrastructure/ux/contextual-feature-discovery.d.ts.map +1 -0
  617. package/dist/infrastructure/ux/contextual-feature-discovery.js +10 -0
  618. package/dist/infrastructure/ux/contextual-feature-discovery.js.map +1 -0
  619. package/dist/infrastructure/ux/expectation-management.d.ts +98 -0
  620. package/dist/infrastructure/ux/expectation-management.d.ts.map +1 -0
  621. package/dist/infrastructure/ux/expectation-management.js +327 -0
  622. package/dist/infrastructure/ux/expectation-management.js.map +1 -0
  623. package/dist/infrastructure/ux/feature-discovery.d.ts +17 -0
  624. package/dist/infrastructure/ux/feature-discovery.d.ts.map +1 -0
  625. package/dist/infrastructure/ux/feature-discovery.js +14 -0
  626. package/dist/infrastructure/ux/feature-discovery.js.map +1 -0
  627. package/dist/infrastructure/ux/feedback-prompt.d.ts +26 -0
  628. package/dist/infrastructure/ux/feedback-prompt.d.ts.map +1 -0
  629. package/dist/infrastructure/ux/feedback-prompt.js +45 -0
  630. package/dist/infrastructure/ux/feedback-prompt.js.map +1 -0
  631. package/dist/infrastructure/ux/hitl-validation.d.ts +139 -0
  632. package/dist/infrastructure/ux/hitl-validation.d.ts.map +1 -0
  633. package/dist/infrastructure/ux/hitl-validation.js +297 -0
  634. package/dist/infrastructure/ux/hitl-validation.js.map +1 -0
  635. package/dist/infrastructure/ux/progress-indicator.d.ts +53 -0
  636. package/dist/infrastructure/ux/progress-indicator.d.ts.map +1 -0
  637. package/dist/infrastructure/ux/progress-indicator.js +116 -0
  638. package/dist/infrastructure/ux/progress-indicator.js.map +1 -0
  639. package/dist/infrastructure/ux/progressive-disclosure.d.ts +84 -0
  640. package/dist/infrastructure/ux/progressive-disclosure.d.ts.map +1 -0
  641. package/dist/infrastructure/ux/progressive-disclosure.js +236 -0
  642. package/dist/infrastructure/ux/progressive-disclosure.js.map +1 -0
  643. package/dist/infrastructure/ux/review-checkpoint.d.ts +37 -0
  644. package/dist/infrastructure/ux/review-checkpoint.d.ts.map +1 -0
  645. package/dist/infrastructure/ux/review-checkpoint.js +72 -0
  646. package/dist/infrastructure/ux/review-checkpoint.js.map +1 -0
  647. package/dist/infrastructure/ux/staged-feature-intro.d.ts +22 -0
  648. package/dist/infrastructure/ux/staged-feature-intro.d.ts.map +1 -0
  649. package/dist/infrastructure/ux/staged-feature-intro.js +24 -0
  650. package/dist/infrastructure/ux/staged-feature-intro.js.map +1 -0
  651. package/dist/infrastructure/ux/syntax-highlighter.d.ts +20 -0
  652. package/dist/infrastructure/ux/syntax-highlighter.d.ts.map +1 -0
  653. package/dist/infrastructure/ux/syntax-highlighter.js +91 -0
  654. package/dist/infrastructure/ux/syntax-highlighter.js.map +1 -0
  655. package/dist/infrastructure/ux/team-standards.d.ts +94 -0
  656. package/dist/infrastructure/ux/team-standards.d.ts.map +1 -0
  657. package/dist/infrastructure/ux/team-standards.js +196 -0
  658. package/dist/infrastructure/ux/team-standards.js.map +1 -0
  659. package/dist/infrastructure/validation/agent-feedback.d.ts +57 -0
  660. package/dist/infrastructure/validation/agent-feedback.d.ts.map +1 -0
  661. package/dist/infrastructure/validation/agent-feedback.js +100 -0
  662. package/dist/infrastructure/validation/agent-feedback.js.map +1 -0
  663. package/dist/infrastructure/validation/agent-validation-helper.d.ts +75 -0
  664. package/dist/infrastructure/validation/agent-validation-helper.d.ts.map +1 -0
  665. package/dist/infrastructure/validation/agent-validation-helper.js +137 -0
  666. package/dist/infrastructure/validation/agent-validation-helper.js.map +1 -0
  667. package/dist/infrastructure/validation/hallucination-detector.d.ts +121 -0
  668. package/dist/infrastructure/validation/hallucination-detector.d.ts.map +1 -0
  669. package/dist/infrastructure/validation/hallucination-detector.js +388 -0
  670. package/dist/infrastructure/validation/hallucination-detector.js.map +1 -0
  671. package/dist/infrastructure/validation/review-handler.d.ts +26 -0
  672. package/dist/infrastructure/validation/review-handler.d.ts.map +1 -0
  673. package/dist/infrastructure/validation/review-handler.js +40 -0
  674. package/dist/infrastructure/validation/review-handler.js.map +1 -0
  675. package/dist/infrastructure/validation/summary-aggregator.d.ts +45 -0
  676. package/dist/infrastructure/validation/summary-aggregator.d.ts.map +1 -0
  677. package/dist/infrastructure/validation/summary-aggregator.js +70 -0
  678. package/dist/infrastructure/validation/summary-aggregator.js.map +1 -0
  679. package/dist/infrastructure/validation/summary-extractor.d.ts +24 -0
  680. package/dist/infrastructure/validation/summary-extractor.d.ts.map +1 -0
  681. package/dist/infrastructure/validation/summary-extractor.js +45 -0
  682. package/dist/infrastructure/validation/summary-extractor.js.map +1 -0
  683. package/dist/infrastructure/validation/trace-summary.d.ts +45 -0
  684. package/dist/infrastructure/validation/trace-summary.d.ts.map +1 -0
  685. package/dist/infrastructure/validation/trace-summary.js +52 -0
  686. package/dist/infrastructure/validation/trace-summary.js.map +1 -0
  687. package/dist/infrastructure/verification/verification-service.d.ts +12 -0
  688. package/dist/infrastructure/verification/verification-service.d.ts.map +1 -0
  689. package/dist/infrastructure/verification/verification-service.js +47 -0
  690. package/dist/infrastructure/verification/verification-service.js.map +1 -0
  691. package/dist/infrastructure/xai/attention-visualizer.d.ts +71 -0
  692. package/dist/infrastructure/xai/attention-visualizer.d.ts.map +1 -0
  693. package/dist/infrastructure/xai/attention-visualizer.js +172 -0
  694. package/dist/infrastructure/xai/attention-visualizer.js.map +1 -0
  695. package/dist/infrastructure/xai/cot-visualizer.d.ts +103 -0
  696. package/dist/infrastructure/xai/cot-visualizer.d.ts.map +1 -0
  697. package/dist/infrastructure/xai/cot-visualizer.js +283 -0
  698. package/dist/infrastructure/xai/cot-visualizer.js.map +1 -0
  699. package/dist/infrastructure/xai/decision-tree-log.d.ts +100 -0
  700. package/dist/infrastructure/xai/decision-tree-log.d.ts.map +1 -0
  701. package/dist/infrastructure/xai/decision-tree-log.js +212 -0
  702. package/dist/infrastructure/xai/decision-tree-log.js.map +1 -0
  703. package/dist/infrastructure/xai/interactive-xai.d.ts +104 -0
  704. package/dist/infrastructure/xai/interactive-xai.d.ts.map +1 -0
  705. package/dist/infrastructure/xai/interactive-xai.js +260 -0
  706. package/dist/infrastructure/xai/interactive-xai.js.map +1 -0
  707. package/dist/infrastructure/xai/uncertainty-quantifier.d.ts +77 -0
  708. package/dist/infrastructure/xai/uncertainty-quantifier.d.ts.map +1 -0
  709. package/dist/infrastructure/xai/uncertainty-quantifier.js +198 -0
  710. package/dist/infrastructure/xai/uncertainty-quantifier.js.map +1 -0
  711. package/dist/intelligent-retrieval 2.js +272 -0
  712. package/dist/intelligent-retrieval.d.ts +41 -0
  713. package/dist/intelligent-retrieval.d.ts 2.map +1 -0
  714. package/dist/intelligent-retrieval.d.ts.map +1 -0
  715. package/dist/intelligent-retrieval.js +272 -0
  716. package/dist/intelligent-retrieval.js.map +1 -0
  717. package/dist/intent/classifier.d.ts +6 -0
  718. package/dist/intent/classifier.d.ts.map +1 -0
  719. package/dist/intent/classifier.js +2 -0
  720. package/dist/intent/classifier.js.map +1 -0
  721. package/dist/intent/context.d.ts +4 -0
  722. package/dist/intent/context.d.ts.map +1 -0
  723. package/dist/intent/context.js +2 -0
  724. package/dist/intent/context.js.map +1 -0
  725. package/dist/iterative-refinement.d.ts +31 -0
  726. package/dist/iterative-refinement.d.ts.map +1 -0
  727. package/dist/iterative-refinement.js +189 -0
  728. package/dist/iterative-refinement.js.map +1 -0
  729. package/dist/learning.d.ts +69 -0
  730. package/dist/learning.d.ts.map +1 -0
  731. package/dist/learning.js +232 -0
  732. package/dist/learning.js.map +1 -0
  733. package/dist/log.d.ts +4 -0
  734. package/dist/log.d.ts.map +1 -0
  735. package/dist/log.js +31 -0
  736. package/dist/log.js 2.map +1 -0
  737. package/dist/log.js.map +1 -0
  738. package/dist/migrate.d.ts +33 -0
  739. package/dist/migrate.d.ts.map +1 -0
  740. package/dist/migrate.js +133 -0
  741. package/dist/migrate.js 2.map +1 -0
  742. package/dist/migrate.js.map +1 -0
  743. package/dist/monitoring.d.ts +75 -0
  744. package/dist/monitoring.d.ts.map +1 -0
  745. package/dist/monitoring.js +250 -0
  746. package/dist/monitoring.js.map +1 -0
  747. package/dist/parallel-processor.d 2.ts +44 -0
  748. package/dist/parallel-processor.d.ts +44 -0
  749. package/dist/parallel-processor.d.ts.map +1 -0
  750. package/dist/parallel-processor.js +606 -0
  751. package/dist/parallel-processor.js.map +1 -0
  752. package/dist/planner.d.ts +47 -0
  753. package/dist/planner.d.ts.map +1 -0
  754. package/dist/planner.js +198 -0
  755. package/dist/planner.js.map +1 -0
  756. package/dist/policy.d 2.ts +3 -0
  757. package/dist/policy.d.ts +3 -0
  758. package/dist/policy.d.ts.map +1 -0
  759. package/dist/policy.js +26 -0
  760. package/dist/policy.js.map +1 -0
  761. package/dist/presentation/cli/commands/ask-command.d.ts +9 -0
  762. package/dist/presentation/cli/commands/ask-command.d.ts.map +1 -0
  763. package/dist/presentation/cli/commands/ask-command.js +355 -0
  764. package/dist/presentation/cli/commands/ask-command.js.map +1 -0
  765. package/dist/presentation/cli/commands/audit-command.d.ts +13 -0
  766. package/dist/presentation/cli/commands/audit-command.d.ts.map +1 -0
  767. package/dist/presentation/cli/commands/audit-command.js +96 -0
  768. package/dist/presentation/cli/commands/audit-command.js.map +1 -0
  769. package/dist/presentation/cli/commands/config-command.d.ts +9 -0
  770. package/dist/presentation/cli/commands/config-command.d.ts.map +1 -0
  771. package/dist/presentation/cli/commands/config-command.js +125 -0
  772. package/dist/presentation/cli/commands/config-command.js.map +1 -0
  773. package/dist/presentation/cli/commands/context-command.d.ts +32 -0
  774. package/dist/presentation/cli/commands/context-command.d.ts.map +1 -0
  775. package/dist/presentation/cli/commands/context-command.js +295 -0
  776. package/dist/presentation/cli/commands/context-command.js.map +1 -0
  777. package/dist/presentation/cli/commands/context-helper.d.ts +16 -0
  778. package/dist/presentation/cli/commands/context-helper.d.ts.map +1 -0
  779. package/dist/presentation/cli/commands/context-helper.js +88 -0
  780. package/dist/presentation/cli/commands/context-helper.js.map +1 -0
  781. package/dist/presentation/cli/commands/cost-command.d.ts +8 -0
  782. package/dist/presentation/cli/commands/cost-command.d.ts.map +1 -0
  783. package/dist/presentation/cli/commands/cost-command.js +191 -0
  784. package/dist/presentation/cli/commands/cost-command.js.map +1 -0
  785. package/dist/presentation/cli/commands/decision-command.d.ts +12 -0
  786. package/dist/presentation/cli/commands/decision-command.d.ts.map +1 -0
  787. package/dist/presentation/cli/commands/decision-command.js +207 -0
  788. package/dist/presentation/cli/commands/decision-command.js.map +1 -0
  789. package/dist/presentation/cli/commands/docs-command.d.ts +14 -0
  790. package/dist/presentation/cli/commands/docs-command.d.ts.map +1 -0
  791. package/dist/presentation/cli/commands/docs-command.js +25 -0
  792. package/dist/presentation/cli/commands/docs-command.js.map +1 -0
  793. package/dist/presentation/cli/commands/fix-command.d.ts +15 -0
  794. package/dist/presentation/cli/commands/fix-command.d.ts.map +1 -0
  795. package/dist/presentation/cli/commands/fix-command.js +93 -0
  796. package/dist/presentation/cli/commands/fix-command.js.map +1 -0
  797. package/dist/presentation/cli/commands/help-command.d.ts +9 -0
  798. package/dist/presentation/cli/commands/help-command.d.ts.map +1 -0
  799. package/dist/presentation/cli/commands/help-command.js +283 -0
  800. package/dist/presentation/cli/commands/help-command.js.map +1 -0
  801. package/dist/presentation/cli/commands/knowledge-command.d.ts +13 -0
  802. package/dist/presentation/cli/commands/knowledge-command.d.ts.map +1 -0
  803. package/dist/presentation/cli/commands/knowledge-command.js +129 -0
  804. package/dist/presentation/cli/commands/knowledge-command.js.map +1 -0
  805. package/dist/presentation/cli/commands/learning-dashboard-command.d.ts +8 -0
  806. package/dist/presentation/cli/commands/learning-dashboard-command.d.ts.map +1 -0
  807. package/dist/presentation/cli/commands/learning-dashboard-command.js +183 -0
  808. package/dist/presentation/cli/commands/learning-dashboard-command.js.map +1 -0
  809. package/dist/presentation/cli/commands/models-command.d.ts +13 -0
  810. package/dist/presentation/cli/commands/models-command.d.ts.map +1 -0
  811. package/dist/presentation/cli/commands/models-command.js +194 -0
  812. package/dist/presentation/cli/commands/models-command.js.map +1 -0
  813. package/dist/presentation/cli/commands/orchestrate-command.d.ts +10 -0
  814. package/dist/presentation/cli/commands/orchestrate-command.d.ts.map +1 -0
  815. package/dist/presentation/cli/commands/orchestrate-command.js +249 -0
  816. package/dist/presentation/cli/commands/orchestrate-command.js.map +1 -0
  817. package/dist/presentation/cli/commands/plan-command.d.ts +9 -0
  818. package/dist/presentation/cli/commands/plan-command.d.ts.map +1 -0
  819. package/dist/presentation/cli/commands/plan-command.js +246 -0
  820. package/dist/presentation/cli/commands/plan-command.js.map +1 -0
  821. package/dist/presentation/cli/commands/product-command.d.ts +14 -0
  822. package/dist/presentation/cli/commands/product-command.d.ts.map +1 -0
  823. package/dist/presentation/cli/commands/product-command.js +22 -0
  824. package/dist/presentation/cli/commands/product-command.js.map +1 -0
  825. package/dist/presentation/cli/commands/react-command.d.ts +8 -0
  826. package/dist/presentation/cli/commands/react-command.d.ts.map +1 -0
  827. package/dist/presentation/cli/commands/react-command.js +181 -0
  828. package/dist/presentation/cli/commands/react-command.js.map +1 -0
  829. package/dist/presentation/cli/commands/review-command.d.ts +14 -0
  830. package/dist/presentation/cli/commands/review-command.d.ts.map +1 -0
  831. package/dist/presentation/cli/commands/review-command.js +154 -0
  832. package/dist/presentation/cli/commands/review-command.js.map +1 -0
  833. package/dist/presentation/cli/commands/run-command.d.ts +13 -0
  834. package/dist/presentation/cli/commands/run-command.d.ts.map +1 -0
  835. package/dist/presentation/cli/commands/run-command.js +188 -0
  836. package/dist/presentation/cli/commands/run-command.js.map +1 -0
  837. package/dist/presentation/cli/commands/setup-command.d.ts +10 -0
  838. package/dist/presentation/cli/commands/setup-command.d.ts.map +1 -0
  839. package/dist/presentation/cli/commands/setup-command.js +301 -0
  840. package/dist/presentation/cli/commands/setup-command.js.map +1 -0
  841. package/dist/presentation/cli/commands/smart-command.d.ts +11 -0
  842. package/dist/presentation/cli/commands/smart-command.d.ts.map +1 -0
  843. package/dist/presentation/cli/commands/smart-command.js +517 -0
  844. package/dist/presentation/cli/commands/smart-command.js.map +1 -0
  845. package/dist/presentation/cli/commands/status-command.d.ts +14 -0
  846. package/dist/presentation/cli/commands/status-command.d.ts.map +1 -0
  847. package/dist/presentation/cli/commands/status-command.js +167 -0
  848. package/dist/presentation/cli/commands/status-command.js.map +1 -0
  849. package/dist/presentation/cli/commands/suggest-command.d.ts +11 -0
  850. package/dist/presentation/cli/commands/suggest-command.d.ts.map +1 -0
  851. package/dist/presentation/cli/commands/suggest-command.js +138 -0
  852. package/dist/presentation/cli/commands/suggest-command.js.map +1 -0
  853. package/dist/presentation/cli/commands/trace-command.d.ts +8 -0
  854. package/dist/presentation/cli/commands/trace-command.d.ts.map +1 -0
  855. package/dist/presentation/cli/commands/trace-command.js +129 -0
  856. package/dist/presentation/cli/commands/trace-command.js.map +1 -0
  857. package/dist/presentation/cli/commands/trust-command.d.ts +28 -0
  858. package/dist/presentation/cli/commands/trust-command.d.ts.map +1 -0
  859. package/dist/presentation/cli/commands/trust-command.js +301 -0
  860. package/dist/presentation/cli/commands/trust-command.js.map +1 -0
  861. package/dist/presentation/cli/commands/undo-command.d.ts +8 -0
  862. package/dist/presentation/cli/commands/undo-command.d.ts.map +1 -0
  863. package/dist/presentation/cli/commands/undo-command.js +150 -0
  864. package/dist/presentation/cli/commands/undo-command.js.map +1 -0
  865. package/dist/presentation/cli/error-display.d.ts +25 -0
  866. package/dist/presentation/cli/error-display.d.ts.map +1 -0
  867. package/dist/presentation/cli/error-display.js +340 -0
  868. package/dist/presentation/cli/error-display.js.map +1 -0
  869. package/dist/query-optimizer.d.ts +32 -0
  870. package/dist/query-optimizer.d.ts.map +1 -0
  871. package/dist/query-optimizer.js +205 -0
  872. package/dist/query-optimizer.js.map +1 -0
  873. package/dist/refactor.d.ts +27 -0
  874. package/dist/refactor.d.ts.map +1 -0
  875. package/dist/refactor.js +116 -0
  876. package/dist/refactor.js.map +1 -0
  877. package/dist/review 2.js +206 -0
  878. package/dist/review.d.ts +31 -0
  879. package/dist/review.d.ts.map +1 -0
  880. package/dist/review.js +206 -0
  881. package/dist/review.js.map +1 -0
  882. package/dist/search.d.ts +19 -0
  883. package/dist/search.d.ts.map +1 -0
  884. package/dist/search.js +193 -0
  885. package/dist/search.js 2.map +1 -0
  886. package/dist/search.js.map +1 -0
  887. package/dist/session 2.js +593 -0
  888. package/dist/session.d.ts +17 -0
  889. package/dist/session.d.ts 2.map +1 -0
  890. package/dist/session.d.ts.map +1 -0
  891. package/dist/session.js +593 -0
  892. package/dist/session.js.map +1 -0
  893. package/dist/task-verification 2.js +336 -0
  894. package/dist/task-verification.d.ts +39 -0
  895. package/dist/task-verification.d.ts 2.map +1 -0
  896. package/dist/task-verification.d.ts.map +1 -0
  897. package/dist/task-verification.js +336 -0
  898. package/dist/task-verification.js.map +1 -0
  899. package/dist/test-minimal.d.ts +2 -0
  900. package/dist/test-minimal.d.ts.map +1 -0
  901. package/dist/test-minimal.js +2 -0
  902. package/dist/test-minimal.js.map +1 -0
  903. package/dist/testgen.d.ts +24 -0
  904. package/dist/testgen.d.ts.map +1 -0
  905. package/dist/testgen.js +166 -0
  906. package/dist/testgen.js 2.map +1 -0
  907. package/dist/testgen.js.map +1 -0
  908. package/dist/token-optimizer.d 2.ts +20 -0
  909. package/dist/token-optimizer.d.ts +20 -0
  910. package/dist/token-optimizer.d.ts.map +1 -0
  911. package/dist/token-optimizer.js +282 -0
  912. package/dist/token-optimizer.js.map +1 -0
  913. package/dist/tools/bash.d.ts +53 -0
  914. package/dist/tools/bash.d.ts.map +1 -0
  915. package/dist/tools/bash.js +213 -0
  916. package/dist/tools/bash.js.map +1 -0
  917. package/dist/tools/edit.d.ts +48 -0
  918. package/dist/tools/edit.d.ts.map +1 -0
  919. package/dist/tools/edit.js +235 -0
  920. package/dist/tools/edit.js.map +1 -0
  921. package/dist/tools/executor.d.ts +29 -0
  922. package/dist/tools/executor.d.ts.map +1 -0
  923. package/dist/tools/executor.js +153 -0
  924. package/dist/tools/executor.js.map +1 -0
  925. package/dist/tools/git-tool.d.ts +87 -0
  926. package/dist/tools/git-tool.d.ts.map +1 -0
  927. package/dist/tools/git-tool.js +292 -0
  928. package/dist/tools/git-tool.js.map +1 -0
  929. package/dist/tools/parser.d.ts +33 -0
  930. package/dist/tools/parser.d.ts.map +1 -0
  931. package/dist/tools/parser.js +158 -0
  932. package/dist/tools/parser.js.map +1 -0
  933. package/dist/tools/registry.d.ts +74 -0
  934. package/dist/tools/registry.d.ts.map +1 -0
  935. package/dist/tools/registry.js +302 -0
  936. package/dist/tools/registry.js.map +1 -0
  937. package/dist/tools/search.d.ts +41 -0
  938. package/dist/tools/search.d.ts.map +1 -0
  939. package/dist/tools/search.js +100 -0
  940. package/dist/tools/search.js.map +1 -0
  941. package/dist/types.d.ts +36 -0
  942. package/dist/types.d.ts.map +1 -0
  943. package/dist/types.js +2 -0
  944. package/dist/types.js.map +1 -0
  945. package/dist/ui.d.ts +60 -0
  946. package/dist/ui.d.ts 2.map +1 -0
  947. package/dist/ui.d.ts.map +1 -0
  948. package/dist/ui.js +334 -0
  949. package/dist/ui.js.map +1 -0
  950. package/dist/utils/check-api-status.d.ts +12 -0
  951. package/dist/utils/check-api-status.d.ts.map +1 -0
  952. package/dist/utils/check-api-status.js +82 -0
  953. package/dist/utils/check-api-status.js.map +1 -0
  954. package/dist/utils/debug.d.ts +7 -0
  955. package/dist/utils/debug.d.ts.map +1 -0
  956. package/dist/utils/debug.js +24 -0
  957. package/dist/utils/debug.js.map +1 -0
  958. package/dist/utils/diff-parser.d.ts +22 -0
  959. package/dist/utils/diff-parser.d.ts.map +1 -0
  960. package/dist/utils/diff-parser.js +192 -0
  961. package/dist/utils/diff-parser.js.map +1 -0
  962. package/dist/utils/provider-check.d.ts +21 -0
  963. package/dist/utils/provider-check.d.ts.map +1 -0
  964. package/dist/utils/provider-check.js +124 -0
  965. package/dist/utils/provider-check.js.map +1 -0
  966. package/dist/utils/version.d.ts +21 -0
  967. package/dist/utils/version.d.ts.map +1 -0
  968. package/dist/utils/version.js +52 -0
  969. package/dist/utils/version.js.map +1 -0
  970. package/dist/verification/backup.d.ts +30 -0
  971. package/dist/verification/backup.d.ts.map +1 -0
  972. package/dist/verification/backup.js +259 -0
  973. package/dist/verification/backup.js.map +1 -0
  974. package/dist/verification/compiler.d.ts +20 -0
  975. package/dist/verification/compiler.d.ts.map +1 -0
  976. package/dist/verification/compiler.js +263 -0
  977. package/dist/verification/compiler.js.map +1 -0
  978. package/dist/verification/index.d.ts +59 -0
  979. package/dist/verification/index.d.ts.map +1 -0
  980. package/dist/verification/index.js +273 -0
  981. package/dist/verification/index.js.map +1 -0
  982. package/dist/verification/test-runner.d.ts +27 -0
  983. package/dist/verification/test-runner.d.ts.map +1 -0
  984. package/dist/verification/test-runner.js +379 -0
  985. package/dist/verification/test-runner.js.map +1 -0
  986. package/dist/verify_db.d.ts +2 -0
  987. package/dist/verify_db.d.ts.map +1 -0
  988. package/dist/verify_db.js +52 -0
  989. package/dist/verify_db.js 2.map +1 -0
  990. package/dist/verify_db.js.map +1 -0
  991. package/package.json +125 -0
@@ -0,0 +1,942 @@
1
+ /**
2
+ * Intelligent Query Router
3
+ * Understands user intent and routes to appropriate use cases
4
+ * Provides seamless experience - user just types what they want
5
+ * MEMORY-AWARE: Uses Memory Stream to inform routing decisions
6
+ */
7
+ import { QueryIntentClassifier } from '../../domain/services/query-intent-classifier.js';
8
+ import { validateQuery } from '../../infrastructure/security/input-validator.js';
9
+ import { executionTracer } from '../../infrastructure/observability/execution-tracer.js';
10
+ import { agentFeedbackManager } from '../../infrastructure/validation/agent-feedback.js';
11
+ import { findCodebaseRoot } from '../../domain/services/codebase-detector.js';
12
+ export class IntelligentRouter {
13
+ intentClassifier;
14
+ aiService;
15
+ memoryStream;
16
+ constructor(intentClassifier, aiService, memoryStream) {
17
+ this.intentClassifier = intentClassifier || new QueryIntentClassifier();
18
+ this.aiService = aiService;
19
+ this.memoryStream = memoryStream;
20
+ }
21
+ async route(request) {
22
+ // Start routing trace
23
+ const codebaseInfo = findCodebaseRoot(process.cwd());
24
+ const routingRunId = executionTracer.startRun('intelligent-router', {
25
+ query: request.query,
26
+ codebaseId: codebaseInfo?.codebaseId || codebaseInfo?.rootPath,
27
+ });
28
+ // Track routing decision data
29
+ let routingDecision;
30
+ try {
31
+ // Validate input
32
+ const validation = validateQuery(request.query);
33
+ if (!validation.valid) {
34
+ executionTracer.endRun();
35
+ return {
36
+ intent: 'error',
37
+ action: 'general',
38
+ result: null,
39
+ success: false,
40
+ error: `Invalid query: ${validation.errors.join(', ')}`,
41
+ routingRunId,
42
+ };
43
+ }
44
+ // Use sanitized query if validation found issues
45
+ let query = (validation.sanitized || request.query).trim();
46
+ // 2. Classify intent FIRST (needed for conversation tracking)
47
+ const classifiedIntent = this.intentClassifier.classify(query);
48
+ // Record intent classification
49
+ executionTracer.trace({
50
+ operationType: 'code_analysis',
51
+ operationName: 'intent_classification',
52
+ input: { query },
53
+ output: { intent: classifiedIntent },
54
+ metadata: {
55
+ classifier: 'QueryIntentClassifier',
56
+ },
57
+ });
58
+ // Resolve conversation references if we have history
59
+ let resolvedQuery = query;
60
+ let sessionId;
61
+ if (request.context?.conversationHistory && request.context.conversationHistory.length > 0) {
62
+ const { conversationContextManager } = await import('../../infrastructure/context/conversation-context.js');
63
+ sessionId = request.context.sessionId || 'default-session';
64
+ // Resolve references in query (e.g., "it", "that", "the previous")
65
+ resolvedQuery = conversationContextManager.resolveReferences(sessionId, query);
66
+ // Extract entities for context tracking
67
+ const entities = conversationContextManager.extractEntities(resolvedQuery);
68
+ // Store original query turn (will be updated with response after routing)
69
+ conversationContextManager.addTurn(sessionId, query, '', entities, classifiedIntent);
70
+ }
71
+ // Use resolved query for processing
72
+ query = resolvedQuery;
73
+ // 1. MEMORY-AWARE: Retrieve relevant memories to inform routing decision
74
+ let memories = [];
75
+ let memoryInformedIntent = null;
76
+ if (this.memoryStream) {
77
+ try {
78
+ // Retrieve memories relevant to this query
79
+ memories = await this.memoryStream.retrieve(query, 10);
80
+ // If we have memories, use them to inform intent classification
81
+ if (memories.length > 0 && this.aiService) {
82
+ memoryInformedIntent = await this.classifyIntentWithMemory(query, memories);
83
+ }
84
+ }
85
+ catch (error) {
86
+ // Fallback to basic classification if memory retrieval fails
87
+ console.warn('Memory retrieval failed, using basic classification:', error);
88
+ }
89
+ }
90
+ // CRITICAL: Compound instructions (numbered steps) MUST route to Planning Module
91
+ // Check this BEFORE memory-informed intent to prevent override
92
+ const isCompoundInstruction = query.includes('\n') && /\d+\.\s+[^\n]+\n\s*\d+\.\s+/.test(query);
93
+ // Use memory-informed intent ONLY if not a compound instruction
94
+ const intent = isCompoundInstruction && classifiedIntent === 'multi-file-modify'
95
+ ? 'multi-file-modify' // Force compound instructions to Planning Module
96
+ : (memoryInformedIntent || classifiedIntent);
97
+ const symbols = this.intentClassifier.extractSymbols(query);
98
+ // Determine which action/agent will be selected based on intent
99
+ const actionMap = {
100
+ 'explain': 'explain',
101
+ 'multi-file-modify': 'orchestrate',
102
+ 'modify': 'edit',
103
+ 'debug': 'edit',
104
+ 'implement': 'edit',
105
+ 'index': 'index',
106
+ 'plan': 'plan',
107
+ 'find': 'ask',
108
+ 'understand': 'ask', // Open questions → semantic search
109
+ 'general': 'ask',
110
+ 'review': 'ask', // Code review questions → semantic search
111
+ 'test': 'ask', // Test-related questions → semantic search
112
+ 'refactor': 'edit', // Single-file refactoring
113
+ };
114
+ const selectedAction = actionMap[intent] || 'ask';
115
+ const selectedAgent = selectedAction === 'orchestrate' ? 'multi-agent-orchestrator' :
116
+ selectedAction === 'plan' ? 'planning-agent' :
117
+ selectedAction === 'react' ? 'react-orchestration' :
118
+ selectedAction === 'edit' ? 'edit-file-use-case' :
119
+ selectedAction === 'explain' ? 'explain-file-use-case' :
120
+ selectedAction === 'index' ? 'index-codebase-use-case' :
121
+ 'ask-question-use-case';
122
+ // Calculate confidence score (heuristic)
123
+ let confidence = 0.8; // Default confidence
124
+ if (memoryInformedIntent && memoryInformedIntent === classifiedIntent) {
125
+ confidence = 0.95; // High confidence when memory and classifier agree
126
+ }
127
+ else if (memoryInformedIntent) {
128
+ confidence = 0.85; // Good confidence with memory override
129
+ }
130
+ else if (isCompoundInstruction) {
131
+ confidence = 0.9; // High confidence for compound instructions
132
+ }
133
+ // Build selection reason
134
+ const selectionReason = isCompoundInstruction
135
+ ? 'Compound instruction detected - routing to orchestration'
136
+ : memoryInformedIntent && memoryInformedIntent !== classifiedIntent
137
+ ? `Memory-informed routing: ${classifiedIntent} → ${memoryInformedIntent}`
138
+ : `Intent classification: ${intent}`;
139
+ // Track alternatives considered
140
+ const alternatives = Object.keys(actionMap)
141
+ .filter(k => actionMap[k] !== selectedAction)
142
+ .map(k => actionMap[k])
143
+ .filter((v, i, arr) => arr.indexOf(v) === i) // Deduplicate
144
+ .slice(0, 3); // Top 3 alternatives
145
+ // Record routing decision
146
+ routingDecision = {
147
+ confidence,
148
+ selectedAgent,
149
+ selectionReason,
150
+ alternatives,
151
+ };
152
+ // Trace routing decision
153
+ executionTracer.trace({
154
+ operationType: 'code_analysis',
155
+ operationName: 'routing_decision',
156
+ input: { query, intent, classifiedIntent, memoryInformedIntent },
157
+ output: { selectedAction, selectedAgent, confidence },
158
+ metadata: {
159
+ intent,
160
+ selectedAction,
161
+ selectedAgent,
162
+ confidence,
163
+ memoryInformed: !!memoryInformedIntent,
164
+ memoriesUsed: memories.length,
165
+ compoundInstruction: isCompoundInstruction,
166
+ },
167
+ });
168
+ // Debug logging for compound instructions
169
+ if (isCompoundInstruction) {
170
+ console.log(`[IntelligentRouter] Compound instruction detected. Classified: ${classifiedIntent}, Memory: ${memoryInformedIntent}, Using: ${intent}`);
171
+ }
172
+ // 3. Check if indexing is needed
173
+ const needsIndex = await this.checkIfIndexingNeeded(request.context);
174
+ // Handle indexing first if needed
175
+ if (needsIndex && (intent === 'find' || intent === 'understand' || intent === 'explain')) {
176
+ executionTracer.endRun();
177
+ // Record routing decision feedback
178
+ try {
179
+ agentFeedbackManager.recordFeedback({
180
+ runId: routingRunId,
181
+ agentName: 'intelligent-router',
182
+ operation: 'route',
183
+ query: request.query,
184
+ outcome: 'failure',
185
+ userAction: 'not_required', // Error case - no review flow
186
+ errors: ['Indexing required'],
187
+ });
188
+ }
189
+ catch {
190
+ // Non-blocking
191
+ }
192
+ return {
193
+ intent: 'index',
194
+ action: 'index',
195
+ result: { message: 'Indexing required. Please run: codehere index' },
196
+ success: false,
197
+ message: 'Codebase not indexed. Run "codehere index" first, then try again.',
198
+ memoriesUsed: memories.length,
199
+ routingDecision,
200
+ routingRunId,
201
+ };
202
+ }
203
+ // Route based on intent (pass memories for context)
204
+ let routingResult;
205
+ try {
206
+ switch (intent) {
207
+ case 'explain':
208
+ // Use deterministic workflow for faster performance (no ReAct overhead)
209
+ routingResult = await this.handleExplainWithWorkflow(query, symbols, memories);
210
+ break;
211
+ case 'multi-file-modify':
212
+ // Multi-file operations require planning AND execution
213
+ routingResult = await this.handleOrchestrate(query, memories);
214
+ break;
215
+ case 'modify':
216
+ case 'debug': // 'fix' maps to 'debug'
217
+ case 'implement':
218
+ routingResult = await this.handleEdit(query, symbols, memories);
219
+ break;
220
+ case 'index':
221
+ routingResult = await this.handleIndex(query);
222
+ break;
223
+ case 'plan':
224
+ // Complex goals need planning
225
+ routingResult = await this.handlePlan(query, memories);
226
+ break;
227
+ case 'find':
228
+ // For "find" queries, use AskQuestion to search the codebase
229
+ routingResult = await this.handleAsk(query, memories);
230
+ break;
231
+ case 'understand':
232
+ case 'general':
233
+ // CRITICAL FIX: Simple questions should NEVER use ReAct
234
+ // Only use ReAct for truly complex multi-step queries
235
+ // Simple questions (explain, find, understand) go directly to AskQuestionUseCase
236
+ if (this.isSimpleQuestion(query)) {
237
+ routingResult = await this.handleAsk(query, memories);
238
+ }
239
+ else {
240
+ // For complex queries, check if ReAct is appropriate
241
+ const shouldUseReAct = this.shouldUseReAct(query, memories);
242
+ if (shouldUseReAct) {
243
+ routingResult = await this.handleReAct(query, memories);
244
+ }
245
+ else {
246
+ // Default to AskQuestion for understand/general queries
247
+ routingResult = await this.handleAsk(query, memories);
248
+ }
249
+ }
250
+ break;
251
+ default:
252
+ // CRITICAL FIX: Default to AskQuestion, not ReAct
253
+ routingResult = await this.handleAsk(query, memories);
254
+ break;
255
+ }
256
+ // Attach routing decision to result
257
+ routingResult.routingDecision = routingDecision;
258
+ routingResult.routingRunId = routingRunId;
259
+ // End routing trace
260
+ executionTracer.endRun();
261
+ // Record routing feedback
262
+ try {
263
+ agentFeedbackManager.recordFeedback({
264
+ runId: routingRunId,
265
+ agentName: 'intelligent-router',
266
+ operation: 'route',
267
+ query: request.query,
268
+ outcome: routingResult.success ? 'success' : 'failure',
269
+ userAction: 'not_required', // Internal routing - no review flow
270
+ errors: routingResult.error ? [routingResult.error] : undefined,
271
+ });
272
+ }
273
+ catch {
274
+ // Non-blocking
275
+ }
276
+ return routingResult;
277
+ }
278
+ catch (error) {
279
+ // End run on error
280
+ executionTracer.endRun();
281
+ // Record failure
282
+ try {
283
+ agentFeedbackManager.recordFeedback({
284
+ runId: routingRunId,
285
+ agentName: 'intelligent-router',
286
+ operation: 'route',
287
+ query: request.query,
288
+ outcome: 'failure',
289
+ userAction: 'not_required', // Error case - no review flow
290
+ errors: [error instanceof Error ? error.message : String(error)],
291
+ });
292
+ }
293
+ catch {
294
+ // Non-blocking
295
+ }
296
+ return {
297
+ intent,
298
+ action: selectedAction === 'orchestrate' ? 'general' : selectedAction,
299
+ result: null,
300
+ success: false,
301
+ error: error instanceof Error ? error.message : String(error),
302
+ routingDecision,
303
+ routingRunId,
304
+ };
305
+ }
306
+ }
307
+ catch (outerError) {
308
+ // Catch any errors from the outer try block (validation, classification, etc.)
309
+ executionTracer.endRun();
310
+ try {
311
+ agentFeedbackManager.recordFeedback({
312
+ runId: routingRunId,
313
+ agentName: 'intelligent-router',
314
+ operation: 'route',
315
+ query: request.query,
316
+ outcome: 'failure',
317
+ userAction: 'not_required', // Error case - no review flow
318
+ errors: [outerError instanceof Error ? outerError.message : String(outerError)],
319
+ });
320
+ }
321
+ catch {
322
+ // Non-blocking
323
+ }
324
+ return {
325
+ intent: 'error',
326
+ action: 'general',
327
+ result: null,
328
+ success: false,
329
+ error: outerError instanceof Error ? outerError.message : String(outerError),
330
+ routingRunId,
331
+ };
332
+ }
333
+ }
334
+ /**
335
+ * Classify intent using AI and memory context
336
+ * More accurate than keyword-based classification
337
+ */
338
+ async classifyIntentWithMemory(query, memories) {
339
+ if (!this.aiService) {
340
+ return this.intentClassifier.classify(query);
341
+ }
342
+ // Build memory context
343
+ const memoryContext = memories
344
+ .slice(0, 5) // Use top 5 most relevant
345
+ .map((m, i) => `${i + 1}. ${m.description} (${m.type})`)
346
+ .join('\n');
347
+ const prompt = `Classify the intent of this user query. Consider past experiences that might inform the classification.
348
+
349
+ Query: "${query}"
350
+
351
+ Relevant Past Experiences:
352
+ ${memoryContext}
353
+
354
+ Classify the intent as ONE of: explain, refactor, debug, implement, understand, find, modify, multi-file-modify, index, review, test, plan, general
355
+
356
+ Consider:
357
+ - If similar queries were handled successfully before, use that intent
358
+ - If past experiences suggest a specific approach, use that
359
+ - If the query is complex and requires planning, use "plan"
360
+ - If it's a simple question, use "understand" or "find"
361
+
362
+ Respond with ONLY the intent word (e.g., "explain", "plan", "understand"):`;
363
+ try {
364
+ const response = await this.aiService.chat(prompt, []);
365
+ const intent = response.trim().toLowerCase().split(/\s+/)[0];
366
+ // Validate intent
367
+ const validIntents = ['explain', 'refactor', 'debug', 'implement', 'understand', 'find', 'modify', 'multi-file-modify', 'index', 'review', 'test', 'plan', 'general'];
368
+ if (validIntents.includes(intent)) {
369
+ return intent;
370
+ }
371
+ }
372
+ catch (error) {
373
+ // Fallback to keyword-based
374
+ }
375
+ return this.intentClassifier.classify(query);
376
+ }
377
+ /**
378
+ * Check if query is a simple question (explain, find, understand)
379
+ * Simple questions should NEVER use ReAct - they go directly to AskQuestionUseCase
380
+ */
381
+ isSimpleQuestion(query) {
382
+ const lower = query.toLowerCase();
383
+ // Simple question patterns
384
+ const simplePatterns = [
385
+ /^(what|where|how|why|when|who|which|is|are|does|do|can|could|will|would)\s+/i,
386
+ /^(explain|describe|tell me about|show me|find|locate|search for)/i,
387
+ /^(what is|what are|where is|where are|how does|how do|how is|how are)/i,
388
+ /\?$/, // Ends with question mark
389
+ ];
390
+ // Check if query matches simple question patterns
391
+ const isQuestion = simplePatterns.some(pattern => pattern.test(query));
392
+ // Simple if it's a question AND doesn't require multiple steps
393
+ const isSingleStep = !this.isComplexQuery(query);
394
+ return isQuestion && isSingleStep;
395
+ }
396
+ /**
397
+ * Determine if ReAct should be used based on query complexity and past experiences
398
+ * CRITICAL: Only use ReAct for truly complex multi-step queries
399
+ */
400
+ shouldUseReAct(query, memories) {
401
+ // NEVER use ReAct for simple questions
402
+ if (this.isSimpleQuestion(query)) {
403
+ return false;
404
+ }
405
+ // Check query complexity - must be truly complex
406
+ if (!this.isComplexQuery(query)) {
407
+ return false;
408
+ }
409
+ // Additional check: Query must require multiple tools/steps
410
+ const requiresMultipleSteps = this.requiresMultipleSteps(query);
411
+ if (!requiresMultipleSteps) {
412
+ return false;
413
+ }
414
+ // Check memories for similar queries that used ReAct successfully
415
+ // But only if query is already complex
416
+ if (memories.length > 0) {
417
+ const similarQueries = memories.filter(m => {
418
+ const desc = m.description.toLowerCase();
419
+ const queryLower = query.toLowerCase();
420
+ // Check if memory mentions ReAct or similar complex handling
421
+ return desc.includes('react') ||
422
+ desc.includes('complex') ||
423
+ desc.includes('multi-step') ||
424
+ (desc.includes(queryLower.split(' ')[0]) && m.metadata?.action === 'react');
425
+ });
426
+ // If we have memories of similar queries using ReAct, use it
427
+ if (similarQueries.length > 0) {
428
+ return true;
429
+ }
430
+ }
431
+ return false;
432
+ }
433
+ /**
434
+ * Check if query requires multiple steps/tools
435
+ */
436
+ requiresMultipleSteps(query) {
437
+ const lower = query.toLowerCase();
438
+ // Multi-step indicators
439
+ const multiStepIndicators = [
440
+ 'and then',
441
+ 'after that',
442
+ 'also',
443
+ 'first',
444
+ 'second',
445
+ 'third',
446
+ 'finally',
447
+ 'then',
448
+ 'next',
449
+ 'step',
450
+ 'steps',
451
+ 'multiple',
452
+ 'several',
453
+ 'check',
454
+ 'verify',
455
+ 'debug',
456
+ 'fix',
457
+ 'and',
458
+ 'while',
459
+ 'during',
460
+ ];
461
+ // Count multi-step indicators
462
+ const indicatorCount = multiStepIndicators.filter(indicator => lower.includes(indicator)).length;
463
+ // Requires multiple steps if 2+ indicators or very long query
464
+ return indicatorCount >= 2 || query.split(' ').length > 20;
465
+ }
466
+ async checkIfIndexingNeeded(context) {
467
+ // Quick mode - bypass indexing entirely, use direct file reading
468
+ if (context?.quickMode) {
469
+ return false;
470
+ }
471
+ // FAKE_AI mode never needs indexing - for demos and testing
472
+ if (process.env.CODEHERE_FAKE_AI === '1') {
473
+ return false;
474
+ }
475
+ // Local provider with no embeddings support - skip indexing
476
+ if (process.env.CODEHERE_AI_PROVIDER === 'local') {
477
+ return false;
478
+ }
479
+ if (context?.hasIndex === false)
480
+ return true;
481
+ try {
482
+ const { container } = await import('./dependency-container.js');
483
+ // Use per-repo embedding repository for codebase isolation
484
+ const repo = container.getEmbeddingRepository(process.cwd());
485
+ // Check if any embeddings exist
486
+ const testSearch = await repo.searchWithEmbedding([0.1], 1);
487
+ return testSearch.length === 0;
488
+ }
489
+ catch {
490
+ return true; // Assume needs indexing if check fails
491
+ }
492
+ }
493
+ async handleAsk(query, memories) {
494
+ try {
495
+ const { container } = await import('./dependency-container.js');
496
+ // Use per-repo use case for codebase isolation
497
+ const useCase = container.getAskQuestionUseCase(process.cwd());
498
+ const result = await useCase.execute({ query, maxResults: 15 });
499
+ // Record successful routing in memory
500
+ if (this.memoryStream && memories && memories.length > 0) {
501
+ await this.memoryStream.recordObservation(`Successfully routed query to AskQuestionUseCase: ${query}`, {
502
+ query,
503
+ action: 'ask',
504
+ memoriesUsed: memories.length,
505
+ });
506
+ }
507
+ return {
508
+ intent: 'understand',
509
+ action: 'ask',
510
+ result,
511
+ success: result.chunks.length > 0,
512
+ message: result.answer,
513
+ memoriesUsed: memories?.length || 0,
514
+ };
515
+ }
516
+ catch (error) {
517
+ return {
518
+ intent: 'understand',
519
+ action: 'ask',
520
+ result: null,
521
+ success: false,
522
+ error: error instanceof Error ? error.message : String(error),
523
+ memoriesUsed: memories?.length || 0,
524
+ };
525
+ }
526
+ }
527
+ async handleExplainWithWorkflow(query, symbols, memories) {
528
+ // Try deterministic workflow first (faster, no ReAct overhead)
529
+ try {
530
+ const { container } = await import('./dependency-container.js');
531
+ const { ExplainWorkflow } = await import('../workflows/deterministic-workflows.js');
532
+ // Use per-repo embedding repository for codebase isolation
533
+ const explainWorkflow = new ExplainWorkflow(container.getEmbeddingRepository(process.cwd()), container.aiService);
534
+ const workflowResult = await explainWorkflow.execute(query);
535
+ if (workflowResult.success) {
536
+ return {
537
+ intent: 'explain',
538
+ action: 'explain',
539
+ result: workflowResult.result,
540
+ success: true,
541
+ message: workflowResult.result?.explanation || 'Explanation generated',
542
+ memoriesUsed: memories?.length || 0,
543
+ };
544
+ }
545
+ }
546
+ catch (error) {
547
+ // Fallback to original implementation if workflow fails
548
+ console.warn('Workflow failed, falling back to standard explain:', error);
549
+ }
550
+ // Fallback to standard explain
551
+ return await this.handleExplain(query, symbols, memories);
552
+ }
553
+ async handleExplain(query, symbols, memories) {
554
+ // Extract filepath from query
555
+ const filepath = this.extractFilepath(query);
556
+ if (!filepath) {
557
+ // No filepath found, treat as ask query
558
+ return await this.handleAsk(query, memories);
559
+ }
560
+ try {
561
+ const { container } = await import('./dependency-container.js');
562
+ const useCase = container.explainFileUseCase;
563
+ const result = await useCase.execute({ filepath });
564
+ // Record successful routing
565
+ if (this.memoryStream && memories && memories.length > 0) {
566
+ await this.memoryStream.recordObservation(`Successfully routed to ExplainFileUseCase: ${query}`, {
567
+ query,
568
+ action: 'explain',
569
+ filepath,
570
+ memoriesUsed: memories.length,
571
+ });
572
+ }
573
+ return {
574
+ intent: 'explain',
575
+ action: 'explain',
576
+ result,
577
+ success: true,
578
+ message: result.explanation,
579
+ memoriesUsed: memories?.length || 0,
580
+ };
581
+ }
582
+ catch (error) {
583
+ return {
584
+ intent: 'explain',
585
+ action: 'explain',
586
+ result: null,
587
+ success: false,
588
+ error: error instanceof Error ? error.message : String(error),
589
+ memoriesUsed: memories?.length || 0,
590
+ };
591
+ }
592
+ }
593
+ async handleEdit(query, symbols, memories) {
594
+ // Extract filepath and instruction
595
+ let { filepath, instruction } = this.extractEditParams(query);
596
+ // CRITICAL: Fast security check BEFORE any expensive operations (file search, reading, etc.)
597
+ // This prevents wasting time and tokens on dangerous code
598
+ if (instruction) {
599
+ const securityCheck = await this.fastSecurityCheck(instruction);
600
+ if (!securityCheck.allowed) {
601
+ return {
602
+ intent: 'edit',
603
+ action: 'edit',
604
+ result: null,
605
+ success: false,
606
+ error: securityCheck.reason,
607
+ memoriesUsed: memories?.length || 0,
608
+ };
609
+ }
610
+ }
611
+ console.log(`[IntelligentRouter] Edit query: ${query}`);
612
+ console.log(`[IntelligentRouter] Extracted filepath: ${filepath || 'none'}`);
613
+ console.log(`[IntelligentRouter] Extracted instruction: ${instruction || 'none'}`);
614
+ console.log(`[IntelligentRouter] Symbols found: ${symbols.join(', ')}`);
615
+ // If no filepath found but we have symbols (class/function names), search for the file
616
+ if (!filepath && symbols.length > 0) {
617
+ // Filter out common words and prioritize capitalized names (likely class/function names)
618
+ const meaningfulSymbols = symbols.filter(s => {
619
+ const lower = s.toLowerCase();
620
+ // Exclude common words
621
+ return !['in', 'to', 'the', 'a', 'an', 'and', 'or', 'of', 'for', 'with', 'from'].includes(lower) &&
622
+ s.length > 2; // At least 3 characters
623
+ });
624
+ // Prioritize capitalized names (classes) and camelCase (functions)
625
+ const prioritizedSymbols = meaningfulSymbols.sort((a, b) => {
626
+ const aIsClass = /^[A-Z]/.test(a);
627
+ const bIsClass = /^[A-Z]/.test(b);
628
+ if (aIsClass && !bIsClass)
629
+ return -1;
630
+ if (!aIsClass && bIsClass)
631
+ return 1;
632
+ return b.length - a.length; // Longer names are more specific
633
+ });
634
+ console.log(`[IntelligentRouter] Filtered symbols: ${prioritizedSymbols.join(', ')}`);
635
+ if (prioritizedSymbols.length > 0) {
636
+ console.log(`[IntelligentRouter] Searching for file containing symbol: ${prioritizedSymbols[0]}`);
637
+ filepath = await this.findFileBySymbol(prioritizedSymbols[0], query);
638
+ console.log(`[IntelligentRouter] Found filepath: ${filepath || 'none'}`);
639
+ }
640
+ }
641
+ if (!filepath || !instruction) {
642
+ console.error(`[IntelligentRouter] Missing filepath or instruction. filepath: ${filepath}, instruction: ${instruction}`);
643
+ return {
644
+ intent: 'edit',
645
+ action: 'edit',
646
+ result: null,
647
+ success: false,
648
+ error: 'Could not extract filepath and instruction from query. Format: "edit <file> <instruction>" or "fix <file> <what to fix>" or mention the class/function name',
649
+ memoriesUsed: memories?.length || 0,
650
+ };
651
+ }
652
+ console.log(`[IntelligentRouter] Proceeding with edit: ${filepath} - ${instruction}`);
653
+ try {
654
+ const { container } = await import('./dependency-container.js');
655
+ const useCase = container.editFileUseCase;
656
+ const result = await useCase.execute({ filepath, instruction });
657
+ // Record successful routing
658
+ if (this.memoryStream && memories && memories.length > 0) {
659
+ await this.memoryStream.recordObservation(`Successfully routed to EditFileUseCase: ${query}`, {
660
+ query,
661
+ action: 'edit',
662
+ filepath,
663
+ memoriesUsed: memories.length,
664
+ success: result.success,
665
+ });
666
+ }
667
+ return {
668
+ intent: 'edit',
669
+ action: 'edit',
670
+ result,
671
+ success: result.success,
672
+ message: result.success ? 'Edit applied successfully' : result.error,
673
+ error: result.error,
674
+ memoriesUsed: memories?.length || 0,
675
+ };
676
+ }
677
+ catch (error) {
678
+ return {
679
+ intent: 'edit',
680
+ action: 'edit',
681
+ result: null,
682
+ success: false,
683
+ error: error instanceof Error ? error.message : String(error),
684
+ memoriesUsed: memories?.length || 0,
685
+ };
686
+ }
687
+ }
688
+ async handleReAct(query, memories) {
689
+ try {
690
+ const { container } = await import('./dependency-container.js');
691
+ const useCase = container.reactOrchestrationUseCase;
692
+ // Pass memories to ReAct for context
693
+ const result = await useCase.execute({
694
+ query,
695
+ maxTurns: 15,
696
+ context: {
697
+ memories: memories || [],
698
+ },
699
+ });
700
+ // Record successful routing
701
+ if (this.memoryStream && memories && memories.length > 0) {
702
+ await this.memoryStream.recordObservation(`Successfully routed complex query to ReAct: ${query}`, {
703
+ query,
704
+ action: 'react',
705
+ memoriesUsed: memories.length,
706
+ steps: result.trajectory.steps.length,
707
+ });
708
+ }
709
+ return {
710
+ intent: 'general',
711
+ action: 'react',
712
+ result,
713
+ success: result.trajectory.success,
714
+ message: result.answer,
715
+ memoriesUsed: memories?.length || 0,
716
+ };
717
+ }
718
+ catch (error) {
719
+ return {
720
+ intent: 'general',
721
+ action: 'react',
722
+ result: null,
723
+ success: false,
724
+ error: error instanceof Error ? error.message : String(error),
725
+ memoriesUsed: memories?.length || 0,
726
+ };
727
+ }
728
+ }
729
+ async handleIndex(query) {
730
+ return {
731
+ intent: 'index',
732
+ action: 'index',
733
+ result: { message: 'Use "codehere index" command to index the codebase' },
734
+ success: false,
735
+ message: 'To index the codebase, run: codehere index',
736
+ };
737
+ }
738
+ async handlePlan(query, memories) {
739
+ try {
740
+ const { container } = await import('./dependency-container.js');
741
+ const useCase = container.planningUseCase;
742
+ const result = await useCase.execute({
743
+ goal: query,
744
+ planningMode: 'hybrid',
745
+ context: {
746
+ // Pass memories for planning context
747
+ },
748
+ });
749
+ // Record successful planning
750
+ if (this.memoryStream && memories && memories.length > 0) {
751
+ await this.memoryStream.recordObservation(`Successfully routed to Planning Module: ${query}`, {
752
+ query,
753
+ action: 'plan',
754
+ memoriesUsed: memories.length,
755
+ subPlans: result.plan.subPlans.length,
756
+ });
757
+ }
758
+ return {
759
+ intent: 'plan',
760
+ action: 'plan',
761
+ result,
762
+ success: true,
763
+ message: `Plan created with ${result.plan.subPlans.length} sub-plans`,
764
+ memoriesUsed: memories?.length || 0,
765
+ };
766
+ }
767
+ catch (error) {
768
+ return {
769
+ intent: 'plan',
770
+ action: 'plan',
771
+ result: null,
772
+ success: false,
773
+ error: error instanceof Error ? error.message : String(error),
774
+ memoriesUsed: memories?.length || 0,
775
+ };
776
+ }
777
+ }
778
+ async handleOrchestrate(query, memories) {
779
+ try {
780
+ const { container } = await import('./dependency-container.js');
781
+ const orchestrator = container.multiAgentOrchestrator;
782
+ const result = await orchestrator.orchestrate({
783
+ goal: query,
784
+ mode: 'full', // Plan + Execute + Validate
785
+ context: {
786
+ // Pass memories context if needed
787
+ },
788
+ });
789
+ // Record successful orchestration
790
+ if (this.memoryStream && memories && memories.length > 0) {
791
+ await this.memoryStream.recordObservation(`Successfully routed compound instruction to Orchestrator: ${query}`, {
792
+ query,
793
+ action: 'orchestrate',
794
+ memoriesUsed: memories.length,
795
+ planSubPlans: result.plan?.subPlans.length || 0,
796
+ executionCompleted: result.execution?.completedSubPlans || 0,
797
+ });
798
+ }
799
+ return {
800
+ intent: 'plan',
801
+ action: 'plan',
802
+ result,
803
+ success: result.success,
804
+ message: result.message,
805
+ error: result.success ? undefined : result.message,
806
+ memoriesUsed: memories?.length || 0,
807
+ };
808
+ }
809
+ catch (error) {
810
+ return {
811
+ intent: 'plan',
812
+ action: 'plan',
813
+ result: null,
814
+ success: false,
815
+ error: error instanceof Error ? error.message : String(error),
816
+ memoriesUsed: memories?.length || 0,
817
+ };
818
+ }
819
+ }
820
+ extractFilepath(query) {
821
+ // Look for file paths in query
822
+ const patterns = [
823
+ /(?:file|in|from|at)\s+([^\s]+\.(ts|js|tsx|jsx|py|java|cpp|go|rs|rb|php|vue|svelte|html|css|json|yaml|yml|md|txt|sh|bash))/i,
824
+ /([a-zA-Z0-9_\-/]+\.(ts|js|tsx|jsx|py|java|cpp|go|rs|rb|php|vue|svelte|html|css|json|yaml|yml|md|txt|sh|bash))/,
825
+ /src\/[^\s]+/,
826
+ /\.\/[^\s]+/,
827
+ ];
828
+ for (const pattern of patterns) {
829
+ const match = query.match(pattern);
830
+ if (match) {
831
+ return match[1] || match[0];
832
+ }
833
+ }
834
+ return null;
835
+ }
836
+ extractEditParams(query) {
837
+ const filepath = this.extractFilepath(query);
838
+ if (!filepath) {
839
+ return { filepath: null, instruction: query };
840
+ }
841
+ // Remove filepath from query to get instruction
842
+ const instruction = query
843
+ .replace(new RegExp(filepath.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'gi'), '')
844
+ .replace(/(?:edit|fix|modify|change|update|add to|remove from)\s+/i, '')
845
+ .trim();
846
+ return { filepath, instruction: instruction || 'Make the requested changes' };
847
+ }
848
+ isComplexQuery(query) {
849
+ const lower = query.toLowerCase();
850
+ // Complex if it requires multiple steps
851
+ const complexIndicators = [
852
+ 'and then',
853
+ 'after that',
854
+ 'also',
855
+ 'multiple',
856
+ 'several',
857
+ 'steps',
858
+ 'first',
859
+ 'second',
860
+ 'finally',
861
+ 'create',
862
+ 'build',
863
+ 'implement',
864
+ 'refactor',
865
+ ];
866
+ return complexIndicators.some(indicator => lower.includes(indicator)) ||
867
+ query.split(' ').length > 15; // Long queries are likely complex
868
+ }
869
+ /**
870
+ * Fast security check using pattern matching (before expensive operations)
871
+ * Synchronous pattern matching - instant rejection for dangerous patterns
872
+ */
873
+ fastSecurityCheck(query) {
874
+ // Fast pattern-based check for obvious security issues (synchronous, no API calls)
875
+ const lower = query.toLowerCase();
876
+ // Dangerous patterns that should be blocked immediately
877
+ const dangerousPatterns = [
878
+ { pattern: /execute.*user.*input|eval.*user|exec.*user/i, reason: 'Security vulnerabilities detected: 1 critical, 0 high severity findings. Review and fix before applying.' },
879
+ { pattern: /shell.*command|system.*call|process\.exec/i, reason: 'Security vulnerabilities detected: 1 critical, 0 high severity findings. Review and fix before applying.' },
880
+ { pattern: /bypass.*security|disable.*security|remove.*validation/i, reason: 'Security vulnerabilities detected: 1 critical, 0 high severity findings. Review and fix before applying.' },
881
+ { pattern: /hardcode.*password|store.*password.*plaintext|plaintext.*password/i, reason: 'Security vulnerabilities detected: 0 critical, 1 high severity findings. Review and fix before applying.' },
882
+ ];
883
+ for (const { pattern, reason } of dangerousPatterns) {
884
+ if (pattern.test(query)) {
885
+ return { allowed: false, reason };
886
+ }
887
+ }
888
+ return { allowed: true };
889
+ }
890
+ /**
891
+ * Find file containing a symbol (class/function name)
892
+ * Uses search to locate the file
893
+ */
894
+ async findFileBySymbol(symbol, query) {
895
+ try {
896
+ console.log(`[IntelligentRouter] Searching for symbol: ${symbol}`);
897
+ const { container } = await import('./dependency-container.js');
898
+ const useCase = container.askQuestionUseCase;
899
+ // Search for the symbol - try multiple query variations
900
+ const searchQueries = [
901
+ `Find ${symbol}`,
902
+ `file containing ${symbol}`,
903
+ `Where is ${symbol} defined`,
904
+ `${symbol} class or function`,
905
+ ];
906
+ for (const searchQuery of searchQueries) {
907
+ console.log(`[IntelligentRouter] Trying search query: ${searchQuery}`);
908
+ const result = await useCase.execute({ query: searchQuery, maxResults: 5 });
909
+ // Look for filepath in results
910
+ if (result.chunks && result.chunks.length > 0) {
911
+ // Get the most relevant chunk
912
+ const topChunk = result.chunks[0];
913
+ if (topChunk && topChunk.filepath) {
914
+ // Convert absolute path to relative if needed
915
+ let filepath = topChunk.filepath;
916
+ const cwd = process.cwd();
917
+ if (filepath.startsWith(cwd)) {
918
+ filepath = filepath.substring(cwd.length + 1); // Remove leading slash
919
+ }
920
+ console.log(`[IntelligentRouter] Found filepath from search: ${filepath}`);
921
+ return filepath;
922
+ }
923
+ }
924
+ // Also check answer for filepath mentions
925
+ if (result.answer) {
926
+ const filepathMatch = result.answer.match(/([^\s]+\.(ts|js|tsx|jsx|py|java|cpp|go|rs|rb|php|vue|svelte|html|css|json|yaml|yml|md|txt|sh|bash))/);
927
+ if (filepathMatch) {
928
+ console.log(`[IntelligentRouter] Found filepath from answer: ${filepathMatch[1]}`);
929
+ return filepathMatch[1];
930
+ }
931
+ }
932
+ }
933
+ console.warn(`[IntelligentRouter] Could not find file for symbol: ${symbol}`);
934
+ return null;
935
+ }
936
+ catch (error) {
937
+ console.error(`[IntelligentRouter] Failed to find file by symbol:`, error);
938
+ return null;
939
+ }
940
+ }
941
+ }
942
+ //# sourceMappingURL=intelligent-router.js.map