deepline 0.3.345 → 0.3.347

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 (104) hide show
  1. package/dist/bundling-sources/sdk/src/http.ts +14 -0
  2. package/dist/bundling-sources/sdk/src/release.ts +1 -1
  3. package/dist/bundling-sources/sdk/src/tool-calls.ts +78 -17
  4. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres.ts +40 -18
  5. package/dist/cli/auth-PSMCNXBC.js +31 -0
  6. package/dist/cli/{auth-YQSQYS2V.mjs → auth-RWP45MJX.mjs} +4 -4
  7. package/dist/cli/{billing-JRP2ZFMV.js → billing-F6RNSQWW.js} +71 -71
  8. package/dist/cli/{billing-HA75G3SK.mjs → billing-XPKHI4LF.mjs} +4 -4
  9. package/dist/cli/{chunk-5QPHJFNN.mjs → chunk-3JJLQQLW.mjs} +2 -2
  10. package/dist/cli/{chunk-4INBT3OR.js → chunk-3PRBUTJK.js} +240 -231
  11. package/dist/cli/{chunk-MO6QJPEB.js → chunk-5UJOJKPW.js} +33 -27
  12. package/dist/cli/{chunk-EEPFLZ7V.js → chunk-723POEH5.js} +279 -244
  13. package/dist/cli/{chunk-FDH572QX.js → chunk-AGV2VS4U.js} +55 -53
  14. package/dist/cli/{chunk-EWYAS4WD.mjs → chunk-AOKWJJLP.mjs} +1 -1
  15. package/dist/cli/{chunk-TAX3OOC6.mjs → chunk-AYR45POY.mjs} +51 -16
  16. package/dist/cli/{chunk-KXFPDFUO.js → chunk-BUXJSW26.js} +26 -26
  17. package/dist/cli/{chunk-IT6MAYZ3.js → chunk-EOS73ZCP.js} +8 -8
  18. package/dist/cli/{chunk-2OTDDG2J.js → chunk-GS2ZSOAQ.js} +2 -2
  19. package/dist/cli/{chunk-FBUWH67Y.js → chunk-GT7OCAWV.js} +48 -48
  20. package/dist/cli/{chunk-ITOJRSOU.js → chunk-JB4UKD3B.js} +6 -6
  21. package/dist/cli/{chunk-UJCHR3J3.js → chunk-L4TXOCCC.js} +1 -1
  22. package/dist/cli/{chunk-S3JKJL44.mjs → chunk-LH4VHCN5.mjs} +9 -7
  23. package/dist/cli/{chunk-WRTLSH6R.js → chunk-LPKV6IBM.js} +8 -8
  24. package/dist/cli/{chunk-DOPNLW2H.mjs → chunk-LTJOC47W.mjs} +16 -7
  25. package/dist/cli/{chunk-AFNEQ43J.js → chunk-MX53GIOB.js} +40 -1
  26. package/dist/cli/{chunk-AW2G44QA.mjs → chunk-NU5EU2SH.mjs} +4 -4
  27. package/dist/cli/{chunk-YGQ4AIK7.mjs → chunk-OS6CZRJE.mjs} +3 -3
  28. package/dist/cli/{chunk-JDSRPSES.mjs → chunk-PQGDU7B5.mjs} +7 -1
  29. package/dist/cli/{chunk-URPZWUVN.js → chunk-ROEN4NXY.js} +60 -60
  30. package/dist/cli/{chunk-NTIWTBEH.mjs → chunk-SFJEAK54.mjs} +1 -1
  31. package/dist/cli/{chunk-3XKBPPP7.mjs → chunk-U2GPF4SB.mjs} +2 -2
  32. package/dist/cli/{chunk-N3GUUSDO.mjs → chunk-VRYRVD3F.mjs} +1 -1
  33. package/dist/cli/{chunk-TDW3RU7S.js → chunk-WX7W76U7.js} +15 -15
  34. package/dist/cli/{chunk-GGRQBO3S.mjs → chunk-X32ZLEUU.mjs} +2 -2
  35. package/dist/cli/{chunk-MLO7ZGSH.mjs → chunk-Y6D2JYBR.mjs} +2 -2
  36. package/dist/cli/{chunk-JOA6IKDE.mjs → chunk-Z6B4UPM4.mjs} +39 -0
  37. package/dist/cli/{client-VKQGBPZ5.mjs → client-FZJ3RSO3.mjs} +3 -3
  38. package/dist/cli/client-J4QGSQ6Y.js +20 -0
  39. package/dist/cli/{csv-ZFMAI2HY.mjs → csv-HPBPBU3I.mjs} +3 -3
  40. package/dist/cli/{csv-UNP7KAXF.js → csv-QSMT5HZS.js} +12 -12
  41. package/dist/cli/{db-C5YWXRLY.mjs → db-2KAUAVVC.mjs} +4 -4
  42. package/dist/cli/{db-LDLXC2JQ.js → db-IKZKICP3.js} +29 -29
  43. package/dist/cli/{describe-UYNKJV6T.mjs → describe-EW4GZMUK.mjs} +9 -9
  44. package/dist/cli/{describe-FO62H2CB.js → describe-QM7Q5Y2H.js} +25 -25
  45. package/dist/cli/{executions-DIADSK2E.js → executions-5ICONLFX.js} +6 -6
  46. package/dist/cli/{executions-JYKV3GQJ.mjs → executions-U5WWUFEZ.mjs} +4 -4
  47. package/dist/cli/{feedback-YBO47O7G.js → feedback-N2KGAK4V.js} +7 -7
  48. package/dist/cli/{feedback-4UEJJFRL.mjs → feedback-ZBQPQPFG.mjs} +3 -3
  49. package/dist/cli/git-2N5LS25H.js +23 -0
  50. package/dist/cli/{git-A6DPLCMU.mjs → git-M5YEP57H.mjs} +4 -4
  51. package/dist/cli/index.js +79 -79
  52. package/dist/cli/index.mjs +31 -31
  53. package/dist/cli/{legacy-noops-HCAOJI7X.mjs → legacy-noops-GJUYBH2F.mjs} +4 -4
  54. package/dist/cli/{legacy-noops-F6TJLZV2.js → legacy-noops-IQIPPJF7.js} +7 -7
  55. package/dist/cli/{monitors-B5QFSFK7.js → monitors-DQUCHISX.js} +85 -85
  56. package/dist/cli/{monitors-XYP7XNCT.mjs → monitors-XJAJNMG4.mjs} +4 -4
  57. package/dist/cli/{org-O5VBVLSP.mjs → org-DFWDN4EJ.mjs} +4 -4
  58. package/dist/cli/{org-NMWNBQZI.js → org-G45CXUJV.js} +60 -60
  59. package/dist/cli/{play-Z2STHYQB.mjs → play-URTZW2Q4.mjs} +8 -8
  60. package/dist/cli/play-WWMUYKWS.js +153 -0
  61. package/dist/cli/{providers-WGIJLFBZ.mjs → providers-CCKMRCXU.mjs} +4 -4
  62. package/dist/cli/{providers-BAPO54GE.js → providers-IVUWWGFP.js} +7 -7
  63. package/dist/cli/{quickstart-LL6KUMJ5.mjs → quickstart-CRHIA3PZ.mjs} +3 -3
  64. package/dist/cli/{quickstart-JGRMJ6M4.js → quickstart-MMIVNRV4.js} +5 -5
  65. package/dist/cli/{search-P7BVN4OI.mjs → search-NDRDOINX.mjs} +5 -5
  66. package/dist/cli/search-YZL2QRIF.js +26 -0
  67. package/dist/cli/{secrets-QUBFPBE5.js → secrets-GQUBMJGM.js} +13 -13
  68. package/dist/cli/{secrets-5JHLILQD.mjs → secrets-SUC3KLLH.mjs} +4 -4
  69. package/dist/cli/{sessions-3BYS3WQZ.mjs → sessions-7CAU6JL5.mjs} +4 -4
  70. package/dist/cli/{sessions-TATDTEY6.js → sessions-AQCRVLHW.js} +5 -5
  71. package/dist/cli/{settings-SLFYXPRP.js → settings-4SDI73XW.js} +74 -74
  72. package/dist/cli/{settings-TXWQLO34.mjs → settings-LFFOFAU6.mjs} +7 -7
  73. package/dist/cli/{setup-XTAW2JS2.mjs → setup-BKCQOJBD.mjs} +6 -6
  74. package/dist/cli/{setup-A3CXCYRI.js → setup-FQ3E7U7G.js} +41 -41
  75. package/dist/cli/skills-7BPEGDIA.js +28 -0
  76. package/dist/cli/{skills-P323CMPH.mjs → skills-USGJ5MF7.mjs} +4 -4
  77. package/dist/cli/{tools-FMSH7Z7I.mjs → tools-5HTXLDZ4.mjs} +7 -7
  78. package/dist/cli/tools-5VEZ4QR4.js +40 -0
  79. package/dist/cli/{update-CGKRTVOD.mjs → update-F7TIJEIV.mjs} +6 -6
  80. package/dist/cli/update-YFPMWKI4.js +28 -0
  81. package/dist/cli/{workflow-2DVIYBLG.mjs → workflow-FXJ2D2MG.mjs} +5 -5
  82. package/dist/cli/{workflow-EFOSJKW7.js → workflow-J5JVOUIL.js} +15 -15
  83. package/dist/{client-BHReRdWK.d.mts → client-D20uyRYB.d.mts} +6 -0
  84. package/dist/{client-DW3zASj8.d.ts → client-rHyf5s_Y.d.ts} +6 -0
  85. package/dist/index.d.mts +2 -2
  86. package/dist/index.d.ts +2 -2
  87. package/dist/index.js +6 -6
  88. package/dist/index.mjs +3 -3
  89. package/dist/install-integrity.json +78 -78
  90. package/dist/plays/run-request.d.mts +1 -1
  91. package/dist/plays/run-request.d.ts +1 -1
  92. package/dist/release.d.mts +1 -1
  93. package/dist/release.d.ts +1 -1
  94. package/dist/release.js +2 -2
  95. package/dist/release.mjs +1 -1
  96. package/package.json +1 -1
  97. package/dist/cli/auth-4HCZZPZH.js +0 -31
  98. package/dist/cli/client-VOXK5Z4D.js +0 -20
  99. package/dist/cli/git-FPC5VIIK.js +0 -23
  100. package/dist/cli/play-D2SCAJXG.js +0 -153
  101. package/dist/cli/search-UNJN5P72.js +0 -26
  102. package/dist/cli/skills-ZOUUC72T.js +0 -28
  103. package/dist/cli/tools-O7TLYHFT.js +0 -40
  104. package/dist/cli/update-3LT6YSIP.js +0 -28
