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