solver-sdk 1.0.1

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.
Files changed (167) hide show
  1. package/README.md +248 -0
  2. package/dist/cjs/api/agents-api.js +94 -0
  3. package/dist/cjs/api/agents-api.js.map +1 -0
  4. package/dist/cjs/api/code-modification-api.js +60 -0
  5. package/dist/cjs/api/code-modification-api.js.map +1 -0
  6. package/dist/cjs/api/context-api.js +58 -0
  7. package/dist/cjs/api/context-api.js.map +1 -0
  8. package/dist/cjs/api/projects-api.js +82 -0
  9. package/dist/cjs/api/projects-api.js.map +1 -0
  10. package/dist/cjs/api/reasoning-api.js +73 -0
  11. package/dist/cjs/api/reasoning-api.js.map +1 -0
  12. package/dist/cjs/api/search-api.js +54 -0
  13. package/dist/cjs/api/search-api.js.map +1 -0
  14. package/dist/cjs/code-solver-sdk.js +327 -0
  15. package/dist/cjs/code-solver-sdk.js.map +1 -0
  16. package/dist/cjs/index.js +118 -0
  17. package/dist/cjs/index.js.map +1 -0
  18. package/dist/cjs/interfaces/http-client.js +3 -0
  19. package/dist/cjs/interfaces/http-client.js.map +1 -0
  20. package/dist/cjs/interfaces/sdk-options.js +3 -0
  21. package/dist/cjs/interfaces/sdk-options.js.map +1 -0
  22. package/dist/cjs/models/types.js +17 -0
  23. package/dist/cjs/models/types.js.map +1 -0
  24. package/dist/cjs/utils/code-solver-websocket-client.js +267 -0
  25. package/dist/cjs/utils/code-solver-websocket-client.js.map +1 -0
  26. package/dist/cjs/utils/http-client.js +234 -0
  27. package/dist/cjs/utils/http-client.js.map +1 -0
  28. package/dist/cjs/utils/indexing-websocket-client.js +107 -0
  29. package/dist/cjs/utils/indexing-websocket-client.js.map +1 -0
  30. package/dist/cjs/utils/sse-client.js +233 -0
  31. package/dist/cjs/utils/sse-client.js.map +1 -0
  32. package/dist/cjs/utils/websocket-client.js +268 -0
  33. package/dist/cjs/utils/websocket-client.js.map +1 -0
  34. package/dist/esm/api/agents-api.js +90 -0
  35. package/dist/esm/api/agents-api.js.map +1 -0
  36. package/dist/esm/api/code-modification-api.js +56 -0
  37. package/dist/esm/api/code-modification-api.js.map +1 -0
  38. package/dist/esm/api/context-api.js +54 -0
  39. package/dist/esm/api/context-api.js.map +1 -0
  40. package/dist/esm/api/projects-api.js +78 -0
  41. package/dist/esm/api/projects-api.js.map +1 -0
  42. package/dist/esm/api/reasoning-api.js +69 -0
  43. package/dist/esm/api/reasoning-api.js.map +1 -0
  44. package/dist/esm/api/search-api.js +50 -0
  45. package/dist/esm/api/search-api.js.map +1 -0
  46. package/dist/esm/code-solver-sdk.js +323 -0
  47. package/dist/esm/code-solver-sdk.js.map +1 -0
  48. package/dist/esm/index.js +1882 -0
  49. package/dist/esm/index.js.map +1 -0
  50. package/dist/esm/interfaces/http-client.js +2 -0
  51. package/dist/esm/interfaces/http-client.js.map +1 -0
  52. package/dist/esm/interfaces/sdk-options.js +2 -0
  53. package/dist/esm/interfaces/sdk-options.js.map +1 -0
  54. package/dist/esm/models/types.js +14 -0
  55. package/dist/esm/models/types.js.map +1 -0
  56. package/dist/esm/types/api/agents-api.d.ts +141 -0
  57. package/dist/esm/types/api/agents-api.d.ts.map +1 -0
  58. package/dist/esm/types/api/code-modification-api.d.ts +104 -0
  59. package/dist/esm/types/api/code-modification-api.d.ts.map +1 -0
  60. package/dist/esm/types/api/context-api.d.ts +86 -0
  61. package/dist/esm/types/api/context-api.d.ts.map +1 -0
  62. package/dist/esm/types/api/projects-api.d.ts +89 -0
  63. package/dist/esm/types/api/projects-api.d.ts.map +1 -0
  64. package/dist/esm/types/api/reasoning-api.d.ts +130 -0
  65. package/dist/esm/types/api/reasoning-api.d.ts.map +1 -0
  66. package/dist/esm/types/api/search-api.d.ts +92 -0
  67. package/dist/esm/types/api/search-api.d.ts.map +1 -0
  68. package/dist/esm/types/code-solver-sdk.d.ts +145 -0
  69. package/dist/esm/types/code-solver-sdk.d.ts.map +1 -0
  70. package/dist/esm/types/index.d.ts +81 -0
  71. package/dist/esm/types/index.d.ts.map +1 -0
  72. package/dist/esm/types/interfaces/http-client.d.ts +110 -0
  73. package/dist/esm/types/interfaces/http-client.d.ts.map +1 -0
  74. package/dist/esm/types/interfaces/sdk-options.d.ts +34 -0
  75. package/dist/esm/types/interfaces/sdk-options.d.ts.map +1 -0
  76. package/dist/esm/types/models/types.d.ts +139 -0
  77. package/dist/esm/types/models/types.d.ts.map +1 -0
  78. package/dist/esm/types/utils/code-solver-websocket-client.d.ts +138 -0
  79. package/dist/esm/types/utils/code-solver-websocket-client.d.ts.map +1 -0
  80. package/dist/esm/types/utils/http-client.d.ts +85 -0
  81. package/dist/esm/types/utils/http-client.d.ts.map +1 -0
  82. package/dist/esm/types/utils/indexing-websocket-client.d.ts +123 -0
  83. package/dist/esm/types/utils/indexing-websocket-client.d.ts.map +1 -0
  84. package/dist/esm/types/utils/sse-client.d.ts +92 -0
  85. package/dist/esm/types/utils/sse-client.d.ts.map +1 -0
  86. package/dist/esm/types/utils/websocket-client.d.ts +118 -0
  87. package/dist/esm/types/utils/websocket-client.d.ts.map +1 -0
  88. package/dist/esm/utils/code-solver-websocket-client.js +263 -0
  89. package/dist/esm/utils/code-solver-websocket-client.js.map +1 -0
  90. package/dist/esm/utils/http-client.js +227 -0
  91. package/dist/esm/utils/http-client.js.map +1 -0
  92. package/dist/esm/utils/indexing-websocket-client.js +103 -0
  93. package/dist/esm/utils/indexing-websocket-client.js.map +1 -0
  94. package/dist/esm/utils/sse-client.js +229 -0
  95. package/dist/esm/utils/sse-client.js.map +1 -0
  96. package/dist/esm/utils/websocket-client.js +264 -0
  97. package/dist/esm/utils/websocket-client.js.map +1 -0
  98. package/dist/index.d.ts +1599 -0
  99. package/dist/types/api/agents-api.d.ts +141 -0
  100. package/dist/types/api/agents-api.d.ts.map +1 -0
  101. package/dist/types/api/code-modification-api.d.ts +104 -0
  102. package/dist/types/api/code-modification-api.d.ts.map +1 -0
  103. package/dist/types/api/context-api.d.ts +86 -0
  104. package/dist/types/api/context-api.d.ts.map +1 -0
  105. package/dist/types/api/projects-api.d.ts +89 -0
  106. package/dist/types/api/projects-api.d.ts.map +1 -0
  107. package/dist/types/api/reasoning-api.d.ts +130 -0
  108. package/dist/types/api/reasoning-api.d.ts.map +1 -0
  109. package/dist/types/api/search-api.d.ts +92 -0
  110. package/dist/types/api/search-api.d.ts.map +1 -0
  111. package/dist/types/code-solver-sdk.d.ts +145 -0
  112. package/dist/types/code-solver-sdk.d.ts.map +1 -0
  113. package/dist/types/index.d.ts +81 -0
  114. package/dist/types/index.d.ts.map +1 -0
  115. package/dist/types/interfaces/http-client.d.ts +110 -0
  116. package/dist/types/interfaces/http-client.d.ts.map +1 -0
  117. package/dist/types/interfaces/sdk-options.d.ts +34 -0
  118. package/dist/types/interfaces/sdk-options.d.ts.map +1 -0
  119. package/dist/types/models/types.d.ts +139 -0
  120. package/dist/types/models/types.d.ts.map +1 -0
  121. package/dist/types/utils/code-solver-websocket-client.d.ts +138 -0
  122. package/dist/types/utils/code-solver-websocket-client.d.ts.map +1 -0
  123. package/dist/types/utils/http-client.d.ts +85 -0
  124. package/dist/types/utils/http-client.d.ts.map +1 -0
  125. package/dist/types/utils/indexing-websocket-client.d.ts +123 -0
  126. package/dist/types/utils/indexing-websocket-client.d.ts.map +1 -0
  127. package/dist/types/utils/sse-client.d.ts +92 -0
  128. package/dist/types/utils/sse-client.d.ts.map +1 -0
  129. package/dist/types/utils/websocket-client.d.ts +118 -0
  130. package/dist/types/utils/websocket-client.d.ts.map +1 -0
  131. package/dist/umd/code-solver-sdk.js +1902 -0
  132. package/dist/umd/code-solver-sdk.js.map +1 -0
  133. package/dist/umd/code-solver-sdk.min.js +2 -0
  134. package/dist/umd/code-solver-sdk.min.js.map +1 -0
  135. package/dist/umd/types/api/agents-api.d.ts +141 -0
  136. package/dist/umd/types/api/agents-api.d.ts.map +1 -0
  137. package/dist/umd/types/api/code-modification-api.d.ts +104 -0
  138. package/dist/umd/types/api/code-modification-api.d.ts.map +1 -0
  139. package/dist/umd/types/api/context-api.d.ts +86 -0
  140. package/dist/umd/types/api/context-api.d.ts.map +1 -0
  141. package/dist/umd/types/api/projects-api.d.ts +89 -0
  142. package/dist/umd/types/api/projects-api.d.ts.map +1 -0
  143. package/dist/umd/types/api/reasoning-api.d.ts +130 -0
  144. package/dist/umd/types/api/reasoning-api.d.ts.map +1 -0
  145. package/dist/umd/types/api/search-api.d.ts +92 -0
  146. package/dist/umd/types/api/search-api.d.ts.map +1 -0
  147. package/dist/umd/types/code-solver-sdk.d.ts +145 -0
  148. package/dist/umd/types/code-solver-sdk.d.ts.map +1 -0
  149. package/dist/umd/types/index.d.ts +81 -0
  150. package/dist/umd/types/index.d.ts.map +1 -0
  151. package/dist/umd/types/interfaces/http-client.d.ts +110 -0
  152. package/dist/umd/types/interfaces/http-client.d.ts.map +1 -0
  153. package/dist/umd/types/interfaces/sdk-options.d.ts +34 -0
  154. package/dist/umd/types/interfaces/sdk-options.d.ts.map +1 -0
  155. package/dist/umd/types/models/types.d.ts +139 -0
  156. package/dist/umd/types/models/types.d.ts.map +1 -0
  157. package/dist/umd/types/utils/code-solver-websocket-client.d.ts +138 -0
  158. package/dist/umd/types/utils/code-solver-websocket-client.d.ts.map +1 -0
  159. package/dist/umd/types/utils/http-client.d.ts +85 -0
  160. package/dist/umd/types/utils/http-client.d.ts.map +1 -0
  161. package/dist/umd/types/utils/indexing-websocket-client.d.ts +123 -0
  162. package/dist/umd/types/utils/indexing-websocket-client.d.ts.map +1 -0
  163. package/dist/umd/types/utils/sse-client.d.ts +92 -0
  164. package/dist/umd/types/utils/sse-client.d.ts.map +1 -0
  165. package/dist/umd/types/utils/websocket-client.d.ts +118 -0
  166. package/dist/umd/types/utils/websocket-client.d.ts.map +1 -0
  167. package/package.json +98 -0
