Anydoc / anydoc parser engine (push) Canceled after 0s
App / Format, vet, test, and build (push) Canceled after 0s
CLI / test (macos-latest / go 1.26) (push) Canceled after 0s
CLI / test (ubuntu-latest / go 1.26) (push) Canceled after 0s
CLI / test (windows-latest / go 1.26) (push) Canceled after 0s
Build and Push Docker Image / build-ui (push) Canceled after 0s
Build and Push Docker Image / build-docreader (push) Canceled after 0s
Build and Push Docker Image / build-sandbox (push) Canceled after 0s
Build and Push Docker Image / build-app (amd64, linux/amd64, ubuntu-latest) (push) Canceled after 0s
Build and Push Docker Image / build-app (arm64, linux/arm64, ubuntu-24.04-arm) (push) Canceled after 0s
DocReader / Python tests and Go client tests (push) Canceled after 0s
Build & Publish (dsh-weknora) / Typecheck, test, pack (push) Canceled after 0s
Build & Publish (dsh-weknora) / End-to-end inside dsh (pinned) (push) Canceled after 0s
Build & Publish (dsh-weknora) / End-to-end inside dsh (latest, advisory) (push) Canceled after 0s
Frontend / Test, type-check, and build (push) Canceled after 0s
Go Lint Cache / warm lint cache (.) (push) Canceled after 0s
Go Lint Cache / warm lint cache (cli) (push) Canceled after 0s
Go Lint Cache / warm lint cache (client) (push) Canceled after 0s
Build & Publish (mcp-server) / Test (Python 3.10) (push) Canceled after 0s
Build & Publish (mcp-server) / Test (Python 3.11) (push) Canceled after 0s
Build & Publish (mcp-server) / Test (Python 3.12) (push) Canceled after 0s
Build & Publish (mcp-server) / Test (Python 3.13) (push) Canceled after 0s
Build and Push Docker Image / merge (push) Canceled after 0s
Build & Publish (dsh-weknora) / Publish to npm (push) Canceled after 0s
Build & Publish (mcp-server) / Build sdist + wheel (push) Canceled after 0s
Build & Publish (mcp-server) / Publish to PyPI (push) Canceled after 0s
58 lines
1.8 KiB
TypeScript
58 lines
1.8 KiB
TypeScript
import { del, get, getDown, postUpload } from '@/utils/request';
|
|
|
|
export type TemporaryAttachmentStatus = 'uploaded' | 'processing' | 'ready' | 'failed';
|
|
|
|
export interface TemporaryAttachment {
|
|
id: string;
|
|
session_id: string;
|
|
file_name: string;
|
|
file_type: string;
|
|
file_size: number;
|
|
mime_type?: string;
|
|
status: TemporaryAttachmentStatus;
|
|
token_count: number;
|
|
chunk_count: number;
|
|
image_refs?: Array<{ original_ref?: string; url: string; mime_type?: string }>;
|
|
error_message?: string;
|
|
expires_at: string;
|
|
}
|
|
|
|
interface AttachmentResponse {
|
|
success: boolean;
|
|
data: TemporaryAttachment;
|
|
}
|
|
|
|
export function uploadTemporaryAttachment(
|
|
sessionId: string,
|
|
file: File,
|
|
agentId?: string,
|
|
agentSourceTenantId?: string,
|
|
parserEngine?: string,
|
|
onProgress?: (percent: number) => void,
|
|
): Promise<AttachmentResponse> {
|
|
const form = new FormData();
|
|
form.append('file', file);
|
|
if (agentId) form.append('agent_id', agentId);
|
|
if (agentSourceTenantId) form.append('agent_source_tenant_id', agentSourceTenantId);
|
|
if (parserEngine) form.append('parser_engine', parserEngine);
|
|
return postUpload(
|
|
`/api/v1/sessions/${sessionId}/attachments`,
|
|
form,
|
|
(event) => {
|
|
if (event.total) onProgress?.(Math.round((event.loaded * 100) / event.total));
|
|
},
|
|
);
|
|
}
|
|
|
|
export function getTemporaryAttachment(sessionId: string, attachmentId: string): Promise<AttachmentResponse> {
|
|
return get(`/api/v1/sessions/${sessionId}/attachments/${attachmentId}`);
|
|
}
|
|
|
|
export function previewTemporaryAttachment(sessionId: string, attachmentId: string): Promise<Blob> {
|
|
return getDown(`/api/v1/sessions/${sessionId}/attachments/${attachmentId}/preview`);
|
|
}
|
|
|
|
export function deleteTemporaryAttachment(sessionId: string, attachmentId: string): Promise<void> {
|
|
return del(`/api/v1/sessions/${sessionId}/attachments/${attachmentId}`);
|
|
}
|