codehere 0.1.0 → 0.2.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 (603) 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 +64 -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 +140 -0
  43. package/dist/application/services/dependency-container.d.ts.map +1 -0
  44. package/dist/application/services/dependency-container.js +402 -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 +36 -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 +150 -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 +685 -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 +267 -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 +325 -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 +44 -0
  227. package/dist/domain/services/react-loop.d.ts.map +1 -0
  228. package/dist/domain/services/react-loop.js +110 -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/index.js +228 -231
  243. package/dist/index.js.map +1 -1
  244. package/dist/infrastructure/ai/cohere-ai-service.d.ts +54 -0
  245. package/dist/infrastructure/ai/cohere-ai-service.d.ts.map +1 -0
  246. package/dist/infrastructure/ai/cohere-ai-service.js +547 -0
  247. package/dist/infrastructure/ai/cohere-ai-service.js.map +1 -0
  248. package/dist/infrastructure/ai/command-r-evaluation.d.ts +42 -0
  249. package/dist/infrastructure/ai/command-r-evaluation.d.ts.map +1 -0
  250. package/dist/infrastructure/ai/command-r-evaluation.js +206 -0
  251. package/dist/infrastructure/ai/command-r-evaluation.js.map +1 -0
  252. package/dist/infrastructure/ai/model-config.d.ts +47 -0
  253. package/dist/infrastructure/ai/model-config.d.ts.map +1 -0
  254. package/dist/infrastructure/ai/model-config.js +84 -0
  255. package/dist/infrastructure/ai/model-config.js.map +1 -0
  256. package/dist/infrastructure/cache/embedding-cache.d.ts +46 -0
  257. package/dist/infrastructure/cache/embedding-cache.d.ts.map +1 -0
  258. package/dist/infrastructure/cache/embedding-cache.js +104 -0
  259. package/dist/infrastructure/cache/embedding-cache.js.map +1 -0
  260. package/dist/infrastructure/chunking/ast-code-chunker.d.ts +12 -0
  261. package/dist/infrastructure/chunking/ast-code-chunker.d.ts.map +1 -0
  262. package/dist/infrastructure/chunking/ast-code-chunker.js +19 -0
  263. package/dist/infrastructure/chunking/ast-code-chunker.js.map +1 -0
  264. package/dist/infrastructure/chunking/code-aware-chunker.d.ts +63 -0
  265. package/dist/infrastructure/chunking/code-aware-chunker.d.ts.map +1 -0
  266. package/dist/infrastructure/chunking/code-aware-chunker.js +397 -0
  267. package/dist/infrastructure/chunking/code-aware-chunker.js.map +1 -0
  268. package/dist/infrastructure/config/config-manager.d.ts +79 -0
  269. package/dist/infrastructure/config/config-manager.d.ts.map +1 -0
  270. package/dist/infrastructure/config/config-manager.js +162 -0
  271. package/dist/infrastructure/config/config-manager.js.map +1 -0
  272. package/dist/infrastructure/cost/cost-tracker.d.ts +90 -0
  273. package/dist/infrastructure/cost/cost-tracker.d.ts.map +1 -0
  274. package/dist/infrastructure/cost/cost-tracker.js +353 -0
  275. package/dist/infrastructure/cost/cost-tracker.js.map +1 -0
  276. package/dist/infrastructure/file-scanner/file-scanner.d.ts +31 -0
  277. package/dist/infrastructure/file-scanner/file-scanner.d.ts.map +1 -0
  278. package/dist/infrastructure/file-scanner/file-scanner.js +106 -0
  279. package/dist/infrastructure/file-scanner/file-scanner.js.map +1 -0
  280. package/dist/infrastructure/governance/nist-ai-rmf.d.ts +107 -0
  281. package/dist/infrastructure/governance/nist-ai-rmf.d.ts.map +1 -0
  282. package/dist/infrastructure/governance/nist-ai-rmf.js +294 -0
  283. package/dist/infrastructure/governance/nist-ai-rmf.js.map +1 -0
  284. package/dist/infrastructure/governance/policy-as-code.d.ts +90 -0
  285. package/dist/infrastructure/governance/policy-as-code.d.ts.map +1 -0
  286. package/dist/infrastructure/governance/policy-as-code.js +244 -0
  287. package/dist/infrastructure/governance/policy-as-code.js.map +1 -0
  288. package/dist/infrastructure/governance/prompt-to-code-lineage.d.ts +138 -0
  289. package/dist/infrastructure/governance/prompt-to-code-lineage.d.ts.map +1 -0
  290. package/dist/infrastructure/governance/prompt-to-code-lineage.js +241 -0
  291. package/dist/infrastructure/governance/prompt-to-code-lineage.js.map +1 -0
  292. package/dist/infrastructure/index.d.ts +7 -0
  293. package/dist/infrastructure/index.d.ts.map +1 -0
  294. package/dist/infrastructure/index.js +7 -0
  295. package/dist/infrastructure/index.js.map +1 -0
  296. package/dist/infrastructure/observability/execution-tracer.d.ts +105 -0
  297. package/dist/infrastructure/observability/execution-tracer.d.ts.map +1 -0
  298. package/dist/infrastructure/observability/execution-tracer.js +190 -0
  299. package/dist/infrastructure/observability/execution-tracer.js.map +1 -0
  300. package/dist/infrastructure/observability/prompt-versioner.d.ts +67 -0
  301. package/dist/infrastructure/observability/prompt-versioner.d.ts.map +1 -0
  302. package/dist/infrastructure/observability/prompt-versioner.js +145 -0
  303. package/dist/infrastructure/observability/prompt-versioner.js.map +1 -0
  304. package/dist/infrastructure/protocols/a2a-metadata.d.ts +278 -0
  305. package/dist/infrastructure/protocols/a2a-metadata.d.ts.map +1 -0
  306. package/dist/infrastructure/protocols/a2a-metadata.js +137 -0
  307. package/dist/infrastructure/protocols/a2a-metadata.js.map +1 -0
  308. package/dist/infrastructure/protocols/a2a-protocol.d.ts +132 -0
  309. package/dist/infrastructure/protocols/a2a-protocol.d.ts.map +1 -0
  310. package/dist/infrastructure/protocols/a2a-protocol.js +314 -0
  311. package/dist/infrastructure/protocols/a2a-protocol.js.map +1 -0
  312. package/dist/infrastructure/protocols/mcp-oauth.d.ts +91 -0
  313. package/dist/infrastructure/protocols/mcp-oauth.d.ts.map +1 -0
  314. package/dist/infrastructure/protocols/mcp-oauth.js +184 -0
  315. package/dist/infrastructure/protocols/mcp-oauth.js.map +1 -0
  316. package/dist/infrastructure/protocols/mcp-server.d.ts +126 -0
  317. package/dist/infrastructure/protocols/mcp-server.d.ts.map +1 -0
  318. package/dist/infrastructure/protocols/mcp-server.js +333 -0
  319. package/dist/infrastructure/protocols/mcp-server.js.map +1 -0
  320. package/dist/infrastructure/protocols/streaming-handler.d.ts +57 -0
  321. package/dist/infrastructure/protocols/streaming-handler.d.ts.map +1 -0
  322. package/dist/infrastructure/protocols/streaming-handler.js +103 -0
  323. package/dist/infrastructure/protocols/streaming-handler.js.map +1 -0
  324. package/dist/infrastructure/security/ai-sast-scanner.d.ts +55 -0
  325. package/dist/infrastructure/security/ai-sast-scanner.d.ts.map +1 -0
  326. package/dist/infrastructure/security/ai-sast-scanner.js +163 -0
  327. package/dist/infrastructure/security/ai-sast-scanner.js.map +1 -0
  328. package/dist/infrastructure/security/docker-sandbox.d.ts +57 -0
  329. package/dist/infrastructure/security/docker-sandbox.d.ts.map +1 -0
  330. package/dist/infrastructure/security/docker-sandbox.js +178 -0
  331. package/dist/infrastructure/security/docker-sandbox.js.map +1 -0
  332. package/dist/infrastructure/security/enhanced-security-gate.d.ts +51 -0
  333. package/dist/infrastructure/security/enhanced-security-gate.d.ts.map +1 -0
  334. package/dist/infrastructure/security/enhanced-security-gate.js +92 -0
  335. package/dist/infrastructure/security/enhanced-security-gate.js.map +1 -0
  336. package/dist/infrastructure/security/input-validator.d.ts +33 -0
  337. package/dist/infrastructure/security/input-validator.d.ts.map +1 -0
  338. package/dist/infrastructure/security/input-validator.js +152 -0
  339. package/dist/infrastructure/security/input-validator.js.map +1 -0
  340. package/dist/infrastructure/security/license-scanner.d.ts +55 -0
  341. package/dist/infrastructure/security/license-scanner.d.ts.map +1 -0
  342. package/dist/infrastructure/security/license-scanner.js +167 -0
  343. package/dist/infrastructure/security/license-scanner.js.map +1 -0
  344. package/dist/infrastructure/security/provider-bias-detector.d.ts +53 -0
  345. package/dist/infrastructure/security/provider-bias-detector.d.ts.map +1 -0
  346. package/dist/infrastructure/security/provider-bias-detector.js +164 -0
  347. package/dist/infrastructure/security/provider-bias-detector.js.map +1 -0
  348. package/dist/infrastructure/security/sandbox-executor.d.ts +34 -0
  349. package/dist/infrastructure/security/sandbox-executor.d.ts.map +1 -0
  350. package/dist/infrastructure/security/sandbox-executor.js +64 -0
  351. package/dist/infrastructure/security/sandbox-executor.js.map +1 -0
  352. package/dist/infrastructure/storage/memory-stream-service.d.ts +47 -0
  353. package/dist/infrastructure/storage/memory-stream-service.d.ts.map +1 -0
  354. package/dist/infrastructure/storage/memory-stream-service.js +204 -0
  355. package/dist/infrastructure/storage/memory-stream-service.js.map +1 -0
  356. package/dist/infrastructure/storage/sqlite-decision-repository.d.ts +29 -0
  357. package/dist/infrastructure/storage/sqlite-decision-repository.d.ts.map +1 -0
  358. package/dist/infrastructure/storage/sqlite-decision-repository.js +232 -0
  359. package/dist/infrastructure/storage/sqlite-decision-repository.js.map +1 -0
  360. package/dist/infrastructure/storage/sqlite-embedding-repository.d.ts +24 -0
  361. package/dist/infrastructure/storage/sqlite-embedding-repository.d.ts.map +1 -0
  362. package/dist/infrastructure/storage/sqlite-embedding-repository.js +162 -0
  363. package/dist/infrastructure/storage/sqlite-embedding-repository.js.map +1 -0
  364. package/dist/infrastructure/storage/sqlite-knowledge-graph-repository.d.ts +41 -0
  365. package/dist/infrastructure/storage/sqlite-knowledge-graph-repository.d.ts.map +1 -0
  366. package/dist/infrastructure/storage/sqlite-knowledge-graph-repository.js +417 -0
  367. package/dist/infrastructure/storage/sqlite-knowledge-graph-repository.js.map +1 -0
  368. package/dist/infrastructure/storage/sqlite-knowledge-preservation-repository.d.ts +29 -0
  369. package/dist/infrastructure/storage/sqlite-knowledge-preservation-repository.d.ts.map +1 -0
  370. package/dist/infrastructure/storage/sqlite-knowledge-preservation-repository.js +230 -0
  371. package/dist/infrastructure/storage/sqlite-knowledge-preservation-repository.js.map +1 -0
  372. package/dist/infrastructure/storage/sqlite-memory-repository.d.ts +40 -0
  373. package/dist/infrastructure/storage/sqlite-memory-repository.d.ts.map +1 -0
  374. package/dist/infrastructure/storage/sqlite-memory-repository.js +229 -0
  375. package/dist/infrastructure/storage/sqlite-memory-repository.js.map +1 -0
  376. package/dist/infrastructure/storage/sqlite-pattern-repository.d.ts +25 -0
  377. package/dist/infrastructure/storage/sqlite-pattern-repository.d.ts.map +1 -0
  378. package/dist/infrastructure/storage/sqlite-pattern-repository.js +249 -0
  379. package/dist/infrastructure/storage/sqlite-pattern-repository.js.map +1 -0
  380. package/dist/infrastructure/ux/appropriate-friction.d.ts +77 -0
  381. package/dist/infrastructure/ux/appropriate-friction.d.ts.map +1 -0
  382. package/dist/infrastructure/ux/appropriate-friction.js +213 -0
  383. package/dist/infrastructure/ux/appropriate-friction.js.map +1 -0
  384. package/dist/infrastructure/ux/bi-directional-learning.d.ts +109 -0
  385. package/dist/infrastructure/ux/bi-directional-learning.d.ts.map +1 -0
  386. package/dist/infrastructure/ux/bi-directional-learning.js +200 -0
  387. package/dist/infrastructure/ux/bi-directional-learning.js.map +1 -0
  388. package/dist/infrastructure/ux/expectation-management.d.ts +65 -0
  389. package/dist/infrastructure/ux/expectation-management.d.ts.map +1 -0
  390. package/dist/infrastructure/ux/expectation-management.js +193 -0
  391. package/dist/infrastructure/ux/expectation-management.js.map +1 -0
  392. package/dist/infrastructure/ux/hitl-validation.d.ts +104 -0
  393. package/dist/infrastructure/ux/hitl-validation.d.ts.map +1 -0
  394. package/dist/infrastructure/ux/hitl-validation.js +211 -0
  395. package/dist/infrastructure/ux/hitl-validation.js.map +1 -0
  396. package/dist/infrastructure/ux/progressive-disclosure.d.ts +84 -0
  397. package/dist/infrastructure/ux/progressive-disclosure.d.ts.map +1 -0
  398. package/dist/infrastructure/ux/progressive-disclosure.js +235 -0
  399. package/dist/infrastructure/ux/progressive-disclosure.js.map +1 -0
  400. package/dist/infrastructure/ux/team-standards.d.ts +94 -0
  401. package/dist/infrastructure/ux/team-standards.d.ts.map +1 -0
  402. package/dist/infrastructure/ux/team-standards.js +196 -0
  403. package/dist/infrastructure/ux/team-standards.js.map +1 -0
  404. package/dist/infrastructure/verification/verification-service.d.ts +12 -0
  405. package/dist/infrastructure/verification/verification-service.d.ts.map +1 -0
  406. package/dist/infrastructure/verification/verification-service.js +47 -0
  407. package/dist/infrastructure/verification/verification-service.js.map +1 -0
  408. package/dist/infrastructure/xai/attention-visualizer.d.ts +73 -0
  409. package/dist/infrastructure/xai/attention-visualizer.d.ts.map +1 -0
  410. package/dist/infrastructure/xai/attention-visualizer.js +174 -0
  411. package/dist/infrastructure/xai/attention-visualizer.js.map +1 -0
  412. package/dist/infrastructure/xai/cot-visualizer.d.ts +105 -0
  413. package/dist/infrastructure/xai/cot-visualizer.d.ts.map +1 -0
  414. package/dist/infrastructure/xai/cot-visualizer.js +239 -0
  415. package/dist/infrastructure/xai/cot-visualizer.js.map +1 -0
  416. package/dist/infrastructure/xai/decision-tree-log.d.ts +104 -0
  417. package/dist/infrastructure/xai/decision-tree-log.d.ts.map +1 -0
  418. package/dist/infrastructure/xai/decision-tree-log.js +216 -0
  419. package/dist/infrastructure/xai/decision-tree-log.js.map +1 -0
  420. package/dist/infrastructure/xai/interactive-xai.d.ts +106 -0
  421. package/dist/infrastructure/xai/interactive-xai.d.ts.map +1 -0
  422. package/dist/infrastructure/xai/interactive-xai.js +262 -0
  423. package/dist/infrastructure/xai/interactive-xai.js.map +1 -0
  424. package/dist/infrastructure/xai/uncertainty-quantifier.d.ts +80 -0
  425. package/dist/infrastructure/xai/uncertainty-quantifier.d.ts.map +1 -0
  426. package/dist/infrastructure/xai/uncertainty-quantifier.js +201 -0
  427. package/dist/infrastructure/xai/uncertainty-quantifier.js.map +1 -0
  428. package/dist/intelligent-retrieval.d.ts.map +1 -1
  429. package/dist/intelligent-retrieval.js +8 -1
  430. package/dist/intelligent-retrieval.js.map +1 -1
  431. package/dist/intent/classifier.d.ts +6 -0
  432. package/dist/intent/classifier.d.ts.map +1 -0
  433. package/dist/intent/classifier.js +2 -0
  434. package/dist/intent/classifier.js.map +1 -0
  435. package/dist/intent/context.d.ts +4 -0
  436. package/dist/intent/context.d.ts.map +1 -0
  437. package/dist/intent/context.js +2 -0
  438. package/dist/intent/context.js.map +1 -0
  439. package/dist/iterative-refinement.d.ts.map +1 -1
  440. package/dist/iterative-refinement.js +20 -3
  441. package/dist/iterative-refinement.js.map +1 -1
  442. package/dist/learning.d.ts.map +1 -1
  443. package/dist/learning.js +1 -2
  444. package/dist/learning.js.map +1 -1
  445. package/dist/monitoring.d.ts.map +1 -1
  446. package/dist/monitoring.js +1 -2
  447. package/dist/monitoring.js.map +1 -1
  448. package/dist/parallel-processor.d.ts +3 -2
  449. package/dist/parallel-processor.d.ts.map +1 -1
  450. package/dist/parallel-processor.js +183 -56
  451. package/dist/parallel-processor.js.map +1 -1
  452. package/dist/presentation/cli/commands/ask-command.d.ts +8 -0
  453. package/dist/presentation/cli/commands/ask-command.d.ts.map +1 -0
  454. package/dist/presentation/cli/commands/ask-command.js +133 -0
  455. package/dist/presentation/cli/commands/ask-command.js.map +1 -0
  456. package/dist/presentation/cli/commands/config-command.d.ts +9 -0
  457. package/dist/presentation/cli/commands/config-command.d.ts.map +1 -0
  458. package/dist/presentation/cli/commands/config-command.js +123 -0
  459. package/dist/presentation/cli/commands/config-command.js.map +1 -0
  460. package/dist/presentation/cli/commands/cost-command.d.ts +8 -0
  461. package/dist/presentation/cli/commands/cost-command.d.ts.map +1 -0
  462. package/dist/presentation/cli/commands/cost-command.js +191 -0
  463. package/dist/presentation/cli/commands/cost-command.js.map +1 -0
  464. package/dist/presentation/cli/commands/decision-command.d.ts +12 -0
  465. package/dist/presentation/cli/commands/decision-command.d.ts.map +1 -0
  466. package/dist/presentation/cli/commands/decision-command.js +207 -0
  467. package/dist/presentation/cli/commands/decision-command.js.map +1 -0
  468. package/dist/presentation/cli/commands/help-command.d.ts +9 -0
  469. package/dist/presentation/cli/commands/help-command.d.ts.map +1 -0
  470. package/dist/presentation/cli/commands/help-command.js +281 -0
  471. package/dist/presentation/cli/commands/help-command.js.map +1 -0
  472. package/dist/presentation/cli/commands/knowledge-command.d.ts +13 -0
  473. package/dist/presentation/cli/commands/knowledge-command.d.ts.map +1 -0
  474. package/dist/presentation/cli/commands/knowledge-command.js +129 -0
  475. package/dist/presentation/cli/commands/knowledge-command.js.map +1 -0
  476. package/dist/presentation/cli/commands/learning-dashboard-command.d.ts +8 -0
  477. package/dist/presentation/cli/commands/learning-dashboard-command.d.ts.map +1 -0
  478. package/dist/presentation/cli/commands/learning-dashboard-command.js +183 -0
  479. package/dist/presentation/cli/commands/learning-dashboard-command.js.map +1 -0
  480. package/dist/presentation/cli/commands/orchestrate-command.d.ts +8 -0
  481. package/dist/presentation/cli/commands/orchestrate-command.d.ts.map +1 -0
  482. package/dist/presentation/cli/commands/orchestrate-command.js +112 -0
  483. package/dist/presentation/cli/commands/orchestrate-command.js.map +1 -0
  484. package/dist/presentation/cli/commands/plan-command.d.ts +8 -0
  485. package/dist/presentation/cli/commands/plan-command.d.ts.map +1 -0
  486. package/dist/presentation/cli/commands/plan-command.js +114 -0
  487. package/dist/presentation/cli/commands/plan-command.js.map +1 -0
  488. package/dist/presentation/cli/commands/react-command.d.ts +8 -0
  489. package/dist/presentation/cli/commands/react-command.d.ts.map +1 -0
  490. package/dist/presentation/cli/commands/react-command.js +99 -0
  491. package/dist/presentation/cli/commands/react-command.js.map +1 -0
  492. package/dist/presentation/cli/commands/setup-command.d.ts +10 -0
  493. package/dist/presentation/cli/commands/setup-command.d.ts.map +1 -0
  494. package/dist/presentation/cli/commands/setup-command.js +231 -0
  495. package/dist/presentation/cli/commands/setup-command.js.map +1 -0
  496. package/dist/presentation/cli/commands/smart-command.d.ts +6 -0
  497. package/dist/presentation/cli/commands/smart-command.d.ts.map +1 -0
  498. package/dist/presentation/cli/commands/smart-command.js +212 -0
  499. package/dist/presentation/cli/commands/smart-command.js.map +1 -0
  500. package/dist/presentation/cli/commands/trace-command.d.ts +8 -0
  501. package/dist/presentation/cli/commands/trace-command.d.ts.map +1 -0
  502. package/dist/presentation/cli/commands/trace-command.js +125 -0
  503. package/dist/presentation/cli/commands/trace-command.js.map +1 -0
  504. package/dist/presentation/cli/commands/undo-command.d.ts +8 -0
  505. package/dist/presentation/cli/commands/undo-command.d.ts.map +1 -0
  506. package/dist/presentation/cli/commands/undo-command.js +141 -0
  507. package/dist/presentation/cli/commands/undo-command.js.map +1 -0
  508. package/dist/presentation/cli/error-display.d.ts +23 -0
  509. package/dist/presentation/cli/error-display.d.ts.map +1 -0
  510. package/dist/presentation/cli/error-display.js +122 -0
  511. package/dist/presentation/cli/error-display.js.map +1 -0
  512. package/dist/refactor.d.ts.map +1 -1
  513. package/dist/refactor.js +2 -4
  514. package/dist/refactor.js.map +1 -1
  515. package/dist/search.d.ts.map +1 -1
  516. package/dist/search.js +2 -63
  517. package/dist/search.js.map +1 -1
  518. package/dist/session.d.ts.map +1 -1
  519. package/dist/session.js +52 -3
  520. package/dist/session.js.map +1 -1
  521. package/dist/testgen.d.ts.map +1 -1
  522. package/dist/testgen.js +1 -2
  523. package/dist/testgen.js.map +1 -1
  524. package/dist/tools/bash.d.ts +53 -0
  525. package/dist/tools/bash.d.ts.map +1 -0
  526. package/dist/tools/bash.js +213 -0
  527. package/dist/tools/bash.js.map +1 -0
  528. package/dist/tools/edit.d.ts +48 -0
  529. package/dist/tools/edit.d.ts.map +1 -0
  530. package/dist/tools/edit.js +235 -0
  531. package/dist/tools/edit.js.map +1 -0
  532. package/dist/tools/executor.d.ts +29 -0
  533. package/dist/tools/executor.d.ts.map +1 -0
  534. package/dist/tools/executor.js +153 -0
  535. package/dist/tools/executor.js.map +1 -0
  536. package/dist/tools/git-tool.d.ts +87 -0
  537. package/dist/tools/git-tool.d.ts.map +1 -0
  538. package/dist/tools/git-tool.js +292 -0
  539. package/dist/tools/git-tool.js.map +1 -0
  540. package/dist/tools/parser.d.ts +33 -0
  541. package/dist/tools/parser.d.ts.map +1 -0
  542. package/dist/tools/parser.js +158 -0
  543. package/dist/tools/parser.js.map +1 -0
  544. package/dist/tools/registry.d.ts +74 -0
  545. package/dist/tools/registry.d.ts.map +1 -0
  546. package/dist/tools/registry.js +302 -0
  547. package/dist/tools/registry.js.map +1 -0
  548. package/dist/tools/search.d.ts +41 -0
  549. package/dist/tools/search.d.ts.map +1 -0
  550. package/dist/tools/search.js +100 -0
  551. package/dist/tools/search.js.map +1 -0
  552. package/dist/ui.d.ts.map +1 -1
  553. package/dist/ui.js +4 -2
  554. package/dist/ui.js.map +1 -1
  555. package/dist/utils/check-api-status.d.ts +12 -0
  556. package/dist/utils/check-api-status.d.ts.map +1 -0
  557. package/dist/utils/check-api-status.js +82 -0
  558. package/dist/utils/check-api-status.js.map +1 -0
  559. package/dist/utils/diff-parser.d.ts +22 -0
  560. package/dist/utils/diff-parser.d.ts.map +1 -0
  561. package/dist/utils/diff-parser.js +160 -0
  562. package/dist/utils/diff-parser.js.map +1 -0
  563. package/dist/utils/logger.d.ts +34 -0
  564. package/dist/utils/logger.d.ts.map +1 -0
  565. package/dist/utils/logger.js +56 -0
  566. package/dist/utils/logger.js.map +1 -0
  567. package/dist/utils/version.d.ts +21 -0
  568. package/dist/utils/version.d.ts.map +1 -0
  569. package/dist/utils/version.js +52 -0
  570. package/dist/utils/version.js.map +1 -0
  571. package/dist/verification/backup.d.ts +30 -0
  572. package/dist/verification/backup.d.ts.map +1 -0
  573. package/dist/verification/backup.js +238 -0
  574. package/dist/verification/backup.js.map +1 -0
  575. package/dist/verification/compiler.d.ts +20 -0
  576. package/dist/verification/compiler.d.ts.map +1 -0
  577. package/dist/verification/compiler.js +228 -0
  578. package/dist/verification/compiler.js.map +1 -0
  579. package/dist/verification/index.d.ts +59 -0
  580. package/dist/verification/index.d.ts.map +1 -0
  581. package/dist/verification/index.js +273 -0
  582. package/dist/verification/index.js.map +1 -0
  583. package/dist/verification/test-runner.d.ts +27 -0
  584. package/dist/verification/test-runner.d.ts.map +1 -0
  585. package/dist/verification/test-runner.js +379 -0
  586. package/dist/verification/test-runner.js.map +1 -0
  587. package/package.json +39 -14
  588. package/ARCHITECTURE.md +0 -240
  589. package/CHANGELOG.md +0 -44
  590. package/CONTRIBUTING.md +0 -171
  591. package/dist/benchmark.d.ts +0 -39
  592. package/dist/benchmark.d.ts.map +0 -1
  593. package/dist/benchmark.js +0 -195
  594. package/dist/benchmark.js.map +0 -1
  595. package/dist/scaffold.d.ts +0 -14
  596. package/dist/scaffold.d.ts.map +0 -1
  597. package/dist/scaffold.js +0 -85
  598. package/dist/scaffold.js.map +0 -1
  599. package/templates/next-page/app/layout.tsx +0 -19
  600. package/templates/next-page/app/page.tsx +0 -10
  601. package/templates/next-page/package.json +0 -22
  602. package/templates/node-api/index.js +0 -57
  603. package/templates/node-api/package.json +0 -13
