UNPKG

solver-sdk

Version:

SDK для интеграции с Code Solver Backend API

270 lines 11 kB
import { HttpClient } from '../utils/http-client.js'; import { AllModelsResponse } from './models-api.js'; import { ProjectsApi } from './projects-api.js'; /** * Параметры для создания рассуждения */ export interface CreateReasoningParams { /** Идентификатор проекта */ projectId: string; /** Запрос для рассуждения */ query: string; /** Контекст для рассуждения (опционально) */ context?: { /** Фрагменты кода */ codeSnippets?: Array<{ /** Путь к файлу */ filePath: string; /** Начальная строка */ startLine: number; /** Конечная строка */ endLine: number; /** Содержимое */ content: string; }>; /** Пользовательские переменные */ variables?: Record<string, any>; }; /** Настройки рассуждения */ settings?: { /** Модель для рассуждения */ model?: string; /** Максимальная длина ответа */ maxResponseLength?: number; /** Температура генерации */ temperature?: number; }; } /** * Рассуждение */ export interface Reasoning { /** Уникальный идентификатор рассуждения */ id: string; /** Идентификатор проекта */ projectId: string; /** Запрос */ query: string; /** Статус рассуждения */ status: 'pending' | 'running' | 'completed' | 'error'; /** Результат рассуждения */ result?: string; /** Дата создания */ createdAt: string; /** Дата завершения */ completedAt?: string; /** Контекст рассуждения */ context?: any; /** Настройки рассуждения */ settings?: any; /** Промежуточные мысли */ thinking?: string[]; /** Сообщение об ошибке (если есть) */ error?: string; } /** * Параметры для получения списка рассуждений */ export interface GetReasoningsParams { /** Идентификатор проекта (опционально) */ projectId?: string; /** Статус рассуждения (опционально) */ status?: 'pending' | 'running' | 'completed' | 'error'; /** Лимит результатов */ limit?: number; /** Смещение для пагинации */ offset?: number; } /** * Шаг мышления в процессе рассуждения */ export interface ThinkingStep { /** ID шага */ id: string; /** Содержимое шага мышления */ content: string; /** Время создания шага */ timestamp: string; /** Тип шага */ type: 'thinking' | 'plan' | 'result' | 'error'; } /** * Опции для создания рассуждения */ export interface ReasoningOptions { /** Идентификатор проекта */ projectId: string; /** Запрос пользователя */ query: string; /** Тип рассуждения */ type?: 'THINKING' | 'PLANNING' | 'DEBUGGING' | 'REFACTORING'; /** Уровень детализации */ level?: 'CONCISE' | 'STANDARD' | 'DETAILED' | 'VERBOSE'; /** Текущий файл */ currentFilePath?: string; /** Выделение в файле */ selection?: { /** Начальная строка */ startLine: number; /** Начальная колонка */ startColumn: number; /** Конечная строка */ endLine: number; /** Конечная колонка */ endColumn: number; /** Выделенный текст */ text: string; }; /** Дополнительные опции */ options?: { /** Провайдер модели */ modelProvider?: string; /** Название модели */ modelName?: string; /** Температура генерации */ temperature?: number; /** Другие настройки модели */ [key: string]: any; /** ID сокета для WebSocket соединения */ socketId?: string; /** Использовать потоковый ответ */ streamResponse?: boolean; /** Автоматически запускать рассуждение */ planningMode?: boolean; /** Включить режим рассуждения */ thinking?: boolean; /** Регион API Anthropic (default: us-east-1) */ region?: 'us-east-1' | 'eu-west-1' | 'ap-southeast-2'; }; } /** * API для работы с рассуждениями */ export declare class ReasoningApi { /** HTTP клиент */ private readonly httpClient; /** API для работы с проектами */ private readonly projectsApi?; /** WebSocket клиент */ private wsClient; /** Родительский SDK */ private parentSdk; /** * Создает новый экземпляр API для работы с рассуждениями * @param {HttpClient} httpClient HTTP клиент * @param {ProjectsApi} projectsApi API для работы с проектами */ constructor(httpClient: HttpClient, projectsApi?: ProjectsApi); /** * Получает список рассуждений * @param {GetReasoningsParams} [params] Параметры для получения списка * @returns {Promise<Reasoning[]>} Список рассуждений */ getReasonings(params?: GetReasoningsParams): Promise<Reasoning[]>; /** * Получает рассуждение по ID * @param {string} reasoningId ID рассуждения * @returns {Promise<Reasoning>} Рассуждение */ getReasoning(reasoningId: string): Promise<Reasoning>; /** * Создает новое рассуждение * @param {ReasoningOptions} options Опции для рассуждения * @returns {Promise<Reasoning>} Созданное рассуждение */ createReasoning(options: ReasoningOptions): Promise<Reasoning>; /** * Создает новое рассуждение с автоматическим переключением между регионами при ошибке перегрузки * @param {ReasoningOptions} options Опции для рассуждения * @returns {Promise<Reasoning>} Созданное рассуждение */ createReasoningWithRegionFailover(options: ReasoningOptions): Promise<Reasoning>; /** * Запускает рассуждение * @param {string} reasoningId ID рассуждения * @returns {Promise<Reasoning>} Обновленное рассуждение */ startReasoning(reasoningId: string): Promise<Reasoning>; /** * Останавливает рассуждение * @param {string} reasoningId ID рассуждения * @returns {Promise<Reasoning>} Обновленное рассуждение */ stopReasoning(reasoningId: string): Promise<Reasoning>; /** * Удаляет рассуждение * @param {string} reasoningId ID рассуждения * @returns {Promise<void>} */ deleteReasoning(reasoningId: string): Promise<void>; /** * Получает ход мыслей рассуждения * @param {string} reasoningId ID рассуждения * @returns {Promise<ThinkingStep[]>} Ход мыслей */ getThinking(reasoningId: string): Promise<ThinkingStep[]>; /** * Получает все рассуждения проекта * @param {string} projectId ID проекта * @returns {Promise<Reasoning[]>} Список рассуждений */ getAllReasonings(projectId: string): Promise<Reasoning[]>; /** * Получает список доступных моделей для рассуждений * @deprecated Используйте sdk.models.getAllModels() вместо этого метода * @returns {Promise<AllModelsResponse>} Список доступных моделей */ getModels(): Promise<AllModelsResponse>; /** * Подключается к WebSocket для событий рассуждений * @returns {Promise<boolean>} Результат подключения */ connectWebSocket(): Promise<boolean>; /** * Отключается от WebSocket для событий рассуждений * @returns {Promise<void>} */ disconnectWebSocket(): Promise<void>; /** * Проверяет, подключен ли WebSocket * @returns {boolean} Состояние подключения */ isWebSocketConnected(): boolean; /** * Устанавливает родительский SDK * @param sdk Родительский SDK */ setParent(sdk: any): void; /** * Подписывается на событие через WebSocket * @param event Название события * @param callback Функция обратного вызова */ on(event: string, callback: Function): void; /** * Отправляет событие через WebSocket * @param event Название события * @param data Данные для отправки */ emitSocketEvent(event: string, data: any): void; /** * Отправляет событие через WebSocket с ожиданием ответа * @param event Имя события * @param data Данные для отправки * @param timeout Таймаут ожидания ответа * @returns {Promise<any>} Ответ от сервера */ sendSocketEventWithResponse(event: string, data: any, timeout?: number): Promise<any>; /** * Присоединяется к конкретному рассуждению через WebSocket * @param reasoningId ID рассуждения * @returns {Promise<any>} Результат операции */ joinReasoning(reasoningId: string): Promise<any>; /** * Покидает конкретное рассуждение через WebSocket * @param reasoningId ID рассуждения */ leaveReasoning(reasoningId: string): void; } //# sourceMappingURL=reasoning-api.d.ts.map