@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
TypeScript
/**
* 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";