@elsikora/commitizen-plugin-commitlint-ai 1.2.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 (536) 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 -176
  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/commitConfirmation.d.ts +0 -3
  410. package/dist/cjs/services/commitConfirmation.d.ts.map +0 -1
  411. package/dist/cjs/services/commitConfirmation.js +0 -122
  412. package/dist/cjs/services/commitConfirmation.js.map +0 -1
  413. package/dist/cjs/services/commitlintConfig.d.ts +0 -4
  414. package/dist/cjs/services/commitlintConfig.d.ts.map +0 -1
  415. package/dist/cjs/services/commitlintConfig.js +0 -198
  416. package/dist/cjs/services/commitlintConfig.js.map +0 -1
  417. package/dist/cjs/services/commitlintValidator.d.ts +0 -26
  418. package/dist/cjs/services/commitlintValidator.d.ts.map +0 -1
  419. package/dist/cjs/services/commitlintValidator.js +0 -146
  420. package/dist/cjs/services/commitlintValidator.js.map +0 -1
  421. package/dist/cjs/services/getRuleQuestionConfig.d.ts +0 -4
  422. package/dist/cjs/services/getRuleQuestionConfig.d.ts.map +0 -1
  423. package/dist/cjs/services/llm/anthropic.d.ts +0 -3
  424. package/dist/cjs/services/llm/anthropic.d.ts.map +0 -1
  425. package/dist/cjs/services/llm/anthropic.js +0 -118
  426. package/dist/cjs/services/llm/anthropic.js.map +0 -1
  427. package/dist/cjs/services/llm/config.d.ts +0 -5
  428. package/dist/cjs/services/llm/config.d.ts.map +0 -1
  429. package/dist/cjs/services/llm/config.js +0 -181
  430. package/dist/cjs/services/llm/config.js.map +0 -1
  431. package/dist/cjs/services/llm/index.d.ts +0 -6
  432. package/dist/cjs/services/llm/index.d.ts.map +0 -1
  433. package/dist/cjs/services/llm/index.js +0 -399
  434. package/dist/cjs/services/llm/index.js.map +0 -1
  435. package/dist/cjs/services/llm/models.d.ts +0 -34
  436. package/dist/cjs/services/llm/models.d.ts.map +0 -1
  437. package/dist/cjs/services/llm/models.js +0 -65
  438. package/dist/cjs/services/llm/models.js.map +0 -1
  439. package/dist/cjs/services/llm/openai.d.ts +0 -3
  440. package/dist/cjs/services/llm/openai.d.ts.map +0 -1
  441. package/dist/cjs/services/llm/openai.js +0 -111
  442. package/dist/cjs/services/llm/openai.js.map +0 -1
  443. package/dist/cjs/services/llm/types.d.ts +0 -71
  444. package/dist/cjs/services/llm/types.d.ts.map +0 -1
  445. package/dist/cjs/store/defaultPromptConfigs.d.ts +0 -33
  446. package/dist/cjs/store/defaultPromptConfigs.d.ts.map +0 -1
  447. package/dist/cjs/store/defaultPromptConfigs.js +0 -39
  448. package/dist/cjs/store/defaultPromptConfigs.js.map +0 -1
  449. package/dist/cjs/store/prompts.d.ts +0 -6
  450. package/dist/cjs/store/prompts.d.ts.map +0 -1
  451. package/dist/cjs/store/prompts.js +0 -40
  452. package/dist/cjs/store/prompts.js.map +0 -1
  453. package/dist/cjs/store/rules.d.ts +0 -7
  454. package/dist/cjs/store/rules.d.ts.map +0 -1
  455. package/dist/cjs/types.d.ts +0 -3
  456. package/dist/cjs/types.d.ts.map +0 -1
  457. package/dist/cjs/utils/case-function.d.ts +0 -9
  458. package/dist/cjs/utils/case-function.d.ts.map +0 -1
  459. package/dist/cjs/utils/full-stop-function.d.ts +0 -9
  460. package/dist/cjs/utils/full-stop-function.d.ts.map +0 -1
  461. package/dist/cjs/utils/leading-blank-function.d.ts +0 -8
  462. package/dist/cjs/utils/leading-blank-function.d.ts.map +0 -1
  463. package/dist/cjs/utils/rules.d.ts +0 -26
  464. package/dist/cjs/utils/rules.d.ts.map +0 -1
  465. package/dist/esm/ManualProcess.d.ts +0 -6
  466. package/dist/esm/ManualProcess.d.ts.map +0 -1
  467. package/dist/esm/ManualProcess.js +0 -107
  468. package/dist/esm/ManualProcess.js.map +0 -1
  469. package/dist/esm/Process.d.ts +0 -6
  470. package/dist/esm/Process.d.ts.map +0 -1
  471. package/dist/esm/Process.js +0 -172
  472. package/dist/esm/Process.js.map +0 -1
  473. package/dist/esm/Question.d.ts +0 -46
  474. package/dist/esm/Question.d.ts.map +0 -1
  475. package/dist/esm/SectionBody.d.ts +0 -4
  476. package/dist/esm/SectionBody.d.ts.map +0 -1
  477. package/dist/esm/SectionFooter.d.ts +0 -13
  478. package/dist/esm/SectionFooter.d.ts.map +0 -1
  479. package/dist/esm/SectionHeader.d.ts +0 -15
  480. package/dist/esm/SectionHeader.d.ts.map +0 -1
  481. package/dist/esm/services/commitConfirmation.d.ts +0 -3
  482. package/dist/esm/services/commitConfirmation.d.ts.map +0 -1
  483. package/dist/esm/services/commitConfirmation.js +0 -120
  484. package/dist/esm/services/commitConfirmation.js.map +0 -1
  485. package/dist/esm/services/commitlintConfig.d.ts +0 -4
  486. package/dist/esm/services/commitlintConfig.d.ts.map +0 -1
  487. package/dist/esm/services/commitlintConfig.js +0 -196
  488. package/dist/esm/services/commitlintConfig.js.map +0 -1
  489. package/dist/esm/services/commitlintValidator.d.ts +0 -26
  490. package/dist/esm/services/commitlintValidator.d.ts.map +0 -1
  491. package/dist/esm/services/commitlintValidator.js +0 -142
  492. package/dist/esm/services/commitlintValidator.js.map +0 -1
  493. package/dist/esm/services/getRuleQuestionConfig.d.ts +0 -4
  494. package/dist/esm/services/getRuleQuestionConfig.d.ts.map +0 -1
  495. package/dist/esm/services/llm/anthropic.d.ts +0 -3
  496. package/dist/esm/services/llm/anthropic.d.ts.map +0 -1
  497. package/dist/esm/services/llm/anthropic.js +0 -116
  498. package/dist/esm/services/llm/anthropic.js.map +0 -1
  499. package/dist/esm/services/llm/config.d.ts +0 -5
  500. package/dist/esm/services/llm/config.d.ts.map +0 -1
  501. package/dist/esm/services/llm/config.js +0 -178
  502. package/dist/esm/services/llm/config.js.map +0 -1
  503. package/dist/esm/services/llm/index.d.ts +0 -6
  504. package/dist/esm/services/llm/index.d.ts.map +0 -1
  505. package/dist/esm/services/llm/index.js +0 -394
  506. package/dist/esm/services/llm/index.js.map +0 -1
  507. package/dist/esm/services/llm/models.d.ts +0 -34
  508. package/dist/esm/services/llm/models.d.ts.map +0 -1
  509. package/dist/esm/services/llm/models.js +0 -60
  510. package/dist/esm/services/llm/models.js.map +0 -1
  511. package/dist/esm/services/llm/openai.d.ts +0 -3
  512. package/dist/esm/services/llm/openai.d.ts.map +0 -1
  513. package/dist/esm/services/llm/openai.js +0 -109
  514. package/dist/esm/services/llm/openai.js.map +0 -1
  515. package/dist/esm/services/llm/types.d.ts +0 -71
  516. package/dist/esm/services/llm/types.d.ts.map +0 -1
  517. package/dist/esm/store/defaultPromptConfigs.d.ts +0 -33
  518. package/dist/esm/store/defaultPromptConfigs.d.ts.map +0 -1
  519. package/dist/esm/store/defaultPromptConfigs.js +0 -35
  520. package/dist/esm/store/defaultPromptConfigs.js.map +0 -1
  521. package/dist/esm/store/prompts.d.ts +0 -6
  522. package/dist/esm/store/prompts.d.ts.map +0 -1
  523. package/dist/esm/store/prompts.js +0 -38
  524. package/dist/esm/store/prompts.js.map +0 -1
  525. package/dist/esm/store/rules.d.ts +0 -7
  526. package/dist/esm/store/rules.d.ts.map +0 -1
  527. package/dist/esm/types.d.ts +0 -3
  528. package/dist/esm/types.d.ts.map +0 -1
  529. package/dist/esm/utils/case-function.d.ts +0 -9
  530. package/dist/esm/utils/case-function.d.ts.map +0 -1
  531. package/dist/esm/utils/full-stop-function.d.ts +0 -9
  532. package/dist/esm/utils/full-stop-function.d.ts.map +0 -1
  533. package/dist/esm/utils/leading-blank-function.d.ts +0 -8
  534. package/dist/esm/utils/leading-blank-function.d.ts.map +0 -1
  535. package/dist/esm/utils/rules.d.ts +0 -26
  536. package/dist/esm/utils/rules.d.ts.map +0 -1
