@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,313 @@
1
+ import chalk from 'chalk';
2
+ import ora from 'ora';
3
+ import prompts from 'prompts';
4
+
5
+ /**
6
+ * Implementation of the CLI interface service using the prompts library.
7
+ * Provides methods for interacting with the user through the command line.
8
+ */
9
+ class PromptsCliInterface {
10
+ /** Reference to the active spinner instance */
11
+ // @ts-ignore
12
+ spinner;
13
+ /**
14
+ * Initializes a new instance of the PromptsCliInterface.
15
+ * Sets up the spinner for providing visual feedback during operations.
16
+ */
17
+ constructor() {
18
+ this.spinner = ora();
19
+ }
20
+ /**
21
+ * Clears the console screen.
22
+ */
23
+ clear() {
24
+ process.stdout.write("\u001Bc");
25
+ }
26
+ /**
27
+ * Displays a confirmation prompt to the user.
28
+ * @param message - The message to display to the user
29
+ * @param isConfirmedByDefault - The default value for the confirmation, defaults to false
30
+ * @returns Promise that resolves to the user's response (true for confirmed, false for declined)
31
+ */
32
+ async confirm(message, isConfirmedByDefault = false) {
33
+ try {
34
+ const response = await prompts({
35
+ active: "Yes",
36
+ inactive: "No",
37
+ // eslint-disable-next-line @elsikora/typescript/naming-convention
38
+ initial: isConfirmedByDefault,
39
+ message,
40
+ name: "value",
41
+ type: "toggle",
42
+ });
43
+ if (response.value === undefined) {
44
+ this.error("Operation cancelled by user");
45
+ process.exit(0);
46
+ }
47
+ return response.value;
48
+ }
49
+ catch {
50
+ this.error("Operation cancelled by user");
51
+ process.exit(0);
52
+ }
53
+ }
54
+ /**
55
+ * Displays an error message to the user.
56
+ * @param message - The error message to display
57
+ */
58
+ error(message) {
59
+ process.stderr.write(`${chalk.red(message)}\n`);
60
+ }
61
+ /**
62
+ * Displays a grouped multi-select prompt to the user.
63
+ * @param message - The message to display to the user
64
+ * @param options - Record of groups and their options
65
+ * @param isRequired - Whether a selection is required, defaults to false
66
+ * @param initialValues - Initial selected values
67
+ * @returns Promise that resolves to an array of selected values
68
+ */
69
+ async groupMultiselect(message, options, isRequired = false, initialValues) {
70
+ // Convert options to a flat array with group prefixes
71
+ // eslint-disable-next-line @elsikora/typescript/naming-convention
72
+ const choices = [];
73
+ for (const [group, groupOptions] of Object.entries(options)) {
74
+ for (const opt of groupOptions) {
75
+ choices.push({
76
+ // eslint-disable-next-line @elsikora/typescript/naming-convention
77
+ selected: initialValues?.includes(opt.value) ?? false,
78
+ title: `${group}: ${opt.label}`,
79
+ value: opt.value,
80
+ });
81
+ }
82
+ }
83
+ try {
84
+ const response = await prompts({
85
+ choices,
86
+ // eslint-disable-next-line @elsikora/typescript/naming-convention
87
+ instructions: false,
88
+ message: `${message} (space to select)`,
89
+ min: isRequired ? 1 : undefined,
90
+ name: "values",
91
+ type: "multiselect",
92
+ });
93
+ if (response.values === undefined) {
94
+ this.error("Operation cancelled by user");
95
+ process.exit(0);
96
+ }
97
+ return response.values;
98
+ }
99
+ catch {
100
+ this.error("Operation cancelled by user");
101
+ process.exit(0);
102
+ }
103
+ }
104
+ /**
105
+ * Handles and displays an error message with additional error details.
106
+ * @param message - The error message to display
107
+ * @param error - The error object or details
108
+ */
109
+ handleError(message, error) {
110
+ process.stderr.write(`${chalk.red(message)}\n`);
111
+ process.stderr.write(`${String(error)}\n`);
112
+ }
113
+ /**
114
+ * Displays an informational message to the user.
115
+ * @param message - The info message to display
116
+ */
117
+ info(message) {
118
+ process.stdout.write(`${chalk.blue(message)}\n`);
119
+ }
120
+ /**
121
+ * Displays a standard message to the user.
122
+ * @param message - The message to display
123
+ */
124
+ log(message) {
125
+ process.stdout.write(`${message}\n`);
126
+ }
127
+ /**
128
+ * Displays a multi-select prompt to the user.
129
+ * @param message - The message to display to the user
130
+ * @param options - Array of options to select from
131
+ * @param isRequired - Whether a selection is required, defaults to false
132
+ * @param initialValues - Initial selected values
133
+ * @returns Promise that resolves to an array of selected values
134
+ */
135
+ async multiselect(message, options, isRequired = false, initialValues) {
136
+ // eslint-disable-next-line @elsikora/typescript/naming-convention
137
+ const choices = options.map((opt) => ({
138
+ // eslint-disable-next-line @elsikora/typescript/naming-convention
139
+ selected: initialValues?.includes(opt.value) ?? false,
140
+ title: opt.label,
141
+ value: opt.value,
142
+ }));
143
+ try {
144
+ const response = await prompts({
145
+ choices,
146
+ // eslint-disable-next-line @elsikora/typescript/naming-convention
147
+ instructions: false,
148
+ message: `${message} (space to select)`,
149
+ min: isRequired ? 1 : undefined,
150
+ name: "values",
151
+ type: "multiselect",
152
+ });
153
+ if (response.values === undefined) {
154
+ this.error("Operation cancelled by user");
155
+ process.exit(0);
156
+ }
157
+ return response.values;
158
+ }
159
+ catch {
160
+ this.error("Operation cancelled by user");
161
+ process.exit(0);
162
+ }
163
+ }
164
+ /**
165
+ * Displays a note to the user with a title and message.
166
+ * @param title - The title of the note
167
+ * @param message - The message content of the note
168
+ */
169
+ note(title, message) {
170
+ const lines = message.split("\n");
171
+ // eslint-disable-next-line @elsikora/typescript/no-magic-numbers
172
+ const width = Math.max(title.length, ...lines.map((line) => line.length)) + 4; // Add padding
173
+ const top = `┌${"─".repeat(width)}┐`;
174
+ const bottom = `└${"─".repeat(width)}┘`;
175
+ // Create middle lines with padding
176
+ // eslint-disable-next-line @elsikora/typescript/no-magic-numbers
177
+ const paddedTitle = ` ${title.padEnd(width - 2)} `;
178
+ // eslint-disable-next-line @elsikora/typescript/no-magic-numbers
179
+ const paddedLines = lines.map((line) => ` ${line.padEnd(width - 2)} `);
180
+ // Log the note box with styling
181
+ process.stdout.write(`${chalk.dim(top)}\n`);
182
+ process.stdout.write(`${chalk.dim("│") + chalk.bold(paddedTitle) + chalk.dim("│")}\n`);
183
+ if (lines.length > 0) {
184
+ // Add a separator line
185
+ const separator = `├${"─".repeat(width)}┤`;
186
+ process.stdout.write(`${chalk.dim(separator)}\n`);
187
+ // Add message content
188
+ for (const line of paddedLines) {
189
+ process.stdout.write(`${chalk.dim("│") + chalk.dim(line) + chalk.dim("│")}\n`);
190
+ }
191
+ }
192
+ process.stdout.write(`${chalk.dim(bottom)}\n`);
193
+ }
194
+ /**
195
+ * Displays a single select prompt to the user.
196
+ * @param message - The message to display to the user
197
+ * @param options - Array of options to select from
198
+ * @param initialValue - Initial selected value
199
+ * @returns Promise that resolves to the selected value
200
+ */
201
+ async select(message, options, initialValue) {
202
+ const choices = options.map((opt) => ({
203
+ title: opt.label,
204
+ value: opt.value,
205
+ }));
206
+ const initialIndex = initialValue ? choices.findIndex((choice) => choice.value === initialValue) : undefined;
207
+ try {
208
+ const response = await prompts({
209
+ choices,
210
+ initial: initialIndex === -1 ? 0 : initialIndex,
211
+ message,
212
+ name: "value",
213
+ type: "select",
214
+ });
215
+ if (response.value === undefined) {
216
+ this.error("Operation cancelled by user");
217
+ process.exit(0);
218
+ }
219
+ return response.value;
220
+ }
221
+ catch {
222
+ this.error("Operation cancelled by user");
223
+ process.exit(0);
224
+ }
225
+ }
226
+ /**
227
+ * Starts a spinner with the specified message.
228
+ * Stops any existing spinner first.
229
+ * @param message - The message to display while the spinner is active
230
+ */
231
+ startSpinner(message) {
232
+ this.spinner.stop();
233
+ this.spinner = ora(message).start();
234
+ }
235
+ /**
236
+ * Stops the current spinner with an optional completion message.
237
+ * @param message - Optional message to display when the spinner stops
238
+ */
239
+ stopSpinner(message) {
240
+ this.spinner.stop();
241
+ if (message) {
242
+ process.stdout.write(`${message}\n`);
243
+ }
244
+ }
245
+ /**
246
+ * Displays a success message to the user.
247
+ * @param message - The success message to display
248
+ */
249
+ success(message) {
250
+ process.stdout.write(`${chalk.green(message)}\n`);
251
+ }
252
+ /**
253
+ * Displays a text input prompt to the user.
254
+ * @param message - The message to display to the user
255
+ * @param placeholder - Optional placeholder text for the input field
256
+ * @param initialValue - Optional initial value for the input field
257
+ * @param validate - Optional validation function for the input
258
+ * @returns Promise that resolves to the user's input text
259
+ */
260
+ async text(message, _placeholder, initialValue, validate) {
261
+ // Convert the validate function to match prompts' expected format
262
+ const promptsValidate = validate
263
+ ? // eslint-disable-next-line @elsikora/typescript/explicit-function-return-type
264
+ (value) => {
265
+ const result = validate(value);
266
+ if (result === undefined)
267
+ return true;
268
+ if (typeof result === "string")
269
+ return result;
270
+ if (result instanceof Error)
271
+ return result.message;
272
+ return "Invalid input";
273
+ }
274
+ : undefined;
275
+ try {
276
+ const response = await prompts({
277
+ initial: initialValue,
278
+ message,
279
+ name: "value",
280
+ type: "text",
281
+ validate: promptsValidate,
282
+ });
283
+ if (response.value === undefined) {
284
+ this.error("Operation cancelled by user");
285
+ process.exit(0);
286
+ }
287
+ return response.value;
288
+ }
289
+ catch {
290
+ this.error("Operation cancelled by user");
291
+ process.exit(0);
292
+ }
293
+ }
294
+ /**
295
+ * Update the spinner message without stopping it.
296
+ * @param message - The new message to display
297
+ */
298
+ updateSpinner(message) {
299
+ if (this.spinner?.isSpinning) {
300
+ this.spinner.text = message;
301
+ }
302
+ }
303
+ /**
304
+ * Displays a warning message to the user.
305
+ * @param message - The warning message to display
306
+ */
307
+ warn(message) {
308
+ process.stdout.write(`${chalk.yellow(message)}\n`);
309
+ }
310
+ }
311
+
312
+ export { PromptsCliInterface };
313
+ //# sourceMappingURL=prompts-cli-interface.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts-cli-interface.service.js","sources":["../../../../../src/infrastructure/service/prompts-cli-interface.service.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ type TCommit = (message: string) => void;
2
+ /**
3
+ * Main adapter for Commitizen integration
4
+ */
5
+ export declare class CommitizenAdapter {
6
+ private readonly CONTAINER;
7
+ constructor();
8
+ /**
9
+ * Main entry point for commitizen
10
+ * @param inquirerIns - Instance passed by commitizen (unused in our implementation)
11
+ * @param commit - Callback to execute with complete commit message
12
+ */
13
+ prompter(_inquirerIns: unknown, commit: TCommit): Promise<void>;
14
+ /**
15
+ * Extract LLM prompt context from commitlint rules and prompts
16
+ */
17
+ private extractLlmPromptContext;
18
+ /**
19
+ * Get API key prompt information based on provider
20
+ */
21
+ private getApiKeyPromptInfo;
22
+ }
23
+ export {};
24
+ //# sourceMappingURL=commitizen.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commitizen.adapter.d.ts","sourceRoot":"","sources":["../../../src/presentation/commitizen.adapter.ts"],"names":[],"mappings":"AA2BA,KAAK,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAGzC;;GAEG;AACH,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;;IAMvC;;;;OAIG;IACG,QAAQ,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAyNrE;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAyE/B;;OAEG;IACH,OAAO,CAAC,mBAAmB;CA+B3B"}
@@ -0,0 +1,290 @@
1
+ import load from '@commitlint/load';
2
+ import { DEFAULT_MAX_RETRIES, DEFAULT_VALIDATION_MAX_RETRIES } from '../domain/constant/numeric.constant.js';
3
+ import { LLMConfiguration } from '../domain/entity/llm-configuration.entity.js';
4
+ import { ApiKey } from '../domain/value-object/api-key.value-object.js';
5
+ import { CommitlintValidatorService } from '../infrastructure/commit-validator/commitlint-validator.service.js';
6
+ import { createAppContainer, ConfigureLLMUseCaseToken, GenerateCommitMessageUseCaseToken, ValidateCommitMessageUseCaseToken, ManualCommitUseCaseToken, CliInterfaceServiceToken, CommitRepositoryToken, ConfigServiceToken, CommitValidatorToken } from '../infrastructure/di/container.js';
7
+
8
+ // Type constants
9
+ const TYPE_ENUM_INDEX = 2;
10
+ /**
11
+ * Main adapter for Commitizen integration
12
+ */
13
+ class CommitizenAdapter {
14
+ CONTAINER;
15
+ constructor() {
16
+ this.CONTAINER = createAppContainer();
17
+ }
18
+ /**
19
+ * Main entry point for commitizen
20
+ * @param inquirerIns - Instance passed by commitizen (unused in our implementation)
21
+ * @param commit - Callback to execute with complete commit message
22
+ */
23
+ async prompter(_inquirerIns, commit) {
24
+ const loadResult = await load();
25
+ const { prompt = {}, rules } = loadResult;
26
+ try {
27
+ // Get use cases from container
28
+ const configureLLMUseCase = this.CONTAINER.get(ConfigureLLMUseCaseToken);
29
+ const generateCommitUseCase = this.CONTAINER.get(GenerateCommitMessageUseCaseToken);
30
+ const validateCommitUseCase = this.CONTAINER.get(ValidateCommitMessageUseCaseToken);
31
+ const manualCommitUseCase = this.CONTAINER.get(ManualCommitUseCaseToken);
32
+ const cliInterface = this.CONTAINER.get(CliInterfaceServiceToken);
33
+ const commitRepository = this.CONTAINER.get(CommitRepositoryToken);
34
+ const configService = this.CONTAINER.get(ConfigServiceToken);
35
+ if (!configureLLMUseCase || !generateCommitUseCase || !validateCommitUseCase || !manualCommitUseCase || !cliInterface || !commitRepository || !configService) {
36
+ throw new Error("Failed to initialize required services");
37
+ }
38
+ // Extract context from commitlint config
39
+ const promptContext = this.extractLlmPromptContext(rules, prompt);
40
+ // Add git diff and files to context for AI mode
41
+ const [diff, files] = await Promise.all([commitRepository.getStagedDiff(), commitRepository.getStagedFiles()]);
42
+ promptContext.diff = diff;
43
+ promptContext.files = files.join("\n");
44
+ // Get or configure LLM
45
+ let llmConfig = await configureLLMUseCase.getCurrentConfiguration();
46
+ const isConfigExists = await configService.exists();
47
+ if (isConfigExists) {
48
+ // Configuration exists - load it first to show details
49
+ const config = await configService.get();
50
+ // Ask if they want to use existing configuration
51
+ const modeInfo = config.mode === "auto" ? `${config.mode} mode, ${config.provider} provider` : `${config.mode} mode`;
52
+ const isUseExisting = await cliInterface.confirm(`Found existing configuration (${modeInfo}). Use it?`, true);
53
+ if (!isUseExisting) {
54
+ cliInterface.info("Let's reconfigure...");
55
+ llmConfig = await configureLLMUseCase.configureInteractively();
56
+ // Check if we need to prompt for API key after configuration
57
+ if (llmConfig.isAutoMode() && llmConfig.getApiKey().getValue() === "will-prompt-on-use") {
58
+ // Ask for API key
59
+ const { hint, prompt } = this.getApiKeyPromptInfo(llmConfig.getProvider());
60
+ const apiKeyValue = await cliInterface.text(prompt, hint, "", (value) => {
61
+ if (!value || value.trim().length === 0) {
62
+ return "API key is required";
63
+ }
64
+ });
65
+ // Create new configuration with the provided API key
66
+ llmConfig = new LLMConfiguration(llmConfig.getProvider(), new ApiKey(apiKeyValue), llmConfig.getMode(), llmConfig.getModel(), llmConfig.getMaxRetries(), llmConfig.getValidationMaxRetries());
67
+ }
68
+ }
69
+ else if (config.mode === "auto" && !llmConfig) {
70
+ // User wants to use existing config but API key is missing
71
+ const environmentVariableNames = {
72
+ anthropic: "ANTHROPIC_API_KEY",
73
+ "aws-bedrock": "AWS_BEDROCK_API_KEY",
74
+ "azure-openai": "AZURE_OPENAI_API_KEY",
75
+ google: "GOOGLE_API_KEY",
76
+ ollama: "OLLAMA_API_KEY",
77
+ openai: "OPENAI_API_KEY",
78
+ };
79
+ const environmentVariableName = environmentVariableNames[config.provider] || "";
80
+ cliInterface.warn(`API key not found in ${environmentVariableName} environment variable.`);
81
+ // Ask for API key
82
+ const { hint, prompt } = this.getApiKeyPromptInfo(config.provider);
83
+ const apiKeyValue = await cliInterface.text(prompt, hint, "", (value) => {
84
+ if (!value || value.trim().length === 0) {
85
+ return "API key is required";
86
+ }
87
+ });
88
+ // Create new configuration with the provided API key
89
+ const maxRetries = config.maxRetries ?? DEFAULT_MAX_RETRIES;
90
+ const validationMaxRetries = config.validationMaxRetries ?? DEFAULT_VALIDATION_MAX_RETRIES;
91
+ llmConfig = new LLMConfiguration(config.provider, new ApiKey(apiKeyValue), config.mode, config.model, maxRetries, validationMaxRetries);
92
+ }
93
+ }
94
+ else {
95
+ // No configuration at all
96
+ cliInterface.info("No configuration found. Let's set it up!");
97
+ llmConfig = await configureLLMUseCase.configureInteractively();
98
+ // Check if we need to prompt for API key after configuration
99
+ if (llmConfig.isAutoMode() && llmConfig.getApiKey().getValue() === "will-prompt-on-use") {
100
+ // Ask for API key
101
+ const { hint, prompt } = this.getApiKeyPromptInfo(llmConfig.getProvider());
102
+ const apiKeyValue = await cliInterface.text(prompt, hint, "", (value) => {
103
+ if (!value || value.trim().length === 0) {
104
+ return "API key is required";
105
+ }
106
+ });
107
+ // Create new configuration with the provided API key
108
+ llmConfig = new LLMConfiguration(llmConfig.getProvider(), new ApiKey(apiKeyValue), llmConfig.getMode(), llmConfig.getModel(), llmConfig.getMaxRetries(), llmConfig.getValidationMaxRetries());
109
+ }
110
+ }
111
+ // Configuration should exist at this point
112
+ if (!llmConfig) {
113
+ throw new Error("Failed to configure LLM settings");
114
+ }
115
+ // Check commit mode
116
+ if (llmConfig.isManualMode()) {
117
+ cliInterface.info("Using manual commit mode...");
118
+ const commitMessage = await manualCommitUseCase.execute(promptContext);
119
+ commit(commitMessage.toString());
120
+ return;
121
+ }
122
+ // Auto mode - set LLM configuration on validator if it supports it
123
+ const validator = this.CONTAINER.get(CommitValidatorToken) ?? {};
124
+ if (validator instanceof CommitlintValidatorService) {
125
+ validator.setLLMConfiguration(llmConfig);
126
+ }
127
+ // Auto mode - generate with AI
128
+ cliInterface.info("Using AI-powered commit mode...");
129
+ try {
130
+ // Generate commit message
131
+ cliInterface.startSpinner("Generating commit message with AI...");
132
+ let generatedMessage;
133
+ try {
134
+ generatedMessage = await generateCommitUseCase.execute(promptContext, llmConfig, (attempt, maxRetries, error) => {
135
+ cliInterface.updateSpinner(`Generating commit message with AI... (Attempt ${attempt}/${maxRetries} failed: ${error.message})`);
136
+ });
137
+ }
138
+ catch (genError) {
139
+ cliInterface.stopSpinner();
140
+ throw genError;
141
+ }
142
+ cliInterface.stopSpinner();
143
+ cliInterface.success("AI generated initial commit message");
144
+ // Validate and fix if needed
145
+ cliInterface.startSpinner("Validating commit message format...");
146
+ // Track validation attempts
147
+ let lastValidationAttempt = 0;
148
+ const originalValidate = validateCommitUseCase.validate.bind(validateCommitUseCase);
149
+ validateCommitUseCase.validate = async (message) => {
150
+ lastValidationAttempt++;
151
+ if (lastValidationAttempt > 1) {
152
+ cliInterface.updateSpinner(`Validating commit message format... (attempt ${lastValidationAttempt})`);
153
+ }
154
+ return originalValidate(message);
155
+ };
156
+ const validatedMessage = await validateCommitUseCase.execute(generatedMessage, true, llmConfig.getValidationMaxRetries(), promptContext);
157
+ cliInterface.stopSpinner();
158
+ // Restore original validate method
159
+ validateCommitUseCase.validate = originalValidate;
160
+ if (!validatedMessage) {
161
+ cliInterface.warn("Could not generate a valid commit message. Switching to manual mode...");
162
+ const commitMessage = await manualCommitUseCase.execute(promptContext);
163
+ commit(commitMessage.toString());
164
+ return;
165
+ }
166
+ // Show the generated message
167
+ cliInterface.success("AI generated commit message successfully!");
168
+ cliInterface.note("Generated commit message:", validatedMessage.toString());
169
+ // Ask for confirmation
170
+ const isConfirmed = await cliInterface.confirm("Do you want to proceed with this commit message?", true);
171
+ if (isConfirmed) {
172
+ commit(validatedMessage.toString());
173
+ }
174
+ else {
175
+ cliInterface.info("Switching to manual mode to edit the message...");
176
+ const commitMessage = await manualCommitUseCase.execute(promptContext);
177
+ commit(commitMessage.toString());
178
+ }
179
+ }
180
+ catch (error) {
181
+ // Check if it's a retry exhaustion error
182
+ if (error instanceof Error && error.message.includes("Failed to generate commit message after")) {
183
+ cliInterface.error(error.message);
184
+ }
185
+ else {
186
+ cliInterface.handleError("Error generating commit with AI:", error);
187
+ }
188
+ cliInterface.warn("Falling back to manual commit entry...");
189
+ const commitMessage = await manualCommitUseCase.execute(promptContext);
190
+ commit(commitMessage.toString());
191
+ }
192
+ }
193
+ catch (error) {
194
+ if (error instanceof Error && error.message === "User canceled the commit") {
195
+ throw error;
196
+ }
197
+ console.error("Error in commitizen adapter:", error);
198
+ throw error;
199
+ }
200
+ }
201
+ /**
202
+ * Extract LLM prompt context from commitlint rules and prompts
203
+ */
204
+ extractLlmPromptContext(rules, prompts) {
205
+ const context = {
206
+ rules: rules, // Pass all commitlint rules to the LLM
207
+ subject: {},
208
+ };
209
+ // Extract type information
210
+ if (rules["type-enum"]) {
211
+ const types = rules["type-enum"][TYPE_ENUM_INDEX];
212
+ if (Array.isArray(types)) {
213
+ context.typeEnum = types;
214
+ }
215
+ }
216
+ // Extract type descriptions from prompts
217
+ if (prompts.questions?.type?.enum) {
218
+ context.typeDescriptions = {};
219
+ for (const [key, value] of Object.entries(prompts.questions.type.enum)) {
220
+ if (typeof value === "object" && value && "description" in value && typeof value.description === "string") {
221
+ const enumValue = value;
222
+ context.typeDescriptions[key] = {
223
+ description: enumValue.description,
224
+ emoji: enumValue.emoji,
225
+ };
226
+ }
227
+ }
228
+ }
229
+ // Extract subject rules
230
+ if (rules["subject-max-length"]) {
231
+ const maxLength = rules["subject-max-length"][TYPE_ENUM_INDEX];
232
+ if (typeof maxLength === "number") {
233
+ context.subject.maxLength = maxLength;
234
+ }
235
+ }
236
+ if (rules["subject-min-length"]) {
237
+ const minLength = rules["subject-min-length"][TYPE_ENUM_INDEX];
238
+ if (typeof minLength === "number") {
239
+ context.subject.minLength = minLength;
240
+ }
241
+ }
242
+ // Add descriptions from prompts
243
+ if (prompts.questions?.type?.description) {
244
+ context.typeDescription = prompts.questions.type.description;
245
+ }
246
+ if (prompts.questions?.scope?.description) {
247
+ context.scopeDescription = prompts.questions.scope.description;
248
+ }
249
+ if (prompts.questions?.subject?.description) {
250
+ context.subject.description = prompts.questions.subject.description;
251
+ }
252
+ if (prompts.questions?.body?.description) {
253
+ context.body = {
254
+ description: prompts.questions.body.description,
255
+ };
256
+ }
257
+ return context;
258
+ }
259
+ /**
260
+ * Get API key prompt information based on provider
261
+ */
262
+ getApiKeyPromptInfo(provider) {
263
+ switch (provider) {
264
+ case "anthropic": {
265
+ return { hint: "sk-ant-...", prompt: "Enter your Anthropic API key for this session:" };
266
+ }
267
+ case "aws-bedrock": {
268
+ return { hint: "us-east-1|AKIA...|secret...", prompt: "Enter your AWS Bedrock credentials (region|access-key-id|secret-access-key):" };
269
+ }
270
+ case "azure-openai": {
271
+ return { hint: "https://your.openai.azure.com|key|deployment", prompt: "Enter your Azure OpenAI credentials (endpoint|api-key|deployment-name):" };
272
+ }
273
+ case "google": {
274
+ return { hint: "AIza...", prompt: "Enter your Google API key for this session:" };
275
+ }
276
+ case "ollama": {
277
+ return { hint: "localhost:11434", prompt: "Enter your Ollama host (host:port or host:port|custom-model):" };
278
+ }
279
+ case "openai": {
280
+ return { hint: "sk-...", prompt: "Enter your OpenAI API key for this session:" };
281
+ }
282
+ default: {
283
+ return { hint: "", prompt: "Enter your API key for this session:" };
284
+ }
285
+ }
286
+ }
287
+ }
288
+
289
+ export { CommitizenAdapter };
290
+ //# sourceMappingURL=commitizen.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commitizen.adapter.js","sources":["../../../../src/presentation/commitizen.adapter.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}