contextual-agent-sdk
Version:
SDK for building AI agents with seamless voice-text context switching
54 lines • 1.92 kB
TypeScript
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