@yanlinglabs/winter-provider-catalog 0.0.32 → 0.0.34

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.
@@ -238,6 +238,48 @@
238
238
  "sourceRef": "https://help.aliyun.com/en/model-studio/model-pricing — China (Beijing) lists qwen3.8-max at CNY 12 input / CNY 36 output per MTok. Converted using the ECB 2026-09-18 reference rates (EUR 1 = USD 1.1460; CNY 7.6755): https://www.ecb.europa.eu/stats/shared/pdf/eurofxref.pdf?57eae2dc36bcb4af234d5e0b7e1a28c3= (retrieved 2026-09-19).",
239
239
  "confidence": "inferred",
240
240
  "observedAt": "2026-09-19T00:00:00Z"
241
+ },
242
+ "bazaarlink/auto:free": {
243
+ "value": { "inputPerMTokUsd": 0, "outputPerMTokUsd": 0 },
244
+ "source": "official-doc",
245
+ "sourceRef": "https://bazaarlink.ai/api/v1/models — BazaarLink's own public model entry `auto:free` (read 2026-09-27): pricing.prompt 0 / pricing.completion 0 USD per token (= $0.0 / $0.0 per 1M); no cache rate published",
246
+ "confidence": "declared",
247
+ "observedAt": "2026-09-27T00:00:00Z"
248
+ },
249
+ "novita/meta-llama/llama-3.1-8b-instruct": {
250
+ "value": { "inputPerMTokUsd": 0.02, "outputPerMTokUsd": 0.05 },
251
+ "source": "official-doc",
252
+ "sourceRef": "https://api.novita.ai/openai/v1/models — Novita's own public model entry `meta-llama/llama-3.1-8b-instruct` (read 2026-09-27): pricing.prompt.origin_price_per_m_decimal 0.02, completion 0.05 USD per 1M tokens",
253
+ "confidence": "declared",
254
+ "observedAt": "2026-09-27T00:00:00Z"
255
+ },
256
+ "agnes/agnes-2.5-flash": {
257
+ "value": { "inputPerMTokUsd": 0.05, "outputPerMTokUsd": 0.15, "cacheReadPerMTokUsd": 0.005 },
258
+ "source": "official-doc",
259
+ "sourceRef": "https://wiki.agnes-ai.com/en/docs/pricing (read 2026-09-27): \"agnes-2.5-flash | Cached input $0.005/M | Input tokens $0.05/M | Output tokens $0.15/M (List price column)\" — USD 0.05 input / 0.15 output / 0.005 cached input per 1M tokens; tiers: Current promotional price is $0/M for cached input, input, and output (\"Cached input, input tokens, and output tokens are currently free for agnes-2.5-flash\"). (the smallest-context standard tier is stored)",
260
+ "confidence": "declared",
261
+ "observedAt": "2026-09-27T00:00:00Z"
262
+ },
263
+ "synthetic/hf:nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4": {
264
+ "value": { "inputPerMTokUsd": 0.3, "outputPerMTokUsd": 1, "cacheReadPerMTokUsd": 0.06 },
265
+ "source": "official-doc",
266
+ "sourceRef": "https://api.synthetic.new/openai/v1/models — Synthetic's own unauthenticated model list, entry `hf:nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4` (read 2026-09-28): pricing prompt $0.0000003 / completion $0.000001 / input_cache_reads $0.00000006 per token; https://synthetic.new/pricing (read 2026-09-28): \"Synthetic can use either subscription or usage-based pricing\" and \"All models are pay-per-token\" on the usage-based plan, so the per-token price applies to the usage-based path (controller ruling 2026-09-28)",
267
+ "confidence": "declared",
268
+ "observedAt": "2026-09-28T00:00:00Z"
269
+ },
270
+ "synthetic/hf:openai/gpt-oss-120b": {
271
+ "value": { "inputPerMTokUsd": 0.1, "outputPerMTokUsd": 0.1, "cacheReadPerMTokUsd": 0.02 },
272
+ "source": "official-doc",
273
+ "sourceRef": "https://api.synthetic.new/openai/v1/models — Synthetic's own unauthenticated model list, entry `hf:openai/gpt-oss-120b` (read 2026-09-28): pricing prompt $0.0000001 / completion $0.0000001 / input_cache_reads $0.00000002 per token; https://synthetic.new/pricing (read 2026-09-28): \"Synthetic can use either subscription or usage-based pricing\" and \"All models are pay-per-token\" on the usage-based plan, so the per-token price applies to the usage-based path (controller ruling 2026-09-28)",
274
+ "confidence": "declared",
275
+ "observedAt": "2026-09-28T00:00:00Z"
276
+ },
277
+ "synthetic/hf:zai-org/GLM-4.7-Flash": {
278
+ "value": { "inputPerMTokUsd": 0.1, "outputPerMTokUsd": 0.5, "cacheReadPerMTokUsd": 0.02 },
279
+ "source": "official-doc",
280
+ "sourceRef": "https://api.synthetic.new/openai/v1/models — Synthetic's own unauthenticated model list, entry `hf:zai-org/GLM-4.7-Flash` (read 2026-09-28): pricing prompt $0.0000001 / completion $0.0000005 / input_cache_reads $0.00000002 per token; https://synthetic.new/pricing (read 2026-09-28): \"Synthetic can use either subscription or usage-based pricing\" and \"All models are pay-per-token\" on the usage-based plan, so the per-token price applies to the usage-based path (controller ruling 2026-09-28)",
281
+ "confidence": "declared",
282
+ "observedAt": "2026-09-28T00:00:00Z"
241
283
  }
