pi-freeflow 1.37.0 → 1.37.1

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/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.37.1
4
+
5
+ ### Patch Changes
6
+
7
+ - **DeepSeek V4.1 Flash (`deepseek-v4.1-flash-free`)**: Added to the OpenCode Zen lane (catalog 34 → 35 models). Configured with full **1,000,000 context window**, **384,000 max output tokens**, vision support (`input: ["text", "image"]`), and reasoning ladder (`minimal..max`).
8
+ - **Sources of Truth & Highest-Spec Twin Policy**: Documented model reconciliation against [models.dev](https://models.dev/), [OpenRouter](https://openrouter.ai/), and OMP's built-in catalog, ensuring models are configured to the highest capability across twin models rather than artificially truncated limits.
9
+ - **Automated OpenCode Model Health Bot**: Added dedicated GitHub Actions workflow and probe engine to continuously detect affected or degraded OpenCode free-tier models.
10
+
3
11
  ## 1.37.0
4
12
 
5
13
  ### Minor Changes
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # pi-freeflow
2
2
 
3
- > 34 free models with up to 1M context. No API keys to manage. Add your own relays to spread requests across more IPs.
3
+ > 35 free models with up to 1M context. No API keys to manage. Add your own relays to spread requests across more IPs.
4
4
 
5
5
  Thin by design: a model list, a relay proxy, and a log. The host (`pi-ai`) handles thinking, normalization, and provider behavior.
6
6
 
@@ -16,7 +16,7 @@ Thin by design: a model list, a relay proxy, and a log. The host (`pi-ai`) handl
16
16
 
17
17
  | Feature | What it does | Cost |
18
18
  | :--- | :--- | :--- |
19
- | **34 free models** | 10 from OpenCode Zen, 14 from KiloCode Gateway, 2 from Cline, 8 from OVHcloud AI Endpoints, context windows up to 1M. Full list below. | **$0** |
19
+ | **35 free models** | 11 from OpenCode Zen, 14 from KiloCode Gateway, 2 from Cline, 8 from OVHcloud AI Endpoints, context windows up to 1M. Full list below. | **$0** |
20
20
  | **Relay pool** | Route requests through your own Cloudflare Workers, Deno Deploy, and Vercel Edge relays. Traffic spreads across the pool, or stays on one sticky relay. A relay that rate-limits, times out, or drops the connection cools down while healthy ones take its traffic. | **$0** beyond your platforms' free tiers |
21
21
  | **Automatic fallback** | When every relay is cooling down, requests go direct to upstream instead of failing. | **$0** |
22
22
  | **Short model names** | Most models have a slash-free, colon-free alias, plus an optional `:effort` suffix for thinking depth. You type `freeflow/<name>`; the two Cline models have no alias and must be typed in full. | **$0** |
@@ -197,13 +197,14 @@ The same command set works identically in OMP and Pi:
197
197
 
198
198
  ---
199
199
 
200
- ### 34 models, one command
200
+ ### 35 models, one command
201
201
 
202
202
  ```bash
203
203
  /model → freeflow → pick
204
204
  ```
205
205
 
206
- #### OpenCode Zen (10 models), Responses and Chat API
206
+ Every model specification is reconciled against [models.dev](https://models.dev/), [OpenRouter](https://openrouter.ai/), and OMP's built-in catalog, configured with the highest verified context, output ceiling, and reasoning capabilities across twin models.
207
+ #### OpenCode Zen (11 models), Responses and Chat API
207
208
 
208
209
  Good defaults for long coding sessions and agentic work.
209
210
 
@@ -219,6 +220,7 @@ Good defaults for long coding sessions and agentic work.
219
220
  | `space-bunny-free` | Stealth preview (lab undisclosed) | **1M** (1.048.576) | **512K** (524.288) | `low … max` | ✅ |
220
221
  | `longcat-2.5-preview-free` | Meituan LongCat | **1M** (1.000.000) | **131K** (131.072) | `minimal … max` | ✅ |
221
222
  | `step-5-preview-free` | StepFun | **1M** (1.000.000) | **64K** (65.536) | `low … high` | ✅ |
223
+ | `deepseek-v4.1-flash-free` | DeepSeek | **1M** (1.000.000) | **384K** (384.000) | `minimal … max` | ✅ |
222
224
 
223
225
  #### KiloCode Gateway (14 models), OpenRouter compatible
224
226
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pi-freeflow",
3
3
  "type": "module",
4
- "version": "1.37.0",
4
+ "version": "1.37.1",
5
5
  "description": "Thin provider for OMP/Pi — model list + dumb relay proxy + log; host pi-ai owns thinking/normalization",
6
6
  "main": "extensions/index.ts",
7
7
  "types": "src/index.ts",
package/src/index.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * pi-freeflow — Modular, high-resiliency LLM extension for Pi & Oh My Pi (OMP)
3
3
  *
4
- * Provides access to 37 free models (11 OpenCode Zen + 15 KiloCode Gateway + 2 Cline + 9 OVH) with:
4
+ * Provides access to 35 free models (11 OpenCode Zen + 14 KiloCode Gateway + 2 Cline + 8 OVH) with:
5
5
  * - Single-port daemon reuse on 28180 across concurrent subagents
6
6
  * - Multi-cloud rolling egress relays (Vercel Edge, Cloudflare, Deno)
7
7
  * - 0ms instant startup with verified static catalog and background live health checks
package/src/models.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Static model definitions and upstream routing catalogs for pi-freeflow
3
3
  *
4
- * Defines the 34 verified free models (live-verified 2026-10-15):
5
- * - 10 OpenCode Zen models (2 Responses API + 8 Chat Completions)
4
+ * Defines the 35 verified free models (live-verified 2026-10-15):
5
+ * - 11 OpenCode Zen models (2 Responses API + 9 Chat Completions)
6
6
  * - 14 KiloCode Keyless Gateway models (OpenRouter format)
7
7
  * - 2 Cline direct-only models (per-user pool)
8
8
  * - 8 OVHcloud AI Endpoints models (keyless, direct-only)
@@ -200,6 +200,40 @@ export const OPENCODE_MODELS: ModelDef[] = [
200
200
  max: null,
201
201
  },
202
202
  },
203
+ {
204
+ // Added 2026-10-15: new free model on the OpenCode Zen lane. Live-verified by
205
+ // probe, NOT copied from the published catalog — the entry for this exact
206
+ // free id claims 200,000 context, which the gateway contradicts (see below).
207
+ id: "deepseek-v4.1-flash-free",
208
+ name: "DeepSeek V4.1 Flash [OpenCode]",
209
+ reasoning: true,
210
+ // 1,048,576 measured, not assumed: a marker planted mid-prompt is still
211
+ // recalled through prompt_tokens=1,030,800, and the gateway turns an
212
+ // oversized request away with an empty-bodied 400 somewhere above ~1.05M.
213
+ // The published 200k belongs to the paid deepseek-v4-flash-free, a different
214
+ // model with a confusingly similar name. Acceptance is not capability; here
215
+ // the two agree, which is why this is the declared number.
216
+ contextWindow: 1_000_000,
217
+ // 384,000 output tokens per https://models.dev/models/deepseek/deepseek-v4.1-flash/
218
+ // and live gateway boundary probe (gateway accepts up to 393,216 = 384KiB, rejects 393,217+ with 400).
219
+ maxTokens: 384_000,
220
+ // Chat Completions only — a Responses-shaped request is refused with
221
+ // 400 ModelProtocolUnsupported. `api` left unset, which means chat.
222
+ input: ["text", "image"],
223
+ // Vision verified live (a 1x1 PNG reads back as "Pink"). Video is not
224
+ // advertised for this model upstream, so it is not offered here.
225
+ // Every effort level is accepted and visibly changes reasoning length, so
226
+ // the whole ladder stays selectable; `off` is always null.
227
+ thinkingLevelMap: {
228
+ off: null,
229
+ minimal: "minimal",
230
+ low: "low",
231
+ medium: "medium",
232
+ high: "high",
233
+ xhigh: "xhigh",
234
+ max: "max",
235
+ },
236
+ },
203
237
  ];
204
238
 
205
239
  /**
@@ -589,6 +623,7 @@ export const MODEL_ALIASES: Record<string, string> = {
589
623
  "longcat-2.5-preview": "longcat-2.5-preview-free",
590
624
  "longcat": "longcat-2.5-preview-free",
591
625
  "step-5-preview": "step-5-preview-free",
626
+ "deepseek-v4.1-flash": "deepseek-v4.1-flash-free",
592
627
  // provider-prefixed short aliases (slash-normalized)
593
628
  "laguna-s-2.1:free": "poolside/laguna-s-2.1:free",
594
629
  "laguna-xs-2.1:free": "poolside/laguna-xs-2.1:free",