@@ -0,0 +1,367 @@
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 googleModel_enum = require('../../domain/enum/google-model.enum.js');
9
+ var llmProvider_enum = require('../../domain/enum/llm-provider.enum.js');
10
+ var ollamaModel_enum = require('../../domain/enum/ollama-model.enum.js');
11
+ var openaiModel_enum = require('../../domain/enum/openai-model.enum.js');
12
+ var apiKey_valueObject = require('../../domain/value-object/api-key.value-object.js');
13
+
14
+ /**
15
+ * Use case for configuring LLM settings
16
+ */
17
+ class ConfigureLLMUseCase {
18
+ CLI_INTERFACE;
19
+ CONFIG_SERVICE;
20
+ constructor(configService, cliInterface) {
21
+ this.CONFIG_SERVICE = configService;
22
+ this.CLI_INTERFACE = cliInterface;
23
+ }
24
+ /**
25
+ * Configure LLM settings interactively
26
+ * @returns Promise resolving to the new configuration
27
+ */
28
+ async configureInteractively() {
29
+ // First, select mode
30
+ const mode = await this.CLI_INTERFACE.select("Select commit mode:", [
31
+ { label: "Auto (AI-powered)", value: "auto" },
32
+ { label: "Manual", value: "manual" },
33
+ ], "auto");
34
+ // If manual mode, create a minimal configuration
35
+ if (mode === "manual") {
36
+ // Create configuration with dummy values for manual mode
37
+ const configuration = new llmConfiguration_entity.LLMConfiguration("openai", // Default provider (won't be used)
38
+ new apiKey_valueObject.ApiKey("manual-mode"), // Dummy API key
39
+ mode, undefined, // No model needed for manual mode
40
+ numeric_constant.DEFAULT_MAX_RETRIES, // Default max retries
41
+ numeric_constant.DEFAULT_VALIDATION_MAX_RETRIES);
42
+ // Save configuration
43
+ await this.saveConfiguration(configuration);
44
+ return configuration;
45
+ }
46
+ // Auto mode - ask for LLM details
47
+ this.CLI_INTERFACE.info("Setting up AI-powered commit mode...");
48
+ // Select provider
49
+ const provider = await this.CLI_INTERFACE.select("Select your LLM provider:", [
50
+ { label: "OpenAI (GPT-4, GPT-3.5)", value: llmProvider_enum.ELLMProvider.OPENAI },
51
+ { label: "Anthropic (Claude)", value: llmProvider_enum.ELLMProvider.ANTHROPIC },
52
+ { label: "Google (Gemini)", value: llmProvider_enum.ELLMProvider.GOOGLE },
53
+ { label: "Azure OpenAI", value: llmProvider_enum.ELLMProvider.AZURE_OPENAI },
54
+ { label: "AWS Bedrock", value: llmProvider_enum.ELLMProvider.AWS_BEDROCK },
55
+ { label: "Ollama (Local)", value: llmProvider_enum.ELLMProvider.OLLAMA },
56
+ ]);
57
+ // Select model based on provider
58
+ let model;
59
+ switch (provider) {
60
+ case llmProvider_enum.ELLMProvider.ANTHROPIC: {
61
+ model = await this.CLI_INTERFACE.select("Select Anthropic model:", [
62
+ { label: "Claude Opus 4 (Latest 2025, most capable)", value: anthropicModel_enum.EAnthropicModel.CLAUDE_OPUS_4 },
63
+ { label: "Claude Sonnet 4 (Latest 2025, high-performance)", value: anthropicModel_enum.EAnthropicModel.CLAUDE_SONNET_4 },
64
+ { label: "Claude 3.7 Sonnet (Extended thinking)", value: anthropicModel_enum.EAnthropicModel.CLAUDE_3_7_SONNET },
65
+ { label: "Claude 3.5 Sonnet (Previous flagship)", value: anthropicModel_enum.EAnthropicModel.CLAUDE_3_5_SONNET },
66
+ { label: "Claude 3.5 Haiku (Fastest)", value: anthropicModel_enum.EAnthropicModel.CLAUDE_3_5_HAIKU },
67
+ { label: "Claude 3 Opus (Complex tasks)", value: anthropicModel_enum.EAnthropicModel.CLAUDE_3_OPUS },
68
+ ], anthropicModel_enum.EAnthropicModel.CLAUDE_SONNET_4);
69
+ break;
70
+ }
71
+ case llmProvider_enum.ELLMProvider.AWS_BEDROCK: {
72
+ model = await this.CLI_INTERFACE.select("Select AWS Bedrock model:", [
73
+ { label: "Claude Opus 4 (Latest 2025, most capable)", value: awsBedrockModel_enum.EAWSBedrockModel.CLAUDE_OPUS_4 },
74
+ { label: "Claude Sonnet 4 (Latest 2025, balanced performance)", value: awsBedrockModel_enum.EAWSBedrockModel.CLAUDE_SONNET_4 },
75
+ { label: "Claude 3.5 Sonnet v2 (Previous flagship)", value: awsBedrockModel_enum.EAWSBedrockModel.CLAUDE_3_5_SONNET_V2 },
76
+ { label: "Claude 3.5 Haiku (Fast)", value: awsBedrockModel_enum.EAWSBedrockModel.CLAUDE_3_5_HAIKU },
77
+ { label: "Claude 3.5 Sonnet", value: awsBedrockModel_enum.EAWSBedrockModel.CLAUDE_3_5_SONNET },
78
+ { label: "Amazon Nova Pro (Latest Amazon model)", value: awsBedrockModel_enum.EAWSBedrockModel.NOVA_PRO },
79
+ { label: "DeepSeek R1 (Advanced reasoning)", value: awsBedrockModel_enum.EAWSBedrockModel.DEEPSEEK_R1 },
80
+ { label: "Llama 3.2 90B (Open source)", value: awsBedrockModel_enum.EAWSBedrockModel.LLAMA_3_2_90B },
81
+ { label: "Mistral Large (Latest)", value: awsBedrockModel_enum.EAWSBedrockModel.MISTRAL_LARGE_2_24_11 },
82
+ ], awsBedrockModel_enum.EAWSBedrockModel.CLAUDE_SONNET_4);
83
+ break;
84
+ }
85
+ case llmProvider_enum.ELLMProvider.AZURE_OPENAI: {
86
+ model = await this.CLI_INTERFACE.select("Select Azure OpenAI model:", [
87
+ { label: "GPT-4.1 Turbo (Latest 2025, most capable)", value: azureOpenaiModel_enum.EAzureOpenAIModel.GPT_4_1_TURBO_2024_12_17 },
88
+ { label: "GPT-4.1 Preview (Latest preview)", value: azureOpenaiModel_enum.EAzureOpenAIModel.GPT_4_1_PREVIEW_2024_12_17 },
89
+ { label: "GPT-4.1 Mini (Fast 4.1 model)", value: azureOpenaiModel_enum.EAzureOpenAIModel.GPT_4_1_MINI_2024_12_17 },
90
+ { label: "GPT-4o 2024-11 (Enhanced creative)", value: azureOpenaiModel_enum.EAzureOpenAIModel.GPT_4O_2024_11_20 },
91
+ { label: "GPT-4o Mini", value: azureOpenaiModel_enum.EAzureOpenAIModel.GPT_4O_MINI_2024_07_18 },
92
+ { label: "GPT-4 Turbo", value: azureOpenaiModel_enum.EAzureOpenAIModel.GPT_4_TURBO },
93
+ { label: "GPT-3.5 Turbo", value: azureOpenaiModel_enum.EAzureOpenAIModel.GPT_35_TURBO },
94
+ { label: "O3 (Enhanced reasoning)", value: azureOpenaiModel_enum.EAzureOpenAIModel.O3_2024_12_17 },
95
+ { label: "O4 Mini (Fast reasoning)", value: azureOpenaiModel_enum.EAzureOpenAIModel.O4_MINI_2024_12_17 },
96
+ ], azureOpenaiModel_enum.EAzureOpenAIModel.GPT_4_1_TURBO_2024_12_17);
97
+ break;
98
+ }
99
+ case llmProvider_enum.ELLMProvider.GOOGLE: {
100
+ model = await this.CLI_INTERFACE.select("Select Google model:", [
101
+ { label: "Gemini 2.5 Pro (Latest 2025, most capable)", value: googleModel_enum.EGoogleModel.GEMINI_2_5_PRO },
102
+ { label: "Gemini 2.5 Flash (Latest 2025, fast)", value: googleModel_enum.EGoogleModel.GEMINI_2_5_FLASH },
103
+ { label: "Gemini 2.0 Flash (Experimental)", value: googleModel_enum.EGoogleModel.GEMINI_2_0_FLASH_EXP },
104
+ { label: "Gemini 1.5 Pro (Stable, capable)", value: googleModel_enum.EGoogleModel.GEMINI_1_5_PRO },
105
+ { label: "Gemini 1.5 Flash (Fast, stable)", value: googleModel_enum.EGoogleModel.GEMINI_1_5_FLASH },
106
+ { label: "Gemini 1.5 Flash 8B (Lightweight)", value: googleModel_enum.EGoogleModel.GEMINI_1_5_FLASH_8B },
107
+ { label: "Gemini 1.0 Pro", value: googleModel_enum.EGoogleModel.GEMINI_1_0_PRO },
108
+ { label: "Gemma 3 27B (Most capable open model)", value: googleModel_enum.EGoogleModel.GEMMA_3_27B },
109
+ { label: "Gemma 3 12B (Strong language model)", value: googleModel_enum.EGoogleModel.GEMMA_3_12B },
110
+ { label: "Gemma 3 4B (Balanced, multimodal)", value: googleModel_enum.EGoogleModel.GEMMA_3_4B },
111
+ { label: "Gemma 3 1B (Lightweight)", value: googleModel_enum.EGoogleModel.GEMMA_3_1B },
112
+ ], googleModel_enum.EGoogleModel.GEMINI_2_5_FLASH);
113
+ break;
114
+ }
115
+ case llmProvider_enum.ELLMProvider.OLLAMA: {
116
+ model = await this.CLI_INTERFACE.select("Select Ollama model:", [
117
+ { label: "Llama 3.2 (Latest)", value: ollamaModel_enum.EOllamaModel.LLAMA3_2 },
118
+ { label: "Llama 3.1", value: ollamaModel_enum.EOllamaModel.LLAMA3_1 },
119
+ { label: "Llama 3", value: ollamaModel_enum.EOllamaModel.LLAMA3 },
120
+ { label: "Mistral", value: ollamaModel_enum.EOllamaModel.MISTRAL },
121
+ { label: "CodeLlama", value: ollamaModel_enum.EOllamaModel.CODELLAMA },
122
+ { label: "DeepSeek Coder", value: ollamaModel_enum.EOllamaModel.DEEPSEEK_CODER },
123
+ { label: "Custom Model", value: ollamaModel_enum.EOllamaModel.CUSTOM },
124
+ ], ollamaModel_enum.EOllamaModel.LLAMA3_2);
125
+ break;
126
+ }
127
+ case llmProvider_enum.ELLMProvider.OPENAI: {
128
+ model = await this.CLI_INTERFACE.select("Select OpenAI model:", [
129
+ { label: "GPT-4.1 (Latest 2025, most capable)", value: openaiModel_enum.EOpenAIModel.GPT_4_1 },
130
+ { label: "GPT-4.1 Nano (Fastest 4.1 model)", value: openaiModel_enum.EOpenAIModel.GPT_4_1_NANO },
131
+ { label: "GPT-4.1 Mini", value: openaiModel_enum.EOpenAIModel.GPT_4_1_MINI },
132
+ { label: "GPT-4o (Latest, enhanced creative writing)", value: openaiModel_enum.EOpenAIModel.GPT_4O },
133
+ { label: "GPT-4o Mini (Faster, cheaper)", value: openaiModel_enum.EOpenAIModel.GPT_4O_MINI },
134
+ { label: "GPT-4 Turbo", value: openaiModel_enum.EOpenAIModel.GPT_4_TURBO },
135
+ { label: "GPT-4 (Original)", value: openaiModel_enum.EOpenAIModel.GPT_4 },
136
+ { label: "GPT-3.5 Turbo (Fastest, cheapest)", value: openaiModel_enum.EOpenAIModel.GPT_35_TURBO },
137
+ { label: "O1 (Enhanced reasoning)", value: openaiModel_enum.EOpenAIModel.O1 },
138
+ { label: "O1 Mini (Fast reasoning)", value: openaiModel_enum.EOpenAIModel.O1_MINI },
139
+ ], openaiModel_enum.EOpenAIModel.GPT_4O);
140
+ break;
141
+ }
142
+ default: {
143
+ // This ensures exhaustiveness - TypeScript will error if a case is missing
144
+ const exhaustiveCheck = provider;
145
+ throw new Error(`Unsupported provider: ${String(exhaustiveCheck)}`);
146
+ }
147
+ }
148
+ // Get API key
149
+ let apiKeyValue;
150
+ // Check environment variables first
151
+ const environmentVariableNames = {
152
+ anthropic: "ANTHROPIC_API_KEY",
153
+ "aws-bedrock": "AWS_BEDROCK_API_KEY",
154
+ "azure-openai": "AZURE_OPENAI_API_KEY",
155
+ google: "GOOGLE_API_KEY",
156
+ ollama: "OLLAMA_API_KEY",
157
+ openai: "OPENAI_API_KEY",
158
+ };
159
+ const environmentVariableName = environmentVariableNames[provider] || "";
160
+ const environmentApiKey = process.env[environmentVariableName];
161
+ if (environmentApiKey && environmentApiKey.trim().length > 0) {
162
+ this.CLI_INTERFACE.success(`Found API key in environment variable: ${environmentVariableName}`);
163
+ apiKeyValue = environmentApiKey;
164
+ }
165
+ else {
166
+ // Inform user about environment variable and format requirements
167
+ let keyFormatInfo = "";
168
+ switch (provider) {
169
+ case llmProvider_enum.ELLMProvider.ANTHROPIC: {
170
+ // Standard API key format - no special format info needed
171
+ // keyFormatInfo is already initialized as empty string
172
+ break;
173
+ }
174
+ case llmProvider_enum.ELLMProvider.AWS_BEDROCK: {
175
+ keyFormatInfo = " (format: region|access-key-id|secret-access-key)";
176
+ break;
177
+ }
178
+ case llmProvider_enum.ELLMProvider.AZURE_OPENAI: {
179
+ keyFormatInfo = " (format: endpoint|api-key|deployment-name)";
180
+ break;
181
+ }
182
+ case llmProvider_enum.ELLMProvider.GOOGLE: {
183
+ // Standard API key format - no special format info needed
184
+ // keyFormatInfo is already initialized as empty string
185
+ break;
186
+ }
187
+ case llmProvider_enum.ELLMProvider.OLLAMA: {
188
+ keyFormatInfo = " (format: host:port or host:port|custom-model)";
189
+ break;
190
+ }
191
+ case llmProvider_enum.ELLMProvider.OPENAI: {
192
+ // Standard API key format - no special format info needed
193
+ // keyFormatInfo is already initialized as empty string
194
+ break;
195
+ }
196
+ default: {
197
+ // This ensures exhaustiveness - TypeScript will error if a case is missing
198
+ const exhaustiveCheck = provider;
199
+ throw new Error(`Unsupported provider: ${String(exhaustiveCheck)}`);
200
+ }
201
+ }
202
+ this.CLI_INTERFACE.info(`API key will be read from ${environmentVariableName} environment variable${keyFormatInfo} or prompted each time.`);
203
+ // Use dummy value for configuration
204
+ apiKeyValue = "will-prompt-on-use";
205
+ }
206
+ // Ask for retry configuration (advanced settings)
207
+ const shouldConfigureAdvanced = await this.CLI_INTERFACE.confirm("Would you like to configure advanced settings (retry counts)?", false);
208
+ let maxRetries = numeric_constant.DEFAULT_MAX_RETRIES;
209
+ let validationMaxRetries = numeric_constant.DEFAULT_VALIDATION_MAX_RETRIES;
210
+ if (shouldConfigureAdvanced) {
211
+ const retriesString = await this.CLI_INTERFACE.text("Max retries for AI generation (default: 3):", "3", "3", (value) => {
212
+ const parsedNumber = Number.parseInt(value, 10);
213
+ if (Number.isNaN(parsedNumber) || parsedNumber < numeric_constant.MIN_RETRY_COUNT || parsedNumber > numeric_constant.MAX_RETRY_COUNT) {
214
+ return "Please enter a number between 1 and 10";
215
+ }
216
+ });
217
+ maxRetries = Number.parseInt(retriesString, 10);
218
+ const validationRetriesString = await this.CLI_INTERFACE.text("Max retries for validation fixes (default: 3):", "3", "3", (value) => {
219
+ const parsedNumber = Number.parseInt(value, 10);
220
+ if (Number.isNaN(parsedNumber) || parsedNumber < numeric_constant.MIN_RETRY_COUNT || parsedNumber > numeric_constant.MAX_RETRY_COUNT) {
221
+ return "Please enter a number between 1 and 10";
222
+ }
223
+ });
224
+ validationMaxRetries = Number.parseInt(validationRetriesString, 10);
225
+ }
226
+ // Create configuration
227
+ // Create configuration - will save without API key
228
+ const configuration = new llmConfiguration_entity.LLMConfiguration(provider, new apiKey_valueObject.ApiKey(apiKeyValue), mode, model, maxRetries, validationMaxRetries);
229
+ // Save configuration (without API key)
230
+ await this.saveConfiguration(configuration);
231
+ this.CLI_INTERFACE.success("Configuration saved successfully!");
232
+ // If we have an environment API key, return config with it
233
+ // Otherwise, return config with dummy key (will prompt later)
234
+ return configuration;
235
+ }
236
+ /**
237
+ * Get the current LLM configuration
238
+ * @returns Promise resolving to the current configuration or null if not configured
239
+ */
240
+ async getCurrentConfiguration() {
241
+ const config = await this.CONFIG_SERVICE.get();
242
+ if (!config.provider || !config.mode) {
243
+ return null;
244
+ }
245
+ // Add backward compatibility - set default retry values if missing
246
+ let isConfigUpdated = false;
247
+ if (config.maxRetries === undefined) {
248
+ config.maxRetries = numeric_constant.DEFAULT_MAX_RETRIES;
249
+ isConfigUpdated = true;
250
+ }
251
+ if (config.validationMaxRetries === undefined) {
252
+ config.validationMaxRetries = numeric_constant.DEFAULT_VALIDATION_MAX_RETRIES;
253
+ isConfigUpdated = true;
254
+ }
255
+ // Save updated config if we added defaults
256
+ if (isConfigUpdated) {
257
+ await this.CONFIG_SERVICE.set(config);
258
+ }
259
+ // Migrate deprecated models
260
+ let migratedModel = config.model;
261
+ if (migratedModel) {
262
+ // Map old models to new ones
263
+ const modelMigrations = {
264
+ // Anthropic migrations
265
+ "claude-2.0": anthropicModel_enum.EAnthropicModel.CLAUDE_3_5_SONNET,
266
+ "claude-2.1": anthropicModel_enum.EAnthropicModel.CLAUDE_3_5_SONNET,
267
+ "claude-3-5-haiku-20241022": anthropicModel_enum.EAnthropicModel.CLAUDE_3_5_HAIKU,
268
+ "claude-3-5-sonnet-20241022": anthropicModel_enum.EAnthropicModel.CLAUDE_3_5_SONNET,
269
+ "claude-3-haiku-20240307": anthropicModel_enum.EAnthropicModel.CLAUDE_3_5_HAIKU,
270
+ "claude-3-sonnet-20240229": anthropicModel_enum.EAnthropicModel.CLAUDE_3_5_SONNET,
271
+ // OpenAI migrations (upgrade old GPT-4 references)
272
+ "gpt-3.5-turbo": openaiModel_enum.EOpenAIModel.GPT_35_TURBO,
273
+ "gpt-4": openaiModel_enum.EOpenAIModel.GPT_4,
274
+ "gpt-4-0125-preview": openaiModel_enum.EOpenAIModel.GPT_4_TURBO,
275
+ "gpt-4-0613": openaiModel_enum.EOpenAIModel.GPT_4,
276
+ "gpt-4-1106-preview": openaiModel_enum.EOpenAIModel.GPT_4_TURBO,
277
+ "gpt-4-32k": openaiModel_enum.EOpenAIModel.GPT_4_32K,
278
+ "gpt-4-32k-0613": openaiModel_enum.EOpenAIModel.GPT_4_32K,
279
+ "gpt-4o": openaiModel_enum.EOpenAIModel.GPT_4O_MAY,
280
+ "gpt-4o-2024-05-13": openaiModel_enum.EOpenAIModel.GPT_4O_MAY,
281
+ "gpt-4o-2024-08-06": openaiModel_enum.EOpenAIModel.GPT_4O_AUGUST,
282
+ "gpt-4o-mini": openaiModel_enum.EOpenAIModel.GPT_4O_MINI,
283
+ };
284
+ if (modelMigrations[migratedModel]) {
285
+ const oldModel = migratedModel;
286
+ migratedModel = modelMigrations[migratedModel];
287
+ // Save the migrated configuration
288
+ await this.CONFIG_SERVICE.setProperty("model", migratedModel);
289
+ this.CLI_INTERFACE.warn(`Migrated deprecated model ${oldModel} to ${migratedModel}`);
290
+ }
291
+ }
292
+ // For manual mode, return configuration with dummy API key
293
+ if (config.mode === "manual") {
294
+ 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);
295
+ }
296
+ // For auto mode, check environment variables
297
+ const environmentVariableNames = {
298
+ anthropic: "ANTHROPIC_API_KEY",
299
+ "aws-bedrock": "AWS_BEDROCK_API_KEY",
300
+ "azure-openai": "AZURE_OPENAI_API_KEY",
301
+ google: "GOOGLE_API_KEY",
302
+ ollama: "OLLAMA_API_KEY",
303
+ openai: "OPENAI_API_KEY",
304
+ };
305
+ const environmentVariableName = environmentVariableNames[config.provider] || "";
306
+ const environmentApiKey = process.env[environmentVariableName];
307
+ // If no API key in environment, return null (will prompt later)
308
+ if (!environmentApiKey || environmentApiKey.trim().length === 0) {
309
+ return null;
310
+ }
311
+ 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);
312
+ }
313
+ /**
314
+ * Check if the current configuration needs LLM details
315
+ * @returns Promise resolving to true if LLM details are needed
316
+ */
317
+ async needsLLMDetails() {
318
+ const config = await this.CONFIG_SERVICE.get();
319
+ if (!config.mode || config.mode === "manual") {
320
+ return false;
321
+ }
322
+ // For auto mode, check if API key is in environment
323
+ const environmentVariableNames = {
324
+ anthropic: "ANTHROPIC_API_KEY",
325
+ "aws-bedrock": "AWS_BEDROCK_API_KEY",
326
+ "azure-openai": "AZURE_OPENAI_API_KEY",
327
+ google: "GOOGLE_API_KEY",
328
+ ollama: "OLLAMA_API_KEY",
329
+ openai: "OPENAI_API_KEY",
330
+ };
331
+ const environmentVariableName = environmentVariableNames[config.provider] || "";
332
+ const environmentApiKey = process.env[environmentVariableName];
333
+ // Need details if no API key in environment
334
+ return !environmentApiKey || environmentApiKey.trim().length === 0;
335
+ }
336
+ /**
337
+ * Save LLM configuration
338
+ * @param configuration - The configuration to save
339
+ */
340
+ async saveConfiguration(configuration) {
341
+ const config = {
342
+ maxRetries: configuration.getMaxRetries(),
343
+ mode: configuration.getMode(),
344
+ model: configuration.getModel(),
345
+ provider: configuration.getProvider(),
346
+ validationMaxRetries: configuration.getValidationMaxRetries(),
347
+ };
348
+ await this.CONFIG_SERVICE.set(config);
349
+ }
350
+ /**
351
+ * Update the commit mode
352
+ * @param mode - The new commit mode
353
+ * @returns Promise resolving to the updated configuration
354
+ */
355
+ async updateMode(mode) {
356
+ const current = await this.getCurrentConfiguration();
357
+ if (!current) {
358
+ return null;
359
+ }
360
+ const updated = current.withMode(mode);
361
+ await this.saveConfiguration(updated);
362
+ return updated;
363
+ }
364
+ }
365
+
366
+ exports.ConfigureLLMUseCase = ConfigureLLMUseCase;
367
+ //# 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":["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,19 @@
1
+ import type { CommitMessage } from "../../domain/entity/commit-message.entity.js";
2
+ import type { LLMConfiguration } from "../../domain/entity/llm-configuration.entity.js";
3
+ import type { ILlmPromptContext, ILlmService } from "../interface/llm-service.interface.js";
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 use case
12
+ * @param context - The context for generating the commit message
13
+ * @param configuration - The LLM configuration
14
+ * @param onRetry - Optional callback for retry notifications
15
+ * @returns 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
+ }
19
+ //# sourceMappingURL=generate-commit-message.use-case.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-commit-message.use-case.d.ts","sourceRoot":"","sources":["../../../../src/application/use-case/generate-commit-message.use-case.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iDAAiD,CAAC;AACxF,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAI5F;;GAEG;AACH,qBAAa,4BAA4B;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;gBAEtC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC;IAI3C;;;;;;OAMG;IACG,OAAO,CAAC,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC;CA+BzK"}
@@ -0,0 +1,49 @@
1
+ 'use strict';
2
+
3
+ var numeric_constant = require('../../domain/constant/numeric.constant.js');
4
+
5
+ /**
6
+ * Use case for generating commit messages
7
+ */
8
+ class GenerateCommitMessageUseCase {
9
+ LLM_SERVICES;
10
+ constructor(llmServices) {
11
+ this.LLM_SERVICES = llmServices;
12
+ }
13
+ /**
14
+ * Execute the use case
15
+ * @param context - The context for generating the commit message
16
+ * @param configuration - The LLM configuration
17
+ * @param onRetry - Optional callback for retry notifications
18
+ * @returns Promise resolving to the generated commit message
19
+ */
20
+ async execute(context, configuration, onRetry) {
21
+ const service = this.LLM_SERVICES.find((s) => s.supports(configuration));
22
+ if (!service) {
23
+ throw new Error(`No LLM service found for provider: ${configuration.getProvider()}`);
24
+ }
25
+ const maxRetries = configuration.getMaxRetries();
26
+ // Try to generate with retries
27
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
28
+ try {
29
+ return await service.generateCommitMessage(context, configuration);
30
+ }
31
+ catch (error) {
32
+ if (attempt === maxRetries) {
33
+ throw new Error(`Failed to generate commit message after ${maxRetries} attempts: ${error instanceof Error ? error.message : String(error)}`);
34
+ }
35
+ // Notify about retry
36
+ if (onRetry) {
37
+ onRetry(attempt, maxRetries, error);
38
+ }
39
+ // Wait before retrying
40
+ await new Promise((resolve) => setTimeout(resolve, numeric_constant.RETRY_DELAY_MS));
41
+ }
42
+ }
43
+ // This should never be reached due to the throw in the loop
44
+ throw new Error(`Failed to generate commit message after ${maxRetries} attempts`);
45
+ }
46
+ }
47
+
48
+ exports.GenerateCommitMessageUseCase = GenerateCommitMessageUseCase;
49
+ //# sourceMappingURL=generate-commit-message.use-case.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-commit-message.use-case.js","sources":["../../../../../src/application/use-case/generate-commit-message.use-case.ts"],"sourcesContent":[null],"names":["RETRY_DELAY_MS"],"mappings":";;;;AAMA;;AAEG;MACU,4BAA4B,CAAA;AACvB,IAAA,YAAY;AAE7B,IAAA,WAAA,CAAY,WAA+B,EAAA;AAC1C,QAAA,IAAI,CAAC,YAAY,GAAG,WAAW;;AAGhC;;;;;;AAMG;AACH,IAAA,MAAM,OAAO,CAAC,OAA0B,EAAE,aAA+B,EAAE,OAAqE,EAAA;QAC/I,MAAM,OAAO,GAA4B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAc,KAAK,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAE9G,IAAI,CAAC,OAAO,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,CAAsC,mCAAA,EAAA,aAAa,CAAC,WAAW,EAAE,CAAE,CAAA,CAAC;;AAGrF,QAAA,MAAM,UAAU,GAAW,aAAa,CAAC,aAAa,EAAE;;AAGxD,QAAA,KAAK,IAAI,OAAO,GAAW,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE;AAC/D,YAAA,IAAI;gBACH,OAAO,MAAM,OAAO,CAAC,qBAAqB,CAAC,OAAO,EAAE,aAAa,CAAC;;YACjE,OAAO,KAAK,EAAE;AACf,gBAAA,IAAI,OAAO,KAAK,UAAU,EAAE;oBAC3B,MAAM,IAAI,KAAK,CAAC,CAA2C,wCAAA,EAAA,UAAU,cAAc,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAE,CAAA,CAAC;;;gBAI7I,IAAI,OAAO,EAAE;AACZ,oBAAA,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,KAAc,CAAC;;;AAI7C,gBAAA,MAAM,IAAI,OAAO,CAAO,CAAC,OAAmB,KAAK,UAAU,CAAC,OAAO,EAAEA,+BAAc,CAAC,CAAC;;;;AAKvF,QAAA,MAAM,IAAI,KAAK,CAAC,2CAA2C,UAAU,CAAA,SAAA,CAAW,CAAC;;AAElF;;;;"}
@@ -0,0 +1,5 @@
1
+ export * from "./configure-llm.use-case.js";
2
+ export * from "./generate-commit-message.use-case.js";
3
+ export * from "./manual-commit.use-case.js";
4
+ export * from "./validate-commit-message.use-case.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/application/use-case/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uCAAuC,CAAC;AACtD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uCAAuC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { ICliInterfaceService } from "../interface/cli-interface-service.interface.js";
2
+ import type { ILlmPromptContext } from "../interface/llm-service.interface.js";
3
+ import { CommitMessage } from "../../domain/entity/commit-message.entity.js";
4
+ /**
5
+ * Use case for manual commit message creation
6
+ */
7
+ export declare class ManualCommitUseCase {
8
+ private readonly CLI_INTERFACE;
9
+ constructor(cliInterface: ICliInterfaceService);
10
+ /**
11
+ * Execute the manual commit creation process
12
+ * @param context - The context for the commit
13
+ * @returns Promise resolving to the commit message
14
+ */
15
+ execute(context: ILlmPromptContext): Promise<CommitMessage>;
16
+ }
17
+ //# sourceMappingURL=manual-commit.use-case.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manual-commit.use-case.d.ts","sourceRoot":"","sources":["../../../../src/application/use-case/manual-commit.use-case.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AAC5F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAI7E;;GAEG;AACH,qBAAa,mBAAmB;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;gBAEzC,YAAY,EAAE,oBAAoB;IAI9C;;;;OAIG;IACG,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC;CAsEjE"}
@@ -0,0 +1,79 @@
1
+ 'use strict';
2
+
3
+ var commitMessage_entity = require('../../domain/entity/commit-message.entity.js');
4
+ var commitBody_valueObject = require('../../domain/value-object/commit-body.value-object.js');
5
+ var commitHeader_valueObject = require('../../domain/value-object/commit-header.value-object.js');
6
+
7
+ /**
8
+ * Use case for manual commit message creation
9
+ */
10
+ class ManualCommitUseCase {
11
+ CLI_INTERFACE;
12
+ constructor(cliInterface) {
13
+ this.CLI_INTERFACE = cliInterface;
14
+ }
15
+ /**
16
+ * Execute the manual commit creation process
17
+ * @param context - The context for the commit
18
+ * @returns Promise resolving to the commit message
19
+ */
20
+ async execute(context) {
21
+ // Build type options from context
22
+ const typeOptions = [];
23
+ if (context.typeDescriptions) {
24
+ for (const [type, desc] of Object.entries(context.typeDescriptions)) {
25
+ const emoji = desc.emoji ?? "";
26
+ const cleanDesc = desc.description.replace(/\.$/, "");
27
+ const emojiSuffix = emoji ? ` ${emoji}` : "";
28
+ typeOptions.push({
29
+ label: `${type}: ${cleanDesc}${emojiSuffix}`,
30
+ value: type,
31
+ });
32
+ }
33
+ }
34
+ else if (context.typeEnum) {
35
+ for (const type of context.typeEnum) {
36
+ typeOptions.push({ label: type, value: type });
37
+ }
38
+ }
39
+ const type = await this.CLI_INTERFACE.select("Select commit type:", typeOptions);
40
+ // Get scope if applicable
41
+ const scope = await this.CLI_INTERFACE.text("Enter scope (optional):", "", "");
42
+ // Get subject
43
+ const subject = await this.CLI_INTERFACE.text("Enter commit subject:", "", "", (value) => {
44
+ if (!value.trim()) {
45
+ return "Subject is required";
46
+ }
47
+ if (context.subject.minLength && value.length < context.subject.minLength) {
48
+ return `Subject must be at least ${context.subject.minLength} characters`;
49
+ }
50
+ if (context.subject.maxLength && value.length > context.subject.maxLength) {
51
+ return `Subject must be at most ${context.subject.maxLength} characters`;
52
+ }
53
+ });
54
+ // Get body
55
+ const body = await this.CLI_INTERFACE.text("Enter commit body (optional):", "", "");
56
+ // Get breaking change
57
+ const hasBreakingChange = await this.CLI_INTERFACE.confirm("Is this a breaking change?", false);
58
+ let breakingChange;
59
+ if (hasBreakingChange) {
60
+ breakingChange = await this.CLI_INTERFACE.text("Describe the breaking change:", "", "");
61
+ }
62
+ // Create commit message
63
+ const header = new commitHeader_valueObject.CommitHeader(type, subject, scope);
64
+ const commitBody = new commitBody_valueObject.CommitBody(body, breakingChange);
65
+ const commitMessage = new commitMessage_entity.CommitMessage(header, commitBody);
66
+ // Ask for confirmation
67
+ this.CLI_INTERFACE.log("\nCommit message preview:");
68
+ this.CLI_INTERFACE.log(commitMessage.toString());
69
+ const isConfirmed = await this.CLI_INTERFACE.confirm("\nUse this commit message?", true);
70
+ if (!isConfirmed) {
71
+ // Recursively call to edit
72
+ return this.execute(context);
73
+ }
74
+ return commitMessage;
75
+ }
76
+ }
77
+
78
+ exports.ManualCommitUseCase = ManualCommitUseCase;
79
+ //# sourceMappingURL=manual-commit.use-case.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manual-commit.use-case.js","sources":["../../../../../src/application/use-case/manual-commit.use-case.ts"],"sourcesContent":[null],"names":["CommitHeader","CommitBody","CommitMessage"],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { CommitMessage } from "../../domain/entity/commit-message.entity.js";
2
+ import type { ICommitValidationResult, ICommitValidator } from "../interface/commit-validator.interface.js";
3
+ import type { ILlmPromptContext } from "../interface/llm-service.interface.js";
4
+ /**
5
+ * Use case for validating and fixing commit messages
6
+ */
7
+ export declare class ValidateCommitMessageUseCase {
8
+ private readonly DEFAULT_MAX_RETRIES;
9
+ private readonly VALIDATOR;
10
+ constructor(validator: ICommitValidator, defaultMaxRetries?: number);
11
+ /**
12
+ * Execute the validation and optional fixing of a commit message
13
+ * @param message - The commit message to validate
14
+ * @param shouldAttemptFix - Whether to attempt to fix validation errors
15
+ * @param maxRetries - Maximum number of fix attempts
16
+ * @param context - Optional context for fixing
17
+ * @returns Promise resolving to the validated/fixed message or null if unfixable
18
+ */
19
+ execute(message: CommitMessage, shouldAttemptFix?: boolean, maxRetries?: number, context?: ILlmPromptContext): Promise<CommitMessage | null>;
20
+ /**
21
+ * Validate a commit message
22
+ * @param message - The commit message to validate
23
+ * @returns Promise resolving to the validation result
24
+ */
25
+ validate(message: CommitMessage): Promise<ICommitValidationResult>;
26
+ }
27
+ //# sourceMappingURL=validate-commit-message.use-case.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-commit-message.use-case.d.ts","sourceRoot":"","sources":["../../../../src/application/use-case/validate-commit-message.use-case.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,KAAK,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAC5G,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAI/E;;GAEG;AACH,qBAAa,4BAA4B;IACxC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA0C;IAE9E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;gBAEjC,SAAS,EAAE,gBAAgB,EAAE,iBAAiB,GAAE,MAAuC;IAKnG;;;;;;;OAOG;IACG,OAAO,CAAC,OAAO,EAAE,aAAa,EAAE,gBAAgB,GAAE,OAAe,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAuDzJ;;;;OAIG;IACG,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,uBAAuB,CAAC;CAGxE"}