@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
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import { exec } from 'node:child_process';
|
|
2
|
-
import { promisify } from 'node:util';
|
|
3
|
-
import chalk from 'chalk';
|
|
4
|
-
import { generateCommitMessage } from './llm/index.js';
|
|
5
|
-
|
|
6
|
-
const execAsync = promisify(exec);
|
|
7
|
-
/**
|
|
8
|
-
* Validates a commit message and retries with LLM if there are errors
|
|
9
|
-
* @param commitConfig The original commit configuration
|
|
10
|
-
* @param promptContext The prompt context used to generate the commit
|
|
11
|
-
* @returns A promise that resolves to a valid commit message or null if manual entry is needed
|
|
12
|
-
*/
|
|
13
|
-
async function validateAndFixCommitMessage(commitConfig, promptContext) {
|
|
14
|
-
// Initial commit message
|
|
15
|
-
const commitMessage = constructCommitMessage(commitConfig);
|
|
16
|
-
// Validate with commitlint
|
|
17
|
-
const validation = await validateWithCommitlint(commitMessage);
|
|
18
|
-
// If valid, return the message
|
|
19
|
-
if (validation.isValid) {
|
|
20
|
-
return commitMessage;
|
|
21
|
-
}
|
|
22
|
-
// If not valid and we have errors, try to fix with LLM
|
|
23
|
-
if (!validation.isValid && validation.errors) {
|
|
24
|
-
console.log(chalk.yellow("Commit message failed validation. Attempting to fix..."));
|
|
25
|
-
const MAX_RETRIES = 3;
|
|
26
|
-
let currentConfig = commitConfig;
|
|
27
|
-
const allErrors = [];
|
|
28
|
-
// Attempt to fix the commit message up to MAX_RETRIES times
|
|
29
|
-
// eslint-disable-next-line @elsikora-typescript/typedef
|
|
30
|
-
for (let attempt = 0; attempt < MAX_RETRIES; attempt++) {
|
|
31
|
-
// Add the current validation error to our history
|
|
32
|
-
if (validation.errors) {
|
|
33
|
-
allErrors.push(validation.errors);
|
|
34
|
-
}
|
|
35
|
-
try {
|
|
36
|
-
// Generate a fixed commit message with accumulated errors
|
|
37
|
-
currentConfig = await fixCommitMessageWithLLM(currentConfig, validation.errors ?? "", promptContext, allErrors.slice(0, -1));
|
|
38
|
-
// Construct and validate the new commit message
|
|
39
|
-
const fixedCommitMessage = constructCommitMessage(currentConfig);
|
|
40
|
-
const fixedValidation = await validateWithCommitlint(fixedCommitMessage);
|
|
41
|
-
// If valid, return the successful message
|
|
42
|
-
if (fixedValidation.isValid) {
|
|
43
|
-
console.log(chalk.green(`Commit message fixed successfully on attempt ${attempt + 1}!`));
|
|
44
|
-
return fixedCommitMessage;
|
|
45
|
-
}
|
|
46
|
-
// If we still have errors, continue with next attempt
|
|
47
|
-
if (fixedValidation.errors) {
|
|
48
|
-
console.log(chalk.yellow(`Fix attempt ${attempt + 1} still has errors. ${MAX_RETRIES - attempt - 1} retries left.`));
|
|
49
|
-
// Update the validation errors for the next iteration
|
|
50
|
-
validation.errors = fixedValidation.errors;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
catch (error) {
|
|
54
|
-
console.error(chalk.red(`Error while trying to fix commit message (attempt ${attempt + 1}):`, error));
|
|
55
|
-
break; // Exit retry loop on error
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
// If we exhausted all retries and still have issues
|
|
59
|
-
console.log(chalk.red(`Unable to fix commit message automatically after ${MAX_RETRIES} attempts.`));
|
|
60
|
-
console.log(chalk.yellow("Switching to manual commit entry mode..."));
|
|
61
|
-
return null; // Signal to switch to manual mode
|
|
62
|
-
}
|
|
63
|
-
// Default case, return original even if there were issues
|
|
64
|
-
return commitMessage;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Validates a commit message with commitlint
|
|
68
|
-
* @param commitMessage The commit message to validate
|
|
69
|
-
* @returns A promise that resolves to an object with the validation result
|
|
70
|
-
*/
|
|
71
|
-
async function validateWithCommitlint(commitMessage) {
|
|
72
|
-
try {
|
|
73
|
-
// Create temporary file with commit message
|
|
74
|
-
const cmd = `echo "${commitMessage}" | npx commitlint`;
|
|
75
|
-
// eslint-disable-next-line @elsikora-typescript/no-unsafe-call
|
|
76
|
-
await execAsync(cmd);
|
|
77
|
-
return { isValid: true };
|
|
78
|
-
}
|
|
79
|
-
catch (error) {
|
|
80
|
-
// If commitlint exits with non-zero code, it means there are validation errors
|
|
81
|
-
const typedError = error;
|
|
82
|
-
return {
|
|
83
|
-
errors: typedError.stdout ?? typedError.stderr ?? typedError.message,
|
|
84
|
-
isValid: false,
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Constructs a commit message from a CommitConfig object
|
|
90
|
-
* @param commitConfig The commit configuration
|
|
91
|
-
* @returns The formatted commit message
|
|
92
|
-
*/
|
|
93
|
-
function constructCommitMessage(commitConfig) {
|
|
94
|
-
const type = commitConfig.type;
|
|
95
|
-
const scope = commitConfig.scope ? `(${commitConfig.scope})` : "";
|
|
96
|
-
const subject = commitConfig.subject;
|
|
97
|
-
const header = `${type}${scope}: ${subject}`;
|
|
98
|
-
// Body with optional breaking change
|
|
99
|
-
let body = "";
|
|
100
|
-
if (commitConfig.isBreaking) {
|
|
101
|
-
body = `BREAKING CHANGE: ${commitConfig.breakingBody ?? "This commit introduces breaking changes."}\n\n`;
|
|
102
|
-
}
|
|
103
|
-
if (commitConfig.body) {
|
|
104
|
-
body += commitConfig.body;
|
|
105
|
-
}
|
|
106
|
-
// Footer with issue references
|
|
107
|
-
let footer = "";
|
|
108
|
-
if (commitConfig.issues && commitConfig.issues.length > 0) {
|
|
109
|
-
footer = `Issues: ${commitConfig.issues.join(", ")}`;
|
|
110
|
-
}
|
|
111
|
-
if (commitConfig.references && commitConfig.references.length > 0) {
|
|
112
|
-
if (footer)
|
|
113
|
-
footer += "\n";
|
|
114
|
-
footer += `References: ${commitConfig.references.join(", ")}`;
|
|
115
|
-
}
|
|
116
|
-
// Combine all parts
|
|
117
|
-
return [header, body, footer].filter(Boolean).join("\n\n");
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Sends a commit message to the LLM for correction with provided errors
|
|
121
|
-
* @param commitConfig The original commit configuration
|
|
122
|
-
* @param errors The errors from commitlint
|
|
123
|
-
* @param promptContext The prompt context to use for regeneration
|
|
124
|
-
* @param previousErrors Optional accumulated errors from previous attempts
|
|
125
|
-
* @returns A promise that resolves to a new commit configuration
|
|
126
|
-
*/
|
|
127
|
-
async function fixCommitMessageWithLLM(commitConfig, errors, promptContext, previousErrors = []) {
|
|
128
|
-
// Create a history of all errors to help the LLM understand what needs fixing
|
|
129
|
-
const errorHistory = [...previousErrors, errors].map((error, index) => `Attempt ${index + 1} errors:\n${error}`).join("\n\n");
|
|
130
|
-
// Create an enhanced context that includes the original commit and errors
|
|
131
|
-
const enhancedContext = {
|
|
132
|
-
...promptContext,
|
|
133
|
-
// Add a note about the previous attempt and errors
|
|
134
|
-
diff: `${promptContext.diff ?? ""}\n\nCommit message failed validation with these errors:\n${errorHistory}\n\nOriginal commit structure:\n${JSON.stringify(commitConfig, null)}`,
|
|
135
|
-
};
|
|
136
|
-
console.log(chalk.yellow(`Commit message had validation errors. Asking LLM to fix... (Attempt ${previousErrors.length + 1})`));
|
|
137
|
-
// Generate a new commit message with the enhanced context
|
|
138
|
-
return await generateCommitMessage(enhancedContext);
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
export { validateAndFixCommitMessage, validateWithCommitlint };
|
|
142
|
-
//# sourceMappingURL=commitlintValidator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"commitlintValidator.js","sources":["../../../../src/services/commitlintValidator.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getRuleQuestionConfig.d.ts","sourceRoot":"","sources":["../../../src/services/getRuleQuestionConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsB,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAQrD,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,UAAU,EAAE,SAAS,GAAG,IAAI,GAAG,cAAc,CA4E1F"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../../src/services/llm/anthropic.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAIjE,wBAAsB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,CAwHjI"}
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
import Anthropic from '@anthropic-ai/sdk';
|
|
2
|
-
|
|
3
|
-
/* eslint-disable @elsikora-typescript/restrict-plus-operands,@elsikora-sonar/no-nested-conditional */
|
|
4
|
-
async function generateCommitWithAnthropic(apiKey, model, context) {
|
|
5
|
-
const anthropic = new Anthropic({
|
|
6
|
-
apiKey: apiKey,
|
|
7
|
-
});
|
|
8
|
-
// eslint-disable-next-line @elsikora-typescript/typedef
|
|
9
|
-
const typeOptions = context.typeEnum
|
|
10
|
-
?.map((type) => {
|
|
11
|
-
const description = context.typeDescriptions?.[type]?.description ?? "";
|
|
12
|
-
const emoji = context.typeDescriptions?.[type]?.emoji ?? "";
|
|
13
|
-
const title = context.typeDescriptions?.[type]?.title ?? "";
|
|
14
|
-
// eslint-disable-next-line @elsikora-sonar/no-nested-template-literals
|
|
15
|
-
return `${type}${emoji ? ` (${emoji})` : ""}: ${description}${title ? ` (${title})` : ""}`;
|
|
16
|
-
})
|
|
17
|
-
.join("\n") ?? "";
|
|
18
|
-
const systemPrompt = `You are a commit message generator. Your task is to create a conventional commit message based on the git changes provided.`;
|
|
19
|
-
const userPrompt = `I need you to generate a commit message for these changes:
|
|
20
|
-
${context.diff ? `Diff:\n${context.diff}\n` : ""}
|
|
21
|
-
${context.files ? `Files changed:\n${context.files}` : ""}
|
|
22
|
-
|
|
23
|
-
The commit should follow this format:
|
|
24
|
-
<type>[(scope)]: <subject>
|
|
25
|
-
[BLANK LINE]
|
|
26
|
-
[body]
|
|
27
|
-
[BLANK LINE]
|
|
28
|
-
[footer]
|
|
29
|
-
|
|
30
|
-
Type constraints:
|
|
31
|
-
${context.typeEnum ? "- Allowed types: " + context.typeEnum.join(", ") : ""}
|
|
32
|
-
${context.typeCase ? "- Case style: " + context.typeCase.join(", ") : ""}
|
|
33
|
-
${context.typeEmpty === undefined ? "" : "- Can be empty: " + (context.typeEmpty ? "yes" : "no")}
|
|
34
|
-
|
|
35
|
-
Available types:
|
|
36
|
-
${typeOptions}
|
|
37
|
-
|
|
38
|
-
Scope constraints:
|
|
39
|
-
${context.scopeCase ? "- Case style: " + context.scopeCase.join(", ") : ""}
|
|
40
|
-
${context.scopeEmpty === undefined ? "" : "- Can be empty: " + (context.scopeEmpty ? "yes" : "no")}
|
|
41
|
-
${context.scopeMaxLength ? "- Max length: " + context.scopeMaxLength + " characters" : ""}
|
|
42
|
-
|
|
43
|
-
Scope guidelines:
|
|
44
|
-
- The scope should represent the area of the codebase being modified
|
|
45
|
-
- If the changes affect multiple areas, use a comma-separated list or select the most significant area
|
|
46
|
-
- If unsure, use "global" as the scope
|
|
47
|
-
- If the scope is not relevant, it can be omitted
|
|
48
|
-
- Analyze the changed files and determine the most appropriate scope based on directories, modules or components
|
|
49
|
-
- Scopes are usually short (one or two words) and lowercase
|
|
50
|
-
|
|
51
|
-
Subject constraints:
|
|
52
|
-
${context.subject.case ? "- Case style: " + context.subject.case.join(", ") : ""}
|
|
53
|
-
${context.subject.empty === undefined ? "" : "- Can be empty: " + (context.subject.empty ? "yes" : "no")}
|
|
54
|
-
${context.subject.maxLength ? "- Max length: " + context.subject.maxLength + " characters" : ""}
|
|
55
|
-
${context.subject.minLength ? "- Min length: " + context.subject.minLength + " characters" : ""}
|
|
56
|
-
${context.subject.fullStop ? "- End with '" + context.subject.fullStop.value + "': " + (context.subject.fullStop.required ? "yes" : "no") : ""}
|
|
57
|
-
|
|
58
|
-
Header constraints:
|
|
59
|
-
${context.headerCase ? "- Case style: " + context.headerCase.join(", ") : ""}
|
|
60
|
-
${context.headerMaxLength ? "- Max length: " + context.headerMaxLength + " characters" : ""}
|
|
61
|
-
${context.headerMinLength ? "- Min length: " + context.headerMinLength + " characters" : ""}
|
|
62
|
-
${context.headerFullStop ? "- End with '" + context.headerFullStop.value + "': " + (context.headerFullStop.required ? "yes" : "no") : ""}
|
|
63
|
-
|
|
64
|
-
Body constraints:
|
|
65
|
-
${context.body?.maxLength ? "- Max length: " + context.body.maxLength + " characters" : ""}
|
|
66
|
-
${context.body?.maxLineLength ? "- Max line length: " + context.body.maxLineLength + " characters" : ""}
|
|
67
|
-
${context.body?.leadingBlank === undefined ? "" : "- Leading blank line: " + (context.body.leadingBlank ? "required" : "not required")}
|
|
68
|
-
${context.body?.fullStop ? "- End with '" + context.body.fullStop.value + "': " + (context.body.fullStop.required ? "yes" : "no") : ""}
|
|
69
|
-
|
|
70
|
-
Footer constraints:
|
|
71
|
-
${context.footerLeadingBlank === undefined ? "" : "- Leading blank line: " + (context.footerLeadingBlank ? "required" : "not required")}
|
|
72
|
-
${context.footerMaxLineLength ? "- Max line length: " + context.footerMaxLineLength + " characters" : ""}
|
|
73
|
-
|
|
74
|
-
Return a JSON object with these fields:
|
|
75
|
-
{
|
|
76
|
-
"type": "the commit type",
|
|
77
|
-
"scope": "the commit scope (optional)",
|
|
78
|
-
"subject": "the commit subject line",
|
|
79
|
-
"body": "the commit body (optional)",
|
|
80
|
-
"isBreaking": boolean,
|
|
81
|
-
"breakingBody": "description of breaking changes (if isBreaking is true)",
|
|
82
|
-
"issues": ["list of issue references"],
|
|
83
|
-
"references": ["list of other references"]
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
The JSON object should be parseable and follow the structure outlined above.`;
|
|
87
|
-
try {
|
|
88
|
-
const response = await anthropic.messages.create({
|
|
89
|
-
// eslint-disable-next-line @elsikora-typescript/no-magic-numbers
|
|
90
|
-
max_tokens: 2048,
|
|
91
|
-
messages: [{ content: userPrompt, role: "user" }],
|
|
92
|
-
model: model,
|
|
93
|
-
system: systemPrompt,
|
|
94
|
-
});
|
|
95
|
-
// eslint-disable-next-line @elsikora-typescript/no-unsafe-member-access,@elsikora-typescript/no-unsafe-assignment
|
|
96
|
-
const content = response.content[0]?.text;
|
|
97
|
-
if (!content) {
|
|
98
|
-
throw new Error("Empty response from Anthropic");
|
|
99
|
-
}
|
|
100
|
-
// Extract JSON from response
|
|
101
|
-
// eslint-disable-next-line @elsikora-typescript/no-unsafe-assignment,@elsikora-typescript/no-unsafe-call,@elsikora-typescript/no-unsafe-member-access,@elsikora-sonar/slow-regex
|
|
102
|
-
const jsonMatch = content.match(/\{[\s\S]*\}/);
|
|
103
|
-
if (!jsonMatch) {
|
|
104
|
-
throw new Error("No JSON found in Anthropic response");
|
|
105
|
-
}
|
|
106
|
-
// eslint-disable-next-line @elsikora-typescript/no-unsafe-argument,@elsikora-typescript/no-unsafe-member-access
|
|
107
|
-
return JSON.parse(jsonMatch[0]);
|
|
108
|
-
}
|
|
109
|
-
catch (error) {
|
|
110
|
-
console.error("Error generating commit with Anthropic:", error);
|
|
111
|
-
throw error;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
export { generateCommitWithAnthropic };
|
|
116
|
-
//# sourceMappingURL=anthropic.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.js","sources":["../../../../../src/services/llm/anthropic.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { LLMConfig } from "./types.js";
|
|
2
|
-
export declare const setLLMConfig: (config: LLMConfig | null) => void;
|
|
3
|
-
export declare const getLLMConfig: () => LLMConfig | null;
|
|
4
|
-
export declare const resetModeErrorFlag: () => void;
|
|
5
|
-
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/services/llm/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAoB,MAAM,YAAY,CAAC;AAsK9D,eAAO,MAAM,YAAY,GAAI,QAAQ,SAAS,GAAG,IAAI,KAAG,IAQvD,CAAC;AAEF,eAAO,MAAM,YAAY,QAAO,SAAS,GAAG,IA+B3C,CAAC;AAGF,eAAO,MAAM,kBAAkB,QAAO,IAErC,CAAC"}
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
import { existsSync, readFileSync, mkdirSync, writeFileSync } from 'node:fs';
|
|
2
|
-
import { join } from 'node:path';
|
|
3
|
-
import chalk from 'chalk';
|
|
4
|
-
|
|
5
|
-
// Store config in project directory
|
|
6
|
-
const CONFIG_DIR = "./.elsikora";
|
|
7
|
-
const CONFIG_FILE = join(CONFIG_DIR, "commitlint-ai.config.js");
|
|
8
|
-
// In-memory cache
|
|
9
|
-
let llmConfig = null;
|
|
10
|
-
// Track if we've already shown mode error
|
|
11
|
-
// eslint-disable-next-line @elsikora-typescript/naming-convention
|
|
12
|
-
let modeErrorShown = false;
|
|
13
|
-
// Check for API keys in environment variables
|
|
14
|
-
const getApiKeyFromEnvironment = (provider) => {
|
|
15
|
-
try {
|
|
16
|
-
if (typeof process === "undefined" || !process?.env) {
|
|
17
|
-
return null;
|
|
18
|
-
}
|
|
19
|
-
if (provider === "openai") {
|
|
20
|
-
return process.env.OPENAI_API_KEY ?? null;
|
|
21
|
-
}
|
|
22
|
-
else if (provider === "anthropic") {
|
|
23
|
-
return process.env.ANTHROPIC_API_KEY ?? null;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
catch (error) {
|
|
27
|
-
console.warn("Error accessing environment variables:", error);
|
|
28
|
-
}
|
|
29
|
-
return null;
|
|
30
|
-
};
|
|
31
|
-
// Try to load config from file
|
|
32
|
-
const loadConfigFromFile = () => {
|
|
33
|
-
try {
|
|
34
|
-
if (existsSync(CONFIG_FILE)) {
|
|
35
|
-
// Check if there's an old JSON file and migrate it
|
|
36
|
-
const oldJsonFile = join(CONFIG_DIR, "commitlint-ai.json");
|
|
37
|
-
if (existsSync(oldJsonFile)) {
|
|
38
|
-
try {
|
|
39
|
-
const oldConfigString = readFileSync(oldJsonFile, "utf8");
|
|
40
|
-
const oldConfig = JSON.parse(oldConfigString);
|
|
41
|
-
// Save to the new JS format
|
|
42
|
-
saveConfigToFile({
|
|
43
|
-
...oldConfig,
|
|
44
|
-
apiKey: "",
|
|
45
|
-
});
|
|
46
|
-
return oldConfig;
|
|
47
|
-
}
|
|
48
|
-
catch {
|
|
49
|
-
// Ignore errors with old file
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
// Parse the ESM module format
|
|
53
|
-
const configContent = readFileSync(CONFIG_FILE, "utf8");
|
|
54
|
-
try {
|
|
55
|
-
// Use a safer approach than regex + JSON.parse
|
|
56
|
-
// Execute the file as a JavaScript module using Node's module system
|
|
57
|
-
// This is a workaround since we can't directly import a dynamic path in ESM
|
|
58
|
-
// Simple approach: parse the JS object manually
|
|
59
|
-
const objectPattern = /export\s+default\s+(\{[\s\S]*?\});/;
|
|
60
|
-
const match = objectPattern.exec(configContent);
|
|
61
|
-
if (match?.[1]) {
|
|
62
|
-
// Extract the object text
|
|
63
|
-
const objectText = match[1];
|
|
64
|
-
// Extract property assignments with a more robust approach
|
|
65
|
-
const properties = {};
|
|
66
|
-
// Match each property in the format: key: value,
|
|
67
|
-
// eslint-disable-next-line @elsikora-sonar/slow-regex
|
|
68
|
-
const propertyRegex = /\s*(\w+)\s*:\s*["']?([^,"'}\s]+)["']?\s*,?/g;
|
|
69
|
-
// eslint-disable-next-line @elsikora-typescript/typedef
|
|
70
|
-
let propertyMatch;
|
|
71
|
-
// eslint-disable-next-line @elsikora-typescript/no-unsafe-argument
|
|
72
|
-
while ((propertyMatch = propertyRegex.exec(objectText)) !== null) {
|
|
73
|
-
const [, key, value] = propertyMatch;
|
|
74
|
-
// Remove quotes if present
|
|
75
|
-
// eslint-disable-next-line @elsikora-sonar/anchor-precedence,@elsikora-typescript/no-unsafe-assignment,@elsikora-typescript/no-unsafe-member-access,@elsikora-typescript/no-unsafe-call
|
|
76
|
-
const cleanValue = value.replaceAll(/^["']|["']$/g, "");
|
|
77
|
-
// eslint-disable-next-line @elsikora-typescript/no-unsafe-assignment,@elsikora-typescript/no-unsafe-member-access
|
|
78
|
-
properties[key] = cleanValue;
|
|
79
|
-
}
|
|
80
|
-
// Validate mode if present (but only show the error once)
|
|
81
|
-
if (properties.mode && properties.mode !== "auto" && properties.mode !== "manual") {
|
|
82
|
-
if (!modeErrorShown) {
|
|
83
|
-
// eslint-disable-next-line @elsikora-typescript/restrict-template-expressions
|
|
84
|
-
console.log(chalk.yellow(`Invalid mode "${properties.mode}" in config. Valid values are "auto" or "manual". Using default mode.`));
|
|
85
|
-
modeErrorShown = true;
|
|
86
|
-
}
|
|
87
|
-
properties.mode = "auto";
|
|
88
|
-
}
|
|
89
|
-
return properties;
|
|
90
|
-
}
|
|
91
|
-
return null;
|
|
92
|
-
}
|
|
93
|
-
catch (parseError) {
|
|
94
|
-
console.warn("Error parsing config file:", parseError);
|
|
95
|
-
return null;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
catch (error) {
|
|
100
|
-
console.warn("Error loading LLM config from file:", error);
|
|
101
|
-
}
|
|
102
|
-
return null;
|
|
103
|
-
};
|
|
104
|
-
// Save config to file (without API key)
|
|
105
|
-
const saveConfigToFile = (config) => {
|
|
106
|
-
try {
|
|
107
|
-
if (!existsSync(CONFIG_DIR)) {
|
|
108
|
-
// eslint-disable-next-line @elsikora-typescript/naming-convention
|
|
109
|
-
mkdirSync(CONFIG_DIR, { recursive: true });
|
|
110
|
-
}
|
|
111
|
-
// Only store provider, model, and mode (not the API key)
|
|
112
|
-
const storageConfig = {
|
|
113
|
-
mode: config.mode,
|
|
114
|
-
model: config.model,
|
|
115
|
-
provider: config.provider,
|
|
116
|
-
};
|
|
117
|
-
// Format as an ESM module with proper JS object format (no quotes around keys)
|
|
118
|
-
// Always include the mode field, using 'auto' as default if not specified
|
|
119
|
-
const jsContent = `export default {
|
|
120
|
-
provider: ${JSON.stringify(storageConfig.provider)},
|
|
121
|
-
model: ${JSON.stringify(storageConfig.model)},
|
|
122
|
-
mode: ${JSON.stringify(storageConfig.mode ?? "auto")}
|
|
123
|
-
};`;
|
|
124
|
-
writeFileSync(CONFIG_FILE, jsContent, "utf8");
|
|
125
|
-
// Remove old JSON file if it exists
|
|
126
|
-
const oldJsonFile = join(CONFIG_DIR, "commitlint-ai.json");
|
|
127
|
-
if (existsSync(oldJsonFile)) {
|
|
128
|
-
try {
|
|
129
|
-
// Use fs.unlink to delete the file - but we'll use writeFileSync with empty content instead
|
|
130
|
-
// to avoid needing to import fs.unlink
|
|
131
|
-
writeFileSync(oldJsonFile, "", "utf8");
|
|
132
|
-
}
|
|
133
|
-
catch {
|
|
134
|
-
// Ignore errors with old file deletion
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
catch (error) {
|
|
139
|
-
console.warn("Error saving LLM config to file:", error);
|
|
140
|
-
}
|
|
141
|
-
};
|
|
142
|
-
const setLLMConfig = (config) => {
|
|
143
|
-
llmConfig = config;
|
|
144
|
-
if (config) {
|
|
145
|
-
// For debugging
|
|
146
|
-
console.log("Saving config:", JSON.stringify({ ...config, apiKey: "[REDACTED]" }));
|
|
147
|
-
saveConfigToFile(config);
|
|
148
|
-
}
|
|
149
|
-
};
|
|
150
|
-
const getLLMConfig = () => {
|
|
151
|
-
// If we already have a config in memory, return it
|
|
152
|
-
if (llmConfig) {
|
|
153
|
-
return llmConfig;
|
|
154
|
-
}
|
|
155
|
-
// Otherwise try to load from file
|
|
156
|
-
const fileConfig = loadConfigFromFile();
|
|
157
|
-
if (fileConfig) {
|
|
158
|
-
// Check if we have API key in environment
|
|
159
|
-
const apiKey = getApiKeyFromEnvironment(fileConfig.provider);
|
|
160
|
-
// We have both the saved config and an API key
|
|
161
|
-
if (apiKey) {
|
|
162
|
-
llmConfig = {
|
|
163
|
-
...fileConfig,
|
|
164
|
-
apiKey,
|
|
165
|
-
};
|
|
166
|
-
return llmConfig;
|
|
167
|
-
}
|
|
168
|
-
// Return the partial config (without API key) so we can ask for it
|
|
169
|
-
return {
|
|
170
|
-
...fileConfig,
|
|
171
|
-
apiKey: "", // Empty string signals that we need to ask for the key
|
|
172
|
-
};
|
|
173
|
-
}
|
|
174
|
-
return null;
|
|
175
|
-
};
|
|
176
|
-
|
|
177
|
-
export { getLLMConfig, setLLMConfig };
|
|
178
|
-
//# sourceMappingURL=config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sources":["../../../../../src/services/llm/config.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { CommitConfig, LLMPromptContext } from "./types.js";
|
|
2
|
-
export { getLLMConfig, setLLMConfig } from "./config.js";
|
|
3
|
-
export type * from "./types.js";
|
|
4
|
-
export declare function generateCommitMessage(context: LLMPromptContext): Promise<CommitConfig>;
|
|
5
|
-
export declare function selectLLMProvider(inquirer: any): Promise<void>;
|
|
6
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/llm/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAA+B,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAe9F,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACzD,mBAAmB,YAAY,CAAC;AAEhC,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,CAyD5F;AAGD,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAuWpE"}
|