Commit Graph

571 Commits

Author SHA1 Message Date
Phantas Weng 24adc16adf fix(run.ts): remove trailing comma from OCO_AI_PROVIDER_ENUM array to fix the prettier test 2025-07-08 09:27:40 +00:00
Phantas Weng 881f07eebe fix(prepare-commit-msg-hook): simplify commit message generation logic for clarity and maintainability 2025-07-08 05:38:42 +00:00
Phantas Weng 3a255a3ad9 feat(config): add OCO_HOOK_AUTO_UNCOMMENT config key and update commit message hook behavior to conditionally uncomment the message 2025-07-08 05:25:32 +00:00
GPT8 9971b3c74e Merge pull request #492 from PhantasWeng/git-hook-message
feat(prepare-commit-msg-hook): enhance commit message formatting with a divider and instructions for better user guidance
2025-07-04 11:42:30 +03:00
Phantas Weng 66a5695d89 feat(prepare-commit-msg-hook): enhance commit message formatting with a divider and instructions for better user guidance 2025-07-01 06:02:32 +00:00
GPT8 fd22f713ed Merge pull request #489 from yshngg/patch-1
fix(migrations): skip unhandled AI providers during migration execution
2025-06-29 12:19:17 +03:00
Yusheng Guo 3d42dde48c fix(migrations): skip unhandled AI providers during migration execution
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.
2025-06-23 15:34:22 +08:00
GPT8 c1070789fd Merge pull request #485 from frauniki/add-prettier-ci
chore: Add Prettier format check to CI and format code
2025-06-15 12:18:31 +03:00
di-sukharev 1f0f44ede0 build 2025-06-15 12:17:18 +03:00
di-sukharev 48cdcbceb2 3.2.9 2025-06-15 12:17:16 +03:00
frauniki 45aed936b1 ♻️ refactor: clean up code formatting and improve readability
- Fix inconsistent indentation across multiple engine files
- Remove trailing whitespace and add missing newlines
- Improve code formatting in prompt generation functions
- Break long lines for better readability
- Standardize spacing and brackets placement
2025-06-15 17:29:12 +09:00
frauniki e4f7e8dc80 add prettier formatting check to CI workflow and npm scripts
- Add prettier job to GitHub Actions workflow to enforce code formatting
- Add format:check script to package.json for checking formatting
- Include failure message when prettier check fails in CI
2025-06-15 17:28:40 +09:00
GPT8 15ac076aed Merge pull request #484 from frauniki/add-openrouter-engine
 add openrouter AI provider support with comprehensive model list
