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