@@ -4,7 +4,7 @@
4
4
  var _chunkXNYIZMNQjs = require('./chunk-XNYIZMNQ.js');
5
5
 
6
6
 
7
- var _chunkUJCHR3J3js = require('./chunk-UJCHR3J3.js');
7
+ var _chunkL4TXOCCCjs = require('./chunk-L4TXOCCC.js');
8
8
 
9
9
 
10
10
 
@@ -743,9 +743,9 @@ function resolveCliCommandContext(inputConfig, requestedScope) {
743
743
  }
744
744
 
745
745
  // src/version.ts
746
- var SDK_VERSION = _chunkUJCHR3J3js.SDK_RELEASE.version;
747
- var SDK_API_MAJOR = _chunkUJCHR3J3js.SDK_RELEASE.contracts.api.currentMajor;
748
- var SDK_API_CONTRACT = _nullishCoalesce(_chunkUJCHR3J3js.SDK_RELEASE.contracts.api.legacyWireIds[0], () => ( `api-v${SDK_API_MAJOR}`));
746
+ var SDK_VERSION = _chunkL4TXOCCCjs.SDK_RELEASE.version;
747
+ var SDK_API_MAJOR = _chunkL4TXOCCCjs.SDK_RELEASE.contracts.api.currentMajor;
748
+ var SDK_API_CONTRACT = _nullishCoalesce(_chunkL4TXOCCCjs.SDK_RELEASE.contracts.api.legacyWireIds[0], () => ( `api-v${SDK_API_MAJOR}`));
749
749
 
