@juspay/neurolink 13.8.11 → 13.8.13

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.
@@ -2338,6 +2338,7 @@
2338
2338
  {"objectID":"f1d10e310dd6cdd2e1ec76e8fb228e48f343eec841772b564c22357e7ea8f64f","title":"Validation Rules","url":"/docs/features/claude-proxy-config-reference#validation-rules","content":"The config loader validates the following:\naccounts must be present and be a non-array object.\nEach provider key in accounts must map to an array.\nEach account must have a non-empty string apiKey.\nIf version is present, it must be a number.\nrouting.account-allowlist must be an array of non-empty strings when present. An explicit null counts as present and is rejected, whichever spelling carries it, including when the other spelling holds an array.\nrouting.quota-routing must be a boolean when present.\nrouting.auto-fallback must be a boolean when present.\nrouting.max-inflight-per-account must be an integer from 1 through 20 when present.\nrouting.session-soft-limit must be a number in (0, 1] when present.\nrouting.session-reset-tolerance-ms must be a positive integer when present.\nrouting.use-overage must be auto, always, or never (case-insensitive)\n when present.\nrouting.account-ranking must be expiry-first or headroom-first when\n present.\nrouting.prefer-primary must be a boolean when present.\nrouting.session-affinity must be a boolean when present.\nrouting.session-affinity-idle-ttl-ms must be an integer from 60000 through\n 86400000 when present.\nrouting.spill-inflight must be an integer from 0 through 100 when present.\nFor those five routing policy keys, an explicit null counts as present\n and is rejected, whichever spelling (kebab-case or camelCase) carries it.\nPlaintext API keys (not using ${ENV_VAR} references) trigger a warning.\n\nAn absent default config is optional. An existing config that cannot be read or\nvalidated fails proxy startup; it is never ignored in favor of unrestricted\nrouting. A value that fails any check above rejects the whole config, never\njust that key: at startup the proxy does not start, and on a hot reload the\nlast-known-good generation stays active.","hierarchy":{"lvl0":"Features","lvl1":"Claude Proxy Configuration Reference","lvl2":"Validation Rules","lvl3":""}},
2339
2339
  {"objectID":"c8450374b1fc8e0a0f5fb47d3bef0cab242c75e17bfebe6e943ef17b22c10227","title":"Account Routing Policies","url":"/docs/features/claude-proxy-config-reference#account-routing-policies","content":"The five keys above (account-ranking, prefer-primary, session-affinity,\nsession-affinity-idle-ttl-ms, spill-inflight) all default to today's exact\nbehavior — expiry-first ranking, no affinity, no primary preference, no\nspill — and are validated and hot-reloaded through the same runtime config\nsnapshot as every other routing key.\n\nstrategy: round-robin ignores all five keys. They apply only under\nfill-first with more than one enabled account.\n\nNEUROLINK_PROXY_QUOTA_ROUTING=off disables quota-based ranking, but\nsession-affinity, prefer-primary and spill-inflight still apply.\nTurning off quota routing removes the expiry/headroom ordering step, so\naccount-ranking has no effect; it does not disable sticky sessions, the\nprimary preference or spill, which then work on the configured account\norder.\n\nPrecedence. After unusable accounts are removed, the order a request\ntries is:\nthe session's bound account, when session-affinity is on and that\n account is usable and not session-saturated;\nthe configured primary-account, when prefer-primary is on and it is\n usable and not session-saturated;\nthe remaining accounts in account-ranking order.\n\nSpill only changes which account is tried first, and only for requests\nwithout an active session-affinity binding — it never re-orders or moves a\nrequest that is already bound to an account. Its target must be usable and\nnot session-saturated, like every step above; when no account under the\nthreshold qualifies, nothing spills.\n\nBinding. A served request binds its session to the Anthropic account\nthat served it. The existing binding is kept only when that request never\ntried the bound account and the bound account is still usable and not\nsession-saturated — a request that overflowed the bound account's\nmax-inflight-per-account cap onto another account keeps the session on its\nwarm prompt cache.","hierarchy":{"lvl0":"Features","lvl1":"Claude Proxy Configuration Reference","lvl2":"Account Routing Policies","lvl3":""}},
2340
2340
  {"objectID":"2b5d2865be217ed908e64f9d07acbe019108e95f210f6c14f031cf8cb99ece6f","title":"3. Environment Variables","url":"/docs/features/claude-proxy-config-reference#3-environment-variables","content":"| Variable | Purpose | Used By |\n| -------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------ |\n| ANTHROPIC_API_KEY | Anthropic API key. Used as a fallback credential when no OAuth accounts are found. | Proxy routes, Anthropic provider |\n| ANTHROPIC_OAUTH_TOKEN | OAuth access token for Anthropic (alternative to stored tokens). | Anthropic provider, providerConfig |\n| CLAUDE_OAUTH_TOKEN | Alias for ANTHROPIC_OAUTH_TOKEN. Checked as a fallback.","hierarchy":{"lvl0":"Features","lvl1":"Claude Proxy Configuration Reference","lvl2":"3. Environment Variables","lvl3":""}},
2341
+ {"objectID":"80c3f3761c75b9ade9789621570e067d9a631ce027171eba652da6eeb2db3dce","title":"Request body limits","url":"/docs/features/claude-proxy-config-reference#request-body-limits","content":"The proxy reads a POST body before it can parse the model or check a share token, so the body is bounded first. Each route has a request size limit, taken from its API's documentation where the API states one; a larger body is answered 413 with error.type request_too_large, before the body is parsed and before the share gate runs. Limits are binary megabytes, a little above the documented figures, so the upstream stays the one to refuse a borderline request.\n\n| Route | Limit | Source |\n| -------------------------------------------------------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| POST /v1/messages, POST /v1/messages/count_tokens, /peer/* endpoints | 32 MiB | Messages API and Token Counting API maximum request size, 32 MB: platform.claude.com/docs/en/api/errors#request-size-limits. The peer endpoints have no upstream and use the same value.","hierarchy":{"lvl0":"Features","lvl1":"Claude Proxy Configuration Reference","lvl2":"Request body limits","lvl3":""}},
2341
2342
  {"objectID":"3f1a3fc9d7711064037deec5635e85b2dc713d3d9c019df22c659f47215812b8","title":"Proxy Env File Resolution Order","url":"/docs/features/claude-proxy-config-reference#proxy-env-file-resolution-order","content":"When the proxy starts, it loads env vars from a .env file using this priority:\n--env-file <path> CLI flag — explicit path, required to exist.\nNEUROLINK_ENV_FILE=<path> environment variable — explicit path, required to exist.\n~/.neurolink/.env — loaded automatically if the file exists (created by neurolink proxy telemetry setup).\nNothing — proxy starts without extra env vars; telemetry remains disabled unless env vars are already set in the shell, and the proxy emits a startup log explaining how to enable it unless output is suppressed.\n\nThe --env-file flag is baked into the launchd plist by proxy install, so the service always loads from the same file across reboots. The three runtime routing variables above and routing interpolation are reread transactionally; other env settings remain startup-only.\n\nPriority for Anthropic credentials (checked in order by the proxy routes):\nTokenStore compound keys -- anthropic:<label> entries in ~/.neurolink/tokens.json.\nLegacy credentials file -- ~/.neurolink/anthropic-credentials.json (only if no compound keys exist).\nANTHROPIC_API_KEY env var -- Only if no Anthropic TokenStore entries or legacy credential are present.\n\nrouting.account-allowlist filters these sources before loading or refresh. Legacy and environment fallbacks are never activated merely because existing TokenStore accounts are disabled, cooling, or unavailable.","hierarchy":{"lvl0":"Features","lvl1":"Claude Proxy Configuration Reference","lvl2":"Proxy Env File Resolution Order","lvl3":""}},
2342
2343
  {"objectID":"80e1b4619dc934235aae772511dd334605525b9512cb0a98374bc61d27f8903a","title":"4. Claude Code Settings","url":"/docs/features/claude-proxy-config-reference#4-claude-code-settings","content":"When the proxy starts, it automatically writes to ~/.claude/settings.json:\n\n| Key | Value | Description |\n| -------------------- | ---------------------- | --------------------------------------------------------------------------- |\n| ANTHROPIC_BASE_URL | http://<host>:<port> | Tells Claude Code to route all Anthropic API requests through the proxy. |\n| ENABLE_TOOL_SEARCH | \"true\" | Enables tool search in Claude Code (required for full proxy compatibility). |\n\nLifecycle:\nOn proxy start -- Both keys are written (or merged into existing settings).\nOn proxy stop (Ctrl+C / SIGTERM) -- Both keys are removed. Other env keys in the settings file are preserved.\nFail-open guard -- A foreground proxy's detached guard removes stale settings only after confirming its parent died and no replacement is healthy. launchd-managed proxies do not spawn this cleanup guard; they use a separate updater-only worker.\nSafety -- If the ANTHROPIC_BASE_URL has been changed to a different value (e.g., another proxy), the cleanup will not overwrite it.\n\nAfter starting the proxy, restart Claude Code for the new settings to take effect.","hierarchy":{"lvl0":"Features","lvl1":"Claude Proxy Configuration Reference","lvl2":"4. Claude Code Settings","lvl3":""}},
2343
2344
  {"objectID":"33854e3aed0df3989e054a61d15916e33189a47dbc13b68719a4d2b9ba8b4bca","title":"5. File Locations","url":"/docs/features/claude-proxy-config-reference#5-file-locations","content":"All NeuroLink proxy files are stored under ~/.neurolink/ (with 0o700 directory permissions).\n\n| File | Permissions | Description |\n| ------------------------------------------------------------ | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| ~/.neurolink/tokens.json | 0o600 | TokenStore -- Multi-provider OAuth token storage. Stores tokens keyed by provider:label (e.g., anthropic:personal). XOR-obfuscated by default (not plaintext). |\n| ~/.neurolink/anthropic-credentials.json | 0o600 | Legacy credentials -- Single-account OAuth tokens. Used as a fallback when no compound keys exist in tokens.json. Updated on token refresh (pre-request or on-401). |\n| ~/.neurolink/proxy-config.yaml | user default | Proxy config -- YAML/JSON configuration file. Loaded and watched by proxy start (default path, overridable with --config). Valid routing changes publish a new runtime generation. |\n| ~/.neurolink/.env | 0o600 | Proxy env file — Auto-loaded and watched by the proxy.","hierarchy":{"lvl0":"Features","lvl1":"Claude Proxy Configuration Reference","lvl2":"5. File Locations","lvl3":""}},
@@ -4407,7 +4408,7 @@
4407
4408
  {"objectID":"f7ec45d333ef30219c7a1569e33dc05b0b489f8dced84c264c18e9fb9fe2458d","title":"Optional Variables","url":"/docs/getting-started/environment-variables#optional-variables-13","content":"Optional Variables","hierarchy":{"lvl0":"Getting Started","lvl1":"🔧 Environment Variables Configuration Guide","lvl2":"Optional Variables","lvl3":""}},
4408
4409
  {"objectID":"bc288fb117658972a30a2ba66e55e1dcd187c9d1da8ae1b35f52e5d645e41344","title":"NIM-Specific Extras (rarely needed)","url":"/docs/getting-started/environment-variables#nim-specific-extras-rarely-needed","content":"NIM-Specific Extras (rarely needed)","hierarchy":{"lvl0":"Getting Started","lvl1":"🔧 Environment Variables Configuration Guide","lvl2":"NIM-Specific Extras (rarely needed)","lvl3":""}},
