@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
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  </p>
4
4
 
5
5
  <h1 align="center">Commitizen Plugin Commitlint AI 🤖</h1>
6
- <p align="center"><em>AI-powered Commitizen adapter that generates conventional commits with Commitlint integration</em></p>
6
+ <p align="center"><em>AI-powered Commitizen adapter that generates conventional commits with Commitlint integration, built with clean architecture principles</em></p>
7
7
 
8
8
  <p align="center">
9
9
  <a aria-label="ElsiKora logo" href="https://elsikora.com">
@@ -15,29 +15,62 @@
15
15
 
16
16
  - [Description](#-description)
17
17
  - [Features](#-features)
18
+ - [Architecture](#-architecture)
18
19
  - [Installation](#-installation)
19
20
  - [Usage](#-usage)
21
+ - [Configuration](#-configuration)
20
22
  - [Roadmap](#-roadmap)
21
23
  - [FAQ](#-faq)
22
24
  - [License](#-license)
23
25
 
24
26
  ## 📖 Description
25
27
 
26
- This plugin enhances your Git workflow by combining the power of AI with conventional commit standards. It intelligently analyzes your code changes and generates meaningful commit messages that follow your project's commitlint rules. Whether you're working solo or in a team, this tool helps maintain consistent, high-quality commit history while reducing the cognitive load of writing commit messages.
28
+ This plugin enhances your Git workflow by combining the power of AI with conventional commit standards. Built with clean architecture principles, it intelligently analyzes your code changes and generates meaningful commit messages that follow your project's commitlint rules. Whether you're working solo or in a team, this tool helps maintain consistent, high-quality commit history while reducing the cognitive load of writing commit messages.
27
29
 
28
30
  ## 🚀 Features
29
31
 
30
- - ✨ **AI-powered commit message generation using OpenAI or Anthropic models**
32
+ - ✨ **AI-powered commit message generation using OpenAI, Anthropic, Google, Azure OpenAI, AWS Bedrock, or Ollama models**
31
33
  - ✨ **Full integration with Commitlint rules and configuration**
34
+ - ✨ **Flexible configuration with Cosmiconfig support**
35
+ - ✨ **Environment variable support for API keys (prioritized over config)**
36
+ - ✨ **Automatic model migration for deprecated models**
37
+ - ✨ **Configurable retry mechanism for generation and validation**
32
38
  - ✨ **Support for both manual and automatic commit modes**
33
39
  - ✨ **Smart scope detection based on changed files**
34
40
  - ✨ **Breaking change detection and documentation**
35
- - ✨ **Customizable commit message format**
36
- - ✨ **Interactive commit message confirmation**
37
- - ✨ **Supports multiple AI models including GPT-4, Claude 3, and more**
38
- - ✨ **Environment variable support for API keys**
41
+ - ✨ **Interactive commit message confirmation with validation**
42
+ - ✨ **Clean architecture with dependency injection**
43
+ - ✨ **Real-time retry status updates in the UI**
44
+ - ✨ **Supports latest AI models including GPT-4.1 and Claude 4**
39
45
  - ✨ **Fallback to manual mode if AI generation fails**
40
46
 
47
+ ## 🏗 Architecture
48
+
49
+ The plugin is built using clean architecture principles with clear separation of concerns:
50
+
51
+ ### Layers
52
+
53
+ - **Domain Layer**: Core business logic, entities, and value objects
54
+ - Entities: `CommitMessage`, `LLMConfiguration`
55
+ - Value Objects: `ApiKey`, `CommitBody`, `CommitHeader`
56
+ - Enums: `ECommitMode`, `ELLMProvider`, `ELogLevel`
57
+
58
+ - **Application Layer**: Use cases and interfaces
59
+ - Use Cases: `GenerateCommitMessageUseCase`, `ValidateCommitMessageUseCase`, `ConfigureLLMUseCase`
60
+ - Interfaces: `ILLMService`, `ICommitValidator`, `IConfigService`, etc.
61
+
62
+ - **Infrastructure Layer**: External services and implementations
63
+ - LLM Services: `OpenAILLMService`, `AnthropicLLMService`, `GoogleLLMService`, `AzureOpenAILLMService`, `AWSBedrockLLMService`, `OllamaLLMService`
64
+ - Services: `CommitlintValidatorService`, `CosmicConfigService`, `PromptsCliInterface`
65
+ - Repositories: `GitCommitRepository`
66
+
67
+ - **Presentation Layer**: User interface adapters
68
+ - `CommitizenAdapter` as the main entry point
69
+
70
+ ### Dependency Injection
71
+
72
+ The plugin uses `@elsikora/cladi` for dependency injection, ensuring loose coupling and testability.
73
+
41
74
  ## 🛠 Installation
42
75
 
43
76
  ```bash
@@ -64,86 +97,239 @@ git add .
64
97
  git cz
65
98
  ```
66
99
 
67
- ### Configuration
100
+ The plugin will:
101
+ 1. Ask for your commit mode preference (auto/manual)
102
+ 2. If auto mode and no API key is configured, guide you through configuration
103
+ 3. Generate or help you write a commit message
104
+ 4. Validate against your commitlint rules
105
+ 5. Allow you to confirm or edit before committing
106
+
107
+ ### Environment Variables
108
+
109
+ ```bash
110
+ # .env or shell environment
111
+ OPENAI_API_KEY=your-openai-api-key
112
+ # or
113
+ ANTHROPIC_API_KEY=your-anthropic-api-key
114
+ # or
115
+ GOOGLE_API_KEY=your-google-api-key
116
+ # or (for Azure OpenAI, use pipe-separated format)
117
+ AZURE_OPENAI_API_KEY=https://your-resource.openai.azure.com|your-api-key|your-deployment-name
118
+ # or (for AWS Bedrock, use pipe-separated format)
119
+ AWS_BEDROCK_API_KEY=us-east-1|your-access-key-id|your-secret-access-key
120
+ # or (for Ollama, specify host and optional model)
121
+ OLLAMA_API_KEY=localhost:11434|custom-model-name
122
+ ```
123
+
124
+ Environment variables take precedence over stored configuration.
125
+
126
+ ## ⚙️ Configuration
127
+
128
+ The plugin supports multiple configuration methods using [Cosmiconfig](https://github.com/davidtheclark/cosmiconfig):
129
+
130
+ ### Configuration File Locations
131
+
132
+ Create a configuration file in any of these locations:
133
+ - `.commitlintairc`
134
+ - `.commitlintairc.json`
135
+ - `.commitlintairc.yaml`
136
+ - `.commitlintairc.yml`
137
+ - `.commitlintairc.js`
138
+ - `.commitlintairc.cjs`
139
+ - `commitlintai.config.js`
140
+ - `commitlintai.config.cjs`
141
+ - `package.json` (under `"commitlintai"` key)
142
+
143
+ ### Configuration Options
144
+
145
+ ```javascript
146
+ // commitlintai.config.js
147
+ module.exports = {
148
+ // AI provider: 'openai', 'anthropic', 'google', 'azure-openai', 'aws-bedrock', or 'ollama'
149
+ provider: 'openai',
150
+
151
+ // Model to use (auto-migrates deprecated models)
152
+ model: 'gpt-4o',
153
+
154
+ // Mode: 'auto' or 'manual'
155
+ mode: 'auto',
156
+
157
+ // API key (optional - env vars recommended)
158
+ // Format varies by provider:
159
+ // - OpenAI/Anthropic/Google: 'your-api-key'
160
+ // - Azure OpenAI: 'endpoint|api-key|deployment-name'
161
+ // - AWS Bedrock: 'region|access-key-id|secret-access-key'
162
+ // - Ollama: 'host:port' or 'host:port|custom-model-name'
163
+ apiKey: 'your-api-key',
164
+
165
+ // Retry configuration
166
+ maxGenerationRetries: 3,
167
+ maxValidationRetries: 3,
168
+
169
+ // Custom instructions for AI
170
+ instructions: 'Focus on user-facing changes'
171
+ };
172
+ ```
173
+
174
+ ### Available Models
175
+
176
+ ## Supported LLM Providers
177
+
178
+ ### OpenAI
179
+ - `gpt-4.1` (Latest 2025, most capable)
180
+ - `gpt-4.1-nano` (Fastest 4.1 model)
181
+ - `gpt-4.1-mini` (Balanced performance)
182
+ - `gpt-4o` (Enhanced creative writing)
183
+ - `gpt-4o-mini` (Faster, cost-effective)
184
+ - `gpt-4-turbo`
185
+ - `gpt-4` (Original)
186
+ - `gpt-3.5-turbo` (Fastest, most economical)
187
+ - `o1` (Enhanced reasoning)
188
+ - `o1-mini` (Fast reasoning)
189
+
190
+ ### Anthropic
191
+ - `claude-opus-4-20250514` (Latest 2025, most capable)
192
+ - `claude-sonnet-4-20250514` (Latest 2025, high-performance)
193
+ - `claude-3-7-sonnet-latest` (Extended thinking capabilities)
194
+ - `claude-3-5-sonnet-latest` (Previous flagship)
195
+ - `claude-3-5-haiku-latest` (Fastest)
196
+ - `claude-3-opus-latest` (Complex tasks)
197
+
198
+ ### Google (Gemini)
199
+ - `gemini-2.5-pro` (Latest 2025, most capable)
200
+ - `gemini-2.5-flash` (Latest 2025, fast)
201
+ - `gemini-2.0-flash-exp` (Experimental)
202
+ - `gemini-1.5-pro` (Stable, capable)
203
+ - `gemini-1.5-flash` (Fast, stable)
204
+ - `gemini-1.5-flash-8b` (Lightweight)
205
+ - `gemini-1.0-pro`
206
+
207
+ ### Google (Gemma - Open Models for Vertex AI)
208
+ - `gemma-3-27b` (Most capable open model)
209
+ - `gemma-3-12b` (Strong language capabilities)
210
+ - `gemma-3-4b` (Balanced, multimodal support)
211
+ - `gemma-3-1b` (Lightweight for edge deployment)
212
+
213
+ ### Azure OpenAI
214
+ - `gpt-4.1-turbo-2024-12-17` (Latest 2025, most capable)
215
+ - `gpt-4.1-preview-2024-12-17` (Latest preview)
216
+ - `gpt-4.1-mini-2024-12-17` (Fast 4.1 model)
217
+ - `gpt-4o-2024-11-20` (Enhanced creative)
218
+ - `gpt-4o-mini-2024-07-18`
219
+ - `gpt-4-turbo`
220
+ - `gpt-3.5-turbo`
221
+ - `o3-2024-12-17` (Enhanced reasoning)
222
+ - `o4-mini-2024-12-17` (Fast reasoning)
223
+
224
+ ### AWS Bedrock
225
+ - `anthropic.claude-opus-4-20250514-v1:0` (Claude Opus 4 - Latest 2025, most capable)
226
+ - `anthropic.claude-sonnet-4-20250514-v1:0` (Claude Sonnet 4 - Latest 2025, balanced)
227
+ - `anthropic.claude-3-5-sonnet-20241022-v2:0` (Claude 3.5 Sonnet v2)
228
+ - `anthropic.claude-3-5-haiku-20241022-v1:0` (Fast)
229
+ - `anthropic.claude-3-5-sonnet-20240620-v1:0`
230
+ - `us.amazon.nova-pro-v1:0` (Latest Amazon model)
231
+ - `us.deepseek.deepseek-r1:0` (Advanced reasoning)
232
+ - `us.meta.llama3-2-90b-instruct-v1:0` (Open source)
233
+ - `mistral.mistral-large-2411-v1:0` (Latest Mistral)
234
+
235
+ ### Ollama (Local Models)
236
+ - `llama3.2` (Latest Llama)
237
+ - `llama3.1`
238
+ - `llama3`
239
+ - `mistral`
240
+ - `codellama`
241
+ - `deepseek-coder`
242
+ - `custom` (specify any Ollama model)
243
+
244
+ ### Commitlint Configuration
68
245
 
69
246
  ```javascript
70
247
  // commitlint.config.js
71
- module export default {
248
+ export default {
72
249
  extends: ['@commitlint/config-conventional'],
73
250
  rules: {
74
251
  'type-enum': [2, 'always', ['feat', 'fix', 'docs', 'style', 'refactor']],
75
- 'scope-case': [2, 'always', 'lower-case']
252
+ 'scope-case': [2, 'always', 'lower-case'],
253
+ 'subject-max-length': [2, 'always', 72],
254
+ 'body-max-line-length': [2, 'always', 100]
76
255
  }
77
256
  }
78
257
  ```
79
258
 
80
- ### Environment Variables
81
-
82
- ```bash
83
- # .env
84
- OPENAI_API_KEY=your-api-key
85
- # or
86
- ANTHROPIC_API_KEY=your-api-key
87
- ```
88
-
89
259
  ### Manual Mode
90
260
 
261
+ To force manual mode without prompting:
262
+
91
263
  ```bash
92
- # Create .elsikora/manual file to enable manual mode
264
+ # Create .elsikora/manual file
93
265
  mkdir -p .elsikora
94
266
  touch .elsikora/manual
95
267
  ```
96
268
 
97
- ### Advanced Usage with TypeScript
98
-
99
- ```typescript
100
- import { getLLMConfig, setLLMConfig } from "@elsikora/commitizen-plugin-commitlint-ai";
101
-
102
- // Configure AI provider
103
- setLLMConfig({
104
- provider: "openai",
105
- model: "gpt-4",
106
- mode: "auto",
107
- apiKey: process.env.OPENAI_API_KEY,
108
- });
109
- ```
110
-
111
- ### Custom Prompt Configuration
269
+ ### Package.json Configuration
112
270
 
113
- ```javascript
114
- // .elsikora/commitlint-ai.config.js
115
- export default {
116
- provider: "anthropic",
117
- model: "claude-3-opus-20240229",
118
- mode: "auto",
119
- };
271
+ ```json
272
+ {
273
+ "commitlintai": {
274
+ "provider": "anthropic",
275
+ "model": "claude-3-5-sonnet-20241022",
276
+ "mode": "auto",
277
+ "maxGenerationRetries": 5
278
+ }
279
+ }
120
280
  ```
121
281
 
122
282
  ## 🛣 Roadmap
123
283
 
124
- | Task / Feature | Status |
125
- | ---------------------------------------------------------------------------- | -------------- |
126
- | Future development plans include: | 🚧 In Progress |
127
- | - Support for more AI providers | 🚧 In Progress |
128
- | - Enhanced diff analysis for better commit suggestions | 🚧 In Progress |
129
- | - Custom prompt templates | 🚧 In Progress |
130
- | - Integration with more Git hosting platforms | 🚧 In Progress |
131
- | - Performance optimizations for large codebases | 🚧 In Progress |
132
- | - Multi-language support for commit messages | 🚧 In Progress |
133
- | - Team collaboration features | 🚧 In Progress |
134
- | (done) AI-powered commit message generation using OpenAI or Anthropic models | 🚧 In Progress |
135
- | (done) Full integration with Commitlint rules and configuration | 🚧 In Progress |
136
- | (done) Support for both manual and automatic commit modes | 🚧 In Progress |
284
+ | Task / Feature | Status |
285
+ | ------------------------------------------------------------------------- | ----------- |
286
+ | AI-powered commit message generation using OpenAI or Anthropic models | ✅ Complete |
287
+ | Full integration with Commitlint rules and configuration | Complete |
288
+ | Support for both manual and automatic commit modes | Complete |
289
+ | Clean architecture implementation | Complete |
290
+ | Cosmiconfig support for flexible configuration | Complete |
291
+ | Environment variable support with priority over config | Complete |
292
+ | Automatic model migration for deprecated models | Complete |
293
+ | Configurable retry mechanism with UI feedback | Complete |
294
+ | Dependency injection with @elsikora/cladi | Complete |
295
+ | Support for more AI providers (Google, Azure, AWS, Ollama) | Complete |
296
+ | Enhanced diff analysis for better commit suggestions | 🚧 Planned |
297
+ | Custom prompt templates per project | 🚧 Planned |
298
+ | Integration with more Git hosting platforms | 🚧 Planned |
299
+ | Performance optimizations for large codebases | 🚧 Planned |
300
+ | Multi-language support for commit messages | 🚧 Planned |
301
+ | Team collaboration features | 🚧 Planned |
302
+ | Web UI for configuration management | 🚧 Planned |
137
303
 
138
304
  ## ❓ FAQ
139
305
 
140
- **Q: How does the AI generate commit messages?** A: The plugin analyzes your git diff and changed files, then uses AI to understand the changes and generate appropriate conventional commit messages that comply with your commitlint rules.
306
+ **Q: How does the AI generate commit messages?**
307
+ A: The plugin analyzes your git diff and changed files, then uses AI to understand the changes and generate appropriate conventional commit messages that comply with your commitlint rules.
308
+
309
+ **Q: What happens if the AI service is unavailable?**
310
+ A: The plugin has a configurable retry mechanism and will automatically fall back to manual mode after exhausting retries, allowing you to enter commit messages traditionally.
311
+
312
+ **Q: Can I use custom commit message formats?**
313
+ A: Yes, the plugin respects your commitlint configuration and generates messages accordingly. You can also provide custom instructions to guide the AI.
314
+
315
+ **Q: Is my code sent to the AI service?**
316
+ A: Only the git diff and file names are sent to generate accurate commit messages. No full source code is transmitted unless it appears in the diff.
317
+
318
+ **Q: How do I switch between providers or models?**
319
+ A: You can reconfigure at any time by running `git cz` and choosing to reconfigure when prompted, or by updating your configuration file.
141
320
 
142
- **Q: What happens if the AI service is unavailable?** A: The plugin automatically falls back to manual mode, allowing you to enter commit messages traditionally.
321
+ **Q: How do I use Ollama with custom models?**
322
+ A: Set the model to `custom` and include the model name in your API key: `localhost:11434|your-custom-model`.
143
323
 
144
- **Q: Can I use custom commit message formats?** A: Yes, the plugin respects your commitlint configuration and generates messages accordingly.
324
+ **Q: What's the difference between provider API key formats?**
325
+ A: Each provider has specific requirements:
326
+ - OpenAI/Anthropic/Google: Simple API key string
327
+ - Azure OpenAI: `endpoint|api-key|deployment-name`
328
+ - AWS Bedrock: `region|access-key-id|secret-access-key`
329
+ - Ollama: `host:port` or `host:port|custom-model-name`
145
330
 
146
- **Q: Is my code sent to the AI service?** A: Only the git diff and file names are sent to generate accurate commit messages. No full source code is transmitted.
331
+ **Q: What if I'm using an older model that's deprecated?**
332
+ A: The plugin automatically migrates deprecated models to their latest versions (e.g., `claude-3-5-sonnet-20240620` → `claude-3-5-sonnet-20241022`).
147
333
 
148
334
  ## 🔒 License
149
335
 
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Directory where configuration files are stored
3
+ */
4
+ export declare const CONFIG_FILE_DIRECTORY: string;
5
+ //# sourceMappingURL=config-file-directory.constant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-file-directory.constant.d.ts","sourceRoot":"","sources":["../../../../src/application/constant/config-file-directory.constant.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAoB,CAAC"}
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Directory where configuration files are stored
5
+ */
6
+ const CONFIG_FILE_DIRECTORY = ".elsikora";
7
+
8
+ exports.CONFIG_FILE_DIRECTORY = CONFIG_FILE_DIRECTORY;
9
+ //# sourceMappingURL=config-file-directory.constant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-file-directory.constant.js","sources":["../../../../../src/application/constant/config-file-directory.constant.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;AAEG;AACI,MAAM,qBAAqB,GAAW;;;;"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Module name for configuration
3
+ */
4
+ export declare const CONFIG_MODULE_NAME: string;
5
+ //# sourceMappingURL=config-module-name.constant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-module-name.constant.d.ts","sourceRoot":"","sources":["../../../../src/application/constant/config-module-name.constant.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAwB,CAAC"}
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Module name for configuration
5
+ */
6
+ const CONFIG_MODULE_NAME = "commitlint-ai";
7
+
8
+ exports.CONFIG_MODULE_NAME = CONFIG_MODULE_NAME;
9
+ //# sourceMappingURL=config-module-name.constant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-module-name.constant.js","sources":["../../../../../src/application/constant/config-module-name.constant.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;AAEG;AACI,MAAM,kBAAkB,GAAW;;;;"}
@@ -0,0 +1,3 @@
1
+ export * from "./config-file-directory.constant.js";
2
+ export * from "./config-module-name.constant.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/application/constant/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export type * from "./interface/index.js";
2
+ export * from "./use-case/index.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/application/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,sBAAsB,CAAC;AAC1C,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Options for select inputs in the CLI interface
3
+ */
4
+ export interface ICliInterfaceServiceSelectOptions {
5
+ /**
6
+ * Optional hint text for the option
7
+ */
8
+ hint?: string;
9
+ /**
10
+ * Whether the option is disabled
11
+ */
12
+ isDisabled?: boolean;
13
+ /**
14
+ * Display label for the option
15
+ */
16
+ label: string;
17
+ /**
18
+ * Value to be returned when the option is selected
19
+ */
20
+ value: string;
21
+ }
22
+ //# sourceMappingURL=cli-interface-service-select-options.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-interface-service-select-options.interface.d.ts","sourceRoot":"","sources":["../../../../src/application/interface/cli-interface-service-select-options.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,iCAAiC;IACjD;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACd"}
@@ -0,0 +1,106 @@
1
+ import type { ICliInterfaceServiceSelectOptions } from "./cli-interface-service-select-options.interface.js";
2
+ /**
3
+ * Interface for CLI user interaction services.
4
+ * Provides methods for displaying information and collecting input from users.
5
+ */
6
+ export interface ICliInterfaceService {
7
+ /**
8
+ * Clears the console screen.
9
+ */
10
+ clear(): void;
11
+ /**
12
+ * Displays a confirmation prompt to the user.
13
+ * @param message - The message to display to the user
14
+ * @param isConfirmedByDefault - The default value for the confirmation, defaults to false
15
+ * @returns Promise that resolves to the user's response (true for confirmed, false for declined)
16
+ */
17
+ confirm(message: string, isConfirmedByDefault?: boolean): Promise<boolean>;
18
+ /**
19
+ * Displays an error message to the user.
20
+ * @param message - The error message to display
21
+ */
22
+ error(message: string): void;
23
+ /**
24
+ * Displays a grouped multi-select prompt to the user.
25
+ * @param message - The message to display to the user
26
+ * @param options - Record of groups and their options
27
+ * @param isRequired - Whether a selection is required, defaults to false
28
+ * @param initialValue - Initial selected values
29
+ * @returns Promise that resolves to an array of selected values
30
+ */
31
+ groupMultiselect<T>(message: string, options: Record<string, Array<ICliInterfaceServiceSelectOptions>>, isRequired?: boolean, initialValue?: Array<string>): Promise<Array<T>>;
32
+ /**
33
+ * Handles and displays an error message with additional error details.
34
+ * @param message - The error message to display
35
+ * @param error - The error object or details
36
+ */
37
+ handleError(message: string, error: unknown): void;
38
+ /**
39
+ * Displays an informational message to the user.
40
+ * @param message - The info message to display
41
+ */
42
+ info(message: string): void;
43
+ /**
44
+ * Displays a standard message to the user.
45
+ * @param message - The message to display
46
+ */
47
+ log(message: string): void;
48
+ /**
49
+ * Displays a multi-select prompt to the user.
50
+ * @param message - The message to display to the user
51
+ * @param options - Array of options to select from
52
+ * @param isRequired - Whether a selection is required, defaults to false
53
+ * @param initialValue - Initial selected values
54
+ * @returns Promise that resolves to an array of selected values
55
+ */
56
+ multiselect<T>(message: string, options: Array<ICliInterfaceServiceSelectOptions>, isRequired?: boolean, initialValue?: Array<string>): Promise<Array<T>>;
57
+ /**
58
+ * Displays a note to the user with a title and message.
59
+ * @param title - The title of the note
60
+ * @param message - The message content of the note
61
+ */
62
+ note(title: string, message: string): void;
63
+ /**
64
+ * Displays a single select prompt to the user.
65
+ * @param message - The message to display to the user
66
+ * @param options - Array of options to select from
67
+ * @param initialValue - Initial selected value
68
+ * @returns Promise that resolves to the selected value
69
+ */
70
+ select<T>(message: string, options: Array<ICliInterfaceServiceSelectOptions>, initialValue?: string): Promise<T>;
71
+ /**
72
+ * Starts a spinner with the specified message.
73
+ * @param message - The message to display while the spinner is active
74
+ */
75
+ startSpinner(message: string): void;
76
+ /**
77
+ * Stops the current spinner with an optional completion message.
78
+ * @param message - Optional message to display when the spinner stops
79
+ */
80
+ stopSpinner(message?: string): void;
81
+ /**
82
+ * Displays a success message to the user.
83
+ * @param message - The success message to display
84
+ */
85
+ success(message: string): void;
86
+ /**
87
+ * Displays a text input prompt to the user.
88
+ * @param message - The message to display to the user
89
+ * @param placeholder - Optional placeholder text for the input field
90
+ * @param initialValue - Optional initial value for the input field
91
+ * @param validate - Optional validation function for the input
92
+ * @returns Promise that resolves to the user's input text
93
+ */
94
+ text(message: string, placeholder?: string, initialValue?: string, validate?: (value: string) => Error | string | undefined): Promise<string>;
95
+ /**
96
+ * Updates the spinner message.
97
+ * @param message - The new message to display
98
+ */
99
+ updateSpinner(message: string): void;
100
+ /**
101
+ * Displays a warning message to the user.
102
+ * @param message - The warning message to display
103
+ */
104
+ warn(message: string): void;
105
+ }
106
+ //# sourceMappingURL=cli-interface-service.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-interface-service.interface.d.ts","sourceRoot":"","sources":["../../../../src/application/interface/cli-interface-service.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,qDAAqD,CAAC;AAE7G;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACpC;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;IAEd;;;;;OAKG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,oBAAoB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3E;;;OAGG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B;;;;;;;OAOG;IACH,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,iCAAiC,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/K;;;;OAIG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAEnD;;;OAGG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B;;;OAGG;IACH,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;;;;;;OAOG;IACH,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,iCAAiC,CAAC,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1J;;;;OAIG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3C;;;;;;OAMG;IACH,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,iCAAiC,CAAC,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAEjH;;;OAGG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpC;;;OAGG;IACH,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpC;;;OAGG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/B;;;;;;;OAOG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9I;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAErC;;;OAGG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Interface for executing commands.
3
+ * Provides a method for executing shell commands.
4
+ */
5
+ export interface ICommandService {
6
+ /**
7
+ * Executes a shell command.
8
+ * @param command - The shell command to execute
9
+ * @returns Promise that resolves when the command completes successfully
10
+ * @throws May throw an error if the command execution fails
11
+ */
12
+ execute(command: string): Promise<void>;
13
+ /**
14
+ * Execute a command and return its output
15
+ * @param command - The command to execute
16
+ * @returns Promise that resolves to the command output
17
+ */
18
+ executeWithOutput(command: string): Promise<string>;
19
+ }
20
+ //# sourceMappingURL=command-service.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-service.interface.d.ts","sourceRoot":"","sources":["../../../../src/application/interface/command-service.interface.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC/B;;;;;OAKG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACpD"}
@@ -0,0 +1,33 @@
1
+ import type { CommitMessage } from "../../domain/entity/commit-message.entity.js";
2
+ /**
3
+ * Interface for commit repository operations
4
+ */
5
+ export interface ICommitRepository {
6
+ /**
7
+ * Create a commit with the given message
8
+ * @param message - The commit message
9
+ * @returns Promise that resolves when the commit is created
10
+ */
11
+ commit(message: CommitMessage): Promise<void>;
12
+ /**
13
+ * Get the current branch name
14
+ * @returns Promise resolving to the current branch name
15
+ */
16
+ getCurrentBranch(): Promise<string>;
17
+ /**
18
+ * Get the staged diff
19
+ * @returns Promise resolving to the staged diff
20
+ */
21
+ getStagedDiff(): Promise<string>;
22
+ /**
23
+ * Get the list of staged files
24
+ * @returns Promise resolving to the list of staged files
25
+ */
26
+ getStagedFiles(): Promise<Array<string>>;
27
+ /**
28
+ * Check if there are staged changes
29
+ * @returns Promise resolving to true if there are staged changes
30
+ */
31
+ hasStagedChanges(): Promise<boolean>;
32
+ }
33
+ //# sourceMappingURL=commit-repository.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commit-repository.interface.d.ts","sourceRoot":"","sources":["../../../../src/application/interface/commit-repository.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAElF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C;;;OAGG;IACH,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEpC;;;OAGG;IACH,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEjC;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAEzC;;;OAGG;IACH,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CACrC"}