@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.
Files changed (119) hide show
  1. package/README.md +39 -32
  2. package/dist/buildCatalogFromOpenRouterApi.d.ts +3 -1
  3. package/dist/buildCatalogFromOpenRouterApi.d.ts.map +1 -1
  4. package/dist/buildCatalogFromOpenRouterApi.js +11 -69
  5. package/dist/buildCatalogFromOpenRouterApi.js.map +1 -1
  6. package/dist/constants.d.ts +5 -3
  7. package/dist/constants.d.ts.map +1 -1
  8. package/dist/constants.js +15 -2
  9. package/dist/constants.js.map +1 -1
  10. package/dist/data/models-catalog.json +5036 -2055
  11. package/dist/data/models-profiles.json +3442 -866
  12. package/dist/data/models-registry.json +4594 -2772
  13. package/dist/ensureRemoteOpenRouterBackend.d.ts +4 -0
  14. package/dist/ensureRemoteOpenRouterBackend.d.ts.map +1 -0
  15. package/dist/ensureRemoteOpenRouterBackend.js +33 -0
  16. package/dist/ensureRemoteOpenRouterBackend.js.map +1 -0
  17. package/dist/evidence/adapterTypes.d.ts +14 -0
  18. package/dist/evidence/adapterTypes.d.ts.map +1 -0
  19. package/dist/evidence/adapterTypes.js +2 -0
  20. package/dist/evidence/adapterTypes.js.map +1 -0
  21. package/dist/evidence/adapters.d.ts +28 -0
  22. package/dist/evidence/adapters.d.ts.map +1 -0
  23. package/dist/evidence/adapters.js +102 -0
  24. package/dist/evidence/adapters.js.map +1 -0
  25. package/dist/evidence/index.d.ts +13 -0
  26. package/dist/evidence/index.d.ts.map +1 -0
  27. package/dist/evidence/index.js +9 -0
  28. package/dist/evidence/index.js.map +1 -0
  29. package/dist/evidence/local/probes.d.ts +58 -0
  30. package/dist/evidence/local/probes.d.ts.map +1 -0
  31. package/dist/evidence/local/probes.js +210 -0
  32. package/dist/evidence/local/probes.js.map +1 -0
  33. package/dist/evidence/openRouter.d.ts +11 -0
  34. package/dist/evidence/openRouter.d.ts.map +1 -0
  35. package/dist/evidence/openRouter.js +80 -0
  36. package/dist/evidence/openRouter.js.map +1 -0
  37. package/dist/evidence/patch.d.ts +8 -0
  38. package/dist/evidence/patch.d.ts.map +1 -0
  39. package/dist/evidence/patch.js +50 -0
  40. package/dist/evidence/patch.js.map +1 -0
  41. package/dist/evidence/recommend.d.ts +20 -0
  42. package/dist/evidence/recommend.d.ts.map +1 -0
  43. package/dist/evidence/recommend.js +142 -0
  44. package/dist/evidence/recommend.js.map +1 -0
  45. package/dist/evidence/refreshModelEvidence.d.ts +25 -0
  46. package/dist/evidence/refreshModelEvidence.d.ts.map +1 -0
  47. package/dist/evidence/refreshModelEvidence.js +104 -0
  48. package/dist/evidence/refreshModelEvidence.js.map +1 -0
  49. package/dist/evidence/scoreModelForTask.d.ts +13 -0
  50. package/dist/evidence/scoreModelForTask.d.ts.map +1 -0
  51. package/dist/evidence/scoreModelForTask.js +137 -0
  52. package/dist/evidence/scoreModelForTask.js.map +1 -0
  53. package/dist/evidence/scoringConfig.d.ts +11 -0
  54. package/dist/evidence/scoringConfig.d.ts.map +1 -0
  55. package/dist/evidence/scoringConfig.js +259 -0
  56. package/dist/evidence/scoringConfig.js.map +1 -0
  57. package/dist/evidence/types.d.ts +218 -0
  58. package/dist/evidence/types.d.ts.map +1 -0
  59. package/dist/evidence/types.js +2 -0
  60. package/dist/evidence/types.js.map +1 -0
  61. package/dist/finalProfileModelMappingPatch.d.ts +31 -0
  62. package/dist/finalProfileModelMappingPatch.d.ts.map +1 -0
  63. package/dist/finalProfileModelMappingPatch.js +405 -0
  64. package/dist/finalProfileModelMappingPatch.js.map +1 -0
  65. package/dist/index.d.ts +12 -0
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +8 -0
  68. package/dist/index.js.map +1 -1
  69. package/dist/inferModelFamily.d.ts +8 -0
  70. package/dist/inferModelFamily.d.ts.map +1 -0
  71. package/dist/inferModelFamily.js +242 -0
  72. package/dist/inferModelFamily.js.map +1 -0
  73. package/dist/modelIdentity.d.ts.map +1 -1
  74. package/dist/modelIdentity.js +2 -1
  75. package/dist/modelIdentity.js.map +1 -1
  76. package/dist/modelsCatalog.d.ts +2 -2
  77. package/dist/modelsCatalog.d.ts.map +1 -1
  78. package/dist/modelsCatalog.js +36 -34
  79. package/dist/modelsCatalog.js.map +1 -1
  80. package/dist/openRouterProviderMap.d.ts +57 -0
  81. package/dist/openRouterProviderMap.d.ts.map +1 -0
  82. package/dist/openRouterProviderMap.js +120 -0
  83. package/dist/openRouterProviderMap.js.map +1 -0
  84. package/dist/profileRegistryV3.d.ts.map +1 -1
  85. package/dist/profileRegistryV3.js +30 -23
  86. package/dist/profileRegistryV3.js.map +1 -1
  87. package/dist/resolveInstructionTierAndBackend.d.ts.map +1 -1
  88. package/dist/resolveInstructionTierAndBackend.js +18 -5
  89. package/dist/resolveInstructionTierAndBackend.js.map +1 -1
  90. package/dist/resolveLocalRuntime.d.ts +22 -0
  91. package/dist/resolveLocalRuntime.d.ts.map +1 -0
  92. package/dist/resolveLocalRuntime.js +60 -0
  93. package/dist/resolveLocalRuntime.js.map +1 -0
  94. package/dist/resolveModelRouting.d.ts.map +1 -1
  95. package/dist/resolveModelRouting.js +8 -1
  96. package/dist/resolveModelRouting.js.map +1 -1
  97. package/dist/sourceCatalogProviders.d.ts +9 -0
  98. package/dist/sourceCatalogProviders.d.ts.map +1 -0
  99. package/dist/sourceCatalogProviders.js +51 -0
  100. package/dist/sourceCatalogProviders.js.map +1 -0
  101. package/dist/types.d.ts +6 -2
  102. package/dist/types.d.ts.map +1 -1
  103. package/dist/validateFunctionalRouting.d.ts +14 -0
  104. package/dist/validateFunctionalRouting.d.ts.map +1 -0
  105. package/dist/validateFunctionalRouting.js +178 -0
  106. package/dist/validateFunctionalRouting.js.map +1 -0
  107. package/dist/validateProfileTransportPolicy.d.ts.map +1 -1
  108. package/dist/validateProfileTransportPolicy.js +19 -5
  109. package/dist/validateProfileTransportPolicy.js.map +1 -1
  110. package/dist/validation/openRouterAlignment.d.ts +1 -1
  111. package/dist/validation/openRouterAlignment.d.ts.map +1 -1
  112. package/dist/validation/validateModelsProfilesJson.d.ts.map +1 -1
  113. package/dist/validation/validateModelsProfilesJson.js +6 -3
  114. package/dist/validation/validateModelsProfilesJson.js.map +1 -1
  115. package/dist/vendorModelId.d.ts +1 -1
  116. package/dist/vendorModelId.d.ts.map +1 -1
  117. package/dist/vendorModelId.js +4 -3
  118. package/dist/vendorModelId.js.map +1 -1
  119. 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.3** adds **`isConcreteModelId`**, **`isModelProfileReference`**, and **`toOptimixerModelProfile`** so consumers do not invent concrete-vs-profile or reasoning heuristics. Pin **`"@x12i/ai-profiles": "^4.3.0"`**.
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
- > **v3.2** adds **`normalizeInvokeModel`**, **`resolveAndNormalizeInvokeModel`**, and **`resolveAndNormalizeBundledInvokeModel`** for gateway invoke wire shape. Downstream repos should pin **`"@x12i/ai-profiles": "^3.2.0"`**.
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** — on-device / offline inference (llama.cpp GGUF, Transformers.js). **No OpenRouter.** |
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
- | `vision` | `default`, `document_ocr` | General multimodal vs schema OCR from scans/PDFs |
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 (2 choices, no catalog entry). All other bundled profile choices (59/61) map to an entry in `models-catalog.json` with an active OpenRouter slug.
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`**; **`vision`** is **`image`**. Lanes without profiles yet (`embeddings`, `rerank`, `speech`, `transcription`, …) can be added when you introduce lane-specific profiles. |
139
- | `listAIProfiles({ catalogLane: "image" })` | List only lane-matching profiles. |
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: "image" }); // → vision only
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: "google/gemini-2.5-flash-lite", profileChoice: { profile: "cheap", choice: "default" } }
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
- - `https://open-assets.x12i.com/models-profiles.v4.json`
853
- - `https://open-assets.x12i.com/models-catalog.v2.json`
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.4", routing: "openrouter", ... }
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` | `gemini-2.5-flash-lite` |
887
- | `fast` | Remote | **`default`** | `default` | `gpt-5.4-mini` |
888
- | `balanced` | Remote | **`default`** | `default` | `gpt-5.4` |
889
- | `deep` | Remote | **`reasoning`** | `default` | `claude-sonnet-4.6` |
890
- | `pro` | Remote | **`default`** | `default` | `gpt-5.5` |
891
- | `json` | Remote | **`default`** | `default` | `gpt-5.4-mini` (schema output) |
892
- | `agentic` | Remote | **`default`** | `default` | `claude-sonnet-4.6` |
893
- | `research` | Remote | **`reasoning`** | `default` | `claude-sonnet-4.6` |
894
- | `cyber` | Remote | **`reasoning`** | `default` | `claude-sonnet-4.6` |
895
- | `content` | Remote | **`default`** | `default` | `claude-sonnet-4.6` |
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
- | `vision` | Remote | **`default`** | `default` | `gpt-5.4` |
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`, `TRANSFORMERS_JS_MODEL_ID`).
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.4`, `gemini-2.5-flash-lite`). By default, `resolveAIProfile` returns OpenRouter-ready output:
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.4`
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.4" }
917
- resolved.invocation.openrouter // { provider: "openrouter", modelId: "openai/gpt-5.4" } | null
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 chat SKU (text output; no audio/video; not image generation). */
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":"AAOA,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,kGAAkG;AAClG,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAuB5E;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,kBAAkB,EAAE,EAC5B,OAAO,GAAE,sBAA2B,GACnC,kBAAkB,EAAE,CAYtB;AAkKD,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
+ {"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
- /** True when the model is a text chat SKU (text output; no audio/video; not image generation). */
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
- if (input.some((m) => ["audio", "video"].includes(m.toLowerCase()))) {
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 provider = inferFamily(model.id);
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":"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"}
1
+ {"version":3,"file":"buildCatalogFromOpenRouterApi.js","sourceRoot":"","sources":["../src/buildCatalogFromOpenRouterApi.ts"],"names":[],"mappings":"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"}
@@ -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.v4.json";
5
- export declare const REMOTE_MODELS_CATALOG_URL = "https://open-assets.x12i.com/models-catalog.v2.json";
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>;
@@ -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,yDACiB,CAAC;AAEzD,eAAO,MAAM,yBAAyB,wDACiB,CAAC;AAExD,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,kEAKtB,CAAC;AAEX,sFAAsF;AACtF,eAAO,MAAM,gBAAgB,sDAMnB,CAAC;AAEX,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,iBAAiB,CAahE,CAAC"}
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.v4.json";
4
- export const REMOTE_MODELS_CATALOG_URL = "https://open-assets.x12i.com/models-catalog.v2.json";
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",
@@ -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,sDAAsD,CAAC;AAEzD,MAAM,CAAC,MAAM,yBAAyB,GACpC,qDAAqD,CAAC;AAExD,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,gBAAgB;IAChB,QAAQ;CACA,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"}
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"}