242
284
  }
243
285
  }
@@ -1686,7 +1686,8 @@
1686
1686
  "class": "review-required",
1687
1687
  "reasons": [
1688
1688
  "audit OQ-6: no Zen terms of service or acceptable-use page was located, and no vendor statement that Zen keys may be used from clients other than the `opencode` CLI — the docs show standard AI-SDK usage, which implies it, but implication is not documentation",
1689
- "free-tier models carry a data-collection caveat (\"During its free period, collected data may be used to improve the model\"; NVIDIA-backed free endpoints log usage under NVIDIA's own trial terms) that a host must surface"
1689
+ "free-tier models carry a data-collection caveat (\"During its free period, collected data may be used to improve the model\"; NVIDIA-backed free endpoints log usage under NVIDIA's own trial terms) that a host must surface",
1690
+ "`space-bunny-free` (a stealth model, free for a limited time): Zen's docs say its provider follows a zero-retention policy and does not use request data for training (https://opencode.ai/docs/zen/, read 2026-09-27) -- a VENDOR CLAIM this application has not verified, about a model whose maker is undisclosed"
1690
1691
  ]
1691
1692
  },
1692
1693
  "pricingBasis": "token",
@@ -1762,7 +1763,8 @@
1762
1763
  "risk": {
1763
1764
  "class": "review-required",
1764
1765
  "reasons": [
1765
- "gateway: capability parity is model-by-model (WS-13 §14.4), and per-request provider/data-policy controls must be preserved before any row here is promoted past `candidate`"
1766
+ "gateway: capability parity is model-by-model (WS-13 §14.4), and per-request provider/data-policy controls must be preserved before any row here is promoted past `candidate`",
1767
+ "stealth models (`stealth/*`, e.g. `stealth/space-bunny-alpha`): under OpenRouter's stealth-model terms (https://openrouter.ai/terms/stealth, read 2026-09-27) prompts and completions may be collected and shared with the model's provider, including for training -- a host must surface this before a user sends anything sensitive"
1766
1768
  ]
1767
1769
  },
