Skip to content

Fix/ci formatting check - #670

Merged
murdore merged 1 commit into
releasefrom
fix/ci-formatting-check
Dec 12, 2025
Merged

murdore merged 1 commit into
releasefrom
fix/ci-formatting-check

Conversation

@murdore

@murdore murdore commented Dec 12, 2025 •

Copy link
Copy Markdown
Contributor

Pull Request

Description

Type of Change

  • 🐛 Bug fix (non-breaking change which fixes an issue)
  • ✨ New feature (non-breaking change which adds functionality)
  • 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • 📚 Documentation update
  • 🧹 Code refactoring (no functional changes)
  • ⚡ Performance improvement
  • 🧪 Test coverage improvement
  • 🔧 Build/CI configuration change

Related Issues

  • Fixes #
  • Related to #

Changes Made

AI Provider Impact

  • OpenAI
  • Anthropic
  • Google AI/Vertex
  • AWS Bedrock
  • Azure OpenAI
  • Hugging Face
  • Ollama
  • Mistral
  • All providers
  • No provider-specific changes

Component Impact

  • CLI
  • SDK
  • MCP Integration
  • Streaming
  • Tool Calling
  • Configuration
  • Documentation
  • Tests

Testing

  • Unit tests added/updated
  • Integration tests added/updated
  • E2E tests added/updated
  • Manual testing performed
  • All existing tests pass

Test Environment

  • OS:
  • Node.js version:
  • Package manager:

Performance Impact

  • No performance impact
  • Performance improvement
  • Minor performance impact (acceptable)
  • Significant performance impact (needs discussion)

Breaking Changes

Screenshots/Demo

Checklist

  • My code follows the project's style guidelines
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published

Additional Notes

Summary by CodeRabbit

  • New Features

    • Added support for new AI models across multiple providers, including GPT-5 series, O-series models, latest Claude variants, Gemini 3, and expanded Mistral offerings.
  • Documentation

    • Standardized formatting and alignment across feature and API reference documentation.
  • Chores

    • Updated CI workflow to enforce code formatting checks instead of automatic corrections.
    • Added format verification script for local development.

✏️ Tip: You can customize this high-level summary in your review settings.

Copilot AI review requested due to automatic review settings December 12, 2025 10:21
@coderabbitai

coderabbitai Bot commented Dec 12, 2025 •

Copy link
Copy Markdown

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Walkthrough

This PR expands model support across multiple AI providers (OpenAI, Google, Anthropic, Mistral, Bedrock, Azure, Ollama) by adding numerous new model identifiers to provider enums and registries. It refactors hard-coded model defaults to use centralized enum constants, updates CI workflows to validate formatting compliance, and makes minor documentation and test formatting adjustments.

Changes

Cohort / File(s) Summary
Workflow Configuration
.github/workflows/ci.yml, .github/workflows/release.yml
Changed CI formatting step from auto-formatting to format validation with error output; added HUSKY="0" environment variable to release workflow to disable git hooks during automated commits.
Documentation Formatting
docs/features/index.md, docs/features/office-documents.md, docs/sdk/api-reference.md
Standardized Markdown table syntax, adjusted column alignment, spacing, and header formatting. No content or functional changes.
Package Configuration
package.json
Added new public script "format:check" with command "prettier --check .".
Model Enumeration Expansions
src/lib/constants/enums.ts
Massively expanded all provider model enums (BedrockModels, OpenAIModels, AzureOpenAIModels, VertexModels, AnthropicModels, MistralModels, OllamaModels, GoogleAIModels, HuggingFaceModels, SageMakerModels, LiteLLMModels) with new model identifiers and variants including GPT-5/5.2 series, O-series, Gemini 3.x, Claude 4.5, Mistral/Pixtral, Llama 4, and numerous provider-specific entries.
Vision Model Support
src/lib/adapters/providerImageAdapter.ts
Added extensive new vision-capable model identifiers across multiple providers including latest GPT, Gemini, Claude, Mistral variants and image-enhancement models.
Provider Registry Defaults
src/lib/factories/providerRegistry.ts
Replaced six hard-coded provider model identifiers with enum-based constants; added imports for AnthropicModels, VertexModels, MistralModels, OllamaModels, LiteLLMModels, HuggingFaceModels.
Model Registry Expansion
src/lib/models/modelRegistry.ts
Expanded registry with comprehensive new model entries across all providers, updated metadata (pricing, token limits, performance), refined use-case recommendations mappings, and adjusted model aliases and classifications.
Test Formatting
test/unit/cli/video-flags.test.ts
Minor formatting: relocated inline comments from separate lines to same-line comments for test expectations.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

  • src/lib/constants/enums.ts: Verify correctness and completeness of new model identifiers across all provider enums; check for duplicates, naming consistency, and alignment with actual provider model strings.
  • src/lib/models/modelRegistry.ts: Validate new model metadata (pricing, token limits, use-case mappings); ensure aliases are correct and consistent with enum entries; confirm provider wiring matches updated enums.
  • src/lib/adapters/providerImageAdapter.ts: Confirm vision-capable model identifiers are accurate and match the updated enums; verify model family groupings.
  • src/lib/factories/providerRegistry.ts: Verify enum-based defaults resolve correctly and maintain backward compatibility with existing provider initialization.

