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