@cedrugs/opencode-omniauth 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,387 +1,480 @@
1
- # OpenCode OmniRoute Auth Plugin
2
-
3
- 🔌 Authentication plugin for [OpenCode](https://opencode.ai) to connect to [OmniRoute](https://omniroute.ai) API.
4
-
5
- ## Features
6
-
7
- - ✅ **Simple `/connect` Command** - No manual configuration needed
8
- - ✅ **API Key Authentication** - Simple and secure API key-based auth
9
- - **Dynamic Model Fetching** - Automatically fetches available models from `/v1/models` endpoint
10
- - ✅ **Provider Auto-Registration** - Registers an `omniroute` provider via plugin hooks
11
- - **Model Caching** - Intelligent caching with TTL for better performance
12
- - ✅ **Fallback Models** - Default models when API is unavailable
13
- - ✅ **Combo Model Capability Enrichment** - Automatically calculates lowest common capabilities for OmniRoute combo models
1
+ # @cedrugs/opencode-omniauth
2
+
3
+ [![npm version](https://img.shields.io/npm/v/@cedrugs/opencode-omniauth)](https://www.npmjs.com/package/@cedrugs/opencode-omniauth)
4
+ [![license](https://img.shields.io/npm/l/@cedrugs/opencode-omniauth)](https://github.com/cedrugs/opencode-omniauth/blob/main/LICENSE)
5
+ [![node](https://img.shields.io/node/v/@cedrugs/opencode-omniauth)](https://nodejs.org)
6
+ [![TypeScript](https://img.shields.io/badge/TypeScript-strict-blue)](https://www.typescriptlang.org)
7
+ [![tests](https://img.shields.io/badge/tests-15%20passing-brightgreen)](#testing)
8
+
9
+ An [OpenCode](https://opencode.ai) authentication plugin for the [OmniRoute](https://github.com/Alph4d0g/omniroute) API. Provides `/connect` command setup, API key auth, dynamic model fetching from `/v1/models`, models.dev metadata enrichment, combo model resolution, reasoning variant generation, Gemini-specific schema sanitization, and request payload normalization.
10
+
11
+ Forked from [Alph4d0g/opencode-omniroute-auth](https://github.com/Alph4d0g/opencode-omniroute-auth) with combined improvements from the community and critical fixes for tool call reliability.
12
+
13
+ ---
14
+
15
+ ## Table of Contents
16
+
17
+ - [Installation](#installation)
18
+ - [Quick Start](#quick-start)
19
+ - [Configuration Reference](#configuration-reference)
20
+ - [Features](#features)
21
+ - [Dynamic Model Fetching](#dynamic-model-fetching)
22
+ - [models.dev Metadata Enrichment](#modelsdev-metadata-enrichment)
23
+ - [Combo Model Support](#combo-model-support)
24
+ - [Reasoning Variant Generation](#reasoning-variant-generation)
25
+ - [Per-Model API Mode Overrides](#per-model-api-mode-overrides)
26
+ - [Request Payload Normalization](#request-payload-normalization)
27
+ - [Gemini Tool Schema Sanitization](#gemini-tool-schema-sanitization)
28
+ - [Responses Mode Chat Fallback](#responses-mode-chat-fallback)
29
+ - [Debug Logging](#debug-logging)
30
+ - [API Mode](#api-mode)
31
+ - [Model Metadata Overrides](#model-metadata-overrides)
32
+ - [Runtime Exports](#runtime-exports)
33
+ - [Project Structure](#project-structure)
34
+ - [Development](#development)
35
+ - [Testing](#testing)
36
+ - [Troubleshooting](#troubleshooting)
37
+ - [License](#license)
38
+
39
+ ---
14
40
 
15
41
  ## Installation
16
42
 
17
- ## Quick Start
43
+ **From npm:**
18
44
 
19
- ### 1. Add plugin to opencode config
20
- ```json
21
- {
22
- "plugin": [
23
- "opencode-omniroute-auth"
24
- ]
25
- }
45
+ ```bash
46
+ npm install @cedrugs/opencode-omniauth
26
47
  ```
27
48
 
28
- ### 2. Connect to OmniRoute
49
+ **From local clone (development):**
29
50
 
30
- Simply run the `/connect` command in OpenCode:
31
-
32
- ```
33
- /connect omniroute
51
+ ```bash
52
+ git clone https://github.com/cedrugs/opencode-omniauth.git
53
+ cd opencode-omniauth
54
+ npm install
55
+ npm run build
34
56
  ```
35
57
 
36
- The plugin will prompt you for your **API key**.
37
-
38
- ### 3. Done! 🎉
58
+ ---
39
59
 
40
- The plugin automatically:
41
- - Fetches available models from `/v1/models`
42
- - Configures OpenCode to use OmniRoute
43
- - Stores your credentials securely
60
+ ## Quick Start
44
61
 
45
- No manual configuration file editing required!
62
+ Add the plugin to your `opencode.json`:
46
63
 
47
- ## Usage
64
+ ```json
65
+ {
66
+ "plugin": ["@cedrugs/opencode-omniauth"],
67
+ "provider": {
68
+ "omniroute": {
69
+ "options": {
70
+ "baseURL": "https://your-omniroute-instance.com/v1",
71
+ "apiMode": "chat"
72
+ }
73
+ }
74
+ }
75
+ }
76
+ ```
48
77
 
49
- Once connected, OpenCode will automatically use OmniRoute for AI requests:
78
+ If developing locally, point to the local directory instead:
50
79
 
51
- ```bash
52
- # The plugin is now active and ready to use
53
- # All AI requests will be routed through OmniRoute
80
+ ```json
81
+ {
82
+ "plugin": ["/path/to/opencode-omniauth"]
83
+ }
54
84
  ```
55
85
 
56
- ### Refresh Models
86
+ Start OpenCode and run `/connect omniroute` to set up your API key. The plugin will automatically fetch available models from your OmniRoute instance and register them as provider models.
57
87
 
58
- By default, the plugin refreshes the model list whenever provider options are reloaded (`refreshOnList: true`).
88
+ ---
59
89
 
60
- You can disable refreshes by setting `provider.omniroute.options.refreshOnList` to `false` and clear the cache programmatically:
90
+ ## Configuration Reference
61
91
 
62
- ```typescript
63
- import { clearModelCache } from 'opencode-omniroute-auth/runtime';
92
+ All configuration lives under `provider.omniroute.options` in your `opencode.json`:
64
93
 
65
- clearModelCache();
66
- ```
94
+ | Option | Type | Default | Description |
95
+ |--------|------|---------|-------------|
96
+ | `baseURL` | `string` | `http://localhost:20128/v1` | OmniRoute API base URL. Must use `http:` or `https:` protocol. |
97
+ | `apiMode` | `"chat" \| "responses"` | `"chat"` | Global API mode. `chat` uses `/chat/completions`, `responses` uses `/responses`. |
98
+ | `refreshOnList` | `boolean` | `true` | Whether to re-fetch models from `/v1/models` on each auth load. |
99
+ | `modelCacheTtl` | `number` | `300000` (5 min) | Model cache time-to-live in milliseconds. |
100
+ | `modelsDev` | `object` | see below | models.dev enrichment configuration. |
101
+ | `modelMetadata` | `object \| array` | `undefined` | Per-model metadata overrides. See [Model Metadata Overrides](#model-metadata-overrides). |
102
+
103
+ ### `modelsDev` options
67
104
 
68
- ## Configuration (Optional)
105
+ | Option | Type | Default | Description |
106
+ |--------|------|---------|-------------|
107
+ | `enabled` | `boolean` | `true` | Enable or disable models.dev enrichment entirely. |
108
+ | `url` | `string` | `https://models.dev/api.json` | URL to the models.dev API payload. |
109
+ | `cacheTtl` | `number` | `86400000` (24h) | Cache TTL for models.dev data in milliseconds. |
110
+ | `timeoutMs` | `number` | `1000` | Fetch timeout for models.dev in milliseconds. |
111
+ | `providerAliases` | `Record<string, string>` | `{}` | Custom alias mapping from OmniRoute provider keys to models.dev provider keys. Merged with built-in defaults. |
69
112
 
70
- While the plugin works out-of-the-box with `/connect`, you can also configure it manually in your OpenCode config:
113
+ ### Full example
71
114
 
72
115
  ```json
73
116
  {
74
- "plugin": [
75
- "opencode-omniroute-auth"
76
- ],
117
+ "plugin": ["@cedrugs/opencode-omniauth"],
77
118
  "provider": {
78
119
  "omniroute": {
79
120
  "options": {
80
- "baseURL": "http://localhost:20128/v1",
121
+ "baseURL": "https://your-omniroute.example.com/v1",
81
122
  "apiMode": "chat",
82
123
  "refreshOnList": true,
83
- "modelCacheTtl": 300000
124
+ "modelCacheTtl": 300000,
125
+ "modelsDev": {
126
+ "enabled": true,
127
+ "cacheTtl": 86400000,
128
+ "timeoutMs": 2000,
129
+ "providerAliases": {
130
+ "myalias": "openai"
131
+ }
132
+ },
133
+ "modelMetadata": {
134
+ "custom/my-model": {
135
+ "contextWindow": 128000,
136
+ "maxTokens": 4096,
137
+ "supportsVision": true,
138
+ "supportsTools": true,
139
+ "reasoning": true
140
+ }
141
+ }
84
142
  }
85
143
  }
86
144
  }
87
145
  }
88
146
  ```
89
147
 
90
- Use `/connect omniroute` to store your API key in `~/.local/share/opencode/auth.json`.
148
+ ---
91
149
 
92
- ### Configuration Options
150
+ ## Features
93
151
 
94
- | Option | Type | Required | Description |
95
- |--------|------|----------|-------------|
96
- | `plugin` | string[] | No | npm plugin packages to load (use `opencode-omniroute-auth` when installed from npm) |
97
- | `provider.omniroute.options.baseURL` | string | No | OmniRoute API base URL (default: `http://localhost:20128/v1`) |
98
- | `provider.omniroute.options.apiMode` | `'chat' \| 'responses'` | No | Provider API mode (default: `chat`) |
99
- | `provider.omniroute.options.modelCacheTtl` | number | No | Model cache TTL in milliseconds (default: 5 minutes) |
100
- | `provider.omniroute.options.refreshOnList` | boolean | No | Whether to refresh models when provider options load (default: true) |
101
- | `provider.omniroute.options.modelsDev` | object | No | Enrich model metadata from models.dev on refresh (default: enabled) |
102
- | `provider.omniroute.options.modelMetadata` | object \| array | No | Override/add metadata for custom/virtual models (works well in `opencode.js`) |
152
+ ### Dynamic Model Fetching
103
153
 
104
- ### Model Metadata Enrichment (models.dev)
154
+ On each auth load (when you start OpenCode or reconnect), the plugin fetches all available models from your OmniRoute instance's `/v1/models` endpoint. Models are cached in memory with a configurable TTL to avoid repeated API calls.
105
155
 
106
- OmniRoute may not expose model context/output limits in `/v1/models`. When enabled, this plugin attempts to
107
- enrich `contextWindow` and `maxTokens` by matching your OmniRoute models against `models.dev`.
156
+ If the fetch fails, the plugin falls back to expired cache entries first, then to a set of built-in defaults (GPT-4o, GPT-4o Mini, Claude 3.5 Sonnet, Llama 3.1 405B).
108
157
 
109
- You can disable enrichment or override defaults:
158
+ The plugin also maps snake_case API response fields to the internal model interface:
159
+ - `context_length` maps to `contextWindow`
160
+ - `capabilities.vision` maps to `supportsVision`
161
+ - `capabilities.tools` maps to `supportsTools`
162
+ - `input_modalities` containing `"image"` maps to `supportsVision`
163
+ - `root` and `owned_by` fields are preserved for model lookup resolution
110
164
 
111
- ```js
112
- {
113
- provider: {
114
- omniroute: {
115
- options: {
116
- modelsDev: {
117
- enabled: true,
118
- url: 'https://models.dev/api.json',
119
- timeoutMs: 1000,
120
- cacheTtl: 86400000,
121
- providerAliases: {
122
- cx: 'openai',
123
- },
124
- },
125
- },
126
- },
127
- },
128
- }
129
- ```
165
+ ### models.dev Metadata Enrichment
130
166
 
131
- ### Custom / Virtual Model Overrides (config blocks)
167
+ Models fetched from `/v1/models` often lack detailed capability information. The plugin enriches each model with data from [models.dev](https://models.dev), filling in missing values for context window, max tokens, vision support, tool support, reasoning capability, and pricing.
132
168
 
133
- For custom/virtual models (or when matching is imperfect), you can provide metadata overrides.
169
+ The enrichment uses a multi-strategy lookup system:
170
+ 1. Provider-specific exact match using the model's `root` field and provider alias
171
+ 2. Provider-specific normalized match (strips date suffixes, version numbers, preview tags, thinking/reasoning suffixes, and effort-level suffixes)
172
+ 3. Global exact match (only when unambiguous)
173
+ 4. Global normalized match (only when unambiguous)
174
+ 5. Family derivation: automatically detects model families (`claude-*` to `anthropic`, `gemini-*` to `google`, `gpt-*`/`o3`/`o4`/`codex-*` to `openai`) and generates additional lookup candidates
134
175
 
135
- In `opencode.js` you can use RegExp matchers:
176
+ Built-in provider aliases: `oai`, `openai`, `cx`, `codex` to `openai`; `antigravity`, `anthropic`, `claude` to `anthropic`; `gemini`, `google` to `google`; plus `deepseek`, `mistral`, `xai`, `groq`, `together`, `openrouter`, `perplexity`, `cohere`.
136
177
 
137
- ```js
138
- {
139
- provider: {
140
- omniroute: {
141
- options: {
142
- modelMetadata: [
143
- { match: /gpt-5\.3-codex$/i, contextWindow: 200000, maxTokens: 8192 },
144
- { match: 'omniroute/virtual/my-custom-model', addIfMissing: true, contextWindow: 50000 },
145
- ],
146
- },
147
- },
148
- },
149
- }
150
- ```
178
+ ### Combo Model Support
179
+
180
+ OmniRoute supports "combo" models that route requests across multiple underlying models using strategies like priority, round-robin, or cost-optimized routing. The plugin fetches combo definitions from `/api/combos` and calculates the lowest common capabilities across all underlying models:
181
+
182
+ - Context window: minimum across all underlying models
183
+ - Max output tokens: minimum across all underlying models
184
+ - Vision support: only if all underlying models support it
185
+ - Tool support: only if all underlying models support it
186
+
187
+ ### Reasoning Variant Generation
188
+
189
+ Models detected as reasoning-capable automatically get `low`, `medium`, and `high` reasoning effort variants generated. Detection uses:
190
+ 1. Explicit `reasoning: true` in model metadata or models.dev data
191
+ 2. Pattern matching for known reasoning families (GPT-5, o3, o4, Codex)
192
+
193
+ Models with embedded effort suffixes in their ID (e.g., `antigravity/gemini-3.1-pro-high`) get a fixed variant with the embedded effort level instead of the generated picker. The `resetEmbeddedReasoningVariant` metadata flag overrides this behavior and restores the generated variants.
194
+
195
+ Custom variants can be added via `modelMetadata` and are merged on top of the auto-generated ones.
196
+
197
+ ### Per-Model API Mode Overrides
151
198
 
152
- In JSON configs, use an object keyed by model id:
199
+ Individual models can override the global `apiMode`. Set `apiMode: "chat"` or `apiMode: "responses"` in model metadata to force a specific mode for that model, regardless of the global setting.
153
200
 
154
201
  ```json
155
202
  {
156
- "provider": {
157
- "omniroute": {
158
- "options": {
159
- "modelMetadata": {
160
- "virtual/my-custom-model": { "contextWindow": 50000, "maxTokens": 2048 }
161
- }
162
- }
203
+ "modelMetadata": {
204
+ "anthropic/claude-opus-4": {
205
+ "apiMode": "chat"
163
206
  }
164
207
  }
165
208
  }
166
209
  ```
167
210
 
168
- ### Combo Model Capability Enrichment
211
+ ### Request Payload Normalization
169
212
 
170
- OmniRoute supports "combo models" - virtual models that route to multiple underlying models with fallback strategies. This plugin automatically detects combo models and calculates their capabilities using a **lowest common denominator** approach:
213
+ The fetch interceptor normalizes outgoing request payloads to ensure compatibility with OmniRoute:
171
214
 
172
- - **Context Window**: Minimum of all underlying models
173
- - **Max Tokens**: Minimum of all underlying models
174
- - **Vision Support**: Only if ALL underlying models support vision
175
- - **Tool Support**: Only if ALL underlying models support tools
215
+ **For all endpoints:**
216
+ - `reasoningEffort` and `reasoning_effort` are normalized into the canonical `reasoning: { effort: "..." }` object format
176
217
 
177
- This ensures safe operation by never exceeding the capabilities of any single model in the combo.
218
+ **For `/chat/completions`:**
219
+ - `reasoningSummary` and `reasoning_summary` fields are stripped (not supported by OmniRoute Chat Completions)
220
+ - Input-shaped bodies (Responses API format with `input` instead of `messages`) are converted to `messages` format
178
221
 
179
- **How it works:**
180
- 1. The plugin fetches combo definitions from OmniRoute's `/api/combos` endpoint
181
- 2. For each combo model, it resolves the underlying models
182
- 3. It looks up each underlying model's capabilities from `models.dev`
183
- 4. It calculates the lowest common capabilities across all resolvable models
184
- 5. These calculated capabilities are applied to the combo model
222
+ **For `/responses`:**
223
+ - Unsupported fields are stripped: `max_output_tokens`, `max_tokens`, `reasoningEffort`, `textVerbosity`, `reasoning_effort`, `reasoningSummary`, `reasoning_summary`, `temperature`
185
224
 
186
- **Example:**
187
- The "Designer" combo might route to:
188
- - `kmc/kimi-k2.5` (context: 256000, tools: yes)
189
- - `cx/gpt-5.1-codex-mini` (context: 204800, tools: yes)
190
- - `gemini/models/gemini-3-flash-preview` (context: 1048576, tools: yes)
225
+ ### Gemini Tool Schema Sanitization
191
226
 
192
- Calculated capabilities:
193
- - Context: **204800** (minimum)
194
- - Max Tokens: **32768** (minimum)
195
- - Tools: **true** (all support tools)
227
+ When the request payload targets a Gemini model (detected by `"gemini"` in the model name), the plugin sanitizes tool schemas by:
196
228
 
197
- Note: Some underlying models may not be found in `models.dev` (e.g., custom models). In such cases, they are excluded from capability calculation, and a warning is logged.
229
+ - Stripping `$schema` and `additionalProperties` keys (which Gemini rejects)
230
+ - Resolving `$ref` references inline by looking up `$defs`/`definitions` and expanding them in place, with circular reference safety
231
+ - Removing `$defs` and `definitions` containers after resolution
198
232
 
199
- ### API Mode
233
+ Non-Gemini models (OpenAI, Anthropic, etc.) keep their tool schemas fully intact, including `additionalProperties: false` which is required for strict structured output.
200
234
 
201
- ### API Mode
235
+ ### Responses Mode Chat Fallback
202
236
 
203
- The plugin supports two provider API modes:
237
+ When the global `apiMode` is set to `"responses"`, certain model families are automatically forced back to `"chat"` mode because they do not support the Responses API streaming format:
204
238
 
205
- - `chat` (default) - best compatibility with existing OpenAI-compatible chat workflows.
206
- - `responses` - enables Responses API mode when your OmniRoute/OpenCode setup supports it.
239
+ - Cursor defaults (`cu/default`, `cursor/default`)
240
+ - Anthropic/Claude models (`claude`, `opus`, `sonnet`, `haiku`)
241
+ - Gemini models
242
+ - MLX models (`mlx/`, `mlx-community/`)
243
+ - Qwen models
207
244
 
208
- Example:
245
+ This fallback is overridden by explicit per-model `apiMode` settings in metadata.
209
246
 
210
- ```json
211
- {
212
- "provider": {
213
- "omniroute": {
214
- "options": {
215
- "apiMode": "responses"
216
- }
217
- }
218
- }
219
- }
247
+ ### Debug Logging
248
+
249
+ All log output is silent by default to prevent TUI pollution (which can cause tool call aborts in OpenCode). To enable debug logging, set the `OMNIROUTE_DEBUG` environment variable:
250
+
251
+ ```bash
252
+ OMNIROUTE_DEBUG=1 opencode
220
253
  ```
221
254
 
222
- If an unsupported value is provided, the plugin falls back to `chat`.
255
+ This enables all `[OmniRoute]` prefixed log messages for intercepted requests, model fetching, cache behavior, combo resolution, and schema sanitization.
223
256
 
224
- ## Dynamic Model Fetching
257
+ ---
225
258
 
226
- This plugin automatically fetches available models from OmniRoute's `/v1/models` endpoint. This ensures you always have access to the latest models without manual configuration.
259
+ ## API Mode
227
260
 
228
- ### How It Works
261
+ The plugin supports two API modes:
229
262
 
230
- 1. On first request, the plugin fetches models from `/v1/models`
231
- 2. By default, models are refreshed every time you open the model list (`refreshOnList: true`)
232
- 3. If `refreshOnList` is disabled, models are cached for 5 minutes (configurable via `modelCacheTtl`)
233
- 4. If the API is unavailable, fallback models are used
263
+ | Mode | SDK | Endpoint | Use Case |
264
+ |------|-----|----------|----------|
265
+ | `chat` | `@ai-sdk/openai-compatible` | `/chat/completions` | Default. Works with all OmniRoute proxied models including GitHub Copilot, Anthropic, and custom endpoints. |
266
+ | `responses` | `@ai-sdk/openai` | `/responses` | For direct OpenAI models that support the Responses API. Requires compatible upstream. |
234
267
 
235
- ## Default Models
268
+ The `chat` mode uses `@ai-sdk/openai-compatible` specifically because `@ai-sdk/openai` has stricter response format expectations for tool calls that OmniRoute proxied models may not satisfy.
236
269
 
237
- When the `/v1/models` endpoint is unavailable, the plugin provides these fallback models:
270
+ ---
238
271
 
239
- - `gpt-4o` - GPT-4o model with full capabilities
240
- - `gpt-4o-mini` - Fast and cost-effective
241
- - `claude-3-5-sonnet` - Claude 3.5 Sonnet
242
- - `llama-3-1-405b` - Llama 3.1 405B
272
+ ## Model Metadata Overrides
243
273
 
244
- ## API
274
+ Model metadata can be configured in two formats:
245
275
 
246
- ### Types
276
+ ### Record format
247
277
 
248
- ```typescript
249
- import type {
250
- OmniRouteApiMode,
251
- OmniRouteConfig,
252
- OmniRouteModel,
253
- OmniRouteModelMetadataConfig,
254
- OmniRouteModelsDevConfig,
255
- } from "opencode-omniroute-auth";
256
-
257
- interface OmniRouteConfig {
258
- baseUrl: string;
259
- apiKey: string;
260
- apiMode: OmniRouteApiMode;
261
- defaultModels?: OmniRouteModel[];
262
- modelCacheTtl?: number;
263
- refreshOnList?: boolean;
264
- modelsDev?: OmniRouteModelsDevConfig;
265
- modelMetadata?: OmniRouteModelMetadataConfig;
266
- }
278
+ Keys are model IDs. Missing models are created as synthetic entries enriched with models.dev data:
267
279
 
268
- type OmniRouteApiMode = 'chat' | 'responses';
269
-
270
- interface OmniRouteModel {
271
- id: string;
272
- name: string;
273
- description?: string;
274
- contextWindow?: number;
275
- maxTokens?: number;
276
- supportsStreaming?: boolean;
277
- supportsVision?: boolean;
278
- supportsTools?: boolean;
279
- pricing?: {
280
- input?: number;
281
- output?: number;
282
- };
280
+ ```json
281
+ {
282
+ "modelMetadata": {
283
+ "custom/my-model": {
284
+ "name": "My Custom Model",
285
+ "contextWindow": 128000,
286
+ "maxTokens": 8192,
287
+ "supportsVision": true,
288
+ "supportsTools": true,
289
+ "reasoning": true,
290
+ "apiMode": "chat",
291
+ "variants": {
292
+ "xhigh": { "reasoningEffort": "xhigh" }
293
+ }
294
+ }
295
+ }
283
296
  }
284
297
  ```
285
298
 
286
- ### Functions
299
+ ### Array-of-blocks format
300
+
301
+ For pattern matching with `match` (string for exact match, RegExp object for pattern match) and optional `addIfMissing`:
302
+
303
+ ```javascript
304
+ // opencode.js
305
+ export default {
306
+ provider: {
307
+ omniroute: {
308
+ options: {
309
+ modelMetadata: [
310
+ {
311
+ match: /^anthropic\//,
312
+ apiMode: "chat",
313
+ supportsVision: true,
314
+ },
315
+ {
316
+ match: "custom/my-special-model",
317
+ addIfMissing: true,
318
+ contextWindow: 256000,
319
+ maxTokens: 32000,
320
+ },
321
+ ],
322
+ },
323
+ },
324
+ },
325
+ };
326
+ ```
327
+
328
+ ### Available metadata fields
329
+
330
+ | Field | Type | Description |
331
+ |-------|------|-------------|
332
+ | `name` | `string` | Display name |
333
+ | `description` | `string` | Model description |
334
+ | `contextWindow` | `number` | Context window size in tokens |
335
+ | `maxTokens` | `number` | Maximum output tokens |
336
+ | `supportsStreaming` | `boolean` | Streaming support |
337
+ | `supportsVision` | `boolean` | Image input support |
338
+ | `supportsTools` | `boolean` | Tool/function calling support |
339
+ | `apiMode` | `"chat" \| "responses"` | Per-model API mode override |
340
+ | `reasoning` | `boolean` | Whether the model supports reasoning effort controls |
341
+ | `resetEmbeddedReasoningVariant` | `boolean` | Restore generated variants for models with embedded effort suffixes |
342
+ | `variants` | `Record<string, unknown>` | Custom variant definitions merged with auto-generated ones |
343
+ | `pricing` | `{ input?: number; output?: number }` | Cost per token |
344
+
345
+ ---
346
+
347
+ ## Runtime Exports
348
+
349
+ The package exposes a `./runtime` subpath for programmatic use:
287
350
 
288
351
  ```typescript
289
352
  import {
290
353
  fetchModels,
291
354
  clearModelCache,
292
355
  refreshModels,
293
- // New: Combo model utilities
356
+ getCachedModels,
357
+ isCacheValid,
358
+ clearModelsDevCache,
294
359
  clearComboCache,
295
360
  fetchComboData,
296
361
  resolveUnderlyingModels,
297
362
  calculateModelCapabilities,
298
- } from 'opencode-omniroute-auth/runtime';
299
-
300
- // Fetch models manually (with automatic enrichment)
301
- const models = await fetchModels(config, apiKey);
363
+ OMNIROUTE_PROVIDER_ID,
364
+ OMNIROUTE_DEFAULT_MODELS,
365
+ OMNIROUTE_ENDPOINTS,
366
+ MODEL_CACHE_TTL,
367
+ REQUEST_TIMEOUT,
368
+ } from "@cedrugs/opencode-omniauth/runtime";
369
+ ```
302
370
 
303
- // Clear model cache (also clears combo cache)
304
- clearModelCache();
371
+ ---
305
372
 
306
- // Force refresh models
307
- const freshModels = await refreshModels(config, apiKey);
373
+ ## Project Structure
308
374
 
309
- // Combo model utilities
310
- const combos = await fetchComboData(config);
311
- const underlyingModels = await resolveUnderlyingModels('Designer', config);
312
- const capabilities = await calculateModelCapabilities(model, config, modelsDevIndex);
313
375
  ```
314
- import {
315
- fetchModels,
316
- clearModelCache,
317
- refreshModels,
318
- } from 'opencode-omniroute-auth/runtime';
376
+ src/
377
+ constants.ts Debug-gated logging, provider ID, endpoints, defaults, cache TTLs
378
+ types.ts TypeScript interfaces for models, config, provider models, metadata
379
+ plugin.ts Main plugin: config hook, auth hook, fetch interceptor, payload normalization,
380
+ reasoning variants, per-model apiMode, Gemini schema sanitization
381
+ models.ts Model fetching, caching, models.dev enrichment, multi-strategy lookup,
382
+ configured metadata application, synthetic model creation
383
+ models-dev.ts models.dev API fetching, index building, normalization, provider aliases
384
+ omniroute-combos.ts Combo model fetching, underlying model resolution, capability calculation
385
+ index.ts Plugin entry point and type exports
386
+ runtime.ts Runtime subpath exports for programmatic use
387
+ test/
388
+ models.test.mjs Model fetching, caching, snake_case mapping tests
389
+ plugin.test.mjs Config hook, auth, schema sanitization, payload normalization tests
390
+ ```
319
391
 
320
- // Fetch models manually
321
- const models = await fetchModels(config, apiKey);
392
+ ---
322
393
 
323
- // Clear model cache
324
- clearModelCache();
394
+ ## Development
325
395
 
326
- // Force refresh models
327
- const freshModels = await refreshModels(config, apiKey);
396
+ ```bash
397
+ git clone https://github.com/cedrugs/opencode-omniauth.git
398
+ cd opencode-omniauth
399
+ npm install
400
+ npm run dev # Watch mode (recompiles on file changes)
328
401
  ```
329
402
 
330
- ## Development
403
+ ### Build
331
404
 
332
405
  ```bash
333
- # Install dependencies
334
- npm install
406
+ npm run build # One-time TypeScript compilation
407
+ npm run clean # Remove dist/ output
408
+ ```
335
409
 
336
- # Build
337
- npm run build
410
+ ### Type checking
338
411
 
339
- # Watch mode
340
- npm run dev
412
+ ```bash
413
+ npx tsc --noEmit
414
+ ```
415
+
416
+ ---
417
+
418
+ ## Testing
341
419
 
342
- # Clean
343
- npm run clean
420
+ ```bash
421
+ npm test
344
422
  ```
345
423
 
424
+ This runs `npm run build` followed by `node --test test/*.test.mjs`. The test suite covers:
425
+
426
+ - Model fetching with cache behavior and forced refresh
427
+ - Fallback to defaults on invalid API responses
428
+ - Snake_case API field mapping to camelCase interface
429
+ - Config hook defaults and apiMode normalization
430
+ - Responses mode npm package selection
431
+ - Auth header injection scoped to OmniRoute URLs only
432
+ - Gemini tool schema sanitization ($schema, additionalProperties stripping)
433
+ - Non-Gemini tool schema preservation (additionalProperties: false kept intact)
434
+ - $ref inline resolution with nested definitions
435
+ - Circular $ref safety
436
+ - Responses endpoint Request object handling
437
+ - Responses payload stripping of unsupported fields
438
+ - Chat payload reasoning summary alias stripping
439
+ - reasoningEffort normalization to reasoning.effort object
440
+
441
+ ---
442
+
346
443
  ## Troubleshooting
347
444
 
348
- ### Connection Failed
445
+ ### Tool calls abort immediately
349
446
 
350
- If you see "Connection failed" when running `/connect omniroute`:
447
+ Verify that the plugin is using `@ai-sdk/openai-compatible` for chat mode (the default). If you or a previous version switched to `@ai-sdk/openai`, tool calls through OmniRoute proxied models will fail because that SDK has stricter response format expectations.
351
448
 
352
- 1. **Check your configured base URL** - Ensure `provider.omniroute.options.baseURL` points to your OmniRoute endpoint
353
- 2. **Verify your API key** - Ensure your API key starts with `sk-` and is valid
354
- 3. **Check OmniRoute is running** - Ensure your OmniRoute instance is accessible
449
+ Check that `apiMode` is set to `"chat"` (the default) unless you specifically need `"responses"` mode with a compatible upstream.
355
450
 
356
- ### Models Not Loading
451
+ ### Models not appearing
357
452
 
358
- If models aren't loading:
453
+ 1. Check that your OmniRoute instance is running and accessible at the configured `baseURL`
454
+ 2. Run `/connect omniroute` in OpenCode to set up your API key
455
+ 3. Enable debug logging with `OMNIROUTE_DEBUG=1 opencode` to see fetch attempts and errors
456
+ 4. Verify the `/v1/models` endpoint returns a valid `{ object: "list", data: [...] }` response
359
457
 
360
- 1. Check your OmniRoute `/v1/models` endpoint is accessible
361
- 2. Ensure `provider.omniroute.options.baseURL` points to your OmniRoute endpoint
362
- 3. Re-run `/connect omniroute` to refresh your API key
363
- 4. If you use the package programmatically, call `clearModelCache()` from `opencode-omniroute-auth/runtime`
364
- 5. Check the OpenCode logs for error messages
458
+ ### models.dev enrichment not working
365
459
 
366
- ### Plugin Not Loading Outside This Repo
460
+ 1. Check network connectivity to `https://models.dev/api.json` (or your configured URL)
461
+ 2. The default timeout is 1000ms; increase `modelsDev.timeoutMs` if on a slow connection
462
+ 3. Set `modelsDev.enabled: false` to disable enrichment entirely if it causes issues
367
463
 
368
- If the plugin loads only through a local shim (for example from `.opencode/plugins` or `.opencode/plugi`) but not from npm in `opencode.json`:
464
+ ### Gemini tool calls fail
369
465
 
370
- 1. Ensure you are using `opencode-omniroute-auth@1.0.1` or newer
371
- 2. Confirm your config includes `"plugin": ["opencode-omniroute-auth"]`
372
- 3. Restart OpenCode so npm plugins are reloaded
373
- 4. Check plugin install cache/logs under `~/.cache/opencode/node_modules`
466
+ The plugin automatically sanitizes tool schemas for Gemini models. If you encounter issues, enable debug logging to verify the sanitization is running (`[OmniRoute] Sanitized Gemini tool schema keywords`).
374
467
 
375
- If needed, clear and reinstall plugin dependencies, then restart OpenCode.
468
+ ### No log output
376
469
 
377
- ## License
470
+ All logging is silent by default. Set `OMNIROUTE_DEBUG=1` as an environment variable to enable output.
378
471
 
379
- MIT
472
+ ---
380
473
 
381
- ## Contributing
474
+ ## License
382
475
 
383
- Contributions are welcome! Please feel free to submit a Pull Request.
476
+ [MIT](https://github.com/cedrugs/opencode-omniauth/blob/main/LICENSE)
384
477
 
385
- ## Support
478
+ Maintained by [@cedrugs](https://github.com/cedrugs).
386
479
 
387
- For support, please open an issue on GitHub or contact OmniRoute support.
480
+ Originally forked from [Alph4d0g/opencode-omniroute-auth](https://github.com/Alph4d0g/opencode-omniroute-auth).
@@ -426,6 +426,10 @@ function createFetchInterceptor(config) {
426
426
  }
427
427
  headers.set('Authorization', `Bearer ${config.apiKey}`);
428
428
  headers.set('Content-Type', 'application/json');
429
+ if (url.includes('/chat/completions') || url.includes('/responses')) {
430
+ const initiator = await detectInitiator(input, init);
431
+ headers.set('x-initiator', initiator);
432
+ }
429
433
  const transformedBody = await transformRequestBody(input, init, url);
430
434
  const modifiedInit = {
431
435
  ...init,
@@ -435,6 +439,38 @@ function createFetchInterceptor(config) {
435
439
  return fetch(input, modifiedInit);
436
440
  };
437
441
  }
442
+ async function detectInitiator(input, init) {
443
+ try {
444
+ const rawBody = await getRawJsonBody(input, init);
445
+ if (!rawBody)
446
+ return 'user';
447
+ const payload = JSON.parse(rawBody);
448
+ if (!isRecord(payload))
449
+ return 'user';
450
+ const items = Array.isArray(payload.messages)
451
+ ? payload.messages
452
+ : Array.isArray(payload.input)
453
+ ? payload.input
454
+ : null;
455
+ if (!items || items.length === 0)
456
+ return 'user';
457
+ const last = items[items.length - 1];
458
+ if (!isRecord(last))
459
+ return 'user';
460
+ if (last.role === 'user') {
461
+ const content = last.content;
462
+ if (Array.isArray(content)) {
463
+ const hasNonToolResult = content.some((part) => isRecord(part) && part.type !== 'tool_result');
464
+ return hasNonToolResult ? 'user' : 'agent';
465
+ }
466
+ return 'user';
467
+ }
468
+ return 'agent';
469
+ }
470
+ catch {
471
+ return 'user';
472
+ }
473
+ }
438
474
  async function transformRequestBody(input, init, url) {
439
475
  if (!url.includes('/chat/completions') && !url.includes('/responses')) {
440
476
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cedrugs/opencode-omniauth",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "OpenCode authentication plugin for OmniRoute API with /connect command and dynamic model fetching",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",