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