pi-free 2.2.4 → 2.2.6

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.
Files changed (35) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +1 -1
  3. package/banner.svg +1 -1
  4. package/config.ts +58 -29
  5. package/constants.ts +1 -4
  6. package/index.ts +30 -24
  7. package/lib/built-in-toggle.ts +185 -18
  8. package/lib/provider-cache.ts +22 -0
  9. package/package.json +74 -74
  10. package/provider-failover/benchmark-lookup.ts +4 -1
  11. package/provider-failover/benchmarks-chunk-0.ts +570 -570
  12. package/provider-failover/benchmarks-chunk-1.ts +676 -676
  13. package/provider-failover/benchmarks-chunk-2.ts +673 -673
  14. package/provider-failover/benchmarks-chunk-3.ts +680 -680
  15. package/provider-failover/benchmarks-chunk-4.ts +683 -683
  16. package/provider-failover/benchmarks-chunk-5.ts +816 -474
  17. package/provider-helper.ts +64 -0
  18. package/providers/bai/bai.ts +8 -2
  19. package/providers/crofai/crofai.ts +8 -2
  20. package/providers/deepinfra/deepinfra.ts +8 -2
  21. package/providers/dynamic-built-in/index.ts +36 -26
  22. package/providers/kilo/kilo.ts +41 -22
  23. package/providers/novita/novita.ts +8 -2
  24. package/providers/openmodel/openmodel.ts +8 -2
  25. package/providers/qoder/models.ts +63 -175
  26. package/providers/qoder/qoder.ts +49 -84
  27. package/providers/qoder/stream.ts +182 -274
  28. package/providers/qoder/transform.ts +5 -2
  29. package/providers/routeway/routeway.ts +8 -2
  30. package/providers/sambanova/sambanova.ts +12 -6
  31. package/providers/together/together.ts +8 -2
  32. package/providers/tokenrouter/tokenrouter.ts +8 -2
  33. package/providers/zenmux/zenmux.ts +8 -2
  34. package/providers/codestral/codestral.ts +0 -128
  35. package/providers/qoder/encoding.ts +0 -48
