tianxincode 1.0.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.
Files changed (374) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +57 -0
  3. package/dist/api/api.types.d.ts +350 -0
  4. package/dist/api/api.types.d.ts.map +1 -0
  5. package/dist/api/api.types.js +12 -0
  6. package/dist/api/api.types.js.map +1 -0
  7. package/dist/api/chat.routes.d.ts +26 -0
  8. package/dist/api/chat.routes.d.ts.map +1 -0
  9. package/dist/api/chat.routes.js +275 -0
  10. package/dist/api/chat.routes.js.map +1 -0
  11. package/dist/api/config.routes.d.ts +10 -0
  12. package/dist/api/config.routes.d.ts.map +1 -0
  13. package/dist/api/config.routes.js +150 -0
  14. package/dist/api/config.routes.js.map +1 -0
  15. package/dist/api/db.routes.d.ts +12 -0
  16. package/dist/api/db.routes.d.ts.map +1 -0
  17. package/dist/api/db.routes.js +108 -0
  18. package/dist/api/db.routes.js.map +1 -0
  19. package/dist/api/files.routes.d.ts +14 -0
  20. package/dist/api/files.routes.d.ts.map +1 -0
  21. package/dist/api/files.routes.js +220 -0
  22. package/dist/api/files.routes.js.map +1 -0
  23. package/dist/api/filesystem.routes.d.ts +10 -0
  24. package/dist/api/filesystem.routes.d.ts.map +1 -0
  25. package/dist/api/filesystem.routes.js +181 -0
  26. package/dist/api/filesystem.routes.js.map +1 -0
  27. package/dist/api/index.d.ts +6 -0
  28. package/dist/api/index.d.ts.map +1 -0
  29. package/dist/api/index.js +25 -0
  30. package/dist/api/index.js.map +1 -0
  31. package/dist/api/lsp.d.ts +5 -0
  32. package/dist/api/lsp.d.ts.map +1 -0
  33. package/dist/api/lsp.js +103 -0
  34. package/dist/api/lsp.js.map +1 -0
  35. package/dist/api/projects.routes.d.ts +18 -0
  36. package/dist/api/projects.routes.d.ts.map +1 -0
  37. package/dist/api/projects.routes.js +306 -0
  38. package/dist/api/projects.routes.js.map +1 -0
  39. package/dist/api/session.routes.d.ts +18 -0
  40. package/dist/api/session.routes.d.ts.map +1 -0
  41. package/dist/api/session.routes.js +186 -0
  42. package/dist/api/session.routes.js.map +1 -0
  43. package/dist/api/skills.routes.d.ts +6 -0
  44. package/dist/api/skills.routes.d.ts.map +1 -0
  45. package/dist/api/skills.routes.js +54 -0
  46. package/dist/api/skills.routes.js.map +1 -0
  47. package/dist/cli/args.d.ts +49 -0
  48. package/dist/cli/args.d.ts.map +1 -0
  49. package/dist/cli/args.js +77 -0
  50. package/dist/cli/args.js.map +1 -0
  51. package/dist/cli/cli.types.d.ts +22 -0
  52. package/dist/cli/cli.types.d.ts.map +1 -0
  53. package/dist/cli/cli.types.js +5 -0
  54. package/dist/cli/cli.types.js.map +1 -0
  55. package/dist/cli/commands.d.ts +30 -0
  56. package/dist/cli/commands.d.ts.map +1 -0
  57. package/dist/cli/commands.js +263 -0
  58. package/dist/cli/commands.js.map +1 -0
  59. package/dist/cli/index.d.ts +7 -0
  60. package/dist/cli/index.d.ts.map +1 -0
  61. package/dist/cli/index.js +6 -0
  62. package/dist/cli/index.js.map +1 -0
  63. package/dist/components/App.d.ts +34 -0
  64. package/dist/components/App.d.ts.map +1 -0
  65. package/dist/components/App.js +639 -0
  66. package/dist/components/App.js.map +1 -0
  67. package/dist/config/index.d.ts +2 -0
  68. package/dist/config/index.d.ts.map +1 -0
  69. package/dist/config/index.js +2 -0
  70. package/dist/config/index.js.map +1 -0
  71. package/dist/config/tx.config.d.ts +31 -0
  72. package/dist/config/tx.config.d.ts.map +1 -0
  73. package/dist/config/tx.config.js +29 -0
  74. package/dist/config/tx.config.js.map +1 -0
  75. package/dist/index.d.ts +15 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +79 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/lsp/client.d.ts +55 -0
  80. package/dist/lsp/client.d.ts.map +1 -0
  81. package/dist/lsp/client.js +252 -0
  82. package/dist/lsp/client.js.map +1 -0
  83. package/dist/lsp/downloader.d.ts +17 -0
  84. package/dist/lsp/downloader.d.ts.map +1 -0
  85. package/dist/lsp/downloader.js +302 -0
  86. package/dist/lsp/downloader.js.map +1 -0
  87. package/dist/lsp/index.d.ts +13 -0
  88. package/dist/lsp/index.d.ts.map +1 -0
  89. package/dist/lsp/index.js +30 -0
  90. package/dist/lsp/index.js.map +1 -0
  91. package/dist/lsp/launch.d.ts +17 -0
  92. package/dist/lsp/launch.d.ts.map +1 -0
  93. package/dist/lsp/launch.js +69 -0
  94. package/dist/lsp/launch.js.map +1 -0
  95. package/dist/lsp/manager.d.ts +19 -0
  96. package/dist/lsp/manager.d.ts.map +1 -0
  97. package/dist/lsp/manager.js +251 -0
  98. package/dist/lsp/manager.js.map +1 -0
  99. package/dist/lsp/server.d.ts +11 -0
  100. package/dist/lsp/server.d.ts.map +1 -0
  101. package/dist/lsp/server.js +302 -0
  102. package/dist/lsp/server.js.map +1 -0
  103. package/dist/lsp/sql.d.ts +11 -0
  104. package/dist/lsp/sql.d.ts.map +1 -0
  105. package/dist/lsp/sql.js +23 -0
  106. package/dist/lsp/sql.js.map +1 -0
  107. package/dist/lsp/types.d.ts +58 -0
  108. package/dist/lsp/types.d.ts.map +1 -0
  109. package/dist/lsp/types.js +13 -0
  110. package/dist/lsp/types.js.map +1 -0
  111. package/dist/modules/ai/ai.service.d.ts +182 -0
  112. package/dist/modules/ai/ai.service.d.ts.map +1 -0
  113. package/dist/modules/ai/ai.service.js +280 -0
  114. package/dist/modules/ai/ai.service.js.map +1 -0
  115. package/dist/modules/ai/ai.types.d.ts +54 -0
  116. package/dist/modules/ai/ai.types.d.ts.map +1 -0
  117. package/dist/modules/ai/ai.types.js +2 -0
  118. package/dist/modules/ai/ai.types.js.map +1 -0
  119. package/dist/modules/ai/index.d.ts +6 -0
  120. package/dist/modules/ai/index.d.ts.map +1 -0
  121. package/dist/modules/ai/index.js +5 -0
  122. package/dist/modules/ai/index.js.map +1 -0
  123. package/dist/modules/ai/openai.provider.d.ts +138 -0
  124. package/dist/modules/ai/openai.provider.d.ts.map +1 -0
  125. package/dist/modules/ai/openai.provider.js +279 -0
  126. package/dist/modules/ai/openai.provider.js.map +1 -0
  127. package/dist/modules/ai/react/index.d.ts +5 -0
  128. package/dist/modules/ai/react/index.d.ts.map +1 -0
  129. package/dist/modules/ai/react/index.js +4 -0
  130. package/dist/modules/ai/react/index.js.map +1 -0
  131. package/dist/modules/ai/react/prompt/role.txt +51 -0
  132. package/dist/modules/ai/react/react.parser.d.ts +75 -0
  133. package/dist/modules/ai/react/react.parser.d.ts.map +1 -0
  134. package/dist/modules/ai/react/react.parser.js +278 -0
  135. package/dist/modules/ai/react/react.parser.js.map +1 -0
  136. package/dist/modules/ai/react/react.prompts.d.ts +26 -0
  137. package/dist/modules/ai/react/react.prompts.d.ts.map +1 -0
  138. package/dist/modules/ai/react/react.prompts.js +180 -0
  139. package/dist/modules/ai/react/react.prompts.js.map +1 -0
  140. package/dist/modules/ai/react/react.types.d.ts +47 -0
  141. package/dist/modules/ai/react/react.types.d.ts.map +1 -0
  142. package/dist/modules/ai/react/react.types.js +2 -0
  143. package/dist/modules/ai/react/react.types.js.map +1 -0
  144. package/dist/modules/ai/react.agent.d.ts +40 -0
  145. package/dist/modules/ai/react.agent.d.ts.map +1 -0
  146. package/dist/modules/ai/react.agent.js +136 -0
  147. package/dist/modules/ai/react.agent.js.map +1 -0
  148. package/dist/modules/ai/summarizer/index.d.ts +4 -0
  149. package/dist/modules/ai/summarizer/index.d.ts.map +1 -0
  150. package/dist/modules/ai/summarizer/index.js +3 -0
  151. package/dist/modules/ai/summarizer/index.js.map +1 -0
  152. package/dist/modules/ai/summarizer/summarizer.prompts.d.ts +15 -0
  153. package/dist/modules/ai/summarizer/summarizer.prompts.d.ts.map +1 -0
  154. package/dist/modules/ai/summarizer/summarizer.prompts.js +47 -0
  155. package/dist/modules/ai/summarizer/summarizer.prompts.js.map +1 -0
  156. package/dist/modules/ai/summarizer/summarizer.service.d.ts +24 -0
  157. package/dist/modules/ai/summarizer/summarizer.service.d.ts.map +1 -0
  158. package/dist/modules/ai/summarizer/summarizer.service.js +153 -0
  159. package/dist/modules/ai/summarizer/summarizer.service.js.map +1 -0
  160. package/dist/modules/ai/summarizer/summarizer.types.d.ts +21 -0
  161. package/dist/modules/ai/summarizer/summarizer.types.d.ts.map +1 -0
  162. package/dist/modules/ai/summarizer/summarizer.types.js +5 -0
  163. package/dist/modules/ai/summarizer/summarizer.types.js.map +1 -0
  164. package/dist/modules/config/config.service.d.ts +32 -0
  165. package/dist/modules/config/config.service.d.ts.map +1 -0
  166. package/dist/modules/config/config.service.js +163 -0
  167. package/dist/modules/config/config.service.js.map +1 -0
  168. package/dist/modules/config/config.types.d.ts +44 -0
  169. package/dist/modules/config/config.types.d.ts.map +1 -0
  170. package/dist/modules/config/config.types.js +21 -0
  171. package/dist/modules/config/config.types.js.map +1 -0
  172. package/dist/modules/config/index.d.ts +10 -0
  173. package/dist/modules/config/index.d.ts.map +1 -0
  174. package/dist/modules/config/index.js +10 -0
  175. package/dist/modules/config/index.js.map +1 -0
  176. package/dist/modules/context/context.service.d.ts +46 -0
  177. package/dist/modules/context/context.service.d.ts.map +1 -0
  178. package/dist/modules/context/context.service.js +216 -0
  179. package/dist/modules/context/context.service.js.map +1 -0
  180. package/dist/modules/context/context.types.d.ts +30 -0
  181. package/dist/modules/context/context.types.d.ts.map +1 -0
  182. package/dist/modules/context/context.types.js +5 -0
  183. package/dist/modules/context/context.types.js.map +1 -0
  184. package/dist/modules/context/index.d.ts +10 -0
  185. package/dist/modules/context/index.d.ts.map +1 -0
  186. package/dist/modules/context/index.js +10 -0
  187. package/dist/modules/context/index.js.map +1 -0
  188. package/dist/modules/db/db.service.d.ts +97 -0
  189. package/dist/modules/db/db.service.d.ts.map +1 -0
  190. package/dist/modules/db/db.service.js +387 -0
  191. package/dist/modules/db/db.service.js.map +1 -0
  192. package/dist/modules/db/db.types.d.ts +8 -0
  193. package/dist/modules/db/db.types.d.ts.map +1 -0
  194. package/dist/modules/db/db.types.js +7 -0
  195. package/dist/modules/db/db.types.js.map +1 -0
  196. package/dist/modules/db/index.d.ts +10 -0
  197. package/dist/modules/db/index.d.ts.map +1 -0
  198. package/dist/modules/db/index.js +9 -0
  199. package/dist/modules/db/index.js.map +1 -0
  200. package/dist/modules/logger/index.d.ts +2 -0
  201. package/dist/modules/logger/index.d.ts.map +1 -0
  202. package/dist/modules/logger/index.js +2 -0
  203. package/dist/modules/logger/index.js.map +1 -0
  204. package/dist/modules/logger/logger.d.ts +26 -0
  205. package/dist/modules/logger/logger.d.ts.map +1 -0
  206. package/dist/modules/logger/logger.js +57 -0
  207. package/dist/modules/logger/logger.js.map +1 -0
  208. package/dist/modules/memory/index.d.ts +9 -0
  209. package/dist/modules/memory/index.d.ts.map +1 -0
  210. package/dist/modules/memory/index.js +9 -0
  211. package/dist/modules/memory/index.js.map +1 -0
  212. package/dist/modules/memory/memory.service.d.ts +191 -0
  213. package/dist/modules/memory/memory.service.d.ts.map +1 -0
  214. package/dist/modules/memory/memory.service.js +282 -0
  215. package/dist/modules/memory/memory.service.js.map +1 -0
  216. package/dist/modules/memory/memory.types.d.ts +13 -0
  217. package/dist/modules/memory/memory.types.d.ts.map +1 -0
  218. package/dist/modules/memory/memory.types.js +5 -0
  219. package/dist/modules/memory/memory.types.js.map +1 -0
  220. package/dist/modules/session/index.d.ts +9 -0
  221. package/dist/modules/session/index.d.ts.map +1 -0
  222. package/dist/modules/session/index.js +9 -0
  223. package/dist/modules/session/index.js.map +1 -0
  224. package/dist/modules/session/session.service.d.ts +252 -0
  225. package/dist/modules/session/session.service.d.ts.map +1 -0
  226. package/dist/modules/session/session.service.js +406 -0
  227. package/dist/modules/session/session.service.js.map +1 -0
  228. package/dist/modules/session/session.types.d.ts +34 -0
  229. package/dist/modules/session/session.types.d.ts.map +1 -0
  230. package/dist/modules/session/session.types.js +5 -0
  231. package/dist/modules/session/session.types.js.map +1 -0
  232. package/dist/modules/skill/index.d.ts +8 -0
  233. package/dist/modules/skill/index.d.ts.map +1 -0
  234. package/dist/modules/skill/index.js +7 -0
  235. package/dist/modules/skill/index.js.map +1 -0
  236. package/dist/modules/skill/skill.service.d.ts +72 -0
  237. package/dist/modules/skill/skill.service.d.ts.map +1 -0
  238. package/dist/modules/skill/skill.service.js +283 -0
  239. package/dist/modules/skill/skill.service.js.map +1 -0
  240. package/dist/modules/skill/skill.tool.d.ts +19 -0
  241. package/dist/modules/skill/skill.tool.d.ts.map +1 -0
  242. package/dist/modules/skill/skill.tool.js +92 -0
  243. package/dist/modules/skill/skill.tool.js.map +1 -0
  244. package/dist/modules/skill/skill.txt +18 -0
  245. package/dist/modules/skill/skill.types.d.ts +40 -0
  246. package/dist/modules/skill/skill.types.d.ts.map +1 -0
  247. package/dist/modules/skill/skill.types.js +6 -0
  248. package/dist/modules/skill/skill.types.js.map +1 -0
  249. package/dist/modules/skill/skills.manager.d.ts +30 -0
  250. package/dist/modules/skill/skills.manager.d.ts.map +1 -0
  251. package/dist/modules/skill/skills.manager.js +182 -0
  252. package/dist/modules/skill/skills.manager.js.map +1 -0
  253. package/dist/modules/tools/builtin/bash.d.ts +3 -0
  254. package/dist/modules/tools/builtin/bash.d.ts.map +1 -0
  255. package/dist/modules/tools/builtin/bash.js +124 -0
  256. package/dist/modules/tools/builtin/bash.js.map +1 -0
  257. package/dist/modules/tools/builtin/bash.tool.d.ts +6 -0
  258. package/dist/modules/tools/builtin/bash.tool.d.ts.map +1 -0
  259. package/dist/modules/tools/builtin/bash.tool.js +52 -0
  260. package/dist/modules/tools/builtin/bash.tool.js.map +1 -0
  261. package/dist/modules/tools/builtin/bash.txt +81 -0
  262. package/dist/modules/tools/builtin/code_search.d.ts +3 -0
  263. package/dist/modules/tools/builtin/code_search.d.ts.map +1 -0
  264. package/dist/modules/tools/builtin/code_search.js +85 -0
  265. package/dist/modules/tools/builtin/code_search.js.map +1 -0
  266. package/dist/modules/tools/builtin/code_search.txt +18 -0
  267. package/dist/modules/tools/builtin/edit-file.tool.d.ts +6 -0
  268. package/dist/modules/tools/builtin/edit-file.tool.d.ts.map +1 -0
  269. package/dist/modules/tools/builtin/edit-file.tool.js +58 -0
  270. package/dist/modules/tools/builtin/edit-file.tool.js.map +1 -0
  271. package/dist/modules/tools/builtin/edit_file.d.ts +3 -0
  272. package/dist/modules/tools/builtin/edit_file.d.ts.map +1 -0
  273. package/dist/modules/tools/builtin/edit_file.js +69 -0
  274. package/dist/modules/tools/builtin/edit_file.js.map +1 -0
  275. package/dist/modules/tools/builtin/edit_file.txt +10 -0
  276. package/dist/modules/tools/builtin/glob.d.ts +3 -0
  277. package/dist/modules/tools/builtin/glob.d.ts.map +1 -0
  278. package/dist/modules/tools/builtin/glob.js +84 -0
  279. package/dist/modules/tools/builtin/glob.js.map +1 -0
  280. package/dist/modules/tools/builtin/glob.tool.d.ts +6 -0
  281. package/dist/modules/tools/builtin/glob.tool.d.ts.map +1 -0
  282. package/dist/modules/tools/builtin/glob.tool.js +81 -0
  283. package/dist/modules/tools/builtin/glob.tool.js.map +1 -0
  284. package/dist/modules/tools/builtin/glob.txt +10 -0
  285. package/dist/modules/tools/builtin/grep.d.ts +3 -0
  286. package/dist/modules/tools/builtin/grep.d.ts.map +1 -0
  287. package/dist/modules/tools/builtin/grep.js +93 -0
  288. package/dist/modules/tools/builtin/grep.js.map +1 -0
  289. package/dist/modules/tools/builtin/grep.tool.d.ts +6 -0
  290. package/dist/modules/tools/builtin/grep.tool.d.ts.map +1 -0
  291. package/dist/modules/tools/builtin/grep.tool.js +96 -0
  292. package/dist/modules/tools/builtin/grep.tool.js.map +1 -0
  293. package/dist/modules/tools/builtin/grep.txt +12 -0
  294. package/dist/modules/tools/builtin/index.d.ts +8 -0
  295. package/dist/modules/tools/builtin/index.d.ts.map +1 -0
  296. package/dist/modules/tools/builtin/index.js +88 -0
  297. package/dist/modules/tools/builtin/index.js.map +1 -0
  298. package/dist/modules/tools/builtin/lsp.d.ts +7 -0
  299. package/dist/modules/tools/builtin/lsp.d.ts.map +1 -0
  300. package/dist/modules/tools/builtin/lsp.js +125 -0
  301. package/dist/modules/tools/builtin/lsp.js.map +1 -0
  302. package/dist/modules/tools/builtin/lsp.txt +19 -0
  303. package/dist/modules/tools/builtin/memory.d.ts +3 -0
  304. package/dist/modules/tools/builtin/memory.d.ts.map +1 -0
  305. package/dist/modules/tools/builtin/memory.js +76 -0
  306. package/dist/modules/tools/builtin/memory.js.map +1 -0
  307. package/dist/modules/tools/builtin/memory.txt +36 -0
  308. package/dist/modules/tools/builtin/read-file.tool.d.ts +6 -0
  309. package/dist/modules/tools/builtin/read-file.tool.d.ts.map +1 -0
  310. package/dist/modules/tools/builtin/read-file.tool.js +46 -0
  311. package/dist/modules/tools/builtin/read-file.tool.js.map +1 -0
  312. package/dist/modules/tools/builtin/read_file.d.ts +3 -0
  313. package/dist/modules/tools/builtin/read_file.d.ts.map +1 -0
  314. package/dist/modules/tools/builtin/read_file.js +99 -0
  315. package/dist/modules/tools/builtin/read_file.js.map +1 -0
  316. package/dist/modules/tools/builtin/read_file.txt +15 -0
  317. package/dist/modules/tools/builtin/todo_read.d.ts +6 -0
  318. package/dist/modules/tools/builtin/todo_read.d.ts.map +1 -0
  319. package/dist/modules/tools/builtin/todo_read.js +24 -0
  320. package/dist/modules/tools/builtin/todo_read.js.map +1 -0
  321. package/dist/modules/tools/builtin/todo_read.txt +14 -0
  322. package/dist/modules/tools/builtin/todo_write.d.ts +6 -0
  323. package/dist/modules/tools/builtin/todo_write.d.ts.map +1 -0
  324. package/dist/modules/tools/builtin/todo_write.js +45 -0
  325. package/dist/modules/tools/builtin/todo_write.js.map +1 -0
  326. package/dist/modules/tools/builtin/todo_write.txt +46 -0
  327. package/dist/modules/tools/builtin/web_fetch.d.ts +3 -0
  328. package/dist/modules/tools/builtin/web_fetch.d.ts.map +1 -0
  329. package/dist/modules/tools/builtin/web_fetch.js +51 -0
  330. package/dist/modules/tools/builtin/web_fetch.js.map +1 -0
  331. package/dist/modules/tools/builtin/web_fetch.txt +15 -0
  332. package/dist/modules/tools/builtin/web_search.d.ts +3 -0
  333. package/dist/modules/tools/builtin/web_search.d.ts.map +1 -0
  334. package/dist/modules/tools/builtin/web_search.js +99 -0
  335. package/dist/modules/tools/builtin/web_search.js.map +1 -0
  336. package/dist/modules/tools/builtin/web_search.txt +16 -0
  337. package/dist/modules/tools/builtin/write-file.tool.d.ts +6 -0
  338. package/dist/modules/tools/builtin/write-file.tool.d.ts.map +1 -0
  339. package/dist/modules/tools/builtin/write-file.tool.js +38 -0
  340. package/dist/modules/tools/builtin/write-file.tool.js.map +1 -0
  341. package/dist/modules/tools/builtin/write_file.d.ts +3 -0
  342. package/dist/modules/tools/builtin/write_file.d.ts.map +1 -0
  343. package/dist/modules/tools/builtin/write_file.js +46 -0
  344. package/dist/modules/tools/builtin/write_file.js.map +1 -0
  345. package/dist/modules/tools/builtin/write_file.txt +9 -0
  346. package/dist/modules/tools/index.d.ts +11 -0
  347. package/dist/modules/tools/index.d.ts.map +1 -0
  348. package/dist/modules/tools/index.js +10 -0
  349. package/dist/modules/tools/index.js.map +1 -0
  350. package/dist/modules/tools/tool.service.d.ts +207 -0
  351. package/dist/modules/tools/tool.service.d.ts.map +1 -0
  352. package/dist/modules/tools/tool.service.js +331 -0
  353. package/dist/modules/tools/tool.service.js.map +1 -0
  354. package/dist/modules/tools/tool.types.d.ts +39 -0
  355. package/dist/modules/tools/tool.types.d.ts.map +1 -0
  356. package/dist/modules/tools/tool.types.js +5 -0
  357. package/dist/modules/tools/tool.types.js.map +1 -0
  358. package/dist/web/index.d.ts +10 -0
  359. package/dist/web/index.d.ts.map +1 -0
  360. package/dist/web/index.js +20 -0
  361. package/dist/web/index.js.map +1 -0
  362. package/dist/web/web.service.d.ts +95 -0
  363. package/dist/web/web.service.d.ts.map +1 -0
  364. package/dist/web/web.service.js +396 -0
  365. package/dist/web/web.service.js.map +1 -0
  366. package/package.json +57 -0
  367. package/web/dist/assets/Layout-Bb76CGAL.js +1 -0
  368. package/web/dist/assets/element-icons-B-tDfklg.woff +0 -0
  369. package/web/dist/assets/element-icons-_lZGOqcG.ttf +0 -0
  370. package/web/dist/assets/index-DQRR0ggU.js +199 -0
  371. package/web/dist/assets/index-KTH-myBB.css +1 -0
  372. package/web/dist/index.html +14 -0
  373. package/web/index.html +13 -0
  374. package/web/package.json +24 -0
