UNPKG

solver-sdk

Version:

SDK for WorkAI API - AI-powered code analysis with WorkCoins billing system

73 lines 3.34 kB
/** * 🛑 Миксин для добавления методов отмены в ChatApi */ export class ChatCancelMethods { constructor(httpClient) { this.httpClient = httpClient; } /** * 🛑 Отменяет активный чат-запрос * @param requestId ID запроса для отмены * @param reason Причина отмены (опционально) * @returns Результат отмены */ async cancelRequest(requestId, reason = 'user_cancel') { if (!requestId) { throw new Error('RequestId обязателен для отмены'); } try { const response = await this.httpClient.delete(`/api/v1/chat/cancel/${requestId}`, { reason }); return response; } catch (error) { throw new Error(`Ошибка отмены запроса ${requestId}: ${error instanceof Error ? error.message : String(error)}`); } } /** * 📊 Получает статистику активных потоков * @returns Статистика активных чат-потоков */ async getStreamsStats() { try { const response = await this.httpClient.post('/api/v1/chat/streams/stats'); return response; } catch (error) { throw new Error(`Ошибка получения статистики потоков: ${error instanceof Error ? error.message : String(error)}`); } } /** * 🧹 Очищает зависшие потоки * @param timeoutMs Таймаут для определения зависших потоков (по умолчанию 5 минут) * @returns Результат очистки */ async cleanupStaleStreams(timeoutMs = 300000) { try { const response = await this.httpClient.post('/api/v1/chat/streams/cleanup', { timeoutMs }); return response; } catch (error) { throw new Error(`Ошибка очистки зависших потоков: ${error instanceof Error ? error.message : String(error)}`); } } /** * 👤 Отменяет все активные потоки текущего пользователя * @param reason Причина отмены * @returns Количество отмененных потоков */ async cancelUserStreams(reason = 'user_action') { try { // Получаем статистику чтобы найти активные потоки пользователя const stats = await this.getStreamsStats(); // TODO: Нужно реализовать endpoint для отмены всех потоков пользователя // или получить список requestId для текущего пользователя throw new Error('Метод cancelUserStreams требует дополнительного API endpoint'); } catch (error) { throw new Error(`Ошибка отмены потоков пользователя: ${error instanceof Error ? error.message : String(error)}`); } } } //# sourceMappingURL=cancel-methods.js.map