@elsikora/commitizen-plugin-commitlint-ai 1.1.0 → 2.0.0-dev.1

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.
Files changed (528) hide show
  1. package/README.md +245 -59
  2. package/dist/cjs/application/constant/config-file-directory.constant.d.ts +5 -0
  3. package/dist/cjs/application/constant/config-file-directory.constant.d.ts.map +1 -0
  4. package/dist/cjs/application/constant/config-file-directory.constant.js +9 -0
  5. package/dist/cjs/application/constant/config-file-directory.constant.js.map +1 -0
  6. package/dist/cjs/application/constant/config-module-name.constant.d.ts +5 -0
  7. package/dist/cjs/application/constant/config-module-name.constant.d.ts.map +1 -0
  8. package/dist/cjs/application/constant/config-module-name.constant.js +9 -0
  9. package/dist/cjs/application/constant/config-module-name.constant.js.map +1 -0
  10. package/dist/cjs/application/constant/index.d.ts +3 -0
  11. package/dist/cjs/application/constant/index.d.ts.map +1 -0
  12. package/dist/cjs/application/index.d.ts +3 -0
  13. package/dist/cjs/application/index.d.ts.map +1 -0
  14. package/dist/cjs/application/interface/cli-interface-service-select-options.interface.d.ts +22 -0
  15. package/dist/cjs/application/interface/cli-interface-service-select-options.interface.d.ts.map +1 -0
  16. package/dist/cjs/application/interface/cli-interface-service.interface.d.ts +106 -0
  17. package/dist/cjs/application/interface/cli-interface-service.interface.d.ts.map +1 -0
  18. package/dist/cjs/application/interface/command-service.interface.d.ts +20 -0
  19. package/dist/cjs/application/interface/command-service.interface.d.ts.map +1 -0
  20. package/dist/cjs/application/interface/commit-repository.interface.d.ts +33 -0
  21. package/dist/cjs/application/interface/commit-repository.interface.d.ts.map +1 -0
  22. package/dist/cjs/application/interface/commit-validator.interface.d.ts +30 -0
  23. package/dist/cjs/application/interface/commit-validator.interface.d.ts.map +1 -0
  24. package/dist/cjs/application/interface/config-service.interface.d.ts +48 -0
  25. package/dist/cjs/application/interface/config-service.interface.d.ts.map +1 -0
  26. package/dist/cjs/application/interface/config.interface.d.ts +28 -0
  27. package/dist/cjs/application/interface/config.interface.d.ts.map +1 -0
  28. package/dist/cjs/application/interface/file-system-service.interface.d.ts +62 -0
  29. package/dist/cjs/application/interface/file-system-service.interface.d.ts.map +1 -0
  30. package/dist/cjs/application/interface/index.d.ts +10 -0
  31. package/dist/cjs/application/interface/index.d.ts.map +1 -0
  32. package/dist/cjs/application/interface/llm-service.interface.d.ts +44 -0
  33. package/dist/cjs/application/interface/llm-service.interface.d.ts.map +1 -0
  34. package/dist/cjs/application/use-case/configure-llm.use-case.d.ts +39 -0
  35. package/dist/cjs/application/use-case/configure-llm.use-case.d.ts.map +1 -0
  36. package/dist/cjs/application/use-case/configure-llm.use-case.js +367 -0
  37. package/dist/cjs/application/use-case/configure-llm.use-case.js.map +1 -0
  38. package/dist/cjs/application/use-case/generate-commit-message.use-case.d.ts +19 -0
  39. package/dist/cjs/application/use-case/generate-commit-message.use-case.d.ts.map +1 -0
  40. package/dist/cjs/application/use-case/generate-commit-message.use-case.js +49 -0
  41. package/dist/cjs/application/use-case/generate-commit-message.use-case.js.map +1 -0
  42. package/dist/cjs/application/use-case/index.d.ts +5 -0
  43. package/dist/cjs/application/use-case/index.d.ts.map +1 -0
  44. package/dist/cjs/application/use-case/manual-commit.use-case.d.ts +17 -0
  45. package/dist/cjs/application/use-case/manual-commit.use-case.d.ts.map +1 -0
  46. package/dist/cjs/application/use-case/manual-commit.use-case.js +79 -0
  47. package/dist/cjs/application/use-case/manual-commit.use-case.js.map +1 -0
  48. package/dist/cjs/application/use-case/validate-commit-message.use-case.d.ts +27 -0
  49. package/dist/cjs/application/use-case/validate-commit-message.use-case.d.ts.map +1 -0
  50. package/dist/cjs/application/use-case/validate-commit-message.use-case.js +75 -0
  51. package/dist/cjs/application/use-case/validate-commit-message.use-case.js.map +1 -0
  52. package/dist/cjs/domain/constant/index.d.ts +2 -0
  53. package/dist/cjs/domain/constant/index.d.ts.map +1 -0
  54. package/dist/cjs/domain/constant/numeric.constant.d.ts +26 -0
  55. package/dist/cjs/domain/constant/numeric.constant.d.ts.map +1 -0
  56. package/dist/cjs/domain/constant/numeric.constant.js +42 -0
  57. package/dist/cjs/domain/constant/numeric.constant.js.map +1 -0
  58. package/dist/cjs/domain/entity/commit-message.entity.d.ts +35 -0
  59. package/dist/cjs/domain/entity/commit-message.entity.d.ts.map +1 -0
  60. package/dist/cjs/domain/entity/commit-message.entity.js +56 -0
  61. package/dist/cjs/domain/entity/commit-message.entity.js.map +1 -0
  62. package/dist/cjs/domain/entity/index.d.ts +3 -0
  63. package/dist/cjs/domain/entity/index.d.ts.map +1 -0
  64. package/dist/cjs/domain/entity/llm-configuration.entity.d.ts +66 -0
  65. package/dist/cjs/domain/entity/llm-configuration.entity.d.ts.map +1 -0
  66. package/dist/cjs/domain/entity/llm-configuration.entity.js +96 -0
  67. package/dist/cjs/domain/entity/llm-configuration.entity.js.map +1 -0
  68. package/dist/cjs/domain/enum/anthropic-model.enum.d.ts +19 -0
  69. package/dist/cjs/domain/enum/anthropic-model.enum.d.ts.map +1 -0
  70. package/dist/cjs/domain/enum/anthropic-model.enum.js +26 -0
  71. package/dist/cjs/domain/enum/anthropic-model.enum.js.map +1 -0
  72. package/dist/cjs/domain/enum/aws-bedrock-model.enum.d.ts +34 -0
  73. package/dist/cjs/domain/enum/aws-bedrock-model.enum.d.ts.map +1 -0
  74. package/dist/cjs/domain/enum/aws-bedrock-model.enum.js +47 -0
  75. package/dist/cjs/domain/enum/aws-bedrock-model.enum.js.map +1 -0
  76. package/dist/cjs/domain/enum/azure-openai-model.enum.d.ts +18 -0
  77. package/dist/cjs/domain/enum/azure-openai-model.enum.d.ts.map +1 -0
  78. package/dist/cjs/domain/enum/azure-openai-model.enum.js +26 -0
  79. package/dist/cjs/domain/enum/azure-openai-model.enum.js.map +1 -0
  80. package/dist/cjs/domain/enum/commit-mode.enum.d.ts +8 -0
  81. package/dist/cjs/domain/enum/commit-mode.enum.d.ts.map +1 -0
  82. package/dist/cjs/domain/enum/commit-mode.enum.js +11 -0
  83. package/dist/cjs/domain/enum/commit-mode.enum.js.map +1 -0
  84. package/dist/cjs/domain/enum/google-model.enum.d.ts +17 -0
  85. package/dist/cjs/domain/enum/google-model.enum.d.ts.map +1 -0
  86. package/dist/cjs/domain/enum/google-model.enum.js +25 -0
  87. package/dist/cjs/domain/enum/google-model.enum.js.map +1 -0
  88. package/dist/cjs/domain/enum/index.d.ts +10 -0
  89. package/dist/cjs/domain/enum/index.d.ts.map +1 -0
  90. package/dist/cjs/domain/enum/llm-provider.enum.d.ts +12 -0
  91. package/dist/cjs/domain/enum/llm-provider.enum.d.ts.map +1 -0
  92. package/dist/cjs/domain/enum/llm-provider.enum.js +15 -0
  93. package/dist/cjs/domain/enum/llm-provider.enum.js.map +1 -0
  94. package/dist/cjs/domain/enum/log-level.enum.d.ts +10 -0
  95. package/dist/cjs/domain/enum/log-level.enum.d.ts.map +1 -0
  96. package/dist/cjs/domain/enum/log-level.enum.js +13 -0
  97. package/dist/cjs/domain/enum/log-level.enum.js.map +1 -0
  98. package/dist/cjs/domain/enum/ollama-model.enum.d.ts +25 -0
  99. package/dist/cjs/domain/enum/ollama-model.enum.d.ts.map +1 -0
  100. package/dist/cjs/domain/enum/ollama-model.enum.js +30 -0
  101. package/dist/cjs/domain/enum/ollama-model.enum.js.map +1 -0
  102. package/dist/cjs/domain/enum/openai-model.enum.d.ts +26 -0
  103. package/dist/cjs/domain/enum/openai-model.enum.d.ts.map +1 -0
  104. package/dist/cjs/domain/enum/openai-model.enum.js +35 -0
  105. package/dist/cjs/domain/enum/openai-model.enum.js.map +1 -0
  106. package/dist/cjs/domain/index.d.ts +4 -0
  107. package/dist/cjs/domain/index.d.ts.map +1 -0
  108. package/dist/cjs/domain/value-object/api-key.value-object.d.ts +27 -0
  109. package/dist/cjs/domain/value-object/api-key.value-object.d.ts.map +1 -0
  110. package/dist/cjs/domain/value-object/api-key.value-object.js +49 -0
  111. package/dist/cjs/domain/value-object/api-key.value-object.js.map +1 -0
  112. package/dist/cjs/domain/value-object/commit-body.value-object.d.ts +33 -0
  113. package/dist/cjs/domain/value-object/commit-body.value-object.d.ts.map +1 -0
  114. package/dist/cjs/domain/value-object/commit-body.value-object.js +59 -0
  115. package/dist/cjs/domain/value-object/commit-body.value-object.js.map +1 -0
  116. package/dist/cjs/domain/value-object/commit-header.value-object.d.ts +30 -0
  117. package/dist/cjs/domain/value-object/commit-header.value-object.d.ts.map +1 -0
  118. package/dist/cjs/domain/value-object/commit-header.value-object.js +57 -0
  119. package/dist/cjs/domain/value-object/commit-header.value-object.js.map +1 -0
  120. package/dist/cjs/domain/value-object/index.d.ts +4 -0
  121. package/dist/cjs/domain/value-object/index.d.ts.map +1 -0
  122. package/dist/cjs/index.d.ts +4 -13
  123. package/dist/cjs/index.d.ts.map +1 -1
  124. package/dist/cjs/index.js +73 -85
  125. package/dist/cjs/index.js.map +1 -1
  126. package/dist/cjs/infrastructure/commit-validator/commitlint-validator.service.d.ts +39 -0
  127. package/dist/cjs/infrastructure/commit-validator/commitlint-validator.service.d.ts.map +1 -0
  128. package/dist/cjs/infrastructure/commit-validator/commitlint-validator.service.js +207 -0
  129. package/dist/cjs/infrastructure/commit-validator/commitlint-validator.service.js.map +1 -0
  130. package/dist/cjs/infrastructure/commit-validator/index.d.ts +2 -0
  131. package/dist/cjs/infrastructure/commit-validator/index.d.ts.map +1 -0
  132. package/dist/cjs/infrastructure/di/container.d.ts +18 -0
  133. package/dist/cjs/infrastructure/di/container.d.ts.map +1 -0
  134. package/dist/cjs/infrastructure/di/container.js +76 -0
  135. package/dist/cjs/infrastructure/di/container.js.map +1 -0
  136. package/dist/cjs/infrastructure/di/index.d.ts +2 -0
  137. package/dist/cjs/infrastructure/di/index.d.ts.map +1 -0
  138. package/dist/cjs/infrastructure/git/git-commit.repository.d.ts +37 -0
  139. package/dist/cjs/infrastructure/git/git-commit.repository.d.ts.map +1 -0
  140. package/dist/cjs/infrastructure/git/git-commit.repository.js +78 -0
  141. package/dist/cjs/infrastructure/git/git-commit.repository.js.map +1 -0
  142. package/dist/cjs/infrastructure/git/index.d.ts +2 -0
  143. package/dist/cjs/infrastructure/git/index.d.ts.map +1 -0
  144. package/dist/cjs/infrastructure/index.d.ts +5 -0
  145. package/dist/cjs/infrastructure/index.d.ts.map +1 -0
  146. package/dist/cjs/infrastructure/llm/anthropic-llm.service.d.ts +40 -0
  147. package/dist/cjs/infrastructure/llm/anthropic-llm.service.d.ts.map +1 -0
  148. package/dist/cjs/infrastructure/llm/anthropic-llm.service.js +310 -0
  149. package/dist/cjs/infrastructure/llm/anthropic-llm.service.js.map +1 -0
  150. package/dist/cjs/infrastructure/llm/aws-bedrock-llm.service.d.ts +61 -0
  151. package/dist/cjs/infrastructure/llm/aws-bedrock-llm.service.d.ts.map +1 -0
  152. package/dist/cjs/infrastructure/llm/aws-bedrock-llm.service.js +505 -0
  153. package/dist/cjs/infrastructure/llm/aws-bedrock-llm.service.js.map +1 -0
  154. package/dist/cjs/infrastructure/llm/azure-openai-llm.service.d.ts +46 -0
  155. package/dist/cjs/infrastructure/llm/azure-openai-llm.service.d.ts.map +1 -0
  156. package/dist/cjs/infrastructure/llm/azure-openai-llm.service.js +338 -0
  157. package/dist/cjs/infrastructure/llm/azure-openai-llm.service.js.map +1 -0
  158. package/dist/cjs/infrastructure/llm/google-llm.service.d.ts +46 -0
  159. package/dist/cjs/infrastructure/llm/google-llm.service.d.ts.map +1 -0
  160. package/dist/cjs/infrastructure/llm/google-llm.service.js +322 -0
  161. package/dist/cjs/infrastructure/llm/google-llm.service.js.map +1 -0
  162. package/dist/cjs/infrastructure/llm/index.d.ts +7 -0
  163. package/dist/cjs/infrastructure/llm/index.d.ts.map +1 -0
  164. package/dist/cjs/infrastructure/llm/ollama-llm.service.d.ts +46 -0
  165. package/dist/cjs/infrastructure/llm/ollama-llm.service.d.ts.map +1 -0
  166. package/dist/cjs/infrastructure/llm/ollama-llm.service.js +369 -0
  167. package/dist/cjs/infrastructure/llm/ollama-llm.service.js.map +1 -0
  168. package/dist/cjs/infrastructure/llm/openai-llm.service.d.ts +46 -0
  169. package/dist/cjs/infrastructure/llm/openai-llm.service.d.ts.map +1 -0
  170. package/dist/cjs/infrastructure/llm/openai-llm.service.js +326 -0
  171. package/dist/cjs/infrastructure/llm/openai-llm.service.js.map +1 -0
  172. package/dist/cjs/infrastructure/service/cosmic-config.service.d.ts +65 -0
  173. package/dist/cjs/infrastructure/service/cosmic-config.service.d.ts.map +1 -0
  174. package/dist/cjs/infrastructure/service/cosmic-config.service.js +174 -0
  175. package/dist/cjs/infrastructure/service/cosmic-config.service.js.map +1 -0
  176. package/dist/cjs/infrastructure/service/index.d.ts +5 -0
  177. package/dist/cjs/infrastructure/service/index.d.ts.map +1 -0
  178. package/dist/cjs/infrastructure/service/node-command.service.d.ts +44 -0
  179. package/dist/cjs/infrastructure/service/node-command.service.d.ts.map +1 -0
  180. package/dist/cjs/infrastructure/service/node-command.service.js +152 -0
  181. package/dist/cjs/infrastructure/service/node-command.service.js.map +1 -0
  182. package/dist/cjs/infrastructure/service/node-file-system.service.d.ts +63 -0
  183. package/dist/cjs/infrastructure/service/node-file-system.service.d.ts.map +1 -0
  184. package/dist/cjs/infrastructure/service/node-file-system.service.js +102 -0
  185. package/dist/cjs/infrastructure/service/node-file-system.service.js.map +1 -0
  186. package/dist/cjs/infrastructure/service/prompts-cli-interface.service.d.ts +115 -0
  187. package/dist/cjs/infrastructure/service/prompts-cli-interface.service.d.ts.map +1 -0
  188. package/dist/cjs/infrastructure/service/prompts-cli-interface.service.js +315 -0
  189. package/dist/cjs/infrastructure/service/prompts-cli-interface.service.js.map +1 -0
  190. package/dist/cjs/presentation/commitizen.adapter.d.ts +24 -0
  191. package/dist/cjs/presentation/commitizen.adapter.d.ts.map +1 -0
  192. package/dist/cjs/presentation/commitizen.adapter.js +292 -0
  193. package/dist/cjs/presentation/commitizen.adapter.js.map +1 -0
  194. package/dist/cjs/presentation/index.d.ts +2 -0
  195. package/dist/cjs/presentation/index.d.ts.map +1 -0
  196. package/dist/esm/application/constant/config-file-directory.constant.d.ts +5 -0
  197. package/dist/esm/application/constant/config-file-directory.constant.d.ts.map +1 -0
  198. package/dist/esm/application/constant/config-file-directory.constant.js +7 -0
  199. package/dist/esm/application/constant/config-file-directory.constant.js.map +1 -0
  200. package/dist/esm/application/constant/config-module-name.constant.d.ts +5 -0
  201. package/dist/esm/application/constant/config-module-name.constant.d.ts.map +1 -0
  202. package/dist/esm/application/constant/config-module-name.constant.js +7 -0
  203. package/dist/esm/application/constant/config-module-name.constant.js.map +1 -0
  204. package/dist/esm/application/constant/index.d.ts +3 -0
  205. package/dist/esm/application/constant/index.d.ts.map +1 -0
  206. package/dist/esm/application/index.d.ts +3 -0
  207. package/dist/esm/application/index.d.ts.map +1 -0
  208. package/dist/esm/application/interface/cli-interface-service-select-options.interface.d.ts +22 -0
  209. package/dist/esm/application/interface/cli-interface-service-select-options.interface.d.ts.map +1 -0
  210. package/dist/esm/application/interface/cli-interface-service.interface.d.ts +106 -0
  211. package/dist/esm/application/interface/cli-interface-service.interface.d.ts.map +1 -0
  212. package/dist/esm/application/interface/command-service.interface.d.ts +20 -0
  213. package/dist/esm/application/interface/command-service.interface.d.ts.map +1 -0
  214. package/dist/esm/application/interface/commit-repository.interface.d.ts +33 -0
  215. package/dist/esm/application/interface/commit-repository.interface.d.ts.map +1 -0
  216. package/dist/esm/application/interface/commit-validator.interface.d.ts +30 -0
  217. package/dist/esm/application/interface/commit-validator.interface.d.ts.map +1 -0
  218. package/dist/esm/application/interface/config-service.interface.d.ts +48 -0
  219. package/dist/esm/application/interface/config-service.interface.d.ts.map +1 -0
  220. package/dist/esm/application/interface/config.interface.d.ts +28 -0
  221. package/dist/esm/application/interface/config.interface.d.ts.map +1 -0
  222. package/dist/esm/application/interface/file-system-service.interface.d.ts +62 -0
  223. package/dist/esm/application/interface/file-system-service.interface.d.ts.map +1 -0
  224. package/dist/esm/application/interface/index.d.ts +10 -0
  225. package/dist/esm/application/interface/index.d.ts.map +1 -0
  226. package/dist/esm/application/interface/llm-service.interface.d.ts +44 -0
  227. package/dist/esm/application/interface/llm-service.interface.d.ts.map +1 -0
  228. package/dist/esm/application/use-case/configure-llm.use-case.d.ts +39 -0
  229. package/dist/esm/application/use-case/configure-llm.use-case.d.ts.map +1 -0
  230. package/dist/esm/application/use-case/configure-llm.use-case.js +365 -0
  231. package/dist/esm/application/use-case/configure-llm.use-case.js.map +1 -0
  232. package/dist/esm/application/use-case/generate-commit-message.use-case.d.ts +19 -0
  233. package/dist/esm/application/use-case/generate-commit-message.use-case.d.ts.map +1 -0
  234. package/dist/esm/application/use-case/generate-commit-message.use-case.js +47 -0
  235. package/dist/esm/application/use-case/generate-commit-message.use-case.js.map +1 -0
  236. package/dist/esm/application/use-case/index.d.ts +5 -0
  237. package/dist/esm/application/use-case/index.d.ts.map +1 -0
  238. package/dist/esm/application/use-case/manual-commit.use-case.d.ts +17 -0
  239. package/dist/esm/application/use-case/manual-commit.use-case.d.ts.map +1 -0
  240. package/dist/esm/application/use-case/manual-commit.use-case.js +77 -0
  241. package/dist/esm/application/use-case/manual-commit.use-case.js.map +1 -0
  242. package/dist/esm/application/use-case/validate-commit-message.use-case.d.ts +27 -0
  243. package/dist/esm/application/use-case/validate-commit-message.use-case.d.ts.map +1 -0
  244. package/dist/esm/application/use-case/validate-commit-message.use-case.js +73 -0
  245. package/dist/esm/application/use-case/validate-commit-message.use-case.js.map +1 -0
  246. package/dist/esm/domain/constant/index.d.ts +2 -0
  247. package/dist/esm/domain/constant/index.d.ts.map +1 -0
  248. package/dist/esm/domain/constant/numeric.constant.d.ts +26 -0
  249. package/dist/esm/domain/constant/numeric.constant.d.ts.map +1 -0
  250. package/dist/esm/domain/constant/numeric.constant.js +26 -0
  251. package/dist/esm/domain/constant/numeric.constant.js.map +1 -0
  252. package/dist/esm/domain/entity/commit-message.entity.d.ts +35 -0
  253. package/dist/esm/domain/entity/commit-message.entity.d.ts.map +1 -0
  254. package/dist/esm/domain/entity/commit-message.entity.js +54 -0
  255. package/dist/esm/domain/entity/commit-message.entity.js.map +1 -0
  256. package/dist/esm/domain/entity/index.d.ts +3 -0
  257. package/dist/esm/domain/entity/index.d.ts.map +1 -0
  258. package/dist/esm/domain/entity/llm-configuration.entity.d.ts +66 -0
  259. package/dist/esm/domain/entity/llm-configuration.entity.d.ts.map +1 -0
  260. package/dist/esm/domain/entity/llm-configuration.entity.js +94 -0
  261. package/dist/esm/domain/entity/llm-configuration.entity.js.map +1 -0
  262. package/dist/esm/domain/enum/anthropic-model.enum.d.ts +19 -0
  263. package/dist/esm/domain/enum/anthropic-model.enum.d.ts.map +1 -0
  264. package/dist/esm/domain/enum/anthropic-model.enum.js +26 -0
  265. package/dist/esm/domain/enum/anthropic-model.enum.js.map +1 -0
  266. package/dist/esm/domain/enum/aws-bedrock-model.enum.d.ts +34 -0
  267. package/dist/esm/domain/enum/aws-bedrock-model.enum.d.ts.map +1 -0
  268. package/dist/esm/domain/enum/aws-bedrock-model.enum.js +47 -0
  269. package/dist/esm/domain/enum/aws-bedrock-model.enum.js.map +1 -0
  270. package/dist/esm/domain/enum/azure-openai-model.enum.d.ts +18 -0
  271. package/dist/esm/domain/enum/azure-openai-model.enum.d.ts.map +1 -0
  272. package/dist/esm/domain/enum/azure-openai-model.enum.js +26 -0
  273. package/dist/esm/domain/enum/azure-openai-model.enum.js.map +1 -0
  274. package/dist/esm/domain/enum/commit-mode.enum.d.ts +8 -0
  275. package/dist/esm/domain/enum/commit-mode.enum.d.ts.map +1 -0
  276. package/dist/esm/domain/enum/commit-mode.enum.js +11 -0
  277. package/dist/esm/domain/enum/commit-mode.enum.js.map +1 -0
  278. package/dist/esm/domain/enum/google-model.enum.d.ts +17 -0
  279. package/dist/esm/domain/enum/google-model.enum.d.ts.map +1 -0
  280. package/dist/esm/domain/enum/google-model.enum.js +25 -0
  281. package/dist/esm/domain/enum/google-model.enum.js.map +1 -0
  282. package/dist/esm/domain/enum/index.d.ts +10 -0
  283. package/dist/esm/domain/enum/index.d.ts.map +1 -0
  284. package/dist/esm/domain/enum/llm-provider.enum.d.ts +12 -0
  285. package/dist/esm/domain/enum/llm-provider.enum.d.ts.map +1 -0
  286. package/dist/esm/domain/enum/llm-provider.enum.js +15 -0
  287. package/dist/esm/domain/enum/llm-provider.enum.js.map +1 -0
  288. package/dist/esm/domain/enum/log-level.enum.d.ts +10 -0
  289. package/dist/esm/domain/enum/log-level.enum.d.ts.map +1 -0
  290. package/dist/esm/domain/enum/log-level.enum.js +13 -0
  291. package/dist/esm/domain/enum/log-level.enum.js.map +1 -0
  292. package/dist/esm/domain/enum/ollama-model.enum.d.ts +25 -0
  293. package/dist/esm/domain/enum/ollama-model.enum.d.ts.map +1 -0
  294. package/dist/esm/domain/enum/ollama-model.enum.js +30 -0
  295. package/dist/esm/domain/enum/ollama-model.enum.js.map +1 -0
  296. package/dist/esm/domain/enum/openai-model.enum.d.ts +26 -0
  297. package/dist/esm/domain/enum/openai-model.enum.d.ts.map +1 -0
  298. package/dist/esm/domain/enum/openai-model.enum.js +35 -0
  299. package/dist/esm/domain/enum/openai-model.enum.js.map +1 -0
  300. package/dist/esm/domain/index.d.ts +4 -0
  301. package/dist/esm/domain/index.d.ts.map +1 -0
  302. package/dist/esm/domain/value-object/api-key.value-object.d.ts +27 -0
  303. package/dist/esm/domain/value-object/api-key.value-object.d.ts.map +1 -0
  304. package/dist/esm/domain/value-object/api-key.value-object.js +47 -0
  305. package/dist/esm/domain/value-object/api-key.value-object.js.map +1 -0
  306. package/dist/esm/domain/value-object/commit-body.value-object.d.ts +33 -0
  307. package/dist/esm/domain/value-object/commit-body.value-object.d.ts.map +1 -0
  308. package/dist/esm/domain/value-object/commit-body.value-object.js +57 -0
  309. package/dist/esm/domain/value-object/commit-body.value-object.js.map +1 -0
  310. package/dist/esm/domain/value-object/commit-header.value-object.d.ts +30 -0
  311. package/dist/esm/domain/value-object/commit-header.value-object.d.ts.map +1 -0
  312. package/dist/esm/domain/value-object/commit-header.value-object.js +55 -0
  313. package/dist/esm/domain/value-object/commit-header.value-object.js.map +1 -0
  314. package/dist/esm/domain/value-object/index.d.ts +4 -0
  315. package/dist/esm/domain/value-object/index.d.ts.map +1 -0
  316. package/dist/esm/index.d.ts +4 -13
  317. package/dist/esm/index.d.ts.map +1 -1
  318. package/dist/esm/index.js +29 -84
  319. package/dist/esm/index.js.map +1 -1
  320. package/dist/esm/infrastructure/commit-validator/commitlint-validator.service.d.ts +39 -0
  321. package/dist/esm/infrastructure/commit-validator/commitlint-validator.service.d.ts.map +1 -0
  322. package/dist/esm/infrastructure/commit-validator/commitlint-validator.service.js +205 -0
  323. package/dist/esm/infrastructure/commit-validator/commitlint-validator.service.js.map +1 -0
  324. package/dist/esm/infrastructure/commit-validator/index.d.ts +2 -0
  325. package/dist/esm/infrastructure/commit-validator/index.d.ts.map +1 -0
  326. package/dist/esm/infrastructure/di/container.d.ts +18 -0
  327. package/dist/esm/infrastructure/di/container.d.ts.map +1 -0
  328. package/dist/esm/infrastructure/di/container.js +63 -0
  329. package/dist/esm/infrastructure/di/container.js.map +1 -0
  330. package/dist/esm/infrastructure/di/index.d.ts +2 -0
  331. package/dist/esm/infrastructure/di/index.d.ts.map +1 -0
  332. package/dist/esm/infrastructure/git/git-commit.repository.d.ts +37 -0
  333. package/dist/esm/infrastructure/git/git-commit.repository.d.ts.map +1 -0
  334. package/dist/esm/infrastructure/git/git-commit.repository.js +76 -0
  335. package/dist/esm/infrastructure/git/git-commit.repository.js.map +1 -0
  336. package/dist/esm/infrastructure/git/index.d.ts +2 -0
  337. package/dist/esm/infrastructure/git/index.d.ts.map +1 -0
  338. package/dist/esm/infrastructure/index.d.ts +5 -0
  339. package/dist/esm/infrastructure/index.d.ts.map +1 -0
  340. package/dist/esm/infrastructure/llm/anthropic-llm.service.d.ts +40 -0
  341. package/dist/esm/infrastructure/llm/anthropic-llm.service.d.ts.map +1 -0
  342. package/dist/esm/infrastructure/llm/anthropic-llm.service.js +308 -0
  343. package/dist/esm/infrastructure/llm/anthropic-llm.service.js.map +1 -0
  344. package/dist/esm/infrastructure/llm/aws-bedrock-llm.service.d.ts +61 -0
  345. package/dist/esm/infrastructure/llm/aws-bedrock-llm.service.d.ts.map +1 -0
  346. package/dist/esm/infrastructure/llm/aws-bedrock-llm.service.js +503 -0
  347. package/dist/esm/infrastructure/llm/aws-bedrock-llm.service.js.map +1 -0
  348. package/dist/esm/infrastructure/llm/azure-openai-llm.service.d.ts +46 -0
  349. package/dist/esm/infrastructure/llm/azure-openai-llm.service.d.ts.map +1 -0
  350. package/dist/esm/infrastructure/llm/azure-openai-llm.service.js +336 -0
  351. package/dist/esm/infrastructure/llm/azure-openai-llm.service.js.map +1 -0
  352. package/dist/esm/infrastructure/llm/google-llm.service.d.ts +46 -0
  353. package/dist/esm/infrastructure/llm/google-llm.service.d.ts.map +1 -0
  354. package/dist/esm/infrastructure/llm/google-llm.service.js +320 -0
  355. package/dist/esm/infrastructure/llm/google-llm.service.js.map +1 -0
  356. package/dist/esm/infrastructure/llm/index.d.ts +7 -0
  357. package/dist/esm/infrastructure/llm/index.d.ts.map +1 -0
  358. package/dist/esm/infrastructure/llm/ollama-llm.service.d.ts +46 -0
  359. package/dist/esm/infrastructure/llm/ollama-llm.service.d.ts.map +1 -0
  360. package/dist/esm/infrastructure/llm/ollama-llm.service.js +367 -0
  361. package/dist/esm/infrastructure/llm/ollama-llm.service.js.map +1 -0
  362. package/dist/esm/infrastructure/llm/openai-llm.service.d.ts +46 -0
  363. package/dist/esm/infrastructure/llm/openai-llm.service.d.ts.map +1 -0
  364. package/dist/esm/infrastructure/llm/openai-llm.service.js +324 -0
  365. package/dist/esm/infrastructure/llm/openai-llm.service.js.map +1 -0
  366. package/dist/esm/infrastructure/service/cosmic-config.service.d.ts +65 -0
  367. package/dist/esm/infrastructure/service/cosmic-config.service.d.ts.map +1 -0
  368. package/dist/esm/infrastructure/service/cosmic-config.service.js +172 -0
  369. package/dist/esm/infrastructure/service/cosmic-config.service.js.map +1 -0
  370. package/dist/esm/infrastructure/service/index.d.ts +5 -0
  371. package/dist/esm/infrastructure/service/index.d.ts.map +1 -0
  372. package/dist/esm/infrastructure/service/node-command.service.d.ts +44 -0
  373. package/dist/esm/infrastructure/service/node-command.service.d.ts.map +1 -0
  374. package/dist/esm/infrastructure/service/node-command.service.js +150 -0
  375. package/dist/esm/infrastructure/service/node-command.service.js.map +1 -0
  376. package/dist/esm/infrastructure/service/node-file-system.service.d.ts +63 -0
  377. package/dist/esm/infrastructure/service/node-file-system.service.d.ts.map +1 -0
  378. package/dist/esm/infrastructure/service/node-file-system.service.js +100 -0
  379. package/dist/esm/infrastructure/service/node-file-system.service.js.map +1 -0
  380. package/dist/esm/infrastructure/service/prompts-cli-interface.service.d.ts +115 -0
  381. package/dist/esm/infrastructure/service/prompts-cli-interface.service.d.ts.map +1 -0
  382. package/dist/esm/infrastructure/service/prompts-cli-interface.service.js +313 -0
  383. package/dist/esm/infrastructure/service/prompts-cli-interface.service.js.map +1 -0
  384. package/dist/esm/presentation/commitizen.adapter.d.ts +24 -0
  385. package/dist/esm/presentation/commitizen.adapter.d.ts.map +1 -0
  386. package/dist/esm/presentation/commitizen.adapter.js +290 -0
  387. package/dist/esm/presentation/commitizen.adapter.js.map +1 -0
  388. package/dist/esm/presentation/index.d.ts +2 -0
  389. package/dist/esm/presentation/index.d.ts.map +1 -0
  390. package/dist/tsconfig.tsbuildinfo +1 -1
  391. package/index.cjs +1 -2
  392. package/package.json +33 -24
  393. package/dist/cjs/ManualProcess.d.ts +0 -6
  394. package/dist/cjs/ManualProcess.d.ts.map +0 -1
  395. package/dist/cjs/ManualProcess.js +0 -111
  396. package/dist/cjs/ManualProcess.js.map +0 -1
  397. package/dist/cjs/Process.d.ts +0 -6
  398. package/dist/cjs/Process.d.ts.map +0 -1
  399. package/dist/cjs/Process.js +0 -165
  400. package/dist/cjs/Process.js.map +0 -1
  401. package/dist/cjs/Question.d.ts +0 -46
  402. package/dist/cjs/Question.d.ts.map +0 -1
  403. package/dist/cjs/SectionBody.d.ts +0 -4
  404. package/dist/cjs/SectionBody.d.ts.map +0 -1
  405. package/dist/cjs/SectionFooter.d.ts +0 -13
  406. package/dist/cjs/SectionFooter.d.ts.map +0 -1
  407. package/dist/cjs/SectionHeader.d.ts +0 -15
  408. package/dist/cjs/SectionHeader.d.ts.map +0 -1
  409. package/dist/cjs/services/commitlintConfig.d.ts +0 -4
  410. package/dist/cjs/services/commitlintConfig.d.ts.map +0 -1
  411. package/dist/cjs/services/commitlintConfig.js +0 -198
  412. package/dist/cjs/services/commitlintConfig.js.map +0 -1
  413. package/dist/cjs/services/commitlintValidator.d.ts +0 -20
  414. package/dist/cjs/services/commitlintValidator.d.ts.map +0 -1
  415. package/dist/cjs/services/commitlintValidator.js +0 -145
  416. package/dist/cjs/services/commitlintValidator.js.map +0 -1
  417. package/dist/cjs/services/getRuleQuestionConfig.d.ts +0 -4
  418. package/dist/cjs/services/getRuleQuestionConfig.d.ts.map +0 -1
  419. package/dist/cjs/services/llm/anthropic.d.ts +0 -3
  420. package/dist/cjs/services/llm/anthropic.d.ts.map +0 -1
  421. package/dist/cjs/services/llm/anthropic.js +0 -118
  422. package/dist/cjs/services/llm/anthropic.js.map +0 -1
  423. package/dist/cjs/services/llm/config.d.ts +0 -5
  424. package/dist/cjs/services/llm/config.d.ts.map +0 -1
  425. package/dist/cjs/services/llm/config.js +0 -181
  426. package/dist/cjs/services/llm/config.js.map +0 -1
  427. package/dist/cjs/services/llm/index.d.ts +0 -6
  428. package/dist/cjs/services/llm/index.d.ts.map +0 -1
  429. package/dist/cjs/services/llm/index.js +0 -399
  430. package/dist/cjs/services/llm/index.js.map +0 -1
  431. package/dist/cjs/services/llm/models.d.ts +0 -34
  432. package/dist/cjs/services/llm/models.d.ts.map +0 -1
  433. package/dist/cjs/services/llm/models.js +0 -65
  434. package/dist/cjs/services/llm/models.js.map +0 -1
  435. package/dist/cjs/services/llm/openai.d.ts +0 -3
  436. package/dist/cjs/services/llm/openai.d.ts.map +0 -1
  437. package/dist/cjs/services/llm/openai.js +0 -111
  438. package/dist/cjs/services/llm/openai.js.map +0 -1
  439. package/dist/cjs/services/llm/types.d.ts +0 -71
  440. package/dist/cjs/services/llm/types.d.ts.map +0 -1
  441. package/dist/cjs/store/defaultPromptConfigs.d.ts +0 -33
  442. package/dist/cjs/store/defaultPromptConfigs.d.ts.map +0 -1
  443. package/dist/cjs/store/defaultPromptConfigs.js +0 -39
  444. package/dist/cjs/store/defaultPromptConfigs.js.map +0 -1
  445. package/dist/cjs/store/prompts.d.ts +0 -6
  446. package/dist/cjs/store/prompts.d.ts.map +0 -1
  447. package/dist/cjs/store/prompts.js +0 -40
  448. package/dist/cjs/store/prompts.js.map +0 -1
  449. package/dist/cjs/store/rules.d.ts +0 -7
  450. package/dist/cjs/store/rules.d.ts.map +0 -1
  451. package/dist/cjs/types.d.ts +0 -3
  452. package/dist/cjs/types.d.ts.map +0 -1
  453. package/dist/cjs/utils/case-function.d.ts +0 -9
  454. package/dist/cjs/utils/case-function.d.ts.map +0 -1
  455. package/dist/cjs/utils/full-stop-function.d.ts +0 -9
  456. package/dist/cjs/utils/full-stop-function.d.ts.map +0 -1
  457. package/dist/cjs/utils/leading-blank-function.d.ts +0 -8
  458. package/dist/cjs/utils/leading-blank-function.d.ts.map +0 -1
  459. package/dist/cjs/utils/rules.d.ts +0 -26
  460. package/dist/cjs/utils/rules.d.ts.map +0 -1
  461. package/dist/esm/ManualProcess.d.ts +0 -6
  462. package/dist/esm/ManualProcess.d.ts.map +0 -1
  463. package/dist/esm/ManualProcess.js +0 -107
  464. package/dist/esm/ManualProcess.js.map +0 -1
  465. package/dist/esm/Process.d.ts +0 -6
  466. package/dist/esm/Process.d.ts.map +0 -1
  467. package/dist/esm/Process.js +0 -161
  468. package/dist/esm/Process.js.map +0 -1
  469. package/dist/esm/Question.d.ts +0 -46
  470. package/dist/esm/Question.d.ts.map +0 -1
  471. package/dist/esm/SectionBody.d.ts +0 -4
  472. package/dist/esm/SectionBody.d.ts.map +0 -1
  473. package/dist/esm/SectionFooter.d.ts +0 -13
  474. package/dist/esm/SectionFooter.d.ts.map +0 -1
  475. package/dist/esm/SectionHeader.d.ts +0 -15
  476. package/dist/esm/SectionHeader.d.ts.map +0 -1
  477. package/dist/esm/services/commitlintConfig.d.ts +0 -4
  478. package/dist/esm/services/commitlintConfig.d.ts.map +0 -1
  479. package/dist/esm/services/commitlintConfig.js +0 -196
  480. package/dist/esm/services/commitlintConfig.js.map +0 -1
  481. package/dist/esm/services/commitlintValidator.d.ts +0 -20
  482. package/dist/esm/services/commitlintValidator.d.ts.map +0 -1
  483. package/dist/esm/services/commitlintValidator.js +0 -142
  484. package/dist/esm/services/commitlintValidator.js.map +0 -1
  485. package/dist/esm/services/getRuleQuestionConfig.d.ts +0 -4
  486. package/dist/esm/services/getRuleQuestionConfig.d.ts.map +0 -1
  487. package/dist/esm/services/llm/anthropic.d.ts +0 -3
  488. package/dist/esm/services/llm/anthropic.d.ts.map +0 -1
  489. package/dist/esm/services/llm/anthropic.js +0 -116
  490. package/dist/esm/services/llm/anthropic.js.map +0 -1
  491. package/dist/esm/services/llm/config.d.ts +0 -5
  492. package/dist/esm/services/llm/config.d.ts.map +0 -1
  493. package/dist/esm/services/llm/config.js +0 -178
  494. package/dist/esm/services/llm/config.js.map +0 -1
  495. package/dist/esm/services/llm/index.d.ts +0 -6
  496. package/dist/esm/services/llm/index.d.ts.map +0 -1
  497. package/dist/esm/services/llm/index.js +0 -394
  498. package/dist/esm/services/llm/index.js.map +0 -1
  499. package/dist/esm/services/llm/models.d.ts +0 -34
  500. package/dist/esm/services/llm/models.d.ts.map +0 -1
  501. package/dist/esm/services/llm/models.js +0 -60
  502. package/dist/esm/services/llm/models.js.map +0 -1
  503. package/dist/esm/services/llm/openai.d.ts +0 -3
  504. package/dist/esm/services/llm/openai.d.ts.map +0 -1
  505. package/dist/esm/services/llm/openai.js +0 -109
  506. package/dist/esm/services/llm/openai.js.map +0 -1
  507. package/dist/esm/services/llm/types.d.ts +0 -71
  508. package/dist/esm/services/llm/types.d.ts.map +0 -1
  509. package/dist/esm/store/defaultPromptConfigs.d.ts +0 -33
  510. package/dist/esm/store/defaultPromptConfigs.d.ts.map +0 -1
  511. package/dist/esm/store/defaultPromptConfigs.js +0 -35
  512. package/dist/esm/store/defaultPromptConfigs.js.map +0 -1
  513. package/dist/esm/store/prompts.d.ts +0 -6
  514. package/dist/esm/store/prompts.d.ts.map +0 -1
  515. package/dist/esm/store/prompts.js +0 -38
  516. package/dist/esm/store/prompts.js.map +0 -1
  517. package/dist/esm/store/rules.d.ts +0 -7
  518. package/dist/esm/store/rules.d.ts.map +0 -1
  519. package/dist/esm/types.d.ts +0 -3
  520. package/dist/esm/types.d.ts.map +0 -1
  521. package/dist/esm/utils/case-function.d.ts +0 -9
  522. package/dist/esm/utils/case-function.d.ts.map +0 -1
  523. package/dist/esm/utils/full-stop-function.d.ts +0 -9
  524. package/dist/esm/utils/full-stop-function.d.ts.map +0 -1
  525. package/dist/esm/utils/leading-blank-function.d.ts +0 -8
  526. package/dist/esm/utils/leading-blank-function.d.ts.map +0 -1
  527. package/dist/esm/utils/rules.d.ts +0 -26
  528. package/dist/esm/utils/rules.d.ts.map +0 -1
