@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,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 commit message generation
15
+ * @param {ILlmPromptContext} context - The context for generating the commit message
16
+ * @param {LLMConfiguration} configuration - The LLM configuration
17
+ * @param {(attempt: number, maxRetries: number, error: Error) => void} onRetry - Callback function called on retry attempts
18
+ * @returns {Promise<CommitMessage>} 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,4 @@
1
+ export * from './configure-llm.use-case';
2
+ export * from './generate-commit-message.use-case';
3
+ export * from './manual-commit.use-case';
4
+ export * from './validate-commit-message.use-case';
@@ -0,0 +1,16 @@
1
+ import type { ICliInterfaceService } from '../interface/cli-interface-service.interface';
2
+ import type { ILlmPromptContext } from '../interface/llm-service.interface';
3
+ import { CommitMessage } from '../../domain/entity/commit-message.entity';
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 {ILlmPromptContext} context - The context for the commit
13
+ * @returns {Promise<CommitMessage>} Promise resolving to the commit message
14
+ */
15
+ execute(context: ILlmPromptContext): Promise<CommitMessage>;
16
+ }
@@ -0,0 +1,81 @@
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 {ILlmPromptContext} context - The context for the commit
18
+ * @returns {Promise<CommitMessage>} 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
+ // eslint-disable-next-line @elsikora/sonar/no-redundant-jump
54
+ return;
55
+ });
56
+ // Get body
57
+ const body = await this.CLI_INTERFACE.text("Enter commit body (optional):", "", "");
58
+ // Get breaking change
59
+ const hasBreakingChange = await this.CLI_INTERFACE.confirm("Is this a breaking change?", false);
60
+ let breakingChange;
61
+ if (hasBreakingChange) {
62
+ breakingChange = await this.CLI_INTERFACE.text("Describe the breaking change:", "", "");
63
+ }
64
+ // Create commit message
65
+ const header = new commitHeader_valueObject.CommitHeader(type, subject, scope);
66
+ const commitBody = new commitBody_valueObject.CommitBody(body, breakingChange);
67
+ const commitMessage = new commitMessage_entity.CommitMessage(header, commitBody);
68
+ // Ask for confirmation
69
+ this.CLI_INTERFACE.log("\nCommit message preview:");
70
+ this.CLI_INTERFACE.log(commitMessage.toString());
71
+ const isConfirmed = await this.CLI_INTERFACE.confirm("\nUse this commit message?", true);
72
+ if (!isConfirmed) {
73
+ // Recursively call to edit
74
+ return this.execute(context);
75
+ }
76
+ return commitMessage;
77
+ }
78
+ }
79
+
80
+ exports.ManualCommitUseCase = ManualCommitUseCase;
81
+ //# 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":";;;;;;AAOA;;AAEG;MACU,mBAAmB,CAAA;AACd,IAAA,aAAa;AAE9B,IAAA,WAAA,CAAY,YAAkC,EAAA;AAC7C,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY;;AAGlC;;;;AAIG;IACH,MAAM,OAAO,CAAC,OAA0B,EAAA;;QAEvC,MAAM,WAAW,GAA4C,EAAE;AAE/D,QAAA,IAAI,OAAO,CAAC,gBAAgB,EAAE;AAC7B,YAAA,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;AACpE,gBAAA,MAAM,KAAK,GAAW,IAAI,CAAC,KAAK,IAAI,EAAE;AACtC,gBAAA,MAAM,SAAS,GAAW,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AAE7D,gBAAA,MAAM,WAAW,GAAW,KAAK,GAAG,CAAI,CAAA,EAAA,KAAK,CAAE,CAAA,GAAG,EAAE;gBACpD,WAAW,CAAC,IAAI,CAAC;AAChB,oBAAA,KAAK,EAAE,CAAG,EAAA,IAAI,KAAK,SAAS,CAAA,EAAG,WAAW,CAAE,CAAA;AAC5C,oBAAA,KAAK,EAAE,IAAI;AACX,iBAAA,CAAC;;;AAEG,aAAA,IAAI,OAAO,CAAC,QAAQ,EAAE;AAC5B,YAAA,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE;AACpC,gBAAA,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;;;AAIhD,QAAA,MAAM,IAAI,GAAW,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,qBAAqB,EAAE,WAAW,CAAC;;AAGxF,QAAA,MAAM,KAAK,GAAuB,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,EAAE,EAAE,CAAC;;AAGlG,QAAA,MAAM,OAAO,GAAW,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAa,KAAI;AACxG,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE;AAClB,gBAAA,OAAO,qBAAqB;;AAG7B,YAAA,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE;AAC1E,gBAAA,OAAO,4BAA4B,OAAO,CAAC,OAAO,CAAC,SAAS,aAAa;;AAG1E,YAAA,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE;AAC1E,gBAAA,OAAO,2BAA2B,OAAO,CAAC,OAAO,CAAC,SAAS,aAAa;;;YAIzE;AACD,SAAC,CAAC;;AAGF,QAAA,MAAM,IAAI,GAAuB,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,+BAA+B,EAAE,EAAE,EAAE,EAAE,CAAC;;AAGvG,QAAA,MAAM,iBAAiB,GAAY,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,4BAA4B,EAAE,KAAK,CAAC;AACxG,QAAA,IAAI,cAAkC;QAEtC,IAAI,iBAAiB,EAAE;AACtB,YAAA,cAAc,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,+BAA+B,EAAE,EAAE,EAAE,EAAE,CAAC;;;QAIxF,MAAM,MAAM,GAAiB,IAAIA,qCAAY,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC;QACnE,MAAM,UAAU,GAAe,IAAIC,iCAAU,CAAC,IAAI,EAAE,cAAc,CAAC;QACnE,MAAM,aAAa,GAAkB,IAAIC,kCAAa,CAAC,MAAM,EAAE,UAAU,CAAC;;AAG1E,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,2BAA2B,CAAC;QACnD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;AAEhD,QAAA,MAAM,WAAW,GAAY,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,4BAA4B,EAAE,IAAI,CAAC;QAEjG,IAAI,CAAC,WAAW,EAAE;;AAEjB,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;;AAG7B,QAAA,OAAO,aAAa;;AAErB;;;;"}
@@ -0,0 +1,26 @@
1
+ import type { CommitMessage } from '../../domain/entity/commit-message.entity';
2
+ import type { ICommitValidationResult, ICommitValidator } from '../interface/commit-validator.interface';
3
+ import type { ILlmPromptContext } from '../interface/llm-service.interface';
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 use case
13
+ * @param {CommitMessage} message - The commit message to validate
14
+ * @param {boolean} shouldAttemptFix - Whether to attempt fixing validation errors
15
+ * @param {number | undefined} maxRetries - Maximum number of retry attempts (optional, defaults to DEFAULT_MAX_RETRIES)
16
+ * @param {ILlmPromptContext} context - The LLM prompt context
17
+ * @returns {Promise<CommitMessage | null>} Promise resolving to the validated message or null if validation fails
18
+ */
19
+ execute(message: CommitMessage, shouldAttemptFix?: boolean, maxRetries?: number, context?: ILlmPromptContext): Promise<CommitMessage | null>;
20
+ /**
21
+ * Validate a commit message
22
+ * @param {CommitMessage} message - The commit message to validate
23
+ * @returns {Promise<ICommitValidationResult>} Promise resolving to the validation result
24
+ */
25
+ validate(message: CommitMessage): Promise<ICommitValidationResult>;
26
+ }
@@ -0,0 +1,76 @@
1
+ 'use strict';
2
+
3
+ var numeric_constant = require('../../domain/constant/numeric.constant.js');
4
+
5
+ /**
6
+ * Use case for validating and fixing commit messages
7
+ */
8
+ class ValidateCommitMessageUseCase {
9
+ DEFAULT_MAX_RETRIES = numeric_constant.DEFAULT_VALIDATION_MAX_RETRIES;
10
+ VALIDATOR;
11
+ constructor(validator, defaultMaxRetries = numeric_constant.DEFAULT_VALIDATION_MAX_RETRIES) {
12
+ this.VALIDATOR = validator;
13
+ this.DEFAULT_MAX_RETRIES = defaultMaxRetries;
14
+ }
15
+ /**
16
+ * Execute the validation use case
17
+ * @param {CommitMessage} message - The commit message to validate
18
+ * @param {boolean} shouldAttemptFix - Whether to attempt fixing validation errors
19
+ * @param {number | undefined} maxRetries - Maximum number of retry attempts (optional, defaults to DEFAULT_MAX_RETRIES)
20
+ * @param {ILlmPromptContext} context - The LLM prompt context
21
+ * @returns {Promise<CommitMessage | null>} Promise resolving to the validated message or null if validation fails
22
+ */
23
+ async execute(message, shouldAttemptFix = false, maxRetries, context) {
24
+ const retryLimit = maxRetries ?? this.DEFAULT_MAX_RETRIES;
25
+ let currentMessage = message;
26
+ let attempts = 0;
27
+ while (attempts <= retryLimit) {
28
+ const validationResult = await this.validate(currentMessage);
29
+ if (validationResult.isValid) {
30
+ if (attempts > 0) {
31
+ process.stdout.write(`✓ Commit message fixed after ${attempts} attempt${attempts > 1 ? "s" : ""}\n`);
32
+ }
33
+ return currentMessage;
34
+ }
35
+ // If we shouldn't attempt fix or we've exhausted all retries
36
+ if (!shouldAttemptFix || attempts >= retryLimit) {
37
+ if (validationResult.errors && validationResult.errors.length > 0) {
38
+ process.stdout.write(`✗ Commit message validation failed after ${attempts} attempts:\n`);
39
+ for (const error of validationResult.errors) {
40
+ process.stdout.write(` - ${error}\n`);
41
+ }
42
+ }
43
+ return null;
44
+ }
45
+ // Attempt to fix
46
+ attempts++;
47
+ process.stdout.write(`Attempting to fix commit message (attempt ${attempts}/${retryLimit})...\n`);
48
+ try {
49
+ const fixedMessage = await this.VALIDATOR.fix(currentMessage, validationResult, context);
50
+ if (!fixedMessage) {
51
+ process.stdout.write("Unable to automatically fix the commit message\n");
52
+ return null;
53
+ }
54
+ process.stdout.write("Fixed commit message generated\n");
55
+ currentMessage = fixedMessage;
56
+ }
57
+ catch (error) {
58
+ process.stdout.write(`Error during fix attempt: ${error instanceof Error ? error.message : String(error)}\n`);
59
+ return null;
60
+ }
61
+ }
62
+ process.stdout.write(`Unable to generate valid commit message after ${retryLimit} attempts\n`);
63
+ return null;
64
+ }
65
+ /**
66
+ * Validate a commit message
67
+ * @param {CommitMessage} message - The commit message to validate
68
+ * @returns {Promise<ICommitValidationResult>} Promise resolving to the validation result
69
+ */
70
+ async validate(message) {
71
+ return this.VALIDATOR.validate(message);
72
+ }
73
+ }
74
+
75
+ exports.ValidateCommitMessageUseCase = ValidateCommitMessageUseCase;
76
+ //# sourceMappingURL=validate-commit-message.use-case.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-commit-message.use-case.js","sources":["../../../../../src/application/use-case/validate-commit-message.use-case.ts"],"sourcesContent":[null],"names":["DEFAULT_VALIDATION_MAX_RETRIES"],"mappings":";;;;AAMA;;AAEG;MACU,4BAA4B,CAAA;IACvB,mBAAmB,GAAWA,+CAA8B;AAE5D,IAAA,SAAS;IAE1B,WAAY,CAAA,SAA2B,EAAE,iBAAA,GAA4BA,+CAA8B,EAAA;AAClG,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;AAC1B,QAAA,IAAI,CAAC,mBAAmB,GAAG,iBAAiB;;AAG7C;;;;;;;AAOG;IACH,MAAM,OAAO,CAAC,OAAsB,EAAE,mBAA4B,KAAK,EAAE,UAAmB,EAAE,OAA2B,EAAA;AACxH,QAAA,MAAM,UAAU,GAAW,UAAU,IAAI,IAAI,CAAC,mBAAmB;QACjE,IAAI,cAAc,GAAkB,OAAO;QAC3C,IAAI,QAAQ,GAAW,CAAC;AAExB,QAAA,OAAO,QAAQ,IAAI,UAAU,EAAE;YAC9B,MAAM,gBAAgB,GAA4B,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;AAErF,YAAA,IAAI,gBAAgB,CAAC,OAAO,EAAE;AAC7B,gBAAA,IAAI,QAAQ,GAAG,CAAC,EAAE;oBACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAgC,6BAAA,EAAA,QAAQ,WAAW,QAAQ,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAI,EAAA,CAAA,CAAC;;AAGrG,gBAAA,OAAO,cAAc;;;AAItB,YAAA,IAAI,CAAC,gBAAgB,IAAI,QAAQ,IAAI,UAAU,EAAE;AAChD,gBAAA,IAAI,gBAAgB,CAAC,MAAM,IAAI,gBAAgB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBAClE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAA4C,yCAAA,EAAA,QAAQ,CAAc,YAAA,CAAA,CAAC;AAExF,oBAAA,KAAK,MAAM,KAAK,IAAI,gBAAgB,CAAC,MAAM,EAAE;wBAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAO,IAAA,EAAA,KAAK,CAAI,EAAA,CAAA,CAAC;;;AAIxC,gBAAA,OAAO,IAAI;;;AAIZ,YAAA,QAAQ,EAAE;YACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAA6C,0CAAA,EAAA,QAAQ,CAAI,CAAA,EAAA,UAAU,CAAQ,MAAA,CAAA,CAAC;AAEjG,YAAA,IAAI;AACH,gBAAA,MAAM,YAAY,GAAyB,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,EAAE,gBAAgB,EAAE,OAAO,CAAC;gBAE9G,IAAI,CAAC,YAAY,EAAE;AAClB,oBAAA,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kDAAkD,CAAC;AAExE,oBAAA,OAAO,IAAI;;AAGZ,gBAAA,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC;gBACxD,cAAc,GAAG,YAAY;;YAC5B,OAAO,KAAK,EAAE;gBACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAI,EAAA,CAAA,CAAC;AAE7G,gBAAA,OAAO,IAAI;;;QAIb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAiD,8CAAA,EAAA,UAAU,CAAa,WAAA,CAAA,CAAC;AAE9F,QAAA,OAAO,IAAI;;AAGZ;;;;AAIG;IACH,MAAM,QAAQ,CAAC,OAAsB,EAAA;QACpC,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;;AAExC;;;;"}
@@ -0,0 +1 @@
1
+ export * from './numeric.constant';
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Numeric constants used throughout the application
3
+ */
4
+ export declare const DEFAULT_MAX_RETRIES: number;
5
+ export declare const DEFAULT_VALIDATION_MAX_RETRIES: number;
6
+ export declare const MAX_TOKENS: number;
7
+ export declare const LLM_TEMPERATURE: number;
8
+ export declare const RETRY_DELAY_MS: number;
9
+ export declare const RULE_LEVEL_INDEX: number;
10
+ export declare const RULE_CONDITION_INDEX: number;
11
+ export declare const RULE_VALUE_INDEX: number;
12
+ export declare const MIN_RULE_LENGTH: number;
13
+ export declare const RULE_CONFIG_LENGTH: number;
14
+ export declare const VALIDATION_LEVEL_DISABLED: number;
15
+ export declare const VALIDATION_LEVEL_WARNING: number;
16
+ export declare const VALIDATION_LEVEL_ERROR: number;
17
+ export declare const ELLIPSIS_LENGTH: number;
18
+ export declare const MIN_API_KEY_LENGTH: number;
19
+ export declare const REDACTED_LENGTH: number;
20
+ export declare const NOTE_BOX_PADDING: number;
21
+ export declare const NOTE_BOX_CONTENT_PADDING: number;
22
+ export declare const MIN_RETRY_COUNT: number;
23
+ export declare const MAX_RETRY_COUNT: number;
24
+ export declare const OPENAI_MAX_TOKENS: number;
25
+ export declare const OPENAI_TEMPERATURE: number;
@@ -0,0 +1,42 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Numeric constants used throughout the application
5
+ */
6
+ // Retry limits
7
+ const DEFAULT_MAX_RETRIES = 3;
8
+ const DEFAULT_VALIDATION_MAX_RETRIES = 3;
9
+ const RETRY_DELAY_MS = 1000;
10
+ const RULE_VALUE_INDEX = 2;
11
+ const MIN_RULE_LENGTH = 2;
12
+ const RULE_CONFIG_LENGTH = 3;
13
+ // Validation levels
14
+ const VALIDATION_LEVEL_DISABLED = 0;
15
+ const VALIDATION_LEVEL_ERROR = 2;
16
+ // String manipulation
17
+ const ELLIPSIS_LENGTH = 3;
18
+ const MIN_API_KEY_LENGTH = 8;
19
+ const REDACTED_LENGTH = 4;
20
+ // Numeric limits
21
+ const MIN_RETRY_COUNT = 1;
22
+ const MAX_RETRY_COUNT = 10;
23
+ // OpenAI API constants
24
+ const OPENAI_MAX_TOKENS = 2048;
25
+ const OPENAI_TEMPERATURE = 0.7;
26
+
27
+ exports.DEFAULT_MAX_RETRIES = DEFAULT_MAX_RETRIES;
28
+ exports.DEFAULT_VALIDATION_MAX_RETRIES = DEFAULT_VALIDATION_MAX_RETRIES;
29
+ exports.ELLIPSIS_LENGTH = ELLIPSIS_LENGTH;
30
+ exports.MAX_RETRY_COUNT = MAX_RETRY_COUNT;
31
+ exports.MIN_API_KEY_LENGTH = MIN_API_KEY_LENGTH;
32
+ exports.MIN_RETRY_COUNT = MIN_RETRY_COUNT;
33
+ exports.MIN_RULE_LENGTH = MIN_RULE_LENGTH;
34
+ exports.OPENAI_MAX_TOKENS = OPENAI_MAX_TOKENS;
35
+ exports.OPENAI_TEMPERATURE = OPENAI_TEMPERATURE;
36
+ exports.REDACTED_LENGTH = REDACTED_LENGTH;
37
+ exports.RETRY_DELAY_MS = RETRY_DELAY_MS;
38
+ exports.RULE_CONFIG_LENGTH = RULE_CONFIG_LENGTH;
39
+ exports.RULE_VALUE_INDEX = RULE_VALUE_INDEX;
40
+ exports.VALIDATION_LEVEL_DISABLED = VALIDATION_LEVEL_DISABLED;
41
+ exports.VALIDATION_LEVEL_ERROR = VALIDATION_LEVEL_ERROR;
42
+ //# sourceMappingURL=numeric.constant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numeric.constant.js","sources":["../../../../../src/domain/constant/numeric.constant.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;AAEG;AAEH;AACO,MAAM,mBAAmB,GAAW;AACpC,MAAM,8BAA8B,GAAW;AAK/C,MAAM,cAAc,GAAW;AAK/B,MAAM,gBAAgB,GAAW;AACjC,MAAM,eAAe,GAAW;AAChC,MAAM,kBAAkB,GAAW;AAE1C;AACO,MAAM,yBAAyB,GAAW;AAE1C,MAAM,sBAAsB,GAAW;AAE9C;AACO,MAAM,eAAe,GAAW;AAChC,MAAM,kBAAkB,GAAW;AACnC,MAAM,eAAe,GAAW;AAMvC;AACO,MAAM,eAAe,GAAW;AAChC,MAAM,eAAe,GAAW;AAEvC;AACO,MAAM,iBAAiB,GAAW;AAClC,MAAM,kBAAkB,GAAW;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,47 @@
1
+ import type { CommitBody } from '../value-object/commit-body.value-object';
2
+ import type { CommitHeader } from '../value-object/commit-header.value-object';
3
+ /**
4
+ * Entity representing a complete commit message
5
+ */
6
+ export declare class CommitMessage {
7
+ private readonly BODY;
8
+ private readonly HEADER;
9
+ constructor(header: CommitHeader, body: CommitBody);
10
+ /**
11
+ * Get the commit body
12
+ * @returns {CommitBody} The commit body
13
+ */
14
+ getBody(): CommitBody;
15
+ /**
16
+ * Get breaking change text if present
17
+ * @returns {string | undefined} The breaking change text or undefined
18
+ */
19
+ getBreakingChange(): string | undefined;
20
+ /**
21
+ * Get the commit header
22
+ * @returns {CommitHeader} The commit header
23
+ */
24
+ getHeader(): CommitHeader;
25
+ /**
26
+ * Check if this is a breaking change
27
+ * @returns {boolean} True if breaking change
28
+ */
29
+ isBreakingChange(): boolean;
30
+ /**
31
+ * Format the complete commit message
32
+ * @returns {string} The formatted commit message
33
+ */
34
+ toString(): string;
35
+ /**
36
+ * Create a new CommitMessage with a different body
37
+ * @param {CommitBody} body - The new body
38
+ * @returns {CommitMessage} A new CommitMessage instance with the updated body
39
+ */
40
+ withBody(body: CommitBody): CommitMessage;
41
+ /**
42
+ * Create a new CommitMessage with a different header
43
+ * @param {CommitHeader} header - The new header
44
+ * @returns {CommitMessage} A new CommitMessage instance with the updated header
45
+ */
46
+ withHeader(header: CommitHeader): CommitMessage;
47
+ }
@@ -0,0 +1,71 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Entity representing a complete commit message
5
+ */
6
+ class CommitMessage {
7
+ BODY;
8
+ HEADER;
9
+ constructor(header, body) {
10
+ this.HEADER = header;
11
+ this.BODY = body;
12
+ }
13
+ /**
14
+ * Get the commit body
15
+ * @returns {CommitBody} The commit body
16
+ */
17
+ getBody() {
18
+ return this.BODY;
19
+ }
20
+ /**
21
+ * Get breaking change text if present
22
+ * @returns {string | undefined} The breaking change text or undefined
23
+ */
24
+ getBreakingChange() {
25
+ return this.BODY.getBreakingChange();
26
+ }
27
+ /**
28
+ * Get the commit header
29
+ * @returns {CommitHeader} The commit header
30
+ */
31
+ getHeader() {
32
+ return this.HEADER;
33
+ }
34
+ /**
35
+ * Check if this is a breaking change
36
+ * @returns {boolean} True if breaking change
37
+ */
38
+ isBreakingChange() {
39
+ return this.BODY.hasBreakingChange();
40
+ }
41
+ /**
42
+ * Format the complete commit message
43
+ * @returns {string} The formatted commit message
44
+ */
45
+ toString() {
46
+ const parts = [this.HEADER.toString()];
47
+ if (!this.BODY.isEmpty()) {
48
+ parts.push(this.BODY.toString());
49
+ }
50
+ return parts.join("\n\n");
51
+ }
52
+ /**
53
+ * Create a new CommitMessage with a different body
54
+ * @param {CommitBody} body - The new body
55
+ * @returns {CommitMessage} A new CommitMessage instance with the updated body
56
+ */
57
+ withBody(body) {
58
+ return new CommitMessage(this.HEADER, body);
59
+ }
60
+ /**
61
+ * Create a new CommitMessage with a different header
62
+ * @param {CommitHeader} header - The new header
63
+ * @returns {CommitMessage} A new CommitMessage instance with the updated header
64
+ */
65
+ withHeader(header) {
66
+ return new CommitMessage(header, this.BODY);
67
+ }
68
+ }
69
+
70
+ exports.CommitMessage = CommitMessage;
71
+ //# sourceMappingURL=commit-message.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commit-message.entity.js","sources":["../../../../../src/domain/entity/commit-message.entity.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAGA;;AAEG;MACU,aAAa,CAAA;AACR,IAAA,IAAI;AAEJ,IAAA,MAAM;IAEvB,WAAY,CAAA,MAAoB,EAAE,IAAgB,EAAA;AACjD,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;AAGjB;;;AAGG;IACH,OAAO,GAAA;QACN,OAAO,IAAI,CAAC,IAAI;;AAGjB;;;AAGG;IACH,iBAAiB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;;AAGrC;;;AAGG;IACH,SAAS,GAAA;QACR,OAAO,IAAI,CAAC,MAAM;;AAGnB;;;AAGG;IACH,gBAAgB,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;;AAGrC;;;AAGG;IACH,QAAQ,GAAA;QACP,MAAM,KAAK,GAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAErD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;YACzB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;;AAGjC,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;;AAG1B;;;;AAIG;AACH,IAAA,QAAQ,CAAC,IAAgB,EAAA;QACxB,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;;AAG5C;;;;AAIG;AACH,IAAA,UAAU,CAAC,MAAoB,EAAA;QAC9B,OAAO,IAAI,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;;AAE5C;;;;"}
@@ -0,0 +1,2 @@
1
+ export * from './commit-message.entity';
2
+ export * from './llm-configuration.entity';
@@ -0,0 +1,73 @@
1
+ import type { ELLMProvider } from '../enum/llm-provider.enum';
2
+ import type { ApiKey } from '../value-object/api-key.value-object';
3
+ import { ECommitMode } from '../enum/commit-mode.enum';
4
+ /**
5
+ * Entity representing LLM configuration
6
+ */
7
+ export declare class LLMConfiguration {
8
+ private readonly API_KEY;
9
+ private readonly MAX_RETRIES;
10
+ private readonly MODE;
11
+ private readonly MODEL;
12
+ private readonly PROVIDER;
13
+ private readonly VALIDATION_MAX_RETRIES;
14
+ constructor(provider: ELLMProvider, apiKey: ApiKey, mode: ECommitMode, model?: string, maxRetries?: number, validationMaxRetries?: number);
15
+ /**
16
+ * Get the API key
17
+ * @returns {ApiKey} The API key
18
+ */
19
+ getApiKey(): ApiKey;
20
+ /**
21
+ * Get the maximum retries
22
+ * @returns {number} The maximum retries
23
+ */
24
+ getMaxRetries(): number;
25
+ /**
26
+ * Get the commit mode
27
+ * @returns {ECommitMode} The commit mode
28
+ */
29
+ getMode(): ECommitMode;
30
+ /**
31
+ * Get the model name
32
+ * @returns {string | undefined} The model name or undefined
33
+ */
34
+ getModel(): string | undefined;
35
+ /**
36
+ * Get the LLM provider
37
+ * @returns {ELLMProvider} The LLM provider
38
+ */
39
+ getProvider(): ELLMProvider;
40
+ /**
41
+ * Get the validation max retries
42
+ * @returns {number} The validation max retries
43
+ */
44
+ getValidationMaxRetries(): number;
45
+ /**
46
+ * Check if mode is auto
47
+ * @returns {boolean} True if mode is auto
48
+ */
49
+ isAutoMode(): boolean;
50
+ /**
51
+ * Check if mode is manual
52
+ * @returns {boolean} True if mode is manual
53
+ */
54
+ isManualMode(): boolean;
55
+ /**
56
+ * Create a new configuration with a different API key
57
+ * @param {ApiKey} apiKey - The new API key
58
+ * @returns {LLMConfiguration} A new configuration with the updated API key
59
+ */
60
+ withApiKey(apiKey: ApiKey): LLMConfiguration;
61
+ /**
62
+ * Create a new configuration with a different mode
63
+ * @param {ECommitMode} mode - The new mode
64
+ * @returns {LLMConfiguration} A new configuration with the updated mode
65
+ */
66
+ withMode(mode: ECommitMode): LLMConfiguration;
67
+ /**
68
+ * Create a new configuration with updated model
69
+ * @param {string} model - The new model name
70
+ * @returns {LLMConfiguration} A new configuration with the updated model
71
+ */
72
+ withModel(model: string): LLMConfiguration;
73
+ }
@@ -0,0 +1,107 @@
1
+ 'use strict';
2
+
3
+ var numeric_constant = require('../constant/numeric.constant.js');
4
+ var commitMode_enum = require('../enum/commit-mode.enum.js');
5
+
6
+ /**
7
+ * Entity representing LLM configuration
8
+ */
9
+ class LLMConfiguration {
10
+ API_KEY;
11
+ MAX_RETRIES;
12
+ MODE;
13
+ MODEL;
14
+ PROVIDER;
15
+ VALIDATION_MAX_RETRIES;
16
+ constructor(provider, apiKey, mode, model, maxRetries = numeric_constant.DEFAULT_MAX_RETRIES, validationMaxRetries = numeric_constant.DEFAULT_VALIDATION_MAX_RETRIES) {
17
+ this.PROVIDER = provider;
18
+ this.API_KEY = apiKey;
19
+ this.MODE = mode;
20
+ this.MODEL = model;
21
+ this.MAX_RETRIES = maxRetries;
22
+ this.VALIDATION_MAX_RETRIES = validationMaxRetries;
23
+ }
24
+ /**
25
+ * Get the API key
26
+ * @returns {ApiKey} The API key
27
+ */
28
+ getApiKey() {
29
+ return this.API_KEY;
30
+ }
31
+ /**
32
+ * Get the maximum retries
33
+ * @returns {number} The maximum retries
34
+ */
35
+ getMaxRetries() {
36
+ return this.MAX_RETRIES;
37
+ }
38
+ /**
39
+ * Get the commit mode
40
+ * @returns {ECommitMode} The commit mode
41
+ */
42
+ getMode() {
43
+ return this.MODE;
44
+ }
45
+ /**
46
+ * Get the model name
47
+ * @returns {string | undefined} The model name or undefined
48
+ */
49
+ getModel() {
50
+ return this.MODEL;
51
+ }
52
+ /**
53
+ * Get the LLM provider
54
+ * @returns {ELLMProvider} The LLM provider
55
+ */
56
+ getProvider() {
57
+ return this.PROVIDER;
58
+ }
59
+ /**
60
+ * Get the validation max retries
61
+ * @returns {number} The validation max retries
62
+ */
63
+ getValidationMaxRetries() {
64
+ return this.VALIDATION_MAX_RETRIES;
65
+ }
66
+ /**
67
+ * Check if mode is auto
68
+ * @returns {boolean} True if mode is auto
69
+ */
70
+ isAutoMode() {
71
+ return this.MODE === commitMode_enum.ECommitMode.AUTO;
72
+ }
73
+ /**
74
+ * Check if mode is manual
75
+ * @returns {boolean} True if mode is manual
76
+ */
77
+ isManualMode() {
78
+ return this.MODE === commitMode_enum.ECommitMode.MANUAL;
79
+ }
80
+ /**
81
+ * Create a new configuration with a different API key
82
+ * @param {ApiKey} apiKey - The new API key
83
+ * @returns {LLMConfiguration} A new configuration with the updated API key
84
+ */
85
+ withApiKey(apiKey) {
86
+ return new LLMConfiguration(this.PROVIDER, apiKey, this.MODE, this.MODEL, this.MAX_RETRIES, this.VALIDATION_MAX_RETRIES);
87
+ }
88
+ /**
89
+ * Create a new configuration with a different mode
90
+ * @param {ECommitMode} mode - The new mode
91
+ * @returns {LLMConfiguration} A new configuration with the updated mode
92
+ */
93
+ withMode(mode) {
94
+ return new LLMConfiguration(this.PROVIDER, this.API_KEY, mode, this.MODEL, this.MAX_RETRIES, this.VALIDATION_MAX_RETRIES);
95
+ }
96
+ /**
97
+ * Create a new configuration with updated model
98
+ * @param {string} model - The new model name
99
+ * @returns {LLMConfiguration} A new configuration with the updated model
100
+ */
101
+ withModel(model) {
102
+ return new LLMConfiguration(this.PROVIDER, this.API_KEY, this.MODE, model, this.MAX_RETRIES, this.VALIDATION_MAX_RETRIES);
103
+ }
104
+ }
105
+
106
+ exports.LLMConfiguration = LLMConfiguration;
107
+ //# sourceMappingURL=llm-configuration.entity.js.map