pi-freeflow 1.15.2 → 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/CHANGELOG.md +6 -0
- package/package.json +1 -1
- package/src/catalog.ts +2 -2
- package/src/index.ts +1 -1
- package/src/models.ts +16 -3
- package/src/types.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.16.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- New free model: Union Alpha Free joins the picker. It answers through a different upstream endpoint than the other free models, handled automatically — 262K context, image input, tool calling, and zero cost like the rest of the catalog.
|
|
8
|
+
|
|
3
9
|
## 1.15.2
|
|
4
10
|
|
|
5
11
|
### Patch Changes
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-freeflow",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.16.0",
|
|
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
|
@@ -77,7 +77,7 @@ export function sanitizeCatalogModels(models: RegisteredModel[]): RegisteredMode
|
|
|
77
77
|
}
|
|
78
78
|
/**
|
|
79
79
|
* In-memory cache of currently active/available free models.
|
|
80
|
-
* Initialized with all
|
|
80
|
+
* Initialized with all 27 verified models for 0ms instant availability.
|
|
81
81
|
*/
|
|
82
82
|
let aliveCatalog: RegisteredModel[] = ALL_MODELS.map((m) => ({
|
|
83
83
|
...m,
|
|
@@ -400,6 +400,6 @@ export async function refreshCatalog(force = false): Promise<RegisteredModel[]>
|
|
|
400
400
|
} catch (err) {
|
|
401
401
|
logDebug("Failed reading stale catalog cache", { error: String(err) });
|
|
402
402
|
}
|
|
403
|
-
// No valid cache — return in-memory static
|
|
403
|
+
// No valid cache — return in-memory static 27 (host will refresh if needed)
|
|
404
404
|
return aliveCatalog;
|
|
405
405
|
}
|
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 27 free models (8 OpenCode Zen + 19 KiloCode Gateway) 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 27 verified free models:
|
|
5
|
+
* - 8 OpenCode Zen models (2 Responses API + 5 Chat Completions + 1 Anthropic Messages)
|
|
6
6
|
* - 19 KiloCode Keyless Gateway models (18 OpenRouter format + 1 Standard format)
|
|
7
7
|
*/
|
|
8
8
|
|
|
@@ -127,6 +127,19 @@ export const OPENCODE_MODELS: ModelDef[] = [
|
|
|
127
127
|
xhigh: "xhigh",
|
|
128
128
|
max: null,},
|
|
129
129
|
},
|
|
130
|
+
{
|
|
131
|
+
id: "union-alpha",
|
|
132
|
+
name: "Union Alpha Free",
|
|
133
|
+
reasoning: true,
|
|
134
|
+
contextWindow: 262_144,
|
|
135
|
+
maxTokens: 131_072,
|
|
136
|
+
api: "anthropic-messages",
|
|
137
|
+
input: ["text", "image"],
|
|
138
|
+
// No thinkingLevelMap: the effort wire values for this endpoint are
|
|
139
|
+
// unknown, so the host sends no effort param. The model answers
|
|
140
|
+
// anyway (proven live 2026-09-17: POST /zen/v1/messages streams real
|
|
141
|
+
// tokens at zero cost). Followup: probe effort values, then add a map.
|
|
142
|
+
},
|
|
130
143
|
];
|
|
131
144
|
|
|
132
145
|
/**
|
|
@@ -389,7 +402,7 @@ export const KILO_MODEL_IDS = new Set<string>([
|
|
|
389
402
|
]);
|
|
390
403
|
|
|
391
404
|
/**
|
|
392
|
-
* Combined list of all
|
|
405
|
+
* Combined list of all 27 static free models (canonical)
|
|
393
406
|
*/
|
|
394
407
|
export const ALL_MODELS: ModelDef[] = [...OPENCODE_MODELS, ...KILO_MODELS];
|
|
395
408
|
|
package/src/types.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Core type definitions for pi-freeflow
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
export type ProviderApi = "openai-completions" | "openai-responses";
|
|
5
|
+
export type ProviderApi = "openai-completions" | "openai-responses" | "anthropic-messages";
|
|
6
6
|
export type Upstream = "opencode" | "kilo";
|
|
7
7
|
|
|
8
8
|
export type ThinkingLevel =
|