2026-04-06 18:49:13 +08:00
|
|
|
import { apiDelete, apiGet, apiPost } from './base'
|
2026-03-24 21:48:28 +08:00
|
|
|
|
|
|
|
|
const buildQuery = (params) => {
|
|
|
|
|
const query = new URLSearchParams()
|
|
|
|
|
Object.entries(params).forEach(([key, value]) => {
|
|
|
|
|
if (value !== undefined && value !== null && value !== '') {
|
|
|
|
|
query.set(key, String(value))
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
return query.toString()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const buildViewerQuery = (threadId, path, agentId = null, agentConfigId = null) => {
|
|
|
|
|
return buildQuery({
|
|
|
|
|
thread_id: threadId,
|
|
|
|
|
path,
|
|
|
|
|
agent_id: agentId,
|
|
|
|
|
agent_config_id: agentConfigId
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const getViewerFileSystemTree = (
|
|
|
|
|
threadId,
|
|
|
|
|
path = '/',
|
|
|
|
|
agentId = null,
|
|
|
|
|
agentConfigId = null
|
|
|
|
|
) => {
|
|
|
|
|
const query = buildViewerQuery(threadId, path, agentId, agentConfigId)
|
|
|
|
|
return apiGet(`/api/viewer/filesystem/tree?${query}`)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const getViewerFileContent = (threadId, path, agentId = null, agentConfigId = null) => {
|
|
|
|
|
const query = buildViewerQuery(threadId, path, agentId, agentConfigId)
|
|
|
|
|
return apiGet(`/api/viewer/filesystem/file?${query}`)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const downloadViewerFile = (threadId, path, agentId = null, agentConfigId = null) => {
|
|
|
|
|
const query = buildViewerQuery(threadId, path, agentId, agentConfigId)
|
|
|
|
|
return apiGet(`/api/viewer/filesystem/download?${query}`, {}, true, 'blob')
|
|
|
|
|
}
|
2026-03-31 19:41:08 +08:00
|
|
|
|
|
|
|
|
export const deleteViewerFile = (threadId, path, agentId = null, agentConfigId = null) => {
|
|
|
|
|
const query = buildViewerQuery(threadId, path, agentId, agentConfigId)
|
|
|
|
|
return apiDelete(`/api/viewer/filesystem/file?${query}`)
|
|
|
|
|
}
|
2026-04-06 18:49:13 +08:00
|
|
|
|
|
|
|
|
export const createViewerDirectory = (
|
|
|
|
|
threadId,
|
|
|
|
|
parentPath,
|
|
|
|
|
name,
|
|
|
|
|
agentId = null,
|
|
|
|
|
agentConfigId = null
|
|
|
|
|
) => {
|
|
|
|
|
return apiPost('/api/viewer/filesystem/directory', {
|
|
|
|
|
thread_id: threadId,
|
|
|
|
|
parent_path: parentPath,
|
|
|
|
|
name,
|
|
|
|
|
agent_id: agentId,
|
|
|
|
|
agent_config_id: agentConfigId
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const uploadViewerFile = (
|
|
|
|
|
threadId,
|
|
|
|
|
parentPath,
|
|
|
|
|
file,
|
|
|
|
|
agentId = null,
|
|
|
|
|
agentConfigId = null
|
|
|
|
|
) => {
|
|
|
|
|
const formData = new FormData()
|
|
|
|
|
formData.set('thread_id', threadId)
|
|
|
|
|
formData.set('parent_path', parentPath)
|
|
|
|
|
if (agentId !== undefined && agentId !== null && agentId !== '') {
|
|
|
|
|
formData.set('agent_id', agentId)
|
|
|
|
|
}
|
|
|
|
|
if (agentConfigId !== undefined && agentConfigId !== null && agentConfigId !== '') {
|
|
|
|
|
formData.set('agent_config_id', agentConfigId)
|
|
|
|
|
}
|
|
|
|
|
formData.set('file', file)
|
|
|
|
|
return apiPost('/api/viewer/filesystem/upload', formData)
|
|
|
|
|
}
|