refactor: extract shared turn queue runtime (#991)

This commit is contained in:
Charles Packer
2026-02-17 12:58:33 -08:00
committed by GitHub
parent 44d4cc87c1
commit 3728d1ec0c
4 changed files with 148 additions and 57 deletions

View File

@@ -1,4 +1,5 @@
import type { MessageCreate } from "@letta-ai/letta-client/resources/agents/agents";
import { mergeQueuedTurnInput } from "../../queue/turnQueueRuntime";
import type { QueuedMessage } from "./messageQueueBridge";
import { buildMessageContentFromDisplay } from "./pasteRegistry";
import { extractTaskNotificationsForDisplay } from "./taskNotifications";
@@ -18,21 +19,20 @@ export function getQueuedNotificationSummaries(
export function buildQueuedContentParts(
queued: QueuedMessage[],
): MessageCreate["content"] {
const parts: MessageCreate["content"] = [];
let isFirst = true;
for (const item of queued) {
if (!isFirst) {
parts.push({ type: "text", text: "\n" });
}
isFirst = false;
if (item.kind === "task_notification") {
parts.push({ type: "text", text: item.text });
continue;
}
const userParts = buildMessageContentFromDisplay(item.text);
parts.push(...userParts);
const queueInput = queued.map((item) =>
item.kind === "task_notification"
? ({ kind: "task_notification", text: item.text } as const)
: ({ kind: "user", content: item.text } as const),
);
const merged = mergeQueuedTurnInput(queueInput, {
normalizeUserContent: buildMessageContentFromDisplay,
});
if (merged === null) {
return [];
}
return parts;
return merged;
}
export function buildQueuedUserText(queued: QueuedMessage[]): string {