Files
CC-Switch/src/lib/api/workspace.ts
T
Jason c380528a27 feat(workspace): make directory paths clickable and rename "Today's Note" to "Add Memory"
Add open_workspace_directory Tauri command to open workspace/memory dirs
in the system file manager. Rename dailyMemory.createToday across all locales.
2026-02-24 09:45:10 +08:00

57 lines
1.6 KiB
TypeScript

import { invoke } from "@tauri-apps/api/core";
export interface DailyMemoryFileInfo {
filename: string;
date: string;
sizeBytes: number;
modifiedAt: number;
preview: string;
}
export interface DailyMemorySearchResult {
filename: string;
date: string;
sizeBytes: number;
modifiedAt: number;
snippet: string;
matchCount: number;
}
export const workspaceApi = {
async readFile(filename: string): Promise<string | null> {
return invoke<string | null>("read_workspace_file", { filename });
},
async writeFile(filename: string, content: string): Promise<void> {
return invoke<void>("write_workspace_file", { filename, content });
},
async listDailyMemoryFiles(): Promise<DailyMemoryFileInfo[]> {
return invoke<DailyMemoryFileInfo[]>("list_daily_memory_files");
},
async readDailyMemoryFile(filename: string): Promise<string | null> {
return invoke<string | null>("read_daily_memory_file", { filename });
},
async writeDailyMemoryFile(filename: string, content: string): Promise<void> {
return invoke<void>("write_daily_memory_file", { filename, content });
},
async deleteDailyMemoryFile(filename: string): Promise<void> {
return invoke<void>("delete_daily_memory_file", { filename });
},
async searchDailyMemoryFiles(
query: string,
): Promise<DailyMemorySearchResult[]> {
return invoke<DailyMemorySearchResult[]>("search_daily_memory_files", {
query,
});
},
async openDirectory(subdir: "workspace" | "memory"): Promise<void> {
await invoke("open_workspace_directory", { subdir });
},
};