1768
1770
  "$comment": "liveCatalogAuthority is \"partial\", not \"authoritative\": a gateway routes hundreds of models that change constantly, and which of them a given key can actually reach depends on upstream routing and data-policy settings the list does not express. R6-F's own wording anticipates this (\"local/gateway providers with a non-authoritative live catalog\"). Marking it authoritative made an absent id a definitive fact, which closed the `allowUnlisted` door on exactly the provider whose real ids are other vendors' qualified ids.",
@@ -4646,6 +4648,350 @@
4646
4648
  "tier": "pinned-upstream"
4647
4649
  },
4648
4650
  "$comment": "2026-09-25 refresh: re-admitted on Cohere's fetched Compatibility API doc (tier fetched-document), whose documented base is `https://api.cohere.ai/compatibility/v1` (the extracted row used the api.cohere.com spelling of the same Cohere API). Cohere's native v2 Chat API is a different dialect and is not modelled. Command A+, A Reasoning and A Vision are documented as free up to rate limits, so they carry no per-token price. FIRST KEY ONLY (R-FW-3): the refresh fetched and read https://docs.cohere.com/v2/docs/compatibility-api — Cohere Compatibility API documentation, retrieved 2026-09-25: OpenAI-compatible Chat Completions at `https://api.cohere.ai/compatibility/v1` with a Cohere API key; per-token billing per https://cohere.com/pricing. — the tier stays `pinned-upstream` until a live-gate pass supplies the second key."
