codehere 0.3.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 (455) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +329 -65
  3. package/dist/application/agents/documentation-agent.d.ts +24 -0
  4. package/dist/application/agents/documentation-agent.d.ts.map +1 -0
  5. package/dist/application/agents/documentation-agent.js +399 -0
  6. package/dist/application/agents/documentation-agent.js.map +1 -0
  7. package/dist/application/agents/execution-agent.d.ts +11 -0
  8. package/dist/application/agents/execution-agent.d.ts.map +1 -1
  9. package/dist/application/agents/execution-agent.js +289 -80
  10. package/dist/application/agents/execution-agent.js.map +1 -1
  11. package/dist/application/agents/multi-agent-orchestrator.d.ts +4 -0
  12. package/dist/application/agents/multi-agent-orchestrator.d.ts.map +1 -1
  13. package/dist/application/agents/multi-agent-orchestrator.js +95 -2
  14. package/dist/application/agents/multi-agent-orchestrator.js.map +1 -1
  15. package/dist/application/agents/planning-agent.d.ts +3 -0
  16. package/dist/application/agents/planning-agent.d.ts.map +1 -1
  17. package/dist/application/agents/planning-agent.js +151 -71
  18. package/dist/application/agents/planning-agent.js.map +1 -1
  19. package/dist/application/agents/product-requirements-agent.d.ts +21 -0
  20. package/dist/application/agents/product-requirements-agent.d.ts.map +1 -0
  21. package/dist/application/agents/product-requirements-agent.js +247 -0
  22. package/dist/application/agents/product-requirements-agent.js.map +1 -0
  23. package/dist/application/agents/validation-agent.d.ts +5 -1
  24. package/dist/application/agents/validation-agent.d.ts.map +1 -1
  25. package/dist/application/agents/validation-agent.js +156 -21
  26. package/dist/application/agents/validation-agent.js.map +1 -1
  27. package/dist/application/reasoning/multi-model-planning-strategy.d.ts +21 -0
  28. package/dist/application/reasoning/multi-model-planning-strategy.d.ts.map +1 -0
  29. package/dist/application/reasoning/multi-model-planning-strategy.js +158 -0
  30. package/dist/application/reasoning/multi-model-planning-strategy.js.map +1 -0
  31. package/dist/application/reasoning/reasoning-config.d.ts +15 -0
  32. package/dist/application/reasoning/reasoning-config.d.ts.map +1 -0
  33. package/dist/application/reasoning/reasoning-config.js +50 -0
  34. package/dist/application/reasoning/reasoning-config.js.map +1 -0
  35. package/dist/application/reasoning/reasoning-orchestrator.d.ts +18 -0
  36. package/dist/application/reasoning/reasoning-orchestrator.d.ts.map +1 -0
  37. package/dist/application/reasoning/reasoning-orchestrator.js +170 -0
  38. package/dist/application/reasoning/reasoning-orchestrator.js.map +1 -0
  39. package/dist/application/reasoning/reasoning-strategy.interface.d.ts +24 -0
  40. package/dist/application/reasoning/reasoning-strategy.interface.d.ts.map +1 -0
  41. package/dist/application/reasoning/reasoning-strategy.interface.js +6 -0
  42. package/dist/application/reasoning/reasoning-strategy.interface.js.map +1 -0
  43. package/dist/application/reasoning/role-provider-resolver.d.ts +36 -0
  44. package/dist/application/reasoning/role-provider-resolver.d.ts.map +1 -0
  45. package/dist/application/reasoning/role-provider-resolver.js +74 -0
  46. package/dist/application/reasoning/role-provider-resolver.js.map +1 -0
  47. package/dist/application/reasoning/simple-planning-strategy.d.ts +22 -0
  48. package/dist/application/reasoning/simple-planning-strategy.d.ts.map +1 -0
  49. package/dist/application/reasoning/simple-planning-strategy.js +217 -0
  50. package/dist/application/reasoning/simple-planning-strategy.js.map +1 -0
  51. package/dist/application/reasoning/types.d.ts +65 -0
  52. package/dist/application/reasoning/types.d.ts.map +1 -0
  53. package/dist/application/reasoning/types.js +6 -0
  54. package/dist/application/reasoning/types.js.map +1 -0
  55. package/dist/application/reasoning/validator-strategy.d.ts +56 -0
  56. package/dist/application/reasoning/validator-strategy.d.ts.map +1 -0
  57. package/dist/application/reasoning/validator-strategy.js +103 -0
  58. package/dist/application/reasoning/validator-strategy.js.map +1 -0
  59. package/dist/application/services/dependency-container.d.ts +46 -2
  60. package/dist/application/services/dependency-container.d.ts.map +1 -1
  61. package/dist/application/services/dependency-container.js +198 -8
  62. package/dist/application/services/dependency-container.js.map +1 -1
  63. package/dist/application/services/intelligent-router.d.ts +19 -0
  64. package/dist/application/services/intelligent-router.d.ts.map +1 -1
  65. package/dist/application/services/intelligent-router.js +393 -91
  66. package/dist/application/services/intelligent-router.js.map +1 -1
  67. package/dist/application/use-cases/ask-question-use-case.d.ts +20 -0
  68. package/dist/application/use-cases/ask-question-use-case.d.ts.map +1 -1
  69. package/dist/application/use-cases/ask-question-use-case.js +129 -49
  70. package/dist/application/use-cases/ask-question-use-case.js.map +1 -1
  71. package/dist/application/use-cases/edit-file-use-case.d.ts.map +1 -1
  72. package/dist/application/use-cases/edit-file-use-case.js +16 -1
  73. package/dist/application/use-cases/edit-file-use-case.js.map +1 -1
  74. package/dist/application/use-cases/planning-use-case.d.ts +14 -1
  75. package/dist/application/use-cases/planning-use-case.d.ts.map +1 -1
  76. package/dist/application/use-cases/planning-use-case.js +109 -2
  77. package/dist/application/use-cases/planning-use-case.js.map +1 -1
  78. package/dist/domain/entities/documentation.d.ts +35 -0
  79. package/dist/domain/entities/documentation.d.ts.map +1 -0
  80. package/dist/domain/entities/documentation.js +6 -0
  81. package/dist/domain/entities/documentation.js.map +1 -0
  82. package/dist/domain/entities/memory.d.ts.map +1 -1
  83. package/dist/domain/entities/product-requirements.d.ts +50 -0
  84. package/dist/domain/entities/product-requirements.d.ts.map +1 -0
  85. package/dist/domain/entities/product-requirements.js +6 -0
  86. package/dist/domain/entities/product-requirements.js.map +1 -0
  87. package/dist/domain/entities/task.d.ts +152 -0
  88. package/dist/domain/entities/task.d.ts.map +1 -0
  89. package/dist/domain/entities/task.js +61 -0
  90. package/dist/domain/entities/task.js.map +1 -0
  91. package/dist/domain/errors/embeddings-not-found-error.d.ts +9 -0
  92. package/dist/domain/errors/embeddings-not-found-error.d.ts.map +1 -0
  93. package/dist/domain/errors/embeddings-not-found-error.js +13 -0
  94. package/dist/domain/errors/embeddings-not-found-error.js.map +1 -0
  95. package/dist/domain/interfaces/agent.interface.d.ts +15 -0
  96. package/dist/domain/interfaces/agent.interface.d.ts.map +1 -0
  97. package/dist/domain/interfaces/agent.interface.js +6 -0
  98. package/dist/domain/interfaces/agent.interface.js.map +1 -0
  99. package/dist/domain/interfaces/embedding-repository.interface.d.ts +5 -0
  100. package/dist/domain/interfaces/embedding-repository.interface.d.ts.map +1 -1
  101. package/dist/domain/services/environment-mode-manager.d.ts +12 -0
  102. package/dist/domain/services/environment-mode-manager.d.ts.map +1 -0
  103. package/dist/domain/services/environment-mode-manager.js +22 -0
  104. package/dist/domain/services/environment-mode-manager.js.map +1 -0
  105. package/dist/domain/services/query-intent-classifier.d.ts.map +1 -1
  106. package/dist/domain/services/query-intent-classifier.js +20 -1
  107. package/dist/domain/services/query-intent-classifier.js.map +1 -1
  108. package/dist/domain/services/risk-tier-detector.d.ts +17 -0
  109. package/dist/domain/services/risk-tier-detector.d.ts.map +1 -0
  110. package/dist/domain/services/risk-tier-detector.js +78 -0
  111. package/dist/domain/services/risk-tier-detector.js.map +1 -0
  112. package/dist/embed.d.ts.map +1 -1
  113. package/dist/embed.js +18 -8
  114. package/dist/embed.js.map +1 -1
  115. package/dist/formatter.d.ts.map +1 -1
  116. package/dist/formatter.js +10 -3
  117. package/dist/formatter.js.map +1 -1
  118. package/dist/index.js +494 -167
  119. package/dist/index.js.map +1 -1
  120. package/dist/infrastructure/ai/cohere-ai-service.d.ts.map +1 -1
  121. package/dist/infrastructure/ai/cohere-ai-service.js +19 -6
  122. package/dist/infrastructure/ai/cohere-ai-service.js.map +1 -1
  123. package/dist/infrastructure/ai/fake-ai-service.d.ts +22 -0
  124. package/dist/infrastructure/ai/fake-ai-service.d.ts.map +1 -0
  125. package/dist/infrastructure/ai/fake-ai-service.js +59 -0
  126. package/dist/infrastructure/ai/fake-ai-service.js.map +1 -0
  127. package/dist/infrastructure/ai/provider-ai-service.d.ts +59 -0
  128. package/dist/infrastructure/ai/provider-ai-service.d.ts.map +1 -0
  129. package/dist/infrastructure/ai/provider-ai-service.js +477 -0
  130. package/dist/infrastructure/ai/provider-ai-service.js.map +1 -0
  131. package/dist/infrastructure/cache/embedding-cache.d.ts +13 -1
  132. package/dist/infrastructure/cache/embedding-cache.d.ts.map +1 -1
  133. package/dist/infrastructure/cache/embedding-cache.js +80 -9
  134. package/dist/infrastructure/cache/embedding-cache.js.map +1 -1
  135. package/dist/infrastructure/cache/query-result-cache.d.ts +14 -55
  136. package/dist/infrastructure/cache/query-result-cache.d.ts.map +1 -1
  137. package/dist/infrastructure/cache/query-result-cache.js +40 -112
  138. package/dist/infrastructure/cache/query-result-cache.js.map +1 -1
  139. package/dist/infrastructure/cache/response-cache.d.ts +18 -0
  140. package/dist/infrastructure/cache/response-cache.d.ts.map +1 -0
  141. package/dist/infrastructure/cache/response-cache.js +48 -0
  142. package/dist/infrastructure/cache/response-cache.js.map +1 -0
  143. package/dist/infrastructure/cache/security-scan-cache.d.ts +8 -49
  144. package/dist/infrastructure/cache/security-scan-cache.d.ts.map +1 -1
  145. package/dist/infrastructure/cache/security-scan-cache.js +25 -102
  146. package/dist/infrastructure/cache/security-scan-cache.js.map +1 -1
  147. package/dist/infrastructure/completion/bash-completion.d.ts +2 -3
  148. package/dist/infrastructure/completion/bash-completion.d.ts.map +1 -1
  149. package/dist/infrastructure/completion/bash-completion.js +11 -87
  150. package/dist/infrastructure/completion/bash-completion.js.map +1 -1
  151. package/dist/infrastructure/completion/fish-completion.d.ts +2 -3
  152. package/dist/infrastructure/completion/fish-completion.d.ts.map +1 -1
  153. package/dist/infrastructure/completion/fish-completion.js +15 -58
  154. package/dist/infrastructure/completion/fish-completion.js.map +1 -1
  155. package/dist/infrastructure/completion/zsh-completion.d.ts +2 -3
  156. package/dist/infrastructure/completion/zsh-completion.d.ts.map +1 -1
  157. package/dist/infrastructure/completion/zsh-completion.js +18 -73
  158. package/dist/infrastructure/completion/zsh-completion.js.map +1 -1
  159. package/dist/infrastructure/config/config-manager.d.ts +10 -0
  160. package/dist/infrastructure/config/config-manager.d.ts.map +1 -1
  161. package/dist/infrastructure/config/config-manager.js +13 -2
  162. package/dist/infrastructure/config/config-manager.js.map +1 -1
  163. package/dist/infrastructure/context/conversation-context.d.ts +54 -0
  164. package/dist/infrastructure/context/conversation-context.d.ts.map +1 -0
  165. package/dist/infrastructure/context/conversation-context.js +129 -0
  166. package/dist/infrastructure/context/conversation-context.js.map +1 -0
  167. package/dist/infrastructure/context/session-manager.d.ts +42 -0
  168. package/dist/infrastructure/context/session-manager.d.ts.map +1 -0
  169. package/dist/infrastructure/context/session-manager.js +94 -0
  170. package/dist/infrastructure/context/session-manager.js.map +1 -0
  171. package/dist/infrastructure/cost/cost-tracker.d.ts +1 -0
  172. package/dist/infrastructure/cost/cost-tracker.d.ts.map +1 -1
  173. package/dist/infrastructure/cost/cost-tracker.js +12 -5
  174. package/dist/infrastructure/cost/cost-tracker.js.map +1 -1
  175. package/dist/infrastructure/governance/nist-ai-rmf.d.ts +6 -8
  176. package/dist/infrastructure/governance/nist-ai-rmf.d.ts.map +1 -1
  177. package/dist/infrastructure/governance/nist-ai-rmf.js +6 -8
  178. package/dist/infrastructure/governance/nist-ai-rmf.js.map +1 -1
  179. package/dist/infrastructure/governance/policy-as-code.d.ts +6 -8
  180. package/dist/infrastructure/governance/policy-as-code.d.ts.map +1 -1
  181. package/dist/infrastructure/governance/policy-as-code.js +6 -8
  182. package/dist/infrastructure/governance/policy-as-code.js.map +1 -1
  183. package/dist/infrastructure/governance/prompt-to-code-lineage.d.ts +7 -9
  184. package/dist/infrastructure/governance/prompt-to-code-lineage.d.ts.map +1 -1
  185. package/dist/infrastructure/governance/prompt-to-code-lineage.js +7 -9
  186. package/dist/infrastructure/governance/prompt-to-code-lineage.js.map +1 -1
  187. package/dist/infrastructure/protocols/a2a-metadata.js +1 -1
  188. package/dist/infrastructure/protocols/mcp-oauth.js +1 -1
  189. package/dist/infrastructure/providers/cohere-provider.d.ts +39 -0
  190. package/dist/infrastructure/providers/cohere-provider.d.ts.map +1 -0
  191. package/dist/infrastructure/providers/cohere-provider.js +444 -0
  192. package/dist/infrastructure/providers/cohere-provider.js.map +1 -0
  193. package/dist/infrastructure/providers/fake-provider.d.ts +43 -0
  194. package/dist/infrastructure/providers/fake-provider.d.ts.map +1 -0
  195. package/dist/infrastructure/providers/fake-provider.js +130 -0
  196. package/dist/infrastructure/providers/fake-provider.js.map +1 -0
  197. package/dist/infrastructure/providers/local-llm-provider.d.ts +49 -0
  198. package/dist/infrastructure/providers/local-llm-provider.d.ts.map +1 -0
  199. package/dist/infrastructure/providers/local-llm-provider.js +330 -0
  200. package/dist/infrastructure/providers/local-llm-provider.js.map +1 -0
  201. package/dist/infrastructure/providers/model-config.types.d.ts +70 -0
  202. package/dist/infrastructure/providers/model-config.types.d.ts.map +1 -0
  203. package/dist/infrastructure/providers/model-config.types.js +9 -0
  204. package/dist/infrastructure/providers/model-config.types.js.map +1 -0
  205. package/dist/infrastructure/providers/model-provider.interface.d.ts +113 -0
  206. package/dist/infrastructure/providers/model-provider.interface.d.ts.map +1 -0
  207. package/dist/infrastructure/providers/model-provider.interface.js +8 -0
  208. package/dist/infrastructure/providers/model-provider.interface.js.map +1 -0
  209. package/dist/infrastructure/providers/openai-provider.d.ts +38 -0
  210. package/dist/infrastructure/providers/openai-provider.d.ts.map +1 -0
  211. package/dist/infrastructure/providers/openai-provider.js +413 -0
  212. package/dist/infrastructure/providers/openai-provider.js.map +1 -0
  213. package/dist/infrastructure/providers/openrouter-provider.d.ts +42 -0
  214. package/dist/infrastructure/providers/openrouter-provider.d.ts.map +1 -0
  215. package/dist/infrastructure/providers/openrouter-provider.js +401 -0
  216. package/dist/infrastructure/providers/openrouter-provider.js.map +1 -0
  217. package/dist/infrastructure/providers/operation-provider-resolver.d.ts +48 -0
  218. package/dist/infrastructure/providers/operation-provider-resolver.d.ts.map +1 -0
  219. package/dist/infrastructure/providers/operation-provider-resolver.js +131 -0
  220. package/dist/infrastructure/providers/operation-provider-resolver.js.map +1 -0
  221. package/dist/infrastructure/providers/provider-config-loader.d.ts +37 -0
  222. package/dist/infrastructure/providers/provider-config-loader.d.ts.map +1 -0
  223. package/dist/infrastructure/providers/provider-config-loader.js +120 -0
  224. package/dist/infrastructure/providers/provider-config-loader.js.map +1 -0
  225. package/dist/infrastructure/providers/provider-registry.d.ts +53 -0
  226. package/dist/infrastructure/providers/provider-registry.d.ts.map +1 -0
  227. package/dist/infrastructure/providers/provider-registry.js +88 -0
  228. package/dist/infrastructure/providers/provider-registry.js.map +1 -0
  229. package/dist/infrastructure/security/input-validator.d.ts.map +1 -1
  230. package/dist/infrastructure/security/input-validator.js +19 -6
  231. package/dist/infrastructure/security/input-validator.js.map +1 -1
  232. package/dist/infrastructure/serialization/toon-serializer.d.ts +45 -0
  233. package/dist/infrastructure/serialization/toon-serializer.d.ts.map +1 -0
  234. package/dist/infrastructure/serialization/toon-serializer.js +119 -0
  235. package/dist/infrastructure/serialization/toon-serializer.js.map +1 -0
  236. package/dist/infrastructure/storage/embeddings-path.d.ts +18 -0
  237. package/dist/infrastructure/storage/embeddings-path.d.ts.map +1 -0
  238. package/dist/infrastructure/storage/embeddings-path.js +37 -0
  239. package/dist/infrastructure/storage/embeddings-path.js.map +1 -0
  240. package/dist/infrastructure/storage/plan-repository.d.ts +2 -0
  241. package/dist/infrastructure/storage/plan-repository.d.ts.map +1 -1
  242. package/dist/infrastructure/storage/plan-repository.js +36 -73
  243. package/dist/infrastructure/storage/plan-repository.js.map +1 -1
  244. package/dist/infrastructure/storage/sqlite-embedding-repository.d.ts +10 -1
  245. package/dist/infrastructure/storage/sqlite-embedding-repository.d.ts.map +1 -1
  246. package/dist/infrastructure/storage/sqlite-embedding-repository.js +37 -3
  247. package/dist/infrastructure/storage/sqlite-embedding-repository.js.map +1 -1
  248. package/dist/infrastructure/storage/task-helpers.d.ts +69 -0
  249. package/dist/infrastructure/storage/task-helpers.d.ts.map +1 -0
  250. package/dist/infrastructure/storage/task-helpers.js +197 -0
  251. package/dist/infrastructure/storage/task-helpers.js.map +1 -0
  252. package/dist/infrastructure/storage/task-repository.d.ts +68 -0
  253. package/dist/infrastructure/storage/task-repository.d.ts.map +1 -0
  254. package/dist/infrastructure/storage/task-repository.js +216 -0
  255. package/dist/infrastructure/storage/task-repository.js.map +1 -0
  256. package/dist/infrastructure/telemetry/telemetry-service.d.ts +74 -0
  257. package/dist/infrastructure/telemetry/telemetry-service.d.ts.map +1 -0
  258. package/dist/infrastructure/telemetry/telemetry-service.js +167 -0
  259. package/dist/infrastructure/telemetry/telemetry-service.js.map +1 -0
  260. package/dist/infrastructure/ux/bi-directional-learning.d.ts +22 -0
  261. package/dist/infrastructure/ux/bi-directional-learning.d.ts.map +1 -1
  262. package/dist/infrastructure/ux/bi-directional-learning.js +144 -7
  263. package/dist/infrastructure/ux/bi-directional-learning.js.map +1 -1
  264. package/dist/infrastructure/ux/capability-boundaries.d.ts +22 -0
  265. package/dist/infrastructure/ux/capability-boundaries.d.ts.map +1 -0
  266. package/dist/infrastructure/ux/capability-boundaries.js +42 -0
  267. package/dist/infrastructure/ux/capability-boundaries.js.map +1 -0
  268. package/dist/infrastructure/ux/comprehensive-formatter.d.ts +21 -0
  269. package/dist/infrastructure/ux/comprehensive-formatter.d.ts.map +1 -0
  270. package/dist/infrastructure/ux/comprehensive-formatter.js +117 -0
  271. package/dist/infrastructure/ux/comprehensive-formatter.js.map +1 -0
  272. package/dist/infrastructure/ux/contextual-feature-discovery.d.ts +5 -18
  273. package/dist/infrastructure/ux/contextual-feature-discovery.d.ts.map +1 -1
  274. package/dist/infrastructure/ux/contextual-feature-discovery.js +5 -139
  275. package/dist/infrastructure/ux/contextual-feature-discovery.js.map +1 -1
  276. package/dist/infrastructure/ux/feature-discovery.d.ts +3 -33
  277. package/dist/infrastructure/ux/feature-discovery.d.ts.map +1 -1
  278. package/dist/infrastructure/ux/feature-discovery.js +5 -181
  279. package/dist/infrastructure/ux/feature-discovery.js.map +1 -1
  280. package/dist/infrastructure/ux/feedback-prompt.d.ts +26 -0
  281. package/dist/infrastructure/ux/feedback-prompt.d.ts.map +1 -0
  282. package/dist/infrastructure/ux/feedback-prompt.js +45 -0
  283. package/dist/infrastructure/ux/feedback-prompt.js.map +1 -0
  284. package/dist/infrastructure/ux/hitl-review-portal.d.ts.map +1 -1
  285. package/dist/infrastructure/ux/hitl-review-portal.js +4 -1
  286. package/dist/infrastructure/ux/hitl-review-portal.js.map +1 -1
  287. package/dist/infrastructure/ux/hitl-validation.d.ts +35 -0
  288. package/dist/infrastructure/ux/hitl-validation.d.ts.map +1 -1
  289. package/dist/infrastructure/ux/hitl-validation.js +86 -0
  290. package/dist/infrastructure/ux/hitl-validation.js.map +1 -1
  291. package/dist/infrastructure/ux/progress-indicator.d.ts +5 -6
  292. package/dist/infrastructure/ux/progress-indicator.d.ts.map +1 -1
  293. package/dist/infrastructure/ux/progress-indicator.js +36 -41
  294. package/dist/infrastructure/ux/progress-indicator.js.map +1 -1
  295. package/dist/infrastructure/ux/proportional-friction.d.ts +73 -0
  296. package/dist/infrastructure/ux/proportional-friction.d.ts.map +1 -0
  297. package/dist/infrastructure/ux/proportional-friction.js +200 -0
  298. package/dist/infrastructure/ux/proportional-friction.js.map +1 -0
  299. package/dist/infrastructure/ux/review-checkpoint.d.ts +3 -1
  300. package/dist/infrastructure/ux/review-checkpoint.d.ts.map +1 -1
  301. package/dist/infrastructure/ux/review-checkpoint.js +33 -80
  302. package/dist/infrastructure/ux/review-checkpoint.js.map +1 -1
  303. package/dist/infrastructure/ux/staged-feature-intro.d.ts +14 -39
  304. package/dist/infrastructure/ux/staged-feature-intro.d.ts.map +1 -1
  305. package/dist/infrastructure/ux/staged-feature-intro.js +12 -132
  306. package/dist/infrastructure/ux/staged-feature-intro.js.map +1 -1
  307. package/dist/infrastructure/ux/syntax-highlighter.d.ts +1 -2
  308. package/dist/infrastructure/ux/syntax-highlighter.d.ts.map +1 -1
  309. package/dist/infrastructure/ux/syntax-highlighter.js +67 -148
  310. package/dist/infrastructure/ux/syntax-highlighter.js.map +1 -1
  311. package/dist/infrastructure/validation/agent-feedback.d.ts +51 -0
  312. package/dist/infrastructure/validation/agent-feedback.d.ts.map +1 -0
  313. package/dist/infrastructure/validation/agent-feedback.js +55 -0
  314. package/dist/infrastructure/validation/agent-feedback.js.map +1 -0
  315. package/dist/infrastructure/validation/agent-validation-helper.d.ts +75 -0
  316. package/dist/infrastructure/validation/agent-validation-helper.d.ts.map +1 -0
  317. package/dist/infrastructure/validation/agent-validation-helper.js +137 -0
  318. package/dist/infrastructure/validation/agent-validation-helper.js.map +1 -0
  319. package/dist/infrastructure/validation/feedback-stats.d.ts +99 -0
  320. package/dist/infrastructure/validation/feedback-stats.d.ts.map +1 -0
  321. package/dist/infrastructure/validation/feedback-stats.js +173 -0
  322. package/dist/infrastructure/validation/feedback-stats.js.map +1 -0
  323. package/dist/infrastructure/validation/review-handler.d.ts +26 -0
  324. package/dist/infrastructure/validation/review-handler.d.ts.map +1 -0
  325. package/dist/infrastructure/validation/review-handler.js +40 -0
  326. package/dist/infrastructure/validation/review-handler.js.map +1 -0
  327. package/dist/infrastructure/validation/summary-aggregator.d.ts +45 -0
  328. package/dist/infrastructure/validation/summary-aggregator.d.ts.map +1 -0
  329. package/dist/infrastructure/validation/summary-aggregator.js +70 -0
  330. package/dist/infrastructure/validation/summary-aggregator.js.map +1 -0
  331. package/dist/infrastructure/validation/summary-extractor.d.ts +24 -0
  332. package/dist/infrastructure/validation/summary-extractor.d.ts.map +1 -0
  333. package/dist/infrastructure/validation/summary-extractor.js +45 -0
  334. package/dist/infrastructure/validation/summary-extractor.js.map +1 -0
  335. package/dist/infrastructure/validation/trace-summary.d.ts +45 -0
  336. package/dist/infrastructure/validation/trace-summary.d.ts.map +1 -0
  337. package/dist/infrastructure/validation/trace-summary.js +52 -0
  338. package/dist/infrastructure/validation/trace-summary.js.map +1 -0
  339. package/dist/infrastructure/validation/trust-config.d.ts +27 -0
  340. package/dist/infrastructure/validation/trust-config.d.ts.map +1 -0
  341. package/dist/infrastructure/validation/trust-config.js +113 -0
  342. package/dist/infrastructure/validation/trust-config.js.map +1 -0
  343. package/dist/infrastructure/xai/attention-visualizer.d.ts +6 -8
  344. package/dist/infrastructure/xai/attention-visualizer.d.ts.map +1 -1
  345. package/dist/infrastructure/xai/attention-visualizer.js +6 -8
  346. package/dist/infrastructure/xai/attention-visualizer.js.map +1 -1
  347. package/dist/infrastructure/xai/cot-visualizer.d.ts +6 -9
  348. package/dist/infrastructure/xai/cot-visualizer.d.ts.map +1 -1
  349. package/dist/infrastructure/xai/cot-visualizer.js +6 -9
  350. package/dist/infrastructure/xai/cot-visualizer.js.map +1 -1
  351. package/dist/infrastructure/xai/decision-tree-log.d.ts +6 -10
  352. package/dist/infrastructure/xai/decision-tree-log.d.ts.map +1 -1
  353. package/dist/infrastructure/xai/decision-tree-log.js +6 -10
  354. package/dist/infrastructure/xai/decision-tree-log.js.map +1 -1
  355. package/dist/infrastructure/xai/interactive-xai.d.ts +6 -8
  356. package/dist/infrastructure/xai/interactive-xai.d.ts.map +1 -1
  357. package/dist/infrastructure/xai/interactive-xai.js +6 -8
  358. package/dist/infrastructure/xai/interactive-xai.js.map +1 -1
  359. package/dist/infrastructure/xai/uncertainty-quantifier.d.ts +6 -9
  360. package/dist/infrastructure/xai/uncertainty-quantifier.d.ts.map +1 -1
  361. package/dist/infrastructure/xai/uncertainty-quantifier.js +6 -9
  362. package/dist/infrastructure/xai/uncertainty-quantifier.js.map +1 -1
  363. package/dist/monitoring.d.ts +1 -1
  364. package/dist/monitoring.d.ts.map +1 -1
  365. package/dist/monitoring.js +12 -9
  366. package/dist/monitoring.js.map +1 -1
  367. package/dist/parallel-processor.d.ts.map +1 -1
  368. package/dist/parallel-processor.js +124 -45
  369. package/dist/parallel-processor.js.map +1 -1
  370. package/dist/presentation/cli/commands/ask-command.d.ts +2 -0
  371. package/dist/presentation/cli/commands/ask-command.d.ts.map +1 -1
  372. package/dist/presentation/cli/commands/ask-command.js +356 -87
  373. package/dist/presentation/cli/commands/ask-command.js.map +1 -1
  374. package/dist/presentation/cli/commands/config-command.d.ts.map +1 -1
  375. package/dist/presentation/cli/commands/config-command.js +22 -8
  376. package/dist/presentation/cli/commands/config-command.js.map +1 -1
  377. package/dist/presentation/cli/commands/decision-command.js +23 -6
  378. package/dist/presentation/cli/commands/decision-command.js.map +1 -1
  379. package/dist/presentation/cli/commands/docs-command.d.ts +14 -0
  380. package/dist/presentation/cli/commands/docs-command.d.ts.map +1 -0
  381. package/dist/presentation/cli/commands/docs-command.js +25 -0
  382. package/dist/presentation/cli/commands/docs-command.js.map +1 -0
  383. package/dist/presentation/cli/commands/fix-command.d.ts +10 -0
  384. package/dist/presentation/cli/commands/fix-command.d.ts.map +1 -0
  385. package/dist/presentation/cli/commands/fix-command.js +94 -0
  386. package/dist/presentation/cli/commands/fix-command.js.map +1 -0
  387. package/dist/presentation/cli/commands/help-command.d.ts.map +1 -1
  388. package/dist/presentation/cli/commands/help-command.js +23 -1
  389. package/dist/presentation/cli/commands/help-command.js.map +1 -1
  390. package/dist/presentation/cli/commands/memory-command.d.ts +17 -0
  391. package/dist/presentation/cli/commands/memory-command.d.ts.map +1 -0
  392. package/dist/presentation/cli/commands/memory-command.js +252 -0
  393. package/dist/presentation/cli/commands/memory-command.js.map +1 -0
  394. package/dist/presentation/cli/commands/models-command.d.ts +13 -0
  395. package/dist/presentation/cli/commands/models-command.d.ts.map +1 -0
  396. package/dist/presentation/cli/commands/models-command.js +194 -0
  397. package/dist/presentation/cli/commands/models-command.js.map +1 -0
  398. package/dist/presentation/cli/commands/orchestrate-command.d.ts +2 -0
  399. package/dist/presentation/cli/commands/orchestrate-command.d.ts.map +1 -1
  400. package/dist/presentation/cli/commands/orchestrate-command.js +182 -14
  401. package/dist/presentation/cli/commands/orchestrate-command.js.map +1 -1
  402. package/dist/presentation/cli/commands/plan-command.d.ts +2 -0
  403. package/dist/presentation/cli/commands/plan-command.d.ts.map +1 -1
  404. package/dist/presentation/cli/commands/plan-command.js +212 -26
  405. package/dist/presentation/cli/commands/plan-command.js.map +1 -1
  406. package/dist/presentation/cli/commands/product-command.d.ts +14 -0
  407. package/dist/presentation/cli/commands/product-command.d.ts.map +1 -0
  408. package/dist/presentation/cli/commands/product-command.js +22 -0
  409. package/dist/presentation/cli/commands/product-command.js.map +1 -0
  410. package/dist/presentation/cli/commands/react-command.d.ts.map +1 -1
  411. package/dist/presentation/cli/commands/react-command.js +8 -2
  412. package/dist/presentation/cli/commands/react-command.js.map +1 -1
  413. package/dist/presentation/cli/commands/review-command.d.ts +14 -0
  414. package/dist/presentation/cli/commands/review-command.d.ts.map +1 -0
  415. package/dist/presentation/cli/commands/review-command.js +173 -0
  416. package/dist/presentation/cli/commands/review-command.js.map +1 -0
  417. package/dist/presentation/cli/commands/run-command.d.ts +13 -0
  418. package/dist/presentation/cli/commands/run-command.d.ts.map +1 -0
  419. package/dist/presentation/cli/commands/run-command.js +188 -0
  420. package/dist/presentation/cli/commands/run-command.js.map +1 -0
  421. package/dist/presentation/cli/commands/setup-command.d.ts.map +1 -1
  422. package/dist/presentation/cli/commands/setup-command.js +15 -0
  423. package/dist/presentation/cli/commands/setup-command.js.map +1 -1
  424. package/dist/presentation/cli/commands/smart-command.d.ts +3 -1
  425. package/dist/presentation/cli/commands/smart-command.d.ts.map +1 -1
  426. package/dist/presentation/cli/commands/smart-command.js +165 -11
  427. package/dist/presentation/cli/commands/smart-command.js.map +1 -1
  428. package/dist/presentation/cli/commands/status-command.d.ts +14 -0
  429. package/dist/presentation/cli/commands/status-command.d.ts.map +1 -0
  430. package/dist/presentation/cli/commands/status-command.js +171 -0
  431. package/dist/presentation/cli/commands/status-command.js.map +1 -0
  432. package/dist/presentation/cli/commands/suggest-command.d.ts +11 -0
  433. package/dist/presentation/cli/commands/suggest-command.d.ts.map +1 -0
  434. package/dist/presentation/cli/commands/suggest-command.js +138 -0
  435. package/dist/presentation/cli/commands/suggest-command.js.map +1 -0
  436. package/dist/presentation/cli/error-display.d.ts.map +1 -1
  437. package/dist/presentation/cli/error-display.js +118 -17
  438. package/dist/presentation/cli/error-display.js.map +1 -1
  439. package/dist/search.d.ts.map +1 -1
  440. package/dist/search.js +6 -1
  441. package/dist/search.js.map +1 -1
  442. package/dist/session.d.ts +1 -0
  443. package/dist/session.d.ts.map +1 -1
  444. package/dist/session.js +69 -4
  445. package/dist/session.js.map +1 -1
  446. package/dist/tools/bash.d.ts.map +1 -1
  447. package/dist/tools/bash.js +3 -0
  448. package/dist/tools/bash.js.map +1 -1
  449. package/dist/tools/git-tool.js +7 -7
  450. package/dist/tools/git-tool.js.map +1 -1
  451. package/dist/ui.d.ts +11 -0
  452. package/dist/ui.d.ts.map +1 -1
  453. package/dist/ui.js +62 -6
  454. package/dist/ui.js.map +1 -1
  455. package/package.json +22 -4
