JSPM

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

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

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