Possibly related PRs

Suggested labels

released

Poem

🐰 A feast of models, fresh and new,
From Claude to Gemini, tried and true!
No more hard-coded strings to mend,
Enums organize from start to end—
Format checks ensure all plays so fair,
A rabbit's gift of organized care! ✨

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Fix/ci formatting check' is clearly related to the main changes in the PR, which involve replacing a code auto-formatting step with a formatting check step in the CI workflow (.github/workflows/ci.yml), and adding a format:check script to package.json.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/lib/adapters/providerImageAdapter.ts (1)

377-400: Missing case handlers for new vision-capable providers.

The VISION_CAPABILITIES constant now includes entries for litellm, mistral, bedrock, huggingface, and sagemaker, but the adaptForProvider switch statement doesn't handle these providers. This will cause requests with images to these providers to fail with "Vision not supported for provider" even though they're listed as vision-capable.

As per coding guidelines, when adding vision support for new models, both VISION_CAPABILITIES and adaptImageForProvider() should be updated.

Add case handlers for the new providers. Example:

         case "ollama":
           adaptedPayload = this.formatForOpenAI(text, images);
           break;
+        case "mistral":
+          adaptedPayload = this.formatForOpenAI(text, images);
+          break;
+        case "bedrock":
+          // Route based on model type (Claude vs Nova vs Llama)
+          if (model.includes("claude") || model.includes("anthropic")) {
+            adaptedPayload = this.formatForAnthropic(text, images);
+          } else {
+            adaptedPayload = this.formatForOpenAI(text, images);
+          }
+          break;
+        case "litellm":
+          // LiteLLM proxies to underlying providers - use OpenAI format as default
+          adaptedPayload = this.formatForOpenAI(text, images);
+          break;
+        case "huggingface":
+          adaptedPayload = this.formatForOpenAI(text, images);
+          break;
+        case "sagemaker":
+          adaptedPayload = this.formatForOpenAI(text, images);
+          break;
         default:
           throw new Error(`Vision not supported for provider: ${provider}`);
🧹 Nitpick comments (1)
src/lib/constants/enums.ts (1)

420-518: Comprehensive OllamaModels enum.

The OllamaModels enum provides extensive coverage with ~90 entries organized by model family (Llama 4/3.x, Qwen, DeepSeek, Mistral, Gemma, Phi, Vision-Language, Code-specialized, MoE). The organization is clear with helpful comments.

Consider whether all size variants need explicit enum entries, or if a pattern-based approach would be more maintainable (e.g., allowing llama3.1:8b without requiring an explicit enum entry).

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e76ab73 and e40bb8b.

📒 Files selected for processing (11)
  • .github/workflows/ci.yml (1 hunks)
  • .github/workflows/release.yml (1 hunks)
  • docs/features/index.md (1 hunks)
  • docs/features/office-documents.md (21 hunks)
  • docs/sdk/api-reference.md (3 hunks)
  • package.json (1 hunks)
  • src/lib/adapters/providerImageAdapter.ts (10 hunks)
  • src/lib/constants/enums.ts (4 hunks)
  • src/lib/factories/providerRegistry.ts (7 hunks)
  • src/lib/models/modelRegistry.ts (8 hunks)
  • test/unit/cli/video-flags.test.ts (3 hunks)
