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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (536) hide show
  1. package/README.md +245 -59
  2. package/dist/cjs/application/constant/config-file-directory.constant.d.ts +5 -0
  3. package/dist/cjs/application/constant/config-file-directory.constant.d.ts.map +1 -0
  4. package/dist/cjs/application/constant/config-file-directory.constant.js +9 -0
  5. package/dist/cjs/application/constant/config-file-directory.constant.js.map +1 -0
  6. package/dist/cjs/application/constant/config-module-name.constant.d.ts +5 -0
  7. package/dist/cjs/application/constant/config-module-name.constant.d.ts.map +1 -0
  8. package/dist/cjs/application/constant/config-module-name.constant.js +9 -0
  9. package/dist/cjs/application/constant/config-module-name.constant.js.map +1 -0
  10. package/dist/cjs/application/constant/index.d.ts +3 -0
  11. package/dist/cjs/application/constant/index.d.ts.map +1 -0
  12. package/dist/cjs/application/index.d.ts +3 -0
  13. package/dist/cjs/application/index.d.ts.map +1 -0
  14. package/dist/cjs/application/interface/cli-interface-service-select-options.interface.d.ts +22 -0
  15. package/dist/cjs/application/interface/cli-interface-service-select-options.interface.d.ts.map +1 -0
  16. package/dist/cjs/application/interface/cli-interface-service.interface.d.ts +106 -0
  17. package/dist/cjs/application/interface/cli-interface-service.interface.d.ts.map +1 -0
  18. package/dist/cjs/application/interface/command-service.interface.d.ts +20 -0
  19. package/dist/cjs/application/interface/command-service.interface.d.ts.map +1 -0
  20. package/dist/cjs/application/interface/commit-repository.interface.d.ts +33 -0
  21. package/dist/cjs/application/interface/commit-repository.interface.d.ts.map +1 -0
  22. package/dist/cjs/application/interface/commit-validator.interface.d.ts +30 -0
  23. package/dist/cjs/application/interface/commit-validator.interface.d.ts.map +1 -0
  24. package/dist/cjs/application/interface/config-service.interface.d.ts +48 -0
  25. package/dist/cjs/application/interface/config-service.interface.d.ts.map +1 -0
  26. package/dist/cjs/application/interface/config.interface.d.ts +28 -0
  27. package/dist/cjs/application/interface/config.interface.d.ts.map +1 -0
  28. package/dist/cjs/application/interface/file-system-service.interface.d.ts +62 -0
  29. package/dist/cjs/application/interface/file-system-service.interface.d.ts.map +1 -0
  30. package/dist/cjs/application/interface/index.d.ts +10 -0
  31. package/dist/cjs/application/interface/index.d.ts.map +1 -0
  32. package/dist/cjs/application/interface/llm-service.interface.d.ts +44 -0
  33. package/dist/cjs/application/interface/llm-service.interface.d.ts.map +1 -0
  34. package/dist/cjs/application/use-case/configure-llm.use-case.d.ts +39 -0
  35. package/dist/cjs/application/use-case/configure-llm.use-case.d.ts.map +1 -0
  36. package/dist/cjs/application/use-case/configure-llm.use-case.js +367 -0
  37. package/dist/cjs/application/use-case/configure-llm.use-case.js.map +1 -0
  38. package/dist/cjs/application/use-case/generate-commit-message.use-case.d.ts +19 -0
  39. package/dist/cjs/application/use-case/generate-commit-message.use-case.d.ts.map +1 -0
  40. package/dist/cjs/application/use-case/generate-commit-message.use-case.js +49 -0
  41. package/dist/cjs/application/use-case/generate-commit-message.use-case.js.map +1 -0
  42. package/dist/cjs/application/use-case/index.d.ts +5 -0
  43. package/dist/cjs/application/use-case/index.d.ts.map +1 -0
  44. package/dist/cjs/application/use-case/manual-commit.use-case.d.ts +17 -0
  45. package/dist/cjs/application/use-case/manual-commit.use-case.d.ts.map +1 -0
  46. package/dist/cjs/application/use-case/manual-commit.use-case.js +79 -0
  47. package/dist/cjs/application/use-case/manual-commit.use-case.js.map +1 -0
  48. package/dist/cjs/application/use-case/validate-commit-message.use-case.d.ts +27 -0
  49. package/dist/cjs/application/use-case/validate-commit-message.use-case.d.ts.map +1 -0
  50. package/dist/cjs/application/use-case/validate-commit-message.use-case.js +75 -0
  51. package/dist/cjs/application/use-case/validate-commit-message.use-case.js.map +1 -0
  52. package/dist/cjs/domain/constant/index.d.ts +2 -0
  53. package/dist/cjs/domain/constant/index.d.ts.map +1 -0
  54. package/dist/cjs/domain/constant/numeric.constant.d.ts +26 -0
  55. package/dist/cjs/domain/constant/numeric.constant.d.ts.map +1 -0
  56. package/dist/cjs/domain/constant/numeric.constant.js +42 -0
  57. package/dist/cjs/domain/constant/numeric.constant.js.map +1 -0
  58. package/dist/cjs/domain/entity/commit-message.entity.d.ts +35 -0
  59. package/dist/cjs/domain/entity/commit-message.entity.d.ts.map +1 -0
  60. package/dist/cjs/domain/entity/commit-message.entity.js +56 -0
  61. package/dist/cjs/domain/entity/commit-message.entity.js.map +1 -0
  62. package/dist/cjs/domain/entity/index.d.ts +3 -0
  63. package/dist/cjs/domain/entity/index.d.ts.map +1 -0
  64. package/dist/cjs/domain/entity/llm-configuration.entity.d.ts +66 -0
  65. package/dist/cjs/domain/entity/llm-configuration.entity.d.ts.map +1 -0
  66. package/dist/cjs/domain/entity/llm-configuration.entity.js +96 -0
  67. package/dist/cjs/domain/entity/llm-configuration.entity.js.map +1 -0
  68. package/dist/cjs/domain/enum/anthropic-model.enum.d.ts +19 -0
  69. package/dist/cjs/domain/enum/anthropic-model.enum.d.ts.map +1 -0
  70. package/dist/cjs/domain/enum/anthropic-model.enum.js +26 -0
  71. package/dist/cjs/domain/enum/anthropic-model.enum.js.map +1 -0
  72. package/dist/cjs/domain/enum/aws-bedrock-model.enum.d.ts +34 -0
  73. package/dist/cjs/domain/enum/aws-bedrock-model.enum.d.ts.map +1 -0
  74. package/dist/cjs/domain/enum/aws-bedrock-model.enum.js +47 -0
  75. package/dist/cjs/domain/enum/aws-bedrock-model.enum.js.map +1 -0
  76. package/dist/cjs/domain/enum/azure-openai-model.enum.d.ts +18 -0
  77. package/dist/cjs/domain/enum/azure-openai-model.enum.d.ts.map +1 -0
  78. package/dist/cjs/domain/enum/azure-openai-model.enum.js +26 -0
  79. package/dist/cjs/domain/enum/azure-openai-model.enum.js.map +1 -0
  80. package/dist/cjs/domain/enum/commit-mode.enum.d.ts +8 -0
  81. package/dist/cjs/domain/enum/commit-mode.enum.d.ts.map +1 -0
  82. package/dist/cjs/domain/enum/commit-mode.enum.js +11 -0
  83. package/dist/cjs/domain/enum/commit-mode.enum.js.map +1 -0
  84. package/dist/cjs/domain/enum/google-model.enum.d.ts +17 -0
  85. package/dist/cjs/domain/enum/google-model.enum.d.ts.map +1 -0
  86. package/dist/cjs/domain/enum/google-model.enum.js +25 -0
  87. package/dist/cjs/domain/enum/google-model.enum.js.map +1 -0
  88. package/dist/cjs/domain/enum/index.d.ts +10 -0
  89. package/dist/cjs/domain/enum/index.d.ts.map +1 -0
  90. package/dist/cjs/domain/enum/llm-provider.enum.d.ts +12 -0
  91. package/dist/cjs/domain/enum/llm-provider.enum.d.ts.map +1 -0
  92. package/dist/cjs/domain/enum/llm-provider.enum.js +15 -0
  93. package/dist/cjs/domain/enum/llm-provider.enum.js.map +1 -0
  94. package/dist/cjs/domain/enum/log-level.enum.d.ts +10 -0
  95. package/dist/cjs/domain/enum/log-level.enum.d.ts.map +1 -0
  96. package/dist/cjs/domain/enum/log-level.enum.js +13 -0
  97. package/dist/cjs/domain/enum/log-level.enum.js.map +1 -0
  98. package/dist/cjs/domain/enum/ollama-model.enum.d.ts +25 -0
  99. package/dist/cjs/domain/enum/ollama-model.enum.d.ts.map +1 -0
  100. package/dist/cjs/domain/enum/ollama-model.enum.js +30 -0
  101. package/dist/cjs/domain/enum/ollama-model.enum.js.map +1 -0
  102. package/dist/cjs/domain/enum/openai-model.enum.d.ts +26 -0
  103. package/dist/cjs/domain/enum/openai-model.enum.d.ts.map +1 -0
  104. package/dist/cjs/domain/enum/openai-model.enum.js +35 -0
  105. package/dist/cjs/domain/enum/openai-model.enum.js.map +1 -0
  106. package/dist/cjs/domain/index.d.ts +4 -0
  107. package/dist/cjs/domain/index.d.ts.map +1 -0
  108. package/dist/cjs/domain/value-object/api-key.value-object.d.ts +27 -0
  109. package/dist/cjs/domain/value-object/api-key.value-object.d.ts.map +1 -0
  110. package/dist/cjs/domain/value-object/api-key.value-object.js +49 -0
  111. package/dist/cjs/domain/value-object/api-key.value-object.js.map +1 -0
  112. package/dist/cjs/domain/value-object/commit-body.value-object.d.ts +33 -0
  113. package/dist/cjs/domain/value-object/commit-body.value-object.d.ts.map +1 -0
  114. package/dist/cjs/domain/value-object/commit-body.value-object.js +59 -0
  115. package/dist/cjs/domain/value-object/commit-body.value-object.js.map +1 -0
  116. package/dist/cjs/domain/value-object/commit-header.value-object.d.ts +30 -0
  117. package/dist/cjs/domain/value-object/commit-header.value-object.d.ts.map +1 -0
  118. package/dist/cjs/domain/value-object/commit-header.value-object.js +57 -0
  119. package/dist/cjs/domain/value-object/commit-header.value-object.js.map +1 -0
  120. package/dist/cjs/domain/value-object/index.d.ts +4 -0
  121. package/dist/cjs/domain/value-object/index.d.ts.map +1 -0
  122. package/dist/cjs/index.d.ts +4 -13
  123. package/dist/cjs/index.d.ts.map +1 -1
  124. package/dist/cjs/index.js +73 -85
  125. package/dist/cjs/index.js.map +1 -1
  126. package/dist/cjs/infrastructure/commit-validator/commitlint-validator.service.d.ts +39 -0
  127. package/dist/cjs/infrastructure/commit-validator/commitlint-validator.service.d.ts.map +1 -0
  128. package/dist/cjs/infrastructure/commit-validator/commitlint-validator.service.js +207 -0
  129. package/dist/cjs/infrastructure/commit-validator/commitlint-validator.service.js.map +1 -0
  130. package/dist/cjs/infrastructure/commit-validator/index.d.ts +2 -0
  131. package/dist/cjs/infrastructure/commit-validator/index.d.ts.map +1 -0
  132. package/dist/cjs/infrastructure/di/container.d.ts +18 -0
  133. package/dist/cjs/infrastructure/di/container.d.ts.map +1 -0
  134. package/dist/cjs/infrastructure/di/container.js +76 -0
  135. package/dist/cjs/infrastructure/di/container.js.map +1 -0
  136. package/dist/cjs/infrastructure/di/index.d.ts +2 -0
  137. package/dist/cjs/infrastructure/di/index.d.ts.map +1 -0
  138. package/dist/cjs/infrastructure/git/git-commit.repository.d.ts +37 -0
  139. package/dist/cjs/infrastructure/git/git-commit.repository.d.ts.map +1 -0
  140. package/dist/cjs/infrastructure/git/git-commit.repository.js +78 -0
  141. package/dist/cjs/infrastructure/git/git-commit.repository.js.map +1 -0
  142. package/dist/cjs/infrastructure/git/index.d.ts +2 -0
  143. package/dist/cjs/infrastructure/git/index.d.ts.map +1 -0
  144. package/dist/cjs/infrastructure/index.d.ts +5 -0
  145. package/dist/cjs/infrastructure/index.d.ts.map +1 -0
  146. package/dist/cjs/infrastructure/llm/anthropic-llm.service.d.ts +40 -0
  147. package/dist/cjs/infrastructure/llm/anthropic-llm.service.d.ts.map +1 -0
  148. package/dist/cjs/infrastructure/llm/anthropic-llm.service.js +310 -0
  149. package/dist/cjs/infrastructure/llm/anthropic-llm.service.js.map +1 -0
  150. package/dist/cjs/infrastructure/llm/aws-bedrock-llm.service.d.ts +61 -0
  151. package/dist/cjs/infrastructure/llm/aws-bedrock-llm.service.d.ts.map +1 -0
  152. package/dist/cjs/infrastructure/llm/aws-bedrock-llm.service.js +505 -0
  153. package/dist/cjs/infrastructure/llm/aws-bedrock-llm.service.js.map +1 -0
  154. package/dist/cjs/infrastructure/llm/azure-openai-llm.service.d.ts +46 -0
  155. package/dist/cjs/infrastructure/llm/azure-openai-llm.service.d.ts.map +1 -0
  156. package/dist/cjs/infrastructure/llm/azure-openai-llm.service.js +338 -0
  157. package/dist/cjs/infrastructure/llm/azure-openai-llm.service.js.map +1 -0
  158. package/dist/cjs/infrastructure/llm/google-llm.service.d.ts +46 -0
  159. package/dist/cjs/infrastructure/llm/google-llm.service.d.ts.map +1 -0
  160. package/dist/cjs/infrastructure/llm/google-llm.service.js +322 -0
  161. package/dist/cjs/infrastructure/llm/google-llm.service.js.map +1 -0
  162. package/dist/cjs/infrastructure/llm/index.d.ts +7 -0
  163. package/dist/cjs/infrastructure/llm/index.d.ts.map +1 -0
  164. package/dist/cjs/infrastructure/llm/ollama-llm.service.d.ts +46 -0
  165. package/dist/cjs/infrastructure/llm/ollama-llm.service.d.ts.map +1 -0
  166. package/dist/cjs/infrastructure/llm/ollama-llm.service.js +369 -0
  167. package/dist/cjs/infrastructure/llm/ollama-llm.service.js.map +1 -0
  168. package/dist/cjs/infrastructure/llm/openai-llm.service.d.ts +46 -0
  169. package/dist/cjs/infrastructure/llm/openai-llm.service.d.ts.map +1 -0
  170. package/dist/cjs/infrastructure/llm/openai-llm.service.js +326 -0
  171. package/dist/cjs/infrastructure/llm/openai-llm.service.js.map +1 -0
  172. package/dist/cjs/infrastructure/service/cosmic-config.service.d.ts +65 -0
  173. package/dist/cjs/infrastructure/service/cosmic-config.service.d.ts.map +1 -0
  174. package/dist/cjs/infrastructure/service/cosmic-config.service.js +174 -0
  175. package/dist/cjs/infrastructure/service/cosmic-config.service.js.map +1 -0
  176. package/dist/cjs/infrastructure/service/index.d.ts +5 -0
  177. package/dist/cjs/infrastructure/service/index.d.ts.map +1 -0
  178. package/dist/cjs/infrastructure/service/node-command.service.d.ts +44 -0
  179. package/dist/cjs/infrastructure/service/node-command.service.d.ts.map +1 -0
  180. package/dist/cjs/infrastructure/service/node-command.service.js +152 -0
  181. package/dist/cjs/infrastructure/service/node-command.service.js.map +1 -0
  182. package/dist/cjs/infrastructure/service/node-file-system.service.d.ts +63 -0
  183. package/dist/cjs/infrastructure/service/node-file-system.service.d.ts.map +1 -0
  184. package/dist/cjs/infrastructure/service/node-file-system.service.js +102 -0
  185. package/dist/cjs/infrastructure/service/node-file-system.service.js.map +1 -0
  186. package/dist/cjs/infrastructure/service/prompts-cli-interface.service.d.ts +115 -0
  187. package/dist/cjs/infrastructure/service/prompts-cli-interface.service.d.ts.map +1 -0
  188. package/dist/cjs/infrastructure/service/prompts-cli-interface.service.js +315 -0
  189. package/dist/cjs/infrastructure/service/prompts-cli-interface.service.js.map +1 -0
  190. package/dist/cjs/presentation/commitizen.adapter.d.ts +24 -0
  191. package/dist/cjs/presentation/commitizen.adapter.d.ts.map +1 -0
  192. package/dist/cjs/presentation/commitizen.adapter.js +292 -0
  193. package/dist/cjs/presentation/commitizen.adapter.js.map +1 -0
  194. package/dist/cjs/presentation/index.d.ts +2 -0
  195. package/dist/cjs/presentation/index.d.ts.map +1 -0
  196. package/dist/esm/application/constant/config-file-directory.constant.d.ts +5 -0
  197. package/dist/esm/application/constant/config-file-directory.constant.d.ts.map +1 -0
  198. package/dist/esm/application/constant/config-file-directory.constant.js +7 -0
  199. package/dist/esm/application/constant/config-file-directory.constant.js.map +1 -0
  200. package/dist/esm/application/constant/config-module-name.constant.d.ts +5 -0
  201. package/dist/esm/application/constant/config-module-name.constant.d.ts.map +1 -0
  202. package/dist/esm/application/constant/config-module-name.constant.js +7 -0
  203. package/dist/esm/application/constant/config-module-name.constant.js.map +1 -0
  204. package/dist/esm/application/constant/index.d.ts +3 -0
  205. package/dist/esm/application/constant/index.d.ts.map +1 -0
  206. package/dist/esm/application/index.d.ts +3 -0
  207. package/dist/esm/application/index.d.ts.map +1 -0
  208. package/dist/esm/application/interface/cli-interface-service-select-options.interface.d.ts +22 -0
  209. package/dist/esm/application/interface/cli-interface-service-select-options.interface.d.ts.map +1 -0
  210. package/dist/esm/application/interface/cli-interface-service.interface.d.ts +106 -0
  211. package/dist/esm/application/interface/cli-interface-service.interface.d.ts.map +1 -0
  212. package/dist/esm/application/interface/command-service.interface.d.ts +20 -0
  213. package/dist/esm/application/interface/command-service.interface.d.ts.map +1 -0
  214. package/dist/esm/application/interface/commit-repository.interface.d.ts +33 -0
  215. package/dist/esm/application/interface/commit-repository.interface.d.ts.map +1 -0
  216. package/dist/esm/application/interface/commit-validator.interface.d.ts +30 -0
  217. package/dist/esm/application/interface/commit-validator.interface.d.ts.map +1 -0
  218. package/dist/esm/application/interface/config-service.interface.d.ts +48 -0
  219. package/dist/esm/application/interface/config-service.interface.d.ts.map +1 -0
  220. package/dist/esm/application/interface/config.interface.d.ts +28 -0
  221. package/dist/esm/application/interface/config.interface.d.ts.map +1 -0
  222. package/dist/esm/application/interface/file-system-service.interface.d.ts +62 -0
  223. package/dist/esm/application/interface/file-system-service.interface.d.ts.map +1 -0
  224. package/dist/esm/application/interface/index.d.ts +10 -0
  225. package/dist/esm/application/interface/index.d.ts.map +1 -0
  226. package/dist/esm/application/interface/llm-service.interface.d.ts +44 -0
  227. package/dist/esm/application/interface/llm-service.interface.d.ts.map +1 -0
  228. package/dist/esm/application/use-case/configure-llm.use-case.d.ts +39 -0
  229. package/dist/esm/application/use-case/configure-llm.use-case.d.ts.map +1 -0
  230. package/dist/esm/application/use-case/configure-llm.use-case.js +365 -0
  231. package/dist/esm/application/use-case/configure-llm.use-case.js.map +1 -0
  232. package/dist/esm/application/use-case/generate-commit-message.use-case.d.ts +19 -0
  233. package/dist/esm/application/use-case/generate-commit-message.use-case.d.ts.map +1 -0
  234. package/dist/esm/application/use-case/generate-commit-message.use-case.js +47 -0
  235. package/dist/esm/application/use-case/generate-commit-message.use-case.js.map +1 -0
  236. package/dist/esm/application/use-case/index.d.ts +5 -0
  237. package/dist/esm/application/use-case/index.d.ts.map +1 -0
  238. package/dist/esm/application/use-case/manual-commit.use-case.d.ts +17 -0
  239. package/dist/esm/application/use-case/manual-commit.use-case.d.ts.map +1 -0
  240. package/dist/esm/application/use-case/manual-commit.use-case.js +77 -0
  241. package/dist/esm/application/use-case/manual-commit.use-case.js.map +1 -0
  242. package/dist/esm/application/use-case/validate-commit-message.use-case.d.ts +27 -0
  243. package/dist/esm/application/use-case/validate-commit-message.use-case.d.ts.map +1 -0
  244. package/dist/esm/application/use-case/validate-commit-message.use-case.js +73 -0
  245. package/dist/esm/application/use-case/validate-commit-message.use-case.js.map +1 -0
  246. package/dist/esm/domain/constant/index.d.ts +2 -0
  247. package/dist/esm/domain/constant/index.d.ts.map +1 -0
  248. package/dist/esm/domain/constant/numeric.constant.d.ts +26 -0
  249. package/dist/esm/domain/constant/numeric.constant.d.ts.map +1 -0
  250. package/dist/esm/domain/constant/numeric.constant.js +26 -0
  251. package/dist/esm/domain/constant/numeric.constant.js.map +1 -0
  252. package/dist/esm/domain/entity/commit-message.entity.d.ts +35 -0
  253. package/dist/esm/domain/entity/commit-message.entity.d.ts.map +1 -0
  254. package/dist/esm/domain/entity/commit-message.entity.js +54 -0
  255. package/dist/esm/domain/entity/commit-message.entity.js.map +1 -0
  256. package/dist/esm/domain/entity/index.d.ts +3 -0
  257. package/dist/esm/domain/entity/index.d.ts.map +1 -0
  258. package/dist/esm/domain/entity/llm-configuration.entity.d.ts +66 -0
  259. package/dist/esm/domain/entity/llm-configuration.entity.d.ts.map +1 -0
  260. package/dist/esm/domain/entity/llm-configuration.entity.js +94 -0
  261. package/dist/esm/domain/entity/llm-configuration.entity.js.map +1 -0
  262. package/dist/esm/domain/enum/anthropic-model.enum.d.ts +19 -0
  263. package/dist/esm/domain/enum/anthropic-model.enum.d.ts.map +1 -0
  264. package/dist/esm/domain/enum/anthropic-model.enum.js +26 -0
  265. package/dist/esm/domain/enum/anthropic-model.enum.js.map +1 -0
  266. package/dist/esm/domain/enum/aws-bedrock-model.enum.d.ts +34 -0
  267. package/dist/esm/domain/enum/aws-bedrock-model.enum.d.ts.map +1 -0
  268. package/dist/esm/domain/enum/aws-bedrock-model.enum.js +47 -0
  269. package/dist/esm/domain/enum/aws-bedrock-model.enum.js.map +1 -0
  270. package/dist/esm/domain/enum/azure-openai-model.enum.d.ts +18 -0
  271. package/dist/esm/domain/enum/azure-openai-model.enum.d.ts.map +1 -0
  272. package/dist/esm/domain/enum/azure-openai-model.enum.js +26 -0
  273. package/dist/esm/domain/enum/azure-openai-model.enum.js.map +1 -0
  274. package/dist/esm/domain/enum/commit-mode.enum.d.ts +8 -0
  275. package/dist/esm/domain/enum/commit-mode.enum.d.ts.map +1 -0
  276. package/dist/esm/domain/enum/commit-mode.enum.js +11 -0
  277. package/dist/esm/domain/enum/commit-mode.enum.js.map +1 -0
  278. package/dist/esm/domain/enum/google-model.enum.d.ts +17 -0
  279. package/dist/esm/domain/enum/google-model.enum.d.ts.map +1 -0
  280. package/dist/esm/domain/enum/google-model.enum.js +25 -0
  281. package/dist/esm/domain/enum/google-model.enum.js.map +1 -0
  282. package/dist/esm/domain/enum/index.d.ts +10 -0
  283. package/dist/esm/domain/enum/index.d.ts.map +1 -0
  284. package/dist/esm/domain/enum/llm-provider.enum.d.ts +12 -0
  285. package/dist/esm/domain/enum/llm-provider.enum.d.ts.map +1 -0
  286. package/dist/esm/domain/enum/llm-provider.enum.js +15 -0
  287. package/dist/esm/domain/enum/llm-provider.enum.js.map +1 -0
  288. package/dist/esm/domain/enum/log-level.enum.d.ts +10 -0
  289. package/dist/esm/domain/enum/log-level.enum.d.ts.map +1 -0
  290. package/dist/esm/domain/enum/log-level.enum.js +13 -0
  291. package/dist/esm/domain/enum/log-level.enum.js.map +1 -0
  292. package/dist/esm/domain/enum/ollama-model.enum.d.ts +25 -0
  293. package/dist/esm/domain/enum/ollama-model.enum.d.ts.map +1 -0
  294. package/dist/esm/domain/enum/ollama-model.enum.js +30 -0
  295. package/dist/esm/domain/enum/ollama-model.enum.js.map +1 -0
  296. package/dist/esm/domain/enum/openai-model.enum.d.ts +26 -0
  297. package/dist/esm/domain/enum/openai-model.enum.d.ts.map +1 -0
  298. package/dist/esm/domain/enum/openai-model.enum.js +35 -0
  299. package/dist/esm/domain/enum/openai-model.enum.js.map +1 -0
  300. package/dist/esm/domain/index.d.ts +4 -0
  301. package/dist/esm/domain/index.d.ts.map +1 -0
  302. package/dist/esm/domain/value-object/api-key.value-object.d.ts +27 -0
  303. package/dist/esm/domain/value-object/api-key.value-object.d.ts.map +1 -0
  304. package/dist/esm/domain/value-object/api-key.value-object.js +47 -0
  305. package/dist/esm/domain/value-object/api-key.value-object.js.map +1 -0
  306. package/dist/esm/domain/value-object/commit-body.value-object.d.ts +33 -0
  307. package/dist/esm/domain/value-object/commit-body.value-object.d.ts.map +1 -0
  308. package/dist/esm/domain/value-object/commit-body.value-object.js +57 -0
  309. package/dist/esm/domain/value-object/commit-body.value-object.js.map +1 -0
  310. package/dist/esm/domain/value-object/commit-header.value-object.d.ts +30 -0
  311. package/dist/esm/domain/value-object/commit-header.value-object.d.ts.map +1 -0
  312. package/dist/esm/domain/value-object/commit-header.value-object.js +55 -0
  313. package/dist/esm/domain/value-object/commit-header.value-object.js.map +1 -0
  314. package/dist/esm/domain/value-object/index.d.ts +4 -0
  315. package/dist/esm/domain/value-object/index.d.ts.map +1 -0
  316. package/dist/esm/index.d.ts +4 -13
  317. package/dist/esm/index.d.ts.map +1 -1
  318. package/dist/esm/index.js +29 -84
  319. package/dist/esm/index.js.map +1 -1
  320. package/dist/esm/infrastructure/commit-validator/commitlint-validator.service.d.ts +39 -0
  321. package/dist/esm/infrastructure/commit-validator/commitlint-validator.service.d.ts.map +1 -0
  322. package/dist/esm/infrastructure/commit-validator/commitlint-validator.service.js +205 -0
  323. package/dist/esm/infrastructure/commit-validator/commitlint-validator.service.js.map +1 -0
  324. package/dist/esm/infrastructure/commit-validator/index.d.ts +2 -0
  325. package/dist/esm/infrastructure/commit-validator/index.d.ts.map +1 -0
  326. package/dist/esm/infrastructure/di/container.d.ts +18 -0
  327. package/dist/esm/infrastructure/di/container.d.ts.map +1 -0
  328. package/dist/esm/infrastructure/di/container.js +63 -0
  329. package/dist/esm/infrastructure/di/container.js.map +1 -0
  330. package/dist/esm/infrastructure/di/index.d.ts +2 -0
  331. package/dist/esm/infrastructure/di/index.d.ts.map +1 -0
  332. package/dist/esm/infrastructure/git/git-commit.repository.d.ts +37 -0
  333. package/dist/esm/infrastructure/git/git-commit.repository.d.ts.map +1 -0
  334. package/dist/esm/infrastructure/git/git-commit.repository.js +76 -0
  335. package/dist/esm/infrastructure/git/git-commit.repository.js.map +1 -0
  336. package/dist/esm/infrastructure/git/index.d.ts +2 -0
  337. package/dist/esm/infrastructure/git/index.d.ts.map +1 -0
  338. package/dist/esm/infrastructure/index.d.ts +5 -0
  339. package/dist/esm/infrastructure/index.d.ts.map +1 -0
  340. package/dist/esm/infrastructure/llm/anthropic-llm.service.d.ts +40 -0
  341. package/dist/esm/infrastructure/llm/anthropic-llm.service.d.ts.map +1 -0
  342. package/dist/esm/infrastructure/llm/anthropic-llm.service.js +308 -0
  343. package/dist/esm/infrastructure/llm/anthropic-llm.service.js.map +1 -0
  344. package/dist/esm/infrastructure/llm/aws-bedrock-llm.service.d.ts +61 -0
  345. package/dist/esm/infrastructure/llm/aws-bedrock-llm.service.d.ts.map +1 -0
  346. package/dist/esm/infrastructure/llm/aws-bedrock-llm.service.js +503 -0
  347. package/dist/esm/infrastructure/llm/aws-bedrock-llm.service.js.map +1 -0
  348. package/dist/esm/infrastructure/llm/azure-openai-llm.service.d.ts +46 -0
  349. package/dist/esm/infrastructure/llm/azure-openai-llm.service.d.ts.map +1 -0
  350. package/dist/esm/infrastructure/llm/azure-openai-llm.service.js +336 -0
  351. package/dist/esm/infrastructure/llm/azure-openai-llm.service.js.map +1 -0
  352. package/dist/esm/infrastructure/llm/google-llm.service.d.ts +46 -0
  353. package/dist/esm/infrastructure/llm/google-llm.service.d.ts.map +1 -0
  354. package/dist/esm/infrastructure/llm/google-llm.service.js +320 -0
  355. package/dist/esm/infrastructure/llm/google-llm.service.js.map +1 -0
  356. package/dist/esm/infrastructure/llm/index.d.ts +7 -0
  357. package/dist/esm/infrastructure/llm/index.d.ts.map +1 -0
  358. package/dist/esm/infrastructure/llm/ollama-llm.service.d.ts +46 -0
  359. package/dist/esm/infrastructure/llm/ollama-llm.service.d.ts.map +1 -0
  360. package/dist/esm/infrastructure/llm/ollama-llm.service.js +367 -0
  361. package/dist/esm/infrastructure/llm/ollama-llm.service.js.map +1 -0
  362. package/dist/esm/infrastructure/llm/openai-llm.service.d.ts +46 -0
  363. package/dist/esm/infrastructure/llm/openai-llm.service.d.ts.map +1 -0
  364. package/dist/esm/infrastructure/llm/openai-llm.service.js +324 -0
  365. package/dist/esm/infrastructure/llm/openai-llm.service.js.map +1 -0
  366. package/dist/esm/infrastructure/service/cosmic-config.service.d.ts +65 -0
  367. package/dist/esm/infrastructure/service/cosmic-config.service.d.ts.map +1 -0
  368. package/dist/esm/infrastructure/service/cosmic-config.service.js +172 -0
  369. package/dist/esm/infrastructure/service/cosmic-config.service.js.map +1 -0
  370. package/dist/esm/infrastructure/service/index.d.ts +5 -0
  371. package/dist/esm/infrastructure/service/index.d.ts.map +1 -0
  372. package/dist/esm/infrastructure/service/node-command.service.d.ts +44 -0
  373. package/dist/esm/infrastructure/service/node-command.service.d.ts.map +1 -0
  374. package/dist/esm/infrastructure/service/node-command.service.js +150 -0
  375. package/dist/esm/infrastructure/service/node-command.service.js.map +1 -0
  376. package/dist/esm/infrastructure/service/node-file-system.service.d.ts +63 -0
  377. package/dist/esm/infrastructure/service/node-file-system.service.d.ts.map +1 -0
  378. package/dist/esm/infrastructure/service/node-file-system.service.js +100 -0
  379. package/dist/esm/infrastructure/service/node-file-system.service.js.map +1 -0
  380. package/dist/esm/infrastructure/service/prompts-cli-interface.service.d.ts +115 -0
  381. package/dist/esm/infrastructure/service/prompts-cli-interface.service.d.ts.map +1 -0
  382. package/dist/esm/infrastructure/service/prompts-cli-interface.service.js +313 -0
  383. package/dist/esm/infrastructure/service/prompts-cli-interface.service.js.map +1 -0
  384. package/dist/esm/presentation/commitizen.adapter.d.ts +24 -0
  385. package/dist/esm/presentation/commitizen.adapter.d.ts.map +1 -0
  386. package/dist/esm/presentation/commitizen.adapter.js +290 -0
  387. package/dist/esm/presentation/commitizen.adapter.js.map +1 -0
  388. package/dist/esm/presentation/index.d.ts +2 -0
  389. package/dist/esm/presentation/index.d.ts.map +1 -0
  390. package/dist/tsconfig.tsbuildinfo +1 -1
  391. package/index.cjs +1 -2
  392. package/package.json +33 -24
  393. package/dist/cjs/ManualProcess.d.ts +0 -6
  394. package/dist/cjs/ManualProcess.d.ts.map +0 -1
  395. package/dist/cjs/ManualProcess.js +0 -111
  396. package/dist/cjs/ManualProcess.js.map +0 -1
  397. package/dist/cjs/Process.d.ts +0 -6
  398. package/dist/cjs/Process.d.ts.map +0 -1
  399. package/dist/cjs/Process.js +0 -176
  400. package/dist/cjs/Process.js.map +0 -1
  401. package/dist/cjs/Question.d.ts +0 -46
  402. package/dist/cjs/Question.d.ts.map +0 -1
  403. package/dist/cjs/SectionBody.d.ts +0 -4
  404. package/dist/cjs/SectionBody.d.ts.map +0 -1
  405. package/dist/cjs/SectionFooter.d.ts +0 -13
  406. package/dist/cjs/SectionFooter.d.ts.map +0 -1
  407. package/dist/cjs/SectionHeader.d.ts +0 -15
  408. package/dist/cjs/SectionHeader.d.ts.map +0 -1
  409. package/dist/cjs/services/commitConfirmation.d.ts +0 -3
  410. package/dist/cjs/services/commitConfirmation.d.ts.map +0 -1
  411. package/dist/cjs/services/commitConfirmation.js +0 -122
  412. package/dist/cjs/services/commitConfirmation.js.map +0 -1
  413. package/dist/cjs/services/commitlintConfig.d.ts +0 -4
  414. package/dist/cjs/services/commitlintConfig.d.ts.map +0 -1
  415. package/dist/cjs/services/commitlintConfig.js +0 -198
  416. package/dist/cjs/services/commitlintConfig.js.map +0 -1
  417. package/dist/cjs/services/commitlintValidator.d.ts +0 -26
  418. package/dist/cjs/services/commitlintValidator.d.ts.map +0 -1
  419. package/dist/cjs/services/commitlintValidator.js +0 -146
  420. package/dist/cjs/services/commitlintValidator.js.map +0 -1
  421. package/dist/cjs/services/getRuleQuestionConfig.d.ts +0 -4
  422. package/dist/cjs/services/getRuleQuestionConfig.d.ts.map +0 -1
  423. package/dist/cjs/services/llm/anthropic.d.ts +0 -3
  424. package/dist/cjs/services/llm/anthropic.d.ts.map +0 -1
  425. package/dist/cjs/services/llm/anthropic.js +0 -118
  426. package/dist/cjs/services/llm/anthropic.js.map +0 -1
  427. package/dist/cjs/services/llm/config.d.ts +0 -5
  428. package/dist/cjs/services/llm/config.d.ts.map +0 -1
  429. package/dist/cjs/services/llm/config.js +0 -181
  430. package/dist/cjs/services/llm/config.js.map +0 -1
  431. package/dist/cjs/services/llm/index.d.ts +0 -6
  432. package/dist/cjs/services/llm/index.d.ts.map +0 -1
  433. package/dist/cjs/services/llm/index.js +0 -399
  434. package/dist/cjs/services/llm/index.js.map +0 -1
  435. package/dist/cjs/services/llm/models.d.ts +0 -34
  436. package/dist/cjs/services/llm/models.d.ts.map +0 -1
  437. package/dist/cjs/services/llm/models.js +0 -65
  438. package/dist/cjs/services/llm/models.js.map +0 -1
  439. package/dist/cjs/services/llm/openai.d.ts +0 -3
  440. package/dist/cjs/services/llm/openai.d.ts.map +0 -1
  441. package/dist/cjs/services/llm/openai.js +0 -111
  442. package/dist/cjs/services/llm/openai.js.map +0 -1
  443. package/dist/cjs/services/llm/types.d.ts +0 -71
  444. package/dist/cjs/services/llm/types.d.ts.map +0 -1
  445. package/dist/cjs/store/defaultPromptConfigs.d.ts +0 -33
  446. package/dist/cjs/store/defaultPromptConfigs.d.ts.map +0 -1
  447. package/dist/cjs/store/defaultPromptConfigs.js +0 -39
  448. package/dist/cjs/store/defaultPromptConfigs.js.map +0 -1
  449. package/dist/cjs/store/prompts.d.ts +0 -6
  450. package/dist/cjs/store/prompts.d.ts.map +0 -1
  451. package/dist/cjs/store/prompts.js +0 -40
  452. package/dist/cjs/store/prompts.js.map +0 -1
  453. package/dist/cjs/store/rules.d.ts +0 -7
  454. package/dist/cjs/store/rules.d.ts.map +0 -1
  455. package/dist/cjs/types.d.ts +0 -3
  456. package/dist/cjs/types.d.ts.map +0 -1
  457. package/dist/cjs/utils/case-function.d.ts +0 -9
  458. package/dist/cjs/utils/case-function.d.ts.map +0 -1
  459. package/dist/cjs/utils/full-stop-function.d.ts +0 -9
  460. package/dist/cjs/utils/full-stop-function.d.ts.map +0 -1
  461. package/dist/cjs/utils/leading-blank-function.d.ts +0 -8
  462. package/dist/cjs/utils/leading-blank-function.d.ts.map +0 -1
  463. package/dist/cjs/utils/rules.d.ts +0 -26
  464. package/dist/cjs/utils/rules.d.ts.map +0 -1
  465. package/dist/esm/ManualProcess.d.ts +0 -6
  466. package/dist/esm/ManualProcess.d.ts.map +0 -1
  467. package/dist/esm/ManualProcess.js +0 -107
  468. package/dist/esm/ManualProcess.js.map +0 -1
  469. package/dist/esm/Process.d.ts +0 -6
  470. package/dist/esm/Process.d.ts.map +0 -1
  471. package/dist/esm/Process.js +0 -172
  472. package/dist/esm/Process.js.map +0 -1
  473. package/dist/esm/Question.d.ts +0 -46
  474. package/dist/esm/Question.d.ts.map +0 -1
  475. package/dist/esm/SectionBody.d.ts +0 -4
  476. package/dist/esm/SectionBody.d.ts.map +0 -1
  477. package/dist/esm/SectionFooter.d.ts +0 -13
  478. package/dist/esm/SectionFooter.d.ts.map +0 -1
  479. package/dist/esm/SectionHeader.d.ts +0 -15
  480. package/dist/esm/SectionHeader.d.ts.map +0 -1
  481. package/dist/esm/services/commitConfirmation.d.ts +0 -3
  482. package/dist/esm/services/commitConfirmation.d.ts.map +0 -1
  483. package/dist/esm/services/commitConfirmation.js +0 -120
  484. package/dist/esm/services/commitConfirmation.js.map +0 -1
  485. package/dist/esm/services/commitlintConfig.d.ts +0 -4
  486. package/dist/esm/services/commitlintConfig.d.ts.map +0 -1
  487. package/dist/esm/services/commitlintConfig.js +0 -196
  488. package/dist/esm/services/commitlintConfig.js.map +0 -1
  489. package/dist/esm/services/commitlintValidator.d.ts +0 -26
  490. package/dist/esm/services/commitlintValidator.d.ts.map +0 -1
  491. package/dist/esm/services/commitlintValidator.js +0 -142
  492. package/dist/esm/services/commitlintValidator.js.map +0 -1
  493. package/dist/esm/services/getRuleQuestionConfig.d.ts +0 -4
  494. package/dist/esm/services/getRuleQuestionConfig.d.ts.map +0 -1
  495. package/dist/esm/services/llm/anthropic.d.ts +0 -3
  496. package/dist/esm/services/llm/anthropic.d.ts.map +0 -1
  497. package/dist/esm/services/llm/anthropic.js +0 -116
  498. package/dist/esm/services/llm/anthropic.js.map +0 -1
  499. package/dist/esm/services/llm/config.d.ts +0 -5
  500. package/dist/esm/services/llm/config.d.ts.map +0 -1
  501. package/dist/esm/services/llm/config.js +0 -178
  502. package/dist/esm/services/llm/config.js.map +0 -1
  503. package/dist/esm/services/llm/index.d.ts +0 -6
  504. package/dist/esm/services/llm/index.d.ts.map +0 -1
  505. package/dist/esm/services/llm/index.js +0 -394
  506. package/dist/esm/services/llm/index.js.map +0 -1
  507. package/dist/esm/services/llm/models.d.ts +0 -34
  508. package/dist/esm/services/llm/models.d.ts.map +0 -1
  509. package/dist/esm/services/llm/models.js +0 -60
  510. package/dist/esm/services/llm/models.js.map +0 -1
  511. package/dist/esm/services/llm/openai.d.ts +0 -3
  512. package/dist/esm/services/llm/openai.d.ts.map +0 -1
  513. package/dist/esm/services/llm/openai.js +0 -109
  514. package/dist/esm/services/llm/openai.js.map +0 -1
  515. package/dist/esm/services/llm/types.d.ts +0 -71
  516. package/dist/esm/services/llm/types.d.ts.map +0 -1
  517. package/dist/esm/store/defaultPromptConfigs.d.ts +0 -33
  518. package/dist/esm/store/defaultPromptConfigs.d.ts.map +0 -1
  519. package/dist/esm/store/defaultPromptConfigs.js +0 -35
  520. package/dist/esm/store/defaultPromptConfigs.js.map +0 -1
  521. package/dist/esm/store/prompts.d.ts +0 -6
  522. package/dist/esm/store/prompts.d.ts.map +0 -1
  523. package/dist/esm/store/prompts.js +0 -38
  524. package/dist/esm/store/prompts.js.map +0 -1
  525. package/dist/esm/store/rules.d.ts +0 -7
  526. package/dist/esm/store/rules.d.ts.map +0 -1
  527. package/dist/esm/types.d.ts +0 -3
  528. package/dist/esm/types.d.ts.map +0 -1
  529. package/dist/esm/utils/case-function.d.ts +0 -9
  530. package/dist/esm/utils/case-function.d.ts.map +0 -1
  531. package/dist/esm/utils/full-stop-function.d.ts +0 -9
  532. package/dist/esm/utils/full-stop-function.d.ts.map +0 -1
  533. package/dist/esm/utils/leading-blank-function.d.ts +0 -8
  534. package/dist/esm/utils/leading-blank-function.d.ts.map +0 -1
  535. package/dist/esm/utils/rules.d.ts +0 -26
  536. package/dist/esm/utils/rules.d.ts.map +0 -1
