import { InitializedEvent, BeforeInvocationEvent, AfterInvocationEvent, MessageAddedEvent, BeforeToolsEvent, AfterToolsEvent, BeforeToolCallEvent, AfterToolCallEvent, BeforeModelCallEvent, AfterModelCallEvent, ToolResultEvent, ToolStreamUpdateEvent, } from '../hooks/index.js';
/**
 * Mock plugin that records all hookable event invocations for testing.
 */
export class MockPlugin {
    invocations = [];
    get name() {
        return 'mock-plugin';
    }
    initAgent(agent) {
        const eventTypes = [
            InitializedEvent,
            BeforeInvocationEvent,
            AfterInvocationEvent,
            MessageAddedEvent,
            BeforeToolsEvent,
            AfterToolsEvent,
            BeforeToolCallEvent,
            AfterToolCallEvent,
            BeforeModelCallEvent,
            AfterModelCallEvent,
            ToolResultEvent,
            ToolStreamUpdateEvent,
        ];
        for (const eventType of eventTypes) {
            agent.addHook(eventType, (e) => {
                this.invocations.push(e);
            });
        }
    }
    reset() {
        this.invocations = [];
    }
}
//# sourceMappingURL=mock-plugin.js.map