@@ -0,0 +1,217 @@
1
+ /**
2
+ * Simple Planning Strategy
3
+ * Wraps current planning behavior into structured reasoning trace
4
+ * Behaviorally equivalent to current PlanningUseCase, but structured
5
+ */
6
+ import { randomUUID } from 'crypto';
7
+ export class SimplePlanningStrategy {
8
+ aiService;
9
+ constructor(aiService) {
10
+ this.aiService = aiService;
11
+ }
12
+ async executePlanning(context) {
13
+ const startTime = Date.now();
14
+ const stepId = randomUUID();
15
+ // Build the same prompt as PlanningUseCase.createHierarchicalPlan
16
+ const prompt = this.buildPlanningPrompt(context);
17
+ // Convert memories to CodeChunk[] format expected by aiService.chat
18
+ const codeChunks = [];
19
+ const memories = context.memories?.map(m => {
20
+ const memory = {
21
+ id: randomUUID(),
22
+ type: 'reflection',
23
+ description: m.description,
24
+ embedding: [],
25
+ timestamp: new Date(),
26
+ importance: 5,
27
+ lastAccessed: new Date(),
28
+ };
29
+ // Only add metadata if it has valid MemoryMetadata fields
30
+ if (m && typeof m === 'object') {
31
+ memory.metadata = m;
32
+ }
33
+ return memory;
34
+ }) || [];
35
+ // Call AI service (same as current implementation)
36
+ const response = await this.aiService.chat(prompt, codeChunks, memories);
37
+ const duration = Date.now() - startTime;
38
+ // Try to extract token usage from response if available
39
+ // Note: IAIService.chat() returns string, but provider responses may have usage info
40
+ // For now, we'll estimate tokens (can be enhanced in future to get actual usage)
41
+ const estimatedInputTokens = Math.ceil(prompt.length / 4);
42
+ const estimatedOutputTokens = Math.ceil(response.length / 4);
43
+ // Parse plan from response (same logic as PlanningUseCase)
44
+ const plan = this.parsePlanFromResponse(response, context);
45
+ // Create reasoning step
46
+ const step = {
47
+ id: stepId,
48
+ role: 'planner',
49
+ input: prompt,
50
+ output: response,
51
+ timestamp: startTime,
52
+ duration,
53
+ tokenUsage: {
54
+ inputTokens: estimatedInputTokens,
55
+ outputTokens: estimatedOutputTokens,
56
+ },
57
+ metadata: {
58
+ planningMode: context.planningMode || 'hybrid',
59
+ goal: context.goal,
60
+ },
61
+ };
62
+ // Create reasoning trace
63
+ const trace = {
64
+ id: randomUUID(),
65
+ steps: [step],
66
+ summary: `Generated plan with ${plan.subPlans.length} sub-plans`,
67
+ metadata: {
68
+ totalDuration: duration,
69
+ totalTokens: estimatedInputTokens + estimatedOutputTokens,
70
+ },
71
+ };
72
+ return {
73
+ plan,
74
+ trace,
75
+ };
76
+ }
77
+ /**
78
+ * Build planning prompt (reuses logic from PlanningUseCase)
79
+ */
80
+ buildPlanningPrompt(context) {
81
+ const reflectionContext = context.reflections
82
+ ?.map((r, i) => `${i + 1}. ${r}`)
83
+ .join('\n') || 'No specific reflections.';
84
+ const memoryContext = context.memories
85
+ ?.slice(0, 20)
86
+ .map((m, i) => `${i + 1}. ${m.description}`)
87
+ .join('\n') || 'No relevant past experiences.';
88
+ const planningMode = context.planningMode || 'hybrid';
89
+ const fileContext = context.context?.files?.length
90
+ ? `\nFiles to consider: ${context.context.files.join(', ')}`
91
+ : '';
92
+ const constraintsContext = context.context?.constraints?.length
93
+ ? `\nConstraints: ${context.context.constraints.join(', ')}`
94
+ : '';
95
+ return `You are a Planning Agent (Architect) for an AI coding system. Your role is to create detailed, step-by-step modification plans.
96
+
97
+ Goal: "${context.goal}"${fileContext}${constraintsContext}
98
+
99
+ Consider:
100
+ - **Relevant Past Experiences/Memories**:
101
+ ${memoryContext}
102
+ - **Synthesized Reflections/Insights**:
103
+ ${reflectionContext}
104
+
105
+ Create a detailed plan with:
106
+ 1. Clear sub-plans with specific actions
107
+ 2. Dependencies between sub-plans
108
+ 3. Estimated complexity for each sub-plan
109
+ 4. Required tools/resources for each step
110
+
111
+ For each sub-plan, specify:
112
+ - \`id\`: Unique identifier (e.g., "subplan_1")
113
+ - \`description\`: Clear, actionable description WITH filepath if applicable
114
+ - \`type\`: Action type (search, edit, refactor, review, analyze, implement, test, debug)
115
+ - \`dependencies\`: Array of sub-plan IDs that must complete first
116
+ - \`status\`: Always "pending" initially
117
+ - \`estimatedComplexity\`: "low" | "medium" | "high"
118
+ - \`requiredTools\`: Array of tool names needed
119
+
120
+ Planning Mode: ${planningMode}
121
+
122
+ Respond with ONLY a JSON array of sub-plan objects.
123
+
124
+ Example:
125
+ [
126
+ {
127
+ "id": "subplan_1",
128
+ "description": "Search codebase for existing authentication patterns",
129
+ "type": "search",
130
+ "dependencies": [],
131
+ "status": "pending",
132
+ "estimatedComplexity": "low",
133
+ "requiredTools": ["search"]
134
+ }
135
+ ]
136
+
137
+ JSON only, no other text:`;
138
+ }
139
+ /**
140
+ * Parse plan from AI response (reuses logic from PlanningAgent)
141
+ */
142
+ parsePlanFromResponse(response, context) {
143
+ try {
144
+ // Try to extract JSON array from response
145
+ const jsonMatch = response.match(/\[[\s\S]*\]/);
146
+ if (jsonMatch) {
147
+ const subPlansData = JSON.parse(jsonMatch[0]);
148
+ const subPlans = subPlansData.map((sp, idx) => ({
149
+ id: sp.id || `subplan_${idx + 1}`,
150
+ description: sp.description || '',
151
+ type: (sp.type || 'implement'),
152
+ dependencies: sp.dependencies || [],
153
+ status: 'pending',
154
+ estimatedSteps: sp.estimatedSteps || 1,
155
+ estimatedComplexity: sp.estimatedComplexity || 'medium',
156
+ }));
157
+ // Build dependencies from sub-plan dependencies
158
+ const dependencies = [];
159
+ subPlans.forEach(sp => {
160
+ sp.dependencies.forEach((depId) => {
161
+ dependencies.push({
162
+ from: depId,
163
+ to: sp.id,
164
+ type: 'sequential',
165
+ });
166
+ });
167
+ });
168
+ return {
169
+ id: randomUUID(),
170
+ goal: context.goal,
171
+ description: `Plan to achieve: ${context.goal}`,
172
+ status: 'draft',
173
+ createdAt: new Date(),
174
+ subPlans,
175
+ dependencies,
176
+ metadata: {
177
+ memoriesUsed: [],
178
+ reflections: [],
179
+ complexity: 'medium',
180
+ priority: 5,
181
+ },
182
+ };
183
+ }
184
+ }
185
+ catch (error) {
186
+ // Fallback: create a simple plan
187
+ console.warn('[SimplePlanningStrategy] Failed to parse plan, creating fallback:', error);
188
+ }
189
+ // Fallback plan
190
+ return {
191
+ id: randomUUID(),
192
+ goal: context.goal,
193
+ description: `Plan to achieve: ${context.goal}`,
194
+ status: 'draft',
195
+ createdAt: new Date(),
196
+ subPlans: [
197
+ {
198
+ id: 'subplan_1',
199
+ description: context.goal,
200
+ type: 'implement',
201
+ dependencies: [],
202
+ status: 'pending',
203
+ estimatedSteps: 1,
204
+ estimatedComplexity: 'medium',
205
+ },
206
+ ],
207
+ dependencies: [],
208
+ metadata: {
209
+ memoriesUsed: [],
210
+ reflections: [],
211
+ complexity: 'medium',
212
+ priority: 5,
213
+ },
214
+ };
215
+ }
216
+ }
217
+ //# sourceMappingURL=simple-planning-strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple-planning-strategy.js","sourceRoot":"","sources":["../../../src/application/reasoning/simple-planning-strategy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAQpC,MAAM,OAAO,sBAAsB;IACb;IAApB,YAAoB,SAAqB;QAArB,cAAS,GAAT,SAAS,CAAY;IAAG,CAAC;IAE7C,KAAK,CAAC,eAAe,CAAC,OAA6B;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAE5B,kEAAkE;QAClE,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAEjD,oEAAoE;QACpE,MAAM,UAAU,GAAgB,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAa,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE;YACnD,MAAM,MAAM,GAAW;gBACrB,EAAE,EAAE,UAAU,EAAE;gBAChB,IAAI,EAAE,YAAqB;gBAC3B,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,SAAS,EAAE,EAAE;gBACb,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,UAAU,EAAE,CAAC;gBACb,YAAY,EAAE,IAAI,IAAI,EAAE;aACzB,CAAC;YACF,0DAA0D;YAC1D,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC/B,MAAM,CAAC,QAAQ,GAAG,CAAmB,CAAC;YACxC,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,IAAI,EAAE,CAAC;QAET,mDAAmD;QACnD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAExC,wDAAwD;QACxD,qFAAqF;QACrF,iFAAiF;QACjF,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1D,MAAM,qBAAqB,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAE7D,2DAA2D;QAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE3D,wBAAwB;QACxB,MAAM,IAAI,GAAkB;YAC1B,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,SAAS;YACpB,QAAQ;YACR,UAAU,EAAE;gBACV,WAAW,EAAE,oBAAoB;gBACjC,YAAY,EAAE,qBAAqB;aACpC;YACD,QAAQ,EAAE;gBACR,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,QAAQ;gBAC9C,IAAI,EAAE,OAAO,CAAC,IAAI;aACnB;SACF,CAAC;QAEF,yBAAyB;QACzB,MAAM,KAAK,GAAmB;YAC5B,EAAE,EAAE,UAAU,EAAE;YAChB,KAAK,EAAE,CAAC,IAAI,CAAC;YACb,OAAO,EAAE,uBAAuB,IAAI,CAAC,QAAQ,CAAC,MAAM,YAAY;YAChE,QAAQ,EAAE;gBACR,aAAa,EAAE,QAAQ;gBACvB,WAAW,EAAE,oBAAoB,GAAG,qBAAqB;aAC1D;SACF,CAAC;QAEF,OAAO;YACL,IAAI;YACJ,KAAK;SACN,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,OAA6B;QACvD,MAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW;YAC3C,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;aAChC,IAAI,CAAC,IAAI,CAAC,IAAI,0BAA0B,CAAC;QAE5C,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ;YACpC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;aACb,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;aAC3C,IAAI,CAAC,IAAI,CAAC,IAAI,+BAA+B,CAAC;QAEjD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,QAAQ,CAAC;QACtD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM;YAChD,CAAC,CAAC,wBAAwB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC5D,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,kBAAkB,GAAG,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM;YAC7D,CAAC,CAAC,kBAAkB,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC5D,CAAC,CAAC,EAAE,CAAC;QAEP,OAAO;;SAEF,OAAO,CAAC,IAAI,IAAI,WAAW,GAAG,kBAAkB;;;;EAIvD,aAAa;;EAEb,iBAAiB;;;;;;;;;;;;;;;;;iBAiBF,YAAY;;;;;;;;;;;;;;;;;0BAiBH,CAAC;IACzB,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,QAAgB,EAAE,OAA6B;QAC3E,IAAI,CAAC;YACH,0CAA0C;YAC1C,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAChD,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAU,CAAC;gBAEvD,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;oBAC9C,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,WAAW,GAAG,GAAG,CAAC,EAAE;oBACjC,WAAW,EAAE,EAAE,CAAC,WAAW,IAAI,EAAE;oBACjC,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,IAAI,WAAW,CAAgC;oBAC7D,YAAY,EAAE,EAAE,CAAC,YAAY,IAAI,EAAE;oBACnC,MAAM,EAAE,SAAkB;oBAC1B,cAAc,EAAE,EAAE,CAAC,cAAc,IAAI,CAAC;oBACtC,mBAAmB,EAAE,EAAE,CAAC,mBAAmB,IAAK,QAAkB;iBACnE,CAAC,CAAC,CAAC;gBAEJ,gDAAgD;gBAChD,MAAM,YAAY,GAAyB,EAAE,CAAC;gBAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oBACpB,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAa,EAAE,EAAE;wBACxC,YAAY,CAAC,IAAI,CAAC;4BAChB,IAAI,EAAE,KAAK;4BACX,EAAE,EAAE,EAAE,CAAC,EAAE;4BACT,IAAI,EAAE,YAAY;yBACnB,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,OAAO;oBACL,EAAE,EAAE,UAAU,EAAE;oBAChB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,WAAW,EAAE,oBAAoB,OAAO,CAAC,IAAI,EAAE;oBAC/C,MAAM,EAAE,OAAgB;oBACxB,SAAS,EAAE,IAAI,IAAI,EAAE;oBACrB,QAAQ;oBACR,YAAY;oBACZ,QAAQ,EAAE;wBACR,YAAY,EAAE,EAAE;wBAChB,WAAW,EAAE,EAAE;wBACf,UAAU,EAAE,QAAiB;wBAC7B,QAAQ,EAAE,CAAC;qBACI;iBAClB,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,iCAAiC;YACjC,OAAO,CAAC,IAAI,CAAC,mEAAmE,EAAE,KAAK,CAAC,CAAC;QAC3F,CAAC;QAED,gBAAgB;QAChB,OAAO;YACL,EAAE,EAAE,UAAU,EAAE;YAChB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,WAAW,EAAE,oBAAoB,OAAO,CAAC,IAAI,EAAE;YAC/C,MAAM,EAAE,OAAgB;YACxB,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,QAAQ,EAAE;gBACR;oBACE,EAAE,EAAE,WAAW;oBACf,WAAW,EAAE,OAAO,CAAC,IAAI;oBACzB,IAAI,EAAE,WAAoB;oBAC1B,YAAY,EAAE,EAAE;oBAChB,MAAM,EAAE,SAAkB;oBAC1B,cAAc,EAAE,CAAC;oBACjB,mBAAmB,EAAE,QAAiB;iBACvC;aACF;YACD,YAAY,EAAE,EAAE;YAChB,QAAQ,EAAE;gBACR,YAAY,EAAE,EAAE;gBAChB,WAAW,EAAE,EAAE;gBACf,UAAU,EAAE,QAAiB;gBAC7B,QAAQ,EAAE,CAAC;aACZ;SACF,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Reasoning Layer Types
3
+ * Core abstractions for structured reasoning and token optimization
4
+ */
5
+ /**
6
+ * Reasoning role - defines the purpose of a reasoning step
7
+ */
8
+ export type ReasoningRole = 'planner' | 'worker' | 'validator' | 'summarizer';
9
+ /**
10
+ * Single reasoning step - atomic unit of reasoning
11
+ */
12
+ export interface ReasoningStep {
13
+ id: string;
14
+ role: ReasoningRole;
15
+ input: string;
16
+ output: string;
17
+ metadata?: Record<string, unknown>;
18
+ timestamp: number;
19
+ duration?: number;
20
+ tokenUsage?: {
21
+ inputTokens?: number;
22
+ outputTokens?: number;
23
+ };
24
+ }
25
+ /**
26
+ * Reasoning trace - sequence of reasoning steps with summary metadata
27
+ */
28
+ export interface ReasoningTrace {
29
+ id: string;
30
+ steps: ReasoningStep[];
31
+ summary?: string;
32
+ metadata?: {
33
+ provider?: string;
34
+ model?: string;
35
+ totalTokens?: number;
36
+ totalDuration?: number;
37
+ };
38
+ }
39
+ /**
40
+ * Compressed reasoning - compact representation for later use
41
+ * Can be expanded to use Toon serialization in future phases
42
+ */
43
+ export interface CompressedReasoning {
44
+ traceId: string;
45
+ compressed: string;
46
+ metadata?: Record<string, unknown>;
47
+ }
48
+ /**
49
+ * Planning input context - what the planner needs to generate a plan
50
+ */
51
+ export interface PlanningInputContext {
52
+ goal: string;
53
+ reflections?: string[];
54
+ memories?: Array<{
55
+ description: string;
56
+ [key: string]: unknown;
57
+ }>;
58
+ context?: {
59
+ files?: string[];
60
+ currentDirectory?: string;
61
+ constraints?: string[];
62
+ };
63
+ planningMode?: 'plan-then-execute' | 'iterative' | 'hybrid';
64
+ }
65
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/application/reasoning/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE;QACX,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE;QACT,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC,CAAC;IAClE,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;IACF,YAAY,CAAC,EAAE,mBAAmB,GAAG,WAAW,GAAG,QAAQ,CAAC;CAC7D"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Reasoning Layer Types
3
+ * Core abstractions for structured reasoning and token optimization
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/application/reasoning/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Validator Strategy
3
+ * Validates and optionally enriches a plan produced by the planner
4
+ */
5
+ import type { Plan } from '../../domain/entities/plan.js';
6
+ import type { IAIService } from '../../domain/interfaces/ai-service.interface.js';
7
+ export interface ValidationResult {
8
+ plan: Plan;
9
+ isValid: boolean;
10
+ warnings?: string[];
11
+ risks?: string[];
12
+ suggestions?: string[];
13
+ }
14
+ /**
15
+ * Validator strategy interface
16
+ */
17
+ export interface IValidatorStrategy {
18
+ /**
19
+ * Validate a plan produced by the planner
20
+ */
21
+ validatePlan(plan: Plan, originalContext: {
22
+ goal: string;
23
+ reflections?: string[];
24
+ memories?: Array<{
25
+ description: string;
26
+ }>;
27
+ context?: {
28
+ files?: string[];
29
+ currentDirectory?: string;
30
+ constraints?: string[];
31
+ };
32
+ }): Promise<ValidationResult>;
33
+ }
34
+ /**
35
+ * Simple validator strategy
36
+ * Uses AI to review the plan and identify potential issues
37
+ */
38
+ export declare class SimpleValidatorStrategy implements IValidatorStrategy {
39
+ private aiService;
40
+ constructor(aiService: IAIService);
41
+ validatePlan(plan: Plan, originalContext: {
42
+ goal: string;
43
+ reflections?: string[];
44
+ memories?: Array<{
45
+ description: string;
46
+ }>;
47
+ context?: {
48
+ files?: string[];
49
+ currentDirectory?: string;
50
+ constraints?: string[];
51
+ };
52
+ }): Promise<ValidationResult>;
53
+ private buildValidationPrompt;
54
+ private parseValidationResponse;
55
+ }
56
+ //# sourceMappingURL=validator-strategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator-strategy.d.ts","sourceRoot":"","sources":["../../../src/application/reasoning/validator-strategy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAgB,MAAM,+BAA+B,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iDAAiD,CAAC;AAIlF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,YAAY,CACV,IAAI,EAAE,IAAI,EACV,eAAe,EAAE;QACf,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,QAAQ,CAAC,EAAE,KAAK,CAAC;YAAE,WAAW,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,EAAE;YACR,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;YACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;SACxB,CAAC;KACH,GACA,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC9B;AAED;;;GAGG;AACH,qBAAa,uBAAwB,YAAW,kBAAkB;IACpD,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,UAAU;IAEnC,YAAY,CAChB,IAAI,EAAE,IAAI,EACV,eAAe,EAAE;QACf,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,QAAQ,CAAC,EAAE,KAAK,CAAC;YAAE,WAAW,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,EAAE;YACR,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;YACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;SACxB,CAAC;KACH,GACA,OAAO,CAAC,gBAAgB,CAAC;IAqB5B,OAAO,CAAC,qBAAqB;IA0C7B,OAAO,CAAC,uBAAuB;CAwDhC"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Validator Strategy
3
+ * Validates and optionally enriches a plan produced by the planner
4
+ */
5
+ /**
6
+ * Simple validator strategy
7
+ * Uses AI to review the plan and identify potential issues
8
+ */
9
+ export class SimpleValidatorStrategy {
10
+ aiService;
11
+ constructor(aiService) {
12
+ this.aiService = aiService;
13
+ }
14
+ async validatePlan(plan, originalContext) {
15
+ const prompt = this.buildValidationPrompt(plan, originalContext);
16
+ const codeChunks = [];
17
+ const memories = [];
18
+ try {
19
+ const response = await this.aiService.chat(prompt, codeChunks, memories);
20
+ const validation = this.parseValidationResponse(response, plan);
21
+ return validation;
22
+ }
23
+ catch (error) {
24
+ // On validation failure, return plan as-is with warning
25
+ console.warn('[SimpleValidatorStrategy] Validation failed, using plan as-is:', error instanceof Error ? error.message : String(error));
26
+ return {
27
+ plan,
28
+ isValid: true, // Default to valid to not block planning
29
+ warnings: ['Validation step failed, plan used without validation'],
30
+ };
31
+ }
32
+ }
33
+ buildValidationPrompt(plan, context) {
34
+ const planJson = JSON.stringify(plan, null, 2);
35
+ const constraintsText = context.context?.constraints?.length
36
+ ? `\nConstraints: ${context.context.constraints.join(', ')}`
37
+ : '';
38
+ return `You are a Plan Validator for an AI coding system. Review the following plan and identify potential issues, risks, or improvements.
39
+
40
+ Goal: "${context.goal}"${constraintsText}
41
+
42
+ Plan to validate:
43
+ ${planJson}
44
+
45
+ Review the plan and provide:
46
+ 1. Is the plan valid and feasible? (true/false)
47
+ 2. Any warnings about potential issues
48
+ 3. Any risks that could cause the plan to fail
49
+ 4. Suggestions for improvement (optional)
50
+
51
+ Respond with ONLY a JSON object in this format:
52
+ {
53
+ "isValid": true,
54
+ "warnings": ["warning 1", "warning 2"],
55
+ "risks": ["risk 1"],
56
+ "suggestions": ["suggestion 1"]
57
+ }
58
+
59
+ JSON only, no other text:`;
60
+ }
61
+ parseValidationResponse(response, originalPlan) {
62
+ try {
63
+ const jsonMatch = response.match(/\{[\s\S]*\}/);
64
+ if (jsonMatch) {
65
+ const validation = JSON.parse(jsonMatch[0]);
66
+ // Enrich plan metadata with validation results (internal only)
67
+ // Store in metadata as any to avoid type issues (internal use only)
68
+ const enrichedPlan = {
69
+ ...originalPlan,
70
+ metadata: {
71
+ ...originalPlan.metadata,
72
+ // Store validation results in metadata (not exposed to users)
73
+ // Using type assertion for internal metadata
74
+ },
75
+ };
76
+ // Set validation metadata separately to avoid type issues
77
+ enrichedPlan.metadata._validation = {
78
+ isValid: validation.isValid ?? true,
79
+ warnings: validation.warnings || [],
80
+ risks: validation.risks || [],
81
+ suggestions: validation.suggestions || [],
82
+ };
83
+ return {
84
+ plan: enrichedPlan,
85
+ isValid: validation.isValid ?? true,
86
+ warnings: validation.warnings,
87
+ risks: validation.risks,
88
+ suggestions: validation.suggestions,
89
+ };
90
+ }
91
+ }
92
+ catch (error) {
93
+ console.warn('[SimpleValidatorStrategy] Failed to parse validation response:', error);
94
+ }
95
+ // Fallback: return plan as-is
96
+ return {
97
+ plan: originalPlan,
98
+ isValid: true,
99
+ warnings: ['Could not parse validation response'],
100
+ };
101
+ }
102
+ }
103
+ //# sourceMappingURL=validator-strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator-strategy.js","sourceRoot":"","sources":["../../../src/application/reasoning/validator-strategy.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * Dependency Container
3
3
  * Simple DI container for wiring up dependencies
