filecat 5.32.2 → 5.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. package/README.md +4 -0
  2. package/build/dist/325.38c4e7ae26722532128b.js +2 -0
  3. package/build/dist/377.e76765d911fff4b869ca.js +2 -0
  4. package/build/dist/584.221a52cee9ef0da9cbed.js +2 -0
  5. package/build/dist/654.d1d409e5d29f59920071.js +1 -0
  6. package/build/dist/661.e178f121f1ab48042080.js +2 -0
  7. package/build/dist/{943.d055d58eee66f1ab0414.js → 943.a4ab415e3902e7c1ef59.js} +2 -2
  8. package/build/dist/index.html +1 -1
  9. package/build/dist/main.c4f75ef0d08185dc8a49.js +2 -0
  10. package/build/jieba_rs_wasm_bg.wasm +0 -0
  11. package/build/main.js +2 -0
  12. package/build/main.js.LICENSE.txt +445 -0
  13. package/build/unrar.wasm +0 -0
  14. package/package.json +2 -2
  15. package/build/dist/325.cebabea5cc1b75a2fd96.js +0 -2
  16. package/build/dist/377.4047ae540e74884d3ff5.js +0 -2
  17. package/build/dist/584.d402a562c450dd79b543.js +0 -2
  18. package/build/dist/654.43ec0dfba2da4a2261dc.js +0 -1
  19. package/build/dist/661.d169e2fe7193a840d43a.js +0 -2
  20. package/build/dist/main.494c8bcf15274aeca600.js +0 -2
  21. package/build/server/common/DataUtil.js +0 -7
  22. package/build/server/common/DataUtil.js.map +0 -1
  23. package/build/server/common/FileMenuType.js +0 -48
  24. package/build/server/common/FileMenuType.js.map +0 -1
  25. package/build/server/common/ListUtil.js +0 -224
  26. package/build/server/common/ListUtil.js.map +0 -1
  27. package/build/server/common/Result.pojo.js +0 -15
  28. package/build/server/common/Result.pojo.js.map +0 -1
  29. package/build/server/common/RouterConfig.js +0 -20
  30. package/build/server/common/RouterConfig.js.map +0 -1
  31. package/build/server/common/StringUtil.js +0 -223
  32. package/build/server/common/StringUtil.js.map +0 -1
  33. package/build/server/common/ValueUtil.js +0 -70
  34. package/build/server/common/ValueUtil.js.map +0 -1
  35. package/build/server/common/common.util.js +0 -32
  36. package/build/server/common/common.util.js.map +0 -1
  37. package/build/server/common/event.js +0 -48
  38. package/build/server/common/event.js.map +0 -1
  39. package/build/server/common/file.pojo.js +0 -65
  40. package/build/server/common/file.pojo.js.map +0 -1
  41. package/build/server/common/frame/WsData.js +0 -127
  42. package/build/server/common/frame/WsData.js.map +0 -1
  43. package/build/server/common/frame/constant.js +0 -6
  44. package/build/server/common/frame/constant.js.map +0 -1
  45. package/build/server/common/frame/data.encode.js +0 -115
  46. package/build/server/common/frame/data.encode.js.map +0 -1
  47. package/build/server/common/frame/router.js +0 -25
  48. package/build/server/common/frame/router.js.map +0 -1
  49. package/build/server/common/frame/ws.client.js +0 -173
  50. package/build/server/common/frame/ws.client.js.map +0 -1
  51. package/build/server/common/frame/ws.server.js +0 -145
  52. package/build/server/common/frame/ws.server.js.map +0 -1
  53. package/build/server/common/fun.util.js +0 -65
  54. package/build/server/common/fun.util.js.map +0 -1
  55. package/build/server/common/node/Env.js +0 -198
  56. package/build/server/common/node/Env.js.map +0 -1
  57. package/build/server/common/node/childProcessUtil.js +0 -209
  58. package/build/server/common/node/childProcessUtil.js.map +0 -1
  59. package/build/server/common/node/findPort.js +0 -38
  60. package/build/server/common/node/findPort.js.map +0 -1
  61. package/build/server/common/node/http.js +0 -38
  62. package/build/server/common/node/http.js.map +0 -1
  63. package/build/server/common/node/install.js +0 -132
  64. package/build/server/common/node/install.js.map +0 -1
  65. package/build/server/common/node/value.util.js +0 -8
  66. package/build/server/common/node/value.util.js.map +0 -1
  67. package/build/server/common/path_util.js +0 -86
  68. package/build/server/common/path_util.js.map +0 -1
  69. package/build/server/common/req/common.pojo.js +0 -42
  70. package/build/server/common/req/common.pojo.js.map +0 -1
  71. package/build/server/common/req/customerRouter.pojo.js +0 -9
  72. package/build/server/common/req/customerRouter.pojo.js.map +0 -1
  73. package/build/server/common/req/data.pojo.js +0 -3
  74. package/build/server/common/req/data.pojo.js.map +0 -1
  75. package/build/server/common/req/ddns.pojo.js +0 -39
  76. package/build/server/common/req/ddns.pojo.js.map +0 -1
  77. package/build/server/common/req/file.req.js +0 -49
  78. package/build/server/common/req/file.req.js.map +0 -1
  79. package/build/server/common/req/http_controller_router.js +0 -13
  80. package/build/server/common/req/http_controller_router.js.map +0 -1
  81. package/build/server/common/req/net.pojo.js +0 -71
  82. package/build/server/common/req/net.pojo.js.map +0 -1
  83. package/build/server/common/req/setting.req.js +0 -140
  84. package/build/server/common/req/setting.req.js.map +0 -1
  85. package/build/server/common/req/ssh.pojo.js +0 -13
  86. package/build/server/common/req/ssh.pojo.js.map +0 -1
  87. package/build/server/common/req/sys.pojo.js +0 -29
  88. package/build/server/common/req/sys.pojo.js.map +0 -1
  89. package/build/server/common/req/user.req.js +0 -117
  90. package/build/server/common/req/user.req.js.map +0 -1
  91. package/build/server/common/word_detection_js.js +0 -142
  92. package/build/server/common/word_detection_js.js.map +0 -1
  93. package/build/server/main/domain/ai_agent/ai_agent.constant.js +0 -142
  94. package/build/server/main/domain/ai_agent/ai_agent.constant.js.map +0 -1
  95. package/build/server/main/domain/ai_agent/ai_agent.controller.js +0 -136
  96. package/build/server/main/domain/ai_agent/ai_agent.controller.js.map +0 -1
  97. package/build/server/main/domain/ai_agent/ai_agent.service.js +0 -715
  98. package/build/server/main/domain/ai_agent/ai_agent.service.js.map +0 -1
  99. package/build/server/main/domain/ai_agent/ai_agent.tools.js +0 -79
  100. package/build/server/main/domain/ai_agent/ai_agent.tools.js.map +0 -1
  101. package/build/server/main/domain/ai_agent/ai_agent.worker.js +0 -169
  102. package/build/server/main/domain/ai_agent/ai_agent.worker.js.map +0 -1
  103. package/build/server/main/domain/bin/bin.file.util.js +0 -109
  104. package/build/server/main/domain/bin/bin.file.util.js.map +0 -1
  105. package/build/server/main/domain/bin/bin.js +0 -147
  106. package/build/server/main/domain/bin/bin.js.map +0 -1
  107. package/build/server/main/domain/bin/get_bin_dependency.js +0 -36
  108. package/build/server/main/domain/bin/get_bin_dependency.js.map +0 -1
  109. package/build/server/main/domain/crypto/crypto.controller.js +0 -50
  110. package/build/server/main/domain/crypto/crypto.controller.js.map +0 -1
  111. package/build/server/main/domain/crypto/crypto.service.js +0 -112
  112. package/build/server/main/domain/crypto/crypto.service.js.map +0 -1
  113. package/build/server/main/domain/data/DataUtil.js +0 -127
  114. package/build/server/main/domain/data/DataUtil.js.map +0 -1
  115. package/build/server/main/domain/data/basedata/base_data_util.js +0 -214
  116. package/build/server/main/domain/data/basedata/base_data_util.js.map +0 -1
  117. package/build/server/main/domain/data/data_type.js +0 -92
  118. package/build/server/main/domain/data/data_type.js.map +0 -1
  119. package/build/server/main/domain/ddns/ddns.ali.server.js +0 -77
  120. package/build/server/main/domain/ddns/ddns.ali.server.js.map +0 -1
  121. package/build/server/main/domain/ddns/ddns.controller.js +0 -88
  122. package/build/server/main/domain/ddns/ddns.controller.js.map +0 -1
  123. package/build/server/main/domain/ddns/ddns.dnspod.service.js +0 -102
  124. package/build/server/main/domain/ddns/ddns.dnspod.service.js.map +0 -1
  125. package/build/server/main/domain/ddns/ddns.pre.js +0 -104
  126. package/build/server/main/domain/ddns/ddns.pre.js.map +0 -1
  127. package/build/server/main/domain/ddns/ddns.service.js +0 -161
  128. package/build/server/main/domain/ddns/ddns.service.js.map +0 -1
  129. package/build/server/main/domain/ddns/ddns.tengxun.service.js +0 -46
  130. package/build/server/main/domain/ddns/ddns.tengxun.service.js.map +0 -1
  131. package/build/server/main/domain/ddns/tx/abstract_client.js +0 -247
  132. package/build/server/main/domain/ddns/tx/abstract_client.js.map +0 -1
  133. package/build/server/main/domain/ddns/tx/dnspod_client.js +0 -38
  134. package/build/server/main/domain/ddns/tx/dnspod_client.js.map +0 -1
  135. package/build/server/main/domain/ddns/tx/dnspod_models.js +0 -3
  136. package/build/server/main/domain/ddns/tx/dnspod_models.js.map +0 -1
  137. package/build/server/main/domain/ddns/tx/exception/tencent_cloud_sdk_exception.js +0 -38
  138. package/build/server/main/domain/ddns/tx/exception/tencent_cloud_sdk_exception.js.map +0 -1
  139. package/build/server/main/domain/ddns/tx/http/fetch.js +0 -3
  140. package/build/server/main/domain/ddns/tx/http/fetch.js.map +0 -1
  141. package/build/server/main/domain/ddns/tx/http/http_connection.js +0 -181
  142. package/build/server/main/domain/ddns/tx/http/http_connection.js.map +0 -1
  143. package/build/server/main/domain/ddns/tx/interface.js +0 -5
  144. package/build/server/main/domain/ddns/tx/interface.js.map +0 -1
  145. package/build/server/main/domain/ddns/tx/sdk_version.js +0 -5
  146. package/build/server/main/domain/ddns/tx/sdk_version.js.map +0 -1
  147. package/build/server/main/domain/ddns/tx/sign.js +0 -142
  148. package/build/server/main/domain/ddns/tx/sign.js.map +0 -1
  149. package/build/server/main/domain/ddns/tx/sse_response_model.js +0 -89
  150. package/build/server/main/domain/ddns/tx/sse_response_model.js.map +0 -1
  151. package/build/server/main/domain/file/FileUtil.js +0 -230
  152. package/build/server/main/domain/file/FileUtil.js.map +0 -1
  153. package/build/server/main/domain/file/file.compress.js +0 -246
  154. package/build/server/main/domain/file/file.compress.js.map +0 -1
  155. package/build/server/main/domain/file/file.controller.js +0 -450
  156. package/build/server/main/domain/file/file.controller.js.map +0 -1
  157. package/build/server/main/domain/file/file.service.js +0 -1276
  158. package/build/server/main/domain/file/file.service.js.map +0 -1
  159. package/build/server/main/domain/file/search/file.search.js +0 -78
  160. package/build/server/main/domain/file/search/file.search.js.map +0 -1
  161. package/build/server/main/domain/file/search/file.search.worker.js +0 -107
  162. package/build/server/main/domain/file/search/file.search.worker.js.map +0 -1
  163. package/build/server/main/domain/file/search/file.type.js +0 -3
  164. package/build/server/main/domain/file/search/file.type.js.map +0 -1
  165. package/build/server/main/domain/file/workflow/workflow.process.js +0 -100
  166. package/build/server/main/domain/file/workflow/workflow.process.js.map +0 -1
  167. package/build/server/main/domain/file/workflow/workflow.service.js +0 -659
  168. package/build/server/main/domain/file/workflow/workflow.service.js.map +0 -1
  169. package/build/server/main/domain/file/workflow/workflow.util.js +0 -111
  170. package/build/server/main/domain/file/workflow/workflow.util.js.map +0 -1
  171. package/build/server/main/domain/navindex/navindex.controller.js +0 -73
  172. package/build/server/main/domain/navindex/navindex.controller.js.map +0 -1
  173. package/build/server/main/domain/net/net.controller.js +0 -318
  174. package/build/server/main/domain/net/net.controller.js.map +0 -1
  175. package/build/server/main/domain/net/net.datautil.js +0 -8
  176. package/build/server/main/domain/net/net.datautil.js.map +0 -1
  177. package/build/server/main/domain/net/net.service.js +0 -627
  178. package/build/server/main/domain/net/net.service.js.map +0 -1
  179. package/build/server/main/domain/net/tcp.forward.client.service.js +0 -223
  180. package/build/server/main/domain/net/tcp.forward.client.service.js.map +0 -1
  181. package/build/server/main/domain/net/tcp.forward.controller.js +0 -482
  182. package/build/server/main/domain/net/tcp.forward.controller.js.map +0 -1
  183. package/build/server/main/domain/net/tcp.forward.server.service.js +0 -407
  184. package/build/server/main/domain/net/tcp.forward.server.service.js.map +0 -1
  185. package/build/server/main/domain/net/type.js +0 -3
  186. package/build/server/main/domain/net/type.js.map +0 -1
  187. package/build/server/main/domain/net/util/NetClientUtil.js +0 -76
  188. package/build/server/main/domain/net/util/NetClientUtil.js.map +0 -1
  189. package/build/server/main/domain/net/util/NetServerUtil.js +0 -128
  190. package/build/server/main/domain/net/util/NetServerUtil.js.map +0 -1
  191. package/build/server/main/domain/net/util/NetUtil.js +0 -187
  192. package/build/server/main/domain/net/util/NetUtil.js.map +0 -1
  193. package/build/server/main/domain/net/util/tcp.client.js +0 -211
  194. package/build/server/main/domain/net/util/tcp.client.js.map +0 -1
  195. package/build/server/main/domain/net/util/tcp_stream_util.js +0 -69
  196. package/build/server/main/domain/net/util/tcp_stream_util.js.map +0 -1
  197. package/build/server/main/domain/net/util/type.js +0 -3
  198. package/build/server/main/domain/net/util/type.js.map +0 -1
  199. package/build/server/main/domain/net/virtual/tcp_proxy.js +0 -125
  200. package/build/server/main/domain/net/virtual/tcp_proxy.js.map +0 -1
  201. package/build/server/main/domain/net/virtual/virtual.client.service.js +0 -402
  202. package/build/server/main/domain/net/virtual/virtual.client.service.js.map +0 -1
  203. package/build/server/main/domain/net/virtual/virtual.controller.js +0 -211
  204. package/build/server/main/domain/net/virtual/virtual.controller.js.map +0 -1
  205. package/build/server/main/domain/net/virtual/virtual.server.service.js +0 -72
  206. package/build/server/main/domain/net/virtual/virtual.server.service.js.map +0 -1
  207. package/build/server/main/domain/pre/lifeRecordService.js +0 -79
  208. package/build/server/main/domain/pre/lifeRecordService.js.map +0 -1
  209. package/build/server/main/domain/rdp/lib/asn1/ber.js +0 -66
  210. package/build/server/main/domain/rdp/lib/asn1/ber.js.map +0 -1
  211. package/build/server/main/domain/rdp/lib/asn1/index.js +0 -9
  212. package/build/server/main/domain/rdp/lib/asn1/index.js.map +0 -1
  213. package/build/server/main/domain/rdp/lib/asn1/spec.js +0 -56
  214. package/build/server/main/domain/rdp/lib/asn1/spec.js.map +0 -1
  215. package/build/server/main/domain/rdp/lib/asn1/univ.js +0 -315
  216. package/build/server/main/domain/rdp/lib/asn1/univ.js.map +0 -1
  217. package/build/server/main/domain/rdp/lib/core/error.js +0 -25
  218. package/build/server/main/domain/rdp/lib/core/error.js.map +0 -1
  219. package/build/server/main/domain/rdp/lib/core/index.js +0 -13
  220. package/build/server/main/domain/rdp/lib/core/index.js.map +0 -1
  221. package/build/server/main/domain/rdp/lib/core/layer.js +0 -135
  222. package/build/server/main/domain/rdp/lib/core/layer.js.map +0 -1
  223. package/build/server/main/domain/rdp/lib/core/log.js +0 -25
  224. package/build/server/main/domain/rdp/lib/core/log.js.map +0 -1
  225. package/build/server/main/domain/rdp/lib/core/rle.js +0 -22699
  226. package/build/server/main/domain/rdp/lib/core/rle.js.map +0 -1
  227. package/build/server/main/domain/rdp/lib/core/type.js +0 -245
  228. package/build/server/main/domain/rdp/lib/core/type.js.map +0 -1
  229. package/build/server/main/domain/rdp/lib/index.js +0 -6
  230. package/build/server/main/domain/rdp/lib/index.js.map +0 -1
  231. package/build/server/main/domain/rdp/lib/protocol/cert.js +0 -115
  232. package/build/server/main/domain/rdp/lib/protocol/cert.js.map +0 -1
  233. package/build/server/main/domain/rdp/lib/protocol/index.js +0 -11
  234. package/build/server/main/domain/rdp/lib/protocol/index.js.map +0 -1
  235. package/build/server/main/domain/rdp/lib/protocol/nla.js +0 -549
  236. package/build/server/main/domain/rdp/lib/protocol/nla.js.map +0 -1
  237. package/build/server/main/domain/rdp/lib/protocol/pdu/caps.js +0 -486
  238. package/build/server/main/domain/rdp/lib/protocol/pdu/caps.js.map +0 -1
  239. package/build/server/main/domain/rdp/lib/protocol/pdu/cliprdr.js +0 -167
  240. package/build/server/main/domain/rdp/lib/protocol/pdu/cliprdr.js.map +0 -1
  241. package/build/server/main/domain/rdp/lib/protocol/pdu/data.js +0 -876
  242. package/build/server/main/domain/rdp/lib/protocol/pdu/data.js.map +0 -1
  243. package/build/server/main/domain/rdp/lib/protocol/pdu/global.js +0 -260
  244. package/build/server/main/domain/rdp/lib/protocol/pdu/global.js.map +0 -1
  245. package/build/server/main/domain/rdp/lib/protocol/pdu/index.js +0 -13
  246. package/build/server/main/domain/rdp/lib/protocol/pdu/index.js.map +0 -1
  247. package/build/server/main/domain/rdp/lib/protocol/pdu/lic.js +0 -199
  248. package/build/server/main/domain/rdp/lib/protocol/pdu/lic.js.map +0 -1
  249. package/build/server/main/domain/rdp/lib/protocol/pdu/sec.js +0 -333
  250. package/build/server/main/domain/rdp/lib/protocol/pdu/sec.js.map +0 -1
  251. package/build/server/main/domain/rdp/lib/protocol/rdp.js +0 -255
  252. package/build/server/main/domain/rdp/lib/protocol/rdp.js.map +0 -1
  253. package/build/server/main/domain/rdp/lib/protocol/t125/gcc.js +0 -354
  254. package/build/server/main/domain/rdp/lib/protocol/t125/gcc.js.map +0 -1
  255. package/build/server/main/domain/rdp/lib/protocol/t125/index.js +0 -7
  256. package/build/server/main/domain/rdp/lib/protocol/t125/index.js.map +0 -1
  257. package/build/server/main/domain/rdp/lib/protocol/t125/mcs.js +0 -318
  258. package/build/server/main/domain/rdp/lib/protocol/t125/mcs.js.map +0 -1
  259. package/build/server/main/domain/rdp/lib/protocol/t125/per.js +0 -188
  260. package/build/server/main/domain/rdp/lib/protocol/t125/per.js.map +0 -1
  261. package/build/server/main/domain/rdp/lib/protocol/tpkt.js +0 -94
  262. package/build/server/main/domain/rdp/lib/protocol/tpkt.js.map +0 -1
  263. package/build/server/main/domain/rdp/lib/protocol/x224.js +0 -207
  264. package/build/server/main/domain/rdp/lib/protocol/x224.js.map +0 -1
  265. package/build/server/main/domain/rdp/lib/security/index.js +0 -7
  266. package/build/server/main/domain/rdp/lib/security/index.js.map +0 -1
  267. package/build/server/main/domain/rdp/lib/security/jsbn.js +0 -1372
  268. package/build/server/main/domain/rdp/lib/security/jsbn.js.map +0 -1
  269. package/build/server/main/domain/rdp/lib/security/md4.js +0 -401
  270. package/build/server/main/domain/rdp/lib/security/md4.js.map +0 -1
  271. package/build/server/main/domain/rdp/lib/security/rc4.js +0 -45
  272. package/build/server/main/domain/rdp/lib/security/rc4.js.map +0 -1
  273. package/build/server/main/domain/rdp/lib/security/rsa.js +0 -15
  274. package/build/server/main/domain/rdp/lib/security/rsa.js.map +0 -1
  275. package/build/server/main/domain/rdp/lib/security/x509.js +0 -106
  276. package/build/server/main/domain/rdp/lib/security/x509.js.map +0 -1
  277. package/build/server/main/domain/rdp/rdp.controller.js +0 -116
  278. package/build/server/main/domain/rdp/rdp.controller.js.map +0 -1
  279. package/build/server/main/domain/rdp/rdp.service.js +0 -117
  280. package/build/server/main/domain/rdp/rdp.service.js.map +0 -1
  281. package/build/server/main/domain/setting/setting.controller.js +0 -621
  282. package/build/server/main/domain/setting/setting.controller.js.map +0 -1
  283. package/build/server/main/domain/setting/setting.prefile.js +0 -69
  284. package/build/server/main/domain/setting/setting.prefile.js.map +0 -1
  285. package/build/server/main/domain/setting/setting.service.js +0 -763
  286. package/build/server/main/domain/setting/setting.service.js.map +0 -1
  287. package/build/server/main/domain/shell/shell.controller.js +0 -92
  288. package/build/server/main/domain/shell/shell.controller.js.map +0 -1
  289. package/build/server/main/domain/shell/shell.service.js +0 -448
  290. package/build/server/main/domain/shell/shell.service.js.map +0 -1
  291. package/build/server/main/domain/shell/util.js +0 -101
  292. package/build/server/main/domain/shell/util.js.map +0 -1
  293. package/build/server/main/domain/ssh/ssh.controller.js +0 -203
  294. package/build/server/main/domain/ssh/ssh.controller.js.map +0 -1
  295. package/build/server/main/domain/ssh/ssh.service.js +0 -238
  296. package/build/server/main/domain/ssh/ssh.service.js.map +0 -1
  297. package/build/server/main/domain/ssh/ssh.ssh2.js +0 -217
  298. package/build/server/main/domain/ssh/ssh.ssh2.js.map +0 -1
  299. package/build/server/main/domain/sys/sys.controller.js +0 -374
  300. package/build/server/main/domain/sys/sys.controller.js.map +0 -1
  301. package/build/server/main/domain/sys/sys.docker.service.js +0 -339
  302. package/build/server/main/domain/sys/sys.docker.service.js.map +0 -1
  303. package/build/server/main/domain/sys/sys.process.service.js +0 -218
  304. package/build/server/main/domain/sys/sys.process.service.js.map +0 -1
  305. package/build/server/main/domain/sys/sys.service.js +0 -85
  306. package/build/server/main/domain/sys/sys.service.js.map +0 -1
  307. package/build/server/main/domain/sys/sys.sys.service.js +0 -206
  308. package/build/server/main/domain/sys/sys.sys.service.js.map +0 -1
  309. package/build/server/main/domain/sys/sys.systemd.service.js +0 -276
  310. package/build/server/main/domain/sys/sys.systemd.service.js.map +0 -1
  311. package/build/server/main/domain/sys/sys.utl.js +0 -42
  312. package/build/server/main/domain/sys/sys.utl.js.map +0 -1
  313. package/build/server/main/domain/user/user.controller.js +0 -277
  314. package/build/server/main/domain/user/user.controller.js.map +0 -1
  315. package/build/server/main/domain/user/user.hash.js +0 -8
  316. package/build/server/main/domain/user/user.hash.js.map +0 -1
  317. package/build/server/main/domain/user/user.service.js +0 -584
  318. package/build/server/main/domain/user/user.service.js.map +0 -1
  319. package/build/server/main/domain/video/video.controller.js +0 -71
  320. package/build/server/main/domain/video/video.controller.js.map +0 -1
  321. package/build/server/main/domain/video/video.service.js +0 -45
  322. package/build/server/main/domain/video/video.service.js.map +0 -1
  323. package/build/server/main/main.js +0 -171
  324. package/build/server/main/main.js.map +0 -1
  325. package/build/server/main/other/Result.js +0 -25
  326. package/build/server/main/other/Result.js.map +0 -1
  327. package/build/server/main/other/cache.js +0 -50
  328. package/build/server/main/other/cache.js.map +0 -1
  329. package/build/server/main/other/config.js +0 -6
  330. package/build/server/main/other/config.js.map +0 -1
  331. package/build/server/main/other/middleware/AuthMiddleware.js +0 -101
  332. package/build/server/main/other/middleware/AuthMiddleware.js.map +0 -1
  333. package/build/server/main/other/middleware/GlobalErrorHandler.js +0 -23
  334. package/build/server/main/other/middleware/GlobalErrorHandler.js.map +0 -1
  335. package/build/server/main/other/middleware/decorator.js +0 -15
  336. package/build/server/main/other/middleware/decorator.js.map +0 -1
  337. package/build/server/main/other/middleware/redirect.js +0 -20
  338. package/build/server/main/other/middleware/redirect.js.map +0 -1
  339. package/build/server/main/server.js +0 -22
  340. package/build/server/main/server.js.map +0 -1
  341. package/build/server/main/threads/filecat/threads.filecat.js +0 -16
  342. package/build/server/main/threads/filecat/threads.filecat.js.map +0 -1
  343. package/build/server/main/threads/filecat/threads.work.filecat.js +0 -7
  344. package/build/server/main/threads/filecat/threads.work.filecat.js.map +0 -1
  345. package/build/server/main/threads/threads.main.js +0 -224
  346. package/build/server/main/threads/threads.main.js.map +0 -1
  347. package/build/server/main/threads/threads.type.js +0 -19
  348. package/build/server/main/threads/threads.type.js.map +0 -1
  349. package/build/server/main/threads/threads.work.js +0 -52
  350. package/build/server/main/threads/threads.work.js.map +0 -1
  351. package/build/server/main/watch.js +0 -187
  352. package/build/server/main/watch.js.map +0 -1
  353. package/build/server/tsconfig.tsbuildinfo +0 -1
  354. package/build/server/web/project/util/noty.js +0 -45
  355. package/build/server/web/project/util/noty.js.map +0 -1
  356. /package/build/dist/{325.cebabea5cc1b75a2fd96.js.LICENSE.txt → 325.38c4e7ae26722532128b.js.LICENSE.txt} +0 -0
  357. /package/build/dist/{377.4047ae540e74884d3ff5.js.LICENSE.txt → 377.e76765d911fff4b869ca.js.LICENSE.txt} +0 -0
  358. /package/build/dist/{584.d402a562c450dd79b543.js.LICENSE.txt → 584.221a52cee9ef0da9cbed.js.LICENSE.txt} +0 -0
  359. /package/build/dist/{661.d169e2fe7193a840d43a.js.LICENSE.txt → 661.e178f121f1ab48042080.js.LICENSE.txt} +0 -0
  360. /package/build/dist/{943.d055d58eee66f1ab0414.js.LICENSE.txt → 943.a4ab415e3902e7c1ef59.js.LICENSE.txt} +0 -0
  361. /package/build/dist/{main.494c8bcf15274aeca600.js.LICENSE.txt → main.c4f75ef0d08185dc8a49.js.LICENSE.txt} +0 -0
