mirror of
https://github.com/moltbot/moltbot.git
synced 2026-05-16 18:34:18 +00:00
refactor: make context engines use transcript scope
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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<void> {
|
||||
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;
|
||||
|
||||
@@ -49,7 +49,7 @@ type DeferredTurnMaintenanceScheduleParams = {
|
||||
sessionId: string;
|
||||
sessionKey: string;
|
||||
transcriptScope?: ContextEngineTranscriptScope;
|
||||
transcriptLocator: string;
|
||||
transcriptLocator?: string;
|
||||
sessionManager?: Parameters<typeof rewriteTranscriptEntriesInSessionManager>[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<typeof rewriteTranscriptEntriesInSessionManager>[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<typeof rewriteTranscriptEntriesInSessionManager>[0]["sessionManager"];
|
||||
runtimeContext?: ContextEngineRuntimeContext;
|
||||
@@ -392,7 +392,7 @@ async function runDeferredTurnMaintenanceWorker(params: {
|
||||
sessionId: string;
|
||||
sessionKey: string;
|
||||
transcriptScope?: ContextEngineTranscriptScope;
|
||||
transcriptLocator: string;
|
||||
transcriptLocator?: string;
|
||||
sessionManager?: Parameters<typeof rewriteTranscriptEntriesInSessionManager>[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<typeof rewriteTranscriptEntriesInSessionManager>[0]["sessionManager"];
|
||||
runtimeContext?: ContextEngineRuntimeContext;
|
||||
|
||||
@@ -81,7 +81,7 @@ async function runBootstrap(
|
||||
overrides: Partial<Parameters<typeof runAttemptContextEngineBootstrap>[0]> = {},
|
||||
) {
|
||||
await runAttemptContextEngineBootstrap({
|
||||
hadTranscriptLocator: true,
|
||||
hadTranscript: true,
|
||||
contextEngine,
|
||||
sessionId: embeddedSessionId,
|
||||
sessionKey,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -205,7 +205,7 @@ export interface ContextEngine {
|
||||
sessionId: string;
|
||||
sessionKey?: string;
|
||||
transcriptScope?: ContextEngineTranscriptScope;
|
||||
transcriptLocator: string;
|
||||
transcriptLocator?: string;
|
||||
}): Promise<BootstrapResult>;
|
||||
|
||||
/**
|
||||
@@ -218,7 +218,7 @@ export interface ContextEngine {
|
||||
sessionId: string;
|
||||
sessionKey?: string;
|
||||
transcriptScope?: ContextEngineTranscriptScope;
|
||||
transcriptLocator: string;
|
||||
transcriptLocator?: string;
|
||||
runtimeContext?: ContextEngineRuntimeContext;
|
||||
}): Promise<ContextEngineMaintenanceResult>;
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user