Files
OmniRoute/@omniroute/opencode-plugin/package.json
diegosouzapw fc49fbeb6b fix(providers): backfill combo context limit from snapshot after cold start (#13000)
Root cause was two-fold in @omniroute/opencode-plugin: (1) the static
catalog builder (buildStaticProviderEntry, used by
createOmniRouteConfigHook) computed a combo's limit.context purely as
Math.min(member context_length) and never consulted the server-computed
combo.computed_context_length field at all, unlike the dynamic hook's
mapComboToModelV2; (2) even where computed_context_length IS consulted,
a background refresh whose live /api/combos response comes back without
the field (e.g. right after a restart, before the server finishes
recomputing it) had no fallback to the last-known-good disk snapshot,
so it silently overwrote a correct 245000 limit with the degraded
Math.min(member) value (163840 in the reported case).

Fix: buildStaticProviderEntry now prefers computed_context_length the
same way mapComboToModelV2 does, and doRefresh() backfills a combo's
missing/zero computed_context_length from warmSnapshot.rawCombos by id
before caching/publishing/persisting, scoped to that single field only.

Regression test:
@omniroute/opencode-plugin/tests/issue-13000-cold-start-combo-limit.test.ts
2026-09-15 14:04:25 -03:00

75 lines
2.5 KiB
JSON

{
"name": "@omniroute/opencode-plugin",
"version": "0.2.1",
"description": "OpenCode plugin for the OmniRoute AI Gateway. Drives dynamic model discovery, /connect auth flow, and multi-instance OmniRoute providers via the official @opencode-ai/plugin contract.",
"type": "module",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"exports": {
".": {
"types": "./dist/index.d.ts",
"import": "./dist/index.js"
},
"./runtime": {
"types": "./dist/index.d.ts",
"import": "./dist/index.js"
}
},
"files": [
"dist",
"README.md",
"LICENSE"
],
"scripts": {
"build": "tsup",
"clean": "rm -rf dist",
"test": "node --import tsx/esm --test tests/scaffold.test.ts tests/auth.test.ts tests/options-schema.test.ts tests/multi-instance.test.ts tests/fetch-interceptor.test.ts tests/telemetry.test.ts tests/provider.test.ts tests/gemini-sanitize.test.ts tests/combos.test.ts tests/config-shim.test.ts tests/features.test.ts tests/feature-defaults.test.ts tests/usable-combo.test.ts tests/disk-snapshot-perms.test.ts tests/fork-features.test.ts tests/auto-combo-context.test.ts tests/provider-id-routing.test.ts tests/management-read-token.test.ts tests/auto-sync.test.ts tests/model-allowlist.test.ts tests/log-level.test.ts tests/effort-tier-variants.test.ts tests/naming.test.ts tests/free-budget-magnitude.test.ts tests/models-fetcher.test.ts tests/issue-13000-cold-start-combo-limit.test.ts",
"prepublishOnly": "npm run clean && npm run build && npm test"
},
"keywords": [
"omniroute",
"opencode",
"opencode-plugin",
"ai-sdk",
"openai-compatible",
"provider",
"gemini",
"combos",
"mcp"
],
"author": "OmniRoute contributors",
"license": "MIT",
"repository": {
"type": "git",
"url": "https://github.com/diegosouzapw/OmniRoute.git",
"directory": "@omniroute/opencode-plugin"
},
"bugs": {
"url": "https://github.com/diegosouzapw/OmniRoute/issues"
},
"homepage": "https://github.com/diegosouzapw/OmniRoute/tree/main/%40omniroute/opencode-plugin#readme",
"engines": {
"node": ">=22.22.3"
},
"publishConfig": {
"access": "public"
},
"peerDependencies": {
"@opencode-ai/plugin": "*"
},
"dependencies": {
"zod": "^4.4.3"
},
"devDependencies": {
"@opencode-ai/plugin": "^1.15.6",
"@types/node": "^22.19.19",
"tsup": "^8.5.1",
"tsx": "^4.22.3",
"typescript": "^5.9.3"
},
"overrides": {
"esbuild": "^0.28.1",
"toml": "^4.1.2"
}
}