diff --git a/extensions/codex/src/app-server/compact.ts b/extensions/codex/src/app-server/compact.ts index cd90f7557d8..6d8900fa11d 100644 --- a/extensions/codex/src/app-server/compact.ts +++ b/extensions/codex/src/app-server/compact.ts @@ -47,7 +47,6 @@ export async function maybeCompactCodexAppServerSession( sessionId: params.sessionId, sessionKey: params.sessionKey, transcriptScope: { agentId: params.agentId ?? "main", sessionId: params.sessionId }, - transcriptLocator: params.sessionId, tokenBudget: params.contextTokenBudget, currentTokenCount: params.currentTokenCount, compactionTarget: params.trigger === "manual" ? "threshold" : "budget", @@ -73,7 +72,6 @@ export async function maybeCompactCodexAppServerSession( sessionId: params.sessionId, sessionKey: params.sessionKey, transcriptScope: { agentId: params.agentId ?? "main", sessionId: params.sessionId }, - transcriptLocator: params.sessionId, reason: "compaction", runtimeContext: params.contextEngineRuntimeContext, config: params.config, diff --git a/extensions/codex/src/app-server/run-attempt.ts b/extensions/codex/src/app-server/run-attempt.ts index 46e1494d868..7fd4dfbad4d 100644 --- a/extensions/codex/src/app-server/run-attempt.ts +++ b/extensions/codex/src/app-server/run-attempt.ts @@ -544,7 +544,7 @@ export async function runCodexAppServerAttempt( runId: params.runId, }, }); - const hadSessionFile = hasSqliteSessionTranscriptEvents({ + const hadTranscript = hasSqliteSessionTranscriptEvents({ agentId: sessionAgentId, sessionId: params.sessionId, }); @@ -565,12 +565,11 @@ export async function runCodexAppServerAttempt( }; if (activeContextEngine) { await bootstrapHarnessContextEngine({ - hadTranscriptLocator: hadSessionFile, + hadTranscript, contextEngine: activeContextEngine, sessionId: params.sessionId, sessionKey: sandboxSessionKey, transcriptScope: { agentId: sessionAgentId, sessionId: params.sessionId }, - transcriptLocator: params.sessionId, runtimeContext: buildHarnessContextEngineRuntimeContext({ attempt: runtimeParams, workspaceDir: effectiveWorkspace, @@ -1512,7 +1511,6 @@ export async function runCodexAppServerAttempt( sessionIdUsed: params.sessionId, sessionKey: sandboxSessionKey, transcriptScope: { agentId: sessionAgentId, sessionId: params.sessionId }, - transcriptLocator: params.sessionId, messagesSnapshot: finalMessages, prePromptMessageCount, tokenBudget: params.contextTokenBudget, diff --git a/src/agents/harness/context-engine-lifecycle.ts b/src/agents/harness/context-engine-lifecycle.ts index 10b8907132c..7e011222c36 100644 --- a/src/agents/harness/context-engine-lifecycle.ts +++ b/src/agents/harness/context-engine-lifecycle.ts @@ -19,12 +19,12 @@ export type HarnessContextEngine = ContextEngine; * Run optional bootstrap + bootstrap maintenance for a harness-owned context engine. */ export async function bootstrapHarnessContextEngine(params: { - hadTranscriptLocator: boolean; + hadTranscript: boolean; contextEngine?: HarnessContextEngine; sessionId: string; sessionKey?: string; transcriptScope?: ContextEngineTranscriptScope; - transcriptLocator: string; + transcriptLocator?: string; sessionManager?: unknown; runtimeContext?: ContextEngineRuntimeContext; runMaintenance?: typeof runHarnessContextEngineMaintenance; @@ -32,7 +32,7 @@ export async function bootstrapHarnessContextEngine(params: { warn: (message: string) => void; }): Promise { if ( - !params.hadTranscriptLocator || + !params.hadTranscript || !(params.contextEngine?.bootstrap || params.contextEngine?.maintain) ) { return; @@ -103,7 +103,7 @@ export async function finalizeHarnessContextEngineTurn(params: { sessionIdUsed: string; sessionKey?: string; transcriptScope?: ContextEngineTranscriptScope; - transcriptLocator: string; + transcriptLocator?: string; messagesSnapshot: AgentMessage[]; prePromptMessageCount: number; tokenBudget?: number; @@ -236,7 +236,7 @@ export async function runHarnessContextEngineMaintenance(params: { sessionId: string; sessionKey?: string; transcriptScope?: ContextEngineTranscriptScope; - transcriptLocator: string; + transcriptLocator?: string; reason: "bootstrap" | "compaction" | "turn"; sessionManager?: unknown; runtimeContext?: ContextEngineRuntimeContext; diff --git a/src/agents/pi-embedded-runner/context-engine-maintenance.ts b/src/agents/pi-embedded-runner/context-engine-maintenance.ts index 019d62f4983..63bcf934c10 100644 --- a/src/agents/pi-embedded-runner/context-engine-maintenance.ts +++ b/src/agents/pi-embedded-runner/context-engine-maintenance.ts @@ -49,7 +49,7 @@ type DeferredTurnMaintenanceScheduleParams = { sessionId: string; sessionKey: string; transcriptScope?: ContextEngineTranscriptScope; - transcriptLocator: string; + transcriptLocator?: string; sessionManager?: Parameters[0]["sessionManager"]; runtimeContext?: ContextEngineRuntimeContext; agentId?: string; @@ -281,7 +281,7 @@ export function buildContextEngineMaintenanceRuntimeContext(params: { sessionId: string; sessionKey?: string; transcriptScope?: ContextEngineTranscriptScope; - transcriptLocator: string; + transcriptLocator?: string; sessionManager?: Parameters[0]["sessionManager"]; runtimeContext?: ContextEngineRuntimeContext; agentId?: string; @@ -344,7 +344,7 @@ async function executeContextEngineMaintenance(params: { sessionId: string; sessionKey?: string; transcriptScope?: ContextEngineTranscriptScope; - transcriptLocator: string; + transcriptLocator?: string; reason: "bootstrap" | "compaction" | "turn"; sessionManager?: Parameters[0]["sessionManager"]; runtimeContext?: ContextEngineRuntimeContext; @@ -392,7 +392,7 @@ async function runDeferredTurnMaintenanceWorker(params: { sessionId: string; sessionKey: string; transcriptScope?: ContextEngineTranscriptScope; - transcriptLocator: string; + transcriptLocator?: string; sessionManager?: Parameters[0]["sessionManager"]; runtimeContext?: ContextEngineRuntimeContext; agentId?: string; @@ -659,7 +659,7 @@ export async function runContextEngineMaintenance(params: { sessionId: string; sessionKey?: string; transcriptScope?: ContextEngineTranscriptScope; - transcriptLocator: string; + transcriptLocator?: string; reason: "bootstrap" | "compaction" | "turn"; sessionManager?: Parameters[0]["sessionManager"]; runtimeContext?: ContextEngineRuntimeContext; diff --git a/src/agents/pi-embedded-runner/run/attempt.spawn-workspace.context-engine.test.ts b/src/agents/pi-embedded-runner/run/attempt.spawn-workspace.context-engine.test.ts index d38d1e0ed0c..493c2ce5e46 100644 --- a/src/agents/pi-embedded-runner/run/attempt.spawn-workspace.context-engine.test.ts +++ b/src/agents/pi-embedded-runner/run/attempt.spawn-workspace.context-engine.test.ts @@ -81,7 +81,7 @@ async function runBootstrap( overrides: Partial[0]> = {}, ) { await runAttemptContextEngineBootstrap({ - hadTranscriptLocator: true, + hadTranscript: true, contextEngine, sessionId: embeddedSessionId, sessionKey, diff --git a/src/agents/pi-embedded-runner/run/attempt.ts b/src/agents/pi-embedded-runner/run/attempt.ts index 355cd7dc31a..6769c6b284e 100644 --- a/src/agents/pi-embedded-runner/run/attempt.ts +++ b/src/agents/pi-embedded-runner/run/attempt.ts @@ -1647,12 +1647,11 @@ export async function runEmbeddedAttempt( } const sessionTranscriptLocator = createSqliteSessionTranscriptLocator(sessionTranscriptScope); await runAttemptContextEngineBootstrap({ - hadTranscriptLocator: hadTranscriptEvents, + hadTranscript: hadTranscriptEvents, contextEngine: activeContextEngine, sessionId: params.sessionId, sessionKey: params.sessionKey, transcriptScope: sessionTranscriptScope, - transcriptLocator: sessionTranscriptLocator, sessionManager, runtimeContext: buildAfterTurnRuntimeContext({ attempt: params, diff --git a/src/context-engine/legacy.ts b/src/context-engine/legacy.ts index a8d7c730d4e..f64f619522d 100644 --- a/src/context-engine/legacy.ts +++ b/src/context-engine/legacy.ts @@ -56,7 +56,7 @@ export class LegacyContextEngine implements ContextEngine { async afterTurn(_params: { sessionId: string; sessionKey?: string; - transcriptLocator: string; + transcriptLocator?: string; messages: AgentMessage[]; prePromptMessageCount: number; autoCompactionSummary?: string; @@ -70,7 +70,7 @@ export class LegacyContextEngine implements ContextEngine { async compact(params: { sessionId: string; sessionKey?: string; - transcriptLocator: string; + transcriptLocator?: string; tokenBudget?: number; force?: boolean; currentTokenCount?: number; diff --git a/src/context-engine/types.ts b/src/context-engine/types.ts index a093057f725..77ef75b69c7 100644 --- a/src/context-engine/types.ts +++ b/src/context-engine/types.ts @@ -205,7 +205,7 @@ export interface ContextEngine { sessionId: string; sessionKey?: string; transcriptScope?: ContextEngineTranscriptScope; - transcriptLocator: string; + transcriptLocator?: string; }): Promise; /** @@ -218,7 +218,7 @@ export interface ContextEngine { sessionId: string; sessionKey?: string; transcriptScope?: ContextEngineTranscriptScope; - transcriptLocator: string; + transcriptLocator?: string; runtimeContext?: ContextEngineRuntimeContext; }): Promise; @@ -253,7 +253,7 @@ export interface ContextEngine { sessionId: string; sessionKey?: string; transcriptScope?: ContextEngineTranscriptScope; - transcriptLocator: string; + transcriptLocator?: string; messages: AgentMessage[]; /** Number of messages that existed before the prompt was sent. */ prePromptMessageCount: number; @@ -295,7 +295,7 @@ export interface ContextEngine { sessionId: string; sessionKey?: string; transcriptScope?: ContextEngineTranscriptScope; - transcriptLocator: string; + transcriptLocator?: string; tokenBudget?: number; /** Force compaction even below the default trigger threshold. */ force?: boolean;