Download frontend/src/core/artifacts/loader.ts from yonagush/deerflow: direct link, hf CLI and curl.
- Browser
- Download file 1.21 kB
-
https://huggingface.co/spaces/yonagush/deerflow/resolve/main/frontend/src/core/artifacts/loader.ts
- Command line
-
hf download hf://spaces/yonagush/deerflow/frontend/src/core/artifacts/loader.ts
-
curl -L -o loader.ts https://huggingface.co/spaces/yonagush/deerflow/resolve/main/frontend/src/core/artifacts/loader.ts
1.21 kB
| 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; | |
| } | |
| } | |
| } | |
| } | |