import { i as HookEntry } from "./internal-hook-types-CKIMi9vm.js"; import { $ as PluginHookModelCallEndedEvent, $t as PluginHookMessageSentEvent, A as PluginHookBeforeMessageWriteEvent, Bt as PluginAgentTurnPrepareResult, C as PluginHookBeforeInstallContext, D as PluginHookBeforeInstallResult, Dt as PluginHookToolResultPersistContext, F as PluginHookCronChangedEvent, Ht as PluginHeartbeatPromptContributionResult, Jt as PluginHookInboundClaimEvent, K as PluginHookGatewayStartEvent, L as PluginHookGatewayContext, M as PluginHookBeforeResetEvent, N as PluginHookBeforeToolCallEvent, Ot as PluginHookToolResultPersistEvent, Qt as PluginHookMessageSendingResult, St as PluginHookSubagentSpawningResult, Vt as PluginHeartbeatPromptContributionEvent, X as PluginHookLlmInputEvent, Xt as PluginHookMessageReceivedEvent, Y as PluginHookInboundClaimResult, Yt as PluginHookMessageContext, Z as PluginHookLlmOutputEvent, Zt as PluginHookMessageSendingEvent, _t as PluginHookSubagentDeliveryTargetEvent, at as PluginHookReplyDispatchResult, b as PluginHookBeforeDispatchEvent, bt as PluginHookSubagentSpawnedEvent, c as PluginHookAfterCompactionEvent, ct as PluginHookReplyPayloadSendingEvent, d as PluginHookAgentEndEvent, dn as PluginHookBeforeAgentStartResult, dt as PluginHookResolveExecEnvEvent, en as GateHookResult, et as PluginHookModelCallStartedEvent, f as PluginHookBeforeAgentFinalizeEvent, ft as PluginHookSessionContext, g as PluginHookBeforeAgentRunEvent, gn as PluginHookBeforePromptBuildResult, gt as PluginHookSubagentContext, h as PluginHookBeforeAgentReplyResult, hn as PluginHookBeforePromptBuildEvent, ht as PluginHookSessionStartEvent, in as PluginHookBeforeToolCallResult, it as PluginHookReplyDispatchEvent, j as PluginHookBeforeMessageWriteResult, kt as PluginHookToolResultPersistResult, l as PluginHookAfterToolCallEvent, ln as PluginHookBeforeAgentStartEvent, lt as PluginHookReplyPayloadSendingResult, m as PluginHookBeforeAgentReplyEvent, mn as PluginHookBeforeModelResolveResult, nt as PluginHookRegistration, p as PluginHookBeforeAgentFinalizeResult, pn as PluginHookBeforeModelResolveEvent, pt as PluginHookSessionEndEvent, q as PluginHookGatewayStopEvent, qt as PluginHookInboundClaimContext, rt as PluginHookReplyDispatchContext, st as PluginHookReplyPayloadSendingContext, tn as InputGateDecision, tt as PluginHookName, u as PluginHookAgentContext, ut as PluginHookResolveExecEnvContext, v as PluginHookBeforeCompactionEvent, vt as PluginHookSubagentDeliveryTargetResult, w as PluginHookBeforeInstallEvent, wt as PluginHookToolContext, x as PluginHookBeforeDispatchResult, xt as PluginHookSubagentSpawningEvent, y as PluginHookBeforeDispatchContext, yt as PluginHookSubagentEndedEvent, zt as PluginAgentTurnPrepareEvent } from "./hook-types-DgRt3F-m.js"; //#region src/plugins/hook-registry.types.d.ts /** Legacy hook registration stored by the global hook runner registry. */ type PluginLegacyHookRegistration = { pluginId: string; entry: HookEntry; events: string[]; source: string; rootDir?: string; }; /** Hook runner registry state for legacy and typed plugin hooks. */ type HookRunnerRegistry = { hooks: PluginLegacyHookRegistration[]; typedHooks: PluginHookRegistration[]; }; /** Global hook runner registry snapshot with plugin load status. */ type GlobalHookRunnerRegistry = HookRunnerRegistry & { plugins: Array<{ id: string; status: "loaded" | "disabled" | "error"; }>; }; //#endregion //#region src/plugins/hooks.d.ts type HookRunnerLogger = { debug?: (message: string) => void; warn: (message: string) => void; error: (message: string) => void; }; type HookFailurePolicy = "fail-open" | "fail-closed"; type VoidHookRunOptions = { unrefTimeout?: boolean; }; type HookRunnerOptions = { logger?: HookRunnerLogger; /** If true, errors in hooks will be caught and logged instead of thrown */ catchErrors?: boolean; /** * Optional per-hook failure policy. * Defaults to fail-open unless explicitly overridden for a hook name. */ failurePolicyByHook?: Partial>; /** * Optional timeout for void/observation hooks. A timed-out hook is logged and * the runner continues, but the plugin's underlying work is not cancelled. */ voidHookTimeoutMsByHook?: Partial>; /** * Optional timeout for modifying hooks. A timed-out hook is logged and skipped, * but the plugin's underlying work is not cancelled. */ modifyingHookTimeoutMsByHook?: Partial>; }; type PluginTargetedInboundClaimOutcome = { status: "handled"; result: PluginHookInboundClaimResult; } | { status: "missing_plugin"; } | { status: "no_handler"; } | { status: "declined"; } | { status: "error"; error: string; }; /** * Create a hook runner for a specific registry. */ declare function createHookRunner(registry: GlobalHookRunnerRegistry, options?: HookRunnerOptions): { runBeforeModelResolve: (event: PluginHookBeforeModelResolveEvent, ctx: PluginHookAgentContext) => Promise; runAgentTurnPrepare: (event: PluginAgentTurnPrepareEvent, ctx: PluginHookAgentContext) => Promise; runBeforePromptBuild: (event: PluginHookBeforePromptBuildEvent, ctx: PluginHookAgentContext) => Promise; runBeforeAgentStart: (event: PluginHookBeforeAgentStartEvent, ctx: PluginHookAgentContext) => Promise; runBeforeAgentReply: (event: PluginHookBeforeAgentReplyEvent, ctx: PluginHookAgentContext) => Promise; runModelCallStarted: (event: PluginHookModelCallStartedEvent, ctx: PluginHookAgentContext) => Promise; runModelCallEnded: (event: PluginHookModelCallEndedEvent, ctx: PluginHookAgentContext) => Promise; runLlmInput: (event: PluginHookLlmInputEvent, ctx: PluginHookAgentContext) => Promise; runLlmOutput: (event: PluginHookLlmOutputEvent, ctx: PluginHookAgentContext) => Promise; runBeforeAgentFinalize: (event: PluginHookBeforeAgentFinalizeEvent, ctx: PluginHookAgentContext) => Promise; runAgentEnd: (event: PluginHookAgentEndEvent, ctx: PluginHookAgentContext, optionsLocal?: VoidHookRunOptions) => Promise; runBeforeCompaction: (event: PluginHookBeforeCompactionEvent, ctx: PluginHookAgentContext) => Promise; runAfterCompaction: (event: PluginHookAfterCompactionEvent, ctx: PluginHookAgentContext) => Promise; runBeforeReset: (event: PluginHookBeforeResetEvent, ctx: PluginHookAgentContext) => Promise; runBeforeAgentRun: (event: PluginHookBeforeAgentRunEvent, ctx: PluginHookAgentContext) => Promise | undefined>; runInboundClaim: (event: PluginHookInboundClaimEvent, ctx: PluginHookInboundClaimContext) => Promise; runInboundClaimForPlugin: (pluginId: string, event: PluginHookInboundClaimEvent, ctx: PluginHookInboundClaimContext) => Promise; runInboundClaimForPluginOutcome: (pluginId: string, event: PluginHookInboundClaimEvent, ctx: PluginHookInboundClaimContext) => Promise; runMessageReceived: (event: PluginHookMessageReceivedEvent, ctx: PluginHookMessageContext) => Promise; runBeforeDispatch: (event: PluginHookBeforeDispatchEvent, ctx: PluginHookBeforeDispatchContext) => Promise; runReplyDispatch: (event: PluginHookReplyDispatchEvent, ctx: PluginHookReplyDispatchContext) => Promise; runReplyPayloadSending: (event: PluginHookReplyPayloadSendingEvent, ctx: PluginHookReplyPayloadSendingContext) => Promise; runMessageSending: (event: PluginHookMessageSendingEvent, ctx: PluginHookMessageContext) => Promise; runMessageSent: (event: PluginHookMessageSentEvent, ctx: PluginHookMessageContext) => Promise; runBeforeToolCall: (event: PluginHookBeforeToolCallEvent, ctx: PluginHookToolContext) => Promise; runAfterToolCall: (event: PluginHookAfterToolCallEvent, ctx: PluginHookToolContext) => Promise; runToolResultPersist: (event: PluginHookToolResultPersistEvent, ctx: PluginHookToolResultPersistContext) => PluginHookToolResultPersistResult | undefined; runBeforeMessageWrite: (event: PluginHookBeforeMessageWriteEvent, ctx: { agentId?: string; sessionKey?: string; }) => PluginHookBeforeMessageWriteResult | undefined; runSessionStart: (event: PluginHookSessionStartEvent, ctx: PluginHookSessionContext) => Promise; runSessionEnd: (event: PluginHookSessionEndEvent, ctx: PluginHookSessionContext) => Promise; runSubagentSpawning: (event: PluginHookSubagentSpawningEvent, ctx: PluginHookSubagentContext) => Promise; runSubagentDeliveryTarget: (event: PluginHookSubagentDeliveryTargetEvent, ctx: PluginHookSubagentContext) => Promise; runSubagentSpawned: (event: PluginHookSubagentSpawnedEvent, ctx: PluginHookSubagentContext) => Promise; runSubagentEnded: (event: PluginHookSubagentEndedEvent, ctx: PluginHookSubagentContext) => Promise; runGatewayStart: (event: PluginHookGatewayStartEvent, ctx: PluginHookGatewayContext) => Promise; runGatewayStop: (event: PluginHookGatewayStopEvent, ctx: PluginHookGatewayContext) => Promise; runHeartbeatPromptContribution: (event: PluginHeartbeatPromptContributionEvent, ctx: PluginHookAgentContext) => Promise; runCronChanged: (event: PluginHookCronChangedEvent, ctx: PluginHookGatewayContext) => Promise; runBeforeInstall: (event: PluginHookBeforeInstallEvent, ctx: PluginHookBeforeInstallContext) => Promise; runResolveExecEnv: (event: PluginHookResolveExecEnvEvent, ctx: PluginHookResolveExecEnvContext) => Promise>; hasHooks: (hookName: PluginHookName) => boolean; getHookCount: (hookName: PluginHookName) => number; }; type HookRunner = ReturnType; //#endregion //#region src/plugins/hook-runner-global.d.ts /** * Initialize the global hook runner with a plugin registry. * Called once when plugins are loaded during gateway startup. */ declare function initializeGlobalHookRunner(registry: GlobalHookRunnerRegistry): void; /** * Get the global hook runner. * Returns null if plugins haven't been loaded yet. */ declare function getGlobalHookRunner(): HookRunner | null; /** * Get the global plugin registry. * Returns null if plugins haven't been loaded yet. */ declare function getGlobalPluginRegistry(): GlobalHookRunnerRegistry | null; /** * Check if any hooks are registered for a given hook name. */ declare function hasGlobalHooks(hookName: Parameters[0]): boolean; declare function runGlobalGatewayStopSafely(params: { event: PluginHookGatewayStopEvent; ctx: PluginHookGatewayContext; onError?: (err: unknown) => void; }): Promise; /** * Reset the global hook runner (for testing). */ declare function resetGlobalHookRunner(): void; //#endregion export { resetGlobalHookRunner as a, initializeGlobalHookRunner as i, getGlobalPluginRegistry as n, runGlobalGatewayStopSafely as o, hasGlobalHooks as r, getGlobalHookRunner as t };