package/dist/index.js CHANGED
@@ -4,15 +4,22 @@ 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 { executeDecisionCommand } from './presentation/cli/commands/decision-command.js';
20
+ import { executeKnowledgeCommand } from './presentation/cli/commands/knowledge-command.js';
21
+ import { executeLearningDashboardCommand } from './presentation/cli/commands/learning-dashboard-command.js';
22
+ import { executeUndoCommand } from './presentation/cli/commands/undo-command.js';
16
23
  import { reviewFile, formatReview } from './review.js';
17
24
  import { formatLearningInsights, getPerformanceInsights } from './learning.js';
18
25
  import { getCacheStats, clearAllCaches } from './cache.js';
@@ -21,8 +28,7 @@ import { generateFileDocs, generateREADME, updateDocs, saveDocs } from './docs.j
21
28
  import { generateTests, getTestFilePath, saveTests, improveTests } from './testgen.js';
22
29
  import { startSession } from './session.js';
23
30
  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';
31
+ import { colors, createSpinner, createBanner, createTable, success, error, warning, info, formatPath, formatNumber, sectionHeader, newline, statusIndicator, createWelcomeMessage, } from './ui.js';
26
32
  // Load environment variables - try agent directory first, then current directory
27
33
  try {
28
34
  const __filename = fileURLToPath(import.meta.url);
@@ -34,11 +40,13 @@ catch {
34
40
  // Fallback to current directory
35
41
  }
36
42
  config(); // Also try current directory
43
+ // Import centralized version utility
44
+ import { getVersion } from './utils/version.js';
37
45
  const program = new Command();
38
46
  program
39
47
  .name('codehere')
40
48
  .description('AI-powered coding assistant with local embeddings and semantic search')
41
- .version('0.1.0')
49
+ .version(getVersion())
42
50
  .configureHelp({
43
51
  helpWidth: 80,
44
52
  sortSubcommands: true,
@@ -46,11 +54,40 @@ program
46
54
  .addHelpText('beforeAll', () => {
47
55
  return createWelcomeMessage();
48
56
  });
49
- // Start interactive session when no command provided
57
+ // Smart routing: if query provided as argument, route intelligently
50
58
  program
51
- .action(async () => {
52
- // Check if we should start interactive session
53
- if (process.stdin.isTTY) {
59
+ .argument('[query]', 'Your query - Codehere will understand what you need')
60
+ .action(async (query) => {
61
+ if (query && query.trim()) {
62
+ // Direct query - use intelligent router
63
+ initLogFile();
64
+ if (!process.env.COHERE_API_KEY) {
65
+ newline();
66
+ console.error(error('COHERE_API_KEY not found in environment'));
67
+ newline();
68
+ console.log(colors.bold('Setup Instructions:'));
69
+ console.log(' 1. Get your API key from: https://dashboard.cohere.com/api-keys');
70
+ console.log(' 2. Create a .env file in your project root:');
71
+ console.log(colors.cyan(' echo "COHERE_API_KEY=your_key_here" > .env'));
72
+ console.log(' 3. Run the command again');
73
+ newline();
74
+ process.exit(1);
75
+ }
76
+ try {
77
+ await executeSmartCommand(query.trim());
78
+ logEntry({
79
+ timestamp: new Date().toISOString(),
80
+ command: 'smart',
81
+ query: query.trim(),
82
+ policyStatus: 'allowed',
83
+ });
84
+ }
85
+ catch (err) {
86
+ console.error(error('Error:'), err instanceof Error ? err.message : String(err));
87
+ process.exit(1);
88
+ }
89
+ }
90
+ else if (process.stdin.isTTY) {
54
91
  // Interactive mode - start session
55
92
  await startSession();
56
93
  }
@@ -58,18 +95,44 @@ program
58
95
  // Non-interactive - show help
59
96
  console.log(createWelcomeMessage());
60
97
  newline();
61
- console.log(colors.bold('Available Commands:'));
98
+ console.log(colors.bold('Usage:'));
62
99
  newline();
100
+ console.log(colors.cyan(' codehere "<your query>"') + ' Ask anything - Codehere understands');
63
101
  console.log(colors.cyan(' codehere') + ' Start interactive session');
64
102
  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');
103
+ newline();
104
+ console.log(colors.dim('Examples:'));
105
+ console.log(colors.dim(' codehere "How does authentication work?"'));
106
+ console.log(colors.dim(' codehere "Explain src/auth.ts"'));
107
+ console.log(colors.dim(' codehere "Fix src/utils.ts add error handling"'));
68
108
  newline();
69
109
  console.log(colors.dim('Run "codehere --help" for all commands'));
70
110
  newline();
71
111
  }
72
112
  });
113
+ program
114
+ .command('setup')
115
+ .description('Interactive setup wizard for first-time users')
116
+ .option('-f, --force', 'Force reconfiguration even if already set up')
117
+ .action(async (options) => {
118
+ await executeSetupCommand(options.force || false);
119
+ });
120
+ program
121
+ .command('config')
122
+ .description('Manage configuration and preferences')
123
+ .argument('[action]', 'Action: show, get, set, reset')
124
+ .argument('[key]', 'Preference key (for get/set)')
125
+ .argument('[value]', 'Preference value (for set)')
126
+ .action(async (action, key, value) => {
127
+ await executeConfigCommand(action, key, value);
128
+ });
129
+ program
130
+ .command('help')
131
+ .description('Show help for commands')
132
+ .argument('[command]', 'Command name to get help for')
133
+ .action(async (commandName) => {
134
+ await executeHelpCommand(commandName);
135
+ });
73
136
  program
74
137
  .command('index')
75
138
  .description('Build embeddings index of the repository')
@@ -149,49 +212,20 @@ Make sure to run "codehere index" first!
149
212
  console.log(colors.bold('Query:'));
150
213
  console.log(colors.cyan(' ' + question));
151
214
  newline();
152
- // NEW: Intelligent search with AST-based understanding
153
- const searchSpinner = createSpinner('Searching with intelligent context (AST + code structure)...');
215
+ // Use clean architecture
216
+ const searchSpinner = createSpinner('Searching codebase...');
154
217
  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;
218
+ try {
219
+ await executeAskCommand(question);
220
+ }
221
+ finally {
222
+ searchSpinner.stop();
165
223
  }
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
224
  logEntry({
190
225
  timestamp: new Date().toISOString(),
191
226
  command: 'ask',
192
227
  query: question,
193
228
  policyStatus: 'allowed',
194
- retrievedFiles,
195
229
  });
196
230
  }
197
231
  catch (err) {
@@ -204,7 +238,6 @@ program
204
238
  .description('Apply AI-generated code edits to a file')
205
239
  .argument('<file>', 'Path to the file to edit')
206
240
  .argument('<instruction>', 'Natural language instruction for the edit')
207
- .option('--dry-run', 'Show changes without applying them')
208
241
  .alias('edit')
209
242
  .addHelpText('after', `
210
243
  Examples:
@@ -223,7 +256,7 @@ Safety policies:
223
256
  • Cannot edit files in restricted folders (infra/, billing/)
224
257
  • Only one file can be edited at a time
225
258
  `)
226
- .action(async (file, instruction, options) => {
259
+ .action(async (file, instruction) => {
227
260
  initLogFile();
228
261
  if (!process.env.COHERE_API_KEY) {
229
262
  newline();
@@ -259,10 +292,7 @@ Safety policies:
259
292
  newline();
260
293
  process.exit(1);
261
294
  }
262
- const isDryRun = options.dryRun || false;
263
- const result = isDryRun
264
- ? await generateEditDryRun(file, instruction)
265
- : await generateAndApplyEdit(file, instruction);
295
+ const result = await generateAndApplyEdit(file, instruction);
266
296
  diffSpinner.stop();
267
297
  if (result.success) {
268
298
  newline();
@@ -289,32 +319,7 @@ Safety policies:
289
319
  console.log(statsTable.toString());
290
320
  newline();
291
321
  }
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
- }
322
+ console.log(success('Edit applied successfully'));
318
323
  logEntry({
319
324
  timestamp: new Date().toISOString(),
320
325
  command: 'fix',
@@ -354,54 +359,6 @@ Safety policies:
354
359
  process.exit(1);
355
360
  }
356
361
  });
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(),
379
- });
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
- process.exit(1);
403
- }
404
- });
405
362
  program
406
363
  .command('explain')
407
364
  .description('Get AI explanation of a code file')
@@ -446,34 +403,28 @@ This command will:
446
403
  newline();
447
404
  process.exit(1);
448
405
  }
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
406
+ // Use clean architecture
407
+ const { container } = await import('./application/services/dependency-container.js');
408
+ const useCase = container.explainFileUseCase;
463
409
  const explainSpinner = createSpinner('Generating explanation...');
464
410
  explainSpinner.start();
465
- const response = await chatWithContext(question, context);
411
+ const result = await useCase.execute({ filepath: file });
466
412
  explainSpinner.stop();
413
+ // File info
414
+ const lines = result.fileContent.split('\n').length;
415
+ const size = (result.fileContent.length / 1024).toFixed(2);
416
+ console.log(colors.bold('File:') + ' ' + formatPath(file));
417
+ console.log(colors.dim(` Lines: ${lines} | Size: ${size} KB`));
467
418
  newline();
468
- // Display explanation - clean format
419
+ // Display explanation
469
420
  sectionHeader('Explanation');
470
- const formattedResponse = cleanResponse(response);
421
+ const formattedResponse = cleanResponse(result.explanation);
471
422
  console.log(formattedResponse);
472
423
  newline();
473
424
  logEntry({
474
425
  timestamp: new Date().toISOString(),
475
426
  command: 'explain',
476
- query: question,
427
+ query: `Explain ${file}`,
477
428
  filepath: file,
478
429
  policyStatus: 'allowed',
479
430
  retrievedFiles: [file],
@@ -613,7 +564,6 @@ program
613
564
  return;
614
565
  }
615
566
  // Get diffs
616
- const { getGitDiff } = require('./git.js');
617
567
  const diffs = options.file
618
568
  ? (() => {
619
569
  const diff = getGitDiff(options.file);
@@ -660,32 +610,69 @@ program
660
610
  newline();
661
611
  console.log(colors.bold('Instruction:') + ' ' + colors.cyan(instruction));
662
612
  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
- }
613
+ // Use new memory-based planning
614
+ await executePlanCommand(instruction, { execute: options.execute });
615
+ }
616
+ catch (err) {
617
+ console.error(error('Error:'), err instanceof Error ? err.message : String(err));
618
+ process.exit(1);
619
+ }
620
+ });
621
+ program
622
+ .command('decision')
623
+ .description('Record and query architectural/design decisions')
624
+ .argument('<action>', 'Action: record, list, query, or explain')
625
+ .argument('[args...]', 'Arguments for the action')
626
+ .option('-c, --codebase <path>', 'Codebase path (default: current directory)')
627
+ .option('-t, --type <type>', 'Decision type filter (for list)')
628
+ .option('-l, --limit <number>', 'Limit number of results', '10')
629
+ .action(async (action, args, options) => {
630
+ initLogFile();
631
+ try {
632
+ await executeDecisionCommand(action, args, {
633
+ codebase: options.codebase,
634
+ type: options.type,
635
+ limit: options.limit ? parseInt(options.limit, 10) : undefined,
636
+ });
637
+ }
638
+ catch (err) {
639
+ console.error(error('Error:'), err instanceof Error ? err.message : String(err));
640
+ process.exit(1);
641
+ }
642
+ });
643
+ program
644
+ .command('knowledge')
645
+ .description('Query and manage preserved knowledge from codebase')
646
+ .argument('<action>', 'Action: query, list, summary, or extract')
647
+ .argument('[args...]', 'Arguments for the action')
648
+ .option('-c, --codebase <path>', 'Codebase path (default: current directory)')
649
+ .option('-t, --type <type>', 'Knowledge type filter (for list)')
650
+ .option('--tags <tags>', 'Comma-separated tags (for list)')
651
+ .option('-l, --limit <number>', 'Limit number of results', '10')
652
+ .action(async (action, args, options) => {
653
+ initLogFile();
654
+ try {
655
+ await executeKnowledgeCommand(action, args, {
656
+ codebase: options.codebase,
657
+ type: options.type,
658
+ tags: options.tags ? options.tags.split(',') : undefined,
659
+ limit: options.limit ? parseInt(options.limit, 10) : undefined,
660
+ });
661
+ }
662
+ catch (err) {
663
+ console.error(error('Error:'), err instanceof Error ? err.message : String(err));
664
+ process.exit(1);
665
+ }
666
+ });
667
+ program
668
+ .command('learning')
669
+ .description('Learning dashboard - View patterns, knowledge, and insights')
670
+ .argument('<action>', 'Action: overview, patterns, knowledge, or insights')
671
+ .option('-c, --codebase <path>', 'Codebase path (default: current directory)')
672
+ .action(async (action, options) => {
673
+ initLogFile();
674
+ try {
675
+ await executeLearningDashboardCommand(action, options.codebase);
689
676
  }
690
677
  catch (err) {
691
678
  console.error(error('Error:'), err instanceof Error ? err.message : String(err));
@@ -899,61 +886,71 @@ program
899
886
  }
900
887
  });
