codehere 0.4.0 → 0.5.0-alpha

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 (324) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +113 -30
  3. package/dist/application/agents/execution-agent.js +2 -2
  4. package/dist/application/agents/execution-agent.js.map +1 -1
  5. package/dist/application/agents/multi-agent-orchestrator.d.ts +1 -0
  6. package/dist/application/agents/multi-agent-orchestrator.d.ts.map +1 -1
  7. package/dist/application/agents/multi-agent-orchestrator.js +10 -3
  8. package/dist/application/agents/multi-agent-orchestrator.js.map +1 -1
  9. package/dist/application/agents/planning-agent.d.ts.map +1 -1
  10. package/dist/application/agents/planning-agent.js +22 -10
  11. package/dist/application/agents/planning-agent.js.map +1 -1
  12. package/dist/application/agents/validation-agent.js +2 -2
  13. package/dist/application/agents/validation-agent.js.map +1 -1
  14. package/dist/application/reasoning/multi-model-planning-strategy.d.ts +21 -0
  15. package/dist/application/reasoning/multi-model-planning-strategy.d.ts.map +1 -0
  16. package/dist/application/reasoning/multi-model-planning-strategy.js +158 -0
  17. package/dist/application/reasoning/multi-model-planning-strategy.js.map +1 -0
  18. package/dist/application/reasoning/reasoning-config.d.ts +15 -0
  19. package/dist/application/reasoning/reasoning-config.d.ts.map +1 -0
  20. package/dist/application/reasoning/reasoning-config.js +50 -0
  21. package/dist/application/reasoning/reasoning-config.js.map +1 -0
  22. package/dist/application/reasoning/reasoning-orchestrator.d.ts +18 -0
  23. package/dist/application/reasoning/reasoning-orchestrator.d.ts.map +1 -0
  24. package/dist/application/reasoning/reasoning-orchestrator.js +170 -0
  25. package/dist/application/reasoning/reasoning-orchestrator.js.map +1 -0
  26. package/dist/application/reasoning/reasoning-strategy.interface.d.ts +24 -0
  27. package/dist/application/reasoning/reasoning-strategy.interface.d.ts.map +1 -0
  28. package/dist/application/reasoning/reasoning-strategy.interface.js +6 -0
  29. package/dist/application/reasoning/reasoning-strategy.interface.js.map +1 -0
  30. package/dist/application/reasoning/role-provider-resolver.d.ts +36 -0
  31. package/dist/application/reasoning/role-provider-resolver.d.ts.map +1 -0
  32. package/dist/application/reasoning/role-provider-resolver.js +74 -0
  33. package/dist/application/reasoning/role-provider-resolver.js.map +1 -0
  34. package/dist/application/reasoning/simple-planning-strategy.d.ts +22 -0
  35. package/dist/application/reasoning/simple-planning-strategy.d.ts.map +1 -0
  36. package/dist/application/reasoning/simple-planning-strategy.js +217 -0
  37. package/dist/application/reasoning/simple-planning-strategy.js.map +1 -0
  38. package/dist/application/reasoning/types.d.ts +65 -0
  39. package/dist/application/reasoning/types.d.ts.map +1 -0
  40. package/dist/application/reasoning/types.js +6 -0
  41. package/dist/application/reasoning/types.js.map +1 -0
  42. package/dist/application/reasoning/validator-strategy.d.ts +56 -0
  43. package/dist/application/reasoning/validator-strategy.d.ts.map +1 -0
  44. package/dist/application/reasoning/validator-strategy.js +103 -0
  45. package/dist/application/reasoning/validator-strategy.js.map +1 -0
  46. package/dist/application/services/dependency-container.d.ts +30 -6
  47. package/dist/application/services/dependency-container.d.ts.map +1 -1
  48. package/dist/application/services/dependency-container.js +96 -44
  49. package/dist/application/services/dependency-container.js.map +1 -1
  50. package/dist/application/services/intelligent-router.d.ts +6 -0
  51. package/dist/application/services/intelligent-router.d.ts.map +1 -1
  52. package/dist/application/services/intelligent-router.js +98 -9
  53. package/dist/application/services/intelligent-router.js.map +1 -1
  54. package/dist/application/use-cases/ask-question-use-case.d.ts +1 -0
  55. package/dist/application/use-cases/ask-question-use-case.d.ts.map +1 -1
  56. package/dist/application/use-cases/ask-question-use-case.js +4 -3
  57. package/dist/application/use-cases/ask-question-use-case.js.map +1 -1
  58. package/dist/application/use-cases/planning-use-case.d.ts +14 -1
  59. package/dist/application/use-cases/planning-use-case.d.ts.map +1 -1
  60. package/dist/application/use-cases/planning-use-case.js +109 -2
  61. package/dist/application/use-cases/planning-use-case.js.map +1 -1
  62. package/dist/domain/entities/memory.d.ts.map +1 -1
  63. package/dist/domain/entities/task.d.ts +1 -1
  64. package/dist/domain/entities/task.d.ts.map +1 -1
  65. package/dist/domain/entities/task.js +2 -2
  66. package/dist/domain/entities/task.js.map +1 -1
  67. package/dist/domain/errors/embeddings-not-found-error.d.ts +9 -0
  68. package/dist/domain/errors/embeddings-not-found-error.d.ts.map +1 -0
  69. package/dist/domain/errors/embeddings-not-found-error.js +13 -0
  70. package/dist/domain/errors/embeddings-not-found-error.js.map +1 -0
  71. package/dist/domain/interfaces/embedding-repository.interface.d.ts +5 -0
  72. package/dist/domain/interfaces/embedding-repository.interface.d.ts.map +1 -1
  73. package/dist/domain/services/environment-mode-manager.d.ts +4 -10
  74. package/dist/domain/services/environment-mode-manager.d.ts.map +1 -1
  75. package/dist/domain/services/environment-mode-manager.js +7 -22
  76. package/dist/domain/services/environment-mode-manager.js.map +1 -1
  77. package/dist/domain/services/query-intent-classifier.d.ts.map +1 -1
  78. package/dist/domain/services/query-intent-classifier.js +20 -1
  79. package/dist/domain/services/query-intent-classifier.js.map +1 -1
  80. package/dist/domain/services/risk-tier-detector.d.ts +8 -9
  81. package/dist/domain/services/risk-tier-detector.d.ts.map +1 -1
  82. package/dist/domain/services/risk-tier-detector.js +53 -40
  83. package/dist/domain/services/risk-tier-detector.js.map +1 -1
  84. package/dist/embed.d.ts.map +1 -1
  85. package/dist/embed.js +18 -8
  86. package/dist/embed.js.map +1 -1
  87. package/dist/index.js +405 -52
  88. package/dist/index.js.map +1 -1
  89. package/dist/infrastructure/ai/cohere-ai-service.js +4 -4
  90. package/dist/infrastructure/ai/cohere-ai-service.js.map +1 -1
  91. package/dist/infrastructure/ai/provider-ai-service.d.ts.map +1 -1
  92. package/dist/infrastructure/ai/provider-ai-service.js +7 -7
  93. package/dist/infrastructure/ai/provider-ai-service.js.map +1 -1
  94. package/dist/infrastructure/cache/query-result-cache.d.ts +14 -55
  95. package/dist/infrastructure/cache/query-result-cache.d.ts.map +1 -1
  96. package/dist/infrastructure/cache/query-result-cache.js +40 -112
  97. package/dist/infrastructure/cache/query-result-cache.js.map +1 -1
  98. package/dist/infrastructure/cache/response-cache.d.ts +10 -78
  99. package/dist/infrastructure/cache/response-cache.d.ts.map +1 -1
  100. package/dist/infrastructure/cache/response-cache.js +22 -198
  101. package/dist/infrastructure/cache/response-cache.js.map +1 -1
  102. package/dist/infrastructure/cache/security-scan-cache.d.ts +8 -49
  103. package/dist/infrastructure/cache/security-scan-cache.d.ts.map +1 -1
  104. package/dist/infrastructure/cache/security-scan-cache.js +25 -102
  105. package/dist/infrastructure/cache/security-scan-cache.js.map +1 -1
  106. package/dist/infrastructure/completion/bash-completion.d.ts +2 -3
  107. package/dist/infrastructure/completion/bash-completion.d.ts.map +1 -1
  108. package/dist/infrastructure/completion/bash-completion.js +11 -87
  109. package/dist/infrastructure/completion/bash-completion.js.map +1 -1
  110. package/dist/infrastructure/completion/fish-completion.d.ts +2 -3
  111. package/dist/infrastructure/completion/fish-completion.d.ts.map +1 -1
  112. package/dist/infrastructure/completion/fish-completion.js +15 -58
  113. package/dist/infrastructure/completion/fish-completion.js.map +1 -1
  114. package/dist/infrastructure/completion/zsh-completion.d.ts +2 -3
  115. package/dist/infrastructure/completion/zsh-completion.d.ts.map +1 -1
  116. package/dist/infrastructure/completion/zsh-completion.js +18 -73
  117. package/dist/infrastructure/completion/zsh-completion.js.map +1 -1
  118. package/dist/infrastructure/config/config-manager.d.ts +10 -0
  119. package/dist/infrastructure/config/config-manager.d.ts.map +1 -1
  120. package/dist/infrastructure/config/config-manager.js +13 -2
  121. package/dist/infrastructure/config/config-manager.js.map +1 -1
  122. package/dist/infrastructure/context/conversation-context.d.ts +27 -31
  123. package/dist/infrastructure/context/conversation-context.d.ts.map +1 -1
  124. package/dist/infrastructure/context/conversation-context.js +95 -136
  125. package/dist/infrastructure/context/conversation-context.js.map +1 -1
  126. package/dist/infrastructure/context/session-manager.d.ts +27 -11
  127. package/dist/infrastructure/context/session-manager.d.ts.map +1 -1
  128. package/dist/infrastructure/context/session-manager.js +69 -73
  129. package/dist/infrastructure/context/session-manager.js.map +1 -1
  130. package/dist/infrastructure/protocols/a2a-metadata.js +1 -1
  131. package/dist/infrastructure/protocols/mcp-oauth.js +1 -1
  132. package/dist/infrastructure/providers/cohere-provider.d.ts.map +1 -1
  133. package/dist/infrastructure/providers/cohere-provider.js +102 -17
  134. package/dist/infrastructure/providers/cohere-provider.js.map +1 -1
  135. package/dist/infrastructure/providers/openrouter-provider.d.ts +42 -0
  136. package/dist/infrastructure/providers/openrouter-provider.d.ts.map +1 -0
  137. package/dist/infrastructure/providers/openrouter-provider.js +401 -0
  138. package/dist/infrastructure/providers/openrouter-provider.js.map +1 -0
  139. package/dist/infrastructure/providers/operation-provider-resolver.d.ts.map +1 -1
  140. package/dist/infrastructure/providers/operation-provider-resolver.js +33 -7
  141. package/dist/infrastructure/providers/operation-provider-resolver.js.map +1 -1
  142. package/dist/infrastructure/security/input-validator.d.ts.map +1 -1
  143. package/dist/infrastructure/security/input-validator.js +19 -6
  144. package/dist/infrastructure/security/input-validator.js.map +1 -1
  145. package/dist/infrastructure/serialization/toon-serializer.d.ts +45 -0
  146. package/dist/infrastructure/serialization/toon-serializer.d.ts.map +1 -0
  147. package/dist/infrastructure/serialization/toon-serializer.js +119 -0
  148. package/dist/infrastructure/serialization/toon-serializer.js.map +1 -0
  149. package/dist/infrastructure/storage/embeddings-path.d.ts +18 -0
  150. package/dist/infrastructure/storage/embeddings-path.d.ts.map +1 -0
  151. package/dist/infrastructure/storage/embeddings-path.js +37 -0
  152. package/dist/infrastructure/storage/embeddings-path.js.map +1 -0
  153. package/dist/infrastructure/storage/plan-repository.d.ts +2 -0
  154. package/dist/infrastructure/storage/plan-repository.d.ts.map +1 -1
  155. package/dist/infrastructure/storage/plan-repository.js +36 -73
  156. package/dist/infrastructure/storage/plan-repository.js.map +1 -1
  157. package/dist/infrastructure/storage/sqlite-embedding-repository.d.ts +10 -1
  158. package/dist/infrastructure/storage/sqlite-embedding-repository.d.ts.map +1 -1
  159. package/dist/infrastructure/storage/sqlite-embedding-repository.js +37 -3
  160. package/dist/infrastructure/storage/sqlite-embedding-repository.js.map +1 -1
  161. package/dist/infrastructure/storage/task-helpers.d.ts +12 -1
  162. package/dist/infrastructure/storage/task-helpers.d.ts.map +1 -1
  163. package/dist/infrastructure/storage/task-helpers.js +48 -8
  164. package/dist/infrastructure/storage/task-helpers.js.map +1 -1
  165. package/dist/infrastructure/storage/task-repository.d.ts +2 -1
  166. package/dist/infrastructure/storage/task-repository.d.ts.map +1 -1
  167. package/dist/infrastructure/storage/task-repository.js +14 -3
  168. package/dist/infrastructure/storage/task-repository.js.map +1 -1
  169. package/dist/infrastructure/telemetry/telemetry-service.d.ts +74 -0
  170. package/dist/infrastructure/telemetry/telemetry-service.d.ts.map +1 -0
  171. package/dist/infrastructure/telemetry/telemetry-service.js +167 -0
  172. package/dist/infrastructure/telemetry/telemetry-service.js.map +1 -0
  173. package/dist/infrastructure/ux/capability-boundaries.d.ts +9 -37
  174. package/dist/infrastructure/ux/capability-boundaries.d.ts.map +1 -1
  175. package/dist/infrastructure/ux/capability-boundaries.js +23 -148
  176. package/dist/infrastructure/ux/capability-boundaries.js.map +1 -1
  177. package/dist/infrastructure/ux/comprehensive-formatter.d.ts +12 -54
  178. package/dist/infrastructure/ux/comprehensive-formatter.d.ts.map +1 -1
  179. package/dist/infrastructure/ux/comprehensive-formatter.js +87 -182
  180. package/dist/infrastructure/ux/comprehensive-formatter.js.map +1 -1
  181. package/dist/infrastructure/ux/contextual-feature-discovery.d.ts +5 -18
  182. package/dist/infrastructure/ux/contextual-feature-discovery.d.ts.map +1 -1
  183. package/dist/infrastructure/ux/contextual-feature-discovery.js +5 -139
  184. package/dist/infrastructure/ux/contextual-feature-discovery.js.map +1 -1
  185. package/dist/infrastructure/ux/feature-discovery.d.ts +3 -33
  186. package/dist/infrastructure/ux/feature-discovery.d.ts.map +1 -1
  187. package/dist/infrastructure/ux/feature-discovery.js +5 -181
  188. package/dist/infrastructure/ux/feature-discovery.js.map +1 -1
  189. package/dist/infrastructure/ux/feedback-prompt.d.ts +15 -31
  190. package/dist/infrastructure/ux/feedback-prompt.d.ts.map +1 -1
  191. package/dist/infrastructure/ux/feedback-prompt.js +30 -166
  192. package/dist/infrastructure/ux/feedback-prompt.js.map +1 -1
  193. package/dist/infrastructure/ux/progress-indicator.d.ts +4 -6
  194. package/dist/infrastructure/ux/progress-indicator.d.ts.map +1 -1
  195. package/dist/infrastructure/ux/progress-indicator.js +35 -50
  196. package/dist/infrastructure/ux/progress-indicator.js.map +1 -1
  197. package/dist/infrastructure/ux/review-checkpoint.d.ts +3 -1
  198. package/dist/infrastructure/ux/review-checkpoint.d.ts.map +1 -1
  199. package/dist/infrastructure/ux/review-checkpoint.js +33 -80
  200. package/dist/infrastructure/ux/review-checkpoint.js.map +1 -1
  201. package/dist/infrastructure/ux/staged-feature-intro.d.ts +14 -39
  202. package/dist/infrastructure/ux/staged-feature-intro.d.ts.map +1 -1
  203. package/dist/infrastructure/ux/staged-feature-intro.js +12 -132
  204. package/dist/infrastructure/ux/staged-feature-intro.js.map +1 -1
  205. package/dist/infrastructure/ux/syntax-highlighter.d.ts +1 -2
  206. package/dist/infrastructure/ux/syntax-highlighter.d.ts.map +1 -1
  207. package/dist/infrastructure/ux/syntax-highlighter.js +67 -148
  208. package/dist/infrastructure/ux/syntax-highlighter.js.map +1 -1
  209. package/dist/infrastructure/validation/agent-feedback.d.ts +25 -89
  210. package/dist/infrastructure/validation/agent-feedback.d.ts.map +1 -1
  211. package/dist/infrastructure/validation/agent-feedback.js +32 -204
  212. package/dist/infrastructure/validation/agent-feedback.js.map +1 -1
  213. package/dist/infrastructure/validation/agent-validation-helper.d.ts +53 -53
  214. package/dist/infrastructure/validation/agent-validation-helper.d.ts.map +1 -1
  215. package/dist/infrastructure/validation/agent-validation-helper.js +110 -61
  216. package/dist/infrastructure/validation/agent-validation-helper.js.map +1 -1
  217. package/dist/infrastructure/validation/review-handler.d.ts +13 -41
  218. package/dist/infrastructure/validation/review-handler.d.ts.map +1 -1
  219. package/dist/infrastructure/validation/review-handler.js +23 -189
  220. package/dist/infrastructure/validation/review-handler.js.map +1 -1
  221. package/dist/infrastructure/validation/summary-aggregator.d.ts +25 -22
  222. package/dist/infrastructure/validation/summary-aggregator.d.ts.map +1 -1
  223. package/dist/infrastructure/validation/summary-aggregator.js +47 -133
  224. package/dist/infrastructure/validation/summary-aggregator.js.map +1 -1
  225. package/dist/infrastructure/validation/summary-extractor.d.ts +13 -48
  226. package/dist/infrastructure/validation/summary-extractor.d.ts.map +1 -1
  227. package/dist/infrastructure/validation/summary-extractor.js +32 -89
  228. package/dist/infrastructure/validation/summary-extractor.js.map +1 -1
  229. package/dist/infrastructure/validation/trace-summary.d.ts +30 -57
  230. package/dist/infrastructure/validation/trace-summary.d.ts.map +1 -1
  231. package/dist/infrastructure/validation/trace-summary.js +37 -356
  232. package/dist/infrastructure/validation/trace-summary.js.map +1 -1
  233. package/dist/monitoring.d.ts +1 -1
  234. package/dist/monitoring.d.ts.map +1 -1
  235. package/dist/monitoring.js +12 -9
  236. package/dist/monitoring.js.map +1 -1
  237. package/dist/parallel-processor.d.ts.map +1 -1
  238. package/dist/parallel-processor.js +124 -45
  239. package/dist/parallel-processor.js.map +1 -1
  240. package/dist/presentation/cli/commands/ask-command.d.ts +2 -0
  241. package/dist/presentation/cli/commands/ask-command.d.ts.map +1 -1
  242. package/dist/presentation/cli/commands/ask-command.js +316 -129
  243. package/dist/presentation/cli/commands/ask-command.js.map +1 -1
  244. package/dist/presentation/cli/commands/config-command.d.ts.map +1 -1
  245. package/dist/presentation/cli/commands/config-command.js +22 -8
  246. package/dist/presentation/cli/commands/config-command.js.map +1 -1
  247. package/dist/presentation/cli/commands/decision-command.js +23 -6
  248. package/dist/presentation/cli/commands/decision-command.js.map +1 -1
  249. package/dist/presentation/cli/commands/docs-command.d.ts +3 -1
  250. package/dist/presentation/cli/commands/docs-command.d.ts.map +1 -1
  251. package/dist/presentation/cli/commands/docs-command.js +13 -184
  252. package/dist/presentation/cli/commands/docs-command.js.map +1 -1
  253. package/dist/presentation/cli/commands/fix-command.d.ts +2 -0
  254. package/dist/presentation/cli/commands/fix-command.d.ts.map +1 -1
  255. package/dist/presentation/cli/commands/fix-command.js +61 -276
  256. package/dist/presentation/cli/commands/fix-command.js.map +1 -1
  257. package/dist/presentation/cli/commands/help-command.d.ts.map +1 -1
  258. package/dist/presentation/cli/commands/help-command.js +21 -1
  259. package/dist/presentation/cli/commands/help-command.js.map +1 -1
  260. package/dist/presentation/cli/commands/memory-command.d.ts +17 -0
  261. package/dist/presentation/cli/commands/memory-command.d.ts.map +1 -0
  262. package/dist/presentation/cli/commands/memory-command.js +252 -0
  263. package/dist/presentation/cli/commands/memory-command.js.map +1 -0
  264. package/dist/presentation/cli/commands/models-command.d.ts +13 -0
  265. package/dist/presentation/cli/commands/models-command.d.ts.map +1 -0
  266. package/dist/presentation/cli/commands/models-command.js +194 -0
  267. package/dist/presentation/cli/commands/models-command.js.map +1 -0
  268. package/dist/presentation/cli/commands/orchestrate-command.d.ts +1 -0
  269. package/dist/presentation/cli/commands/orchestrate-command.d.ts.map +1 -1
  270. package/dist/presentation/cli/commands/orchestrate-command.js +129 -14
  271. package/dist/presentation/cli/commands/orchestrate-command.js.map +1 -1
  272. package/dist/presentation/cli/commands/plan-command.d.ts +1 -0
  273. package/dist/presentation/cli/commands/plan-command.d.ts.map +1 -1
  274. package/dist/presentation/cli/commands/plan-command.js +134 -25
  275. package/dist/presentation/cli/commands/plan-command.js.map +1 -1
  276. package/dist/presentation/cli/commands/product-command.d.ts +6 -4
  277. package/dist/presentation/cli/commands/product-command.d.ts.map +1 -1
  278. package/dist/presentation/cli/commands/product-command.js +12 -178
  279. package/dist/presentation/cli/commands/product-command.js.map +1 -1
  280. package/dist/presentation/cli/commands/react-command.d.ts.map +1 -1
  281. package/dist/presentation/cli/commands/react-command.js +5 -1
  282. package/dist/presentation/cli/commands/react-command.js.map +1 -1
  283. package/dist/presentation/cli/commands/review-command.d.ts +7 -7
  284. package/dist/presentation/cli/commands/review-command.d.ts.map +1 -1
  285. package/dist/presentation/cli/commands/review-command.js +167 -16
  286. package/dist/presentation/cli/commands/review-command.js.map +1 -1
  287. package/dist/presentation/cli/commands/run-command.d.ts +6 -8
  288. package/dist/presentation/cli/commands/run-command.d.ts.map +1 -1
  289. package/dist/presentation/cli/commands/run-command.js +182 -23
  290. package/dist/presentation/cli/commands/run-command.js.map +1 -1
  291. package/dist/presentation/cli/commands/setup-command.d.ts.map +1 -1
  292. package/dist/presentation/cli/commands/setup-command.js +15 -0
  293. package/dist/presentation/cli/commands/setup-command.js.map +1 -1
  294. package/dist/presentation/cli/commands/smart-command.d.ts.map +1 -1
  295. package/dist/presentation/cli/commands/smart-command.js +74 -6
  296. package/dist/presentation/cli/commands/smart-command.js.map +1 -1
  297. package/dist/presentation/cli/commands/status-command.d.ts +3 -0
  298. package/dist/presentation/cli/commands/status-command.d.ts.map +1 -1
  299. package/dist/presentation/cli/commands/status-command.js +151 -156
  300. package/dist/presentation/cli/commands/status-command.js.map +1 -1
  301. package/dist/presentation/cli/commands/suggest-command.d.ts +3 -5
  302. package/dist/presentation/cli/commands/suggest-command.d.ts.map +1 -1
  303. package/dist/presentation/cli/commands/suggest-command.js +132 -19
  304. package/dist/presentation/cli/commands/suggest-command.js.map +1 -1
  305. package/dist/presentation/cli/error-display.d.ts.map +1 -1
  306. package/dist/presentation/cli/error-display.js +75 -17
  307. package/dist/presentation/cli/error-display.js.map +1 -1
  308. package/dist/search.d.ts.map +1 -1
  309. package/dist/search.js +6 -1
  310. package/dist/search.js.map +1 -1
  311. package/dist/session.d.ts +1 -0
  312. package/dist/session.d.ts.map +1 -1
  313. package/dist/session.js +55 -7
  314. package/dist/session.js.map +1 -1
  315. package/dist/tools/bash.d.ts.map +1 -1
  316. package/dist/tools/bash.js +3 -0
  317. package/dist/tools/bash.js.map +1 -1
  318. package/dist/tools/git-tool.js +7 -7
  319. package/dist/tools/git-tool.js.map +1 -1
  320. package/dist/ui.d.ts +11 -0
  321. package/dist/ui.d.ts.map +1 -1
  322. package/dist/ui.js +54 -1
  323. package/dist/ui.js.map +1 -1
  324. package/package.json +14 -4
