tianxincode 1.0.47 → 1.0.49

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 (302) hide show
  1. package/README.md +200 -200
  2. package/dist/cli/commands.js +18 -18
  3. package/dist/core/ai/agents/caller/prompts/role.txt +50 -50
  4. package/dist/core/ai/agents/chat/chat.agent.js +30 -30
  5. package/dist/core/ai/agents/chat/prompts/role.txt +30 -30
  6. package/dist/core/ai/agents/code/code.agent.js +6 -6
  7. package/dist/core/ai/agents/code/prompts/role.txt +50 -50
  8. package/dist/core/ai/agents/common/prompt/role.txt +51 -51
  9. package/dist/core/ai/agents/common/prompts.js +26 -26
  10. package/dist/core/ai/agents/design/design.agent.js +6 -6
  11. package/dist/core/ai/agents/design/prompts/role.txt +36 -36
  12. package/dist/core/ai/agents/dream/prompts/init.txt +20 -20
  13. package/dist/core/ai/agents/mem/mem.agent.js +5 -5
  14. package/dist/core/ai/agents/mem/prompts/role.txt +35 -35
  15. package/dist/core/ai/agents/skill/prompts/role.txt +61 -61
  16. package/dist/core/ai/agents/skill/skill.agent.js +26 -26
  17. package/dist/core/ai/agents/summarizer/prompts/role.txt +30 -30
  18. package/dist/core/ai/agents/task/prompts/role.txt +50 -50
  19. package/dist/core/ai/agents/task/task.agent.js +30 -30
  20. package/dist/core/ai/provider/deepseek.provider.js +1 -1
  21. package/dist/core/ai/provider/deepseek.provider.js.map +1 -1
  22. package/dist/core/ai/provider/openai.provider.js +1 -1
  23. package/dist/core/ai/provider/openai.provider.js.map +1 -1
  24. package/dist/core/db/db.service.d.ts.map +1 -1
  25. package/dist/core/db/db.service.js +3 -1
  26. package/dist/core/db/db.service.js.map +1 -1
  27. package/dist/core/db/init_sql/ai_log.init.js +15 -15
  28. package/dist/core/db/init_sql/code_snippet.init.js +11 -11
  29. package/dist/core/db/init_sql/config.init.js +15 -15
  30. package/dist/core/db/init_sql/custom_action.init.js +10 -10
  31. package/dist/core/db/init_sql/dingding.init.js +9 -9
  32. package/dist/core/db/init_sql/email.init.js +14 -14
  33. package/dist/core/db/init_sql/lsp.init.js +8 -8
  34. package/dist/core/db/init_sql/message_file.init.js +11 -11
  35. package/dist/core/db/init_sql/project.init.js +20 -20
  36. package/dist/core/db/init_sql/provider.init.js +35 -35
  37. package/dist/core/db/init_sql/scheduler.init.js +32 -32
  38. package/dist/core/db/init_sql/session.init.js +23 -23
  39. package/dist/core/db/init_sql/spec.init.js +15 -15
  40. package/dist/core/db/init_sql/waf_gateway.init.js +9 -9
  41. package/dist/core/db/init_sql/zihao.init.js +11 -11
  42. package/dist/core/lsp/sql.js +11 -11
  43. package/dist/core/tools/provider/bash.txt +47 -47
  44. package/dist/core/tools/provider/code_search.txt +20 -20
  45. package/dist/core/tools/provider/edit_file.txt +13 -13
  46. package/dist/core/tools/provider/glob.txt +12 -12
  47. package/dist/core/tools/provider/grep.txt +14 -14
  48. package/dist/core/tools/provider/lsp.txt +19 -19
  49. package/dist/core/tools/provider/memory.txt +21 -21
  50. package/dist/core/tools/provider/read_file.txt +17 -17
  51. package/dist/core/tools/provider/todo_read.txt +16 -16
  52. package/dist/core/tools/provider/todo_write.txt +48 -48
  53. package/dist/core/tools/provider/web_fetch.txt +17 -17
  54. package/dist/core/tools/provider/web_search.txt +18 -18
  55. package/dist/core/tools/provider/write_file.txt +11 -11
  56. package/dist/gateway/api/skill/detail_skill.d.ts.map +1 -1
  57. package/dist/gateway/api/skill/detail_skill.js +7 -5
  58. package/dist/gateway/api/skill/detail_skill.js.map +1 -1
  59. package/dist/gateway/cli/commands.js +18 -18
  60. package/dist/modules/ai/agents/chat/prompts/role.txt +30 -30
  61. package/dist/modules/ai/agents/code/prompts/role.txt +50 -50
  62. package/dist/modules/ai/agents/mem/prompts/role.txt +35 -35
  63. package/dist/modules/ai/agents/skill/prompts/role.txt +61 -61
  64. package/dist/modules/ai/agents/task/prompts/role.txt +50 -50
  65. package/dist/modules/ai/ai-log.service.js +10 -10
  66. package/dist/modules/ai/provider/openai/prompt/role.txt +51 -51
  67. package/dist/modules/ai/summarizer/summarizer.prompts.js +30 -30
  68. package/dist/modules/config/config.service.js +5 -5
  69. package/dist/modules/db/db.service.js +252 -252
  70. package/dist/modules/email/email.config.repository.js +1 -1
  71. package/dist/modules/repositories/project.repository.d.ts +28 -0
  72. package/dist/modules/repositories/project.repository.d.ts.map +1 -0
  73. package/dist/modules/repositories/project.repository.js +47 -0
  74. package/dist/modules/repositories/project.repository.js.map +1 -0
  75. package/dist/modules/scheduler/task-log.service.js +1 -1
  76. package/dist/modules/services/project/project.service.d.ts +14 -0
  77. package/dist/modules/services/project/project.service.d.ts.map +1 -0
  78. package/dist/modules/services/project/project.service.js +47 -0
  79. package/dist/modules/services/project/project.service.js.map +1 -0
  80. package/dist/modules/skill/skill.txt +36 -36
  81. package/dist/modules/spec/spec.injector.js +24 -24
  82. package/dist/modules/tools/provider/bash.txt +47 -47
  83. package/dist/modules/tools/provider/code_search.txt +20 -20
  84. package/dist/modules/tools/provider/edit_file.txt +13 -13
  85. package/dist/modules/tools/provider/glob.txt +12 -12
  86. package/dist/modules/tools/provider/grep.txt +14 -14
  87. package/dist/modules/tools/provider/lsp.txt +19 -19
  88. package/dist/modules/tools/provider/memory.txt +21 -21
  89. package/dist/modules/tools/provider/read_file.txt +17 -17
  90. package/dist/modules/tools/provider/todo_read.txt +16 -16
  91. package/dist/modules/tools/provider/todo_write.txt +48 -48
  92. package/dist/modules/tools/provider/web_fetch.txt +17 -17
  93. package/dist/modules/tools/provider/web_search.txt +18 -18
  94. package/dist/modules/tools/provider/write_file.txt +11 -11
  95. package/dist/modules/waf-gateway/waf-gateway.module.js +8 -8
  96. package/dist/modules/waf-gateway/waf-gateway.service.js +12 -12
  97. package/dist/repositories/project.repository.d.ts +28 -0
  98. package/dist/repositories/project.repository.d.ts.map +1 -0
  99. package/dist/repositories/project.repository.js +47 -0
  100. package/dist/repositories/project.repository.js.map +1 -0
  101. package/dist/repository/ai_log.repository.js +1 -1
  102. package/dist/repository/config.repository.js +5 -5
  103. package/dist/repository/email.repository.js +1 -1
  104. package/dist/repository/memory.repository.js +1 -1
  105. package/dist/repository/project.repository.js +3 -3
  106. package/dist/repository/scheduler.repository.js +2 -2
  107. package/dist/repository/session.repository.js +1 -1
  108. package/dist/repository/zihao-config.repository.js +1 -1
  109. package/dist/services/skill/skill.tool.d.ts.map +1 -1
  110. package/dist/services/skill/skill.tool.js +6 -1
  111. package/dist/services/skill/skill.tool.js.map +1 -1
  112. package/dist/services/skill/skill.txt +36 -36
  113. package/package.json +76 -76
  114. package/scripts/copy-txt.js +31 -31
  115. package/scripts/ink-scroll-demo.tsx +147 -147
  116. package/tsconfig.test.json +9 -9
  117. package/web/dist/assets/{ConfirmDialog-B2bVsPFI.js → ConfirmDialog-B03GcCHQ.js} +1 -1
  118. package/web/dist/assets/PcLayout-CYW3zqcs.css +1 -0
  119. package/web/dist/assets/{PcLayout-DeXNBHu2.js → PcLayout-ZTdJNg7G.js} +1 -1
  120. package/web/dist/assets/{aiLogsView-JvjhLmyo.js → aiLogsView-Bt8Xg1Qx.js} +1 -1
  121. package/web/dist/assets/{cssMode-sYHhwUZh.js → cssMode-CBb6D87U.js} +1 -1
  122. package/web/dist/assets/{customActionsView-Cvmzxvl4.js → customActionsView-DdjnHzwm.js} +1 -1
  123. package/web/dist/assets/deployView-CD7ji9IS.css +1 -0
  124. package/web/dist/assets/{deployView-CjV4ySrf.js → deployView-Cj51_Job.js} +1 -1
  125. package/web/dist/assets/designView-C3pSX4nP.css +1 -0
  126. package/web/dist/assets/designView-RT8tKEN9.js +18 -0
  127. package/web/dist/assets/devWorkflowView-BTozmaiN.js +36 -0
  128. package/web/dist/assets/devWorkflowView-DYhIfbCB.css +1 -0
  129. package/web/dist/assets/devWorkflowViewApp-CErbhC2s.css +1 -0
  130. package/web/dist/assets/{devWorkflowViewApp-DPlFgiS_.js → devWorkflowViewApp-DLslXEq9.js} +3 -3
  131. package/web/dist/assets/{fileZihao-DvZmuTYu.js → fileZihao-CtZ4bUIH.js} +1 -1
  132. package/web/dist/assets/{freemarker2-DTyAQBBj.js → freemarker2-CX3jc3l2.js} +1 -1
  133. package/web/dist/assets/gitChanges-D6QxPcii.css +1 -0
  134. package/web/dist/assets/{gitChanges-Cpf4HHoF.js → gitChanges-DFRvzL5I.js} +1 -1
  135. package/web/dist/assets/gitChangesApp-Bjn-MCmr.css +1 -0
  136. package/web/dist/assets/{gitChangesApp-BOURDd_l.js → gitChangesApp-ZI7-V8oB.js} +2 -2
  137. package/web/dist/assets/{handlebars-DiWIXxOG.js → handlebars-CTaQD6FN.js} +1 -1
  138. package/web/dist/assets/{html-BCQWkFzH.js → html-BruJsfYv.js} +1 -1
  139. package/web/dist/assets/{htmlMode-BbMA34cR.js → htmlMode-wewroXLr.js} +1 -1
  140. package/web/dist/assets/{index-C_tz4Wda.css → index-C0xmVTIn.css} +1 -1
  141. package/web/dist/assets/{index-C7axH05o.js → index-Cn73hS12.js} +9 -9
  142. package/web/dist/assets/{javascript-By4MYHaO.js → javascript-B4ku8P1-.js} +1 -1
  143. package/web/dist/assets/{jsonMode-5JIz7tDN.js → jsonMode-BIvVuBMG.js} +1 -1
  144. package/web/dist/assets/{liquid-BQBVii4f.js → liquid-Bo3G0Ep7.js} +1 -1
  145. package/web/dist/assets/{mdx-Cwk7nqzM.js → mdx-Duv0ylZz.js} +1 -1
  146. package/web/dist/assets/{mediaChat-DivTDoIv.js → mediaChat-RT7iqqYb.js} +1 -1
  147. package/web/dist/assets/{python-L_kGfe1T.js → python-CEhCctGm.js} +1 -1
  148. package/web/dist/assets/{razor-XGuHliMI.js → razor-DPK8nTD7.js} +1 -1
  149. package/web/dist/assets/{taskView-BcJ3LAxp.js → taskView-sOyebRqn.js} +1 -1
  150. package/web/dist/assets/{terminalView-q-UKzK0M.js → terminalView-GTYtDlus.js} +2 -2
  151. package/web/dist/assets/{terminalView-CQVYh6D3.css → terminalView-eZ0agsPP.css} +1 -1
  152. package/web/dist/assets/{tsMode-SuiD3mJa.js → tsMode-BZvUU1nf.js} +1 -1
  153. package/web/dist/assets/{typescript-DJcyqRjT.js → typescript-CmEn-k1B.js} +1 -1
  154. package/web/dist/assets/{wikiView-ygHSGyPp.css → wikiView-C-oqMnJM.css} +1 -1
  155. package/web/dist/assets/{wikiView-B3GIPUlD.js → wikiView-CRjg-cZ8.js} +1 -1
  156. package/web/dist/assets/{xml-DQgCzk55.js → xml-bjvdKeyy.js} +1 -1
  157. package/web/dist/assets/{yaml-DBdEYBPA.js → yaml-N5RXWxJk.js} +1 -1
  158. package/web/dist/index.html +2 -2
  159. package/web/package.json +28 -28
  160. package/dist/modules/ai/react/index.d.ts +0 -5
  161. package/dist/modules/ai/react/index.d.ts.map +0 -1
  162. package/dist/modules/ai/react/index.js +0 -4
  163. package/dist/modules/ai/react/index.js.map +0 -1
  164. package/dist/modules/ai/react/prompt/role.txt +0 -51
  165. package/dist/modules/ai/react/provider.parser.d.ts +0 -20
  166. package/dist/modules/ai/react/provider.parser.d.ts.map +0 -1
  167. package/dist/modules/ai/react/provider.parser.js +0 -88
  168. package/dist/modules/ai/react/provider.parser.js.map +0 -1
  169. package/dist/modules/ai/react/react.parser.d.ts +0 -80
  170. package/dist/modules/ai/react/react.parser.d.ts.map +0 -1
  171. package/dist/modules/ai/react/react.parser.js +0 -365
  172. package/dist/modules/ai/react/react.parser.js.map +0 -1
  173. package/dist/modules/ai/react/react.prompts.d.ts +0 -26
  174. package/dist/modules/ai/react/react.prompts.d.ts.map +0 -1
  175. package/dist/modules/ai/react/react.prompts.js +0 -170
  176. package/dist/modules/ai/react/react.prompts.js.map +0 -1
  177. package/dist/modules/ai/react/react.types.d.ts +0 -50
  178. package/dist/modules/ai/react/react.types.d.ts.map +0 -1
  179. package/dist/modules/ai/react/react.types.js +0 -2
  180. package/dist/modules/ai/react/react.types.js.map +0 -1
  181. package/dist/modules/ai/react/react.validator.d.ts +0 -14
  182. package/dist/modules/ai/react/react.validator.d.ts.map +0 -1
  183. package/dist/modules/ai/react/react.validator.js +0 -53
  184. package/dist/modules/ai/react/react.validator.js.map +0 -1
  185. package/dist/modules/ai/react.agent.d.ts +0 -82
  186. package/dist/modules/ai/react.agent.d.ts.map +0 -1
  187. package/dist/modules/ai/react.agent.js +0 -220
  188. package/dist/modules/ai/react.agent.js.map +0 -1
  189. package/dist/modules/skill/skill.service.d.ts +0 -72
  190. package/dist/modules/skill/skill.service.d.ts.map +0 -1
  191. package/dist/modules/skill/skill.service.js +0 -283
  192. package/dist/modules/skill/skill.service.js.map +0 -1
  193. package/dist/modules/tools/builtin/bash.d.ts +0 -3
  194. package/dist/modules/tools/builtin/bash.d.ts.map +0 -1
  195. package/dist/modules/tools/builtin/bash.js +0 -126
  196. package/dist/modules/tools/builtin/bash.js.map +0 -1
  197. package/dist/modules/tools/builtin/bash.tool.d.ts +0 -6
  198. package/dist/modules/tools/builtin/bash.tool.d.ts.map +0 -1
  199. package/dist/modules/tools/builtin/bash.tool.js +0 -52
  200. package/dist/modules/tools/builtin/bash.tool.js.map +0 -1
  201. package/dist/modules/tools/builtin/bash.txt +0 -69
  202. package/dist/modules/tools/builtin/code_search.d.ts +0 -3
  203. package/dist/modules/tools/builtin/code_search.d.ts.map +0 -1
  204. package/dist/modules/tools/builtin/code_search.js +0 -86
  205. package/dist/modules/tools/builtin/code_search.js.map +0 -1
  206. package/dist/modules/tools/builtin/code_search.txt +0 -41
  207. package/dist/modules/tools/builtin/edit-file.tool.d.ts +0 -6
  208. package/dist/modules/tools/builtin/edit-file.tool.d.ts.map +0 -1
  209. package/dist/modules/tools/builtin/edit-file.tool.js +0 -58
  210. package/dist/modules/tools/builtin/edit-file.tool.js.map +0 -1
  211. package/dist/modules/tools/builtin/edit_file.d.ts +0 -3
  212. package/dist/modules/tools/builtin/edit_file.d.ts.map +0 -1
  213. package/dist/modules/tools/builtin/edit_file.js +0 -105
  214. package/dist/modules/tools/builtin/edit_file.js.map +0 -1
  215. package/dist/modules/tools/builtin/edit_file.txt +0 -61
  216. package/dist/modules/tools/builtin/glob.d.ts +0 -3
  217. package/dist/modules/tools/builtin/glob.d.ts.map +0 -1
  218. package/dist/modules/tools/builtin/glob.js +0 -85
  219. package/dist/modules/tools/builtin/glob.js.map +0 -1
  220. package/dist/modules/tools/builtin/glob.tool.d.ts +0 -6
  221. package/dist/modules/tools/builtin/glob.tool.d.ts.map +0 -1
  222. package/dist/modules/tools/builtin/glob.tool.js +0 -81
  223. package/dist/modules/tools/builtin/glob.tool.js.map +0 -1
  224. package/dist/modules/tools/builtin/glob.txt +0 -33
  225. package/dist/modules/tools/builtin/grep.d.ts +0 -3
  226. package/dist/modules/tools/builtin/grep.d.ts.map +0 -1
  227. package/dist/modules/tools/builtin/grep.js +0 -94
  228. package/dist/modules/tools/builtin/grep.js.map +0 -1
  229. package/dist/modules/tools/builtin/grep.tool.d.ts +0 -6
  230. package/dist/modules/tools/builtin/grep.tool.d.ts.map +0 -1
  231. package/dist/modules/tools/builtin/grep.tool.js +0 -96
  232. package/dist/modules/tools/builtin/grep.tool.js.map +0 -1
  233. package/dist/modules/tools/builtin/grep.txt +0 -37
  234. package/dist/modules/tools/builtin/index.d.ts +0 -8
  235. package/dist/modules/tools/builtin/index.d.ts.map +0 -1
  236. package/dist/modules/tools/builtin/index.js +0 -80
  237. package/dist/modules/tools/builtin/index.js.map +0 -1
  238. package/dist/modules/tools/builtin/lsp.d.ts +0 -7
  239. package/dist/modules/tools/builtin/lsp.d.ts.map +0 -1
  240. package/dist/modules/tools/builtin/lsp.js +0 -126
  241. package/dist/modules/tools/builtin/lsp.js.map +0 -1
  242. package/dist/modules/tools/builtin/lsp.txt +0 -45
  243. package/dist/modules/tools/builtin/memory.d.ts +0 -3
  244. package/dist/modules/tools/builtin/memory.d.ts.map +0 -1
  245. package/dist/modules/tools/builtin/memory.js +0 -77
  246. package/dist/modules/tools/builtin/memory.js.map +0 -1
  247. package/dist/modules/tools/builtin/memory.txt +0 -58
  248. package/dist/modules/tools/builtin/read-file.tool.d.ts +0 -6
  249. package/dist/modules/tools/builtin/read-file.tool.d.ts.map +0 -1
  250. package/dist/modules/tools/builtin/read-file.tool.js +0 -46
  251. package/dist/modules/tools/builtin/read-file.tool.js.map +0 -1
  252. package/dist/modules/tools/builtin/read_file.d.ts +0 -3
  253. package/dist/modules/tools/builtin/read_file.d.ts.map +0 -1
  254. package/dist/modules/tools/builtin/read_file.js +0 -107
  255. package/dist/modules/tools/builtin/read_file.js.map +0 -1
  256. package/dist/modules/tools/builtin/read_file.txt +0 -38
  257. package/dist/modules/tools/builtin/todo_read.d.ts +0 -6
  258. package/dist/modules/tools/builtin/todo_read.d.ts.map +0 -1
  259. package/dist/modules/tools/builtin/todo_read.js +0 -25
  260. package/dist/modules/tools/builtin/todo_read.js.map +0 -1
  261. package/dist/modules/tools/builtin/todo_read.txt +0 -34
  262. package/dist/modules/tools/builtin/todo_write.d.ts +0 -6
  263. package/dist/modules/tools/builtin/todo_write.d.ts.map +0 -1
  264. package/dist/modules/tools/builtin/todo_write.js +0 -46
  265. package/dist/modules/tools/builtin/todo_write.js.map +0 -1
  266. package/dist/modules/tools/builtin/todo_write.txt +0 -67
  267. package/dist/modules/tools/builtin/web_fetch.d.ts +0 -3
  268. package/dist/modules/tools/builtin/web_fetch.d.ts.map +0 -1
  269. package/dist/modules/tools/builtin/web_fetch.js +0 -52
  270. package/dist/modules/tools/builtin/web_fetch.js.map +0 -1
  271. package/dist/modules/tools/builtin/web_fetch.txt +0 -38
  272. package/dist/modules/tools/builtin/web_search.d.ts +0 -3
  273. package/dist/modules/tools/builtin/web_search.d.ts.map +0 -1
  274. package/dist/modules/tools/builtin/web_search.js +0 -100
  275. package/dist/modules/tools/builtin/web_search.js.map +0 -1
  276. package/dist/modules/tools/builtin/web_search.txt +0 -43
  277. package/dist/modules/tools/builtin/write-file.tool.d.ts +0 -6
  278. package/dist/modules/tools/builtin/write-file.tool.d.ts.map +0 -1
  279. package/dist/modules/tools/builtin/write-file.tool.js +0 -38
  280. package/dist/modules/tools/builtin/write-file.tool.js.map +0 -1
  281. package/dist/modules/tools/builtin/write_file.d.ts +0 -3
  282. package/dist/modules/tools/builtin/write_file.d.ts.map +0 -1
  283. package/dist/modules/tools/builtin/write_file.js +0 -61
  284. package/dist/modules/tools/builtin/write_file.js.map +0 -1
  285. package/dist/modules/tools/builtin/write_file.txt +0 -58
  286. package/dist/modules/tools/provider/openai/tools.d.ts +0 -3
  287. package/dist/modules/tools/provider/openai/tools.d.ts.map +0 -1
  288. package/dist/modules/tools/provider/openai/tools.js +0 -212
  289. package/dist/modules/tools/provider/openai/tools.js.map +0 -1
  290. package/dist/modules/tools/provider/skill.d.ts +0 -6
  291. package/dist/modules/tools/provider/skill.d.ts.map +0 -1
  292. package/dist/modules/tools/provider/skill.js +0 -64
  293. package/dist/modules/tools/provider/skill.js.map +0 -1
  294. package/web/dist/assets/PcLayout-L-XuK1oQ.css +0 -1
  295. package/web/dist/assets/deployView-hCh3_M8H.css +0 -1
  296. package/web/dist/assets/designView-CqZ75hOS.css +0 -1
  297. package/web/dist/assets/designView-DrUNRVEE.js +0 -18
  298. package/web/dist/assets/devWorkflowView-BpdJTMEb.js +0 -36
  299. package/web/dist/assets/devWorkflowView-D7EKjoLj.css +0 -1
  300. package/web/dist/assets/devWorkflowViewApp-BYYMIdCm.css +0 -1
  301. package/web/dist/assets/gitChanges-BYj-Y2K-.css +0 -1
  302. package/web/dist/assets/gitChangesApp-Btw-XKcP.css +0 -1
