mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-11 16:53:49 +00:00
Plugins/Hooks: avoid duplicate before_agent_start executions
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import fs from "node:fs/promises";
|
||||
import type { ThinkLevel } from "../../auto-reply/thinking.js";
|
||||
import { getGlobalHookRunner } from "../../plugins/hook-runner-global.js";
|
||||
import type { PluginHookBeforeAgentStartResult } from "../../plugins/types.js";
|
||||
import { enqueueCommandInLane } from "../../process/command-queue.js";
|
||||
import { isMarkdownCapableMessageChannel } from "../../utils/message-channel.js";
|
||||
import { resolveOpenClawAgentDir } from "../agent-paths.js";
|
||||
@@ -236,6 +237,7 @@ export async function runEmbeddedPiAgent(
|
||||
// Legacy compatibility: before_agent_start is also checked for override
|
||||
// fields if present. New hook takes precedence when both are set.
|
||||
let modelResolveOverride: { providerOverride?: string; modelOverride?: string } | undefined;
|
||||
let legacyBeforeAgentStartResult: PluginHookBeforeAgentStartResult | undefined;
|
||||
const hookRunner = getGlobalHookRunner();
|
||||
const hookCtx = {
|
||||
agentId: workspaceResolution.agentId,
|
||||
@@ -256,14 +258,16 @@ export async function runEmbeddedPiAgent(
|
||||
}
|
||||
if (hookRunner?.hasHooks("before_agent_start")) {
|
||||
try {
|
||||
const legacyResult = await hookRunner.runBeforeAgentStart(
|
||||
legacyBeforeAgentStartResult = await hookRunner.runBeforeAgentStart(
|
||||
{ prompt: params.prompt },
|
||||
hookCtx,
|
||||
);
|
||||
modelResolveOverride = {
|
||||
providerOverride:
|
||||
modelResolveOverride?.providerOverride ?? legacyResult?.providerOverride,
|
||||
modelOverride: modelResolveOverride?.modelOverride ?? legacyResult?.modelOverride,
|
||||
modelResolveOverride?.providerOverride ??
|
||||
legacyBeforeAgentStartResult?.providerOverride,
|
||||
modelOverride:
|
||||
modelResolveOverride?.modelOverride ?? legacyBeforeAgentStartResult?.modelOverride,
|
||||
};
|
||||
} catch (hookErr) {
|
||||
log.warn(
|
||||
@@ -564,6 +568,7 @@ export async function runEmbeddedPiAgent(
|
||||
authStorage,
|
||||
modelRegistry,
|
||||
agentId: workspaceResolution.agentId,
|
||||
legacyBeforeAgentStartResult,
|
||||
thinkLevel,
|
||||
verboseLevel: params.verboseLevel,
|
||||
reasoningLevel: params.reasoningLevel,
|
||||
|
||||
Reference in New Issue
Block a user