@juspay/neurolink 12.39.1 → 12.40.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/CHANGELOG.md +2 -2
  2. package/README.md +1 -1
  3. package/dist/auth/middleware/AuthMiddleware.d.ts +1 -1
  4. package/dist/browser/neurolink.min.js +423 -422
  5. package/dist/constants/enums.d.ts +237 -0
  6. package/dist/constants/enums.js +257 -0
  7. package/dist/neurolink.js +46 -21
  8. package/dist/processors/media/VideoProcessor.d.ts +17 -0
  9. package/dist/processors/media/VideoProcessor.js +119 -0
  10. package/dist/providers/catalog/ai21.json +142 -0
  11. package/dist/providers/catalog/aionlabs.json +144 -0
  12. package/dist/providers/catalog/atlas-cloud.json +203 -0
  13. package/dist/providers/catalog/avian-io.json +227 -0
  14. package/dist/providers/catalog/crusoe.json +229 -0
  15. package/dist/providers/catalog/index.generated.d.ts +1 -1
  16. package/dist/providers/catalog/index.generated.js +60 -0
  17. package/dist/providers/catalog/minimax.json +200 -0
  18. package/dist/providers/catalog/moonshot-ai.json +135 -0
  19. package/dist/providers/catalog/nebius.json +165 -0
  20. package/dist/providers/catalog/prime-intellect.json +217 -0
  21. package/dist/providers/catalog/scaleway.json +177 -0
  22. package/dist/providers/catalog/siliconflow.json +242 -0
  23. package/dist/providers/catalog/stepfun.json +155 -0
  24. package/dist/providers/catalog/subconscious.json +93 -0
  25. package/dist/providers/catalog/tinfoil.json +155 -0
  26. package/dist/providers/catalog/umans-ai.json +174 -0
  27. package/dist/providers/catalog/venice-ai.json +208 -0
  28. package/dist/providers/catalog/vultr-inference.json +220 -0
  29. package/dist/providers/catalog/wafer.json +165 -0
  30. package/dist/providers/catalog/wandb-inference.json +249 -0
  31. package/dist/providers/catalog/z-ai.json +255 -0
  32. package/dist/types/providerCatalog.generated.d.ts +2 -2
  33. package/dist/types/providers.d.ts +80 -0
  34. package/docs-site/static/search-index.json +227 -3
  35. package/package.json +3 -2
