capsule-ai-cli
Version:
The AI Model Orchestrator - Intelligent multi-model workflows with device-locked licensing
117 lines • 3 kB
TypeScript
export interface AnalyticsEvent {
event: string;
properties?: Record<string, any>;
timestamp: Date;
sessionId: string;
}
export interface AnalyticsInsights {
totalSessions: number;
totalQueries: number;
modelUsage: Record<string, number>;
averageResponseTime: number;
errorRate: number;
dailyStats: Array<{
date: string;
queries: number;
tokens: number;
cost: number;
}>;
}
export interface IAnalyticsService {
track(event: AnalyticsEvent): Promise<void>;
getInsights(timeframe?: 'day' | 'week' | 'month'): Promise<AnalyticsInsights>;
exportData(): Promise<any>;
}
export interface IModelRouter {
route(request: ModelRequest): Promise<ModelResponse>;
listAvailableModels(): Promise<ModelInfo[]>;
estimateCost(request: ModelRequest): Promise<CostEstimate>;
}
export interface ModelRequest {
model: string;
messages: Array<{
role: 'system' | 'user' | 'assistant';
content: string;
}>;
temperature?: number;
maxTokens?: number;
stream?: boolean;
useCloud?: boolean;
}
export interface ModelResponse {
content: string;
model: string;
usage: {
promptTokens: number;
completionTokens: number;
totalTokens: number;
};
provider: string;
}
export interface ModelInfo {
id: string;
name: string;
provider: string;
contextWindow: number;
supportsStreaming: boolean;
supportsTools: boolean;
pricing?: {
prompt: number;
completion: number;
};
}
export interface CostEstimate {
estimatedTokens: number;
estimatedCost: number;
model: string;
provider: string;
}
export interface ILicenseService {
activate(licenseKey: string): Promise<{
success: boolean;
error?: string;
}>;
validate(): Promise<{
valid: boolean;
license?: LicenseInfo;
}>;
deactivate(): Promise<void>;
}
export interface LicenseInfo {
key: string;
email?: string;
activatedAt: Date;
expiresAt?: Date;
tier: 'free' | 'pro' | 'cloud';
features: string[];
}
export interface IConfigService {
get<T>(key: string): T | undefined;
set(key: string, value: any): Promise<void>;
getAll(): Record<string, any>;
reset(): Promise<void>;
}
export interface IFeatureFlags {
isEnabled(feature: string): boolean;
getAllFlags(): Record<string, boolean>;
refresh?(): Promise<void>;
}
export interface IHealthCheckable {
checkHealth(): Promise<{
healthy: boolean;
message?: string;
}>;
}
export interface ICollaborationService {
shareSession(sessionId: string, email: string): Promise<void>;
listSharedSessions(): Promise<SharedSession[]>;
joinSession(inviteCode: string): Promise<void>;
}
export interface SharedSession {
id: string;
owner: string;
participants: string[];
createdAt: Date;
lastActive: Date;
}
//# sourceMappingURL=interfaces.d.ts.map