@@ -3,7 +3,6 @@
3
3
  * Simple DI container for wiring up dependencies
4
4
  */
5
5
  import { CohereAIService } from '../../infrastructure/ai/cohere-ai-service.js';
6
- import { FakeAIService } from '../../infrastructure/ai/fake-ai-service.js';
7
6
  import { SQLiteEmbeddingRepository } from '../../infrastructure/storage/sqlite-embedding-repository.js';
8
7
  import { SQLiteMemoryRepository } from '../../infrastructure/storage/sqlite-memory-repository.js';
9
8
  import { MemoryStreamService } from '../../infrastructure/storage/memory-stream-service.js';
@@ -41,8 +40,6 @@ import { MultiAgentOrchestrator } from '../agents/multi-agent-orchestrator.js';
41
40
  import { PlanningAgent } from '../agents/planning-agent.js';
42
41
  import { ExecutionAgent } from '../agents/execution-agent.js';
43
42
  import { ValidationAgent } from '../agents/validation-agent.js';
44
- import { DocumentationAgent } from '../agents/documentation-agent.js';
45
- import { ProductRequirementsAgent } from '../agents/product-requirements-agent.js';
46
43
  import { SQLiteDecisionRepository } from '../../infrastructure/storage/sqlite-decision-repository.js';
