pi-free 2.0.15 → 2.1.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 +100 -3
- package/README.md +64 -79
- package/banner.svg +21 -36
- package/config.ts +123 -9
- package/constants.ts +3 -9
- package/index.ts +14 -15
- package/lib/built-in-toggle.ts +29 -56
- package/lib/json-persistence.ts +90 -22
- package/lib/logger.ts +21 -12
- package/lib/model-detection.ts +2 -12
- package/lib/model-enhancer.ts +11 -2
- package/lib/model-metadata.ts +387 -0
- package/lib/open-browser.ts +74 -24
- package/lib/paths.ts +90 -0
- package/lib/probe-cache.ts +19 -19
- package/lib/provider-cache.ts +74 -28
- package/lib/provider-compat.ts +53 -37
- package/lib/provider-probe.ts +188 -0
- package/lib/registry.ts +1 -5
- package/lib/session-start-metrics.ts +46 -0
- package/lib/telemetry.ts +115 -86
- package/lib/types.ts +22 -2
- package/lib/util.ts +80 -21
- package/package.json +7 -2
- package/provider-failover/benchmark-lookup.ts +17 -5
- package/provider-helper.ts +12 -27
- package/providers/cline/cline-models.ts +7 -1
- package/providers/cline/cline-xml-bridge.ts +1471 -0
- package/providers/cline/cline.ts +67 -199
- package/providers/codestral/codestral.ts +0 -11
- package/providers/crofai/crofai.ts +6 -1
- package/providers/deepinfra/deepinfra.ts +69 -2
- package/providers/dynamic-built-in/index.ts +237 -22
- package/providers/kilo/kilo-models.ts +3 -1
- package/providers/kilo/kilo.ts +270 -60
- package/providers/model-fetcher.ts +18 -55
- package/providers/novita/novita.ts +69 -2
- package/providers/ollama/ollama.ts +47 -36
- package/providers/opencode-session.ts +67 -2
- package/providers/routeway/routeway.ts +25 -17
- package/providers/sambanova/sambanova.ts +67 -1
- package/providers/together/together.ts +69 -2
- package/providers/tokenrouter/tokenrouter.ts +634 -0
- package/providers/zenmux/zenmux.ts +6 -1
- package/scripts/check-extensions.mjs +32 -16
- package/providers/nvidia/nvidia.ts +0 -510
package/provider-helper.ts
CHANGED
|
@@ -17,6 +17,10 @@ import { enhanceModelNameWithCodingIndex } from "./provider-failover/benchmark-l
|
|
|
17
17
|
|
|
18
18
|
const _logger = createLogger("provider-helper");
|
|
19
19
|
|
|
20
|
+
type ModelsDevEnrichedMetadata = {
|
|
21
|
+
modelsDev?: Parameters<typeof enhanceModelNameWithCodingIndex>[3];
|
|
22
|
+
};
|
|
23
|
+
|
|
20
24
|
// =============================================================================
|
|
21
25
|
// Types
|
|
22
26
|
// =============================================================================
|
|
@@ -78,12 +82,17 @@ export interface OpenAICompatibleConfig {
|
|
|
78
82
|
* Use this for direct provider registration (not through setupProvider)
|
|
79
83
|
*/
|
|
80
84
|
export function enhanceWithCI(
|
|
81
|
-
models: ProviderModelConfig
|
|
85
|
+
models: Array<ProviderModelConfig & ModelsDevEnrichedMetadata>,
|
|
82
86
|
providerId?: string,
|
|
83
87
|
): ProviderModelConfig[] {
|
|
84
88
|
return models.map((m) => ({
|
|
85
89
|
...m,
|
|
86
|
-
name: enhanceModelNameWithCodingIndex(
|
|
90
|
+
name: enhanceModelNameWithCodingIndex(
|
|
91
|
+
m.name,
|
|
92
|
+
m.id,
|
|
93
|
+
providerId,
|
|
94
|
+
m.modelsDev,
|
|
95
|
+
),
|
|
87
96
|
}));
|
|
88
97
|
}
|
|
89
98
|
|
|
@@ -213,31 +222,7 @@ export function setupProvider(
|
|
|
213
222
|
});
|
|
214
223
|
}
|
|
215
224
|
|
|
216
|
-
// ──
|
|
217
|
-
|
|
218
|
-
pi.on("model_select", (_event, ctx) => {
|
|
219
|
-
if (_event.model?.provider !== providerId) {
|
|
220
|
-
ctx.ui.setStatus(`${providerId}-status`, undefined);
|
|
221
|
-
return;
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
// Build status line for this provider
|
|
225
|
-
const free = stored.free.length;
|
|
226
|
-
const total = stored.all.length || free;
|
|
227
|
-
const paid = total - free;
|
|
228
|
-
let status: string;
|
|
229
|
-
|
|
230
|
-
if (paid === 0) {
|
|
231
|
-
status = `${providerId}: ${free} free models`;
|
|
232
|
-
} else if (currentShowPaid) {
|
|
233
|
-
status = `${providerId}: ${total} models (free + paid)`;
|
|
234
|
-
} else {
|
|
235
|
-
status = `${providerId}: ${free} free · ${paid} paid`;
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
if (config.hasKey) status += " 🔑";
|
|
239
|
-
ctx.ui.setStatus(`${providerId}-status`, status);
|
|
240
|
-
});
|
|
225
|
+
// ── Model count status bar removed (keeps footer clean) ───────
|
|
241
226
|
|
|
242
227
|
// ── Error handling / usage tracking are temporarily deprecated ─────────
|
|
243
228
|
|
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
PROVIDER_CLINE,
|
|
15
15
|
} from "../../constants.ts";
|
|
16
16
|
import type { ProviderModelConfig } from "../../lib/types.ts";
|
|
17
|
+
import { safeEnrichModelsWithModelsDev } from "../../lib/model-metadata.ts";
|
|
17
18
|
import { getProxyModelCompat } from "../../lib/provider-compat.ts";
|
|
18
19
|
import { cleanModelName, fetchWithRetry } from "../../lib/util.ts";
|
|
19
20
|
|
|
@@ -243,7 +244,12 @@ export async function fetchClineModels(
|
|
|
243
244
|
? models.filter((m) => m.cost.input === 0 && m.cost.output === 0)
|
|
244
245
|
: models;
|
|
245
246
|
|
|
246
|
-
return applyHidden(
|
|
247
|
+
return applyHidden(
|
|
248
|
+
await safeEnrichModelsWithModelsDev(filtered, {
|
|
249
|
+
providerId: PROVIDER_CLINE,
|
|
250
|
+
}),
|
|
251
|
+
PROVIDER_CLINE,
|
|
252
|
+
);
|
|
247
253
|
}
|
|
248
254
|
|
|
249
255
|
/**
|