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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (417) hide show
  1. package/README.md +256 -57
  2. package/dist/cjs/application/constant/config-file-directory.constant.d.ts +4 -0
  3. package/dist/cjs/application/constant/config-file-directory.constant.js +9 -0
  4. package/dist/cjs/application/constant/config-file-directory.constant.js.map +1 -0
  5. package/dist/cjs/application/constant/config-module-name.constant.d.ts +4 -0
  6. package/dist/cjs/application/constant/config-module-name.constant.js +9 -0
  7. package/dist/cjs/application/constant/config-module-name.constant.js.map +1 -0
  8. package/dist/cjs/application/constant/index.d.ts +2 -0
  9. package/dist/cjs/application/index.d.ts +2 -0
  10. package/dist/cjs/application/interface/cli-interface-service-select-options.interface.d.ts +21 -0
  11. package/dist/cjs/application/interface/cli-interface-service.interface.d.ts +105 -0
  12. package/dist/cjs/application/interface/command-service.interface.d.ts +19 -0
  13. package/dist/cjs/application/interface/commit-repository.interface.d.ts +32 -0
  14. package/dist/cjs/application/interface/commit-validator.interface.d.ts +29 -0
  15. package/dist/cjs/application/interface/config-service.interface.d.ts +47 -0
  16. package/dist/cjs/application/interface/config.interface.d.ts +27 -0
  17. package/dist/cjs/application/interface/file-system-service.interface.d.ts +61 -0
  18. package/dist/cjs/application/interface/index.d.ts +9 -0
  19. package/dist/cjs/application/interface/llm-service.interface.d.ts +43 -0
  20. package/dist/cjs/application/use-case/configure-llm.use-case.d.ts +39 -0
  21. package/dist/cjs/application/use-case/configure-llm.use-case.js +373 -0
  22. package/dist/cjs/application/use-case/configure-llm.use-case.js.map +1 -0
  23. package/dist/cjs/application/use-case/generate-commit-message.use-case.d.ts +18 -0
  24. package/dist/cjs/application/use-case/generate-commit-message.use-case.js +49 -0
  25. package/dist/cjs/application/use-case/generate-commit-message.use-case.js.map +1 -0
  26. package/dist/cjs/application/use-case/index.d.ts +4 -0
  27. package/dist/cjs/application/use-case/manual-commit.use-case.d.ts +16 -0
  28. package/dist/cjs/application/use-case/manual-commit.use-case.js +81 -0
  29. package/dist/cjs/application/use-case/manual-commit.use-case.js.map +1 -0
  30. package/dist/cjs/application/use-case/validate-commit-message.use-case.d.ts +26 -0
  31. package/dist/cjs/application/use-case/validate-commit-message.use-case.js +76 -0
  32. package/dist/cjs/application/use-case/validate-commit-message.use-case.js.map +1 -0
  33. package/dist/cjs/domain/constant/index.d.ts +1 -0
  34. package/dist/cjs/domain/constant/numeric.constant.d.ts +25 -0
  35. package/dist/cjs/domain/constant/numeric.constant.js +42 -0
  36. package/dist/cjs/domain/constant/numeric.constant.js.map +1 -0
  37. package/dist/cjs/domain/entity/commit-message.entity.d.ts +47 -0
  38. package/dist/cjs/domain/entity/commit-message.entity.js +71 -0
  39. package/dist/cjs/domain/entity/commit-message.entity.js.map +1 -0
  40. package/dist/cjs/domain/entity/index.d.ts +2 -0
  41. package/dist/cjs/domain/entity/llm-configuration.entity.d.ts +73 -0
  42. package/dist/cjs/domain/entity/llm-configuration.entity.js +107 -0
  43. package/dist/cjs/domain/entity/llm-configuration.entity.js.map +1 -0
  44. package/dist/cjs/domain/enum/anthropic-model.enum.d.ts +18 -0
  45. package/dist/cjs/domain/enum/anthropic-model.enum.js +26 -0
  46. package/dist/cjs/domain/enum/anthropic-model.enum.js.map +1 -0
  47. package/dist/cjs/domain/enum/aws-bedrock-model.enum.d.ts +33 -0
  48. package/dist/cjs/domain/enum/aws-bedrock-model.enum.js +47 -0
  49. package/dist/cjs/domain/enum/aws-bedrock-model.enum.js.map +1 -0
  50. package/dist/cjs/domain/enum/azure-openai-model.enum.d.ts +17 -0
  51. package/dist/cjs/domain/enum/azure-openai-model.enum.js +26 -0
  52. package/dist/cjs/domain/enum/azure-openai-model.enum.js.map +1 -0
  53. package/dist/cjs/domain/enum/commit-mode.enum.d.ts +7 -0
  54. package/dist/cjs/domain/enum/commit-mode.enum.js +11 -0
  55. package/dist/cjs/domain/enum/commit-mode.enum.js.map +1 -0
  56. package/dist/cjs/domain/enum/google-model.enum.d.ts +16 -0
  57. package/dist/cjs/domain/enum/google-model.enum.js +25 -0
  58. package/dist/cjs/domain/enum/google-model.enum.js.map +1 -0
  59. package/dist/cjs/domain/enum/index.d.ts +9 -0
  60. package/dist/cjs/domain/enum/llm-provider.enum.d.ts +11 -0
  61. package/dist/cjs/domain/enum/llm-provider.enum.js +15 -0
  62. package/dist/cjs/domain/enum/llm-provider.enum.js.map +1 -0
  63. package/dist/cjs/domain/enum/log-level.enum.d.ts +9 -0
  64. package/dist/cjs/domain/enum/log-level.enum.js +13 -0
  65. package/dist/cjs/domain/enum/log-level.enum.js.map +1 -0
  66. package/dist/cjs/domain/enum/ollama-model.enum.d.ts +24 -0
  67. package/dist/cjs/domain/enum/ollama-model.enum.js +30 -0
  68. package/dist/cjs/domain/enum/ollama-model.enum.js.map +1 -0
  69. package/dist/cjs/domain/enum/openai-model.enum.d.ts +25 -0
  70. package/dist/cjs/domain/enum/openai-model.enum.js +35 -0
  71. package/dist/cjs/domain/enum/openai-model.enum.js.map +1 -0
  72. package/dist/cjs/domain/index.d.ts +3 -0
  73. package/dist/cjs/domain/value-object/api-key.value-object.d.ts +28 -0
  74. package/dist/cjs/domain/value-object/api-key.value-object.js +51 -0
  75. package/dist/cjs/domain/value-object/api-key.value-object.js.map +1 -0
  76. package/dist/cjs/domain/value-object/commit-body.value-object.d.ts +39 -0
  77. package/dist/cjs/domain/value-object/commit-body.value-object.js +66 -0
  78. package/dist/cjs/domain/value-object/commit-body.value-object.js.map +1 -0
  79. package/dist/cjs/domain/value-object/commit-header.value-object.d.ts +35 -0
  80. package/dist/cjs/domain/value-object/commit-header.value-object.js +63 -0
  81. package/dist/cjs/domain/value-object/commit-header.value-object.js.map +1 -0
  82. package/dist/cjs/domain/value-object/index.d.ts +3 -0
  83. package/dist/cjs/index.d.ts +14 -12
  84. package/dist/cjs/index.js +85 -83
  85. package/dist/cjs/index.js.map +1 -1
  86. package/dist/cjs/infrastructure/commit-validator/commitlint-validator.service.d.ts +38 -0
  87. package/dist/cjs/infrastructure/commit-validator/commitlint-validator.service.js +207 -0
  88. package/dist/cjs/infrastructure/commit-validator/commitlint-validator.service.js.map +1 -0
  89. package/dist/cjs/infrastructure/commit-validator/index.d.ts +1 -0
  90. package/dist/cjs/infrastructure/di/container.d.ts +17 -0
  91. package/dist/cjs/infrastructure/di/container.js +76 -0
  92. package/dist/cjs/infrastructure/di/container.js.map +1 -0
  93. package/dist/cjs/infrastructure/di/index.d.ts +1 -0
  94. package/dist/cjs/infrastructure/git/git-commit.repository.d.ts +36 -0
  95. package/dist/cjs/infrastructure/git/git-commit.repository.js +78 -0
  96. package/dist/cjs/infrastructure/git/git-commit.repository.js.map +1 -0
  97. package/dist/cjs/infrastructure/git/index.d.ts +1 -0
  98. package/dist/cjs/infrastructure/index.d.ts +4 -0
  99. package/dist/cjs/infrastructure/llm/anthropic-llm.service.d.ts +39 -0
  100. package/dist/cjs/infrastructure/llm/anthropic-llm.service.js +323 -0
  101. package/dist/cjs/infrastructure/llm/anthropic-llm.service.js.map +1 -0
  102. package/dist/cjs/infrastructure/llm/aws-bedrock-llm.service.d.ts +60 -0
  103. package/dist/cjs/infrastructure/llm/aws-bedrock-llm.service.js +514 -0
  104. package/dist/cjs/infrastructure/llm/aws-bedrock-llm.service.js.map +1 -0
  105. package/dist/cjs/infrastructure/llm/azure-openai-llm.service.d.ts +45 -0
  106. package/dist/cjs/infrastructure/llm/azure-openai-llm.service.js +351 -0
  107. package/dist/cjs/infrastructure/llm/azure-openai-llm.service.js.map +1 -0
  108. package/dist/cjs/infrastructure/llm/google-llm.service.d.ts +45 -0
  109. package/dist/cjs/infrastructure/llm/google-llm.service.js +335 -0
  110. package/dist/cjs/infrastructure/llm/google-llm.service.js.map +1 -0
  111. package/dist/cjs/infrastructure/llm/index.d.ts +6 -0
  112. package/dist/cjs/infrastructure/llm/ollama-llm.service.d.ts +45 -0
  113. package/dist/cjs/infrastructure/llm/ollama-llm.service.js +387 -0
  114. package/dist/cjs/infrastructure/llm/ollama-llm.service.js.map +1 -0
  115. package/dist/cjs/infrastructure/llm/openai-llm.service.d.ts +45 -0
  116. package/dist/cjs/infrastructure/llm/openai-llm.service.js +339 -0
  117. package/dist/cjs/infrastructure/llm/openai-llm.service.js.map +1 -0
  118. package/dist/cjs/infrastructure/service/cosmic-config.service.d.ts +66 -0
  119. package/dist/cjs/infrastructure/service/cosmic-config.service.js +176 -0
  120. package/dist/cjs/infrastructure/service/cosmic-config.service.js.map +1 -0
  121. package/dist/cjs/infrastructure/service/index.d.ts +4 -0
  122. package/dist/cjs/infrastructure/service/node-command.service.d.ts +45 -0
  123. package/dist/cjs/infrastructure/service/node-command.service.js +154 -0
  124. package/dist/cjs/infrastructure/service/node-command.service.js.map +1 -0
  125. package/dist/cjs/infrastructure/service/node-file-system.service.d.ts +62 -0
  126. package/dist/cjs/infrastructure/service/node-file-system.service.js +102 -0
  127. package/dist/cjs/infrastructure/service/node-file-system.service.js.map +1 -0
  128. package/dist/cjs/infrastructure/service/prompts-cli-interface.service.d.ts +117 -0
  129. package/dist/cjs/infrastructure/service/prompts-cli-interface.service.js +318 -0
  130. package/dist/cjs/infrastructure/service/prompts-cli-interface.service.js.map +1 -0
  131. package/dist/cjs/presentation/commitizen.adapter.d.ts +28 -0
  132. package/dist/cjs/presentation/commitizen.adapter.js +304 -0
  133. package/dist/cjs/presentation/commitizen.adapter.js.map +1 -0
  134. package/dist/cjs/presentation/index.d.ts +1 -0
  135. package/dist/esm/application/constant/config-file-directory.constant.d.ts +4 -0
  136. package/dist/esm/application/constant/config-file-directory.constant.js +7 -0
  137. package/dist/esm/application/constant/config-file-directory.constant.js.map +1 -0
  138. package/dist/esm/application/constant/config-module-name.constant.d.ts +4 -0
  139. package/dist/esm/application/constant/config-module-name.constant.js +7 -0
  140. package/dist/esm/application/constant/config-module-name.constant.js.map +1 -0
  141. package/dist/esm/application/constant/index.d.ts +2 -0
  142. package/dist/esm/application/index.d.ts +2 -0
  143. package/dist/esm/application/interface/cli-interface-service-select-options.interface.d.ts +21 -0
  144. package/dist/esm/application/interface/cli-interface-service.interface.d.ts +105 -0
  145. package/dist/esm/application/interface/command-service.interface.d.ts +19 -0
  146. package/dist/esm/application/interface/commit-repository.interface.d.ts +32 -0
  147. package/dist/esm/application/interface/commit-validator.interface.d.ts +29 -0
  148. package/dist/esm/application/interface/config-service.interface.d.ts +47 -0
  149. package/dist/esm/application/interface/config.interface.d.ts +27 -0
  150. package/dist/esm/application/interface/file-system-service.interface.d.ts +61 -0
  151. package/dist/esm/application/interface/index.d.ts +9 -0
  152. package/dist/esm/application/interface/llm-service.interface.d.ts +43 -0
  153. package/dist/esm/application/use-case/configure-llm.use-case.d.ts +39 -0
  154. package/dist/esm/application/use-case/configure-llm.use-case.js +371 -0
  155. package/dist/esm/application/use-case/configure-llm.use-case.js.map +1 -0
  156. package/dist/esm/application/use-case/generate-commit-message.use-case.d.ts +18 -0
  157. package/dist/esm/application/use-case/generate-commit-message.use-case.js +47 -0
  158. package/dist/esm/application/use-case/generate-commit-message.use-case.js.map +1 -0
  159. package/dist/esm/application/use-case/index.d.ts +4 -0
  160. package/dist/esm/application/use-case/manual-commit.use-case.d.ts +16 -0
  161. package/dist/esm/application/use-case/manual-commit.use-case.js +79 -0
  162. package/dist/esm/application/use-case/manual-commit.use-case.js.map +1 -0
  163. package/dist/esm/application/use-case/validate-commit-message.use-case.d.ts +26 -0
  164. package/dist/esm/application/use-case/validate-commit-message.use-case.js +74 -0
  165. package/dist/esm/application/use-case/validate-commit-message.use-case.js.map +1 -0
  166. package/dist/esm/domain/constant/index.d.ts +1 -0
  167. package/dist/esm/domain/constant/numeric.constant.d.ts +25 -0
  168. package/dist/esm/domain/constant/numeric.constant.js +26 -0
  169. package/dist/esm/domain/constant/numeric.constant.js.map +1 -0
  170. package/dist/esm/domain/entity/commit-message.entity.d.ts +47 -0
  171. package/dist/esm/domain/entity/commit-message.entity.js +69 -0
  172. package/dist/esm/domain/entity/commit-message.entity.js.map +1 -0
  173. package/dist/esm/domain/entity/index.d.ts +2 -0
  174. package/dist/esm/domain/entity/llm-configuration.entity.d.ts +73 -0
  175. package/dist/esm/domain/entity/llm-configuration.entity.js +105 -0
  176. package/dist/esm/domain/entity/llm-configuration.entity.js.map +1 -0
  177. package/dist/esm/domain/enum/anthropic-model.enum.d.ts +18 -0
  178. package/dist/esm/domain/enum/anthropic-model.enum.js +26 -0
  179. package/dist/esm/domain/enum/anthropic-model.enum.js.map +1 -0
  180. package/dist/esm/domain/enum/aws-bedrock-model.enum.d.ts +33 -0
  181. package/dist/esm/domain/enum/aws-bedrock-model.enum.js +47 -0
  182. package/dist/esm/domain/enum/aws-bedrock-model.enum.js.map +1 -0
  183. package/dist/esm/domain/enum/azure-openai-model.enum.d.ts +17 -0
  184. package/dist/esm/domain/enum/azure-openai-model.enum.js +26 -0
  185. package/dist/esm/domain/enum/azure-openai-model.enum.js.map +1 -0
  186. package/dist/esm/domain/enum/commit-mode.enum.d.ts +7 -0
  187. package/dist/esm/domain/enum/commit-mode.enum.js +11 -0
  188. package/dist/esm/domain/enum/commit-mode.enum.js.map +1 -0
  189. package/dist/esm/domain/enum/google-model.enum.d.ts +16 -0
  190. package/dist/esm/domain/enum/google-model.enum.js +25 -0
  191. package/dist/esm/domain/enum/google-model.enum.js.map +1 -0
  192. package/dist/esm/domain/enum/index.d.ts +9 -0
  193. package/dist/esm/domain/enum/llm-provider.enum.d.ts +11 -0
  194. package/dist/esm/domain/enum/llm-provider.enum.js +15 -0
  195. package/dist/esm/domain/enum/llm-provider.enum.js.map +1 -0
  196. package/dist/esm/domain/enum/log-level.enum.d.ts +9 -0
  197. package/dist/esm/domain/enum/log-level.enum.js +13 -0
  198. package/dist/esm/domain/enum/log-level.enum.js.map +1 -0
  199. package/dist/esm/domain/enum/ollama-model.enum.d.ts +24 -0
  200. package/dist/esm/domain/enum/ollama-model.enum.js +30 -0
  201. package/dist/esm/domain/enum/ollama-model.enum.js.map +1 -0
  202. package/dist/esm/domain/enum/openai-model.enum.d.ts +25 -0
  203. package/dist/esm/domain/enum/openai-model.enum.js +35 -0
  204. package/dist/esm/domain/enum/openai-model.enum.js.map +1 -0
  205. package/dist/esm/domain/index.d.ts +3 -0
  206. package/dist/esm/domain/value-object/api-key.value-object.d.ts +28 -0
  207. package/dist/esm/domain/value-object/api-key.value-object.js +49 -0
  208. package/dist/esm/domain/value-object/api-key.value-object.js.map +1 -0
  209. package/dist/esm/domain/value-object/commit-body.value-object.d.ts +39 -0
  210. package/dist/esm/domain/value-object/commit-body.value-object.js +64 -0
  211. package/dist/esm/domain/value-object/commit-body.value-object.js.map +1 -0
  212. package/dist/esm/domain/value-object/commit-header.value-object.d.ts +35 -0
  213. package/dist/esm/domain/value-object/commit-header.value-object.js +61 -0
  214. package/dist/esm/domain/value-object/commit-header.value-object.js.map +1 -0
  215. package/dist/esm/domain/value-object/index.d.ts +3 -0
  216. package/dist/esm/index.d.ts +14 -12
  217. package/dist/esm/index.js +38 -82
  218. package/dist/esm/index.js.map +1 -1
  219. package/dist/esm/infrastructure/commit-validator/commitlint-validator.service.d.ts +38 -0
  220. package/dist/esm/infrastructure/commit-validator/commitlint-validator.service.js +205 -0
  221. package/dist/esm/infrastructure/commit-validator/commitlint-validator.service.js.map +1 -0
  222. package/dist/esm/infrastructure/commit-validator/index.d.ts +1 -0
  223. package/dist/esm/infrastructure/di/container.d.ts +17 -0
  224. package/dist/esm/infrastructure/di/container.js +63 -0
  225. package/dist/esm/infrastructure/di/container.js.map +1 -0
  226. package/dist/esm/infrastructure/di/index.d.ts +1 -0
  227. package/dist/esm/infrastructure/git/git-commit.repository.d.ts +36 -0
  228. package/dist/esm/infrastructure/git/git-commit.repository.js +76 -0
  229. package/dist/esm/infrastructure/git/git-commit.repository.js.map +1 -0
  230. package/dist/esm/infrastructure/git/index.d.ts +1 -0
  231. package/dist/esm/infrastructure/index.d.ts +4 -0
  232. package/dist/esm/infrastructure/llm/anthropic-llm.service.d.ts +39 -0
  233. package/dist/esm/infrastructure/llm/anthropic-llm.service.js +321 -0
  234. package/dist/esm/infrastructure/llm/anthropic-llm.service.js.map +1 -0
  235. package/dist/esm/infrastructure/llm/aws-bedrock-llm.service.d.ts +60 -0
  236. package/dist/esm/infrastructure/llm/aws-bedrock-llm.service.js +512 -0
  237. package/dist/esm/infrastructure/llm/aws-bedrock-llm.service.js.map +1 -0
  238. package/dist/esm/infrastructure/llm/azure-openai-llm.service.d.ts +45 -0
  239. package/dist/esm/infrastructure/llm/azure-openai-llm.service.js +349 -0
  240. package/dist/esm/infrastructure/llm/azure-openai-llm.service.js.map +1 -0
  241. package/dist/esm/infrastructure/llm/google-llm.service.d.ts +45 -0
  242. package/dist/esm/infrastructure/llm/google-llm.service.js +333 -0
  243. package/dist/esm/infrastructure/llm/google-llm.service.js.map +1 -0
  244. package/dist/esm/infrastructure/llm/index.d.ts +6 -0
  245. package/dist/esm/infrastructure/llm/ollama-llm.service.d.ts +45 -0
  246. package/dist/esm/infrastructure/llm/ollama-llm.service.js +385 -0
  247. package/dist/esm/infrastructure/llm/ollama-llm.service.js.map +1 -0
  248. package/dist/esm/infrastructure/llm/openai-llm.service.d.ts +45 -0
  249. package/dist/esm/infrastructure/llm/openai-llm.service.js +337 -0
  250. package/dist/esm/infrastructure/llm/openai-llm.service.js.map +1 -0
  251. package/dist/esm/infrastructure/service/cosmic-config.service.d.ts +66 -0
  252. package/dist/esm/infrastructure/service/cosmic-config.service.js +174 -0
  253. package/dist/esm/infrastructure/service/cosmic-config.service.js.map +1 -0
  254. package/dist/esm/infrastructure/service/index.d.ts +4 -0
  255. package/dist/esm/infrastructure/service/node-command.service.d.ts +45 -0
  256. package/dist/esm/infrastructure/service/node-command.service.js +152 -0
  257. package/dist/esm/infrastructure/service/node-command.service.js.map +1 -0
  258. package/dist/esm/infrastructure/service/node-file-system.service.d.ts +62 -0
  259. package/dist/esm/infrastructure/service/node-file-system.service.js +100 -0
  260. package/dist/esm/infrastructure/service/node-file-system.service.js.map +1 -0
  261. package/dist/esm/infrastructure/service/prompts-cli-interface.service.d.ts +117 -0
  262. package/dist/esm/infrastructure/service/prompts-cli-interface.service.js +316 -0
  263. package/dist/esm/infrastructure/service/prompts-cli-interface.service.js.map +1 -0
  264. package/dist/esm/package.json +19 -0
  265. package/dist/esm/presentation/commitizen.adapter.d.ts +28 -0
  266. package/dist/esm/presentation/commitizen.adapter.js +302 -0
  267. package/dist/esm/presentation/commitizen.adapter.js.map +1 -0
  268. package/dist/esm/presentation/index.d.ts +1 -0
  269. package/index.cjs +1 -2
  270. package/package.json +42 -25
  271. package/dist/cjs/ManualProcess.d.ts +0 -6
  272. package/dist/cjs/ManualProcess.d.ts.map +0 -1
  273. package/dist/cjs/ManualProcess.js +0 -111
  274. package/dist/cjs/ManualProcess.js.map +0 -1
  275. package/dist/cjs/Process.d.ts +0 -6
  276. package/dist/cjs/Process.d.ts.map +0 -1
  277. package/dist/cjs/Process.js +0 -176
  278. package/dist/cjs/Process.js.map +0 -1
  279. package/dist/cjs/Question.d.ts +0 -46
  280. package/dist/cjs/Question.d.ts.map +0 -1
  281. package/dist/cjs/SectionBody.d.ts +0 -4
  282. package/dist/cjs/SectionBody.d.ts.map +0 -1
  283. package/dist/cjs/SectionFooter.d.ts +0 -13
  284. package/dist/cjs/SectionFooter.d.ts.map +0 -1
  285. package/dist/cjs/SectionHeader.d.ts +0 -15
  286. package/dist/cjs/SectionHeader.d.ts.map +0 -1
  287. package/dist/cjs/index.d.ts.map +0 -1
  288. package/dist/cjs/services/commitConfirmation.d.ts +0 -3
  289. package/dist/cjs/services/commitConfirmation.d.ts.map +0 -1
  290. package/dist/cjs/services/commitConfirmation.js +0 -122
  291. package/dist/cjs/services/commitConfirmation.js.map +0 -1
  292. package/dist/cjs/services/commitlintConfig.d.ts +0 -4
  293. package/dist/cjs/services/commitlintConfig.d.ts.map +0 -1
  294. package/dist/cjs/services/commitlintConfig.js +0 -198
  295. package/dist/cjs/services/commitlintConfig.js.map +0 -1
  296. package/dist/cjs/services/commitlintValidator.d.ts +0 -26
  297. package/dist/cjs/services/commitlintValidator.d.ts.map +0 -1
  298. package/dist/cjs/services/commitlintValidator.js +0 -146
  299. package/dist/cjs/services/commitlintValidator.js.map +0 -1
  300. package/dist/cjs/services/getRuleQuestionConfig.d.ts +0 -4
  301. package/dist/cjs/services/getRuleQuestionConfig.d.ts.map +0 -1
  302. package/dist/cjs/services/llm/anthropic.d.ts +0 -3
  303. package/dist/cjs/services/llm/anthropic.d.ts.map +0 -1
  304. package/dist/cjs/services/llm/anthropic.js +0 -118
  305. package/dist/cjs/services/llm/anthropic.js.map +0 -1
  306. package/dist/cjs/services/llm/config.d.ts +0 -5
  307. package/dist/cjs/services/llm/config.d.ts.map +0 -1
  308. package/dist/cjs/services/llm/config.js +0 -181
  309. package/dist/cjs/services/llm/config.js.map +0 -1
  310. package/dist/cjs/services/llm/index.d.ts +0 -6
  311. package/dist/cjs/services/llm/index.d.ts.map +0 -1
  312. package/dist/cjs/services/llm/index.js +0 -399
  313. package/dist/cjs/services/llm/index.js.map +0 -1
  314. package/dist/cjs/services/llm/models.d.ts +0 -34
  315. package/dist/cjs/services/llm/models.d.ts.map +0 -1
  316. package/dist/cjs/services/llm/models.js +0 -65
  317. package/dist/cjs/services/llm/models.js.map +0 -1
  318. package/dist/cjs/services/llm/openai.d.ts +0 -3
  319. package/dist/cjs/services/llm/openai.d.ts.map +0 -1
  320. package/dist/cjs/services/llm/openai.js +0 -111
  321. package/dist/cjs/services/llm/openai.js.map +0 -1
  322. package/dist/cjs/services/llm/types.d.ts +0 -71
  323. package/dist/cjs/services/llm/types.d.ts.map +0 -1
  324. package/dist/cjs/store/defaultPromptConfigs.d.ts +0 -33
  325. package/dist/cjs/store/defaultPromptConfigs.d.ts.map +0 -1
  326. package/dist/cjs/store/defaultPromptConfigs.js +0 -39
  327. package/dist/cjs/store/defaultPromptConfigs.js.map +0 -1
  328. package/dist/cjs/store/prompts.d.ts +0 -6
  329. package/dist/cjs/store/prompts.d.ts.map +0 -1
  330. package/dist/cjs/store/prompts.js +0 -40
  331. package/dist/cjs/store/prompts.js.map +0 -1
  332. package/dist/cjs/store/rules.d.ts +0 -7
  333. package/dist/cjs/store/rules.d.ts.map +0 -1
  334. package/dist/cjs/types.d.ts +0 -3
  335. package/dist/cjs/types.d.ts.map +0 -1
  336. package/dist/cjs/utils/case-function.d.ts +0 -9
  337. package/dist/cjs/utils/case-function.d.ts.map +0 -1
  338. package/dist/cjs/utils/full-stop-function.d.ts +0 -9
  339. package/dist/cjs/utils/full-stop-function.d.ts.map +0 -1
  340. package/dist/cjs/utils/leading-blank-function.d.ts +0 -8
  341. package/dist/cjs/utils/leading-blank-function.d.ts.map +0 -1
  342. package/dist/cjs/utils/rules.d.ts +0 -26
  343. package/dist/cjs/utils/rules.d.ts.map +0 -1
  344. package/dist/esm/ManualProcess.d.ts +0 -6
  345. package/dist/esm/ManualProcess.d.ts.map +0 -1
  346. package/dist/esm/ManualProcess.js +0 -107
  347. package/dist/esm/ManualProcess.js.map +0 -1
  348. package/dist/esm/Process.d.ts +0 -6
  349. package/dist/esm/Process.d.ts.map +0 -1
  350. package/dist/esm/Process.js +0 -172
  351. package/dist/esm/Process.js.map +0 -1
  352. package/dist/esm/Question.d.ts +0 -46
  353. package/dist/esm/Question.d.ts.map +0 -1
  354. package/dist/esm/SectionBody.d.ts +0 -4
  355. package/dist/esm/SectionBody.d.ts.map +0 -1
  356. package/dist/esm/SectionFooter.d.ts +0 -13
  357. package/dist/esm/SectionFooter.d.ts.map +0 -1
  358. package/dist/esm/SectionHeader.d.ts +0 -15
  359. package/dist/esm/SectionHeader.d.ts.map +0 -1
  360. package/dist/esm/index.d.ts.map +0 -1
  361. package/dist/esm/services/commitConfirmation.d.ts +0 -3
  362. package/dist/esm/services/commitConfirmation.d.ts.map +0 -1
  363. package/dist/esm/services/commitConfirmation.js +0 -120
  364. package/dist/esm/services/commitConfirmation.js.map +0 -1
  365. package/dist/esm/services/commitlintConfig.d.ts +0 -4
  366. package/dist/esm/services/commitlintConfig.d.ts.map +0 -1
  367. package/dist/esm/services/commitlintConfig.js +0 -196
  368. package/dist/esm/services/commitlintConfig.js.map +0 -1
  369. package/dist/esm/services/commitlintValidator.d.ts +0 -26
  370. package/dist/esm/services/commitlintValidator.d.ts.map +0 -1
  371. package/dist/esm/services/commitlintValidator.js +0 -142
  372. package/dist/esm/services/commitlintValidator.js.map +0 -1
  373. package/dist/esm/services/getRuleQuestionConfig.d.ts +0 -4
  374. package/dist/esm/services/getRuleQuestionConfig.d.ts.map +0 -1
  375. package/dist/esm/services/llm/anthropic.d.ts +0 -3
  376. package/dist/esm/services/llm/anthropic.d.ts.map +0 -1
  377. package/dist/esm/services/llm/anthropic.js +0 -116
  378. package/dist/esm/services/llm/anthropic.js.map +0 -1
  379. package/dist/esm/services/llm/config.d.ts +0 -5
  380. package/dist/esm/services/llm/config.d.ts.map +0 -1
  381. package/dist/esm/services/llm/config.js +0 -178
  382. package/dist/esm/services/llm/config.js.map +0 -1
  383. package/dist/esm/services/llm/index.d.ts +0 -6
  384. package/dist/esm/services/llm/index.d.ts.map +0 -1
  385. package/dist/esm/services/llm/index.js +0 -394
  386. package/dist/esm/services/llm/index.js.map +0 -1
  387. package/dist/esm/services/llm/models.d.ts +0 -34
  388. package/dist/esm/services/llm/models.d.ts.map +0 -1
  389. package/dist/esm/services/llm/models.js +0 -60
  390. package/dist/esm/services/llm/models.js.map +0 -1
  391. package/dist/esm/services/llm/openai.d.ts +0 -3
  392. package/dist/esm/services/llm/openai.d.ts.map +0 -1
  393. package/dist/esm/services/llm/openai.js +0 -109
  394. package/dist/esm/services/llm/openai.js.map +0 -1
  395. package/dist/esm/services/llm/types.d.ts +0 -71
  396. package/dist/esm/services/llm/types.d.ts.map +0 -1
  397. package/dist/esm/store/defaultPromptConfigs.d.ts +0 -33
  398. package/dist/esm/store/defaultPromptConfigs.d.ts.map +0 -1
  399. package/dist/esm/store/defaultPromptConfigs.js +0 -35
  400. package/dist/esm/store/defaultPromptConfigs.js.map +0 -1
  401. package/dist/esm/store/prompts.d.ts +0 -6
  402. package/dist/esm/store/prompts.d.ts.map +0 -1
  403. package/dist/esm/store/prompts.js +0 -38
  404. package/dist/esm/store/prompts.js.map +0 -1
  405. package/dist/esm/store/rules.d.ts +0 -7
  406. package/dist/esm/store/rules.d.ts.map +0 -1
  407. package/dist/esm/types.d.ts +0 -3
  408. package/dist/esm/types.d.ts.map +0 -1
  409. package/dist/esm/utils/case-function.d.ts +0 -9
  410. package/dist/esm/utils/case-function.d.ts.map +0 -1
  411. package/dist/esm/utils/full-stop-function.d.ts +0 -9
  412. package/dist/esm/utils/full-stop-function.d.ts.map +0 -1
  413. package/dist/esm/utils/leading-blank-function.d.ts +0 -8
  414. package/dist/esm/utils/leading-blank-function.d.ts.map +0 -1
  415. package/dist/esm/utils/rules.d.ts +0 -26
  416. package/dist/esm/utils/rules.d.ts.map +0 -1
  417. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commitlint-validator.service.js","sources":["../../../../../src/infrastructure/commit-validator/commitlint-validator.service.ts"],"sourcesContent":[null],"names":["CommitHeader","ELLIPSIS_LENGTH","CommitBody"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from './commitlint-validator.service';
