@juspay/neurolink 12.38.0 → 12.39.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -2
- package/README.md +1 -1
- package/dist/browser/neurolink.min.js +464 -464
- package/dist/constants/enums.d.ts +226 -0
- package/dist/constants/enums.js +246 -0
- package/dist/core/modelConfiguration.js +1 -0
- package/dist/providers/anthropic/client.js +8 -1
- package/dist/providers/catalog/above-dev.json +194 -0
- package/dist/providers/catalog/aiand.json +204 -0
- package/dist/providers/catalog/ambient.json +117 -0
- package/dist/providers/catalog/bee-heossi.json +174 -0
- package/dist/providers/catalog/charm-hyper.json +349 -0
- package/dist/providers/catalog/chutes.json +236 -0
- package/dist/providers/catalog/deepinfra.json +157 -0
- package/dist/providers/catalog/empiriolabs.json +143 -0
- package/dist/providers/catalog/featherless-ai.json +212 -0
- package/dist/providers/catalog/inco.json +196 -0
- package/dist/providers/catalog/index.generated.d.ts +1 -1
- package/dist/providers/catalog/index.generated.js +60 -0
- package/dist/providers/catalog/inference-net.json +172 -0
- package/dist/providers/catalog/koscompute.json +81 -0
- package/dist/providers/catalog/lilac.json +107 -0
- package/dist/providers/catalog/llmtech.json +63 -0
- package/dist/providers/catalog/moark.json +94 -0
- package/dist/providers/catalog/neuralwatt.json +179 -0
- package/dist/providers/catalog/ovhcloud.json +232 -0
- package/dist/providers/catalog/pareto-inference.json +74 -0
- package/dist/providers/catalog/sarvam.json +72 -0
- package/dist/providers/catalog/schema.d.ts +2 -2
- package/dist/providers/catalog/synthetic.json +205 -0
- package/dist/providers/openRouter/client.js +1 -0
- package/dist/providers/openaiChatCompletionsBase.js +37 -1
- package/dist/types/openaiCompatible.d.ts +10 -0
- package/dist/types/providerCatalog.generated.d.ts +2 -2
- package/dist/types/providers.d.ts +80 -0
- package/docs-site/static/search-index.json +221 -4
- package/package.json +2 -1
|
@@ -4915,11 +4915,11 @@
|
|
|
4915
4915
|
{"objectID":"8bee50a94bc91cf5273efb43aa2f13a39be6cd72e048c55da55bd80bc74ce8a0","title":"Getting Help","url":"/docs/getting-started/installation#getting-help","content":"Check our Troubleshooting Guide\nReview FAQ\nSearch GitHub Issues\nCreate new issue with:\nNode.js version (node --version)\nOperating system\nError message\nSteps to reproduce","hierarchy":{"lvl0":"Getting Started","lvl1":"Installation","lvl2":"Getting Help","lvl3":""}},
|
|
4916
4916
|
{"objectID":"80210a84a233c58e9a12aa96cedd225ad03c3bfe5344b78032d691be93ae3ba0","title":"Verification Checklist","url":"/docs/getting-started/installation#verification-checklist","content":"[ ] Node.js 18+ installed\n[ ] NeuroLink package installed or accessible via npx\n[ ] API keys configured in .env file\n[ ] neurolink status shows working providers\n[ ] Basic generation command works\n[ ] TypeScript support (if needed)\n[ ] Framework integration (if applicable)","hierarchy":{"lvl0":"Getting Started","lvl1":"Installation","lvl2":"Verification Checklist","lvl3":""}},
|
|
4917
4917
|
{"objectID":"44c035a6ed0dc3b4a04ad68e17bc22de77840cb664eaee4e84f04bb8bd70caaf","title":"Next Steps","url":"/docs/getting-started/installation#next-steps","content":"Quick Start - Test your installation\nProvider Setup - Configure AI providers\nCLI Commands - Learn available commands\nExamples - See implementation patterns","hierarchy":{"lvl0":"Getting Started","lvl1":"Installation","lvl2":"Next Steps","lvl3":""}},
|
|
4918
|
-
{"objectID":"c44f69a5d19212c85a451486bef65999f3ef505311f283fa4a129d90603820ac","title":"⚙️ Provider Configuration Guide","url":"/docs/getting-started/provider-setup","content":"⚙️ Provider Configuration Guide\n\nNeuroLink supports multiple AI providers with flexible authentication methods. This guide covers complete setup for all supported providers.\n\nSupported Providers\n\nThis guide walks through full environment-variable setup for the providers below; the complete roster — including the newer catalog providers and the embedding/media/decision-only providers — is indexed with setup guides at Provider Guides.\n\nProviders configured in this guide\nOpenAI - GPT-4o, GPT-4o-mini, GPT-4-turbo\nAmazon Bedrock - Claude 3.7 Sonnet, Claude 3.5 Sonnet, Claude 3 Haiku\nAmazon SageMaker - Custom models deployed on SageMaker endpoints\nGoogle Vertex AI - Gemini 3 Flash/Pro (preview), Gemini 2.5 Flash, Claude 4.0 Sonnet\nGoogle AI Studio - Gemini 1.5 Pro, Gemini 2.0 Flash, Gemini 1.5 Flash\nAnthropic - Claude 4.5 Opus/Sonnet/Haiku, Claude 4.0 Opus/Sonnet, Claude 3.7 Sonnet\nAzure OpenAI - GPT-4, GPT-3.5-Turbo\nLiteLLM - 100+ models across a broad range of providers via proxy server\nHugging Face - open models served by the unified router (Llama 3.x, Qwen 2.5, DeepSeek, Mistral)\nOllama - Local AI models including Llama 2, Code Llama, Mistral, Vicuna\nOpenRouter - 300+ models from every major lab via one aggregator endpoint\nMistral AI - Mistral Tiny, Small, Medium, and Large models\nDeepSeek - deepseek-chat (V3) and deepseek-reasoner (R1)\nNVIDIA NIM - Llama 3.3 70B and 400+ catalog models via NVIDIA hosted or self-hosted NIM\nLM Studio - Any model loaded in LM Studio desktop app (local, no API key required)\nllama.cpp - Any GGUF model served by llama-server (local, no API key required)\n\nOther providers (setup guides in the Provider Guides index)\n\nOnboarded via the zero-quirk OpenAI-wire-compatible catalog (Tier 2) — each has its own setup guide under providers/:\nGroq - LPU-accelerated inference; default openai/gpt-oss-120b\nCerebras - Wafer-scale inference; default gpt-oss-120b\nSambaNova - default Meta-Llama-3.3-70B-Instruct\nTogether AI - default meta-llama/Llama-3.3-70B-Instruct-Turbo\nFireworks AI - default accounts/fireworks/models/kimi-k3\nPerplexity - search-augmented models; default sonar\nCloudflare Workers AI - edge inference\nxAI - Grok models; default grok-4.6\nBaseten - default zai-org/GLM-5.3-Flash (BASETEN_API_KEY)\nGMI Cloud - default MiniMaxAI/MiniMax-M3 (GMICLOUD_API_KEY)\nInception Labs - diffusion LLMs; default mercury-2 (INCEPTION_LABS_API_KEY)\nio.net Intelligence - decentralized GPU inference; default meta-llama/Llama-3.3-70B-Instruct (IO_INTELLIGENCE_API_KEY)\nMancer - default deepseek-v4-flash (MANCER_API_KEY); no tool calling\nUpstage - Solar models; default solar-pro4 (UPSTAGE_API_KEY)\nAPI Route - OpenAI-compatible passthrough; default claude-sonnet-4-6 (API_ROUTE_API_KEY)\
|
|
4918
|
+
{"objectID":"c44f69a5d19212c85a451486bef65999f3ef505311f283fa4a129d90603820ac","title":"⚙️ Provider Configuration Guide","url":"/docs/getting-started/provider-setup","content":"⚙️ Provider Configuration Guide\n\nNeuroLink supports multiple AI providers with flexible authentication methods. This guide covers complete setup for all supported providers.\n\nSupported Providers\n\nThis guide walks through full environment-variable setup for the providers below; the complete roster — including the newer catalog providers and the embedding/media/decision-only providers — is indexed with setup guides at Provider Guides.\n\nProviders configured in this guide\nOpenAI - GPT-4o, GPT-4o-mini, GPT-4-turbo\nAmazon Bedrock - Claude 3.7 Sonnet, Claude 3.5 Sonnet, Claude 3 Haiku\nAmazon SageMaker - Custom models deployed on SageMaker endpoints\nGoogle Vertex AI - Gemini 3 Flash/Pro (preview), Gemini 2.5 Flash, Claude 4.0 Sonnet\nGoogle AI Studio - Gemini 1.5 Pro, Gemini 2.0 Flash, Gemini 1.5 Flash\nAnthropic - Claude 4.5 Opus/Sonnet/Haiku, Claude 4.0 Opus/Sonnet, Claude 3.7 Sonnet\nAzure OpenAI - GPT-4, GPT-3.5-Turbo\nLiteLLM - 100+ models across a broad range of providers via proxy server\nHugging Face - open models served by the unified router (Llama 3.x, Qwen 2.5, DeepSeek, Mistral)\nOllama - Local AI models including Llama 2, Code Llama, Mistral, Vicuna\nOpenRouter - 300+ models from every major lab via one aggregator endpoint\nMistral AI - Mistral Tiny, Small, Medium, and Large models\nDeepSeek - deepseek-chat (V3) and deepseek-reasoner (R1)\nNVIDIA NIM - Llama 3.3 70B and 400+ catalog models via NVIDIA hosted or self-hosted NIM\nLM Studio - Any model loaded in LM Studio desktop app (local, no API key required)\nllama.cpp - Any GGUF model served by llama-server (local, no API key required)\n\nOther providers (setup guides in the Provider Guides index)\n\nOnboarded via the zero-quirk OpenAI-wire-compatible catalog (Tier 2) — each has its own setup guide under providers/:\nGroq - LPU-accelerated inference; default openai/gpt-oss-120b\nCerebras - Wafer-scale inference; default gpt-oss-120b\nSambaNova - default Meta-Llama-3.3-70B-Instruct\nTogether AI - default meta-llama/Llama-3.3-70B-Instruct-Turbo\nFireworks AI - default accounts/fireworks/models/kimi-k3\nPerplexity - search-augmented models; default sonar\nCloudflare Workers AI - edge inference\nxAI - Grok models; default grok-4.6\nBaseten - default zai-org/GLM-5.3-Flash (BASETEN_API_KEY)\nGMI Cloud - default MiniMaxAI/MiniMax-M3 (GMICLOUD_API_KEY)\nInception Labs - diffusion LLMs; default mercury-2 (INCEPTION_LABS_API_KEY)\nio.net Intelligence - decentralized GPU inference; default meta-llama/Llama-3.3-70B-Instruct (IO_INTELLIGENCE_API_KEY)\nMancer - default deepseek-v4-flash (MANCER_API_KEY); no tool calling\nUpstage - Solar models; default solar-pro4 (UPSTAGE_API_KEY)\nAPI Route - OpenAI-compatible passthrough; default claude-sonnet-4-6 (API_ROUTE_API_KEY)\nDeepInfra - default deepseek-ai/DeepSeek-V4-Flash-0731 (DEEPINFRA_API_KEY); docs- and roster-verified, not yet live-verified\nFeatherless AI - default unsloth/Llama-3.3-70B-Instruct (FEATHERLESS_AI_API_KEY); docs- and roster-verified, not yet live-verified\nChutes - default moonshotai/Kimi-K2.6-TEE (CHUTES_API_KEY); docs- and roster-verified, not yet live-verified\nOVHcloud AI Endpoints - default gpt-oss-120b (OVH_AI_ENDPOINTS_ACCESS_TOKEN); docs- and roster-verified, not yet live-verified\nSarvam AI - default sarvam-105b (SARVAM_API_KEY); docs- and roster-verified, not yet live-verified\nSynthetic - default syn:large:text (SYNTHETIC_API_KEY); docs- and roster-verified, not yet live-verified\nAmbient - default ambient/large (AMBIENT_API_KEY); docs- and roster-verified, not yet live-verified\nInference.net - default glm-5.2 (INFERENCE_API_KEY); docs- and roster-verified, not yet live-verified\nEmpirioLabs AI - default glm-5-3 (EMPIRIOLABS_API_KEY); docs- and roster-verified, not yet live-verified\nabove.dev - default deepseek-v4.1-flash (ABOVE_DEV_API_KEY); docs- and roster-verified, not yet live-verified\nai& - default openai/gpt-oss-120b (AIAND_API_KEY); docs- and roster-verified, not yet live-verified\nBee by HEOSSI - default bee-cell (BEE_HEOSSI_API_KEY); docs- and roster-verified, not yet live-verified\nCharm Hyper - default deepseek-v4-pro (CHARM_HYPER_API_KEY); docs- and roster-verified, not yet live-verified\nInco - default glm-5.3 (INCO_API_KEY); no tool calling; docs- and roster-verified, not yet live-verified\nKosmik Compute - default qwen/qwen3.8-27b (KOSCOMPUTE_API_KEY); docs- and roster-verified, not yet live-verified\nLilac - default moonshotai/kimi-k2.6 (LILAC_API_KEY); docs- and roster-verified, not yet live-verified\nLLM Tech - default nvidia/Qwen3.8-27B-NVFP4 (LLMTECH_API_KEY); docs- and roster-verified, not yet live-verified\nMoark - default Qwen3-8B (MOARK_API_KEY); docs- and roster-verified, not yet live-verified\nNeuralwatt - default glm-5.3 (NEURALWATT_API_KEY); docs- and roster-verified, not yet live-verified\nPareto Inference - default z-ai/glm-5.3-flash (PARETO_INFERENCE_API_KEY); docs- and roster-verified, not yet live-verified\n\nEmbedding, media-generation, and decision-only providers — not part of generate()/stream() prov","hierarchy":{"lvl0":"Getting Started","lvl1":"⚙️ Provider Configuration Guide","lvl2":"","lvl3":""}},
|
|
4919
4919
|
{"objectID":"44479af76ca558a6630aafa39578fb6543bd892844c3a6c5948ffd58a2d73287","title":"⚙️ Provider Configuration Guide","url":"/docs/getting-started/provider-setup#-provider-configuration-guide","content":"NeuroLink supports multiple AI providers with flexible authentication methods. This guide covers complete setup for all supported providers.","hierarchy":{"lvl0":"Getting Started","lvl1":"⚙️ Provider Configuration Guide","lvl2":"⚙️ Provider Configuration Guide","lvl3":""}},
|
|
4920
4920
|
{"objectID":"ed4c54afa059a89c0cb4a7815f361a50933fe695ec62b3df5a0bd4ad2e25e431","title":"Supported Providers","url":"/docs/getting-started/provider-setup#supported-providers","content":"This guide walks through full environment-variable setup for the providers below; the complete roster — including the newer catalog providers and the embedding/media/decision-only providers — is indexed with setup guides at Provider Guides.","hierarchy":{"lvl0":"Getting Started","lvl1":"⚙️ Provider Configuration Guide","lvl2":"Supported Providers","lvl3":""}},
|
|
4921
4921
|
{"objectID":"c0abb48e819713cb16c04d745137321d348118c823351fcf31ab014735dd036e","title":"Providers configured in this guide","url":"/docs/getting-started/provider-setup#providers-configured-in-this-guide","content":"OpenAI - GPT-4o, GPT-4o-mini, GPT-4-turbo\nAmazon Bedrock - Claude 3.7 Sonnet, Claude 3.5 Sonnet, Claude 3 Haiku\nAmazon SageMaker - Custom models deployed on SageMaker endpoints\nGoogle Vertex AI - Gemini 3 Flash/Pro (preview), Gemini 2.5 Flash, Claude 4.0 Sonnet\nGoogle AI Studio - Gemini 1.5 Pro, Gemini 2.0 Flash, Gemini 1.5 Flash\nAnthropic - Claude 4.5 Opus/Sonnet/Haiku, Claude 4.0 Opus/Sonnet, Claude 3.7 Sonnet\nAzure OpenAI - GPT-4, GPT-3.5-Turbo\nLiteLLM - 100+ models across a broad range of providers via proxy server\nHugging Face - open models served by the unified router (Llama 3.x, Qwen 2.5, DeepSeek, Mistral)\nOllama - Local AI models including Llama 2, Code Llama, Mistral, Vicuna\nOpenRouter - 300+ models from every major lab via one aggregator endpoint\nMistral AI - Mistral Tiny, Small, Medium, and Large models\nDeepSeek - deepseek-chat (V3) and deepseek-reasoner (R1)\nNVIDIA NIM - Llama 3.3 70B and 400+ catalog models via NVIDIA hosted or self-hosted NIM\nLM Studio - Any model loaded in LM Studio desktop app (local, no API key required)\nllama.cpp - Any GGUF model served by llama-server (local, no API key required)","hierarchy":{"lvl0":"Getting Started","lvl1":"⚙️ Provider Configuration Guide","lvl2":"Providers configured in this guide","lvl3":""}},
|
|
4922
|
-
{"objectID":"cc96a04c9f262c3c1f6f8b8e7c82407cc63406705250afd22947a3567e151721","title":"Other providers (setup guides in the Provider Guides index)","url":"/docs/getting-started/provider-setup#other-providers-setup-guides-in-the-provider-guides-index","content":"Onboarded via the zero-quirk OpenAI-wire-compatible catalog (Tier 2) — each has its own setup guide under providers/:\nGroq - LPU-accelerated inference; default openai/gpt-oss-120b\nCerebras - Wafer-scale inference; default gpt-oss-120b\nSambaNova - default Meta-Llama-3.3-70B-Instruct\nTogether AI - default meta-llama/Llama-3.3-70B-Instruct-Turbo\nFireworks AI - default accounts/fireworks/models/kimi-k3\nPerplexity - search-augmented models; default sonar\nCloudflare Workers AI - edge inference\nxAI - Grok models; default grok-4.6\nBaseten - default zai-org/GLM-5.3-Flash (BASETEN_API_KEY)\nGMI Cloud - default MiniMaxAI/MiniMax-M3 (GMICLOUD_API_KEY)\nInception Labs - diffusion LLMs; default mercury-2 (INCEPTION_LABS_API_KEY)\nio.net Intelligence - decentralized GPU inference; default meta-llama/Llama-3.3-70B-Instruct (IO_INTELLIGENCE_API_KEY)\nMancer - default deepseek-v4-flash (MANCER_API_KEY); no tool calling\nUpstage - Solar models; default solar-pro4 (UPSTAGE_API_KEY)\nAPI Route - OpenAI-compatible passthrough; default claude-sonnet-4-6 (API_ROUTE_API_KEY)\
|
|
4922
|
+
{"objectID":"cc96a04c9f262c3c1f6f8b8e7c82407cc63406705250afd22947a3567e151721","title":"Other providers (setup guides in the Provider Guides index)","url":"/docs/getting-started/provider-setup#other-providers-setup-guides-in-the-provider-guides-index","content":"Onboarded via the zero-quirk OpenAI-wire-compatible catalog (Tier 2) — each has its own setup guide under providers/:\nGroq - LPU-accelerated inference; default openai/gpt-oss-120b\nCerebras - Wafer-scale inference; default gpt-oss-120b\nSambaNova - default Meta-Llama-3.3-70B-Instruct\nTogether AI - default meta-llama/Llama-3.3-70B-Instruct-Turbo\nFireworks AI - default accounts/fireworks/models/kimi-k3\nPerplexity - search-augmented models; default sonar\nCloudflare Workers AI - edge inference\nxAI - Grok models; default grok-4.6\nBaseten - default zai-org/GLM-5.3-Flash (BASETEN_API_KEY)\nGMI Cloud - default MiniMaxAI/MiniMax-M3 (GMICLOUD_API_KEY)\nInception Labs - diffusion LLMs; default mercury-2 (INCEPTION_LABS_API_KEY)\nio.net Intelligence - decentralized GPU inference; default meta-llama/Llama-3.3-70B-Instruct (IO_INTELLIGENCE_API_KEY)\nMancer - default deepseek-v4-flash (MANCER_API_KEY); no tool calling\nUpstage - Solar models; default solar-pro4 (UPSTAGE_API_KEY)\nAPI Route - OpenAI-compatible passthrough; default claude-sonnet-4-6 (API_ROUTE_API_KEY)\nDeepInfra - default deepseek-ai/DeepSeek-V4-Flash-0731 (DEEPINFRA_API_KEY); docs- and roster-verified, not yet live-verified\nFeatherless AI - default unsloth/Llama-3.3-70B-Instruct (FEATHERLESS_AI_API_KEY); docs- and roster-verified, not yet live-verified\nChutes - default moonshotai/Kimi-K2.6-TEE (CHUTES_API_KEY); docs- and roster-verified, not yet live-verified\nOVHcloud AI Endpoints - default gpt-oss-120b (OVH_AI_ENDPOINTS_ACCESS_TOKEN); docs- and roster-verified, not yet live-verified\nSarvam AI - default sarvam-105b (SARVAM_API_KEY); docs- and roster-verified, not yet live-verified\nSynthetic - default syn:large:text (SYNTHETIC_API_KEY); docs- and roster-verified, not yet live-verified\nAmbient - default ambient/large (AMBIENT_API_KEY); docs- and roster-verified, not yet live-verified\nInference.net - default glm-5.2 (INFERENCE_API_KEY); docs- and roster-verified, not yet live-verified\nEmpirioLabs AI - default glm-5-3 (EMPIRIO","hierarchy":{"lvl0":"Getting Started","lvl1":"⚙️ Provider Configuration Guide","lvl2":"Other providers (setup guides in the Provider Guides index)","lvl3":""}},
|
|
4923
4923
|
{"objectID":"d17be3311722218280d0e76731e7344c620c18f5073e07abbc826f3922db976a","title":"💰 Model Availability & Cost Considerations","url":"/docs/getting-started/provider-setup#-model-availability-cost-considerations","content":"Important Notes:\nModel Availability: Specific models may not be available in all regions or require special access\nCost Variations: Pricing differs significantly between providers and models (e.g., Claude 3.5 Sonnet vs GPT-4o)\nRate Limits: Each provider has different rate limits and quota restrictions\nLocal vs Cloud: Ollama (local) has no per-request cost but requires hardware resources\nEnterprise Tiers: AWS Bedrock, Google Vertex AI, and Azure typically offer enterprise pricing\n\nBest Practices:\nUse new NeuroLink() with automatic provider selection for cost-optimized routing\nMonitor usage through built-in analytics to track costs\nConsider local models (Ollama) for development and testing\nCheck provider documentation for current pricing and availability","hierarchy":{"lvl0":"Getting Started","lvl1":"⚙️ Provider Configuration Guide","lvl2":"💰 Model Availability & Cost Considerations","lvl3":""}},
|
|
4924
4924
|
{"objectID":"3a1bd0ccb708d37a59e2db3650f689f77fba69e91ec88142c7c9b85f1c18057d","title":"🏢 Enterprise Proxy Support","url":"/docs/getting-started/provider-setup#-enterprise-proxy-support","content":"Providers support corporate proxy environments automatically. Simply set environment variables:\n\nNo code changes required - NeuroLink automatically detects and uses proxy settings.\n\nFor detailed proxy setup → See Enterprise & Proxy Setup Guide","hierarchy":{"lvl0":"Getting Started","lvl1":"⚙️ Provider Configuration Guide","lvl2":"🏢 Enterprise Proxy Support","lvl3":""}},
|
|
4925
4925
|
{"objectID":"1b0159447e4aee3ffd31efe28600cf755e4cc49d50f354e1a59d9574199213d2","title":"Supported Models","url":"/docs/getting-started/provider-setup#supported-models","content":"gpt-4o (default) - Latest multimodal model\ngpt-4o-mini - Cost-effective variant\ngpt-4-turbo - High-performance model","hierarchy":{"lvl0":"Getting Started","lvl1":"⚙️ Provider Configuration Guide","lvl2":"Supported Models","lvl3":""}},
|
|
@@ -5176,6 +5176,37 @@
|
|
|
5176
5176
|
{"objectID":"70b84d0be03827e001b6d05670d5f52b63e1fb6dc11f12c9696bfadd99a4266a","title":"OR","url":"/docs/getting-started/provider-setup#or-1","content":"GOOGLEAPPLICATIONCREDENTIALS=/path/to/service-account.json\n`","hierarchy":{"lvl0":"Getting Started","lvl1":"⚙️ Provider Configuration Guide","lvl2":"OR","lvl3":""}},
|
|
5177
5177
|
{"objectID":"692fcd0ce7dabb7b8c99a22dc148cfab07a092835564deb63ae44194dc8d6ecb","title":"Provider ID","url":"/docs/getting-started/provider-setup#provider-id-2","content":"Provider ID: gemini-live","hierarchy":{"lvl0":"Getting Started","lvl1":"⚙️ Provider Configuration Guide","lvl2":"Provider ID","lvl3":""}},
|
|
5178
5178
|
{"objectID":"7888b58098daa64d6c18ef501469033f7d2f48f5377e89df007e3f0aa57e237f","title":"stream() + TTS Mode 2 (synthesise the streamed reply)","url":"/docs/getting-started/provider-setup#stream-tts-mode-2-synthesise-the-streamed-reply","content":"Two ergonomic options — both deliver byte-identical audio:\n\nWhen tts.useAiResponse is false (Mode 1) or TTS is not enabled,\nr.audio resolves to undefined rather than hanging.\n\n← Back to Main README | Next: API Reference →","hierarchy":{"lvl0":"Getting Started","lvl1":"⚙️ Provider Configuration Guide","lvl2":"stream() + TTS Mode 2 (synthesise the streamed reply)","lvl3":""}},
|
|
5179
|
+
{"objectID":"3e1a7805e535de5c3fe2a95c56319d2416e21da60f6fd97050791c583b8d1958","title":"above.dev Provider Guide","url":"/docs/getting-started/providers/above-dev","content":"above.dev Provider Guide\n\nabove.dev is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/above-dev.json) rather than hand-written code.\nThat file is the source of truth for everything on this page.\n\nVerification status: docs- and roster-verified, not yet live-verified.\nEverything below comes from above.dev's own public docs\n(https://above.dev/docs) and an unauthenticated GET /v1/models call — no\nAPI key was used or obtained. No generate()/stream() request has been\nmade against this provider yet, so chat, streaming, tool calling and\nstructured output are not confirmed to work end-to-end. See\nVerification status below before relying on this\nprovider in production.\n\nKey Facts\nProvider id: above-dev\nProtocol: OpenAI-compatible (POST /v1/chat/completions, documented as\n an alias that delegates to the vendor's native POST /v1/messages with\n \"identical behaviour\")\nBase URL: https://api.above.dev/v1\nDefault model: deepseek-v4.1-flash (above.dev's own default when no\n model is named — \"the cheapest model in the catalog\")\nModels in catalog: 9\nStreaming: documented (stream: true, SSE, dedicated docs section)\nTool calling: documented as an accepted request field, but only as a\n routing signal — see Tools & structured output\nStructured output: same caveat as tool calling; not declared supported\n here\nEmbeddings: not documented\nBilling: no free tier — API keys are issued only after purchase\nKey format: prefix sk-gw- documented; the full character set after\n the prefix is not specified\nRate limits: 300 requests/minute per account (account-wide, all keys)\n\nQuick Start\nGet an API key\nVisit: https://above.dev/pricing and purchase credit — API keys are issued only after purchase, there is no free signup\nCopy the issued key — it starts with sk-gw- (the docs give only the prefix, not a full character-set spec)\nManage or rotate the key from https://above.dev/dashboard if it is ever compromised — a key grants full access to your credit balance\nSet ABOVE_DEV_API_KEY in your .env file\nConfigure\nUse it\n\nPer-request credentials work as they do for every provider:\n\nModels\n\n| Model | Context | Vision | $/M in · out | Notes |\n| -------------------------- | ------- | ------ | ---------------------- | ------------------------------------------------------------------------------- |\n| deepseek-v4.1-flash ⭐ | 1M | yes\\* | time-of-day (see note) | Default — the id above.dev itself routes to when no model is named. Tier T1. |\n| deepseek-v4-pro | 1M | no | time-of-day (see note) | Tier T2 (\"agentic — multi-step, tool-capable\" per the vendor's own tier table). |\n| glm-5.2 | 1.05M | no | $1.54 / $4.84 | Zhipu GLM 5.2. Tier T2. |\n| glm-5.3-flash | 1.05M | yes\\* | $0.165 / $0.55 | Zhipu GLM 5.3 Flash. Tier T1. |\n| glm-5.2-fast | 1.05M | no | $2.31 / $7.26 | Zhipu GLM 5.2 Fast. Tier T3 (\"highest capability in the catalog\"). |\n| qwen3.8-max | 1M | yes\\* | $2.20 / $6.60 | Alibaba Qwen 3.8 Max. Tier T3. |\n| mimo-v2.6-pro | 1M | no | $0.5077 / $1.0154 | MiMo V2.6 Pro. Tier T2. |\n| mimo-v2.6-flash | 1M | no | $0.1692 / $0.3385 | MiMo V2.6 Flash. Tier T1. |\n| mimo-v2.6-pro-ultraspeed | 1M | no | $5.0769 / $10.1538 | MiMo V2.6 Pro UltraSpeed. Tier T3. |\n\n\\ Vision is supports_vision: true as *self-reported by above.dev's own\nGET /v1/models response (unauthenticated, retrieved 2026-09-28). No image\nwas actually sent to any model — this is vendor-stated metadata, not a\nlive-probed result, so models.visionModel is deliberately left unset in the\ncatalog entry.\n\nEvery model in the current catalog accepts up to 131,072 output tokens\n(documented account-wide limit, also reported per-model as\nmax_completion_tokens in GET /v1/models).\n\nTime-of-day pricing: deepseek-v4.1-flash and deepseek-v4-pro bill at\ndifferent peak/off-peak rates (peak = 01:00–04:00 and 06:00–10:00 UTC on\nweekdays; everything else, including all of the weekend in Beijing time, is\noff-peak). Because the catalog schema's pricingPerMTok is a single number,\nnot a range, these two models' pricing is omitted from the catalog entry\nrather than collapsed into one number — see above.dev's pricing table\n(https://above.dev/docs) for the current peak/off-peak figures. Every other\nmodel in this roster bills a single flat rate, shown above.\n\nFallback order when the default is unavailable: glm","hierarchy":{"lvl0":"Getting Started","lvl1":"above.dev Provider Guide","lvl2":"","lvl3":""}},
|
|
5180
|
+
{"objectID":"d636f5dd372bab67fca3590c487dff8f3b63339d65fa54346ecf7432d0272d18","title":"above.dev Provider Guide","url":"/docs/getting-started/providers/above-dev#abovedev-provider-guide","content":"above.dev is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/above-dev.json) rather than hand-written code.\nThat file is the source of truth for everything on this page.\n\nVerification status: docs- and roster-verified, not yet live-verified.\nEverything below comes from above.dev's own public docs\n(https://above.dev/docs) and an unauthenticated GET /v1/models call — no\nAPI key was used or obtained. No generate()/stream() request has been\nmade against this provider yet, so chat, streaming, tool calling and\nstructured output are not confirmed to work end-to-end. See\nVerification status below before relying on this\nprovider in production.","hierarchy":{"lvl0":"Getting Started","lvl1":"above.dev Provider Guide","lvl2":"above.dev Provider Guide","lvl3":""}},
|
|
5181
|
+
{"objectID":"5b6eeae2c34207593e8e0d066714fb7cfe420331739548659c79448d67f20a0c","title":"Key Facts","url":"/docs/getting-started/providers/above-dev#key-facts","content":"Provider id: above-dev\nProtocol: OpenAI-compatible (POST /v1/chat/completions, documented as\n an alias that delegates to the vendor's native POST /v1/messages with\n \"identical behaviour\")\nBase URL: https://api.above.dev/v1\nDefault model: deepseek-v4.1-flash (above.dev's own default when no\n model is named — \"the cheapest model in the catalog\")\nModels in catalog: 9\nStreaming: documented (stream: true, SSE, dedicated docs section)\nTool calling: documented as an accepted request field, but only as a\n routing signal — see Tools & structured output\nStructured output: same caveat as tool calling; not declared supported\n here\nEmbeddings: not documented\nBilling: no free tier — API keys are issued only after purchase\nKey format: prefix sk-gw- documented; the full character set after\n the prefix is not specified\nRate limits: 300 requests/minute per account (account-wide, all keys)","hierarchy":{"lvl0":"Getting Started","lvl1":"above.dev Provider Guide","lvl2":"Key Facts","lvl3":""}},
|
|
5182
|
+
{"objectID":"70adcb8b0eec6fdff9cce58b3f633340ca74d5b9a0c0aee4eba0d8b894262787","title":"1. Get an API key","url":"/docs/getting-started/providers/above-dev#1-get-an-api-key","content":"Visit: https://above.dev/pricing and purchase credit — API keys are issued only after purchase, there is no free signup\nCopy the issued key — it starts with sk-gw- (the docs give only the prefix, not a full character-set spec)\nManage or rotate the key from https://above.dev/dashboard if it is ever compromised — a key grants full access to your credit balance\nSet ABOVE_DEV_API_KEY in your .env file","hierarchy":{"lvl0":"Getting Started","lvl1":"above.dev Provider Guide","lvl2":"1. Get an API key","lvl3":""}},
|
|
5183
|
+
{"objectID":"e17d270317bfdd4cc49591a6baecedcedff0aa5d9f731d0ecfb3721634679105","title":"3. Use it","url":"/docs/getting-started/providers/above-dev#3-use-it","content":"`bash","hierarchy":{"lvl0":"Getting Started","lvl1":"above.dev Provider Guide","lvl2":"3. Use it","lvl3":""}},
|
|
5184
|
+
{"objectID":"d6b1722a1fcbf610d4440316e2514e2baf09e7983afa3933c9bfc91edc5aa2bc","title":"CLI","url":"/docs/getting-started/providers/above-dev#cli","content":"npx @juspay/neurolink generate \"Hello\" --provider above-dev\ntypescript\nawait neurolink.generate({\n input: { text: \"Hello\" },\n provider: \"above-dev\",\n credentials: { \"above-dev\": { apiKey: process.env.ABOVEDEVAPI_KEY } },\n});\n`","hierarchy":{"lvl0":"Getting Started","lvl1":"above.dev Provider Guide","lvl2":"CLI","lvl3":""}},
|
|
5185
|
+
{"objectID":"9f9bd5d3dbcf322f8e478f11de219686545593e90ff8b049ee03567751be419e","title":"Models","url":"/docs/getting-started/providers/above-dev#models","content":"| Model | Context | Vision | $/M in · out | Notes |\n| -------------------------- | ------- | ------ | ---------------------- | ------------------------------------------------------------------------------- |\n| deepseek-v4.1-flash ⭐ | 1M | yes\\* | time-of-day (see note) | Default — the id above.dev itself routes to when no model is named. Tier T1. |\n| deepseek-v4-pro | 1M | no | time-of-day (see note) | Tier T2 (\"agentic — multi-step, tool-capable\" per the vendor's own tier table). |\n| glm-5.2 | 1.05M | no | $1.54 / $4.84 | Zhipu GLM 5.2. Tier T2. |\n| glm-5.3-flash | 1.05M | yes\\* | $0.165 / $0.55 | Zhipu GLM 5.3 Flash. Tier T1. |\n| glm-5.2-fast | 1.05M | no | $2.31 / $7.26 | Zhipu GLM 5.2 Fast. Tier T3 (\"highest capability in the catalog\"). |\n| qwen3.8-max | 1M | yes\\* | $2.20 / $6.60 | Alibaba Qwen 3.8 Max. Tier T3. |\n| mimo-v2.6-pro | 1M | no | $0.5077 / $1.0154 | MiMo V2.6 Pro. Tier T2. |\n| mimo-v2.6-flash | 1M | no | $0.1692 / $0.3385 | MiMo V2.6 Flash. Tier T1. |\n| mimo-v2.6-pro-ultraspeed | 1M | no | $5.0769 / $10.1538 | MiMo V2.6 Pro UltraSpeed. Tier T3. |\n\n\\ Vision is supports_vision: true as *self-reported by above.dev's own\nGET /v1/models response (unauthenticated, retrieved 2026-09-28). No image\nwas actually sent to any model — this is vendor-stated metadata, not a\nlive-probed result, so models.visionModel is deliberately left unset in the","hierarchy":{"lvl0":"Getting Started","lvl1":"above.dev Provider Guide","lvl2":"Models","lvl3":""}},
|
|
5186
|
+
{"objectID":"6405e1dde4448290fadbbd57c9562896bc521743e12796f118b70b403a304bf9","title":"Tools & structured output — a documented caveat {#tools-and-structured-output}","url":"/docs/getting-started/providers/above-dev#tools-structured-output-a-documented-caveat-tools-and-structured-output","content":"above.dev's own API reference table describes the /v1/messages request\nparameters differently depending on the field:\ntemperature — \"Passed through to the model.\"\ntool_choice — \"Tool choice control. Passed through to the model.\"\ntools — \"Tool definitions. Presence influences routing toward\n tool-capable models.\"\nresponse_format — \"Structured output format. Presence scores toward\n structured-output models.\"\n\nThe docs never state that tools or response_format are forwarded to, or\nhonoured by, whichever model ends up serving the request — only that sending\nthem nudges above.dev's routing. No example response containing tool_calls,\na finish_reason value, or a reasoning/reasoning_content field appears\nanywhere in the docs. GET /v1/models does self-report\nsupports_tool_calls: true and supports_structured_output: true for every\nmodel in the roster, but that is unauthenticated, vendor-supplied metadata,\nnot a probed result.\n\nGiven that ambiguity and that no live request (which would require a paid\nkey) was made:\ncapabilities.tools is set to \"model-dependent\" rather than true.\ncapabilities.structuredOutput and capabilities.structuredOutputWithTools\n are both false.\ncapabilities.thinking is false — GET /v1/models reports\n supports_reasoning: true for every model, but the human-readable docs\n never document a reasoning/thinking request or response field, so this\n is not treated as a confirmed NeuroLink-facing capability.\n\nA future pass with a real key should re-probe all of this the way\nfriendli.json/novita.json were probed (see docs/provider-integration/tiers/tier-2-catalog-entry.md#live-verification)\nand tighten these flags with evidence.liveMatrix filled in.","hierarchy":{"lvl0":"Getting Started","lvl1":"above.dev Provider Guide","lvl2":"Tools & structured output — a documented caveat {#tools-and-structured-output}","lvl3":""}},
|
|
5187
|
+
{"objectID":"921ba7d6a43c203510a37ebd9cc837a34360fc6595cebc700debe6ef747be8ee","title":"Verification status","url":"/docs/getting-started/providers/above-dev#verification-status","content":"Tier-2 onboarding requires evidence before a provider is accepted, and\npnpm run verify:provider-onboarding gates it in CI. This is what the\ncatalog currently records for above.dev — docs- and roster-verified only,\nnot yet live-verified:\n\n| Probe | Result |\n| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |\n| Roster | unauthenticated GET https://api.above.dev/v1/models — HTTP 200, 9 models, 2026-09-28. No key used. |\n| Docs cross-check | https://above.dev/docs fetched and re-read 2026-09-28 for auth header shape, endpoints, pricing, limits and error codes. |\n| Auth rejection probe | Not performed — would require sending a request with a credential header, which is out of scope for a credential-free onboarding. |\n| Live capability sweep | Not performed — evidence.liveMatrix is null. No generate()/stream() call has been made against above-dev yet. |\n\nUntil a live matrix run fills in evidence.liveMatrix, treat tools,\nstructuredOutput, structuredOutputWithTools and thinking as unproven —\nthe catalog entry already reflects that by declining to assert them.","hierarchy":{"lvl0":"Getting Started","lvl1":"above.dev Provider Guide","lvl2":"Verification status","lvl3":""}},
|
|
5188
|
+
{"objectID":"72ecfa90e15b96485c0280ca134e1ccfa26e41851f2e632db44ddcaae149211c","title":"Troubleshooting","url":"/docs/getting-started/providers/above-dev#troubleshooting","content":"| Symptom | Cause | Fix |\n| -------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |\n| Invalid or missing above.dev API key | ABOVE_DEV_API_KEY unset, wrong, or inactive (401) | Check the key and get/rotate one at https://above.dev/pricing / https://above.dev/dashboard |\n| Account balance insufficient (402) | No purchased credit remaining | Top up at https://above.dev/pricing |\n| Model not enabled for key (403) | The model is plan-restricted or in private beta for this key | Pick another catalog model, or contact above.dev to enable it |\n| Rate limited (429) | More than 300 requests/minute on the account | Retry after the documented Retry-After header |\n| Upstream timeout (504) | provider_timeout — the routed model did not respond in time | Retry the request |","hierarchy":{"lvl0":"Getting Started","lvl1":"above.dev Provider Guide","lvl2":"Troubleshooting","lvl3":""}},
|
|
5189
|
+
{"objectID":"067a3642c950dd7d23c8df2f3ef9371ac1ded9e230a1aed516805bfca28ed5ac","title":"See also","url":"/docs/getting-started/providers/above-dev#see-also","content":"Provider setup overview\nAll providers\nTier-2 onboarding — how this provider's JSON becomes a working integration\nProvider feature compatibility","hierarchy":{"lvl0":"Getting Started","lvl1":"above.dev Provider Guide","lvl2":"See also","lvl3":""}},
|
|
5190
|
+
{"objectID":"f8b0b82e9988f8793328b85bd1df65343043e48875a77551c92ba02911beda9f","title":"ai& Provider Guide","url":"/docs/getting-started/providers/aiand","content":"ai& Provider Guide\n\nai& is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/aiand.json) rather than hand-written code. That\nfile is the source of truth for everything on this page.\n\nVerification status: docs- and roster-verified, not yet live-verified.\nEvery claim on this page comes from ai&'s own public documentation\n(https://docs.aiand.com/) and an unauthenticated GET /v1/models call —\nno API key was created or used, and no chat/stream/tool-call request was\never sent. Treat capability flags as \"documented\", not \"proven against a\nlive response\". See Verification status below.\n\nKey Facts\nProvider id: aiand\nProtocol: OpenAI-compatible (/v1/chat/completions); also exposes an\n Anthropic-shaped /v1/messages, a /v1/responses endpoint, and legacy\n /v1/completions\nBase URL: https://api.aiand.com/v1\nDefault model: openai/gpt-oss-120b (the model used in ai&'s own\n quickstart example)\nModels in catalog: 11\nStreaming: documented (SSE, stream: true, data: [DONE] terminal\n event)\nTool calling: documented (OpenAI tools / tool_choice /\n parallel_tool_calls, gated per-model on a tool_calling capability flag\n — all 11 current models have it)\nStructured output: documented — response_format: json_object (JSON\n mode) and response_format: json_schema with strict: true. Combined\n tools + response_format in the same request was not probed (no key\n used), so structuredOutputWithTools is false.\nThinking / reasoning effort: documented — a reasoning_effort request\n parameter whose accepted values are per-model (read from each model's\n reasoning_efforts in GET /v1/models)\nEmbeddings: not documented — no embeddings endpoint appears anywhere in\n the docs navigation\nBilling: no free tier — prepaid credits only, purchased via Stripe\n Checkout; a zero balance returns HTTP 402\nKey format: keys start with sk-; no further pattern documented\n\nQuick Start\nGet an API key\nVisit: https://console.aiand.com/playground and sign in (Google, GitHub, or a magic-link email — https://docs.aiand.com/authentication/)\nCreate an organization API key under Organizations → API Keys (https://docs.aiand.com/organizations/api-keys/) — shown in full only once, and starts with sk-\nai& is prepaid only, no free tier: add credits via Stripe Checkout before making requests (https://docs.aiand.com/billing/credits/) — a zero balance returns HTTP 402 until credits are added\nSet AIAND_API_KEY in your .env file\nConfigure\nUse it\n\nPer-request credentials work as they do for every provider:\n\nModels\n\n| Model | Context | Vision | $/M in · out · cached | Notes |\n| ------------------------------- | ------- | ----------------- | ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |\n| openai/gpt-oss-120b ⭐ | 131K | no | $0.15 / $0.60 / $0.08 | Default — the model in ai&'s own quickstart example. Cheapest on the roster. reasoning_effort: low/medium/high (default medium). |\n| zai-org/glm-5.3 | 1M | no | $1.00 / $4.00 / $0.30 | \"Flagship GLM model for long-horizon coding, agents, and complex project delivery.\" reasoning_effort: low/high/max (default max). |\n| zai-org/glm-5.2 | 1M | no | $1.00 / $4.00 / $0.30 | Prior GLM generation. reasoning_effort: none/high/max (default max). |\n| deepseek-ai/deepseek-v4-pro | 1M | no | $1.00 / $2.50 / $0.25 | \"Open MoE flagship with million-token context for coding and long agent runs.\" reasoning_effort: none/high/max (default none). |\n| deepseek-ai/deepseek-v4-flash | 1M | no | $0.15 / $0.25 / $0.08 | \"Fast DeepSeek V4 lane for economical reasoning, coding, and long-context work.\" reasoning_effort: none/high/max (default none). |\n| moonshotai/kimi-k3 | 1M | listed (see note) | $3.00 / $12.50 / $0.50 | \"Multimodal Kimi model with 1M context and toggleable max-effort thinking.\" reasoning_effort: low/high/max (default max). |\n| moonshotai/kimi-k2.7-code | 262K | listed (see note) | $0.75 / $3.50 / $0.20 | Coding-focused Kimi model. reasoning_effort: high only. |\n| qwen/qwen3.8-27b | 262K | listed (see note) | $0.40 / $3.00 / $0.20 | Dense 27B vision-language model. reasoning_effort: none/low/medium/xhigh (default medium). |\n| qwen/qwen3.6-27b | 262K | listed (see note) | $0.32 / $3.20 / $0.20 | Qwen vision-language model. reasoning_effort: none/high (default high). ","hierarchy":{"lvl0":"Getting Started","lvl1":"ai& Provider Guide","lvl2":"","lvl3":""}},
|
|
5191
|
+
{"objectID":"7c0565e4aa0978e3b01ebff3b3698776cbce795be8ee9cf17583d4830f764b78","title":"ai& Provider Guide","url":"/docs/getting-started/providers/aiand#ai-provider-guide","content":"ai& is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/aiand.json) rather than hand-written code. That\nfile is the source of truth for everything on this page.\n\nVerification status: docs- and roster-verified, not yet live-verified.\nEvery claim on this page comes from ai&'s own public documentation\n(https://docs.aiand.com/) and an unauthenticated GET /v1/models call —\nno API key was created or used, and no chat/stream/tool-call request was\never sent. Treat capability flags as \"documented\", not \"proven against a\nlive response\". See Verification status below.","hierarchy":{"lvl0":"Getting Started","lvl1":"ai& Provider Guide","lvl2":"ai& Provider Guide","lvl3":""}},
|
|
5192
|
+
{"objectID":"afa4903fe525a05133d5563a9a48df9becbe8b28ceb1705fd3cf7fc869b4428e","title":"Key Facts","url":"/docs/getting-started/providers/aiand#key-facts","content":"Provider id: aiand\nProtocol: OpenAI-compatible (/v1/chat/completions); also exposes an\n Anthropic-shaped /v1/messages, a /v1/responses endpoint, and legacy\n /v1/completions\nBase URL: https://api.aiand.com/v1\nDefault model: openai/gpt-oss-120b (the model used in ai&'s own\n quickstart example)\nModels in catalog: 11\nStreaming: documented (SSE, stream: true, data: [DONE] terminal\n event)\nTool calling: documented (OpenAI tools / tool_choice /\n parallel_tool_calls, gated per-model on a tool_calling capability flag\n — all 11 current models have it)\nStructured output: documented — response_format: json_object (JSON\n mode) and response_format: json_schema with strict: true. Combined\n tools + response_format in the same request was not probed (no key\n used), so structuredOutputWithTools is false.\nThinking / reasoning effort: documented — a reasoning_effort request\n parameter whose accepted values are per-model (read from each model's\n reasoning_efforts in GET /v1/models)\nEmbeddings: not documented — no embeddings endpoint appears anywhere in\n the docs navigation\nBilling: no free tier — prepaid credits only, purchased via Stripe\n Checkout; a zero balance returns HTTP 402\nKey format: keys start with sk-; no further pattern documented","hierarchy":{"lvl0":"Getting Started","lvl1":"ai& Provider Guide","lvl2":"Key Facts","lvl3":""}},
|
|
5193
|
+
{"objectID":"ab1f9987257bef35dd6169ae0736d26b3913f536762973751932bf71c946ac4a","title":"1. Get an API key","url":"/docs/getting-started/providers/aiand#1-get-an-api-key","content":"Visit: https://console.aiand.com/playground and sign in (Google, GitHub, or a magic-link email — https://docs.aiand.com/authentication/)\nCreate an organization API key under Organizations → API Keys (https://docs.aiand.com/organizations/api-keys/) — shown in full only once, and starts with sk-\nai& is prepaid only, no free tier: add credits via Stripe Checkout before making requests (https://docs.aiand.com/billing/credits/) — a zero balance returns HTTP 402 until credits are added\nSet AIAND_API_KEY in your .env file","hierarchy":{"lvl0":"Getting Started","lvl1":"ai& Provider Guide","lvl2":"1. Get an API key","lvl3":""}},
|
|
5194
|
+
{"objectID":"dce4e06fddf59baf16af336cc8dabcf45b807be0c7ec25c987be0318bd6ba597","title":"3. Use it","url":"/docs/getting-started/providers/aiand#3-use-it","content":"`bash","hierarchy":{"lvl0":"Getting Started","lvl1":"ai& Provider Guide","lvl2":"3. Use it","lvl3":""}},
|
|
5195
|
+
{"objectID":"45e77965ad342f308b9fbf363cf527d7261ffa2d22c0ac0919dada65119d9867","title":"CLI","url":"/docs/getting-started/providers/aiand#cli","content":"npx @juspay/neurolink generate \"Hello\" --provider aiand\ntypescript\nawait neurolink.generate({\n input: { text: \"Hello\" },\n provider: \"aiand\",\n credentials: { aiand: { apiKey: process.env.AIANDAPIKEY } },\n});\n`","hierarchy":{"lvl0":"Getting Started","lvl1":"ai& Provider Guide","lvl2":"CLI","lvl3":""}},
|
|
5196
|
+
{"objectID":"782256f9c0a24df016f52c9cd37647a60707bdd446e17a53989a9c51497ffd2b","title":"Models","url":"/docs/getting-started/providers/aiand#models","content":"| Model | Context | Vision | $/M in · out · cached | Notes |\n| ------------------------------- | ------- | ----------------- | ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |\n| openai/gpt-oss-120b ⭐ | 131K | no | $0.15 / $0.60 / $0.08 | Default — the model in ai&'s own quickstart example. Cheapest on the roster. reasoning_effort: low/medium/high (default medium). |\n| zai-org/glm-5.3 | 1M | no | $1.00 / $4.00 / $0.30 | \"Flagship GLM model for long-horizon coding, agents, and complex project delivery.\" reasoning_effort: low/high/max (default max). |\n| zai-org/glm-5.2 | 1M | no | $1.00 / $4.00 / $0.30 | Prior GLM generation. reasoning_effort: none/high/max (default max). |\n| deepseek-ai/deepseek-v4-pro | 1M | no | $1.00 / $2.50 / $0.25 | \"Open MoE flagship with million-token context for coding and long agent runs.\" reasoning_effort: none/high/max (default none). |\n| deepseek-ai/deepseek-v4-flash | 1M | no | $0.15 / $0.25 / $0.08 | \"Fast DeepSeek V4 lane for economical reasoning, coding, and long-context work.\" reasoning_effort: none/high/max (default none). |\n| moonshotai/kimi-k3 | 1M | listed (see note) | $3.00 / $12.50 / $0.50 | \"Multimodal Kimi model with 1M context and toggleable max-effort thinking.\" reasoning_effort: low/high/max (default max). |\n| moonshotai/kimi-k2.7-code | 262K | listed (see note) | $0.75 / $3.50 / $0.20 | Coding-focused Kimi model. reasoning_effort: high only. |\n| qw","hierarchy":{"lvl0":"Getting Started","lvl1":"ai& Provider Guide","lvl2":"Models","lvl3":""}},
|
|
5197
|
+
{"objectID":"dede906f39b1aab3cd4d473c673a58e0cd94b1a2439c1ed0f95b4bfe69a159b9","title":"Verification status","url":"/docs/getting-started/providers/aiand#verification-status","content":"Tier-2 onboarding requires evidence before a provider is accepted, and\npnpm run verify:provider-onboarding gates it in CI. This entry was built\nwithout credentials, from ai&'s public documentation and one\nunauthenticated GET request — no signup, no API key, no POST request to the\nvendor was made. This is what the catalog records for ai&:\n\n| Probe | Result |\n| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Roster | unauthenticated GET https://api.aiand.com/v1/models, HTTP 200, 2026-09-28 — 11 models, cross-checked against /models/catalog/ and /models/pricing/ |\n| Auth rejection | not probed — sending any request (even with an invalid key) is outside credential-free scope; the 401 authentication_error / invalid_api_key shape in errorRules is transcribed from https://docs.aiand.com/errors/","hierarchy":{"lvl0":"Getting Started","lvl1":"ai& Provider Guide","lvl2":"Verification status","lvl3":""}},
|
|
5198
|
+
{"objectID":"610bc3c08abb0c68f7555c03f9ffa0f70796511deaa63074d3d830462ff11778","title":"Troubleshooting","url":"/docs/getting-started/providers/aiand#troubleshooting","content":"| Symptom | Cause | Fix |\n| -------------------------------------------- | ---------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |\n| Invalid ai& API key | AIAND_API_KEY unset or wrong | Check the key at https://console.aiand.com/playground |\n| HTTP 402 / insufficient credits | ai& is prepaid-only with no free tier | Add credits via Stripe Checkout at https://docs.aiand.com/billing/credits/ |\n| 429 rate limited | Documented per-key/per-org rate limits | Check the X-RateLimit-Policy response header and back off |\n| tools request rejected on a non-tool model | The chosen model lacks the tool_calling capability | Pick a model whose GET /v1/models entry lists tool_calling (all 11 catalog models currently do) |\n| Vision request fails or is ignored | ai& expects images/video via the Files API (file_id), not inline image_url data URIs | Not yet supported by this integration in the standard NeuroLink flow — treat vision as unverified for now |","hierarchy":{"lvl0":"Getting Started","lvl1":"ai& Provider Guide","lvl2":"Troubleshooting","lvl3":""}},
|
|
5199
|
+
{"objectID":"94b72784faebfc54930095e3c6099a7fb4d8671bd7f782367925748c4a7ee468","title":"See also","url":"/docs/getting-started/providers/aiand#see-also","content":"Provider setup overview\nAll providers\nTier-2 onboarding — how this provider's JSON becomes a working integration\nProvider feature compatibility","hierarchy":{"lvl0":"Getting Started","lvl1":"ai& Provider Guide","lvl2":"See also","lvl3":""}},
|
|
5200
|
+
{"objectID":"96828acafa99097d5580b5c7cbf8e0f62767b1be880dab7399a495013c4fe104","title":"Ambient Provider Guide","url":"/docs/getting-started/providers/ambient","content":"Ambient Provider Guide\n\nAmbient is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/ambient.json) rather than hand-written code. That\nfile is the source of truth for everything on this page.\n\nVerification status: docs- and roster-verified, not yet live-verified.\nThis entry was built entirely from Ambient's public docs pages and an\nunauthenticated GET /v1/models call — no API key was used or created.\ncapabilities.tools and capabilities.structuredOutput come from the live\nroster's own self-reported supported_features field; the combined\ncapabilities (structuredOutputWithTools, toolsWithStreaming) are\ndeliberately left false because no live POST request was possible without\ncredentials. evidence.liveMatrix is null until someone runs the real\ncapability sweep with a working key.\n\nKey Facts\nProvider id: ambient\nProtocol: OpenAI- and Anthropic-compatible (/chat/completions)\nBase URL: https://api.ambient.xyz/v1\nDefault model: ambient/large (a vendor-managed alias; see Models)\nModels in catalog: 4\nStreaming: documented (SSE, \"stream\": true, standard\n chat.completion.chunk objects)\nTool calling: documented via the live roster's supported_features\n (tools) on all 4 models — not yet live-probed end to end\nStructured output: documented via the live roster's supported_features\n (json_mode, structured_outputs) on all 4 models — not yet live-probed\nEmbeddings: not documented\nBilling: no free tier — cheapest plan is Starter at $1/mo\nKey format: none declared\n\nQuick Start\nGet an API key\nVisit: https://app.ambient.xyz and sign in\nClick \"Get API key\" to create a key\nAmbient has no free tier — the cheapest option is the $1/mo Starter plan (https://ambient.xyz/pricing); confirm current billing terms before use\nSet AMBIENT_API_KEY in your .env file\nConfigure\nUse it\n\nPer-request credentials work as they do for every provider:\n\nModels\n\n| Model | Context | Max out | Vision | $/M in · out (cached in) | Notes |\n| ------------------ | ------- | ------- | ------ | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| ambient/large ⭐ | 198K | 198K | no | $0.60 / $2.00 ($0.15) | Recommended — the model id used in every example in Ambient's own docs. A vendor-managed alias that today mirrors z-ai/glm-5.2; its specs \"mirror whatever concrete model it currently points to.\" |\n| z-ai/glm-5.2 | 198K | 198K | no | $0.60 / $2.00 ($0.15) | The concrete model ambient/large currently aliases. Docs call it \"the supported production model.\" Fallback pinned to a stable id. |\n| qwen/qwen3.6-27b | 32K | 8K | yes | $0.32 / $3.20 ($0.16) | Natively multimodal (text + image), 27B dense. Docs mark non-GLM-5.2 entries as possible previews with no guarantees. Used as visionModel. |\n| qwen/qwen3.8-27b | 32K | 8K | yes | $0.32 / $3.20 ($0.16) | Roster description also claims \"video\" input, but the live roster's input_modalities lists only text/image, so no video support is declared here. Preview. |\n\nContext/output/pricing are taken from the unauthenticated\nGET https://api.ambient.xyz/v1/models response (2026-09-28) and cross-checked\nagainst Ambient's own docs models page, which shows the same numbers rounded\n(e.g. \"198K\" for 202,752 tokens).\n\nFallback order when the default is unavailable: z-ai/glm-5.2 →\nqwen/qwen3.6-27b → qwen/qwen3.8-27b.\n\nVerification status\n\nTier-2 onboarding requires evidence before a provider is accepted, and\npnpm run verify:provider-onboarding gates it in CI. This is what the\ncatalog records for Ambient — and, just as importantly, what it does not\nyet record:\n\n| Probe | Result |\n| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Roster ","hierarchy":{"lvl0":"Getting Started","lvl1":"Ambient Provider Guide","lvl2":"","lvl3":""}},
|
|
5201
|
+
{"objectID":"45adf6208ab4d1cd8e7ecf8ffaf1473bf7983839810f08267c26e2909e7ac70f","title":"Ambient Provider Guide","url":"/docs/getting-started/providers/ambient#ambient-provider-guide","content":"Ambient is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/ambient.json) rather than hand-written code. That\nfile is the source of truth for everything on this page.\n\nVerification status: docs- and roster-verified, not yet live-verified.\nThis entry was built entirely from Ambient's public docs pages and an\nunauthenticated GET /v1/models call — no API key was used or created.\ncapabilities.tools and capabilities.structuredOutput come from the live\nroster's own self-reported supported_features field; the combined\ncapabilities (structuredOutputWithTools, toolsWithStreaming) are\ndeliberately left false because no live POST request was possible without\ncredentials. evidence.liveMatrix is null until someone runs the real\ncapability sweep with a working key.","hierarchy":{"lvl0":"Getting Started","lvl1":"Ambient Provider Guide","lvl2":"Ambient Provider Guide","lvl3":""}},
|
|
5202
|
+
{"objectID":"8f5c438173208e984cb423d8d9cff3d7d738129cba33bb6fda5e373b52d42afc","title":"Key Facts","url":"/docs/getting-started/providers/ambient#key-facts","content":"Provider id: ambient\nProtocol: OpenAI- and Anthropic-compatible (/chat/completions)\nBase URL: https://api.ambient.xyz/v1\nDefault model: ambient/large (a vendor-managed alias; see Models)\nModels in catalog: 4\nStreaming: documented (SSE, \"stream\": true, standard\n chat.completion.chunk objects)\nTool calling: documented via the live roster's supported_features\n (tools) on all 4 models — not yet live-probed end to end\nStructured output: documented via the live roster's supported_features\n (json_mode, structured_outputs) on all 4 models — not yet live-probed\nEmbeddings: not documented\nBilling: no free tier — cheapest plan is Starter at $1/mo\nKey format: none declared","hierarchy":{"lvl0":"Getting Started","lvl1":"Ambient Provider Guide","lvl2":"Key Facts","lvl3":""}},
|
|
5203
|
+
{"objectID":"90065bbe547bc26b48da81d7907107961560a5bda140c44bfe4c39a55e3cc399","title":"1. Get an API key","url":"/docs/getting-started/providers/ambient#1-get-an-api-key","content":"Visit: https://app.ambient.xyz and sign in\nClick \"Get API key\" to create a key\nAmbient has no free tier — the cheapest option is the $1/mo Starter plan (https://ambient.xyz/pricing); confirm current billing terms before use\nSet AMBIENT_API_KEY in your .env file","hierarchy":{"lvl0":"Getting Started","lvl1":"Ambient Provider Guide","lvl2":"1. Get an API key","lvl3":""}},
|
|
5204
|
+
{"objectID":"3972091b9a56970668d3282ce6effc50977a24bca48a3d93676b5a5a61e2057d","title":"3. Use it","url":"/docs/getting-started/providers/ambient#3-use-it","content":"`bash","hierarchy":{"lvl0":"Getting Started","lvl1":"Ambient Provider Guide","lvl2":"3. Use it","lvl3":""}},
|
|
5205
|
+
{"objectID":"891350ff3a2fb0f107eb88c70a3347f7c799ef1f2aae97a5c8daa830c9ec6e04","title":"CLI","url":"/docs/getting-started/providers/ambient#cli","content":"npx @juspay/neurolink generate \"Hello\" --provider ambient\ntypescript\nawait neurolink.generate({\n input: { text: \"Hello\" },\n provider: \"ambient\",\n credentials: { ambient: { apiKey: process.env.AMBIENTAPIKEY } },\n});\n`","hierarchy":{"lvl0":"Getting Started","lvl1":"Ambient Provider Guide","lvl2":"CLI","lvl3":""}},
|
|
5206
|
+
{"objectID":"e88e6d2d0ceb15802f3f2360faab49beb96bf5aacd4347279e9a4729de5bfc98","title":"Models","url":"/docs/getting-started/providers/ambient#models","content":"| Model | Context | Max out | Vision | $/M in · out (cached in) | Notes |\n| ------------------ | ------- | ------- | ------ | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| ambient/large ⭐ | 198K | 198K | no | $0.60 / $2.00 ($0.15) | Recommended — the model id used in every example in Ambient's own docs. A vendor-managed alias that today mirrors z-ai/glm-5.2; its specs \"mirror whatever concrete model it currently points to.\" |\n| z-ai/glm-5.2 | 198K | 198K | no | $0.60 / $2.00 ($0.15) | The concrete model ambient/large currently aliases. Docs call it \"the supported production model.\" Fallback pinned to a stable id. |\n| qwen/qwen3.6-27b | 32K | 8K | yes | $0.32 / $3.20 ($0.16) | Natively multimodal (text + image), 27B dense. Docs mark non-GLM-5.2 entries as possible previews with no guarantees. Used as visionModel. |\n| qwen/qwen3.8-27b | 32K | 8K | yes | $0.32 / $3.20 ($0.16) | Roster description also claims \"video\" input, but the live roster's input_modalities lists only text/image, so no video support is declared here. Preview. |\n\nContext/output/pricing are taken from the unauthenticated\nGET https://api.ambient.xyz/v1/models response (2026-09-28) and cross-checked\nagainst Ambient's own docs models page, which shows the same numbers rounded\n(e.g. \"198K\" for 202,752 tokens).\n\nFallback order when the default is unavailable: z-ai/glm-5.2 →\nqwen/qwen3.6-27b → qwen/qwen3.8-27b.","hierarchy":{"lvl0":"Getting Started","lvl1":"Ambient Provider Guide","lvl2":"Models","lvl3":""}},
|
|
5207
|
+
{"objectID":"8660f273e918c7aeef5544a7ed8fbea2938cc8a01429c743f775bd9365bdd045","title":"Verification status","url":"/docs/getting-started/providers/ambient#verification-status","content":"Tier-2 onboarding requires evidence before a provider is accepted, and\npnpm run verify:provider-onboarding gates it in CI. This is what the\ncatalog records for Ambient — and, just as importantly, what it does not\nyet record:\n\n| Probe | Result |\n| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Roster | unauthenticated GET /v1/models, HTTP 200, 4 models, 2026-09-28 — no API key used |\n| Auth rejection | not probed — would require a POST, which is out of scope credential-free |\n| Live capability sweep | not run (evidence.liveMatrix is null). tools and structuredOutput are set true from the live roster's own supported_features field (present on all 4 models today), not from a live request. s","hierarchy":{"lvl0":"Getting Started","lvl1":"Ambient Provider Guide","lvl2":"Verification status","lvl3":""}},
|
|
5208
|
+
{"objectID":"ee2c5a33f8625b176d21a9556925d5c364970a1d1372b499c13a68a85deb074f","title":"Troubleshooting","url":"/docs/getting-started/providers/ambient#troubleshooting","content":"| Symptom | Cause | Fix |\n| --------------------------------- | ------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------- |\n| Invalid Ambient API key | AMBIENT_API_KEY unset or wrong | Check the key at https://app.ambient.xyz |\n| Model not found (HTTP 400) | Ambient returns 400 \"Unknown model\" for a bad id, not 404 | Pick a current id from the unauthenticated GET /v1/models roster |\n| 429 with \"No workers available\" | Ambient's docs describe this as a capacity/upstream issue, not a true rate limit | Retry with short jittered backoff, or switch to another model from GET /v1/models |\n| Empty/cut-off content | ambient/large and z-ai/glm-5.2 are reasoning models; the docs say max_tokens \"caps reasoning + answer\" | Give reasoning prompts a generous maxTokens budget |","hierarchy":{"lvl0":"Getting Started","lvl1":"Ambient Provider Guide","lvl2":"Troubleshooting","lvl3":""}},
|
|
5209
|
+
{"objectID":"5b2b2dd4db22f7ee06bb649287aacd2aa1a78db9ab6dc33cc4787cacf71aa0ba","title":"See also","url":"/docs/getting-started/providers/ambient#see-also","content":"Provider setup overview\nAll providers\nTier-2 onboarding — how this provider's JSON becomes a working integration\nProvider feature compatibility","hierarchy":{"lvl0":"Getting Started","lvl1":"Ambient Provider Guide","lvl2":"See also","lvl3":""}},
|
|
5179
5210
|
{"objectID":"86f8e007d9d73a04cf748017ce8c5ded77bd4798631cc39221fc245d76cab284","title":"Anthropic Provider Guide","url":"/docs/getting-started/providers/anthropic","content":"Anthropic Provider Guide\n\nDirect access to Claude models with flexible authentication options\n\nOverview\n\nAnthropic provides direct API access to Claude, one of the most capable AI model families available. NeuroLink supports both API key authentication for production deployments and OAuth authentication for Claude Pro/Max subscription users.\n\nIf you have a Claude Pro or Max subscription, you can use OAuth authentication to leverage your subscription quota directly. See OAuth Setup below.\n\nKey Benefits\nClaude Sonnet 4.6: Latest balanced model — fast, capable, and cost-effective\nClaude Opus 4.6: Latest flagship model for advanced reasoning\n1M Context Window: Claude 4.6 models support 1,000,000-token context windows GA (no beta header needed)\nExtended Thinking: Deep reasoning mode on Claude 3.7+ models (Sonnet 4, Opus 4)\nMultimodal: Vision capabilities for image analysis across all models\nTool Use: Function calling for agent workflows\n\nAuthentication Options\n\n| Method | Best For | Billing |\n| ----------- | -------------------------------------- | ------------------ |\n| API Key | Production, server-side apps | Pay-per-token |\n| OAuth | Personal dev with Pro/Max subscription | Subscription quota |\n\nQuick Start\nGet Your API Key\nVisit console.anthropic.com\nSign in or create an account\nNavigate to API Keys section\nClick Create Key\nCopy your new API key (starts with sk-ant-)\nConfigure Environment\n\nAdd to your .env file:\nTest the Setup\n\nSupported Models\n\nAvailable Models (from AnthropicModels enum)\n\n| Enum Key | Model ID | Family | Context | Max Output | Vision | Extended Thinking | Deprecated |\n| ------------------- | ---------------------------- | ------ | ------- | ---------- | ------ | ----------------- | ---------- |\n| CLAUDE_OPUS_5_5 | claude-opus-5-5 | Opus | 1M | 128,000 | Yes | Yes | No |\n| CLAUDE_FABLE_5_1 | claude-fable-5-1 | Fable | 1M | 128,000 | Yes | Yes | No |\n| CLAUDE_OPUS_4_6 | claude-opus-4-6 | Opus | 1M | 128,000 | Yes | Yes | No |\n| CLAUDE_SONNET_4_6 | claude-sonnet-4-6 | Sonnet | 1M | 64,000 | Yes | Yes | No |\n| CLAUDE_OPUS_4_5 | claude-opus-4-5-20251101 | Opus | 200K | 64,000 | Yes | Yes | No |\n| CLAUDE_SONNET_4_5 | claude-sonnet-4-5-20250929 | Sonnet | 200K | 64,000 | Yes | Yes | No |\n| CLAUDE_4_5_HAIKU | claude-haiku-4-5-20251001 | Haiku | 200K | 64,000 | Yes | Yes | No |\n| CLAUDE_OPUS_4_1 | claude-opus-4-1-20250805 | Opus | 200K | 32,000 | Yes | Yes | No |\n| CLAUDE_OPUS_4_0 | claude-opus-4-20250514 | Opus | 200K | 64,000 | Yes | Yes | No |\n| CLAUDE_SONNET_4_0 | claude-sonnet-4-20250514 | Sonnet | 200K | 64,000 | Yes | Yes | No |\n| CLAUDE_SONNET_3_7 | claude-3-7-sonnet-20250219 | Sonnet | 200K | 8,192 | Yes | Yes | Yes |\n| CLAUDE_3_5_SONNET | claude-3-5-sonnet-20241022 | Sonnet | 200K | 8,192 | Yes | No | Yes |\n| CLAUDE_3_5_HAIKU | claude-3-5-haiku-20241022 | Haiku | 200K | 8,192 | No | No | Yes |\n| CLAUDE_3_SONNET | claude-3-sonnet-20240229 | Sonnet | 200K | 4,096 | Yes | No | Yes |\n| CLAUDE_3_OPUS | claude-3-opus-20240229 | Opus | 200K | 4,096 | Yes | No | Yes |\n| CLAUDE_3_HAIKU | claude-3-haiku-20240307 | Haiku | 200K | 4,096 | Yes | No | Yes |\n\nClaude 4.6 models (claude-opus-4-6 and claude-sonnet-4-6) support a 1,000,000-token context window at general availability — no beta header is required.\n\nThe detailed capabilities (context window, max output, vision, etc.) are defined in MODEL_METADATA within src/lib/models/anthropicModels.ts.\n\nDefault Model\n\nThe default model when no model is specified is claude-sonnet-4-6 (set via AnthropicModels.CLAUDE_SONNET_4_6). This can be overridden with the ANTHROPIC_MODEL environment variable.\n\nModel Selection by Use Case\n\nClaude Subscription Tiers\n\nAnthropic offers different access tiers, each with varying rate limits and model access:\n\n| Tier | Access Method | Models Available | Best For |\n| -------------------- | ----------------- | ------------------------------------- | ------------------------------- |\n| Free | claude.ai account | Haiku only (3 Haiku, 3.5 Haiku) | Exploration, personal use |\n| Pro ($20/month) | OAuth + claude.ai | Haiku + Sonnet (3.5 Sonnet, Sonnet 4) | Professional use, higher volume |\n| Max ($100/month) | OAuth + claude.ai | All models (including Opus) |","hierarchy":{"lvl0":"Getting Started","lvl1":"Anthropic Provider Guide","lvl2":"","lvl3":""}},
|
|
5180
5211
|
{"objectID":"2e43e1a8e5dc9666291b83ef0ee1de91ca54e083ff3eab013633185c1d581e12","title":"Anthropic Provider Guide","url":"/docs/getting-started/providers/anthropic#anthropic-provider-guide","content":"Direct access to Claude models with flexible authentication options","hierarchy":{"lvl0":"Getting Started","lvl1":"Anthropic Provider Guide","lvl2":"Anthropic Provider Guide","lvl3":""}},
|
|
5181
5212
|
{"objectID":"1bdbac85341c237a0a9cce9dce247ef148ac0529b6ae546f46634f280fbbebe3","title":"Overview","url":"/docs/getting-started/providers/anthropic#overview","content":"Anthropic provides direct API access to Claude, one of the most capable AI model families available. NeuroLink supports both API key authentication for production deployments and OAuth authentication for Claude Pro/Max subscription users.\n\nIf you have a Claude Pro or Max subscription, you can use OAuth authentication to leverage your subscription quota directly. See OAuth Setup below.","hierarchy":{"lvl0":"Getting Started","lvl1":"Anthropic Provider Guide","lvl2":"Overview","lvl3":""}},
|
|
@@ -5388,6 +5419,16 @@
|
|
|
5388
5419
|
{"objectID":"bb0f5725c56ea7ea4a8f1e5b9352d14d9bf6608f7136fde57297dd15701374fc","title":"1. Get an API Key","url":"/docs/getting-started/providers/beatoven#1-get-an-api-key","content":"https://www.beatoven.ai/dashboard","hierarchy":{"lvl0":"Getting Started","lvl1":"Beatoven.ai Provider Guide (music)","lvl2":"1. Get an API Key","lvl3":""}},
|
|
5389
5420
|
{"objectID":"9f33e8d0b40be59baf54d9c4da940ccb4ce8c565a6e365101901e1a3b9f88edf","title":"Configuration Reference","url":"/docs/getting-started/providers/beatoven#configuration-reference","content":"| Environment Variable | Required | Description |\n| -------------------- | -------- | ----------------- |\n| BEATOVEN_API_KEY | Yes | Beatoven API key |\n| BEATOVEN_BASE_URL | No | Base URL override |","hierarchy":{"lvl0":"Getting Started","lvl1":"Beatoven.ai Provider Guide (music)","lvl2":"Configuration Reference","lvl3":""}},
|
|
5390
5421
|
{"objectID":"a5b72bddd6f7dbfb574cf975bb630c8d8c95f35397d81069b9c3e096240c8d32","title":"See Also","url":"/docs/getting-started/providers/beatoven#see-also","content":"Lyria Provider\nElevenLabs Music Provider","hierarchy":{"lvl0":"Getting Started","lvl1":"Beatoven.ai Provider Guide (music)","lvl2":"See Also","lvl3":""}},
|
|
5422
|
+
{"objectID":"46e04c33510a7ee0fb160ff79fd06db94a258db4908f0f0dda77555b8bcc0ac6","title":"Bee by HEOSSI Provider Guide","url":"/docs/getting-started/providers/bee-heossi","content":"Bee by HEOSSI Provider Guide\n\nBee by HEOSSI is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/bee-heossi.json) rather than hand-written code.\nThat file is the source of truth for everything on this page.\n\nVerification status: this entry is docs- and roster-verified, but not\nyet live-verified. Every fact below comes from Bee's public docs\n(https://bee.heossi.com/docs/sdks, /docs/changelog, /pricing) and an\nunauthenticated GET /bee/models call, re-run on 2026-09-28 — no API key\nwas created or used. No authenticated request (chat completion, tool call,\nstructured-output probe, vision probe) has been made against this vendor.\nCapability flags that need a live account to confirm (tool calling,\nstructured output, combined tools+schema, vision) are therefore\nconservative: unset or false/\"model-dependent\" rather than assumed.\nevidence.liveMatrix is null until someone runs the live capability\nsweep with a real key.\n\nKey Facts\nProvider id: bee-heossi\nProtocol: OpenAI-compatible (/chat/completions)\nBase URL: https://api.bee.heossi.com/bee — note the base path is\n /bee, not /v1\nDefault model: bee-cell (the model used in every SDK/curl example in\n Bee's own docs)\nModels in catalog: 13 (6 named tiers — Cell, Brood, Comb, Buzz, Hive,\n Swarm — plus their immutable pinned snapshot ids)\nStreaming: supported (documented stream: true request field)\nTool calling: model-dependent — Bee's 2026-07-11 changelog states\n \"Tool / function calling and JSON mode (structured output) are live on\n Comb, Buzz and Hive.\" Cell, Brood and Swarm are not named.\nStructured output: not asserted at the provider level (see above) —\n documented as live only on Comb/Buzz/Hive, not on the default model\n (bee-cell)\nThinking: the public OpenAPI contract for /bee/chat/completions\n documents a reasoning_effort request field\n (low | medium | high | xhigh | max | ultracode)\nEmbeddings: not supported — no embeddings endpoint in the public\n OpenAPI contract\nVision: not documented for image input. The changelog documents\n video input as live on Comb/Buzz/Hive, which is a distinct modality\n from the image-vision capability this catalog tracks, so no model here is\n marked vision: true\nBilling: free-tier — Bee Cell / Bee Pollen is \"Free hosted access — no\n card\" (https://bee.heossi.com/pricing)\nKey format: none declared\n\nQuick Start\nGet an API key\nVisit: https://workspace.bee.heossi.com/account/api-keys and sign in (or create a Bee Workspace account)\nCreate an API key — the free Bee Cell / Bee Pollen tier needs no credit card (\"Free hosted access — no card\", https://bee.heossi.com/pricing)\nHigher tiers (Brood/Comb/Buzz/Hive/Swarm) draw from a prepaid wallet billed per token; see https://bee.heossi.com/pricing for current rates\nSet BEE_HEOSSI_API_KEY in your .env file\nConfigure\nUse it\n\nPer-request credentials work as they do for every provider:\n\nModels\n\n| Model | Context | Vision | $/M in · out | Notes |\n| ------------- | ------- | ------ | ---------------- | ---------------------------------------------------------------------------------------------------------------------------- |\n| bee-cell ⭐ | 128K | no | $0.30 / $1.20 | Recommended — free tier, no card; used in every Bee SDK/curl example. Tool calling / JSON mode not documented for this tier. |\n| bee-brood | 256K | no | $0.60 / $2.40 | Second tier; not named among the tool-calling/JSON-mode tiers; fallback. |\n| bee-comb | 256K† | no | $1.25 / $5.00 | Tool calling + JSON-mode structured output documented live (2026-07-11 changelog); fallback. |\n| bee-buzz | 256K† | no | $2.50 / $10.00 | Tool calling + JSON-mode structured output documented live; fallback. |\n| bee-hive | 256K‡ | no | $5.00 / $20.00 | Tool calling + JSON-mode structured output documented live; fallback. |\n| bee-swarm | 1M | no | $25.00 / $150.00 | \"1M natively\" per the changelog; not named among the tool-calling/JSON-mode tiers; fallback. |\n\n† Comb and Buzz also expose a separately routed long-context mode serving up\nto 1,010,000 tokens (2026-07-11 changelog) — a distinct routed path, not the\nvalue shown here. ‡ Hive reaches a 1M-token mode \"via Comb\" per the pricing\npage — routing detail, not modeled as this entry's context window.\n\nEach named tier also has one or two immutable pinned snapshot ids on the live\nroster (e.g. bee-cell-20260710-r1, bee-comb-20260710-r1 and\nbee-comb-20260827-r1 — Comb's current_snapshot). These are in the catalog\nfor completeness but are not separately priced/documented and are not part o","hierarchy":{"lvl0":"Getting Started","lvl1":"Bee by HEOSSI Provider Guide","lvl2":"","lvl3":""}},
|
|
5423
|
+
{"objectID":"d57cb6c8c722dc0dbaa58264ee6c8c4f7f154af98bd8028208f2d5834983a0a9","title":"Bee by HEOSSI Provider Guide","url":"/docs/getting-started/providers/bee-heossi#bee-by-heossi-provider-guide","content":"Bee by HEOSSI is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/bee-heossi.json) rather than hand-written code.\nThat file is the source of truth for everything on this page.\n\nVerification status: this entry is docs- and roster-verified, but not\nyet live-verified. Every fact below comes from Bee's public docs\n(https://bee.heossi.com/docs/sdks, /docs/changelog, /pricing) and an\nunauthenticated GET /bee/models call, re-run on 2026-09-28 — no API key\nwas created or used. No authenticated request (chat completion, tool call,\nstructured-output probe, vision probe) has been made against this vendor.\nCapability flags that need a live account to confirm (tool calling,\nstructured output, combined tools+schema, vision) are therefore\nconservative: unset or false/\"model-dependent\" rather than assumed.\nevidence.liveMatrix is null until someone runs the live capability\nsweep with a real key.","hierarchy":{"lvl0":"Getting Started","lvl1":"Bee by HEOSSI Provider Guide","lvl2":"Bee by HEOSSI Provider Guide","lvl3":""}},
|
|
5424
|
+
{"objectID":"6211e863cf826637628a7d74cecdb389a0cda9a0012ca59a99948568a2d0e9d7","title":"Key Facts","url":"/docs/getting-started/providers/bee-heossi#key-facts","content":"Provider id: bee-heossi\nProtocol: OpenAI-compatible (/chat/completions)\nBase URL: https://api.bee.heossi.com/bee — note the base path is\n /bee, not /v1\nDefault model: bee-cell (the model used in every SDK/curl example in\n Bee's own docs)\nModels in catalog: 13 (6 named tiers — Cell, Brood, Comb, Buzz, Hive,\n Swarm — plus their immutable pinned snapshot ids)\nStreaming: supported (documented stream: true request field)\nTool calling: model-dependent — Bee's 2026-07-11 changelog states\n \"Tool / function calling and JSON mode (structured output) are live on\n Comb, Buzz and Hive.\" Cell, Brood and Swarm are not named.\nStructured output: not asserted at the provider level (see above) —\n documented as live only on Comb/Buzz/Hive, not on the default model\n (bee-cell)\nThinking: the public OpenAPI contract for /bee/chat/completions\n documents a reasoning_effort request field\n (low | medium | high | xhigh | max | ultracode)\nEmbeddings: not supported — no embeddings endpoint in the public\n OpenAPI contract\nVision: not documented for image input. The changelog documents\n video input as live on Comb/Buzz/Hive, which is a distinct modality\n from the image-vision capability this catalog tracks, so no model here is\n marked vision: true\nBilling: free-tier — Bee Cell / Bee Pollen is \"Free hosted access — no\n card\" (https://bee.heossi.com/pricing)\nKey format: none declared","hierarchy":{"lvl0":"Getting Started","lvl1":"Bee by HEOSSI Provider Guide","lvl2":"Key Facts","lvl3":""}},
|
|
5425
|
+
{"objectID":"16204f000b33e1eb78e817e886b8ec41865357f0b05a246717567001a0de1f8e","title":"1. Get an API key","url":"/docs/getting-started/providers/bee-heossi#1-get-an-api-key","content":"Visit: https://workspace.bee.heossi.com/account/api-keys and sign in (or create a Bee Workspace account)\nCreate an API key — the free Bee Cell / Bee Pollen tier needs no credit card (\"Free hosted access — no card\", https://bee.heossi.com/pricing)\nHigher tiers (Brood/Comb/Buzz/Hive/Swarm) draw from a prepaid wallet billed per token; see https://bee.heossi.com/pricing for current rates\nSet BEE_HEOSSI_API_KEY in your .env file","hierarchy":{"lvl0":"Getting Started","lvl1":"Bee by HEOSSI Provider Guide","lvl2":"1. Get an API key","lvl3":""}},
|
|
5426
|
+
{"objectID":"2d382d8965a5831c04a7991934b0998acb33fe0d1921feb0374496ec315681d4","title":"3. Use it","url":"/docs/getting-started/providers/bee-heossi#3-use-it","content":"`bash","hierarchy":{"lvl0":"Getting Started","lvl1":"Bee by HEOSSI Provider Guide","lvl2":"3. Use it","lvl3":""}},
|
|
5427
|
+
{"objectID":"d70b5f1bb9cb9ac7fe534157c078a5de7a4f25fbddf234ad0c0168f86d3326ec","title":"CLI","url":"/docs/getting-started/providers/bee-heossi#cli","content":"npx @juspay/neurolink generate \"Hello\" --provider bee-heossi\ntypescript\nawait neurolink.generate({\n input: { text: \"Hello\" },\n provider: \"bee-heossi\",\n credentials: { beeHeossi: { apiKey: process.env.BEEHEOSSIAPI_KEY } },\n});\n`","hierarchy":{"lvl0":"Getting Started","lvl1":"Bee by HEOSSI Provider Guide","lvl2":"CLI","lvl3":""}},
|
|
5428
|
+
{"objectID":"936da8f768fbc5c001b18089c07ed50409543f20d619a1b26528f5cd01c35d6c","title":"Models","url":"/docs/getting-started/providers/bee-heossi#models","content":"| Model | Context | Vision | $/M in · out | Notes |\n| ------------- | ------- | ------ | ---------------- | ---------------------------------------------------------------------------------------------------------------------------- |\n| bee-cell ⭐ | 128K | no | $0.30 / $1.20 | Recommended — free tier, no card; used in every Bee SDK/curl example. Tool calling / JSON mode not documented for this tier. |\n| bee-brood | 256K | no | $0.60 / $2.40 | Second tier; not named among the tool-calling/JSON-mode tiers; fallback. |\n| bee-comb | 256K† | no | $1.25 / $5.00 | Tool calling + JSON-mode structured output documented live (2026-07-11 changelog); fallback. |\n| bee-buzz | 256K† | no | $2.50 / $10.00 | Tool calling + JSON-mode structured output documented live; fallback. |\n| bee-hive | 256K‡ | no | $5.00 / $20.00 | Tool calling + JSON-mode structured output documented live; fallback. |\n| bee-swarm | 1M | no | $25.00 / $150.00 | \"1M natively\" per the changelog; not named among the tool-calling/JSON-mode tiers; fallback. |\n\n† Comb and Buzz also expose a separately routed long-context mode serving up\nto 1,010,000 tokens (2026-07-11 changelog) — a distinct routed path, not the\nvalue shown here. ‡ Hive reaches a 1M-token mode \"via Comb\" per the pricing\npage — routing detail, not modeled as this entry's context window.\n\nEach named tier also has one or two immutable pinned snapshot ids on the live\nroster (e.g. bee-cell-20260710-r1, bee-comb-20260710-r1 and\nbee-comb-20260827-r1 — Comb's current_snapshot). These are in the catalog\nfor completeness but are not separatel","hierarchy":{"lvl0":"Getting Started","lvl1":"Bee by HEOSSI Provider Guide","lvl2":"Models","lvl3":""}},
|
|
5429
|
+
{"objectID":"ac2c330a03d89fe314b405926dfc3b54711891d2ed749d13436d24b514f0ec59","title":"Verification status","url":"/docs/getting-started/providers/bee-heossi#verification-status","content":"Tier-2 onboarding requires evidence before a provider is accepted, and\npnpm run verify:provider-onboarding gates it in CI. This is what the\ncatalog records for Bee by HEOSSI today — docs- and roster-verified only,\nnot live-verified:\n\n| Probe | Result |\n| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Roster | unauthenticated GET https://api.bee.heossi.com/bee/models, HTTP 200, 13 models, 2026-09-28. The endpoint's own OpenAPI entry declares security: [] (public). |\n| Docs cross-check | Base URL, request/response shapes and reasoning_effort field confirmed against the public OpenAPI 3.1 contract at https://api.bee.heossi.com/openapi.json (retrieved 2026-09-28). Pricing/context per tier confirmed against https://bee.heossi.com/pricing. Tool-calling/JSON-mode/context-mode facts confirmed against https://bee.heossi.com/docs/changelog. |\n| Auth rejection | Not probed — no authenticated or POST request was made (credential-free onboarding). The OpenAPI contract documents a 401 response (\"Missing or invalid API credential\") with no literal error-body text","hierarchy":{"lvl0":"Getting Started","lvl1":"Bee by HEOSSI Provider Guide","lvl2":"Verification status","lvl3":""}},
|
|
5430
|
+
{"objectID":"e9b16c3ebd164557d7f565549295e1636e7273dc26950d6e89db0804d0562362","title":"Troubleshooting","url":"/docs/getting-started/providers/bee-heossi#troubleshooting","content":"| Symptom | Cause | Fix |\n| -------------------------------------------------- | -------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |\n| Invalid Bee API key | BEE_HEOSSI_API_KEY unset or wrong | Check the key at https://workspace.bee.heossi.com/account/api-keys |\n| \"insufficient funded usage credit\" (HTTP 402) | Prepaid wallet is empty (paid tiers only) | Top up at https://bee.heossi.com/pricing |\n| \"model or capability not included\" (HTTP 403) | The requested tier/feature isn't in your plan | Upgrade at https://bee.heossi.com/pricing, or switch to a tier your plan includes |\n| Frequent 429s | Allowance or rate limit reached | Wait and retry; review your plan's usage caps at https://bee.heossi.com/pricing |\n| Tool calls / response_format ignored or rejected | bee-cell (the default) is not among the tiers Bee documents tool calling and JSON mode for | Switch to bee-comb, bee-buzz or bee-hive, which the 2026-07-11 changelog names explicitly |","hierarchy":{"lvl0":"Getting Started","lvl1":"Bee by HEOSSI Provider Guide","lvl2":"Troubleshooting","lvl3":""}},
|
|
5431
|
+
{"objectID":"7d9904a1f2b283fa9c737a4fffbff9aca22048ae27b9a7d8cd992367f3e0d2fb","title":"See also","url":"/docs/getting-started/providers/bee-heossi#see-also","content":"Provider setup overview\nAll providers\nTier-2 onboarding — how this provider's JSON becomes a working integration\nProvider feature compatibility","hierarchy":{"lvl0":"Getting Started","lvl1":"Bee by HEOSSI Provider Guide","lvl2":"See also","lvl3":""}},
|
|
5391
5432
|
{"objectID":"697cf287d3dd79fa2966036c5cd82e65b185366b481b980b8e9a5b1cb086bdb0","title":"Cartesia TTS Provider Guide","url":"/docs/getting-started/providers/cartesia","content":"Cartesia TTS Provider Guide\n\nLow-latency text-to-speech — Cartesia's sonic-2 model over the\nsynchronous /tts/bytes REST endpoint\n\nOverview\n\nCartesia ships two TTS interfaces:\nA WebSocket streaming endpoint used by voice-agent pipelines —\n exposed by NeuroLink's CartesiaStream adapter in\n src/lib/adapters/tts/cartesiaHandler.ts (driven by the voice server).\nA synchronous REST endpoint (POST /tts/bytes) that returns the\n complete audio in a single response — wrapped by NeuroLink's\n CartesiaTTS handler so it slots into the same\n generate({ tts: { provider: \"cartesia\" } }) flow as OpenAI /\n ElevenLabs / Azure / Fish Audio / Google AI TTS.\n\nThis page documents the synchronous handler. For the streaming\nWebSocket path, see the voice-agent docs.\n\nKey Facts\nProtocol: Native REST API (POST /tts/bytes)\nDefault base URL: https://api.cartesia.ai\nDefault API version: 2025-04-16 (sent as Cartesia-Version header)\nDefault model: sonic-2\nDefault voice: 694f9389-aac1-45b6-b726-9d9369183238 (\"Bright Female\", English)\nMax text length: 5000 characters\nOutput formats: mp3 (default, 44.1 kHz), wav (PCM s16le, 44.1 kHz), pcm16 (raw, 24 kHz)\nStreaming: Not via this handler — use CartesiaStream for the WebSocket flow\n\nQuick Start\nGet an API Key\n\nSign up at play.cartesia.ai, open\nManage → API Keys, click Create, give the key a description, and\ncopy the sk_car_… value.\nConfigure Environment\nSynthesize Your First Audio\n\nSDK Usage\n\nBasic Synthesis (Default Voice)\n\nCustom Voice\n\nCopy a voice id from the Voice Library at\nplay.cartesia.ai:\n\nTTS-Augmented LLM Response\n\nWhen useAiResponse: true, NeuroLink first calls the LLM, then\nsynthesizes the LLM output through Cartesia:\n\nWAV / PCM16 Output\n\nLanguage Override\n\nThe handler defaults to English. Pass language via the same options\nbag for other supported languages (see Cartesia docs for the current\nlist):\n\nCLI Usage\n\nConfiguration Reference\n\n| Environment Variable | Required | Default | Description |\n| ---------------------- | -------- | -------------------------------------- | ---------------------------------------------------------- |\n| CARTESIA_API_KEY | Yes | — | Cartesia API key (sk_car_…) |\n| CARTESIA_VOICE_ID | No | 694f9389-aac1-45b6-b726-9d9369183238 | Default voice id used when no voice is passed per-call |\n| CARTESIA_MODEL | No | sonic-2 | Model id sent as model_id |\n| CARTESIA_API_VERSION | No | 2025-04-16 | Value of the Cartesia-Version request header |\n| CARTESIA_BASE_URL | No | https://api.cartesia.ai | Base URL (override for self-hosted / EU regional gateways) |\n\nVoice Models\n\n| Model | Notes |\n| --------- | --------------------------------------------------- |\n| sonic-2 | Default — current best balance of latency + quality |\n| sonic | Legacy general-purpose voice model |\n\nVoices are identified by UUID strings from the Cartesia voice library.\nBrowse and clone voices in your Cartesia dashboard.\n\nFeature Support Matrix\n\n| Feature | Cartesia |\n| ---------------------------------- | ------------------------------------------------ |\n| Text-to-speech | Yes (synchronous) |\n| Voice cloning | Yes (via dashboard upload, then voice id) |\n| Multilingual | Yes (English-first; pass language to override) |\n| MP3 output | Yes (44.1 kHz) |\n| WAV output | Yes (PCM s16le @ 44.1 kHz) |\n| PCM16 output | Yes (24 kHz, raw, no RIFF) |\n| OPUS output | Falls back to MP3 |\n| Synchronous synthesis | Yes (this handler) |\n| WebSocket streaming | Separate — CartesiaStream adapter |\n| getVoices() programmatic listing | Not implemented (use dashboard) |\n\nTroubleshooting\n\nCARTESIA_API_KEY not configured\n\nGet / rotate at play.cartesia.ai.\n\nCartesia synthesis failed: 401\n\nThe API key is invalid or revoked. Regenerate from the dashboard and\nupdate your .env.\n\nCartesia synthesis failed: 429\n\nThrottled — usually because the account has insufficient credits or the\nplan's per-minute limit is exhausted. Top up credits or implement\nclient-side backoff. The handler maps 408 / 429 / 5xx to retriable\nerrors so framework-level retry will honor them.\n\nAudio sounds wrong / wrong voice\n\nThe voice field must be a valid Cartesia voice UUID. If it's missing\nor invalid, the handler falls back to the ","hierarchy":{"lvl0":"Getting Started","lvl1":"Cartesia TTS Provider Guide","lvl2":"","lvl3":""}},
|
|
5392
5433
|
{"objectID":"bd1687c65b3f61357e983fd05e2894fb86699b98c859da0561b7280d3ee7b437","title":"Cartesia TTS Provider Guide","url":"/docs/getting-started/providers/cartesia#cartesia-tts-provider-guide","content":"Low-latency text-to-speech — Cartesia's sonic-2 model over the\nsynchronous /tts/bytes REST endpoint","hierarchy":{"lvl0":"Getting Started","lvl1":"Cartesia TTS Provider Guide","lvl2":"Cartesia TTS Provider Guide","lvl3":""}},
|
|
5393
5434
|
{"objectID":"7a7e062c33471dc864b09d0d8618d6817319c905e2c4a6802368223d5c3ed42b","title":"Overview","url":"/docs/getting-started/providers/cartesia#overview","content":"Cartesia ships two TTS interfaces:\nA WebSocket streaming endpoint used by voice-agent pipelines —\n exposed by NeuroLink's CartesiaStream adapter in\n src/lib/adapters/tts/cartesiaHandler.ts (driven by the voice server).\nA synchronous REST endpoint (POST /tts/bytes) that returns the\n complete audio in a single response — wrapped by NeuroLink's\n CartesiaTTS handler so it slots into the same\n generate({ tts: { provider: \"cartesia\" } }) flow as OpenAI /\n ElevenLabs / Azure / Fish Audio / Google AI TTS.\n\nThis page documents the synchronous handler. For the streaming\nWebSocket path, see the voice-agent docs.","hierarchy":{"lvl0":"Getting Started","lvl1":"Cartesia TTS Provider Guide","lvl2":"Overview","lvl3":""}},
|
|
@@ -5437,6 +5478,27 @@
|
|
|
5437
5478
|
{"objectID":"87ba20ffd62f6d99291ed1b32232cafab1ea70cfc060f5a59ea5e374b16de169","title":"Empty content with small maxTokens on gpt-oss-120b","url":"/docs/getting-started/providers/cerebras#empty-content-with-small-maxtokens-on-gpt-oss-120b","content":"gpt-oss-120b is a reasoning model: it spends its first tokens on a\nreasoning channel before emitting content. With a tight budget\n(e.g. maxTokens: 50) the entire budget goes to reasoning,\nfinish_reason is length, and content is empty. Give reasoning\nprompts a few hundred tokens of headroom.","hierarchy":{"lvl0":"Getting Started","lvl1":"Cerebras Provider Guide","lvl2":"Empty content with small maxTokens on gpt-oss-120b","lvl3":""}},
|
|
5438
5479
|
{"objectID":"12792b087dafedbd6d724cb4cfd2f5365fcea8da18d2d14493ff688b79efda80","title":"404 \"model not found\" for llama/qwen models","url":"/docs/getting-started/providers/cerebras#404-model-not-found-for-llamaqwen-models","content":"Those models are retired, and so is gemma-4-31b. The catalog carries\ngpt-oss-120b only — verify the live roster with an authenticated\nGET https://api.cerebras.ai/v1/models.","hierarchy":{"lvl0":"Getting Started","lvl1":"Cerebras Provider Guide","lvl2":"404 \"model not found\" for llama/qwen models","lvl3":""}},
|
|
5439
5480
|
{"objectID":"c122483695ccba53489f6d1403f7b78fa2f9d48c9a35220e08425516b5521183","title":"See Also","url":"/docs/getting-started/providers/cerebras#see-also","content":"Groq Provider — sibling speed-focused OpenAI-compat provider\nxAI Grok Provider — sibling OpenAI-compat with Grok 3\nTier 2 catalog entry guide — how this provider is wired internally\n\nNeed Help? Open a GitHub Discussion or issue.","hierarchy":{"lvl0":"Getting Started","lvl1":"Cerebras Provider Guide","lvl2":"See Also","lvl3":""}},
|
|
5481
|
+
{"objectID":"23fce3bd9a49c931e827ca107b2e9a56b785e0195bba8b851cc0faba57202684","title":"Charm Hyper Provider Guide","url":"/docs/getting-started/providers/charm-hyper","content":"Charm Hyper Provider Guide\n\nCharm Hyper is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/charm-hyper.json) rather than hand-written code.\nThat file is the source of truth for everything on this page.\n\nVerification status: docs- and roster-verified, not live-verified. This\nentry was onboarded credential-free — everything below comes from Hyper's\nown public documentation and an unauthenticated GET /v1/models call. No\nAPI key was ever created, and no authenticated or POST request was made\nto Hyper — so no chat call, tool call, structured-output call, or error\nresponse was ever actually exercised. Capabilities below reflect what the\ndocs state or omit, not what a live probe proved. Run the\nTier-2 live verification steps\n(roster probe with a real key, billing check, capability probes, live\nmatrix) before relying on this entry in production, and fill in\nevidence.liveMatrix when that happens.\n\nKey Facts\nProvider id: charm-hyper\nProtocol: OpenAI-compatible (/v1/chat/completions). Hyper also\n documents an Anthropic-compatible /v1/messages endpoint, which this entry\n does not use.\nBase URL: https://hyper.charm.land/v1\nDefault model: deepseek-v4-pro — this is not a vendor-declared\n default; Hyper's docs never label any model \"default\" or \"recommended\". It\n is the model value used in the worked example on Hyper's own Chat\n Completions reference page. Hyper's homepage quick-start uses a different\n example model (deepseek-v4-flash) — reconfirm the right default once a\n key is available.\nModels in catalog: 23 (the full public roster as of 2026-09-28)\nStreaming: documented (stream: true, SSE, terminal [DONE])\nTool calling: documented — tools is a listed request parameter\n (\"Tool/function definitions\"), but no worked tool-call example exists in\n the docs and it was never probed live, so toolsWithStreaming is left\n false pending verification.\nStructured output: not documented at all — the terms\n response_format, \"JSON mode\" and \"structured output\" never appear\n anywhere in Hyper's API docs. structuredOutput and\n structuredOutputWithTools are both false in the catalog.\nEmbeddings: not documented / not supported\nBilling: free-tier — $0/month, 100 Hypercredits/month (1 Hypercredit ≈\n $0.05); paid subscription and prepaid bundles also exist\nKey format: keys start with sk-hyper-\n\nQuick Start\nGet an API key\nVisit: https://hyper.charm.land/auth?mode=signup and sign up (Google,\n GitHub, or email)\nCopy an API key from the Hyper Dashboard — it starts with sk-hyper-\nFree plan: $0/month, 100 Hypercredits/month; paid subscription\n ($20/month, 250 Hypercredits/day) and prepaid bundles (never expire) are\n also available\nSet CHARM_HYPER_API_KEY in your .env file\nConfigure\nUse it\n\nPer-request credentials work as they do for every provider:\n\nModels\n\nAll 23 entries come from the public, unauthenticated GET\nhttps://hyper.charm.land/v1/models response (2026-09-28) — context window,\nmax output tokens, vision and pricing are the vendor's own served metadata,\nnot estimates.\n\n| Model | Context | Max out | Vision | $/M in · out (cached in) | Notes |\n| ------------------------ | --------- | ------- | ------ | --------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| deepseek-v4-pro ⭐ | 1M | 384K | no | $2.40 / $4.80 ($0.20) | Default for this entry — Hyper's own Chat Completions reference example. |\n| deepseek-v4.1-flash | 1,048,576 | 32,768 | yes | $0.30 / $1.20 ($0.03) | Newest DeepSeek Flash snapshot; reasoning effort low/high/xhigh. |\n| deepseek-v4-flash | 1M | 384K | no | $0.20 / $0.40 ($0.04) | Homepage quick-start's example model. Hyper's marketing page lists this id under \"attachment support\", but the live roster reports vision: false — a documented inconsistency, not resolved here. |\n| deepseek-v4-pro-0813 | 1M | 262,144 | no | $1.437216 / $4.311648 ($0.047907) | Dated pin of the Pro line. |\n| deepseek-v4-flash-0731 | 1M | 384K | no | $0.44 / $1.32 ($0.044) | Dated pin of the Flash line. ","hierarchy":{"lvl0":"Getting Started","lvl1":"Charm Hyper Provider Guide","lvl2":"","lvl3":""}},
|
|
5482
|
+
{"objectID":"d3aae81e637e5217d4f8060339e76d01d2f5fd4710a1e20516001d1afa4a02be","title":"Charm Hyper Provider Guide","url":"/docs/getting-started/providers/charm-hyper#charm-hyper-provider-guide","content":"Charm Hyper is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/charm-hyper.json) rather than hand-written code.\nThat file is the source of truth for everything on this page.\n\nVerification status: docs- and roster-verified, not live-verified. This\nentry was onboarded credential-free — everything below comes from Hyper's\nown public documentation and an unauthenticated GET /v1/models call. No\nAPI key was ever created, and no authenticated or POST request was made\nto Hyper — so no chat call, tool call, structured-output call, or error\nresponse was ever actually exercised. Capabilities below reflect what the\ndocs state or omit, not what a live probe proved. Run the\nTier-2 live verification steps\n(roster probe with a real key, billing check, capability probes, live\nmatrix) before relying on this entry in production, and fill in\nevidence.liveMatrix when that happens.","hierarchy":{"lvl0":"Getting Started","lvl1":"Charm Hyper Provider Guide","lvl2":"Charm Hyper Provider Guide","lvl3":""}},
|
|
5483
|
+
{"objectID":"0669d2bd0baac5391926cfe9f6baee491ae270a7d35bf6e11cd963c840f0727a","title":"Key Facts","url":"/docs/getting-started/providers/charm-hyper#key-facts","content":"Provider id: charm-hyper\nProtocol: OpenAI-compatible (/v1/chat/completions). Hyper also\n documents an Anthropic-compatible /v1/messages endpoint, which this entry\n does not use.\nBase URL: https://hyper.charm.land/v1\nDefault model: deepseek-v4-pro — this is not a vendor-declared\n default; Hyper's docs never label any model \"default\" or \"recommended\". It\n is the model value used in the worked example on Hyper's own Chat\n Completions reference page. Hyper's homepage quick-start uses a different\n example model (deepseek-v4-flash) — reconfirm the right default once a\n key is available.\nModels in catalog: 23 (the full public roster as of 2026-09-28)\nStreaming: documented (stream: true, SSE, terminal [DONE])\nTool calling: documented — tools is a listed request parameter\n (\"Tool/function definitions\"), but no worked tool-call example exists in\n the docs and it was never probed live, so toolsWithStreaming is left\n false pending verification.\nStructured output: not documented at all — the terms\n response_format, \"JSON mode\" and \"structured output\" never appear\n anywhere in Hyper's API docs. structuredOutput and\n structuredOutputWithTools are both false in the catalog.\nEmbeddings: not documented / not supported\nBilling: free-tier — $0/month, 100 Hypercredits/month (1 Hypercredit ≈\n $0.05); paid subscription and prepaid bundles also exist\nKey format: keys start with sk-hyper-","hierarchy":{"lvl0":"Getting Started","lvl1":"Charm Hyper Provider Guide","lvl2":"Key Facts","lvl3":""}},
|
|
5484
|
+
{"objectID":"510aa5bc0089f7d94fa7ea5b44a48aeb4f4ee41f32be2988d05632f5a64f3f42","title":"1. Get an API key","url":"/docs/getting-started/providers/charm-hyper#1-get-an-api-key","content":"Visit: https://hyper.charm.land/auth?mode=signup and sign up (Google,\n GitHub, or email)\nCopy an API key from the Hyper Dashboard — it starts with sk-hyper-\nFree plan: $0/month, 100 Hypercredits/month; paid subscription\n ($20/month, 250 Hypercredits/day) and prepaid bundles (never expire) are\n also available\nSet CHARM_HYPER_API_KEY in your .env file","hierarchy":{"lvl0":"Getting Started","lvl1":"Charm Hyper Provider Guide","lvl2":"1. Get an API key","lvl3":""}},
|
|
5485
|
+
{"objectID":"d2c4f74bf51efdd34688df3eca500f2f8c4d1bb4169a3058381466dc61982842","title":"3. Use it","url":"/docs/getting-started/providers/charm-hyper#3-use-it","content":"`bash","hierarchy":{"lvl0":"Getting Started","lvl1":"Charm Hyper Provider Guide","lvl2":"3. Use it","lvl3":""}},
|
|
5486
|
+
{"objectID":"86caff74d39f4f3358d855ac059ac496e308e0d76d2b5a2ff3c50ad43b5b6c90","title":"CLI","url":"/docs/getting-started/providers/charm-hyper#cli","content":"npx @juspay/neurolink generate \"Hello\" --provider charm-hyper\ntypescript\nawait neurolink.generate({\n input: { text: \"Hello\" },\n provider: \"charm-hyper\",\n credentials: { \"charm-hyper\": { apiKey: process.env.CHARMHYPERAPI_KEY } },\n});\n`","hierarchy":{"lvl0":"Getting Started","lvl1":"Charm Hyper Provider Guide","lvl2":"CLI","lvl3":""}},
|
|
5487
|
+
{"objectID":"a0302f99aa0bb9839396ece419c976e681649e9eae4939517334dbd917b54060","title":"Models","url":"/docs/getting-started/providers/charm-hyper#models","content":"All 23 entries come from the public, unauthenticated GET\nhttps://hyper.charm.land/v1/models response (2026-09-28) — context window,\nmax output tokens, vision and pricing are the vendor's own served metadata,\nnot estimates.\n\n| Model | Context | Max out | Vision | $/M in · out (cached in) | Notes |\n| ------------------------ | --------- | ------- | ------ | --------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| deepseek-v4-pro ⭐ | 1M | 384K | no | $2.40 / $4.80 ($0.20) | Default for this entry — Hyper's own Chat Completions reference example. |\n| deepseek-v4.1-flash | 1,048,576 | 32,768 | yes | $0.30 / $1.20 ($0.03) | Newest DeepSeek Flash snapshot; reasoning effort low/high/xhigh. |\n| deepseek-v4-flash | 1M | 384K | no | $0.20 / $0.40 ($0.04) | Homepage quick-start's example model. Hyper's marketing page lists this id under \"attachment support\", but the live roster reports vision: false — a documented inconsistency, not resolved here. |\n| deepseek-v4-pro-0813 | 1M | 262,144 | no | $1.437216 / $4.311648 ($0.047907) | Dated pin of the Pro line. |\n| deepseek-v4-flash-073","hierarchy":{"lvl0":"Getting Started","lvl1":"Charm Hyper Provider Guide","lvl2":"Models","lvl3":""}},
|
|
5488
|
+
{"objectID":"a55d9b563648ce5a26352a02c15b7226d15f4afb58eec84ad5df54e81c7aa11b","title":"Verification status","url":"/docs/getting-started/providers/charm-hyper#verification-status","content":"Tier-2 onboarding normally requires a live capability sweep, gated by pnpm\nrun verify:provider-onboarding. This entry was deliberately onboarded\nwithout a key, so that step has not run yet:\n\n| Probe | Result |\n| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Roster | Unauthenticated GET /v1/models, HTTP 200, 2026-09-28 — 23 models, matches Hyper's own docs statement that this endpoint needs no auth (\"Browse the catalog — no auth required\"). |\n| Auth rejection | Not probed — would require a real or deliberately-invalid API key, i.e. a credential, which this onboarding pass never created. |\n| Tool calling | Documented as an accepted parameter (tools, \"Tool/function definitions\") on the Chat Completions reference page; no worked example, no live call. |\n| Structured output | Not documented anywhere in Hyper's API docs — response_format never appears. |\n| Streaming + tools combo | Not documented and not probed — toolsWithStreaming is false pending verification. |\n| Live capability sweep | Not run. evidence.liveMatrix is null. |\n\nTwo documented inconsistencies were found and are flagged rather than\nsilently resolved:\nThe 401 error body shown on Hyper's A","hierarchy":{"lvl0":"Getting Started","lvl1":"Charm Hyper Provider Guide","lvl2":"Verification status","lvl3":""}},
|
|
5489
|
+
{"objectID":"356875ccab592037d9c5374d90855baafc5b4c8e5cc98acadcc5653f42b25bd4","title":"Troubleshooting","url":"/docs/getting-started/providers/charm-hyper#troubleshooting","content":"| Symptom | Cause | Fix |\n| -------------------------------------- | ---------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |\n| Invalid Charm Hyper API key | CHARM_HYPER_API_KEY unset, wrong, or missing the sk-hyper- prefix | Check the key in the Hyper Dashboard at https://hyper.charm.land |\n| Model not found | The roster changed since 2026-09-28 | Pick a current id from the unauthenticated GET /v1/models roster |\n| Structured output silently unavailable | structuredOutput is false — Hyper's docs never mention response_format | Use generate() without schema, or verify support live before relying on it |\n| Unsure if tool calls stream correctly | toolsWithStreaming is false — never documented or probed | Test with stream: false first, or run the live matrix before depending on streamed tool calls |","hierarchy":{"lvl0":"Getting Started","lvl1":"Charm Hyper Provider Guide","lvl2":"Troubleshooting","lvl3":""}},
|
|
5490
|
+
{"objectID":"0eaef58ca3910c8f3b38b4c9615a51d7771d87c84ac285d4109621ca23c43144","title":"See also","url":"/docs/getting-started/providers/charm-hyper#see-also","content":"Provider setup overview\nAll providers\nTier-2 onboarding — how this provider's JSON becomes a working integration, and what live verification still needs to happen\nProvider feature compatibility","hierarchy":{"lvl0":"Getting Started","lvl1":"Charm Hyper Provider Guide","lvl2":"See also","lvl3":""}},
|
|
5491
|
+
{"objectID":"30619562f23b4c3302810256e5c8f0268d8c175572021fa464828f4302bbbd26","title":"Chutes Provider Guide","url":"/docs/getting-started/providers/chutes","content":"Chutes Provider Guide\n\nChutes is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/chutes.json) rather than hand-written code. That\nfile is the source of truth for everything on this page.\n\nVerification status: docs- and roster-verified, not yet live-verified.\nThis entry was onboarded credential-free — every fact below comes from an\nunauthenticated GET /v1/models call and Chutes' own public docs/pricing\npages, never from a request made with an API key. No POST request of any\nkind was sent to Chutes. That means capability flags (tools, structured\noutput, vision), error-message shapes and the billing policy are the\nvendor's own documentation, not a NeuroLink live probe — see\nVerification status below, and re-run the\nlive-verification steps in\nTier-2 onboarding\nwith a real key before relying on this provider for anything that needs\nproven behavior (e.g. structuredOutputWithTools, which is left false\nhere specifically because no combined tools+schema probe was possible).\n\nKey Facts\nProvider id: chutes\nProtocol: OpenAI-compatible (/chat/completions) — confirmed via\n Chutes' own homepage Python code sample, which posts to\n https://llm.chutes.ai/v1/chat/completions with model, messages, an\n Authorization: Bearer $CHUTES_API_KEY header, and stream: true.\nBase URL: https://llm.chutes.ai/v1\nDefault model: moonshotai/Kimi-K2.6-TEE\nModels in catalog: 14 — all TEE (confidential-compute) entries from the\n public roster at the time of writing\nStreaming: documented (Guides → Streaming, Examples → Streaming\n Responses; the homepage sample itself streams)\nTool calling: documented, model-dependent — most catalog entries list\n tools in their supported_features, but two roster ids\n (unsloth/Mistral-Nemo-Instruct-2407-TEE,\n Nemotron-3-Nano-Omni-30B-TEE) report no feature list at all, so\n capabilities.tools is \"model-dependent\" rather than a flat true\nStructured output: documented — response_format: {\"type\":\n\"json_object\"} is shown in Chutes' function-calling guide as a JSON-mode\n alternative to tool calls; most catalog entries also list json_mode /\n structured_outputs in supported_features\nStructured output + tools together: not documented as combined and not\n probed (no key was used) — structuredOutputWithTools is false\nEmbeddings: not confirmed on the standard /v1/embeddings path in the\n public docs (there's an \"Embeddings\" example and a TEI template, but no\n documented general-purpose endpoint) — left false\nVision: model-dependent — 6 of 14 roster ids declare image (two also\n video) in input_modalities; see the Models table\nBilling: no-free-tier (recorded conservatively — see\n Billing below)\nKey format: keys are issued with a cpk_ prefix (Authorization:\nBearer cpk_...); X-API-Key is documented as not a supported auth scheme\n\nQuick Start\nGet an API key\nVisit: https://chutes.ai/signup and create an account (pick a username;\n sign up with Google, GitHub, or optionally link a Bittensor wallet — no\n card is asked for on this page)\nManage billing and create API keys at https://api.chutes.ai\n (account/billing/API-key management is a separate host from the\n inference API)\nReview current token pricing at https://chutes.ai/pricing before making\n requests — pay-as-you-go per token (USD per 1M tokens) plus optional paid\n Plus/Pro plans; no free trial credits are documented, so budget for a\n funded account from the first call\nSet CHUTES_API_KEY in your .env file — keys are issued with a cpk_\n prefix and must be sent as Authorization: Bearer CHUTES_API_KEY\nConfigure\nUse it\n\nPer-request credentials work as they do for every provider:\n\nModels\n\nAll context/output figures and pricing below are read directly from the\nvendor's own unauthenticated GET https://llm.chutes.ai/v1/models response\n(re-run 2026-09-28, HTTP 200, 14 models) — never invented. Where a field was\nabsent from that response (two entries below), it is left blank rather than\nguessed.\n\n| Model | Context | Max output | Vision | $/M in · out (cached in) | Notes |\n| ---------------------------------------- | --------- | ---------- | ------------------ | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| moonshotai/Kimi-K2.6-TEE ⭐ | 262,144 | 65,535 | yes (image, video) | $0.50 / $2.85 ($0.05) | Default — the model in Chutes' own homepage chat/completions code sample. json_mode, structured_outputs, tools, reasoning documented. |\n| moon","hierarchy":{"lvl0":"Getting Started","lvl1":"Chutes Provider Guide","lvl2":"","lvl3":""}},
|
|
5492
|
+
{"objectID":"b5ed1bcfb67a29c1451a30c1e05a10988946390b480801dac5efa88d6ba10365","title":"Chutes Provider Guide","url":"/docs/getting-started/providers/chutes#chutes-provider-guide","content":"Chutes is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/chutes.json) rather than hand-written code. That\nfile is the source of truth for everything on this page.\n\nVerification status: docs- and roster-verified, not yet live-verified.\nThis entry was onboarded credential-free — every fact below comes from an\nunauthenticated GET /v1/models call and Chutes' own public docs/pricing\npages, never from a request made with an API key. No POST request of any\nkind was sent to Chutes. That means capability flags (tools, structured\noutput, vision), error-message shapes and the billing policy are the\nvendor's own documentation, not a NeuroLink live probe — see\nVerification status below, and re-run the\nlive-verification steps in\nTier-2 onboarding\nwith a real key before relying on this provider for anything that needs\nproven behavior (e.g. structuredOutputWithTools, which is left false\nhere specifically because no combined tools+schema probe was possible).","hierarchy":{"lvl0":"Getting Started","lvl1":"Chutes Provider Guide","lvl2":"Chutes Provider Guide","lvl3":""}},
|
|
5493
|
+
{"objectID":"20ba4e49642acd417d79ee7fa9b3710d2d8f5f16848f447e36969209e5e56289","title":"Key Facts","url":"/docs/getting-started/providers/chutes#key-facts","content":"Provider id: chutes\nProtocol: OpenAI-compatible (/chat/completions) — confirmed via\n Chutes' own homepage Python code sample, which posts to\n https://llm.chutes.ai/v1/chat/completions with model, messages, an\n Authorization: Bearer $CHUTES_API_KEY header, and stream: true.\nBase URL: https://llm.chutes.ai/v1\nDefault model: moonshotai/Kimi-K2.6-TEE\nModels in catalog: 14 — all TEE (confidential-compute) entries from the\n public roster at the time of writing\nStreaming: documented (Guides → Streaming, Examples → Streaming\n Responses; the homepage sample itself streams)\nTool calling: documented, model-dependent — most catalog entries list\n tools in their supported_features, but two roster ids\n (unsloth/Mistral-Nemo-Instruct-2407-TEE,\n Nemotron-3-Nano-Omni-30B-TEE) report no feature list at all, so\n capabilities.tools is \"model-dependent\" rather than a flat true\nStructured output: documented — response_format: {\"type\":\n\"json_object\"} is shown in Chutes' function-calling guide as a JSON-mode\n alternative to tool calls; most catalog entries also list json_mode /\n structured_outputs in supported_features\nStructured output + tools together: not documented as combined and not\n probed (no key was used) — structuredOutputWithTools is false\nEmbeddings: not confirmed on the standard /v1/embeddings path in the\n public docs (there's an \"Embeddings\" example and a TEI template, but no\n documented general-purpose endpoint) — left false\nVision: model-dependent — 6 of 14 roster ids declare image (two also\n video) in input_modalities; see the Models table\nBilling: no-free-tier (recorded conservatively — see\n Billing below)\nKey format: keys are issued with a cpk_ prefix (Authorization:\nBearer cpk_...); X-API-Key is documented as not a supported auth scheme","hierarchy":{"lvl0":"Getting Started","lvl1":"Chutes Provider Guide","lvl2":"Key Facts","lvl3":""}},
|
|
5494
|
+
{"objectID":"80f2cd88597cc4b8c5d22b6152782316c2b7bba71f6fd7a84c448aa1a4db6845","title":"1. Get an API key","url":"/docs/getting-started/providers/chutes#1-get-an-api-key","content":"Visit: https://chutes.ai/signup and create an account (pick a username;\n sign up with Google, GitHub, or optionally link a Bittensor wallet — no\n card is asked for on this page)\nManage billing and create API keys at https://api.chutes.ai\n (account/billing/API-key management is a separate host from the\n inference API)\nReview current token pricing at https://chutes.ai/pricing before making\n requests — pay-as-you-go per token (USD per 1M tokens) plus optional paid\n Plus/Pro plans; no free trial credits are documented, so budget for a\n funded account from the first call\nSet CHUTES_API_KEY in your .env file — keys are issued with a cpk_\n prefix and must be sent as Authorization: Bearer CHUTES_API_KEY","hierarchy":{"lvl0":"Getting Started","lvl1":"Chutes Provider Guide","lvl2":"1. Get an API key","lvl3":""}},
|
|
5495
|
+
{"objectID":"f908b94163657f8624e724ee23f451f08e438cf9848d0c6ca61230ef33d4f585","title":"3. Use it","url":"/docs/getting-started/providers/chutes#3-use-it","content":"`bash","hierarchy":{"lvl0":"Getting Started","lvl1":"Chutes Provider Guide","lvl2":"3. Use it","lvl3":""}},
|
|
5496
|
+
{"objectID":"3dadc40a7b3b5f524b32fb86dba134c868b6824bf75f681ded11df39e0d1f5b4","title":"CLI","url":"/docs/getting-started/providers/chutes#cli","content":"npx @juspay/neurolink generate \"Hello\" --provider chutes\ntypescript\nawait neurolink.generate({\n input: { text: \"Hello\" },\n provider: \"chutes\",\n credentials: { chutes: { apiKey: process.env.CHUTESAPIKEY } },\n});\n`","hierarchy":{"lvl0":"Getting Started","lvl1":"Chutes Provider Guide","lvl2":"CLI","lvl3":""}},
|
|
5497
|
+
{"objectID":"39fed55307da7842e283a35aa9dc22589e2b4097404cacf5cd29fc52a4299cb3","title":"Models","url":"/docs/getting-started/providers/chutes#models","content":"All context/output figures and pricing below are read directly from the\nvendor's own unauthenticated GET https://llm.chutes.ai/v1/models response\n(re-run 2026-09-28, HTTP 200, 14 models) — never invented. Where a field was\nabsent from that response (two entries below), it is left blank rather than\nguessed.\n\n| Model | Context | Max output | Vision | $/M in · out (cached in) | Notes |\n| ---------------------------------------- | --------- | ---------- | ------------------ | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| moonshotai/Kimi-K2.6-TEE ⭐ | 262,144 | 65,535 | yes (image, video) | $0.50 / $2.85 ($0.05) | Default — the model in Chutes' own homepage chat/completions code sample. json_mode, structured_outputs, tools, reasoning documented. |\n| moonshotai/Kimi-K3-TEE | 1,048,576 | 65,535 | yes (image, video) | $3.00 / $15.00 ($0.30) | Largest context window in the roster; same documented feature set as the default; fallback. |\n| deepseek-ai/DeepSeek-V4-Flash-0731-TEE | 1,048,576 | 131,072 | no | $0.44 / $1.32 ($0.044) | Largest documented max output in the roster; text-only; fallback. |\n| zai-org/GLM-5.2-TEE | 1,048,576 ","hierarchy":{"lvl0":"Getting Started","lvl1":"Chutes Provider Guide","lvl2":"Models","lvl3":""}},
|
|
5498
|
+
{"objectID":"682d91565c3e7583e71aa72ff161055be478e9de8af766b25b851d9bb9b02b05","title":"Billing","url":"/docs/getting-started/providers/chutes#billing","content":"Chutes' pricing page shows pay-as-you-go token\npricing (\"No subscription, no minimum, no markup\") plus two optional paid\nplans (Plus at $10/mo, Pro at $20/mo, each bundling a daily quota and a\ndiscount off PAYG rates), an Enterprise tier, and a per-second-billed\n\"Private Chutes\" dedicated-GPU option. A Bittensor-wallet TAO payment option\nis also offered alongside standard payment. The page's own FAQ asks \"Is\nthere a free trial?\", but that answer was collapsed in every fetch of the\npage during this onboarding and could not be confirmed either way — nor does\nany other public page state that new accounts receive free credits. Signup\nitself (https://chutes.ai/signup) does not ask for a card, but that is not\nthe same as confirming free usage. Given the absence of documented free\ncredits, billingPolicy is recorded conservatively as no-free-tier. Treat\nthis as unconfirmed rather than a claim that no free tier exists — verify\ndirectly in the Chutes console before onboarding a team on the assumption of\neither outcome.","hierarchy":{"lvl0":"Getting Started","lvl1":"Chutes Provider Guide","lvl2":"Billing","lvl3":""}},
|
|
5499
|
+
{"objectID":"5862cb134695d7821bb2656e8d0c7c1ffee1ff3f295c36858f60fa939ba2facd","title":"Verification status","url":"/docs/getting-started/providers/chutes#verification-status","content":"Tier-2 onboarding normally requires a live-key capability sweep\n(docs/provider-integration/tiers/tier-2-catalog-entry.md,\n\"Live verification\"), gated by pnpm run verify:provider-onboarding. This\nentry was added under a credential-free onboarding pass instead: no\nChutes API key was ever created or used, and no authenticated or POST\nrequest was sent to any Chutes endpoint. Everything below is either a public\ndocument or a single unauthenticated GET.\n\n| Probe | Result |\n| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| Roster | Unauthenticated GET https://llm.chutes.ai/v1/models, HTTP 200, 14 models, re-run 2026-09-28. /v1/models is itself documented by Chutes as a \"public catalog (no key required).\" |\n| Wire shape | Chutes' own homepage Python sample posts to https://llm.chutes.ai/v1/chat/completions with model + messages + Authorization: Bearer $CHUTES_API_KEY + stream: true — never executed here, only read. |\n| Tools / structured output | Confirmed from docs only: the \"Function Calling, Agents, and Tool Use\" guide shows OpenAI-shaped tools/tool_choice/tool_call_id, and the same guide shows a separate response_format: {\"type\": \"json_object\"} JSON-mode example. No request combining both was found or attempt","hierarchy":{"lvl0":"Getting Started","lvl1":"Chutes Provider Guide","lvl2":"Verification status","lvl3":""}},
|
|
5500
|
+
{"objectID":"34c0be7e44128ded319ab20090fe5bfecd98725996a4350660f6dad0932a5601","title":"Troubleshooting","url":"/docs/getting-started/providers/chutes#troubleshooting","content":"| Symptom | Cause | Fix |\n| ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Requests hit an anonymous rate limit (HTTP 429) | No token, or an invalid token, was sent | Set CHUTES_API_KEY, and send it as Authorization: Bearer <key> — X-API-Key is documented as unsupported for inference calls |\n| Model not found | The roster changed since 2026-09-28 | Pick a current id from the unauthenticated GET /v1/models roster |\n| Structured output silently dropped when tools are used | structuredOutputWithTools is false — no combined probe was possible | This is intentional pending a live-key check, not a bug; NeuroLink's runtime conflict retry drops structured output and retries rather than losing the turn |\n| Unsure whether a specific model supports tools / JSON mode | capabilities.tools is \"model-dependent\" — two roster ids ship no supported_features at all | Check the model's entry in GET /v1/models, or consult the Models table above |","hierarchy":{"lvl0":"Getting Started","lvl1":"Chutes Provider Guide","lvl2":"Troubleshooting","lvl3":""}},
|
|
5501
|
+
{"objectID":"f743dd0fbfd3517546cecc2240a8513ad5a47938ceae45eec2ad4fe45aa06d9f","title":"See also","url":"/docs/getting-started/providers/chutes#see-also","content":"Provider setup overview\nAll providers\nTier-2 onboarding — how this provider's JSON becomes a working integration, and what live verification still needs to happen\nProvider feature compatibility","hierarchy":{"lvl0":"Getting Started","lvl1":"Chutes Provider Guide","lvl2":"See also","lvl3":""}},
|
|
5440
5502
|
{"objectID":"3803b4ecde578f946b8a4fe5139e3ee640d53281541c50578e8a5d47847d5157","title":"Cloudflare Workers AI Provider Guide","url":"/docs/getting-started/providers/cloudflare","content":"Cloudflare Workers AI Provider Guide\n\nOpen-model inference at the edge via Cloudflare Workers AI\n\nOverview\n\nCloudflare Workers AI\nserves Meta Llama, Mistral, and other open models from Cloudflare's\nglobal GPU cluster. NeuroLink talks to the OpenAI-compatible endpoint.\n\nKey Facts\nProtocol: OpenAI-compatible (/v1/chat/completions)\nDefault base URL: https://api.cloudflare.com/client/v4/accounts/{accountId}/ai/v1\nDefault model: @cf/meta/llama-3.3-70b-instruct-fp8-fast\nStreaming: Yes\nTool calling: Limited (model-dependent)\n\nQuick Start\nGet Credentials\n\nYou need both:\nA Cloudflare Account ID (Cloudflare dashboard → right sidebar)\nA Workers AI API token with the Workers AI Read & Write\n permission (Profile → API Tokens → Create Token)\nConfigure\nGenerate\n\nSupported Models (sample)\n\n| Model ID | Notes |\n| ------------------------------------------ | -------------- |\n| @cf/meta/llama-3.3-70b-instruct-fp8-fast | Default |\n| @cf/meta/llama-3.1-70b-instruct | Llama 3.1 70B |\n| @cf/meta/llama-3.1-8b-instruct | Fast tier |\n| @cf/meta/llama-3.2-11b-vision-instruct | Vision-capable |\n\nBrowse: https://developers.cloudflare.com/workers-ai/models\n\nCLI Usage\n\nProvider Aliases\n\n| Alias | Example |\n| ------------ | ----------------------- |\n| cloudflare | --provider cloudflare |\n| cf | --provider cf |\n\nConfiguration Reference\n\n| Environment Variable | Required | Default |\n| ----------------------- | -------- | ------------------------------------------ |\n| CLOUDFLARE_ACCOUNT_ID | Yes | — |\n| CLOUDFLARE_API_KEY | Yes | — |\n| CLOUDFLARE_MODEL | No | @cf/meta/llama-3.3-70b-instruct-fp8-fast |\n\nSee Also\nTogether AI Provider\nFireworks Provider","hierarchy":{"lvl0":"Getting Started","lvl1":"Cloudflare Workers AI Provider Guide","lvl2":"","lvl3":""}},
|
|
5441
5503
|
{"objectID":"aafa1a6f2adf2bacc5661cf9ccb309d1e32e300645f037c35a98217b31eb15df","title":"Cloudflare Workers AI Provider Guide","url":"/docs/getting-started/providers/cloudflare#cloudflare-workers-ai-provider-guide","content":"Open-model inference at the edge via Cloudflare Workers AI","hierarchy":{"lvl0":"Getting Started","lvl1":"Cloudflare Workers AI Provider Guide","lvl2":"Cloudflare Workers AI Provider Guide","lvl3":""}},
|
|
5442
5504
|
{"objectID":"25503e78c2d92fb7cee70f0a5e3045de4dbad7279ef1b5cb1a6c834a89c4d006","title":"Overview","url":"/docs/getting-started/providers/cloudflare#overview","content":"Cloudflare Workers AI\nserves Meta Llama, Mistral, and other open models from Cloudflare's\nglobal GPU cluster. NeuroLink talks to the OpenAI-compatible endpoint.","hierarchy":{"lvl0":"Getting Started","lvl1":"Cloudflare Workers AI Provider Guide","lvl2":"Overview","lvl3":""}},
|
|
@@ -5496,6 +5558,16 @@
|
|
|
5496
5558
|
{"objectID":"a0720e2017f4d4189cdb29848c4023c40b9e66f58fca8fd88d41ce87a1ab783f","title":"Streaming WebSocket disconnects","url":"/docs/getting-started/providers/deepgram#streaming-websocket-disconnects","content":"Check that DEEPGRAM_API_KEY is valid and that your network allows outbound WebSocket connections to wss://api.deepgram.com. Firewall or proxy configurations may block WebSocket upgrades.","hierarchy":{"lvl0":"Getting Started","lvl1":"Deepgram Provider Guide","lvl2":"Streaming WebSocket disconnects","lvl3":""}},
|
|
5497
5559
|
{"objectID":"27de57f1a55130cc5f2cf7e470801eff52bf6a056c6e29e62498f7a441b22a3a","title":"Diarization not appearing in results","url":"/docs/getting-started/providers/deepgram#diarization-not-appearing-in-results","content":"Diarization requires multi-speaker audio with clearly separated voices. Single-speaker audio will return no speaker labels. Also confirm speakerDiarization: true is set, and that you are using a model that supports it (Nova-2 and above).","hierarchy":{"lvl0":"Getting Started","lvl1":"Deepgram Provider Guide","lvl2":"Diarization not appearing in results","lvl3":""}},
|
|
5498
5560
|
{"objectID":"b7d80419b846034a24796f9bc7f22b7458c21238354ae728c236e8c0573e5dd2","title":"See Also","url":"/docs/getting-started/providers/deepgram#see-also","content":"Audio Input (STT) Guide — complete multi-provider STT reference\nVoice Agent Guide — building full voice assistants\nOpenAI TTS Provider Guide — text-to-speech counterpart\nElevenLabs Provider Guide — alternative TTS with voice cloning\n\nNeed Help? Join the GitHub Discussions or open an issue.","hierarchy":{"lvl0":"Getting Started","lvl1":"Deepgram Provider Guide","lvl2":"See Also","lvl3":""}},
|
|
5561
|
+
{"objectID":"e9fbf3a1df1a368f43472a0a2eae95fa2f25f9bffec044d57956df04cd44a7ef","title":"DeepInfra Provider Guide","url":"/docs/getting-started/providers/deepinfra","content":"DeepInfra Provider Guide\n\nDeepInfra is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/deepinfra.json) rather than hand-written code.\nThat file is the source of truth for everything on this page.\n\nVerification status: this entry is docs- and roster-verified, not yet\nlive-verified. Every field below comes from DeepInfra's own public\ndocumentation and an unauthenticated GET /v1/openai/models call — no API\nkey was created or used to build it. evidence.liveMatrix is null until\nsomeone runs the live capability matrix with a real key (see\nVerification status below).\n\nKey Facts\nProvider id: deepinfra\nProtocol: OpenAI-compatible (/chat/completions)\nBase URL: https://api.deepinfra.com/v1/openai\nDefault model: deepseek-ai/DeepSeek-V4-Flash-0731\nModels in catalog: 8 (curated from a 187-model live roster)\nStreaming: supported — documented as working \"for all supported\n models\" (docs.deepinfra.com/chat/streaming)\nTool calling: model-dependent — DeepInfra documents an\n OpenAI-compatible tool-calling API, but the docs name only a couple of\n example models and never claim every model supports it\nStructured output: supported — both json_object and json_schema\n response formats are documented (docs.deepinfra.com/chat/structured-outputs)\nStructured output + tools together: not declared (false) — no\n combined probe was run without credentials\nEmbeddings: not declared on this catalog entry. DeepInfra does document\n an OpenAI-compatible /v1/openai/embeddings route, but NeuroLink's generic\n ConfiguredOpenAICompatProvider (which every Tier-2 catalog entry uses)\n does not implement embed()/embedMany() for any provider, so this flag\n tracks that, not the vendor's own API surface\nBilling: no-free-tier — DeepInfra's pricing page states a card or\n pre-payment is required before any request succeeds\nKey format: none declared by DeepInfra\n\nQuick Start\nGet an API key\nVisit: https://deepinfra.com/dash/api_keys and sign in (Google, GitHub, email & password, or Corporate SSO — see https://docs.deepinfra.com/account/signing-in)\nCreate an API key and copy it when it is shown\nNo free tier: DeepInfra requires a card or pre-payment before any request succeeds (https://deepinfra.com/pricing)\nSet DEEPINFRA_API_KEY in your .env file\nConfigure\nUse it\n\nPer-request credentials work as they do for every provider:\n\nModels\n\n| Model | Context | Vision | $/M in · out | Notes |\n| ------------------------------------------- | ------- | ------ | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------- |\n| deepseek-ai/DeepSeek-V4-Flash-0731 ⭐ | 1M | no | $0.06 / $0.18 (cached $0.015) | Recommended — the exact model used in DeepInfra's own tool-calling docs example and named as reasoning_effort-capable in its reasoning docs. |\n| deepseek-ai/DeepSeek-V4-Pro-0813 | 1M | no | $1.30 / $2.60 (cached $0.10) | Larger DeepSeek variant; roster-listed only; fallback. |\n| openai/gpt-oss-120b | 131K | no | $0.037 / $0.17 | OpenAI's open-weight 120B model; reasoning-tagged on the live roster; fallback. |\n| moonshotai/Kimi-K3 | 1M | yes | $2.85 / $14.25 (cached $0.285) | Named in DeepInfra's tool-calling docs as \"the current Kimi model in our catalog\"; roster-tagged vision; fallback. |\n| zai-org/GLM-5.2 | 1M | no | $0.75 / $2.40 (cached $0.14) | Named in DeepInfra's reasoning docs as reasoning_effort-capable; fallback. |\n| anthropic/claude-haiku-4-5 | 200K | yes | $1.00 / $5.00 | Claude Haiku 4.5 served through DeepInfra's marketplace; roster-tagged vision + reasoning_effort; fallback. |\n| Qwen/Qwen3-14B | 41K | no | $0.12 / $0.24 | Smaller Qwen reasoning-tagged model; roster-listed only; fallback. |\n| meta-llama/Llama-4-Scout-17B-16E-Instruct | 328K | yes | $0.10 / $0.30 | Roster-tagged vision; fallback; models.visionModel. |\n\nContext and pricing are taken from an unauthenticated\nGET https://api.deepinfra.com/v1/openai/models call made 2026-09-28 (187\nmodels total; 8 curated into this ","hierarchy":{"lvl0":"Getting Started","lvl1":"DeepInfra Provider Guide","lvl2":"","lvl3":""}},
|
|
5562
|
+
{"objectID":"6ef9315dcede713d7d9073eac8b3336883cab4c247ad1732007f0c014f038608","title":"DeepInfra Provider Guide","url":"/docs/getting-started/providers/deepinfra#deepinfra-provider-guide","content":"DeepInfra is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/deepinfra.json) rather than hand-written code.\nThat file is the source of truth for everything on this page.\n\nVerification status: this entry is docs- and roster-verified, not yet\nlive-verified. Every field below comes from DeepInfra's own public\ndocumentation and an unauthenticated GET /v1/openai/models call — no API\nkey was created or used to build it. evidence.liveMatrix is null until\nsomeone runs the live capability matrix with a real key (see\nVerification status below).","hierarchy":{"lvl0":"Getting Started","lvl1":"DeepInfra Provider Guide","lvl2":"DeepInfra Provider Guide","lvl3":""}},
|
|
5563
|
+
{"objectID":"87ffe135b119c50a014b0c4e2439129ce00a06d1015f03a19ab972bf0ed22604","title":"Key Facts","url":"/docs/getting-started/providers/deepinfra#key-facts","content":"Provider id: deepinfra\nProtocol: OpenAI-compatible (/chat/completions)\nBase URL: https://api.deepinfra.com/v1/openai\nDefault model: deepseek-ai/DeepSeek-V4-Flash-0731\nModels in catalog: 8 (curated from a 187-model live roster)\nStreaming: supported — documented as working \"for all supported\n models\" (docs.deepinfra.com/chat/streaming)\nTool calling: model-dependent — DeepInfra documents an\n OpenAI-compatible tool-calling API, but the docs name only a couple of\n example models and never claim every model supports it\nStructured output: supported — both json_object and json_schema\n response formats are documented (docs.deepinfra.com/chat/structured-outputs)\nStructured output + tools together: not declared (false) — no\n combined probe was run without credentials\nEmbeddings: not declared on this catalog entry. DeepInfra does document\n an OpenAI-compatible /v1/openai/embeddings route, but NeuroLink's generic\n ConfiguredOpenAICompatProvider (which every Tier-2 catalog entry uses)\n does not implement embed()/embedMany() for any provider, so this flag\n tracks that, not the vendor's own API surface\nBilling: no-free-tier — DeepInfra's pricing page states a card or\n pre-payment is required before any request succeeds\nKey format: none declared by DeepInfra","hierarchy":{"lvl0":"Getting Started","lvl1":"DeepInfra Provider Guide","lvl2":"Key Facts","lvl3":""}},
|
|
5564
|
+
{"objectID":"a478547708a4dee922eac6bd5e0d78e9db78b274bbc445dc57445cde66565a27","title":"1. Get an API key","url":"/docs/getting-started/providers/deepinfra#1-get-an-api-key","content":"Visit: https://deepinfra.com/dash/api_keys and sign in (Google, GitHub, email & password, or Corporate SSO — see https://docs.deepinfra.com/account/signing-in)\nCreate an API key and copy it when it is shown\nNo free tier: DeepInfra requires a card or pre-payment before any request succeeds (https://deepinfra.com/pricing)\nSet DEEPINFRA_API_KEY in your .env file","hierarchy":{"lvl0":"Getting Started","lvl1":"DeepInfra Provider Guide","lvl2":"1. Get an API key","lvl3":""}},
|
|
5565
|
+
{"objectID":"fa33f6b645555c5f625dd82b6a03548c8f6361ce27ff2ca6d56bb80deb18272c","title":"3. Use it","url":"/docs/getting-started/providers/deepinfra#3-use-it","content":"`bash","hierarchy":{"lvl0":"Getting Started","lvl1":"DeepInfra Provider Guide","lvl2":"3. Use it","lvl3":""}},
|
|
5566
|
+
{"objectID":"e5d5390d881131bbbff49e75f1dc6a4f4a7f49dbdca04f51c55af42fd296d8b5","title":"CLI","url":"/docs/getting-started/providers/deepinfra#cli","content":"npx @juspay/neurolink generate \"Hello\" --provider deepinfra\ntypescript\nawait neurolink.generate({\n input: { text: \"Hello\" },\n provider: \"deepinfra\",\n credentials: { deepinfra: { apiKey: process.env.DEEPINFRAAPIKEY } },\n});\n`","hierarchy":{"lvl0":"Getting Started","lvl1":"DeepInfra Provider Guide","lvl2":"CLI","lvl3":""}},
|
|
5567
|
+
{"objectID":"f2a8d9b8fac73465fe99cc93ba50a8fc6f3fb2196a53f0e76a03e8b0b127d202","title":"Models","url":"/docs/getting-started/providers/deepinfra#models","content":"| Model | Context | Vision | $/M in · out | Notes |\n| ------------------------------------------- | ------- | ------ | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------- |\n| deepseek-ai/DeepSeek-V4-Flash-0731 ⭐ | 1M | no | $0.06 / $0.18 (cached $0.015) | Recommended — the exact model used in DeepInfra's own tool-calling docs example and named as reasoning_effort-capable in its reasoning docs. |\n| deepseek-ai/DeepSeek-V4-Pro-0813 | 1M | no | $1.30 / $2.60 (cached $0.10) | Larger DeepSeek variant; roster-listed only; fallback. |\n| openai/gpt-oss-120b | 131K | no | $0.037 / $0.17 | OpenAI's open-weight 120B model; reasoning-tagged on the live roster; fallback. |\n| moonshotai/Kimi-K3 | 1M | yes | $2.85 / $14.25 (cached $0.285) | Named in DeepInfra's tool-calling docs as \"the current Kimi model in our catalog\"; roster-tagged vision; fallback. |\n| zai-org/GLM-5.2 | 1M | no | $0.75 / $2.40 (cached $0.14) | Named in DeepInfra's reasoning docs as reasoning_effort-capable; fallback. |\n| anthropic/claude-haiku-4-5 | 200K | yes | $1.00 / $5.00 | Claude Haiku 4.5 served through DeepInfra's marketplace; roster-tagged vision + reasoning_effort; fallback. |\n| Qwen/Qwen3-14B | 41K | no | $0.1","hierarchy":{"lvl0":"Getting Started","lvl1":"DeepInfra Provider Guide","lvl2":"Models","lvl3":""}},
|
|
5568
|
+
{"objectID":"1851e6d139da310cbf80236f9546ee5916deabb56bc9613a32858da70cc4f1d4","title":"Verification status","url":"/docs/getting-started/providers/deepinfra#verification-status","content":"Tier-2 onboarding requires evidence before a provider is accepted, and\npnpm run verify:provider-onboarding gates it in CI. This is what the\ncatalog currently records for DeepInfra — docs- and roster-verified, not\nlive-verified:\n\n| Probe | Result |\n| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Roster | unauthenticated GET /v1/openai/models, HTTP 200, 187 models, 2026-09-28 — no key used |\n| Billing | public pricing page confirms \"You have to add a card or pre-pay or you won't be able to use our services\" — no free tier, 2026-09-28 |\n| Auth-failure shape | not documented anywhere DeepInfra publishes (docs site has no errors page; the public OpenAPI spec at api.deepinfra.com/openapi.json documents only 200/422 for chat/completions) and not probed live — errorRules is empty |\n| Tools / structured output | documented on docs.deepinfra.com/chat/tool-calling and /chat/structured-outputs respectively; neither was exercised live, and no combined tools+schema request was sent — structuredOutputWithTools stays false |\n| Live capability sweep | not run. evidence.liveMatrix is null. Before treating this provider as production-ready, run npx tsx test/continuous-test-suite-provider-matrix.ts --provider=deepinfra with a real key and record the result","hierarchy":{"lvl0":"Getting Started","lvl1":"DeepInfra Provider Guide","lvl2":"Verification status","lvl3":""}},
|
|
5569
|
+
{"objectID":"fb44a1382137d42baf47eb334f37ec240ceaf42aee393a3f83b7c8c611f7ab7d","title":"Troubleshooting","url":"/docs/getting-started/providers/deepinfra#troubleshooting","content":"| Symptom | Cause | Fix |\n| --------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |\n| Requests fail immediately | No card on file / no pre-payment balance | DeepInfra requires billing setup before any request succeeds; add a card or pre-pay |\n| Model not found | The roster changed since 2026-09-28 | Pick a current id from the unauthenticated GET /v1/openai/models roster |\n| Structured output ignored with tools attached | structuredOutputWithTools is false on this entry — untested combination | NeuroLink omits response_format automatically whenever tools are present, before sending |\n| Tool calls not returned | Tool calling on DeepInfra is model-dependent | Use a model DeepInfra names as tool-capable (e.g. the default, or moonshotai/Kimi-K3) |","hierarchy":{"lvl0":"Getting Started","lvl1":"DeepInfra Provider Guide","lvl2":"Troubleshooting","lvl3":""}},
|
|
5570
|
+
{"objectID":"f6f02175bacb3dbce06e1319e4446333c67507304989d69b5c4c9abc89d81faf","title":"See also","url":"/docs/getting-started/providers/deepinfra#see-also","content":"Provider setup overview\nAll providers\nTier-2 onboarding — how this provider's JSON becomes a working integration\nProvider feature compatibility","hierarchy":{"lvl0":"Getting Started","lvl1":"DeepInfra Provider Guide","lvl2":"See also","lvl3":""}},
|
|
5499
5571
|
{"objectID":"f0011413e792381f4d6131f700afe5f7742598666be073cf1f98530c99fd5138","title":"DeepSeek Provider Guide","url":"/docs/getting-started/providers/deepseek","content":"DeepSeek Provider Guide\n\nText and image input with DeepSeek-V4.1-Flash and DeepSeek-V4-Pro through a single API\n\nOverview\n\nDeepSeek is a Chinese AI research lab offering highly capable open-weight models via a hosted cloud API. NeuroLink wraps their OpenAI-compatible endpoint. The API serves two models:\ndeepseek-flash — DeepSeek-V4.1-Flash. Reads images as well as text.\ndeepseek-v4-pro — DeepSeek-V4-Pro-0813. Text only.\n\nThe older ids still work as aliases of deepseek-flash: deepseek-chat answers with thinking off, and deepseek-reasoner answers with thinking on and returns a reasoning trace.\n\nKey Facts\nProtocol: OpenAI-compatible (/v1/chat/completions)\nDefault base URL: https://api.deepseek.com\nContext window: 1M tokens (1,048,576), with up to 384K (393,216) output tokens\nVision: deepseek-flash and its aliases; not deepseek-v4-pro'\n- **Streaming**: Supported\n- **Tool calling**: Supported. Tools and JSON output work in the same request.\n- **Reasoning trace**: returned as reasoningcontent when thinking is on (deepseek-reasoner)\n\n---\n\n## Quick Start\n\n### 1. Get an API Key\n\nSign up at [https://platform.deepseek.com](https://platform.deepseek.com) and create an API key under **API Keys**.\n\n### 2. Configure Environment\n\nAdd to your .env file:\n\n\n\n### 3. Install NeuroLink\n\n\n\n### 4. Generate Your First Response\n\n\n\n---\n\n## Supported Models\n\n| Model ID | Serves | Context | Images | Notes |\n| ------------------- | ------------------- | ------- | ------ | ------------------------------------------------ |\n| deepseek-chat | DeepSeek-V4.1-Flash | 1M | Yes | Default; alias of deepseek-flash, thinking off |\n| deepseek-reasoner | DeepSeek-V4.1-Flash | 1M | Yes | Alias of deepseek-flash, thinking on |\n| deepseek-flash | DeepSeek-V4.1-Flash | 1M | Yes | Thinking on by default |\n| deepseek-v4-pro | DeepSeek-V4-Pro | 1M | No | Thinking on by default |\n\nPass any model ID via --model (CLI) or model: (SDK). GET /models on api.deepseek.com lists only deepseek-flash and deepseek-v4-pro; the two older ids are accepted as aliases.\n\n---\n\n## SDK Usage\n\n### Basic Generation\n\n\n\n### Using the Reasoner Model\n\n\n\nNote: with thinking on, responses take longer because the model reasons before answering.\n\n### Streaming\n\n\n\n### Per-Call Credential Override\n\nPass credentials at call time to override the instance-level or environment-variable defaults. Useful when routing requests for different users through separate DeepSeek accounts.\n\n\n\nYou can also override the base URL per call — useful when pointing at a self-hosted OpenAI-compatible proxy in front of DeepSeek:\n\n\n\n---\n\n## CLI Usage\n\n### Basic Commands\n\n\n\n### Streaming via CLI\n\nThe CLI streams output by default when a TTY is attached. No extra flags are required.\n\n\n\n---\n\n## Provider Aliases\n\nThe DeepSeek provider can be referenced by any of the following names:\n\n| Alias | Example |\n| ---------- | --------------------- |\n| deepseek | --provider deepseek |\n| ds | --provider ds |\n\n---\n\n## Configuration Reference\n\n| Environment Variable | Required | Default | Description |\n| -------------------- | -------- | -------------------------- | ------------------------------------------- |\n| DEEPSEEKAPIKEY | Yes | — | DeepSeek API key (starts with sk-) |\n| DEEPSEEKMODEL | No | deepseek-chat | Default model to use |\n| DEEPSEEKBASEURL | No | https://api.deepseek.com | Base URL for the API (override for proxies) |\n\n---\n\n## Feature Support Matrix\n\n| Feature | deepseek-chat | deepseek-reasoner | deepseek-flash | deepseek-v4-pro |\n| ----------------- | --------------- | ------------------- | ---------------- | ----------------- |\n| Text generation | Yes | Yes | Yes | Yes |\n| Streaming | Yes | Yes | Yes | Yes |\n| Tool calling | Yes | See below | See below | See below |\n| Structured output | Yes | Not tested | Not tested | Not tested |\n| Vision / images | Yes | Yes | Yes | No |\n| Embeddings | No | No | No | No |\n| Reasoning trace | No | Yes | Yes | Yes |\n\n---\n\n## Troubleshooting\n\n### \"Invalid DeepSeek API key\"\n\nThe DEEPSEEKAPIKEY is missing or incorrect.\n\n\n\nGet or rotate keys at [https://platform.deepseek.com/api_keys](https://platform.deepseek.com/api_keys).\n\n### \"DeepSeek account has insufficient balance\"\n\nYour account credit is exhausted. Top up at [https://platform.deepseek.com/usage](https:","hierarchy":{"lvl0":"Getting Started","lvl1":"DeepSeek Provider Guide","lvl2":"","lvl3":""}},
|
|
5500
5572
|
{"objectID":"958538aa2497f8c0121993c79063ab03a4e9182ad54e8e826fac34ccf66059d2","title":"DeepSeek Provider Guide","url":"/docs/getting-started/providers/deepseek#deepseek-provider-guide","content":"Text and image input with DeepSeek-V4.1-Flash and DeepSeek-V4-Pro through a single API","hierarchy":{"lvl0":"Getting Started","lvl1":"DeepSeek Provider Guide","lvl2":"DeepSeek Provider Guide","lvl3":""}},
|
|
5501
5573
|
{"objectID":"c3e1684d29fb0fb80d0a6c08cccede4c72627e18920573ed08ace68662625d5e","title":"Overview","url":"/docs/getting-started/providers/deepseek#overview","content":"DeepSeek is a Chinese AI research lab offering highly capable open-weight models via a hosted cloud API. NeuroLink wraps their OpenAI-compatible endpoint. The API serves two models:\ndeepseek-flash — DeepSeek-V4.1-Flash. Reads images as well as text.\ndeepseek-v4-pro — DeepSeek-V4-Pro-0813. Text only.\n\nThe older ids still work as aliases of deepseek-flash: deepseek-chat answers with thinking off, and deepseek-reasoner answers with thinking on and returns a reasoning trace.","hierarchy":{"lvl0":"Getting Started","lvl1":"DeepSeek Provider Guide","lvl2":"Overview","lvl3":""}},
|
|
@@ -5569,6 +5641,27 @@
|
|
|
5569
5641
|
{"objectID":"293d0cf78c8b91321aaea4539752c75c5d23b0f630e75d8c039fa5b10759fbd8","title":"Voice not found","url":"/docs/getting-started/providers/elevenlabs#voice-not-found","content":"You passed a voice ID that does not exist in your account. List available voices to confirm:","hierarchy":{"lvl0":"Getting Started","lvl1":"ElevenLabs Provider Guide","lvl2":"Voice not found","lvl3":""}},
|
|
5570
5642
|
{"objectID":"a8f667c71e278a2fbdf507c9d16d18418a74fc97ae593129deaa675058c728f5","title":"\"Failed to get voices\"","url":"/docs/getting-started/providers/elevenlabs#failed-to-get-voices","content":"Voice discovery failed (network error or invalid key). The 5-minute cache shields against transient failures, but a hard failure at startup will propagate. Ensure ELEVENLABS_API_KEY is valid and the ElevenLabs API is reachable.","hierarchy":{"lvl0":"Getting Started","lvl1":"ElevenLabs Provider Guide","lvl2":"\"Failed to get voices\"","lvl3":""}},
|
|
5571
5643
|
{"objectID":"58ee78d9a6be3099cc23a438c6255e483cabb54fdd59e63c6d9de2a3e10068ad","title":"See Also","url":"/docs/getting-started/providers/elevenlabs#see-also","content":"TTS Integration Guide — complete multi-provider TTS reference\nOpenAI TTS Provider Guide — alternative TTS provider\nAudio Input (STT) — speech-to-text counterpart\nVoice Agent Guide — building full voice assistants\n\nNeed Help? Join the GitHub Discussions or open an issue.","hierarchy":{"lvl0":"Getting Started","lvl1":"ElevenLabs Provider Guide","lvl2":"See Also","lvl3":""}},
|
|
5644
|
+
{"objectID":"7f6bb3946274afde9ce29bfc356e888f59ea0cb8955e0c63cbd5bc3101a024af","title":"EmpirioLabs AI Provider Guide","url":"/docs/getting-started/providers/empiriolabs","content":"EmpirioLabs AI Provider Guide\n\nEmpirioLabs AI is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/empiriolabs.json) rather than hand-written code.\nThat file is the source of truth for everything on this page.\n\nVerification status: docs- and roster-verified, not yet live-verified.\nThis entry was onboarded credential-free — no API key was created and no\nchat, streaming or tool-call request was ever sent. Everything below comes\nfrom the vendor's own public docs (docs.empiriolabs.ai) and an\nunauthenticated GET /v1/models call. evidence.liveMatrix is null\nin the catalog file until someone runs the live capability sweep with a\nreal key (see Live verification).\n\nKey Facts\nProvider id: empiriolabs\nProtocol: OpenAI-compatible (/v1/chat/completions) — confirmed on\n docs.empiriolabs.ai: \"Accepts the same request body as the OpenAI Chat\n Completions API.\"\nBase URL: https://api.empiriolabs.ai/v1\nDefault model: glm-5-3 (Zhipu GLM-5.3 — marked is_featured: true on\n the live roster)\nModels in catalog: 6 (curated text/chat subset of a 217-model roster\n that also spans vision, audio, video, image and 3D generation)\nStreaming: documented as a supported request parameter (stream); not\n live-probed\nTool calling: model-dependent — the roster's own features field\n marks function_calling on 97 of 217 models, not all of them\nStructured output: model-dependent per the vendor's docs\n (\"json_schema means strict schema support, json_object means JSON mode\n only... check via GET /v1/models/{modelId}\"); the default model\n (glm-5-3) documents json_object support, so the provider-level flag is\n true\nStructured output + tools together: not declared — no combined probe\n was possible without a key\nEmbeddings: not supported by this integration (the vendor does list a\n separate embedding-model family, but NeuroLink's generic OpenAI-compatible\n catalog provider does not implement embed()/embedMany())\nBilling: free-tier — pricing page: \"$0 to start... No subscription\n needed\", with several models marked \"Free\" at $0 input/output/cache cost.\n Getting-started docs also list prepaid credits as a prerequisite for\n non-free models, so budget for that before heavy use.\nKey format: keys use the sk-empiriolabs- prefix (documented)\n\nQuick Start\nGet an API key\nVisit: https://platform.empiriolabs.ai and create an account\nCreate an API key from the dashboard (keys use the sk-empiriolabs-\n prefix, up to 50 per account)\nSelected models (e.g. GLM 4.7 Flash) run at $0 cost; other models draw\n from prepaid credits topped up via the dashboard Billing page — confirm\n current pricing before heavy use\nSet EMPIRIOLABS_API_KEY in your .env file\nConfigure\nUse it\n\nPer-request credentials work as they do for every provider:\n\nModels\n\n| Model | Context | Max out | Vision | Structured output | $/M in · out (cached) | Notes |\n| ------------------------ | ------- | ------- | ------ | ----------------- | ----------------------- | ------------------------------------------------------------------------------------------------------- |\n| glm-5-3 ⭐ | 1M | 131,072 | no | json_object | $1.40 / $4.40 ($1.40) | Recommended — roster is_featured: true; reasoning, function calling, web search. |\n| glm-5-3-flash | 1M | 131,072 | yes | json_object | $0.075 / $0.25 ($0.075) | Lighter/cheaper sibling; also vision (document_understanding, video_understanding); fallback. |\n| glm-5-2 | 1M | 131,072 | no | json_object | $1.40 / $4.40 ($1.40) | Prior GLM generation; fallback. |\n| kimi-k3 | 1M | 131,072 | yes | json_schema | $3.00 / $15.00 ($3.00) | Moonshot Kimi K3 — multimodal, agentic coding; strict schema output; fallback. |\n| qwen3-7-max | 1M | 65,536 | no | json_schema | $2.50 / $7.50 ($2.50) | Alibaba flagship reasoning model with code interpreter; lower max output than the GLM family; fallback. |\n| minimax-m2-7-highspeed | 200K | 32,768 | no | json_object | $0.30 / $1.20 ($0.03) | Smallest context/output in this set; lightest/cheapest fallback. |\n\nAll context, output, pricing and structured-output values above are read\ndirectly from the unauthenticated GET https://api.empiriolabs.ai/v1/models\nresponse (2026-09-28), not invented or estimated. This 6-model set is a\ncurated subset — the full roster returned 217 ids spanning text, vision,\naudio, video, image and 3D-generation models; only text/chat-completions\nmodels with documented function_calling are catalogued here.\n\nFallback order when the default is unavailable: glm-5-3-flash →\nglm-5-2 → kimi-k3 → ","hierarchy":{"lvl0":"Getting Started","lvl1":"EmpirioLabs AI Provider Guide","lvl2":"","lvl3":""}},
|
|
5645
|
+
{"objectID":"9667985ea098d5b6e3f3df88e69488be9a4e8e7884becfbe54ecb70f60f262e9","title":"EmpirioLabs AI Provider Guide","url":"/docs/getting-started/providers/empiriolabs#empiriolabs-ai-provider-guide","content":"EmpirioLabs AI is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/empiriolabs.json) rather than hand-written code.\nThat file is the source of truth for everything on this page.\n\nVerification status: docs- and roster-verified, not yet live-verified.\nThis entry was onboarded credential-free — no API key was created and no\nchat, streaming or tool-call request was ever sent. Everything below comes\nfrom the vendor's own public docs (docs.empiriolabs.ai) and an\nunauthenticated GET /v1/models call. evidence.liveMatrix is null\nin the catalog file until someone runs the live capability sweep with a\nreal key (see Live verification).","hierarchy":{"lvl0":"Getting Started","lvl1":"EmpirioLabs AI Provider Guide","lvl2":"EmpirioLabs AI Provider Guide","lvl3":""}},
|
|
5646
|
+
{"objectID":"512dbbda3ceab0cc664df558d52aef286593d18ff49a1c718433ce16d6d8834a","title":"Key Facts","url":"/docs/getting-started/providers/empiriolabs#key-facts","content":"Provider id: empiriolabs\nProtocol: OpenAI-compatible (/v1/chat/completions) — confirmed on\n docs.empiriolabs.ai: \"Accepts the same request body as the OpenAI Chat\n Completions API.\"\nBase URL: https://api.empiriolabs.ai/v1\nDefault model: glm-5-3 (Zhipu GLM-5.3 — marked is_featured: true on\n the live roster)\nModels in catalog: 6 (curated text/chat subset of a 217-model roster\n that also spans vision, audio, video, image and 3D generation)\nStreaming: documented as a supported request parameter (stream); not\n live-probed\nTool calling: model-dependent — the roster's own features field\n marks function_calling on 97 of 217 models, not all of them\nStructured output: model-dependent per the vendor's docs\n (\"json_schema means strict schema support, json_object means JSON mode\n only... check via GET /v1/models/{modelId}\"); the default model\n (glm-5-3) documents json_object support, so the provider-level flag is\n true\nStructured output + tools together: not declared — no combined probe\n was possible without a key\nEmbeddings: not supported by this integration (the vendor does list a\n separate embedding-model family, but NeuroLink's generic OpenAI-compatible\n catalog provider does not implement embed()/embedMany())\nBilling: free-tier — pricing page: \"$0 to start... No subscription\n needed\", with several models marked \"Free\" at $0 input/output/cache cost.\n Getting-started docs also list prepaid credits as a prerequisite for\n non-free models, so budget for that before heavy use.\nKey format: keys use the sk-empiriolabs- prefix (documented)","hierarchy":{"lvl0":"Getting Started","lvl1":"EmpirioLabs AI Provider Guide","lvl2":"Key Facts","lvl3":""}},
|
|
5647
|
+
{"objectID":"d7035afcfe6b89815711ef4af1430b377fb479254ac55cfe3d11e54e8b771ea6","title":"1. Get an API key","url":"/docs/getting-started/providers/empiriolabs#1-get-an-api-key","content":"Visit: https://platform.empiriolabs.ai and create an account\nCreate an API key from the dashboard (keys use the sk-empiriolabs-\n prefix, up to 50 per account)\nSelected models (e.g. GLM 4.7 Flash) run at $0 cost; other models draw\n from prepaid credits topped up via the dashboard Billing page — confirm\n current pricing before heavy use\nSet EMPIRIOLABS_API_KEY in your .env file","hierarchy":{"lvl0":"Getting Started","lvl1":"EmpirioLabs AI Provider Guide","lvl2":"1. Get an API key","lvl3":""}},
|
|
5648
|
+
{"objectID":"a9a581e5740730585f01ad3aa3f0f0060a8204b5c9e47a298328130654194745","title":"3. Use it","url":"/docs/getting-started/providers/empiriolabs#3-use-it","content":"`bash","hierarchy":{"lvl0":"Getting Started","lvl1":"EmpirioLabs AI Provider Guide","lvl2":"3. Use it","lvl3":""}},
|
|
5649
|
+
{"objectID":"6ea750ec6a5f9f5441675edb98290ec96038d51f83ff448450cf32c7de0db11d","title":"CLI","url":"/docs/getting-started/providers/empiriolabs#cli","content":"npx @juspay/neurolink generate \"Hello\" --provider empiriolabs\ntypescript\nawait neurolink.generate({\n input: { text: \"Hello\" },\n provider: \"empiriolabs\",\n credentials: { empiriolabs: { apiKey: process.env.EMPIRIOLABSAPIKEY } },\n});\n`","hierarchy":{"lvl0":"Getting Started","lvl1":"EmpirioLabs AI Provider Guide","lvl2":"CLI","lvl3":""}},
|
|
5650
|
+
{"objectID":"47a1b4bb656a103c281c6dedea3ddfcd32893835539ee4bc50711aafb0ec5f9e","title":"Models","url":"/docs/getting-started/providers/empiriolabs#models","content":"| Model | Context | Max out | Vision | Structured output | $/M in · out (cached) | Notes |\n| ------------------------ | ------- | ------- | ------ | ----------------- | ----------------------- | ------------------------------------------------------------------------------------------------------- |\n| glm-5-3 ⭐ | 1M | 131,072 | no | json_object | $1.40 / $4.40 ($1.40) | Recommended — roster is_featured: true; reasoning, function calling, web search. |\n| glm-5-3-flash | 1M | 131,072 | yes | json_object | $0.075 / $0.25 ($0.075) | Lighter/cheaper sibling; also vision (document_understanding, video_understanding); fallback. |\n| glm-5-2 | 1M | 131,072 | no | json_object | $1.40 / $4.40 ($1.40) | Prior GLM generation; fallback. |\n| kimi-k3 | 1M | 131,072 | yes | json_schema | $3.00 / $15.00 ($3.00) | Moonshot Kimi K3 — multimodal, agentic coding; strict schema output; fallback. |\n| qwen3-7-max | 1M | 65,536 | no | json_schema | $2.50 / $7.50 ($2.50) | Alibaba flagship reasoning model with code interpreter; lower max output than the GLM family; fallback. |\n| minimax-m2-7-highspeed | 200K | 32,768 | no | json_object | $0.30 / $1.20 ($0.03) | Smallest context/output in this set; lightest/cheapest fallback. |\n\nAll context, output, pricing and structured-output values above are read\ndirectly from the unauthenticated GET https://api.empiriolabs.ai/v1/models\nresponse (2026-09-28), not invented or estimated. This 6-model set is a\ncurated subset — the full roster returned 217 ids spanning text, vision,\naudio, video, image and 3D-generation models; only text/c","hierarchy":{"lvl0":"Getting Started","lvl1":"EmpirioLabs AI Provider Guide","lvl2":"Models","lvl3":""}},
|
|
5651
|
+
{"objectID":"b5a3aa64f768a8d7ae8598c18e71673a2abc35f1ac40547734d50eb812eb00d3","title":"Verification status","url":"/docs/getting-started/providers/empiriolabs#verification-status","content":"Tier-2 onboarding requires evidence before a provider is accepted, and\npnpm run verify:provider-onboarding gates it in CI. This is what the\ncatalog currently records for EmpirioLabs AI:\n\n| Probe | Result |\n| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Roster | unauthenticated GET /v1/models, HTTP 200, 217 models, 2026-09-28. No API key was created or used. |\n| Auth rejection | Not probed (would require a key). Documented shape only: docs.empiriolabs.ai/authentication states a missing/malformed/unknown token returns 401 Unauthorized. |\n| Wire compatibility | Documented only: docs.empiriolabs.ai/compatibility states the endpoint \"accepts the same request body as the OpenAI Chat Completions API\" and lists messages, model, stream, temperature, max_tokens, response_format as supported. |\n| Live capability sweep | Not run. evidence.liveMatrix is null. No chat, streaming, tool-call or structured-output request has been sent to this vendor. |\n\nBecause no live probe was possible, capabilities.toolsWithStreaming and\ncapabilities.structuredOutputWithTools are conservatively false, and\ncapabilities.tools is \"model-dependent\" rather than an unqualified\ntrue — the roste","hierarchy":{"lvl0":"Getting Started","lvl1":"EmpirioLabs AI Provider Guide","lvl2":"Verification status","lvl3":""}},
|
|
5652
|
+
{"objectID":"ef64365a6f8ebc4d0e7ec47fa758ca6132239036fefa1bc851c42c6e60965b17","title":"Documented quirks worth knowing (not catalog quirks)","url":"/docs/getting-started/providers/empiriolabs#documented-quirks-worth-knowing-not-catalog-quirks","content":"Implicit system prompt: EmpirioLabs docs say every chat model has a\n built-in identity message that is prepended automatically when your\n request has no system/developer role message. Supplying your own\n system message fully replaces it (no merging). This doesn't require a\n named catalog quirks entry — it only changes behavior when you omit a\n system message — but it's worth knowing if a completion reads oddly\n \"in character.\"\nresponse_format is per-model: sending a structured-output format a\n model doesn't support returns HTTP 400 per the vendor's docs. Check\n GET /v1/models/{modelId} for a given model's structured_output value\n (json_schema, json_object, or absent) before relying on it.","hierarchy":{"lvl0":"Getting Started","lvl1":"EmpirioLabs AI Provider Guide","lvl2":"Documented quirks worth knowing (not catalog quirks)","lvl3":""}},
|
|
5653
|
+
{"objectID":"b54d9fb43ab2b37512ceae0461e6db93cefde1eca154cddbb4f1f0661e80552b","title":"Troubleshooting","url":"/docs/getting-started/providers/empiriolabs#troubleshooting","content":"| Symptom | Cause | Fix |\n| ------------------------------------------------------ | --------------------------------------------------------------------- | --------------------------------------------------------------------------------- |\n| Invalid EmpirioLabs API key | EMPIRIOLABS_API_KEY unset or wrong | Check the key at https://platform.empiriolabs.ai |\n| 401 Unauthorized | Token missing, malformed, or not found (per vendor docs) | Confirm the header is Authorization: Bearer sk-empiriolabs-... |\n| 402 Payment Required (documented, not live-verified) | Account has insufficient prepaid credits | Top up credits via the dashboard Billing page, or pick a $0 free model |\n| 429 Too Many Requests | Rate limit exceeded (new accounts: 50 RPM / 2,000,000 TPM) | Retry with exponential backoff, or email support@empiriolabs.ai for higher limits |\n| HTTP 400 on response_format | The chosen model doesn't support the requested structured-output mode | Check GET /v1/models/{modelId} for that model's structured_output value |","hierarchy":{"lvl0":"Getting Started","lvl1":"EmpirioLabs AI Provider Guide","lvl2":"Troubleshooting","lvl3":""}},
|
|
5654
|
+
{"objectID":"fb753a98000a6b9a70d1fcda483c5f68eb47882e3704a3564e99d6ffe38ca484","title":"See also","url":"/docs/getting-started/providers/empiriolabs#see-also","content":"Provider setup overview\nAll providers\nTier-2 onboarding — how this provider's JSON becomes a working integration, including the live-verification steps this entry still needs\nProvider feature compatibility","hierarchy":{"lvl0":"Getting Started","lvl1":"EmpirioLabs AI Provider Guide","lvl2":"See also","lvl3":""}},
|
|
5655
|
+
{"objectID":"ed9b509fc25930e44605e1dc0ebf6d551bef2fe83f9326bd674bab158b85ffc8","title":"Featherless AI Provider Guide","url":"/docs/getting-started/providers/featherless-ai","content":"Featherless AI Provider Guide\n\nFeatherless AI is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/featherless-ai.json) rather than hand-written code.\nThat file is the source of truth for everything on this page.\n\nVerification status: this entry is docs- and roster-verified, not yet\nlive-verified. Every field below comes from Featherless's own published\ndocs and an unauthenticated GET /v1/models call — no API key was used to\nwrite this entry, so no request-response wire behavior (streaming, tool\ncalling, structured output) has actually been exercised end to end yet. See\nVerification status for exactly what was and was\nnot checked.\n\nKey Facts\nProvider id: featherless-ai\nProtocol: OpenAI-compatible (/chat/completions), per Featherless's own\n docs: \"Featherless's API is designed to be API compatible with OpenAI.\"\nBase URL: https://api.featherless.ai/v1\nDefault model: unsloth/Llama-3.3-70B-Instruct\nModels in catalog: 12 (out of a live roster of 22,060 models — see\n Models for why these 12)\nStreaming: not documented anywhere in Featherless's docs — declared\n false until confirmed live\nTool calling: model-dependent. Featherless's Tool Calling\n guide natively supports only the\n moonshotai/Kimi-K2-Instruct and Qwen 3 model families; other models need\n a prompting workaround the guide documents separately\nStructured output: not documented (no response_format/JSON-mode\n mention anywhere in the docs checked) — declared false\nEmbeddings: Featherless does document a separate POST\n/v1/embeddings endpoint for embedding-output models, but that is a distinct\n model family from the chat models in this catalog entry and is not wired\n through this provider — declared false\nBilling: no free tier. Plans start at $25/mo\nKey format: none declared by the vendor\nGated models: some roster ids are Hugging-Face-gated and return HTTP 403\n until unlocked manually in the account UI (see\n Troubleshooting)\n\nQuick Start\nGet an API key\nVisit: https://featherless.ai/register and create an account (or\n https://featherless.ai/login if you already have one)\nSubscribe to a plan — Chat ($25/mo, unlimited tokens, 32K context) or\n Developer ($50/mo in credits, billed per token, up to 256K context);\n Featherless has no free or keyless tier\nGenerate an API key from the API keys section of your account\nSet FEATHERLESS_AI_API_KEY in your .env file\nConfigure\nUse it\n\nPer-request credentials work as they do for every provider:\n\nModels\n\nFeatherless's live roster is enormous — 22,060 models as of 2026-09-28,\nspanning mainline instruction-tuned checkpoints alongside a very large number\nof community roleplay, uncensored and \"abliterated\" (safety-refusal-removed)\nfine-tunes; Featherless's own site markets these as first-class catalog\nfilters (\"LLMs for Roleplay\", \"Uncensored Models\", \"Abliterated Models\"). This\ncatalog entry lists 12 models — a bounded, verifiable slice, not the whole\nroster — chosen to include the default, its closest official counterpart, and\na representative spread of the architectures Featherless serves (Llama-3.3-70B\nfamily, QRWKV, RWKV5).\n\n| Model | Context | Vision | $/M in · out | Notes |\n| ---------------------------------------------- | ------- | ------ | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| unsloth/Llama-3.3-70B-Instruct ⭐ | 32K | no | $2.60 / $3.00 | Recommended — an ungated community re-upload of Meta's Llama 3.3 70B Instruct. Chosen as default because the official meta-llama id is gated (see below). Roster reports tool_use: true. |\n| meta-llama/Llama-3.3-70B-Instruct | 32K | no | $0.65 / $0.75 | Meta's official weights. Hugging-Face-gated on Featherless (HTTP 403 until unlocked in the account UI) — kept as a fallback, not the default. |\n| Sao10K/L3.3-70B-Euryale-v2.3 | 32K | no | $0.65 / $0.75 | Roleplay/long-form-writing Llama-3.3-70B fine-tune. Not gated; roster-listed only. |\n| EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.0 | 32K | no | $2.60 / $3.00 | Creative-writing/roleplay Llama-3.3-70B fine-tune. Not gated; roster-listed only. |\n| EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.1 | 32K | no | $2.60 / $3.00 | Later revision of the EVA-LLaMA line above. Not gated; roster-listed only. ","hierarchy":{"lvl0":"Getting Started","lvl1":"Featherless AI Provider Guide","lvl2":"","lvl3":""}},
|
|
5656
|
+
{"objectID":"2525256d5716039c2c901350371f9dbc292f9c68e0e8ef19c6813459a3db44a8","title":"Featherless AI Provider Guide","url":"/docs/getting-started/providers/featherless-ai#featherless-ai-provider-guide","content":"Featherless AI is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/featherless-ai.json) rather than hand-written code.\nThat file is the source of truth for everything on this page.\n\nVerification status: this entry is docs- and roster-verified, not yet\nlive-verified. Every field below comes from Featherless's own published\ndocs and an unauthenticated GET /v1/models call — no API key was used to\nwrite this entry, so no request-response wire behavior (streaming, tool\ncalling, structured output) has actually been exercised end to end yet. See\nVerification status for exactly what was and was\nnot checked.","hierarchy":{"lvl0":"Getting Started","lvl1":"Featherless AI Provider Guide","lvl2":"Featherless AI Provider Guide","lvl3":""}},
|
|
5657
|
+
{"objectID":"299e453e548d981f885cc777279516de143df7f47e3a4b5c07b187d75d8b562a","title":"Key Facts","url":"/docs/getting-started/providers/featherless-ai#key-facts","content":"Provider id: featherless-ai\nProtocol: OpenAI-compatible (/chat/completions), per Featherless's own\n docs: \"Featherless's API is designed to be API compatible with OpenAI.\"\nBase URL: https://api.featherless.ai/v1\nDefault model: unsloth/Llama-3.3-70B-Instruct\nModels in catalog: 12 (out of a live roster of 22,060 models — see\n Models for why these 12)\nStreaming: not documented anywhere in Featherless's docs — declared\n false until confirmed live\nTool calling: model-dependent. Featherless's Tool Calling\n guide natively supports only the\n moonshotai/Kimi-K2-Instruct and Qwen 3 model families; other models need\n a prompting workaround the guide documents separately\nStructured output: not documented (no response_format/JSON-mode\n mention anywhere in the docs checked) — declared false\nEmbeddings: Featherless does document a separate POST\n/v1/embeddings endpoint for embedding-output models, but that is a distinct\n model family from the chat models in this catalog entry and is not wired\n through this provider — declared false\nBilling: no free tier. Plans start at $25/mo\nKey format: none declared by the vendor\nGated models: some roster ids are Hugging-Face-gated and return HTTP 403\n until unlocked manually in the account UI (see\n Troubleshooting)","hierarchy":{"lvl0":"Getting Started","lvl1":"Featherless AI Provider Guide","lvl2":"Key Facts","lvl3":""}},
|
|
5658
|
+
{"objectID":"d236deecc486647bfdf5af2b0769c24c4af52a480e407f830229ce71fd9df748","title":"1. Get an API key","url":"/docs/getting-started/providers/featherless-ai#1-get-an-api-key","content":"Visit: https://featherless.ai/register and create an account (or\n https://featherless.ai/login if you already have one)\nSubscribe to a plan — Chat ($25/mo, unlimited tokens, 32K context) or\n Developer ($50/mo in credits, billed per token, up to 256K context);\n Featherless has no free or keyless tier\nGenerate an API key from the API keys section of your account\nSet FEATHERLESS_AI_API_KEY in your .env file","hierarchy":{"lvl0":"Getting Started","lvl1":"Featherless AI Provider Guide","lvl2":"1. Get an API key","lvl3":""}},
|
|
5659
|
+
{"objectID":"931b43dee8517a55af4837886072990bbb01b01aa5b65f37aedc4a04b0156d11","title":"3. Use it","url":"/docs/getting-started/providers/featherless-ai#3-use-it","content":"`bash","hierarchy":{"lvl0":"Getting Started","lvl1":"Featherless AI Provider Guide","lvl2":"3. Use it","lvl3":""}},
|
|
5660
|
+
{"objectID":"ba58bfebf84dce1e3ebc6f75220da9323b2422bf93673f27f2f3f22e7ca4586f","title":"CLI","url":"/docs/getting-started/providers/featherless-ai#cli","content":"npx @juspay/neurolink generate \"Hello\" --provider featherless-ai\ntypescript\nawait neurolink.generate({\n input: { text: \"Hello\" },\n provider: \"featherless-ai\",\n credentials: {\n \"featherless-ai\": { apiKey: process.env.FEATHERLESSAIAPI_KEY },\n },\n});\n`","hierarchy":{"lvl0":"Getting Started","lvl1":"Featherless AI Provider Guide","lvl2":"CLI","lvl3":""}},
|
|
5661
|
+
{"objectID":"aac706f0b9e4ef68cab16a551eb94bf66fe5a93cad84c2c8cb003d09fb75e42a","title":"Models","url":"/docs/getting-started/providers/featherless-ai#models","content":"Featherless's live roster is enormous — 22,060 models as of 2026-09-28,\nspanning mainline instruction-tuned checkpoints alongside a very large number\nof community roleplay, uncensored and \"abliterated\" (safety-refusal-removed)\nfine-tunes; Featherless's own site markets these as first-class catalog\nfilters (\"LLMs for Roleplay\", \"Uncensored Models\", \"Abliterated Models\"). This\ncatalog entry lists 12 models — a bounded, verifiable slice, not the whole\nroster — chosen to include the default, its closest official counterpart, and\na representative spread of the architectures Featherless serves (Llama-3.3-70B\nfamily, QRWKV, RWKV5).\n\n| Model | Context | Vision | $/M in · out | Notes |\n| ---------------------------------------------- | ------- | ------ | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| unsloth/Llama-3.3-70B-Instruct ⭐ | 32K | no | $2.60 / $3.00 | Recommended — an ungated community re-upload of Meta's Llama 3.3 70B Instruct. Chosen as default because the official meta-llama id is gated (see below). Roster reports tool_use: true. |\n| meta-llama/Llama-3.3-70B-Instruct | 32K | no | $0.65 / $0.75 | Meta's official weights. Hugging-Face-gated on Featherless (HTTP 403 until unlocked in the account UI) — kept as a fallback, not the default. |\n| Sao10K/L3.3-70B-Euryale-v2.3 | 32K | no | $0.65 / $0.75 | Roleplay/long-form-writing Llama-3.3-70B fine-tune. Not gated; roster-listed only. ","hierarchy":{"lvl0":"Getting Started","lvl1":"Featherless AI Provider Guide","lvl2":"Models","lvl3":""}},
|
|
5662
|
+
{"objectID":"3c01830b2f0ad1b3e24cc8906bbf820cbf9bce36f4fc799eaaf404db60ac1a4d","title":"Verification status","url":"/docs/getting-started/providers/featherless-ai#verification-status","content":"Tier-2 onboarding requires evidence before a provider is accepted, and\npnpm run verify:provider-onboarding gates it in CI. This entry was built\nentirely credential-free — no signup, no API key, no POST request to\nFeatherless was made — so it records what a public, unauthenticated pass can\nprove and nothing more:\n\n| Probe | Result |\n| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Roster | unauthenticated GET /v1/models, HTTP 200, 22,060 models, 2026-09-28 |\n| Billing | unauthenticated GET https://featherless.ai/pricing, HTTP 200, 2026-09-28 — no free tier found anywhere on the page; plans start at $25/mo |\n| Auth rejection | not probed — would require a POST request, which credential-free onboarding does not permit ","hierarchy":{"lvl0":"Getting Started","lvl1":"Featherless AI Provider Guide","lvl2":"Verification status","lvl3":""}},
|
|
5663
|
+
{"objectID":"9313497b2b07b4c2105ddaf14337e3352bdc192c493a5dd7d023b19c4145127f","title":"Troubleshooting","url":"/docs/getting-started/providers/featherless-ai#troubleshooting","content":"| Symptom | Cause | Fix |\n| ------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Invalid Featherless API key | FEATHERLESS_AI_API_KEY unset or wrong | Check the key in your Featherless account at https://featherless.ai/register |\n| HTTP 403, \"model is gated\" | The requested model (e.g. meta-llama/Llama-3.3-70B-Instruct) is Hugging-Face-gated on Featherless | Open the model's page on featherless.ai while signed in and click \"Unlock Model\" to accept its license, or use the ungated unsloth/Llama-3.3-70B-Instruct default instead |\n| Model not found | The roster changed since 2026-09-28, or the id was mistyped | Pick a current id from the unauthenticated GET /v1/models roster or https://featherless.ai/models |\n| HTTP 400, \"This Model is Cold\" | Featherless documents cold/loading/warm model states; a cold model needs to load | Retry — warm-up can take from a few minutes up to an hour for very large models, per Featherless's error-codes page |\n| HTTP 503, \"Service Temporarily Unavailable\" | Featherless docume","hierarchy":{"lvl0":"Getting Started","lvl1":"Featherless AI Provider Guide","lvl2":"Troubleshooting","lvl3":""}},
|
|
5664
|
+
{"objectID":"971ab825ba3dee7648e70b4787f4ded05ea1075e91f5a450ea2fbc643a9bc869","title":"See also","url":"/docs/getting-started/providers/featherless-ai#see-also","content":"Provider setup overview\nAll providers\nTier-2 onboarding — how this provider's JSON becomes a working integration\nProvider feature compatibility","hierarchy":{"lvl0":"Getting Started","lvl1":"Featherless AI Provider Guide","lvl2":"See also","lvl3":""}},
|
|
5572
5665
|
{"objectID":"b1184b197b42e32c5be5fb34fb171453c9691187c6fd632ea6ee2ffc096329ad","title":"Fireworks AI Provider Guide","url":"/docs/getting-started/providers/fireworks","content":"Fireworks AI Provider Guide\n\nOpen-model inference tuned for low-latency production workloads\n\nOverview\n\nFireworks AI hosts Kimi, GPT-OSS, Qwen, GLM and\nother open models with aggressive throughput optimizations.\nNeuroLink talks to the OpenAI-compatible endpoint at api.fireworks.ai.\n\nKey Facts\nProtocol: OpenAI-compatible (/inference/v1/chat/completions)\nDefault base URL: https://api.fireworks.ai/inference/v1\nDefault model: accounts/fireworks/models/kimi-k3 (vision-capable)\nStreaming: Yes\nTool calling: Yes (model-dependent)\n\nQuick Start\nGet an API Key\n\nhttps://fireworks.ai/account/api-keys\nConfigure Environment\nGenerate\n\nSupported Models (sample)\n\n| Model ID | Vision | Notes |\n| ---------------------------------------- | ------ | ----------------------------------- |\n| accounts/fireworks/models/kimi-k3 | Yes | Default — newest Moonshot flagship |\n| accounts/fireworks/models/gpt-oss-120b | No | Text fallback (fallbackModelName) |\n| accounts/fireworks/models/qwen3p8-max | Yes | Qwen flagship |\n| accounts/fireworks/models/glm-5p3 | No | Rejects image inputs |\n\nFireworks lists models on /models that are not deployed for serverless\nuse, so the catalog only keeps ids that answered a real chat call.\nkimi-k2p6, the default until September 2026, now returns 404\nnot deployed and is retired.\n\nBrowse: https://fireworks.ai/models\n\nCLI Usage\n\nProvider Aliases\n\n| Alias | Example |\n| ----------- | ---------------------- |\n| fireworks | --provider fireworks |\n\nConfiguration Reference\n\n| Environment Variable | Required | Default |\n| -------------------- | -------- | --------------------------------------- |\n| FIREWORKS_API_KEY | Yes | — |\n| FIREWORKS_MODEL | No | accounts/fireworks/models/kimi-k3 |\n| FIREWORKS_BASE_URL | No | https://api.fireworks.ai/inference/v1 |\n\nTroubleshooting\nModel not found, inaccessible, and/or not deployed — your account\n has not deployed the requested model. Check\n https://fireworks.ai/models and either\n deploy it or pick a serverless one.\n\nSee Also\nTogether AI Provider\nGroq Provider","hierarchy":{"lvl0":"Getting Started","lvl1":"Fireworks AI Provider Guide","lvl2":"","lvl3":""}},
|
|
5573
5666
|
{"objectID":"05cd5f1dffdb316d6e5f1b3ff86da591b78de22e32dc78ccf67aa1f40d59597d","title":"Fireworks AI Provider Guide","url":"/docs/getting-started/providers/fireworks#fireworks-ai-provider-guide","content":"Open-model inference tuned for low-latency production workloads","hierarchy":{"lvl0":"Getting Started","lvl1":"Fireworks AI Provider Guide","lvl2":"Fireworks AI Provider Guide","lvl3":""}},
|
|
5574
5667
|
{"objectID":"ce4faa67b07a31fda18f8df2e44a84161502930a7c7bda3806406447212d3b32","title":"Overview","url":"/docs/getting-started/providers/fireworks#overview","content":"Fireworks AI hosts Kimi, GPT-OSS, Qwen, GLM and\nother open models with aggressive throughput optimizations.\nNeuroLink talks to the OpenAI-compatible endpoint at api.fireworks.ai.","hierarchy":{"lvl0":"Getting Started","lvl1":"Fireworks AI Provider Guide","lvl2":"Overview","lvl3":""}},
|
|
@@ -5843,6 +5936,16 @@
|
|
|
5843
5936
|
{"objectID":"e36b07253cf3b9f30e41c888c8083b32320bae3c3cc53e6fc824e7d9677f6e07","title":"Verification status","url":"/docs/getting-started/providers/inception-labs#verification-status","content":"Tier-2 onboarding requires evidence before a provider is accepted, and\npnpm run verify:provider-onboarding gates it in CI. This is what the\ncatalog records for Inception Labs:\n\n| Probe | Result |\n| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Roster | authenticated GET /v1/models, HTTP 200, 2026-09-03 |\n| Auth rejection | HTTP 401 invalid_api_key, 2026-09-03 |\n| Live capability sweep | 2026-09-03 — Full capability sweep on mercury-2: chat, stream, systemrole, contenttextparts, samplingparams, tools, toolsstream, toolsroundtripnull, toolchoicewithouttools, jsonobject, jsonschema and toolsplusschema all |","hierarchy":{"lvl0":"Getting Started","lvl1":"Inception Labs Provider Guide","lvl2":"Verification status","lvl3":""}},
|
|
5844
5937
|
{"objectID":"7eccde36bee5c7ddb2b800c370a2adba5ae48cbde5f16cf242e969e6a691d8ab","title":"Troubleshooting","url":"/docs/getting-started/providers/inception-labs#troubleshooting","content":"| Symptom | Cause | Fix |\n| -------------------------------- | --------------------------------------- | --------------------------------------------------------------------- |\n| Invalid Inception Labs API key | INCEPTION_LABS_API_KEY unset or wrong | Check the key at https://platform.inceptionlabs.ai/dashboard/api-keys |\n| Model not found | The roster changed since 2026-09-03 | Pick a current id; catalog providers retire models without notice |","hierarchy":{"lvl0":"Getting Started","lvl1":"Inception Labs Provider Guide","lvl2":"Troubleshooting","lvl3":""}},
|
|
5845
5938
|
{"objectID":"1f495e1867e86b99eab1619314909fddc3a3bd14172aa094a059683a4daac6c3","title":"See also","url":"/docs/getting-started/providers/inception-labs#see-also","content":"Provider setup overview\nAll providers\nTier-2 onboarding — how this provider's JSON becomes a working integration\nProvider feature compatibility","hierarchy":{"lvl0":"Getting Started","lvl1":"Inception Labs Provider Guide","lvl2":"See also","lvl3":""}},
|
|
5939
|
+
{"objectID":"65b9dc3932dc6d3ab5c8b97a4dd732baa260a99460b6757ae1c5fc9c9a1fa1f0","title":"Inco Provider Guide","url":"/docs/getting-started/providers/inco","content":"Inco Provider Guide\n\nInco is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/inco.json) rather than hand-written code. That\nfile is the source of truth for everything on this page.\n\nVerification status: this entry is docs- and roster-verified, not yet\nlive-verified. Every field below was built from Inco's own published\ndocumentation (https://platform.inco.ai/docs) and an unauthenticated\nGET https://api.inco.ai/v1/models — no API key was used or obtained.\nCapabilities that can only be proven with a working key (tool calling,\nstructured output, vision replies, the exact 401/404/429 error bodies) are\nleft conservative (false) or undocumented until a live capability sweep\nruns. See Live verification below.\n\nKey Facts\nProvider id: inco\nProtocol: OpenAI-compatible (POST /v1/chat/completions); the vendor's\n docs also describe an Anthropic-SDK-shaped path at the host root\n (https://api.inco.ai), not used by this entry\nBase URL: https://api.inco.ai/v1\nDefault model: glm-5.3 (editorial pick — Inco's docs name no\n recommended/default model; chosen for its documented reasoning_effort\n support and mid-range price among the roster)\nModels in catalog: 10\nStreaming: supported (SSE, per vendor docs)\nTool calling: not documented by the vendor — left false until proven\nStructured output: not documented by the vendor — left false until\n proven\nEmbeddings: not documented\nBilling: no free tier — strictly prepaid, pay-per-token; a zero balance\n returns HTTP 402 (credit_balance_exhausted) until you top up\nKey format: sk-inco-...\nAccess: currently waitlist-gated — sign-up is not self-serve\n\nQuick Start\nGet an API key\nVisit: https://platform.inco.ai/waitlist and request access — Inco is\n currently waitlist-gated, not open signup; existing users sign in at\n https://platform.inco.ai/sign-in\nOnce approved, create an API key on the dashboard's Keys page\n (https://platform.inco.ai/keys) — it is shown in full only once and\n starts with sk-inco-\nAdd prepaid credit before use: billing is strictly pay-per-token with no\n free tier, and a zero balance returns HTTP 402\n (credit_balance_exhausted) until you top up\nSet INCO_API_KEY in your .env file\nConfigure\nUse it\n\nPer-request credentials work as they do for every provider:\n\nModels\n\n| Model | Context | Vision | $/M in · out (cached) | Notes |\n| -------------------------- | ------- | ------ | ---------------------- | ------------------------------------------------------------------------------------------------------------------------ |\n| glm-5.3 ⭐ | 1M | no | $1.40 / $4.40 ($0.26) | Default (editorial pick). Standard tier, 744B params, exposes reasoning_effort. |\n| deepseek-v4.1-flash | 1M | no | $0.30 / $1.20 ($0.006) | Standard tier, 552B params, reasoning_effort. Fallback. |\n| kimi-k3 | 1M | no | $3.00 / $15.00 ($0.30) | Standard tier, 2.8T params (MoE), reasoning_effort. Fallback. |\n| glm-5.3-flash | 1M | no | $0.15 / $0.50 ($0.03) | Standard tier, 320B params. Fallback. |\n| minimax-m3 | 1M | yes | $0.30 / $1.20 ($0.06) | Standard tier, 428B params, reasoning_effort. Vision per the catalog's modalities field — not live-probed. Fallback. |\n| glm-5.3:fast | 1M | no | $2.80 / $8.80 ($0.52) | Fast-tier sibling of the default; ~2x price for lower latency. Fallback. |\n| kimi-k3:fast | 1M | no | $6.00 / $30.00 ($0.60) | Fast-tier sibling of kimi-k3. Fallback. |\n| deepseek-v4.1-flash:fast | 1M | yes | $0.60 / $2.40 ($0.012) | Fast-tier sibling; vision per modalities (the non-fast id has no modalities field) — not live-probed. Fallback. |\n| glm-5.3-flash:fast | 1M | yes | $0.15 / $0.50 ($0.03) | Fast-tier sibling; vision per modalities (the non-fast id has no modalities field) — not live-probed. Fallback. |\n| minimax-m3:fast | 1M | yes | $0.60 / $2.40 ($0.12) | Fast-tier sibling of minimax-m3, same vision claim. Fallback. |\n\nContext window shown is the documented context_length of 1,048,576 tokens\nfor every model (from the live, unauthenticated GET /v1/models response,\n2026-09-28). Inco's catalog does not publish a separate per-request output\ntoken ceiling, so defaultMaxOutputTokens uses a conservative generic\ndefault (4,096) rather","hierarchy":{"lvl0":"Getting Started","lvl1":"Inco Provider Guide","lvl2":"","lvl3":""}},
|
|
5940
|
+
{"objectID":"c36795cb365b6ebed5016357ea5dc90642ea9a95760a01dced0fb601305cdf0e","title":"Inco Provider Guide","url":"/docs/getting-started/providers/inco#inco-provider-guide","content":"Inco is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/inco.json) rather than hand-written code. That\nfile is the source of truth for everything on this page.\n\nVerification status: this entry is docs- and roster-verified, not yet\nlive-verified. Every field below was built from Inco's own published\ndocumentation (https://platform.inco.ai/docs) and an unauthenticated\nGET https://api.inco.ai/v1/models — no API key was used or obtained.\nCapabilities that can only be proven with a working key (tool calling,\nstructured output, vision replies, the exact 401/404/429 error bodies) are\nleft conservative (false) or undocumented until a live capability sweep\nruns. See Live verification below.","hierarchy":{"lvl0":"Getting Started","lvl1":"Inco Provider Guide","lvl2":"Inco Provider Guide","lvl3":""}},
|
|
5941
|
+
{"objectID":"6e8cd876e7d09a13939dc02b0a97c644367f684943bfbf984edef9d5e9e93c22","title":"Key Facts","url":"/docs/getting-started/providers/inco#key-facts","content":"Provider id: inco\nProtocol: OpenAI-compatible (POST /v1/chat/completions); the vendor's\n docs also describe an Anthropic-SDK-shaped path at the host root\n (https://api.inco.ai), not used by this entry\nBase URL: https://api.inco.ai/v1\nDefault model: glm-5.3 (editorial pick — Inco's docs name no\n recommended/default model; chosen for its documented reasoning_effort\n support and mid-range price among the roster)\nModels in catalog: 10\nStreaming: supported (SSE, per vendor docs)\nTool calling: not documented by the vendor — left false until proven\nStructured output: not documented by the vendor — left false until\n proven\nEmbeddings: not documented\nBilling: no free tier — strictly prepaid, pay-per-token; a zero balance\n returns HTTP 402 (credit_balance_exhausted) until you top up\nKey format: sk-inco-...\nAccess: currently waitlist-gated — sign-up is not self-serve","hierarchy":{"lvl0":"Getting Started","lvl1":"Inco Provider Guide","lvl2":"Key Facts","lvl3":""}},
|
|
5942
|
+
{"objectID":"1437e52d7b08aeb98bdb1cff44a1530c5e4f6085140c67b4dbfd0674ed7c33c0","title":"1. Get an API key","url":"/docs/getting-started/providers/inco#1-get-an-api-key","content":"Visit: https://platform.inco.ai/waitlist and request access — Inco is\n currently waitlist-gated, not open signup; existing users sign in at\n https://platform.inco.ai/sign-in\nOnce approved, create an API key on the dashboard's Keys page\n (https://platform.inco.ai/keys) — it is shown in full only once and\n starts with sk-inco-\nAdd prepaid credit before use: billing is strictly pay-per-token with no\n free tier, and a zero balance returns HTTP 402\n (credit_balance_exhausted) until you top up\nSet INCO_API_KEY in your .env file","hierarchy":{"lvl0":"Getting Started","lvl1":"Inco Provider Guide","lvl2":"1. Get an API key","lvl3":""}},
|
|
5943
|
+
{"objectID":"6a89a8130a46e2cdc06e690975da17d840c21cbe8dcf7dc6b7b619f3dae2e1ef","title":"3. Use it","url":"/docs/getting-started/providers/inco#3-use-it","content":"`bash","hierarchy":{"lvl0":"Getting Started","lvl1":"Inco Provider Guide","lvl2":"3. Use it","lvl3":""}},
|
|
5944
|
+
{"objectID":"6ef6517d0be81c7037a2be8fce71fd62601c7fad185c0ce5d15cb602d744fc27","title":"CLI","url":"/docs/getting-started/providers/inco#cli","content":"npx @juspay/neurolink generate \"Hello\" --provider inco\ntypescript\nawait neurolink.generate({\n input: { text: \"Hello\" },\n provider: \"inco\",\n credentials: { inco: { apiKey: process.env.INCOAPIKEY } },\n});\n`","hierarchy":{"lvl0":"Getting Started","lvl1":"Inco Provider Guide","lvl2":"CLI","lvl3":""}},
|
|
5945
|
+
{"objectID":"7809e88083098b0348189a3373ea191780441286c19d5ad57613c46ed1c92f73","title":"Models","url":"/docs/getting-started/providers/inco#models","content":"| Model | Context | Vision | $/M in · out (cached) | Notes |\n| -------------------------- | ------- | ------ | ---------------------- | ------------------------------------------------------------------------------------------------------------------------ |\n| glm-5.3 ⭐ | 1M | no | $1.40 / $4.40 ($0.26) | Default (editorial pick). Standard tier, 744B params, exposes reasoning_effort. |\n| deepseek-v4.1-flash | 1M | no | $0.30 / $1.20 ($0.006) | Standard tier, 552B params, reasoning_effort. Fallback. |\n| kimi-k3 | 1M | no | $3.00 / $15.00 ($0.30) | Standard tier, 2.8T params (MoE), reasoning_effort. Fallback. |\n| glm-5.3-flash | 1M | no | $0.15 / $0.50 ($0.03) | Standard tier, 320B params. Fallback. |\n| minimax-m3 | 1M | yes | $0.30 / $1.20 ($0.06) | Standard tier, 428B params, reasoning_effort. Vision per the catalog's modalities field — not live-probed. Fallback. |\n| glm-5.3:fast | 1M | no | $2.80 / $8.80 ($0.52) | Fast-tier sibling of the default; ~2x price for lower latency. Fallback. |\n| kimi-k3:fast | 1M | no | $6.00 / $30.00 ($0.60) | Fast-tier sibling of kimi-k3. Fallback. |\n| deepseek-v4.1-flash:fast | 1M | yes | $0.60 / $2.40 ($0.012) | Fast-tier sibling; vision per modalities (the non-fast id has no modalities field) — not live-probed. Fallback. |\n| glm-5.3-flash:fast | 1M | yes | $0.15","hierarchy":{"lvl0":"Getting Started","lvl1":"Inco Provider Guide","lvl2":"Models","lvl3":""}},
|
|
5946
|
+
{"objectID":"25f1d3278b1488298f5b9109f01c8dde6c5435b8f5e4173ccf44d3e52552381a","title":"Live verification still needed","url":"/docs/getting-started/providers/inco#live-verification-still-needed","content":"Tier-2 onboarding normally requires an authenticated roster probe, an auth\nrejection probe, and a live capability sweep\n(docs/provider-integration/tiers/tier-2-catalog-entry.md). This entry was\nbuilt credential-free — no signup, no key, no POST request to Inco — so\nnone of that could run yet:\n\n| Probe | Result |\n| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Roster | Done. Unauthenticated GET /v1/models, HTTP 200, 2026-09-28, 10 models — matches the vendor docs' claim that the catalog \"can be fetched without a key.\" |\n| Docs cross-check | Done. https://platform.inco.ai/docs confirms the OpenAI Chat Completions wire shape, Authorization: Bearer sk-inco-... auth, and the documented error code values (invalid_api_key, key_expired, model_not_found, rate_limit_exceeded, spend_limit_exceeded, credit_balance_exhausted) used to build errorRules — no literal JSON error bodies were shown on the page, only the code table. |\n| A","hierarchy":{"lvl0":"Getting Started","lvl1":"Inco Provider Guide","lvl2":"Live verification still needed","lvl3":""}},
|
|
5947
|
+
{"objectID":"05f582110af48060e03a60a8669d5104da1b95217c289cebbc9e838740f646d8","title":"Troubleshooting","url":"/docs/getting-started/providers/inco#troubleshooting","content":"| Symptom | Cause | Fix |\n| -------------------------------- | -------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |\n| Invalid Inco API key | INCO_API_KEY unset, wrong, or expired | Check the key on the dashboard's Keys page (https://platform.inco.ai/keys) |\n| Model not found | The roster changed since 2026-09-28, or the id is mistyped | Pick a current id from the unauthenticated GET /v1/models roster |\n| HTTP 402 on every request | Prepaid balance is empty (credit_balance_exhausted) — no free tier | Top up credit on the dashboard before retrying |\n| HTTP 429, spend_limit_exceeded | Your account's monthly spending cap was hit | Raise the cap on the Limits page, or wait for the next billing cycle |\n| HTTP 429, rate_limit_exceeded | Per-minute request limit hit | Back off and retry; check the x-inco-ratelimit-scope response header (quota vs upstream) |\n| Can't sign up | Access is currently gated by a waitlist, not open signup | Join the waitlist at https://platform.inco.ai/waitlist |","hierarchy":{"lvl0":"Getting Started","lvl1":"Inco Provider Guide","lvl2":"Troubleshooting","lvl3":""}},
|
|
5948
|
+
{"objectID":"1c1fbb4b7a4dfb07f32bac79e9f5e4ceb900107e47960af3df8300fca99f1d04","title":"See also","url":"/docs/getting-started/providers/inco#see-also","content":"Provider setup overview\nAll providers\nTier-2 onboarding — how this provider's JSON becomes a working integration\nProvider feature compatibility","hierarchy":{"lvl0":"Getting Started","lvl1":"Inco Provider Guide","lvl2":"See also","lvl3":""}},
|
|
5846
5949
|
{"objectID":"7c072c8c78d8d180a49a16614547286fe7383a263bca00df6636171ffe874cc5","title":"AI Provider Guides","url":"/docs/getting-started/providers","content":"AI Provider Guides\n\nComplete setup guides for all supported AI providers.\n\n🆓 Free Tier Providers\n\nStart with zero cost using these free-tier options:\n\nHugging Face\n\n100,000+ open-source models\n✅ Free inference API\n🌍 Largest model collection\n🔓 Fully open source\n📊 Models by task: chat, classification, NER, summarization\n\nSetup Guide →\n\nGoogle AI Studio\n\nGemini models with generous free tier\n✅ 1,500 requests/day free\n⚡ Fast Gemini 2.0 Flash\n🎯 15 requests/minute\n💰 Pay-as-you-go option\n\nSetup Guide →\n\n🤖 Direct AI Providers\n\nAccess leading AI models directly from their creators:\n\nOpenAI\n\nGPT-5.4, GPT-5, GPT-4o, and o-series reasoning models\n🧠 GPT-5.4 and GPT-5 series flagships with up to 400K context\n👁️ GPT-4o multimodal (vision) and o3 / o3-pro / o4-mini reasoning models\n🔧 Full tool/function calling and embeddings support\n🔑 Auth: API Key (OPENAI_API_KEY)\n\nSetup Guide →\n\nAnthropic\n\nClaude models with API key or OAuth authentication\n🧠 Claude 4.5 Opus/Sonnet/Haiku, Claude 4.0 Opus/Sonnet\n🔐 API key or OAuth (Pro/Max subscription)\n💭 Extended thinking for deep reasoning\n📄 200K context window, multimodal support\n\nSetup Guide →\n\n🏢 Enterprise Providers\n\nProduction-grade providers for enterprise deployments:\n\nAzure OpenAI\n\nEnterprise AI with Microsoft Azure\n🔒 SOC2, HIPAA, ISO 27001 compliant\n🌍 Multi-region deployment (30+ regions)\n🛡️ Private endpoints with VNet\n💼 Enterprise SLAs\n\nSetup Guide →\n\nGoogle Vertex AI\n\nGoogle Cloud ML platform\n☁️ GCP integration\n🔐 IAM, VPC, service accounts\n🌏 Global deployment\n🎯 Gemini, PaLM, Codey models\n\nSetup Guide →\n\nAWS Bedrock\n\nServerless AI on AWS\n📦 13 foundation models (Claude, Llama, Mistral)\n🔐 IAM, VPC integration\n🌍 Multi-region (us-east-1, eu-west-1, ap-southeast-1)\n💰 Pay-per-use pricing\n\nSetup Guide →\n\nAWS SageMaker\n\nCustom model endpoints on AWS SageMaker infrastructure\n🎯 Deploy fine-tuned, Hugging Face, or JumpStart models\n🔐 IAM, VPC, PrivateLink, KMS encryption\n⚠️ generate() only — streaming is not implemented\n💰 Full control over instance types and autoscaling\n\nSetup Guide →\n\n🌍 Compliance-Focused\n\nProviders with specific compliance certifications:\n\nMistral AI\n\nEuropean AI with GDPR compliance\n🇪🇺 EU data residency\n✅ GDPR compliant by default\n🔓 Open source models\n💰 Cost-effective\n\nSetup Guide →\n\n🧑💻 Hosted Inference Providers\n\nAccess frontier models via hosted cloud inference APIs:\n\nDeepSeek\n\ndeepseek-chat (V3) and deepseek-reasoner (R1)\n🧠 deepseek-chat — high-quality general chat at low cost\n💭 deepseek-reasoner — R1 chain-of-thought reasoning model\n🔑 API key from platform.deepseek.com\n🔄 Aliases: ds\n\nSetup Guide →\n\nNVIDIA NIM\n\n400+ models via NVIDIA's hosted and self-hosted inference platform\n🚀 Llama 3.3 70B Instruct (default), Mistral, Nemotron, and 400+ catalog models\n🔧 NIM-specific extras: topk, minp, repetitionpenalty, reasoningbudget\n🔑 API key from build.nvidia.com\n🖥️ Also supports self-hosted NIM endpoints via NVIDIA_NIM_BASE_URL\n🔄 Aliases: nim, nvidia\n\nSetup Guide →\n\nxAI Grok\n\nGrok 3 / 3 Mini / 2 / 2 Vision via api.x.ai\n🧠 Grok 3 — flagship reasoning + coding\n⚡ Grok 3 Mini — faster + cheaper\n👁️ Grok 2 Vision — multimodal text + images\n🔑 API key from console.x.ai\n🔄 Aliases: grok\n\nSetup Guide →\n\nGroq\n\nSub-100ms inference via LPU acceleration\n⚡ \\\n\nStrategy 2: Multi-Region Enterprise\n\nStrategy 3: GDPR Compliance\n\nNext Steps\nChoose a provider based on your requirements (free tier, compliance, region)\nFollow the setup guide to get your API key\nConfigure NeuroLink with the provider\nTest the integration with a simple request\nAdd failover for production reliability\n\nRelated Documentation\nMulti-Provider Failover - High availability patterns\nCost Optimization - Reduce costs by 80-95%\nCompliance & Security - GDPR, SOC2, HIPAA\nLoad Balancing - Distribution strategies\nVoice Providers Comparison - TTS, STT, and Realtime capability matrix\nVoice Provider Selection - Choosing the right voice provider","hierarchy":{"lvl0":"Getting Started","lvl1":"AI Provider Guides","lvl2":"","lvl3":""}},
|
|
5847
5950
|
{"objectID":"61fd5d334fc9a01ce08b9d06d237d42e3bec615a6af167e9f21285e6602a5cb3","title":"AI Provider Guides","url":"/docs/getting-started/providers#ai-provider-guides","content":"Complete setup guides for all supported AI providers.","hierarchy":{"lvl0":"Getting Started","lvl1":"AI Provider Guides","lvl2":"AI Provider Guides","lvl3":""}},
|
|
5848
5951
|
{"objectID":"186f620ef7eedd0c1191700ef81e03911662a949091bd47dbe9aae5146728090","title":"🆓 Free Tier Providers","url":"/docs/getting-started/providers#-free-tier-providers","content":"Start with zero cost using these free-tier options:","hierarchy":{"lvl0":"Getting Started","lvl1":"AI Provider Guides","lvl2":"🆓 Free Tier Providers","lvl3":""}},
|
|
@@ -5930,6 +6033,16 @@
|
|
|
5930
6033
|
{"objectID":"1fd54b7bd8b859f205bf6cf9129bd4ac0327abfe82d5cad61d3325ee6a956583","title":"Set up environment variables","url":"/docs/getting-started/providers#set-up-environment-variables","content":"# Use with automatic failover\n npx @juspay/neurolink generate \"Hello world\" \\\n --provider google-ai\n `","hierarchy":{"lvl0":"Getting Started","lvl1":"AI Provider Guides","lvl2":"Set up environment variables","lvl3":""}},
|
|
5931
6034
|
{"objectID":"89a39618b88769256a1020966356b41f3624319b91e06d6edd2d2b3cb5bded16","title":"Next Steps","url":"/docs/getting-started/providers#next-steps","content":"Choose a provider based on your requirements (free tier, compliance, region)\nFollow the setup guide to get your API key\nConfigure NeuroLink with the provider\nTest the integration with a simple request\nAdd failover for production reliability","hierarchy":{"lvl0":"Getting Started","lvl1":"AI Provider Guides","lvl2":"Next Steps","lvl3":""}},
|
|
5932
6035
|
{"objectID":"0e7f272b4bfc0a1668bee0e75979b016e53df6bcfb7ce8c8d90e4b4903216b58","title":"Related Documentation","url":"/docs/getting-started/providers#related-documentation","content":"Multi-Provider Failover - High availability patterns\nCost Optimization - Reduce costs by 80-95%\nCompliance & Security - GDPR, SOC2, HIPAA\nLoad Balancing - Distribution strategies\nVoice Providers Comparison - TTS, STT, and Realtime capability matrix\nVoice Provider Selection - Choosing the right voice provider","hierarchy":{"lvl0":"Getting Started","lvl1":"AI Provider Guides","lvl2":"Related Documentation","lvl3":""}},
|
|
6036
|
+
{"objectID":"70d23c7d80da12da1ca2a140c025b41a16a8eaf9cce14bc55903afc1ae37bf92","title":"Inference.net Provider Guide","url":"/docs/getting-started/providers/inference-net","content":"Inference.net Provider Guide\n\nInference.net is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/inference-net.json) rather than hand-written code.\nThat file is the source of truth for everything on this page.\n\nVerification status: this entry is docs- and roster-verified, not yet\nlive-verified. It was onboarded credential-free — built entirely from the\nvendor's public documentation and an unauthenticated GET /v1/models call,\nwith no API key ever created or used. No chat/stream/tool/structured-output\nrequest has been made against the live API yet. evidence.liveMatrix is\nnull until someone runs the live capability sweep in\nLive verification\nwith a real key.\n\nKey Facts\nProvider id: inference-net\nProtocol: OpenAI-compatible (/chat/completions), Authorization: Bearer <key>\nBase URL: https://api.inference.net/v1\nDefault model: glm-5.2 — the exact model used in the vendor's own API\n quickstart code sample\nModels in catalog: 8 (curated slice of a live 63-model roster spanning\n Claude, GPT, Gemini, DeepSeek, GLM, Kimi, Llama, Qwen, Gemma, Nemotron and\n Inference.net's own Schematron models)\nStreaming: documented (stream: true in the quickstart example)\nTool calling: documented (tools request parameter, \"function\n definitions for function calling\") — not live-probed\nStructured output: documented (response_format accepts json_object\n or a JSON schema) — not live-probed\nEmbeddings: not documented\nBilling: free-tier — pay-as-you-go, $0-usage entry tier (1M gateway\n requests/month, 30 req/min)\nKey format: none declared\nEnv var: INFERENCE_API_KEY (the vendor's own docs use this exact name\n in their quickstart code, which is why the catalog sets wire.envOverrides\n instead of the INFERENCE_NET_API_KEY name NeuroLink's naming convention\n would otherwise derive from the inference-net provider id)\n\nQuick Start\nGet an API key\nVisit: https://inference.net/register/ and sign up\nCreate an Inference.net project API key from the dashboard (this is the\n gateway key — do not confuse it with a third-party provider key used only\n for the separate \"proxy mode\")\nNew accounts start on a pay-as-you-go, $0-usage tier; confirm current\n terms at https://inference.net/pricing before heavy use\nSet INFERENCE_API_KEY in your .env file\nConfigure\nUse it\n\nPer-request credentials work as they do for every provider:\n\nModels\n\n| Model | Context | Vision | $/M in · out · cache | Notes |\n| ------------------------ | ------- | ------ | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------- |\n| glm-5.2 ⭐ | 1M | no | $1.30 / $4.40 (cached $0.20) | Recommended — used in the vendor's own quickstart request example; native Zhipu GLM-5.2, hosted directly by Inference.net. |\n| glm-5.3 | 1M | no | $0.90 / $3.00 (cached $0.15) | Newer GLM generation; one of the few roster models whose live entry lists chat + responses + messages endpoint support. |\n| glm-5.3-flash | 1M | yes | $0.09 / $0.28 (cached $0.02) | Cheapest model in this entry; the only one of these 8 whose live roster entry documents image + video input. |\n| llama-3.3-70b-instruct | 131K | no | $0.13 / $0.40 | Meta Llama 3.3 70B Instruct, open-weight; widely-recognized baseline fallback. |\n| deepseek-v3.2 | 164K | no | $0.70 / $2.00 (cached $0.35) | DeepSeek V3.2, open-weight fallback. |\n| gpt-4.1-mini | 1M | yes | $0.40 / $1.60 (cached $0.10) | OpenAI GPT-4.1 mini, reachable through Inference.net's gateway. |\n| gemini-2.5-flash | 1M | yes | $0.30 / $2.50 (cached $0.03) | Google Gemini 2.5 Flash, reachable through the gateway. |\n| claude-haiku-4-5 | 200K | yes | $1.00 / $5.00 (cached $0.10) | Anthropic Claude Haiku 4.5, reachable through the gateway; Claude-family entries list only the \"messages\" endpoint. |\n\nContext, pricing and vision (input_modalities) for every row above were read\ndirectly from the live, unauthenticated GET https://api.inference.net/v1/models\nresponse on 2026-09-28 (HTTP 200, 63 models total on the roster). This catalog\nentry lists a curated 8-model slice of that roster, not all 63 — the full list\nspans Claude, GPT, Gemini, DeepSeek, GLM, Kimi, Llama, Qwen, Gemma, Nemotron\nand Inference.net's own Schematron structured-extraction models.\n\nFallback order when the default is unavailable: glm-5.3 →\nglm-5.3-flash → llama-3.3-","hierarchy":{"lvl0":"Getting Started","lvl1":"Inference.net Provider Guide","lvl2":"","lvl3":""}},
|
|
6037
|
+
{"objectID":"59a2f994d2ab3b0167b2fefce06e2424c87b53df12b67a71f6da2907383a15a4","title":"Inference.net Provider Guide","url":"/docs/getting-started/providers/inference-net#inferencenet-provider-guide","content":"Inference.net is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/inference-net.json) rather than hand-written code.\nThat file is the source of truth for everything on this page.\n\nVerification status: this entry is docs- and roster-verified, not yet\nlive-verified. It was onboarded credential-free — built entirely from the\nvendor's public documentation and an unauthenticated GET /v1/models call,\nwith no API key ever created or used. No chat/stream/tool/structured-output\nrequest has been made against the live API yet. evidence.liveMatrix is\nnull until someone runs the live capability sweep in\nLive verification\nwith a real key.","hierarchy":{"lvl0":"Getting Started","lvl1":"Inference.net Provider Guide","lvl2":"Inference.net Provider Guide","lvl3":""}},
|
|
6038
|
+
{"objectID":"ab89d479cd65171381171288eaa11e58c4b25f9cea16d64458a887ffab228a5b","title":"Key Facts","url":"/docs/getting-started/providers/inference-net#key-facts","content":"Provider id: inference-net\nProtocol: OpenAI-compatible (/chat/completions), Authorization: Bearer <key>\nBase URL: https://api.inference.net/v1\nDefault model: glm-5.2 — the exact model used in the vendor's own API\n quickstart code sample\nModels in catalog: 8 (curated slice of a live 63-model roster spanning\n Claude, GPT, Gemini, DeepSeek, GLM, Kimi, Llama, Qwen, Gemma, Nemotron and\n Inference.net's own Schematron models)\nStreaming: documented (stream: true in the quickstart example)\nTool calling: documented (tools request parameter, \"function\n definitions for function calling\") — not live-probed\nStructured output: documented (response_format accepts json_object\n or a JSON schema) — not live-probed\nEmbeddings: not documented\nBilling: free-tier — pay-as-you-go, $0-usage entry tier (1M gateway\n requests/month, 30 req/min)\nKey format: none declared\nEnv var: INFERENCE_API_KEY (the vendor's own docs use this exact name\n in their quickstart code, which is why the catalog sets wire.envOverrides\n instead of the INFERENCE_NET_API_KEY name NeuroLink's naming convention\n would otherwise derive from the inference-net provider id)","hierarchy":{"lvl0":"Getting Started","lvl1":"Inference.net Provider Guide","lvl2":"Key Facts","lvl3":""}},
|
|
6039
|
+
{"objectID":"ccd2e07c3a5dd5c1ea91cbe639ca75357550a09c8e385c7a0481110a45c33da3","title":"1. Get an API key","url":"/docs/getting-started/providers/inference-net#1-get-an-api-key","content":"Visit: https://inference.net/register/ and sign up\nCreate an Inference.net project API key from the dashboard (this is the\n gateway key — do not confuse it with a third-party provider key used only\n for the separate \"proxy mode\")\nNew accounts start on a pay-as-you-go, $0-usage tier; confirm current\n terms at https://inference.net/pricing before heavy use\nSet INFERENCE_API_KEY in your .env file","hierarchy":{"lvl0":"Getting Started","lvl1":"Inference.net Provider Guide","lvl2":"1. Get an API key","lvl3":""}},
|
|
6040
|
+
{"objectID":"cf0deebbfcc8e0612314e1baba0102edebf9229fba563be72e00a9141f02de57","title":"3. Use it","url":"/docs/getting-started/providers/inference-net#3-use-it","content":"`bash","hierarchy":{"lvl0":"Getting Started","lvl1":"Inference.net Provider Guide","lvl2":"3. Use it","lvl3":""}},
|
|
6041
|
+
{"objectID":"9de54c972d08d6cbd7a1dd1219c37a16e3f0fb2012a689858a7e8522e2dae4b0","title":"CLI","url":"/docs/getting-started/providers/inference-net#cli","content":"npx @juspay/neurolink generate \"Hello\" --provider inference-net\ntypescript\nawait neurolink.generate({\n input: { text: \"Hello\" },\n provider: \"inference-net\",\n credentials: { \"inference-net\": { apiKey: process.env.INFERENCEAPIKEY } },\n});\n`","hierarchy":{"lvl0":"Getting Started","lvl1":"Inference.net Provider Guide","lvl2":"CLI","lvl3":""}},
|
|
6042
|
+
{"objectID":"a3d1cafc0fef5a1aefea208ce6186c3d9e195559324a79c61c48f1020cd0e9ff","title":"Models","url":"/docs/getting-started/providers/inference-net#models","content":"| Model | Context | Vision | $/M in · out · cache | Notes |\n| ------------------------ | ------- | ------ | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------- |\n| glm-5.2 ⭐ | 1M | no | $1.30 / $4.40 (cached $0.20) | Recommended — used in the vendor's own quickstart request example; native Zhipu GLM-5.2, hosted directly by Inference.net. |\n| glm-5.3 | 1M | no | $0.90 / $3.00 (cached $0.15) | Newer GLM generation; one of the few roster models whose live entry lists chat + responses + messages endpoint support. |\n| glm-5.3-flash | 1M | yes | $0.09 / $0.28 (cached $0.02) | Cheapest model in this entry; the only one of these 8 whose live roster entry documents image + video input. |\n| llama-3.3-70b-instruct | 131K | no | $0.13 / $0.40 | Meta Llama 3.3 70B Instruct, open-weight; widely-recognized baseline fallback. |\n| deepseek-v3.2 | 164K | no | $0.70 / $2.00 (cached $0.35) | DeepSeek V3.2, open-weight fallback. |\n| gpt-4.1-mini | 1M | yes | $0.40 / $1.60 (cached $0.10) | OpenAI GPT-4.1 mini, reachable through Inference.net's gateway. |\n| gemini-2.5-flash | 1M | yes | $0.30 / $2.50 (cached $0.03) | Google Gemini 2.5 Flash, reachable through the gateway. |\n| claude-haiku-4-5 | 200K | yes | $1.00 / $5.00 (cached $0.10) | Anthropic Claude Haiku 4.5, reachable through the gateway; Claude-family entries list only the \"messag","hierarchy":{"lvl0":"Getting Started","lvl1":"Inference.net Provider Guide","lvl2":"Models","lvl3":""}},
|
|
6043
|
+
{"objectID":"b544b3272bad049e5d014773bef3541129e04248ec4df8cb7966ee6de146e634","title":"Verification status","url":"/docs/getting-started/providers/inference-net#verification-status","content":"Tier-2 onboarding requires evidence before a provider is accepted, and\npnpm run verify:provider-onboarding gates it in CI. This is what the\ncatalog records for Inference.net today:\n\n| Probe | Result |\n| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Roster | unauthenticated GET /v1/models, HTTP 200, 63 models, 2026-09-28. No API key was created or used. |\n| Auth rejection | Not probed — a real or invalid-key request would be an authenticated/POST call, which credential-free onboarding does not make. errorRules declares a conventional HTTP 401 → authentication mapping based on the vendor's \"OpenAI-compatible\" framing, not a live 401. |\n| Capability probes | Not run. tools and response_format are asserted only because the vendor's own API reference documents them as request parameters (https://docs.inference.net/api/api-quickstart, retrieved 2026-09-28); no combined tools+schema request was ever sent, so structuredOutputWithTools and toolsWithStreaming are both false. |\n| Live capability sweep | Not run. evidence.liveMa","hierarchy":{"lvl0":"Getting Started","lvl1":"Inference.net Provider Guide","lvl2":"Verification status","lvl3":""}},
|
|
6044
|
+
{"objectID":"2661652920e0fdfc0b8f1ee789e6a4c5972136be40b7ccbb5f6422370f840b67","title":"Troubleshooting","url":"/docs/getting-started/providers/inference-net#troubleshooting","content":"| Symptom | Cause | Fix |\n| --------------------------------------- | ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Invalid Inference.net API key | INFERENCE_API_KEY unset or wrong | Check the key in the Inference.net dashboard: https://inference.net/register/ |\n| Model not found | The roster changed since 2026-09-28 | Pick a current id from the live GET /v1/models roster |\n| Key rejected even though it looks right | The gateway key and a provider key (for \"proxy mode\") got swapped | Only the Inference.net project key goes in INFERENCE_API_KEY; a provider key (e.g. an OpenAI key) is only for the separate x-inference-provider-api-key proxy-mode header, not used by this catalog entry |","hierarchy":{"lvl0":"Getting Started","lvl1":"Inference.net Provider Guide","lvl2":"Troubleshooting","lvl3":""}},
|
|
6045
|
+
{"objectID":"c53ad70d810ef146009033be519e00196b18d9deeda74a35fa1fe71ea9bfa946","title":"See also","url":"/docs/getting-started/providers/inference-net#see-also","content":"Provider setup overview\nAll providers\nTier-2 onboarding — how this provider's JSON becomes a working integration\nProvider feature compatibility","hierarchy":{"lvl0":"Getting Started","lvl1":"Inference.net Provider Guide","lvl2":"See also","lvl3":""}},
|
|
5933
6046
|
{"objectID":"8143ceb09c1d3a510880a09b8385643f95af0c712e3fb243398b4a46ce94bc46","title":"io.net Intelligence Provider Guide","url":"/docs/getting-started/providers/io-intelligence","content":"io.net Intelligence Provider Guide\n\nio.net Intelligence is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/io-intelligence.json) rather than hand-written code. That\nfile is the source of truth for everything on this page.\n\nKey Facts\nProvider id: io-intelligence (aliases: io-net)\nProtocol: OpenAI-compatible (/chat/completions)\nBase URL: https://api.intelligence.io.solutions/api/v1\nDefault model: meta-llama/Llama-3.3-70B-Instruct\nModels in catalog: 34\nStreaming: supported\nTool calling: supported (native)\nStructured output: supported\nEmbeddings: not supported\nBilling: free-tier\n\nQuick Start\nGet an API key\nVisit: https://ai.io.net/\nSign in or create an io.net account\nCreate an API key for your project in the console\nSet IO_INTELLIGENCE_API_KEY in your .env file\nConfigure\nUse it\n\nPer-request credentials work as they do for every provider:\n\nModels\n\n| Model | Context | Vision | $/M in · out | Notes |\n| ---------------------------------------------------- | ------- | ------ | -------------------- | --------------------------------------------------- |\n| zai-org/GLM-5.3-Flash | 256K | yes | $0.147997 / $0.49399 | Z.ai: GLM 5.3 Flash |\n| zai-org/GLM-5.3 | 256K | no | $1.39 / $4.4 | Z.ai: GLM 5.3 |\n| Qwen/Qwen3.8-27B | 64K | yes | $0.39 / $2.99 | Qwen: Qwen3.8 27B |\n| deepseek-ai/DeepSeek-V4-Flash-0731 | 256K | no | $0.196 / $0.534 | DeepSeek: DeepSeek V4 Flash 0731 |\n| moonshotai/Kimi-K3 | 1M | yes | $3.18 / $15.9 | MoonshotAI: Kimi K3 |\n| XiaomiMiMo/MiMo-V2.5 | 1M | no | $0.1934 / $0.6268 | Xiaomi: MiMo-V2.5 |\n| zai-org/GLM-5.2 | 256K | no | $1.552 / $4.884 | Z.ai: GLM 5.2 |\n| moonshotai/Kimi-K2.7-Code | 256K | yes | $1.026 / $4.53 | MoonshotAI: Kimi K2.7 Code |\n| Qwen/Qwen3.6-35B-A3B | 256K | yes | $0.1872 / $1.24675 | Qwen: Qwen3.6 35B A3B |\n| Qwen/Qwen3.6-27B | 32K | yes | $0.399 / $3.19 | Qwen: Qwen3.6 27B |\n| MiniMaxAI/MiniMax-M2.7 | 256K | no | $0.426 / $1.62 | MiniMaxAI: MiniMax M2.7 |\n| deepseek-ai/DeepSeek-V4-Flash | 32K | no | $0.199 / $0.512 | DeepSeek: DeepSeek V4 Flash |\n| deepseek-ai/DeepSeek-V4-Pro | 1M | no | $1.618 / $3.288 | DeepSeek: DeepSeek V4 Pro |\n| moonshotai/Kimi-K2.6 | 256K | yes | $0.76744 / $3.43436 | MoonshotAI: Kimi K2.6 |\n| zai-org/GLM-5.1 | 198K | no | $1.29 / $4.22 | Z.ai: GLM 5.1 |\n| MiniMaxAI/MiniMax-M2.5 | 192K | no | $0.294 / $1.176 | MiniMaxAI/MiniMax-M2.5 |\n| moonshotai/Kimi-K2.5 | 256K | yes | $0.5284 / $2.785 | MoonshotAI: Kimi K2.5 |\n| zai-org/GLM-5 | 198K | no | $0.85 / $2.774 | Z.ai: GLM 5 |\n| deepseek-ai/DeepSeek-V3.2 | 160K | no | $1.4301 / $2.4063 | DeepSeek: DeepSeek V3.2 |\n| moonshotai/Kimi-K2-Thinking | 256K | no | $0.6 / $2.5 | MoonshotAI: Kimi K2 Thinking |\n| zai-org/GLM-4.5-Air | 128K | no | $0.165 / $0.975 | Z.ai: GLM-4.5-Air |\n| google/gemma-4-26b-a4b-it | 256K | no | $0.116 / $0.38 | Google: Gemma 4 26B A4B |\n| zai-org/GLM-4.7-Flash | 195K | no | $0.062625 / $0.4 | Z.ai: GLM 4.7 Flash |\n| zai-org/GLM-4.7 | 198K | no | $0.88 / $2.37 | Z.ai: GLM 4.7 |\n| moonshotai/Kimi-K2-Instruct-0905 | 256K | no | $0.57 / $2.3 | MoonshotAI: Kimi K","hierarchy":{"lvl0":"Getting Started","lvl1":"io.net Intelligence Provider Guide","lvl2":"","lvl3":""}},
|
|
5934
6047
|
{"objectID":"ad064f89b9e464d84ccd879d03ea477d9357b02e999550486ca892b44da4abd5","title":"io.net Intelligence Provider Guide","url":"/docs/getting-started/providers/io-intelligence#ionet-intelligence-provider-guide","content":"io.net Intelligence is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/io-intelligence.json) rather than hand-written code. That\nfile is the source of truth for everything on this page.","hierarchy":{"lvl0":"Getting Started","lvl1":"io.net Intelligence Provider Guide","lvl2":"io.net Intelligence Provider Guide","lvl3":""}},
|
|
5935
6048
|
{"objectID":"2f36f08cbc711edfed7c5d63c8818f71c032a3af4246f9f61e1301b18352485c","title":"Key Facts","url":"/docs/getting-started/providers/io-intelligence#key-facts","content":"Provider id: io-intelligence (aliases: io-net)\nProtocol: OpenAI-compatible (/chat/completions)\nBase URL: https://api.intelligence.io.solutions/api/v1\nDefault model: meta-llama/Llama-3.3-70B-Instruct\nModels in catalog: 34\nStreaming: supported\nTool calling: supported (native)\nStructured output: supported\nEmbeddings: not supported\nBilling: free-tier","hierarchy":{"lvl0":"Getting Started","lvl1":"io.net Intelligence Provider Guide","lvl2":"Key Facts","lvl3":""}},
|
|
@@ -5962,6 +6075,16 @@
|
|
|
5962
6075
|
{"objectID":"854699a04e9d3ed9dc4cffe1b27061afb86f27586a6f04c772e0422f7853fabb","title":"1. Get API Credentials","url":"/docs/getting-started/providers/kling#1-get-api-credentials","content":"Sign up at https://kling.ai/ and grab the Access Key\nID + Secret from the developer dashboard.","hierarchy":{"lvl0":"Getting Started","lvl1":"Kling AI Provider Guide (video)","lvl2":"1. Get API Credentials","lvl3":""}},
|
|
5963
6076
|
{"objectID":"98689360e9090383d9345a8304010c5df2f704be9a96f5c072ad789a9d9e925c","title":"Configuration Reference","url":"/docs/getting-started/providers/kling#configuration-reference","content":"| Environment Variable | Required | Description |\n| -------------------- | -------- | ---------------- |\n| KLING_ACCESS_KEY | Yes | Kling access key |\n| KLING_SECRET_KEY | Yes | Kling secret key |","hierarchy":{"lvl0":"Getting Started","lvl1":"Kling AI Provider Guide (video)","lvl2":"Configuration Reference","lvl3":""}},
|
|
5964
6077
|
{"objectID":"5c9cd37e0ed9672f02587ee6f99a2ba417aff558c2d46733b78974566b4a7a5a","title":"See Also","url":"/docs/getting-started/providers/kling#see-also","content":"Runway Provider\nVertex Veo Provider","hierarchy":{"lvl0":"Getting Started","lvl1":"Kling AI Provider Guide (video)","lvl2":"See Also","lvl3":""}},
|
|
6078
|
+
{"objectID":"5b9b01e8195bf843c7df2ce44825a0a4a5423c7d640688cd12820d92e8120afe","title":"KosCompute Provider Guide","url":"/docs/getting-started/providers/koscompute","content":"KosCompute Provider Guide\n\nVerification status: this entry is docs- and roster-verified only —\nnot yet live-verified. It was onboarded credential-free: no KosCompute\nAPI key was ever created or used. Every field below comes from\nKosCompute's public docs (https://api.koscompute.com/docs/) and an\nunauthenticated GET /v1/models call (no auth header). No POST\nrequest was ever sent, so no generate, stream, tool-calling or\nstructured-output capability has been exercised end to end. Treat\ncapabilities.tools, .structuredOutput and .thinking as\ndocumentation-grade, not wire-proven, until evidence.liveMatrix is\nfilled in by a live run.\n\nKosCompute is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/koscompute.json) rather than hand-written code.\nThat file is the source of truth for everything on this page.\n\nKey Facts\nProvider id: koscompute\nProtocol: OpenAI-compatible (/v1/chat/completions); the vendor also\n exposes a Responses API and an Anthropic-Messages-compatible surface for\n the same model, neither of which NeuroLink uses here.\nBase URL: https://api.koscompute.com/v1\nDefault model: qwen/qwen3.8-27b\nModels in catalog: 1 — the only chat-capable id KosCompute serves. The\n other 6 ids on the vendor's /v1/models roster (openai/whisper-large-v3,\n openai/whisper-large-v3-turbo, kosmik/tts-piper-fast,\n kosmik/tts-kokoro-quality, kosmik/tts-moss-nano,\n kosmik/tts-supertonic-3) are Whisper transcription and TTS models, not\n chat models, so they are excluded from this catalog.\nStreaming: documented (stream: true, text/event-stream, terminal\n data: [DONE]) — not live-probed.\nTool calling: documented (tools array, tool_choice\n auto/none/required/named) and the served model's own\n supported_features (from the live /v1/models response) list\n tool_calling — not live-probed.\nStructured output: documented (response_format with json_object\n and json_schema) and the model's supported_features list json_mode\n and structured_outputs — not live-probed. Combining tools with a JSON\n schema in one request is not documented either way, so\n structuredOutputWithTools is declared false until a combined probe is\n run.\nEmbeddings: not documented anywhere in the vendor's docs or roster.\nVision: the default model accepts image input\n (input_modalities: [\"text\",\"image\"], vision.max_pixels: 1048576) per\n the live roster and the vendor's vision guide (HTTPS image URLs and data\n URLs) — not live-probed.\nReasoning / thinking: the model reports reasoning: true,\n extended_thinking: true, thinking_default: true,\n max_thinking_tokens: 8192, and\n supported_reasoning_efforts: [\"none\", \"low\", \"medium\", \"xhigh\"] on the\n live roster.\nBilling: unconfirmed. No pricing, free-tier or top-up page is\n published; the docs only mention an account \"balance\" in passing. This\n entry sets billingPolicy: \"no-free-tier\" as the conservative default in\n the absence of any documented free allocation — not as a confirmed vendor\n policy.\nSignup: no public signup, dashboard, or key-management page is\n published. The site's only call-to-action (\"Start building\") points at\n the docs quickstart, which itself assumes you already hold a key.\nKey format: none declared.\n\nQuick Start\nGet an API key\n\nKosCompute does not publish a public signup or key-issuance flow. The\nquickstart docs assume the key already exists:\nObtain a key out of band (no public signup page exists as of 2026-09-28).\nConfirm current billing terms directly with KosCompute — none are public.\nSet KOSCOMPUTE_API_KEY in your .env file.\nOptional sanity check before spending a real request:\n curl https://api.koscompute.com/v1/models needs no key and returns the\n live roster.\nConfigure\nUse it\n\nPer-request credentials work as they do for every provider:\n\nModels\n\n| Model | Context | Vision | $/M in · out | Notes |\n| --------------------- | -------------------------------- | ------ | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| qwen/qwen3.8-27b ⭐ | 262,144 (text) / 131,072 (image) | yes | $0.35 / $2.20 (cached $0.09) | Only chat-capable model in the roster. Reasoning-capable (extended_thinking, up to 8,192 thinking tokens, effort levels none/low/medium/xhigh). Max output 32,768 tokens. |\n\nContext window and max output shown are the catalog defaults\n(262,144 / 32,768 tokens), taken directly from the model's own entry in the\nlive, unauthenticated GET /v1/models response (context_length,\nmax_output_length) on 2026-09-28. Pricing is that same response's\nprecomputed per-MTok fields (input, output, cache_read).\n\nFallback o","hierarchy":{"lvl0":"Getting Started","lvl1":"KosCompute Provider Guide","lvl2":"","lvl3":""}},
|
|
6079
|
+
{"objectID":"2b2d22e1ad3b80d7167a9117cc4f82e25b854e8f632cdd0d213272f13613b85c","title":"KosCompute Provider Guide","url":"/docs/getting-started/providers/koscompute#koscompute-provider-guide","content":"Verification status: this entry is docs- and roster-verified only —\nnot yet live-verified. It was onboarded credential-free: no KosCompute\nAPI key was ever created or used. Every field below comes from\nKosCompute's public docs (https://api.koscompute.com/docs/) and an\nunauthenticated GET /v1/models call (no auth header). No POST\nrequest was ever sent, so no generate, stream, tool-calling or\nstructured-output capability has been exercised end to end. Treat\ncapabilities.tools, .structuredOutput and .thinking as\ndocumentation-grade, not wire-proven, until evidence.liveMatrix is\nfilled in by a live run.\n\nKosCompute is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/koscompute.json) rather than hand-written code.\nThat file is the source of truth for everything on this page.","hierarchy":{"lvl0":"Getting Started","lvl1":"KosCompute Provider Guide","lvl2":"KosCompute Provider Guide","lvl3":""}},
|
|
6080
|
+
{"objectID":"5f6c20c382fa6505e5420d37fe624e4072389047f0e1b9626ad899aaf04d5c6f","title":"Key Facts","url":"/docs/getting-started/providers/koscompute#key-facts","content":"Provider id: koscompute\nProtocol: OpenAI-compatible (/v1/chat/completions); the vendor also\n exposes a Responses API and an Anthropic-Messages-compatible surface for\n the same model, neither of which NeuroLink uses here.\nBase URL: https://api.koscompute.com/v1\nDefault model: qwen/qwen3.8-27b\nModels in catalog: 1 — the only chat-capable id KosCompute serves. The\n other 6 ids on the vendor's /v1/models roster (openai/whisper-large-v3,\n openai/whisper-large-v3-turbo, kosmik/tts-piper-fast,\n kosmik/tts-kokoro-quality, kosmik/tts-moss-nano,\n kosmik/tts-supertonic-3) are Whisper transcription and TTS models, not\n chat models, so they are excluded from this catalog.\nStreaming: documented (stream: true, text/event-stream, terminal\n data: [DONE]) — not live-probed.\nTool calling: documented (tools array, tool_choice\n auto/none/required/named) and the served model's own\n supported_features (from the live /v1/models response) list\n tool_calling — not live-probed.\nStructured output: documented (response_format with json_object\n and json_schema) and the model's supported_features list json_mode\n and structured_outputs — not live-probed. Combining tools with a JSON\n schema in one request is not documented either way, so\n structuredOutputWithTools is declared false until a combined probe is\n run.\nEmbeddings: not documented anywhere in the vendor's docs or roster.\nVision: the default model accepts image input\n (input_modalities: [\"text\",\"image\"], vision.max_pixels: 1048576) per\n the live roster and the vendor's vision guide (HTTPS image URLs and data\n URLs) — not live-probed.\nReasoning / thinking: the model reports reasoning: true,\n extended_thinking: true, thinking_default: true,\n max_thinking_tokens: 8192, and\n supported_reasoning_efforts: [\"none\", \"low\", \"medium\", \"xhigh\"] on the\n live roster.\nBilling: unconfirmed. No pricing, free-tier or top-up page is\n published; the docs only mention an account \"balance\" in passing. This\n entry sets billingPolicy: \"no","hierarchy":{"lvl0":"Getting Started","lvl1":"KosCompute Provider Guide","lvl2":"Key Facts","lvl3":""}},
|
|
6081
|
+
{"objectID":"5329be3b025e9bd7a78cf19c3d9e2b7fd634c486dee0d2a664a63cf3650ae718","title":"1. Get an API key","url":"/docs/getting-started/providers/koscompute#1-get-an-api-key","content":"KosCompute does not publish a public signup or key-issuance flow. The\nquickstart docs assume the key already exists:\nObtain a key out of band (no public signup page exists as of 2026-09-28).\nConfirm current billing terms directly with KosCompute — none are public.\nSet KOSCOMPUTE_API_KEY in your .env file.\nOptional sanity check before spending a real request:\n curl https://api.koscompute.com/v1/models needs no key and returns the\n live roster.","hierarchy":{"lvl0":"Getting Started","lvl1":"KosCompute Provider Guide","lvl2":"1. Get an API key","lvl3":""}},
|
|
6082
|
+
{"objectID":"d5b77f8bcb4d12a4e9608784918b18651544316468a51741d6a94daa579925cf","title":"3. Use it","url":"/docs/getting-started/providers/koscompute#3-use-it","content":"`bash","hierarchy":{"lvl0":"Getting Started","lvl1":"KosCompute Provider Guide","lvl2":"3. Use it","lvl3":""}},
|
|
6083
|
+
{"objectID":"30fc1af8c470ddbdff9e234b09defd53549b3775a82390e893efbb252567126f","title":"CLI","url":"/docs/getting-started/providers/koscompute#cli","content":"npx @juspay/neurolink generate \"Hello\" --provider koscompute\ntypescript\nawait neurolink.generate({\n input: { text: \"Hello\" },\n provider: \"koscompute\",\n credentials: { koscompute: { apiKey: process.env.KOSCOMPUTEAPIKEY } },\n});\n`","hierarchy":{"lvl0":"Getting Started","lvl1":"KosCompute Provider Guide","lvl2":"CLI","lvl3":""}},
|
|
6084
|
+
{"objectID":"94cca395e15691f520bad70c175b038f564345b23aa858475f1f3d347a93c683","title":"Models","url":"/docs/getting-started/providers/koscompute#models","content":"| Model | Context | Vision | $/M in · out | Notes |\n| --------------------- | -------------------------------- | ------ | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| qwen/qwen3.8-27b ⭐ | 262,144 (text) / 131,072 (image) | yes | $0.35 / $2.20 (cached $0.09) | Only chat-capable model in the roster. Reasoning-capable (extended_thinking, up to 8,192 thinking tokens, effort levels none/low/medium/xhigh). Max output 32,768 tokens. |\n\nContext window and max output shown are the catalog defaults\n(262,144 / 32,768 tokens), taken directly from the model's own entry in the\nlive, unauthenticated GET /v1/models response (context_length,\nmax_output_length) on 2026-09-28. Pricing is that same response's\nprecomputed per-MTok fields (input, output, cache_read).\n\nFallback order: none — qwen/qwen3.8-27b is the only chat model\nKosCompute serves, so it is both the default and its own (schema-exempt)\nsingle-entry fallback list.","hierarchy":{"lvl0":"Getting Started","lvl1":"KosCompute Provider Guide","lvl2":"Models","lvl3":""}},
|
|
6085
|
+
{"objectID":"4e0264790a48f8469b5d25d609cab04fae1ad3ba2ccee40c8829cd8571c265c6","title":"Verification status","url":"/docs/getting-started/providers/koscompute#verification-status","content":"Tier-2 onboarding requires evidence before a provider is accepted, and\npnpm run verify:provider-onboarding gates it in CI. This is what the\ncatalog records for KosCompute — and, just as importantly, what it does\nnot yet record:\n\n| Probe | Result |\n| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Roster | unauthenticated GET /v1/models, HTTP 200, 7 models, 2026-09-28. No API key was used or required for this call. |\n| Auth rejection | Not probed. Would require a POST with an invalid key, which this credential-free onboarding pass does not send. ","hierarchy":{"lvl0":"Getting Started","lvl1":"KosCompute Provider Guide","lvl2":"Verification status","lvl3":""}},
|
|
6086
|
+
{"objectID":"3944867506991deef1761c0dab4d9fa3bc0efe0d53bfb3f9acb78437c41f3ecf","title":"Troubleshooting","url":"/docs/getting-started/providers/koscompute#troubleshooting","content":"| Symptom | Cause | Fix |\n| ------------------------------------ | ----------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Invalid KosCompute API key | KOSCOMPUTE_API_KEY unset, wrong, expired, or lacks access | KosCompute's docs describe 401 as \"missing, invalid, expired, inactive, or conflicting credentials\" but publish no example error body or code string |\n| Model not found | Wrong model id, or the roster changed since 2026-09-28 | Pick a current id from an unauthenticated GET https://api.koscompute.com/v1/models |\n| 429 with concurrent_limit_exceeded | Per-key concurrency limit exceeded | Wait for an in-flight request to finish, or reduce parallel requests, before retrying |\n| No signup page found | Expected — KosCompute publishes no public signup or key-management page | Obtain a key out of band; there is no self-serve console to link to |","hierarchy":{"lvl0":"Getting Started","lvl1":"KosCompute Provider Guide","lvl2":"Troubleshooting","lvl3":""}},
|
|
6087
|
+
{"objectID":"2de12b046642ad2cef71f2aa84ab6de9163a41b51a046794c2d34738958d382d","title":"See also","url":"/docs/getting-started/providers/koscompute#see-also","content":"Provider setup overview\nAll providers\nTier-2 onboarding — how this provider's JSON becomes a working integration\nProvider feature compatibility","hierarchy":{"lvl0":"Getting Started","lvl1":"KosCompute Provider Guide","lvl2":"See also","lvl3":""}},
|
|
5965
6088
|
{"objectID":"6d919d5032d8bf60b8341d6b8ff90eeb0c7d2f87553ca6e6e96d08b988c7e6e9","title":"Laya Provider Guide","url":"/docs/getting-started/providers/laya","content":"Laya Provider Guide\n\nA provider of decide — the same typed boolean / choice / score\nanswers as TypeSafe's Jev, from an open-weights model you can\nrun yourself. It emits no text at all.\n\nOverview\n\nLaya is Convai Innovations' Apache-2.0 \"System One\" decision model. You send\none state plus named, typed questions; an encoder answers every question in a\nsingle forward pass and returns a probability distribution for each. NeuroLink\ncalls whatever base URL you configure — a Laya server, or a LiteLLM proxy with a\npass-through route to one. There is no built-in endpoint.\n\nKey Facts\n\n| | |\n| --------------------- | ------------------------------------------------------------------------------------------------- |\n| Inference type | decide only |\n| Checkpoints | typed-decisions (default, fine-tuned for typed decisions), multilingual, english, or auto |\n| Input window | 1,024 tokens (typed-decisions, multilingual); 512 (english) |\n| Questions per request | up to 64 |\n| Endpoint | <base URL>/predict; the base URL is required, with no default |\n| Precedence | used automatically when its key and base URL are set and no TypeSafe key is |\n\nQuick Start\nGet an endpoint and a key\n\nRun a Laya server (see below), or use a LiteLLM\nproxy with a pass-through route to one. On LiteLLM, create a virtual key and add\nthe route's /predict path (and /health, if you want to probe it) to the\nkey's Allowed Routes; a key without them is refused with a 403\nKey/team not allowed to access passthrough route.\nConfigure\n\nBoth the base URL and the key are required. Set them in the environment:\n\nor in the config passed to the SDK, exactly as for any other provider. Values\npassed per call override the constructor's, which override the environment:\nUse it\n\nFrom the CLI\n\nWhen NeuroLink uses it\n\nEvery built-in consumer of decide — model routing, relevance-driven\ncompaction, tool routing and RAG planning — asks for the default decision\nprovider. That is the first one that is configured — in the environment or in\nthe credentials passed to the SDK — in the order TypeSafe, Laya,\nXOR. TypeSafe has two keys, TYPESAFE_API_KEY and\nAI_GATEWAY_API_KEY (its Vercel AI Gateway route), and either one counts. Laya\ncounts only with both its key and its base URL, and so does XOR. So:\nA TypeSafe key, plus Laya's key and base URL: built-in features use\n TypeSafe; Laya runs only where a caller asks for provider: \"laya\".\nOnly Laya's key and base URL: built-in features use Laya.\nLaya's key and base URL, plus XOR's: built-in features use Laya; XOR runs\n only where a caller asks for provider: \"xor\".\nA Laya key with no base URL: Laya is not configured. Built-in features\n ignore it, and provider: \"laya\" fails with Laya requires a base URL.\nNone of TypeSafe, Laya or XOR: everything behaves exactly as it did\n without a decision model.\n\nLimits\n\nThe window is small. Laya's encoders read 1,024 tokens, and 512 on the\nenglish checkpoint, against roughly 33,000 for Jev. Part of that is reserved\nfor each question and its options, so NeuroLink allows about 768 tokens of\nstate on typed-decisions and multilingual, and 320 on english, auto and\nany model name it does not recognise. Laya's server does not refuse a longer\nstate — it answers from the start of it and says nothing — so NeuroLink\nrefuses it instead, before any network call, with max_tokens_exceeded.\n\nThe size is an estimate, not Laya's tokenizer: about four characters per token\nfor ASCII text, and 1.5 tokens per character for other scripts (0.6 on\nmultilingual), calibrated against a live Laya 0.3.5 server. It errs toward refusing. Built-in\nconsumers treat a refusal as \"carry on as before\", which means long-prompt\nmodel routing usually falls back to the heuristic when Laya is the only\ndecision provider.\n\nMany options degrade it. A choice's options share a fixed token budget,\nso accuracy drops past about 20 options; some Laya servers also reject a\nquestion whose options overflow the budget, as invalid_request.\n\nPick the checkpoint deliberately. Laya's own benchmark puts its general\nenglish and multilingual checkpoints close to chance on typed decisions\nwithout fine-tuning; typed-decisions is the fine-tuned one, which is why it is\nthe default.\n\nErrors\n\n| Reply | Kind | Retried |\n| ----------------------------------------------- | ------------------------------------------------------- | ------- |\n| 401 / 403 from the proxy | authentication — the provider instance stops retrying | no |\n| 400","hierarchy":{"lvl0":"Getting Started","lvl1":"Laya Provider Guide","lvl2":"","lvl3":""}},
|
|
5966
6089
|
{"objectID":"c57a78b27b2b64f684ee60c36022d5b19a81323647a32687608b35530b4d3ed7","title":"Laya Provider Guide","url":"/docs/getting-started/providers/laya#laya-provider-guide","content":"A provider of decide — the same typed boolean / choice / score\nanswers as TypeSafe's Jev, from an open-weights model you can\nrun yourself. It emits no text at all.","hierarchy":{"lvl0":"Getting Started","lvl1":"Laya Provider Guide","lvl2":"Laya Provider Guide","lvl3":""}},
|
|
5967
6090
|
{"objectID":"969ae83c9e8333da8d49838b0595db3588d8828b67611944cd46f08435f19d97","title":"Overview","url":"/docs/getting-started/providers/laya#overview","content":"Laya is Convai Innovations' Apache-2.0 \"System One\" decision model. You send\none state plus named, typed questions; an encoder answers every question in a\nsingle forward pass and returns a probability distribution for each. NeuroLink\ncalls whatever base URL you configure — a Laya server, or a LiteLLM proxy with a\npass-through route to one. There is no built-in endpoint.","hierarchy":{"lvl0":"Getting Started","lvl1":"Laya Provider Guide","lvl2":"Overview","lvl3":""}},
|
|
@@ -5974,6 +6097,16 @@
|
|
|
5974
6097
|
{"objectID":"de358abc64cad163c1666dce7b06fc5f7b3637b9568e420ceb9269a526929d54","title":"Running your own Laya server","url":"/docs/getting-started/providers/laya#running-your-own-laya-server","content":"Laya's example server exposes the same /predict route. Point\nLAYA_BASE_URL at it:","hierarchy":{"lvl0":"Getting Started","lvl1":"Laya Provider Guide","lvl2":"Running your own Laya server","lvl3":""}},
|
|
5975
6098
|
{"objectID":"e0dd67e8f79c7801d3e199dcd765a559f64a9d65d43cf1611026725a8ae1ee82","title":"Troubleshooting","url":"/docs/getting-started/providers/laya#troubleshooting","content":"Laya requires a base URL — set LAYA_BASE_URL, or pass\n credentials.laya.baseURL. There is no default endpoint.\nAuthentication failed — the proxy rejected the key. Check it in the\n LiteLLM Dashboard, including its Allowed Routes. The provider instance does\n not retry after a rejection.\nA 403 with error code: 1010 — Cloudflare in front of your proxy blocked\n the client by its signature. Node's fetch is accepted; a proxy or agent that\n rewrites the user agent may not be.\nexceeded the provider's token limit — the state is larger than Laya\n reads. Shorten it, or configure TypeSafe for long inputs.\nBuilt-in routing never uses Laya — a TypeSafe key is also set and takes\n precedence, or Laya has no base URL.","hierarchy":{"lvl0":"Getting Started","lvl1":"Laya Provider Guide","lvl2":"Troubleshooting","lvl3":""}},
|
|
5976
6099
|
{"objectID":"fb160b657869a262fd7735599ce2c2ffd49423f4a0f7c43f4ef5ee74aa4dcde5","title":"See also","url":"/docs/getting-started/providers/laya#see-also","content":"The decide inference type\nTypeSafe (Jev) Provider Guide\nXOR Provider Guide\nLaya on GitHub","hierarchy":{"lvl0":"Getting Started","lvl1":"Laya Provider Guide","lvl2":"See also","lvl3":""}},
|
|
6100
|
+
{"objectID":"667a3f17b65166ba28882ee85abdf158b10830f8810551f1866cc1e4fb0387c9","title":"Lilac Provider Guide","url":"/docs/getting-started/providers/lilac","content":"Lilac Provider Guide\n\nLilac is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/lilac.json) rather than hand-written code. That\nfile is the source of truth for everything on this page.\n\nVerification status: this entry is docs- and roster-verified, not\nyet live-verified. Every model id, context window, output ceiling and\nprice below comes from an unauthenticated GET /v1/models call (no API\nkey used) cross-checked against Lilac's published docs. No request that\nneeds a key — chat completions, streaming, tool calls, structured output —\nhas been probed end to end. Capability flags reflect only what the docs\nstate; run the live matrix (see\nTier-2 onboarding)\nbefore trusting this provider in production.\n\nKey Facts\nProvider id: lilac\nProtocol: OpenAI-compatible (/chat/completions) — docs.getlilac.com\n states Lilac \"provides an OpenAI-compatible API. If you're already using\n the OpenAI SDK, you only need to change the base URL and API key.\"\nBase URL: https://api.getlilac.com/v1\nDefault model: moonshotai/kimi-k2.6\nModels in catalog: 4\nStreaming: documented (stream: true, SSE); not live-probed\nTool calling: documented (\"Function definitions with automatic\n argument extraction,\" supported for all four current models); not\n live-probed\nStructured output: documented (response_format with json_object\n or json_schema, supported for all four current models); not\n live-probed. Gemma 4 carries a documented caveat: combining its reasoning\n parser with enable_thinking: false \"can silently disable xgrammar-backed\n structured output.\"\nTools + structured output together: not declared — no combined probe\n was possible without a key\nEmbeddings: explicitly documented as not supported (along with\n audio, fine-tuning, the Assistants API, Batch API and file uploads)\nBilling: no free tier — prepaid credit only (Stripe checkout, as\n little as $5), no minimum spend or contract once funded\nKey format: none documented\nRate limits: 200 requests/minute per organization; excess requests\n may get HTTP 429 with a Retry-After header\n\nQuick Start\nGet an API key\nVisit: https://console.getlilac.com and sign up with your email or a Google account\nCreate an organization, then go to API Keys in the dashboard and create a new key — it is shown only once, so copy it immediately\nGo to Billing, click Add Credits and complete the Stripe checkout (as little as $5.00) — a positive credit balance is required before you can make any API request; there is no free tier or free credits\nSet LILAC_API_KEY in your .env file\n\nNew-model requests and enterprise monthly-invoicing setup both go through contact@getlilac.com.\nConfigure\nUse it\n\nPer-request credentials work as they do for every provider:\n\nModels\n\n| Model | Context | Vision | $/M in · out | Notes |\n| ------------------------- | ------- | ------ | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| moonshotai/kimi-k2.6 ⭐ | 262K | yes | $0.70 / $3.50 (cached $0.16) | Default — the model used in every code sample on Lilac's own quickstart and chat-completions docs, including its vision example. Roster-verified only, not capability-probed. |\n| minimaxai/minimax-m3 | 1M | yes | $0.28 / $1.10 (cached $0.05) | Largest context in the roster; native multimodal 428B MoE reasoning model. Fallback. |\n| zai-org/glm-5.2 | 512K | no | $0.90 / $3.00 (cached $0.17) | Only non-vision model on the roster; its reasoning_effort also works as a plain top-level field, not only inside chat_template_kwargs. Fallback. |\n| google/gemma-4-31b-it | 256K | yes | $0.11 / $0.35 | Cheapest model; does not list structured_outputs in its supported parameters (only response_format), and docs flag a structured-output caveat under enable_thinking: false. Fallback. |\n\nContext window and output-ceiling numbers are from GET /v1/models\n(unauthenticated, 2026-09-28); the API reports the per-model\nmax_completion_tokens equal to that same model's context length, so treat\nit as an upper bound rather than a separately proven output cap. Pricing is\ncross-checked against https://docs.getlilac.com/inference/models (same\ndate) and matches exactly.\n\nFallback order when the default is unavailable: minimaxai/minimax-m3 →\nzai-org/glm-5.2 → google/gemma-4-31b-it.\n\nVerification status\n\nTier-2 onboarding requires evidence before a provider is accepted, and\npnpm run veri","hierarchy":{"lvl0":"Getting Started","lvl1":"Lilac Provider Guide","lvl2":"","lvl3":""}},
|
|
6101
|
+
{"objectID":"6841db5bba9a83d0ecbe60f8407ae263867d208e162245663d22d202c2cb5c6e","title":"Lilac Provider Guide","url":"/docs/getting-started/providers/lilac#lilac-provider-guide","content":"Lilac is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/lilac.json) rather than hand-written code. That\nfile is the source of truth for everything on this page.\n\nVerification status: this entry is docs- and roster-verified, not\nyet live-verified. Every model id, context window, output ceiling and\nprice below comes from an unauthenticated GET /v1/models call (no API\nkey used) cross-checked against Lilac's published docs. No request that\nneeds a key — chat completions, streaming, tool calls, structured output —\nhas been probed end to end. Capability flags reflect only what the docs\nstate; run the live matrix (see\nTier-2 onboarding)\nbefore trusting this provider in production.","hierarchy":{"lvl0":"Getting Started","lvl1":"Lilac Provider Guide","lvl2":"Lilac Provider Guide","lvl3":""}},
|
|
6102
|
+
{"objectID":"d4c6e475ca68608c38f117c0e72e3e00e3180e895a9891092099432bebdfae77","title":"Key Facts","url":"/docs/getting-started/providers/lilac#key-facts","content":"Provider id: lilac\nProtocol: OpenAI-compatible (/chat/completions) — docs.getlilac.com\n states Lilac \"provides an OpenAI-compatible API. If you're already using\n the OpenAI SDK, you only need to change the base URL and API key.\"\nBase URL: https://api.getlilac.com/v1\nDefault model: moonshotai/kimi-k2.6\nModels in catalog: 4\nStreaming: documented (stream: true, SSE); not live-probed\nTool calling: documented (\"Function definitions with automatic\n argument extraction,\" supported for all four current models); not\n live-probed\nStructured output: documented (response_format with json_object\n or json_schema, supported for all four current models); not\n live-probed. Gemma 4 carries a documented caveat: combining its reasoning\n parser with enable_thinking: false \"can silently disable xgrammar-backed\n structured output.\"\nTools + structured output together: not declared — no combined probe\n was possible without a key\nEmbeddings: explicitly documented as not supported (along with\n audio, fine-tuning, the Assistants API, Batch API and file uploads)\nBilling: no free tier — prepaid credit only (Stripe checkout, as\n little as $5), no minimum spend or contract once funded\nKey format: none documented\nRate limits: 200 requests/minute per organization; excess requests\n may get HTTP 429 with a Retry-After header","hierarchy":{"lvl0":"Getting Started","lvl1":"Lilac Provider Guide","lvl2":"Key Facts","lvl3":""}},
|
|
6103
|
+
{"objectID":"1df987ed4af6699abe1149aa32a61f4d4d13bb786a1826bc43311021eda0d4b1","title":"1. Get an API key","url":"/docs/getting-started/providers/lilac#1-get-an-api-key","content":"Visit: https://console.getlilac.com and sign up with your email or a Google account\nCreate an organization, then go to API Keys in the dashboard and create a new key — it is shown only once, so copy it immediately\nGo to Billing, click Add Credits and complete the Stripe checkout (as little as $5.00) — a positive credit balance is required before you can make any API request; there is no free tier or free credits\nSet LILAC_API_KEY in your .env file\n\nNew-model requests and enterprise monthly-invoicing setup both go through contact@getlilac.com.","hierarchy":{"lvl0":"Getting Started","lvl1":"Lilac Provider Guide","lvl2":"1. Get an API key","lvl3":""}},
|
|
6104
|
+
{"objectID":"bf97a0cb13a9c1ae918f36b2b9669c8f9e29afcc872e3ed940ee8b488faae128","title":"3. Use it","url":"/docs/getting-started/providers/lilac#3-use-it","content":"`bash","hierarchy":{"lvl0":"Getting Started","lvl1":"Lilac Provider Guide","lvl2":"3. Use it","lvl3":""}},
|
|
6105
|
+
{"objectID":"3ceca27dec200268963fb329af0d278477d7f76c84fcd3a8aa991aae7dcfe15f","title":"CLI","url":"/docs/getting-started/providers/lilac#cli","content":"npx @juspay/neurolink generate \"Hello\" --provider lilac\ntypescript\nawait neurolink.generate({\n input: { text: \"Hello\" },\n provider: \"lilac\",\n credentials: { lilac: { apiKey: process.env.LILACAPIKEY } },\n});\n`","hierarchy":{"lvl0":"Getting Started","lvl1":"Lilac Provider Guide","lvl2":"CLI","lvl3":""}},
|
|
6106
|
+
{"objectID":"de835bb38d142880544c843eda57505d074ee5530028ca376586daca22a0c75e","title":"Models","url":"/docs/getting-started/providers/lilac#models","content":"| Model | Context | Vision | $/M in · out | Notes |\n| ------------------------- | ------- | ------ | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| moonshotai/kimi-k2.6 ⭐ | 262K | yes | $0.70 / $3.50 (cached $0.16) | Default — the model used in every code sample on Lilac's own quickstart and chat-completions docs, including its vision example. Roster-verified only, not capability-probed. |\n| minimaxai/minimax-m3 | 1M | yes | $0.28 / $1.10 (cached $0.05) | Largest context in the roster; native multimodal 428B MoE reasoning model. Fallback. |\n| zai-org/glm-5.2 | 512K | no | $0.90 / $3.00 (cached $0.17) | Only non-vision model on the roster; its reasoning_effort also works as a plain top-level field, not only inside chat_template_kwargs. Fallback. |\n| google/gemma-4-31b-it | 256K | yes | $0.11 / $0.35 | Cheapest model; does not list structured_outputs in its supported parameters (only response_format), and docs flag a structured-output caveat under enable_thinking: false. Fallback. |\n\nContext window and output-ceiling numbers are from GET /v1/models\n(unauthenticated, 2026-09-28); the API reports the per-model\nmax_completion_tokens equal to that same model's context length, so treat\nit as an upper bound rather than a separately proven output cap. Pricing is\ncross-checked against https://docs.getlilac.com/inference/models (same\ndate) and matches exactly.\n\nFallback order when th","hierarchy":{"lvl0":"Getting Started","lvl1":"Lilac Provider Guide","lvl2":"Models","lvl3":""}},
|
|
6107
|
+
{"objectID":"2c6579db656aa7cd5aee949bdc124e976265d72d2df5bdda546adddeed797b31","title":"Verification status","url":"/docs/getting-started/providers/lilac#verification-status","content":"Tier-2 onboarding requires evidence before a provider is accepted, and\npnpm run verify:provider-onboarding gates it in CI. This is what the\ncatalog records for Lilac — and, just as importantly, what it does not\nrecord yet:\n\n| Probe | Result |\n| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| Roster | unauthenticated GET /v1/models, HTTP 200, 4 models, 2026-09-28 — ids match the docs page exactly (google/gemma-4-31b-it, minimaxai/minimax-m3, moonshotai/kimi-k2.6, zai-org/glm-5.2) |\n| Auth rejection | not probed — a request with an invalid key would need to POST /v1/chat/completions, which this onboarding pass deliberately never sends |\n| Live capability sweep | not run — no key was available or used. errorRules is intentionally empty in the JSON (no documented auth-failure shape to encode); NeuroLink's generic default error classifier (401 → authentication, 429 → rate-limit, 404 → invalid-model) applies until a live probe adds provider-specific rules |\n| Billing | Docs-only: prepaid Stripe credits, no free tier, no minimum spend once funded (\"no minimums or contracts\"); a positive balance ","hierarchy":{"lvl0":"Getting Started","lvl1":"Lilac Provider Guide","lvl2":"Verification status","lvl3":""}},
|
|
6108
|
+
{"objectID":"044060aafd374d62376ca77332e8c51804f9bb13dde5984447c492f3f25c5691","title":"Troubleshooting","url":"/docs/getting-started/providers/lilac#troubleshooting","content":"| Symptom | Cause | Fix |\n| ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |\n| Requests fail immediately | No credit balance — Lilac requires a positive balance before any call succeeds | Add credits via Billing → Add Credits at https://console.getlilac.com |\n| Model not found | The roster changed since 2026-09-28 | Pick a current id from the unauthenticated GET /v1/models roster |\n| Frequent 429s | Lilac's documented limit is 200 requests/minute per organization | Respect the Retry-After header and back off; request a higher limit via contact@getlilac.com |\n| Structured output silently malformed | Gemma 4 only — combining its reasoning parser with enable_thinking: false can disable structured output per Lilac's docs | Leave enable_thinking at its default for Gemma 4, or use a different model for schema-strict calls |\n| embed() throws | Lilac does not support embeddings | Use a provider that does (see Embeddings) |","hierarchy":{"lvl0":"Getting Started","lvl1":"Lilac Provider Guide","lvl2":"Troubleshooting","lvl3":""}},
|
|
6109
|
+
{"objectID":"c2e3cba37072cdd7b0f56338871f68a036ef11c16b49fd624c9e7b2baec84bff","title":"See also","url":"/docs/getting-started/providers/lilac#see-also","content":"Provider setup overview\nAll providers\nTier-2 onboarding — how this provider's JSON becomes a working integration\nProvider feature compatibility","hierarchy":{"lvl0":"Getting Started","lvl1":"Lilac Provider Guide","lvl2":"See also","lvl3":""}},
|
|
5977
6110
|
{"objectID":"e3ac6498f27344d89bbe65467d6382ad117a8cdd85b1daa4ec6dafe521cc8d44","title":"LiteLLM Provider Guide","url":"/docs/getting-started/providers/litellm","content":"LiteLLM Provider Guide\n\nAccess hundreds of AI models across 100+ providers through the NeuroLink LiteLLM provider via a LiteLLM proxy server\n\nOverview\n\nNeuroLink's litellm provider connects to a LiteLLM proxy server to access hundreds of models across 100+ AI providers (OpenAI, Anthropic, Google, AWS Bedrock, Cohere, Groq, Together AI, and more) through a single OpenAI-compatible API. The proxy adds enterprise features like load balancing, fallbacks, budgets, and rate limiting on top of the connected AI providers.\n\nHow It Works\nYou run (or connect to) a LiteLLM proxy server that manages your provider API keys and model routing.\nNeuroLink's litellm provider communicates with this proxy using the OpenAI-compatible protocol.\nModels are referenced using LiteLLM's provider/model format (e.g., openai/gpt-4o-mini, anthropic/claude-3-5-sonnet-20240620).\n\nKey Benefits\n100+ Providers: Access hundreds of models across a broad range of AI providers through one interface\nUnified Model Format: Use provider/model naming across all backends\nLoad Balancing: Distribute requests across multiple providers/models\nCost Tracking: Built-in budget management and spend tracking\nFallbacks: Automatic failover when providers are down\nProxy Mode: Run as standalone proxy server for team-wide use\n\nQuick Start\nSet Up a LiteLLM Proxy Server\n\nBefore using the NeuroLink litellm provider, you need a running LiteLLM proxy. See the Setting Up LiteLLM Proxy section below for full details, or get started quickly:\nConfigure Environment Variables\n\nAdd to your .env file:\nTest the Setup\n\nEnvironment Variables\n\n| Variable | Required | Default | Description |\n| ------------------ | -------- | ----------------------- | ----------------------------------------- |\n| LITELLM_BASE_URL | No | http://localhost:4000 | URL of your LiteLLM proxy server |\n| LITELLM_API_KEY | No | sk-anything | API key for authenticating with the proxy |\n| LITELLM_MODEL | No | openai/gpt-4o-mini | Default model in provider/model format |\n\nDefault Model\n\nThe default model is openai/gpt-4o-mini (from LiteLLMModels.OPENAI_GPT_4O_MINI). Override it by setting LITELLM_MODEL in your environment or passing --model on the CLI.\n\nModel Name Format\n\nLiteLLM uses a provider/model format for model names. Examples:\n\nSee the full list at LiteLLM Supported Providers.\n\nSDK Usage\n\nBasic Usage\n\nWith a Specific Model\n\nStreaming\n\nMulti-Model Workflow\n\nCLI Usage\n\nAvailable Models\n\nThe LiteLLMModels enum provides commonly used model identifiers:\n\n| Enum Value | Model ID |\n| ------------------------------ | -------------------------------------- |\n| OPENAI_GPT_4O_MINI | openai/gpt-4o-mini |\n| OPENAI_GPT_4O | openai/gpt-4o |\n| OPENAI_GPT_5 | openai/gpt-5 |\n| ANTHROPIC_CLAUDE_SONNET_4_6 | anthropic/claude-sonnet-4-6 |\n| ANTHROPIC_CLAUDE_3_5_SONNET | anthropic/claude-3-5-sonnet-20240620 |\n| VERTEX_GEMINI_2_5_PRO | vertex_ai/gemini-2.5-pro |\n| GEMINI_2_0_FLASH | gemini/gemini-2.0-flash |\n| GROQ_LLAMA_3_1_70B_VERSATILE | groq/llama-3.1-70b-versatile |\n| MISTRAL_LARGE | mistral/mistral-large-latest |\n\nYou can also pass any model string your LiteLLM proxy is configured to serve. Use the proxy's /v1/models endpoint to discover available models dynamically.\n\nError Handling\n\nThe LiteLLM provider returns specific error types for common failure scenarios:\n\n| Error | Cause | Resolution |\n| ----------------------------- | ----------------------------------- | -------------------------------------------------------- |\n| NetworkError (ECONNREFUSED) | LiteLLM proxy server is not running | Start the proxy at the configured LITELLM_BASE_URL |\n| AuthenticationError | Invalid LITELLM_API_KEY | Check your API key matches the proxy's master key |\n| RateLimitError | Upstream rate limit exceeded | Wait and retry, or configure load balancing in the proxy |\n| InvalidModelError | Model not configured in proxy | Add the model to your LiteLLM proxy configuration |\n\nSetting Up LiteLLM Proxy\n\nThe NeuroLink litellm provider requires a running LiteLLM proxy server. This section covers how to set one up.\n\nInstall LiteLLM\n\nQuick Start (Single Model)\n\nConfiguration File (Multiple Models)\n\nCreate litellm_config.yaml:\n\nStart the proxy:\n\nLoad Balancing\n\nDistribute requests across multiple providers or API keys:\n\nAutomatic Failover\n\nConfigure fallback providers for reliability:\n\nBudget Management\n\nSet spending limits per virtual key:\n\nDocker Deployment\n\nTroubleshooting\n\nCommon Issues\n\"LiteLLM proxy server not available\"\n\nProblem: The proxy ","hierarchy":{"lvl0":"Getting Started","lvl1":"LiteLLM Provider Guide","lvl2":"","lvl3":""}},
|
|
5978
6111
|
{"objectID":"d7435a5ad9fdbf5d14349609fed469d76227dc6098228c3ec8e0c82c3d62944a","title":"LiteLLM Provider Guide","url":"/docs/getting-started/providers/litellm#litellm-provider-guide","content":"Access hundreds of AI models across 100+ providers through the NeuroLink LiteLLM provider via a LiteLLM proxy server","hierarchy":{"lvl0":"Getting Started","lvl1":"LiteLLM Provider Guide","lvl2":"LiteLLM Provider Guide","lvl3":""}},
|
|
5979
6112
|
{"objectID":"27c251c8bbd323623221b411910908f9845d9bca578eaf8a167eff42d385cc67","title":"Overview","url":"/docs/getting-started/providers/litellm#overview","content":"NeuroLink's litellm provider connects to a LiteLLM proxy server to access hundreds of models across 100+ AI providers (OpenAI, Anthropic, Google, AWS Bedrock, Cohere, Groq, Together AI, and more) through a single OpenAI-compatible API. The proxy adds enterprise features like load balancing, fallbacks, budgets, and rate limiting on top of the connected AI providers.","hierarchy":{"lvl0":"Getting Started","lvl1":"LiteLLM Provider Guide","lvl2":"Overview","lvl3":""}},
|
|
@@ -6062,6 +6195,16 @@
|
|
|
6062
6195
|
{"objectID":"4121b681b4c70f8f7bfef6ad67ad34b7da4d2fb9fcb205fa437fc09f763cb391","title":"Auto-discovery keeps returning \"loaded-model\"","url":"/docs/getting-started/providers/llamacpp#auto-discovery-keeps-returning-loaded-model","content":"llama-server is running but /v1/models returned an empty list, or the server is not reachable. Confirm the server started successfully:","hierarchy":{"lvl0":"Getting Started","lvl1":"llama.cpp Provider Guide","lvl2":"Auto-discovery keeps returning \"loaded-model\"","lvl3":""}},
|
|
6063
6196
|
{"objectID":"81ad8a641859e832e60a3f577b41f0742e11961d68205d8e41e3522cb200a3a3","title":"Server crashes or runs out of memory","url":"/docs/getting-started/providers/llamacpp#server-crashes-or-runs-out-of-memory","content":"Your model is too large for available RAM. Use a more aggressively quantised variant (Q2 or Q4) or a smaller model. You can also limit the batch size at startup with -b 512.","hierarchy":{"lvl0":"Getting Started","lvl1":"llama.cpp Provider Guide","lvl2":"Server crashes or runs out of memory","lvl3":""}},
|
|
6064
6197
|
{"objectID":"d9972f403a4bbb6f9d3192b1d77615f76efe75eb75011a621b7523cf0c863258","title":"See Also","url":"/docs/getting-started/providers/llamacpp#see-also","content":"Implementation spec — internal design details and auto-discovery mechanics\nLM Studio provider — GUI-based alternative with the same auto-discovery pattern\nOllama provider — another popular local model runtime with a model management layer\nOpenAI Compatible provider — generic provider for any OpenAI-compatible endpoint\n\nNeed Help? Join the GitHub Discussions or open an issue.","hierarchy":{"lvl0":"Getting Started","lvl1":"llama.cpp Provider Guide","lvl2":"See Also","lvl3":""}},
|
|
6198
|
+
{"objectID":"4892220c94fd968b484b317e2d214b64f6af6cce135fafb9b1a8f05f634410e9","title":"LLM Tech Provider Guide","url":"/docs/getting-started/providers/llmtech","content":"LLM Tech Provider Guide\n\nVerification status: this entry is docs- and roster-verified only —\nnot yet live-verified. It was onboarded credential-free: no LLM Tech API\nkey was ever created or used. Every field below comes from LLM Tech's\npublic model page (https://llmtech.eu/models/qwen3.8-27b) and an\nunauthenticated GET /v1/models call (no auth header, no key). No\nPOST request was ever sent, so no generate, stream, tool-calling or\nstructured-output capability has been exercised end to end. Treat\ncapabilities.tools, .structuredOutput and .thinking as\ndocumentation-grade, not wire-proven, until evidence.liveMatrix is filled\nin by a live run.\n\nLLM Tech is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/llmtech.json) rather than hand-written code.\nThat file is the source of truth for everything on this page.\n\nKey Facts\nProvider id: llmtech\nProtocol: OpenAI-compatible (/v1/chat/completions). The vendor's own\n quickstart uses the OpenAI SDK's client.chat.completions.create(...)\n against this base URL.\nBase URL: https://api.llmtech.eu/v1\nDefault model: nvidia/Qwen3.8-27B-NVFP4\nModels in catalog: 1 — LLM Tech's entire hosted roster, confirmed by an\n unauthenticated GET /v1/models (HTTP 200, exactly 1 model) re-run on\n 2026-09-28.\nHosting: self-hosted on EU hardware — GPU node in Italy, edge network\n in Nuremberg.\nStreaming: documented (SSE, OpenAI format, stream=True in the\n vendor's sample) — not live-probed.\nTool calling: documented (\"yes, with structured outputs\") and the\n model's own features array on the live /v1/models response lists\n tools — not live-probed.\nStructured output: the model's features array lists json_mode and\n structured_outputs; the vendor's docs mention structured outputs only in\n the same tool-calling sentence, with no separate response_format\n wire example — not live-probed. Combining tools with a JSON schema in one\n request is not documented either way, so structuredOutputWithTools is\n declared false until a combined probe is run.\nEmbeddings: not documented anywhere on the vendor's site.\nVision: real image support, not a text-only model despite some\n third-party listings — the vendor's page states the vision tower is kept\n in BF16 and works; image tokens count toward prompt_tokens and bill at\n the input rate (e.g. a 64×64 PNG costs 64 image tokens), and images must go\n in a user message, not a system message. The live roster's features\n array also lists vision. Not live-probed.\nReasoning / thinking: controllable via enable_thinking and\n reasoning_effort request parameters; the live roster's features array\n lists reasoning.\nBilling: pay-per-token USD, no free tier documented — \"no\n subscription, no minimums.\" Prompt caching is automatic and billed at the\n cache rate.\nSignup: no public signup or self-service key page. Self-service is\n described as \"planned.\" Keys are issued manually by emailing\n artem@llmtech.eu; the account dashboard at https://llmtech.eu/cabinet/\n confirms this model — \"your key is your login,\" \"we hold no passwords and\n no accounts\" — it is a billing/usage view for an existing key, not a\n signup form.\nKey format: none declared.\n\nQuick Start\nGet an API key\n\nLLM Tech does not publish a public signup or self-service key-issuance flow:\nEmail artem@llmtech.eu to request a key (self-service is planned but not\n live as of 2026-09-28).\nOnce issued, paste the key into https://llmtech.eu/cabinet/ to see\n current-month billing, a daily usage chart, and invoice line items — there\n is no separate account or login.\nConfirm current pricing before heavy use: input $0.25/M, output $2.09/M,\n cached input $0.04/M tokens, per https://llmtech.eu/models/qwen3.8-27b.\nSet LLMTECH_API_KEY in your .env file.\nConfigure\nUse it\n\nPer-request credentials work as they do for every provider:\n\nModels\n\n| Model | Context | Vision | $/M in · out | Notes |\n| ----------------------------- | ------- | ------ | ---------------------------- | ------------------------------------------------------------------------------------------------------------ |\n| nvidia/Qwen3.8-27B-NVFP4 ⭐ | 262,144 | yes | $0.25 / $2.09 (cached $0.04) | LLM Tech's only model. Reasoning-capable via enable_thinking/reasoning_effort. Max output 32,768 tokens. |\n\nContext window and max output shown are the catalog defaults (262,144 /\n32,768 tokens), taken directly from the model's own entry in the live,\nunauthenticated GET /v1/models response (context_length, max_output /\nmax_output_tokens) on 2026-09-28. Pricing is that same response's\npricing_per_m fields, which match the vendor's model page exactly.\n\nFallback order: none — nvidia/Qwen3.8-27B-NVFP4 is the only model LLM\nTech serves, so it is both the default and its own (schema-exempt)\nsingle-entry fallback list.\n\nV","hierarchy":{"lvl0":"Getting Started","lvl1":"LLM Tech Provider Guide","lvl2":"","lvl3":""}},
|
|
6199
|
+
{"objectID":"6340a9053f804e4e1c6ac867e1f080e677f135dd3ec0711b5f9333941d8e37fc","title":"LLM Tech Provider Guide","url":"/docs/getting-started/providers/llmtech#llm-tech-provider-guide","content":"Verification status: this entry is docs- and roster-verified only —\nnot yet live-verified. It was onboarded credential-free: no LLM Tech API\nkey was ever created or used. Every field below comes from LLM Tech's\npublic model page (https://llmtech.eu/models/qwen3.8-27b) and an\nunauthenticated GET /v1/models call (no auth header, no key). No\nPOST request was ever sent, so no generate, stream, tool-calling or\nstructured-output capability has been exercised end to end. Treat\ncapabilities.tools, .structuredOutput and .thinking as\ndocumentation-grade, not wire-proven, until evidence.liveMatrix is filled\nin by a live run.\n\nLLM Tech is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/llmtech.json) rather than hand-written code.\nThat file is the source of truth for everything on this page.","hierarchy":{"lvl0":"Getting Started","lvl1":"LLM Tech Provider Guide","lvl2":"LLM Tech Provider Guide","lvl3":""}},
|
|
6200
|
+
{"objectID":"de832b4c51528c8d19642298a03a571034485bb582df2c22931a3b0367f9e075","title":"Key Facts","url":"/docs/getting-started/providers/llmtech#key-facts","content":"Provider id: llmtech\nProtocol: OpenAI-compatible (/v1/chat/completions). The vendor's own\n quickstart uses the OpenAI SDK's client.chat.completions.create(...)\n against this base URL.\nBase URL: https://api.llmtech.eu/v1\nDefault model: nvidia/Qwen3.8-27B-NVFP4\nModels in catalog: 1 — LLM Tech's entire hosted roster, confirmed by an\n unauthenticated GET /v1/models (HTTP 200, exactly 1 model) re-run on\n 2026-09-28.\nHosting: self-hosted on EU hardware — GPU node in Italy, edge network\n in Nuremberg.\nStreaming: documented (SSE, OpenAI format, stream=True in the\n vendor's sample) — not live-probed.\nTool calling: documented (\"yes, with structured outputs\") and the\n model's own features array on the live /v1/models response lists\n tools — not live-probed.\nStructured output: the model's features array lists json_mode and\n structured_outputs; the vendor's docs mention structured outputs only in\n the same tool-calling sentence, with no separate response_format\n wire example — not live-probed. Combining tools with a JSON schema in one\n request is not documented either way, so structuredOutputWithTools is\n declared false until a combined probe is run.\nEmbeddings: not documented anywhere on the vendor's site.\nVision: real image support, not a text-only model despite some\n third-party listings — the vendor's page states the vision tower is kept\n in BF16 and works; image tokens count toward prompt_tokens and bill at\n the input rate (e.g. a 64×64 PNG costs 64 image tokens), and images must go\n in a user message, not a system message. The live roster's features\n array also lists vision. Not live-probed.\nReasoning / thinking: controllable via enable_thinking and\n reasoning_effort request parameters; the live roster's features array\n lists reasoning.\nBilling: pay-per-token USD, no free tier documented — \"no\n subscription, no minimums.\" Prompt caching is automatic and billed at the\n cache rate.\nSignup: no public signup or self-service key page. Self-service is\n des","hierarchy":{"lvl0":"Getting Started","lvl1":"LLM Tech Provider Guide","lvl2":"Key Facts","lvl3":""}},
|
|
6201
|
+
{"objectID":"163ec7795de88cfbc742b2c8843b09b21f6dc8c89f756d8fa2e199fc1f100bc6","title":"1. Get an API key","url":"/docs/getting-started/providers/llmtech#1-get-an-api-key","content":"LLM Tech does not publish a public signup or self-service key-issuance flow:\nEmail artem@llmtech.eu to request a key (self-service is planned but not\n live as of 2026-09-28).\nOnce issued, paste the key into https://llmtech.eu/cabinet/ to see\n current-month billing, a daily usage chart, and invoice line items — there\n is no separate account or login.\nConfirm current pricing before heavy use: input $0.25/M, output $2.09/M,\n cached input $0.04/M tokens, per https://llmtech.eu/models/qwen3.8-27b.\nSet LLMTECH_API_KEY in your .env file.","hierarchy":{"lvl0":"Getting Started","lvl1":"LLM Tech Provider Guide","lvl2":"1. Get an API key","lvl3":""}},
|
|
6202
|
+
{"objectID":"a6cee82a44583f24c207134f365d4f089f35c7ddadeb43cd45219ef5f8c6a15e","title":"3. Use it","url":"/docs/getting-started/providers/llmtech#3-use-it","content":"`bash","hierarchy":{"lvl0":"Getting Started","lvl1":"LLM Tech Provider Guide","lvl2":"3. Use it","lvl3":""}},
|
|
6203
|
+
{"objectID":"d2390282c06463f40ee5f7ffa023a34661a0bbe8191594757d94ea8e909ea834","title":"CLI","url":"/docs/getting-started/providers/llmtech#cli","content":"npx @juspay/neurolink generate \"Hello\" --provider llmtech\ntypescript\nawait neurolink.generate({\n input: { text: \"Hello\" },\n provider: \"llmtech\",\n credentials: { llmtech: { apiKey: process.env.LLMTECHAPIKEY } },\n});\n`","hierarchy":{"lvl0":"Getting Started","lvl1":"LLM Tech Provider Guide","lvl2":"CLI","lvl3":""}},
|
|
6204
|
+
{"objectID":"b5fa69496ff70c080dda4c1441a3affb22cdb5af451240b42730fe754679e20b","title":"Models","url":"/docs/getting-started/providers/llmtech#models","content":"| Model | Context | Vision | $/M in · out | Notes |\n| ----------------------------- | ------- | ------ | ---------------------------- | ------------------------------------------------------------------------------------------------------------ |\n| nvidia/Qwen3.8-27B-NVFP4 ⭐ | 262,144 | yes | $0.25 / $2.09 (cached $0.04) | LLM Tech's only model. Reasoning-capable via enable_thinking/reasoning_effort. Max output 32,768 tokens. |\n\nContext window and max output shown are the catalog defaults (262,144 /\n32,768 tokens), taken directly from the model's own entry in the live,\nunauthenticated GET /v1/models response (context_length, max_output /\nmax_output_tokens) on 2026-09-28. Pricing is that same response's\npricing_per_m fields, which match the vendor's model page exactly.\n\nFallback order: none — nvidia/Qwen3.8-27B-NVFP4 is the only model LLM\nTech serves, so it is both the default and its own (schema-exempt)\nsingle-entry fallback list.","hierarchy":{"lvl0":"Getting Started","lvl1":"LLM Tech Provider Guide","lvl2":"Models","lvl3":""}},
|
|
6205
|
+
{"objectID":"3e40e905b2f00bde57191c0a25e271b4d7f862f9a5c99814f04971daa6b53458","title":"Verification status","url":"/docs/getting-started/providers/llmtech#verification-status","content":"Tier-2 onboarding requires evidence before a provider is accepted, and\npnpm run verify:provider-onboarding gates it in CI. This is what the\ncatalog records for LLM Tech — and, just as importantly, what it does not\nyet record:\n\n| Probe | Result |\n| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Roster | unauthenticated GET /v1/models, HTTP 200, 1 model, 2026-09-28. No API key was used or required for this call. |\n| Auth rejection | Not probed. Would require a POST with an invalid key, which this credential-free onboarding pass does not send. |\n| Live capability swe","hierarchy":{"lvl0":"Getting Started","lvl1":"LLM Tech Provider Guide","lvl2":"Verification status","lvl3":""}},
|
|
6206
|
+
{"objectID":"f36a72273ded19184dbcd462260dd97c726bb2c42d6968379f3eb07437edc334","title":"Troubleshooting","url":"/docs/getting-started/providers/llmtech#troubleshooting","content":"| Symptom | Cause | Fix |\n| ---------------------------- | ------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |\n| Invalid LLM Tech API key | LLMTECH_API_KEY unset or wrong | LLM Tech's docs do not publish an example auth-error body or code string; re-check the key with your issuer |\n| Model not found | The roster changed since 2026-09-28 | Re-check with an unauthenticated GET https://api.llmtech.eu/v1/models |\n| No signup page found | Expected — LLM Tech has no public signup page yet | Email artem@llmtech.eu for a key; self-service is planned but not live |\n| Unexpectedly high image cost | Image tokens bill at the input rate | Budget accordingly — a 64×64 PNG costs 64 image tokens per the vendor's own example |","hierarchy":{"lvl0":"Getting Started","lvl1":"LLM Tech Provider Guide","lvl2":"Troubleshooting","lvl3":""}},
|
|
6207
|
+
{"objectID":"160b8e6a39448befac327c73ecf1d5e44c727eb42f971a9684f784e542ee0fab","title":"See also","url":"/docs/getting-started/providers/llmtech#see-also","content":"Provider setup overview\nAll providers\nTier-2 onboarding — how this provider's JSON becomes a working integration\nProvider feature compatibility","hierarchy":{"lvl0":"Getting Started","lvl1":"LLM Tech Provider Guide","lvl2":"See also","lvl3":""}},
|
|
6065
6208
|
{"objectID":"9b352021ed42438f8f42276f48fc256a103f6b03bb182ab9323ced6edf8db671","title":"LM Studio Provider Guide","url":"/docs/getting-started/providers/lm-studio","content":"LM Studio Provider Guide\n\nRun any GGUF model privately on your own hardware — no cloud, no API key required\n\nOverview\n\nLM Studio is a desktop application that lets you download and run thousands of GGUF-format models (Llama, Mistral, Qwen, Phi, Gemma, and many more) locally on macOS, Windows, or Linux. When you start LM Studio's built-in server it exposes an OpenAI-compatible API at http://localhost:1234/v1.\n\nNeuroLink's lm-studio provider connects to this server and automatically discovers the loaded model by calling /v1/models at request time. You do not need to specify a model name unless you want to pin a specific one.\n\nKey Facts\nRuns locally: No data leaves your machine\nNo API key needed: LM Studio's server accepts any key (NeuroLink sends a placeholder)\nAuto-discovery: Omit model: and NeuroLink fetches the currently loaded model from /v1/models\nDefault base URL: http://localhost:1234/v1\nVision: Depends on the loaded model (e.g., LLaVA, Qwen-VL, Llama 3.2 Vision variants support images)\nStreaming: Supported\nTool calling: Depends on the loaded model\n\nQuick Start\nDownload and Start LM Studio\nDownload LM Studio from https://lmstudio.ai for your platform.\nOpen the app and search for a model in the Discover tab (e.g., Llama 3.2 3B Instruct).\nClick Download and wait for it to complete.\nGo to the Local Server tab (icon that looks like <->).\nSelect the model you downloaded and click Start Server.\n\nThe server starts on http://localhost:1234 by default.\nConfigure Environment (Optional)\n\nNo environment variables are required for a default setup. Optionally:\nInstall NeuroLink\nGenerate Your First Response\n\nAuto-discovery: NeuroLink calls /v1/models and uses the first loaded model.\n\nModel Auto-Discovery\n\nWhen no model is specified (and LM_STUDIO_MODEL is empty), the provider calls GET /v1/models with a 5-second timeout. It picks the first model returned — whichever is currently loaded in LM Studio.\n\nIf discovery fails (server not running, no model loaded), the provider falls back to a \"local-model\" placeholder and logs a warning. The next call will re-attempt discovery, so there is no need to restart your Node process after starting LM Studio.\n\nTo pin a specific model, pass it explicitly:\n\nSDK Usage\n\nBasic Generation (Auto-Discover)\n\nStreaming\n\nPer-Call Base URL Override\n\nUseful if you run LM Studio on a different machine on your local network, or on a non-default port.\n\nIf your LM Studio server is behind an auth-proxying reverse-proxy (rare), pass the key too:\n\nCLI Usage\n\nBasic Commands\n\nProvider Aliases\n\n| Alias | Example |\n| ----------- | ---------------------- |\n| lm-studio | --provider lm-studio |\n| lmstudio | --provider lmstudio |\n| lms | --provider lms |\n\nConfiguration Reference\n\n| Environment Variable | Required | Default | Description |\n| -------------------- | -------- | -------------------------- | ----------------------------------------------------------- |\n| LM_STUDIO_BASE_URL | No | http://localhost:1234/v1 | Base URL of the LM Studio server |\n| LM_STUDIO_MODEL | No | \"\" (auto-discover) | Specific model ID to use; leave blank for auto-discovery |\n| LM_STUDIO_API_KEY | No | lm-studio (placeholder) | Auth token — only needed for reverse-proxy setups with auth |\n\nFeature Support\n\n| Feature | Supported | Notes |\n| --------------- | --------------- | ------------------------------------------------------ |\n| Text generation | Yes | |\n| Streaming | Yes | |\n| Tool calling | Model-dependent | Requires a model that understands function-call syntax |\n| Vision / images | Model-dependent | Load a vision model (e.g., LLaVA, Qwen-VL) |\n| Embeddings | No | Use OpenAI or another embeddings provider |\n| Auto-discovery | Yes | Fetches active model from /v1/models at request time |\n\nTroubleshooting\n\n\"LM Studio server not reachable\"\n\nThe server is not running or is on a different URL.\nOpen LM Studio and go to the Local Server tab.\nSelect a model and click Start Server.\nConfirm the port shown (default: 1234) matches LM_STUDIO_BASE_URL.\n\n\"Load a model in the LM Studio app\"\n\nLM Studio's server returned an empty model list. Go to the Local Server tab, select a model from the dropdown, and click the load/start button.\n\n\"LM Studio model X is not loaded\"\n\nYou pinned a specific model ID (LM_STUDIO_MODEL or model: in SDK/CLI), but that model is not loaded in LM Studio. Either load the model in the app or leave the model field blank to use whatever is already loaded.\n\n\"LM Studio request timed out\"\n\nLarge models on CPU-only machines can be very slow. Try:\nA smaller quantised model (Q4 instead of Q8)\nA model with fewe","hierarchy":{"lvl0":"Getting Started","lvl1":"LM Studio Provider Guide","lvl2":"","lvl3":""}},
|
|
6066
6209
|
{"objectID":"04cbfa82c6b9e6b5fca27bfed0f5bff0d5b5a4279884fe2b188445db7cb5a221","title":"LM Studio Provider Guide","url":"/docs/getting-started/providers/lm-studio#lm-studio-provider-guide","content":"Run any GGUF model privately on your own hardware — no cloud, no API key required","hierarchy":{"lvl0":"Getting Started","lvl1":"LM Studio Provider Guide","lvl2":"LM Studio Provider Guide","lvl3":""}},
|
|
6067
6210
|
{"objectID":"72e2c335f1e4ea21d64251048adf0c09709a4472cd7b8dcff66a6ba2f3bf4cda","title":"Overview","url":"/docs/getting-started/providers/lm-studio#overview","content":"LM Studio is a desktop application that lets you download and run thousands of GGUF-format models (Llama, Mistral, Qwen, Phi, Gemma, and many more) locally on macOS, Windows, or Linux. When you start LM Studio's built-in server it exposes an OpenAI-compatible API at http://localhost:1234/v1.\n\nNeuroLink's lm-studio provider connects to this server and automatically discovers the loaded model by calling /v1/models at request time. You do not need to specify a model name unless you want to pin a specific one.","hierarchy":{"lvl0":"Getting Started","lvl1":"LM Studio Provider Guide","lvl2":"Overview","lvl3":""}},
|
|
@@ -6149,6 +6292,16 @@
|
|
|
6149
6292
|
{"objectID":"6d79f2b788359a347d7dda7171d55bfc034a95941832eb7fe7654fa15f5b389a","title":"4. Slow Response Times","url":"/docs/getting-started/providers/mistral#4-slow-response-times","content":"Problem: Model or network latency.\n\nSolution:","hierarchy":{"lvl0":"Getting Started","lvl1":"Mistral AI Provider Guide","lvl2":"4. Slow Response Times","lvl3":""}},
|
|
6150
6293
|
{"objectID":"af2560f94acab6c8c4ff7ae0308d2429641f39306cd085cdc5c9b373d7dd253f","title":"Related Documentation","url":"/docs/getting-started/providers/mistral#related-documentation","content":"Provider Setup Guide - General provider configuration\nGDPR Compliance Guide - GDPR implementation\nCost Optimization - Reduce AI costs\nMulti-Region Deployment - Geographic distribution","hierarchy":{"lvl0":"Getting Started","lvl1":"Mistral AI Provider Guide","lvl2":"Related Documentation","lvl3":""}},
|
|
6151
6294
|
{"objectID":"026d126f5a442dcb09462db1c6224baf061378195dc6697a860665162dfaeb0c","title":"Additional Resources","url":"/docs/getting-started/providers/mistral#additional-resources","content":"Mistral AI Console - API keys and billing\nMistral AI Documentation - Official docs\nMistral Models - Model capabilities\nPricing - Current pricing\n\nNeed Help? Join our GitHub Discussions or open an issue.","hierarchy":{"lvl0":"Getting Started","lvl1":"Mistral AI Provider Guide","lvl2":"Additional Resources","lvl3":""}},
|
|
6295
|
+
{"objectID":"adceb3c4464d784e68ca168efc828990ea7d6c2f55811905c2a4752fb74f57c9","title":"Moark Provider Guide","url":"/docs/getting-started/providers/moark","content":"Moark Provider Guide\n\nMoark is a Tier-2 catalog provider: OpenAI-wire-compatible with no known\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/moark.json) rather than hand-written code. That\nfile is the source of truth for everything on this page.\n\nVerification status: docs- and roster-verified, not yet live-verified.\nThis entry was onboarded credential-free — no API key was created or used.\nEverything below comes from Moark's public docs\n(https://moark.com/docs/...) and an unauthenticated\nGET https://moark.com/v1/models (2026-09-28, HTTP 200, 222 models). No\nchat/completions request was ever sent, so capabilities, error shapes\nand per-model context/output limits are not wire-proven. Before relying\non this provider in production, run the live-verification steps in\nTier-2 onboarding\nwith a funded key.\n\nKey Facts\nProvider id: moark\nProtocol: OpenAI-compatible (/chat/completions) — Moark's docs state\n \"模力方舟的 Serverless API 兼容开发者喜爱且社区流行的 OpenAI 风格 API\"\n (docs/products/apis/texts/text-generation, retrieved 2026-09-28)\nBase URL: https://api.moark.com/v1\nDefault model: Qwen3-8B\nModels in catalog: 6 (of 222 live on the full roster — the rest are\n vision/image/video/audio/embedding/reranking models outside this entry's\n chat scope)\nStreaming: documented (stream=True via the OpenAI Python client)\nTool calling: documented, model-dependent — a dedicated Function\n Calling doc page shows the standard OpenAI tools / tool_choice /\n tool_calls shape, but only specific models are named as supporting it\nStructured output: not claimed here. Moark documents guided_json /\n guided_choice (vLLM-style guided-decoding parameters), not the OpenAI\n response_format field NeuroLink's generic client sends — no\n response_format wire example exists anywhere in the docs\nEmbeddings: not supported by this entry (embeddings is a separate\n Moark product/model family, out of scope for the chat catalog)\nBilling: no free tier documented for API access — prepaid resource\n packages only (models can be tried free in the web console, but that is\n not the same as a keyless API tier)\nKey format: none declared\n\nQuick Start\nGet an API key\nVisit: https://moark.com and sign in — no separate signup page is documented, only workbench login\nGo to 工作台 → 设置 → 访问令牌 (Workbench → Settings → Access Tokens) at https://moark.com/dashboard/tokens and create a token\nFund a prepaid resource package before making live calls (e.g. the all-model package, https://moark.com/serverless-api/order?package=1910) — billing is prepaid, charged per-call or per-token (https://moark.com/docs/products/apis, retrieved 2026-09-28); models can be tried free in the web console, but no formal free-tier API policy is documented, and package usage is non-refundable (https://moark.com/docs/billing/purchase, retrieved 2026-09-28)\nSet MOARK_API_KEY in your .env file\nConfigure\nUse it\n\nPer-request credentials work as they do for every provider:\n\nModels\n\n| Model | Vision | Notes |\n| ---------------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Qwen3-8B ⭐ | no | Recommended — Moark's own docs name this (and Qwen3-4B) as its suggested free-testing/validation model; the only documented recommendation that also matches a currently-live roster id. Not capability-probed. |\n| Qwen3-4B | no | Named alongside Qwen3-8B as a free testing/validation model; smaller sibling. Roster-listed only; fallback. |\n| ERNIE-4.5-Turbo | no | Baidu ERNIE 4.5 Turbo — Moark's docs suggest this for multilingual use cases. Roster-listed only; fallback. |\n| GLM-5.3 | no | Zhipu GLM-5.3 — on the live roster; not named specifically in Moark's docs. Roster-listed only; fallback. |\n| kimi-k3 | no | Moonshot AI Kimi K3 — closest live match to the docs' \"long text\" pick (kimi-k2-instruct, no longer on the roster). Roster-listed only; fallback. |\n| DeepSeek-V4-Pro-0813 | no | DeepSeek V4 Pro — closest live match to the docs' \"specialized reasoning\" pick (DeepSeek-R1, no longer on the roster). Roster-listed only; fallback. |\n\nNo context window, max output tokens or pricing are shown per mode","hierarchy":{"lvl0":"Getting Started","lvl1":"Moark Provider Guide","lvl2":"","lvl3":""}},
|
|
6296
|
+
{"objectID":"fa0a219783ca253345de89ec100b9efc5c41deec4793511c8ae2f0bf57fbbb03","title":"Moark Provider Guide","url":"/docs/getting-started/providers/moark#moark-provider-guide","content":"Moark is a Tier-2 catalog provider: OpenAI-wire-compatible with no known\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/moark.json) rather than hand-written code. That\nfile is the source of truth for everything on this page.\n\nVerification status: docs- and roster-verified, not yet live-verified.\nThis entry was onboarded credential-free — no API key was created or used.\nEverything below comes from Moark's public docs\n(https://moark.com/docs/...) and an unauthenticated\nGET https://moark.com/v1/models (2026-09-28, HTTP 200, 222 models). No\nchat/completions request was ever sent, so capabilities, error shapes\nand per-model context/output limits are not wire-proven. Before relying\non this provider in production, run the live-verification steps in\nTier-2 onboarding\nwith a funded key.","hierarchy":{"lvl0":"Getting Started","lvl1":"Moark Provider Guide","lvl2":"Moark Provider Guide","lvl3":""}},
|
|
6297
|
+
{"objectID":"ff61f7c5c50519e99210ba72065c10d04dece8af6ad8a7731593d2d59c2ee2aa","title":"Key Facts","url":"/docs/getting-started/providers/moark#key-facts","content":"Provider id: moark\nProtocol: OpenAI-compatible (/chat/completions) — Moark's docs state\n \"模力方舟的 Serverless API 兼容开发者喜爱且社区流行的 OpenAI 风格 API\"\n (docs/products/apis/texts/text-generation, retrieved 2026-09-28)\nBase URL: https://api.moark.com/v1\nDefault model: Qwen3-8B\nModels in catalog: 6 (of 222 live on the full roster — the rest are\n vision/image/video/audio/embedding/reranking models outside this entry's\n chat scope)\nStreaming: documented (stream=True via the OpenAI Python client)\nTool calling: documented, model-dependent — a dedicated Function\n Calling doc page shows the standard OpenAI tools / tool_choice /\n tool_calls shape, but only specific models are named as supporting it\nStructured output: not claimed here. Moark documents guided_json /\n guided_choice (vLLM-style guided-decoding parameters), not the OpenAI\n response_format field NeuroLink's generic client sends — no\n response_format wire example exists anywhere in the docs\nEmbeddings: not supported by this entry (embeddings is a separate\n Moark product/model family, out of scope for the chat catalog)\nBilling: no free tier documented for API access — prepaid resource\n packages only (models can be tried free in the web console, but that is\n not the same as a keyless API tier)\nKey format: none declared","hierarchy":{"lvl0":"Getting Started","lvl1":"Moark Provider Guide","lvl2":"Key Facts","lvl3":""}},
|
|
6298
|
+
{"objectID":"b3d7b97002e147f7c4455caa722ba8475d0675ecf2f8f75bbcb496b8b2d02a17","title":"1. Get an API key","url":"/docs/getting-started/providers/moark#1-get-an-api-key","content":"Visit: https://moark.com and sign in — no separate signup page is documented, only workbench login\nGo to 工作台 → 设置 → 访问令牌 (Workbench → Settings → Access Tokens) at https://moark.com/dashboard/tokens and create a token\nFund a prepaid resource package before making live calls (e.g. the all-model package, https://moark.com/serverless-api/order?package=1910) — billing is prepaid, charged per-call or per-token (https://moark.com/docs/products/apis, retrieved 2026-09-28); models can be tried free in the web console, but no formal free-tier API policy is documented, and package usage is non-refundable (https://moark.com/docs/billing/purchase, retrieved 2026-09-28)\nSet MOARK_API_KEY in your .env file","hierarchy":{"lvl0":"Getting Started","lvl1":"Moark Provider Guide","lvl2":"1. Get an API key","lvl3":""}},
|
|
6299
|
+
{"objectID":"ace1ff770b8c18a187a60c500675d9151603381418cc77e55b53146772471521","title":"3. Use it","url":"/docs/getting-started/providers/moark#3-use-it","content":"`bash","hierarchy":{"lvl0":"Getting Started","lvl1":"Moark Provider Guide","lvl2":"3. Use it","lvl3":""}},
|
|
6300
|
+
{"objectID":"1ec828e085f7555f31246821796d031185b3d4eb1d71fb38b4c45ce23f75ee75","title":"CLI","url":"/docs/getting-started/providers/moark#cli","content":"npx @juspay/neurolink generate \"Hello\" --provider moark\ntypescript\nawait neurolink.generate({\n input: { text: \"Hello\" },\n provider: \"moark\",\n credentials: { moark: { apiKey: process.env.MOARKAPIKEY } },\n});\n`","hierarchy":{"lvl0":"Getting Started","lvl1":"Moark Provider Guide","lvl2":"CLI","lvl3":""}},
|
|
6301
|
+
{"objectID":"fe5be7860c7a5cf14f724dcf564ede97206f762b8fdd3e9e4693e3944970ffae","title":"Models","url":"/docs/getting-started/providers/moark#models","content":"| Model | Vision | Notes |\n| ---------------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Qwen3-8B ⭐ | no | Recommended — Moark's own docs name this (and Qwen3-4B) as its suggested free-testing/validation model; the only documented recommendation that also matches a currently-live roster id. Not capability-probed. |\n| Qwen3-4B | no | Named alongside Qwen3-8B as a free testing/validation model; smaller sibling. Roster-listed only; fallback. |\n| ERNIE-4.5-Turbo | no | Baidu ERNIE 4.5 Turbo — Moark's docs suggest this for multilingual use cases. Roster-listed only; fallback. |\n| GLM-5.3 | no | Zhipu GLM-5.3 — on the live roster; not named specifically in Moark's docs. Roster-listed only; fallback. |\n| kimi-k3 | no | Moonshot AI Kimi K3 — closest live match to the docs' \"long text\" pick (kimi-k2-instruct, no longer on the roster). Roster-listed only; fallback. |\n| DeepSeek-V4-Pro-0813 | no | DeepSeek V4 Pro — closest live match to the docs' \"specialized reasoning\" pick (DeepSeek-R1, no longer on the roster). Roster-listed only; fallback. |\n\nNo context window, max output tokens","hierarchy":{"lvl0":"Getting Started","lvl1":"Moark Provider Guide","lvl2":"Models","lvl3":""}},
|
|
6302
|
+
{"objectID":"3b83698318a22fb8015c4fba394fcaa63da10ed1e961d12897dbf67f6410dccd","title":"Verification status","url":"/docs/getting-started/providers/moark#verification-status","content":"Tier-2 onboarding requires evidence before a provider is accepted, and\npnpm run verify:provider-onboarding gates it in CI. This is what the\ncatalog currently records for Moark — deliberately thinner than a\nlive-verified entry, since no key was created:\n\n| Probe | Result |\n| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Roster | unauthenticated GET https://moark.com/v1/models, HTTP 200, 222 models, 2026-09-28 |\n| Docs cross-check | docs/openapi/v1, docs/products/apis, docs/products/apis/texts/text-generation, docs/products/apis/texts/function-calling, docs/billing/purchase — all fetched 2026-09-28, confirm OpenAI-compatible wire shape, Bearer auth, and prepaid billing |\n| Auth rejection | not probed — would require a POST request, out of scope for credential-free onboarding |\n| Live capability sweep | not run — no key was created or used |\n\nBecause no authenticated or POST request was made, capabilities.tools is\nrecorded as \"model","hierarchy":{"lvl0":"Getting Started","lvl1":"Moark Provider Guide","lvl2":"Verification status","lvl3":""}},
|
|
6303
|
+
{"objectID":"45340dcdd3f1c711d874178072b930664a8298ac66f0e7005cf30fdca7363fbf","title":"Troubleshooting","url":"/docs/getting-started/providers/moark#troubleshooting","content":"| Symptom | Cause | Fix |\n| ------------------------------------------ | ---------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |\n| Requests fail with an auth-shaped error | MOARK_API_KEY unset, wrong, or the account has no funded package | Check the token at https://moark.com/dashboard/tokens and confirm a prepaid package is active |\n| Model not found | The roster changed since 2026-09-28 | Pick a current id from the unauthenticated GET https://moark.com/v1/models roster |\n| Structured output not returned as expected | This entry doesn't send response_format — Moark only documents guided_json/guided_choice | Not currently wired through the generic OpenAI-compat client; treat structuredOutput as unsupported until a live probe proves otherwise |\n| Tool calls silently ignored | Function calling is documented as model-dependent, not universal | Confirm the chosen model is one of Moark's documented Function-Calling models before relying on tools |","hierarchy":{"lvl0":"Getting Started","lvl1":"Moark Provider Guide","lvl2":"Troubleshooting","lvl3":""}},
|
|
6304
|
+
{"objectID":"e716f0196dff4264a6cf90d4f76e00e364f8a9ad052afed344476189ee5c8e5d","title":"See also","url":"/docs/getting-started/providers/moark#see-also","content":"Provider setup overview\nAll providers\nTier-2 onboarding — how this provider's JSON becomes a working integration, and the live-verification steps this entry still needs\nProvider feature compatibility","hierarchy":{"lvl0":"Getting Started","lvl1":"Moark Provider Guide","lvl2":"See also","lvl3":""}},
|
|
6152
6305
|
{"objectID":"2ab4fa325c367a5d32539b2362c5e11083701804fdec34015f682453e40c3f16","title":"Morph Provider Guide","url":"/docs/getting-started/providers/morph","content":"Morph Provider Guide\n\nMorph is a Tier-2 catalog provider: OpenAI-wire-compatible with one\ndocumented quirk, so its entire integration is one JSON file\n(src/lib/providers/catalog/morph.json) rather than hand-written code. That\nfile is the source of truth for everything on this page.\n\nKey Facts\nProvider id: morph (alias: morphllm)\nProtocol: OpenAI-compatible (/chat/completions)\nBase URL: https://api.morphllm.com/v1\nDefault model: morph-v3-large\nModels in catalog: 2\nStreaming: supported\nTool calling: not supported — Morph's catalog entry declares\n tools: false. morph-v3-large echoes a literal <tool_call>... block as\n plain text instead of a structured tool call, and morph-v3-fast ignores\n the tools parameter entirely.\nStructured output: supported (response_format: json_object/schema)\nEmbeddings: not supported\nQuirk — messageContentFormat: \"string\": Morph rejects the OpenAI\n content-parts array format (and the null content OpenAI sends on an\n assistant message with tool calls) with HTTP 500. NeuroLink's\n ConfiguredOpenAICompatProvider normalizes every message to a plain string\n before sending, so this should not surface as an error in normal use.\nBilling: free-with-card — a payment method must be on file; until one is\n added, calls are rate-limited to 5 requests/minute\nKey format: none declared\n\nQuick Start\nGet an API key\nVisit: https://morphllm.com/dashboard and sign in\nAdd a payment method (required to lift the 5 req/min limit)\nGenerate an API key from the dashboard\nSet MORPH_API_KEY in your .env file\nConfigure\nUse it\n\nPer-request credentials work as they do for every provider:\n\nModels\n\n| Model | Context | Vision | $/M in · out | Notes |\n| ------------------- | ------- | ------ | ------------ | ---------------------------------------------------------------------------------------------------------------------------- |\n| morph-v3-large ⭐ | 262K | no | $0.9 / $1.9 | Recommended default; a \"Fast Apply\" code-editing model. Emits tool-call syntax as literal text rather than a real tool call. |\n| morph-v3-fast | 262K | no | $0.8 / $1.2 | Faster/cheaper sibling; silently ignores the tools parameter if one is sent. |\n\nBoth models share a 262,144-token context window and a 131,072-token max\noutput, per the catalog default.\n\nFallback order when the default is unavailable: morph-v3-fast.\n\nVerification status\n\nTier-2 onboarding requires evidence before a provider is accepted, and\npnpm run verify:provider-onboarding gates it in CI. This is what the\ncatalog records for Morph:\n\n| Probe | Result |\n| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Roster | authenticated GET /v1/models, HTTP 200, 2026-09-05 |\n| Auth rejection | HTTP 401, 2026-09-05 |\n| Live capability sweep | 2026-09-05, probed against both models. Plain chat and streaming worked on each. Sending OpenAI's content-parts array format returned HTTP 500 (confirming the need for messageContentFormat: \"string\"). Tool-call requests did not produce a real tool call on either model","hierarchy":{"lvl0":"Getting Started","lvl1":"Morph Provider Guide","lvl2":"","lvl3":""}},
|
|
6153
6306
|
{"objectID":"f68406102c7c069850141b967ce4866758e0c65095a1039e3985669272af7625","title":"Morph Provider Guide","url":"/docs/getting-started/providers/morph#morph-provider-guide","content":"Morph is a Tier-2 catalog provider: OpenAI-wire-compatible with one\ndocumented quirk, so its entire integration is one JSON file\n(src/lib/providers/catalog/morph.json) rather than hand-written code. That\nfile is the source of truth for everything on this page.","hierarchy":{"lvl0":"Getting Started","lvl1":"Morph Provider Guide","lvl2":"Morph Provider Guide","lvl3":""}},
|
|
6154
6307
|
{"objectID":"a26649858683fee922e2e57d913ee768465b9570afcf662a56b8c76e6b5e7ad7","title":"Key Facts","url":"/docs/getting-started/providers/morph#key-facts","content":"Provider id: morph (alias: morphllm)\nProtocol: OpenAI-compatible (/chat/completions)\nBase URL: https://api.morphllm.com/v1\nDefault model: morph-v3-large\nModels in catalog: 2\nStreaming: supported\nTool calling: not supported — Morph's catalog entry declares\n tools: false. morph-v3-large echoes a literal <tool_call>... block as\n plain text instead of a structured tool call, and morph-v3-fast ignores\n the tools parameter entirely.\nStructured output: supported (response_format: json_object/schema)\nEmbeddings: not supported\nQuirk — messageContentFormat: \"string\": Morph rejects the OpenAI\n content-parts array format (and the null content OpenAI sends on an\n assistant message with tool calls) with HTTP 500. NeuroLink's\n ConfiguredOpenAICompatProvider normalizes every message to a plain string\n before sending, so this should not surface as an error in normal use.\nBilling: free-with-card — a payment method must be on file; until one is\n added, calls are rate-limited to 5 requests/minute\nKey format: none declared","hierarchy":{"lvl0":"Getting Started","lvl1":"Morph Provider Guide","lvl2":"Key Facts","lvl3":""}},
|
|
@@ -6166,6 +6319,17 @@
|
|
|
6166
6319
|
{"objectID":"55f78bb7169dd54c105fe7d829e4af0ac82635046bebf48350dedf086711b09d","title":"1. Get a Replicate Token","url":"/docs/getting-started/providers/musetalk#1-get-a-replicate-token","content":"https://replicate.com/account/api-tokens","hierarchy":{"lvl0":"Getting Started","lvl1":"MuseTalk Provider Guide (avatar via Replicate)","lvl2":"1. Get a Replicate Token","lvl3":""}},
|
|
6167
6320
|
{"objectID":"1a32a023806e0bc683c11be23cd003efd38edcb7da8ee2eb9dbf0632d7fdc93f","title":"Configuration Reference","url":"/docs/getting-started/providers/musetalk#configuration-reference","content":"| Environment Variable | Required | Description |\n| --------------------- | -------- | ------------------------ |\n| REPLICATE_API_TOKEN | Yes | Replicate token (shared) |","hierarchy":{"lvl0":"Getting Started","lvl1":"MuseTalk Provider Guide (avatar via Replicate)","lvl2":"Configuration Reference","lvl3":""}},
|
|
6168
6321
|
{"objectID":"ec367313e5b5dd65b2c473ea1344e2aea7697fad04c59fb75468e1f4689bc75a","title":"See Also","url":"/docs/getting-started/providers/musetalk#see-also","content":"HeyGen Provider\nD-ID Provider\nReplicate Provider","hierarchy":{"lvl0":"Getting Started","lvl1":"MuseTalk Provider Guide (avatar via Replicate)","lvl2":"See Also","lvl3":""}},
|
|
6322
|
+
{"objectID":"9ee84001880054dc120872451354ebb095f08f321c298722e4a9424b9041ee5b","title":"Neuralwatt Provider Guide","url":"/docs/getting-started/providers/neuralwatt","content":"Neuralwatt Provider Guide\n\nNeuralwatt is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/neuralwatt.json) rather than hand-written code.\nThat file is the source of truth for everything on this page.\n\nVerification status: this entry is docs- and roster-verified, not yet\nlive-verified. It was onboarded credential-free — no API key was created,\nno signup was completed, and no authenticated or POST request was sent to\nNeuralwatt. Everything below comes from Neuralwatt's public documentation\n(docs.neuralwatt.com) and an unauthenticated GET /v1/models call. See\nLive verification for what a follow-up\npass with a real key still needs to confirm.\n\nKey Facts\nProvider id: neuralwatt\nProtocol: OpenAI-compatible (/chat/completions)\nBase URL: https://api.neuralwatt.com/v1\nDefault model: glm-5.3 — the model used in every code sample on\n Neuralwatt's own quickstart page (curl, Python and Node.js)\nModels in catalog: 8 (of 21 on the live roster; see\n Models)\nStreaming: supported (stream: true, SSE, terminal data: [DONE])\nTool calling: model-dependent. Neuralwatt's own tool-calling guide\n states plainly that \"not all models support tool calling\" and directs\n callers to check each model's capabilities before relying on it — every\n model in this catalog currently reports tools: true on the live roster,\n but that can change per model, so NeuroLink declares this\n \"model-dependent\" rather than a blanket true.\nStructured output: not documented. The /v1/models roster exposes\n a json_mode: true capability flag on every model, but the chat-completions\n API reference does not document a response_format parameter anywhere —\n neither json_object nor json_schema mode is described. Because the\n request-side contract isn't documented, capabilities.structuredOutput is\n left false here rather than trusted from the flag alone.\nTools + streaming together / tools + structured output together: not\n documented and not probed (credential-free onboarding), so both are false.\nEmbeddings: not supported (no embeddings endpoint in the docs)\nThinking / reasoning: supported — reasoning_effort\n (none/minimal/low/medium/high/xhigh/max) and\n thinking_token_budget are documented request parameters, and each\n model's roster entry declares its own reasoning defaults.\nBilling: free-with-card — new accounts start at a $0 balance; adding a\n payment method grants a $1.00 trial credit valid 30 days, then usage is\n pay-per-token\nKey format: starts with sk-; full character set not specified in the\n docs, so apiKeyFormat is left null rather than guessed\nNotable extras: per-request energy and cost reporting via SSE comment\n lines (: energy {...}, : cost {...}) and X-Request-Cost-USD headers —\n not modeled by NeuroLink's catalog schema and not required for the\n integration to work\n\nQuick Start\nGet an API key\nVisit: https://portal.neuralwatt.com and sign up\nAdd a payment method in Dashboard > Billing — new accounts start with\n a $0 balance, and adding a card grants $1.00 in free trial credit (no\n charge is made; the credit is valid for 30 days)\nNavigate to Dashboard > API Keys and create a new key — copy it\n immediately, it is shown in full only once and starts with sk-\nSet NEURALWATT_API_KEY in your .env file\nConfigure\nUse it\n\nPer-request credentials work as they do for every provider:\n\nModels\n\n| Model | Context | Max output | Vision | $/M in · out · cached | Notes |\n| --------------------- | ------- | ---------- | ------ | ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| glm-5.3 ⭐ | 1M | — | no | $1.45 / $4.50 / $0.145 | ZhipuAI GLM 5.3 — used in every quickstart code sample; reasoning is mandatory on this model (default effort max). Max output tokens undocumented for this model on the roster. |\n| glm-5.3-flash | 1M | — | yes | $0.15 / $0.50 / $0.03 | Lighter/cheaper GLM 5.3 sibling; roster-listed only; fallback. |\n| qwen-3.8-27b | 262K | 131,072 | yes | $0.45 / $3.20 / $0.25 | Dense 27B VL model; first entry on the live roster; used as models.visionModel (documented image limits: 20 images/request, 200 total). |\n| qwen3.6-35b | 262K | — | yes | $0.29 / $1.15 / $0.029 | Roster-listed only; fallback. |\n| ki","hierarchy":{"lvl0":"Getting Started","lvl1":"Neuralwatt Provider Guide","lvl2":"","lvl3":""}},
|
|
6323
|
+
{"objectID":"ebb52ca21583bbf36bcbdc5612eb0138e0881b286b938ac8316f75c92efaa737","title":"Neuralwatt Provider Guide","url":"/docs/getting-started/providers/neuralwatt#neuralwatt-provider-guide","content":"Neuralwatt is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/neuralwatt.json) rather than hand-written code.\nThat file is the source of truth for everything on this page.\n\nVerification status: this entry is docs- and roster-verified, not yet\nlive-verified. It was onboarded credential-free — no API key was created,\nno signup was completed, and no authenticated or POST request was sent to\nNeuralwatt. Everything below comes from Neuralwatt's public documentation\n(docs.neuralwatt.com) and an unauthenticated GET /v1/models call. See\nLive verification for what a follow-up\npass with a real key still needs to confirm.","hierarchy":{"lvl0":"Getting Started","lvl1":"Neuralwatt Provider Guide","lvl2":"Neuralwatt Provider Guide","lvl3":""}},
|
|
6324
|
+
{"objectID":"7effc4600445d624fd6571ae01886904fb112c791a8916e4fe8a2c768f0e0692","title":"Key Facts","url":"/docs/getting-started/providers/neuralwatt#key-facts","content":"Provider id: neuralwatt\nProtocol: OpenAI-compatible (/chat/completions)\nBase URL: https://api.neuralwatt.com/v1\nDefault model: glm-5.3 — the model used in every code sample on\n Neuralwatt's own quickstart page (curl, Python and Node.js)\nModels in catalog: 8 (of 21 on the live roster; see\n Models)\nStreaming: supported (stream: true, SSE, terminal data: [DONE])\nTool calling: model-dependent. Neuralwatt's own tool-calling guide\n states plainly that \"not all models support tool calling\" and directs\n callers to check each model's capabilities before relying on it — every\n model in this catalog currently reports tools: true on the live roster,\n but that can change per model, so NeuroLink declares this\n \"model-dependent\" rather than a blanket true.\nStructured output: not documented. The /v1/models roster exposes\n a json_mode: true capability flag on every model, but the chat-completions\n API reference does not document a response_format parameter anywhere —\n neither json_object nor json_schema mode is described. Because the\n request-side contract isn't documented, capabilities.structuredOutput is\n left false here rather than trusted from the flag alone.\nTools + streaming together / tools + structured output together: not\n documented and not probed (credential-free onboarding), so both are false.\nEmbeddings: not supported (no embeddings endpoint in the docs)\nThinking / reasoning: supported — reasoning_effort\n (none/minimal/low/medium/high/xhigh/max) and\n thinking_token_budget are documented request parameters, and each\n model's roster entry declares its own reasoning defaults.\nBilling: free-with-card — new accounts start at a $0 balance; adding a\n payment method grants a $1.00 trial credit valid 30 days, then usage is\n pay-per-token\nKey format: starts with sk-; full character set not specified in the\n docs, so apiKeyFormat is left null rather than guessed\nNotable extras: per-request energy and cost reporting via SSE comment\n lines (: energy {...}, : cost","hierarchy":{"lvl0":"Getting Started","lvl1":"Neuralwatt Provider Guide","lvl2":"Key Facts","lvl3":""}},
|
|
6325
|
+
{"objectID":"7f29cb3e5fef58bc025690d3ec569321ea2a836381f73cba452e5b910e32bb81","title":"1. Get an API key","url":"/docs/getting-started/providers/neuralwatt#1-get-an-api-key","content":"Visit: https://portal.neuralwatt.com and sign up\nAdd a payment method in Dashboard > Billing — new accounts start with\n a $0 balance, and adding a card grants $1.00 in free trial credit (no\n charge is made; the credit is valid for 30 days)\nNavigate to Dashboard > API Keys and create a new key — copy it\n immediately, it is shown in full only once and starts with sk-\nSet NEURALWATT_API_KEY in your .env file","hierarchy":{"lvl0":"Getting Started","lvl1":"Neuralwatt Provider Guide","lvl2":"1. Get an API key","lvl3":""}},
|
|
6326
|
+
{"objectID":"213cde849a9aaa02f40aaead19cf61af98fc2d5ddba8fec8385b16ae484091e5","title":"3. Use it","url":"/docs/getting-started/providers/neuralwatt#3-use-it","content":"`bash","hierarchy":{"lvl0":"Getting Started","lvl1":"Neuralwatt Provider Guide","lvl2":"3. Use it","lvl3":""}},
|
|
6327
|
+
{"objectID":"d89ba68162af08b06c60359356c194e9a3277864f1919f1dd9f8bd3e8d0c47af","title":"CLI","url":"/docs/getting-started/providers/neuralwatt#cli","content":"npx @juspay/neurolink generate \"Hello\" --provider neuralwatt\ntypescript\nawait neurolink.generate({\n input: { text: \"Hello\" },\n provider: \"neuralwatt\",\n credentials: { neuralwatt: { apiKey: process.env.NEURALWATTAPIKEY } },\n});\n`","hierarchy":{"lvl0":"Getting Started","lvl1":"Neuralwatt Provider Guide","lvl2":"CLI","lvl3":""}},
|
|
6328
|
+
{"objectID":"34da059a73175030750c72af919f6545ad2a02a948d6b8d8bad093da78f3ca76","title":"Models","url":"/docs/getting-started/providers/neuralwatt#models","content":"| Model | Context | Max output | Vision | $/M in · out · cached | Notes |\n| --------------------- | ------- | ---------- | ------ | ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| glm-5.3 ⭐ | 1M | — | no | $1.45 / $4.50 / $0.145 | ZhipuAI GLM 5.3 — used in every quickstart code sample; reasoning is mandatory on this model (default effort max). Max output tokens undocumented for this model on the roster. |\n| glm-5.3-flash | 1M | — | yes | $0.15 / $0.50 / $0.03 | Lighter/cheaper GLM 5.3 sibling; roster-listed only; fallback. |\n| qwen-3.8-27b | 262K | 131,072 | yes | $0.45 / $3.20 / $0.25 | Dense 27B VL model; first entry on the live roster; used as models.visionModel (documented image limits: 20 images/request, 200 total). |\n| qwen3.6-35b | 262K | — | yes | $0.29 / $1.15 / $0.029 | Roster-listed only; fallback. |\n| kimi-k2.7-code | 262K | — | yes | $0.95 / $4.00 / $0.095 | MoonshotAI's code-oriented Kimi model; roster-listed only; fallback. |\n| kimi-k3 | 1M | — | yes | $3.00 / $15.00 / $0.30 | MoonshotAI's general-purpose Kimi model; roster-listed only; fallback. ","hierarchy":{"lvl0":"Getting Started","lvl1":"Neuralwatt Provider Guide","lvl2":"Models","lvl3":""}},
|
|
6329
|
+
{"objectID":"d2786ebcabcd4b240b01913a9311b2a240fefbb4ae5ef12337ea6a68c66e70c6","title":"Live verification (still needed)","url":"/docs/getting-started/providers/neuralwatt#live-verification-still-needed","content":"This entry was onboarded without credentials, from Neuralwatt's public\ndocumentation and an unauthenticated GET /v1/models call only. It is\ndocs- and roster-verified, not live-verified. Before treating it as\nfully proven, a follow-up pass with a real API key should run the Tier-2\nlive-verification steps\n(Tier-2 onboarding: live verification):\nAuth rejection — confirm the documented 401\n {\"error\":{\"message\":\"Invalid API key\",\"type\":\"authentication_error\",\"code\":\"invalid_api_key\"}}\n shape actually comes back for a bad key.\nCapability probe — confirm tools actually works for glm-5.3 (and\n check whether it varies across the roster, per Neuralwatt's own \"not all\n models support tool calling\" caveat) before ever promoting\n capabilities.tools off \"model-dependent\".\nStructured output — Neuralwatt does not document a response_format\n parameter at all, despite the roster exposing a json_mode capability\n flag. A live probe should establish whether response_format is silently\n accepted, ignored, or rejected before capabilities.structuredOutput is\n ever set to true.\nTools + streaming, tools + structured output — both undocumented and\n unprobed; a combined live request is required before setting either to\n true.\nevidence.liveMatrix — currently null in the catalog JSON; fill it\n in once the above is run, per\n pnpm run verify:provider-onboarding.","hierarchy":{"lvl0":"Getting Started","lvl1":"Neuralwatt Provider Guide","lvl2":"Live verification (still needed)","lvl3":""}},
|
|
6330
|
+
{"objectID":"75b06e1f26a0574b63f89cd8fadc9114bb7b62f833bfd89bc35fb062d813ee6a","title":"Verification status","url":"/docs/getting-started/providers/neuralwatt#verification-status","content":"This is what the catalog currently records for Neuralwatt:\n\n| Probe | Result |\n| --------------------- | -------------------------------------------------------------------------------------------------------------------------- |\n| Roster | unauthenticated GET https://api.neuralwatt.com/v1/models, HTTP 200, 21 models, 2026-09-28 — credential-free, no key used |\n| Auth rejection | not attempted — this onboarding sent no authenticated or POST request to Neuralwatt |\n| Live capability sweep | not run (evidence.liveMatrix: null) — see Live verification |","hierarchy":{"lvl0":"Getting Started","lvl1":"Neuralwatt Provider Guide","lvl2":"Verification status","lvl3":""}},
|
|
6331
|
+
{"objectID":"58508e93913a3f2aa569fc8176d05415e4a7dede6268d530cc52542cb1d930f2","title":"Troubleshooting","url":"/docs/getting-started/providers/neuralwatt#troubleshooting","content":"| Symptom | Cause | Fix |\n| ------------------------------------ | ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |\n| Invalid Neuralwatt API key | NEURALWATT_API_KEY unset or wrong | Check the key in the portal's Dashboard > API Keys at https://portal.neuralwatt.com |\n| Model not found | The roster changed since 2026-09-28 | Pick a current id from the unauthenticated GET /v1/models roster |\n| Tool calls silently not made | The model doesn't support tool calling (varies per model per Neuralwatt's own docs) | Check the model's capabilities.tools on GET /v1/models before relying on tool calling on it |\n| Structured output not honored | response_format is undocumented on Neuralwatt's chat-completions endpoint | Don't rely on response_format; NeuroLink's coerceJsonToSchema repair layer is the fallback for generate({ schema }) |\n| Missing energy/cost data in a stream | Comes through as SSE comment lines (: energy {...}, : cost {...}), which standard SSE/OpenAI-SDK clients drop | Parse the raw stream if you need it; not required for normal generation |","hierarchy":{"lvl0":"Getting Started","lvl1":"Neuralwatt Provider Guide","lvl2":"Troubleshooting","lvl3":""}},
|
|
6332
|
+
{"objectID":"773baf1cee1951229151c065963c7e75fe3c7de07793414d6183d5575ef4cd78","title":"See also","url":"/docs/getting-started/providers/neuralwatt#see-also","content":"Provider setup overview\nAll providers\nTier-2 onboarding — how this provider's JSON becomes a working integration\nProvider feature compatibility","hierarchy":{"lvl0":"Getting Started","lvl1":"Neuralwatt Provider Guide","lvl2":"See also","lvl3":""}},
|
|
6169
6333
|
{"objectID":"01f26eb3be90c213d775b9a11bc419e57fab28c8940ab7889d48e98c7e4c4a29","title":"Novita AI Provider Guide","url":"/docs/getting-started/providers/novita","content":"Novita AI Provider Guide\n\nNovita AI is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/novita.json) rather than hand-written code. That\nfile is the source of truth for everything on this page.\n\nKey Facts\nProvider id: novita\nProtocol: OpenAI-compatible (/chat/completions)\nBase URL: https://api.novita.ai/openai/v1\nDefault model: zai-org/glm-5.3-flash\nModels in catalog: 5\nStreaming: supported\nTool calling: supported (native)\nStructured output: supported, including together with tool calling in\n the same request — Novita is verified to accept tools and\n response_format at once, unlike several sibling catalog providers.\nEmbeddings: not supported\nBilling: free-tier\nKey format: keys match ^sk_[A-Za-z0-9_-]+$\n\nQuick Start\nGet an API key\nVisit: https://novita.ai/settings/key-management and sign in\nGenerate an API key (it will start with sk_)\nSet NOVITA_API_KEY in your .env file\nConfigure\nUse it\n\nPer-request credentials work as they do for every provider:\n\nModels\n\n| Model | Context | Vision | $/M in · out | Notes |\n| ----------------------------------- | ------- | ------ | ------------------------------ | ------------------------------------------------------------------------------------------------------------- |\n| zai-org/glm-5.3-flash ⭐ | 128K | no | $0.075 / $0.25 (cached $0.015) | Recommended default and test model; reasoning model — check finish_reason before trusting a short response. |\n| meta-llama/llama-3.3-70b-instruct | 128K | no | — | Plain instruct chat model; fallback. |\n| deepseek/deepseek-v3-0324 | 128K | no | — | Non-reasoning DeepSeek chat model; fallback. |\n| qwen/qwen-2.5-72b-instruct | 128K | no | — | Plain instruct chat model; fallback. |\n| google/gemma-3-27b-it | 128K | no | — | Non-reasoning instruct model; fallback. |\n\nContext window shown is the catalog default of 128,000 tokens; the default\nmax output is 4,096 tokens — noticeably smaller than most catalog providers,\nso raise maxTokens explicitly for longer completions or reasoning-heavy\nprompts on the default model.\n\nFallback order when the default is unavailable: meta-llama/llama-3.3-70b-instruct →\ndeepseek/deepseek-v3-0324 → qwen/qwen-2.5-72b-instruct →\ngoogle/gemma-3-27b-it.\n\nVerification status\n\nTier-2 onboarding requires evidence before a provider is accepted, and\npnpm run verify:provider-onboarding gates it in CI. This is what the\ncatalog records for Novita AI:\n\n| Probe | Result |\n| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| Roster | authenticated GET /openai/v1/models, HTTP 200, 2026-09-05 |\n| Auth rejection | HTTP 401 (FAILED_TO_AUTH), 2026-09-05 |\n| Live capability sweep | 2026-09-05, probed against the default model. Chat, streaming, and a real structured tool call all passed. response_format: json_object succeeded both alone and combined with tools in the same request — confirmed at the SDK level, which is why structuredOutputWithTools is true for this provider, unlike Friendli or Morph. |\n\nTroubleshooting\n\n| Symptom | Cause ","hierarchy":{"lvl0":"Getting Started","lvl1":"Novita AI Provider Guide","lvl2":"","lvl3":""}},
|
|
6170
6334
|
{"objectID":"fc7208c924fc9e95de0c232c78f9ca70a50db917f6f26bc50d5898925c0808ee","title":"Novita AI Provider Guide","url":"/docs/getting-started/providers/novita#novita-ai-provider-guide","content":"Novita AI is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/novita.json) rather than hand-written code. That\nfile is the source of truth for everything on this page.","hierarchy":{"lvl0":"Getting Started","lvl1":"Novita AI Provider Guide","lvl2":"Novita AI Provider Guide","lvl3":""}},
|
|
6171
6335
|
{"objectID":"409c985a60f43f2ba5f0ccf3bd8b2817c73a4509c42c7e754686bb7d9b72512b","title":"Key Facts","url":"/docs/getting-started/providers/novita#key-facts","content":"Provider id: novita\nProtocol: OpenAI-compatible (/chat/completions)\nBase URL: https://api.novita.ai/openai/v1\nDefault model: zai-org/glm-5.3-flash\nModels in catalog: 5\nStreaming: supported\nTool calling: supported (native)\nStructured output: supported, including together with tool calling in\n the same request — Novita is verified to accept tools and\n response_format at once, unlike several sibling catalog providers.\nEmbeddings: not supported\nBilling: free-tier\nKey format: keys match ^sk_[A-Za-z0-9_-]+$","hierarchy":{"lvl0":"Getting Started","lvl1":"Novita AI Provider Guide","lvl2":"Key Facts","lvl3":""}},
|
|
@@ -6452,6 +6616,27 @@
|
|
|
6452
6616
|
{"objectID":"c994e45e402007ca5c7c39fa42a03cfddd2d1e339787d263d9ad11b2283d8611","title":"When to Use OpenRouter","url":"/docs/getting-started/providers/openrouter#when-to-use-openrouter","content":"Use OpenRouter when:\nYou want to experiment with multiple models\nYou need automatic failover for high availability\nYou want simplified billing across providers\nYou're building multi-model applications\nYou want to avoid vendor lock-in\n\nUse Direct Providers when:\nYou only need one specific model\nYou need provider-specific features (e.g., AWS Bedrock's VPC integration)\nYou have existing provider integrations\nYour organization has enterprise agreements with specific providers","hierarchy":{"lvl0":"Getting Started","lvl1":"OpenRouter Provider Guide","lvl2":"When to Use OpenRouter","lvl3":""}},
|
|
6453
6617
|
{"objectID":"49e316cfe9e9156fab48e16e3b37b805c2e6919bc28d0c0a21122eb1ea3805cc","title":"Related Documentation","url":"/docs/getting-started/providers/openrouter#related-documentation","content":"LiteLLM Provider - Alternative multi-provider solution\nOpenAI Compatible - OpenAI-compatible endpoints\nProvider Setup Guide - General provider configuration\nCost Optimization Guide - Reduce AI costs","hierarchy":{"lvl0":"Getting Started","lvl1":"OpenRouter Provider Guide","lvl2":"Related Documentation","lvl3":""}},
|
|
6454
6618
|
{"objectID":"011b797c3c17dd7e2b3b50ee3a9f43f9ec0d418962d744a6099aab36dd6670a4","title":"Additional Resources","url":"/docs/getting-started/providers/openrouter#additional-resources","content":"OpenRouter Website - Main website\nOpenRouter Models - Browse all models\nOpenRouter Dashboard - Usage tracking\nOpenRouter Docs - Official documentation\nOpenRouter API Reference - API docs\n\nNeed Help? Join our GitHub Discussions or open an issue.","hierarchy":{"lvl0":"Getting Started","lvl1":"OpenRouter Provider Guide","lvl2":"Additional Resources","lvl3":""}},
|
|
6619
|
+
{"objectID":"66e4581a9631bf3ea7c89b0518897c60a435b1c030447ea819bbc4636790e3ca","title":"OVHcloud AI Endpoints Provider Guide","url":"/docs/getting-started/providers/ovhcloud","content":"OVHcloud AI Endpoints Provider Guide\n\nOVHcloud AI Endpoints is a Tier-2 catalog provider: OpenAI-wire-compatible\nwith no behavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/ovhcloud.json) rather than hand-written code.\nThat file is the source of truth for everything on this page.\n\nVerification status: this entry is docs- and roster-verified, not\nyet live-verified. It was built entirely from OVHcloud's own public\ndocumentation pages and one unauthenticated GET /v1/models call — no\naccount was created, no key was issued, and no authenticated or POST\nrequest was ever sent. evidence.liveMatrix is null until someone runs\nthe credentialed matrix (see Live verification\nbelow).\n\nKey Facts\nProvider id: ovhcloud\nProtocol: OpenAI-compatible (/chat/completions) — OVHcloud's own docs\n state the LLM APIs are \"compatible with the OpenAI specifications\"\nBase URL: https://oai.endpoints.kepler.ai.cloud.ovh.net/v1\nDefault model: gpt-oss-120b\nModels in catalog: 14 (chat-completions models only — see\n Out of scope)\nStreaming: documented (the vendor's own gpt-oss-120b catalog card\n lists \"Streaming\" under Supported Features)\nTool calling: model-dependent — documented per-model on OVHcloud's\n catalog page (Yes for gpt-oss-120b, gpt-oss-20b, the four Qwen3.x\n visual models and Meta-Llama-3_3-70B-Instruct; No for\n Qwen2.5-VL-72B-Instruct)\nStructured output: documented — OVHcloud's capabilities guide\n describes both JSON Mode (json_object) and JSON-Schema Structured\n Outputs, and the gpt-oss-120b catalog card lists json_object and\n json_schema under Output Formats\nTools + structured output together: not asserted. No combined probe\n was possible without credentials, so structuredOutputWithTools is\n false and toolsWithStreaming is conservatively false too — both\n features are independently documented, but nothing confirms they compose\n correctly in one request\nEmbeddings: not wired (OVHcloud does serve embedding models, but as\n separate endpoints outside this chat-completions integration's scope)\nBilling: free-with-card — several individual models are billed at\n €0, but OVHcloud's own docs state a project in \"Discovery mode\" (no\n payment method attached) cannot use the API at all\nKey format: none declared\nRate limits: documented as 400 requests/minute per project per model\n with a key; 429 on overage\n\nQuick Start\nGet an API key\nVisit: https://www.ovhcloud.com/en/public-cloud/ai-endpoints/ and click\n Start now, which signs you in to (or creates) an OVHcloud Public Cloud\n manager account\nIn the manager, open Public Cloud > your project > AI & Machine Learning\n > AI Endpoints, and add a payment method to the project — OVHcloud\n > states that projects in Discovery mode (no payment method) cannot use\n > the service\nCreate an AI Endpoints API access token in that section; it is shown\n only once, so store it yourself, and note it can be given an expiration\n date and revoked\nSet OVH_AI_ENDPOINTS_ACCESS_TOKEN in your .env file (this is the exact\n variable name OVHcloud's own code samples use)\nConfigure\nUse it\n\nPer-request credentials work as they do for every provider:\n\nModels\n\n| Model | Context | Vision | Tools | $/M in · out | Notes |\n| ------------------------------------- | ------- | ------ | ----- | ------------- | --------------------------------------------------------------------------------------------------------------- |\n| gpt-oss-120b ⭐ | 131K | no | yes | $0.09 / $0.47 | Recommended — the vendor's own example model; docs confirm streaming, tools, reasoning, jsonobject/jsonschema |\n| gpt-oss-20b | 131K | no | yes | $0.05 / $0.18 | Smaller gpt-oss sibling; roster-listed, catalog-page confirmed; fallback |\n| Qwen3.6-27B | 262K | yes | yes | $0.47 / $3.19 | Visual LLM (New); catalog-page confirmed; fallback |\n| Qwen3.8-27B | 262K | yes | yes | $0.47 / $3.19 | Visual LLM (New), newer sibling of 3.6; catalog-page confirmed |\n| Qwen3.5-397B-A17B | 262K | yes | yes | $0.71 / $4.25 | Largest MoE in the roster (397B params, ~17B active); catalog-page confirmed |\n| Qwen3.5-9B | 262K | yes | yes | $0.12 / $0.18 | Smallest of the Qwen3.x visual family; catalog-page confirmed |\n| Meta-Llama-3_3-70B-Instruct | 131K | no | yes | $0.74 / $0.74 | Plain non-reasoning instruct model; catalog-page confirmed |\n| Qwen2.5-VL-72B-Instruct | 32K | yes ","hierarchy":{"lvl0":"Getting Started","lvl1":"OVHcloud AI Endpoints Provider Guide","lvl2":"","lvl3":""}},
|
|
6620
|
+
{"objectID":"4d1fecb5c86a07eeec94b2fe23bb5ef8103bd048e63ef6f5bf4694b25c356e02","title":"OVHcloud AI Endpoints Provider Guide","url":"/docs/getting-started/providers/ovhcloud#ovhcloud-ai-endpoints-provider-guide","content":"OVHcloud AI Endpoints is a Tier-2 catalog provider: OpenAI-wire-compatible\nwith no behavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/ovhcloud.json) rather than hand-written code.\nThat file is the source of truth for everything on this page.\n\nVerification status: this entry is docs- and roster-verified, not\nyet live-verified. It was built entirely from OVHcloud's own public\ndocumentation pages and one unauthenticated GET /v1/models call — no\naccount was created, no key was issued, and no authenticated or POST\nrequest was ever sent. evidence.liveMatrix is null until someone runs\nthe credentialed matrix (see Live verification\nbelow).","hierarchy":{"lvl0":"Getting Started","lvl1":"OVHcloud AI Endpoints Provider Guide","lvl2":"OVHcloud AI Endpoints Provider Guide","lvl3":""}},
|
|
6621
|
+
{"objectID":"7a4e185d9947f70d76ddc878232f63c5d492130e1730397affa054d49f29d539","title":"Key Facts","url":"/docs/getting-started/providers/ovhcloud#key-facts","content":"Provider id: ovhcloud\nProtocol: OpenAI-compatible (/chat/completions) — OVHcloud's own docs\n state the LLM APIs are \"compatible with the OpenAI specifications\"\nBase URL: https://oai.endpoints.kepler.ai.cloud.ovh.net/v1\nDefault model: gpt-oss-120b\nModels in catalog: 14 (chat-completions models only — see\n Out of scope)\nStreaming: documented (the vendor's own gpt-oss-120b catalog card\n lists \"Streaming\" under Supported Features)\nTool calling: model-dependent — documented per-model on OVHcloud's\n catalog page (Yes for gpt-oss-120b, gpt-oss-20b, the four Qwen3.x\n visual models and Meta-Llama-3_3-70B-Instruct; No for\n Qwen2.5-VL-72B-Instruct)\nStructured output: documented — OVHcloud's capabilities guide\n describes both JSON Mode (json_object) and JSON-Schema Structured\n Outputs, and the gpt-oss-120b catalog card lists json_object and\n json_schema under Output Formats\nTools + structured output together: not asserted. No combined probe\n was possible without credentials, so structuredOutputWithTools is\n false and toolsWithStreaming is conservatively false too — both\n features are independently documented, but nothing confirms they compose\n correctly in one request\nEmbeddings: not wired (OVHcloud does serve embedding models, but as\n separate endpoints outside this chat-completions integration's scope)\nBilling: free-with-card — several individual models are billed at\n €0, but OVHcloud's own docs state a project in \"Discovery mode\" (no\n payment method attached) cannot use the API at all\nKey format: none declared\nRate limits: documented as 400 requests/minute per project per model\n with a key; 429 on overage","hierarchy":{"lvl0":"Getting Started","lvl1":"OVHcloud AI Endpoints Provider Guide","lvl2":"Key Facts","lvl3":""}},
|
|
6622
|
+
{"objectID":"752fd742c9de7d9d91adbed61dc882aa17ea9b803406d266a8256be9a4aa0fdd","title":"1. Get an API key","url":"/docs/getting-started/providers/ovhcloud#1-get-an-api-key","content":"Visit: https://www.ovhcloud.com/en/public-cloud/ai-endpoints/ and click\n Start now, which signs you in to (or creates) an OVHcloud Public Cloud\n manager account\nIn the manager, open Public Cloud > your project > AI & Machine Learning\n > AI Endpoints, and add a payment method to the project — OVHcloud\n > states that projects in Discovery mode (no payment method) cannot use\n > the service\nCreate an AI Endpoints API access token in that section; it is shown\n only once, so store it yourself, and note it can be given an expiration\n date and revoked\nSet OVH_AI_ENDPOINTS_ACCESS_TOKEN in your .env file (this is the exact\n variable name OVHcloud's own code samples use)","hierarchy":{"lvl0":"Getting Started","lvl1":"OVHcloud AI Endpoints Provider Guide","lvl2":"1. Get an API key","lvl3":""}},
|
|
6623
|
+
{"objectID":"00eb5a2f0b9179972c5cd1069e949e85e809bf4c6f96db4d1839507d361ddf3d","title":"3. Use it","url":"/docs/getting-started/providers/ovhcloud#3-use-it","content":"`bash","hierarchy":{"lvl0":"Getting Started","lvl1":"OVHcloud AI Endpoints Provider Guide","lvl2":"3. Use it","lvl3":""}},
|
|
6624
|
+
{"objectID":"cf6e44a37453862eb5062510bb80c88f4469bdb5dbad81812ce0abf73b3c6ba8","title":"CLI","url":"/docs/getting-started/providers/ovhcloud#cli","content":"npx @juspay/neurolink generate \"Hello\" --provider ovhcloud\ntypescript\nawait neurolink.generate({\n input: { text: \"Hello\" },\n provider: \"ovhcloud\",\n credentials: {\n ovhcloud: { apiKey: process.env.OVHAIENDPOINTSACCESSTOKEN },\n },\n});\n`","hierarchy":{"lvl0":"Getting Started","lvl1":"OVHcloud AI Endpoints Provider Guide","lvl2":"CLI","lvl3":""}},
|
|
6625
|
+
{"objectID":"74fea27d06a9384760fcd9a69ad9d43c53f0e9ee1695da2ffed47fd56f57268e","title":"Models","url":"/docs/getting-started/providers/ovhcloud#models","content":"| Model | Context | Vision | Tools | $/M in · out | Notes |\n| ------------------------------------- | ------- | ------ | ----- | ------------- | --------------------------------------------------------------------------------------------------------------- |\n| gpt-oss-120b ⭐ | 131K | no | yes | $0.09 / $0.47 | Recommended — the vendor's own example model; docs confirm streaming, tools, reasoning, jsonobject/jsonschema |\n| gpt-oss-20b | 131K | no | yes | $0.05 / $0.18 | Smaller gpt-oss sibling; roster-listed, catalog-page confirmed; fallback |\n| Qwen3.6-27B | 262K | yes | yes | $0.47 / $3.19 | Visual LLM (New); catalog-page confirmed; fallback |\n| Qwen3.8-27B | 262K | yes | yes | $0.47 / $3.19 | Visual LLM (New), newer sibling of 3.6; catalog-page confirmed |\n| Qwen3.5-397B-A17B | 262K | yes | yes | $0.71 / $4.25 | Largest MoE in the roster (397B params, ~17B active); catalog-page confirmed |\n| Qwen3.5-9B | 262K | yes | yes | $0.12 / $0.18 | Smallest of the Qwen3.x visual family; catalog-page confirmed |\n| Meta-Llama-3_3-70B-Instruct | 131K | no | yes | $0.74 / $0.74 | Plain non-reasoning instruct model; catalog-page confirmed |\n| Qwen2.5-VL-72B-Instruct | 32K | yes | no | $1.01 / $1.01 | Dedicated vision-language model; models.visionModel. No tools per catalog page |\n| Qwen3-Coder-30B-A3B-Instruct ","hierarchy":{"lvl0":"Getting Started","lvl1":"OVHcloud AI Endpoints Provider Guide","lvl2":"Models","lvl3":""}},
|
|
6626
|
+
{"objectID":"b1e765e796f5b74d3d0ee1bed2420c8afe006de3f41768b6303f4103d17ed68f","title":"Out-of-scope (non-chat) endpoints","url":"/docs/getting-started/providers/ovhcloud#out-of-scope-non-chat-endpoints","content":"OVHcloud AI Endpoints also serves speech-to-text (whisper-large-v3,\nwhisper-large-v3-turbo), text-to-speech (four NVIDIA Riva voices),\nimage generation (stable-diffusion-xl-base-v10) and embeddings (bge-m3,\nbge-multilingual-gemma2, Qwen3-Embedding-8B) on the same platform and\nbase URL prefix. These are separate, non-chat-completions API shapes and\nare not part of this Tier-2 catalog entry, so capabilities.embeddings is\nfalse here even though the vendor documents embedding models elsewhere on\nthe same platform.","hierarchy":{"lvl0":"Getting Started","lvl1":"OVHcloud AI Endpoints Provider Guide","lvl2":"Out-of-scope (non-chat) endpoints","lvl3":""}},
|
|
6627
|
+
{"objectID":"42aa9cf24ddb1baadfd869caa4f7f24e41404184d44a78f57b4377b8dfef44cb","title":"Verification status","url":"/docs/getting-started/providers/ovhcloud#verification-status","content":"Tier-2 onboarding requires evidence before a provider is accepted, and\npnpm run verify:provider-onboarding gates it in CI. This is what the\ncatalog records for OVHcloud AI Endpoints — deliberately credential-free:\n\n| Probe | Result |\n| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Roster | unauthenticated GET /v1/models, HTTP 200, 2026-09-28 — 24 models returned; no key used |\n| Auth rejection | not probed — would require an authenticated request, which this credential-free onboarding does not send. The errorRules entry for authentication failures is taken verbatim from OVHcloud's written docs (\"403 Forbidden: Authentication Failed\"), not from a live probe |\n| Live capability sweep | not run (evidence.liveMatrix is null). capabilities.tools, .streaming, .structuredOutput and .thinking are set from OVHcloud's own getting-started guide, capabilities guide, and the gpt-oss-120b catalog card's \"Supported Features\" / \"Output Formats\" lists — not from a live request of any kind |\n\nBecause no live request was ever made, treat every capability flag here as\ndoc-asserted, not wire-proven until","hierarchy":{"lvl0":"Getting Started","lvl1":"OVHcloud AI Endpoints Provider Guide","lvl2":"Verification status","lvl3":""}},
|
|
6628
|
+
{"objectID":"3ee83d1cb747b6e8ba97384beb145e3da82eaf0487ba7e1e317026fe4c226499","title":"Troubleshooting","url":"/docs/getting-started/providers/ovhcloud#troubleshooting","content":"| Symptom | Cause | Fix |\n| ------------------------------- | ---------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |\n| Requests fail immediately | Project has no payment method attached (\"Discovery mode\") | Add a payment method to the Public Cloud project in the OVHcloud manager before creating/using an access token |\n| Invalid or revoked ... token | OVH_AI_ENDPOINTS_ACCESS_TOKEN unset, wrong, or revoked | Check/recreate the token under AI & Machine Learning > AI Endpoints in the OVHcloud manager |\n| Frequent 429s | Authenticated limit is 400 requests/minute per project per model | Pace requests and/or request a higher limit from OVHcloud support |\n| Model not found | The roster changed since 2026-09-28 | Pick a current id from the unauthenticated GET /v1/models roster |\n| Tool calls silently unsupported | capabilities.tools is model-dependent | Use a model the catalog page marks Function calling: Yes (e.g. gpt-oss-120b, not Qwen2.5-VL-72B-Instruct) |","hierarchy":{"lvl0":"Getting Started","lvl1":"OVHcloud AI Endpoints Provider Guide","lvl2":"Troubleshooting","lvl3":""}},
|
|
6629
|
+
{"objectID":"015b1be7b7a266e86eed27ae5055b285417aba0c547b038da1ea805b4a19f868","title":"See also","url":"/docs/getting-started/providers/ovhcloud#see-also","content":"Provider setup overview\nAll providers\nTier-2 onboarding — how this provider's JSON becomes a working integration, and what a credentialed live-verification pass still needs to add\nProvider feature compatibility","hierarchy":{"lvl0":"Getting Started","lvl1":"OVHcloud AI Endpoints Provider Guide","lvl2":"See also","lvl3":""}},
|
|
6630
|
+
{"objectID":"5e3a315038085bf3d2d31cbaaf7a07c7df8228093af856dd3a697f19736edf24","title":"Pareto Inference Provider Guide","url":"/docs/getting-started/providers/pareto-inference","content":"Pareto Inference Provider Guide\n\nVerification status: this entry is docs- and roster-verified only —\nnot yet live-verified. It was onboarded credential-free: no Pareto\nInference API key was ever created or used. Every field below comes from\nPareto's public docs (https://docs.paretoinference.com/) and an\nunauthenticated GET /v1/models call (no auth header). No POST\nrequest was ever sent, so no generate, stream, tool-calling or\nstructured-output capability has been exercised end to end. Treat\ncapabilities.tools and .thinking as documentation-grade, not\nwire-proven, until evidence.liveMatrix is filled in by a live run.\n\nPareto Inference is a Tier-2 catalog provider: OpenAI-wire-compatible\nwith no behavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/pareto-inference.json) rather than hand-written\ncode. That file is the source of truth for everything on this page.\n\nKey Facts\nProvider id: pareto-inference\nProtocol: OpenAI-compatible (/chat/completions) — \"Pareto accepts\n only OpenAI Chat Completions.\"\nBase URL: https://api.paretoinference.com/v1\nDefault model: z-ai/glm-5.3-flash (GLM 5.3 Flash; the docs also\n document a bare alias, glm-5.3-flash, for the same model)\nModels in catalog: 1 — the only model Pareto serves. Confirmed by an\n unauthenticated GET /v1/models (no key needed), which returns exactly\n one id.\nStreaming: documented (SSE, text in choices[0].delta.content, tool\n calls in choices[0].delta.tool_calls, terminal data: [DONE]) — not\n live-probed.\nTool calling: documented (tools, tool_choice) but the vendor's own\n request-parameter table hedges it with \"Model support can differ,\" with no\n model-specific confirmation — set to model-dependent, not true.\nStructured output: response_format is a documented parameter but\n carries the same \"Model support can differ\" hedge as tools; the catalog\n schema has no model-dependent option for this field, so it is set\n false rather than asserted from a hedged table. structuredOutputWithTools\n is false — no combined probe was possible credential-free.\nReasoning: reasoning_effort (\"Sets the reasoning level\") is\n documented as a plain, unhedged request parameter — unlike tools /\n response_format / tool_choice / logprobs, it carries no \"Model\n support can differ\" caveat — the basis for capabilities.thinking: true.\nVision: not documented anywhere on the site.\nEmbeddings: not documented anywhere on the site.\nBilling: no free tier. A payment card and prepaid credits are\n required before a key is issued.\nSignup: https://paretoinference.com/dashboard\nKey format: none declared.\nData handling: Pareto documents zero data retention (ZDR) — request\n content is not kept after a request finishes.\n\nQuick Start\nGet an API key\nVisit: https://paretoinference.com/dashboard and sign in\nAdd a payment card — Pareto has no free tier; a card and prepaid credits\n are required before a key is issued\n (https://docs.paretoinference.com/pricing)\nBuy prepaid credits, then create your API key from the dashboard\nSet PARETO_INFERENCE_API_KEY in your .env file\nConfigure\nUse it\n\nPer-request credentials work as they do for every provider:\n\nModels\n\n| Model | Context | Vision | $/M in · out · cached | Notes |\n| ----------------------- | --------- | ------ | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| z-ai/glm-5.3-flash ⭐ | 131,072\\ | no | $0.03 / $0.10 (cached $0.006) | Only model Pareto serves. Max output documented as 1–131,072 tokens (default 131,072). \\Context window is not published by Pareto — this figure reuses the documented output ceiling as a conservative floor, not a stated context length. |\n\n\\ Pareto's own docs state it does not* disclose GLM 5.3 Flash's serving\ndetails (\"We do not disclose the technical details of our GLM 5.3 Flash\nserving system\"), and no context-window number appears on any public page.\nmodels.defaultContextWindow (131,072) is therefore the documented\noutput ceiling reused as a floor, flagged in the catalog entry's\ndescription — correct it once Pareto publishes a real figure or an\nauthenticated probe reveals one.\n\nFallback order: none — z-ai/glm-5.3-flash is the only model Pareto\nserves, so it is both the default and its own (schema-exempt) single-entry\nfallback list.\n\nVerification status\n\nTier-2 onboarding requires evidence before a provider is accepted, and\npnpm run verify:provider-onboarding gates it in CI. This is what the\ncatalog records for Pareto Inference — and, just as importantly, what it\ndoes not yet record:\n\n| Probe ","hierarchy":{"lvl0":"Getting Started","lvl1":"Pareto Inference Provider Guide","lvl2":"","lvl3":""}},
|
|
6631
|
+
{"objectID":"6a8ee157b685405e8c480486655e4656ea272f63493e36006b7ac43e499b5e27","title":"Pareto Inference Provider Guide","url":"/docs/getting-started/providers/pareto-inference#pareto-inference-provider-guide","content":"Verification status: this entry is docs- and roster-verified only —\nnot yet live-verified. It was onboarded credential-free: no Pareto\nInference API key was ever created or used. Every field below comes from\nPareto's public docs (https://docs.paretoinference.com/) and an\nunauthenticated GET /v1/models call (no auth header). No POST\nrequest was ever sent, so no generate, stream, tool-calling or\nstructured-output capability has been exercised end to end. Treat\ncapabilities.tools and .thinking as documentation-grade, not\nwire-proven, until evidence.liveMatrix is filled in by a live run.\n\nPareto Inference is a Tier-2 catalog provider: OpenAI-wire-compatible\nwith no behavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/pareto-inference.json) rather than hand-written\ncode. That file is the source of truth for everything on this page.","hierarchy":{"lvl0":"Getting Started","lvl1":"Pareto Inference Provider Guide","lvl2":"Pareto Inference Provider Guide","lvl3":""}},
|
|
6632
|
+
{"objectID":"4098c852271191df4a2cf6cfcd19b7832504f8a2e019abcce21852d7bc292fe3","title":"Key Facts","url":"/docs/getting-started/providers/pareto-inference#key-facts","content":"Provider id: pareto-inference\nProtocol: OpenAI-compatible (/chat/completions) — \"Pareto accepts\n only OpenAI Chat Completions.\"\nBase URL: https://api.paretoinference.com/v1\nDefault model: z-ai/glm-5.3-flash (GLM 5.3 Flash; the docs also\n document a bare alias, glm-5.3-flash, for the same model)\nModels in catalog: 1 — the only model Pareto serves. Confirmed by an\n unauthenticated GET /v1/models (no key needed), which returns exactly\n one id.\nStreaming: documented (SSE, text in choices[0].delta.content, tool\n calls in choices[0].delta.tool_calls, terminal data: [DONE]) — not\n live-probed.\nTool calling: documented (tools, tool_choice) but the vendor's own\n request-parameter table hedges it with \"Model support can differ,\" with no\n model-specific confirmation — set to model-dependent, not true.\nStructured output: response_format is a documented parameter but\n carries the same \"Model support can differ\" hedge as tools; the catalog\n schema has no model-dependent option for this field, so it is set\n false rather than asserted from a hedged table. structuredOutputWithTools\n is false — no combined probe was possible credential-free.\nReasoning: reasoning_effort (\"Sets the reasoning level\") is\n documented as a plain, unhedged request parameter — unlike tools /\n response_format / tool_choice / logprobs, it carries no \"Model\n support can differ\" caveat — the basis for capabilities.thinking: true.\nVision: not documented anywhere on the site.\nEmbeddings: not documented anywhere on the site.\nBilling: no free tier. A payment card and prepaid credits are\n required before a key is issued.\nSignup: https://paretoinference.com/dashboard\nKey format: none declared.\nData handling: Pareto documents zero data retention (ZDR) — request\n content is not kept after a request finishes.","hierarchy":{"lvl0":"Getting Started","lvl1":"Pareto Inference Provider Guide","lvl2":"Key Facts","lvl3":""}},
|
|
6633
|
+
{"objectID":"caf0e714786bb6800e72192b4bab1eb0c3e5b66a58b7545323fa523c7af1fe96","title":"1. Get an API key","url":"/docs/getting-started/providers/pareto-inference#1-get-an-api-key","content":"Visit: https://paretoinference.com/dashboard and sign in\nAdd a payment card — Pareto has no free tier; a card and prepaid credits\n are required before a key is issued\n (https://docs.paretoinference.com/pricing)\nBuy prepaid credits, then create your API key from the dashboard\nSet PARETO_INFERENCE_API_KEY in your .env file","hierarchy":{"lvl0":"Getting Started","lvl1":"Pareto Inference Provider Guide","lvl2":"1. Get an API key","lvl3":""}},
|
|
6634
|
+
{"objectID":"6ebc7974cc2c829d61423aa76879f84bf39f510a89e5d69d413a837fe72d86c6","title":"3. Use it","url":"/docs/getting-started/providers/pareto-inference#3-use-it","content":"`bash","hierarchy":{"lvl0":"Getting Started","lvl1":"Pareto Inference Provider Guide","lvl2":"3. Use it","lvl3":""}},
|
|
6635
|
+
{"objectID":"88e47ec55c1f3481092432425a6fabfeda109649e1722eff1cc531f760df674c","title":"CLI","url":"/docs/getting-started/providers/pareto-inference#cli","content":"npx @juspay/neurolink generate \"Hello\" --provider pareto-inference\ntypescript\nawait neurolink.generate({\n input: { text: \"Hello\" },\n provider: \"pareto-inference\",\n credentials: {\n \"pareto-inference\": { apiKey: process.env.PARETOINFERENCEAPI_KEY },\n },\n});\n`","hierarchy":{"lvl0":"Getting Started","lvl1":"Pareto Inference Provider Guide","lvl2":"CLI","lvl3":""}},
|
|
6636
|
+
{"objectID":"79c93948b6d461182578b28b94eb9fa1edbf0815941cdb6090462ac57a92a6ab","title":"Models","url":"/docs/getting-started/providers/pareto-inference#models","content":"| Model | Context | Vision | $/M in · out · cached | Notes |\n| ----------------------- | --------- | ------ | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| z-ai/glm-5.3-flash ⭐ | 131,072\\ | no | $0.03 / $0.10 (cached $0.006) | Only model Pareto serves. Max output documented as 1–131,072 tokens (default 131,072). \\Context window is not published by Pareto — this figure reuses the documented output ceiling as a conservative floor, not a stated context length. |\n\n\\ Pareto's own docs state it does not* disclose GLM 5.3 Flash's serving\ndetails (\"We do not disclose the technical details of our GLM 5.3 Flash\nserving system\"), and no context-window number appears on any public page.\nmodels.defaultContextWindow (131,072) is therefore the documented\noutput ceiling reused as a floor, flagged in the catalog entry's\ndescription — correct it once Pareto publishes a real figure or an\nauthenticated probe reveals one.\n\nFallback order: none — z-ai/glm-5.3-flash is the only model Pareto\nserves, so it is both the default and its own (schema-exempt) single-entry\nfallback list.","hierarchy":{"lvl0":"Getting Started","lvl1":"Pareto Inference Provider Guide","lvl2":"Models","lvl3":""}},
|
|
6637
|
+
{"objectID":"106d04b8baec018f872ce608c3b0dd33f8b3d43ada85072831a2e9ab9c64c46b","title":"Verification status","url":"/docs/getting-started/providers/pareto-inference#verification-status","content":"Tier-2 onboarding requires evidence before a provider is accepted, and\npnpm run verify:provider-onboarding gates it in CI. This is what the\ncatalog records for Pareto Inference — and, just as importantly, what it\ndoes not yet record:\n\n| Probe | Result |\n| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Roster | unauthenticated GET /v1/models, HTTP 200, 1 model (z-ai/glm-5.3-flash), 2026-09-28. No API key was used or required for this call. |\n| Auth rejection | Not probed. Would require a POST with an invalid key, which this credential-free onboarding pass does not send. Pareto's docs describe 401 as \"the chat API key is missing, invalid, or no longer active,\" with no example error body. |\n| Live capability sweep | Not run. evidence.liveMatrix is null. capabilities.tools and .thinking are set from the v","hierarchy":{"lvl0":"Getting Started","lvl1":"Pareto Inference Provider Guide","lvl2":"Verification status","lvl3":""}},
|
|
6638
|
+
{"objectID":"b844edaf09c93fb3089bbf0a71254c5039dedf111e2b59563321484496862aa4","title":"Troubleshooting","url":"/docs/getting-started/providers/pareto-inference#troubleshooting","content":"| Symptom | Cause | Fix |\n| --------------------------------------- | -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |\n| Invalid Pareto Inference API key | PARETO_INFERENCE_API_KEY unset, wrong, or expired | Pareto documents 401 as \"the chat API key is missing, invalid, or no longer active\" — check or replace the key in the dashboard |\n| 429 with credit_exhausted | Prepaid balance is empty | Buy more prepaid credits |\n| 429 with credit_insufficient | Held credits (reserved for max_tokens) are below what's needed | Lower max_tokens, or buy more credits |\n| 429 with model_capacity | The model itself is at capacity — not an account-level limit | Honor the Retry-After header and retry |\n| 502 mid-stream | The model request failed after the stream started | Retry the request; check whether a tool call already ran before retrying |\n| 503 | Temporary Pareto-side failure (e.g. maintenance, GPU outage) | Wait and retry; Retry-After gives the delay in seconds |\n| No context-window figure in the catalog | Pareto does no","hierarchy":{"lvl0":"Getting Started","lvl1":"Pareto Inference Provider Guide","lvl2":"Troubleshooting","lvl3":""}},
|
|
6639
|
+
{"objectID":"57b8457eff592f229d3c0f0fb7c73148341ecffd72bb29c15d73f1471b1fd886","title":"See also","url":"/docs/getting-started/providers/pareto-inference#see-also","content":"Provider setup overview\nAll providers\nTier-2 onboarding — how this provider's JSON becomes a working integration\nProvider feature compatibility","hierarchy":{"lvl0":"Getting Started","lvl1":"Pareto Inference Provider Guide","lvl2":"See also","lvl3":""}},
|
|
6455
6640
|
{"objectID":"6d55ee7ec0f21369a70b421eaeaddf6b44fe88746beb28c252588d42d97048b7","title":"Perplexity Provider Guide","url":"/docs/getting-started/providers/perplexity","content":"Perplexity Provider Guide\n\nWeb-search-augmented generation via Perplexity's Sonar models\n\nOverview\n\nPerplexity hosts a family of LLMs (Sonar,\nSonar Pro, Sonar Reasoning) that pair the model with a live web search\nbackend; responses include citations to the documents the model relied on.\n\nKey Facts\nProtocol: OpenAI-compatible (/chat/completions)\nDefault base URL: https://api.perplexity.ai\nDefault model: sonar\nCitations: Returned via citations field on the response\nStreaming: Yes\nTool calling: No\n\nQuick Start\nGet an API Key\n\nhttps://www.perplexity.ai/settings/api\nConfigure\nGenerate\n\nSupported Models\n\n| Model ID | Notes |\n| ----------------- | ----------------------------------- |\n| sonar | Default; fast search-augmented chat |\n| sonar-pro | Larger context, deeper search |\n| sonar-reasoning | Chain-of-thought reasoning |\n\nCLI Usage\n\nProvider Aliases\n\n| Alias | Example |\n| ------------ | ----------------------- |\n| perplexity | --provider perplexity |\n\nConfiguration Reference\n\n| Environment Variable | Required | Default |\n| --------------------- | -------- | --------------------------- |\n| PERPLEXITY_API_KEY | Yes | — |\n| PERPLEXITY_MODEL | No | sonar |\n| PERPLEXITY_BASE_URL | No | https://api.perplexity.ai |\n\nFeature Support Matrix\n\n| Feature | Support |\n| ----------------- | ------------ |\n| Text generation | Yes |\n| Streaming | Yes |\n| Tool calling | No |\n| Structured output | Limited |\n| Web search | Yes (native) |\n| Citations | Yes |\n\nSee Also\nAnthropic Provider — web-search via the web_search tool\nVertex Provider — Google search grounding","hierarchy":{"lvl0":"Getting Started","lvl1":"Perplexity Provider Guide","lvl2":"","lvl3":""}},
|
|
6456
6641
|
{"objectID":"59d597c2561bea4977d9a4ae9a111235c2a042b1573e0fad7cf2147851b79e13","title":"Perplexity Provider Guide","url":"/docs/getting-started/providers/perplexity#perplexity-provider-guide","content":"Web-search-augmented generation via Perplexity's Sonar models","hierarchy":{"lvl0":"Getting Started","lvl1":"Perplexity Provider Guide","lvl2":"Perplexity Provider Guide","lvl3":""}},
|
|
6457
6642
|
{"objectID":"755494265419901fd106a26a27844178614744eacb256af720b7acfdc700a22c","title":"Overview","url":"/docs/getting-started/providers/perplexity#overview","content":"Perplexity hosts a family of LLMs (Sonar,\nSonar Pro, Sonar Reasoning) that pair the model with a live web search\nbackend; responses include citations to the documents the model relied on.","hierarchy":{"lvl0":"Getting Started","lvl1":"Perplexity Provider Guide","lvl2":"Overview","lvl3":""}},
|
|
@@ -6574,6 +6759,17 @@
|
|
|
6574
6759
|
{"objectID":"3504ce8ac981b897526b82515b6bdfd3199aa108324c3e1a0f06dc9413dc7911","title":"\"Invalid SambaNova API key\"","url":"/docs/getting-started/providers/sambanova#invalid-sambanova-api-key","content":"Rotate at cloud.sambanova.ai/apis. A\nbad key returns an OpenAI-shaped 401 with \"code\": \"invalid_api_key\".","hierarchy":{"lvl0":"Getting Started","lvl1":"SambaNova Provider Guide","lvl2":"\"Invalid SambaNova API key\"","lvl3":""}},
|
|
6575
6760
|
{"objectID":"2d883ca2bf904a2817819e21f4130b25f609a0645603fad67b2f2cc83a2d3773","title":"404 for a model that used to exist","url":"/docs/getting-started/providers/sambanova#404-for-a-model-that-used-to-exist","content":"Preview models (DeepSeek-V3.2, gemma-4-31B-it) \"may be removed at\nshort notice\" per the vendor. Verify with an authenticated\nGET https://api.sambanova.ai/v1/models.","hierarchy":{"lvl0":"Getting Started","lvl1":"SambaNova Provider Guide","lvl2":"404 for a model that used to exist","lvl3":""}},
|
|
6576
6761
|
{"objectID":"045f91c7db599dee3013edcb03186269984fab4c5fde551869d8f58771a7f6a4","title":"See Also","url":"/docs/getting-started/providers/sambanova#see-also","content":"Cerebras Provider — sibling wafer-scale speed provider\nGroq Provider — sibling LPU speed provider\nTier 2 catalog entry guide — internal wiring\n\nNeed Help? Open a GitHub Discussion or issue.","hierarchy":{"lvl0":"Getting Started","lvl1":"SambaNova Provider Guide","lvl2":"See Also","lvl3":""}},
|
|
6762
|
+
{"objectID":"21f2511b9a3b7d1cbce9679dd69c91808d68dae4c6d52cc4721c48d9a8e2b3ba","title":"Sarvam AI Provider Guide","url":"/docs/getting-started/providers/sarvam","content":"Sarvam AI Provider Guide\n\nSarvam AI is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/sarvam.json) rather than hand-written code. That\nfile is the source of truth for everything on this page.\n\nVerification status: docs- and roster-verified, not yet live-verified.\nThis entry was onboarded credential-free — no Sarvam API key was ever\ncreated or used. Every field below is sourced from Sarvam's own published\ndocs plus one unauthenticated GET /v1/models call; no authenticated\nrequest (chat completion, streaming, tool call, structured output) has\nbeen made against the live API. Treat tools, structuredOutput,\ntoolsWithStreaming and thinking as documented, not wire-proven, until\nevidence.liveMatrix is filled in by a live capability sweep. See\nVerification status below for exactly what is and\nisn't proven.\n\nKey Facts\nProvider id: sarvam\nProtocol: OpenAI-compatible (/chat/completions)\nBase URL: https://api.sarvam.ai/v1\nDefault model: sarvam-105b\nModels in catalog: 2 (this is the entire roster — the endpoint serves\n only these two)\nStreaming: documented (SSE, stream: true)\nTool calling: documented (native tools / tool_choice)\nStructured output: documented (response_format: json_schema and\n json_object)\nReasoning / thinking: documented — a reasoning_effort request\n parameter (low / high / max, default medium) and a\n reasoning_content response field\nEmbeddings: not documented\nBilling: free-tier — every new account gets ₹100 in starter credits,\n then usage-based billing\nKey format: sk_xxx (documented prefix, exact character set not\n specified)\n\nQuick Start\nGet an API key\nVisit: https://dashboard.sarvam.ai and sign in or create an account\nCreate an API subscription key from the dashboard (documented format:\n sk_xxx)\nEvery new account receives ₹100 in starter credits, then usage-based\n billing applies — see the\n pricing page; no\n ongoing free tier beyond that starter credit is documented\nSet SARVAM_API_KEY in your .env file\nConfigure\nUse it\n\nPer-request credentials work as they do for every provider:\n\nAuthentication note\n\nSarvam's own raw-HTTP API reference examples authenticate with a standard\nAuthorization: Bearer <token> header — exactly what NeuroLink's generic\nOpenAI-compatible provider sends, so no custom auth-header quirk is needed.\nSarvam's stated preference is instead an api-subscription-key header,\nwhich its Python/TypeScript SDKs use; the docs say both are accepted on\nevery endpoint.\n\nModels\n\n| Model | Context | Vision | $/M in · out | Notes |\n| --------------------------- | ------- | ------ | ------------ | -------------------------------------------------------------------------------------------------- |\n| sarvam-105b ⭐ | 128K | no | — | Recommended — flagship model, documented for \"complex reasoning and agentic tasks.\" Default model. |\n| sarvam-105b-conversations | 32K | no | — | Documented for \"real-time conversational and voice-agent workloads.\" Fallback. |\n\nContext window shown is each model's documented figure (128K / 32K). The\ncatalog's defaultMaxOutputTokens is 2048 — the vendor's documented default\nfor the max_tokens request parameter when a caller omits it, not a stated\nmaximum (the docs say no maximum is documented).\n\nPricing is published only in Indian Rupees, not USD: ₹29.28 input /\n₹73.2 output / ₹10.98 cached-input per 1M tokens for both models\n(identical rates), per the\npricing page\n(retrieved 2026-09-28). The catalog's pricingPerMTok field is left unset\nfor both models rather than placing that INR figure in a field every other\nprovider in this catalog uses for USD — there is no vendor-stated INR/USD\nrate to convert by without inventing a number.\n\nFallback order when the default is unavailable:\nsarvam-105b-conversations.\n\nNeither model is documented as vision-capable. The request schema does\ndeclare an image_url content-part type (the standard OpenAI-compatible\nmessage shape), but Sarvam's docs make no claim that either model actually\nprocesses image input, so both are marked vision: false.\n\nVerification status\n\nTier-2 onboarding requires evidence before a provider is accepted, and\npnpm run verify:provider-onboarding gates it in CI. This is what the\ncatalog records for Sarvam AI — and, unusually, all of it is credential-free:\n\n| Probe | Result |\n| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------","hierarchy":{"lvl0":"Getting Started","lvl1":"Sarvam AI Provider Guide","lvl2":"","lvl3":""}},
|
|
6763
|
+
{"objectID":"e3b05b0bcbb3c9c3b3af989850d13eb967005a8ddad7f6711413dd6235a29e96","title":"Sarvam AI Provider Guide","url":"/docs/getting-started/providers/sarvam#sarvam-ai-provider-guide","content":"Sarvam AI is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks, so its entire integration is one JSON file\n(src/lib/providers/catalog/sarvam.json) rather than hand-written code. That\nfile is the source of truth for everything on this page.\n\nVerification status: docs- and roster-verified, not yet live-verified.\nThis entry was onboarded credential-free — no Sarvam API key was ever\ncreated or used. Every field below is sourced from Sarvam's own published\ndocs plus one unauthenticated GET /v1/models call; no authenticated\nrequest (chat completion, streaming, tool call, structured output) has\nbeen made against the live API. Treat tools, structuredOutput,\ntoolsWithStreaming and thinking as documented, not wire-proven, until\nevidence.liveMatrix is filled in by a live capability sweep. See\nVerification status below for exactly what is and\nisn't proven.","hierarchy":{"lvl0":"Getting Started","lvl1":"Sarvam AI Provider Guide","lvl2":"Sarvam AI Provider Guide","lvl3":""}},
|
|
6764
|
+
{"objectID":"f528ab4fb30c92d7a3db156a63860179f34b79d705419aa6c0476bcf07548efa","title":"Key Facts","url":"/docs/getting-started/providers/sarvam#key-facts","content":"Provider id: sarvam\nProtocol: OpenAI-compatible (/chat/completions)\nBase URL: https://api.sarvam.ai/v1\nDefault model: sarvam-105b\nModels in catalog: 2 (this is the entire roster — the endpoint serves\n only these two)\nStreaming: documented (SSE, stream: true)\nTool calling: documented (native tools / tool_choice)\nStructured output: documented (response_format: json_schema and\n json_object)\nReasoning / thinking: documented — a reasoning_effort request\n parameter (low / high / max, default medium) and a\n reasoning_content response field\nEmbeddings: not documented\nBilling: free-tier — every new account gets ₹100 in starter credits,\n then usage-based billing\nKey format: sk_xxx (documented prefix, exact character set not\n specified)","hierarchy":{"lvl0":"Getting Started","lvl1":"Sarvam AI Provider Guide","lvl2":"Key Facts","lvl3":""}},
|
|
6765
|
+
{"objectID":"39f508e2adcb34f1c07eaeb9fcf8ea41cd5dec70099f38964cd14c5b65965484","title":"1. Get an API key","url":"/docs/getting-started/providers/sarvam#1-get-an-api-key","content":"Visit: https://dashboard.sarvam.ai and sign in or create an account\nCreate an API subscription key from the dashboard (documented format:\n sk_xxx)\nEvery new account receives ₹100 in starter credits, then usage-based\n billing applies — see the\n pricing page; no\n ongoing free tier beyond that starter credit is documented\nSet SARVAM_API_KEY in your .env file","hierarchy":{"lvl0":"Getting Started","lvl1":"Sarvam AI Provider Guide","lvl2":"1. Get an API key","lvl3":""}},
|
|
6766
|
+
{"objectID":"6ba2b01792390f5d0b521a48d2df3935f5a9999bc3ba822327c27ed46d205713","title":"3. Use it","url":"/docs/getting-started/providers/sarvam#3-use-it","content":"`bash","hierarchy":{"lvl0":"Getting Started","lvl1":"Sarvam AI Provider Guide","lvl2":"3. Use it","lvl3":""}},
|
|
6767
|
+
{"objectID":"3a74c4e8846d0c42e24897fb0a523f7b81799da1e988e615783445f73a76c039","title":"CLI","url":"/docs/getting-started/providers/sarvam#cli","content":"npx @juspay/neurolink generate \"Hello\" --provider sarvam\ntypescript\nawait neurolink.generate({\n input: { text: \"Hello\" },\n provider: \"sarvam\",\n credentials: { sarvam: { apiKey: process.env.SARVAMAPIKEY } },\n});\n`","hierarchy":{"lvl0":"Getting Started","lvl1":"Sarvam AI Provider Guide","lvl2":"CLI","lvl3":""}},
|
|
6768
|
+
{"objectID":"b496a733a249e43d9b3b90e3f08ddcb1ea36a2ac93abdf27febc6585411bb5be","title":"Authentication note","url":"/docs/getting-started/providers/sarvam#authentication-note","content":"Sarvam's own raw-HTTP API reference examples authenticate with a standard\nAuthorization: Bearer <token> header — exactly what NeuroLink's generic\nOpenAI-compatible provider sends, so no custom auth-header quirk is needed.\nSarvam's stated preference is instead an api-subscription-key header,\nwhich its Python/TypeScript SDKs use; the docs say both are accepted on\nevery endpoint.","hierarchy":{"lvl0":"Getting Started","lvl1":"Sarvam AI Provider Guide","lvl2":"Authentication note","lvl3":""}},
|
|
6769
|
+
{"objectID":"c6097ee876460967963b1ab9fb074b853b987eed4fc9d1b5a4083ae7c236499f","title":"Models","url":"/docs/getting-started/providers/sarvam#models","content":"| Model | Context | Vision | $/M in · out | Notes |\n| --------------------------- | ------- | ------ | ------------ | -------------------------------------------------------------------------------------------------- |\n| sarvam-105b ⭐ | 128K | no | — | Recommended — flagship model, documented for \"complex reasoning and agentic tasks.\" Default model. |\n| sarvam-105b-conversations | 32K | no | — | Documented for \"real-time conversational and voice-agent workloads.\" Fallback. |\n\nContext window shown is each model's documented figure (128K / 32K). The\ncatalog's defaultMaxOutputTokens is 2048 — the vendor's documented default\nfor the max_tokens request parameter when a caller omits it, not a stated\nmaximum (the docs say no maximum is documented).\n\nPricing is published only in Indian Rupees, not USD: ₹29.28 input /\n₹73.2 output / ₹10.98 cached-input per 1M tokens for both models\n(identical rates), per the\npricing page\n(retrieved 2026-09-28). The catalog's pricingPerMTok field is left unset\nfor both models rather than placing that INR figure in a field every other\nprovider in this catalog uses for USD — there is no vendor-stated INR/USD\nrate to convert by without inventing a number.\n\nFallback order when the default is unavailable:\nsarvam-105b-conversations.\n\nNeither model is documented as vision-capable. The request schema does\ndeclare an image_url content-part type (the standard OpenAI-compatible\nmessage shape), but Sarvam's docs make no claim that either model actually\nprocesses image input, so both are marked vision: false.","hierarchy":{"lvl0":"Getting Started","lvl1":"Sarvam AI Provider Guide","lvl2":"Models","lvl3":""}},
|
|
6770
|
+
{"objectID":"cd1de30168eb04f05817488311cca7b4f12bf8367f224d54df7d0b972af81d3e","title":"Verification status","url":"/docs/getting-started/providers/sarvam#verification-status","content":"Tier-2 onboarding requires evidence before a provider is accepted, and\npnpm run verify:provider-onboarding gates it in CI. This is what the\ncatalog records for Sarvam AI — and, unusually, all of it is credential-free:\n\n| Probe | Result |\n| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Roster | Unauthenticated GET https://api.sarvam.ai/v1/models, HTTP 200, 2026-09-28 — returned exactly sarvam-105b and sarvam-105b-conversations, no API key used. |\n| Auth rejection | Not probed live (would require a POST request, out of scope for credential-free onboarding). The 403 shape below is transcribed from Sarvam's own authentication docs, not observed. |\n| Wire compatibility | Documentary only — Sarvam's API reference explicitly describes an OpenAI-shaped messages / choices / finish_reason / object: \"chat.completion\" schema, tools/tool_choice, response_format (json_schema, json_object), and stream: true (SSE) for this endpoint. |\n| Live capability sweep | Not run. evidence.liveMatrix is null. tools, structuredOutput, toolsWithStreaming and thinking in the catalog reflect vendor documentation, not a live probe; structuredOutputWithTools is false because no combined tools+schema request w","hierarchy":{"lvl0":"Getting Started","lvl1":"Sarvam AI Provider Guide","lvl2":"Verification status","lvl3":""}},
|
|
6771
|
+
{"objectID":"8e57df7483555e36212512809e787dc851cae1ddb71ca3758faab8f991880cad","title":"Troubleshooting","url":"/docs/getting-started/providers/sarvam#troubleshooting","content":"| Symptom | Cause | Fix |\n| ------------------------------------------ | ------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------- |\n| Invalid Sarvam AI API key | SARVAM_API_KEY unset or wrong | Check the key at https://dashboard.sarvam.ai |\n| HTTP 403 on every call | Sarvam returns 403 (not 401) for both bad and forbidden keys | Confirm the key is current and has access; see error.code in the response |\n| Model not found | Only sarvam-105b and sarvam-105b-conversations exist | Use one of those two ids — the endpoint serves no others |\n| Empty/short replies at a small maxTokens | reasoning_effort defaults to medium, and reasoning_content is billed as output | Give reasoning prompts a generous maxTokens budget or lower reasoning_effort |","hierarchy":{"lvl0":"Getting Started","lvl1":"Sarvam AI Provider Guide","lvl2":"Troubleshooting","lvl3":""}},
|
|
6772
|
+
{"objectID":"49895306150970c4315329ad7d39d3141c62342bd1ca0ad4643cc8c3b63b1799","title":"See also","url":"/docs/getting-started/providers/sarvam#see-also","content":"Provider setup overview\nAll providers\nTier-2 onboarding — how this provider's JSON becomes a working integration\nProvider feature compatibility","hierarchy":{"lvl0":"Getting Started","lvl1":"Sarvam AI Provider Guide","lvl2":"See also","lvl3":""}},
|
|
6577
6773
|
{"objectID":"adff568ca72c577a263a48494421247c42ae820733451b03d9bbfa8e898f42c1","title":"Stability AI Provider Guide","url":"/docs/getting-started/providers/stability","content":"Stability AI Provider Guide\n\nDirect image generation — image-only provider with no chat / streaming\n(use the imageOutput.base64 field on the result)\n\nOverview\n\nStability AI hosts the Stable Diffusion family + Stable Image Ultra /\nCore. NeuroLink wraps api.stability.ai/v2beta/stable-image/generate/{model}\nso image generation works through the same nl.generate() flow as the\nLLM-routed image-gen providers (DALL-E on OpenAI, Imagen on Vertex).\nstable-image-ultra — flagship quality (default)\nstable-image-core — fast tier\nsd3.5-large, sd3.5-large-turbo, sd3.5-medium — open-weight Stable Diffusion 3.5\n\nKey Facts\nProtocol: REST /v2beta/stable-image/generate/{model} — multipart/form-data submit, base64 PNG response\nDefault base URL: https://api.stability.ai\nDefault model: stable-image-ultra\nOutput: PNG (always — output_format=png is hard-coded)\nStreaming / chat / tool calling: NOT supported (image-only; executeStream throws a friendly error)\nReference images: Not supported via this provider (use Replicate-hosted SDXL or Vertex Imagen for img-to-img)\nPricing: Per image — Stable Image Ultra is the most expensive tier\n\nQuick Start\nGet an API Key\n\nSign up at https://platform.stability.ai/\nand create an API key at\nhttps://platform.stability.ai/account/keys.\nConfigure Environment\nGenerate Your First Image\n\nSDK Usage\n\nBasic Generation (Stable Image Ultra)\n\nStable Image Core (Fast Tier)\n\nSD 3.5 Large\n\nAspect Ratio + Negative Prompt\n\nThe handler reads aspectRatio and negativePrompt from the options:\n\n(NeuroLink threads aspectRatio and negativePrompt through to the\nprovider when present; canonical typing for image-gen extras is a\nfollow-up improvement.)\n\nPer-Call Credentials\n\nCLI Usage\n\nProvider Aliases\n\n| Alias | Example |\n| -------------- | ------------------------- |\n| stability | --provider stability |\n| stability-ai | --provider stability-ai |\n| sd | --provider sd |\n\nConfiguration Reference\n\n| Environment Variable | Required | Default | Description |\n| -------------------- | -------- | -------------------------- | -------------------- |\n| STABILITY_API_KEY | Yes | — | Stability AI API key |\n| STABILITY_MODEL | No | stable-image-ultra | Default model |\n| STABILITY_BASE_URL | No | https://api.stability.ai | Base URL |\n\nFeature Support Matrix\n\n| Feature | stable-image-ultra | stable-image-core | sd3.5-large |\n| ---------------- | ------------------- | ----------------- | ----------- |\n| Image generation | Yes | Yes | Yes |\n| Text-to-image | Yes | Yes | Yes |\n| Image-to-image | No (this provider)¹ | No | No |\n| Aspect ratio | Yes | Yes | Yes |\n| Negative prompt | Yes | Yes | Yes |\n| Seed control | Yes | Yes | Yes |\n| Streaming | No | No | No |\n| Chat / tools | No | No | No |\n\n¹ For image-to-image with Stable Diffusion, use Replicate-hosted SDXL\nvariants via the Replicate provider.\n\nTroubleshooting\n\n\"Invalid Stability AI API key\"\n\nGet / rotate at\nhttps://platform.stability.ai/account/keys.\n\n\"Stability AI rate limit exceeded\"\n\nStability has per-second rate limits per tier. Implement exponential\nbackoff or upgrade your tier at\nhttps://platform.stability.ai/account/credits.\n\n\"Stability AI declined the request due to content policy\"\n\nThe prompt triggered Stability's content filter (finish_reason:\nCONTENT_FILTERED). Adjust the prompt and retry. Use a different model\nif you need looser filtering — but note that ALL Stable Image / SD 3.5\nmodels on the hosted API enforce the same policy.\n\n\"Stability AI returned no image\"\n\nThe upstream returned finish_reason: ERROR without an image. Check\nthe prompt for malformed Unicode or excessive length (>2000 chars).\n\n\"Model not found\"\n\nUse one of the documented model IDs: stable-image-ultra,\nstable-image-core, sd3.5-large, sd3.5-large-turbo, sd3.5-medium.\nNote: some older Stability models (SDXL 1.0, Stable Diffusion 1.5) are\ndeprecated on the hosted API — use Replicate to access them.\n\nSee Also\nIdeogram — sibling image-gen with strong typography (no setup doc yet; see src/lib/providers/ideogram.ts)\nRecraft — sibling image-gen with vector / illustration focus (no setup doc yet; see src/lib/providers/recraft.ts)\nReplicate Provider — image-gen via FLUX, SDXL variants, etc.\nAdding an image-gen provider — internal reference\n\nNeed Help? Open a GitHub Discussion or issue.","hierarchy":{"lvl0":"Getting Started","lvl1":"Stability AI Provider Guide","lvl2":"","lvl3":""}},
|
|
6578
6774
|
{"objectID":"158fb3f19b9c5a8afc9caf5497ad88e808c29b5d5f54fc55a94b0d7ddec885b5","title":"Stability AI Provider Guide","url":"/docs/getting-started/providers/stability#stability-ai-provider-guide","content":"Direct image generation — image-only provider with no chat / streaming\n(use the imageOutput.base64 field on the result)","hierarchy":{"lvl0":"Getting Started","lvl1":"Stability AI Provider Guide","lvl2":"Stability AI Provider Guide","lvl3":""}},
|
|
6579
6775
|
{"objectID":"9be4095a72a8e90fffc492dda791996e54456c0fdbb189805bf453ad83e05629","title":"Overview","url":"/docs/getting-started/providers/stability#overview","content":"Stability AI hosts the Stable Diffusion family + Stable Image Ultra /\nCore. NeuroLink wraps api.stability.ai/v2beta/stable-image/generate/{model}\nso image generation works through the same nl.generate() flow as the\nLLM-routed image-gen providers (DALL-E on OpenAI, Imagen on Vertex).\nstable-image-ultra — flagship quality (default)\nstable-image-core — fast tier\nsd3.5-large, sd3.5-large-turbo, sd3.5-medium — open-weight Stable Diffusion 3.5","hierarchy":{"lvl0":"Getting Started","lvl1":"Stability AI Provider Guide","lvl2":"Overview","lvl3":""}},
|
|
@@ -6596,6 +6792,16 @@
|
|
|
6596
6792
|
{"objectID":"bd256729471a6ae227bef035d51cf425ded61c9a4145c59e13d3b719f852331d","title":"\"Stability AI returned no image\"","url":"/docs/getting-started/providers/stability#stability-ai-returned-no-image","content":"The upstream returned finish_reason: ERROR without an image. Check\nthe prompt for malformed Unicode or excessive length (>2000 chars).","hierarchy":{"lvl0":"Getting Started","lvl1":"Stability AI Provider Guide","lvl2":"\"Stability AI returned no image\"","lvl3":""}},
|
|
6597
6793
|
{"objectID":"1fd8be6678a7d6a015a5f79c9c42456826928baa9cd68a5ce04aa90b23377005","title":"\"Model not found\"","url":"/docs/getting-started/providers/stability#model-not-found","content":"Use one of the documented model IDs: stable-image-ultra,\nstable-image-core, sd3.5-large, sd3.5-large-turbo, sd3.5-medium.\nNote: some older Stability models (SDXL 1.0, Stable Diffusion 1.5) are\ndeprecated on the hosted API — use Replicate to access them.","hierarchy":{"lvl0":"Getting Started","lvl1":"Stability AI Provider Guide","lvl2":"\"Model not found\"","lvl3":""}},
|
|
6598
6794
|
{"objectID":"5b8749a23300892944984a006ceeaf7f3749c9cc330e70ec111e4dfa2303e9d2","title":"See Also","url":"/docs/getting-started/providers/stability#see-also","content":"Ideogram — sibling image-gen with strong typography (no setup doc yet; see src/lib/providers/ideogram.ts)\nRecraft — sibling image-gen with vector / illustration focus (no setup doc yet; see src/lib/providers/recraft.ts)\nReplicate Provider — image-gen via FLUX, SDXL variants, etc.\nAdding an image-gen provider — internal reference\n\nNeed Help? Open a GitHub Discussion or issue.","hierarchy":{"lvl0":"Getting Started","lvl1":"Stability AI Provider Guide","lvl2":"See Also","lvl3":""}},
|
|
6795
|
+
{"objectID":"5d6fb26e3e893c2534b09e38ae652750f963771afe087027bb853555b13eb8a4","title":"Synthetic Provider Guide","url":"/docs/getting-started/providers/synthetic","content":"Synthetic Provider Guide\n\nSynthetic is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks declared, so its entire integration is one JSON file\n(src/lib/providers/catalog/synthetic.json) rather than hand-written code.\nThat file is the source of truth for everything on this page.\n\nVerification status: this entry is docs- and roster-verified, not yet\nlive-verified. Every model id, context window, output ceiling and price\nbelow comes from an unauthenticated GET /openai/v1/models call plus the\nvendor's own pricing page and LiteLLM's third-party provider page — no API\nkey was used or is required to onboard this entry. Nobody has yet run a\nlive capability sweep (chat, streaming, tool calls, structured output)\nagainst Synthetic with a real key; evidence.liveMatrix is null until\nthat happens. Treat capabilities.tools, .structuredOutput and\n.thinking as \"documented by the vendor,\" not \"wire-proven.\"\n\nKey Facts\nProvider id: synthetic\nProtocol: OpenAI-compatible (/chat/completions — the only operation\n LiteLLM's provider page lists for Synthetic)\nBase URL: https://api.synthetic.new/openai/v1\nDefault model: syn:large:text (deepseek-ai/DeepSeek-V4.1-Flash)\nModels in catalog: 11 ids covering 7 unique always-on models (short\n syn:* aliases and full Hugging Face weight ids both resolve)\nStreaming: documented (vendor docs show a streaming SDK example)\nTool calling: documented — every model on the live roster lists tools\n in supported_features\nStructured output: documented — every model lists json_mode and\n structured_outputs in supported_features. Tools + structured output\n together has not been probed, so structuredOutputWithTools is false\n until a live combined request confirms it.\nReasoning / thinking: documented — every model lists reasoning in\n supported_features with an explicit reasoning_parameters.efforts list\n (e.g. none/low/high/xhigh/max)\nEmbeddings: not exposed through this catalog entry. Synthetic's\n pricing page separately lists an included embedding model\n (hf:nomic-ai/nomic-embed-text-v1.5), but NeuroLink's embed() /\n embedMany() surface is currently wired only for OpenAI, Google AI\n Studio, Google Vertex and Amazon Bedrock — not generic Tier-2 catalog\n providers — so capabilities.embeddings is false here regardless.\nBilling: no free tier — flat-fee subscription ($1/day or $30/month,\n 500 requests/5hr) or enterprise usage-based pricing\nKey format: none documented\n\nQuick Start\nGet an API key\nVisit: https://synthetic.new and choose Sign up (or Log in if you already have an account)\nSubscribe to a Pack ($1/day or $30/month, 500 requests/5hr per the pricing page) or set up enterprise usage-based billing — Synthetic has no free tier or keyless trial\nGenerate an API key from your account dashboard\nSet SYNTHETIC_API_KEY in your .env file\nConfigure\nUse it\n\nPer-request credentials work as they do for every provider:\n\nModels\n\n| Model | Context | Max out | Vision | $/M in · out · cached-in | Notes |\n| --------------------------------------------------- | ------- | ------- | ------ | ------------------------ | --------------------------------------------------------------------------------------------------------------- |\n| syn:large:text ⭐ | 512K | 64K | yes | $0.60 / $1.20 / $0.03 | Recommended — alias for deepseek-ai/DeepSeek-V4.1-Flash. Vendor: \"an efficient near-Fable model with vision.\" |\n| syn:small:text | 192K | 64K | no | $0.10 / $0.50 / $0.02 | Alias for zai-org/GLM-4.7-Flash — smaller/faster, ~30B class; text-only input. |\n| syn:large:vision | 512K | 64K | yes | $3.00 / $15.00 / $0.45 | Alias for moonshotai/Kimi-K3 — 2.8T-parameter flagship; the most expensive model in the roster. |\n| syn:small:vision | 256K | 64K | yes | $0.45 / $2.20 / $0.09 | Alias for Qwen/Qwen3.8-27B — small coding + vision model. |\n| hf:zai-org/GLM-5.3-Flash | 512K | 64K | yes | $0.15 / $0.50 / $0.04 | No syn: short alias. Vendor: \"an extremely efficient, Opus-4.8-equivalent model with vision.\" |\n| hf:openai/gpt-oss-120b | 128K | 64K | no | $0.10 / $0.10 / $0.02 | OpenAI's open-weight gpt-oss-120b; strong reasoning + agentic use. |\n| hf:nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4 | 256K | 64K | no | $0.30 / $1.00 / $0.06 | Fast 120B model, good for coding agents. |\n| hf:deepseek-ai/DeepSeek-V4.1-Flash | 512K | 64K | yes | $0","hierarchy":{"lvl0":"Getting Started","lvl1":"Synthetic Provider Guide","lvl2":"","lvl3":""}},
|
|
6796
|
+
{"objectID":"eef94ef22cf845eb2e5117a994e6483af7f0a9b385fffa0c0b1155e6a836c314","title":"Synthetic Provider Guide","url":"/docs/getting-started/providers/synthetic#synthetic-provider-guide","content":"Synthetic is a Tier-2 catalog provider: OpenAI-wire-compatible with no\nbehavioural quirks declared, so its entire integration is one JSON file\n(src/lib/providers/catalog/synthetic.json) rather than hand-written code.\nThat file is the source of truth for everything on this page.\n\nVerification status: this entry is docs- and roster-verified, not yet\nlive-verified. Every model id, context window, output ceiling and price\nbelow comes from an unauthenticated GET /openai/v1/models call plus the\nvendor's own pricing page and LiteLLM's third-party provider page — no API\nkey was used or is required to onboard this entry. Nobody has yet run a\nlive capability sweep (chat, streaming, tool calls, structured output)\nagainst Synthetic with a real key; evidence.liveMatrix is null until\nthat happens. Treat capabilities.tools, .structuredOutput and\n.thinking as \"documented by the vendor,\" not \"wire-proven.\"","hierarchy":{"lvl0":"Getting Started","lvl1":"Synthetic Provider Guide","lvl2":"Synthetic Provider Guide","lvl3":""}},
|
|
6797
|
+
{"objectID":"c2baa496ddd36ed9f0523b9d3466fa858e3fe791889c16953111aa282b9ccbb5","title":"Key Facts","url":"/docs/getting-started/providers/synthetic#key-facts","content":"Provider id: synthetic\nProtocol: OpenAI-compatible (/chat/completions — the only operation\n LiteLLM's provider page lists for Synthetic)\nBase URL: https://api.synthetic.new/openai/v1\nDefault model: syn:large:text (deepseek-ai/DeepSeek-V4.1-Flash)\nModels in catalog: 11 ids covering 7 unique always-on models (short\n syn:* aliases and full Hugging Face weight ids both resolve)\nStreaming: documented (vendor docs show a streaming SDK example)\nTool calling: documented — every model on the live roster lists tools\n in supported_features\nStructured output: documented — every model lists json_mode and\n structured_outputs in supported_features. Tools + structured output\n together has not been probed, so structuredOutputWithTools is false\n until a live combined request confirms it.\nReasoning / thinking: documented — every model lists reasoning in\n supported_features with an explicit reasoning_parameters.efforts list\n (e.g. none/low/high/xhigh/max)\nEmbeddings: not exposed through this catalog entry. Synthetic's\n pricing page separately lists an included embedding model\n (hf:nomic-ai/nomic-embed-text-v1.5), but NeuroLink's embed() /\n embedMany() surface is currently wired only for OpenAI, Google AI\n Studio, Google Vertex and Amazon Bedrock — not generic Tier-2 catalog\n providers — so capabilities.embeddings is false here regardless.\nBilling: no free tier — flat-fee subscription ($1/day or $30/month,\n 500 requests/5hr) or enterprise usage-based pricing\nKey format: none documented","hierarchy":{"lvl0":"Getting Started","lvl1":"Synthetic Provider Guide","lvl2":"Key Facts","lvl3":""}},
|
|
6798
|
+
{"objectID":"493bfe07f561cd2314a1307b4d07e7f4990be5574de0db8a793237c603b3417b","title":"1. Get an API key","url":"/docs/getting-started/providers/synthetic#1-get-an-api-key","content":"Visit: https://synthetic.new and choose Sign up (or Log in if you already have an account)\nSubscribe to a Pack ($1/day or $30/month, 500 requests/5hr per the pricing page) or set up enterprise usage-based billing — Synthetic has no free tier or keyless trial\nGenerate an API key from your account dashboard\nSet SYNTHETIC_API_KEY in your .env file","hierarchy":{"lvl0":"Getting Started","lvl1":"Synthetic Provider Guide","lvl2":"1. Get an API key","lvl3":""}},
|
|
6799
|
+
{"objectID":"9496a823fa35648e3b44fb9906c0c2ecf0aac8b3304b57b3101562b12054e537","title":"3. Use it","url":"/docs/getting-started/providers/synthetic#3-use-it","content":"`bash","hierarchy":{"lvl0":"Getting Started","lvl1":"Synthetic Provider Guide","lvl2":"3. Use it","lvl3":""}},
|
|
6800
|
+
{"objectID":"54ad7e9c42c24436375e48d45e5460a4e0a703e2ec015cc75e3104b61273f5db","title":"CLI","url":"/docs/getting-started/providers/synthetic#cli","content":"npx @juspay/neurolink generate \"Hello\" --provider synthetic\ntypescript\nawait neurolink.generate({\n input: { text: \"Hello\" },\n provider: \"synthetic\",\n credentials: { synthetic: { apiKey: process.env.SYNTHETICAPIKEY } },\n});\n`","hierarchy":{"lvl0":"Getting Started","lvl1":"Synthetic Provider Guide","lvl2":"CLI","lvl3":""}},
|
|
6801
|
+
{"objectID":"6df899559dd0fb3ba09f328c4f9b1f75a4dda1a0692fc3029301cb4919c71f3b","title":"Models","url":"/docs/getting-started/providers/synthetic#models","content":"| Model | Context | Max out | Vision | $/M in · out · cached-in | Notes |\n| --------------------------------------------------- | ------- | ------- | ------ | ------------------------ | --------------------------------------------------------------------------------------------------------------- |\n| syn:large:text ⭐ | 512K | 64K | yes | $0.60 / $1.20 / $0.03 | Recommended — alias for deepseek-ai/DeepSeek-V4.1-Flash. Vendor: \"an efficient near-Fable model with vision.\" |\n| syn:small:text | 192K | 64K | no | $0.10 / $0.50 / $0.02 | Alias for zai-org/GLM-4.7-Flash — smaller/faster, ~30B class; text-only input. |\n| syn:large:vision | 512K | 64K | yes | $3.00 / $15.00 / $0.45 | Alias for moonshotai/Kimi-K3 — 2.8T-parameter flagship; the most expensive model in the roster. |\n| syn:small:vision | 256K | 64K | yes | $0.45 / $2.20 / $0.09 | Alias for Qwen/Qwen3.8-27B — small coding + vision model. |\n| hf:zai-org/GLM-5.3-Flash | 512K | 64K | yes | $0.15 / $0.50 / $0.04 | No syn: short alias. Vendor: \"an extremely efficient, Opus-4.8-equivalent model with vision.\" |\n| hf:openai/gpt-oss-120b | 128K | 64K | no | $0.10 / $0.10 / $0.02 | OpenAI's open-weight gpt-oss-120b; strong reasoning + agentic use. |\n| hf:nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4 | 256K | 64K | no | $0.30 / $1.00 / $0.06 | Fast 120B model, good for coding agents. ","hierarchy":{"lvl0":"Getting Started","lvl1":"Synthetic Provider Guide","lvl2":"Models","lvl3":""}},
|
|
6802
|
+
{"objectID":"1b321e95b49cf8c2e2e15b3e5b1292363d492fd984294d3c5a329e11a33765f2","title":"Verification status","url":"/docs/getting-started/providers/synthetic#verification-status","content":"Tier-2 onboarding requires evidence before a provider is accepted, and\npnpm run verify:provider-onboarding gates it in CI. This is what the\ncatalog records for Synthetic — all credential-free:\n\n| Probe | Result |\n| ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Roster | unauthenticated GET /openai/v1/models, HTTP 200, 11 models, 2026-09-28. No API key used or required for this endpoint. |\n| Billing | unauthenticated GET https://synthetic.new/pricing, HTTP 200, 2026-09-28 — no free tier; $1/day or $30/month subscription pack (500 req/5hr), or enterprise usage-based pricing. |\n| Third-party wire check | LiteLLM's Synthetic provider page confirms base URL https://api.synthetic.new/openai/v1, env var SYNTHETIC_API_KEY, and /chat/completions as the only supported operation. |\n| Live capability sweep | Not yet run. evidence.liveMatrix is null. Tool calling, structured output, streaming and the tools+schema combination are documented by the vendor's own supported_features roster field, not wire-proven against a real key. |\n\nBecause no live key was used, capabilities.structuredOutputWithTools is\nfalse per Tier-2 policy — a documented individual capability is not\nevidence for the combined one. A future pass with a real\nSYNTHETIC_API_KEY should run the live matrix\n(npx tsx test/con","hierarchy":{"lvl0":"Getting Started","lvl1":"Synthetic Provider Guide","lvl2":"Verification status","lvl3":""}},
|
|
6803
|
+
{"objectID":"4db386b896f3e19c66e5564b8719cb8bddca88d0d596ccdea459ee60cf27f825","title":"Troubleshooting","url":"/docs/getting-started/providers/synthetic#troubleshooting","content":"| Symptom | Cause | Fix |\n| ---------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |\n| Auth error on first request | No documented auth-error shape yet (no live probe) | Check SYNTHETIC_API_KEY is set and valid; see https://synthetic.new for key management |\n| Model not found | The roster changed since 2026-09-28 | Pick a current id from the unauthenticated GET /openai/v1/models roster |\n| No free tier | Synthetic requires a paid Pack or usage-based billing | Subscribe at https://synthetic.new before making live calls |\n| Structured output + tools together fails | Not yet probed combined; declared unsupported (structuredOutputWithTools: false) until proven live | Send tools and response_format in separate requests until this is live-verified |","hierarchy":{"lvl0":"Getting Started","lvl1":"Synthetic Provider Guide","lvl2":"Troubleshooting","lvl3":""}},
|
|
6804
|
+
{"objectID":"452f3970d27c44897602d26d618f2d1f808aae1c21ceba07acf57e2c84c34a02","title":"See also","url":"/docs/getting-started/providers/synthetic#see-also","content":"Provider setup overview\nAll providers\nTier-2 onboarding — how this provider's JSON becomes a working integration\nProvider feature compatibility","hierarchy":{"lvl0":"Getting Started","lvl1":"Synthetic Provider Guide","lvl2":"See also","lvl3":""}},
|
|
6599
6805
|
{"objectID":"243a3989bebe21f5752f34a81850bae030e123b48226808615b901677a8f5fb3","title":"Together AI Provider Guide","url":"/docs/getting-started/providers/together-ai","content":"Together AI Provider Guide\n\nOpen-source LLMs at production scale via the Together gateway\n\nOverview\n\nTogether AI hosts a large catalog of open-weight\nmodels — Llama 3.x, Qwen, DeepSeek, Mixtral, Gemma — behind an\nOpenAI-compatible chat-completions endpoint. NeuroLink wraps it with no\ntranslation cost.\n\nKey Facts\nProtocol: OpenAI-compatible (/v1/chat/completions)\nDefault base URL: https://api.together.xyz/v1\nDefault model: meta-llama/Llama-3.3-70B-Instruct-Turbo\nVision: Yes — Llama 3.2 Vision variants\nStreaming: Supported\nTool calling: Supported on Llama 3.1+ and DeepSeek\n\nQuick Start\nGet an API Key\n\nhttps://api.together.xyz/settings/api-keys\nConfigure Environment\nGenerate\n\nSupported Models (sample)\n\n| Model ID | Notes |\n| ----------------------------------------------- | --------------------------- |\n| meta-llama/Llama-3.3-70B-Instruct-Turbo | Default; production quality |\n| meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo | Flagship size |\n| meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo | Mid-tier |\n| deepseek-ai/DeepSeek-R1 | Reasoning model |\n| Qwen/Qwen2.5-72B-Instruct-Turbo | Qwen 2.5 flagship |\n\nBrowse the full catalog: https://docs.together.ai/docs/serverless-models\n\nCLI Usage\n\nProvider Aliases\n\n| Alias | Example |\n| ------------- | ------------------------ |\n| together | --provider together |\n| together_ai | --provider together_ai |\n\nConfiguration Reference\n\n| Environment Variable | Required | Default |\n| -------------------- | -------- | ----------------------------------------- |\n| TOGETHER_API_KEY | Yes | — |\n| TOGETHER_MODEL | No | meta-llama/Llama-3.3-70B-Instruct-Turbo |\n| TOGETHER_BASE_URL | No | https://api.together.xyz/v1 |\n\nFeature Support Matrix\n\n| Feature | Support |\n| ----------------- | ----------------- |\n| Text generation | Yes |\n| Streaming | Yes |\n| Tool calling | Yes (model-dep.) |\n| Structured output | Yes (model-dep.) |\n| Vision | Yes (Llama 3.2 V) |\n| Embeddings | Limited |\n\nSee Also\nFireworks Provider\nGroq Provider","hierarchy":{"lvl0":"Getting Started","lvl1":"Together AI Provider Guide","lvl2":"","lvl3":""}},
|
|
6600
6806
|
{"objectID":"752a4aba251eeae8b5547126737d9d3fc2130765d4b38d10d3a6b940d48f401c","title":"Together AI Provider Guide","url":"/docs/getting-started/providers/together-ai#together-ai-provider-guide","content":"Open-source LLMs at production scale via the Together gateway","hierarchy":{"lvl0":"Getting Started","lvl1":"Together AI Provider Guide","lvl2":"Together AI Provider Guide","lvl3":""}},
|
|
6601
6807
|
{"objectID":"131af5e2bfd6d4376f40ec921f71815fc6763ad947f0d5c18f942019d2728050","title":"Overview","url":"/docs/getting-started/providers/together-ai#overview","content":"Together AI hosts a large catalog of open-weight\nmodels — Llama 3.x, Qwen, DeepSeek, Mixtral, Gemma — behind an\nOpenAI-compatible chat-completions endpoint. NeuroLink wraps it with no\ntranslation cost.","hierarchy":{"lvl0":"Getting Started","lvl1":"Together AI Provider Guide","lvl2":"Overview","lvl3":""}},
|
|
@@ -8930,6 +9136,16 @@
|
|
|
8930
9136
|
{"objectID":"0060ac273f386c349e42799641f9fc2ac514f569b1870b20a2cc8097d482bf2d","title":"7. Shared logging fetch — createLoggingFetch","url":"/docs/provider-integration/SAFETY-PRIMITIVES#7-shared-logging-fetch-createloggingfetch","content":"Use for: the fetch option on createOpenAI({...}) / similar SDK\nclient constructors when you want non-2xx upstream responses logged\nwith sanitized output.\n\nBody opt-in: response bodies are NOT logged by default. Set\nNEUROLINK_DEBUG_HTTP=1 to enable body logging — bodies are run\nthrough sanitizeForLog to redact tokens.\n\nPreviously duplicated in: cohere, xai, groq, togetherAi, fireworks,\nperplexity, cloudflare, llamaCpp, lmStudio, nvidiaNim, deepseek (11\nnear-identical copies with subtle differences). Now centralised.","hierarchy":{"lvl0":"Provider Integration","lvl1":"Safety Primitives Reference","lvl2":"7. Shared logging fetch — createLoggingFetch","lvl3":""}},
|
|
8931
9137
|
{"objectID":"1ba0f0ac7f804aa5d9cabe5106734436439a83dc273dcf5e05984d218fae5b1f","title":"8. Test scripts","url":"/docs/provider-integration/SAFETY-PRIMITIVES#8-test-scripts","content":"⚠️ These three suites no longer exist. ssrf, log-sanitize and\nstream-span each imported the primitive out of src/lib/ and asserted on\nit directly, so they were removed when the suites became end-to-end only\n(CLAUDE.md rule 15).\n\n| Removed suite | Covered |\n| -------------------------------------------- | ------------------------------------------------------------------------------------------------------- |\n| test/continuous-test-suite-ssrf.ts | H01 + H06 bypass categories, handler-coverage audit |\n| test/continuous-test-suite-log-sanitize.ts | H03 + H04 token formats, record/header sanitization, H04 regression grep |\n| test/continuous-test-suite-stream-span.ts | H07 span lifetime + error path + recordException ordering, M08 typed-error sweep, M09 brand check sweep |\n\nNothing has replaced them. The primitives themselves are unchanged and the\neslint rules that force callers through them still apply, but the bypass\ncategories above are now caught only by review. Treat the checklist below\nas the live control.","hierarchy":{"lvl0":"Provider Integration","lvl1":"Safety Primitives Reference","lvl2":"8. Test scripts","lvl3":""}},
|
|
8932
9138
|
{"objectID":"2c421be98a40dada99b032fd6dab31bc387486db4c7060e3c4fd720b1135742d","title":"9. Universal safety checklist (paste into PR description)","url":"/docs/provider-integration/SAFETY-PRIMITIVES#9-universal-safety-checklist-paste-into-pr-description","content":"When adding any new provider / modality / handler, tick:\n[ ] All caller-influenced URL downloads go through safeDownload (or predictionLifecycle.downloadPredictionOutput for Replicate-based handlers)\n[ ] All HTTP response bodies sanitized via sanitizeForLog / sanitizeRecord / sanitizeHeaders (NO inline regex)\n[ ] Streaming spans wrapped in withClientStreamSpan (NOT withClientSpan)\n[ ] Provider SDK reference validated via isNeuroLink(sdk) (NOT duck-typing)\n[ ] formatProviderError returns typed errors (AuthenticationError / RateLimitError / InvalidModelError / NetworkError / ProviderError / NeuroLinkError) — never plain Error\n[ ] Reviewed by hand against §8 — the ssrf / log-sanitize / stream-span suites that used to gate this were removed with the unit suites\n\nIf a custom redaction or fetch pattern is genuinely required, add an\neslint-disable-next-line with a one-line justification rather than\nsilently bypassing the centralized helper.","hierarchy":{"lvl0":"Provider Integration","lvl1":"Safety Primitives Reference","lvl2":"9. Universal safety checklist (paste into PR description)","lvl3":""}},
|
|
9139
|
+
{"objectID":"a38fecff2a45c5d93cfd8f93417b053e1d9b60919a6802b88a0876d3729d2c0d","title":"Credential-free provider acceptance gate","url":"/docs/provider-integration/acceptance-gate","content":"Credential-free provider acceptance gate\n\nSuite: test/continuous-test-suite-acceptance-gate.ts\nRun: pnpm run test:acceptance-gate\nScript: test:acceptance-gate in package.json\nMock server: test/helpers/acceptanceGateServer.ts\n\nWhy this exists\n\nThe prior full provider capability matrix (test/continuous-test-suite-provider-matrix.ts,\n1,037 cells) was audited and found to be able to report green without proving\nanything, in at least 10 ways: tool cells that passed with zero tool calls\nmade, no disableInternalFallback and no provider/model identity check on\nany cell, structured-output cells that asserted a value's type rather than\nits contents, and a harness that could exit 0 on zero coverage.\n\nThis gate replaces that surface area with a small, falsifiable one: at most\n9 cells per (provider, pinned model), fail-fast, cheapest first, run\nentirely against a local mock vendor HTTP server — no real vendor calls, no\nreal API keys, ever. Every provider is pointed at the mock through its own\ndocumented base-URL environment override, with a fake key, so the SDK and\nthe CLI both round-trip through the exact same server (that's what makes\ncell 9, CLI parity, meaningful instead of a re-derivation).\n\nThe 9 cells\n\nEach cell asserts an exact value the mock server returns, never a shape\nor a \"non-empty\" check. A row stops (remaining cells report SKIP, not a\nsecond FAIL) the first time a cell genuinely fails — this is the\n\"fail-fast\" contract; a capability-gated skip (e.g. a provider that doesn't\ndeclare tools) never counts as a failure and never poisons the rest of the\nrow.\nIdentity pin — every call carries\n { provider, model, disableInternalFallback: true }; the result's\n provider and model fields are asserted against what was requested.\nExact-output generate — generate()'s content is asserted equal to\n a specific constant (GATE_EXACT_VALUE), not merely non-empty.\nDrained stream, identity asserted — the stream is fully drained and\n the accumulated content is asserted equal to a constant. The\n StreamResult's provider/model are then asserted — and for the\n OpenAI-compatible protocol rows, against what the mock server actually\n served (${model}::mock-server-resolved), not what was requested. See\n \"The stream-identity defect\" below — this cell is the reason that defect\n was caught and fixed.\nTool-nonce proof — the test tool's execute() returns a fresh\n randomUUID() nonce that exists nowhere else. The final answer is\n asserted to contain ACCEPTANCE_GATE_TOOL_CONFIRMED:<nonce>, which the\n mock server only emits once it sees that exact nonce echoed back in a\n tool-result message — i.e. the assertion can only pass if a real tool\n call round-tripped through the model.\nStructured-exact — generate({ schema })'s parsed structuredData is\n asserted equal (via JSON.stringify) to an exact object, and\n jsonTruncated is asserted not true — truncation is surfaced, never\n silently swallowed.\nThinking proof — only for providers whose catalog/descriptor declares\n thinking: true (currently anthropic and the deepseek catalog row).\n Drives stream() with an explicit\n thinkingConfig: { enabled: true, budgetTokens: 2048 } (the SDK path has no bare thinkingLevel\n convenience — that folding only exists on the CLI's option parser) and\n asserts the accumulated reasoning deltas and the post-thinking answer\n both equal exact constants.\nEmbeddings proof — only for providers whose row declares\n embeddings: true. Goes through ProviderFactory.createProvider()\n directly (NeuroLink has no embed() method) and asserts the returned\n vector equals an exact constant array.\nBudget ceiling enforced — a dedicated, low-ceiling (1) mock\n server instance proves the ceiling mechanism itself is real: a first call\n succeeds, a second call against the same server must fail, and the\n server's own request counter is asserted to have observed both. This\n runs against its own server, never the shared one every other cell uses,\n so it can't be tripped by unrelated traffic.\nCLI parity — the same identity + exact-output assertions as cells 1-2,\n but driven through the built CLI\n (node dist/cli/index.js generate ... --format json), parsing its JSON\n stdout, against the same mock server.\n Not a separate re-derivation of the assertions — literally the same\n constants.\n\nKnown, documented gap in cell 9\n\nThe CLI's generate/stream commands have no flag that reaches\ndisableInternalFallback — commandFactory.ts's processOptions()\nwhitelist omits it (only the interactive REPL's separate options schema\nsupports it). Cell 9 therefore runs without disableInternalFallback. This\nis an intentional, documented gap, not an oversight: fixing it is a CLI\noption-surface change out of scope for this gate.\n\nWhat keeps the gap harmless is that the suite holds no real credential to\nfall back to. test/helpers/credentialFreeEnv.ts is its first import: it\npoints DOTENV_CONFIG_PATH at /dev/null, so neither the SDK's nor the\nharness's .env load r","hierarchy":{"lvl0":"Provider Integration","lvl1":"Credential-free provider acceptance gate","lvl2":"","lvl3":""}},
|
|
9140
|
+
{"objectID":"6bfda42431fee55d45b08f169983782641ed449c8f73abe19f2f3c421f8666cb","title":"Credential-free provider acceptance gate","url":"/docs/provider-integration/acceptance-gate#credential-free-provider-acceptance-gate","content":"Suite: test/continuous-test-suite-acceptance-gate.ts\nRun: pnpm run test:acceptance-gate\nScript: test:acceptance-gate in package.json\nMock server: test/helpers/acceptanceGateServer.ts","hierarchy":{"lvl0":"Provider Integration","lvl1":"Credential-free provider acceptance gate","lvl2":"Credential-free provider acceptance gate","lvl3":""}},
|
|
9141
|
+
{"objectID":"3ebd78a77f6b62003d9706d1608fb7eded2399f0dbd78b3964e14d5ac3d31f90","title":"Why this exists","url":"/docs/provider-integration/acceptance-gate#why-this-exists","content":"The prior full provider capability matrix (test/continuous-test-suite-provider-matrix.ts,\n1,037 cells) was audited and found to be able to report green without proving\nanything, in at least 10 ways: tool cells that passed with zero tool calls\nmade, no disableInternalFallback and no provider/model identity check on\nany cell, structured-output cells that asserted a value's type rather than\nits contents, and a harness that could exit 0 on zero coverage.\n\nThis gate replaces that surface area with a small, falsifiable one: at most\n9 cells per (provider, pinned model), fail-fast, cheapest first, run\nentirely against a local mock vendor HTTP server — no real vendor calls, no\nreal API keys, ever. Every provider is pointed at the mock through its own\ndocumented base-URL environment override, with a fake key, so the SDK and\nthe CLI both round-trip through the exact same server (that's what makes\ncell 9, CLI parity, meaningful instead of a re-derivation).","hierarchy":{"lvl0":"Provider Integration","lvl1":"Credential-free provider acceptance gate","lvl2":"Why this exists","lvl3":""}},
|
|
9142
|
+
{"objectID":"0d725f9afdd86b7d8821e0e94ea518e7d06ef55da79a6781a8c9b96d17125ed8","title":"The 9 cells","url":"/docs/provider-integration/acceptance-gate#the-9-cells","content":"Each cell asserts an exact value the mock server returns, never a shape\nor a \"non-empty\" check. A row stops (remaining cells report SKIP, not a\nsecond FAIL) the first time a cell genuinely fails — this is the\n\"fail-fast\" contract; a capability-gated skip (e.g. a provider that doesn't\ndeclare tools) never counts as a failure and never poisons the rest of the\nrow.\nIdentity pin — every call carries\n { provider, model, disableInternalFallback: true }; the result's\n provider and model fields are asserted against what was requested.\nExact-output generate — generate()'s content is asserted equal to\n a specific constant (GATE_EXACT_VALUE), not merely non-empty.\nDrained stream, identity asserted — the stream is fully drained and\n the accumulated content is asserted equal to a constant. The\n StreamResult's provider/model are then asserted — and for the\n OpenAI-compatible protocol rows, against what the mock server actually\n served (${model}::mock-server-resolved), not what was requested. See\n \"The stream-identity defect\" below — this cell is the reason that defect\n was caught and fixed.\nTool-nonce proof — the test tool's execute() returns a fresh\n randomUUID() nonce that exists nowhere else. The final answer is\n asserted to contain ACCEPTANCE_GATE_TOOL_CONFIRMED:<nonce>, which the\n mock server only emits once it sees that exact nonce echoed back in a\n tool-result message — i.e. the assertion can only pass if a real tool\n call round-tripped through the model.\nStructured-exact — generate({ schema })'s parsed structuredData is\n asserted equal (via JSON.stringify) to an exact object, and\n jsonTruncated is asserted not true — truncation is surfaced, never\n silently swallowed.\nThinking proof — only for providers whose catalog/descriptor declares\n thinking: true (currently anthropic and the deepseek catalog row).\n Drives stream() with an explicit\n thinkingConfig: { enabled: true, budgetTokens: 2048 } (the SDK path has no bare thinkingLevel\n ","hierarchy":{"lvl0":"Provider Integration","lvl1":"Credential-free provider acceptance gate","lvl2":"The 9 cells","lvl3":""}},
|
|
9143
|
+
{"objectID":"9e86b70c4ede7dc96da001ab3bf0327c39f525d7d1c62279bcf34ae41f54229a","title":"Known, documented gap in cell 9","url":"/docs/provider-integration/acceptance-gate#known-documented-gap-in-cell-9","content":"The CLI's generate/stream commands have no flag that reaches\ndisableInternalFallback — commandFactory.ts's processOptions()\nwhitelist omits it (only the interactive REPL's separate options schema\nsupports it). Cell 9 therefore runs without disableInternalFallback. This\nis an intentional, documented gap, not an oversight: fixing it is a CLI\noption-surface change out of scope for this gate.\n\nWhat keeps the gap harmless is that the suite holds no real credential to\nfall back to. test/helpers/credentialFreeEnv.ts is its first import: it\npoints DOTENV_CONFIG_PATH at /dev/null, so neither the SDK's nor the\nharness's .env load reads a developer's .env, it deletes every\ncredential-named variable the shell exported, and it points HOME at an\nempty temp directory. The last one matters as much as the first two: the\nAnthropic provider prefers a stored OAuth token\n(~/.neurolink/anthropic-credentials.json) over ANTHROPIC_API_KEY and\nrefreshes it against Anthropic's live token endpoint, so a gate that only\ncleaned the environment could still send a real refresh token to a real\nhost. The suite checks the environment and the home directory before it\nruns a row, and the CLI child inherits that stripped environment plus the\ncurrent row's fake key.","hierarchy":{"lvl0":"Provider Integration","lvl1":"Credential-free provider acceptance gate","lvl2":"Known, documented gap in cell 9","lvl3":""}},
|
|
9144
|
+
{"objectID":"d7fd57b5311bed74e1ac06949abeca0fc2aab02f46c7841d85da59920aafcd61","title":"The stream-identity defect (cell 3)","url":"/docs/provider-integration/acceptance-gate#the-stream-identity-defect-cell-3","content":"Confirmed and fixed in src.\n\nStreamResult.model (the public value cell 3 asserts against) was reporting\nthe requested model, not the model the server actually served. Internally,\nneurolink.ts already captured the resolved model — the bug was that this\nresolved value never reached the public StreamResult.\nOpenAI-compatible protocol path (src/lib/providers/openaiChatCompletionsBase.ts,\n src/lib/types/openaiCompatible.ts) — the substantive fix, and the one\n cell 3 actually exercises: added StreamLoopArgs.onModelObserved?: (model:\nstring) => void, fired once per step that echoes a model field on the\n wire (SSE chunk.model, captured by parseSSEStream into\n OpenAICompatSSEResult.model). executeStream's public result.model was\n a plain data property fixed at the pre-call resolved/requested modelId;\n it is now a live getter (observedServerModel ?? modelId) so a caller\n reading .model after draining .stream sees what the server actually\n served — the mock's ::mock-server-resolved suffix on the STREAM cell\n is what makes this difference observable and the fix provable. It has to\n be a getter, not a reassignment after the fact: preserveLiveStreamAccessors\n spreads result into a new object at each provider boundary before the\n background loop produces its first chunk, which would freeze a plain field\n at its construction-time value.\nAnthropic path (src/lib/providers/anthropic/client.ts) — a narrower,\n related fix: StreamResult.model was reporting the raw constructor\n argument this.modelName, which is undefined whenever a caller relies\n on the default model rather than passing one explicitly. It now reports\n modelId, the value already resolved as this.modelName ||\ngetDefaultAnthropicModel() and actually put on the wire. Note this is a\n different bug from the OpenAI-compatible one: the Anthropic Messages API\n always echoes the request's model back verbatim in its envelope, so\n there is no \"server resolved a different model than requested\" case on\n this protoc","hierarchy":{"lvl0":"Provider Integration","lvl1":"Credential-free provider acceptance gate","lvl2":"The stream-identity defect (cell 3)","lvl3":""}},
|
|
9145
|
+
{"objectID":"d47c3d7913d5adb6968b60f5025f7c15472e8bbf76abe5b0b4277001a96c9691","title":"Additional src defects found and fixed by cells 4 and 8","url":"/docs/provider-integration/acceptance-gate#additional-src-defects-found-and-fixed-by-cells-4-and-8","content":"Building this gate surfaced three more real defects, all in provider-side\ntool-capability allowlists and one test-sizing constant — none in the mock\nitself. Each is a one-line, strictly capability-adding fix.\nollama cell 4 (tool-nonce proof) — OllamaProvider.supportsTools()\n checks the model name against modelConfiguration.ts's\n createOllamaConfig().modelBehavior.toolCapableModels allowlist. That list\n (OLLAMA_TOOL_CAPABLE_MODELS) included \"llama3.1\" but not \"llama3.2\" —\n the gate's own pinned default Ollama model\n (providerMatrix.ts's ollama.defaultModel, which declares tools:\ntrue). supportsTools() returned false for the provider's own default\n model, which silently dropped the user-supplied tool from both the\n wire tools field and the execution lookup (executeNativeGenerate()'s\n toolsRecord is built empty when supportsTools() is false), producing a\n \"Tool not found\" error instead of a real tool round-trip. Fixed in\n src/lib/core/modelConfiguration.ts by adding \"llama3.2\" to the default\n toolCapableModels array.\nopenrouter cell 4 (tool-nonce proof) — OpenRouterProvider.supportsTools()\n has two paths: a dynamically cached capability set (populated by\n cacheModelCapabilities(), which fetches /models and reads\n supported_parameters) and a hardcoded fallback pattern list used until\n that cache is populated. cacheModelCapabilities() is never invoked\n automatically anywhere in the real generate()/stream() code paths, so\n the fallback list is the only path ever exercised in practice. That list\n included \"meta-llama/llama-3.2\" and \"meta-llama/llama-3.3\" but not\n \"meta-llama/llama-3.1\" — the family of the gate's pinned default\n OpenRouter model, \"meta-llama/llama-3.1-8b-instruct\" (chosen, per an\n existing code comment, specifically because it supports every capability\n the matrix exercises). Same failure mode as the ollama defect above.\n Fixed in src/lib/providers/openRouter/client.ts by adding\n \"meta-llama/llama-3.1\" to knownToolCapablePatterns.\nli","hierarchy":{"lvl0":"Provider Integration","lvl1":"Credential-free provider acceptance gate","lvl2":"Additional src defects found and fixed by cells 4 and 8","lvl3":""}},
|
|
9146
|
+
{"objectID":"0618b382f27d4d7ae674f8c803a793a4b1774ab7eecc3e1eb4738979361454ff","title":"Mock server","url":"/docs/provider-integration/acceptance-gate#mock-server","content":"test/helpers/acceptanceGateServer.ts is a real node:http server (not\nfetch interception) that speaks the two wire protocols the covered providers\nactually use:\nOpenAI-compatible chat completions — /chat/completions (including\n SSE streaming, tool calls, response_format, reasoning deltas), /models,\n /embeddings.\nAnthropic Messages API — /messages, for the one ANTHROPIC_BASE_URL\n row.\n\nEvery provider is redirected at it through its own documented base-URL\nenvironment override (<ID>_BASE_URL for catalog providers, each\nhand-written provider's own env var — see \"Coverage\" below) with a fake API\nkey (gate-fake-key-not-a-real-credential). The server enforces a\nrequest-count ceiling per instance and returns HTTP 400 past it (cell 8).\n\nEvery gate marker, exact value, and mock behavior the suite asserts against\nis exported from that file (GATE_MARKERS, GATE_EXACT_VALUE,\nGATE_STREAM_VALUE, GATE_STRUCTURED_VALUE, GATE_TOOL_NAME,\nGATE_TOOL_CONFIRM_PREFIX, GATE_THINKING_FULL, GATE_THINKING_ANSWER,\nGATE_EMBEDDING_VECTOR, GATE_SERVER_MODEL_SUFFIX, ...) so the suite and\nthe mock can never silently drift apart.","hierarchy":{"lvl0":"Provider Integration","lvl1":"Credential-free provider acceptance gate","lvl2":"Mock server","lvl3":""}},
|
|
9147
|
+
{"objectID":"22d04d6ef0ebc06dcdcf19ccf6ce15cb208747c36ecdf33dafb495ac9c1029c1","title":"Coverage","url":"/docs/provider-integration/acceptance-gate#coverage","content":"Provider rows are derived the same way test/helpers/providerMatrix.ts\nalready does: hand-written rows are listed explicitly, catalog rows are\nderived from the built catalog (dist/providers/catalog/index.generated.js\nand dist/providers/catalog/loader.js), matching every other suite that\nconsumes providerMatrix.ts.\n\n31 providers covered — 9 hand-written OpenAI-compatible providers\n(openai, openai-compatible, openrouter, ollama, litellm,\nnvidia-nim, lm-studio, llamacpp, cohere), azure (OpenAI-compatible\nprotocol via its own deployment URL), anthropic (Anthropic Messages\nprotocol), and 20 catalog providers whose base URL is a plain env override\n(every catalog provider except cloudflare, which needs a\ncomputedBaseURL/account-id template the mock can't satisfy — see below).\n\n13 providers not covered, each for a structural reason (no silent caps —\nthe suite itself throws at import time if a PROVIDERS entry is in neither\nlist):\n\n| Provider | Reason |\n| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| vertex | Signed Google Cloud client (service account / ADC), not a plain bearer-token HTTP call; no base-URL override, credentials can't be faked with a static string. |\n| google-ai | Speaks Google's Gemini wire protocol — a third protocol family this gate's mock does not implement (only OpenAI-compatible and Anthropic Messages are). |\n| bedrock | AWS SigV4-signed requests via the AWS SDK — same class of problem as vertex. |\n| sagemaker | AWS SigV4-signed requests via the AWS SDK — same class o","hierarchy":{"lvl0":"Provider Integration","lvl1":"Credential-free provider acceptance gate","lvl2":"Coverage","lvl3":""}},
|
|
9148
|
+
{"objectID":"258a3149c7933854fa0749299620adb948d24476ea2c37630b2ed184ecea268d","title":"Running it","url":"/docs/provider-integration/acceptance-gate#running-it","content":"No environment variables or credentials are required, and none are used:\nreal ones are stripped at startup (see \"Known, documented gap in cell 9\"),\nand every credential the suite sets is a fake string, scoped per-row via\nwithEnv() and restored after each row.","hierarchy":{"lvl0":"Provider Integration","lvl1":"Credential-free provider acceptance gate","lvl2":"Running it","lvl3":""}},
|
|
8933
9149
|
{"objectID":"2af9c7a79be94186d3044e77fe1680370e61eb985e81142a246e323fe990ef0b","title":"ADR-0001: `ProviderDescriptor` is the single source of truth for provider identity","url":"/docs/provider-integration/adr/0001-provider-descriptor-as-source-of-truth","content":"ADR-0001: ProviderDescriptor is the single source of truth for provider identity\n\nStatus: Accepted — 2026-08-15\nContext: Plans 00/11 (audit)\n\nContext\n\nBefore this redesign, \"what providers exist and what do they need\" was\nanswered by five independently hand-maintained places that had already\ndrifted from each other: providerRegistry.ts (registration + aliases),\ncommandFactory.ts (CLI --provider choices, re-listing every alias),\nproviderHealth.ts (hardcoded 8-of-31-provider health/auto-select list),\ncontextWindows.ts (per-model context windows), and\nproviderImageAdapter.ts (vision capability map). A sixth ad hoc identity\nmechanism existed for \"anthropic-subscription\". Google AI Studio alone\nhad five different spellings across these tables. None of this was\ntype-checked; typos were silent runtime misses (credentialKeyMap was\nalready missing a together-ai entry in production).\n\nAt 30 providers this was tolerable tech debt. At 200+ it is not: ~1,000+\nhand-authored string literals with zero compile-time linkage between them.\n\nDecision\n\nEvery provider gets exactly one ProviderDescriptor object\n(src/lib/types/providers.ts) held in one array,\nPROVIDER_DESCRIPTORS (src/lib/factories/providerDescriptors.ts), a\npure data module — no dynamic imports, no provider-class imports — so\nit is safe to import statically from anywhere, including the CLI's\ncommand-definition code (which needs --provider choices synchronously,\nbefore any provider is instantiated).\n\nEvery other subsystem that previously hardcoded its own provider list\n(CLI choices, health-check auto-selection, alias resolution) is expected\nto derive from PROVIDER_DESCRIPTORS / ProviderFactory.getAllDescriptors()\ninstead of maintaining a parallel list. ProviderFactory.normalizeProviderName\nreplaces its O(n) linear alias scan with an alias→canonical index built\nonce at registration time from the same descriptors.\n\nConsequences\nPositive: one array to review per new provider; CLI/health/alias\n tables can no longer drift because they no longer have independent\n data to drift from.\nPositive: ProviderFactory.getDescriptor(name) becomes the answer\n to \"does this provider exist and what does it need\" for every\n subsystem, including this plan's own CI gate (test:provider-structure,\n tools/verify-provider-onboarding.ts).\nNegative: PROVIDER_DESCRIPTORS becomes a single large file that\n every new provider touches — a predictable merge-conflict hotspot at\n high PR volume. Mitigated by keeping each entry a small, independent\n object literal (low conflict surface per line) and by the Tier 2 path\n needing only a ~10-line addition.\nNegative: subsystems that haven't yet been migrated to read from\n PROVIDER_DESCRIPTORS still need manual edits until they are. As of\n 2026-08-18, commandFactory.ts's main --provider choices and\n providerHealth.ts are already descriptor-driven, but the separate\n setup [provider] CLI subcommand still hand-hardcodes its own provider\n choices array — a concrete, currently-open gap, not a hypothetical one.\n The tier docs call this out explicitly rather than silently overclaiming\n that migration is complete.","hierarchy":{"lvl0":"Provider Integration","lvl1":"ADR-0001: `ProviderDescriptor` is the single source of truth for provider identity","lvl2":"","lvl3":""}},
|
|
8934
9150
|
{"objectID":"3be78e1b5992c80b18e70185f4e5aaf4a714dc6e71b302cc0f46b738a8988440","title":"ADR-0001: ProviderDescriptor is the single source of truth for provider identity","url":"/docs/provider-integration/adr/0001-provider-descriptor-as-source-of-truth#adr-0001-providerdescriptor-is-the-single-source-of-truth-for-provider-identity","content":"Status: Accepted — 2026-08-15\nContext: Plans 00/11 (audit)","hierarchy":{"lvl0":"Provider Integration","lvl1":"ADR-0001: `ProviderDescriptor` is the single source of truth for provider identity","lvl2":"ADR-0001: ProviderDescriptor is the single source of truth for provider identity","lvl3":""}},
|
|
8935
9151
|
{"objectID":"6e17dda13483d316edd838651701a44e9775d7a459f8f2d84247e38b469f7d9d","title":"Context","url":"/docs/provider-integration/adr/0001-provider-descriptor-as-source-of-truth#context","content":"Before this redesign, \"what providers exist and what do they need\" was\nanswered by five independently hand-maintained places that had already\ndrifted from each other: providerRegistry.ts (registration + aliases),\ncommandFactory.ts (CLI --provider choices, re-listing every alias),\nproviderHealth.ts (hardcoded 8-of-31-provider health/auto-select list),\ncontextWindows.ts (per-model context windows), and\nproviderImageAdapter.ts (vision capability map). A sixth ad hoc identity\nmechanism existed for \"anthropic-subscription\". Google AI Studio alone\nhad five different spellings across these tables. None of this was\ntype-checked; typos were silent runtime misses (credentialKeyMap was\nalready missing a together-ai entry in production).\n\nAt 30 providers this was tolerable tech debt. At 200+ it is not: ~1,000+\nhand-authored string literals with zero compile-time linkage between them.","hierarchy":{"lvl0":"Provider Integration","lvl1":"ADR-0001: `ProviderDescriptor` is the single source of truth for provider identity","lvl2":"Context","lvl3":""}},
|
|
@@ -8961,13 +9177,14 @@
|
|
|
8961
9177
|
{"objectID":"da986710e206bdfe9e761b9941c084a698a400e499994510b53989e7685fd3a6","title":"Must remain class (14)","url":"/docs/provider-integration/migration-ledger#must-remain-class-14","content":"| Provider | Why |\n| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| bedrock | AWS SigV4/Converse protocol, custom loop, not OpenAI-compatible. Tier 4. |\n| openai | Chat portion is catalog-shaped, but embeddings, image generation, and OpenAI-specific telemetry/errors are executable behavior. |\n| vertex | Two native protocols (Google GenAI + Anthropic-on-Vertex) and multiple modality pipelines behind one provider identity. |\n| anthropic | Native Messages API auth/message/tool semantics are executable protocol behavior.","hierarchy":{"lvl0":"Provider Integration","lvl1":"Provider Descriptor Migration Ledger","lvl2":"Must remain class (14)","lvl3":""}},
|
|
8962
9178
|
{"objectID":"a4f69e09308f075830f2efa7c1b0126236c5ec0fc12bfe08be21764a627e47a5","title":"Must remain core class (1)","url":"/docs/provider-integration/migration-ledger#must-remain-core-class-1","content":"| Provider | Why |\n| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| openai-compatible | This is the generic protocol surface itself, not a direct vendor. It should consume shared descriptor/config primitives but must never become a fixed-vendor JSON row — collapsing it into the catalog would conflate \"the adapter\" with \"an entry in the adapter's catalog.\" |","hierarchy":{"lvl0":"Provider Integration","lvl1":"Provider Descriptor Migration Ledger","lvl2":"Must remain core class (1)","lvl3":""}},
|
|
8963
9179
|
{"objectID":"235850085d9102413140920b9d5e5e2ff6113d007c865f5d78012af80fbf1843","title":"Suggested execution order","url":"/docs/provider-integration/migration-ledger#suggested-execution-order","content":"The former steps 1–2 below (mistral; huggingface, deepseek) are complete — see Migrated above. What remains:\nThree shared adapters (local-runtime, embedding-only, image-generation) — each unlocks 3 providers at once; build once, migrate three.\ngoogle-ai descriptor-only JSON metadata — proof of concept for moving static descriptor data out of a \"must remain class\" provider without touching its execution.\nDirect-vendor \"must remain class\" providers (bedrock, openai, vertex, anthropic, azure, sagemaker, nvidia-nim) get descriptor-only JSON metadata migrations, execution untouched — lower priority, cosmetic consolidation only.\nAggregators (litellm, openrouter), the core adapter (openai-compatible), and the decision-only providers (typesafe, laya, xor) are excluded from the first-class-count migration priority entirely — the first three add no direct-vendor coverage however they're implemented, and typesafe/laya/xor are decide-only providers with no generate/stream surface to migrate at all.","hierarchy":{"lvl0":"Provider Integration","lvl1":"Provider Descriptor Migration Ledger","lvl2":"Suggested execution order","lvl3":""}},
|
|
8964
|
-
{"objectID":"6122b2e83358a45c64da87c1ca80a2d579cdfb087a6d9dc58b1e02805296b14a","title":"OpenAI-Compatible Provider Catalog","url":"/docs/provider-integration/openai-compat-catalog","content":"OpenAI-Compatible Provider Catalog\n\
|
|
8965
|
-
{"objectID":"9a91a5b4a32a9f1e89c6a28f762c3594c4a39d96d32cc9e6e1fa0f5cb3f609e4","title":"OpenAI-Compatible Provider Catalog","url":"/docs/provider-integration/openai-compat-catalog#openai-compatible-provider-catalog","content":"
|
|
9180
|
+
{"objectID":"6122b2e83358a45c64da87c1ca80a2d579cdfb087a6d9dc58b1e02805296b14a","title":"OpenAI-Compatible Provider Catalog","url":"/docs/provider-integration/openai-compat-catalog","content":"OpenAI-Compatible Provider Catalog\n\nEvery OpenAI-compatible provider in the catalog (41 as of 2026-09-28; the\ndirectory is the list) is registered from one JSON file each, under\nsrc/lib/providers/catalog/<id>.json, and served by one generic class,\nConfiguredOpenAICompatProvider\n(src/lib/providers/configuredOpenAICompat.ts). Adding another provider to\nthis family means adding one JSON file — no subclass, no registry edit, no\nhand-written enum member, no test edit.\n\nThe JSON is the source of truth\n\nOPENAI_COMPAT_CATALOG still exists and keeps its name and element type,\nbut it is now built by the loader (src/lib/providers/catalog/loader.ts)\nfrom the JSON files rather than hand-written. Two consumers read the JSON:\nCodegen (pnpm run codegen:catalog) writes the compile-time\n artifacts into marked regions — the AIProviderName member, the\n <Name>Models enum, the NeurolinkCredentials key — plus the generated\n index. Pre-commit and CI fail on stale output.\nThe loader builds the runtime entry; the descriptor, config options,\n context windows, pricing, vision map and model-choice tables all derive\n from it, as do the provider test suites' rows and counts.\n\nEach file is validated by a zod schema (src/lib/providers/catalog/schema.ts)\nwith a mirrored provider-catalog.schema.json for editor squiggles.\nProbe evidence (roster/auth/billing dates, live-matrix result, PR URL)\nlives in the file's evidence block — the old\ndocs/provider-integration/manifests/<id>.json files were folded into it.\n\nField-by-field reference and the escape hatches:\ntiers/tier-2-catalog-entry.md. Design rationale and the approved rulings:\ndocs/superpowers/plans/2026-08-28-provider-json-catalog-spec.md.\n\nWhen a provider belongs in the catalog\n\nA provider belongs in the JSON catalog if it needs only:\na credential (API key, optionally an extra field like Cloudflare's account id)\na base URL (static default + optional env override, or computed from an\n extra credential field)\na default/fallback model\nerror-message classification (auth / rate-limit / invalid-model / generic)\na named, closed catalog quirk. DeepSeek is the worked example: it 400s on\n json_schema structured-output requests, so deepseek.json sets\n quirks.responseFormatDowngrade: \"json-schema-to-json-object\" and the\n generic ConfiguredOpenAICompatProvider downgrades to json_object before\n sending — no subclass. It also sets quirks.replayReasoningContent: true:\n DeepSeek documents that each assistant turn's reasoning_content must go\n back on later requests once tools are in play, so the shared message\n converter and the streaming tool loop send it — for this quirk only, since\n strict OpenAI-compatible backends reject the unknown field.\na wire-proven capability such as\n capabilities.structuredOutputWithTools. The generic provider suppresses\n response_format when tools are attached by default; an explicit true\n keeps it on the same generate() or stream() request. Set this only after\n a combined tools-plus-schema request returned successfully. Separate tool\n and structured-output probes are not evidence for the combined capability.\n A stale opt-in is still protected by the runtime conflict retry, which drops\n structured output and retries rather than losing the turn.\n\nThe currently opted-in providers are Baseten, DeepSeek, Fireworks AI, GMI\nCloud, Inception Labs, io.net Intelligence, Novita AI, Together AI, Upstage and\nxAI. API Route remains opted out because its evidence verifies the features\nseparately, not together in one request. Mistral remains opted out because its\ncombined probes returned 429 twice, not a successful capability response.\n\nWhen a provider needs a dedicated subclass instead\n\nAzure OpenAI is deliberately not in the catalog because it overrides real\nrequest-shaping behavior that no named catalog quirk expresses:\nAzure OpenAI (src/lib/providers/azureOpenai.ts) overrides four hooks:\n getChatCompletionsURL (deployment-name URL routing across two Azure\n endpoint schemes), getAuthHeaders (Azure's api-key header instead of\n Authorization: Bearer), adjustRequestBody (renames max_tokens to\n max_completion_tokens for o-series/gpt-5+ deployments), and\n suppressResponseFormatWithTools (Azure supports both at once).\n\nIf a future provider needs any hook beyond the 3 mandatory ones\n(getProviderName, getDefaultModel, formatProviderError) or the 2\npurely-declarative optional ones (getFallbackModelName,\ngetFallbackModels) and that hook is not already a named catalog quirk, it\nneeds either a new closed quirk (the DeepSeek route) or a dedicated subclass\n(the Azure OpenAI route).\n\nError-message fidelity\n\nEach entry's errorRules is a direct, order-preserving translation of its\noriginal subclass's formatProviderError if/else ladder into rule data\n(status code and/or case-insensitive pattern), classified via\nclassifyProviderError()\n(src/lib/utils/errorClassifier.ts). Every bespoke message string is\npreserved verbatim — including xAI's \"top up your account\" quota URL and\nGroq's d","hierarchy":{"lvl0":"Provider Integration","lvl1":"OpenAI-Compatible Provider Catalog","lvl2":"","lvl3":""}},
|
|
9181
|
+
{"objectID":"9a91a5b4a32a9f1e89c6a28f762c3594c4a39d96d32cc9e6e1fa0f5cb3f609e4","title":"OpenAI-Compatible Provider Catalog","url":"/docs/provider-integration/openai-compat-catalog#openai-compatible-provider-catalog","content":"Every OpenAI-compatible provider in the catalog (41 as of 2026-09-28; the\ndirectory is the list) is registered from one JSON file each, under\nsrc/lib/providers/catalog/<id>.json, and served by one generic class,\nConfiguredOpenAICompatProvider\n(src/lib/providers/configuredOpenAICompat.ts). Adding another provider to\nthis family means adding one JSON file — no subclass, no registry edit, no\nhand-written enum member, no test edit.","hierarchy":{"lvl0":"Provider Integration","lvl1":"OpenAI-Compatible Provider Catalog","lvl2":"OpenAI-Compatible Provider Catalog","lvl3":""}},
|
|
8966
9182
|
{"objectID":"16e60ee66171009a6638b5110cc8693f90c1a2cfde796c6932c3512d7f7421fb","title":"The JSON is the source of truth","url":"/docs/provider-integration/openai-compat-catalog#the-json-is-the-source-of-truth","content":"OPENAI_COMPAT_CATALOG still exists and keeps its name and element type,\nbut it is now built by the loader (src/lib/providers/catalog/loader.ts)\nfrom the JSON files rather than hand-written. Two consumers read the JSON:\nCodegen (pnpm run codegen:catalog) writes the compile-time\n artifacts into marked regions — the AIProviderName member, the\n <Name>Models enum, the NeurolinkCredentials key — plus the generated\n index. Pre-commit and CI fail on stale output.\nThe loader builds the runtime entry; the descriptor, config options,\n context windows, pricing, vision map and model-choice tables all derive\n from it, as do the provider test suites' rows and counts.\n\nEach file is validated by a zod schema (src/lib/providers/catalog/schema.ts)\nwith a mirrored provider-catalog.schema.json for editor squiggles.\nProbe evidence (roster/auth/billing dates, live-matrix result, PR URL)\nlives in the file's evidence block — the old\ndocs/provider-integration/manifests/<id>.json files were folded into it.\n\nField-by-field reference and the escape hatches:\ntiers/tier-2-catalog-entry.md. Design rationale and the approved rulings:\ndocs/superpowers/plans/2026-08-28-provider-json-catalog-spec.md.","hierarchy":{"lvl0":"Provider Integration","lvl1":"OpenAI-Compatible Provider Catalog","lvl2":"The JSON is the source of truth","lvl3":""}},
|
|
8967
9183
|
{"objectID":"00a7366eb480e85f5377e0cb8575403e7fd9b33cc028bf95cf0fe48cc94fcea9","title":"When a provider belongs in the catalog","url":"/docs/provider-integration/openai-compat-catalog#when-a-provider-belongs-in-the-catalog","content":"A provider belongs in the JSON catalog if it needs only:\na credential (API key, optionally an extra field like Cloudflare's account id)\na base URL (static default + optional env override, or computed from an\n extra credential field)\na default/fallback model\nerror-message classification (auth / rate-limit / invalid-model / generic)\na named, closed catalog quirk. DeepSeek is the worked example: it 400s on\n json_schema structured-output requests, so deepseek.json sets\n quirks.responseFormatDowngrade: \"json-schema-to-json-object\" and the\n generic ConfiguredOpenAICompatProvider downgrades to json_object before\n sending — no subclass. It also sets quirks.replayReasoningContent: true:\n DeepSeek documents that each assistant turn's reasoning_content must go\n back on later requests once tools are in play, so the shared message\n converter and the streaming tool loop send it — for this quirk only, since\n strict OpenAI-compatible backends reject the unknown field.\na wire-proven capability such as\n capabilities.structuredOutputWithTools. The generic provider suppresses\n response_format when tools are attached by default; an explicit true\n keeps it on the same generate() or stream() request. Set this only after\n a combined tools-plus-schema request returned successfully. Separate tool\n and structured-output probes are not evidence for the combined capability.\n A stale opt-in is still protected by the runtime conflict retry, which drops\n structured output and retries rather than losing the turn.\n\nThe currently opted-in providers are Baseten, DeepSeek, Fireworks AI, GMI\nCloud, Inception Labs, io.net Intelligence, Novita AI, Together AI, Upstage and\nxAI. API Route remains opted out because its evidence verifies the features\nseparately, not together in one request. Mistral remains opted out because its\ncombined probes returned 429 twice, not a successful capability response.","hierarchy":{"lvl0":"Provider Integration","lvl1":"OpenAI-Compatible Provider Catalog","lvl2":"When a provider belongs in the catalog","lvl3":""}},
|
|
8968
9184
|
{"objectID":"c2a9e3425a4cecb520467f900df8b5fa78fc4178514eba6385040bb9506e48ee","title":"When a provider needs a dedicated subclass instead","url":"/docs/provider-integration/openai-compat-catalog#when-a-provider-needs-a-dedicated-subclass-instead","content":"Azure OpenAI is deliberately not in the catalog because it overrides real\nrequest-shaping behavior that no named catalog quirk expresses:\nAzure OpenAI (src/lib/providers/azureOpenai.ts) overrides four hooks:\n getChatCompletionsURL (deployment-name URL routing across two Azure\n endpoint schemes), getAuthHeaders (Azure's api-key header instead of\n Authorization: Bearer), adjustRequestBody (renames max_tokens to\n max_completion_tokens for o-series/gpt-5+ deployments), and\n suppressResponseFormatWithTools (Azure supports both at once).\n\nIf a future provider needs any hook beyond the 3 mandatory ones\n(getProviderName, getDefaultModel, formatProviderError) or the 2\npurely-declarative optional ones (getFallbackModelName,\ngetFallbackModels) and that hook is not already a named catalog quirk, it\nneeds either a new closed quirk (the DeepSeek route) or a dedicated subclass\n(the Azure OpenAI route).","hierarchy":{"lvl0":"Provider Integration","lvl1":"OpenAI-Compatible Provider Catalog","lvl2":"When a provider needs a dedicated subclass instead","lvl3":""}},
|
|
8969
9185
|
{"objectID":"a5276d835ceba15da6ec36261ab78001e17f8b78ba9c8cb1c5e1282aa2f377e3","title":"Error-message fidelity","url":"/docs/provider-integration/openai-compat-catalog#error-message-fidelity","content":"Each entry's errorRules is a direct, order-preserving translation of its\noriginal subclass's formatProviderError if/else ladder into rule data\n(status code and/or case-insensitive pattern), classified via\nclassifyProviderError()\n(src/lib/utils/errorClassifier.ts). Every bespoke message string is\npreserved verbatim — including xAI's \"top up your account\" quota URL and\nGroq's decommissioned-vs-not-found distinction — via each rule's own\nmessage field (string | ((ctx) => string)), with model-name\ninterpolation carried through ctx.modelName. There is no message-wording\nregression here. Timeout classification is likewise unchanged: 15 of the 16\nproviders map TimeoutError to NetworkError (the classifier's default),\nand Groq alone maps it to ProviderError. Groq's subclass override is\npreserved verbatim via the JSON's quirks.timeoutErrorClass, so no\nprovider's timeout class changed during migration.","hierarchy":{"lvl0":"Provider Integration","lvl1":"OpenAI-Compatible Provider Catalog","lvl2":"Error-message fidelity","lvl3":""}},
|
|
8970
9186
|
{"objectID":"2a22fddc1a2c383a5e75a53e2d512d764f01ad66ab03bfe6edf12acb5d204814","title":"Known pre-existing quirk this migration preserved (not fixed)","url":"/docs/provider-integration/openai-compat-catalog#known-pre-existing-quirk-this-migration-preserved-not-fixed","content":"Mistral's provider registration passes a defaultModel value to\nProviderFactory.registerProvider() that does not check MISTRAL_MODEL\n(MistralModels.MISTRAL_LARGE_LATEST, a bare literal), while\nConfiguredOpenAICompatProvider.getDefaultModel() for Mistral does\ncheck MISTRAL_MODEL (falling back to MistralModels.MISTRAL_SMALL_2506).\nEvery other catalog provider's registry default and class default agree.\nThis is expressed via the JSON's quirks.registryDefaultIgnoresModelEnvVar\n(true only for Mistral). The JSON migration did reconcile one half of it:\ngetDefaultModel(MISTRAL) now returns the real generation default\n(mistral-small-2506) rather than the registry literal — a disclosed\nbug-fix-grade delta, since the two disagreed before.","hierarchy":{"lvl0":"Provider Integration","lvl1":"OpenAI-Compatible Provider Catalog","lvl2":"Known pre-existing quirk this migration preserved (not fixed)","lvl3":""}},
|
|
9187
|
+
{"objectID":"1d94ab5116c71ed28e2428889216922df96e1d6d4d5fdc955ee65a4171c483e3","title":"What comes next","url":"/docs/provider-integration/openai-compat-catalog#what-comes-next","content":"The credential-free growth queue in docs/provider-integration/growth-queue.json lists every\nverified candidate vendor by wave (W1 = hosted OpenAI-compatible, the catalog path). Entries\nonboarded from it carry evidence.liveMatrix: null until a live run with a real key.","hierarchy":{"lvl0":"Provider Integration","lvl1":"OpenAI-Compatible Provider Catalog","lvl2":"What comes next","lvl3":""}},
|
|
8971
9188
|
{"objectID":"bf3e1f8f1233a9b3d12aedbdbec4bf8cd196d18bf56b7bb104b34e31e90b61e0","title":"Provider Onboarding Tiers","url":"/docs/provider-integration/tiers/README","content":"Provider Onboarding Tiers\n\nFour tiers, ordered by effort. Always pick the lowest tier that's\nactually true for the provider you're adding — a provider that's\nOpenAI-wire-compatible but gets built as a bespoke Tier 3 subclass \"to be\nsafe\" is exactly the copy-pasted-boilerplate problem this redesign\nexists to eliminate (see ../adr/0002-catalog-over-subclass-default.md).\n\n| Tier | Example | Code required | Time |\n| -------------------------- | ---------------------------------------------------------------------------------- | ----------------------------------------------------------------- | --------------------------------- |\n| 1 — Aggregator passthrough | A new model id on an existing LiteLLM/OpenRouter route | None | Minutes |\n| 2 — Catalog entry | A new zero-quirk OpenAI-compatible vendor (the Groq/xAI/Together shape) | One data row + one mocked-test section | ~1 hour |\n| 3 — Adapter-based native | A vendor with its own SDK/wire format but a normal request/response HTTP lifecycle | One provider class | Days |\n| 4 — Full custom | SageMaker-class: non-HTTP protocol, SDK-signed auth, bespoke lifecycle | Custom executeStream/doGenerate, possibly own CLI subcommands | Days, needs written justification |\n\nTier 1 adds zero provider coverage — it is a usage change against an\nalready-counted aggregator, never reflected in\ndocs/reference/provider-comparison.md or the README's provider count.\n\nEvery tier that adds a new AIProviderName member (Tier 2 and above) ends\nthe same way: a manifest at\ndocs/provider-integration/manifests/<provider>.json\n(see ../manifests/README.md) and a green run\nof pnpm run verify:provider-onboarding (see\n../../../tools/verify-provider-onboarding.ts).\nTier 1 needs no manifest and no gate — see\ntier-1-aggregator-passthrough.md.\n\nUse ../../../tools/scaffold-provider.ts\n(pnpm run scaffold:provider) to generate the starting-point snippets for\nTiers 2–4 instead of copy-pasting from an existing provider by hand. Both\ntools ship in the tree; there is no manual-fallback era anymore — a PR\nthat skips the gate locally just fails it in CI.","hierarchy":{"lvl0":"Provider Integration","lvl1":"Provider Onboarding Tiers","lvl2":"","lvl3":""}},
|
|
8972
9189
|
{"objectID":"de01fcaf93bee302e2fca5e18f85cba5def099685383ec01b61d18489dbca5aa","title":"Provider Onboarding Tiers","url":"/docs/provider-integration/tiers/README#provider-onboarding-tiers","content":"Four tiers, ordered by effort. Always pick the lowest tier that's\nactually true for the provider you're adding — a provider that's\nOpenAI-wire-compatible but gets built as a bespoke Tier 3 subclass \"to be\nsafe\" is exactly the copy-pasted-boilerplate problem this redesign\nexists to eliminate (see ../adr/0002-catalog-over-subclass-default.md).\n\n| Tier | Example | Code required | Time |\n| -------------------------- | ---------------------------------------------------------------------------------- | ----------------------------------------------------------------- | --------------------------------- |\n| 1 — Aggregator passthrough | A new model id on an existing LiteLLM/OpenRouter route | None | Minutes |\n| 2 — Catalog entry | A new zero-quirk OpenAI-compatible vendor (the Groq/xAI/Together shape) | One data row + one mocked-test section | ~1 hour |\n| 3 — Adapter-based native | A vendor with its own SDK/wire format but a normal request/response HTTP lifecycle | One provider class | Days |\n| 4 — Full custom | SageMaker-class: non-HTTP protocol, SDK-signed auth, bespoke lifecycle | Custom executeStream/doGenerate, possibly own CLI subcommands | Days, needs written justification |\n\nTier 1 adds zero provider coverage — it is a usage change against an\nalready-counted aggregator, never reflected in\ndocs/reference/provider-comparison.md or the README's provider count.\n\nEvery tier that adds a new AIProviderName member (Tier 2 and above) ends\nthe same way: a manifest at\ndocs/provider-integration/manifests/<provider>.jso","hierarchy":{"lvl0":"Provider Integration","lvl1":"Provider Onboarding Tiers","lvl2":"Provider Onboarding Tiers","lvl3":""}},
|
|
8973
9190
|
{"objectID":"a9753e41ed762a57c15471c49e70dc9917e8388eca055e3dc1c4ce90db6804bb","title":"Tier 1 — Aggregator Passthrough","url":"/docs/provider-integration/tiers/tier-1-aggregator-passthrough","content":"Tier 1 — Aggregator Passthrough\n\nWhen this applies: the model you want is already reachable through a\nprovider NeuroLink already registers as a pass-through aggregator —\ntoday that's litellm (any backend the user's LiteLLM proxy exposes) or\nopenrouter (any model in OpenRouter's catalog). No new\nAIProviderName member, no new provider class, no new catalog row.\n\nWhat you're actually doing: picking a model id string and confirming\nit works — this is a usage change, not an integration change.\n\nChecklist\n[ ] Confirm the aggregator actually serves the model. For LiteLLM,\n check the proxy's /v1/models (or its config.yaml) for the\n model's model_name. For OpenRouter, check\n https://openrouter.ai/models for the exact vendor/model-id\n slug.\n[ ] No AIProviderName enum change. No PROVIDER_DESCRIPTORS change.\n No OPENAI_COMPAT_CATALOG change. If you find yourself editing any\n of those three for a \"Tier 1\" provider, it isn't Tier 1 — restart\n from ../tiers/README.md's decision tree.\n[ ] Optional: if the model needs a friendlier default alias, add it to\n MODEL_ALIASES / DEFAULT_MODEL_ALIASES in\n src/lib/models/modelRegistry.ts. Not required for the model to\n work.\n[ ] Optional: if the model needs a documented env var (e.g., a\n dedicated LiteLLM route), document it in\n docs/getting-started/environment-variables.md.\n[ ] Manually smoke-test the model end-to-end.\n[ ] No manifest file is required — tools/verify-provider-onboarding.ts\n (see ../../../tools/verify-provider-onboarding.ts) only gates\n new AIProviderName members, and Tier 1 never adds one.\n[ ] Confirmed: no edit to docs/reference/provider-comparison.md or\n README provider count for this change.\n\nVerification commands\n\nBoth should return a normal GenerateResult with non-empty content. If\neither 400s with an \"unknown model\" style error, the aggregator doesn't\nactually serve that model yet — fix the aggregator-side config, not\nNeuroLink.","hierarchy":{"lvl0":"Provider Integration","lvl1":"Tier 1 — Aggregator Passthrough","lvl2":"","lvl3":""}},
|