47
44
  import { DecisionRecorder } from '../../domain/services/decision-recorder.js';
48
45
  import { DecisionRetriever } from '../../domain/services/decision-retriever.js';
@@ -55,10 +52,12 @@ import { CrossTeamPatternSharing } from '../../domain/services/cross-team-patter
55
52
  import { ProviderRegistry } from '../../infrastructure/providers/provider-registry.js';
56
53
  import { CohereProvider } from '../../infrastructure/providers/cohere-provider.js';
57
54
  import { OpenAIProvider } from '../../infrastructure/providers/openai-provider.js';
55
+ import { OpenRouterProvider } from '../../infrastructure/providers/openrouter-provider.js';
58
56
  import { FakeProvider } from '../../infrastructure/providers/fake-provider.js';
59
57
  import { LocalLLMProvider } from '../../infrastructure/providers/local-llm-provider.js';
60
58
  import { ProviderAIService } from '../../infrastructure/ai/provider-ai-service.js';
61
59
  import { loadProviderConfig, configToOperationConfig } from '../../infrastructure/providers/provider-config-loader.js';
60
+ import { executionTracer } from '../../infrastructure/observability/execution-tracer.js';
62
61
  export class DependencyContainer {
63
62
  // Infrastructure
64
63
  _aiService = null;
@@ -172,11 +171,42 @@ export class DependencyContainer {
172
171
  console.warn('[ProviderRegistry] OpenAIProvider initialization skipped:', error instanceof Error ? error.message : String(error));
173
172
  }
174
173
  }