🧰 Additional context used
📓 Path-based instructions (3)
**/*.{ts,tsx}

📄 CodeRabbit inference engine (CLAUDE.md)

**/*.{ts,tsx}: Maintain strict TypeScript type safety across all modules with comprehensive type definitions organized by domain to avoid circular dependencies
Use ErrorFactory for creating typed errors throughout the application
Wrap async operations with withTimeout utility for timeout handling

Files:

  • test/unit/cli/video-flags.test.ts
  • src/lib/models/modelRegistry.ts
  • src/lib/factories/providerRegistry.ts
  • src/lib/adapters/providerImageAdapter.ts
  • src/lib/constants/enums.ts
**/factories/providerRegistry.ts

📄 CodeRabbit inference engine (CLAUDE.md)

All providers must be loaded via dynamic imports to break circular dependency chains in the ProviderRegistry

Files:

  • src/lib/factories/providerRegistry.ts
**/adapters/providerImageAdapter.ts

📄 CodeRabbit inference engine (CLAUDE.md)

Update ProviderImageAdapter.VISION_CAPABILITIES and ProviderImageAdapter.adaptImageForProvider() when adding vision support for new models

Files:

  • src/lib/adapters/providerImageAdapter.ts
🧠 Learnings (13)
📓 Common learnings
Learnt from: YasmeenOgo
Repo: juspay/neurolink PR: 145
File: src/lib/core/types.ts:0-0
Timestamp: 2025-09-02T13:50:42.770Z
Learning: The APIVersions enum in src/lib/core/types.ts now contains comprehensive API version constants for all major AI providers: Azure OpenAI (latest, stable, legacy), OpenAI (current, beta), Google AI (current, beta), and Anthropic (current). This centralization helps avoid API version drift across the codebase.
Learnt from: RajuSudhar
Repo: juspay/neurolink PR: 173
File: src/lib/types/index.ts:58-62
Timestamp: 2025-09-17T18:14:34.960Z
Learning: RajuSudhar explained that in the Neurolink codebase, there are multiple ProviderConfig types causing inconsistency. One existing ProviderConfig type better suited the "ProviderConfig" name, so they renamed the less-suitable one to AIModelProviderConfig to free up the name. Adding backward compatibility aliases would worsen naming inconsistency rather than help. The remaining duplicates will be systematically deduplicated in the 07-Types-Module.md TODO as part of their phased refactor approach.
Learnt from: RajuSudhar
Repo: juspay/neurolink PR: 173
File: src/lib/index.ts:16-16
Timestamp: 2025-09-17T17:55:15.261Z
Learning: In src/lib/types/providers.ts, ProviderConfig was renamed to AIModelProviderConfig to deduplicate type names, as there was an existing ProviderConfig type that better suited the "ProviderConfig" name. This was an intentional breaking change for better type organization.
Learnt from: CR
Repo: juspay/neurolink PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T12:24:51.147Z
Learning: All providers must support the same core interface for consistency across the 12+ AI provider implementations
Learnt from: CR
Repo: juspay/neurolink PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T12:24:51.147Z
Learning: Applies to **/types/index.ts : Add new provider names to the AIProviderName enum in src/lib/types/index.ts when adding a new provider
Learnt from: CR
Repo: juspay/neurolink PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T12:24:51.147Z
Learning: Applies to **/adapters/providerImageAdapter.ts : Update ProviderImageAdapter.VISION_CAPABILITIES and ProviderImageAdapter.adaptImageForProvider() when adding vision support for new models
📚 Learning: 2025-12-10T12:24:51.147Z
Learnt from: CR
Repo: juspay/neurolink PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T12:24:51.147Z
Learning: Applies to **/utils/pdfProcessor.ts : PDF processing must be handled through PDFProcessor in src/lib/utils/pdfProcessor.ts with provider-specific handling in the message builder

Applied to files:

  • docs/sdk/api-reference.md
  • docs/features/office-documents.md
📚 Learning: 2025-09-01T22:58:39.149Z
Learnt from: sudharsan-juspay
Repo: juspay/neurolink PR: 140
File: src/lib/core/types.ts:198-203
Timestamp: 2025-09-01T22:58:39.149Z
Learning: In src/lib/core/types.ts, StreamOptions (imported from streamTypes.js) and StreamingOptions are intentionally different types with different use cases. StreamingOptions is for unified AI requests with multiple provider configurations, while StreamOptions is for individual streaming operations.

