filecat 5.32.2 → 5.33.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 (348) hide show
  1. package/README.md +4 -0
  2. package/build/dist/{377.4047ae540e74884d3ff5.js → 377.23d2a705c084c416bf92.js} +2 -2
  3. package/build/dist/{943.d055d58eee66f1ab0414.js → 943.88236423e67278d66648.js} +2 -2
  4. package/build/dist/index.html +1 -1
  5. package/build/dist/{main.494c8bcf15274aeca600.js → main.134bde9aaf8912fe8244.js} +2 -2
  6. package/build/jieba_rs_wasm_bg.wasm +0 -0
  7. package/build/main.js +2 -0
  8. package/build/main.js.LICENSE.txt +445 -0
  9. package/build/unrar.wasm +0 -0
  10. package/package.json +1 -1
  11. package/build/server/common/DataUtil.js +0 -7
  12. package/build/server/common/DataUtil.js.map +0 -1
  13. package/build/server/common/FileMenuType.js +0 -48
  14. package/build/server/common/FileMenuType.js.map +0 -1
  15. package/build/server/common/ListUtil.js +0 -224
  16. package/build/server/common/ListUtil.js.map +0 -1
  17. package/build/server/common/Result.pojo.js +0 -15
  18. package/build/server/common/Result.pojo.js.map +0 -1
  19. package/build/server/common/RouterConfig.js +0 -20
  20. package/build/server/common/RouterConfig.js.map +0 -1
  21. package/build/server/common/StringUtil.js +0 -223
  22. package/build/server/common/StringUtil.js.map +0 -1
  23. package/build/server/common/ValueUtil.js +0 -70
  24. package/build/server/common/ValueUtil.js.map +0 -1
  25. package/build/server/common/common.util.js +0 -32
  26. package/build/server/common/common.util.js.map +0 -1
  27. package/build/server/common/event.js +0 -48
  28. package/build/server/common/event.js.map +0 -1
  29. package/build/server/common/file.pojo.js +0 -65
  30. package/build/server/common/file.pojo.js.map +0 -1
  31. package/build/server/common/frame/WsData.js +0 -127
  32. package/build/server/common/frame/WsData.js.map +0 -1
  33. package/build/server/common/frame/constant.js +0 -6
  34. package/build/server/common/frame/constant.js.map +0 -1
  35. package/build/server/common/frame/data.encode.js +0 -115
  36. package/build/server/common/frame/data.encode.js.map +0 -1
  37. package/build/server/common/frame/router.js +0 -25
  38. package/build/server/common/frame/router.js.map +0 -1
  39. package/build/server/common/frame/ws.client.js +0 -173
  40. package/build/server/common/frame/ws.client.js.map +0 -1
  41. package/build/server/common/frame/ws.server.js +0 -145
  42. package/build/server/common/frame/ws.server.js.map +0 -1
  43. package/build/server/common/fun.util.js +0 -65
  44. package/build/server/common/fun.util.js.map +0 -1
  45. package/build/server/common/node/Env.js +0 -198
  46. package/build/server/common/node/Env.js.map +0 -1
  47. package/build/server/common/node/childProcessUtil.js +0 -209
  48. package/build/server/common/node/childProcessUtil.js.map +0 -1
  49. package/build/server/common/node/findPort.js +0 -38
  50. package/build/server/common/node/findPort.js.map +0 -1
  51. package/build/server/common/node/http.js +0 -38
  52. package/build/server/common/node/http.js.map +0 -1
  53. package/build/server/common/node/install.js +0 -132
  54. package/build/server/common/node/install.js.map +0 -1
  55. package/build/server/common/node/value.util.js +0 -8
  56. package/build/server/common/node/value.util.js.map +0 -1
  57. package/build/server/common/path_util.js +0 -86
  58. package/build/server/common/path_util.js.map +0 -1
  59. package/build/server/common/req/common.pojo.js +0 -42
  60. package/build/server/common/req/common.pojo.js.map +0 -1
  61. package/build/server/common/req/customerRouter.pojo.js +0 -9
  62. package/build/server/common/req/customerRouter.pojo.js.map +0 -1
  63. package/build/server/common/req/data.pojo.js +0 -3
  64. package/build/server/common/req/data.pojo.js.map +0 -1
  65. package/build/server/common/req/ddns.pojo.js +0 -39
  66. package/build/server/common/req/ddns.pojo.js.map +0 -1
  67. package/build/server/common/req/file.req.js +0 -49
  68. package/build/server/common/req/file.req.js.map +0 -1
  69. package/build/server/common/req/http_controller_router.js +0 -13
  70. package/build/server/common/req/http_controller_router.js.map +0 -1
  71. package/build/server/common/req/net.pojo.js +0 -71
  72. package/build/server/common/req/net.pojo.js.map +0 -1
  73. package/build/server/common/req/setting.req.js +0 -140
  74. package/build/server/common/req/setting.req.js.map +0 -1
  75. package/build/server/common/req/ssh.pojo.js +0 -13
  76. package/build/server/common/req/ssh.pojo.js.map +0 -1
  77. package/build/server/common/req/sys.pojo.js +0 -29
  78. package/build/server/common/req/sys.pojo.js.map +0 -1
  79. package/build/server/common/req/user.req.js +0 -117
  80. package/build/server/common/req/user.req.js.map +0 -1
  81. package/build/server/common/word_detection_js.js +0 -142
  82. package/build/server/common/word_detection_js.js.map +0 -1
  83. package/build/server/main/domain/ai_agent/ai_agent.constant.js +0 -142
  84. package/build/server/main/domain/ai_agent/ai_agent.constant.js.map +0 -1
  85. package/build/server/main/domain/ai_agent/ai_agent.controller.js +0 -136
  86. package/build/server/main/domain/ai_agent/ai_agent.controller.js.map +0 -1
  87. package/build/server/main/domain/ai_agent/ai_agent.service.js +0 -715
  88. package/build/server/main/domain/ai_agent/ai_agent.service.js.map +0 -1
  89. package/build/server/main/domain/ai_agent/ai_agent.tools.js +0 -79
  90. package/build/server/main/domain/ai_agent/ai_agent.tools.js.map +0 -1
  91. package/build/server/main/domain/ai_agent/ai_agent.worker.js +0 -169
  92. package/build/server/main/domain/ai_agent/ai_agent.worker.js.map +0 -1
  93. package/build/server/main/domain/bin/bin.file.util.js +0 -109
  94. package/build/server/main/domain/bin/bin.file.util.js.map +0 -1
  95. package/build/server/main/domain/bin/bin.js +0 -147
  96. package/build/server/main/domain/bin/bin.js.map +0 -1
  97. package/build/server/main/domain/bin/get_bin_dependency.js +0 -36
  98. package/build/server/main/domain/bin/get_bin_dependency.js.map +0 -1
  99. package/build/server/main/domain/crypto/crypto.controller.js +0 -50
  100. package/build/server/main/domain/crypto/crypto.controller.js.map +0 -1
  101. package/build/server/main/domain/crypto/crypto.service.js +0 -112
  102. package/build/server/main/domain/crypto/crypto.service.js.map +0 -1
  103. package/build/server/main/domain/data/DataUtil.js +0 -127
  104. package/build/server/main/domain/data/DataUtil.js.map +0 -1
  105. package/build/server/main/domain/data/basedata/base_data_util.js +0 -214
  106. package/build/server/main/domain/data/basedata/base_data_util.js.map +0 -1
  107. package/build/server/main/domain/data/data_type.js +0 -92
  108. package/build/server/main/domain/data/data_type.js.map +0 -1
  109. package/build/server/main/domain/ddns/ddns.ali.server.js +0 -77
  110. package/build/server/main/domain/ddns/ddns.ali.server.js.map +0 -1
  111. package/build/server/main/domain/ddns/ddns.controller.js +0 -88
  112. package/build/server/main/domain/ddns/ddns.controller.js.map +0 -1
  113. package/build/server/main/domain/ddns/ddns.dnspod.service.js +0 -102
  114. package/build/server/main/domain/ddns/ddns.dnspod.service.js.map +0 -1
  115. package/build/server/main/domain/ddns/ddns.pre.js +0 -104
  116. package/build/server/main/domain/ddns/ddns.pre.js.map +0 -1
  117. package/build/server/main/domain/ddns/ddns.service.js +0 -161
  118. package/build/server/main/domain/ddns/ddns.service.js.map +0 -1
  119. package/build/server/main/domain/ddns/ddns.tengxun.service.js +0 -46
  120. package/build/server/main/domain/ddns/ddns.tengxun.service.js.map +0 -1
  121. package/build/server/main/domain/ddns/tx/abstract_client.js +0 -247
  122. package/build/server/main/domain/ddns/tx/abstract_client.js.map +0 -1
  123. package/build/server/main/domain/ddns/tx/dnspod_client.js +0 -38
  124. package/build/server/main/domain/ddns/tx/dnspod_client.js.map +0 -1
  125. package/build/server/main/domain/ddns/tx/dnspod_models.js +0 -3
  126. package/build/server/main/domain/ddns/tx/dnspod_models.js.map +0 -1
  127. package/build/server/main/domain/ddns/tx/exception/tencent_cloud_sdk_exception.js +0 -38
  128. package/build/server/main/domain/ddns/tx/exception/tencent_cloud_sdk_exception.js.map +0 -1
  129. package/build/server/main/domain/ddns/tx/http/fetch.js +0 -3
  130. package/build/server/main/domain/ddns/tx/http/fetch.js.map +0 -1
  131. package/build/server/main/domain/ddns/tx/http/http_connection.js +0 -181
  132. package/build/server/main/domain/ddns/tx/http/http_connection.js.map +0 -1
  133. package/build/server/main/domain/ddns/tx/interface.js +0 -5
  134. package/build/server/main/domain/ddns/tx/interface.js.map +0 -1
  135. package/build/server/main/domain/ddns/tx/sdk_version.js +0 -5
  136. package/build/server/main/domain/ddns/tx/sdk_version.js.map +0 -1
  137. package/build/server/main/domain/ddns/tx/sign.js +0 -142
  138. package/build/server/main/domain/ddns/tx/sign.js.map +0 -1
  139. package/build/server/main/domain/ddns/tx/sse_response_model.js +0 -89
  140. package/build/server/main/domain/ddns/tx/sse_response_model.js.map +0 -1
  141. package/build/server/main/domain/file/FileUtil.js +0 -230
  142. package/build/server/main/domain/file/FileUtil.js.map +0 -1
  143. package/build/server/main/domain/file/file.compress.js +0 -246
  144. package/build/server/main/domain/file/file.compress.js.map +0 -1
  145. package/build/server/main/domain/file/file.controller.js +0 -450
  146. package/build/server/main/domain/file/file.controller.js.map +0 -1
  147. package/build/server/main/domain/file/file.service.js +0 -1276
  148. package/build/server/main/domain/file/file.service.js.map +0 -1
  149. package/build/server/main/domain/file/search/file.search.js +0 -78
  150. package/build/server/main/domain/file/search/file.search.js.map +0 -1
  151. package/build/server/main/domain/file/search/file.search.worker.js +0 -107
  152. package/build/server/main/domain/file/search/file.search.worker.js.map +0 -1
  153. package/build/server/main/domain/file/search/file.type.js +0 -3
  154. package/build/server/main/domain/file/search/file.type.js.map +0 -1
  155. package/build/server/main/domain/file/workflow/workflow.process.js +0 -100
  156. package/build/server/main/domain/file/workflow/workflow.process.js.map +0 -1
  157. package/build/server/main/domain/file/workflow/workflow.service.js +0 -659
  158. package/build/server/main/domain/file/workflow/workflow.service.js.map +0 -1
  159. package/build/server/main/domain/file/workflow/workflow.util.js +0 -111
  160. package/build/server/main/domain/file/workflow/workflow.util.js.map +0 -1
  161. package/build/server/main/domain/navindex/navindex.controller.js +0 -73
  162. package/build/server/main/domain/navindex/navindex.controller.js.map +0 -1
  163. package/build/server/main/domain/net/net.controller.js +0 -318
  164. package/build/server/main/domain/net/net.controller.js.map +0 -1
  165. package/build/server/main/domain/net/net.datautil.js +0 -8
  166. package/build/server/main/domain/net/net.datautil.js.map +0 -1
  167. package/build/server/main/domain/net/net.service.js +0 -627
  168. package/build/server/main/domain/net/net.service.js.map +0 -1
  169. package/build/server/main/domain/net/tcp.forward.client.service.js +0 -223
  170. package/build/server/main/domain/net/tcp.forward.client.service.js.map +0 -1
  171. package/build/server/main/domain/net/tcp.forward.controller.js +0 -482
  172. package/build/server/main/domain/net/tcp.forward.controller.js.map +0 -1
  173. package/build/server/main/domain/net/tcp.forward.server.service.js +0 -407
  174. package/build/server/main/domain/net/tcp.forward.server.service.js.map +0 -1
  175. package/build/server/main/domain/net/type.js +0 -3
  176. package/build/server/main/domain/net/type.js.map +0 -1
  177. package/build/server/main/domain/net/util/NetClientUtil.js +0 -76
  178. package/build/server/main/domain/net/util/NetClientUtil.js.map +0 -1
  179. package/build/server/main/domain/net/util/NetServerUtil.js +0 -128
  180. package/build/server/main/domain/net/util/NetServerUtil.js.map +0 -1
  181. package/build/server/main/domain/net/util/NetUtil.js +0 -187
  182. package/build/server/main/domain/net/util/NetUtil.js.map +0 -1
  183. package/build/server/main/domain/net/util/tcp.client.js +0 -211
  184. package/build/server/main/domain/net/util/tcp.client.js.map +0 -1
  185. package/build/server/main/domain/net/util/tcp_stream_util.js +0 -69
  186. package/build/server/main/domain/net/util/tcp_stream_util.js.map +0 -1
  187. package/build/server/main/domain/net/util/type.js +0 -3
  188. package/build/server/main/domain/net/util/type.js.map +0 -1
  189. package/build/server/main/domain/net/virtual/tcp_proxy.js +0 -125
  190. package/build/server/main/domain/net/virtual/tcp_proxy.js.map +0 -1
  191. package/build/server/main/domain/net/virtual/virtual.client.service.js +0 -402
  192. package/build/server/main/domain/net/virtual/virtual.client.service.js.map +0 -1
  193. package/build/server/main/domain/net/virtual/virtual.controller.js +0 -211
  194. package/build/server/main/domain/net/virtual/virtual.controller.js.map +0 -1
  195. package/build/server/main/domain/net/virtual/virtual.server.service.js +0 -72
  196. package/build/server/main/domain/net/virtual/virtual.server.service.js.map +0 -1
  197. package/build/server/main/domain/pre/lifeRecordService.js +0 -79
  198. package/build/server/main/domain/pre/lifeRecordService.js.map +0 -1
  199. package/build/server/main/domain/rdp/lib/asn1/ber.js +0 -66
  200. package/build/server/main/domain/rdp/lib/asn1/ber.js.map +0 -1
  201. package/build/server/main/domain/rdp/lib/asn1/index.js +0 -9
  202. package/build/server/main/domain/rdp/lib/asn1/index.js.map +0 -1
  203. package/build/server/main/domain/rdp/lib/asn1/spec.js +0 -56
  204. package/build/server/main/domain/rdp/lib/asn1/spec.js.map +0 -1
  205. package/build/server/main/domain/rdp/lib/asn1/univ.js +0 -315
  206. package/build/server/main/domain/rdp/lib/asn1/univ.js.map +0 -1
  207. package/build/server/main/domain/rdp/lib/core/error.js +0 -25
  208. package/build/server/main/domain/rdp/lib/core/error.js.map +0 -1
  209. package/build/server/main/domain/rdp/lib/core/index.js +0 -13
  210. package/build/server/main/domain/rdp/lib/core/index.js.map +0 -1
  211. package/build/server/main/domain/rdp/lib/core/layer.js +0 -135
  212. package/build/server/main/domain/rdp/lib/core/layer.js.map +0 -1
  213. package/build/server/main/domain/rdp/lib/core/log.js +0 -25
  214. package/build/server/main/domain/rdp/lib/core/log.js.map +0 -1
  215. package/build/server/main/domain/rdp/lib/core/rle.js +0 -22699
  216. package/build/server/main/domain/rdp/lib/core/rle.js.map +0 -1
  217. package/build/server/main/domain/rdp/lib/core/type.js +0 -245
  218. package/build/server/main/domain/rdp/lib/core/type.js.map +0 -1
  219. package/build/server/main/domain/rdp/lib/index.js +0 -6
  220. package/build/server/main/domain/rdp/lib/index.js.map +0 -1
  221. package/build/server/main/domain/rdp/lib/protocol/cert.js +0 -115
  222. package/build/server/main/domain/rdp/lib/protocol/cert.js.map +0 -1
  223. package/build/server/main/domain/rdp/lib/protocol/index.js +0 -11
  224. package/build/server/main/domain/rdp/lib/protocol/index.js.map +0 -1
  225. package/build/server/main/domain/rdp/lib/protocol/nla.js +0 -549
  226. package/build/server/main/domain/rdp/lib/protocol/nla.js.map +0 -1
  227. package/build/server/main/domain/rdp/lib/protocol/pdu/caps.js +0 -486
  228. package/build/server/main/domain/rdp/lib/protocol/pdu/caps.js.map +0 -1
  229. package/build/server/main/domain/rdp/lib/protocol/pdu/cliprdr.js +0 -167
  230. package/build/server/main/domain/rdp/lib/protocol/pdu/cliprdr.js.map +0 -1
  231. package/build/server/main/domain/rdp/lib/protocol/pdu/data.js +0 -876
  232. package/build/server/main/domain/rdp/lib/protocol/pdu/data.js.map +0 -1
  233. package/build/server/main/domain/rdp/lib/protocol/pdu/global.js +0 -260
  234. package/build/server/main/domain/rdp/lib/protocol/pdu/global.js.map +0 -1
  235. package/build/server/main/domain/rdp/lib/protocol/pdu/index.js +0 -13
  236. package/build/server/main/domain/rdp/lib/protocol/pdu/index.js.map +0 -1
  237. package/build/server/main/domain/rdp/lib/protocol/pdu/lic.js +0 -199
  238. package/build/server/main/domain/rdp/lib/protocol/pdu/lic.js.map +0 -1
  239. package/build/server/main/domain/rdp/lib/protocol/pdu/sec.js +0 -333
  240. package/build/server/main/domain/rdp/lib/protocol/pdu/sec.js.map +0 -1
  241. package/build/server/main/domain/rdp/lib/protocol/rdp.js +0 -255
  242. package/build/server/main/domain/rdp/lib/protocol/rdp.js.map +0 -1
  243. package/build/server/main/domain/rdp/lib/protocol/t125/gcc.js +0 -354
  244. package/build/server/main/domain/rdp/lib/protocol/t125/gcc.js.map +0 -1
  245. package/build/server/main/domain/rdp/lib/protocol/t125/index.js +0 -7
  246. package/build/server/main/domain/rdp/lib/protocol/t125/index.js.map +0 -1
  247. package/build/server/main/domain/rdp/lib/protocol/t125/mcs.js +0 -318
  248. package/build/server/main/domain/rdp/lib/protocol/t125/mcs.js.map +0 -1
  249. package/build/server/main/domain/rdp/lib/protocol/t125/per.js +0 -188
  250. package/build/server/main/domain/rdp/lib/protocol/t125/per.js.map +0 -1
  251. package/build/server/main/domain/rdp/lib/protocol/tpkt.js +0 -94
  252. package/build/server/main/domain/rdp/lib/protocol/tpkt.js.map +0 -1
  253. package/build/server/main/domain/rdp/lib/protocol/x224.js +0 -207
  254. package/build/server/main/domain/rdp/lib/protocol/x224.js.map +0 -1
  255. package/build/server/main/domain/rdp/lib/security/index.js +0 -7
  256. package/build/server/main/domain/rdp/lib/security/index.js.map +0 -1
  257. package/build/server/main/domain/rdp/lib/security/jsbn.js +0 -1372
  258. package/build/server/main/domain/rdp/lib/security/jsbn.js.map +0 -1
  259. package/build/server/main/domain/rdp/lib/security/md4.js +0 -401
  260. package/build/server/main/domain/rdp/lib/security/md4.js.map +0 -1
  261. package/build/server/main/domain/rdp/lib/security/rc4.js +0 -45
  262. package/build/server/main/domain/rdp/lib/security/rc4.js.map +0 -1
  263. package/build/server/main/domain/rdp/lib/security/rsa.js +0 -15
  264. package/build/server/main/domain/rdp/lib/security/rsa.js.map +0 -1
  265. package/build/server/main/domain/rdp/lib/security/x509.js +0 -106
  266. package/build/server/main/domain/rdp/lib/security/x509.js.map +0 -1
  267. package/build/server/main/domain/rdp/rdp.controller.js +0 -116
  268. package/build/server/main/domain/rdp/rdp.controller.js.map +0 -1
  269. package/build/server/main/domain/rdp/rdp.service.js +0 -117
  270. package/build/server/main/domain/rdp/rdp.service.js.map +0 -1
  271. package/build/server/main/domain/setting/setting.controller.js +0 -621
  272. package/build/server/main/domain/setting/setting.controller.js.map +0 -1
  273. package/build/server/main/domain/setting/setting.prefile.js +0 -69
  274. package/build/server/main/domain/setting/setting.prefile.js.map +0 -1
  275. package/build/server/main/domain/setting/setting.service.js +0 -763
  276. package/build/server/main/domain/setting/setting.service.js.map +0 -1
  277. package/build/server/main/domain/shell/shell.controller.js +0 -92
  278. package/build/server/main/domain/shell/shell.controller.js.map +0 -1
  279. package/build/server/main/domain/shell/shell.service.js +0 -448
  280. package/build/server/main/domain/shell/shell.service.js.map +0 -1
  281. package/build/server/main/domain/shell/util.js +0 -101
  282. package/build/server/main/domain/shell/util.js.map +0 -1
  283. package/build/server/main/domain/ssh/ssh.controller.js +0 -203
  284. package/build/server/main/domain/ssh/ssh.controller.js.map +0 -1
  285. package/build/server/main/domain/ssh/ssh.service.js +0 -238
  286. package/build/server/main/domain/ssh/ssh.service.js.map +0 -1
  287. package/build/server/main/domain/ssh/ssh.ssh2.js +0 -217
  288. package/build/server/main/domain/ssh/ssh.ssh2.js.map +0 -1
  289. package/build/server/main/domain/sys/sys.controller.js +0 -374
  290. package/build/server/main/domain/sys/sys.controller.js.map +0 -1
  291. package/build/server/main/domain/sys/sys.docker.service.js +0 -339
  292. package/build/server/main/domain/sys/sys.docker.service.js.map +0 -1
  293. package/build/server/main/domain/sys/sys.process.service.js +0 -218
  294. package/build/server/main/domain/sys/sys.process.service.js.map +0 -1
  295. package/build/server/main/domain/sys/sys.service.js +0 -85
  296. package/build/server/main/domain/sys/sys.service.js.map +0 -1
  297. package/build/server/main/domain/sys/sys.sys.service.js +0 -206
  298. package/build/server/main/domain/sys/sys.sys.service.js.map +0 -1
  299. package/build/server/main/domain/sys/sys.systemd.service.js +0 -276
  300. package/build/server/main/domain/sys/sys.systemd.service.js.map +0 -1
  301. package/build/server/main/domain/sys/sys.utl.js +0 -42
  302. package/build/server/main/domain/sys/sys.utl.js.map +0 -1
  303. package/build/server/main/domain/user/user.controller.js +0 -277
  304. package/build/server/main/domain/user/user.controller.js.map +0 -1
  305. package/build/server/main/domain/user/user.hash.js +0 -8
  306. package/build/server/main/domain/user/user.hash.js.map +0 -1
  307. package/build/server/main/domain/user/user.service.js +0 -584
  308. package/build/server/main/domain/user/user.service.js.map +0 -1
  309. package/build/server/main/domain/video/video.controller.js +0 -71
  310. package/build/server/main/domain/video/video.controller.js.map +0 -1
  311. package/build/server/main/domain/video/video.service.js +0 -45
  312. package/build/server/main/domain/video/video.service.js.map +0 -1
  313. package/build/server/main/main.js +0 -171
  314. package/build/server/main/main.js.map +0 -1
  315. package/build/server/main/other/Result.js +0 -25
  316. package/build/server/main/other/Result.js.map +0 -1
  317. package/build/server/main/other/cache.js +0 -50
  318. package/build/server/main/other/cache.js.map +0 -1
  319. package/build/server/main/other/config.js +0 -6
  320. package/build/server/main/other/config.js.map +0 -1
  321. package/build/server/main/other/middleware/AuthMiddleware.js +0 -101
  322. package/build/server/main/other/middleware/AuthMiddleware.js.map +0 -1
  323. package/build/server/main/other/middleware/GlobalErrorHandler.js +0 -23
  324. package/build/server/main/other/middleware/GlobalErrorHandler.js.map +0 -1
  325. package/build/server/main/other/middleware/decorator.js +0 -15
  326. package/build/server/main/other/middleware/decorator.js.map +0 -1
  327. package/build/server/main/other/middleware/redirect.js +0 -20
  328. package/build/server/main/other/middleware/redirect.js.map +0 -1
  329. package/build/server/main/server.js +0 -22
  330. package/build/server/main/server.js.map +0 -1
  331. package/build/server/main/threads/filecat/threads.filecat.js +0 -16
  332. package/build/server/main/threads/filecat/threads.filecat.js.map +0 -1
  333. package/build/server/main/threads/filecat/threads.work.filecat.js +0 -7
  334. package/build/server/main/threads/filecat/threads.work.filecat.js.map +0 -1
  335. package/build/server/main/threads/threads.main.js +0 -224
  336. package/build/server/main/threads/threads.main.js.map +0 -1
  337. package/build/server/main/threads/threads.type.js +0 -19
  338. package/build/server/main/threads/threads.type.js.map +0 -1
  339. package/build/server/main/threads/threads.work.js +0 -52
  340. package/build/server/main/threads/threads.work.js.map +0 -1
  341. package/build/server/main/watch.js +0 -187
  342. package/build/server/main/watch.js.map +0 -1
  343. package/build/server/tsconfig.tsbuildinfo +0 -1
  344. package/build/server/web/project/util/noty.js +0 -45
  345. package/build/server/web/project/util/noty.js.map +0 -1
  346. /package/build/dist/{377.4047ae540e74884d3ff5.js.LICENSE.txt → 377.23d2a705c084c416bf92.js.LICENSE.txt} +0 -0
  347. /package/build/dist/{943.d055d58eee66f1ab0414.js.LICENSE.txt → 943.88236423e67278d66648.js.LICENSE.txt} +0 -0
  348. /package/build/dist/{main.494c8bcf15274aeca600.js.LICENSE.txt → main.134bde9aaf8912fe8244.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