Files
agent-radar 2ed3415fb7
Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
2026-09-01 20:17:27 +08:00

45 lines
1.4 KiB
TypeScript

import type { AgentPromptContentBlock } from "../../../shared/contracts/dto";
import type { AgentComposerDraftImage } from "./agentGuiNodeTypes";
export type AgentPromptImageContentBlock = AgentPromptContentBlock & {
type: "image";
mimeType: "image/png" | "image/jpeg" | "image/webp";
attachmentId?: string;
data?: string;
path?: string;
};
export function formatAgentComposerDraftBytes(sizeBytes: number): string {
if (sizeBytes < 1024) {
return `${sizeBytes} B`;
}
const kib = sizeBytes / 1024;
if (kib < 1024) {
return `${kib.toFixed(kib >= 10 ? 0 : 1)} KB`;
}
const mib = kib / 1024;
return `${mib.toFixed(mib >= 10 ? 0 : 1)} MB`;
}
export function agentPromptImageBlockToDraftImage(
image: AgentPromptImageContentBlock,
idPrefix: string,
index: number
): AgentComposerDraftImage {
return {
id: `${idPrefix}:image:${index}`,
name: image.name?.trim() || `image-${index + 1}`,
mimeType: image.mimeType,
...(image.attachmentId ? { attachmentId: image.attachmentId } : {}),
...(image.data ? { data: image.data } : {}),
...(image.url ? { url: image.url } : {}),
...(image.path ? { path: image.path } : {}),
previewUrl:
typeof image.data === "string" && image.data
? image.data.startsWith("data:")
? image.data
: `data:${image.mimeType};base64,${image.data}`
: (image.url ?? "")
};
}