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
@@ -0,0 +1,249 @@
1
+ /**
2
+ * Infrastructure: SQLitePatternRepository
3
+ * Implements IPatternRepository using SQLite
4
+ */
5
+ import { readFileSync, existsSync, mkdirSync, writeFileSync } from 'fs';
6
+ import { join, dirname } from 'path';
7
+ import { fileURLToPath } from 'url';
8
+ import initSqlJs from 'sql.js';
9
+ import { randomUUID } from 'crypto';
10
+ function getDbPath() {
11
+ const __filename = fileURLToPath(import.meta.url);
12
+ const __dirname = dirname(__filename);
13
+ const agentDir = join(__dirname, '../../..');
14
+ if (existsSync(join(agentDir, 'package.json'))) {
15
+ return join(agentDir, 'data', 'patterns.sqlite');
16
+ }
17
+ return join(process.cwd(), 'agent', 'data', 'patterns.sqlite');
18
+ }
19
+ export class SQLitePatternRepository {
20
+ dbPath;
21
+ db = null;
22
+ constructor() {
23
+ this.dbPath = getDbPath();
24
+ }
25
+ async getDb() {
26
+ if (this.db)
27
+ return this.db;
28
+ const SQL = await initSqlJs();
29
+ const dbDir = dirname(this.dbPath);
30
+ if (!existsSync(dbDir)) {
31
+ mkdirSync(dbDir, { recursive: true });
32
+ }
33
+ if (existsSync(this.dbPath)) {
34
+ const buffer = readFileSync(this.dbPath);
35
+ this.db = new SQL.Database(buffer);
36
+ }
37
+ else {
38
+ this.db = new SQL.Database();
39
+ }
40
+ // Create patterns table
41
+ this.db.run(`
42
+ CREATE TABLE IF NOT EXISTS patterns (
43
+ id TEXT PRIMARY KEY,
44
+ codebaseId TEXT NOT NULL,
45
+ type TEXT NOT NULL,
46
+ name TEXT NOT NULL,
47
+ description TEXT NOT NULL,
48
+ codeExample TEXT,
49
+ filepath TEXT,
50
+ lineStart INTEGER,
51
+ lineEnd INTEGER,
52
+ metadata TEXT,
53
+ createdAt INTEGER NOT NULL,
54
+ lastUsed INTEGER,
55
+ usageCount INTEGER NOT NULL DEFAULT 0
56
+ )
57
+ `);
58
+ // Create indexes for efficient queries
59
+ this.db.run(`
60
+ CREATE INDEX IF NOT EXISTS idx_codebase ON patterns(codebaseId)
61
+ `);
62
+ this.db.run(`
63
+ CREATE INDEX IF NOT EXISTS idx_type ON patterns(codebaseId, type)
64
+ `);
65
+ this.db.run(`
66
+ CREATE INDEX IF NOT EXISTS idx_usage ON patterns(codebaseId, usageCount DESC)
67
+ `);
68
+ this.db.run(`
69
+ CREATE INDEX IF NOT EXISTS idx_created ON patterns(codebaseId, createdAt DESC)
70
+ `);
71
+ return this.db;
72
+ }
73
+ async store(pattern) {
74
+ const db = await this.getDb();
75
+ // Ensure pattern has an ID
76
+ if (!pattern.id) {
77
+ pattern.id = randomUUID();
78
+ }
79
+ const stmt = db.prepare(`
80
+ INSERT OR REPLACE INTO patterns
81
+ (id, codebaseId, type, name, description, codeExample, filepath,
82
+ lineStart, lineEnd, metadata, createdAt, lastUsed, usageCount)
83
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
84
+ `);
85
+ // Ensure all values are properly typed (no undefined)
86
+ stmt.run([
87
+ pattern.id,
88
+ pattern.codebaseId,
89
+ pattern.type,
90
+ pattern.name,
91
+ pattern.description,
92
+ pattern.codeExample ?? null,
93
+ pattern.filepath ?? null,
94
+ pattern.lineNumbers?.start ?? null,
95
+ pattern.lineNumbers?.end ?? null,
96
+ JSON.stringify(pattern.metadata || {}),
97
+ pattern.createdAt.getTime(),
98
+ pattern.lastUsed ? pattern.lastUsed.getTime() : null,
99
+ pattern.usageCount ?? 0,
100
+ ]);
101
+ stmt.free();
102
+ this.saveDb();
103
+ }
104
+ async getById(id) {
105
+ const db = await this.getDb();
106
+ const stmt = db.prepare('SELECT * FROM patterns WHERE id = ?');
107
+ stmt.bind([id]);
108
+ if (!stmt.step()) {
109
+ stmt.free();
110
+ return null;
111
+ }
112
+ const row = stmt.getAsObject();
113
+ stmt.free();
114
+ return this.rowToPattern(row);
115
+ }
116
+ async findByCodebase(codebaseId) {
117
+ const db = await this.getDb();
118
+ const stmt = db.prepare(`
119
+ SELECT * FROM patterns
120
+ WHERE codebaseId = ?
121
+ ORDER BY createdAt DESC
122
+ `);
123
+ stmt.bind([codebaseId]);
124
+ const patterns = [];
125
+ while (stmt.step()) {
126
+ const row = stmt.getAsObject();
127
+ patterns.push(this.rowToPattern(row));
128
+ }
129
+ stmt.free();
130
+ return patterns;
131
+ }
132
+ async findByType(codebaseId, type) {
133
+ const db = await this.getDb();
134
+ const stmt = db.prepare(`
135
+ SELECT * FROM patterns
136
+ WHERE codebaseId = ? AND type = ?
137
+ ORDER BY createdAt DESC
138
+ `);
139
+ stmt.bind([codebaseId, type]);
140
+ const patterns = [];
141
+ while (stmt.step()) {
142
+ const row = stmt.getAsObject();
143
+ patterns.push(this.rowToPattern(row));
144
+ }
145
+ stmt.free();
146
+ return patterns;
147
+ }
148
+ async search(codebaseId, query, limit = 10) {
149
+ const db = await this.getDb();
150
+ const searchTerm = `%${query.toLowerCase()}%`;
151
+ const stmt = db.prepare(`
152
+ SELECT * FROM patterns
153
+ WHERE codebaseId = ?
154
+ AND (LOWER(name) LIKE ? OR LOWER(description) LIKE ?)
155
+ ORDER BY usageCount DESC, createdAt DESC
156
+ LIMIT ?
157
+ `);
158
+ stmt.bind([codebaseId, searchTerm, searchTerm, limit]);
159
+ const patterns = [];
160
+ while (stmt.step()) {
161
+ const row = stmt.getAsObject();
162
+ patterns.push(this.rowToPattern(row));
163
+ }
164
+ stmt.free();
165
+ return patterns;
166
+ }
167
+ async update(pattern) {
168
+ await this.store(pattern);
169
+ }
170
+ async delete(id) {
171
+ const db = await this.getDb();
172
+ const stmt = db.prepare('DELETE FROM patterns WHERE id = ?');
173
+ stmt.bind([id]);
174
+ stmt.step();
175
+ stmt.free();
176
+ this.saveDb();
177
+ }
178
+ async getMostUsed(codebaseId, limit = 10) {
179
+ const db = await this.getDb();
180
+ const stmt = db.prepare(`
181
+ SELECT * FROM patterns
182
+ WHERE codebaseId = ?
183
+ ORDER BY usageCount DESC, createdAt DESC
184
+ LIMIT ?
185
+ `);
186
+ stmt.bind([codebaseId, limit]);
187
+ const patterns = [];
188
+ while (stmt.step()) {
189
+ const row = stmt.getAsObject();
190
+ patterns.push(this.rowToPattern(row));
191
+ }
192
+ stmt.free();
193
+ return patterns;
194
+ }
195
+ async getRecent(codebaseId, limit = 10) {
196
+ const db = await this.getDb();
197
+ const stmt = db.prepare(`
198
+ SELECT * FROM patterns
199
+ WHERE codebaseId = ?
200
+ ORDER BY createdAt DESC
201
+ LIMIT ?
202
+ `);
203
+ stmt.bind([codebaseId, limit]);
204
+ const patterns = [];
205
+ while (stmt.step()) {
206
+ const row = stmt.getAsObject();
207
+ patterns.push(this.rowToPattern(row));
208
+ }
209
+ stmt.free();
210
+ return patterns;
211
+ }
212
+ async getByTags(codebaseId, tags) {
213
+ // SQLite doesn't have great JSON support, so we'll filter in memory
214
+ // For production, consider storing tags in a separate table
215
+ const allPatterns = await this.findByCodebase(codebaseId);
216
+ return allPatterns.filter(pattern => {
217
+ const patternTags = pattern.metadata?.tags || [];
218
+ return tags.some(tag => patternTags.includes(tag));
219
+ });
220
+ }
221
+ rowToPattern(row) {
222
+ const metadata = JSON.parse(row.metadata || '{}');
223
+ return {
224
+ id: row.id,
225
+ codebaseId: row.codebaseId,
226
+ type: row.type,
227
+ name: row.name,
228
+ description: row.description,
229
+ codeExample: row.codeExample || undefined,
230
+ filepath: row.filepath || undefined,
231
+ lineNumbers: row.lineStart && row.lineEnd ? {
232
+ start: row.lineStart,
233
+ end: row.lineEnd,
234
+ } : undefined,
235
+ metadata: Object.keys(metadata).length > 0 ? metadata : undefined,
236
+ createdAt: new Date(row.createdAt),
237
+ lastUsed: row.lastUsed ? new Date(row.lastUsed) : undefined,
238
+ usageCount: row.usageCount || 0,
239
+ };
240
+ }
241
+ saveDb() {
242
+ if (!this.db)
243
+ return;
244
+ const data = this.db.export();
245
+ const buffer = Buffer.from(data);
246
+ writeFileSync(this.dbPath, buffer);
247
+ }
248
+ }
249
+ //# sourceMappingURL=sqlite-pattern-repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-pattern-repository.js","sourceRoot":"","sources":["../../../src/infrastructure/storage/sqlite-pattern-repository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Infrastructure: Appropriate Friction System
3
+ *
4
+ * Intentionally inserts slowdowns at critical junctures to encourage human review
5
+ * Research: Appropriate friction at high-risk moments prevents rubber-stamp reviews
6
+ *
7
+ * Features:
8
+ * - Risk-based friction points
9
+ * - Review checkpoints before critical operations
10
+ * - Pause for reflection on high-risk changes
11
+ * - Confirmation dialogs for destructive actions
12
+ */
13
+ export type FrictionType = 'pause' | 'confirmation' | 'review_checkpoint' | 'warning_display';
14
+ export type FrictionLevel = 'none' | 'light' | 'moderate' | 'heavy';
15
+ export interface FrictionPoint {
16
+ id: string;
17
+ type: FrictionType;
18
+ level: FrictionLevel;
19
+ operation: string;
20
+ message: string;
21
+ requiresExplicitConfirmation: boolean;
22
+ timeout?: number;
23
+ options?: string[];
24
+ }
25
+ export interface FrictionResult {
26
+ proceed: boolean;
27
+ action: string;
28
+ timestamp: number;
29
+ userResponse?: string;
30
+ }
31
+ /**
32
+ * Appropriate Friction System
33
+ * Manages friction points to ensure human review at critical moments
34
+ */
35
+ export declare class AppropriateFriction {
36
+ private frictionPoints;
37
+ private frictionHistory;
38
+ constructor();
39
+ /**
40
+ * Check if friction is needed for an operation
41
+ */
42
+ needsFriction(operation: string, context: {
43
+ riskLevel?: 'low' | 'medium' | 'high' | 'critical';
44
+ isDestructive?: boolean;
45
+ affectsMultipleFiles?: boolean;
46
+ modifiesSecuritySensitiveCode?: boolean;
47
+ uncertainty?: number;
48
+ }): FrictionPoint | null;
49
+ /**
50
+ * Apply friction point (in real implementation, this would be UI-based)
51
+ * For CLI, we simulate with prompts and pauses
52
+ */
53
+ applyFriction(frictionPoint: FrictionPoint, autoProceed?: boolean): Promise<FrictionResult>;
54
+ /**
55
+ * Format friction point for display
56
+ */
57
+ formatFrictionPoint(frictionPoint: FrictionPoint): string;
58
+ /**
59
+ * Get friction history for audit
60
+ */
61
+ getFrictionHistory(filter?: {
62
+ operation?: string;
63
+ type?: FrictionType;
64
+ startTime?: number;
65
+ endTime?: number;
66
+ }): Array<{
67
+ point: FrictionPoint;
68
+ result: FrictionResult;
69
+ }>;
70
+ /**
71
+ * Register custom friction point
72
+ */
73
+ registerFrictionPoint(point: FrictionPoint): void;
74
+ private createFrictionPoint;
75
+ private initializeDefaultFrictionPoints;
76
+ }
77
+ //# sourceMappingURL=appropriate-friction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appropriate-friction.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/ux/appropriate-friction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,cAAc,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;AAC9F,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;AAEpE,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B,EAAE,OAAO,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,cAAc,CAAyC;IAC/D,OAAO,CAAC,eAAe,CAA+D;;IAMtF;;OAEG;IACH,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;QACP,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;QACnD,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,6BAA6B,CAAC,EAAE,OAAO,CAAC;QACxC,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GACA,aAAa,GAAG,IAAI;IA4FvB;;;OAGG;IACG,aAAa,CACjB,aAAa,EAAE,aAAa,EAC5B,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,cAAc,CAAC;IA0B1B;;OAEG;IACH,mBAAmB,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM;IAuBzD;;OAEG;IACH,kBAAkB,CAAC,MAAM,CAAC,EAAE;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,YAAY,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,KAAK,CAAC;QAAE,KAAK,EAAE,aAAa,CAAC;QAAC,MAAM,EAAE,cAAc,CAAA;KAAE,CAAC;IAsB3D;;OAEG;IACH,qBAAqB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAMjD,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,+BAA+B;CAkCxC"}
@@ -0,0 +1,213 @@
1
+ /**
2
+ * Infrastructure: Appropriate Friction System
3
+ *
4
+ * Intentionally inserts slowdowns at critical junctures to encourage human review
5
+ * Research: Appropriate friction at high-risk moments prevents rubber-stamp reviews
6
+ *
7
+ * Features:
8
+ * - Risk-based friction points
9
+ * - Review checkpoints before critical operations
10
+ * - Pause for reflection on high-risk changes
11
+ * - Confirmation dialogs for destructive actions
12
+ */
13
+ /**
14
+ * Appropriate Friction System
15
+ * Manages friction points to ensure human review at critical moments
16
+ */
17
+ export class AppropriateFriction {
18
+ frictionPoints = new Map();
19
+ frictionHistory = [];
20
+ constructor() {
21
+ this.initializeDefaultFrictionPoints();
22
+ }
23
+ /**
24
+ * Check if friction is needed for an operation
25
+ */
26
+ needsFriction(operation, context) {
27
+ const { riskLevel = 'medium', isDestructive = false, affectsMultipleFiles = false, modifiesSecuritySensitiveCode = false, uncertainty = 0.5, } = context;
28
+ // Critical operations always need friction
29
+ if (riskLevel === 'critical') {
30
+ return this.createFrictionPoint({
31
+ id: `${operation}-critical`,
32
+ type: 'review_checkpoint',
33
+ level: 'heavy',
34
+ operation,
35
+ message: '⚠️ CRITICAL OPERATION: This requires mandatory human review before proceeding.',
36
+ requiresExplicitConfirmation: true,
37
+ options: ['review', 'cancel'],
38
+ });
39
+ }
40
+ // Destructive operations need confirmation
41
+ if (isDestructive) {
42
+ return this.createFrictionPoint({
43
+ id: `${operation}-destructive`,
44
+ type: 'confirmation',
45
+ level: 'moderate',
46
+ operation,
47
+ message: '⚠️ Destructive operation detected. This action cannot be easily undone. Please confirm.',
48
+ requiresExplicitConfirmation: true,
49
+ options: ['proceed', 'cancel'],
50
+ });
51
+ }
52
+ // High-risk operations need pause
53
+ if (riskLevel === 'high') {
54
+ return this.createFrictionPoint({
55
+ id: `${operation}-high-risk`,
56
+ type: 'pause',
57
+ level: 'moderate',
58
+ operation,
59
+ message: '⏸️ High-risk operation detected. Pausing for review (3 seconds)...',
60
+ requiresExplicitConfirmation: false,
61
+ timeout: 3000,
62
+ options: ['proceed', 'review'],
63
+ });
64
+ }
65
+ // Multi-file operations need review checkpoint
66
+ if (affectsMultipleFiles && riskLevel !== 'low') {
67
+ return this.createFrictionPoint({
68
+ id: `${operation}-multi-file`,
69
+ type: 'review_checkpoint',
70
+ level: 'moderate',
71
+ operation,
72
+ message: '📝 Multi-file operation detected. Review the plan before proceeding.',
73
+ requiresExplicitConfirmation: true,
74
+ options: ['proceed', 'review', 'cancel'],
75
+ });
76
+ }
77
+ // Security-sensitive operations need heavy friction
78
+ if (modifiesSecuritySensitiveCode) {
79
+ return this.createFrictionPoint({
80
+ id: `${operation}-security`,
81
+ type: 'review_checkpoint',
82
+ level: 'heavy',
83
+ operation,
84
+ message: '🔒 Security-sensitive code modification. Mandatory review required.',
85
+ requiresExplicitConfirmation: true,
86
+ options: ['review', 'cancel'],
87
+ });
88
+ }
89
+ // High uncertainty needs warning
90
+ if (uncertainty > 0.7 && riskLevel !== 'low') {
91
+ return this.createFrictionPoint({
92
+ id: `${operation}-uncertainty`,
93
+ type: 'warning_display',
94
+ level: 'light',
95
+ operation,
96
+ message: '⚠️ High uncertainty detected. Verify output carefully.',
97
+ requiresExplicitConfirmation: false,
98
+ timeout: 2000,
99
+ options: ['proceed'],
100
+ });
101
+ }
102
+ return null; // No friction needed
103
+ }
104
+ /**
105
+ * Apply friction point (in real implementation, this would be UI-based)
106
+ * For CLI, we simulate with prompts and pauses
107
+ */
108
+ async applyFriction(frictionPoint, autoProceed = false) {
109
+ // In production, this would:
110
+ // - Display UI dialog for confirmation
111
+ // - Show review checkpoint
112
+ // - Pause execution
113
+ // - Wait for user input
114
+ // For CLI/simulation, we log and return decision
115
+ const result = {
116
+ proceed: autoProceed || frictionPoint.type === 'warning_display',
117
+ action: autoProceed ? 'auto-proceed' : 'pending',
118
+ timestamp: Date.now(),
119
+ };
120
+ // Store in history
121
+ this.frictionHistory.push({
122
+ point: frictionPoint,
123
+ result,
124
+ });
125
+ // Store friction point
126
+ this.frictionPoints.set(frictionPoint.id, frictionPoint);
127
+ return result;
128
+ }
129
+ /**
130
+ * Format friction point for display
131
+ */
132
+ formatFrictionPoint(frictionPoint) {
133
+ let output = '';
134
+ output += `\n${'═'.repeat(80)}\n`;
135
+ output += `${frictionPoint.message}\n`;
136
+ output += `${'═'.repeat(80)}\n`;
137
+ if (frictionPoint.options && frictionPoint.options.length > 1) {
138
+ output += `\nAvailable actions: ${frictionPoint.options.join(', ')}\n`;
139
+ }
140
+ if (frictionPoint.timeout) {
141
+ output += `(Auto-proceeding in ${frictionPoint.timeout / 1000}s if no response)\n`;
142
+ }
143
+ if (frictionPoint.requiresExplicitConfirmation) {
144
+ output += `⚠️ Explicit confirmation required\n`;
145
+ }
146
+ output += `${'═'.repeat(80)}\n`;
147
+ return output;
148
+ }
149
+ /**
150
+ * Get friction history for audit
151
+ */
152
+ getFrictionHistory(filter) {
153
+ let filtered = [...this.frictionHistory];
154
+ if (filter?.operation) {
155
+ filtered = filtered.filter(item => item.point.operation === filter.operation);
156
+ }
157
+ if (filter?.type) {
158
+ filtered = filtered.filter(item => item.point.type === filter.type);
159
+ }
160
+ if (filter?.startTime) {
161
+ filtered = filtered.filter(item => item.result.timestamp >= filter.startTime);
162
+ }
163
+ if (filter?.endTime) {
164
+ filtered = filtered.filter(item => item.result.timestamp <= filter.endTime);
165
+ }
166
+ return filtered.sort((a, b) => b.result.timestamp - a.result.timestamp);
167
+ }
168
+ /**
169
+ * Register custom friction point
170
+ */
171
+ registerFrictionPoint(point) {
172
+ this.frictionPoints.set(point.id, point);
173
+ }
174
+ // Private helpers
175
+ createFrictionPoint(point) {
176
+ return {
177
+ ...point,
178
+ };
179
+ }
180
+ initializeDefaultFrictionPoints() {
181
+ // Critical operations
182
+ this.registerFrictionPoint({
183
+ id: 'default-critical',
184
+ type: 'review_checkpoint',
185
+ level: 'heavy',
186
+ operation: 'critical',
187
+ message: 'Critical operation detected - human review required',
188
+ requiresExplicitConfirmation: true,
189
+ options: ['review', 'cancel'],
190
+ });
191
+ // Destructive operations
192
+ this.registerFrictionPoint({
193
+ id: 'default-destructive',
194
+ type: 'confirmation',
195
+ level: 'moderate',
196
+ operation: 'destructive',
197
+ message: 'Destructive operation - cannot be easily undone',
198
+ requiresExplicitConfirmation: true,
199
+ options: ['proceed', 'cancel'],
200
+ });
201
+ // Security modifications
202
+ this.registerFrictionPoint({
203
+ id: 'default-security',
204
+ type: 'review_checkpoint',
205
+ level: 'heavy',
206
+ operation: 'security',
207
+ message: 'Security-sensitive code modification - mandatory review',
208
+ requiresExplicitConfirmation: true,
209
+ options: ['review', 'cancel'],
210
+ });
211
+ }
212
+ }
213
+ //# sourceMappingURL=appropriate-friction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appropriate-friction.js","sourceRoot":"","sources":["../../../src/infrastructure/ux/appropriate-friction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Infrastructure: Bi-directional Learning System
3
+ *
4
+ * Continuous refinement of AI models based on explicit and implicit user feedback
5
+ * Research: Bi-directional learning from user corrections, adapt to team preferences
6
+ *
7
+ * Features:
8
+ * - Edit/deletion tracking
9
+ * - Personalization engine
10
+ * - Learning from user corrections
11
+ * - Preference adaptation
12
+ */
13
+ export type FeedbackType = 'edit' | 'deletion' | 'addition' | 'refactor' | 'revert' | 'explicit_feedback';
14
+ export type FeedbackSignal = 'positive' | 'negative' | 'neutral';
15
+ export interface UserFeedback {
16
+ feedbackId: string;
17
+ type: FeedbackType;
18
+ signal: FeedbackSignal;
19
+ originalCode?: string;
20
+ modifiedCode?: string;
21
+ filepath: string;
22
+ timestamp: number;
23
+ context: {
24
+ query?: string;
25
+ generatedBy?: string;
26
+ sessionId?: string;
27
+ };
28
+ metadata?: {
29
+ userReason?: string;
30
+ explicitFeedback?: string;
31
+ [key: string]: any;
32
+ };
33
+ }
34
+ export interface LearningPattern {
35
+ patternId: string;
36
+ type: 'style' | 'preference' | 'correction' | 'pattern';
37
+ pattern: string;
38
+ confidence: number;
39
+ occurrences: number;
40
+ examples: string[];
41
+ createdAt: number;
42
+ lastSeen: number;
43
+ }
44
+ export interface UserPreferences {
45
+ userId: string;
46
+ preferences: {
47
+ codeStyle?: {
48
+ indentation?: 'spaces' | 'tabs';
49
+ spacing?: 'compact' | 'standard' | 'loose';
50
+ naming?: 'camelCase' | 'snake_case' | 'PascalCase';
51
+ quotes?: 'single' | 'double' | 'backtick';
52
+ };
53
+ patterns?: {
54
+ preferred?: string[];
55
+ avoided?: string[];
56
+ };
57
+ corrections?: LearningPattern[];
58
+ };
59
+ learnedAt: number;
60
+ lastUpdated: number;
61
+ }
62
+ /**
63
+ * Bi-directional Learning System
64
+ * Learns from user edits, deletions, and explicit feedback
65
+ */
66
+ export declare class BiDirectionalLearning {
67
+ private feedbackHistory;
68
+ private learningPatterns;
69
+ private userPreferences;
70
+ /**
71
+ * Record user feedback (edit, deletion, etc.)
72
+ */
73
+ recordFeedback(userId: string, feedback: Omit<UserFeedback, 'feedbackId' | 'timestamp'>): string;
74
+ /**
75
+ * Record explicit feedback (thumbs up/down, comments)
76
+ */
77
+ recordExplicitFeedback(userId: string, feedback: {
78
+ signal: FeedbackSignal;
79
+ message?: string;
80
+ codeExample?: string;
81
+ context?: Record<string, any>;
82
+ }): string;
83
+ /**
84
+ * Get user preferences
85
+ */
86
+ getUserPreferences(userId: string): UserPreferences;
87
+ /**
88
+ * Get learned patterns for user
89
+ */
90
+ getLearnedPatterns(userId: string): LearningPattern[];
91
+ /**
92
+ * Apply learned preferences to code generation
93
+ */
94
+ applyPreferences(userId: string, code: string): string;
95
+ /**
96
+ * Get feedback history for user
97
+ */
98
+ getFeedbackHistory(userId: string, filter?: {
99
+ type?: FeedbackType;
100
+ signal?: FeedbackSignal;
101
+ startTime?: number;
102
+ endTime?: number;
103
+ }): UserFeedback[];
104
+ private learnFromFeedback;
105
+ private updatePreferences;
106
+ private extractPattern;
107
+ private addLearningPattern;
108
+ }
109
+ //# sourceMappingURL=bi-directional-learning.d.ts.map