codehere 0.1.0 → 0.3.0

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

Potentially problematic release.


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

Files changed (671) hide show
  1. package/README.md +51 -25
  2. package/dist/agents/base.d.ts +107 -0
  3. package/dist/agents/base.d.ts.map +1 -0
  4. package/dist/agents/base.js +101 -0
  5. package/dist/agents/base.js.map +1 -0
  6. package/dist/agents/orchestrator-model-driven.d.ts +41 -0
  7. package/dist/agents/orchestrator-model-driven.d.ts.map +1 -0
  8. package/dist/agents/orchestrator-model-driven.js +141 -0
  9. package/dist/agents/orchestrator-model-driven.js.map +1 -0
  10. package/dist/agents/react-orchestrator-agent.d.ts +15 -0
  11. package/dist/agents/react-orchestrator-agent.d.ts.map +1 -0
  12. package/dist/agents/react-orchestrator-agent.js +54 -0
  13. package/dist/agents/react-orchestrator-agent.js.map +1 -0
  14. package/dist/application/agents/execution-agent.d.ts +68 -0
  15. package/dist/application/agents/execution-agent.d.ts.map +1 -0
  16. package/dist/application/agents/execution-agent.js +299 -0
  17. package/dist/application/agents/execution-agent.js.map +1 -0
  18. package/dist/application/agents/multi-agent-orchestrator.d.ts +65 -0
  19. package/dist/application/agents/multi-agent-orchestrator.d.ts.map +1 -0
  20. package/dist/application/agents/multi-agent-orchestrator.js +209 -0
  21. package/dist/application/agents/multi-agent-orchestrator.js.map +1 -0
  22. package/dist/application/agents/planning-agent.d.ts +61 -0
  23. package/dist/application/agents/planning-agent.d.ts.map +1 -0
  24. package/dist/application/agents/planning-agent.js +357 -0
  25. package/dist/application/agents/planning-agent.js.map +1 -0
  26. package/dist/application/agents/validation-agent.d.ts +64 -0
  27. package/dist/application/agents/validation-agent.d.ts.map +1 -0
  28. package/dist/application/agents/validation-agent.js +182 -0
  29. package/dist/application/agents/validation-agent.js.map +1 -0
  30. package/dist/application/architectures/plan-and-act.d.ts +94 -0
  31. package/dist/application/architectures/plan-and-act.d.ts.map +1 -0
  32. package/dist/application/architectures/plan-and-act.js +242 -0
  33. package/dist/application/architectures/plan-and-act.js.map +1 -0
  34. package/dist/application/index.d.ts +12 -0
  35. package/dist/application/index.d.ts.map +1 -0
  36. package/dist/application/index.js +12 -0
  37. package/dist/application/index.js.map +1 -0
  38. package/dist/application/services/agent-factory.d.ts +9 -0
  39. package/dist/application/services/agent-factory.d.ts.map +1 -0
  40. package/dist/application/services/agent-factory.js +28 -0
  41. package/dist/application/services/agent-factory.js.map +1 -0
  42. package/dist/application/services/dependency-container.d.ts +143 -0
  43. package/dist/application/services/dependency-container.d.ts.map +1 -0
  44. package/dist/application/services/dependency-container.js +426 -0
  45. package/dist/application/services/dependency-container.js.map +1 -0
  46. package/dist/application/services/git-context-service.d.ts +30 -0
  47. package/dist/application/services/git-context-service.d.ts.map +1 -0
  48. package/dist/application/services/git-context-service.js +83 -0
  49. package/dist/application/services/git-context-service.js.map +1 -0
  50. package/dist/application/services/intelligent-router.d.ts +74 -0
  51. package/dist/application/services/intelligent-router.d.ts.map +1 -0
  52. package/dist/application/services/intelligent-router.js +711 -0
  53. package/dist/application/services/intelligent-router.js.map +1 -0
  54. package/dist/application/services/tool-executor-service.d.ts +14 -0
  55. package/dist/application/services/tool-executor-service.d.ts.map +1 -0
  56. package/dist/application/services/tool-executor-service.js +94 -0
  57. package/dist/application/services/tool-executor-service.js.map +1 -0
  58. package/dist/application/use-cases/ask-question-use-case.d.ts +48 -0
  59. package/dist/application/use-cases/ask-question-use-case.d.ts.map +1 -0
  60. package/dist/application/use-cases/ask-question-use-case.js +270 -0
  61. package/dist/application/use-cases/ask-question-use-case.js.map +1 -0
  62. package/dist/application/use-cases/edit-file-use-case.d.ts +76 -0
  63. package/dist/application/use-cases/edit-file-use-case.d.ts.map +1 -0
  64. package/dist/application/use-cases/edit-file-use-case.js +752 -0
  65. package/dist/application/use-cases/edit-file-use-case.js.map +1 -0
  66. package/dist/application/use-cases/explain-file-use-case.d.ts +21 -0
  67. package/dist/application/use-cases/explain-file-use-case.d.ts.map +1 -0
  68. package/dist/application/use-cases/explain-file-use-case.js +50 -0
  69. package/dist/application/use-cases/explain-file-use-case.js.map +1 -0
  70. package/dist/application/use-cases/index-codebase-use-case.d.ts +46 -0
  71. package/dist/application/use-cases/index-codebase-use-case.d.ts.map +1 -0
  72. package/dist/application/use-cases/index-codebase-use-case.js +113 -0
  73. package/dist/application/use-cases/index-codebase-use-case.js.map +1 -0
  74. package/dist/application/use-cases/planning-use-case.d.ts +46 -0
  75. package/dist/application/use-cases/planning-use-case.d.ts.map +1 -0
  76. package/dist/application/use-cases/planning-use-case.js +276 -0
  77. package/dist/application/use-cases/planning-use-case.js.map +1 -0
  78. package/dist/application/use-cases/react-orchestration-use-case.d.ts +51 -0
  79. package/dist/application/use-cases/react-orchestration-use-case.d.ts.map +1 -0
  80. package/dist/application/use-cases/react-orchestration-use-case.js +329 -0
  81. package/dist/application/use-cases/react-orchestration-use-case.js.map +1 -0
  82. package/dist/application/use-cases/reflexion-use-case.d.ts +24 -0
  83. package/dist/application/use-cases/reflexion-use-case.d.ts.map +1 -0
  84. package/dist/application/use-cases/reflexion-use-case.js +30 -0
  85. package/dist/application/use-cases/reflexion-use-case.js.map +1 -0
  86. package/dist/application/workflows/deterministic-workflows.d.ts +61 -0
  87. package/dist/application/workflows/deterministic-workflows.d.ts.map +1 -0
  88. package/dist/application/workflows/deterministic-workflows.js +189 -0
  89. package/dist/application/workflows/deterministic-workflows.js.map +1 -0
  90. package/dist/cache.d.ts.map +1 -1
  91. package/dist/cache.js +1 -3
  92. package/dist/cache.js.map +1 -1
  93. package/dist/chat.js +10 -10
  94. package/dist/chat.js.map +1 -1
  95. package/dist/docs.d.ts.map +1 -1
  96. package/dist/docs.js +1 -2
  97. package/dist/docs.js.map +1 -1
  98. package/dist/domain/entities/code-chunk.d.ts +26 -0
  99. package/dist/domain/entities/code-chunk.d.ts.map +1 -0
  100. package/dist/domain/entities/code-chunk.js +6 -0
  101. package/dist/domain/entities/code-chunk.js.map +1 -0
  102. package/dist/domain/entities/decision.d.ts +37 -0
  103. package/dist/domain/entities/decision.d.ts.map +1 -0
  104. package/dist/domain/entities/decision.js +9 -0
  105. package/dist/domain/entities/decision.js.map +1 -0
  106. package/dist/domain/entities/edit.d.ts +35 -0
  107. package/dist/domain/entities/edit.d.ts.map +1 -0
  108. package/dist/domain/entities/edit.js +6 -0
  109. package/dist/domain/entities/edit.js.map +1 -0
  110. package/dist/domain/entities/knowledge-node.d.ts +83 -0
  111. package/dist/domain/entities/knowledge-node.d.ts.map +1 -0
  112. package/dist/domain/entities/knowledge-node.js +9 -0
  113. package/dist/domain/entities/knowledge-node.js.map +1 -0
  114. package/dist/domain/entities/knowledge-preservation.d.ts +42 -0
  115. package/dist/domain/entities/knowledge-preservation.d.ts.map +1 -0
  116. package/dist/domain/entities/knowledge-preservation.js +10 -0
  117. package/dist/domain/entities/knowledge-preservation.js.map +1 -0
  118. package/dist/domain/entities/memory.d.ts +36 -0
  119. package/dist/domain/entities/memory.d.ts.map +1 -0
  120. package/dist/domain/entities/memory.js +6 -0
  121. package/dist/domain/entities/memory.js.map +1 -0
  122. package/dist/domain/entities/pattern.d.ts +49 -0
  123. package/dist/domain/entities/pattern.d.ts.map +1 -0
  124. package/dist/domain/entities/pattern.js +7 -0
  125. package/dist/domain/entities/pattern.js.map +1 -0
  126. package/dist/domain/entities/plan.d.ts +42 -0
  127. package/dist/domain/entities/plan.d.ts.map +1 -0
  128. package/dist/domain/entities/plan.js +6 -0
  129. package/dist/domain/entities/plan.js.map +1 -0
  130. package/dist/domain/entities/query.d.ts +17 -0
  131. package/dist/domain/entities/query.d.ts.map +1 -0
  132. package/dist/domain/entities/query.js +6 -0
  133. package/dist/domain/entities/query.js.map +1 -0
  134. package/dist/domain/index.d.ts +16 -0
  135. package/dist/domain/index.d.ts.map +1 -0
  136. package/dist/domain/index.js +19 -0
  137. package/dist/domain/index.js.map +1 -0
  138. package/dist/domain/interfaces/ai-service.interface.d.ts +62 -0
  139. package/dist/domain/interfaces/ai-service.interface.d.ts.map +1 -0
  140. package/dist/domain/interfaces/ai-service.interface.js +6 -0
  141. package/dist/domain/interfaces/ai-service.interface.js.map +1 -0
  142. package/dist/domain/interfaces/code-analyzer.interface.d.ts +38 -0
  143. package/dist/domain/interfaces/code-analyzer.interface.d.ts.map +1 -0
  144. package/dist/domain/interfaces/code-analyzer.interface.js +6 -0
  145. package/dist/domain/interfaces/code-analyzer.interface.js.map +1 -0
  146. package/dist/domain/interfaces/decision-repository.interface.d.ts +51 -0
  147. package/dist/domain/interfaces/decision-repository.interface.d.ts.map +1 -0
  148. package/dist/domain/interfaces/decision-repository.interface.js +9 -0
  149. package/dist/domain/interfaces/decision-repository.interface.js.map +1 -0
  150. package/dist/domain/interfaces/embedding-repository.interface.d.ts +28 -0
  151. package/dist/domain/interfaces/embedding-repository.interface.d.ts.map +1 -0
  152. package/dist/domain/interfaces/embedding-repository.interface.js +6 -0
  153. package/dist/domain/interfaces/embedding-repository.interface.js.map +1 -0
  154. package/dist/domain/interfaces/knowledge-graph-repository.interface.d.ts +91 -0
  155. package/dist/domain/interfaces/knowledge-graph-repository.interface.d.ts.map +1 -0
  156. package/dist/domain/interfaces/knowledge-graph-repository.interface.js +9 -0
  157. package/dist/domain/interfaces/knowledge-graph-repository.interface.js.map +1 -0
  158. package/dist/domain/interfaces/knowledge-preservation-repository.interface.d.ts +50 -0
  159. package/dist/domain/interfaces/knowledge-preservation-repository.interface.d.ts.map +1 -0
  160. package/dist/domain/interfaces/knowledge-preservation-repository.interface.js +8 -0
  161. package/dist/domain/interfaces/knowledge-preservation-repository.interface.js.map +1 -0
  162. package/dist/domain/interfaces/memory-repository.interface.d.ts +49 -0
  163. package/dist/domain/interfaces/memory-repository.interface.d.ts.map +1 -0
  164. package/dist/domain/interfaces/memory-repository.interface.js +6 -0
  165. package/dist/domain/interfaces/memory-repository.interface.js.map +1 -0
  166. package/dist/domain/interfaces/pattern-repository.interface.d.ts +48 -0
  167. package/dist/domain/interfaces/pattern-repository.interface.d.ts.map +1 -0
  168. package/dist/domain/interfaces/pattern-repository.interface.js +6 -0
  169. package/dist/domain/interfaces/pattern-repository.interface.js.map +1 -0
  170. package/dist/domain/interfaces/verification-service.interface.d.ts +20 -0
  171. package/dist/domain/interfaces/verification-service.interface.d.ts.map +1 -0
  172. package/dist/domain/interfaces/verification-service.interface.js +6 -0
  173. package/dist/domain/interfaces/verification-service.interface.js.map +1 -0
  174. package/dist/domain/services/codebase-detector.d.ts +18 -0
  175. package/dist/domain/services/codebase-detector.d.ts.map +1 -0
  176. package/dist/domain/services/codebase-detector.js +91 -0
  177. package/dist/domain/services/codebase-detector.js.map +1 -0
  178. package/dist/domain/services/cross-team-pattern-sharing.d.ts +65 -0
  179. package/dist/domain/services/cross-team-pattern-sharing.d.ts.map +1 -0
  180. package/dist/domain/services/cross-team-pattern-sharing.js +125 -0
  181. package/dist/domain/services/cross-team-pattern-sharing.js.map +1 -0
  182. package/dist/domain/services/decision-recorder.d.ts +76 -0
  183. package/dist/domain/services/decision-recorder.d.ts.map +1 -0
  184. package/dist/domain/services/decision-recorder.js +223 -0
  185. package/dist/domain/services/decision-recorder.js.map +1 -0
  186. package/dist/domain/services/decision-retriever.d.ts +75 -0
  187. package/dist/domain/services/decision-retriever.d.ts.map +1 -0
  188. package/dist/domain/services/decision-retriever.js +133 -0
  189. package/dist/domain/services/decision-retriever.js.map +1 -0
  190. package/dist/domain/services/graded-memory-activation.d.ts +37 -0
  191. package/dist/domain/services/graded-memory-activation.d.ts.map +1 -0
  192. package/dist/domain/services/graded-memory-activation.js +69 -0
  193. package/dist/domain/services/graded-memory-activation.js.map +1 -0
  194. package/dist/domain/services/knowledge-access.d.ts +63 -0
  195. package/dist/domain/services/knowledge-access.d.ts.map +1 -0
  196. package/dist/domain/services/knowledge-access.js +132 -0
  197. package/dist/domain/services/knowledge-access.js.map +1 -0
  198. package/dist/domain/services/knowledge-extractor.d.ts +54 -0
  199. package/dist/domain/services/knowledge-extractor.d.ts.map +1 -0
  200. package/dist/domain/services/knowledge-extractor.js +247 -0
  201. package/dist/domain/services/knowledge-extractor.js.map +1 -0
  202. package/dist/domain/services/knowledge-graph-builder.d.ts +70 -0
  203. package/dist/domain/services/knowledge-graph-builder.d.ts.map +1 -0
  204. package/dist/domain/services/knowledge-graph-builder.js +268 -0
  205. package/dist/domain/services/knowledge-graph-builder.js.map +1 -0
  206. package/dist/domain/services/knowledge-graph-query.d.ts +69 -0
  207. package/dist/domain/services/knowledge-graph-query.d.ts.map +1 -0
  208. package/dist/domain/services/knowledge-graph-query.js +187 -0
  209. package/dist/domain/services/knowledge-graph-query.js.map +1 -0
  210. package/dist/domain/services/memory-retriever.d.ts +30 -0
  211. package/dist/domain/services/memory-retriever.d.ts.map +1 -0
  212. package/dist/domain/services/memory-retriever.js +82 -0
  213. package/dist/domain/services/memory-retriever.js.map +1 -0
  214. package/dist/domain/services/memory-synthesizer.d.ts +57 -0
  215. package/dist/domain/services/memory-synthesizer.d.ts.map +1 -0
  216. package/dist/domain/services/memory-synthesizer.js +91 -0
  217. package/dist/domain/services/memory-synthesizer.js.map +1 -0
  218. package/dist/domain/services/pattern-extractor.d.ts +108 -0
  219. package/dist/domain/services/pattern-extractor.d.ts.map +1 -0
  220. package/dist/domain/services/pattern-extractor.js +442 -0
  221. package/dist/domain/services/pattern-extractor.js.map +1 -0
  222. package/dist/domain/services/query-intent-classifier.d.ts +16 -0
  223. package/dist/domain/services/query-intent-classifier.d.ts.map +1 -0
  224. package/dist/domain/services/query-intent-classifier.js +140 -0
  225. package/dist/domain/services/query-intent-classifier.js.map +1 -0
  226. package/dist/domain/services/react-loop.d.ts +52 -0
  227. package/dist/domain/services/react-loop.d.ts.map +1 -0
  228. package/dist/domain/services/react-loop.js +186 -0
  229. package/dist/domain/services/react-loop.js.map +1 -0
  230. package/dist/edit.d.ts +0 -12
  231. package/dist/edit.d.ts.map +1 -1
  232. package/dist/edit.js +76 -351
  233. package/dist/edit.js.map +1 -1
  234. package/dist/embed.d.ts +0 -4
  235. package/dist/embed.d.ts.map +1 -1
  236. package/dist/embed.js +100 -174
  237. package/dist/embed.js.map +1 -1
  238. package/dist/error-handler.d.ts +1 -0
  239. package/dist/error-handler.d.ts.map +1 -1
  240. package/dist/error-handler.js +46 -3
  241. package/dist/error-handler.js.map +1 -1
  242. package/dist/formatter.d.ts +2 -2
  243. package/dist/formatter.d.ts.map +1 -1
  244. package/dist/formatter.js +30 -17
  245. package/dist/formatter.js.map +1 -1
  246. package/dist/index.js +355 -239
  247. package/dist/index.js.map +1 -1
  248. package/dist/infrastructure/ai/cohere-ai-service.d.ts +56 -0
  249. package/dist/infrastructure/ai/cohere-ai-service.d.ts.map +1 -0
  250. package/dist/infrastructure/ai/cohere-ai-service.js +594 -0
  251. package/dist/infrastructure/ai/cohere-ai-service.js.map +1 -0
  252. package/dist/infrastructure/ai/command-r-evaluation.d.ts +42 -0
  253. package/dist/infrastructure/ai/command-r-evaluation.d.ts.map +1 -0
  254. package/dist/infrastructure/ai/command-r-evaluation.js +206 -0
  255. package/dist/infrastructure/ai/command-r-evaluation.js.map +1 -0
  256. package/dist/infrastructure/ai/model-config.d.ts +47 -0
  257. package/dist/infrastructure/ai/model-config.d.ts.map +1 -0
  258. package/dist/infrastructure/ai/model-config.js +84 -0
  259. package/dist/infrastructure/ai/model-config.js.map +1 -0
  260. package/dist/infrastructure/cache/embedding-cache.d.ts +46 -0
  261. package/dist/infrastructure/cache/embedding-cache.d.ts.map +1 -0
  262. package/dist/infrastructure/cache/embedding-cache.js +104 -0
  263. package/dist/infrastructure/cache/embedding-cache.js.map +1 -0
  264. package/dist/infrastructure/cache/query-result-cache.d.ts +68 -0
  265. package/dist/infrastructure/cache/query-result-cache.d.ts.map +1 -0
  266. package/dist/infrastructure/cache/query-result-cache.js +138 -0
  267. package/dist/infrastructure/cache/query-result-cache.js.map +1 -0
  268. package/dist/infrastructure/cache/security-scan-cache.d.ts +57 -0
  269. package/dist/infrastructure/cache/security-scan-cache.d.ts.map +1 -0
  270. package/dist/infrastructure/cache/security-scan-cache.js +124 -0
  271. package/dist/infrastructure/cache/security-scan-cache.js.map +1 -0
  272. package/dist/infrastructure/chunking/ast-code-chunker.d.ts +12 -0
  273. package/dist/infrastructure/chunking/ast-code-chunker.d.ts.map +1 -0
  274. package/dist/infrastructure/chunking/ast-code-chunker.js +19 -0
  275. package/dist/infrastructure/chunking/ast-code-chunker.js.map +1 -0
  276. package/dist/infrastructure/chunking/code-aware-chunker.d.ts +63 -0
  277. package/dist/infrastructure/chunking/code-aware-chunker.d.ts.map +1 -0
  278. package/dist/infrastructure/chunking/code-aware-chunker.js +397 -0
  279. package/dist/infrastructure/chunking/code-aware-chunker.js.map +1 -0
  280. package/dist/infrastructure/completion/bash-completion.d.ts +8 -0
  281. package/dist/infrastructure/completion/bash-completion.d.ts.map +1 -0
  282. package/dist/infrastructure/completion/bash-completion.js +101 -0
  283. package/dist/infrastructure/completion/bash-completion.js.map +1 -0
  284. package/dist/infrastructure/completion/completion-generator.d.ts +42 -0
  285. package/dist/infrastructure/completion/completion-generator.d.ts.map +1 -0
  286. package/dist/infrastructure/completion/completion-generator.js +184 -0
  287. package/dist/infrastructure/completion/completion-generator.js.map +1 -0
  288. package/dist/infrastructure/completion/fish-completion.d.ts +8 -0
  289. package/dist/infrastructure/completion/fish-completion.d.ts.map +1 -0
  290. package/dist/infrastructure/completion/fish-completion.js +65 -0
  291. package/dist/infrastructure/completion/fish-completion.js.map +1 -0
  292. package/dist/infrastructure/completion/zsh-completion.d.ts +8 -0
  293. package/dist/infrastructure/completion/zsh-completion.d.ts.map +1 -0
  294. package/dist/infrastructure/completion/zsh-completion.js +85 -0
  295. package/dist/infrastructure/completion/zsh-completion.js.map +1 -0
  296. package/dist/infrastructure/config/config-manager.d.ts +79 -0
  297. package/dist/infrastructure/config/config-manager.d.ts.map +1 -0
  298. package/dist/infrastructure/config/config-manager.js +162 -0
  299. package/dist/infrastructure/config/config-manager.js.map +1 -0
  300. package/dist/infrastructure/context/context-compressor.d.ts +94 -0
  301. package/dist/infrastructure/context/context-compressor.d.ts.map +1 -0
  302. package/dist/infrastructure/context/context-compressor.js +329 -0
  303. package/dist/infrastructure/context/context-compressor.js.map +1 -0
  304. package/dist/infrastructure/cost/cost-tracker.d.ts +90 -0
  305. package/dist/infrastructure/cost/cost-tracker.d.ts.map +1 -0
  306. package/dist/infrastructure/cost/cost-tracker.js +353 -0
  307. package/dist/infrastructure/cost/cost-tracker.js.map +1 -0
  308. package/dist/infrastructure/file-scanner/file-scanner.d.ts +31 -0
  309. package/dist/infrastructure/file-scanner/file-scanner.d.ts.map +1 -0
  310. package/dist/infrastructure/file-scanner/file-scanner.js +106 -0
  311. package/dist/infrastructure/file-scanner/file-scanner.js.map +1 -0
  312. package/dist/infrastructure/governance/nist-ai-rmf.d.ts +107 -0
  313. package/dist/infrastructure/governance/nist-ai-rmf.d.ts.map +1 -0
  314. package/dist/infrastructure/governance/nist-ai-rmf.js +294 -0
  315. package/dist/infrastructure/governance/nist-ai-rmf.js.map +1 -0
  316. package/dist/infrastructure/governance/policy-as-code.d.ts +90 -0
  317. package/dist/infrastructure/governance/policy-as-code.d.ts.map +1 -0
  318. package/dist/infrastructure/governance/policy-as-code.js +259 -0
  319. package/dist/infrastructure/governance/policy-as-code.js.map +1 -0
  320. package/dist/infrastructure/governance/prompt-to-code-lineage.d.ts +138 -0
  321. package/dist/infrastructure/governance/prompt-to-code-lineage.d.ts.map +1 -0
  322. package/dist/infrastructure/governance/prompt-to-code-lineage.js +241 -0
  323. package/dist/infrastructure/governance/prompt-to-code-lineage.js.map +1 -0
  324. package/dist/infrastructure/index.d.ts +7 -0
  325. package/dist/infrastructure/index.d.ts.map +1 -0
  326. package/dist/infrastructure/index.js +7 -0
  327. package/dist/infrastructure/index.js.map +1 -0
  328. package/dist/infrastructure/observability/execution-tracer.d.ts +108 -0
  329. package/dist/infrastructure/observability/execution-tracer.d.ts.map +1 -0
  330. package/dist/infrastructure/observability/execution-tracer.js +227 -0
  331. package/dist/infrastructure/observability/execution-tracer.js.map +1 -0
  332. package/dist/infrastructure/observability/prompt-versioner.d.ts +67 -0
  333. package/dist/infrastructure/observability/prompt-versioner.d.ts.map +1 -0
  334. package/dist/infrastructure/observability/prompt-versioner.js +145 -0
  335. package/dist/infrastructure/observability/prompt-versioner.js.map +1 -0
  336. package/dist/infrastructure/protocols/a2a-metadata.d.ts +278 -0
  337. package/dist/infrastructure/protocols/a2a-metadata.d.ts.map +1 -0
  338. package/dist/infrastructure/protocols/a2a-metadata.js +137 -0
  339. package/dist/infrastructure/protocols/a2a-metadata.js.map +1 -0
  340. package/dist/infrastructure/protocols/a2a-protocol.d.ts +132 -0
  341. package/dist/infrastructure/protocols/a2a-protocol.d.ts.map +1 -0
  342. package/dist/infrastructure/protocols/a2a-protocol.js +314 -0
  343. package/dist/infrastructure/protocols/a2a-protocol.js.map +1 -0
  344. package/dist/infrastructure/protocols/mcp-oauth.d.ts +91 -0
  345. package/dist/infrastructure/protocols/mcp-oauth.d.ts.map +1 -0
  346. package/dist/infrastructure/protocols/mcp-oauth.js +184 -0
  347. package/dist/infrastructure/protocols/mcp-oauth.js.map +1 -0
  348. package/dist/infrastructure/protocols/mcp-server.d.ts +126 -0
  349. package/dist/infrastructure/protocols/mcp-server.d.ts.map +1 -0
  350. package/dist/infrastructure/protocols/mcp-server.js +333 -0
  351. package/dist/infrastructure/protocols/mcp-server.js.map +1 -0
  352. package/dist/infrastructure/protocols/streaming-handler.d.ts +57 -0
  353. package/dist/infrastructure/protocols/streaming-handler.d.ts.map +1 -0
  354. package/dist/infrastructure/protocols/streaming-handler.js +103 -0
  355. package/dist/infrastructure/protocols/streaming-handler.js.map +1 -0
  356. package/dist/infrastructure/security/ai-sast-scanner.d.ts +59 -0
  357. package/dist/infrastructure/security/ai-sast-scanner.d.ts.map +1 -0
  358. package/dist/infrastructure/security/ai-sast-scanner.js +241 -0
  359. package/dist/infrastructure/security/ai-sast-scanner.js.map +1 -0
  360. package/dist/infrastructure/security/docker-sandbox.d.ts +57 -0
  361. package/dist/infrastructure/security/docker-sandbox.d.ts.map +1 -0
  362. package/dist/infrastructure/security/docker-sandbox.js +178 -0
  363. package/dist/infrastructure/security/docker-sandbox.js.map +1 -0
  364. package/dist/infrastructure/security/enhanced-security-gate.d.ts +53 -0
  365. package/dist/infrastructure/security/enhanced-security-gate.d.ts.map +1 -0
  366. package/dist/infrastructure/security/enhanced-security-gate.js +151 -0
  367. package/dist/infrastructure/security/enhanced-security-gate.js.map +1 -0
  368. package/dist/infrastructure/security/input-validator.d.ts +33 -0
  369. package/dist/infrastructure/security/input-validator.d.ts.map +1 -0
  370. package/dist/infrastructure/security/input-validator.js +152 -0
  371. package/dist/infrastructure/security/input-validator.js.map +1 -0
  372. package/dist/infrastructure/security/license-scanner.d.ts +55 -0
  373. package/dist/infrastructure/security/license-scanner.d.ts.map +1 -0
  374. package/dist/infrastructure/security/license-scanner.js +167 -0
  375. package/dist/infrastructure/security/license-scanner.js.map +1 -0
  376. package/dist/infrastructure/security/provider-bias-detector.d.ts +53 -0
  377. package/dist/infrastructure/security/provider-bias-detector.d.ts.map +1 -0
  378. package/dist/infrastructure/security/provider-bias-detector.js +164 -0
  379. package/dist/infrastructure/security/provider-bias-detector.js.map +1 -0
  380. package/dist/infrastructure/security/sandbox-executor.d.ts +34 -0
  381. package/dist/infrastructure/security/sandbox-executor.d.ts.map +1 -0
  382. package/dist/infrastructure/security/sandbox-executor.js +64 -0
  383. package/dist/infrastructure/security/sandbox-executor.js.map +1 -0
  384. package/dist/infrastructure/storage/memory-stream-service.d.ts +47 -0
  385. package/dist/infrastructure/storage/memory-stream-service.d.ts.map +1 -0
  386. package/dist/infrastructure/storage/memory-stream-service.js +204 -0
  387. package/dist/infrastructure/storage/memory-stream-service.js.map +1 -0
  388. package/dist/infrastructure/storage/plan-repository.d.ts +38 -0
  389. package/dist/infrastructure/storage/plan-repository.d.ts.map +1 -0
  390. package/dist/infrastructure/storage/plan-repository.js +133 -0
  391. package/dist/infrastructure/storage/plan-repository.js.map +1 -0
  392. package/dist/infrastructure/storage/sqlite-decision-repository.d.ts +29 -0
  393. package/dist/infrastructure/storage/sqlite-decision-repository.d.ts.map +1 -0
  394. package/dist/infrastructure/storage/sqlite-decision-repository.js +232 -0
  395. package/dist/infrastructure/storage/sqlite-decision-repository.js.map +1 -0
  396. package/dist/infrastructure/storage/sqlite-embedding-repository.d.ts +35 -0
  397. package/dist/infrastructure/storage/sqlite-embedding-repository.d.ts.map +1 -0
  398. package/dist/infrastructure/storage/sqlite-embedding-repository.js +277 -0
  399. package/dist/infrastructure/storage/sqlite-embedding-repository.js.map +1 -0
  400. package/dist/infrastructure/storage/sqlite-knowledge-graph-repository.d.ts +41 -0
  401. package/dist/infrastructure/storage/sqlite-knowledge-graph-repository.d.ts.map +1 -0
  402. package/dist/infrastructure/storage/sqlite-knowledge-graph-repository.js +417 -0
  403. package/dist/infrastructure/storage/sqlite-knowledge-graph-repository.js.map +1 -0
  404. package/dist/infrastructure/storage/sqlite-knowledge-preservation-repository.d.ts +29 -0
  405. package/dist/infrastructure/storage/sqlite-knowledge-preservation-repository.d.ts.map +1 -0
  406. package/dist/infrastructure/storage/sqlite-knowledge-preservation-repository.js +230 -0
  407. package/dist/infrastructure/storage/sqlite-knowledge-preservation-repository.js.map +1 -0
  408. package/dist/infrastructure/storage/sqlite-memory-repository.d.ts +40 -0
  409. package/dist/infrastructure/storage/sqlite-memory-repository.d.ts.map +1 -0
  410. package/dist/infrastructure/storage/sqlite-memory-repository.js +229 -0
  411. package/dist/infrastructure/storage/sqlite-memory-repository.js.map +1 -0
  412. package/dist/infrastructure/storage/sqlite-pattern-repository.d.ts +25 -0
  413. package/dist/infrastructure/storage/sqlite-pattern-repository.d.ts.map +1 -0
  414. package/dist/infrastructure/storage/sqlite-pattern-repository.js +249 -0
  415. package/dist/infrastructure/storage/sqlite-pattern-repository.js.map +1 -0
  416. package/dist/infrastructure/ux/appropriate-friction.d.ts +77 -0
  417. package/dist/infrastructure/ux/appropriate-friction.d.ts.map +1 -0
  418. package/dist/infrastructure/ux/appropriate-friction.js +213 -0
  419. package/dist/infrastructure/ux/appropriate-friction.js.map +1 -0
  420. package/dist/infrastructure/ux/bi-directional-learning.d.ts +109 -0
  421. package/dist/infrastructure/ux/bi-directional-learning.d.ts.map +1 -0
  422. package/dist/infrastructure/ux/bi-directional-learning.js +200 -0
  423. package/dist/infrastructure/ux/bi-directional-learning.js.map +1 -0
  424. package/dist/infrastructure/ux/contextual-feature-discovery.d.ts +24 -0
  425. package/dist/infrastructure/ux/contextual-feature-discovery.d.ts.map +1 -0
  426. package/dist/infrastructure/ux/contextual-feature-discovery.js +144 -0
  427. package/dist/infrastructure/ux/contextual-feature-discovery.js.map +1 -0
  428. package/dist/infrastructure/ux/expectation-management.d.ts +98 -0
  429. package/dist/infrastructure/ux/expectation-management.d.ts.map +1 -0
  430. package/dist/infrastructure/ux/expectation-management.js +327 -0
  431. package/dist/infrastructure/ux/expectation-management.js.map +1 -0
  432. package/dist/infrastructure/ux/feature-discovery.d.ts +47 -0
  433. package/dist/infrastructure/ux/feature-discovery.d.ts.map +1 -0
  434. package/dist/infrastructure/ux/feature-discovery.js +190 -0
  435. package/dist/infrastructure/ux/feature-discovery.js.map +1 -0
  436. package/dist/infrastructure/ux/hitl-review-portal.d.ts +47 -0
  437. package/dist/infrastructure/ux/hitl-review-portal.d.ts.map +1 -0
  438. package/dist/infrastructure/ux/hitl-review-portal.js +225 -0
  439. package/dist/infrastructure/ux/hitl-review-portal.js.map +1 -0
  440. package/dist/infrastructure/ux/hitl-validation.d.ts +104 -0
  441. package/dist/infrastructure/ux/hitl-validation.d.ts.map +1 -0
  442. package/dist/infrastructure/ux/hitl-validation.js +211 -0
  443. package/dist/infrastructure/ux/hitl-validation.js.map +1 -0
  444. package/dist/infrastructure/ux/progress-indicator.d.ts +54 -0
  445. package/dist/infrastructure/ux/progress-indicator.d.ts.map +1 -0
  446. package/dist/infrastructure/ux/progress-indicator.js +121 -0
  447. package/dist/infrastructure/ux/progress-indicator.js.map +1 -0
  448. package/dist/infrastructure/ux/progressive-disclosure.d.ts +84 -0
  449. package/dist/infrastructure/ux/progressive-disclosure.d.ts.map +1 -0
  450. package/dist/infrastructure/ux/progressive-disclosure.js +236 -0
  451. package/dist/infrastructure/ux/progressive-disclosure.js.map +1 -0
  452. package/dist/infrastructure/ux/review-checkpoint.d.ts +35 -0
  453. package/dist/infrastructure/ux/review-checkpoint.d.ts.map +1 -0
  454. package/dist/infrastructure/ux/review-checkpoint.js +119 -0
  455. package/dist/infrastructure/ux/review-checkpoint.js.map +1 -0
  456. package/dist/infrastructure/ux/staged-feature-intro.d.ts +47 -0
  457. package/dist/infrastructure/ux/staged-feature-intro.d.ts.map +1 -0
  458. package/dist/infrastructure/ux/staged-feature-intro.js +144 -0
  459. package/dist/infrastructure/ux/staged-feature-intro.js.map +1 -0
  460. package/dist/infrastructure/ux/syntax-highlighter.d.ts +21 -0
  461. package/dist/infrastructure/ux/syntax-highlighter.d.ts.map +1 -0
  462. package/dist/infrastructure/ux/syntax-highlighter.js +172 -0
  463. package/dist/infrastructure/ux/syntax-highlighter.js.map +1 -0
  464. package/dist/infrastructure/ux/team-standards.d.ts +94 -0
  465. package/dist/infrastructure/ux/team-standards.d.ts.map +1 -0
  466. package/dist/infrastructure/ux/team-standards.js +196 -0
  467. package/dist/infrastructure/ux/team-standards.js.map +1 -0
  468. package/dist/infrastructure/verification/verification-service.d.ts +12 -0
  469. package/dist/infrastructure/verification/verification-service.d.ts.map +1 -0
  470. package/dist/infrastructure/verification/verification-service.js +47 -0
  471. package/dist/infrastructure/verification/verification-service.js.map +1 -0
  472. package/dist/infrastructure/xai/attention-visualizer.d.ts +73 -0
  473. package/dist/infrastructure/xai/attention-visualizer.d.ts.map +1 -0
  474. package/dist/infrastructure/xai/attention-visualizer.js +174 -0
  475. package/dist/infrastructure/xai/attention-visualizer.js.map +1 -0
  476. package/dist/infrastructure/xai/cot-visualizer.d.ts +106 -0
  477. package/dist/infrastructure/xai/cot-visualizer.d.ts.map +1 -0
  478. package/dist/infrastructure/xai/cot-visualizer.js +286 -0
  479. package/dist/infrastructure/xai/cot-visualizer.js.map +1 -0
  480. package/dist/infrastructure/xai/decision-tree-log.d.ts +104 -0
  481. package/dist/infrastructure/xai/decision-tree-log.d.ts.map +1 -0
  482. package/dist/infrastructure/xai/decision-tree-log.js +216 -0
  483. package/dist/infrastructure/xai/decision-tree-log.js.map +1 -0
  484. package/dist/infrastructure/xai/interactive-xai.d.ts +106 -0
  485. package/dist/infrastructure/xai/interactive-xai.d.ts.map +1 -0
  486. package/dist/infrastructure/xai/interactive-xai.js +262 -0
  487. package/dist/infrastructure/xai/interactive-xai.js.map +1 -0
  488. package/dist/infrastructure/xai/uncertainty-quantifier.d.ts +80 -0
  489. package/dist/infrastructure/xai/uncertainty-quantifier.d.ts.map +1 -0
  490. package/dist/infrastructure/xai/uncertainty-quantifier.js +201 -0
  491. package/dist/infrastructure/xai/uncertainty-quantifier.js.map +1 -0
  492. package/dist/intelligent-retrieval.d.ts.map +1 -1
  493. package/dist/intelligent-retrieval.js +8 -1
  494. package/dist/intelligent-retrieval.js.map +1 -1
  495. package/dist/intent/classifier.d.ts +6 -0
  496. package/dist/intent/classifier.d.ts.map +1 -0
  497. package/dist/intent/classifier.js +2 -0
  498. package/dist/intent/classifier.js.map +1 -0
  499. package/dist/intent/context.d.ts +4 -0
  500. package/dist/intent/context.d.ts.map +1 -0
  501. package/dist/intent/context.js +2 -0
  502. package/dist/intent/context.js.map +1 -0
  503. package/dist/iterative-refinement.d.ts.map +1 -1
  504. package/dist/iterative-refinement.js +20 -3
  505. package/dist/iterative-refinement.js.map +1 -1
  506. package/dist/learning.d.ts.map +1 -1
  507. package/dist/learning.js +1 -2
  508. package/dist/learning.js.map +1 -1
  509. package/dist/monitoring.d.ts.map +1 -1
  510. package/dist/monitoring.js +1 -2
  511. package/dist/monitoring.js.map +1 -1
  512. package/dist/parallel-processor.d.ts +3 -2
  513. package/dist/parallel-processor.d.ts.map +1 -1
  514. package/dist/parallel-processor.js +183 -56
  515. package/dist/parallel-processor.js.map +1 -1
  516. package/dist/presentation/cli/commands/ask-command.d.ts +8 -0
  517. package/dist/presentation/cli/commands/ask-command.d.ts.map +1 -0
  518. package/dist/presentation/cli/commands/ask-command.js +190 -0
  519. package/dist/presentation/cli/commands/ask-command.js.map +1 -0
  520. package/dist/presentation/cli/commands/config-command.d.ts +9 -0
  521. package/dist/presentation/cli/commands/config-command.d.ts.map +1 -0
  522. package/dist/presentation/cli/commands/config-command.js +123 -0
  523. package/dist/presentation/cli/commands/config-command.js.map +1 -0
  524. package/dist/presentation/cli/commands/cost-command.d.ts +8 -0
  525. package/dist/presentation/cli/commands/cost-command.d.ts.map +1 -0
  526. package/dist/presentation/cli/commands/cost-command.js +191 -0
  527. package/dist/presentation/cli/commands/cost-command.js.map +1 -0
  528. package/dist/presentation/cli/commands/decision-command.d.ts +12 -0
  529. package/dist/presentation/cli/commands/decision-command.d.ts.map +1 -0
  530. package/dist/presentation/cli/commands/decision-command.js +207 -0
  531. package/dist/presentation/cli/commands/decision-command.js.map +1 -0
  532. package/dist/presentation/cli/commands/help-command.d.ts +9 -0
  533. package/dist/presentation/cli/commands/help-command.d.ts.map +1 -0
  534. package/dist/presentation/cli/commands/help-command.js +281 -0
  535. package/dist/presentation/cli/commands/help-command.js.map +1 -0
  536. package/dist/presentation/cli/commands/knowledge-command.d.ts +13 -0
  537. package/dist/presentation/cli/commands/knowledge-command.d.ts.map +1 -0
  538. package/dist/presentation/cli/commands/knowledge-command.js +129 -0
  539. package/dist/presentation/cli/commands/knowledge-command.js.map +1 -0
  540. package/dist/presentation/cli/commands/learning-dashboard-command.d.ts +8 -0
  541. package/dist/presentation/cli/commands/learning-dashboard-command.d.ts.map +1 -0
  542. package/dist/presentation/cli/commands/learning-dashboard-command.js +183 -0
  543. package/dist/presentation/cli/commands/learning-dashboard-command.js.map +1 -0
  544. package/dist/presentation/cli/commands/orchestrate-command.d.ts +9 -0
  545. package/dist/presentation/cli/commands/orchestrate-command.d.ts.map +1 -0
  546. package/dist/presentation/cli/commands/orchestrate-command.js +146 -0
  547. package/dist/presentation/cli/commands/orchestrate-command.js.map +1 -0
  548. package/dist/presentation/cli/commands/plan-command.d.ts +8 -0
  549. package/dist/presentation/cli/commands/plan-command.d.ts.map +1 -0
  550. package/dist/presentation/cli/commands/plan-command.js +166 -0
  551. package/dist/presentation/cli/commands/plan-command.js.map +1 -0
  552. package/dist/presentation/cli/commands/react-command.d.ts +8 -0
  553. package/dist/presentation/cli/commands/react-command.d.ts.map +1 -0
  554. package/dist/presentation/cli/commands/react-command.js +179 -0
  555. package/dist/presentation/cli/commands/react-command.js.map +1 -0
  556. package/dist/presentation/cli/commands/setup-command.d.ts +10 -0
  557. package/dist/presentation/cli/commands/setup-command.d.ts.map +1 -0
  558. package/dist/presentation/cli/commands/setup-command.js +286 -0
  559. package/dist/presentation/cli/commands/setup-command.js.map +1 -0
  560. package/dist/presentation/cli/commands/smart-command.d.ts +6 -0
  561. package/dist/presentation/cli/commands/smart-command.d.ts.map +1 -0
  562. package/dist/presentation/cli/commands/smart-command.js +330 -0
  563. package/dist/presentation/cli/commands/smart-command.js.map +1 -0
  564. package/dist/presentation/cli/commands/trace-command.d.ts +8 -0
  565. package/dist/presentation/cli/commands/trace-command.d.ts.map +1 -0
  566. package/dist/presentation/cli/commands/trace-command.js +129 -0
  567. package/dist/presentation/cli/commands/trace-command.js.map +1 -0
  568. package/dist/presentation/cli/commands/undo-command.d.ts +8 -0
  569. package/dist/presentation/cli/commands/undo-command.d.ts.map +1 -0
  570. package/dist/presentation/cli/commands/undo-command.js +150 -0
  571. package/dist/presentation/cli/commands/undo-command.js.map +1 -0
  572. package/dist/presentation/cli/error-display.d.ts +25 -0
  573. package/dist/presentation/cli/error-display.d.ts.map +1 -0
  574. package/dist/presentation/cli/error-display.js +297 -0
  575. package/dist/presentation/cli/error-display.js.map +1 -0
  576. package/dist/presentation/cli/keyboard-shortcuts.d.ts +27 -0
  577. package/dist/presentation/cli/keyboard-shortcuts.d.ts.map +1 -0
  578. package/dist/presentation/cli/keyboard-shortcuts.js +77 -0
  579. package/dist/presentation/cli/keyboard-shortcuts.js.map +1 -0
  580. package/dist/refactor.d.ts.map +1 -1
  581. package/dist/refactor.js +2 -4
  582. package/dist/refactor.js.map +1 -1
  583. package/dist/search.d.ts.map +1 -1
  584. package/dist/search.js +2 -63
  585. package/dist/search.js.map +1 -1
  586. package/dist/session.d.ts.map +1 -1
  587. package/dist/session.js +72 -3
  588. package/dist/session.js.map +1 -1
  589. package/dist/testgen.d.ts.map +1 -1
  590. package/dist/testgen.js +1 -2
  591. package/dist/testgen.js.map +1 -1
  592. package/dist/tools/bash.d.ts +53 -0
  593. package/dist/tools/bash.d.ts.map +1 -0
  594. package/dist/tools/bash.js +213 -0
  595. package/dist/tools/bash.js.map +1 -0
  596. package/dist/tools/edit.d.ts +48 -0
  597. package/dist/tools/edit.d.ts.map +1 -0
  598. package/dist/tools/edit.js +235 -0
  599. package/dist/tools/edit.js.map +1 -0
  600. package/dist/tools/executor.d.ts +29 -0
  601. package/dist/tools/executor.d.ts.map +1 -0
  602. package/dist/tools/executor.js +153 -0
  603. package/dist/tools/executor.js.map +1 -0
  604. package/dist/tools/git-tool.d.ts +87 -0
  605. package/dist/tools/git-tool.d.ts.map +1 -0
  606. package/dist/tools/git-tool.js +292 -0
  607. package/dist/tools/git-tool.js.map +1 -0
  608. package/dist/tools/parser.d.ts +33 -0
  609. package/dist/tools/parser.d.ts.map +1 -0
  610. package/dist/tools/parser.js +158 -0
  611. package/dist/tools/parser.js.map +1 -0
  612. package/dist/tools/registry.d.ts +74 -0
  613. package/dist/tools/registry.d.ts.map +1 -0
  614. package/dist/tools/registry.js +302 -0
  615. package/dist/tools/registry.js.map +1 -0
  616. package/dist/tools/search.d.ts +41 -0
  617. package/dist/tools/search.d.ts.map +1 -0
  618. package/dist/tools/search.js +100 -0
  619. package/dist/tools/search.js.map +1 -0
  620. package/dist/ui.d.ts.map +1 -1
  621. package/dist/ui.js +4 -2
  622. package/dist/ui.js.map +1 -1
  623. package/dist/utils/check-api-status.d.ts +12 -0
  624. package/dist/utils/check-api-status.d.ts.map +1 -0
  625. package/dist/utils/check-api-status.js +82 -0
  626. package/dist/utils/check-api-status.js.map +1 -0
  627. package/dist/utils/diff-parser.d.ts +22 -0
  628. package/dist/utils/diff-parser.d.ts.map +1 -0
  629. package/dist/utils/diff-parser.js +160 -0
  630. package/dist/utils/diff-parser.js.map +1 -0
  631. package/dist/utils/logger.d.ts +34 -0
  632. package/dist/utils/logger.d.ts.map +1 -0
  633. package/dist/utils/logger.js +56 -0
  634. package/dist/utils/logger.js.map +1 -0
  635. package/dist/utils/version.d.ts +21 -0
  636. package/dist/utils/version.d.ts.map +1 -0
  637. package/dist/utils/version.js +52 -0
  638. package/dist/utils/version.js.map +1 -0
  639. package/dist/verification/backup.d.ts +30 -0
  640. package/dist/verification/backup.d.ts.map +1 -0
  641. package/dist/verification/backup.js +259 -0
  642. package/dist/verification/backup.js.map +1 -0
  643. package/dist/verification/compiler.d.ts +20 -0
  644. package/dist/verification/compiler.d.ts.map +1 -0
  645. package/dist/verification/compiler.js +263 -0
  646. package/dist/verification/compiler.js.map +1 -0
  647. package/dist/verification/index.d.ts +59 -0
  648. package/dist/verification/index.d.ts.map +1 -0
  649. package/dist/verification/index.js +273 -0
  650. package/dist/verification/index.js.map +1 -0
  651. package/dist/verification/test-runner.d.ts +27 -0
  652. package/dist/verification/test-runner.d.ts.map +1 -0
  653. package/dist/verification/test-runner.js +379 -0
  654. package/dist/verification/test-runner.js.map +1 -0
  655. package/package.json +39 -14
  656. package/ARCHITECTURE.md +0 -240
  657. package/CHANGELOG.md +0 -44
  658. package/CONTRIBUTING.md +0 -171
  659. package/dist/benchmark.d.ts +0 -39
  660. package/dist/benchmark.d.ts.map +0 -1
  661. package/dist/benchmark.js +0 -195
  662. package/dist/benchmark.js.map +0 -1
  663. package/dist/scaffold.d.ts +0 -14
  664. package/dist/scaffold.d.ts.map +0 -1
  665. package/dist/scaffold.js +0 -85
  666. package/dist/scaffold.js.map +0 -1
  667. package/templates/next-page/app/layout.tsx +0 -19
  668. package/templates/next-page/app/page.tsx +0 -10
  669. package/templates/next-page/package.json +0 -22
  670. package/templates/node-api/index.js +0 -57
  671. package/templates/node-api/package.json +0 -13