4651
+ },
4652
+ {
4653
+ "id": "ovhcloud",
4654
+ "displayName": "OVHcloud AI Endpoints",
4655
+ "protocols": [
4656
+ "openai-chat-completions"
4657
+ ],
4658
+ "$comment": "OVHcloud's serverless AI Endpoints (EU). One OpenAI-compatible router base serves every catalogued LLM; the public catalog JSON names each model's `model_base_url` as that router. Prices are EUR on the provider's own page and are converted at the catalog's one EUR rate.",
4659
+ "authKinds": [
4660
+ "api-key"
4661
+ ],
4662
+ "defaultEndpoints": {
4663
+ "api": "https://oai.endpoints.kepler.ai.cloud.ovh.net/v1"
4664
+ },
4665
+ "modelDiscovery": "none",
4666
+ "liveCatalogAuthority": "unknown",
4667
+ "adapterId": "winter.openai-chat-completions",
4668
+ "family": "openai",
4669
+ "upstream": {
4670
+ "project": "winter",
4671
+ "commit": "",
4672
+ "sourcePaths": []
4673
+ },
4674
+ "risk": {
4675
+ "class": "review-required",
4676
+ "reasons": [
4677
+ "Admitted on the vendor's own fetched documentation; this application has not run a live key gate against this endpoint."
4678
+ ]
4679
+ },
4680
+ "pricingBasis": "token",
4681
+ "admission": {
4682
+ "basis": "api-key",
4683
+ "citation": "https://catalog.endpoints.ai.ovh.net/rest/v1/models_v2 and https://endpoints.ai.cloud.ovh.net/ — OVHcloud AI Endpoints, retrieved 2026-09-27: the public model catalog (HTTP 200, no key) gives `model_base_url: \"https://oai.endpoints.kepler.ai.cloud.ovh.net/v1\"` for every Text Generation model; the product page lists per-model prices as \"€ / Mtoken(input)\" and \"€ / Mtoken(output)\"; https://docs.ovhcloud.com/en/guides/public-cloud/ai-machine-learning/ai-endpoints-getting-started authenticates with the user's own AI Endpoints API key as a Bearer token.",
4684
+ "tier": "fetched-document"
4685
+ },
4686
+ "scope": "llm"
4687
+ },
4688
+ {
4689
+ "id": "crusoe",
4690
+ "displayName": "Crusoe Managed Inference",
4691
+ "protocols": [
4692
+ "openai-chat-completions"
4693
+ ],
4694
+ "$comment": "Crusoe Cloud's serverless inference: an OpenAI-compatible endpoint at a fixed base, pay-as-you-go per 1M tokens in USD.",
4695
+ "authKinds": [
4696
+ "api-key"
4697
+ ],
4698
+ "defaultEndpoints": {
4699
+ "api": "https://api.inference.crusoecloud.com/v1"
4700
+ },
4701
+ "modelDiscovery": "none",
4702
+ "liveCatalogAuthority": "unknown",
4703
+ "adapterId": "winter.openai-chat-completions",
4704
+ "family": "openai",
4705
+ "upstream": {
4706
+ "project": "winter",
4707
+ "commit": "",
4708
+ "sourcePaths": []
4709
+ },
4710
+ "risk": {
4711
+ "class": "review-required",
4712
+ "reasons": [
4713
+ "Admitted on the vendor's own fetched documentation; this application has not run a live key gate against this endpoint."
4714
+ ]
4715
+ },
4716
+ "pricingBasis": "token",
4717
+ "admission": {
4718
+ "basis": "api-key",
4719
+ "citation": "https://docs.crusoecloud.com/quickstart/getting-started-with-serverless-inference, https://docs.crusoecloud.com/serverless-inference/available-models and https://www.crusoe.ai/cloud/pricing — Crusoe documentation, retrieved 2026-09-27: `OpenAI(api_key=CRUSOE_API_KEY, base_url=\"https://api.inference.crusoecloud.com/v1\")`; \"You can use the OpenAI-API compatible endpoint at api.inference.crusoecloud.com to access the models below\"; \"All prices shown per 1 million tokens in USD.\"",
4720
+ "tier": "fetched-document"
4721
+ },
4722
+ "scope": "llm"
4723
+ },
4724
+ {
4725
+ "id": "tinfoil",
4726
+ "displayName": "Tinfoil",
4727
+ "protocols": [
4728
+ "openai-chat-completions"
4729
+ ],
4730
+ "$comment": "Tinfoil's confidential-computing inference (models run in attested enclaves). A plain OpenAI client reaches the API directly; connection-time attestation needs Tinfoil's own SDK or proxy, and without it the docs say traffic still gets audit-time verification through the attestation transparency log — this row is the plain-client path, so it makes no attestation claim. The model list is public.",
4731
+ "authKinds": [
4732
+ "api-key"
4733
+ ],
4734
+ "defaultEndpoints": {
4735
+ "api": "https://inference.tinfoil.sh/v1"
4736
+ },
4737
+ "modelDiscovery": "openai-models",
4738
+ "liveCatalogAuthority": "unknown",
4739
+ "adapterId": "winter.openai-chat-completions",
4740
+ "family": "openai",
4741
+ "upstream": {
4742
+ "project": "winter",
4743
+ "commit": "",
4744
+ "sourcePaths": []
4745
+ },
4746
+ "risk": {
4747
+ "class": "review-required",
4748
+ "reasons": [
4749
+ "Admitted on the vendor's own fetched documentation; this application has not run a live key gate against this endpoint.",
4750
+ "a plain OpenAI client skips Tinfoil's connection-time enclave attestation (the vendor's SDK/proxy performs it); this row does not claim attested transport"
4751
+ ]
4752
+ },
4753
+ "pricingBasis": "token",
4754
+ "admission": {
4755
+ "basis": "api-key",
4756
+ "citation": "https://inference.tinfoil.sh/v1/models and https://docs.tinfoil.sh/introduction.md — Tinfoil, retrieved 2026-09-27: the model list is public (HTTP 200, no key) and names `/v1/chat/completions` per model with USD per-1M-token prices; \"OpenAI-compatible clients don't perform connection-time attestation themselves ... Without either, your traffic still benefits from audit-time verification through Tinfoil's attestation transparency log\"; https://docs.tinfoil.sh/guides/proxy-server.md authenticates with a `TINFOIL_API_KEY` Bearer key.",
4757
+ "tier": "fetched-document"
4758
+ },
4759
+ "scope": "llm"
4760
+ },
4761
+ {
4762
+ "id": "snowflake-cortex",
4763
+ "displayName": "Snowflake Cortex REST API (OpenAI dialect)",
4764
+ "protocols": [
4765
+ "openai-chat-completions"
4766
+ ],
4767
+ "$comment": "Snowflake Cortex's REST inference API on the OPERATOR'S OWN account host. Model rows are the Cortex REST API's generally available models (✔ in the provider's model-availability table; public- and private-preview models are left out). Billing is per token in Snowflake AI Credits; the USD price per credit differs by on-demand/capacity contract and region, so no USD price is stated. The same base also serves an Anthropic Messages route for Claude models, not catalogued here.",
4768
+ "authKinds": [
4769
+ "api-key"
4770
+ ],
4771
+ "defaultEndpoints": {},
4772
+ "requiresUserEndpoint": true,
4773
+ "endpointTemplate": "https://<account-identifier>.snowflakecomputing.com/api/v2/cortex/v1",
4774
+ "modelDiscovery": "none",
4775
+ "liveCatalogAuthority": "unknown",
4776
+ "adapterId": "winter.openai-chat-completions",
4777
+ "family": "openai",
4778
+ "upstream": {
4779
+ "project": "winter",
4780
+ "commit": "",
4781
+ "sourcePaths": []
4782
+ },
4783
+ "risk": {
4784
+ "class": "review-required",
4785
+ "reasons": [
4786
+ "Admitted on the vendor's own fetched documentation; this application has not run a live key gate against this endpoint.",
4787
+ "the endpoint is the OPERATOR'S OWN account host and is never reviewed by Winter — it is evaluated as a user endpoint",
4788
+ "per-token billing in Snowflake AI Credits: no USD price is catalogued"
4789
+ ]
4790
+ },
4791
+ "pricingBasis": "token",
4792
+ "admission": {
4793
+ "basis": "api-key",
4794
+ "citation": "https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-rest-api — Snowflake documentation, retrieved 2026-09-27: `baseURL: \"https://<account-identifier>.snowflakecomputing.com/api/v2/cortex/v1\"`; \"The Chat Completions API follows the OpenAI specification\"; `-H \"Authorization: Bearer <SNOWFLAKE_PAT>\"` with a Snowflake Programmatic Access Token (PAT); \"Tool calling is supported for OpenAI and Claude models only.\"",
4795
+ "tier": "fetched-document"
4796
+ },
4797
+ "scope": "llm"
4798
+ },
4799
+ {
4800
+ "id": "cloudflare-workers-ai",
4801
+ "displayName": "Cloudflare Workers AI",
4802
+ "protocols": [
4803
+ "openai-chat-completions"
4804
+ ],
4805
+ "$comment": "Cloudflare Workers AI's OpenAI-compatible endpoint. The host is fixed but the path carries the OPERATOR'S OWN account id, so the row is per-tenant. The pricing page states each LLM's USD price per 1M tokens (derived by Cloudflare from its neuron rate).",
4806
+ "authKinds": [
4807
+ "api-key"
4808
+ ],
4809
+ "defaultEndpoints": {},
4810
+ "requiresUserEndpoint": true,
4811
+ "endpointTemplate": "https://api.cloudflare.com/client/v4/accounts/<account-id>/ai/v1",
4812
+ "modelDiscovery": "none",
4813
+ "liveCatalogAuthority": "unknown",
4814
+ "adapterId": "winter.openai-chat-completions",
4815
+ "family": "openai",
4816
+ "upstream": {
4817
+ "project": "winter",
4818
+ "commit": "",
4819
+ "sourcePaths": []
4820
+ },
4821
+ "risk": {
4822
+ "class": "review-required",
4823
+ "reasons": [
4824
+ "Admitted on the vendor's own fetched documentation; this application has not run a live key gate against this endpoint.",
4825
+ "the account id in the path is the OPERATOR'S OWN — the endpoint is evaluated as a user endpoint"
4826
+ ]
4827
+ },
4828
+ "pricingBasis": "token",
4829
+ "admission": {
4830
+ "basis": "api-key",
4831
+ "citation": "https://developers.cloudflare.com/workers-ai/configuration/open-ai-compatibility/ and https://developers.cloudflare.com/workers-ai/platform/pricing/ — Cloudflare documentation, retrieved 2026-09-27: `--url https://api.cloudflare.com/client/v4/accounts/{account_id}/ai/v1/chat/completions --header \"Authorization: Bearer {api_token}\"`; per-model prices \"$… per M input tokens $… per M output tokens\". The credential is the user's own Cloudflare API token.",
4832
+ "tier": "fetched-document"
4833
+ },
4834
+ "scope": "llm"
4835
+ },
4836
+ {
4837
+ "id": "yi",
4838
+ "displayName": "Yi (01.AI)",
4839
+ "protocols": [
4840
+ "openai-chat-completions"
4841
+ ],
4842
+ "authKinds": [
4843
+ "api-key"
4844
+ ],
4845
+ "defaultEndpoints": {
4846
+ "api": "https://api.lingyiwanwu.com/v1"
4847
+ },
4848
+ "modelDiscovery": "none",
4849
+ "liveCatalogAuthority": "unknown",
4850
+ "adapterId": "winter.openai-chat-completions",
4851
+ "family": "openai",
4852
+ "upstream": {
4853
+ "project": "OmniRoute",
4854
+ "commit": "5458026c216f77a3da68ea49152dc33470cfe2cb",
4855
+ "sourcePaths": [
4856
+ "open-sse/config/providers/registry/yi/index.ts",
4857
+ "src/shared/constants/providers/apikey/index.ts"
4858
+ ]
4859
+ },
4860
+ "risk": {
4861
+ "class": "blocked",
4862
+ "reasons": [
4863
+ "dead endpoint: the API host answers HTTP 410 to `GET https://api.lingyiwanwu.com/v1/models` with `{\"error\":{\"code\":\"model_service_closed\",\"message\":\"Model service has been discontinued\"}}` (probed 2026-09-28)",
4864
+ "WS-13b §1 admission evidence is PINNED-UPSTREAM, not a fetched vendor document: the citation names the vendor site OmniRoute records, and the api-key path is attested by the pinned RegistryEntry rather than by a doc this lane read"
4865
+ ]
4866
+ },
4867
+ "scope": "llm",
4868
+ "pricingBasis": "token",
4869
+ "admission": {
4870
+ "basis": "api-key",
4871
+ "citation": "https://01.ai — the vendor's own site as OmniRoute's product catalog records it at 5458026 (src/shared/constants/providers/apikey/*.ts, blob-pinned in extraction-manifest.json). The api-key path is attested by the pinned RegistryEntry: authType \"apikey\", OpenAI Chat Completions at https://api.lingyiwanwu.com/v1. EVIDENCE TIER: pinned-upstream, NOT a page this lane fetched and read — see PROVENANCE.md \"Two tiers of admission citation\".",
4872
+ "tier": "pinned-upstream"
4873
+ },
4874
+ "$comment": "cat34 review (2026-09-28): BLOCKED as a dead endpoint, following PROVENANCE.md's citation-liveness precedent (a citation or endpoint that resolves to nothing is a row with no evidence). This is the upstream-extracted row verbatim except `risk`."
4875
+ },
4876
+ {
4877
+ "id": "pioneer",
4878
+ "displayName": "Pioneer AI",
4879
+ "protocols": [
4880
+ "openai-chat-completions"
4881
+ ],
4882
+ "authKinds": [
4883
+ "api-key"
4884
+ ],
4885
+ "defaultEndpoints": {
4886
+ "api": "https://api.pioneer.ai/v1"
4887
+ },
4888
+ "modelDiscovery": "none",
4889
+ "liveCatalogAuthority": "unknown",
4890
+ "adapterId": "winter.openai-chat-completions",
4891
+ "family": "openai",
4892
+ "upstream": {
4893
+ "project": "OmniRoute",
4894
+ "commit": "5458026c216f77a3da68ea49152dc33470cfe2cb",
4895
+ "sourcePaths": [
4896
+ "open-sse/config/providers/registry/pioneer/index.ts",
4897
+ "src/shared/constants/providers/apikey/index.ts"
4898
+ ]
4899
+ },
4900
+ "risk": {
4901
+ "class": "blocked",
4902
+ "reasons": [
4903
+ "dead endpoint: the API host answers HTTP 410 to `GET https://api.pioneer.ai/v1/models` with `code: \"host_retired\"` and `moved_to: \"https://api.fastino.ai/v1/models\"` (\"This API host was retired. Use https://api.fastino.ai\"; probed 2026-09-28)",
4904
+ "WS-13b §1 admission evidence is PINNED-UPSTREAM, not a fetched vendor document: the citation names the vendor site OmniRoute records, and the api-key path is attested by the pinned RegistryEntry rather than by a doc this lane read"
4905
+ ]
4906
+ },
4907
+ "scope": "llm",
4908
+ "pricingBasis": "token",
4909
+ "admission": {
4910
+ "basis": "api-key",
4911
+ "citation": "https://pioneer.ai — the vendor's own site as OmniRoute's product catalog records it at 5458026 (src/shared/constants/providers/apikey/*.ts, blob-pinned in extraction-manifest.json). The api-key path is attested by the pinned RegistryEntry: authType \"apikey\", OpenAI Chat Completions at https://api.pioneer.ai/v1. EVIDENCE TIER: pinned-upstream, NOT a page this lane fetched and read — see PROVENANCE.md \"Two tiers of admission citation\".",
4912
+ "tier": "pinned-upstream"
4913
+ },
4914
+ "$comment": "cat34 review (2026-09-28): BLOCKED as a dead endpoint, following PROVENANCE.md's citation-liveness precedent (a citation or endpoint that resolves to nothing is a row with no evidence). This is the upstream-extracted row verbatim except `risk`. The successor host api.fastino.ai answers (HTTP 200 on /v1/models, probed 2026-09-28) but is NOT re-admitted here: Fastino is a new admission that needs its own reviewed row."
4915
+ },
4916
+ {
4917
+ "id": "modal",
4918
+ "displayName": "Modal",
4919
+ "protocols": [
4920
+ "openai-chat-completions"
4921
+ ],
4922
+ "authKinds": [
4923
+ "api-key"
4924
+ ],
4925
+ "defaultEndpoints": {
4926
+ "api": "https://api.modal.ai/v1"
4927
+ },
4928
+ "modelDiscovery": "none",
4929
+ "liveCatalogAuthority": "unknown",
4930
+ "adapterId": "winter.openai-chat-completions",
4931
+ "family": "openai",
4932
+ "upstream": {
4933
+ "project": "OmniRoute",
4934
+ "commit": "5458026c216f77a3da68ea49152dc33470cfe2cb",
4935
+ "sourcePaths": [
4936
+ "open-sse/config/providers/registry/modal/index.ts",
4937
+ "src/shared/constants/providers/apikey/index.ts"
4938
+ ]
4939
+ },
4940
+ "risk": {
4941
+ "class": "blocked",
4942
+ "reasons": [
4943
+ "dead endpoint: `https://api.modal.ai` fails TLS (`tlsv1 unrecognized name`) and `http://modal.ai` serves a 114-byte parked-domain page (probed 2026-09-28): modal.ai is not Modal's domain (Modal is modal.com), so this endpoint was never valid",
4944
+ "WS-13b §1 admission evidence is PINNED-UPSTREAM, not a fetched vendor document: the citation names the vendor site OmniRoute records, and the api-key path is attested by the pinned RegistryEntry rather than by a doc this lane read"
4945
+ ]
4946
+ },
4947
+ "scope": "llm",
4948
+ "pricingBasis": "token",
4949
+ "admission": {
4950
+ "basis": "api-key",
4951
+ "citation": "https://modal.com/docs — the vendor's own site as OmniRoute's product catalog records it at 5458026 (src/shared/constants/providers/apikey/*.ts, blob-pinned in extraction-manifest.json). The api-key path is attested by the pinned RegistryEntry: authType \"apikey\", OpenAI Chat Completions at https://api.modal.ai/v1. EVIDENCE TIER: pinned-upstream, NOT a page this lane fetched and read — see PROVENANCE.md \"Two tiers of admission citation\".",
4952
+ "tier": "pinned-upstream"
4953
+ },
4954
+ "$comment": "cat34 review (2026-09-28): BLOCKED as a dead endpoint, following PROVENANCE.md's citation-liveness precedent (a citation or endpoint that resolves to nothing is a row with no evidence). This is the upstream-extracted row verbatim except `risk`."
4955
+ },
4956
+ {
4957
+ "id": "hyperbolic",
4958
+ "displayName": "Hyperbolic",
4959
+ "protocols": [
4960
+ "openai-chat-completions"
4961
+ ],
4962
+ "authKinds": [
4963
+ "api-key"
4964
+ ],
4965
+ "defaultEndpoints": {
4966
+ "api": "https://api.hyperbolic.xyz/v1"
4967
+ },
4968
+ "modelDiscovery": "none",
4969
+ "liveCatalogAuthority": "unknown",
4970
+ "adapterId": "winter.openai-chat-completions",
4971
+ "family": "openai",
4972
+ "upstream": {
4973
+ "project": "OmniRoute",
4974
+ "commit": "5458026c216f77a3da68ea49152dc33470cfe2cb",
4975
+ "sourcePaths": [
4976
+ "open-sse/config/providers/registry/hyperbolic/index.ts",
4977
+ "src/shared/constants/providers/apikey/index.ts"
4978
+ ]
4979
+ },
4980
+ "risk": {
4981
+ "class": "blocked",
4982
+ "reasons": [
4983
+ "dead endpoint: https://hyperbolic.ai/docs/faq/inference-models (read 2026-09-28): \"The serverless inference API and the playground have been retired. The models that used to be listed are no longer available\"; `https://api.hyperbolic.xyz/v1/models` still answers 401 `Not authenticated` (probed 2026-09-28), which proves only that a gateway is up",
4984
+ "WS-13b §1 admission evidence is PINNED-UPSTREAM, not a fetched vendor document: the citation names the vendor site OmniRoute records, and the api-key path is attested by the pinned RegistryEntry rather than by a doc this lane read"
4985
+ ]
4986
+ },
4987
+ "scope": "llm",
4988
+ "pricingBasis": "token",
4989
+ "admission": {
4990
+ "basis": "api-key",
4991
+ "citation": "https://hyperbolic.xyz — the vendor's own site as OmniRoute's product catalog records it at 5458026 (src/shared/constants/providers/apikey/*.ts, blob-pinned in extraction-manifest.json). The api-key path is attested by the pinned RegistryEntry: authType \"apikey\", OpenAI Chat Completions at https://api.hyperbolic.xyz/v1. EVIDENCE TIER: pinned-upstream, NOT a page this lane fetched and read — see PROVENANCE.md \"Two tiers of admission citation\".",
4992
+ "tier": "pinned-upstream"
4993
+ },
4994
+ "$comment": "cat34 review (2026-09-28): BLOCKED as a dead endpoint, following PROVENANCE.md's citation-liveness precedent (a citation or endpoint that resolves to nothing is a row with no evidence). This is the upstream-extracted row verbatim except `risk`."
4649
4995
  }
4650
4996
  ]
4651
4997
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yanlinglabs/winter-provider-catalog",
3
- "version": "0.0.32",
3
+ "version": "0.0.34",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "engines": {