capsule-ai-cli
Version:
The AI Model Orchestrator - Intelligent multi-model workflows with device-locked licensing
67 lines • 2.28 kB
TypeScript
import { EventEmitter } from 'events';
import { ChatService } from './chat.js';
import { ContextManager } from './context.js';
import { Context, ToolCall } from '../types/index.js';
export interface SubAgentTask {
taskId: string;
name: string;
description: string;
status: 'pending' | 'running' | 'completed' | 'failed' | 'cancelled';
provider?: string;
model?: string;
agent?: {
context: Context;
contextManager: ContextManager;
chatService: ChatService;
abortController: AbortController;
};
result?: string;
toolCalls: ToolCall[];
tokensUsed: number;
cost: number;
error?: string;
startTime: Date;
endTime?: Date;
}
export interface SubAgentEvents {
'task:created': (task: SubAgentTask) => void;
'task:started': (task: SubAgentTask) => void;
'task:progress': (taskId: string, message: string) => void;
'task:tool_call': (taskId: string, toolCall: ToolCall) => void;
'task:completed': (task: SubAgentTask) => void;
'task:failed': (task: SubAgentTask) => void;
'task:cancelled': (task: SubAgentTask) => void;
}
export declare class SubAgentManager extends EventEmitter {
private tasks;
private activeTasks;
constructor();
emit<K extends keyof SubAgentEvents>(event: K, ...args: Parameters<SubAgentEvents[K]>): boolean;
on<K extends keyof SubAgentEvents>(event: K, listener: SubAgentEvents[K]): this;
spawnTask(config: {
name: string;
description: string;
provider?: string;
model?: string;
parallel?: boolean;
}): Promise<SubAgentTask>;
private executeSubAgent;
private setupToolCallTracking;
getTask(taskId: string): SubAgentTask | undefined;
getAllTasks(): SubAgentTask[];
getActiveTasks(): SubAgentTask[];
cancelTask(taskId: string): Promise<boolean>;
waitForTask(taskId: string, timeoutMs?: number): Promise<SubAgentTask>;
getStats(): {
total: number;
pending: number;
running: number;
completed: number;
failed: number;
cancelled: number;
totalTokensUsed: number;
totalCost: number;
};
}
export declare const subAgentManager: SubAgentManager;
//# sourceMappingURL=sub-agent-manager.d.ts.map