@elsikora/commitizen-plugin-commitlint-ai 1.2.0 → 2.0.0-dev.2

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 (417) hide show
  1. package/README.md +256 -57
  2. package/dist/cjs/application/constant/config-file-directory.constant.d.ts +4 -0
  3. package/dist/cjs/application/constant/config-file-directory.constant.js +9 -0
  4. package/dist/cjs/application/constant/config-file-directory.constant.js.map +1 -0
  5. package/dist/cjs/application/constant/config-module-name.constant.d.ts +4 -0
  6. package/dist/cjs/application/constant/config-module-name.constant.js +9 -0
  7. package/dist/cjs/application/constant/config-module-name.constant.js.map +1 -0
  8. package/dist/cjs/application/constant/index.d.ts +2 -0
  9. package/dist/cjs/application/index.d.ts +2 -0
  10. package/dist/cjs/application/interface/cli-interface-service-select-options.interface.d.ts +21 -0
  11. package/dist/cjs/application/interface/cli-interface-service.interface.d.ts +105 -0
  12. package/dist/cjs/application/interface/command-service.interface.d.ts +19 -0
  13. package/dist/cjs/application/interface/commit-repository.interface.d.ts +32 -0
  14. package/dist/cjs/application/interface/commit-validator.interface.d.ts +29 -0
  15. package/dist/cjs/application/interface/config-service.interface.d.ts +47 -0
  16. package/dist/cjs/application/interface/config.interface.d.ts +27 -0
  17. package/dist/cjs/application/interface/file-system-service.interface.d.ts +61 -0
  18. package/dist/cjs/application/interface/index.d.ts +9 -0
  19. package/dist/cjs/application/interface/llm-service.interface.d.ts +43 -0
  20. package/dist/cjs/application/use-case/configure-llm.use-case.d.ts +39 -0
  21. package/dist/cjs/application/use-case/configure-llm.use-case.js +373 -0
  22. package/dist/cjs/application/use-case/configure-llm.use-case.js.map +1 -0
  23. package/dist/cjs/application/use-case/generate-commit-message.use-case.d.ts +18 -0
  24. package/dist/cjs/application/use-case/generate-commit-message.use-case.js +49 -0
  25. package/dist/cjs/application/use-case/generate-commit-message.use-case.js.map +1 -0
  26. package/dist/cjs/application/use-case/index.d.ts +4 -0
  27. package/dist/cjs/application/use-case/manual-commit.use-case.d.ts +16 -0
  28. package/dist/cjs/application/use-case/manual-commit.use-case.js +81 -0
  29. package/dist/cjs/application/use-case/manual-commit.use-case.js.map +1 -0
  30. package/dist/cjs/application/use-case/validate-commit-message.use-case.d.ts +26 -0
  31. package/dist/cjs/application/use-case/validate-commit-message.use-case.js +76 -0
  32. package/dist/cjs/application/use-case/validate-commit-message.use-case.js.map +1 -0
  33. package/dist/cjs/domain/constant/index.d.ts +1 -0
  34. package/dist/cjs/domain/constant/numeric.constant.d.ts +25 -0
  35. package/dist/cjs/domain/constant/numeric.constant.js +42 -0
  36. package/dist/cjs/domain/constant/numeric.constant.js.map +1 -0
  37. package/dist/cjs/domain/entity/commit-message.entity.d.ts +47 -0
  38. package/dist/cjs/domain/entity/commit-message.entity.js +71 -0
  39. package/dist/cjs/domain/entity/commit-message.entity.js.map +1 -0
  40. package/dist/cjs/domain/entity/index.d.ts +2 -0
  41. package/dist/cjs/domain/entity/llm-configuration.entity.d.ts +73 -0
  42. package/dist/cjs/domain/entity/llm-configuration.entity.js +107 -0
  43. package/dist/cjs/domain/entity/llm-configuration.entity.js.map +1 -0
  44. package/dist/cjs/domain/enum/anthropic-model.enum.d.ts +18 -0
  45. package/dist/cjs/domain/enum/anthropic-model.enum.js +26 -0
  46. package/dist/cjs/domain/enum/anthropic-model.enum.js.map +1 -0
  47. package/dist/cjs/domain/enum/aws-bedrock-model.enum.d.ts +33 -0
  48. package/dist/cjs/domain/enum/aws-bedrock-model.enum.js +47 -0
  49. package/dist/cjs/domain/enum/aws-bedrock-model.enum.js.map +1 -0
  50. package/dist/cjs/domain/enum/azure-openai-model.enum.d.ts +17 -0
  51. package/dist/cjs/domain/enum/azure-openai-model.enum.js +26 -0
  52. package/dist/cjs/domain/enum/azure-openai-model.enum.js.map +1 -0
  53. package/dist/cjs/domain/enum/commit-mode.enum.d.ts +7 -0
  54. package/dist/cjs/domain/enum/commit-mode.enum.js +11 -0
  55. package/dist/cjs/domain/enum/commit-mode.enum.js.map +1 -0
  56. package/dist/cjs/domain/enum/google-model.enum.d.ts +16 -0
  57. package/dist/cjs/domain/enum/google-model.enum.js +25 -0
  58. package/dist/cjs/domain/enum/google-model.enum.js.map +1 -0
  59. package/dist/cjs/domain/enum/index.d.ts +9 -0
  60. package/dist/cjs/domain/enum/llm-provider.enum.d.ts +11 -0
  61. package/dist/cjs/domain/enum/llm-provider.enum.js +15 -0
  62. package/dist/cjs/domain/enum/llm-provider.enum.js.map +1 -0
  63. package/dist/cjs/domain/enum/log-level.enum.d.ts +9 -0
  64. package/dist/cjs/domain/enum/log-level.enum.js +13 -0
  65. package/dist/cjs/domain/enum/log-level.enum.js.map +1 -0
  66. package/dist/cjs/domain/enum/ollama-model.enum.d.ts +24 -0
  67. package/dist/cjs/domain/enum/ollama-model.enum.js +30 -0
  68. package/dist/cjs/domain/enum/ollama-model.enum.js.map +1 -0
  69. package/dist/cjs/domain/enum/openai-model.enum.d.ts +25 -0
  70. package/dist/cjs/domain/enum/openai-model.enum.js +35 -0
  71. package/dist/cjs/domain/enum/openai-model.enum.js.map +1 -0
  72. package/dist/cjs/domain/index.d.ts +3 -0
  73. package/dist/cjs/domain/value-object/api-key.value-object.d.ts +28 -0
  74. package/dist/cjs/domain/value-object/api-key.value-object.js +51 -0
  75. package/dist/cjs/domain/value-object/api-key.value-object.js.map +1 -0
  76. package/dist/cjs/domain/value-object/commit-body.value-object.d.ts +39 -0
  77. package/dist/cjs/domain/value-object/commit-body.value-object.js +66 -0
  78. package/dist/cjs/domain/value-object/commit-body.value-object.js.map +1 -0
  79. package/dist/cjs/domain/value-object/commit-header.value-object.d.ts +35 -0
  80. package/dist/cjs/domain/value-object/commit-header.value-object.js +63 -0
  81. package/dist/cjs/domain/value-object/commit-header.value-object.js.map +1 -0
  82. package/dist/cjs/domain/value-object/index.d.ts +3 -0
  83. package/dist/cjs/index.d.ts +14 -12
  84. package/dist/cjs/index.js +85 -83
  85. package/dist/cjs/index.js.map +1 -1
  86. package/dist/cjs/infrastructure/commit-validator/commitlint-validator.service.d.ts +38 -0
  87. package/dist/cjs/infrastructure/commit-validator/commitlint-validator.service.js +207 -0
  88. package/dist/cjs/infrastructure/commit-validator/commitlint-validator.service.js.map +1 -0
  89. package/dist/cjs/infrastructure/commit-validator/index.d.ts +1 -0
  90. package/dist/cjs/infrastructure/di/container.d.ts +17 -0
  91. package/dist/cjs/infrastructure/di/container.js +76 -0
  92. package/dist/cjs/infrastructure/di/container.js.map +1 -0
  93. package/dist/cjs/infrastructure/di/index.d.ts +1 -0
  94. package/dist/cjs/infrastructure/git/git-commit.repository.d.ts +36 -0
  95. package/dist/cjs/infrastructure/git/git-commit.repository.js +78 -0
  96. package/dist/cjs/infrastructure/git/git-commit.repository.js.map +1 -0
  97. package/dist/cjs/infrastructure/git/index.d.ts +1 -0
  98. package/dist/cjs/infrastructure/index.d.ts +4 -0
  99. package/dist/cjs/infrastructure/llm/anthropic-llm.service.d.ts +39 -0
  100. package/dist/cjs/infrastructure/llm/anthropic-llm.service.js +323 -0
  101. package/dist/cjs/infrastructure/llm/anthropic-llm.service.js.map +1 -0
  102. package/dist/cjs/infrastructure/llm/aws-bedrock-llm.service.d.ts +60 -0
  103. package/dist/cjs/infrastructure/llm/aws-bedrock-llm.service.js +514 -0
  104. package/dist/cjs/infrastructure/llm/aws-bedrock-llm.service.js.map +1 -0
  105. package/dist/cjs/infrastructure/llm/azure-openai-llm.service.d.ts +45 -0
  106. package/dist/cjs/infrastructure/llm/azure-openai-llm.service.js +351 -0
  107. package/dist/cjs/infrastructure/llm/azure-openai-llm.service.js.map +1 -0
  108. package/dist/cjs/infrastructure/llm/google-llm.service.d.ts +45 -0
  109. package/dist/cjs/infrastructure/llm/google-llm.service.js +335 -0
  110. package/dist/cjs/infrastructure/llm/google-llm.service.js.map +1 -0
  111. package/dist/cjs/infrastructure/llm/index.d.ts +6 -0
  112. package/dist/cjs/infrastructure/llm/ollama-llm.service.d.ts +45 -0
  113. package/dist/cjs/infrastructure/llm/ollama-llm.service.js +387 -0
  114. package/dist/cjs/infrastructure/llm/ollama-llm.service.js.map +1 -0
  115. package/dist/cjs/infrastructure/llm/openai-llm.service.d.ts +45 -0
  116. package/dist/cjs/infrastructure/llm/openai-llm.service.js +339 -0
  117. package/dist/cjs/infrastructure/llm/openai-llm.service.js.map +1 -0
  118. package/dist/cjs/infrastructure/service/cosmic-config.service.d.ts +66 -0
  119. package/dist/cjs/infrastructure/service/cosmic-config.service.js +176 -0
  120. package/dist/cjs/infrastructure/service/cosmic-config.service.js.map +1 -0
  121. package/dist/cjs/infrastructure/service/index.d.ts +4 -0
  122. package/dist/cjs/infrastructure/service/node-command.service.d.ts +45 -0
  123. package/dist/cjs/infrastructure/service/node-command.service.js +154 -0
  124. package/dist/cjs/infrastructure/service/node-command.service.js.map +1 -0
  125. package/dist/cjs/infrastructure/service/node-file-system.service.d.ts +62 -0
  126. package/dist/cjs/infrastructure/service/node-file-system.service.js +102 -0
  127. package/dist/cjs/infrastructure/service/node-file-system.service.js.map +1 -0
  128. package/dist/cjs/infrastructure/service/prompts-cli-interface.service.d.ts +117 -0
  129. package/dist/cjs/infrastructure/service/prompts-cli-interface.service.js +318 -0
  130. package/dist/cjs/infrastructure/service/prompts-cli-interface.service.js.map +1 -0
  131. package/dist/cjs/presentation/commitizen.adapter.d.ts +28 -0
  132. package/dist/cjs/presentation/commitizen.adapter.js +304 -0
  133. package/dist/cjs/presentation/commitizen.adapter.js.map +1 -0
  134. package/dist/cjs/presentation/index.d.ts +1 -0
  135. package/dist/esm/application/constant/config-file-directory.constant.d.ts +4 -0
  136. package/dist/esm/application/constant/config-file-directory.constant.js +7 -0
  137. package/dist/esm/application/constant/config-file-directory.constant.js.map +1 -0
  138. package/dist/esm/application/constant/config-module-name.constant.d.ts +4 -0
  139. package/dist/esm/application/constant/config-module-name.constant.js +7 -0
  140. package/dist/esm/application/constant/config-module-name.constant.js.map +1 -0
  141. package/dist/esm/application/constant/index.d.ts +2 -0
  142. package/dist/esm/application/index.d.ts +2 -0
  143. package/dist/esm/application/interface/cli-interface-service-select-options.interface.d.ts +21 -0
  144. package/dist/esm/application/interface/cli-interface-service.interface.d.ts +105 -0
  145. package/dist/esm/application/interface/command-service.interface.d.ts +19 -0
  146. package/dist/esm/application/interface/commit-repository.interface.d.ts +32 -0
  147. package/dist/esm/application/interface/commit-validator.interface.d.ts +29 -0
  148. package/dist/esm/application/interface/config-service.interface.d.ts +47 -0
  149. package/dist/esm/application/interface/config.interface.d.ts +27 -0
  150. package/dist/esm/application/interface/file-system-service.interface.d.ts +61 -0
  151. package/dist/esm/application/interface/index.d.ts +9 -0
  152. package/dist/esm/application/interface/llm-service.interface.d.ts +43 -0
  153. package/dist/esm/application/use-case/configure-llm.use-case.d.ts +39 -0
  154. package/dist/esm/application/use-case/configure-llm.use-case.js +371 -0
  155. package/dist/esm/application/use-case/configure-llm.use-case.js.map +1 -0
  156. package/dist/esm/application/use-case/generate-commit-message.use-case.d.ts +18 -0
  157. package/dist/esm/application/use-case/generate-commit-message.use-case.js +47 -0
  158. package/dist/esm/application/use-case/generate-commit-message.use-case.js.map +1 -0
  159. package/dist/esm/application/use-case/index.d.ts +4 -0
  160. package/dist/esm/application/use-case/manual-commit.use-case.d.ts +16 -0
  161. package/dist/esm/application/use-case/manual-commit.use-case.js +79 -0
  162. package/dist/esm/application/use-case/manual-commit.use-case.js.map +1 -0
  163. package/dist/esm/application/use-case/validate-commit-message.use-case.d.ts +26 -0
  164. package/dist/esm/application/use-case/validate-commit-message.use-case.js +74 -0
  165. package/dist/esm/application/use-case/validate-commit-message.use-case.js.map +1 -0
  166. package/dist/esm/domain/constant/index.d.ts +1 -0
  167. package/dist/esm/domain/constant/numeric.constant.d.ts +25 -0
  168. package/dist/esm/domain/constant/numeric.constant.js +26 -0
  169. package/dist/esm/domain/constant/numeric.constant.js.map +1 -0
  170. package/dist/esm/domain/entity/commit-message.entity.d.ts +47 -0
  171. package/dist/esm/domain/entity/commit-message.entity.js +69 -0
  172. package/dist/esm/domain/entity/commit-message.entity.js.map +1 -0
  173. package/dist/esm/domain/entity/index.d.ts +2 -0
  174. package/dist/esm/domain/entity/llm-configuration.entity.d.ts +73 -0
  175. package/dist/esm/domain/entity/llm-configuration.entity.js +105 -0
  176. package/dist/esm/domain/entity/llm-configuration.entity.js.map +1 -0
  177. package/dist/esm/domain/enum/anthropic-model.enum.d.ts +18 -0
  178. package/dist/esm/domain/enum/anthropic-model.enum.js +26 -0
  179. package/dist/esm/domain/enum/anthropic-model.enum.js.map +1 -0
  180. package/dist/esm/domain/enum/aws-bedrock-model.enum.d.ts +33 -0
  181. package/dist/esm/domain/enum/aws-bedrock-model.enum.js +47 -0
  182. package/dist/esm/domain/enum/aws-bedrock-model.enum.js.map +1 -0
  183. package/dist/esm/domain/enum/azure-openai-model.enum.d.ts +17 -0
  184. package/dist/esm/domain/enum/azure-openai-model.enum.js +26 -0
  185. package/dist/esm/domain/enum/azure-openai-model.enum.js.map +1 -0
  186. package/dist/esm/domain/enum/commit-mode.enum.d.ts +7 -0
  187. package/dist/esm/domain/enum/commit-mode.enum.js +11 -0
  188. package/dist/esm/domain/enum/commit-mode.enum.js.map +1 -0
  189. package/dist/esm/domain/enum/google-model.enum.d.ts +16 -0
  190. package/dist/esm/domain/enum/google-model.enum.js +25 -0
  191. package/dist/esm/domain/enum/google-model.enum.js.map +1 -0
  192. package/dist/esm/domain/enum/index.d.ts +9 -0
  193. package/dist/esm/domain/enum/llm-provider.enum.d.ts +11 -0
  194. package/dist/esm/domain/enum/llm-provider.enum.js +15 -0
  195. package/dist/esm/domain/enum/llm-provider.enum.js.map +1 -0
  196. package/dist/esm/domain/enum/log-level.enum.d.ts +9 -0
  197. package/dist/esm/domain/enum/log-level.enum.js +13 -0
  198. package/dist/esm/domain/enum/log-level.enum.js.map +1 -0
  199. package/dist/esm/domain/enum/ollama-model.enum.d.ts +24 -0
  200. package/dist/esm/domain/enum/ollama-model.enum.js +30 -0
  201. package/dist/esm/domain/enum/ollama-model.enum.js.map +1 -0
  202. package/dist/esm/domain/enum/openai-model.enum.d.ts +25 -0
  203. package/dist/esm/domain/enum/openai-model.enum.js +35 -0
  204. package/dist/esm/domain/enum/openai-model.enum.js.map +1 -0
  205. package/dist/esm/domain/index.d.ts +3 -0
  206. package/dist/esm/domain/value-object/api-key.value-object.d.ts +28 -0
  207. package/dist/esm/domain/value-object/api-key.value-object.js +49 -0
  208. package/dist/esm/domain/value-object/api-key.value-object.js.map +1 -0
  209. package/dist/esm/domain/value-object/commit-body.value-object.d.ts +39 -0
  210. package/dist/esm/domain/value-object/commit-body.value-object.js +64 -0
  211. package/dist/esm/domain/value-object/commit-body.value-object.js.map +1 -0
  212. package/dist/esm/domain/value-object/commit-header.value-object.d.ts +35 -0
  213. package/dist/esm/domain/value-object/commit-header.value-object.js +61 -0
  214. package/dist/esm/domain/value-object/commit-header.value-object.js.map +1 -0
  215. package/dist/esm/domain/value-object/index.d.ts +3 -0
  216. package/dist/esm/index.d.ts +14 -12
  217. package/dist/esm/index.js +38 -82
  218. package/dist/esm/index.js.map +1 -1
  219. package/dist/esm/infrastructure/commit-validator/commitlint-validator.service.d.ts +38 -0
  220. package/dist/esm/infrastructure/commit-validator/commitlint-validator.service.js +205 -0
  221. package/dist/esm/infrastructure/commit-validator/commitlint-validator.service.js.map +1 -0
  222. package/dist/esm/infrastructure/commit-validator/index.d.ts +1 -0
  223. package/dist/esm/infrastructure/di/container.d.ts +17 -0
  224. package/dist/esm/infrastructure/di/container.js +63 -0
  225. package/dist/esm/infrastructure/di/container.js.map +1 -0
  226. package/dist/esm/infrastructure/di/index.d.ts +1 -0
  227. package/dist/esm/infrastructure/git/git-commit.repository.d.ts +36 -0
  228. package/dist/esm/infrastructure/git/git-commit.repository.js +76 -0
  229. package/dist/esm/infrastructure/git/git-commit.repository.js.map +1 -0
  230. package/dist/esm/infrastructure/git/index.d.ts +1 -0
  231. package/dist/esm/infrastructure/index.d.ts +4 -0
  232. package/dist/esm/infrastructure/llm/anthropic-llm.service.d.ts +39 -0
  233. package/dist/esm/infrastructure/llm/anthropic-llm.service.js +321 -0
  234. package/dist/esm/infrastructure/llm/anthropic-llm.service.js.map +1 -0
  235. package/dist/esm/infrastructure/llm/aws-bedrock-llm.service.d.ts +60 -0
  236. package/dist/esm/infrastructure/llm/aws-bedrock-llm.service.js +512 -0
  237. package/dist/esm/infrastructure/llm/aws-bedrock-llm.service.js.map +1 -0
  238. package/dist/esm/infrastructure/llm/azure-openai-llm.service.d.ts +45 -0
  239. package/dist/esm/infrastructure/llm/azure-openai-llm.service.js +349 -0
  240. package/dist/esm/infrastructure/llm/azure-openai-llm.service.js.map +1 -0
  241. package/dist/esm/infrastructure/llm/google-llm.service.d.ts +45 -0
  242. package/dist/esm/infrastructure/llm/google-llm.service.js +333 -0
  243. package/dist/esm/infrastructure/llm/google-llm.service.js.map +1 -0
  244. package/dist/esm/infrastructure/llm/index.d.ts +6 -0
  245. package/dist/esm/infrastructure/llm/ollama-llm.service.d.ts +45 -0
  246. package/dist/esm/infrastructure/llm/ollama-llm.service.js +385 -0
  247. package/dist/esm/infrastructure/llm/ollama-llm.service.js.map +1 -0
  248. package/dist/esm/infrastructure/llm/openai-llm.service.d.ts +45 -0
  249. package/dist/esm/infrastructure/llm/openai-llm.service.js +337 -0
  250. package/dist/esm/infrastructure/llm/openai-llm.service.js.map +1 -0
  251. package/dist/esm/infrastructure/service/cosmic-config.service.d.ts +66 -0
  252. package/dist/esm/infrastructure/service/cosmic-config.service.js +174 -0
  253. package/dist/esm/infrastructure/service/cosmic-config.service.js.map +1 -0
  254. package/dist/esm/infrastructure/service/index.d.ts +4 -0
  255. package/dist/esm/infrastructure/service/node-command.service.d.ts +45 -0
  256. package/dist/esm/infrastructure/service/node-command.service.js +152 -0
  257. package/dist/esm/infrastructure/service/node-command.service.js.map +1 -0
  258. package/dist/esm/infrastructure/service/node-file-system.service.d.ts +62 -0
  259. package/dist/esm/infrastructure/service/node-file-system.service.js +100 -0
  260. package/dist/esm/infrastructure/service/node-file-system.service.js.map +1 -0
  261. package/dist/esm/infrastructure/service/prompts-cli-interface.service.d.ts +117 -0
  262. package/dist/esm/infrastructure/service/prompts-cli-interface.service.js +316 -0
  263. package/dist/esm/infrastructure/service/prompts-cli-interface.service.js.map +1 -0
  264. package/dist/esm/package.json +19 -0
  265. package/dist/esm/presentation/commitizen.adapter.d.ts +28 -0
  266. package/dist/esm/presentation/commitizen.adapter.js +302 -0
  267. package/dist/esm/presentation/commitizen.adapter.js.map +1 -0
  268. package/dist/esm/presentation/index.d.ts +1 -0
  269. package/index.cjs +1 -2
  270. package/package.json +42 -25
  271. package/dist/cjs/ManualProcess.d.ts +0 -6
  272. package/dist/cjs/ManualProcess.d.ts.map +0 -1
  273. package/dist/cjs/ManualProcess.js +0 -111
  274. package/dist/cjs/ManualProcess.js.map +0 -1
  275. package/dist/cjs/Process.d.ts +0 -6
  276. package/dist/cjs/Process.d.ts.map +0 -1
  277. package/dist/cjs/Process.js +0 -176
  278. package/dist/cjs/Process.js.map +0 -1
  279. package/dist/cjs/Question.d.ts +0 -46
  280. package/dist/cjs/Question.d.ts.map +0 -1
  281. package/dist/cjs/SectionBody.d.ts +0 -4
  282. package/dist/cjs/SectionBody.d.ts.map +0 -1
  283. package/dist/cjs/SectionFooter.d.ts +0 -13
  284. package/dist/cjs/SectionFooter.d.ts.map +0 -1
  285. package/dist/cjs/SectionHeader.d.ts +0 -15
  286. package/dist/cjs/SectionHeader.d.ts.map +0 -1
  287. package/dist/cjs/index.d.ts.map +0 -1
  288. package/dist/cjs/services/commitConfirmation.d.ts +0 -3
  289. package/dist/cjs/services/commitConfirmation.d.ts.map +0 -1
  290. package/dist/cjs/services/commitConfirmation.js +0 -122
  291. package/dist/cjs/services/commitConfirmation.js.map +0 -1
  292. package/dist/cjs/services/commitlintConfig.d.ts +0 -4
  293. package/dist/cjs/services/commitlintConfig.d.ts.map +0 -1
  294. package/dist/cjs/services/commitlintConfig.js +0 -198
  295. package/dist/cjs/services/commitlintConfig.js.map +0 -1
  296. package/dist/cjs/services/commitlintValidator.d.ts +0 -26
  297. package/dist/cjs/services/commitlintValidator.d.ts.map +0 -1
  298. package/dist/cjs/services/commitlintValidator.js +0 -146
  299. package/dist/cjs/services/commitlintValidator.js.map +0 -1
  300. package/dist/cjs/services/getRuleQuestionConfig.d.ts +0 -4
  301. package/dist/cjs/services/getRuleQuestionConfig.d.ts.map +0 -1
  302. package/dist/cjs/services/llm/anthropic.d.ts +0 -3
  303. package/dist/cjs/services/llm/anthropic.d.ts.map +0 -1
  304. package/dist/cjs/services/llm/anthropic.js +0 -118
  305. package/dist/cjs/services/llm/anthropic.js.map +0 -1
  306. package/dist/cjs/services/llm/config.d.ts +0 -5
  307. package/dist/cjs/services/llm/config.d.ts.map +0 -1
  308. package/dist/cjs/services/llm/config.js +0 -181
  309. package/dist/cjs/services/llm/config.js.map +0 -1
  310. package/dist/cjs/services/llm/index.d.ts +0 -6
  311. package/dist/cjs/services/llm/index.d.ts.map +0 -1
  312. package/dist/cjs/services/llm/index.js +0 -399
  313. package/dist/cjs/services/llm/index.js.map +0 -1
  314. package/dist/cjs/services/llm/models.d.ts +0 -34
  315. package/dist/cjs/services/llm/models.d.ts.map +0 -1
  316. package/dist/cjs/services/llm/models.js +0 -65
  317. package/dist/cjs/services/llm/models.js.map +0 -1
  318. package/dist/cjs/services/llm/openai.d.ts +0 -3
  319. package/dist/cjs/services/llm/openai.d.ts.map +0 -1
  320. package/dist/cjs/services/llm/openai.js +0 -111
  321. package/dist/cjs/services/llm/openai.js.map +0 -1
  322. package/dist/cjs/services/llm/types.d.ts +0 -71
  323. package/dist/cjs/services/llm/types.d.ts.map +0 -1
  324. package/dist/cjs/store/defaultPromptConfigs.d.ts +0 -33
  325. package/dist/cjs/store/defaultPromptConfigs.d.ts.map +0 -1
  326. package/dist/cjs/store/defaultPromptConfigs.js +0 -39
  327. package/dist/cjs/store/defaultPromptConfigs.js.map +0 -1
  328. package/dist/cjs/store/prompts.d.ts +0 -6
  329. package/dist/cjs/store/prompts.d.ts.map +0 -1
  330. package/dist/cjs/store/prompts.js +0 -40
  331. package/dist/cjs/store/prompts.js.map +0 -1
  332. package/dist/cjs/store/rules.d.ts +0 -7
  333. package/dist/cjs/store/rules.d.ts.map +0 -1
  334. package/dist/cjs/types.d.ts +0 -3
  335. package/dist/cjs/types.d.ts.map +0 -1
  336. package/dist/cjs/utils/case-function.d.ts +0 -9
  337. package/dist/cjs/utils/case-function.d.ts.map +0 -1
  338. package/dist/cjs/utils/full-stop-function.d.ts +0 -9
  339. package/dist/cjs/utils/full-stop-function.d.ts.map +0 -1
  340. package/dist/cjs/utils/leading-blank-function.d.ts +0 -8
  341. package/dist/cjs/utils/leading-blank-function.d.ts.map +0 -1
  342. package/dist/cjs/utils/rules.d.ts +0 -26
  343. package/dist/cjs/utils/rules.d.ts.map +0 -1
  344. package/dist/esm/ManualProcess.d.ts +0 -6
  345. package/dist/esm/ManualProcess.d.ts.map +0 -1
  346. package/dist/esm/ManualProcess.js +0 -107
  347. package/dist/esm/ManualProcess.js.map +0 -1
  348. package/dist/esm/Process.d.ts +0 -6
  349. package/dist/esm/Process.d.ts.map +0 -1
  350. package/dist/esm/Process.js +0 -172
  351. package/dist/esm/Process.js.map +0 -1
  352. package/dist/esm/Question.d.ts +0 -46
  353. package/dist/esm/Question.d.ts.map +0 -1
  354. package/dist/esm/SectionBody.d.ts +0 -4
  355. package/dist/esm/SectionBody.d.ts.map +0 -1
  356. package/dist/esm/SectionFooter.d.ts +0 -13
  357. package/dist/esm/SectionFooter.d.ts.map +0 -1
  358. package/dist/esm/SectionHeader.d.ts +0 -15
  359. package/dist/esm/SectionHeader.d.ts.map +0 -1
  360. package/dist/esm/index.d.ts.map +0 -1
  361. package/dist/esm/services/commitConfirmation.d.ts +0 -3
  362. package/dist/esm/services/commitConfirmation.d.ts.map +0 -1
  363. package/dist/esm/services/commitConfirmation.js +0 -120
  364. package/dist/esm/services/commitConfirmation.js.map +0 -1
  365. package/dist/esm/services/commitlintConfig.d.ts +0 -4
  366. package/dist/esm/services/commitlintConfig.d.ts.map +0 -1
  367. package/dist/esm/services/commitlintConfig.js +0 -196
  368. package/dist/esm/services/commitlintConfig.js.map +0 -1
  369. package/dist/esm/services/commitlintValidator.d.ts +0 -26
  370. package/dist/esm/services/commitlintValidator.d.ts.map +0 -1
  371. package/dist/esm/services/commitlintValidator.js +0 -142
  372. package/dist/esm/services/commitlintValidator.js.map +0 -1
  373. package/dist/esm/services/getRuleQuestionConfig.d.ts +0 -4
  374. package/dist/esm/services/getRuleQuestionConfig.d.ts.map +0 -1
  375. package/dist/esm/services/llm/anthropic.d.ts +0 -3
  376. package/dist/esm/services/llm/anthropic.d.ts.map +0 -1
  377. package/dist/esm/services/llm/anthropic.js +0 -116
  378. package/dist/esm/services/llm/anthropic.js.map +0 -1
  379. package/dist/esm/services/llm/config.d.ts +0 -5
  380. package/dist/esm/services/llm/config.d.ts.map +0 -1
  381. package/dist/esm/services/llm/config.js +0 -178
  382. package/dist/esm/services/llm/config.js.map +0 -1
  383. package/dist/esm/services/llm/index.d.ts +0 -6
  384. package/dist/esm/services/llm/index.d.ts.map +0 -1
  385. package/dist/esm/services/llm/index.js +0 -394
  386. package/dist/esm/services/llm/index.js.map +0 -1
  387. package/dist/esm/services/llm/models.d.ts +0 -34
  388. package/dist/esm/services/llm/models.d.ts.map +0 -1
  389. package/dist/esm/services/llm/models.js +0 -60
  390. package/dist/esm/services/llm/models.js.map +0 -1
  391. package/dist/esm/services/llm/openai.d.ts +0 -3
  392. package/dist/esm/services/llm/openai.d.ts.map +0 -1
  393. package/dist/esm/services/llm/openai.js +0 -109
  394. package/dist/esm/services/llm/openai.js.map +0 -1
  395. package/dist/esm/services/llm/types.d.ts +0 -71
  396. package/dist/esm/services/llm/types.d.ts.map +0 -1
  397. package/dist/esm/store/defaultPromptConfigs.d.ts +0 -33
  398. package/dist/esm/store/defaultPromptConfigs.d.ts.map +0 -1
  399. package/dist/esm/store/defaultPromptConfigs.js +0 -35
  400. package/dist/esm/store/defaultPromptConfigs.js.map +0 -1
  401. package/dist/esm/store/prompts.d.ts +0 -6
  402. package/dist/esm/store/prompts.d.ts.map +0 -1
  403. package/dist/esm/store/prompts.js +0 -38
  404. package/dist/esm/store/prompts.js.map +0 -1
  405. package/dist/esm/store/rules.d.ts +0 -7
  406. package/dist/esm/store/rules.d.ts.map +0 -1
  407. package/dist/esm/types.d.ts +0 -3
  408. package/dist/esm/types.d.ts.map +0 -1
  409. package/dist/esm/utils/case-function.d.ts +0 -9
  410. package/dist/esm/utils/case-function.d.ts.map +0 -1
  411. package/dist/esm/utils/full-stop-function.d.ts +0 -9
  412. package/dist/esm/utils/full-stop-function.d.ts.map +0 -1
  413. package/dist/esm/utils/leading-blank-function.d.ts +0 -8
  414. package/dist/esm/utils/leading-blank-function.d.ts.map +0 -1
  415. package/dist/esm/utils/rules.d.ts +0 -26
  416. package/dist/esm/utils/rules.d.ts.map +0 -1
  417. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1,47 @@
