Introduces AIMLAPI as a supported AI provider, including model list, config validation, and engine implementation. Updates README and engine selection logic to integrate AIMLAPI for chat completions.
Refactor AimlApiEngine response handling
Removed dependency on removeContentTags and simplified message content extraction. Minor header formatting fix for HTTP-Referer. This streamlines the response handling and reduces unnecessary processing.
The changes:
1. Expanded the skip condition to include additional AI providers (DEEPSEEK, GROQ, MISTRAL, MLX, OPENROUTER) beyond just TEST
2. Maintained existing TEST provider skip behavior
3. Added explicit comment explaining the skip logic
The why:
Prevents migration execution for unsupported AI providers to avoid potential runtime errors or data inconsistencies, ensuring migrations only run for properly handled configurations.
Add OpenRouterEngine class and integrate it into the configuration
system. OpenRouter provides access to 300+ AI models through a
unified API, expanding model availability for commit message
generation beyond existing providers.
When user wants one line commits the system prompt and the user/assistant one-shot example were contradicting each other, confusing the LLM. This fix modifies the assistant output so that prompt and one-shot are consistent.
This commit adds a new 'describe' mode to the config command, allowing users
to get detailed information about configuration parameters. It includes:
1. New CONFIG_MODES.describe enum value
2. Functions to generate and print help messages for config parameters
3. Updated configCommand to handle the new 'describe' mode
4. README updates to document the new 'describe' functionality
- export parseCustomHeaders from src/utils/engine.ts
- use parseCustomHeaders in OpenAiEngine for config.customHeaders
- remove try/catch and inline JSON.parse logic
- update config test to expect headers as object and drop JSON.parse
Centralize header parsing for reuse and simplify engine code
Update tests to match new header format for clarity
Use OpenAI.ClientOptions for stronger typing and clarity
Extract custom headers parsing into parseCustomHeaders util
Simplify getEngine by delegating header parsing to helper
Improve maintainability and reduce code duplication
Add OCO_API_CUSTOM_HEADERS variable to README, config enum,
and env parsing to allow JSON string of custom headers.
Validate that custom headers are valid JSON in config validator.
Extend AiEngineConfig with customHeaders and pass headers to
OllamaEngine and OpenAiEngine clients when creating requests.
Parse custom headers in utils/engine and warn on invalid format.
Add unit tests to ensure OCO_API_CUSTOM_HEADERS is handled
correctly and merged from env over global config.
This enables users to send additional headers such as
Authorization or tracing headers with LLM API calls.
The space normalization logic is updated to replace only multiple spaces
and tabs with a single space, while preserving newlines. This change
ensures that the formatting of the content is maintained, especially
when dealing with empty line requirements and max line length.
The commitlint configuration and prompts have been refactored to enhance
clarity and maintain consistency throughout the codebase. The type
assertion for commitLintConfig is updated to use 'as any' for better
type handling. Additionally, formatting adjustments are made in the
prompts to ensure proper readability and alignment with the defined
conventions. These changes aim to streamline the commit message
generation process and improve overall code maintainability.
This update introduces a new structure for generating commit messages by defining a constant for commit types and consolidating the logic into a single function. The changes enhance readability and maintainability while ensuring consistent formatting based on the OCO_OMIT_SCOPE configuration.
This change allows opencommit to locate commitlint installed globally
(with opencommit), which is useful for project that does not use node.js
environment or dose not have opencommit and @commitlint installed locally.
Add DeepSeekEngine to support DeepSeek API. This
includes a new DeepSeekConfig interface and updates to
the engine selection logic.
feat(README.md, src/commands/config.ts): Add DeepSeek support
Adds support for the DeepSeek AI provider. Updates the README,
config validation, and model list to include DeepSeek. This
allows users to utilize DeepSeek models with the OpenCommit
tool.
fix(deepseek.ts): update DeepSeek API base URL to include version number v1
refactor(deepseek.ts): improve DeepSeekEngine constructor
The DeepSeekEngine constructor is refactored to use the
spread syntax for better readability and maintainability
when merging config parameters. The baseURL is now
explicitly set within the constructor.
fix(README.md): remove Groq from the list of supported AI providers
refactor(deepseek.ts): rename interface DeepseekConfig to DeepSeekEngineeekConfig and fix typo
Revert "refactor(deepseek.ts): rename interface DeepseekConfig to DeepSeekEngineeekConfig and fix typo"
This reverts commit f492367d3885fa97cd685feca889f93d6c465b2f.
refactor(deepseek.ts): Rename DeepseekConfig to DeepSeekConfig for consistency
✨ feat(engine): add DeepSeekEngine to support DeepSeek API
♻️ refactor(engine): improve OpenAiEngine and create a
new DeepSeekEngine class to handle DeepSeek API
requests. The DeepSeekEngine class inherits from
OpenAiEngine and overrides the
generateCommitMessage method to use the DeepSeek
API. This change improves code organization and
maintainability.
🐛 Fix: Correct DeepSeekEngine import and class name
The import path and class name for DeepSeekEngine were
incorrect, causing a runtime error. This commit corrects
the import path and class name to `DeepseekEngine` to
resolve the issue.
Revert "🐛 Fix: Correct DeepSeekEngine import and class name"
This reverts commit 738fd36c434d9df9c3a458b1e8230c974bd2a76e.
🐛 Fix: Correct DeepSeekEngine import and class name
The import path and class name for DeepSeekEngine were corrected to match the actual file and class name. This fixes a runtime error.
Restore ./out directory to master state
* feat(commit.ts): add option to skip pushing commits to a remote repository to enhance user flexibility during commit process
* Update src/commands/commit.ts
---------
Co-authored-by: GPT8 <57486732+di-sukharev@users.noreply.github.com>
* feat(config): add support for groq AI provider, including config validation and engine implementation (#381)
* fix migrations (#414)
---------
Co-authored-by: Takanori Matsumoto <matscube@gmail.com>
Co-authored-by: BILLY Maxime <ozeliurs@gmail.com>
* refactor(config.ts): improve code readability by formatting array elements and conditions
* fix(migrations): handle undefined values correctly when setting default config values
* fix(migrations): ensure process exits with error code on migration failure
* fix(commit.ts): update error handling to provide clearer feedback when commit message generation fails
* feat(config.ts): add cleanUndefinedValues function to sanitize config values by converting 'undefined' and 'null' strings to actual values
* refactor(config.ts): return cleaned config from getConfig function to ensure consistent data types
* chore(migrations): log entriesToSet in migration to assist with debugging and tracking changes
* 378: fix hook env (#402)
* fix(prepare-commit-msg-hook): update error handling to provide clearer instructions for setting API keys and improve user guidance
* Fix: a bug that causes an error when pushing without setting git remote (#396)
* refactoring v2 (#408)
* 3.2.0
* update deploy commands
---------
Co-authored-by: Takanori Matsumoto <matscube@gmail.com>