@elsikora/commitizen-plugin-commitlint-ai 1.2.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 -176
- package/dist/cjs/Process.js.map +0 -1
- package/dist/cjs/Question.d.ts +0 -46
- package/dist/cjs/Question.d.ts.map +0 -1
- package/dist/cjs/SectionBody.d.ts +0 -4
- package/dist/cjs/SectionBody.d.ts.map +0 -1
- package/dist/cjs/SectionFooter.d.ts +0 -13
- package/dist/cjs/SectionFooter.d.ts.map +0 -1
- package/dist/cjs/SectionHeader.d.ts +0 -15
- package/dist/cjs/SectionHeader.d.ts.map +0 -1
- package/dist/cjs/services/commitConfirmation.d.ts +0 -3
- package/dist/cjs/services/commitConfirmation.d.ts.map +0 -1
- package/dist/cjs/services/commitConfirmation.js +0 -122
- package/dist/cjs/services/commitConfirmation.js.map +0 -1
- package/dist/cjs/services/commitlintConfig.d.ts +0 -4
- package/dist/cjs/services/commitlintConfig.d.ts.map +0 -1
- package/dist/cjs/services/commitlintConfig.js +0 -198
- package/dist/cjs/services/commitlintConfig.js.map +0 -1
- package/dist/cjs/services/commitlintValidator.d.ts +0 -26
- package/dist/cjs/services/commitlintValidator.d.ts.map +0 -1
- package/dist/cjs/services/commitlintValidator.js +0 -146
- package/dist/cjs/services/commitlintValidator.js.map +0 -1
- package/dist/cjs/services/getRuleQuestionConfig.d.ts +0 -4
- package/dist/cjs/services/getRuleQuestionConfig.d.ts.map +0 -1
- package/dist/cjs/services/llm/anthropic.d.ts +0 -3
- package/dist/cjs/services/llm/anthropic.d.ts.map +0 -1
- package/dist/cjs/services/llm/anthropic.js +0 -118
- package/dist/cjs/services/llm/anthropic.js.map +0 -1
- package/dist/cjs/services/llm/config.d.ts +0 -5
- package/dist/cjs/services/llm/config.d.ts.map +0 -1
- package/dist/cjs/services/llm/config.js +0 -181
- package/dist/cjs/services/llm/config.js.map +0 -1
- package/dist/cjs/services/llm/index.d.ts +0 -6
- package/dist/cjs/services/llm/index.d.ts.map +0 -1
- package/dist/cjs/services/llm/index.js +0 -399
- package/dist/cjs/services/llm/index.js.map +0 -1
- package/dist/cjs/services/llm/models.d.ts +0 -34
- package/dist/cjs/services/llm/models.d.ts.map +0 -1
- package/dist/cjs/services/llm/models.js +0 -65
- package/dist/cjs/services/llm/models.js.map +0 -1
- package/dist/cjs/services/llm/openai.d.ts +0 -3
- package/dist/cjs/services/llm/openai.d.ts.map +0 -1
- package/dist/cjs/services/llm/openai.js +0 -111
- package/dist/cjs/services/llm/openai.js.map +0 -1
- package/dist/cjs/services/llm/types.d.ts +0 -71
- package/dist/cjs/services/llm/types.d.ts.map +0 -1
- package/dist/cjs/store/defaultPromptConfigs.d.ts +0 -33
- package/dist/cjs/store/defaultPromptConfigs.d.ts.map +0 -1
- package/dist/cjs/store/defaultPromptConfigs.js +0 -39
- package/dist/cjs/store/defaultPromptConfigs.js.map +0 -1
- package/dist/cjs/store/prompts.d.ts +0 -6
- package/dist/cjs/store/prompts.d.ts.map +0 -1
- package/dist/cjs/store/prompts.js +0 -40
- package/dist/cjs/store/prompts.js.map +0 -1
- package/dist/cjs/store/rules.d.ts +0 -7
- package/dist/cjs/store/rules.d.ts.map +0 -1
- package/dist/cjs/types.d.ts +0 -3
- package/dist/cjs/types.d.ts.map +0 -1
- package/dist/cjs/utils/case-function.d.ts +0 -9
- package/dist/cjs/utils/case-function.d.ts.map +0 -1
- package/dist/cjs/utils/full-stop-function.d.ts +0 -9
- package/dist/cjs/utils/full-stop-function.d.ts.map +0 -1
- package/dist/cjs/utils/leading-blank-function.d.ts +0 -8
- package/dist/cjs/utils/leading-blank-function.d.ts.map +0 -1
- package/dist/cjs/utils/rules.d.ts +0 -26
- package/dist/cjs/utils/rules.d.ts.map +0 -1
- package/dist/esm/ManualProcess.d.ts +0 -6
- package/dist/esm/ManualProcess.d.ts.map +0 -1
- package/dist/esm/ManualProcess.js +0 -107
- package/dist/esm/ManualProcess.js.map +0 -1
- package/dist/esm/Process.d.ts +0 -6
- package/dist/esm/Process.d.ts.map +0 -1
- package/dist/esm/Process.js +0 -172
- package/dist/esm/Process.js.map +0 -1
- package/dist/esm/Question.d.ts +0 -46
- package/dist/esm/Question.d.ts.map +0 -1
- package/dist/esm/SectionBody.d.ts +0 -4
- package/dist/esm/SectionBody.d.ts.map +0 -1
- package/dist/esm/SectionFooter.d.ts +0 -13
- package/dist/esm/SectionFooter.d.ts.map +0 -1
- package/dist/esm/SectionHeader.d.ts +0 -15
- package/dist/esm/SectionHeader.d.ts.map +0 -1
- package/dist/esm/services/commitConfirmation.d.ts +0 -3
- package/dist/esm/services/commitConfirmation.d.ts.map +0 -1
- package/dist/esm/services/commitConfirmation.js +0 -120
- package/dist/esm/services/commitConfirmation.js.map +0 -1
- package/dist/esm/services/commitlintConfig.d.ts +0 -4
- package/dist/esm/services/commitlintConfig.d.ts.map +0 -1
- package/dist/esm/services/commitlintConfig.js +0 -196
- package/dist/esm/services/commitlintConfig.js.map +0 -1
- package/dist/esm/services/commitlintValidator.d.ts +0 -26
- package/dist/esm/services/commitlintValidator.d.ts.map +0 -1
- package/dist/esm/services/commitlintValidator.js +0 -142
- package/dist/esm/services/commitlintValidator.js.map +0 -1
- package/dist/esm/services/getRuleQuestionConfig.d.ts +0 -4
- package/dist/esm/services/getRuleQuestionConfig.d.ts.map +0 -1
- package/dist/esm/services/llm/anthropic.d.ts +0 -3
- package/dist/esm/services/llm/anthropic.d.ts.map +0 -1
- package/dist/esm/services/llm/anthropic.js +0 -116
- package/dist/esm/services/llm/anthropic.js.map +0 -1
- package/dist/esm/services/llm/config.d.ts +0 -5
- package/dist/esm/services/llm/config.d.ts.map +0 -1
- package/dist/esm/services/llm/config.js +0 -178
- package/dist/esm/services/llm/config.js.map +0 -1
- package/dist/esm/services/llm/index.d.ts +0 -6
- package/dist/esm/services/llm/index.d.ts.map +0 -1
- package/dist/esm/services/llm/index.js +0 -394
- package/dist/esm/services/llm/index.js.map +0 -1
- package/dist/esm/services/llm/models.d.ts +0 -34
- package/dist/esm/services/llm/models.d.ts.map +0 -1
- package/dist/esm/services/llm/models.js +0 -60
- package/dist/esm/services/llm/models.js.map +0 -1
- package/dist/esm/services/llm/openai.d.ts +0 -3
- package/dist/esm/services/llm/openai.d.ts.map +0 -1
- package/dist/esm/services/llm/openai.js +0 -109
- package/dist/esm/services/llm/openai.js.map +0 -1
- package/dist/esm/services/llm/types.d.ts +0 -71
- package/dist/esm/services/llm/types.d.ts.map +0 -1
- package/dist/esm/store/defaultPromptConfigs.d.ts +0 -33
- package/dist/esm/store/defaultPromptConfigs.d.ts.map +0 -1
- package/dist/esm/store/defaultPromptConfigs.js +0 -35
- package/dist/esm/store/defaultPromptConfigs.js.map +0 -1
- package/dist/esm/store/prompts.d.ts +0 -6
- package/dist/esm/store/prompts.d.ts.map +0 -1
- package/dist/esm/store/prompts.js +0 -38
- package/dist/esm/store/prompts.js.map +0 -1
- package/dist/esm/store/rules.d.ts +0 -7
- package/dist/esm/store/rules.d.ts.map +0 -1
- package/dist/esm/types.d.ts +0 -3
- package/dist/esm/types.d.ts.map +0 -1
- package/dist/esm/utils/case-function.d.ts +0 -9
- package/dist/esm/utils/case-function.d.ts.map +0 -1
- package/dist/esm/utils/full-stop-function.d.ts +0 -9
- package/dist/esm/utils/full-stop-function.d.ts.map +0 -1
- package/dist/esm/utils/leading-blank-function.d.ts +0 -8
- package/dist/esm/utils/leading-blank-function.d.ts.map +0 -1
- package/dist/esm/utils/rules.d.ts +0 -26
- package/dist/esm/utils/rules.d.ts.map +0 -1
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var numeric_constant = require('../../domain/constant/numeric.constant.js');
|
|
4
|
+
var commitMessage_entity = require('../../domain/entity/commit-message.entity.js');
|
|
5
|
+
var ollamaModel_enum = require('../../domain/enum/ollama-model.enum.js');
|
|
6
|
+
var commitBody_valueObject = require('../../domain/value-object/commit-body.value-object.js');
|
|
7
|
+
var commitHeader_valueObject = require('../../domain/value-object/commit-header.value-object.js');
|
|
8
|
+
|
|
9
|
+
// Constants for model parameters
|
|
10
|
+
const DEFAULT_NUM_PREDICT = 2048;
|
|
11
|
+
const DEFAULT_TEMPERATURE = 0.7;
|
|
12
|
+
const DEFAULT_PORT = "11434";
|
|
13
|
+
/**
|
|
14
|
+
* Ollama implementation of the LLM service
|
|
15
|
+
*/
|
|
16
|
+
class OllamaLlmService {
|
|
17
|
+
/**
|
|
18
|
+
* Generate a commit message using Ollama
|
|
19
|
+
* @param context - The context for generating the commit message
|
|
20
|
+
* @param configuration - The LLM configuration
|
|
21
|
+
* @returns Promise resolving to the generated commit message
|
|
22
|
+
*/
|
|
23
|
+
async generateCommitMessage(context, configuration) {
|
|
24
|
+
// Extract Ollama configuration
|
|
25
|
+
const apiKey = configuration.getApiKey().getValue();
|
|
26
|
+
let model = configuration.getModel() ?? ollamaModel_enum.EOllamaModel.LLAMA3_2;
|
|
27
|
+
// The API key should be in format: "host:port" or just "host" (defaults to port 11434)
|
|
28
|
+
// If a custom model is specified, the API key format is: "host:port|custom-model-name"
|
|
29
|
+
let host = "localhost";
|
|
30
|
+
let port = DEFAULT_PORT;
|
|
31
|
+
if (apiKey) {
|
|
32
|
+
const parts = apiKey.split("|");
|
|
33
|
+
const hostPort = parts[0];
|
|
34
|
+
// Check if custom model is specified
|
|
35
|
+
if (parts.length > 1 && model === ollamaModel_enum.EOllamaModel.CUSTOM) {
|
|
36
|
+
model = parts[1];
|
|
37
|
+
}
|
|
38
|
+
// Parse host and port
|
|
39
|
+
const hostParts = hostPort.split(":");
|
|
40
|
+
host = hostParts[0] || "localhost";
|
|
41
|
+
port = hostParts[1] || DEFAULT_PORT;
|
|
42
|
+
}
|
|
43
|
+
const url = `http://${host}:${port}/api/generate`;
|
|
44
|
+
const systemPrompt = this.buildSystemPrompt(context);
|
|
45
|
+
const userPrompt = this.buildUserPrompt(context);
|
|
46
|
+
// Combine prompts for Ollama
|
|
47
|
+
const prompt = `${systemPrompt}\n\n${userPrompt}`;
|
|
48
|
+
const requestBody = {
|
|
49
|
+
// Using property name that doesn't require prefix
|
|
50
|
+
isStream: false,
|
|
51
|
+
model,
|
|
52
|
+
options: {
|
|
53
|
+
num_predict: DEFAULT_NUM_PREDICT,
|
|
54
|
+
temperature: DEFAULT_TEMPERATURE,
|
|
55
|
+
},
|
|
56
|
+
prompt,
|
|
57
|
+
};
|
|
58
|
+
try {
|
|
59
|
+
// eslint-disable-next-line @elsikora/node/no-unsupported-features/node-builtins
|
|
60
|
+
const response = await fetch(url, {
|
|
61
|
+
body: JSON.stringify(requestBody),
|
|
62
|
+
headers: {
|
|
63
|
+
"Content-Type": "application/json",
|
|
64
|
+
},
|
|
65
|
+
method: "POST",
|
|
66
|
+
});
|
|
67
|
+
if (!response.ok) {
|
|
68
|
+
throw new Error(`Ollama request failed with status ${response.status}: ${response.statusText}`);
|
|
69
|
+
}
|
|
70
|
+
const responseData = (await response.json());
|
|
71
|
+
const content = responseData.response;
|
|
72
|
+
if (!content) {
|
|
73
|
+
throw new Error("No response from Ollama");
|
|
74
|
+
}
|
|
75
|
+
return this.parseCommitMessage(content);
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
if (error instanceof Error && error.message.includes("fetch failed")) {
|
|
79
|
+
throw new Error(`Failed to connect to Ollama at ${host}:${port}. Make sure Ollama is running.`);
|
|
80
|
+
}
|
|
81
|
+
throw error;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Check if the service supports the given configuration
|
|
86
|
+
* @param configuration - The LLM configuration to check
|
|
87
|
+
* @returns True if the service supports the configuration
|
|
88
|
+
*/
|
|
89
|
+
supports(configuration) {
|
|
90
|
+
return configuration.getProvider() === "ollama";
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Build the system prompt for Ollama
|
|
94
|
+
* @param context - The prompt context
|
|
95
|
+
* @returns The system prompt
|
|
96
|
+
*/
|
|
97
|
+
buildSystemPrompt(context) {
|
|
98
|
+
let prompt = "";
|
|
99
|
+
// Check if this is a fix operation
|
|
100
|
+
const isFixing = !!(context.rules && typeof context.rules === "object" && !Array.isArray(context.rules) && context.rules.validationErrors && context.rules.previousAttempt && context.diff === undefined);
|
|
101
|
+
if (isFixing) {
|
|
102
|
+
prompt = "You are a helpful assistant that fixes commit messages to comply with validation rules. You should maintain the original meaning and content while fixing only the format issues.\n\n";
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
prompt = "You are a helpful assistant that generates conventional commit messages based on the provided context and rules.\n\n";
|
|
106
|
+
}
|
|
107
|
+
// Add validation error context if present
|
|
108
|
+
if (context.rules?.validationErrors && Array.isArray(context.rules.validationErrors)) {
|
|
109
|
+
prompt += "IMPORTANT: The previous commit message had validation errors that must be fixed:\n";
|
|
110
|
+
for (const error of context.rules.validationErrors) {
|
|
111
|
+
prompt += `- ${error}\n`;
|
|
112
|
+
}
|
|
113
|
+
prompt += "\nMake sure the new commit message fixes all these errors.\n\n";
|
|
114
|
+
}
|
|
115
|
+
// Add all commitlint rules
|
|
116
|
+
if (context.rules && typeof context.rules === "object" && !Array.isArray(context.rules)) {
|
|
117
|
+
const formattedRules = this.formatCommitlintRules(context.rules);
|
|
118
|
+
if (formattedRules) {
|
|
119
|
+
prompt += "Commit message rules:\n" + formattedRules + "\n\n";
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (context.typeEnum && context.typeEnum.length > 0) {
|
|
123
|
+
prompt += `Available commit types: ${context.typeEnum.join(", ")}\n`;
|
|
124
|
+
}
|
|
125
|
+
if (context.typeDescriptions) {
|
|
126
|
+
prompt += "\nType descriptions:\n";
|
|
127
|
+
for (const [type, desc] of Object.entries(context.typeDescriptions)) {
|
|
128
|
+
const emoji = desc.emoji ? ` ${desc.emoji}` : "";
|
|
129
|
+
prompt += `- ${type}: ${desc.description}${emoji}\n`;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
if (context.subject.maxLength) {
|
|
133
|
+
prompt += `\nSubject must be at most ${context.subject.maxLength} characters.`;
|
|
134
|
+
}
|
|
135
|
+
if (context.subject.minLength) {
|
|
136
|
+
prompt += `\nSubject must be at least ${context.subject.minLength} characters.`;
|
|
137
|
+
}
|
|
138
|
+
// Extract body/footer line length rules
|
|
139
|
+
let bodyMaxLength;
|
|
140
|
+
let footerMaxLength;
|
|
141
|
+
if (context.rules && typeof context.rules === "object" && !Array.isArray(context.rules)) {
|
|
142
|
+
// Extract body-max-line-length
|
|
143
|
+
const bodyRule = context.rules["body-max-line-length"];
|
|
144
|
+
if (Array.isArray(bodyRule) && bodyRule.length >= numeric_constant.RULE_CONFIG_LENGTH && bodyRule[0] > numeric_constant.VALIDATION_LEVEL_DISABLED && typeof bodyRule[numeric_constant.RULE_VALUE_INDEX] === "number") {
|
|
145
|
+
bodyMaxLength = bodyRule[numeric_constant.RULE_VALUE_INDEX];
|
|
146
|
+
}
|
|
147
|
+
// Extract footer-max-line-length
|
|
148
|
+
const footerRule = context.rules["footer-max-line-length"];
|
|
149
|
+
if (Array.isArray(footerRule) && footerRule.length >= numeric_constant.RULE_CONFIG_LENGTH && footerRule[0] > numeric_constant.VALIDATION_LEVEL_DISABLED && typeof footerRule[numeric_constant.RULE_VALUE_INDEX] === "number") {
|
|
150
|
+
footerMaxLength = footerRule[numeric_constant.RULE_VALUE_INDEX];
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
// Add body formatting rules if line length rules exist
|
|
154
|
+
if (bodyMaxLength || footerMaxLength) {
|
|
155
|
+
prompt += "\n\nIMPORTANT: Body formatting rules:";
|
|
156
|
+
prompt += "\n- The 'body' field in the JSON corresponds to the commit message body/footer";
|
|
157
|
+
if (bodyMaxLength) {
|
|
158
|
+
prompt += `\n- Each line in the body must be wrapped to not exceed ${bodyMaxLength} characters`;
|
|
159
|
+
}
|
|
160
|
+
if (footerMaxLength) {
|
|
161
|
+
prompt += `\n- Footer lines must be wrapped to not exceed ${footerMaxLength} characters`;
|
|
162
|
+
}
|
|
163
|
+
prompt += "\n- The 'breaking' field also follows the same line length rules";
|
|
164
|
+
prompt += "\n- Use line breaks (\\n) to wrap long lines";
|
|
165
|
+
prompt += "\n- Empty lines between paragraphs are allowed";
|
|
166
|
+
}
|
|
167
|
+
prompt += "\n\nGenerate a commit message in the following JSON format:\n";
|
|
168
|
+
prompt += '{\n "type": "commit type",\n "scope": "optional scope",\n "subject": "commit subject",\n "body": "optional body",\n "breaking": "optional breaking change description"\n}';
|
|
169
|
+
prompt += "\n\nIMPORTANT: Respond ONLY with the JSON object. Do not include markdown code blocks, explanations, or any other text. Just the raw JSON.";
|
|
170
|
+
prompt += "\n\nIMPORTANT: Follow ALL the rules listed above. The commit message MUST pass validation.";
|
|
171
|
+
return prompt;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Build the user prompt for Ollama
|
|
175
|
+
* @param context - The prompt context
|
|
176
|
+
* @returns The user prompt
|
|
177
|
+
*/
|
|
178
|
+
buildUserPrompt(context) {
|
|
179
|
+
let prompt = "";
|
|
180
|
+
// Check if this is a fix operation
|
|
181
|
+
const isFixing = !!(context.rules && typeof context.rules === "object" && !Array.isArray(context.rules) && context.rules.validationErrors && context.rules.previousAttempt && context.diff === undefined);
|
|
182
|
+
if (isFixing) {
|
|
183
|
+
prompt = "Fix the following commit message to comply with the validation rules:\n\n";
|
|
184
|
+
// Include previous attempt
|
|
185
|
+
if (context.rules?.previousAttempt && typeof context.rules.previousAttempt === "string") {
|
|
186
|
+
prompt += `Commit message to fix:\n${context.rules.previousAttempt}\n\n`;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
prompt = "Generate a commit message for the following changes:\n\n";
|
|
191
|
+
// Include previous attempt if this is a retry with diff
|
|
192
|
+
if (context.rules?.previousAttempt && typeof context.rules.previousAttempt === "string") {
|
|
193
|
+
prompt += `Previous attempt (with errors):\n${context.rules.previousAttempt}\n\n`;
|
|
194
|
+
}
|
|
195
|
+
if (context.diff) {
|
|
196
|
+
prompt += `Diff:\n${context.diff}\n\n`;
|
|
197
|
+
}
|
|
198
|
+
if (context.files) {
|
|
199
|
+
prompt += `Files changed:\n${context.files}\n\n`;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
if (context.rules && typeof context.rules === "object" && !Array.isArray(context.rules) && context.rules.instructions && typeof context.rules.instructions === "string") {
|
|
203
|
+
prompt += `${context.rules.instructions}\n\n`;
|
|
204
|
+
}
|
|
205
|
+
if (isFixing) {
|
|
206
|
+
prompt += "Please fix the commit message to pass validation while keeping the same meaning and content.";
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
prompt += "Please generate an appropriate commit message following the conventional commit format.";
|
|
210
|
+
}
|
|
211
|
+
return prompt;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Format commitlint rules into human-readable instructions
|
|
215
|
+
* @param rules - The commitlint rules object
|
|
216
|
+
* @returns Formatted rules as string
|
|
217
|
+
*/
|
|
218
|
+
formatCommitlintRules(rules) {
|
|
219
|
+
const formattedRules = [];
|
|
220
|
+
for (const [ruleName, ruleConfig] of Object.entries(rules)) {
|
|
221
|
+
if (!Array.isArray(ruleConfig) || ruleConfig.length < numeric_constant.MIN_RULE_LENGTH)
|
|
222
|
+
continue;
|
|
223
|
+
const [level, condition, value] = ruleConfig;
|
|
224
|
+
if (level === numeric_constant.VALIDATION_LEVEL_DISABLED)
|
|
225
|
+
continue; // Skip disabled rules
|
|
226
|
+
const isError = level === numeric_constant.VALIDATION_LEVEL_ERROR;
|
|
227
|
+
const prefix = isError ? "MUST" : "SHOULD";
|
|
228
|
+
const conditionString = String(condition);
|
|
229
|
+
switch (ruleName) {
|
|
230
|
+
case "body-max-line-length": {
|
|
231
|
+
if (typeof value === "number") {
|
|
232
|
+
formattedRules.push(`Body lines ${prefix} be at most ${value} characters (wrap long lines with line breaks)`);
|
|
233
|
+
}
|
|
234
|
+
break;
|
|
235
|
+
}
|
|
236
|
+
case "footer-max-line-length": {
|
|
237
|
+
if (typeof value === "number") {
|
|
238
|
+
formattedRules.push(`Footer lines ${prefix} be at most ${value} characters (Note: the 'body' field is treated as footer, wrap long lines)`);
|
|
239
|
+
}
|
|
240
|
+
break;
|
|
241
|
+
}
|
|
242
|
+
case "header-max-length": {
|
|
243
|
+
if (typeof value === "number") {
|
|
244
|
+
formattedRules.push(`Header (type(scope): subject) ${prefix} be at most ${value} characters`);
|
|
245
|
+
}
|
|
246
|
+
break;
|
|
247
|
+
}
|
|
248
|
+
case "scope-case": {
|
|
249
|
+
if (Array.isArray(value)) {
|
|
250
|
+
formattedRules.push(`Scope ${prefix} be in ${value.join(" or ")} case`);
|
|
251
|
+
}
|
|
252
|
+
break;
|
|
253
|
+
}
|
|
254
|
+
case "scope-enum": {
|
|
255
|
+
if (conditionString === "always" && Array.isArray(value)) {
|
|
256
|
+
formattedRules.push(`Scope ${prefix} be one of: ${value.join(", ")}`);
|
|
257
|
+
}
|
|
258
|
+
break;
|
|
259
|
+
}
|
|
260
|
+
case "subject-case": {
|
|
261
|
+
if (Array.isArray(value)) {
|
|
262
|
+
formattedRules.push(`Subject ${prefix} be in ${value.join(" or ")} case`);
|
|
263
|
+
}
|
|
264
|
+
break;
|
|
265
|
+
}
|
|
266
|
+
case "subject-empty": {
|
|
267
|
+
formattedRules.push(`Subject ${prefix} ${conditionString === "never" ? "not be empty" : "be empty"}`);
|
|
268
|
+
break;
|
|
269
|
+
}
|
|
270
|
+
case "subject-full-stop": {
|
|
271
|
+
formattedRules.push(`Subject ${prefix} ${conditionString === "never" ? "not end with a period" : "end with a period"}`);
|
|
272
|
+
break;
|
|
273
|
+
}
|
|
274
|
+
case "subject-max-length": {
|
|
275
|
+
if (typeof value === "number") {
|
|
276
|
+
formattedRules.push(`Subject ${prefix} be at most ${value} characters`);
|
|
277
|
+
}
|
|
278
|
+
break;
|
|
279
|
+
}
|
|
280
|
+
case "subject-min-length": {
|
|
281
|
+
if (typeof value === "number") {
|
|
282
|
+
formattedRules.push(`Subject ${prefix} be at least ${value} characters`);
|
|
283
|
+
}
|
|
284
|
+
break;
|
|
285
|
+
}
|
|
286
|
+
case "type-case": {
|
|
287
|
+
if (Array.isArray(value)) {
|
|
288
|
+
formattedRules.push(`Type ${prefix} be in ${value.join(" or ")} case`);
|
|
289
|
+
}
|
|
290
|
+
break;
|
|
291
|
+
}
|
|
292
|
+
case "type-enum": {
|
|
293
|
+
if (conditionString === "always" && Array.isArray(value)) {
|
|
294
|
+
formattedRules.push(`Type ${prefix} be one of: ${value.join(", ")}`);
|
|
295
|
+
}
|
|
296
|
+
break;
|
|
297
|
+
}
|
|
298
|
+
default: {
|
|
299
|
+
// Handle other rules generically
|
|
300
|
+
if (condition && value !== undefined) {
|
|
301
|
+
formattedRules.push(`${ruleName}: ${conditionString} ${JSON.stringify(value)}`);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
return formattedRules.join("\n");
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Parse the commit message from the LLM response
|
|
310
|
+
* @param content - The response content
|
|
311
|
+
* @returns The parsed commit message
|
|
312
|
+
*/
|
|
313
|
+
parseCommitMessage(content) {
|
|
314
|
+
try {
|
|
315
|
+
// Clean up the content - remove markdown code blocks if present
|
|
316
|
+
let cleanContent = content.trim();
|
|
317
|
+
// Remove markdown code blocks with more specific pattern - fixed regex
|
|
318
|
+
cleanContent = cleanContent.replace(/^```(?:json)?\s*/i, "").replace(/```$/m, "");
|
|
319
|
+
// Try to extract JSON if it's wrapped in other text - use safer approach
|
|
320
|
+
const firstBrace = cleanContent.indexOf("{");
|
|
321
|
+
const lastBrace = cleanContent.lastIndexOf("}");
|
|
322
|
+
if (firstBrace !== -1 && lastBrace !== -1 && lastBrace > firstBrace) {
|
|
323
|
+
cleanContent = cleanContent.slice(firstBrace, lastBrace + 1);
|
|
324
|
+
}
|
|
325
|
+
const parsed = JSON.parse(cleanContent);
|
|
326
|
+
// Validate required fields
|
|
327
|
+
if (!parsed.type || !parsed.subject) {
|
|
328
|
+
throw new Error("Missing required fields: type and subject");
|
|
329
|
+
}
|
|
330
|
+
const header = new commitHeader_valueObject.CommitHeader(parsed.type, parsed.subject, parsed.scope);
|
|
331
|
+
// Strip "BREAKING CHANGE:" prefix if included in the breaking field
|
|
332
|
+
let breakingChange = parsed.breaking;
|
|
333
|
+
if (breakingChange?.startsWith("BREAKING CHANGE:")) {
|
|
334
|
+
breakingChange = breakingChange.slice("BREAKING CHANGE:".length).trim();
|
|
335
|
+
}
|
|
336
|
+
const body = new commitBody_valueObject.CommitBody(parsed.body, breakingChange);
|
|
337
|
+
return new commitMessage_entity.CommitMessage(header, body);
|
|
338
|
+
}
|
|
339
|
+
catch {
|
|
340
|
+
// Fallback: try to parse as plain text
|
|
341
|
+
const lines = content.trim().split("\n");
|
|
342
|
+
const headerLine = lines[0];
|
|
343
|
+
// Parse header: type(scope): subject
|
|
344
|
+
const headerMatch = /^(\w+)(?:\(([^)]+)\))?: (.+)$/.exec(headerLine);
|
|
345
|
+
if (!headerMatch) {
|
|
346
|
+
throw new Error(`Invalid commit message format. Could not parse: "${headerLine}"`);
|
|
347
|
+
}
|
|
348
|
+
const [, type, scope, subject] = headerMatch;
|
|
349
|
+
const header = new commitHeader_valueObject.CommitHeader(type, subject, scope);
|
|
350
|
+
// Parse body and breaking changes
|
|
351
|
+
let bodyContent = "";
|
|
352
|
+
let breakingChange;
|
|
353
|
+
for (let index = 1; index < lines.length; index++) {
|
|
354
|
+
const line = lines[index];
|
|
355
|
+
if (line.startsWith("BREAKING CHANGE:")) {
|
|
356
|
+
breakingChange = line.slice("BREAKING CHANGE:".length).trim();
|
|
357
|
+
}
|
|
358
|
+
else if (line.trim()) {
|
|
359
|
+
bodyContent += line + "\n";
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
const body = new commitBody_valueObject.CommitBody(bodyContent.trim() || undefined, breakingChange);
|
|
363
|
+
return new commitMessage_entity.CommitMessage(header, body);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
exports.OllamaLlmService = OllamaLlmService;
|
|
369
|
+
//# sourceMappingURL=ollama-llm.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama-llm.service.js","sources":["../../../../../src/infrastructure/llm/ollama-llm.service.ts"],"sourcesContent":[null],"names":["EOllamaModel","RULE_CONFIG_LENGTH","VALIDATION_LEVEL_DISABLED","RULE_VALUE_INDEX","MIN_RULE_LENGTH","VALIDATION_LEVEL_ERROR","CommitHeader","CommitBody","CommitMessage"],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { ILlmPromptContext, ILlmService } from "../../application/interface/llm-service.interface.js";
|
|
2
|
+
import type { LLMConfiguration } from "../../domain/entity/llm-configuration.entity.js";
|
|
3
|
+
import { CommitMessage } from "../../domain/entity/commit-message.entity.js";
|
|
4
|
+
/**
|
|
5
|
+
* OpenAI implementation of the LLM service
|
|
6
|
+
*/
|
|
7
|
+
export declare class OpenAILlmService implements ILlmService {
|
|
8
|
+
/**
|
|
9
|
+
* Generate a commit message using OpenAI
|
|
10
|
+
* @param context - The context for generating the commit message
|
|
11
|
+
* @param configuration - The LLM configuration
|
|
12
|
+
* @returns Promise resolving to the generated commit message
|
|
13
|
+
*/
|
|
14
|
+
generateCommitMessage(context: ILlmPromptContext, configuration: LLMConfiguration): Promise<CommitMessage>;
|
|
15
|
+
/**
|
|
16
|
+
* Check if the service supports the given configuration
|
|
17
|
+
* @param configuration - The LLM configuration to check
|
|
18
|
+
* @returns True if the service supports the configuration
|
|
19
|
+
*/
|
|
20
|
+
supports(configuration: LLMConfiguration): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Build the system prompt for OpenAI
|
|
23
|
+
* @param context - The prompt context
|
|
24
|
+
* @returns The system prompt
|
|
25
|
+
*/
|
|
26
|
+
private buildSystemPrompt;
|
|
27
|
+
/**
|
|
28
|
+
* Build the user prompt for OpenAI
|
|
29
|
+
* @param context - The prompt context
|
|
30
|
+
* @returns The user prompt
|
|
31
|
+
*/
|
|
32
|
+
private buildUserPrompt;
|
|
33
|
+
/**
|
|
34
|
+
* Format commitlint rules into human-readable instructions
|
|
35
|
+
* @param rules - The commitlint rules object
|
|
36
|
+
* @returns Formatted rules as string
|
|
37
|
+
*/
|
|
38
|
+
private formatCommitlintRules;
|
|
39
|
+
/**
|
|
40
|
+
* Parse the commit message from the LLM response
|
|
41
|
+
* @param content - The response content
|
|
42
|
+
* @returns The parsed commit message
|
|
43
|
+
*/
|
|
44
|
+
private parseCommitMessage;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=openai-llm.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-llm.service.d.ts","sourceRoot":"","sources":["../../../../src/infrastructure/llm/openai-llm.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,sDAAsD,CAAC;AAC3G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iDAAiD,CAAC;AAMxF,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAK7E;;GAEG;AACH,qBAAa,gBAAiB,YAAW,WAAW;IACnD;;;;;OAKG;IACG,qBAAqB,CAAC,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;IA2BhH;;;;OAIG;IACH,QAAQ,CAAC,aAAa,EAAE,gBAAgB,GAAG,OAAO;IAIlD;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAkGzB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IA2CvB;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAuH7B;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;CA6E1B"}
|