@@ -1,80 +0,0 @@
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
- * <file_path>/path/to/file</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
- * <file_path>src/Hello.tsx</file_path>
33
- * <content><![CDATA[import React from 'react';]]></content>
34
- * </action_input>
35
- * </react>
36
- * ---
37
- * Tool Result:
38
- * ---
39
- * 观察结果
40
- * ---
41
- * ```
42
- */
43
- import { ReActStep, ParsedBlock } from './react.types.js';
44
- /**
45
- * ReActParser 类
46
- *
47
- * 将 AI 返回的文本解析为结构化的 ReActStep 数组
48
- */
49
- export declare class ReActParser {
50
- parse(content: string): Promise<{
51
- steps: ReActStep[];
52
- finalAnswer: string;
53
- }>;
54
- private splitBlocks;
55
- /**
56
- * 解析 XML 格式的块
57
- */
58
- parseXMLBlock(content: string): Promise<ParsedBlock | null>;
59
- /**
60
- * 用正则表达式解析 XML 格式的块(后备解析器)
61
- */
62
- private parseByRegex;
63
- private extractValue;
64
- /**
65
- * 解析 action_input 参数节点
66
- */
67
- private parseXMLParams;
68
- /**
69
- * 从 XML 内容中提取纯文本,处理 CDATA
70
- */
71
- private extractCDATAOrText;
72
- private replacePlaceholders;
73
- private isEncodedContent;
74
- private decodeContent;
75
- hasFinalAnswer(steps: ReActStep[]): boolean;
76
- formatObservation(observation: any): string;
77
- buildObservationResponse(observation: any): string;
78
- }
79
- export declare const reactParser: ReActParser;
80
- //# sourceMappingURL=react.parser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"react.parser.d.ts","sourceRoot":"","sources":["../../../../src/modules/ai/react/react.parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAc,MAAM,kBAAkB,CAAC;AAItE;;;;GAIG;AACH,qBAAa,WAAW;IAChB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;YAgDpE,WAAW;IAuDzB;;OAEG;IACU,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IA8DxE;;OAEG;IACH,OAAO,CAAC,YAAY;IA8CpB,OAAO,CAAC,YAAY;IASpB;;OAEG;YACW,cAAc;IA0B5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,mBAAmB;IAgC3B,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,aAAa;IAUrB,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO;IAI3C,iBAAiB,CAAC,WAAW,EAAE,GAAG,GAAG,MAAM;IAO3C,wBAAwB,CAAC,WAAW,EAAE,GAAG,GAAG,MAAM;CAUnD;AAED,eAAO,MAAM,WAAW,aAAoB,CAAC"}
@@ -1,365 +0,0 @@
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
- * <file_path>/path/to/file</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
- * <file_path>src/Hello.tsx</file_path>
33
- * <content><![CDATA[import React from 'react';]]></content>
34
- * </action_input>
35
- * </react>
36
- * ---
37
- * Tool Result:
38
- * ---
39
- * 观察结果
40
- * ---
41
- * ```
42
- */
43
- import { parseStringPromise } from 'xml2js';
44
- import { contentValidator } from './react.validator.js';
45
- /**
46
- * ReActParser 类
47
- *
48
- * 将 AI 返回的文本解析为结构化的 ReActStep 数组
49
- */
50
- export class ReActParser {
51
- async parse(content) {
52
- const validation = contentValidator.validate(content);
53
- if (!validation.valid) {
54
- throw new Error(validation.error);
55
- }
56
- const cleanedContent = validation.cleanedContent;
57
- const blocks = await this.splitBlocks(cleanedContent);
58
- const steps = [];
59
- const contentMap = new Map();
60
- let finalAnswer = '';
61
- for (const block of blocks) {
62
- if (block.type === 'content') {
63
- contentMap.set(block.contentKey, block.content || '');
64
- }
65
- else if (block.type === 'step') {
66
- const data = block.data;
67
- if (data.final_answer) {
68
- finalAnswer = data.final_answer;
69
- steps.push({
70
- thought: data.thought || '',
71
- actions: [],
72
- final_answer: data.final_answer,
73
- });
74
- }
75
- else {
76
- const actions = (data.actions || []).map((a) => ({
77
- actionName: a.actionName || '',
78
- actionInput: this.replacePlaceholders(a.actionInput || {}, contentMap),
79
- }));
80
- steps.push({
81
- thought: data.thought || '',
82
- actions,
83
- keepContext: data.keep_context || false,
84
- });
85
- }
86
- }
87
- else if (block.type === 'observation') {
88
- const lastStep = steps[steps.length - 1];
89
- if (lastStep) {
90
- lastStep.observation = block.data;
91
- }
92
- }
93
- }
94
- return { steps, finalAnswer };
95
- }
96
- async splitBlocks(content) {
97
- const blocks = [];
98
- const contentMatch = content.match(/^\$(\S+)\n([\s\S]*)$/);
99
- if (contentMatch) {
100
- blocks.push({
101
- type: 'content',
102
- contentKey: contentMatch[1],
103
- content: contentMatch[2],
104
- });
105
- return blocks;
106
- }
107
- // 尝试解析 XML 格式
108
- const xmlResult = await this.parseXMLBlock(content);
109
- if (xmlResult) {
110
- blocks.push(xmlResult);
111
- return blocks;
112
- }
113
- // XML 解析失败,尝试用正则表达式提取
114
- const regexResult = this.parseByRegex(content);
115
- if (regexResult) {
116
- blocks.push(regexResult);
117
- return blocks;
118
- }
119
- // 尝试解析 JSON 格式
120
- try {
121
- const json = JSON.parse(content);
122
- if (json.observation !== undefined) {
123
- blocks.push({ type: 'observation', data: json.observation });
124
- }
125
- else {
126
- blocks.push({ type: 'step', data: json });
127
- }
128
- }
129
- catch {
130
- // 尝试提取 JSON 代码块
131
- const jsonBlockMatch = content.match(/```json\s*([\s\S]*?)```/);
132
- if (jsonBlockMatch) {
133
- try {
134
- const json = JSON.parse(jsonBlockMatch[1].trim());
135
- if (json.observation !== undefined) {
136
- blocks.push({ type: 'observation', data: json.observation });
137
- }
138
- else {
139
- blocks.push({ type: 'step', data: json });
140
- }
141
- }
142
- catch {
143
- // 忽略解析失败
144
- }
145
- }
146
- }
147
- return blocks;
148
- }
149
- /**
150
- * 解析 XML 格式的块
151
- */
152
- async parseXMLBlock(content) {
153
- try {
154
- const wrappedXml = `<root>${content}</root>`;
155
- const parsed = await parseStringPromise(wrappedXml, {
156
- trim: false,
157
- explicitArray: true,
158
- mergeAttrs: true,
159
- });
160
- if (!parsed?.root?.react?.[0]) {
161
- return null;
162
- }
163
- const react = parsed.root.react[0];
164
- const data = {};
165
- if (react.thought) {
166
- data.thought = this.extractValue(react.thought);
167
- }
168
- if (react.final_answer) {
169
- data.final_answer = this.extractValue(react.final_answer);
170
- return { type: 'step', data };
171
- }
172
- if (react.keep_context) {
173
- const keepCtx = this.extractValue(react.keep_context);
174
- data.keep_context = keepCtx?.toLowerCase() === 'true';
175
- }
176
- data.actions = [];
177
- const actionList = Array.isArray(react.action) ? react.action : (react.action ? [react.action] : []);
178
- for (const actionItem of actionList) {
179
- if (actionItem && typeof actionItem === 'object') {
180
- const actionName = this.extractValue(actionItem.action_name || actionItem.actionName);
181
- const actionInput = actionItem.action_input
182
- ? await this.parseXMLParams(actionItem.action_input)
183
- : {};
184
- if (actionName) {
185
- data.actions.push({ actionName, actionInput });
186
- }
187
- }
188
- else if (actionItem && typeof actionItem === 'string') {
189
- const actionName = this.extractValue(actionItem);
190
- if (actionName) {
191
- data.actions.push({ actionName, actionInput: {} });
192
- }
193
- }
194
- }
195
- if (data.actions.length === 0 && !data.final_answer) {
196
- console.log('data.actions is empty and no final_answer, returning null');
197
- return null;
198
- }
199
- return { type: 'step', data };
200
- }
201
- catch (e) {
202
- console.error('XML parse error:', e);
203
- return null;
204
- }
205
- }
206
- /**
207
- * 用正则表达式解析 XML 格式的块(后备解析器)
208
- */
209
- parseByRegex(content) {
210
- const data = {};
211
- const actions = [];
212
- const thoughtMatch = content.match(/<thought>\s*([\s\S]*?)\s*<\/thought>/);
213
- if (thoughtMatch) {
214
- data.thought = thoughtMatch[1].trim();
215
- }
216
- const finalAnswerMatch = content.match(/<final_answer>\s*([\s\S]*?)\s*<\/final_answer>/);
217
- if (finalAnswerMatch) {
218
- data.final_answer = finalAnswerMatch[1].trim();
219
- return { type: 'step', data };
220
- }
221
- const keepContextMatch = content.match(/<keep_context>\s*([\s\S]*?)\s*<\/keep_context>/);
222
- if (keepContextMatch) {
223
- data.keep_context = keepContextMatch[1].toLowerCase() === 'true';
224
- }
225
- const actionRegex = /<action>\s*<action_name>\s*([^<]*?)\s*<\/action_name>\s*<action_input>\s*([^]*?)\s*<\/action_input>\s*<\/action>/gi;
226
- let actionMatch;
227
- while ((actionMatch = actionRegex.exec(content)) !== null) {
228
- const actionName = actionMatch[1].trim();
229
- const actionInputContent = actionMatch[2];
230
- const actionInput = {};
231
- const paramRegex = /<(\w+)>\s*([\s\S]*?)\s*<\/\1>/gi;
232
- let paramMatch;
233
- while ((paramMatch = paramRegex.exec(actionInputContent)) !== null) {
234
- actionInput[paramMatch[1]] = paramMatch[2].trim();
235
- }
236
- if (actionName) {
237
- actions.push({ actionName, actionInput });
238
- }
239
- }
240
- if (actions.length === 0 && !data.thought && !data.final_answer) {
241
- return null;
242
- }
243
- data.actions = actions;
244
- return { type: 'step', data };
245
- }
246
- extractValue(value) {
247
- if (!value)
248
- return '';
249
- if (typeof value === 'string')
250
- return value.trim();
251
- if (typeof value === 'object' && '_' in value) {
252
- return this.extractCDATAOrText(String(value._));
253
- }
254
- return String(value);
255
- }
256
- /**
257
- * 解析 action_input 参数节点
258
- */
259
- async parseXMLParams(actionInput) {
260
- const params = {};
261
- if (!actionInput || typeof actionInput !== 'object') {
262
- return params;
263
- }
264
- const isArray = Array.isArray(actionInput) || Object.keys(actionInput).every(k => /^\d+$/.test(k));
265
- if (isArray) {
266
- for (const item of actionInput) {
267
- if (item && typeof item === 'object') {
268
- for (const [key, value] of Object.entries(item)) {
269
- params[key] = this.extractValue(value);
270
- }
271
- }
272
- }
273
- }
274
- else {
275
- for (const [key, value] of Object.entries(actionInput)) {
276
- params[key] = this.extractValue(value);
277
- }
278
- }
279
- return params;
280
- }
281
- /**
282
- * 从 XML 内容中提取纯文本,处理 CDATA
283
- */
284
- extractCDATAOrText(content) {
285
- // 匹配 CDATA
286
- const cdataMatch = content.match(/<!\[CDATA\[([\s\S]*?)\]\]>/);
287
- if (cdataMatch) {
288
- return cdataMatch[1];
289
- }
290
- return content.trim();
291
- }
292
- replacePlaceholders(obj, contentMap) {
293
- if (!obj)
294
- return {};
295
- const result = {};
296
- for (const [key, value] of Object.entries(obj)) {
297
- if (typeof value === 'string') {
298
- const match = value.match(/^\$(\S+)$/);
299
- if (match) {
300
- const placeholderKey = match[1];
301
- const replacement = contentMap.get(placeholderKey);
302
- if (replacement !== undefined) {
303
- result[key] = replacement;
304
- }
305
- else {
306
- result[key] = value;
307
- }
308
- }
309
- else if (this.isEncodedContent(value)) {
310
- result[key] = this.decodeContent(value);
311
- }
312
- else {
313
- result[key] = value;
314
- }
315
- }
316
- else if (typeof value === 'object' && value !== null) {
317
- result[key] = this.replacePlaceholders(value, contentMap);
318
- }
319
- else {
320
- result[key] = value;
321
- }
322
- }
323
- return result;
324
- }
325
- isEncodedContent(value) {
326
- if (value.startsWith('$$content:') || value.includes('$content:2')) {
327
- return true;
328
- }
329
- const dollarCount = (value.match(/\$/g) || []).length;
330
- if (dollarCount > 3 && value.includes('content:')) {
331
- return true;
332
- }
333
- return false;
334
- }
335
- decodeContent(value) {
336
- const decodedParts = [];
337
- const regex = /\$\$?content:(\d+)([a-zA-Z])/g;
338
- let match;
339
- while ((match = regex.exec(value)) !== null) {
340
- decodedParts.push(match[2]);
341
- }
342
- return decodedParts.length > 0 ? decodedParts.join('') : value;
343
- }
344
- hasFinalAnswer(steps) {
345
- return steps.some(s => s.final_answer !== undefined);
346
- }
347
- formatObservation(observation) {
348
- if (typeof observation === 'string') {
349
- return observation;
350
- }
351
- return JSON.stringify(observation, null, 2);
352
- }
353
- buildObservationResponse(observation) {
354
- const formattedObs = typeof observation === 'string'
355
- ? `<![CDATA[${observation}]]>`
356
- : `<![CDATA[${JSON.stringify(observation, null, 2)}]]>`;
357
- return `---
358
- <react>
359
- <observation>${formattedObs}</observation>
360
- </react>
361
- ---`;
362
- }
363
- }
364
- export const reactParser = new ReActParser();
365
- //# sourceMappingURL=react.parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"react.parser.js","sourceRoot":"","sources":["../../../../src/modules/ai/react/react.parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAoB,MAAM,sBAAsB,CAAC;AAE1E;;;;GAIG;AACH,MAAM,OAAO,WAAW;IACtB,KAAK,CAAC,KAAK,CAAC,OAAe;QACzB,MAAM,UAAU,GAAqB,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACxE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,cAAc,GAAG,UAAU,CAAC,cAAe,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QACtD,MAAM,KAAK,GAAgB,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC7C,IAAI,WAAW,GAAG,EAAE,CAAC;QAErB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC7B,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,UAAW,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YACzD,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACjC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;gBAExB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;oBACtB,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;oBAChC,KAAK,CAAC,IAAI,CAAC;wBACT,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;wBAC3B,OAAO,EAAE,EAAE;wBACX,YAAY,EAAE,IAAI,CAAC,YAAY;qBAChC,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,MAAM,OAAO,GAAiB,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;wBAClE,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,EAAE;wBAC9B,WAAW,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,EAAE,UAAU,CAAC;qBACvE,CAAC,CAAC,CAAC;oBAEJ,KAAK,CAAC,IAAI,CAAC;wBACT,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;wBAC3B,OAAO;wBACP,WAAW,EAAE,IAAI,CAAC,YAAY,IAAI,KAAK;qBACxC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBACxC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACzC,IAAI,QAAQ,EAAE,CAAC;oBACb,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC;gBACpC,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAChC,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,OAAe;QACvC,MAAM,MAAM,GAAkB,EAAE,CAAC;QAEjC,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC3D,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,SAAS;gBACf,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;gBAC3B,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;aACzB,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,cAAc;QACd,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACvB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,sBAAsB;QACtB,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACzB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,eAAe;QACf,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjC,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBACnC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,gBAAgB;YAChB,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAChE,IAAI,cAAc,EAAE,CAAC;gBACnB,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;oBAClD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;wBACnC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;oBAC/D,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC5C,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,aAAa,CAAC,OAAe;QACxC,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,SAAS,OAAO,SAAS,CAAC;YAC7C,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,UAAU,EAAE;gBAClD,IAAI,EAAE,KAAK;gBACX,aAAa,EAAE,IAAI;gBACnB,UAAU,EAAE,IAAI;aACjB,CAAC,CAAC;YAEF,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,IAAI,GAAwB,EAAE,CAAC;YAErC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAClD,CAAC;YAED,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YAChC,CAAC;YAED,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBACvB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBACtD,IAAI,CAAC,YAAY,GAAG,OAAO,EAAE,WAAW,EAAE,KAAK,MAAM,CAAC;YACxD,CAAC;YAED,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;YAClB,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAErG,KAAK,MAAM,UAAU,IAAI,UAAU,EAAE,CAAC;gBACpC,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;oBACjD,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,WAAW,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;oBACtF,MAAM,WAAW,GAAG,UAAU,CAAC,YAAY;wBACzC,CAAC,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,YAAY,CAAC;wBACpD,CAAC,CAAC,EAAE,CAAC;oBACP,IAAI,UAAU,EAAE,CAAC;wBACf,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;oBACjD,CAAC;gBACH,CAAC;qBAAM,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;oBACxD,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;oBACjD,IAAI,UAAU,EAAE,CAAC;wBACf,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;oBACrD,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACnD,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;gBAC1E,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAChC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;YACrC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,OAAe;QAClC,MAAM,IAAI,GAAwB,EAAE,CAAC;QACrC,MAAM,OAAO,GAA+D,EAAE,CAAC;QAE/E,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC3E,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,CAAC;QAED,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACzF,IAAI,gBAAgB,EAAE,CAAC;YACrB,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAChC,CAAC;QAED,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACzF,IAAI,gBAAgB,EAAE,CAAC;YACrB,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;QACnE,CAAC;QAED,MAAM,WAAW,GAAG,oHAAoH,CAAC;QACzI,IAAI,WAAW,CAAC;QAChB,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC1D,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACzC,MAAM,kBAAkB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,WAAW,GAAwB,EAAE,CAAC;YAE5C,MAAM,UAAU,GAAG,iCAAiC,CAAC;YACrD,IAAI,UAAU,CAAC;YACf,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACnE,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACpD,CAAC;YAED,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YAChE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAChC,CAAC;IAEO,YAAY,CAAC,KAAU;QAC7B,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QACtB,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;QACnD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc,CAAC,WAAgB;QAC3C,MAAM,MAAM,GAAwB,EAAE,CAAC;QAEvC,IAAI,CAAC,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACpD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnG,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;gBAC/B,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACrC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;wBAChD,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;oBACzC,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBACvD,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,OAAe;QACxC,WAAW;QACX,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC/D,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;IAEO,mBAAmB,CACzB,GAAwB,EACxB,UAA+B;QAE/B,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,CAAC;QAEpB,MAAM,MAAM,GAAwB,EAAE,CAAC;QACvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBACvC,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBAChC,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;oBACnD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;wBAC9B,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;oBAC5B,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;oBACtB,CAAC;gBACH,CAAC;qBAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;oBACxC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAC1C,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACtB,CAAC;YACH,CAAC;iBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACvD,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACtB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,gBAAgB,CAAC,KAAa;QACpC,IAAI,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACnE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACtD,IAAI,WAAW,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAClD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,aAAa,CAAC,KAAa;QACjC,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,+BAA+B,CAAC;QAC9C,IAAI,KAAK,CAAC;QACV,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC5C,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACjE,CAAC;IAED,cAAc,CAAC,KAAkB;QAC/B,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC;IACvD,CAAC;IAED,iBAAiB,CAAC,WAAgB;QAChC,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACpC,OAAO,WAAW,CAAC;QACrB,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,wBAAwB,CAAC,WAAgB;QACvC,MAAM,YAAY,GAAG,OAAO,WAAW,KAAK,QAAQ;YAClD,CAAC,CAAC,YAAY,WAAW,KAAK;YAC9B,CAAC,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC;QAC1D,OAAO;;iBAEM,YAAY;;IAEzB,CAAC;IACH,CAAC;CACF;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC"}
@@ -1,26 +0,0 @@
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
@@ -1 +0,0 @@
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;AAwI7D,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,CAqBjB"}
@@ -1,170 +0,0 @@
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>
71
- <action_name>工具名称</action_name>
72
- <action_input>
73
- <参数名>参数值</参数名>
74
- </action_input>
75
- </action>
76
- <action>
77
- <action_name>另一个工具</action_name>
78
- <action_input>
79
- <参数名>参数值</参数名>
80
- </action_input>
81
- </action>
82
- <keep_context>true</keep_context>
83
- </react>
84
- \`\`\`
85
- 如果有多个工具一起调用,重复 <action> 块即可
86
-
87
- **返回最终答案时:**
88
- \`\`\`xml
89
- <react>
90
- <thought>任务已完成</thought>
91
- <final_answer><![CDATA[详细的完成结果]]></final_answer>
92
- </react>
93
- \`\`\`
94
-
95
- ## 字段说明
96
-
97
- | 字段 | 类型 | 说明 |
98
- |------|------|
99
- | \`thought\` | string | 你的思考过程 |
100
- | \`action\` | array | 要执行的工具列表,可包含多个 action |
101
- | \`action_name\` | string | 工具名称 |
102
- | \`action_input\` | object | 工具参数 |
103
- | \`keep_context\` | boolean | 是否将此结果永久记忆并传递给下一轮(默认 false) |
104
- | \`final_answer\` | string | 最终回答(仅在任务完成时使用),使用 CDATA 包裹 |
105
-
106
- ## 内置工具
107
-
108
- {builtinTools}
109
-
110
- ## skill 工具
111
-
112
- 在执行特定任务前,可以使用 skill 工具加载相关的 Skill 指南,了解该领域的约束、最佳实践和操作方法:
113
-
114
- \`\`\`xml
115
- <react>
116
- <thought>用户要求创建发布版本,我需要先查看 git-release Skill</thought>
117
- <action>
118
- <action_name>skill</action_name>
119
- <action_input>
120
- <name>git-release</name>
121
- </action_input>
122
- </action>
123
- </react>
124
- \`\`\`
125
-
126
- skill 参数:
127
- <tool>
128
- <name>skill</name>
129
- <description>加载一个 Skill,获取其完整内容和使用说明</description>
130
- <parameters>
131
- <name type="string">Skill 名称(必填),例如:git-release, testing-guide, code-review 等</name>
132
- </parameters>
133
- </tool>
134
-
135
- 加载成功后,返回该 Skill 的完整内容。AI 会根据 Skill 中的指南来执行任务,确保遵循最佳实践和约束。
136
-
137
- ## 可用 Skills
138
-
139
- {skills}
140
-
141
- ## 重要规则
142
-
143
- - 优先使用内置工具
144
- - 在执行任务前,先使用 skill 加载相关 Skill 指南了解约束和最佳实践
145
- - 加载 Skill 后,其提供的工具会自动可用
146
- - 每个步骤后用 \\n---\\n 分隔
147
- - 如果工具执行失败,思考原因并尝试其他方法
148
- - 谨慎设置 keep_context=true,只对需要传递给下一轮的重要结果设置
149
- - 最大迭代次数: {maxIterations}
150
- `;
151
- }
152
- export async function buildReActPrompt(builtinTools, _skills, maxIterations = 10, options) {
153
- const platform = options?.platform || process.platform;
154
- const workdir = options?.workdir || process.cwd();
155
- const platformName = platform === 'win32' ? 'Windows'
156
- : platform === 'darwin' ? 'macOS'
157
- : platform === 'linux' ? 'Linux'
158
- : platform;
159
- const builtinToolsDesc = builtinTools.map(t => t.description).join('\n\n');
160
- const skillsPrompt = await buildAvailableSkillsPrompt();
161
- const roleTemplate = await loadRoleTemplate();
162
- const template = getReActPromptTemplate(roleTemplate);
163
- return template
164
- .replace('{platform}', platformName)
165
- .replace('{workdir}', workdir)
166
- .replace('{builtinTools}', builtinToolsDesc || '(无)')
167
- .replace('{skills}', skillsPrompt)
168
- .replace('{maxIterations}', String(maxIterations));
169
- }
170
- //# sourceMappingURL=react.prompts.js.map
@@ -1 +0,0 @@
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkHvB,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,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAE1E,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"}