JSPM

  • Created
  • Published
  • Downloads 11
  • Score
    100M100P100Q82304F
  • License MIT

SDK для интеграции с Code Solver Backend API (совместимо с браузером и Node.js)

Package Exports

  • solver-sdk

Readme

Solver SDK

SDK для интеграции с Code Solver Backend API. Поддерживает работу как в браузере, так и в Node.js.

Возможности

  • Совместимость с ESM и CommonJS
  • Поддержка браузера и Node.js
  • Типизация TypeScript
  • WebSocket для реалтайм функций
  • Поддержка Server-Sent Events (SSE)
  • Обработка ошибок и повторные попытки
  • Полная документация API

Установка

npm install solver-sdk

Использование

В среде CommonJS (Node.js)

const { CodeSolverSDK } = require('solver-sdk');

// Создание экземпляра SDK
const sdk = new CodeSolverSDK({
  baseURL: 'https://localhost:3000',
  apiKey: 'your-api-key'
});

// Использование SDK
async function example() {
  // Проверка соединения с сервером
  const isHealthy = await sdk.checkHealth();
  console.log('Сервер доступен:', isHealthy);
  
  // Получение списка моделей
  const models = await sdk.reasoning.getModels();
  console.log('Доступные модели:', models);
}

example().catch(console.error);

В среде ESM (Node.js)

// Вариант 1: Динамический импорт через createRequire
import { createRequire } from 'module';
const require = createRequire(import.meta.url);
const { CodeSolverSDK } = require('solver-sdk');

// Вариант 2: Прямой импорт (если в package.json указан "type": "module")
// import * as sdk from 'solver-sdk';
// const { CodeSolverSDK } = sdk;

// Создание экземпляра SDK
const sdk = new CodeSolverSDK({
  baseURL: 'https://localhost:3000',
  apiKey: 'your-api-key'
});

// Пример использования
async function example() {
  const isHealthy = await sdk.checkHealth();
  console.log('Сервер доступен:', isHealthy);
}

example().catch(console.error);

В браузере

<script src="node_modules/solver-sdk/dist/umd/code-solver-sdk.min.js"></script>
<script>
  // SDK доступен глобально как CodeSolverSDK
  const sdk = new CodeSolverSDK.default({
    baseURL: 'https://localhost:3000',
    apiKey: 'your-api-key'
  });
  
  // Пример использования
  sdk.checkHealth()
    .then(isHealthy => console.log('Сервер доступен:', isHealthy))
    .catch(console.error);
</script>

Примеры

Работа с проектами

// Получение списка проектов
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

API Reference

Основные компоненты

  • CodeSolverSDK - Основной класс SDK
  • ReasoningApi - API для работы с рассуждениями
  • ProjectsApi - API для работы с проектами
  • SearchApi - API для поиска кода
  • AgentsApi - API для работы с агентами
  • ContextApi - API для работы с контекстом кода
  • CodeModificationApi - API для модификации кода

Настройка соединения с сервером

const sdk = new CodeSolverSDK({
  baseURL: 'https://localhost:3000', // URL сервера (обязательный параметр)
  apiKey: 'your-api-key',            // API ключ (если требуется)
  timeout: 30000,                   // Таймаут запросов в миллисекундах
  headers: {                        // Дополнительные HTTP заголовки
    'Custom-Header': 'value'
  }
});

Версия 1.0.5

  • Улучшена совместимость с CommonJS и ESM модулями
  • Добавлена поддержка WebSocket соединений
  • Добавлена встроенная зависимость ws для Node.js