solver-sdk 2.8.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +200 -368
- package/dist/cjs/api/chat-api/index.js +23 -49
- package/dist/cjs/api/chat-api/index.js.map +1 -1
- package/dist/cjs/api/chat-api/interfaces.js +1 -0
- package/dist/cjs/api/chat-api/interfaces.js.map +1 -1
- package/dist/cjs/api/context-api.js +6 -1
- package/dist/cjs/api/context-api.js.map +1 -1
- package/dist/cjs/api/models-api.js +43 -60
- package/dist/cjs/api/models-api.js.map +1 -1
- package/dist/cjs/api/projects-api.js +63 -293
- package/dist/cjs/api/projects-api.js.map +1 -1
- package/dist/cjs/api/search-api.js +131 -8
- package/dist/cjs/api/search-api.js.map +1 -1
- package/dist/cjs/code-solver-sdk.js +68 -322
- package/dist/cjs/code-solver-sdk.js.map +1 -1
- package/dist/cjs/index.js +3 -19
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/utils/logger.js +4 -4
- package/dist/cjs/utils/logger.js.map +1 -1
- package/dist/esm/api/chat-api/index.js +22 -48
- package/dist/esm/api/chat-api/index.js.map +1 -1
- package/dist/esm/api/chat-api/interfaces.js +1 -0
- package/dist/esm/api/chat-api/interfaces.js.map +1 -1
- package/dist/esm/api/context-api.js +6 -1
- package/dist/esm/api/context-api.js.map +1 -1
- package/dist/esm/api/models-api.js +43 -60
- package/dist/esm/api/models-api.js.map +1 -1
- package/dist/esm/api/projects-api.js +63 -293
- package/dist/esm/api/projects-api.js.map +1 -1
- package/dist/esm/api/search-api.js +131 -8
- package/dist/esm/api/search-api.js.map +1 -1
- package/dist/esm/code-solver-sdk.js +68 -322
- package/dist/esm/code-solver-sdk.js.map +1 -1
- package/dist/esm/index.js +2 -18
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/utils/logger.js +3 -3
- package/dist/esm/utils/logger.js.map +1 -1
- package/dist/types/api/chat-api/index.d.ts +1 -13
- package/dist/types/api/chat-api/index.d.ts.map +1 -1
- package/dist/types/api/chat-api/interfaces.d.ts +6 -54
- package/dist/types/api/chat-api/interfaces.d.ts.map +1 -1
- package/dist/types/api/chat-api/models.d.ts +3 -26
- package/dist/types/api/chat-api/models.d.ts.map +1 -1
- package/dist/types/api/context-api.d.ts.map +1 -1
- package/dist/types/api/models-api.d.ts +31 -62
- package/dist/types/api/models-api.d.ts.map +1 -1
- package/dist/types/api/projects-api.d.ts +47 -126
- package/dist/types/api/projects-api.d.ts.map +1 -1
- package/dist/types/api/search-api.d.ts +147 -6
- package/dist/types/api/search-api.d.ts.map +1 -1
- package/dist/types/code-solver-sdk.d.ts +36 -86
- package/dist/types/code-solver-sdk.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -14
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/interfaces/sdk-options.d.ts +18 -66
- package/dist/types/interfaces/sdk-options.d.ts.map +1 -1
- package/dist/types/utils/logger.d.ts +3 -3
- package/dist/types/utils/logger.d.ts.map +1 -1
- package/docs/README.md +53 -37
- package/docs/VSCODE_INTEGRATION.md +208 -371
- package/docs/indexing/INDEXING.md +658 -335
- package/package.json +26 -23
- package/dist/cjs/api/agents-api.js +0 -94
- package/dist/cjs/api/agents-api.js.map +0 -1
- package/dist/cjs/api/chat-api/websocket-helpers.js +0 -211
- package/dist/cjs/api/chat-api/websocket-helpers.js.map +0 -1
- package/dist/cjs/api/dependencies-api.js +0 -286
- package/dist/cjs/api/dependencies-api.js.map +0 -1
- package/dist/cjs/constants/websocket-events.constants.js +0 -170
- package/dist/cjs/constants/websocket-events.constants.js.map +0 -1
- package/dist/cjs/constants/websocket-namespaces.constants.js +0 -22
- package/dist/cjs/constants/websocket-namespaces.constants.js.map +0 -1
- package/dist/cjs/interfaces/websocket/callbacks.interfaces.js +0 -3
- package/dist/cjs/interfaces/websocket/callbacks.interfaces.js.map +0 -1
- package/dist/cjs/interfaces/websocket/client-options.interfaces.js +0 -3
- package/dist/cjs/interfaces/websocket/client-options.interfaces.js.map +0 -1
- package/dist/cjs/interfaces/websocket/events.interfaces.js +0 -3
- package/dist/cjs/interfaces/websocket/events.interfaces.js.map +0 -1
- package/dist/cjs/interfaces/websocket/vscode-command.interfaces.js +0 -42
- package/dist/cjs/interfaces/websocket/vscode-command.interfaces.js.map +0 -1
- package/dist/cjs/simple-indexing-client.js +0 -138
- package/dist/cjs/simple-indexing-client.js.map +0 -1
- package/dist/cjs/utils/code-solver-websocket-client.js +0 -497
- package/dist/cjs/utils/code-solver-websocket-client.js.map +0 -1
- package/dist/cjs/utils/connection-state-manager.js +0 -133
- package/dist/cjs/utils/connection-state-manager.js.map +0 -1
- package/dist/cjs/utils/indexing-websocket-client.js +0 -107
- package/dist/cjs/utils/indexing-websocket-client.js.map +0 -1
- package/dist/cjs/utils/session-manager.js +0 -114
- package/dist/cjs/utils/session-manager.js.map +0 -1
- package/dist/cjs/utils/simple-connection-monitor.js +0 -52
- package/dist/cjs/utils/simple-connection-monitor.js.map +0 -1
- package/dist/cjs/utils/websocket-client.js +0 -638
- package/dist/cjs/utils/websocket-client.js.map +0 -1
- package/dist/cjs/ws/base-ws-client.js +0 -280
- package/dist/cjs/ws/base-ws-client.js.map +0 -1
- package/dist/cjs/ws/dependencies-ws-client.js +0 -11
- package/dist/cjs/ws/dependencies-ws-client.js.map +0 -1
- package/dist/cjs/ws/file-editing-ws-client.js +0 -162
- package/dist/cjs/ws/file-editing-ws-client.js.map +0 -1
- package/dist/cjs/ws/filesystem-ws-client.js +0 -305
- package/dist/cjs/ws/filesystem-ws-client.js.map +0 -1
- package/dist/cjs/ws/indexing-ws-client.js +0 -275
- package/dist/cjs/ws/indexing-ws-client.js.map +0 -1
- package/dist/cjs/ws/notifications-ws-client.js +0 -12
- package/dist/cjs/ws/notifications-ws-client.js.map +0 -1
- package/dist/esm/api/agents-api.js +0 -90
- package/dist/esm/api/agents-api.js.map +0 -1
- package/dist/esm/api/chat-api/websocket-helpers.js +0 -205
- package/dist/esm/api/chat-api/websocket-helpers.js.map +0 -1
- package/dist/esm/api/dependencies-api.js +0 -282
- package/dist/esm/api/dependencies-api.js.map +0 -1
- package/dist/esm/constants/websocket-events.constants.js +0 -167
- package/dist/esm/constants/websocket-events.constants.js.map +0 -1
- package/dist/esm/constants/websocket-namespaces.constants.js +0 -19
- package/dist/esm/constants/websocket-namespaces.constants.js.map +0 -1
- package/dist/esm/interfaces/websocket/callbacks.interfaces.js +0 -2
- package/dist/esm/interfaces/websocket/callbacks.interfaces.js.map +0 -1
- package/dist/esm/interfaces/websocket/client-options.interfaces.js +0 -2
- package/dist/esm/interfaces/websocket/client-options.interfaces.js.map +0 -1
- package/dist/esm/interfaces/websocket/events.interfaces.js +0 -2
- package/dist/esm/interfaces/websocket/events.interfaces.js.map +0 -1
- package/dist/esm/interfaces/websocket/vscode-command.interfaces.js +0 -39
- package/dist/esm/interfaces/websocket/vscode-command.interfaces.js.map +0 -1
- package/dist/esm/simple-indexing-client.js +0 -134
- package/dist/esm/simple-indexing-client.js.map +0 -1
- package/dist/esm/utils/code-solver-websocket-client.js +0 -492
- package/dist/esm/utils/code-solver-websocket-client.js.map +0 -1
- package/dist/esm/utils/connection-state-manager.js +0 -129
- package/dist/esm/utils/connection-state-manager.js.map +0 -1
- package/dist/esm/utils/indexing-websocket-client.js +0 -103
- package/dist/esm/utils/indexing-websocket-client.js.map +0 -1
- package/dist/esm/utils/session-manager.js +0 -109
- package/dist/esm/utils/session-manager.js.map +0 -1
- package/dist/esm/utils/simple-connection-monitor.js +0 -48
- package/dist/esm/utils/simple-connection-monitor.js.map +0 -1
- package/dist/esm/utils/websocket-client.js +0 -634
- package/dist/esm/utils/websocket-client.js.map +0 -1
- package/dist/esm/ws/base-ws-client.js +0 -276
- package/dist/esm/ws/base-ws-client.js.map +0 -1
- package/dist/esm/ws/dependencies-ws-client.js +0 -7
- package/dist/esm/ws/dependencies-ws-client.js.map +0 -1
- package/dist/esm/ws/file-editing-ws-client.js +0 -158
- package/dist/esm/ws/file-editing-ws-client.js.map +0 -1
- package/dist/esm/ws/filesystem-ws-client.js +0 -301
- package/dist/esm/ws/filesystem-ws-client.js.map +0 -1
- package/dist/esm/ws/indexing-ws-client.js +0 -271
- package/dist/esm/ws/indexing-ws-client.js.map +0 -1
- package/dist/esm/ws/notifications-ws-client.js +0 -8
- package/dist/esm/ws/notifications-ws-client.js.map +0 -1
- package/dist/types/api/agents-api.d.ts +0 -141
- package/dist/types/api/agents-api.d.ts.map +0 -1
- package/dist/types/api/chat-api/websocket-helpers.d.ts +0 -40
- package/dist/types/api/chat-api/websocket-helpers.d.ts.map +0 -1
- package/dist/types/api/dependencies-api.d.ts +0 -109
- package/dist/types/api/dependencies-api.d.ts.map +0 -1
- package/dist/types/constants/websocket-events.constants.d.ts +0 -144
- package/dist/types/constants/websocket-events.constants.d.ts.map +0 -1
- package/dist/types/constants/websocket-namespaces.constants.d.ts +0 -17
- package/dist/types/constants/websocket-namespaces.constants.d.ts.map +0 -1
- package/dist/types/interfaces/websocket/callbacks.interfaces.d.ts +0 -30
- package/dist/types/interfaces/websocket/callbacks.interfaces.d.ts.map +0 -1
- package/dist/types/interfaces/websocket/client-options.interfaces.d.ts +0 -51
- package/dist/types/interfaces/websocket/client-options.interfaces.d.ts.map +0 -1
- package/dist/types/interfaces/websocket/events.interfaces.d.ts +0 -165
- package/dist/types/interfaces/websocket/events.interfaces.d.ts.map +0 -1
- package/dist/types/interfaces/websocket/vscode-command.interfaces.d.ts +0 -56
- package/dist/types/interfaces/websocket/vscode-command.interfaces.d.ts.map +0 -1
- package/dist/types/simple-indexing-client.d.ts +0 -66
- package/dist/types/simple-indexing-client.d.ts.map +0 -1
- package/dist/types/utils/code-solver-websocket-client.d.ts +0 -144
- package/dist/types/utils/code-solver-websocket-client.d.ts.map +0 -1
- package/dist/types/utils/connection-state-manager.d.ts +0 -94
- package/dist/types/utils/connection-state-manager.d.ts.map +0 -1
- package/dist/types/utils/indexing-websocket-client.d.ts +0 -123
- package/dist/types/utils/indexing-websocket-client.d.ts.map +0 -1
- package/dist/types/utils/session-manager.d.ts +0 -98
- package/dist/types/utils/session-manager.d.ts.map +0 -1
- package/dist/types/utils/simple-connection-monitor.d.ts +0 -26
- package/dist/types/utils/simple-connection-monitor.d.ts.map +0 -1
- package/dist/types/utils/websocket-client.d.ts +0 -233
- package/dist/types/utils/websocket-client.d.ts.map +0 -1
- package/dist/types/ws/base-ws-client.d.ts +0 -119
- package/dist/types/ws/base-ws-client.d.ts.map +0 -1
- package/dist/types/ws/dependencies-ws-client.d.ts +0 -6
- package/dist/types/ws/dependencies-ws-client.d.ts.map +0 -1
- package/dist/types/ws/file-editing-ws-client.d.ts +0 -85
- package/dist/types/ws/file-editing-ws-client.d.ts.map +0 -1
- package/dist/types/ws/filesystem-ws-client.d.ts +0 -201
- package/dist/types/ws/filesystem-ws-client.d.ts.map +0 -1
- package/dist/types/ws/indexing-ws-client.d.ts +0 -94
- package/dist/types/ws/indexing-ws-client.d.ts.map +0 -1
- package/dist/types/ws/notifications-ws-client.d.ts +0 -5
- package/dist/types/ws/notifications-ws-client.d.ts.map +0 -1
- package/docs/ARCHITECTURE.md +0 -268
- package/docs/QUICK_START.md +0 -126
- package/docs/WEBSOCKET.md +0 -472
package/README.md
CHANGED
|
@@ -1,86 +1,20 @@
|
|
|
1
|
-
# Solver SDK
|
|
1
|
+
# Code Solver SDK v3.0
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> **🚀 Версия 3.0 - полный переход на HTTP API**
|
|
4
|
+
> Убрана поддержка WebSocket, все взаимодействие происходит через REST API
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
<p align="center">
|
|
8
|
-
<a href="https://www.npmjs.com/package/solver-sdk"><img src="https://img.shields.io/npm/v/solver-sdk.svg" alt="NPM Version" /></a>
|
|
9
|
-
<a href="https://www.npmjs.com/package/solver-sdk"><img src="https://img.shields.io/npm/dm/solver-sdk.svg" alt="NPM Downloads" /></a>
|
|
10
|
-
<a href="https://github.com/code-solver/browser-sdk/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/solver-sdk.svg" alt="License" /></a>
|
|
11
|
-
</p>
|
|
12
|
-
|
|
13
|
-
## ⚡ Что нового в v2.7.0
|
|
14
|
-
|
|
15
|
-
- 🚀 **VS Code интеграция:** Нативное выполнение команд через HTTP Streaming
|
|
16
|
-
- ⚡ **10x ускорение:** 45ms vs 443ms старая архитектура команд VS Code
|
|
17
|
-
- 🏗️ **Гибридная архитектура:** HTTP Streaming + WebSocket для оптимальной производительности
|
|
18
|
-
- 🎯 **Новые типы:** `VSCodeCommandEvent`, `CommandExecutionResult`, `VSCodeCommands`
|
|
19
|
-
- 🔄 **Двусторонняя связь:** Backend ←→ SDK ←→ Extension
|
|
20
|
-
- 📊 **Real-time feedback:** Мгновенные результаты выполнения команд
|
|
21
|
-
- 🛡️ **Backwards compatible:** Все существующие методы работают без изменений
|
|
22
|
-
|
|
23
|
-
## 📋 Для разработчиков
|
|
24
|
-
|
|
25
|
-
### 🎯 **VS Code Extension разработчики**
|
|
26
|
-
- 📄 **[5-минутный старт](docs/QUICK_START.md)** - минимальный код для работы
|
|
27
|
-
- 📚 **[Полное руководство](docs/VSCODE_INTEGRATION.md)** - детальные примеры и best practices
|
|
28
|
-
|
|
29
|
-
### 🔧 **Backend интеграция**
|
|
30
|
-
- 🏗️ **[Архитектура](docs/ARCHITECTURE.md)** - HTTP vs WebSocket решения
|
|
31
|
-
- 🔌 **[WebSocket API](docs/WEBSOCKET.md)** - события и namespace'ы
|
|
32
|
-
- 🔑 **[Аутентификация](docs/AUTHENTICATION.md)** - настройка API ключей
|
|
33
|
-
|
|
34
|
-
### 📖 **Остальная документация**
|
|
35
|
-
- [Основные возможности](#основные-возможности)
|
|
36
|
-
- [Установка](#установка)
|
|
37
|
-
- [Быстрый старт](#быстрый-старт)
|
|
38
|
-
- [API компоненты](#api)
|
|
39
|
-
- [Примеры использования](#примеры)
|
|
6
|
+
JavaScript/TypeScript SDK для работы с Code Solver API. Предоставляет простой интерфейс для индексации кода, поиска, работы с чатом и анализа зависимостей.
|
|
40
7
|
|
|
41
8
|
## 🎯 Основные возможности
|
|
42
9
|
|
|
43
|
-
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
- `new CodeSolverSDK()` - быстрая инициализация
|
|
52
|
-
- `autoConnect: false` - ручное управление WebSocket
|
|
53
|
-
- Алиасы методов для удобства (`create()`, `start()`, `stop()`)
|
|
54
|
-
|
|
55
|
-
- **🔌 Контролируемые WebSocket**:
|
|
56
|
-
- Ручное подключение только когда нужно
|
|
57
|
-
- Автоматический ping/pong механизм
|
|
58
|
-
- Интеллектуальное переподключение
|
|
59
|
-
- Мониторинг здоровья соединения
|
|
60
|
-
|
|
61
|
-
- **🧠 Потоковое мышление AI**:
|
|
62
|
-
- `streamChat()` с поддержкой Anthropic Claude thinking и VS Code команд
|
|
63
|
-
- Полная поддержка `ContentBlock[]` и `signature` блоков
|
|
64
|
-
- Сохранение криптографических подписей
|
|
65
|
-
- Обработка `signature_delta` событий
|
|
66
|
-
|
|
67
|
-
- **🎯 VS Code Extension интеграция (v2.7.0)**:
|
|
68
|
-
- Нативное выполнение команд через HTTP Streaming
|
|
69
|
-
- 10x ускорение (45ms vs 443ms старая архитектура)
|
|
70
|
-
- Поддержка всех VS Code команд (создание файлов, редактирование, поиск)
|
|
71
|
-
- Real-time feedback и error handling
|
|
72
|
-
|
|
73
|
-
- **🔍 Семантический поиск**:
|
|
74
|
-
- Инкрементальная индексация файлов
|
|
75
|
-
- Семантический поиск по коду
|
|
76
|
-
- Работа с зависимостями проектов
|
|
77
|
-
|
|
78
|
-
- **🌐 Кросс-платформенность**:
|
|
79
|
-
- ESM, CommonJS, браузер, Node.js
|
|
80
|
-
- Полная TypeScript типизация
|
|
81
|
-
- Региональные Anthropic endpoints
|
|
82
|
-
|
|
83
|
-
## Установка
|
|
10
|
+
- **💬 Chat API** - взаимодействие с AI моделями (Claude, GPT)
|
|
11
|
+
- **🔍 Code Search** - семантический поиск по коду
|
|
12
|
+
- **📊 Project Indexing** - индексация и анализ проектов
|
|
13
|
+
- **🕸️ Dependencies** - анализ зависимостей кода
|
|
14
|
+
- **📝 Context API** - получение контекста для AI
|
|
15
|
+
- **🛠️ Code Modification** - модификация кода через AI
|
|
16
|
+
|
|
17
|
+
## 📦 Установка
|
|
84
18
|
|
|
85
19
|
```bash
|
|
86
20
|
npm install solver-sdk
|
|
@@ -88,368 +22,266 @@ npm install solver-sdk
|
|
|
88
22
|
|
|
89
23
|
## 🚀 Быстрый старт
|
|
90
24
|
|
|
91
|
-
### 🎯 **VS Code Extension интеграция** (основной use case)
|
|
92
|
-
|
|
93
25
|
```javascript
|
|
94
|
-
// 📄 Полный код в docs/QUICK_START.md
|
|
95
26
|
import { CodeSolverSDK } from 'solver-sdk';
|
|
96
27
|
|
|
97
|
-
|
|
98
|
-
baseURL: 'http://localhost:3000',
|
|
99
|
-
apiKey: 'your-api-key'
|
|
100
|
-
});
|
|
101
|
-
|
|
102
|
-
// 45ms команды VS Code - 10x ускорение!
|
|
103
|
-
const stream = await sdk.chat.streamChat(messages, {
|
|
104
|
-
onVSCodeCommand: async (command) => {
|
|
105
|
-
return await vscode.commands.executeCommand(command.command, ...command.args);
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
**📚 [Смотрите полный 5-минутный старт](docs/QUICK_START.md)**
|
|
111
|
-
|
|
112
|
-
### ✅ Быстрая инициализация (без проверки API)
|
|
113
|
-
|
|
114
|
-
```javascript
|
|
115
|
-
const { CodeSolverSDK } = require('solver-sdk');
|
|
116
|
-
|
|
117
|
-
// Быстрое создание без валидации
|
|
28
|
+
// Создание SDK
|
|
118
29
|
const sdk = new CodeSolverSDK({
|
|
119
|
-
baseURL: '
|
|
30
|
+
baseURL: 'https://your-api-server.com',
|
|
120
31
|
apiKey: 'your-api-key',
|
|
121
|
-
|
|
32
|
+
timeout: 30000
|
|
122
33
|
});
|
|
123
34
|
|
|
124
|
-
//
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
console.log('✅ Проекты:', projects);
|
|
128
|
-
} catch (error) {
|
|
129
|
-
console.error('❌ Честная ошибка:', error.message);
|
|
130
|
-
// Нет fallback'ов - проблему нужно решать
|
|
131
|
-
}
|
|
132
|
-
```
|
|
35
|
+
// Проверка здоровья API
|
|
36
|
+
const isHealthy = await sdk.checkHealth();
|
|
37
|
+
console.log('API доступен:', isHealthy);
|
|
133
38
|
|
|
134
|
-
|
|
39
|
+
// Создание проекта
|
|
40
|
+
const project = await sdk.projects.createProject({
|
|
41
|
+
name: 'My Project',
|
|
42
|
+
path: '/path/to/project',
|
|
43
|
+
description: 'Описание проекта'
|
|
44
|
+
});
|
|
135
45
|
|
|
136
|
-
|
|
137
|
-
|
|
46
|
+
// Индексация проекта
|
|
47
|
+
const indexingResult = await sdk.indexing.indexProject(
|
|
48
|
+
'/path/to/project',
|
|
49
|
+
'My Project'
|
|
50
|
+
);
|
|
138
51
|
|
|
139
|
-
//
|
|
140
|
-
const
|
|
141
|
-
baseURL: 'https://localhost:3000',
|
|
142
|
-
apiKey: 'your-api-key'
|
|
143
|
-
});
|
|
52
|
+
// Ожидание завершения индексации
|
|
53
|
+
const finalStatus = await sdk.indexing.waitForCompletion(indexingResult.projectId);
|
|
144
54
|
|
|
145
|
-
//
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
55
|
+
// Поиск кода
|
|
56
|
+
const searchResults = await sdk.search.searchCode({
|
|
57
|
+
projectId: project.projectId,
|
|
58
|
+
query: 'function calculateSum',
|
|
59
|
+
maxResults: 10
|
|
60
|
+
});
|
|
150
61
|
|
|
151
|
-
|
|
62
|
+
// Работа с чатом
|
|
63
|
+
const response = await sdk.chat.chat([
|
|
64
|
+
{ role: 'user', content: 'Объясни этот код' }
|
|
65
|
+
], {
|
|
66
|
+
model: 'claude-3-5-sonnet-20241022',
|
|
67
|
+
maxTokens: 8192
|
|
68
|
+
});
|
|
152
69
|
```
|
|
153
70
|
|
|
154
|
-
|
|
71
|
+
## 📋 API Методы
|
|
155
72
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
73
|
+
### 📁 Projects API
|
|
74
|
+
```javascript
|
|
75
|
+
// Создание проекта
|
|
76
|
+
await sdk.projects.createProject({
|
|
77
|
+
name: 'Project Name',
|
|
78
|
+
path: '/project/path',
|
|
79
|
+
description: 'Description'
|
|
163
80
|
});
|
|
164
81
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
.then(isHealthy => console.log('Сервер доступен:', isHealthy))
|
|
168
|
-
.catch(console.error);
|
|
169
|
-
</script>
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
## API
|
|
173
|
-
|
|
174
|
-
### Основные компоненты
|
|
175
|
-
|
|
176
|
-
- `CodeSolverSDK` - Основной класс SDK
|
|
177
|
-
- `ReasoningApi` - API для работы с рассуждениями
|
|
178
|
-
- `ProjectsApi` - API для работы с проектами
|
|
179
|
-
- `SearchApi` - API для поиска кода
|
|
180
|
-
- `AgentsApi` - API для работы с агентами
|
|
181
|
-
- `ContextApi` - API для работы с контекстом кода
|
|
182
|
-
- `DependenciesApi` - API для работы с зависимостями
|
|
183
|
-
- `ChatApi` - API для работы с чатом и потоковой передачей мышления
|
|
82
|
+
// Получение списка проектов
|
|
83
|
+
await sdk.projects.getProjects();
|
|
184
84
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|-------|-----|----------|-------------|
|
|
189
|
-
| `baseURL` | string | Базовый URL API | Да |
|
|
190
|
-
| `apiKey` | string | API ключ для авторизации | Нет |
|
|
191
|
-
| `timeout` | number | Таймаут для HTTP запросов (мс) | Нет |
|
|
192
|
-
| `headers` | object | Пользовательские HTTP заголовки | Нет |
|
|
193
|
-
| `httpsAgent` | object | Опции для HTTPS агента (Node.js) | Нет |
|
|
194
|
-
| `mode` | string | Режим работы SDK ('browser', 'node', 'auto') | Нет |
|
|
195
|
-
| `websocket` | object | Настройки WebSocket (reconnect, timeout и др.) | Нет |
|
|
196
|
-
|
|
197
|
-
## Продвинутые функции
|
|
198
|
-
|
|
199
|
-
### Работа с проектами
|
|
85
|
+
// Получение информации о проекте
|
|
86
|
+
await sdk.projects.getProject(projectId);
|
|
87
|
+
```
|
|
200
88
|
|
|
89
|
+
### 🔄 Indexing API
|
|
201
90
|
```javascript
|
|
202
|
-
//
|
|
203
|
-
|
|
204
|
-
console.log('Проекты:', projects);
|
|
91
|
+
// Индексация проекта
|
|
92
|
+
await sdk.indexing.indexProject('/path/to/project', 'Project Name');
|
|
205
93
|
|
|
206
|
-
//
|
|
207
|
-
|
|
208
|
-
console.log('Новый проект:', newProject);
|
|
94
|
+
// Получение статуса индексации
|
|
95
|
+
await sdk.indexing.getStatus(projectId);
|
|
209
96
|
|
|
210
|
-
//
|
|
211
|
-
await sdk.
|
|
97
|
+
// Ожидание завершения
|
|
98
|
+
await sdk.indexing.waitForCompletion(projectId);
|
|
212
99
|
```
|
|
213
100
|
|
|
214
|
-
###
|
|
215
|
-
|
|
101
|
+
### 🔍 Search API
|
|
216
102
|
```javascript
|
|
217
103
|
// Поиск кода
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
console.log('Результаты поиска:', searchResults);
|
|
223
|
-
|
|
224
|
-
// Семантический поиск кода
|
|
225
|
-
const semanticResults = await sdk.search.semanticSearch(projectId, {
|
|
226
|
-
query: 'функция для обработки HTTP запросов',
|
|
227
|
-
limit: 10
|
|
104
|
+
await sdk.search.searchCode({
|
|
105
|
+
projectId: 'project-id',
|
|
106
|
+
query: 'search query',
|
|
107
|
+
maxResults: 20
|
|
228
108
|
});
|
|
229
|
-
console.log('Семантические результаты:', semanticResults);
|
|
230
109
|
```
|
|
231
110
|
|
|
232
|
-
###
|
|
233
|
-
|
|
111
|
+
### 💬 Chat API
|
|
234
112
|
```javascript
|
|
235
|
-
//
|
|
236
|
-
const
|
|
237
|
-
|
|
238
|
-
|
|
113
|
+
// Обычный чат
|
|
114
|
+
const response = await sdk.chat.chat([
|
|
115
|
+
{ role: 'user', content: 'Объясни этот код' }
|
|
116
|
+
], {
|
|
117
|
+
model: 'claude-3-5-sonnet-20241022',
|
|
118
|
+
maxTokens: 8192
|
|
239
119
|
});
|
|
240
120
|
|
|
241
|
-
//
|
|
242
|
-
const
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
wsClient.enablePingPong(30000, 3);
|
|
247
|
-
|
|
248
|
-
// Обработка событий мышления
|
|
249
|
-
wsClient.on('content_block_delta', (data) => {
|
|
250
|
-
if (data.delta?.type === 'thinking_delta') {
|
|
251
|
-
console.log('Фрагмент размышления:', data.delta.thinking);
|
|
252
|
-
} else if (data.delta?.type === 'text_delta') {
|
|
253
|
-
console.log('Фрагмент ответа:', data.delta.text);
|
|
254
|
-
}
|
|
255
|
-
});
|
|
121
|
+
// Потоковый чат
|
|
122
|
+
for await (const chunk of sdk.chat.streamChat(messages, options)) {
|
|
123
|
+
console.log(chunk.text);
|
|
124
|
+
}
|
|
125
|
+
```
|
|
256
126
|
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
wsClient.disablePingPong();
|
|
262
|
-
wsClient.disconnectAll();
|
|
263
|
-
});
|
|
127
|
+
### 🕸️ Dependencies API
|
|
128
|
+
```javascript
|
|
129
|
+
// Граф зависимостей
|
|
130
|
+
await sdk.dependencies.getDependencyGraph(projectId);
|
|
264
131
|
|
|
265
|
-
//
|
|
266
|
-
|
|
267
|
-
console.log(`Состояние соединения:`, diagnostics);
|
|
132
|
+
// Статистика зависимостей
|
|
133
|
+
await sdk.dependencies.getDependencyStatistics(projectId);
|
|
268
134
|
```
|
|
269
135
|
|
|
270
|
-
|
|
136
|
+
## ⚙️ Конфигурация
|
|
271
137
|
|
|
272
138
|
```javascript
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
139
|
+
const sdk = new CodeSolverSDK({
|
|
140
|
+
baseURL: 'https://api.example.com', // Обязательный
|
|
141
|
+
apiKey: 'your-api-key', // Рекомендуется
|
|
142
|
+
timeout: 30000, // Таймаут запросов
|
|
143
|
+
headers: { // Дополнительные заголовки
|
|
144
|
+
'Custom-Header': 'value'
|
|
145
|
+
},
|
|
146
|
+
http: { // HTTP настройки
|
|
147
|
+
timeout: 45000,
|
|
148
|
+
retries: 3,
|
|
149
|
+
retryDelay: 1000
|
|
150
|
+
},
|
|
151
|
+
debug: true // Отладочная информация
|
|
276
152
|
});
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## 🧪 Тестирование
|
|
277
156
|
|
|
278
|
-
|
|
279
|
-
|
|
157
|
+
```bash
|
|
158
|
+
# Все тесты
|
|
159
|
+
npm test
|
|
280
160
|
|
|
281
|
-
|
|
282
|
-
|
|
161
|
+
# Только HTTP тесты
|
|
162
|
+
npm test -- --testNamePattern="HTTP"
|
|
283
163
|
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
console.log('Циклические зависимости:', analysis.cycles);
|
|
164
|
+
# Интеграционные тесты
|
|
165
|
+
npm run test:integration
|
|
287
166
|
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
sdk.dependencies.on('dependency_update', (data) => {
|
|
291
|
-
console.log('Обновление зависимостей:', data);
|
|
292
|
-
});
|
|
167
|
+
# Тесты индексации
|
|
168
|
+
npm test -- --testPathPattern="indexing"
|
|
293
169
|
```
|
|
294
170
|
|
|
295
|
-
|
|
171
|
+
## 📚 Примеры использования
|
|
296
172
|
|
|
297
|
-
|
|
173
|
+
### Полный цикл работы с проектом
|
|
298
174
|
|
|
299
175
|
```javascript
|
|
300
|
-
|
|
176
|
+
import { CodeSolverSDK } from 'solver-sdk';
|
|
301
177
|
|
|
302
|
-
async function
|
|
178
|
+
async function fullWorkflow() {
|
|
303
179
|
const sdk = new CodeSolverSDK({
|
|
304
|
-
baseURL: '
|
|
305
|
-
apiKey: '
|
|
180
|
+
baseURL: 'http://localhost:3001',
|
|
181
|
+
apiKey: 'your-api-key'
|
|
306
182
|
});
|
|
307
183
|
|
|
308
|
-
// Сообщения для отправки
|
|
309
|
-
const messages = [
|
|
310
|
-
{ role: 'user', content: 'Объясни, как работает blockchain' }
|
|
311
|
-
];
|
|
312
|
-
|
|
313
|
-
// Опции запроса
|
|
314
|
-
const options = {
|
|
315
|
-
model: 'claude-3-7-sonnet-20240229',
|
|
316
|
-
temperature: 0.7,
|
|
317
|
-
thinking: true,
|
|
318
|
-
authToken: 'your-auth-token' // Унифицированный параметр для аутентификации WebSocket
|
|
319
|
-
};
|
|
320
|
-
|
|
321
|
-
// Обработчик событий WebSocket
|
|
322
|
-
const handleEvent = (eventType, data) => {
|
|
323
|
-
switch(eventType) {
|
|
324
|
-
case 'content_block_start':
|
|
325
|
-
if (data.content_block && data.content_block.type === 'thinking') {
|
|
326
|
-
console.log('Начало размышлений:');
|
|
327
|
-
}
|
|
328
|
-
break;
|
|
329
|
-
|
|
330
|
-
case 'content_block_delta':
|
|
331
|
-
if (data.delta && data.delta.type === 'thinking_delta') {
|
|
332
|
-
process.stdout.write(data.delta.thinking); // Потоковый вывод размышлений
|
|
333
|
-
} else if (data.delta && data.delta.type === 'text_delta') {
|
|
334
|
-
process.stdout.write(data.delta.text); // Потоковый вывод итогового текста
|
|
335
|
-
}
|
|
336
|
-
break;
|
|
337
|
-
|
|
338
|
-
case 'error':
|
|
339
|
-
console.error('Ошибка:', data.message);
|
|
340
|
-
|
|
341
|
-
// Обработка ошибки географических ограничений
|
|
342
|
-
if (data.type === 'geo_restriction') {
|
|
343
|
-
console.error('Необходимо включить VPN для доступа к API Anthropic из вашего региона');
|
|
344
|
-
}
|
|
345
|
-
break;
|
|
346
|
-
}
|
|
347
|
-
};
|
|
348
|
-
|
|
349
184
|
try {
|
|
350
|
-
//
|
|
351
|
-
const
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
185
|
+
// 1. Создаем проект
|
|
186
|
+
const project = await sdk.projects.createProject({
|
|
187
|
+
name: 'My React App',
|
|
188
|
+
path: '/path/to/react-app',
|
|
189
|
+
description: 'React приложение для анализа'
|
|
190
|
+
});
|
|
191
|
+
|
|
192
|
+
// 2. Запускаем индексацию
|
|
193
|
+
const indexing = await sdk.indexing.indexProject(
|
|
194
|
+
'/path/to/react-app',
|
|
195
|
+
'My React App'
|
|
355
196
|
);
|
|
197
|
+
|
|
198
|
+
// 3. Ждем завершения индексации
|
|
199
|
+
console.log('Ожидание завершения индексации...');
|
|
200
|
+
await sdk.indexing.waitForCompletion(indexing.projectId);
|
|
201
|
+
|
|
202
|
+
// 4. Ищем React компоненты
|
|
203
|
+
const components = await sdk.search.searchCode({
|
|
204
|
+
projectId: project.projectId,
|
|
205
|
+
query: 'React.Component class',
|
|
206
|
+
maxResults: 10
|
|
207
|
+
});
|
|
208
|
+
|
|
209
|
+
// 5. Анализируем зависимости
|
|
210
|
+
const dependencies = await sdk.dependencies.getDependencyGraph(project.projectId);
|
|
211
|
+
|
|
212
|
+
// 6. Задаем вопрос AI о коде
|
|
213
|
+
const aiResponse = await sdk.chat.chat([
|
|
214
|
+
{
|
|
215
|
+
role: 'user',
|
|
216
|
+
content: `Проанализируй найденные React компоненты: ${JSON.stringify(components)}`
|
|
217
|
+
}
|
|
218
|
+
], {
|
|
219
|
+
model: 'claude-3-5-sonnet-20241022',
|
|
220
|
+
maxTokens: 8192
|
|
221
|
+
});
|
|
356
222
|
|
|
357
|
-
console.log(
|
|
223
|
+
console.log('✅ Анализ завершен');
|
|
224
|
+
console.log('📊 Компоненты:', components.length);
|
|
225
|
+
console.log('🕸️ Зависимости:', dependencies);
|
|
226
|
+
console.log('🤖 AI анализ:', aiResponse.content[0].text);
|
|
227
|
+
|
|
358
228
|
} catch (error) {
|
|
359
|
-
console.error('Ошибка:', error);
|
|
360
|
-
|
|
361
|
-
// Проверка наличия ошибки географических ограничений
|
|
362
|
-
if (error.type === 'geo_restriction') {
|
|
363
|
-
console.error('Необходимо включить VPN для доступа к API Anthropic из вашего региона');
|
|
229
|
+
console.error('❌ Ошибка:', error.message);
|
|
364
230
|
}
|
|
365
231
|
}
|
|
366
|
-
}
|
|
367
|
-
|
|
368
|
-
streamThinking();
|
|
369
|
-
```
|
|
370
|
-
|
|
371
|
-
#### Поддерживаемые события WebSocket для мышления
|
|
372
|
-
|
|
373
|
-
- `message_start` - начало сообщения от модели
|
|
374
|
-
- `content_block_start` - начало блока контента (текст или thinking)
|
|
375
|
-
- `content_block_delta` - дельта блока контента со следующими типами:
|
|
376
|
-
- `delta.type === 'thinking_delta'` - фрагмент размышления модели
|
|
377
|
-
- `delta.type === 'text_delta'` - фрагмент текстового ответа
|
|
378
|
-
- `delta.type === 'input_json_delta'` - фрагмент JSON для инструментов
|
|
379
|
-
- `delta.type === 'signature_delta'` - подпись блока мышления
|
|
380
|
-
- `content_block_stop` - завершение блока контента
|
|
381
|
-
- `message_delta` - дельта сообщения
|
|
382
|
-
- `message_stop` - завершение сообщения
|
|
383
|
-
|
|
384
|
-
## Примеры
|
|
385
|
-
|
|
386
|
-
В директории [`examples`](./examples) доступны примеры использования SDK:
|
|
387
|
-
|
|
388
|
-
```bash
|
|
389
|
-
# Проверка подключения к API
|
|
390
|
-
npm run example:check-api
|
|
391
|
-
|
|
392
|
-
# Индексация проектов
|
|
393
|
-
npm run example:indexing
|
|
394
232
|
|
|
395
|
-
|
|
396
|
-
npm run example:dependencies
|
|
233
|
+
fullWorkflow();
|
|
397
234
|
```
|
|
398
235
|
|
|
399
|
-
##
|
|
236
|
+
## 🔧 Устранение неполадок
|
|
400
237
|
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
## Разработка и тестирование
|
|
408
|
-
|
|
409
|
-
```bash
|
|
410
|
-
# Установка зависимостей
|
|
411
|
-
npm install
|
|
412
|
-
|
|
413
|
-
# Сборка SDK
|
|
414
|
-
npm run build
|
|
415
|
-
|
|
416
|
-
# Запуск всех тестов
|
|
417
|
-
npm test
|
|
418
|
-
|
|
419
|
-
# Тесты для рассуждений и WebSocket
|
|
420
|
-
npm run test:reasoning:all
|
|
238
|
+
### Проблемы с подключением
|
|
239
|
+
```javascript
|
|
240
|
+
// Диагностика API
|
|
241
|
+
const diagnosis = await sdk.diagnoseAPI();
|
|
242
|
+
console.log('Диагностика:', diagnosis);
|
|
421
243
|
|
|
422
|
-
|
|
423
|
-
|
|
244
|
+
// Проверка здоровья конкретных эндпоинтов
|
|
245
|
+
if (!diagnosis.healthy) {
|
|
246
|
+
console.log('Проблемные эндпоинты:', diagnosis.errors);
|
|
247
|
+
}
|
|
424
248
|
```
|
|
425
249
|
|
|
426
|
-
###
|
|
427
|
-
|
|
250
|
+
### Таймауты и повторы
|
|
428
251
|
```javascript
|
|
252
|
+
// Увеличение таймаутов для больших проектов
|
|
429
253
|
const sdk = new CodeSolverSDK({
|
|
430
|
-
baseURL: 'https://
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
reconnect: true,
|
|
437
|
-
rejectUnauthorized: false
|
|
254
|
+
baseURL: 'https://api.example.com',
|
|
255
|
+
timeout: 120000, // 2 минуты
|
|
256
|
+
http: {
|
|
257
|
+
timeout: 90000,
|
|
258
|
+
retries: 5,
|
|
259
|
+
retryDelay: 2000
|
|
438
260
|
}
|
|
439
261
|
});
|
|
440
262
|
```
|
|
441
263
|
|
|
442
|
-
##
|
|
264
|
+
## 📝 Changelog v3.0
|
|
265
|
+
|
|
266
|
+
### ✅ Добавлено
|
|
267
|
+
- Полная поддержка HTTP-only API
|
|
268
|
+
- Новый `IndexingClient` для простой индексации
|
|
269
|
+
- Улучшенная обработка ошибок
|
|
270
|
+
- Подробная диагностика API
|
|
271
|
+
- Потоковый чат через HTTP
|
|
443
272
|
|
|
444
|
-
|
|
273
|
+
### ❌ Удалено
|
|
274
|
+
- Поддержка WebSocket (полностью удалена)
|
|
275
|
+
- `socket.io-client` зависимость
|
|
276
|
+
- WebSocket события и обработчики
|
|
277
|
+
- Сложные WebSocket конфигурации
|
|
445
278
|
|
|
446
|
-
|
|
447
|
-
-
|
|
448
|
-
-
|
|
449
|
-
-
|
|
450
|
-
-
|
|
451
|
-
- [Полное API](./docs/API.md)
|
|
279
|
+
### 🔄 Изменено
|
|
280
|
+
- Все API методы теперь работают через HTTP
|
|
281
|
+
- Упрощенная конфигурация SDK
|
|
282
|
+
- Более быстрая инициализация
|
|
283
|
+
- Лучшая совместимость с разными средами
|
|
452
284
|
|
|
453
|
-
## Лицензия
|
|
285
|
+
## 📄 Лицензия
|
|
454
286
|
|
|
455
|
-
|
|
287
|
+
MIT License
|