package/package.json CHANGED
@@ -1,74 +1,74 @@
1
- {
2
- "name": "pi-free",
3
- "version": "2.2.4",
4
- "type": "module",
5
- "description": "AI model providers for Pi with free model filtering and dynamic model fetching",
6
- "keywords": [
7
- "pi-package",
8
- "pi-extension",
9
- "free-models",
10
- "paid-models",
11
- "model-filter",
12
- "nvidia-nim",
13
- "kilo",
14
- "cline",
15
- "zenmux",
16
- "crofai",
17
- "ollama-cloud"
18
- ],
19
- "license": "MIT",
20
- "author": "Apostolos Mantzaris",
21
- "homepage": "https://github.com/apmantza/pi-free#readme",
22
- "bugs": {
23
- "url": "https://github.com/apmantza/pi-free/issues"
24
- },
25
- "repository": {
26
- "type": "git",
27
- "url": "git+https://github.com/apmantza/pi-free.git"
28
- },
29
- "engines": {
30
- "node": ">=20.0.0"
31
- },
32
- "files": [
33
- "index.ts",
34
- "providers/**/*.ts",
35
- "lib/**/*.ts",
36
- "provider-failover/**/*.ts",
37
- "config.ts",
38
- "constants.ts",
39
- "provider-helper.ts",
40
- "README.md",
41
- "LICENSE",
42
- "CHANGELOG.md",
43
- "banner.svg",
44
- "scripts/check-extensions.mjs"
45
- ],
46
- "scripts": {
47
- "audit:prod": "npm audit --omit=dev --audit-level=high",
48
- "check": "node scripts/check-extensions.mjs",
49
- "check:lockfile": "node scripts/check-lockfile-sync.mjs",
50
- "check:tarball": "node scripts/check-tarball.mjs",
51
- "lint": "tsc --noEmit",
52
- "test": "vitest",
53
- "test:ui": "vitest --ui",
54
- "test:run": "vitest run",
55
- "smoke:cline": "tsx scripts/smoke-cline-xml-bridge.ts",
56
- "smoke:openmodel": "tsx scripts/smoke-openmodel-wire-format.ts"
57
- },
58
- "peerDependencies": {
59
- "@earendil-works/pi-ai": "^0.79.8",
60
- "@earendil-works/pi-coding-agent": "^0.79.8",
61
- "@earendil-works/pi-tui": "^0.79.8"
62
- },
63
- "devDependencies": {
64
- "@vitest/ui": "^4.1.5",
65
- "tsx": "^4.0.0",
66
- "typescript": "^6.0.3",
67
- "vitest": "^4.1.5"
68
- },
69
- "pi": {
70
- "extensions": [
71
- "./index.ts"
72
- ]
73
- }
74
- }
1
+ {
2
+ "name": "pi-free",
3
+ "version": "2.2.6",
4
+ "type": "module",
5
+ "description": "AI model providers for Pi with free model filtering and dynamic model fetching",
6
+ "keywords": [
7
+ "pi-package",
8
+ "pi-extension",
9
+ "free-models",
10
+ "paid-models",
11
+ "model-filter",
12
+ "nvidia-nim",
13
+ "kilo",
14
+ "cline",
15
+ "zenmux",
16
+ "crofai",
17
+ "ollama-cloud"
18
+ ],
19
+ "license": "MIT",
20
+ "author": "Apostolos Mantzaris",
21
+ "homepage": "https://github.com/apmantza/pi-free#readme",
22
+ "bugs": {
23
+ "url": "https://github.com/apmantza/pi-free/issues"
24
+ },
25
+ "repository": {
26
+ "type": "git",
27
+ "url": "git+https://github.com/apmantza/pi-free.git"
28
+ },
29
+ "engines": {
30
+ "node": ">=20.0.0"
31
+ },
32
+ "files": [
33
+ "index.ts",
34
+ "providers/**/*.ts",
35
+ "lib/**/*.ts",
36
+ "provider-failover/**/*.ts",
37
+ "config.ts",
38
+ "constants.ts",
39
+ "provider-helper.ts",
40
+ "README.md",
41
+ "LICENSE",
42
+ "CHANGELOG.md",
43
+ "banner.svg",
44
+ "scripts/check-extensions.mjs"
45
+ ],
46
+ "scripts": {
47
+ "audit:prod": "npm audit --omit=dev --audit-level=high",
48
+ "check": "node scripts/check-extensions.mjs",
49
+ "check:lockfile": "node scripts/check-lockfile-sync.mjs",
50
+ "check:tarball": "node scripts/check-tarball.mjs",
51
+ "lint": "tsc --noEmit",
52
+ "test": "vitest",
53
+ "test:ui": "vitest --ui",
54
+ "test:run": "vitest run",
55
+ "smoke:cline": "tsx scripts/smoke-cline-xml-bridge.ts",
56
+ "smoke:openmodel": "tsx scripts/smoke-openmodel-wire-format.ts"
57
+ },
58
+ "peerDependencies": {
59
+ "@earendil-works/pi-ai": "^0.79.8",
60
+ "@earendil-works/pi-coding-agent": "^0.79.8",
61
+ "@earendil-works/pi-tui": "^0.79.8"
62
+ },
63
+ "devDependencies": {
64
+ "@vitest/ui": "^4.1.5",
65
+ "tsx": "^4.0.0",
66
+ "typescript": "^6.0.3",
67
+ "vitest": "^4.1.5"
68
+ },
69
+ "pi": {
70
+ "extensions": [
71
+ "./index.ts"
72
+ ]
73
+ }
74
+ }
@@ -27,7 +27,10 @@ export { HARDCODED_BENCHMARKS, type HardcodedBenchmark };
27
27
 
28
28
  const LOG_DIR = join(homedir(), ".pi");
29
29
  const LOG_FILE = join(LOG_DIR, "modelmatch.log");
30
- let debugEnabled = true;
30
+ // Debug logging writes one sync appendFileSync per model per attempt — far too
31
+ // expensive to leave on during startup (hundreds–thousands of blocking writes).
32
+ // Opt in via PI_FREE_BENCHMARK_DEBUG=1 (or setDebugLogging(true)).
33
+ let debugEnabled = process.env.PI_FREE_BENCHMARK_DEBUG === "1";
31
34
 
32
35
  /**
33
36
  * Enable/disable debug logging