2026-01-06 21:31:04 +02:00
|
|
|
import type { VSCodeAPI } from '@openchamber/ui/lib/api/types';
|
2026-06-02 00:43:05 +03:00
|
|
|
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);
|
|
|
|
|
},
|
2026-06-02 00:43:05 +03:00
|
|
|
|
2026-08-19 10:38:53 +11:00
|
|
|
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);
|
2026-06-02 00:43:05 +03:00
|
|
|
},
|
|
|
|
|
|
|
|
|
|
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
|
|
|
});
|