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