2025-06-15 10:28:46 +03:00
frauniki 5725c776a7 add openrouter AI provider support with comprehensive model list
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.
2025-06-15 04:11:13 +09:00
di-sukharev 6f541d33cc build 2025-06-08 11:17:09 +03:00
di-sukharev 2540c169dc 3.2.8 2025-06-08 11:17:08 +03:00
di-sukharev 75147e91e7 refactor(git.ts): improve git add completion message for clarity 2025-06-08 10:42:07 +03:00
di-sukharev 59b6edb49c format 2025-06-08 10:41:16 +03:00
di-sukharev 7683004464 build 2025-06-08 10:41:13 +03:00
di-sukharev e1f657939f chore(deps): bump esbuild from 0.15.18 to 0.25.5 and @actions/github from 5.1.1 to 6.0.1 2025-06-08 10:40:42 +03:00
GPT8 55904155a8 Merge pull request #472 from kakakakakku/fgm
feat(cli.ts): enhance fgm flag to include description and default value for better usability
2025-05-30 10:15:00 +03:00
GPT8 c1be5138b6 Merge pull request #477 from jonsguez/fix/one-line-commit
fix(prompts.ts): edited contradictory assistant output
2025-05-30 10:13:35 +03:00
GPT8 063aa94576 Merge pull request #476 from benleibowitz/master
feat(config): add 'describe' mode to config command for detailed parameter info
2025-05-30 10:11:24 +03:00
jonsguez 668e149ae3 fix(prompts.ts): edited contradictory assistant output
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.
2025-05-29 23:09:10 -04:00
Ben Leibowitz b5fca3155f feat(config): add 'describe' mode to config command for detailed parameter info
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
2025-05-29 15:46:48 -04:00
GPT8 bc514f8f4d Merge pull request #461 from kaovilai/dep-updates
fix tests
2025-05-29 21:56:45 +03:00
Tiger Kaovilai 3b868ce6df fix: enable git push functionality in e2e tests
- Added OCO_GITPUSH='true' environment variable to all e2e test commands
- Fixed ESM module import issues in commitlint tests by using process.cwd()
- Replaced import.meta.url usage with relative paths from project root
- All e2e tests now properly test the git push prompt functionality
2025-05-29 12:05:28 -05:00
Tiger Kaovilai aad62d4fa1 fix: remove duplicate modulePathIgnorePatterns in Jest config
- Fixed Jest configuration error by removing duplicate modulePathIgnorePatterns property
- Consolidated the ignore patterns into a single declaration
- This resolves the TypeScript compilation error preventing tests from running
2025-05-29 12:05:13 -05:00
GPT8 21e92164e7 Merge branch 'master' into dep-updates 2025-05-29 12:37:48 +03:00
kakakakakku f0381c8b12 feat(cli.ts): enhance fgm flag to include description and default value for better usability 2025-05-19 09:04:31 +09:00
GPT8 f6de2dc775 Merge pull request #467 from EmilienMottet/master
Add OCO_API_CUSTOM_HEADERS
2025-05-03 12:06:21 +03:00
EmilienMottet 6aae1c7bd7 ♻️(engine): extract custom header parsing and update OpenAiEngine
- 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
2025-04-30 21:43:44 +02:00
EmilienMottet 71a44fac28 ♻️ refactor OpenAI client options and unify custom headers parsing
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
2025-04-30 14:46:54 +02:00
EmilienMottet 6c48c935e2 add custom HTTP headers support via OCO_API_CUSTOM_HEADERS
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.
2025-04-29 20:51:24 +02:00
GPT8 25c6a0d5d4 Merge pull request #462 from jcppkkk/master
refactor(commitlint): update commitlint configuration and prompts
2025-04-25 16:21:42 +03:00
GPT8 b277bf3d50 Merge pull request #465 from jcppkkk/fix-tests
Fix tests
2025-04-25 16:19:59 +03:00
Jethro Yu 83b6e0bbaf fix(removeContentTags): keep newlines to preserve formatting
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.
2025-04-25 18:44:06 +08:00
Jethro Yu 2726e51c2a fix(test): Stabilize Jest ESM configuration for CI
Resolves persistent `ReferenceError: exports is not defined` errors
encountered during unit tests (`unit-test (20.x)` job) in the GitHub
Actions CI environment. These errors occurred specifically when
importing `cli-testing-library` in the global Jest setup file
(`test/jest-setup.ts`), despite tests passing locally with the same
Node.js version (v20.19.0).

After iterative testing, the following Jest configuration combination
was identified as necessary to ensure consistent ESM handling and test
success in both local and CI environments:

- Set preset to `ts-jest/presets/default-esm` for stricter ESM rules.

- Configured `transformIgnorePatterns` to ensure Jest transforms specific ESM dependencies (`cli-testing-library`, `@clack`, `cleye`) within `node_modules`.

- Expanded the `transform` pattern (`^.+\\.(ts|tsx|js|jsx|mjs)$`) to explicitly cover various script types handled by `ts-jest`.

- Included explicit `tsconfig` overrides (`module: 'ESNext'`, `target: 'ES2022'`) within the `ts-jest` transform options to resolve potential environment discrepancies.

- Retained `moduleNameMapper` for `.js` imports for reliable module resolution.

- Ensured `cli-testing-library` imports remain in the global setup (`test/jest-setup.ts`).

- Removed test cache clearing from the `test:unit` script in `package.json`.