4
4
  */
5
- import { CohereAIService } from '../../infrastructure/ai/cohere-ai-service.js';
5
+ import type { IAIService } from '../../domain/interfaces/ai-service.interface.js';
6
6
  import { SQLiteEmbeddingRepository } from '../../infrastructure/storage/sqlite-embedding-repository.js';
7
7
  import { SQLiteMemoryRepository } from '../../infrastructure/storage/sqlite-memory-repository.js';
8
8
  import { MemoryStreamService } from '../../infrastructure/storage/memory-stream-service.js';
@@ -47,8 +47,10 @@ import { SQLiteKnowledgePreservationRepository } from '../../infrastructure/stor
47
47
  import { KnowledgeExtractor } from '../../domain/services/knowledge-extractor.js';
48
48
  import { KnowledgeAccess } from '../../domain/services/knowledge-access.js';
49
49
  import { CrossTeamPatternSharing } from '../../domain/services/cross-team-pattern-sharing.js';
50
+ import { ProviderRegistry } from '../../infrastructure/providers/provider-registry.js';
50
51
  export declare class DependencyContainer {
51
52
  private _aiService;
53
+ private _providerRegistry;
52
54
  private _embeddingRepository;
53
55
  private _memoryRepository;
54
56
  private _memoryStreamService;
@@ -89,11 +91,53 @@ export declare class DependencyContainer {
89
91
  private _editFileUseCase;
90
92
  private _explainFileUseCase;
91
93
  private _planningUseCase;
92
- get aiService(): CohereAIService;
94
+ /**
95
+ * Provider Registry
96
+ * Phase 4C: Provider selection via env/config
97
+ *
98
+ * Provider Selection Logic:
99
+ * - Always register CohereProvider (default)
100
+ * - Register OpenAIProvider if CODEHERE_OPENAI_API_KEY is set
101
+ * - Default provider:
102
+ * - If CODEHERE_AI_PROVIDER=openai and OpenAIProvider available → OpenAI
103
+ * - Else → Cohere (backward compatible)
104
+ */
105
+ get providerRegistry(): ProviderRegistry;
106
+ get aiService(): IAIService;
107
+ /**
108
+ * Get embedding repository for a specific codebase
109
+ * @param cwd - Current working directory for codebase root detection (defaults to process.cwd())
110
+ * @returns SQLiteEmbeddingRepository instance scoped to the codebase
111
+ */
112
+ getEmbeddingRepository(cwd?: string): SQLiteEmbeddingRepository;
113
+ /**
114
+ * @deprecated Use getEmbeddingRepository(cwd) instead for per-repo isolation
115
+ * Kept for backward compatibility
116
+ */
93
117
  get embeddingRepository(): SQLiteEmbeddingRepository;
94
118
  get memoryRepository(): SQLiteMemoryRepository;
95
119
  get memoryStreamService(): MemoryStreamService;
120
+ /**
121
+ * Get ask question use case for a specific codebase
122
+ * @param cwd - Current working directory for codebase root detection (defaults to process.cwd())
123
+ * @returns AskQuestionUseCase instance scoped to the codebase
124
+ */
125
+ getAskQuestionUseCase(cwd?: string): AskQuestionUseCase;
126
+ /**
127
+ * @deprecated Use getAskQuestionUseCase(cwd) instead for per-repo isolation
128
+ * Kept for backward compatibility
129
+ */
96
130
  get askQuestionUseCase(): AskQuestionUseCase;
131
+ /**
132
+ * Get index codebase use case for a specific codebase
133
+ * @param cwd - Current working directory for codebase root detection (defaults to process.cwd())
134
+ * @returns IndexCodebaseUseCase instance scoped to the codebase
135
+ */
136
+ getIndexCodebaseUseCase(cwd?: string): IndexCodebaseUseCase;
137
+ /**
138
+ * @deprecated Use getIndexCodebaseUseCase(cwd) instead for per-repo isolation
139
+ * Kept for backward compatibility
140
+ */
97
141
  get indexCodebaseUseCase(): IndexCodebaseUseCase;
98
142
  get toolExecutorService(): ToolExecutorService;
99
143
  get reactOrchestrationUseCase(): ReActOrchestrationUseCase;
@@ -1 +1 @@
1
- {"version":3,"file":"dependency-container.d.ts","sourceRoot":"","sources":["../../../src/application/services/dependency-container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dependency-container.d.ts","sourceRoot":"","sources":["../../../src/application/services/dependency-container.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iDAAiD,CAAC;AAClF,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;AAGhG,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,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,qBAAa,mBAAmB;IAE9B,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,iBAAiB,CAAiC;IAC1D,OAAO,CAAC,oBAAoB,CAA0C;IACtE,OAAO,CAAC,iBAAiB,CAAuC;IAGhE,OAAO,CAAC,oBAAoB,CAAoC;IAChE,OAAO,CAAC,oBAAoB,CAAoC;IAGhE,OAAO,CAAC,oBAAoB,CAAoC;IAChE,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,qBAAqB,CAAqC;IAClE,OAAO,CAAC,sBAAsB,CAAsC;IACpE,OAAO,CAAC,qBAAqB,CAAqC;IAClE,OAAO,CAAC,gBAAgB,CAAgC;IAGxD,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,oBAAoB,CAAoC;IAChE,OAAO,CAAC,eAAe,CAA+B;IAGtD,OAAO,CAAC,kBAAkB,CAAkC;IAG5D,OAAO,CAAC,oBAAoB,CAAoC;IAChE,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,sBAAsB,CAAsC;IACpE,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,sBAAsB,CAAsC;IACpE,OAAO,CAAC,sBAAsB,CAAsC;IAGpE,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,oBAAoB,CAAoC;IAGhE,OAAO,CAAC,mBAAmB,CAAyC;IACpE,OAAO,CAAC,iBAAiB,CAAiC;IAC1D,OAAO,CAAC,kBAAkB,CAAkC;IAG5D,OAAO,CAAC,kBAAkB,CAAwC;IAClE,OAAO,CAAC,iBAAiB,CAAiC;IAG1D,OAAO,CAAC,gCAAgC,CAAsD;IAC9F,OAAO,CAAC,mBAAmB,CAAmC;IAC9D,OAAO,CAAC,gBAAgB,CAAgC;IAGxD,OAAO,CAAC,wBAAwB,CAAwC;IAGxE,OAAO,CAAC,mBAAmB,CAAmC;IAC9D,OAAO,CAAC,qBAAqB,CAAqC;IAClE,OAAO,CAAC,0BAA0B,CAA0C;IAC5E,OAAO,CAAC,iBAAiB,CAAiC;IAC1D,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,mBAAmB,CAAmC;IAC9D,OAAO,CAAC,gBAAgB,CAAgC;IAExD;;;;;;;;;;OAUG;IACH,IAAI,gBAAgB,IAAI,gBAAgB,CAwFvC;IAED,IAAI,SAAS,IAAI,UAAU,CA6B1B;IAED;;;;OAIG;IACH,sBAAsB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,yBAAyB;IAM/D;;;OAGG;IACH,IAAI,mBAAmB,IAAI,yBAAyB,CAMnD;IAED,IAAI,gBAAgB,IAAI,sBAAsB,CAK7C;IAED,IAAI,mBAAmB,IAAI,mBAAmB,CAQ7C;IAED;;;;OAIG;IACH,qBAAqB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,kBAAkB;IAUvD;;;OAGG;IACH,IAAI,kBAAkB,IAAI,kBAAkB,CAU3C;IAED;;;;OAIG;IACH,uBAAuB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,oBAAoB;IAe3D;;;OAGG;IACH,IAAI,oBAAoB,IAAI,oBAAoB,CAe/C;IAED,IAAI,mBAAmB,IAAI,mBAAmB,CAK7C;IAED,IAAI,yBAAyB,IAAI,yBAAyB,CAazD;IAED,IAAI,gBAAgB,IAAI,gBAAgB,CAQvC;IAED,IAAI,mBAAmB,IAAI,mBAAmB,CAK7C;IAED,IAAI,WAAW,IAAI,aAAa,CAK/B;IAED,IAAI,cAAc,IAAI,cAAc,CAKnC;IAED,IAAI,oBAAoB,IAAI,oBAAoB,CAK/C;IAED,IAAI,qBAAqB,IAAI,qBAAqB,CAKjD;IAED,IAAI,oBAAoB,IAAI,oBAAoB,CAU/C;IAED,IAAI,eAAe,IAAI,eAAe,CAKrC;IAGD,IAAI,aAAa,IAAI,aAAa,CAKjC;IAED,IAAI,mBAAmB,IAAI,mBAAmB,CAK7C;IAED,IAAI,cAAc,IAAI,cAAc,CAKnC;IAGD,IAAI,mBAAmB,IAAI,mBAAmB,CAK7C;IAED,IAAI,cAAc,IAAI,cAAc,CAKnC;IAED,IAAI,qBAAqB,IAAI,qBAAqB,CAKjD;IAED,IAAI,aAAa,IAAI,aAAa,CAKjC;IAED,IAAI,qBAAqB,IAAI,qBAAqB,CAKjD;IAED,IAAI,qBAAqB,IAAI,qBAAqB,CAKjD;IAGD,IAAI,SAAS,IAAI,SAAS,CAKzB;IAED,IAAI,YAAY,IAAI,YAAY,CAK/B;IAED,IAAI,mBAAmB,IAAI,mBAAmB,CAK7C;IAED,IAAI,eAAe,IAAI,eAAe,CAiBrC;IAED,IAAI,kBAAkB,IAAI,kBAAkB,CAK3C;IAED,IAAI,eAAe,IAAI,eAAe,CAWrC;IAGD,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,uBAAuB,CAAuC;IAEtE,IAAI,aAAa,IAAI,aAAa,CAajC;IAED,IAAI,cAAc,IAAI,cAAc,CASnC;IAED,IAAI,eAAe,IAAI,eAAe,CAQrC;IAED,IAAI,sBAAsB,IAAI,sBAAsB,CAanD;IAGD,IAAI,kBAAkB,IAAI,wBAAwB,CAKjD;IAED,IAAI,gBAAgB,IAAI,gBAAgB,CAKvC;IAED,IAAI,iBAAiB,IAAI,iBAAiB,CAKzC;IAGD,IAAI,iBAAiB,IAAI,uBAAuB,CAK/C;IAED,IAAI,gBAAgB,IAAI,gBAAgB,CAQvC;IAGD,IAAI,+BAA+B,IAAI,qCAAqC,CAK3E;IAED,IAAI,kBAAkB,IAAI,kBAAkB,CAS3C;IAED,IAAI,eAAe,IAAI,eAAe,CASrC;IAED,IAAI,uBAAuB,IAAI,uBAAuB,CAKrD;IAGD,IAAI,iBAAiB,IAAI,iBAAiB,CAqBzC;CACF;AAED,eAAO,MAAM,SAAS,qBAA4B,CAAC"}