import { buildHistoryContextFromEntries, type HistoryEntry } from "../auto-reply/reply/history.js"; import { extractTextFromChatContent } from "../shared/chat-content.js";
/** *Coercebodytostring.Handlescaseswherebodyisacontentarray *(e.g.[{type:"text",text:"hello"}])thatwouldserializeas *[objectObject]ifuseddirectlyinatemplateliteral.
*/ function safeBody(body: unknown): string { if (typeof body === "string") { return body;
} return extractTextFromChatContent(body) ?? "";
}
export function buildAgentMessageFromConversationEntries(entries: ConversationEntry[]): string { if (entries.length === 0) { return"";
}
// Prefer the last user/tool entry as "current message" so the agent responds to // the latest user input or tool output, not the assistant's previous message.
let currentIndex = -1; for (let i = entries.length - 1; i >= 0; i -= 1) { const role = entries[i]?.role; if (role === "user" || role === "tool") {
currentIndex = i; break;
}
} if (currentIndex < 0) {
currentIndex = entries.length - 1;
}
const currentEntry = entries[currentIndex]?.entry; if (!currentEntry) { return"";
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.