(id: string)
| 73 | |
| 74 | /** Load a workspace's saved state. Returns null if not found. */ |
| 75 | export async function loadWorkspace(id: string): Promise<{ state: Record<string, any>; displayName: string } | null> { |
| 76 | const backend = await _getBackend(); |
| 77 | if (backend === 'ephemeral') { |
| 78 | const entry = await workspaceDB.load(id); |
| 79 | if (!entry?.state) return null; |
| 80 | return { state: entry.state as Record<string, any>, displayName: entry.displayName }; |
| 81 | } |
| 82 | const { data } = await apiRequest(getUrls().SESSION_LOAD, { |
| 83 | method: 'POST', |
| 84 | headers: { 'Content-Type': 'application/json' }, |
| 85 | body: JSON.stringify({ id }), |
| 86 | }); |
| 87 | if (!data.state) return null; |
| 88 | const savedWs = data.state.activeWorkspace; |
| 89 | return { state: data.state, displayName: savedWs?.displayName || id }; |
| 90 | } |
| 91 | |
| 92 | /** Delete a workspace. */ |
| 93 | export async function deleteWorkspace(id: string): Promise<void> { |
no test coverage detected