4409
4410
  {"objectID":"c331d4617737a5cfad44f0f398c430267deb83896fbef84b4cda5c56ebaeef0e","title":"How to Get NVIDIA NIM API Key","url":"/docs/getting-started/environment-variables#how-to-get-nvidia-nim-api-key","content":"Visit NVIDIA Build\nSign in with your NVIDIA developer account\nOpen Settings → API Keys\nGenerate a new API key (Bearer token)","hierarchy":{"lvl0":"Getting Started","lvl1":"🔧 Environment Variables Configuration Guide","lvl2":"How to Get NVIDIA NIM API Key","lvl3":""}},
4410
- {"objectID":"abbfcedf11a5293f784a6021af47a1967d14526ce324a2fbaaf6ac00adafc58d","title":"Supported Models","url":"/docs/getting-started/environment-variables#supported-models-11","content":"meta/llama-3.3-70b-instruct (default) - Llama 3.3 70B Instruct\nAny model listed at build.nvidia.com/models","hierarchy":{"lvl0":"Getting Started","lvl1":"🔧 Environment Variables Configuration Guide","lvl2":"Supported Models","lvl3":""}},
4411
+ {"objectID":"abbfcedf11a5293f784a6021af47a1967d14526ce324a2fbaaf6ac00adafc58d","title":"Supported Models","url":"/docs/getting-started/environment-variables#supported-models-11","content":"openai/gpt-oss-20b (default) - OpenAI gpt-oss 20B, 128K context, tool calling\nAny model listed at build.nvidia.com/models","hierarchy":{"lvl0":"Getting Started","lvl1":"🔧 Environment Variables Configuration Guide","lvl2":"Supported Models","lvl3":""}},
4411
4412
  {"objectID":"8f65b0307933689fcf5717a2ddab1b3fe48b44a25993beaefc0c203716cf1894","title":"14. LM Studio (Local)","url":"/docs/getting-started/environment-variables#14-lm-studio-local","content":"LM Studio is a local provider — no API key is required for standard installations.","hierarchy":{"lvl0":"Getting Started","lvl1":"🔧 Environment Variables Configuration Guide","lvl2":"14. LM Studio (Local)","lvl3":""}},
4412
4413
  {"objectID":"be426d22afb7ec4c8d630b72b6a1db679d001843a82df2143197d88811cbb12a","title":"Optional Variables","url":"/docs/getting-started/environment-variables#optional-variables-14","content":"Optional Variables","hierarchy":{"lvl0":"Getting Started","lvl1":"🔧 Environment Variables Configuration Guide","lvl2":"Optional Variables","lvl3":""}},
4413
4414
  {"objectID":"caa673ab6f5de21d611dd1eef67dd4e07afecf10d8cb0201102b839e96995bca","title":"How to Set Up LM Studio","url":"/docs/getting-started/environment-variables#how-to-set-up-lm-studio","content":"Install LM Studio from lmstudio.ai\nOpen LM Studio and download a model (e.g., Llama 3.2 3B Instruct)\nClick Local Server → Start Server\nThe server starts at http://localhost:1234/v1 by default\nNeuroLink auto-discovers the loaded model; no LM_STUDIO_MODEL needed\n\nNote: LM_STUDIO_API_KEY is only needed if you run LM Studio behind an authenticating reverse-proxy. Vanilla local installs do not require an API key.","hierarchy":{"lvl0":"Getting Started","lvl1":"🔧 Environment Variables Configuration Guide","lvl2":"How to Set Up LM Studio","lvl3":""}},
@@ -4621,12 +4622,12 @@
4621
4622
  {"objectID":"d82f8c3a0407aac56f55f222e4c0095b9fad1925db7a1dd2fbec190f55f331dc","title":"Basic Setup","url":"/docs/getting-started/provider-setup#basic-setup-10","content":"Basic Setup","hierarchy":{"lvl0":"Getting Started","lvl1":"⚙️ Provider Configuration Guide","lvl2":"Basic Setup","lvl3":""}},
4622
4623
  {"objectID":"e7666199cf52c152bbd2e935e2d51ca0df577da915eaa38aac807a227a4c181d","title":"Optional Configuration","url":"/docs/getting-started/provider-setup#optional-configuration-9","content":"Optional Configuration","hierarchy":{"lvl0":"Getting Started","lvl1":"⚙️ Provider Configuration Guide","lvl2":"Optional Configuration","lvl3":""}},
4623
4624
  {"objectID":"18321846566326d1547ba20c35f8190c7ae9c6fb3d6fb0fa9d807cdd7e32e1e0","title":"NIM-Specific Extras (Advanced)","url":"/docs/getting-started/provider-setup#nim-specific-extras-advanced","content":"These environment variables pass NIM-specific request body extensions. Leave them unset unless you have a specific need:","hierarchy":{"lvl0":"Getting Started","lvl1":"⚙️ Provider Configuration Guide","lvl2":"NIM-Specific Extras (Advanced)","lvl3":""}},
4624
- {"objectID":"06fd92c3629ac0be9484c9214a7cfb3e40336689fdd7a7196b5adabb520e43ac","title":"Supported Models","url":"/docs/getting-started/provider-setup#supported-models-7","content":"meta/llama-3.3-70b-instruct (default) - Meta Llama 3.3 70B Instruct\nAny model from the NVIDIA NIM catalog","hierarchy":{"lvl0":"Getting Started","lvl1":"⚙️ Provider Configuration Guide","lvl2":"Supported Models","lvl3":""}},
4625
+ {"objectID":"06fd92c3629ac0be9484c9214a7cfb3e40336689fdd7a7196b5adabb520e43ac","title":"Supported Models","url":"/docs/getting-started/provider-setup#supported-models-7","content":"openai/gpt-oss-20b (default) - OpenAI gpt-oss 20B, 128K context, tool calling\nAny model from the NVIDIA NIM catalog","hierarchy":{"lvl0":"Getting Started","lvl1":"⚙️ Provider Configuration Guide","lvl2":"Supported Models","lvl3":""}},
4625
4626
  {"objectID":"e6822aacc3d662745a63786eb8d1399f45bb6bcac22898feda9b93b7b5a55c6d","title":"Usage Example","url":"/docs/getting-started/provider-setup#usage-example-14","content":"Usage Example","hierarchy":{"lvl0":"Getting Started","lvl1":"⚙️ Provider Configuration Guide","lvl2":"Usage Example","lvl3":""}},
4626
4627
  {"objectID":"b23f6c751e3a8b2b4bfece3ba129b68e25f6e00204058cadf954d3eb8a36b82a","title":"CLI Usage","url":"/docs/getting-started/provider-setup#cli-usage-1","content":"CLI Usage","hierarchy":{"lvl0":"Getting Started","lvl1":"⚙️ Provider Configuration Guide","lvl2":"CLI Usage","lvl3":""}},
4627
4628
  {"objectID":"ec23735e5a15302451c7946e68ac107725e3f606c15810eead6bc36995b53af5","title":"Self-Hosted NIM Endpoints","url":"/docs/getting-started/provider-setup#self-hosted-nim-endpoints","content":"Override the base URL to point at your own NIM deployment:","hierarchy":{"lvl0":"Getting Started","lvl1":"⚙️ Provider Configuration Guide","lvl2":"Self-Hosted NIM Endpoints","lvl3":""}},
4628
4629
  {"objectID":"01e42c60deafa5c50f53dd6572412b847c871735a4014652a0480cac5a5608ee","title":"Getting Started with NVIDIA NIM","url":"/docs/getting-started/provider-setup#getting-started-with-nvidia-nim","content":"Create Account: Visit build.nvidia.com\nOpen Settings: Navigate to Settings → API Keys\nGenerate Key: Create a new Bearer token API key\nBrowse Models: Explore the catalog at build.nvidia.com/models\nSet Environment: Export NVIDIA_NIM_API_KEY","hierarchy":{"lvl0":"Getting Started","lvl1":"⚙️ Provider Configuration Guide","lvl2":"Getting Started with NVIDIA NIM","lvl3":""}},
4629
- {"objectID":"2d33feba1ccdb840a4e9dbf01aaa90979c0c1335ef47a1a81b5d19e0e282dc46","title":"Environment Variables Reference","url":"/docs/getting-started/provider-setup#environment-variables-reference-3","content":"| Variable | Required | Default | Description |\n| ------------------------------- | -------- | ------------------------------------- | --------------------------------------- |\n| NVIDIA_NIM_API_KEY | ✅ | - | NVIDIA NIM API key (Bearer token) |\n| NVIDIA_NIM_MODEL | ❌ | meta/llama-3.3-70b-instruct | Default model |\n| NVIDIA_NIM_BASE_URL | ❌ | https://integrate.api.nvidia.com/v1 | Override for self-hosted NIM |\n| NVIDIA_NIM_TOP_K | ❌ | - | Top-K sampling parameter |\n| NVIDIA_NIM_MIN_P | ❌ | - | Min-P sampling parameter |\n| NVIDIA_NIM_REPETITION_PENALTY | ❌ | - | Repetition penalty |\n| NVIDIA_NIM_MIN_TOKENS | ❌ | - | Minimum tokens to generate |\n| NVIDIA_NIM_CHAT_TEMPLATE | ❌ | - | Override model chat template (advanced) |","hierarchy":{"lvl0":"Getting Started","lvl1":"⚙️ Provider Configuration Guide","lvl2":"Environment Variables Reference","lvl3":""}},
4630
+ {"objectID":"2d33feba1ccdb840a4e9dbf01aaa90979c0c1335ef47a1a81b5d19e0e282dc46","title":"Environment Variables Reference","url":"/docs/getting-started/provider-setup#environment-variables-reference-3","content":"| Variable | Required | Default | Description |\n| ------------------------------- | -------- | ------------------------------------- | --------------------------------------- |\n| NVIDIA_NIM_API_KEY | ✅ | - | NVIDIA NIM API key (Bearer token) |\n| NVIDIA_NIM_MODEL | ❌ | openai/gpt-oss-20b | Default model |\n| NVIDIA_NIM_BASE_URL | ❌ | https://integrate.api.nvidia.com/v1 | Override for self-hosted NIM |\n| NVIDIA_NIM_TOP_K | ❌ | - | Top-K sampling parameter |\n| NVIDIA_NIM_MIN_P | ❌ | - | Min-P sampling parameter |\n| NVIDIA_NIM_REPETITION_PENALTY | ❌ | - | Repetition penalty |\n| NVIDIA_NIM_MIN_TOKENS | ❌ | - | Minimum tokens to generate |\n| NVIDIA_NIM_CHAT_TEMPLATE | ❌ | - | Override model chat template (advanced) |","hierarchy":{"lvl0":"Getting Started","lvl1":"⚙️ Provider Configuration Guide","lvl2":"Environment Variables Reference","lvl3":""}},
4630
4631
  {"objectID":"109acc4b5c1417599beb44840e21a88619106838727981fb5e0feae447a57038","title":"Provider ID and Aliases","url":"/docs/getting-started/provider-setup#provider-id-and-aliases-1","content":"Provider ID: nvidia-nim\nAliases: nim, nvidia","hierarchy":{"lvl0":"Getting Started","lvl1":"⚙️ Provider Configuration Guide","lvl2":"Provider ID and Aliases","lvl3":""}},
