UNPKG

contextual-agent-sdk

Version:

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

42 lines 2.52 kB
import type { Tool, ToolCategory, ToolCapability, ToolCredentials, ToolParams, ToolResult, ToolConfigValidation, ToolConfigSchema, SubscriptionTier } from './types/tools'; import type { ToolProvider as IToolProvider, ToolExecutionContext, ProviderTestResult, ProviderHealthStatus } from './types/providers'; import type { SubscriptionContext } from './types/subscriptions'; export declare abstract class BaseToolProvider implements IToolProvider { abstract readonly id: string; abstract readonly name: string; abstract readonly description: string; abstract readonly category: ToolCategory; abstract readonly version: string; abstract readonly capabilities: ToolCapability[]; abstract readonly minimumTier: SubscriptionTier; abstract readonly isPremium: boolean; abstract readonly isEnterprise: boolean; private _isAuthenticated; private _lastHealthCheck?; private _healthStatus; abstract getAvailableTools(subscriptionContext?: SubscriptionContext): Tool[]; abstract getTool(toolId: string): Tool | undefined; abstract authenticate(credentials: ToolCredentials): Promise<boolean>; abstract execute(toolId: string, params: ToolParams, context?: ToolExecutionContext): Promise<ToolResult>; abstract validateConfig(toolId: string, config: any): ToolConfigValidation; abstract getConfigSchema(toolId: string): ToolConfigSchema | undefined; testConnection(credentials?: ToolCredentials): Promise<ProviderTestResult>; getHealthStatus(): ProviderHealthStatus; protected setAuthenticationStatus(isAuthenticated: boolean): void; protected setHealthStatus(status: ProviderHealthStatus['status']): void; cleanup(): Promise<void>; protected isToolAvailableForSubscription(tool: Tool, subscriptionContext?: SubscriptionContext): boolean; protected validateExecutionContext(context?: ToolExecutionContext): boolean; protected createErrorResult(error: string, errorCode?: string): ToolResult; protected createSuccessResult(data: any, metadata?: Partial<ToolResult['metadata']>): ToolResult; } export type { IToolProvider as ToolProvider }; export declare class ToolProviderUtils { static validateParameters(tool: Tool, params: ToolParams): { isValid: boolean; errors: string[]; }; static applyParameterDefaults(tool: Tool, params: ToolParams): ToolParams; static checkTierRequirement(toolTier: SubscriptionTier, userTier: SubscriptionTier): boolean; } //# sourceMappingURL=ToolProvider.d.ts.map