This configuration now passes reliably across environments.
2025-04-25 18:44:05 +08:00
Jethro Yu da2742edb1 chore(package.json): add rimraf as a development dependency for improved file management
Including rimraf in the project allows for easier and more efficient
removal of files and directories, enhancing the development workflow,
especially for tasks like cleaning up build artifacts.
2025-04-25 18:44:05 +08:00
Jethro Yu 0ebff3b974 fix(removeContentTags): keep newlines to preserve formatting
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.
2025-04-25 18:40:50 +08:00
Jethro Yu a52589e9fe fix(test): Stabilize Jest ESM configuration for CI
Resolves persistent `ReferenceError: exports is not defined` errors
encountered during unit tests (`unit-test (20.x)` job) in the GitHub
Actions CI environment. These errors occurred specifically when
importing `cli-testing-library` in the global Jest setup file
(`test/jest-setup.ts`), despite tests passing locally with the same
Node.js version (v20.19.0).

After iterative testing, the following Jest configuration combination
was identified as necessary to ensure consistent ESM handling and test
success in both local and CI environments:

- Set preset to `ts-jest/presets/default-esm` for stricter ESM rules.

- Configured `transformIgnorePatterns` to ensure Jest transforms specific ESM dependencies (`cli-testing-library`, `@clack`, `cleye`) within `node_modules`.

- Expanded the `transform` pattern (`^.+\\.(ts|tsx|js|jsx|mjs)$`) to explicitly cover various script types handled by `ts-jest`.

- Included explicit `tsconfig` overrides (`module: 'ESNext'`, `target: 'ES2022'`) within the `ts-jest` transform options to resolve potential environment discrepancies.

- Retained `moduleNameMapper` for `.js` imports for reliable module resolution.

- Ensured `cli-testing-library` imports remain in the global setup (`test/jest-setup.ts`).

- Removed test cache clearing from the `test:unit` script in `package.json`.

This configuration now passes reliably across environments.
2025-04-15 15:58:53 +08:00
Jethro Yu 5381c5e18b chore(package.json): add rimraf as a development dependency for improved file management
Including rimraf in the project allows for easier and more efficient
removal of files and directories, enhancing the development workflow,
especially for tasks like cleaning up build artifacts.
2025-04-15 14:54:06 +08:00
Jethro Yu 9ffcdbdb3b refactor(commitlint): update commitlint configuration and prompts for improved clarity and consistency
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.
2025-04-15 14:00:09 +08:00
Tiger Kaovilai 6bc1d90469 npm run test:unit passing locally
Signed-off-by: Tiger Kaovilai <passawit.kaovilai@gmail.com>
2025-04-14 05:06:45 -04:00
Tiger Kaovilai 5fb3d75412 fix tests
Signed-off-by: Tiger Kaovilai <passawit.kaovilai@gmail.com>
2025-04-14 04:57:53 -04:00
GPT8 b3700ae685 Merge pull request #458 from kaovilai/thiknagain
Extends #445 to other providers which many provides deepseek
2025-04-14 11:19:20 +03:00
GPT8 1d81229931 Merge pull request #459 from kaovilai/imp1
chore: update GitHub Actions workflows to use latest action versions and improve configurations
2025-04-14 11:18:29 +03:00
GPT8 22f96b34a5 Merge pull request #460 from Heyian/fix/punycode
Fix the punycode deprecated message from the source (survives building from eslint.config.ts).
2025-04-14 11:17:23 +03:00
Marc-Antoine Favreau beecedf6f3 chore(deps): update eslint and typescript-eslint dependencies
feat(package.json): add overrides for ajv and whatwg-url packages
fix(deepseek.ts): correct import path for OpenAiEngine and OpenAiConfig
2025-04-12 11:36:12 -04:00
Tiger Kaovilai 566a9b1a52 reuse function
Signed-off-by: Tiger Kaovilai <passawit.kaovilai@gmail.com>
2025-04-12 04:51:11 -04:00