UNPKG

solver-sdk

Version:

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

304 lines (206 loc) 7.14 kB
# API Reference В этом документе описаны основные классы и методы SDK. ## Содержание - [CodeSolverSDK](#codesolversdk) - [ChatApi](#chatapi) - [ProjectsApi](#projectsapi) - [SearchApi](#searchapi) - [ReasoningApi](#reasoningapi) ## CodeSolverSDK Основной класс SDK, предоставляющий доступ ко всем API. ### Конструктор ```javascript const sdk = new CodeSolverSDK(options); ``` ### Параметры | Параметр | Тип | Описание | Обязательно | |----------|-----|----------|-------------| | `baseURL` | string | Базовый URL API | Да | | `apiKey` | string | API ключ для авторизации | Нет | | `wsURL` | string | URL для WebSocket соединений (если отличается от baseURL) | Нет | | `timeout` | number | Таймаут для HTTP запросов (мс) | Нет | | `headers` | object | Дополнительные HTTP заголовки | Нет | | `websocket` | object | Настройки WebSocket соединений | Нет | | `mode` | string | Режим работы SDK ('browser', 'node', 'auto') | Нет | ### Методы #### `checkHealth()` Проверяет доступность API сервера. ```javascript const isHealthy = await sdk.checkHealth(); ``` #### `connect()` Подключается ко всем WebSocket сервисам одновременно. ```javascript await sdk.connect(); ``` #### `disconnect()` Отключается от всех WebSocket серверов. ```javascript await sdk.disconnect(); ``` #### `dispose()` Освобождает ресурсы, включая WebSocket соединения. ```javascript sdk.dispose(); ``` #### `setApiKey(apiKey)` Устанавливает новый API ключ для SDK. ```javascript sdk.setApiKey('новый-api-ключ'); ``` ## ChatApi API для работы с чатом и AI-моделями. ### Методы #### `chat(messages, options)` Отправляет запрос чата и возвращает полный ответ. ```javascript const response = await sdk.chat.chat([ { role: 'user', content: 'Привет, как дела?' } ], { model: 'claude-3-7-sonnet-20240229' }); ``` #### `streamChat(messages, options, callback)` Отправляет запрос чата и получает ответ в потоковом режиме. ```javascript await sdk.chat.streamChat( [{ role: 'user', content: 'Объясни JavaScript' }], { model: 'claude-3-7-sonnet-20240229' }, (chunk) => console.log(chunk) ); ``` #### `streamChatWithThinking(messages, options, callback)` Отправляет запрос чата с получением промежуточных шагов мышления. ```javascript await sdk.chat.streamChatWithThinking( [{ role: 'user', content: 'Объясни принцип работы реактивного программирования' }], { model: 'claude-3-7-sonnet-20240229', thinking: true }, (eventType, data) => { if (eventType === 'thinking_delta') { console.log('Мышление:', data.thinking); } else if (eventType === 'text_delta') { console.log('Ответ:', data.text); } } ); ``` #### `connectWebSocket()` Подключается к WebSocket для событий чата. ```javascript await sdk.chat.connectWebSocket(); ``` ## ProjectsApi API для работы с проектами. ### Методы #### `createProject(name, path, options)` Создает новый проект. ```javascript const project = await sdk.projects.createProject( 'Мой проект', '/path/to/project', { excludePatterns: ['node_modules', '.git'] } ); ``` #### `getProject(projectId)` Получает информацию о проекте. ```javascript const project = await sdk.projects.getProject('project-id'); ``` #### `getAllProjects()` Получает список всех проектов. ```javascript const projects = await sdk.projects.getAllProjects(); ``` #### `indexProject(projectId, options)` Запускает индексацию проекта. ```javascript await sdk.projects.indexProject('project-id', { indexingMode: 'full' // или 'incremental', 'auto' }); ``` #### `connectWebSocket()` Подключается к WebSocket для отслеживания индексации. ```javascript await sdk.projects.connectWebSocket(); ``` #### `disconnectWebSocket()` Отключается от WebSocket индексации. ```javascript await sdk.projects.disconnectWebSocket(); ``` #### `on(event, callback)` Добавляет обработчик события для индексации. ```javascript sdk.projects.on('indexing_progress', (data) => { console.log(`Прогресс: ${data.progress}%`); }); ``` #### `stopIndexing(projectId)` Останавливает индексацию проекта. ```javascript await sdk.projects.stopIndexing('project-id'); ``` #### `getIndexingStatus(projectId)` Получает статус индексации проекта. ```javascript const status = await sdk.projects.getIndexingStatus('project-id'); ``` ## SearchApi API для поиска кода. ### Методы #### `searchCode(projectId, options)` Выполняет поиск кода в проекте. ```javascript const results = await sdk.search.searchCode('project-id', { query: 'function example', limit: 10 }); ``` #### `semanticSearch(projectId, options)` Выполняет семантический поиск в проекте. ```javascript const results = await sdk.search.semanticSearch('project-id', { query: 'функция для обработки HTTP запросов', limit: 10, includeContent: true }); ``` ## ReasoningApi API для работы с рассуждениями. ### Методы #### `createReasoning(options)` Создаёт новое рассуждение. ```javascript const reasoning = await sdk.reasoning.createReasoning({ projectId: 'project-id', query: 'Объясни этот проект' }); ``` #### `getReasoning(reasoningId)` Получает информацию о рассуждении. ```javascript const reasoning = await sdk.reasoning.getReasoning('reasoning-id'); ``` #### `connectWebSocket(reasoningId)` Подключается к WebSocket для отслеживания рассуждений. ```javascript await sdk.reasoning.connectWebSocket('reasoning-id'); ``` #### `startReasoning(reasoningId)` Запускает процесс рассуждения. ```javascript await sdk.reasoning.startReasoning('reasoning-id'); ``` #### `on(event, callback)` Добавляет обработчик события для рассуждений. ```javascript sdk.reasoning.on('thinking', (data) => { console.log('Мышление:', data.content); }); sdk.reasoning.on('complete', (data) => { console.log('Результат:', data.content); }); ```