UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

76 lines (75 loc) • 2.69 kB
import { t as formatErrorMessage } from "./errors-BvOkmQM5.mjs"; import { a as resolveAgentDir } from "./agent-scope-config-BEk6-ThS.mjs"; import { t as buildAgentHookContextChannelFields } from "./hook-agent-context-vC-cM68i.mjs"; import { n as runAgentEndSideEffects, t as awaitAgentEndSideEffects } from "./agent-end-side-effects-Cc9DHY-6.mjs"; import { o as runAgentHarnessLlmOutputHook } from "./lifecycle-hook-helpers-BOCYz9r1.mjs"; import { c as buildEmbeddedForegroundPromptContext } from "./settled-turn-finalization-result-CUcocDhr.mjs"; import "./agent-harness-runtime-C1yVhaNg.mjs"; //#region extensions/agentsapi/agentsapi-attempt-hooks.ts function createAgentsApiAttemptHooks(params, agentId, startedAtMs) { const contextWindow = { contextTokenBudget: params.contextWindowInfo?.tokens ?? params.contextTokenBudget, contextWindowSource: params.contextWindowInfo?.source, contextWindowReferenceTokens: params.contextWindowInfo?.referenceTokens }; const hookContext = { runId: params.runId, agentId, sessionKey: params.sessionKey, sessionId: params.sessionId, workspaceDir: params.workspaceDir, modelProviderId: params.provider, modelId: params.model.id, trigger: params.trigger, inputProvenance: params.inputProvenance, ...buildAgentHookContextChannelFields(params), channelContext: params.channelContext, ...contextWindow }; return { hookContext, complete }; async function complete(result) { const terminal = result.terminal; runAgentHarnessLlmOutputHook({ event: { runId: params.runId, sessionId: params.sessionId, provider: params.provider, model: params.model.id, resolvedRef: `${params.provider}/${params.model.id}`, harnessId: "agentsapi", prompt: params.prompt, ...contextWindow, assistantTexts: result.assistantTexts, lastAssistant: result.lastAssistant, usage: result.attemptUsage }, ctx: hookContext }); const agentEnd = { event: { runId: params.runId, messages: result.messagesSnapshot, success: terminal.kind === "ok", error: terminal.kind === "failed" ? formatErrorMessage(terminal.error) : void 0, durationMs: Date.now() - startedAtMs }, ctx: { ...hookContext, config: params.config, foregroundPromptContext: buildEmbeddedForegroundPromptContext({ ...params, agentId }, params.agentDir ?? resolveAgentDir(params.config ?? {}, agentId)), skillWorkshopAvailable: false, compacted: false } }; if (!params.messageChannel && !params.messageProvider) await awaitAgentEndSideEffects(agentEnd); else runAgentEndSideEffects(agentEnd); } } //#endregion export { createAgentsApiAttemptHooks as t };