1
+ import type { IConfig } from './config.interface';
2
+ import type { IFileSystemService } from './file-system-service.interface';
3
+ /**
4
+ * Interface for managing application configuration.
5
+ * Defines contract for reading, writing, and manipulating configuration settings.
6
+ */
7
+ export interface IConfigService {
8
+ /**
9
+ * Checks if the configuration exists.
10
+ * @returns Promise resolving to true if the configuration exists, false otherwise
11
+ */
12
+ exists(): Promise<boolean>;
13
+ /**
14
+ * File system service for file operations.
15
+ */
16
+ FILE_SYSTEM_SERVICE: IFileSystemService;
17
+ /**
18
+ * Retrieves the current configuration.
19
+ * @returns Promise resolving to the configuration object
20
+ */
21
+ get(): Promise<IConfig>;
22
+ /**
23
+ * Gets a specific property from the configuration.
24
+ * @param property - The property key to retrieve
25
+ * @returns Promise resolving to the value of the specified property
26
+ */
27
+ getProperty<K extends keyof IConfig>(property: K): Promise<IConfig[K]>;
28
+ /**
29
+ * Merges partial configuration with the existing configuration.
30
+ * @param partial - Partial configuration to merge
31
+ * @returns Promise that resolves when the merged configuration is saved
32
+ */
33
+ merge(partial: Partial<IConfig>): Promise<void>;
34
+ /**
35
+ * Saves the entire configuration.
36
+ * @param config - The complete configuration to save
37
+ * @returns Promise that resolves when the configuration is saved
38
+ */
39
+ set(config: IConfig): Promise<void>;
40
+ /**
41
+ * Sets a specific property in the configuration.
42
+ * @param property - The property key to set
43
+ * @param value - The value to assign to the property
44
+ * @returns Promise that resolves when the updated configuration is saved
45
+ */
46
+ setProperty<K extends keyof IConfig>(property: K, value: IConfig[K]): Promise<void>;
47
+ }
@@ -0,0 +1,27 @@
1
+ import type { ECommitMode } from '../../domain/enum/commit-mode.enum';
2
+ import type { ELLMProvider } from '../../domain/enum/llm-provider.enum';
3
+ /**
4
+ * Main configuration interface
5
+ */
6
+ export interface IConfig {
7
+ /**
8
+ * Number of retries for LLM generation
9
+ */
10
+ maxRetries?: number;
11
+ /**
12
+ * Commit mode (auto, manual)
13
+ */
14
+ mode: ECommitMode;
15
+ /**
16
+ * Model to use
17
+ */
18
+ model?: string;
19
+ /**
20
+ * LLM provider (openai, anthropic)
21
+ */
22
+ provider: ELLMProvider;
23
+ /**
24
+ * Number of retries for validation fixes
25
+ */
26
+ validationMaxRetries?: number;
27
+ }
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Interface for file system operations.
3
+ * Provides methods for reading, writing, and managing files and directories.
4
+ */
5
+ export interface IFileSystemService {
6
+ /**
7
+ * Creates a directory at the specified path.
8
+ * @param path - The path to the directory to create
9
+ * @param options - Optional configuration for directory creation
10
+ * @param options.isRecursive - Whether to create parent directories if they don't exist
11
+ * @returns Promise that resolves when the directory is created
12
+ */
13
+ createDirectory(path: string, options?: {
14
+ isRecursive: boolean;
15
+ }): Promise<void>;
16
+ /**
17
+ * Deletes a file at the specified path.
18
+ * @param path - The path to the file to delete
19
+ * @returns Promise that resolves when the file is deleted
20
+ */
21
+ deleteFile(path: string): Promise<void>;
22
+ /**
23
+ * Gets the directory name from a file path.
24
+ * @param filePath
25
+ * @returns The directory name
26
+ */
27
+ getDirectoryNameFromFilePath(filePath: string): string;
28
+ /**
29
+ * Gets the extension from a file path.
30
+ * @param filePath
31
+ * @returns The file extension
32
+ */
33
+ getExtensionFromFilePath(filePath: string): string;
34
+ /**
35
+ * Checks if any of the provided paths exist and returns the first existing path.
36
+ * @param paths - Array of paths to check
37
+ * @returns Promise that resolves to the first existing path or undefined if none exist
38
+ */
39
+ isOneOfPathsExists(paths: Array<string>): Promise<string | undefined>;
40
+ /**
41
+ * Checks if a file or directory exists at the specified path.
42
+ * @param path - The path to check
43
+ * @returns Promise that resolves to true if the path exists, false otherwise
44
+ */
45
+ isPathExists(path: string): Promise<boolean>;
46
+ /**
47
+ * Reads the contents of a file.
48
+ * @param path - The path to the file to read
49
+ * @param encoding - The encoding to use when reading the file, defaults to "utf8"
50
+ * @returns Promise that resolves to the file contents as a string
51
+ */
52
+ readFile(path: string, encoding?: BufferEncoding): Promise<string>;
53
+ /**
54
+ * Writes content to a file, creating the file and parent directories if they don't exist.
55
+ * @param path - The path to the file to write
56
+ * @param content - The content to write to the file
57
+ * @param encoding - The encoding to use when writing the file, defaults to "utf8"
58
+ * @returns Promise that resolves when the file is written
59
+ */
60
+ writeFile(path: string, content: string, encoding?: BufferEncoding): Promise<void>;
61
+ }
@@ -0,0 +1,9 @@
1
+ export type * from './cli-interface-service-select-options.interface';
2
+ export type * from './cli-interface-service.interface';
3
+ export type * from './command-service.interface';
4
+ export type * from './commit-repository.interface';
5
+ export type * from './commit-validator.interface';
6
+ export type * from './config-service.interface';
7
+ export type * from './config.interface';
8
+ export type * from './file-system-service.interface';
9
+ export type * from './llm-service.interface';
@@ -0,0 +1,43 @@
1
+ import type { CommitMessage } from '../../domain/entity/commit-message.entity';
2
+ import type { LLMConfiguration } from '../../domain/entity/llm-configuration.entity';
3
+ /**
4
+ * Context for generating commit messages
5
+ */
6
+ export interface ILlmPromptContext {
7
+ body?: {
8
+ description?: string;
9
+ };
10
+ diff?: string;
11
+ files?: string;
12
+ rules?: Record<string, unknown>;
13
+ scopeDescription?: string;
14
+ subject: {
15
+ description?: string;
16
+ maxLength?: number;
17
+ minLength?: number;
18
+ };
19
+ typeDescription?: string;
20
+ typeDescriptions?: Record<string, {
21
+ description: string;
22
+ emoji?: string;
23
+ }>;
24
+ typeEnum?: Array<string>;
25
+ }
26
+ /**
27
+ * Interface for LLM services
28
+ */
29
+ export interface ILlmService {
30
+ /**
31
+ * Generate a commit message using the LLM
32
+ * @param context - The context for generating the commit message
33
+ * @param configuration - The LLM configuration
34
+ * @returns Promise resolving to the generated commit message
35
+ */
36
+ generateCommitMessage(context: ILlmPromptContext, configuration: LLMConfiguration): Promise<CommitMessage>;
37
+ /**
38
+ * Check if the service supports the given configuration
39
+ * @param configuration - The LLM configuration to check
40
+ * @returns True if the service supports the configuration
41
+ */
42
+ supports(configuration: LLMConfiguration): boolean;
43
+ }
@@ -0,0 +1,39 @@
1
+ import type { ICliInterfaceService } from '../interface/cli-interface-service.interface';
2
+ import type { IConfigService } from '../interface/config-service.interface';
3
+ import { LLMConfiguration } from '../../domain/entity/llm-configuration.entity';
4
+ import { ECommitMode } from '../../domain/enum/commit-mode.enum';
5
+ /**
6
+ * Use case for configuring LLM settings
7
+ */
8
+ export declare class ConfigureLLMUseCase {
9
+ private readonly CLI_INTERFACE;
10
+ private readonly CONFIG_SERVICE;
11
+ constructor(configService: IConfigService, cliInterface: ICliInterfaceService);
12
+ /**
13
+ * Configure LLM settings interactively
14
+ * @returns {Promise<LLMConfiguration>} Promise resolving to the new configuration
15
+ */
16
+ configureInteractively(): Promise<LLMConfiguration>;
17
+ /**
18
+ * Get the current LLM configuration
19
+ * @returns {Promise<LLMConfiguration | null>} Promise resolving to the current configuration or null if not configured
20
+ */
21
+ getCurrentConfiguration(): Promise<LLMConfiguration | null>;
22
+ /**
23
+ * Check if the current configuration needs LLM details
24
+ * @returns {Promise<boolean>} Promise resolving to true if LLM details are needed
25
+ */
26
+ needsLLMDetails(): Promise<boolean>;
27
+ /**
28
+ * Save LLM configuration
29
+ * @param {LLMConfiguration} configuration - The configuration to save
30
+ * @returns {Promise<void>} Promise that resolves when configuration is saved
31
+ */
32
+ saveConfiguration(configuration: LLMConfiguration): Promise<void>;
33
+ /**
34
+ * Update the commit mode
35
+ * @param {ECommitMode} mode - The new commit mode
36
+ * @returns {Promise<LLMConfiguration | null>} Promise resolving to the updated configuration
37
+ */
38
+ updateMode(mode: ECommitMode): Promise<LLMConfiguration | null>;
39
+ }
@@ -0,0 +1,373 @@
1
+ 'use strict';
2
+
3
+ var numeric_constant = require('../../domain/constant/numeric.constant.js');
4
+ var llmConfiguration_entity = require('../../domain/entity/llm-configuration.entity.js');
5
+ var anthropicModel_enum = require('../../domain/enum/anthropic-model.enum.js');
6
+ var awsBedrockModel_enum = require('../../domain/enum/aws-bedrock-model.enum.js');
7
+ var azureOpenaiModel_enum = require('../../domain/enum/azure-openai-model.enum.js');
8
+ var commitMode_enum = require('../../domain/enum/commit-mode.enum.js');
9
+ var googleModel_enum = require('../../domain/enum/google-model.enum.js');
10
+ var llmProvider_enum = require('../../domain/enum/llm-provider.enum.js');
11
+ var ollamaModel_enum = require('../../domain/enum/ollama-model.enum.js');
12
+ var openaiModel_enum = require('../../domain/enum/openai-model.enum.js');
13
+ var apiKey_valueObject = require('../../domain/value-object/api-key.value-object.js');
14
+
15
+ /**
16
+ * Use case for configuring LLM settings
17
+ */
18
+ class ConfigureLLMUseCase {
19
+ CLI_INTERFACE;
20
+ CONFIG_SERVICE;
21
+ constructor(configService, cliInterface) {
22
+ this.CONFIG_SERVICE = configService;
23
+ this.CLI_INTERFACE = cliInterface;
24
+ }
25
+ /**
26
+ * Configure LLM settings interactively
27
+ * @returns {Promise<LLMConfiguration>} Promise resolving to the new configuration
28
+ */
29
+ async configureInteractively() {
30
+ // First, select mode
31
+ const mode = await this.CLI_INTERFACE.select("Select commit mode:", [
32
+ { label: "Auto (AI-powered)", value: commitMode_enum.ECommitMode.AUTO },
33
+ { label: "Manual", value: commitMode_enum.ECommitMode.MANUAL },
34
+ ], commitMode_enum.ECommitMode.AUTO);
35
+ // If manual mode, create a minimal configuration
36
+ if (mode === commitMode_enum.ECommitMode.MANUAL) {
37
+ // Create configuration with dummy values for manual mode
38
+ const configuration = new llmConfiguration_entity.LLMConfiguration("openai", // Default provider (won't be used)
39
+ new apiKey_valueObject.ApiKey("manual-mode"), // Dummy API key
40
+ mode, undefined, // No model needed for manual mode
41
+ numeric_constant.DEFAULT_MAX_RETRIES, // Default max retries
42
+ numeric_constant.DEFAULT_VALIDATION_MAX_RETRIES);
43
+ // Save configuration
44
+ await this.saveConfiguration(configuration);
45
+ return configuration;
46
+ }
47
+ // Auto mode - ask for LLM details
48
+ this.CLI_INTERFACE.info("Setting up AI-powered commit mode...");
49
+ // Select provider
50
+ const provider = await this.CLI_INTERFACE.select("Select your LLM provider:", [
51
+ { label: "OpenAI (GPT-4, GPT-3.5)", value: llmProvider_enum.ELLMProvider.OPENAI },
52
+ { label: "Anthropic (Claude)", value: llmProvider_enum.ELLMProvider.ANTHROPIC },
53
+ { label: "Google (Gemini)", value: llmProvider_enum.ELLMProvider.GOOGLE },
54
+ { label: "Azure OpenAI", value: llmProvider_enum.ELLMProvider.AZURE_OPENAI },
55
+ { label: "AWS Bedrock", value: llmProvider_enum.ELLMProvider.AWS_BEDROCK },
56
+ { label: "Ollama (Local)", value: llmProvider_enum.ELLMProvider.OLLAMA },
57
+ ]);
58
+ // Select model based on provider
59
+ let model;
60
+ switch (provider) {
61
+ case llmProvider_enum.ELLMProvider.ANTHROPIC: {
62
+ model = await this.CLI_INTERFACE.select("Select Anthropic model:", [
63
+ { label: "Claude Opus 4 (Latest 2025, most capable)", value: anthropicModel_enum.EAnthropicModel.CLAUDE_OPUS_4 },
64
+ { label: "Claude Sonnet 4 (Latest 2025, high-performance)", value: anthropicModel_enum.EAnthropicModel.CLAUDE_SONNET_4 },
65
+ { label: "Claude 3.7 Sonnet (Extended thinking)", value: anthropicModel_enum.EAnthropicModel.CLAUDE_3_7_SONNET },
66
+ { label: "Claude 3.5 Sonnet (Previous flagship)", value: anthropicModel_enum.EAnthropicModel.CLAUDE_3_5_SONNET },
67
+ { label: "Claude 3.5 Haiku (Fastest)", value: anthropicModel_enum.EAnthropicModel.CLAUDE_3_5_HAIKU },
68
+ { label: "Claude 3 Opus (Complex tasks)", value: anthropicModel_enum.EAnthropicModel.CLAUDE_3_OPUS },
69
+ ], anthropicModel_enum.EAnthropicModel.CLAUDE_SONNET_4);
70
+ break;
71
+ }
72
+ case llmProvider_enum.ELLMProvider.AWS_BEDROCK: {
73
+ model = await this.CLI_INTERFACE.select("Select AWS Bedrock model:", [
74
+ { label: "Claude Opus 4 (Latest 2025, most capable)", value: awsBedrockModel_enum.EAWSBedrockModel.CLAUDE_OPUS_4 },
75
+ { label: "Claude Sonnet 4 (Latest 2025, balanced performance)", value: awsBedrockModel_enum.EAWSBedrockModel.CLAUDE_SONNET_4 },
76
+ { label: "Claude 3.5 Sonnet v2 (Previous flagship)", value: awsBedrockModel_enum.EAWSBedrockModel.CLAUDE_3_5_SONNET_V2 },
77
+ { label: "Claude 3.5 Haiku (Fast)", value: awsBedrockModel_enum.EAWSBedrockModel.CLAUDE_3_5_HAIKU },
78
+ { label: "Claude 3.5 Sonnet", value: awsBedrockModel_enum.EAWSBedrockModel.CLAUDE_3_5_SONNET },
79
+ { label: "Amazon Nova Pro (Latest Amazon model)", value: awsBedrockModel_enum.EAWSBedrockModel.NOVA_PRO },
80
+ { label: "DeepSeek R1 (Advanced reasoning)", value: awsBedrockModel_enum.EAWSBedrockModel.DEEPSEEK_R1 },
81
+ { label: "Llama 3.2 90B (Open source)", value: awsBedrockModel_enum.EAWSBedrockModel.LLAMA_3_2_90B },
82
+ { label: "Mistral Large (Latest)", value: awsBedrockModel_enum.EAWSBedrockModel.MISTRAL_LARGE_2_24_11 },
83
+ ], awsBedrockModel_enum.EAWSBedrockModel.CLAUDE_SONNET_4);
84
+ break;
85
+ }
86
+ case llmProvider_enum.ELLMProvider.AZURE_OPENAI: {
87
+ model = await this.CLI_INTERFACE.select("Select Azure OpenAI model:", [
88
+ { label: "GPT-4.1 Turbo (Latest 2025, most capable)", value: azureOpenaiModel_enum.EAzureOpenAIModel.GPT_4_1_TURBO_2024_12_17 },
89
+ { label: "GPT-4.1 Preview (Latest preview)", value: azureOpenaiModel_enum.EAzureOpenAIModel.GPT_4_1_PREVIEW_2024_12_17 },
90
+ { label: "GPT-4.1 Mini (Fast 4.1 model)", value: azureOpenaiModel_enum.EAzureOpenAIModel.GPT_4_1_MINI_2024_12_17 },
91
+ { label: "GPT-4o 2024-11 (Enhanced creative)", value: azureOpenaiModel_enum.EAzureOpenAIModel.GPT_4O_2024_11_20 },
92
+ { label: "GPT-4o Mini", value: azureOpenaiModel_enum.EAzureOpenAIModel.GPT_4O_MINI_2024_07_18 },
93
+ { label: "GPT-4 Turbo", value: azureOpenaiModel_enum.EAzureOpenAIModel.GPT_4_TURBO },
94
+ { label: "GPT-3.5 Turbo", value: azureOpenaiModel_enum.EAzureOpenAIModel.GPT_35_TURBO },
95
+ { label: "O3 (Enhanced reasoning)", value: azureOpenaiModel_enum.EAzureOpenAIModel.O3_2024_12_17 },
96
+ { label: "O4 Mini (Fast reasoning)", value: azureOpenaiModel_enum.EAzureOpenAIModel.O4_MINI_2024_12_17 },
97
+ ], azureOpenaiModel_enum.EAzureOpenAIModel.GPT_4_1_TURBO_2024_12_17);
98
+ break;
99
+ }
100
+ case llmProvider_enum.ELLMProvider.GOOGLE: {
101
+ model = await this.CLI_INTERFACE.select("Select Google model:", [
102
+ { label: "Gemini 2.5 Pro (Latest 2025, most capable)", value: googleModel_enum.EGoogleModel.GEMINI_2_5_PRO },
103
+ { label: "Gemini 2.5 Flash (Latest 2025, fast)", value: googleModel_enum.EGoogleModel.GEMINI_2_5_FLASH },
104
+ { label: "Gemini 2.0 Flash (Experimental)", value: googleModel_enum.EGoogleModel.GEMINI_2_0_FLASH_EXP },
105
+ { label: "Gemini 1.5 Pro (Stable, capable)", value: googleModel_enum.EGoogleModel.GEMINI_1_5_PRO },
106
+ { label: "Gemini 1.5 Flash (Fast, stable)", value: googleModel_enum.EGoogleModel.GEMINI_1_5_FLASH },
107
+ { label: "Gemini 1.5 Flash 8B (Lightweight)", value: googleModel_enum.EGoogleModel.GEMINI_1_5_FLASH_8B },
108
+ { label: "Gemini 1.0 Pro", value: googleModel_enum.EGoogleModel.GEMINI_1_0_PRO },
109
+ { label: "Gemma 3 27B (Most capable open model)", value: googleModel_enum.EGoogleModel.GEMMA_3_27B },
110
+ { label: "Gemma 3 12B (Strong language model)", value: googleModel_enum.EGoogleModel.GEMMA_3_12B },
111
+ { label: "Gemma 3 4B (Balanced, multimodal)", value: googleModel_enum.EGoogleModel.GEMMA_3_4B },
112
+ { label: "Gemma 3 1B (Lightweight)", value: googleModel_enum.EGoogleModel.GEMMA_3_1B },
113
+ ], googleModel_enum.EGoogleModel.GEMINI_2_5_FLASH);
114
+ break;
115
+ }
116
+ case llmProvider_enum.ELLMProvider.OLLAMA: {
117
+ model = await this.CLI_INTERFACE.select("Select Ollama model:", [
118
+ { label: "Llama 3.2 (Latest)", value: ollamaModel_enum.EOllamaModel.LLAMA3_2 },
119
+ { label: "Llama 3.1", value: ollamaModel_enum.EOllamaModel.LLAMA3_1 },
120
+ { label: "Llama 3", value: ollamaModel_enum.EOllamaModel.LLAMA3 },
121
+ { label: "Mistral", value: ollamaModel_enum.EOllamaModel.MISTRAL },
122
+ { label: "CodeLlama", value: ollamaModel_enum.EOllamaModel.CODELLAMA },
123
+ { label: "DeepSeek Coder", value: ollamaModel_enum.EOllamaModel.DEEPSEEK_CODER },
124
+ { label: "Custom Model", value: ollamaModel_enum.EOllamaModel.CUSTOM },
125
+ ], ollamaModel_enum.EOllamaModel.LLAMA3_2);
126
+ break;
127
+ }
128
+ case llmProvider_enum.ELLMProvider.OPENAI: {
129
+ model = await this.CLI_INTERFACE.select("Select OpenAI model:", [
130
+ { label: "GPT-4.1 (Latest 2025, most capable)", value: openaiModel_enum.EOpenAIModel.GPT_4_1 },
131
+ { label: "GPT-4.1 Nano (Fastest 4.1 model)", value: openaiModel_enum.EOpenAIModel.GPT_4_1_NANO },
132
+ { label: "GPT-4.1 Mini", value: openaiModel_enum.EOpenAIModel.GPT_4_1_MINI },
133
+ { label: "GPT-4o (Latest, enhanced creative writing)", value: openaiModel_enum.EOpenAIModel.GPT_4O },
134
+ { label: "GPT-4o Mini (Faster, cheaper)", value: openaiModel_enum.EOpenAIModel.GPT_4O_MINI },
135
+ { label: "GPT-4 Turbo", value: openaiModel_enum.EOpenAIModel.GPT_4_TURBO },
136
+ { label: "GPT-4 (Original)", value: openaiModel_enum.EOpenAIModel.GPT_4 },
137
+ { label: "GPT-3.5 Turbo (Fastest, cheapest)", value: openaiModel_enum.EOpenAIModel.GPT_35_TURBO },
138
+ { label: "O1 (Enhanced reasoning)", value: openaiModel_enum.EOpenAIModel.O1 },
139
+ { label: "O1 Mini (Fast reasoning)", value: openaiModel_enum.EOpenAIModel.O1_MINI },
140
+ ], openaiModel_enum.EOpenAIModel.GPT_4O);
141
+ break;
142
+ }
143
+ default: {
144
+ // This ensures exhaustiveness - TypeScript will error if a case is missing
145
+ const exhaustiveCheck = provider;
146
+ throw new Error(`Unsupported provider: ${String(exhaustiveCheck)}`);
147
+ }
148
+ }
149
+ // Get API key
150
+ let credentialValue;
151
+ // Check environment variables first
152
+ const environmentVariableNames = {
153
+ anthropic: "ANTHROPIC_API_KEY",
154
+ "aws-bedrock": "AWS_BEDROCK_API_KEY",
155
+ "azure-openai": "AZURE_OPENAI_API_KEY",
156
+ google: "GOOGLE_API_KEY",
157
+ ollama: "OLLAMA_API_KEY",
158
+ openai: "OPENAI_API_KEY",
159
+ };
160
+ const environmentVariableName = environmentVariableNames[provider] ?? "";
161
+ const environmentApiKey = process.env[environmentVariableName];
162
+ if (environmentApiKey && environmentApiKey.trim().length > 0) {
163
+ this.CLI_INTERFACE.success(`Found API key in environment variable: ${environmentVariableName}`);
164
+ credentialValue = environmentApiKey;
165
+ }
166
+ else {
167
+ // Inform user about environment variable and format requirements
168
+ let keyFormatInfo = "";
169
+ switch (provider) {
170
+ case llmProvider_enum.ELLMProvider.ANTHROPIC: {
171
+ // Standard API key format - no special format info needed
172
+ // keyFormatInfo is already initialized as empty string
173
+ break;
174
+ }
175
+ case llmProvider_enum.ELLMProvider.AWS_BEDROCK: {
176
+ keyFormatInfo = " (format: region|access-key-id|secret-access-key)";
177
+ break;
178
+ }
179
+ case llmProvider_enum.ELLMProvider.AZURE_OPENAI: {
180
+ keyFormatInfo = " (format: endpoint|api-key|deployment-name)";
181
+ break;
182
+ }
183
+ case llmProvider_enum.ELLMProvider.GOOGLE: {
184
+ // Standard API key format - no special format info needed
185
+ // keyFormatInfo is already initialized as empty string
186
+ break;
187
+ }
188
+ case llmProvider_enum.ELLMProvider.OLLAMA: {
189
+ keyFormatInfo = " (format: host:port or host:port|custom-model)";
190
+ break;
191
+ }
192
+ case llmProvider_enum.ELLMProvider.OPENAI: {
193
+ // Standard API key format - no special format info needed
194
+ // keyFormatInfo is already initialized as empty string
195
+ break;
196
+ }
197
+ default: {
198
+ // This ensures exhaustiveness - TypeScript will error if a case is missing
199
+ const exhaustiveCheck = provider;
200
+ throw new Error(`Unsupported provider: ${String(exhaustiveCheck)}`);
201
+ }
202
+ }
203
+ this.CLI_INTERFACE.info(`API key will be read from ${environmentVariableName} environment variable${keyFormatInfo} or prompted each time.`);
204
+ // Use dummy value for configuration
205
+ credentialValue = "will-prompt-on-use";
206
+ }
207
+ // Ask for retry configuration (advanced settings)
208
+ const shouldConfigureAdvanced = await this.CLI_INTERFACE.confirm("Would you like to configure advanced settings (retry counts)?", false);
209
+ let maxRetries = numeric_constant.DEFAULT_MAX_RETRIES;
210
+ let validationMaxRetries = numeric_constant.DEFAULT_VALIDATION_MAX_RETRIES;
211
+ if (shouldConfigureAdvanced) {
212
+ const retriesString = await this.CLI_INTERFACE.text("Max retries for AI generation (default: 3):", "3", "3", (value) => {
213
+ const parsedNumber = Number.parseInt(value, 10);
214
+ if (Number.isNaN(parsedNumber) || parsedNumber < numeric_constant.MIN_RETRY_COUNT || parsedNumber > numeric_constant.MAX_RETRY_COUNT) {
215
+ return "Please enter a number between 1 and 10";
216
+ }
217
+ // eslint-disable-next-line @elsikora/sonar/no-redundant-jump
218
+ return;
219
+ });
220
+ maxRetries = Number.parseInt(retriesString, 10);
221
+ const validationRetriesString = await this.CLI_INTERFACE.text("Max retries for validation fixes (default: 3):", "3", "3", (value) => {
222
+ const parsedNumber = Number.parseInt(value, 10);
223
+ if (Number.isNaN(parsedNumber) || parsedNumber < numeric_constant.MIN_RETRY_COUNT || parsedNumber > numeric_constant.MAX_RETRY_COUNT) {
224
+ return "Please enter a number between 1 and 10";
225
+ }
226
+ // eslint-disable-next-line @elsikora/sonar/no-redundant-jump
227
+ return;
228
+ });
229
+ validationMaxRetries = Number.parseInt(validationRetriesString, 10);
230
+ }
231
+ // Create configuration
232
+ // Create configuration - will save without API key
233
+ const configuration = new llmConfiguration_entity.LLMConfiguration(provider, new apiKey_valueObject.ApiKey(credentialValue), mode, model, maxRetries, validationMaxRetries);
234
+ // Save configuration (without API key)
235
+ await this.saveConfiguration(configuration);
236
+ this.CLI_INTERFACE.success("Configuration saved successfully!");
237
+ // If we have an environment API key, return config with it
238
+ // Otherwise, return config with dummy key (will prompt later)
239
+ return configuration;
240
+ }
241
+ /**
242
+ * Get the current LLM configuration
243
+ * @returns {Promise<LLMConfiguration | null>} Promise resolving to the current configuration or null if not configured
244
+ */
245
+ async getCurrentConfiguration() {
246
+ const config = await this.CONFIG_SERVICE.get();
247
+ if (!config.provider || !config.mode) {
248
+ return null;
249
+ }
250
+ // Add backward compatibility - set default retry values if missing
251
+ let isConfigUpdated = false;
252
+ if (config.maxRetries === undefined) {
253
+ config.maxRetries = numeric_constant.DEFAULT_MAX_RETRIES;
254
+ isConfigUpdated = true;
255
+ }
256
+ if (config.validationMaxRetries === undefined) {
257
+ config.validationMaxRetries = numeric_constant.DEFAULT_VALIDATION_MAX_RETRIES;
258
+ isConfigUpdated = true;
259
+ }
260
+ // Save updated config if we added defaults
261
+ if (isConfigUpdated) {
262
+ await this.CONFIG_SERVICE.set(config);
263
+ }
264
+ // Migrate deprecated models
265
+ let migratedModel = config.model;
266
+ if (migratedModel) {
267
+ // Map old models to new ones
268
+ const modelMigrations = {
269
+ // Anthropic migrations
270
+ "claude-2.0": anthropicModel_enum.EAnthropicModel.CLAUDE_3_5_SONNET,
271
+ "claude-2.1": anthropicModel_enum.EAnthropicModel.CLAUDE_3_5_SONNET,
272
+ "claude-3-5-haiku-20241022": anthropicModel_enum.EAnthropicModel.CLAUDE_3_5_HAIKU,
273
+ "claude-3-5-sonnet-20241022": anthropicModel_enum.EAnthropicModel.CLAUDE_3_5_SONNET,
274
+ "claude-3-haiku-20240307": anthropicModel_enum.EAnthropicModel.CLAUDE_3_5_HAIKU,
275
+ "claude-3-sonnet-20240229": anthropicModel_enum.EAnthropicModel.CLAUDE_3_5_SONNET,
276
+ // OpenAI migrations (upgrade old GPT-4 references)
277
+ "gpt-3.5-turbo": openaiModel_enum.EOpenAIModel.GPT_35_TURBO,
278
+ "gpt-4": openaiModel_enum.EOpenAIModel.GPT_4,
279
+ "gpt-4-0125-preview": openaiModel_enum.EOpenAIModel.GPT_4_TURBO,
280
+ "gpt-4-0613": openaiModel_enum.EOpenAIModel.GPT_4,
281
+ "gpt-4-1106-preview": openaiModel_enum.EOpenAIModel.GPT_4_TURBO,
282
+ "gpt-4-32k": openaiModel_enum.EOpenAIModel.GPT_4_32K,
283
+ "gpt-4-32k-0613": openaiModel_enum.EOpenAIModel.GPT_4_32K,
284
+ "gpt-4o": openaiModel_enum.EOpenAIModel.GPT_4O_MAY,
285
+ "gpt-4o-2024-05-13": openaiModel_enum.EOpenAIModel.GPT_4O_MAY,
286
+ "gpt-4o-2024-08-06": openaiModel_enum.EOpenAIModel.GPT_4O_AUGUST,
287
+ "gpt-4o-mini": openaiModel_enum.EOpenAIModel.GPT_4O_MINI,
288
+ };
289
+ if (modelMigrations[migratedModel]) {
290
+ const oldModel = migratedModel;
291
+ migratedModel = modelMigrations[migratedModel];
292
+ // Save the migrated configuration
293
+ await this.CONFIG_SERVICE.setProperty("model", migratedModel);
294
+ this.CLI_INTERFACE.warn(`Migrated deprecated model ${oldModel} to ${migratedModel}`);
295
+ }
296
+ }
297
+ // For manual mode, return configuration with dummy API key
298
+ if (config.mode === commitMode_enum.ECommitMode.MANUAL) {
299
+ return new llmConfiguration_entity.LLMConfiguration(config.provider, new apiKey_valueObject.ApiKey("manual-mode"), config.mode, migratedModel, config.maxRetries ?? numeric_constant.DEFAULT_MAX_RETRIES, config.validationMaxRetries ?? numeric_constant.DEFAULT_VALIDATION_MAX_RETRIES);
300
+ }
301
+ // For auto mode, check environment variables
302
+ const environmentVariableNames = {
303
+ anthropic: "ANTHROPIC_API_KEY",
304
+ "aws-bedrock": "AWS_BEDROCK_API_KEY",
305
+ "azure-openai": "AZURE_OPENAI_API_KEY",
306
+ google: "GOOGLE_API_KEY",
307
+ ollama: "OLLAMA_API_KEY",
308
+ openai: "OPENAI_API_KEY",
309
+ };
310
+ const environmentVariableName = environmentVariableNames[config.provider] ?? "";
311
+ const environmentApiKey = process.env[environmentVariableName];
312
+ // If no API key in environment, return null (will prompt later)
313
+ if (!environmentApiKey || environmentApiKey.trim().length === 0) {
314
+ return null;
315
+ }
316
+ return new llmConfiguration_entity.LLMConfiguration(config.provider, new apiKey_valueObject.ApiKey(environmentApiKey), config.mode, migratedModel, config.maxRetries ?? numeric_constant.DEFAULT_MAX_RETRIES, config.validationMaxRetries ?? numeric_constant.DEFAULT_VALIDATION_MAX_RETRIES);
317
+ }
318
+ /**
319
+ * Check if the current configuration needs LLM details
320
+ * @returns {Promise<boolean>} Promise resolving to true if LLM details are needed
321
+ */
322
+ async needsLLMDetails() {
323
+ const config = await this.CONFIG_SERVICE.get();
324
+ if (!config.mode || config.mode === commitMode_enum.ECommitMode.MANUAL) {
325
+ return false;
326
+ }
327
+ // For auto mode, check if API key is in environment
328
+ const environmentVariableNames = {
329
+ anthropic: "ANTHROPIC_API_KEY",
330
+ "aws-bedrock": "AWS_BEDROCK_API_KEY",
331
+ "azure-openai": "AZURE_OPENAI_API_KEY",
332
+ google: "GOOGLE_API_KEY",
333
+ ollama: "OLLAMA_API_KEY",
334
+ openai: "OPENAI_API_KEY",
335
+ };
336
+ const environmentVariableName = environmentVariableNames[config.provider] ?? "";
337
+ const environmentApiKey = process.env[environmentVariableName];
338
+ // Need details if no API key in environment
339
+ return !environmentApiKey || environmentApiKey.trim().length === 0;
340
+ }
341
+ /**
342
+ * Save LLM configuration
343
+ * @param {LLMConfiguration} configuration - The configuration to save
344
+ * @returns {Promise<void>} Promise that resolves when configuration is saved
345
+ */
346
+ async saveConfiguration(configuration) {
347
+ const config = {
348
+ maxRetries: configuration.getMaxRetries(),
349
+ mode: configuration.getMode(),
350
+ model: configuration.getModel(),
351
+ provider: configuration.getProvider(),
352
+ validationMaxRetries: configuration.getValidationMaxRetries(),
353
+ };
354
+ await this.CONFIG_SERVICE.set(config);
355
+ }
356
+ /**
357
+ * Update the commit mode
358
+ * @param {ECommitMode} mode - The new commit mode
359
+ * @returns {Promise<LLMConfiguration | null>} Promise resolving to the updated configuration
360
+ */
361
+ async updateMode(mode) {
362
+ const current = await this.getCurrentConfiguration();
363
+ if (!current) {
364
+ return null;
365
+ }
366
+ const updated = current.withMode(mode);
367
+ await this.saveConfiguration(updated);
368
+ return updated;
369
+ }
370
+ }
371
+
372
+ exports.ConfigureLLMUseCase = ConfigureLLMUseCase;
373
+ //# sourceMappingURL=configure-llm.use-case.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure-llm.use-case.js","sources":["../../../../../src/application/use-case/configure-llm.use-case.ts"],"sourcesContent":[null],"names":["ECommitMode","LLMConfiguration","ApiKey","DEFAULT_MAX_RETRIES","DEFAULT_VALIDATION_MAX_RETRIES","ELLMProvider","EAnthropicModel","EAWSBedrockModel","EAzureOpenAIModel","EGoogleModel","EOllamaModel","EOpenAIModel","MIN_RETRY_COUNT","MAX_RETRY_COUNT"],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { CommitMessage } from '../../domain/entity/commit-message.entity';
2
+ import type { LLMConfiguration } from '../../domain/entity/llm-configuration.entity';
3
+ import type { ILlmPromptContext, ILlmService } from '../interface/llm-service.interface';
4
+ /**
5
+ * Use case for generating commit messages
6
+ */
7
+ export declare class GenerateCommitMessageUseCase {
8
+ private readonly LLM_SERVICES;
9
+ constructor(llmServices: Array<ILlmService>);
10
+ /**
11
+ * Execute the commit message generation
12
+ * @param {ILlmPromptContext} context - The context for generating the commit message
13
+ * @param {LLMConfiguration} configuration - The LLM configuration
14
+ * @param {(attempt: number, maxRetries: number, error: Error) => void} onRetry - Callback function called on retry attempts
15
+ * @returns {Promise<CommitMessage>} Promise resolving to the generated commit message
16
+ */
17
+ execute(context: ILlmPromptContext, configuration: LLMConfiguration, onRetry?: (attempt: number, maxRetries: number, error: Error) => void): Promise<CommitMessage>;
18
+ }