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