Fix/ci formatting check - #670
Conversation
|
Important Review skippedAuto incremental reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the Note Other AI code review bot(s) detectedCodeRabbit 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. WalkthroughThis 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
Estimated code review effort🎯 4 (Complex) | ⏱️ ~50 minutes
Possibly related PRs
Suggested labels
Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
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. Comment |
There was a problem hiding this comment.
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_CAPABILITIESconstant now includes entries forlitellm,mistral,bedrock,huggingface, andsagemaker, but theadaptForProviderswitch 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_CAPABILITIESandadaptImageForProvider()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:8bwithout requiring an explicit enum entry).
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 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.tssrc/lib/models/modelRegistry.tssrc/lib/factories/providerRegistry.tssrc/lib/adapters/providerImageAdapter.tssrc/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.mddocs/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.mdsrc/lib/models/modelRegistry.tssrc/lib/factories/providerRegistry.tssrc/lib/adapters/providerImageAdapter.tssrc/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.tssrc/lib/factories/providerRegistry.tssrc/lib/adapters/providerImageAdapter.tssrc/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.tssrc/lib/factories/providerRegistry.tssrc/lib/adapters/providerImageAdapter.tssrc/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.tssrc/lib/factories/providerRegistry.tssrc/lib/adapters/providerImageAdapter.tssrc/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.tssrc/lib/factories/providerRegistry.tssrc/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.tsdocs/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:checkscript complements the existingformatscript and follows the standard pattern: useformatfor local development (auto-fix) andformat:checkfor 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.tscontain 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:checkthat fails on issues is a healthy CI practice. The error message provides clear, actionable guidance for developers. This aligns with theformat:checkscript 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_CAPABILITIESare 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: trueflagpricing: { inputCostPer1K: 0, outputCostPer1K: 0 }reflecting no API costs- Missing
maxRequestsPerMinutein 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
localandmultimodaluse 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
AzureOpenAIModelsenum is correctly separated fromOpenAIModelswith:
- Azure-specific naming conventions (e.g.,
gpt-35-turbovsgpt-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.
| [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", | ||
| }, |
There was a problem hiding this comment.
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.
| [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.
🤖 AI Review & Build Compliance ✅Status: AI analysis complete • Build rules validated • Ready for review 📊 View detailed analysis results🛡️ Analysis Complete
📋 Ready for Merge When
🤖 AI analysis complete - check individual code comments for specific feedback |
There was a problem hiding this comment.
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:checkscript 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", |
There was a problem hiding this comment.
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.
| "anthropic.claude-opus-4-5-20251124-v1:0", | |
| "anthropic.claude-opus-4-5-20251101-v1:0", |
e40bb8b to
aa57e94
Compare
✅ Single Commit Policy - COMPLIANTStatus: Policy requirements met • 1 commit • Valid format • Ready for merge 📊 View validation details📝 Commit Details
✅ Validation Results
🤖 Automated validation by NeuroLink Single Commit Enforcement |
🤖 AI Review & Build Compliance ✅Status: AI analysis complete • Build rules validated • Ready for review 📊 View detailed analysis results🛡️ Analysis Complete
📋 Ready for Merge When
🤖 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.
aa57e94 to
8eb5c6d
Compare
🤖 AI Review & Build Compliance ✅Status: AI analysis complete • Build rules validated • Ready for review 📊 View detailed analysis results🛡️ Analysis Complete
📋 Ready for Merge When
🤖 AI analysis complete - check individual code comments for specific feedback |
|
🎉 This PR is included in version 8.10.1 🎉 The release is available on: Your semantic-release bot 📦🚀 |
Pull Request
Description
Type of Change
Related Issues
Changes Made
AI Provider Impact
Component Impact
Testing
Test Environment
Performance Impact
Breaking Changes
Screenshots/Demo
Checklist
Additional Notes
Summary by CodeRabbit
New Features
Documentation
Chores
✏️ Tip: You can customize this high-level summary in your review settings.