UNPKG

contextual-agent-sdk

Version:

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

110 lines 2.88 kB
import type { SubscriptionTier, ToolUsageQuota } from './subscriptions'; export type { SubscriptionTier, ToolUsageQuota } from './subscriptions'; export type ToolCategory = 'communication' | 'data' | 'productivity' | 'ai_services' | 'enterprise' | 'custom'; export interface ToolParameter { name: string; type: 'string' | 'number' | 'boolean' | 'object' | 'array'; required: boolean; description?: string; default?: any; schema?: Record<string, any>; } export interface ToolReturnType { type: 'string' | 'number' | 'boolean' | 'object' | 'array' | 'void'; description?: string; schema?: Record<string, any>; } export interface ToolRateLimit { requestsPerMinute?: number; requestsPerHour?: number; requestsPerDay?: number; burstLimit?: number; } export interface ToolCredentials { type: 'api_key' | 'oauth2' | 'basic_auth' | 'custom'; data: Record<string, any>; expiresAt?: Date; isValid?: boolean; } export interface ToolConfigSchema { properties: Record<string, any>; required: string[]; type: 'object'; additionalProperties?: boolean; } export interface ToolConfigValidation { isValid: boolean; errors: string[]; normalizedConfig?: Record<string, any>; } export interface ToolParams { [key: string]: any; } export interface ToolResultMetadata { executionTime?: number; providerVersion?: string; endpoint?: string; rateLimit?: { remaining: number; resetTime: Date; }; cost?: { amount: number; currency: string; unit: string; }; } export interface ToolResult { success: boolean; data?: any; error?: string; errorCode?: string; metadata?: ToolResultMetadata; } export interface Tool { id: string; name: string; description: string; category: ToolCategory; version: string; parameters: ToolParameter[]; returnType: ToolReturnType; requiresAuth: boolean; rateLimits?: ToolRateLimit; minimumTier: SubscriptionTier; isPremium: boolean; usageQuota?: ToolUsageQuota; configSchema?: ToolConfigSchema; tags?: string[]; documentationUrl?: string; } export interface ToolCapability { id: string; name: string; description: string; available: boolean; } export interface ToolInstance { tool: Tool; configuration: Record<string, any>; credentials?: ToolCredentials; isActive: boolean; lastUsed?: Date; usageStats?: { totalCalls: number; successfulCalls: number; failedCalls: number; averageExecutionTime: number; }; } export interface ToolUsageRecord { toolId: string; agentId: string; organizationId: string; timestamp: Date; success: boolean; executionTime: number; cost?: number; error?: string; } //# sourceMappingURL=tools.d.ts.map