fix: make paired evidence loss visible (#202)

This commit is contained in:
Eyejoker
2026-05-31 16:20:09 +09:00
committed by GitHub
parent 6eca648c47
commit 239c7ff1e6
19 changed files with 644 additions and 67 deletions

View File

@@ -60,6 +60,45 @@ function turnOutputsToMessages(
}));
}
function omittedTurnOutputsMessage(args: {
chatJid: string;
omittedCount: number;
firstVisibleOutput?: PairedTurnOutput;
}): NewMessage {
return {
id: `turn-output-omitted-${args.firstVisibleOutput?.task_id ?? 'unknown'}-${args.omittedCount}`,
chat_jid: args.chatJid,
sender: 'system',
sender_name: 'system',
content: `[Earlier paired turn outputs omitted: ${args.omittedCount} older outputs not shown]`,
timestamp:
args.firstVisibleOutput?.created_at ?? '1970-01-01T00:00:00.000Z',
is_bot_message: true as const,
is_from_me: false as const,
};
}
function latestTurnOutputMessagesWithOmissionMarker(
outputs: PairedTurnOutput[],
chatJid: string,
limit: number,
): NewMessage[] {
const latestOutputs = latestTurnOutputs(outputs, limit);
const messages = turnOutputsToMessages(latestOutputs, chatJid);
const omittedCount = outputs.length - latestOutputs.length;
if (omittedCount <= 0) {
return messages;
}
return [
omittedTurnOutputsMessage({
chatJid,
omittedCount,
firstVisibleOutput: latestOutputs[0],
}),
...messages,
];
}
function mergeHumanAndTurnOutputMessages(
chatJid: string,
humanMessages: NewMessage[],
@@ -221,12 +260,10 @@ export function buildArbiterPromptForTask(args: {
args.turnOutputs.length > 0
? [
...taskHumanMessages,
...turnOutputsToMessages(
latestTurnOutputs(
args.turnOutputs,
ARBITER_TURN_OUTPUT_CONTEXT_LIMIT,
),
...latestTurnOutputMessagesWithOmissionMarker(
args.turnOutputs,
args.chatJid,
ARBITER_TURN_OUTPUT_CONTEXT_LIMIT,
),
]
: args.labeledRecentMessages;