@@ -0,0 +1,17 @@
1
+ import type { IContainer } from "@elsikora/cladi";
2
+ export declare const FileSystemServiceToken: symbol;
3
+ export declare const CliInterfaceServiceToken: symbol;
4
+ export declare const CommandServiceToken: symbol;
5
+ export declare const ConfigServiceToken: symbol;
6
+ export declare const CommitValidatorToken: symbol;
7
+ export declare const CommitRepositoryToken: symbol;
8
+ export declare const LLMServicesToken: symbol;
9
+ export declare const GenerateCommitMessageUseCaseToken: symbol;
10
+ export declare const ValidateCommitMessageUseCaseToken: symbol;
11
+ export declare const ConfigureLLMUseCaseToken: symbol;
12
+ export declare const ManualCommitUseCaseToken: symbol;
13
+ /**
14
+ * Create and configure the application DI container
15
+ * @returns {IContainer} The configured DI container
16
+ */
17
+ export declare function createAppContainer(): IContainer;
@@ -0,0 +1,76 @@
1
+ 'use strict';
2
+
3
+ var cladi = require('@elsikora/cladi');
4
+ var configureLlm_useCase = require('../../application/use-case/configure-llm.use-case.js');
5
+ var generateCommitMessage_useCase = require('../../application/use-case/generate-commit-message.use-case.js');
6
+ var manualCommit_useCase = require('../../application/use-case/manual-commit.use-case.js');
7
+ var validateCommitMessage_useCase = require('../../application/use-case/validate-commit-message.use-case.js');
8
+ var commitlintValidator_service = require('../commit-validator/commitlint-validator.service.js');
9
+ var gitCommit_repository = require('../git/git-commit.repository.js');
10
+ var anthropicLlm_service = require('../llm/anthropic-llm.service.js');
11
+ var awsBedrockLlm_service = require('../llm/aws-bedrock-llm.service.js');
12
+ var azureOpenaiLlm_service = require('../llm/azure-openai-llm.service.js');
13
+ var googleLlm_service = require('../llm/google-llm.service.js');
14
+ var ollamaLlm_service = require('../llm/ollama-llm.service.js');
15
+ var openaiLlm_service = require('../llm/openai-llm.service.js');
16
+ var cosmicConfig_service = require('../service/cosmic-config.service.js');
17
+ var nodeCommand_service = require('../service/node-command.service.js');
18
+ var nodeFileSystem_service = require('../service/node-file-system.service.js');
19
+ var promptsCliInterface_service = require('../service/prompts-cli-interface.service.js');
20
+
21
+ // Service tokens
22
+ const FileSystemServiceToken = Symbol("FileSystemService");
23
+ const CliInterfaceServiceToken = Symbol("CliInterfaceService");
24
+ const CommandServiceToken = Symbol("CommandService");
25
+ const ConfigServiceToken = Symbol("ConfigService");
26
+ const CommitValidatorToken = Symbol("CommitValidator");
27
+ const CommitRepositoryToken = Symbol("CommitRepository");
28
+ const LLMServicesToken = Symbol("LLMServices");
29
+ // Use case tokens
30
+ const GenerateCommitMessageUseCaseToken = Symbol("GenerateCommitMessageUseCase");
31
+ const ValidateCommitMessageUseCaseToken = Symbol("ValidateCommitMessageUseCase");
32
+ const ConfigureLLMUseCaseToken = Symbol("ConfigureLLMUseCase");
33
+ const ManualCommitUseCaseToken = Symbol("ManualCommitUseCase");
34
+ /**
35
+ * Create and configure the application DI container
36
+ * @returns {IContainer} The configured DI container
37
+ */
38
+ function createAppContainer() {
39
+ const container = cladi.createContainer({});
40
+ // Register infrastructure services
41
+ container.register(FileSystemServiceToken, new nodeFileSystem_service.NodeFileSystemService());
42
+ container.register(CliInterfaceServiceToken, new promptsCliInterface_service.PromptsCliInterface());
43
+ const cliInterface = container.get(CliInterfaceServiceToken) ?? new promptsCliInterface_service.PromptsCliInterface();
44
+ const fileSystem = container.get(FileSystemServiceToken) ?? new nodeFileSystem_service.NodeFileSystemService();
45
+ container.register(ConfigServiceToken, new cosmicConfig_service.CosmicConfigService(fileSystem));
46
+ container.register(CommandServiceToken, new nodeCommand_service.NodeCommandService(cliInterface));
47
+ const commandService = container.get(CommandServiceToken) ?? new nodeCommand_service.NodeCommandService(cliInterface);
48
+ container.register(CommitRepositoryToken, new gitCommit_repository.GitCommitRepository(commandService));
49
+ // Register LLM services
50
+ const llmServices = [new openaiLlm_service.OpenAILlmService(), new anthropicLlm_service.AnthropicLlmService(), new googleLlm_service.GoogleLlmService(), new azureOpenaiLlm_service.AzureOpenAILlmService(), new awsBedrockLlm_service.AWSBedrockLlmService(), new ollamaLlm_service.OllamaLlmService()];
51
+ container.register(LLMServicesToken, llmServices);
52
+ // Register commit validator with LLM services
53
+ container.register(CommitValidatorToken, new commitlintValidator_service.CommitlintValidatorService(llmServices));
54
+ const validator = container.get(CommitValidatorToken) ?? new commitlintValidator_service.CommitlintValidatorService([]);
55
+ const configService = container.get(ConfigServiceToken) ?? new cosmicConfig_service.CosmicConfigService(fileSystem);
56
+ // Register use cases
57
+ container.register(ConfigureLLMUseCaseToken, new configureLlm_useCase.ConfigureLLMUseCase(configService, cliInterface));
58
+ container.register(GenerateCommitMessageUseCaseToken, new generateCommitMessage_useCase.GenerateCommitMessageUseCase(llmServices));
59
+ container.register(ValidateCommitMessageUseCaseToken, new validateCommitMessage_useCase.ValidateCommitMessageUseCase(validator));
60
+ container.register(ManualCommitUseCaseToken, new manualCommit_useCase.ManualCommitUseCase(cliInterface));
61
+ return container;
62
+ }
63
+
64
+ exports.CliInterfaceServiceToken = CliInterfaceServiceToken;
65
+ exports.CommandServiceToken = CommandServiceToken;
66
+ exports.CommitRepositoryToken = CommitRepositoryToken;
67
+ exports.CommitValidatorToken = CommitValidatorToken;
68
+ exports.ConfigServiceToken = ConfigServiceToken;
69
+ exports.ConfigureLLMUseCaseToken = ConfigureLLMUseCaseToken;
70
+ exports.FileSystemServiceToken = FileSystemServiceToken;
71
+ exports.GenerateCommitMessageUseCaseToken = GenerateCommitMessageUseCaseToken;
72
+ exports.LLMServicesToken = LLMServicesToken;
73
+ exports.ManualCommitUseCaseToken = ManualCommitUseCaseToken;
74
+ exports.ValidateCommitMessageUseCaseToken = ValidateCommitMessageUseCaseToken;
75
+ exports.createAppContainer = createAppContainer;
76
+ //# sourceMappingURL=container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.js","sources":["../../../../../src/infrastructure/di/container.ts"],"sourcesContent":[null],"names":["createContainer","NodeFileSystemService","PromptsCliInterface","CosmicConfigService","NodeCommandService","GitCommitRepository","OpenAILlmService","AnthropicLlmService","GoogleLlmService","AzureOpenAILlmService","AWSBedrockLlmService","OllamaLlmService","CommitlintValidatorService","ConfigureLLMUseCaseImpl","GenerateCommitMessageUseCaseImpl","ValidateCommitMessageUseCaseImpl","ManualCommitUseCaseImpl"],"mappings":";;;;;;;;;;;;;;;;;;;;AA4BA;MACa,sBAAsB,GAAW,MAAM,CAAC,mBAAmB;MAC3D,wBAAwB,GAAW,MAAM,CAAC,qBAAqB;MAC/D,mBAAmB,GAAW,MAAM,CAAC,gBAAgB;MACrD,kBAAkB,GAAW,MAAM,CAAC,eAAe;MACnD,oBAAoB,GAAW,MAAM,CAAC,iBAAiB;MACvD,qBAAqB,GAAW,MAAM,CAAC,kBAAkB;MACzD,gBAAgB,GAAW,MAAM,CAAC,aAAa;AAE5D;MACa,iCAAiC,GAAW,MAAM,CAAC,8BAA8B;MACjF,iCAAiC,GAAW,MAAM,CAAC,8BAA8B;MACjF,wBAAwB,GAAW,MAAM,CAAC,qBAAqB;MAC/D,wBAAwB,GAAW,MAAM,CAAC,qBAAqB;AAE5E;;;AAGG;SACa,kBAAkB,GAAA;AACjC,IAAA,MAAM,SAAS,GAAeA,qBAAe,CAAC,EAAE,CAAC;;IAGjD,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,IAAIC,4CAAqB,EAAE,CAAC;IACvE,SAAS,CAAC,QAAQ,CAAC,wBAAwB,EAAE,IAAIC,+CAAmB,EAAE,CAAC;AAEvE,IAAA,MAAM,YAAY,GAAyB,SAAS,CAAC,GAAG,CAAuB,wBAAwB,CAAC,IAAI,IAAIA,+CAAmB,EAAE;AACrI,IAAA,MAAM,UAAU,GAAuB,SAAS,CAAC,GAAG,CAAqB,sBAAsB,CAAC,IAAI,IAAID,4CAAqB,EAAE;IAE/H,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,IAAIE,wCAAmB,CAAC,UAAU,CAAC,CAAC;IAC3E,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAIC,sCAAkB,CAAC,YAAY,CAAC,CAAC;AAE7E,IAAA,MAAM,cAAc,GAAoB,SAAS,CAAC,GAAG,CAAkB,mBAAmB,CAAC,IAAI,IAAIA,sCAAkB,CAAC,YAAY,CAAC;IAEnI,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,IAAIC,wCAAmB,CAAC,cAAc,CAAC,CAAC;;IAGlF,MAAM,WAAW,GAAuB,CAAC,IAAIC,kCAAgB,EAAE,EAAE,IAAIC,wCAAmB,EAAE,EAAE,IAAIC,kCAAgB,EAAE,EAAE,IAAIC,4CAAqB,EAAE,EAAE,IAAIC,0CAAoB,EAAE,EAAE,IAAIC,kCAAgB,EAAE,CAAC;AACpM,IAAA,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAC;;IAGjD,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,IAAIC,sDAA0B,CAAC,WAAW,CAAC,CAAC;AAErF,IAAA,MAAM,SAAS,GAAqB,SAAS,CAAC,GAAG,CAAmB,oBAAoB,CAAC,IAAI,IAAIA,sDAA0B,CAAC,EAAE,CAAC;AAC/H,IAAA,MAAM,aAAa,GAAmB,SAAS,CAAC,GAAG,CAAiB,kBAAkB,CAAC,IAAI,IAAIT,wCAAmB,CAAC,UAAU,CAAC;;AAG9H,IAAA,SAAS,CAAC,QAAQ,CAAC,wBAAwB,EAAE,IAAIU,wCAAuB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IACtG,SAAS,CAAC,QAAQ,CAAC,iCAAiC,EAAE,IAAIC,0DAAgC,CAAC,WAAW,CAAC,CAAC;IACxG,SAAS,CAAC,QAAQ,CAAC,iCAAiC,EAAE,IAAIC,0DAAgC,CAAC,SAAS,CAAC,CAAC;IACtG,SAAS,CAAC,QAAQ,CAAC,wBAAwB,EAAE,IAAIC,wCAAuB,CAAC,YAAY,CAAC,CAAC;AAEvF,IAAA,OAAO,SAAS;AACjB;;;;;;;;;;;;;;;"}
@@ -0,0 +1 @@
1
+ export * from './container';
@@ -0,0 +1,36 @@
1
+ import type { ICommandService } from '../../application/interface/command-service.interface';
2
+ import type { ICommitRepository } from '../../application/interface/commit-repository.interface';
3
+ import type { CommitMessage } from '../../domain/entity/commit-message.entity';
4
+ /**
5
+ * Git implementation of the commit repository
6
+ */
7
+ export declare class GitCommitRepository implements ICommitRepository {
8
+ private readonly COMMAND_SERVICE;
9
+ constructor(commandService: ICommandService);
10
+ /**
11
+ * Create a commit with the given message
12
+ * @param {CommitMessage} message - The commit message
13
+ * @returns {Promise<void>} Promise that resolves when the commit is created
14
+ */
15
+ commit(message: CommitMessage): Promise<void>;
16
+ /**
17
+ * Get the current branch name
18
+ * @returns {Promise<string>} Promise resolving to the current branch name
19
+ */
20
+ getCurrentBranch(): Promise<string>;
21
+ /**
22
+ * Get the staged diff
23
+ * @returns {Promise<string>} Promise resolving to the staged diff
24
+ */
25
+ getStagedDiff(): Promise<string>;
26
+ /**
27
+ * Get the list of staged files
28
+ * @returns {Promise<Array<string>>} Promise resolving to array of staged file paths
29
+ */
30
+ getStagedFiles(): Promise<Array<string>>;
31
+ /**
32
+ * Check if there are staged changes
33
+ * @returns {Promise<boolean>} Promise resolving to true if there are staged changes
34
+ */
35
+ hasStagedChanges(): Promise<boolean>;
36
+ }
@@ -0,0 +1,78 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Git implementation of the commit repository
5
+ */
6
+ class GitCommitRepository {
7
+ COMMAND_SERVICE;
8
+ constructor(commandService) {
9
+ this.COMMAND_SERVICE = commandService;
10
+ }
11
+ /**
12
+ * Create a commit with the given message
13
+ * @param {CommitMessage} message - The commit message
14
+ * @returns {Promise<void>} Promise that resolves when the commit is created
15
+ */
16
+ async commit(message) {
17
+ // Escape the commit message for shell
18
+ const escapedMessage = message.toString().replaceAll("'", String.raw `'\''`);
19
+ // Execute git commit
20
+ await this.COMMAND_SERVICE.execute(`git commit -m '${escapedMessage}'`);
21
+ }
22
+ /**
23
+ * Get the current branch name
24
+ * @returns {Promise<string>} Promise resolving to the current branch name
25
+ */
26
+ async getCurrentBranch() {
27
+ const branch = await this.COMMAND_SERVICE.executeWithOutput("git rev-parse --abbrev-ref HEAD");
28
+ return branch || "main";
29
+ }
30
+ /**
31
+ * Get the staged diff
32
+ * @returns {Promise<string>} Promise resolving to the staged diff
33
+ */
34
+ async getStagedDiff() {
35
+ try {
36
+ // Get a compact diff suitable for LLM context
37
+ const diff = await this.COMMAND_SERVICE.executeWithOutput("git diff --cached --stat -p --no-color");
38
+ // Limit diff size to avoid token limits
39
+ const maxLength = 3000;
40
+ if (diff.length > maxLength) {
41
+ return diff.slice(0, Math.max(0, maxLength)) + "\n... (truncated)";
42
+ }
43
+ return diff;
44
+ }
45
+ catch {
46
+ return "";
47
+ }
48
+ }
49
+ /**
50
+ * Get the list of staged files
51
+ * @returns {Promise<Array<string>>} Promise resolving to array of staged file paths
52
+ */
53
+ async getStagedFiles() {
54
+ try {
55
+ const output = await this.COMMAND_SERVICE.executeWithOutput("git diff --cached --name-only");
56
+ return output.split("\n").filter((file) => file.trim().length > 0);
57
+ }
58
+ catch {
59
+ return [];
60
+ }
61
+ }
62
+ /**
63
+ * Check if there are staged changes
64
+ * @returns {Promise<boolean>} Promise resolving to true if there are staged changes
65
+ */
66
+ async hasStagedChanges() {
67
+ try {
68
+ const output = await this.COMMAND_SERVICE.executeWithOutput("git diff --cached --name-only");
69
+ return output.length > 0;
70
+ }
71
+ catch {
72
+ return false;
73
+ }
74
+ }
75
+ }
76
+
77
+ exports.GitCommitRepository = GitCommitRepository;
78
+ //# sourceMappingURL=git-commit.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-commit.repository.js","sources":["../../../../../src/infrastructure/git/git-commit.repository.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAIA;;AAEG;MACU,mBAAmB,CAAA;AACd,IAAA,eAAe;AAEhC,IAAA,WAAA,CAAY,cAA+B,EAAA;AAC1C,QAAA,IAAI,CAAC,eAAe,GAAG,cAAc;;AAGtC;;;;AAIG;IACH,MAAM,MAAM,CAAC,OAAsB,EAAA;;AAElC,QAAA,MAAM,cAAc,GAAW,OAAO,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAA,CAAA,IAAA,CAAM,CAAC;;QAGnF,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAkB,eAAA,EAAA,cAAc,CAAG,CAAA,CAAA,CAAC;;AAGxE;;;AAGG;AACH,IAAA,MAAM,gBAAgB,GAAA;QACrB,MAAM,MAAM,GAAW,MAAM,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,iCAAiC,CAAC;QAEtG,OAAO,MAAM,IAAI,MAAM;;AAGxB;;;AAGG;AACH,IAAA,MAAM,aAAa,GAAA;AAClB,QAAA,IAAI;;YAEH,MAAM,IAAI,GAAW,MAAM,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,wCAAwC,CAAC;;YAE3G,MAAM,SAAS,GAAW,IAAI;AAE9B,YAAA,IAAI,IAAI,CAAC,MAAM,GAAG,SAAS,EAAE;AAC5B,gBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,GAAG,mBAAmB;;AAGnE,YAAA,OAAO,IAAI;;AACV,QAAA,MAAM;AACP,YAAA,OAAO,EAAE;;;AAIX;;;AAGG;AACH,IAAA,MAAM,cAAc,GAAA;AACnB,QAAA,IAAI;YACH,MAAM,MAAM,GAAW,MAAM,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,+BAA+B,CAAC;YAEpG,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAY,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;;AACzE,QAAA,MAAM;AACP,YAAA,OAAO,EAAE;;;AAIX;;;AAGG;AACH,IAAA,MAAM,gBAAgB,GAAA;AACrB,QAAA,IAAI;YACH,MAAM,MAAM,GAAW,MAAM,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,+BAA+B,CAAC;AAEpG,YAAA,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC;;AACvB,QAAA,MAAM;AACP,YAAA,OAAO,KAAK;;;AAGd;;;;"}
@@ -0,0 +1 @@
1
+ export * from './git-commit.repository';
@@ -0,0 +1,4 @@
1
+ export * from './commit-validator/index';
2
+ export * from './git/index';
3
+ export * from './llm/index';
4
+ export * from './service/index';
@@ -0,0 +1,39 @@
1
+ import type { ILlmPromptContext, ILlmService } from '../../application/interface/llm-service.interface';
2
+ import type { LLMConfiguration } from '../../domain/entity/llm-configuration.entity';
3
+ import { CommitMessage } from '../../domain/entity/commit-message.entity';
4
+ /**
5
+ * Anthropic implementation of the LLM service
6
+ */
7
+ export declare class AnthropicLlmService implements ILlmService {
8
+ /**
9
+ * Generate a commit message using Anthropic Claude
10
+ * @param {ILlmPromptContext} context - The context for generating the commit message
11
+ * @param {LLMConfiguration} configuration - The LLM configuration
12
+ * @returns {Promise<CommitMessage>} Promise resolving to the generated commit message
13
+ */
14
+ generateCommitMessage(context: ILlmPromptContext, configuration: LLMConfiguration): Promise<CommitMessage>;
15
+ /**
16
+ * Check if the service supports the given configuration
17
+ * @param {LLMConfiguration} configuration - The LLM configuration to check
18
+ * @returns {boolean} True if the service supports the configuration
19
+ */
20
+ supports(configuration: LLMConfiguration): boolean;
21
+ /**
22
+ * Build the prompt for Anthropic
23
+ * @param {ILlmPromptContext} context - The prompt context
24
+ * @returns {string} The prompt
25
+ */
26
+ private buildPrompt;
27
+ /**
28
+ * Format commitlint rules into human-readable instructions
29
+ * @param {Record<string, unknown>} rules - The commitlint rules object
30
+ * @returns {string} Formatted rules as string
31
+ */
32
+ private formatCommitlintRules;
33
+ /**
34
+ * Parse the commit message from the LLM response
35
+ * @param {string} content - The response content
36
+ * @returns {CommitMessage} The parsed commit message
37
+ */
38
+ private parseCommitMessage;
39
+ }
@@ -0,0 +1,323 @@
1
+ 'use strict';
2
+
3
+ var Anthropic = require('@anthropic-ai/sdk');
4
+ var numeric_constant = require('../../domain/constant/numeric.constant.js');
5
+ var commitMessage_entity = require('../../domain/entity/commit-message.entity.js');
6
+ var anthropicModel_enum = require('../../domain/enum/anthropic-model.enum.js');
7
+ var commitBody_valueObject = require('../../domain/value-object/commit-body.value-object.js');
8
+ var commitHeader_valueObject = require('../../domain/value-object/commit-header.value-object.js');
9
+
10
+ /**
11
+ * Anthropic implementation of the LLM service
12
+ */
13
+ class AnthropicLlmService {
14
+ /**
15
+ * Generate a commit message using Anthropic Claude
16
+ * @param {ILlmPromptContext} context - The context for generating the commit message
17
+ * @param {LLMConfiguration} configuration - The LLM configuration
18
+ * @returns {Promise<CommitMessage>} Promise resolving to the generated commit message
19
+ */
20
+ async generateCommitMessage(context, configuration) {
21
+ const anthropic = new Anthropic({
22
+ apiKey: configuration.getApiKey().getValue(),
23
+ });
24
+ const prompt = this.buildPrompt(context);
25
+ const response = await anthropic.messages.create({
26
+ max_tokens: numeric_constant.OPENAI_MAX_TOKENS,
27
+ messages: [
28
+ {
29
+ content: prompt,
30
+ role: "user",
31
+ },
32
+ ],
33
+ model: configuration.getModel() ?? anthropicModel_enum.EAnthropicModel.CLAUDE_SONNET_4,
34
+ temperature: numeric_constant.OPENAI_TEMPERATURE,
35
+ });
36
+ const content = response.content[0];
37
+ if (!content || content.type !== "text") {
38
+ throw new Error("No response from Anthropic");
39
+ }
40
+ // Type guard ensures content is TextBlock here
41
+ return this.parseCommitMessage(content.text);
42
+ }
43
+ /**
44
+ * Check if the service supports the given configuration
45
+ * @param {LLMConfiguration} configuration - The LLM configuration to check
46
+ * @returns {boolean} True if the service supports the configuration
47
+ */
48
+ supports(configuration) {
49
+ return configuration.getProvider() === "anthropic";
50
+ }
51
+ /**
52
+ * Build the prompt for Anthropic
53
+ * @param {ILlmPromptContext} context - The prompt context
54
+ * @returns {string} The prompt
55
+ */
56
+ buildPrompt(context) {
57
+ let prompt = "";
58
+ // Check if this is a fix operation
59
+ const isFixing = !!(context.rules && typeof context.rules === "object" && !Array.isArray(context.rules) && context.rules.validationErrors && context.rules.previousAttempt && context.diff === undefined);
60
+ if (isFixing) {
61
+ prompt = "Fix the following commit message to comply with validation rules. Maintain the original meaning and content while fixing only the format issues.\n\n";
62
+ }
63
+ else {
64
+ prompt = "Generate a conventional commit message based on the following context and rules.\n\n";
65
+ }
66
+ // Add validation error context if present
67
+ if (context.rules?.validationErrors && Array.isArray(context.rules.validationErrors)) {
68
+ prompt += "IMPORTANT: The previous commit message had validation errors that must be fixed:\n";
69
+ for (const error of context.rules.validationErrors) {
70
+ prompt += `- ${error}\n`;
71
+ }
72
+ prompt += "\nMake sure the new commit message fixes all these errors.\n\n";
73
+ }
74
+ // Include previous attempt
75
+ if (context.rules?.previousAttempt && typeof context.rules.previousAttempt === "string") {
76
+ if (isFixing) {
77
+ prompt += `Commit message to fix:\n${context.rules.previousAttempt}\n\n`;
78
+ }
79
+ else {
80
+ prompt += `Previous attempt (with errors):\n${context.rules.previousAttempt}\n\n`;
81
+ }
82
+ }
83
+ // Add all commitlint rules
84
+ if (context.rules && typeof context.rules === "object" && !Array.isArray(context.rules)) {
85
+ const formattedRules = this.formatCommitlintRules(context.rules);
86
+ if (formattedRules) {
87
+ prompt += "Commit message rules:\n" + formattedRules + "\n\n";
88
+ }
89
+ }
90
+ if (context.typeEnum && context.typeEnum.length > 0) {
91
+ prompt += `Available commit types: ${context.typeEnum.join(", ")}\n`;
92
+ }
93
+ if (context.typeDescriptions) {
94
+ prompt += "\nType descriptions:\n";
95
+ for (const [type, desc] of Object.entries(context.typeDescriptions)) {
96
+ const emoji = desc.emoji ? ` ${desc.emoji}` : "";
97
+ prompt += `- ${type}: ${desc.description}${emoji}\n`;
98
+ }
99
+ }
100
+ if (context.subject.maxLength) {
101
+ prompt += `\nSubject must be at most ${context.subject.maxLength} characters.`;
102
+ }
103
+ if (context.subject.minLength) {
104
+ prompt += `\nSubject must be at least ${context.subject.minLength} characters.`;
105
+ }
106
+ // Extract body/footer line length rules
107
+ let bodyMaxLength;
108
+ let footerMaxLength;
109
+ if (context.rules && typeof context.rules === "object" && !Array.isArray(context.rules)) {
110
+ // Extract body-max-line-length
111
+ const bodyRule = context.rules["body-max-line-length"];
112
+ if (Array.isArray(bodyRule) && bodyRule.length >= numeric_constant.RULE_CONFIG_LENGTH && bodyRule[0] > numeric_constant.VALIDATION_LEVEL_DISABLED && typeof bodyRule[numeric_constant.RULE_VALUE_INDEX] === "number") {
113
+ bodyMaxLength = bodyRule[numeric_constant.RULE_VALUE_INDEX];
114
+ }
115
+ // Extract footer-max-line-length
116
+ const footerRule = context.rules["footer-max-line-length"];
117
+ if (Array.isArray(footerRule) && footerRule.length >= numeric_constant.RULE_CONFIG_LENGTH && footerRule[0] > numeric_constant.VALIDATION_LEVEL_DISABLED && typeof footerRule[numeric_constant.RULE_VALUE_INDEX] === "number") {
118
+ footerMaxLength = footerRule[numeric_constant.RULE_VALUE_INDEX];
119
+ }
120
+ }
121
+ // Add body formatting rules if line length rules exist
122
+ if (bodyMaxLength || footerMaxLength) {
123
+ prompt += "\n\nIMPORTANT: Body formatting rules:";
124
+ prompt += "\n- The 'body' field in the JSON corresponds to the commit message body/footer";
125
+ if (bodyMaxLength) {
126
+ prompt += `\n- Each line in the body must be wrapped to not exceed ${bodyMaxLength} characters`;
127
+ }
128
+ if (footerMaxLength) {
129
+ prompt += `\n- Footer lines must be wrapped to not exceed ${footerMaxLength} characters`;
130
+ }
131
+ prompt += "\n- The 'breaking' field also follows the same line length rules";
132
+ prompt += "\n- Use line breaks (\\n) to wrap long lines";
133
+ prompt += "\n- Empty lines between paragraphs are allowed";
134
+ }
135
+ // Only include changes if we're generating (not fixing)
136
+ if (!isFixing) {
137
+ prompt += "\n\nChanges:\n";
138
+ if (context.diff) {
139
+ prompt += `Diff:\n${context.diff}\n\n`;
140
+ }
141
+ if (context.files) {
142
+ prompt += `Files changed:\n${context.files}\n\n`;
143
+ }
144
+ }
145
+ if (context.rules && typeof context.rules === "object" && !Array.isArray(context.rules) && context.rules.instructions && typeof context.rules.instructions === "string") {
146
+ prompt += `${context.rules.instructions}\n\n`;
147
+ }
148
+ prompt += "\n\nGenerate a commit message in the following JSON format:\n";
149
+ prompt += '{\n "type": "commit type",\n "scope": "optional scope",\n "subject": "commit subject",\n "body": "optional body",\n "breaking": "optional breaking change description"\n}';
150
+ prompt += "\n\nRespond ONLY with the JSON object, no additional text, no markdown code blocks, just the raw JSON.";
151
+ prompt += "\n\nIMPORTANT: Follow ALL the rules listed above. The commit message MUST pass validation.";
152
+ return prompt;
153
+ }
154
+ /**
155
+ * Format commitlint rules into human-readable instructions
156
+ * @param {Record<string, unknown>} rules - The commitlint rules object
157
+ * @returns {string} Formatted rules as string
158
+ */
159
+ formatCommitlintRules(rules) {
160
+ const formattedRules = [];
161
+ for (const [ruleName, ruleConfig] of Object.entries(rules)) {
162
+ if (!Array.isArray(ruleConfig) || ruleConfig.length < numeric_constant.MIN_RULE_LENGTH)
163
+ continue;
164
+ const [level, condition, value] = ruleConfig;
165
+ if (level === numeric_constant.VALIDATION_LEVEL_DISABLED)
166
+ continue; // Skip disabled rules
167
+ const isError = level === numeric_constant.VALIDATION_LEVEL_ERROR;
168
+ const prefix = isError ? "MUST" : "SHOULD";
169
+ const conditionString = String(condition);
170
+ switch (ruleName) {
171
+ case "body-max-line-length": {
172
+ if (typeof value === "number") {
173
+ formattedRules.push(`Body lines ${prefix} be at most ${value} characters (wrap long lines with line breaks)`);
174
+ }
175
+ break;
176
+ }
177
+ case "footer-max-line-length": {
178
+ if (typeof value === "number") {
179
+ formattedRules.push(`Footer lines ${prefix} be at most ${value} characters (Note: the 'body' field is treated as footer, wrap long lines)`);
180
+ }
181
+ break;
182
+ }
183
+ case "header-max-length": {
184
+ if (typeof value === "number") {
185
+ formattedRules.push(`Header (type(scope): subject) ${prefix} be at most ${value} characters`);
186
+ }
187
+ break;
188
+ }
189
+ case "scope-case": {
190
+ if (Array.isArray(value)) {
191
+ formattedRules.push(`Scope ${prefix} be in ${value.join(" or ")} case`);
192
+ }
193
+ break;
194
+ }
195
+ case "scope-enum": {
196
+ if (conditionString === "always" && Array.isArray(value)) {
197
+ formattedRules.push(`Scope ${prefix} be one of: ${value.join(", ")}`);
198
+ }
199
+ break;
200
+ }
201
+ case "subject-case": {
202
+ if (Array.isArray(value)) {
203
+ formattedRules.push(`Subject ${prefix} be in ${value.join(" or ")} case`);
204
+ }
205
+ break;
206
+ }
207
+ case "subject-empty": {
208
+ formattedRules.push(`Subject ${prefix} ${conditionString === "never" ? "not be empty" : "be empty"}`);
209
+ break;
210
+ }
211
+ case "subject-full-stop": {
212
+ formattedRules.push(`Subject ${prefix} ${conditionString === "never" ? "not end with a period" : "end with a period"}`);
213
+ break;
214
+ }
215
+ case "subject-max-length": {
216
+ if (typeof value === "number") {
217
+ formattedRules.push(`Subject ${prefix} be at most ${value} characters`);
218
+ }
219
+ break;
220
+ }
221
+ case "subject-min-length": {
222
+ if (typeof value === "number") {
223
+ formattedRules.push(`Subject ${prefix} be at least ${value} characters`);
224
+ }
225
+ break;
226
+ }
227
+ case "type-case": {
228
+ if (Array.isArray(value)) {
229
+ formattedRules.push(`Type ${prefix} be in ${value.join(" or ")} case`);
230
+ }
231
+ break;
232
+ }
233
+ case "type-enum": {
234
+ if (conditionString === "always" && Array.isArray(value)) {
235
+ formattedRules.push(`Type ${prefix} be one of: ${value.join(", ")}`);
236
+ }
237
+ break;
238
+ }
239
+ default: {
240
+ // Handle other rules generically
241
+ if (condition && value !== undefined) {
242
+ formattedRules.push(`${ruleName}: ${conditionString} ${JSON.stringify(value)}`);
243
+ }
244
+ }
245
+ }
246
+ }
247
+ return formattedRules.join("\n");
248
+ }
249
+ /**
250
+ * Parse the commit message from the LLM response
251
+ * @param {string} content - The response content
252
+ * @returns {CommitMessage} The parsed commit message
253
+ */
254
+ parseCommitMessage(content) {
255
+ try {
256
+ // Clean up the content - remove markdown code blocks if present
257
+ let cleanContent = content.trim();
258
+ // Remove markdown code blocks - fixed regex
259
+ cleanContent = cleanContent.replace(/^```(?:json)?\s*/i, "").replace(/```$/m, "");
260
+ // Try to extract JSON if it's wrapped in other text - use safer approach
261
+ const firstBrace = cleanContent.indexOf("{");
262
+ const lastBrace = cleanContent.lastIndexOf("}");
263
+ if (firstBrace !== -1 && lastBrace !== -1 && lastBrace > firstBrace) {
264
+ cleanContent = cleanContent.slice(firstBrace, lastBrace + 1);
265
+ }
266
+ const parsed = JSON.parse(cleanContent);
267
+ // Validate required fields
268
+ if (!parsed.type || !parsed.subject) {
269
+ throw new Error("Missing required fields: type and subject");
270
+ }
271
+ const header = new commitHeader_valueObject.CommitHeader(parsed.type, parsed.subject, parsed.scope);
272
+ // Strip "BREAKING CHANGE:" prefix if included in the breaking field
273
+ let breakingChange = parsed.breaking;
274
+ if (breakingChange?.startsWith("BREAKING CHANGE:")) {
275
+ breakingChange = breakingChange.slice("BREAKING CHANGE:".length).trim();
276
+ }
277
+ const body = new commitBody_valueObject.CommitBody(parsed.body, breakingChange);
278
+ return new commitMessage_entity.CommitMessage(header, body);
279
+ }
280
+ catch {
281
+ // Fallback: try to parse as plain text
282
+ const lines = content.trim().split("\n");
283
+ if (lines.length === 0 || !lines[0]) {
284
+ throw new Error("No content to parse");
285
+ }
286
+ const headerLine = lines[0];
287
+ // Parse header: type(scope): subject
288
+ const headerMatch = /^(\w+)(?:\(([^)]+)\))?: (.+)$/.exec(headerLine);
289
+ if (!headerMatch) {
290
+ throw new Error(`Invalid commit message format. Could not parse: "${headerLine}"`);
291
+ }
292
+ const HEADER_TYPE_INDEX = 1;
293
+ const HEADER_SCOPE_INDEX = 2;
294
+ const HEADER_SUBJECT_INDEX = 3;
295
+ const type = headerMatch[HEADER_TYPE_INDEX];
296
+ const scope = headerMatch[HEADER_SCOPE_INDEX];
297
+ const subject = headerMatch[HEADER_SUBJECT_INDEX];
298
+ if (!type || !subject) {
299
+ throw new Error("Missing required fields: type and subject");
300
+ }
301
+ const header = new commitHeader_valueObject.CommitHeader(type, subject, scope);
302
+ // Parse body and breaking changes
303
+ let bodyContent = "";
304
+ let breakingChange;
305
+ for (let index = 1; index < lines.length; index++) {
306
+ const line = lines[index];
307
+ if (!line)
308
+ continue;
309
+ if (line.startsWith("BREAKING CHANGE:")) {
310
+ breakingChange = line.slice("BREAKING CHANGE:".length).trim();
311
+ }
312
+ else if (line.trim()) {
313
+ bodyContent += line + "\n";
314
+ }
315
+ }
316
+ const body = new commitBody_valueObject.CommitBody(bodyContent.trim() || undefined, breakingChange);
317
+ return new commitMessage_entity.CommitMessage(header, body);
318
+ }
319
+ }
320
+ }
321
+
322
+ exports.AnthropicLlmService = AnthropicLlmService;
323
+ //# sourceMappingURL=anthropic-llm.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic-llm.service.js","sources":["../../../../../src/infrastructure/llm/anthropic-llm.service.ts"],"sourcesContent":[null],"names":["OPENAI_MAX_TOKENS","EAnthropicModel","OPENAI_TEMPERATURE","RULE_CONFIG_LENGTH","VALIDATION_LEVEL_DISABLED","RULE_VALUE_INDEX","MIN_RULE_LENGTH","VALIDATION_LEVEL_ERROR","CommitHeader","CommitBody","CommitMessage"],"mappings":"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"}