2025-04-02 14:03:40 +08:00
|
|
|
import { invoke } from "@tauri-apps/api/core";
|
2025-03-25 20:57:46 +08:00
|
|
|
|
2025-04-02 14:03:40 +08:00
|
|
|
import {
|
|
|
|
|
ServerTokenResponse,
|
|
|
|
|
Server,
|
|
|
|
|
Connector,
|
|
|
|
|
DataSource,
|
|
|
|
|
GetResponse,
|
2025-04-02 14:45:39 +08:00
|
|
|
UploadAttachmentPayload,
|
|
|
|
|
UploadAttachmentResponse,
|
|
|
|
|
GetAttachmentPayload,
|
|
|
|
|
GetAttachmentResponse,
|
|
|
|
|
DeleteAttachmentPayload,
|
|
|
|
|
TranscriptionPayload,
|
|
|
|
|
TranscriptionResponse,
|
2025-04-02 14:03:40 +08:00
|
|
|
} from "@/types/commands";
|
2025-03-25 20:57:46 +08:00
|
|
|
|
|
|
|
|
export function get_server_token(id: string): Promise<ServerTokenResponse> {
|
|
|
|
|
return invoke(`get_server_token`, { id });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function list_coco_servers(): Promise<Server[]> {
|
|
|
|
|
return invoke(`list_coco_servers`);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function add_coco_server(endpoint: string): Promise<Server> {
|
|
|
|
|
return invoke(`add_coco_server`, { endpoint });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function enable_server(id: string): Promise<void> {
|
|
|
|
|
return invoke(`enable_server`, { id });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function disable_server(id: string): Promise<void> {
|
|
|
|
|
return invoke(`disable_server`, { id });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function remove_coco_server(id: string): Promise<void> {
|
|
|
|
|
return invoke(`remove_coco_server`, { id });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function logout_coco_server(id: string): Promise<void> {
|
|
|
|
|
return invoke(`logout_coco_server`, { id });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function refresh_coco_server_info(id: string): Promise<Server> {
|
|
|
|
|
return invoke(`refresh_coco_server_info`, { id });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function handle_sso_callback({
|
|
|
|
|
serverId,
|
|
|
|
|
requestId,
|
|
|
|
|
code,
|
|
|
|
|
}: {
|
|
|
|
|
serverId: string;
|
|
|
|
|
requestId: string;
|
|
|
|
|
code: string;
|
|
|
|
|
}): Promise<void> {
|
|
|
|
|
return invoke(`handle_sso_callback`, {
|
|
|
|
|
serverId,
|
|
|
|
|
requestId,
|
|
|
|
|
code,
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function get_connectors_by_server(id: string): Promise<Connector[]> {
|
|
|
|
|
return invoke(`get_connectors_by_server`, { id });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function get_datasources_by_server(id: string): Promise<DataSource[]> {
|
|
|
|
|
return invoke(`get_datasources_by_server`, { id });
|
|
|
|
|
}
|
|
|
|
|
|
2025-03-30 19:33:49 +08:00
|
|
|
export function connect_to_server(id: string, clientId: string): Promise<void> {
|
|
|
|
|
return invoke(`connect_to_server`, { id, clientId });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function disconnect(clientId: string): Promise<void> {
|
|
|
|
|
return invoke(`disconnect`, { clientId });
|
2025-03-25 20:57:46 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function chat_history({
|
|
|
|
|
serverId,
|
|
|
|
|
from = 0,
|
|
|
|
|
size = 20,
|
2025-04-02 14:03:40 +08:00
|
|
|
query = "",
|
2025-03-25 20:57:46 +08:00
|
|
|
}: {
|
|
|
|
|
serverId: string;
|
|
|
|
|
from?: number;
|
|
|
|
|
size?: number;
|
2025-04-02 14:03:40 +08:00
|
|
|
query?: string;
|
2025-03-25 20:57:46 +08:00
|
|
|
}): Promise<string> {
|
|
|
|
|
return invoke(`chat_history`, {
|
|
|
|
|
serverId,
|
|
|
|
|
from,
|
|
|
|
|
size,
|
2025-04-02 14:03:40 +08:00
|
|
|
query,
|
2025-03-25 20:57:46 +08:00
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function session_chat_history({
|
|
|
|
|
serverId,
|
|
|
|
|
sessionId,
|
|
|
|
|
from = 0,
|
|
|
|
|
size = 20,
|
|
|
|
|
}: {
|
|
|
|
|
serverId: string;
|
|
|
|
|
sessionId: string;
|
|
|
|
|
from?: number;
|
|
|
|
|
size?: number;
|
|
|
|
|
}): Promise<string> {
|
|
|
|
|
return invoke(`session_chat_history`, {
|
|
|
|
|
serverId,
|
|
|
|
|
sessionId,
|
|
|
|
|
from,
|
|
|
|
|
size,
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function close_session_chat({
|
|
|
|
|
serverId,
|
|
|
|
|
sessionId,
|
|
|
|
|
}: {
|
|
|
|
|
serverId: string;
|
|
|
|
|
sessionId: string;
|
|
|
|
|
}): Promise<string> {
|
|
|
|
|
return invoke(`close_session_chat`, {
|
|
|
|
|
serverId,
|
|
|
|
|
sessionId,
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function open_session_chat({
|
|
|
|
|
serverId,
|
|
|
|
|
sessionId,
|
|
|
|
|
}: {
|
|
|
|
|
serverId: string;
|
|
|
|
|
sessionId: string;
|
|
|
|
|
}): Promise<string> {
|
|
|
|
|
return invoke(`open_session_chat`, {
|
|
|
|
|
serverId,
|
|
|
|
|
sessionId,
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function cancel_session_chat({
|
|
|
|
|
serverId,
|
|
|
|
|
sessionId,
|
|
|
|
|
}: {
|
|
|
|
|
serverId: string;
|
|
|
|
|
sessionId: string;
|
|
|
|
|
}): Promise<string> {
|
|
|
|
|
return invoke(`cancel_session_chat`, {
|
|
|
|
|
serverId,
|
|
|
|
|
sessionId,
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function new_chat({
|
|
|
|
|
serverId,
|
2025-03-30 19:33:49 +08:00
|
|
|
websocketId,
|
2025-03-25 20:57:46 +08:00
|
|
|
message,
|
|
|
|
|
queryParams,
|
|
|
|
|
}: {
|
|
|
|
|
serverId: string;
|
2025-03-30 19:33:49 +08:00
|
|
|
websocketId?: string;
|
2025-03-25 20:57:46 +08:00
|
|
|
message: string;
|
|
|
|
|
queryParams?: Record<string, any>;
|
|
|
|
|
}): Promise<GetResponse> {
|
|
|
|
|
return invoke(`new_chat`, {
|
|
|
|
|
serverId,
|
2025-03-30 19:33:49 +08:00
|
|
|
websocketId,
|
2025-03-25 20:57:46 +08:00
|
|
|
message,
|
|
|
|
|
queryParams,
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function send_message({
|
|
|
|
|
serverId,
|
2025-03-30 19:33:49 +08:00
|
|
|
websocketId,
|
2025-03-25 20:57:46 +08:00
|
|
|
sessionId,
|
|
|
|
|
message,
|
|
|
|
|
queryParams,
|
|
|
|
|
}: {
|
|
|
|
|
serverId: string;
|
2025-03-30 19:33:49 +08:00
|
|
|
websocketId?: string;
|
2025-03-25 20:57:46 +08:00
|
|
|
sessionId: string;
|
|
|
|
|
message: string;
|
|
|
|
|
queryParams?: Record<string, any>;
|
|
|
|
|
}): Promise<string> {
|
|
|
|
|
return invoke(`send_message`, {
|
|
|
|
|
serverId,
|
2025-03-30 19:33:49 +08:00
|
|
|
websocketId,
|
2025-03-25 20:57:46 +08:00
|
|
|
sessionId,
|
|
|
|
|
message,
|
|
|
|
|
queryParams,
|
|
|
|
|
});
|
2025-04-02 14:03:40 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const delete_session_chat = (serverId: string, sessionId: string) => {
|
|
|
|
|
return invoke<boolean>(`delete_session_chat`, { serverId, sessionId });
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const update_session_chat = (payload: {
|
|
|
|
|
serverId: string;
|
|
|
|
|
sessionId: string;
|
|
|
|
|
title?: string;
|
|
|
|
|
context?: {
|
|
|
|
|
attachments?: string[];
|
|
|
|
|
};
|
|
|
|
|
}): Promise<boolean> => {
|
|
|
|
|
return invoke<boolean>("update_session_chat", payload);
|
|
|
|
|
};
|
2025-04-02 14:45:39 +08:00
|
|
|
|
|
|
|
|
export const upload_attachment = async (payload: UploadAttachmentPayload) => {
|
|
|
|
|
const response = await invoke<UploadAttachmentResponse>("upload_attachment", {
|
|
|
|
|
...payload,
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if (response?.acknowledged) {
|
|
|
|
|
return response.attachments;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const get_attachment = (payload: GetAttachmentPayload) => {
|
|
|
|
|
return invoke<GetAttachmentResponse>("get_attachment", { ...payload });
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const delete_attachment = (payload: DeleteAttachmentPayload) => {
|
|
|
|
|
return invoke<boolean>("delete_attachment", { ...payload });
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const transcription = (payload: TranscriptionPayload) => {
|
|
|
|
|
return invoke<TranscriptionResponse>("transcription", { ...payload });
|
|
|
|
|
};
|