pi-multikey 1.14.0 → 1.16.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
@@ -40,6 +40,8 @@ Built-in presets decouple "model settings" from "keys". The data comes from b.ai
40
40
  | hy3 | 256K / 128K | text | off · low · high |
41
41
  | mimo-v2.5 | 1M / 128K | text+image | off · high (official: low/medium/high behave identically) |
42
42
  | qwen3.8-flash | 1M / 131K | text+image | off · low · medium · xhigh |
43
+ | deepseek-v4.1-flash | 1M / 384K | text+image | off · low · high · max (official DeepSeek V4 tiers; b.ai probed live 2026-09-25) |
44
+ | glm-5.3-flash | 1M / 131K | text+image | low · high · max (no off — GLM always thinks; b.ai probed live 2026-09-25) |
43
45
 
44
46
  > Why `null` must be explicit: pi's `getSupportedThinkingLevels` treats `mapped === null` as unsupported and hides that level, but **omitting** it is treated as supported and the level name is sent to the API verbatim; `xhigh` / `max` additionally require an explicit non-null value to be usable.
45
47
 
package/README.zh.md CHANGED
@@ -41,6 +41,8 @@ DeepSeek / Tencent / 小米官方文档,并对每个 thinking 档位做过实
41
41
  | hy3 | 256K / 128K | text | off · low · high |
42
42
  | mimo-v2.5 | 1M / 128K | text+image | off · high(官方:low/medium/high 行为相同) |
43
43
  | qwen3.8-flash | 1M / 131K | text+image | off · low · medium · xhigh |
44
+ | deepseek-v4.1-flash | 1M / 384K | text+image | off · low · high · max(官方 DeepSeek V4 档位;b.ai 已于 2026-09-25 实测) |
45
+ | glm-5.3-flash | 1M / 131K | text+image | low · high · max(无 off——GLM 始终思考;b.ai 已于 2026-09-25 实测) |
44
46
 
45
47
  > 为什么必须显式写 `null`:pi 的 `getSupportedThinkingLevels` 把 `mapped === null`
46
48
  > 视为不支持并隐藏该档,但**省略**会被当作支持并把档名原样发给 API;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-multikey",
3
- "version": "1.14.0",
3
+ "version": "1.16.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
@@ -102,31 +102,41 @@ export const PRESETS: Preset[] = [
102
102
  // consensus (models.dev opencode/greenpt rows + the same model
103
103
  // behind cline-free/deepseek-v4.1-flash, verified live 2026-09-17):
104
104
  // ctx 1M, out 384K. Text+image input (models.dev opencode row).
105
- // Thinking tiers UNVERIFIED on b.ai: conservative off/high only —
106
- // b.ai rejects minimal/xhigh/max with HTTP 400 (seen on mimo-v2.5).
107
- // Widen the map after probing with a paid key.
105
+ // Thinking tiers probed live on b.ai 2026-09-25 (paid key, exact pi
106
+ // request shape: thinking.enabled + reasoning_effort): every level is
107
+ // accepted — the mimo-v2.5-style HTTP 400 for minimal/xhigh/max does
108
+ // NOT apply to this model. DeepSeek official exposes only
109
+ // low/high/max, and low vs high are behaviorally distinct in reasoning
110
+ // length, so minimal/medium/xhigh stay hidden (b.ai accepts them but
111
+ // treats them as duplicates).
108
112
  id: "deepseek-v4.1-flash",
109
113
  name: "DeepSeek V4.1 Flash",
110
114
  reasoning: true,
111
115
  input: ["text", "image"],
112
116
  contextWindow: 1_000_000,
113
117
  maxTokens: 384_000,
114
- thinkingLevelMap: levels({ off: "none", high: "high" }),
118
+ thinkingLevelMap: levels({ off: "none", low: "low", high: "high", max: "max" }),
115
119
  },
116
120
  {
117
121
  // b.ai /v1/models lists `glm-5.3-flash` (bare ids only — verified
118
122
  // live 2026-09-21). Sizes from catalog consensus (models.dev
119
123
  // zhipuai/zai rows): ctx 1M, out 128K. Upstream inputs
120
124
  // text/image/video/pdf (pi tracks text + image, like mimo-v2.5).
121
- // Thinking tiers UNVERIFIED on b.ai: conservative off/high only
122
- // (see deepseek-v4.1-flash above). Widen after probing.
125
+ // Thinking tiers probed live on b.ai 2026-09-25 (paid key, exact pi
126
+ // request shape): low/high/max accepted and behaviorally distinct
127
+ // (completion 153/257/434 tok on a fixed prompt). medium/minimal are
128
+ // REJECTED (HTTP 400), and thinking:{type:"disabled"} (what pi sends
129
+ // for off) also 400s — so off stays hidden: GLM always thinks, with
130
+ // the plain no-param request defaulting to deep reasoning (verified
131
+ // 200). xhigh is accepted with ≈max-like depth on a single sample but
132
+ // upstream GLM 5.3 Flash declares no xhigh tier — hidden for now.
123
133
  id: "glm-5.3-flash",
124
134
  name: "GLM 5.3 Flash",
125
135
  reasoning: true,
126
136
  input: ["text", "image"],
127
137
  contextWindow: 1_000_000,
128
138
  maxTokens: 131_072,
129
- thinkingLevelMap: levels({ off: "none", high: "high" }),
139
+ thinkingLevelMap: levels({ off: null, low: "low", high: "high", max: "max" }),
130
140
  },
