@canonry/canonry 7.72.1 → 7.73.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 (131) hide show
  1. package/assets/assets/{AgentSetupPage-D39M9CRK.js → AgentSetupPage-D7YVdPWO.js} +1 -1
  2. package/assets/assets/{AuditHistoryPanel-BS-iFyHX.js → AuditHistoryPanel-yrgfS5B_.js} +1 -1
  3. package/assets/assets/{BacklinksPage-BW2bEGF4.js → BacklinksPage-DJM6z03g.js} +1 -1
  4. package/assets/assets/{HistoryPage-Dh6o2iVd.js → HistoryPage-CNvAVJ1S.js} +1 -1
  5. package/assets/assets/{MeasurementPropertyPage-DL9cbtVz.js → MeasurementPropertyPage-BVVYhOxR.js} +1 -1
  6. package/assets/assets/{ProjectPage-DXh97uDN.js → ProjectPage-CPRD8kR9.js} +1 -1
  7. package/assets/assets/{RunsPage-BM4ETLsm.js → RunsPage-Ck33dcjz.js} +1 -1
  8. package/assets/assets/{SettingsPage-DpJTB2-Q.js → SettingsPage-CS_t4Dai.js} +1 -1
  9. package/assets/assets/{SiteHealthSection-CmlMQ17V.js → SiteHealthSection-BurKnHpn.js} +2 -2
  10. package/assets/assets/ToneBadge-Df8oiKsQ.js +60 -0
  11. package/assets/assets/{TrafficPage-ClH3Dxnm.js → TrafficPage-DAiY698E.js} +1 -1
  12. package/assets/assets/{TrafficSourceDetailPage-DE-NyNGz.js → TrafficSourceDetailPage-clJSX2rr.js} +1 -1
  13. package/assets/assets/{account-context-BwV6ox8O.js → account-context-DDEhuoP2.js} +1 -1
  14. package/assets/assets/{card-DhkoBNyY.js → card-DbR-lBY3.js} +1 -1
  15. package/assets/assets/{extract-error-message-dNDtiSBo.js → extract-error-message-7_Vm2DQF.js} +1 -1
  16. package/assets/assets/{format-helpers-Bt4tx-f3.js → format-helpers-vtahpXTQ.js} +1 -1
  17. package/assets/assets/{index-MbApCekj.js → index-BIhCeXvc.js} +4 -4
  18. package/assets/assets/{query-client-D-zMw63p.js → query-client-TlFXYJ9o.js} +1 -1
  19. package/assets/assets/{react-query-EdiRRB2q.js → react-query-C5Mv8xfD.js} +1 -1
  20. package/assets/assets/{react-sigma_core.esm.min-Bidr1Gxk.js → react-sigma_core.esm.min-DmggJ7YC.js} +1 -1
  21. package/assets/assets/{service-BUi8JgGI.js → service-CLFURPuM.js} +1 -1
  22. package/assets/index.html +7 -7
  23. package/dist/{ads-FFUUMS4J.js → ads-TX5622SS.js} +3 -3
  24. package/dist/{agent-LCD2VG7C.js → agent-AIOQL66U.js} +7 -7
  25. package/dist/{agent-ask-OBHTCYFR.js → agent-ask-A6GIJTBX.js} +3 -3
  26. package/dist/{agent-conversations-VMZ4NFIX.js → agent-conversations-LHWLKOPQ.js} +3 -3
  27. package/dist/{agent-memory-UPFJFNWC.js → agent-memory-F54BPEYN.js} +3 -3
  28. package/dist/{agent-providers-4GOWLBZK.js → agent-providers-L74KZOSG.js} +3 -3
  29. package/dist/{agent-transcript-RGXIVZUP.js → agent-transcript-IH65H755.js} +3 -3
  30. package/dist/{analytics-FBK4XV5P.js → analytics-YWCY2KSY.js} +3 -3
  31. package/dist/{apply-Y2DVE3YB.js → apply-BLUUYG2N.js} +3 -3
  32. package/dist/{backfill-7SGCPH6J.js → backfill-6WO5CH6Z.js} +9 -9
  33. package/dist/{backlinks-YWHFC7DZ.js → backlinks-NC7AUGTK.js} +3 -3
  34. package/dist/{bing-7BP3DWPK.js → bing-WQUEYHVC.js} +3 -3
  35. package/dist/{bootstrap-Z7QSKVPL.js → bootstrap-AXZV4BBC.js} +10 -10
  36. package/dist/{cdp-OL6RENO3.js → cdp-DUG5PMUD.js} +7 -7
  37. package/dist/{chunk-J523Y7X2.js → chunk-2Y6MSB4J.js} +1 -1
  38. package/dist/{chunk-YFITKHCV.js → chunk-3ANSG6YT.js} +345 -337
  39. package/dist/{chunk-GA2EHZTI.js → chunk-3WPTMLQI.js} +22 -6
  40. package/dist/{chunk-QDN3FL2A.js → chunk-3YIKSZHN.js} +2 -1
  41. package/dist/{chunk-H4HNXCDF.js → chunk-4B6DE7BB.js} +2 -2
  42. package/dist/{chunk-UWBJWKDQ.js → chunk-4JMTDLFV.js} +2 -2
  43. package/dist/{chunk-QKMGGM4B.js → chunk-5PA7SJ2M.js} +8 -271
  44. package/dist/{chunk-JO73L677.js → chunk-6ATKY252.js} +2 -2
  45. package/dist/{chunk-XR6ZVMYK.js → chunk-6W5AR4IW.js} +1 -1
  46. package/dist/{chunk-IZMT4WLZ.js → chunk-6YW24AUN.js} +2 -2
  47. package/dist/chunk-AZQNJX3T.js +269 -0
  48. package/dist/{chunk-TUVG7BIF.js → chunk-B6R223HQ.js} +8 -8
  49. package/dist/{chunk-6MYHGP46.js → chunk-DLVGMRM5.js} +1 -1
  50. package/dist/{chunk-P3UGNR2Y.js → chunk-ETVM3T7K.js} +5 -5
  51. package/dist/{chunk-IV6VZ63E.js → chunk-F5D4GPZQ.js} +18 -14
  52. package/dist/{chunk-WJ2JU32O.js → chunk-GNBATQS3.js} +23 -6
  53. package/dist/{chunk-TEDY3MHN.js → chunk-GUFKUPKZ.js} +3 -3
  54. package/dist/{chunk-BADJCT6U.js → chunk-GWDMWKM6.js} +1 -1
  55. package/dist/{chunk-PPM6Z7CM.js → chunk-HEL6DKDN.js} +1 -1
  56. package/dist/{chunk-DFCKSJQI.js → chunk-HGMTGC34.js} +4 -4
  57. package/dist/{chunk-GPTRCOKV.js → chunk-HIGBV77K.js} +259 -95
  58. package/dist/{chunk-NZZWJCKS.js → chunk-HJHFW455.js} +3 -3
  59. package/dist/{chunk-JE5QURTR.js → chunk-HKV4UWG5.js} +1 -1
  60. package/dist/{chunk-DRGCVTYH.js → chunk-JPM3VC6A.js} +1 -1
  61. package/dist/{chunk-TOX6HAQJ.js → chunk-JQNVNB63.js} +3 -3
  62. package/dist/{chunk-3AG3LPZX.js → chunk-MRSNLKSM.js} +1 -1
  63. package/dist/{chunk-O7WOCTBD.js → chunk-PAIYFNNY.js} +71 -3
  64. package/dist/{chunk-MJYO6UK2.js → chunk-PRSQ4R47.js} +2 -2
  65. package/dist/{chunk-JEBY6MS6.js → chunk-QS6RIP37.js} +1 -1
  66. package/dist/{chunk-4LTL5RNY.js → chunk-S77W2XSI.js} +4 -4
  67. package/dist/{chunk-YXAKL5HM.js → chunk-SF5JLMLG.js} +6791 -6777
  68. package/dist/{chunk-Q25JQANW.js → chunk-T5PWWDMJ.js} +17 -2
  69. package/dist/{chunk-ATT3ZCSS.js → chunk-WH2M2MQF.js} +38 -16
  70. package/dist/{chunk-7KOAP47B.js → chunk-WLWOGBLJ.js} +363 -248
  71. package/dist/{chunk-BZZDFIY2.js → chunk-XDQJOZKJ.js} +1 -1
  72. package/dist/{citations-RVSC67GE.js → citations-FUZ6DGP5.js} +3 -3
  73. package/dist/{cli-catalog-NEZE5QU5.js → cli-catalog-BXHG544D.js} +3 -3
  74. package/dist/{cli-commands-HGCYU4MQ.js → cli-commands-GMOR67F5.js} +7 -7
  75. package/dist/cli.js +13 -13
  76. package/dist/{competitor-BX3M3OYS.js → competitor-QDCH7PLT.js} +3 -3
  77. package/dist/{content-PKJMVMHJ.js → content-JX2CPIPR.js} +3 -3
  78. package/dist/{dashboard-SVHZBVM6.js → dashboard-OOWMLMKV.js} +6 -6
  79. package/dist/{demo-HYDPECCK.js → demo-GKSMSKOY.js} +1 -1
  80. package/dist/{demo-server-KEOO7WFO.js → demo-server-UQO4XKHN.js} +12 -11
  81. package/dist/{discover-JDP44ZHX.js → discover-YQSVQRUV.js} +3 -3
  82. package/dist/{discover-eval-6ORCVYYR.js → discover-eval-FN5RL6QI.js} +3 -3
  83. package/dist/{doctor-TVZRMBSS.js → doctor-YHJLAEJJ.js} +3 -3
  84. package/dist/{evidence-FNIAFBBG.js → evidence-KUPZMBIK.js} +3 -3
  85. package/dist/{export-cmd-HQNF2SSD.js → export-cmd-YSEPTUUF.js} +3 -3
  86. package/dist/{ga-PIO5OXMK.js → ga-WNS7Q7TF.js} +3 -3
  87. package/dist/{gbp-3R5FME43.js → gbp-5NYFK4TW.js} +3 -3
  88. package/dist/{google-BYZREX2O.js → google-T4CF4WCI.js} +4 -4
  89. package/dist/{google-marketing-SPQ2GW6X.js → google-marketing-IXPMUBXZ.js} +1 -1
  90. package/dist/{health-cmd-HH5RYMSV.js → health-cmd-2W37CF6J.js} +3 -3
  91. package/dist/{history-Q35NLLMJ.js → history-PA3O6ZHX.js} +3 -3
  92. package/dist/index.d.ts +248 -71
  93. package/dist/index.js +25 -24
  94. package/dist/{init-TV4ZKAAW.js → init-I3P7FINF.js} +12 -11
  95. package/dist/{insights-SH73B4PD.js → insights-O5PUVHTW.js} +3 -3
  96. package/dist/intelligence-service-EJQQNO65.js +16 -0
  97. package/dist/{journeys-SIV7HPW7.js → journeys-GU34O3HE.js} +3 -3
  98. package/dist/{keys-O656YWSW.js → keys-RXBFRNUS.js} +3 -3
  99. package/dist/{keyword-FZ2N4EW7.js → keyword-MASR36DK.js} +3 -3
  100. package/dist/{logs-2NPN7HBI.js → logs-OTA7MV4P.js} +3 -3
  101. package/dist/mcp-ZQYN2NET.js +19 -0
  102. package/dist/mcp.js +20 -14
  103. package/dist/{measurement-plan-JQKVSJRL.js → measurement-plan-ZGVO36TN.js} +5 -5
  104. package/dist/{notify-VTAYBHC6.js → notify-KS5CR3S2.js} +3 -3
  105. package/dist/{organic-evidence-HPXXEPOW.js → organic-evidence-CTH52AC5.js} +3 -3
  106. package/dist/{overview-FSBNDYZJ.js → overview-IRCIDE5H.js} +4 -4
  107. package/dist/{project-MAPPXURS.js → project-H5XPI5CT.js} +3 -3
  108. package/dist/{query-R6DLPIPJ.js → query-2R6EZG5T.js} +3 -3
  109. package/dist/{research-FXKOEUQB.js → research-OA3UQAV3.js} +3 -3
  110. package/dist/{results-export-X2PUM63S.js → results-export-XUXU3WMX.js} +3 -3
  111. package/dist/{run-6ENTG4IO.js → run-7IIOB6AS.js} +4 -4
  112. package/dist/{schedule-DMMVRT7P.js → schedule-DUTPZB5C.js} +3 -3
  113. package/dist/{search-FHI6APT7.js → search-TWUJD7KH.js} +3 -3
  114. package/dist/{serve-76BGQFPW.js → serve-BYHHULUU.js} +26 -25
  115. package/dist/{session-JBTIV7SS.js → session-M5XSTGPI.js} +13 -12
  116. package/dist/{settings-FMB4QED4.js → settings-GQXU5M3H.js} +3 -3
  117. package/dist/{skills-HBIMHSOI.js → skills-F6AXQHTO.js} +2 -2
  118. package/dist/{snapshot-RBA2EL7R.js → snapshot-QFKUO4QK.js} +3 -3
  119. package/dist/{src-BXXGJOQB.js → src-52USCS7O.js} +4 -2
  120. package/dist/{status-ATFDFAVG.js → status-42LPR7YH.js} +4 -4
  121. package/dist/{technical-aeo-JWQTGCTB.js → technical-aeo-SUILL4MY.js} +3 -3
  122. package/dist/{telemetry-6QFGJL2I.js → telemetry-RITB7YZH.js} +4 -4
  123. package/dist/{tools-4VRHKUBE.js → tools-DGWJOLNS.js} +11 -11
  124. package/dist/{traffic-5R7M4CK5.js → traffic-3YC3HUNT.js} +5 -5
  125. package/dist/{users-24TIUYJY.js → users-BST5DQ5R.js} +3 -3
  126. package/dist/{visibility-stats-YLQPPBJJ.js → visibility-stats-NCNP4AL2.js} +3 -3
  127. package/dist/{wordpress-7VDPHMUZ.js → wordpress-4HQDLQVE.js} +3 -3
  128. package/package.json +10 -6
  129. package/assets/assets/ToneBadge-CmvL5mFG.js +0 -60
  130. package/dist/intelligence-service-YNHDEY4M.js +0 -15
  131. package/dist/mcp-RHQY3DV6.js +0 -14
