@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,315 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chalk = require('chalk');
|
|
4
|
+
var ora = require('ora');
|
|
5
|
+
var prompts = require('prompts');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Implementation of the CLI interface service using the prompts library.
|
|
9
|
+
* Provides methods for interacting with the user through the command line.
|
|
10
|
+
*/
|
|
11
|
+
class PromptsCliInterface {
|
|
12
|
+
/** Reference to the active spinner instance */
|
|
13
|
+
// @ts-ignore
|
|
14
|
+
spinner;
|
|
15
|
+
/**
|
|
16
|
+
* Initializes a new instance of the PromptsCliInterface.
|
|
17
|
+
* Sets up the spinner for providing visual feedback during operations.
|
|
18
|
+
*/
|
|
19
|
+
constructor() {
|
|
20
|
+
this.spinner = ora();
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Clears the console screen.
|
|
24
|
+
*/
|
|
25
|
+
clear() {
|
|
26
|
+
process.stdout.write("\u001Bc");
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Displays a confirmation prompt to the user.
|
|
30
|
+
* @param message - The message to display to the user
|
|
31
|
+
* @param isConfirmedByDefault - The default value for the confirmation, defaults to false
|
|
32
|
+
* @returns Promise that resolves to the user's response (true for confirmed, false for declined)
|
|
33
|
+
*/
|
|
34
|
+
async confirm(message, isConfirmedByDefault = false) {
|
|
35
|
+
try {
|
|
36
|
+
const response = await prompts({
|
|
37
|
+
active: "Yes",
|
|
38
|
+
inactive: "No",
|
|
39
|
+
// eslint-disable-next-line @elsikora/typescript/naming-convention
|
|
40
|
+
initial: isConfirmedByDefault,
|
|
41
|
+
message,
|
|
42
|
+
name: "value",
|
|
43
|
+
type: "toggle",
|
|
44
|
+
});
|
|
45
|
+
if (response.value === undefined) {
|
|
46
|
+
this.error("Operation cancelled by user");
|
|
47
|
+
process.exit(0);
|
|
48
|
+
}
|
|
49
|
+
return response.value;
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
this.error("Operation cancelled by user");
|
|
53
|
+
process.exit(0);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Displays an error message to the user.
|
|
58
|
+
* @param message - The error message to display
|
|
59
|
+
*/
|
|
60
|
+
error(message) {
|
|
61
|
+
process.stderr.write(`${chalk.red(message)}\n`);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Displays a grouped multi-select prompt to the user.
|
|
65
|
+
* @param message - The message to display to the user
|
|
66
|
+
* @param options - Record of groups and their options
|
|
67
|
+
* @param isRequired - Whether a selection is required, defaults to false
|
|
68
|
+
* @param initialValues - Initial selected values
|
|
69
|
+
* @returns Promise that resolves to an array of selected values
|
|
70
|
+
*/
|
|
71
|
+
async groupMultiselect(message, options, isRequired = false, initialValues) {
|
|
72
|
+
// Convert options to a flat array with group prefixes
|
|
73
|
+
// eslint-disable-next-line @elsikora/typescript/naming-convention
|
|
74
|
+
const choices = [];
|
|
75
|
+
for (const [group, groupOptions] of Object.entries(options)) {
|
|
76
|
+
for (const opt of groupOptions) {
|
|
77
|
+
choices.push({
|
|
78
|
+
// eslint-disable-next-line @elsikora/typescript/naming-convention
|
|
79
|
+
selected: initialValues?.includes(opt.value) ?? false,
|
|
80
|
+
title: `${group}: ${opt.label}`,
|
|
81
|
+
value: opt.value,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
try {
|
|
86
|
+
const response = await prompts({
|
|
87
|
+
choices,
|
|
88
|
+
// eslint-disable-next-line @elsikora/typescript/naming-convention
|
|
89
|
+
instructions: false,
|
|
90
|
+
message: `${message} (space to select)`,
|
|
91
|
+
min: isRequired ? 1 : undefined,
|
|
92
|
+
name: "values",
|
|
93
|
+
type: "multiselect",
|
|
94
|
+
});
|
|
95
|
+
if (response.values === undefined) {
|
|
96
|
+
this.error("Operation cancelled by user");
|
|
97
|
+
process.exit(0);
|
|
98
|
+
}
|
|
99
|
+
return response.values;
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
this.error("Operation cancelled by user");
|
|
103
|
+
process.exit(0);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Handles and displays an error message with additional error details.
|
|
108
|
+
* @param message - The error message to display
|
|
109
|
+
* @param error - The error object or details
|
|
110
|
+
*/
|
|
111
|
+
handleError(message, error) {
|
|
112
|
+
process.stderr.write(`${chalk.red(message)}\n`);
|
|
113
|
+
process.stderr.write(`${String(error)}\n`);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Displays an informational message to the user.
|
|
117
|
+
* @param message - The info message to display
|
|
118
|
+
*/
|
|
119
|
+
info(message) {
|
|
120
|
+
process.stdout.write(`${chalk.blue(message)}\n`);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Displays a standard message to the user.
|
|
124
|
+
* @param message - The message to display
|
|
125
|
+
*/
|
|
126
|
+
log(message) {
|
|
127
|
+
process.stdout.write(`${message}\n`);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Displays a multi-select prompt to the user.
|
|
131
|
+
* @param message - The message to display to the user
|
|
132
|
+
* @param options - Array of options to select from
|
|
133
|
+
* @param isRequired - Whether a selection is required, defaults to false
|
|
134
|
+
* @param initialValues - Initial selected values
|
|
135
|
+
* @returns Promise that resolves to an array of selected values
|
|
136
|
+
*/
|
|
137
|
+
async multiselect(message, options, isRequired = false, initialValues) {
|
|
138
|
+
// eslint-disable-next-line @elsikora/typescript/naming-convention
|
|
139
|
+
const choices = options.map((opt) => ({
|
|
140
|
+
// eslint-disable-next-line @elsikora/typescript/naming-convention
|
|
141
|
+
selected: initialValues?.includes(opt.value) ?? false,
|
|
142
|
+
title: opt.label,
|
|
143
|
+
value: opt.value,
|
|
144
|
+
}));
|
|
145
|
+
try {
|
|
146
|
+
const response = await prompts({
|
|
147
|
+
choices,
|
|
148
|
+
// eslint-disable-next-line @elsikora/typescript/naming-convention
|
|
149
|
+
instructions: false,
|
|
150
|
+
message: `${message} (space to select)`,
|
|
151
|
+
min: isRequired ? 1 : undefined,
|
|
152
|
+
name: "values",
|
|
153
|
+
type: "multiselect",
|
|
154
|
+
});
|
|
155
|
+
if (response.values === undefined) {
|
|
156
|
+
this.error("Operation cancelled by user");
|
|
157
|
+
process.exit(0);
|
|
158
|
+
}
|
|
159
|
+
return response.values;
|
|
160
|
+
}
|
|
161
|
+
catch {
|
|
162
|
+
this.error("Operation cancelled by user");
|
|
163
|
+
process.exit(0);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Displays a note to the user with a title and message.
|
|
168
|
+
* @param title - The title of the note
|
|
169
|
+
* @param message - The message content of the note
|
|
170
|
+
*/
|
|
171
|
+
note(title, message) {
|
|
172
|
+
const lines = message.split("\n");
|
|
173
|
+
// eslint-disable-next-line @elsikora/typescript/no-magic-numbers
|
|
174
|
+
const width = Math.max(title.length, ...lines.map((line) => line.length)) + 4; // Add padding
|
|
175
|
+
const top = `┌${"─".repeat(width)}┐`;
|
|
176
|
+
const bottom = `└${"─".repeat(width)}┘`;
|
|
177
|
+
// Create middle lines with padding
|
|
178
|
+
// eslint-disable-next-line @elsikora/typescript/no-magic-numbers
|
|
179
|
+
const paddedTitle = ` ${title.padEnd(width - 2)} `;
|
|
180
|
+
// eslint-disable-next-line @elsikora/typescript/no-magic-numbers
|
|
181
|
+
const paddedLines = lines.map((line) => ` ${line.padEnd(width - 2)} `);
|
|
182
|
+
// Log the note box with styling
|
|
183
|
+
process.stdout.write(`${chalk.dim(top)}\n`);
|
|
184
|
+
process.stdout.write(`${chalk.dim("│") + chalk.bold(paddedTitle) + chalk.dim("│")}\n`);
|
|
185
|
+
if (lines.length > 0) {
|
|
186
|
+
// Add a separator line
|
|
187
|
+
const separator = `├${"─".repeat(width)}┤`;
|
|
188
|
+
process.stdout.write(`${chalk.dim(separator)}\n`);
|
|
189
|
+
// Add message content
|
|
190
|
+
for (const line of paddedLines) {
|
|
191
|
+
process.stdout.write(`${chalk.dim("│") + chalk.dim(line) + chalk.dim("│")}\n`);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
process.stdout.write(`${chalk.dim(bottom)}\n`);
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Displays a single select prompt to the user.
|
|
198
|
+
* @param message - The message to display to the user
|
|
199
|
+
* @param options - Array of options to select from
|
|
200
|
+
* @param initialValue - Initial selected value
|
|
201
|
+
* @returns Promise that resolves to the selected value
|
|
202
|
+
*/
|
|
203
|
+
async select(message, options, initialValue) {
|
|
204
|
+
const choices = options.map((opt) => ({
|
|
205
|
+
title: opt.label,
|
|
206
|
+
value: opt.value,
|
|
207
|
+
}));
|
|
208
|
+
const initialIndex = initialValue ? choices.findIndex((choice) => choice.value === initialValue) : undefined;
|
|
209
|
+
try {
|
|
210
|
+
const response = await prompts({
|
|
211
|
+
choices,
|
|
212
|
+
initial: initialIndex === -1 ? 0 : initialIndex,
|
|
213
|
+
message,
|
|
214
|
+
name: "value",
|
|
215
|
+
type: "select",
|
|
216
|
+
});
|
|
217
|
+
if (response.value === undefined) {
|
|
218
|
+
this.error("Operation cancelled by user");
|
|
219
|
+
process.exit(0);
|
|
220
|
+
}
|
|
221
|
+
return response.value;
|
|
222
|
+
}
|
|
223
|
+
catch {
|
|
224
|
+
this.error("Operation cancelled by user");
|
|
225
|
+
process.exit(0);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Starts a spinner with the specified message.
|
|
230
|
+
* Stops any existing spinner first.
|
|
231
|
+
* @param message - The message to display while the spinner is active
|
|
232
|
+
*/
|
|
233
|
+
startSpinner(message) {
|
|
234
|
+
this.spinner.stop();
|
|
235
|
+
this.spinner = ora(message).start();
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Stops the current spinner with an optional completion message.
|
|
239
|
+
* @param message - Optional message to display when the spinner stops
|
|
240
|
+
*/
|
|
241
|
+
stopSpinner(message) {
|
|
242
|
+
this.spinner.stop();
|
|
243
|
+
if (message) {
|
|
244
|
+
process.stdout.write(`${message}\n`);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Displays a success message to the user.
|
|
249
|
+
* @param message - The success message to display
|
|
250
|
+
*/
|
|
251
|
+
success(message) {
|
|
252
|
+
process.stdout.write(`${chalk.green(message)}\n`);
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Displays a text input prompt to the user.
|
|
256
|
+
* @param message - The message to display to the user
|
|
257
|
+
* @param placeholder - Optional placeholder text for the input field
|
|
258
|
+
* @param initialValue - Optional initial value for the input field
|
|
259
|
+
* @param validate - Optional validation function for the input
|
|
260
|
+
* @returns Promise that resolves to the user's input text
|
|
261
|
+
*/
|
|
262
|
+
async text(message, _placeholder, initialValue, validate) {
|
|
263
|
+
// Convert the validate function to match prompts' expected format
|
|
264
|
+
const promptsValidate = validate
|
|
265
|
+
? // eslint-disable-next-line @elsikora/typescript/explicit-function-return-type
|
|
266
|
+
(value) => {
|
|
267
|
+
const result = validate(value);
|
|
268
|
+
if (result === undefined)
|
|
269
|
+
return true;
|
|
270
|
+
if (typeof result === "string")
|
|
271
|
+
return result;
|
|
272
|
+
if (result instanceof Error)
|
|
273
|
+
return result.message;
|
|
274
|
+
return "Invalid input";
|
|
275
|
+
}
|
|
276
|
+
: undefined;
|
|
277
|
+
try {
|
|
278
|
+
const response = await prompts({
|
|
279
|
+
initial: initialValue,
|
|
280
|
+
message,
|
|
281
|
+
name: "value",
|
|
282
|
+
type: "text",
|
|
283
|
+
validate: promptsValidate,
|
|
284
|
+
});
|
|
285
|
+
if (response.value === undefined) {
|
|
286
|
+
this.error("Operation cancelled by user");
|
|
287
|
+
process.exit(0);
|
|
288
|
+
}
|
|
289
|
+
return response.value;
|
|
290
|
+
}
|
|
291
|
+
catch {
|
|
292
|
+
this.error("Operation cancelled by user");
|
|
293
|
+
process.exit(0);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Update the spinner message without stopping it.
|
|
298
|
+
* @param message - The new message to display
|
|
299
|
+
*/
|
|
300
|
+
updateSpinner(message) {
|
|
301
|
+
if (this.spinner?.isSpinning) {
|
|
302
|
+
this.spinner.text = message;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Displays a warning message to the user.
|
|
307
|
+
* @param message - The warning message to display
|
|
308
|
+
*/
|
|
309
|
+
warn(message) {
|
|
310
|
+
process.stdout.write(`${chalk.yellow(message)}\n`);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
exports.PromptsCliInterface = PromptsCliInterface;
|
|
315
|
+
//# sourceMappingURL=prompts-cli-interface.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts-cli-interface.service.js","sources":["../../../../../src/infrastructure/service/prompts-cli-interface.service.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
type TCommit = (message: string) => void;
|
|
2
|
+
/**
|
|
3
|
+
* Main adapter for Commitizen integration
|
|
4
|
+
*/
|
|
5
|
+
export declare class CommitizenAdapter {
|
|
6
|
+
private readonly CONTAINER;
|
|
7
|
+
constructor();
|
|
8
|
+
/**
|
|
9
|
+
* Main entry point for commitizen
|
|
10
|
+
* @param inquirerIns - Instance passed by commitizen (unused in our implementation)
|
|
11
|
+
* @param commit - Callback to execute with complete commit message
|
|
12
|
+
*/
|
|
13
|
+
prompter(_inquirerIns: unknown, commit: TCommit): Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* Extract LLM prompt context from commitlint rules and prompts
|
|
16
|
+
*/
|
|
17
|
+
private extractLlmPromptContext;
|
|
18
|
+
/**
|
|
19
|
+
* Get API key prompt information based on provider
|
|
20
|
+
*/
|
|
21
|
+
private getApiKeyPromptInfo;
|
|
22
|
+
}
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=commitizen.adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commitizen.adapter.d.ts","sourceRoot":"","sources":["../../../src/presentation/commitizen.adapter.ts"],"names":[],"mappings":"AA2BA,KAAK,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAGzC;;GAEG;AACH,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;;IAMvC;;;;OAIG;IACG,QAAQ,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAyNrE;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAyE/B;;OAEG;IACH,OAAO,CAAC,mBAAmB;CA+B3B"}
|
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var load = require('@commitlint/load');
|
|
4
|
+
var numeric_constant = require('../domain/constant/numeric.constant.js');
|
|
5
|
+
var llmConfiguration_entity = require('../domain/entity/llm-configuration.entity.js');
|
|
6
|
+
var apiKey_valueObject = require('../domain/value-object/api-key.value-object.js');
|
|
7
|
+
var commitlintValidator_service = require('../infrastructure/commit-validator/commitlint-validator.service.js');
|
|
8
|
+
var container = require('../infrastructure/di/container.js');
|
|
9
|
+
|
|
10
|
+
// Type constants
|
|
11
|
+
const TYPE_ENUM_INDEX = 2;
|
|
12
|
+
/**
|
|
13
|
+
* Main adapter for Commitizen integration
|
|
14
|
+
*/
|
|
15
|
+
class CommitizenAdapter {
|
|
16
|
+
CONTAINER;
|
|
17
|
+
constructor() {
|
|
18
|
+
this.CONTAINER = container.createAppContainer();
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Main entry point for commitizen
|
|
22
|
+
* @param inquirerIns - Instance passed by commitizen (unused in our implementation)
|
|
23
|
+
* @param commit - Callback to execute with complete commit message
|
|
24
|
+
*/
|
|
25
|
+
async prompter(_inquirerIns, commit) {
|
|
26
|
+
const loadResult = await load();
|
|
27
|
+
const { prompt = {}, rules } = loadResult;
|
|
28
|
+
try {
|
|
29
|
+
// Get use cases from container
|
|
30
|
+
const configureLLMUseCase = this.CONTAINER.get(container.ConfigureLLMUseCaseToken);
|
|
31
|
+
const generateCommitUseCase = this.CONTAINER.get(container.GenerateCommitMessageUseCaseToken);
|
|
32
|
+
const validateCommitUseCase = this.CONTAINER.get(container.ValidateCommitMessageUseCaseToken);
|
|
33
|
+
const manualCommitUseCase = this.CONTAINER.get(container.ManualCommitUseCaseToken);
|
|
34
|
+
const cliInterface = this.CONTAINER.get(container.CliInterfaceServiceToken);
|
|
35
|
+
const commitRepository = this.CONTAINER.get(container.CommitRepositoryToken);
|
|
36
|
+
const configService = this.CONTAINER.get(container.ConfigServiceToken);
|
|
37
|
+
if (!configureLLMUseCase || !generateCommitUseCase || !validateCommitUseCase || !manualCommitUseCase || !cliInterface || !commitRepository || !configService) {
|
|
38
|
+
throw new Error("Failed to initialize required services");
|
|
39
|
+
}
|
|
40
|
+
// Extract context from commitlint config
|
|
41
|
+
const promptContext = this.extractLlmPromptContext(rules, prompt);
|
|
42
|
+
// Add git diff and files to context for AI mode
|
|
43
|
+
const [diff, files] = await Promise.all([commitRepository.getStagedDiff(), commitRepository.getStagedFiles()]);
|
|
44
|
+
promptContext.diff = diff;
|
|
45
|
+
promptContext.files = files.join("\n");
|
|
46
|
+
// Get or configure LLM
|
|
47
|
+
let llmConfig = await configureLLMUseCase.getCurrentConfiguration();
|
|
48
|
+
const isConfigExists = await configService.exists();
|
|
49
|
+
if (isConfigExists) {
|
|
50
|
+
// Configuration exists - load it first to show details
|
|
51
|
+
const config = await configService.get();
|
|
52
|
+
// Ask if they want to use existing configuration
|
|
53
|
+
const modeInfo = config.mode === "auto" ? `${config.mode} mode, ${config.provider} provider` : `${config.mode} mode`;
|
|
54
|
+
const isUseExisting = await cliInterface.confirm(`Found existing configuration (${modeInfo}). Use it?`, true);
|
|
55
|
+
if (!isUseExisting) {
|
|
56
|
+
cliInterface.info("Let's reconfigure...");
|
|
57
|
+
llmConfig = await configureLLMUseCase.configureInteractively();
|
|
58
|
+
// Check if we need to prompt for API key after configuration
|
|
59
|
+
if (llmConfig.isAutoMode() && llmConfig.getApiKey().getValue() === "will-prompt-on-use") {
|
|
60
|
+
// Ask for API key
|
|
61
|
+
const { hint, prompt } = this.getApiKeyPromptInfo(llmConfig.getProvider());
|
|
62
|
+
const apiKeyValue = await cliInterface.text(prompt, hint, "", (value) => {
|
|
63
|
+
if (!value || value.trim().length === 0) {
|
|
64
|
+
return "API key is required";
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
// Create new configuration with the provided API key
|
|
68
|
+
llmConfig = new llmConfiguration_entity.LLMConfiguration(llmConfig.getProvider(), new apiKey_valueObject.ApiKey(apiKeyValue), llmConfig.getMode(), llmConfig.getModel(), llmConfig.getMaxRetries(), llmConfig.getValidationMaxRetries());
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
else if (config.mode === "auto" && !llmConfig) {
|
|
72
|
+
// User wants to use existing config but API key is missing
|
|
73
|
+
const environmentVariableNames = {
|
|
74
|
+
anthropic: "ANTHROPIC_API_KEY",
|
|
75
|
+
"aws-bedrock": "AWS_BEDROCK_API_KEY",
|
|
76
|
+
"azure-openai": "AZURE_OPENAI_API_KEY",
|
|
77
|
+
google: "GOOGLE_API_KEY",
|
|
78
|
+
ollama: "OLLAMA_API_KEY",
|
|
79
|
+
openai: "OPENAI_API_KEY",
|
|
80
|
+
};
|
|
81
|
+
const environmentVariableName = environmentVariableNames[config.provider] || "";
|
|
82
|
+
cliInterface.warn(`API key not found in ${environmentVariableName} environment variable.`);
|
|
83
|
+
// Ask for API key
|
|
84
|
+
const { hint, prompt } = this.getApiKeyPromptInfo(config.provider);
|
|
85
|
+
const apiKeyValue = await cliInterface.text(prompt, hint, "", (value) => {
|
|
86
|
+
if (!value || value.trim().length === 0) {
|
|
87
|
+
return "API key is required";
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
// Create new configuration with the provided API key
|
|
91
|
+
const maxRetries = config.maxRetries ?? numeric_constant.DEFAULT_MAX_RETRIES;
|
|
92
|
+
const validationMaxRetries = config.validationMaxRetries ?? numeric_constant.DEFAULT_VALIDATION_MAX_RETRIES;
|
|
93
|
+
llmConfig = new llmConfiguration_entity.LLMConfiguration(config.provider, new apiKey_valueObject.ApiKey(apiKeyValue), config.mode, config.model, maxRetries, validationMaxRetries);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
// No configuration at all
|
|
98
|
+
cliInterface.info("No configuration found. Let's set it up!");
|
|
99
|
+
llmConfig = await configureLLMUseCase.configureInteractively();
|
|
100
|
+
// Check if we need to prompt for API key after configuration
|
|
101
|
+
if (llmConfig.isAutoMode() && llmConfig.getApiKey().getValue() === "will-prompt-on-use") {
|
|
102
|
+
// Ask for API key
|
|
103
|
+
const { hint, prompt } = this.getApiKeyPromptInfo(llmConfig.getProvider());
|
|
104
|
+
const apiKeyValue = await cliInterface.text(prompt, hint, "", (value) => {
|
|
105
|
+
if (!value || value.trim().length === 0) {
|
|
106
|
+
return "API key is required";
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
// Create new configuration with the provided API key
|
|
110
|
+
llmConfig = new llmConfiguration_entity.LLMConfiguration(llmConfig.getProvider(), new apiKey_valueObject.ApiKey(apiKeyValue), llmConfig.getMode(), llmConfig.getModel(), llmConfig.getMaxRetries(), llmConfig.getValidationMaxRetries());
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
// Configuration should exist at this point
|
|
114
|
+
if (!llmConfig) {
|
|
115
|
+
throw new Error("Failed to configure LLM settings");
|
|
116
|
+
}
|
|
117
|
+
// Check commit mode
|
|
118
|
+
if (llmConfig.isManualMode()) {
|
|
119
|
+
cliInterface.info("Using manual commit mode...");
|
|
120
|
+
const commitMessage = await manualCommitUseCase.execute(promptContext);
|
|
121
|
+
commit(commitMessage.toString());
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
// Auto mode - set LLM configuration on validator if it supports it
|
|
125
|
+
const validator = this.CONTAINER.get(container.CommitValidatorToken) ?? {};
|
|
126
|
+
if (validator instanceof commitlintValidator_service.CommitlintValidatorService) {
|
|
127
|
+
validator.setLLMConfiguration(llmConfig);
|
|
128
|
+
}
|
|
129
|
+
// Auto mode - generate with AI
|
|
130
|
+
cliInterface.info("Using AI-powered commit mode...");
|
|
131
|
+
try {
|
|
132
|
+
// Generate commit message
|
|
133
|
+
cliInterface.startSpinner("Generating commit message with AI...");
|
|
134
|
+
let generatedMessage;
|
|
135
|
+
try {
|
|
136
|
+
generatedMessage = await generateCommitUseCase.execute(promptContext, llmConfig, (attempt, maxRetries, error) => {
|
|
137
|
+
cliInterface.updateSpinner(`Generating commit message with AI... (Attempt ${attempt}/${maxRetries} failed: ${error.message})`);
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
catch (genError) {
|
|
141
|
+
cliInterface.stopSpinner();
|
|
142
|
+
throw genError;
|
|
143
|
+
}
|
|
144
|
+
cliInterface.stopSpinner();
|
|
145
|
+
cliInterface.success("AI generated initial commit message");
|
|
146
|
+
// Validate and fix if needed
|
|
147
|
+
cliInterface.startSpinner("Validating commit message format...");
|
|
148
|
+
// Track validation attempts
|
|
149
|
+
let lastValidationAttempt = 0;
|
|
150
|
+
const originalValidate = validateCommitUseCase.validate.bind(validateCommitUseCase);
|
|
151
|
+
validateCommitUseCase.validate = async (message) => {
|
|
152
|
+
lastValidationAttempt++;
|
|
153
|
+
if (lastValidationAttempt > 1) {
|
|
154
|
+
cliInterface.updateSpinner(`Validating commit message format... (attempt ${lastValidationAttempt})`);
|
|
155
|
+
}
|
|
156
|
+
return originalValidate(message);
|
|
157
|
+
};
|
|
158
|
+
const validatedMessage = await validateCommitUseCase.execute(generatedMessage, true, llmConfig.getValidationMaxRetries(), promptContext);
|
|
159
|
+
cliInterface.stopSpinner();
|
|
160
|
+
// Restore original validate method
|
|
161
|
+
validateCommitUseCase.validate = originalValidate;
|
|
162
|
+
if (!validatedMessage) {
|
|
163
|
+
cliInterface.warn("Could not generate a valid commit message. Switching to manual mode...");
|
|
164
|
+
const commitMessage = await manualCommitUseCase.execute(promptContext);
|
|
165
|
+
commit(commitMessage.toString());
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
// Show the generated message
|
|
169
|
+
cliInterface.success("AI generated commit message successfully!");
|
|
170
|
+
cliInterface.note("Generated commit message:", validatedMessage.toString());
|
|
171
|
+
// Ask for confirmation
|
|
172
|
+
const isConfirmed = await cliInterface.confirm("Do you want to proceed with this commit message?", true);
|
|
173
|
+
if (isConfirmed) {
|
|
174
|
+
commit(validatedMessage.toString());
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
cliInterface.info("Switching to manual mode to edit the message...");
|
|
178
|
+
const commitMessage = await manualCommitUseCase.execute(promptContext);
|
|
179
|
+
commit(commitMessage.toString());
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
catch (error) {
|
|
183
|
+
// Check if it's a retry exhaustion error
|
|
184
|
+
if (error instanceof Error && error.message.includes("Failed to generate commit message after")) {
|
|
185
|
+
cliInterface.error(error.message);
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
cliInterface.handleError("Error generating commit with AI:", error);
|
|
189
|
+
}
|
|
190
|
+
cliInterface.warn("Falling back to manual commit entry...");
|
|
191
|
+
const commitMessage = await manualCommitUseCase.execute(promptContext);
|
|
192
|
+
commit(commitMessage.toString());
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
catch (error) {
|
|
196
|
+
if (error instanceof Error && error.message === "User canceled the commit") {
|
|
197
|
+
throw error;
|
|
198
|
+
}
|
|
199
|
+
console.error("Error in commitizen adapter:", error);
|
|
200
|
+
throw error;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Extract LLM prompt context from commitlint rules and prompts
|
|
205
|
+
*/
|
|
206
|
+
extractLlmPromptContext(rules, prompts) {
|
|
207
|
+
const context = {
|
|
208
|
+
rules: rules, // Pass all commitlint rules to the LLM
|
|
209
|
+
subject: {},
|
|
210
|
+
};
|
|
211
|
+
// Extract type information
|
|
212
|
+
if (rules["type-enum"]) {
|
|
213
|
+
const types = rules["type-enum"][TYPE_ENUM_INDEX];
|
|
214
|
+
if (Array.isArray(types)) {
|
|
215
|
+
context.typeEnum = types;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
// Extract type descriptions from prompts
|
|
219
|
+
if (prompts.questions?.type?.enum) {
|
|
220
|
+
context.typeDescriptions = {};
|
|
221
|
+
for (const [key, value] of Object.entries(prompts.questions.type.enum)) {
|
|
222
|
+
if (typeof value === "object" && value && "description" in value && typeof value.description === "string") {
|
|
223
|
+
const enumValue = value;
|
|
224
|
+
context.typeDescriptions[key] = {
|
|
225
|
+
description: enumValue.description,
|
|
226
|
+
emoji: enumValue.emoji,
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
// Extract subject rules
|
|
232
|
+
if (rules["subject-max-length"]) {
|
|
233
|
+
const maxLength = rules["subject-max-length"][TYPE_ENUM_INDEX];
|
|
234
|
+
if (typeof maxLength === "number") {
|
|
235
|
+
context.subject.maxLength = maxLength;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
if (rules["subject-min-length"]) {
|
|
239
|
+
const minLength = rules["subject-min-length"][TYPE_ENUM_INDEX];
|
|
240
|
+
if (typeof minLength === "number") {
|
|
241
|
+
context.subject.minLength = minLength;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
// Add descriptions from prompts
|
|
245
|
+
if (prompts.questions?.type?.description) {
|
|
246
|
+
context.typeDescription = prompts.questions.type.description;
|
|
247
|
+
}
|
|
248
|
+
if (prompts.questions?.scope?.description) {
|
|
249
|
+
context.scopeDescription = prompts.questions.scope.description;
|
|
250
|
+
}
|
|
251
|
+
if (prompts.questions?.subject?.description) {
|
|
252
|
+
context.subject.description = prompts.questions.subject.description;
|
|
253
|
+
}
|
|
254
|
+
if (prompts.questions?.body?.description) {
|
|
255
|
+
context.body = {
|
|
256
|
+
description: prompts.questions.body.description,
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
return context;
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Get API key prompt information based on provider
|
|
263
|
+
*/
|
|
264
|
+
getApiKeyPromptInfo(provider) {
|
|
265
|
+
switch (provider) {
|
|
266
|
+
case "anthropic": {
|
|
267
|
+
return { hint: "sk-ant-...", prompt: "Enter your Anthropic API key for this session:" };
|
|
268
|
+
}
|
|
269
|
+
case "aws-bedrock": {
|
|
270
|
+
return { hint: "us-east-1|AKIA...|secret...", prompt: "Enter your AWS Bedrock credentials (region|access-key-id|secret-access-key):" };
|
|
271
|
+
}
|
|
272
|
+
case "azure-openai": {
|
|
273
|
+
return { hint: "https://your.openai.azure.com|key|deployment", prompt: "Enter your Azure OpenAI credentials (endpoint|api-key|deployment-name):" };
|
|
274
|
+
}
|
|
275
|
+
case "google": {
|
|
276
|
+
return { hint: "AIza...", prompt: "Enter your Google API key for this session:" };
|
|
277
|
+
}
|
|
278
|
+
case "ollama": {
|
|
279
|
+
return { hint: "localhost:11434", prompt: "Enter your Ollama host (host:port or host:port|custom-model):" };
|
|
280
|
+
}
|
|
281
|
+
case "openai": {
|
|
282
|
+
return { hint: "sk-...", prompt: "Enter your OpenAI API key for this session:" };
|
|
283
|
+
}
|
|
284
|
+
default: {
|
|
285
|
+
return { hint: "", prompt: "Enter your API key for this session:" };
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
exports.CommitizenAdapter = CommitizenAdapter;
|
|
292
|
+
//# sourceMappingURL=commitizen.adapter.js.map
|