Applied to files:

  • docs/features/office-documents.md
📚 Learning: 2025-12-10T12:24:51.147Z
Learnt from: CR
Repo: juspay/neurolink PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T12:24:51.147Z
Learning: Applies to **/types/index.ts : Add new provider names to the AIProviderName enum in src/lib/types/index.ts when adding a new provider

Applied to files:

  • docs/features/office-documents.md
  • src/lib/models/modelRegistry.ts
  • src/lib/factories/providerRegistry.ts
  • src/lib/adapters/providerImageAdapter.ts
  • src/lib/constants/enums.ts
📚 Learning: 2025-12-10T12:24:51.147Z
Learnt from: CR
Repo: juspay/neurolink PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T12:24:51.147Z
Learning: Applies to **/utils/fileDetector.ts : File type detection must use FileDetector in src/lib/utils/fileDetector.ts for automatic detection of file types

Applied to files:

  • docs/features/office-documents.md
📚 Learning: 2025-09-17T17:55:15.261Z
Learnt from: RajuSudhar
Repo: juspay/neurolink PR: 173
File: src/lib/index.ts:16-16
Timestamp: 2025-09-17T17:55:15.261Z
Learning: In src/lib/types/providers.ts, ProviderConfig was renamed to AIModelProviderConfig to deduplicate type names, as there was an existing ProviderConfig type that better suited the "ProviderConfig" name. This was an intentional breaking change for better type organization.

Applied to files:

  • src/lib/models/modelRegistry.ts
  • src/lib/factories/providerRegistry.ts
  • src/lib/adapters/providerImageAdapter.ts
  • src/lib/constants/enums.ts
📚 Learning: 2025-09-02T13:50:42.770Z
Learnt from: YasmeenOgo
Repo: juspay/neurolink PR: 145
File: src/lib/core/types.ts:0-0
Timestamp: 2025-09-02T13:50:42.770Z
Learning: The APIVersions enum in src/lib/core/types.ts now contains comprehensive API version constants for all major AI providers: Azure OpenAI (latest, stable, legacy), OpenAI (current, beta), Google AI (current, beta), and Anthropic (current). This centralization helps avoid API version drift across the codebase.

Applied to files:

  • src/lib/models/modelRegistry.ts
  • src/lib/factories/providerRegistry.ts
  • src/lib/adapters/providerImageAdapter.ts
  • src/lib/constants/enums.ts
📚 Learning: 2025-09-17T18:14:34.960Z
Learnt from: RajuSudhar
Repo: juspay/neurolink PR: 173
File: src/lib/types/index.ts:58-62
Timestamp: 2025-09-17T18:14:34.960Z
Learning: RajuSudhar explained that in the Neurolink codebase, there are multiple ProviderConfig types causing inconsistency. One existing ProviderConfig type better suited the "ProviderConfig" name, so they renamed the less-suitable one to AIModelProviderConfig to free up the name. Adding backward compatibility aliases would worsen naming inconsistency rather than help. The remaining duplicates will be systematically deduplicated in the 07-Types-Module.md TODO as part of their phased refactor approach.

Applied to files:

  • src/lib/models/modelRegistry.ts
  • src/lib/factories/providerRegistry.ts
  • src/lib/adapters/providerImageAdapter.ts
  • src/lib/constants/enums.ts
📚 Learning: 2025-12-10T12:24:51.147Z
Learnt from: CR
Repo: juspay/neurolink PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T12:24:51.147Z
Learning: Applies to **/adapters/providerImageAdapter.ts : Update ProviderImageAdapter.VISION_CAPABILITIES and ProviderImageAdapter.adaptImageForProvider() when adding vision support for new models

Applied to files:

  • src/lib/models/modelRegistry.ts
  • src/lib/factories/providerRegistry.ts
  • src/lib/adapters/providerImageAdapter.ts
📚 Learning: 2025-12-10T12:24:51.147Z
Learnt from: CR
Repo: juspay/neurolink PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T12:24:51.147Z
Learning: Applies to **/providers/*.ts : Providers must extend a base provider or implement the provider interface and register in ProviderRegistry.registerAllProviders() with provider name, factory function, default model, and aliases

Applied to files:

  • src/lib/factories/providerRegistry.ts
📚 Learning: 2025-12-10T12:24:51.147Z
Learnt from: CR
Repo: juspay/neurolink PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T12:24:51.147Z
Learning: Applies to **/factories/providerRegistry.ts : All providers must be loaded via dynamic imports to break circular dependency chains in the ProviderRegistry

