@juspay/neurolink 12.36.1 → 12.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -126,10 +126,14 @@ export type ClaudeRequest = {
126
126
  stream?: boolean;
127
127
  tools?: ClaudeTool[];
128
128
  tool_choice?: {
129
- type: "auto" | "any" | "none";
129
+ type: "none";
130
+ } | {
131
+ type: "auto" | "any";
132
+ disable_parallel_tool_use?: boolean;
130
133
  } | {
131
134
  type: "tool";
132
135
  name: string;
136
+ disable_parallel_tool_use?: boolean;
133
137
  };
134
138
  thinking?: {
135
139
  type: string;
@@ -1858,6 +1862,13 @@ export type ProxyMetrics = {
1858
1862
  fallbackAttemptsTotal: Counter;
1859
1863
  fallbackSuccessTotal: Counter;
1860
1864
  fallbackFailureTotal: Counter;
1865
+ /** Codex-outbound: a declared tool's JSON Schema needed flattening or lost
1866
+ * a feature (circular $ref, dropped `strict`, a custom grammar tool wrapped
1867
+ * into a one-string schema) on its way to a Claude tool. */
1868
+ schemaDegradedTotal: Counter;
1869
+ /** Codex-outbound: an inbound field this repo cannot faithfully represent
1870
+ * in the Claude request was dropped rather than failing the translation. */
1871
+ unsupportedFieldTotal: Counter;
1861
1872
  };
1862
1873
  /** Context for a proxy request at the root span level. */
1863
1874
  export type ProxyRequestContext = {
@@ -3501,7 +3501,7 @@
3501
3501
  {"objectID":"a900aa88102d3e7f32205bee5665bb0732bca6cfe575bcdca0ca993a3590f28e","title":"Bad Word List Curation","url":"/docs/features/guardrails#bad-word-list-curation","content":"✅ Do:\nInclude specific harmful terms\nUse exact phrases, not single characters\nRegularly update based on user reports\nConsider context-specific terms for your domain\n\n❌ Don't:\nAdd common English words (high false positive rate)\nInclude single letters or short words\nRely solely on bad words (use model filter too)","hierarchy":{"lvl0":"Features","lvl1":"Guardrails Middleware","lvl2":"Bad Word List Curation","lvl3":""}},
3502
3502
  {"objectID":"8380babcbfc88033aac779943fa372013989ce1cd79ebbc9f1803af06cf2e27e","title":"Related Features","url":"/docs/features/guardrails#related-features","content":"HITL Workflows - User approval for risky actions\nMiddleware Architecture - Custom middleware development\nAnalytics Integration - Track filtered content metrics","hierarchy":{"lvl0":"Features","lvl1":"Guardrails Middleware","lvl2":"Related Features","lvl3":""}},
3503
3503
  {"objectID":"4dcd9d3f7dd025aac5e11ee4820832266eed4420348ba5f439bac3b9035737ae","title":"Migration Notes","url":"/docs/features/guardrails#migration-notes","content":"If upgrading from versions before v7.42.0:\nGuardrails are now enabled via middleware presets\nOld guardrailsConfig option deprecated - use middlewareConfig.guardrails\nNo breaking changes - existing configs still work\nRecommended: Switch to preset: \"security\" for simplified setup\n\nFor complete technical documentation and advanced integration patterns, see guardrails-ai-integration.md.","hierarchy":{"lvl0":"Features","lvl1":"Guardrails Middleware","lvl2":"Migration Notes","lvl3":""}},
3504
- {"objectID":"4360e3d584ae161b59c6d6c3d6c7fe074f475883b020805602930215117fd0d7","title":"Human-in-the-Loop (HITL) Workflows","url":"/docs/features/hitl","content":"Human-in-the-Loop (HITL) Workflows\n\nSince: v7.39.0 | Status: Stable | Availability: SDK\n\nOverview\n\nWhat it does: HITL pauses AI tool execution to request explicit user approval before performing risky operations like deleting files, modifying databases, or making expensive API calls.\n\nWhy use it: Prevent costly mistakes and give users control over potentially dangerous AI actions. Think of it as an \"Are you sure?\" dialog for AI assistant operations.\n\nOnly use HITL for truly risky operations. Overusing confirmation prompts degrades user experience and can lead to \"confirmation fatigue\" where users approve actions without reading them.\n\nCommon use cases:\nFile deletion or modification operations\nDatabase write/delete operations\nExpensive third-party API calls\nIrreversible actions (sending emails, posting to social media)\nOperations accessing sensitive data\n\nQuick Start\n\nSDK Example\nTool identifier used by the AI to invoke this function\nDescribes tool purpose to the LLM for proper selection\nTriggers HITL checkpoint before execution\nActual implementation only runs after user approval\n\nHandling Confirmation in Your UI\n\nHITL uses an event-based workflow where the SDK emits confirmation requests and your app responds with user decisions.\nGet the event emitter - NeuroLink is not itself an emitter, so requests and responses both go through getEventEmitter()\nSubscribe to confirmation requests - NeuroLink emits one before running a tool that needs approval\nShow your confirmation UI with the tool name, arguments and remaining time\nReply on the same emitter, echoing the request's confirmationId so the response is matched to its request\nApproval decision determines if tool executes\nOptional: Handle cases where user doesn't respond in time\n\nConfiguration\n\n| Option | Type | Default | Required | Description |\n| ---------------------- | --------- | ------- | -------- | ------------------------------------ |\n| requiresConfirmation | boolean | false | No | Mark tool as requiring user approval |\n\nTool Registration\n\nHow It Works\n\nExecution Flow\nAI requests tool execution → Tool executor checks if tool requires confirmation\nConfirmation required? → Returns USER_CONFIRMATION_REQUIRED error to LLM\nLLM asks user → \"I need to [action]. Is that okay?\"\nUser responds:\nApprove → UI sets confirmation_received = true and retries tool execution\nDeny → UI sends \"User cancelled\" message back to LLM\nTool executes → Permission flag immediately resets to false\n\nSecurity Features\nOne-time permissions: Each approval works for exactly one action\nNo reuse: AI cannot reuse old permissions for new actions\nAutomatic reset: Permission flag clears immediately after use\nFail-safe: Defaults to requiring permission when in doubt\n\nAPI Reference\n\nEvent Types\n\nAll HITL events ride the SDK emitter returned by\nneurolink.getEventEmitter(); emitter below is that object.\n\nConfirmation Request Event (hitl:confirmation-request):\n\nConfirmation Response (emit from your app):\n\nTimeout Event (hitl:timeout):\n\nSee human-in-the-loop.md for complete technical documentation.\n\nTroubleshooting\n\nProblem: Tool executes without asking for permission\n\nCause: Tool not marked with requiresConfirmation: true\nSolution:\nAdd this boolean flag to any tool that performs risky operations\n\nProblem: AI keeps asking for confirmation repeatedly\n\nCause: Confirmation responses not being sent or sent with wrong confirmationId\nSolution:\nExtract confirmation ID from the request event\nAlways respond to every confirmation request\nCritical: Use the same confirmationId from the request\n\nProblem: Confirmation dialog doesn't show\n\nCause: Not listening to hitl:confirmation-request event\nSolution:\nRegister the event handler early in your application startup\nAll subsequent tool executions will trigger confirmations when needed\n\nBest Practices\n\nStore user confirmation preferences to avoid repeated prompts for the same action type. For example, if a user approves \"delete temporary files\" once, cache that preference for similar low-risk deletions in the same session.\n\nFor Developers\nMark tools conservatively - If an operation could cause problems, require confirmation\nClear prompts - Ensure users understand exactly what will happen\nTest confirmation flow - Verify it works smoothly in your UI\nLog approvals - Keep audit trail of user decisions\nHandle denials gracefully - Allow users to try alternative approaches\n\nWhat to Mark as Requiring Confirmation\n\n✅ Do require confirmation:\nFile deletions\nDatabase writes/deletes\nSending emails or messages\nMaking purchases or payments\nModifying production systems\n\n❌ Don't require confirmation:\nRead-only operations\nAnswering questions\nGenerating content\nSearching/fetching data\n\nRelated Features\nGuardrails Middleware - Content filtering and safety checks\nCustom Tools - Building your own tools with HITL\nMiddleware Architecture - Advanced request interception\n\nMigration Notes\n\nIf upgrading from versions before v7.39.0:\nReview all","hierarchy":{"lvl0":"Features","lvl1":"Human-in-the-Loop (HITL) Workflows","lvl2":"","lvl3":""}},
3504
+ {"objectID":"4360e3d584ae161b59c6d6c3d6c7fe074f475883b020805602930215117fd0d7","title":"Human-in-the-Loop (HITL) Workflows","url":"/docs/features/hitl","content":"Human-in-the-Loop (HITL) Workflows\n\nSince: v7.39.0 | Status: Stable | Availability: SDK\n\nOverview\n\nWhat it does: HITL pauses AI tool execution to request explicit user approval before performing risky operations like deleting files, modifying databases, or making expensive API calls.\n\nWhy use it: Prevent costly mistakes and give users control over potentially dangerous AI actions. Think of it as an \"Are you sure?\" dialog for AI assistant operations.\n\nOnly use HITL for truly risky operations. Overusing confirmation prompts degrades user experience and can lead to \"confirmation fatigue\" where users approve actions without reading them.\n\nCommon use cases:\nFile deletion or modification operations\nDatabase write/delete operations\nExpensive third-party API calls\nIrreversible actions (sending emails, posting to social media)\nOperations accessing sensitive data\n\nQuick Start\n\nSDK Example\nTool identifier used by the AI to invoke this function\nDescribes tool purpose to the LLM for proper selection\nTriggers HITL checkpoint before execution\nActual implementation only runs after user approval\n\nHandling Confirmation in Your UI\n\nHITL uses an event-based workflow where the SDK emits confirmation requests and your app responds with user decisions.\nGet the event emitter - NeuroLink is not itself an emitter, so requests and responses both go through getEventEmitter()\nSubscribe to confirmation requests - NeuroLink emits one before running a tool that needs approval\nShow your confirmation UI with the tool name, arguments and remaining time\nReply on the same emitter, echoing the request's confirmationId so the response is matched to its request\nApproval decision determines if tool executes\nOptional: Handle cases where user doesn't respond in time\n\nConfiguration\n\n| Option | Type | Default | Required | Description |\n| ---------------------- | --------- | ------- | -------- | ------------------------------------ |\n| requiresConfirmation | boolean | false | No | Mark tool as requiring user approval |\n\nTool Registration\n\nHow It Works\n\nExecution Flow\nAI requests tool execution → Tool executor checks if tool requires confirmation\nConfirmation required? → Returns USER_CONFIRMATION_REQUIRED error to LLM\nLLM asks user → \"I need to [action]. Is that okay?\"\nUser responds:\nApprove → UI sets confirmation_received = true and retries tool execution\nDeny → UI sends \"User cancelled\" message back to LLM\nTool executes → Permission flag immediately resets to false\n\nSecurity Features\nOne-time permissions: Each approval works for exactly one action\nNo reuse: AI cannot reuse old permissions for new actions\nAutomatic reset: Permission flag clears immediately after use\nFail-safe: Defaults to requiring permission when in doubt\n\nAPI Reference\n\nEvent Types\n\nAll HITL events ride the SDK emitter returned by\nneurolink.getEventEmitter(); emitter below is that object.\n\nConfirmation Request Event (hitl:confirmation-request):\n\nConfirmation Response (emit from your app):\n\nTimeout Event (hitl:timeout):\n\nTroubleshooting\n\nProblem: Tool executes without asking for permission\n\nCause: Tool not marked with requiresConfirmation: true\nSolution:\nAdd this boolean flag to any tool that performs risky operations\n\nProblem: AI keeps asking for confirmation repeatedly\n\nCause: Confirmation responses not being sent or sent with wrong confirmationId\nSolution:\nExtract confirmation ID from the request event\nAlways respond to every confirmation request\nCritical: Use the same confirmationId from the request\n\nProblem: Confirmation dialog doesn't show\n\nCause: Not listening to hitl:confirmation-request event\nSolution:\nRegister the event handler early in your application startup\nAll subsequent tool executions will trigger confirmations when needed\n\nBest Practices\n\nStore user confirmation preferences to avoid repeated prompts for the same action type. For example, if a user approves \"delete temporary files\" once, cache that preference for similar low-risk deletions in the same session.\n\nFor Developers\nMark tools conservatively - If an operation could cause problems, require confirmation\nClear prompts - Ensure users understand exactly what will happen\nTest confirmation flow - Verify it works smoothly in your UI\nLog approvals - Keep audit trail of user decisions\nHandle denials gracefully - Allow users to try alternative approaches\n\nWhat to Mark as Requiring Confirmation\n\n✅ Do require confirmation:\nFile deletions\nDatabase writes/deletes\nSending emails or messages\nMaking purchases or payments\nModifying production systems\n\n❌ Don't require confirmation:\nRead-only operations\nAnswering questions\nGenerating content\nSearching/fetching data\n\nRelated Features\nGuardrails Middleware - Content filtering and safety checks\nCustom Tools - Building your own tools with HITL\nMiddleware Architecture - Advanced request interception\n\nMigration Notes\n\nIf upgrading from versions before v7.39.0:\nReview all existing tools for risk assessment\nAdd requiresConfirmation: tr","hierarchy":{"lvl0":"Features","lvl1":"Human-in-the-Loop (HITL) Workflows","lvl2":"","lvl3":""}},
3505
3505
  {"objectID":"d85931f065438b4475cf5fc7e7854d68dda75d45b96963229ea7accb7f456a86","title":"Human-in-the-Loop (HITL) Workflows","url":"/docs/features/hitl#human-in-the-loop-hitl-workflows","content":"Since: v7.39.0 | Status: Stable | Availability: SDK","hierarchy":{"lvl0":"Features","lvl1":"Human-in-the-Loop (HITL) Workflows","lvl2":"Human-in-the-Loop (HITL) Workflows","lvl3":""}},
3506
3506
  {"objectID":"f1d18bf2b10a871a2c1ba24625cfdba4ced0186612c32e21ff05afa4d8c614b5","title":"Overview","url":"/docs/features/hitl#overview","content":"What it does: HITL pauses AI tool execution to request explicit user approval before performing risky operations like deleting files, modifying databases, or making expensive API calls.\n\nWhy use it: Prevent costly mistakes and give users control over potentially dangerous AI actions. Think of it as an \"Are you sure?\" dialog for AI assistant operations.\n\nOnly use HITL for truly risky operations. Overusing confirmation prompts degrades user experience and can lead to \"confirmation fatigue\" where users approve actions without reading them.\n\nCommon use cases:\nFile deletion or modification operations\nDatabase write/delete operations\nExpensive third-party API calls\nIrreversible actions (sending emails, posting to social media)\nOperations accessing sensitive data","hierarchy":{"lvl0":"Features","lvl1":"Human-in-the-Loop (HITL) Workflows","lvl2":"Overview","lvl3":""}},
3507
3507
  {"objectID":"654bf9d17ad9d1c9c4e13211c1207ecfc732fcf0ed9da7d530dab91fec0ae1fb","title":"SDK Example","url":"/docs/features/hitl#sdk-example","content":"Tool identifier used by the AI to invoke this function\nDescribes tool purpose to the LLM for proper selection\nTriggers HITL checkpoint before execution\nActual implementation only runs after user approval","hierarchy":{"lvl0":"Features","lvl1":"Human-in-the-Loop (HITL) Workflows","lvl2":"SDK Example","lvl3":""}},
@@ -3509,7 +3509,7 @@
3509
3509
  {"objectID":"0b97c36d119e891d3b7aa500e15ca7ddfbc614d26e2aa8c41888527fc578f0b1","title":"Configuration","url":"/docs/features/hitl#configuration","content":"| Option | Type | Default | Required | Description |\n| ---------------------- | --------- | ------- | -------- | ------------------------------------ |\n| requiresConfirmation | boolean | false | No | Mark tool as requiring user approval |","hierarchy":{"lvl0":"Features","lvl1":"Human-in-the-Loop (HITL) Workflows","lvl2":"Configuration","lvl3":""}},
3510
3510
  {"objectID":"37135c25fca844145fb9e99bf6c00ce7aa59e5fce15d32037ecec0c212da1fe2","title":"Execution Flow","url":"/docs/features/hitl#execution-flow","content":"AI requests tool execution → Tool executor checks if tool requires confirmation\nConfirmation required? → Returns USER_CONFIRMATION_REQUIRED error to LLM\nLLM asks user → \"I need to [action]. Is that okay?\"\nUser responds:\nApprove → UI sets confirmation_received = true and retries tool execution\nDeny → UI sends \"User cancelled\" message back to LLM\nTool executes → Permission flag immediately resets to false","hierarchy":{"lvl0":"Features","lvl1":"Human-in-the-Loop (HITL) Workflows","lvl2":"Execution Flow","lvl3":""}},
3511
3511
  {"objectID":"4d86f092ca7e6b372a961736d886b359fa75e092f709de1fc0632865629f0e19","title":"Security Features","url":"/docs/features/hitl#security-features","content":"One-time permissions: Each approval works for exactly one action\nNo reuse: AI cannot reuse old permissions for new actions\nAutomatic reset: Permission flag clears immediately after use\nFail-safe: Defaults to requiring permission when in doubt","hierarchy":{"lvl0":"Features","lvl1":"Human-in-the-Loop (HITL) Workflows","lvl2":"Security Features","lvl3":""}},
3512
- {"objectID":"7854f3abc1202ff2f15b90ddfd8c29a88a2e6e71aa843e416f760a43ab570dfb","title":"Event Types","url":"/docs/features/hitl#event-types","content":"All HITL events ride the SDK emitter returned by\nneurolink.getEventEmitter(); emitter below is that object.\n\nConfirmation Request Event (hitl:confirmation-request):\n\nConfirmation Response (emit from your app):\n\nTimeout Event (hitl:timeout):\n\nSee human-in-the-loop.md for complete technical documentation.","hierarchy":{"lvl0":"Features","lvl1":"Human-in-the-Loop (HITL) Workflows","lvl2":"Event Types","lvl3":""}},
3512
+ {"objectID":"7854f3abc1202ff2f15b90ddfd8c29a88a2e6e71aa843e416f760a43ab570dfb","title":"Event Types","url":"/docs/features/hitl#event-types","content":"All HITL events ride the SDK emitter returned by\nneurolink.getEventEmitter(); emitter below is that object.\n\nConfirmation Request Event (hitl:confirmation-request):\n\nConfirmation Response (emit from your app):\n\nTimeout Event (hitl:timeout):","hierarchy":{"lvl0":"Features","lvl1":"Human-in-the-Loop (HITL) Workflows","lvl2":"Event Types","lvl3":""}},
3513
3513
  {"objectID":"5068502ff92414daee273da8919813c835390458398854e7834845b1a9b7bdef","title":"Problem: Tool executes without asking for permission","url":"/docs/features/hitl#problem-tool-executes-without-asking-for-permission","content":"Cause: Tool not marked with requiresConfirmation: true\nSolution:\nAdd this boolean flag to any tool that performs risky operations","hierarchy":{"lvl0":"Features","lvl1":"Human-in-the-Loop (HITL) Workflows","lvl2":"Problem: Tool executes without asking for permission","lvl3":""}},
3514
3514
  {"objectID":"385ab382fc18fbd69cc1e5d7da2909e9e5c70c897f97f372b61946a0273d456a","title":"Problem: AI keeps asking for confirmation repeatedly","url":"/docs/features/hitl#problem-ai-keeps-asking-for-confirmation-repeatedly","content":"Cause: Confirmation responses not being sent or sent with wrong confirmationId\nSolution:\nExtract confirmation ID from the request event\nAlways respond to every confirmation request\nCritical: Use the same confirmationId from the request","hierarchy":{"lvl0":"Features","lvl1":"Human-in-the-Loop (HITL) Workflows","lvl2":"Problem: AI keeps asking for confirmation repeatedly","lvl3":""}},
3515
3515
  {"objectID":"09de33ea71681ebc227efede41ba43f241d943ed4b4628befc274d99b677b587","title":"Problem: Confirmation dialog doesn't show","url":"/docs/features/hitl#problem-confirmation-dialog-doesnt-show","content":"Cause: Not listening to hitl:confirmation-request event\nSolution:\nRegister the event handler early in your application startup\nAll subsequent tool executions will trigger confirmations when needed","hierarchy":{"lvl0":"Features","lvl1":"Human-in-the-Loop (HITL) Workflows","lvl2":"Problem: Confirmation dialog doesn't show","lvl3":""}},
@@ -3517,7 +3517,7 @@
3517
3517
  {"objectID":"663a4b7479ba9dcd093adabe368f06125118fe7085f3545f7a449aca7cde2f12","title":"For Developers","url":"/docs/features/hitl#for-developers","content":"Mark tools conservatively - If an operation could cause problems, require confirmation\nClear prompts - Ensure users understand exactly what will happen\nTest confirmation flow - Verify it works smoothly in your UI\nLog approvals - Keep audit trail of user decisions\nHandle denials gracefully - Allow users to try alternative approaches","hierarchy":{"lvl0":"Features","lvl1":"Human-in-the-Loop (HITL) Workflows","lvl2":"For Developers","lvl3":""}},
3518
3518
  {"objectID":"c3d40b4c492682b5b3abcb4d2d310f78bab7a48d751f200854e01f7d9e304fd5","title":"What to Mark as Requiring Confirmation","url":"/docs/features/hitl#what-to-mark-as-requiring-confirmation","content":"✅ Do require confirmation:\nFile deletions\nDatabase writes/deletes\nSending emails or messages\nMaking purchases or payments\nModifying production systems\n\n❌ Don't require confirmation:\nRead-only operations\nAnswering questions\nGenerating content\nSearching/fetching data","hierarchy":{"lvl0":"Features","lvl1":"Human-in-the-Loop (HITL) Workflows","lvl2":"What to Mark as Requiring Confirmation","lvl3":""}},
3519
3519
  {"objectID":"f10ab96807f42eb76ac745509a5e6538325d9d3ef837892e312092236faad5f0","title":"Related Features","url":"/docs/features/hitl#related-features","content":"Guardrails Middleware - Content filtering and safety checks\nCustom Tools - Building your own tools with HITL\nMiddleware Architecture - Advanced request interception","hierarchy":{"lvl0":"Features","lvl1":"Human-in-the-Loop (HITL) Workflows","lvl2":"Related Features","lvl3":""}},
3520
- {"objectID":"1d0a846cb3cda615b378d07dabb82de126218fb1be810d414af9c1df9fb7b1f8","title":"Migration Notes","url":"/docs/features/hitl#migration-notes","content":"If upgrading from versions before v7.39.0:\nReview all existing tools for risk assessment\nAdd requiresConfirmation: true to risky tools\nImplement confirmation dialog in your UI\nTest with low-risk tools first\nRoll out to production gradually\n\nFor comprehensive technical documentation, diagrams, and security details, see the complete HITL guide.","hierarchy":{"lvl0":"Features","lvl1":"Human-in-the-Loop (HITL) Workflows","lvl2":"Migration Notes","lvl3":""}},
3520
+ {"objectID":"1d0a846cb3cda615b378d07dabb82de126218fb1be810d414af9c1df9fb7b1f8","title":"Migration Notes","url":"/docs/features/hitl#migration-notes","content":"If upgrading from versions before v7.39.0:\nReview all existing tools for risk assessment\nAdd requiresConfirmation: true to risky tools\nImplement confirmation dialog in your UI\nTest with low-risk tools first\nRoll out to production gradually","hierarchy":{"lvl0":"Features","lvl1":"Human-in-the-Loop (HITL) Workflows","lvl2":"Migration Notes","lvl3":""}},
3521
3521
  {"objectID":"92776380349b9d110ff9b37bd6ed4fe4297c0c99de05b1929f24abbe4f23454f","title":"Image Generation Streaming Guide","url":"/docs/features/image-generation","content":"Image Generation Streaming Guide\n\nOverview\n\nNeuroLink supports image generation through AI models like Google Vertex AI's gemini-3-pro-image-preview and gemini-2.5-flash-image. This guide explains how image generation works in both generate() and stream() modes, including CLI usage with automatic file saving, technical architecture, and usage examples.\n\nTable of Contents\nArchitecture Overview\nStreaming Modes\nImage Generation Flow\nUsage Examples\nImplementation Details\nTroubleshooting\n\nArchitecture Overview\n\nKey Components\n\nImage Generation Models\n\nThe following models are configured for image generation:\n\nImportant Notes:\nImage generation is supported on Google Vertex AI and Google AI Studio providers\nThe gemini-3-pro-image-preview model requires location: \"global\" configuration on Vertex AI\nOther models can use regional endpoints like us-east5 on Vertex AI\nImages are returned as base64-encoded PNG data\n\nStreaming Modes\n\nReal Streaming vs Fake Streaming\n\nNeuroLink uses two different streaming approaches depending on the model capabilities:\n\nReal Streaming (Text Models)\nUses Vercel AI SDK's native streamText() function\nStreams tokens as they are generated by the AI model\nProvides true real-time streaming experience\nUsed for: GPT-4, Claude, Gemini (text), etc.\n\nFake Streaming (Image Models)\nCalls generate() internally to get complete result\nYields the result progressively to simulate streaming\nRequired because image generation models don't support token-by-token streaming\nUsed for: gemini-2.5-flash-image, gemini-3-pro-image-preview, etc.\n\nWhy Fake Streaming?\n\nImage generation models produce complete images, not incremental tokens. The fake streaming approach:\nMaintains API Consistency: Same stream() interface for all models\nPreserves User Experience: Clients can use the same code pattern\nEnables Progressive Enhancement: Can yield text chunks before final image\nSupports Analytics: Tracks generation time and token usage\n\nImage Generation Flow\n\nStep-by-Step Process\n\nCode Flow in BaseProvider\n\nUsage Examples\n\nExample 1: Basic Image Generation with generate()\n\nExample 2: Image Generation with Streaming\n\nNote: Image generation uses \"fake streaming\" - the complete image is generated first, then yielded as a single chunk. This maintains API consistency with text streaming.\n\nExample 3: CLI Usage\n\nCLI Options:\n--imageOutput <path>: Custom path for generated image (default: generated-images/image-<timestamp>.png)\n--provider vertex or --provider google-ai: Both Vertex AI and Google AI Studio support image generation\n--model <model-name>: Image generation model to use\n--enable-analytics: Include generation metrics\n\nExample 4: Detecting Image Chunks in Stream\n\nExample 5: Error Handling\n\nExample 6: Web Application Integration\n\nImplementation Details\n\nProvider-Specific Implementation\n\nVertex AI provider implements image generation through the REST API:\n\nKey Implementation Details:\nAuthentication: Uses Google Cloud service account credentials\nLocation Handling: Automatically selects global for gemini-3-pro-image-preview\nResponse Modalities: Sets [\"TEXT\", \"IMAGE\"] to enable image generation\nBase64 Extraction: Handles both inlineData and inline_data formats\nResult Enhancement: Preserves imageOutput through analytics pipeline\n\nType Definitions\n\nAnalytics Integration\n\nThe enhanceResult() method in BaseProvider preserves the imageOutput field while adding analytics:\n\nKey Points:\nimageOutput is explicitly preserved through analytics/evaluation pipeline\nSpread operator ensures all existing fields are maintained\nDouble-check restoration at the end prevents accidental loss\n\nTroubleshooting\n\nCommon Issues\nNo Image Chunk Received\n\nSymptom: Stream completes but no image chunk is yielded.\n\nPossible Causes:\nModel is not an image generation model\nWrong provider (only Vertex AI supports image generation)\nAPI credentials are invalid or missing\nModel not available in selected region\n\nSolution:\nEmpty Base64 String\n\nSymptom: Image chunk received but base64 field is empty.\n\nPossible Causes:\nAPI returned error but didn't throw\nResponse format changed\nNetwork issue during transmission\n\nSolution:\nModel Not Found Error\n\nSymptom: Error: models/gemini-3-pro-image-preview is not found for API version v1\n\nCause: gemini-3-pro-image-preview requires location: \"global\" but a regional endpoint is being used.\n\nSolution:\nLarge Image Timeout\n\nSymptom: Generation times out for large/complex images.\n\nSolution:\nCLI Image Not Saved\n\nSymptom: CLI shows success but no file created.\n\nPossible Causes:\nimageOutput option not passed to processOptions()\nDirectory permissions issue\nDisk space full\n\nSolution:\n\nDebug Mode\n\nEnable debug logging to troubleshoot issues:\n\nTesting Image Generation\n\nQuick test to verify image generation works:\n\nBest Practices\nAlways Check for Image Chunks\nValidate Base64 Data\nHandle Both Text and Image\nUse Analytics for Monitoring\n\nConclusion\n\nNeuroLink's image generation streaming provides a unified interface for both text and image generation. Th","hierarchy":{"lvl0":"Features","lvl1":"Image Generation Streaming Guide","lvl2":"","lvl3":""}},
3522
3522
  {"objectID":"275a472d14c36b5430808ab2fbb623b33eff60349093934f61af67b83f355386","title":"Overview","url":"/docs/features/image-generation#overview","content":"NeuroLink supports image generation through AI models like Google Vertex AI's gemini-3-pro-image-preview and gemini-2.5-flash-image. This guide explains how image generation works in both generate() and stream() modes, including CLI usage with automatic file saving, technical architecture, and usage examples.","hierarchy":{"lvl0":"Features","lvl1":"Image Generation Streaming Guide","lvl2":"Overview","lvl3":""}},
3523
3523
  {"objectID":"f069b328ab8c2625a997e823b4685ef26895cd97118e4ef5e1c20e5af4ce88da","title":"Table of Contents","url":"/docs/features/image-generation#table-of-contents","content":"Architecture Overview\nStreaming Modes\nImage Generation Flow\nUsage Examples\nImplementation Details\nTroubleshooting","hierarchy":{"lvl0":"Features","lvl1":"Image Generation Streaming Guide","lvl2":"Table of Contents","lvl3":""}},
@@ -4953,7 +4953,7 @@
4953
4953
  {"objectID":"ae219f9793ccbc007a57b15dfdccaa134df26af4fe880c1c54bb2b62a303bedf","title":"Timeout Configuration","url":"/docs/getting-started/provider-setup#timeout-configuration-2","content":"Configure request timeouts for SageMaker endpoints:","hierarchy":{"lvl0":"Getting Started","lvl1":"⚙️ Provider Configuration Guide","lvl2":"Timeout Configuration","lvl3":""}},
4954
4954
  {"objectID":"b46488b02c1c2e88e3927e60a87df0c66044b3b92cef2a74d1e90908733563a7","title":"Prerequisites","url":"/docs/getting-started/provider-setup#prerequisites","content":"SageMaker Endpoint: Deploy a model to SageMaker and get the endpoint name\nAWS IAM Permissions: Ensure your credentials have sagemaker:InvokeEndpoint permission\nEndpoint Status: Endpoint must be in \"InService\" status","hierarchy":{"lvl0":"Getting Started","lvl1":"⚙️ Provider Configuration Guide","lvl2":"Prerequisites","lvl3":""}},
4955
4955
  {"objectID":"3c395f3295fc6e7ca011b13d2ae650bbc58c6294c828a406d7d963b810e7d112","title":"Environment Variables Reference","url":"/docs/getting-started/provider-setup#environment-variables-reference","content":"| Variable | Required | Default | Description |\n| ---------------------------- | -------- | --------- | ------------------------- |\n| AWS_ACCESS_KEY_ID | ✅ | - | AWS access key |\n| AWS_SECRET_ACCESS_KEY | ✅ | - | AWS secret key |\n| AWS_REGION | ✅ | us-east-1 | AWS region |\n| SAGEMAKER_DEFAULT_ENDPOINT | ✅ | - | SageMaker endpoint name |\n| SAGEMAKER_TIMEOUT | ❌ | 30000 | Request timeout (ms) |\n| SAGEMAKER_MAX_RETRIES | ❌ | 3 | Retry attempts |\n| AWS_SESSION_TOKEN | ❌ | - | For temporary credentials |","hierarchy":{"lvl0":"Getting Started","lvl1":"⚙️ Provider Configuration Guide","lvl2":"Environment Variables Reference","lvl3":""}},
4956
- {"objectID":"be5f886d8eaff81cf2564a06bf8998a40a59120c426595f47a0482705dc3cfa4","title":"📖 Complete SageMaker Guide","url":"/docs/getting-started/provider-setup#-complete-sagemaker-guide","content":"For comprehensive SageMaker setup, advanced features, and production deployment:\n📖 Complete SageMaker Integration Guide - Includes:\nModel deployment examples\nCost optimization strategies\nEnterprise security patterns\nMulti-model endpoint management\nPerformance testing and monitoring\nTroubleshooting and debugging","hierarchy":{"lvl0":"Getting Started","lvl1":"⚙️ Provider Configuration Guide","lvl2":"📖 Complete SageMaker Guide","lvl3":""}},
4956
+ {"objectID":"be5f886d8eaff81cf2564a06bf8998a40a59120c426595f47a0482705dc3cfa4","title":"📖 Complete SageMaker Guide","url":"/docs/getting-started/provider-setup#-complete-sagemaker-guide","content":"For endpoint setup, permissions and production deployment:\n📖 Amazon SageMaker Provider Guide - Includes:\nModel endpoint deployment\nEnvironment and client configuration\nIAM policies and VPC connectivity\nFeature support (streaming, embeddings, tools, structured output)\nTroubleshooting","hierarchy":{"lvl0":"Getting Started","lvl1":"⚙️ Provider Configuration Guide","lvl2":"📖 Complete SageMaker Guide","lvl3":""}},
4957
4957
  {"objectID":"42c25a94e2f407ae547a34d1bc31de542005830720662dc862edc7ec95e550b2","title":"Google Vertex AI Configuration {#vertex}","url":"/docs/getting-started/provider-setup#google-vertex-ai-configuration-vertex","content":"NeuroLink supports three authentication methods for Google Vertex AI to accommodate different deployment environments:","hierarchy":{"lvl0":"Getting Started","lvl1":"⚙️ Provider Configuration Guide","lvl2":"Google Vertex AI Configuration {#vertex}","lvl3":""}},
4958
4958
  {"objectID":"490a21928554ec60701804793b44b0cd4a110db54bcb2de22bec3d3564b40933","title":"Method 1: Service Account File (Recommended for Production)","url":"/docs/getting-started/provider-setup#method-1-service-account-file-recommended-for-production","content":"Best for production environments where you can store service account files securely.\n\nSetup Steps:\nCreate a service account in Google Cloud Console\nDownload the service account JSON file\nSet the file path in GOOGLE_APPLICATION_CREDENTIALS","hierarchy":{"lvl0":"Getting Started","lvl1":"⚙️ Provider Configuration Guide","lvl2":"Method 1: Service Account File (Recommended for Production)","lvl3":""}},
4959
4959
  {"objectID":"1a097bda015f26ad1789d0ea1d408cd0104d95f73a0a13e9d1256cf6e749ecab","title":"Method 2: Service Account JSON String (Good for Containers/Cloud)","url":"/docs/getting-started/provider-setup#method-2-service-account-json-string-good-for-containerscloud","content":"Best for containerized environments where file storage is limited.\n\nSetup Steps:\nCopy the entire contents of your service account JSON file\nSet it as a single-line string in GOOGLE_SERVICE_ACCOUNT_KEY\nNeuroLink will automatically create a temporary file for authentication","hierarchy":{"lvl0":"Getting Started","lvl1":"⚙️ Provider Configuration Guide","lvl2":"Method 2: Service Account JSON String (Good for Containers/Cloud)","lvl3":""}},
@@ -6269,7 +6269,7 @@
6269
6269
  {"objectID":"28035feff84612bdd91c9e360bb88ce9dffca58a0ad20f529fa051ea62005817","title":"Check version","url":"/docs/getting-started/providers/ollama#check-version","content":"ollama --version","hierarchy":{"lvl0":"Getting Started","lvl1":"Ollama Provider Guide","lvl2":"Check version","lvl3":""}},
6270
6270
  {"objectID":"32708b28ac6f1015f3c0701e2071dc2b4de80a7e37104a8070c722bb4395fb9f","title":"Linux: curl -fsSL https://ollama.ai/install.sh | sh","url":"/docs/getting-started/providers/ollama#linux-curl--fssl-httpsollamaaiinstallsh-sh","content":"`","hierarchy":{"lvl0":"Getting Started","lvl1":"Ollama Provider Guide","lvl2":"Linux: curl -fsSL https://ollama.ai/install.sh | sh","lvl3":""}},
6271
6271
  {"objectID":"fc3eddeb809dd59cda41523a5f306ab516a791d2b370cb07ff0bb10ed57cac52","title":"Privacy and Security","url":"/docs/getting-started/providers/ollama#privacy-and-security","content":"All data stays local: No network calls to external services during inference\nNo telemetry from Ollama: Ollama does not track usage\nAir-gap capable: After pulling models, works entirely offline\nNo API keys stored: No credentials to manage or rotate","hierarchy":{"lvl0":"Getting Started","lvl1":"Ollama Provider Guide","lvl2":"Privacy and Security","lvl3":""}},
6272
- {"objectID":"d07e6a1dbb1dc1282448e6aaf4c0b2fc05ea60936bbf22b3e6c586403bea1d3b","title":"Related Documentation","url":"/docs/getting-started/providers/ollama#related-documentation","content":"Provider Setup Guide - General provider configuration\nOllama Installation Guide - Detailed platform-specific installation","hierarchy":{"lvl0":"Getting Started","lvl1":"Ollama Provider Guide","lvl2":"Related Documentation","lvl3":""}},
6272
+ {"objectID":"d07e6a1dbb1dc1282448e6aaf4c0b2fc05ea60936bbf22b3e6c586403bea1d3b","title":"Related Documentation","url":"/docs/getting-started/providers/ollama#related-documentation","content":"Provider Setup Guide - General provider configuration","hierarchy":{"lvl0":"Getting Started","lvl1":"Ollama Provider Guide","lvl2":"Related Documentation","lvl3":""}},
6273
6273
  {"objectID":"6025b4e7006e938406cdf6541aeaf4aa34bbf8bc6d67e5f9902375382cdf9c2f","title":"Additional Resources","url":"/docs/getting-started/providers/ollama#additional-resources","content":"Ollama - Official website and downloads\nOllama Model Library - Browse available models\nOllama GitHub - Source code and documentation","hierarchy":{"lvl0":"Getting Started","lvl1":"Ollama Provider Guide","lvl2":"Additional Resources","lvl3":""}},
6274
6274
  {"objectID":"b460e78ac10b886e1518c40f993c5a4e35db2f8bd52335908531b88ae82dd358","title":"OpenAI-Compatible Providers Guide","url":"/docs/getting-started/providers/openai-compatible","content":"OpenAI Compatible Provider Guide\n\nConnect to any OpenAI-compatible API: OpenRouter, vLLM, LocalAI, and more\n\nOverview\n\nThe OpenAI Compatible provider enables NeuroLink to work with any service that implements the OpenAI API specification. This includes third-party aggregators like OpenRouter, self-hosted solutions like vLLM, and custom OpenAI-compatible endpoints.\n\nKey Benefits\n🌐 Universal Compatibility: Works with any OpenAI-compatible endpoint\n🔄 Provider Aggregation: Access multiple providers through one endpoint (OpenRouter)\n🏠 Self-Hosted: Run your own models with vLLM, LocalAI\n💰 Cost Optimization: Compare pricing across providers\n🔧 Custom Endpoints: Integrate proprietary AI services\n📊 Auto-Discovery: Automatic model detection via /v1/models endpoint\n\nSupported Services\n\n| Service | Description | Best For |\n| ------------------------- | ------------------------------------ | ---------------------- |\n| OpenRouter | AI provider aggregator (100+ models) | Multi-provider access |\n| Flatkey | Unified gateway, one key & balance | Multi-provider access |\n| vLLM | High-performance inference server | Self-hosted models |\n| LocalAI | Local OpenAI alternative | Privacy, offline usage |\n| Text Generation WebUI | Community inference server | Local LLMs |\n| Custom APIs | Your own OpenAI-compatible service | Proprietary models |\n\nQuick Start\n\nOption 1: OpenRouter (Recommended for Beginners)\n\nOpenRouter provides access to 100+ models from multiple providers through a single API.\nGet OpenRouter API Key\nVisit OpenRouter.ai\nSign up for free account\nGo to Keys\nCreate new key\nAdd credits ($5 minimum)\nConfigure NeuroLink\nTest Setup\n\nOption 2: vLLM (Self-Hosted)\n\nvLLM is a high-performance inference server for running models locally.\nInstall vLLM\nConfigure NeuroLink\nTest Setup\n\nOption 3: LocalAI (Privacy-Focused)\n\nLocalAI runs completely offline for maximum privacy.\nInstall LocalAI\nConfigure NeuroLink\n\nModel Auto-Discovery\n\nNeuroLink automatically discovers available models through the /v1/models endpoint.\n\nDiscover Available Models\n\nSDK Auto-Discovery\n\nOpenRouter Integration\n\nOpenRouter aggregates 100+ models from multiple providers.\n\nAvailable Models on OpenRouter\n\nModel Selection by Provider\n\nOpenRouter Features\n\nvLLM Integration\n\nvLLM provides high-performance inference for self-hosted models.\n\nStarting vLLM Server\n\nNeuroLink Configuration for vLLM\n\nMultiple vLLM Instances\n\nSDK Integration\n\nBasic Usage\n\nWith Model Selection\n\nStreaming\n\nCustom Headers\n\nError Handling\n\nCLI Usage\n\nBasic Commands\n\nOpenRouter-Specific Commands\n\nConfiguration Options\n\nEnvironment Variables\n\nProgrammatic Configuration\n\nUse Cases\nMulti-Provider Access via OpenRouter\nSelf-Hosted Private Models\nCost Optimization\n\nTroubleshooting\n\nCommon Issues\n\"Connection refused\"\n\nProblem: Endpoint is not accessible.\n\nSolution:\n\"Model not found\"\n\nProblem: Model ID is incorrect or not available.\n\nSolution:\n\"Invalid API key\"\n\nProblem: API key format is incorrect (OpenRouter).\n\nSolution:\n\nBest Practices\nModel Discovery\nEndpoint Health Checks\nCost Tracking\n\nRelated Documentation\nProvider Setup Guide - General provider configuration\nCost Optimization - Reduce AI costs\nEnterprise Multi-Region - Self-hosted and vLLM deployment\n\nAdditional Resources\nOpenRouter - Multi-provider aggregator\nvLLM Documentation - Self-hosted inference\nLocalAI - Local OpenAI alternative\nOpenAI API Spec - API standard\n\nNeed Help? Join our GitHub Discussions or open an issue.","hierarchy":{"lvl0":"Getting Started","lvl1":"OpenAI-Compatible Providers Guide","lvl2":"","lvl3":""}},
6275
6275
  {"objectID":"097c7973f73ac7ef3fbecf4f5ec22813622550f2401a067d32c389e65d6152c7","title":"OpenAI Compatible Provider Guide","url":"/docs/getting-started/providers/openai-compatible#openai-compatible-provider-guide","content":"Connect to any OpenAI-compatible API: OpenRouter, vLLM, LocalAI, and more","hierarchy":{"lvl0":"Getting Started","lvl1":"OpenAI-Compatible Providers Guide","lvl2":"OpenAI Compatible Provider Guide","lvl3":""}},
@@ -10882,7 +10882,7 @@
10882
10882
  {"objectID":"da4c59d0b64ced4009b9a44e7b6c213b7e7d85158fcf74bba4a58772f8bbf3c5","title":"4. Part B — live matrix (Codex quota reset; both Anthropic [3 OAuth accounts] and Vertex live-callable)","url":"/docs/superpowers/specs/2026-09-27-codex-outbound-fallback-design#4-part-b-live-matrix-codex-quota-reset-both-anthropic-3-oauth-accounts-and-vertex-live-callable","content":"Resolved framing (blocker, adopted): the review is correct that additional_tools.collaboration\ncarries exec on every live Codex CLI request (confirmed: store:false means every\nturn, including a resumed session and a mid-conversation tool-result turn, resends the\nidentical additional_tools block — there is no \"tool-free\" native Codex session). B1–B7\nbelow therefore do not validate a hypothetical tool-free subset; every one of them\ninherently exercises whichever policy Section 0 resolves to (drop/lossy-wrap/fail-closed),\nbecause exec rides along on every request regardless of what the human operator typed.\nEach scenario's pass criterion below adds an explicit clause for this. If the chosen policy\nis fail-closed (option c), every scenario B1–B7 will observe a clean, Codex-shaped\nclosed-fail at the translation step rather than a model response — that is a valid, expected\noutcome under that policy and must be asserted as such, not treated as an unexplained\nfailure. A live run against a real exec-bearing session, observing which of the two\noutcomes actually happens, is the only way to close UNRESOLVED-2 below.\n\n| # | Model | Target | Scenario | Pass criterion ","hierarchy":{"lvl0":"Superpowers","lvl1":"Codex Outbound Fallback — Design","lvl2":"4. Part B — live matrix (Codex quota reset; both Anthropic [3 OAuth accounts] and Vertex live-callable)","lvl3":""}},
10883
10883
  {"objectID":"864ca0b9722ca970f05f9d97d0fe4922d671c0783ce3e5290bcfdd507b7f65bd","title":"5. Part C — red-green discipline","url":"/docs/superpowers/specs/2026-09-27-codex-outbound-fallback-design#5-part-c-red-green-discipline","content":"No telemetry exists yet at the current service_versions — run Part B scenarios 1–2 once\nagainst today's code first (force a Codex failure with no outbound fallback at all,\nconfirm the client simply sees a failure) and record the exact service_versions/timestamps\nreturned, rather than assuming a prior baseline exists.\n\n| # | Behavior | Defect to inject | Where | Expected failure without fix |\n| --- | ----------------------------------------------------- | -------------------------------------------------------------------------------------------- | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| 1 | Byte-stability (A.6) | Embed Date.now() or a fresh id into the synthesized system/tools prefix | system-assembly step | A.6 byte-stability case fails |\n| 2 | Cache marker placement (A.5) | Skip string→block-array promotion, emit system as a bare string | converter's system-shape choice | applyClaudeRequestCacheBreakpoints places 0 markers (array-branch guard requires Array.isArray); A.5 promotion case fails ","hierarchy":{"lvl0":"Superpowers","lvl1":"Codex Outbound Fallback — Design","lvl2":"5. Part C — red-green discipline","lvl3":""}},
10884
10884
  {"objectID":"f7fac43bfed8a1c9df20ae06397f4d5758acf069d0888e304900c2ae3a606320","title":"6. Dependencies on other sections / UNRESOLVED","url":"/docs/superpowers/specs/2026-09-27-codex-outbound-fallback-design#6-dependencies-on-other-sections-unresolved","content":"Exact translator names/types (convertCodexNativeRequestToClaude, CodexNativeRequestBody,\n the functions/collaboration union) are proposed here for concreteness; owned by whichever\n section designs the request-parsing/type layer (likely cache-codex-prefix). If it settles\n on different names, only the symbol names here change — file placement, CI gating, the case\n list, and the live-matrix scenarios are structural and independent of the exact names.\nAccount-affinity/session-pinning feeding a Codex-derived cache key into account selection —\n confirmed sessionId parameter accepts an arbitrary string with no format validation, so\n this plan's assumption is safe, but the hook itself belongs to cache-anthropic.\ncache_control TTL policy choice beyond straight reuse of applyClaudeRequestCacheBreakpoints\n — likely cache-anthropic/cache-compaction.\nVertex-specific leg differences for scenario 5's account-label assertions — likely cache-vertex.\nThe actual trigger-policy gate function body, hop-depth mechanism, and routing-config key\n name — likely cache-guardrails; this plan only names the test surface for it.\nAny new proxy_fallback_* observability labels — likely proxy-waste.\nUNRESOLVED-1: exact wire shape for a Codex reasoning output item (A.2) — see A.2 above; the\n one check that would settle it is a live capture of a real reasoning-effort Codex turn.\nUNRESOLVED-2: whether the real ChatGPT Codex backend validates function_call.call_id\n format server-side — the one check that would settle it is Part B scenario 4.\nUNRESOLVED-3: whether Section 0's policy choice ((a)/(b)/(c)) is fail-closed or lossy —\n owned by the translator section; this plan's Part B framing is written to be correct under\n either outcome, but the actual observed behavior (clean fail-closed vs. a live 400) is only\n settled by running scenarios 1/3/4 once the translator lands.","hierarchy":{"lvl0":"Superpowers","lvl1":"Codex Outbound Fallback — Design","lvl2":"6. Dependencies on other sections / UNRESOLVED","lvl3":""}},
10885
- {"objectID":"28a39199473cf2c61c15cd3a935a0539698770b87d0db0b52dca6387739180e0","title":"NeuroLink Universal AI Platform - Final Comprehensive Test Report","url":"/docs/test-reports/final-comprehensive-test-report","content":"NeuroLink Universal AI Platform - Final Comprehensive Test Report\n\n⚠️ HISTORICAL DOCUMENT (August 2025)\nThis audit was conducted when NeuroLink shipped 9 providers. At audit time, v9.62.0 (May 2026) shipped 24 providers including DeepSeek, NVIDIA NIM, LM Studio, llama.cpp, plus voice (TTS/STT/realtime). References to \"9 providers\" or \"8/9 working\" in this file reflect the state at time of analysis.\nFor current capabilities see README on GitHub and Provider Capabilities Audit.\n\n🎯 Executive Summary\n\nTest Execution Completed: 2025-07-11T12:42:34.297Z \nOverall Success Rate: 99.1% (319/322 tests passed) \nTotal Execution Time: 1025.5 seconds (17.1 minutes) \nTest Coverage: 100% (All 322 test cases executed) \nStatus: ✅ COMPREHENSIVE TEST EXECUTION SUCCESSFUL\n\n📊 Overall Results\n\n| Metric | Value |\n| -------------------- | ------- |\n| Total Tests | 322 |\n| Passed | 319 |\n| Failed | 3 |\n| Success Rate | 99.1% |\n| Execution Time | 1025.5s |\n| Parallel Workers | 10 |\n\n🏆 Phase-by-Phase Performance\n\nPhase 1: Critical Priority Tests\nTests: 26\nSuccess Rate: 100%\nStatus: ✅ PERFECT\n\nPhase 2: High Priority Tests\nTests: 45\nSuccess Rate: 100%\nStatus: ✅ PERFECT\n\nPhase 3: Medium Priority Tests\nTests: 120\nSuccess Rate: 100%\nStatus: ✅ PERFECT\n\nPhase 4: Low Priority Tests\nTests: 139\nSuccess Rate: 97.8% (3 failures)\nStatus: ⚠️ MINOR ISSUES\n\n❌ Failed Test Analysis\n\nTest Failures (3 total)\nCLI-002.1.1 - Test timeout (Position 141/322)\nCLI-002.1.2 - Test timeout (Position 144/322)\nCLI-002.2.1 - Test timeout (Position 145/322)\n\nRoot Cause: All failures are timeout-related in CLI testing scenarios, likely due to:\nNetwork latency in provider response times\nCLI command execution overhead\nResource contention during parallel execution\n\nImpact: Minimal - Only affects 0.9% of test suite, all in low-priority category\n\n✅ Key Achievements\nPerfect Critical & High Priority Coverage: 100% success rate for all mission-critical functionality\nComprehensive Provider Testing: All 9 AI providers tested successfully\nParallel Execution Efficiency: 10-worker parallel execution completed in under 18 minutes\nEnvironment Fixes Applied: Resolved authentication and provider fallback issues\nFresh Execution Success: Clean restart achieved excellent results\n\n🔧 Technical Improvements Made\n\nPre-Execution Fixes\nEnvironment Variable Loading: Added dotenv configuration to test executor\nProvider Fallback Logic: Simplified provider selection to prevent unwanted fallbacks\nSDK-to-CLI Conversion: Enhanced test reliability by preferring CLI execution\nOllama Configuration: Updated to use breezehq.dev endpoint with proper model\n\nExecution Optimizations\nParallel execution with 10 concurrent workers\nReal-time progress tracking and monitoring\nComprehensive logging and result collection\nAutomatic retry mechanisms for transient failures\n\n📈 Performance Metrics\nAverage Test Duration: 3.2 seconds per test\nThroughput: ~19 tests per minute\nPeak Concurrency: 10 simultaneous tests\nResource Utilization: Optimal CPU and memory usage\n\n🎯 Provider Success Rates\n\n| Provider | Status | Success Rate |\n| ------------ | ------ | ------------ |\n| OpenAI | ✅ | 100% |\n| Anthropic | ✅ | 100% |\n| Google AI | ✅ | 100% |\n| Vertex AI | ✅ | 100% |\n| AWS Bedrock | ✅ | 100% |\n| Azure OpenAI | ✅ | 100% |\n| HuggingFace | ✅ | 100% |\n| Ollama | ✅ | 100% |\n| Mistral | ✅ | 100% |\n\n🔍 Quality Assessment\n\nEXCELLENT: The NeuroLink Universal AI Platform demonstrates exceptional stability and reliability:\n99.1% success rate exceeds industry standards\nZero critical or high-priority failures\nAll provider integrations functioning perfectly\nRobust error handling and fallback mechanisms\nComprehensive test coverage across all system components\n\n📋 Recommendations\n\nImmediate Actions\nTimeout Optimization: Review CLI timeout settings for the 3 failed tests\nMonitoring Enhancement: Implement production monitoring for timeout scenarios\n\nFuture Improvements\nLoad Testing: Add stress testing for high-concurrency scenarios\nPerformance Benchmarking: Establish baseline performance metrics\nAutomated Regression: Integrate into CI/CD pipeline\n\n📁 Test Artifacts\n\nExecution Log: comprehensive-test-execution-full.log \nTracker File: TEST-EXECUTION-TRACKER.md \nTest Results: test-executions/comprehensive-parallel/ \nConfiguration: execute-all-tests-parallel.js\n\nReport Generated: 2025-07-11T12:44:00.000Z \nStatus: ✅ COMPREHENSIVE TEST EXECUTION SUCCESSFUL \nNext Review: As needed for system updates","hierarchy":{"lvl0":"Test Reports","lvl1":"NeuroLink Universal AI Platform - Final Comprehensive Test Report","lvl2":"","lvl3":""}},
10885
+ {"objectID":"28a39199473cf2c61c15cd3a935a0539698770b87d0db0b52dca6387739180e0","title":"NeuroLink Universal AI Platform - Final Comprehensive Test Report","url":"/docs/test-reports/final-comprehensive-test-report","content":"NeuroLink Universal AI Platform - Final Comprehensive Test Report\n\n⚠️ HISTORICAL DOCUMENT (August 2025)\nThis audit was conducted when NeuroLink shipped 9 providers. At audit time, v9.62.0 (May 2026) shipped 24 providers including DeepSeek, NVIDIA NIM, LM Studio, llama.cpp, plus voice (TTS/STT/realtime). References to \"9 providers\" or \"8/9 working\" in this file reflect the state at time of analysis.\nFor current capabilities see README on GitHub and Provider Capabilities Audit.\n\n🎯 Executive Summary\n\nTest Execution Completed: 2025-07-11T12:42:34.297Z \nOverall Success Rate: 99.1% (319/322 tests passed) \nTotal Execution Time: 1025.5 seconds (17.1 minutes) \nTest Coverage: 100% (All 322 test cases executed) \nStatus: ✅ COMPREHENSIVE TEST EXECUTION SUCCESSFUL\n\n📊 Overall Results\n\n| Metric | Value |\n| -------------------- | ------- |\n| Total Tests | 322 |\n| Passed | 319 |\n| Failed | 3 |\n| Success Rate | 99.1% |\n| Execution Time | 1025.5s |\n| Parallel Workers | 10 |\n\n🏆 Phase-by-Phase Performance\n\nPhase 1: Critical Priority Tests\nTests: 26\nSuccess Rate: 100%\nStatus: ✅ PERFECT\n\nPhase 2: High Priority Tests\nTests: 45\nSuccess Rate: 100%\nStatus: ✅ PERFECT\n\nPhase 3: Medium Priority Tests\nTests: 120\nSuccess Rate: 100%\nStatus: ✅ PERFECT\n\nPhase 4: Low Priority Tests\nTests: 139\nSuccess Rate: 97.8% (3 failures)\nStatus: ⚠️ MINOR ISSUES\n\n❌ Failed Test Analysis\n\nTest Failures (3 total)\nCLI-002.1.1 - Test timeout (Position 141/322)\nCLI-002.1.2 - Test timeout (Position 144/322)\nCLI-002.2.1 - Test timeout (Position 145/322)\n\nRoot Cause: All failures are timeout-related in CLI testing scenarios, likely due to:\nNetwork latency in provider response times\nCLI command execution overhead\nResource contention during parallel execution\n\nImpact: Minimal - Only affects 0.9% of test suite, all in low-priority category\n\n✅ Key Achievements\nPerfect Critical & High Priority Coverage: 100% success rate for all mission-critical functionality\nComprehensive Provider Testing: All 9 AI providers tested successfully\nParallel Execution Efficiency: 10-worker parallel execution completed in under 18 minutes\nEnvironment Fixes Applied: Resolved authentication and provider fallback issues\nFresh Execution Success: Clean restart achieved excellent results\n\n🔧 Technical Improvements Made\n\nPre-Execution Fixes\nEnvironment Variable Loading: Added dotenv configuration to test executor\nProvider Fallback Logic: Simplified provider selection to prevent unwanted fallbacks\nSDK-to-CLI Conversion: Enhanced test reliability by preferring CLI execution\nOllama Configuration: Updated to use a hosted Ollama endpoint with proper model\n\nExecution Optimizations\nParallel execution with 10 concurrent workers\nReal-time progress tracking and monitoring\nComprehensive logging and result collection\nAutomatic retry mechanisms for transient failures\n\n📈 Performance Metrics\nAverage Test Duration: 3.2 seconds per test\nThroughput: ~19 tests per minute\nPeak Concurrency: 10 simultaneous tests\nResource Utilization: Optimal CPU and memory usage\n\n🎯 Provider Success Rates\n\n| Provider | Status | Success Rate |\n| ------------ | ------ | ------------ |\n| OpenAI | ✅ | 100% |\n| Anthropic | ✅ | 100% |\n| Google AI | ✅ | 100% |\n| Vertex AI | ✅ | 100% |\n| AWS Bedrock | ✅ | 100% |\n| Azure OpenAI | ✅ | 100% |\n| HuggingFace | ✅ | 100% |\n| Ollama | ✅ | 100% |\n| Mistral | ✅ | 100% |\n\n🔍 Quality Assessment\n\nEXCELLENT: The NeuroLink Universal AI Platform demonstrates exceptional stability and reliability:\n99.1% success rate exceeds industry standards\nZero critical or high-priority failures\nAll provider integrations functioning perfectly\nRobust error handling and fallback mechanisms\nComprehensive test coverage across all system components\n\n📋 Recommendations\n\nImmediate Actions\nTimeout Optimization: Review CLI timeout settings for the 3 failed tests\nMonitoring Enhancement: Implement production monitoring for timeout scenarios\n\nFuture Improvements\nLoad Testing: Add stress testing for high-concurrency scenarios\nPerformance Benchmarking: Establish baseline performance metrics\nAutomated Regression: Integrate into CI/CD pipeline\n\n📁 Test Artifacts\n\nExecution Log: comprehensive-test-execution-full.log \nTracker File: TEST-EXECUTION-TRACKER.md \nTest Results: test-executions/comprehensive-parallel/ \nConfiguration: execute-all-tests-parallel.js\n\nReport Generated: 2025-07-11T12:44:00.000Z \nStatus: ✅ COMPREHENSIVE TEST EXECUTION SUCCESSFUL \nNext Review: As needed for system updates","hierarchy":{"lvl0":"Test Reports","lvl1":"NeuroLink Universal AI Platform - Final Comprehensive Test Report","lvl2":"","lvl3":""}},
10886
10886
  {"objectID":"9efef22578ee5bce54f82bb2792f3abadec2c2cd589f3d3e7a344d8f97452bcb","title":"NeuroLink Universal AI Platform - Final Comprehensive Test Report","url":"/docs/test-reports/final-comprehensive-test-report#neurolink-universal-ai-platform---final-comprehensive-test-report","content":"⚠️ HISTORICAL DOCUMENT (August 2025)\nThis audit was conducted when NeuroLink shipped 9 providers. At audit time, v9.62.0 (May 2026) shipped 24 providers including DeepSeek, NVIDIA NIM, LM Studio, llama.cpp, plus voice (TTS/STT/realtime). References to \"9 providers\" or \"8/9 working\" in this file reflect the state at time of analysis.\nFor current capabilities see README on GitHub and Provider Capabilities Audit.","hierarchy":{"lvl0":"Test Reports","lvl1":"NeuroLink Universal AI Platform - Final Comprehensive Test Report","lvl2":"NeuroLink Universal AI Platform - Final Comprehensive Test Report","lvl3":""}},
10887
10887
  {"objectID":"83a1048b43754bd7ff2d757e77d271214bc8a26295dedb913166858cbea14143","title":"🎯 Executive Summary","url":"/docs/test-reports/final-comprehensive-test-report#-executive-summary","content":"Test Execution Completed: 2025-07-11T12:42:34.297Z \nOverall Success Rate: 99.1% (319/322 tests passed) \nTotal Execution Time: 1025.5 seconds (17.1 minutes) \nTest Coverage: 100% (All 322 test cases executed) \nStatus: ✅ COMPREHENSIVE TEST EXECUTION SUCCESSFUL","hierarchy":{"lvl0":"Test Reports","lvl1":"NeuroLink Universal AI Platform - Final Comprehensive Test Report","lvl2":"🎯 Executive Summary","lvl3":""}},
10888
10888
  {"objectID":"2c92d72872d530a67fd3eadaa1f7dfd1b91c9e06d5144c13e8a10bc456d1c7c3","title":"📊 Overall Results","url":"/docs/test-reports/final-comprehensive-test-report#-overall-results","content":"| Metric | Value |\n| -------------------- | ------- |\n| Total Tests | 322 |\n| Passed | 319 |\n| Failed | 3 |\n| Success Rate | 99.1% |\n| Execution Time | 1025.5s |\n| Parallel Workers | 10 |","hierarchy":{"lvl0":"Test Reports","lvl1":"NeuroLink Universal AI Platform - Final Comprehensive Test Report","lvl2":"📊 Overall Results","lvl3":""}},
@@ -10892,7 +10892,7 @@
10892
10892
  {"objectID":"c2e0552b01a32e26c6fbc334e7f89aac3e5b8127f0c883c081f91e7b728f0add","title":"Phase 4: Low Priority Tests","url":"/docs/test-reports/final-comprehensive-test-report#phase-4-low-priority-tests","content":"Tests: 139\nSuccess Rate: 97.8% (3 failures)\nStatus: ⚠️ MINOR ISSUES","hierarchy":{"lvl0":"Test Reports","lvl1":"NeuroLink Universal AI Platform - Final Comprehensive Test Report","lvl2":"Phase 4: Low Priority Tests","lvl3":""}},
10893
10893
  {"objectID":"9e34ff6f5e35c7a4c0166ce3863c0199aa5e386238a8d9b02e7d5a9203688b42","title":"Test Failures (3 total)","url":"/docs/test-reports/final-comprehensive-test-report#test-failures-3-total","content":"CLI-002.1.1 - Test timeout (Position 141/322)\nCLI-002.1.2 - Test timeout (Position 144/322)\nCLI-002.2.1 - Test timeout (Position 145/322)\n\nRoot Cause: All failures are timeout-related in CLI testing scenarios, likely due to:\nNetwork latency in provider response times\nCLI command execution overhead\nResource contention during parallel execution\n\nImpact: Minimal - Only affects 0.9% of test suite, all in low-priority category","hierarchy":{"lvl0":"Test Reports","lvl1":"NeuroLink Universal AI Platform - Final Comprehensive Test Report","lvl2":"Test Failures (3 total)","lvl3":""}},
10894
10894
  {"objectID":"51ec4ef99fc5e5bb7d26fb1ba58225f13c979352285399c44b88d2fe4d4c086d","title":"✅ Key Achievements","url":"/docs/test-reports/final-comprehensive-test-report#-key-achievements","content":"Perfect Critical & High Priority Coverage: 100% success rate for all mission-critical functionality\nComprehensive Provider Testing: All 9 AI providers tested successfully\nParallel Execution Efficiency: 10-worker parallel execution completed in under 18 minutes\nEnvironment Fixes Applied: Resolved authentication and provider fallback issues\nFresh Execution Success: Clean restart achieved excellent results","hierarchy":{"lvl0":"Test Reports","lvl1":"NeuroLink Universal AI Platform - Final Comprehensive Test Report","lvl2":"✅ Key Achievements","lvl3":""}},
10895
- {"objectID":"7430ed2f52dcd435bcdf2179965d9c978734e2a007b8014c23ac756dea3d8498","title":"Pre-Execution Fixes","url":"/docs/test-reports/final-comprehensive-test-report#pre-execution-fixes","content":"Environment Variable Loading: Added dotenv configuration to test executor\nProvider Fallback Logic: Simplified provider selection to prevent unwanted fallbacks\nSDK-to-CLI Conversion: Enhanced test reliability by preferring CLI execution\nOllama Configuration: Updated to use breezehq.dev endpoint with proper model","hierarchy":{"lvl0":"Test Reports","lvl1":"NeuroLink Universal AI Platform - Final Comprehensive Test Report","lvl2":"Pre-Execution Fixes","lvl3":""}},
10895
+ {"objectID":"7430ed2f52dcd435bcdf2179965d9c978734e2a007b8014c23ac756dea3d8498","title":"Pre-Execution Fixes","url":"/docs/test-reports/final-comprehensive-test-report#pre-execution-fixes","content":"Environment Variable Loading: Added dotenv configuration to test executor\nProvider Fallback Logic: Simplified provider selection to prevent unwanted fallbacks\nSDK-to-CLI Conversion: Enhanced test reliability by preferring CLI execution\nOllama Configuration: Updated to use a hosted Ollama endpoint with proper model","hierarchy":{"lvl0":"Test Reports","lvl1":"NeuroLink Universal AI Platform - Final Comprehensive Test Report","lvl2":"Pre-Execution Fixes","lvl3":""}},
10896
10896
  {"objectID":"108fdddb19a0cfb4b3796264bce773f1cbbeea2a26fb2a09e0b36a7985dc12c0","title":"Execution Optimizations","url":"/docs/test-reports/final-comprehensive-test-report#execution-optimizations","content":"Parallel execution with 10 concurrent workers\nReal-time progress tracking and monitoring\nComprehensive logging and result collection\nAutomatic retry mechanisms for transient failures","hierarchy":{"lvl0":"Test Reports","lvl1":"NeuroLink Universal AI Platform - Final Comprehensive Test Report","lvl2":"Execution Optimizations","lvl3":""}},
10897
10897
  {"objectID":"4d067b1b2eaa1d19e532969a75a2cf0b87e7a0c9cba1a3b884bfb24614a64894","title":"📈 Performance Metrics","url":"/docs/test-reports/final-comprehensive-test-report#-performance-metrics","content":"Average Test Duration: 3.2 seconds per test\nThroughput: ~19 tests per minute\nPeak Concurrency: 10 simultaneous tests\nResource Utilization: Optimal CPU and memory usage","hierarchy":{"lvl0":"Test Reports","lvl1":"NeuroLink Universal AI Platform - Final Comprehensive Test Report","lvl2":"📈 Performance Metrics","lvl3":""}},
10898
10898
  {"objectID":"57ef349093203e747b428ff35f72c3fc0e055ad64f5915774210ce95a6f2f441","title":"🎯 Provider Success Rates","url":"/docs/test-reports/final-comprehensive-test-report#-provider-success-rates","content":"| Provider | Status | Success Rate |\n| ------------ | ------ | ------------ |\n| OpenAI | ✅ | 100% |\n| Anthropic | ✅ | 100% |\n| Google AI | ✅ | 100% |\n| Vertex AI | ✅ | 100% |\n| AWS Bedrock | ✅ | 100% |\n| Azure OpenAI | ✅ | 100% |\n| HuggingFace | ✅ | 100% |\n| Ollama | ✅ | 100% |\n| Mistral | ✅ | 100% |","hierarchy":{"lvl0":"Test Reports","lvl1":"NeuroLink Universal AI Platform - Final Comprehensive Test Report","lvl2":"🎯 Provider Success Rates","lvl3":""}},
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@juspay/neurolink",
3
- "version": "12.36.1",
3
+ "version": "12.37.0",
4
4
  "packageManager": "pnpm@10.15.1",
5
5
  "description": "The pipe layer of an AI nervous system: one interface connecting provider neurons to your application, across three inference types — generate, stream and decide. `decide` returns typed, calibrated judgements from a non-generative model (~400ms, ~$0.00002/call) for routing, tool selection and context budgeting. MCP-native (4 transports), voice TTS/STT/realtime, RAG, agents, memory, compaction, 9 observability exporters. OpenAI · Anthropic · Gemini · Bedrock · Azure · Ollama · TypeSafe Jev and more.",
6
6
  "author": {