@@ -0,0 +1,155 @@
1
+ {
2
+ "$schema": "./provider-catalog.schema.json",
3
+ "id": "tinfoil",
4
+ "displayName": "Tinfoil",
5
+ "aliases": [],
6
+ "tier": 2,
7
+ "wire": {
8
+ "baseURL": "https://inference.tinfoil.sh/v1"
9
+ },
10
+ "models": {
11
+ "default": "kimi-k3",
12
+ "fallbacks": ["gpt-oss-120b", "gemma4-31b", "llama3-3-70b"],
13
+ "defaultContextWindow": 131072,
14
+ "defaultMaxOutputTokens": 4096,
15
+ "catalog": {
16
+ "kimi-k3": {
17
+ "contextWindow": 262144,
18
+ "pricingPerMTok": {
19
+ "input": 4,
20
+ "output": 20,
21
+ "cachedInput": 0.8
22
+ },
23
+ "vision": true,
24
+ "status": "production",
25
+ "description": "NeuroLink default. Roster description: \"Moonshot's flagship multimodal MoE model with hybrid attention for long-context reasoning, coding, and agentic workflows\". https://docs.tinfoil.sh/guides/tool-calling (Best Practices): \"Among the models offered on Tinfoil API, Kimi K3 is recommended for function calling and agentic workflows\"; https://docs.tinfoil.sh/tutorials/coding-agents uses the model ID kimi-k3 in its setup examples. Unauthenticated GET https://inference.tinfoil.sh/v1/models roster (2026-09-29, 17 models): type chat, endpoints [\"/v1/chat/completions\",\"/v1/responses\"], context_window 262144 (https://docs.tinfoil.sh/models/chat gives the Context value as \"256K tokens\"), inputTokenPricePer1M 4, outputTokenPricePer1M 20, cachedInputTokenPricePer1M 0.8, multimodal true, tool_calling true, reasoning true. https://docs.tinfoil.sh/models/vision and https://docs.tinfoil.sh/guides/image-processing name Kimi K3 among the models that support image inputs, so vision is true. https://docs.tinfoil.sh/guides/reasoning lists the reasoning_effort values low, high and max for it. Status is production: this roster entry does not set `experimental`."
26
+ },
27
+ "gpt-oss-120b": {
28
+ "contextWindow": 131072,
29
+ "pricingPerMTok": {
30
+ "input": 0.15,
31
+ "output": 0.6
32
+ },
33
+ "vision": false,
34
+ "status": "production",
35
+ "description": "Fallback. Roster description: \"Open-weight model designed for powerful reasoning, agentic tasks, and versatile developer use cases\". The first inference example on https://docs.tinfoil.sh/quickstart uses this model ID; https://docs.tinfoil.sh/models/chat gives the Best for value as \"Production use cases requiring configurable reasoning and tool use\". Unauthenticated GET https://inference.tinfoil.sh/v1/models roster (2026-09-29, 17 models): type chat, endpoints [\"/v1/chat/completions\",\"/v1/responses\"], context_window 131072 (docs Context value \"131K tokens\"), inputTokenPricePer1M 0.15, outputTokenPricePer1M 0.6, multimodal false, tool_calling true, reasoning true. https://docs.tinfoil.sh/guides/image-processing: \"Other models (Llama, GPT-OSS) are text-only and cannot process images.\", so vision is false. https://docs.tinfoil.sh/guides/reasoning lists the reasoning_effort values low, medium and high for it. Status is production: this roster entry does not set `experimental`."
36
+ },
37
+ "gemma4-31b": {
38
+ "contextWindow": 262144,
39
+ "pricingPerMTok": {
40
+ "input": 0.4,
41
+ "output": 1
42
+ },
43
+ "vision": true,
44
+ "status": "production",
45
+ "description": "Fallback. https://docs.tinfoil.sh/models/chat gives the Strengths value as \"Built-in thinking mode, image understanding, native function calling, multilingual support for 35+ languages\". Unauthenticated GET https://inference.tinfoil.sh/v1/models roster (2026-09-29, 17 models): type chat, endpoints [\"/v1/chat/completions\",\"/v1/responses\"], context_window 262144 (docs Context value \"256K tokens\"), inputTokenPricePer1M 0.4, outputTokenPricePer1M 1, multimodal true, tool_calling true, reasoning true. https://docs.tinfoil.sh/models/vision and https://docs.tinfoil.sh/guides/image-processing name Gemma 4 31B among the models that support image inputs, so vision is true. https://docs.tinfoil.sh/guides/reasoning lists the reasoning_effort values none, minimal, low, medium, high, xhigh and max for it. Status is production: this roster entry does not set `experimental`."
46
+ },
47
+ "llama3-3-70b": {
48
+ "contextWindow": 131072,
49
+ "pricingPerMTok": {
50
+ "input": 1.75,
51
+ "output": 2.75
52
+ },
53
+ "vision": false,
54
+ "status": "production",
55
+ "description": "Fallback. Roster description: \"High-performance multilingual language model optimized for dialogue\". https://docs.tinfoil.sh/models/chat gives the Strengths value as \"Multilingual, dialogue-optimized, function calling\". Unauthenticated GET https://inference.tinfoil.sh/v1/models roster (2026-09-29, 17 models): type chat, endpoints [\"/v1/chat/completions\"], context_window 131072 (docs Context value \"128K tokens\"), inputTokenPricePer1M 1.75, outputTokenPricePer1M 2.75, multimodal false, tool_calling true, reasoning false. https://docs.tinfoil.sh/guides/image-processing: \"Other models (Llama, GPT-OSS) are text-only and cannot process images.\", so vision is false. https://docs.tinfoil.sh/guides/reasoning states that llama3-3-70b is not a reasoning model. Status is production: this roster entry does not set `experimental`."
56
+ },
57
+ "glm-5-3": {
58
+ "contextWindow": 1048576,
59
+ "pricingPerMTok": {
60
+ "input": 1.8,
61
+ "output": 5.75,
62
+ "cachedInput": 0.45
63
+ },
64
+ "vision": false,
65
+ "status": "production",
66
+ "description": "Catalog entry (not a NeuroLink default or fallback). Roster description: \"Z.ai's latest flagship for agentic coding and long-horizon tasks, with a 1M-token context window\". Unauthenticated GET https://inference.tinfoil.sh/v1/models roster (2026-09-29, 17 models): type chat, endpoints [\"/v1/chat/completions\",\"/v1/responses\"], context_window 1048576 (https://docs.tinfoil.sh/models/chat gives the Context value as \"1M tokens\"), inputTokenPricePer1M 1.8, outputTokenPricePer1M 5.75, cachedInputTokenPricePer1M 0.45, multimodal false, tool_calling true, reasoning true, so vision is false. https://docs.tinfoil.sh/models/chat states that reasoning tokens count toward max_tokens for this model and that structured outputs and strict tool calls at the default effort need a generous max_tokens (around 20K) or a lower effort. https://docs.tinfoil.sh/guides/reasoning lists the reasoning_effort values low, high and max for it. Status is production: this roster entry does not set `experimental`."
67
+ },
68
+ "glm-5-3-flash": {
69
+ "contextWindow": 1048576,
70
+ "pricingPerMTok": {
71
+ "input": 0.4,
72
+ "output": 1.25,
73
+ "cachedInput": 0.1
74
+ },
75
+ "vision": true,
76
+ "status": "preview",
77
+ "description": "Catalog entry (not a NeuroLink default or fallback). Roster description: \"Z.AI's fast multimodal MoE model with a 1M-token context window, image input, reasoning, and tool calling\". Unauthenticated GET https://inference.tinfoil.sh/v1/models roster (2026-09-29, 17 models): type chat, endpoints [\"/v1/chat/completions\",\"/v1/responses\"], experimental true (status is therefore preview), context_window 1048576 (https://docs.tinfoil.sh/models/chat gives the Context value as \"1M tokens\"), inputTokenPricePer1M 0.4, outputTokenPricePer1M 1.25, cachedInputTokenPricePer1M 0.1, multimodal true, tool_calling true, reasoning true. https://docs.tinfoil.sh/models/vision and https://docs.tinfoil.sh/guides/image-processing name GLM-5.3 Flash among the models that support image inputs, so vision is true. https://docs.tinfoil.sh/models/chat states that reasoning tokens count toward max_tokens for this model and that structured outputs and strict tool calls at the default effort need a generous max_tokens (around 20K) or a lower effort. https://docs.tinfoil.sh/guides/reasoning lists the reasoning_effort values low, high and max for it."
78
+ },
79
+ "deepseek-v4-1-flash": {
80
+ "contextWindow": 1048576,
81
+ "pricingPerMTok": {
82
+ "input": 0.65,
83
+ "output": 1.45,
84
+ "cachedInput": 0.13
85
+ },
86
+ "vision": true,
87
+ "status": "preview",
88
+ "description": "Catalog entry (not a NeuroLink default or fallback). Roster description: \"DeepSeek's efficient MoE model with a 1M-token context window, image input, Engram memory, built-in speculative decoding, and tool calling\". https://docs.tinfoil.sh/models/chat shows a warning on this model: \"this model is not yet fully productionized. Capacity and performance may change while we finish rolling it out.\" (the roster field experimental is true), so status is preview. Unauthenticated GET https://inference.tinfoil.sh/v1/models roster (2026-09-29, 17 models): type chat, endpoints [\"/v1/chat/completions\",\"/v1/responses\"], context_window 1048576 (docs Context value \"1M tokens\"), inputTokenPricePer1M 0.65, outputTokenPricePer1M 1.45, cachedInputTokenPricePer1M 0.13, multimodal true, tool_calling true, reasoning true. https://docs.tinfoil.sh/models/vision and https://docs.tinfoil.sh/guides/image-processing name DeepSeek V4.1 Flash among the models that support image inputs, so vision is true. https://docs.tinfoil.sh/guides/reasoning lists the reasoning_effort values none, low, high, xhigh and max for it."
89
+ }
90
+ },
91
+ "topModels": [
92
+ "kimi-k3",
93
+ "gpt-oss-120b",
94
+ "gemma4-31b",
95
+ "llama3-3-70b",
96
+ "glm-5-3",
97
+ "glm-5-3-flash",
98
+ "deepseek-v4-1-flash"
99
+ ]
100
+ },
101
+ "capabilities": {
102
+ "text": true,
103
+ "streaming": true,
104
+ "tools": true,
105
+ "toolsWithStreaming": false,
106
+ "structuredOutput": true,
107
+ "structuredOutputWithTools": false,
108
+ "embeddings": false,
109
+ "thinking": true
110
+ },
111
+ "errorRules": [
112
+ {
113
+ "pattern": "invalid_api_key",
114
+ "class": "authentication",
115
+ "message": "Invalid Tinfoil API key (code invalid_api_key). Check {apiKeyEnvVar}. Get one at {setupUrl}"
116
+ },
117
+ {
118
+ "status": 402,
119
+ "pattern": "You exceeded your current quota",
120
+ "class": "provider",
121
+ "message": "Tinfoil reported HTTP 402 (insufficient_quota). https://docs.tinfoil.sh/sdk/error-handling lists 402 as the account or organization having no remaining balance or an inactive subscription; billing is managed under Billing in the Tinfoil dashboard (https://docs.tinfoil.sh/get-api-key)"
122
+ },
123
+ {
124
+ "pattern": "insufficient_quota|Spend limit reached for this API key|Input token limit reached for this API key|Output token limit reached for this API key",
125
+ "class": "provider",
126
+ "message": "Tinfoil reported a limit on this API key (insufficient_quota). https://docs.tinfoil.sh/sdk/error-handling describes a 429 from a per-key cap as not transient, so retrying will not help"
127
+ }
128
+ ],
129
+ "setup": {
130
+ "url": "https://dash.tinfoil.sh?tab=api-keys",
131
+ "apiKeyFormat": null,
132
+ "billingPolicy": "free-with-card",
133
+ "instructions": [
134
+ "1. Visit: https://dash.tinfoil.sh?tab=api-keys and sign in or sign up — https://docs.tinfoil.sh/get-api-key says \"Create an account with your email or one of the social connections.\"",
135
+ "2. On the dashboard Products page, click Activate on the Private Inference card. Per https://docs.tinfoil.sh/get-api-key, if no payment method is on file you are redirected to a checkout page to enter your card details, and \"You’re only charged based on usage.\"",
136
+ "3. The activation dialog creates a \"Default API key\" and, per the same page, \"adds $1 in API credits to your account\"; additional keys are created from API Keys in the sidebar",
137
+ "4. Set {apiKeyEnvVar} in your .env file (the examples on https://docs.tinfoil.sh/quickstart read TINFOIL_API_KEY)",
138
+ "5. NeuroLink sends requests straight to https://inference.tinfoil.sh/v1. https://docs.tinfoil.sh/sdk/direct-api-access says \"but this is not recommended in production\" and \"Direct access skips the automatic attestation verification our SDKs perform\". https://docs.tinfoil.sh/local-proxy/cli documents a local proxy that verifies enclave attestations and serves http://127.0.0.1:3301/v1 for OpenAI-compatible clients (not exercised with NeuroLink)"
139
+ ],
140
+ "description": "OpenAI-compatible endpoint at https://inference.tinfoil.sh/v1 (https://tinfoil.sh: \"Our API is OpenAI-compatible, open-source, and fully verifiable.\"; https://docs.tinfoil.sh/models/chat: \"Chat models use the OpenAI chat completions API.\"), serving seven chat models. The unauthenticated GET https://inference.tinfoil.sh/v1/models on 2026-09-29 returned HTTP 200 with 17 entries; the ten entries whose roster type is not chat (safety, embedding, document, audio, tts, tool) are not in this catalog. An unauthenticated GET https://inference.tinfoil.sh/v1/chat/completions on 2026-09-29 returned HTTP 400 with {\"error\":{\"message\":\"Invalid request body: EOF.\",\"type\":\"invalid_request_error\",\"param\":null,\"code\":\"invalid_json\"}}, so no authentication-failure body was observed and errorRules use the codes and messages documented at https://docs.tinfoil.sh/sdk/error-handling (invalid_api_key, insufficient_quota). models.defaultContextWindow (131072) and models.defaultMaxOutputTokens (4096) are placeholders the vendor does not publish; per-model contextWindow values are the roster's context_window fields."
141
+ },
142
+ "evidence": {
143
+ "rosterVerified": {
144
+ "date": "2026-09-29",
145
+ "status": 200,
146
+ "method": "unauthenticated GET https://inference.tinfoil.sh/v1/models — 17 models; credential-free, no key used"
147
+ },
148
+ "billingProbe": {
149
+ "date": "2026-09-29",
150
+ "method": "public page https://docs.tinfoil.sh/get-api-key — card details are entered at checkout when no payment method is on file, \"You’re only charged based on usage.\", and the activation dialog \"adds $1 in API credits to your account\"; credential-free"
151
+ },
152
+ "liveMatrix": null,
153
+ "addedInPR": "https://github.com/juspay/neurolink/pull/1860"
154
+ }
155
+ }
@@ -0,0 +1,174 @@
1
+ {
2
+ "$schema": "./provider-catalog.schema.json",
3
+ "id": "umans-ai",
4
+ "displayName": "Umans AI",
5
+ "aliases": ["umans"],
6
+ "tier": 2,
7
+ "wire": {
8
+ "baseURL": "https://api.code.umans.ai/v1"
9
+ },
10
+ "models": {
11
+ "default": "umans-coder",
12
+ "fallbacks": [
13
+ "umans-glm-5.3",
14
+ "umans-deepseek-v4-flash-0731",
15
+ "umans-kimi-k3"
16
+ ],
17
+ "defaultContextWindow": 262144,
18
+ "defaultMaxOutputTokens": 131072,
19
+ "catalog": {
20
+ "umans-coder": {
21
+ "contextWindow": 1048576,
22
+ "maxOutputTokens": 131072,
23
+ "pricingPerMTok": {
24
+ "input": 0.15,
25
+ "output": 0.5,
26
+ "cachedInput": 0.03
27
+ },
28
+ "vision": true,
29
+ "status": "production",
30
+ "description": "Default - the vendor's own default model: every curl example on https://app.umans.ai/offers/code/docs names it, the docs' Models table lists it as \"Default: we choose the best for you\", and the docs' CLI launches it by default. It is a routing alias, not a fixed model: the docs say it \"routes to our current pick, which changes as we evaluate models\" (GLM-5.3-Flash since September 9, 2026), and https://app.umans.ai/pricing says \"Umans Coder is an alias for this model today: same rates, routed automatically\" under GLM 5.3 Flash. Read on 2026-09-29: unauthenticated GET https://api.code.umans.ai/v1/models - context_length 1,048,576, pricing 0.15 input / 0.5 output; unauthenticated GET https://api.code.umans.ai/v1/models/info - base_model GLM-5.3-Flash, max_completion_tokens 131,072, supports_vision true, supports_tools true. The $0.03 cache-read rate is the GLM 5.3 Flash rate on the pricing page. Context, price and vision follow whatever model it routes to and can change without a new id."
31
+ },
32
+ "umans-glm-5.3": {
33
+ "contextWindow": 1048576,
34
+ "maxOutputTokens": 131072,
35
+ "pricingPerMTok": {
36
+ "input": 1.4,
37
+ "output": 4.4,
38
+ "cachedInput": 0.26
39
+ },
40
+ "vision": false,
41
+ "status": "production",
42
+ "description": "Fallback - Z.ai's GLM 5.3. https://app.umans.ai/offers/code/docs lists it as the GLM 5.2 successor on a 1M context at $1.40 / $4.40 per 1M tokens (input / output; $0.26 cached). It always thinks, at max effort by default; reasoning_effort low or high dials it and thinking cannot be turned off. Text-only: /v1/models/info says supports_vision false, and the docs' Cursor setup says \"the DeepSeek and GLM ids are text-only on this route\". Unauthenticated GET https://api.code.umans.ai/v1/models (2026-09-29): context_length 1,048,576, pricing 1.4 / 4.4; GET https://api.code.umans.ai/v1/models/info: max_completion_tokens 131,072, supports_tools true."
43
+ },
44
+ "umans-deepseek-v4-flash-0731": {
45
+ "contextWindow": 1048576,
46
+ "maxOutputTokens": 393216,
47
+ "pricingPerMTok": {
48
+ "input": 0.14,
49
+ "output": 0.28,
50
+ "cachedInput": 0.028
51
+ },
52
+ "vision": false,
53
+ "status": "production",
54
+ "description": "Fallback - DeepSeek V4 Flash, the 0731 release. https://app.umans.ai/offers/code/docs calls it \"The cheapest production model in the lineup ($0.14 / $0.28 per 1M tokens)\" and the default for new chats on app.umans.ai; it thinks at low effort by default and the docs say to select high or max on hard tasks. /v1/models/info describes 284B total and 13B active parameters and four reasoning modes: none, low (default), high, max. Text-only: /v1/models/info says supports_vision false. Unauthenticated GET https://api.code.umans.ai/v1/models (2026-09-29): context_length 1,048,576, pricing 0.14 / 0.28; GET https://api.code.umans.ai/v1/models/info: max_completion_tokens 393,216, supports_tools true. The $0.028 cache-read rate is stated on the docs and pricing pages."
55
+ },
56
+ "umans-kimi-k3": {
57
+ "contextWindow": 1048576,
58
+ "maxOutputTokens": 131072,
59
+ "pricingPerMTok": {
60
+ "input": 3,
61
+ "output": 15,
62
+ "cachedInput": 0.3
63
+ },
64
+ "vision": true,
65
+ "status": "production",
66
+ "description": "Fallback - Moonshot's Kimi K3. https://app.umans.ai/offers/code/docs lists it with a 1M context, native vision and max-effort reasoning by default, and says it honors reasoning_effort none, low, high or max; its sampling fields (temperature, top_p) are fixed server-side and the gateway removes them rather than failing the request. Unauthenticated GET https://api.code.umans.ai/v1/models (2026-09-29): context_length 1,048,576, pricing 3.0 / 15.0; GET https://api.code.umans.ai/v1/models/info: base_model Kimi-K3, max_completion_tokens 131,072, supports_vision true, supports_tools true. The $0.30 cache-read rate is stated on https://app.umans.ai/pricing."
67
+ },
68
+ "umans-glm-5.3-flash": {
69
+ "contextWindow": 1048576,
70
+ "maxOutputTokens": 131072,
71
+ "pricingPerMTok": {
72
+ "input": 0.15,
73
+ "output": 0.5,
74
+ "cachedInput": 0.03
75
+ },
76
+ "vision": true,
77
+ "status": "production",
78
+ "description": "Vision model for tests - Z.ai's GLM-5.3-Flash. https://app.umans.ai/offers/code/docs describes \"a 320B mixture-of-experts (18B active per token) with native image and video understanding\" at $0.15 / $0.50 per 1M tokens; it always thinks at max effort by default, reasoning_effort low or high dials it and thinking cannot be turned off. The pricing page says umans-coder is an alias for it today. Unauthenticated GET https://api.code.umans.ai/v1/models (2026-09-29): context_length 1,048,576, pricing 0.15 / 0.5; GET https://api.code.umans.ai/v1/models/info: max_completion_tokens 131,072, supports_vision true, supports_tools true. The $0.03 cache-read rate is stated on https://app.umans.ai/pricing. It is models.visionModel so vision tests use a fixed id rather than the routed alias."
79
+ },
80
+ "umans-deepseek-v4.1-flash": {
81
+ "contextWindow": 1048576,
82
+ "maxOutputTokens": 393216,
83
+ "pricingPerMTok": {
84
+ "input": 0.15,
85
+ "output": 0.6,
86
+ "cachedInput": 0.028
87
+ },
88
+ "vision": true,
89
+ "status": "production",
90
+ "description": "DeepSeek V4.1 Flash, listed in the Models table of https://app.umans.ai/offers/code/docs, which describes \"a 552B MoE (8B active on prefill, 16B on decode) with native image understanding ($0.15 / $0.60 per 1M tokens)\", names it the DeepSeek V4 Pro successor, and lists four reasoning modes - non-think, think low, think high (the default), think max - with a numeric 1-100 budget also accepted. Unauthenticated GET https://api.code.umans.ai/v1/models (2026-09-29): context_length 1,048,576, pricing 0.15 / 0.6; GET https://api.code.umans.ai/v1/models/info: production_start_date 2026-09-18, max_completion_tokens 393,216, supports_vision true, supports_tools true. The $0.028 cache-read rate is stated on https://app.umans.ai/pricing."
91
+ },
92
+ "umans-flash": {
93
+ "contextWindow": 262144,
94
+ "maxOutputTokens": 262144,
95
+ "pricingPerMTok": {
96
+ "input": 0.15,
97
+ "output": 1,
98
+ "cachedInput": 0.05
99
+ },
100
+ "vision": true,
101
+ "status": "production",
102
+ "description": "Qwen3.6-35B-A3B-FP8, a light model rather than a coder. https://app.umans.ai/offers/code/docs lists it in its Models table as \"High-interactivity light model; complement to umans-coder\" with a 256K context, says to use it for the roles around umans-coder \"not as a standalone coder\", targets 200+ tokens per second, and its Claude Code table lists Text, Vision, WebSearch. Unauthenticated GET https://api.code.umans.ai/v1/models (2026-09-29): context_length 262,144, pricing 0.15 / 1.0; GET https://api.code.umans.ai/v1/models/info: max_completion_tokens 262,144, supports_vision true, supports_tools true. The $0.05 cache-read rate is stated on https://app.umans.ai/offers/code/docs/orgs and the pricing page. The docs' Limits section counts it as half a request against the wallet tier's request window. The roster's umans-qwen3.6-35b-a3b id is described by /v1/models/info as a technical alias for this model and is not listed separately."
103
+ }
104
+ },
105
+ "topModels": [
106
+ "umans-coder",
107
+ "umans-glm-5.3",
108
+ "umans-deepseek-v4-flash-0731",
109
+ "umans-kimi-k3",
110
+ "umans-glm-5.3-flash",
111
+ "umans-deepseek-v4.1-flash",
112
+ "umans-flash"
113
+ ],
114
+ "visionModel": "umans-glm-5.3-flash"
115
+ },
116
+ "capabilities": {
117
+ "text": true,
118
+ "streaming": true,
119
+ "tools": true,
120
+ "toolsWithStreaming": false,
121
+ "structuredOutput": false,
122
+ "structuredOutputWithTools": false,
123
+ "embeddings": false,
124
+ "thinking": true
125
+ },
126
+ "errorRules": [
127
+ {
128
+ "status": 401,
129
+ "class": "authentication",
130
+ "message": "Umans AI rejected the request with HTTP 401. Check {apiKeyEnvVar}; the docs say a 401 means the key may be expired or revoked. Create a new key at {setupUrl}"
131
+ },
132
+ {
133
+ "status": 429,
134
+ "class": "rate-limit",
135
+ "message": "Umans AI rate limit (HTTP 429): the wallet tier's burst limit was exceeded. The docs describe 429s as retryable - wait for the rolling five-hour window to free capacity, or top up to grow the tier (https://app.umans.ai/offers/code/docs)"
136
+ },
137
+ {
138
+ "pattern": "unknown model",
139
+ "class": "invalid-model",
140
+ "message": "Umans AI model '{model}' is not a valid id (HTTP 400 Unknown model). Ids start with umans-; the error body lists the valid ids, or pick one from https://api.code.umans.ai/v1/models"
141
+ }
142
+ ],
143
+ "setup": {
144
+ "url": "https://app.umans.ai/billing",
145
+ "apiKeyFormat": null,
146
+ "billingPolicy": "no-free-tier",
147
+ "instructions": [
148
+ "1. Visit: https://app.umans.ai/register and create an account with Google or an email and password (already have one? sign in at https://app.umans.ai/login). Organizations are provisioned by Umans: email contact@umans.ai (https://app.umans.ai/offers/code/docs/orgs)",
149
+ "2. Open https://app.umans.ai/billing, go to Dashboard -> API Keys and generate a key; the docs say it is shown only once, so copy it immediately",
150
+ "3. Prepaid wallet, no free tier stated: top up before calling the API - the docs say a wallet with no credit (no paid top-up and no active promo grant) \"does not serve until it has some\", and promo credit serves only while it lasts (https://app.umans.ai/offers/code/docs)",
151
+ "4. Set {apiKeyEnvVar} in your .env file"
152
+ ],
153
+ "description": "OpenAI-compatible endpoint at https://api.code.umans.ai/v1 (https://app.umans.ai/offers/code/docs: \"Umans Code also implements the OpenAI Chat Completions API\"), pay-per-token from a prepaid wallet, serving open-weight coding models from Z.ai, DeepSeek, Moonshot and Qwen. The gateway's 401 body was observed only on GET /v1/usage ({\"error\":{\"type\":\"authentication_error\",\"message\":\"Missing API key\"}}); GET /v1/chat/completions answers 405 and was never POSTed, so errorRules match the documented status codes (401, 429) and the documented \"Unknown model\" text rather than a probed chat-completions body. models.defaultContextWindow (262144) and models.defaultMaxOutputTokens (131072) are schema-required placeholders, not vendor-stated caps: they are the smallest context and max-output values among the seven catalog models, used only for an id outside the catalog, and no Umans page states a general cap. apiKeyFormat is null because the docs conflict: the Any BYOK Tool section says the key \"starts with sk-\" and the examples write sk-your-umans-api-key, while the wallet-summary example shows a key prefix of umans_7fKq and the homepage .env example shows umans_."
154
+ },
155
+ "evidence": {
156
+ "rosterVerified": {
157
+ "date": "2026-09-29",
158
+ "status": 200,
159
+ "method": "unauthenticated GET https://api.code.umans.ai/v1/models — 10 models; credential-free, no key used"
160
+ },
161
+ "authProbe": {
162
+ "date": "2026-09-29",
163
+ "status": 401,
164
+ "code": "authentication_error",
165
+ "method": "unauthenticated GET https://api.code.umans.ai/v1/usage (a documented bearer-key route) — body {\"error\":{\"type\":\"authentication_error\",\"message\":\"Missing API key\"}}; the OpenAI route GET /v1/chat/completions returned 405 Method Not Allowed and no POST was sent; credential-free, no key used"
166
+ },
167
+ "billingProbe": {
168
+ "date": "2026-09-29",
169
+ "method": "public pages https://app.umans.ai/offers/code/docs (\"A wallet with no credit at all — no paid top-up, no active promo grant — does not serve until it has some\") and https://app.umans.ai/pricing (\"Pay per token. Top up, create a key, and go.\"); no free tier stated; credential-free"
170
+ },
171
+ "liveMatrix": null,
172
+ "addedInPR": "https://github.com/juspay/neurolink/pull/1860"
173
+ }
174
+ }
@@ -0,0 +1,208 @@
1
+ {
2
+ "$schema": "./provider-catalog.schema.json",
3
+ "id": "venice-ai",
4
+ "displayName": "Venice AI",
5
+ "aliases": ["venice"],
6
+ "tier": 2,
7
+ "wire": {
8
+ "baseURL": "https://api.venice.ai/api/v1",
9
+ "apiKeyFallbackEnvVars": ["VENICE_API_KEY"]
10
+ },
11
+ "models": {
12
+ "default": "zai-org-glm-5-2",
13
+ "fallbacks": ["zai-org-glm-5", "zai-org-glm-5-1", "deepseek-v4-pro-0813"],
14
+ "defaultContextWindow": 128000,
15
+ "defaultMaxOutputTokens": 4096,
16
+ "catalog": {
17
+ "zai-org-glm-5-2": {
18
+ "contextWindow": 1000000,
19
+ "maxOutputTokens": 131072,
20
+ "pricingPerMTok": {
21
+ "input": 1.4,
22
+ "output": 4.4,
23
+ "cachedInput": 0.26
24
+ },
25
+ "vision": false,
26
+ "status": "production",
27
+ "description": "NeuroLink default. The roster (unauthenticated GET https://api.venice.ai/api/v1/models, 2026-09-29, 126 text models) lists the traits \"default\" and \"function_calling_default\" on this model, and an unauthenticated GET https://api.venice.ai/api/v1/models/traits returned \"default\":\"zai-org-glm-5-2\" on the same day; https://docs.venice.ai/overview/deprecations lists the default trait as currently routing to this id. Roster description: \"GLM-5.2 is the next-generation large language model developed by Zhiyuan AI\". Roster figures: context_length 1,000,000, maxCompletionTokens 131,072, $1.4/$4.4 per MTok input/output, $0.26 cache read, supportsVision false, supportsFunctionCalling true, supportsResponseSchema true, supportsReasoning true. The input and output prices and the rounded context also appear on https://docs.venice.ai/overview/pricing and https://docs.venice.ai/models/text; the latter lists the Capabilities \"Function calling, Reasoning, Code\"."
28
+ },
29
+ "zai-org-glm-5": {
30
+ "contextWindow": 198000,
31
+ "maxOutputTokens": 32000,
32
+ "pricingPerMTok": {
33
+ "input": 1,
34
+ "output": 3.2,
35
+ "cachedInput": 0.2
36
+ },
37
+ "vision": false,
38
+ "status": "production",
39
+ "description": "Fallback. The model in the request examples of https://docs.venice.ai/getting-started/quick-start, which lists it with the text \"Default model for most use cases\", and of https://docs.venice.ai/guides/features/function-calling. Roster (unauthenticated GET https://api.venice.ai/api/v1/models, 2026-09-29, 126 text models) description: \"GLM-5 is the next-generation large language model developed by Zhiyuan AI\". Roster figures: context_length 198,000, maxCompletionTokens 32,000, $1/$3.2 per MTok input/output, $0.2 cache read, supportsVision false, supportsFunctionCalling true, supportsResponseSchema true, supportsReasoning true. The input and output prices and the rounded context also appear on https://docs.venice.ai/overview/pricing and https://docs.venice.ai/models/text; the latter lists the Capabilities \"Function calling, Reasoning, Code\"."
40
+ },
41
+ "zai-org-glm-5-1": {
42
+ "contextWindow": 200000,
43
+ "maxOutputTokens": 80000,
44
+ "pricingPerMTok": {
45
+ "input": 1.54,
46
+ "output": 4.84,
47
+ "cachedInput": 0.286
48
+ },
49
+ "vision": false,
50
+ "status": "production",
51
+ "description": "Fallback. The model in the request examples of https://docs.venice.ai/guides/features/reasoning-models. Roster (unauthenticated GET https://api.venice.ai/api/v1/models, 2026-09-29, 126 text models) description: \"GLM-5.1 is the next-generation large language model developed by Zhiyuan AI\". Roster figures: context_length 200,000, maxCompletionTokens 80,000, $1.54/$4.84 per MTok input/output, $0.286 cache read, supportsVision false, supportsFunctionCalling true, supportsResponseSchema true, supportsReasoning true. The input and output prices and the rounded context also appear on https://docs.venice.ai/overview/pricing and https://docs.venice.ai/models/text; the latter lists the Capabilities \"Function calling, Reasoning\". The pricing page shows the cache-read price rounded to two decimals."
52
+ },
53
+ "deepseek-v4-pro-0813": {
54
+ "contextWindow": 1000000,
55
+ "maxOutputTokens": 32768,
56
+ "pricingPerMTok": {
57
+ "input": 1.65,
58
+ "output": 4.95,
59
+ "cachedInput": 0.165
60
+ },
61
+ "vision": false,
62
+ "status": "production",
63
+ "description": "Fallback. The roster (unauthenticated GET https://api.venice.ai/api/v1/models, 2026-09-29, 126 text models) lists the trait \"default_code\" on this model, and https://docs.venice.ai/overview/deprecations lists the default_code trait as currently routing to this id. Roster description: \"DeepSeek V4 Pro is a 1.6T-parameter Mixture-of-Experts model with 49B active parameters and a 1M-token context window.\" Roster figures: context_length 1,000,000, maxCompletionTokens 32,768, $1.65/$4.95 per MTok input/output, $0.165 cache read, supportsVision false, supportsFunctionCalling true, supportsResponseSchema true, supportsReasoning true. The input and output prices and the rounded context also appear on https://docs.venice.ai/overview/pricing and https://docs.venice.ai/models/text; the latter lists the Capabilities \"Function calling, Reasoning, Code\". The pricing page shows the cache-read price rounded to two decimals."
64
+ },
65
+ "kimi-k3": {
66
+ "contextWindow": 1000000,
67
+ "maxOutputTokens": 131072,
68
+ "pricingPerMTok": {
69
+ "input": 3.75,
70
+ "output": 18.75,
71
+ "cachedInput": 0.375
72
+ },
73
+ "vision": true,
74
+ "status": "production",
75
+ "description": "The roster (unauthenticated GET https://api.venice.ai/api/v1/models, 2026-09-29, 126 text models) lists the trait \"default_reasoning\" on this model, and https://docs.venice.ai/overview/deprecations lists the default_reasoning trait as currently routing to this id. Roster description: \"Kimi K3 is an ultra-large-scale, open-weight multimodal reasoning model from Moonshot AI.\" Roster figures: context_length 1,000,000, maxCompletionTokens 131,072, $3.75/$18.75 per MTok input/output, $0.375 cache read, supportsVision true, supportsFunctionCalling true, supportsResponseSchema true, supportsReasoning true. The input and output prices and the rounded context also appear on https://docs.venice.ai/overview/pricing and https://docs.venice.ai/models/text; the latter lists the Capabilities \"Function calling, Reasoning, Vision, Code\". The pricing page shows the cache-read price rounded to two decimals."
76
+ },
77
+ "kimi-k2-6": {
78
+ "contextWindow": 256000,
79
+ "maxOutputTokens": 65536,
80
+ "pricingPerMTok": {
81
+ "input": 0.75,
82
+ "output": 3.5,
83
+ "cachedInput": 0.16
84
+ },
85
+ "vision": true,
86
+ "status": "production",
87
+ "description": "https://docs.venice.ai/getting-started/quick-start lists this id with the text \"Strong reasoning for more complex tasks\". Roster (unauthenticated GET https://api.venice.ai/api/v1/models, 2026-09-29, 126 text models) description: \"Kimi K2.6 is an open-source, native multimodal agentic model from Moonshot AI with 1T total parameters and 32B active parameters.\" Roster figures: context_length 256,000, maxCompletionTokens 65,536, $0.75/$3.5 per MTok input/output, $0.16 cache read, supportsVision true, supportsFunctionCalling true, supportsResponseSchema true, supportsReasoning true. The input and output prices and the rounded context also appear on https://docs.venice.ai/overview/pricing and https://docs.venice.ai/models/text; the latter lists the Capabilities \"Function calling, Reasoning, Vision, Code\"."
88
+ },
89
+ "qwen3-vl-235b-a22b": {
90
+ "contextWindow": 128000,
91
+ "maxOutputTokens": 16384,
92
+ "pricingPerMTok": {
93
+ "input": 0.21,
94
+ "output": 1.9,
95
+ "cachedInput": 0.1
96
+ },
97
+ "vision": true,
98
+ "status": "production",
99
+ "description": "NeuroLink models.visionModel. The model in the request examples of https://docs.venice.ai/guides/features/vision. Roster (unauthenticated GET https://api.venice.ai/api/v1/models, 2026-09-29, 126 text models) description: \"Qwen3-VL 235B vision-language model with MoE architecture.\" Roster figures: context_length 128,000, maxCompletionTokens 16,384, $0.21/$1.9 per MTok input/output, $0.1 cache read, supportsVision true, supportsFunctionCalling true, supportsResponseSchema true, supportsReasoning false. The input and output prices and the rounded context also appear on https://docs.venice.ai/overview/pricing and https://docs.venice.ai/models/text; the latter lists the Capabilities \"Function calling, Vision\"."
100
+ },
101
+ "venice-uncensored-1-2": {
102
+ "contextWindow": 128000,
103
+ "maxOutputTokens": 8192,
104
+ "pricingPerMTok": {
105
+ "input": 0.2,
106
+ "output": 0.9
107
+ },
108
+ "vision": true,
109
+ "status": "production",
110
+ "description": "The roster (unauthenticated GET https://api.venice.ai/api/v1/models, 2026-09-29, 126 text models) lists the trait \"most_uncensored\" on this model, and https://docs.venice.ai/getting-started/quick-start lists this id with the text \"Venice's uncensored model\". Roster description: \"Venice Uncensored 1.2 is designed for maximum creative freedom and authentic interaction.\" Roster figures: context_length 128,000, maxCompletionTokens 8,192, $0.2/$0.9 per MTok input/output, supportsVision true, supportsFunctionCalling true, supportsResponseSchema true, supportsReasoning false. The input and output prices and the rounded context also appear on https://docs.venice.ai/overview/pricing and https://docs.venice.ai/models/text; the latter lists the Capabilities \"Function calling, Vision, Uncensored\"."
111
+ },
112
+ "grok-4-7": {
113
+ "contextWindow": 500000,
114
+ "maxOutputTokens": 200000,
115
+ "pricingPerMTok": {
116
+ "input": 2.27,
117
+ "output": 6.8,
118
+ "cachedInput": 0.57
119
+ },
120
+ "vision": true,
121
+ "status": "production",
122
+ "description": "The roster (unauthenticated GET https://api.venice.ai/api/v1/models, 2026-09-29, 126 text models) lists the trait \"most_intelligent\" on this model, and https://docs.venice.ai/overview/deprecations lists the most_intelligent trait as currently routing to this id. Roster description: \"Grok 4.7 is xAI's multimodal chat and reasoning model with function calling, structured outputs, adjustable reasoning effort (low/medium/high/xhigh), and a 500K-token context window.\" Roster figures: context_length 500,000, maxCompletionTokens 200,000, $2.27/$6.8 per MTok input/output, $0.57 cache read, supportsVision true, supportsFunctionCalling true, supportsResponseSchema true, supportsReasoning true. The input and output prices and the rounded context also appear on https://docs.venice.ai/overview/pricing and https://docs.venice.ai/models/text; the pricing page has a further row labelled \"↳ >200K Context\" at $4.53 input and $13.60 output, which the flat prices here do not carry. https://docs.venice.ai/models/text lists the Capabilities \"Function calling, Reasoning, Vision, Code\"."
123
+ },
124
+ "claude-opus-4-8": {
125
+ "contextWindow": 1000000,
126
+ "maxOutputTokens": 128000,
127
+ "pricingPerMTok": {
128
+ "input": 6,
129
+ "output": 30,
130
+ "cachedInput": 0.6
131
+ },
132
+ "vision": true,
133
+ "status": "production",
134
+ "description": "https://docs.venice.ai/getting-started/quick-start lists this id with the text \"High-intelligence model for complex tasks\". Roster (unauthenticated GET https://api.venice.ai/api/v1/models, 2026-09-29, 126 text models) description: \"It features a 1M token context window, 128K max output tokens, adaptive thinking, and strong multimodal capabilities.\" Roster figures: context_length 1,000,000, maxCompletionTokens 128,000, $6/$30 per MTok input/output, $0.6 cache read, privacy \"anonymized\", supportsVision true, supportsFunctionCalling true, supportsResponseSchema true, supportsReasoning true. The input and output prices and the rounded context also appear on https://docs.venice.ai/overview/pricing and https://docs.venice.ai/models/text; the latter lists the Capabilities \"Function calling, Reasoning, Vision, Code\"."
135
+ }
136
+ },
137
+ "topModels": [
138
+ "zai-org-glm-5-2",
139
+ "zai-org-glm-5",
140
+ "zai-org-glm-5-1",
141
+ "deepseek-v4-pro-0813",
142
+ "kimi-k3",
143
+ "kimi-k2-6",
144
+ "qwen3-vl-235b-a22b",
145
+ "venice-uncensored-1-2",
146
+ "grok-4-7",
147
+ "claude-opus-4-8"
148
+ ],
149
+ "visionModel": "qwen3-vl-235b-a22b"
150
+ },
151
+ "capabilities": {
152
+ "text": true,
153
+ "streaming": true,
154
+ "tools": "model-dependent",
155
+ "toolsWithStreaming": false,
156
+ "structuredOutput": true,
157
+ "structuredOutputWithTools": false,
158
+ "embeddings": false,
159
+ "thinking": true
160
+ },
161
+ "errorRules": [
162
+ {
163
+ "status": 401,
164
+ "class": "authentication",
165
+ "message": "Venice AI authentication failed (HTTP 401). https://docs.venice.ai/api-reference/error-codes lists AUTHENTICATION_FAILED (\"Authentication failed\"), AUTHENTICATION_FAILED_INACTIVE_KEY, X402_INVALID_SIGN_IN and PRO_ONLY_MODEL under 401. NeuroLink reads the key from {apiKeyEnvVar}; keys are created at {setupUrl}"
166
+ },
167
+ {
168
+ "status": 402,
169
+ "class": "provider",
170
+ "message": "Venice AI reports a balance problem (HTTP 402). https://docs.venice.ai/api-reference/error-codes lists INSUFFICIENT_BALANCE (\"Insufficient USD or Diem balance to complete request.\", pointing to https://venice.ai/settings/api to add credits), API_KEY_USD_SPEND_LIMIT_EXCEEDED and API_KEY_DIEM_SPEND_LIMIT_EXCEEDED under 402"
171
+ },
172
+ {
173
+ "pattern": "Specified model not found|Invalid model specified",
174
+ "class": "invalid-model",
175
+ "message": "Venice AI did not accept model '{model}'. https://docs.venice.ai/api-reference/error-codes lists MODEL_NOT_FOUND (404, \"Specified model not found\") and INVALID_MODEL (400, \"Invalid model specified\"). Model ids are served by an unauthenticated GET https://api.venice.ai/api/v1/models"
176
+ },
177
+ {
178
+ "status": 429,
179
+ "class": "rate-limit",
180
+ "message": "Venice AI returned HTTP 429. https://docs.venice.ai/api-reference/error-codes lists RATE_LIMIT_EXCEEDED (\"Rate limit exceeded\") and MODEL_OVERLOADED (\"The model is currently overloaded. Please try again later.\") under 429, and https://docs.venice.ai/api-reference/rate-limiting says \"Failed requests (500, 503, 429) should be retried with exponential backoff.\""
181
+ }
182
+ ],
183
+ "setup": {
184
+ "url": "https://venice.ai/settings/api",
185
+ "apiKeyFormat": null,
186
+ "billingPolicy": "no-free-tier",
187
+ "instructions": [
188
+ "1. Visit: https://venice.ai/settings/api and select Generate New API Key; the API key guide lists \"Sign in to your Venice account.\" under Before you start (https://docs.venice.ai/guides/getting-started/generating-api-key)",
189
+ "2. Copy the key when it is shown — the API key guide states \"Venice will show the full API key one time.\" (https://docs.venice.ai/guides/getting-started/generating-api-key) — and paste it without a Bearer prefix or quotes (https://docs.venice.ai/getting-started/quick-start)",
190
+ "3. Fund the account before calling models: the docs state \"model requests will not succeed until the account can consume DIEM, bundled credits, or USD\" (https://docs.venice.ai/guides/getting-started/generating-api-key); payment options are listed at https://docs.venice.ai/overview/pricing",
191
+ "4. Set {apiKeyEnvVar} in your .env file (VENICE_API_KEY, the variable Venice's own docs use, is also read)"
192
+ ],
193
+ "description": "Docs- and roster-verified, not yet live-verified. OpenAI-compatible endpoint at https://api.venice.ai/api/v1 (https://docs.venice.ai/api-reference/endpoint/chat/completions: \"This endpoint is OpenAI-compatible\"), serving 126 text models on the 2026-09-29 roster, 10 of which are catalogued here (the roster's e2ee- ids are not). models.defaultContextWindow (128,000) and models.defaultMaxOutputTokens (4,096) are placeholders the vendor does not publish: Venice publishes context and max-output figures per model on the roster, not as a general default. The error-codes page (https://docs.venice.ai/api-reference/error-codes) shows the error body format {\"error\": \"...\"}, so errorRules match its documented statuses and model-not-found messages."
194
+ },
195
+ "evidence": {
196
+ "rosterVerified": {
197
+ "date": "2026-09-29",
198
+ "status": 200,
199
+ "method": "unauthenticated GET https://api.venice.ai/api/v1/models — 126 models; credential-free, no key used"
200
+ },
201
+ "billingProbe": {
202
+ "date": "2026-09-29",
203
+ "method": "public pages — https://docs.venice.ai/guides/getting-started/generating-api-key: \"model requests will not succeed until the account can consume DIEM, bundled credits, or USD\"; https://docs.venice.ai/overview/pricing: \"Buy Venice credits with credit card. Credits never expire.\"; https://venice.ai/pricing: the Free plan lists \"API Access (pay with credits)\"; https://venice.ai/venice-api shows the tag \"Free tier, no card\"; credential-free"
204
+ },
205
+ "liveMatrix": null,
206
+ "addedInPR": "https://github.com/juspay/neurolink/pull/1860"
207
+ }
208
+ }