openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
43 lines (42 loc) • 1.68 kB
JavaScript
import { t as createSubsystemLogger } from "./subsystem-Dy2tqXOS.js";
import { m as consumeRunSkillUsage } from "./agent-tools.before-tool-call-Bb7DJuFB.js";
import { r as runAgentHarnessAgentEndHook, t as awaitAgentHarnessAgentEndHook } from "./lifecycle-hook-helpers-Cpmpoz3T.js";
//#region src/agents/harness/agent-end-side-effects.ts
/**
* Agent-end side effect runner.
*
* Harnesses use this to trigger skill experience review and plugin agent_end hooks
* either fire-and-forget or awaited during tests/shutdown.
*/
const log = createSubsystemLogger("agents/harness");
async function runCoreAgentEndSideEffects(params) {
const usedSkills = consumeRunSkillUsage(params.ctx.runId);
if (!params.ctx.foregroundPromptContext) return;
const ctx = {
...params.ctx,
foregroundPromptContext: params.ctx.foregroundPromptContext
};
try {
const { scheduleSkillExperienceReview } = await import("./experience-review-default-BYTLX3tU.js");
scheduleSkillExperienceReview({
event: params.event,
ctx,
usedSkills,
...params.ctx.config ? { config: params.ctx.config } : {}
});
} catch (error) {
log.warn(`skill experience review scheduling failed: ${String(error)}`);
}
}
/** Starts agent-end side effects without waiting for completion. */
function runAgentEndSideEffects(params) {
runCoreAgentEndSideEffects(params);
runAgentHarnessAgentEndHook(params);
}
/** Runs agent-end side effects and waits for plugin/core completion. */
async function awaitAgentEndSideEffects(params) {
await runCoreAgentEndSideEffects(params);
await awaitAgentHarnessAgentEndHook(params);
}
//#endregion
export { runAgentEndSideEffects as n, awaitAgentEndSideEffects as t };