UNPKG

contextual-agent-sdk

Version:

SDK for building AI agents with seamless voice-text context switching

54 lines 1.92 kB
import type { Tool, ToolCategory, ToolCapability, ToolCredentials, ToolParams, ToolResult, ToolConfigValidation, ToolConfigSchema, SubscriptionTier } from './tools'; export interface ToolProvider { readonly id: string; readonly name: string; readonly description: string; readonly category: ToolCategory; readonly version: string; readonly capabilities: ToolCapability[]; readonly minimumTier: SubscriptionTier; readonly isPremium: boolean; readonly isEnterprise: boolean; getAvailableTools(): Tool[]; getTool(toolId: string): Tool | undefined; authenticate(credentials: ToolCredentials): Promise<boolean>; execute(toolId: string, params: ToolParams, context?: ToolExecutionContext): Promise<ToolResult>; validateConfig(toolId: string, config: any): ToolConfigValidation; getConfigSchema(toolId: string): ToolConfigSchema | undefined; testConnection(credentials?: ToolCredentials): Promise<ProviderTestResult>; getHealthStatus(): ProviderHealthStatus; cleanup?(): Promise<void>; } export interface ToolExecutionContext { agentId: string; organizationId?: string; userId?: string; sessionId?: string; metadata?: Record<string, any>; } export interface ProviderTestResult { success: boolean; responseTime: number; error?: string; metadata?: Record<string, any>; } export interface ProviderHealthStatus { status: 'healthy' | 'degraded' | 'unhealthy'; lastCheck: Date; details: { apiConnectivity: boolean; authentication: boolean; rateLimitStatus: 'ok' | 'warning' | 'critical'; errorRate: number; averageResponseTime: number; }; issues?: string[]; } export interface ProviderCapabilityCheck { providerId: string; capabilityId: string; available: boolean; reason?: string; requirements?: string[]; } //# sourceMappingURL=providers.d.ts.map