4631
4632
  {"objectID":"0de45c35b35d239ea38353c402bc07233b46803a89df62d4d0aecf8fd0a53e53","title":"LM Studio Configuration","url":"/docs/getting-started/provider-setup#lm-studio","content":"LM Studio is a local AI provider — it runs models entirely on your machine with no data sent to any external service. No API key is required for standard (non-proxied) installations.","hierarchy":{"lvl0":"Getting Started","lvl1":"⚙️ Provider Configuration Guide","lvl2":"LM Studio Configuration","lvl3":""}},
4632
4633
  {"objectID":"51046d75613781b1d2770a64f2dbba80729a2e607c4aa529d60f2b53ca6676c4","title":"Prerequisites","url":"/docs/getting-started/provider-setup#prerequisites-2","content":"Install LM Studio from lmstudio.ai\nOpen LM Studio and download a model from the Discover tab\nGo to Local Server and click Start Server\n\nThe server starts at http://localhost:1234/v1 by default. NeuroLink auto-discovers the currently loaded model via /v1/models — you do not need to specify a model name.","hierarchy":{"lvl0":"Getting Started","lvl1":"⚙️ Provider Configuration Guide","lvl2":"Prerequisites","lvl3":""}},
@@ -6052,7 +6053,7 @@
6052
6053
  {"objectID":"1637c68ac1e9cbfce5f16fd46aaa8835701c2f1430482c8fa9910e486a7bb625","title":"Verification status","url":"/docs/getting-started/providers/novita#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 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. |","hierarchy":{"lvl0":"Getting Started","lvl1":"Novita AI Provider Guide","lvl2":"Verification status","lvl3":""}},
6053
6054
  {"objectID":"a28a46f2a803a788421fbf99c39dcb97d33871e99a7dc45807a98ddce3e15589","title":"Troubleshooting","url":"/docs/getting-started/providers/novita#troubleshooting","content":"| Symptom | Cause | Fix |\n| ----------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |\n| FAILED_TO_AUTH | NOVITA_API_KEY unset, wrong, or not sk_-prefixed | Rotate the key at https://novita.ai/settings/key-management |\n| MODEL_NOT_FOUND | The roster changed since 2026-09-05 | Pick a current id from https://novita.ai/models or the authenticated /openai/v1/models roster |\n| Truncated or empty content on the default model | zai-org/glm-5.3-flash is a reasoning model and the catalog default max output is only 4,096 tokens | Raise maxTokens for longer or reasoning-heavy completions |","hierarchy":{"lvl0":"Getting Started","lvl1":"Novita AI Provider Guide","lvl2":"Troubleshooting","lvl3":""}},
6054
6055
  {"objectID":"7ce1eb2bda1d99489069643ba7316d9d1e893babf249024cf111547fbe952f66","title":"See also","url":"/docs/getting-started/providers/novita#see-also","content":"Provider setup overview\nAll providers\nTier-2 onboarding\nProvider feature compatibility","hierarchy":{"lvl0":"Getting Started","lvl1":"Novita AI Provider Guide","lvl2":"See also","lvl3":""}},
6055
- {"objectID":"c4d6bc20fbe9d189291d36b241fffab77fac1dcbe5ff66e1df5248840997c55d","title":"NVIDIA NIM Provider Guide","url":"/docs/getting-started/providers/nvidia-nim","content":"NVIDIA NIM Provider Guide\n\nHundreds of optimised AI models on NVIDIA's GPU-accelerated inference platform — or your own self-hosted NIM deployment\n\nOverview\n\nNVIDIA NIM (NVIDIA Inference Microservices) is a managed inference platform that hosts a large catalog of open-weight models — Meta Llama, DeepSeek, Mistral, Microsoft Phi, Google Gemma, and more — all GPU-optimised and served through an OpenAI-compatible API. You can also point NeuroLink at a self-hosted NIM cluster by overriding the base URL.\n\nKey Facts\nHosted base URL: https://integrate.api.nvidia.com/v1\nProtocol: OpenAI-compatible (/v1/chat/completions)\nVision: Yes, on supported models (Llama 3.2 Vision, etc.)\nReasoning: Yes, on Nemotron and DeepSeek-R1 variants\nStreaming: Supported\nTool calling: Supported on most models\nSelf-hosting: Override NVIDIA_NIM_BASE_URL to point at a private NIM cluster\n\nNIM-Specific Extras\n\nNIM supports additional generation parameters beyond the standard OpenAI surface: top_k, min_p, repetition_penalty, min_tokens, and per-model chat_template overrides. The NeuroLink provider automatically passes these via the providerOptions.openai.body mechanism. If a model rejects an unsupported parameter with HTTP 400, the provider retries the request with that parameter stripped.\n\nQuick Start\nGet an API Key\n\nSign up at https://build.nvidia.com and create an API key under API Keys.\nConfigure Environment\n\nAdd to your .env file:\nInstall NeuroLink\nGenerate Your First Response\n\nSupported Models\n\nNIM hosts hundreds of models. NeuroLink ships with these popular models pre-enumerated:\n\nOpenAI gpt-oss (default)\n\n| Model ID | Context | Vision | Reasoning |\n| -------------------- | ------- | ------ | --------- |\n| openai/gpt-oss-20b | 128K | No | No |\n\nMeta Llama\n\n| Model ID | Context | Vision | Reasoning |\n| ------------------------------------ | ------- | ------ | --------- |\n| meta/llama-3.3-70b-instruct | 128K | No | No |\n| meta/llama-3.1-405b-instruct | 128K | No | No |\n| meta/llama-3.1-70b-instruct | 128K | No | No |\n| meta/llama-3.2-90b-vision-instruct | 128K | Yes | No |\n| meta/llama-3.2-11b-vision-instruct | 128K | Yes | No |\n\nNVIDIA Nemotron (Reasoning)\n\n| Model ID | Context | Vision | Reasoning |\n| ---------------------------------------- | ------- | ------ | --------- |\n| nvidia/llama-3.3-nemotron-super-49b-v1 | 128K | No | Yes |\n| nvidia/llama-3.1-nemotron-nano-8b-v1 | 128K | No | Yes |\n| nvidia/llama-3.1-nemotron-70b-instruct | 128K | No | Yes |\n\nDeepSeek (Hosted on NIM)\n\n| Model ID | Context | Vision | Reasoning |\n| ------------------------------------------- | ------- | ------ | --------- |\n| deepseek-ai/deepseek-r1 | 128K | No | Yes |\n| deepseek-ai/deepseek-r1-distill-llama-70b | 128K | No | Yes |\n\nOther Models\n\n| Model ID | Context | Notes |\n| --------------------------------------- | ------- | ---------------- |\n| mistralai/mixtral-8x22b-instruct-v0.1 | 64K | Large MoE |\n| mistralai/mixtral-8x7b-instruct-v0.1 | 32K | Efficient MoE |\n| microsoft/phi-4 | 16K | Compact, capable |\n| google/gemma-3-27b-it | 128K | Google Gemma |\n\nAvailability, checked 2026-10-02. NVIDIA's GET https://integrate.api.nvidia.com/v1/models did not list meta/llama-3.3-70b-instruct, meta/llama-3.1-70b-instruct, deepseek-ai/deepseek-r1-distill-llama-70b or google/gemma-3-27b-it. The NvidiaNimModels enum records a probe on 2026-08-26 in which these answered \"no longer available\", and keeps the members so existing code compiles. meta/llama-3.1-405b-instruct, deepseek-ai/deepseek-r1, mistralai/mixtral-8x22b-instruct-v0.1, mistralai/mixtral-8x7b-instruct-v0.1 and microsoft/phi-4 were also absent from that list on that date, and meta/llama-3.2-90b-vision-instruct was listed.\n\nBrowse the full catalog at https://build.nvidia.com/models. You can pass any model ID via --model or model: — NIM returns 404 for IDs that are not in the catalog.\n\nSDK Usage\n\nBasic Generation\n\nUsing a Specific Model\n\nReasoning with thinkingLevel\n\nReasoning-capable models (Nemotron, DeepSeek-R1) accept a thinking flag via NIM's chat_template_kwargs. Pass thinkingLevel to activate it:\n\nLevels: minimal (no thinking) | low | medium | high\n\nIf the model does not support chat_template_kwargs.thinking, the provider automatically retries without it.\n\nStreaming\n\nPer-Call Credential Override\n\nFor self-hosted NIM clusters, override the base URL per call:\n\nCLI Usage\n\nBasic Commands\n\nProvider Aliases\n\n| Alias | Example |\n| ------------ | ----------------------- |\n| nvidia-nim | --provider nvidia-nim |\n| nvidia | --provider nvidia |\n| nim | --provider nim |\n\nC","hierarchy":{"lvl0":"Getting Started","lvl1":"NVIDIA NIM Provider Guide","lvl2":"","lvl3":""}},
6056
+ {"objectID":"c4d6bc20fbe9d189291d36b241fffab77fac1dcbe5ff66e1df5248840997c55d","title":"NVIDIA NIM Provider Guide","url":"/docs/getting-started/providers/nvidia-nim","content":"NVIDIA NIM Provider Guide\n\nHundreds of optimised AI models on NVIDIA's GPU-accelerated inference platform — or your own self-hosted NIM deployment\n\nOverview\n\nNVIDIA NIM (NVIDIA Inference Microservices) is a managed inference platform that hosts a large catalog of open-weight models — Meta Llama, DeepSeek, Mistral, Microsoft Phi, Google Gemma, and more — all GPU-optimised and served through an OpenAI-compatible API. You can also point NeuroLink at a self-hosted NIM cluster by overriding the base URL.\n\nKey Facts\nHosted base URL: https://integrate.api.nvidia.com/v1\nProtocol: OpenAI-compatible (/v1/chat/completions)\nVision: Yes, on supported models (Llama 3.2 Vision, etc.)\nReasoning: Yes, on Nemotron and DeepSeek-R1 variants\nStreaming: Supported\nTool calling: Supported on most models\nSelf-hosting: Override NVIDIA_NIM_BASE_URL to point at a private NIM cluster\n\nNIM-Specific Extras\n\nNIM supports additional generation parameters beyond the standard OpenAI surface: top_k, min_p, repetition_penalty, min_tokens, and per-model chat_template overrides. The NeuroLink provider automatically passes these via the providerOptions.openai.body mechanism. If a model rejects an unsupported parameter with HTTP 400, the provider retries the request with that parameter stripped.\n\nQuick Start\nGet an API Key\n\nSign up at https://build.nvidia.com and create an API key under API Keys.\nConfigure Environment\n\nAdd to your .env file:\nInstall NeuroLink\nGenerate Your First Response\n\nSupported Models\n\nNIM hosts hundreds of models. NeuroLink ships with these popular models pre-enumerated:\n\nOpenAI gpt-oss (default)\n\n| Model ID | Context | Vision | Reasoning |\n| -------------------- | ------- | ------ | --------- |\n| openai/gpt-oss-20b | 128K | No | No |\n\nMeta Llama\n\n| Model ID | Context | Vision | Reasoning |\n| ------------------------------------ | ------- | ------ | --------- |\n| meta/llama-3.3-70b-instruct | 128K | No | No |\n| meta/llama-3.1-405b-instruct | 128K | No | No |\n| meta/llama-3.1-70b-instruct | 128K | No | No |\n| meta/llama-3.2-90b-vision-instruct | 128K | Yes | No |\n| meta/llama-3.2-11b-vision-instruct | 128K | Yes | No |\n\nNVIDIA Nemotron (Reasoning)\n\n| Model ID | Context | Vision | Reasoning |\n| ---------------------------------------- | ------- | ------ | --------- |\n| nvidia/llama-3.3-nemotron-super-49b-v1 | 128K | No | Yes |\n| nvidia/llama-3.1-nemotron-nano-8b-v1 | 128K | No | Yes |\n| nvidia/llama-3.1-nemotron-70b-instruct | 128K | No | Yes |\n\nDeepSeek (Hosted on NIM)\n\n| Model ID | Context | Vision | Reasoning |\n| ------------------------------------------- | ------- | ------ | --------- |\n| deepseek-ai/deepseek-r1 | 128K | No | Yes |\n| deepseek-ai/deepseek-r1-distill-llama-70b | 128K | No | Yes |\n\nOther Models\n\n| Model ID | Context | Notes |\n| --------------------------------------- | ------- | ---------------- |\n| mistralai/mixtral-8x22b-instruct-v0.1 | 64K | Large MoE |\n| mistralai/mixtral-8x7b-instruct-v0.1 | 32K | Efficient MoE |\n| microsoft/phi-4 | 16K | Compact, capable |\n| google/gemma-3-27b-it | 128K | Google Gemma |\n\nAvailability, checked 2026-10-24. NVIDIA's GET https://integrate.api.nvidia.com/v1/models lists openai/gpt-oss-20b, meta/llama-3.2-90b-vision-instruct, meta/llama-3.2-11b-vision-instruct and nvidia/llama-3.1-nemotron-70b-instruct from the tables above, and none of the others. A chat request to meta/llama-3.3-70b-instruct or meta/llama-3.1-70b-instruct answers HTTP 410, \"has reached its end of life on 2026-08-26T09:00:00Z and is no longer available\"; nvidia/llama-3.3-nemotron-super-49b-v1 and mistralai/mixtral-8x22b-instruct-v0.1 also answer 410, and deepseek-ai/deepseek-r1 and meta/llama-3.1-405b-instruct answer 404. nvidia/llama-3.1-nemotron-70b-instruct is listed but answered 404 (\"not found for account\") to the key used for the check. openai/gpt-oss-20b and meta/llama-3.2-11b-vision-instruct each answered a plain request and a tool-calling request. The NvidiaNimModels enum keeps the retired members so existing code compiles.\n\nBrowse the full catalog at https://build.nvidia.com/models. You can pass any model ID via --model or model: — NIM returns 404 for IDs that are not in the catalog.\n\nSDK Usage\n\nBasic Generation\n\nUsing a Specific Model\n\nReasoning with thinkingLevel\n\nReasoning-capable models (Nemotron, DeepSeek-R1) accept a thinking flag via NIM's chat_template_kwargs. Pass thinkingLevel to activate it:\n\nLevels: minimal (no thinking) | low | medium | high\n\nIf the model does not support chat_template_kwargs.thinking, the provider automatically retries without it.\n\nStreaming\n\nPer-Call Credential Override\n","hierarchy":{"lvl0":"Getting Started","lvl1":"NVIDIA NIM Provider Guide","lvl2":"","lvl3":""}},
6056
6057
  {"objectID":"b3c7e6b9de265c001fb3ea1118f2467719f7d5d7b47d0d1219803161adaa97f3","title":"NVIDIA NIM Provider Guide","url":"/docs/getting-started/providers/nvidia-nim#nvidia-nim-provider-guide","content":"Hundreds of optimised AI models on NVIDIA's GPU-accelerated inference platform — or your own self-hosted NIM deployment","hierarchy":{"lvl0":"Getting Started","lvl1":"NVIDIA NIM Provider Guide","lvl2":"NVIDIA NIM Provider Guide","lvl3":""}},