@@ -0,0 +1,56 @@
1
+ /**
2
+ * API для модификации кода
3
+ */
4
+ export class CodeModificationApi {
5
+ /**
6
+ * Создает новый экземпляр API для модификации кода
7
+ * @param {HttpClient} httpClient HTTP клиент
8
+ */
9
+ constructor(httpClient) {
10
+ this.httpClient = httpClient;
11
+ }
12
+ /**
13
+ * Выполняет модификацию кода
14
+ * @param {CodeModificationParams} params Параметры модификации
15
+ * @returns {Promise<CodeModificationResult>} Результат модификации
16
+ */
17
+ async modifyCode(params) {
18
+ return this.httpClient.post('/api/code-modifications', params);
19
+ }
20
+ /**
21
+ * Применяет результат модификации к файлу
22
+ * @param {string} modificationId Идентификатор модификации
23
+ * @returns {Promise<CodeModificationResult>} Обновленный результат модификации
24
+ */
25
+ async applyModification(modificationId) {
26
+ return this.httpClient.post(`/api/code-modifications/${modificationId}/apply`);
27
+ }
28
+ /**
29
+ * Отменяет применение модификации
30
+ * @param {string} modificationId Идентификатор модификации
31
+ * @returns {Promise<CodeModificationResult>} Обновленный результат модификации
32
+ */
33
+ async revertModification(modificationId) {
34
+ return this.httpClient.post(`/api/code-modifications/${modificationId}/revert`);
35
+ }
36
+ /**
37
+ * Получает модификацию по идентификатору
38
+ * @param {string} modificationId Идентификатор модификации
39
+ * @returns {Promise<CodeModificationResult>} Результат модификации
40
+ */
41
+ async getModification(modificationId) {
42
+ return this.httpClient.get(`/api/code-modifications/${modificationId}`);
43
+ }
44
+ /**
45
+ * Получает список модификаций для проекта
46
+ * @param {string} projectId Идентификатор проекта
47
+ * @param {object} [params] Параметры запроса
48
+ * @param {number} [params.limit] Лимит результатов
49
+ * @param {number} [params.offset] Смещение для пагинации
50
+ * @returns {Promise<CodeModificationResult[]>} Список результатов модификации
51
+ */
52
+ async getModifications(projectId, params) {
53
+ return this.httpClient.get(`/api/projects/${projectId}/code-modifications`, params);
54
+ }
55
+ }
56
+ //# sourceMappingURL=code-modification-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-modification-api.js","sourceRoot":"","sources":["../../../src/api/code-modification-api.ts"],"names":[],"mappings":"AA2EA;;GAEG;AACH,MAAM,OAAO,mBAAmB;IAI9B;;;OAGG;IACH,YAAY,UAAsB;QAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,UAAU,CAAC,MAA8B;QACpD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,iBAAiB,CAAC,cAAsB;QACnD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,2BAA2B,cAAc,QAAQ,CAAC,CAAC;IACjF,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,kBAAkB,CAAC,cAAsB;QACpD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,2BAA2B,cAAc,SAAS,CAAC,CAAC;IAClF,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,eAAe,CAAC,cAAsB;QACjD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,2BAA2B,cAAc,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,gBAAgB,CAC3B,SAAiB,EACjB,MAA4C;QAE5C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,SAAS,qBAAqB,EAAE,MAAM,CAAC,CAAC;IACtF,CAAC;CACF"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * API для работы с контекстом
3
+ */
4
+ export class ContextApi {
5
+ /**
6
+ * Создает новый экземпляр API для работы с контекстом
7
+ * @param {HttpClient} httpClient HTTP клиент
8
+ */
9
+ constructor(httpClient) {
10
+ this.httpClient = httpClient;
11
+ }
12
+ /**
13
+ * Определяет контекст для запроса
14
+ * @param {DetectContextParams} params Параметры определения контекста
15
+ * @returns {Promise<AutoContext>} Определенный контекст
16
+ */
17
+ async detectContext(params) {
18
+ return this.httpClient.post('/api/context/detect', params);
19
+ }
20
+ /**
21
+ * Получает содержимое файла
22
+ * @param {string} projectId Идентификатор проекта
23
+ * @param {string} filePath Путь к файлу
24
+ * @returns {Promise<string>} Содержимое файла
25
+ */
26
+ async getFileContent(projectId, filePath) {
27
+ return this.httpClient.get(`/api/projects/${projectId}/files`, { path: filePath });
28
+ }
29
+ /**
30
+ * Получает содержимое фрагмента файла
31
+ * @param {string} projectId Идентификатор проекта
32
+ * @param {string} filePath Путь к файлу
33
+ * @param {number} startLine Начальная строка
34
+ * @param {number} endLine Конечная строка
35
+ * @returns {Promise<CodeSnippet>} Фрагмент кода
36
+ */
37
+ async getFileSnippet(projectId, filePath, startLine, endLine) {
38
+ return this.httpClient.get(`/api/projects/${projectId}/snippets`, {
39
+ path: filePath,
40
+ startLine,
41
+ endLine
42
+ });
43
+ }
44
+ /**
45
+ * Получает структуру директории
46
+ * @param {string} projectId Идентификатор проекта
47
+ * @param {string} [dirPath='/'] Путь к директории
48
+ * @returns {Promise<Array<{name: string, type: 'file' | 'directory', path: string}>>} Структура директории
49
+ */
50
+ async getDirectoryStructure(projectId, dirPath = '/') {
51
+ return this.httpClient.get(`/api/projects/${projectId}/directory`, { path: dirPath });
52
+ }
53
+ }
54
+ //# sourceMappingURL=context-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-api.js","sourceRoot":"","sources":["../../../src/api/context-api.ts"],"names":[],"mappings":"AAqDA;;GAEG;AACH,MAAM,OAAO,UAAU;IAIrB;;;OAGG;IACH,YAAY,UAAsB;QAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,aAAa,CAAC,MAA2B;QACpD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,cAAc,CAAC,SAAiB,EAAE,QAAgB;QAC7D,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,SAAS,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACrF,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,cAAc,CACzB,SAAiB,EACjB,QAAgB,EAChB,SAAiB,EACjB,OAAe;QAEf,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,SAAS,WAAW,EAAE;YAChE,IAAI,EAAE,QAAQ;YACd,SAAS;YACT,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,qBAAqB,CAChC,SAAiB,EACjB,UAAkB,GAAG;QAErB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,SAAS,YAAY,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACxF,CAAC;CACF"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * API для работы с проектами
3
+ */
4
+ export class ProjectsApi {
5
+ /**
6
+ * Создает новый экземпляр API для работы с проектами
7
+ * @param {HttpClient} httpClient HTTP клиент
8
+ */
9
+ constructor(httpClient) {
10
+ this.httpClient = httpClient;
11
+ }
12
+ /**
13
+ * Получает список всех проектов
14
+ * @returns {Promise<Project[]>} Список проектов
15
+ */
16
+ async getAllProjects() {
17
+ return this.httpClient.get('/api/projects');
18
+ }
19
+ /**
20
+ * Получает проект по идентификатору
21
+ * @param {string} projectId Идентификатор проекта
22
+ * @returns {Promise<Project>} Проект
23
+ */
24
+ async getProject(projectId) {
25
+ return this.httpClient.get(`/api/projects/${projectId}`);
26
+ }
27
+ /**
28
+ * Создает новый проект
29
+ * @param {string} name Название проекта
30
+ * @param {string} path Путь к проекту
31
+ * @returns {Promise<Project>} Созданный проект
32
+ */
33
+ async createProject(name, path) {
34
+ return this.httpClient.post('/api/projects', { name, path });
35
+ }
36
+ /**
37
+ * Обновляет проект
38
+ * @param {string} projectId Идентификатор проекта
39
+ * @param {Partial<Pick<Project, 'name' | 'path'>>} data Данные для обновления
40
+ * @returns {Promise<Project>} Обновленный проект
41
+ */
42
+ async updateProject(projectId, data) {
43
+ return this.httpClient.put(`/api/projects/${projectId}`, data);
44
+ }
45
+ /**
46
+ * Удаляет проект
47
+ * @param {string} projectId Идентификатор проекта
48
+ * @returns {Promise<void>}
49
+ */
50
+ async deleteProject(projectId) {
51
+ return this.httpClient.delete(`/api/projects/${projectId}`);
52
+ }
53
+ /**
54
+ * Запускает индексацию проекта
55
+ * @param {string} projectId Идентификатор проекта
56
+ * @returns {Promise<Project>} Обновленный проект
57
+ */
58
+ async indexProject(projectId) {
59
+ return this.httpClient.post(`/api/projects/${projectId}/index`);
60
+ }
61
+ /**
62
+ * Останавливает индексацию проекта
63
+ * @param {string} projectId Идентификатор проекта
64
+ * @returns {Promise<Project>} Обновленный проект
65
+ */
66
+ async stopIndexing(projectId) {
67
+ return this.httpClient.post(`/api/projects/${projectId}/stop-indexing`);
68
+ }
69
+ /**
70
+ * Получает статус индексации проекта
71
+ * @param {string} projectId Идентификатор проекта
72
+ * @returns {Promise<Project>} Проект с обновленным статусом индексации
73
+ */
74
+ async getIndexingStatus(projectId) {
75
+ return this.httpClient.get(`/api/projects/${projectId}/indexing-status`);
76
+ }
77
+ }
78
+ //# sourceMappingURL=projects-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects-api.js","sourceRoot":"","sources":["../../../src/api/projects-api.ts"],"names":[],"mappings":"AAqCA;;GAEG;AACH,MAAM,OAAO,WAAW;IAItB;;;OAGG;IACH,YAAY,UAAsB;QAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,cAAc;QACzB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC9C,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,UAAU,CAAC,SAAiB;QACvC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,SAAS,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,aAAa,CAAC,IAAY,EAAE,IAAY;QACnD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,aAAa,CACxB,SAAiB,EACjB,IAA6C;QAE7C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;IACjE,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,aAAa,CAAC,SAAiB;QAC1C,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,iBAAiB,SAAS,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,YAAY,CAAC,SAAiB;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,SAAS,QAAQ,CAAC,CAAC;IAClE,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,YAAY,CAAC,SAAiB;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,SAAS,gBAAgB,CAAC,CAAC;IAC1E,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,iBAAiB,CAAC,SAAiB;QAC9C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,SAAS,kBAAkB,CAAC,CAAC;IAC3E,CAAC;CACF"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * API для работы с рассуждениями
3
+ */
4
+ export class ReasoningApi {
5
+ /**
6
+ * Создает новый экземпляр API для работы с рассуждениями
7
+ * @param {HttpClient} httpClient HTTP клиент
8
+ */
9
+ constructor(httpClient) {
10
+ this.httpClient = httpClient;
11
+ }
12
+ /**
13
+ * Получает список рассуждений
14
+ * @param {GetReasoningsParams} [params] Параметры для получения списка
15
+ * @returns {Promise<Reasoning[]>} Список рассуждений
16
+ */
17
+ async getReasonings(params) {
18
+ return this.httpClient.get('/api/reasonings', params);
19
+ }
20
+ /**
21
+ * Получает рассуждение по идентификатору
22
+ * @param {string} reasoningId Идентификатор рассуждения
23
+ * @returns {Promise<Reasoning>} Рассуждение
24
+ */
25
+ async getReasoning(reasoningId) {
26
+ return this.httpClient.get(`/api/reasonings/${reasoningId}`);
27
+ }
28
+ /**
29
+ * Создает новое рассуждение
30
+ * @param {CreateReasoningParams} params Параметры рассуждения
31
+ * @returns {Promise<Reasoning>} Созданное рассуждение
32
+ */
33
+ async createReasoning(params) {
34
+ return this.httpClient.post('/api/reasonings', params);
35
+ }
36
+ /**
37
+ * Запускает процесс рассуждения
38
+ * @param {string} reasoningId Идентификатор рассуждения
39
+ * @returns {Promise<Reasoning>} Рассуждение
40
+ */
41
+ async startReasoning(reasoningId) {
42
+ return this.httpClient.post(`/api/reasonings/${reasoningId}/start`);
43
+ }
44
+ /**
45
+ * Останавливает процесс рассуждения
46
+ * @param {string} reasoningId Идентификатор рассуждения
47
+ * @returns {Promise<Reasoning>} Рассуждение
48
+ */
49
+ async stopReasoning(reasoningId) {
50
+ return this.httpClient.post(`/api/reasonings/${reasoningId}/stop`);
51
+ }
52
+ /**
53
+ * Удаляет рассуждение
54
+ * @param {string} reasoningId Идентификатор рассуждения
55
+ * @returns {Promise<void>}
56
+ */
57
+ async deleteReasoning(reasoningId) {
58
+ return this.httpClient.delete(`/api/reasonings/${reasoningId}`);
59
+ }
60
+ /**
61
+ * Получает промежуточные мысли рассуждения
62
+ * @param {string} reasoningId Идентификатор рассуждения
63
+ * @returns {Promise<string[]>} Промежуточные мысли
64
+ */
65
+ async getThinking(reasoningId) {
66
+ return this.httpClient.get(`/api/reasonings/${reasoningId}/thinking`);
67
+ }
68
+ }
69
+ //# sourceMappingURL=reasoning-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reasoning-api.js","sourceRoot":"","sources":["../../../src/api/reasoning-api.ts"],"names":[],"mappings":"AAqGA;;GAEG;AACH,MAAM,OAAO,YAAY;IAIvB;;;OAGG;IACH,YAAY,UAAsB;QAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,aAAa,CAAC,MAA4B;QACrD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,YAAY,CAAC,WAAmB;QAC3C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,mBAAmB,WAAW,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,eAAe,CAAC,MAA6B;QACxD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,cAAc,CAAC,WAAmB;QAC7C,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,WAAW,QAAQ,CAAC,CAAC;IACtE,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,aAAa,CAAC,WAAmB;QAC5C,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,WAAW,OAAO,CAAC,CAAC;IACrE,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,eAAe,CAAC,WAAmB;QAC9C,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,mBAAmB,WAAW,EAAE,CAAC,CAAC;IAClE,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,WAAW,CAAC,WAAmB;QAC1C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,mBAAmB,WAAW,WAAW,CAAC,CAAC;IACxE,CAAC;CACF"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * API для поиска кода
3
+ */
4
+ export class SearchApi {
5
+ /**
6
+ * Создает новый экземпляр API для поиска кода
7
+ * @param {HttpClient} httpClient HTTP клиент
8
+ */
9
+ constructor(httpClient) {
10
+ this.httpClient = httpClient;
11
+ }
12
+ /**
13
+ * Выполняет поиск кода в проекте
14
+ * @param {string} projectId Идентификатор проекта
15
+ * @param {SearchCodeParams} params Параметры поиска
16
+ * @returns {Promise<SearchResults>} Результаты поиска
17
+ */
18
+ async searchCode(projectId, params) {
19
+ return this.httpClient.post(`/api/projects/${projectId}/search`, params);
20
+ }
21
+ /**
22
+ * Выполняет семантический поиск кода в проекте
23
+ * @param {string} projectId Идентификатор проекта
24
+ * @param {SearchCodeParams} params Параметры поиска
25
+ * @returns {Promise<SearchResults>} Результаты поиска
26
+ */
27
+ async semanticSearch(projectId, params) {
28
+ return this.httpClient.post(`/api/projects/${projectId}/semantic-search`, params);
29
+ }
30
+ /**
31
+ * Получает популярные поисковые запросы
32
+ * @param {string} projectId Идентификатор проекта
33
+ * @param {number} [limit=10] Лимит результатов
34
+ * @returns {Promise<string[]>} Популярные поисковые запросы
35
+ */
36
+ async getPopularQueries(projectId, limit = 10) {
37
+ return this.httpClient.get(`/api/projects/${projectId}/popular-queries`, { limit });
38
+ }
39
+ /**
40
+ * Получает подсказки для автозаполнения поискового запроса
41
+ * @param {string} projectId Идентификатор проекта
42
+ * @param {string} query Начало поискового запроса
43
+ * @param {number} [limit=5] Лимит результатов
44
+ * @returns {Promise<string[]>} Подсказки для автозаполнения
45
+ */
46
+ async getQuerySuggestions(projectId, query, limit = 5) {
47
+ return this.httpClient.get(`/api/projects/${projectId}/query-suggestions`, { query, limit });
48
+ }
49
+ }
50
+ //# sourceMappingURL=search-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-api.js","sourceRoot":"","sources":["../../../src/api/search-api.ts"],"names":[],"mappings":"AAoEA;;GAEG;AACH,MAAM,OAAO,SAAS;IAIpB;;;OAGG;IACH,YAAY,UAAsB;QAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,UAAU,CAAC,SAAiB,EAAE,MAAwB;QACjE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,SAAS,SAAS,EAAE,MAAM,CAAC,CAAC;IAC3E,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,cAAc,CAAC,SAAiB,EAAE,MAAwB;QACrE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,SAAS,kBAAkB,EAAE,MAAM,CAAC,CAAC;IACpF,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,iBAAiB,CAAC,SAAiB,EAAE,QAAgB,EAAE;QAClE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,SAAS,kBAAkB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACtF,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,mBAAmB,CAC9B,SAAiB,EACjB,KAAa,EACb,QAAgB,CAAC;QAEjB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,SAAS,oBAAoB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/F,CAAC;CACF"}
@@ -0,0 +1,323 @@
1
+ import { HttpClient } from './utils/http-client.js';
2
+ import { ProjectsApi } from './api/projects-api.js';
3
+ import { SearchApi } from './api/search-api.js';
4
+ import { ContextApi } from './api/context-api.js';
5
+ import { ReasoningApi } from './api/reasoning-api.js';
6
+ import { CodeModificationApi } from './api/code-modification-api.js';
7
+ import { CodeSolverWebSocketClient, WebSocketNamespace } from './utils/code-solver-websocket-client.js';
8
+ import { AgentsApi } from './api/agents-api.js';
9
+ // Версия SDK
10
+ const SDK_VERSION = '1.0.0';
11
+ /**
12
+ * Определение типа среды выполнения
13
+ * @returns 'browser' | 'node' | 'unknown'
14
+ */
15
+ function getEnvironment() {
16
+ if (typeof window !== 'undefined' && typeof window.document !== 'undefined') {
17
+ return 'browser';
18
+ }
19
+ else if (typeof process !== 'undefined' && process.versions && process.versions.node) {
20
+ return 'node';
21
+ }
22
+ return 'unknown';
23
+ }
24
+ /**
25
+ * Основной класс SDK для работы с Code Solver API
26
+ * Поддерживает работу как в браузере, так и в Node.js
27
+ */
28
+ export class CodeSolverSDK {
29
+ /**
30
+ * Создает новый экземпляр SDK
31
+ * @param {CodeSolverSDKOptions} options Опции SDK
32
+ */
33
+ constructor(options) {
34
+ /** WebSocket клиент для работы с реалтайм API */
35
+ this.wsClient = null;
36
+ this._options = {
37
+ ...options,
38
+ mode: options.mode || 'auto'
39
+ };
40
+ // Определяем среду выполнения
41
+ this.environment = this._options.mode === 'auto'
42
+ ? getEnvironment()
43
+ : this._options.mode === 'browser' ? 'browser' : 'node';
44
+ // Инициализируем HTTP клиент
45
+ this.httpClient = new HttpClient(this._options.baseURL, {
46
+ headers: {
47
+ ...(this._options.apiKey ? { 'Authorization': `Bearer ${this._options.apiKey}` } : {}),
48
+ ...(this._options.headers || {})
49
+ },
50
+ timeout: this._options.timeout,
51
+ httpsAgent: this.environment === 'node' ? this._options.httpsAgent : undefined
52
+ });
53
+ // Инициализируем API клиенты
54
+ this._agents = new AgentsApi(this.httpClient);
55
+ this._context = new ContextApi(this.httpClient);
56
+ this._projects = new ProjectsApi(this.httpClient);
57
+ this._search = new SearchApi(this.httpClient);
58
+ this._reasoning = new ReasoningApi(this.httpClient);
59
+ this._codeModification = new CodeModificationApi(this.httpClient);
60
+ }
61
+ /**
62
+ * Проверяет доступность API
63
+ * @returns {Promise<boolean>} Доступен ли API
64
+ */
65
+ async checkHealth() {
66
+ try {
67
+ await this.httpClient.get('/health');
68
+ return true;
69
+ }
70
+ catch (error) {
71
+ return false;
72
+ }
73
+ }
74
+ /**
75
+ * Получает WebSocket клиент
76
+ * @returns {CodeSolverWebSocketClient} WebSocket клиент
77
+ */
78
+ getWebSocketClient() {
79
+ if (!this.wsClient) {
80
+ this.wsClient = new CodeSolverWebSocketClient(this._options.baseURL, {
81
+ apiKey: this._options.apiKey,
82
+ headers: this._options.headers
83
+ });
84
+ }
85
+ return this.wsClient;
86
+ }
87
+ /**
88
+ * API для работы с агентами
89
+ */
90
+ get agents() {
91
+ return this._agents;
92
+ }
93
+ /**
94
+ * API для работы с контекстом
95
+ */
96
+ get context() {
97
+ return this._context;
98
+ }
99
+ /**
100
+ * API для работы с проектами
101
+ */
102
+ get projects() {
103
+ return this._projects;
104
+ }
105
+ /**
106
+ * API для поиска кода
107
+ */
108
+ get search() {
109
+ return this._search;
110
+ }
111
+ /**
112
+ * API для работы с рассуждениями
113
+ */
114
+ get reasoning() {
115
+ return this._reasoning;
116
+ }
117
+ /**
118
+ * API для модификации кода
119
+ */
120
+ get codeModification() {
121
+ return this._codeModification;
122
+ }
123
+ /**
124
+ * Опции SDK
125
+ */
126
+ get options() {
127
+ return this._options;
128
+ }
129
+ /**
130
+ * Получает текущую среду выполнения
131
+ * @returns {string} Среда выполнения ('browser', 'node', 'unknown')
132
+ */
133
+ getEnvironment() {
134
+ return this.environment;
135
+ }
136
+ /**
137
+ * Закрывает все соединения и освобождает ресурсы
138
+ */
139
+ dispose() {
140
+ if (this.wsClient) {
141
+ this.wsClient.disconnectAll();
142
+ this.wsClient = null;
143
+ }
144
+ }
145
+ /**
146
+ * Устанавливает глобальный обработчик ошибок SDK
147
+ * @param {(error: Error) => void} handler Функция-обработчик ошибок
148
+ */
149
+ static setErrorHandler(handler) {
150
+ CodeSolverSDK.errorHandler = handler;
151
+ }
152
+ /**
153
+ * Обрабатывает ошибку через глобальный обработчик, если он установлен
154
+ * @param {Error} error Ошибка для обработки
155
+ */
156
+ static handleError(error) {
157
+ if (CodeSolverSDK.errorHandler) {
158
+ CodeSolverSDK.errorHandler(error);
159
+ }
160
+ else {
161
+ console.error('[CodeSolverSDK]', error);
162
+ }
163
+ }
164
+ /**
165
+ * Возвращает текущую версию SDK
166
+ * @returns {string} Версия SDK
167
+ */
168
+ static getVersion() {
169
+ return SDK_VERSION;
170
+ }
171
+ /**
172
+ * Возвращает текущую версию SDK
173
+ * @returns {string} Версия SDK
174
+ */
175
+ getVersion() {
176
+ return SDK_VERSION;
177
+ }
178
+ /**
179
+ * Устанавливает новый API ключ для SDK
180
+ * @param {string} apiKey Новый API ключ
181
+ */
182
+ setApiKey(apiKey) {
183
+ if (!apiKey) {
184
+ throw new Error('API ключ не может быть пустым');
185
+ }
186
+ // Обновляем опции
187
+ this._options.apiKey = apiKey;
188
+ // Пересоздаем HTTP клиент с новым API ключом
189
+ const newHttpClient = new HttpClient(this._options.baseURL, {
190
+ headers: {
191
+ ...this._options.headers,
192
+ 'Authorization': `Bearer ${apiKey}`
193
+ },
194
+ timeout: this._options.timeout,
195
+ httpsAgent: this.environment === 'node' ? this._options.httpsAgent : undefined
196
+ });
197
+ // Обновляем ссылки на клиент и API
198
+ this.httpClient = newHttpClient;
199
+ this._agents = new AgentsApi(newHttpClient);
200
+ this._context = new ContextApi(newHttpClient);
201
+ this._projects = new ProjectsApi(newHttpClient);
202
+ this._search = new SearchApi(newHttpClient);
203
+ this._reasoning = new ReasoningApi(newHttpClient);
204
+ this._codeModification = new CodeModificationApi(newHttpClient);
205
+ // Если есть WebSocket клиент, пересоздаем его
206
+ if (this.wsClient) {
207
+ const isConnected = this.wsClient.isConnectedToReasoning() || this.wsClient.isConnectedToIndexing();
208
+ this.wsClient.disconnectAll();
209
+ this.wsClient = new CodeSolverWebSocketClient(this._options.baseURL, {
210
+ apiKey,
211
+ headers: this._options.headers
212
+ });
213
+ // Если был подключен, восстанавливаем соединение
214
+ if (isConnected) {
215
+ this.connect().catch(() => { });
216
+ }
217
+ }
218
+ }
219
+ /**
220
+ * Подключается к WebSocket серверу
221
+ * @returns {Promise<boolean>} Promise с результатом подключения
222
+ */
223
+ async connect() {
224
+ try {
225
+ const wsClient = this.getWebSocketClient();
226
+ // Подключаемся к обоим пространствам имен
227
+ await wsClient.connectToReasoning();
228
+ await wsClient.connectToIndexing();
229
+ return true;
230
+ }
231
+ catch (error) {
232
+ CodeSolverSDK.handleError(error);
233
+ return false;
234
+ }
235
+ }
236
+ /**
237
+ * Отключается от WebSocket сервера
238
+ * @returns {Promise<void>} Promise без результата
239
+ */
240
+ async disconnect() {
241
+ if (this.wsClient) {
242
+ await this.wsClient.disconnectAll();
243
+ }
244
+ }
245
+ /**
246
+ * Проверяет, подключен ли SDK к WebSocket серверу
247
+ * @returns {boolean} Статус подключения
248
+ */
249
+ isConnected() {
250
+ if (!this.wsClient)
251
+ return false;
252
+ return this.wsClient.isConnectedToReasoning() || this.wsClient.isConnectedToIndexing();
253
+ }
254
+ /**
255
+ * Проверяет доступность API (алиас для checkHealth)
256
+ * @returns {Promise<boolean>} Promise с результатом проверки
257
+ */
258
+ async isHealthy() {
259
+ return this.checkHealth();
260
+ }
261
+ /**
262
+ * Проверяет доступность всех сервисов API
263
+ * @returns {Promise<{[key: string]: boolean}>} Статус каждого сервиса
264
+ */
265
+ async checkServices() {
266
+ try {
267
+ const results = {
268
+ api: false,
269
+ websocket: false,
270
+ database: false,
271
+ search: false
272
+ };
273
+ try {
274
+ // Проверка API
275
+ results.api = await this.checkHealth();
276
+ // Проверка других компонентов через запрос статуса
277
+ const response = await this.httpClient.get('/api/v1/status');
278
+ if (response && typeof response === 'object') {
279
+ results.database = Boolean(response.database?.connected);
280
+ results.search = Boolean(response.search?.connected);
281
+ // Проверка WebSocket соединения
282
+ if (this.wsClient) {
283
+ results.websocket = this.wsClient.isConnectedToReasoning() ||
284
+ this.wsClient.isConnectedToIndexing();
285
+ }
286
+ else {
287
+ try {
288
+ const wsClient = this.getWebSocketClient();
289
+ await wsClient.connectToReasoning();
290
+ results.websocket = true;
291
+ await wsClient.disconnect(WebSocketNamespace.REASONING);
292
+ }
293
+ catch (e) {
294
+ results.websocket = false;
295
+ }
296
+ }
297
+ }
298
+ }
299
+ catch (error) {
300
+ // Игнорируем ошибки при проверке
301
+ }
302
+ return results;
303
+ }
304
+ catch (error) {
305
+ return {
306
+ api: false,
307
+ websocket: false,
308
+ database: false,
309
+ search: false
310
+ };
311
+ }
312
+ }
313
+ /**
314
+ * Закрывает соединение с сервером (алиас для dispose)
315
+ */
316
+ close() {
317
+ this.dispose();
318
+ return Promise.resolve();
319
+ }
320
+ }
321
+ /** Глобальный обработчик ошибок */
322
+ CodeSolverSDK.errorHandler = null;
323
+ //# sourceMappingURL=code-solver-sdk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-solver-sdk.js","sourceRoot":"","sources":["../../src/code-solver-sdk.ts"],"names":[],"mappings":"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"}