@@ -0,0 +1,151 @@
1
+ /**
2
+ * Infrastructure: Enhanced Security Gate
3
+ * Comprehensive security validation combining all security scanners
4
+ *
5
+ * Research-Driven Security:
6
+ * - AI SAST Scanner (existing) - 45% of AI code has flaws
7
+ * - License Scanner - 35% license contamination risk
8
+ * - Provider Bias Detector - Vendor lock-in prevention
9
+ * - Uncertainty Quantifier - Hallucination risk
10
+ *
11
+ * All checks must pass before code generation/editing
12
+ */
13
+ import { getSecurityScanCache } from '../cache/security-scan-cache.js';
14
+ /**
15
+ * Enhanced Security Gate
16
+ * Orchestrates all security scanners
17
+ */
18
+ export class EnhancedSecurityGate {
19
+ sastScanner;
20
+ licenseScanner;
21
+ providerBiasDetector;
22
+ uncertaintyQuantifier;
23
+ scanCache = getSecurityScanCache();
24
+ constructor(sastScanner, licenseScanner, providerBiasDetector, uncertaintyQuantifier) {
25
+ this.sastScanner = sastScanner;
26
+ this.licenseScanner = licenseScanner;
27
+ this.providerBiasDetector = providerBiasDetector;
28
+ this.uncertaintyQuantifier = uncertaintyQuantifier;
29
+ }
30
+ /**
31
+ * Comprehensive security scan
32
+ * PERFORMANCE OPTIMIZATION: Parallelizes independent scans for ~3x speedup
33
+ */
34
+ async scan(filepath, code, instruction, context) {
35
+ const errors = [];
36
+ const warnings = [];
37
+ // PERFORMANCE: Check cache first (bypasses expensive scans for unchanged files)
38
+ const cachedResults = this.scanCache.get(filepath, code);
39
+ if (cachedResults) {
40
+ // Return cached results (skip expensive scans)
41
+ const passed = cachedResults.sast.passed && cachedResults.license.passed;
42
+ if (!cachedResults.sast.passed) {
43
+ errors.push(`Security vulnerabilities: ${cachedResults.sast.criticalCount} critical, ${cachedResults.sast.highCount} high`);
44
+ }
45
+ if (!cachedResults.license.passed) {
46
+ errors.push(`License conflicts: ${cachedResults.license.criticalCount} critical issues`);
47
+ }
48
+ if (!cachedResults.providerBias.passed) {
49
+ warnings.push(`Provider bias detected: ${cachedResults.providerBias.criticalCount} critical issues`);
50
+ }
51
+ // Still run uncertainty quantification if needed (it's fast and context-dependent)
52
+ let uncertainty;
53
+ if (this.uncertaintyQuantifier && context?.query && code) {
54
+ uncertainty = await this.uncertaintyQuantifier.quantifyUncertainty(context.query, code, { chunks: context.chunks }).catch(() => undefined);
55
+ if (uncertainty?.isHallucinationRisk) {
56
+ warnings.push(`High epistemic uncertainty detected: Possible hallucination risk`);
57
+ }
58
+ }
59
+ return {
60
+ passed: errors.length === 0,
61
+ sast: cachedResults.sast,
62
+ license: cachedResults.license,
63
+ providerBias: cachedResults.providerBias,
64
+ uncertainty,
65
+ errors,
66
+ warnings,
67
+ };
68
+ }
69
+ // PERFORMANCE: Parallelize independent scans (SAST, License, Provider Bias)
70
+ // These scans are independent and can run concurrently
71
+ const scanPromises = [
72
+ // 1. Fast security check on instruction (if provided)
73
+ instruction
74
+ ? this.sastScanner.scanInstruction(instruction).catch(err => {
75
+ console.warn(`[EnhancedSecurityGate] Instruction scan failed: ${err instanceof Error ? err.message : String(err)}`);
76
+ return null;
77
+ })
78
+ : Promise.resolve(null),
79
+ // 2. SAST scan on code
80
+ this.sastScanner.scan(filepath, code).catch(err => {
81
+ console.warn(`[EnhancedSecurityGate] SAST scan failed: ${err instanceof Error ? err.message : String(err)}`);
82
+ return { passed: true, findings: [], criticalCount: 0, highCount: 0 };
83
+ }),
84
+ // 3. License scan
85
+ this.licenseScanner.scan(filepath, code).catch(err => {
86
+ console.warn(`[EnhancedSecurityGate] License scan failed: ${err instanceof Error ? err.message : String(err)}`);
87
+ return { passed: true, findings: [], criticalCount: 0 };
88
+ }),
89
+ // 4. Provider bias detection
90
+ this.providerBiasDetector.scan(filepath, code).catch(err => {
91
+ console.warn(`[EnhancedSecurityGate] Provider bias scan failed: ${err instanceof Error ? err.message : String(err)}`);
92
+ return { passed: true, findings: [], criticalCount: 0 };
93
+ }),
94
+ ];
95
+ // Execute all scans in parallel
96
+ const [instructionSast, sast, license, providerBias] = await Promise.all(scanPromises);
97
+ // Process results
98
+ if (instructionSast && !instructionSast.passed) {
99
+ errors.push(`Security vulnerabilities in instruction: ${instructionSast.findings.length} findings`);
100
+ }
101
+ if (!sast.passed) {
102
+ errors.push(`Security vulnerabilities: ${sast.criticalCount} critical, ${sast.highCount} high`);
103
+ }
104
+ if (!license.passed) {
105
+ errors.push(`License conflicts: ${license.criticalCount} critical issues`);
106
+ }
107
+ if (!providerBias.passed) {
108
+ warnings.push(`Provider bias detected: ${providerBias.criticalCount} critical issues`);
109
+ // Provider bias is a warning, not blocking (unless policy enforces)
110
+ }
111
+ // 5. Uncertainty quantification (runs after parallel scans, depends on context)
112
+ // This is independent but typically faster, so can run in parallel with scans if needed
113
+ let uncertainty;
114
+ if (this.uncertaintyQuantifier && context?.query && code) {
115
+ uncertainty = await this.uncertaintyQuantifier.quantifyUncertainty(context.query, code, { chunks: context.chunks }).catch(err => {
116
+ console.warn(`[EnhancedSecurityGate] Uncertainty quantification failed: ${err instanceof Error ? err.message : String(err)}`);
117
+ return undefined;
118
+ });
119
+ if (uncertainty?.isHallucinationRisk) {
120
+ warnings.push(`High epistemic uncertainty detected: Possible hallucination risk`);
121
+ }
122
+ }
123
+ const passed = errors.length === 0; // Only fail on critical errors
124
+ // Cache results for future use (performance optimization)
125
+ this.scanCache.set(filepath, code, sast, license, providerBias);
126
+ return {
127
+ passed,
128
+ sast,
129
+ license,
130
+ providerBias,
131
+ uncertainty,
132
+ errors,
133
+ warnings,
134
+ };
135
+ }
136
+ /**
137
+ * Fast pre-check on instruction (before expensive operations)
138
+ */
139
+ async fastCheck(instruction) {
140
+ const findings = [];
141
+ const sastResult = await this.sastScanner.scanInstruction(instruction);
142
+ if (sastResult && !sastResult.passed) {
143
+ findings.push(...sastResult.findings.map(f => `${f.severity}: ${f.description}`));
144
+ }
145
+ return {
146
+ allowed: findings.length === 0,
147
+ findings,
148
+ };
149
+ }
150
+ }
151
+ //# sourceMappingURL=enhanced-security-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enhanced-security-gate.js","sourceRoot":"","sources":["../../../src/infrastructure/security/enhanced-security-gate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Infrastructure: Input Validator
3
+ * Enterprise-grade input validation and sanitization
4
+ *
5
+ * Clean Architecture: Infrastructure Layer
6
+ * Security: Prevents injection attacks, validates user input
7
+ */
8
+ export interface ValidationResult {
9
+ valid: boolean;
10
+ errors: string[];
11
+ sanitized?: string;
12
+ }
13
+ /**
14
+ * Validate file path to prevent directory traversal
15
+ */
16
+ export declare function validateFilePath(filepath: string): ValidationResult;
17
+ /**
18
+ * Validate query string to prevent injection
19
+ */
20
+ export declare function validateQuery(query: string): ValidationResult;
21
+ /**
22
+ * Validate API key format
23
+ */
24
+ export declare function validateAPIKey(apiKey: string): ValidationResult;
25
+ /**
26
+ * Validate file content before processing
27
+ */
28
+ export declare function validateFileContent(content: string, maxSize?: number): ValidationResult;
29
+ /**
30
+ * Sanitize user input for logging (prevent sensitive data leakage)
31
+ */
32
+ export declare function sanitizeForLogging(input: string): string;
33
+ //# sourceMappingURL=input-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-validator.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/security/input-validator.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAuCnE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CA4C7D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CA2B/D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,MAAyB,GAAG,gBAAgB,CAkBzG;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAmBxD"}
@@ -0,0 +1,152 @@
1
+ /**
2
+ * Infrastructure: Input Validator
3
+ * Enterprise-grade input validation and sanitization
4
+ *
5
+ * Clean Architecture: Infrastructure Layer
6
+ * Security: Prevents injection attacks, validates user input
7
+ */
8
+ /**
9
+ * Validate file path to prevent directory traversal
10
+ */
11
+ export function validateFilePath(filepath) {
12
+ const errors = [];
13
+ // Check for directory traversal attempts
14
+ if (filepath.includes('..') || filepath.includes('~')) {
15
+ errors.push('Directory traversal detected in file path');
16
+ }
17
+ // Check for absolute paths (should be relative)
18
+ if (filepath.startsWith('/') || /^[A-Z]:\\/.test(filepath)) {
19
+ errors.push('Absolute paths not allowed');
20
+ }
21
+ // Check for null bytes
22
+ if (filepath.includes('\0')) {
23
+ errors.push('Null bytes not allowed in file path');
24
+ }
25
+ // Check for dangerous characters
26
+ const dangerousChars = /[<>:"|?*\x00-\x1f]/;
27
+ if (dangerousChars.test(filepath)) {
28
+ errors.push('Invalid characters in file path');
29
+ }
30
+ // Sanitize path
31
+ let sanitized = filepath
32
+ .replace(/\.\./g, '') // Remove ..
33
+ .replace(/~/g, '') // Remove ~
34
+ .replace(/\0/g, '') // Remove null bytes
35
+ .replace(/[<>:"|?*\x00-\x1f]/g, '_'); // Replace dangerous chars
36
+ // Normalize path separators
37
+ sanitized = sanitized.replace(/\\/g, '/');
38
+ return {
39
+ valid: errors.length === 0,
40
+ errors,
41
+ sanitized: errors.length > 0 ? sanitized : undefined,
42
+ };
43
+ }
44
+ /**
45
+ * Validate query string to prevent injection
46
+ */
47
+ export function validateQuery(query) {
48
+ const errors = [];
49
+ // Check for null bytes
50
+ if (query.includes('\0')) {
51
+ errors.push('Null bytes not allowed in query');
52
+ }
53
+ // Check for command injection patterns
54
+ const commandInjectionPatterns = [
55
+ /[;&|`$(){}[\]]/, // Shell metacharacters
56
+ /<script/i, // XSS attempts
57
+ /javascript:/i, // JavaScript protocol
58
+ /on\w+\s*=/i, // Event handlers
59
+ ];
60
+ for (const pattern of commandInjectionPatterns) {
61
+ if (pattern.test(query)) {
62
+ errors.push('Potentially dangerous characters detected in query');
63
+ break;
64
+ }
65
+ }
66
+ // Sanitize query
67
+ let sanitized = query
68
+ .replace(/\0/g, '') // Remove null bytes
69
+ .replace(/[;&|`$(){}[\]]/g, '') // Remove shell metacharacters
70
+ .replace(/<script/gi, '&lt;script') // Escape script tags
71
+ .replace(/javascript:/gi, '') // Remove javascript protocol
72
+ .replace(/on\w+\s*=/gi, ''); // Remove event handlers
73
+ // Trim and limit length
74
+ sanitized = sanitized.trim();
75
+ const MAX_QUERY_LENGTH = 10000; // Reasonable limit
76
+ if (sanitized.length > MAX_QUERY_LENGTH) {
77
+ errors.push(`Query exceeds maximum length of ${MAX_QUERY_LENGTH} characters`);
78
+ sanitized = sanitized.substring(0, MAX_QUERY_LENGTH);
79
+ }
80
+ return {
81
+ valid: errors.length === 0,
82
+ errors,
83
+ sanitized: errors.length > 0 ? sanitized : undefined,
84
+ };
85
+ }
86
+ /**
87
+ * Validate API key format
88
+ */
89
+ export function validateAPIKey(apiKey) {
90
+ const errors = [];
91
+ if (!apiKey || apiKey.trim().length === 0) {
92
+ errors.push('API key is required');
93
+ }
94
+ // Check minimum length
95
+ if (apiKey.length < 10) {
96
+ errors.push('API key is too short');
97
+ }
98
+ // Check for null bytes
99
+ if (apiKey.includes('\0')) {
100
+ errors.push('Null bytes not allowed in API key');
101
+ }
102
+ // Check for whitespace (API keys shouldn't have spaces)
103
+ if (apiKey !== apiKey.trim()) {
104
+ errors.push('API key should not have leading or trailing whitespace');
105
+ }
106
+ return {
107
+ valid: errors.length === 0,
108
+ errors,
109
+ sanitized: errors.length > 0 ? apiKey.trim() : undefined,
110
+ };
111
+ }
112
+ /**
113
+ * Validate file content before processing
114
+ */
115
+ export function validateFileContent(content, maxSize = 10 * 1024 * 1024) {
116
+ const errors = [];
117
+ // Check size
118
+ const sizeInBytes = new Blob([content]).size;
119
+ if (sizeInBytes > maxSize) {
120
+ errors.push(`File content exceeds maximum size of ${maxSize} bytes`);
121
+ }
122
+ // Check for null bytes (shouldn't be in text files)
123
+ if (content.includes('\0')) {
124
+ errors.push('Null bytes detected in file content');
125
+ }
126
+ return {
127
+ valid: errors.length === 0,
128
+ errors,
129
+ };
130
+ }
131
+ /**
132
+ * Sanitize user input for logging (prevent sensitive data leakage)
133
+ */
134
+ export function sanitizeForLogging(input) {
135
+ // Remove potential secrets (API keys, tokens, etc.)
136
+ let sanitized = input
137
+ // Remove API keys (Cohere format: alphanumeric, 40+ chars)
138
+ .replace(/[A-Za-z0-9]{40,}/g, '[REDACTED]')
139
+ // Remove email addresses
140
+ .replace(/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g, '[EMAIL_REDACTED]')
141
+ // Remove potential tokens
142
+ .replace(/token[=:]\s*[A-Za-z0-9_-]+/gi, 'token=[REDACTED]')
143
+ .replace(/password[=:]\s*[^\s]+/gi, 'password=[REDACTED]')
144
+ .replace(/secret[=:]\s*[^\s]+/gi, 'secret=[REDACTED]');
145
+ // Limit length for logging
146
+ const MAX_LOG_LENGTH = 1000;
147
+ if (sanitized.length > MAX_LOG_LENGTH) {
148
+ sanitized = sanitized.substring(0, MAX_LOG_LENGTH) + '...[TRUNCATED]';
149
+ }
150
+ return sanitized;
151
+ }
152
+ //# sourceMappingURL=input-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-validator.js","sourceRoot":"","sources":["../../../src/infrastructure/security/input-validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Infrastructure: License Scanner
3
+ * Detects license contamination in AI-generated code
4
+ *
5
+ * Research Finding: 35% of AI-generated code contains license irregularities
6
+ * Critical for preventing IP contamination and legal liability
7
+ *
8
+ * Based on research: AI Ethics for Coding Assistants
9
+ * - GPL/MIT/Apache conflicts are common
10
+ * - Automated detection prevents legal liability
11
+ * - Must integrate into CI/CD pipeline
12
+ */
13
+ export interface LicenseFinding {
14
+ license: string;
15
+ filepath: string;
16
+ line?: number;
17
+ conflictType: 'incompatible' | 'missing' | 'ambiguous';
18
+ description: string;
19
+ recommendation: string;
20
+ severity: 'critical' | 'high' | 'medium' | 'low';
21
+ }
22
+ export interface LicenseScanResult {
23
+ findings: LicenseFinding[];
24
+ totalFindings: number;
25
+ criticalCount: number;
26
+ passed: boolean;
27
+ licenseSummary: Record<string, number>;
28
+ }
29
+ /**
30
+ * License Scanner
31
+ * Scans code for license headers and detects conflicts
32
+ */
33
+ export declare class LicenseScanner {
34
+ /**
35
+ * Scan code for license information
36
+ */
37
+ scan(filepath: string, code: string): Promise<LicenseScanResult>;
38
+ /**
39
+ * Detect license headers in code
40
+ */
41
+ private detectLicenseHeaders;
42
+ /**
43
+ * Check if code has open-source patterns (might need license)
44
+ */
45
+ private hasOpenSourcePatterns;
46
+ /**
47
+ * Detect ambiguous license statements
48
+ */
49
+ private detectAmbiguousLicenses;
50
+ /**
51
+ * Check if code has explicit license statement
52
+ */
53
+ private hasExplicitLicense;
54
+ }
55
+ //# sourceMappingURL=license-scanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"license-scanner.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/security/license-scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,cAAc,GAAG,SAAS,GAAG,WAAW,CAAC;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CAClD;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAsBD;;;GAGG;AACH,qBAAa,cAAc;IACzB;;OAEG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAsEtE;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA0B5B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAc7B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAe/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAW3B"}
@@ -0,0 +1,167 @@
1
+ /**
2
+ * Infrastructure: License Scanner
3
+ * Detects license contamination in AI-generated code
4
+ *
5
+ * Research Finding: 35% of AI-generated code contains license irregularities
6
+ * Critical for preventing IP contamination and legal liability
7
+ *
8
+ * Based on research: AI Ethics for Coding Assistants
9
+ * - GPL/MIT/Apache conflicts are common
10
+ * - Automated detection prevents legal liability
11
+ * - Must integrate into CI/CD pipeline
12
+ */
13
+ /**
14
+ * License Compatibility Matrix
15
+ * Based on common open-source license compatibility rules
16
+ */
17
+ const LICENSE_COMPATIBILITY = {
18
+ // GPL is incompatible with most proprietary licenses
19
+ 'GPL-2.0': ['proprietary', 'Apache-2.0'], // GPL-2.0 incompatible with Apache-2.0
20
+ 'GPL-3.0': ['proprietary', 'Apache-2.0'],
21
+ // MIT is permissive and compatible with most
22
+ 'MIT': [], // MIT is compatible with everything
23
+ // Apache-2.0 is compatible with most except GPL-2.0
24
+ 'Apache-2.0': ['GPL-2.0'],
25
+ // BSD is permissive
26
+ 'BSD-2-Clause': [],
27
+ 'BSD-3-Clause': [],
28
+ };
29
+ /**
30
+ * License Scanner
31
+ * Scans code for license headers and detects conflicts
32
+ */
33
+ export class LicenseScanner {
34
+ /**
35
+ * Scan code for license information
36
+ */
37
+ async scan(filepath, code) {
38
+ const findings = [];
39
+ const detectedLicenses = new Set();
40
+ // 1. Detect license headers in code
41
+ const licenseHeaders = this.detectLicenseHeaders(code);
42
+ // 2. Check for license conflicts
43
+ for (const detectedLicense of licenseHeaders) {
44
+ detectedLicenses.add(detectedLicense);
45
+ // Check compatibility with other detected licenses
46
+ for (const otherLicense of licenseHeaders) {
47
+ if (detectedLicense !== otherLicense) {
48
+ const incompatibilities = LICENSE_COMPATIBILITY[detectedLicense] || [];
49
+ if (incompatibilities.includes(otherLicense)) {
50
+ findings.push({
51
+ license: detectedLicense,
52
+ filepath,
53
+ conflictType: 'incompatible',
54
+ description: `License conflict: ${detectedLicense} is incompatible with ${otherLicense}`,
55
+ recommendation: `Remove one of the conflicting licenses or use a compatible license`,
56
+ severity: 'critical',
57
+ });
58
+ }
59
+ }
60
+ }
61
+ }
62
+ // 3. Check for missing licenses in generated code
63
+ // If code appears to use open-source patterns but has no license, warn
64
+ if (licenseHeaders.length === 0 && this.hasOpenSourcePatterns(code)) {
65
+ findings.push({
66
+ license: 'unknown',
67
+ filepath,
68
+ conflictType: 'missing',
69
+ description: 'Generated code may contain open-source patterns but no license header detected',
70
+ recommendation: 'Add appropriate license header or clarify license status',
71
+ severity: 'medium',
72
+ });
73
+ }
74
+ // 4. Check for ambiguous license statements
75
+ const ambiguousLicenses = this.detectAmbiguousLicenses(code);
76
+ for (const ambiguous of ambiguousLicenses) {
77
+ findings.push({
78
+ license: ambiguous,
79
+ filepath,
80
+ conflictType: 'ambiguous',
81
+ description: `Ambiguous license statement detected: ${ambiguous}`,
82
+ recommendation: 'Clarify license type explicitly',
83
+ severity: 'low',
84
+ });
85
+ }
86
+ const criticalCount = findings.filter(f => f.severity === 'critical').length;
87
+ const licenseSummary = {};
88
+ detectedLicenses.forEach(license => {
89
+ licenseSummary[license] = (licenseSummary[license] || 0) + 1;
90
+ });
91
+ return {
92
+ findings,
93
+ totalFindings: findings.length,
94
+ criticalCount,
95
+ passed: criticalCount === 0,
96
+ licenseSummary,
97
+ };
98
+ }
99
+ /**
100
+ * Detect license headers in code
101
+ */
102
+ detectLicenseHeaders(code) {
103
+ const licenses = [];
104
+ const upperCode = code.toUpperCase();
105
+ // Common license patterns
106
+ const patterns = [
107
+ { pattern: /GPL.*?v?[23]/i, license: 'GPL-3.0' },
108
+ { pattern: /GNU.*?GENERAL.*?PUBLIC.*?LICENSE/i, license: 'GPL-3.0' },
109
+ { pattern: /MIT.*?LICENSE/i, license: 'MIT' },
110
+ { pattern: /THE.*?MIT.*?LICENSE/i, license: 'MIT' },
111
+ { pattern: /APACHE.*?LICENSE.*?v?2/i, license: 'Apache-2.0' },
112
+ { pattern: /BSD.*?LICENSE/i, license: 'BSD-3-Clause' },
113
+ { pattern: /BSD.*?2.*?CLAUSE/i, license: 'BSD-2-Clause' },
114
+ { pattern: /ISC.*?LICENSE/i, license: 'ISC' },
115
+ { pattern: /PROPRIETARY/i, license: 'proprietary' },
116
+ ];
117
+ for (const { pattern, license } of patterns) {
118
+ if (pattern.test(code)) {
119
+ licenses.push(license);
120
+ }
121
+ }
122
+ return [...new Set(licenses)]; // Remove duplicates
123
+ }
124
+ /**
125
+ * Check if code has open-source patterns (might need license)
126
+ */
127
+ hasOpenSourcePatterns(code) {
128
+ // Patterns that suggest open-source code
129
+ const patterns = [
130
+ /copyright/i,
131
+ /license/i,
132
+ /github\.com/i,
133
+ /npm/i,
134
+ /import.*from.*['"]/i,
135
+ /require\(/i,
136
+ ];
137
+ return patterns.some(pattern => pattern.test(code));
138
+ }
139
+ /**
140
+ * Detect ambiguous license statements
141
+ */
142
+ detectAmbiguousLicenses(code) {
143
+ const ambiguous = [];
144
+ // Ambiguous patterns
145
+ if (/open.*?source/i.test(code) && !this.hasExplicitLicense(code)) {
146
+ ambiguous.push('open-source (unclear)');
147
+ }
148
+ if (/free.*?software/i.test(code) && !this.hasExplicitLicense(code)) {
149
+ ambiguous.push('free software (unclear)');
150
+ }
151
+ return ambiguous;
152
+ }
153
+ /**
154
+ * Check if code has explicit license statement
155
+ */
156
+ hasExplicitLicense(code) {
157
+ const explicitPatterns = [
158
+ /MIT/i,
159
+ /GPL/i,
160
+ /Apache/i,
161
+ /BSD/i,
162
+ /LICENSE.*?FILE/i,
163
+ ];
164
+ return explicitPatterns.some(pattern => pattern.test(code));
165
+ }
166
+ }
167
+ //# sourceMappingURL=license-scanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"license-scanner.js","sourceRoot":"","sources":["../../../src/infrastructure/security/license-scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAoBH;;;GAGG;AACH,MAAM,qBAAqB,GAA6B;IACtD,qDAAqD;IACrD,SAAS,EAAE,CAAC,aAAa,EAAE,YAAY,CAAC,EAAE,uCAAuC;IACjF,SAAS,EAAE,CAAC,aAAa,EAAE,YAAY,CAAC;IAExC,6CAA6C;IAC7C,KAAK,EAAE,EAAE,EAAE,oCAAoC;IAE/C,oDAAoD;IACpD,YAAY,EAAE,CAAC,SAAS,CAAC;IAEzB,oBAAoB;IACpB,cAAc,EAAE,EAAE;IAClB,cAAc,EAAE,EAAE;CACnB,CAAC;AAEF;;;GAGG;AACH,MAAM,OAAO,cAAc;IACzB;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,QAAgB,EAAE,IAAY;QACvC,MAAM,QAAQ,GAAqB,EAAE,CAAC;QACtC,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;QAE3C,oCAAoC;QACpC,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAEvD,iCAAiC;QACjC,KAAK,MAAM,eAAe,IAAI,cAAc,EAAE,CAAC;YAC7C,gBAAgB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAEtC,mDAAmD;YACnD,KAAK,MAAM,YAAY,IAAI,cAAc,EAAE,CAAC;gBAC1C,IAAI,eAAe,KAAK,YAAY,EAAE,CAAC;oBACrC,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;oBACvE,IAAI,iBAAiB,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;wBAC7C,QAAQ,CAAC,IAAI,CAAC;4BACZ,OAAO,EAAE,eAAe;4BACxB,QAAQ;4BACR,YAAY,EAAE,cAAc;4BAC5B,WAAW,EAAE,qBAAqB,eAAe,yBAAyB,YAAY,EAAE;4BACxF,cAAc,EAAE,oEAAoE;4BACpF,QAAQ,EAAE,UAAU;yBACrB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,kDAAkD;QAClD,uEAAuE;QACvE,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;YACpE,QAAQ,CAAC,IAAI,CAAC;gBACZ,OAAO,EAAE,SAAS;gBAClB,QAAQ;gBACR,YAAY,EAAE,SAAS;gBACvB,WAAW,EAAE,gFAAgF;gBAC7F,cAAc,EAAE,0DAA0D;gBAC1E,QAAQ,EAAE,QAAQ;aACnB,CAAC,CAAC;QACL,CAAC;QAED,4CAA4C;QAC5C,MAAM,iBAAiB,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAC7D,KAAK,MAAM,SAAS,IAAI,iBAAiB,EAAE,CAAC;YAC1C,QAAQ,CAAC,IAAI,CAAC;gBACZ,OAAO,EAAE,SAAS;gBAClB,QAAQ;gBACR,YAAY,EAAE,WAAW;gBACzB,WAAW,EAAE,yCAAyC,SAAS,EAAE;gBACjE,cAAc,EAAE,iCAAiC;gBACjD,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,MAAM,CAAC;QAC7E,MAAM,cAAc,GAA2B,EAAE,CAAC;QAClD,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACjC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,QAAQ;YACR,aAAa,EAAE,QAAQ,CAAC,MAAM;YAC9B,aAAa;YACb,MAAM,EAAE,aAAa,KAAK,CAAC;YAC3B,cAAc;SACf,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,IAAY;QACvC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAErC,0BAA0B;QAC1B,MAAM,QAAQ,GAAG;YACf,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS,EAAE;YAChD,EAAE,OAAO,EAAE,mCAAmC,EAAE,OAAO,EAAE,SAAS,EAAE;YACpE,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,KAAK,EAAE;YAC7C,EAAE,OAAO,EAAE,sBAAsB,EAAE,OAAO,EAAE,KAAK,EAAE;YACnD,EAAE,OAAO,EAAE,yBAAyB,EAAE,OAAO,EAAE,YAAY,EAAE;YAC7D,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,cAAc,EAAE;YACtD,EAAE,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,cAAc,EAAE;YACzD,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,KAAK,EAAE;YAC7C,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE;SACpD,CAAC;QAEF,KAAK,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC5C,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,oBAAoB;IACrD,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,IAAY;QACxC,yCAAyC;QACzC,MAAM,QAAQ,GAAG;YACf,YAAY;YACZ,UAAU;YACV,cAAc;YACd,MAAM;YACN,qBAAqB;YACrB,YAAY;SACb,CAAC;QAEF,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACK,uBAAuB,CAAC,IAAY;QAC1C,MAAM,SAAS,GAAa,EAAE,CAAC;QAE/B,qBAAqB;QACrB,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;YAClE,SAAS,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;YACpE,SAAS,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,IAAY;QACrC,MAAM,gBAAgB,GAAG;YACvB,MAAM;YACN,MAAM;YACN,SAAS;YACT,MAAM;YACN,iBAAiB;SAClB,CAAC;QAEF,OAAO,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,CAAC;CACF"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Infrastructure: Provider Bias Detector
3
+ * Detects vendor-specific SDK/API usage that creates vendor lock-in
4
+ *
5
+ * Research Finding: LLMs systematically favor Google/Amazon services
6
+ * This creates structural vendor lock-in and violates neutrality
7
+ *
8
+ * Based on research: AI Ethics for Coding Assistants
9
+ * - Provider bias detected in LLM outputs
10
+ * - Creates vendor lock-in risk
11
+ * - Must audit and enforce vendor neutrality
12
+ */
13
+ export interface ProviderBiasFinding {
14
+ provider: string;
15
+ service: string;
16
+ filepath: string;
17
+ line?: number;
18
+ description: string;
19
+ recommendation: string;
20
+ severity: 'critical' | 'high' | 'medium' | 'low';
21
+ }
22
+ export interface ProviderBiasResult {
23
+ findings: ProviderBiasFinding[];
24
+ totalFindings: number;
25
+ criticalCount: number;
26
+ providerSummary: Record<string, number>;
27
+ passed: boolean;
28
+ }
29
+ /**
30
+ * Provider Bias Detector
31
+ * Scans code for provider-specific dependencies and flags vendor lock-in risks
32
+ */
33
+ export declare class ProviderBiasDetector {
34
+ private allowedProviders?;
35
+ constructor(allowedProviders?: string[]);
36
+ /**
37
+ * Scan code for provider bias
38
+ */
39
+ scan(filepath: string, code: string): Promise<ProviderBiasResult>;
40
+ /**
41
+ * Detect provider-specific services in code
42
+ */
43
+ private detectProviders;
44
+ /**
45
+ * Detect hardcoded service endpoints/configurations
46
+ */
47
+ private detectHardcodedServices;
48
+ /**
49
+ * Set allowed providers (enforces vendor neutrality policy)
50
+ */
51
+ setAllowedProviders(providers: string[]): void;
52
+ }
53
+ //# sourceMappingURL=provider-bias-detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-bias-detector.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/security/provider-bias-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CAClD;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,EAAE,OAAO,CAAC;CACjB;AA0CD;;;GAGG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,gBAAgB,CAAC,CAAW;gBAExB,gBAAgB,CAAC,EAAE,MAAM,EAAE;IAIvC;;OAEG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAoEvE;;OAEG;IACH,OAAO,CAAC,eAAe;IAevB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAmB/B;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;CAG/C"}