mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-27 12:56:01 -06:00
Revert "refactor(agents): propagate exact attribution across runtimes"
This reverts commit df31882c38.
This commit is contained in:
@@ -8,7 +8,6 @@ import { formatErrorMessage } from "../../infra/errors.js";
|
||||
import { createSubsystemLogger } from "../../logging/subsystem.js";
|
||||
import { normalizeAgentId, resolveAgentIdFromSessionKey } from "../../routing/session-key.js";
|
||||
import type { RuntimeEnv } from "../../runtime.js";
|
||||
import type { AgentExecutionAttribution } from "../agent-execution-attribution.js";
|
||||
import { prepareInternalSessionEffectsSession } from "../internal-session-effects.js";
|
||||
import type { AgentRunSessionTarget } from "../run-session-target.js";
|
||||
import { isAgentRunRestartAbortReason } from "../run-termination.js";
|
||||
@@ -50,7 +49,6 @@ export async function runAcpAgentCommand(params: {
|
||||
workspaceDir: string;
|
||||
runId: string;
|
||||
lifecycleGeneration: string;
|
||||
attribution?: AgentExecutionAttribution;
|
||||
acpManager: PreparedAgentCommandExecution["acpManager"];
|
||||
acpResolution: AcpReadyResolution;
|
||||
trackInternalModelRunTarget: (target: AgentRunSessionTarget | undefined) => void;
|
||||
@@ -59,7 +57,6 @@ export async function runAcpAgentCommand(params: {
|
||||
const acpToolTracker = attemptExecutionRuntime.createAcpToolLifecycleTracker();
|
||||
const startedAt = Date.now();
|
||||
registerAgentRunContext(params.runId, {
|
||||
...(params.attribution ? { attribution: params.attribution } : {}),
|
||||
sessionKey: params.sessionKey,
|
||||
sessionId: params.sessionId,
|
||||
agentId: params.sessionAgentId,
|
||||
|
||||
@@ -406,9 +406,6 @@ vi.mock("../model-runtime-aliases.js", async () => {
|
||||
vi.mock("../embedded-agent.js", () => ({
|
||||
runEmbeddedAgent: runEmbeddedAgentMock,
|
||||
}));
|
||||
vi.mock("../embedded-agent-runner/run-orchestrator.js", () => ({
|
||||
runEmbeddedAgentInternal: runEmbeddedAgentMock,
|
||||
}));
|
||||
|
||||
vi.mock("../session-write-lock.js", async () => {
|
||||
const actual = await vi.importActual<typeof import("../session-write-lock.js")>(
|
||||
|
||||
@@ -51,7 +51,6 @@ import {
|
||||
} from "../../tasks/task-status-access.js";
|
||||
import { resolveUserPath } from "../../utils.js";
|
||||
import { resolveMessageChannel } from "../../utils/message-channel.js";
|
||||
import type { AgentExecutionAttribution } from "../agent-execution-attribution.js";
|
||||
import type { AgentRunTerminalReplySnapshot } from "../agent-run-terminal-reply.js";
|
||||
import { resolveAuthProfileOrder } from "../auth-profiles/order.js";
|
||||
import { ensureAuthProfileStore } from "../auth-profiles/store.js";
|
||||
@@ -75,12 +74,7 @@ import {
|
||||
} from "../cli-session.js";
|
||||
import { resolveConversationCapabilityProfile } from "../conversation-capability-profile.js";
|
||||
import { resolveConversationToolPolicies } from "../conversation-tool-policy-pipeline.js";
|
||||
import { runEmbeddedAgentInternal } from "../embedded-agent-runner/run-orchestrator.js";
|
||||
import type {
|
||||
AgentExecutionAttributionInfo,
|
||||
RunEmbeddedAgentInternalParams,
|
||||
} from "../embedded-agent-runner/run/internal-params.js";
|
||||
import type { EmbeddedAgentRunResult } from "../embedded-agent.js";
|
||||
import { runEmbeddedAgent, type EmbeddedAgentRunResult } from "../embedded-agent.js";
|
||||
import type { ContextEngineLogicalTurnLease } from "../harness/context-engine-logical-turn.js";
|
||||
import type { ContextEngineTurnAttemptFacts } from "../harness/context-engine-turn-attempt.js";
|
||||
import { runAgentHarnessBeforeMessageWriteHook } from "../harness/hook-helpers.js";
|
||||
@@ -579,10 +573,7 @@ export function runAgentAttempt(params: {
|
||||
contextEngineLogicalTurnLease?: ContextEngineLogicalTurnLease;
|
||||
onUserMessagePersisted?: (message: Extract<AgentMessage, { role: "user" }>) => void;
|
||||
onContextEngineTurnCandidate?: (facts: ContextEngineTurnAttemptFacts) => void;
|
||||
onLifecycleGenerationChanged?: (
|
||||
lifecycleGeneration: string,
|
||||
attribution?: AgentExecutionAttribution,
|
||||
) => void;
|
||||
onLifecycleGenerationChanged?: (lifecycleGeneration: string) => void;
|
||||
}) {
|
||||
const sessionAuthProfileId = params.sessionEntry?.authProfileOverride?.trim();
|
||||
const sessionAuthProfileSource = resolveSessionAuthProfileOverrideSource(params.sessionEntry);
|
||||
@@ -972,9 +963,6 @@ export function runAgentAttempt(params: {
|
||||
runId: params.runId,
|
||||
lifecycleGeneration: params.lifecycleGeneration,
|
||||
onExecutionStarted: params.opts.onExecutionStarted,
|
||||
...(params.opts.executionAttribution
|
||||
? { attribution: params.opts.executionAttribution }
|
||||
: {}),
|
||||
lane: params.opts.lane,
|
||||
extraSystemPrompt: params.opts.extraSystemPrompt,
|
||||
inputProvenance: params.opts.inputProvenance,
|
||||
@@ -1155,7 +1143,7 @@ export function runAgentAttempt(params: {
|
||||
});
|
||||
}
|
||||
|
||||
const embeddedRunParams: RunEmbeddedAgentInternalParams = {
|
||||
const embeddedRunParams: Parameters<typeof runEmbeddedAgent>[0] = {
|
||||
sessionId: params.sessionId,
|
||||
sessionKey: params.sessionKey,
|
||||
chatType: params.sessionEntry?.chatType,
|
||||
@@ -1216,7 +1204,6 @@ export function runAgentAttempt(params: {
|
||||
runTimeoutOverrideMs: params.runTimeoutOverrideMs,
|
||||
runId: params.runId,
|
||||
lifecycleGeneration: params.lifecycleGeneration,
|
||||
...(params.opts.executionAttribution ? { attribution: params.opts.executionAttribution } : {}),
|
||||
lane: params.opts.lane,
|
||||
// Hidden internal runs lack an event consumer; visible lanes still feed UI and parent relays.
|
||||
suppressLiveStreamOutput: shouldSuppressEmbeddedLiveStreamOutput(params),
|
||||
@@ -1256,12 +1243,10 @@ export function runAgentAttempt(params: {
|
||||
contextEngineLogicalTurnLease: params.contextEngineLogicalTurnLease,
|
||||
onContextEngineTurnCandidate: params.onContextEngineTurnCandidate,
|
||||
onUserMessagePersisted: params.onUserMessagePersisted,
|
||||
onExecutionStarted: () => {
|
||||
onExecutionStarted: (info) => {
|
||||
params.opts.onExecutionStarted?.();
|
||||
},
|
||||
onExecutionAttributionChanged: (info: AgentExecutionAttributionInfo) => {
|
||||
if (info?.lifecycleGeneration) {
|
||||
params.onLifecycleGenerationChanged?.(info.lifecycleGeneration, info.attribution);
|
||||
params.onLifecycleGenerationChanged?.(info.lifecycleGeneration);
|
||||
}
|
||||
},
|
||||
onSessionIdChanged: params.opts.onSessionIdChanged,
|
||||
@@ -1273,7 +1258,7 @@ export function runAgentAttempt(params: {
|
||||
embeddedRunParams,
|
||||
readChannelSourceTurnSameThreadRequired(params.runContext),
|
||||
);
|
||||
return runEmbeddedAgentInternal(embeddedRunParams);
|
||||
return runEmbeddedAgent(embeddedRunParams);
|
||||
}
|
||||
|
||||
export function buildAcpResult(params: {
|
||||
|
||||
@@ -15,7 +15,6 @@ import {
|
||||
} from "../../tasks/task-status-access.js";
|
||||
import { createTrajectoryRuntimeRecorder } from "../../trajectory/runtime.js";
|
||||
import { resolveMessageChannel } from "../../utils/message-channel.js";
|
||||
import type { AgentExecutionAttribution } from "../agent-execution-attribution.js";
|
||||
import {
|
||||
clearAutoFallbackPrimaryProbeSelection,
|
||||
entryMatchesAutoFallbackPrimaryProbe,
|
||||
@@ -68,10 +67,7 @@ export async function runEmbeddedAgentAttempt(params: {
|
||||
opts: AgentCommandOpts;
|
||||
sessionEntry?: SessionEntry;
|
||||
lifecycleGeneration: string;
|
||||
onLifecycleGenerationChanged: (
|
||||
lifecycleGeneration: string,
|
||||
attribution?: AgentExecutionAttribution,
|
||||
) => void;
|
||||
onLifecycleGenerationChanged: (lifecycleGeneration: string) => void;
|
||||
suppressVisibleSessionEffects: boolean;
|
||||
preserveUserFacingSessionModelState: boolean;
|
||||
modelSelection: EmbeddedModelSelection;
|
||||
@@ -99,7 +95,6 @@ export async function runEmbeddedAgentAttempt(params: {
|
||||
timeoutMs,
|
||||
runTimeoutOverrideMs,
|
||||
} = params.prepared;
|
||||
let executionAttribution = params.opts.executionAttribution;
|
||||
const { runContext, skillsSnapshot, resolvedVerboseLevel } = params.embeddedSessionState;
|
||||
const {
|
||||
defaultProvider,
|
||||
@@ -479,10 +474,7 @@ export async function runEmbeddedAgentAttempt(params: {
|
||||
runTimeoutOverrideMs,
|
||||
runId,
|
||||
lifecycleGeneration,
|
||||
opts:
|
||||
executionAttribution === params.opts.executionAttribution
|
||||
? params.opts
|
||||
: { ...params.opts, executionAttribution },
|
||||
opts: params.opts,
|
||||
runContext,
|
||||
spawnedBy,
|
||||
messageChannel,
|
||||
@@ -508,11 +500,10 @@ export async function runEmbeddedAgentAttempt(params: {
|
||||
contextEngineLogicalTurnLease: runOptions.contextEngineLogicalTurnLease,
|
||||
onContextEngineTurnCandidate: runOptions.onContextEngineTurnCandidate,
|
||||
onUserMessagePersisted: attemptLifecycleCallbacks.onUserMessagePersisted,
|
||||
onLifecycleGenerationChanged: (nextLifecycleGeneration, nextAttribution) => {
|
||||
onLifecycleGenerationChanged: (nextLifecycleGeneration) => {
|
||||
lifecycleGeneration = nextLifecycleGeneration;
|
||||
executionAttribution = nextAttribution ?? executionAttribution;
|
||||
// Outer cleanup owns the run context, so publish before the attempt can reject.
|
||||
params.onLifecycleGenerationChanged(nextLifecycleGeneration, nextAttribution);
|
||||
params.onLifecycleGenerationChanged(nextLifecycleGeneration);
|
||||
},
|
||||
onAgentEvent: attemptLifecycleCallbacks.onAgentEvent,
|
||||
deferTerminalLifecycle: true,
|
||||
|
||||
Reference in New Issue
Block a user