174
+ // Register OpenRouterProvider if API key is available
175
+ if (process.env.OPENROUTER_API_KEY) {
176
+ try {
177
+ const openRouterProvider = new OpenRouterProvider();
178
+ this._providerRegistry.register(openRouterProvider);
179
+ }
180
+ catch (error) {
181
+ console.warn('[ProviderRegistry] OpenRouterProvider initialization skipped:', error instanceof Error ? error.message : String(error));
182
+ }
183
+ }
175
184
  // Set default provider based on CODEHERE_AI_PROVIDER env var
176
- // Priority: local > openai > cohere (default)
185
+ // Priority: local > openrouter > openai > cohere (default)
177
186
  if (requestedProvider === 'local' && this._providerRegistry.has('local')) {
178
187
  this._providerRegistry.setDefault('local');
179
188
  }
189
+ else if (requestedProvider === 'openrouter' && this._providerRegistry.has('openrouter')) {
190
+ const openRouter = this._providerRegistry.get('openrouter');
191
+ const supportsEmbeddings = openRouter?.capabilities.embedding === true;
192
+ if (supportsEmbeddings) {
193
+ this._providerRegistry.setDefault('openrouter');
194
+ }
195
+ else {
196
+ // Fallback to embedding-capable provider to avoid runtime errors
197
+ if (this._providerRegistry.has('cohere')) {
198
+ this._providerRegistry.setDefault('cohere');
199
+ console.warn('[ProviderRegistry] OpenRouter selected but embeddings unsupported; falling back to Cohere for embedding-dependent flows.');
200
+ }
201
+ else if (this._providerRegistry.has('openai')) {
202
+ this._providerRegistry.setDefault('openai');
203
+ console.warn('[ProviderRegistry] OpenRouter selected but embeddings unsupported; falling back to OpenAI for embedding-dependent flows.');
204
+ }
205
+ else {
206
+ this._providerRegistry.setDefault('openrouter');
207
+ }
208
+ }
209
+ }
180
210
  else if (requestedProvider === 'openai' && this._providerRegistry.has('openai')) {
181
211
  this._providerRegistry.setDefault('openai');
182
212
  }
@@ -210,27 +240,34 @@ export class DependencyContainer {
210
240
  }
211
241
  }
212
242
  catch (error) {
213
- // Fallback logic:
214
- // - If CODEHERE_FAKE_AI=1 and provider registry fails, use FakeAIService (backward compatibility)
215
- // - Otherwise, fall back to CohereAIService
216
- if (process.env.CODEHERE_FAKE_AI === '1') {
217
- console.warn('[DependencyContainer] FakeProvider initialization failed, falling back to FakeAIService:', error instanceof Error ? error.message : String(error));
218
- this._aiService = new FakeAIService();
219
- }
220
- else {
221
- console.warn('[DependencyContainer] ProviderAIService initialization failed, falling back to CohereAIService:', error instanceof Error ? error.message : String(error));
222
- this._aiService = new CohereAIService();
223
- if (this._contextCompressor) {
224
- this._aiService._contextCompressor = this._contextCompressor;
225
- }
243
+ // Fallback to CohereAIService if provider registry fails
244
+ console.warn('[DependencyContainer] ProviderAIService initialization failed, falling back to CohereAIService:', error instanceof Error ? error.message : String(error));
245
+ this._aiService = new CohereAIService();
246
+ if (this._contextCompressor) {
247
+ this._aiService._contextCompressor = this._contextCompressor;
226
248
  }
227
249
  }
228
250
  }
229
251
  return this._aiService;
230
252
  }
253
+ /**
254
+ * Get embedding repository for a specific codebase
255
+ * @param cwd - Current working directory for codebase root detection (defaults to process.cwd())
256
+ * @returns SQLiteEmbeddingRepository instance scoped to the codebase
257
+ */
258
+ getEmbeddingRepository(cwd) {
259
+ // Always create a new instance with the provided cwd to ensure per-repo isolation
260
+ // This ensures each codebase gets its own database path
261
+ return new SQLiteEmbeddingRepository(undefined, cwd);
262
+ }
263
+ /**
264
+ * @deprecated Use getEmbeddingRepository(cwd) instead for per-repo isolation
265
+ * Kept for backward compatibility
266
+ */
231
267
  get embeddingRepository() {
232
268
  if (!this._embeddingRepository) {
233
- this._embeddingRepository = new SQLiteEmbeddingRepository();
269
+ // Use process.cwd() for backward compatibility
270
+ this._embeddingRepository = new SQLiteEmbeddingRepository(undefined, process.cwd());
234
271
  }
235
272
  return this._embeddingRepository;
236
273
  }
@@ -246,6 +283,19 @@ export class DependencyContainer {
246
283
  }
247
284
  return this._memoryStreamService;
248
285
  }
