pi-multikey 1.10.0 → 1.11.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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/presets.ts +55 -22
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-multikey",
3
- "version": "1.10.0",
3
+ "version": "1.11.0",
4
4
  "description": "One pi provider backed by many API keys: automatic 429 rotation, per-request key leases for concurrent subagents, and a /multikey management TUI",
5
5
  "keywords": [
6
6
  "pi-package",
package/presets.ts CHANGED
@@ -188,34 +188,44 @@ export const PRESETS: Preset[] = [
188
188
  id: "cline-free",
189
189
  name: "Cline Free",
190
190
  description:
191
- "api.cline.bot — Cline account free tier: DeepSeek V4 Flash, Longcat 2.0, Laguna S 2.1, GLM 5.3, Solar Pro 4, Muse Spark 1.3 (daily per-model quota, lineup rotates)",
191
+ "api.cline.bot — Cline account free tier: DeepSeek V4.1 Flash, Laguna S 2.1, GLM 5.3, Solar Pro 4, Muse Spark 1.3, Union Alpha (daily per-model quota, lineup rotates)",
192
192
  defaultPoolId: "cline",
193
193
  baseUrl: "https://api.cline.bot/api/v1",
194
194
  api: "openai-completions",
195
195
  keyHint: "Cline account — use 'Sign in with Cline (device flow)', or paste an access token from ~/.cline/data/secrets.json",
196
+ // FREE-TIER MODEL IDS ARE EXACT — copy them from the `free` bucket of
197
+ // GET /api/v1/ai/cline/recommended-models, NOT from GET /models (the
198
+ // OpenRouter catalog dump). Entries prefixed `cline-free/` are only free
199
+ // under that exact id: their raw vendor id (e.g. deepseek/deepseek-v4.1-flash)
200
+ // routes to usage-based billing and answers 402 insufficient_credits on a
201
+ // zero-balance account, while the cline-free/ id rides the daily per-model
202
+ // quota ($0). The cline-free/ namespace is additionally gated on the
203
+ // X-CLIENT-TYPE header — already sent on every request via
204
+ // endpointHeaders() in config.ts, so no extra config is needed.
205
+ // Verified live 2026-09-17 (probe account, multikey's exact header set):
206
+ // raw deepseek-v4.1-flash → 402; cline-free/deepseek-v4.1-flash → 200, $0.
196
207
  models: [
197
208
  {
198
- id: "deepseek/deepseek-v4-flash",
199
- name: "DeepSeek V4 Flash",
209
+ // Feed id: cline-free/deepseek-v4.1-flash. The raw id
210
+ // (deepseek/deepseek-v4.1-flash) is usage-billed — see the comment above.
211
+ // Catalog (openrouter): ctx 1048576, out 384000 (both verified live), text+image.
212
+ // Effort tiers verified live via reasoning:{effort} (incl. "none" = reasoning off).
213
+ id: "cline-free/deepseek-v4.1-flash",
214
+ name: "DeepSeek V4.1 Flash (Free)",
200
215
  reasoning: true,
201
- input: ["text"],
202
- contextWindow: 1_000_000,
203
- maxTokens: 131_072,
204
- },
205
- {
206
- id: "meituan/longcat-2.0",
207
- name: "Longcat 2.0",
208
- reasoning: true,
209
- input: ["text"],
210
- contextWindow: 1_000_000,
211
- maxTokens: 131_072,
216
+ input: ["text", "image"],
217
+ contextWindow: 1_048_576,
218
+ maxTokens: 384_000,
219
+ compat: { thinkingFormat: "openrouter" },
220
+ thinkingLevelMap: levels({ off: "none", low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: "max" }),
212
221
  },
213
222
  {
223
+ // Free at its raw id (no cline-free/ prefix in the feed); 262K window measured
224
+ // live by the preset author. Not in any catalog (stealth) — sizes unverified.
214
225
  id: "poolside/laguna-s-2.1:free",
215
226
  name: "Laguna S 2.1 (Free)",
216
227
  reasoning: true,
217
228
  input: ["text"],
218
- // Window/output measured from the live free tier (tuned in multikey.json).
219
229
  contextWindow: 262_144,
220
230
  maxTokens: 32_768,
221
231
  },
@@ -230,25 +240,48 @@ export const PRESETS: Preset[] = [
230
240
  maxTokens: 128_000,
231
241
  },
232
242
  {
233
- id: "upstage/solar-pro4",
234
- name: "Upstage Solar Pro 4",
243
+ // Feed id: cline-free/solar-pro4 (raw upstage/solar-pro4 is usage-billed).
244
+ // Catalog: ctx 524288 (1M rejected live: "maximum context length is 524288"),
245
+ // out 131072 (accepted live). Effort: none/high only (verified live).
246
+ id: "cline-free/solar-pro4",
247
+ name: "Upstage Solar Pro 4 (Free)",
235
248
  reasoning: true,
236
249
  input: ["text"],
237
250
  cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
238
- contextWindow: 524_000,
239
- maxTokens: 16_384,
251
+ contextWindow: 524_288,
252
+ maxTokens: 131_072,
253
+ compat: { thinkingFormat: "openrouter" },
254
+ thinkingLevelMap: levels({ off: "none", high: "high" }),
240
255
  },
241
256
  {
242
257
  // Same Meta model as OpenCode Zen's muse-spark-1.3-contributor-free, served
243
258
  // through Cline's chat-completions endpoint (no Responses API / session
244
259
  // affinity needed). Always-on reasoning; text + image input.
245
- id: "meta/muse-spark-1.3-contributor",
246
- name: "Meta Muse Spark 1.3 Contributor",
260
+ // Feed id: cline-free/muse-spark-1.3-contributor (raw meta/… is usage-billed).
261
+ // Catalog: ctx 1048576, out 943718, effort minimal..max (no toggle = always on).
262
+ // NOTE: the cline-free/ id answered "not available in your region" from the
263
+ // PH (2026-09-17 probe); the model may be region-gated on the free tier, so
264
+ // catalog values are unverified against the live free route.
265
+ id: "cline-free/muse-spark-1.3-contributor",
266
+ name: "Meta Muse Spark 1.3 Contributor (Free)",
247
267
  reasoning: true,
248
268
  input: ["text", "image"],
249
269
  cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
250
270
  contextWindow: 1_048_576,
251
- maxTokens: 131_072,
271
+ maxTokens: 943_718,
272
+ compat: { thinkingFormat: "openrouter" },
273
+ thinkingLevelMap: levels({ minimal: "minimal", low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: "max" }),
274
+ },
275
+ {
276
+ // Stealth promo model; free at its raw id (no cline-free/ prefix in the feed).
277
+ // Not in any catalog (stealth) — sizes/reasoning copied from the live pool,
278
+ // unverified.
279
+ id: "stealth/union-alpha",
280
+ name: "Union Alpha",
281
+ reasoning: true,
282
+ input: ["text"],
283
+ contextWindow: 262_000,
284
+ maxTokens: 16_384,
252
285
  },
253
286
  ],
254
287
  },