import { invoke } from "@tauri-apps/api/core"; import type { Project, ContainerInfo, SiblingContainer } from "./types"; // Docker export const checkDocker = () => invoke("check_docker"); export const checkImageExists = () => invoke("check_image_exists"); export const buildImage = () => invoke("build_image"); export const getContainerInfo = (projectId: string) => invoke("get_container_info", { projectId }); export const listSiblingContainers = () => invoke("list_sibling_containers"); // Projects export const listProjects = () => invoke("list_projects"); export const addProject = (name: string, path: string) => invoke("add_project", { name, path }); export const removeProject = (projectId: string) => invoke("remove_project", { projectId }); export const updateProject = (project: Project) => invoke("update_project", { project }); export const startProjectContainer = (projectId: string) => invoke("start_project_container", { projectId }); export const stopProjectContainer = (projectId: string) => invoke("stop_project_container", { projectId }); export const rebuildProjectContainer = (projectId: string) => invoke("rebuild_project_container", { projectId }); // Settings export const setApiKey = (key: string) => invoke("set_api_key", { key }); export const hasApiKey = () => invoke("has_api_key"); export const deleteApiKey = () => invoke("delete_api_key"); // Terminal export const openTerminalSession = (projectId: string, sessionId: string) => invoke("open_terminal_session", { projectId, sessionId }); export const terminalInput = (sessionId: string, data: number[]) => invoke("terminal_input", { sessionId, data }); export const terminalResize = (sessionId: string, cols: number, rows: number) => invoke("terminal_resize", { sessionId, cols, rows }); export const closeTerminalSession = (sessionId: string) => invoke("close_terminal_session", { sessionId });