Applied to files:

  • src/lib/factories/providerRegistry.ts
📚 Learning: 2025-12-10T12:24:51.147Z
Learnt from: CR
Repo: juspay/neurolink PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T12:24:51.147Z
Learning: Applies to **/cli/factories/commandFactory.ts : Register CLI provider choices in src/cli/factories/commandFactory.ts when adding new providers

Applied to files:

  • src/lib/factories/providerRegistry.ts
📚 Learning: 2025-12-10T12:24:51.147Z
Learnt from: CR
Repo: juspay/neurolink PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-10T12:24:51.147Z
Learning: All providers must support the same core interface for consistency across the 12+ AI provider implementations

Applied to files:

  • src/lib/factories/providerRegistry.ts
  • docs/features/index.md
🧬 Code graph analysis (2)
src/lib/factories/providerRegistry.ts (1)
src/lib/index.ts (1)
  • VertexModels (41-41)
src/lib/constants/enums.ts (1)
src/lib/index.ts (1)
  • OpenAIModels (40-40)
🔇 Additional comments (16)
.github/workflows/release.yml (1)

80-80: LGTM! Standard CI practice.

Setting HUSKY: "0" during automated release commits is a best practice to prevent git hooks from interfering with CI automation. This ensures reliable, uninterrupted release workflows.

test/unit/cli/video-flags.test.ts (1)

6-6: LGTM! Formatting-only changes.

These adjustments align inline comments with array elements without affecting test logic or assertions. Consistent with the broader formatting enforcement initiative in this PR.

Also applies to: 23-27, 42-45

package.json (1)

41-41: LGTM! Standard CI formatting check pattern.

The new format:check script complements the existing format script and follows the standard pattern: use format for local development (auto-fix) and format:check for CI validation (fail on issues). This aligns with the CI workflow changes in this PR.

docs/features/office-documents.md (1)

19-31: LGTM! Documentation formatting improvements.

These changes standardize table formatting, spacing, and markdown structure without altering any content or semantics. Aligns with the broader formatting consistency initiative in this PR.

Also applies to: 221-226, 271-272, 495-504, 552-565, 614-619, 652-671, 813-817

docs/features/index.md (1)

28-37: LGTM! Table formatting standardization.

These changes improve table readability by standardizing column alignment and spacing without affecting content. Consistent with the broader formatting initiative.

Also applies to: 43-51

docs/sdk/api-reference.md (1)

596-596: LGTM! API documentation formatting cleanup.

Minor whitespace adjustments and table formatting improvements without affecting content or API documentation accuracy.

Also applies to: 938-946, 1981-1987

src/lib/factories/providerRegistry.ts (2)

14-19: LGTM! Good refactoring to centralize model identifiers.

Adding enum imports for model constants is a maintainability improvement that reduces magic strings and potential typos throughout the codebase.


92-92: Enum values verified and correctly defined.

All referenced enum constants in src/lib/constants/enums.ts contain appropriate string values matching expected model identifiers:

  • AnthropicModels.CLAUDE_SONNET_4_0 = "claude-sonnet-4-20250514"
  • VertexModels.CLAUDE_4_0_SONNET = "claude-sonnet-4@20250514"
  • HuggingFaceModels.QWEN_2_5_72B_INSTRUCT = "Qwen/Qwen2.5-72B-Instruct"
  • MistralModels.MISTRAL_LARGE_LATEST = "mistral-large-latest"
  • OllamaModels.LLAMA3_2_LATEST = "llama3.2:latest"
  • LiteLLMModels.OPENAI_GPT_4O_MINI = "openai/gpt-4o-mini"

The refactoring to enum constants is complete and correct.

.github/workflows/ci.yml (1)

39-46: LGTM! Good shift to strict formatting enforcement.

Replacing the auto-format step with format:check that fails on issues is a healthy CI practice. The error message provides clear, actionable guidance for developers. This aligns with the format:check script in package.json.

Note: This represents a policy shift from permissive (auto-fix) to strict (fail on issues). Ensure this doesn't create friction for existing contributors or break in-flight PRs.

src/lib/adapters/providerImageAdapter.ts (1)

26-354: Vision capability entries expanded comprehensively.

