mirror of
https://github.com/moltbot/moltbot.git
synced 2026-05-19 04:28:22 +00:00
refactor: scope transcript rewrite broadcasts
This commit is contained in:
@@ -235,6 +235,7 @@ export async function compactEmbeddedPiSession(
|
||||
}
|
||||
await runContextEngineMaintenance({
|
||||
contextEngine,
|
||||
sessionAgentId: agentIds.sessionAgentId,
|
||||
sessionId: postCompactionSessionId,
|
||||
sessionKey: params.sessionKey,
|
||||
sessionFile: postCompactionSessionFile,
|
||||
|
||||
@@ -43,6 +43,7 @@ const DEFERRED_TURN_MAINTENANCE_ABORT_STATE_KEY = Symbol.for(
|
||||
);
|
||||
type DeferredTurnMaintenanceScheduleParams = {
|
||||
contextEngine: ContextEngine;
|
||||
sessionAgentId?: string;
|
||||
sessionId: string;
|
||||
sessionKey: string;
|
||||
sessionFile: string;
|
||||
@@ -273,6 +274,7 @@ function promoteTurnMaintenanceTaskVisibility(params: {
|
||||
* context-engine runtime context payload.
|
||||
*/
|
||||
export function buildContextEngineMaintenanceRuntimeContext(params: {
|
||||
sessionAgentId?: string;
|
||||
sessionId: string;
|
||||
sessionKey?: string;
|
||||
sessionFile: string;
|
||||
@@ -305,6 +307,7 @@ export function buildContextEngineMaintenanceRuntimeContext(params: {
|
||||
const rewriteTranscriptEntriesInFile = async () =>
|
||||
await rewriteTranscriptEntriesInSqliteTranscript({
|
||||
transcriptPath: params.sessionFile,
|
||||
agentId: params.sessionAgentId,
|
||||
sessionId: params.sessionId,
|
||||
sessionKey: params.sessionKey,
|
||||
config: params.config,
|
||||
@@ -324,6 +327,7 @@ export function buildContextEngineMaintenanceRuntimeContext(params: {
|
||||
|
||||
async function executeContextEngineMaintenance(params: {
|
||||
contextEngine: ContextEngine;
|
||||
sessionAgentId?: string;
|
||||
sessionId: string;
|
||||
sessionKey?: string;
|
||||
sessionFile: string;
|
||||
@@ -342,6 +346,7 @@ async function executeContextEngineMaintenance(params: {
|
||||
sessionKey: params.sessionKey,
|
||||
sessionFile: params.sessionFile,
|
||||
runtimeContext: buildContextEngineMaintenanceRuntimeContext({
|
||||
sessionAgentId: params.sessionAgentId,
|
||||
sessionId: params.sessionId,
|
||||
sessionKey: params.sessionKey,
|
||||
sessionFile: params.sessionFile,
|
||||
@@ -367,6 +372,7 @@ async function executeContextEngineMaintenance(params: {
|
||||
|
||||
async function runDeferredTurnMaintenanceWorker(params: {
|
||||
contextEngine: ContextEngine;
|
||||
sessionAgentId?: string;
|
||||
sessionId: string;
|
||||
sessionKey: string;
|
||||
sessionFile: string;
|
||||
@@ -447,6 +453,7 @@ async function runDeferredTurnMaintenanceWorker(params: {
|
||||
|
||||
const result = await executeContextEngineMaintenance({
|
||||
contextEngine: params.contextEngine,
|
||||
sessionAgentId: params.sessionAgentId,
|
||||
sessionId: params.sessionId,
|
||||
sessionKey: params.sessionKey,
|
||||
sessionFile: params.sessionFile,
|
||||
@@ -572,6 +579,7 @@ function scheduleDeferredTurnMaintenance(params: DeferredTurnMaintenanceSchedule
|
||||
runPromise = enqueueCommandInLane(resolveDeferredTurnMaintenanceLane(sessionKey), async () =>
|
||||
runDeferredTurnMaintenanceWorker({
|
||||
contextEngine: params.contextEngine,
|
||||
sessionAgentId: params.sessionAgentId,
|
||||
sessionId: params.sessionId,
|
||||
sessionKey,
|
||||
sessionFile: params.sessionFile,
|
||||
@@ -628,6 +636,7 @@ function scheduleDeferredTurnMaintenance(params: DeferredTurnMaintenanceSchedule
|
||||
*/
|
||||
export async function runContextEngineMaintenance(params: {
|
||||
contextEngine?: ContextEngine;
|
||||
sessionAgentId?: string;
|
||||
sessionId: string;
|
||||
sessionKey?: string;
|
||||
sessionFile: string;
|
||||
@@ -652,6 +661,7 @@ export async function runContextEngineMaintenance(params: {
|
||||
try {
|
||||
scheduleDeferredTurnMaintenance({
|
||||
contextEngine: params.contextEngine,
|
||||
sessionAgentId: params.sessionAgentId,
|
||||
sessionId: params.sessionId,
|
||||
sessionKey: params.sessionKey ?? params.sessionId,
|
||||
sessionFile: params.sessionFile,
|
||||
@@ -669,6 +679,7 @@ export async function runContextEngineMaintenance(params: {
|
||||
try {
|
||||
return await executeContextEngineMaintenance({
|
||||
contextEngine: params.contextEngine,
|
||||
sessionAgentId: params.sessionAgentId,
|
||||
sessionId: params.sessionId,
|
||||
sessionKey: params.sessionKey,
|
||||
sessionFile: params.sessionFile,
|
||||
|
||||
@@ -1857,6 +1857,7 @@ export async function runEmbeddedPiAgent(
|
||||
adoptCompactionTranscript(compactResult);
|
||||
await runContextEngineMaintenance({
|
||||
contextEngine,
|
||||
sessionAgentId,
|
||||
sessionId: activeSessionId,
|
||||
sessionKey: params.sessionKey,
|
||||
sessionFile: activeSessionFile,
|
||||
@@ -1895,6 +1896,7 @@ export async function runEmbeddedPiAgent(
|
||||
cfg: params.config,
|
||||
agentId: sessionAgentId,
|
||||
}),
|
||||
agentId: sessionAgentId,
|
||||
sessionId: activeSessionId,
|
||||
sessionKey: params.sessionKey,
|
||||
config: params.config,
|
||||
@@ -1957,6 +1959,7 @@ export async function runEmbeddedPiAgent(
|
||||
sessionFile: activeSessionFile,
|
||||
contextWindowTokens,
|
||||
maxCharsOverride: toolResultMaxChars,
|
||||
agentId: sessionAgentId,
|
||||
sessionId: activeSessionId,
|
||||
sessionKey: params.sessionKey,
|
||||
config: params.config,
|
||||
|
||||
@@ -1466,6 +1466,7 @@ export async function runEmbeddedAttempt(
|
||||
runMaintenance: async (contextParams) =>
|
||||
await runContextEngineMaintenance({
|
||||
contextEngine: contextParams.contextEngine as never,
|
||||
sessionAgentId,
|
||||
sessionId: contextParams.sessionId,
|
||||
sessionKey: contextParams.sessionKey,
|
||||
sessionFile: contextParams.sessionFile,
|
||||
@@ -2593,6 +2594,7 @@ export async function runEmbeddedAttempt(
|
||||
sessionManager: activeSessionManager,
|
||||
contextWindowTokens: contextTokenBudget,
|
||||
maxCharsOverride: toolResultMaxChars,
|
||||
agentId: sessionAgentId,
|
||||
sessionFile: params.sessionFile,
|
||||
sessionId: params.sessionId,
|
||||
sessionKey: params.sessionKey,
|
||||
@@ -3135,6 +3137,7 @@ export async function runEmbeddedAttempt(
|
||||
sessionManager,
|
||||
contextWindowTokens: contextTokenBudget,
|
||||
maxCharsOverride: toolResultMaxChars,
|
||||
agentId: sessionAgentId,
|
||||
sessionFile: params.sessionFile,
|
||||
sessionId: params.sessionId,
|
||||
sessionKey: params.sessionKey,
|
||||
@@ -3463,6 +3466,7 @@ export async function runEmbeddedAttempt(
|
||||
runMaintenance: async (contextParams) =>
|
||||
await runContextEngineMaintenance({
|
||||
contextEngine: contextParams.contextEngine as never,
|
||||
sessionAgentId,
|
||||
sessionId: contextParams.sessionId,
|
||||
sessionKey: contextParams.sessionKey,
|
||||
sessionFile: contextParams.sessionFile,
|
||||
|
||||
@@ -617,6 +617,7 @@ function truncateOversizedToolResultsInExistingSessionManager(params: {
|
||||
sessionManager: SessionManager;
|
||||
contextWindowTokens: number;
|
||||
maxCharsOverride?: number;
|
||||
agentId?: string;
|
||||
sessionFile?: string;
|
||||
sessionId?: string;
|
||||
sessionKey?: string;
|
||||
@@ -655,6 +656,8 @@ function truncateOversizedToolResultsInExistingSessionManager(params: {
|
||||
});
|
||||
if (rewriteResult.changed && params.sessionFile) {
|
||||
emitSessionTranscriptUpdate({
|
||||
...(params.agentId ? { agentId: params.agentId } : {}),
|
||||
...(params.sessionId ? { sessionId: params.sessionId } : {}),
|
||||
sessionFile: params.sessionFile,
|
||||
sessionKey: params.sessionKey,
|
||||
});
|
||||
@@ -679,6 +682,7 @@ async function truncateOversizedToolResultsInTranscriptState(params: {
|
||||
sessionFile: string;
|
||||
contextWindowTokens: number;
|
||||
maxCharsOverride?: number;
|
||||
agentId?: string;
|
||||
sessionId?: string;
|
||||
sessionKey?: string;
|
||||
config?: unknown;
|
||||
@@ -722,6 +726,8 @@ async function truncateOversizedToolResultsInTranscriptState(params: {
|
||||
appendedEntries: rewriteResult.appendedEntries,
|
||||
});
|
||||
emitSessionTranscriptUpdate({
|
||||
...(params.agentId ? { agentId: params.agentId } : {}),
|
||||
...(params.sessionId ? { sessionId: params.sessionId } : {}),
|
||||
sessionFile: params.sessionFile,
|
||||
sessionKey: params.sessionKey,
|
||||
});
|
||||
@@ -745,6 +751,7 @@ export function truncateOversizedToolResultsInSessionManager(params: {
|
||||
sessionManager: SessionManager;
|
||||
contextWindowTokens: number;
|
||||
maxCharsOverride?: number;
|
||||
agentId?: string;
|
||||
sessionFile?: string;
|
||||
sessionId?: string;
|
||||
sessionKey?: string;
|
||||
@@ -762,6 +769,7 @@ export async function truncateOversizedToolResultsInSession(params: {
|
||||
sessionFile: string;
|
||||
contextWindowTokens: number;
|
||||
maxCharsOverride?: number;
|
||||
agentId?: string;
|
||||
sessionId?: string;
|
||||
sessionKey?: string;
|
||||
config?: unknown;
|
||||
@@ -774,6 +782,7 @@ export async function truncateOversizedToolResultsInSession(params: {
|
||||
state,
|
||||
contextWindowTokens,
|
||||
maxCharsOverride: params.maxCharsOverride,
|
||||
agentId: params.agentId,
|
||||
sessionFile,
|
||||
sessionId: params.sessionId,
|
||||
sessionKey: params.sessionKey,
|
||||
|
||||
@@ -351,6 +351,7 @@ export function rewriteTranscriptEntriesInState(params: {
|
||||
*/
|
||||
export async function rewriteTranscriptEntriesInSqliteTranscript(params: {
|
||||
transcriptPath: string;
|
||||
agentId?: string;
|
||||
sessionId?: string;
|
||||
sessionKey?: string;
|
||||
request: TranscriptRewriteRequest;
|
||||
@@ -369,6 +370,8 @@ export async function rewriteTranscriptEntriesInSqliteTranscript(params: {
|
||||
appendedEntries: result.appendedEntries,
|
||||
});
|
||||
emitSessionTranscriptUpdate({
|
||||
...(params.agentId ? { agentId: params.agentId } : {}),
|
||||
...(params.sessionId ? { sessionId: params.sessionId } : {}),
|
||||
sessionFile: params.transcriptPath,
|
||||
sessionKey: params.sessionKey,
|
||||
});
|
||||
|
||||
@@ -1016,6 +1016,8 @@ function extractTranscriptUserText(content: unknown): string | undefined {
|
||||
|
||||
async function rewriteChatSendUserTurnMediaPaths(params: {
|
||||
transcriptPath: string;
|
||||
agentId: string;
|
||||
sessionId: string;
|
||||
sessionKey: string;
|
||||
message: string;
|
||||
savedImages: SavedMedia[];
|
||||
@@ -1062,6 +1064,8 @@ async function rewriteChatSendUserTurnMediaPaths(params: {
|
||||
};
|
||||
await rewriteTranscriptEntriesInSqliteTranscript({
|
||||
transcriptPath: params.transcriptPath,
|
||||
agentId: params.agentId,
|
||||
sessionId: params.sessionId,
|
||||
sessionKey: params.sessionKey,
|
||||
config: params.cfg,
|
||||
request: {
|
||||
@@ -2310,6 +2314,8 @@ export const chatHandlers: GatewayRequestHandlers = {
|
||||
transcriptMediaRewriteDone = true;
|
||||
await rewriteChatSendUserTurnMediaPaths({
|
||||
transcriptPath,
|
||||
agentId,
|
||||
sessionId: resolvedSessionId,
|
||||
sessionKey,
|
||||
message: parsedMessage,
|
||||
savedImages: await persistedImagesPromise,
|
||||
|
||||
Reference in New Issue
Block a user