6057
6058
  {"objectID":"bdd47b6d8dc71c8c6e099e6aaf6d4b1322ee018e437203f0f8213316ead4bc6a","title":"Overview","url":"/docs/getting-started/providers/nvidia-nim#overview","content":"NVIDIA NIM (NVIDIA Inference Microservices) is a managed inference platform that hosts a large catalog of open-weight models — Meta Llama, DeepSeek, Mistral, Microsoft Phi, Google Gemma, and more — all GPU-optimised and served through an OpenAI-compatible API. You can also point NeuroLink at a self-hosted NIM cluster by overriding the base URL.","hierarchy":{"lvl0":"Getting Started","lvl1":"NVIDIA NIM Provider Guide","lvl2":"Overview","lvl3":""}},
6058
6059
  {"objectID":"70e960324b4417bd885aed19e36a44abbedba28c263ff2bf2e6024c995e0915d","title":"Key Facts","url":"/docs/getting-started/providers/nvidia-nim#key-facts","content":"Hosted base URL: https://integrate.api.nvidia.com/v1\nProtocol: OpenAI-compatible (/v1/chat/completions)\nVision: Yes, on supported models (Llama 3.2 Vision, etc.)\nReasoning: Yes, on Nemotron and DeepSeek-R1 variants\nStreaming: Supported\nTool calling: Supported on most models\nSelf-hosting: Override NVIDIA_NIM_BASE_URL to point at a private NIM cluster","hierarchy":{"lvl0":"Getting Started","lvl1":"NVIDIA NIM Provider Guide","lvl2":"Key Facts","lvl3":""}},
@@ -6066,7 +6067,7 @@
6066
6067
  {"objectID":"041d61fa62afb3ac253f977f945401de38379d0f20f40075103a0fa368137747","title":"Meta Llama","url":"/docs/getting-started/providers/nvidia-nim#meta-llama","content":"| Model ID | Context | Vision | Reasoning |\n| ------------------------------------ | ------- | ------ | --------- |\n| meta/llama-3.3-70b-instruct | 128K | No | No |\n| meta/llama-3.1-405b-instruct | 128K | No | No |\n| meta/llama-3.1-70b-instruct | 128K | No | No |\n| meta/llama-3.2-90b-vision-instruct | 128K | Yes | No |\n| meta/llama-3.2-11b-vision-instruct | 128K | Yes | No |","hierarchy":{"lvl0":"Getting Started","lvl1":"NVIDIA NIM Provider Guide","lvl2":"Meta Llama","lvl3":""}},
6067
6068
  {"objectID":"3c188653cca3eebd5cc90f43252ad42029a4fa888bfb2b470139e4e0db08e26a","title":"NVIDIA Nemotron (Reasoning)","url":"/docs/getting-started/providers/nvidia-nim#nvidia-nemotron-reasoning","content":"| Model ID | Context | Vision | Reasoning |\n| ---------------------------------------- | ------- | ------ | --------- |\n| nvidia/llama-3.3-nemotron-super-49b-v1 | 128K | No | Yes |\n| nvidia/llama-3.1-nemotron-nano-8b-v1 | 128K | No | Yes |\n| nvidia/llama-3.1-nemotron-70b-instruct | 128K | No | Yes |","hierarchy":{"lvl0":"Getting Started","lvl1":"NVIDIA NIM Provider Guide","lvl2":"NVIDIA Nemotron (Reasoning)","lvl3":""}},
6068
6069
  {"objectID":"4d9aca0894a65a52648a73478e1c73b487411326cf63e05eb8159fd8fef0c5aa","title":"DeepSeek (Hosted on NIM)","url":"/docs/getting-started/providers/nvidia-nim#deepseek-hosted-on-nim","content":"| Model ID | Context | Vision | Reasoning |\n| ------------------------------------------- | ------- | ------ | --------- |\n| deepseek-ai/deepseek-r1 | 128K | No | Yes |\n| deepseek-ai/deepseek-r1-distill-llama-70b | 128K | No | Yes |","hierarchy":{"lvl0":"Getting Started","lvl1":"NVIDIA NIM Provider Guide","lvl2":"DeepSeek (Hosted on NIM)","lvl3":""}},
6069
- {"objectID":"8eccc475db8aa2e29bd49cd7c0ecb93be5b813979af07749f0c218abe7a71bd8","title":"Other Models","url":"/docs/getting-started/providers/nvidia-nim#other-models","content":"| Model ID | Context | Notes |\n| --------------------------------------- | ------- | ---------------- |\n| mistralai/mixtral-8x22b-instruct-v0.1 | 64K | Large MoE |\n| mistralai/mixtral-8x7b-instruct-v0.1 | 32K | Efficient MoE |\n| microsoft/phi-4 | 16K | Compact, capable |\n| google/gemma-3-27b-it | 128K | Google Gemma |\n\nAvailability, checked 2026-10-02. NVIDIA's GET https://integrate.api.nvidia.com/v1/models did not list meta/llama-3.3-70b-instruct, meta/llama-3.1-70b-instruct, deepseek-ai/deepseek-r1-distill-llama-70b or google/gemma-3-27b-it. The NvidiaNimModels enum records a probe on 2026-08-26 in which these answered \"no longer available\", and keeps the members so existing code compiles. meta/llama-3.1-405b-instruct, deepseek-ai/deepseek-r1, mistralai/mixtral-8x22b-instruct-v0.1, mistralai/mixtral-8x7b-instruct-v0.1 and microsoft/phi-4 were also absent from that list on that date, and meta/llama-3.2-90b-vision-instruct was listed.\n\nBrowse the full catalog at https://build.nvidia.com/models. You can pass any model ID via --model or model: — NIM returns 404 for IDs that are not in the catalog.","hierarchy":{"lvl0":"Getting Started","lvl1":"NVIDIA NIM Provider Guide","lvl2":"Other Models","lvl3":""}},
6070
+ {"objectID":"8eccc475db8aa2e29bd49cd7c0ecb93be5b813979af07749f0c218abe7a71bd8","title":"Other Models","url":"/docs/getting-started/providers/nvidia-nim#other-models","content":"| Model ID | Context | Notes |\n| --------------------------------------- | ------- | ---------------- |\n| mistralai/mixtral-8x22b-instruct-v0.1 | 64K | Large MoE |\n| mistralai/mixtral-8x7b-instruct-v0.1 | 32K | Efficient MoE |\n| microsoft/phi-4 | 16K | Compact, capable |\n| google/gemma-3-27b-it | 128K | Google Gemma |\n\nAvailability, checked 2026-10-24. NVIDIA's GET https://integrate.api.nvidia.com/v1/models lists openai/gpt-oss-20b, meta/llama-3.2-90b-vision-instruct, meta/llama-3.2-11b-vision-instruct and nvidia/llama-3.1-nemotron-70b-instruct from the tables above, and none of the others. A chat request to meta/llama-3.3-70b-instruct or meta/llama-3.1-70b-instruct answers HTTP 410, \"has reached its end of life on 2026-08-26T09:00:00Z and is no longer available\"; nvidia/llama-3.3-nemotron-super-49b-v1 and mistralai/mixtral-8x22b-instruct-v0.1 also answer 410, and deepseek-ai/deepseek-r1 and meta/llama-3.1-405b-instruct answer 404. nvidia/llama-3.1-nemotron-70b-instruct is listed but answered 404 (\"not found for account\") to the key used for the check. openai/gpt-oss-20b and meta/llama-3.2-11b-vision-instruct each answered a plain request and a tool-calling request. The NvidiaNimModels enum keeps the retired members so existing code compiles.\n\nBrowse the full catalog at https://build.nvidia.com/models. You can pass any model ID via --model or model: — NIM returns 404 for IDs that are not in the catalog.","hierarchy":{"lvl0":"Getting Started","lvl1":"NVIDIA NIM Provider Guide","lvl2":"Other Models","lvl3":""}},
6070
6071
  {"objectID":"13a92a3d0f9f1c15c2bb97769daa214d7a883699f08b4789ce05ba89f0b1724b","title":"Basic Generation","url":"/docs/getting-started/providers/nvidia-nim#basic-generation","content":"Basic Generation","hierarchy":{"lvl0":"Getting Started","lvl1":"NVIDIA NIM Provider Guide","lvl2":"Basic Generation","lvl3":""}},