The additions to VISION_CAPABILITIES are well-organized with clear comments indicating model families and release dates. The coverage across OpenAI, Google AI, Anthropic, Azure, Vertex, LiteLLM, Mistral, Ollama, Bedrock, HuggingFace, and SageMaker provides good breadth for multimodal use cases.

Ensure the new HuggingFace and SageMaker entries (lines 340-354) are verified against provider documentation for actual vision support.

src/lib/models/modelRegistry.ts (3)

7-19: Good use of centralized enum imports.

The imports now pull model identifiers from enums.ts, ensuring consistency between the registry and other parts of the codebase. This aligns with the codebase pattern of centralizing model constants.


1502-1767: Local Ollama models configured correctly.

All Ollama model entries are properly configured with:

  • isLocal: true flag
  • pricing: { inputCostPer1K: 0, outputCostPer1K: 0 } reflecting no API costs
  • Missing maxRequestsPerMinute in limits (appropriate since local inference doesn't have rate limits)

This is a clean addition for local model support.


2365-2378: Good addition of local and multimodal use case categories.

The new local and multimodal use case categories provide helpful model recommendations for users who want to run models locally or need vision/multimodal capabilities. This improves discoverability.

src/lib/constants/enums.ts (3)

27-169: Well-structured BedrockModels enum expansion.

The BedrockModels enum is well-organized with clear section headers for:

  • Anthropic Claude models (4.5, 4, 3.7, 3.5, 3 series)
  • Amazon Nova models (Gen 1, Gen 2, Specialized)
  • Amazon Titan models (Text, Embeddings, Image)
  • Meta Llama models (4, 3.3, 3.2, 3.1, 3 series)
  • Mistral AI models
  • Other models (Cohere, DeepSeek, Qwen, Gemma, AI21)

This structure makes it easy to maintain and extend.


520-579: LiteLLMModels enum follows proxy naming convention.

The LiteLLMModels enum correctly uses provider-prefixed identifiers (e.g., openai/gpt-5, anthropic/claude-sonnet-4-5-20250929) which matches LiteLLM's proxy interface. The docstring comment at lines 521-524 helpfully explains the unified proxy pattern.


211-259: Appropriate separation of Azure OpenAI models.

The AzureOpenAIModels enum is correctly separated from OpenAIModels with:

  • Azure-specific naming conventions (e.g., gpt-35-turbo vs gpt-3.5-turbo)
  • Azure-only variants (e.g., gpt-5.1-codex, gpt-5.1-codex-mini, gpt-5.1-codex-max)
  • Helpful docstring noting Azure uses deployment names

This separation follows the codebase pattern of maintaining provider-specific model catalogs.

Comment on lines +255 to +299
[OpenAIModels.O3_MINI]: {
id: OpenAIModels.O3_MINI,
name: "O3 Mini",
provider: AIProviderName.OPENAI,
description:
"Cost-effective reasoning model with strong logical capabilities",
capabilities: {
vision: false,
functionCalling: true,
codeGeneration: true,
reasoning: true,
multimodal: false,
streaming: true,
jsonMode: true,
},
pricing: {
inputCostPer1K: 0.003,
outputCostPer1K: 0.012,
currency: "USD",
},
performance: {
speed: "medium",
quality: "high",
accuracy: "high",
},
limits: {
maxContextTokens: 200000,
maxOutputTokens: 65536,
maxRequestsPerMinute: 200,
},
useCases: {
coding: 9,
creative: 6,
analysis: 9,
conversation: 7,
reasoning: 9,
translation: 6,
summarization: 7,
},
aliases: ["o3-mini-reasoning"],
deprecated: false,
isLocal: false,
releaseDate: "2025-01-31",
category: "reasoning",
},

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Vision capability inconsistency for O3 Mini.

The O3_MINI model entry has vision: false and multimodal: false, but in providerImageAdapter.ts, "o3-mini" is listed in VISION_CAPABILITIES for OpenAI. This inconsistency could cause confusion or unexpected behavior.

Verify OpenAI O3-mini's actual vision support and align the registry with VISION_CAPABILITIES:

     capabilities: {
-      vision: false,
+      vision: true,
       functionCalling: true,
       codeGeneration: true,
       reasoning: true,
-      multimodal: false,
+      multimodal: true,
       streaming: true,
       jsonMode: true,
     },

Or remove "o3-mini" from VISION_CAPABILITIES if it doesn't support vision.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
[OpenAIModels.O3_MINI]: {
id: OpenAIModels.O3_MINI,
name: "O3 Mini",
provider: AIProviderName.OPENAI,
description:
"Cost-effective reasoning model with strong logical capabilities",
capabilities: {
vision: false,
functionCalling: true,
codeGeneration: true,
reasoning: true,
multimodal: false,
streaming: true,
jsonMode: true,
},
pricing: {
inputCostPer1K: 0.003,
outputCostPer1K: 0.012,
currency: "USD",
},
performance: {
speed: "medium",
quality: "high",
accuracy: "high",
},
limits: {
maxContextTokens: 200000,
maxOutputTokens: 65536,
maxRequestsPerMinute: 200,
},
useCases: {
coding: 9,
creative: 6,
analysis: 9,
conversation: 7,
reasoning: 9,
translation: 6,
summarization: 7,
},
aliases: ["o3-mini-reasoning"],
deprecated: false,
isLocal: false,
releaseDate: "2025-01-31",
category: "reasoning",
},
[OpenAIModels.O3_MINI]: {
id: OpenAIModels.O3_MINI,
name: "O3 Mini",
provider: AIProviderName.OPENAI,
description:
"Cost-effective reasoning model with strong logical capabilities",
capabilities: {
vision: true,
functionCalling: true,
codeGeneration: true,
reasoning: true,
multimodal: true,
streaming: true,
jsonMode: true,
},
pricing: {
inputCostPer1K: 0.003,
outputCostPer1K: 0.012,
currency: "USD",
},
performance: {
speed: "medium",
quality: "high",
accuracy: "high",
},
limits: {
maxContextTokens: 200000,
maxOutputTokens: 65536,
maxRequestsPerMinute: 200,
},
useCases: {
coding: 9,
creative: 6,
analysis: 9,
conversation: 7,
reasoning: 9,
translation: 6,
summarization: 7,
},
aliases: ["o3-mini-reasoning"],
deprecated: false,
isLocal: false,
releaseDate: "2025-01-31",
category: "reasoning",
},
🤖 Prompt for AI Agents
In src/lib/models/modelRegistry.ts around lines 255 to 299, the O3_MINI entry
lists vision: false and multimodal: false but providerImageAdapter.ts includes
"o3-mini" in VISION_CAPABILITIES; verify the real OpenAI O3-mini capability and
make them consistent by either (A) enabling vision and multimodal in this
registry entry and updating description/capabilities to reflect vision support
if O3-mini does support images, or (B) removing "o3-mini" from
VISION_CAPABILITIES if it does not support vision; ensure any related flags
(vision, multimodal, and description) and tests/docs are updated to match the
chosen source of truth.

@github-actions

Copy link
Copy Markdown
Contributor

🤖 AI Review & Build Compliance ✅

Status: AI analysis complete • Build rules validated • Ready for review

📊 View detailed analysis results

🛡️ Analysis Complete

  • ✅ Security scan (vulnerabilities, API keys)
  • ✅ TypeScript safety & code quality
  • ✅ Error handling & best practices
  • ✅ Build rule enforcement validated
  • ✅ Commit format & compliance checks

📋 Ready for Merge When

  • All CI checks passing
  • Manual review approved
  • Any AI-flagged issues resolved

🤖 AI analysis complete - check individual code comments for specific feedback

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request fixes CI formatting checks to prevent auto-formatting in CI pipelines and includes extensive model registry updates with new model entries across multiple providers.

Key Changes:

  • CI workflow now checks formatting instead of auto-fixing it, failing builds on formatting issues
  • Added format:check script to package.json for validation without modification
  • Added comprehensive model registry entries for GPT-5.x, Claude 4.x, Azure GPT-5.1, Mistral, Ollama, and Bedrock models
  • Fixed trailing whitespace and formatting inconsistencies across test files and documentation
  • Updated provider registries and image adapter configurations with new model support

Reviewed changes

Copilot reviewed 10 out of 11 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
.github/workflows/ci.yml Changed from auto-formatting to formatting validation check that fails CI on issues
.github/workflows/release.yml Added HUSKY=0 environment variable to disable git hooks during automated releases
package.json Added format:check npm script for read-only formatting validation
test/unit/cli/video-flags.test.ts Fixed trailing whitespace formatting issues
src/lib/models/modelRegistry.ts Added extensive model entries for GPT-5.x, O-series, Claude 4.x, Azure models, Mistral, Ollama, and Bedrock
src/lib/constants/enums.ts Added new model enum definitions for OpenAI, Azure, Anthropic, Mistral, Ollama, LiteLLM, HuggingFace, and SageMaker
src/lib/factories/providerRegistry.ts Updated default models to use new enum constants and added missing imports
src/lib/adapters/providerImageAdapter.ts Extended vision capability lists with new model support across all providers
docs/sdk/api-reference.md Fixed markdown table formatting and trailing whitespace
docs/features/office-documents.md Fixed markdown table formatting and code formatting consistency
docs/features/index.md Fixed markdown table alignment and spacing

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

"claude-opus-4.5",
"anthropic.claude-opus-4-5",
"anthropic.claude-opus-4-5-20251101-v1:0",
"anthropic.claude-opus-4-5-20251124-v1:0",

Copilot AI Dec 12, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inconsistent date format in the Claude Opus 4.5 model ID. Line 295 shows "20251124" (November 24, 2025) while the BedrockModels enum at line 33 of enums.ts shows "20251101" (November 1, 2025). The dates don't match.

Suggested change
"anthropic.claude-opus-4-5-20251124-v1:0",
"anthropic.claude-opus-4-5-20251101-v1:0",

Copilot uses AI. Check for mistakes.
@murdore
murdore force-pushed the fix/ci-formatting-check branch from e40bb8b to aa57e94 Compare December 12, 2025 12:59
@github-actions

github-actions Bot commented Dec 12, 2025 •

Copy link
Copy Markdown
Contributor

✅ Single Commit Policy - COMPLIANT

Status: Policy requirements met • 1 commit • Valid format • Ready for merge

📊 View validation details

📝 Commit Details

  • Hash: 8eb5c6d4a223b2b0e3dc956c4c0973f0944051fd
  • Message: fix(ci): check formatting instead of auto-fix to catch issues during PR builds
  • Author: Sachin Sharma

✅ Validation Results

  • Single commit requirement met
  • No merge commits in branch
  • Semantic commit message format verified
  • Ready for squash merge to release branch

🤖 Automated validation by NeuroLink Single Commit Enforcement

@github-actions

Copy link
Copy Markdown
Contributor

🤖 AI Review & Build Compliance ✅

Status: AI analysis complete • Build rules validated • Ready for review

📊 View detailed analysis results

🛡️ Analysis Complete

  • ✅ Security scan (vulnerabilities, API keys)
  • ✅ TypeScript safety & code quality
  • ✅ Error handling & best practices
  • ✅ Build rule enforcement validated
  • ✅ Commit format & compliance checks

📋 Ready for Merge When

  • All CI checks passing
  • Manual review approved
  • Any AI-flagged issues resolved

🤖 AI analysis complete - check individual code comments for specific feedback

…PR builds

- Change CI workflow from auto-format to format check with failure on issues
- Add format:check script to package.json for prettier --check
- Add HUSKY=0 to release workflow to disable git hooks during semantic-release

This fixes release failures caused by unformatted files that were silently
auto-fixed during PR CI but never committed, causing pre-commit hooks to
fail when semantic-release tries to commit during release.
@murdore
murdore force-pushed the fix/ci-formatting-check branch from aa57e94 to 8eb5c6d Compare December 12, 2025 13:20
@github-actions

Copy link
Copy Markdown
Contributor

🤖 AI Review & Build Compliance ✅

Status: AI analysis complete • Build rules validated • Ready for review

📊 View detailed analysis results

🛡️ Analysis Complete

  • ✅ Security scan (vulnerabilities, API keys)
  • ✅ TypeScript safety & code quality
  • ✅ Error handling & best practices
  • ✅ Build rule enforcement validated
  • ✅ Commit format & compliance checks

📋 Ready for Merge When

  • All CI checks passing
  • Manual review approved
  • Any AI-flagged issues resolved

🤖 AI analysis complete - check individual code comments for specific feedback

@murdore
murdore merged commit 6af89d2 into release Dec 12, 2025
11 checks passed
@murdore
murdore deleted the fix/ci-formatting-check branch December 12, 2025 13:53
@github-actions

Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 8.10.1 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants