@oh-my-pi/pi-catalog 18.1.14 → 18.1.16
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 +4 -0
- package/dist/types/compat/types.d.ts +4 -0
- package/dist/types/fireworks-model-id.d.ts +4 -4
- package/dist/types/provider-models/descriptors.d.ts +1 -1
- package/dist/types/provider-models/openai-compat.d.ts +3 -2
- package/package.json +4 -4
- package/src/compat/cascade.ts +3 -1
- package/src/compat/delegation.ts +1 -0
- package/src/compat/resolve.ts +1 -0
- package/src/compat/rules/README.md +11 -5
- package/src/compat/rules/auth/firepass.kdl +4 -5
- package/src/compat/rules/classes/gemini.kdl +5 -3
- package/src/compat/rules/providers/firepass.kdl +7 -3
- package/src/compat/rules.json +28 -17
- package/src/compat/types.ts +4 -0
- package/src/fireworks-model-id.ts +4 -4
- package/src/models.json +121 -21
- package/src/provider-models/descriptors.ts +1 -1
- package/src/provider-models/openai-compat.ts +34 -3
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [18.1.16] - 2026-09-09
|
|
6
|
+
|
|
7
|
+
- Updated Fire Pass (`firepass`) login validation probe to `accounts/fireworks/routers/glm-5p2-fast` and bundled `glm-5.2-fast` and `kimi-k3-fast` models in place of decommissioned `kimi-k2.6-turbo` ([#10859](https://github.com/can1357/oh-my-pi/pull/10859) by [@olegpulatov](https://github.com/olegpulatov)).
|
|
8
|
+
|
|
5
9
|
## [18.1.14] - 2026-09-07
|
|
6
10
|
|
|
7
11
|
### Fixed
|
|
@@ -180,6 +180,8 @@ export interface CompiledRule {
|
|
|
180
180
|
source: string;
|
|
181
181
|
class?: string;
|
|
182
182
|
providers?: string[];
|
|
183
|
+
/** Request adapter identifiers matched by an `on-api` selector. */
|
|
184
|
+
apis?: string[];
|
|
183
185
|
family?: string;
|
|
184
186
|
revision?: CompiledRevisionTerm[];
|
|
185
187
|
models?: CompiledSelector[];
|
|
@@ -549,6 +551,8 @@ export interface ModelIdentity {
|
|
|
549
551
|
export interface ResolveTarget {
|
|
550
552
|
/** Deployment provider hosting the model. */
|
|
551
553
|
provider: string;
|
|
554
|
+
/** Request adapter used to serialize the model. */
|
|
555
|
+
api: string;
|
|
552
556
|
/** Centrally classified vendor lineage. */
|
|
553
557
|
class: string;
|
|
554
558
|
/** Classified product family within the class, when known. */
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export declare function toFireworksPublicModelId(modelId: string): string;
|
|
2
2
|
export declare function toFireworksWireModelId(modelId: string): string;
|
|
3
3
|
/**
|
|
4
|
-
* Fire Pass exposes
|
|
5
|
-
*
|
|
6
|
-
* We keep a friendly public id (e.g. `
|
|
7
|
-
* to the wire form (`accounts/fireworks/routers/
|
|
4
|
+
* Fire Pass exposes subscription models through dedicated router endpoints
|
|
5
|
+
* at `accounts/fireworks/routers/<id>` rather than the `models/` namespace.
|
|
6
|
+
* We keep a friendly public id (e.g. `glm-5.2-fast`, `kimi-k3-fast`) in the catalog
|
|
7
|
+
* and translate to the wire form (`accounts/fireworks/routers/glm-5p2-fast`) at request time.
|
|
8
8
|
*/
|
|
9
9
|
export declare function toFirepassPublicModelId(modelId: string): string;
|
|
10
10
|
export declare function toFirepassWireModelId(modelId: string): string;
|
|
@@ -147,7 +147,7 @@ export declare const CATALOG_PROVIDERS: readonly [{
|
|
|
147
147
|
};
|
|
148
148
|
}, {
|
|
149
149
|
readonly id: "firepass";
|
|
150
|
-
readonly defaultModel: "
|
|
150
|
+
readonly defaultModel: "glm-5.2-fast";
|
|
151
151
|
readonly envVars: readonly ["FIREPASS_API_KEY"];
|
|
152
152
|
readonly createModelManagerOptions: (config: ModelManagerConfig) => import("../index.js").ModelManagerOptions<"openai-completions", unknown>;
|
|
153
153
|
}, {
|
|
@@ -332,14 +332,15 @@ export interface FireworksModelManagerConfig {
|
|
|
332
332
|
fetch?: FetchImpl;
|
|
333
333
|
}
|
|
334
334
|
export declare function fireworksModelManagerOptions(config?: FireworksModelManagerConfig): ModelManagerOptions<"openai-completions">;
|
|
335
|
+
export declare const FIREPASS_STATIC_MODELS: readonly ModelSpec<"openai-completions">[];
|
|
335
336
|
export interface FirepassModelManagerConfig {
|
|
336
337
|
apiKey?: string;
|
|
337
338
|
baseUrl?: string;
|
|
338
339
|
fetch?: FetchImpl;
|
|
339
340
|
}
|
|
340
341
|
/**
|
|
341
|
-
* Fire Pass is a Fireworks subscription product that exposes
|
|
342
|
-
*
|
|
342
|
+
* Fire Pass is a Fireworks subscription product that exposes router models
|
|
343
|
+
* (GLM 5.2 Fast, Kimi K3 Fast) under `accounts/fireworks/routers/<id>`.
|
|
343
344
|
* The dedicated `fpk_…` keys do not authorize `/v1/models`, so this manager
|
|
344
345
|
* never performs dynamic discovery — the bundled catalog entry is canonical.
|
|
345
346
|
* See https://docs.fireworks.ai/firepass.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@oh-my-pi/pi-catalog",
|
|
4
|
-
"version": "18.1.
|
|
4
|
+
"version": "18.1.16",
|
|
5
5
|
"description": "Model catalog for omp: bundled model database, provider discovery descriptors, model identity, classification, and equivalence",
|
|
6
6
|
"homepage": "https://omp.sh",
|
|
7
7
|
"author": "Stencil Labs, Inc.",
|
|
@@ -35,12 +35,12 @@
|
|
|
35
35
|
"gen:proto": "bun scripts/generate-protocols.ts"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@oh-my-pi/omptype": "18.1.
|
|
39
|
-
"@oh-my-pi/pi-utils": "18.1.
|
|
38
|
+
"@oh-my-pi/omptype": "18.1.16",
|
|
39
|
+
"@oh-my-pi/pi-utils": "18.1.16"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@bgotink/kdl": "0.4.0",
|
|
43
|
-
"@oh-my-pi/pi-ai": "18.1.
|
|
43
|
+
"@oh-my-pi/pi-ai": "18.1.16",
|
|
44
44
|
"@types/bun": "^1.3.14"
|
|
45
45
|
},
|
|
46
46
|
"engines": {
|
package/src/compat/cascade.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* for one structured model target from the compiled rule tree.
|
|
4
4
|
*
|
|
5
5
|
* Faithful port of the o2 reference resolver (`cascade.rs`): rules are
|
|
6
|
-
* conjunctions over `(class, provider, family, revision, models)`; per axis
|
|
6
|
+
* conjunctions over `(class, provider, api, family, revision, models)`; per axis
|
|
7
7
|
* the matching rule with the greatest `(model-selector exactness,
|
|
8
8
|
* constrained-dimension count, priority)` tuple wins, and an equal-tuple
|
|
9
9
|
* same-axis contest throws {@link AmbiguousOverlapError}. Declaration and
|
|
@@ -74,6 +74,7 @@ function buildRuleIndex(cascade: CompiledCascade): IndexedRule[] {
|
|
|
74
74
|
const dimensions =
|
|
75
75
|
Number(compiled.class !== undefined) +
|
|
76
76
|
Number(compiled.providers !== undefined) +
|
|
77
|
+
Number(compiled.apis !== undefined) +
|
|
77
78
|
Number(compiled.family !== undefined) +
|
|
78
79
|
Number(compiled.revision !== undefined) +
|
|
79
80
|
Number(compiled.models !== undefined);
|
|
@@ -117,6 +118,7 @@ function rankRule(
|
|
|
117
118
|
const { compiled } = rule;
|
|
118
119
|
if (compiled.class !== undefined && compiled.class !== target.class) return undefined;
|
|
119
120
|
if (compiled.providers !== undefined && !compiled.providers.includes(target.provider)) return undefined;
|
|
121
|
+
if (compiled.apis !== undefined && !compiled.apis.includes(target.api)) return undefined;
|
|
120
122
|
if (compiled.family !== undefined && compiled.family !== target.family) return undefined;
|
|
121
123
|
if (rule.revision !== undefined && (!revision || !revisionSatisfies(revision, rule.revision))) return undefined;
|
|
122
124
|
let exactness = 0;
|
package/src/compat/delegation.ts
CHANGED
|
@@ -27,6 +27,7 @@ export function resolveDelegationBias(model: Model): DelegationBias {
|
|
|
27
27
|
const { identity } = model;
|
|
28
28
|
const bias = resolveCascade({
|
|
29
29
|
provider: model.provider,
|
|
30
|
+
api: model.api,
|
|
30
31
|
class: identity.class,
|
|
31
32
|
model: model.id,
|
|
32
33
|
reasoning: Boolean(model.reasoning),
|
package/src/compat/resolve.ts
CHANGED
|
@@ -1173,6 +1173,7 @@ function fillExplicitThinking<TApi extends Api>(
|
|
|
1173
1173
|
function buildResolveTarget<TApi extends Api>(spec: ModelSpec<TApi>, identity: ModelIdentity): ResolveTarget {
|
|
1174
1174
|
const target: ResolveTarget = {
|
|
1175
1175
|
provider: spec.provider,
|
|
1176
|
+
api: spec.api,
|
|
1176
1177
|
class: identity.class,
|
|
1177
1178
|
model: spec.id,
|
|
1178
1179
|
reasoning: Boolean(spec.reasoning),
|
|
@@ -5,7 +5,7 @@ This tree is the checked-in source of model identity and compatibility policy. A
|
|
|
5
5
|
There are three ownership strata:
|
|
6
6
|
|
|
7
7
|
- `taxonomy/*.kdl` defines identity: class membership, product families, revision extraction, reviewed exact corrections, and suffix collapse.
|
|
8
|
-
- `classes/*.kdl` defines model-lineage truths: behavior inherent to a model line, optionally scoped to the providers where the census established it.
|
|
8
|
+
- `classes/*.kdl` defines model-lineage truths: behavior inherent to a model line, optionally scoped to the providers or request adapters where the census established it.
|
|
9
9
|
- `providers/*.kdl` defines deployment contracts: behavior imposed by a host, plus documented per-model residue that taxonomy cannot express exactly.
|
|
10
10
|
- `runtime/behavior.kdl` defines heuristics used before or outside exact model lookup: responses routing, API routes, quota tiers, plan requirements, model limits, roster exclusions, hosted defaults, pricing peers.
|
|
11
11
|
- `auth/<provider>.kdl` defines the provider's auth contract: display name, env-var fallback, credential storage/format, and the declarative login / refresh flow that `@oh-my-pi/pi-ai`'s registry engines interpret (see [Auth grammar](#auth-grammar)).
|
|
@@ -151,10 +151,15 @@ discovery {
|
|
|
151
151
|
|
|
152
152
|
## Cascade grammar
|
|
153
153
|
|
|
154
|
-
A cascade document starts with `class` or `provider`. Every selector adds a conjunct to the current rule. Axis directives may appear directly in any permitted scope, and nested selector blocks may appear alongside them.
|
|
154
|
+
A cascade document starts with `class` or `provider`. Every selector adds a conjunct to the current rule. `on` scopes by deployment provider; `on-api` scopes by request adapter, including custom provider names. Axis directives may appear directly in any permitted scope, and nested selector blocks may appear alongside them.
|
|
155
155
|
|
|
156
156
|
```kdl
|
|
157
157
|
class "gemini" {
|
|
158
|
+
on-api "google-generative-ai" {
|
|
159
|
+
revision ">=3" {
|
|
160
|
+
requires-skip-thought-signature #true
|
|
161
|
+
}
|
|
162
|
+
}
|
|
158
163
|
on "google" "google-vertex" "openrouter" {
|
|
159
164
|
family "flash" {
|
|
160
165
|
revision ">=2.5 <3.8" {
|
|
@@ -175,14 +180,15 @@ provider "openrouter" {
|
|
|
175
180
|
|
|
176
181
|
| Selector | Form | Matching semantics |
|
|
177
182
|
| --- | --- | --- |
|
|
178
|
-
| `class` | `class "id" { ... }` | Exact class ID. At document root it may contain `on`, `family`, `revision`, and `models`. Under `provider` it may contain `family`, `revision`, and `models`. |
|
|
183
|
+
| `class` | `class "id" { ... }` | Exact class ID. At document root it may contain `on`, `on-api`, `family`, `revision`, and `models`. Under `provider` it may contain `family`, `revision`, and `models`. |
|
|
179
184
|
| `provider` | `provider "id" { ... }` | Exact provider ID. It is root-only and may contain `class` and `models`. |
|
|
180
185
|
| `on` | `on "provider-a" "provider-b" { ... }` | One or more provider IDs, combined as OR. It is allowed only under a root `class`, and may contain `family`, `revision`, and `models`. |
|
|
186
|
+
| `on-api` | `on-api "adapter-a" "adapter-b" { ... }` | One or more request adapter IDs, combined as OR. It is allowed only under a root `class`, and may contain `family`, `revision`, and `models`. |
|
|
181
187
|
| `family` | `family "id" { ... }` | Exact classified family ID. It may contain `revision` and `models`. A target with no family does not match. |
|
|
182
188
|
| `revision` | `revision ">=2.5 <4" { ... }` | A non-empty, whitespace-separated conjunction of comparisons. It may contain `models`. A target with no revision does not match. |
|
|
183
189
|
| `models` | `models "id" "vendor/*" { ... }` | One or more alternatives, combined as OR. It cannot contain another selector. `token="name"` matches an ASCII-case-insensitive token bounded by non-alphanumerics. |
|
|
184
190
|
|
|
185
|
-
Class, provider/`on`, and family selector values are compared exactly and case-sensitively to the structured resolve target. Revision operators are `>=`, `>`, `<=`, `<`, and `=`; operands have one to three dot-separated unsigned 8-bit components, omitted components zero.
|
|
191
|
+
Class, provider/`on`, `on-api`, and family selector values are compared exactly and case-sensitively to the structured resolve target. Revision operators are `>=`, `>`, `<=`, `<`, and `=`; operands have one to three dot-separated unsigned 8-bit components, omitted components zero.
|
|
186
192
|
|
|
187
193
|
A `models` string without `*` is an exact, case-sensitive match against the provider-relative model identifier. A string containing `*` is an anchored, ASCII-case-insensitive wildcard match. Prefer taxonomy ranks; retain exact/glob lists only when they isolate the census member set exactly, and keep a `// residue:` comment explaining why ranks do not.
|
|
188
194
|
|
|
@@ -212,7 +218,7 @@ Rules resolve independently per axis. A matching rule is ranked by:
|
|
|
212
218
|
The tuple is compared lexicographically, greatest first:
|
|
213
219
|
|
|
214
220
|
- model exactness is `2` when any matching `models` selector is exact, `1` when the best matching selector is a glob or token, and `0` when the rule has no `models` selector;
|
|
215
|
-
- dimension count is the number of present dimensions among class, provider/`on`, family, revision, and models;
|
|
221
|
+
- dimension count is the number of present dimensions among class, provider/`on`, API/`on-api`, family, revision, and models;
|
|
216
222
|
- priority is the local block's `priority`, defaulting to `0`.
|
|
217
223
|
|
|
218
224
|
The highest-ranked matching assignment wins for that axis. Two distinct rules that tie on all three components and assign the same axis are an ambiguity error even if their values are equal. File and declaration order never resolve the tie; add an explicit priority only after confirming the overlap is intentional.
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
auth "firepass" {
|
|
2
|
-
name "Fire Pass (Fireworks
|
|
2
|
+
name "Fire Pass (Fireworks subscription)"
|
|
3
3
|
login "api-key" {
|
|
4
4
|
// Fire Pass is a Fireworks subscription product whose dedicated `fpk_…` API
|
|
5
|
-
// keys are scoped to
|
|
6
|
-
//
|
|
7
|
-
// pings the chat completions endpoint with the router id directly.
|
|
5
|
+
// keys are scoped to router endpoints. The key does NOT authorize `/v1/models`,
|
|
6
|
+
// so validation pings the chat completions endpoint with the router id directly.
|
|
8
7
|
// See https://docs.fireworks.ai/firepass.
|
|
9
8
|
auth-url "https://app.fireworks.ai/settings/users/api-keys"
|
|
10
9
|
instructions "Create a dedicated Fire Pass API key in the Fireworks dashboard"
|
|
11
10
|
prompt "Paste your Fire Pass API key" placeholder="fpk_..."
|
|
12
|
-
validate "chat-completions" label="Fire Pass" base-url="https://api.fireworks.ai/inference/v1" model="accounts/fireworks/routers/
|
|
11
|
+
validate "chat-completions" label="Fire Pass" base-url="https://api.fireworks.ai/inference/v1" model="accounts/fireworks/routers/glm-5p2-fast"
|
|
13
12
|
}
|
|
14
13
|
}
|
|
@@ -88,9 +88,11 @@ class "gemini" {
|
|
|
88
88
|
// Replaces the Gemini 3+ mandatory-reasoning fallback.
|
|
89
89
|
thinking-requires-effort #true
|
|
90
90
|
}
|
|
91
|
-
// Public Gemini requires the bypass sentinel on every unsigned call
|
|
92
|
-
//
|
|
93
|
-
|
|
91
|
+
// Public Gemini requires the bypass sentinel on every unsigned call and
|
|
92
|
+
// supports function-part ids. Scope by adapter so custom providers using
|
|
93
|
+
// the same wire protocol inherit both contracts. The Cloud Code Assist
|
|
94
|
+
// first-call variant is a host contract in providers/.
|
|
95
|
+
on-api "google-generative-ai" {
|
|
94
96
|
revision ">=3" {
|
|
95
97
|
requires-skip-thought-signature #true
|
|
96
98
|
supports-function-part-id #true
|
|
@@ -7,9 +7,13 @@ provider "firepass" {
|
|
|
7
7
|
}
|
|
8
8
|
// Replaces the Fire Pass wire-model-id dispatch baseline.
|
|
9
9
|
wire-model-id-mode "firepass"
|
|
10
|
-
|
|
11
|
-
models "kimi-k2.6-turbo" {
|
|
12
|
-
thinking-efforts "low" "medium" "high" "xhigh" "max"
|
|
10
|
+
class "glm" priority=1 {
|
|
13
11
|
thinking-mode "effort"
|
|
12
|
+
thinking-efforts "minimal" "low" "medium" "high" "max"
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
class "kimi" priority=1 {
|
|
16
|
+
thinking-mode "effort"
|
|
17
|
+
thinking-efforts "low" "high" "max"
|
|
14
18
|
}
|
|
15
19
|
}
|
package/src/compat/rules.json
CHANGED
|
@@ -4822,11 +4822,10 @@
|
|
|
4822
4822
|
}
|
|
4823
4823
|
},
|
|
4824
4824
|
{
|
|
4825
|
-
"source": "classes/gemini.kdl:
|
|
4825
|
+
"source": "classes/gemini.kdl:96",
|
|
4826
4826
|
"class": "gemini",
|
|
4827
|
-
"
|
|
4828
|
-
"google"
|
|
4829
|
-
"opencode-zen"
|
|
4827
|
+
"apis": [
|
|
4828
|
+
"google-generative-ai"
|
|
4830
4829
|
],
|
|
4831
4830
|
"revision": [
|
|
4832
4831
|
{
|
|
@@ -4840,7 +4839,7 @@
|
|
|
4840
4839
|
}
|
|
4841
4840
|
},
|
|
4842
4841
|
{
|
|
4843
|
-
"source": "classes/gemini.kdl:
|
|
4842
|
+
"source": "classes/gemini.kdl:102",
|
|
4844
4843
|
"class": "gemini",
|
|
4845
4844
|
"providers": [
|
|
4846
4845
|
"google-antigravity",
|
|
@@ -7997,25 +7996,37 @@
|
|
|
7997
7996
|
}
|
|
7998
7997
|
},
|
|
7999
7998
|
{
|
|
8000
|
-
"source": "providers/firepass.kdl:
|
|
7999
|
+
"source": "providers/firepass.kdl:10",
|
|
8000
|
+
"class": "glm",
|
|
8001
8001
|
"providers": [
|
|
8002
8002
|
"firepass"
|
|
8003
8003
|
],
|
|
8004
|
-
"
|
|
8005
|
-
{
|
|
8006
|
-
"kind": "exact",
|
|
8007
|
-
"value": "kimi-k2.6-turbo"
|
|
8008
|
-
}
|
|
8009
|
-
],
|
|
8004
|
+
"priority": 1,
|
|
8010
8005
|
"thinking": {
|
|
8006
|
+
"mode": "effort",
|
|
8011
8007
|
"efforts": [
|
|
8008
|
+
"minimal",
|
|
8012
8009
|
"low",
|
|
8013
8010
|
"medium",
|
|
8014
8011
|
"high",
|
|
8015
|
-
"xhigh",
|
|
8016
8012
|
"max"
|
|
8017
|
-
]
|
|
8018
|
-
|
|
8013
|
+
]
|
|
8014
|
+
}
|
|
8015
|
+
},
|
|
8016
|
+
{
|
|
8017
|
+
"source": "providers/firepass.kdl:15",
|
|
8018
|
+
"class": "kimi",
|
|
8019
|
+
"providers": [
|
|
8020
|
+
"firepass"
|
|
8021
|
+
],
|
|
8022
|
+
"priority": 1,
|
|
8023
|
+
"thinking": {
|
|
8024
|
+
"mode": "effort",
|
|
8025
|
+
"efforts": [
|
|
8026
|
+
"low",
|
|
8027
|
+
"high",
|
|
8028
|
+
"max"
|
|
8029
|
+
]
|
|
8019
8030
|
}
|
|
8020
8031
|
},
|
|
8021
8032
|
{
|
|
@@ -16406,7 +16417,7 @@
|
|
|
16406
16417
|
{
|
|
16407
16418
|
"id": "firepass",
|
|
16408
16419
|
"apiKeyFormat": "bearer",
|
|
16409
|
-
"name": "Fire Pass (Fireworks
|
|
16420
|
+
"name": "Fire Pass (Fireworks subscription)",
|
|
16410
16421
|
"login": {
|
|
16411
16422
|
"kind": "api-key",
|
|
16412
16423
|
"authUrl": "https://app.fireworks.ai/settings/users/api-keys",
|
|
@@ -16417,7 +16428,7 @@
|
|
|
16417
16428
|
"kind": "chat-completions",
|
|
16418
16429
|
"label": "Fire Pass",
|
|
16419
16430
|
"baseUrl": "https://api.fireworks.ai/inference/v1",
|
|
16420
|
-
"model": "accounts/fireworks/routers/
|
|
16431
|
+
"model": "accounts/fireworks/routers/glm-5p2-fast"
|
|
16421
16432
|
}
|
|
16422
16433
|
}
|
|
16423
16434
|
},
|
package/src/compat/types.ts
CHANGED
|
@@ -198,6 +198,8 @@ export interface CompiledRule {
|
|
|
198
198
|
source: string;
|
|
199
199
|
class?: string;
|
|
200
200
|
providers?: string[];
|
|
201
|
+
/** Request adapter identifiers matched by an `on-api` selector. */
|
|
202
|
+
apis?: string[];
|
|
201
203
|
family?: string;
|
|
202
204
|
revision?: CompiledRevisionTerm[];
|
|
203
205
|
models?: CompiledSelector[];
|
|
@@ -568,6 +570,8 @@ export interface ModelIdentity {
|
|
|
568
570
|
export interface ResolveTarget {
|
|
569
571
|
/** Deployment provider hosting the model. */
|
|
570
572
|
provider: string;
|
|
573
|
+
/** Request adapter used to serialize the model. */
|
|
574
|
+
api: string;
|
|
571
575
|
/** Centrally classified vendor lineage. */
|
|
572
576
|
class: string;
|
|
573
577
|
/** Classified product family within the class, when known. */
|
|
@@ -14,10 +14,10 @@ export function toFireworksWireModelId(modelId: string): string {
|
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
|
-
* Fire Pass exposes
|
|
18
|
-
*
|
|
19
|
-
* We keep a friendly public id (e.g. `
|
|
20
|
-
* to the wire form (`accounts/fireworks/routers/
|
|
17
|
+
* Fire Pass exposes subscription models through dedicated router endpoints
|
|
18
|
+
* at `accounts/fireworks/routers/<id>` rather than the `models/` namespace.
|
|
19
|
+
* We keep a friendly public id (e.g. `glm-5.2-fast`, `kimi-k3-fast`) in the catalog
|
|
20
|
+
* and translate to the wire form (`accounts/fireworks/routers/glm-5p2-fast`) at request time.
|
|
21
21
|
*/
|
|
22
22
|
export function toFirepassPublicModelId(modelId: string): string {
|
|
23
23
|
const stripped = modelId.startsWith(FIREPASS_WIRE_PREFIX) ? modelId.slice(FIREPASS_WIRE_PREFIX.length) : modelId;
|
package/src/models.json
CHANGED
|
@@ -70726,41 +70726,138 @@
|
|
|
70726
70726
|
}
|
|
70727
70727
|
},
|
|
70728
70728
|
"firepass": {
|
|
70729
|
-
"
|
|
70730
|
-
"id": "
|
|
70731
|
-
"name": "
|
|
70729
|
+
"glm-5.2-fast": {
|
|
70730
|
+
"id": "glm-5.2-fast",
|
|
70731
|
+
"name": "GLM 5.2 Fast (Fire Pass)",
|
|
70732
70732
|
"api": "openai-completions",
|
|
70733
70733
|
"provider": "firepass",
|
|
70734
70734
|
"baseUrl": "https://api.fireworks.ai/inference/v1",
|
|
70735
70735
|
"reasoning": true,
|
|
70736
70736
|
"input": [
|
|
70737
|
-
"text"
|
|
70738
|
-
"image"
|
|
70737
|
+
"text"
|
|
70739
70738
|
],
|
|
70740
70739
|
"cost": {
|
|
70741
|
-
"input":
|
|
70742
|
-
"output":
|
|
70743
|
-
"cacheRead": 0,
|
|
70740
|
+
"input": 2.1,
|
|
70741
|
+
"output": 6.6,
|
|
70742
|
+
"cacheRead": 0.21,
|
|
70744
70743
|
"cacheWrite": 0
|
|
70745
70744
|
},
|
|
70746
|
-
"contextWindow":
|
|
70747
|
-
"maxTokens":
|
|
70745
|
+
"contextWindow": 1048576,
|
|
70746
|
+
"maxTokens": 131072,
|
|
70747
|
+
"identity": {
|
|
70748
|
+
"class": "glm",
|
|
70749
|
+
"revision": "5.2.0"
|
|
70750
|
+
},
|
|
70751
|
+
"requiresGlyphTokenization": false,
|
|
70752
|
+
"tokenizer": "glm5",
|
|
70748
70753
|
"thinking": {
|
|
70749
70754
|
"mode": "effort",
|
|
70750
70755
|
"efforts": [
|
|
70756
|
+
"minimal",
|
|
70751
70757
|
"low",
|
|
70752
70758
|
"medium",
|
|
70753
70759
|
"high",
|
|
70754
|
-
"xhigh",
|
|
70755
70760
|
"max"
|
|
70756
|
-
]
|
|
70761
|
+
],
|
|
70762
|
+
"effortMap": {
|
|
70763
|
+
"minimal": "none"
|
|
70764
|
+
}
|
|
70757
70765
|
},
|
|
70758
|
-
"
|
|
70759
|
-
"
|
|
70766
|
+
"supportsComputerUse": false,
|
|
70767
|
+
"compat": {
|
|
70768
|
+
"supportsStore": false,
|
|
70769
|
+
"supportsDeveloperRole": false,
|
|
70770
|
+
"supportsMultipleSystemMessages": true,
|
|
70771
|
+
"supportsReasoningEffort": true,
|
|
70772
|
+
"supportsReasoningParams": true,
|
|
70773
|
+
"supportsSamplingParams": true,
|
|
70774
|
+
"supportsPenaltyAndStopParams": true,
|
|
70775
|
+
"reasoningEffortMap": {},
|
|
70776
|
+
"supportsUsageInStreaming": true,
|
|
70777
|
+
"alwaysSendMaxTokens": false,
|
|
70778
|
+
"disableReasoningOnForcedToolChoice": false,
|
|
70779
|
+
"disableReasoningOnToolChoice": false,
|
|
70780
|
+
"supportsToolChoice": true,
|
|
70781
|
+
"supportsForcedToolChoice": true,
|
|
70782
|
+
"supportsNamedToolChoice": true,
|
|
70783
|
+
"maxTokensField": "max_tokens",
|
|
70784
|
+
"requiresToolResultName": false,
|
|
70785
|
+
"requiresAssistantAfterToolResult": false,
|
|
70786
|
+
"requiresThinkingAsText": false,
|
|
70787
|
+
"requiresMistralToolIds": false,
|
|
70788
|
+
"thinkingFormat": "openai",
|
|
70789
|
+
"reasoningDisableMode": "lowest-effort",
|
|
70790
|
+
"omitReasoningEffort": false,
|
|
70791
|
+
"includeEncryptedReasoning": true,
|
|
70792
|
+
"filterReasoningHistory": false,
|
|
70793
|
+
"reasoningContentField": "reasoning_content",
|
|
70794
|
+
"requiresReasoningContentForToolCalls": false,
|
|
70795
|
+
"requiresReasoningContentForAllAssistantTurns": false,
|
|
70796
|
+
"allowsSyntheticReasoningContentForToolCalls": true,
|
|
70797
|
+
"replayReasoningContent": false,
|
|
70798
|
+
"qwenPreserveThinking": false,
|
|
70799
|
+
"qwenTemplateReasoningEffort": false,
|
|
70800
|
+
"requiresAssistantContentForToolCalls": false,
|
|
70801
|
+
"supportsPromptCacheBreakpoints": false,
|
|
70802
|
+
"isOpenRouterHost": false,
|
|
70803
|
+
"wireModelIdMode": "firepass",
|
|
70804
|
+
"isVercelGatewayHost": false,
|
|
70805
|
+
"supportsStrictMode": false,
|
|
70806
|
+
"toolStrictMode": "mixed",
|
|
70807
|
+
"stripDeepseekSpecialTokens": false,
|
|
70808
|
+
"streamMarkupHealingPattern": "thinking",
|
|
70809
|
+
"reasoningDeltasMayBeCumulative": false,
|
|
70810
|
+
"emptyLengthFinishIsContextError": false,
|
|
70811
|
+
"usesOpenAIToolCallIdLimit": false,
|
|
70812
|
+
"dropThinkingWhenReasoningEffort": false,
|
|
70813
|
+
"nativeKimiK3Reasoning": false,
|
|
70814
|
+
"zaiReasoningEffortDialect": false,
|
|
70815
|
+
"clampOutputToModelMax": false,
|
|
70816
|
+
"stripImageInput": false,
|
|
70817
|
+
"rejectRootObjectUnion": false,
|
|
70818
|
+
"retryWithoutStrictOnGrammarError": false,
|
|
70819
|
+
"supportsPromptCacheKey": false
|
|
70820
|
+
}
|
|
70821
|
+
},
|
|
70822
|
+
"kimi-k3-fast": {
|
|
70823
|
+
"id": "kimi-k3-fast",
|
|
70824
|
+
"name": "Kimi K3 Fast (Fire Pass)",
|
|
70825
|
+
"api": "openai-completions",
|
|
70826
|
+
"provider": "firepass",
|
|
70827
|
+
"baseUrl": "https://api.fireworks.ai/inference/v1",
|
|
70828
|
+
"reasoning": true,
|
|
70829
|
+
"input": [
|
|
70830
|
+
"text",
|
|
70831
|
+
"image"
|
|
70832
|
+
],
|
|
70833
|
+
"cost": {
|
|
70834
|
+
"input": 4.5,
|
|
70835
|
+
"output": 22.5,
|
|
70836
|
+
"cacheRead": 0.45,
|
|
70837
|
+
"cacheWrite": 0
|
|
70838
|
+
},
|
|
70839
|
+
"contextWindow": 1048576,
|
|
70840
|
+
"maxTokens": 131072,
|
|
70760
70841
|
"identity": {
|
|
70761
70842
|
"class": "kimi",
|
|
70762
|
-
"family": "
|
|
70843
|
+
"family": "k3"
|
|
70763
70844
|
},
|
|
70845
|
+
"requiresGlyphTokenization": false,
|
|
70846
|
+
"tokenizer": "kimi-k2",
|
|
70847
|
+
"thinking": {
|
|
70848
|
+
"mode": "effort",
|
|
70849
|
+
"efforts": [
|
|
70850
|
+
"low",
|
|
70851
|
+
"high",
|
|
70852
|
+
"max"
|
|
70853
|
+
],
|
|
70854
|
+
"defaultLevel": "max",
|
|
70855
|
+
"effortMap": {
|
|
70856
|
+
"max": "max"
|
|
70857
|
+
},
|
|
70858
|
+
"requiresEffort": true
|
|
70859
|
+
},
|
|
70860
|
+
"supportsComputerUse": false,
|
|
70764
70861
|
"compat": {
|
|
70765
70862
|
"supportsStore": false,
|
|
70766
70863
|
"supportsDeveloperRole": false,
|
|
@@ -70769,7 +70866,12 @@
|
|
|
70769
70866
|
"supportsReasoningParams": true,
|
|
70770
70867
|
"supportsSamplingParams": true,
|
|
70771
70868
|
"supportsPenaltyAndStopParams": true,
|
|
70772
|
-
"reasoningEffortMap": {
|
|
70869
|
+
"reasoningEffortMap": {
|
|
70870
|
+
"minimal": "low",
|
|
70871
|
+
"medium": "high",
|
|
70872
|
+
"xhigh": "max",
|
|
70873
|
+
"max": "max"
|
|
70874
|
+
},
|
|
70773
70875
|
"supportsUsageInStreaming": true,
|
|
70774
70876
|
"alwaysSendMaxTokens": true,
|
|
70775
70877
|
"disableReasoningOnForcedToolChoice": true,
|
|
@@ -70802,9 +70904,8 @@
|
|
|
70802
70904
|
"supportsStrictMode": false,
|
|
70803
70905
|
"toolStrictMode": "mixed",
|
|
70804
70906
|
"toolSchemaFlavor": "moonshot-mfjs",
|
|
70805
|
-
"streamIdleTimeoutMs": 300000,
|
|
70806
70907
|
"stripDeepseekSpecialTokens": false,
|
|
70807
|
-
"streamMarkupHealingPattern": "
|
|
70908
|
+
"streamMarkupHealingPattern": "thinking",
|
|
70808
70909
|
"reasoningDeltasMayBeCumulative": false,
|
|
70809
70910
|
"emptyLengthFinishIsContextError": false,
|
|
70810
70911
|
"usesOpenAIToolCallIdLimit": false,
|
|
@@ -70816,8 +70917,7 @@
|
|
|
70816
70917
|
"rejectRootObjectUnion": false,
|
|
70817
70918
|
"retryWithoutStrictOnGrammarError": false,
|
|
70818
70919
|
"supportsPromptCacheKey": false
|
|
70819
|
-
}
|
|
70820
|
-
"supportsComputerUse": false
|
|
70920
|
+
}
|
|
70821
70921
|
}
|
|
70822
70922
|
},
|
|
70823
70923
|
"fireworks": {
|
|
@@ -390874,4 +390974,4 @@
|
|
|
390874
390974
|
}
|
|
390875
390975
|
}
|
|
390876
390976
|
}
|
|
390877
|
-
}
|
|
390977
|
+
}
|
|
@@ -196,7 +196,7 @@ export const CATALOG_PROVIDERS = [
|
|
|
196
196
|
},
|
|
197
197
|
{
|
|
198
198
|
id: "firepass",
|
|
199
|
-
defaultModel: "
|
|
199
|
+
defaultModel: "glm-5.2-fast",
|
|
200
200
|
envVars: ["FIREPASS_API_KEY"],
|
|
201
201
|
createModelManagerOptions: (config: ModelManagerConfig) => firepassModelManagerOptions(config),
|
|
202
202
|
},
|
|
@@ -2432,9 +2432,40 @@ export function fireworksModelManagerOptions(
|
|
|
2432
2432
|
}
|
|
2433
2433
|
|
|
2434
2434
|
// ---------------------------------------------------------------------------
|
|
2435
|
-
// 7.6 Fire Pass (Fireworks
|
|
2435
|
+
// 7.6 Fire Pass (Fireworks subscription)
|
|
2436
2436
|
// ---------------------------------------------------------------------------
|
|
2437
2437
|
|
|
2438
|
+
// Pricing and limits are the published Fire Pass router tariff
|
|
2439
|
+
// (https://docs.fireworks.ai/firepass), not upstream-discoverable: dedicated
|
|
2440
|
+
// `fpk_…` keys never authorize `/v1/models`, so this seed is the authoritative
|
|
2441
|
+
// source. cacheRead is 0.1x input; cacheWrite stays 0 (not billed separately).
|
|
2442
|
+
export const FIREPASS_STATIC_MODELS: readonly ModelSpec<"openai-completions">[] = [
|
|
2443
|
+
{
|
|
2444
|
+
id: "glm-5.2-fast",
|
|
2445
|
+
name: "GLM 5.2 Fast (Fire Pass)",
|
|
2446
|
+
api: "openai-completions",
|
|
2447
|
+
provider: "firepass",
|
|
2448
|
+
baseUrl: "https://api.fireworks.ai/inference/v1",
|
|
2449
|
+
reasoning: true,
|
|
2450
|
+
input: ["text"],
|
|
2451
|
+
cost: { input: 2.1, output: 6.6, cacheRead: 0.21, cacheWrite: 0 },
|
|
2452
|
+
contextWindow: 1_048_576,
|
|
2453
|
+
maxTokens: 131_072,
|
|
2454
|
+
},
|
|
2455
|
+
{
|
|
2456
|
+
id: "kimi-k3-fast",
|
|
2457
|
+
name: "Kimi K3 Fast (Fire Pass)",
|
|
2458
|
+
api: "openai-completions",
|
|
2459
|
+
provider: "firepass",
|
|
2460
|
+
baseUrl: "https://api.fireworks.ai/inference/v1",
|
|
2461
|
+
reasoning: true,
|
|
2462
|
+
input: ["text", "image"],
|
|
2463
|
+
cost: { input: 4.5, output: 22.5, cacheRead: 0.45, cacheWrite: 0 },
|
|
2464
|
+
contextWindow: 1_048_576,
|
|
2465
|
+
maxTokens: 131_072,
|
|
2466
|
+
},
|
|
2467
|
+
];
|
|
2468
|
+
|
|
2438
2469
|
export interface FirepassModelManagerConfig {
|
|
2439
2470
|
apiKey?: string;
|
|
2440
2471
|
baseUrl?: string;
|
|
@@ -2442,8 +2473,8 @@ export interface FirepassModelManagerConfig {
|
|
|
2442
2473
|
}
|
|
2443
2474
|
|
|
2444
2475
|
/**
|
|
2445
|
-
* Fire Pass is a Fireworks subscription product that exposes
|
|
2446
|
-
*
|
|
2476
|
+
* Fire Pass is a Fireworks subscription product that exposes router models
|
|
2477
|
+
* (GLM 5.2 Fast, Kimi K3 Fast) under `accounts/fireworks/routers/<id>`.
|
|
2447
2478
|
* The dedicated `fpk_…` keys do not authorize `/v1/models`, so this manager
|
|
2448
2479
|
* never performs dynamic discovery — the bundled catalog entry is canonical.
|
|
2449
2480
|
* See https://docs.fireworks.ai/firepass.
|