@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,49 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var numeric_constant = require('../../domain/constant/numeric.constant.js');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Use case for generating commit messages
|
|
7
|
+
*/
|
|
8
|
+
class GenerateCommitMessageUseCase {
|
|
9
|
+
LLM_SERVICES;
|
|
10
|
+
constructor(llmServices) {
|
|
11
|
+
this.LLM_SERVICES = llmServices;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Execute the commit message generation
|
|
15
|
+
* @param {ILlmPromptContext} context - The context for generating the commit message
|
|
16
|
+
* @param {LLMConfiguration} configuration - The LLM configuration
|
|
17
|
+
* @param {(attempt: number, maxRetries: number, error: Error) => void} onRetry - Callback function called on retry attempts
|
|
18
|
+
* @returns {Promise<CommitMessage>} Promise resolving to the generated commit message
|
|
19
|
+
*/
|
|
20
|
+
async execute(context, configuration, onRetry) {
|
|
21
|
+
const service = this.LLM_SERVICES.find((s) => s.supports(configuration));
|
|
22
|
+
if (!service) {
|
|
23
|
+
throw new Error(`No LLM service found for provider: ${configuration.getProvider()}`);
|
|
24
|
+
}
|
|
25
|
+
const maxRetries = configuration.getMaxRetries();
|
|
26
|
+
// Try to generate with retries
|
|
27
|
+
for (let attempt = 1; attempt <= maxRetries; attempt++) {
|
|
28
|
+
try {
|
|
29
|
+
return await service.generateCommitMessage(context, configuration);
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
if (attempt === maxRetries) {
|
|
33
|
+
throw new Error(`Failed to generate commit message after ${maxRetries} attempts: ${error instanceof Error ? error.message : String(error)}`);
|
|
34
|
+
}
|
|
35
|
+
// Notify about retry
|
|
36
|
+
if (onRetry) {
|
|
37
|
+
onRetry(attempt, maxRetries, error);
|
|
38
|
+
}
|
|
39
|
+
// Wait before retrying
|
|
40
|
+
await new Promise((resolve) => setTimeout(resolve, numeric_constant.RETRY_DELAY_MS));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// This should never be reached due to the throw in the loop
|
|
44
|
+
throw new Error(`Failed to generate commit message after ${maxRetries} attempts`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
exports.GenerateCommitMessageUseCase = GenerateCommitMessageUseCase;
|
|
49
|
+
//# sourceMappingURL=generate-commit-message.use-case.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-commit-message.use-case.js","sources":["../../../../../src/application/use-case/generate-commit-message.use-case.ts"],"sourcesContent":[null],"names":["RETRY_DELAY_MS"],"mappings":";;;;AAMA;;AAEG;MACU,4BAA4B,CAAA;AACvB,IAAA,YAAY;AAE7B,IAAA,WAAA,CAAY,WAA+B,EAAA;AAC1C,QAAA,IAAI,CAAC,YAAY,GAAG,WAAW;;AAGhC;;;;;;AAMG;AACH,IAAA,MAAM,OAAO,CAAC,OAA0B,EAAE,aAA+B,EAAE,OAAqE,EAAA;QAC/I,MAAM,OAAO,GAA4B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAc,KAAK,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAE9G,IAAI,CAAC,OAAO,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,CAAsC,mCAAA,EAAA,aAAa,CAAC,WAAW,EAAE,CAAE,CAAA,CAAC;;AAGrF,QAAA,MAAM,UAAU,GAAW,aAAa,CAAC,aAAa,EAAE;;AAGxD,QAAA,KAAK,IAAI,OAAO,GAAW,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE;AAC/D,YAAA,IAAI;gBACH,OAAO,MAAM,OAAO,CAAC,qBAAqB,CAAC,OAAO,EAAE,aAAa,CAAC;;YACjE,OAAO,KAAK,EAAE;AACf,gBAAA,IAAI,OAAO,KAAK,UAAU,EAAE;oBAC3B,MAAM,IAAI,KAAK,CAAC,CAA2C,wCAAA,EAAA,UAAU,cAAc,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAE,CAAA,CAAC;;;gBAI7I,IAAI,OAAO,EAAE;AACZ,oBAAA,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,KAAc,CAAC;;;AAI7C,gBAAA,MAAM,IAAI,OAAO,CAAO,CAAC,OAAmB,KAAK,UAAU,CAAC,OAAO,EAAEA,+BAAc,CAAC,CAAC;;;;AAKvF,QAAA,MAAM,IAAI,KAAK,CAAC,2CAA2C,UAAU,CAAA,SAAA,CAAW,CAAC;;AAElF;;;;"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ICliInterfaceService } from '../interface/cli-interface-service.interface';
|
|
2
|
+
import type { ILlmPromptContext } from '../interface/llm-service.interface';
|
|
3
|
+
import { CommitMessage } from '../../domain/entity/commit-message.entity';
|
|
4
|
+
/**
|
|
5
|
+
* Use case for manual commit message creation
|
|
6
|
+
*/
|
|
7
|
+
export declare class ManualCommitUseCase {
|
|
8
|
+
private readonly CLI_INTERFACE;
|
|
9
|
+
constructor(cliInterface: ICliInterfaceService);
|
|
10
|
+
/**
|
|
11
|
+
* Execute the manual commit creation process
|
|
12
|
+
* @param {ILlmPromptContext} context - The context for the commit
|
|
13
|
+
* @returns {Promise<CommitMessage>} Promise resolving to the commit message
|
|
14
|
+
*/
|
|
15
|
+
execute(context: ILlmPromptContext): Promise<CommitMessage>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var commitMessage_entity = require('../../domain/entity/commit-message.entity.js');
|
|
4
|
+
var commitBody_valueObject = require('../../domain/value-object/commit-body.value-object.js');
|
|
5
|
+
var commitHeader_valueObject = require('../../domain/value-object/commit-header.value-object.js');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Use case for manual commit message creation
|
|
9
|
+
*/
|
|
10
|
+
class ManualCommitUseCase {
|
|
11
|
+
CLI_INTERFACE;
|
|
12
|
+
constructor(cliInterface) {
|
|
13
|
+
this.CLI_INTERFACE = cliInterface;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Execute the manual commit creation process
|
|
17
|
+
* @param {ILlmPromptContext} context - The context for the commit
|
|
18
|
+
* @returns {Promise<CommitMessage>} Promise resolving to the commit message
|
|
19
|
+
*/
|
|
20
|
+
async execute(context) {
|
|
21
|
+
// Build type options from context
|
|
22
|
+
const typeOptions = [];
|
|
23
|
+
if (context.typeDescriptions) {
|
|
24
|
+
for (const [type, desc] of Object.entries(context.typeDescriptions)) {
|
|
25
|
+
const emoji = desc.emoji ?? "";
|
|
26
|
+
const cleanDesc = desc.description.replace(/\.$/, "");
|
|
27
|
+
const emojiSuffix = emoji ? ` ${emoji}` : "";
|
|
28
|
+
typeOptions.push({
|
|
29
|
+
label: `${type}: ${cleanDesc}${emojiSuffix}`,
|
|
30
|
+
value: type,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else if (context.typeEnum) {
|
|
35
|
+
for (const type of context.typeEnum) {
|
|
36
|
+
typeOptions.push({ label: type, value: type });
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
const type = await this.CLI_INTERFACE.select("Select commit type:", typeOptions);
|
|
40
|
+
// Get scope if applicable
|
|
41
|
+
const scope = await this.CLI_INTERFACE.text("Enter scope (optional):", "", "");
|
|
42
|
+
// Get subject
|
|
43
|
+
const subject = await this.CLI_INTERFACE.text("Enter commit subject:", "", "", (value) => {
|
|
44
|
+
if (!value.trim()) {
|
|
45
|
+
return "Subject is required";
|
|
46
|
+
}
|
|
47
|
+
if (context.subject.minLength && value.length < context.subject.minLength) {
|
|
48
|
+
return `Subject must be at least ${context.subject.minLength} characters`;
|
|
49
|
+
}
|
|
50
|
+
if (context.subject.maxLength && value.length > context.subject.maxLength) {
|
|
51
|
+
return `Subject must be at most ${context.subject.maxLength} characters`;
|
|
52
|
+
}
|
|
53
|
+
// eslint-disable-next-line @elsikora/sonar/no-redundant-jump
|
|
54
|
+
return;
|
|
55
|
+
});
|
|
56
|
+
// Get body
|
|
57
|
+
const body = await this.CLI_INTERFACE.text("Enter commit body (optional):", "", "");
|
|
58
|
+
// Get breaking change
|
|
59
|
+
const hasBreakingChange = await this.CLI_INTERFACE.confirm("Is this a breaking change?", false);
|
|
60
|
+
let breakingChange;
|
|
61
|
+
if (hasBreakingChange) {
|
|
62
|
+
breakingChange = await this.CLI_INTERFACE.text("Describe the breaking change:", "", "");
|
|
63
|
+
}
|
|
64
|
+
// Create commit message
|
|
65
|
+
const header = new commitHeader_valueObject.CommitHeader(type, subject, scope);
|
|
66
|
+
const commitBody = new commitBody_valueObject.CommitBody(body, breakingChange);
|
|
67
|
+
const commitMessage = new commitMessage_entity.CommitMessage(header, commitBody);
|
|
68
|
+
// Ask for confirmation
|
|
69
|
+
this.CLI_INTERFACE.log("\nCommit message preview:");
|
|
70
|
+
this.CLI_INTERFACE.log(commitMessage.toString());
|
|
71
|
+
const isConfirmed = await this.CLI_INTERFACE.confirm("\nUse this commit message?", true);
|
|
72
|
+
if (!isConfirmed) {
|
|
73
|
+
// Recursively call to edit
|
|
74
|
+
return this.execute(context);
|
|
75
|
+
}
|
|
76
|
+
return commitMessage;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
exports.ManualCommitUseCase = ManualCommitUseCase;
|
|
81
|
+
//# sourceMappingURL=manual-commit.use-case.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manual-commit.use-case.js","sources":["../../../../../src/application/use-case/manual-commit.use-case.ts"],"sourcesContent":[null],"names":["CommitHeader","CommitBody","CommitMessage"],"mappings":";;;;;;AAOA;;AAEG;MACU,mBAAmB,CAAA;AACd,IAAA,aAAa;AAE9B,IAAA,WAAA,CAAY,YAAkC,EAAA;AAC7C,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY;;AAGlC;;;;AAIG;IACH,MAAM,OAAO,CAAC,OAA0B,EAAA;;QAEvC,MAAM,WAAW,GAA4C,EAAE;AAE/D,QAAA,IAAI,OAAO,CAAC,gBAAgB,EAAE;AAC7B,YAAA,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;AACpE,gBAAA,MAAM,KAAK,GAAW,IAAI,CAAC,KAAK,IAAI,EAAE;AACtC,gBAAA,MAAM,SAAS,GAAW,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AAE7D,gBAAA,MAAM,WAAW,GAAW,KAAK,GAAG,CAAI,CAAA,EAAA,KAAK,CAAE,CAAA,GAAG,EAAE;gBACpD,WAAW,CAAC,IAAI,CAAC;AAChB,oBAAA,KAAK,EAAE,CAAG,EAAA,IAAI,KAAK,SAAS,CAAA,EAAG,WAAW,CAAE,CAAA;AAC5C,oBAAA,KAAK,EAAE,IAAI;AACX,iBAAA,CAAC;;;AAEG,aAAA,IAAI,OAAO,CAAC,QAAQ,EAAE;AAC5B,YAAA,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE;AACpC,gBAAA,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;;;AAIhD,QAAA,MAAM,IAAI,GAAW,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,qBAAqB,EAAE,WAAW,CAAC;;AAGxF,QAAA,MAAM,KAAK,GAAuB,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,EAAE,EAAE,CAAC;;AAGlG,QAAA,MAAM,OAAO,GAAW,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAa,KAAI;AACxG,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE;AAClB,gBAAA,OAAO,qBAAqB;;AAG7B,YAAA,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE;AAC1E,gBAAA,OAAO,4BAA4B,OAAO,CAAC,OAAO,CAAC,SAAS,aAAa;;AAG1E,YAAA,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE;AAC1E,gBAAA,OAAO,2BAA2B,OAAO,CAAC,OAAO,CAAC,SAAS,aAAa;;;YAIzE;AACD,SAAC,CAAC;;AAGF,QAAA,MAAM,IAAI,GAAuB,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,+BAA+B,EAAE,EAAE,EAAE,EAAE,CAAC;;AAGvG,QAAA,MAAM,iBAAiB,GAAY,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,4BAA4B,EAAE,KAAK,CAAC;AACxG,QAAA,IAAI,cAAkC;QAEtC,IAAI,iBAAiB,EAAE;AACtB,YAAA,cAAc,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,+BAA+B,EAAE,EAAE,EAAE,EAAE,CAAC;;;QAIxF,MAAM,MAAM,GAAiB,IAAIA,qCAAY,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC;QACnE,MAAM,UAAU,GAAe,IAAIC,iCAAU,CAAC,IAAI,EAAE,cAAc,CAAC;QACnE,MAAM,aAAa,GAAkB,IAAIC,kCAAa,CAAC,MAAM,EAAE,UAAU,CAAC;;AAG1E,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,2BAA2B,CAAC;QACnD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;AAEhD,QAAA,MAAM,WAAW,GAAY,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,4BAA4B,EAAE,IAAI,CAAC;QAEjG,IAAI,CAAC,WAAW,EAAE;;AAEjB,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;;AAG7B,QAAA,OAAO,aAAa;;AAErB;;;;"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { CommitMessage } from '../../domain/entity/commit-message.entity';
|
|
2
|
+
import type { ICommitValidationResult, ICommitValidator } from '../interface/commit-validator.interface';
|
|
3
|
+
import type { ILlmPromptContext } from '../interface/llm-service.interface';
|
|
4
|
+
/**
|
|
5
|
+
* Use case for validating and fixing commit messages
|
|
6
|
+
*/
|
|
7
|
+
export declare class ValidateCommitMessageUseCase {
|
|
8
|
+
private readonly DEFAULT_MAX_RETRIES;
|
|
9
|
+
private readonly VALIDATOR;
|
|
10
|
+
constructor(validator: ICommitValidator, defaultMaxRetries?: number);
|
|
11
|
+
/**
|
|
12
|
+
* Execute the validation use case
|
|
13
|
+
* @param {CommitMessage} message - The commit message to validate
|
|
14
|
+
* @param {boolean} shouldAttemptFix - Whether to attempt fixing validation errors
|
|
15
|
+
* @param {number | undefined} maxRetries - Maximum number of retry attempts (optional, defaults to DEFAULT_MAX_RETRIES)
|
|
16
|
+
* @param {ILlmPromptContext} context - The LLM prompt context
|
|
17
|
+
* @returns {Promise<CommitMessage | null>} Promise resolving to the validated message or null if validation fails
|
|
18
|
+
*/
|
|
19
|
+
execute(message: CommitMessage, shouldAttemptFix?: boolean, maxRetries?: number, context?: ILlmPromptContext): Promise<CommitMessage | null>;
|
|
20
|
+
/**
|
|
21
|
+
* Validate a commit message
|
|
22
|
+
* @param {CommitMessage} message - The commit message to validate
|
|
23
|
+
* @returns {Promise<ICommitValidationResult>} Promise resolving to the validation result
|
|
24
|
+
*/
|
|
25
|
+
validate(message: CommitMessage): Promise<ICommitValidationResult>;
|
|
26
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var numeric_constant = require('../../domain/constant/numeric.constant.js');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Use case for validating and fixing commit messages
|
|
7
|
+
*/
|
|
8
|
+
class ValidateCommitMessageUseCase {
|
|
9
|
+
DEFAULT_MAX_RETRIES = numeric_constant.DEFAULT_VALIDATION_MAX_RETRIES;
|
|
10
|
+
VALIDATOR;
|
|
11
|
+
constructor(validator, defaultMaxRetries = numeric_constant.DEFAULT_VALIDATION_MAX_RETRIES) {
|
|
12
|
+
this.VALIDATOR = validator;
|
|
13
|
+
this.DEFAULT_MAX_RETRIES = defaultMaxRetries;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Execute the validation use case
|
|
17
|
+
* @param {CommitMessage} message - The commit message to validate
|
|
18
|
+
* @param {boolean} shouldAttemptFix - Whether to attempt fixing validation errors
|
|
19
|
+
* @param {number | undefined} maxRetries - Maximum number of retry attempts (optional, defaults to DEFAULT_MAX_RETRIES)
|
|
20
|
+
* @param {ILlmPromptContext} context - The LLM prompt context
|
|
21
|
+
* @returns {Promise<CommitMessage | null>} Promise resolving to the validated message or null if validation fails
|
|
22
|
+
*/
|
|
23
|
+
async execute(message, shouldAttemptFix = false, maxRetries, context) {
|
|
24
|
+
const retryLimit = maxRetries ?? this.DEFAULT_MAX_RETRIES;
|
|
25
|
+
let currentMessage = message;
|
|
26
|
+
let attempts = 0;
|
|
27
|
+
while (attempts <= retryLimit) {
|
|
28
|
+
const validationResult = await this.validate(currentMessage);
|
|
29
|
+
if (validationResult.isValid) {
|
|
30
|
+
if (attempts > 0) {
|
|
31
|
+
process.stdout.write(`✓ Commit message fixed after ${attempts} attempt${attempts > 1 ? "s" : ""}\n`);
|
|
32
|
+
}
|
|
33
|
+
return currentMessage;
|
|
34
|
+
}
|
|
35
|
+
// If we shouldn't attempt fix or we've exhausted all retries
|
|
36
|
+
if (!shouldAttemptFix || attempts >= retryLimit) {
|
|
37
|
+
if (validationResult.errors && validationResult.errors.length > 0) {
|
|
38
|
+
process.stdout.write(`✗ Commit message validation failed after ${attempts} attempts:\n`);
|
|
39
|
+
for (const error of validationResult.errors) {
|
|
40
|
+
process.stdout.write(` - ${error}\n`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
// Attempt to fix
|
|
46
|
+
attempts++;
|
|
47
|
+
process.stdout.write(`Attempting to fix commit message (attempt ${attempts}/${retryLimit})...\n`);
|
|
48
|
+
try {
|
|
49
|
+
const fixedMessage = await this.VALIDATOR.fix(currentMessage, validationResult, context);
|
|
50
|
+
if (!fixedMessage) {
|
|
51
|
+
process.stdout.write("Unable to automatically fix the commit message\n");
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
process.stdout.write("Fixed commit message generated\n");
|
|
55
|
+
currentMessage = fixedMessage;
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
process.stdout.write(`Error during fix attempt: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
process.stdout.write(`Unable to generate valid commit message after ${retryLimit} attempts\n`);
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Validate a commit message
|
|
67
|
+
* @param {CommitMessage} message - The commit message to validate
|
|
68
|
+
* @returns {Promise<ICommitValidationResult>} Promise resolving to the validation result
|
|
69
|
+
*/
|
|
70
|
+
async validate(message) {
|
|
71
|
+
return this.VALIDATOR.validate(message);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
exports.ValidateCommitMessageUseCase = ValidateCommitMessageUseCase;
|
|
76
|
+
//# sourceMappingURL=validate-commit-message.use-case.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-commit-message.use-case.js","sources":["../../../../../src/application/use-case/validate-commit-message.use-case.ts"],"sourcesContent":[null],"names":["DEFAULT_VALIDATION_MAX_RETRIES"],"mappings":";;;;AAMA;;AAEG;MACU,4BAA4B,CAAA;IACvB,mBAAmB,GAAWA,+CAA8B;AAE5D,IAAA,SAAS;IAE1B,WAAY,CAAA,SAA2B,EAAE,iBAAA,GAA4BA,+CAA8B,EAAA;AAClG,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;AAC1B,QAAA,IAAI,CAAC,mBAAmB,GAAG,iBAAiB;;AAG7C;;;;;;;AAOG;IACH,MAAM,OAAO,CAAC,OAAsB,EAAE,mBAA4B,KAAK,EAAE,UAAmB,EAAE,OAA2B,EAAA;AACxH,QAAA,MAAM,UAAU,GAAW,UAAU,IAAI,IAAI,CAAC,mBAAmB;QACjE,IAAI,cAAc,GAAkB,OAAO;QAC3C,IAAI,QAAQ,GAAW,CAAC;AAExB,QAAA,OAAO,QAAQ,IAAI,UAAU,EAAE;YAC9B,MAAM,gBAAgB,GAA4B,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;AAErF,YAAA,IAAI,gBAAgB,CAAC,OAAO,EAAE;AAC7B,gBAAA,IAAI,QAAQ,GAAG,CAAC,EAAE;oBACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAgC,6BAAA,EAAA,QAAQ,WAAW,QAAQ,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAI,EAAA,CAAA,CAAC;;AAGrG,gBAAA,OAAO,cAAc;;;AAItB,YAAA,IAAI,CAAC,gBAAgB,IAAI,QAAQ,IAAI,UAAU,EAAE;AAChD,gBAAA,IAAI,gBAAgB,CAAC,MAAM,IAAI,gBAAgB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBAClE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAA4C,yCAAA,EAAA,QAAQ,CAAc,YAAA,CAAA,CAAC;AAExF,oBAAA,KAAK,MAAM,KAAK,IAAI,gBAAgB,CAAC,MAAM,EAAE;wBAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAO,IAAA,EAAA,KAAK,CAAI,EAAA,CAAA,CAAC;;;AAIxC,gBAAA,OAAO,IAAI;;;AAIZ,YAAA,QAAQ,EAAE;YACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAA6C,0CAAA,EAAA,QAAQ,CAAI,CAAA,EAAA,UAAU,CAAQ,MAAA,CAAA,CAAC;AAEjG,YAAA,IAAI;AACH,gBAAA,MAAM,YAAY,GAAyB,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,EAAE,gBAAgB,EAAE,OAAO,CAAC;gBAE9G,IAAI,CAAC,YAAY,EAAE;AAClB,oBAAA,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kDAAkD,CAAC;AAExE,oBAAA,OAAO,IAAI;;AAGZ,gBAAA,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC;gBACxD,cAAc,GAAG,YAAY;;YAC5B,OAAO,KAAK,EAAE;gBACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAI,EAAA,CAAA,CAAC;AAE7G,gBAAA,OAAO,IAAI;;;QAIb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAiD,8CAAA,EAAA,UAAU,CAAa,WAAA,CAAA,CAAC;AAE9F,QAAA,OAAO,IAAI;;AAGZ;;;;AAIG;IACH,MAAM,QAAQ,CAAC,OAAsB,EAAA;QACpC,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;;AAExC;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './numeric.constant';
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Numeric constants used throughout the application
|
|
3
|
+
*/
|
|
4
|
+
export declare const DEFAULT_MAX_RETRIES: number;
|
|
5
|
+
export declare const DEFAULT_VALIDATION_MAX_RETRIES: number;
|
|
6
|
+
export declare const MAX_TOKENS: number;
|
|
7
|
+
export declare const LLM_TEMPERATURE: number;
|
|
8
|
+
export declare const RETRY_DELAY_MS: number;
|
|
9
|
+
export declare const RULE_LEVEL_INDEX: number;
|
|
10
|
+
export declare const RULE_CONDITION_INDEX: number;
|
|
11
|
+
export declare const RULE_VALUE_INDEX: number;
|
|
12
|
+
export declare const MIN_RULE_LENGTH: number;
|
|
13
|
+
export declare const RULE_CONFIG_LENGTH: number;
|
|
14
|
+
export declare const VALIDATION_LEVEL_DISABLED: number;
|
|
15
|
+
export declare const VALIDATION_LEVEL_WARNING: number;
|
|
16
|
+
export declare const VALIDATION_LEVEL_ERROR: number;
|
|
17
|
+
export declare const ELLIPSIS_LENGTH: number;
|
|
18
|
+
export declare const MIN_API_KEY_LENGTH: number;
|
|
19
|
+
export declare const REDACTED_LENGTH: number;
|
|
20
|
+
export declare const NOTE_BOX_PADDING: number;
|
|
21
|
+
export declare const NOTE_BOX_CONTENT_PADDING: number;
|
|
22
|
+
export declare const MIN_RETRY_COUNT: number;
|
|
23
|
+
export declare const MAX_RETRY_COUNT: number;
|
|
24
|
+
export declare const OPENAI_MAX_TOKENS: number;
|
|
25
|
+
export declare const OPENAI_TEMPERATURE: number;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Numeric constants used throughout the application
|
|
5
|
+
*/
|
|
6
|
+
// Retry limits
|
|
7
|
+
const DEFAULT_MAX_RETRIES = 3;
|
|
8
|
+
const DEFAULT_VALIDATION_MAX_RETRIES = 3;
|
|
9
|
+
const RETRY_DELAY_MS = 1000;
|
|
10
|
+
const RULE_VALUE_INDEX = 2;
|
|
11
|
+
const MIN_RULE_LENGTH = 2;
|
|
12
|
+
const RULE_CONFIG_LENGTH = 3;
|
|
13
|
+
// Validation levels
|
|
14
|
+
const VALIDATION_LEVEL_DISABLED = 0;
|
|
15
|
+
const VALIDATION_LEVEL_ERROR = 2;
|
|
16
|
+
// String manipulation
|
|
17
|
+
const ELLIPSIS_LENGTH = 3;
|
|
18
|
+
const MIN_API_KEY_LENGTH = 8;
|
|
19
|
+
const REDACTED_LENGTH = 4;
|
|
20
|
+
// Numeric limits
|
|
21
|
+
const MIN_RETRY_COUNT = 1;
|
|
22
|
+
const MAX_RETRY_COUNT = 10;
|
|
23
|
+
// OpenAI API constants
|
|
24
|
+
const OPENAI_MAX_TOKENS = 2048;
|
|
25
|
+
const OPENAI_TEMPERATURE = 0.7;
|
|
26
|
+
|
|
27
|
+
exports.DEFAULT_MAX_RETRIES = DEFAULT_MAX_RETRIES;
|
|
28
|
+
exports.DEFAULT_VALIDATION_MAX_RETRIES = DEFAULT_VALIDATION_MAX_RETRIES;
|
|
29
|
+
exports.ELLIPSIS_LENGTH = ELLIPSIS_LENGTH;
|
|
30
|
+
exports.MAX_RETRY_COUNT = MAX_RETRY_COUNT;
|
|
31
|
+
exports.MIN_API_KEY_LENGTH = MIN_API_KEY_LENGTH;
|
|
32
|
+
exports.MIN_RETRY_COUNT = MIN_RETRY_COUNT;
|
|
33
|
+
exports.MIN_RULE_LENGTH = MIN_RULE_LENGTH;
|
|
34
|
+
exports.OPENAI_MAX_TOKENS = OPENAI_MAX_TOKENS;
|
|
35
|
+
exports.OPENAI_TEMPERATURE = OPENAI_TEMPERATURE;
|
|
36
|
+
exports.REDACTED_LENGTH = REDACTED_LENGTH;
|
|
37
|
+
exports.RETRY_DELAY_MS = RETRY_DELAY_MS;
|
|
38
|
+
exports.RULE_CONFIG_LENGTH = RULE_CONFIG_LENGTH;
|
|
39
|
+
exports.RULE_VALUE_INDEX = RULE_VALUE_INDEX;
|
|
40
|
+
exports.VALIDATION_LEVEL_DISABLED = VALIDATION_LEVEL_DISABLED;
|
|
41
|
+
exports.VALIDATION_LEVEL_ERROR = VALIDATION_LEVEL_ERROR;
|
|
42
|
+
//# sourceMappingURL=numeric.constant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"numeric.constant.js","sources":["../../../../../src/domain/constant/numeric.constant.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;AAEG;AAEH;AACO,MAAM,mBAAmB,GAAW;AACpC,MAAM,8BAA8B,GAAW;AAK/C,MAAM,cAAc,GAAW;AAK/B,MAAM,gBAAgB,GAAW;AACjC,MAAM,eAAe,GAAW;AAChC,MAAM,kBAAkB,GAAW;AAE1C;AACO,MAAM,yBAAyB,GAAW;AAE1C,MAAM,sBAAsB,GAAW;AAE9C;AACO,MAAM,eAAe,GAAW;AAChC,MAAM,kBAAkB,GAAW;AACnC,MAAM,eAAe,GAAW;AAMvC;AACO,MAAM,eAAe,GAAW;AAChC,MAAM,eAAe,GAAW;AAEvC;AACO,MAAM,iBAAiB,GAAW;AAClC,MAAM,kBAAkB,GAAW;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { CommitBody } from '../value-object/commit-body.value-object';
|
|
2
|
+
import type { CommitHeader } from '../value-object/commit-header.value-object';
|
|
3
|
+
/**
|
|
4
|
+
* Entity representing a complete commit message
|
|
5
|
+
*/
|
|
6
|
+
export declare class CommitMessage {
|
|
7
|
+
private readonly BODY;
|
|
8
|
+
private readonly HEADER;
|
|
9
|
+
constructor(header: CommitHeader, body: CommitBody);
|
|
10
|
+
/**
|
|
11
|
+
* Get the commit body
|
|
12
|
+
* @returns {CommitBody} The commit body
|
|
13
|
+
*/
|
|
14
|
+
getBody(): CommitBody;
|
|
15
|
+
/**
|
|
16
|
+
* Get breaking change text if present
|
|
17
|
+
* @returns {string | undefined} The breaking change text or undefined
|
|
18
|
+
*/
|
|
19
|
+
getBreakingChange(): string | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Get the commit header
|
|
22
|
+
* @returns {CommitHeader} The commit header
|
|
23
|
+
*/
|
|
24
|
+
getHeader(): CommitHeader;
|
|
25
|
+
/**
|
|
26
|
+
* Check if this is a breaking change
|
|
27
|
+
* @returns {boolean} True if breaking change
|
|
28
|
+
*/
|
|
29
|
+
isBreakingChange(): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Format the complete commit message
|
|
32
|
+
* @returns {string} The formatted commit message
|
|
33
|
+
*/
|
|
34
|
+
toString(): string;
|
|
35
|
+
/**
|
|
36
|
+
* Create a new CommitMessage with a different body
|
|
37
|
+
* @param {CommitBody} body - The new body
|
|
38
|
+
* @returns {CommitMessage} A new CommitMessage instance with the updated body
|
|
39
|
+
*/
|
|
40
|
+
withBody(body: CommitBody): CommitMessage;
|
|
41
|
+
/**
|
|
42
|
+
* Create a new CommitMessage with a different header
|
|
43
|
+
* @param {CommitHeader} header - The new header
|
|
44
|
+
* @returns {CommitMessage} A new CommitMessage instance with the updated header
|
|
45
|
+
*/
|
|
46
|
+
withHeader(header: CommitHeader): CommitMessage;
|
|
47
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Entity representing a complete commit message
|
|
5
|
+
*/
|
|
6
|
+
class CommitMessage {
|
|
7
|
+
BODY;
|
|
8
|
+
HEADER;
|
|
9
|
+
constructor(header, body) {
|
|
10
|
+
this.HEADER = header;
|
|
11
|
+
this.BODY = body;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Get the commit body
|
|
15
|
+
* @returns {CommitBody} The commit body
|
|
16
|
+
*/
|
|
17
|
+
getBody() {
|
|
18
|
+
return this.BODY;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Get breaking change text if present
|
|
22
|
+
* @returns {string | undefined} The breaking change text or undefined
|
|
23
|
+
*/
|
|
24
|
+
getBreakingChange() {
|
|
25
|
+
return this.BODY.getBreakingChange();
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Get the commit header
|
|
29
|
+
* @returns {CommitHeader} The commit header
|
|
30
|
+
*/
|
|
31
|
+
getHeader() {
|
|
32
|
+
return this.HEADER;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Check if this is a breaking change
|
|
36
|
+
* @returns {boolean} True if breaking change
|
|
37
|
+
*/
|
|
38
|
+
isBreakingChange() {
|
|
39
|
+
return this.BODY.hasBreakingChange();
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Format the complete commit message
|
|
43
|
+
* @returns {string} The formatted commit message
|
|
44
|
+
*/
|
|
45
|
+
toString() {
|
|
46
|
+
const parts = [this.HEADER.toString()];
|
|
47
|
+
if (!this.BODY.isEmpty()) {
|
|
48
|
+
parts.push(this.BODY.toString());
|
|
49
|
+
}
|
|
50
|
+
return parts.join("\n\n");
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Create a new CommitMessage with a different body
|
|
54
|
+
* @param {CommitBody} body - The new body
|
|
55
|
+
* @returns {CommitMessage} A new CommitMessage instance with the updated body
|
|
56
|
+
*/
|
|
57
|
+
withBody(body) {
|
|
58
|
+
return new CommitMessage(this.HEADER, body);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Create a new CommitMessage with a different header
|
|
62
|
+
* @param {CommitHeader} header - The new header
|
|
63
|
+
* @returns {CommitMessage} A new CommitMessage instance with the updated header
|
|
64
|
+
*/
|
|
65
|
+
withHeader(header) {
|
|
66
|
+
return new CommitMessage(header, this.BODY);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
exports.CommitMessage = CommitMessage;
|
|
71
|
+
//# sourceMappingURL=commit-message.entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commit-message.entity.js","sources":["../../../../../src/domain/entity/commit-message.entity.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAGA;;AAEG;MACU,aAAa,CAAA;AACR,IAAA,IAAI;AAEJ,IAAA,MAAM;IAEvB,WAAY,CAAA,MAAoB,EAAE,IAAgB,EAAA;AACjD,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;AAGjB;;;AAGG;IACH,OAAO,GAAA;QACN,OAAO,IAAI,CAAC,IAAI;;AAGjB;;;AAGG;IACH,iBAAiB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;;AAGrC;;;AAGG;IACH,SAAS,GAAA;QACR,OAAO,IAAI,CAAC,MAAM;;AAGnB;;;AAGG;IACH,gBAAgB,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;;AAGrC;;;AAGG;IACH,QAAQ,GAAA;QACP,MAAM,KAAK,GAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAErD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;YACzB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;;AAGjC,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;;AAG1B;;;;AAIG;AACH,IAAA,QAAQ,CAAC,IAAgB,EAAA;QACxB,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;;AAG5C;;;;AAIG;AACH,IAAA,UAAU,CAAC,MAAoB,EAAA;QAC9B,OAAO,IAAI,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;;AAE5C;;;;"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { ELLMProvider } from '../enum/llm-provider.enum';
|
|
2
|
+
import type { ApiKey } from '../value-object/api-key.value-object';
|
|
3
|
+
import { ECommitMode } from '../enum/commit-mode.enum';
|
|
4
|
+
/**
|
|
5
|
+
* Entity representing LLM configuration
|
|
6
|
+
*/
|
|
7
|
+
export declare class LLMConfiguration {
|
|
8
|
+
private readonly API_KEY;
|
|
9
|
+
private readonly MAX_RETRIES;
|
|
10
|
+
private readonly MODE;
|
|
11
|
+
private readonly MODEL;
|
|
12
|
+
private readonly PROVIDER;
|
|
13
|
+
private readonly VALIDATION_MAX_RETRIES;
|
|
14
|
+
constructor(provider: ELLMProvider, apiKey: ApiKey, mode: ECommitMode, model?: string, maxRetries?: number, validationMaxRetries?: number);
|
|
15
|
+
/**
|
|
16
|
+
* Get the API key
|
|
17
|
+
* @returns {ApiKey} The API key
|
|
18
|
+
*/
|
|
19
|
+
getApiKey(): ApiKey;
|
|
20
|
+
/**
|
|
21
|
+
* Get the maximum retries
|
|
22
|
+
* @returns {number} The maximum retries
|
|
23
|
+
*/
|
|
24
|
+
getMaxRetries(): number;
|
|
25
|
+
/**
|
|
26
|
+
* Get the commit mode
|
|
27
|
+
* @returns {ECommitMode} The commit mode
|
|
28
|
+
*/
|
|
29
|
+
getMode(): ECommitMode;
|
|
30
|
+
/**
|
|
31
|
+
* Get the model name
|
|
32
|
+
* @returns {string | undefined} The model name or undefined
|
|
33
|
+
*/
|
|
34
|
+
getModel(): string | undefined;
|
|
35
|
+
/**
|
|
36
|
+
* Get the LLM provider
|
|
37
|
+
* @returns {ELLMProvider} The LLM provider
|
|
38
|
+
*/
|
|
39
|
+
getProvider(): ELLMProvider;
|
|
40
|
+
/**
|
|
41
|
+
* Get the validation max retries
|
|
42
|
+
* @returns {number} The validation max retries
|
|
43
|
+
*/
|
|
44
|
+
getValidationMaxRetries(): number;
|
|
45
|
+
/**
|
|
46
|
+
* Check if mode is auto
|
|
47
|
+
* @returns {boolean} True if mode is auto
|
|
48
|
+
*/
|
|
49
|
+
isAutoMode(): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Check if mode is manual
|
|
52
|
+
* @returns {boolean} True if mode is manual
|
|
53
|
+
*/
|
|
54
|
+
isManualMode(): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Create a new configuration with a different API key
|
|
57
|
+
* @param {ApiKey} apiKey - The new API key
|
|
58
|
+
* @returns {LLMConfiguration} A new configuration with the updated API key
|
|
59
|
+
*/
|
|
60
|
+
withApiKey(apiKey: ApiKey): LLMConfiguration;
|
|
61
|
+
/**
|
|
62
|
+
* Create a new configuration with a different mode
|
|
63
|
+
* @param {ECommitMode} mode - The new mode
|
|
64
|
+
* @returns {LLMConfiguration} A new configuration with the updated mode
|
|
65
|
+
*/
|
|
66
|
+
withMode(mode: ECommitMode): LLMConfiguration;
|
|
67
|
+
/**
|
|
68
|
+
* Create a new configuration with updated model
|
|
69
|
+
* @param {string} model - The new model name
|
|
70
|
+
* @returns {LLMConfiguration} A new configuration with the updated model
|
|
71
|
+
*/
|
|
72
|
+
withModel(model: string): LLMConfiguration;
|
|
73
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var numeric_constant = require('../constant/numeric.constant.js');
|
|
4
|
+
var commitMode_enum = require('../enum/commit-mode.enum.js');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Entity representing LLM configuration
|
|
8
|
+
*/
|
|
9
|
+
class LLMConfiguration {
|
|
10
|
+
API_KEY;
|
|
11
|
+
MAX_RETRIES;
|
|
12
|
+
MODE;
|
|
13
|
+
MODEL;
|
|
14
|
+
PROVIDER;
|
|
15
|
+
VALIDATION_MAX_RETRIES;
|
|
16
|
+
constructor(provider, apiKey, mode, model, maxRetries = numeric_constant.DEFAULT_MAX_RETRIES, validationMaxRetries = numeric_constant.DEFAULT_VALIDATION_MAX_RETRIES) {
|
|
17
|
+
this.PROVIDER = provider;
|
|
18
|
+
this.API_KEY = apiKey;
|
|
19
|
+
this.MODE = mode;
|
|
20
|
+
this.MODEL = model;
|
|
21
|
+
this.MAX_RETRIES = maxRetries;
|
|
22
|
+
this.VALIDATION_MAX_RETRIES = validationMaxRetries;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Get the API key
|
|
26
|
+
* @returns {ApiKey} The API key
|
|
27
|
+
*/
|
|
28
|
+
getApiKey() {
|
|
29
|
+
return this.API_KEY;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Get the maximum retries
|
|
33
|
+
* @returns {number} The maximum retries
|
|
34
|
+
*/
|
|
35
|
+
getMaxRetries() {
|
|
36
|
+
return this.MAX_RETRIES;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Get the commit mode
|
|
40
|
+
* @returns {ECommitMode} The commit mode
|
|
41
|
+
*/
|
|
42
|
+
getMode() {
|
|
43
|
+
return this.MODE;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Get the model name
|
|
47
|
+
* @returns {string | undefined} The model name or undefined
|
|
48
|
+
*/
|
|
49
|
+
getModel() {
|
|
50
|
+
return this.MODEL;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Get the LLM provider
|
|
54
|
+
* @returns {ELLMProvider} The LLM provider
|
|
55
|
+
*/
|
|
56
|
+
getProvider() {
|
|
57
|
+
return this.PROVIDER;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Get the validation max retries
|
|
61
|
+
* @returns {number} The validation max retries
|
|
62
|
+
*/
|
|
63
|
+
getValidationMaxRetries() {
|
|
64
|
+
return this.VALIDATION_MAX_RETRIES;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Check if mode is auto
|
|
68
|
+
* @returns {boolean} True if mode is auto
|
|
69
|
+
*/
|
|
70
|
+
isAutoMode() {
|
|
71
|
+
return this.MODE === commitMode_enum.ECommitMode.AUTO;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Check if mode is manual
|
|
75
|
+
* @returns {boolean} True if mode is manual
|
|
76
|
+
*/
|
|
77
|
+
isManualMode() {
|
|
78
|
+
return this.MODE === commitMode_enum.ECommitMode.MANUAL;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Create a new configuration with a different API key
|
|
82
|
+
* @param {ApiKey} apiKey - The new API key
|
|
83
|
+
* @returns {LLMConfiguration} A new configuration with the updated API key
|
|
84
|
+
*/
|
|
85
|
+
withApiKey(apiKey) {
|
|
86
|
+
return new LLMConfiguration(this.PROVIDER, apiKey, this.MODE, this.MODEL, this.MAX_RETRIES, this.VALIDATION_MAX_RETRIES);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Create a new configuration with a different mode
|
|
90
|
+
* @param {ECommitMode} mode - The new mode
|
|
91
|
+
* @returns {LLMConfiguration} A new configuration with the updated mode
|
|
92
|
+
*/
|
|
93
|
+
withMode(mode) {
|
|
94
|
+
return new LLMConfiguration(this.PROVIDER, this.API_KEY, mode, this.MODEL, this.MAX_RETRIES, this.VALIDATION_MAX_RETRIES);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Create a new configuration with updated model
|
|
98
|
+
* @param {string} model - The new model name
|
|
99
|
+
* @returns {LLMConfiguration} A new configuration with the updated model
|
|
100
|
+
*/
|
|
101
|
+
withModel(model) {
|
|
102
|
+
return new LLMConfiguration(this.PROVIDER, this.API_KEY, this.MODE, model, this.MAX_RETRIES, this.VALIDATION_MAX_RETRIES);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
exports.LLMConfiguration = LLMConfiguration;
|
|
107
|
+
//# sourceMappingURL=llm-configuration.entity.js.map
|