/** * @file Artifact 存储服务 * @description 将 Agent 生成的文件 Artifact(图表、数据文件等)持久化到沙箱目录内, * 遵循沙箱隔离原则:所有 I/O 操作限制在沙箱 rootDir 中。 * 提供 HTTP URL 供前端下载/预览。 */ /** * 设置 Artifact URL 前缀 * 上层应用在初始化时调用,例如 BI 项目设置为 '/api/ai-work/artifacts/' */ export declare function setArtifactUrlPrefix(prefix: string): void; /** 获取当前 Artifact URL 前缀 */ export declare function getArtifactUrlPrefix(): string; /** 根据文件扩展名推断 MIME 类型 */ export declare function getMimeType(filename: string): string; /** 判断 MIME 类型是否为可内联预览的图片 */ export declare function isImageMime(mime: string): boolean; /** * 保存 Artifact 文件到沙箱目录内 * * @param sandboxRoot 沙箱根目录(如 data/sandboxes/{sessionId}) * @param sessionId 会话 ID(用于生成唯一 artifactId) * @param filename 原始文件名 * @param content 文件内容(字符串或 Buffer) * @returns 保存结果:artifactId、文件大小、URL */ export declare function saveArtifact(sandboxRoot: string, sessionId: string, filename: string, content: string | Buffer): { artifactId: string; filename: string; mimeType: string; size: number; url: string; dedup?: boolean; }; /** * 保存 Artifact 并通过 PersistenceManager 持久化(异步) * * 与 saveArtifact 的区别: * - saveArtifact: 同步写入沙箱本地目录(快速,执行期间使用) * - saveArtifactPersisted: 异步写入持久化存储(S3/COS/DB/LocalFS),任务完成后归档 * * 持久化后返回的 url 可在多机环境下访问(S3 返回对象存储 URL)。 * * @param sandboxRoot 沙箱根目录 * @param sessionId 会话 ID * @param filename 原始文件名 * @param content 文件内容 * @param artifactType 产物类型标签(用于路由:'report' | 'presentation' | 'document' | 'pdf' | 'data' 等) * @returns 持久化结果 */ export declare function saveArtifactPersisted(sandboxRoot: string, sessionId: string, filename: string, content: string | Buffer, artifactType?: string): Promise<{ artifactId: string; filename: string; mimeType: string; size: number; url: string; uri: string; provider: string; }>; /** * 根据 sessionId + artifactId + filename 解析沙箱内文件路径 * 返回 null 如果文件不存在 * * 也支持解析持久化 URI(local://key)对应的本地文件路径。 */ export declare function resolveArtifactPath(sessionId: string, artifactId: string, filename: string): string | null; //# sourceMappingURL=artifact.service.d.ts.map