@just-every/ensemble
Version:
LLM provider abstraction layer with unified streaming interface
42 lines • 1.53 kB
TypeScript
import { AgentDefinition } from '../types/types.js';
export interface RunningTool {
id: string;
toolName: string;
agentName: string;
args: string;
startTime: number;
abortController?: AbortController;
timedOut?: boolean;
completed?: boolean;
failed?: boolean;
result?: string;
error?: string;
}
export interface ToolCompletionEvent {
id: string;
toolName: string;
agentName: string;
duration: number;
timedOut: boolean;
result?: string;
error?: string;
}
export declare class RunningToolTracker {
private runningTools;
private completionHandlers;
addRunningTool(id: string, toolName: string, agentName: string, args: string): RunningTool;
markTimedOut(id: string): void;
completeRunningTool(id: string, result: string, _agent?: AgentDefinition): Promise<void>;
failRunningTool(id: string, error: string, _agent?: AgentDefinition): Promise<void>;
getRunningTool(id: string): RunningTool | undefined;
getAllRunningTools(): RunningTool[];
getRunningToolsForAgent(agentName: string): RunningTool[];
abortRunningTool(id: string): void;
onCompletion(handler: (event: ToolCompletionEvent) => void): void;
clear(): void;
isToolRunning(agentName: string, toolName: string): boolean;
getRunningToolCount(): number;
waitForTool(id: string, timeout?: number): Promise<ToolCompletionEvent | null>;
}
export declare const runningToolTracker: RunningToolTracker;
//# sourceMappingURL=running_tool_tracker.d.ts.map