Files

38 lines
1.3 KiB
TypeScript
Raw Permalink Normal View History

2026-01-06 21:31:04 +02:00
import type { VSCodeAPI } from '@openchamber/ui/lib/api/types';
import { executeVSCodeCommand, openVSCodeExternalUrl, sendBridgeMessage } from './bridge';
2026-01-03 22:11:16 +01:00
export const createVSCodeActionsAPI = (): VSCodeAPI => ({
async executeCommand(command: string, ...args: unknown[]): Promise<unknown> {
const result = await executeVSCodeCommand(command, args);
return result.result;
},
async openAgentManager(): Promise<void> {
await executeVSCodeCommand('openchamber.openAgentManager');
},
2026-03-20 19:22:43 +02:00
async openExternalUrl(url: string): Promise<void> {
await openVSCodeExternalUrl(url);
},
async addWorkspaceFolder(path: string): Promise<Array<{ name: string; path: string }>> {
const result = await sendBridgeMessage<{ workspaceFolders: Array<{ name: string; path: string }> }>(
'api:workspace:addFolder',
{ path },
);
return Array.isArray(result?.workspaceFolders) ? result.workspaceFolders : [];
},
2026-07-22 11:33:22 +03:00
async pickFiles(options): Promise<unknown> {
return sendBridgeMessage('api:files/pick', options);
},
async saveImage(payload: unknown): Promise<unknown> {
return sendBridgeMessage('api:files/save-image', payload);
},
async saveMarkdown(payload: unknown): Promise<unknown> {
return sendBridgeMessage('api:files/save-markdown', payload);
},
2026-01-03 22:11:16 +01:00
});