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 +8 -0
- package/README.md +6 -4
- package/package.json +1 -1
- package/src/index.ts +1 -1
- package/src/models.ts +37 -2
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
|
-
>
|
|
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
|
-
| **
|
|
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
|
-
###
|
|
200
|
+
### 35 models, one command
|
|
201
201
|
|
|
202
202
|
```bash
|
|
203
203
|
/model → freeflow → pick
|
|
204
204
|
```
|
|
205
205
|
|
|
206
|
-
|
|
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.
|
|
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
|
|
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
|
|
5
|
-
* -
|
|
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",
|