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