MCPcopy Create free account
hub / github.com/Zoo-Code-Org/Zoo-Code / downloadTask

Function downloadTask

src/integrations/misc/export-markdown.ts:36–68  ·  view source on GitHub ↗
(
	dateTs: number,
	conversationHistory: Anthropic.MessageParam[],
	defaultUri: vscode.Uri,
)

Source from the content-addressed store, hash-verified

34}
35
36export async function downloadTask(
37 dateTs: number,
38 conversationHistory: Anthropic.MessageParam[],
39 defaultUri: vscode.Uri,
40): Promise<vscode.Uri | undefined> {
41 // File name
42 const fileName = getTaskFileName(dateTs)
43
44 // Generate markdown
45 const markdownContent = conversationHistory
46 .map((message) => {
47 const role = message.role === "user" ? "**User:**" : "**Assistant:**"
48 const content = Array.isArray(message.content)
49 ? message.content.map((block) => formatContentBlockToMarkdown(block as ExtendedContentBlock)).join("\n")
50 : message.content
51 return `${role}\n\n${content}\n\n`
52 })
53 .join("---\n\n")
54
55 // Prompt user for save location
56 const saveUri = await vscode.window.showSaveDialog({
57 filters: { Markdown: ["md"] },
58 defaultUri,
59 })
60
61 if (saveUri) {
62 // Write content to the selected location
63 await vscode.workspace.fs.writeFile(saveUri, Buffer.from(markdownContent))
64 vscode.window.showTextDocument(saveUri, { preview: true })
65 return saveUri
66 }
67 return undefined
68}
69
70export function formatContentBlockToMarkdown(block: ExtendedContentBlock): string {
71 switch (block.type) {

Callers 1

exportTaskWithIdMethod · 0.90

Calls 5

getTaskFileNameFunction · 0.85
writeFileMethod · 0.80
fromMethod · 0.80
showTextDocumentMethod · 0.80

Tested by

no test coverage detected