@monotykamary/pi-opencode-provider 1.0.11 → 1.0.13
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 +3 -3
- package/deprecated-models.json +38 -20
- package/models.json +52 -41
- package/package.json +1 -1
- package/patch.json +19 -0
- package/scripts/update-models.js +25 -0
package/README.md
CHANGED
|
@@ -87,7 +87,6 @@ pi
|
|
|
87
87
|
| Claude Sonnet 4.6 | Anthropic | Text + Image | 1.0M | 64K | $3.00 | $15.00 |
|
|
88
88
|
| Claude Sonnet 5 | Anthropic | Text + Image | 1.0M | 128K | $2.00 | $10.00 |
|
|
89
89
|
| DeepSeek V4 Flash | Completions | Text | 1.0M | 384K | $0.14 | $0.28 |
|
|
90
|
-
| DeepSeek V4 Flash Free | Completions | Text | 200K | 128K | — | — |
|
|
91
90
|
| DeepSeek V4 Pro | Completions | Text | 1.0M | 384K | $1.74 | $3.84 |
|
|
92
91
|
| Gemini 3 Flash | Gemini | Text + Image | 1.0M | 66K | $0.50 | $3.00 |
|
|
93
92
|
| Gemini 3 Pro | Gemini | Text + Image | 1.0M | 66K | $1.25 | $10.00 |
|
|
@@ -117,7 +116,7 @@ pi
|
|
|
117
116
|
| GPT-5.5 | Responses | Text + Image | 1.1M | 128K | $5.00 | $30.00 |
|
|
118
117
|
| GPT-5.5 Pro | Responses | Text + Image | 1.1M | 128K | $30.00 | $180.00 |
|
|
119
118
|
| GPT-5.6 Luna | Responses | Text + Image | 1.1M | 128K | $0.20 | $1.20 |
|
|
120
|
-
| GPT-5.6 Sol | Responses | Text + Image | 1.1M | 128K | $
|
|
119
|
+
| GPT-5.6 Sol (50% Off) | Responses | Text + Image | 1.1M | 128K | $2.50 | $15.00 |
|
|
121
120
|
| GPT-5.6 Terra | Responses | Text + Image | 1.1M | 128K | $2.50 | $15.00 |
|
|
122
121
|
| Grok 4.5 | Responses | Text + Image | 500K | 500K | $2.00 | $6.00 |
|
|
123
122
|
| Grok 4.6 | Responses | Text + Image | 500K | 500K | $2.00 | $6.00 |
|
|
@@ -128,14 +127,15 @@ pi
|
|
|
128
127
|
| Kimi K2.6 | Completions | Text + Image | 262K | 66K | $0.95 | $4.00 |
|
|
129
128
|
| Kimi K2.7 Code | Completions | Text + Image | 262K | 262K | $0.95 | $4.00 |
|
|
130
129
|
| Kimi K3 | Completions | Text + Image | 1.0M | 131K | $3.00 | $15.00 |
|
|
131
|
-
| Laguna S 2.1 Free | Completions | Text | 256K | 32K | — | — |
|
|
132
130
|
| MiMo V2.5 Free | Completions | Text + Image | 200K | 32K | — | — |
|
|
133
131
|
| MiniMax-M2.5 | Completions | Text | 205K | 131K | $0.30 | $1.20 |
|
|
134
132
|
| MiniMax-M2.7 | Completions | Text | 205K | 131K | $0.30 | $1.20 |
|
|
135
133
|
| MiniMax-M3 | Completions | Text + Image | 512K | 128K | $0.30 | $1.20 |
|
|
136
134
|
| Muse Spark 1.2 | Responses | Text + Image | 1.0M | 131K | $1.25 | $4.25 |
|
|
135
|
+
| Muse Spark 1.2 Free | Responses | Text + Image | 1.0M | 131K | — | — |
|
|
137
136
|
| Nemotron 3 Ultra Free | Completions | Text | 1.0M | 128K | — | — |
|
|
138
137
|
| Nemotron 3.5 Lightning Free | Completions | Text | 262K | 262K | — | — |
|
|
138
|
+
| Ox Alpha Free (Unlimited) | Completions | Text + Image | 1.0M | 131K | — | — |
|
|
139
139
|
| Qwen3.5 Plus | Anthropic | Text + Image | 262K | 66K | $0.20 | $1.20 |
|
|
140
140
|
| Qwen3.6 Plus | Anthropic | Text + Image | 262K | 66K | $0.50 | $3.00 |
|
|
141
141
|
*Costs are per million tokens. Prices subject to change - check [opencode.ai](https://opencode.ai) for current pricing.*
|
package/deprecated-models.json
CHANGED
|
@@ -1,24 +1,4 @@
|
|
|
1
1
|
{
|
|
2
|
-
"claude-opus-4-1": {
|
|
3
|
-
"id": "claude-opus-4-1",
|
|
4
|
-
"name": "Claude Opus 4.1",
|
|
5
|
-
"api": "anthropic-messages",
|
|
6
|
-
"baseUrl": "https://opencode.ai/zen",
|
|
7
|
-
"reasoning": true,
|
|
8
|
-
"input": [
|
|
9
|
-
"text",
|
|
10
|
-
"image"
|
|
11
|
-
],
|
|
12
|
-
"cost": {
|
|
13
|
-
"input": 15,
|
|
14
|
-
"output": 75,
|
|
15
|
-
"cacheRead": 1.5,
|
|
16
|
-
"cacheWrite": 18.75
|
|
17
|
-
},
|
|
18
|
-
"contextWindow": 200000,
|
|
19
|
-
"maxTokens": 32000,
|
|
20
|
-
"deprecatedAt": "2026-08-07T02:00:18.924Z"
|
|
21
|
-
},
|
|
22
2
|
"ling-3.0-flash-free": {
|
|
23
3
|
"id": "ling-3.0-flash-free",
|
|
24
4
|
"name": "Ling-3.0-flash Free",
|
|
@@ -94,5 +74,43 @@
|
|
|
94
74
|
"contextWindow": 262144,
|
|
95
75
|
"maxTokens": 32768,
|
|
96
76
|
"deprecatedAt": "2026-08-14T02:00:20.260Z"
|
|
77
|
+
},
|
|
78
|
+
"laguna-s-2.1-free": {
|
|
79
|
+
"id": "laguna-s-2.1-free",
|
|
80
|
+
"name": "Laguna S 2.1 Free",
|
|
81
|
+
"api": "openai-completions",
|
|
82
|
+
"baseUrl": "https://opencode.ai/zen/v1",
|
|
83
|
+
"reasoning": true,
|
|
84
|
+
"input": [
|
|
85
|
+
"text"
|
|
86
|
+
],
|
|
87
|
+
"cost": {
|
|
88
|
+
"input": 0,
|
|
89
|
+
"output": 0,
|
|
90
|
+
"cacheRead": 0,
|
|
91
|
+
"cacheWrite": 0
|
|
92
|
+
},
|
|
93
|
+
"contextWindow": 256000,
|
|
94
|
+
"maxTokens": 32000,
|
|
95
|
+
"deprecatedAt": "2026-08-21T02:00:22.698Z"
|
|
96
|
+
},
|
|
97
|
+
"deepseek-v4-flash-free": {
|
|
98
|
+
"id": "deepseek-v4-flash-free",
|
|
99
|
+
"name": "DeepSeek V4 Flash Free",
|
|
100
|
+
"api": "openai-completions",
|
|
101
|
+
"baseUrl": "https://opencode.ai/zen/v1",
|
|
102
|
+
"reasoning": true,
|
|
103
|
+
"input": [
|
|
104
|
+
"text"
|
|
105
|
+
],
|
|
106
|
+
"cost": {
|
|
107
|
+
"input": 0,
|
|
108
|
+
"output": 0,
|
|
109
|
+
"cacheRead": 0,
|
|
110
|
+
"cacheWrite": 0
|
|
111
|
+
},
|
|
112
|
+
"contextWindow": 200000,
|
|
113
|
+
"maxTokens": 128000,
|
|
114
|
+
"deprecatedAt": "2026-08-21T02:00:22.698Z"
|
|
97
115
|
}
|
|
98
116
|
}
|
package/models.json
CHANGED
|
@@ -18,24 +18,6 @@
|
|
|
18
18
|
"contextWindow": 1000000,
|
|
19
19
|
"maxTokens": 128000
|
|
20
20
|
},
|
|
21
|
-
{
|
|
22
|
-
"id": "laguna-s-2.1-free",
|
|
23
|
-
"name": "Laguna S 2.1 Free",
|
|
24
|
-
"api": "openai-completions",
|
|
25
|
-
"baseUrl": "https://opencode.ai/zen/v1",
|
|
26
|
-
"reasoning": true,
|
|
27
|
-
"input": [
|
|
28
|
-
"text"
|
|
29
|
-
],
|
|
30
|
-
"cost": {
|
|
31
|
-
"input": 0,
|
|
32
|
-
"output": 0,
|
|
33
|
-
"cacheRead": 0,
|
|
34
|
-
"cacheWrite": 0
|
|
35
|
-
},
|
|
36
|
-
"contextWindow": 256000,
|
|
37
|
-
"maxTokens": 32000
|
|
38
|
-
},
|
|
39
21
|
{
|
|
40
22
|
"id": "nemotron-3.5-lightning-free",
|
|
41
23
|
"name": "Nemotron 3.5 Lightning Free",
|
|
@@ -148,24 +130,6 @@
|
|
|
148
130
|
"contextWindow": 1000000,
|
|
149
131
|
"maxTokens": 384000
|
|
150
132
|
},
|
|
151
|
-
{
|
|
152
|
-
"id": "deepseek-v4-flash-free",
|
|
153
|
-
"name": "DeepSeek V4 Flash Free",
|
|
154
|
-
"api": "openai-completions",
|
|
155
|
-
"baseUrl": "https://opencode.ai/zen/v1",
|
|
156
|
-
"reasoning": true,
|
|
157
|
-
"input": [
|
|
158
|
-
"text"
|
|
159
|
-
],
|
|
160
|
-
"cost": {
|
|
161
|
-
"input": 0,
|
|
162
|
-
"output": 0,
|
|
163
|
-
"cacheRead": 0,
|
|
164
|
-
"cacheWrite": 0
|
|
165
|
-
},
|
|
166
|
-
"contextWindow": 200000,
|
|
167
|
-
"maxTokens": 128000
|
|
168
|
-
},
|
|
169
133
|
{
|
|
170
134
|
"id": "claude-opus-4-8",
|
|
171
135
|
"name": "Claude Opus 4.8",
|
|
@@ -225,7 +189,7 @@
|
|
|
225
189
|
},
|
|
226
190
|
{
|
|
227
191
|
"id": "gpt-5.6-sol",
|
|
228
|
-
"name": "GPT-5.6 Sol",
|
|
192
|
+
"name": "GPT-5.6 Sol (50% Off)",
|
|
229
193
|
"api": "openai-responses",
|
|
230
194
|
"baseUrl": "https://opencode.ai/zen/v1",
|
|
231
195
|
"reasoning": true,
|
|
@@ -234,10 +198,10 @@
|
|
|
234
198
|
"image"
|
|
235
199
|
],
|
|
236
200
|
"cost": {
|
|
237
|
-
"input": 5,
|
|
238
|
-
"output":
|
|
239
|
-
"cacheRead": 0.
|
|
240
|
-
"cacheWrite":
|
|
201
|
+
"input": 2.5,
|
|
202
|
+
"output": 15,
|
|
203
|
+
"cacheRead": 0.25,
|
|
204
|
+
"cacheWrite": 3.125
|
|
241
205
|
},
|
|
242
206
|
"contextWindow": 1050000,
|
|
243
207
|
"maxTokens": 128000
|
|
@@ -578,6 +542,53 @@
|
|
|
578
542
|
"contextWindow": 128000,
|
|
579
543
|
"maxTokens": 128000
|
|
580
544
|
},
|
|
545
|
+
{
|
|
546
|
+
"id": "muse-spark-1.2-contributor-free",
|
|
547
|
+
"name": "Muse Spark 1.2 Free",
|
|
548
|
+
"api": "openai-responses",
|
|
549
|
+
"baseUrl": "https://opencode.ai/zen/v1",
|
|
550
|
+
"reasoning": true,
|
|
551
|
+
"input": [
|
|
552
|
+
"text",
|
|
553
|
+
"image"
|
|
554
|
+
],
|
|
555
|
+
"cost": {
|
|
556
|
+
"input": 0,
|
|
557
|
+
"output": 0,
|
|
558
|
+
"cacheRead": 0,
|
|
559
|
+
"cacheWrite": 0
|
|
560
|
+
},
|
|
561
|
+
"contextWindow": 1048576,
|
|
562
|
+
"maxTokens": 131072
|
|
563
|
+
},
|
|
564
|
+
{
|
|
565
|
+
"id": "x-preview-f-free",
|
|
566
|
+
"name": "Ox Alpha Free (Unlimited)",
|
|
567
|
+
"api": "openai-completions",
|
|
568
|
+
"baseUrl": "https://opencode.ai/zen/v1",
|
|
569
|
+
"reasoning": true,
|
|
570
|
+
"thinkingLevelMap": {
|
|
571
|
+
"off": null,
|
|
572
|
+
"minimal": null,
|
|
573
|
+
"low": "low",
|
|
574
|
+
"medium": null,
|
|
575
|
+
"high": "high",
|
|
576
|
+
"xhigh": null,
|
|
577
|
+
"max": "max"
|
|
578
|
+
},
|
|
579
|
+
"input": [
|
|
580
|
+
"text",
|
|
581
|
+
"image"
|
|
582
|
+
],
|
|
583
|
+
"cost": {
|
|
584
|
+
"input": 0,
|
|
585
|
+
"output": 0,
|
|
586
|
+
"cacheRead": 0,
|
|
587
|
+
"cacheWrite": 0
|
|
588
|
+
},
|
|
589
|
+
"contextWindow": 1000000,
|
|
590
|
+
"maxTokens": 131072
|
|
591
|
+
},
|
|
581
592
|
{
|
|
582
593
|
"id": "gpt-5.2",
|
|
583
594
|
"name": "GPT-5.2",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@monotykamary/pi-opencode-provider",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.13",
|
|
4
4
|
"description": "Opencode provider extension for pi - Access GPT, Claude, Gemini, GLM, MiniMax, Kimi and more through the opencode.ai API",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.ts",
|
package/patch.json
CHANGED
|
@@ -1,4 +1,23 @@
|
|
|
1
1
|
{
|
|
2
|
+
"x-preview-f-free": {
|
|
3
|
+
"thinkingLevelMap": {
|
|
4
|
+
"off": null,
|
|
5
|
+
"minimal": null,
|
|
6
|
+
"low": "low",
|
|
7
|
+
"medium": null,
|
|
8
|
+
"high": "high",
|
|
9
|
+
"xhigh": null,
|
|
10
|
+
"max": "max"
|
|
11
|
+
},
|
|
12
|
+
"compat": {
|
|
13
|
+
"supportsStore": false,
|
|
14
|
+
"supportsDeveloperRole": false,
|
|
15
|
+
"maxTokensField": "max_tokens",
|
|
16
|
+
"requiresReasoningContentOnAssistantMessages": true,
|
|
17
|
+
"thinkingFormat": "deepseek",
|
|
18
|
+
"supportsReasoningEffort": true
|
|
19
|
+
}
|
|
20
|
+
},
|
|
2
21
|
"gpt-5.1-codex-mini": {
|
|
3
22
|
"thinkingLevelMap": {
|
|
4
23
|
"off": null,
|
package/scripts/update-models.js
CHANGED
|
@@ -66,6 +66,28 @@ function getInputTypes(modalities) {
|
|
|
66
66
|
if (!filtered.includes('text')) filtered.unshift('text');
|
|
67
67
|
return filtered;
|
|
68
68
|
}
|
|
69
|
+
// Canonical pi thinking levels, in picker order. A null entry excludes a level
|
|
70
|
+
// from the picker; a string maps the pi level to the API effort value (identity
|
|
71
|
+
// here, since models.dev reasoning_options values are the raw effort strings).
|
|
72
|
+
const PI_THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh", "max"];
|
|
73
|
+
|
|
74
|
+
// Derive a thinking-level map from models.dev reasoning_options so models that
|
|
75
|
+
// declare effort values (e.g. ox-alpha: low/high/max) get real picker levels
|
|
76
|
+
// without a hand-written patch.json entry. Unadvertised levels and "off" (models
|
|
77
|
+
// that cannot disable thinking, like ox-alpha) map to null.
|
|
78
|
+
function getThinkingLevelMap(model) {
|
|
79
|
+
if (!model.reasoning) return undefined;
|
|
80
|
+
const effort = (model.reasoning_options || []).find((o) => o && o.type === "effort");
|
|
81
|
+
const values = effort && Array.isArray(effort.values) ? effort.values.filter((v) => typeof v === "string") : [];
|
|
82
|
+
if (values.length === 0) return undefined;
|
|
83
|
+
const supported = new Set(values);
|
|
84
|
+
const map = {};
|
|
85
|
+
for (const level of PI_THINKING_LEVELS) {
|
|
86
|
+
map[level] = supported.has(level) ? level : null;
|
|
87
|
+
}
|
|
88
|
+
return map;
|
|
89
|
+
}
|
|
90
|
+
|
|
69
91
|
|
|
70
92
|
// Get API label for display
|
|
71
93
|
function getApiLabel(api) {
|
|
@@ -92,6 +114,9 @@ function convertModel(model) {
|
|
|
92
114
|
api,
|
|
93
115
|
baseUrl,
|
|
94
116
|
reasoning: model.reasoning || false,
|
|
117
|
+
// JSON.stringify drops undefined-valued keys, so models without effort
|
|
118
|
+
// metadata simply emit no thinkingLevelMap field.
|
|
119
|
+
thinkingLevelMap: getThinkingLevelMap(model),
|
|
95
120
|
input: inputTypes,
|
|
96
121
|
cost: {
|
|
97
122
|
input: cost.input || 0,
|