pi-free 2.2.5 → 2.2.7

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
@@ -7,6 +7,37 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [2.2.7] - 2026-07-10
11
+
12
+ ### Added
13
+
14
+ - **AnyAPI provider** — add AnyAPI's OpenAI-compatible gateway with dynamic model discovery, free-model filtering, a 100K-token daily free plan, and `/toggle-anyapi` for switching to the full catalog.
15
+
16
+ ### Changed
17
+
18
+ - **Pi 0.80 compatibility** — update the Pi SDK peer requirements to `>=0.80.0` and refresh the development toolchain dependencies.
19
+
20
+ ### Fixed
21
+
22
+ - **AnyAPI model limits** — enrich context and output limits from models.dev when AnyAPI omits them, avoiding incorrect 4K defaults and migrating existing caches once.
23
+ - **TokenRouter Pi AI compatibility** — use the supported lazy OpenAI completions API path for Pi 0.80.
24
+
25
+ ## [2.2.6] - 2026-07-09
26
+
27
+ ### Changed
28
+
29
+ - **Faster startup (~30x)** — warm-cache load dropped from ~2.1s to ~70ms: providers now serve from a 1-hour disk cache and fetch live only on cold/stale cache. Extends the cache-first pattern (already used by Cline) to kilo, fastrouter, and all OpenAI-compatible fetchers (tokenrouter, zenmux, crofai, deepinfra, sambanova, together, novita, routeway, bai, openmodel); the dynamic built-in phase runs concurrently with the static providers. Thanks @lmilojevicc
30
+ - **Coding-Index debug logging is now opt-in** — `~/.pi/modelmatch.log` previously received one synchronous `appendFileSync` per model per match attempt at startup. Now off by default; set `PI_FREE_BENCHMARK_DEBUG=1` to re-enable. Thanks @lmilojevicc
31
+ - **Config reads are memoized** — `~/.pi/free.json` is parsed once and reused while its mtime is unchanged. Thanks @lmilojevicc
32
+
33
+ ### Fixed
34
+
35
+ - **Cache-poisoning guard** — a transient partial API response (a 200 returning a near-empty list) can no longer overwrite a healthy cached model list; fetches returning < 50% of the cached count keep the existing cache. Thanks @lmilojevicc
36
+
37
+ ### Removed
38
+
39
+ - **Codestral provider** — removed the Codestral provider (`codestral.mistral.ai`). Codestral's free tier is no longer available; use `MISTRAL_API_KEY` with pi's built-in dynamic Mistral provider instead.
40
+
10
41
  ## [2.2.5] - 2026-06-28
11
42
 
12
43
  ### Fixed
package/README.md CHANGED
@@ -14,7 +14,7 @@ Free and paid AI model providers for [Pi](https://pi.dev). Access **free and pai
14
14
 
15
15
  When you install pi-free, it:
16
16
 
17
- 1. **Registers free-tier providers** — Kilo, Cline, LLM7, OpenModel, TokenRouter, and more
17
+ 1. **Registers free-tier providers** — Kilo, Cline, LLM7, OpenModel, TokenRouter, AnyAPI, and more
18
18
  2. **Captures Pi's built-in providers** with free/paid toggles — OpenCode, OpenRouter
19
19
  3. **Fetches models dynamically** — ZenMux, CrofAI, Mistral, Groq, Cerebras, xAI, Hugging Face when API keys are configured
20
20
  4. **Filters to show only free models by default** — paid models hidden until explicitly toggled on
@@ -62,6 +62,7 @@ First run creates `~/.pi/free.json` automatically. Add keys there or use environ
62
62
  ```json
63
63
  {
64
64
  "ollama_api_key": "...",
65
+ "anyapi_api_key": "...",
65
66
  "sambanova_api_key": "...",
66
67
  "deepinfra_api_key": "..."
67
68
  }
@@ -74,7 +75,7 @@ First run creates `~/.pi/free.json` automatically. Add keys there or use environ
74
75
  | Category | Providers |
75
76
  |---|---|
76
77
  | ✅ **Free** | Kilo, Cline, OpenRouter, OpenCode, LLM7, OpenModel, TokenRouter (1 free) |
77
- | 🔄 **Freemium** | Ollama Cloud, SambaNova, Codestral, AgentRouter |
78
+ | 🔄 **Freemium** | AnyAPI, Ollama Cloud, SambaNova |
78
79
  | 💳 **Paid** | ZenMux, CrofAI, DeepInfra, Together, Novita, Routeway, b.ai |
79
80
  | 🔧 **Dynamic** | Mistral, Groq, Cerebras, xAI, Hugging Face, FastRouter |
80
81
 
package/banner.svg CHANGED
@@ -95,7 +95,7 @@
95
95
  <text x="20" y="46" font-family="system-ui, sans-serif" font-size="11" fill="#8b9aaa">Kilo · Cline · OpenCode</text>
96
96
  <text x="20" y="66" font-family="system-ui, sans-serif" font-size="11" fill="#a78bfa">OpenModel · AgentRouter</text>
97
97
  <text x="20" y="86" font-family="system-ui, sans-serif" font-size="11" fill="#8b9aaa">Ollama Cloud · SambaNova</text>
98
- <text x="20" y="106" font-family="system-ui, sans-serif" font-size="11" fill="#8b9aaa">Codestral · LLM7 · Novita</text>
98
+ <text x="20" y="106" font-family="system-ui, sans-serif" font-size="11" fill="#8b9aaa">LLM7 · Novita</text>
99
99
  <text x="20" y="126" font-family="system-ui, sans-serif" font-size="11" fill="#8b9aaa">ZenMux · CrofAI · DeepInfra</text>
100
100
  <text x="20" y="146" font-family="system-ui, sans-serif" font-size="11" fill="#8b9aaa">Together · TokenRouter · FastRouter</text>
101
101
  <text x="20" y="166" font-family="system-ui, sans-serif" font-size="11" fill="#8b9aaa">+ dynamic (Mistral, Groq, …)</text>