solver-sdk
Version:
SDK для интеграции с Code Solver Backend API (совместимо с браузером и Node.js), с поддержкой функциональности мышления (Thinking Mode)
270 lines • 11 kB
TypeScript
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