UNPKG

@relayplane/sdk

Version:

RelayPlane SDK with zero-config AI access, intelligent model selection, built-in examples, and contextual error handling. The easiest way to add AI to your app with automatic optimization and fallback.

360 lines 16 kB
/** * RelayPlane SDK - Main Entry Point * * This is the main entry point for the @relayplane/sdk package. * It exports all public APIs and provides a convenient namespace. */ export { relay, configure, ask, examples, optimizeStreaming, useOptimizedStreaming, StreamingCostTracker, status, saveProviderKey } from './core/relay'; export { optimize, canOptimize, getOptimizeCapabilities, clearOptimizeCache, getOptimizeMetrics, smartRetry, smartRelay, analyzeTaskCharacteristics, generateModelRecommendations, getAvailableModels, getModelCapabilities, clearSelectionHistory, getSelectionHistory } from './core/optimize'; export { chain, createChain, chainTemplates, ChainBuilder } from './core/chain'; export { batch, createBatch, batchUtils, BatchBuilder } from './core/batch'; export type { ModelProvider, SupportedModel, RelayRequest, RelayResponse, RelayConfig, EnhancedRelayConfig, OptimizeConfig, GlobalOptimizeConfig, ChatMessage, OpenAIPayload, ClaudePayload, GooglePayload, ChainRequest, ChainResponse, ChainStep, ChainStepResult, BatchRequest, BatchResponse, BatchRequestResult, ConfigurationResult, StatusInformation, ProviderStatus, PlanTier, ServiceHealthStatus, QuotaInformation, FeatureCapabilities, BringYourOwnKeysConfiguration, TaskType, PerformanceRequirements, TaskCharacteristics, ModelSelectionCriteria, ModelRecommendation, SmartSelectionRequest, SmartSelectionResponse, SelectionHistory, SmartSelectionConfig } from './types'; export { RelayError, RelayTimeoutError, RelayAuthError, RelayRateLimitError, RelayErrorWithRecovery, RelayApiKeyError, RelayRateLimitErrorEnhanced, RelayModelError, RelayNetworkError, RelayConfigError } from './types'; import { relay, configure, ask, optimizeStreaming, useOptimizedStreaming, StreamingCostTracker, status, saveProviderKey } from './core/relay'; import { optimize, canOptimize, getOptimizeCapabilities, clearOptimizeCache, getOptimizeMetrics, smartRetry, smartRelay, analyzeTaskCharacteristics, generateModelRecommendations, getAvailableModels, getModelCapabilities, clearSelectionHistory, getSelectionHistory } from './core/optimize'; import { chain, createChain } from './core/chain'; import { batch, createBatch } from './core/batch'; /** * 🪄 RelayPlane SDK - Zero-config AI for developers * * **RECOMMENDED USAGE** (Namespace-first for Zero-Config Wins): * ```typescript * import RelayPlane from '@relayplane/sdk'; * * // ✨ Zero-config magic - just ask! * const result = await RelayPlane.ask("Explain quantum computing simply"); * console.log(result.response.body); * console.log(result.reasoning.rationale); // See why this model was chosen * * // 🎯 Ready-to-use patterns - maximum convenience! * const summary = await RelayPlane.summarize(longText, { length: 'brief' }); * const review = await RelayPlane.codeReview(myCode, { focus: 'security' }); * const translation = await RelayPlane.translate('Hello world', 'Spanish'); * * // 🔧 Core functionality * RelayPlane.configure({ apiKey: 'your-key', debug: true }); * const response = await RelayPlane.relay({ * to: 'claude-sonnet-4-20250514', * payload: { messages: [{ role: 'user', content: 'Hello!' }] } * }); * * // ⛓️ Multi-agent chaining * const chain = await RelayPlane.chain({ * steps: [ * { step: 'summarize', to: 'claude-sonnet-4-20250514', payload: {} }, * { step: 'translate', to: 'gpt-4.1', payload: {} } * ], * input: 'Long text to process...' * }); * ``` * * **ALTERNATIVE** (Direct imports for tree-shaking): * ```typescript * import { ask, relay, configure } from '@relayplane/sdk'; * * const result = await ask("Explain quantum computing"); * const response = await relay({ to: 'gpt-4', payload: {...} }); * ``` */ declare const RelayPlane: { ask: typeof ask; summarize: (text: string, options?: { length?: "brief" | "moderate" | "detailed"; focus?: string; budget?: "minimal" | "moderate" | "unlimited"; }) => Promise<{ response: import("./types").RelayResponse<any>; reasoning: { selectedModel: import("./types").SupportedModel; rationale: string; alternatives: Array<{ model: import("./types").SupportedModel; reason: string; estimatedCost?: number; estimatedLatency?: number; }>; detectedCapabilities: string[]; }; }>; translate: (text: string, targetLanguage: string, options?: { sourceLanguage?: string; tone?: "formal" | "casual" | "professional"; context?: string; }) => Promise<{ response: import("./types").RelayResponse<any>; reasoning: { selectedModel: import("./types").SupportedModel; rationale: string; alternatives: Array<{ model: import("./types").SupportedModel; reason: string; estimatedCost?: number; estimatedLatency?: number; }>; detectedCapabilities: string[]; }; }>; codeReview: (code: string, options?: { language?: string; focus?: "bugs" | "performance" | "security" | "style" | "all"; includeFixSuggestions?: boolean; }) => Promise<{ response: import("./types").RelayResponse<any>; reasoning: { selectedModel: import("./types").SupportedModel; rationale: string; alternatives: Array<{ model: import("./types").SupportedModel; reason: string; estimatedCost?: number; estimatedLatency?: number; }>; detectedCapabilities: string[]; }; }>; research: (topic: string, options?: { depth?: "overview" | "detailed" | "comprehensive"; focus?: string; includeSourceSuggestions?: boolean; }) => Promise<{ response: import("./types").RelayResponse<any>; reasoning: { selectedModel: import("./types").SupportedModel; rationale: string; alternatives: Array<{ model: import("./types").SupportedModel; reason: string; estimatedCost?: number; estimatedLatency?: number; }>; detectedCapabilities: string[]; }; }>; chatbot: (message: string, options?: { context?: Array<{ role: "user" | "assistant"; content: string; }>; personality?: string; budget?: "minimal" | "moderate" | "unlimited"; }) => Promise<{ response: import("./types").RelayResponse<any>; reasoning: { selectedModel: import("./types").SupportedModel; rationale: string; alternatives: Array<{ model: import("./types").SupportedModel; reason: string; estimatedCost?: number; estimatedLatency?: number; }>; detectedCapabilities: string[]; }; }>; examples: { chatbot(message: string, options?: { context?: Array<{ role: "user" | "assistant"; content: string; }>; personality?: string; budget?: "minimal" | "moderate" | "unlimited"; }): Promise<{ response: import("./types").RelayResponse<any>; reasoning: { selectedModel: import("./types").SupportedModel; rationale: string; alternatives: Array<{ model: import("./types").SupportedModel; reason: string; estimatedCost?: number; estimatedLatency?: number; }>; detectedCapabilities: string[]; }; }>; summarize(text: string, options?: { length?: "brief" | "moderate" | "detailed"; focus?: string; budget?: "minimal" | "moderate" | "unlimited"; }): Promise<{ response: import("./types").RelayResponse<any>; reasoning: { selectedModel: import("./types").SupportedModel; rationale: string; alternatives: Array<{ model: import("./types").SupportedModel; reason: string; estimatedCost?: number; estimatedLatency?: number; }>; detectedCapabilities: string[]; }; }>; codeReview(code: string, options?: { language?: string; focus?: "bugs" | "performance" | "security" | "style" | "all"; includeFixSuggestions?: boolean; }): Promise<{ response: import("./types").RelayResponse<any>; reasoning: { selectedModel: import("./types").SupportedModel; rationale: string; alternatives: Array<{ model: import("./types").SupportedModel; reason: string; estimatedCost?: number; estimatedLatency?: number; }>; detectedCapabilities: string[]; }; }>; translate(text: string, targetLanguage: string, options?: { sourceLanguage?: string; tone?: "formal" | "casual" | "professional"; context?: string; }): Promise<{ response: import("./types").RelayResponse<any>; reasoning: { selectedModel: import("./types").SupportedModel; rationale: string; alternatives: Array<{ model: import("./types").SupportedModel; reason: string; estimatedCost?: number; estimatedLatency?: number; }>; detectedCapabilities: string[]; }; }>; research(topic: string, options?: { depth?: "overview" | "detailed" | "comprehensive"; focus?: string; includeSourceSuggestions?: boolean; }): Promise<{ response: import("./types").RelayResponse<any>; reasoning: { selectedModel: import("./types").SupportedModel; rationale: string; alternatives: Array<{ model: import("./types").SupportedModel; reason: string; estimatedCost?: number; estimatedLatency?: number; }>; detectedCapabilities: string[]; }; }>; creativeWriting(prompt: string, options?: { type?: "story" | "poem" | "essay" | "blog" | "script" | "general"; tone?: "humorous" | "serious" | "inspiring" | "mysterious" | "casual"; length?: "short" | "medium" | "long"; audience?: string; }): Promise<{ response: import("./types").RelayResponse<any>; reasoning: { selectedModel: import("./types").SupportedModel; rationale: string; alternatives: Array<{ model: import("./types").SupportedModel; reason: string; estimatedCost?: number; estimatedLatency?: number; }>; detectedCapabilities: string[]; }; }>; dataAnalysis(data: string, options?: { analysisType?: "descriptive" | "diagnostic" | "predictive" | "prescriptive" | "general"; format?: "summary" | "detailed" | "report"; includeVisualizationSuggestions?: boolean; }): Promise<{ response: import("./types").RelayResponse<any>; reasoning: { selectedModel: import("./types").SupportedModel; rationale: string; alternatives: Array<{ model: import("./types").SupportedModel; reason: string; estimatedCost?: number; estimatedLatency?: number; }>; detectedCapabilities: string[]; }; }>; explain(topic: string, options?: { level?: "beginner" | "intermediate" | "advanced" | "expert"; style?: "simple" | "detailed" | "step-by-step" | "examples"; audience?: string; }): Promise<{ response: import("./types").RelayResponse<any>; reasoning: { selectedModel: import("./types").SupportedModel; rationale: string; alternatives: Array<{ model: import("./types").SupportedModel; reason: string; estimatedCost?: number; estimatedLatency?: number; }>; detectedCapabilities: string[]; }; }>; optimizeContent(content: string, options?: { optimizationType?: "clarity" | "engagement" | "seo" | "brevity" | "persuasion" | "all"; targetAudience?: string; preserveLength?: boolean; }): Promise<{ response: import("./types").RelayResponse<any>; reasoning: { selectedModel: import("./types").SupportedModel; rationale: string; alternatives: Array<{ model: import("./types").SupportedModel; reason: string; estimatedCost?: number; estimatedLatency?: number; }>; detectedCapabilities: string[]; }; }>; }; relay: typeof relay; optimize: typeof optimize; smartRetry: typeof smartRetry; smartRelay: typeof smartRelay; configure: typeof configure; status: typeof status; saveProviderKey: typeof saveProviderKey; canOptimize: typeof canOptimize; getOptimizeCapabilities: typeof getOptimizeCapabilities; clearOptimizeCache: typeof clearOptimizeCache; getOptimizeMetrics: typeof getOptimizeMetrics; optimizeStreaming: typeof optimizeStreaming; useOptimizedStreaming: typeof useOptimizedStreaming; StreamingCostTracker: typeof StreamingCostTracker; chain: typeof chain; createChain: typeof createChain; chainTemplates: { researchAndSynthesize: (researchModel?: import("./types").SupportedModel, synthesisModel?: import("./types").SupportedModel) => import("./core/chain").ChainBuilder; summarizeAndTranslate: (summaryModel?: import("./types").SupportedModel, translateModel?: import("./types").SupportedModel) => import("./core/chain").ChainBuilder; analyzeAndOptimize: (analyzeModel?: import("./types").SupportedModel, optimizeModel?: import("./types").SupportedModel) => import("./core/chain").ChainBuilder; codeReview: (model?: import("./types").SupportedModel) => import("./core/chain").ChainBuilder; }; batch: typeof batch; createBatch: typeof createBatch; batchUtils: { createFromInputs: (model: string, basePayload: Record<string, any>, inputs: string[]) => import("./core/batch").BatchBuilder; compareModels: (models: string[], payload: Record<string, any>) => import("./core/batch").BatchBuilder; }; analyzeTaskCharacteristics: typeof analyzeTaskCharacteristics; generateModelRecommendations: typeof generateModelRecommendations; getAvailableModels: typeof getAvailableModels; getModelCapabilities: typeof getModelCapabilities; clearSelectionHistory: typeof clearSelectionHistory; getSelectionHistory: typeof getSelectionHistory; }; export default RelayPlane; export { RelayPlane }; export declare const VERSION = "0.3.1"; //# sourceMappingURL=index.d.ts.map