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/ARCHITECTURE.md DELETED
@@ -1,240 +0,0 @@
1
- # CodeHere Architecture
2
-
3
- This document provides a technical overview of CodeHere's architecture. For design decisions and roadmap, see `docs/CODEHERE_LIVING_DOC.md`.
4
-
5
- ## System Overview
6
-
7
- CodeHere is a local-first, CLI-based coding assistant that uses:
8
- - **Cohere AI** for embeddings and chat completion
9
- - **SQLite** (via sql.js) for local vector storage
10
- - **TypeScript** for type safety
11
- - **Commander.js** for CLI interface
12
-
13
- ## Core Architecture
14
-
15
- ### 1. Embeddings System
16
-
17
- **File:** `src/embed.ts`
18
-
19
- **Responsibilities:**
20
- - Recursively scan repository for text files
21
- - Chunk files into 300-token segments (50-token overlap)
22
- - Generate embeddings via Cohere API
23
- - Store in SQLite database (`data/embeddings.sqlite`)
24
-
25
- **Key Functions:**
26
- - `indexRepository()` - Main indexing function
27
- - `chunkText()` - Splits text into token-sized chunks
28
- - `embedText()` - Calls Cohere API with retry logic
29
- - `updateFileEmbeddings()` - Re-indexes a single file after edit
30
-
31
- **Incremental Indexing:**
32
- - Tracks file metadata (path, mtime, hash) in `file_metadata` table
33
- - Only re-indexes changed/new files
34
- - Removes deleted files from index
35
-
36
- ### 2. Search System
37
-
38
- **File:** `src/search.ts`
39
-
40
- **Responsibilities:**
41
- - Semantic search using cosine similarity
42
- - Intelligent context retrieval with ranking
43
- - File type prioritization
44
-
45
- **Key Functions:**
46
- - `searchSimilar()` - Basic cosine similarity search
47
- - `searchIntelligent()` - Enhanced search with:
48
- - File type prioritization (source files > docs)
49
- - Path heuristics (`src/` boost, `test/` penalty)
50
- - Exact filename matching (3x boost)
51
-
52
- **Search Flow:**
53
- 1. Embed query using Cohere API
54
- 2. Load all embeddings from SQLite
55
- 3. Calculate cosine similarity
56
- 4. Rank and boost results
57
- 5. Return top N chunks
58
-
59
- ### 3. Edit System
60
-
61
- **File:** `src/edit.ts`
62
-
63
- **Responsibilities:**
64
- - Generate unified diffs from natural language
65
- - Apply patches safely with validation
66
- - Never write broken files
67
-
68
- **Key Functions:**
69
- - `generateAndApplyEdit()` - Main edit function
70
- - `generateEditDryRun()` - Preview mode (no write)
71
- - `applyUnifiedDiff()` - Applies patch using `diff` package
72
- - `validateSyntax()` - Validates JS/TS syntax before write
73
- - `fixDuplicateExports()` - Post-processes module.exports
74
-
75
- **Safety Flow:**
76
- 1. Generate diff via Cohere API
77
- 2. Parse diff stats
78
- 3. Check policy (line limits, folders)
79
- 4. Apply patch to get new content
80
- 5. **Validate syntax** (JS/TS only)
81
- 6. **Only write if valid** (critical safety check)
82
- 7. Update embeddings asynchronously
83
-
84
- **Critical Safety Rule:**
85
- ```typescript
86
- // NEVER write if syntax is invalid
87
- if (!syntaxCheck.valid) {
88
- return { success: false, error: 'Syntax validation failed. File NOT modified.' };
89
- }
90
- writeFileSync(fullPath, newContent, 'utf-8'); // Only if valid
91
- ```
92
-
93
- ### 4. Policy System
94
-
95
- **File:** `src/policy.ts`
96
-
97
- **Responsibilities:**
98
- - Enforce safety guardrails
99
- - Prevent dangerous operations
100
-
101
- **Rules:**
102
- - Max 50 lines changed per edit
103
- - Blocks `infra/` and `billing/` folders
104
- - Single-file only (blocks multi-file patches)
105
-
106
- ### 5. Chat System
107
-
108
- **File:** `src/chat.ts`
109
-
110
- **Responsibilities:**
111
- - Cohere API integration
112
- - Error handling with retry logic
113
- - Circuit breaker pattern
114
-
115
- **Key Functions:**
116
- - `chatWithContext()` - Chat with code context
117
- - `generateDiff()` - Generate unified diff from instruction
118
-
119
- **Error Handling:**
120
- - Exponential backoff retry
121
- - Circuit breaker for API failures
122
- - Clear error messages
123
-
124
- ## Data Storage
125
-
126
- ### SQLite Database
127
-
128
- **Location:** `data/embeddings.sqlite`
129
-
130
- **Tables:**
131
- 1. `embeddings`
132
- - `id` (INTEGER PRIMARY KEY)
133
- - `filepath` (TEXT)
134
- - `chunkIndex` (INTEGER)
135
- - `content` (TEXT)
136
- - `embedding` (TEXT - JSON array)
137
-
138
- 2. `file_metadata`
139
- - `filepath` (TEXT PRIMARY KEY)
140
- - `mtime` (INTEGER)
141
- - `hash` (TEXT - MD5)
142
-
143
- **Indexes:**
144
- - `idx_filepath` on `embeddings(filepath)`
145
-
146
- ### Audit Logs
147
-
148
- **Location:** `data/logs.jsonl`
149
-
150
- **Format:** JSON Lines (one JSON object per line)
151
-
152
- **Fields:**
153
- - `timestamp` (ISO string)
154
- - `command` (string)
155
- - `query` (string, optional)
156
- - `filepath` (string, optional)
157
- - `diffStats` (object, optional)
158
- - `policyStatus` ('allowed' | 'rejected')
159
- - `retrievedFiles` (array, optional)
160
-
161
- ## CLI Structure
162
-
163
- **File:** `src/index.ts`
164
-
165
- **Commands:**
166
- - `codehere` (no args) - Interactive session
167
- - `codehere index` - Build embeddings index
168
- - `codehere ask "<question>"` - Semantic search + chat
169
- - `codehere explain <file>` - Explain a file
170
- - `codehere fix <file> "<instruction>"` - Edit a file
171
- - `codehere fix <file> "<instruction>" --dry-run` - Preview changes
172
- - `codehere scaffold <template> <targetDir>` - Scaffold app skeleton
173
- - `codehere debug-search "<query>"` - Debug search results
174
-
175
- ## Templates
176
-
177
- **Location:** `templates/`
178
-
179
- **Structure:**
180
- - Each template is a directory
181
- - Files are copied recursively to target directory
182
- - Templates are static (not LLM-generated)
183
-
184
- **Available Templates:**
185
- - `node-api` - Simple Node.js HTTP API
186
- - `next-page` - Minimal Next.js page
187
-
188
- ## Error Handling
189
-
190
- **Strategy:**
191
- - Retry with exponential backoff for API calls
192
- - Circuit breaker for repeated failures
193
- - Clear, actionable error messages
194
- - Never crash silently
195
-
196
- **Error Messages:**
197
- - Missing API key: Shows setup instructions
198
- - Missing embeddings DB: Shows how to run `index`
199
- - Syntax validation failure: Shows error details, file NOT modified
200
- - Policy rejection: Shows reason
201
-
202
- ## Testing
203
-
204
- **Location:** `tests/edit.test.ts`
205
-
206
- **Test Cases:**
207
- 1. Simple function rename
208
- 2. Add logging line
209
- 3. Add try/catch around async call
210
- 4. Edit file with comments
211
- 5. Add parameter with default
212
-
213
- **Run:** `npm test`
214
-
215
- ## Performance
216
-
217
- - **Indexing:** ~2 seconds per file (rate-limited by API)
218
- - **Search:** 5-8 seconds (API call + DB query)
219
- - **Edit:** 5-8 seconds (diff generation + validation)
220
- - **Token Optimization:** 64-83% reduction
221
-
222
- ## Security & Privacy
223
-
224
- - **Local-first:** Embeddings stored locally
225
- - **No code transmission:** Only chunks sent for embedding
226
- - **Audit logging:** Complete JSONL trail
227
- - **Policy enforcement:** Multiple safety checks
228
-
229
- ## Future Architecture (Tier 2+)
230
-
231
- See `docs/CODEHERE_LIVING_DOC.md` for roadmap:
232
- - Multi-file support
233
- - Project graph awareness
234
- - Test execution integration
235
- - VS Code extension
236
-
237
- ---
238
-
239
- For design decisions and roadmap, see `docs/CODEHERE_LIVING_DOC.md`.
240
-
package/CHANGELOG.md DELETED
@@ -1,44 +0,0 @@
1
- # Changelog
2
-
3
- All notable changes to CodeHere will be documented in this file.
4
-
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
-
8
- ## [0.1.0] - 2025-11-24
9
-
10
- ### Added
11
- - Core CLI commands: `index`, `ask`, `explain`, `fix`, `scaffold`
12
- - Local-first embeddings storage using SQLite
13
- - Semantic search with intelligent context retrieval
14
- - Single-file code editing with syntax validation
15
- - Policy guardrails (line limits, restricted folders)
16
- - Dry-run mode for previewing changes
17
- - Incremental indexing (only re-indexes changed files)
18
- - Template-based app scaffolding (`node-api`, `next-page`)
19
- - Integration test suite (5 test cases)
20
- - Comprehensive documentation (living doc, architecture, contributing guide)
21
-
22
- ### Safety Features
23
- - Syntax validation before writing files (JS/TS)
24
- - TypeScript type checking (`tsc --noEmit`)
25
- - Policy enforcement (max 50 lines, single-file only)
26
- - Audit logging (JSONL format)
27
- - Never writes broken files to disk
28
-
29
- ### Fixed
30
- - Module.exports handling on function renames
31
- - Temp file cleanup in syntax validation
32
- - Error handling for missing embeddings database
33
- - Search relevance (prioritizes source files, path heuristics)
34
-
35
- ### Documentation
36
- - Single living document (`docs/CODEHERE_LIVING_DOC.md`)
37
- - Architecture guide
38
- - Contributing guide
39
- - Changelog (this file)
40
-
41
- ---
42
-
43
- [0.1.0]: https://github.com/muhammadegaa/codehere/releases/tag/v0.1.0
44
-
package/CONTRIBUTING.md DELETED
@@ -1,171 +0,0 @@
1
- # Contributing to CodeHere
2
-
3
- Thank you for your interest in contributing to CodeHere! This guide will help you understand the architecture, development workflow, and how to make contributions.
4
-
5
- ## Architecture Overview
6
-
7
- CodeHere is a local-first, CLI-based coding assistant. See `docs/CODEHERE_LIVING_DOC.md` for the complete design and roadmap.
8
-
9
- ### Core Components
10
-
11
- 1. **Embeddings** (`src/embed.ts`)
12
- - Indexes files, chunks text, generates embeddings via Cohere API
13
- - Stores in local SQLite database
14
- - Supports incremental indexing (tracks file mtime + hash)
15
-
16
- 2. **Search** (`src/search.ts`)
17
- - Semantic search using cosine similarity
18
- - Intelligent context retrieval with file type prioritization
19
- - Path heuristics (prioritizes `src/`, penalizes `test/`)
20
-
21
- 3. **Edit** (`src/edit.ts`)
22
- - Generates unified diffs from natural language instructions
23
- - Applies patches with syntax validation
24
- - **Critical safety:** Never writes broken files to disk
25
-
26
- 4. **Policy** (`src/policy.ts`)
27
- - Enforces safety guardrails (line limits, restricted folders)
28
- - Single-file only (prevents accidental multi-file changes)
29
-
30
- 5. **Chat** (`src/chat.ts`)
31
- - Cohere API integration for chat and diff generation
32
- - Error handling with retry logic
33
-
34
- ### Data Flow
35
-
36
- ```
37
- User Command → Policy Check → Generate Diff → Apply Patch →
38
- Syntax Validation → Write File (only if valid) → Update Embeddings (async)
39
- ```
40
-
41
- ## Development Workflow
42
-
43
- ### Prerequisites
44
-
45
- - Node.js 18+
46
- - TypeScript 5.0+
47
- - Cohere API key (get from https://dashboard.cohere.com/api-keys)
48
-
49
- ### Setup
50
-
51
- ```bash
52
- # Clone the repository
53
- git clone https://github.com/muhammadegaa/codehere.git
54
- cd codehere/agent
55
-
56
- # Install dependencies
57
- npm install
58
-
59
- # Set up environment
60
- echo "COHERE_API_KEY=your_key_here" > .env
61
-
62
- # Build
63
- npm run build
64
-
65
- # Run tests
66
- npm test
67
- ```
68
-
69
- ### Development Commands
70
-
71
- ```bash
72
- # Build TypeScript
73
- npm run build
74
-
75
- # Run in development mode
76
- npm run dev
77
-
78
- # Run tests
79
- npm test
80
-
81
- # Install globally (for testing)
82
- npm install -g .
83
- ```
84
-
85
- ### Making Changes
86
-
87
- 1. **Create a branch:**
88
- ```bash
89
- git checkout -b feature/your-feature-name
90
- ```
91
-
92
- 2. **Make your changes:**
93
- - Follow existing code style
94
- - Add tests for new features
95
- - Update documentation if behavior changes
96
-
97
- 3. **Test your changes:**
98
- ```bash
99
- npm run build
100
- npm test
101
- ```
102
-
103
- 4. **Update documentation:**
104
- - If behavior changes, update `docs/CODEHERE_LIVING_DOC.md`
105
- - If CLI changes, update `README.md`
106
- - If architecture changes, update `ARCHITECTURE.md`
107
-
108
- 5. **Commit:**
109
- ```bash
110
- git commit -m "feat: add your feature"
111
- ```
112
-
113
- 6. **Push and create PR:**
114
- ```bash
115
- git push origin feature/your-feature-name
116
- ```
117
-
118
- ## Code Style
119
-
120
- - **TypeScript:** Use strict mode, prefer explicit types
121
- - **Imports:** Use ES modules (`import`/`export`)
122
- - **Error handling:** Always use try/catch, provide clear error messages
123
- - **Safety first:** Never write broken files, always validate before writing
124
-
125
- ## Testing
126
-
127
- - Integration tests in `tests/edit.test.ts`
128
- - Run with `npm test`
129
- - Add tests for new features or edge cases
130
-
131
- ## Documentation
132
-
133
- - **Living Doc:** `docs/CODEHERE_LIVING_DOC.md` - single source of truth
134
- - **Architecture:** `ARCHITECTURE.md` - technical details
135
- - **README:** User-facing documentation
136
- - **Changelog:** `CHANGELOG.md` - release notes
137
-
138
- **Important:** Always update the living doc when capabilities or behavior change.
139
-
140
- ## Safety Guidelines
141
-
142
- 1. **Never write broken files:**
143
- - Always validate syntax before writing
144
- - Use dry-run mode for testing
145
- - Rollback on validation failure
146
-
147
- 2. **Policy enforcement:**
148
- - Respect line limits (50 lines max)
149
- - Single-file only (for now)
150
- - Block restricted folders
151
-
152
- 3. **Error handling:**
153
- - Provide clear, actionable error messages
154
- - Log all operations for audit
155
- - Never crash silently
156
-
157
- ## Release Process
158
-
159
- 1. Update version in `package.json` (semver)
160
- 2. Update `CHANGELOG.md`
161
- 3. Update `docs/CODEHERE_LIVING_DOC.md` changelog section
162
- 4. Tag release: `git tag v0.1.0`
163
- 5. Publish: `npm publish --access public`
164
-
165
- ## Questions?
166
-
167
- - Open an issue on GitHub
168
- - Check `docs/CODEHERE_LIVING_DOC.md` for design decisions
169
- - Review `ARCHITECTURE.md` for technical details
170
-
171
- Thank you for contributing! 🚀
@@ -1,39 +0,0 @@
1
- /**
2
- * Benchmark Testing Framework
3
- * Compare CodeHere with Claude Code on real scenarios
4
- */
5
- export interface BenchmarkResult {
6
- scenario: string;
7
- agent: 'codehere' | 'claude-code';
8
- success: boolean;
9
- accuracy: number;
10
- speed: number;
11
- completeness: number;
12
- codeQuality: number;
13
- understanding: number;
14
- errors: string[];
15
- notes: string;
16
- }
17
- export interface BenchmarkScenario {
18
- name: string;
19
- description: string;
20
- setup: () => Promise<{
21
- filepath: string;
22
- content: string;
23
- }>;
24
- test: (filepath: string) => Promise<BenchmarkResult>;
25
- cleanup: (filepath: string) => Promise<void>;
26
- }
27
- /**
28
- * Scenario 1: Simple Function Rename
29
- */
30
- export declare const scenario1: BenchmarkScenario;
31
- /**
32
- * Scenario 2: Explain Code
33
- */
34
- export declare const scenario2: BenchmarkScenario;
35
- /**
36
- * Run all benchmarks
37
- */
38
- export declare function runBenchmarks(): Promise<BenchmarkResult[]>;
39
- //# sourceMappingURL=benchmark.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"benchmark.d.ts","sourceRoot":"","sources":["../src/benchmark.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,GAAG,aAAa,CAAC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IACrD,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,iBA0FvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,iBA6EvB,CAAC;AAcF;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAgBhE"}
package/dist/benchmark.js DELETED
@@ -1,195 +0,0 @@
1
- /**
2
- * Benchmark Testing Framework
3
- * Compare CodeHere with Claude Code on real scenarios
4
- */
5
- import { readFileSync, writeFileSync, existsSync } from 'fs';
6
- import { generateAndApplyEdit } from './edit.js';
7
- import { chatWithContext } from './chat.js';
8
- import { searchIntelligent } from './search.js';
9
- /**
10
- * Scenario 1: Simple Function Rename
11
- */
12
- export const scenario1 = {
13
- name: 'Simple Function Rename',
14
- description: 'Rename function calculateSum to addNumbers',
15
- setup: async () => {
16
- const filepath = 'test/benchmark_scenario1.js';
17
- const content = `function calculateSum(a, b) {
18
- return a + b;
19
- }
20
-
21
- function otherFunction() {
22
- return calculateSum(1, 2);
23
- }
24
-
25
- module.exports = { calculateSum, otherFunction };
26
- `;
27
- writeFileSync(filepath, content, 'utf-8');
28
- return { filepath, content };
29
- },
30
- test: async (filepath) => {
31
- const startTime = Date.now();
32
- try {
33
- const result = await generateAndApplyEdit(filepath, 'Rename function calculateSum to addNumbers');
34
- const speed = (Date.now() - startTime) / 1000;
35
- if (!result.success) {
36
- return {
37
- scenario: 'Simple Function Rename',
38
- agent: 'codehere',
39
- success: false,
40
- accuracy: 0,
41
- speed,
42
- completeness: 0,
43
- codeQuality: 0,
44
- understanding: 0,
45
- errors: [result.error || 'Unknown error'],
46
- notes: 'Edit failed',
47
- };
48
- }
49
- // Verify the result
50
- const newContent = readFileSync(filepath, 'utf-8');
51
- const hasNewName = newContent.includes('function addNumbers');
52
- const hasOldName = newContent.includes('function calculateSum');
53
- const hasNewExport = newContent.includes('addNumbers');
54
- const hasOldExport = newContent.includes('calculateSum');
55
- const isValidSyntax = checkSyntax(newContent);
56
- // Calculate scores
57
- const accuracy = (hasNewName && !hasOldName && hasNewExport && !hasOldExport) ? 100 : 0;
58
- const completeness = (hasNewName && hasNewExport) ? 100 : 50;
59
- const codeQuality = isValidSyntax ? 100 : 0;
60
- const understanding = (hasNewName && !hasOldName) ? 100 : 50;
61
- return {
62
- scenario: 'Simple Function Rename',
63
- agent: 'codehere',
64
- success: result.success,
65
- accuracy,
66
- speed,
67
- completeness,
68
- codeQuality,
69
- understanding,
70
- errors: isValidSyntax ? [] : ['Syntax error'],
71
- notes: `Renamed: ${hasNewName}, Exports: ${hasNewExport}`,
72
- };
73
- }
74
- catch (error) {
75
- return {
76
- scenario: 'Simple Function Rename',
77
- agent: 'codehere',
78
- success: false,
79
- accuracy: 0,
80
- speed: (Date.now() - startTime) / 1000,
81
- completeness: 0,
82
- codeQuality: 0,
83
- understanding: 0,
84
- errors: [error instanceof Error ? error.message : String(error)],
85
- notes: 'Exception thrown',
86
- };
87
- }
88
- },
89
- cleanup: async (filepath) => {
90
- if (existsSync(filepath)) {
91
- // Restore original or delete
92
- }
93
- },
94
- };
95
- /**
96
- * Scenario 2: Explain Code
97
- */
98
- export const scenario2 = {
99
- name: 'Explain Code',
100
- description: 'Explain what a function does',
101
- setup: async () => {
102
- const filepath = 'test/benchmark_scenario2.js';
103
- const content = `function complexFunction(arr) {
104
- if (!Array.isArray(arr) || arr.length === 0) return null;
105
-
106
- const result = arr
107
- .filter(x => x > 0)
108
- .map(x => x * 2)
109
- .reduce((sum, x) => sum + x, 0);
110
-
111
- return result > 100 ? result : null;
112
- }
113
- `;
114
- writeFileSync(filepath, content, 'utf-8');
115
- return { filepath, content };
116
- },
117
- test: async (filepath) => {
118
- const startTime = Date.now();
119
- try {
120
- const searchResult = await searchIntelligent(`What does complexFunction in ${filepath} do?`);
121
- const response = await chatWithContext(`What does complexFunction in ${filepath} do?`, searchResult.chunks);
122
- const speed = (Date.now() - startTime) / 1000;
123
- // Check if response mentions key concepts
124
- const mentionsFilter = response.toLowerCase().includes('filter');
125
- const mentionsMap = response.toLowerCase().includes('map');
126
- const mentionsReduce = response.toLowerCase().includes('reduce');
127
- const mentionsNull = response.toLowerCase().includes('null');
128
- const mentionsArray = response.toLowerCase().includes('array');
129
- const accuracy = (mentionsFilter && mentionsMap && mentionsReduce) ? 100 : 50;
130
- const completeness = (mentionsFilter && mentionsMap && mentionsReduce && mentionsNull) ? 100 : 75;
131
- const understanding = (mentionsArray && (mentionsFilter || mentionsMap)) ? 100 : 50;
132
- return {
133
- scenario: 'Explain Code',
134
- agent: 'codehere',
135
- success: true,
136
- accuracy,
137
- speed,
138
- completeness,
139
- codeQuality: 0, // N/A for explanations
140
- understanding,
141
- errors: [],
142
- notes: `Response length: ${response.length} chars`,
143
- };
144
- }
145
- catch (error) {
146
- return {
147
- scenario: 'Explain Code',
148
- agent: 'codehere',
149
- success: false,
150
- accuracy: 0,
151
- speed: (Date.now() - startTime) / 1000,
152
- completeness: 0,
153
- codeQuality: 0,
154
- understanding: 0,
155
- errors: [error instanceof Error ? error.message : String(error)],
156
- notes: 'Exception thrown',
157
- };
158
- }
159
- },
160
- cleanup: async (filepath) => {
161
- if (existsSync(filepath)) {
162
- // Cleanup
163
- }
164
- },
165
- };
166
- /**
167
- * Check JavaScript syntax
168
- */
169
- function checkSyntax(content) {
170
- try {
171
- new Function(content);
172
- return true;
173
- }
174
- catch {
175
- return false;
176
- }
177
- }
178
- /**
179
- * Run all benchmarks
180
- */
181
- export async function runBenchmarks() {
182
- const results = [];
183
- // Run scenario 1
184
- const setup1 = await scenario1.setup();
185
- const result1 = await scenario1.test(setup1.filepath);
186
- results.push(result1);
187
- await scenario1.cleanup(setup1.filepath);
188
- // Run scenario 2
189
- const setup2 = await scenario2.setup();
190
- const result2 = await scenario2.test(setup2.filepath);
191
- results.push(result2);
192
- await scenario2.cleanup(setup2.filepath);
193
- return results;
194
- }
195
- //# sourceMappingURL=benchmark.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"benchmark.js","sourceRoot":"","sources":["../src/benchmark.ts"],"names":[],"mappings":"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"}