286
+ /**
287
+ * Get ask question use case for a specific codebase
288
+ * @param cwd - Current working directory for codebase root detection (defaults to process.cwd())
289
+ * @returns AskQuestionUseCase instance scoped to the codebase
290
+ */
291
+ getAskQuestionUseCase(cwd) {
292
+ const embeddingRepo = this.getEmbeddingRepository(cwd);
293
+ return new AskQuestionUseCase(embeddingRepo, this.aiService, this.memoryRepository, this.uncertaintyQuantifier);
294
+ }
295
+ /**
296
+ * @deprecated Use getAskQuestionUseCase(cwd) instead for per-repo isolation
297
+ * Kept for backward compatibility
298
+ */
249
299
  get askQuestionUseCase() {
250
300
  if (!this._askQuestionUseCase) {
251
301
  this._askQuestionUseCase = new AskQuestionUseCase(this.embeddingRepository, this.aiService, this.memoryRepository, this.uncertaintyQuantifier // Uncertainty Quantifier for XAI transparency
@@ -253,6 +303,23 @@ export class DependencyContainer {
253
303
  }
254
304
  return this._askQuestionUseCase;
255
305
  }
306
+ /**
307
+ * Get index codebase use case for a specific codebase
308
+ * @param cwd - Current working directory for codebase root detection (defaults to process.cwd())
309
+ * @returns IndexCodebaseUseCase instance scoped to the codebase
310
+ */
311
+ getIndexCodebaseUseCase(cwd) {
312
+ const embeddingRepo = this.getEmbeddingRepository(cwd);
313
+ const fileScanner = new FileScanner();
314
+ const chunker = new ASTCodeChunker();
315
+ return new IndexCodebaseUseCase(embeddingRepo, fileScanner, chunker, this.aiService, this.patternExtractor, // Pass pattern extractor for pattern extraction during indexing
316
+ this.knowledgeExtractor // Pass knowledge extractor for knowledge extraction during indexing
317
+ );
318
+ }
319
+ /**
320
+ * @deprecated Use getIndexCodebaseUseCase(cwd) instead for per-repo isolation
321
+ * Kept for backward compatibility
322
+ */
256
323
  get indexCodebaseUseCase() {
257
324
  if (!this._indexCodebaseUseCase) {
258
325
  const fileScanner = new FileScanner();
@@ -425,7 +492,8 @@ export class DependencyContainer {
425
492
  }
426
493
  get planningUseCase() {
427
494
  if (!this._planningUseCase) {
428
- this._planningUseCase = new PlanningUseCase(this.aiService, this.memoryStreamService, this.memoryRepository, this.patternExtractor // Pass pattern extractor for memory synthesis integration
495
+ this._planningUseCase = new PlanningUseCase(this.aiService, this.memoryStreamService, this.memoryRepository, this.patternExtractor, // Pass pattern extractor for memory synthesis integration
496
+ executionTracer // Pass execution tracer for reasoning layer metrics
429
497
  );
430
498
  }
431
499
  return this._planningUseCase;
@@ -434,8 +502,6 @@ export class DependencyContainer {
434
502
  _planningAgent = null;
435
503
  _executionAgent = null;
436
504
  _validationAgent = null;
437
- _documentationAgent = null;
438
- _productRequirementsAgent = null;
439
505
  _multiAgentOrchestrator = null;
440
506
  get planningAgent() {
441
507
  if (!this._planningAgent) {
@@ -458,18 +524,6 @@ export class DependencyContainer {
458
524
  }
459
525
  return this._validationAgent;
460
526
  }
461
- get documentationAgent() {
462
- if (!this._documentationAgent) {
463
- this._documentationAgent = new DocumentationAgent(this.aiService, this.memoryStreamService, process.cwd());
464
- }
465
- return this._documentationAgent;
466
- }
467
- get productRequirementsAgent() {
468
- if (!this._productRequirementsAgent) {
469
- this._productRequirementsAgent = new ProductRequirementsAgent(this.aiService, this.memoryStreamService, process.cwd());
470
- }
471
- return this._productRequirementsAgent;
472
- }
473
527
  get multiAgentOrchestrator() {
474
528
  if (!this._multiAgentOrchestrator) {
475
529
  this._multiAgentOrchestrator = new MultiAgentOrchestrator(this.aiService, this.memoryStreamService, this.memoryRepository, this.toolExecutorService, this.verificationService, this.sastScanner, process.cwd());
@@ -540,17 +594,15 @@ export class DependencyContainer {
540
594
  // Create a temporary aiService just for compressor initialization
541
595
  // Then create compressor with that aiService
542
596
  // The aiService will get compressor injected lazily via property setter
543
- const tempAIService = this._aiService || (process.env.CODEHERE_FAKE_AI === '1'
544
- ? new FakeAIService()
545
- : (() => {
546
- try {
547
- const provider = this.providerRegistry.getDefault();
548
- return new ProviderAIService(provider);
549
- }
550
- catch {
551
- return new CohereAIService();
552
- }
553
- })());
597
+ const tempAIService = this._aiService || (() => {
598
+ try {
599
+ const provider = this.providerRegistry.getDefault();
600
+ return new ProviderAIService(provider);
601
+ }
602
+ catch {
603
+ return new CohereAIService();
604
+ }
605
+ })();
554
606
  this._contextCompressor = new ContextCompressor(tempAIService);
555
607
  // Inject compressor into aiService if it exists (lazy injection)
556
608
  if (this._aiService) {
@@ -1 +1 @@
1
- {"version":3,"file":"dependency-container.js","sourceRoot":"","sources":["../../../src/application/services/dependency-container.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAE3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,6DAA6D,CAAC;AACxG,OAAO,EAAE,sBAAsB,EAAE,MAAM,0DAA0D,CAAC;AAClG,OAAO,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAwC,MAAM,yCAAyC,CAAC;AACrH,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2DAA2D,CAAC;AAChG,OAAO,EAAE,aAAa,EAAE,MAAM,kDAAkD,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,kDAAkD,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,yDAAyD,CAAC;AAC/F,OAAO,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC;AAC3F,OAAO,EAAE,oBAAoB,EAAE,MAAM,yDAAyD,CAAC;AAC/F,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oDAAoD,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAC1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAC1F,OAAO,EAAE,SAAS,EAAE,MAAM,gDAAgD,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,mDAAmD,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,2DAA2D,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,MAAM,mDAAmD,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,mDAAmD,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AACnF,OAAO,EAAE,wBAAwB,EAAE,MAAM,4DAA4D,CAAC;AACtG,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,2DAA2D,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAC9E,OAAO,EAAE,qCAAqC,EAAE,MAAM,0EAA0E,CAAC;AACjI,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,qDAAqD,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAAE,MAAM,qDAAqD,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,mDAAmD,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,mDAAmD,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,iDAAiD,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,sDAAsD,CAAC;AAExF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACxB,MAAM,0DAA0D,CAAC;AAElE,MAAM,OAAO,mBAAmB;IAC9B,iBAAiB;IACT,UAAU,GAAsB,IAAI,CAAC;IACrC,iBAAiB,GAA4B,IAAI,CAAC;IAClD,oBAAoB,GAAqC,IAAI,CAAC;IAC9D,iBAAiB,GAAkC,IAAI,CAAC;IAEhE,WAAW;IACH,oBAAoB,GAA+B,IAAI,CAAC;IACxD,oBAAoB,GAA+B,IAAI,CAAC;IAEhE,0BAA0B;IAClB,oBAAoB,GAA+B,IAAI,CAAC;IACxD,YAAY,GAAyB,IAAI,CAAC;IAC1C,eAAe,GAA0B,IAAI,CAAC;IAC9C,qBAAqB,GAAgC,IAAI,CAAC;IAC1D,sBAAsB,GAAiC,IAAI,CAAC;IAC5D,qBAAqB,GAAgC,IAAI,CAAC;IAC1D,gBAAgB,GAA2B,IAAI,CAAC;IAExD,oBAAoB;IACZ,cAAc,GAAyB,IAAI,CAAC;IAC5C,oBAAoB,GAA+B,IAAI,CAAC;IACxD,eAAe,GAA0B,IAAI,CAAC;IAEtD,sBAAsB;IACd,kBAAkB,GAA6B,IAAI,CAAC;IAE5D,aAAa;IACL,oBAAoB,GAA+B,IAAI,CAAC;IACxD,eAAe,GAA0B,IAAI,CAAC;IAC9C,sBAAsB,GAAiC,IAAI,CAAC;IAC5D,cAAc,GAAyB,IAAI,CAAC;IAC5C,sBAAsB,GAAiC,IAAI,CAAC;IAC5D,sBAAsB,GAAiC,IAAI,CAAC;IAEpE,qBAAqB;IACb,UAAU,GAAqB,IAAI,CAAC;IACpC,aAAa,GAAwB,IAAI,CAAC;IAC1C,oBAAoB,GAA+B,IAAI,CAAC;IAEhE,oBAAoB;IACZ,mBAAmB,GAAoC,IAAI,CAAC;IAC5D,iBAAiB,GAA4B,IAAI,CAAC;IAClD,kBAAkB,GAA6B,IAAI,CAAC;IAE5D,mBAAmB;IACX,kBAAkB,GAAmC,IAAI,CAAC;IAC1D,iBAAiB,GAA4B,IAAI,CAAC;IAE1D,kCAAkC;IAC1B,gCAAgC,GAAiD,IAAI,CAAC;IACtF,mBAAmB,GAA8B,IAAI,CAAC;IACtD,gBAAgB,GAA2B,IAAI,CAAC;IAExD,+BAA+B;IACvB,wBAAwB,GAAmC,IAAI,CAAC;IAExE,YAAY;IACJ,mBAAmB,GAA8B,IAAI,CAAC;IACtD,qBAAqB,GAAgC,IAAI,CAAC;IAC1D,0BAA0B,GAAqC,IAAI,CAAC;IACpE,iBAAiB,GAA4B,IAAI,CAAC;IAClD,gBAAgB,GAA2B,IAAI,CAAC;IAChD,mBAAmB,GAA8B,IAAI,CAAC;IACtD,gBAAgB,GAA2B,IAAI,CAAC;IAExD;;;;;;;;;;OAUG;IACH,IAAI,gBAAgB;QAClB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,WAAW,EAAE,CAAC;YAExD,6EAA6E;YAC7E,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,GAAG,EAAE,CAAC;gBACzC,IAAI,CAAC;oBACH,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;oBACxC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;oBAC9C,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAC5C,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,wDAAwD,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACjI,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,sDAAsD;gBACtD,oDAAoD;gBACpD,IAAI,CAAC;oBACH,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;oBAC5C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;gBAClD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,2DAA2D,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACpI,CAAC;gBAED,wFAAwF;gBACxF,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,WAAW,EAAE,CAAC;gBAC1E,IAAI,iBAAiB,KAAK,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC;oBACzE,IAAI,CAAC;wBACH,MAAM,aAAa,GAAG,IAAI,gBAAgB,EAAE,CAAC;wBAC7C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;wBAC/C,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;oBAC7C,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,IAAI,CAAC,4DAA4D,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;wBACnI,OAAO,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;oBACpE,CAAC;gBACH,CAAC;gBAED,kDAAkD;gBAClD,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;oBACtE,IAAI,CAAC;wBACH,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;wBAC5C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;oBAClD,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,IAAI,CAAC,2DAA2D,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oBACpI,CAAC;gBACH,CAAC;gBAED,6DAA6D;gBAC7D,8CAA8C;gBAC9C,IAAI,iBAAiB,KAAK,OAAO,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBACzE,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBAC7C,CAAC;qBAAM,IAAI,iBAAiB,KAAK,QAAQ,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAClF,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAC9C,CAAC;qBAAM,CAAC;oBACN,0CAA0C;oBAC1C,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACzC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;oBAC9C,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,IAAI,SAAS;QACX,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,wDAAwD;YACxD,MAAM,cAAc,GAAG,kBAAkB,EAAE,CAAC;YAC5C,MAAM,eAAe,GAAG,cAAc,CAAC,CAAC,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACxF,MAAM,aAAa,GAAG,cAAc,EAAE,OAAO,IAAI,IAAI,CAAC;YAEtD,4EAA4E;YAC5E,6FAA6F;YAC7F,uFAAuF;YACvF,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;gBACpD,uEAAuE;gBACvE,0EAA0E;gBAC1E,IAAI,CAAC,UAAU,GAAG,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC;gBAC7F,8EAA8E;gBAC9E,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAC3B,IAAI,CAAC,UAAkB,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBACxE,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,kBAAkB;gBAClB,kGAAkG;gBAClG,4CAA4C;gBAC5C,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,GAAG,EAAE,CAAC;oBACzC,OAAO,CAAC,IAAI,CAAC,0FAA0F,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oBACjK,IAAI,CAAC,UAAU,GAAG,IAAI,aAAa,EAAE,CAAC;gBACxC,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,iGAAiG,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oBACxK,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;oBACxC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;wBAC3B,IAAI,CAAC,UAAkB,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;oBACxE,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,mBAAmB;QACrB,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC/B,IAAI,CAAC,oBAAoB,GAAG,IAAI,yBAAyB,EAAE,CAAC;QAC9D,CAAC;QACD,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAED,IAAI,gBAAgB;QAClB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,IAAI,CAAC,iBAAiB,GAAG,IAAI,sBAAsB,EAAE,CAAC;QACxD,CAAC;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,IAAI,mBAAmB;QACrB,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC/B,IAAI,CAAC,oBAAoB,GAAG,IAAI,mBAAmB,CACjD,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,SAAS,CACf,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAED,IAAI,kBAAkB;QACpB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,IAAI,CAAC,mBAAmB,GAAG,IAAI,kBAAkB,CAC/C,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,qBAAqB,CAAC,8CAA8C;aAC1E,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED,IAAI,oBAAoB;QACtB,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAChC,MAAM,WAAW,GAAiB,IAAI,WAAW,EAAE,CAAC;YACpD,MAAM,OAAO,GAAiB,IAAI,cAAc,EAAE,CAAC;YAEnD,IAAI,CAAC,qBAAqB,GAAG,IAAI,oBAAoB,CACnD,IAAI,CAAC,mBAAmB,EACxB,WAAW,EACX,OAAO,EACP,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,gBAAgB,EAAE,gEAAgE;YACvF,IAAI,CAAC,kBAAkB,CAAC,oEAAoE;aAC7F,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAED,IAAI,mBAAmB;QACrB,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC/B,IAAI,CAAC,oBAAoB,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACxD,CAAC;QACD,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAED,IAAI,yBAAyB;QAC3B,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC;YACrC,IAAI,CAAC,0BAA0B,GAAG,IAAI,yBAAyB,CAC7D,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,eAAe,EAAE,yCAAyC;YAC/D,IAAI,CAAC,qBAAqB,EAAE,8CAA8C;YAC1E,IAAI,CAAC,aAAa,EAAE,4CAA4C;YAChE,IAAI,CAAC,mBAAmB,CAAC,6CAA6C;aACvE,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,0BAA0B,CAAC;IACzC,CAAC;IAED,IAAI,gBAAgB;QAClB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,IAAI,CAAC,iBAAiB,GAAG,IAAI,gBAAgB,CAC3C,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,mBAAmB,CACzB,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,IAAI,mBAAmB;QACrB,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC/B,IAAI,CAAC,oBAAoB,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACxD,CAAC;QACD,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAED,IAAI,WAAW;QACb,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAI,cAAc;QAChB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,EAAE,CAAC;QAC9C,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,IAAI,oBAAoB;QACtB,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAChC,IAAI,CAAC,qBAAqB,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC1D,CAAC;QACD,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAED,IAAI,qBAAqB;QACvB,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACjC,IAAI,CAAC,sBAAsB,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC5D,CAAC;QACD,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACrC,CAAC;IAED,IAAI,oBAAoB;QACtB,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAChC,IAAI,CAAC,qBAAqB,GAAG,IAAI,oBAAoB,CACnD,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,qBAAqB,CAC3B,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAED,IAAI,eAAe;QACjB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,IAAI,CAAC,gBAAgB,GAAG,IAAI,eAAe,EAAE,CAAC;QAChD,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,4BAA4B;IAC5B,IAAI,aAAa;QACf,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,GAAG,IAAI,aAAa,EAAE,CAAC;QAC5C,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,IAAI,mBAAmB;QACrB,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC/B,IAAI,CAAC,oBAAoB,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACxD,CAAC;QACD,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAED,IAAI,cAAc;QAChB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,EAAE,CAAC;QAC9C,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,qBAAqB;IACrB,IAAI,mBAAmB;QACrB,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC/B,IAAI,CAAC,oBAAoB,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACxD,CAAC;QACD,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAED,IAAI,cAAc;QAChB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,EAAE,CAAC;QAC9C,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,IAAI,qBAAqB;QACvB,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACjC,IAAI,CAAC,sBAAsB,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC5D,CAAC;QACD,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACrC,CAAC;IAED,IAAI,aAAa;QACf,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,GAAG,IAAI,aAAa,EAAE,CAAC;QAC5C,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,IAAI,qBAAqB;QACvB,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACjC,IAAI,CAAC,sBAAsB,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC5D,CAAC;QACD,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACrC,CAAC;IAED,IAAI,qBAAqB;QACvB,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACjC,IAAI,CAAC,sBAAsB,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC5D,CAAC;QACD,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACrC,CAAC;IAED,6BAA6B;IAC7B,IAAI,SAAS;QACX,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,YAAY;QACd,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,mBAAmB;QACrB,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC/B,IAAI,CAAC,oBAAoB,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACxD,CAAC;QACD,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAED,IAAI,eAAe;QACjB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,IAAI,CAAC,gBAAgB,GAAG,IAAI,eAAe,CACzC,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,WAAW,EAAE,uDAAuD;YACzE,IAAI,CAAC,oBAAoB,EAAE,2CAA2C;YACtE,IAAI,CAAC,mBAAmB,EAAE,8BAA8B;YACxD,IAAI,CAAC,cAAc,EAAE,yBAAyB;YAC9C,IAAI,CAAC,qBAAqB,EAAE,iCAAiC;YAC7D,IAAI,CAAC,aAAa,EAAE,wBAAwB;YAC5C,IAAI,CAAC,mBAAmB,EAAE,kCAAkC;YAC5D,IAAI,CAAC,SAAS,EAAE,wCAAwC;YACxD,IAAI,CAAC,YAAY,CAAC,0CAA0C;aAC7D,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,IAAI,kBAAkB;QACpB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,IAAI,CAAC,mBAAmB,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED,IAAI,eAAe;QACjB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,IAAI,CAAC,gBAAgB,GAAG,IAAI,eAAe,CACzC,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,gBAAgB,CAAC,0DAA0D;aACjF,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,SAAS;IACD,cAAc,GAAyB,IAAI,CAAC;IAC5C,eAAe,GAA0B,IAAI,CAAC;IAC9C,gBAAgB,GAA2B,IAAI,CAAC;IAChD,mBAAmB,GAA8B,IAAI,CAAC;IACtD,yBAAyB,GAAoC,IAAI,CAAC;IAClE,uBAAuB,GAAkC,IAAI,CAAC;IAEtE,IAAI,aAAa;QACf,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,GAAG,IAAI,aAAa,CACrC,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,gBAAgB,EACrB,OAAO,CAAC,GAAG,EAAE,EACb,IAAI,CAAC,gBAAgB,EAAE,iDAAiD;YACxE,IAAI,CAAC,iBAAiB,EAAE,kDAAkD;YAC1E,IAAI,CAAC,eAAe,CAAC,gDAAgD;aACtE,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,IAAI,cAAc;QAChB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CACvC,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,mBAAmB,EACxB,OAAO,CAAC,GAAG,EAAE,CACd,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,IAAI,eAAe;QACjB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,IAAI,CAAC,gBAAgB,GAAG,IAAI,eAAe,CACzC,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,mBAAmB,CACzB,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,IAAI,kBAAkB;QACpB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,IAAI,CAAC,mBAAmB,GAAG,IAAI,kBAAkB,CAC/C,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,mBAAmB,EACxB,OAAO,CAAC,GAAG,EAAE,CACd,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED,IAAI,wBAAwB;QAC1B,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACpC,IAAI,CAAC,yBAAyB,GAAG,IAAI,wBAAwB,CAC3D,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,mBAAmB,EACxB,OAAO,CAAC,GAAG,EAAE,CACd,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,yBAAyB,CAAC;IACxC,CAAC;IAED,IAAI,sBAAsB;QACxB,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAClC,IAAI,CAAC,uBAAuB,GAAG,IAAI,sBAAsB,CACvD,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,WAAW,EAChB,OAAO,CAAC,GAAG,EAAE,CACd,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,uBAAuB,CAAC;IACtC,CAAC;IAED,oBAAoB;IACpB,IAAI,kBAAkB;QACpB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,IAAI,CAAC,mBAAmB,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAC5D,CAAC;QACD,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED,IAAI,gBAAgB;QAClB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,IAAI,CAAC,iBAAiB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,IAAI,iBAAiB;QACnB,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7B,IAAI,CAAC,kBAAkB,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED,mBAAmB;IACnB,IAAI,iBAAiB;QACnB,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7B,IAAI,CAAC,kBAAkB,GAAG,IAAI,uBAAuB,EAAE,CAAC;QAC1D,CAAC;QACD,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED,IAAI,gBAAgB;QAClB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,IAAI,CAAC,iBAAiB,GAAG,IAAI,gBAAgB,CAC3C,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,SAAS,CACf,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,kCAAkC;IAClC,IAAI,+BAA+B;QACjC,IAAI,CAAC,IAAI,CAAC,gCAAgC,EAAE,CAAC;YAC3C,IAAI,CAAC,gCAAgC,GAAG,IAAI,qCAAqC,EAAE,CAAC;QACtF,CAAC;QACD,OAAO,IAAI,CAAC,gCAAgC,CAAC;IAC/C,CAAC;IAED,IAAI,kBAAkB;QACpB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,IAAI,CAAC,mBAAmB,GAAG,IAAI,kBAAkB,CAC/C,IAAI,CAAC,+BAA+B,EACpC,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,SAAS,CACf,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED,IAAI,eAAe;QACjB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,IAAI,CAAC,gBAAgB,GAAG,IAAI,eAAe,CACzC,IAAI,CAAC,+BAA+B,EACpC,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,kBAAkB,CACxB,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,IAAI,uBAAuB;QACzB,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACnC,IAAI,CAAC,wBAAwB,GAAG,IAAI,uBAAuB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACtF,CAAC;QACD,OAAO,IAAI,CAAC,wBAAwB,CAAC;IACvC,CAAC;IAED,sBAAsB;IACtB,IAAI,iBAAiB;QACnB,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7B,uFAAuF;YACvF,kEAAkE;YAClE,6CAA6C;YAC7C,wEAAwE;YACxE,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,GAAG;gBAC5E,CAAC,CAAC,IAAI,aAAa,EAAE;gBACrB,CAAC,CAAC,CAAC,GAAG,EAAE;oBACN,IAAI,CAAC;wBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;wBACpD,OAAO,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC;oBACzC,CAAC;oBAAC,MAAM,CAAC;wBACP,OAAO,IAAI,eAAe,EAAE,CAAC;oBAC/B,CAAC;gBACH,CAAC,CAAC,EAAE,CAAC,CAAC;YACR,IAAI,CAAC,kBAAkB,GAAG,IAAI,iBAAiB,CAAC,aAAa,CAAC,CAAC;YAC/D,iEAAiE;YACjE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACnB,IAAI,CAAC,UAAkB,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;YACxE,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"dependency-container.js","sourceRoot":"","sources":["../../../src/application/services/dependency-container.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ export interface RouterRequest {
16
16
  query: string;
17
17
  response: string;
18
18
  timestamp: number;
19
+ intent?: string;
19
20
  }>;
20
21
  sessionId?: string;
21
22
  };
@@ -61,6 +62,11 @@ export declare class IntelligentRouter {
61
62
  * Check if query requires multiple steps/tools
62
63
  */
63
64
  private requiresMultipleSteps;
65
+ /**
66
+ * Handle conversational response for follow-up queries after non-code intents
67
+ * Skips code search and provides contextual answer
68
+ */
69
+ private handleConversationalResponse;
64
70
  private checkIfIndexingNeeded;
65
71
  private handleAsk;
66
72
  private handleExplainWithWorkflow;
@@ -1 +1 @@
1
- {"version":3,"file":"intelligent-router.d.ts","sourceRoot":"","sources":["../../../src/application/services/intelligent-router.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,kDAAkD,CAAC;AAKzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iDAAiD,CAAC;AAClF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AAOjG,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE;QACR,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,mBAAmB,CAAC,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACpF,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IAC5E,MAAM,EAAE,GAAG,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,eAAe,CAAC,EAAE;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,MAAM,CAAC;QACtB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,gBAAgB,CAAwB;IAChD,OAAO,CAAC,SAAS,CAAC,CAAa;IAC/B,OAAO,CAAC,YAAY,CAAC,CAAsB;gBAGzC,gBAAgB,CAAC,EAAE,qBAAqB,EACxC,SAAS,CAAC,EAAE,UAAU,EACtB,YAAY,CAAC,EAAE,mBAAmB;IAO9B,KAAK,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAyV5D;;;OAGG;YACW,wBAAwB;IA4CtC;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAoBxB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAuCtB;;OAEG;IACH,OAAO,CAAC,qBAAqB;YAoCf,qBAAqB;YAcrB,SAAS;YAsCT,yBAAyB;YAgCzB,aAAa;YA+Cb,UAAU;YA2GV,WAAW;YA+CX,WAAW;YAUX,UAAU;YA6CV,iBAAiB;IAgD/B,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,cAAc;IAwBtB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAqBzB;;;OAGG;YACW,gBAAgB;CAmD/B"}
1
+ {"version":3,"file":"intelligent-router.d.ts","sourceRoot":"","sources":["../../../src/application/services/intelligent-router.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,kDAAkD,CAAC;AAKzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iDAAiD,CAAC;AAClF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AAOjG,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE;QACR,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,mBAAmB,CAAC,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACrG,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IAC5E,MAAM,EAAE,GAAG,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,eAAe,CAAC,EAAE;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,MAAM,CAAC;QACtB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,gBAAgB,CAAwB;IAChD,OAAO,CAAC,SAAS,CAAC,CAAa;IAC/B,OAAO,CAAC,YAAY,CAAC,CAAsB;gBAGzC,gBAAgB,CAAC,EAAE,qBAAqB,EACxC,SAAS,CAAC,EAAE,UAAU,EACtB,YAAY,CAAC,EAAE,mBAAmB;IAO9B,KAAK,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAqY5D;;;OAGG;YACW,wBAAwB;IA4CtC;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAoBxB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAuCtB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAoC7B;;;OAGG;YACW,4BAA4B;YAmD5B,qBAAqB;YAerB,SAAS;YAuCT,yBAAyB;YAiCzB,aAAa;YA+Cb,UAAU;YA2GV,WAAW;YA+CX,WAAW;YAUX,UAAU;YA6CV,iBAAiB;IAgD/B,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,cAAc;IAwBtB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAoBzB;;;OAGG;YACW,gBAAgB;CAmD/B"}
@@ -58,6 +58,13 @@ export class IntelligentRouter {
58
58
  // Resolve conversation references if we have history
59
59
  let resolvedQuery = query;
60
60
  let sessionId;
61
+ let lastIntent;
62
+ // PHASE 1 FIX: Get last intent from request context (passed from session)
63
+ // This is the most reliable source since it's the actual conversation history
64
+ if (request.context?.conversationHistory && request.context.conversationHistory.length > 0) {
65
+ const lastHistoryItem = request.context.conversationHistory[request.context.conversationHistory.length - 1];
66
+ lastIntent = lastHistoryItem.intent;
67
+ }
61
68
  if (request.context?.conversationHistory && request.context.conversationHistory.length > 0) {
62
69
  const { conversationContextManager } = await import('../../infrastructure/context/conversation-context.js');
63
70
  sessionId = request.context.sessionId || 'default-session';
@@ -162,14 +169,37 @@ export class IntelligentRouter {
162
169
  compoundInstruction: isCompoundInstruction,
163
170
  },
164
171
  });
172
+ // P0 FIX: Detect conversational follow-ups and skip index check
173
+ // Check if query is conversational (no code keywords, no file paths, questions/statements)
174
+ const hasCodeKeywords = /\b(src|lib|test|\.ts|\.js|\.py|\.java|file|function|class|import|export|require|module|package)\b/i.test(query);
175
+ const isFilePath = /^[A-Z][a-z]+\.(ts|js|py|java|go|rs|rb|php)$/.test(query) || /[\w\/\-\.]+\.(ts|js|tsx|jsx|json|md|yaml|yml|txt|py|go|rs|java|cpp|h|hpp)/.test(query);
176
+ const isQuestion = /^(what|how|where|when|why|can|could|should|would|do|does|is|are|will)\b/i.test(query.trim());
177
+ const isConversationalPhrase = /^(i want|i need|i should|i don't|i can't|let me|help me|what should|how should)\b/i.test(query.trim());
178
+ // P0 FIX: Detect conversational follow-ups - either from history OR from query pattern
179
+ // If query has conversational patterns and no code keywords, treat as conversational regardless of intent
180
+ const isConversationalFollowup = (
181
+ // Pattern-based detection (most reliable)
182
+ (isQuestion || isConversationalPhrase) &&
183
+ !hasCodeKeywords &&
184
+ !isFilePath) || (
185
+ // History-based detection
186
+ (lastIntent === 'plan' || intent === 'plan' || intent === 'general') &&
187
+ !hasCodeKeywords &&
188
+ !isFilePath &&
189
+ (isQuestion || isConversationalPhrase));
165
190
  // Debug logging for compound instructions
166
191
  if (isCompoundInstruction) {
167
192
  console.log(`[IntelligentRouter] Compound instruction detected. Classified: ${classifiedIntent}, Memory: ${memoryInformedIntent}, Using: ${intent}`);
168
193
  }
169
194
  // 3. Check if indexing is needed
195
+ // CRITICAL: Only require index for code-specific queries (find, understand, explain)
196
+ // Planning, brainstorming, and product queries should work without index
170
197
  const needsIndex = await this.checkIfIndexingNeeded(request.context);
171
- // Handle indexing first if needed
172
- if (needsIndex && (intent === 'find' || intent === 'understand' || intent === 'explain')) {
198
+ const codeSpecificIntents = ['find', 'understand', 'explain', 'modify', 'debug', 'implement', 'multi-file-modify'];
199
+ // Skip index check for conversational follow-ups and non-code intents
200
+ const requiresIndex = !isConversationalFollowup && needsIndex && codeSpecificIntents.includes(intent);
201
+ // Handle indexing first if needed (only for code-specific queries)
202
+ if (requiresIndex) {
173
203
  executionTracer.endRun();
174
204
  // Record routing decision feedback
175
205
  try {
@@ -220,11 +250,18 @@ export class IntelligentRouter {
220
250
  case 'plan':
221
251
  // Complex goals need planning
222
252
  routingResult = await this.handlePlan(query, memories);
253
+ // PHASE 1 FIX: Check conversation context - if last intent was non-code, skip code search
254
+ const nonCodeIntents = ['plan', 'general', 'product', 'business'];
255
+ const isFollowUpToNonCode = lastIntent && nonCodeIntents.includes(lastIntent);
256
+ // Also check if query is clearly conversational (not code-related) in empty directory
257
+ const isEmptyDirectory = await this.checkIfIndexingNeeded(request.context);
258
+ const isConversationalQuery = !query.toLowerCase().match(/\b(code|file|function|class|variable|import|export|module|package)\b/);
259
+ // If this is a follow-up to a non-code query OR a conversational query in empty directory, provide conversational response
260
+ if (isFollowUpToNonCode || (isEmptyDirectory && isConversationalQuery)) {
261
+ routingResult = await this.handleConversationalResponse(query, memories, lastIntent);
262
+ }
223
263
  break;
224
264
  case 'find':
225
- // For "find" queries, use AskQuestion to search the codebase
226
- routingResult = await this.handleAsk(query, memories);
227
- break;
228
265
  case 'understand':
229
266
  case 'general':
230
267
  // CRITICAL FIX: Simple questions should NEVER use ReAct
@@ -460,12 +497,63 @@ Respond with ONLY the intent word (e.g., "explain", "plan", "understand"):`;
460
497
  // Requires multiple steps if 2+ indicators or very long query
461
498
  return indicatorCount >= 2 || query.split(' ').length > 20;
462
499
  }
500
+ /**
501
+ * Handle conversational response for follow-up queries after non-code intents
502
+ * Skips code search and provides contextual answer
503
+ */
504
+ async handleConversationalResponse(query, memories, lastIntent) {
505
+ if (!this.aiService) {
506
+ return {
507
+ intent: 'general',
508
+ action: 'ask',
509
+ result: null,
510
+ success: false,
511
+ error: 'AI service not available',
512
+ memoriesUsed: memories?.length || 0,
513
+ };
514
+ }
515
+ try {
516
+ // Build conversational prompt without code context
517
+ const memoryContext = memories && memories.length > 0
518
+ ? `\n\nRelevant context from previous interactions:\n${memories.slice(0, 3).map((m, i) => `${i + 1}. ${m.description}`).join('\n')}`
519
+ : '';
520
+ const conversationContext = lastIntent === 'plan'
521
+ ? '\n\nNote: The user previously asked about planning or brainstorming. This is a follow-up question.'
522
+ : '';
523
+ const prompt = `You are a helpful AI assistant. The user is asking a follow-up question after a previous conversation about ${lastIntent || 'general topics'}.
524
+
525
+ User's question: "${query}"
526
+ ${memoryContext}${conversationContext}
527
+
528
+ Provide a helpful, conversational response. Do NOT search for code unless the user explicitly asks about code or files.`;
529
+ const response = await this.aiService.chat(prompt, []);
530
+ return {
531
+ intent: 'general',
532
+ action: 'ask',
533
+ result: { answer: response, chunks: [] },
534
+ success: true,
535
+ message: response,
536
+ memoriesUsed: memories?.length || 0,
537
+ };
538
+ }
539
+ catch (error) {
540
+ return {
541
+ intent: 'general',
542
+ action: 'ask',
543
+ result: null,
544
+ success: false,
545
+ error: error instanceof Error ? error.message : String(error),
546
+ memoriesUsed: memories?.length || 0,
547
+ };
548
+ }
549
+ }
463
550
  async checkIfIndexingNeeded(context) {
464
551
  if (context?.hasIndex === false)
465
552
  return true;
466
553
  try {
467
554
  const { container } = await import('./dependency-container.js');
468
- const repo = container.embeddingRepository;
555
+ // Use per-repo embedding repository for codebase isolation
556
+ const repo = container.getEmbeddingRepository(process.cwd());
469
557
  // Check if any embeddings exist
470
558
  const testSearch = await repo.searchWithEmbedding([0.1], 1);
471
559
  return testSearch.length === 0;
@@ -477,7 +565,8 @@ Respond with ONLY the intent word (e.g., "explain", "plan", "understand"):`;
477
565
  async handleAsk(query, memories) {
478
566
  try {
479
567
  const { container } = await import('./dependency-container.js');
480
- const useCase = container.askQuestionUseCase;
568
+ // Use per-repo use case for codebase isolation
569
+ const useCase = container.getAskQuestionUseCase(process.cwd());
481
570
  const result = await useCase.execute({ query, maxResults: 15 });
482
571
  // Record successful routing in memory
483
572
  if (this.memoryStream && memories && memories.length > 0) {
@@ -512,7 +601,8 @@ Respond with ONLY the intent word (e.g., "explain", "plan", "understand"):`;
512
601
  try {
513
602
  const { container } = await import('./dependency-container.js');
514
603
  const { ExplainWorkflow } = await import('../workflows/deterministic-workflows.js');
515
- const explainWorkflow = new ExplainWorkflow(container.embeddingRepository, container.aiService);
604
+ // Use per-repo embedding repository for codebase isolation
605
+ const explainWorkflow = new ExplainWorkflow(container.getEmbeddingRepository(process.cwd()), container.aiService);
516
606
  const workflowResult = await explainWorkflow.execute(query);
517
607
  if (workflowResult.success) {
518
608
  return {
@@ -854,7 +944,6 @@ Respond with ONLY the intent word (e.g., "explain", "plan", "understand"):`;
854
944
  */
855
945
  fastSecurityCheck(query) {
856
946
  // Fast pattern-based check for obvious security issues (synchronous, no API calls)
857
- const lower = query.toLowerCase();
858
947
  // Dangerous patterns that should be blocked immediately
859
948
  const dangerousPatterns = [
860
949
  { pattern: /execute.*user.*input|eval.*user|exec.*user/i, reason: 'Security vulnerabilities detected: 1 critical, 0 high severity findings. Review and fix before applying.' },