@@ -2,13 +2,16 @@ import {
2
2
  findMcpClient,
3
3
  listMcpClientIds
4
4
  } from "./chunk-VJWDBFSL.js";
5
+ import {
6
+ createApiClient
7
+ } from "./chunk-WH2M2MQF.js";
5
8
  import {
6
9
  CliError,
7
10
  isMachineFormat
8
11
  } from "./chunk-HGMYEDAQ.js";
9
12
  import {
10
13
  describeError
11
- } from "./chunk-YXAKL5HM.js";
14
+ } from "./chunk-SF5JLMLG.js";
12
15
 
13
16
  // src/commands/mcp.ts
14
17
  import fs from "fs";
@@ -196,9 +199,21 @@ function emitInstallResult(result, format) {
196
199
  console.log(result.snippet);
197
200
  }
198
201
  }
202
+ async function showMcpProfile(format) {
203
+ const profile = await createApiClient().getMcpProfile();
204
+ if (isMachineFormat(format)) {
205
+ console.log(JSON.stringify(profile, null, 2));
206
+ return;
207
+ }
208
+ console.log(`${profile.displayName} (${profile.userId})`);
209
+ console.log(`Instance: ${profile.instance.issuer}`);
210
+ console.log(`Resource: ${profile.instance.resource}`);
211
+ console.log(`Scopes: ${profile.scopes.join(", ")}`);
212
+ }
199
213
 
