UNPKG

@juspay/neurolink

Version:

Universal AI Development Platform with working MCP integration, multi-provider support, voice (TTS/STT/realtime), and professional CLI. 58+ external MCP servers discoverable, multimodal file processing, RAG pipelines. Build, test, and deploy AI applicatio

103 lines (102 loc) 4.36 kB
/** * NeuroLink Client SDK * * Comprehensive client SDK for accessing the NeuroLink API from JavaScript/TypeScript * applications. Provides HTTP clients, React hooks, Vercel AI SDK compatibility, * and real-time streaming support. * * @packageDocumentation * @module @neurolink/client * * @example Basic HTTP Client Usage * ```typescript * import { createClient } from '@neurolink/client'; * * const client = createClient({ * baseUrl: 'https://api.neurolink.example.com', * apiKey: process.env.NEUROLINK_API_KEY, * }); * * // Generate text * const result = await client.generate({ * input: { text: 'Hello, world!' }, * provider: 'openai', * model: 'gpt-4o', * }); * * console.log(result.data.content); * ``` * * @example React Hooks Usage * ```tsx * import { NeuroLinkProvider, useChat } from '@neurolink/react'; * * function App() { * return ( * <NeuroLinkProvider config={{ baseUrl: '/api', apiKey: '...' }}> * <ChatComponent /> * </NeuroLinkProvider> * ); * } * * function ChatComponent() { * const { messages, input, handleInputChange, handleSubmit, isLoading } = useChat({ * agentId: 'my-agent', * }); * * return ( * <div> * {messages.map(m => <div key={m.id}>{m.content}</div>)} * <form onSubmit={handleSubmit}> * <input value={input} onChange={handleInputChange} /> * <button disabled={isLoading}>Send</button> * </form> * </div> * ); * } * ``` * * @example Vercel AI SDK Compatibility * ```typescript * import { createNeuroLinkProvider } from '@neurolink/ai-sdk'; * import { generateText } from 'ai'; * * const neurolink = createNeuroLinkProvider({ * baseUrl: 'https://api.neurolink.example.com', * apiKey: process.env.NEUROLINK_API_KEY, * }); * * const result = await generateText({ * model: neurolink('gpt-4o'), * prompt: 'Hello!', * }); * ``` * * @example Streaming with SSE * ```typescript * import { createStreamingClient } from '@neurolink/client/streaming'; * * const client = createStreamingClient({ * baseUrl: 'https://api.neurolink.example.com', * apiKey: process.env.NEUROLINK_API_KEY, * transport: 'sse', * }); * * const result = await client.stream({ * input: { text: 'Tell me a story' }, * callbacks: { * onText: (text) => process.stdout.write(text), * onDone: () => console.log('\nDone!'), * }, * }); * ``` */ export { NeuroLinkClient, createClient, NeuroLinkApiError, } from "./httpClient.js"; export { NeuroLinkProvider, useNeuroLinkClient, useChat, useAgent, useWorkflow, useVoice, useStream, useTools, } from "./reactHooks.js"; export { NeuroLinkLanguageModel, NeuroLinkProvider as NeuroLinkAIProvider, createNeuroLinkProvider, createNeuroLinkModel, createStreamingResponse, neurolink, } from "./aiSdkAdapter.js"; export { createApiKeyAuthInterceptor, createBearerAuthInterceptor, createDynamicAuthInterceptor, createLoggingInterceptor, createRetryInterceptor, createRateLimitInterceptor, createRequestTransformInterceptor, createResponseTransformInterceptor, createCacheInterceptor, createTimeoutInterceptor, createErrorHandlerInterceptor, composeMiddleware, conditionalMiddleware, } from "./interceptors.js"; export { SSEClient, WebSocketStreamingClient, createStreamingClient, createAsyncStream, collectStream, } from "./streamingClient.js"; export { NeuroLinkWebSocket, createWebSocketClient } from "./wsClient.js"; export { NeuroLinkSSE, createSSEClient } from "./sseClient.js"; export { OAuth2TokenManager, JWTTokenManager, createApiKeyMiddleware, createBearerTokenMiddleware, createTokenManagerMiddleware, createAuthWithRetryMiddleware, createMultiAuthMiddleware, OAuth2Error, OAuth2AuthenticationError as OAuth2AuthError, TokenRefreshError, decodeJWTPayload, isJWTExpired, getJWTExpiry, getApiKeyFromEnv, } from "./auth.js"; export { ErrorCode, NeuroLinkError, HttpError, ClientRateLimitError, ClientValidationError, ClientAuthenticationError, ClientAuthorizationError, NotFoundError, ClientNetworkError, ClientTimeoutError, ClientConnectionError, AbortError, ClientConfigurationError, StreamError, ClientProviderError, ContextLengthError, ContentFilterError, createErrorFromResponse, createErrorFromNative, mapStatusToErrorCode, isRetryableStatus, isRetryableError, isNeuroLinkError, isApiError, } from "./errors.js";