901
888
  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) => {
889
+ .command('react')
890
+ .description('Execute query using ReAct loop (iterative reasoning with tools)')
891
+ .argument('<query>', 'The query to process with ReAct reasoning')
892
+ .addHelpText('after', `
893
+ Examples:
894
+ $ codehere react "How does authentication work in this codebase?"
895
+ $ codehere react "Find and explain the user login function"
896
+ $ codehere react "What files handle API requests?"
897
+
898
+ This command uses ReAct (Reasoning + Acting) pattern:
899
+ • Generates thoughts about the problem
900
+ • Takes actions (uses tools, searches code)
901
+ • Observes results
902
+ • Iterates until solution found
903
+ • Learns from memory of past experiences
904
+ `)
905
+ .action(async (query) => {
907
906
  initLogFile();
908
- 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;
917
- }
918
- sectionHeader('Available Templates');
919
- templates.forEach(t => {
920
- console.log(colors.cyan(` ${t}`));
921
- });
922
- newline();
923
- return;
924
- }
925
- console.log(colors.bold('Template:') + ' ' + colors.cyan(template));
926
- console.log(colors.bold('Target:') + ' ' + colors.cyan(targetDir));
907
+ if (!process.env.COHERE_API_KEY) {
927
908
  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
- });
949
- }
950
- else {
951
- newline();
952
- console.error(error('Scaffold failed'));
953
- console.log(colors.red(' ' + (result.error || 'Unknown error')));
954
- newline();
955
- process.exit(1);
956
- }
909
+ console.error(error('COHERE_API_KEY not found in environment'));
910
+ newline();
911
+ console.log(colors.bold('Setup Instructions:'));
912
+ console.log(' 1. Get your API key from: https://dashboard.cohere.com/api-keys');
913
+ console.log(' 2. Create a .env file in your project root:');
914
+ console.log(colors.cyan(' echo "COHERE_API_KEY=your_key_here" > .env'));
915
+ console.log(' 3. Run the command again');
916
+ newline();
917
+ process.exit(1);
918
+ }
919
+ try {
920
+ await executeReactCommand(query);
921
+ logEntry({
922
+ timestamp: new Date().toISOString(),
923
+ command: 'react',
924
+ query: query,
925
+ policyStatus: 'allowed',
926
+ });
927
+ }
928
+ catch (err) {
929
+ console.error(error('Error:'), err instanceof Error ? err.message : String(err));
930
+ process.exit(1);
931
+ }
932
+ });
933
+ program
934
+ .command('undo')
935
+ .description('Undo file changes by restoring from backups')
936
+ .argument('<action>', 'Action: undo, list, restore')
937
+ .argument('[filepath]', 'File path (required for undo/list)')
938
+ .argument('[backupPath]', 'Backup path (required for restore)')
939
+ .addHelpText('after', `
940
+ Examples:
941
+ $ codehere undo undo src/file.ts
942
+ $ codehere undo list src/file.ts
943
+ $ codehere undo restore src/file.ts .codehere/backups/file.ts.2024-12-30.backup
944
+
945
+ Actions:
946
+ undo - Restore file from most recent backup
947
+ list - List all available backups for a file
948
+ restore - Restore file from a specific backup path
949
+ `)
950
+ .action(async (action, filepath, backupPath) => {
951
+ initLogFile();
952
+ try {
953
+ await executeUndoCommand(action, filepath, backupPath);
957
954
  }
958
955
  catch (err) {
959
956
  console.error(error('Error:'), err instanceof Error ? err.message : String(err));