fix(agents): use captured cli lifecycle hook runner

This commit is contained in:
Peter Steinberger
2026-04-25 01:03:29 +01:00
parent b69e3b633b
commit 915931aa38
2 changed files with 15 additions and 3 deletions

View File

@@ -205,6 +205,7 @@ export async function runPreparedCliAgent(
...(output.usage ? { usage: output.usage } : {}),
},
ctx: hookContext,
hookRunner,
});
}
return { output, assistantText, lastAssistant };
@@ -290,6 +291,7 @@ export async function runPreparedCliAgent(
runAgentHarnessLlmInputHook({
event: llmInputEvent,
ctx: hookContext,
hookRunner,
});
try {
const { output, lastAssistant } = await executeCliAttempt(
@@ -303,6 +305,7 @@ export async function runPreparedCliAgent(
durationMs: Date.now() - context.started,
},
ctx: hookContext,
hookRunner,
});
return buildCliRunResult({ output, effectiveCliSessionId });
} catch (err) {
@@ -325,6 +328,7 @@ export async function runPreparedCliAgent(
durationMs: Date.now() - context.started,
},
ctx: hookContext,
hookRunner,
});
return buildCliRunResult({ output, effectiveCliSessionId });
} catch (retryErr) {
@@ -332,6 +336,7 @@ export async function runPreparedCliAgent(
runAgentHarnessAgentEndHook({
event: buildFailedAgentEndEvent(retryMessage),
ctx: hookContext,
hookRunner,
});
return toCliRunFailure(retryErr);
}
@@ -339,6 +344,7 @@ export async function runPreparedCliAgent(
runAgentHarnessAgentEndHook({
event: buildFailedAgentEndEvent(formatErrorMessage(err)),
ctx: hookContext,
hookRunner,
});
throw err;
}
@@ -346,6 +352,7 @@ export async function runPreparedCliAgent(
runAgentHarnessAgentEndHook({
event: buildFailedAgentEndEvent(message),
ctx: hookContext,
hookRunner,
});
return toCliRunFailure(err);
}

View File

@@ -9,11 +9,14 @@ import { buildAgentHookContext, type AgentHarnessHookContext } from "./hook-cont
const log = createSubsystemLogger("agents/harness");
type AgentHarnessHookRunner = ReturnType<typeof getGlobalHookRunner>;
export function runAgentHarnessLlmInputHook(params: {
event: PluginHookLlmInputEvent;
ctx: AgentHarnessHookContext;
hookRunner?: AgentHarnessHookRunner;
}): void {
const hookRunner = getGlobalHookRunner();
const hookRunner = params.hookRunner ?? getGlobalHookRunner();
if (!hookRunner?.hasHooks("llm_input")) {
return;
}
@@ -25,8 +28,9 @@ export function runAgentHarnessLlmInputHook(params: {
export function runAgentHarnessLlmOutputHook(params: {
event: PluginHookLlmOutputEvent;
ctx: AgentHarnessHookContext;
hookRunner?: AgentHarnessHookRunner;
}): void {
const hookRunner = getGlobalHookRunner();
const hookRunner = params.hookRunner ?? getGlobalHookRunner();
if (!hookRunner?.hasHooks("llm_output")) {
return;
}
@@ -38,8 +42,9 @@ export function runAgentHarnessLlmOutputHook(params: {
export function runAgentHarnessAgentEndHook(params: {
event: PluginHookAgentEndEvent;
ctx: AgentHarnessHookContext;
hookRunner?: AgentHarnessHookRunner;
}): void {
const hookRunner = getGlobalHookRunner();
const hookRunner = params.hookRunner ?? getGlobalHookRunner();
if (!hookRunner?.hasHooks("agent_end")) {
return;
}