Revert "refactor(agents): propagate exact attribution across runtimes"

This reverts commit df31882c38.
This commit is contained in:
joshavant
2026-08-07 13:53:38 -05:00
committed by Josh Avant
parent 54ea39d553
commit 07680362ff
50 changed files with 91 additions and 1477 deletions
-3
View File
@@ -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")>(
+6 -21
View File
@@ -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: {
+4 -13
View File
@@ -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,