mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-06 07:12:12 +03:00
fix(types): preserve vision capability literal (#9121)
Validated in local merge-train (devbox-vm-06-dev002) @ combined-tip (FAST gates: typecheck/complexity/cognitive/changelog/vitest — only pre-existing audit.test.ts flake). Evidence: /home/diegosouzapw/dev/proxys/OmniRoute/.claude/worktrees/merge-train-20260805-222248-suite.log
This commit is contained in:
@@ -0,0 +1 @@
|
||||
- **fix(types):** preserve the literal `capabilities.vision: true` contract for catalog vision fields so custom-model capability composition remains type-safe under TypeScript 7 ([#9121](https://github.com/diegosouzapw/OmniRoute/pull/9121))
|
||||
@@ -6,7 +6,11 @@ import { isVisionModelId } from "@/shared/constants/visionModels";
|
||||
// Re-exported (here and from ./catalog.ts) for callers/tests that imported it from there.
|
||||
export { isVisionModelId };
|
||||
|
||||
export function getVisionCapabilityFields(modelId: string) {
|
||||
export function getVisionCapabilityFields(modelId: string): {
|
||||
capabilities: { vision: true };
|
||||
input_modalities: string[];
|
||||
output_modalities: string[];
|
||||
} | null {
|
||||
if (!isVisionModelId(modelId)) return null;
|
||||
return {
|
||||
capabilities: { vision: true },
|
||||
|
||||
@@ -141,6 +141,12 @@ test("catalogVision: re-exports isVisionModelId and derives capability fields",
|
||||
// id-based heuristic
|
||||
const visionFields = getVisionCapabilityFields("gpt-4o");
|
||||
assert.ok(visionFields, "gpt-4o must be detected as vision-capable");
|
||||
const typedVisionFields: {
|
||||
capabilities: { vision: true };
|
||||
input_modalities: string[];
|
||||
output_modalities: string[];
|
||||
} | null = visionFields;
|
||||
assert.equal(typedVisionFields?.capabilities.vision, true);
|
||||
assert.equal(visionFields?.capabilities.vision, true);
|
||||
assert.equal(getVisionCapabilityFields("kimi-k2"), null);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user