131
141
  ],
132
142
  },
@@ -254,7 +264,7 @@ export const PRESETS: Preset[] = [
254
264
  id: "cline-free",
255
265
  name: "Cline Free",
256
266
  description:
257
- "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)",
267
+ "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, Space Bunny Alpha, MiMo V2.6 Flash (daily per-model quota, lineup rotates)",
258
268
  defaultPoolId: "cline",
259
269
  baseUrl: "https://api.cline.bot/api/v1",
260
270
  api: "openai-completions",
@@ -276,6 +286,7 @@ export const PRESETS: Preset[] = [
276
286
  // (deepseek/deepseek-v4.1-flash) is usage-billed — see the comment above.
277
287
  // Catalog (openrouter): ctx 1048576, out 384000 (both verified live), text+image.
278
288
  // Effort tiers verified live via reasoning:{effort} (incl. "none" = reasoning off).
289
+ // DeepSeek official tiers are only low/high/max, so minimal/medium/xhigh stay hidden.
279
290
  id: "cline-free/deepseek-v4.1-flash",
280
291
  name: "DeepSeek V4.1 Flash (Free)",
281
292
  reasoning: true,
@@ -283,7 +294,7 @@ export const PRESETS: Preset[] = [
283
294
  contextWindow: 1_048_576,
284
295
  maxTokens: 384_000,
285
296
  compat: { thinkingFormat: "openrouter" },
286
- thinkingLevelMap: levels({ off: "none", low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: "max" }),
297
+ thinkingLevelMap: levels({ off: "none", low: "low", high: "high", max: "max" }),
287
298
  },
288
299
  {
289
300
  // Free at its raw id (no cline-free/ prefix in the feed); 262K window measured
@@ -339,15 +350,33 @@ export const PRESETS: Preset[] = [
339
350
  thinkingLevelMap: levels({ minimal: "minimal", low: "low", medium: "medium", high: "high", xhigh: "xhigh", max: "max" }),
340
351
  },
341
352
  {
342
- // Stealth promo model; free at its raw id (no cline-free/ prefix in the feed).
343
- // Not in any catalog (stealth) — sizes/reasoning copied from the live pool,
344
- // unverified.
345
- id: "stealth/union-alpha",
346
- name: "Union Alpha",
353
+ // stealth/union-alpha retired from the Cline lineup (removed 2026-09-25 by the
354
+ // pool owner; superseded by the two entries below).
355
+ // Stealth promo model, free at its raw feed id (stealth/ prefix, no
356
+ // cline-free/ namespace). Not in any catalog (stealth) — sizes copied
357
+ // from the working live pool (2026-09-25), unverified. Always-on
358
+ // reasoning, no effort tiers.
359
+ id: "stealth/space-bunny-alpha",
360
+ name: "stealth/space-bunny-alpha",
347
361
  reasoning: true,
348
362
  input: ["text"],
349
- contextWindow: 262_000,
350
- maxTokens: 16_384,
363
+ cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
364
+ contextWindow: 1_000_000,
365
+ maxTokens: 32_768,
366
+ },
367
+ {
368
+ // Feed id: cline-free/mimo-v2.6-flash (raw xiaomi/mimo-v2.6-flash is
369
+ // usage-billed — same cline-free/ namespace rule as deepseek above).
370
+ // MiMo V2.6 Flash on the Cline free tier; working in the live pool
371
+ // 2026-09-25. Sizes from the live pool. Always-on reasoning, no effort
372
+ // tiers; vision input.
373
+ id: "cline-free/mimo-v2.6-flash",
374
+ name: "xiaomi/mimo-v2.6-flash",
375
+ reasoning: true,
376
+ input: ["text", "image"],
377
+ cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
378
+ contextWindow: 1_048_576,
379
+ maxTokens: 128_000,
351
380
  },
352
381
  ],
353
382
  },