6071
6072
  {"objectID":"3bc7919c7e5bb6f759acdf2b78470d89c4ec5fc0d637553c2c123240b504a105","title":"Using a Specific Model","url":"/docs/getting-started/providers/nvidia-nim#using-a-specific-model","content":"Using a Specific Model","hierarchy":{"lvl0":"Getting Started","lvl1":"NVIDIA NIM Provider Guide","lvl2":"Using a Specific Model","lvl3":""}},
6072
6073
  {"objectID":"def6f89a4845940b499d11b73fb1b4c4aee4bf4315cfbf3828168d4b874c3f39","title":"Reasoning with thinkingLevel","url":"/docs/getting-started/providers/nvidia-nim#reasoning-with-thinkinglevel","content":"Reasoning-capable models (Nemotron, DeepSeek-R1) accept a thinking flag via NIM's chat_template_kwargs. Pass thinkingLevel to activate it:\n\nLevels: minimal (no thinking) | low | medium | high\n\nIf the model does not support chat_template_kwargs.thinking, the provider automatically retries without it.","hierarchy":{"lvl0":"Getting Started","lvl1":"NVIDIA NIM Provider Guide","lvl2":"Reasoning with thinkingLevel","lvl3":""}},
@@ -6080,6 +6081,7 @@
6080
6081
  {"objectID":"e113acee1e904cde2e3295ebbb99df56e1d4d712cf149f774c8fbaad6ada6770","title":"\"Invalid NVIDIA NIM API key\"","url":"/docs/getting-started/providers/nvidia-nim#invalid-nvidia-nim-api-key","content":"The NVIDIA_NIM_API_KEY is missing, expired, or incorrect.\n\nGet or rotate keys at https://build.nvidia.com/settings/api-keys.","hierarchy":{"lvl0":"Getting Started","lvl1":"NVIDIA NIM Provider Guide","lvl2":"\"Invalid NVIDIA NIM API key\"","lvl3":""}},
6081
6082
  {"objectID":"25669258e3b272543a86496e295868082d0146aff134a84ead2bdf65fccb3ffb","title":"\"NVIDIA NIM rate limit exceeded\"","url":"/docs/getting-started/providers/nvidia-nim#nvidia-nim-rate-limit-exceeded","content":"Your account has hit its request-per-minute or token-per-day limit. Upgrade your account, reduce request frequency, or implement backoff. Check your current usage at https://build.nvidia.com/usage.","hierarchy":{"lvl0":"Getting Started","lvl1":"NVIDIA NIM Provider Guide","lvl2":"\"NVIDIA NIM rate limit exceeded\"","lvl3":""}},
6082
6083
  {"objectID":"8fa05f7794655a8b226d68b36d26031af67d19af32b9435a02357b7f8e719862","title":"\"NVIDIA NIM model not available\"","url":"/docs/getting-started/providers/nvidia-nim#nvidia-nim-model-not-available","content":"The model ID is not in the NIM catalog, or your account tier does not have access.\n\nUse the exact model ID shown on the model's page (e.g., openai/gpt-oss-20b).","hierarchy":{"lvl0":"Getting Started","lvl1":"NVIDIA NIM Provider Guide","lvl2":"\"NVIDIA NIM model not available\"","lvl3":""}},
6084
+ {"objectID":"6bc455b9dba112ad4d4cb452dc286e558ef9098ae2c16dd0048d985ed1edad6f","title":"HTTP 410 \"has reached its end of life\"","url":"/docs/getting-started/providers/nvidia-nim#http-410-has-reached-its-end-of-life","content":"The request named a model NVIDIA has retired, for example meta/llama-3.1-70b-instruct or meta/llama-3.3-70b-instruct (retired 2026-08-26). If you did not pass model:, look for a stale NVIDIA_NIM_MODEL in your .env or shell: it takes precedence over the built-in default (openai/gpt-oss-20b). Remove it or set it to a model from the current catalog.","hierarchy":{"lvl0":"Getting Started","lvl1":"NVIDIA NIM Provider Guide","lvl2":"HTTP 410 \"has reached its end of life\"","lvl3":""}},
6083
6085
  {"objectID":"34d171d7ade8a31dfc31588bfccef6e920cd37a662a53089aabb5983a7d2694c","title":"\"NVIDIA NIM quota exceeded\"","url":"/docs/getting-started/providers/nvidia-nim#nvidia-nim-quota-exceeded","content":"Account-level token or compute quota reached. Check your NIM dashboard.","hierarchy":{"lvl0":"Getting Started","lvl1":"NVIDIA NIM Provider Guide","lvl2":"\"NVIDIA NIM quota exceeded\"","lvl3":""}},
6084
6086
  {"objectID":"0697a2c79b09552d2abfdc5d788f32dfeec83add6b8a40e67389ef43b6f77ac9","title":"HTTP 400 with reasoning_budget or chat_template in the error","url":"/docs/getting-started/providers/nvidia-nim#http-400-with-reasoning_budget-or-chat_template-in-the-error","content":"The model does not support one of the NIM-specific extras. The provider automatically retries without the rejected parameter. If you see this error surfaced, it means the second attempt also failed — check the rest of the error message for the root cause.","hierarchy":{"lvl0":"Getting Started","lvl1":"NVIDIA NIM Provider Guide","lvl2":"HTTP 400 with reasoning_budget or chat_template in the error","lvl3":""}},
6085
6087
  {"objectID":"403e25d3806bf5242a71a8e510fac16e068f907380e7f22d15d2393cbf3f28f4","title":"Thinking level has no visible effect","url":"/docs/getting-started/providers/nvidia-nim#thinking-level-has-no-visible-effect","content":"Not all models support chat_template_kwargs.thinking. If the model rejects the parameter, the provider retries the request without it and produces a normal (non-reasoning) response. Use a Nemotron or DeepSeek-R1 model for guaranteed reasoning support.","hierarchy":{"lvl0":"Getting Started","lvl1":"NVIDIA NIM Provider Guide","lvl2":"Thinking level has no visible effect","lvl3":""}},
@@ -7857,7 +7859,7 @@
7857
7859
  {"objectID":"ce64f640074b8e60ee4bd472c5c1e5a246d0c373e06b5c046eae0db635733ba5","title":"Production Checklist","url":"/docs/guides/server-adapters/fastify#production-checklist","content":"[ ] Configure environment variables securely\n[ ] Set appropriate CORS origins (not *)\n[ ] Enable rate limiting with reasonable limits\n[ ] Add authentication middleware\n[ ] Configure request timeouts\n[ ] Set body size limits\n[ ] Enable compression (@fastify/compress)\n[ ] Add security headers (@fastify/helmet)\n[ ] Configure logging with appropriate level\n[ ] Set up health check monitoring\n[ ] Configure error tracking (Sentry, etc.)\n[ ] Use schema validation for all routes\n[ ] Enable JSON schema compilation caching","hierarchy":{"lvl0":"Guides","lvl1":"Fastify Adapter","lvl2":"Production Checklist","lvl3":""}},
7858
7860
  {"objectID":"96060a0ae3f9dfb112daf783ff1f49d405316b318d40fdb38c9e9b3a3f4dc377","title":"Related Documentation","url":"/docs/guides/server-adapters/fastify#related-documentation","content":"Server Adapters Overview - Getting started with server adapters\nConfiguration Reference - Full configuration options\nHono Adapter - Compare with Hono adapter\nExpress Adapter - Compare with Express adapter\nSecurity Best Practices - Authentication patterns","hierarchy":{"lvl0":"Guides","lvl1":"Fastify Adapter","lvl2":"Related Documentation","lvl3":""}},
7859
7861
  {"objectID":"84a68aab0ea6da1d4500a0e89cffad25af13dfb8f7c11c0466d2a5cc2160f2c2","title":"Additional Resources","url":"/docs/guides/server-adapters/fastify#additional-resources","content":"Fastify Documentation - Official Fastify documentation\nFastify Plugins - Official and community plugins\nFastify Performance - Performance tuning\n\nNeed Help? Join our GitHub Discussions or open an issue.","hierarchy":{"lvl0":"Guides","lvl1":"Fastify Adapter","lvl2":"Additional Resources","lvl3":""}},
