File size: 1,013 Bytes
68d7816 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | import type {
CompactionResult,
CompactionSource,
} from './types';
import { createDecorator } from "#/_base/di/instantiation";
import type { Event } from '#/_base/event';
import type { Hooks } from '#/hooks';
export interface FullCompactionInput {
readonly source: CompactionSource;
readonly instruction?: string;
}
export interface FullCompactionTask {
readonly abortController: AbortController;
readonly promise: Promise<CompactionResult>;
readonly trigger: CompactionSource;
readonly tokenCount: number;
readonly traceId?: string;
}
export interface IAgentFullCompactionService {
readonly _serviceBrand: undefined;
readonly compacting: FullCompactionTask | null;
begin(input: FullCompactionInput): boolean;
cancel(): void;
readonly hooks: Hooks<{
onWillCompact: FullCompactionTask;
}>;
readonly onDidFinishCompaction: Event<FullCompactionTask>;
}
export const IAgentFullCompactionService = createDecorator<IAgentFullCompactionService>('agentFullCompactionService');
|