750
750
  // src/agent-runtime.ts
751
751
 
@@ -1524,9 +1524,15 @@ var HttpClient = class {
1524
1524
  return null;
1525
1525
  }
1526
1526
  const body = await response.text();
1527
+ const receivedAtMs = Date.now();
1527
1528
  clearTimeout(timeoutId);
1528
1529
  const parsed = parseResponseBody(body);
1529
- const structuredToolError = _optionalChain([options, 'optionalAccess', _230 => _230.toolId]) && !response.ok ? _chunk7P5AA3SNjs.deserializeToolExecutionFailure.call(void 0,
1530
+ _optionalChain([options, 'optionalAccess', _230 => _230.onResponseBody, 'optionalCall', _231 => _231({
1531
+ receivedAtMs,
1532
+ httpStatus: response.status,
1533
+ body: parsed
1534
+ })]);
1535
+ const structuredToolError = _optionalChain([options, 'optionalAccess', _232 => _232.toolId]) && !response.ok ? _chunk7P5AA3SNjs.deserializeToolExecutionFailure.call(void 0,
1530
1536
  _chunkXNYIZMNQjs.apiErrorMessage.call(void 0, parsed, response.status),
1531
1537
  isRecord(parsed) ? parsed.tool_error : null,
1532
1538
  _chunk7P5AA3SNjs.TOOL_EXECUTION_ERROR_SCHEMA_VERSION
@@ -1548,7 +1554,7 @@ var HttpClient = class {
1548
1554
  throw structuredToolError;
1549
1555
  }
1550
1556
  if (response.status === 429) {
1551
- if (_optionalChain([options, 'optionalAccess', _231 => _231.preserveRateLimitResponse]) && isMonitorRateLimitEnvelope(parsed)) {
1557
+ if (_optionalChain([options, 'optionalAccess', _233 => _233.preserveRateLimitResponse]) && isMonitorRateLimitEnvelope(parsed)) {
1552
1558
  throw new (0, _chunk7P5AA3SNjs.DeeplineError)(
1553
1559
  _chunkXNYIZMNQjs.apiErrorMessage.call(void 0, parsed, response.status),
1554
1560
  response.status,
@@ -1568,7 +1574,7 @@ var HttpClient = class {
1568
1574
  throw new AuthError(_chunkXNYIZMNQjs.apiErrorMessage.call(void 0, parsed, response.status));
1569
1575
  }
1570
1576
  if (!response.ok) {
1571
- const retryableApiError = _optionalChain([options, 'optionalAccess', _232 => _232.retryApiErrors]) === true && isRetryableApiErrorResponse(response.status);
1577
+ const retryableApiError = _optionalChain([options, 'optionalAccess', _234 => _234.retryApiErrors]) === true && isRetryableApiErrorResponse(response.status);
1572
1578
  const htmlError = detectHtmlErrorBody(
1573
1579
  body,
1574
1580
  response.headers.get("content-type")
@@ -1620,7 +1626,7 @@ var HttpClient = class {
1620
1626
  } catch (error) {
1621
1627
  clearTimeout(timeoutId);
1622
1628
  networkFailedAt = Date.now();
1623
- if (_optionalChain([options, 'optionalAccess', _233 => _233.signal, 'optionalAccess', _234 => _234.aborted])) {
1629
+ if (_optionalChain([options, 'optionalAccess', _235 => _235.signal, 'optionalAccess', _236 => _236.aborted])) {
1624
1630
  lastError = requestCancelledError(options.signal);
1625
1631
  break requestAttempts;
1626
1632
  }
@@ -1637,7 +1643,7 @@ var HttpClient = class {
1637
1643
  });
1638
1644
  } finally {
1639
1645
  clearTimeout(timeoutId);
1640
- _optionalChain([options, 'optionalAccess', _235 => _235.signal, 'optionalAccess', _236 => _236.removeEventListener, 'call', _237 => _237("abort", abortRequest)]);
1646
+ _optionalChain([options, 'optionalAccess', _237 => _237.signal, 'optionalAccess', _238 => _238.removeEventListener, 'call', _239 => _239("abort", abortRequest)]);
1641
1647
  }
1642
1648
  }
1643
1649
  if (attempt < maxRetries) continue;
@@ -1664,7 +1670,7 @@ var HttpClient = class {
1664
1670
  phase: networkPhase
1665
1671
  }
1666
1672
  };
1667
- if (_optionalChain([options, 'optionalAccess', _238 => _238.toolId])) {
1673
+ if (_optionalChain([options, 'optionalAccess', _240 => _240.toolId])) {
1668
1674
  const code = mappedNetworkError.code;
1669
1675
  throw withErrorCause(
1670
1676
  new (0, _chunk7P5AA3SNjs.ToolExecutionError)(
@@ -1716,12 +1722,12 @@ var HttpClient = class {
1716
1722
  }
1717
1723
  async *streamSse(path, options) {
1718
1724
  const url = `${this.config.baseUrl}${path}`;
1719
- const method = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _239 => _239.method]), () => ( "GET"));
1725
+ const method = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _241 => _241.method]), () => ( "GET"));
1720
1726
  const headers = this.authHeaders({
1721
1727
  Accept: "text/event-stream",
1722
- ..._optionalChain([options, 'optionalAccess', _240 => _240.headers])
1728
+ ..._optionalChain([options, 'optionalAccess', _242 => _242.headers])
1723
1729
  });
1724
- if (_optionalChain([options, 'optionalAccess', _241 => _241.body]) !== void 0) {
1730
+ if (_optionalChain([options, 'optionalAccess', _243 => _243.body]) !== void 0) {
1725
1731
  applyExplicitHeaders(headers, { "Content-Type": "application/json" });
1726
1732
  }
1727
1733
  let lastError = null;
@@ -1730,8 +1736,8 @@ var HttpClient = class {
1730
1736
  const response = await fetch(candidateUrl, {
1731
1737
  method,
1732
1738
  headers,
1733
- body: _optionalChain([options, 'optionalAccess', _242 => _242.body]) !== void 0 ? JSON.stringify(options.body) : void 0,
1734
- signal: _optionalChain([options, 'optionalAccess', _243 => _243.signal])
1739
+ body: _optionalChain([options, 'optionalAccess', _244 => _244.body]) !== void 0 ? JSON.stringify(options.body) : void 0,
1740
+ signal: _optionalChain([options, 'optionalAccess', _245 => _245.signal])
1735
1741
  });
1736
1742
  if (!response.ok) {
1737
1743
  const body = await response.text();
@@ -1772,7 +1778,7 @@ var HttpClient = class {
1772
1778
  throw error;
1773
1779
  }
1774
1780
  const normalized = error instanceof Error ? error : new Error(String(error));
1775
- if (isAbortLikeError(normalized) && _optionalChain([options, 'optionalAccess', _244 => _244.signal, 'optionalAccess', _245 => _245.aborted])) {
1781
+ if (isAbortLikeError(normalized) && _optionalChain([options, 'optionalAccess', _246 => _246.signal, 'optionalAccess', _247 => _247.aborted])) {
1776
1782
  throw new (0, _chunk7P5AA3SNjs.DeeplineError)(
1777
1783
  `Stream from ${this.config.baseUrl} was aborted by the caller.`,
1778
1784
  void 0,
@@ -1793,7 +1799,7 @@ var HttpClient = class {
1793
1799
  }
1794
1800
  throw new (0, _chunk7P5AA3SNjs.DeeplineError)(
1795
1801
  withCoworkNetworkHint(
1796
- _optionalChain([lastError, 'optionalAccess', _246 => _246.message]) ? `Unable to stream from ${this.config.baseUrl}. ${lastError.message}` : `Unable to stream from ${this.config.baseUrl}.`
1802
+ _optionalChain([lastError, 'optionalAccess', _248 => _248.message]) ? `Unable to stream from ${this.config.baseUrl}. ${lastError.message}` : `Unable to stream from ${this.config.baseUrl}.`
1797
1803
  )
1798
1804
  );
1799
1805
  }
@@ -1855,15 +1861,15 @@ function parseResponseBody(body) {
1855
1861
  }
1856
1862
  function isProviderOriginatedHttpError(parsed) {
1857
1863
  const response = asRecord(parsed);
1858
- const error = asRecord(_optionalChain([response, 'optionalAccess', _247 => _247.error]));
1859
- const failureOrigin = _nullishCoalesce(_optionalChain([error, 'optionalAccess', _248 => _248.failure_origin]), () => ( _optionalChain([response, 'optionalAccess', _249 => _249.failure_origin])));
1860
- const code = _nullishCoalesce(_optionalChain([error, 'optionalAccess', _250 => _250.code]), () => ( _optionalChain([response, 'optionalAccess', _251 => _251.code])));
1864
+ const error = asRecord(_optionalChain([response, 'optionalAccess', _249 => _249.error]));
1865
+ const failureOrigin = _nullishCoalesce(_optionalChain([error, 'optionalAccess', _250 => _250.failure_origin]), () => ( _optionalChain([response, 'optionalAccess', _251 => _251.failure_origin])));
1866
+ const code = _nullishCoalesce(_optionalChain([error, 'optionalAccess', _252 => _252.code]), () => ( _optionalChain([response, 'optionalAccess', _253 => _253.code])));
1861
1867
  return failureOrigin === "provider" || code === "UPSTREAM_BLOCKED";
1862
1868
  }
1863
1869
  function isMonitorRateLimitEnvelope(parsed) {
1864
1870
  const response = asRecord(parsed);
1865
- const error = asRecord(_optionalChain([response, 'optionalAccess', _252 => _252.error]));
1866
- return _optionalChain([error, 'optionalAccess', _253 => _253.code]) === "monitor_upstream_rate_limited" && typeof error.message === "string";
1871
+ const error = asRecord(_optionalChain([response, 'optionalAccess', _254 => _254.error]));
1872
+ return _optionalChain([error, 'optionalAccess', _255 => _255.code]) === "monitor_upstream_rate_limited" && typeof error.message === "string";
1867
1873
  }
1868
1874
  function asRecord(value) {
1869
1875
  return typeof value === "object" && value !== null ? value : null;
@@ -1879,7 +1885,7 @@ function detectHtmlErrorBody(body, contentType) {
1879
1885
  return null;
1880
1886
  }
1881
1887
  const titleMatch = trimmed.match(/<title[^>]*>([\s\S]*?)<\/title>/i);
1882
- const title = _optionalChain([titleMatch, 'optionalAccess', _254 => _254[1], 'optionalAccess', _255 => _255.replace, 'call', _256 => _256(/\s+/g, " "), 'access', _257 => _257.trim, 'call', _258 => _258()]) || void 0;
1888
+ const title = _optionalChain([titleMatch, 'optionalAccess', _256 => _256[1], 'optionalAccess', _257 => _257.replace, 'call', _258 => _258(/\s+/g, " "), 'access', _259 => _259.trim, 'call', _260 => _260()]) || void 0;
1883
1889
  const workerThrewException = /worker threw exception/i.test(trimmed);
1884
1890
  return {
1885
1891
  title,
@@ -1963,20 +1969,20 @@ function decodeSseFrame(frame) {
1963
1969
  }
1964
1970
  function sleep(ms, signal) {
1965
1971
  return new Promise((resolve2, reject) => {
1966
- if (_optionalChain([signal, 'optionalAccess', _259 => _259.aborted])) {
1972
+ if (_optionalChain([signal, 'optionalAccess', _261 => _261.aborted])) {
1967
1973
  reject(requestCancelledError(signal));
1968
1974
  return;
1969
1975
  }
1970
1976
  const timeoutId = setTimeout(() => {
1971
- _optionalChain([signal, 'optionalAccess', _260 => _260.removeEventListener, 'call', _261 => _261("abort", abort)]);
1977
+ _optionalChain([signal, 'optionalAccess', _262 => _262.removeEventListener, 'call', _263 => _263("abort", abort)]);
1972
1978
  resolve2();
1973
1979
  }, ms);
1974
1980
  const abort = () => {
1975
1981
  clearTimeout(timeoutId);
1976
- _optionalChain([signal, 'optionalAccess', _262 => _262.removeEventListener, 'call', _263 => _263("abort", abort)]);
1982
+ _optionalChain([signal, 'optionalAccess', _264 => _264.removeEventListener, 'call', _265 => _265("abort", abort)]);
1977
1983
  reject(requestCancelledError(signal));
1978
1984
  };
1979
- _optionalChain([signal, 'optionalAccess', _264 => _264.addEventListener, 'call', _265 => _265("abort", abort, { once: true })]);
1985
+ _optionalChain([signal, 'optionalAccess', _266 => _266.addEventListener, 'call', _267 => _267("abort", abort, { once: true })]);
1980
1986
  });
1981
1987
  }
1982
1988
  function withCoworkNetworkHint(message) {