7860
- {"objectID":"cd85d95041216458a7ff86a558a33685239f0e7c062584b10c910a1071c70385","title":"Hono Adapter","url":"/docs/guides/server-adapters/hono","content":"Hono Adapter\n\nThe recommended framework for NeuroLink server adapters\n\nHono is a lightweight, ultrafast web framework designed for the edge. It runs on virtually any JavaScript runtime including Node.js, Deno, Bun, Cloudflare Workers, and more.\n\nWhy Hono?\n\n| Feature | Benefit |\n| ----------------------- | ------------------------------------------------------------------------- |\n| Multi-runtime | Deploy to Node.js, Deno, Bun, Cloudflare Workers, Vercel Edge, AWS Lambda |\n| Ultrafast | Minimal overhead, optimized router with RegExpRouter |\n| TypeScript-first | Full type safety out of the box |\n| Tiny footprint | ~14KB minified, no dependencies |\n| Built-in middleware | CORS, compression, ETag, secure headers included |\n| Web Standards | Uses Fetch API, Request/Response objects |\n\nHono is the default and recommended framework for NeuroLink server adapters.\n\nCLI Usage\n\nStart a Hono server via CLI:\n\nQuick Start\n\nInstallation\n\nHono is included with NeuroLink - no additional installation required.\n\nBasic Usage\n\nTest the Server\n\nAccessing the Hono App\n\nFor advanced customization, you can access the underlying Hono instance:\n\nConfiguration Options\n\nFull Configuration Example\n\nMiddleware Integration\n\nUsing NeuroLink Middleware\n\nUsing Hono Built-in Middleware\n\nStreaming Responses\n\nHono has excellent streaming support, which NeuroLink leverages for real-time AI responses:\n\nCustom Streaming Route\n\nError Handling\n\nCustom Error Handler\n\nPerformance Tips\nUse the RegExpRouter (Default)\n\nHono uses RegExpRouter by default, which is the fastest router. No configuration needed.\nEnable Compression\nUse ETag for Caching\nMinimize Middleware Chain\n\nOnly use middleware where needed:\nUse Streaming for Long Responses\n\nAlways use the streaming endpoint for AI generation to avoid timeouts:\n\nEdge Runtime Deployment\n\nCloudflare Workers\n\nVercel Edge Functions\n\nDeno Deploy\n\nTesting\n\nUnit Testing with Hono Test Client\n\nProduction Checklist\n[ ] Configure environment variables securely\n[ ] Set appropriate CORS origins (not *)\n[ ] Enable rate limiting with reasonable limits\n[ ] Add authentication middleware\n[ ] Configure request timeouts\n[ ] Set body size limits\n[ ] Enable compression\n[ ] Add security headers\n[ ] Configure logging with appropriate level\n[ ] Set up health check monitoring\n[ ] Configure error tracking (Sentry, etc.)\n\nRelated Documentation\nServer Adapters Overview - Getting started with server adapters\nConfiguration Reference - Full configuration options\nExpress Adapter - Compare with Express adapter\nSecurity Best Practices - Authentication patterns\nStreaming Guide - Real-time streaming with SSE and NDJSON\n\nAdditional Resources\nHono Documentation - Official Hono documentation\nHono Middleware - Built-in middleware\nHono Examples - Example applications\n\nNeed Help? Join our GitHub Discussions or open an issue.","hierarchy":{"lvl0":"Guides","lvl1":"Hono Adapter","lvl2":"","lvl3":""}},
7862
+ {"objectID":"cd85d95041216458a7ff86a558a33685239f0e7c062584b10c910a1071c70385","title":"Hono Adapter","url":"/docs/guides/server-adapters/hono","content":"Hono Adapter\n\nThe recommended framework for NeuroLink server adapters\n\nHono is a lightweight, ultrafast web framework designed for the edge. It runs on virtually any JavaScript runtime including Node.js, Deno, Bun, Cloudflare Workers, and more.\n\nWhy Hono?\n\n| Feature | Benefit |\n| ----------------------- | ------------------------------------------------------------------------- |\n| Multi-runtime | Deploy to Node.js, Deno, Bun, Cloudflare Workers, Vercel Edge, AWS Lambda |\n| Ultrafast | Minimal overhead, optimized router with RegExpRouter |\n| TypeScript-first | Full type safety out of the box |\n| Tiny footprint | ~14KB minified, no dependencies |\n| Built-in middleware | CORS, compression, ETag, secure headers included |\n| Web Standards | Uses Fetch API, Request/Response objects |\n\nHono is the default and recommended framework for NeuroLink server adapters.\n\nCLI Usage\n\nStart a Hono server via CLI:\n\nQuick Start\n\nInstallation\n\nHono is included with NeuroLink - no additional installation required.\n\nBasic Usage\n\nTest the Server\n\nAccessing the Hono App\n\nFor advanced customization, you can access the underlying Hono instance:\n\nConfiguration Options\n\nFull Configuration Example\n\nRequest body limits\n\nbodyParser.jsonLimit bounds JSON bodies and bodyParser.maxSize bounds url-encoded forms. Both default to 10mb, as on the Express, Fastify and Koa adapters, and raising either one is honoured. Uploads (multipart/form-data, application/octet-stream, audio/*) are bounded by bodyParser.rawMaxSize, which defaults to maxSize when that is set and to 64mb otherwise.\n\nA JSON or url-encoded form body over its limit is answered 413 with error.code set to PAYLOAD_TOO_LARGE, before any middleware or route runs. A declared Content-Length over the limit is refused without reading the body, and a body sent without one is read only as far as the limit. An upload over the limit still reaches its route, which answers in its own wire format.\n\nMiddleware Integration\n\nUsing NeuroLink Middleware\n\nUsing Hono Built-in Middleware\n\nStreaming Responses\n\nHono has excellent streaming support, which NeuroLink leverages for real-time AI responses:\n\nCustom Streaming Route\n\nError Handling\n\nCustom Error Handler\n\nPerformance Tips\nUse the RegExpRouter (Default)\n\nHono uses RegExpRouter by default, which is the fastest router. No configuration needed.\nEnable Compression\nUse ETag for Caching\nMinimize Middleware Chain\n\nOnly use middleware where needed:\nUse Streaming for Long Responses\n\nAlways use the streaming endpoint for AI generation to avoid timeouts:\n\nEdge Runtime Deployment\n\nCloudflare Workers\n\nVercel Edge Functions\n\nDeno Deploy\n\nTesting\n\nUnit Testing with Hono Test Client\n\nProduction Checklist\n[ ] Configure environment variables securely\n[ ] Set appropriate CORS origins (not *)\n[ ] Enable rate limiting with reasonable limits\n[ ] Add authentication middleware\n[ ] Configure request timeouts\n[ ] Set body size limits\n[ ] Enable compression\n[ ] Add security headers\n[ ] Configure logging with appropriate level\n[ ] Set up health check monitoring\n[ ] Configure error tracking (Sentry, etc.)\n\nRelated Documentation\nServer Adapters Overview - Getting started with server adapters\nConfiguration Reference - Full configuration options\nExpress Adapter - Compare with Express adapter\nSecurity Best Practices - Authentication patterns\nStreaming Guide - Real-time streaming with SSE and NDJSON\n\nAdditional Resources\nHono Documentation - Official Hono documentation\nHono Middleware - Built-in middleware\nHono Examples - Example applications\n\nNeed Help? Join our GitHub Discussions or open an issue.","hierarchy":{"lvl0":"Guides","lvl1":"Hono Adapter","lvl2":"","lvl3":""}},
7861
7863
  {"objectID":"4f52a63fa59e73e486b75c6e70853fb82c660686cdf13261394fc63c32c40a66","title":"Hono Adapter","url":"/docs/guides/server-adapters/hono#hono-adapter","content":"The recommended framework for NeuroLink server adapters\n\nHono is a lightweight, ultrafast web framework designed for the edge. It runs on virtually any JavaScript runtime including Node.js, Deno, Bun, Cloudflare Workers, and more.","hierarchy":{"lvl0":"Guides","lvl1":"Hono Adapter","lvl2":"Hono Adapter","lvl3":""}},
7862
7864
  {"objectID":"c53bb661bf4d428d1292350b9eae21f7c2d881f171414cc705135e3e360d3521","title":"Why Hono?","url":"/docs/guides/server-adapters/hono#why-hono","content":"| Feature | Benefit |\n| ----------------------- | ------------------------------------------------------------------------- |\n| Multi-runtime | Deploy to Node.js, Deno, Bun, Cloudflare Workers, Vercel Edge, AWS Lambda |\n| Ultrafast | Minimal overhead, optimized router with RegExpRouter |\n| TypeScript-first | Full type safety out of the box |\n| Tiny footprint | ~14KB minified, no dependencies |\n| Built-in middleware | CORS, compression, ETag, secure headers included |\n| Web Standards | Uses Fetch API, Request/Response objects |\n\nHono is the default and recommended framework for NeuroLink server adapters.","hierarchy":{"lvl0":"Guides","lvl1":"Hono Adapter","lvl2":"Why Hono?","lvl3":""}},
7863
7865
  {"objectID":"4a6a19f4b89aa1306c9c1c381201916f7a706160c87f5e8dbf11e7f2cc60764f","title":"CLI Usage","url":"/docs/guides/server-adapters/hono#cli-usage","content":"Start a Hono server via CLI:","hierarchy":{"lvl0":"Guides","lvl1":"Hono Adapter","lvl2":"CLI Usage","lvl3":""}},
@@ -7866,6 +7868,7 @@
7866
7868
  {"objectID":"ac05717bef2259e66cdf32c6288f05234f2bcfdb7368a47650ed142a0a388a55","title":"Test the Server","url":"/docs/guides/server-adapters/hono#test-the-server","content":"Test the Server","hierarchy":{"lvl0":"Guides","lvl1":"Hono Adapter","lvl2":"Test the Server","lvl3":""}},
7867
7869
  {"objectID":"65a842ab7e90d7989760c8a34c85e7567c556472b5b3d94a0c62ccc93a613156","title":"Accessing the Hono App","url":"/docs/guides/server-adapters/hono#accessing-the-hono-app","content":"For advanced customization, you can access the underlying Hono instance:","hierarchy":{"lvl0":"Guides","lvl1":"Hono Adapter","lvl2":"Accessing the Hono App","lvl3":""}},
7868
7870
  {"objectID":"0f064fccc3e1e74bc76e8e15f3bf58fc0a6fb19c5287de8d9477a3c660a1b562","title":"Full Configuration Example","url":"/docs/guides/server-adapters/hono#full-configuration-example","content":"Full Configuration Example","hierarchy":{"lvl0":"Guides","lvl1":"Hono Adapter","lvl2":"Full Configuration Example","lvl3":""}},
7871
+ {"objectID":"f2750d8ff58dea504fb6e6d82dd41be7772022260c0badf9be197729e5921f1c","title":"Request body limits","url":"/docs/guides/server-adapters/hono#request-body-limits","content":"bodyParser.jsonLimit bounds JSON bodies and bodyParser.maxSize bounds url-encoded forms. Both default to 10mb, as on the Express, Fastify and Koa adapters, and raising either one is honoured. Uploads (multipart/form-data, application/octet-stream, audio/*) are bounded by bodyParser.rawMaxSize, which defaults to maxSize when that is set and to 64mb otherwise.\n\nA JSON or url-encoded form body over its limit is answered 413 with error.code set to PAYLOAD_TOO_LARGE, before any middleware or route runs. A declared Content-Length over the limit is refused without reading the body, and a body sent without one is read only as far as the limit. An upload over the limit still reaches its route, which answers in its own wire format.","hierarchy":{"lvl0":"Guides","lvl1":"Hono Adapter","lvl2":"Request body limits","lvl3":""}},
7869
7872
  {"objectID":"821ac3bdd68d125a2aef04f014beab93f8b62f2148bcece2ccc375cd2d09925b","title":"Using NeuroLink Middleware","url":"/docs/guides/server-adapters/hono#using-neurolink-middleware","content":"Using NeuroLink Middleware","hierarchy":{"lvl0":"Guides","lvl1":"Hono Adapter","lvl2":"Using NeuroLink Middleware","lvl3":""}},
7870
7873
  {"objectID":"354e2b56d0fe0720a8dadeb912ee44e5412ff034874daf270f8c96ce6a011b54","title":"Using Hono Built-in Middleware","url":"/docs/guides/server-adapters/hono#using-hono-built-in-middleware","content":"Using Hono Built-in Middleware","hierarchy":{"lvl0":"Guides","lvl1":"Hono Adapter","lvl2":"Using Hono Built-in Middleware","lvl3":""}},
7871
7874
  {"objectID":"87222251107cdbe1386180da56d88d17b161d2b7b2aafc76f031006fa81fc0dd","title":"Streaming Responses","url":"/docs/guides/server-adapters/hono#streaming-responses","content":"Hono has excellent streaming support, which NeuroLink leverages for real-time AI responses:","hierarchy":{"lvl0":"Guides","lvl1":"Hono Adapter","lvl2":"Streaming Responses","lvl3":""}},
