@convex-dev/agent
Version:
A agent component for Convex.
67 lines • 2.29 kB
JavaScript
export const DEFAULT_RECENT_MESSAGES = 100;
export function isTool(message) {
return (message.role === "tool" ||
(message.role === "assistant" &&
Array.isArray(message.content) &&
message.content.some((c) => c.type === "tool-call")));
}
export function extractText(message) {
switch (message.role) {
case "user":
if (typeof message.content === "string") {
return message.content;
}
return message.content
.filter((c) => c.type === "text")
.map((c) => c.text)
.join("");
case "assistant":
if (typeof message.content === "string") {
return message.content;
}
else {
const textParts = message.content.filter((c) => c.type === "text");
if (!textParts.length) {
return undefined;
}
return textParts.map((c) => c.text).join("");
}
case "system":
return message.content;
// we don't extract text from tool messages
}
return undefined;
}
export function extractReasoning(message) {
if (typeof message.content === "string") {
return undefined;
}
return message.content
.filter((c) => c.type === "reasoning")
.map((c) => c.text)
.join("");
}
export const DEFAULT_MESSAGE_RANGE = { before: 2, after: 1 };
export function sorted(messages, order = "asc") {
return [...messages].sort(order === "asc"
? (a, b) => a.order - b.order || a.stepOrder - b.stepOrder
: (a, b) => b.order - a.order || b.stepOrder - a.stepOrder);
}
export function getModelName(embeddingModel) {
if (typeof embeddingModel === "string") {
if (embeddingModel.includes("/")) {
return embeddingModel.split("/").slice(1).join("/");
}
return embeddingModel;
}
return "modelId" in embeddingModel
? embeddingModel.modelId
: embeddingModel.model;
}
export function getProviderName(embeddingModel) {
if (typeof embeddingModel === "string") {
return embeddingModel.split("/").at(0);
}
return embeddingModel.provider;
}
//# sourceMappingURL=shared.js.map