codehere 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of codehere might be problematic. Click here for more details.

Files changed (671) hide show
  1. package/README.md +51 -25
  2. package/dist/agents/base.d.ts +107 -0
  3. package/dist/agents/base.d.ts.map +1 -0
  4. package/dist/agents/base.js +101 -0
  5. package/dist/agents/base.js.map +1 -0
  6. package/dist/agents/orchestrator-model-driven.d.ts +41 -0
  7. package/dist/agents/orchestrator-model-driven.d.ts.map +1 -0
  8. package/dist/agents/orchestrator-model-driven.js +141 -0
  9. package/dist/agents/orchestrator-model-driven.js.map +1 -0
  10. package/dist/agents/react-orchestrator-agent.d.ts +15 -0
  11. package/dist/agents/react-orchestrator-agent.d.ts.map +1 -0
  12. package/dist/agents/react-orchestrator-agent.js +54 -0
  13. package/dist/agents/react-orchestrator-agent.js.map +1 -0
  14. package/dist/application/agents/execution-agent.d.ts +68 -0
  15. package/dist/application/agents/execution-agent.d.ts.map +1 -0
  16. package/dist/application/agents/execution-agent.js +299 -0
  17. package/dist/application/agents/execution-agent.js.map +1 -0
  18. package/dist/application/agents/multi-agent-orchestrator.d.ts +65 -0
  19. package/dist/application/agents/multi-agent-orchestrator.d.ts.map +1 -0
  20. package/dist/application/agents/multi-agent-orchestrator.js +209 -0
  21. package/dist/application/agents/multi-agent-orchestrator.js.map +1 -0
  22. package/dist/application/agents/planning-agent.d.ts +61 -0
  23. package/dist/application/agents/planning-agent.d.ts.map +1 -0
  24. package/dist/application/agents/planning-agent.js +357 -0
  25. package/dist/application/agents/planning-agent.js.map +1 -0
  26. package/dist/application/agents/validation-agent.d.ts +64 -0
  27. package/dist/application/agents/validation-agent.d.ts.map +1 -0
  28. package/dist/application/agents/validation-agent.js +182 -0
  29. package/dist/application/agents/validation-agent.js.map +1 -0
  30. package/dist/application/architectures/plan-and-act.d.ts +94 -0
  31. package/dist/application/architectures/plan-and-act.d.ts.map +1 -0
  32. package/dist/application/architectures/plan-and-act.js +242 -0
  33. package/dist/application/architectures/plan-and-act.js.map +1 -0
  34. package/dist/application/index.d.ts +12 -0
  35. package/dist/application/index.d.ts.map +1 -0
  36. package/dist/application/index.js +12 -0
  37. package/dist/application/index.js.map +1 -0
  38. package/dist/application/services/agent-factory.d.ts +9 -0
  39. package/dist/application/services/agent-factory.d.ts.map +1 -0
  40. package/dist/application/services/agent-factory.js +28 -0
  41. package/dist/application/services/agent-factory.js.map +1 -0
  42. package/dist/application/services/dependency-container.d.ts +143 -0
  43. package/dist/application/services/dependency-container.d.ts.map +1 -0
  44. package/dist/application/services/dependency-container.js +426 -0
  45. package/dist/application/services/dependency-container.js.map +1 -0
  46. package/dist/application/services/git-context-service.d.ts +30 -0
  47. package/dist/application/services/git-context-service.d.ts.map +1 -0
  48. package/dist/application/services/git-context-service.js +83 -0
  49. package/dist/application/services/git-context-service.js.map +1 -0
  50. package/dist/application/services/intelligent-router.d.ts +74 -0
  51. package/dist/application/services/intelligent-router.d.ts.map +1 -0
  52. package/dist/application/services/intelligent-router.js +711 -0
  53. package/dist/application/services/intelligent-router.js.map +1 -0
  54. package/dist/application/services/tool-executor-service.d.ts +14 -0
  55. package/dist/application/services/tool-executor-service.d.ts.map +1 -0
  56. package/dist/application/services/tool-executor-service.js +94 -0
  57. package/dist/application/services/tool-executor-service.js.map +1 -0
  58. package/dist/application/use-cases/ask-question-use-case.d.ts +48 -0
  59. package/dist/application/use-cases/ask-question-use-case.d.ts.map +1 -0
  60. package/dist/application/use-cases/ask-question-use-case.js +270 -0
  61. package/dist/application/use-cases/ask-question-use-case.js.map +1 -0
  62. package/dist/application/use-cases/edit-file-use-case.d.ts +76 -0
  63. package/dist/application/use-cases/edit-file-use-case.d.ts.map +1 -0
  64. package/dist/application/use-cases/edit-file-use-case.js +752 -0
  65. package/dist/application/use-cases/edit-file-use-case.js.map +1 -0
  66. package/dist/application/use-cases/explain-file-use-case.d.ts +21 -0
  67. package/dist/application/use-cases/explain-file-use-case.d.ts.map +1 -0
  68. package/dist/application/use-cases/explain-file-use-case.js +50 -0
  69. package/dist/application/use-cases/explain-file-use-case.js.map +1 -0
  70. package/dist/application/use-cases/index-codebase-use-case.d.ts +46 -0
  71. package/dist/application/use-cases/index-codebase-use-case.d.ts.map +1 -0
  72. package/dist/application/use-cases/index-codebase-use-case.js +113 -0
  73. package/dist/application/use-cases/index-codebase-use-case.js.map +1 -0
  74. package/dist/application/use-cases/planning-use-case.d.ts +46 -0
  75. package/dist/application/use-cases/planning-use-case.d.ts.map +1 -0
  76. package/dist/application/use-cases/planning-use-case.js +276 -0
  77. package/dist/application/use-cases/planning-use-case.js.map +1 -0
  78. package/dist/application/use-cases/react-orchestration-use-case.d.ts +51 -0
  79. package/dist/application/use-cases/react-orchestration-use-case.d.ts.map +1 -0
  80. package/dist/application/use-cases/react-orchestration-use-case.js +329 -0
  81. package/dist/application/use-cases/react-orchestration-use-case.js.map +1 -0
  82. package/dist/application/use-cases/reflexion-use-case.d.ts +24 -0
  83. package/dist/application/use-cases/reflexion-use-case.d.ts.map +1 -0
  84. package/dist/application/use-cases/reflexion-use-case.js +30 -0
  85. package/dist/application/use-cases/reflexion-use-case.js.map +1 -0
  86. package/dist/application/workflows/deterministic-workflows.d.ts +61 -0
  87. package/dist/application/workflows/deterministic-workflows.d.ts.map +1 -0
  88. package/dist/application/workflows/deterministic-workflows.js +189 -0
  89. package/dist/application/workflows/deterministic-workflows.js.map +1 -0
  90. package/dist/cache.d.ts.map +1 -1
  91. package/dist/cache.js +1 -3
  92. package/dist/cache.js.map +1 -1
  93. package/dist/chat.js +10 -10
  94. package/dist/chat.js.map +1 -1
  95. package/dist/docs.d.ts.map +1 -1
  96. package/dist/docs.js +1 -2
  97. package/dist/docs.js.map +1 -1
  98. package/dist/domain/entities/code-chunk.d.ts +26 -0
  99. package/dist/domain/entities/code-chunk.d.ts.map +1 -0
  100. package/dist/domain/entities/code-chunk.js +6 -0
  101. package/dist/domain/entities/code-chunk.js.map +1 -0
  102. package/dist/domain/entities/decision.d.ts +37 -0
  103. package/dist/domain/entities/decision.d.ts.map +1 -0
  104. package/dist/domain/entities/decision.js +9 -0
  105. package/dist/domain/entities/decision.js.map +1 -0
  106. package/dist/domain/entities/edit.d.ts +35 -0
  107. package/dist/domain/entities/edit.d.ts.map +1 -0
  108. package/dist/domain/entities/edit.js +6 -0
  109. package/dist/domain/entities/edit.js.map +1 -0
  110. package/dist/domain/entities/knowledge-node.d.ts +83 -0
  111. package/dist/domain/entities/knowledge-node.d.ts.map +1 -0
  112. package/dist/domain/entities/knowledge-node.js +9 -0
  113. package/dist/domain/entities/knowledge-node.js.map +1 -0
  114. package/dist/domain/entities/knowledge-preservation.d.ts +42 -0
  115. package/dist/domain/entities/knowledge-preservation.d.ts.map +1 -0
  116. package/dist/domain/entities/knowledge-preservation.js +10 -0
  117. package/dist/domain/entities/knowledge-preservation.js.map +1 -0
  118. package/dist/domain/entities/memory.d.ts +36 -0
  119. package/dist/domain/entities/memory.d.ts.map +1 -0
  120. package/dist/domain/entities/memory.js +6 -0
  121. package/dist/domain/entities/memory.js.map +1 -0
  122. package/dist/domain/entities/pattern.d.ts +49 -0
  123. package/dist/domain/entities/pattern.d.ts.map +1 -0
  124. package/dist/domain/entities/pattern.js +7 -0
  125. package/dist/domain/entities/pattern.js.map +1 -0
  126. package/dist/domain/entities/plan.d.ts +42 -0
  127. package/dist/domain/entities/plan.d.ts.map +1 -0
  128. package/dist/domain/entities/plan.js +6 -0
  129. package/dist/domain/entities/plan.js.map +1 -0
  130. package/dist/domain/entities/query.d.ts +17 -0
  131. package/dist/domain/entities/query.d.ts.map +1 -0
  132. package/dist/domain/entities/query.js +6 -0
  133. package/dist/domain/entities/query.js.map +1 -0
  134. package/dist/domain/index.d.ts +16 -0
  135. package/dist/domain/index.d.ts.map +1 -0
  136. package/dist/domain/index.js +19 -0
  137. package/dist/domain/index.js.map +1 -0
  138. package/dist/domain/interfaces/ai-service.interface.d.ts +62 -0
  139. package/dist/domain/interfaces/ai-service.interface.d.ts.map +1 -0
  140. package/dist/domain/interfaces/ai-service.interface.js +6 -0
  141. package/dist/domain/interfaces/ai-service.interface.js.map +1 -0
  142. package/dist/domain/interfaces/code-analyzer.interface.d.ts +38 -0
  143. package/dist/domain/interfaces/code-analyzer.interface.d.ts.map +1 -0
  144. package/dist/domain/interfaces/code-analyzer.interface.js +6 -0
  145. package/dist/domain/interfaces/code-analyzer.interface.js.map +1 -0
  146. package/dist/domain/interfaces/decision-repository.interface.d.ts +51 -0
  147. package/dist/domain/interfaces/decision-repository.interface.d.ts.map +1 -0
  148. package/dist/domain/interfaces/decision-repository.interface.js +9 -0
  149. package/dist/domain/interfaces/decision-repository.interface.js.map +1 -0
  150. package/dist/domain/interfaces/embedding-repository.interface.d.ts +28 -0
  151. package/dist/domain/interfaces/embedding-repository.interface.d.ts.map +1 -0
  152. package/dist/domain/interfaces/embedding-repository.interface.js +6 -0
  153. package/dist/domain/interfaces/embedding-repository.interface.js.map +1 -0
  154. package/dist/domain/interfaces/knowledge-graph-repository.interface.d.ts +91 -0
  155. package/dist/domain/interfaces/knowledge-graph-repository.interface.d.ts.map +1 -0
  156. package/dist/domain/interfaces/knowledge-graph-repository.interface.js +9 -0
  157. package/dist/domain/interfaces/knowledge-graph-repository.interface.js.map +1 -0
  158. package/dist/domain/interfaces/knowledge-preservation-repository.interface.d.ts +50 -0
  159. package/dist/domain/interfaces/knowledge-preservation-repository.interface.d.ts.map +1 -0
  160. package/dist/domain/interfaces/knowledge-preservation-repository.interface.js +8 -0
  161. package/dist/domain/interfaces/knowledge-preservation-repository.interface.js.map +1 -0
  162. package/dist/domain/interfaces/memory-repository.interface.d.ts +49 -0
  163. package/dist/domain/interfaces/memory-repository.interface.d.ts.map +1 -0
  164. package/dist/domain/interfaces/memory-repository.interface.js +6 -0
  165. package/dist/domain/interfaces/memory-repository.interface.js.map +1 -0
  166. package/dist/domain/interfaces/pattern-repository.interface.d.ts +48 -0
  167. package/dist/domain/interfaces/pattern-repository.interface.d.ts.map +1 -0
  168. package/dist/domain/interfaces/pattern-repository.interface.js +6 -0
  169. package/dist/domain/interfaces/pattern-repository.interface.js.map +1 -0
  170. package/dist/domain/interfaces/verification-service.interface.d.ts +20 -0
  171. package/dist/domain/interfaces/verification-service.interface.d.ts.map +1 -0
  172. package/dist/domain/interfaces/verification-service.interface.js +6 -0
  173. package/dist/domain/interfaces/verification-service.interface.js.map +1 -0
  174. package/dist/domain/services/codebase-detector.d.ts +18 -0
  175. package/dist/domain/services/codebase-detector.d.ts.map +1 -0
  176. package/dist/domain/services/codebase-detector.js +91 -0
  177. package/dist/domain/services/codebase-detector.js.map +1 -0
  178. package/dist/domain/services/cross-team-pattern-sharing.d.ts +65 -0
  179. package/dist/domain/services/cross-team-pattern-sharing.d.ts.map +1 -0
  180. package/dist/domain/services/cross-team-pattern-sharing.js +125 -0
  181. package/dist/domain/services/cross-team-pattern-sharing.js.map +1 -0
  182. package/dist/domain/services/decision-recorder.d.ts +76 -0
  183. package/dist/domain/services/decision-recorder.d.ts.map +1 -0
  184. package/dist/domain/services/decision-recorder.js +223 -0
  185. package/dist/domain/services/decision-recorder.js.map +1 -0
  186. package/dist/domain/services/decision-retriever.d.ts +75 -0
  187. package/dist/domain/services/decision-retriever.d.ts.map +1 -0
  188. package/dist/domain/services/decision-retriever.js +133 -0
  189. package/dist/domain/services/decision-retriever.js.map +1 -0
  190. package/dist/domain/services/graded-memory-activation.d.ts +37 -0
  191. package/dist/domain/services/graded-memory-activation.d.ts.map +1 -0
  192. package/dist/domain/services/graded-memory-activation.js +69 -0
  193. package/dist/domain/services/graded-memory-activation.js.map +1 -0
  194. package/dist/domain/services/knowledge-access.d.ts +63 -0
  195. package/dist/domain/services/knowledge-access.d.ts.map +1 -0
  196. package/dist/domain/services/knowledge-access.js +132 -0
  197. package/dist/domain/services/knowledge-access.js.map +1 -0
  198. package/dist/domain/services/knowledge-extractor.d.ts +54 -0
  199. package/dist/domain/services/knowledge-extractor.d.ts.map +1 -0
  200. package/dist/domain/services/knowledge-extractor.js +247 -0
  201. package/dist/domain/services/knowledge-extractor.js.map +1 -0
  202. package/dist/domain/services/knowledge-graph-builder.d.ts +70 -0
  203. package/dist/domain/services/knowledge-graph-builder.d.ts.map +1 -0
  204. package/dist/domain/services/knowledge-graph-builder.js +268 -0
  205. package/dist/domain/services/knowledge-graph-builder.js.map +1 -0
  206. package/dist/domain/services/knowledge-graph-query.d.ts +69 -0
  207. package/dist/domain/services/knowledge-graph-query.d.ts.map +1 -0
  208. package/dist/domain/services/knowledge-graph-query.js +187 -0
  209. package/dist/domain/services/knowledge-graph-query.js.map +1 -0
  210. package/dist/domain/services/memory-retriever.d.ts +30 -0
  211. package/dist/domain/services/memory-retriever.d.ts.map +1 -0
  212. package/dist/domain/services/memory-retriever.js +82 -0
  213. package/dist/domain/services/memory-retriever.js.map +1 -0
  214. package/dist/domain/services/memory-synthesizer.d.ts +57 -0
  215. package/dist/domain/services/memory-synthesizer.d.ts.map +1 -0
  216. package/dist/domain/services/memory-synthesizer.js +91 -0
  217. package/dist/domain/services/memory-synthesizer.js.map +1 -0
  218. package/dist/domain/services/pattern-extractor.d.ts +108 -0
  219. package/dist/domain/services/pattern-extractor.d.ts.map +1 -0
  220. package/dist/domain/services/pattern-extractor.js +442 -0
  221. package/dist/domain/services/pattern-extractor.js.map +1 -0
  222. package/dist/domain/services/query-intent-classifier.d.ts +16 -0
  223. package/dist/domain/services/query-intent-classifier.d.ts.map +1 -0
  224. package/dist/domain/services/query-intent-classifier.js +140 -0
  225. package/dist/domain/services/query-intent-classifier.js.map +1 -0
  226. package/dist/domain/services/react-loop.d.ts +52 -0
  227. package/dist/domain/services/react-loop.d.ts.map +1 -0
  228. package/dist/domain/services/react-loop.js +186 -0
  229. package/dist/domain/services/react-loop.js.map +1 -0
  230. package/dist/edit.d.ts +0 -12
  231. package/dist/edit.d.ts.map +1 -1
  232. package/dist/edit.js +76 -351
  233. package/dist/edit.js.map +1 -1
  234. package/dist/embed.d.ts +0 -4
  235. package/dist/embed.d.ts.map +1 -1
  236. package/dist/embed.js +100 -174
  237. package/dist/embed.js.map +1 -1
  238. package/dist/error-handler.d.ts +1 -0
  239. package/dist/error-handler.d.ts.map +1 -1
  240. package/dist/error-handler.js +46 -3
  241. package/dist/error-handler.js.map +1 -1
  242. package/dist/formatter.d.ts +2 -2
  243. package/dist/formatter.d.ts.map +1 -1
  244. package/dist/formatter.js +30 -17
  245. package/dist/formatter.js.map +1 -1
  246. package/dist/index.js +355 -239
  247. package/dist/index.js.map +1 -1
  248. package/dist/infrastructure/ai/cohere-ai-service.d.ts +56 -0
  249. package/dist/infrastructure/ai/cohere-ai-service.d.ts.map +1 -0
  250. package/dist/infrastructure/ai/cohere-ai-service.js +594 -0
  251. package/dist/infrastructure/ai/cohere-ai-service.js.map +1 -0
  252. package/dist/infrastructure/ai/command-r-evaluation.d.ts +42 -0
  253. package/dist/infrastructure/ai/command-r-evaluation.d.ts.map +1 -0
  254. package/dist/infrastructure/ai/command-r-evaluation.js +206 -0
  255. package/dist/infrastructure/ai/command-r-evaluation.js.map +1 -0
  256. package/dist/infrastructure/ai/model-config.d.ts +47 -0
  257. package/dist/infrastructure/ai/model-config.d.ts.map +1 -0
  258. package/dist/infrastructure/ai/model-config.js +84 -0
  259. package/dist/infrastructure/ai/model-config.js.map +1 -0
  260. package/dist/infrastructure/cache/embedding-cache.d.ts +46 -0
  261. package/dist/infrastructure/cache/embedding-cache.d.ts.map +1 -0
  262. package/dist/infrastructure/cache/embedding-cache.js +104 -0
  263. package/dist/infrastructure/cache/embedding-cache.js.map +1 -0
  264. package/dist/infrastructure/cache/query-result-cache.d.ts +68 -0
  265. package/dist/infrastructure/cache/query-result-cache.d.ts.map +1 -0
  266. package/dist/infrastructure/cache/query-result-cache.js +138 -0
  267. package/dist/infrastructure/cache/query-result-cache.js.map +1 -0
  268. package/dist/infrastructure/cache/security-scan-cache.d.ts +57 -0
  269. package/dist/infrastructure/cache/security-scan-cache.d.ts.map +1 -0
  270. package/dist/infrastructure/cache/security-scan-cache.js +124 -0
  271. package/dist/infrastructure/cache/security-scan-cache.js.map +1 -0
  272. package/dist/infrastructure/chunking/ast-code-chunker.d.ts +12 -0
  273. package/dist/infrastructure/chunking/ast-code-chunker.d.ts.map +1 -0
  274. package/dist/infrastructure/chunking/ast-code-chunker.js +19 -0
  275. package/dist/infrastructure/chunking/ast-code-chunker.js.map +1 -0
  276. package/dist/infrastructure/chunking/code-aware-chunker.d.ts +63 -0
  277. package/dist/infrastructure/chunking/code-aware-chunker.d.ts.map +1 -0
  278. package/dist/infrastructure/chunking/code-aware-chunker.js +397 -0
  279. package/dist/infrastructure/chunking/code-aware-chunker.js.map +1 -0
  280. package/dist/infrastructure/completion/bash-completion.d.ts +8 -0
  281. package/dist/infrastructure/completion/bash-completion.d.ts.map +1 -0
  282. package/dist/infrastructure/completion/bash-completion.js +101 -0
  283. package/dist/infrastructure/completion/bash-completion.js.map +1 -0
  284. package/dist/infrastructure/completion/completion-generator.d.ts +42 -0
  285. package/dist/infrastructure/completion/completion-generator.d.ts.map +1 -0
  286. package/dist/infrastructure/completion/completion-generator.js +184 -0
  287. package/dist/infrastructure/completion/completion-generator.js.map +1 -0
  288. package/dist/infrastructure/completion/fish-completion.d.ts +8 -0
  289. package/dist/infrastructure/completion/fish-completion.d.ts.map +1 -0
  290. package/dist/infrastructure/completion/fish-completion.js +65 -0
  291. package/dist/infrastructure/completion/fish-completion.js.map +1 -0
  292. package/dist/infrastructure/completion/zsh-completion.d.ts +8 -0
  293. package/dist/infrastructure/completion/zsh-completion.d.ts.map +1 -0
  294. package/dist/infrastructure/completion/zsh-completion.js +85 -0
  295. package/dist/infrastructure/completion/zsh-completion.js.map +1 -0
  296. package/dist/infrastructure/config/config-manager.d.ts +79 -0
  297. package/dist/infrastructure/config/config-manager.d.ts.map +1 -0
  298. package/dist/infrastructure/config/config-manager.js +162 -0
  299. package/dist/infrastructure/config/config-manager.js.map +1 -0
  300. package/dist/infrastructure/context/context-compressor.d.ts +94 -0
  301. package/dist/infrastructure/context/context-compressor.d.ts.map +1 -0
  302. package/dist/infrastructure/context/context-compressor.js +329 -0
  303. package/dist/infrastructure/context/context-compressor.js.map +1 -0
  304. package/dist/infrastructure/cost/cost-tracker.d.ts +90 -0
  305. package/dist/infrastructure/cost/cost-tracker.d.ts.map +1 -0
  306. package/dist/infrastructure/cost/cost-tracker.js +353 -0
  307. package/dist/infrastructure/cost/cost-tracker.js.map +1 -0
  308. package/dist/infrastructure/file-scanner/file-scanner.d.ts +31 -0
  309. package/dist/infrastructure/file-scanner/file-scanner.d.ts.map +1 -0
  310. package/dist/infrastructure/file-scanner/file-scanner.js +106 -0
  311. package/dist/infrastructure/file-scanner/file-scanner.js.map +1 -0
  312. package/dist/infrastructure/governance/nist-ai-rmf.d.ts +107 -0
  313. package/dist/infrastructure/governance/nist-ai-rmf.d.ts.map +1 -0
  314. package/dist/infrastructure/governance/nist-ai-rmf.js +294 -0
  315. package/dist/infrastructure/governance/nist-ai-rmf.js.map +1 -0
  316. package/dist/infrastructure/governance/policy-as-code.d.ts +90 -0
  317. package/dist/infrastructure/governance/policy-as-code.d.ts.map +1 -0
  318. package/dist/infrastructure/governance/policy-as-code.js +259 -0
  319. package/dist/infrastructure/governance/policy-as-code.js.map +1 -0
  320. package/dist/infrastructure/governance/prompt-to-code-lineage.d.ts +138 -0
  321. package/dist/infrastructure/governance/prompt-to-code-lineage.d.ts.map +1 -0
  322. package/dist/infrastructure/governance/prompt-to-code-lineage.js +241 -0
  323. package/dist/infrastructure/governance/prompt-to-code-lineage.js.map +1 -0
  324. package/dist/infrastructure/index.d.ts +7 -0
  325. package/dist/infrastructure/index.d.ts.map +1 -0
  326. package/dist/infrastructure/index.js +7 -0
  327. package/dist/infrastructure/index.js.map +1 -0
  328. package/dist/infrastructure/observability/execution-tracer.d.ts +108 -0
  329. package/dist/infrastructure/observability/execution-tracer.d.ts.map +1 -0
  330. package/dist/infrastructure/observability/execution-tracer.js +227 -0
  331. package/dist/infrastructure/observability/execution-tracer.js.map +1 -0
  332. package/dist/infrastructure/observability/prompt-versioner.d.ts +67 -0
  333. package/dist/infrastructure/observability/prompt-versioner.d.ts.map +1 -0
  334. package/dist/infrastructure/observability/prompt-versioner.js +145 -0
  335. package/dist/infrastructure/observability/prompt-versioner.js.map +1 -0
  336. package/dist/infrastructure/protocols/a2a-metadata.d.ts +278 -0
  337. package/dist/infrastructure/protocols/a2a-metadata.d.ts.map +1 -0
  338. package/dist/infrastructure/protocols/a2a-metadata.js +137 -0
  339. package/dist/infrastructure/protocols/a2a-metadata.js.map +1 -0
  340. package/dist/infrastructure/protocols/a2a-protocol.d.ts +132 -0
  341. package/dist/infrastructure/protocols/a2a-protocol.d.ts.map +1 -0
  342. package/dist/infrastructure/protocols/a2a-protocol.js +314 -0
  343. package/dist/infrastructure/protocols/a2a-protocol.js.map +1 -0
  344. package/dist/infrastructure/protocols/mcp-oauth.d.ts +91 -0
  345. package/dist/infrastructure/protocols/mcp-oauth.d.ts.map +1 -0
  346. package/dist/infrastructure/protocols/mcp-oauth.js +184 -0
  347. package/dist/infrastructure/protocols/mcp-oauth.js.map +1 -0
  348. package/dist/infrastructure/protocols/mcp-server.d.ts +126 -0
  349. package/dist/infrastructure/protocols/mcp-server.d.ts.map +1 -0
  350. package/dist/infrastructure/protocols/mcp-server.js +333 -0
  351. package/dist/infrastructure/protocols/mcp-server.js.map +1 -0
  352. package/dist/infrastructure/protocols/streaming-handler.d.ts +57 -0
  353. package/dist/infrastructure/protocols/streaming-handler.d.ts.map +1 -0
  354. package/dist/infrastructure/protocols/streaming-handler.js +103 -0
  355. package/dist/infrastructure/protocols/streaming-handler.js.map +1 -0
  356. package/dist/infrastructure/security/ai-sast-scanner.d.ts +59 -0
  357. package/dist/infrastructure/security/ai-sast-scanner.d.ts.map +1 -0
  358. package/dist/infrastructure/security/ai-sast-scanner.js +241 -0
  359. package/dist/infrastructure/security/ai-sast-scanner.js.map +1 -0
  360. package/dist/infrastructure/security/docker-sandbox.d.ts +57 -0
  361. package/dist/infrastructure/security/docker-sandbox.d.ts.map +1 -0
  362. package/dist/infrastructure/security/docker-sandbox.js +178 -0
  363. package/dist/infrastructure/security/docker-sandbox.js.map +1 -0
  364. package/dist/infrastructure/security/enhanced-security-gate.d.ts +53 -0
  365. package/dist/infrastructure/security/enhanced-security-gate.d.ts.map +1 -0
  366. package/dist/infrastructure/security/enhanced-security-gate.js +151 -0
  367. package/dist/infrastructure/security/enhanced-security-gate.js.map +1 -0
  368. package/dist/infrastructure/security/input-validator.d.ts +33 -0
  369. package/dist/infrastructure/security/input-validator.d.ts.map +1 -0
  370. package/dist/infrastructure/security/input-validator.js +152 -0
  371. package/dist/infrastructure/security/input-validator.js.map +1 -0
  372. package/dist/infrastructure/security/license-scanner.d.ts +55 -0
  373. package/dist/infrastructure/security/license-scanner.d.ts.map +1 -0
  374. package/dist/infrastructure/security/license-scanner.js +167 -0
  375. package/dist/infrastructure/security/license-scanner.js.map +1 -0
  376. package/dist/infrastructure/security/provider-bias-detector.d.ts +53 -0
  377. package/dist/infrastructure/security/provider-bias-detector.d.ts.map +1 -0
  378. package/dist/infrastructure/security/provider-bias-detector.js +164 -0
  379. package/dist/infrastructure/security/provider-bias-detector.js.map +1 -0
  380. package/dist/infrastructure/security/sandbox-executor.d.ts +34 -0
  381. package/dist/infrastructure/security/sandbox-executor.d.ts.map +1 -0
  382. package/dist/infrastructure/security/sandbox-executor.js +64 -0
  383. package/dist/infrastructure/security/sandbox-executor.js.map +1 -0
  384. package/dist/infrastructure/storage/memory-stream-service.d.ts +47 -0
  385. package/dist/infrastructure/storage/memory-stream-service.d.ts.map +1 -0
  386. package/dist/infrastructure/storage/memory-stream-service.js +204 -0
  387. package/dist/infrastructure/storage/memory-stream-service.js.map +1 -0
  388. package/dist/infrastructure/storage/plan-repository.d.ts +38 -0
  389. package/dist/infrastructure/storage/plan-repository.d.ts.map +1 -0
  390. package/dist/infrastructure/storage/plan-repository.js +133 -0
  391. package/dist/infrastructure/storage/plan-repository.js.map +1 -0
  392. package/dist/infrastructure/storage/sqlite-decision-repository.d.ts +29 -0
  393. package/dist/infrastructure/storage/sqlite-decision-repository.d.ts.map +1 -0
  394. package/dist/infrastructure/storage/sqlite-decision-repository.js +232 -0
  395. package/dist/infrastructure/storage/sqlite-decision-repository.js.map +1 -0
  396. package/dist/infrastructure/storage/sqlite-embedding-repository.d.ts +35 -0
  397. package/dist/infrastructure/storage/sqlite-embedding-repository.d.ts.map +1 -0
  398. package/dist/infrastructure/storage/sqlite-embedding-repository.js +277 -0
  399. package/dist/infrastructure/storage/sqlite-embedding-repository.js.map +1 -0
  400. package/dist/infrastructure/storage/sqlite-knowledge-graph-repository.d.ts +41 -0
  401. package/dist/infrastructure/storage/sqlite-knowledge-graph-repository.d.ts.map +1 -0
  402. package/dist/infrastructure/storage/sqlite-knowledge-graph-repository.js +417 -0
  403. package/dist/infrastructure/storage/sqlite-knowledge-graph-repository.js.map +1 -0
  404. package/dist/infrastructure/storage/sqlite-knowledge-preservation-repository.d.ts +29 -0
  405. package/dist/infrastructure/storage/sqlite-knowledge-preservation-repository.d.ts.map +1 -0
  406. package/dist/infrastructure/storage/sqlite-knowledge-preservation-repository.js +230 -0
  407. package/dist/infrastructure/storage/sqlite-knowledge-preservation-repository.js.map +1 -0
  408. package/dist/infrastructure/storage/sqlite-memory-repository.d.ts +40 -0
  409. package/dist/infrastructure/storage/sqlite-memory-repository.d.ts.map +1 -0
  410. package/dist/infrastructure/storage/sqlite-memory-repository.js +229 -0
  411. package/dist/infrastructure/storage/sqlite-memory-repository.js.map +1 -0
  412. package/dist/infrastructure/storage/sqlite-pattern-repository.d.ts +25 -0
  413. package/dist/infrastructure/storage/sqlite-pattern-repository.d.ts.map +1 -0
  414. package/dist/infrastructure/storage/sqlite-pattern-repository.js +249 -0
  415. package/dist/infrastructure/storage/sqlite-pattern-repository.js.map +1 -0
  416. package/dist/infrastructure/ux/appropriate-friction.d.ts +77 -0
  417. package/dist/infrastructure/ux/appropriate-friction.d.ts.map +1 -0
  418. package/dist/infrastructure/ux/appropriate-friction.js +213 -0
  419. package/dist/infrastructure/ux/appropriate-friction.js.map +1 -0
  420. package/dist/infrastructure/ux/bi-directional-learning.d.ts +109 -0
  421. package/dist/infrastructure/ux/bi-directional-learning.d.ts.map +1 -0
  422. package/dist/infrastructure/ux/bi-directional-learning.js +200 -0
  423. package/dist/infrastructure/ux/bi-directional-learning.js.map +1 -0
  424. package/dist/infrastructure/ux/contextual-feature-discovery.d.ts +24 -0
  425. package/dist/infrastructure/ux/contextual-feature-discovery.d.ts.map +1 -0
  426. package/dist/infrastructure/ux/contextual-feature-discovery.js +144 -0
  427. package/dist/infrastructure/ux/contextual-feature-discovery.js.map +1 -0
  428. package/dist/infrastructure/ux/expectation-management.d.ts +98 -0
  429. package/dist/infrastructure/ux/expectation-management.d.ts.map +1 -0
  430. package/dist/infrastructure/ux/expectation-management.js +327 -0
  431. package/dist/infrastructure/ux/expectation-management.js.map +1 -0
  432. package/dist/infrastructure/ux/feature-discovery.d.ts +47 -0
  433. package/dist/infrastructure/ux/feature-discovery.d.ts.map +1 -0
  434. package/dist/infrastructure/ux/feature-discovery.js +190 -0
  435. package/dist/infrastructure/ux/feature-discovery.js.map +1 -0
  436. package/dist/infrastructure/ux/hitl-review-portal.d.ts +47 -0
  437. package/dist/infrastructure/ux/hitl-review-portal.d.ts.map +1 -0
  438. package/dist/infrastructure/ux/hitl-review-portal.js +225 -0
  439. package/dist/infrastructure/ux/hitl-review-portal.js.map +1 -0
  440. package/dist/infrastructure/ux/hitl-validation.d.ts +104 -0
  441. package/dist/infrastructure/ux/hitl-validation.d.ts.map +1 -0
  442. package/dist/infrastructure/ux/hitl-validation.js +211 -0
  443. package/dist/infrastructure/ux/hitl-validation.js.map +1 -0
  444. package/dist/infrastructure/ux/progress-indicator.d.ts +54 -0
  445. package/dist/infrastructure/ux/progress-indicator.d.ts.map +1 -0
  446. package/dist/infrastructure/ux/progress-indicator.js +121 -0
  447. package/dist/infrastructure/ux/progress-indicator.js.map +1 -0
  448. package/dist/infrastructure/ux/progressive-disclosure.d.ts +84 -0
  449. package/dist/infrastructure/ux/progressive-disclosure.d.ts.map +1 -0
  450. package/dist/infrastructure/ux/progressive-disclosure.js +236 -0
  451. package/dist/infrastructure/ux/progressive-disclosure.js.map +1 -0
  452. package/dist/infrastructure/ux/review-checkpoint.d.ts +35 -0
  453. package/dist/infrastructure/ux/review-checkpoint.d.ts.map +1 -0
  454. package/dist/infrastructure/ux/review-checkpoint.js +119 -0
  455. package/dist/infrastructure/ux/review-checkpoint.js.map +1 -0
  456. package/dist/infrastructure/ux/staged-feature-intro.d.ts +47 -0
  457. package/dist/infrastructure/ux/staged-feature-intro.d.ts.map +1 -0
  458. package/dist/infrastructure/ux/staged-feature-intro.js +144 -0
  459. package/dist/infrastructure/ux/staged-feature-intro.js.map +1 -0
  460. package/dist/infrastructure/ux/syntax-highlighter.d.ts +21 -0
  461. package/dist/infrastructure/ux/syntax-highlighter.d.ts.map +1 -0
  462. package/dist/infrastructure/ux/syntax-highlighter.js +172 -0
  463. package/dist/infrastructure/ux/syntax-highlighter.js.map +1 -0
  464. package/dist/infrastructure/ux/team-standards.d.ts +94 -0
  465. package/dist/infrastructure/ux/team-standards.d.ts.map +1 -0
  466. package/dist/infrastructure/ux/team-standards.js +196 -0
  467. package/dist/infrastructure/ux/team-standards.js.map +1 -0
  468. package/dist/infrastructure/verification/verification-service.d.ts +12 -0
  469. package/dist/infrastructure/verification/verification-service.d.ts.map +1 -0
  470. package/dist/infrastructure/verification/verification-service.js +47 -0
  471. package/dist/infrastructure/verification/verification-service.js.map +1 -0
  472. package/dist/infrastructure/xai/attention-visualizer.d.ts +73 -0
  473. package/dist/infrastructure/xai/attention-visualizer.d.ts.map +1 -0
  474. package/dist/infrastructure/xai/attention-visualizer.js +174 -0
  475. package/dist/infrastructure/xai/attention-visualizer.js.map +1 -0
  476. package/dist/infrastructure/xai/cot-visualizer.d.ts +106 -0
  477. package/dist/infrastructure/xai/cot-visualizer.d.ts.map +1 -0
  478. package/dist/infrastructure/xai/cot-visualizer.js +286 -0
  479. package/dist/infrastructure/xai/cot-visualizer.js.map +1 -0
  480. package/dist/infrastructure/xai/decision-tree-log.d.ts +104 -0
  481. package/dist/infrastructure/xai/decision-tree-log.d.ts.map +1 -0
  482. package/dist/infrastructure/xai/decision-tree-log.js +216 -0
  483. package/dist/infrastructure/xai/decision-tree-log.js.map +1 -0
  484. package/dist/infrastructure/xai/interactive-xai.d.ts +106 -0
  485. package/dist/infrastructure/xai/interactive-xai.d.ts.map +1 -0
  486. package/dist/infrastructure/xai/interactive-xai.js +262 -0
  487. package/dist/infrastructure/xai/interactive-xai.js.map +1 -0
  488. package/dist/infrastructure/xai/uncertainty-quantifier.d.ts +80 -0
  489. package/dist/infrastructure/xai/uncertainty-quantifier.d.ts.map +1 -0
  490. package/dist/infrastructure/xai/uncertainty-quantifier.js +201 -0
  491. package/dist/infrastructure/xai/uncertainty-quantifier.js.map +1 -0
  492. package/dist/intelligent-retrieval.d.ts.map +1 -1
  493. package/dist/intelligent-retrieval.js +8 -1
  494. package/dist/intelligent-retrieval.js.map +1 -1
  495. package/dist/intent/classifier.d.ts +6 -0
  496. package/dist/intent/classifier.d.ts.map +1 -0
  497. package/dist/intent/classifier.js +2 -0
  498. package/dist/intent/classifier.js.map +1 -0
  499. package/dist/intent/context.d.ts +4 -0
  500. package/dist/intent/context.d.ts.map +1 -0
  501. package/dist/intent/context.js +2 -0
  502. package/dist/intent/context.js.map +1 -0
  503. package/dist/iterative-refinement.d.ts.map +1 -1
  504. package/dist/iterative-refinement.js +20 -3
  505. package/dist/iterative-refinement.js.map +1 -1
  506. package/dist/learning.d.ts.map +1 -1
  507. package/dist/learning.js +1 -2
  508. package/dist/learning.js.map +1 -1
  509. package/dist/monitoring.d.ts.map +1 -1
  510. package/dist/monitoring.js +1 -2
  511. package/dist/monitoring.js.map +1 -1
  512. package/dist/parallel-processor.d.ts +3 -2
  513. package/dist/parallel-processor.d.ts.map +1 -1
  514. package/dist/parallel-processor.js +183 -56
  515. package/dist/parallel-processor.js.map +1 -1
  516. package/dist/presentation/cli/commands/ask-command.d.ts +8 -0
  517. package/dist/presentation/cli/commands/ask-command.d.ts.map +1 -0
  518. package/dist/presentation/cli/commands/ask-command.js +190 -0
  519. package/dist/presentation/cli/commands/ask-command.js.map +1 -0
  520. package/dist/presentation/cli/commands/config-command.d.ts +9 -0
  521. package/dist/presentation/cli/commands/config-command.d.ts.map +1 -0
  522. package/dist/presentation/cli/commands/config-command.js +123 -0
  523. package/dist/presentation/cli/commands/config-command.js.map +1 -0
  524. package/dist/presentation/cli/commands/cost-command.d.ts +8 -0
  525. package/dist/presentation/cli/commands/cost-command.d.ts.map +1 -0
  526. package/dist/presentation/cli/commands/cost-command.js +191 -0
  527. package/dist/presentation/cli/commands/cost-command.js.map +1 -0
  528. package/dist/presentation/cli/commands/decision-command.d.ts +12 -0
  529. package/dist/presentation/cli/commands/decision-command.d.ts.map +1 -0
  530. package/dist/presentation/cli/commands/decision-command.js +207 -0
  531. package/dist/presentation/cli/commands/decision-command.js.map +1 -0
  532. package/dist/presentation/cli/commands/help-command.d.ts +9 -0
  533. package/dist/presentation/cli/commands/help-command.d.ts.map +1 -0
  534. package/dist/presentation/cli/commands/help-command.js +281 -0
  535. package/dist/presentation/cli/commands/help-command.js.map +1 -0
  536. package/dist/presentation/cli/commands/knowledge-command.d.ts +13 -0
  537. package/dist/presentation/cli/commands/knowledge-command.d.ts.map +1 -0
  538. package/dist/presentation/cli/commands/knowledge-command.js +129 -0
  539. package/dist/presentation/cli/commands/knowledge-command.js.map +1 -0
  540. package/dist/presentation/cli/commands/learning-dashboard-command.d.ts +8 -0
  541. package/dist/presentation/cli/commands/learning-dashboard-command.d.ts.map +1 -0
  542. package/dist/presentation/cli/commands/learning-dashboard-command.js +183 -0
  543. package/dist/presentation/cli/commands/learning-dashboard-command.js.map +1 -0
  544. package/dist/presentation/cli/commands/orchestrate-command.d.ts +9 -0
  545. package/dist/presentation/cli/commands/orchestrate-command.d.ts.map +1 -0
  546. package/dist/presentation/cli/commands/orchestrate-command.js +146 -0
  547. package/dist/presentation/cli/commands/orchestrate-command.js.map +1 -0
  548. package/dist/presentation/cli/commands/plan-command.d.ts +8 -0
  549. package/dist/presentation/cli/commands/plan-command.d.ts.map +1 -0
  550. package/dist/presentation/cli/commands/plan-command.js +166 -0
  551. package/dist/presentation/cli/commands/plan-command.js.map +1 -0
  552. package/dist/presentation/cli/commands/react-command.d.ts +8 -0
  553. package/dist/presentation/cli/commands/react-command.d.ts.map +1 -0
  554. package/dist/presentation/cli/commands/react-command.js +179 -0
  555. package/dist/presentation/cli/commands/react-command.js.map +1 -0
  556. package/dist/presentation/cli/commands/setup-command.d.ts +10 -0
  557. package/dist/presentation/cli/commands/setup-command.d.ts.map +1 -0
  558. package/dist/presentation/cli/commands/setup-command.js +286 -0
  559. package/dist/presentation/cli/commands/setup-command.js.map +1 -0
  560. package/dist/presentation/cli/commands/smart-command.d.ts +6 -0
  561. package/dist/presentation/cli/commands/smart-command.d.ts.map +1 -0
  562. package/dist/presentation/cli/commands/smart-command.js +330 -0
  563. package/dist/presentation/cli/commands/smart-command.js.map +1 -0
  564. package/dist/presentation/cli/commands/trace-command.d.ts +8 -0
  565. package/dist/presentation/cli/commands/trace-command.d.ts.map +1 -0
  566. package/dist/presentation/cli/commands/trace-command.js +129 -0
  567. package/dist/presentation/cli/commands/trace-command.js.map +1 -0
  568. package/dist/presentation/cli/commands/undo-command.d.ts +8 -0
  569. package/dist/presentation/cli/commands/undo-command.d.ts.map +1 -0
  570. package/dist/presentation/cli/commands/undo-command.js +150 -0
  571. package/dist/presentation/cli/commands/undo-command.js.map +1 -0
  572. package/dist/presentation/cli/error-display.d.ts +25 -0
  573. package/dist/presentation/cli/error-display.d.ts.map +1 -0
  574. package/dist/presentation/cli/error-display.js +297 -0
  575. package/dist/presentation/cli/error-display.js.map +1 -0
  576. package/dist/presentation/cli/keyboard-shortcuts.d.ts +27 -0
  577. package/dist/presentation/cli/keyboard-shortcuts.d.ts.map +1 -0
  578. package/dist/presentation/cli/keyboard-shortcuts.js +77 -0
  579. package/dist/presentation/cli/keyboard-shortcuts.js.map +1 -0
  580. package/dist/refactor.d.ts.map +1 -1
  581. package/dist/refactor.js +2 -4
  582. package/dist/refactor.js.map +1 -1
  583. package/dist/search.d.ts.map +1 -1
  584. package/dist/search.js +2 -63
  585. package/dist/search.js.map +1 -1
  586. package/dist/session.d.ts.map +1 -1
  587. package/dist/session.js +72 -3
  588. package/dist/session.js.map +1 -1
  589. package/dist/testgen.d.ts.map +1 -1
  590. package/dist/testgen.js +1 -2
  591. package/dist/testgen.js.map +1 -1
  592. package/dist/tools/bash.d.ts +53 -0
  593. package/dist/tools/bash.d.ts.map +1 -0
  594. package/dist/tools/bash.js +213 -0
  595. package/dist/tools/bash.js.map +1 -0
  596. package/dist/tools/edit.d.ts +48 -0
  597. package/dist/tools/edit.d.ts.map +1 -0
  598. package/dist/tools/edit.js +235 -0
  599. package/dist/tools/edit.js.map +1 -0
  600. package/dist/tools/executor.d.ts +29 -0
  601. package/dist/tools/executor.d.ts.map +1 -0
  602. package/dist/tools/executor.js +153 -0
  603. package/dist/tools/executor.js.map +1 -0
  604. package/dist/tools/git-tool.d.ts +87 -0
  605. package/dist/tools/git-tool.d.ts.map +1 -0
  606. package/dist/tools/git-tool.js +292 -0
  607. package/dist/tools/git-tool.js.map +1 -0
  608. package/dist/tools/parser.d.ts +33 -0
  609. package/dist/tools/parser.d.ts.map +1 -0
  610. package/dist/tools/parser.js +158 -0
  611. package/dist/tools/parser.js.map +1 -0
  612. package/dist/tools/registry.d.ts +74 -0
  613. package/dist/tools/registry.d.ts.map +1 -0
  614. package/dist/tools/registry.js +302 -0
  615. package/dist/tools/registry.js.map +1 -0
  616. package/dist/tools/search.d.ts +41 -0
  617. package/dist/tools/search.d.ts.map +1 -0
  618. package/dist/tools/search.js +100 -0
  619. package/dist/tools/search.js.map +1 -0
  620. package/dist/ui.d.ts.map +1 -1
  621. package/dist/ui.js +4 -2
  622. package/dist/ui.js.map +1 -1
  623. package/dist/utils/check-api-status.d.ts +12 -0
  624. package/dist/utils/check-api-status.d.ts.map +1 -0
  625. package/dist/utils/check-api-status.js +82 -0
  626. package/dist/utils/check-api-status.js.map +1 -0
  627. package/dist/utils/diff-parser.d.ts +22 -0
  628. package/dist/utils/diff-parser.d.ts.map +1 -0
  629. package/dist/utils/diff-parser.js +160 -0
  630. package/dist/utils/diff-parser.js.map +1 -0
  631. package/dist/utils/logger.d.ts +34 -0
  632. package/dist/utils/logger.d.ts.map +1 -0
  633. package/dist/utils/logger.js +56 -0
  634. package/dist/utils/logger.js.map +1 -0
  635. package/dist/utils/version.d.ts +21 -0
  636. package/dist/utils/version.d.ts.map +1 -0
  637. package/dist/utils/version.js +52 -0
  638. package/dist/utils/version.js.map +1 -0
  639. package/dist/verification/backup.d.ts +30 -0
  640. package/dist/verification/backup.d.ts.map +1 -0
  641. package/dist/verification/backup.js +259 -0
  642. package/dist/verification/backup.js.map +1 -0
  643. package/dist/verification/compiler.d.ts +20 -0
  644. package/dist/verification/compiler.d.ts.map +1 -0
  645. package/dist/verification/compiler.js +263 -0
  646. package/dist/verification/compiler.js.map +1 -0
  647. package/dist/verification/index.d.ts +59 -0
  648. package/dist/verification/index.d.ts.map +1 -0
  649. package/dist/verification/index.js +273 -0
  650. package/dist/verification/index.js.map +1 -0
  651. package/dist/verification/test-runner.d.ts +27 -0
  652. package/dist/verification/test-runner.d.ts.map +1 -0
  653. package/dist/verification/test-runner.js +379 -0
  654. package/dist/verification/test-runner.js.map +1 -0
  655. package/package.json +39 -14
  656. package/ARCHITECTURE.md +0 -240
  657. package/CHANGELOG.md +0 -44
  658. package/CONTRIBUTING.md +0 -171
  659. package/dist/benchmark.d.ts +0 -39
  660. package/dist/benchmark.d.ts.map +0 -1
  661. package/dist/benchmark.js +0 -195
  662. package/dist/benchmark.js.map +0 -1
  663. package/dist/scaffold.d.ts +0 -14
  664. package/dist/scaffold.d.ts.map +0 -1
  665. package/dist/scaffold.js +0 -85
  666. package/dist/scaffold.js.map +0 -1
  667. package/templates/next-page/app/layout.tsx +0 -19
  668. package/templates/next-page/app/page.tsx +0 -10
  669. package/templates/next-page/package.json +0 -22
  670. package/templates/node-api/index.js +0 -57
  671. package/templates/node-api/package.json +0 -13
