@zqagent/core 0.2.16 → 0.3.6

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 (238) hide show
  1. package/README.md +1 -1
  2. package/README.oss.en.md +15 -2
  3. package/README.oss.md +18 -2
  4. package/README.oss.zh-TW.md +13 -2
  5. package/dist/McpClient-CEQBUPuC.d.cts +145 -0
  6. package/dist/McpClient-CEQBUPuC.d.ts +145 -0
  7. package/dist/{ToolRegistry-C3pTFiaJ.d.cts → ToolRegistry-Cy0fQxrb.d.ts} +2 -111
  8. package/dist/{ToolRegistry-C3pTFiaJ.d.ts → ToolRegistry-DouDvn9E.d.cts} +2 -111
  9. package/dist/{explore-RtZtb-V6.d.ts → TurnEngine-BPKhWuSI.d.cts} +108 -73
  10. package/dist/{explore-BgRhj6SP.d.cts → TurnEngine-DtGEuVLT.d.ts} +108 -73
  11. package/dist/conflictGuard-BBOOIxxK.d.cts +42 -0
  12. package/dist/conflictGuard-BBOOIxxK.d.ts +42 -0
  13. package/dist/index.cjs +5477 -1140
  14. package/dist/index.cjs.map +1 -1
  15. package/dist/index.d.cts +577 -195
  16. package/dist/index.d.ts +577 -195
  17. package/dist/index.js +5305 -1002
  18. package/dist/index.js.map +1 -1
  19. package/dist/internal/crypto/secrets.cjs +25 -0
  20. package/dist/internal/crypto/secrets.cjs.map +1 -0
  21. package/dist/internal/crypto/secrets.d.cts +2 -0
  22. package/dist/internal/crypto/secrets.d.ts +2 -0
  23. package/dist/internal/crypto/secrets.js +3 -0
  24. package/dist/internal/crypto/secrets.js.map +1 -0
  25. package/dist/internal/engine/FileLogHook.cjs +179 -0
  26. package/dist/internal/engine/FileLogHook.cjs.map +1 -0
  27. package/dist/internal/engine/FileLogHook.d.cts +67 -0
  28. package/dist/internal/engine/FileLogHook.d.ts +67 -0
  29. package/dist/internal/engine/FileLogHook.js +144 -0
  30. package/dist/internal/engine/FileLogHook.js.map +1 -0
  31. package/dist/internal/engine/approvalView.cjs +25 -0
  32. package/dist/internal/engine/approvalView.cjs.map +1 -0
  33. package/dist/internal/engine/approvalView.d.cts +1 -0
  34. package/dist/internal/engine/approvalView.d.ts +1 -0
  35. package/dist/internal/engine/approvalView.js +3 -0
  36. package/dist/internal/engine/approvalView.js.map +1 -0
  37. package/dist/internal/engine/limits.cjs +59 -0
  38. package/dist/internal/engine/limits.cjs.map +1 -0
  39. package/dist/internal/engine/limits.d.cts +32 -0
  40. package/dist/internal/engine/limits.d.ts +32 -0
  41. package/dist/internal/engine/limits.js +31 -0
  42. package/dist/internal/engine/limits.js.map +1 -0
  43. package/dist/internal/engine/sessionNaming.cjs +47 -0
  44. package/dist/internal/engine/sessionNaming.cjs.map +1 -0
  45. package/dist/internal/engine/sessionNaming.d.cts +25 -0
  46. package/dist/internal/engine/sessionNaming.d.ts +25 -0
  47. package/dist/internal/engine/sessionNaming.js +20 -0
  48. package/dist/internal/engine/sessionNaming.js.map +1 -0
  49. package/dist/internal/llmConfig.cjs +561 -0
  50. package/dist/internal/llmConfig.cjs.map +1 -0
  51. package/dist/internal/llmConfig.d.cts +75 -0
  52. package/dist/internal/llmConfig.d.ts +75 -0
  53. package/dist/internal/llmConfig.js +535 -0
  54. package/dist/internal/llmConfig.js.map +1 -0
  55. package/dist/internal/mcp/builtin/index.cjs +685 -0
  56. package/dist/internal/mcp/builtin/index.cjs.map +1 -0
  57. package/dist/internal/mcp/builtin/index.d.cts +21 -0
  58. package/dist/internal/mcp/builtin/index.d.ts +21 -0
  59. package/dist/internal/mcp/builtin/index.js +652 -0
  60. package/dist/internal/mcp/builtin/index.js.map +1 -0
  61. package/dist/internal/mcp/config.cjs +278 -0
  62. package/dist/internal/mcp/config.cjs.map +1 -0
  63. package/dist/internal/mcp/config.d.cts +61 -0
  64. package/dist/internal/mcp/config.d.ts +61 -0
  65. package/dist/internal/mcp/config.js +235 -0
  66. package/dist/internal/mcp/config.js.map +1 -0
  67. package/dist/internal/mcp/presets.cjs +184 -0
  68. package/dist/internal/mcp/presets.cjs.map +1 -0
  69. package/dist/internal/mcp/presets.d.cts +39 -0
  70. package/dist/internal/mcp/presets.d.ts +39 -0
  71. package/dist/internal/mcp/presets.js +158 -0
  72. package/dist/internal/mcp/presets.js.map +1 -0
  73. package/dist/internal/node-name.cjs +45 -0
  74. package/dist/internal/node-name.cjs.map +1 -0
  75. package/dist/internal/node-name.d.cts +3 -0
  76. package/dist/internal/node-name.d.ts +3 -0
  77. package/dist/internal/node-name.js +10 -0
  78. package/dist/internal/node-name.js.map +1 -0
  79. package/dist/internal/paths.cjs +63 -0
  80. package/dist/internal/paths.cjs.map +1 -0
  81. package/dist/internal/paths.d.cts +17 -0
  82. package/dist/internal/paths.d.ts +17 -0
  83. package/dist/internal/paths.js +25 -0
  84. package/dist/internal/paths.js.map +1 -0
  85. package/dist/internal/providers/diagnostics.cjs +288 -0
  86. package/dist/internal/providers/diagnostics.cjs.map +1 -0
  87. package/dist/internal/providers/diagnostics.d.cts +103 -0
  88. package/dist/internal/providers/diagnostics.d.ts +103 -0
  89. package/dist/internal/providers/diagnostics.js +250 -0
  90. package/dist/internal/providers/diagnostics.js.map +1 -0
  91. package/dist/internal/providers/models.cjs +699 -0
  92. package/dist/internal/providers/models.cjs.map +1 -0
  93. package/dist/internal/providers/models.d.cts +136 -0
  94. package/dist/internal/providers/models.d.ts +136 -0
  95. package/dist/internal/providers/models.js +654 -0
  96. package/dist/internal/providers/models.js.map +1 -0
  97. package/dist/internal/terminal.cjs +161 -0
  98. package/dist/internal/terminal.cjs.map +1 -0
  99. package/dist/internal/terminal.d.cts +58 -0
  100. package/dist/internal/terminal.d.ts +58 -0
  101. package/dist/internal/terminal.js +128 -0
  102. package/dist/internal/terminal.js.map +1 -0
  103. package/dist/internal/tools/execAsync.cjs +187 -0
  104. package/dist/internal/tools/execAsync.cjs.map +1 -0
  105. package/dist/internal/tools/execAsync.d.cts +30 -0
  106. package/dist/internal/tools/execAsync.d.ts +30 -0
  107. package/dist/internal/tools/execAsync.js +162 -0
  108. package/dist/internal/tools/execAsync.js.map +1 -0
  109. package/dist/internal/tools/git.cjs +935 -0
  110. package/dist/internal/tools/git.cjs.map +1 -0
  111. package/dist/internal/tools/git.d.cts +206 -0
  112. package/dist/internal/tools/git.d.ts +206 -0
  113. package/dist/internal/tools/git.js +883 -0
  114. package/dist/internal/tools/git.js.map +1 -0
  115. package/dist/internal/tools/pathSafety.cjs +99 -0
  116. package/dist/internal/tools/pathSafety.cjs.map +1 -0
  117. package/dist/internal/tools/pathSafety.d.cts +44 -0
  118. package/dist/internal/tools/pathSafety.d.ts +44 -0
  119. package/dist/internal/tools/pathSafety.js +61 -0
  120. package/dist/internal/tools/pathSafety.js.map +1 -0
  121. package/dist/internal/tools/plan.cjs +146 -0
  122. package/dist/internal/tools/plan.cjs.map +1 -0
  123. package/dist/internal/tools/plan.d.cts +48 -0
  124. package/dist/internal/tools/plan.d.ts +48 -0
  125. package/dist/internal/tools/plan.js +117 -0
  126. package/dist/internal/tools/plan.js.map +1 -0
  127. package/dist/internal/tools/ripgrep.cjs +118 -0
  128. package/dist/internal/tools/ripgrep.cjs.map +1 -0
  129. package/dist/internal/tools/ripgrep.d.cts +6 -0
  130. package/dist/internal/tools/ripgrep.d.ts +6 -0
  131. package/dist/internal/tools/ripgrep.js +89 -0
  132. package/dist/internal/tools/ripgrep.js.map +1 -0
  133. package/dist/internal/tools/sandbox.cjs +253 -0
  134. package/dist/internal/tools/sandbox.cjs.map +1 -0
  135. package/dist/internal/tools/sandbox.d.cts +67 -0
  136. package/dist/internal/tools/sandbox.d.ts +67 -0
  137. package/dist/internal/tools/sandbox.js +213 -0
  138. package/dist/internal/tools/sandbox.js.map +1 -0
  139. package/dist/internal/tools/shell.cjs +771 -0
  140. package/dist/internal/tools/shell.cjs.map +1 -0
  141. package/dist/internal/tools/shell.d.cts +47 -0
  142. package/dist/internal/tools/shell.d.ts +47 -0
  143. package/dist/internal/tools/shell.js +731 -0
  144. package/dist/internal/tools/shell.js.map +1 -0
  145. package/dist/internal/tools/shellRuntime.cjs +220 -0
  146. package/dist/internal/tools/shellRuntime.cjs.map +1 -0
  147. package/dist/internal/tools/shellRuntime.d.cts +67 -0
  148. package/dist/internal/tools/shellRuntime.d.ts +67 -0
  149. package/dist/internal/tools/shellRuntime.js +181 -0
  150. package/dist/internal/tools/shellRuntime.js.map +1 -0
  151. package/dist/internal/update/controller.cjs +1035 -0
  152. package/dist/internal/update/controller.cjs.map +1 -0
  153. package/dist/internal/update/controller.d.cts +150 -0
  154. package/dist/internal/update/controller.d.ts +150 -0
  155. package/dist/internal/update/controller.js +991 -0
  156. package/dist/internal/update/controller.js.map +1 -0
  157. package/dist/internal/update/platform.cjs +234 -0
  158. package/dist/internal/update/platform.cjs.map +1 -0
  159. package/dist/internal/update/platform.d.cts +77 -0
  160. package/dist/internal/update/platform.d.ts +77 -0
  161. package/dist/internal/update/platform.js +184 -0
  162. package/dist/internal/update/platform.js.map +1 -0
  163. package/dist/tools/ask.d.cts +3 -1
  164. package/dist/tools/ask.d.ts +3 -1
  165. package/dist/tools/diff.cjs +17 -6
  166. package/dist/tools/diff.cjs.map +1 -1
  167. package/dist/tools/diff.d.cts +5 -2
  168. package/dist/tools/diff.d.ts +5 -2
  169. package/dist/tools/diff.js +17 -6
  170. package/dist/tools/diff.js.map +1 -1
  171. package/dist/tools/directories.d.cts +3 -1
  172. package/dist/tools/directories.d.ts +3 -1
  173. package/dist/tools/explore.cjs +1778 -204
  174. package/dist/tools/explore.cjs.map +1 -1
  175. package/dist/tools/explore.d.cts +82 -2
  176. package/dist/tools/explore.d.ts +82 -2
  177. package/dist/tools/explore.js +1780 -204
  178. package/dist/tools/explore.js.map +1 -1
  179. package/dist/tools/files.cjs +56 -21
  180. package/dist/tools/files.cjs.map +1 -1
  181. package/dist/tools/files.d.cts +6 -3
  182. package/dist/tools/files.d.ts +6 -3
  183. package/dist/tools/files.js +56 -21
  184. package/dist/tools/files.js.map +1 -1
  185. package/dist/tools/git.cjs +34 -25
  186. package/dist/tools/git.cjs.map +1 -1
  187. package/dist/tools/git.d.cts +4 -204
  188. package/dist/tools/git.d.ts +4 -204
  189. package/dist/tools/git.js +34 -25
  190. package/dist/tools/git.js.map +1 -1
  191. package/dist/tools/media.cjs +280 -3
  192. package/dist/tools/media.cjs.map +1 -1
  193. package/dist/tools/media.d.cts +3 -1
  194. package/dist/tools/media.d.ts +3 -1
  195. package/dist/tools/media.js +278 -1
  196. package/dist/tools/media.js.map +1 -1
  197. package/dist/tools/plan.cjs +62 -0
  198. package/dist/tools/plan.cjs.map +1 -1
  199. package/dist/tools/plan.d.cts +4 -17
  200. package/dist/tools/plan.d.ts +4 -17
  201. package/dist/tools/plan.js +59 -0
  202. package/dist/tools/plan.js.map +1 -1
  203. package/dist/tools/search.cjs +3 -0
  204. package/dist/tools/search.cjs.map +1 -1
  205. package/dist/tools/search.d.cts +3 -1
  206. package/dist/tools/search.d.ts +3 -1
  207. package/dist/tools/search.js +3 -0
  208. package/dist/tools/search.js.map +1 -1
  209. package/dist/tools/shell.cjs +76 -11
  210. package/dist/tools/shell.cjs.map +1 -1
  211. package/dist/tools/shell.d.cts +5 -39
  212. package/dist/tools/shell.d.ts +5 -39
  213. package/dist/tools/shell.js +75 -11
  214. package/dist/tools/shell.js.map +1 -1
  215. package/dist/tools/todo.d.cts +3 -1
  216. package/dist/tools/todo.d.ts +3 -1
  217. package/dist/tools/web.cjs +279 -5
  218. package/dist/tools/web.cjs.map +1 -1
  219. package/dist/tools/web.d.cts +3 -1
  220. package/dist/tools/web.d.ts +3 -1
  221. package/dist/tools/web.js +275 -3
  222. package/dist/tools/web.js.map +1 -1
  223. package/dist/types-BYyXWWPW.d.cts +237 -0
  224. package/dist/types-BYyXWWPW.d.ts +237 -0
  225. package/package.json +26 -37
  226. package/bin/zqagent +0 -2
  227. package/dist/cli/index.cjs +0 -24507
  228. package/dist/cli/index.cjs.map +0 -1
  229. package/dist/cli/index.d.cts +0 -2
  230. package/dist/cli/index.d.ts +0 -2
  231. package/dist/cli/index.js +0 -24490
  232. package/dist/cli/index.js.map +0 -1
  233. package/dist/server/index.cjs +0 -19824
  234. package/dist/server/index.cjs.map +0 -1
  235. package/dist/server/index.d.cts +0 -2
  236. package/dist/server/index.d.ts +0 -2
  237. package/dist/server/index.js +0 -19807
  238. package/dist/server/index.js.map +0 -1