@@ -9763,7 +9766,7 @@
9763
9766
  {"objectID":"5850b5e6ab599e2c9e2952653e0db0616ccd777c908edd1b43dd4381d0d1eab7","title":"12. OpenAI Compatible","url":"/docs/reference/provider-comparison#12-openai-compatible","content":"Provider ID: openai-compatible\nDefault Model: Auto-discovered\n\nStrengths:\nWorks with any OpenAI-compatible endpoint\nvLLM, FastChat, LocalAI support\nCustom deployment flexibility\nAuto-discovers available models\n\nWeaknesses:\nCapabilities entirely backend-dependent\nNo standardized capability detection\nConfiguration varies by provider\nAuthentication varies\n\nBest For:\nCustom deployments (vLLM, FastChat)\nInternal model serving\nPrivate cloud deployments\nWhen you control the backend\n\nPricing:\nDepends entirely on backend provider\nSelf-hosted: Infrastructure costs only\nCloud-hosted: Provider-specific pricing","hierarchy":{"lvl0":"Reference","lvl1":"AI Provider Comparison Guide","lvl2":"12. OpenAI Compatible","lvl3":""}},
9764
9767
  {"objectID":"260fb153eca401bd1ca6ed426b7f594aba2907dd9389b79d0bfe62380fc8a7be","title":"13. OpenRouter","url":"/docs/reference/provider-comparison#13-openrouter","content":"Provider ID: openrouter\nDefault Model: anthropic/claude-3-5-sonnet\n\nStrengths:\nAccess to 300+ models from 60+ providers\nMany FREE models available\nAutomatic failover\nUnified API for all models\nCost tracking\n\nWeaknesses:\nTool support varies by model\nVision support varies by model\nCredit-based pricing system\nModel availability can change\n\nBest For:\nAccess to many providers via one API\nCost optimization (free models available)\nRapid prototyping\nWhen you want provider flexibility\n\nPricing:\nFree models available:\nGoogle Gemini 2.0 Flash: FREE\nMeta Llama 3.3 70B: FREE\nQwen models: FREE\nPaid models:\nClaude 3.5 Sonnet: $3.00/$15.00 per 1M tokens\nGPT-4o: $2.50/$10.00 per 1M tokens","hierarchy":{"lvl0":"Reference","lvl1":"AI Provider Comparison Guide","lvl2":"13. OpenRouter","lvl3":""}},
9765
9768
  {"objectID":"e3aa53a228f2eb44916ad3d765c881b2565668588e1c94e1df543232a78413f6","title":"14. DeepSeek","url":"/docs/reference/provider-comparison#14-deepseek","content":"Provider ID: deepseek\nDefault Model: deepseek-chat\nAliases: ds\n\nStrengths:\nVery competitive pricing (among the cheapest frontier-quality models)\ndeepseek-reasoner (R1) — strong open-weight reasoning model\nOpenAI-compatible API — minimal integration overhead\nTool calling supported on both models\n\nWeaknesses:\nNo vision / multimodal support\nCloud-only (data sent to DeepSeek servers in China — consider for compliance)\nNo PDF support\n\nBest For:\nCost-sensitive text and reasoning workloads\nAgentic tool-calling pipelines where budget matters\nExperimenting with open-weight-quality reasoning at low cost\n\nPricing:\ndeepseek-chat (V3): ~$0.14/$0.28 per 1M tokens\ndeepseek-reasoner (R1): ~$0.55/$2.19 per 1M tokens","hierarchy":{"lvl0":"Reference","lvl1":"AI Provider Comparison Guide","lvl2":"14. DeepSeek","lvl3":""}},
9766
- {"objectID":"6e5ecdf1db31b0952ff3e3ab0758af1a084052e528319de6bc88f64cef9c3d97","title":"15. NVIDIA NIM","url":"/docs/reference/provider-comparison#15-nvidia-nim","content":"Provider ID: nvidia-nim\nDefault Model: meta/llama-3.3-70b-instruct\nAliases: nvidia, nim\n\nStrengths:\nAccess to NVIDIA-hosted Llama, Mistral, Nemotron, DeepSeek models\nThinking/reasoning supported on Nemotron-Reasoning and DeepSeek-R1 models\nVision supported on vision-capable models (Phi-3-vision, Llama 3.2 Vision)\nOpenAI-compatible API with NIM-specific extras (top_k, min_p, reasoning_budget)\nGraceful retry on 400 errors — drops unsupported extras automatically\n\nWeaknesses:\nTool and vision capability depends entirely on the specific hosted model\nRequires NVIDIA NGC API key\nNo PDF support\n\nBest For:\nRunning NVIDIA-optimized Llama/Mistral/Nemotron models in the cloud\nReasoning workloads via hosted DeepSeek-R1 or Nemotron\nDevelopers already in the NVIDIA ecosystem (NGC, DGX Cloud)\n\nPricing:\nVaries by model; new accounts receive free credits\nSee https://build.nvidia.com/models for per-model pricing","hierarchy":{"lvl0":"Reference","lvl1":"AI Provider Comparison Guide","lvl2":"15. NVIDIA NIM","lvl3":""}},
9769
+ {"objectID":"6e5ecdf1db31b0952ff3e3ab0758af1a084052e528319de6bc88f64cef9c3d97","title":"15. NVIDIA NIM","url":"/docs/reference/provider-comparison#15-nvidia-nim","content":"Provider ID: nvidia-nim\nDefault Model: openai/gpt-oss-20b\nAliases: nvidia, nim\n\nStrengths:\nAccess to NVIDIA-hosted Llama, Mistral, Nemotron, DeepSeek models\nThinking/reasoning supported on Nemotron-Reasoning and DeepSeek-R1 models\nVision supported on vision-capable models (Phi-3-vision, Llama 3.2 Vision)\nOpenAI-compatible API with NIM-specific extras (top_k, min_p, reasoning_budget)\nGraceful retry on 400 errors — drops unsupported extras automatically\n\nWeaknesses:\nTool and vision capability depends entirely on the specific hosted model\nRequires NVIDIA NGC API key\nNo PDF support\n\nBest For:\nRunning NVIDIA-optimized Llama/Mistral/Nemotron models in the cloud\nReasoning workloads via hosted DeepSeek-R1 or Nemotron\nDevelopers already in the NVIDIA ecosystem (NGC, DGX Cloud)\n\nPricing:\nVaries by model; new accounts receive free credits\nSee https://build.nvidia.com/models for per-model pricing","hierarchy":{"lvl0":"Reference","lvl1":"AI Provider Comparison Guide","lvl2":"15. NVIDIA NIM","lvl3":""}},
9767
9770
  {"objectID":"3d848b89e6f368d83d5eb4c1857ca90c4fa81391f9da441b10fb82227632408f","title":"16. LM Studio","url":"/docs/reference/provider-comparison#16-lm-studio","content":"Provider ID: lm-studio\nDefault Model: Auto-discovered from running server\nAliases: lmstudio, lms\n\nStrengths:\nCompletely FREE (local execution via LM Studio desktop app)\nMaximum privacy — no data sent to cloud\nAuto-discovers the currently loaded model via /v1/models\nVision supported on compatible models (LLaVA, Llama 3.2 Vision, Qwen-VL, etc.)\nTool calling supported on compatible models\n\nWeaknesses:\nRequires LM Studio app and a loaded model\nModel quality and capability depend entirely on what is loaded\nNo PDF support\nSmall local models may give inconsistent structured output\n\nBest For:\nPrivacy-critical local inference\nOffline / air-gapped environments\nDevelopment and experimentation without cloud costs\nTesting multiple open-weight models via a GUI\n\nPricing:\nFREE (hardware costs only)\nRequires local GPU for best performance","hierarchy":{"lvl0":"Reference","lvl1":"AI Provider Comparison Guide","lvl2":"16. LM Studio","lvl3":""}},
9768
9771
  {"objectID":"a0f05ec8e14d9e4fb69779c0c25f1e732ae384b506c5be585c5089cd457f293f","title":"17. llama.cpp","url":"/docs/reference/provider-comparison#17-llamacpp","content":"Provider ID: llamacpp\nDefault Model: Auto-discovered from running llama-server\nAliases: llama.cpp, llama-cpp\n\nStrengths:\nCompletely FREE (local execution via llama-server)\nMaximum privacy — no data sent to cloud\nGGUF model support — run quantized models on CPU or GPU\nAuto-discovers loaded model via /v1/models\nVision supported on compatible models (LLaVA, Llama 3.2 Vision)\nTool calling supported when server started with --jinja flag\n\nWeaknesses:\nRequires building / downloading llama-server and a GGUF model\nTool calling requires --jinja flag at server startup\nModel quality depends on the GGUF model loaded\nNo PDF support\nSmall local models may give inconsistent structured output\n\nBest For:\nMaximum privacy and air-gapped deployments\nCPU inference without a GPU\nRunning heavily quantized models at low resource cost\nPower users who want direct control over model serving\n\nPricing:\nFREE (hardware costs only)\nNo API costs or rate limits","hierarchy":{"lvl0":"Reference","lvl1":"AI Provider Comparison Guide","lvl2":"17. llama.cpp","lvl3":""}},
9769
9772
  {"objectID":"7a70d0d5fafc012db75fd708bf54e3db3a35a71ce61eb67049e87218bbc874d4","title":"Voice Providers","url":"/docs/reference/provider-comparison#voice-providers","content":"Voice providers handle audio I/O and are distinct from LLM text-generation providers. They are categorised by function: Text-to-Speech (TTS), Speech-to-Text (STT), and Realtime (bidirectional audio over WebSocket).\n\n| Provider | Type | Protocol | Streaming | Formats | Auth |\n| ------------------- | -------- | ---------------- | --------- | ----------------------------------------------------- | -------------------------------------------------- |\n| google-ai (TTS) | TTS | REST (gRPC SDK) | No | MP3, WAV, OGG | Service Account (GOOGLE_APPLICATION_CREDENTIALS) |\n| openai-tts | TTS | REST | No | MP3, WAV, OGG, Opus | API Key |\n| elevenlabs | TTS | REST | No | MP3, WAV (PCM), Opus | API Key |\n| azure-tts | TTS | REST | No | MP3, WAV (PCM), Opus | API Key + Region |\n| whisper | STT | REST | No | WAV, MP3, M4A, FLAC, OGG, Opus, WebM, MP4, MPEG, MPGA | API Key |\n| google-stt | STT | REST | No | WAV, FLAC, MP3, OGG | API Key or Service Account |\n| deepgram | STT | REST + WebSocket | Yes | WAV, MP3, OGG, FLAC | API Key |\n| azure-stt | STT | REST | No | WAV¹, OGG, Opus | API Key + Region |\n| openai-realtime | Realtime | WebSocket | Yes | PCM16,","hierarchy":{"lvl0":"Reference","lvl1":"AI Provider Comparison Guide","lvl2":"Voice Providers","lvl3":""}},
@@ -9841,7 +9844,7 @@
9841
9844
  {"objectID":"adefcedd575b72009c4bc0f61997c4250040929f014824c6c6cdbbe7fa0ef1e6","title":"Enterprise Production","url":"/docs/reference/provider-selection#enterprise-production","content":"Recommended Stack:\n\nEnterprise Requirements Checklist:\n[x] SLA guarantees (99.9%+)\n[x] HIPAA/SOC2 compliance\n[x] Multi-region deployment\n[x] Provider failover strategy\n[x] Cost monitoring and alerts","hierarchy":{"lvl0":"Reference","lvl1":"Provider Selection Guide","lvl2":"Enterprise Production","lvl3":""}},