package/dist/index.js CHANGED
@@ -4,15 +4,24 @@ import { config } from 'dotenv';
4
4
  import { join, dirname } from 'path';
5
5
  import { fileURLToPath } from 'url';
6
6
  import { indexRepositoryParallel } from './embed.js';
7
- import { searchIntelligent } from './search.js';
8
- import { chatWithContext } from './chat.js';
9
- import { generateAndApplyEdit, generateEditDryRun } from './edit.js';
10
- import { scaffoldTemplate, listTemplates } from './scaffold.js';
7
+ import { generateAndApplyEdit } from './edit.js';
8
+ import { executeAskCommand } from './presentation/cli/commands/ask-command.js';
9
+ import { executeReactCommand } from './presentation/cli/commands/react-command.js';
10
+ import { executeSmartCommand } from './presentation/cli/commands/smart-command.js';
11
+ import { executeSetupCommand } from './presentation/cli/commands/setup-command.js';
12
+ import { executeConfigCommand } from './presentation/cli/commands/config-command.js';
13
+ import { executeHelpCommand } from './presentation/cli/commands/help-command.js';
11
14
  import { initLogFile, logEntry } from './log.js';
12
15
  import { performHealthCheck, formatHealthStatus, getMetrics } from './monitoring.js';
13
16
  import { refactorMultiFile, findFilesByPattern } from './refactor.js';
