2025-12-13 16:34:17 +02:00
|
|
|
import type { ToolsAPI } from '@openchamber/ui/lib/api/types';
|
2026-06-02 00:43:05 +03:00
|
|
|
import { opencodeClient } from '@openchamber/ui/lib/opencode/client';
|
2025-12-13 16:34:17 +02:00
|
|
|
|
|
|
|
|
export const createVSCodeToolsAPI = (): ToolsAPI => ({
|
|
|
|
|
async getAvailableTools(): Promise<string[]> {
|
2026-06-02 00:43:05 +03:00
|
|
|
const data = await opencodeClient.listToolIds();
|
2025-12-13 16:34:17 +02:00
|
|
|
if (!Array.isArray(data)) {
|
|
|
|
|
throw new Error('Tools API returned invalid data format');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return data
|
|
|
|
|
.filter((tool: unknown): tool is string => typeof tool === 'string' && tool !== 'invalid')
|
|
|
|
|
.sort();
|
|
|
|
|
},
|
|
|
|
|
});
|