contextual-agent-sdk
Version:
SDK for building AI agents with seamless voice-text context switching
69 lines • 2.07 kB
TypeScript
import type { Tool } from './tools';
import type { ToolProvider } from './providers';
export interface ToolRegistry {
registerProvider(provider: ToolProvider): void;
unregisterProvider(providerId: string): void;
getProvider(providerId: string): ToolProvider | undefined;
getProviders(): ToolProvider[];
getAvailableTools(): Tool[];
getToolsByCategory(category: string): Tool[];
findTool(toolId: string): Tool | undefined;
searchTools(query: string): Tool[];
getToolUsageStats(toolId: string, timeRange?: ToolUsageTimeRange): Promise<ToolUsageStats>;
}
export interface ToolUsageTimeRange {
start: Date;
end: Date;
}
export interface ToolUsageStats {
toolId: string;
timeRange: ToolUsageTimeRange;
totalExecutions: number;
successfulExecutions: number;
failedExecutions: number;
successRate: number;
averageExecutionTime: number;
totalCost?: number;
dailyUsage: Array<{
date: string;
executions: number;
successRate: number;
averageExecutionTime: number;
}>;
commonErrors: Array<{
error: string;
count: number;
percentage: number;
}>;
}
export interface ToolDiscoveryOptions {
category?: string;
minimumTier?: string;
premiumOnly?: boolean;
includeEnterprise?: boolean;
searchQuery?: string;
limit?: number;
sortBy?: 'name' | 'category' | 'popularity' | 'tier';
}
export interface ToolRegistryStats {
totalProviders: number;
totalTools: number;
toolsByCategory: Record<string, number>;
toolsByTier: Record<string, number>;
popularTools: Array<{
toolId: string;
name: string;
usageCount: number;
}>;
}
export interface ToolRegistryHealth {
status: 'healthy' | 'degraded' | 'unhealthy';
providerHealth: Record<string, 'healthy' | 'degraded' | 'unhealthy'>;
metrics: {
averageResponseTime: number;
errorRate: number;
activeInstances: number;
};
lastHealthCheck: Date;
}
//# sourceMappingURL=registry.d.ts.map