14
- import { getGitStatus, formatGitStatus, getAllGitDiffs, analyzeDiff } from './git.js';
15
- import { planTask, executePlan, formatPlan } from './planner.js';
17
+ import { getGitStatus, formatGitStatus, getAllGitDiffs, analyzeDiff, getGitDiff } from './git.js';
18
+ import { executePlanCommand } from './presentation/cli/commands/plan-command.js';
19
+ import { executeOrchestrateCommand } from './presentation/cli/commands/orchestrate-command.js';
20
+ import { executeDecisionCommand } from './presentation/cli/commands/decision-command.js';
21
+ import { executeKnowledgeCommand } from './presentation/cli/commands/knowledge-command.js';
22
+ import { executeLearningDashboardCommand } from './presentation/cli/commands/learning-dashboard-command.js';
23
+ import { executeTraceCommand } from './presentation/cli/commands/trace-command.js';
24
+ import { executeUndoCommand } from './presentation/cli/commands/undo-command.js';
16
25
  import { reviewFile, formatReview } from './review.js';
17
26
  import { formatLearningInsights, getPerformanceInsights } from './learning.js';
18
27
  import { getCacheStats, clearAllCaches } from './cache.js';
@@ -21,8 +30,8 @@ import { generateFileDocs, generateREADME, updateDocs, saveDocs } from './docs.j
21
30
  import { generateTests, getTestFilePath, saveTests, improveTests } from './testgen.js';
