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

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