| import type { UseStream } from "@langchain/langgraph-sdk/react"; |
|
|
| import type { AgentThreadState } from "../threads"; |
|
|
| import { urlOfArtifact } from "./utils"; |
|
|
| export async function loadArtifactContent({ |
| filepath, |
| threadId, |
| }: { |
| filepath: string; |
| threadId: string; |
| }) { |
| let enhancedFilepath = filepath; |
| if (filepath.endsWith(".skill")) { |
| enhancedFilepath = filepath + "/SKILL.md"; |
| } |
| const url = urlOfArtifact({ filepath: enhancedFilepath, threadId }); |
| const response = await fetch(url); |
| const text = await response.text(); |
| return text; |
| } |
|
|
| export function loadArtifactContentFromToolCall({ |
| url: urlString, |
| thread, |
| }: { |
| url: string; |
| thread: UseStream<AgentThreadState>; |
| }) { |
| const url = new URL(urlString); |
| const toolCallId = url.searchParams.get("tool_call_id"); |
| const messageId = url.searchParams.get("message_id"); |
| if (messageId && toolCallId) { |
| const message = thread.messages.find((message) => message.id === messageId); |
| if (message?.type === "ai" && message.tool_calls) { |
| const toolCall = message.tool_calls.find( |
| (toolCall) => toolCall.id === toolCallId, |
| ); |
| if (toolCall) { |
| return toolCall.args.content; |
| } |
| } |
| } |
| } |
|
|