@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,113 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // PromptBuilder — 默认 Prompt 构建实现
4
+ // ============================================================
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.RESULT_SYNTHESIS_PROMPT = exports.DefaultPromptBuilder = void 0;
7
+ /** 内置工具名称可读化映射 */
8
+ const BUILTIN_TOOL_LABELS = {
9
+ execute_command: '执行命令',
10
+ read_terminal: '读取终端',
11
+ write_file: '写入文件',
12
+ append_file: '追加文件',
13
+ read_file: '读取文件',
14
+ delegate_task: '分发任务',
15
+ web_fetch: '抓取网页',
16
+ save_memory: '保存记忆',
17
+ recall_memory: '回忆记忆',
18
+ delete_memory: '删除记忆',
19
+ read_tool_doc: '查阅工具文档',
20
+ run_script: '运行脚本',
21
+ show_widget: '渲染组件',
22
+ save_artifact: '保存文件',
23
+ read_tool_result: '读取工具结果',
24
+ read_offload: '读取卸载内容',
25
+ load_skill: '加载技能',
26
+ create_presentation: '创建演示文稿',
27
+ create_document: '创建文档',
28
+ create_pdf: '创建 PDF',
29
+ create_report: '生成报表',
30
+ };
31
+ /**
32
+ * 默认 PromptBuilderProvider 实现
33
+ */
34
+ class DefaultPromptBuilder {
35
+ resolveToolDisplayName(toolName, _registry) {
36
+ return BUILTIN_TOOL_LABELS[toolName] || toolName;
37
+ }
38
+ buildDefaultPrompt(profile, tools, memory, specialists, specialistResourceMap) {
39
+ const parts = [];
40
+ parts.push(profile.basePrompt || 'You are a helpful AI assistant with access to tools. Use tools when needed to accomplish tasks. Always explain your actions clearly. Respond in the same language as the user.');
41
+ if (memory) {
42
+ parts.push(`\n${memory}`);
43
+ }
44
+ const toolList = this.buildToolDescList(tools);
45
+ if (toolList) {
46
+ parts.push(`\n## Available Tools\n${toolList}`);
47
+ }
48
+ if (specialists && specialists.length > 0) {
49
+ const specialistList = specialists.map(s => {
50
+ const resources = specialistResourceMap?.[s.name];
51
+ let desc = `- **${s.name}**: ${s.description || s.domain || 'specialist agent'}`;
52
+ if (resources) {
53
+ if (resources.connectorNames.length > 0) {
54
+ desc += ` (数据源: ${resources.connectorNames.join(', ')})`;
55
+ }
56
+ if (resources.mcpServerNames.length > 0) {
57
+ desc += ` (MCP: ${resources.mcpServerNames.join(', ')})`;
58
+ }
59
+ }
60
+ return desc;
61
+ }).join('\n');
62
+ parts.push(`\n## Specialist Agents (via delegate_task)\n${specialistList}`);
63
+ }
64
+ return parts.join('\n');
65
+ }
66
+ buildSpecialistPrompt(profile, tools, skills, memory) {
67
+ const parts = [];
68
+ parts.push(profile.basePrompt || 'You are a specialist AI agent. Focus on your domain expertise and use tools to accomplish tasks.');
69
+ if (memory) {
70
+ parts.push(`\n${memory}`);
71
+ }
72
+ const toolList = this.buildToolDescList(tools);
73
+ if (toolList) {
74
+ parts.push(`\n## Available Tools\n${toolList}`);
75
+ }
76
+ const skillList = skills.getAll();
77
+ if (skillList.length > 0) {
78
+ const skillDesc = skillList.map(s => `- **${s.name}**: ${s.description}`).join('\n');
79
+ parts.push(`\n## Skills\n${skillDesc}`);
80
+ }
81
+ return parts.join('\n');
82
+ }
83
+ buildToolDescList(registry) {
84
+ const defs = registry.getDefinitions();
85
+ if (defs.length === 0)
86
+ return '';
87
+ const lines = defs.map(d => {
88
+ const name = d.function.name;
89
+ const desc = d.function.description || '';
90
+ const label = this.resolveToolDisplayName(name, registry);
91
+ return `- \`${name}\` (${label}): ${desc}`;
92
+ });
93
+ return lines.join('\n');
94
+ }
95
+ buildMCPToolDescList(registry) {
96
+ const names = registry.listNames().filter(n => n.startsWith('mcp_'));
97
+ if (names.length === 0)
98
+ return '';
99
+ return names.map(n => {
100
+ const tool = registry.get(n);
101
+ const def = tool?.definition;
102
+ return `- \`${n}\`: ${def?.function.description || ''}`;
103
+ }).join('\n');
104
+ }
105
+ }
106
+ exports.DefaultPromptBuilder = DefaultPromptBuilder;
107
+ exports.RESULT_SYNTHESIS_PROMPT = `Based on the specialist agents' outputs above, provide a comprehensive synthesis:
108
+ 1. Summarize key findings from each agent
109
+ 2. Identify any conflicts or contradictions
110
+ 3. Provide a unified recommendation
111
+ 4. Highlight any risks or caveats
112
+ Respond in the same language as the user.`;
113
+ //# sourceMappingURL=prompt-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-builder.js","sourceRoot":"","sources":["../../../src/prompt/prompt-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * @file LocalSandbox — 进程级沙箱实现
3
+ * @description 为每个 Agent 会话提供隔离的文件系统和 Shell 执行环境
4
+ * 文件系统限制在沙箱目录内,命令执行受 SecurityGuard + 沙箱黑名单保护
5
+ */
6
+ import type { ShellExecutor, FileSystemExecutor, Sandbox, SandboxConfig, ScriptLanguage } from '@cicctencent/agent-core';
7
+ /**
8
+ * 沙箱文件系统执行器
9
+ * 所有路径操作限制在沙箱 rootDir 内,阻止路径穿越
10
+ */
11
+ export declare class SandboxFileSystemExecutor implements FileSystemExecutor {
12
+ private readonly rootDir;
13
+ private readonly maxFileSize;
14
+ constructor(rootDir: string, maxFileSize: number);
15
+ readFile(filePath: string): Promise<string>;
16
+ readFileBuffer(filePath: string): Promise<Buffer>;
17
+ writeFile(filePath: string, content: string): Promise<void>;
18
+ appendFile(filePath: string, content: string): Promise<void>;
19
+ listDir(dirPath: string): Promise<string[]>;
20
+ /**
21
+ * 解析路径并验证是否在沙箱目录内
22
+ * 如果路径越界(绝对路径或 .. 穿越),自动修正到沙箱内而非抛错
23
+ */
24
+ private resolveAndValidate;
25
+ /**
26
+ * 解析只读路径 — 允许读取沙箱目录和项目 data/ 目录
27
+ * data/ 目录存放对话内容、主题配置等只读资源,read_file 可安全访问
28
+ */
29
+ private resolveReadPath;
30
+ }
31
+ /**
32
+ * 沙箱 Shell 执行器
33
+ * - cwd 限制在沙箱目录
34
+ * - 环境变量经过白名单过滤
35
+ * - 命令经过 SecurityGuard + 沙箱黑名单检查
36
+ */
37
+ export declare class SandboxShellExecutor implements ShellExecutor {
38
+ private readonly rootDir;
39
+ private readonly commandRestriction;
40
+ private readonly guard;
41
+ private outputBuffer;
42
+ private readonly maxBuffer;
43
+ private readonly sandboxEnv;
44
+ constructor(rootDir: string, commandRestriction: boolean);
45
+ exec(command: string, timeout?: number): Promise<string>;
46
+ write(_data: string): void;
47
+ read(lines?: number): string;
48
+ }
49
+ /**
50
+ * 本地沙箱实例
51
+ * 封装受限的 Shell 和 FileSystem 执行器,提供 runScript 能力
52
+ */
53
+ export declare class LocalSandbox implements Sandbox {
54
+ readonly id: string;
55
+ readonly rootDir: string;
56
+ private readonly config;
57
+ private readonly shellExecutor;
58
+ private readonly fsExecutor;
59
+ private readonly scriptsDir;
60
+ constructor(id: string, config: SandboxConfig);
61
+ /** 初始化沙箱目录(创建后必须调用) */
62
+ init(): Promise<void>;
63
+ /** 将 html-renderer.cjs 和主题文件注入沙箱 _scripts/ 目录 */
64
+ private injectHtmlRenderer;
65
+ getShellExecutor(): ShellExecutor;
66
+ getFileSystemExecutor(): FileSystemExecutor;
67
+ runScript(language: ScriptLanguage, code: string, timeout?: number): Promise<string>;
68
+ destroy(): Promise<void>;
69
+ }
70
+ //# sourceMappingURL=local-sandbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-sandbox.d.ts","sourceRoot":"","sources":["../../../src/sandbox/local-sandbox.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAClB,OAAO,EACP,aAAa,EACb,cAAc,EACf,MAAM,yBAAyB,CAAC;AAgCjC;;;GAGG;AACH,qBAAa,yBAA0B,YAAW,kBAAkB;IAClE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAEzB,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAK1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK3C,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKjD,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB3D,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO5D,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAMjD;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;;OAGG;IACH,OAAO,CAAC,eAAe;CAmCxB;AAID;;;;;GAKG;AACH,qBAAa,oBAAqB,YAAW,aAAa;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAU;IAC7C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAO;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;gBAExC,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,OAAO;IAelD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,SAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAkD5D,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI1B,IAAI,CAAC,KAAK,SAAK,GAAG,MAAM;CAIzB;AAwDD;;;GAGG;AACH,qBAAa,YAAa,YAAW,OAAO;IAC1C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;IACrD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA4B;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;IAgB7C,uBAAuB;IACjB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAS3B,iDAAiD;YACnC,kBAAkB;IAyBhC,gBAAgB,IAAI,aAAa;IAIjC,qBAAqB,IAAI,kBAAkB;IAIrC,SAAS,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAuEpF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAO/B"}
@@ -0,0 +1,442 @@
1
+ "use strict";
2
+ /**
3
+ * @file LocalSandbox — 进程级沙箱实现
4
+ * @description 为每个 Agent 会话提供隔离的文件系统和 Shell 执行环境
5
+ * 文件系统限制在沙箱目录内,命令执行受 SecurityGuard + 沙箱黑名单保护
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || (function () {
24
+ var ownKeys = function(o) {
25
+ ownKeys = Object.getOwnPropertyNames || function (o) {
26
+ var ar = [];
27
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
+ return ar;
29
+ };
30
+ return ownKeys(o);
31
+ };
32
+ return function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ })();
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.LocalSandbox = exports.SandboxShellExecutor = exports.SandboxFileSystemExecutor = void 0;
42
+ const child_process_1 = require("child_process");
43
+ const fs = __importStar(require("fs/promises"));
44
+ const fs_1 = require("fs");
45
+ const path = __importStar(require("path"));
46
+ const crypto = __importStar(require("crypto"));
47
+ const agent_core_1 = require("@cicctencent/agent-core");
48
+ const agent_core_2 = require("@cicctencent/agent-core");
49
+ const data_dir_ts_1 = require("../utils/data-dir.js");
50
+ // ---- 辅助函数 ----
51
+ /**
52
+ * 过滤环境变量,只保留安全白名单中的变量
53
+ */
54
+ function filterEnvForSandbox(env) {
55
+ const filtered = {};
56
+ for (const key of agent_core_2.SANDBOX_SAFE_ENV_KEYS) {
57
+ if (env[key])
58
+ filtered[key] = env[key];
59
+ }
60
+ // 始终强制 Python UTF-8 输出
61
+ filtered['PYTHONIOENCODING'] = 'utf-8';
62
+ filtered['PYTHONUTF8'] = '1';
63
+ return filtered;
64
+ }
65
+ /**
66
+ * 脚本语言 → 文件扩展名 + 执行命令映射
67
+ */
68
+ const LANGUAGE_MAP = {
69
+ python: { ext: '.py', command: 'python3' },
70
+ nodejs: { ext: '.cjs', command: 'node' },
71
+ shell: { ext: '.sh', command: process.platform === 'win32' ? 'bash' : 'bash' },
72
+ };
73
+ // ---- SandboxFileSystemExecutor ----
74
+ /**
75
+ * 沙箱文件系统执行器
76
+ * 所有路径操作限制在沙箱 rootDir 内,阻止路径穿越
77
+ */
78
+ class SandboxFileSystemExecutor {
79
+ rootDir;
80
+ maxFileSize;
81
+ constructor(rootDir, maxFileSize) {
82
+ this.rootDir = rootDir;
83
+ this.maxFileSize = maxFileSize;
84
+ }
85
+ async readFile(filePath) {
86
+ const resolved = this.resolveReadPath(filePath);
87
+ return fs.readFile(resolved, 'utf-8');
88
+ }
89
+ async readFileBuffer(filePath) {
90
+ const resolved = this.resolveReadPath(filePath);
91
+ return fs.readFile(resolved);
92
+ }
93
+ async writeFile(filePath, content) {
94
+ const resolved = this.resolveAndValidate(filePath);
95
+ // 检查文件大小限制
96
+ const contentSize = Buffer.byteLength(content, 'utf-8');
97
+ if (contentSize > this.maxFileSize) {
98
+ throw new Error(`Sandbox: file size ${contentSize} bytes exceeds limit ${this.maxFileSize} bytes`);
99
+ }
100
+ // 确保父目录存在(且在沙箱内)
101
+ const dir = path.dirname(resolved);
102
+ await fs.mkdir(dir, { recursive: true });
103
+ await fs.writeFile(resolved, content, 'utf-8');
104
+ }
105
+ async appendFile(filePath, content) {
106
+ const resolved = this.resolveAndValidate(filePath);
107
+ const dir = path.dirname(resolved);
108
+ await fs.mkdir(dir, { recursive: true });
109
+ await fs.appendFile(resolved, content, 'utf-8');
110
+ }
111
+ async listDir(dirPath) {
112
+ const resolved = this.resolveAndValidate(dirPath);
113
+ const entries = await fs.readdir(resolved, { withFileTypes: true });
114
+ return entries.map(e => (e.isDirectory() ? e.name + '/' : e.name));
115
+ }
116
+ /**
117
+ * 解析路径并验证是否在沙箱目录内
118
+ * 如果路径越界(绝对路径或 .. 穿越),自动修正到沙箱内而非抛错
119
+ */
120
+ resolveAndValidate(filePath) {
121
+ const normalizedRoot = path.resolve(this.rootDir);
122
+ // 先正常解析
123
+ let resolved = path.isAbsolute(filePath)
124
+ ? path.resolve(filePath)
125
+ : path.resolve(this.rootDir, filePath);
126
+ // 检查是否在沙箱内
127
+ const relative = path.relative(normalizedRoot, resolved);
128
+ if (relative.startsWith('..') || path.isAbsolute(relative)) {
129
+ // 路径越界:自动修正,提取文件名/相对路径部分,重新定位到沙箱内
130
+ // 例: /Users/xxx/output.pptx → sandboxRoot/output.pptx
131
+ // 例: ../../../tmp/file.txt → sandboxRoot/file.txt
132
+ const safeName = path.basename(filePath);
133
+ resolved = path.resolve(this.rootDir, safeName);
134
+ }
135
+ return resolved;
136
+ }
137
+ /**
138
+ * 解析只读路径 — 允许读取沙箱目录和项目 data/ 目录
139
+ * data/ 目录存放对话内容、主题配置等只读资源,read_file 可安全访问
140
+ */
141
+ resolveReadPath(filePath) {
142
+ const normalizedRoot = path.resolve(this.rootDir);
143
+ // 1. 先解析为沙箱内路径
144
+ let resolved = path.isAbsolute(filePath)
145
+ ? path.resolve(filePath)
146
+ : path.resolve(this.rootDir, filePath);
147
+ // 检查是否在沙箱内
148
+ const relative = path.relative(normalizedRoot, resolved);
149
+ if (!relative.startsWith('..') && !path.isAbsolute(relative)) {
150
+ // 在沙箱内,但如果文件不存在且是相对路径,尝试从项目 data/ 目录读取
151
+ if (!(0, fs_1.existsSync)(resolved) && !path.isAbsolute(filePath)) {
152
+ const dataResolved = path.resolve((0, data_dir_ts_1.getProjectDataPath)(), filePath);
153
+ const normalizedDataDir = path.resolve((0, data_dir_ts_1.getProjectDataPath)());
154
+ const relToData = path.relative(normalizedDataDir, dataResolved);
155
+ if (!relToData.startsWith('..') && !path.isAbsolute(relToData) && (0, fs_1.existsSync)(dataResolved)) {
156
+ return dataResolved;
157
+ }
158
+ }
159
+ return resolved;
160
+ }
161
+ // 2. 不在沙箱内,检查是否在项目 data/ 目录内
162
+ const dataDir = (0, data_dir_ts_1.getProjectDataPath)();
163
+ const normalizedDataDir = path.resolve(dataDir);
164
+ const relativeToData = path.relative(normalizedDataDir, resolved);
165
+ if (!relativeToData.startsWith('..') && !path.isAbsolute(relativeToData)) {
166
+ return resolved; // 在 data/ 目录内,允许读取
167
+ }
168
+ // 3. 路径不在任何允许目录内:回退到沙箱内
169
+ const safeName = path.basename(filePath);
170
+ return path.resolve(this.rootDir, safeName);
171
+ }
172
+ }
173
+ exports.SandboxFileSystemExecutor = SandboxFileSystemExecutor;
174
+ // ---- SandboxShellExecutor ----
175
+ /**
176
+ * 沙箱 Shell 执行器
177
+ * - cwd 限制在沙箱目录
178
+ * - 环境变量经过白名单过滤
179
+ * - 命令经过 SecurityGuard + 沙箱黑名单检查
180
+ */
181
+ class SandboxShellExecutor {
182
+ rootDir;
183
+ commandRestriction;
184
+ guard;
185
+ outputBuffer = [];
186
+ maxBuffer = 500;
187
+ sandboxEnv;
188
+ constructor(rootDir, commandRestriction) {
189
+ this.rootDir = rootDir;
190
+ this.commandRestriction = commandRestriction;
191
+ // 创建带沙箱黑名单的 SecurityGuard
192
+ this.guard = new agent_core_1.SecurityGuard({
193
+ deleteProtection: true,
194
+ blacklistEnabled: true,
195
+ rules: agent_core_2.SANDBOX_BLOCKED_COMMANDS,
196
+ });
197
+ // 预计算沙箱环境变量
198
+ this.sandboxEnv = filterEnvForSandbox(process.env);
199
+ }
200
+ async exec(command, timeout = 2000) {
201
+ // 命令安全检查
202
+ if (this.commandRestriction) {
203
+ const sanitized = this.guard.sanitize(command.trim());
204
+ if (!sanitized.safe) {
205
+ return `[Sandbox blocked] ${sanitized.reason}`;
206
+ }
207
+ // 如果命令被改写,使用改写后的命令
208
+ if (sanitized.rewritten) {
209
+ command = sanitized.rewritten;
210
+ }
211
+ }
212
+ const isWindows = process.platform === 'win32';
213
+ // Windows: chcp 65001 让 cmd.exe 使用 UTF-8 代码页
214
+ const shellCommand = isWindows
215
+ ? `chcp 65001 >nul 2>&1 & ${command}`
216
+ : command;
217
+ return new Promise((resolve) => {
218
+ (0, child_process_1.exec)(shellCommand, {
219
+ timeout,
220
+ maxBuffer: 1024 * 1024 * 5, // 5MB
221
+ windowsHide: true,
222
+ encoding: 'buffer',
223
+ cwd: this.rootDir, // 关键:cwd 限制在沙箱目录
224
+ env: this.sandboxEnv,
225
+ }, (error, stdoutBuf, stderrBuf) => {
226
+ let output = '';
227
+ const stdout = stdoutBuf ? stdoutBuf.toString('utf-8') : '';
228
+ const stderr = stderrBuf ? stderrBuf.toString('utf-8') : '';
229
+ if (stdout)
230
+ output += stdout;
231
+ if (stderr)
232
+ output += (output ? '\n' : '') + stderr;
233
+ if (error && !output.trim()) {
234
+ output = error.message;
235
+ }
236
+ // 保存到输出缓冲区(供 read 使用)
237
+ const lines = output.split('\n');
238
+ this.outputBuffer.push(...lines);
239
+ if (this.outputBuffer.length > this.maxBuffer) {
240
+ this.outputBuffer = this.outputBuffer.slice(-this.maxBuffer);
241
+ }
242
+ resolve(output || '(no output)');
243
+ });
244
+ });
245
+ }
246
+ write(_data) {
247
+ // 沙箱模式不支持交互式写入
248
+ }
249
+ read(lines = 50) {
250
+ const start = Math.max(0, this.outputBuffer.length - lines);
251
+ return this.outputBuffer.slice(start).join('\n') || '(no terminal output)';
252
+ }
253
+ }
254
+ exports.SandboxShellExecutor = SandboxShellExecutor;
255
+ // ---- JSON Builder 辅助模块 ----
256
+ /**
257
+ * 注入到沙箱 _scripts/_json_builder.cjs 的帮助模块。
258
+ * LLM 通过 write_file + append_file 构建 JS 脚本,运行时生成 JSON 数据文件,
259
+ * 避免将大量 JSON 作为工具参数传递(消除转义膨胀和截断风险)。
260
+ *
261
+ * 用法:
262
+ * const B = require('./_scripts/_json_builder');
263
+ * B.init('data.json');
264
+ * B.add({ type: 'cover', title: 'Report' });
265
+ * B.add({ type: 'content', title: 'Slide 2', body: '...' });
266
+ * B.meta({ title: 'My Report', theme: 'midnight' });
267
+ * B.done(); // → 写入 data.json
268
+ */
269
+ const JSON_BUILDER_SOURCE = `// _json_builder.cjs — JSON data builder helper
270
+ // Usage: require this, call init(), add() for each item, meta() for metadata, done() to write.
271
+ const fs = require('fs');
272
+ const path = require('path');
273
+ let _items = [];
274
+ let _meta = {};
275
+ let _output = 'data.json';
276
+
277
+ module.exports = {
278
+ init(output) {
279
+ _output = output || 'data.json';
280
+ _items = [];
281
+ _meta = {};
282
+ },
283
+ add(item) {
284
+ _items.push(item);
285
+ },
286
+ meta(obj) {
287
+ Object.assign(_meta, obj);
288
+ },
289
+ done() {
290
+ // Use 'slides' for presentations, 'blocks' for documents/PDFs (check meta.type)
291
+ const data = { ..._meta };
292
+ if (_meta.type === 'document' || _meta.type === 'pdf') {
293
+ data.blocks = _items;
294
+ } else {
295
+ data.slides = _items;
296
+ }
297
+ const json = JSON.stringify(data, null, 2);
298
+ const dir = path.dirname(_output);
299
+ if (dir && dir !== '.') { try { fs.mkdirSync(dir, { recursive: true }); } catch(e) {} }
300
+ fs.writeFileSync(_output, json, 'utf-8');
301
+ console.log('JSON builder: wrote ' + _items.length + ' items to ' + _output + ' (' + json.length + ' chars)');
302
+ }
303
+ };
304
+ `;
305
+ // ---- LocalSandbox ----
306
+ /**
307
+ * 本地沙箱实例
308
+ * 封装受限的 Shell 和 FileSystem 执行器,提供 runScript 能力
309
+ */
310
+ class LocalSandbox {
311
+ id;
312
+ rootDir;
313
+ config;
314
+ shellExecutor;
315
+ fsExecutor;
316
+ scriptsDir;
317
+ constructor(id, config) {
318
+ this.id = id;
319
+ this.rootDir = config.rootDir;
320
+ this.config = { ...agent_core_2.DEFAULT_SANDBOX_CONFIG, ...config };
321
+ this.scriptsDir = path.join(this.rootDir, '_scripts');
322
+ this.shellExecutor = new SandboxShellExecutor(this.rootDir, this.config.commandRestriction ?? true);
323
+ this.fsExecutor = new SandboxFileSystemExecutor(this.rootDir, this.config.maxFileSize ?? agent_core_2.DEFAULT_SANDBOX_CONFIG.maxFileSize);
324
+ }
325
+ /** 初始化沙箱目录(创建后必须调用) */
326
+ async init() {
327
+ await fs.mkdir(this.rootDir, { recursive: true });
328
+ await fs.mkdir(this.scriptsDir, { recursive: true });
329
+ // 注入 JSON Builder 辅助模块(供 LLM 用脚本方式构建大型 JSON 数据文件)
330
+ await fs.writeFile(path.join(this.scriptsDir, '_json_builder.cjs'), JSON_BUILDER_SOURCE, 'utf-8');
331
+ // 注入 HTML 报告模板生成器和主题(供报表创作助手使用)
332
+ await this.injectHtmlRenderer();
333
+ }
334
+ /** 将 html-renderer.cjs 和主题文件注入沙箱 _scripts/ 目录 */
335
+ async injectHtmlRenderer() {
336
+ const templateDir = (0, data_dir_ts_1.getProjectDataPath)('doc-templates/html');
337
+ const rendererSrc = path.join(templateDir, 'html-renderer.cjs');
338
+ const themesSrcDir = path.join(templateDir, 'themes');
339
+ try {
340
+ if ((0, fs_1.existsSync)(rendererSrc)) {
341
+ await fs.copyFile(rendererSrc, path.join(this.scriptsDir, '_html_renderer.cjs'));
342
+ }
343
+ // 复制主题目录
344
+ const themesDstDir = path.join(this.scriptsDir, 'html-themes');
345
+ await fs.mkdir(themesDstDir, { recursive: true });
346
+ if ((0, fs_1.existsSync)(themesSrcDir)) {
347
+ const themeFiles = await fs.readdir(themesSrcDir);
348
+ for (const f of themeFiles) {
349
+ if (f.endsWith('.json')) {
350
+ await fs.copyFile(path.join(themesSrcDir, f), path.join(themesDstDir, f));
351
+ }
352
+ }
353
+ }
354
+ }
355
+ catch (err) {
356
+ // 非致命错误,不影响沙箱初始化
357
+ console.warn('[Sandbox] Failed to inject html-renderer:', err);
358
+ }
359
+ }
360
+ getShellExecutor() {
361
+ return this.shellExecutor;
362
+ }
363
+ getFileSystemExecutor() {
364
+ return this.fsExecutor;
365
+ }
366
+ async runScript(language, code, timeout) {
367
+ const langConfig = LANGUAGE_MAP[language];
368
+ if (!langConfig) {
369
+ throw new Error(`Sandbox: unsupported language "${language}"`);
370
+ }
371
+ // 安全检查:拦截脚本内容中向用户目录的绝对路径写操作
372
+ const absPathPattern = /(?:writeFile|writeFileSync|createWriteStream|open\s*\(|savefig|to_csv|to_excel|to_parquet|to_html)\s*\(?\s*['"][^'"]*\/(Users|home)\//i;
373
+ const cpMvPattern = /\b(?:cp|mv|tee)\s+[^|;&\n]*\s+['"]?\/(Users|home)\//i;
374
+ if (absPathPattern.test(code) || cpMvPattern.test(code)) {
375
+ return '[Sandbox blocked] Script contains absolute path write to user directory. Use relative paths instead (e.g. "output.pptx", "report.html").';
376
+ }
377
+ // Node.js 脚本:自动注入 output/ 目录创建 + 全面 patch fs 方法
378
+ // 防止 pptxgenjs/docx 等库写入子目录时因目录不存在而静默失败
379
+ // 覆盖: writeFileSync, writeFile(callback), fs.promises.writeFile, createWriteStream
380
+ let finalCode = code;
381
+ if (language === 'nodejs') {
382
+ const preamble = [
383
+ "// Auto-injected: ensure output/ dir and patch ALL fs write methods to auto-create parent dirs",
384
+ "try { require('fs').mkdirSync('output', { recursive: true }); } catch(e) {}",
385
+ "const _fs = require('fs');",
386
+ "const _path = require('path');",
387
+ "function _ensureDir(p) { try { const d = _path.dirname(p); if(d && d !== '.') _fs.mkdirSync(d, { recursive: true }); } catch(e) {} }",
388
+ "const _origWriteFileSync = _fs.writeFileSync;",
389
+ "_fs.writeFileSync = function(p, ...a) { _ensureDir(p); return _origWriteFileSync.call(this, p, ...a); };",
390
+ "const _origWriteFile = _fs.writeFile;",
391
+ "_fs.writeFile = function(p, ...a) { _ensureDir(p); return _origWriteFile.call(this, p, ...a); };",
392
+ "const _origCreateWriteStream = _fs.createWriteStream;",
393
+ "_fs.createWriteStream = function(p, ...a) { _ensureDir(p); return _origCreateWriteStream.call(this, p, ...a); };",
394
+ "if (_fs.promises) {",
395
+ " const _origPromisesWriteFile = _fs.promises.writeFile;",
396
+ " _fs.promises.writeFile = async function(p, ...a) { _ensureDir(p); return _origPromisesWriteFile.call(this, p, ...a); };",
397
+ "}",
398
+ "",
399
+ ].join('\n');
400
+ finalCode = preamble + code;
401
+ }
402
+ else if (language === 'python') {
403
+ const preamble = [
404
+ "# Auto-injected: ensure output/ dir exists",
405
+ "import os as _os",
406
+ "try: _os.makedirs('output', exist_ok=True)",
407
+ "except: pass",
408
+ "",
409
+ ].join('\n');
410
+ finalCode = preamble + code;
411
+ }
412
+ // 生成唯一脚本文件名
413
+ const timestamp = Date.now();
414
+ const random = crypto.randomBytes(4).toString('hex');
415
+ const fileName = `script_${timestamp}_${random}${langConfig.ext}`;
416
+ const scriptPath = path.join(this.scriptsDir, fileName);
417
+ // 写入脚本文件
418
+ await fs.writeFile(scriptPath, finalCode, 'utf-8');
419
+ try {
420
+ // 构建执行命令
421
+ const execTimeout = timeout ?? this.config.execTimeout ?? agent_core_2.DEFAULT_SANDBOX_CONFIG.execTimeout;
422
+ const command = `${langConfig.command} "${scriptPath}"`;
423
+ // 通过沙箱 Shell 执行器运行
424
+ const result = await this.shellExecutor.exec(command, execTimeout);
425
+ return result;
426
+ }
427
+ finally {
428
+ // 清理临时脚本文件(静默失败)
429
+ fs.unlink(scriptPath).catch(() => { });
430
+ }
431
+ }
432
+ async destroy() {
433
+ try {
434
+ await fs.rm(this.rootDir, { recursive: true, force: true });
435
+ }
436
+ catch {
437
+ // 静默处理清理失败
438
+ }
439
+ }
440
+ }
441
+ exports.LocalSandbox = LocalSandbox;
442
+ //# sourceMappingURL=local-sandbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-sandbox.js","sourceRoot":"","sources":["../../../src/sandbox/local-sandbox.ts"],"names":[],"mappings":"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"}