solver-sdk 3.1.17 → 3.1.19
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/dist/cjs/api/chat-api/index.js +24 -116
- package/dist/cjs/api/chat-api/index.js.map +1 -1
- package/dist/cjs/api/models-api.js +0 -24
- package/dist/cjs/api/models-api.js.map +1 -1
- package/dist/cjs/api/projects-api.js +44 -29
- package/dist/cjs/api/projects-api.js.map +1 -1
- package/dist/cjs/api/search-api.js +79 -135
- package/dist/cjs/api/search-api.js.map +1 -1
- package/dist/cjs/code-solver-sdk.js +3 -28
- package/dist/cjs/code-solver-sdk.js.map +1 -1
- package/dist/cjs/index.js +3 -4
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/utils/thinking-block-manager.js +26 -34
- package/dist/cjs/utils/thinking-block-manager.js.map +1 -1
- package/dist/cjs/version.js +58 -0
- package/dist/cjs/version.js.map +1 -0
- package/dist/esm/api/chat-api/index.js +24 -116
- package/dist/esm/api/chat-api/index.js.map +1 -1
- package/dist/esm/api/models-api.js +0 -24
- package/dist/esm/api/models-api.js.map +1 -1
- package/dist/esm/api/projects-api.js +44 -29
- package/dist/esm/api/projects-api.js.map +1 -1
- package/dist/esm/api/search-api.js +79 -135
- package/dist/esm/api/search-api.js.map +1 -1
- package/dist/esm/code-solver-sdk.js +3 -28
- package/dist/esm/code-solver-sdk.js.map +1 -1
- package/dist/esm/index.js +2 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/utils/thinking-block-manager.js +26 -34
- package/dist/esm/utils/thinking-block-manager.js.map +1 -1
- package/dist/esm/version.js +22 -0
- package/dist/esm/version.js.map +1 -0
- package/dist/types/api/chat-api/index.d.ts +0 -3
- package/dist/types/api/chat-api/index.d.ts.map +1 -1
- package/dist/types/api/chat-api/interfaces.d.ts +2 -2
- package/dist/types/api/chat-api/models.d.ts +6 -0
- package/dist/types/api/chat-api/models.d.ts.map +1 -1
- package/dist/types/api/models-api.d.ts +0 -15
- package/dist/types/api/models-api.d.ts.map +1 -1
- package/dist/types/api/projects-api.d.ts +18 -20
- package/dist/types/api/projects-api.d.ts.map +1 -1
- package/dist/types/api/search-api.d.ts +53 -185
- package/dist/types/api/search-api.d.ts.map +1 -1
- package/dist/types/code-solver-sdk.d.ts +0 -16
- package/dist/types/code-solver-sdk.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/interfaces/sdk-options.d.ts +0 -4
- package/dist/types/interfaces/sdk-options.d.ts.map +1 -1
- package/dist/types/utils/thinking-block-manager.d.ts +14 -17
- package/dist/types/utils/thinking-block-manager.d.ts.map +1 -1
- package/dist/types/version.d.ts +2 -0
- package/dist/types/version.d.ts.map +1 -0
- package/package.json +2 -3
- package/dist/cjs/api/code-modification-api.js +0 -60
- package/dist/cjs/api/code-modification-api.js.map +0 -1
- package/dist/cjs/api/context-api.js +0 -76
- package/dist/cjs/api/context-api.js.map +0 -1
- package/dist/esm/api/code-modification-api.js +0 -56
- package/dist/esm/api/code-modification-api.js.map +0 -1
- package/dist/esm/api/context-api.js +0 -72
- package/dist/esm/api/context-api.js.map +0 -1
- package/dist/types/api/code-modification-api.d.ts +0 -104
- package/dist/types/api/code-modification-api.d.ts.map +0 -1
- package/dist/types/api/context-api.d.ts +0 -100
- package/dist/types/api/context-api.d.ts.map +0 -1
|
@@ -1,173 +1,117 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* API для поиска кода
|
|
2
|
+
* API для поиска кода с использованием векторных эмбеддингов
|
|
3
3
|
*/
|
|
4
4
|
export class SearchApi {
|
|
5
|
-
/**
|
|
6
|
-
* Создает новый экземпляр API для поиска кода
|
|
7
|
-
* @param {HttpClient} httpClient HTTP клиент
|
|
8
|
-
*/
|
|
9
5
|
constructor(httpClient) {
|
|
10
6
|
this.httpClient = httpClient;
|
|
11
7
|
}
|
|
12
8
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* @param {SearchCodeParams} [params] Параметры поиска (если первый параметр - projectId)
|
|
16
|
-
* @returns {Promise<SearchResults>} Результаты поиска
|
|
9
|
+
* Поиск кода в проекте
|
|
10
|
+
* Поддерживает гибкую сигнатуру: projectId отдельно или в параметрах
|
|
17
11
|
*/
|
|
18
12
|
async searchCode(projectIdOrParams, params) {
|
|
13
|
+
let finalParams;
|
|
19
14
|
let projectId;
|
|
20
|
-
|
|
15
|
+
// Гибкая сигнатура
|
|
21
16
|
if (typeof projectIdOrParams === 'string') {
|
|
22
|
-
// Старый интерфейс: searchCode(projectId, params)
|
|
23
17
|
projectId = projectIdOrParams;
|
|
24
|
-
|
|
18
|
+
finalParams = params || { query: '' };
|
|
25
19
|
}
|
|
26
20
|
else {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
projectId = searchParams.projectId || '';
|
|
30
|
-
if (!projectId) {
|
|
31
|
-
throw new Error('Project ID is required');
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
if (!searchParams.query) {
|
|
35
|
-
throw new Error('Search query is required');
|
|
21
|
+
finalParams = projectIdOrParams;
|
|
22
|
+
projectId = finalParams.projectId || '';
|
|
36
23
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
24
|
+
const limit = finalParams.limit || finalParams.maxResults || 10;
|
|
25
|
+
try {
|
|
26
|
+
const response = await this.httpClient.post(`/api/v1/projects/${projectId}/search`, {
|
|
27
|
+
query: finalParams.query,
|
|
28
|
+
limit: limit
|
|
29
|
+
});
|
|
30
|
+
if (!response.data) {
|
|
31
|
+
return [];
|
|
32
|
+
}
|
|
33
|
+
// Преобразуем результаты в единый формат
|
|
34
|
+
return response.data.map((result) => ({
|
|
35
|
+
id: result.id || `${result.filePath}_${Math.random()}`,
|
|
36
|
+
score: result.score || 0,
|
|
37
|
+
filePath: result.filePath || result.file || 'unknown',
|
|
38
|
+
fileName: result.fileName || result.file?.split('/').pop() || 'unknown',
|
|
39
|
+
language: result.language || 'unknown',
|
|
40
|
+
size: result.size || 0,
|
|
41
|
+
indexedAt: result.indexedAt,
|
|
42
|
+
// Поля для совместимости
|
|
43
|
+
content: result.content || '',
|
|
44
|
+
file: result.filePath || result.file,
|
|
45
|
+
line: result.line || 1
|
|
46
|
+
}));
|
|
56
47
|
}
|
|
57
|
-
|
|
58
|
-
|
|
48
|
+
catch (error) {
|
|
49
|
+
console.error('Search API error:', error);
|
|
50
|
+
return [];
|
|
59
51
|
}
|
|
60
52
|
}
|
|
61
53
|
/**
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
* @param {number} [limit=10] Лимит результатов
|
|
65
|
-
* @returns {Promise<string[]>} Популярные поисковые запросы
|
|
66
|
-
*/
|
|
67
|
-
async getPopularQueries(projectId, limit = 10) {
|
|
68
|
-
return this.httpClient.get(`/api/projects/${projectId}/popular-queries`, { limit });
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Получает подсказки для автозаполнения поискового запроса
|
|
72
|
-
* @param {string} projectId Идентификатор проекта
|
|
73
|
-
* @param {string} query Начало поискового запроса
|
|
74
|
-
* @param {number} [limit=5] Лимит результатов
|
|
75
|
-
* @returns {Promise<string[]>} Подсказки для автозаполнения
|
|
76
|
-
*/
|
|
77
|
-
async getQuerySuggestions(projectId, query, limit = 5) {
|
|
78
|
-
return this.httpClient.get(`/api/projects/${projectId}/query-suggestions`, { query, limit });
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Выполняет поиск функций в проекте
|
|
82
|
-
* @param {string | SearchFunctionsParams} projectIdOrParams Идентификатор проекта или объект с параметрами
|
|
83
|
-
* @param {SearchFunctionsParams} [params] Параметры поиска (если первый параметр - projectId)
|
|
84
|
-
* @returns {Promise<FunctionSearchResults>} Результаты поиска функций
|
|
54
|
+
* Поиск функций в проекте
|
|
55
|
+
* Поддерживает гибкую сигнатуру: projectId отдельно или в параметрах
|
|
85
56
|
*/
|
|
86
57
|
async searchFunctions(projectIdOrParams, params) {
|
|
58
|
+
let finalParams;
|
|
87
59
|
let projectId;
|
|
88
|
-
|
|
60
|
+
// Гибкая сигнатура
|
|
89
61
|
if (typeof projectIdOrParams === 'string') {
|
|
90
|
-
// Старый интерфейс: searchFunctions(projectId, params)
|
|
91
62
|
projectId = projectIdOrParams;
|
|
92
|
-
|
|
63
|
+
finalParams = params || { query: '' };
|
|
93
64
|
}
|
|
94
65
|
else {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
projectId = searchParams.projectId || '';
|
|
98
|
-
if (!projectId) {
|
|
99
|
-
throw new Error('Project ID is required');
|
|
100
|
-
}
|
|
66
|
+
finalParams = projectIdOrParams;
|
|
67
|
+
projectId = finalParams.projectId || '';
|
|
101
68
|
}
|
|
102
|
-
|
|
103
|
-
|
|
69
|
+
const limit = finalParams.limit || 10;
|
|
70
|
+
const minScore = finalParams.minScore || 0.3;
|
|
71
|
+
try {
|
|
72
|
+
const response = await this.httpClient.post(`/api/v1/projects/${projectId}/search`, {
|
|
73
|
+
query: finalParams.query,
|
|
74
|
+
limit: limit,
|
|
75
|
+
minScore: minScore
|
|
76
|
+
});
|
|
77
|
+
return {
|
|
78
|
+
success: true,
|
|
79
|
+
resultsCount: response.data?.length || 0,
|
|
80
|
+
searchType: 'functions',
|
|
81
|
+
results: response.data || []
|
|
82
|
+
};
|
|
104
83
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
* @param {object} [options] Дополнительные опции
|
|
114
|
-
* @returns {Promise<FunctionSearchResults>} Результаты поиска функций
|
|
115
|
-
*/
|
|
116
|
-
async searchFunctionsGet(projectId, query, options = {}) {
|
|
117
|
-
if (!projectId) {
|
|
118
|
-
throw new Error('Project ID is required');
|
|
119
|
-
}
|
|
120
|
-
if (!query) {
|
|
121
|
-
throw new Error('Search query is required');
|
|
84
|
+
catch (error) {
|
|
85
|
+
console.error('Function search API error:', error);
|
|
86
|
+
return {
|
|
87
|
+
success: false,
|
|
88
|
+
resultsCount: 0,
|
|
89
|
+
searchType: 'functions',
|
|
90
|
+
results: []
|
|
91
|
+
};
|
|
122
92
|
}
|
|
123
|
-
const queryParams = new URLSearchParams();
|
|
124
|
-
queryParams.append('query', query);
|
|
125
|
-
if (options.limit)
|
|
126
|
-
queryParams.append('limit', options.limit.toString());
|
|
127
|
-
if (options.minScore)
|
|
128
|
-
queryParams.append('minScore', options.minScore.toString());
|
|
129
|
-
if (options.elementType)
|
|
130
|
-
queryParams.append('elementType', options.elementType);
|
|
131
|
-
if (options.language)
|
|
132
|
-
queryParams.append('language', options.language);
|
|
133
|
-
return this.httpClient.get(`/api/v1/search/functions/project/${projectId}/search?${queryParams.toString()}`);
|
|
134
93
|
}
|
|
135
94
|
/**
|
|
136
|
-
*
|
|
137
|
-
*
|
|
138
|
-
* @returns {Promise<FunctionStats>} Статистика функций
|
|
95
|
+
* Получение статистики функций в проекте
|
|
96
|
+
* Пока используем поиск с большим лимитом для подсчета
|
|
139
97
|
*/
|
|
140
98
|
async getFunctionStats(projectId) {
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
if (!projectId) {
|
|
153
|
-
throw new Error('Project ID is required');
|
|
154
|
-
}
|
|
155
|
-
return this.httpClient.post(`/api/v1/search/functions/project/${projectId}/index`, {});
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Переиндексирует функции файла
|
|
159
|
-
* @param {string} projectId Идентификатор проекта
|
|
160
|
-
* @param {string} fileId Идентификатор файла
|
|
161
|
-
* @returns {Promise<object>} Результат переиндексирования
|
|
162
|
-
*/
|
|
163
|
-
async reindexFileFunctions(projectId, fileId) {
|
|
164
|
-
if (!projectId) {
|
|
165
|
-
throw new Error('Project ID is required');
|
|
99
|
+
try {
|
|
100
|
+
// Используем поиск по функциям для получения статистики
|
|
101
|
+
const response = await this.httpClient.post(`/api/v1/projects/${projectId}/search`, {
|
|
102
|
+
query: 'function class method',
|
|
103
|
+
limit: 1000
|
|
104
|
+
});
|
|
105
|
+
return {
|
|
106
|
+
stats: {
|
|
107
|
+
totalFunctions: response.data?.length || 0
|
|
108
|
+
}
|
|
109
|
+
};
|
|
166
110
|
}
|
|
167
|
-
|
|
168
|
-
|
|
111
|
+
catch (error) {
|
|
112
|
+
console.error('Function stats API error:', error);
|
|
113
|
+
return { stats: { totalFunctions: 0 } };
|
|
169
114
|
}
|
|
170
|
-
return this.httpClient.post(`/api/v1/search/functions/project/${projectId}/file/${fileId}/reindex`, {});
|
|
171
115
|
}
|
|
172
116
|
}
|
|
173
117
|
//# sourceMappingURL=search-api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-api.js","sourceRoot":"","sources":["../../../src/api/search-api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"search-api.js","sourceRoot":"","sources":["../../../src/api/search-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
import { HttpClient } from './utils/http-client.js';
|
|
2
2
|
import { ProjectsApi } from './api/projects-api.js';
|
|
3
3
|
import { SearchApi } from './api/search-api.js';
|
|
4
|
-
import { ContextApi } from './api/context-api.js';
|
|
5
|
-
// import { ReasoningApi } from './api/reasoning-api.js'; // УДАЛЕНО - неработающий namespace
|
|
6
|
-
import { CodeModificationApi } from './api/code-modification-api.js';
|
|
7
4
|
import { ChatApi } from './api/chat-api/index.js';
|
|
8
5
|
import { ModelsApi } from './api/models-api.js';
|
|
9
|
-
|
|
10
|
-
const SDK_VERSION = '3.1.11';
|
|
6
|
+
import { VERSION } from './version.js';
|
|
11
7
|
/**
|
|
12
8
|
* Определение типа среды выполнения
|
|
13
9
|
* @returns 'browser' | 'node' | 'unknown'
|
|
@@ -120,25 +116,18 @@ export class CodeSolverSDK {
|
|
|
120
116
|
// Инициализируем API клиенты
|
|
121
117
|
this._projects = new ProjectsApi(this.httpClient);
|
|
122
118
|
this._search = new SearchApi(this.httpClient);
|
|
123
|
-
// this._reasoning = new ReasoningApi(this.httpClient, this._projects); // УДАЛЕНО - неработающий namespace
|
|
124
|
-
this._context = new ContextApi(this.httpClient, this._projects);
|
|
125
|
-
this._codeModification = new CodeModificationApi(this.httpClient);
|
|
126
119
|
this._chat = new ChatApi(this.httpClient, {
|
|
127
120
|
debug: this._options.debug,
|
|
128
121
|
streamLogging: this._options.streamLogging
|
|
129
122
|
});
|
|
130
123
|
this._models = new ModelsApi(this.httpClient);
|
|
131
|
-
// if (typeof this._reasoning.setParent === 'function') { // УДАЛЕНО - неработающий namespace
|
|
132
|
-
// this._reasoning.setParent(this);
|
|
133
|
-
// }
|
|
134
|
-
// setParent удален - больше не нужен для HTTP-only API
|
|
135
124
|
}
|
|
136
125
|
/**
|
|
137
126
|
* Получает версию SDK
|
|
138
127
|
* @returns {string} Версия SDK
|
|
139
128
|
*/
|
|
140
129
|
static getVersion() {
|
|
141
|
-
return
|
|
130
|
+
return VERSION;
|
|
142
131
|
}
|
|
143
132
|
/**
|
|
144
133
|
* Обновляет опции SDK
|
|
@@ -202,13 +191,6 @@ export class CodeSolverSDK {
|
|
|
202
191
|
}
|
|
203
192
|
return diagnosis;
|
|
204
193
|
}
|
|
205
|
-
/**
|
|
206
|
-
* Получает API для работы с контекстом
|
|
207
|
-
* @returns {ContextApi} API для работы с контекстом
|
|
208
|
-
*/
|
|
209
|
-
get context() {
|
|
210
|
-
return this._context;
|
|
211
|
-
}
|
|
212
194
|
/**
|
|
213
195
|
* Получает API для работы с проектами
|
|
214
196
|
* @returns {ProjectsApi} API для работы с проектами
|
|
@@ -223,13 +205,6 @@ export class CodeSolverSDK {
|
|
|
223
205
|
get search() {
|
|
224
206
|
return this._search;
|
|
225
207
|
}
|
|
226
|
-
/**
|
|
227
|
-
* Получает API для модификации кода
|
|
228
|
-
* @returns {CodeModificationApi} API для модификации кода
|
|
229
|
-
*/
|
|
230
|
-
get codeModification() {
|
|
231
|
-
return this._codeModification;
|
|
232
|
-
}
|
|
233
208
|
/**
|
|
234
209
|
* Получает API для работы с чатом
|
|
235
210
|
* @returns {ChatApi} API для работы с чатом
|
|
@@ -284,7 +259,7 @@ export class CodeSolverSDK {
|
|
|
284
259
|
*/
|
|
285
260
|
getInfo() {
|
|
286
261
|
return {
|
|
287
|
-
version:
|
|
262
|
+
version: VERSION,
|
|
288
263
|
environment: this.environment,
|
|
289
264
|
baseURL: this._options.baseURL,
|
|
290
265
|
hasApiKey: !!this._options.apiKey
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-solver-sdk.js","sourceRoot":"","sources":["../../src/code-solver-sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"code-solver-sdk.js","sourceRoot":"","sources":["../../src/code-solver-sdk.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CodeSolverSDK } from './code-solver-sdk.js';
|
|
2
2
|
import { HttpClient } from './utils/http-client.js';
|
|
3
|
-
// Версия SDK
|
|
4
|
-
export
|
|
3
|
+
// Версия SDK (единственный источник истины - package.json)
|
|
4
|
+
export { VERSION } from './version.js';
|
|
5
5
|
// Экспортируем основные классы и интерфейсы
|
|
6
6
|
export { CodeSolverSDK };
|
|
7
7
|
export { HttpClient };
|
|
@@ -10,8 +10,6 @@ export * from './interfaces/sdk-options.js';
|
|
|
10
10
|
// Экспортируем HTTP API клиенты
|
|
11
11
|
export * from './api/projects-api.js';
|
|
12
12
|
export * from './api/search-api.js';
|
|
13
|
-
export * from './api/context-api.js';
|
|
14
|
-
export * from './api/code-modification-api.js';
|
|
15
13
|
export * from './api/chat-api/index.js';
|
|
16
14
|
export * from './api/models-api.js';
|
|
17
15
|
// Экспортируем помощники для работы с сообщениями
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,2DAA2D;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,4CAA4C;AAC5C,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB,0CAA0C;AAC1C,cAAc,6BAA6B,CAAC;AAE5C,gCAAgC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AAEpC,kDAAkD;AAClD,cAAc,4BAA4B,CAAC;AAE3C,iEAAiE;AACjE,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,8BAA8B,EAC9B,6BAA6B,EAC7B,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AAEpC,uBAAuB;AACvB,eAAe,aAAa,CAAC"}
|
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Утилиты для работы с thinking блоками в SDK
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* -
|
|
6
|
-
* -
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
* ✅ СОГЛАСНО ТРЕБОВАНИЯМ ANTHROPIC API:
|
|
5
|
+
* - signature передается как есть от API
|
|
6
|
+
* - НЕ модифицируем thinking блоки
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Менеджер thinking блоков для клиентской стороны
|
|
9
10
|
*/
|
|
10
11
|
export class ThinkingBlockManager {
|
|
11
12
|
/**
|
|
12
13
|
* Валидирует thinking блок согласно требованиям Claude API
|
|
13
|
-
*
|
|
14
|
-
* ПО ЭТАЛОННОМУ ПРОЕКТУ android_sprint_PR_analyzer:
|
|
15
|
-
* - "each thinking block must contain thinking" - поле thinking НЕ пустое
|
|
16
|
-
* - signature ВСЕГДА присутствует (пустая строка если не задана)
|
|
17
14
|
*/
|
|
18
15
|
static validateAndFixThinkingBlock(block) {
|
|
19
16
|
if (!this.isThinkingBlockType(block)) {
|
|
@@ -30,33 +27,31 @@ export class ThinkingBlockManager {
|
|
|
30
27
|
reason: 'Пустое содержимое thinking'
|
|
31
28
|
};
|
|
32
29
|
}
|
|
33
|
-
// Минимальная длина мышления
|
|
30
|
+
// Минимальная длина мышления
|
|
34
31
|
if (thinkingContent.trim().length < 10) {
|
|
35
32
|
return {
|
|
36
33
|
isValid: false,
|
|
37
34
|
reason: `Слишком короткое содержимое thinking (${thinkingContent.trim().length} символов)`
|
|
38
35
|
};
|
|
39
36
|
}
|
|
40
|
-
// ✅
|
|
37
|
+
// ✅ ДОКУМЕНТАЦИЯ: "передавать все обратно так, как вы получили"
|
|
41
38
|
const fixedBlock = {
|
|
42
39
|
type: 'thinking',
|
|
43
40
|
thinking: thinkingContent,
|
|
44
|
-
signature
|
|
41
|
+
// НЕ модифицируем signature - передаем КАК ЕСТЬ если есть
|
|
42
|
+
...(block.hasOwnProperty('signature') ? { signature: block.signature } : {})
|
|
45
43
|
};
|
|
46
|
-
console.debug(`✅ Валидный thinking блок: ${thinkingContent.length} символов`);
|
|
47
44
|
return {
|
|
48
45
|
isValid: true,
|
|
49
46
|
fixedBlock
|
|
50
47
|
};
|
|
51
48
|
}
|
|
52
49
|
/**
|
|
53
|
-
* Обеспечивает наличие signature поля
|
|
50
|
+
* Обеспечивает наличие signature поля (НЕ используется - оставлено для совместимости)
|
|
54
51
|
*/
|
|
55
52
|
static ensureSignatureField(signature) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}
|
|
59
|
-
return ''; // Пустая signature как в эталонном проекте android_sprint_PR_analyzer
|
|
53
|
+
// УДАЛЕНО: Больше не проверяем signature
|
|
54
|
+
return signature || '';
|
|
60
55
|
}
|
|
61
56
|
/**
|
|
62
57
|
* Проверяет что блок имеет тип thinking
|
|
@@ -76,16 +71,15 @@ export class ThinkingBlockManager {
|
|
|
76
71
|
const validBlocks = [];
|
|
77
72
|
for (const block of content) {
|
|
78
73
|
if (this.isThinkingBlockType(block)) {
|
|
74
|
+
// ✅ ИСПРАВЛЕНО: Передаем все thinking блоки как есть
|
|
79
75
|
const result = this.validateAndFixThinkingBlock(block);
|
|
80
76
|
if (result.isValid && result.fixedBlock) {
|
|
81
77
|
validBlocks.push(result.fixedBlock);
|
|
82
|
-
|
|
83
|
-
fixedCount++;
|
|
84
|
-
}
|
|
78
|
+
fixedCount++;
|
|
85
79
|
}
|
|
86
80
|
else {
|
|
87
81
|
invalidCount++;
|
|
88
|
-
console.warn(
|
|
82
|
+
console.warn(`[INVALID] Пропущен thinking блок: ${result.reason}`);
|
|
89
83
|
}
|
|
90
84
|
}
|
|
91
85
|
else {
|
|
@@ -93,12 +87,6 @@ export class ThinkingBlockManager {
|
|
|
93
87
|
validBlocks.push(block);
|
|
94
88
|
}
|
|
95
89
|
}
|
|
96
|
-
if (fixedCount > 0) {
|
|
97
|
-
console.log(`🔧 [FIXED] Исправлено thinking блоков: ${fixedCount}`);
|
|
98
|
-
}
|
|
99
|
-
if (invalidCount > 0) {
|
|
100
|
-
console.warn(`⚠️ [INVALID] Пропущено invalid thinking блоков: ${invalidCount}`);
|
|
101
|
-
}
|
|
102
90
|
return { validBlocks, fixedCount, invalidCount };
|
|
103
91
|
}
|
|
104
92
|
/**
|
|
@@ -108,7 +96,8 @@ export class ThinkingBlockManager {
|
|
|
108
96
|
const validation = this.validateAndFixThinkingBlock({
|
|
109
97
|
type: 'thinking',
|
|
110
98
|
thinking,
|
|
111
|
-
signature
|
|
99
|
+
// Передаем signature как есть
|
|
100
|
+
...(signature !== undefined ? { signature } : {})
|
|
112
101
|
});
|
|
113
102
|
if (!validation.isValid || !validation.fixedBlock) {
|
|
114
103
|
throw new Error(`Невозможно создать thinking блок: ${validation.reason}`);
|
|
@@ -116,14 +105,17 @@ export class ThinkingBlockManager {
|
|
|
116
105
|
return validation.fixedBlock;
|
|
117
106
|
}
|
|
118
107
|
/**
|
|
119
|
-
*
|
|
108
|
+
* Извлекает валидные thinking блоки из сообщения
|
|
120
109
|
*/
|
|
121
110
|
static extractValidThinkingBlocks(message) {
|
|
122
|
-
if (!message || !Array.isArray(message.content)) {
|
|
111
|
+
if (!message?.content || !Array.isArray(message.content)) {
|
|
123
112
|
return [];
|
|
124
113
|
}
|
|
125
|
-
|
|
126
|
-
|
|
114
|
+
return message.content
|
|
115
|
+
.filter((block) => this.isThinkingBlockType(block))
|
|
116
|
+
.map((block) => this.validateAndFixThinkingBlock(block))
|
|
117
|
+
.filter((result) => result.isValid)
|
|
118
|
+
.map((result) => result.fixedBlock);
|
|
127
119
|
}
|
|
128
120
|
}
|
|
129
121
|
//# sourceMappingURL=thinking-block-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thinking-block-manager.js","sourceRoot":"","sources":["../../../src/utils/thinking-block-manager.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"thinking-block-manager.js","sourceRoot":"","sources":["../../../src/utils/thinking-block-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as path from 'path';
|
|
2
|
+
import * as fs from 'fs';
|
|
3
|
+
/**
|
|
4
|
+
* Версия SDK из package.json
|
|
5
|
+
* Единственный источник истины для версии
|
|
6
|
+
*/
|
|
7
|
+
function getVersionFromPackageJson() {
|
|
8
|
+
try {
|
|
9
|
+
// Путь к package.json относительно скомпилированного файла
|
|
10
|
+
const packagePath = path.resolve(__dirname, '../../package.json');
|
|
11
|
+
const packageContent = fs.readFileSync(packagePath, 'utf8');
|
|
12
|
+
const packageJson = JSON.parse(packageContent);
|
|
13
|
+
return packageJson.version;
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
// Fallback на случай проблем
|
|
17
|
+
console.warn('Не удалось прочитать версию из package.json:', error);
|
|
18
|
+
return '3.1.18';
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export const VERSION = getVersionFromPackageJson();
|
|
22
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB;;;GAGG;AACH,SAAS,yBAAyB;IAChC,IAAI,CAAC;QACH,2DAA2D;QAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;QAClE,MAAM,cAAc,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC/C,OAAO,WAAW,CAAC,OAAO,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,6BAA6B;QAC7B,OAAO,CAAC,IAAI,CAAC,8CAA8C,EAAE,KAAK,CAAC,CAAC;QACpE,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,yBAAyB,EAAE,CAAC"}
|
|
@@ -85,9 +85,6 @@ export declare class ChatApi implements ChatService {
|
|
|
85
85
|
streamPrompt(prompt: string, options?: ChatStreamOptions): AsyncGenerator<ChatStreamChunk>;
|
|
86
86
|
/**
|
|
87
87
|
* Отправляет continuation запрос для interleaved thinking
|
|
88
|
-
* @param {ChatMessage[]} messages Массив сообщений включая thinking блоки и tool_result
|
|
89
|
-
* @param {ChatStreamOptions} [options] Дополнительные параметры с thinking конфигурацией
|
|
90
|
-
* @returns {AsyncGenerator<ChatStreamChunk>} Асинхронный генератор чанков ответа
|
|
91
88
|
*/
|
|
92
89
|
sendContinuation(messages: ChatMessage[], options?: ChatStreamOptions): AsyncGenerator<ChatStreamChunk>;
|
|
93
90
|
/**
|