49 lines
1.1 KiB
TypeScript
49 lines
1.1 KiB
TypeScript
import type { Message } from "@langchain/langgraph-sdk";
|
|
|
|
import type { AgentThread } from "./types";
|
|
|
|
export interface ThreadQueryIntentInput {
|
|
pathThreadId?: string | null;
|
|
queryThreadId?: string | null;
|
|
isNewRoute?: boolean;
|
|
}
|
|
|
|
export interface ThreadQueryIntent {
|
|
threadId: string | undefined;
|
|
isNewThread: boolean;
|
|
showWelcomeStyle: boolean;
|
|
}
|
|
|
|
export function pathOfThread(threadId: string) {
|
|
return `/workspace/chats/${threadId}`;
|
|
}
|
|
|
|
function normalizeThreadId(value?: string | null): string | undefined {
|
|
if (!value) {
|
|
return undefined;
|
|
}
|
|
const trimmed = value.trim();
|
|
if (!trimmed || trimmed === "new") {
|
|
return undefined;
|
|
}
|
|
return trimmed;
|
|
}
|
|
|
|
|
|
export function textOfMessage(message: Message) {
|
|
if (typeof message.content === "string") {
|
|
return message.content;
|
|
} else if (Array.isArray(message.content)) {
|
|
for (const part of message.content) {
|
|
if (part.type === "text") {
|
|
return part.text;
|
|
}
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
export function titleOfThread(thread: AgentThread) {
|
|
return thread.values?.title ?? "Untitled";
|
|
}
|