// composables/useKompasActions.ts const availableActions = ref>({}) export function useKompasActions() { const { sendCommandToPython, isReady } = usePythonBridge() const error = ref(null) /** * Загружает список действий с бэкенда */ async function loadActions() { if (!isReady.value) { console.warn('Bridge не готов') return } error.value = null try { // Отправляем команду и ожидаем ответ в новом формате const response = await sendCommandToPython<{ status: 'success' | 'error' data: Record | null error: string | null }>('get_available_actions') if (response.status === 'success' && response.data) { // Преобразуем данные const convertedActions: Record = {} for (const key in response.data) { const { label, allowed_types } = response.data[key] convertedActions[key] = { label, allowedTypes: allowed_types } } availableActions.value = convertedActions } else { throw new Error(response.error || 'Неизвестная ошибка') } } catch (err: any) { console.error('Ошибка при получении действий:', err) error.value = 'Не удалось загрузить список действий' } } return { availableActions, error, loadActions, } }