22
31
  import { startSession } from './session.js';
23
32
  import { cleanResponse } from './formatter.js';
24
- import { readFileSync } from 'fs';
25
- import { colors, createSpinner, createBanner, createTable, success, error, warning, info, formatPath, formatNumber, formatScore, formatPercent, sectionHeader, newline, statusIndicator, createWelcomeMessage, } from './ui.js';
33
+ import { displayError } from './presentation/cli/error-display.js';
34
+ import { colors, createSpinner, createBanner, createTable, success, error, warning, info, formatPath, formatNumber, sectionHeader, newline, statusIndicator, createWelcomeMessage, } from './ui.js';
26
35
  // Load environment variables - try agent directory first, then current directory
27
36
  try {
28
37
  const __filename = fileURLToPath(import.meta.url);
@@ -34,11 +43,13 @@ catch {
34
43
  // Fallback to current directory
35
44
  }
36
45
  config(); // Also try current directory
46
+ // Import centralized version utility
47
+ import { getVersion } from './utils/version.js';
37
48
  const program = new Command();
38
49
  program
39
50
  .name('codehere')
40
51
  .description('AI-powered coding assistant with local embeddings and semantic search')
41
- .version('0.1.0')
52
+ .version(getVersion())
42
53
  .configureHelp({
43
54
  helpWidth: 80,
44
55
  sortSubcommands: true,
@@ -46,11 +57,40 @@ program
46
57
  .addHelpText('beforeAll', () => {
47
58
  return createWelcomeMessage();
48
59
  });
49
- // Start interactive session when no command provided
60
+ // Smart routing: if query provided as argument, route intelligently
50
61
  program
51
- .action(async () => {
52
- // Check if we should start interactive session
53
- if (process.stdin.isTTY) {
62
+ .argument('[query]', 'Your query - Codehere will understand what you need')
63
+ .action(async (query) => {
64
+ if (query && query.trim()) {
65
+ // Direct query - use intelligent router
66
+ initLogFile();
67
+ if (!process.env.COHERE_API_KEY) {
68
+ newline();
69
+ console.error(error('COHERE_API_KEY not found in environment'));
70
+ newline();
71
+ console.log(colors.bold('Setup Instructions:'));
72
+ console.log(' 1. Get your API key from: https://dashboard.cohere.com/api-keys');
73
+ console.log(' 2. Create a .env file in your project root:');
74
+ console.log(colors.cyan(' echo "COHERE_API_KEY=your_key_here" > .env'));
75
+ console.log(' 3. Run the command again');
76
+ newline();
77
+ process.exit(1);
78
+ }
79
+ try {
80
+ await executeSmartCommand(query.trim());
81
+ logEntry({
82
+ timestamp: new Date().toISOString(),
83
+ command: 'smart',
84
+ query: query.trim(),
85
+ policyStatus: 'allowed',
86
+ });
87
+ }
88
+ catch (err) {
89
+ console.error(error('Error:'), err instanceof Error ? err.message : String(err));
90
+ process.exit(1);
91
+ }
92
+ }
93
+ else if (process.stdin.isTTY) {
54
94
  // Interactive mode - start session
55
95
  await startSession();
56
96
  }
@@ -58,18 +98,44 @@ program
58
98
  // Non-interactive - show help
59
99
  console.log(createWelcomeMessage());
60
100
  newline();
61
- console.log(colors.bold('Available Commands:'));
101
+ console.log(colors.bold('Usage:'));
62
102
  newline();
103
+ console.log(colors.cyan(' codehere "<your query>"') + ' Ask anything - Codehere understands');
63
104
  console.log(colors.cyan(' codehere') + ' Start interactive session');
64
105
  console.log(colors.cyan(' codehere index') + ' Build embeddings index');
65
- console.log(colors.cyan(' codehere ask "<question>"') + ' Ask questions');
66
- console.log(colors.cyan(' codehere explain <file>') + ' Explain a file');
67
- console.log(colors.cyan(' codehere fix <file> "<instruction>"') + ' Edit files');
106
+ newline();
107
+ console.log(colors.dim('Examples:'));
108
+ console.log(colors.dim(' codehere "How does authentication work?"'));
109
+ console.log(colors.dim(' codehere "Explain src/auth.ts"'));
110
+ console.log(colors.dim(' codehere "Fix src/utils.ts add error handling"'));
68
111
  newline();
69
112
  console.log(colors.dim('Run "codehere --help" for all commands'));
70
113
  newline();
71
114
  }
72
115
  });
116
+ program
117
+ .command('setup')
118
+ .description('Interactive setup wizard for first-time users')
119
+ .option('-f, --force', 'Force reconfiguration even if already set up')
120
+ .action(async (options) => {
121
+ await executeSetupCommand(options.force || false);
122
+ });
123
+ program
124
+ .command('config')
125
+ .description('Manage configuration and preferences')
126
+ .argument('[action]', 'Action: show, get, set, reset')
127
+ .argument('[key]', 'Preference key (for get/set)')
128
+ .argument('[value]', 'Preference value (for set)')
129
+ .action(async (action, key, value) => {
130
+ await executeConfigCommand(action, key, value);
131
+ });
132
+ program
133
+ .command('help')
134
+ .description('Show help for commands')
135
+ .argument('[command]', 'Command name to get help for')
136
+ .action(async (commandName) => {
137
+ await executeHelpCommand(commandName);
138
+ });
73
139
  program
74
140
  .command('index')
75
141
  .description('Build embeddings index of the repository')
@@ -149,49 +215,20 @@ Make sure to run "codehere index" first!
149
215
  console.log(colors.bold('Query:'));
150
216
  console.log(colors.cyan(' ' + question));
151
217
  newline();
152
- // NEW: Intelligent search with AST-based understanding
153
- const searchSpinner = createSpinner('Searching with intelligent context (AST + code structure)...');
218
+ // Use clean architecture
219
+ const searchSpinner = createSpinner('Searching codebase...');
154
220
  searchSpinner.start();
155
- const searchResult = await searchIntelligent(question, {
156
- baseDir: process.cwd(),
157
- });
158
- searchSpinner.stop();
159
- if (searchResult.chunks.length === 0) {
160
- newline();
161
- console.log(warning('No relevant code found.'));
162
- console.log(info('Make sure to run "codehere index" first to build the search index.'));
163
- newline();
164
- return;
221
+ try {
222
+ await executeAskCommand(question);
223
+ }
224
+ finally {
225
+ searchSpinner.stop();
165
226
  }
166
- // Display search results
167
- sectionHeader('Search Results (Intelligent)');
168
- const fileTable = createTable(['File', 'Relevance', 'Preview'], searchResult.chunks.slice(0, 10).map(r => [
169
- formatPath(r.filepath),
170
- formatScore(r.score),
171
- colors.dim(r.content.substring(0, 50) + '...'),
172
- ]));
173
- console.log(fileTable.toString());
174
- const retrievedFiles = [...new Set(searchResult.chunks.map(r => r.filepath))];
175
- console.log(colors.dim(`\nFound ${formatNumber(searchResult.chunks.length)} optimized chunks from ${formatNumber(retrievedFiles.length)} file(s)`));
176
- console.log(colors.dim(`Token reduction: ${formatPercent(searchResult.reductionPercent)} (${formatNumber(searchResult.tokenEstimate)} tokens)`));
177
- newline();
178
- // Generate response with spinner
179
- const responseSpinner = createSpinner('Generating response with optimized context...');
180
- responseSpinner.start();
181
- const response = await chatWithContext(question, searchResult.chunks);
182
- responseSpinner.stop();
183
- newline();
184
- // Display response - clean format
185
- sectionHeader('Response');
186
- const formattedResponse = cleanResponse(response);
187
- console.log(formattedResponse);
188
- newline();
189
227
  logEntry({
190
228
  timestamp: new Date().toISOString(),
191
229
  command: 'ask',
192
230
  query: question,
193
231
  policyStatus: 'allowed',
194
- retrievedFiles,
195
232
  });
196
233
  }
197
234
  catch (err) {
@@ -204,7 +241,6 @@ program
204
241
  .description('Apply AI-generated code edits to a file')
205
242
  .argument('<file>', 'Path to the file to edit')
206
243
  .argument('<instruction>', 'Natural language instruction for the edit')
207
- .option('--dry-run', 'Show changes without applying them')
208
244
  .alias('edit')
209
245
  .addHelpText('after', `
210
246
  Examples:
@@ -223,7 +259,7 @@ Safety policies:
223
259
  • Cannot edit files in restricted folders (infra/, billing/)
224
260
  • Only one file can be edited at a time
225
261
  `)
226
- .action(async (file, instruction, options) => {
262
+ .action(async (file, instruction) => {
227
263
  initLogFile();
228
264
  if (!process.env.COHERE_API_KEY) {
229
265
  newline();
@@ -252,17 +288,18 @@ Safety policies:
252
288
  const fullPath = join(process.cwd(), file);
253
289
  if (!existsSync(fullPath)) {
254
290
  diffSpinner.stop();
255
- newline();
256
- console.error(error(`File not found: ${file}`));
291
+ displayError(new Error(`File not found: ${file}`), {
292
+ operation: 'edit',
293
+ query: instruction,
294
+ filepath: file,
295
+ showSuggestions: true,
296
+ });
257
297
  console.log(info(`Looking for: ${fullPath}`));
258
298
  console.log(info('Tip: Use a relative path from your current directory'));
259
299
  newline();
260
300
  process.exit(1);
261
301
  }
262
- const isDryRun = options.dryRun || false;
263
- const result = isDryRun
264
- ? await generateEditDryRun(file, instruction)
265
- : await generateAndApplyEdit(file, instruction);
302
+ const result = await generateAndApplyEdit(file, instruction);
266
303
  diffSpinner.stop();
267
304
  if (result.success) {
268
305
  newline();
@@ -289,32 +326,7 @@ Safety policies:
289
326
  console.log(statsTable.toString());
290
327
  newline();
291
328
  }
292
- // Show diff in dry-run mode
293
- if (isDryRun && 'diffText' in result && result.diffText) {
294
- sectionHeader('Generated Diff (Dry Run)');
295
- console.log(colors.dim('---'));
296
- console.log(result.diffText);
297
- console.log(colors.dim('---'));
298
- newline();
299
- if ('syntaxValid' in result) {
300
- if (result.syntaxValid === false) {
301
- console.log(warning('⚠️ Syntax validation failed'));
302
- console.log(colors.yellow(' ' + (result.error || 'Unknown syntax error')));
303
- newline();
304
- }
305
- else if (result.syntaxValid === true) {
306
- console.log(success('✓ Syntax validation passed'));
307
- newline();
308
- }
309
- }
310
- }
311
- if (isDryRun) {
312
- console.log(info('Dry-run mode: No changes were applied to the file.'));
313
- console.log(info('Remove --dry-run to apply changes.'));
314
- }
315
- else {
316
- console.log(success('Edit applied successfully'));
317
- }
329
+ console.log(success('Edit applied successfully'));
318
330
  logEntry({
319
331
  timestamp: new Date().toISOString(),
320
332
  command: 'fix',
@@ -325,18 +337,13 @@ Safety policies:
325
337
  });
326
338
  }
327
339
  else {
328
- newline();
329
- // Show policy rejection reason
330
- newline();
331
- sectionHeader('Error');
332
- if (result.policyResult && !result.policyResult.allowed) {
333
- console.log(error('Policy check failed'));
334
- console.log(colors.yellow(' ' + (result.policyResult.reason || 'Unknown reason')));
335
- }
336
- else {
337
- console.log(error('Edit failed'));
338
- console.log(colors.red(' ' + (result.error || 'Unknown error')));
339
- }
340
+ // Use centralized error display
341
+ const errorMessage = result.policyResult && !result.policyResult.allowed
342
+ ? result.policyResult.reason || 'Policy check failed'
343
+ : result.error || 'Edit failed';
344
+ const policyError = result.policyResult && !result.policyResult.allowed
345
+ ? new Error(`Policy check failed: ${result.policyResult.reason || 'Unknown reason'}`)
346
+ : new Error(`Edit failed: ${result.error || 'Unknown error'}`);
340
347
  logEntry({
341
348
  timestamp: new Date().toISOString(),
342
349
  command: 'fix',
@@ -346,59 +353,22 @@ Safety policies:
346
353
  policyStatus: 'rejected',
347
354
  policyReason: result.error,
348
355
  });
356
+ displayError(policyError, {
357
+ operation: 'edit',
358
+ query: instruction,
359
+ filepath: file,
360
+ showSuggestions: true,
361
+ });
349
362
  process.exit(1);
350
363
  }
351
364
  }
352
365
  catch (err) {
353
- console.error(error('Error:'), err instanceof Error ? err.message : String(err));
354
- process.exit(1);
355
- }
356
- });
357
- program
358
- .command('debug-search')
359
- .description('Debug search: show top results with scores and previews')
360
- .argument('<query>', 'Search query')
361
- .option('-n, --top <number>', 'Number of results to show', '10')
362
- .action(async (query, options) => {
363
- initLogFile();
364
- if (!process.env.COHERE_API_KEY) {
365
- newline();
366
- console.error(error('COHERE_API_KEY not found in environment'));
367
- process.exit(1);
368
- }
369
- try {
370
- console.log(createBanner('Debug Search', 'Show search results with scores'));
371
- newline();
372
- console.log(colors.bold('Query:'));
373
- console.log(colors.cyan(' ' + query));
374
- newline();
375
- const searchSpinner = createSpinner('Searching...');
376
- searchSpinner.start();
377
- const searchResult = await searchIntelligent(query, {
378
- baseDir: process.cwd(),
366
+ displayError(err, {
367
+ operation: 'edit',
368
+ query: instruction,
369
+ filepath: file,
370
+ showSuggestions: true,
379
371
  });
380
- searchSpinner.stop();
381
- if (searchResult.chunks.length === 0) {
382
- newline();
383
- console.log(warning('No results found.'));
384
- return;
385
- }
386
- const topN = parseInt(options.top || '10', 10);
387
- const topResults = searchResult.chunks.slice(0, topN);
388
- sectionHeader('Search Results');
389
- const fileTable = createTable(['Rank', 'File', 'Score', 'Preview'], topResults.map((r, idx) => [
390
- String(idx + 1),
391
- formatPath(r.filepath),
392
- formatScore(r.score),
393
- colors.dim(r.content.substring(0, 60) + '...'),
394
- ]));
395
- console.log(fileTable.toString());
396
- newline();
397
- console.log(colors.dim(`Showing ${topResults.length} of ${searchResult.chunks.length} results`));
398
- console.log(colors.dim(`Token reduction: ${formatPercent(searchResult.reductionPercent)}`));
399
- }
400
- catch (err) {
401
- console.error(error('Search error:'), err instanceof Error ? err.message : String(err));
402
372
  process.exit(1);
403
373
  }
404
374
  });
@@ -446,34 +416,28 @@ This command will:
446
416
  newline();
447
417
  process.exit(1);
448
418
  }
449
- const content = readFileSync(fullPath, 'utf-8');
450
- // File info
451
- const lines = content.split('\n').length;
452
- const size = (content.length / 1024).toFixed(2);
453
- console.log(colors.bold('File:') + ' ' + formatPath(file));
454
- console.log(colors.dim(` Lines: ${lines} | Size: ${size} KB`));
455
- newline();
456
- const context = [{
457
- filepath: file,
458
- content: content,
459
- score: 1.0,
460
- }];
461
- const question = `Explain this file: ${file}`;
462
- // Generate explanation with spinner
419
+ // Use clean architecture
420
+ const { container } = await import('./application/services/dependency-container.js');
421
+ const useCase = container.explainFileUseCase;
463
422
  const explainSpinner = createSpinner('Generating explanation...');
464
423
  explainSpinner.start();
465
- const response = await chatWithContext(question, context);
424
+ const result = await useCase.execute({ filepath: file });
466
425
  explainSpinner.stop();
426
+ // File info
427
+ const lines = result.fileContent.split('\n').length;
428
+ const size = (result.fileContent.length / 1024).toFixed(2);
429
+ console.log(colors.bold('File:') + ' ' + formatPath(file));
430
+ console.log(colors.dim(` Lines: ${lines} | Size: ${size} KB`));
467
431
  newline();
468
- // Display explanation - clean format
432
+ // Display explanation
469
433
  sectionHeader('Explanation');
470
- const formattedResponse = cleanResponse(response);
434
+ const formattedResponse = cleanResponse(result.explanation);
471
435
  console.log(formattedResponse);
472
436
  newline();
473
437
  logEntry({
474
438
  timestamp: new Date().toISOString(),
475
439
  command: 'explain',
476
- query: question,
440
+ query: `Explain ${file}`,
477
441
  filepath: file,
478
442
  policyStatus: 'allowed',
479
443
  retrievedFiles: [file],
@@ -613,7 +577,6 @@ program
613
577
  return;
614
578
  }
615
579
  // Get diffs
616
- const { getGitDiff } = require('./git.js');
617
580
  const diffs = options.file
618
581
  ? (() => {
619
582
  const diff = getGitDiff(options.file);
@@ -660,32 +623,69 @@ program
660
623
  newline();
661
624
  console.log(colors.bold('Instruction:') + ' ' + colors.cyan(instruction));
662
625
  newline();
663
- const plan = await planTask(instruction);
664
- sectionHeader('Execution Plan');
665
- console.log(formatPlan(plan));
666
- if (options.execute) {
667
- newline();
668
- const searchSpinner = createSpinner('Executing plan...');
669
- searchSpinner.start();
670
- const result = await executePlan(plan, { instruction });
671
- searchSpinner.stop();
672
- newline();
673
- sectionHeader('Execution Results');
674
- const resultsTable = createTable(['Metric', 'Value'], [
675
- ['Tasks Completed', formatNumber(result.completedTasks)],
676
- ['Total Tasks', formatNumber(plan.tasks.length)],
677
- ['Success', result.success ? statusIndicator('success') + ' Yes' : statusIndicator('error') + ' No'],
678
- ['Errors', formatNumber(result.errors.length)],
679
- ]);
680
- console.log(resultsTable.toString());
681
- if (result.errors.length > 0) {
682
- newline();
683
- sectionHeader('Errors');
684
- result.errors.forEach(err => {
685
- console.log(error(`${err.task}: ${err.error}`));
686
- });
687
- }
688
- }
626
+ // Use new memory-based planning
627
+ await executePlanCommand(instruction, { execute: options.execute });
628
+ }
629
+ catch (err) {
630
+ console.error(error('Error:'), err instanceof Error ? err.message : String(err));
631
+ process.exit(1);
632
+ }
633
+ });
634
+ program
635
+ .command('decision')
636
+ .description('Record and query architectural/design decisions')
637
+ .argument('<action>', 'Action: record, list, query, or explain')
638
+ .argument('[args...]', 'Arguments for the action')
639
+ .option('-c, --codebase <path>', 'Codebase path (default: current directory)')
640
+ .option('-t, --type <type>', 'Decision type filter (for list)')
641
+ .option('-l, --limit <number>', 'Limit number of results', '10')
642
+ .action(async (action, args, options) => {
643
+ initLogFile();
644
+ try {
645
+ await executeDecisionCommand(action, args, {
646
+ codebase: options.codebase,
647
+ type: options.type,
648
+ limit: options.limit ? parseInt(options.limit, 10) : undefined,
649
+ });
650
+ }
651
+ catch (err) {
652
+ console.error(error('Error:'), err instanceof Error ? err.message : String(err));
653
+ process.exit(1);
654
+ }
655
+ });
656
+ program
657
+ .command('knowledge')
658
+ .description('Query and manage preserved knowledge from codebase')
659
+ .argument('<action>', 'Action: query, list, summary, or extract')
660
+ .argument('[args...]', 'Arguments for the action')
661
+ .option('-c, --codebase <path>', 'Codebase path (default: current directory)')
662
+ .option('-t, --type <type>', 'Knowledge type filter (for list)')
663
+ .option('--tags <tags>', 'Comma-separated tags (for list)')
664
+ .option('-l, --limit <number>', 'Limit number of results', '10')
665
+ .action(async (action, args, options) => {
666
+ initLogFile();
667
+ try {
668
+ await executeKnowledgeCommand(action, args, {
669
+ codebase: options.codebase,
670
+ type: options.type,
671
+ tags: options.tags ? options.tags.split(',') : undefined,
672
+ limit: options.limit ? parseInt(options.limit, 10) : undefined,
673
+ });
674
+ }
675
+ catch (err) {
676
+ console.error(error('Error:'), err instanceof Error ? err.message : String(err));
677
+ process.exit(1);
678
+ }
679
+ });
680
+ program
681
+ .command('learning')
682
+ .description('Learning dashboard - View patterns, knowledge, and insights')
683
+ .argument('<action>', 'Action: overview, patterns, knowledge, or insights')
684
+ .option('-c, --codebase <path>', 'Codebase path (default: current directory)')
685
+ .action(async (action, options) => {
686
+ initLogFile();
687
+ try {
688
+ await executeLearningDashboardCommand(action, options.codebase);
689
689
  }
690
690
  catch (err) {
691
691
  console.error(error('Error:'), err instanceof Error ? err.message : String(err));
@@ -899,59 +899,110 @@ program
899
899
  }
900
900
  });
901
901
  program
902
- .command('scaffold')
903
- .description('Scaffold a simple app skeleton from a template')
904
- .argument('<template>', 'Template name (e.g., node-api, next-page)')
905
- .argument('<targetDir>', 'Target directory (relative to current directory)')
906
- .action(async (template, targetDir) => {
902
+ .command('react')
903
+ .description('Execute query using ReAct loop (iterative reasoning with tools)')
904
+ .argument('<query>', 'The query to process with ReAct reasoning')
905
+ .addHelpText('after', `
906
+ Examples:
907
+ $ codehere react "How does authentication work in this codebase?"
908
+ $ codehere react "Find and explain the user login function"
909
+ $ codehere react "What files handle API requests?"
910
+
911
+ This command uses ReAct (Reasoning + Acting) pattern:
912
+ • Generates thoughts about the problem
913
+ • Takes actions (uses tools, searches code)
914
+ • Observes results
915
+ • Iterates until solution found
916
+ • Learns from memory of past experiences
917
+ `)
918
+ .action(async (query) => {
907
919
  initLogFile();
920
+ if (!process.env.COHERE_API_KEY) {
921
+ newline();
922
+ console.error(error('COHERE_API_KEY not found in environment'));
923
+ newline();
924
+ console.log(colors.bold('Setup Instructions:'));
925
+ console.log(' 1. Get your API key from: https://dashboard.cohere.com/api-keys');
926
+ console.log(' 2. Create a .env file in your project root:');
927
+ console.log(colors.cyan(' echo "COHERE_API_KEY=your_key_here" > .env'));
928
+ console.log(' 3. Run the command again');
929
+ newline();
930
+ process.exit(1);
931
+ }
908
932
  try {
909
- console.log(createBanner('Scaffold App', 'Create app skeleton from template'));
910
- newline();
911
- // List available templates if user asks
912
- if (template === 'list' || template === '--list') {
913
- const templates = listTemplates();
914
- if (templates.length === 0) {
915
- console.log(warning('No templates available.'));
916
- return;
933
+ await executeReactCommand(query);
934
+ logEntry({
935
+ timestamp: new Date().toISOString(),
936
+ command: 'react',
937
+ query: query,
938
+ policyStatus: 'allowed',
939
+ });
940
+ }
941
+ catch (err) {
942
+ console.error(error('Error:'), err instanceof Error ? err.message : String(err));
943
+ process.exit(1);
944
+ }
945
+ });
946
+ program
947
+ .command('orchestrate')
948
+ .description('Orchestrate multi-agent workflows (plan, execute, validate)')
949
+ .argument('<goal>', 'The goal to orchestrate')
950
+ .option('-m, --mode <mode>', 'Orchestration mode: plan-only, execute-only, or full', 'full')
951
+ .option('-p, --plan-id <planId>', 'Load and execute a previously saved plan by ID')
952
+ .action(async (goal, options) => {
953
+ initLogFile();
954
+ if (!process.env.COHERE_API_KEY) {
955
+ newline();
956
+ console.error(error('COHERE_API_KEY not found in environment'));
957
+ process.exit(1);
958
+ }
959
+ try {
960
+ await executeOrchestrateCommand(goal, {
961
+ mode: options.mode,
962
+ planId: options.planId,
963
+ });
964
+ logEntry({
965
+ timestamp: new Date().toISOString(),
966
+ command: 'orchestrate',
967
+ query: goal,
968
+ policyStatus: 'allowed',
969
+ });
970
+ }
971
+ catch (err) {
972
+ console.error(error('Error:'), err instanceof Error ? err.message : String(err));
973
+ process.exit(1);
974
+ }
975
+ });
976
+ program
977
+ .command('trace')
978
+ .description('View execution traces and reproduce runs')
979
+ .argument('<action>', 'Action: list, show, or reproduce')
980
+ .argument('[runId]', 'Run ID (required for show/reproduce)')
981
+ .action(async (action, runId) => {
982
+ initLogFile();
983
+ try {
984
+ if (action === 'list') {
985
+ await executeTraceCommand('list');
986
+ }
987
+ else if (action === 'show') {
988
+ if (!runId) {
989
+ console.error(error('Run ID is required for "show" action'));
990
+ console.log(info('Usage: codehere trace show <runId>'));
991
+ process.exit(1);
917
992
  }
918
- sectionHeader('Available Templates');
919
- templates.forEach(t => {
920
- console.log(colors.cyan(` ${t}`));
921
- });
922
- newline();
923
- return;
993
+ await executeTraceCommand('show', runId);
924
994
  }
925
- console.log(colors.bold('Template:') + ' ' + colors.cyan(template));
926
- console.log(colors.bold('Target:') + ' ' + colors.cyan(targetDir));
927
- newline();
928
- const result = scaffoldTemplate(template, targetDir);
929
- if (result.success) {
930
- sectionHeader('Files Created');
931
- result.filesCreated.forEach(file => {
932
- console.log(colors.green(' ✓ ') + file);
933
- });
934
- newline();
935
- console.log(success(`Scaffold complete! Created ${result.filesCreated.length} file(s).`));
936
- newline();
937
- console.log(info('Next steps:'));
938
- console.log(colors.dim(` 1. cd ${targetDir}`));
939
- console.log(colors.dim(` 2. codehere index`));
940
- console.log(colors.dim(` 3. codehere explain <file>`));
941
- console.log(colors.dim(` 4. codehere fix <file> "<instruction>"`));
942
- newline();
943
- logEntry({
944
- timestamp: new Date().toISOString(),
945
- command: 'scaffold',
946
- query: `${template} -> ${targetDir}`,
947
- policyStatus: 'allowed',
948
- });
995
+ else if (action === 'reproduce') {
996
+ if (!runId) {
997
+ console.error(error('Run ID is required for "reproduce" action'));
998
+ console.log(info('Usage: codehere trace reproduce <runId>'));
999
+ process.exit(1);
1000
+ }
1001
+ await executeTraceCommand('reproduce', runId);
949
1002
  }
950
1003
  else {
951
- newline();
952
- console.error(error('Scaffold failed'));
953
- console.log(colors.red(' ' + (result.error || 'Unknown error')));
954
- newline();
1004
+ console.error(error(`Unknown action: ${action}`));
1005
+ console.log(info('Available actions: list, show, reproduce'));
955
1006
  process.exit(1);
956
1007
  }
957
1008
  }
@@ -960,5 +1011,70 @@ program
960
1011
  process.exit(1);
961
1012
  }
962
1013
  });
1014
+ program
1015
+ .command('undo')
1016
+ .description('Undo file changes by restoring from backups')
1017
+ .argument('<action>', 'Action: undo, list, restore')
1018
+ .argument('[filepath]', 'File path (required for undo/list)')
1019
+ .argument('[backupPath]', 'Backup path (required for restore)')
1020
+ .addHelpText('after', `
1021
+ Examples:
1022
+ $ codehere undo undo src/file.ts
1023
+ $ codehere undo list src/file.ts
1024
+ $ codehere undo restore src/file.ts .codehere/backups/file.ts.2024-12-30.backup
1025
+
1026
+ Actions:
1027
+ undo - Restore file from most recent backup
1028
+ list - List all available backups for a file
1029
+ restore - Restore file from a specific backup path
1030
+ `)
1031
+ .action(async (action, filepath, backupPath) => {
1032
+ initLogFile();
1033
+ try {
1034
+ await executeUndoCommand(action, filepath, backupPath);
1035
+ }
1036
+ catch (err) {
1037
+ console.error(error('Error:'), err instanceof Error ? err.message : String(err));
1038
+ process.exit(1);
1039
+ }
1040
+ });
1041
+ // Add completion command
1042
+ program
1043
+ .command('completion')
1044
+ .description('Generate shell completion script')
1045
+ .argument('<shell>', 'Shell type: bash, zsh, or fish')
1046
+ .action(async (shell) => {
1047
+ try {
1048
+ switch (shell.toLowerCase()) {
1049
+ case 'bash': {
1050
+ const { generateBashCompletion } = await import('./infrastructure/completion/bash-completion.js');
1051
+ console.log(generateBashCompletion());
1052
+ break;
1053
+ }
1054
+ case 'zsh': {
1055
+ const { generateZshCompletion } = await import('./infrastructure/completion/zsh-completion.js');
1056
+ console.log(generateZshCompletion());
1057
+ break;
1058
+ }
1059
+ case 'fish': {
1060
+ const { generateFishCompletion } = await import('./infrastructure/completion/fish-completion.js');
1061
+ console.log(generateFishCompletion());
1062
+ break;
1063
+ }
1064
+ default:
1065
+ console.error(error(`Unsupported shell: ${shell}`));
1066
+ console.log(info('Supported shells: bash, zsh, fish'));
1067
+ console.log(info('Usage: codehere completion <bash|zsh|fish>'));
1068
+ process.exit(1);
1069
+ }
1070
+ }
1071
+ catch (err) {
1072
+ displayError(err, {
1073
+ operation: 'completion',
1074
+ showSuggestions: true,
1075
+ });
1076
+ process.exit(1);
1077
+ }
1078
+ });
963
1079
  program.parse();
964
1080
  //# sourceMappingURL=index.js.map