capsule-ai-cli
Version:
The AI Model Orchestrator - Intelligent multi-model workflows with device-locked licensing
178 lines • 4.16 kB
TypeScript
export type MessageContentType = 'text' | 'image' | 'file';
export interface TextContent {
type: 'text';
text: string;
}
export interface ImageContent {
type: 'image';
source: {
type: 'base64';
media_type: string;
data: string;
};
}
export interface FileContent {
type: 'file';
filename: string;
media_type: string;
data: string;
}
export type MessageContent = TextContent | ImageContent | FileContent;
export interface Message {
role: 'system' | 'user' | 'assistant' | 'tool' | 'tool_result';
content: string | MessageContent[];
name?: string;
tool_call_id?: string;
tool_calls?: ToolCall[];
metadata?: {
model?: string;
provider?: string;
timestamp?: Date;
tokens?: number;
cost?: number;
compacted?: boolean;
};
}
export interface Context {
id: string;
messages: Message[];
metadata: {
created: Date;
lastModified: Date;
totalTokens: number;
totalCost: number;
modelsUsed: string[];
};
}
export interface ContextStats {
messageCount: number;
tokenCount: number;
totalCost: number;
modelsUsed: string[];
oldestMessage: Date;
newestMessage: Date;
}
export interface ModelProvider {
name: string;
models: string[];
supportsStreaming: boolean;
supportsTools: boolean;
complete(messages: Message[], options?: CompletionOptions): Promise<CompletionResponse>;
stream?(messages: Message[], options?: CompletionOptions): AsyncIterableIterator<StreamChunk>;
calculateCost(usage: Usage, model?: string): Cost;
}
export interface CompletionOptions {
model?: string;
temperature?: number;
maxTokens?: number;
tools?: Tool[];
stream?: boolean;
signal?: AbortSignal;
}
export interface CompletionResponse {
content: string;
usage: Usage;
model: string;
provider: string;
toolCalls?: ToolCall[];
reasoning?: string;
}
export interface StreamChunk {
delta: string;
usage?: Usage;
toolCall?: ToolCall;
reasoning?: boolean;
}
export interface Usage {
promptTokens: number;
completionTokens: number;
totalTokens: number;
}
export interface Cost {
amount: number;
currency: string;
breakdown?: {
prompt: number;
completion: number;
};
}
export interface Tool {
name: string;
description: string;
parameters: Record<string, any>;
execute: (params: any) => Promise<any>;
}
export interface ToolCall {
id: string;
name: string;
arguments: any;
}
export interface Config {
auth?: {
token?: string;
email?: string;
tier?: 'base' | 'super';
deviceId?: string;
remainingRUs?: number;
validUntil?: string;
};
providers: {
[key: string]: {
apiKey?: string;
baseUrl?: string;
defaultModel?: string;
enabled?: boolean;
useManaged?: boolean;
};
};
defaultProvider?: string;
ui: {
theme: 'dark' | 'light';
showCosts: boolean;
animations: boolean;
};
tools?: {
fileOperations?: boolean;
shellExecution?: boolean;
webAccess?: boolean;
};
costs: {
trackUsage: boolean;
budgetAlerts: boolean;
monthlyLimit?: number;
};
subAgentDefaults?: {
model: string;
provider: string;
};
orchestratorPreferences?: {
auto?: boolean;
taskModels?: {
[taskType: string]: {
model: string;
provider: string;
};
};
};
services?: {
googleSearch?: {
apiKey?: string;
searchEngineId?: string;
};
serpApi?: {
apiKey?: string;
};
};
contexts?: any;
cache?: {
openrouterModels?: {
models: any[];
timestamp: number;
};
openrouterToolModels?: {
models: any[];
timestamp: number;
};
};
}
//# sourceMappingURL=index.d.ts.map