@@ -1,715 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ai_agentService = exports.Ai_agentService = void 0;
7
- const ai_agent_constant_1 = require("./ai_agent.constant");
8
- const stream_1 = require("stream");
9
- const os_1 = __importDefault(require("os"));
10
- const ai_agent_tools_1 = require("./ai_agent.tools");
11
- const setting_service_1 = require("../setting/setting.service");
12
- const path_1 = __importDefault(require("path"));
13
- const user_service_1 = require("../user/user.service");
14
- const pty_shell_1 = require("pty-shell");
15
- const shell_service_1 = require("../shell/shell.service");
16
- const user_req_1 = require("../../../common/req/user.req");
17
- const setting_req_1 = require("../../../common/req/setting.req");
18
- const Env_1 = require("../../../common/node/Env");
19
- const FileUtil_1 = require("../file/FileUtil");
20
- const StringUtil_1 = require("../../../common/StringUtil");
21
- const ValueUtil_1 = require("../../../common/ValueUtil");
22
- const ListUtil_1 = require("../../../common/ListUtil");
23
- const ws_server_1 = require("../../../common/frame/ws.server");
24
- const WsData_1 = require("../../../common/frame/WsData");
25
- const path_util_1 = require("../../../common/path_util");
26
- const common_util_1 = require("../../../common/common.util");
27
- const threads_filecat_1 = require("../../threads/filecat/threads.filecat");
28
- const threads_type_1 = require("../../threads/threads.type");
29
- const DataUtil_1 = require("../data/DataUtil");
30
- const data_type_1 = require("../data/data_type");
31
- const pinyin_pro_1 = require("pinyin-pro");
32
- const value_util_1 = require("../../../common/node/value.util");
33
- const config_1 = require("../../other/config");
34
- const { cut, cut_all, cut_for_search, tokenize, add_word, } = require("jieba-wasm");
35
- let API_KEY = process.env.AI_API_KEY;
36
- let BASE_URL = "https://ark.cn-beijing.volces.com/api/v3/chat/completions";
37
- let MODEL = "doubao-seed-1-6";
38
- let config;
39
- let config_env = new setting_req_1.ai_agent_item_dotenv();
40
- let config_search_doc = new setting_req_1.ai_docs_setting_param();
41
- function isChinese(str) {
42
- return /[\u4e00-\u9fa5]/.test(str);
43
- }
44
- class Ai_agentService {
45
- constructor() {
46
- this.docs_data_map = new Map();
47
- this.docs_info = new setting_req_1.ai_docs_load_info();
48
- this.all_wss_set = new Set;
49
- this.running_num = 1;
50
- this.sys_ai_is_open = false;
51
- }
52
- async search_docs({ keywords }) {
53
- const scoreMap = new Map();
54
- const new_keywords = {};
55
- for (const k of keywords) {
56
- if (!k)
57
- continue;
58
- new_keywords[k] = 1;
59
- if (isChinese(k)) {
60
- for (const k2 of cut_for_search(k, true)) {
61
- if (k2)
62
- new_keywords[k2] = 1;
63
- }
64
- const pyFull = (0, pinyin_pro_1.pinyin)(k, { toneType: "none" });
65
- if (pyFull) {
66
- new_keywords[pyFull.replace(/\s+/g, "")] = 1;
67
- }
68
- }
69
- else {
70
- }
71
- }
72
- let keys = [...new Set(Object.keys(new_keywords)
73
- .map(k => k.toLowerCase().trim())
74
- .filter(Boolean))];
75
- keys = [keys.join(" ")];
76
- const r_list = await Promise.all(keys.map(k => threads_filecat_1.ThreadsFilecat.post(threads_type_1.threads_msg_type.docs_search, { key: k }, 60000)));
77
- for (let i = 0; i < r_list.length; i++) {
78
- const { ids, names_ids } = r_list[i];
79
- let extra_weight = 0;
80
- for (let i = 0; i < ids.length; i++) {
81
- const id = ids[i];
82
- const weight = 1 / (i + 1) + extra_weight;
83
- scoreMap.set(id, (scoreMap.get(id) || 0) + weight);
84
- }
85
- for (let i = 0; i < names_ids.length; i++) {
86
- const id = names_ids[i];
87
- const weight = 1 / (i + 1) + extra_weight + 0.5;
88
- scoreMap.set(id, (scoreMap.get(id) || 0) + weight);
89
- }
90
- }
91
- const sorted = [...scoreMap.entries()]
92
- .sort((a, b) => b[1] - a[1])
93
- .map(([id]) => id);
94
- const results = [];
95
- let total_char_num = 0;
96
- for (const id of sorted) {
97
- if (total_char_num >= config_search_doc.docs_max_char_num) {
98
- break;
99
- }
100
- const content = (await FileUtil_1.FileUtil.readFileSync(id)).toString();
101
- results.push({
102
- file_name: id,
103
- content
104
- });
105
- total_char_num += content.length;
106
- }
107
- return `知识库搜索结果 ${JSON.stringify({
108
- results
109
- })}`;
110
- }
111
- init_search_docs_param() {
112
- if (!this.sys_ai_is_open)
113
- return;
114
- const setting = setting_service_1.settingService.ai_docs_setting();
115
- Env_1.Env.load(setting.param, config_search_doc);
116
- }
117
- async load_one_file(token, param_path) {
118
- if (!this.sys_ai_is_open)
119
- return;
120
- const root_path = setting_service_1.settingService.getFileRootPath(token);
121
- let sysPath = decodeURIComponent(param_path);
122
- if ((0, path_util_1.isAbsolutePath)(sysPath)) {
123
- }
124
- else {
125
- sysPath = path_1.default.join(root_path, sysPath);
126
- }
127
- user_service_1.userService.check_user_path(token, sysPath);
128
- await this.init_search_docs([{
129
- auto_load: true,
130
- dir: sysPath
131
- }]);
132
- }
133
- async add_content(file_path) {
134
- return threads_filecat_1.ThreadsFilecat.post(threads_type_1.threads_msg_type.docs_add, {
135
- use_zh_segmentation: config_search_doc.use_zh_segmentation,
136
- file_path,
137
- mtime: this.docs_data_map.get((0, value_util_1.hash_str_to_number)(file_path))?.time_stamp
138
- }, 60 * 1000);
139
- }
140
- async remove_content(file_path) {
141
- await threads_filecat_1.ThreadsFilecat.post(threads_type_1.threads_msg_type.docs_del, {
142
- file_path
143
- }, 60 * 1000);
144
- this.docs_data_map.delete((0, value_util_1.hash_str_to_number)(file_path));
145
- }
146
- async close_index() {
147
- this.running_num++;
148
- if (threads_filecat_1.ThreadsFilecat.is_running)
149
- await threads_filecat_1.ThreadsFilecat.post(threads_type_1.threads_msg_type.docs_close, {}, 60 * 1000);
150
- exports.ai_agentService.docs_data_map.clear();
151
- this.docs_info.init(0);
152
- }
153
- push_wss(now) {
154
- this.docs_info.consume_time_ms_len = Date.now() - now;
155
- this.docs_info.total_num = this.docs_data_map.size;
156
- ws_server_1.Wss.sendToAllClient(WsData_1.CmdType.ai_load_info, this.docs_info, this.all_wss_set);
157
- }
158
- async init() {
159
- this.load_key();
160
- if (!this.sys_ai_is_open)
161
- return;
162
- (0, threads_filecat_1.start_worker_threads)();
163
- const body = { index_storage_type: config_search_doc.index_storage_type };
164
- if (config_search_doc.index_storage_type === 'sqlite') {
165
- body['db_path'] = DataUtil_1.DataUtil.get_file_path(data_type_1.data_dir_tem_name.sys_database_dir, data_type_1.file_key.fts5_rag_db);
166
- }
167
- await threads_filecat_1.ThreadsFilecat.post(threads_type_1.threads_msg_type.docs_init, body, 60 * 1000);
168
- }
169
- async init_search_docs(target_list) {
170
- if (!this.sys_ai_is_open)
171
- return;
172
- const now = Date.now();
173
- await this.init();
174
- this.docs_info.init(0);
175
- this.push_wss(now);
176
- const dir_recursion_depth = config_search_doc.dir_recursion_depth;
177
- const list = target_list || setting_service_1.settingService.ai_docs_setting().list;
178
- if (!list?.length) {
179
- return;
180
- }
181
- let running_num = this.running_num;
182
- let ignore_list = [];
183
- let allow_list = [];
184
- if (config_search_doc.ignore_dir) {
185
- if (typeof config_search_doc.ignore_dir === 'string') {
186
- ignore_list.push(config_search_doc.ignore_dir);
187
- }
188
- else {
189
- if (Array.isArray(config_search_doc.ignore_dir)) {
190
- ignore_list = config_search_doc.ignore_dir;
191
- }
192
- }
193
- }
194
- if (config_search_doc.allow_file_path) {
195
- if (typeof config_search_doc.allow_file_path === 'string') {
196
- allow_list.push(config_search_doc.allow_file_path);
197
- }
198
- else {
199
- if (Array.isArray(config_search_doc.allow_file_path)) {
200
- allow_list = config_search_doc.allow_file_path;
201
- }
202
- }
203
- }
204
- const files_set = new Set();
205
- let update_file_num = 0;
206
- let await_file_total = config_search_doc.await_file_num ?? 0;
207
- const add_file_path_list = [];
208
- const update_file_path_list = [];
209
- const handleFile = async (file_path, file_name) => {
210
- if (files_set.size >= config_search_doc.max_file_num) {
211
- return;
212
- }
213
- if (running_num != this.running_num)
214
- return;
215
- if (config_search_doc.allow_file_path) {
216
- let ok = false;
217
- for (const allow of allow_list) {
218
- if ((0, StringUtil_1.matchGitignore)(file_path, allow)) {
219
- ok = true;
220
- break;
221
- }
222
- }
223
- if (!ok)
224
- return;
225
- }
226
- if (await_file_total <= 0) {
227
- await_file_total = config_search_doc.await_file_num ?? 0;
228
- if (config_search_doc.await_time_ms_len) {
229
- await common_util_1.CommonUtil.sleep(config_search_doc.await_time_ms_len);
230
- }
231
- }
232
- else {
233
- await_file_total--;
234
- }
235
- const file_stats = await FileUtil_1.FileUtil.statSync(file_path);
236
- if (!file_stats.isFile())
237
- return;
238
- if (file_stats.size > config_search_doc.max_file_byte_size) {
239
- return;
240
- }
241
- this.docs_info.size += file_stats.size;
242
- const hash_id = (0, value_util_1.hash_str_to_number)(file_path);
243
- if (this.docs_data_map.has(hash_id)) {
244
- const it = this.docs_data_map.get(hash_id);
245
- const mtime = file_stats.mtime.getTime();
246
- if (it.time_stamp === mtime) {
247
- }
248
- else {
249
- it.time_stamp = mtime;
250
- update_file_path_list.push(file_path);
251
- update_file_num++;
252
- }
253
- }
254
- else {
255
- add_file_path_list.push(file_path);
256
- this.docs_data_map.set(hash_id, {
257
- time_stamp: file_stats.mtime.getTime(),
258
- });
259
- update_file_num++;
260
- }
261
- this.docs_info.num++;
262
- files_set.add(hash_id);
263
- };
264
- const async_poll = new ListUtil_1.AsyncPool(config_search_doc.max_file_concurrency);
265
- const walkDir = async (dir, depth) => {
266
- if (depth > dir_recursion_depth) {
267
- return;
268
- }
269
- if (running_num != this.running_num)
270
- return;
271
- const stat = await FileUtil_1.FileUtil.statSync(dir);
272
- if (stat.isFile()) {
273
- await async_poll.run(() => handleFile(dir, path_1.default.basename(dir)));
274
- return;
275
- }
276
- const entries = await FileUtil_1.FileUtil.readdirSync(dir);
277
- for (const entry of entries) {
278
- if (files_set.size >= config_search_doc.max_file_num) {
279
- return;
280
- }
281
- const fullPath = path_1.default.join(dir, entry);
282
- let ok = false;
283
- for (const ignore of ignore_list) {
284
- if ((0, StringUtil_1.matchGitignore)(entry, ignore)) {
285
- ok = true;
286
- break;
287
- }
288
- }
289
- if (ok)
290
- continue;
291
- const stat = await FileUtil_1.FileUtil.statSync(fullPath);
292
- if (stat.isDirectory()) {
293
- if (depth < dir_recursion_depth) {
294
- await walkDir(fullPath, depth + 1);
295
- }
296
- }
297
- else if (stat.isFile()) {
298
- await async_poll.run(() => handleFile(fullPath, entry));
299
- }
300
- }
301
- this.push_wss(now);
302
- };
303
- const total = list.length;
304
- for (let i = 0; i < list.length; i++) {
305
- const it = list[i];
306
- if (it.auto_load) {
307
- await walkDir(it.dir, 0);
308
- }
309
- }
310
- const totalFiles = add_file_path_list.length + update_file_path_list.length;
311
- let processed = 0;
312
- for (const file_path of add_file_path_list) {
313
- this.docs_info.char_num += (await this.add_content(file_path))?.char_num ?? 0;
314
- processed++;
315
- this.docs_info.progress = ((processed / totalFiles) * 100).toFixed(2);
316
- this.push_wss(now);
317
- }
318
- for (const file_path of update_file_path_list) {
319
- await this.remove_content(file_path);
320
- this.docs_info.char_num += (await this.add_content(file_path))?.char_num ?? 0;
321
- processed++;
322
- this.docs_info.progress = ((processed / totalFiles) * 100).toFixed(2);
323
- this.push_wss(now);
324
- }
325
- this.docs_info.progress = 100;
326
- this.push_wss(now);
327
- console.log(`共扫描了 ${files_set.size} 个知识库文件`);
328
- console.log(`共更新了 ${update_file_num} 个知识库文件`);
329
- console.log(`知识库总字符数量 ${this.docs_info.char_num} `);
330
- console.log(`知识库总文件大小 ${(0, ValueUtil_1.formatFileSize)(this.docs_info.size)} `);
331
- console.log(`加载总耗时 ${(0, ValueUtil_1.formatDuration)(this.docs_info.consume_time_ms_len)}`);
332
- }
333
- async delete_index_with_progress(targetPath) {
334
- this.docs_info.init(0);
335
- const filesToDelete = [];
336
- const now = Date.now();
337
- const collectFiles = async (p) => {
338
- const stat = await FileUtil_1.FileUtil.statSync(p);
339
- if (!stat)
340
- return;
341
- if (stat.isFile()) {
342
- if (this.docs_data_map.has((0, value_util_1.hash_str_to_number)(p))) {
343
- filesToDelete.push(p);
344
- this.docs_info.size += stat.size;
345
- this.docs_info.num++;
346
- }
347
- }
348
- else if (stat.isDirectory()) {
349
- const entries = await FileUtil_1.FileUtil.readdirSync(p);
350
- for (const entry of entries) {
351
- await collectFiles(path_1.default.join(p, entry));
352
- }
353
- }
354
- };
355
- await collectFiles(targetPath);
356
- const totalFiles = filesToDelete.length;
357
- let processed = 0;
358
- for (const filePath of filesToDelete) {
359
- await this.remove_content(filePath);
360
- processed++;
361
- this.docs_info.progress = ((processed / totalFiles) * 100).toFixed(2);
362
- this.push_wss(now);
363
- }
364
- this.docs_info.progress = 100;
365
- this.push_wss(now);
366
- }
367
- get_env() {
368
- return config_env;
369
- }
370
- load_key() {
371
- config_env = new setting_req_1.ai_agent_item_dotenv();
372
- this.sys_ai_is_open = false;
373
- const r = setting_service_1.settingService.ai_agent_setting();
374
- for (const it of r.models) {
375
- if (it.open) {
376
- MODEL = it.model;
377
- BASE_URL = it.url;
378
- API_KEY = it.token;
379
- config = it;
380
- if (it.dotenv) {
381
- Env_1.Env.load(it.dotenv, config_env);
382
- }
383
- this.sys_ai_is_open = true;
384
- return;
385
- }
386
- }
387
- config = undefined;
388
- API_KEY = undefined;
389
- BASE_URL = undefined;
390
- MODEL = undefined;
391
- }
392
- trimMessages(messages, maxChars = 12000) {
393
- let total = 0;
394
- const result = [];
395
- for (let i = messages.length - 1; i >= 0; i--) {
396
- const msg = messages[i];
397
- const size = JSON.stringify(msg).length;
398
- if (total + size > maxChars)
399
- break;
400
- total += size;
401
- result.unshift(msg);
402
- }
403
- return result;
404
- }
405
- ;
406
- async permission_test(token, user, toolName, args) {
407
- switch (toolName) {
408
- case "exec_cmd": {
409
- const cmd = args.cmd?.trim();
410
- if (!cmd)
411
- throw new Error("cmd 不能为空");
412
- const argv = cmd.split(" ");
413
- const code = await shell_service_1.shellServiceImpl.check_exe_cmd({
414
- user_id: user.id,
415
- cwd: process.cwd()
416
- })(argv, argv.slice(1));
417
- if (code === pty_shell_1.exec_type.not) {
418
- throw new Error(`没有权限执行命令:${cmd}`);
419
- }
420
- break;
421
- }
422
- case "list_files":
423
- case "read_file":
424
- user_service_1.userService.check_user_path(token, args.path);
425
- break;
426
- case "edit_file":
427
- user_service_1.userService.check_user_path(token, args.path);
428
- user_service_1.userService.check_user_auth(token, user_req_1.UserAuth.filecat_file_delete_cut_rename);
429
- break;
430
- }
431
- }
432
- is_use_local_data() {
433
- return this.docs_data_map.size > 0;
434
- }
435
- async chat(originMessages, res, token) {
436
- if (!API_KEY) {
437
- throw new Error("api 没有设置,请设置诸如豆包、openai 的 model api");
438
- }
439
- const user = user_service_1.userService.get_user_info_by_token(token);
440
- const rootPath = setting_service_1.settingService.getFileRootPath(token);
441
- const workMessages = [
442
- {
443
- role: "system",
444
- content: `
445
- 1. 你是一个服务器机器人,当前操作系统是 ${os_1.default.platform()},
446
- 当前目录是 ${rootPath},
447
- 当前系统登陆用户是 ${user.username},用户的id为 ${user.user_id},${user.note}。
448
- 2. 使用 markdown格式回答用户。
449
- 3. 你是开源项目filecat的一部分,项目地址 https://github.com/xiaobaidadada/filecat。
450
- ${this.is_use_local_data() ? `4. 当你不了解某些知识的时候,直接使用search_docs工具函数来搜素本地知识库搜索相关资料,如果用到了知识库,需要给用户引用的知识库文件路径。` : ''}
451
-
452
- ${config.sys_prompt ?? ''}
453
- `
454
- },
455
- ...this.trimMessages(originMessages, config_env.char_max)
456
- ];
457
- if (config_search_doc.force_use_local_data) {
458
- const t_ = await this.search_docs({ keywords: [workMessages[workMessages.length - 1].content] });
459
- workMessages[workMessages.length - 1].content = `本地知识库搜到 ${t_}
460
- ${workMessages[workMessages.length - 1].content}`;
461
- }
462
- const env = {
463
- toolLoop: config_env.tool_call_max,
464
- tool_error_max: config_env.tool_error_max
465
- };
466
- const controller = new AbortController();
467
- if (res) {
468
- res.on("close", () => {
469
- controller.abort();
470
- });
471
- }
472
- while (env.toolLoop-- > 0) {
473
- let assistantMessage = {
474
- role: "assistant",
475
- content: "",
476
- tool_calls: []
477
- };
478
- const toolCallMap = new Map();
479
- await this.callLLSync(workMessages, (chunk) => {
480
- if (!chunk)
481
- return;
482
- if (chunk.content) {
483
- assistantMessage.content += chunk.content;
484
- this.write_to_res(res, chunk.content);
485
- }
486
- if (chunk.tool_calls) {
487
- for (const tc of chunk.tool_calls) {
488
- const idx = tc.index;
489
- if (!toolCallMap.has(idx)) {
490
- toolCallMap.set(idx, {
491
- id: tc.id,
492
- type: "function",
493
- function: {
494
- name: tc.function?.name ?? "",
495
- arguments: ""
496
- }
497
- });
498
- }
499
- const call = toolCallMap.get(idx);
500
- if (tc.id) {
501
- call.id = tc.id;
502
- }
503
- if (tc.function?.name) {
504
- call.function.name = tc.function.name;
505
- }
506
- if (tc.function?.arguments) {
507
- call.function.arguments += tc.function.arguments;
508
- }
509
- }
510
- }
511
- }, (e) => {
512
- throw e;
513
- }, controller);
514
- assistantMessage.tool_calls = Array.from(toolCallMap.values());
515
- if (assistantMessage.tool_calls.length > 0) {
516
- assistantMessage.content = null;
517
- }
518
- workMessages.push(assistantMessage);
519
- if (!assistantMessage.tool_calls || assistantMessage.tool_calls.length === 0) {
520
- this.end_to_res(res);
521
- return res;
522
- }
523
- for (const call of assistantMessage.tool_calls) {
524
- let args = {};
525
- try {
526
- args = JSON.parse(call.function.arguments || "{}");
527
- }
528
- catch (e) {
529
- throw new Error(`工具参数 JSON 解析失败: ${call.function.arguments}`);
530
- }
531
- const toolName = call.function.name;
532
- await this.permission_test(token, user, toolName, args);
533
- try {
534
- let result = await ai_agent_tools_1.Ai_agentTools[toolName](args);
535
- let resultStr = String(result);
536
- if (resultStr.length > 5000) {
537
- resultStr = resultStr.slice(0, 4000) + "\n...(内容过长已截断)";
538
- }
539
- workMessages.push({
540
- role: "tool",
541
- tool_call_id: call.id,
542
- content: resultStr
543
- });
544
- }
545
- catch (e) {
546
- if (env.tool_error_max-- <= 0)
547
- throw e;
548
- workMessages.push({
549
- role: "tool",
550
- tool_call_id: call.id,
551
- content: String(e)
552
- });
553
- }
554
- }
555
- }
556
- this.write_to_res(res, "超出最大理解语义次数");
557
- this.end_to_res(res);
558
- return res;
559
- }
560
- write_to_res(res, text) {
561
- res.write(`event: message\ndata: ${JSON.stringify(text)}\n\n`);
562
- }
563
- end_to_res(res) {
564
- res.write(`data: [DONE]\n\n`);
565
- res.end();
566
- }
567
- async flow_call(res, work_messages) {
568
- const finalMessages = this.trimMessages(work_messages);
569
- finalMessages.push({
570
- role: 'system',
571
- content: '现在基于以上结果对用户进行简洁的回答,并使用markdown的格式。'
572
- });
573
- let json_body = {
574
- model: MODEL,
575
- messages: finalMessages,
576
- stream: true,
577
- temperature: 0.7
578
- };
579
- try {
580
- if (config.json_params) {
581
- const obj = JSON.parse(config.json_params);
582
- for (const key of Object.keys(obj)) {
583
- json_body[key] = obj[key];
584
- }
585
- }
586
- }
587
- catch (err) {
588
- console.log(err);
589
- }
590
- const aiResponse = await fetch(BASE_URL, {
591
- method: "POST",
592
- headers: {
593
- "Content-Type": "application/json",
594
- "Authorization": `Bearer ${API_KEY}`
595
- },
596
- body: JSON.stringify(json_body)
597
- });
598
- if (!aiResponse.ok || !aiResponse.body) {
599
- res.write(`event: error\ndata: ${aiResponse.status === 413
600
- ? "请求内容过大(413)"
601
- : "AI 请求失败"}\n\n`);
602
- res.end();
603
- return res;
604
- }
605
- if (!json_body.stream) {
606
- const r = await aiResponse.json();
607
- const msg = r.choices[0].message;
608
- this.write_to_res(res, msg.content);
609
- res.end();
610
- return res;
611
- }
612
- const nodeStream = stream_1.Readable.fromWeb(aiResponse.body);
613
- res.on("close", () => {
614
- nodeStream.destroy();
615
- });
616
- nodeStream.pipe(res);
617
- return nodeStream;
618
- }
619
- async callLLSync(messages, call_data, error_call, controller) {
620
- const tools = [...ai_agent_constant_1.ai_tools];
621
- if (this.is_use_local_data()) {
622
- tools.push(ai_agent_constant_1.ai_tools_search_docs);
623
- }
624
- const json_body = {
625
- messages,
626
- tools: tools,
627
- temperature: 0.2,
628
- model: MODEL,
629
- };
630
- try {
631
- if (config.json_params) {
632
- const obj = JSON.parse(config.json_params);
633
- for (const key of Object.keys(obj)) {
634
- json_body[key] = obj[key];
635
- }
636
- }
637
- }
638
- catch (err) {
639
- console.log(err);
640
- }
641
- json_body.tools = tools;
642
- json_body.messages = messages;
643
- const res = await fetch(BASE_URL, {
644
- method: "POST",
645
- headers: {
646
- "Content-Type": "application/json",
647
- "Authorization": `Bearer ${API_KEY}`
648
- },
649
- body: JSON.stringify(json_body),
650
- signal: controller.signal
651
- });
652
- const contentType = res.headers.get("content-type") || "";
653
- const isSSE = contentType.includes("text/event-stream");
654
- if (isSSE) {
655
- const reader = res.body.getReader();
656
- const decoder = new TextDecoder();
657
- let buf = '';
658
- while (true) {
659
- const { done, value } = await reader.read();
660
- if (done)
661
- break;
662
- buf += decoder.decode(value, { stream: true });
663
- let parts = buf.split(/\r?\n\r?\n/);
664
- buf = parts.pop();
665
- for (const part of parts) {
666
- if (!part.trim())
667
- continue;
668
- const lines = part.split('\n');
669
- let dataLines = [];
670
- for (const line of lines) {
671
- if (line.startsWith('data:')) {
672
- dataLines.push(line.replace(/^data:\s*/, ''));
673
- }
674
- }
675
- const dataStr = dataLines.join('\n');
676
- if (dataStr.trim() === '[DONE]') {
677
- return;
678
- }
679
- try {
680
- const json = JSON.parse(dataStr);
681
- const message = json.choices?.[0]?.delta ?? json.choices?.[0]?.message;
682
- if (message)
683
- call_data(message);
684
- }
685
- catch (e) {
686
- if (e.name === "AbortError") {
687
- return;
688
- }
689
- error_call(e);
690
- return;
691
- }
692
- }
693
- }
694
- return;
695
- }
696
- if (!res.ok) {
697
- const text = await res.text();
698
- try {
699
- const json = JSON.parse(text);
700
- error_call((json.message || json.error?.message || text));
701
- }
702
- catch {
703
- error_call(text);
704
- }
705
- return;
706
- }
707
- call_data((await res.json()).choices[0].message);
708
- }
709
- }
710
- exports.Ai_agentService = Ai_agentService;
711
- exports.ai_agentService = new Ai_agentService();
712
- config_1.ServerEvent.on("start", (data) => {
713
- exports.ai_agentService.init().catch(console.error);
714
- });
715
- //# sourceMappingURL=ai_agent.service.js.map