@@ -0,0 +1,336 @@
1
+ import OpenAI from 'openai';
2
+ import { OPENAI_TEMPERATURE, OPENAI_MAX_TOKENS, RULE_CONFIG_LENGTH, VALIDATION_LEVEL_DISABLED, RULE_VALUE_INDEX, MIN_RULE_LENGTH, VALIDATION_LEVEL_ERROR } from '../../domain/constant/numeric.constant.js';
3
+ import { CommitMessage } from '../../domain/entity/commit-message.entity.js';
4
+ import { EAzureOpenAIModel } from '../../domain/enum/azure-openai-model.enum.js';
5
+ import { CommitBody } from '../../domain/value-object/commit-body.value-object.js';
6
+ import { CommitHeader } from '../../domain/value-object/commit-header.value-object.js';
7
+
8
+ /**
9
+ * Azure OpenAI implementation of the LLM service
10
+ */
11
+ class AzureOpenAILlmService {
12
+ /**
13
+ * Generate a commit message using Azure OpenAI
14
+ * @param context - The context for generating the commit message
15
+ * @param configuration - The LLM configuration
16
+ * @returns Promise resolving to the generated commit message
17
+ */
18
+ async generateCommitMessage(context, configuration) {
19
+ // Extract Azure-specific configuration
20
+ const apiKey = configuration.getApiKey().getValue();
21
+ const model = configuration.getModel() ?? EAzureOpenAIModel.GPT_4O_2024_11_20;
22
+ // Azure OpenAI requires endpoint and deployment name
23
+ // The API key should be in format: "endpoint|api-key|deployment-name"
24
+ const [endpoint, azureApiKey, deploymentName] = apiKey.split("|");
25
+ if (!endpoint || !azureApiKey || !deploymentName) {
26
+ throw new Error("Azure OpenAI requires API key in format: 'endpoint|api-key|deployment-name'");
27
+ }
28
+ const openai = new OpenAI({
29
+ apiKey: azureApiKey,
30
+ baseURL: `${endpoint}/openai/deployments/${deploymentName}`,
31
+ defaultHeaders: { "api-key": azureApiKey },
32
+ defaultQuery: { "api-version": "2024-10-01-preview" },
33
+ });
34
+ const systemPrompt = this.buildSystemPrompt(context);
35
+ const userPrompt = this.buildUserPrompt(context);
36
+ const response = await openai.chat.completions.create({
37
+ max_tokens: OPENAI_MAX_TOKENS,
38
+ messages: [
39
+ { content: systemPrompt, role: "system" },
40
+ { content: userPrompt, role: "user" },
41
+ ],
42
+ model: model, // In Azure, this is typically the deployment name
43
+ temperature: OPENAI_TEMPERATURE,
44
+ });
45
+ const content = response.choices[0]?.message?.content;
46
+ if (!content) {
47
+ throw new Error("No response from Azure OpenAI");
48
+ }
49
+ return this.parseCommitMessage(content);
50
+ }
51
+ /**
52
+ * Check if the service supports the given configuration
53
+ * @param configuration - The LLM configuration to check
54
+ * @returns True if the service supports the configuration
55
+ */
56
+ supports(configuration) {
57
+ return configuration.getProvider() === "azure-openai";
58
+ }
59
+ /**
60
+ * Build the system prompt for Azure OpenAI
61
+ * @param context - The prompt context
62
+ * @returns The system prompt
63
+ */
64
+ buildSystemPrompt(context) {
65
+ let prompt = "";
66
+ // Check if this is a fix operation
67
+ const isFixing = !!(context.rules && typeof context.rules === "object" && !Array.isArray(context.rules) && context.rules.validationErrors && context.rules.previousAttempt && context.diff === undefined);
68
+ if (isFixing) {
69
+ prompt = "You are a helpful assistant that fixes commit messages to comply with validation rules. You should maintain the original meaning and content while fixing only the format issues.\n\n";
70
+ }
71
+ else {
72
+ prompt = "You are a helpful assistant that generates conventional commit messages based on the provided context and rules.\n\n";
73
+ }
74
+ // Add validation error context if present
75
+ if (context.rules?.validationErrors && Array.isArray(context.rules.validationErrors)) {
76
+ prompt += "IMPORTANT: The previous commit message had validation errors that must be fixed:\n";
77
+ for (const error of context.rules.validationErrors) {
78
+ prompt += `- ${error}\n`;
79
+ }
80
+ prompt += "\nMake sure the new commit message fixes all these errors.\n\n";
81
+ }
82
+ // Add all commitlint rules
83
+ if (context.rules && typeof context.rules === "object" && !Array.isArray(context.rules)) {
84
+ const formattedRules = this.formatCommitlintRules(context.rules);
85
+ if (formattedRules) {
86
+ prompt += "Commit message rules:\n" + formattedRules + "\n\n";
87
+ }
88
+ }
89
+ if (context.typeEnum && context.typeEnum.length > 0) {
90
+ prompt += `Available commit types: ${context.typeEnum.join(", ")}\n`;
91
+ }
92
+ if (context.typeDescriptions) {
93
+ prompt += "\nType descriptions:\n";
94
+ for (const [type, desc] of Object.entries(context.typeDescriptions)) {
95
+ const emoji = desc.emoji ? ` ${desc.emoji}` : "";
96
+ prompt += `- ${type}: ${desc.description}${emoji}\n`;
97
+ }
98
+ }
99
+ if (context.subject.maxLength) {
100
+ prompt += `\nSubject must be at most ${context.subject.maxLength} characters.`;
101
+ }
102
+ if (context.subject.minLength) {
103
+ prompt += `\nSubject must be at least ${context.subject.minLength} characters.`;
104
+ }
105
+ // Extract body/footer line length rules
106
+ let bodyMaxLength;
107
+ let footerMaxLength;
108
+ if (context.rules && typeof context.rules === "object" && !Array.isArray(context.rules)) {
109
+ // Extract body-max-line-length
110
+ const bodyRule = context.rules["body-max-line-length"];
111
+ if (Array.isArray(bodyRule) && bodyRule.length >= RULE_CONFIG_LENGTH && bodyRule[0] > VALIDATION_LEVEL_DISABLED && typeof bodyRule[RULE_VALUE_INDEX] === "number") {
112
+ bodyMaxLength = bodyRule[RULE_VALUE_INDEX];
113
+ }
114
+ // Extract footer-max-line-length
115
+ const footerRule = context.rules["footer-max-line-length"];
116
+ if (Array.isArray(footerRule) && footerRule.length >= RULE_CONFIG_LENGTH && footerRule[0] > VALIDATION_LEVEL_DISABLED && typeof footerRule[RULE_VALUE_INDEX] === "number") {
117
+ footerMaxLength = footerRule[RULE_VALUE_INDEX];
118
+ }
119
+ }
120
+ // Add body formatting rules if line length rules exist
121
+ if (bodyMaxLength || footerMaxLength) {
122
+ prompt += "\n\nIMPORTANT: Body formatting rules:";
123
+ prompt += "\n- The 'body' field in the JSON corresponds to the commit message body/footer";
124
+ if (bodyMaxLength) {
125
+ prompt += `\n- Each line in the body must be wrapped to not exceed ${bodyMaxLength} characters`;
126
+ }
127
+ if (footerMaxLength) {
128
+ prompt += `\n- Footer lines must be wrapped to not exceed ${footerMaxLength} characters`;
129
+ }
130
+ prompt += "\n- The 'breaking' field also follows the same line length rules";
131
+ prompt += "\n- Use line breaks (\\n) to wrap long lines";
132
+ prompt += "\n- Empty lines between paragraphs are allowed";
133
+ }
134
+ prompt += "\n\nGenerate a commit message in the following JSON format:\n";
135
+ prompt += '{\n "type": "commit type",\n "scope": "optional scope",\n "subject": "commit subject",\n "body": "optional body",\n "breaking": "optional breaking change description"\n}';
136
+ prompt += "\n\nIMPORTANT: Respond ONLY with the JSON object. Do not include markdown code blocks, explanations, or any other text. Just the raw JSON.";
137
+ prompt += "\n\nIMPORTANT: Follow ALL the rules listed above. The commit message MUST pass validation.";
138
+ return prompt;
139
+ }
140
+ /**
141
+ * Build the user prompt for Azure OpenAI
142
+ * @param context - The prompt context
143
+ * @returns The user prompt
144
+ */
145
+ buildUserPrompt(context) {
146
+ let prompt = "";
147
+ // Check if this is a fix operation
148
+ const isFixing = !!(context.rules && typeof context.rules === "object" && !Array.isArray(context.rules) && context.rules.validationErrors && context.rules.previousAttempt && context.diff === undefined);
149
+ if (isFixing) {
150
+ prompt = "Fix the following commit message to comply with the validation rules:\n\n";
151
+ // Include previous attempt
152
+ if (context.rules?.previousAttempt && typeof context.rules.previousAttempt === "string") {
153
+ prompt += `Commit message to fix:\n${context.rules.previousAttempt}\n\n`;
154
+ }
155
+ }
156
+ else {
157
+ prompt = "Generate a commit message for the following changes:\n\n";
158
+ // Include previous attempt if this is a retry with diff
159
+ if (context.rules?.previousAttempt && typeof context.rules.previousAttempt === "string") {
160
+ prompt += `Previous attempt (with errors):\n${context.rules.previousAttempt}\n\n`;
161
+ }
162
+ if (context.diff) {
163
+ prompt += `Diff:\n${context.diff}\n\n`;
164
+ }
165
+ if (context.files) {
166
+ prompt += `Files changed:\n${context.files}\n\n`;
167
+ }
168
+ }
169
+ if (context.rules && typeof context.rules === "object" && !Array.isArray(context.rules) && context.rules.instructions && typeof context.rules.instructions === "string") {
170
+ prompt += `${context.rules.instructions}\n\n`;
171
+ }
172
+ if (isFixing) {
173
+ prompt += "Please fix the commit message to pass validation while keeping the same meaning and content.";
174
+ }
175
+ else {
176
+ prompt += "Please generate an appropriate commit message following the conventional commit format.";
177
+ }
178
+ return prompt;
179
+ }
180
+ /**
181
+ * Format commitlint rules into human-readable instructions
182
+ * @param rules - The commitlint rules object
183
+ * @returns Formatted rules as string
184
+ */
185
+ formatCommitlintRules(rules) {
186
+ const formattedRules = [];
187
+ for (const [ruleName, ruleConfig] of Object.entries(rules)) {
188
+ if (!Array.isArray(ruleConfig) || ruleConfig.length < MIN_RULE_LENGTH)
189
+ continue;
190
+ const [level, condition, value] = ruleConfig;
191
+ if (level === VALIDATION_LEVEL_DISABLED)
192
+ continue; // Skip disabled rules
193
+ const isError = level === VALIDATION_LEVEL_ERROR;
194
+ const prefix = isError ? "MUST" : "SHOULD";
195
+ const conditionString = String(condition);
196
+ switch (ruleName) {
197
+ case "body-max-line-length": {
198
+ if (typeof value === "number") {
199
+ formattedRules.push(`Body lines ${prefix} be at most ${value} characters (wrap long lines with line breaks)`);
200
+ }
201
+ break;
202
+ }
203
+ case "footer-max-line-length": {
204
+ if (typeof value === "number") {
205
+ formattedRules.push(`Footer lines ${prefix} be at most ${value} characters (Note: the 'body' field is treated as footer, wrap long lines)`);
206
+ }
207
+ break;
208
+ }
209
+ case "header-max-length": {
210
+ if (typeof value === "number") {
211
+ formattedRules.push(`Header (type(scope): subject) ${prefix} be at most ${value} characters`);
212
+ }
213
+ break;
214
+ }
215
+ case "scope-case": {
216
+ if (Array.isArray(value)) {
217
+ formattedRules.push(`Scope ${prefix} be in ${value.join(" or ")} case`);
218
+ }
219
+ break;
220
+ }
221
+ case "scope-enum": {
222
+ if (conditionString === "always" && Array.isArray(value)) {
223
+ formattedRules.push(`Scope ${prefix} be one of: ${value.join(", ")}`);
224
+ }
225
+ break;
226
+ }
227
+ case "subject-case": {
228
+ if (Array.isArray(value)) {
229
+ formattedRules.push(`Subject ${prefix} be in ${value.join(" or ")} case`);
230
+ }
231
+ break;
232
+ }
233
+ case "subject-empty": {
234
+ formattedRules.push(`Subject ${prefix} ${conditionString === "never" ? "not be empty" : "be empty"}`);
235
+ break;
236
+ }
237
+ case "subject-full-stop": {
238
+ formattedRules.push(`Subject ${prefix} ${conditionString === "never" ? "not end with a period" : "end with a period"}`);
239
+ break;
240
+ }
241
+ case "subject-max-length": {
242
+ if (typeof value === "number") {
243
+ formattedRules.push(`Subject ${prefix} be at most ${value} characters`);
244
+ }
245
+ break;
246
+ }
247
+ case "subject-min-length": {
248
+ if (typeof value === "number") {
249
+ formattedRules.push(`Subject ${prefix} be at least ${value} characters`);
250
+ }
251
+ break;
252
+ }
253
+ case "type-case": {
254
+ if (Array.isArray(value)) {
255
+ formattedRules.push(`Type ${prefix} be in ${value.join(" or ")} case`);
256
+ }
257
+ break;
258
+ }
259
+ case "type-enum": {
260
+ if (conditionString === "always" && Array.isArray(value)) {
261
+ formattedRules.push(`Type ${prefix} be one of: ${value.join(", ")}`);
262
+ }
263
+ break;
264
+ }
265
+ default: {
266
+ // Handle other rules generically
267
+ if (condition && value !== undefined) {
268
+ formattedRules.push(`${ruleName}: ${conditionString} ${JSON.stringify(value)}`);
269
+ }
270
+ }
271
+ }
272
+ }
273
+ return formattedRules.join("\n");
274
+ }
275
+ /**
276
+ * Parse the commit message from the LLM response
277
+ * @param content - The response content
278
+ * @returns The parsed commit message
279
+ */
280
+ parseCommitMessage(content) {
281
+ try {
282
+ // Clean up the content - remove markdown code blocks if present
283
+ let cleanContent = content.trim();
284
+ // Remove markdown code blocks with more specific pattern - fixed regex
285
+ cleanContent = cleanContent.replace(/^```(?:json)?\s*/i, "").replace(/```$/m, "");
286
+ // Try to extract JSON if it's wrapped in other text - use safer approach
287
+ const firstBrace = cleanContent.indexOf("{");
288
+ const lastBrace = cleanContent.lastIndexOf("}");
289
+ if (firstBrace !== -1 && lastBrace !== -1 && lastBrace > firstBrace) {
290
+ cleanContent = cleanContent.slice(firstBrace, lastBrace + 1);
291
+ }
292
+ const parsed = JSON.parse(cleanContent);
293
+ // Validate required fields
294
+ if (!parsed.type || !parsed.subject) {
295
+ throw new Error("Missing required fields: type and subject");
296
+ }
297
+ const header = new CommitHeader(parsed.type, parsed.subject, parsed.scope);
298
+ // Strip "BREAKING CHANGE:" prefix if included in the breaking field
299
+ let breakingChange = parsed.breaking;
300
+ if (breakingChange?.startsWith("BREAKING CHANGE:")) {
301
+ breakingChange = breakingChange.slice("BREAKING CHANGE:".length).trim();
302
+ }
303
+ const body = new CommitBody(parsed.body, breakingChange);
304
+ return new CommitMessage(header, body);
305
+ }
306
+ catch {
307
+ // Fallback: try to parse as plain text
308
+ const lines = content.trim().split("\n");
309
+ const headerLine = lines[0];
310
+ // Parse header: type(scope): subject
311
+ const headerMatch = /^(\w+)(?:\(([^)]+)\))?: (.+)$/.exec(headerLine);
312
+ if (!headerMatch) {
313
+ throw new Error(`Invalid commit message format. Could not parse: "${headerLine}"`);
314
+ }
315
+ const [, type, scope, subject] = headerMatch;
316
+ const header = new CommitHeader(type, subject, scope);
317
+ // Parse body and breaking changes
318
+ let bodyContent = "";
319
+ let breakingChange;
320
+ for (let index = 1; index < lines.length; index++) {
321
+ const line = lines[index];
322
+ if (line.startsWith("BREAKING CHANGE:")) {
323
+ breakingChange = line.slice("BREAKING CHANGE:".length).trim();
324
+ }
325
+ else if (line.trim()) {
326
+ bodyContent += line + "\n";
327
+ }
328
+ }
329
+ const body = new CommitBody(bodyContent.trim() || undefined, breakingChange);
330
+ return new CommitMessage(header, body);
331
+ }
332
+ }
333
+ }
334
+
335
+ export { AzureOpenAILlmService };
336
+ //# sourceMappingURL=azure-openai-llm.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure-openai-llm.service.js","sources":["../../../../../src/infrastructure/llm/azure-openai-llm.service.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import type { ILlmPromptContext, ILlmService } from "../../application/interface/llm-service.interface.js";
2
+ import type { LLMConfiguration } from "../../domain/entity/llm-configuration.entity.js";
3
+ import { CommitMessage } from "../../domain/entity/commit-message.entity.js";
4
+ /**
5
+ * Google (Vertex AI/Gemini) implementation of the LLM service
6
+ */
7
+ export declare class GoogleLlmService implements ILlmService {
8
+ /**
9
+ * Generate a commit message using Google Gemini
10
+ * @param context - The context for generating the commit message
11
+ * @param configuration - The LLM configuration
12
+ * @returns 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 configuration - The LLM configuration to check
18
+ * @returns True if the service supports the configuration
19
+ */
20
+ supports(configuration: LLMConfiguration): boolean;
21
+ /**
22
+ * Build the system prompt for Google Gemini
23
+ * @param context - The prompt context
24
+ * @returns The system prompt
25
+ */
26
+ private buildSystemPrompt;
27
+ /**
28
+ * Build the user prompt for Google Gemini
29
+ * @param context - The prompt context
30
+ * @returns The user prompt
31
+ */
32
+ private buildUserPrompt;
33
+ /**
34
+ * Format commitlint rules into human-readable instructions
35
+ * @param rules - The commitlint rules object
36
+ * @returns Formatted rules as string
37
+ */
38
+ private formatCommitlintRules;
39
+ /**
40
+ * Parse the commit message from the LLM response
41
+ * @param content - The response content
42
+ * @returns The parsed commit message
43
+ */
44
+ private parseCommitMessage;
45
+ }
46
+ //# sourceMappingURL=google-llm.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-llm.service.d.ts","sourceRoot":"","sources":["../../../../src/infrastructure/llm/google-llm.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,sDAAsD,CAAC;AAC3G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iDAAiD,CAAC;AAMxF,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAK7E;;GAEG;AACH,qBAAa,gBAAiB,YAAW,WAAW;IACnD;;;;;OAKG;IACG,qBAAqB,CAAC,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;IAwBhH;;;;OAIG;IACH,QAAQ,CAAC,aAAa,EAAE,gBAAgB,GAAG,OAAO;IAIlD;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAkGzB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IA2CvB;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAuH7B;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;CA6E1B"}