200
214
  export {
201
215
  renderClientSnippet,
202
216
  installMcp,
203
- printMcpConfig
217
+ printMcpConfig,
218
+ showMcpProfile
204
219
  };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  loadConfig
3
- } from "./chunk-JE5QURTR.js";
3
+ } from "./chunk-HKV4UWG5.js";
4
4
  import {
5
5
  PACKAGE_VERSION
6
6
  } from "./chunk-AOJU5LKX.js";
@@ -36,7 +36,7 @@ import {
36
36
  sentimentSettingsReadSchema,
37
37
  sentimentSummaryReadSchema,
38
38
  upgradeCommandFor
39
- } from "./chunk-YXAKL5HM.js";
39
+ } from "./chunk-SF5JLMLG.js";
40
40
 
41
41
  // ../api-client-generated/src/generated/core/bodySerializer.gen.ts
42
42
  var jsonBodySerializer = {
@@ -3035,6 +3035,11 @@ var getApiV1Doctor = (options) => (options?.client ?? client).get({
3035
3035
  url: "/api/v1/doctor",
3036
3036
  ...options
3037
3037
  });
3038
+ var getApiV1McpProfile = (options) => (options?.client ?? client).get({
3039
+ security: [{ scheme: "bearer", type: "http" }],
3040
+ url: "/api/v1/mcp/profile",
3041
+ ...options
3042
+ });
3038
3043
  var getApiV1Status = (options) => (options?.client ?? client).get({
3039
3044
  security: [{ scheme: "bearer", type: "http" }],
3040
3045
  url: "/api/v1/status",
@@ -3522,8 +3527,8 @@ function classifyStoredOnlyRequest(method, url) {
3522
3527
  access: operationAccess(operation.slice(0, separator), operation.slice(separator + 1), OperationAccesses.live)
3523
3528
  };
3524
3529
  }
3525
- function storedOnlyRequestHeaders(method, url) {
3526
- if (!["1", "true"].includes((process.env.CANONRY_STORED_ONLY ?? "").toLowerCase())) return {};
3530
+ function storedOnlyRequestHeaders(method, url, storedOnly = false) {
3531
+ if (!storedOnly && !["1", "true"].includes((process.env.CANONRY_STORED_ONLY ?? "").toLowerCase())) return {};
3527
3532
  const { operation, access } = classifyStoredOnlyRequest(method, url);
3528
3533
  if (access !== OperationAccesses.stored) {
3529
3534
  throw new CliError({
@@ -3535,8 +3540,8 @@ function storedOnlyRequestHeaders(method, url) {
3535
3540
  }
3536
3541
  return { [STORED_ONLY_HEADER]: "1" };
3537
3542
  }
3538
- function storedOnlyProbeHeaders() {
3539
- return ["1", "true"].includes((process.env.CANONRY_STORED_ONLY ?? "").toLowerCase()) ? { [STORED_ONLY_HEADER]: "1" } : {};
3543
+ function storedOnlyProbeHeaders(storedOnly = false) {
3544
+ return storedOnly || ["1", "true"].includes((process.env.CANONRY_STORED_ONLY ?? "").toLowerCase()) ? { [STORED_ONLY_HEADER]: "1" } : {};
3540
3545
  }
3541
3546
  var SAFE_CLIENT_NAME = /^\w[\w./-]{0,127}$/;
3542
3547
  var SAFE_ACTOR_SESSION = /^\w[\w.:-]{0,127}$/;
@@ -3588,6 +3593,8 @@ var ApiClient = class {
3588
3593
  apiKey;
3589
3594
  probePromise = null;
3590
3595
  probeSkipped;
3596
+ storedOnly;
3597
+ signal;
3591
3598
  heyClient;
3592
3599
  requestHeaders;
3593
3600
  /** Tracks the base URL most recently applied to `heyClient` so probe-driven updates only re-configure when something actually changed. */
@@ -3596,6 +3603,8 @@ var ApiClient = class {
3596
3603
  this.originUrl = baseUrl.replace(/\/$/, "");
3597
3604
  this.apiKey = apiKey;
3598
3605
  this.probeSkipped = opts?.skipProbe ?? false;
3606
+ this.storedOnly = opts?.storedOnly === true;
3607
+ this.signal = opts?.signal;
3599
3608
  this.heyClientBaseUrl = this.originUrl;
3600
3609
  const actorSession = safeActorSession(opts?.actorSession);
3601
3610
  const surface = opts?.surface ?? "cli";
@@ -3609,15 +3618,19 @@ var ApiClient = class {
3609
3618
  };
3610
3619
  this.heyClient = createClient2({ baseUrl: this.originUrl, apiKey: this.apiKey, headers: this.requestHeaders });
3611
3620
  this.heyClient.interceptors.request.use((request) => {
3612
- for (const [key, value] of Object.entries(storedOnlyRequestHeaders(request.method, request.url.toString()))) request.headers.set(key, value);
3621
+ for (const [key, value] of Object.entries(storedOnlyRequestHeaders(request.method, request.url.toString(), this.storedOnly))) request.headers.set(key, value);
3613
3622
  const tags = usageTagStore.getStore();
3614
3623
  if (tags?.mcpTool) request.headers.set(USAGE_TELEMETRY_HEADERS.mcpTool, tags.mcpTool);
3615
3624
  if (tags?.mcpCall) request.headers.set(USAGE_TELEMETRY_HEADERS.mcpCall, tags.mcpCall);
3616
3625
  const mcpClient = normalizeAgentSlug(tags?.mcpClient);
3617
3626
  if (mcpClient) request.headers.set(USAGE_TELEMETRY_HEADERS.mcpClient, mcpClient);
3618
- return request;
3627
+ return this.signal || tags?.signal ? new Request(request, { signal: this.requestSignal(request.signal) }) : request;
3619
3628
  });
3620
3629
  }
3630
+ requestSignal(signal) {
3631
+ const signals = [this.signal, usageTagStore.getStore()?.signal, signal].filter((entry) => entry !== void 0);
3632
+ return signals.length > 1 ? AbortSignal.any(signals) : signals[0];
3633
+ }
3621
3634
  /**
3622
3635
  * On first API call, probe /health to auto-discover basePath when the user
3623
3636
  * hasn't configured one locally. This lets `canonry run` in a separate shell
@@ -3631,8 +3644,8 @@ var ApiClient = class {
3631
3644
  try {
3632
3645
  const origin = new URL(this.originUrl).origin;
3633
3646
  const res = await fetch(`${origin}/health`, {
3634
- headers: storedOnlyProbeHeaders(),
3635
- signal: AbortSignal.timeout(2e3)
3647
+ headers: storedOnlyProbeHeaders(this.storedOnly),
3648
+ signal: this.requestSignal(AbortSignal.timeout(2e3))
3636
3649
  });
3637
3650
  if (res.ok) {
3638
3651
  const body = await res.json();
@@ -3797,7 +3810,7 @@ var ApiClient = class {
3797
3810
  */
3798
3811
  async streamPost(path, body, signal) {
3799
3812
  const candidateUrl = `${this.originUrl}/api/v1${path}`;
3800
- const storedOnlyHeaders = storedOnlyRequestHeaders("POST", candidateUrl);
3813
+ const storedOnlyHeaders = storedOnlyRequestHeaders("POST", candidateUrl, this.storedOnly);
3801
3814
  await this.probeBasePath();
3802
3815
  const url = `${this.originUrl}/api/v1${path}`;
3803
3816
  const headers = {
@@ -3808,7 +3821,12 @@ var ApiClient = class {
3808
3821
  };
3809
3822
  let res;
3810
3823
  try {
3811
- res = await fetch(url, { method: "POST", headers, body: JSON.stringify(body ?? {}), signal });
3824
+ res = await fetch(url, {
3825
+ method: "POST",
3826
+ headers,
3827
+ body: JSON.stringify(body ?? {}),
3828
+ signal: this.requestSignal(signal)
3829
+ });
3812
3830
  } catch (err) {
3813
3831
  if (err instanceof CliError) throw err;
3814
3832
  const msg = describeError(err);
@@ -3861,6 +3879,9 @@ var ApiClient = class {
3861
3879
  () => getApiV1ProjectsByNameDeletePreview({ client: this.heyClient, path: { name } })
3862
3880
  );
3863
3881
  }
3882
+ async getMcpProfile() {
3883
+ return this.invoke(() => getApiV1McpProfile({ client: this.heyClient }));
3884
+ }
3864
3885
  async getStatus(opts) {
3865
3886
  return this.invoke(
3866
3887
  () => getApiV1Status({ client: this.heyClient, query: { project: opts?.project, problems: opts?.problems } })
@@ -3916,11 +3937,12 @@ var ApiClient = class {
3916
3937
  if (opts.until) params.set("until", opts.until);
3917
3938
  if (opts.includeProbes) params.set("includeProbes", "true");
3918
3939
  const url = `${this.originUrl}/api/v1/projects/${encodeURIComponent(project)}/results/export?${params.toString()}`;
3919
- const storedOnlyHeaders = storedOnlyRequestHeaders("GET", url);
3940
+ const storedOnlyHeaders = storedOnlyRequestHeaders("GET", url, this.storedOnly);
3920
3941
  let res;
3921
3942
  try {
3922
3943
  res = await fetch(url, {
3923
- headers: { ...this.requestHeaders, ...storedOnlyHeaders }
3944
+ headers: { ...this.requestHeaders, ...storedOnlyHeaders },
3945
+ signal: this.requestSignal()
3924
3946
  });
3925
3947
  } catch (err) {
3926
3948
  const message = describeError(err);
@@ -4758,10 +4780,10 @@ var ApiClient = class {
4758
4780
  * never run the CLI about a newer release.
4759
4781
  */
4760
4782
  async getServerUpdateAvailable() {
4761
- if (storedOnlyProbeHeaders()[STORED_ONLY_HEADER]) return null;
4783
+ if (storedOnlyProbeHeaders(this.storedOnly)[STORED_ONLY_HEADER]) return null;
4762
4784
  try {
4763
4785
  await this.probeBasePath();
4764
- const res = await fetch(`${this.originUrl}/health`, { signal: AbortSignal.timeout(2e3) });
4786
+ const res = await fetch(`${this.originUrl}/health`, { signal: this.requestSignal(AbortSignal.timeout(2e3)) });
4765
4787
  if (!res.ok) return null;
4766
4788
  const body = await res.json();
4767
4789
  return parseServerUpdateAvailable(body?.updateAvailable);