@cicctencent/agent-server 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (380) hide show
  1. package/README.md +235 -0
  2. package/dist/cjs/agent/agent-server.d.ts +6 -0
  3. package/dist/cjs/agent/agent-server.d.ts.map +1 -0
  4. package/dist/cjs/agent/agent-server.js +412 -0
  5. package/dist/cjs/agent/agent-server.js.map +1 -0
  6. package/dist/cjs/connectors/index.d.ts +13 -0
  7. package/dist/cjs/connectors/index.d.ts.map +1 -0
  8. package/dist/cjs/connectors/index.js +37 -0
  9. package/dist/cjs/connectors/index.js.map +1 -0
  10. package/dist/cjs/index.d.ts +56 -0
  11. package/dist/cjs/index.d.ts.map +1 -0
  12. package/dist/cjs/index.js +169 -0
  13. package/dist/cjs/index.js.map +1 -0
  14. package/dist/cjs/kb/doc-parser.d.ts +24 -0
  15. package/dist/cjs/kb/doc-parser.d.ts.map +1 -0
  16. package/dist/cjs/kb/doc-parser.js +137 -0
  17. package/dist/cjs/kb/doc-parser.js.map +1 -0
  18. package/dist/cjs/kb/embedding-vector-index.d.ts +30 -0
  19. package/dist/cjs/kb/embedding-vector-index.d.ts.map +1 -0
  20. package/dist/cjs/kb/embedding-vector-index.js +75 -0
  21. package/dist/cjs/kb/embedding-vector-index.js.map +1 -0
  22. package/dist/cjs/kb/file-knowledge-base.d.ts +25 -0
  23. package/dist/cjs/kb/file-knowledge-base.d.ts.map +1 -0
  24. package/dist/cjs/kb/file-knowledge-base.js +200 -0
  25. package/dist/cjs/kb/file-knowledge-base.js.map +1 -0
  26. package/dist/cjs/mcp/api-bridge-client.d.ts +36 -0
  27. package/dist/cjs/mcp/api-bridge-client.d.ts.map +1 -0
  28. package/dist/cjs/mcp/api-bridge-client.js +143 -0
  29. package/dist/cjs/mcp/api-bridge-client.js.map +1 -0
  30. package/dist/cjs/mcp/api-bridge-types.d.ts +91 -0
  31. package/dist/cjs/mcp/api-bridge-types.d.ts.map +1 -0
  32. package/dist/cjs/mcp/api-bridge-types.js +8 -0
  33. package/dist/cjs/mcp/api-bridge-types.js.map +1 -0
  34. package/dist/cjs/mcp/body-template.d.ts +16 -0
  35. package/dist/cjs/mcp/body-template.d.ts.map +1 -0
  36. package/dist/cjs/mcp/body-template.js +62 -0
  37. package/dist/cjs/mcp/body-template.js.map +1 -0
  38. package/dist/cjs/mcp/openapi-importer.d.ts +24 -0
  39. package/dist/cjs/mcp/openapi-importer.d.ts.map +1 -0
  40. package/dist/cjs/mcp/openapi-importer.js +183 -0
  41. package/dist/cjs/mcp/openapi-importer.js.map +1 -0
  42. package/dist/cjs/mcp/template-builder.d.ts +53 -0
  43. package/dist/cjs/mcp/template-builder.d.ts.map +1 -0
  44. package/dist/cjs/mcp/template-builder.js +177 -0
  45. package/dist/cjs/mcp/template-builder.js.map +1 -0
  46. package/dist/cjs/model/automation.d.ts +34 -0
  47. package/dist/cjs/model/automation.d.ts.map +1 -0
  48. package/dist/cjs/model/automation.js +6 -0
  49. package/dist/cjs/model/automation.js.map +1 -0
  50. package/dist/cjs/package.json +3 -0
  51. package/dist/cjs/prompt/prompt-builder.d.ts +14 -0
  52. package/dist/cjs/prompt/prompt-builder.d.ts.map +1 -0
  53. package/dist/cjs/prompt/prompt-builder.js +113 -0
  54. package/dist/cjs/prompt/prompt-builder.js.map +1 -0
  55. package/dist/cjs/sandbox/local-sandbox.d.ts +70 -0
  56. package/dist/cjs/sandbox/local-sandbox.d.ts.map +1 -0
  57. package/dist/cjs/sandbox/local-sandbox.js +442 -0
  58. package/dist/cjs/sandbox/local-sandbox.js.map +1 -0
  59. package/dist/cjs/sandbox/process-code-sandbox.d.ts +25 -0
  60. package/dist/cjs/sandbox/process-code-sandbox.d.ts.map +1 -0
  61. package/dist/cjs/sandbox/process-code-sandbox.js +113 -0
  62. package/dist/cjs/sandbox/process-code-sandbox.js.map +1 -0
  63. package/dist/cjs/sandbox/sandbox-manager.d.ts +47 -0
  64. package/dist/cjs/sandbox/sandbox-manager.d.ts.map +1 -0
  65. package/dist/cjs/sandbox/sandbox-manager.js +126 -0
  66. package/dist/cjs/sandbox/sandbox-manager.js.map +1 -0
  67. package/dist/cjs/service/agent-profile.service.d.ts +27 -0
  68. package/dist/cjs/service/agent-profile.service.d.ts.map +1 -0
  69. package/dist/cjs/service/agent-profile.service.js +143 -0
  70. package/dist/cjs/service/agent-profile.service.js.map +1 -0
  71. package/dist/cjs/service/artifact.service.d.ts +33 -0
  72. package/dist/cjs/service/artifact.service.d.ts.map +1 -0
  73. package/dist/cjs/service/artifact.service.js +214 -0
  74. package/dist/cjs/service/artifact.service.js.map +1 -0
  75. package/dist/cjs/service/audit.service.d.ts +30 -0
  76. package/dist/cjs/service/audit.service.d.ts.map +1 -0
  77. package/dist/cjs/service/audit.service.js +169 -0
  78. package/dist/cjs/service/audit.service.js.map +1 -0
  79. package/dist/cjs/service/chat.service.d.ts +90 -0
  80. package/dist/cjs/service/chat.service.d.ts.map +1 -0
  81. package/dist/cjs/service/chat.service.js +433 -0
  82. package/dist/cjs/service/chat.service.js.map +1 -0
  83. package/dist/cjs/service/engine-pool.d.ts +6 -0
  84. package/dist/cjs/service/engine-pool.d.ts.map +1 -0
  85. package/dist/cjs/service/engine-pool.js +24 -0
  86. package/dist/cjs/service/engine-pool.js.map +1 -0
  87. package/dist/cjs/service/memory.service.d.ts +45 -0
  88. package/dist/cjs/service/memory.service.d.ts.map +1 -0
  89. package/dist/cjs/service/memory.service.js +193 -0
  90. package/dist/cjs/service/memory.service.js.map +1 -0
  91. package/dist/cjs/service/observability.service.d.ts +3 -0
  92. package/dist/cjs/service/observability.service.d.ts.map +1 -0
  93. package/dist/cjs/service/observability.service.js +10 -0
  94. package/dist/cjs/service/observability.service.js.map +1 -0
  95. package/dist/cjs/service/permission.service.d.ts +5 -0
  96. package/dist/cjs/service/permission.service.d.ts.map +1 -0
  97. package/dist/cjs/service/permission.service.js +40 -0
  98. package/dist/cjs/service/permission.service.js.map +1 -0
  99. package/dist/cjs/service/run-registry.d.ts +7 -0
  100. package/dist/cjs/service/run-registry.d.ts.map +1 -0
  101. package/dist/cjs/service/run-registry.js +44 -0
  102. package/dist/cjs/service/run-registry.js.map +1 -0
  103. package/dist/cjs/service/safety-audit.middleware.d.ts +3 -0
  104. package/dist/cjs/service/safety-audit.middleware.d.ts.map +1 -0
  105. package/dist/cjs/service/safety-audit.middleware.js +115 -0
  106. package/dist/cjs/service/safety-audit.middleware.js.map +1 -0
  107. package/dist/cjs/service/security-policy.service.d.ts +18 -0
  108. package/dist/cjs/service/security-policy.service.d.ts.map +1 -0
  109. package/dist/cjs/service/security-policy.service.js +46 -0
  110. package/dist/cjs/service/security-policy.service.js.map +1 -0
  111. package/dist/cjs/service/settings.service.d.ts +18 -0
  112. package/dist/cjs/service/settings.service.d.ts.map +1 -0
  113. package/dist/cjs/service/settings.service.js +222 -0
  114. package/dist/cjs/service/settings.service.js.map +1 -0
  115. package/dist/cjs/service/tool-risk.service.d.ts +3 -0
  116. package/dist/cjs/service/tool-risk.service.d.ts.map +1 -0
  117. package/dist/cjs/service/tool-risk.service.js +23 -0
  118. package/dist/cjs/service/tool-risk.service.js.map +1 -0
  119. package/dist/cjs/service/workspace.service.d.ts +33 -0
  120. package/dist/cjs/service/workspace.service.d.ts.map +1 -0
  121. package/dist/cjs/service/workspace.service.js +107 -0
  122. package/dist/cjs/service/workspace.service.js.map +1 -0
  123. package/dist/cjs/sse/sse-handler.d.ts +15 -0
  124. package/dist/cjs/sse/sse-handler.d.ts.map +1 -0
  125. package/dist/cjs/sse/sse-handler.js +56 -0
  126. package/dist/cjs/sse/sse-handler.js.map +1 -0
  127. package/dist/cjs/store/app-stores.d.ts +42 -0
  128. package/dist/cjs/store/app-stores.d.ts.map +1 -0
  129. package/dist/cjs/store/app-stores.js +226 -0
  130. package/dist/cjs/store/app-stores.js.map +1 -0
  131. package/dist/cjs/store/index.d.ts +3 -0
  132. package/dist/cjs/store/index.d.ts.map +1 -0
  133. package/dist/cjs/store/index.js +10 -0
  134. package/dist/cjs/store/index.js.map +1 -0
  135. package/dist/cjs/store/mcp-server-store.d.ts +35 -0
  136. package/dist/cjs/store/mcp-server-store.d.ts.map +1 -0
  137. package/dist/cjs/store/mcp-server-store.js +288 -0
  138. package/dist/cjs/store/mcp-server-store.js.map +1 -0
  139. package/dist/cjs/tool/builtin.d.ts +18 -0
  140. package/dist/cjs/tool/builtin.d.ts.map +1 -0
  141. package/dist/cjs/tool/builtin.js +43 -0
  142. package/dist/cjs/tool/builtin.js.map +1 -0
  143. package/dist/cjs/tool/local-executors.d.ts +22 -0
  144. package/dist/cjs/tool/local-executors.d.ts.map +1 -0
  145. package/dist/cjs/tool/local-executors.js +126 -0
  146. package/dist/cjs/tool/local-executors.js.map +1 -0
  147. package/dist/cjs/tool/tools/automation.d.ts +3 -0
  148. package/dist/cjs/tool/tools/automation.d.ts.map +1 -0
  149. package/dist/cjs/tool/tools/automation.js +190 -0
  150. package/dist/cjs/tool/tools/automation.js.map +1 -0
  151. package/dist/cjs/tool/tools/communication.d.ts +3 -0
  152. package/dist/cjs/tool/tools/communication.d.ts.map +1 -0
  153. package/dist/cjs/tool/tools/communication.js +302 -0
  154. package/dist/cjs/tool/tools/communication.js.map +1 -0
  155. package/dist/cjs/tool/tools/discovery.d.ts +3 -0
  156. package/dist/cjs/tool/tools/discovery.d.ts.map +1 -0
  157. package/dist/cjs/tool/tools/discovery.js +248 -0
  158. package/dist/cjs/tool/tools/discovery.js.map +1 -0
  159. package/dist/cjs/tool/tools/filesystem.d.ts +3 -0
  160. package/dist/cjs/tool/tools/filesystem.d.ts.map +1 -0
  161. package/dist/cjs/tool/tools/filesystem.js +403 -0
  162. package/dist/cjs/tool/tools/filesystem.js.map +1 -0
  163. package/dist/cjs/tool/tools/git.d.ts +3 -0
  164. package/dist/cjs/tool/tools/git.d.ts.map +1 -0
  165. package/dist/cjs/tool/tools/git.js +224 -0
  166. package/dist/cjs/tool/tools/git.js.map +1 -0
  167. package/dist/cjs/tool/tools/memory.d.ts +3 -0
  168. package/dist/cjs/tool/tools/memory.d.ts.map +1 -0
  169. package/dist/cjs/tool/tools/memory.js +126 -0
  170. package/dist/cjs/tool/tools/memory.js.map +1 -0
  171. package/dist/cjs/tool/tools/sandbox.d.ts +3 -0
  172. package/dist/cjs/tool/tools/sandbox.d.ts.map +1 -0
  173. package/dist/cjs/tool/tools/sandbox.js +413 -0
  174. package/dist/cjs/tool/tools/sandbox.js.map +1 -0
  175. package/dist/cjs/tool/tools/web-utils.d.ts +16 -0
  176. package/dist/cjs/tool/tools/web-utils.d.ts.map +1 -0
  177. package/dist/cjs/tool/tools/web-utils.js +131 -0
  178. package/dist/cjs/tool/tools/web-utils.js.map +1 -0
  179. package/dist/cjs/tool/tools/web.d.ts +3 -0
  180. package/dist/cjs/tool/tools/web.d.ts.map +1 -0
  181. package/dist/cjs/tool/tools/web.js +358 -0
  182. package/dist/cjs/tool/tools/web.js.map +1 -0
  183. package/dist/cjs/types.d.ts +523 -0
  184. package/dist/cjs/types.d.ts.map +1 -0
  185. package/dist/cjs/types.js +6 -0
  186. package/dist/cjs/types.js.map +1 -0
  187. package/dist/cjs/utils/data-dir.d.ts +8 -0
  188. package/dist/cjs/utils/data-dir.d.ts.map +1 -0
  189. package/dist/cjs/utils/data-dir.js +92 -0
  190. package/dist/cjs/utils/data-dir.js.map +1 -0
  191. package/dist/esm/agent/agent-server.d.ts +6 -0
  192. package/dist/esm/agent/agent-server.d.ts.map +1 -0
  193. package/dist/esm/agent/agent-server.js +409 -0
  194. package/dist/esm/agent/agent-server.js.map +1 -0
  195. package/dist/esm/connectors/index.d.ts +13 -0
  196. package/dist/esm/connectors/index.d.ts.map +1 -0
  197. package/dist/esm/connectors/index.js +30 -0
  198. package/dist/esm/connectors/index.js.map +1 -0
  199. package/dist/esm/index.d.ts +56 -0
  200. package/dist/esm/index.d.ts.map +1 -0
  201. package/dist/esm/index.js +57 -0
  202. package/dist/esm/index.js.map +1 -0
  203. package/dist/esm/kb/doc-parser.d.ts +24 -0
  204. package/dist/esm/kb/doc-parser.d.ts.map +1 -0
  205. package/dist/esm/kb/doc-parser.js +100 -0
  206. package/dist/esm/kb/doc-parser.js.map +1 -0
  207. package/dist/esm/kb/embedding-vector-index.d.ts +30 -0
  208. package/dist/esm/kb/embedding-vector-index.d.ts.map +1 -0
  209. package/dist/esm/kb/embedding-vector-index.js +71 -0
  210. package/dist/esm/kb/embedding-vector-index.js.map +1 -0
  211. package/dist/esm/kb/file-knowledge-base.d.ts +25 -0
  212. package/dist/esm/kb/file-knowledge-base.d.ts.map +1 -0
  213. package/dist/esm/kb/file-knowledge-base.js +163 -0
  214. package/dist/esm/kb/file-knowledge-base.js.map +1 -0
  215. package/dist/esm/mcp/api-bridge-client.d.ts +36 -0
  216. package/dist/esm/mcp/api-bridge-client.d.ts.map +1 -0
  217. package/dist/esm/mcp/api-bridge-client.js +139 -0
  218. package/dist/esm/mcp/api-bridge-client.js.map +1 -0
  219. package/dist/esm/mcp/api-bridge-types.d.ts +91 -0
  220. package/dist/esm/mcp/api-bridge-types.d.ts.map +1 -0
  221. package/dist/esm/mcp/api-bridge-types.js +7 -0
  222. package/dist/esm/mcp/api-bridge-types.js.map +1 -0
  223. package/dist/esm/mcp/body-template.d.ts +16 -0
  224. package/dist/esm/mcp/body-template.d.ts.map +1 -0
  225. package/dist/esm/mcp/body-template.js +59 -0
  226. package/dist/esm/mcp/body-template.js.map +1 -0
  227. package/dist/esm/mcp/openapi-importer.d.ts +24 -0
  228. package/dist/esm/mcp/openapi-importer.d.ts.map +1 -0
  229. package/dist/esm/mcp/openapi-importer.js +177 -0
  230. package/dist/esm/mcp/openapi-importer.js.map +1 -0
  231. package/dist/esm/mcp/template-builder.d.ts +53 -0
  232. package/dist/esm/mcp/template-builder.d.ts.map +1 -0
  233. package/dist/esm/mcp/template-builder.js +173 -0
  234. package/dist/esm/mcp/template-builder.js.map +1 -0
  235. package/dist/esm/model/automation.d.ts +34 -0
  236. package/dist/esm/model/automation.d.ts.map +1 -0
  237. package/dist/esm/model/automation.js +5 -0
  238. package/dist/esm/model/automation.js.map +1 -0
  239. package/dist/esm/package.json +3 -0
  240. package/dist/esm/prompt/prompt-builder.d.ts +14 -0
  241. package/dist/esm/prompt/prompt-builder.d.ts.map +1 -0
  242. package/dist/esm/prompt/prompt-builder.js +109 -0
  243. package/dist/esm/prompt/prompt-builder.js.map +1 -0
  244. package/dist/esm/sandbox/local-sandbox.d.ts +70 -0
  245. package/dist/esm/sandbox/local-sandbox.d.ts.map +1 -0
  246. package/dist/esm/sandbox/local-sandbox.js +403 -0
  247. package/dist/esm/sandbox/local-sandbox.js.map +1 -0
  248. package/dist/esm/sandbox/process-code-sandbox.d.ts +25 -0
  249. package/dist/esm/sandbox/process-code-sandbox.d.ts.map +1 -0
  250. package/dist/esm/sandbox/process-code-sandbox.js +76 -0
  251. package/dist/esm/sandbox/process-code-sandbox.js.map +1 -0
  252. package/dist/esm/sandbox/sandbox-manager.d.ts +47 -0
  253. package/dist/esm/sandbox/sandbox-manager.d.ts.map +1 -0
  254. package/dist/esm/sandbox/sandbox-manager.js +88 -0
  255. package/dist/esm/sandbox/sandbox-manager.js.map +1 -0
  256. package/dist/esm/service/agent-profile.service.d.ts +27 -0
  257. package/dist/esm/service/agent-profile.service.d.ts.map +1 -0
  258. package/dist/esm/service/agent-profile.service.js +130 -0
  259. package/dist/esm/service/agent-profile.service.js.map +1 -0
  260. package/dist/esm/service/artifact.service.d.ts +33 -0
  261. package/dist/esm/service/artifact.service.d.ts.map +1 -0
  262. package/dist/esm/service/artifact.service.js +175 -0
  263. package/dist/esm/service/artifact.service.js.map +1 -0
  264. package/dist/esm/service/audit.service.d.ts +30 -0
  265. package/dist/esm/service/audit.service.d.ts.map +1 -0
  266. package/dist/esm/service/audit.service.js +131 -0
  267. package/dist/esm/service/audit.service.js.map +1 -0
  268. package/dist/esm/service/chat.service.d.ts +90 -0
  269. package/dist/esm/service/chat.service.d.ts.map +1 -0
  270. package/dist/esm/service/chat.service.js +388 -0
  271. package/dist/esm/service/chat.service.js.map +1 -0
  272. package/dist/esm/service/engine-pool.d.ts +6 -0
  273. package/dist/esm/service/engine-pool.d.ts.map +1 -0
  274. package/dist/esm/service/engine-pool.js +18 -0
  275. package/dist/esm/service/engine-pool.js.map +1 -0
  276. package/dist/esm/service/memory.service.d.ts +45 -0
  277. package/dist/esm/service/memory.service.d.ts.map +1 -0
  278. package/dist/esm/service/memory.service.js +154 -0
  279. package/dist/esm/service/memory.service.js.map +1 -0
  280. package/dist/esm/service/observability.service.d.ts +3 -0
  281. package/dist/esm/service/observability.service.d.ts.map +1 -0
  282. package/dist/esm/service/observability.service.js +5 -0
  283. package/dist/esm/service/observability.service.js.map +1 -0
  284. package/dist/esm/service/permission.service.d.ts +5 -0
  285. package/dist/esm/service/permission.service.d.ts.map +1 -0
  286. package/dist/esm/service/permission.service.js +33 -0
  287. package/dist/esm/service/permission.service.js.map +1 -0
  288. package/dist/esm/service/run-registry.d.ts +7 -0
  289. package/dist/esm/service/run-registry.d.ts.map +1 -0
  290. package/dist/esm/service/run-registry.js +37 -0
  291. package/dist/esm/service/run-registry.js.map +1 -0
  292. package/dist/esm/service/safety-audit.middleware.d.ts +3 -0
  293. package/dist/esm/service/safety-audit.middleware.d.ts.map +1 -0
  294. package/dist/esm/service/safety-audit.middleware.js +112 -0
  295. package/dist/esm/service/safety-audit.middleware.js.map +1 -0
  296. package/dist/esm/service/security-policy.service.d.ts +18 -0
  297. package/dist/esm/service/security-policy.service.d.ts.map +1 -0
  298. package/dist/esm/service/security-policy.service.js +42 -0
  299. package/dist/esm/service/security-policy.service.js.map +1 -0
  300. package/dist/esm/service/settings.service.d.ts +18 -0
  301. package/dist/esm/service/settings.service.d.ts.map +1 -0
  302. package/dist/esm/service/settings.service.js +181 -0
  303. package/dist/esm/service/settings.service.js.map +1 -0
  304. package/dist/esm/service/tool-risk.service.d.ts +3 -0
  305. package/dist/esm/service/tool-risk.service.d.ts.map +1 -0
  306. package/dist/esm/service/tool-risk.service.js +17 -0
  307. package/dist/esm/service/tool-risk.service.js.map +1 -0
  308. package/dist/esm/service/workspace.service.d.ts +33 -0
  309. package/dist/esm/service/workspace.service.d.ts.map +1 -0
  310. package/dist/esm/service/workspace.service.js +97 -0
  311. package/dist/esm/service/workspace.service.js.map +1 -0
  312. package/dist/esm/sse/sse-handler.d.ts +15 -0
  313. package/dist/esm/sse/sse-handler.d.ts.map +1 -0
  314. package/dist/esm/sse/sse-handler.js +49 -0
  315. package/dist/esm/sse/sse-handler.js.map +1 -0
  316. package/dist/esm/store/app-stores.d.ts +42 -0
  317. package/dist/esm/store/app-stores.d.ts.map +1 -0
  318. package/dist/esm/store/app-stores.js +181 -0
  319. package/dist/esm/store/app-stores.js.map +1 -0
  320. package/dist/esm/store/index.d.ts +3 -0
  321. package/dist/esm/store/index.d.ts.map +1 -0
  322. package/dist/esm/store/index.js +5 -0
  323. package/dist/esm/store/index.js.map +1 -0
  324. package/dist/esm/store/mcp-server-store.d.ts +35 -0
  325. package/dist/esm/store/mcp-server-store.d.ts.map +1 -0
  326. package/dist/esm/store/mcp-server-store.js +251 -0
  327. package/dist/esm/store/mcp-server-store.js.map +1 -0
  328. package/dist/esm/tool/builtin.d.ts +18 -0
  329. package/dist/esm/tool/builtin.d.ts.map +1 -0
  330. package/dist/esm/tool/builtin.js +40 -0
  331. package/dist/esm/tool/builtin.js.map +1 -0
  332. package/dist/esm/tool/local-executors.d.ts +22 -0
  333. package/dist/esm/tool/local-executors.d.ts.map +1 -0
  334. package/dist/esm/tool/local-executors.js +88 -0
  335. package/dist/esm/tool/local-executors.js.map +1 -0
  336. package/dist/esm/tool/tools/automation.d.ts +3 -0
  337. package/dist/esm/tool/tools/automation.d.ts.map +1 -0
  338. package/dist/esm/tool/tools/automation.js +154 -0
  339. package/dist/esm/tool/tools/automation.js.map +1 -0
  340. package/dist/esm/tool/tools/communication.d.ts +3 -0
  341. package/dist/esm/tool/tools/communication.d.ts.map +1 -0
  342. package/dist/esm/tool/tools/communication.js +266 -0
  343. package/dist/esm/tool/tools/communication.js.map +1 -0
  344. package/dist/esm/tool/tools/discovery.d.ts +3 -0
  345. package/dist/esm/tool/tools/discovery.d.ts.map +1 -0
  346. package/dist/esm/tool/tools/discovery.js +245 -0
  347. package/dist/esm/tool/tools/discovery.js.map +1 -0
  348. package/dist/esm/tool/tools/filesystem.d.ts +3 -0
  349. package/dist/esm/tool/tools/filesystem.d.ts.map +1 -0
  350. package/dist/esm/tool/tools/filesystem.js +367 -0
  351. package/dist/esm/tool/tools/filesystem.js.map +1 -0
  352. package/dist/esm/tool/tools/git.d.ts +3 -0
  353. package/dist/esm/tool/tools/git.d.ts.map +1 -0
  354. package/dist/esm/tool/tools/git.js +188 -0
  355. package/dist/esm/tool/tools/git.js.map +1 -0
  356. package/dist/esm/tool/tools/memory.d.ts +3 -0
  357. package/dist/esm/tool/tools/memory.d.ts.map +1 -0
  358. package/dist/esm/tool/tools/memory.js +123 -0
  359. package/dist/esm/tool/tools/memory.js.map +1 -0
  360. package/dist/esm/tool/tools/sandbox.d.ts +3 -0
  361. package/dist/esm/tool/tools/sandbox.d.ts.map +1 -0
  362. package/dist/esm/tool/tools/sandbox.js +377 -0
  363. package/dist/esm/tool/tools/sandbox.js.map +1 -0
  364. package/dist/esm/tool/tools/web-utils.d.ts +16 -0
  365. package/dist/esm/tool/tools/web-utils.d.ts.map +1 -0
  366. package/dist/esm/tool/tools/web-utils.js +88 -0
  367. package/dist/esm/tool/tools/web-utils.js.map +1 -0
  368. package/dist/esm/tool/tools/web.d.ts +3 -0
  369. package/dist/esm/tool/tools/web.d.ts.map +1 -0
  370. package/dist/esm/tool/tools/web.js +319 -0
  371. package/dist/esm/tool/tools/web.js.map +1 -0
  372. package/dist/esm/types.d.ts +523 -0
  373. package/dist/esm/types.d.ts.map +1 -0
  374. package/dist/esm/types.js +5 -0
  375. package/dist/esm/types.js.map +1 -0
  376. package/dist/esm/utils/data-dir.d.ts +8 -0
  377. package/dist/esm/utils/data-dir.d.ts.map +1 -0
  378. package/dist/esm/utils/data-dir.js +48 -0
  379. package/dist/esm/utils/data-dir.js.map +1 -0
  380. package/package.json +56 -0
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // Web 工具共享辅助函数
4
+ // ============================================================
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.htmlToText = void 0;
43
+ exports.htmlToMarkdown = htmlToMarkdown;
44
+ exports.detectEncoding = detectEncoding;
45
+ exports.normalizeCharset = normalizeCharset;
46
+ exports.inlineMarkdownRefs = inlineMarkdownRefs;
47
+ const turndown_1 = __importDefault(require("turndown"));
48
+ const html_to_text_1 = require("html-to-text");
49
+ Object.defineProperty(exports, "htmlToText", { enumerable: true, get: function () { return html_to_text_1.convert; } });
50
+ const fs = __importStar(require("fs"));
51
+ const path = __importStar(require("path"));
52
+ /** HTML → Markdown(基于 turndown) */
53
+ const turndownService = new turndown_1.default({ headingStyle: 'atx', codeBlockStyle: 'fenced' });
54
+ function htmlToMarkdown(html) {
55
+ return turndownService.turndown(html);
56
+ }
57
+ /**
58
+ * 从 Content-Type header 或 HTML meta 标签中检测字符编码
59
+ * 返回 Node.js TextDecoder 支持的编码名,默认 'utf-8'
60
+ */
61
+ function detectEncoding(contentType, htmlHead) {
62
+ // 1. 从 Content-Type header 检测: charset=gbk
63
+ if (contentType) {
64
+ const match = contentType.match(/charset\s*=\s*([\w-]+)/i);
65
+ if (match)
66
+ return normalizeCharset(match[1]);
67
+ }
68
+ // 2. 从 HTML <meta> 检测(仅扫描前 1024 字节)
69
+ const head = htmlHead.slice(0, 1024).toString('ascii');
70
+ // <meta charset="gbk">
71
+ const metaCharset = head.match(/<meta[^>]+charset\s*=\s*["']?([\w-]+)/i);
72
+ if (metaCharset)
73
+ return normalizeCharset(metaCharset[1]);
74
+ // <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
75
+ const metaEquiv = head.match(/content\s*=\s*["'][^"']*charset=([\w-]+)/i);
76
+ if (metaEquiv)
77
+ return normalizeCharset(metaEquiv[1]);
78
+ return 'utf-8';
79
+ }
80
+ /** 将常见编码别名规范化为 TextDecoder 支持的名称 */
81
+ function normalizeCharset(raw) {
82
+ const lower = raw.toLowerCase().replace(/[^a-z0-9]/g, '');
83
+ if (lower === 'gb2312' || lower === 'gbk' || lower === 'gb18030' || lower === 'cp936')
84
+ return 'gbk';
85
+ if (lower === 'big5' || lower === 'bigfive')
86
+ return 'big5';
87
+ if (lower === 'eucjp')
88
+ return 'euc-jp';
89
+ if (lower === 'shiftjis' || lower === 'sjis')
90
+ return 'shift_jis';
91
+ if (lower === 'euckr')
92
+ return 'euc-kr';
93
+ if (lower === 'utf8' || lower === 'utf-8')
94
+ return 'utf-8';
95
+ return raw.toLowerCase();
96
+ }
97
+ /**
98
+ * 扫描 Markdown 内容中的相对链接 [text](path.md),
99
+ * 解析为绝对路径并内联文件内容,避免 LLM 用 read_file 猜测路径
100
+ */
101
+ function inlineMarkdownRefs(content, sourceFilePath) {
102
+ const dir = path.dirname(sourceFilePath);
103
+ // Match [text](relative-path.md) — skip http/https links
104
+ const linkRegex = /\[([^\]]+)\]\(([^)]+\.md)\)/g;
105
+ const MAX_INLINE_SIZE = 50000; // 50KB per file
106
+ const MAX_TOTAL_SIZE = 150000; // 150KB total
107
+ let totalInlined = content.length;
108
+ return content.replace(linkRegex, (match, text, refPath) => {
109
+ if (refPath.startsWith('http://') || refPath.startsWith('https://'))
110
+ return match;
111
+ const absPath = path.resolve(dir, refPath);
112
+ try {
113
+ if (!fs.existsSync(absPath))
114
+ return match;
115
+ const stat = fs.statSync(absPath);
116
+ if (stat.size > MAX_INLINE_SIZE) {
117
+ return `[${text}](${refPath}) — *file too large to inline (${Math.round(stat.size / 1024)}KB)*`;
118
+ }
119
+ if (totalInlined + stat.size > MAX_TOTAL_SIZE) {
120
+ return `[${text}](${refPath}) — *skipped: total inline budget exceeded*`;
121
+ }
122
+ const refContent = fs.readFileSync(absPath, 'utf-8');
123
+ totalInlined += refContent.length;
124
+ return `\n\n---\n## ${text}\n*Source: ${refPath}*\n\n${refContent}\n---\n`;
125
+ }
126
+ catch {
127
+ return match;
128
+ }
129
+ });
130
+ }
131
+ //# sourceMappingURL=web-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-utils.js","sourceRoot":"","sources":["../../../../src/tool/tools/web-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { RegisteredTool } from '@cicctencent/agent-core';
2
+ export declare function createWebTools(): RegisteredTool[];
3
+ //# sourceMappingURL=web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../../../src/tool/tools/web.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAW,MAAM,yBAAyB,CAAC;AAUvE,wBAAgB,cAAc,IAAI,cAAc,EAAE,CAqUjD"}
@@ -0,0 +1,358 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // 网络工具:web_fetch, http_request, browser_navigate
4
+ // ============================================================
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.createWebTools = createWebTools;
43
+ const agent_core_1 = require("@cicctencent/agent-core");
44
+ const axios_1 = __importDefault(require("axios"));
45
+ const cheerio = __importStar(require("cheerio"));
46
+ const socks_proxy_agent_1 = require("socks-proxy-agent");
47
+ const settings_service_ts_1 = require("../../service/settings.service.js");
48
+ const web_utils_ts_1 = require("./web-utils.js");
49
+ function createWebTools() {
50
+ return [
51
+ // ---- web_fetch ----
52
+ {
53
+ definition: {
54
+ type: 'function',
55
+ function: {
56
+ name: 'web_fetch',
57
+ description: 'Fetch a web page and extract its content. ' +
58
+ 'Supports CSS selector extraction and multiple output formats (text, html, markdown).',
59
+ parameters: {
60
+ type: 'object',
61
+ properties: {
62
+ url: { type: 'string', description: 'The URL to fetch' },
63
+ selector: {
64
+ type: 'string',
65
+ description: 'Optional CSS selector to extract specific content (supports tag, .class, #id, comma-separated)',
66
+ },
67
+ format: {
68
+ type: 'string',
69
+ description: 'Output format: text (default), html, or markdown',
70
+ enum: ['text', 'html', 'markdown'],
71
+ },
72
+ max_length: {
73
+ type: 'number',
74
+ description: 'Maximum output length in characters, default 10000',
75
+ },
76
+ timeout: {
77
+ type: 'number',
78
+ description: 'Request timeout in ms, default 15000',
79
+ },
80
+ },
81
+ required: ['url'],
82
+ },
83
+ },
84
+ },
85
+ executor: async (args, ctx) => {
86
+ const url = args.url;
87
+ const selector = args.selector;
88
+ const format = args.format || 'text';
89
+ const maxLength = args.max_length || 10000;
90
+ const timeout = args.timeout || 15000;
91
+ // 解析网页抓取代理配置
92
+ const proxyConfig = (0, settings_service_ts_1.getSettings)().proxySettings?.fetch;
93
+ const proxyUrl = (0, agent_core_1.resolveProxyUrlForCategory)(proxyConfig);
94
+ const axiosProxyOpts = {};
95
+ if (proxyUrl) {
96
+ if (proxyUrl.startsWith('socks')) {
97
+ const socksAgent = new socks_proxy_agent_1.SocksProxyAgent(proxyUrl);
98
+ axiosProxyOpts.httpsAgent = socksAgent;
99
+ axiosProxyOpts.httpAgent = socksAgent;
100
+ axiosProxyOpts.proxy = false; // 禁用 axios 内置代理,改用 agent
101
+ }
102
+ else {
103
+ // HTTP/HTTPS 代理:解析为 axios proxy 配置
104
+ try {
105
+ const parsed = new URL(proxyUrl);
106
+ axiosProxyOpts.proxy = {
107
+ protocol: parsed.protocol.replace(':', ''),
108
+ host: parsed.hostname,
109
+ port: Number(parsed.port) || 8080,
110
+ ...(parsed.username ? { auth: { username: decodeURIComponent(parsed.username), password: decodeURIComponent(parsed.password || '') } } : {}),
111
+ };
112
+ }
113
+ catch {
114
+ // URL 解析失败则不走代理
115
+ }
116
+ }
117
+ }
118
+ else if (proxyConfig?.mode === 'direct') {
119
+ axiosProxyOpts.proxy = false;
120
+ }
121
+ try {
122
+ const resp = await axios_1.default.get(url, {
123
+ timeout,
124
+ signal: ctx.abortSignal,
125
+ headers: {
126
+ 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
127
+ Accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
128
+ 'Accept-Language': 'en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7',
129
+ },
130
+ responseType: 'arraybuffer',
131
+ maxRedirects: 5,
132
+ validateStatus: (s) => s < 400,
133
+ ...axiosProxyOpts,
134
+ });
135
+ const buf = Buffer.isBuffer(resp.data) ? resp.data : Buffer.from(resp.data);
136
+ const contentType = resp.headers['content-type'];
137
+ const encoding = (0, web_utils_ts_1.detectEncoding)(contentType, buf);
138
+ let content;
139
+ try {
140
+ content = new TextDecoder(encoding).decode(buf);
141
+ }
142
+ catch {
143
+ // 回退到 utf-8
144
+ content = buf.toString('utf-8');
145
+ }
146
+ // CSS 选择器提取(基于 cheerio)
147
+ if (selector) {
148
+ const $ = cheerio.load(content);
149
+ const matched = $(selector);
150
+ if (matched.length === 0) {
151
+ return `No content matched selector "${selector}" from ${url}`;
152
+ }
153
+ content = matched.map((_, el) => $(el).html() || '').get().join('\n');
154
+ }
155
+ // 格式转换
156
+ switch (format) {
157
+ case 'html':
158
+ // 保留原始 HTML(已提取或完整)
159
+ break;
160
+ case 'markdown':
161
+ content = (0, web_utils_ts_1.htmlToMarkdown)(content);
162
+ break;
163
+ case 'text':
164
+ default:
165
+ content = (0, web_utils_ts_1.htmlToText)(content);
166
+ break;
167
+ }
168
+ // 截断
169
+ if (content.length > maxLength) {
170
+ content = content.slice(0, maxLength) + `\n\n... [truncated, total ${content.length} chars]`;
171
+ }
172
+ return content || `(empty response from ${url})`;
173
+ }
174
+ catch (err) {
175
+ if (axios_1.default.isCancel(err) || err?.name === 'AbortError' || err?.name === 'CanceledError') {
176
+ throw new Error('web_fetch cancelled by abort signal');
177
+ }
178
+ const status = err?.response?.status;
179
+ const msg = status
180
+ ? `HTTP ${status} ${err.response?.statusText || ''}`
181
+ : err?.message || 'Unknown error';
182
+ throw new Error(`Failed to fetch ${url}: ${msg}`);
183
+ }
184
+ },
185
+ category: 'builtin',
186
+ concurrent: true, // 纯网络请求
187
+ },
188
+ // ---- http_request ----
189
+ // 发起任意 HTTP/HTTPS 请求(GET/POST/PUT/DELETE/PATCH)
190
+ {
191
+ definition: {
192
+ type: 'function',
193
+ function: {
194
+ name: 'http_request',
195
+ description: 'Send an HTTP/HTTPS request to any API endpoint. Supports GET/POST/PUT/DELETE/PATCH methods, ' +
196
+ 'custom headers, JSON body, and configurable timeout. ' +
197
+ 'Use this for calling REST APIs, webhooks, or any HTTP-based service. ' +
198
+ 'For simple web page content extraction, prefer web_fetch instead.',
199
+ parameters: {
200
+ type: 'object',
201
+ properties: {
202
+ url: { type: 'string', description: 'The full URL to send the request to (e.g. https://api.example.com/v1/data)' },
203
+ method: {
204
+ type: 'string',
205
+ description: 'HTTP method',
206
+ enum: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH'],
207
+ },
208
+ headers: {
209
+ type: 'object',
210
+ description: 'Custom HTTP headers as key-value pairs (e.g. {"Authorization": "Bearer xxx", "Content-Type": "application/json"})',
211
+ properties: {},
212
+ },
213
+ body: { type: 'string', description: 'Request body (JSON string for JSON APIs, or raw text). Required for POST/PUT/PATCH.' },
214
+ timeout: { type: 'number', description: 'Request timeout in milliseconds (default: 30000)' },
215
+ },
216
+ required: ['url', 'method'],
217
+ },
218
+ },
219
+ },
220
+ executor: async (args) => {
221
+ const url = args.url;
222
+ const method = (args.method || 'GET').toUpperCase();
223
+ const headers = args.headers || {};
224
+ const body = args.body;
225
+ const timeout = args.timeout || 30000;
226
+ if (!url)
227
+ return 'ERROR: url is required';
228
+ try {
229
+ const controller = new AbortController();
230
+ const timer = setTimeout(() => controller.abort(), timeout);
231
+ const fetchOptions = {
232
+ method,
233
+ headers,
234
+ signal: controller.signal,
235
+ };
236
+ if (body && method !== 'GET') {
237
+ fetchOptions.body = body;
238
+ if (!headers['Content-Type'] && !headers['content-type']) {
239
+ fetchOptions.headers = { ...headers, 'Content-Type': 'application/json' };
240
+ }
241
+ }
242
+ const res = await fetch(url, fetchOptions);
243
+ clearTimeout(timer);
244
+ const responseHeaders = {};
245
+ res.headers.forEach((v, k) => { responseHeaders[k] = v; });
246
+ const responseText = await res.text();
247
+ let parsedBody = responseText;
248
+ try {
249
+ parsedBody = JSON.parse(responseText);
250
+ }
251
+ catch { /* keep as text */ }
252
+ return JSON.stringify({
253
+ status: res.status,
254
+ statusText: res.statusText,
255
+ headers: responseHeaders,
256
+ body: parsedBody,
257
+ }, null, 2);
258
+ }
259
+ catch (e) {
260
+ if (e.name === 'AbortError') {
261
+ return `ERROR: Request timed out after ${timeout}ms`;
262
+ }
263
+ return `ERROR: ${e.message || e}`;
264
+ }
265
+ },
266
+ category: 'builtin',
267
+ concurrent: true,
268
+ },
269
+ // ---- browser_navigate ----
270
+ // 浏览器自动化:导航 + 截图 + 提取内容
271
+ {
272
+ definition: {
273
+ type: 'function',
274
+ function: {
275
+ name: 'browser_navigate',
276
+ description: 'Navigate to a URL in a headless browser, take a screenshot, and extract page content. ' +
277
+ 'Use this for web scraping that requires JavaScript rendering, interacting with SPAs, ' +
278
+ 'or capturing visual screenshots of web pages. ' +
279
+ 'For simple HTML extraction without JS rendering, prefer web_fetch instead.',
280
+ parameters: {
281
+ type: 'object',
282
+ properties: {
283
+ url: { type: 'string', description: 'The URL to navigate to' },
284
+ selector: { type: 'string', description: 'CSS selector to extract specific element (optional, default: full page text)' },
285
+ screenshot: { type: 'boolean', description: 'Take a screenshot and save as artifact (default: true)' },
286
+ waitSelector: { type: 'string', description: 'CSS selector to wait for before extracting (optional, for SPAs)' },
287
+ timeout: { type: 'number', description: 'Navigation timeout in ms (default: 30000)' },
288
+ },
289
+ required: ['url'],
290
+ },
291
+ },
292
+ },
293
+ executor: async (args, ctx) => {
294
+ try {
295
+ const url = args.url;
296
+ const selector = args.selector;
297
+ const takeScreenshot = args.screenshot !== false;
298
+ const waitSelector = args.waitSelector;
299
+ const timeout = args.timeout || 30000;
300
+ // 懒加载 Playwright(避免未使用时引入开销)
301
+ let playwright;
302
+ try {
303
+ // @ts-ignore - playwright is an optional dependency
304
+ playwright = await Promise.resolve().then(() => __importStar(require('playwright')));
305
+ }
306
+ catch {
307
+ return `ERROR: Playwright is not installed. Install it with: pnpm add playwright && npx playwright install chromium\nAlternatively, use web_fetch for simple HTML extraction.`;
308
+ }
309
+ const browser = await playwright.chromium.launch({ headless: true });
310
+ const page = await browser.newPage();
311
+ await page.goto(url, { timeout, waitUntil: 'domcontentloaded' });
312
+ // 等待特定元素
313
+ if (waitSelector) {
314
+ await page.waitForSelector(waitSelector, { timeout }).catch(() => { });
315
+ }
316
+ // 提取内容
317
+ let content;
318
+ if (selector) {
319
+ content = await page.$eval(selector, (el) => el.textContent || '').catch(() => '');
320
+ }
321
+ else {
322
+ content = await page.evaluate(() => document.body?.innerText || '');
323
+ }
324
+ // 截图
325
+ let screenshotPath = '';
326
+ if (takeScreenshot) {
327
+ const sandbox = ctx.custom?.sandbox;
328
+ if (sandbox) {
329
+ const filename = `screenshot_${Date.now()}.png`;
330
+ const fsExec = sandbox.getFileSystemExecutor();
331
+ screenshotPath = filename;
332
+ const buffer = await page.screenshot({ fullPage: true });
333
+ // 写入沙箱
334
+ await fsExec.writeFile(filename, buffer);
335
+ // 触发 Artifact
336
+ const emitArtifact = ctx.emitArtifact;
337
+ if (emitArtifact) {
338
+ emitArtifact({ artifactId: `screenshot_${Date.now()}`, filename, mimeType: 'image/png', size: buffer.length, url: `/api/work/files/${filename}`, description: `Screenshot of ${url}` });
339
+ }
340
+ }
341
+ }
342
+ await browser.close();
343
+ const parts = [`URL: ${url}`];
344
+ if (screenshotPath)
345
+ parts.push(`Screenshot: ${screenshotPath}`);
346
+ parts.push(`\nContent:\n${content.slice(0, 5000)}${content.length > 5000 ? '\n... [truncated]' : ''}`);
347
+ return parts.join('\n');
348
+ }
349
+ catch (e) {
350
+ return `ERROR: ${e.message || e}`;
351
+ }
352
+ },
353
+ category: 'builtin',
354
+ concurrent: true,
355
+ },
356
+ ];
357
+ }
358
+ //# sourceMappingURL=web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../../../../src/tool/tools/web.ts"],"names":[],"mappings":"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"}