UNPKG

@neureus/sdk

Version:

Neureus Platform SDK - AI-native, edge-first application platform

1 lines 54 kB
{"version":3,"sources":["../src/ai.ts","../src/vector.ts","../src/rag.ts","../src/index.ts"],"names":["AIClient","ky","VectorClient","RAGClient"],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * Neureus AI Gateway SDK Client\n *\n * Provides a simple interface to interact with the Neureus AI Gateway,\n * supporting multiple LLM providers with automatic fallback, caching,\n * and cost optimization.\n *\n * @example\n * ```typescript\n * import { AIClient } from '@neureus/sdk/ai';\n *\n * const ai = new AIClient({\n * apiKey: 'nru_...',\n * baseUrl: 'https://api.neureus.ai'\n * });\n *\n * // Non-streaming chat completion\n * const response = await ai.chat.create({\n * model: 'gpt-4',\n * messages: [\n * { role: 'user', content: 'What is Neureus?' }\n * ]\n * });\n *\n * // Streaming chat completion\n * const stream = await ai.chat.stream({\n * model: 'gpt-4',\n * messages: [\n * { role: 'user', content: 'Tell me a story' }\n * ]\n * });\n *\n * for await (const chunk of stream) {\n * process.stdout.write(chunk.choices[0]?.delta?.content || '');\n * }\n * ```\n */\n\nimport ky, { type KyInstance } from 'ky';\nimport type {\n ChatCompletionRequest,\n ChatCompletionResponse,\n ChatCompletionStreamChunk,\n ChatMessage,\n ModelConfig,\n} from '@neureus/ai-gateway';\n\n// Re-export types from ai-gateway for convenience\nexport type {\n ChatCompletionRequest,\n ChatCompletionResponse,\n ChatCompletionStreamChunk,\n ChatMessage,\n ModelConfig,\n AIProvider,\n ProviderConfig,\n ProviderCapabilities,\n RoutingStrategy,\n CacheConfig,\n AIGatewayError,\n ProviderError,\n RateLimitError,\n AuthenticationError,\n} from '@neureus/ai-gateway';\n\n/**\n * Configuration options for AIClient\n */\nexport interface AIClientConfig {\n /**\n * Neureus API key (required)\n * Get your API key from https://app.neureus.ai/settings/api-keys\n */\n apiKey: string;\n\n /**\n * Base URL for the Neureus API\n * @default 'https://api.neureus.ai'\n */\n baseUrl?: string;\n\n /**\n * Request timeout in milliseconds\n * @default 60000 (60 seconds)\n */\n timeout?: number;\n\n /**\n * Number of retry attempts for failed requests\n * @default 3\n */\n retries?: number;\n\n /**\n * User ID for usage tracking (optional)\n * @default ''\n */\n userId?: string;\n\n /**\n * Team ID for usage tracking (optional)\n * @default ''\n */\n teamId?: string;\n}\n\n/**\n * Request options for chat completion\n */\nexport interface ChatCompletionOptions extends Omit<ChatCompletionRequest, 'messages' | 'model'> {\n /**\n * Model to use for completion\n * @default 'gpt-3.5-turbo'\n */\n model?: string;\n}\n\n/**\n * Main AI client class\n */\nexport class AIClient {\n private http: KyInstance;\n private config: Required<AIClientConfig>;\n\n constructor(config: AIClientConfig) {\n this.config = {\n apiKey: config.apiKey,\n baseUrl: config.baseUrl || 'https://api.neureus.ai',\n timeout: config.timeout || 60000,\n retries: config.retries || 3,\n userId: config.userId || '',\n teamId: config.teamId || '',\n };\n\n this.http = ky.create({\n prefixUrl: this.config.baseUrl,\n timeout: this.config.timeout,\n retry: {\n limit: this.config.retries,\n methods: ['get', 'post'],\n statusCodes: [408, 413, 429, 500, 502, 503, 504],\n },\n hooks: {\n beforeRequest: [\n (request) => {\n request.headers.set('Authorization', `Bearer ${this.config.apiKey}`);\n request.headers.set('Content-Type', 'application/json');\n request.headers.set('User-Agent', 'Neureus-SDK/0.2.0');\n },\n ],\n },\n });\n }\n\n /**\n * Chat completion API\n */\n public chat = {\n /**\n * Create a non-streaming chat completion\n *\n * @example\n * ```typescript\n * const response = await ai.chat.create({\n * model: 'gpt-4',\n * messages: [\n * { role: 'system', content: 'You are a helpful assistant.' },\n * { role: 'user', content: 'What is the capital of France?' }\n * ],\n * temperature: 0.7\n * });\n *\n * console.log(response.choices[0].message.content);\n * ```\n */\n create: async (\n messages: ChatMessage[],\n options?: ChatCompletionOptions\n ): Promise<ChatCompletionResponse> => {\n const request: ChatCompletionRequest = {\n model: options?.model || 'gpt-3.5-turbo',\n messages,\n temperature: options?.temperature ?? 0.7,\n maxTokens: options?.maxTokens,\n topP: options?.topP,\n frequencyPenalty: options?.frequencyPenalty,\n presencePenalty: options?.presencePenalty,\n stop: options?.stop,\n stream: false,\n cache: options?.cache ?? true,\n fallback: options?.fallback,\n metadata: options?.metadata,\n userId: options?.userId || this.config.userId || undefined,\n teamId: options?.teamId || this.config.teamId || undefined,\n };\n\n return this.http.post('ai/chat/completions', {\n json: request,\n }).json<ChatCompletionResponse>();\n },\n\n /**\n * Create a streaming chat completion\n *\n * @example\n * ```typescript\n * const stream = await ai.chat.stream({\n * model: 'gpt-4',\n * messages: [{ role: 'user', content: 'Tell me a story' }]\n * });\n *\n * for await (const chunk of stream) {\n * const content = chunk.choices[0]?.delta?.content;\n * if (content) {\n * process.stdout.write(content);\n * }\n * }\n * ```\n */\n stream: async (\n messages: ChatMessage[],\n options?: ChatCompletionOptions\n ): Promise<AsyncIterable<ChatCompletionStreamChunk>> => {\n const request: ChatCompletionRequest = {\n model: options?.model || 'gpt-3.5-turbo',\n messages,\n temperature: options?.temperature ?? 0.7,\n maxTokens: options?.maxTokens,\n topP: options?.topP,\n frequencyPenalty: options?.frequencyPenalty,\n presencePenalty: options?.presencePenalty,\n stop: options?.stop,\n stream: true,\n cache: options?.cache ?? true,\n fallback: options?.fallback,\n metadata: options?.metadata,\n userId: options?.userId || this.config.userId || undefined,\n teamId: options?.teamId || this.config.teamId || undefined,\n };\n\n const response = await this.http.post('ai/chat/completions', {\n json: request,\n });\n\n return this.parseSSEStream(response.body!);\n },\n };\n\n /**\n * List available models\n *\n * @example\n * ```typescript\n * const models = await ai.models.list();\n * console.log(models); // [{ name: 'gpt-4', provider: 'openai', ... }]\n * ```\n */\n public models = {\n list: async (): Promise<ModelConfig[]> => {\n return this.http.get('ai/models').json<ModelConfig[]>();\n },\n };\n\n /**\n * Parse Server-Sent Events stream into async iterable\n */\n private async *parseSSEStream(body: ReadableStream<Uint8Array>): AsyncIterable<ChatCompletionStreamChunk> {\n const reader = body.getReader();\n const decoder = new TextDecoder();\n let buffer = '';\n\n try {\n while (true) {\n const { done, value } = await reader.read();\n\n if (done) break;\n\n buffer += decoder.decode(value, { stream: true });\n const lines = buffer.split('\\n');\n buffer = lines.pop() || '';\n\n for (const line of lines) {\n const trimmed = line.trim();\n\n if (trimmed === '') continue;\n if (trimmed.startsWith(':')) continue; // Comment\n if (trimmed === 'data: [DONE]') return;\n\n if (trimmed.startsWith('data: ')) {\n const data = trimmed.slice(6);\n try {\n const chunk = JSON.parse(data) as ChatCompletionStreamChunk;\n yield chunk;\n } catch (error) {\n console.error('Failed to parse SSE data:', data, error);\n }\n }\n }\n }\n } finally {\n reader.releaseLock();\n }\n }\n}\n\n/**\n * Create an AI client instance\n *\n * @example\n * ```typescript\n * import { createAIClient } from '@neureus/sdk/ai';\n *\n * const ai = createAIClient({\n * apiKey: process.env.NEUREUS_API_KEY\n * });\n * ```\n */\nexport function createAIClient(config: AIClientConfig): AIClient {\n return new AIClient(config);\n}\n","/**\n * Neureus Vector Database SDK Client\n *\n * Provides a simple interface to interact with the Neureus Vector Database,\n * supporting vector similarity search, hybrid search, index management,\n * and batch operations optimized for edge deployment.\n *\n * @example\n * ```typescript\n * import { VectorClient } from '@neureus/sdk/vector';\n *\n * const vectors = new VectorClient({\n * apiKey: 'nru_...',\n * baseUrl: 'https://api.neureus.ai'\n * });\n *\n * // Create an index\n * await vectors.indices.create({\n * name: 'documents',\n * dimension: 1536,\n * metric: 'cosine'\n * });\n *\n * // Upsert vectors\n * await vectors.upsert({\n * vectors: [\n * {\n * id: 'doc1',\n * vector: [...], // 1536-dimensional embedding\n * metadata: { title: 'Introduction', page: 1 }\n * }\n * ]\n * });\n *\n * // Search for similar vectors\n * const results = await vectors.search({\n * vector: [...], // query embedding\n * topK: 5,\n * minSimilarity: 0.7\n * });\n * ```\n */\n\nimport ky, { type KyInstance } from 'ky';\nimport type {\n VectorEntry,\n VectorSearch,\n VectorSearchResponse,\n VectorIndexConfig,\n VectorIndexStats,\n HybridSearch,\n} from '@neureus/vector-db';\n\n// Re-export types from vector-db for convenience\nexport type {\n VectorEntry,\n VectorSearch,\n VectorSearchResponse,\n VectorSearchResult,\n VectorIndexConfig,\n VectorIndexStats,\n HybridSearch,\n SimilarityMetric,\n IndexType,\n VectorId,\n Vector,\n VectorDBError,\n VectorNotFoundError,\n IndexNotFoundError,\n DimensionMismatchError,\n} from '@neureus/vector-db';\n\n/**\n * Configuration options for VectorClient\n */\nexport interface VectorClientConfig {\n /**\n * Neureus API key (required)\n * Get your API key from https://app.neureus.ai/settings/api-keys\n */\n apiKey: string;\n\n /**\n * Base URL for the Neureus API\n * @default 'https://api.neureus.ai'\n */\n baseUrl?: string;\n\n /**\n * Request timeout in milliseconds\n * @default 30000 (30 seconds)\n */\n timeout?: number;\n\n /**\n * Number of retry attempts for failed requests\n * @default 3\n */\n retries?: number;\n\n /**\n * Default namespace for operations (optional)\n */\n namespace?: string;\n\n /**\n * Default index name for operations (optional)\n * @default 'default'\n */\n indexName?: string;\n}\n\n/**\n * Options for vector upsert operations\n */\nexport interface UpsertOptions {\n /**\n * The vector(s) to upsert\n */\n vectors: VectorEntry[];\n\n /**\n * Namespace to store vectors in (optional)\n */\n namespace?: string;\n\n /**\n * Index name (optional, defaults to 'default')\n */\n indexName?: string;\n}\n\n/**\n * Options for vector search operations\n */\nexport interface SearchOptions extends Omit<VectorSearch, 'vector'> {\n /**\n * Query vector\n */\n vector: number[];\n\n /**\n * Index name to search in (optional)\n */\n indexName?: string;\n}\n\n/**\n * Options for hybrid search operations\n */\nexport interface HybridSearchOptions extends Omit<HybridSearch, 'vector' | 'query'> {\n /**\n * Query vector (optional, one of vector or query required)\n */\n vector?: number[];\n\n /**\n * Text query (optional, one of vector or query required)\n */\n query?: string;\n\n /**\n * Index name to search in (optional)\n */\n indexName?: string;\n}\n\n/**\n * Main Vector client class\n */\nexport class VectorClient {\n private http: KyInstance;\n private config: Required<Omit<VectorClientConfig, 'namespace'>> & Pick<VectorClientConfig, 'namespace'>;\n\n constructor(config: VectorClientConfig) {\n this.config = {\n apiKey: config.apiKey,\n baseUrl: config.baseUrl || 'https://api.neureus.ai',\n timeout: config.timeout || 30000,\n retries: config.retries || 3,\n indexName: config.indexName || 'default',\n ...(config.namespace !== undefined && { namespace: config.namespace }),\n };\n\n this.http = ky.create({\n prefixUrl: this.config.baseUrl,\n timeout: this.config.timeout,\n retry: {\n limit: this.config.retries,\n methods: ['get', 'post', 'delete'],\n statusCodes: [408, 413, 429, 500, 502, 503, 504],\n },\n hooks: {\n beforeRequest: [\n (request) => {\n request.headers.set('Authorization', `Bearer ${this.config.apiKey}`);\n request.headers.set('Content-Type', 'application/json');\n request.headers.set('User-Agent', 'Neureus-SDK/0.2.0');\n },\n ],\n },\n });\n }\n\n /**\n * Index management API\n */\n public indices = {\n /**\n * Create a new vector index\n *\n * @example\n * ```typescript\n * await vectors.indices.create({\n * name: 'documents',\n * dimension: 1536, // OpenAI ada-002 dimensions\n * metric: 'cosine',\n * indexType: 'hnsw'\n * });\n * ```\n */\n create: async (config: VectorIndexConfig): Promise<{ success: boolean; indexName: string; message: string }> => {\n return this.http.post('vector/indices', {\n json: config,\n }).json();\n },\n\n /**\n * List all indices\n *\n * @example\n * ```typescript\n * const indices = await vectors.indices.list();\n * console.log(indices); // [{ name: 'documents', dimension: 1536, ... }]\n * ```\n */\n list: async (): Promise<{ indices: string[]; count: number }> => {\n return this.http.get('vector/indices').json();\n },\n\n /**\n * Get index statistics\n *\n * @example\n * ```typescript\n * const stats = await vectors.indices.stats('documents');\n * console.log(stats.vectorCount, stats.memoryUsage);\n * ```\n */\n stats: async (indexName: string): Promise<VectorIndexStats> => {\n return this.http.get(`vector/indices/${indexName}/stats`).json();\n },\n\n /**\n * Drop (delete) an index\n *\n * @example\n * ```typescript\n * await vectors.indices.drop('old-index');\n * ```\n */\n drop: async (indexName: string): Promise<{ success: boolean; message: string }> => {\n return this.http.delete(`vector/indices/${indexName}`).json();\n },\n };\n\n /**\n * Upsert (insert or update) a single vector\n *\n * @example\n * ```typescript\n * const id = await vectors.upsert({\n * vectors: [{\n * id: 'doc1',\n * vector: [0.1, 0.2, ...], // embedding vector\n * metadata: { title: 'Document 1', page: 1 }\n * }]\n * });\n * ```\n */\n async upsert(options: UpsertOptions): Promise<{ success: boolean; ids: string[]; count: number; message: string }> {\n const { vectors, namespace, indexName } = options;\n\n // Use batch endpoint if multiple vectors\n if (vectors.length > 1) {\n return this.http.post('vector/vectors/batch', {\n json: {\n batch: {\n vectors,\n namespace: namespace || this.config.namespace,\n },\n indexName: indexName || this.config.indexName,\n },\n }).json();\n }\n\n // Single vector upsert\n const result = await this.http.post('vector/vectors', {\n json: {\n vector: vectors[0],\n namespace: namespace || this.config.namespace,\n indexName: indexName || this.config.indexName,\n },\n }).json<{ success: boolean; id: string; message: string }>();\n\n return {\n success: result.success,\n ids: [result.id],\n count: 1,\n message: result.message,\n };\n }\n\n /**\n * Get a vector by ID\n *\n * @example\n * ```typescript\n * const vector = await vectors.get('doc1');\n * console.log(vector.metadata, vector.vector);\n * ```\n */\n async get(id: string, namespace?: string): Promise<VectorEntry> {\n const params = new URLSearchParams();\n if (namespace || this.config.namespace) {\n params.set('namespace', namespace || this.config.namespace!);\n }\n\n return this.http.get(`vector/vectors/${id}`, { searchParams: params }).json();\n }\n\n /**\n * Delete a vector by ID\n *\n * @example\n * ```typescript\n * await vectors.delete('doc1');\n * ```\n */\n async delete(id: string, namespace?: string, indexName?: string): Promise<{ success: boolean; message: string }> {\n const params = new URLSearchParams();\n if (namespace || this.config.namespace) {\n params.set('namespace', namespace || this.config.namespace!);\n }\n params.set('indexName', indexName || this.config.indexName);\n\n return this.http.delete(`vector/vectors/${id}`, { searchParams: params }).json();\n }\n\n /**\n * Search for similar vectors\n *\n * @example\n * ```typescript\n * const results = await vectors.search({\n * vector: [0.1, 0.2, ...], // query embedding\n * topK: 5,\n * minSimilarity: 0.7,\n * filter: { page: { $gt: 10 } }\n * });\n *\n * for (const result of results.matches) {\n * console.log(result.id, result.score, result.metadata);\n * }\n * ```\n */\n async search(options: SearchOptions): Promise<VectorSearchResponse> {\n const { indexName, ...searchQuery } = options;\n\n return this.http.post('vector/search', {\n json: {\n query: {\n ...searchQuery,\n namespace: searchQuery.namespace || this.config.namespace,\n },\n indexName: indexName || this.config.indexName,\n },\n }).json();\n }\n\n /**\n * Hybrid search (vector + keyword)\n *\n * Combines vector similarity search with keyword/text search\n * for better retrieval accuracy.\n *\n * @example\n * ```typescript\n * const results = await vectors.hybridSearch({\n * vector: [0.1, 0.2, ...],\n * query: 'machine learning',\n * topK: 10,\n * alpha: 0.7 // 70% vector, 30% keyword\n * });\n * ```\n */\n async hybridSearch(options: HybridSearchOptions): Promise<VectorSearchResponse> {\n const { indexName, ...searchQuery } = options;\n\n return this.http.post('vector/search/hybrid', {\n json: {\n query: {\n ...searchQuery,\n namespace: searchQuery.namespace || this.config.namespace,\n },\n indexName: indexName || this.config.indexName,\n },\n }).json();\n }\n\n /**\n * Clear all vectors in a namespace\n *\n * @example\n * ```typescript\n * await vectors.clear('temporary-docs');\n * ```\n */\n async clear(namespace: string, indexName?: string): Promise<{ success: boolean; deletedCount: number; message: string }> {\n const params = new URLSearchParams();\n params.set('indexName', indexName || this.config.indexName);\n\n return this.http.delete(`vector/namespaces/${namespace}`, { searchParams: params }).json();\n }\n}\n\n/**\n * Create a Vector client instance\n *\n * @example\n * ```typescript\n * import { createVectorClient } from '@neureus/sdk/vector';\n *\n * const vectors = createVectorClient({\n * apiKey: process.env.NEUREUS_API_KEY,\n * indexName: 'my-docs'\n * });\n * ```\n */\nexport function createVectorClient(config: VectorClientConfig): VectorClient {\n return new VectorClient(config);\n}\n","/**\n * Neureus RAG (Retrieval-Augmented Generation) SDK Client\n *\n * Provides a simple interface to build and query RAG pipelines on the\n * Neureus platform, handling document ingestion, chunking, embedding,\n * retrieval, and answer generation automatically.\n *\n * @example\n * ```typescript\n * import { RAGClient } from '@neureus/sdk/rag';\n *\n * const rag = new RAGClient({\n * apiKey: 'nru_...',\n * baseUrl: 'https://api.neureus.ai'\n * });\n *\n * // Create a RAG pipeline\n * await rag.pipelines.create({\n * name: 'product-docs',\n * embedding: {\n * model: 'text-embedding-ada-002',\n * provider: 'openai'\n * },\n * generation: {\n * model: 'gpt-4',\n * provider: 'openai'\n * }\n * });\n *\n * // Ingest documents\n * await rag.ingest('product-docs', {\n * source: './docs',\n * type: 'file',\n * format: 'markdown',\n * recursive: true\n * });\n *\n * // Query the pipeline\n * const response = await rag.query('product-docs', {\n * query: 'How do I authenticate users?',\n * topK: 5\n * });\n *\n * console.log(response.answer);\n * console.log(response.sources);\n * ```\n */\n\nimport ky, { type KyInstance } from 'ky';\nimport type {\n RAGConfig,\n IngestionRequest,\n QueryRequest,\n QueryResponse,\n QueryStreamChunk,\n RAGPipelineInfo,\n ProcessingResult,\n BatchProcessingResult,\n} from '@neureus/rag';\n\n// Re-export types from rag for convenience\nexport type {\n RAGConfig,\n IngestionRequest,\n QueryRequest,\n QueryResponse,\n QueryStreamChunk,\n RAGPipelineInfo,\n RAGPipelineStatus,\n ProcessingResult,\n BatchProcessingResult,\n Document,\n DocumentMetadata,\n DocumentFormat,\n DocumentSource,\n Chunk,\n ChunkMetadata,\n ChunkingConfig,\n ChunkingStrategy,\n EmbeddingConfig,\n ContextResult,\n RAGError,\n DocumentProcessingError,\n EmbeddingError,\n RetrievalError,\n GenerationError,\n} from '@neureus/rag';\n\n/**\n * Configuration options for RAGClient\n */\nexport interface RAGClientConfig {\n /**\n * Neureus API key (required)\n * Get your API key from https://app.neureus.ai/settings/api-keys\n */\n apiKey: string;\n\n /**\n * Base URL for the Neureus API\n * @default 'https://api.neureus.ai'\n */\n baseUrl?: string;\n\n /**\n * Request timeout in milliseconds\n * @default 60000 (60 seconds)\n */\n timeout?: number;\n\n /**\n * Number of retry attempts for failed requests\n * @default 3\n */\n retries?: number;\n\n /**\n * User ID for usage tracking (optional)\n * @default ''\n */\n userId?: string;\n\n /**\n * Team ID for usage tracking (optional)\n * @default ''\n */\n teamId?: string;\n}\n\n/**\n * Options for document ingestion\n */\nexport interface IngestOptions extends IngestionRequest {\n /**\n * Wait for ingestion to complete before returning\n * @default false\n */\n waitForCompletion?: boolean;\n}\n\n/**\n * Options for RAG queries\n */\nexport interface QueryOptions extends Omit<QueryRequest, 'streaming'> {\n /**\n * Enable streaming responses\n * @default false\n */\n streaming?: boolean;\n}\n\n/**\n * Main RAG client class\n */\nexport class RAGClient {\n private http: KyInstance;\n private config: Required<RAGClientConfig>;\n\n constructor(config: RAGClientConfig) {\n this.config = {\n apiKey: config.apiKey,\n baseUrl: config.baseUrl || 'https://api.neureus.ai',\n timeout: config.timeout || 60000,\n retries: config.retries || 3,\n userId: config.userId || '',\n teamId: config.teamId || '',\n };\n\n this.http = ky.create({\n prefixUrl: this.config.baseUrl,\n timeout: this.config.timeout,\n retry: {\n limit: this.config.retries,\n methods: ['get', 'post'],\n statusCodes: [408, 413, 429, 500, 502, 503, 504],\n },\n hooks: {\n beforeRequest: [\n (request) => {\n request.headers.set('Authorization', `Bearer ${this.config.apiKey}`);\n request.headers.set('Content-Type', 'application/json');\n request.headers.set('User-Agent', 'Neureus-SDK/0.2.0');\n },\n ],\n },\n });\n }\n\n /**\n * Pipeline management API\n */\n public pipelines = {\n /**\n * Create a new RAG pipeline\n *\n * @example\n * ```typescript\n * await rag.pipelines.create({\n * name: 'customer-support',\n * description: 'Customer support knowledge base',\n * embedding: {\n * model: 'text-embedding-ada-002',\n * provider: 'openai',\n * dimensions: 1536\n * },\n * chunking: {\n * strategy: 'recursive',\n * size: 512,\n * overlap: 128\n * },\n * generation: {\n * model: 'gpt-4',\n * provider: 'openai',\n * temperature: 0.1\n * }\n * });\n * ```\n */\n create: async (config: RAGConfig): Promise<{ success: boolean; pipeline: RAGPipelineInfo }> => {\n return this.http.post('rag/pipelines', {\n json: config,\n }).json();\n },\n\n /**\n * List all RAG pipelines\n *\n * @example\n * ```typescript\n * const pipelines = await rag.pipelines.list();\n * console.log(pipelines); // [{ name: 'docs', status: 'ready', ... }]\n * ```\n */\n list: async (): Promise<{ pipelines: RAGPipelineInfo[]; count: number }> => {\n return this.http.get('rag/pipelines').json();\n },\n\n /**\n * Get pipeline information\n *\n * @example\n * ```typescript\n * const info = await rag.pipelines.get('product-docs');\n * console.log(info.stats.documentsCount, info.stats.totalQueries);\n * ```\n */\n get: async (pipelineName: string): Promise<RAGPipelineInfo> => {\n return this.http.get(`rag/pipelines/${pipelineName}`).json();\n },\n\n /**\n * Update pipeline configuration\n *\n * @example\n * ```typescript\n * await rag.pipelines.update('product-docs', {\n * generation: {\n * temperature: 0.5\n * }\n * });\n * ```\n */\n update: async (\n pipelineName: string,\n updates: Partial<RAGConfig>\n ): Promise<{ success: boolean; pipeline: RAGPipelineInfo }> => {\n return this.http.patch(`rag/pipelines/${pipelineName}`, {\n json: updates,\n }).json();\n },\n\n /**\n * Delete a pipeline\n *\n * @example\n * ```typescript\n * await rag.pipelines.delete('old-docs');\n * ```\n */\n delete: async (pipelineName: string): Promise<{ success: boolean; message: string }> => {\n return this.http.delete(`rag/pipelines/${pipelineName}`).json();\n },\n };\n\n /**\n * Ingest documents into a RAG pipeline\n *\n * @example\n * ```typescript\n * // Ingest from file\n * await rag.ingest('product-docs', {\n * source: './docs',\n * type: 'file',\n * format: 'markdown',\n * recursive: true\n * });\n *\n * // Ingest from URL\n * await rag.ingest('product-docs', {\n * source: 'https://example.com/docs',\n * type: 'url',\n * format: 'html'\n * });\n *\n * // Ingest text directly\n * await rag.ingest('product-docs', {\n * source: 'This is my document content...',\n * type: 'text',\n * metadata: { title: 'Introduction' }\n * });\n * ```\n */\n async ingest(\n pipelineName: string,\n options: IngestOptions\n ): Promise<ProcessingResult | BatchProcessingResult> {\n const { waitForCompletion, ...ingestionRequest } = options;\n\n if (waitForCompletion) {\n return this.http.post(`rag/pipelines/${pipelineName}/ingest`, {\n json: ingestionRequest,\n searchParams: { wait: 'true' },\n }).json();\n }\n\n return this.http.post(`rag/pipelines/${pipelineName}/ingest`, {\n json: ingestionRequest,\n }).json();\n }\n\n /**\n * Query a RAG pipeline (non-streaming)\n *\n * @example\n * ```typescript\n * const response = await rag.query('product-docs', {\n * query: 'How do I authenticate users?',\n * topK: 5,\n * minSimilarity: 0.7,\n * includeSource: true\n * });\n *\n * console.log('Answer:', response.answer);\n * console.log('Sources:', response.sources);\n * console.log('Performance:', response.performance);\n * ```\n */\n async query(pipelineName: string, options: QueryOptions): Promise<QueryResponse> {\n const { streaming, ...queryRequest } = options;\n\n return this.http.post(`rag/pipelines/${pipelineName}/query`, {\n json: {\n ...queryRequest,\n streaming: false,\n userId: this.config.userId || undefined,\n teamId: this.config.teamId || undefined,\n },\n }).json();\n }\n\n /**\n * Query a RAG pipeline with streaming response\n *\n * @example\n * ```typescript\n * const stream = await rag.queryStream('product-docs', {\n * query: 'Explain the authentication flow',\n * topK: 5\n * });\n *\n * for await (const chunk of stream) {\n * if (chunk.type === 'answer') {\n * process.stdout.write(chunk.data.content);\n * } else if (chunk.type === 'complete') {\n * console.log('\\nSources:', chunk.data.sources);\n * }\n * }\n * ```\n */\n async queryStream(\n pipelineName: string,\n options: QueryOptions\n ): Promise<AsyncIterable<QueryStreamChunk>> {\n const { streaming: _, ...queryRequest } = options;\n\n const response = await this.http.post(`rag/pipelines/${pipelineName}/query`, {\n json: {\n ...queryRequest,\n streaming: true,\n userId: this.config.userId || undefined,\n teamId: this.config.teamId || undefined,\n },\n });\n\n return this.parseSSEStream(response.body!);\n }\n\n /**\n * Get pipeline statistics\n *\n * @example\n * ```typescript\n * const stats = await rag.stats('product-docs');\n * console.log(`Documents: ${stats.documentsCount}`);\n * console.log(`Queries: ${stats.totalQueries}`);\n * console.log(`Avg response time: ${stats.avgResponseTime}ms`);\n * ```\n */\n async stats(pipelineName: string): Promise<RAGPipelineInfo['stats']> {\n const info = await this.pipelines.get(pipelineName);\n return info.stats;\n }\n\n /**\n * Clear all documents from a pipeline\n *\n * @example\n * ```typescript\n * await rag.clear('product-docs');\n * ```\n */\n async clear(pipelineName: string): Promise<{ success: boolean; message: string }> {\n return this.http.delete(`rag/pipelines/${pipelineName}/documents`).json();\n }\n\n /**\n * Parse Server-Sent Events stream into async iterable\n */\n private async *parseSSEStream(body: ReadableStream<Uint8Array>): AsyncIterable<QueryStreamChunk> {\n const reader = body.getReader();\n const decoder = new TextDecoder();\n let buffer = '';\n\n try {\n while (true) {\n const { done, value } = await reader.read();\n\n if (done) break;\n\n buffer += decoder.decode(value, { stream: true });\n const lines = buffer.split('\\n');\n buffer = lines.pop() || '';\n\n for (const line of lines) {\n const trimmed = line.trim();\n\n if (trimmed === '') continue;\n if (trimmed.startsWith(':')) continue; // Comment\n if (trimmed === 'data: [DONE]') return;\n\n if (trimmed.startsWith('data: ')) {\n const data = trimmed.slice(6);\n try {\n const chunk = JSON.parse(data) as QueryStreamChunk;\n yield chunk;\n } catch (error) {\n console.error('Failed to parse SSE data:', data, error);\n }\n }\n }\n }\n } finally {\n reader.releaseLock();\n }\n }\n}\n\n/**\n * Create a RAG client instance\n *\n * @example\n * ```typescript\n * import { createRAGClient } from '@neureus/sdk/rag';\n *\n * const rag = createRAGClient({\n * apiKey: process.env.NEUREUS_API_KEY\n * });\n * ```\n */\nexport function createRAGClient(config: RAGClientConfig): RAGClient {\n return new RAGClient(config);\n}\n","/**\n * Neureus Platform SDK\n *\n * Unified SDK for the Neureus AI Platform providing access to:\n * - AI Gateway: Multi-provider LLM routing\n * - Vector Database: Fast vector search\n * - RAG Pipeline: Complete RAG infrastructure\n *\n * @example\n * ```typescript\n * import { NeureusClient } from '@neureus/sdk';\n *\n * const neureus = new NeureusClient({\n * apiKey: process.env.NEUREUS_API_KEY\n * });\n *\n * // AI Gateway\n * const chat = await neureus.ai.chat.create([\n * { role: 'user', content: 'Hello!' }\n * ]);\n *\n * // Vector Search\n * const results = await neureus.vector.search({\n * vector: [...],\n * topK: 5\n * });\n *\n * // RAG\n * const answer = await neureus.rag.query('docs', {\n * query: 'How do I get started?'\n * });\n * ```\n */\n\n// Export individual clients\nexport { AIClient, createAIClient } from './ai';\nexport { VectorClient, createVectorClient } from './vector';\nexport { RAGClient, createRAGClient } from './rag';\n\n// Export all types from sub-modules\nexport type * from './ai';\nexport type * from './vector';\nexport type * from './rag';\n\n// Configuration for unified client\nexport interface NeureusClientConfig {\n /**\n * Neureus API key (required)\n * Get your API key from https://app.neureus.ai/settings/api-keys\n */\n apiKey: