@x12i/ai-profiles 4.3.0 → 4.4.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/README.md +39 -32
- package/dist/buildCatalogFromOpenRouterApi.d.ts +3 -1
- package/dist/buildCatalogFromOpenRouterApi.d.ts.map +1 -1
- package/dist/buildCatalogFromOpenRouterApi.js +11 -69
- package/dist/buildCatalogFromOpenRouterApi.js.map +1 -1
- package/dist/constants.d.ts +5 -3
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +15 -2
- package/dist/constants.js.map +1 -1
- package/dist/data/models-catalog.json +5036 -2055
- package/dist/data/models-profiles.json +3442 -866
- package/dist/data/models-registry.json +4594 -2772
- package/dist/ensureRemoteOpenRouterBackend.d.ts +4 -0
- package/dist/ensureRemoteOpenRouterBackend.d.ts.map +1 -0
- package/dist/ensureRemoteOpenRouterBackend.js +33 -0
- package/dist/ensureRemoteOpenRouterBackend.js.map +1 -0
- package/dist/evidence/adapterTypes.d.ts +14 -0
- package/dist/evidence/adapterTypes.d.ts.map +1 -0
- package/dist/evidence/adapterTypes.js +2 -0
- package/dist/evidence/adapterTypes.js.map +1 -0
- package/dist/evidence/adapters.d.ts +28 -0
- package/dist/evidence/adapters.d.ts.map +1 -0
- package/dist/evidence/adapters.js +102 -0
- package/dist/evidence/adapters.js.map +1 -0
- package/dist/evidence/index.d.ts +13 -0
- package/dist/evidence/index.d.ts.map +1 -0
- package/dist/evidence/index.js +9 -0
- package/dist/evidence/index.js.map +1 -0
- package/dist/evidence/local/probes.d.ts +58 -0
- package/dist/evidence/local/probes.d.ts.map +1 -0
- package/dist/evidence/local/probes.js +210 -0
- package/dist/evidence/local/probes.js.map +1 -0
- package/dist/evidence/openRouter.d.ts +11 -0
- package/dist/evidence/openRouter.d.ts.map +1 -0
- package/dist/evidence/openRouter.js +80 -0
- package/dist/evidence/openRouter.js.map +1 -0
- package/dist/evidence/patch.d.ts +8 -0
- package/dist/evidence/patch.d.ts.map +1 -0
- package/dist/evidence/patch.js +50 -0
- package/dist/evidence/patch.js.map +1 -0
- package/dist/evidence/recommend.d.ts +20 -0
- package/dist/evidence/recommend.d.ts.map +1 -0
- package/dist/evidence/recommend.js +142 -0
- package/dist/evidence/recommend.js.map +1 -0
- package/dist/evidence/refreshModelEvidence.d.ts +25 -0
- package/dist/evidence/refreshModelEvidence.d.ts.map +1 -0
- package/dist/evidence/refreshModelEvidence.js +104 -0
- package/dist/evidence/refreshModelEvidence.js.map +1 -0
- package/dist/evidence/scoreModelForTask.d.ts +13 -0
- package/dist/evidence/scoreModelForTask.d.ts.map +1 -0
- package/dist/evidence/scoreModelForTask.js +137 -0
- package/dist/evidence/scoreModelForTask.js.map +1 -0
- package/dist/evidence/scoringConfig.d.ts +11 -0
- package/dist/evidence/scoringConfig.d.ts.map +1 -0
- package/dist/evidence/scoringConfig.js +259 -0
- package/dist/evidence/scoringConfig.js.map +1 -0
- package/dist/evidence/types.d.ts +218 -0
- package/dist/evidence/types.d.ts.map +1 -0
- package/dist/evidence/types.js +2 -0
- package/dist/evidence/types.js.map +1 -0
- package/dist/finalProfileModelMappingPatch.d.ts +31 -0
- package/dist/finalProfileModelMappingPatch.d.ts.map +1 -0
- package/dist/finalProfileModelMappingPatch.js +405 -0
- package/dist/finalProfileModelMappingPatch.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/inferModelFamily.d.ts +8 -0
- package/dist/inferModelFamily.d.ts.map +1 -0
- package/dist/inferModelFamily.js +242 -0
- package/dist/inferModelFamily.js.map +1 -0
- package/dist/modelIdentity.d.ts.map +1 -1
- package/dist/modelIdentity.js +2 -1
- package/dist/modelIdentity.js.map +1 -1
- package/dist/modelsCatalog.d.ts +2 -2
- package/dist/modelsCatalog.d.ts.map +1 -1
- package/dist/modelsCatalog.js +36 -34
- package/dist/modelsCatalog.js.map +1 -1
- package/dist/openRouterProviderMap.d.ts +57 -0
- package/dist/openRouterProviderMap.d.ts.map +1 -0
- package/dist/openRouterProviderMap.js +120 -0
- package/dist/openRouterProviderMap.js.map +1 -0
- package/dist/profileRegistryV3.d.ts.map +1 -1
- package/dist/profileRegistryV3.js +30 -23
- package/dist/profileRegistryV3.js.map +1 -1
- package/dist/resolveInstructionTierAndBackend.d.ts.map +1 -1
- package/dist/resolveInstructionTierAndBackend.js +18 -5
- package/dist/resolveInstructionTierAndBackend.js.map +1 -1
- package/dist/resolveLocalRuntime.d.ts +22 -0
- package/dist/resolveLocalRuntime.d.ts.map +1 -0
- package/dist/resolveLocalRuntime.js +60 -0
- package/dist/resolveLocalRuntime.js.map +1 -0
- package/dist/resolveModelRouting.d.ts.map +1 -1
- package/dist/resolveModelRouting.js +8 -1
- package/dist/resolveModelRouting.js.map +1 -1
- package/dist/sourceCatalogProviders.d.ts +9 -0
- package/dist/sourceCatalogProviders.d.ts.map +1 -0
- package/dist/sourceCatalogProviders.js +51 -0
- package/dist/sourceCatalogProviders.js.map +1 -0
- package/dist/types.d.ts +6 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/validateFunctionalRouting.d.ts +14 -0
- package/dist/validateFunctionalRouting.d.ts.map +1 -0
- package/dist/validateFunctionalRouting.js +178 -0
- package/dist/validateFunctionalRouting.js.map +1 -0
- package/dist/validateProfileTransportPolicy.d.ts.map +1 -1
- package/dist/validateProfileTransportPolicy.js +19 -5
- package/dist/validateProfileTransportPolicy.js.map +1 -1
- package/dist/validation/openRouterAlignment.d.ts +1 -1
- package/dist/validation/openRouterAlignment.d.ts.map +1 -1
- package/dist/validation/validateModelsProfilesJson.d.ts.map +1 -1
- package/dist/validation/validateModelsProfilesJson.js +6 -3
- package/dist/validation/validateModelsProfilesJson.js.map +1 -1
- package/dist/vendorModelId.d.ts +1 -1
- package/dist/vendorModelId.d.ts.map +1 -1
- package/dist/vendorModelId.js +4 -3
- package/dist/vendorModelId.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Resolve AI profile names into concrete model choices. The package ships JSON in `src/data/` as the offline fallback. By default, registry data is fetched from public assets, validated, and cached in memory.
|
|
4
4
|
|
|
5
|
-
> **v4.
|
|
5
|
+
> **v4.4** ships production routing (OpenRouter default + vendor-direct), product-line `*-latest-model` vendor routes, Gemini-backed google lanes, and **unversioned** open-assets URLs. Pin **`"@x12i/ai-profiles": "^4.4.0"`**. Upload `models-profiles.json` / `models-catalog.json` to open-assets **without** `.v4` / `.v2` suffixes.
|
|
6
6
|
>
|
|
7
|
-
> **
|
|
7
|
+
> **v4.3** adds **`isConcreteModelId`**, **`isModelProfileReference`**, and **`toOptimixerModelProfile`** so consumers do not invent concrete-vs-profile or reasoning heuristics.
|
|
8
|
+
>
|
|
9
|
+
> **v3.2** adds **`normalizeInvokeModel`**, **`resolveAndNormalizeInvokeModel`**, and **`resolveAndNormalizeBundledInvokeModel`** for gateway invoke wire shape.
|
|
8
10
|
>
|
|
9
11
|
> **v3.0** removes legacy resolution inputs: shortcuts, bare profiles, and aliases. Only four resolution forms are accepted — `profile/choice`, vendor slug, gateway wire, and `{ provider, modelId }`. See [CHANGELOG.md](CHANGELOG.md).
|
|
10
12
|
>
|
|
@@ -98,12 +100,10 @@ Profiles are grouped by **what kind of work** they represent—not only by price
|
|
|
98
100
|
| `content` | creative | Prose, marketing copy, programmatic SEO, brand voice. |
|
|
99
101
|
| `sum` | analysis | Document triage, digests, compressing very large corpora. |
|
|
100
102
|
| `vol` | agent | Volume/economic agent lane (Flash default, Pro for hard/final). |
|
|
101
|
-
| `vision` | vision | Image input; `catalogLane: "image"`. |
|
|
102
|
-
| `vision` | multimodal | Image understanding, OCR, charts, scanned PDF structure extraction. |
|
|
103
103
|
| `coding` | engineering | Software engineering: implementation, refactors, reviews, debugging. |
|
|
104
104
|
| `extraction` | extraction | NER, classification, taxonomy mapping, entity extraction, document labeling. |
|
|
105
105
|
| `routing` | routing | Intent classification, record routing, workflow branching (cheapest viable). |
|
|
106
|
-
| `local` | local | **CPU only** —
|
|
106
|
+
| `local` | local | **CPU only** — runtime adapters (llama.cpp, Ollama, LM Studio, vLLM, Transformers.js, ONNX). **No OpenRouter.** |
|
|
107
107
|
|
|
108
108
|
### Typical choices per profile
|
|
109
109
|
|
|
@@ -123,20 +123,21 @@ Each profile’s `choices` in `models-profiles.json` follow a consistent pattern
|
|
|
123
123
|
| `content` | `default`, `pseo_bulk`, `brand_voice` | Natural prose vs batch pSEO schema vs premium copy |
|
|
124
124
|
| `sum` | `default`, `mega_context` | Fast digest (Haiku) vs multi-hundred-k token compression |
|
|
125
125
|
| `vol` | `default`, `flash`, `pro`, `final` | Volume/economic agent lane (Flash default, Pro for hard/final) |
|
|
126
|
-
| `
|
|
127
|
-
| `local` | `llama_cpp_gguf`, `transformersjs_default` | **CPU / offline** — GGUF via llama.cpp vs Hugging Face Transformers.js (no cloud LLM) |
|
|
126
|
+
| `local` | `llama_cpp_gguf`, `ollama`, `lmstudio_openai`, `vllm_openai`, `transformersjs_text`, `onnx_runtime` | **CPU / offline adapters** — env-probed local runtimes (no cloud LLM) |
|
|
128
127
|
|
|
129
128
|
Every **remote** profile choice must resolve to an active OpenRouter catalog id. Profiles without OpenRouter support are not included (use vendor APIs outside this registry, or add catalog coverage first). The only exception is the **`local`** profile, which is explicitly CPU / self-hosted.
|
|
130
129
|
|
|
130
|
+
Vendor-family profiles (`openai`, `claude`, `google`, `grok`, `deepseek`, …) also expose **`default` / `cheapest` / `best`** plus product-line **`<family>-latest-model`** choices (e.g. `google/flash-lite-latest-model`). Those choice *names* are aliases; `modelId` is always a **concrete** pinned SKU refreshed from the catalog.
|
|
131
|
+
|
|
131
132
|
### OpenRouter-only and catalog lanes
|
|
132
133
|
|
|
133
|
-
Not every profile is OpenRouter-backed: **`local`** is CPU/self-hosted only (
|
|
134
|
+
Not every profile is OpenRouter-backed: **`local`** is CPU/self-hosted only (no catalog entry). All other bundled remote choices map to an entry in `models-catalog.json` with an active OpenRouter slug.
|
|
134
135
|
|
|
135
136
|
| Option | Purpose |
|
|
136
137
|
|--------|---------|
|
|
137
138
|
| `requireOpenRouterCatalog: true` | Fail resolution if the chosen model is not in the catalog with an active OpenRouter id (use for production paths that must not call vendor-direct guesses). |
|
|
138
|
-
| `catalogLane: "text" \| "image" \| …` | Only resolve profiles declared for that OpenRouter browser lane. Tier profiles (`cheap`, `cyber`, `vol`, …) are **`text
|
|
139
|
-
| `listAIProfiles({ catalogLane: "
|
|
139
|
+
| `catalogLane: "text" \| "image" \| …` | Only resolve profiles declared for that OpenRouter browser lane. Tier profiles (`cheap`, `cyber`, `vol`, …) are **`text`**. Lanes without profiles yet (`image`, `embeddings`, `rerank`, `speech`, `transcription`, …) can be added when you introduce lane-specific profiles. |
|
|
140
|
+
| `listAIProfiles({ catalogLane: "text" })` | List only lane-matching profiles. |
|
|
140
141
|
|
|
141
142
|
```ts
|
|
142
143
|
await resolveAIProfile("cyber/default", {
|
|
@@ -144,7 +145,7 @@ await resolveAIProfile("cyber/default", {
|
|
|
144
145
|
requireOpenRouterCatalog: true,
|
|
145
146
|
});
|
|
146
147
|
|
|
147
|
-
await listAIProfiles({ catalogLane: "
|
|
148
|
+
await listAIProfiles({ catalogLane: "text" });
|
|
148
149
|
```
|
|
149
150
|
|
|
150
151
|
### Cost tiers (optional)
|
|
@@ -365,7 +366,7 @@ import {
|
|
|
365
366
|
// 4. { provider, modelId } → catalog
|
|
366
367
|
|
|
367
368
|
ensureConcreteModel("cheap/default");
|
|
368
|
-
// → { provider: "openrouter", modelId: "
|
|
369
|
+
// → { provider: "openrouter", modelId: "deepseek/deepseek-v4-flash", profileChoice: { profile: "cheap", choice: "default" } }
|
|
369
370
|
|
|
370
371
|
ensureConcreteModel("google/gemini-2.5-flash-lite");
|
|
371
372
|
// → { provider: "openrouter", modelId: "google/gemini-2.5-flash-lite", matchConfidence: "exact" }
|
|
@@ -849,8 +850,12 @@ The `version` field in the JSON files (and `registryVersion` on resolved output)
|
|
|
849
850
|
|
|
850
851
|
## Remote assets
|
|
851
852
|
|
|
852
|
-
-
|
|
853
|
-
|
|
853
|
+
Upload the bundled JSON files **as-is** (no filename version suffix):
|
|
854
|
+
|
|
855
|
+
- `https://open-assets.x12i.com/models-profiles.json`
|
|
856
|
+
- `https://open-assets.x12i.com/models-catalog.json`
|
|
857
|
+
|
|
858
|
+
Older `.v4` / `.v2` URLs are intentionally retired — point every consumer at the unversioned paths above.
|
|
854
859
|
|
|
855
860
|
## Integration example
|
|
856
861
|
|
|
@@ -874,7 +879,7 @@ const mainInvoke = await resolveAndNormalizeInvokeModel(slots.skillModel, {
|
|
|
874
879
|
catalogLane: "text",
|
|
875
880
|
preferOpenRouter: true,
|
|
876
881
|
});
|
|
877
|
-
// mainInvoke → { provider: "openrouter", model: "openai/gpt-5.
|
|
882
|
+
// mainInvoke → { provider: "openrouter", model: "openai/gpt-5.6-terra", routing: "openrouter", ... }
|
|
878
883
|
```
|
|
879
884
|
|
|
880
885
|
## Profile matrix (FuncX contract)
|
|
@@ -883,29 +888,31 @@ Default choice per profile (vendor-native ids in registry; OpenRouter slugs when
|
|
|
883
888
|
|
|
884
889
|
| Profile | Inference | Instruction tier | Default choice | Example model |
|
|
885
890
|
|---------|-----------|------------------|----------------|---------------|
|
|
886
|
-
| `cheap` | Remote | **`default`** | `default` | `
|
|
887
|
-
| `fast` | Remote | **`default`** | `default` | `gpt-5.
|
|
888
|
-
| `balanced` | Remote | **`default`** | `default` | `gpt-5.
|
|
889
|
-
| `deep` | Remote | **`reasoning`** | `default` | `claude-sonnet-
|
|
890
|
-
| `pro` | Remote | **`default`** | `default` | `gpt-5.
|
|
891
|
-
| `json` | Remote | **`default`** | `default` | `gpt-5.
|
|
892
|
-
| `agentic` | Remote | **`default`** | `default` | `claude-sonnet-
|
|
893
|
-
| `research` | Remote | **`reasoning`** | `default` | `claude-sonnet-
|
|
894
|
-
| `cyber` | Remote | **`
|
|
895
|
-
| `content` | Remote | **`default`** | `default` | `claude-
|
|
891
|
+
| `cheap` | Remote | **`default`** | `default` | `deepseek-v4-flash` |
|
|
892
|
+
| `fast` | Remote | **`default`** | `default` | `gpt-5.6-luna` |
|
|
893
|
+
| `balanced` | Remote | **`default`** | `default` | `gpt-5.6-terra` |
|
|
894
|
+
| `deep` | Remote | **`reasoning`** | `default` | `claude-sonnet-5` |
|
|
895
|
+
| `pro` | Remote | **`default`** | `default` | `gpt-5.6-sol-pro` |
|
|
896
|
+
| `json` | Remote | **`default`** | `default` | `gpt-5.6-luna` (schema output) |
|
|
897
|
+
| `agentic` | Remote | **`default`** | `default` | `claude-sonnet-5` |
|
|
898
|
+
| `research` | Remote | **`reasoning`** | `default` | `claude-sonnet-5` |
|
|
899
|
+
| `cyber` | Remote | **`default`** | `default` | `deepseek-v4-flash` |
|
|
900
|
+
| `content` | Remote | **`default`** | `default` | `claude-fable-5` |
|
|
896
901
|
| `sum` | Remote | **`default`** | `default` | `claude-haiku-4.5` |
|
|
897
|
-
| `
|
|
902
|
+
| `vol` | Remote | **`default`** | `default` | `deepseek-v4-flash` |
|
|
903
|
+
| `routing` | Remote | **`default`** | `default` | `gemini-2.5-flash-lite` |
|
|
904
|
+
| `extraction` | Remote | **`default`** | `default` | `gemini-2.5-flash-lite` |
|
|
905
|
+
| `coding` | Remote | **`default`** | `default` | `deepseek-v4-flash` |
|
|
898
906
|
| `local` | CPU (no OpenRouter) | **`cpu`** | `llama_cpp_gguf` | `funcx:llama-cpp:gguf` |
|
|
899
|
-
| `local` | CPU | **`cpu`** | `transformersjs_default` | `Xenova/distilbart-cnn-6-6` |
|
|
900
907
|
|
|
901
|
-
Local CPU choices expose FuncX env keys in `resolved.metadata` (e.g. `LLAMA_CPP_MODEL_PATH`, `
|
|
908
|
+
Local CPU choices expose FuncX / runtime env keys in `resolved.metadata` (e.g. `LLAMA_CPP_MODEL_PATH`, `OLLAMA_MODEL`, `VLLM_BASE_URL`).
|
|
902
909
|
|
|
903
910
|
### OpenRouter model ids
|
|
904
911
|
|
|
905
|
-
Remote profile choices in `models-profiles.json` use vendor-native `modelId` values (e.g. `gpt-5.
|
|
912
|
+
Remote profile choices in `models-profiles.json` use vendor-native `modelId` values (e.g. `gpt-5.6-sol-pro`, `gemini-2.5-flash-lite`). By default, `resolveAIProfile` returns OpenRouter-ready output:
|
|
906
913
|
|
|
907
914
|
- `provider`: `"openrouter"`
|
|
908
|
-
- `modelId`: full slug such as `openai/gpt-5.
|
|
915
|
+
- `modelId`: full slug such as `openai/gpt-5.6-sol-pro` (with correct OpenRouter prefixes, e.g. `x-ai/…`)
|
|
909
916
|
- `routing`: `"openrouter"`
|
|
910
917
|
|
|
911
918
|
Pass `preferOpenRouter: false` (or `PREFER_OPENROUTER=0`) to get vendor-native `provider` + `modelId` for direct API calls.
|
|
@@ -913,8 +920,8 @@ Pass `preferOpenRouter: false` (or `PREFER_OPENROUTER=0`) to get vendor-native `
|
|
|
913
920
|
Every resolved profile includes **`invocation`** with both call shapes:
|
|
914
921
|
|
|
915
922
|
```ts
|
|
916
|
-
resolved.invocation.direct // { provider: "openai", modelId: "gpt-5.
|
|
917
|
-
resolved.invocation.openrouter // { provider: "openrouter", modelId: "openai/gpt-5.
|
|
923
|
+
resolved.invocation.direct // { provider: "openai", modelId: "gpt-5.6-sol-pro" }
|
|
924
|
+
resolved.invocation.openrouter // { provider: "openrouter", modelId: "openai/gpt-5.6-sol-pro" } | null
|
|
918
925
|
```
|
|
919
926
|
|
|
920
927
|
Top-level `provider` / `modelId` / `routing` remain the **active** path selected by `preferOpenRouter`.
|
|
@@ -26,7 +26,9 @@ export type TextOnlyCatalogOptions = {
|
|
|
26
26
|
/** Include `:free` tier OpenRouter SKUs (default false). */
|
|
27
27
|
includeFree?: boolean;
|
|
28
28
|
};
|
|
29
|
-
/** True when the model is a text
|
|
29
|
+
/** True when the model is a text-chat SKU (text output only; not image/audio/video generation).
|
|
30
|
+
* Multimodal *input* (image/audio/video/file) is allowed — required for Gemini and similar.
|
|
31
|
+
*/
|
|
30
32
|
export declare function isTextOnlyOpenRouterModel(model: OpenRouterApiModel): boolean;
|
|
31
33
|
export declare function filterTextOnlyOpenRouterModels(models: OpenRouterApiModel[], options?: TextOnlyCatalogOptions): OpenRouterApiModel[];
|
|
32
34
|
/** Build the legacy OpenRouter-only catalog document (fed into {@link normalizeModelsCatalog}). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildCatalogFromOpenRouterApi.d.ts","sourceRoot":"","sources":["../src/buildCatalogFromOpenRouterApi.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"buildCatalogFromOpenRouterApi.d.ts","sourceRoot":"","sources":["../src/buildCatalogFromOpenRouterApi.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAiC,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEnF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC5B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;KAC9B,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACpD,YAAY,CAAC,EAAE;QACb,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC,CAAC;IACF,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,kBAAkB,EAAE,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,4DAA4D;IAC5D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAmB5E;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,kBAAkB,EAAE,EAC5B,OAAO,GAAE,sBAA2B,GACnC,kBAAkB,EAAE,CAYtB;AA0GD,mGAAmG;AACnG,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,2BAA2B,EACrC,OAAO,GAAE,sBAA2B,GACnC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAsBzB;AAED,2EAA2E;AAC3E,wBAAgB,uCAAuC,CACrD,QAAQ,EAAE,2BAA2B,EACrC,OAAO,GAAE,sBAA2B,GACnC,iBAAiB,CAqBnB;AAED,0EAA0E;AAC1E,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,2BAA2B,GACpC,iBAAiB,CAEnB"}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import { OPENROUTER_MODELS_API_URL } from "./constants.js";
|
|
2
|
+
import { inferModelFamily } from "./inferModelFamily.js";
|
|
2
3
|
import { filterSupersededOpenRouterPreviewModels } from "./openRouterSlugPolicy.js";
|
|
3
4
|
import { MODELS_CATALOG_REMOTE_URL, normalizeModelsCatalog, roundCatalogPricingUsd, } from "./modelsCatalog.js";
|
|
4
|
-
|
|
5
|
+
import { normalizeOpenRouterProviderPrefix } from "./openRouterProviderMap.js";
|
|
6
|
+
/** True when the model is a text-chat SKU (text output only; not image/audio/video generation).
|
|
7
|
+
* Multimodal *input* (image/audio/video/file) is allowed — required for Gemini and similar.
|
|
8
|
+
*/
|
|
5
9
|
export function isTextOnlyOpenRouterModel(model) {
|
|
6
|
-
const input = model.architecture?.input_modalities ?? ["text"];
|
|
7
10
|
const output = model.architecture?.output_modalities ?? ["text"];
|
|
8
11
|
const modality = model.architecture?.modality ?? "";
|
|
9
12
|
const textOnlyOutput = output.every((m) => m.toLowerCase() === "text");
|
|
10
13
|
if (!textOnlyOutput) {
|
|
11
14
|
return false;
|
|
12
15
|
}
|
|
13
|
-
|
|
14
|
-
return false;
|
|
15
|
-
}
|
|
16
|
+
// Exclude generation / media-output architectures even when listed oddly.
|
|
16
17
|
if (/->\s*image|->\s*audio|->\s*video/i.test(modality)) {
|
|
17
18
|
return false;
|
|
18
19
|
}
|
|
@@ -54,68 +55,6 @@ function inferFamily(modelId) {
|
|
|
54
55
|
}
|
|
55
56
|
return prefix || undefined;
|
|
56
57
|
}
|
|
57
|
-
function inferModelFamily(provider, vendorModelId) {
|
|
58
|
-
const p = (provider ?? "").toLowerCase();
|
|
59
|
-
const id = vendorModelId.toLowerCase();
|
|
60
|
-
if (p === "openai") {
|
|
61
|
-
// - "o*" reasoning line (o1/o3/o4…)
|
|
62
|
-
// - "mini" (gpt-*-mini)
|
|
63
|
-
// - "nano" (gpt-*-nano)
|
|
64
|
-
// - fallback "gpt" for everything else
|
|
65
|
-
if (/^o\d/.test(id) || /^o\d-/.test(id) || /^o[34]-/.test(id)) {
|
|
66
|
-
return "o";
|
|
67
|
-
}
|
|
68
|
-
if (/\bmini\b/.test(id) || /-mini($|-)/.test(id)) {
|
|
69
|
-
return "mini";
|
|
70
|
-
}
|
|
71
|
-
if (/\bnano\b/.test(id) || /-nano($|-)/.test(id)) {
|
|
72
|
-
return "nano";
|
|
73
|
-
}
|
|
74
|
-
return "gpt";
|
|
75
|
-
}
|
|
76
|
-
if (p === "anthropic") {
|
|
77
|
-
if (id.includes("sonnet"))
|
|
78
|
-
return "sonnet";
|
|
79
|
-
if (id.includes("opus"))
|
|
80
|
-
return "opus";
|
|
81
|
-
if (id.includes("haiku"))
|
|
82
|
-
return "haiku";
|
|
83
|
-
if (id.includes("fable"))
|
|
84
|
-
return "fable";
|
|
85
|
-
return undefined;
|
|
86
|
-
}
|
|
87
|
-
if (p === "google") {
|
|
88
|
-
if (id.includes("flash"))
|
|
89
|
-
return "flash";
|
|
90
|
-
if (id.includes("pro"))
|
|
91
|
-
return "pro";
|
|
92
|
-
if (id.startsWith("gemma"))
|
|
93
|
-
return "gemma";
|
|
94
|
-
return undefined;
|
|
95
|
-
}
|
|
96
|
-
if (p === "deepseek") {
|
|
97
|
-
if (id.startsWith("deepseek-r1"))
|
|
98
|
-
return "reasoner";
|
|
99
|
-
if (id.startsWith("deepseek-chat"))
|
|
100
|
-
return "chat";
|
|
101
|
-
if (id.startsWith("deepseek-v"))
|
|
102
|
-
return "chat";
|
|
103
|
-
return undefined;
|
|
104
|
-
}
|
|
105
|
-
if (p === "minimax") {
|
|
106
|
-
if (id === "minimax-01" || id.endsWith("-01"))
|
|
107
|
-
return "legacy";
|
|
108
|
-
if (id.startsWith("minimax-m"))
|
|
109
|
-
return "m";
|
|
110
|
-
return undefined;
|
|
111
|
-
}
|
|
112
|
-
if (p === "xai") {
|
|
113
|
-
if (id.startsWith("grok"))
|
|
114
|
-
return "grok";
|
|
115
|
-
return undefined;
|
|
116
|
-
}
|
|
117
|
-
return undefined;
|
|
118
|
-
}
|
|
119
58
|
function mapModalities(model) {
|
|
120
59
|
const input = model.architecture?.input_modalities ?? ["text"];
|
|
121
60
|
const output = model.architecture?.output_modalities ?? ["text"];
|
|
@@ -142,14 +81,17 @@ function inferCapabilities(supported) {
|
|
|
142
81
|
}
|
|
143
82
|
function mapLegacyEntry(model) {
|
|
144
83
|
const pricing = model.pricing ?? {};
|
|
145
|
-
const
|
|
84
|
+
const rawPrefix = inferFamily(model.id);
|
|
85
|
+
const provider = rawPrefix
|
|
86
|
+
? normalizeOpenRouterProviderPrefix(rawPrefix)
|
|
87
|
+
: undefined;
|
|
146
88
|
const slash = model.id.indexOf("/");
|
|
147
89
|
const vendorModelId = slash > 0 ? model.id.slice(slash + 1) : model.id;
|
|
148
90
|
return {
|
|
149
91
|
modelId: model.id,
|
|
150
92
|
canonicalSlug: model.canonical_slug,
|
|
151
93
|
displayName: model.name,
|
|
152
|
-
family: provider,
|
|
94
|
+
family: provider ?? rawPrefix,
|
|
153
95
|
modelFamily: inferModelFamily(provider, vendorModelId),
|
|
154
96
|
status: model.expiration_date ? "deprecated" : "active",
|
|
155
97
|
releasedAt: typeof model.created === "number" && Number.isFinite(model.created)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildCatalogFromOpenRouterApi.js","sourceRoot":"","sources":["../src/buildCatalogFromOpenRouterApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,uCAAuC,EAAE,MAAM,2BAA2B,CAAC;AACpF,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"buildCatalogFromOpenRouterApi.js","sourceRoot":"","sources":["../src/buildCatalogFromOpenRouterApi.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { AIRuntimeDefaults } from "./types.js";
|
|
2
2
|
export declare const DEFAULT_CACHE_TTL_MS: number;
|
|
3
3
|
export declare const DEFAULT_FETCH_TIMEOUT_MS = 5000;
|
|
4
|
-
export declare const REMOTE_MODELS_PROFILES_URL = "https://open-assets.x12i.com/models-profiles.
|
|
5
|
-
export declare const REMOTE_MODELS_CATALOG_URL = "https://open-assets.x12i.com/models-catalog.
|
|
4
|
+
export declare const REMOTE_MODELS_PROFILES_URL = "https://open-assets.x12i.com/models-profiles.json";
|
|
5
|
+
export declare const REMOTE_MODELS_CATALOG_URL = "https://open-assets.x12i.com/models-catalog.json";
|
|
6
6
|
/** Public OpenRouter model list (used by maintainers to regenerate the catalog). */
|
|
7
7
|
export declare const OPENROUTER_MODELS_API_URL = "https://openrouter.ai/api/v1/models";
|
|
8
8
|
export declare const MODELS_PROFILES_SCHEMA_V3: "x12i.ai-profiles.model-registry.v3";
|
|
@@ -10,7 +10,9 @@ export declare const MODELS_PROFILES_SCHEMA_V4: "x12i.ai-profiles.model-registry
|
|
|
10
10
|
/** Bundled/remote loaders accept v4 only (v3 kept for reference / historical migrations). */
|
|
11
11
|
export declare const MODELS_PROFILES_SCHEMAS: readonly ["x12i.ai-profiles.model-registry.v4"];
|
|
12
12
|
export declare const INSTRUCTION_TIERS: readonly ["default", "cpu", "reasoning"];
|
|
13
|
-
export declare const AI_PROFILE_BACKENDS: readonly ["openrouter", "llama-cpp", "transformersjs", "custom"];
|
|
13
|
+
export declare const AI_PROFILE_BACKENDS: readonly ["openrouter", "llama-cpp", "ollama", "lmstudio", "vllm", "transformersjs", "onnxruntime", "custom"];
|
|
14
|
+
/** Local-only backends (never OpenRouter). */
|
|
15
|
+
export declare const LOCAL_PROFILE_BACKENDS: readonly ["llama-cpp", "ollama", "lmstudio", "vllm", "transformersjs", "onnxruntime"];
|
|
14
16
|
/** Canonical media types for model input/output (aligned with OpenRouter catalog). */
|
|
15
17
|
export declare const MODEL_MODALITIES: readonly ["text", "image", "audio", "video", "file"];
|
|
16
18
|
export declare const DEFAULT_RUNTIME_DEFAULTS: Required<AIRuntimeDefaults>;
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,eAAO,MAAM,oBAAoB,QAAsB,CAAC;AACxD,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C,eAAO,MAAM,0BAA0B,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,eAAO,MAAM,oBAAoB,QAAsB,CAAC;AACxD,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C,eAAO,MAAM,0BAA0B,sDACc,CAAC;AAEtD,eAAO,MAAM,yBAAyB,qDACc,CAAC;AAErD,oFAAoF;AACpF,eAAO,MAAM,yBAAyB,wCACC,CAAC;AAExC,eAAO,MAAM,yBAAyB,EACpC,oCAA6C,CAAC;AAEhD,eAAO,MAAM,yBAAyB,EACpC,oCAA6C,CAAC;AAEhD,6FAA6F;AAC7F,eAAO,MAAM,uBAAuB,iDAAuC,CAAC;AAC5E,eAAO,MAAM,iBAAiB,0CAA2C,CAAC;AAE1E,eAAO,MAAM,mBAAmB,+GAStB,CAAC;AAEX,8CAA8C;AAC9C,eAAO,MAAM,sBAAsB,uFAOzB,CAAC;AAEX,sFAAsF;AACtF,eAAO,MAAM,gBAAgB,sDAMnB,CAAC;AAEX,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,iBAAiB,CAahE,CAAC"}
|
package/dist/constants.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export const DEFAULT_CACHE_TTL_MS = 24 * 60 * 60 * 1000;
|
|
2
2
|
export const DEFAULT_FETCH_TIMEOUT_MS = 5000;
|
|
3
|
-
export const REMOTE_MODELS_PROFILES_URL = "https://open-assets.x12i.com/models-profiles.
|
|
4
|
-
export const REMOTE_MODELS_CATALOG_URL = "https://open-assets.x12i.com/models-catalog.
|
|
3
|
+
export const REMOTE_MODELS_PROFILES_URL = "https://open-assets.x12i.com/models-profiles.json";
|
|
4
|
+
export const REMOTE_MODELS_CATALOG_URL = "https://open-assets.x12i.com/models-catalog.json";
|
|
5
5
|
/** Public OpenRouter model list (used by maintainers to regenerate the catalog). */
|
|
6
6
|
export const OPENROUTER_MODELS_API_URL = "https://openrouter.ai/api/v1/models";
|
|
7
7
|
export const MODELS_PROFILES_SCHEMA_V3 = "x12i.ai-profiles.model-registry.v3";
|
|
@@ -12,9 +12,22 @@ export const INSTRUCTION_TIERS = ["default", "cpu", "reasoning"];
|
|
|
12
12
|
export const AI_PROFILE_BACKENDS = [
|
|
13
13
|
"openrouter",
|
|
14
14
|
"llama-cpp",
|
|
15
|
+
"ollama",
|
|
16
|
+
"lmstudio",
|
|
17
|
+
"vllm",
|
|
15
18
|
"transformersjs",
|
|
19
|
+
"onnxruntime",
|
|
16
20
|
"custom",
|
|
17
21
|
];
|
|
22
|
+
/** Local-only backends (never OpenRouter). */
|
|
23
|
+
export const LOCAL_PROFILE_BACKENDS = [
|
|
24
|
+
"llama-cpp",
|
|
25
|
+
"ollama",
|
|
26
|
+
"lmstudio",
|
|
27
|
+
"vllm",
|
|
28
|
+
"transformersjs",
|
|
29
|
+
"onnxruntime",
|
|
30
|
+
];
|
|
18
31
|
/** Canonical media types for model input/output (aligned with OpenRouter catalog). */
|
|
19
32
|
export const MODEL_MODALITIES = [
|
|
20
33
|
"text",
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACxD,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAE7C,MAAM,CAAC,MAAM,0BAA0B,GACrC,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACxD,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAE7C,MAAM,CAAC,MAAM,0BAA0B,GACrC,mDAAmD,CAAC;AAEtD,MAAM,CAAC,MAAM,yBAAyB,GACpC,kDAAkD,CAAC;AAErD,oFAAoF;AACpF,MAAM,CAAC,MAAM,yBAAyB,GACpC,qCAAqC,CAAC;AAExC,MAAM,CAAC,MAAM,yBAAyB,GACpC,oCAA6C,CAAC;AAEhD,MAAM,CAAC,MAAM,yBAAyB,GACpC,oCAA6C,CAAC;AAEhD,6FAA6F;AAC7F,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,yBAAyB,CAAU,CAAC;AAC5E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,WAAW,CAAU,CAAC;AAE1E,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,YAAY;IACZ,WAAW;IACX,QAAQ;IACR,UAAU;IACV,MAAM;IACN,gBAAgB;IAChB,aAAa;IACb,QAAQ;CACA,CAAC;AAEX,8CAA8C;AAC9C,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,WAAW;IACX,QAAQ;IACR,UAAU;IACV,MAAM;IACN,gBAAgB;IAChB,aAAa;CACL,CAAC;AAEX,sFAAsF;AACtF,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;CACE,CAAC;AAEX,MAAM,CAAC,MAAM,wBAAwB,GAAgC;IACnE,eAAe,EAAE,QAAQ;IACzB,UAAU,EAAE,MAAM;IAClB,WAAW,EAAE,GAAG;IAChB,UAAU,EAAE,MAAM;IAClB,aAAa,EAAE,MAAM;IACrB,gBAAgB,EAAE,KAAK;IACvB,QAAQ,EAAE,KAAK;IACf,eAAe,EAAE,KAAK;IACtB,kBAAkB,EAAE,KAAK;IACzB,WAAW,EAAE,MAAM;IACnB,eAAe,EAAE,SAAS;IAC1B,OAAO,EAAE,YAAY;CACtB,CAAC"}
|