@@ -350,6 +350,9 @@ var ShellTaskManager = class {
350
350
  }
351
351
  };
352
352
 
353
+ // src/tools/sandbox.ts
354
+ var import_node_child_process4 = require("child_process");
355
+
353
356
  // src/tools/shell.ts
354
357
  var MAX_BUFFER = 1024 * 1024 * 5;
355
358
  function decodeOutput(buf) {
@@ -421,7 +424,281 @@ var path3 = __toESM(require("path"), 1);
421
424
  var import_node_module = require("module");
422
425
  var import_node_crypto = require("crypto");
423
426
  var import_promises = require("stream/promises");
424
- var import_socks_proxy_agent = require("socks-proxy-agent");
427
+
428
+ // ../../node_modules/.pnpm/socks-proxy-agent@9.0.0_supports-color@7.2.0/node_modules/socks-proxy-agent/dist/index.js
429
+ var import_socks = require("socks");
430
+
431
+ // ../../node_modules/.pnpm/agent-base@8.0.0/node_modules/agent-base/dist/index.js
432
+ var net = __toESM(require("net"), 1);
433
+ var http = __toESM(require("http"), 1);
434
+ var import_https = require("https");
435
+ var INTERNAL = /* @__PURE__ */ Symbol("AgentBaseInternalState");
436
+ var Agent2 = class extends http.Agent {
437
+ constructor(opts) {
438
+ super(opts);
439
+ this[INTERNAL] = {};
440
+ }
441
+ /**
442
+ * Determine whether this is an `http` or `https` request.
443
+ */
444
+ isSecureEndpoint(options) {
445
+ if (options) {
446
+ if (typeof options.secureEndpoint === "boolean") {
447
+ return options.secureEndpoint;
448
+ }
449
+ if (typeof options.protocol === "string") {
450
+ return options.protocol === "https:";
451
+ }
452
+ }
453
+ const { stack } = new Error();
454
+ if (typeof stack !== "string")
455
+ return false;
456
+ return stack.split("\n").some((l) => l.indexOf("(https.js:") !== -1 || l.indexOf("node:https:") !== -1);
457
+ }
458
+ // In order to support async signatures in `connect()` and Node's native
459
+ // connection pooling in `http.Agent`, the array of sockets for each origin
460
+ // has to be updated synchronously. This is so the length of the array is
461
+ // accurate when `addRequest()` is next called. We achieve this by creating a
462
+ // fake socket and adding it to `sockets[origin]` and incrementing
463
+ // `totalSocketCount`.
464
+ incrementSockets(name) {
465
+ if (this.maxSockets === Infinity && this.maxTotalSockets === Infinity) {
466
+ return null;
467
+ }
468
+ if (!this.sockets[name]) {
469
+ this.sockets[name] = [];
470
+ }
471
+ const fakeSocket = new net.Socket({ writable: false });
472
+ this.sockets[name].push(fakeSocket);
473
+ this.totalSocketCount++;
474
+ return fakeSocket;
475
+ }
476
+ decrementSockets(name, socket) {
477
+ if (!this.sockets[name] || socket === null) {
478
+ return;
479
+ }
480
+ const sockets = this.sockets[name];
481
+ const index = sockets.indexOf(socket);
482
+ if (index !== -1) {
483
+ sockets.splice(index, 1);
484
+ this.totalSocketCount--;
485
+ if (sockets.length === 0) {
486
+ delete this.sockets[name];
487
+ }
488
+ }
489
+ }
490
+ // In order to properly update the socket pool, we need to call `getName()` on
491
+ // the core `https.Agent` if it is a secureEndpoint.
492
+ getName(options) {
493
+ const secureEndpoint = this.isSecureEndpoint(options);
494
+ if (secureEndpoint) {
495
+ return import_https.Agent.prototype.getName.call(this, options);
496
+ }
497
+ return super.getName(options);
498
+ }
499
+ createSocket(req, options, cb) {
500
+ const connectOpts = {
501
+ ...options,
502
+ secureEndpoint: this.isSecureEndpoint(options)
503
+ };
504
+ const name = this.getName(connectOpts);
505
+ const fakeSocket = this.incrementSockets(name);
506
+ Promise.resolve().then(() => this.connect(req, connectOpts)).then((socket) => {
507
+ this.decrementSockets(name, fakeSocket);
508
+ if (socket instanceof http.Agent) {
509
+ try {
510
+ return socket.addRequest(req, connectOpts);
511
+ } catch (err) {
512
+ return cb(err);
513
+ }
514
+ }
515
+ this[INTERNAL].currentSocket = socket;
516
+ super.createSocket(req, options, cb);
517
+ }, (err) => {
518
+ this.decrementSockets(name, fakeSocket);
519
+ cb(err);
520
+ });
521
+ }
522
+ createConnection() {
523
+ const socket = this[INTERNAL].currentSocket;
524
+ this[INTERNAL].currentSocket = void 0;
525
+ if (!socket) {
526
+ throw new Error("No socket was returned in the `connect()` function");
527
+ }
528
+ return socket;
529
+ }
530
+ get defaultPort() {
531
+ return this[INTERNAL].defaultPort ?? (this.protocol === "https:" ? 443 : 80);
532
+ }
533
+ set defaultPort(v) {
534
+ if (this[INTERNAL]) {
535
+ this[INTERNAL].defaultPort = v;
536
+ }
537
+ }
538
+ get protocol() {
539
+ return this[INTERNAL].protocol ?? (this.isSecureEndpoint() ? "https:" : "http:");
540
+ }
541
+ set protocol(v) {
542
+ if (this[INTERNAL]) {
543
+ this[INTERNAL].protocol = v;
544
+ }
545
+ }
546
+ };
547
+
548
+ // ../../node_modules/.pnpm/socks-proxy-agent@9.0.0_supports-color@7.2.0/node_modules/socks-proxy-agent/dist/index.js
549
+ var import_debug = __toESM(require("debug"), 1);
550
+ var dns = __toESM(require("dns"), 1);
551
+ var net2 = __toESM(require("net"), 1);
552
+ var tls = __toESM(require("tls"), 1);
553
+ var import_url = require("url");
554
+ var debug = (0, import_debug.default)("socks-proxy-agent");
555
+ var setServernameFromNonIpHost = (options) => {
556
+ if (options.servername === void 0 && options.host && !net2.isIP(options.host)) {
557
+ return {
558
+ ...options,
559
+ servername: options.host
560
+ };
561
+ }
562
+ return options;
563
+ };
564
+ function parseSocksURL(url) {
565
+ let lookup2 = false;
566
+ let type = 5;
567
+ const host = url.hostname;
568
+ const port = parseInt(url.port, 10) || 1080;
569
+ switch (url.protocol.replace(":", "")) {
570
+ case "socks4":
571
+ lookup2 = true;
572
+ type = 4;
573
+ break;
574
+ // pass through
575
+ case "socks4a":
576
+ type = 4;
577
+ break;
578
+ case "socks5":
579
+ lookup2 = true;
580
+ type = 5;
581
+ break;
582
+ // pass through
583
+ case "socks":
584
+ type = 5;
585
+ break;
586
+ case "socks5h":
587
+ type = 5;
588
+ break;
589
+ default:
590
+ throw new TypeError(`A "socks" protocol must be specified! Got: ${String(url.protocol)}`);
591
+ }
592
+ const proxy = {
593
+ host,
594
+ port,
595
+ type
596
+ };
597
+ if (url.username) {
598
+ Object.defineProperty(proxy, "userId", {
599
+ value: decodeURIComponent(url.username),
600
+ enumerable: false
601
+ });
602
+ }
603
+ if (url.password != null) {
604
+ Object.defineProperty(proxy, "password", {
605
+ value: decodeURIComponent(url.password),
606
+ enumerable: false
607
+ });
608
+ }
609
+ return { lookup: lookup2, proxy };
610
+ }
611
+ var SocksProxyAgent = class extends Agent2 {
612
+ constructor(uri, opts) {
613
+ super(opts);
614
+ const url = typeof uri === "string" ? new import_url.URL(uri) : uri;
615
+ const { proxy, lookup: lookup2 } = parseSocksURL(url);
616
+ this.shouldLookup = lookup2;
617
+ this.proxy = proxy;
618
+ this.timeout = opts?.timeout ?? null;
619
+ this.socketOptions = opts?.socketOptions ?? null;
620
+ }
621
+ /**
622
+ * Initiates a SOCKS connection to the specified SOCKS proxy server,
623
+ * which in turn connects to the specified remote host and port.
624
+ */
625
+ async connect(req, opts) {
626
+ const { shouldLookup, proxy, timeout } = this;
627
+ if (!opts.host) {
628
+ throw new Error("No `host` defined!");
629
+ }
630
+ let { host } = opts;
631
+ const { port, lookup: lookupFn = dns.lookup } = opts;
632
+ if (shouldLookup) {
633
+ host = await new Promise((resolve4, reject) => {
634
+ lookupFn(host, {}, (err, address) => {
635
+ if (err) {
636
+ reject(err);
637
+ } else {
638
+ resolve4(typeof address === "string" ? address : address[0].address);
639
+ }
640
+ });
641
+ });
642
+ }
643
+ const socksOpts = {
644
+ proxy,
645
+ destination: {
646
+ host,
647
+ port: typeof port === "number" ? port : parseInt(port, 10)
648
+ },
649
+ command: "connect",
650
+ timeout: timeout ?? void 0,
651
+ // @ts-expect-error the type supplied by socks for socket_options is wider
652
+ // than necessary since socks will always override the host and port
653
+ socket_options: this.socketOptions ?? void 0
654
+ };
655
+ const cleanup = (tlsSocket) => {
656
+ req.destroy();
657
+ socket.destroy();
658
+ if (tlsSocket)
659
+ tlsSocket.destroy();
660
+ };
661
+ debug("Creating socks proxy connection: %o", socksOpts);
662
+ const { socket } = await import_socks.SocksClient.createConnection(socksOpts);
663
+ debug("Successfully created socks proxy connection");
664
+ if (timeout !== null) {
665
+ socket.setTimeout(timeout);
666
+ socket.on("timeout", () => cleanup());
667
+ }
668
+ if (opts.secureEndpoint) {
669
+ debug("Upgrading socket connection to TLS");
670
+ const tlsSocket = tls.connect({
671
+ ...omit(setServernameFromNonIpHost(opts), "host", "path", "port"),
672
+ socket
673
+ });
674
+ tlsSocket.once("error", (error) => {
675
+ debug("Socket TLS error", error.message);
676
+ cleanup(tlsSocket);
677
+ });
678
+ return tlsSocket;
679
+ }
680
+ return socket;
681
+ }
682
+ };
683
+ SocksProxyAgent.protocols = [
684
+ "socks",
685
+ "socks4",
686
+ "socks4a",
687
+ "socks5",
688
+ "socks5h"
689
+ ];
690
+ function omit(obj, ...keys) {
691
+ const ret = {};
692
+ let key;
693
+ for (key in obj) {
694
+ if (!keys.includes(key)) {
695
+ ret[key] = obj[key];
696
+ }
697
+ }
698
+ return ret;
699
+ }
700
+
701
+ // src/tools/ffmpegRuntime.ts
425
702
  var import_node_fetch = __toESM(require("node-fetch"), 1);
426
703
  var ENV_FFMPEG = "ZQAGENT_FFMPEG";
427
704
  var ENV_FFPROBE = "ZQAGENT_FFPROBE";
@@ -429,10 +706,10 @@ var PROXY_ENV = process.env.SOCKS5_PROXY;
429
706
  var socksAgent = null;
430
707
  if (PROXY_ENV) {
431
708
  try {
432
- socksAgent = new import_socks_proxy_agent.SocksProxyAgent(PROXY_ENV);
709
+ socksAgent = new SocksProxyAgent(PROXY_ENV);
433
710
  } catch {
434
711
  try {
435
- socksAgent = new import_socks_proxy_agent.SocksProxyAgent(PROXY_ENV.replace(/^socks5h:\/\//, "socks5://"));
712
+ socksAgent = new SocksProxyAgent(PROXY_ENV.replace(/^socks5h:\/\//, "socks5://"));
436
713
  } catch {
437
714
  socksAgent = null;
438
715
  }