UNPKG

contextual-agent-sdk

Version:

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

56 lines 2.2 kB
import { BaseToolProvider } from '../ToolProvider'; import type { Tool, ToolCredentials, ToolParams, ToolResult, SubscriptionTier, ToolCapability, ToolConfigValidation, ToolConfigSchema } from '../types/tools'; import type { ToolExecutionContext } from '../types/providers'; export interface TwilioCredentials extends ToolCredentials { accountSid: string; authToken: string; fromPhoneNumber: string; } export interface SendSMSParams extends ToolParams { to: string; message: string; mediaUrl?: string; } export interface MakeCallParams extends ToolParams { to: string; message: string; voice?: 'man' | 'woman' | 'alice'; } export interface SendSMSResult extends ToolResult { messageSid: string; status: string; to: string; from: string; body: string; cost?: string; } export interface MakeCallResult extends ToolResult { callSid: string; status: string; to: string; from: string; duration?: string; } export declare class TwilioToolProvider extends BaseToolProvider { readonly id = "twilio"; readonly name = "Twilio"; readonly description = "SMS and voice communication tools powered by Twilio"; readonly category = "communication"; readonly version = "1.0.0"; readonly capabilities: ToolCapability[]; readonly minimumTier: SubscriptionTier; readonly isPremium = false; readonly isEnterprise = false; 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; validateCredentials(credentials: TwilioCredentials): Promise<boolean>; executeTool(toolId: string, params: ToolParams, credentials: TwilioCredentials, context: ToolExecutionContext): Promise<ToolResult>; private sendSMS; private makeCall; getUsageStats(organizationId: string, period?: string): Promise<Record<string, any>>; } //# sourceMappingURL=TwilioToolProvider.d.ts.map