pi-freeflow 1.33.0 → 1.33.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 +6 -0
- package/README.md +4 -5
- package/package.json +1 -1
- package/src/catalog.ts +10 -1
- package/src/index.ts +1 -1
- package/src/models.ts +3 -12
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.33.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Removed one free model from the catalog that could never be used in a coding session. It answers a plain chat request fine, but rejects any request that carries tool definitions — and coding agents always send tools, so picking it failed on every turn with a "no endpoints found that support tool use" error. The catalog is now 30 models.
|
|
8
|
+
|
|
3
9
|
## 1.33.0
|
|
4
10
|
|
|
5
11
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# pi-freeflow
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> 30 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
|
+
| **30 free models** | 10 from OpenCode Zen, 15 from KiloCode Gateway, 5 from Cline, context windows up to 1M. Full list below. | **$0** |
|
|
20
20
|
| **Relay pool** | Route requests through your own Cloudflare Workers 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** | Every model has a slash-free, colon-free alias, plus an optional `:effort` suffix for thinking depth. You type `freeflow/<name>`. | **$0** |
|
|
@@ -185,7 +185,7 @@ The same command set works identically in OMP and Pi:
|
|
|
185
185
|
|
|
186
186
|
---
|
|
187
187
|
|
|
188
|
-
###
|
|
188
|
+
### 30 models, one command
|
|
189
189
|
|
|
190
190
|
```bash
|
|
191
191
|
/model → freeflow → pick
|
|
@@ -225,7 +225,6 @@ Keyless access. Short aliases work for every row (the full ID is in parentheses)
|
|
|
225
225
|
| `lfm-2.5` (`liquid/lfm-2.5-2.6b:free`) | Liquid AI | **65K** (65.536) | **32K** (32.768) | `minimal…xhigh`\* | ❌ |
|
|
226
226
|
| `kilo-auto` (`kilo-auto/free`) | Kilo Gateway Auto | **256K** (256.000) | **10K** (10.000) | `minimal…xhigh`\* | ❌ |
|
|
227
227
|
| `openrouter` (`openrouter/free`) | OpenRouter Free | **200K** (200.000) | **65K** (65.536) | `minimal…xhigh`\* | ✅ |
|
|
228
|
-
| `content-safety` (`nvidia/...:free`) | NVIDIA | **128K** (128.000) | **8K** (8.192) | ❌ *(non-thinking)* | ✅ |
|
|
229
228
|
| `ling-3.0-flash-sante` (`inclusionai/ling-3.0-flash-sante:free`) | Inclusion AI | **262K** (262.144) | **32K** (32.768) | `minimal…xhigh`\* | ❌ |
|
|
230
229
|
| `step-3.7-flash` (`stepfun/...:free`) | StepFun | **262K** (262.144) | **262K** (262.144) | `minimal…xhigh`\* | ✅ |
|
|
231
230
|
| `inkling-small` (`thinkingmachines/inkling-small:free`) | Thinking Machines | **1M** (1.048.576) | **262K** (262.144) | `minimal…xhigh`\* | ✅ |
|
|
@@ -342,7 +341,7 @@ pnpm smoke # verifies extensions/index.ts loads without crashing
|
|
|
342
341
|
```
|
|
343
342
|
src/
|
|
344
343
|
├── index.ts # extension entry, lifecycle hooks
|
|
345
|
-
├── models.ts #
|
|
344
|
+
├── models.ts # 30-model catalog definitions
|
|
346
345
|
├── catalog.ts # model catalog cache (24h disk)
|
|
347
346
|
├── proxy.ts # local proxy server (127.0.0.1:28180)
|
|
348
347
|
├── relay.ts # relay fetch, rolling on retryable failures
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-freeflow",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.33.
|
|
4
|
+
"version": "1.33.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/catalog.ts
CHANGED
|
@@ -46,6 +46,14 @@ import type {
|
|
|
46
46
|
* - exo-free: unserved upstream (2026-10-07) — HTTP 503 "Error from provider (Console): Upstream request failed: Endpoint is unavailable.".
|
|
47
47
|
* - stealth/space-bunny-alpha: gone from Kilo (2026-10-07) — keyless chat 404 "The requested model ... does not exist".
|
|
48
48
|
* - qwen/qwen3.8-27b:free: gone from Kilo (2026-10-07) — keyless chat 404 "The requested model is currently unavailable.".
|
|
49
|
+
* - nvidia/nemotron-3.5-content-safety:free: tool-less guardrail model (2026-10-08),
|
|
50
|
+
* NOT decommissioned — it answers 200 keyless chat with no tools, but every
|
|
51
|
+
* tool-bearing request 404s "No endpoints found that support tool use" (Kilo
|
|
52
|
+
* `supported_parameters` lists reasoning only, no tools). It is a 4B
|
|
53
|
+
* moderation classifier fine-tuned from Gemma-3-4B that "moderates inputs to
|
|
54
|
+
* and responses from LLMs", not a chat model. Same exclusion class as
|
|
55
|
+
* jev-1.13-free: live, wrong shape for an agentic harness, so it must never
|
|
56
|
+
* re-enter the picker via disk cache or upstream merge.
|
|
49
57
|
*/
|
|
50
58
|
export const DEAD_MODEL_IDS = new Set<string>([
|
|
51
59
|
"jev-1.13-free",
|
|
@@ -69,6 +77,7 @@ export const DEAD_MODEL_IDS = new Set<string>([
|
|
|
69
77
|
"exo-free",
|
|
70
78
|
"stealth/space-bunny-alpha",
|
|
71
79
|
"qwen/qwen3.8-27b:free",
|
|
80
|
+
"nvidia/nemotron-3.5-content-safety:free",
|
|
72
81
|
]);
|
|
73
82
|
/**
|
|
74
83
|
* Free-tier allowlist for anything entering the picker via network or stale disk.
|
|
@@ -108,7 +117,7 @@ export function sanitizeCatalogModels(models: RegisteredModel[]): RegisteredMode
|
|
|
108
117
|
}
|
|
109
118
|
/**
|
|
110
119
|
* In-memory cache of currently active/available free models.
|
|
111
|
-
* Initialized with all
|
|
120
|
+
* Initialized with all 30 verified models for 0ms instant availability.
|
|
112
121
|
*/
|
|
113
122
|
let aliveCatalog: RegisteredModel[] = ALL_MODELS.map((m) => ({
|
|
114
123
|
...m,
|
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 30 free models (10 OpenCode Zen + 15 KiloCode Gateway + 5 Cline) 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,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Static model definitions and upstream routing catalogs for pi-freeflow
|
|
3
3
|
*
|
|
4
|
-
* Defines the
|
|
4
|
+
* Defines the 30 verified free models (live-verified 2026-10-08):
|
|
5
5
|
* - 10 OpenCode Zen models (2 Responses API + 8 Chat Completions)
|
|
6
|
-
* -
|
|
6
|
+
* - 15 KiloCode Keyless Gateway models (OpenRouter format)
|
|
7
7
|
* - 5 Cline direct-only models (per-user pool)
|
|
8
8
|
*/
|
|
9
9
|
|
|
@@ -319,14 +319,6 @@ export const KILO_MODELS: ModelDef[] = [
|
|
|
319
319
|
thinkingFormat: "openrouter",
|
|
320
320
|
thinkingLevelMap: KILO_REASONING_MAP,
|
|
321
321
|
},
|
|
322
|
-
{
|
|
323
|
-
id: "nvidia/nemotron-3.5-content-safety:free",
|
|
324
|
-
name: "Nemotron Content Safety [Kilo]",
|
|
325
|
-
reasoning: false,
|
|
326
|
-
contextWindow: 128_000,
|
|
327
|
-
maxTokens: 8_192,
|
|
328
|
-
input: ["text", "image"],
|
|
329
|
-
},
|
|
330
322
|
{
|
|
331
323
|
// Resurrected 2026-09-28: back on the live Kilo free list
|
|
332
324
|
// (isFree:true, 0/0 pricing, no expiry) + keyless chat 200.
|
|
@@ -485,7 +477,6 @@ export const MODEL_ALIASES: Record<string, string> = {
|
|
|
485
477
|
"nemotron-3-super": "nvidia/nemotron-3-super-120b-a12b:free",
|
|
486
478
|
"north-mini-code": "cohere/north-mini-code:free",
|
|
487
479
|
"lfm-2.5": "liquid/lfm-2.5-2.6b:free",
|
|
488
|
-
"content-safety": "nvidia/nemotron-3.5-content-safety:free",
|
|
489
480
|
"ling-3.0-flash-sante": "inclusionai/ling-3.0-flash-sante:free",
|
|
490
481
|
"step-3.7-flash": "stepfun/step-3.7-flash:free",
|
|
491
482
|
"inkling-small": "thinkingmachines/inkling-small:free",
|
|
@@ -530,7 +521,7 @@ export const CLINE_MODEL_IDS = new Set<string>([
|
|
|
530
521
|
.map(([alias]) => alias),
|
|
531
522
|
]);
|
|
532
523
|
/**
|
|
533
|
-
* Combined list of all
|
|
524
|
+
* Combined list of all 30 static free models (canonical)
|
|
534
525
|
*/
|
|
535
526
|
export const ALL_MODELS: ModelDef[] = [...OPENCODE_MODELS, ...KILO_MODELS, ...CLINE_MODELS];
|
|
536
527
|
|