@@ -1,142 +0,0 @@
1
- import { exec } from 'node:child_process';
2
- import { promisify } from 'node:util';
3
- import chalk from 'chalk';
4
- import { generateCommitMessage } from './llm/index.js';
5
-
6
- const execAsync = promisify(exec);
7
- /**
8
- * Validates a commit message and retries with LLM if there are errors
9
- * @param commitConfig The original commit configuration
10
- * @param promptContext The prompt context used to generate the commit
11
- * @returns A promise that resolves to a valid commit message or null if manual entry is needed
12
- */
13
- async function validateAndFixCommitMessage(commitConfig, promptContext) {
14
- // Initial commit message
15
- const commitMessage = constructCommitMessage(commitConfig);
16
- // Validate with commitlint
17
- const validation = await validateWithCommitlint(commitMessage);
18
- // If valid, return the message
19
- if (validation.isValid) {
20
- return commitMessage;
21
- }
22
- // If not valid and we have errors, try to fix with LLM
23
- if (!validation.isValid && validation.errors) {
24
- console.log(chalk.yellow("Commit message failed validation. Attempting to fix..."));
25
- const MAX_RETRIES = 3;
26
- let currentConfig = commitConfig;
27
- const allErrors = [];
28
- // Attempt to fix the commit message up to MAX_RETRIES times
29
- // eslint-disable-next-line @elsikora-typescript/typedef
30
- for (let attempt = 0; attempt < MAX_RETRIES; attempt++) {
31
- // Add the current validation error to our history
32
- if (validation.errors) {
33
- allErrors.push(validation.errors);
34
- }
35
- try {
36
- // Generate a fixed commit message with accumulated errors
37
- currentConfig = await fixCommitMessageWithLLM(currentConfig, validation.errors ?? "", promptContext, allErrors.slice(0, -1));
38
- // Construct and validate the new commit message
39
- const fixedCommitMessage = constructCommitMessage(currentConfig);
40
- const fixedValidation = await validateWithCommitlint(fixedCommitMessage);
41
- // If valid, return the successful message
42
- if (fixedValidation.isValid) {
43
- console.log(chalk.green(`Commit message fixed successfully on attempt ${attempt + 1}!`));
44
- return fixedCommitMessage;
45
- }
46
- // If we still have errors, continue with next attempt
47
- if (fixedValidation.errors) {
48
- console.log(chalk.yellow(`Fix attempt ${attempt + 1} still has errors. ${MAX_RETRIES - attempt - 1} retries left.`));
49
- // Update the validation errors for the next iteration
50
- validation.errors = fixedValidation.errors;
51
- }
52
- }
53
- catch (error) {
54
- console.error(chalk.red(`Error while trying to fix commit message (attempt ${attempt + 1}):`, error));
55
- break; // Exit retry loop on error
56
- }
57
- }
58
- // If we exhausted all retries and still have issues
59
- console.log(chalk.red(`Unable to fix commit message automatically after ${MAX_RETRIES} attempts.`));
60
- console.log(chalk.yellow("Switching to manual commit entry mode..."));
61
- return null; // Signal to switch to manual mode
62
- }
63
- // Default case, return original even if there were issues
64
- return commitMessage;
65
- }
66
- /**
67
- * Validates a commit message with commitlint
68
- * @param commitMessage The commit message to validate
69
- * @returns A promise that resolves to an object with the validation result
70
- */
71
- async function validateWithCommitlint(commitMessage) {
72
- try {
73
- // Create temporary file with commit message
74
- const cmd = `echo "${commitMessage}" | npx commitlint`;
75
- // eslint-disable-next-line @elsikora-typescript/no-unsafe-call
76
- await execAsync(cmd);
77
- return { isValid: true };
78
- }
79
- catch (error) {
80
- // If commitlint exits with non-zero code, it means there are validation errors
81
- const typedError = error;
82
- return {
83
- errors: typedError.stdout ?? typedError.stderr ?? typedError.message,
84
- isValid: false,
85
- };
86
- }
87
- }
88
- /**
89
- * Constructs a commit message from a CommitConfig object
90
- * @param commitConfig The commit configuration
91
- * @returns The formatted commit message
92
- */
93
- function constructCommitMessage(commitConfig) {
94
- const type = commitConfig.type;
95
- const scope = commitConfig.scope ? `(${commitConfig.scope})` : "";
96
- const subject = commitConfig.subject;
97
- const header = `${type}${scope}: ${subject}`;
98
- // Body with optional breaking change
99
- let body = "";
100
- if (commitConfig.isBreaking) {
101
- body = `BREAKING CHANGE: ${commitConfig.breakingBody ?? "This commit introduces breaking changes."}\n\n`;
102
- }
103
- if (commitConfig.body) {
104
- body += commitConfig.body;
105
- }
106
- // Footer with issue references
107
- let footer = "";
108
- if (commitConfig.issues && commitConfig.issues.length > 0) {
109
- footer = `Issues: ${commitConfig.issues.join(", ")}`;
110
- }
111
- if (commitConfig.references && commitConfig.references.length > 0) {
112
- if (footer)
113
- footer += "\n";
114
- footer += `References: ${commitConfig.references.join(", ")}`;
115
- }
116
- // Combine all parts
117
- return [header, body, footer].filter(Boolean).join("\n\n");
118
- }
119
- /**
120
- * Sends a commit message to the LLM for correction with provided errors
121
- * @param commitConfig The original commit configuration
122
- * @param errors The errors from commitlint
123
- * @param promptContext The prompt context to use for regeneration
124
- * @param previousErrors Optional accumulated errors from previous attempts
125
- * @returns A promise that resolves to a new commit configuration
126
- */
127
- async function fixCommitMessageWithLLM(commitConfig, errors, promptContext, previousErrors = []) {
128
- // Create a history of all errors to help the LLM understand what needs fixing
129
- const errorHistory = [...previousErrors, errors].map((error, index) => `Attempt ${index + 1} errors:\n${error}`).join("\n\n");
130
- // Create an enhanced context that includes the original commit and errors
131
- const enhancedContext = {
132
- ...promptContext,
133
- // Add a note about the previous attempt and errors
134
- diff: `${promptContext.diff ?? ""}\n\nCommit message failed validation with these errors:\n${errorHistory}\n\nOriginal commit structure:\n${JSON.stringify(commitConfig, null)}`,
135
- };
136
- console.log(chalk.yellow(`Commit message had validation errors. Asking LLM to fix... (Attempt ${previousErrors.length + 1})`));
137
- // Generate a new commit message with the enhanced context
138
- return await generateCommitMessage(enhancedContext);
139
- }
140
-
141
- export { validateAndFixCommitMessage, validateWithCommitlint };
142
- //# sourceMappingURL=commitlintValidator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"commitlintValidator.js","sources":["../../../../src/services/commitlintValidator.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import type { RuleField } from "@commitlint/types";
2
- import type { QuestionConfig } from "../Question.js";
3
- export default function getRuleQuestionConfig(rulePrefix: RuleField): null | QuestionConfig;
4
- //# sourceMappingURL=getRuleQuestionConfig.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getRuleQuestionConfig.d.ts","sourceRoot":"","sources":["../../../src/services/getRuleQuestionConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsB,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAQrD,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,UAAU,EAAE,SAAS,GAAG,IAAI,GAAG,cAAc,CA4E1F"}
@@ -1,3 +0,0 @@
1
- import type { CommitConfig, LLMPromptContext } from "./types.js";
2
- export declare function generateCommitWithAnthropic(apiKey: string, model: string, context: LLMPromptContext): Promise<CommitConfig>;
3
- //# sourceMappingURL=anthropic.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../../src/services/llm/anthropic.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAIjE,wBAAsB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,CAwHjI"}
@@ -1,116 +0,0 @@
1
- import Anthropic from '@anthropic-ai/sdk';
2
-
3
- /* eslint-disable @elsikora-typescript/restrict-plus-operands,@elsikora-sonar/no-nested-conditional */
4
- async function generateCommitWithAnthropic(apiKey, model, context) {
5
- const anthropic = new Anthropic({
6
- apiKey: apiKey,
7
- });
8
- // eslint-disable-next-line @elsikora-typescript/typedef
9
- const typeOptions = context.typeEnum
10
- ?.map((type) => {
11
- const description = context.typeDescriptions?.[type]?.description ?? "";
12
- const emoji = context.typeDescriptions?.[type]?.emoji ?? "";
13
- const title = context.typeDescriptions?.[type]?.title ?? "";
14
- // eslint-disable-next-line @elsikora-sonar/no-nested-template-literals
15
- return `${type}${emoji ? ` (${emoji})` : ""}: ${description}${title ? ` (${title})` : ""}`;
16
- })
17
- .join("\n") ?? "";
18
- const systemPrompt = `You are a commit message generator. Your task is to create a conventional commit message based on the git changes provided.`;
19
- const userPrompt = `I need you to generate a commit message for these changes:
20
- ${context.diff ? `Diff:\n${context.diff}\n` : ""}
21
- ${context.files ? `Files changed:\n${context.files}` : ""}
22
-
23
- The commit should follow this format:
24
- <type>[(scope)]: <subject>
25
- [BLANK LINE]
26
- [body]
27
- [BLANK LINE]
28
- [footer]
29
-
30
- Type constraints:
31
- ${context.typeEnum ? "- Allowed types: " + context.typeEnum.join(", ") : ""}
32
- ${context.typeCase ? "- Case style: " + context.typeCase.join(", ") : ""}
33
- ${context.typeEmpty === undefined ? "" : "- Can be empty: " + (context.typeEmpty ? "yes" : "no")}
34
-
35
- Available types:
36
- ${typeOptions}
37
-
38
- Scope constraints:
39
- ${context.scopeCase ? "- Case style: " + context.scopeCase.join(", ") : ""}
40
- ${context.scopeEmpty === undefined ? "" : "- Can be empty: " + (context.scopeEmpty ? "yes" : "no")}
41
- ${context.scopeMaxLength ? "- Max length: " + context.scopeMaxLength + " characters" : ""}
42
-
43
- Scope guidelines:
44
- - The scope should represent the area of the codebase being modified
45
- - If the changes affect multiple areas, use a comma-separated list or select the most significant area
46
- - If unsure, use "global" as the scope
47
- - If the scope is not relevant, it can be omitted
48
- - Analyze the changed files and determine the most appropriate scope based on directories, modules or components
49
- - Scopes are usually short (one or two words) and lowercase
50
-
51
- Subject constraints:
52
- ${context.subject.case ? "- Case style: " + context.subject.case.join(", ") : ""}
53
- ${context.subject.empty === undefined ? "" : "- Can be empty: " + (context.subject.empty ? "yes" : "no")}
54
- ${context.subject.maxLength ? "- Max length: " + context.subject.maxLength + " characters" : ""}
55
- ${context.subject.minLength ? "- Min length: " + context.subject.minLength + " characters" : ""}
56
- ${context.subject.fullStop ? "- End with '" + context.subject.fullStop.value + "': " + (context.subject.fullStop.required ? "yes" : "no") : ""}
57
-
58
- Header constraints:
59
- ${context.headerCase ? "- Case style: " + context.headerCase.join(", ") : ""}
60
- ${context.headerMaxLength ? "- Max length: " + context.headerMaxLength + " characters" : ""}
61
- ${context.headerMinLength ? "- Min length: " + context.headerMinLength + " characters" : ""}
62
- ${context.headerFullStop ? "- End with '" + context.headerFullStop.value + "': " + (context.headerFullStop.required ? "yes" : "no") : ""}
63
-
64
- Body constraints:
65
- ${context.body?.maxLength ? "- Max length: " + context.body.maxLength + " characters" : ""}
66
- ${context.body?.maxLineLength ? "- Max line length: " + context.body.maxLineLength + " characters" : ""}
67
- ${context.body?.leadingBlank === undefined ? "" : "- Leading blank line: " + (context.body.leadingBlank ? "required" : "not required")}
68
- ${context.body?.fullStop ? "- End with '" + context.body.fullStop.value + "': " + (context.body.fullStop.required ? "yes" : "no") : ""}
69
-
70
- Footer constraints:
71
- ${context.footerLeadingBlank === undefined ? "" : "- Leading blank line: " + (context.footerLeadingBlank ? "required" : "not required")}
72
- ${context.footerMaxLineLength ? "- Max line length: " + context.footerMaxLineLength + " characters" : ""}
73
-
74
- Return a JSON object with these fields:
75
- {
76
- "type": "the commit type",
77
- "scope": "the commit scope (optional)",
78
- "subject": "the commit subject line",
79
- "body": "the commit body (optional)",
80
- "isBreaking": boolean,
81
- "breakingBody": "description of breaking changes (if isBreaking is true)",
82
- "issues": ["list of issue references"],
83
- "references": ["list of other references"]
84
- }
85
-
86
- The JSON object should be parseable and follow the structure outlined above.`;
87
- try {
88
- const response = await anthropic.messages.create({
89
- // eslint-disable-next-line @elsikora-typescript/no-magic-numbers
90
- max_tokens: 2048,
91
- messages: [{ content: userPrompt, role: "user" }],
92
- model: model,
93
- system: systemPrompt,
94
- });
95
- // eslint-disable-next-line @elsikora-typescript/no-unsafe-member-access,@elsikora-typescript/no-unsafe-assignment
96
- const content = response.content[0]?.text;
97
- if (!content) {
98
- throw new Error("Empty response from Anthropic");
99
- }
100
- // Extract JSON from response
101
- // eslint-disable-next-line @elsikora-typescript/no-unsafe-assignment,@elsikora-typescript/no-unsafe-call,@elsikora-typescript/no-unsafe-member-access,@elsikora-sonar/slow-regex
102
- const jsonMatch = content.match(/\{[\s\S]*\}/);
103
- if (!jsonMatch) {
104
- throw new Error("No JSON found in Anthropic response");
105
- }
106
- // eslint-disable-next-line @elsikora-typescript/no-unsafe-argument,@elsikora-typescript/no-unsafe-member-access
107
- return JSON.parse(jsonMatch[0]);
108
- }
109
- catch (error) {
110
- console.error("Error generating commit with Anthropic:", error);
111
- throw error;
112
- }
113
- }
114
-
115
- export { generateCommitWithAnthropic };
116
- //# sourceMappingURL=anthropic.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"anthropic.js","sources":["../../../../../src/services/llm/anthropic.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import type { LLMConfig } from "./types.js";
2
- export declare const setLLMConfig: (config: LLMConfig | null) => void;
3
- export declare const getLLMConfig: () => LLMConfig | null;
4
- export declare const resetModeErrorFlag: () => void;
5
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/services/llm/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAoB,MAAM,YAAY,CAAC;AAsK9D,eAAO,MAAM,YAAY,GAAI,QAAQ,SAAS,GAAG,IAAI,KAAG,IAQvD,CAAC;AAEF,eAAO,MAAM,YAAY,QAAO,SAAS,GAAG,IA+B3C,CAAC;AAGF,eAAO,MAAM,kBAAkB,QAAO,IAErC,CAAC"}
@@ -1,178 +0,0 @@
1
- import { existsSync, readFileSync, mkdirSync, writeFileSync } from 'node:fs';
2
- import { join } from 'node:path';
3
- import chalk from 'chalk';
4
-
5
- // Store config in project directory
6
- const CONFIG_DIR = "./.elsikora";
7
- const CONFIG_FILE = join(CONFIG_DIR, "commitlint-ai.config.js");
8
- // In-memory cache
9
- let llmConfig = null;
10
- // Track if we've already shown mode error
11
- // eslint-disable-next-line @elsikora-typescript/naming-convention
12
- let modeErrorShown = false;
13
- // Check for API keys in environment variables
14
- const getApiKeyFromEnvironment = (provider) => {
15
- try {
16
- if (typeof process === "undefined" || !process?.env) {
17
- return null;
18
- }
19
- if (provider === "openai") {
20
- return process.env.OPENAI_API_KEY ?? null;
21
- }
22
- else if (provider === "anthropic") {
23
- return process.env.ANTHROPIC_API_KEY ?? null;
24
- }
25
- }
26
- catch (error) {
27
- console.warn("Error accessing environment variables:", error);
28
- }
29
- return null;
30
- };
31
- // Try to load config from file
32
- const loadConfigFromFile = () => {
33
- try {
34
- if (existsSync(CONFIG_FILE)) {
35
- // Check if there's an old JSON file and migrate it
36
- const oldJsonFile = join(CONFIG_DIR, "commitlint-ai.json");
37
- if (existsSync(oldJsonFile)) {
38
- try {
39
- const oldConfigString = readFileSync(oldJsonFile, "utf8");
40
- const oldConfig = JSON.parse(oldConfigString);
41
- // Save to the new JS format
42
- saveConfigToFile({
43
- ...oldConfig,
44
- apiKey: "",
45
- });
46
- return oldConfig;
47
- }
48
- catch {
49
- // Ignore errors with old file
50
- }
51
- }
52
- // Parse the ESM module format
53
- const configContent = readFileSync(CONFIG_FILE, "utf8");
54
- try {
55
- // Use a safer approach than regex + JSON.parse
56
- // Execute the file as a JavaScript module using Node's module system
57
- // This is a workaround since we can't directly import a dynamic path in ESM
58
- // Simple approach: parse the JS object manually
59
- const objectPattern = /export\s+default\s+(\{[\s\S]*?\});/;
60
- const match = objectPattern.exec(configContent);
61
- if (match?.[1]) {
62
- // Extract the object text
63
- const objectText = match[1];
64
- // Extract property assignments with a more robust approach
65
- const properties = {};
66
- // Match each property in the format: key: value,
67
- // eslint-disable-next-line @elsikora-sonar/slow-regex
68
- const propertyRegex = /\s*(\w+)\s*:\s*["']?([^,"'}\s]+)["']?\s*,?/g;
69
- // eslint-disable-next-line @elsikora-typescript/typedef
70
- let propertyMatch;
71
- // eslint-disable-next-line @elsikora-typescript/no-unsafe-argument
72
- while ((propertyMatch = propertyRegex.exec(objectText)) !== null) {
73
- const [, key, value] = propertyMatch;
74
- // Remove quotes if present
75
- // eslint-disable-next-line @elsikora-sonar/anchor-precedence,@elsikora-typescript/no-unsafe-assignment,@elsikora-typescript/no-unsafe-member-access,@elsikora-typescript/no-unsafe-call
76
- const cleanValue = value.replaceAll(/^["']|["']$/g, "");
77
- // eslint-disable-next-line @elsikora-typescript/no-unsafe-assignment,@elsikora-typescript/no-unsafe-member-access
78
- properties[key] = cleanValue;
79
- }
80
- // Validate mode if present (but only show the error once)
81
- if (properties.mode && properties.mode !== "auto" && properties.mode !== "manual") {
82
- if (!modeErrorShown) {
83
- // eslint-disable-next-line @elsikora-typescript/restrict-template-expressions
84
- console.log(chalk.yellow(`Invalid mode "${properties.mode}" in config. Valid values are "auto" or "manual". Using default mode.`));
85
- modeErrorShown = true;
86
- }
87
- properties.mode = "auto";
88
- }
89
- return properties;
90
- }
91
- return null;
92
- }
93
- catch (parseError) {
94
- console.warn("Error parsing config file:", parseError);
95
- return null;
96
- }
97
- }
98
- }
99
- catch (error) {
100
- console.warn("Error loading LLM config from file:", error);
101
- }
102
- return null;
103
- };
104
- // Save config to file (without API key)
105
- const saveConfigToFile = (config) => {
106
- try {
107
- if (!existsSync(CONFIG_DIR)) {
108
- // eslint-disable-next-line @elsikora-typescript/naming-convention
109
- mkdirSync(CONFIG_DIR, { recursive: true });
110
- }
111
- // Only store provider, model, and mode (not the API key)
112
- const storageConfig = {
113
- mode: config.mode,
114
- model: config.model,
115
- provider: config.provider,
116
- };
117
- // Format as an ESM module with proper JS object format (no quotes around keys)
118
- // Always include the mode field, using 'auto' as default if not specified
119
- const jsContent = `export default {
120
- provider: ${JSON.stringify(storageConfig.provider)},
121
- model: ${JSON.stringify(storageConfig.model)},
122
- mode: ${JSON.stringify(storageConfig.mode ?? "auto")}
123
- };`;
124
- writeFileSync(CONFIG_FILE, jsContent, "utf8");
125
- // Remove old JSON file if it exists
126
- const oldJsonFile = join(CONFIG_DIR, "commitlint-ai.json");
127
- if (existsSync(oldJsonFile)) {
128
- try {
129
- // Use fs.unlink to delete the file - but we'll use writeFileSync with empty content instead
130
- // to avoid needing to import fs.unlink
131
- writeFileSync(oldJsonFile, "", "utf8");
132
- }
133
- catch {
134
- // Ignore errors with old file deletion
135
- }
136
- }
137
- }
138
- catch (error) {
139
- console.warn("Error saving LLM config to file:", error);
140
- }
141
- };
142
- const setLLMConfig = (config) => {
143
- llmConfig = config;
144
- if (config) {
145
- // For debugging
146
- console.log("Saving config:", JSON.stringify({ ...config, apiKey: "[REDACTED]" }));
147
- saveConfigToFile(config);
148
- }
149
- };
150
- const getLLMConfig = () => {
151
- // If we already have a config in memory, return it
152
- if (llmConfig) {
153
- return llmConfig;
154
- }
155
- // Otherwise try to load from file
156
- const fileConfig = loadConfigFromFile();
157
- if (fileConfig) {
158
- // Check if we have API key in environment
159
- const apiKey = getApiKeyFromEnvironment(fileConfig.provider);
160
- // We have both the saved config and an API key
161
- if (apiKey) {
162
- llmConfig = {
163
- ...fileConfig,
164
- apiKey,
165
- };
166
- return llmConfig;
167
- }
168
- // Return the partial config (without API key) so we can ask for it
169
- return {
170
- ...fileConfig,
171
- apiKey: "", // Empty string signals that we need to ask for the key
172
- };
173
- }
174
- return null;
175
- };
176
-
177
- export { getLLMConfig, setLLMConfig };
178
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sources":["../../../../../src/services/llm/config.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import type { CommitConfig, LLMPromptContext } from "./types.js";
2
- export { getLLMConfig, setLLMConfig } from "./config.js";
3
- export type * from "./types.js";
4
- export declare function generateCommitMessage(context: LLMPromptContext): Promise<CommitConfig>;
5
- export declare function selectLLMProvider(inquirer: any): Promise<void>;
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/llm/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAA+B,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAe9F,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACzD,mBAAmB,YAAY,CAAC;AAEhC,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,CAyD5F;AAGD,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAuWpE"}