Package Exports
- solver-sdk
Readme
Code Solver SDK
SDK для интеграции с Code Solver Backend API. Поддерживает работу как в браузере, так и в Node.js.
Возможности
- Совместимость с ESM и CommonJS
- Поддержка браузера и Node.js
- Типизация TypeScript
- WebSocket для реалтайм функций
- Поддержка Server-Sent Events (SSE)
- Обработка ошибок и повторные попытки
- Полная документация API
Установка
# Используя npm
npm install code-solver-sdk
# Используя yarn
yarn add code-solver-sdk
# Используя pnpm
pnpm add code-solver-sdkИспользование
В браузере с ESM (современные браузеры)
<script type="module">
import { CodeSolverSDK } from 'https://cdn.jsdelivr.net/npm/code-solver-sdk/dist/esm/index.js';
const sdk = new CodeSolverSDK({
baseURL: 'https://api.example.com',
apiKey: 'your-api-key'
});
// Использование SDK...
const projects = await sdk.projects.getAllProjects();
console.log(projects);
</script>В браузере через тег script (UMD)
<script src="https://cdn.jsdelivr.net/npm/code-solver-sdk/dist/umd/code-solver-sdk.min.js"></script>
<script>
const sdk = new CodeSolverSDK.default({
baseURL: 'https://api.example.com',
apiKey: 'your-api-key'
});
// Использование SDK...
sdk.projects.getAllProjects()
.then(projects => console.log(projects))
.catch(error => console.error(error));
</script>В Node.js с CommonJS
const { CodeSolverSDK } = require('code-solver-sdk');
const sdk = new CodeSolverSDK({
baseURL: 'https://api.example.com',
apiKey: 'your-api-key'
});
// Использование SDK...
async function main() {
const projects = await sdk.projects.getAllProjects();
console.log(projects);
}
main().catch(console.error);В Node.js с ESM
import { CodeSolverSDK } from 'code-solver-sdk';
const sdk = new CodeSolverSDK({
baseURL: 'https://api.example.com',
apiKey: 'your-api-key'
});
// Использование SDK...
async function main() {
const projects = await sdk.projects.getAllProjects();
console.log(projects);
}
main().catch(console.error);В VS Code Web (браузерная версия)
import { CodeSolverSDK } from 'code-solver-sdk';
export function activate(context) {
const sdk = new CodeSolverSDK({
baseURL: 'https://api.example.com',
apiKey: 'your-api-key',
mode: 'browser' // Явно указываем режим браузера
});
// Использование SDK в расширении VS Code Web
// ...
}Примеры
Работа с проектами
// Получение списка проектов
const projects = await sdk.projects.getAllProjects();
console.log('Проекты:', projects);
// Создание нового проекта
const newProject = await sdk.projects.createProject('Мой проект', '/path/to/project');
console.log('Новый проект:', newProject);
// Запуск индексации
await sdk.projects.indexProject(newProject.id);Поиск кода
// Поиск кода
const searchResults = await sdk.search.searchCode(projectId, {
query: 'function example',
limit: 10
});
console.log('Результаты поиска:', searchResults);
// Семантический поиск кода
const semanticResults = await sdk.search.semanticSearch(projectId, {
query: 'функция для обработки HTTP запросов',
limit: 10
});
console.log('Семантические результаты:', semanticResults);Работа с рассуждениями через WebSocket
// Создание рассуждения
const reasoning = await sdk.reasoning.createReasoning({
projectId: projectId,
query: 'Объясни, как работает этот проект'
});
// Запуск процесса рассуждения
await sdk.reasoning.startReasoning(reasoning.id);
// Подключение через WebSocket
const wsClient = sdk.getWebSocketClient();
await wsClient.connectToReasoning(reasoning.id);
// Обработка событий
wsClient.on('thinking', (data) => {
console.log('Размышление:', data.content);
});
wsClient.on('complete', (data) => {
console.log('Завершено:', data.content);
wsClient.disconnectAll();
});Тестирование и совместимость
SDK тщательно тестируется в различных средах:
# Запуск всех тестов
npm test
# Тесты браузерной совместимости
npm run test:browser
# Тесты Node.js совместимости
npm run test:node
# Тесты VS Code Web совместимости
npm run test:vscode
# Проверка покрытия кода тестами
npm run test:coverageПоддерживаемые среды
SDK протестирован и работает в следующих средах:
- Браузеры: Chrome 80+, Firefox 72+, Safari 14+, Edge 80+
- Node.js: Версии 14.x и выше (как CommonJS, так и ESM)
- VS Code: Desktop и Web версии
Решение проблем совместимости
Если у вас возникли проблемы с совместимостью, обратитесь к разделу "Устранение неполадок" в файле INTEGRATION.md.
Сборка из исходного кода
Для сборки SDK из исходного кода:
# Установка зависимостей
npm install
# Сборка SDK
npm run build
# Очистка директории сборки
npm run cleanОпции SDK
SDK поддерживает следующие опции при инициализации:
| Опция | Тип | Описание | Обязательна |
|---|---|---|---|
baseURL |
string | Базовый URL API | Да |
apiKey |
string | API ключ для авторизации | Нет |
timeout |
number | Таймаут для HTTP запросов (мс) | Нет |
headers |
object | Пользовательские HTTP заголовки | Нет |
httpsAgent |
object | Опции для HTTPS агента (Node.js) | Нет |
mode |
string | Режим работы SDK ('browser', 'node', 'auto') | Нет |
Документация API
Полная документация API доступна в папке docs/.
Лицензия
MIT