9842
9845
  {"objectID":"00ead7f5ba563f9adeac903fd53da014cebdb61e277745108608ac4774e49f57","title":"Research and Analysis","url":"/docs/reference/provider-selection#research-and-analysis","content":"Recommended Stack:","hierarchy":{"lvl0":"Reference","lvl1":"Provider Selection Guide","lvl2":"Research and Analysis","lvl3":""}},
9843
9846
  {"objectID":"1272876f7ecd7e162c7ae353a481e9a18a6d43fa20e84116552e1ac6b188cea8","title":"Cost-Efficient Reasoning (DeepSeek)","url":"/docs/reference/provider-selection#cost-efficient-reasoning-deepseek","content":"Choose DeepSeek when you need frontier-quality reasoning at a fraction of the cost of Anthropic or OpenAI.\nWhen to choose: Text-only agentic workflows, chain-of-thought reasoning tasks, budget-constrained production.\nProvider ID: deepseek\nKey models: deepseek-chat (V3 — general purpose), deepseek-reasoner (R1 — reasoning)\nNot suitable for: Vision, PDF, or image processing tasks.\nCredential needed: DEEPSEEK_API_KEY (get one at https://platform.deepseek.com)","hierarchy":{"lvl0":"Reference","lvl1":"Provider Selection Guide","lvl2":"Cost-Efficient Reasoning (DeepSeek)","lvl3":""}},
9844
- {"objectID":"a91dc684aba34ed7cc14c808212a1a4ccc3bf679374984bb60818d50498bae4f","title":"NVIDIA-Hosted Models (NVIDIA NIM)","url":"/docs/reference/provider-selection#nvidia-hosted-models-nvidia-nim","content":"Choose NVIDIA NIM when you want NVIDIA-curated hosted inference — Llama, Nemotron, Mistral, and DeepSeek-R1 — accessed via an NVIDIA API key.\nWhen to choose: You want Llama 3.x or Nemotron models served at scale; you need thinking/reasoning via hosted DeepSeek-R1 or Nemotron-Reasoning; you are already an NGC customer.\nProvider ID: nvidia-nim\nKey models: meta/llama-3.3-70b-instruct, nvidia/nemotron-4-340b-instruct, DeepSeek-R1 variants\nVision: Available on select models (Phi-3-vision, Llama 3.2 Vision); check https://build.nvidia.com/models.\nNot suitable for: PDF processing; vision on non-vision models.\nCredential needed: NVIDIA_NIM_API_KEY (get one at https://build.nvidia.com/settings/api-keys)","hierarchy":{"lvl0":"Reference","lvl1":"Provider Selection Guide","lvl2":"NVIDIA-Hosted Models (NVIDIA NIM)","lvl3":""}},
9847
+ {"objectID":"a91dc684aba34ed7cc14c808212a1a4ccc3bf679374984bb60818d50498bae4f","title":"NVIDIA-Hosted Models (NVIDIA NIM)","url":"/docs/reference/provider-selection#nvidia-hosted-models-nvidia-nim","content":"Choose NVIDIA NIM when you want NVIDIA-curated hosted inference — Llama, Nemotron, Mistral, and DeepSeek-R1 — accessed via an NVIDIA API key.\nWhen to choose: You want Llama 3.x or Nemotron models served at scale; you need thinking/reasoning via hosted DeepSeek-R1 or Nemotron-Reasoning; you are already an NGC customer.\nProvider ID: nvidia-nim\nKey models: openai/gpt-oss-20b (default), nvidia/nemotron-4-340b-instruct, DeepSeek-R1 variants\nVision: Available on select models (Phi-3-vision, Llama 3.2 Vision); check https://build.nvidia.com/models.\nNot suitable for: PDF processing; vision on non-vision models.\nCredential needed: NVIDIA_NIM_API_KEY (get one at https://build.nvidia.com/settings/api-keys)","hierarchy":{"lvl0":"Reference","lvl1":"Provider Selection Guide","lvl2":"NVIDIA-Hosted Models (NVIDIA NIM)","lvl3":""}},
9845
9848
  {"objectID":"cc36677fe4f4c550b7760d8c16ffddec196c19f2498027b05576b3ba4fa37105","title":"Local Inference via LM Studio","url":"/docs/reference/provider-selection#local-inference-via-lm-studio","content":"Choose LM Studio when you want a desktop GUI for managing and running local models, with zero cloud cost and maximum privacy.\nWhen to choose: You want a GUI to browse, download, and switch models; you need local inference without managing llama-server manually; vision models like LLaVA or Qwen-VL are attractive.\nProvider ID: lm-studio\nModel: Auto-discovered from the loaded model (or pass an explicit model name).\nDefault base URL: http://localhost:1234/v1\nNot suitable for: Production at scale (single machine); PDF processing.\nSetup: Download LM Studio, load a model, click \"Start Server\".","hierarchy":{"lvl0":"Reference","lvl1":"Provider Selection Guide","lvl2":"Local Inference via LM Studio","lvl3":""}},
9846
9849
  {"objectID":"72e9be8e5b8e718308f0fe7360bcba27aae8b42fffa35be62d9a4ef188c470ae","title":"Local Inference via llama.cpp","url":"/docs/reference/provider-selection#local-inference-via-llamacpp","content":"Choose llama.cpp when you want the lowest-level, most resource-efficient local inference — especially on CPU or with heavily quantized GGUF models.\nWhen to choose: You need CPU-only inference; you want direct llama-server process control; you are running in a headless / server environment.\nProvider ID: llamacpp\nModel: Auto-discovered from the running llama-server (or pass an explicit model name).\nDefault base URL: http://localhost:8080/v1\nTool calling: Requires server to be started with --jinja flag.\nNot suitable for: PDF processing; production at scale without additional infrastructure.\nSetup: ./llama-server -m model.gguf --port 8080 [--jinja]","hierarchy":{"lvl0":"Reference","lvl1":"Provider Selection Guide","lvl2":"Local Inference via llama.cpp","lvl3":""}},
9847
9850
  {"objectID":"f6ce3650e34df2b638d084f777182ef05448c55cc7487917a52a5f6a3a2b4864","title":"Privacy-Critical Applications","url":"/docs/reference/provider-selection#privacy-critical-applications","content":"Recommended Stack:","hierarchy":{"lvl0":"Reference","lvl1":"Provider Selection Guide","lvl2":"Privacy-Critical Applications","lvl3":""}},
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@juspay/neurolink",
3
- "version": "13.8.11",
3
+ "version": "13.8.13",
4
4
  "packageManager": "pnpm@10.15.1",
5
5
  "description": "The pipe layer of an AI nervous system: one interface connecting provider neurons to your application, across three inference types — generate, stream and decide. `decide` returns typed, calibrated judgements from a non-generative model (~400ms, ~$0.00002/call) for routing, tool selection and context budgeting. MCP-native (4 transports), voice TTS/STT/realtime, RAG, agents, memory, compaction, 9 observability exporters. OpenAI · Anthropic · Gemini · Bedrock · Azure · Ollama · TypeSafe Jev and more.",
6
6
  "author": {
@@ -73,7 +73,9 @@
73
73
  "convert:specific": "tsx tools/automation/shellConverter.ts --specific",
74
74
  "// Testing (Continuous Test Suites)": "",
75
75
  "test": "pnpm exec tsx test/continuous-test-suite.ts",
76
- "test:agent-delegation": "pnpm exec tsx test/continuous-test-suite-agent-delegation.ts",
76
+ "test:agent-delegation": "pnpm run test:agent-delegation-offline && pnpm run test:agent-delegation-live",
77
+ "test:agent-delegation-offline": "pnpm exec tsx test/continuous-test-suite-agent-delegation.ts",
78
+ "test:agent-delegation-live": "pnpm exec tsx test/continuous-test-suite-agent-delegation-live.ts",
77
79
  "test:agent-tasks": "pnpm exec tsx test/continuous-test-suite-agent-tasks.ts",
78
80
  "test:agent:session-stream": "pnpm exec tsx test/continuous-test-suite-agent-session-stream.ts",
79
81
  "test:agent:platform-router": "pnpm exec tsx test/continuous-test-suite-agent-platform-router.ts",
@@ -203,12 +205,15 @@
203
205
  "test:rag-html-markup": "pnpm exec tsx test/continuous-test-suite-rag-html-markup.ts",
204
206
  "test:rag-bounds": "pnpm exec tsx test/continuous-test-suite-rag-bounds.ts",
205
207
  "test:skills": "pnpm exec tsx test/continuous-test-suite-skills.ts",
206
- "test:decide": "pnpm exec tsx test/continuous-test-suite-decide.ts",
208
+ "test:decide": "pnpm run test:decide-offline && pnpm run test:decide-live",
209
+ "test:decide-offline": "pnpm exec tsx test/continuous-test-suite-decide.ts",
210
+ "test:decide-live": "pnpm exec tsx test/continuous-test-suite-decide-live.ts",
207
211
  "test:decide-catalog": "pnpm exec tsx test/continuous-test-suite-decide-catalog.ts",
208
212
  "test:agent-mode": "pnpm exec tsx test/continuous-test-suite-agent-mode.ts",
209
213
  "test:servers": "pnpm exec tsx test/continuous-test-suite-servers.ts",
210
214
  "test:server-boundaries": "pnpm exec tsx test/continuous-test-suite-server-boundaries.ts",
211
215
  "test:agent-input-guard": "pnpm exec tsx test/continuous-test-suite-agent-input-guard.ts",
216
+ "test:body-limits": "pnpm exec tsx test/continuous-test-suite-body-limits.ts",
212
217
  "test:websocket-agent-handler": "pnpm exec tsx test/continuous-test-suite-websocket-agent-handler.ts",
213
218
  "test:tool-reliability": "pnpm exec tsx test/continuous-test-suite-tool-reliability.ts",
214
219
  "test:video-abort": "pnpm exec tsx test/continuous-test-suite-video-abort.ts",
@@ -336,7 +341,9 @@
336
341
  "test:office:security": "pnpm exec tsx test/continuous-test-suite-office-security.ts",
337
342
  "test:vision-image-format": "pnpm exec tsx test/continuous-test-suite-vision-image-format.ts",
338
343
  "test:image-exif": "pnpm exec tsx test/continuous-test-suite-image-exif.ts",
339
- "test:model-pool": "pnpm exec tsx test/continuous-test-suite-model-pool.ts",
344
+ "test:model-pool": "pnpm run test:model-pool-offline && pnpm run test:model-pool-live",
345
+ "test:model-pool-offline": "pnpm exec tsx test/continuous-test-suite-model-pool.ts",
346
+ "test:model-pool-live": "pnpm exec tsx test/continuous-test-suite-model-pool-live.ts",
340
347
  "test:agents": "pnpm exec tsx test/continuous-test-suite-agents.ts",
341
348
  "test:classifier-router": "pnpm exec tsx test/continuous-test-suite-classifier-router.ts",
342
349
  "test:vector-chroma": "pnpm exec tsx test/continuous-test-suite-vector-chroma.ts",