@@ -0,0 +1,278 @@
1
+ /**
2
+ * ReAct 响应解析器
3
+ *
4
+ * 本模块负责解析 AI 返回的文本内容
5
+ * AI 返回的是包含 Thought、Action、Observation 等字段的文本
6
+ * 需要从中提取出结构化的步骤信息
7
+ *
8
+ * 解析流程:
9
+ * 1. splitBlocks() - 按 "---" 分隔符分割文本为多个块
10
+ * 2. 识别每块的类型:
11
+ * - content: 大文本内容 (用于占位符替换)
12
+ * - step: 步骤块 (包含 thought, action, action_input, final_answer 等)
13
+ * - observation: 观察结果块
14
+ * 3. replacePlaceholders() - 替换占位符 (如 $content:1)
15
+ * 4. 返回结构化的 steps 数组和 finalAnswer
16
+ *
17
+ * AI 输出格式示例(XML):
18
+ * ```xml
19
+ * <react>
20
+ * <thought>我需要读取文件</thought>
21
+ * <action>readFile</action>
22
+ * <action_input>
23
+ * <path>/path/to/file</path>
24
+ * </action_input>
25
+ * <keep_context>true</keep_context>
26
+ * </react>
27
+ * ---
28
+ * <react>
29
+ * <thought>需要创建一个组件</thought>
30
+ * <action>write_file</action>
31
+ * <action_input>
32
+ * <path>src/Hello.tsx</path>
33
+ * <content><![CDATA[import React from 'react';]]></content>
34
+ * </action_input>
35
+ * </react>
36
+ * ---
37
+ * Tool Result:
38
+ * ---
39
+ * 观察结果
40
+ * ---
41
+ * ```
42
+ */
43
+ /**
44
+ * ReActParser 类
45
+ *
46
+ * 将 AI 返回的文本解析为结构化的 ReActStep 数组
47
+ */
48
+ export class ReActParser {
49
+ parse(content) {
50
+ const blocks = this.splitBlocks(content);
51
+ const steps = [];
52
+ const contentMap = new Map();
53
+ let finalAnswer = '';
54
+ for (const block of blocks) {
55
+ if (block.type === 'content') {
56
+ contentMap.set(block.contentKey, block.content || '');
57
+ }
58
+ else if (block.type === 'step') {
59
+ const data = block.data;
60
+ const replacedInput = this.replacePlaceholders(data.action_input, contentMap);
61
+ if (data.final_answer) {
62
+ finalAnswer = data.final_answer;
63
+ steps.push({
64
+ thought: data.thought || '',
65
+ action: '',
66
+ actionInput: {},
67
+ final_answer: data.final_answer,
68
+ });
69
+ }
70
+ else {
71
+ steps.push({
72
+ thought: data.thought || '',
73
+ action: data.action || '',
74
+ actionInput: replacedInput,
75
+ keepContext: data.keep_context || false,
76
+ });
77
+ }
78
+ }
79
+ else if (block.type === 'observation') {
80
+ const lastStep = steps[steps.length - 1];
81
+ if (lastStep) {
82
+ lastStep.observation = block.data;
83
+ }
84
+ }
85
+ }
86
+ return { steps, finalAnswer };
87
+ }
88
+ splitBlocks(content) {
89
+ const blocks = [];
90
+ const parts = content.split(/\n---\n/);
91
+ for (const part of parts) {
92
+ const trimmed = part.trim();
93
+ if (!trimmed)
94
+ continue;
95
+ const contentMatch = trimmed.match(/^\$(\S+)\n([\s\S]*)$/);
96
+ if (contentMatch) {
97
+ blocks.push({
98
+ type: 'content',
99
+ contentKey: contentMatch[1],
100
+ content: contentMatch[2],
101
+ });
102
+ continue;
103
+ }
104
+ // 尝试解析 XML 格式
105
+ const xmlResult = this.parseXMLBlock(trimmed);
106
+ if (xmlResult) {
107
+ blocks.push(xmlResult);
108
+ continue;
109
+ }
110
+ // 尝试解析 JSON 格式
111
+ try {
112
+ const json = JSON.parse(trimmed);
113
+ if (json.observation !== undefined) {
114
+ blocks.push({ type: 'observation', data: json.observation });
115
+ }
116
+ else {
117
+ blocks.push({ type: 'step', data: json });
118
+ }
119
+ }
120
+ catch {
121
+ // 尝试提取 JSON 代码块
122
+ const jsonBlockMatch = trimmed.match(/```json\s*([\s\S]*?)```/);
123
+ if (jsonBlockMatch) {
124
+ try {
125
+ const json = JSON.parse(jsonBlockMatch[1].trim());
126
+ if (json.observation !== undefined) {
127
+ blocks.push({ type: 'observation', data: json.observation });
128
+ }
129
+ else {
130
+ blocks.push({ type: 'step', data: json });
131
+ }
132
+ }
133
+ catch {
134
+ // 忽略解析失败
135
+ }
136
+ }
137
+ }
138
+ }
139
+ return blocks;
140
+ }
141
+ /**
142
+ * 解析 XML 格式的块
143
+ */
144
+ parseXMLBlock(content) {
145
+ // 匹配 <react>...</react> 块
146
+ const reactMatch = content.match(/<react>([\s\S]*?)<\/react>/i);
147
+ if (!reactMatch)
148
+ return null;
149
+ const inner = reactMatch[1];
150
+ const data = {};
151
+ // 解析 thought
152
+ const thoughtMatch = inner.match(/<thought>([\s\S]*?)<\/thought>/i);
153
+ if (thoughtMatch) {
154
+ data.thought = thoughtMatch[1].trim();
155
+ }
156
+ // 解析 final_answer(可能包含 CDATA)
157
+ const finalAnswerMatch = inner.match(/<final_answer>([\s\S]*?)<\/final_answer>/i);
158
+ if (finalAnswerMatch) {
159
+ data.final_answer = this.extractCDATAOrText(finalAnswerMatch[1]);
160
+ return { type: 'step', data };
161
+ }
162
+ // 解析 action
163
+ const actionMatch = inner.match(/<action>([\s\S]*?)<\/action>/i);
164
+ if (actionMatch) {
165
+ data.action = actionMatch[1].trim();
166
+ }
167
+ // 解析 keep_context
168
+ const keepContextMatch = inner.match(/<keep_context>([\s\S]*?)<\/keep_context>/i);
169
+ if (keepContextMatch) {
170
+ data.keep_context = keepContextMatch[1].trim().toLowerCase() === 'true';
171
+ }
172
+ // 解析 action_input 内的所有参数
173
+ const actionInputMatch = inner.match(/<action_input>([\s\S]*?)<\/action_input>/i);
174
+ if (actionInputMatch) {
175
+ data.action_input = this.parseXMLParams(actionInputMatch[1]);
176
+ }
177
+ return { type: 'step', data };
178
+ }
179
+ /**
180
+ * 解析 XML 参数节点
181
+ */
182
+ parseXMLParams(xml) {
183
+ const params = {};
184
+ // 匹配所有 <param_name>...</param_name> 或 <param_name/>
185
+ const paramRegex = /<(\w+)>([\s\S]*?)<\/\1>/gi;
186
+ let match;
187
+ while ((match = paramRegex.exec(xml)) !== null) {
188
+ const paramName = match[1];
189
+ const paramValue = match[2];
190
+ params[paramName] = this.extractCDATAOrText(paramValue);
191
+ }
192
+ return params;
193
+ }
194
+ /**
195
+ * 从 XML 内容中提取纯文本,处理 CDATA
196
+ */
197
+ extractCDATAOrText(content) {
198
+ // 匹配 CDATA
199
+ const cdataMatch = content.match(/<!\[CDATA\[([\s\S]*?)\]\]>/);
200
+ if (cdataMatch) {
201
+ return cdataMatch[1];
202
+ }
203
+ return content.trim();
204
+ }
205
+ replacePlaceholders(obj, contentMap) {
206
+ if (!obj)
207
+ return {};
208
+ const result = {};
209
+ for (const [key, value] of Object.entries(obj)) {
210
+ if (typeof value === 'string') {
211
+ const match = value.match(/^\$(\S+)$/);
212
+ if (match) {
213
+ const placeholderKey = match[1];
214
+ const replacement = contentMap.get(placeholderKey);
215
+ if (replacement !== undefined) {
216
+ result[key] = replacement;
217
+ }
218
+ else {
219
+ result[key] = value;
220
+ }
221
+ }
222
+ else if (this.isEncodedContent(value)) {
223
+ result[key] = this.decodeContent(value);
224
+ }
225
+ else {
226
+ result[key] = value;
227
+ }
228
+ }
229
+ else if (typeof value === 'object' && value !== null) {
230
+ result[key] = this.replacePlaceholders(value, contentMap);
231
+ }
232
+ else {
233
+ result[key] = value;
234
+ }
235
+ }
236
+ return result;
237
+ }
238
+ isEncodedContent(value) {
239
+ if (value.startsWith('$$content:') || value.includes('$content:2')) {
240
+ return true;
241
+ }
242
+ const dollarCount = (value.match(/\$/g) || []).length;
243
+ if (dollarCount > 3 && value.includes('content:')) {
244
+ return true;
245
+ }
246
+ return false;
247
+ }
248
+ decodeContent(value) {
249
+ const decodedParts = [];
250
+ const regex = /\$\$?content:(\d+)([a-zA-Z])/g;
251
+ let match;
252
+ while ((match = regex.exec(value)) !== null) {
253
+ decodedParts.push(match[2]);
254
+ }
255
+ return decodedParts.length > 0 ? decodedParts.join('') : value;
256
+ }
257
+ hasFinalAnswer(steps) {
258
+ return steps.some(s => s.final_answer !== undefined);
259
+ }
260
+ formatObservation(observation) {
261
+ if (typeof observation === 'string') {
262
+ return observation;
263
+ }
264
+ return JSON.stringify(observation, null, 2);
265
+ }
266
+ buildObservationResponse(observation) {
267
+ const formattedObs = typeof observation === 'string'
268
+ ? `<![CDATA[${observation}]]>`
269
+ : `<![CDATA[${JSON.stringify(observation, null, 2)}]]>`;
270
+ return `---
271
+ <react>
272
+ <observation>${formattedObs}</observation>
273
+ </react>
274
+ ---`;
275
+ }
276
+ }
277
+ export const reactParser = new ReActParser();
278
+ //# sourceMappingURL=react.parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.parser.js","sourceRoot":"","sources":["../../../../src/modules/ai/react/react.parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * ReAct 提示词模块
3
+ *
4
+ * 本模块定义了 AI Agent 的系统提示词模板
5
+ *
6
+ * ReAct (Reasoning + Acting) 模式:
7
+ * 1. Thought - AI 分析当前情况,进行思考
8
+ * 2. Action - AI 选择并执行一个工具
9
+ * 3. Observation - AI 观察工具执行结果
10
+ * 4. 重复直到得到最终答案
11
+ *
12
+ * 提示词结构:
13
+ * 1. 角色定义 - AI 身份和工作职责
14
+ * 2. 运行环境 - 操作系统、工作目录
15
+ * 3. 工作模式 - ReAct 循环说明
16
+ * 4. 上下文管理 - keep_context 机制
17
+ * 5. 输出格式 - JSON 格式要求
18
+ * 6. 工具定义 - 内置工具列表
19
+ * 7. 技能系统 - skill 工具说明
20
+ */
21
+ import { ToolDefinition, SkillInfo } from './react.types.js';
22
+ export declare function buildReActPrompt(builtinTools: ToolDefinition[], _skills: SkillInfo[], maxIterations?: number, options?: {
23
+ platform?: string;
24
+ workdir?: string;
25
+ }): Promise<string>;
26
+ //# sourceMappingURL=react.prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.prompts.d.ts","sourceRoot":"","sources":["../../../../src/modules/ai/react/react.prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AA+I7D,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,cAAc,EAAE,EAC9B,OAAO,EAAE,SAAS,EAAE,EACpB,aAAa,GAAE,MAAW,EAC1B,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAChD,OAAO,CAAC,MAAM,CAAC,CA0BjB"}
@@ -0,0 +1,180 @@
1
+ /**
2
+ * ReAct 提示词模块
3
+ *
4
+ * 本模块定义了 AI Agent 的系统提示词模板
5
+ *
6
+ * ReAct (Reasoning + Acting) 模式:
7
+ * 1. Thought - AI 分析当前情况,进行思考
8
+ * 2. Action - AI 选择并执行一个工具
9
+ * 3. Observation - AI 观察工具执行结果
10
+ * 4. 重复直到得到最终答案
11
+ *
12
+ * 提示词结构:
13
+ * 1. 角色定义 - AI 身份和工作职责
14
+ * 2. 运行环境 - 操作系统、工作目录
15
+ * 3. 工作模式 - ReAct 循环说明
16
+ * 4. 上下文管理 - keep_context 机制
17
+ * 5. 输出格式 - JSON 格式要求
18
+ * 6. 工具定义 - 内置工具列表
19
+ * 7. 技能系统 - skill 工具说明
20
+ */
21
+ import { buildAvailableSkillsPrompt } from '../../skill/skill.tool.js';
22
+ import fs from 'fs/promises';
23
+ import path from 'path';
24
+ import { fileURLToPath } from 'url';
25
+ const __filename = fileURLToPath(import.meta.url);
26
+ const __dirname = path.dirname(__filename);
27
+ async function loadRoleTemplate() {
28
+ try {
29
+ return await fs.readFile(path.join(__dirname, 'prompt', 'role.txt'), 'utf-8');
30
+ }
31
+ catch {
32
+ return '你是 txcode,一个帮助用户完成软件工程任务的交互式命令行工具。';
33
+ }
34
+ }
35
+ function getReActPromptTemplate(roleTemplate) {
36
+ return `${roleTemplate}
37
+
38
+ 你必须按照 ReAct (Reasoning + Acting) 模式工作:
39
+
40
+ 1. **Thought**: 分析当前情况,思考下一步应该做什么
41
+ 2. **Action**: 选择并执行一个工具
42
+ 3. **Observation**: 观察工具执行结果,判断是否重要
43
+ 4. 重复步骤 1-3 直到得到答案
44
+ 5. **Final Answer**: 给出最终回答
45
+
46
+ ## 上下文管理(重要)
47
+
48
+ 每轮工具执行后,你需要判断这个结果是否需要传递给下一轮:
49
+
50
+ **需要传递(keep_context: true)- 永久记忆:**
51
+ - 这个结果会影响你后续的决策
52
+ - 用户可能后续会问关于这个结果的问题
53
+ - 这是完成任务的必要中间信息
54
+ - 创建/修改了重要文件
55
+ - 发现了项目关键信息(技术栈、依赖、配置)
56
+
57
+ **不需要传递(keep_context: false)- 临时记忆:**
58
+ - 只是探索性查看,后续不会再用到
59
+ - 纯调试性输出
60
+ - 已经完成的任务,后续不需要再提及
61
+
62
+ ## 输出格式(重要)
63
+
64
+ 输出格式必须是有效的 XML,不要包含其他文本:
65
+
66
+ **调用工具时:**
67
+ \`\`\`xml
68
+ <react>
69
+ <thought>你的思考过程</thought>
70
+ <action>工具名称</action>
71
+ <action_input>
72
+ <参数名>参数值</参数名>
73
+ </action_input>
74
+ <keep_context>true</keep_context>
75
+ </react>
76
+ \`\`\`
77
+
78
+ **需要写入/编辑文件时,内容使用 CDATA 包裹:**
79
+ \`\`\`xml
80
+ <react>
81
+ <thought>需要创建一个组件</thought>
82
+ <action>write_file</action>
83
+ <action_input>
84
+ <path>src/components/Hello.tsx</path>
85
+ <content><![CDATA[import React from 'react';
86
+ export const Hello = () => {
87
+ return <div>Hello World</div>;
88
+ };]]></content>
89
+ </action_input>
90
+ <keep_context>true</keep_context>
91
+ </react>
92
+ \`\`\`
93
+
94
+ **返回最终答案时:**
95
+ \`\`\`xml
96
+ <react>
97
+ <thought>任务已完成</thought>
98
+ <final_answer><![CDATA[详细的完成结果]]></final_answer>
99
+ </react>
100
+ \`\`\`
101
+
102
+ ## 字段说明
103
+
104
+ | 字段 | 类型 | 说明 |
105
+ |------|------|------|
106
+ | \`thought\` | string | 你的思考过程 |
107
+ | \`action\` | string | 要执行的工具名称 |
108
+ | \`action_input\` | object | 工具参数 |
109
+ | \`keep_context\` | boolean | 是否将此结果永久记忆并传递给下一轮(默认 false) |
110
+ | \`final_answer\` | string | 最终回答(仅在任务完成时使用),使用 CDATA 包裹 |
111
+ | \`content\` | string | write_file/edit_file 的文件内容,使用 CDATA 包裹 |
112
+
113
+ ## 内置工具
114
+
115
+ <builtin_tools>
116
+ {builtinTools}
117
+ </builtin_tools>
118
+
119
+ ## skill 工具
120
+
121
+ 在执行特定任务前,可以使用 skill 工具加载相关的 Skill 指南,了解该领域的约束、最佳实践和操作方法:
122
+
123
+ \`\`\`xml
124
+ <react>
125
+ <thought>用户要求创建发布版本,我需要先查看 git-release Skill</thought>
126
+ <action>skill</action>
127
+ <action_input>
128
+ <name>git-release</name>
129
+ </action_input>
130
+ </react>
131
+ \`\`\`
132
+
133
+ skill 参数:
134
+ <tool>
135
+ <name>skill</name>
136
+ <description>加载一个 Skill,获取其完整内容和使用说明</description>
137
+ <parameters>
138
+ <name type="string">Skill 名称(必填),例如:git-release, testing-guide, code-review 等</name>
139
+ </parameters>
140
+ </tool>
141
+
142
+ 加载成功后,返回该 Skill 的完整内容。AI 会根据 Skill 中的指南来执行任务,确保遵循最佳实践和约束。
143
+
144
+ ## 可用 Skills
145
+
146
+ {skills}
147
+
148
+ ## 重要规则
149
+
150
+ - 优先使用内置工具
151
+ - 在执行任务前,先使用 skill 加载相关 Skill 指南了解约束和最佳实践
152
+ - 加载 Skill 后,其提供的工具会自动可用
153
+ - 每个步骤后用 \\n---\\n 分隔
154
+ - 如果工具执行失败,思考原因并尝试其他方法
155
+ - 谨慎设置 keep_context=true,只对需要传递给下一轮的重要结果设置
156
+ - 最大迭代次数: {maxIterations}
157
+ `;
158
+ }
159
+ export async function buildReActPrompt(builtinTools, _skills, maxIterations = 10, options) {
160
+ const platform = options?.platform || process.platform;
161
+ const workdir = options?.workdir || process.cwd();
162
+ const platformName = platform === 'win32' ? 'Windows'
163
+ : platform === 'darwin' ? 'macOS'
164
+ : platform === 'linux' ? 'Linux'
165
+ : platform;
166
+ const builtinToolsDesc = builtinTools.map(t => {
167
+ const params = Object.entries(t.parameters.properties).map(([name, prop]) => ` <${name} type="${prop.type}">${prop.description}</${name}>`).join('\n');
168
+ return `<tool>\n <name>${t.name}</name>\n <description>${t.description}</description>\n <parameters>\n${params}\n </parameters>\n</tool>`;
169
+ }).join('\n');
170
+ const skillsPrompt = await buildAvailableSkillsPrompt();
171
+ const roleTemplate = await loadRoleTemplate();
172
+ const template = getReActPromptTemplate(roleTemplate);
173
+ return template
174
+ .replace('{platform}', platformName)
175
+ .replace('{workdir}', workdir)
176
+ .replace('{builtinTools}', builtinToolsDesc || '(无)')
177
+ .replace('{skills}', skillsPrompt)
178
+ .replace('{maxIterations}', String(maxIterations));
179
+ }
180
+ //# sourceMappingURL=react.prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.prompts.js","sourceRoot":"","sources":["../../../../src/modules/ai/react/react.prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,KAAK,UAAU,gBAAgB;IAC7B,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;IAChF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,oCAAoC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,YAAoB;IAClD,OAAO,GAAG,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyHvB,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,YAA8B,EAC9B,OAAoB,EACpB,gBAAwB,EAAE,EAC1B,OAAiD;IAEjD,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IACvD,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAElD,MAAM,YAAY,GAAG,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS;QACnD,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO;YACjC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO;gBAChC,CAAC,CAAC,QAAQ,CAAC;IAEb,MAAM,gBAAgB,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAC1E,QAAQ,IAAI,UAAU,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,KAAK,IAAI,GAAG,CACjE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,OAAO,mBAAmB,CAAC,CAAC,IAAI,2BAA2B,CAAC,CAAC,WAAW,mCAAmC,MAAM,4BAA4B,CAAC;IAChJ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,MAAM,YAAY,GAAG,MAAM,0BAA0B,EAAE,CAAC;IACxD,MAAM,YAAY,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAC9C,MAAM,QAAQ,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAC;IAEtD,OAAO,QAAQ;SACZ,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC;SACnC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC;SAC7B,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,IAAI,KAAK,CAAC;SACpD,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC;SACjC,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AACvD,CAAC"}
@@ -0,0 +1,47 @@
1
+ export interface ToolParameterProperty {
2
+ type: string;
3
+ description: string;
4
+ }
5
+ export interface ToolParameters {
6
+ type: 'object';
7
+ properties: Record<string, ToolParameterProperty>;
8
+ required: string[];
9
+ }
10
+ export interface ToolDefinition {
11
+ name: string;
12
+ description: string;
13
+ parameters: ToolParameters;
14
+ }
15
+ export interface ReActStep {
16
+ thought: string;
17
+ action: string;
18
+ actionInput: Record<string, any>;
19
+ observation?: any;
20
+ error?: string;
21
+ keepContext?: boolean;
22
+ final_answer?: string;
23
+ }
24
+ export interface ReActResult {
25
+ answer: string;
26
+ steps: ReActStep[];
27
+ iterations: number;
28
+ success: boolean;
29
+ error?: string;
30
+ usage?: {
31
+ promptTokens: number;
32
+ completionTokens: number;
33
+ totalTokens: number;
34
+ };
35
+ }
36
+ export interface ParsedBlock {
37
+ type: 'step' | 'observation' | 'content';
38
+ data?: any;
39
+ contentKey?: string;
40
+ content?: string;
41
+ }
42
+ export interface SkillInfo {
43
+ path: string;
44
+ name: string;
45
+ description: string;
46
+ }
47
+ //# sourceMappingURL=react.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.types.d.ts","sourceRoot":"","sources":["../../../../src/modules/ai/react/react.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAClD,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,cAAc,CAAC;CAC5B;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;IACzC,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=react.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.types.js","sourceRoot":"","sources":["../../../../src/modules/ai/react/react.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,40 @@
1
+ import { OpenAIProvider } from './openai.provider.js';
2
+ import { ChatMessage } from './ai.types.js';
3
+ import { ToolService } from '../tools/tool.service.js';
4
+ import { SkillsManager } from '../skill/skills.manager.js';
5
+ import { MemoryService } from '../memory/memory.service.js';
6
+ import { ReActStep, ReActResult } from './react/react.types.js';
7
+ export interface ReActAgentConfig {
8
+ provider: OpenAIProvider;
9
+ toolService: ToolService;
10
+ skillsManager?: SkillsManager;
11
+ memoryService?: MemoryService;
12
+ maxIterations?: number;
13
+ projectPath?: string;
14
+ sessionId?: string;
15
+ }
16
+ export interface ReActRunOptions {
17
+ onStep?: (step: ReActStep, iteration: number, usage?: {
18
+ promptTokens: number;
19
+ completionTokens: number;
20
+ totalTokens: number;
21
+ }) => void;
22
+ historyMessages?: ChatMessage[];
23
+ }
24
+ export declare class ReActAgent {
25
+ private provider;
26
+ private toolService;
27
+ private skillsManager?;
28
+ private memoryService?;
29
+ private sessionService;
30
+ private maxIterations;
31
+ private projectPath?;
32
+ private sessionId?;
33
+ constructor(config: ReActAgentConfig);
34
+ run(userMessage: string, options?: ReActRunOptions): Promise<ReActResult>;
35
+ private executeTool;
36
+ private getBuiltinTools;
37
+ private getAvailableSkills;
38
+ private addMessage;
39
+ }
40
+ //# sourceMappingURL=react.agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.agent.d.ts","sourceRoot":"","sources":["../../../src/modules/ai/react.agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAI5D,OAAO,EAAE,SAAS,EAAE,WAAW,EAA6B,MAAM,wBAAwB,CAAC;AAE3F,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACvI,eAAe,CAAC,EAAE,WAAW,EAAE,CAAC;CACjC;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,SAAS,CAAC,CAAS;gBAEf,MAAM,EAAE,gBAAgB;IAW9B,GAAG,CACP,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,WAAW,CAAC;YAyGT,WAAW;YAeX,eAAe;YAqBf,kBAAkB;IAYhC,OAAO,CAAC,UAAU;CAInB"}