@juspay/neurolink 12.32.1 → 12.32.2

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.
@@ -130,7 +130,7 @@
130
130
  {"objectID":"556077ecd212a861d46a7b069bfe8243ccebb383fa394531e49c9abfafdcf890","title":"6. Observability","url":"/docs/about/pipe-architecture#6-observability","content":"Every stage emits OpenTelemetry spans. The full trace covers:\nContext build duration\nToken counts (input + output)\nTool execution times\nMemory read/write latency\nProvider-specific attributes (model, temperature, finish reason)\n\nExporters: Langfuse, OTLP, Jaeger, Zipkin, Prometheus, Datadog, NewRelic, Honeycomb, Console.","hierarchy":{"lvl0":"About","lvl1":"Pipe Architecture","lvl2":"6. Observability","lvl3":""}},
131
131
  {"objectID":"9aafb7162a034e292934afb13bd6ce2ca9177be0a13fd292a734637840f23775","title":"Key Files","url":"/docs/about/pipe-architecture#key-files","content":"| File | Purpose |\n| --------------------------------------- | -------------------------------------------- |\n| src/lib/neurolink.ts | Main SDK class — orchestrates all six stages |\n| src/lib/factories/providerRegistry.ts | Provider registration with dynamic imports |\n| src/lib/context/budgetChecker.ts | Pre-generation context budget validation |\n| src/lib/context/contextCompactor.ts | Multi-stage compaction orchestrator |\n| src/lib/mcp/toolRegistry.ts | Tool management and MCP integration |\n| src/lib/rag/ragIntegration.ts | RAG auto-pipeline setup |\n| src/lib/telemetry/ | OpenTelemetry instrumentation |","hierarchy":{"lvl0":"About","lvl1":"Pipe Architecture","lvl2":"Key Files","lvl3":""}},
132
132
  {"objectID":"a93f30940dbf4ce2d9ef1cc11bcfe70eb476e3b1e3ec734597880bbd699b5606","title":"Design Invariants","url":"/docs/about/pipe-architecture#design-invariants","content":"These never change regardless of provider, model, or connector:\nDynamic imports only — No static imports of providers in the registry (prevents circular deps)\nStream is the primitive for text — generate() is always stream collected; nothing in the text path bypasses stream(). decide() is a separate inference type that returns typed judgments and never enters this path.\nBudget checked before every text call — no generate()/stream() call without a budget check. A decide() call carries its own input ceilings instead, enforced by the provider.\nTools are always external — MCP protocol for all tool integrations, including built-ins\nMemory is scoped — Each conversation has isolated memory; no cross-contamination","hierarchy":{"lvl0":"About","lvl1":"Pipe Architecture","lvl2":"Design Invariants","lvl3":""}},
133
- {"objectID":"1083b3420d2c0db59846347281059ffb8b3de773cbdcb879b080fe6d480cd572","title":"NeuroLink Vision & Roadmap","url":"/docs/about/vision","content":"NeuroLink Vision & Roadmap\n\nThe Future of AI: Edge-first execution and continuous streaming architectures\n\n🔮 The Future of AI: Edge-First & Streaming-Native\n\nThe Fundamental Shift\n\nA fundamental transformation is happening in AI: Edge-first execution makes LLM usage practically free.\n\nAs AI models move closer to users—running on edge devices, local machines, regional infrastructure, and in-browser—the marginal cost of inference approaches zero. This isn't incremental improvement. This changes everything.\n\n🌍 Edge-First AI: Run Anywhere, Pay Nothing\n\nThe Economics of Edge AI\n\nWhen LLMs run on user devices or regional edge, compute is free. Storage is free. Inference is free.\n\nWhy This Matters\n\n| Traditional Cloud AI | Edge-First AI |\n| ------------------------------- | ------------------------ |\n| $2,000/month for 1M requests | $0/month |\n| Network latency: 200-500ms | Local latency: \\ When AI runs at the edge, the marginal cost of inference becomes zero.\nWhen streams run continuously, the marginal cost of availability becomes zero.\nWhen both are true, AI becomes as ubiquitous as electricity.\n\nWhat This Enables\nReal-Time Everything\nLive translation in conversations\nInstant code completion while typing\nReal-time fraud detection in payments\nContinuous health monitoring\nAlways-on personal assistants\nUnlimited AI Interactions\nNo per-request costs to limit usage\nExperiment freely without budget concerns\nBuild AI-first products without economic constraints\nScale to billions of requests at zero marginal cost\nPerfect Privacy\nData processing happens on user devices\nNo cloud uploads, no third-party access\nGDPR/HIPAA compliant by design\nUsers own their data completely\nGovernment/regulatory compliance automatic\nOffline Capability\nAI works without internet\nEdge models run anywhere\nResilient to network issues\nNo cloud dependencies\nWorks in remote locations\nDeveloper Freedom\nBuild without provider lock-in\nSwitch models freely (all work the same way)\nDeploy anywhere (cloud, edge, device, browser)\nOwn your infrastructure\nNo vendor dependencies\n\n🚀 How to Participate in This Future\n\nUse NeuroLink Today\n\nStart building with NeuroLink:\nQuick Start Guide - Get running in \\<5 minutes\nProvider Setup - Configure all 40 providers\nSDK Integration - Build with TypeScript\nProduction Deployment - Enterprise setup\n\nContribute to Edge & Streaming Features\n\nHelp us build the future:\nEdge Deployment Kits: CloudFlare Workers, Lambda@Edge templates\nBrowser LLM Support: WebGPU integration\nStreaming Architecture: Protocol design and implementation\nExample Applications: Showcase edge + streaming patterns\n\nContributing Guide - How to contribute\n\nShare Your Use Cases\n\nTell us how you're using NeuroLink:\nEdge deployments: What works, what doesn't\nStreaming needs: Where continuous context matters\nPrivacy requirements: Compliance and security needs\nPerformance goals: Latency and cost targets\n\nGitHub Discussions - Join the conversation\n\n🎯 Join Us in Building This Future\n\nNeuroLink started as a production tool at Juspay to solve today's AI integration problems. But we're building for tomorrow—where AI is everywhere, costs nothing, and just works.\n\nIf You Believe in This Vision:\n\n✅ Use NeuroLink today for multi-provider AI\n✅ Contribute to edge-first and streaming features\n✅ Share your use cases to help us prioritize\n✅ Join the community to shape the future of AI infrastructure\n\nThe future of AI is edge-first, streaming-native, and practically free.\n\nNeuroLink is building the infrastructure to power that future.\n\nWelcome aboard.\n\nDocument maintained by: NeuroLink Core Team\nLast updated: March 2026\nNext review: Q3 2026 (after Phase 3 planning)","hierarchy":{"lvl0":"About","lvl1":"NeuroLink Vision & Roadmap","lvl2":"","lvl3":""}},
133
+ {"objectID":"1083b3420d2c0db59846347281059ffb8b3de773cbdcb879b080fe6d480cd572","title":"NeuroLink Vision & Roadmap","url":"/docs/about/vision","content":"NeuroLink Vision & Roadmap\n\nThe Future of AI: Edge-first execution and continuous streaming architectures\n\n🔮 The Future of AI: Edge-First & Streaming-Native\n\nThe Fundamental Shift\n\nA fundamental transformation is happening in AI: Edge-first execution makes LLM usage practically free.\n\nAs AI models move closer to users—running on edge devices, local machines, regional infrastructure, and in-browser—the marginal cost of inference approaches zero. This isn't incremental improvement. This changes everything.\n\n🌍 Edge-First AI: Run Anywhere, Pay Nothing\n\nThe Economics of Edge AI\n\nWhen LLMs run on user devices or regional edge, compute is free. Storage is free. Inference is free.\n\nWhy This Matters\n\n| Traditional Cloud AI | Edge-First AI |\n| ------------------------------- | ------------------------ |\n| $2,000/month for 1M requests | $0/month |\n| Network latency: 200-500ms | Local latency: \\ When AI runs at the edge, the marginal cost of inference becomes zero.\nWhen streams run continuously, the marginal cost of availability becomes zero.\nWhen both are true, AI becomes as ubiquitous as electricity.\n\nWhat This Enables\nReal-Time Everything\nLive translation in conversations\nInstant code completion while typing\nReal-time fraud detection in payments\nContinuous health monitoring\nAlways-on personal assistants\nUnlimited AI Interactions\nNo per-request costs to limit usage\nExperiment freely without budget concerns\nBuild AI-first products without economic constraints\nScale to billions of requests at zero marginal cost\nPerfect Privacy\nData processing happens on user devices\nNo cloud uploads, no third-party access\nGDPR/HIPAA compliant by design\nUsers own their data completely\nGovernment/regulatory compliance automatic\nOffline Capability\nAI works without internet\nEdge models run anywhere\nResilient to network issues\nNo cloud dependencies\nWorks in remote locations\nDeveloper Freedom\nBuild without provider lock-in\nSwitch models freely (all work the same way)\nDeploy anywhere (cloud, edge, device, browser)\nOwn your infrastructure\nNo vendor dependencies\n\n🚀 How to Participate in This Future\n\nUse NeuroLink Today\n\nStart building with NeuroLink:\nQuick Start Guide - Get running in \\<5 minutes\nProvider Setup - Configure all 44 providers\nSDK Integration - Build with TypeScript\nProduction Deployment - Enterprise setup\n\nContribute to Edge & Streaming Features\n\nHelp us build the future:\nEdge Deployment Kits: CloudFlare Workers, Lambda@Edge templates\nBrowser LLM Support: WebGPU integration\nStreaming Architecture: Protocol design and implementation\nExample Applications: Showcase edge + streaming patterns\n\nContributing Guide - How to contribute\n\nShare Your Use Cases\n\nTell us how you're using NeuroLink:\nEdge deployments: What works, what doesn't\nStreaming needs: Where continuous context matters\nPrivacy requirements: Compliance and security needs\nPerformance goals: Latency and cost targets\n\nGitHub Discussions - Join the conversation\n\n🎯 Join Us in Building This Future\n\nNeuroLink started as a production tool at Juspay to solve today's AI integration problems. But we're building for tomorrow—where AI is everywhere, costs nothing, and just works.\n\nIf You Believe in This Vision:\n\n✅ Use NeuroLink today for multi-provider AI\n✅ Contribute to edge-first and streaming features\n✅ Share your use cases to help us prioritize\n✅ Join the community to shape the future of AI infrastructure\n\nThe future of AI is edge-first, streaming-native, and practically free.\n\nNeuroLink is building the infrastructure to power that future.\n\nWelcome aboard.\n\nDocument maintained by: NeuroLink Core Team\nLast updated: March 2026\nNext review: Q3 2026 (after Phase 3 planning)","hierarchy":{"lvl0":"About","lvl1":"NeuroLink Vision & Roadmap","lvl2":"","lvl3":""}},
134
134
  {"objectID":"5fcb53ab536f2cffaef276173e033cb9712a852233f3bbf6f04986ef826845db","title":"NeuroLink Vision & Roadmap","url":"/docs/about/vision#neurolink-vision-roadmap","content":"The Future of AI: Edge-first execution and continuous streaming architectures","hierarchy":{"lvl0":"About","lvl1":"NeuroLink Vision & Roadmap","lvl2":"NeuroLink Vision & Roadmap","lvl3":""}},
135
135
  {"objectID":"179ed4cfa698f5619a89e45bef29ffb3dbb0a28269b2f3e501d95b5b06144ca0","title":"The Fundamental Shift","url":"/docs/about/vision#the-fundamental-shift","content":"A fundamental transformation is happening in AI: Edge-first execution makes LLM usage practically free.\n\nAs AI models move closer to users—running on edge devices, local machines, regional infrastructure, and in-browser—the marginal cost of inference approaches zero. This isn't incremental improvement. This changes everything.","hierarchy":{"lvl0":"About","lvl1":"NeuroLink Vision & Roadmap","lvl2":"The Fundamental Shift","lvl3":""}},
136
136
  {"objectID":"2217000b17b8306979068110dadba347afaa519ac2716a3bead244060bdabade","title":"The Economics of Edge AI","url":"/docs/about/vision#the-economics-of-edge-ai","content":"When LLMs run on user devices or regional edge, compute is free. Storage is free. Inference is free.","hierarchy":{"lvl0":"About","lvl1":"NeuroLink Vision & Roadmap","lvl2":"The Economics of Edge AI","lvl3":""}},
@@ -140,7 +140,7 @@
140
140
  {"objectID":"bba7e1897313e3737e1e1d7c4285c0f0b41e1438560822e2301139f840a1f24f","title":"The Streaming Solution","url":"/docs/about/vision#the-streaming-solution","content":"Continuous Stream Model:\n\nInstead of starting fresh each time, maintain a continuous stream to your LLM that:\nRuns 24/7 on edge infrastructure (local machine, regional edge, user browser)\nMaintains perfect context across sessions (no context window limits)\nConnects/disconnects as needed (like WebSocket, but for AI)\nCosts nothing to keep alive (edge compute is free)","hierarchy":{"lvl0":"About","lvl1":"NeuroLink Vision & Roadmap","lvl2":"The Streaming Solution","lvl3":""}},
141
141
  {"objectID":"7b2c2e4083a75c704054788f25145243cae6aaa053f4dc154f93a3770a9dce22","title":"How Continuous Streams Work","url":"/docs/about/vision#how-continuous-streams-work","content":"Traditional Request/Response:\n\nContinuous Streaming (NeuroLink's Vision):","hierarchy":{"lvl0":"About","lvl1":"NeuroLink Vision & Roadmap","lvl2":"How Continuous Streams Work","lvl3":""}},
142
142
  {"objectID":"a321f88817ec635afc361ac9300f848af7c20c1a6130336b281db0c71deb4fc5","title":"Why Continuous Streams Change Everything","url":"/docs/about/vision#why-continuous-streams-change-everything","content":"| Traditional AI | Continuous Streaming AI |\n| ---------------------------------------- | ------------------------------- |\n| Cold start every request | Always warm, instant response |\n| Limited context window (200K tokens max) | Infinite context memory |\n| Expensive per-token costs | Free on edge |\n| Stateless, forgets everything | Stateful, remembers everything |\n| Batch processing | Real-time continuous processing |\n| High latency (network + cold start) | Sub-100ms responses |","hierarchy":{"lvl0":"About","lvl1":"NeuroLink Vision & Roadmap","lvl2":"Why Continuous Streams Change Everything","lvl3":""}},
143
- {"objectID":"695b825ee1abb3d7dfa8560a77b79ae0bb07ff1da80fa2bd6069445886921195","title":"Phase 1: Universal Integration ✅ COMPLETE","url":"/docs/about/vision#phase-1-universal-integration-complete","content":"Status: Complete — in production use at Juspay\n\nWhat We Built:\n✅ 40 AI providers unified under one API\n✅ Enterprise features (proxy, Redis, failover, telemetry)\n✅ SDK + CLI for any workflow\n✅ Real-time streaming with tool support\n✅ 6 built-in tools + any MCP-compliant server\n✅ Production deployment at scale (15M+ requests/month)\n\nYou can use this today.\n\nGet Started Now →","hierarchy":{"lvl0":"About","lvl1":"NeuroLink Vision & Roadmap","lvl2":"Phase 1: Universal Integration ✅ COMPLETE","lvl3":""}},
143
+ {"objectID":"695b825ee1abb3d7dfa8560a77b79ae0bb07ff1da80fa2bd6069445886921195","title":"Phase 1: Universal Integration ✅ COMPLETE","url":"/docs/about/vision#phase-1-universal-integration-complete","content":"Status: Complete — in production use at Juspay\n\nWhat We Built:\n✅ 44 AI providers unified under one API\n✅ Enterprise features (proxy, Redis, failover, telemetry)\n✅ SDK + CLI for any workflow\n✅ Real-time streaming with tool support\n✅ 6 built-in tools + any MCP-compliant server\n✅ Production deployment at scale (15M+ requests/month)\n\nYou can use this today.\n\nGet Started Now →","hierarchy":{"lvl0":"About","lvl1":"NeuroLink Vision & Roadmap","lvl2":"Phase 1: Universal Integration ✅ COMPLETE","lvl3":""}},
144
144
  {"objectID":"03f6c09431a0abe505dab45cc757b528402676a09cb80dd3fb96c9806bafc3c7","title":"Phase 2: Edge-Native Execution 🚧 IN PROGRESS","url":"/docs/about/vision#phase-2-edge-native-execution-in-progress","content":"Goal: Make local/edge AI as easy as cloud AI\n\nWhat We're Building:\n✅ Ollama integration - Local LLMs, zero cost, complete privacy (Done)\n✅ LiteLLM proxy - 100+ models through one local endpoint (Done)\n🚧 Edge deployment kits - CloudFlare Workers, Lambda@Edge templates (In Progress)\n🚧 Browser LLM support - Run models entirely in-browser (WebGPU) (Research)\n🚧 Regional routing - Automatic provider selection based on user location (Design)\n\nTimeline: Q1-Q2 2025\n\nWhy It Matters: Every request runs \\<100ms, costs $0, never touches cloud","hierarchy":{"lvl0":"About","lvl1":"NeuroLink Vision & Roadmap","lvl2":"Phase 2: Edge-Native Execution 🚧 IN PROGRESS","lvl3":""}},
145
145
  {"objectID":"8fc5d2489aaf7a90fa71f3826e623f395c8419e877654af6d66cf3d85c376b7c","title":"Phase 3: Continuous Streaming Architecture 📋 PLANNED","url":"/docs/about/vision#phase-3-continuous-streaming-architecture-planned","content":"Goal: Long-running, stateful LLM streams with infinite context\n\nWhat We're Building:\n📋 Stream management - Connect, disconnect, reconnect to persistent streams\n📋 Infinite context - No token limits, perfect memory across sessions\n📋 Edge orchestration - Streams run on user devices or regional edge\n📋 Automatic failover - Seamless cloud fallback if edge unavailable\n📋 Multi-stream coordination - Coordinate multiple specialized streams\n\nTimeline: Q3-Q4 2025\n\nWhy It Matters: AI becomes ambient, always available, costs nothing","hierarchy":{"lvl0":"About","lvl1":"NeuroLink Vision & Roadmap","lvl2":"Phase 3: Continuous Streaming Architecture 📋 PLANNED","lvl3":""}},
146
146
  {"objectID":"3b18188089291551ff1079bc4c79b6ab38fce495ac239e65026bbcc71ad34b52","title":"Phase 4: AI-Powered Everything 🔮 FUTURE","url":"/docs/about/vision#phase-4-ai-powered-everything-future","content":"Vision: Every application has embedded AI, every user has personal AI assistants\n\nThe Future We're Building Toward:\nEvery App AI-Native: Embedded LLMs in all software\nPersonal AI Assistants: Running locally on your devices\nZero-Cost Inference: Edge execution makes AI practically free\nPerfect Memory: Continuous streams maintain infinite context\nInstant Responses: Edge compute = sub-100ms latency\nComplete Privacy: Your data never leaves your infrastructure","hierarchy":{"lvl0":"About","lvl1":"NeuroLink Vision & Roadmap","lvl2":"Phase 4: AI-Powered Everything 🔮 FUTURE","lvl3":""}},
@@ -150,7 +150,7 @@
150
150
  {"objectID":"fcb318c306ccdb9332c9f4655eca3de25327605dc0d29fef460800c222b6f12f","title":"3. Perfect Privacy","url":"/docs/about/vision#3-perfect-privacy","content":"Data processing happens on user devices\nNo cloud uploads, no third-party access\nGDPR/HIPAA compliant by design\nUsers own their data completely\nGovernment/regulatory compliance automatic","hierarchy":{"lvl0":"About","lvl1":"NeuroLink Vision & Roadmap","lvl2":"3. Perfect Privacy","lvl3":""}},
151
151
  {"objectID":"909e2fcfa686454a6e3e1cbaa3a5f82cde74701a7807c0e4990f3c612b398ac7","title":"4. Offline Capability","url":"/docs/about/vision#4-offline-capability","content":"AI works without internet\nEdge models run anywhere\nResilient to network issues\nNo cloud dependencies\nWorks in remote locations","hierarchy":{"lvl0":"About","lvl1":"NeuroLink Vision & Roadmap","lvl2":"4. Offline Capability","lvl3":""}},
152
152
  {"objectID":"666161cdb9538fbd7517167d959520f3ce418b05b58ddce7e96708f23d17d67c","title":"5. Developer Freedom","url":"/docs/about/vision#5-developer-freedom","content":"Build without provider lock-in\nSwitch models freely (all work the same way)\nDeploy anywhere (cloud, edge, device, browser)\nOwn your infrastructure\nNo vendor dependencies","hierarchy":{"lvl0":"About","lvl1":"NeuroLink Vision & Roadmap","lvl2":"5. Developer Freedom","lvl3":""}},
153
- {"objectID":"dbfd0458b9ad4cd41c504f56cf1dadb81a00fed1b6fdb1c4f711f1af0e919ebd","title":"Use NeuroLink Today","url":"/docs/about/vision#use-neurolink-today","content":"Start building with NeuroLink:\nQuick Start Guide - Get running in \\<5 minutes\nProvider Setup - Configure all 40 providers\nSDK Integration - Build with TypeScript\nProduction Deployment - Enterprise setup","hierarchy":{"lvl0":"About","lvl1":"NeuroLink Vision & Roadmap","lvl2":"Use NeuroLink Today","lvl3":""}},
153
+ {"objectID":"dbfd0458b9ad4cd41c504f56cf1dadb81a00fed1b6fdb1c4f711f1af0e919ebd","title":"Use NeuroLink Today","url":"/docs/about/vision#use-neurolink-today","content":"Start building with NeuroLink:\nQuick Start Guide - Get running in \\<5 minutes\nProvider Setup - Configure all 44 providers\nSDK Integration - Build with TypeScript\nProduction Deployment - Enterprise setup","hierarchy":{"lvl0":"About","lvl1":"NeuroLink Vision & Roadmap","lvl2":"Use NeuroLink Today","lvl3":""}},
154
154
  {"objectID":"9e4a88e460a6fcfe5c4a5e9cb17b9abbd1e2eb71cc9024c7b1ac1904a56e070a","title":"Contribute to Edge & Streaming Features","url":"/docs/about/vision#contribute-to-edge-streaming-features","content":"Help us build the future:\nEdge Deployment Kits: CloudFlare Workers, Lambda@Edge templates\nBrowser LLM Support: WebGPU integration\nStreaming Architecture: Protocol design and implementation\nExample Applications: Showcase edge + streaming patterns\n\nContributing Guide - How to contribute","hierarchy":{"lvl0":"About","lvl1":"NeuroLink Vision & Roadmap","lvl2":"Contribute to Edge & Streaming Features","lvl3":""}},
155
155
  {"objectID":"c47d3ea31b9350d8a7e39af83361be6a5c078cffb786893cc053a933cc4ca99b","title":"Share Your Use Cases","url":"/docs/about/vision#share-your-use-cases","content":"Tell us how you're using NeuroLink:\nEdge deployments: What works, what doesn't\nStreaming needs: Where continuous context matters\nPrivacy requirements: Compliance and security needs\nPerformance goals: Latency and cost targets\n\nGitHub Discussions - Join the conversation","hierarchy":{"lvl0":"About","lvl1":"NeuroLink Vision & Roadmap","lvl2":"Share Your Use Cases","lvl3":""}},
156
156
  {"objectID":"a01f19466002f1a4decfb4e57a7976034cd068b42a0beb84e7cbda9e6ff6cefa","title":"🎯 Join Us in Building This Future","url":"/docs/about/vision#-join-us-in-building-this-future","content":"NeuroLink started as a production tool at Juspay to solve today's AI integration problems. But we're building for tomorrow—where AI is everywhere, costs nothing, and just works.","hierarchy":{"lvl0":"About","lvl1":"NeuroLink Vision & Roadmap","lvl2":"🎯 Join Us in Building This Future","lvl3":""}},
@@ -2336,8 +2336,8 @@
2336
2336
  {"objectID":"06453fe78480b6ae73c599e3820862490a2b30ddd72bd4dc0d65052855dae72c","title":"Test Data Requirements:","url":"/docs/development/testing-plan#test-data-requirements","content":"Mock AI provider responses\nTest WebSocket messages\nSample telemetry data\nChat conversation samples","hierarchy":{"lvl0":"Development","lvl1":"🧪 COMPREHENSIVE TESTING & VERIFICATION PLAN","lvl2":"Test Data Requirements:","lvl3":""}},
2337
2337
  {"objectID":"759cf99082dba9a208b8b190c152cc5fc54c637c0e8826d7369b8994ab20ac6f","title":"Test Results Documentation:","url":"/docs/development/testing-plan#test-results-documentation","content":"Phase Results Summary - Pass/fail status for each phase\nPerformance Benchmarks - Before/after performance metrics\nIntegration Test Results - Real-world scenario outcomes\nBug Report - Any issues discovered during testing\nProduction Readiness Certificate - Final validation sign-off","hierarchy":{"lvl0":"Development","lvl1":"🧪 COMPREHENSIVE TESTING & VERIFICATION PLAN","lvl2":"Test Results Documentation:","lvl3":""}},
2338
2338
  {"objectID":"2866fdda44a9f55d463a0c10f0d478793ec401edbb3ac475a9ff2a3cbbaf019d","title":"Updated Documentation:","url":"/docs/development/testing-plan#updated-documentation","content":"API Reference - Reflecting actual implementation\nExamples & Tutorials - Working code samples\nTroubleshooting Guide - Common issues and solutions\nPerformance Guide - Optimization recommendations\n\nReady for Execution: This plan provides comprehensive validation of all Lighthouse integration work while ensuring zero breaking changes and optimal performance.\n\nEstimated Total Time: 3 hours for complete validation\nCritical Path: Phase A must pass before proceeding to subsequent phases\nSuccess Rate Target: 100% pass rate for Critical criteria, 90%+ for Important criteria","hierarchy":{"lvl0":"Development","lvl1":"🧪 COMPREHENSIVE TESTING & VERIFICATION PLAN","lvl2":"Updated Documentation:","lvl3":""}},
2339
- {"objectID":"51b6b861923c4ecf8410549bd73ebac7e465ba84aef90c9a499f86d45bd8225b","title":"🧪 NeuroLink Testing Guide — 40 Providers, Validated in CI","url":"/docs/development/testing","content":"🧪 NeuroLink Testing Guide — 40 Providers, Validated in CI\n\n🎉 Provider Testing Status\n\n40 providers supported — validated in CI where credentials are configured (unconfigured providers are skipped): OpenAI, Anthropic, Google AI, Google Vertex, AWS Bedrock, Azure OpenAI, Mistral, Hugging Face, Ollama, LiteLLM, AWS SageMaker, OpenAI-compatible, OpenRouter, DeepSeek, NVIDIA NIM, LM Studio, llama.cpp, TypeSafe Jev — plus voice (OpenAI TTS, ElevenLabs, Deepgram, Azure Speech, Google TTS/STT, Whisper, OpenAI Realtime, Gemini Live).\n\nQuick Provider Validation\n\nComprehensive Testing\n\nExpected Results\n\nCLI Enhancement Output:\n\nSDK Enhancement Output:\n\nProvider Testing\n\nGoogle AI Provider Validation\n\nOpenAI Provider Validation\n\nMulti-Provider Testing\n\nBackward Compatibility Testing\n\nEnsure No Breaking Changes\n\nTest Existing SDK Integration\n\nError Handling Testing\n\nInvalid Model Names\n\nMissing API Keys\n\nNetwork Issues\n\nPerformance Testing\n\nResponse Time Validation\n\nToken Counting Accuracy\n\nEnhancement Feature Validation\n\nAnalytics Data Completeness\n\nEvaluation Data Validation\n\nContext Flow Testing\n\nTroubleshooting Guide\n\nCommon Issues\nEmpty Responses from Google AI\nCheck model name in .env file\nUse gemini-2.5-pro instead of deprecated models\nVerify API key is valid\nNaN Token Counts\nUsually indicates provider API failure\nCheck model configuration and API keys\nTest with --debug flag for detailed logs\nEnhancement Data Missing\nEnsure using --debug flag to see enhancement output\nVerify enhancement flags are correctly specified\nCheck that provider is working (not falling back)\nCLI Commands Not Found\nRun npm run build:cli to rebuild CLI\nCheck that dist/cli/index.js exists\nVerify Node.js version compatibility\n\nDebug Commands\n\nTest Automation\n\nValidation Script Usage\n\nCI/CD Integration\n\nThis testing guide ensures all enhancement features work correctly while maintaining backward compatibility and providing clear troubleshooting guidance.","hierarchy":{"lvl0":"Development","lvl1":"🧪 NeuroLink Testing Guide — 40 Providers, Validated in CI","lvl2":"","lvl3":""}},
2340
- {"objectID":"4d9bb1de4ad3dfd116e55dc2d6b220825f5b43875d3fd78069496be8d856ff06","title":"🎉 Provider Testing Status","url":"/docs/development/testing#-provider-testing-status","content":"40 providers supported — validated in CI where credentials are configured (unconfigured providers are skipped): OpenAI, Anthropic, Google AI, Google Vertex, AWS Bedrock, Azure OpenAI, Mistral, Hugging Face, Ollama, LiteLLM, AWS SageMaker, OpenAI-compatible, OpenRouter, DeepSeek, NVIDIA NIM, LM Studio, llama.cpp, TypeSafe Jev — plus voice (OpenAI TTS, ElevenLabs, Deepgram, Azure Speech, Google TTS/STT, Whisper, OpenAI Realtime, Gemini Live).","hierarchy":{"lvl0":"Development","lvl1":"🧪 NeuroLink Testing Guide — 40 Providers, Validated in CI","lvl2":"🎉 Provider Testing Status","lvl3":""}},
2339
+ {"objectID":"51b6b861923c4ecf8410549bd73ebac7e465ba84aef90c9a499f86d45bd8225b","title":"🧪 NeuroLink Testing Guide — 40 Providers, Validated in CI","url":"/docs/development/testing","content":"🧪 NeuroLink Testing Guide — 40 Providers, Validated in CI\n\n🎉 Provider Testing Status\n\n44 providers supported — validated in CI where credentials are configured (unconfigured providers are skipped): OpenAI, Anthropic, Google AI, Google Vertex, AWS Bedrock, Azure OpenAI, Mistral, Hugging Face, Ollama, LiteLLM, AWS SageMaker, OpenAI-compatible, OpenRouter, DeepSeek, NVIDIA NIM, LM Studio, llama.cpp, TypeSafe Jev — plus voice (OpenAI TTS, ElevenLabs, Deepgram, Azure Speech, Google TTS/STT, Whisper, OpenAI Realtime, Gemini Live).\n\nQuick Provider Validation\n\nComprehensive Testing\n\nExpected Results\n\nCLI Enhancement Output:\n\nSDK Enhancement Output:\n\nProvider Testing\n\nGoogle AI Provider Validation\n\nOpenAI Provider Validation\n\nMulti-Provider Testing\n\nBackward Compatibility Testing\n\nEnsure No Breaking Changes\n\nTest Existing SDK Integration\n\nError Handling Testing\n\nInvalid Model Names\n\nMissing API Keys\n\nNetwork Issues\n\nPerformance Testing\n\nResponse Time Validation\n\nToken Counting Accuracy\n\nEnhancement Feature Validation\n\nAnalytics Data Completeness\n\nEvaluation Data Validation\n\nContext Flow Testing\n\nTroubleshooting Guide\n\nCommon Issues\nEmpty Responses from Google AI\nCheck model name in .env file\nUse gemini-2.5-pro instead of deprecated models\nVerify API key is valid\nNaN Token Counts\nUsually indicates provider API failure\nCheck model configuration and API keys\nTest with --debug flag for detailed logs\nEnhancement Data Missing\nEnsure using --debug flag to see enhancement output\nVerify enhancement flags are correctly specified\nCheck that provider is working (not falling back)\nCLI Commands Not Found\nRun npm run build:cli to rebuild CLI\nCheck that dist/cli/index.js exists\nVerify Node.js version compatibility\n\nDebug Commands\n\nTest Automation\n\nValidation Script Usage\n\nCI/CD Integration\n\nThis testing guide ensures all enhancement features work correctly while maintaining backward compatibility and providing clear troubleshooting guidance.","hierarchy":{"lvl0":"Development","lvl1":"🧪 NeuroLink Testing Guide — 40 Providers, Validated in CI","lvl2":"","lvl3":""}},
2340
+ {"objectID":"4d9bb1de4ad3dfd116e55dc2d6b220825f5b43875d3fd78069496be8d856ff06","title":"🎉 Provider Testing Status","url":"/docs/development/testing#-provider-testing-status","content":"44 providers supported — validated in CI where credentials are configured (unconfigured providers are skipped): OpenAI, Anthropic, Google AI, Google Vertex, AWS Bedrock, Azure OpenAI, Mistral, Hugging Face, Ollama, LiteLLM, AWS SageMaker, OpenAI-compatible, OpenRouter, DeepSeek, NVIDIA NIM, LM Studio, llama.cpp, TypeSafe Jev — plus voice (OpenAI TTS, ElevenLabs, Deepgram, Azure Speech, Google TTS/STT, Whisper, OpenAI Realtime, Gemini Live).","hierarchy":{"lvl0":"Development","lvl1":"🧪 NeuroLink Testing Guide — 40 Providers, Validated in CI","lvl2":"🎉 Provider Testing Status","lvl3":""}},
2341
2341
  {"objectID":"8fc0eade856296973641598d92d1d671410031324b34910f255b9daf62bbc200","title":"Quick Provider Validation","url":"/docs/development/testing#quick-provider-validation","content":"`bash","hierarchy":{"lvl0":"Development","lvl1":"🧪 NeuroLink Testing Guide — 40 Providers, Validated in CI","lvl2":"Quick Provider Validation","lvl3":""}},
2342
2342
  {"objectID":"e522bb68d746cfa26559e2fe3c17775ecced454e5eb5b1672cc734c310a125aa","title":"Test any provider via the CLI","url":"/docs/development/testing#test-any-provider-via-the-cli","content":"pnpm cli generate \"test\" --provider openai\npnpm cli generate \"test\" --provider anthropic\npnpm cli generate \"test\" --provider google-ai\npnpm cli generate \"test\" --provider deepseek\npnpm cli generate \"test\" --provider nvidia-nim\npnpm cli generate \"test\" --provider lm-studio\npnpm cli generate \"test\" --provider llamacpp\npnpm cli generate \"test\" --provider azure\npnpm cli generate \"test\" --provider mistral\npnpm cli generate \"test\" --provider ollama\npnpm cli generate \"test\" --provider vertex","hierarchy":{"lvl0":"Development","lvl1":"🧪 NeuroLink Testing Guide — 40 Providers, Validated in CI","lvl2":"Test any provider via the CLI","lvl3":""}},
2343
2343
  {"objectID":"8304dacf623fd9daa0ab9a22acb9078e123f9aa467efbddbbe074af13c2cdd7a","title":"Test with enhancements (any provider works)","url":"/docs/development/testing#test-with-enhancements-any-provider-works","content":"pnpm cli generate \"test\" --provider google-ai --enable-analytics --enable-evaluation --debug\n`","hierarchy":{"lvl0":"Development","lvl1":"🧪 NeuroLink Testing Guide — 40 Providers, Validated in CI","lvl2":"Test with enhancements (any provider works)","lvl3":""}},
@@ -2608,8 +2608,8 @@
2608
2608
  {"objectID":"f283ec766223fa981594075b52d5edf537ebfb630e7ba1343782de0003ea2cd2","title":"Git revert failures","url":"/docs/features/autoresearch#git-revert-failures","content":"AutoResearch requires a clean working tree for reverts. If you have uncommitted changes outside mutable paths, commit or stash them first.","hierarchy":{"lvl0":"Features","lvl1":"AutoResearch - Autonomous AI Experiment Engine","lvl2":"Git revert failures","lvl3":""}},
2609
2609
  {"objectID":"6e1d3efcbcd2958a47bd91d71b60a4f1fb9bae5db434a0f80b84c8c207a80af0","title":"State file corruption","url":"/docs/features/autoresearch#state-file-corruption","content":"If .autoresearch/state.json becomes invalid, use reset to clear it:\n\nThen re-initialize with init. Your git branch and committed experiments are preserved.","hierarchy":{"lvl0":"Features","lvl1":"AutoResearch - Autonomous AI Experiment Engine","lvl2":"State file corruption","lvl3":""}},
2610
2610
  {"objectID":"3f9da31ccb4193e87888801724b536c1b3d42e0265faca0faf47b0632b1283a2","title":"FAQ","url":"/docs/features/autoresearch#faq","content":"Q: What providers work with AutoResearch?\nA: Any provider supported by NeuroLink. The AI needs tool-calling capability, so use models that support function calling (GPT-4o, Claude Sonnet, Gemini Flash/Pro, etc.).\n\nQ: Can I use AutoResearch with Python/ML training scripts?\nA: Yes — that's the primary use case. Set runCommand to your training script and configure the metric pattern to parse your output format.\n\nQ: How does the AI decide what to change?\nA: The AI reads the research program (program.md), the current code, and past experiment results. It proposes changes based on this context, using its understanding of the domain. The quality of your program document directly affects the quality of proposals.\n\nQ: What happens if the experiment crashes?\nA: The crash is detected via non-zero exit code or output parsing. The result is recorded as crash status, the candidate is reverted, and the loop continues with a new proposal.\n\nQ: Can I run AutoResearch on a remote server?\nA: Yes. Use the TaskManager integration with BullMQ (Redis) for scheduled runs. The repo must be accessible on the machine running NeuroLink.\n\nQ: How do I stop a running experiment?\nA: For run-once: Ctrl+C. For scheduled tasks: neurolink autoresearch stop <taskId> or await neurolink.tasks.delete(taskId).\n\nQ: Is there a limit on experiment count?\nA: Set maxExperiments in config or --max-runs in CLI. Without a limit, research continues indefinitely until manually stopped.\n\nQ: Can multiple AutoResearch sessions run on the same repo?\nA: Not recommended. Each session operates on its own git branch, but concurrent filesystem operations on the same repo can conflict. Use separate working directories or git worktrees for parallel sessions.\n\nQ: Does AutoResearch work with structuredOutput?\nA: No. AutoResearch uses tool calling (function calling) which is mutually exclusive with structuredOutput JSON schemas on Gemini providers. This is an API limitation, not a bug.","hierarchy":{"lvl0":"Features","lvl1":"AutoResearch - Autonomous AI Experiment Engine","lvl2":"FAQ","lvl3":""}},
2611
- {"objectID":"b62fe03b51882b07b58c3e35542449b69a1cdfa87de89867ee32b32e4a915257","title":"The model catalogue","url":"/docs/features/classifier-router-catalog","content":"The model catalogue\n\nThe classifier router has always routed\nacross a pool you declare — the set of models you are willing to be billed\nfor is not something NeuroLink can invent. The catalogue is an opt-in way to\nwiden that pool: it builds candidates from the model registry, intersected\nwith the credentials this host actually holds, and hands them to the\njev strategy as one choice\nquestion.\n\nThe registry is 64 models across 7 providers (openai 21, anthropic 19,\nazure 7, ollama 6, bedrock 5, mistral 4, google-ai 2), with 132 aliases on top\nof those 64 ids — not the whole set of 40 providers NeuroLink can call. The\ncatalogue is strictly an addition to a declared pool, never a replacement\nfor one: a host routing over LiteLLM, OpenRouter, an OpenAI-compatible\nendpoint, or anything self-hosted still declares those members by hand, and\nenrichCandidate ranks declared and catalogue members together on one scale\nrather than sorting them into separate buckets. Enabling catalog widens the\npool for the 7 providers it knows; it does not make the other 33 appear.\n\nThe degradation contract. catalog.enabled defaults to unset, and\nbuildModelCatalog() returns [] when it is. Nothing about routing changes\nuntil you turn it on: the declared pool remains the only source of\ncandidates.\n\nA declared pool and an enabled catalog combine: declared members win on a\nduplicate id (or provider/model when no id is set), so a hand-declared\noverride always beats the catalogue's own entry for the same model.\n\nBuilding the routable pool\n\nbuildModelCatalog() starts from every model the registry knows and removes:\ndeprecated models, unless includeDeprecated: true\nproviders this host has no reachable credentials for (see below)\nproviders not in catalog.providers, when that list is set\nmodels whose context window is below catalog.minContextWindow\n\nReachability is deliberately permissive, in two directions. A provider\nwhose credentials resolve through an external chain — Bedrock's AWS default\nchain, Vertex's several auth paths — is kept even though no single env var\nproves it is configured; a local runtime with no credential at all (Ollama, LM\nStudio) is likewise kept. What this actually filters out is the common case: a\ncloud provider with one named API-key env var that is simply unset. The worst\ncase of being too permissive is a candidate that fails at call time and falls\nback, which the router already handles.\n\nWhat is left is capped to maxModels (default 120) by a tier-neutral merit\nscore — tierScore(model, \"moderate\") — so a truncated list, if there is one,\nkeeps the models most likely to be broadly useful rather than whichever the\nregistry happened to list first. The default never truncates today: the\nwhole registry is 64 models, well under the cap. maxModels is a guard\nagainst a future registry that outgrows what a single question can carry, not\na limit anyone is currently hitting.\n\nOne line per model\n\nEach surviving model becomes a ClassifierCandidate and renderCandidate()\nturns it into one terse line for jev's criteria map. The order and the\nprecedence are both deliberate:\ndescription always renders first, when present.\ntiers, when declared, renders next as intended for\ntrivial/simple tasks — the host's most direct statement of where a\n model belongs.\nContext window and capability flags always render. These are facts\n about the model (\"accepts images\", \"128K context\"), not opinions about\n how good it is, so nothing suppresses them.\nDeclared cost/quality replace the registry's own opinion, rather\n than sitting beside it. When either is set, the line adds capability N\n(higher is more capable) / relative cost N (lower is cheaper) and\n suppresses the registry's price, speed bucket, quality bucket, and\n \"strong at …\" use-case scores entirely. When neither is set, the registry\n fills all of that in exactly as it always did.\n\nTwo real renders, from the same model, show the difference:\n\nThis precedence exists because the registry's opinion used to win, and a\nlive measurement showed it silently overriding the host's own routing\nintent. A pool member declared exactly the second line above — an explicit\nstatement that this model is for rote work — but the registry rates the\nsame underlying model highly on general benchmarks, so the old rendering\nappended its own \"high quality\" and \"strong at coding, analysis, reasoning\"\non top. Five registry clauses against one line of host prose, and the host\nlost: a hard concurrency-bug task routed to the cheap model in 5 of 8 runs,\nbecause the model-pick question asks for \"the cheapest one that can still\ncomplete this request correctly\" and had just been told the cheap one was\nhigh quality and strong at reasoning. The declared quality: 2 never\nreached the model at all — only description did. After the fix, the same\n15-prompt suite (trivial/simple/conversational/hard/expert) routed 15/15 to\nthe intended pool member, and the hard prompt went 8/8 to the capable model\n(previously 3/8).\n\nEvery catalogue-b","hierarchy":{"lvl0":"Features","lvl1":"The model catalogue","lvl2":"","lvl3":""}},
2612
- {"objectID":"d64b5f675ca9b47c7f4d4861bb339a5e6948e3d44b307d80ee1ee80cae9dece1","title":"The model catalogue","url":"/docs/features/classifier-router-catalog#the-model-catalogue","content":"The classifier router has always routed\nacross a pool you declare — the set of models you are willing to be billed\nfor is not something NeuroLink can invent. The catalogue is an opt-in way to\nwiden that pool: it builds candidates from the model registry, intersected\nwith the credentials this host actually holds, and hands them to the\njev strategy as one choice\nquestion.\n\nThe registry is 64 models across 7 providers (openai 21, anthropic 19,\nazure 7, ollama 6, bedrock 5, mistral 4, google-ai 2), with 132 aliases on top\nof those 64 ids — not the whole set of 40 providers NeuroLink can call. The\ncatalogue is strictly an addition to a declared pool, never a replacement\nfor one: a host routing over LiteLLM, OpenRouter, an OpenAI-compatible\nendpoint, or anything self-hosted still declares those members by hand, and\nenrichCandidate ranks declared and catalogue members together on one scale\nrather than sorting them into separate buckets. Enabling catalog widens the\npool for the 7 providers it knows; it does not make the other 33 appear.\n\nThe degradation contract. catalog.enabled defaults to unset, and\nbuildModelCatalog() returns [] when it is. Nothing about routing changes\nuntil you turn it on: the declared pool remains the only source of\ncandidates.\n\nA declared pool and an enabled catalog combine: declared members win on a\nduplicate id (or provider/model when no id is set), so a hand-declared\noverride always beats the catalogue's own entry for the same model.","hierarchy":{"lvl0":"Features","lvl1":"The model catalogue","lvl2":"The model catalogue","lvl3":""}},
2611
+ {"objectID":"b62fe03b51882b07b58c3e35542449b69a1cdfa87de89867ee32b32e4a915257","title":"The model catalogue","url":"/docs/features/classifier-router-catalog","content":"The model catalogue\n\nThe classifier router has always routed\nacross a pool you declare — the set of models you are willing to be billed\nfor is not something NeuroLink can invent. The catalogue is an opt-in way to\nwiden that pool: it builds candidates from the model registry, intersected\nwith the credentials this host actually holds, and hands them to the\njev strategy as one choice\nquestion.\n\nThe registry is 64 models across 7 providers (openai 21, anthropic 19,\nazure 7, ollama 6, bedrock 5, mistral 4, google-ai 2), with 132 aliases on top\nof those 64 ids — not the whole set of 44 providers NeuroLink can call. The\ncatalogue is strictly an addition to a declared pool, never a replacement\nfor one: a host routing over LiteLLM, OpenRouter, an OpenAI-compatible\nendpoint, or anything self-hosted still declares those members by hand, and\nenrichCandidate ranks declared and catalogue members together on one scale\nrather than sorting them into separate buckets. Enabling catalog widens the\npool for the 7 providers it knows; it does not make the other 37 appear.\n\nThe degradation contract. catalog.enabled defaults to unset, and\nbuildModelCatalog() returns [] when it is. Nothing about routing changes\nuntil you turn it on: the declared pool remains the only source of\ncandidates.\n\nA declared pool and an enabled catalog combine: declared members win on a\nduplicate id (or provider/model when no id is set), so a hand-declared\noverride always beats the catalogue's own entry for the same model.\n\nBuilding the routable pool\n\nbuildModelCatalog() starts from every model the registry knows and removes:\ndeprecated models, unless includeDeprecated: true\nproviders this host has no reachable credentials for (see below)\nproviders not in catalog.providers, when that list is set\nmodels whose context window is below catalog.minContextWindow\n\nReachability is deliberately permissive, in two directions. A provider\nwhose credentials resolve through an external chain — Bedrock's AWS default\nchain, Vertex's several auth paths — is kept even though no single env var\nproves it is configured; a local runtime with no credential at all (Ollama, LM\nStudio) is likewise kept. What this actually filters out is the common case: a\ncloud provider with one named API-key env var that is simply unset. The worst\ncase of being too permissive is a candidate that fails at call time and falls\nback, which the router already handles.\n\nWhat is left is capped to maxModels (default 120) by a tier-neutral merit\nscore — tierScore(model, \"moderate\") — so a truncated list, if there is one,\nkeeps the models most likely to be broadly useful rather than whichever the\nregistry happened to list first. The default never truncates today: the\nwhole registry is 64 models, well under the cap. maxModels is a guard\nagainst a future registry that outgrows what a single question can carry, not\na limit anyone is currently hitting.\n\nOne line per model\n\nEach surviving model becomes a ClassifierCandidate and renderCandidate()\nturns it into one terse line for jev's criteria map. The order and the\nprecedence are both deliberate:\ndescription always renders first, when present.\ntiers, when declared, renders next as intended for\ntrivial/simple tasks — the host's most direct statement of where a\n model belongs.\nContext window and capability flags always render. These are facts\n about the model (\"accepts images\", \"128K context\"), not opinions about\n how good it is, so nothing suppresses them.\nDeclared cost/quality replace the registry's own opinion, rather\n than sitting beside it. When either is set, the line adds capability N\n(higher is more capable) / relative cost N (lower is cheaper) and\n suppresses the registry's price, speed bucket, quality bucket, and\n \"strong at …\" use-case scores entirely. When neither is set, the registry\n fills all of that in exactly as it always did.\n\nTwo real renders, from the same model, show the difference:\n\nThis precedence exists because the registry's opinion used to win, and a\nlive measurement showed it silently overriding the host's own routing\nintent. A pool member declared exactly the second line above — an explicit\nstatement that this model is for rote work — but the registry rates the\nsame underlying model highly on general benchmarks, so the old rendering\nappended its own \"high quality\" and \"strong at coding, analysis, reasoning\"\non top. Five registry clauses against one line of host prose, and the host\nlost: a hard concurrency-bug task routed to the cheap model in 5 of 8 runs,\nbecause the model-pick question asks for \"the cheapest one that can still\ncomplete this request correctly\" and had just been told the cheap one was\nhigh quality and strong at reasoning. The declared quality: 2 never\nreached the model at all — only description did. After the fix, the same\n15-prompt suite (trivial/simple/conversational/hard/expert) routed 15/15 to\nthe intended pool member, and the hard prompt went 8/8 to the capable model\n(previously 3/8).\n\nEvery catalogue-b","hierarchy":{"lvl0":"Features","lvl1":"The model catalogue","lvl2":"","lvl3":""}},
2612
+ {"objectID":"d64b5f675ca9b47c7f4d4861bb339a5e6948e3d44b307d80ee1ee80cae9dece1","title":"The model catalogue","url":"/docs/features/classifier-router-catalog#the-model-catalogue","content":"The classifier router has always routed\nacross a pool you declare — the set of models you are willing to be billed\nfor is not something NeuroLink can invent. The catalogue is an opt-in way to\nwiden that pool: it builds candidates from the model registry, intersected\nwith the credentials this host actually holds, and hands them to the\njev strategy as one choice\nquestion.\n\nThe registry is 64 models across 7 providers (openai 21, anthropic 19,\nazure 7, ollama 6, bedrock 5, mistral 4, google-ai 2), with 132 aliases on top\nof those 64 ids — not the whole set of 44 providers NeuroLink can call. The\ncatalogue is strictly an addition to a declared pool, never a replacement\nfor one: a host routing over LiteLLM, OpenRouter, an OpenAI-compatible\nendpoint, or anything self-hosted still declares those members by hand, and\nenrichCandidate ranks declared and catalogue members together on one scale\nrather than sorting them into separate buckets. Enabling catalog widens the\npool for the 7 providers it knows; it does not make the other 37 appear.\n\nThe degradation contract. catalog.enabled defaults to unset, and\nbuildModelCatalog() returns [] when it is. Nothing about routing changes\nuntil you turn it on: the declared pool remains the only source of\ncandidates.\n\nA declared pool and an enabled catalog combine: declared members win on a\nduplicate id (or provider/model when no id is set), so a hand-declared\noverride always beats the catalogue's own entry for the same model.","hierarchy":{"lvl0":"Features","lvl1":"The model catalogue","lvl2":"The model catalogue","lvl3":""}},
2613
2613
  {"objectID":"071858e4fe13a1d63ea7f7c9dc52e1d185fcca54e327ec105d54cc20fea25543","title":"Building the routable pool","url":"/docs/features/classifier-router-catalog#building-the-routable-pool","content":"buildModelCatalog() starts from every model the registry knows and removes:\ndeprecated models, unless includeDeprecated: true\nproviders this host has no reachable credentials for (see below)\nproviders not in catalog.providers, when that list is set\nmodels whose context window is below catalog.minContextWindow\n\nReachability is deliberately permissive, in two directions. A provider\nwhose credentials resolve through an external chain — Bedrock's AWS default\nchain, Vertex's several auth paths — is kept even though no single env var\nproves it is configured; a local runtime with no credential at all (Ollama, LM\nStudio) is likewise kept. What this actually filters out is the common case: a\ncloud provider with one named API-key env var that is simply unset. The worst\ncase of being too permissive is a candidate that fails at call time and falls\nback, which the router already handles.\n\nWhat is left is capped to maxModels (default 120) by a tier-neutral merit\nscore — tierScore(model, \"moderate\") — so a truncated list, if there is one,\nkeeps the models most likely to be broadly useful rather than whichever the\nregistry happened to list first. The default never truncates today: the\nwhole registry is 64 models, well under the cap. maxModels is a guard\nagainst a future registry that outgrows what a single question can carry, not\na limit anyone is currently hitting.","hierarchy":{"lvl0":"Features","lvl1":"The model catalogue","lvl2":"Building the routable pool","lvl3":""}},
2614
2614
  {"objectID":"2cad48473fb9c200377fe1a4b2f1e1feea861afe5ae7ee9a53caf6cbe313cc4a","title":"One line per model","url":"/docs/features/classifier-router-catalog#one-line-per-model","content":"Each surviving model becomes a ClassifierCandidate and renderCandidate()\nturns it into one terse line for jev's criteria map. The order and the\nprecedence are both deliberate:\ndescription always renders first, when present.\ntiers, when declared, renders next as intended for\ntrivial/simple tasks — the host's most direct statement of where a\n model belongs.\nContext window and capability flags always render. These are facts\n about the model (\"accepts images\", \"128K context\"), not opinions about\n how good it is, so nothing suppresses them.\nDeclared cost/quality replace the registry's own opinion, rather\n than sitting beside it. When either is set, the line adds capability N\n(higher is more capable) / relative cost N (lower is cheaper) and\n suppresses the registry's price, speed bucket, quality bucket, and\n \"strong at …\" use-case scores entirely. When neither is set, the registry\n fills all of that in exactly as it always did.\n\nTwo real renders, from the same model, show the difference:\n\n`","hierarchy":{"lvl0":"Features","lvl1":"The model catalogue","lvl2":"One line per model","lvl3":""}},
2615
2615
  {"objectID":"ed0bc85ff16693c3ce8715b098e802cd31abaf513fd4a5e1ec8305d00a5e44a9","title":"No declared cost/quality — the registry fills in:","url":"/docs/features/classifier-router-catalog#no-declared-costquality-the-registry-fills-in","content":"GPT-4 Omni Mini; 128K context; 0.01c per 1K in; fast speed; high quality; supports vision, tools, reasoning, code, multimodal; strong at coding, analysis, conversation, reasoning, translation, summarization","hierarchy":{"lvl0":"Features","lvl1":"The model catalogue","lvl2":"No declared cost/quality — the registry fills in:","lvl3":""}},
@@ -3296,7 +3296,7 @@
3296
3296
  {"objectID":"f5a8b702e8237dd44e4c2afa5b0fe4b35914c8fbb7d3db35d767d62d5d59735d","title":"Data Retention","url":"/docs/features/conversation-history#data-retention","content":"Set TTL on sessions - Auto-delete old conversations\n\n`\nArchive regularly - Export to long-term storage","hierarchy":{"lvl0":"Features","lvl1":"Redis Conversation History Export","lvl2":"Data Retention","lvl3":""}},
3297
3297
  {"objectID":"8c905694c375e261af4d54a36b967993336d56d93c3c95c2d81c0eb97a9a810d","title":"Related Features","url":"/docs/features/conversation-history#related-features","content":"CLI Loop Sessions - Persistent conversation mode\nConversation Memory - Full memory system docs\nAnalytics Integration - Track conversation metrics","hierarchy":{"lvl0":"Features","lvl1":"Redis Conversation History Export","lvl2":"Related Features","lvl3":""}},
3298
3298
  {"objectID":"1f4d41e856ac4f9383479d49927a679708395521350a6d1225814a09b491b2ab","title":"Migration Notes","url":"/docs/features/conversation-history#migration-notes","content":"If upgrading from in-memory to Redis-backed storage:\nEnable Redis in configuration\nExisting in-memory sessions will be lost (not migrated)\nNew sessions automatically stored in Redis\nExport functionality only works with Redis store\nConsider gradual rollout with feature flag\n\nFor complete conversation memory system documentation, see conversation-memory.md.","hierarchy":{"lvl0":"Features","lvl1":"Redis Conversation History Export","lvl2":"Migration Notes","lvl3":""}},
3299
- {"objectID":"b2470c9e1d7e3606393dd20eff3c0c67db2dd4286351faae35b7df97b72b2989","title":"Credential Validation","url":"/docs/features/credential-validation","content":"Added in v9.59.0, NeuroLink ships a typed ModelAccessDeniedError and a pre-flight sdk.checkCredentials() API. Together they let you validate provider credentials before wiring them into a long-running flow — useful for setup wizards, health checks, and surfacing actionable errors to users instead of opaque HTTP 401/403s.\n\nsdk.checkCredentials()\n\nProbes a single provider with a real 1-token generation call (maxTokens: 16, tools disabled) and returns a structured status. The signature is:\n\nImplementation lives in src/lib/neurolink.ts.\n\nBasic usage\n\nProbing a specific model\n\nStatus reference\n\n| status | Meaning |\n| ----------- | --------------------------------------------------------------------- |\n| \"ok\" | Credentials valid; the probe succeeded. |\n| \"missing\" | Required env vars / per-call credentials are not set. |\n| \"expired\" | OAuth token / temporary credentials have expired. |\n| \"denied\" | Model access denied — see ModelAccessDeniedError below. |\n| \"network\" | Network failure reaching the provider (DNS, TLS, timeout). |\n| \"unknown\" | An unclassified provider error; inspect detail for the raw message. |\n\ndetail is a short human-readable message suitable for surfacing in a setup UI or log line.\n\nProbing several providers\n\ncheckCredentials() validates one provider per call. To check multiple providers, run them concurrently:\n\nModelAccessDeniedError\n\nWhen a generate/stream call hits a model-access policy (e.g. the team is not allowed to use a particular model, or a tier-restricted model is requested), NeuroLink throws a typed ModelAccessDeniedError instead of a generic Error. This makes it catchable by the providerFallback orchestrator and lets you produce actionable UI.\n\nError shape\n\nThe exact definition lives in src/lib/types/errors.ts.\n\nCLI\n\nNeuroLink does not ship a dedicated check-credentials CLI command. The closest operator-facing command is:\n\nFor programmatic credential validation in scripts, call the SDK directly:\n\nCombining with Provider Fallback\n\nThe most common pattern: validate at boot, surface configuration errors to operators, then let runtime requests use providerFallback for the model-access denial cases that survive validation.\n\nSetup Wizard Pattern\n\nPer-call credential overrides are also supported on generate() / stream() — see Per-Request Credentials.\n\nRelated\nProvider Fallback — catch ModelAccessDeniedError and switch to an allowed model\nPer-Request Credentials — pass credentials per-call or per-instance\nProvider Setup — initial configuration for all 40 providers\nTroubleshooting — error reference and resolution guide","hierarchy":{"lvl0":"Features","lvl1":"Credential Validation","lvl2":"","lvl3":""}},
3299
+ {"objectID":"b2470c9e1d7e3606393dd20eff3c0c67db2dd4286351faae35b7df97b72b2989","title":"Credential Validation","url":"/docs/features/credential-validation","content":"Added in v9.59.0, NeuroLink ships a typed ModelAccessDeniedError and a pre-flight sdk.checkCredentials() API. Together they let you validate provider credentials before wiring them into a long-running flow — useful for setup wizards, health checks, and surfacing actionable errors to users instead of opaque HTTP 401/403s.\n\nsdk.checkCredentials()\n\nProbes a single provider with a real 1-token generation call (maxTokens: 16, tools disabled) and returns a structured status. The signature is:\n\nImplementation lives in src/lib/neurolink.ts.\n\nBasic usage\n\nProbing a specific model\n\nStatus reference\n\n| status | Meaning |\n| ----------- | --------------------------------------------------------------------- |\n| \"ok\" | Credentials valid; the probe succeeded. |\n| \"missing\" | Required env vars / per-call credentials are not set. |\n| \"expired\" | OAuth token / temporary credentials have expired. |\n| \"denied\" | Model access denied — see ModelAccessDeniedError below. |\n| \"network\" | Network failure reaching the provider (DNS, TLS, timeout). |\n| \"unknown\" | An unclassified provider error; inspect detail for the raw message. |\n\ndetail is a short human-readable message suitable for surfacing in a setup UI or log line.\n\nProbing several providers\n\ncheckCredentials() validates one provider per call. To check multiple providers, run them concurrently:\n\nModelAccessDeniedError\n\nWhen a generate/stream call hits a model-access policy (e.g. the team is not allowed to use a particular model, or a tier-restricted model is requested), NeuroLink throws a typed ModelAccessDeniedError instead of a generic Error. This makes it catchable by the providerFallback orchestrator and lets you produce actionable UI.\n\nError shape\n\nThe exact definition lives in src/lib/types/errors.ts.\n\nCLI\n\nNeuroLink does not ship a dedicated check-credentials CLI command. The closest operator-facing command is:\n\nFor programmatic credential validation in scripts, call the SDK directly:\n\nCombining with Provider Fallback\n\nThe most common pattern: validate at boot, surface configuration errors to operators, then let runtime requests use providerFallback for the model-access denial cases that survive validation.\n\nSetup Wizard Pattern\n\nPer-call credential overrides are also supported on generate() / stream() — see Per-Request Credentials.\n\nRelated\nProvider Fallback — catch ModelAccessDeniedError and switch to an allowed model\nPer-Request Credentials — pass credentials per-call or per-instance\nProvider Setup — initial configuration for all 44 providers\nTroubleshooting — error reference and resolution guide","hierarchy":{"lvl0":"Features","lvl1":"Credential Validation","lvl2":"","lvl3":""}},
3300
3300
  {"objectID":"46449341ad79be4d2645e786dd7bd9c493acc4851ef0e6582435a5f053c6e789","title":"sdk.checkCredentials()","url":"/docs/features/credential-validation#sdkcheckcredentials","content":"Probes a single provider with a real 1-token generation call (maxTokens: 16, tools disabled) and returns a structured status. The signature is:\n\nImplementation lives in src/lib/neurolink.ts.","hierarchy":{"lvl0":"Features","lvl1":"Credential Validation","lvl2":"sdk.checkCredentials()","lvl3":""}},
3301
3301
  {"objectID":"187bc45a1141451913afe4ba39720fd9f5a222b7ee69cd6f1f37ce8c7246c813","title":"Status reference","url":"/docs/features/credential-validation#status-reference","content":"| status | Meaning |\n| ----------- | --------------------------------------------------------------------- |\n| \"ok\" | Credentials valid; the probe succeeded. |\n| \"missing\" | Required env vars / per-call credentials are not set. |\n| \"expired\" | OAuth token / temporary credentials have expired. |\n| \"denied\" | Model access denied — see ModelAccessDeniedError below. |\n| \"network\" | Network failure reaching the provider (DNS, TLS, timeout). |\n| \"unknown\" | An unclassified provider error; inspect detail for the raw message. |\n\ndetail is a short human-readable message suitable for surfacing in a setup UI or log line.","hierarchy":{"lvl0":"Features","lvl1":"Credential Validation","lvl2":"Status reference","lvl3":""}},
3302
3302
  {"objectID":"8c297800d157544564db0f6c8fb6e86b59ed703da1e3f089cc9117988944c911","title":"Probing several providers","url":"/docs/features/credential-validation#probing-several-providers","content":"checkCredentials() validates one provider per call. To check multiple providers, run them concurrently:","hierarchy":{"lvl0":"Features","lvl1":"Credential Validation","lvl2":"Probing several providers","lvl3":""}},
@@ -3306,7 +3306,7 @@
3306
3306
  {"objectID":"46bf176f46254d8491bfe69cc68ccb606df5782f8cfccf6cad3d54b6c3da7897","title":"Check provider connectivity / status","url":"/docs/features/credential-validation#check-provider-connectivity-status","content":"npx @juspay/neurolink status\ntypescript\nconst r = await neurolink.checkCredentials({ provider });\nprocess.exit(r.status === \"ok\" ? 0 : 1);\n`","hierarchy":{"lvl0":"Features","lvl1":"Credential Validation","lvl2":"Check provider connectivity / status","lvl3":""}},
3307
3307
  {"objectID":"8c51b1c7b3c37d1429ac1f0ae431c072cb364c1eebb1a9c634115a17ddaafd4d","title":"Combining with Provider Fallback","url":"/docs/features/credential-validation#combining-with-provider-fallback","content":"The most common pattern: validate at boot, surface configuration errors to operators, then let runtime requests use providerFallback for the model-access denial cases that survive validation.","hierarchy":{"lvl0":"Features","lvl1":"Credential Validation","lvl2":"Combining with Provider Fallback","lvl3":""}},
3308
3308
  {"objectID":"563c0e0700562c72770c62d5f532e84fc3ee56570cbf15ac9c6f43228041b77e","title":"Setup Wizard Pattern","url":"/docs/features/credential-validation#setup-wizard-pattern","content":"Per-call credential overrides are also supported on generate() / stream() — see Per-Request Credentials.","hierarchy":{"lvl0":"Features","lvl1":"Credential Validation","lvl2":"Setup Wizard Pattern","lvl3":""}},
3309
- {"objectID":"e9c0ee2866d85055fb3a31d68362756a3fde836cb8ef78eb471ccc19c5c62443","title":"Related","url":"/docs/features/credential-validation#related","content":"Provider Fallback — catch ModelAccessDeniedError and switch to an allowed model\nPer-Request Credentials — pass credentials per-call or per-instance\nProvider Setup — initial configuration for all 40 providers\nTroubleshooting — error reference and resolution guide","hierarchy":{"lvl0":"Features","lvl1":"Credential Validation","lvl2":"Related","lvl3":""}},
3309
+ {"objectID":"e9c0ee2866d85055fb3a31d68362756a3fde836cb8ef78eb471ccc19c5c62443","title":"Related","url":"/docs/features/credential-validation#related","content":"Provider Fallback — catch ModelAccessDeniedError and switch to an allowed model\nPer-Request Credentials — pass credentials per-call or per-instance\nProvider Setup — initial configuration for all 44 providers\nTroubleshooting — error reference and resolution guide","hierarchy":{"lvl0":"Features","lvl1":"Credential Validation","lvl2":"Related","lvl3":""}},
3310
3310
  {"objectID":"0be17b4592b7a6e40fdc4145e101660a63d7b276620da4433ada9e9ffd24d7ed","title":"CSV File Support","url":"/docs/features/csv-support","content":"CSV File Support\n\nNeuroLink provides seamless CSV file support as a multimodal input type - attach CSV files directly to your AI prompts for data analysis, insights, and processing.\n\nOverview\n\nCSV support in NeuroLink works just like image support - it's a multimodal input that gets automatically processed and injected into your prompts. The system:\nAuto-detects CSV files using FileDetector (magic bytes, MIME types, extensions, content heuristics)\nParses CSV data using a streaming parser for memory efficiency\nFormats CSV content into LLM-optimized text (markdown/json)\nInjects formatted CSV data into your prompt text\nWorks with ALL AI providers (not limited to vision models)\n\nDelimiter auto-detection: the delimiter is detected from the content (comma, tab / .tsv, semicolon, or pipe) — so tab- and semicolon-separated files parse into the correct columns instead of collapsing into one. Comma remains the default on ambiguity, and parsing is RFC-4180 quote-aware (a delimiter inside a \"…\" quoted field, e.g. \"Smith, John\", does not split the field). The detected delimiter is reported in metadata.detectedDelimiter.\n\nQuick Start\n\nSDK Usage\n\nCLI Usage\n\nAPI Reference\n\nGenerateOptions\n\nCSV Input Types\n\nCSV files can be provided as:\nFile paths: \"./data.csv\" or \"/absolute/path/data.csv\"\nURLs: \"https://example.com/data.csv\"\nBuffers: Buffer.from(\"name,age\\nAlice,30\")\nData URIs: \"data:text/csv;base64,...\"\n\nCSV Processing Options\n\nmaxRows\n\nLimit the number of rows processed (default: 1000). Useful for large datasets.\n\nformatStyle\n\nControl how CSV data is formatted for the LLM:\nraw (default, RECOMMENDED): Original CSV format with proper escaping\nBest for large files and minimal token usage\nPreserves original structure\nHandles commas, quotes, newlines correctly\nFile size stays minimal (63KB stays 63KB, not 199KB)\njson: JSON array format\nBest for structured data processing\nEasy to parse programmatically\nHigher token usage (can expand 3x for large files)\nmarkdown: Markdown table format\nBest for small datasets (\\ (#384)\n- **Token limits**: Large CSV files may exceed provider token limits\n- **Streaming**: CSV content is parsed and formatted before sending (not streamed to LLM)\n\n## Error Handling\n\n\n\n## Related Features\n\n- **[Office Documents](/docs/features/office-documents)**: DOCX, PPTX, XLSX processing\n- **[PDF Support](/docs/features/pdf-support)**: PDF document processing\n- **Image Support**: Similar multimodal input for images\n- **File Detection**: Auto-detect file types with confidence scores\n- **Memory Efficient**: Streaming parser for large files\n- **Provider Agnostic**: Works with all AI providers\n- **CLI Integration**: Full CLI support with options\n\n## Summary\n\n- CSV support is **multimodal input** (like images)\n- Use csvFiles array or files array (auto-detect)\n- Customize with csvOptions (maxRows, formatStyle, includeHeaders)\n- Works with **ALL providers** (not just vision models)\n- **Memory efficient** streaming parser\n- CLI support with --csv, --file, --csv-max-rows, --csv-format`\nOnly types exposed from package (not classes)","hierarchy":{"lvl0":"Features","lvl1":"CSV File Support","lvl2":"","lvl3":""}},
3311
3311
  {"objectID":"50558bfd6450513e97d26d0c5dec26864d0a62867d9822b5b8d676671c120203","title":"CSV File Support","url":"/docs/features/csv-support#csv-file-support","content":"NeuroLink provides seamless CSV file support as a multimodal input type - attach CSV files directly to your AI prompts for data analysis, insights, and processing.","hierarchy":{"lvl0":"Features","lvl1":"CSV File Support","lvl2":"CSV File Support","lvl3":""}},
3312
3312
  {"objectID":"0b2183adf9e9cdf34c79d946245c47fa211c5973595f4ffa43ca19654c7e5183","title":"Overview","url":"/docs/features/csv-support#overview","content":"CSV support in NeuroLink works just like image support - it's a multimodal input that gets automatically processed and injected into your prompts. The system:\nAuto-detects CSV files using FileDetector (magic bytes, MIME types, extensions, content heuristics)\nParses CSV data using a streaming parser for memory efficiency\nFormats CSV content into LLM-optimized text (markdown/json)\nInjects formatted CSV data into your prompt text\nWorks with ALL AI providers (not limited to vision models)\n\nDelimiter auto-detection: the delimiter is detected from the content (comma, tab / .tsv, semicolon, or pipe) — so tab- and semicolon-separated files parse into the correct columns instead of collapsing into one. Comma remains the default on ambiguity, and parsing is RFC-4180 quote-aware (a delimiter inside a \"…\" quoted field, e.g. \"Smith, John\", does not split the field). The detected delimiter is reported in metadata.detectedDelimiter.","hierarchy":{"lvl0":"Features","lvl1":"CSV File Support","lvl2":"Overview","lvl3":""}},
@@ -3558,8 +3558,8 @@
3558
3558
  {"objectID":"a43e81fa4a6c594f8b6b4cfc216db1356d75b3e4ebb54279dd2da7f69001d28f","title":"Latest Features (Q1 2026)","url":"/docs/features#latest-features-q1-2026","content":"| Feature | Description |\n| ---------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| decide Inference Type | A third inference type alongside generate/stream: typed, calibrated boolean/choice/score judgments in one parallel pass — no text. ~400ms, ~$0.00002 per decision. First provider is TypeSafe Jev; Laya, open-weights and self-hosted, is the second. Fail-open: a no-op without a key. |\n| Model Routing with a Decision Model | One round trip answers difficulty, capabilities, risk, context scope and the model pick, with asymmetric confidence bars (0.3 up / 0.6 down). |\n| Model Catalogue | Ranks the 64-model registry as an addition to a host-declared pool, never a replacement. One choice question ranks all N candidates. ","hierarchy":{"lvl0":"Features","lvl1":"Feature Guides","lvl2":"Latest Features (Q1 2026)","lvl3":""}},
3559
3559
  {"objectID":"84c604ce940f85fbe8aa8d94675e4c1dae80b22ede558d58102426598f6a7d06","title":"Core Features (shipped 2025)","url":"/docs/features#core-features-shipped-2025","content":"| Feature | Description |\n| -------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |\n| Image Generation | Generate images from text prompts using Gemini models via Vertex AI or Google AI Studio. |\n| Enterprise HITL | Production-ready HITL with approval workflows, confidence thresholds, and enterprise patterns. |\n| Interactive CLI | AI development environment with loop mode, session variables, and conversation memory. |\n| MCP Tools Showcase | Complete guide to 6 built-in tools and connecting external MCP servers across 6 categories. |\n| Human-in-the-Loop (HITL) | Pause AI tool execution for user approval before risky operations like file deletion or API calls. |\n| Guardrails Middleware | Content filtering, PII detection, and safety checks for AI outputs with zero configuration. |\n| Redis Conversation Export | Export complete session history as JSON for analytics, debugging, and compliance auditing. |\n| Context Compaction | Automatic conversation compression for long-running sessions to stay within token limits. |\n| LiteLLM Integration | Access 100+ AI models from all major providers through unified LiteLLM routing interface. |\n| SageMaker Integration | Deploy and use custom-trained models on AWS SageMaker infrastructure with full control. |","hierarchy":{"lvl0":"Features","lvl1":"Feature Guides","lvl2":"Core Features (shipped 2025)","lvl3":""}},
3560
3560
  {"objectID":"f64aba3e564a8f56064839c33b533971468da990a9cc95d86ceb1e9d13223478","title":"Earlier Core Features (shipped Q3 2025)","url":"/docs/features#earlier-core-features-shipped-q3-2025","content":"| Feature | Description |\n| ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ |\n| Multimodal Chat Experiences | Stream text and images together with automatic provider fallbacks and format conversion. |\n| CSV File Support | Process CSV files for data analysis with automatic format conversion. Works with all providers. |\n| PDF File Support | Process PDF documents for visual analysis and content extraction. Native provider support. |\n| Office Documents | Process DOCX, PPTX, XLSX files for document analysis. Native Bedrock, Vertex, Anthropic support. |\n| Auto Evaluation Engine | Automated quality scoring and metrics export for AI response validation using LLM-as-judge. |\n| CLI Loop Sessions | Persistent interactive mode with conversation memory and session state for prompt engineering. |\n| Regional Streaming Controls | Region-specific model deployment and routing for compliance and latency optimization. |\n| Provider Orchestration Brain | Adaptive provider and model selection with intelligent fallbacks based on task classification. |","hierarchy":{"lvl0":"Features","lvl1":"Feature Guides","lvl2":"Earlier Core Features (shipped Q3 2025)","lvl3":""}},
3561
- {"objectID":"fbd682fc148477639d38ab175c38363d003a1464834e84b2a48d88087d001b91","title":"Platform Capabilities at a Glance","url":"/docs/features#platform-capabilities-at-a-glance","content":"| Category | Features | Documentation |\n| ------------------------ | ------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------- |\n| Provider unification | 40 providers with automatic failover, cost-aware routing, providerFallback policy, modelChain config | Provider Setup |\n| Multimodal pipeline | Stream images + CSV data + PDF documents + Office files across providers with auto-detection for mixed file types. | Multimodal Guide, CSV Support, PDF Support, Office Docs |\n| Voice pipeline | TTS (4 providers) + STT (4 providers) + realtime APIs (OpenAI Realtime, Gemini Live) | TTS Guide, STT Guide, Realtime Services |\n| Quality & governance | Auto-evaluation engine (14 scorers), guardrails middleware, HITL workflows, audit logging | Auto Evaluation, Guardrails, HITL |\n| Memory & context | Per-user condensed memory (S3/Redis/SQLite), Redis session export, 5-stage context compaction | Conversation Memory, Memory, Redis Export |\n| CLI tooling | Loop sessions, setup wizard, config validation, Redis auto-detect, JSON output, TTS/STT flags | CLI Loop, CLI Commands |\n| Enterprise ops | Claude proxy, OTLP observability, OpenObserve dashboard, regional routing,","hierarchy":{"lvl0":"Features","lvl1":"Feature Guides","lvl2":"Platform Capabilities at a Glance","lvl3":""}},
3562
- {"objectID":"71822e016bf07461e8af1f4f98755ff09c6a0af3daac91dc0cc0326dce7f06d1","title":"AI Provider Integration","url":"/docs/features#ai-provider-integration","content":"NeuroLink supports 40 AI providers with unified API access:\n\n| Provider | Key Features | Free Tier | Tool Support | Status | Documentation |\n| --------------------- | ---------------------------------------- | ------------ | ------------ | ---------- | ----------------------------------------------------------------------------------------------------------- |\n| OpenAI | GPT-4o, GPT-4o-mini, o1 models | No | Full | Production | Setup Guide |\n| Anthropic | Claude 4.6, 4.5/4.0 Sonnet, Opus, Haiku | No | Full | Production | Setup Guide, Subscription Guide |\n| Google AI | Gemini 3 Flash/Pro, Gemini 2.5 Flash/Pro | Free Tier | Full | Production | Setup Guide |\n| AWS Bedrock | Claude, Titan, Llama, Nova | No | Full | Production | Setup Guide |\n| Google Vertex | Gemini via GCP | No | Full | Production | Setup Guide |\n| Azure OpenAI | GPT-4, GPT-4o, o1 | No | Full | Production | Setup Guide |\n| LiteLLM | 100+ models unified | Varies | Full | Production | Integration Guide |\n| AWS SageMaker | Custom deployed models | No | Full | Production | Integration Guide |\n| Mistral AI | Mistral Large, Small | Free Tier | Full | Production | Setup Guide ","hierarchy":{"lvl0":"Features","lvl1":"Feature Guides","lvl2":"AI Provider Integration","lvl3":""}},
3561
+ {"objectID":"fbd682fc148477639d38ab175c38363d003a1464834e84b2a48d88087d001b91","title":"Platform Capabilities at a Glance","url":"/docs/features#platform-capabilities-at-a-glance","content":"| Category | Features | Documentation |\n| ------------------------ | ------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------- |\n| Provider unification | 44 providers with automatic failover, cost-aware routing, providerFallback policy, modelChain config | Provider Setup |\n| Multimodal pipeline | Stream images + CSV data + PDF documents + Office files across providers with auto-detection for mixed file types. | Multimodal Guide, CSV Support, PDF Support, Office Docs |\n| Voice pipeline | TTS (6 providers) + STT (4 providers) + realtime APIs (OpenAI Realtime, Gemini Live) | TTS Guide, STT Guide, Realtime Services |\n| Quality & governance | Auto-evaluation engine (14 scorers), guardrails middleware, HITL workflows, audit logging | Auto Evaluation, Guardrails, HITL |\n| Memory & context | Per-user condensed memory (S3/Redis/SQLite), Redis session export, 5-stage context compaction | Conversation Memory, Memory, Redis Export |\n| CLI tooling | Loop sessions, setup wizard, config validation, Redis auto-detect, JSON output, TTS/STT flags | CLI Loop, CLI Commands |\n| Enterprise ops | Claude proxy, OTLP observability, OpenObserve dashboard, regional routing,","hierarchy":{"lvl0":"Features","lvl1":"Feature Guides","lvl2":"Platform Capabilities at a Glance","lvl3":""}},
3562
+ {"objectID":"71822e016bf07461e8af1f4f98755ff09c6a0af3daac91dc0cc0326dce7f06d1","title":"AI Provider Integration","url":"/docs/features#ai-provider-integration","content":"NeuroLink supports 44 AI providers with unified API access:\n\n| Provider | Key Features | Free Tier | Tool Support | Status | Documentation |\n| --------------------- | ---------------------------------------- | ------------ | ------------ | ---------- | ----------------------------------------------------------------------------------------------------------- |\n| OpenAI | GPT-4o, GPT-4o-mini, o1 models | No | Full | Production | Setup Guide |\n| Anthropic | Claude 4.6, 4.5/4.0 Sonnet, Opus, Haiku | No | Full | Production | Setup Guide, Subscription Guide |\n| Google AI | Gemini 3 Flash/Pro, Gemini 2.5 Flash/Pro | Free Tier | Full | Production | Setup Guide |\n| AWS Bedrock | Claude, Titan, Llama, Nova | No | Full | Production | Setup Guide |\n| Google Vertex | Gemini via GCP | No | Full | Production | Setup Guide |\n| Azure OpenAI | GPT-4, GPT-4o, o1 | No | Full | Production | Setup Guide |\n| LiteLLM | 100+ models unified | Varies | Full | Production | Integration Guide |\n| AWS SageMaker | Custom deployed models | No | Full | Production | Integration Guide |\n| Mistral AI | Mistral Large, Small | Free Tier | Full | Production | Setup Guide ","hierarchy":{"lvl0":"Features","lvl1":"Feature Guides","lvl2":"AI Provider Integration","lvl3":""}},
3563
3563
  {"objectID":"a059b5877fe4f99abd8eaef030c84dbbad6788f1b0fb3eda3f13391a49191096","title":"Interactive Setup Wizard","url":"/docs/features#interactive-setup-wizard","content":"NeuroLink includes a revolutionary interactive setup wizard that guides users through provider configuration in 2-3 minutes:\n\n`bash","hierarchy":{"lvl0":"Features","lvl1":"Feature Guides","lvl2":"Interactive Setup Wizard","lvl3":""}},
3564
3564
  {"objectID":"dc28dea0405bc1b4e32ddc4cc74e79ad386f019644e00d8e25b546cab3d7932c","title":"Launch interactive setup wizard","url":"/docs/features#launch-interactive-setup-wizard","content":"npx @juspay/neurolink setup","hierarchy":{"lvl0":"Features","lvl1":"Feature Guides","lvl2":"Launch interactive setup wizard","lvl3":""}},
3565
3565
  {"objectID":"7630f844976b486b7711e43c6398d829d3d93b78d722dd37a872ea08685922d5","title":"Provider-specific guided setup","url":"/docs/features#provider-specific-guided-setup","content":"npx @juspay/neurolink setup --provider openai\nnpx @juspay/neurolink setup --provider bedrock\n\n\n**Wizard Features:**\n\n- Secure credential collection with validation\n- Real-time authentication testing\n- Automatic .env` file creation\nRecommended model selection\nQuick-start command examples\nInteractive provider discovery","hierarchy":{"lvl0":"Features","lvl1":"Feature Guides","lvl2":"Provider-specific guided setup","lvl3":""}},
@@ -4167,7 +4167,7 @@
4167
4167
  {"objectID":"837a97078e3a914aabc16f12fa7cd475fc4211678d735b2f7bb8194367d677ae","title":"modelChain config","url":"/docs/features/provider-fallback#modelchain-config","content":"A simple ordered list of model names. NeuroLink walks the chain on each access-denial.\n\nmodelChain is string[] only — bare model names. There is no support for object entries with provider / baseURL per row. The current provider is preserved across the chain; only the model name changes. If you need to switch providers on denial, use providerFallback and return { provider, model }.","hierarchy":{"lvl0":"Features","lvl1":"Provider Fallback & Model Chains","lvl2":"modelChain config","lvl3":""}},
4168
4168
  {"objectID":"346e7f061d0dd914e6170977bb1eab9e7bf190f7d8fcf6f3d1045cc48d30ba22","title":"Internal no-output fallback (disableInternalFallback, fallbackOnMaxSteps)","url":"/docs/features/provider-fallback#internal-no-output-fallback-disableinternalfallback-fallbackonmaxsteps","content":"Separate from the orchestration above, stream() carries an internal safety\nnet: when the drained stream produced no non-sentinel text, audio, or image\nchunks and recorded no tool calls or tool results, NeuroLink retries the\nrequest once on a fallback route. An audio-only or image-only stream counts\nas real output and does not trigger the retry. The route's provider and\nmodel are resolved independently: the per-call fallbackProvider /\nfallbackModel options each override their matching FALLBACK_PROVIDER /\nFALLBACK_MODEL environment variable, which overrides the corresponding\nmodel-router value. Two per-call knobs control the retry:\ndisableInternalFallback: true — turn the safety net off entirely. The\n Claude proxy does this so the proxy itself can own fallback order.\nfallbackOnMaxSteps: false — keep the safety net, but exempt turns that\n ended at your own maxSteps bound. A tool-looping turn that runs out of\n step budget produces no final text, which otherwise looks exactly like a\n failed stream to the no-output check — and the retry spends a second\n provider's tokens to exceed a budget you set deliberately. With this set,\n the capped turn is surfaced as-is and reports\n metadata.stopReason === \"step-cap\" after the stream is drained. Default\n (unset) preserves the retry.\n\ngenerate() has no no-output retry, but the same flag governs its two\ninternal fallbacks: the static provider-priority walk that runs when no\nprovider was requested, and the catalog model-fallback walk a provider performs\nwhen the vendor rejects its model as invalid. With\ndisableInternalFallback: true, generate() tries exactly one provider from\nthat static list and surfaces an invalid model as the classified\nInvalidModelError after a single request. A configured ModelPool,\nproviderFallback and modelChain are your own fallback and are unaffected on\neither path: a pool still walks its own candidates.","hierarchy":{"lvl0":"Features","lvl1":"Provider Fallback & Model Chains","lvl2":"Internal no-output fallback (disableInternalFallback, fallbackOnMaxSteps)","lvl3":""}},
4169
4169
  {"objectID":"f7eb454e7f6880f1dcb42959f03030932f2ccf5c41ff8317f04fe17de24d2b07","title":"Observability","url":"/docs/features/provider-fallback#observability","content":"When the orchestrator advances past an access-denial, it emits a model.fallback event on the SDK's internal emitter:\n\nThe same event also flows through the OTEL/Langfuse pipeline, so you can monitor fallback frequency in production without subscribing to the in-process emitter.","hierarchy":{"lvl0":"Features","lvl1":"Provider Fallback & Model Chains","lvl2":"Observability","lvl3":""}},
4170
- {"objectID":"9c51b871367ba3a45cb97dd7259ba5717cc5cc072f50c091b63c661c7a470b7d","title":"Related","url":"/docs/features/provider-fallback#related","content":"Credential Validation — sdk.checkCredentials() and the typed ModelAccessDeniedError\nReal-time Voice Services — fallback also applies to realtime sessions on access denial\nProvider Setup — configuring all 40 providers\nObservability — wiring model.fallback events into your monitoring stack","hierarchy":{"lvl0":"Features","lvl1":"Provider Fallback & Model Chains","lvl2":"Related","lvl3":""}},
4170
+ {"objectID":"9c51b871367ba3a45cb97dd7259ba5717cc5cc072f50c091b63c661c7a470b7d","title":"Related","url":"/docs/features/provider-fallback#related","content":"Credential Validation — sdk.checkCredentials() and the typed ModelAccessDeniedError\nReal-time Voice Services — fallback also applies to realtime sessions on access denial\nProvider Setup — configuring all 44 providers\nObservability — wiring model.fallback events into your monitoring stack","hierarchy":{"lvl0":"Features","lvl1":"Provider Fallback & Model Chains","lvl2":"Related","lvl3":""}},
4171
4171
  {"objectID":"3b5d0122d0762f5202d83a9db0e7430a5ae248ba21c1277692dc84d45ff346bf","title":"Provider Orchestration Brain","url":"/docs/features/provider-orchestration","content":"Provider Orchestration Brain\n\nThe orchestration engine introduced in 7.42.0 pairs a task classifier with a provider/model router. When enabled, NeuroLink inspects each prompt, chooses the most suitable provider/model based on capabilities and availability, and carries that preference through the fallback chain.\n\nHighlights\nBinary task classifier – categorises prompts (analysis vs. creative, etc.) before routing.\nModel router – selects provider/model pairs, honouring local providers like Ollama when available.\nProvider validation – confirms credentials/availability before committing to the route.\nNon-invasive – orchestration augments requests via context so standard fallback logic still applies.\n\nEnabling Orchestration (SDK)\nEnable orchestration for automatic provider/model selection\nTask classifier analyzes prompt to determine best provider\nLog routing decisions to analytics\nValidate routed provider meets quality expectations\nSee which provider/model was selected by the router\n\nThe router adds __orchestratedPreferredProvider to the request context so analytics and downstream logging capture routing decisions.\n\nTuning the Router\nEnvironment awareness – orchestration only routes to providers that pass hasProviderEnvVars, so missing API keys fall back gracefully.\nOllama detection – checks http://localhost:11434/api/tags to verify local models before selection.\nConfidence scores – ModelRouter.route returns confidence and reasoning. Enable debug logs (export NEUROLINK_DEBUG=true) to inspect decisions.\nManual overrides – specifying provider or model bypasses orchestration for that call.\n\nWorking with the CLI\n\nCLI sessions instantiate NeuroLink without orchestration by default. To experiment with the router from the CLI:\nRun Node.js one-liner from CLI\nEnable orchestration in SDK mode\nLet router select best provider for comparison task\nOutput selected provider and model\n\nFuture CLI releases will surface a --enable-orchestration flag; until then keep orchestration for SDK/server workloads.\n\nBest Practices\n\nEnable orchestration in development to understand routing patterns, then pin provider or model in production for predictable behavior. Orchestration is ideal for exploratory workflows; explicit selection ensures consistency in critical paths.\n\nThe default fallback order prioritizes self-hosted providers — LiteLLM and Ollama — before cloud providers. This avoids external API costs and rate limits during development. Ensure your local providers are running to take advantage of this local-first routing.\n\nPair orchestration with evaluation to verify the routed provider meets quality expectations.\nMaintain provider credentials for all potential routes; orchestration skips providers missing keys.\nMonitor debug logs in staging to understand how tasks map to providers before rolling out widely.\nCombine with regional controls (region option) when routing to cloud-specific providers such as Vertex or Bedrock.\n\nTroubleshooting\n\n| Symptom | Action |\n| ----------------------------------- | -------------------------------------------------------------------------------------------------- |\n| Router always returns empty context | Ensure enableOrchestration: true and prompts contain text. |\n| Routed provider never used | Check credentials via neurolink status; orchestration only hints the preferred provider. |\n| Ollama route ignored | Confirm Ollama server running at http://localhost:11434 and model tag matches router suggestion. |\n| Fallback cycles between providers | Pin provider/model explicitly or reduce orchestrated confidence thresholds (see ModelRouter). |\n\nModelPool — failover with per-member cooldown\n\nOrchestration above hints a provider. ModelPool is the separate, explicit\nmechanism that owns selection: you hand it an ordered list of\nprovider/model/region members and it tries them in turn, taking a failed member\nout of rotation for a while rather than retrying it on every call.\n\nFile: src/lib/routing/modelPool.ts · Types: src/lib/types/modelPool.ts\n\nstrategy picks among the members that are currently available: priority\nalways takes the first, round-robin rotates, weighted prefers higher\nweight.\n\nCooldown is classified, not uniform\n\nA failure is classified into a ProviderErrorClass — rate_limit, auth,\ncontext_window, server, network, unknown — and the class decides how\nlong the member sits out:\n\n| Class | Cooldown |\n| -------------------------------------------- | ----------------------------------------- |\n| rate_limit, server, network, unknown | cooldownMs (default 60s) |\n| auth, context_window | permanent for the life of the process |\n\n\"Permanent\" is literal: PERMANENT_COOLDOWN_MS is ten years. The reasoning is\nthat neither ","hierarchy":{"lvl0":"Features","lvl1":"Provider Orchestration Brain","lvl2":"","lvl3":""}},
4172
4172
  {"objectID":"4f317fa66a6678bfaf848dc5b575809a95b82ded04ae00dab6cb107a05d97723","title":"Provider Orchestration Brain","url":"/docs/features/provider-orchestration#provider-orchestration-brain","content":"The orchestration engine introduced in 7.42.0 pairs a task classifier with a provider/model router. When enabled, NeuroLink inspects each prompt, chooses the most suitable provider/model based on capabilities and availability, and carries that preference through the fallback chain.","hierarchy":{"lvl0":"Features","lvl1":"Provider Orchestration Brain","lvl2":"Provider Orchestration Brain","lvl3":""}},
4173
4173
  {"objectID":"bad00a4fdf2c1282d34f035fbae43b10d1cb83f5a5ebc20a6496dfeadf76f6c3","title":"Highlights","url":"/docs/features/provider-orchestration#highlights","content":"Binary task classifier – categorises prompts (analysis vs. creative, etc.) before routing.\nModel router – selects provider/model pairs, honouring local providers like Ollama when available.\nProvider validation – confirms credentials/availability before committing to the route.\nNon-invasive – orchestration augments requests via context so standard fallback logic still applies.","hierarchy":{"lvl0":"Features","lvl1":"Provider Orchestration Brain","lvl2":"Highlights","lvl3":""}},
@@ -4315,7 +4315,7 @@
4315
4315
  {"objectID":"4f7347e1213c98df50781c6e08637edf26a9230b6cde930cb8d61cdaac35743f","title":"Log specific components","url":"/docs/features/rag#log-specific-components","content":"DEBUG=neurolink:rag:chunker pnpm exec tsx your-script.ts\nDEBUG=neurolink:rag:reranker pnpm exec tsx your-script.ts\nDEBUG=neurolink:rag:hybrid pnpm exec tsx your-script.ts\n`","hierarchy":{"lvl0":"Features","lvl1":"RAG Document Processing Guide","lvl2":"Log specific components","lvl3":""}},
4316
4316
  {"objectID":"79ce1d456fd4fd9c06bf8aab0a9244c950872cdea1eb786fbed8c98444e51377","title":"Core Exports","url":"/docs/features/rag#core-exports","content":"Document Processing:\nloadDocument(path) - Load a single document\nloadDocuments(paths) - Load multiple documents\nMDocument - Fluent document processing class\nprocessDocument(text, options) - Process text through chunking and metadata extraction\n\nChunking:\ncreateChunker(strategy, config) - Create a chunker instance\nChunkerFactory - Factory for chunker creation\nChunkerRegistry - Registry with all chunker implementations\ngetAvailableStrategies() - List available chunking strategies\ngetRecommendedStrategy(contentType) - Get recommended strategy for content type\n\nReranking:\ncreateReranker(type, config) - Create a reranker instance\nRerankerFactory - Factory for reranker creation\nRerankerRegistry - Registry with all reranker implementations\ngetAvailableRerankerTypes() - List available reranker types\nrerank(results, query, model) - Direct reranking function\nbatchRerank(results, query, options) - Batch reranking\n\nRetrieval:\ncreateHybridSearch(config) - Create hybrid search instance\nInMemoryBM25Index - In-memory BM25 index\nInMemoryVectorStore - In-memory vector store\nreciprocalRankFusion(rankings, k) - RRF score fusion\nlinearCombination(vectorScores, bm25Scores, alpha) - Linear score fusion\ncreateVectorQueryTool(vectorStore, options) - Create vector query tool\n\nMetadata:\ncreateMetadataExtractor(type, config) - Create metadata extractor\nLLMMetadataExtractor - LLM-powered extractor class\nextractMetadata(chunks, params) - Extract metadata from chunks\n\nPipeline:\nRAGPipeline - Full RAG pipeline class\ncreateRAGPipeline(config) - Create pipeline instance\nassembleContext(chunks, options) - Assemble context from chunks\nformatContextWithCitations(chunks, format) - Format with citations\n\nResilience:\nRAGCircuitBreaker - Circuit breaker pattern for RAG operations\nRAGRetryHandler - Retry with exponential backoff and jitter\n\nTypes:\nChunk, ChunkMetadata, ChunkerConfig\nReranker, RerankerConfig, RerankerType\nHybridSearchOptions, BM25Config\nRAGPipelineConfig, RAGResponse\nMetadataExtractor, Metad","hierarchy":{"lvl0":"Features","lvl1":"RAG Document Processing Guide","lvl2":"Core Exports","lvl3":""}},
4317
4317
  {"objectID":"a5a323f35e894680ca74c75bd4c91f4ed7a1a3f8f4783bc1cef0d6a2c738a4d7","title":"See Also","url":"/docs/features/rag#see-also","content":"RAG Configuration Guide - Detailed configuration reference\nRAG Testing Guide - Testing RAG pipelines\nObservability Guide - Tracing and monitoring\nGuardrails Guide - Input/output validation\nVector Store Integrations - Production vector stores","hierarchy":{"lvl0":"Features","lvl1":"RAG Document Processing Guide","lvl2":"See Also","lvl3":""}},
4318
- {"objectID":"8520c68d4d7a4320716d52b9cc0ac0f75a1ce3eafa30ad50b9f196f7d2a4e49c","title":"Real-time Voice Services","url":"/docs/features/real-time-services","content":"NeuroLink integrates the two major realtime voice APIs behind a single, provider-agnostic interface: OpenAI Realtime (openai-realtime) and Google Gemini Live (gemini-live). These let you build full-duplex voice agents where audio streams in and out simultaneously, with the model responding mid-utterance and calling tools in-flight.\n\nRealtime voice is exposed through the RealtimeProcessor static class (not a method on the NeuroLink instance). For non-realtime synthesis and transcription, see the TTS Guide and STT Guide.\n\nOverview\n\n| Capability | openai-realtime | gemini-live |\n| -------------- | ------------------------------- | ------------------------------- |\n| Provider value | \"openai-realtime\" | \"gemini-live\" |\n| Transport | WebSocket | WebSocket / WebRTC |\n| Modalities | audio in/out, text in/out | audio in/out, text, video |\n| Tool calls | Yes (via onFunctionCall) | Yes (via onFunctionCall) |\n| Interruption | Server-side VAD + manual cancel | Native barge-in + manual cancel |\n\nBoth APIs support concurrent audio input and output streams, so the user can interrupt the model mid-response and the model can stream audio while still listening for new input.\n\nQuick Start (SDK)\n\nThe RealtimeProcessor is a static class — there is no new RealtimeProcessor() and no neurolink.openRealtimeSession(...) method. Connect with RealtimeProcessor.connect(provider, config, handlers):\n\nThe handler shape is provider-agnostic: the same RealtimeEventHandlers object works across both providers, so you can switch with a single string change.\n\nEvent handler reference\n\nQuick Start (CLI)\n\nNeuroLink does not ship a neurolink voice realtime interactive CLI. Instead, the realtime voice server is exposed via:\n\nConnect a browser/mobile client to ws://localhost:8081/voice to drive the session. The server bridges the client to the chosen provider (configured via env vars and per-session messages) and forwards events bidirectionally.\n\nThe TTS and STT flags on generate / stream (e.g. --tts, --stt, --input-audio) are for non-realtime synthesis and transcription — see TTS and STT.\n\nSelf-hosted Realtime Voice Server\n\nFor multi-tenant deployments — voice bots, IVR-style applications, in-app voice features — NeuroLink ships a real-time voice agent server. It bridges browser/mobile clients to provider realtime APIs with session management, observability, and tool routing.\n\nNote: the server is a function export (startVoiceServer), not a NeuroLinkVoiceServer class. To run it from the CLI, prefer npx @juspay/neurolink serve voice --port 8081.\n\nThe server emits OTEL spans + Langfuse traces per session, supports HITL approvals on tool calls, and can be deployed standalone or behind your own gateway.\n\nProvider Selection\n\n| Use case | Recommended provider |\n| --------------------------------------------------------- | ----------------------------------------------------- |\n| English-first, broad voice catalog, GPT-4o reasoning | openai-realtime |\n| Multilingual, video input, lowest latency in many regions | gemini-live |\n| Customer support voice bots with structured tool calls | openai-realtime (more deterministic function calls) |\n| In-app voice search / multimodal queries | gemini-live |\n\nEither can be wrapped behind providerFallback so a model-access denial automatically falls through to the alternate model. See Provider Fallback — note that the orchestrator only triggers on access-denied errors, not on rate limits or generic failures.\n\nTool Calls Inside Realtime Sessions\n\nBoth providers can call functions registered with the realtime session. Use the onFunctionCall handler (not onToolCall — that name is reserved for the streaming-text API):\n\nWhen HITL middleware is wired in front of the function-call handler, sensitive operations (e.g. cancelOrder, chargeCard) pause for human approval before responding back into the realtime stream.\n\nObservability\n\nRealtime sessions emit:\nsession:start, session:end events with duration + token usage\nPer-utterance transcript:user, transcript:assistant events\ntool:call, tool:result events\naudio:in:bytes, audio:out:bytes for bandwidth tracking\n\nThese flow into the same OTEL/Langfuse pipeline as text generation. See the Observability Guide.\n\nStatus & Inspection\n\nRelated\nTTS Guide — non-realtime text-to-speech (5 providers)\nSTT Guide — transcription (4 providers)\nVoice Agent Guide — building voice agents end-to-end\nProvider Fallback — failover between models on access denial\nObservability — wiring fallback events into your monitoring stack","hierarchy":{"lvl0":"Features","lvl1":"Real-time Voice Services","lvl2":"","lvl3":""}},
4318
+ {"objectID":"8520c68d4d7a4320716d52b9cc0ac0f75a1ce3eafa30ad50b9f196f7d2a4e49c","title":"Real-time Voice Services","url":"/docs/features/real-time-services","content":"NeuroLink integrates the two major realtime voice APIs behind a single, provider-agnostic interface: OpenAI Realtime (openai-realtime) and Google Gemini Live (gemini-live). These let you build full-duplex voice agents where audio streams in and out simultaneously, with the model responding mid-utterance and calling tools in-flight.\n\nRealtime voice is exposed through the RealtimeProcessor static class (not a method on the NeuroLink instance). For non-realtime synthesis and transcription, see the TTS Guide and STT Guide.\n\nOverview\n\n| Capability | openai-realtime | gemini-live |\n| -------------- | ------------------------------- | ------------------------------- |\n| Provider value | \"openai-realtime\" | \"gemini-live\" |\n| Transport | WebSocket | WebSocket / WebRTC |\n| Modalities | audio in/out, text in/out | audio in/out, text, video |\n| Tool calls | Yes (via onFunctionCall) | Yes (via onFunctionCall) |\n| Interruption | Server-side VAD + manual cancel | Native barge-in + manual cancel |\n\nBoth APIs support concurrent audio input and output streams, so the user can interrupt the model mid-response and the model can stream audio while still listening for new input.\n\nQuick Start (SDK)\n\nThe RealtimeProcessor is a static class — there is no new RealtimeProcessor() and no neurolink.openRealtimeSession(...) method. Connect with RealtimeProcessor.connect(provider, config, handlers):\n\nThe handler shape is provider-agnostic: the same RealtimeEventHandlers object works across both providers, so you can switch with a single string change.\n\nEvent handler reference\n\nQuick Start (CLI)\n\nNeuroLink does not ship a neurolink voice realtime interactive CLI. Instead, the realtime voice server is exposed via:\n\nConnect a browser/mobile client to ws://localhost:8081/voice to drive the session. The server bridges the client to the chosen provider (configured via env vars and per-session messages) and forwards events bidirectionally.\n\nThe TTS and STT flags on generate / stream (e.g. --tts, --stt, --input-audio) are for non-realtime synthesis and transcription — see TTS and STT.\n\nSelf-hosted Realtime Voice Server\n\nFor multi-tenant deployments — voice bots, IVR-style applications, in-app voice features — NeuroLink ships a real-time voice agent server. It bridges browser/mobile clients to provider realtime APIs with session management, observability, and tool routing.\n\nNote: the server is a function export (startVoiceServer), not a NeuroLinkVoiceServer class. To run it from the CLI, prefer npx @juspay/neurolink serve voice --port 8081.\n\nThe server emits OTEL spans + Langfuse traces per session, supports HITL approvals on tool calls, and can be deployed standalone or behind your own gateway.\n\nProvider Selection\n\n| Use case | Recommended provider |\n| --------------------------------------------------------- | ----------------------------------------------------- |\n| English-first, broad voice catalog, GPT-4o reasoning | openai-realtime |\n| Multilingual, video input, lowest latency in many regions | gemini-live |\n| Customer support voice bots with structured tool calls | openai-realtime (more deterministic function calls) |\n| In-app voice search / multimodal queries | gemini-live |\n\nEither can be wrapped behind providerFallback so a model-access denial automatically falls through to the alternate model. See Provider Fallback — note that the orchestrator only triggers on access-denied errors, not on rate limits or generic failures.\n\nTool Calls Inside Realtime Sessions\n\nBoth providers can call functions registered with the realtime session. Use the onFunctionCall handler (not onToolCall — that name is reserved for the streaming-text API):\n\nWhen HITL middleware is wired in front of the function-call handler, sensitive operations (e.g. cancelOrder, chargeCard) pause for human approval before responding back into the realtime stream.\n\nObservability\n\nRealtime sessions emit:\nsession:start, session:end events with duration + token usage\nPer-utterance transcript:user, transcript:assistant events\ntool:call, tool:result events\naudio:in:bytes, audio:out:bytes for bandwidth tracking\n\nThese flow into the same OTEL/Langfuse pipeline as text generation. See the Observability Guide.\n\nStatus & Inspection\n\nRelated\nTTS Guide — non-realtime text-to-speech (6 providers)\nSTT Guide — transcription (4 providers)\nVoice Agent Guide — building voice agents end-to-end\nProvider Fallback — failover between models on access denial\nObservability — wiring fallback events into your monitoring stack","hierarchy":{"lvl0":"Features","lvl1":"Real-time Voice Services","lvl2":"","lvl3":""}},
4319
4319
  {"objectID":"87b8bb1f37916fade5b273a6037c4aedf9a1a2e425352b238a961c192b64e7ea","title":"Overview","url":"/docs/features/real-time-services#overview","content":"| Capability | openai-realtime | gemini-live |\n| -------------- | ------------------------------- | ------------------------------- |\n| Provider value | \"openai-realtime\" | \"gemini-live\" |\n| Transport | WebSocket | WebSocket / WebRTC |\n| Modalities | audio in/out, text in/out | audio in/out, text, video |\n| Tool calls | Yes (via onFunctionCall) | Yes (via onFunctionCall) |\n| Interruption | Server-side VAD + manual cancel | Native barge-in + manual cancel |\n\nBoth APIs support concurrent audio input and output streams, so the user can interrupt the model mid-response and the model can stream audio while still listening for new input.","hierarchy":{"lvl0":"Features","lvl1":"Real-time Voice Services","lvl2":"Overview","lvl3":""}},
4320
4320
  {"objectID":"e67429fee6cb4d4138a61d5d6377ce42f05311ca590c7e2af4d5f67ed9937e00","title":"Quick Start (SDK)","url":"/docs/features/real-time-services#quick-start-sdk","content":"The RealtimeProcessor is a static class — there is no new RealtimeProcessor() and no neurolink.openRealtimeSession(...) method. Connect with RealtimeProcessor.connect(provider, config, handlers):\n\nThe handler shape is provider-agnostic: the same RealtimeEventHandlers object works across both providers, so you can switch with a single string change.","hierarchy":{"lvl0":"Features","lvl1":"Real-time Voice Services","lvl2":"Quick Start (SDK)","lvl3":""}},
4321
4321
  {"objectID":"908a71813f0c74c8d299bb8054a7b1bda254ec6d642e6fe6ccf8bd8e5eab09bf","title":"Quick Start (CLI)","url":"/docs/features/real-time-services#quick-start-cli","content":"NeuroLink does not ship a neurolink voice realtime interactive CLI. Instead, the realtime voice server is exposed via:\n\n`bash","hierarchy":{"lvl0":"Features","lvl1":"Real-time Voice Services","lvl2":"Quick Start (CLI)","lvl3":""}},
@@ -4325,7 +4325,7 @@
4325
4325
  {"objectID":"bd64662bc081839e65fa0142f0f05090121ed145e2df85dc04bc4da3eedad07d","title":"Provider Selection","url":"/docs/features/real-time-services#provider-selection","content":"| Use case | Recommended provider |\n| --------------------------------------------------------- | ----------------------------------------------------- |\n| English-first, broad voice catalog, GPT-4o reasoning | openai-realtime |\n| Multilingual, video input, lowest latency in many regions | gemini-live |\n| Customer support voice bots with structured tool calls | openai-realtime (more deterministic function calls) |\n| In-app voice search / multimodal queries | gemini-live |\n\nEither can be wrapped behind providerFallback so a model-access denial automatically falls through to the alternate model. See Provider Fallback — note that the orchestrator only triggers on access-denied errors, not on rate limits or generic failures.","hierarchy":{"lvl0":"Features","lvl1":"Real-time Voice Services","lvl2":"Provider Selection","lvl3":""}},
4326
4326
  {"objectID":"491a5c18055e328dafca470921c76a02c447e8212d99904e7964b0021f3c08ab","title":"Tool Calls Inside Realtime Sessions","url":"/docs/features/real-time-services#tool-calls-inside-realtime-sessions","content":"Both providers can call functions registered with the realtime session. Use the onFunctionCall handler (not onToolCall — that name is reserved for the streaming-text API):\n\nWhen HITL middleware is wired in front of the function-call handler, sensitive operations (e.g. cancelOrder, chargeCard) pause for human approval before responding back into the realtime stream.","hierarchy":{"lvl0":"Features","lvl1":"Real-time Voice Services","lvl2":"Tool Calls Inside Realtime Sessions","lvl3":""}},
4327
4327
  {"objectID":"b245605b86c76d4a79fc9b4399211a7fa803e23fe9dfb682b81c5853af40ae37","title":"Observability","url":"/docs/features/real-time-services#observability","content":"Realtime sessions emit:\nsession:start, session:end events with duration + token usage\nPer-utterance transcript:user, transcript:assistant events\ntool:call, tool:result events\naudio:in:bytes, audio:out:bytes for bandwidth tracking\n\nThese flow into the same OTEL/Langfuse pipeline as text generation. See the Observability Guide.","hierarchy":{"lvl0":"Features","lvl1":"Real-time Voice Services","lvl2":"Observability","lvl3":""}},
4328
- {"objectID":"79f7c7e4a08968822f49966eec00ad060e9551744e022d6e386e411fa82dcbf3","title":"Related","url":"/docs/features/real-time-services#related","content":"TTS Guide — non-realtime text-to-speech (5 providers)\nSTT Guide — transcription (4 providers)\nVoice Agent Guide — building voice agents end-to-end\nProvider Fallback — failover between models on access denial\nObservability — wiring fallback events into your monitoring stack","hierarchy":{"lvl0":"Features","lvl1":"Real-time Voice Services","lvl2":"Related","lvl3":""}},
4328
+ {"objectID":"79f7c7e4a08968822f49966eec00ad060e9551744e022d6e386e411fa82dcbf3","title":"Related","url":"/docs/features/real-time-services#related","content":"TTS Guide — non-realtime text-to-speech (6 providers)\nSTT Guide — transcription (4 providers)\nVoice Agent Guide — building voice agents end-to-end\nProvider Fallback — failover between models on access denial\nObservability — wiring fallback events into your monitoring stack","hierarchy":{"lvl0":"Features","lvl1":"Real-time Voice Services","lvl2":"Related","lvl3":""}},
4329
4329
  {"objectID":"0014305246836065ba661193701dab4ece5d875d209f5d414e93c22d1aee1bb8","title":"Regional Streaming Controls","url":"/docs/features/regional-streaming","content":"Regional Streaming Controls\n\nLatency, compliance, and model availability often depend on which region you call. NeuroLink threads the region parameter through the generate/stream stack so you can target specific data centres when working with providers that expose regional endpoints.\n\nQuick Start\n\nSupported Providers\n\n| Provider | How to Set Region | Defaults |\n| ------------------------ | -------------------------------------------------------------------------- | ----------- |\n| Amazon Bedrock | AWS_REGION env, config init, or request region option | us-east-1 |\n| Amazon SageMaker | SAGEMAKER_DEFAULT_ENDPOINT + AWS_REGION or request region | us-east-1 |\n| Google Vertex AI | GOOGLE_VERTEX_LOCATION / config init / request region | us-east5 |\n| Azure OpenAI | Deployment-specific endpoint; use AZURE_OPENAI_ENDPOINT (region encoded) | — |\n| LiteLLM pass-through | Use LiteLLM server configuration | — |\n\nProviders without native region controls ignore the option safely.\n\nCLI Usage\n\nThe CLI reads region information from configuration profiles or provider environment variables.\n\nRun neurolink config init to persist region defaults per provider.\n\nSDK Usage\n\nStreaming obeys the same option:\n\nOperational Tips\n\nUse regional routing to comply with data sovereignty requirements (GDPR, HIPAA, etc.). Pin the region parameter to ensure AI processing stays within approved geographical boundaries for sensitive workloads.\n\nCo-locate your NeuroLink deployment with your application servers. For example, if your API runs in eu-west-1, set region: \"eu-west-1\" for Bedrock/Vertex calls to minimize cross-region latency penalties.\n\nCompliance – ensure the requested region is enabled for the model (e.g., Anthropic via Vertex only supports us regions).\nLatency – co-locate with your application servers to avoid cross-region penalties.\nFallbacks – when orchestration re-routes to a provider that ignores region, the call completes but logs a warning.\nCredentials – AWS requests still require valid IAM credentials; Vertex needs service account rights in the target location.\n\nTroubleshooting\n\n| Symptom | Fix |\n| -------------------------------------- | -------------------------------------------------------------------------- |\n| Invalid region format | Use standard IDs (us-east-1, asia-northeast1). |\n| Model not available in region | Switch to a supported region or change model (see provider console). |\n| Credential error after region change | Re-run neurolink config init so stored credentials match the new region. |\n| High latency on fallback provider | Disable orchestration or pin a provider/model explicitly. |\n\nRelated Material\nSageMaker Integration Guide\nEnterprise Proxy Setup\nDynamic Models Guide","hierarchy":{"lvl0":"Features","lvl1":"Regional Streaming Controls","lvl2":"","lvl3":""}},
4330
4330
  {"objectID":"29eff126960a1cabee8a710af9d47bf25d5f32f618112140c4cbc7ef000935e8","title":"Regional Streaming Controls","url":"/docs/features/regional-streaming#regional-streaming-controls","content":"Latency, compliance, and model availability often depend on which region you call. NeuroLink threads the region parameter through the generate/stream stack so you can target specific data centres when working with providers that expose regional endpoints.","hierarchy":{"lvl0":"Features","lvl1":"Regional Streaming Controls","lvl2":"Regional Streaming Controls","lvl3":""}},
4331
4331
  {"objectID":"b6a3b8b722fbf7b804f17a2b9f041d82c9457a0a78c61987e23f57ae4f526dbd","title":"Supported Providers","url":"/docs/features/regional-streaming#supported-providers","content":"| Provider | How to Set Region | Defaults |\n| ------------------------ | -------------------------------------------------------------------------- | ----------- |\n| Amazon Bedrock | AWS_REGION env, config init, or request region option | us-east-1 |\n| Amazon SageMaker | SAGEMAKER_DEFAULT_ENDPOINT + AWS_REGION or request region | us-east-1 |\n| Google Vertex AI | GOOGLE_VERTEX_LOCATION / config init / request region | us-east5 |\n| Azure OpenAI | Deployment-specific endpoint; use AZURE_OPENAI_ENDPOINT (region encoded) | — |\n| LiteLLM pass-through | Use LiteLLM server configuration | — |\n\nProviders without native region controls ignore the option safely.","hierarchy":{"lvl0":"Features","lvl1":"Regional Streaming Controls","lvl2":"Supported Providers","lvl3":""}},
@@ -5609,6 +5609,16 @@
5609
5609
  {"objectID":"9d254192d1446a6d2433b439814e2084c26cfc40cf978f2b58ee92d11ad94842","title":"Configuration Reference","url":"/docs/getting-started/providers/flatkey#configuration-reference","content":"| Variable | Required | Description |\n| ---------------------------- | -------- | ----------------------------------------------------------- |\n| OPENAI_COMPATIBLE_BASE_URL | Yes | Flatkey endpoint — https://router.flatkey.ai/v1 |\n| OPENAI_COMPATIBLE_API_KEY | Yes | API key from the console |\n| OPENAI_COMPATIBLE_MODEL | No | Default model; overridable per request |\n\nFlatkey routes to upstream providers, so per-model availability follows the live\ncatalog rather than a fixed list. A machine-readable integration summary is\npublished at https://flatkey.ai/SKILL.md.","hierarchy":{"lvl0":"Getting Started","lvl1":"Flatkey Provider Guide","lvl2":"Configuration Reference","lvl3":""}},
5610
5610
  {"objectID":"550c70ada734bc846e71a11aa4a04f5a7d5c588444eb1013973cd3466274b520","title":"Troubleshooting","url":"/docs/getting-started/providers/flatkey#troubleshooting","content":"401 Unauthorized\nThe key is missing or malformed. Keys start with sk-fk- and are\nissued at https://console.flatkey.ai/keys. Confirm the value is exported in\nthe environment NeuroLink runs in.\n\n404 on chat completions\nCheck that OPENAI_COMPATIBLE_BASE_URL ends with /v1. The gateway follows the\nOpenAI path layout, so the version segment is part of the base URL.\n\nModel not found\nModel IDs must match the live catalog exactly. List what your key can reach:\n\nEmpty or truncated responses\nUpstream providers apply their own limits. Try a different model from the\ncatalog to isolate whether the behaviour is model-specific.","hierarchy":{"lvl0":"Getting Started","lvl1":"Flatkey Provider Guide","lvl2":"Troubleshooting","lvl3":""}},
5611
5611
  {"objectID":"1f92b8bd349af9436446b4060203d2a61b288d38359030bc83db930dceee4076","title":"See Also","url":"/docs/getting-started/providers/flatkey#see-also","content":"OpenAI-Compatible Providers Guide\nOpenRouter Provider Guide\nLiteLLM Provider Guide","hierarchy":{"lvl0":"Getting Started","lvl1":"Flatkey Provider Guide","lvl2":"See Also","lvl3":""}},
5612
+ {"objectID":"b49adfb9356e8bb74d8cd90813f7848391c5bd042cf3f6ce2c741f11cca4e8e1","title":"FriendliAI Provider Guide","url":"/docs/getting-started/providers/friendli","content":"FriendliAI Provider Guide\n\nFriendliAI 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/friendli.json) rather than hand-written code. That\nfile is the source of truth for everything on this page.\n\nKey Facts\nProvider id: friendli\nProtocol: OpenAI-compatible (/chat/completions)\nBase URL: https://api.friendli.ai/serverless/v1\nDefault model: zai-org/GLM-5.3\nModels in catalog: 7\nStreaming: supported\nTool calling: supported (native)\nStructured output: supported — but not combined with tools in one\n request: Friendli rejects tools + response_format together with HTTP\n 422 (\"response_format\" field cannot be set when tools are specified).\n NeuroLink handles this the same way as Groq (isToolsSchemaConflictError):\n it retries the call without response_format.\nEmbeddings: not supported\nBilling: free-tier\nKey format: none declared\nRate limits: tight — pace requests at least 20 seconds apart\n\nQuick Start\nGet an API key\nVisit: https://suite.friendli.ai/ and sign in\nCreate a Personal Access Token for the serverless endpoints\nNew accounts start with trial credit; confirm current billing terms in the console before heavy use\nSet FRIENDLI_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 ⭐ | 1M | no | $1.4 / $4.4 (cached $0.26) | Recommended — the only model in this roster capability-probed end to end (real tool call, SSE streaming, json_object). Heavy internal reasoner via reasoning/reasoning_content — give it a generous maxTokens. Rejects image/video input (HTTP 422). |\n| zai-org/GLM-5.3-Flash | 1M | no | — | Lighter/faster sibling of the default; roster-listed only, not itself capability-probed; fallback. |\n| zai-org/GLM-5.2 | 1M | no | — | Prior GLM generation; roster-listed only; fallback. |\n| zai-org/GLM-5.1 | 1M | no | — | Prior GLM generation; roster-listed only; fallback. |\n| google/gemma-4-31B-it | 1M | no | — | Google Gemma 4 31B instruct-tuned; roster-listed only; fallback. |\n| deepseek-ai/DeepSeek-V3.2 | 1M | no | — | DeepSeek V3.2; roster-listed only; fallback. |\n| MiniMaxAI/MiniMax-M2.5 | 1M | no | — | MiniMax M2.5; roster-listed only; fallback. |\n\nContext window shown is the catalog default of 1,048,576 tokens; the default\nmax output is 131,072 tokens (zai-org/GLM-5.3's documented per-request\noutput ceiling, distinct from the context window).\n\nFallback order when the default is unavailable: zai-org/GLM-5.3-Flash →\nzai-org/GLM-5.2 → zai-org/GLM-5.1 → google/gemma-4-31B-it →\ndeepseek-ai/DeepSeek-V3.2 → MiniMaxAI/MiniMax-M2.5.\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 FriendliAI:\n\n| Probe | Result ","hierarchy":{"lvl0":"Getting Started","lvl1":"FriendliAI Provider Guide","lvl2":"","lvl3":""}},
5613
+ {"objectID":"3fb06fe52ebad07b008fc3e35e116b6189c226a6650eba037def86f1183b305e","title":"FriendliAI Provider Guide","url":"/docs/getting-started/providers/friendli#friendliai-provider-guide","content":"FriendliAI 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/friendli.json) rather than hand-written code. That\nfile is the source of truth for everything on this page.","hierarchy":{"lvl0":"Getting Started","lvl1":"FriendliAI Provider Guide","lvl2":"FriendliAI Provider Guide","lvl3":""}},
5614
+ {"objectID":"901e86d320bbeefec291bde97052ba20256a0e571c5c5e3a8c5348adecead50e","title":"Key Facts","url":"/docs/getting-started/providers/friendli#key-facts","content":"Provider id: friendli\nProtocol: OpenAI-compatible (/chat/completions)\nBase URL: https://api.friendli.ai/serverless/v1\nDefault model: zai-org/GLM-5.3\nModels in catalog: 7\nStreaming: supported\nTool calling: supported (native)\nStructured output: supported — but not combined with tools in one\n request: Friendli rejects tools + response_format together with HTTP\n 422 (\"response_format\" field cannot be set when tools are specified).\n NeuroLink handles this the same way as Groq (isToolsSchemaConflictError):\n it retries the call without response_format.\nEmbeddings: not supported\nBilling: free-tier\nKey format: none declared\nRate limits: tight — pace requests at least 20 seconds apart","hierarchy":{"lvl0":"Getting Started","lvl1":"FriendliAI Provider Guide","lvl2":"Key Facts","lvl3":""}},
5615
+ {"objectID":"3b505650bea29496f59be24689157bff939b626ff4f22ffc51253cb59e72c7d5","title":"1. Get an API key","url":"/docs/getting-started/providers/friendli#1-get-an-api-key","content":"Visit: https://suite.friendli.ai/ and sign in\nCreate a Personal Access Token for the serverless endpoints\nNew accounts start with trial credit; confirm current billing terms in the console before heavy use\nSet FRIENDLI_API_KEY in your .env file","hierarchy":{"lvl0":"Getting Started","lvl1":"FriendliAI Provider Guide","lvl2":"1. Get an API key","lvl3":""}},
5616
+ {"objectID":"e429f8ec995eebc8e5b148f5c505da49f68c8a6d155fa512a8f162266c44b607","title":"3. Use it","url":"/docs/getting-started/providers/friendli#3-use-it","content":"`bash","hierarchy":{"lvl0":"Getting Started","lvl1":"FriendliAI Provider Guide","lvl2":"3. Use it","lvl3":""}},
5617
+ {"objectID":"9f40a517994a669fac5089e4975087ec49eb4a129a0b88f78ee137ca51b6c352","title":"CLI","url":"/docs/getting-started/providers/friendli#cli","content":"npx @juspay/neurolink generate \"Hello\" --provider friendli\ntypescript\nawait neurolink.generate({\n input: { text: \"Hello\" },\n provider: \"friendli\",\n credentials: { friendli: { apiKey: process.env.FRIENDLIAPIKEY } },\n});\n`","hierarchy":{"lvl0":"Getting Started","lvl1":"FriendliAI Provider Guide","lvl2":"CLI","lvl3":""}},
5618
+ {"objectID":"b66c8029693af65986440601e71042fc07bea17a333d634287f211acaaa3b6ad","title":"Models","url":"/docs/getting-started/providers/friendli#models","content":"| Model | Context | Vision | $/M in · out | Notes |\n| --------------------------- | ------- | ------ | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| zai-org/GLM-5.3 ⭐ | 1M | no | $1.4 / $4.4 (cached $0.26) | Recommended — the only model in this roster capability-probed end to end (real tool call, SSE streaming, json_object). Heavy internal reasoner via reasoning/reasoning_content — give it a generous maxTokens. Rejects image/video input (HTTP 422). |\n| zai-org/GLM-5.3-Flash | 1M | no | — | Lighter/faster sibling of the default; roster-listed only, not itself capability-probed; fallback. |\n| zai-org/GLM-5.2 | 1M | no | — | Prior GLM generation; roster-listed only; fallback. |\n| zai-org/GLM-5.1 | 1M | no | — | Prior GLM generation; roster-listed only; fallback. |\n| google/gemma-4-","hierarchy":{"lvl0":"Getting Started","lvl1":"FriendliAI Provider Guide","lvl2":"Models","lvl3":""}},
5619
+ {"objectID":"341bb86e88577c8982f565e3bb49d1faa5c1449e8cd5310b8df239e829efdb9e","title":"Verification status","url":"/docs/getting-started/providers/friendli#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 FriendliAI:\n\n| Probe | Result |\n| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| Roster | authenticated GET /serverless/v1/models, HTTP 200, 2026-09-06 |\n| Auth rejection | HTTP 401, 2026-09-06 ","hierarchy":{"lvl0":"Getting Started","lvl1":"FriendliAI Provider Guide","lvl2":"Verification status","lvl3":""}},
5620
+ {"objectID":"7d5ebae39916c5745bbc01788b7092e2fa3f81495e1375fc9d720eb326bee964","title":"Troubleshooting","url":"/docs/getting-started/providers/friendli#troubleshooting","content":"| Symptom | Cause | Fix |\n| ----------------------------------------- | ---------------------------------------------------------------- | --------------------------------------------------------------------------------- |\n| Invalid Friendli API key | FRIENDLI_API_KEY unset or wrong | Check the key at https://suite.friendli.ai/ |\n| Model not found | The roster changed since 2026-09-06 | Pick a current id from the authenticated /serverless/v1/models roster |\n| Frequent 429s | Friendli's rate limits are tight | Pace requests at least 20 seconds apart and retry |\n| HTTP 422 when tools + schema are both set | Friendli rejects response_format when tools is present | NeuroLink retries automatically without response_format (same handling as Groq) |\n| Empty content at a small maxTokens | zai-org/GLM-5.3 spends its budget on reasoning_content first | Give reasoning prompts a generous maxTokens budget |","hierarchy":{"lvl0":"Getting Started","lvl1":"FriendliAI Provider Guide","lvl2":"Troubleshooting","lvl3":""}},
5621
+ {"objectID":"9a2b3c1a8e2b87f12be59e06d2a131fcba54035f11d0fa25b11030eebc0064f7","title":"See also","url":"/docs/getting-started/providers/friendli#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":"FriendliAI Provider Guide","lvl2":"See also","lvl3":""}},
5612
5622
  {"objectID":"3f4a67c46fcd7980b7a40666e1ec1dcc4a4f71af4691b96f8f3893ccfe3932ab","title":"GMI Cloud Provider Guide","url":"/docs/getting-started/providers/gmicloud","content":"GMI Cloud Provider Guide\n\nGMI Cloud 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/gmicloud.json) rather than hand-written code. That\nfile is the source of truth for everything on this page.\n\nKey Facts\nProvider id: gmicloud (aliases: gmi-cloud)\nProtocol: OpenAI-compatible (/chat/completions)\nBase URL: https://api.gmi-serving.com/v1\nDefault model: MiniMaxAI/MiniMax-M3\nModels in catalog: 1\nStreaming: supported\nTool calling: supported (native)\nStructured output: supported\nEmbeddings: not supported\nBilling: free-tier\nKey format: ^eyJ[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+$\n\nQuick Start\nGet an API key\nVisit: https://console.gmicloud.ai\nSign in and select the Inference service\nCreate an API key; check Console → Inference → Model Hub for current model pricing\nSet GMICLOUD_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| MiniMaxAI/MiniMax-M3 ⭐ | 1M | no | — | MiniMaxAI/MiniMax-M3 — live GMI Cloud-probed model |\n\nFallback order when the default is unavailable: MiniMaxAI/MiniMax-M3.\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 GMI Cloud:\n\n| Probe | Result |\n| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Roster | authenticated GET /v1/models, HTTP 200, 2026-09-03 |\n| Auth rejection | HTTP 401, 2026-09-03 |\n| Live capability sweep | 2026-09-03 — MiniMax-M3 accepted maxcompletiontokens=524288 and rejected 1048576 with an explicit 524288 limit. Structured output: the endpoint ignores responseformat (jsonschema and json_object both return prose with no prompt h |\n\nTroubleshooting\n\n| Symptom | Cause | Fix |\n| --------------------------- | ----------------------------------- | ----------------------------------------------------------------- |\n| Invalid GMI Cloud API key | GMICLOUD_API_KEY unset or wrong | Check the key at https://console.gmicloud.ai |\n| Model not found | The roster changed since 2026-09-03 | Pick a current id; catalog providers retire models without notice |\n\nSee also\nProvider setup overview\nAll providers\nTier-2 onboarding — how this provider's JSON becomes a working integration\nProvider feature compatibility","hierarchy":{"lvl0":"Getting Started","lvl1":"GMI Cloud Provider Guide","lvl2":"","lvl3":""}},
5613
5623
  {"objectID":"1eb70df9354621e43dbd2fef9c02cbba04abccfd67b8519feca9b39bdd2d597a","title":"GMI Cloud Provider Guide","url":"/docs/getting-started/providers/gmicloud#gmi-cloud-provider-guide","content":"GMI Cloud 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/gmicloud.json) rather than hand-written code. That\nfile is the source of truth for everything on this page.","hierarchy":{"lvl0":"Getting Started","lvl1":"GMI Cloud Provider Guide","lvl2":"GMI Cloud Provider Guide","lvl3":""}},
5614
5624
  {"objectID":"9a38090e3834cbc605f4afecb9e69e9519dc7a754b7a63cedf2b06ff6baa2166","title":"Key Facts","url":"/docs/getting-started/providers/gmicloud#key-facts","content":"Provider id: gmicloud (aliases: gmi-cloud)\nProtocol: OpenAI-compatible (/chat/completions)\nBase URL: https://api.gmi-serving.com/v1\nDefault model: MiniMaxAI/MiniMax-M3\nModels in catalog: 1\nStreaming: supported\nTool calling: supported (native)\nStructured output: supported\nEmbeddings: not supported\nBilling: free-tier\nKey format: ^eyJ[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+$","hierarchy":{"lvl0":"Getting Started","lvl1":"GMI Cloud Provider Guide","lvl2":"Key Facts","lvl3":""}},
@@ -5886,10 +5896,13 @@
5886
5896
  {"objectID":"c98403894a115164f29a019817b7f39c93b59623a9854b4575ad06bc5f597320","title":"🧩 Additional Catalog Providers","url":"/docs/getting-started/providers#-additional-catalog-providers","content":"Every provider below is a Tier-2 catalog entry — OpenAI-wire-compatible\nwith no behavioural quirks, so the whole integration is one JSON file under\nsrc/lib/providers/catalog/. Each page is generated from that file, which is\nalso what the CI onboarding gate reads.","hierarchy":{"lvl0":"Getting Started","lvl1":"AI Provider Guides","lvl2":"🧩 Additional Catalog Providers","lvl3":""}},
5887
5897
  {"objectID":"026138da0a559269ecd9f0b2ceb72d9039096e72e064142afb7bfb74a5cb7455","title":"[API Route](/docs/getting-started/providers/api-route)","url":"/docs/getting-started/providers#api-routedocsgetting-startedprovidersapi-route","content":"Claude Sonnet 4.6\n🤖 8 models; default claude-sonnet-4-6 (1M context)\n🛠️ Native tool calling + structured output together\n💳 Free tier available\n✅ Roster verified 2026-09-17 (authenticated GET /v1/models)\n🔑 API key from api-route.com\n🔄 Aliases: apiroute\n\nSetup Guide →","hierarchy":{"lvl0":"Getting Started","lvl1":"AI Provider Guides","lvl2":"[API Route](/docs/getting-started/providers/api-route)","lvl3":""}},
5888
5898
  {"objectID":"85aa65949d959db077347ecf93a4c40ade9ebab4300d4d52c62c702f6929053b","title":"[Baseten](/docs/getting-started/providers/baseten)","url":"/docs/getting-started/providers#basetendocsgetting-startedprovidersbaseten","content":"GLM 5.3 Flash\n🤖 16 models; default zai-org/GLM-5.3-Flash (1M context)\n🛠️ Native tool calling + structured output together\n💳 Free tier available\n✅ Roster verified 2026-09-03 (authenticated GET /v1/models)\n🔑 API key from app.baseten.co\n\nSetup Guide →","hierarchy":{"lvl0":"Getting Started","lvl1":"AI Provider Guides","lvl2":"[Baseten](/docs/getting-started/providers/baseten)","lvl3":""}},
5899
+ {"objectID":"a63f2c06a13bf6cfc44ae46ceeced786bb08ec6a5a641e0603509b440cf7efcf","title":"[Friendli](/docs/getting-started/providers/friendli)","url":"/docs/getting-started/providers#friendlidocsgetting-startedprovidersfriendli","content":"zai-org/GLM-5.3\n🤖 7 models; default zai-org/GLM-5.3 (1M context)\n🛠️ Native tool calling — not combined with structured output in one request (HTTP 422 if both are set)\n💳 Free tier available (rate limits are tight — pace requests 20s+ apart)\n✅ Roster verified 2026-09-06 (authenticated GET /serverless/v1/models)\n🔑 API key from suite.friendli.ai\n\nSetup Guide →","hierarchy":{"lvl0":"Getting Started","lvl1":"AI Provider Guides","lvl2":"[Friendli](/docs/getting-started/providers/friendli)","lvl3":""}},
5889
5900
  {"objectID":"fdc9f56f25cba8b0b60b0fd89937963828fa737546456664bcdd47245f900cd0","title":"[GMI Cloud](/docs/getting-started/providers/gmicloud)","url":"/docs/getting-started/providers#gmi-clouddocsgetting-startedprovidersgmicloud","content":"MiniMaxAI/MiniMax-M3\n🤖 1 model; default MiniMaxAI/MiniMax-M3 (1M context)\n🛠️ Native tool calling + structured output together\n💳 Free tier available\n✅ Roster verified 2026-09-03 (authenticated GET /v1/models)\n🔑 API key from console.gmicloud.ai\n🔄 Aliases: gmi-cloud\n\nSetup Guide →","hierarchy":{"lvl0":"Getting Started","lvl1":"AI Provider Guides","lvl2":"[GMI Cloud](/docs/getting-started/providers/gmicloud)","lvl3":""}},
5890
5901
  {"objectID":"0f0f8be59c9efce329d8139176dc740d6f84e9f72b8309da812d5c8e64737e22","title":"[Inception Labs](/docs/getting-started/providers/inception-labs)","url":"/docs/getting-started/providers#inception-labsdocsgetting-startedprovidersinception-labs","content":"Mercury 2, Inception's enterprise diffusion LLM (dLLM)\n🤖 1 model; default mercury-2 (125K context)\n🛠️ Native tool calling + structured output together\n💳 Free tier available\n✅ Roster verified 2026-09-03 (authenticated GET /v1/models)\n🔑 API key from platform.inceptionlabs.ai/dashboard/api-keys\n🔄 Aliases: inception, mercury\n\nSetup Guide →","hierarchy":{"lvl0":"Getting Started","lvl1":"AI Provider Guides","lvl2":"[Inception Labs](/docs/getting-started/providers/inception-labs)","lvl3":""}},
5891
5902
  {"objectID":"dfc1e288d90bc6cf10773b0570f80c0bc10cb4fd92241534c4a56784dbf04ae1","title":"[io.net Intelligence](/docs/getting-started/providers/io-intelligence)","url":"/docs/getting-started/providers#ionet-intelligencedocsgetting-startedprovidersio-intelligence","content":"Meta: Llama 3.3 70B Instruct\n🤖 34 models; default meta-llama/Llama-3.3-70B-Instruct (125K context)\n🛠️ Native tool calling + structured output together\n💳 Free tier available\n✅ Roster verified 2026-09-03 (authenticated GET /v1/models)\n🔑 API key from ai.io.net\n🔄 Aliases: io-net\n\nSetup Guide →","hierarchy":{"lvl0":"Getting Started","lvl1":"AI Provider Guides","lvl2":"[io.net Intelligence](/docs/getting-started/providers/io-intelligence)","lvl3":""}},
5892
5903
  {"objectID":"f929d1288dab187ffde0a271874a2c339b48ed0bb5ee92d97b7ba338700a4c5d","title":"[Mancer](/docs/getting-started/providers/mancer)","url":"/docs/getting-started/providers#mancerdocsgetting-startedprovidersmancer","content":"DeepSeek V4 Flash\n🤖 10 models; default deepseek-v4-flash (1M context)\n⚠️ No tool calling — text generation and structured output only\n💳 Free tier available\n✅ Roster verified 2026-09-03 (authenticated GET /oai/v1/models; full response retained as evidence/mancer-roster-authenticated.json in the campaign scratchpad and every catalog price/limit machine-checked against it (Mancer re-prices — gpt-oss-120b input moved 0.024 → 0.022 within the day))\n🔑 API key from mancer.tech/dashboard\n🔄 Aliases: mancer-tech\n\nSetup Guide →","hierarchy":{"lvl0":"Getting Started","lvl1":"AI Provider Guides","lvl2":"[Mancer](/docs/getting-started/providers/mancer)","lvl3":""}},
5904
+ {"objectID":"4a9f1215efa688ab3b06a96110094955a704ea8cf9592a88af2ea489890b843d","title":"[Morph](/docs/getting-started/providers/morph)","url":"/docs/getting-started/providers#morphdocsgetting-startedprovidersmorph","content":"Morph v3 Large\n🤖 2 models; default morph-v3-large (262K context)\n⚠️ No tool calling — text generation and structured output only\n💳 Free tier requires a card on file (rate-limited to 5 req/min until added)\n✅ Roster verified 2026-09-05 (authenticated GET /v1/models)\n🔑 API key from morphllm.com/dashboard\n🔄 Aliases: morphllm\n\nSetup Guide →","hierarchy":{"lvl0":"Getting Started","lvl1":"AI Provider Guides","lvl2":"[Morph](/docs/getting-started/providers/morph)","lvl3":""}},
5905
+ {"objectID":"fcfea6a44729a5765a03321c73b19f69132db535ba7e062fab39cb95ca8d5764","title":"[Novita AI](/docs/getting-started/providers/novita)","url":"/docs/getting-started/providers#novita-aidocsgetting-startedprovidersnovita","content":"zai-org/GLM-5.3 Flash\n🤖 5 models; default zai-org/glm-5.3-flash (128K context)\n🛠️ Native tool calling + structured output together\n💳 Free tier available\n✅ Roster verified 2026-09-05 (authenticated GET /openai/v1/models)\n🔑 API key from novita.ai/settings/key-management\n\nSetup Guide →","hierarchy":{"lvl0":"Getting Started","lvl1":"AI Provider Guides","lvl2":"[Novita AI](/docs/getting-started/providers/novita)","lvl3":""}},
5893
5906
  {"objectID":"23b4b0b712252323ac86d0e25d5e5dbb0044b3283db208e511689d619d09f5fa","title":"[Upstage](/docs/getting-started/providers/upstage)","url":"/docs/getting-started/providers#upstagedocsgetting-startedprovidersupstage","content":"Solar Pro 4\n🤖 10 models; default solar-pro4 (512K context)\n🛠️ Native tool calling + structured output together\n💳 Free tier available\n✅ Roster verified 2026-09-03 (authenticated GET /v1/models)\n🔑 API key from console.upstage.ai/api-keys\n🔄 Aliases: solar\n\nSetup Guide →","hierarchy":{"lvl0":"Getting Started","lvl1":"AI Provider Guides","lvl2":"[Upstage](/docs/getting-started/providers/upstage)","lvl3":""}},
5894
5907
  {"objectID":"6cc12ff4170a3accfacac16eef391a2dfa5d9a8e0da239c647a08ba9f8c78929","title":"🎙️ Voice Providers {#voice-providers}","url":"/docs/getting-started/providers#-voice-providers-voice-providers","content":"Synthesize speech, transcribe audio, or run live voice sessions. Voice providers are separate from LLM providers — they handle audio I/O rather than text generation.","hierarchy":{"lvl0":"Getting Started","lvl1":"AI Provider Guides","lvl2":"🎙️ Voice Providers {#voice-providers}","lvl3":""}},
5895
5908
  {"objectID":"b0c947ddc7089afe19789acfbd8ddf97df792f98be2de9004e0d7c131d60ceea","title":"[OpenAI TTS](/docs/getting-started/providers/openai-tts)","url":"/docs/getting-started/providers#openai-ttsdocsgetting-startedprovidersopenai-tts","content":"Highest-quality text-to-speech\n🎙️ Voices: alloy, echo, fable, onyx, nova, shimmer\n🎵 Models: tts-1 (fast) and tts-1-hd (high quality)\n🎼 Formats: MP3, WAV, OGG, Opus\n🔑 Auth: API Key (OPENAI_API_KEY)\n\nSetup Guide →","hierarchy":{"lvl0":"Getting Started","lvl1":"AI Provider Guides","lvl2":"[OpenAI TTS](/docs/getting-started/providers/openai-tts)","lvl3":""}},
@@ -6132,6 +6145,16 @@
6132
6145
  {"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":""}},
6133
6146
  {"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":""}},
6134
6147
  {"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":""}},
6148
+ {"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":""}},
6149
+ {"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":""}},
6150
+ {"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":""}},
6151
+ {"objectID":"4b66e10d337be07ed656879a4e97e86deeab5123ee0275a5f977b060a8226432","title":"1. Get an API key","url":"/docs/getting-started/providers/morph#1-get-an-api-key","content":"Visit: 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","hierarchy":{"lvl0":"Getting Started","lvl1":"Morph Provider Guide","lvl2":"1. Get an API key","lvl3":""}},
6152
+ {"objectID":"d468739edc57f2047f9bd75357ff0872aa28e2f8c652688221ffd643df48d6ed","title":"3. Use it","url":"/docs/getting-started/providers/morph#3-use-it","content":"`bash","hierarchy":{"lvl0":"Getting Started","lvl1":"Morph Provider Guide","lvl2":"3. Use it","lvl3":""}},
6153
+ {"objectID":"197baaae7e3f078974d0f323fcc136c3a7e76154b0b25e891016573d8561c86b","title":"CLI","url":"/docs/getting-started/providers/morph#cli","content":"npx @juspay/neurolink generate \"Hello\" --provider morph\ntypescript\nawait neurolink.generate({\n input: { text: \"Hello\" },\n provider: \"morph\",\n credentials: { morph: { apiKey: process.env.MORPHAPIKEY } },\n});\n`","hierarchy":{"lvl0":"Getting Started","lvl1":"Morph Provider Guide","lvl2":"CLI","lvl3":""}},
6154
+ {"objectID":"4700bb65c58a5fafa1cbee14209ba49e98becd7fbb35e3ed41668a2f038ddd11","title":"Models","url":"/docs/getting-started/providers/morph#models","content":"| 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.","hierarchy":{"lvl0":"Getting Started","lvl1":"Morph Provider Guide","lvl2":"Models","lvl3":""}},
6155
+ {"objectID":"8da7df90998783768091857fd8ad452e338fbcbeb99bfefde7e0a2bb3efbaa5d","title":"Verification status","url":"/docs/getting-started/providers/morph#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 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 ","hierarchy":{"lvl0":"Getting Started","lvl1":"Morph Provider Guide","lvl2":"Verification status","lvl3":""}},
6156
+ {"objectID":"3265a76e8f10249fcb598abff4a96e5ac522f6b444685687362ddc346f5656df","title":"Troubleshooting","url":"/docs/getting-started/providers/morph#troubleshooting","content":"| Symptom | Cause | Fix |\n| --------------------------------------- | ------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |\n| Invalid Morph API key | MORPH_API_KEY unset or wrong | Check the key at https://morphllm.com/dashboard |\n| Tools silently absent or echoed as text | Morph declares tools: false and doesn't honor the parameter | Use a tool-capable provider for agentic work — see provider feature compatibility |\n| Stuck at 5 requests/minute | No payment method on file yet | Add a card in the Morph dashboard to lift the limit |\n| Model not found | The roster changed since 2026-09-05 | Use morph-v3-large or morph-v3-fast — Morph's catalog only lists these two |","hierarchy":{"lvl0":"Getting Started","lvl1":"Morph Provider Guide","lvl2":"Troubleshooting","lvl3":""}},
6157
+ {"objectID":"71238f98d960d16ee555d159333c8e7bc018728ace31ba78805301b8525f42dc","title":"See also","url":"/docs/getting-started/providers/morph#see-also","content":"Provider setup overview\nAll providers\nTier-2 onboarding — how quirks like messageContentFormat work\nProvider feature compatibility","hierarchy":{"lvl0":"Getting Started","lvl1":"Morph Provider Guide","lvl2":"See also","lvl3":""}},
6135
6158
  {"objectID":"bfd64b9d1ef37f19df49ee20bda76e3acbcca469501262dd5eeb314719706963","title":"MuseTalk Provider Guide (avatar via Replicate)","url":"/docs/getting-started/providers/musetalk","content":"MuseTalk Provider Guide\n\nLip-synced avatar videos via the MuseTalk model on Replicate\n\nOverview\n\nMuseTalk is a low-latency open-source lip-sync model hosted on Replicate.\nNeuroLink wraps it under output.avatar.provider = \"musetalk\".\n\nKey Facts\nHosting: Replicate Predictions API\nModel: e.g. cjwbw/musetalk:...\nAsync: Submit + poll\nOutput: MP4\n\nQuick Start\nGet a Replicate Token\n\nhttps://replicate.com/account/api-tokens\nConfigure\nGenerate\n\nCLI Usage\n\nConfiguration Reference\n\n| Environment Variable | Required | Description |\n| --------------------- | -------- | ------------------------ |\n| REPLICATE_API_TOKEN | Yes | Replicate token (shared) |\n\nSee Also\nHeyGen Provider\nD-ID Provider\nReplicate Provider","hierarchy":{"lvl0":"Getting Started","lvl1":"MuseTalk Provider Guide (avatar via Replicate)","lvl2":"","lvl3":""}},
6136
6159
  {"objectID":"aad24f61e9cb30f0cd9812ac2a6e72ddf695c758e2956496755c155bb5e6c311","title":"MuseTalk Provider Guide","url":"/docs/getting-started/providers/musetalk#musetalk-provider-guide","content":"Lip-synced avatar videos via the MuseTalk model on Replicate","hierarchy":{"lvl0":"Getting Started","lvl1":"MuseTalk Provider Guide (avatar via Replicate)","lvl2":"MuseTalk Provider Guide","lvl3":""}},
6137
6160
  {"objectID":"6a6abd8d0d599eb93aa7a28d5a6753832285a331d9d1a419c7a5fc1306b3c812","title":"Overview","url":"/docs/getting-started/providers/musetalk#overview","content":"MuseTalk is a low-latency open-source lip-sync model hosted on Replicate.\nNeuroLink wraps it under output.avatar.provider = \"musetalk\".","hierarchy":{"lvl0":"Getting Started","lvl1":"MuseTalk Provider Guide (avatar via Replicate)","lvl2":"Overview","lvl3":""}},
@@ -6139,6 +6162,16 @@
6139
6162
  {"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":""}},
6140
6163
  {"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":""}},
6141
6164
  {"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":""}},
6165
+ {"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":""}},
6166
+ {"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":""}},
6167
+ {"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":""}},
6168
+ {"objectID":"5824b11c0d9fe7198393bb2602bb13a1066618642aa210db6ab46c8c7b7daa63","title":"1. Get an API key","url":"/docs/getting-started/providers/novita#1-get-an-api-key","content":"Visit: 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","hierarchy":{"lvl0":"Getting Started","lvl1":"Novita AI Provider Guide","lvl2":"1. Get an API key","lvl3":""}},
6169
+ {"objectID":"741552509ddde965fd27c0e2f6f7fde6d3bcac68ead2703f9e57dfc55d40924e","title":"3. Use it","url":"/docs/getting-started/providers/novita#3-use-it","content":"`bash","hierarchy":{"lvl0":"Getting Started","lvl1":"Novita AI Provider Guide","lvl2":"3. Use it","lvl3":""}},
6170
+ {"objectID":"2a44e5094fa009915efbd0bb23eb41667f925e72c5a17caffec15eac953c8eec","title":"CLI","url":"/docs/getting-started/providers/novita#cli","content":"npx @juspay/neurolink generate \"Hello\" --provider novita\ntypescript\nawait neurolink.generate({\n input: { text: \"Hello\" },\n provider: \"novita\",\n credentials: { novita: { apiKey: process.env.NOVITAAPIKEY } },\n});\n`","hierarchy":{"lvl0":"Getting Started","lvl1":"Novita AI Provider Guide","lvl2":"CLI","lvl3":""}},
6171
+ {"objectID":"fb16da5011488aac4f8c4bad95a8f32c02faa390b7a57dc9cb375cd11758b25b","title":"Models","url":"/docs/getting-started/providers/novita#models","content":"| 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.","hierarchy":{"lvl0":"Getting Started","lvl1":"Novita AI Provider Guide","lvl2":"Models","lvl3":""}},
6172
+ {"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":""}},
6173
+ {"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":""}},
6174
+ {"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":""}},
6142
6175
  {"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\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\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\nConfiguration Reference\n\n| Environment Variable | Required | Default | Description |\n| ------------------------------- | -------- | ------------------------------------- | ------------------------------------------ |\n| NVIDIA_NIM_API_KEY | Yes | — | NVIDIA NIM API key (starts with nvapi-) |\n| NVIDIA_NIM_MODEL | No | meta/llama-3.3-70b-instruct | Default model |\n| NVIDIA_NIM_BASE_URL | No | https://integrate.api.nvidia.com/v1 | Base URL (override for self-hosted NIM) |\n| NVIDIA_NIM_TOP_K | No | — | Top-K sampling; -1 to disable |\n| NVIDIA_NIM_MIN_P ","hierarchy":{"lvl0":"Getting Started","lvl1":"NVIDIA NIM Provider Guide","lvl2":"","lvl3":""}},
6143
6176
  {"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":""}},
6144
6177
  {"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":""}},
@@ -6965,11 +6998,11 @@
6965
6998
  {"objectID":"5e419fd378ccf967026f166ff17ca26ff25e33bee3a5e5f1ff6294df4c06bb12","title":"Set in Vercel dashboard or CLI","url":"/docs/guides/frameworks/sveltekit#set-in-vercel-dashboard-or-cli","content":"vercel env add OPENAIAPIKEY\nvercel env add ANTHROPICAPIKEY\nvercel env add JWT_SECRET\n`","hierarchy":{"lvl0":"Guides","lvl1":"SvelteKit Integration Guide","lvl2":"Set in Vercel dashboard or CLI","lvl3":""}},
6966
6999
  {"objectID":"a86f4915394a5106e65dd50477d31423486db347ca83c02354ed3a06df8cdc62","title":"Related Documentation","url":"/docs/guides/frameworks/sveltekit#related-documentation","content":"API Reference - NeuroLink SDK\nStreaming Guide - Real-time responses\nCompliance Guide - Security and authentication\nCost Optimization - Reduce costs\nFastify Integration - High-performance Node.js framework with schema validation","hierarchy":{"lvl0":"Guides","lvl1":"SvelteKit Integration Guide","lvl2":"Related Documentation","lvl3":""}},
6967
7000
  {"objectID":"dae99b935ff34c8fd5f10f0ac1f2f4fdffb0cd777d7bb45c7bc7f4b91059014c","title":"Additional Resources","url":"/docs/guides/frameworks/sveltekit#additional-resources","content":"SvelteKit Documentation - Official SvelteKit docs\nSvelte Tutorial - Learn Svelte\nSvelteKit Examples - Example apps\n\nNeed Help? Join our GitHub Discussions or open an issue.","hierarchy":{"lvl0":"Guides","lvl1":"SvelteKit Integration Guide","lvl2":"Additional Resources","lvl3":""}},
6968
- {"objectID":"8f31aec32f066055dee31be79a01ee297a435bbf7f901cce7785983b2e27e1eb","title":"GitHub Action Guide","url":"/docs/guides/github-action","content":"GitHub Action Guide\n\nLast Updated: January 10, 2026\nNeuroLink Version: 8.32.0\n\nRun AI-powered workflows with 40 providers directly in GitHub Actions. The NeuroLink GitHub Action enables automated code review, issue triage, content generation, and more.\n\nOverview\n\nThe NeuroLink GitHub Action provides a unified interface to integrate AI capabilities into your CI/CD workflows. It supports all 40 NeuroLink providers through a single, consistent configuration.\n\nKey Features:\nMulti-provider support - 40 AI providers with unified interface\nPR/Issue comments - Auto-post AI responses with intelligent comment updates\nCost tracking - Built-in analytics with usage metrics\nQuality evaluation - Response scoring and validation\nMultimodal - Support for images, PDFs, CSVs, and videos\nExtended thinking - Deep reasoning with thinking tokens\nJob summaries - Detailed execution summaries in workflow runs\n\nQuick Start\n\nBasic Usage\n\nAuto Provider Detection\n\nWhen you set provider: auto (the default), NeuroLink automatically selects the best available provider based on which API keys you provide:\n\nProvider Configuration\n\nNeuroLink supports 40 AI providers. Configure each by providing the required credentials as secrets.\n\nProvider Quick Reference\n\n| Provider | Required Inputs | Example Models |\n| ----------------- | ------------------------------------------------------------------ | ------------------------------------------ |\n| OpenAI | openai_api_key | gpt-4o, gpt-4o-mini, o1 |\n| Anthropic | anthropic_api_key | claude-sonnet-4-20250514, claude-3-5-haiku |\n| Google AI Studio | google_ai_api_key | gemini-2.5-pro, gemini-2.5-flash |\n| Vertex AI | google_vertex_project, google_application_credentials | gemini-\\, claude-\\ |\n| Amazon Bedrock | aws_access_key_id, aws_secret_access_key | claude-\\, titan-\\, nova-\\* |\n| Azure OpenAI | azure_openai_api_key, azure_openai_endpoint | gpt-4o, gpt-4-turbo |\n| Mistral | mistral_api_key | mistral-large, mistral-small |\n| Hugging Face | huggingface_api_key | Various open models |\n| OpenRouter | openrouter_api_key | 300+ models |\n| LiteLLM | litellm_api_key, litellm_base_url | Proxy to 100+ models |\n| Ollama | - | Local models |\n| SageMaker | aws_access_key_id, aws_secret_access_key, sagemaker_endpoint | Custom endpoints |\n| OpenAI-Compatible | openai_compatible_api_key, openai_compatible_base_url | vLLM, custom APIs |\n\nOpenAI\n\nEnvironment Variables:\nOPENAI_API_KEY - Your OpenAI API key (starts with sk-)\n\nAvailable Models:\ngpt-4o - Most capable model\ngpt-4o-mini - Fast and cost-effective\no1 - Advanced reasoning model\ngpt-4-turbo - Previous generation flagship\n\nAnthropic\n\nEnvironment Variables:\nANTHROPIC_API_KEY - Your Anthropic API key (starts with sk-ant-)\n\nAvailable Models:\nclaude-sonnet-4-20250514 - Best overall performance\nclaude-3-5-haiku - Fast and efficient\nclaude-opus-4-20250514 - Maximum capability\n\nExtended Thinking Support: Anthropic models support extended thinking for deep reasoning tasks.\n\nGoogle AI Studio\n\nEnvironment Variables:\nGOOGLE_AI_API_KEY - Your Google AI Studio API key\n\nAvailable Models:\ngemini-2.5-pro - Most capable Gemini model\ngemini-2.5-flash - Fast and cost-effective\ngemini-2.0-flash - Previous generation\n\nFree Tier: Google AI Studio offers a generous free tier (1M tokens/day).\n\nGoogle Vertex AI\n\nEnvironment Variables:\nGOOGLE_VERTEX_PROJECT - Your GCP project ID\nGOOGLE_VERTEX_LOCATION - GCP region (default: us-central1)\nGOOGLE_APPLICATION_CREDENTIALS - Base64-encoded service account JSON\n\nSetup Service Account:\n\nAmazon Bedrock\n\nEnvironment Variables:\nAWS_ACCESS_KEY_ID - AWS access key\nAWS_SECRET_ACCESS_KEY - AWS secret key\nAWS_REGION - AWS region (default: us-east-1)\nAWS_SESSION_TOKEN - Optional session token for temporary credentials\n\nAvailable Models:\nanthropic.claude-3-5-sonnet-20241022-v2:0 - Claude on Bedrock\namazon.titan-text-express-v1 - Amazon Titan\namazon.nova-pro-v1:0 - Amazon Nova\n\nOIDC Authentication (Recommended):\n\nFor better security, use GitHub OIDC instead of static credentials:\n\nAzure OpenAI\n\nEnvironment Variables:\nAZURE_OPENAI_API_KEY - Azure OpenAI API key\nAZURE_OPENAI_ENDPOINT - Azure OpenAI endpoi","hierarchy":{"lvl0":"Guides","lvl1":"GitHub Action Guide","lvl2":"","lvl3":""}},
6969
- {"objectID":"7ff4c3df91e5e1c298b72c9c4582ecd6d75ff6486e6af5c4ef96766507050d2b","title":"GitHub Action Guide","url":"/docs/guides/github-action#github-action-guide","content":"Last Updated: January 10, 2026\nNeuroLink Version: 8.32.0\n\nRun AI-powered workflows with 40 providers directly in GitHub Actions. The NeuroLink GitHub Action enables automated code review, issue triage, content generation, and more.","hierarchy":{"lvl0":"Guides","lvl1":"GitHub Action Guide","lvl2":"GitHub Action Guide","lvl3":""}},
6970
- {"objectID":"33dd9029b76affe39c2b849f369b0629e6061d643568bcefd1ab923e2653bd90","title":"Overview","url":"/docs/guides/github-action#overview","content":"The NeuroLink GitHub Action provides a unified interface to integrate AI capabilities into your CI/CD workflows. It supports all 40 NeuroLink providers through a single, consistent configuration.\n\nKey Features:\nMulti-provider support - 40 AI providers with unified interface\nPR/Issue comments - Auto-post AI responses with intelligent comment updates\nCost tracking - Built-in analytics with usage metrics\nQuality evaluation - Response scoring and validation\nMultimodal - Support for images, PDFs, CSVs, and videos\nExtended thinking - Deep reasoning with thinking tokens\nJob summaries - Detailed execution summaries in workflow runs","hierarchy":{"lvl0":"Guides","lvl1":"GitHub Action Guide","lvl2":"Overview","lvl3":""}},
7001
+ {"objectID":"8f31aec32f066055dee31be79a01ee297a435bbf7f901cce7785983b2e27e1eb","title":"GitHub Action Guide","url":"/docs/guides/github-action","content":"GitHub Action Guide\n\nLast Updated: January 10, 2026\nNeuroLink Version: 8.32.0\n\nRun AI-powered workflows with 44 providers directly in GitHub Actions. The NeuroLink GitHub Action enables automated code review, issue triage, content generation, and more.\n\nOverview\n\nThe NeuroLink GitHub Action provides a unified interface to integrate AI capabilities into your CI/CD workflows. It supports all 40 NeuroLink providers through a single, consistent configuration.\n\nKey Features:\nMulti-provider support - 44 AI providers with unified interface\nPR/Issue comments - Auto-post AI responses with intelligent comment updates\nCost tracking - Built-in analytics with usage metrics\nQuality evaluation - Response scoring and validation\nMultimodal - Support for images, PDFs, CSVs, and videos\nExtended thinking - Deep reasoning with thinking tokens\nJob summaries - Detailed execution summaries in workflow runs\n\nQuick Start\n\nBasic Usage\n\nAuto Provider Detection\n\nWhen you set provider: auto (the default), NeuroLink automatically selects the best available provider based on which API keys you provide:\n\nProvider Configuration\n\nNeuroLink supports 44 AI providers. Configure each by providing the required credentials as secrets.\n\nProvider Quick Reference\n\n| Provider | Required Inputs | Example Models |\n| ----------------- | ------------------------------------------------------------------ | ------------------------------------------ |\n| OpenAI | openai_api_key | gpt-4o, gpt-4o-mini, o1 |\n| Anthropic | anthropic_api_key | claude-sonnet-4-20250514, claude-3-5-haiku |\n| Google AI Studio | google_ai_api_key | gemini-2.5-pro, gemini-2.5-flash |\n| Vertex AI | google_vertex_project, google_application_credentials | gemini-\\, claude-\\ |\n| Amazon Bedrock | aws_access_key_id, aws_secret_access_key | claude-\\, titan-\\, nova-\\* |\n| Azure OpenAI | azure_openai_api_key, azure_openai_endpoint | gpt-4o, gpt-4-turbo |\n| Mistral | mistral_api_key | mistral-large, mistral-small |\n| Hugging Face | huggingface_api_key | Various open models |\n| OpenRouter | openrouter_api_key | 300+ models |\n| LiteLLM | litellm_api_key, litellm_base_url | Proxy to 100+ models |\n| Ollama | - | Local models |\n| SageMaker | aws_access_key_id, aws_secret_access_key, sagemaker_endpoint | Custom endpoints |\n| OpenAI-Compatible | openai_compatible_api_key, openai_compatible_base_url | vLLM, custom APIs |\n\nOpenAI\n\nEnvironment Variables:\nOPENAI_API_KEY - Your OpenAI API key (starts with sk-)\n\nAvailable Models:\ngpt-4o - Most capable model\ngpt-4o-mini - Fast and cost-effective\no1 - Advanced reasoning model\ngpt-4-turbo - Previous generation flagship\n\nAnthropic\n\nEnvironment Variables:\nANTHROPIC_API_KEY - Your Anthropic API key (starts with sk-ant-)\n\nAvailable Models:\nclaude-sonnet-4-20250514 - Best overall performance\nclaude-3-5-haiku - Fast and efficient\nclaude-opus-4-20250514 - Maximum capability\n\nExtended Thinking Support: Anthropic models support extended thinking for deep reasoning tasks.\n\nGoogle AI Studio\n\nEnvironment Variables:\nGOOGLE_AI_API_KEY - Your Google AI Studio API key\n\nAvailable Models:\ngemini-2.5-pro - Most capable Gemini model\ngemini-2.5-flash - Fast and cost-effective\ngemini-2.0-flash - Previous generation\n\nFree Tier: Google AI Studio offers a generous free tier (1M tokens/day).\n\nGoogle Vertex AI\n\nEnvironment Variables:\nGOOGLE_VERTEX_PROJECT - Your GCP project ID\nGOOGLE_VERTEX_LOCATION - GCP region (default: us-central1)\nGOOGLE_APPLICATION_CREDENTIALS - Base64-encoded service account JSON\n\nSetup Service Account:\n\nAmazon Bedrock\n\nEnvironment Variables:\nAWS_ACCESS_KEY_ID - AWS access key\nAWS_SECRET_ACCESS_KEY - AWS secret key\nAWS_REGION - AWS region (default: us-east-1)\nAWS_SESSION_TOKEN - Optional session token for temporary credentials\n\nAvailable Models:\nanthropic.claude-3-5-sonnet-20241022-v2:0 - Claude on Bedrock\namazon.titan-text-express-v1 - Amazon Titan\namazon.nova-pro-v1:0 - Amazon Nova\n\nOIDC Authentication (Recommended):\n\nFor better security, use GitHub OIDC instead of static credentials:\n\nAzure OpenAI\n\nEnvironment Variables:\nAZURE_OPENAI_API_KEY - Azure OpenAI API key\nAZURE_OPENAI_ENDPOINT - Azure OpenAI endpoi","hierarchy":{"lvl0":"Guides","lvl1":"GitHub Action Guide","lvl2":"","lvl3":""}},
7002
+ {"objectID":"7ff4c3df91e5e1c298b72c9c4582ecd6d75ff6486e6af5c4ef96766507050d2b","title":"GitHub Action Guide","url":"/docs/guides/github-action#github-action-guide","content":"Last Updated: January 10, 2026\nNeuroLink Version: 8.32.0\n\nRun AI-powered workflows with 44 providers directly in GitHub Actions. The NeuroLink GitHub Action enables automated code review, issue triage, content generation, and more.","hierarchy":{"lvl0":"Guides","lvl1":"GitHub Action Guide","lvl2":"GitHub Action Guide","lvl3":""}},
7003
+ {"objectID":"33dd9029b76affe39c2b849f369b0629e6061d643568bcefd1ab923e2653bd90","title":"Overview","url":"/docs/guides/github-action#overview","content":"The NeuroLink GitHub Action provides a unified interface to integrate AI capabilities into your CI/CD workflows. It supports all 40 NeuroLink providers through a single, consistent configuration.\n\nKey Features:\nMulti-provider support - 44 AI providers with unified interface\nPR/Issue comments - Auto-post AI responses with intelligent comment updates\nCost tracking - Built-in analytics with usage metrics\nQuality evaluation - Response scoring and validation\nMultimodal - Support for images, PDFs, CSVs, and videos\nExtended thinking - Deep reasoning with thinking tokens\nJob summaries - Detailed execution summaries in workflow runs","hierarchy":{"lvl0":"Guides","lvl1":"GitHub Action Guide","lvl2":"Overview","lvl3":""}},
6971
7004
  {"objectID":"3bb997302dc433bdb7ccaa27311d8b28539d24f519d50d7777495c4477c52933","title":"Auto Provider Detection","url":"/docs/guides/github-action#auto-provider-detection","content":"When you set provider: auto (the default), NeuroLink automatically selects the best available provider based on which API keys you provide:","hierarchy":{"lvl0":"Guides","lvl1":"GitHub Action Guide","lvl2":"Auto Provider Detection","lvl3":""}},
6972
- {"objectID":"a0196ac56db4df812b123855c3b7524934cf265a63e96a8ba68334d3206c0fe1","title":"Provider Configuration","url":"/docs/guides/github-action#provider-configuration","content":"NeuroLink supports 40 AI providers. Configure each by providing the required credentials as secrets.","hierarchy":{"lvl0":"Guides","lvl1":"GitHub Action Guide","lvl2":"Provider Configuration","lvl3":""}},
7005
+ {"objectID":"a0196ac56db4df812b123855c3b7524934cf265a63e96a8ba68334d3206c0fe1","title":"Provider Configuration","url":"/docs/guides/github-action#provider-configuration","content":"NeuroLink supports 44 AI providers. Configure each by providing the required credentials as secrets.","hierarchy":{"lvl0":"Guides","lvl1":"GitHub Action Guide","lvl2":"Provider Configuration","lvl3":""}},
6973
7006
  {"objectID":"e323a8ed54e480b24ca441ae97e154de2fc279ab13289c50496ffb1c1040dbbd","title":"Provider Quick Reference","url":"/docs/guides/github-action#provider-quick-reference","content":"| Provider | Required Inputs | Example Models |\n| ----------------- | ------------------------------------------------------------------ | ------------------------------------------ |\n| OpenAI | openai_api_key | gpt-4o, gpt-4o-mini, o1 |\n| Anthropic | anthropic_api_key | claude-sonnet-4-20250514, claude-3-5-haiku |\n| Google AI Studio | google_ai_api_key | gemini-2.5-pro, gemini-2.5-flash |\n| Vertex AI | google_vertex_project, google_application_credentials | gemini-\\, claude-\\ |\n| Amazon Bedrock | aws_access_key_id, aws_secret_access_key | claude-\\, titan-\\, nova-\\* |\n| Azure OpenAI | azure_openai_api_key, azure_openai_endpoint | gpt-4o, gpt-4-turbo |\n| Mistral | mistral_api_key | mistral-large, mistral-small |\n| Hugging Face | huggingface_api_key | Various open models |\n| OpenRouter | openrouter_api_key | 300+ models |\n| LiteLLM | litellm_api_key, litellm_base_url | Proxy to 100+ models |\n| Ollama | - | Local models |\n| SageMaker | aws_access_key_id, aws_secret_access_key, sagemaker_endpoint | Custom endpoints |\n| OpenAI-Compatible | openai_compatible_api_key, openai_compatible_base_url | vLLM, custom APIs |","hierarchy":{"lvl0":"Guides","lvl1":"GitHub Action Guide","lvl2":"Provider Quick Reference","lvl3":""}},
6974
7007
  {"objectID":"73ea2110630bda0912a64584e314b35c87ee437f430be4dd34b4ac6c7432d374","title":"OpenAI","url":"/docs/guides/github-action#openai","content":"Environment Variables:\nOPENAI_API_KEY - Your OpenAI API key (starts with sk-)\n\nAvailable Models:\ngpt-4o - Most capable model\ngpt-4o-mini - Fast and cost-effective\no1 - Advanced reasoning model\ngpt-4-turbo - Previous generation flagship","hierarchy":{"lvl0":"Guides","lvl1":"GitHub Action Guide","lvl2":"OpenAI","lvl3":""}},
6975
7008
  {"objectID":"0c8f98396097547044efc8ecb20220a7f14be5586bbaa0ca9ba7f3e2bc1fffc4","title":"Anthropic","url":"/docs/guides/github-action#anthropic","content":"Environment Variables:\nANTHROPIC_API_KEY - Your Anthropic API key (starts with sk-ant-)\n\nAvailable Models:\nclaude-sonnet-4-20250514 - Best overall performance\nclaude-3-5-haiku - Fast and efficient\nclaude-opus-4-20250514 - Maximum capability\n\nExtended Thinking Support: Anthropic models support extended thinking for deep reasoning tasks.","hierarchy":{"lvl0":"Guides","lvl1":"GitHub Action Guide","lvl2":"Anthropic","lvl3":""}},
@@ -7031,9 +7064,9 @@
7031
7064
  {"objectID":"346cc5caded9aa6e897a4e54ade3fc9272366e665ce37cb4af8dfc7b9d4c9cec","title":"Workflow Permissions","url":"/docs/guides/github-action#workflow-permissions","content":"Use minimal permissions in your workflows:","hierarchy":{"lvl0":"Guides","lvl1":"GitHub Action Guide","lvl2":"Workflow Permissions","lvl3":""}},
7032
7065
  {"objectID":"c336381d8c9fc251580c4369411bae528e0c086a9e321ee09f9530de404e1a50","title":"See Also","url":"/docs/guides/github-action#see-also","content":"Provider Selection Guide - Choose the best provider for your use case\nTroubleshooting Guide - Diagnose and resolve issues\nSDK API Reference - Full SDK documentation\nCLI Reference - CLI command documentation\nMCP Server Catalog - Available MCP tools","hierarchy":{"lvl0":"Guides","lvl1":"GitHub Action Guide","lvl2":"See Also","lvl3":""}},
7033
7066
  {"objectID":"610518771a7d035ee7026390e54a9314551b161fc3ae4e94c4c45310566bbe04","title":"License","url":"/docs/guides/github-action#license","content":"MIT - See LICENSE","hierarchy":{"lvl0":"Guides","lvl1":"GitHub Action Guide","lvl2":"License","lvl3":""}},
7034
- {"objectID":"f480bb93f79e74509c99f1427808ccc90e77e5ca6c5aa13bb80518d1027a2dc0","title":"NeuroLink Guides","url":"/docs/guides","content":"Guides\n\nComprehensive guides for building production-ready AI applications with NeuroLink.\n\n🎯 Essential Guides\n\nCore guides for getting the most out of NeuroLink.\n\n| Guide | Description |\n| ----------------------------------------------------- | ---------------------------------------------------------------------- |\n| Provider Selection Guide | Interactive wizard to choose the best provider for your use case |\n| GitHub Action Guide | Run AI-powered workflows in GitHub Actions with 40 providers |\n| Troubleshooting | Common issues, debugging tips, and solutions for NeuroLink CLI and SDK |\n\n🗄️ Redis & Persistence\n\nGuides for setting up and managing Redis-backed conversation memory.\n\n| Guide | Description |\n| ------------------------------------------------- | ------------------------------------------------------------------------ |\n| Redis Configuration | Production-ready Redis setup with cluster, security, and cloud providers |\n| Redis Migration | Migration patterns for upgrading Redis and moving between environments |\n\nSee also: Redis Quick Start in Getting Started\n\nMigration Guides\n\nMigrate from other AI frameworks to NeuroLink.\n\n| Guide | Description |\n| --------------------------------------------------------- | ------------------------------------------------------------------------------- |\n| From LangChain | Complete migration guide from LangChain with concept mapping and examples |\n| From Vercel AI SDK | Migrate from Vercel AI SDK with Next.js-focused patterns and streaming examples |\n| Migration Guide (Legacy) | General migration guide for older versions |\n\n🏢 Enterprise Guides\n\nProduction-ready patterns for enterprise AI deployments.\n\n| Guide | Description |\n| -------------------------------------------------------------------- | ----------------------------------------------------------- |\n| Multi-Provider Failover | High availability with automatic failover between providers |\n| Load Balancing | Distribute traffic across providers with 6 strategies |\n| Cost Optimization | Reduce AI costs by 80-95% with smart routing |\n| Compliance & Security | GDPR, SOC2, HIPAA compliance patterns |\n| Multi-Region Deployment | Global deployment with geographic routing |\n| Monitoring & Observability | Prometheus, Grafana, CloudWatch integration |\n| Audit Trails | Comprehensive logging for compliance |\n\n🔧 MCP Integration\n\nModel Context Protocol server catalog and integration patterns.\n\n| Guide | Description |\n| ------------------------------------------- | ----------------------------------------------------------- |\n| Server Catalog | 58+ MCP servers for file systems, databases, APIs, and more |\n\nSee also: MCP Tools Showcase for detailed tool documentation\n\nServer Adapters\n\nDeploy NeuroLink as production-ready HTTP APIs.\n\n| Guide | Description |\n| ---------------------------------------------------------- | ------------------------------------------------------------------- |\n| Server Adapters Overview | Quick start guide for exposing AI agents as HTTP APIs |\n| Hono Adapter | Recommended lightweight adapter for serverless and edge deployments |\n| Express Adapter | Integration with existing Express applications |\n| Fastify Adapter | High-performance adapter with built-in schema validation |\n| Koa Adapter | Modern, minimalist adapter with clean middleware composition |\n| Security Guide | Authentication, authorization, and security best practices |\n| Deployment Guide | Production deployment patterns with Docker and Kubernetes |\n\n🎨 Framework Integration\n\nFramework-specific integration guides.\n\n| Framework | Description |\n| ---------------------------------------- | -------------------------------------------------------- |\n| Next.js | App Router, Server Components, Server Actions, Streaming |\n| Express.js | RESTful APIs, middleware, authentication, rate limiting |\n| SvelteKit | SSR, load function","hierarchy":{"lvl0":"Guides","lvl1":"NeuroLink Guides","lvl2":"","lvl3":""}},
7067
+ {"objectID":"f480bb93f79e74509c99f1427808ccc90e77e5ca6c5aa13bb80518d1027a2dc0","title":"NeuroLink Guides","url":"/docs/guides","content":"Guides\n\nComprehensive guides for building production-ready AI applications with NeuroLink.\n\n🎯 Essential Guides\n\nCore guides for getting the most out of NeuroLink.\n\n| Guide | Description |\n| ----------------------------------------------------- | ---------------------------------------------------------------------- |\n| Provider Selection Guide | Interactive wizard to choose the best provider for your use case |\n| GitHub Action Guide | Run AI-powered workflows in GitHub Actions with 44 providers |\n| Troubleshooting | Common issues, debugging tips, and solutions for NeuroLink CLI and SDK |\n\n🗄️ Redis & Persistence\n\nGuides for setting up and managing Redis-backed conversation memory.\n\n| Guide | Description |\n| ------------------------------------------------- | ------------------------------------------------------------------------ |\n| Redis Configuration | Production-ready Redis setup with cluster, security, and cloud providers |\n| Redis Migration | Migration patterns for upgrading Redis and moving between environments |\n\nSee also: Redis Quick Start in Getting Started\n\nMigration Guides\n\nMigrate from other AI frameworks to NeuroLink.\n\n| Guide | Description |\n| --------------------------------------------------------- | ------------------------------------------------------------------------------- |\n| From LangChain | Complete migration guide from LangChain with concept mapping and examples |\n| From Vercel AI SDK | Migrate from Vercel AI SDK with Next.js-focused patterns and streaming examples |\n| Migration Guide (Legacy) | General migration guide for older versions |\n\n🏢 Enterprise Guides\n\nProduction-ready patterns for enterprise AI deployments.\n\n| Guide | Description |\n| -------------------------------------------------------------------- | ----------------------------------------------------------- |\n| Multi-Provider Failover | High availability with automatic failover between providers |\n| Load Balancing | Distribute traffic across providers with 6 strategies |\n| Cost Optimization | Reduce AI costs by 80-95% with smart routing |\n| Compliance & Security | GDPR, SOC2, HIPAA compliance patterns |\n| Multi-Region Deployment | Global deployment with geographic routing |\n| Monitoring & Observability | Prometheus, Grafana, CloudWatch integration |\n| Audit Trails | Comprehensive logging for compliance |\n\n🔧 MCP Integration\n\nModel Context Protocol server catalog and integration patterns.\n\n| Guide | Description |\n| ------------------------------------------- | ----------------------------------------------------------- |\n| Server Catalog | 58+ MCP servers for file systems, databases, APIs, and more |\n\nSee also: MCP Tools Showcase for detailed tool documentation\n\nServer Adapters\n\nDeploy NeuroLink as production-ready HTTP APIs.\n\n| Guide | Description |\n| ---------------------------------------------------------- | ------------------------------------------------------------------- |\n| Server Adapters Overview | Quick start guide for exposing AI agents as HTTP APIs |\n| Hono Adapter | Recommended lightweight adapter for serverless and edge deployments |\n| Express Adapter | Integration with existing Express applications |\n| Fastify Adapter | High-performance adapter with built-in schema validation |\n| Koa Adapter | Modern, minimalist adapter with clean middleware composition |\n| Security Guide | Authentication, authorization, and security best practices |\n| Deployment Guide | Production deployment patterns with Docker and Kubernetes |\n\n🎨 Framework Integration\n\nFramework-specific integration guides.\n\n| Framework | Description |\n| ---------------------------------------- | -------------------------------------------------------- |\n| Next.js | App Router, Server Components, Server Actions, Streaming |\n| Express.js | RESTful APIs, middleware, authentication, rate limiting |\n| SvelteKit | SSR, load function","hierarchy":{"lvl0":"Guides","lvl1":"NeuroLink Guides","lvl2":"","lvl3":""}},
7035
7068
  {"objectID":"f3e109277bf2acc158f13d6dfef4acbcd6b631110715c613c4d323725831aef1","title":"Guides","url":"/docs/guides#guides","content":"Comprehensive guides for building production-ready AI applications with NeuroLink.","hierarchy":{"lvl0":"Guides","lvl1":"NeuroLink Guides","lvl2":"Guides","lvl3":""}},
7036
- {"objectID":"fbc8bd34303a9275ca9eecff06e7f138de59c648fc469b73ecd7b49b4587a1ad","title":"🎯 Essential Guides","url":"/docs/guides#-essential-guides","content":"Core guides for getting the most out of NeuroLink.\n\n| Guide | Description |\n| ----------------------------------------------------- | ---------------------------------------------------------------------- |\n| Provider Selection Guide | Interactive wizard to choose the best provider for your use case |\n| GitHub Action Guide | Run AI-powered workflows in GitHub Actions with 40 providers |\n| Troubleshooting | Common issues, debugging tips, and solutions for NeuroLink CLI and SDK |","hierarchy":{"lvl0":"Guides","lvl1":"NeuroLink Guides","lvl2":"🎯 Essential Guides","lvl3":""}},
7069
+ {"objectID":"fbc8bd34303a9275ca9eecff06e7f138de59c648fc469b73ecd7b49b4587a1ad","title":"🎯 Essential Guides","url":"/docs/guides#-essential-guides","content":"Core guides for getting the most out of NeuroLink.\n\n| Guide | Description |\n| ----------------------------------------------------- | ---------------------------------------------------------------------- |\n| Provider Selection Guide | Interactive wizard to choose the best provider for your use case |\n| GitHub Action Guide | Run AI-powered workflows in GitHub Actions with 44 providers |\n| Troubleshooting | Common issues, debugging tips, and solutions for NeuroLink CLI and SDK |","hierarchy":{"lvl0":"Guides","lvl1":"NeuroLink Guides","lvl2":"🎯 Essential Guides","lvl3":""}},
7037
7070
  {"objectID":"9d0bcedfc805ed137c59970dec43fcb50619592f6f5bbd8bc390695263503ef1","title":"🗄️ Redis & Persistence","url":"/docs/guides#-redis-persistence","content":"Guides for setting up and managing Redis-backed conversation memory.\n\n| Guide | Description |\n| ------------------------------------------------- | ------------------------------------------------------------------------ |\n| Redis Configuration | Production-ready Redis setup with cluster, security, and cloud providers |\n| Redis Migration | Migration patterns for upgrading Redis and moving between environments |\n\nSee also: Redis Quick Start in Getting Started","hierarchy":{"lvl0":"Guides","lvl1":"NeuroLink Guides","lvl2":"🗄️ Redis & Persistence","lvl3":""}},
7038
7071
  {"objectID":"3790b1e182a0c8ce047899f589bdf8981d8fb05fe24e296b7036337a7b1a8d4f","title":"Migration Guides","url":"/docs/guides#migration-guides","content":"Migrate from other AI frameworks to NeuroLink.\n\n| Guide | Description |\n| --------------------------------------------------------- | ------------------------------------------------------------------------------- |\n| From LangChain | Complete migration guide from LangChain with concept mapping and examples |\n| From Vercel AI SDK | Migrate from Vercel AI SDK with Next.js-focused patterns and streaming examples |\n| Migration Guide (Legacy) | General migration guide for older versions |","hierarchy":{"lvl0":"Guides","lvl1":"NeuroLink Guides","lvl2":"Migration Guides","lvl3":""}},
7039
7072
  {"objectID":"0fbcbb8693f2289feb889fa823823e20e0b69d7882b5a481064296960949d69d","title":"🏢 Enterprise Guides","url":"/docs/guides#-enterprise-guides","content":"Production-ready patterns for enterprise AI deployments.\n\n| Guide | Description |\n| -------------------------------------------------------------------- | ----------------------------------------------------------- |\n| Multi-Provider Failover | High availability with automatic failover between providers |\n| Load Balancing | Distribute traffic across providers with 6 strategies |\n| Cost Optimization | Reduce AI costs by 80-95% with smart routing |\n| Compliance & Security | GDPR, SOC2, HIPAA compliance patterns |\n| Multi-Region Deployment | Global deployment with geographic routing |\n| Monitoring & Observability | Prometheus, Grafana, CloudWatch integration |\n| Audit Trails | Comprehensive logging for compliance |","hierarchy":{"lvl0":"Guides","lvl1":"NeuroLink Guides","lvl2":"🏢 Enterprise Guides","lvl3":""}},
@@ -7080,11 +7113,11 @@
7080
7113
  {"objectID":"4e625e9030f4ea5fefc5b7d84590c608e6ba446d7d4b99f1cb1ba251e7f977bc","title":"Tool Not Available","url":"/docs/guides/mcp/server-catalog#tool-not-available","content":"Problem: AI can't see MCP tools.\n\nSolution:","hierarchy":{"lvl0":"Guides","lvl1":"MCP Server Catalog","lvl2":"Tool Not Available","lvl3":""}},
7081
7114
  {"objectID":"6d2d4fa3bbc54b540d933545bf408ed8aedbf14464bcc106ba3aa99ef10b3eeb","title":"Related Documentation","url":"/docs/guides/mcp/server-catalog#related-documentation","content":"MCP Integration Guide - Detailed MCP setup\nCustom Tools - Create and use custom MCP servers\nSecurity - MCP security best practices","hierarchy":{"lvl0":"Guides","lvl1":"MCP Server Catalog","lvl2":"Related Documentation","lvl3":""}},
7082
7115
  {"objectID":"16b53f447a7f270153e21177c8452dc74b51e8a2b9ace9b9dfa8aa2fb06c5eae","title":"Additional Resources","url":"/docs/guides/mcp/server-catalog#additional-resources","content":"MCP Specification - Official protocol spec\nMCP GitHub - Source code\nServer Registry - Official servers\nCommunity Servers - Community contributions\n\nNeed Help? Join our GitHub Discussions or open an issue.","hierarchy":{"lvl0":"Guides","lvl1":"MCP Server Catalog","lvl2":"Additional Resources","lvl3":""}},
7083
- {"objectID":"4e74c1e4ff68211a2a065ab2d47fe95bc680df578aa09601cb90da05a15f41b9","title":"Migrating from LangChain to NeuroLink","url":"/docs/guides/migration/from-langchain","content":"Migrating from LangChain to NeuroLink\n\nWhy Migrate?\n\nNeuroLink offers a simpler, more production-ready alternative to LangChain with these key advantages:\n\n| Benefit | LangChain | NeuroLink |\n| ----------------------- | ------------------------------------------- | -------------------------------------------------- |\n| TypeScript Support | Partial, many type issues | Full native TypeScript, complete type safety |\n| API Complexity | Complex chains, agents, memory abstractions | Single unified generate() API |\n| Provider Support | Requires separate packages | 40 providers built-in, single package |\n| Enterprise Features | Limited | HITL workflows, Redis memory, middleware, failover |\n| MCP Integration | None | Native 58+ MCP servers with zero config |\n| Bundle Size | Large (many dependencies) | Optimized, tree-shakeable |\n| Production Ready | Community-driven | In production use at Juspay |\n\nMigration time: Most applications can migrate in 1-2 hours, with full feature parity and improved capabilities.\n\nConcept Mapping\n\nUnderstanding how LangChain concepts map to NeuroLink:\n\n| LangChain Concept | NeuroLink Equivalent | Notes |\n| ----------------------------------- | --------------------------- | -------------------------------- |\n| ChatOpenAI, ChatAnthropic, etc. | provider parameter | Single unified interface |\n| LLMChain | generate() method | No chain abstraction needed |\n| ConversationChain | conversationMemory config | Built-in conversation tracking |\n| Agent + Tools | MCP Tools | Native tool support, 58+ servers |\n| Memory (BufferMemory, etc.) | conversationMemory | Redis or in-memory |\n| Callbacks | Middleware system | More powerful, composable |\n| VectorStoreRetriever | Custom tools + external MCP | Use MCP for RAG integrations |\n| OutputParser | structuredOutput | Zod schema validation |\n| PromptTemplate | Template literals / utils | Use native JS/TS patterns |\n\nQuick Start Migration\n\nBefore (LangChain)\n\nAfter (NeuroLink)\n\nKey changes:\nSingle import instead of multiple\nUnified generate() method instead of call()\nSimpler message format (no HumanMessage wrapper)\nType-safe result with content property\n\nFeature-by-Feature Migration\nChat Models\n\nLangChain:\n\nNeuroLink:\n\nBenefits:\nNo separate packages for each provider\nConsistent API across all 40 providers\nRuntime provider switching\nAutomatic failover\nChains\n\nLangChain:\n\nNeuroLink:\n\nBenefits:\nNo chain abstraction needed\nUse native JavaScript template literals\nMore flexible, easier to debug\nDirect control over prompts\nAgents and Tools\n\nLangChain:\n\nNeuroLink:\n\nBenefits:\n6 core tools work out-of-the-box (no setup)\n58+ MCP servers available\nNo complex agent configuration\nAI automatically chooses tools\nMemory\n\nLangChain:\n\nNeuroLink:\n\nWith Redis (production):\n\nBenefits:\nBuilt-in conversation tracking\nRedis support for distributed systems\nAutomatic context management\nExport conversations to JSON\nCallbacks\n\nLangChain:\n\nNeuroLink:\n\nBuilt-in middleware:\n\nBenefits:\nMore powerful than callbacks\nComposable middleware system\nBuilt-in analytics and auto-evaluation\nRequest and response hooks\n\nCommon Patterns\n\nPattern 1: RAG Applications\n\nLangChain:\n\nNeuroLink:\n\nBenefits:\nUse MCP for database/vector integrations\nMore flexible retrieval strategies\nDirect control over context injection\n\nPattern 2: Chatbots\n\nLangChain:\n\nNeuroLink:\n\nBenefits:\nRedis support for multi-instance deployments\nAutomatic context windowing\nExport conversations for analytics\nBuilt-in conversation management\n\nPattern 3: Multi-step Workflows\n\nLangChain:\n\nNeuroLink:\n\nWith orchestration:\n\nBenefits:\nExplicit control over workflow\nEasier to debug and test\nCan use conversation memory for context\nMore flexible than rigid chains\n\nStreaming\n\nLangChain:\n\nNeuroLink:\n\nBenefits:\nSimpler streaming API\nConsistent across all providers\nBuilt-in error handling\n\nStructured Output\n\nLangChain:\n\nNeuroLink:\n\nBenefits:\nBuilt-in Zod schema validation\nType-safe results\nAutomatic JSON parsing\nNo manual parsing needed\n\nGotchas and Differences\nMessage Format\n\nLangChain uses message classes:\n\nNeuroLink uses simple objects:\nError Handling\n\nLangChain: Basic try-catch required for all operations\n\nNeuroLink: Built-in retry, failover, and graceful degradation:\nTool Execution\n\nLangChain: Manual tool registration and execution\n\nNeuroLink: Automatic MCP tool discovery and exec","hierarchy":{"lvl0":"Guides","lvl1":"Migrating from LangChain to NeuroLink","lvl2":"","lvl3":""}},
7084
- {"objectID":"a48bbe2942ddb17ff0becb164f308f631fa2cb15ff71defc2a8efa2e759601a3","title":"Why Migrate?","url":"/docs/guides/migration/from-langchain#why-migrate","content":"NeuroLink offers a simpler, more production-ready alternative to LangChain with these key advantages:\n\n| Benefit | LangChain | NeuroLink |\n| ----------------------- | ------------------------------------------- | -------------------------------------------------- |\n| TypeScript Support | Partial, many type issues | Full native TypeScript, complete type safety |\n| API Complexity | Complex chains, agents, memory abstractions | Single unified generate() API |\n| Provider Support | Requires separate packages | 40 providers built-in, single package |\n| Enterprise Features | Limited | HITL workflows, Redis memory, middleware, failover |\n| MCP Integration | None | Native 58+ MCP servers with zero config |\n| Bundle Size | Large (many dependencies) | Optimized, tree-shakeable |\n| Production Ready | Community-driven | In production use at Juspay |\n\nMigration time: Most applications can migrate in 1-2 hours, with full feature parity and improved capabilities.","hierarchy":{"lvl0":"Guides","lvl1":"Migrating from LangChain to NeuroLink","lvl2":"Why Migrate?","lvl3":""}},
7116
+ {"objectID":"4e74c1e4ff68211a2a065ab2d47fe95bc680df578aa09601cb90da05a15f41b9","title":"Migrating from LangChain to NeuroLink","url":"/docs/guides/migration/from-langchain","content":"Migrating from LangChain to NeuroLink\n\nWhy Migrate?\n\nNeuroLink offers a simpler, more production-ready alternative to LangChain with these key advantages:\n\n| Benefit | LangChain | NeuroLink |\n| ----------------------- | ------------------------------------------- | -------------------------------------------------- |\n| TypeScript Support | Partial, many type issues | Full native TypeScript, complete type safety |\n| API Complexity | Complex chains, agents, memory abstractions | Single unified generate() API |\n| Provider Support | Requires separate packages | 44 providers built-in, single package |\n| Enterprise Features | Limited | HITL workflows, Redis memory, middleware, failover |\n| MCP Integration | None | Native 58+ MCP servers with zero config |\n| Bundle Size | Large (many dependencies) | Optimized, tree-shakeable |\n| Production Ready | Community-driven | In production use at Juspay |\n\nMigration time: Most applications can migrate in 1-2 hours, with full feature parity and improved capabilities.\n\nConcept Mapping\n\nUnderstanding how LangChain concepts map to NeuroLink:\n\n| LangChain Concept | NeuroLink Equivalent | Notes |\n| ----------------------------------- | --------------------------- | -------------------------------- |\n| ChatOpenAI, ChatAnthropic, etc. | provider parameter | Single unified interface |\n| LLMChain | generate() method | No chain abstraction needed |\n| ConversationChain | conversationMemory config | Built-in conversation tracking |\n| Agent + Tools | MCP Tools | Native tool support, 58+ servers |\n| Memory (BufferMemory, etc.) | conversationMemory | Redis or in-memory |\n| Callbacks | Middleware system | More powerful, composable |\n| VectorStoreRetriever | Custom tools + external MCP | Use MCP for RAG integrations |\n| OutputParser | structuredOutput | Zod schema validation |\n| PromptTemplate | Template literals / utils | Use native JS/TS patterns |\n\nQuick Start Migration\n\nBefore (LangChain)\n\nAfter (NeuroLink)\n\nKey changes:\nSingle import instead of multiple\nUnified generate() method instead of call()\nSimpler message format (no HumanMessage wrapper)\nType-safe result with content property\n\nFeature-by-Feature Migration\nChat Models\n\nLangChain:\n\nNeuroLink:\n\nBenefits:\nNo separate packages for each provider\nConsistent API across all 44 providers\nRuntime provider switching\nAutomatic failover\nChains\n\nLangChain:\n\nNeuroLink:\n\nBenefits:\nNo chain abstraction needed\nUse native JavaScript template literals\nMore flexible, easier to debug\nDirect control over prompts\nAgents and Tools\n\nLangChain:\n\nNeuroLink:\n\nBenefits:\n6 core tools work out-of-the-box (no setup)\n58+ MCP servers available\nNo complex agent configuration\nAI automatically chooses tools\nMemory\n\nLangChain:\n\nNeuroLink:\n\nWith Redis (production):\n\nBenefits:\nBuilt-in conversation tracking\nRedis support for distributed systems\nAutomatic context management\nExport conversations to JSON\nCallbacks\n\nLangChain:\n\nNeuroLink:\n\nBuilt-in middleware:\n\nBenefits:\nMore powerful than callbacks\nComposable middleware system\nBuilt-in analytics and auto-evaluation\nRequest and response hooks\n\nCommon Patterns\n\nPattern 1: RAG Applications\n\nLangChain:\n\nNeuroLink:\n\nBenefits:\nUse MCP for database/vector integrations\nMore flexible retrieval strategies\nDirect control over context injection\n\nPattern 2: Chatbots\n\nLangChain:\n\nNeuroLink:\n\nBenefits:\nRedis support for multi-instance deployments\nAutomatic context windowing\nExport conversations for analytics\nBuilt-in conversation management\n\nPattern 3: Multi-step Workflows\n\nLangChain:\n\nNeuroLink:\n\nWith orchestration:\n\nBenefits:\nExplicit control over workflow\nEasier to debug and test\nCan use conversation memory for context\nMore flexible than rigid chains\n\nStreaming\n\nLangChain:\n\nNeuroLink:\n\nBenefits:\nSimpler streaming API\nConsistent across all providers\nBuilt-in error handling\n\nStructured Output\n\nLangChain:\n\nNeuroLink:\n\nBenefits:\nBuilt-in Zod schema validation\nType-safe results\nAutomatic JSON parsing\nNo manual parsing needed\n\nGotchas and Differences\nMessage Format\n\nLangChain uses message classes:\n\nNeuroLink uses simple objects:\nError Handling\n\nLangChain: Basic try-catch required for all operations\n\nNeuroLink: Built-in retry, failover, and graceful degradation:\nTool Execution\n\nLangChain: Manual tool registration and execution\n\nNeuroLink: Automatic MCP tool discovery and exec","hierarchy":{"lvl0":"Guides","lvl1":"Migrating from LangChain to NeuroLink","lvl2":"","lvl3":""}},
7117
+ {"objectID":"a48bbe2942ddb17ff0becb164f308f631fa2cb15ff71defc2a8efa2e759601a3","title":"Why Migrate?","url":"/docs/guides/migration/from-langchain#why-migrate","content":"NeuroLink offers a simpler, more production-ready alternative to LangChain with these key advantages:\n\n| Benefit | LangChain | NeuroLink |\n| ----------------------- | ------------------------------------------- | -------------------------------------------------- |\n| TypeScript Support | Partial, many type issues | Full native TypeScript, complete type safety |\n| API Complexity | Complex chains, agents, memory abstractions | Single unified generate() API |\n| Provider Support | Requires separate packages | 44 providers built-in, single package |\n| Enterprise Features | Limited | HITL workflows, Redis memory, middleware, failover |\n| MCP Integration | None | Native 58+ MCP servers with zero config |\n| Bundle Size | Large (many dependencies) | Optimized, tree-shakeable |\n| Production Ready | Community-driven | In production use at Juspay |\n\nMigration time: Most applications can migrate in 1-2 hours, with full feature parity and improved capabilities.","hierarchy":{"lvl0":"Guides","lvl1":"Migrating from LangChain to NeuroLink","lvl2":"Why Migrate?","lvl3":""}},
7085
7118
  {"objectID":"577449cc99d461284c8c0b170d17bca277a1c8902b814a0c4c23a0ed7ec0d97a","title":"Concept Mapping","url":"/docs/guides/migration/from-langchain#concept-mapping","content":"Understanding how LangChain concepts map to NeuroLink:\n\n| LangChain Concept | NeuroLink Equivalent | Notes |\n| ----------------------------------- | --------------------------- | -------------------------------- |\n| ChatOpenAI, ChatAnthropic, etc. | provider parameter | Single unified interface |\n| LLMChain | generate() method | No chain abstraction needed |\n| ConversationChain | conversationMemory config | Built-in conversation tracking |\n| Agent + Tools | MCP Tools | Native tool support, 58+ servers |\n| Memory (BufferMemory, etc.) | conversationMemory | Redis or in-memory |\n| Callbacks | Middleware system | More powerful, composable |\n| VectorStoreRetriever | Custom tools + external MCP | Use MCP for RAG integrations |\n| OutputParser | structuredOutput | Zod schema validation |\n| PromptTemplate | Template literals / utils | Use native JS/TS patterns |","hierarchy":{"lvl0":"Guides","lvl1":"Migrating from LangChain to NeuroLink","lvl2":"Concept Mapping","lvl3":""}},
7086
7119
  {"objectID":"88a2415a8665ffb48e4aa61b4bfe5038b9058d71d57d7dfefdcae9926279ea2d","title":"After (NeuroLink)","url":"/docs/guides/migration/from-langchain#after-neurolink","content":"Key changes:\nSingle import instead of multiple\nUnified generate() method instead of call()\nSimpler message format (no HumanMessage wrapper)\nType-safe result with content property","hierarchy":{"lvl0":"Guides","lvl1":"Migrating from LangChain to NeuroLink","lvl2":"After (NeuroLink)","lvl3":""}},
7087
- {"objectID":"723e79f38aacc3d160110337cf2c477463d91fc4f7c2d5f2a0bff5184b9196b0","title":"1. Chat Models","url":"/docs/guides/migration/from-langchain#1-chat-models","content":"LangChain:\n\nNeuroLink:\n\nBenefits:\nNo separate packages for each provider\nConsistent API across all 40 providers\nRuntime provider switching\nAutomatic failover","hierarchy":{"lvl0":"Guides","lvl1":"Migrating from LangChain to NeuroLink","lvl2":"1. Chat Models","lvl3":""}},
7120
+ {"objectID":"723e79f38aacc3d160110337cf2c477463d91fc4f7c2d5f2a0bff5184b9196b0","title":"1. Chat Models","url":"/docs/guides/migration/from-langchain#1-chat-models","content":"LangChain:\n\nNeuroLink:\n\nBenefits:\nNo separate packages for each provider\nConsistent API across all 44 providers\nRuntime provider switching\nAutomatic failover","hierarchy":{"lvl0":"Guides","lvl1":"Migrating from LangChain to NeuroLink","lvl2":"1. Chat Models","lvl3":""}},
7088
7121
  {"objectID":"87ed2004761c0ac3f520eefcb0d6e3b9f4b3b6e8590a2b7ac77201de056c2d7a","title":"2. Chains","url":"/docs/guides/migration/from-langchain#2-chains","content":"LangChain:\n\nNeuroLink:\n\nBenefits:\nNo chain abstraction needed\nUse native JavaScript template literals\nMore flexible, easier to debug\nDirect control over prompts","hierarchy":{"lvl0":"Guides","lvl1":"Migrating from LangChain to NeuroLink","lvl2":"2. Chains","lvl3":""}},
7089
7122
  {"objectID":"dc52896ae97fa9f660e3fb62286c58c304440af383736dde467399d1f7adda39","title":"3. Agents and Tools","url":"/docs/guides/migration/from-langchain#3-agents-and-tools","content":"LangChain:\n\nNeuroLink:\n\nBenefits:\n6 core tools work out-of-the-box (no setup)\n58+ MCP servers available\nNo complex agent configuration\nAI automatically chooses tools","hierarchy":{"lvl0":"Guides","lvl1":"Migrating from LangChain to NeuroLink","lvl2":"3. Agents and Tools","lvl3":""}},
7090
7123
  {"objectID":"caf9522e06a3e9cb5bc8259e003d905389fb74982b7791849a6b338b28ef9d16","title":"4. Memory","url":"/docs/guides/migration/from-langchain#4-memory","content":"LangChain:\n\nNeuroLink:\n\nWith Redis (production):\n\nBenefits:\nBuilt-in conversation tracking\nRedis support for distributed systems\nAutomatic context management\nExport conversations to JSON","hierarchy":{"lvl0":"Guides","lvl1":"Migrating from LangChain to NeuroLink","lvl2":"4. Memory","lvl3":""}},
@@ -7109,15 +7142,15 @@
7109
7142
  {"objectID":"57ae3eeeeebc21be185b544e87e67d83d434547f5bfa002f9527648e8b9ae90b","title":"Performance Comparison","url":"/docs/guides/migration/from-langchain#performance-comparison","content":"Real-world benchmarks (averaged over 1000 requests):\n\n| Metric | LangChain | NeuroLink | Improvement |\n| -------------------------- | --------- | --------- | --------------- |\n| First response time | 850ms | 420ms | 50% faster |\n| Memory usage | 180MB | 85MB | 53% less |\n| Bundle size (minified) | 2.3MB | 890KB | 61% smaller |\n| Type errors (compile time) | Frequent | Rare | Better DX |","hierarchy":{"lvl0":"Guides","lvl1":"Migrating from LangChain to NeuroLink","lvl2":"Performance Comparison","lvl3":""}},
7110
7143
  {"objectID":"7ffaf72fa4826f16117855d87c69889019034bb89e2bdc084e7d38de3d539294","title":"Getting Help","url":"/docs/guides/migration/from-langchain#getting-help","content":"Documentation: https://neurolink.dev/docs\nExamples: Migration examples repo\nDiscord: Join our community\nGitHub Issues: Report issues","hierarchy":{"lvl0":"Guides","lvl1":"Migrating from LangChain to NeuroLink","lvl2":"Getting Help","lvl3":""}},
7111
7144
  {"objectID":"bd252895420dd111dafef549646a4e9b9ebd8639c3b6c75bbc4b88c5ed24744e","title":"See Also","url":"/docs/guides/migration/from-langchain#see-also","content":"NeuroLink Getting Started Guide\nComplete API Reference\nMCP Integration Guide\nEnterprise Features\nProvider Comparison","hierarchy":{"lvl0":"Guides","lvl1":"Migrating from LangChain to NeuroLink","lvl2":"See Also","lvl3":""}},
7112
- {"objectID":"1e2daa291d57c89396dd26585176a8263cbe2d5b17c0e62552e1c5ba852507ff","title":"Migrating from Vercel AI SDK to NeuroLink","url":"/docs/guides/migration/from-vercel-ai-sdk","content":"Migrating from Vercel AI SDK to NeuroLink\n\nWhy Migrate?\n\nWhile Vercel AI SDK is excellent for Next.js applications, NeuroLink offers broader capabilities for enterprise and multi-framework applications:\n\n| Benefit | Vercel AI SDK | NeuroLink |\n| ----------------------- | ------------------------------ | ---------------------------------------- |\n| Multi-Provider | Separate packages per provider | 40 providers in single package |\n| Framework Support | Optimized for Next.js | Next.js, SvelteKit, Express, any Node.js |\n| Tool Integration | Function calling only | MCP (58+ servers) + function calling |\n| Enterprise Features | Basic | HITL, Redis memory, middleware, failover |\n| Memory/State | useChat hook (client-side) | Redis-backed server-side memory |\n| Production Ready | Good for prototypes | In production use at Juspay |\n| Bundle Size | Moderate | Optimized, tree-shakeable |\n| Streaming | Excellent | Excellent (same quality) |\n\nMigration time: Most Next.js apps can migrate in 2-3 hours with feature parity and enhanced capabilities.\n\nConcept Mapping\n\n| Vercel AI SDK | NeuroLink | Notes |\n| ------------------------------------ | ----------------------- | ------------------------------------- |\n| generateText() | generate() | Similar API, unified across providers |\n| streamText() | stream() | Built-in streaming |\n| useChat() | Custom hook + API route | Server-side memory more robust |\n| CoreMessage | ChatMessage | Type compatible |\n| tool() function | MCP Tools | More powerful, 58+ servers |\n| Provider packages (@ai-sdk/openai) | provider parameter | Single package |\n| generateObject() | generate({ schema }) | Zod schema validation |\n| Edge Runtime | Node.js runtime | Compatible with Edge via adapters |\n\nQuick Start Migration\n\nBefore (Vercel AI SDK)\n\nAfter (NeuroLink)\n\nKey changes:\nSingle import instead of multiple packages\nUnified generate() method\ncontent instead of text property\nProvider specified in config, not per-call\n\nFeature-by-Feature Migration\nText Generation\n\nVercel AI SDK:\n\nNeuroLink:\nStreaming\n\nVercel AI SDK:\n\nNeuroLink:\n\nFull chunk data:\nTool Calling (Function Calling)\n\nVercel AI SDK:\n\nNeuroLink:\n\nBenefits:\nMCP servers provide 58+ pre-built integrations\nNo manual tool registration needed\nTools work across all providers\nStructured Output\n\nVercel AI SDK:\n\nNeuroLink:\n\nBenefits:\nType-safe results\nAutomatic validation\nWorks across all providers\nMulti-Provider Support\n\nVercel AI SDK:\n\nNeuroLink:\n\nWith automatic failover:\n\nBenefits:\nSingle package for all 40 providers\nRuntime provider switching\nAutomatic failover\nNo need to install separate packages\n\nNext.js Integration\n\nPattern 1: API Routes\n\nVercel AI SDK:\n\nNeuroLink:\n\nWith better error handling:\n\nPattern 2: Server Components\n\nVercel AI SDK:\n\nNeuroLink:\n\nWith caching:\n\nPattern 3: useChat Alternative\n\nVercel AI SDK:\n\nNeuroLink:\n\nOr create a custom hook:\n\nPattern 4: Server Actions\n\nVercel AI SDK:\n\nNeuroLink:\n\nWith user context:\n\nEdge Runtime Support\n\nVercel AI SDK:\n\nNeuroLink:\n\nRecommendation: NeuroLink works best with Node.js runtime. For Edge Runtime, consider using provider APIs directly or wait for Edge-compatible version.\n\nMultimodal Support\n\nVercel AI SDK:\n\nNeuroLink:\n\nWith file path:\n\nWith PDF:\n\nMigration Checklist\n[ ] Install NeuroLink: npm install @juspay/neurolink\n[ ] Setup Environment: Configure API keys in .env\n[ ] Test Basic Generation: Verify generate() works\n[ ] Migrate API Routes: Update /api routes\n[ ] Migrate Server Components: Update RSC usage\n[ ] Update Client Components: Replace useChat with custom hook\n[ ] Migrate Tool Calling: Convert functions to MCP tools\n[ ] Enable Conversation Memory: Add Redis if needed\n[ ] Update Streaming: Adapt streaming code\n[ ] Test Multi-Provider: Verify provider switching\n[ ] Update Types: Use NeuroLink types\n[ ] Remove Vercel AI SDK: Uninstall after migration\n\nPerformance Comparison\n\n| Metric | Vercel AI SDK | NeuroLink | Notes |\n| ---------------------- | ----------------- | -------------- | ------------------- |\n| Bundle Size (minified) | 890KB | 890KB | Similar |\n| First Response | 420ms | 420ms | Equivalent |\n| Streaming Latency | Excellent | Excellent | Both optimized |\n| Multi-Provider | Requires packages | Single pa","hierarchy":{"lvl0":"Guides","lvl1":"Migrating from Vercel AI SDK to NeuroLink","lvl2":"","lvl3":""}},
7113
- {"objectID":"1b4c7ad2fe68ede95233d4921cc923211694c7249534efac0b3439b82a924749","title":"Why Migrate?","url":"/docs/guides/migration/from-vercel-ai-sdk#why-migrate","content":"While Vercel AI SDK is excellent for Next.js applications, NeuroLink offers broader capabilities for enterprise and multi-framework applications:\n\n| Benefit | Vercel AI SDK | NeuroLink |\n| ----------------------- | ------------------------------ | ---------------------------------------- |\n| Multi-Provider | Separate packages per provider | 40 providers in single package |\n| Framework Support | Optimized for Next.js | Next.js, SvelteKit, Express, any Node.js |\n| Tool Integration | Function calling only | MCP (58+ servers) + function calling |\n| Enterprise Features | Basic | HITL, Redis memory, middleware, failover |\n| Memory/State | useChat hook (client-side) | Redis-backed server-side memory |\n| Production Ready | Good for prototypes | In production use at Juspay |\n| Bundle Size | Moderate | Optimized, tree-shakeable |\n| Streaming | Excellent | Excellent (same quality) |\n\nMigration time: Most Next.js apps can migrate in 2-3 hours with feature parity and enhanced capabilities.","hierarchy":{"lvl0":"Guides","lvl1":"Migrating from Vercel AI SDK to NeuroLink","lvl2":"Why Migrate?","lvl3":""}},
7145
+ {"objectID":"1e2daa291d57c89396dd26585176a8263cbe2d5b17c0e62552e1c5ba852507ff","title":"Migrating from Vercel AI SDK to NeuroLink","url":"/docs/guides/migration/from-vercel-ai-sdk","content":"Migrating from Vercel AI SDK to NeuroLink\n\nWhy Migrate?\n\nWhile Vercel AI SDK is excellent for Next.js applications, NeuroLink offers broader capabilities for enterprise and multi-framework applications:\n\n| Benefit | Vercel AI SDK | NeuroLink |\n| ----------------------- | ------------------------------ | ---------------------------------------- |\n| Multi-Provider | Separate packages per provider | 44 providers in single package |\n| Framework Support | Optimized for Next.js | Next.js, SvelteKit, Express, any Node.js |\n| Tool Integration | Function calling only | MCP (58+ servers) + function calling |\n| Enterprise Features | Basic | HITL, Redis memory, middleware, failover |\n| Memory/State | useChat hook (client-side) | Redis-backed server-side memory |\n| Production Ready | Good for prototypes | In production use at Juspay |\n| Bundle Size | Moderate | Optimized, tree-shakeable |\n| Streaming | Excellent | Excellent (same quality) |\n\nMigration time: Most Next.js apps can migrate in 2-3 hours with feature parity and enhanced capabilities.\n\nConcept Mapping\n\n| Vercel AI SDK | NeuroLink | Notes |\n| ------------------------------------ | ----------------------- | ------------------------------------- |\n| generateText() | generate() | Similar API, unified across providers |\n| streamText() | stream() | Built-in streaming |\n| useChat() | Custom hook + API route | Server-side memory more robust |\n| CoreMessage | ChatMessage | Type compatible |\n| tool() function | MCP Tools | More powerful, 58+ servers |\n| Provider packages (@ai-sdk/openai) | provider parameter | Single package |\n| generateObject() | generate({ schema }) | Zod schema validation |\n| Edge Runtime | Node.js runtime | Compatible with Edge via adapters |\n\nQuick Start Migration\n\nBefore (Vercel AI SDK)\n\nAfter (NeuroLink)\n\nKey changes:\nSingle import instead of multiple packages\nUnified generate() method\ncontent instead of text property\nProvider specified in config, not per-call\n\nFeature-by-Feature Migration\nText Generation\n\nVercel AI SDK:\n\nNeuroLink:\nStreaming\n\nVercel AI SDK:\n\nNeuroLink:\n\nFull chunk data:\nTool Calling (Function Calling)\n\nVercel AI SDK:\n\nNeuroLink:\n\nBenefits:\nMCP servers provide 58+ pre-built integrations\nNo manual tool registration needed\nTools work across all providers\nStructured Output\n\nVercel AI SDK:\n\nNeuroLink:\n\nBenefits:\nType-safe results\nAutomatic validation\nWorks across all providers\nMulti-Provider Support\n\nVercel AI SDK:\n\nNeuroLink:\n\nWith automatic failover:\n\nBenefits:\nSingle package for all 44 providers\nRuntime provider switching\nAutomatic failover\nNo need to install separate packages\n\nNext.js Integration\n\nPattern 1: API Routes\n\nVercel AI SDK:\n\nNeuroLink:\n\nWith better error handling:\n\nPattern 2: Server Components\n\nVercel AI SDK:\n\nNeuroLink:\n\nWith caching:\n\nPattern 3: useChat Alternative\n\nVercel AI SDK:\n\nNeuroLink:\n\nOr create a custom hook:\n\nPattern 4: Server Actions\n\nVercel AI SDK:\n\nNeuroLink:\n\nWith user context:\n\nEdge Runtime Support\n\nVercel AI SDK:\n\nNeuroLink:\n\nRecommendation: NeuroLink works best with Node.js runtime. For Edge Runtime, consider using provider APIs directly or wait for Edge-compatible version.\n\nMultimodal Support\n\nVercel AI SDK:\n\nNeuroLink:\n\nWith file path:\n\nWith PDF:\n\nMigration Checklist\n[ ] Install NeuroLink: npm install @juspay/neurolink\n[ ] Setup Environment: Configure API keys in .env\n[ ] Test Basic Generation: Verify generate() works\n[ ] Migrate API Routes: Update /api routes\n[ ] Migrate Server Components: Update RSC usage\n[ ] Update Client Components: Replace useChat with custom hook\n[ ] Migrate Tool Calling: Convert functions to MCP tools\n[ ] Enable Conversation Memory: Add Redis if needed\n[ ] Update Streaming: Adapt streaming code\n[ ] Test Multi-Provider: Verify provider switching\n[ ] Update Types: Use NeuroLink types\n[ ] Remove Vercel AI SDK: Uninstall after migration\n\nPerformance Comparison\n\n| Metric | Vercel AI SDK | NeuroLink | Notes |\n| ---------------------- | ----------------- | -------------- | ------------------- |\n| Bundle Size (minified) | 890KB | 890KB | Similar |\n| First Response | 420ms | 420ms | Equivalent |\n| Streaming Latency | Excellent | Excellent | Both optimized |\n| Multi-Provider | Requires packages | Single pa","hierarchy":{"lvl0":"Guides","lvl1":"Migrating from Vercel AI SDK to NeuroLink","lvl2":"","lvl3":""}},
7146
+ {"objectID":"1b4c7ad2fe68ede95233d4921cc923211694c7249534efac0b3439b82a924749","title":"Why Migrate?","url":"/docs/guides/migration/from-vercel-ai-sdk#why-migrate","content":"While Vercel AI SDK is excellent for Next.js applications, NeuroLink offers broader capabilities for enterprise and multi-framework applications:\n\n| Benefit | Vercel AI SDK | NeuroLink |\n| ----------------------- | ------------------------------ | ---------------------------------------- |\n| Multi-Provider | Separate packages per provider | 44 providers in single package |\n| Framework Support | Optimized for Next.js | Next.js, SvelteKit, Express, any Node.js |\n| Tool Integration | Function calling only | MCP (58+ servers) + function calling |\n| Enterprise Features | Basic | HITL, Redis memory, middleware, failover |\n| Memory/State | useChat hook (client-side) | Redis-backed server-side memory |\n| Production Ready | Good for prototypes | In production use at Juspay |\n| Bundle Size | Moderate | Optimized, tree-shakeable |\n| Streaming | Excellent | Excellent (same quality) |\n\nMigration time: Most Next.js apps can migrate in 2-3 hours with feature parity and enhanced capabilities.","hierarchy":{"lvl0":"Guides","lvl1":"Migrating from Vercel AI SDK to NeuroLink","lvl2":"Why Migrate?","lvl3":""}},
7114
7147
  {"objectID":"45ac16cfbfed3ab649edf8f3cb66fffe76dd4446e73582343c4225919915cad6","title":"Concept Mapping","url":"/docs/guides/migration/from-vercel-ai-sdk#concept-mapping","content":"| Vercel AI SDK | NeuroLink | Notes |\n| ------------------------------------ | ----------------------- | ------------------------------------- |\n| generateText() | generate() | Similar API, unified across providers |\n| streamText() | stream() | Built-in streaming |\n| useChat() | Custom hook + API route | Server-side memory more robust |\n| CoreMessage | ChatMessage | Type compatible |\n| tool() function | MCP Tools | More powerful, 58+ servers |\n| Provider packages (@ai-sdk/openai) | provider parameter | Single package |\n| generateObject() | generate({ schema }) | Zod schema validation |\n| Edge Runtime | Node.js runtime | Compatible with Edge via adapters |","hierarchy":{"lvl0":"Guides","lvl1":"Migrating from Vercel AI SDK to NeuroLink","lvl2":"Concept Mapping","lvl3":""}},
7115
7148
  {"objectID":"8b57f0b23d734238e9e896bd1af76aa7af594859a81caa1a7ee4fe33eb6dfb18","title":"After (NeuroLink)","url":"/docs/guides/migration/from-vercel-ai-sdk#after-neurolink","content":"Key changes:\nSingle import instead of multiple packages\nUnified generate() method\ncontent instead of text property\nProvider specified in config, not per-call","hierarchy":{"lvl0":"Guides","lvl1":"Migrating from Vercel AI SDK to NeuroLink","lvl2":"After (NeuroLink)","lvl3":""}},
7116
7149
  {"objectID":"cc4b2aefbe72ff0244f0f19b2ea2a45fb107576b1bf0371309837ea5d4b6bd01","title":"1. Text Generation","url":"/docs/guides/migration/from-vercel-ai-sdk#1-text-generation","content":"Vercel AI SDK:\n\nNeuroLink:","hierarchy":{"lvl0":"Guides","lvl1":"Migrating from Vercel AI SDK to NeuroLink","lvl2":"1. Text Generation","lvl3":""}},
7117
7150
  {"objectID":"e70e97dcf0c8ada2971bb97b94b7d29147a40ecae922b2d744915bce0a729bb0","title":"2. Streaming","url":"/docs/guides/migration/from-vercel-ai-sdk#2-streaming","content":"Vercel AI SDK:\n\nNeuroLink:\n\nFull chunk data:","hierarchy":{"lvl0":"Guides","lvl1":"Migrating from Vercel AI SDK to NeuroLink","lvl2":"2. Streaming","lvl3":""}},
7118
7151
  {"objectID":"57daefdaeea031a87618332ba19c5014e187e98826fd0dfc552dbbbf8f0db429","title":"3. Tool Calling (Function Calling)","url":"/docs/guides/migration/from-vercel-ai-sdk#3-tool-calling-function-calling","content":"Vercel AI SDK:\n\nNeuroLink:\n\nBenefits:\nMCP servers provide 58+ pre-built integrations\nNo manual tool registration needed\nTools work across all providers","hierarchy":{"lvl0":"Guides","lvl1":"Migrating from Vercel AI SDK to NeuroLink","lvl2":"3. Tool Calling (Function Calling)","lvl3":""}},
7119
7152
  {"objectID":"4b0708b0531ad08599a7d18da29be132b5f0ae1ba12c4922c626ddc38b6a2f6e","title":"4. Structured Output","url":"/docs/guides/migration/from-vercel-ai-sdk#4-structured-output","content":"Vercel AI SDK:\n\nNeuroLink:\n\nBenefits:\nType-safe results\nAutomatic validation\nWorks across all providers","hierarchy":{"lvl0":"Guides","lvl1":"Migrating from Vercel AI SDK to NeuroLink","lvl2":"4. Structured Output","lvl3":""}},
7120
- {"objectID":"c0f99d59f8dee45796176094ef083365256925e85e064365a6360317ce6a7a0c","title":"5. Multi-Provider Support","url":"/docs/guides/migration/from-vercel-ai-sdk#5-multi-provider-support","content":"Vercel AI SDK:\n\nNeuroLink:\n\nWith automatic failover:\n\nBenefits:\nSingle package for all 40 providers\nRuntime provider switching\nAutomatic failover\nNo need to install separate packages","hierarchy":{"lvl0":"Guides","lvl1":"Migrating from Vercel AI SDK to NeuroLink","lvl2":"5. Multi-Provider Support","lvl3":""}},
7153
+ {"objectID":"c0f99d59f8dee45796176094ef083365256925e85e064365a6360317ce6a7a0c","title":"5. Multi-Provider Support","url":"/docs/guides/migration/from-vercel-ai-sdk#5-multi-provider-support","content":"Vercel AI SDK:\n\nNeuroLink:\n\nWith automatic failover:\n\nBenefits:\nSingle package for all 44 providers\nRuntime provider switching\nAutomatic failover\nNo need to install separate packages","hierarchy":{"lvl0":"Guides","lvl1":"Migrating from Vercel AI SDK to NeuroLink","lvl2":"5. Multi-Provider Support","lvl3":""}},
7121
7154
  {"objectID":"2332537cf5704bfb605a46944d2479d5701e6714c1585ed98f9e40341f570dee","title":"Pattern 1: API Routes","url":"/docs/guides/migration/from-vercel-ai-sdk#pattern-1-api-routes","content":"Vercel AI SDK:\n\nNeuroLink:\n\nWith better error handling:","hierarchy":{"lvl0":"Guides","lvl1":"Migrating from Vercel AI SDK to NeuroLink","lvl2":"Pattern 1: API Routes","lvl3":""}},
7122
7155
  {"objectID":"2753cc3bc504abb74ae3ea6b888cbe3f1d4a5b7f259ea354e06ce035b9226848","title":"Pattern 2: Server Components","url":"/docs/guides/migration/from-vercel-ai-sdk#pattern-2-server-components","content":"Vercel AI SDK:\n\nNeuroLink:\n\nWith caching:","hierarchy":{"lvl0":"Guides","lvl1":"Migrating from Vercel AI SDK to NeuroLink","lvl2":"Pattern 2: Server Components","lvl3":""}},
7123
7156
  {"objectID":"f8bc77c1a27cb596cb8d0718fc4938d0579a2b1987b78101be4b6d2e7681ff55","title":"Pattern 3: useChat Alternative","url":"/docs/guides/migration/from-vercel-ai-sdk#pattern-3-usechat-alternative","content":"Vercel AI SDK:\n\nNeuroLink:\n\nOr create a custom hook:","hierarchy":{"lvl0":"Guides","lvl1":"Migrating from Vercel AI SDK to NeuroLink","lvl2":"Pattern 3: useChat Alternative","lvl3":""}},
@@ -7131,10 +7164,10 @@
7131
7164
  {"objectID":"fd83becf84da6888435c4f08567b0adddd12be63005c62d3a8625a2d8da2d4d4","title":"3. Structured Output","url":"/docs/guides/migration/from-vercel-ai-sdk#3-structured-output","content":"Before:\n\nAfter:","hierarchy":{"lvl0":"Guides","lvl1":"Migrating from Vercel AI SDK to NeuroLink","lvl2":"3. Structured Output","lvl3":""}},
7132
7165
  {"objectID":"521dfdf638bba7c1711fe44698aebd2562f811987346fad2509d5ba4168c69c2","title":"Getting Help","url":"/docs/guides/migration/from-vercel-ai-sdk#getting-help","content":"Documentation: https://neurolink.dev/docs\nMigration Support: GitHub Discussions\nExamples: Next.js Examples\nDiscord: Join community","hierarchy":{"lvl0":"Guides","lvl1":"Migrating from Vercel AI SDK to NeuroLink","lvl2":"Getting Help","lvl3":""}},
7133
7166
  {"objectID":"d2cfeb9f83e2dbf918d31efb6554b7cc2db6edea6c72b2c5e4a24bb991bcbf05","title":"See Also","url":"/docs/guides/migration/from-vercel-ai-sdk#see-also","content":"NeuroLink Getting Started\nNext.js Integration Guide\nAPI Reference\nStreaming Guide\nRedis Configuration\nProvider Comparison","hierarchy":{"lvl0":"Guides","lvl1":"Migrating from Vercel AI SDK to NeuroLink","lvl2":"See Also","lvl3":""}},
7134
- {"objectID":"536a8d5bedc06cfd1b013b8e97b89e8824816a5a2e37b6477d84816f6a985917","title":"Migration Guides","url":"/docs/guides/migration","content":"Migration Guides\n\nThis section contains guides for migrating to NeuroLink from other AI SDKs and frameworks.\n\nAvailable Migration Guides\nFrom LangChain - Migrate from LangChain to NeuroLink\nFrom Vercel AI SDK - Migrate from Vercel AI SDK to NeuroLink\n\nWhy Migrate to NeuroLink?\n\nNeuroLink offers several advantages over other AI SDKs:\nUniversal Provider Support - 40 AI providers through a single API\nMCP Integration - Full Model Context Protocol support with 58+ external servers\nEnterprise Ready - Production-tested at scale with Redis memory, failover, and telemetry\nProfessional CLI - Interactive command-line interface for development and testing\nTypeScript First - Full type safety with comprehensive type definitions\n\nGetting Help\n\nIf you encounter issues during migration:\nCheck the Troubleshooting Guide\nReview the API Reference\nJoin our community discussions","hierarchy":{"lvl0":"Guides","lvl1":"Migration Guides","lvl2":"","lvl3":""}},
7167
+ {"objectID":"536a8d5bedc06cfd1b013b8e97b89e8824816a5a2e37b6477d84816f6a985917","title":"Migration Guides","url":"/docs/guides/migration","content":"Migration Guides\n\nThis section contains guides for migrating to NeuroLink from other AI SDKs and frameworks.\n\nAvailable Migration Guides\nFrom LangChain - Migrate from LangChain to NeuroLink\nFrom Vercel AI SDK - Migrate from Vercel AI SDK to NeuroLink\n\nWhy Migrate to NeuroLink?\n\nNeuroLink offers several advantages over other AI SDKs:\nUniversal Provider Support - 44 AI providers through a single API\nMCP Integration - Full Model Context Protocol support with 58+ external servers\nEnterprise Ready - Production-tested at scale with Redis memory, failover, and telemetry\nProfessional CLI - Interactive command-line interface for development and testing\nTypeScript First - Full type safety with comprehensive type definitions\n\nGetting Help\n\nIf you encounter issues during migration:\nCheck the Troubleshooting Guide\nReview the API Reference\nJoin our community discussions","hierarchy":{"lvl0":"Guides","lvl1":"Migration Guides","lvl2":"","lvl3":""}},
7135
7168
  {"objectID":"38502c9599731d7a721568a8427f541efbc0643e8a97796165cb6d9dde6da1b5","title":"Migration Guides","url":"/docs/guides/migration#migration-guides","content":"This section contains guides for migrating to NeuroLink from other AI SDKs and frameworks.","hierarchy":{"lvl0":"Guides","lvl1":"Migration Guides","lvl2":"Migration Guides","lvl3":""}},
7136
7169
  {"objectID":"f9c9dea1509377a27c2f9a5d1b81d433c1e594c1cc69c507253746886953ee77","title":"Available Migration Guides","url":"/docs/guides/migration#available-migration-guides","content":"From LangChain - Migrate from LangChain to NeuroLink\nFrom Vercel AI SDK - Migrate from Vercel AI SDK to NeuroLink","hierarchy":{"lvl0":"Guides","lvl1":"Migration Guides","lvl2":"Available Migration Guides","lvl3":""}},
7137
- {"objectID":"27a828af4dd86f7e966613d796b583f1412b09eef740530a0e763b1718aab47e","title":"Why Migrate to NeuroLink?","url":"/docs/guides/migration#why-migrate-to-neurolink","content":"NeuroLink offers several advantages over other AI SDKs:\nUniversal Provider Support - 40 AI providers through a single API\nMCP Integration - Full Model Context Protocol support with 58+ external servers\nEnterprise Ready - Production-tested at scale with Redis memory, failover, and telemetry\nProfessional CLI - Interactive command-line interface for development and testing\nTypeScript First - Full type safety with comprehensive type definitions","hierarchy":{"lvl0":"Guides","lvl1":"Migration Guides","lvl2":"Why Migrate to NeuroLink?","lvl3":""}},
7170
+ {"objectID":"27a828af4dd86f7e966613d796b583f1412b09eef740530a0e763b1718aab47e","title":"Why Migrate to NeuroLink?","url":"/docs/guides/migration#why-migrate-to-neurolink","content":"NeuroLink offers several advantages over other AI SDKs:\nUniversal Provider Support - 44 AI providers through a single API\nMCP Integration - Full Model Context Protocol support with 58+ external servers\nEnterprise Ready - Production-tested at scale with Redis memory, failover, and telemetry\nProfessional CLI - Interactive command-line interface for development and testing\nTypeScript First - Full type safety with comprehensive type definitions","hierarchy":{"lvl0":"Guides","lvl1":"Migration Guides","lvl2":"Why Migrate to NeuroLink?","lvl3":""}},
7138
7171
  {"objectID":"11c8b39ce9c4ef40dd1ad9c23ad2da980a70650294d402c63f3fe0584a5991d8","title":"Getting Help","url":"/docs/guides/migration#getting-help","content":"If you encounter issues during migration:\nCheck the Troubleshooting Guide\nReview the API Reference\nJoin our community discussions","hierarchy":{"lvl0":"Guides","lvl1":"Migration Guides","lvl2":"Getting Help","lvl3":""}},
7139
7172
  {"objectID":"f1bf388ad531e7bf8a57be09eada81f24782a1c9fee6c74b08750daee692ebb1","title":"Migration Guide","url":"/docs/guides/migration-guide","content":"Migration Guide\n\nUse this guide when upgrading existing NeuroLink deployments to the latest release. The focus is on new capabilities (multimodal chat, auto evaluation, loop mode, orchestration) and the configuration changes required to adopt them safely.\n\nCompatibility Summary\n\n| Area | Status |\n| ------------- | -------------------------------------------------------------------------------------- |\n| Core SDK APIs | ✅ Backward compatible. generate() and stream() signatures are unchanged. |\n| CLI commands | ✅ Existing scripts continue to work. New options are opt-in. |\n| Configuration | ⚠️ New environment variables for evaluation and regional routing. Review .env files. |\n| Tooling | ✅ MCP, analytics, and telemetry remain compatible. |\n\nRecommended Upgrade Steps\nUpdate dependencies\nRefresh CLI binaries\nReview new environment variables\nAdd NEUROLINK_EVALUATION_PROVIDER, NEUROLINK_EVALUATION_MODEL, and NEUROLINK_EVALUATION_THRESHOLD if you enable the auto-evaluation engine.\nEnsure AWS_REGION / GOOGLE_VERTEX_LOCATION are set when targeting specific regions.\nProvide REDIS_URL if you want loop sessions to auto-mount persistent memory.\nAdopt multimodal support\nCLI: use --image (multiple allowed) with generate or stream.\nSDK: pass input.images (string path, HTTPS URL, or Buffer).\nUpdate downstream parsing to handle result.toolCalls on multimodal calls.\nLeverage auto evaluation (optional)\nCLI: add --enableEvaluation to commands or set it once inside neurolink loop (set enableEvaluation true).\nSDK: include enableEvaluation: true per request.\nCapture result.evaluation in logs or dashboards.\nIntroduce loop sessions to teams\nDocument the new loop workflow, especially how to set provider, set model, and export transcripts.\nConfigure Redis for persistent memory where collaboration spans multiple terminals.\nEnable orchestration (server workloads)\nInstantiate new NeuroLink({ enableOrchestration: true }) for services that benefit from automatic provider routing.\nMonitor debug logs (NEUROLINK_DEBUG=true) in staging before enabling in production.\n\nBehaviour Changes to Note\nEvaluation output – GenerateResult now includes toolCalls, toolResults, and richer analytics. Update any custom serializers accordingly.\nLoop session variables – The new session state respects set/unset commands. Scripts that previously relied on global env variables should be adjusted to set session variables explicitly.\nRedis auto-detect – Starting a loop with --auto-redis sets STORAGE_TYPE=redis automatically. Ensure Redis credentials are valid; otherwise disable with --no-auto-redis.\nRegional routing – Requests that include region now forward directly to the provider. Validate quota and model availability per region to avoid 404s.\n\nTesting Checklist\nRun npx @juspay/neurolink status --verbose after upgrading credentials.\nExecute a multimodal CLI call (generate --image) to confirm file uploads succeed.\nRun a sample with --enableEvaluation --format json and verify the evaluation block is emitted.\nStress-test loop mode with Redis by running memory stats and memory history.\nIf orchestration is enabled, tail logs for Orchestration route determined messages and confirm provider availability.\n\nRollback Plan\nKeep the previous CLI binary (npm install -g @juspay/neurolink@<old-version>) handy.\nMaintain separate .env files for pre- and post-upgrade configurations.\nDisable orchestration and evaluation env vars if you encounter regressions; core generation continues to work without them.\n\nFor additional support open an issue on GitHub or reach out via the Juspay developer channels.","hierarchy":{"lvl0":"Guides","lvl1":"Migration Guide","lvl2":"","lvl3":""}},
7140
7173
  {"objectID":"c7dc551305b16d451780208538f9e8324bc003ee01438a3e04c3c7e75124f06b","title":"Migration Guide","url":"/docs/guides/migration-guide#migration-guide","content":"Use this guide when upgrading existing NeuroLink deployments to the latest release. The focus is on new capabilities (multimodal chat, auto evaluation, loop mode, orchestration) and the configuration changes required to adopt them safely.","hierarchy":{"lvl0":"Guides","lvl1":"Migration Guide","lvl2":"Migration Guide","lvl3":""}},
@@ -8904,14 +8937,13 @@
8904
8937
  {"objectID":"a68c16599df99491c1e91d0857d3b92f4bd78a3caa88b6279381ff1ca665926f","title":"Tier 2 (JSON catalog) providers no longer use a manifest here","url":"/docs/provider-integration/manifests/README#tier-2-json-catalog-providers-no-longer-use-a-manifest-here","content":"As of the provider-JSON-catalog refactor, Tier 2 providers are declared\nentirely in src/lib/providers/catalog/<id>.json, validated by the zod\nschema in src/lib/providers/catalog/schema.ts. That file's evidence\nobject — rosterVerified, addedInPR, and optionally authProbe,\nbillingProbe, liveMatrix — carries the same onboarding evidence a\nmanifest used to hold, so a separate manifest file would just duplicate\nit. tools/verify-provider-onboarding.ts reflects this: for any provider\nwith a matching src/lib/providers/catalog/<id>.json file, the gate\nchecks that the JSON file exists, parses via the real zod schema, and\n(via that same successful parse, since both fields are non-optional in\nthe schema) carries evidence.rosterVerified and evidence.addedInPR.\n\ncerebras.json and sambanova.json — the two manifests that used to\nlive in this directory — were removed for this reason: both providers\nare now JSON-catalog entries, and their onboarding evidence lives in\nsrc/lib/providers/catalog/cerebras.json and\nsrc/lib/providers/catalog/sambanova.json respectively.","hierarchy":{"lvl0":"Provider Integration","lvl1":"Provider Manifests","lvl2":"Tier 2 (JSON catalog) providers no longer use a manifest here","lvl3":""}},
8905
8938
  {"objectID":"00fb88ca42034f14d0a87eea1d06b38350fc2cb9b5bed8bb3f544f10b3cd99ab","title":"Tier 3/4 (hand-written) providers still use a manifest here","url":"/docs/provider-integration/manifests/README#tier-34-hand-written-providers-still-use-a-manifest-here","content":"A provider onboarded outside the JSON catalog — a custom adapter (Tier 3)\nor fully custom integration (Tier 4) — has no catalog JSON file, so\ntools/verify-provider-onboarding.ts falls back to its original\nfour-check flow for it, including a manifest at\ndocs/provider-integration/manifests/<name>.json. The shape below still\napplies to those providers.\n\nThe block is annotated JSONC for documentation purposes only — the\n// comments and trailing comma explain each field but are not valid\nJSON. A real <provider>.json manifest file must be strict JSON: no\ncomments, no trailing commas.","hierarchy":{"lvl0":"Provider Integration","lvl1":"Provider Manifests","lvl2":"Tier 3/4 (hand-written) providers still use a manifest here","lvl3":""}},
8906
8939
  {"objectID":"4384ec258a233739ea35584f79662d5111be0b8defd38f75a6ab8068bf3a7e30","title":"How it's checked","url":"/docs/provider-integration/manifests/README#how-its-checked","content":"pnpm run verify:provider-onboarding (tools/verify-provider-onboarding.ts)\nfails a PR that introduces a new AIProviderName member without matching\nonboarding evidence: a valid catalog JSON entry for Tier 2 providers (see\nabove), or a structurally valid manifest here for Tier 3/4 providers. It\ndoes not retroactively require either for providers that predate the gate\n— see that tool's LEGACY_PROVIDERS list.","hierarchy":{"lvl0":"Provider Integration","lvl1":"Provider Manifests","lvl2":"How it's checked","lvl3":""}},
8907
- {"objectID":"c533e90a3190ff6ad955d7e0c25b0b6370956144cb2b59f1c07b4ffdb1b1e452","title":"Provider Descriptor Migration Ledger","url":"/docs/provider-integration/migration-ledger","content":"Provider Descriptor Migration Ledger\n\nInventory taken at origin/release @ 2cefa3ae4115f817f75a415b6bc70fc3ecaed2d3. TypeSafe was added afterwards (#1761) and is included below; the 25-entry count matches origin/release @ f536fd091.\n\nAll 25 entries in HAND_DESCRIPTORS (src/lib/factories/providerDescriptors.ts:45-526) were inventoried against their live implementation files. This ledger records, per provider, why it is (or isn't) a JSON-catalog migration candidate, so \"add a provider\" work doesn't re-litigate the same analysis per PR.\n\nEvery verdict allows one thing regardless of class: the static descriptor metadata (name, aliases, default model, credential env var names, setup URL) can always move into a class-backed JSON record. \"Must remain class\" means the execution — the inference loop (generate/stream/decide, per the provider's inferenceKinds), auth, media pipelines — cannot be reduced to declarative catalog data; it does not mean the provider is exempt from descriptor consolidation.\n\nJSON-ready now (1)\n\n| Provider | Note |\n| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| mistral | Already ConfiguredOpenAICompatProvider, driven by catalog/mistral.json. Remove the hand descriptor once its data conflicts are resolved: descriptor setupUrl disagrees with the JSON, the descriptor omits a model env var the JSON expects, and it carries timeout/priority/key-format fields the current descriptor builder doesn't derive from JSON yet. |\n\nSchema extension needed (2)\n\n| Provider | What the catalog schema is missing |\n| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| huggingface | Alternate credential env vars (HUGGINGFACE_API_KEY with HF_TOKEN fallback), toolSupport: model-dependent, timeouts, auto-select priority. Closest direct-vendor class-removal candidate once these fields exist. |\n| deepseek | A narrowly-scoped response_format downgrade quirk (json_object coercion). No arbitrary executable hooks — this should be one named catalog quirk field, not a scripting escape hatch. |\n\nShared adapter needed (9)\n\nThree adapter families, not nine one-off migrations:\n\nLocal-runtime adapter (ollama, lm-studio, llamacpp) — one OpenAI-compatible local-runtime adapter with optional auth, model discovery/probe, actionable transport errors, timeout policy, optional embeddings. Vendor-specific pull/diagnostic guidance becomes adapter data.\n\nEmbedding-only adapter (voyage, jina, cohere) — one embedding-only provider adapter parameterized by path, request shape, batch size, response-extraction/index policy, unsupported-surface messages. jina extends it with an optional rerank operation profile (don't force reranking into the boolean capability shape). cohere composes this with a generic OpenAI chat adapter (it has both /compatibility/v1 chat and native /v2/embed); preserve its batch limit and body-field quirks in the embedding profile.\n\nImage-generation adapter (stability, ideogram, recraft) — one image-generation adapter family: explicit multipart vs JSON request profile, base64-vs-URL response profile, custom auth-header support, model-path mapping as data. SSRF and bounded-read policy remain shared mandatory behavior, not per-vendor opt-outs.\n\nMust remain class (12)\n\n| Provider | Why |\n| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------","hierarchy":{"lvl0":"Provider Integration","lvl1":"Provider Descriptor Migration Ledger","lvl2":"","lvl3":""}},
8908
- {"objectID":"b5d36740e9c9cb41c6ccb01db0a9fb1f9c0ac8ac59f1084b9a92332dd79c3e4d","title":"Provider Descriptor Migration Ledger","url":"/docs/provider-integration/migration-ledger#provider-descriptor-migration-ledger","content":"Inventory taken at origin/release @ 2cefa3ae4115f817f75a415b6bc70fc3ecaed2d3. TypeSafe was added afterwards (#1761) and is included below; the 25-entry count matches origin/release @ f536fd091.\n\nAll 25 entries in HAND_DESCRIPTORS (src/lib/factories/providerDescriptors.ts:45-526) were inventoried against their live implementation files. This ledger records, per provider, why it is (or isn't) a JSON-catalog migration candidate, so \"add a provider\" work doesn't re-litigate the same analysis per PR.\n\nEvery verdict allows one thing regardless of class: the static descriptor metadata (name, aliases, default model, credential env var names, setup URL) can always move into a class-backed JSON record. \"Must remain class\" means the execution — the inference loop (generate/stream/decide, per the provider's inferenceKinds), auth, media pipelines — cannot be reduced to declarative catalog data; it does not mean the provider is exempt from descriptor consolidation.","hierarchy":{"lvl0":"Provider Integration","lvl1":"Provider Descriptor Migration Ledger","lvl2":"Provider Descriptor Migration Ledger","lvl3":""}},
8909
- {"objectID":"deb8501ebc237fba950957bc1412916b2e858557709e8a53dc4d69bf8c140afc","title":"JSON-ready now (1)","url":"/docs/provider-integration/migration-ledger#json-ready-now-1","content":"| Provider | Note |\n| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| mistral | Already ConfiguredOpenAICompatProvider, driven by catalog/mistral.json. Remove the hand descriptor once its data conflicts are resolved: descriptor setupUrl disagrees with the JSON, the descriptor omits a model env var the JSON expects, and it carries timeout/priority/key-format fields the current descriptor builder doesn't derive from JSON yet. |","hierarchy":{"lvl0":"Provider Integration","lvl1":"Provider Descriptor Migration Ledger","lvl2":"JSON-ready now (1)","lvl3":""}},
8910
- {"objectID":"317dee1921a7baa828ab85a8de0b4453a0d6321dbb9f5af7e00303156a582cc7","title":"Schema extension needed (2)","url":"/docs/provider-integration/migration-ledger#schema-extension-needed-2","content":"| Provider | What the catalog schema is missing |\n| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| huggingface | Alternate credential env vars (HUGGINGFACE_API_KEY with HF_TOKEN fallback), toolSupport: model-dependent, timeouts, auto-select priority. Closest direct-vendor class-removal candidate once these fields exist. |\n| deepseek | A narrowly-scoped response_format downgrade quirk (json_object coercion). No arbitrary executable hooks — this should be one named catalog quirk field, not a scripting escape hatch. |","hierarchy":{"lvl0":"Provider Integration","lvl1":"Provider Descriptor Migration Ledger","lvl2":"Schema extension needed (2)","lvl3":""}},
8940
+ {"objectID":"c533e90a3190ff6ad955d7e0c25b0b6370956144cb2b59f1c07b4ffdb1b1e452","title":"Provider Descriptor Migration Ledger","url":"/docs/provider-integration/migration-ledger","content":"Provider Descriptor Migration Ledger\n\nInventory taken at origin/release @ 2cefa3ae4115f817f75a415b6bc70fc3ecaed2d3. TypeSafe was added afterwards (#1761) and is included below; the 25-entry count matched origin/release @ f536fd091.\n\nmistral, huggingface and deepseek have since migrated to the JSON catalog and been removed from HAND_DESCRIPTORS (#1781) — see Migrated below — and laya (decision-only, like TypeSafe) was added as a hand descriptor afterwards. Net effect: 25 minus the 3 migrated plus 1 (laya) leaves 23 entries currently in HAND_DESCRIPTORS (src/lib/factories/providerDescriptors.ts). The category counts below (Shared adapter needed / Must remain class / Must remain core class) cover exactly those 23; the 3 migrated providers are recorded separately as done and no longer count toward \"what remains.\"\n\nThis ledger records, per provider, why it is (or isn't) a JSON-catalog migration candidate, so \"add a provider\" work doesn't re-litigate the same analysis per PR.\n\nEvery verdict allows one thing regardless of class: the static descriptor metadata (name, aliases, default model, credential env var names, setup URL) can always move into a class-backed JSON record. \"Must remain class\" means the execution — the inference loop (generate/stream/decide, per the provider's inferenceKinds), auth, media pipelines — cannot be reduced to declarative catalog data; it does not mean the provider is exempt from descriptor consolidation.\n\nMigrated (3)\n\nAll three ran the same class-removal path this ledger recommended below: resolve the JSON/descriptor data conflicts, then delete the hand descriptor and hand-written subclass so the provider is fully catalog-derived.\n\n| Provider | Note |\n| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| mistral | Moved onto catalog/mistral.json. defaultModel now derives from the new optional models.registryDefaultModel field when present (only Mistral sets it), and the setupUrl/key-format/timeout/priority conflicts this ledger flagged were resolved in the JSON rather than carried forward. |\n| huggingface | Moved onto catalog/huggingface.json, which gained wire.apiKeyFallbackEnvVars (HF_TOKEN alongside HUGGINGFACE_API_KEY) and capabilities.tools: \"model-dependent\" — the two schema gaps this ledger flagged below before the extension landed. |\n| deepseek | Moved onto catalog/deepseek.json, using the new quirks.responseFormatDowngrade: \"json-schema-to-json-object\" field (DeepSeek 400s on json_schema) instead of an executable hook — the named-quirk approach this ledger recommended. It also sets quirks.replayReasoningContent: true. |\n\nShared adapter needed (9)\n\nThree adapter families, not nine one-off migrations:\n\nLocal-runtime adapter (ollama, lm-studio, llamacpp) — one OpenAI-compatible local-runtime adapter with optional auth, model discovery/probe, actionable transport errors, timeout policy, optional embeddings. Vendor-specific pull/diagnostic guidance becomes adapter data.\n\nEmbedding-only adapter (voyage, jina, cohere) — one embedding-only provider adapter parameterized by path, request shape, batch size, response-extraction/index policy, unsupported-surface messages. jina extends it with an optional rerank operation profile (don't force reranking into the boolean capability shape). cohere composes this with a generic OpenAI chat adapter (it has both /compatibility/v1 chat and native /v2/embed); preserve its batch limit and body-field quirks in the embedding profile.\n\nImage-generation adapter (stability, ideogram, recraft) — one image-generation adapter family: explicit multipart vs JSON request profile, base64-vs-URL response profile, custom auth-header support, model-path mapping as data. SSRF and bounded-read policy remain shared mandatory behavior, not per-vendor opt-outs.\n\nMust remain class (13)\n\n| Provider | Why |\n| ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------","hierarchy":{"lvl0":"Provider Integration","lvl1":"Provider Descriptor Migration Ledger","lvl2":"","lvl3":""}},
8941
+ {"objectID":"b5d36740e9c9cb41c6ccb01db0a9fb1f9c0ac8ac59f1084b9a92332dd79c3e4d","title":"Provider Descriptor Migration Ledger","url":"/docs/provider-integration/migration-ledger#provider-descriptor-migration-ledger","content":"Inventory taken at origin/release @ 2cefa3ae4115f817f75a415b6bc70fc3ecaed2d3. TypeSafe was added afterwards (#1761) and is included below; the 25-entry count matched origin/release @ f536fd091.\n\nmistral, huggingface and deepseek have since migrated to the JSON catalog and been removed from HAND_DESCRIPTORS (#1781) — see Migrated below — and laya (decision-only, like TypeSafe) was added as a hand descriptor afterwards. Net effect: 25 minus the 3 migrated plus 1 (laya) leaves 23 entries currently in HAND_DESCRIPTORS (src/lib/factories/providerDescriptors.ts). The category counts below (Shared adapter needed / Must remain class / Must remain core class) cover exactly those 23; the 3 migrated providers are recorded separately as done and no longer count toward \"what remains.\"\n\nThis ledger records, per provider, why it is (or isn't) a JSON-catalog migration candidate, so \"add a provider\" work doesn't re-litigate the same analysis per PR.\n\nEvery verdict allows one thing regardless of class: the static descriptor metadata (name, aliases, default model, credential env var names, setup URL) can always move into a class-backed JSON record. \"Must remain class\" means the execution — the inference loop (generate/stream/decide, per the provider's inferenceKinds), auth, media pipelines — cannot be reduced to declarative catalog data; it does not mean the provider is exempt from descriptor consolidation.","hierarchy":{"lvl0":"Provider Integration","lvl1":"Provider Descriptor Migration Ledger","lvl2":"Provider Descriptor Migration Ledger","lvl3":""}},
8942
+ {"objectID":"fb3b171594dd4553aaf04fd301572eb1db1e459c15541867bd93a67ece8cfadb","title":"Migrated (3)","url":"/docs/provider-integration/migration-ledger#migrated-3","content":"All three ran the same class-removal path this ledger recommended below: resolve the JSON/descriptor data conflicts, then delete the hand descriptor and hand-written subclass so the provider is fully catalog-derived.\n\n| Provider | Note |\n| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| mistral | Moved onto catalog/mistral.json. defaultModel now derives from the new optional models.registryDefaultModel field when present (only Mistral sets it), and the setupUrl/key-format/timeout/priority conflicts this ledger flagged were resolved in the JSON rather than carried forward. |\n| huggingface | Moved onto catalog/huggingface.json, which gained wire.apiKeyFallbackEnvVars (HF_TOKEN alongside HUGGINGFACE_API_KEY) and capabilities.tools: \"model-dependent\" — the two schema gaps this ledger flagged below before the extension landed. |\n| deepseek | Moved onto catalog/deepseek.json, using the new quirks.responseFormatDowngrade: \"json-schema-to-json-object\" field (DeepSeek 400s on json_schema) instead of an executable hook — the named-quirk approach this ledger recommended. It also sets quirks.replayReasoningContent: true. |","hierarchy":{"lvl0":"Provider Integration","lvl1":"Provider Descriptor Migration Ledger","lvl2":"Migrated (3)","lvl3":""}},
8911
8943
  {"objectID":"cbc4193e5e9ffb4c77dd167fe137bc62cfbab5adbe808e814a374670bef12175","title":"Shared adapter needed (9)","url":"/docs/provider-integration/migration-ledger#shared-adapter-needed-9","content":"Three adapter families, not nine one-off migrations:\n\nLocal-runtime adapter (ollama, lm-studio, llamacpp) — one OpenAI-compatible local-runtime adapter with optional auth, model discovery/probe, actionable transport errors, timeout policy, optional embeddings. Vendor-specific pull/diagnostic guidance becomes adapter data.\n\nEmbedding-only adapter (voyage, jina, cohere) — one embedding-only provider adapter parameterized by path, request shape, batch size, response-extraction/index policy, unsupported-surface messages. jina extends it with an optional rerank operation profile (don't force reranking into the boolean capability shape). cohere composes this with a generic OpenAI chat adapter (it has both /compatibility/v1 chat and native /v2/embed); preserve its batch limit and body-field quirks in the embedding profile.\n\nImage-generation adapter (stability, ideogram, recraft) — one image-generation adapter family: explicit multipart vs JSON request profile, base64-vs-URL response profile, custom auth-header support, model-path mapping as data. SSRF and bounded-read policy remain shared mandatory behavior, not per-vendor opt-outs.","hierarchy":{"lvl0":"Provider Integration","lvl1":"Provider Descriptor Migration Ledger","lvl2":"Shared adapter needed (9)","lvl3":""}},
8912
- {"objectID":"dfcef07cbe4841f92c204d0ab2f64ab5bafd5cad7da138a9ff481b47b72d89b6","title":"Must remain class (12)","url":"/docs/provider-integration/migration-ledger#must-remain-class-12","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 (12)","lvl3":""}},
8944
+ {"objectID":"14456bd556dd45363546785079362ce7acbd26bfa6a65a06c638acb656fbbce2","title":"Must remain class (13)","url":"/docs/provider-integration/migration-ledger#must-remain-class-13","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 (13)","lvl3":""}},
8913
8945
  {"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":""}},
8914
- {"objectID":"235850085d9102413140920b9d5e5e2ff6113d007c865f5d78012af80fbf1843","title":"Suggested execution order","url":"/docs/provider-integration/migration-ledger#suggested-execution-order","content":"mistral — low-risk once the conflicts above are resolved, JSON-ready-now; proves the removal path for a hand descriptor that already has a JSON twin.\nhuggingface, deepseek — smallest schema extensions (few named fields), each unlocks one direct-vendor class removal.\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 typesafe are excluded from the first-class-count migration priority entirely — the first three add no direct-vendor coverage however they're implemented, and typesafe is a decide-only provider with no generate/stream surface to migrate at all.","hierarchy":{"lvl0":"Provider Integration","lvl1":"Provider Descriptor Migration Ledger","lvl2":"Suggested execution order","lvl3":""}},
8946
+ {"objectID":"235850085d9102413140920b9d5e5e2ff6113d007c865f5d78012af80fbf1843","title":"Suggested execution order","url":"/docs/provider-integration/migration-ledger#suggested-execution-order","content":"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) 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 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":""}},
8915
8947
  {"objectID":"6122b2e83358a45c64da87c1ca80a2d579cdfb087a6d9dc58b1e02805296b14a","title":"OpenAI-Compatible Provider Catalog","url":"/docs/provider-integration/openai-compat-catalog","content":"OpenAI-Compatible Provider Catalog\n\nSixteen OpenAI-compatible providers — API Route, Baseten, SambaNova,\nCerebras, Groq, xAI, Together AI, Fireworks AI, Perplexity, Mistral,\nCloudflare Workers AI, GMI Cloud, Inception Labs, io.net Intelligence,\nMancer, Upstage — are 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.\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 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.\n\nKnown pre-existing quirk this migration preserved (not fixed)\n\nMistral'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\nConfiguredOpenAI","hierarchy":{"lvl0":"Provider Integration","lvl1":"OpenAI-Compatible Provider Catalog","lvl2":"","lvl3":""}},
8916
8948
  {"objectID":"9a91a5b4a32a9f1e89c6a28f762c3594c4a39d96d32cc9e6e1fa0f5cb3f609e4","title":"OpenAI-Compatible Provider Catalog","url":"/docs/provider-integration/openai-compat-catalog#openai-compatible-provider-catalog","content":"Sixteen OpenAI-compatible providers — API Route, Baseten, SambaNova,\nCerebras, Groq, xAI, Together AI, Fireworks AI, Perplexity, Mistral,\nCloudflare Workers AI, GMI Cloud, Inception Labs, io.net Intelligence,\nMancer, Upstage — are 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":""}},
8917
8949
  {"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":""}},
@@ -8927,11 +8959,11 @@
8927
8959
  {"objectID":"205e4e44d27692634aa5454565d9f060ceb88cdac97e7d37622bc5b9a1eefeb6","title":"Verification commands","url":"/docs/provider-integration/tiers/tier-1-aggregator-passthrough#verification-commands","content":"`bash","hierarchy":{"lvl0":"Provider Integration","lvl1":"Tier 1 — Aggregator Passthrough","lvl2":"Verification commands","lvl3":""}},
8928
8960
  {"objectID":"09ead22698863d776e82e2f0f3dfdd9a596f39cc106302a02c51a6ef37b436de","title":"LiteLLM example","url":"/docs/provider-integration/tiers/tier-1-aggregator-passthrough#litellm-example","content":"pnpm run cli generate \"hello\" --provider litellm --model","hierarchy":{"lvl0":"Provider Integration","lvl1":"Tier 1 — Aggregator Passthrough","lvl2":"LiteLLM example","lvl3":""}},
8929
8961
  {"objectID":"f46ff1668fbf30431a2b6578654212feb2043845eb7a28281e47075703948472","title":"OpenRouter example","url":"/docs/provider-integration/tiers/tier-1-aggregator-passthrough#openrouter-example","content":"pnpm run cli generate \"hello\" --provider openrouter --model /\n\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":"OpenRouter example","lvl3":""}},
8930
- {"objectID":"0c443abf0cfa1b31edc3337559bddbf37453d87732cfd17b08d461f55c77b195","title":"Tier 2 — Catalog Entry","url":"/docs/provider-integration/tiers/tier-2-catalog-entry","content":"Tier 2 — Catalog Entry\n\nWhen this applies: the vendor speaks the OpenAI /v1/chat/completions\nwire format (Bearer auth, standard SSE, standard JSON body) and needs\nzero behavioral overrides — no custom adjustRequestBody, no\nadjustResponseFormat, no nonstandard auth header, no adjustBodyAfter400.\nThis is the Groq/xAI/Together AI/Fireworks/Perplexity/Cloudflare/Mistral\nshape from before the redesign — now expressed as one JSON file instead of\na hand-written subclass (see ../adr/0002-catalog-over-subclass-default.md\nand the single-JSON spec at\ndocs/superpowers/plans/2026-08-28-provider-json-catalog-spec.md).\n\nIf you're not sure whether your provider is quirk-free, start writing the\nJSON anyway — if it turns out you need a hook, migrate to Tier 3 instead of\nforcing the quirk into the catalog shape.\n\nFiles touched (end state)\n\n| # | File | Change |\n| --- | ------------------------------------- | ------------------------------- |\n| 1 | src/lib/providers/catalog/<id>.json | The entire integration, as data |\n\nThat is the whole list. Everything else is generated or derived:\npnpm run codegen:catalog writes the AIProviderName member, the\n <Name>Models enum and the NeurolinkCredentials key into marked\n regions, plus the generated catalog index. Pre-commit and CI fail on\n stale output, so it can't drift.\nThe runtime loader builds the registry entry, descriptor, config options,\n context windows, pricing, vision map and model choices from the JSON.\nThe test suites derive their spec rows, matrix rows and counts from the\n built catalog.\n\nScaffold it with:\n\nTier 2 emits exactly two files: a pre-filled <id>.json (with TODO markers\nwhere only a live probe can supply the truth) and a short checklist. The\nJSON deliberately fails schema validation until every TODO is replaced.\n\nCount pins — nothing to bump\n\nThere are none left. The wiring and descriptor suites compute their\nexpected totals from CATALOG_PROVIDER_IDS, and the matrix rows spread\nfrom the catalog with a completeness guard that throws if any catalog\nprovider is missing. Adding a provider changes no test file.\n\nsrc/lib/factories/providerRegistry.ts isn't in the table either:\n_doRegister() loops over the catalog and registers every entry\ngenerically.\n\nOne historical exception worth re-checking: commandFactory.ts's separate\nsetup [provider] subcommand hand-hardcoded its own provider-choices array.\nThat was migrated to derive from the enum (PR #1583) — confirm it still\ndoes before assuming you need a manual edit.\n\nThe JSON, field by field\n\nid, displayName, aliases, tier, then:\n\nwire — baseURL for the normal case. Env var names derive by\nconvention (<CONSTANT_CASE(id)>_API_KEY / _BASE_URL / _MODEL); set\nenvOverrides only for a vendor that breaks it. For a URL computed from\nanother credential (Cloudflare's account id) use baseURLTemplate plus\nexactly one extraCredentials entry.\n\nmodels — default, fallbacks, defaultContextWindow,\ndefaultMaxOutputTokens, and a catalog map of model id → {contextWindow?,\nmaxOutputTokens?, pricingPerMTok?, vision, status, description, enumMember?}.\nOmit a number rather than invent one. Optional refinements:\n\n| Field | Use it when |\n| ---------------------- | --------------------------------------------------------------- |\n| enumMember | The derived constant-case name would break an existing export |\n| enumTypeName | The <Name>Models enum name must differ from the derived one |\n| fallbackModelName | The legacy fallback differs from fallbacks[1] ?? fallbacks[0] |\n| registryDefaultModel | The registry default differs from default |\n| topModels | The CLI picker should show a curated ordered subset |\n| visionModel | Vision tests need a specific model (the default is text-only) |\n| testModel | The catalog default is retired/gated on the testing account |\n\ntestModel is matrix-only — it never changes the runtime default. Reach\nfor it when a vendor retires the model your catalog documents (Groq purged\nits llama lineup; Fireworks gates deployment per account).\n\ncapabilities — the matrix row. vision is derived from the models,\nnot declared here.\n\nerrorRules — status code and/or case-insensitive pattern → error\nclass + message. Templates: {model}, {apiKeyEnvVar}, {setupUrl}.\nRules are appended before the defaults and matched first-wins.\n\nquirks — two escape hatches, both rare:\ntimeoutErrorClass: \"provider\" — classifyProviderError() hard-codes\n TimeoutError -> NetworkError ahead of any rule table. Groq is the only\n entry that overrides it, because its pre-migration subclass returned a\n plain ProviderError. Set it only if your vendor genuinely needs a\n different timeout Error subclass; other error-mapping quirks belong in\n errorRules, or in a Tier 3 subclass if they need real logic.\n test/continuous-test-suite-error-classifier-","hierarchy":{"lvl0":"Provider Integration","lvl1":"Tier 2 — Catalog Entry","lvl2":"","lvl3":""}},
8962
+ {"objectID":"0c443abf0cfa1b31edc3337559bddbf37453d87732cfd17b08d461f55c77b195","title":"Tier 2 — Catalog Entry","url":"/docs/provider-integration/tiers/tier-2-catalog-entry","content":"Tier 2 — Catalog Entry\n\nWhen this applies: the vendor speaks the OpenAI /v1/chat/completions\nwire format (Bearer auth, standard SSE, standard JSON body) and needs\nzero behavioral overrides — no custom adjustRequestBody, no\nadjustResponseFormat, no nonstandard auth header, no adjustBodyAfter400.\nThis is the Groq/xAI/Together AI/Fireworks/Perplexity/Cloudflare/Mistral\nshape from before the redesign — now expressed as one JSON file instead of\na hand-written subclass (see ../adr/0002-catalog-over-subclass-default.md\nand the single-JSON spec at\ndocs/superpowers/plans/2026-08-28-provider-json-catalog-spec.md).\n\nIf you're not sure whether your provider is quirk-free, start writing the\nJSON anyway — if it turns out you need a hook, migrate to Tier 3 instead of\nforcing the quirk into the catalog shape.\n\nFiles touched (end state)\n\n| # | File | Change |\n| --- | ------------------------------------- | ------------------------------- |\n| 1 | src/lib/providers/catalog/<id>.json | The entire integration, as data |\n\nThat is the whole list. Everything else is generated or derived:\npnpm run codegen:catalog writes the AIProviderName member, the\n <Name>Models enum and the NeurolinkCredentials key into marked\n regions, plus the generated catalog index. Pre-commit and CI fail on\n stale output, so it can't drift.\nThe runtime loader builds the registry entry, descriptor, config options,\n context windows, pricing, vision map and model choices from the JSON.\nThe test suites derive their spec rows, matrix rows and counts from the\n built catalog.\n\nScaffold it with:\n\nTier 2 emits exactly two files: a pre-filled <id>.json (with TODO markers\nwhere only a live probe can supply the truth) and a short checklist. The\nJSON deliberately fails schema validation until every TODO is replaced.\n\nCount pins — nothing to bump\n\nThere are none left. The wiring and descriptor suites compute their\nexpected totals from CATALOG_PROVIDER_IDS, and the matrix rows spread\nfrom the catalog with a completeness guard that throws if any catalog\nprovider is missing. Adding a provider changes no test file.\n\nsrc/lib/factories/providerRegistry.ts isn't in the table either:\n_doRegister() loops over the catalog and registers every entry\ngenerically.\n\nOne historical exception worth re-checking: commandFactory.ts's separate\nsetup [provider] subcommand hand-hardcoded its own provider-choices array.\nThat was migrated to derive from the enum (PR #1583) — confirm it still\ndoes before assuming you need a manual edit.\n\nThe JSON, field by field\n\nid, displayName, aliases, tier, then:\n\nwire — baseURL for the normal case. Env var names derive by\nconvention (<CONSTANT_CASE(id)>_API_KEY / _BASE_URL / _MODEL); set\nenvOverrides only for a vendor that breaks it. For a URL computed from\nanother credential (Cloudflare's account id) use baseURLTemplate plus\nexactly one extraCredentials entry.\n\nmodels — default, fallbacks, defaultContextWindow,\ndefaultMaxOutputTokens, and a catalog map of model id → {contextWindow?,\nmaxOutputTokens?, pricingPerMTok?, vision, status, description, enumMember?}.\nOmit a number rather than invent one. Optional refinements:\n\n| Field | Use it when |\n| ---------------------- | --------------------------------------------------------------- |\n| enumMember | The derived constant-case name would break an existing export |\n| enumTypeName | The <Name>Models enum name must differ from the derived one |\n| fallbackModelName | The legacy fallback differs from fallbacks[1] ?? fallbacks[0] |\n| registryDefaultModel | The registry default differs from default |\n| topModels | The CLI picker should show a curated ordered subset |\n| visionModel | Vision tests need a specific model (the default is text-only) |\n| testModel | The catalog default is retired/gated on the testing account |\n\ntestModel is matrix-only — it never changes the runtime default. Reach\nfor it when a vendor retires the model your catalog documents (Groq purged\nits llama lineup; Fireworks gates deployment per account).\n\ncapabilities — the matrix row. vision is derived from the models,\nnot declared here.\n\nerrorRules — status code and/or case-insensitive pattern → error\nclass + message. Templates: {model}, {apiKeyEnvVar}, {setupUrl}.\nRules are appended before the defaults and matched first-wins.\n\nquirks — five named, closed escape hatches, all rare. Each one is\nconsumed generically by ConfiguredOpenAICompatProvider/the catalog loader —\nnone of them run arbitrary code. A provider that needs more than these\nbecomes a Tier 3 subclass instead of a sixth quirk.\ntimeoutErrorClass: \"provider\" — What it does: classifyProviderError()\n hard-codes TimeoutError -> NetworkError ahead of any rule table; this\n quirk overrides that mapping to ProviderError instead. When to use it:\n only if your vendor g","hierarchy":{"lvl0":"Provider Integration","lvl1":"Tier 2 — Catalog Entry","lvl2":"","lvl3":""}},
8931
8963
  {"objectID":"4b278bfa53040dfc60deaffd7c0042488d914cc4eff89ded532f5582eceadce6","title":"Tier 2 — Catalog Entry","url":"/docs/provider-integration/tiers/tier-2-catalog-entry#tier-2-catalog-entry","content":"When this applies: the vendor speaks the OpenAI /v1/chat/completions\nwire format (Bearer auth, standard SSE, standard JSON body) and needs\nzero behavioral overrides — no custom adjustRequestBody, no\nadjustResponseFormat, no nonstandard auth header, no adjustBodyAfter400.\nThis is the Groq/xAI/Together AI/Fireworks/Perplexity/Cloudflare/Mistral\nshape from before the redesign — now expressed as one JSON file instead of\na hand-written subclass (see ../adr/0002-catalog-over-subclass-default.md\nand the single-JSON spec at\ndocs/superpowers/plans/2026-08-28-provider-json-catalog-spec.md).\n\nIf you're not sure whether your provider is quirk-free, start writing the\nJSON anyway — if it turns out you need a hook, migrate to Tier 3 instead of\nforcing the quirk into the catalog shape.","hierarchy":{"lvl0":"Provider Integration","lvl1":"Tier 2 — Catalog Entry","lvl2":"Tier 2 — Catalog Entry","lvl3":""}},
8932
8964
  {"objectID":"1bb614eb5848cace52afb691aa99aeab78366a84a216f758ef9df6c86e49c0cc","title":"Files touched (end state)","url":"/docs/provider-integration/tiers/tier-2-catalog-entry#files-touched-end-state","content":"| # | File | Change |\n| --- | ------------------------------------- | ------------------------------- |\n| 1 | src/lib/providers/catalog/<id>.json | The entire integration, as data |\n\nThat is the whole list. Everything else is generated or derived:\npnpm run codegen:catalog writes the AIProviderName member, the\n <Name>Models enum and the NeurolinkCredentials key into marked\n regions, plus the generated catalog index. Pre-commit and CI fail on\n stale output, so it can't drift.\nThe runtime loader builds the registry entry, descriptor, config options,\n context windows, pricing, vision map and model choices from the JSON.\nThe test suites derive their spec rows, matrix rows and counts from the\n built catalog.\n\nScaffold it with:\n\nTier 2 emits exactly two files: a pre-filled <id>.json (with TODO markers\nwhere only a live probe can supply the truth) and a short checklist. The\nJSON deliberately fails schema validation until every TODO is replaced.","hierarchy":{"lvl0":"Provider Integration","lvl1":"Tier 2 — Catalog Entry","lvl2":"Files touched (end state)","lvl3":""}},
8933
8965
  {"objectID":"9627a6b63ab505017fbc3edd7f9ec312f548b35aef74edd6e2be5eac8e1ade0f","title":"Count pins — nothing to bump","url":"/docs/provider-integration/tiers/tier-2-catalog-entry#count-pins-nothing-to-bump","content":"There are none left. The wiring and descriptor suites compute their\nexpected totals from CATALOG_PROVIDER_IDS, and the matrix rows spread\nfrom the catalog with a completeness guard that throws if any catalog\nprovider is missing. Adding a provider changes no test file.\n\nsrc/lib/factories/providerRegistry.ts isn't in the table either:\n_doRegister() loops over the catalog and registers every entry\ngenerically.\n\nOne historical exception worth re-checking: commandFactory.ts's separate\nsetup [provider] subcommand hand-hardcoded its own provider-choices array.\nThat was migrated to derive from the enum (PR #1583) — confirm it still\ndoes before assuming you need a manual edit.","hierarchy":{"lvl0":"Provider Integration","lvl1":"Tier 2 — Catalog Entry","lvl2":"Count pins — nothing to bump","lvl3":""}},
8934
- {"objectID":"672b4a181677219d0db0d64d290a3f1a268691c336f02fe776a01d94d0684ae5","title":"The JSON, field by field","url":"/docs/provider-integration/tiers/tier-2-catalog-entry#the-json-field-by-field","content":"id, displayName, aliases, tier, then:\n\nwire — baseURL for the normal case. Env var names derive by\nconvention (<CONSTANT_CASE(id)>_API_KEY / _BASE_URL / _MODEL); set\nenvOverrides only for a vendor that breaks it. For a URL computed from\nanother credential (Cloudflare's account id) use baseURLTemplate plus\nexactly one extraCredentials entry.\n\nmodels — default, fallbacks, defaultContextWindow,\ndefaultMaxOutputTokens, and a catalog map of model id → {contextWindow?,\nmaxOutputTokens?, pricingPerMTok?, vision, status, description, enumMember?}.\nOmit a number rather than invent one. Optional refinements:\n\n| Field | Use it when |\n| ---------------------- | --------------------------------------------------------------- |\n| enumMember | The derived constant-case name would break an existing export |\n| enumTypeName | The <Name>Models enum name must differ from the derived one |\n| fallbackModelName | The legacy fallback differs from fallbacks[1] ?? fallbacks[0] |\n| registryDefaultModel | The registry default differs from default |\n| topModels | The CLI picker should show a curated ordered subset |\n| visionModel | Vision tests need a specific model (the default is text-only) |\n| testModel | The catalog default is retired/gated on the testing account |\n\ntestModel is matrix-only — it never changes the runtime default. Reach\nfor it when a vendor retires the model your catalog documents (Groq purged\nits llama lineup; Fireworks gates deployment per account).\n\ncapabilities — the matrix row. vision is derived from the models,\nnot declared here.\n\nerrorRules — status code and/or case-insensitive pattern → error\nclass + message. Templates: {model}, {apiKeyEnvVar}, {setupUrl}.\nRules are appended before the defaults and matched first-wins.\n\nquirks — two escape hatches, both rare:\ntimeoutErrorClass: \"provider\" — classifyProviderE","hierarchy":{"lvl0":"Provider Integration","lvl1":"Tier 2 — Catalog Entry","lvl2":"The JSON, field by field","lvl3":""}},
8966
+ {"objectID":"672b4a181677219d0db0d64d290a3f1a268691c336f02fe776a01d94d0684ae5","title":"The JSON, field by field","url":"/docs/provider-integration/tiers/tier-2-catalog-entry#the-json-field-by-field","content":"id, displayName, aliases, tier, then:\n\nwire — baseURL for the normal case. Env var names derive by\nconvention (<CONSTANT_CASE(id)>_API_KEY / _BASE_URL / _MODEL); set\nenvOverrides only for a vendor that breaks it. For a URL computed from\nanother credential (Cloudflare's account id) use baseURLTemplate plus\nexactly one extraCredentials entry.\n\nmodels — default, fallbacks, defaultContextWindow,\ndefaultMaxOutputTokens, and a catalog map of model id → {contextWindow?,\nmaxOutputTokens?, pricingPerMTok?, vision, status, description, enumMember?}.\nOmit a number rather than invent one. Optional refinements:\n\n| Field | Use it when |\n| ---------------------- | --------------------------------------------------------------- |\n| enumMember | The derived constant-case name would break an existing export |\n| enumTypeName | The <Name>Models enum name must differ from the derived one |\n| fallbackModelName | The legacy fallback differs from fallbacks[1] ?? fallbacks[0] |\n| registryDefaultModel | The registry default differs from default |\n| topModels | The CLI picker should show a curated ordered subset |\n| visionModel | Vision tests need a specific model (the default is text-only) |\n| testModel | The catalog default is retired/gated on the testing account |\n\ntestModel is matrix-only — it never changes the runtime default. Reach\nfor it when a vendor retires the model your catalog documents (Groq purged\nits llama lineup; Fireworks gates deployment per account).\n\ncapabilities — the matrix row. vision is derived from the models,\nnot declared here.\n\nerrorRules — status code and/or case-insensitive pattern → error\nclass + message. Templates: {model}, {apiKeyEnvVar}, {setupUrl}.\nRules are appended before the defaults and matched first-wins.\n\nquirks — five named, closed escape hatches, all rare. Each one is\nconsumed generically by","hierarchy":{"lvl0":"Provider Integration","lvl1":"Tier 2 — Catalog Entry","lvl2":"The JSON, field by field","lvl3":""}},
8935
8967
  {"objectID":"5f38f36d8546533723645d1643ea69418d7e5cbe47cde5d18b5ad998d053e476","title":"Live verification","url":"/docs/provider-integration/tiers/tier-2-catalog-entry#live-verification","content":"The mocked gates prove the wire contract, not the commercial reality.\nEach of these caught a real defect on the cerebras pilot:\nRoster probe first — authenticated GET <baseURL>/models. Pick\n default, fallbacks and catalog keys from what the API serves TODAY.\n Vendor docs listed four cerebras models; the live roster had two, and\n the documented default 404'd (finding #7). This ages: both Groq's and\n Fireworks' catalog defaults went dead within weeks.\nBilling policy — confirm how a working key is obtained. Cerebras has\n no keyless free tier: even the \"$5 free credits\" require saving a payment\n card (finding #8); SambaNova requires payment outright (finding #11).\nCapability probes — probe tools + response_format in one request\n before setting structuredOutputWithTools; strict backends 400. Don't\n copy another provider's flags on vibes.\nLive matrix — with a working key:\n npx tsx test/continuous-test-suite-provider-matrix.ts --provider=<id>\n must pass generate, stream, tool calling and structured output, and a\n bare node dist/cli/index.js generate \"...\" --provider <id> must resolve\n the default model. The pilot's first live run was 2/4 and surfaced an\n SDK-wide bug (tool_choice emitted on tools-less requests — fixed in\n #1564, now pinned by the mocked suite), which is why this step exists.\n\nRecord the outcome in evidence.liveMatrix.","hierarchy":{"lvl0":"Provider Integration","lvl1":"Tier 2 — Catalog Entry","lvl2":"Live verification","lvl3":""}},
8936
8968
  {"objectID":"bea00545b1053aa393e34f487097636d2ee23cfdc652c6724dc6029192017ffd","title":"Verification commands","url":"/docs/provider-integration/tiers/tier-2-catalog-entry#verification-commands","content":"All must exit 0 before opening the PR. The first three test commands run in\nthe provider-safety-net CI job (.github/workflows/ci.yml) — zero-API,\nzero-credential checks, so there's no reason to skip them locally. Add a\ncase to test:error-classifier-contract first if your entry sets\ntimeoutErrorClass or vendor-specific errorRules.\n\nBecause the suites derive from data, a new provider needs no new assertions\n— but if you ever do add one, run the break-one-assertion ritual: flip it,\nconfirm the suite reports ✗ and exits non-zero (not ⊘ skip — see the\nassertion-message hazard in CLAUDE.md), then restore it.","hierarchy":{"lvl0":"Provider Integration","lvl1":"Tier 2 — Catalog Entry","lvl2":"Verification commands","lvl3":""}},
8937
8969
  {"objectID":"3f8e5102409b953258a82548fec14a7726774f6e1e5c3c7d826400ef24ebf105","title":"Tier 3 — Adapter-Based Native","url":"/docs/provider-integration/tiers/tier-3-adapter-native","content":"Tier 3 — Adapter-Based Native\n\nWhen this applies: the vendor has its own SDK or wire format that\nisn't OpenAI-compatible, but it's still a normal request/response (or\nrequest/SSE-stream) HTTP+JSON lifecycle you can drive from a provider\nclass. This is the Anthropic/Google AI Studio shape — a dedicated\nsrc/lib/providers/<name>.ts extending BaseProvider directly, not the\nOpenAIChatCompletionsProvider family.\n\nCorrected from the original plan text (2026-08-18): the plan's\ndraft cited \"the Mistral/Cohere/Ollama shape\" as the Tier 3 example.\nThat's stale — mistral.ts, cohere.ts, and ollama/client.ts all\nextend OpenAIChatCompletionsProvider, the Tier 2 family, not\nBaseProvider directly. (Mistral is separately already named in\n../adr/0002-catalog-over-subclass-default.md as a Tier 2\ncatalog-migration candidate — the original draft was internally\ninconsistent about which tier Mistral belongs to.) The verified,\ncurrently-shipping examples of a chat/text provider extending\nBaseProvider directly are Anthropic\n(src/lib/providers/anthropic/client.ts) and Google AI Studio\n(src/lib/providers/googleAiStudio/client.ts) — used below.\nWhy these two, specifically: they implement the request/response and\nstreaming lifecycle against their vendor's own wire format directly,\ninside the provider class itself — they don't inherit that lifecycle\nfrom OpenAIChatCompletionsProvider's shared chat-completions\nimplementation the way Mistral/Cohere/Ollama do. That's the actual line\nbetween Tier 2 and Tier 3: not \"does the vendor have a custom SDK\" but\n\"does this class implement the provider surface itself, or inherit it.\"\nWhen you compare your new provider's shape against Anthropic/Google AI\nStudio, that's the property you're matching — not their specific\nrequest/response format, which is vendor-idiosyncratic and won't look\nlike yours.\n\nAs of 2026-08-18 there is no shared streaming-loop adapter beyond\nBaseProvider and OpenAIChatCompletionsProvider (checked\nsrc/lib/providers/ for a nativeAdapter*.ts or similar — none exists).\nIf one lands later, extend it instead of hand-rolling the SSE parser and\nmulti-step tool loop; the steps below describe the always-true minimum\nregardless of whether that shared adapter exists yet.\n\nFiles touched (end state)\n\n| # | File | Change |\n| --- | ---------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| 1 | src/lib/constants/enums.ts | New AIProviderName member + a <Name>Models enum (default + fallback model ids — Tier 3 providers keep an explicit model catalog since there's no OPENAI_COMPAT_CATALOG row to hold defaultModel/fallbackModels) |\n| 2 | src/lib/providers/<name>.ts | NEW provider class extending BaseProvider (or a shared adapter, if one has landed by the time you read this) |\n| 3 | src/lib/factories/providerDescriptors.ts | One ProviderDescriptor entry |\n| 4 | src/lib/factories/providerRegistry.ts | One ProviderFactory.registerProvider() block, dynamic import, 5-argument call including the descriptor argument from PROVIDER_DESCRIPTORS_BY_NAME |\n| 5 | src/lib/types/providers.ts | New NeurolinkCredentials[\"<key>\"] slice |\n| 6 | src/lib/adapters/providerImageAdapter.ts | VISION_CAPABILITIES entry — only if the provider/model is multimodal |\n| 7 | test/continuous-test-suite-providers-mocked.ts | Mocked-contract section ","hierarchy":{"lvl0":"Provider Integration","lvl1":"Tier 3 — Adapter-Based Native","lvl2":"","lvl3":""}},
@@ -9262,8 +9294,8 @@
9262
9294
  {"objectID":"f705cae26765f2bdb94a4dc49e67d394278cc85069e644d650664fde0da7f72f","title":"General Guidelines","url":"/docs/reference/provider-behavior#general-guidelines","content":"Provider Rotation: Use multiple providers for resilience\nImplementation guide: API Reference\nInput Validation: Validate inputs for provider compatibility\nSee provider-specific sections above for validation patterns\nError Handling: Implement graceful fallbacks\nFollow Streaming Guide patterns\nPerformance Monitoring: Track provider metrics\nSetup: API Reference\nCost Management: Monitor token usage across providers\nTools: CLI Guide\nTesting Strategy: Use provider-appropriate test cases\nReference Testing Recommendations above","hierarchy":{"lvl0":"Reference","lvl1":"Provider Behavior Guide","lvl2":"General Guidelines","lvl3":""}},
9263
9295
  {"objectID":"7c1bdfe928229df8f4d6d3375d8594e82e0e617e9bbe28603b42a79ab3bd42ec","title":"Performance Optimization","url":"/docs/reference/provider-behavior#performance-optimization","content":"Caching: Implement response caching for repeated requests\nBatch Processing: Use batch operations where supported\nProvider Selection: Choose optimal providers per use case\nInput Optimization: Format inputs for best provider performance","hierarchy":{"lvl0":"Reference","lvl1":"Provider Behavior Guide","lvl2":"Performance Optimization","lvl3":""}},
9264
9296
  {"objectID":"1afce612558be9b133b9de7bde88177bb2dc76472b7d658c0b91a64bcc8219af","title":"See Also","url":"/docs/reference/provider-behavior#see-also","content":"API Reference - Complete API documentation and configuration\nCLI Guide - Command-line interface and provider testing\nFactory Pattern Migration - Advanced factory pattern usage\nStreaming Guide - Streaming functionality and error handling\nMain Documentation - Getting started guide and overview\n\nThis guide is maintained as part of the NeuroLink provider ecosystem. For updates or provider-specific issues, please refer to the individual provider documentation or submit an issue in the project repository.","hierarchy":{"lvl0":"Reference","lvl1":"Provider Behavior Guide","lvl2":"See Also","lvl3":""}},
9265
- {"objectID":"b53c0f743f426caf768be3e0994ad8a094a9abcf2c2643f69440b32cbf0a4daa","title":"Provider Capabilities Audit","url":"/docs/reference/provider-capabilities-audit","content":"Provider Capabilities Audit\n\nCapability audit for the 13 text/multimodal AI providers historically tracked in this matrix. NeuroLink ships 40 providers in total — the additional providers added since this audit was first written (DeepSeek, NVIDIA NIM, LM Studio, llama.cpp, xAI, Groq, Cerebras, SambaNova, Together AI, Fireworks, Perplexity, Cloudflare, Cohere, TypeSafe Jev, and more), the voice providers (OpenAI TTS, ElevenLabs, Deepgram, Azure Speech, Whisper, OpenAI Realtime, Gemini Live), and the embedding/media-only providers are documented in the per-provider docs under /docs/getting-started/providers/ and the Voice Features index, not in this capability matrix.\n\nFor the canonical product surface, see the README.\n\nLast Updated: May 2026\nNeuroLink Version: 9.62.0\n\nCapability Matrix\n\n| Provider | Text Gen | Streaming | Tools | Vision | PDF | Thinking | Structured Output | Auth Required |\n| ----------------- | -------- | --------- | ----- | ------ | --- | -------- | ----------------- | ------------------ |\n| OpenAI | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ | API Key |\n| Anthropic | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | API Key |\n| Google AI Studio | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ⚠️ | API Key |\n| Google Vertex | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ⚠️ | Service Account |\n| Amazon Bedrock | ✓ | ✓ | ✓ | ⚠️ | ✓ | ✗ | ✓ | AWS Credentials |\n| Amazon SageMaker | ✓ | ⚠️ | ✓ | ✗ | ✗ | ✗ | ✗ | AWS Credentials |\n| Azure OpenAI | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ | API Key + Endpoint |\n| Mistral | ✓ | ✓ | ✓ | ⚠️ | ✗ | ✗ | ✓ | API Key |\n| HuggingFace | ✓ | ✓ | ⚠️ | ✗ | ✗ | ✗ | ✗ | API Key |\n| LiteLLM | ✓ | ✓ | ✓ | ⚠️ | ✗ | ✗ | ✓ | Custom |\n| Ollama | ✓ | ✓ | ✓ | ⚠️ | ✗ | ✗ | ✗ | None |\n| OpenAI Compatible | ✓ | ✓ | ✓ | ⚠️ | ✗ | ✗ | ✓ | Custom |\n| OpenRouter | ✓ | ✓ | ⚠️ | ⚠️ | ✗ | ✗ | ✓ | API Key |\n\nLegend:\n✓ Full Support\n⚠️ Partial/Model-Dependent Support\n✗ Not Supported\nOpenAI Provider\n\nFile: src/lib/providers/openAI.ts\nProvider Name: openai\nDefault Model: gpt-4o\n\nCapabilities\n\nText Generation ✓\nFull support for all GPT models\nSupports temperature, maxTokens, top_p parameters\nMulti-turn conversations\n\nStreaming ✓\nReal-time token streaming via Server-Sent Events (SSE)\nChunk-by-chunk response delivery\nFull analytics support\n\nTool Calling ✓\nNative function calling support\nAutomatic tool execution\nMulti-step tool workflows\nTool choice: auto, required, none\n\nVision/Multimodal ✓\n\nSupported Models:\nGPT-5.2 series (gpt-5.2, gpt-5.2-pro) - Latest flagship\nGPT-5 series (gpt-5, gpt-5-pro, gpt-5-mini, gpt-5-nano)\nGPT-4.1 series (gpt-4.1, gpt-4.1-mini, gpt-4.1-nano)\nO-series reasoning models (o3, o3-mini, o3-pro, o4, o4-mini)\nGPT-4o, GPT-4o-mini, GPT-4-turbo, GPT-4-vision-preview\n\nImage Support:\nUp to 10 images per request\nFormats: PNG, JPEG, WEBP, GIF\nBase64 and URL input\n\nPDF Processing ✗\nNot natively supported\nRequires external preprocessing\n\nExtended Thinking ✗\nStandard reasoning only\nNo extended thinking capability\n\nStructured Output ✓\nJSON schema validation\nType-safe responses via Zod\nResponse format enforcement\n\nConfiguration\n\nKnown Limitations\nPDF files require preprocessing to text/images\nNo native extended thinking mode\nRate limits apply per API key tier\nContext window varies by model (128K for GPT-4o)\nAnthropic Provider\n\nFile: src/lib/providers/anthropic.ts\nProvider Name: anthropic\nDefault Model: claude-sonnet-4-5-20250929\n\nCapabilities\n\nText Generation ✓\nAll Claude models (3.x, 4.x, 4.5)\nAdvanced reasoning capabilities\nLong context support (200K tokens)\n\nStreaming ✓\nReal-time streaming with SSE\nTool execution during streaming\nAnalytics tracking\n\nTool Calling ✓\nNative tool use support\nMulti-step agentic workflows\nTool result caching\nParallel tool execution\n\nVision/Multimodal ✓\n\nSupported Models:\nClaude 4.5 series (Sonnet, Opus, Haiku)\nClaude 4.1 and 4.0 series\nClaude 3.7 series\nClaude 3.5 series\nClaude 3 series (Opus, Sonnet, Haiku)\n\nImage Support:\nUp to 20 images per request\nFormats: PNG, JPEG, WEBP, GIF\nBase64 encoding required\n\nPDF Processing ✓\nNative PDF document understanding\nNo preprocessing required\nExtract text, tables, and structure\nVisual analysis of PDF pages\n\nExtended Thinking ✓\n\nSupported Models:\nClaude 4.5 Sonnet (latest)\nClaude 4.5 Opus\nCla","hierarchy":{"lvl0":"Reference","lvl1":"Provider Capabilities Audit","lvl2":"","lvl3":""}},
9266
- {"objectID":"6111cbb24bb4b7856293e429071c5c9836d1bfdbd2fcdb7d156d6cfe4fec1ba0","title":"Provider Capabilities Audit","url":"/docs/reference/provider-capabilities-audit#provider-capabilities-audit","content":"Capability audit for the 13 text/multimodal AI providers historically tracked in this matrix. NeuroLink ships 40 providers in total — the additional providers added since this audit was first written (DeepSeek, NVIDIA NIM, LM Studio, llama.cpp, xAI, Groq, Cerebras, SambaNova, Together AI, Fireworks, Perplexity, Cloudflare, Cohere, TypeSafe Jev, and more), the voice providers (OpenAI TTS, ElevenLabs, Deepgram, Azure Speech, Whisper, OpenAI Realtime, Gemini Live), and the embedding/media-only providers are documented in the per-provider docs under /docs/getting-started/providers/ and the Voice Features index, not in this capability matrix.\n\nFor the canonical product surface, see the README.\n\nLast Updated: May 2026\nNeuroLink Version: 9.62.0","hierarchy":{"lvl0":"Reference","lvl1":"Provider Capabilities Audit","lvl2":"Provider Capabilities Audit","lvl3":""}},
9297
+ {"objectID":"b53c0f743f426caf768be3e0994ad8a094a9abcf2c2643f69440b32cbf0a4daa","title":"Provider Capabilities Audit","url":"/docs/reference/provider-capabilities-audit","content":"Provider Capabilities Audit\n\nCapability audit for the 13 text/multimodal AI providers historically tracked in this matrix. NeuroLink ships 44 providers in total — the additional providers added since this audit was first written (DeepSeek, NVIDIA NIM, LM Studio, llama.cpp, xAI, Groq, Cerebras, SambaNova, Together AI, Fireworks, Perplexity, Cloudflare, Cohere, TypeSafe Jev, and more), the voice providers (OpenAI TTS, ElevenLabs, Deepgram, Azure Speech, Whisper, OpenAI Realtime, Gemini Live), and the embedding/media-only providers are documented in the per-provider docs under /docs/getting-started/providers/ and the Voice Features index, not in this capability matrix.\n\nFor the canonical product surface, see the README.\n\nLast Updated: May 2026\nNeuroLink Version: 9.62.0\n\nCapability Matrix\n\n| Provider | Text Gen | Streaming | Tools | Vision | PDF | Thinking | Structured Output | Auth Required |\n| ----------------- | -------- | --------- | ----- | ------ | --- | -------- | ----------------- | ------------------ |\n| OpenAI | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ | API Key |\n| Anthropic | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | API Key |\n| Google AI Studio | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ⚠️ | API Key |\n| Google Vertex | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ⚠️ | Service Account |\n| Amazon Bedrock | ✓ | ✓ | ✓ | ⚠️ | ✓ | ✗ | ✓ | AWS Credentials |\n| Amazon SageMaker | ✓ | ⚠️ | ✓ | ✗ | ✗ | ✗ | ✗ | AWS Credentials |\n| Azure OpenAI | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ | API Key + Endpoint |\n| Mistral | ✓ | ✓ | ✓ | ⚠️ | ✗ | ✗ | ✓ | API Key |\n| HuggingFace | ✓ | ✓ | ⚠️ | ✗ | ✗ | ✗ | ✗ | API Key |\n| LiteLLM | ✓ | ✓ | ✓ | ⚠️ | ✗ | ✗ | ✓ | Custom |\n| Ollama | ✓ | ✓ | ✓ | ⚠️ | ✗ | ✗ | ✗ | None |\n| OpenAI Compatible | ✓ | ✓ | ✓ | ⚠️ | ✗ | ✗ | ✓ | Custom |\n| OpenRouter | ✓ | ✓ | ⚠️ | ⚠️ | ✗ | ✗ | ✓ | API Key |\n\nLegend:\n✓ Full Support\n⚠️ Partial/Model-Dependent Support\n✗ Not Supported\nOpenAI Provider\n\nFile: src/lib/providers/openAI.ts\nProvider Name: openai\nDefault Model: gpt-4o\n\nCapabilities\n\nText Generation ✓\nFull support for all GPT models\nSupports temperature, maxTokens, top_p parameters\nMulti-turn conversations\n\nStreaming ✓\nReal-time token streaming via Server-Sent Events (SSE)\nChunk-by-chunk response delivery\nFull analytics support\n\nTool Calling ✓\nNative function calling support\nAutomatic tool execution\nMulti-step tool workflows\nTool choice: auto, required, none\n\nVision/Multimodal ✓\n\nSupported Models:\nGPT-5.2 series (gpt-5.2, gpt-5.2-pro) - Latest flagship\nGPT-5 series (gpt-5, gpt-5-pro, gpt-5-mini, gpt-5-nano)\nGPT-4.1 series (gpt-4.1, gpt-4.1-mini, gpt-4.1-nano)\nO-series reasoning models (o3, o3-mini, o3-pro, o4, o4-mini)\nGPT-4o, GPT-4o-mini, GPT-4-turbo, GPT-4-vision-preview\n\nImage Support:\nUp to 10 images per request\nFormats: PNG, JPEG, WEBP, GIF\nBase64 and URL input\n\nPDF Processing ✗\nNot natively supported\nRequires external preprocessing\n\nExtended Thinking ✗\nStandard reasoning only\nNo extended thinking capability\n\nStructured Output ✓\nJSON schema validation\nType-safe responses via Zod\nResponse format enforcement\n\nConfiguration\n\nKnown Limitations\nPDF files require preprocessing to text/images\nNo native extended thinking mode\nRate limits apply per API key tier\nContext window varies by model (128K for GPT-4o)\nAnthropic Provider\n\nFile: src/lib/providers/anthropic.ts\nProvider Name: anthropic\nDefault Model: claude-sonnet-4-5-20250929\n\nCapabilities\n\nText Generation ✓\nAll Claude models (3.x, 4.x, 4.5)\nAdvanced reasoning capabilities\nLong context support (200K tokens)\n\nStreaming ✓\nReal-time streaming with SSE\nTool execution during streaming\nAnalytics tracking\n\nTool Calling ✓\nNative tool use support\nMulti-step agentic workflows\nTool result caching\nParallel tool execution\n\nVision/Multimodal ✓\n\nSupported Models:\nClaude 4.5 series (Sonnet, Opus, Haiku)\nClaude 4.1 and 4.0 series\nClaude 3.7 series\nClaude 3.5 series\nClaude 3 series (Opus, Sonnet, Haiku)\n\nImage Support:\nUp to 20 images per request\nFormats: PNG, JPEG, WEBP, GIF\nBase64 encoding required\n\nPDF Processing ✓\nNative PDF document understanding\nNo preprocessing required\nExtract text, tables, and structure\nVisual analysis of PDF pages\n\nExtended Thinking ✓\n\nSupported Models:\nClaude 4.5 Sonnet (latest)\nClaude 4.5 Opus\nCla","hierarchy":{"lvl0":"Reference","lvl1":"Provider Capabilities Audit","lvl2":"","lvl3":""}},
9298
+ {"objectID":"6111cbb24bb4b7856293e429071c5c9836d1bfdbd2fcdb7d156d6cfe4fec1ba0","title":"Provider Capabilities Audit","url":"/docs/reference/provider-capabilities-audit#provider-capabilities-audit","content":"Capability audit for the 13 text/multimodal AI providers historically tracked in this matrix. NeuroLink ships 44 providers in total — the additional providers added since this audit was first written (DeepSeek, NVIDIA NIM, LM Studio, llama.cpp, xAI, Groq, Cerebras, SambaNova, Together AI, Fireworks, Perplexity, Cloudflare, Cohere, TypeSafe Jev, and more), the voice providers (OpenAI TTS, ElevenLabs, Deepgram, Azure Speech, Whisper, OpenAI Realtime, Gemini Live), and the embedding/media-only providers are documented in the per-provider docs under /docs/getting-started/providers/ and the Voice Features index, not in this capability matrix.\n\nFor the canonical product surface, see the README.\n\nLast Updated: May 2026\nNeuroLink Version: 9.62.0","hierarchy":{"lvl0":"Reference","lvl1":"Provider Capabilities Audit","lvl2":"Provider Capabilities Audit","lvl3":""}},
9267
9299
  {"objectID":"f159e66270db61eafa05392a306861fec8f7a2e0444a35eac61d7f69fb4bdaa0","title":"Capability Matrix","url":"/docs/reference/provider-capabilities-audit#capability-matrix","content":"| Provider | Text Gen | Streaming | Tools | Vision | PDF | Thinking | Structured Output | Auth Required |\n| ----------------- | -------- | --------- | ----- | ------ | --- | -------- | ----------------- | ------------------ |\n| OpenAI | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ | API Key |\n| Anthropic | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | API Key |\n| Google AI Studio | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ⚠️ | API Key |\n| Google Vertex | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ⚠️ | Service Account |\n| Amazon Bedrock | ✓ | ✓ | ✓ | ⚠️ | ✓ | ✗ | ✓ | AWS Credentials |\n| Amazon SageMaker | ✓ | ⚠️ | ✓ | ✗ | ✗ | ✗ | ✗ | AWS Credentials |\n| Azure OpenAI | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ | API Key + Endpoint |\n| Mistral | ✓ | ✓ | ✓ | ⚠️ | ✗ | ✗ | ✓ | API Key |\n| HuggingFace | ✓ | ✓ | ⚠️ | ✗ | ✗ | ✗ | ✗ | API Key |\n| LiteLLM | ✓ | ✓ | ✓ | ⚠️ | ✗ | ✗ | ✓ | Custom |\n| Ollama | ✓ | ✓ | ✓ | ⚠️ | ✗ | ✗ | ✗ | None |\n| OpenAI Compatible | ✓ | ✓ | ✓ | ⚠️ | ✗ | ✗ | ✓ | Custom |\n| OpenRouter | ✓ | ✓ | ⚠️ | ⚠️ | ✗ | ✗ | ✓ | API Key |\n\nLegend:\n✓ Full Support\n⚠️ Partial/Model-Dependent Support\n✗ Not Supported","hierarchy":{"lvl0":"Reference","lvl1":"Provider Capabilities Audit","lvl2":"Capability Matrix","lvl3":""}},
9268
9300
  {"objectID":"0b07a322aabded7f495c4fc4bbb73234eacdb4329509db76d40791302afe96ae","title":"1. OpenAI Provider","url":"/docs/reference/provider-capabilities-audit#1-openai-provider","content":"File: src/lib/providers/openAI.ts\nProvider Name: openai\nDefault Model: gpt-4o","hierarchy":{"lvl0":"Reference","lvl1":"Provider Capabilities Audit","lvl2":"1. OpenAI Provider","lvl3":""}},
9269
9301
  {"objectID":"d40476ea729258da73cf30b5f05f91a086a3f437f87e8920f8afc5968bdb82c0","title":"Text Generation ✓","url":"/docs/reference/provider-capabilities-audit#text-generation-","content":"Full support for all GPT models\nSupports temperature, maxTokens, top_p parameters\nMulti-turn conversations","hierarchy":{"lvl0":"Reference","lvl1":"Provider Capabilities Audit","lvl2":"Text Generation ✓","lvl3":""}},
@@ -9479,8 +9511,8 @@
9479
9511
  {"objectID":"819f5500ab1f564fc56981047c1041d24961f38ee1ce212cd6d0e4dfe85266d1","title":"Text-to-Speech (TTS)","url":"/docs/reference/provider-comparison#text-to-speech-tts","content":"Best quality: openai-tts with model tts-1-hd\n\nBest multilingual: elevenlabs\n\nElevenLabs supports the widest range of languages and voice cloning, making it the default choice for multilingual or branded voice experiences.\n\nMost cost-effective: google-ai (1M chars free tier)\n\nGoogle Cloud Text-to-Speech provides a generous free tier (1M characters/month for standard voices) and is ideal for high-volume applications on GCP.\n\nEnterprise: azure-tts (SSML support)\n\nAzure Cognitive Services TTS has the most comprehensive SSML support, including fine-grained prosody control, making it the standard choice for enterprise IVR and accessibility pipelines.","hierarchy":{"lvl0":"Reference","lvl1":"AI Provider Comparison Guide","lvl2":"Text-to-Speech (TTS)","lvl3":""}},
9480
9512
  {"objectID":"d04a59a4ae2fb4ca3fa13fc4106849621ee8f2cb81c70c59e94f4c0ec6f23e3a","title":"Speech-to-Text (STT)","url":"/docs/reference/provider-comparison#speech-to-text-stt","content":"Best accuracy: whisper (OpenAI)\n\nOpenAI Whisper consistently ranks highest on transcription benchmarks across languages and noisy environments.\n\nBest streaming: deepgram (WebSocket real-time)\n\nDeepgram is the only STT provider with native WebSocket streaming support, enabling sub-300 ms word-level transcription for live audio.\n\nBest for Google Cloud users: google-stt\n\nTight integration with GCP infrastructure, support for 125+ languages, and speaker diarization make google-stt the natural choice when already on Google Cloud.\n\nEnterprise: azure-stt\n\nAzure Cognitive Services STT offers custom model training, batch transcription, and fine-grained compliance controls for regulated industries.","hierarchy":{"lvl0":"Reference","lvl1":"AI Provider Comparison Guide","lvl2":"Speech-to-Text (STT)","lvl3":""}},
9481
9513
  {"objectID":"7c24fb05591146773070a723173cb03919f5c01575bb32563a53a2b677fa25d2","title":"Conclusion","url":"/docs/reference/provider-comparison#conclusion","content":"Choose based on priorities:\nBudget Priority → Google AI Studio (free) or OpenRouter (free models) or Anthropic Free tier (via OAuth)\nQuality Priority → OpenAI or Anthropic\nPrivacy Priority → Ollama / LM Studio / llama.cpp (local)\nReasoning Priority → Anthropic (extended thinking) or DeepSeek-R1 (cost-efficient)\nDocument Priority → Anthropic or Google AI Studio (PDF support)\nCompliance Priority → Azure OpenAI or Bedrock\nFlexibility Priority → OpenRouter (300+ models) or NVIDIA NIM (curated NVIDIA-hosted models)\nFlat-Rate Pricing → Anthropic subscription (Pro $20/mo, Max $100+/mo)\nZero Cloud Cost → LM Studio or llama.cpp (local execution)\nTTS Quality → openai-tts (tts-1-hd) or elevenlabs (multilingual)\nTTS Cost → google-ai TTS (1M chars/month free tier)\nSTT Accuracy → whisper (OpenAI)\nSTT Streaming → deepgram (WebSocket, sub-300 ms)\nRealtime Voice → openai-realtime or gemini-live\n\nNeuroLink Advantage:\nSwitch providers anytime (single line of code)\nUse multiple providers simultaneously\nTest and compare providers easily\nNo vendor lock-in\n\nSee also:\nProvider Capabilities Audit - Detailed technical capabilities\nProvider Selection Wizard - Interactive decision guide\nClaude Subscription Support - OAuth authentication and subscription tiers for Anthropic\nVoice Provider Selection - TTS, STT, and Realtime provider recommendations\nVoice Providers Index - Voice provider setup cards","hierarchy":{"lvl0":"Reference","lvl1":"AI Provider Comparison Guide","lvl2":"Conclusion","lvl3":""}},
9482
- {"objectID":"1e3dc7b8cb1389cf04be5a320a1ba8e0662e49f7331ec2757e3ba0ef65e18166","title":"Provider Feature Compatibility Reference","url":"/docs/reference/provider-feature-compatibility","content":"Provider Feature Compatibility Reference\n\nThis is a dated point-in-time test run covering the providers listed below, not all 40 providers NeuroLink ships today. For the current full roster, see Provider Setup and the Provider Capabilities Audit.\n\nLast Updated: 2025-12-31\nTest Suite: continuous-test-suite.ts (19 comprehensive tests)\nProviders Tested: 11 providers across CSV, PDF, MCP tools, business tools, and enterprise features\n\nExecutive Summary\n\nAfter comprehensive testing across 11 AI providers (plus 4 newly integrated providers), we have identified 4 production-ready providers with 100% feature compatibility and documented specific technical limitations and configuration requirements for all others.\n\nProduction-Ready Providers (100% Compatibility) ⭐⭐⭐\n\n| Provider | Test Score | Duration | Status | Best For |\n| -------------------- | ------------ | -------- | ---------- | --------------------------------------------- |\n| Google AI Studio | 19/19 (100%) | 401s | ✅ Perfect | Fast prototyping, full multimodal support |\n| Vertex AI | 19/19 (100%) | 449s | ✅ Perfect | Enterprise deployments, excellent performance |\n| OpenAI | 19/19 (100%) | 1413s | ✅ Perfect | Industry standard, comprehensive features |\n| LiteLLM | 19/19 (100%) | 552s | ✅ Perfect | Universal proxy for 100+ models |\n\nAll features supported:\n✅ CSV processing (6/6 tests)\n✅ PDF processing (6/6 tests)\n✅ MCP external tools (4/4 tests)\n✅ Business tools (2/2 tests)\n✅ Enterprise features (1/1 test)\n\nComplete Feature Support Matrix\n\n| Provider | CSV | PDF | MCP Tools | Business Tools | Structured Output | Enterprise | Score | Status |\n| -------------------- | -------- | ------ | --------- | -------------- | ----------------- | ---------- | --------- | ------------ |\n| Google AI Studio | ✅ 6/6 | ✅ 6/6 | ✅ 4/4 | ✅ 2/2 | ⚠️ Partial\\ | ✅ 1/1 | 19/19* | Production |\n| Vertex AI | ✅ 6/6 | ✅ 6/6 | ✅ 4/4 | ✅ 2/2 | ⚠️ Partial\\ | ✅ 1/1 | 19/19* | Production |\n| LiteLLM | ✅ 6/6 | ✅ 6/6 | ✅ 4/4 | ✅ 2/2 | ✅ Full | ✅ 1/1 | 19/19 | Production |\n| OpenAI | ✅ 6/6 | ✅ 6/6 | ✅ 4/4 | ✅ 2/2 | ✅ Full | ✅ 1/1 | 19/19 | Production |\n| Azure OpenAI | ✅ 6/6 | ❌ 0/6 | ✅ 4/4 | ✅ 2/2 | ✅ Full | ✅ 1/1 | 13/19 | Production\\* |\n| Mistral | ✅ 6/6 | ❌ 0/6 | ⚠️ 2/4 | ❌ 0/2 | ✅ Full | ✅ 1/1 | 9/19 | Development |\n| Ollama | ⚠️ 3/6 | ⚠️ 1/6 | ❌ 0/4 | ❌ 0/2 | ⚠️ Limited | ✅ 1/1 | 7/19 | Development |\n| Anthropic | 🔧 0/6 | 🔧 0/6 | 🔧 0/4 | 🔧 0/2 | ✅ Full | ✅ 1/1 | 2/19\\\\ | Config |\n| Bedrock | 🔧 0/6 | 🔧 0/6 | 🔧 0/4 | 🔧 0/2 | ✅ Full | ✅ 1/1 | 2/19\\\\ | Config |\n| Hugging Face | 🔧 0/6 | 🔧 0/6 | 🔧 0/4 | 🔧 0/2 | ⚠️ Limited | ✅ 1/1 | 2/19\\\\ | Config |\n| SageMaker | 🔧 0/6 | 🔧 0/6 | 🔧 0/4 | 🔧 0/2 | ⚠️ Limited | ✅ 1/1 | 2/19\\\\ | Config |\n| DeepSeek | ✅ 6/6 | ❌ 0/6 | ✅ 4/4 | ✅ 2/2 | ✅ Full | ✅ 1/1 | N/A† | Cloud |\n| NVIDIA NIM | ✅ 6/6 | ❌ 0/6 | ⚠️ Model | ⚠️ Model | ⚠️ Model | ✅ 1/1 | N/A† | Cloud |\n| LM Studio | ⚠️ Model | ❌ 0/6 | ⚠️ Model | ⚠️ Model | ⚠️ Model | ✅ 1/1 | N/A† | Local |\n| llama.cpp | ⚠️ Model | ❌ 0/6 | ⚠️ Model | ⚠️ Model | ⚠️ Model | ✅ 1/1 | N/A† | Local |\n\n\\*Google providers: Cannot combine tools + schemas (use disableTools: true). Google API limitation, not NeuroLink bug.\n\n†Not yet run through the standard 19-test suite. Capability flags based on provider source code audit (PR #997).\n\nLegend:\n✅ Fully supported\n⚠️ Partially supported\n❌ Not supported (technical limitation)\n🔧 Configuration/billing issue\n\\* Production-ready for non-PDF workloads\n\\\\ Configuration issue, not technical limitation\n\nModel-Level Feature Compatibility\n\nGemini 3 Models\n\n| Model | Streaming | Tools | Vision | Extended Thinking | JSON Schema |\n| ------------------ | --------- | ----- | ------ | ----------------- | ----------- |\n| gemini-3-flash | ✓ | ✓ | ✓ | ✓ | ✓† |\n| gemini-3-pro | ✓ | ✓ | ✓ | ✓ | ✓† |\n\n†JSON Schema Limitation: Gemini 3 models support JSON Schema for structured output, but cannot combine tools with JSON Schema in the same request. When using structured output with a schema, you must disable tools by setting disableTools: true. This is a Google API limitation, not a NeuroLink bug.\n\nExample Usage:\n\nProvider Tier Classification\n\nTier 1: Perfect (100%) - Production Ready for A","hierarchy":{"lvl0":"Reference","lvl1":"Provider Feature Compatibility Reference","lvl2":"","lvl3":""}},
9483
- {"objectID":"3891f4aa5da834ab9cb8755ce122930a4c1dbe4b91ab0de927111dd2e6661935","title":"Provider Feature Compatibility Reference","url":"/docs/reference/provider-feature-compatibility#provider-feature-compatibility-reference","content":"This is a dated point-in-time test run covering the providers listed below, not all 40 providers NeuroLink ships today. For the current full roster, see Provider Setup and the Provider Capabilities Audit.\n\nLast Updated: 2025-12-31\nTest Suite: continuous-test-suite.ts (19 comprehensive tests)\nProviders Tested: 11 providers across CSV, PDF, MCP tools, business tools, and enterprise features","hierarchy":{"lvl0":"Reference","lvl1":"Provider Feature Compatibility Reference","lvl2":"Provider Feature Compatibility Reference","lvl3":""}},
9514
+ {"objectID":"1e3dc7b8cb1389cf04be5a320a1ba8e0662e49f7331ec2757e3ba0ef65e18166","title":"Provider Feature Compatibility Reference","url":"/docs/reference/provider-feature-compatibility","content":"Provider Feature Compatibility Reference\n\nThis is a dated point-in-time test run covering the providers listed below, not all 44 providers NeuroLink ships today. For the current full roster, see Provider Setup and the Provider Capabilities Audit.\n\nLast Updated: 2025-12-31\nTest Suite: continuous-test-suite.ts (19 comprehensive tests)\nProviders Tested: 11 providers across CSV, PDF, MCP tools, business tools, and enterprise features\n\nExecutive Summary\n\nAfter comprehensive testing across 11 AI providers (plus 4 newly integrated providers), we have identified 4 production-ready providers with 100% feature compatibility and documented specific technical limitations and configuration requirements for all others.\n\nProduction-Ready Providers (100% Compatibility) ⭐⭐⭐\n\n| Provider | Test Score | Duration | Status | Best For |\n| -------------------- | ------------ | -------- | ---------- | --------------------------------------------- |\n| Google AI Studio | 19/19 (100%) | 401s | ✅ Perfect | Fast prototyping, full multimodal support |\n| Vertex AI | 19/19 (100%) | 449s | ✅ Perfect | Enterprise deployments, excellent performance |\n| OpenAI | 19/19 (100%) | 1413s | ✅ Perfect | Industry standard, comprehensive features |\n| LiteLLM | 19/19 (100%) | 552s | ✅ Perfect | Universal proxy for 100+ models |\n\nAll features supported:\n✅ CSV processing (6/6 tests)\n✅ PDF processing (6/6 tests)\n✅ MCP external tools (4/4 tests)\n✅ Business tools (2/2 tests)\n✅ Enterprise features (1/1 test)\n\nComplete Feature Support Matrix\n\n| Provider | CSV | PDF | MCP Tools | Business Tools | Structured Output | Enterprise | Score | Status |\n| -------------------- | -------- | ------ | --------- | -------------- | ----------------- | ---------- | --------- | ------------ |\n| Google AI Studio | ✅ 6/6 | ✅ 6/6 | ✅ 4/4 | ✅ 2/2 | ⚠️ Partial\\ | ✅ 1/1 | 19/19* | Production |\n| Vertex AI | ✅ 6/6 | ✅ 6/6 | ✅ 4/4 | ✅ 2/2 | ⚠️ Partial\\ | ✅ 1/1 | 19/19* | Production |\n| LiteLLM | ✅ 6/6 | ✅ 6/6 | ✅ 4/4 | ✅ 2/2 | ✅ Full | ✅ 1/1 | 19/19 | Production |\n| OpenAI | ✅ 6/6 | ✅ 6/6 | ✅ 4/4 | ✅ 2/2 | ✅ Full | ✅ 1/1 | 19/19 | Production |\n| Azure OpenAI | ✅ 6/6 | ❌ 0/6 | ✅ 4/4 | ✅ 2/2 | ✅ Full | ✅ 1/1 | 13/19 | Production\\* |\n| Mistral | ✅ 6/6 | ❌ 0/6 | ⚠️ 2/4 | ❌ 0/2 | ✅ Full | ✅ 1/1 | 9/19 | Development |\n| Ollama | ⚠️ 3/6 | ⚠️ 1/6 | ❌ 0/4 | ❌ 0/2 | ⚠️ Limited | ✅ 1/1 | 7/19 | Development |\n| Anthropic | 🔧 0/6 | 🔧 0/6 | 🔧 0/4 | 🔧 0/2 | ✅ Full | ✅ 1/1 | 2/19\\\\ | Config |\n| Bedrock | 🔧 0/6 | 🔧 0/6 | 🔧 0/4 | 🔧 0/2 | ✅ Full | ✅ 1/1 | 2/19\\\\ | Config |\n| Hugging Face | 🔧 0/6 | 🔧 0/6 | 🔧 0/4 | 🔧 0/2 | ⚠️ Limited | ✅ 1/1 | 2/19\\\\ | Config |\n| SageMaker | 🔧 0/6 | 🔧 0/6 | 🔧 0/4 | 🔧 0/2 | ⚠️ Limited | ✅ 1/1 | 2/19\\\\ | Config |\n| DeepSeek | ✅ 6/6 | ❌ 0/6 | ✅ 4/4 | ✅ 2/2 | ✅ Full | ✅ 1/1 | N/A† | Cloud |\n| NVIDIA NIM | ✅ 6/6 | ❌ 0/6 | ⚠️ Model | ⚠️ Model | ⚠️ Model | ✅ 1/1 | N/A† | Cloud |\n| LM Studio | ⚠️ Model | ❌ 0/6 | ⚠️ Model | ⚠️ Model | ⚠️ Model | ✅ 1/1 | N/A† | Local |\n| llama.cpp | ⚠️ Model | ❌ 0/6 | ⚠️ Model | ⚠️ Model | ⚠️ Model | ✅ 1/1 | N/A† | Local |\n\n\\*Google providers: Cannot combine tools + schemas (use disableTools: true). Google API limitation, not NeuroLink bug.\n\n†Not yet run through the standard 19-test suite. Capability flags based on provider source code audit (PR #997).\n\nLegend:\n✅ Fully supported\n⚠️ Partially supported\n❌ Not supported (technical limitation)\n🔧 Configuration/billing issue\n\\* Production-ready for non-PDF workloads\n\\\\ Configuration issue, not technical limitation\n\nModel-Level Feature Compatibility\n\nGemini 3 Models\n\n| Model | Streaming | Tools | Vision | Extended Thinking | JSON Schema |\n| ------------------ | --------- | ----- | ------ | ----------------- | ----------- |\n| gemini-3-flash | ✓ | ✓ | ✓ | ✓ | ✓† |\n| gemini-3-pro | ✓ | ✓ | ✓ | ✓ | ✓† |\n\n†JSON Schema Limitation: Gemini 3 models support JSON Schema for structured output, but cannot combine tools with JSON Schema in the same request. When using structured output with a schema, you must disable tools by setting disableTools: true. This is a Google API limitation, not a NeuroLink bug.\n\nExample Usage:\n\nProvider Tier Classification\n\nTier 1: Perfect (100%) - Production Ready for A","hierarchy":{"lvl0":"Reference","lvl1":"Provider Feature Compatibility Reference","lvl2":"","lvl3":""}},
9515
+ {"objectID":"3891f4aa5da834ab9cb8755ce122930a4c1dbe4b91ab0de927111dd2e6661935","title":"Provider Feature Compatibility Reference","url":"/docs/reference/provider-feature-compatibility#provider-feature-compatibility-reference","content":"This is a dated point-in-time test run covering the providers listed below, not all 44 providers NeuroLink ships today. For the current full roster, see Provider Setup and the Provider Capabilities Audit.\n\nLast Updated: 2025-12-31\nTest Suite: continuous-test-suite.ts (19 comprehensive tests)\nProviders Tested: 11 providers across CSV, PDF, MCP tools, business tools, and enterprise features","hierarchy":{"lvl0":"Reference","lvl1":"Provider Feature Compatibility Reference","lvl2":"Provider Feature Compatibility Reference","lvl3":""}},
9484
9516
  {"objectID":"239b138dc93623d9a904157ce4a5bdc994cdb7993f767f1a9c6de47b50a4f674","title":"Executive Summary","url":"/docs/reference/provider-feature-compatibility#executive-summary","content":"After comprehensive testing across 11 AI providers (plus 4 newly integrated providers), we have identified 4 production-ready providers with 100% feature compatibility and documented specific technical limitations and configuration requirements for all others.","hierarchy":{"lvl0":"Reference","lvl1":"Provider Feature Compatibility Reference","lvl2":"Executive Summary","lvl3":""}},
9485
9517
  {"objectID":"125021efa5db1e2d872c148d730b4aee7ac3522b0b52387d79777f2067bcb1c8","title":"Production-Ready Providers (100% Compatibility) ⭐⭐⭐","url":"/docs/reference/provider-feature-compatibility#production-ready-providers-100-compatibility-","content":"| Provider | Test Score | Duration | Status | Best For |\n| -------------------- | ------------ | -------- | ---------- | --------------------------------------------- |\n| Google AI Studio | 19/19 (100%) | 401s | ✅ Perfect | Fast prototyping, full multimodal support |\n| Vertex AI | 19/19 (100%) | 449s | ✅ Perfect | Enterprise deployments, excellent performance |\n| OpenAI | 19/19 (100%) | 1413s | ✅ Perfect | Industry standard, comprehensive features |\n| LiteLLM | 19/19 (100%) | 552s | ✅ Perfect | Universal proxy for 100+ models |\n\nAll features supported:\n✅ CSV processing (6/6 tests)\n✅ PDF processing (6/6 tests)\n✅ MCP external tools (4/4 tests)\n✅ Business tools (2/2 tests)\n✅ Enterprise features (1/1 test)","hierarchy":{"lvl0":"Reference","lvl1":"Provider Feature Compatibility Reference","lvl2":"Production-Ready Providers (100% Compatibility) ⭐⭐⭐","lvl3":""}},
9486
9518
  {"objectID":"4434cdc7f4be5d72212e891e3b95224491160571e1d6969095f46536d708e229","title":"Complete Feature Support Matrix","url":"/docs/reference/provider-feature-compatibility#complete-feature-support-matrix","content":"| Provider | CSV | PDF | MCP Tools | Business Tools | Structured Output | Enterprise | Score | Status |\n| -------------------- | -------- | ------ | --------- | -------------- | ----------------- | ---------- | --------- | ------------ |\n| Google AI Studio | ✅ 6/6 | ✅ 6/6 | ✅ 4/4 | ✅ 2/2 | ⚠️ Partial\\ | ✅ 1/1 | 19/19* | Production |\n| Vertex AI | ✅ 6/6 | ✅ 6/6 | ✅ 4/4 | ✅ 2/2 | ⚠️ Partial\\ | ✅ 1/1 | 19/19* | Production |\n| LiteLLM | ✅ 6/6 | ✅ 6/6 | ✅ 4/4 | ✅ 2/2 | ✅ Full | ✅ 1/1 | 19/19 | Production |\n| OpenAI | ✅ 6/6 | ✅ 6/6 | ✅ 4/4 | ✅ 2/2 | ✅ Full | ✅ 1/1 | 19/19 | Production |\n| Azure OpenAI | ✅ 6/6 | ❌ 0/6 | ✅ 4/4 | ✅ 2/2 | ✅ Full | ✅ 1/1 | 13/19 | Production\\* |\n| Mistral | ✅ 6/6 | ❌ 0/6 | ⚠️ 2/4 | ❌ 0/2 | ✅ Full | ✅ 1/1 | 9/19 | Development |\n| Ollama | ⚠️ 3/6 | ⚠️ 1/6 | ❌ 0/4 | ❌ 0/2 | ⚠️ Limited | ✅ 1/1 | 7/19 | Development |\n| Anthropic | 🔧 0/6 | 🔧 0/6 | 🔧 0/4 | 🔧 0/2 | ✅ Full | ✅ 1/1 | 2/19\\\\ | Config |\n| Bedrock | 🔧 0/6 | 🔧 0/6 | 🔧 0/4 | 🔧 0/2 | ✅ Full | ✅ 1/1 | 2/19\\\\ | Config |\n| Hugging Face | 🔧 0/6 | 🔧 0/6 | 🔧 0/4 | 🔧 0/2 | ⚠️ Limited | ✅ 1/1 | 2/19\\\\ | Config |\n| SageMaker | 🔧 0/6 | 🔧 0/6 | 🔧 0/4 | 🔧 0/2 | ⚠️ Limited | ✅ 1/1 | 2/19\\\\ | Config |\n| DeepSeek | ✅ 6/6 | ❌ 0/6 | ✅ 4/4 | ✅ 2/2 | ✅ Full | ✅ 1/1 | N/A† | Cloud |\n| NVIDIA NIM | ✅ 6/6 | ❌ 0/6 | ⚠️ Model | ⚠️ Model | ⚠️ Model | ✅ 1/1 | N/A† | Cloud |\n| LM Studio | ⚠️ Model | ❌ 0/6 | ⚠️ Model | ⚠️ Model | ⚠️ Model | ✅ 1/1 | N/A† | Loca","hierarchy":{"lvl0":"Reference","lvl1":"Provider Feature Compatibility Reference","lvl2":"Complete Feature Support Matrix","lvl3":""}},
@@ -10164,8 +10196,8 @@
10164
10196
  {"objectID":"f2ff95a8517aa1bc258524b78aac7ade9816a77b7432d61a3b412f397f7d689b","title":"Client-bundle dependencies — needs-review","url":"/docs/security/subpackage-advisories#client-bundle-dependencies-needs-review","content":"| Severity | Module | GHSA | Chain | Why it's different | Triage |\n| --- | --- | --- | --- | --- | --- |\n| Moderate | @opentelemetry/core | GHSA-8988-4f7v-96qf | posthog-js > @opentelemetry/exporter-logs-otlp-http > @opentelemetry/core (2 paths) | posthog-js ships in the browser bundle for analytics; this specific package is the OTLP log-export path, which sends telemetry out, it doesn't parse attacker-supplied baggage headers inbound. | Accept-risk — outbound-only code path; re-review if posthog-js is ever used to ingest, not just emit, telemetry. |\n| Moderate | protobufjs | GHSA-j3f2-48v5-ccww, GHSA-jfj6-75fj-8934 | posthog-js > @opentelemetry/exporter-logs-otlp-http > @opentelemetry/otlp-transformer > protobufjs | Same outbound-only OTLP export path as above. | Accept-risk, same reasoning. |\n| Moderate | fflate | GHSA-px8p-9vwx-vf98 | posthog-js > fflate | Ships in the client bundle; posthog-js uses it for its own asset compression, not for parsing user-supplied archives. | Accept-risk, low reachability. |\n| Moderate | dompurify | GHSA-55q2-fjhq-7xh7, GHSA-cmwh-pvxp-8882 | isomorphic-dompurify > dompurify | Sanitizes HTML that ends up rendered in the browser. Content sanitized here is this repo's own authored MDX/docs, not arbitrary visitor input — but a sanitizer bypass is exactly the class of bug that matters most if that assumption ever changes. | Needs-upgrade. A fixed dompurify is published (>=3.4.13 / >=3.4.11); whatever pulls isomorphic-dompurify should get it bumped, or the dependency dropped if it renders nothing but static build-time content. |\n| Low | dompurify | GHSA-c2j3-45gr-mqc4 | isomorphic-dompurify > dompurify | Same chain as above. | Needs-upgrade, same fix as the moderate dompurify rows. |","hierarchy":{"lvl0":"Security","lvl1":"Subpackage Dependency Advisories","lvl2":"Client-bundle dependencies — needs-review","lvl3":""}},
10165
10197
  {"objectID":"d060d41f0402f33d02d94eeae0d16c494860addcf47ca14b51ab2fabef4ee1ce","title":"Recommendation","url":"/docs/security/subpackage-advisories#recommendation","content":"No action required to keep the critical-only gate green — it already\n is, in both trees, and stays that way regardless of anything in this\n document.\nlanding/: the next time landing/package.json is edited, add\n brace-expansion: \">=5.0.9\" and fflate: \">=0.8.3\" to its existing\n pnpm.overrides block (it already carries five other overrides for the\n same class of transitive-vulnerability problem — tar, devalue,\n rollup, minimatch, cookie, esbuild — so this is precedent, not a\n new pattern). That closes all 4 brace-expansion findings and the one\n runtime-reachable finding in either tree.\ndocs-site/: find and either upgrade or remove whatever pulls in\n isomorphic-dompurify; it is the only docs-site/ finding with a\n reachable-in-the-browser exploit class (XSS) and an available fix.\n Everything else in docs-site/ tracks @docusaurus/core's own upstream\n releases — re-measure after the next Docusaurus bump rather than chasing\n individual transitive pins.\nRaising --audit-level from critical to high in ci.yml needs the\n two needs-upgrade items above resolved first (per ci.yml's own\n comment); the accept-risk rows would still need an explicit\n pnpm audit --ignore (or equivalent) per advisory to avoid re-blocking on\n findings this document already reviewed. Not done as part of this pass —\n flagged here for whoever picks that decision up.","hierarchy":{"lvl0":"Security","lvl1":"Subpackage Dependency Advisories","lvl2":"Recommendation","lvl3":""}},
10166
10198
  {"objectID":"1080399eefc78beb7860fc2379dec788e8e825df30255c2e9061b40fbbdc767b","title":"Next review","url":"/docs/security/subpackage-advisories#next-review","content":"Re-run the Methodology commands: at minimum whenever\nlanding/pnpm-lock.yaml or docs-site/pnpm-lock.yaml changes, and\notherwise on the same quarterly cadence as docs/development/package-overrides.md.","hierarchy":{"lvl0":"Security","lvl1":"Subpackage Dependency Advisories","lvl2":"Next review","lvl3":""}},
10167
- {"objectID":"2d54764a0f90619f4dfe26cb0c85428f75091a63091f6cc73b70defe3139e6a8","title":"NeuroLink Usage Guide","url":"/docs/skills/neurolink-guide/SKILL","content":"NeuroLink Usage Guide\n\nNeuroLink is an enterprise AI development platform providing unified access to 40 AI providers (text, decision-making, voice, multimodal) through a single API. It ships as both a TypeScript SDK (@juspay/neurolink) and a professional CLI.\n\nQuick Navigation\n\nBased on your query, I'll guide you to the right documentation:\nGetting Started → Read sdk-quickstart.md\nProvider Setup → Read providers.md\nMultimodal (images, PDFs, files) → Read multimodal.md\nMCP Tools Integration → Read tools-mcp.md\nRAG Pipelines → Read rag-integration.md\nConversation Memory → Read memory-conversations.md\nCLI Commands → Read cli-reference.md\nAdvanced Features → Read advanced-features.md\nTroubleshooting → Read troubleshooting.md\n\nTopic Routing\n\nIf the user asked about $ARGUMENTS:\n\n| Topic Keywords | Reference File |\n| -------------------------------------------------------------------------- | ----------------------- |\n| install, setup, start, begin, quickstart | sdk-quickstart.md |\n| provider, openai, anthropic, vertex, bedrock, azure, gemini, claude, model | providers.md |\n| image, pdf, csv, excel, document, file, multimodal, vision | multimodal.md |\n| tool, mcp, server, GitHub, external, function | tools-mcp.md |\n| rag, retrieval, chunk, vector, embed, document search | rag-integration.md |\n| memory, conversation, history, session, redis, context | memory-conversations.md |\n| cli, command, terminal, generate, stream, loop, serve | cli-reference.md |\n| hitl, workflow, agent, observe, telemetry, deploy, server | advanced-features.md |\n| error, issue, problem, fix, debug, not working | troubleshooting.md |\n\nInstallation\n\nMinimal Example\n\nKey Capabilities\n\n| Feature | Description |\n| ----------------- | ---------------------------------------------------------------- |\n| 40 Providers | OpenAI, Anthropic, Vertex, Bedrock, Azure, Mistral, Ollama, etc. |\n| Multimodal | Images, PDFs, CSV, Excel, Word, 50+ file types |\n| MCP Tools | 58+ tools via Model Context Protocol |\n| RAG | Built-in chunking, embedding, vector search |\n| Memory | Conversation history with Redis support |\n| Streaming | Real-time token streaming |\n| HITL | Human-in-the-loop approval workflows |\n| Observability | Langfuse, OpenTelemetry integration |\n\nCode Templates\n\nReady-to-use examples in templates/:\ntemplates/basic-setup.ts - Basic SDK initialization\ntemplates/streaming.ts - Streaming responses\ntemplates/with-tools.ts - Tool integration\ntemplates/rag-pipeline.ts - RAG usage\ntemplates/server-deploy.ts - HTTP server deployment\n\nCLI Quick Reference\n\nEnvironment Variables\n\nSet up your provider credentials:\n\nType Imports\n\nGetting Help\nCheck the relevant reference file above\nReview troubleshooting.md for common issues\nLook at code templates in templates/\nRead the full CLAUDE.md in the project root for architecture details\n\nInstructions for Claude: Based on the user's query about $ARGUMENTS, read the appropriate reference file and provide specific guidance. If no topic is specified, give a general overview of NeuroLink capabilities and ask what they'd like help with.","hierarchy":{"lvl0":"Skills","lvl1":"NeuroLink Usage Guide","lvl2":"","lvl3":""}},
10168
- {"objectID":"96aa85169d914ba98c31e12923e593471d8584415add8a7583153796c856955d","title":"NeuroLink Usage Guide","url":"/docs/skills/neurolink-guide/SKILL#neurolink-usage-guide","content":"NeuroLink is an enterprise AI development platform providing unified access to 40 AI providers (text, decision-making, voice, multimodal) through a single API. It ships as both a TypeScript SDK (@juspay/neurolink) and a professional CLI.","hierarchy":{"lvl0":"Skills","lvl1":"NeuroLink Usage Guide","lvl2":"NeuroLink Usage Guide","lvl3":""}},
10199
+ {"objectID":"2d54764a0f90619f4dfe26cb0c85428f75091a63091f6cc73b70defe3139e6a8","title":"NeuroLink Usage Guide","url":"/docs/skills/neurolink-guide/SKILL","content":"NeuroLink Usage Guide\n\nNeuroLink is an enterprise AI development platform providing unified access to 44 AI providers (text, decision-making, voice, multimodal) through a single API. It ships as both a TypeScript SDK (@juspay/neurolink) and a professional CLI.\n\nQuick Navigation\n\nBased on your query, I'll guide you to the right documentation:\nGetting Started → Read sdk-quickstart.md\nProvider Setup → Read providers.md\nMultimodal (images, PDFs, files) → Read multimodal.md\nMCP Tools Integration → Read tools-mcp.md\nRAG Pipelines → Read rag-integration.md\nConversation Memory → Read memory-conversations.md\nCLI Commands → Read cli-reference.md\nAdvanced Features → Read advanced-features.md\nTroubleshooting → Read troubleshooting.md\n\nTopic Routing\n\nIf the user asked about $ARGUMENTS:\n\n| Topic Keywords | Reference File |\n| -------------------------------------------------------------------------- | ----------------------- |\n| install, setup, start, begin, quickstart | sdk-quickstart.md |\n| provider, openai, anthropic, vertex, bedrock, azure, gemini, claude, model | providers.md |\n| image, pdf, csv, excel, document, file, multimodal, vision | multimodal.md |\n| tool, mcp, server, GitHub, external, function | tools-mcp.md |\n| rag, retrieval, chunk, vector, embed, document search | rag-integration.md |\n| memory, conversation, history, session, redis, context | memory-conversations.md |\n| cli, command, terminal, generate, stream, loop, serve | cli-reference.md |\n| hitl, workflow, agent, observe, telemetry, deploy, server | advanced-features.md |\n| error, issue, problem, fix, debug, not working | troubleshooting.md |\n\nInstallation\n\nMinimal Example\n\nKey Capabilities\n\n| Feature | Description |\n| ----------------- | ---------------------------------------------------------------- |\n| 40 Providers | OpenAI, Anthropic, Vertex, Bedrock, Azure, Mistral, Ollama, etc. |\n| Multimodal | Images, PDFs, CSV, Excel, Word, 50+ file types |\n| MCP Tools | 58+ tools via Model Context Protocol |\n| RAG | Built-in chunking, embedding, vector search |\n| Memory | Conversation history with Redis support |\n| Streaming | Real-time token streaming |\n| HITL | Human-in-the-loop approval workflows |\n| Observability | Langfuse, OpenTelemetry integration |\n\nCode Templates\n\nReady-to-use examples in templates/:\ntemplates/basic-setup.ts - Basic SDK initialization\ntemplates/streaming.ts - Streaming responses\ntemplates/with-tools.ts - Tool integration\ntemplates/rag-pipeline.ts - RAG usage\ntemplates/server-deploy.ts - HTTP server deployment\n\nCLI Quick Reference\n\nEnvironment Variables\n\nSet up your provider credentials:\n\nType Imports\n\nGetting Help\nCheck the relevant reference file above\nReview troubleshooting.md for common issues\nLook at code templates in templates/\nRead the full CLAUDE.md in the project root for architecture details\n\nInstructions for Claude: Based on the user's query about $ARGUMENTS, read the appropriate reference file and provide specific guidance. If no topic is specified, give a general overview of NeuroLink capabilities and ask what they'd like help with.","hierarchy":{"lvl0":"Skills","lvl1":"NeuroLink Usage Guide","lvl2":"","lvl3":""}},
10200
+ {"objectID":"96aa85169d914ba98c31e12923e593471d8584415add8a7583153796c856955d","title":"NeuroLink Usage Guide","url":"/docs/skills/neurolink-guide/SKILL#neurolink-usage-guide","content":"NeuroLink is an enterprise AI development platform providing unified access to 44 AI providers (text, decision-making, voice, multimodal) through a single API. It ships as both a TypeScript SDK (@juspay/neurolink) and a professional CLI.","hierarchy":{"lvl0":"Skills","lvl1":"NeuroLink Usage Guide","lvl2":"NeuroLink Usage Guide","lvl3":""}},
10169
10201
  {"objectID":"21b1f230a7feb082ffa13eb9ce75c5ec9268a2a0d7eac96bb086d500d9f3e6c7","title":"Quick Navigation","url":"/docs/skills/neurolink-guide/SKILL#quick-navigation","content":"Based on your query, I'll guide you to the right documentation:\nGetting Started → Read sdk-quickstart.md\nProvider Setup → Read providers.md\nMultimodal (images, PDFs, files) → Read multimodal.md\nMCP Tools Integration → Read tools-mcp.md\nRAG Pipelines → Read rag-integration.md\nConversation Memory → Read memory-conversations.md\nCLI Commands → Read cli-reference.md\nAdvanced Features → Read advanced-features.md\nTroubleshooting → Read troubleshooting.md","hierarchy":{"lvl0":"Skills","lvl1":"NeuroLink Usage Guide","lvl2":"Quick Navigation","lvl3":""}},
10170
10202
  {"objectID":"e605615042f0ca67afbb7328516b1ae5c0f0863857354643925f4b34f31bc28a","title":"Topic Routing","url":"/docs/skills/neurolink-guide/SKILL#topic-routing","content":"If the user asked about $ARGUMENTS:\n\n| Topic Keywords | Reference File |\n| -------------------------------------------------------------------------- | ----------------------- |\n| install, setup, start, begin, quickstart | sdk-quickstart.md |\n| provider, openai, anthropic, vertex, bedrock, azure, gemini, claude, model | providers.md |\n| image, pdf, csv, excel, document, file, multimodal, vision | multimodal.md |\n| tool, mcp, server, GitHub, external, function | tools-mcp.md |\n| rag, retrieval, chunk, vector, embed, document search | rag-integration.md |\n| memory, conversation, history, session, redis, context | memory-conversations.md |\n| cli, command, terminal, generate, stream, loop, serve | cli-reference.md |\n| hitl, workflow, agent, observe, telemetry, deploy, server | advanced-features.md |\n| error, issue, problem, fix, debug, not working | troubleshooting.md |","hierarchy":{"lvl0":"Skills","lvl1":"NeuroLink Usage Guide","lvl2":"Topic Routing","lvl3":""}},
10171
10203
  {"objectID":"e16256b54ee1cd840e3970192de5a57174044100e1c685badadf0e717b4b3a00","title":"Installation","url":"/docs/skills/neurolink-guide/SKILL#installation","content":"`bash\nnpm install @juspay/neurolink","hierarchy":{"lvl0":"Skills","lvl1":"NeuroLink Usage Guide","lvl2":"Installation","lvl3":""}},