mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-07-31 12:22:14 +03:00
The OpenCode plugin `features` block (opencode.json) marks every toggle
`.optional()` with no default, and the effective value is applied implicitly
at each read site via the scattered `features.X !== false` (default-ON) /
`features.X === true` (default-OFF) convention. An operator who omits the
`features` block therefore cannot tell whether combos / autoCombos /
enrichment are enabled — they read the `autoCombos=0` startup diagnostic
(a count that can be 0 for reasons unrelated to the flags, e.g. missing auth)
and conclude the features are disabled when they are actually on.
Declare the defaults explicitly in one place and surface the effective flags:
- `OMNIROUTE_FEATURE_DEFAULTS` — the declared default state for every boolean
`features.*` toggle, mirroring the existing read-site conventions exactly
(runtime routing behaviour unchanged).
- `resolveEffectiveFeatureFlags(features)` — derives the effective boolean
state for any (possibly-undefined) features object.
- Startup diagnostics now emit a `features(effective): ...` line so an operator
who omitted the block can see combos/autoCombos/enrichment are on.
Purely additive: no read site changes, so the existing
`features: {} → {}` schema pass-through contract is preserved.
Closes #7624
74 lines
2.2 KiB
JSON
74 lines
2.2 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/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",
|
|
"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"
|
|
}
|
|
}
|