@canonry/canonry 7.73.0 → 7.75.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-Dy9_auot.js +18 -0
  2. package/assets/assets/{AuditHistoryPanel-yrgfS5B_.js → AuditHistoryPanel-BVTD5aDT.js} +1 -1
  3. package/assets/assets/{BacklinksPage-DJM6z03g.js → BacklinksPage-B3UasiLF.js} +1 -1
  4. package/assets/assets/{HistoryPage-CNvAVJ1S.js → HistoryPage-BeKtZ449.js} +1 -1
  5. package/assets/assets/{MeasurementPropertyPage-BVVYhOxR.js → MeasurementPropertyPage-Cm-jzeY8.js} +1 -1
  6. package/assets/assets/{ProjectPage-CPRD8kR9.js → ProjectPage-C3iapgWm.js} +1 -1
  7. package/assets/assets/{RunsPage-Ck33dcjz.js → RunsPage-bRhgxSV_.js} +1 -1
  8. package/assets/assets/{SettingsPage-CS_t4Dai.js → SettingsPage-fPEwb0Fh.js} +1 -1
  9. package/assets/assets/{SiteHealthSection-BurKnHpn.js → SiteHealthSection-Bk4zrPnb.js} +2 -2
  10. package/assets/assets/ToneBadge-DfEkyFHe.js +60 -0
  11. package/assets/assets/{TrafficPage-DAiY698E.js → TrafficPage-CzdZa-dz.js} +1 -1
  12. package/assets/assets/{TrafficSourceDetailPage-clJSX2rr.js → TrafficSourceDetailPage-B-7STzgQ.js} +1 -1
  13. package/assets/assets/{account-context-DDEhuoP2.js → account-context-C0wMdIfs.js} +1 -1
  14. package/assets/assets/{card-DbR-lBY3.js → card-CdfP76v-.js} +1 -1
  15. package/assets/assets/{extract-error-message-7_Vm2DQF.js → extract-error-message-D36I9Bna.js} +1 -1
  16. package/assets/assets/{format-helpers-vtahpXTQ.js → format-helpers-Ja8nzHvN.js} +1 -1
  17. package/assets/assets/{index-BIhCeXvc.js → index-BWMizh5y.js} +4 -4
  18. package/assets/assets/{query-client-TlFXYJ9o.js → query-client-jOrIVlKd.js} +1 -1
  19. package/assets/assets/{react-query-C5Mv8xfD.js → react-query-BrM5m2wm.js} +1 -1
  20. package/assets/assets/{react-sigma_core.esm.min-DmggJ7YC.js → react-sigma_core.esm.min-D2wEGI_h.js} +1 -1
  21. package/assets/assets/{service-CLFURPuM.js → service-jrrtReGW.js} +1 -1
  22. package/assets/index.html +7 -7
  23. package/dist/{ads-TX5622SS.js → ads-IVD2KC7R.js} +3 -3
  24. package/dist/{agent-AIOQL66U.js → agent-FTNZ4DVP.js} +7 -7
  25. package/dist/{agent-ask-A6GIJTBX.js → agent-ask-N3LMHW2E.js} +3 -3
  26. package/dist/{agent-conversations-LHWLKOPQ.js → agent-conversations-Y2GSGKRO.js} +3 -3
  27. package/dist/{agent-memory-F54BPEYN.js → agent-memory-K36FD3LU.js} +3 -3
  28. package/dist/{agent-providers-L74KZOSG.js → agent-providers-ZIAJAJD6.js} +3 -3
  29. package/dist/{agent-transcript-IH65H755.js → agent-transcript-Q4AGCHLB.js} +3 -3
  30. package/dist/{analytics-YWCY2KSY.js → analytics-URO2WOTD.js} +3 -3
  31. package/dist/{apply-BLUUYG2N.js → apply-M4RFPVRN.js} +3 -3
  32. package/dist/{backfill-6WO5CH6Z.js → backfill-EYFE2OGC.js} +9 -9
  33. package/dist/{backlinks-NC7AUGTK.js → backlinks-GR7XW4DH.js} +3 -3
  34. package/dist/{bing-WQUEYHVC.js → bing-A4Q5V3DT.js} +3 -3
  35. package/dist/{bootstrap-AXZV4BBC.js → bootstrap-OGYIIZXE.js} +10 -10
  36. package/dist/{cdp-DUG5PMUD.js → cdp-5WSH26OU.js} +7 -7
  37. package/dist/{chunk-HJHFW455.js → chunk-2BDWXHYF.js} +3 -3
  38. package/dist/{chunk-DLVGMRM5.js → chunk-2WBT6TEJ.js} +1 -1
  39. package/dist/{chunk-JQNVNB63.js → chunk-3TCCNK2T.js} +3 -3
  40. package/dist/{chunk-6YW24AUN.js → chunk-46KV7CZU.js} +2 -2
  41. package/dist/{chunk-4JMTDLFV.js → chunk-4LR2SXYB.js} +2 -2
  42. package/dist/{chunk-3WPTMLQI.js → chunk-4QHTXT4A.js} +3 -3
  43. package/dist/{chunk-MRSNLKSM.js → chunk-5QR7D4RQ.js} +1 -1
  44. package/dist/{chunk-HKV4UWG5.js → chunk-5SVPFDUM.js} +201 -92
  45. package/dist/{chunk-S77W2XSI.js → chunk-7J7E2F3M.js} +4 -4
  46. package/dist/{chunk-HEL6DKDN.js → chunk-7UVCZZQJ.js} +1 -1
  47. package/dist/{chunk-6ATKY252.js → chunk-C3UFOS7J.js} +2 -2
  48. package/dist/{chunk-3ANSG6YT.js → chunk-CYXUQNIQ.js} +335 -335
  49. package/dist/{chunk-PAIYFNNY.js → chunk-D5XPB7MM.js} +1 -1
  50. package/dist/{chunk-GUFKUPKZ.js → chunk-E6NE3FJC.js} +3 -3
  51. package/dist/{chunk-SF5JLMLG.js → chunk-FCGYYZHL.js} +5 -1
  52. package/dist/{chunk-HIGBV77K.js → chunk-GD3L63V5.js} +36 -23
  53. package/dist/{chunk-GWDMWKM6.js → chunk-JPOIDGGF.js} +1 -1
  54. package/dist/{chunk-2Y6MSB4J.js → chunk-JSCO223C.js} +1 -1
  55. package/dist/{chunk-GNBATQS3.js → chunk-KF76GJ7L.js} +6 -6
  56. package/dist/{chunk-HGMTGC34.js → chunk-LBFWNA4V.js} +4 -4
  57. package/dist/{chunk-WLWOGBLJ.js → chunk-M7OLPSCA.js} +4 -4
  58. package/dist/{chunk-WH2M2MQF.js → chunk-MJGY7NBK.js} +2 -2
  59. package/dist/{chunk-F5D4GPZQ.js → chunk-NKNA2DSS.js} +3 -3
  60. package/dist/{chunk-5PA7SJ2M.js → chunk-OF6UW77Y.js} +5 -5
  61. package/dist/{chunk-XDQJOZKJ.js → chunk-PSNTEGNY.js} +1 -1
  62. package/dist/{chunk-3YIKSZHN.js → chunk-RPJJOBKN.js} +1 -1
  63. package/dist/{chunk-4B6DE7BB.js → chunk-RZVZONVL.js} +2 -2
  64. package/dist/{chunk-QS6RIP37.js → chunk-TESDUMVK.js} +1 -1
  65. package/dist/{chunk-B6R223HQ.js → chunk-TRAD6XS4.js} +8 -8
  66. package/dist/{chunk-T5PWWDMJ.js → chunk-U5UXQV57.js} +2 -2
  67. package/dist/{chunk-PRSQ4R47.js → chunk-W5GZENMO.js} +2 -2
  68. package/dist/{chunk-ETVM3T7K.js → chunk-WWZ6RZJ5.js} +4 -4
  69. package/dist/{chunk-JPM3VC6A.js → chunk-XYYWKCJQ.js} +1 -1
  70. package/dist/{chunk-AZQNJX3T.js → chunk-Z2FY6AGZ.js} +2 -2
  71. package/dist/{chunk-6W5AR4IW.js → chunk-ZXYCPRNY.js} +1 -1
  72. package/dist/{citations-FUZ6DGP5.js → citations-K44GWHAZ.js} +3 -3
  73. package/dist/{cli-catalog-BXHG544D.js → cli-catalog-ZVFLJXID.js} +3 -3
  74. package/dist/{cli-commands-GMOR67F5.js → cli-commands-RQTNKS2T.js} +7 -7
  75. package/dist/cli.js +13 -13
  76. package/dist/{competitor-QDCH7PLT.js → competitor-MHYOHVOJ.js} +3 -3
  77. package/dist/{content-JX2CPIPR.js → content-AWDA3GYL.js} +3 -3
  78. package/dist/{dashboard-OOWMLMKV.js → dashboard-P2ODMTQG.js} +6 -6
  79. package/dist/{demo-GKSMSKOY.js → demo-FSRCJINC.js} +1 -1
  80. package/dist/{demo-server-UQO4XKHN.js → demo-server-ROGIRBAR.js} +12 -12
  81. package/dist/{discover-YQSVQRUV.js → discover-I2SVIHRG.js} +3 -3
  82. package/dist/{discover-eval-FN5RL6QI.js → discover-eval-VV2AKXCV.js} +3 -3
  83. package/dist/{doctor-YHJLAEJJ.js → doctor-25I3JSKE.js} +3 -3
  84. package/dist/{evidence-KUPZMBIK.js → evidence-PNYKUX2F.js} +3 -3
  85. package/dist/{export-cmd-YSEPTUUF.js → export-cmd-F4XZGLGF.js} +3 -3
  86. package/dist/{ga-WNS7Q7TF.js → ga-S4DIQ5SZ.js} +3 -3
  87. package/dist/{gbp-5NYFK4TW.js → gbp-IYCVTLP7.js} +3 -3
  88. package/dist/{google-T4CF4WCI.js → google-FAJ5RL57.js} +4 -4
  89. package/dist/{google-marketing-IXPMUBXZ.js → google-marketing-XPE6CVQI.js} +1 -1
  90. package/dist/{health-cmd-2W37CF6J.js → health-cmd-HLAFQSU7.js} +3 -3
  91. package/dist/{history-PA3O6ZHX.js → history-U67NTFZP.js} +3 -3
  92. package/dist/index.d.ts +81 -65
  93. package/dist/index.js +25 -25
  94. package/dist/{init-I3P7FINF.js → init-UHI3D6Y2.js} +12 -12
  95. package/dist/{insights-O5PUVHTW.js → insights-FKVB3XXM.js} +3 -3
  96. package/dist/intelligence-service-G6NCD4JJ.js +16 -0
  97. package/dist/{journeys-GU34O3HE.js → journeys-P7OXKDSX.js} +3 -3
  98. package/dist/{keys-RXBFRNUS.js → keys-RJEM4M4Z.js} +3 -3
  99. package/dist/{keyword-MASR36DK.js → keyword-PLNTBFW4.js} +3 -3
  100. package/dist/{logs-OTA7MV4P.js → logs-BUTBHKGP.js} +3 -3
  101. package/dist/{mcp-ZQYN2NET.js → mcp-C4PZHJIB.js} +4 -4
  102. package/dist/mcp.js +9 -9
  103. package/dist/{measurement-plan-ZGVO36TN.js → measurement-plan-DFYESGWR.js} +5 -5
  104. package/dist/{notify-KS5CR3S2.js → notify-WYSGY4BA.js} +3 -3
  105. package/dist/{organic-evidence-CTH52AC5.js → organic-evidence-L5FPG5J3.js} +3 -3
  106. package/dist/{overview-IRCIDE5H.js → overview-RD2PEETY.js} +4 -4
  107. package/dist/{project-H5XPI5CT.js → project-IK24PHY3.js} +3 -3
  108. package/dist/{query-2R6EZG5T.js → query-PX6PMHEN.js} +3 -3
  109. package/dist/{research-OA3UQAV3.js → research-QLETOCJD.js} +3 -3
  110. package/dist/{results-export-XUXU3WMX.js → results-export-NAS2DEGI.js} +3 -3
  111. package/dist/{run-7IIOB6AS.js → run-SAPT3KF7.js} +4 -4
  112. package/dist/{schedule-DUTPZB5C.js → schedule-2HXFEEUK.js} +3 -3
  113. package/dist/{search-TWUJD7KH.js → search-UBMFZYR4.js} +3 -3
  114. package/dist/{serve-BYHHULUU.js → serve-IZ2FZ7F3.js} +26 -26
  115. package/dist/{session-M5XSTGPI.js → session-VMR37NOP.js} +13 -13
  116. package/dist/{settings-GQXU5M3H.js → settings-LQT7O7AG.js} +3 -3
  117. package/dist/{skills-F6AXQHTO.js → skills-CYHWYN42.js} +2 -2
  118. package/dist/{snapshot-QFKUO4QK.js → snapshot-ZKHJJ4YE.js} +3 -3
  119. package/dist/{src-52USCS7O.js → src-SXB3MOP3.js} +2 -2
  120. package/dist/{status-42LPR7YH.js → status-OU26EWSD.js} +7 -5
  121. package/dist/{technical-aeo-SUILL4MY.js → technical-aeo-BYFRX5TT.js} +3 -3
  122. package/dist/{telemetry-RITB7YZH.js → telemetry-FSQTXHIR.js} +4 -4
  123. package/dist/{tools-DGWJOLNS.js → tools-ZPU5O6DM.js} +11 -11
  124. package/dist/{traffic-3YC3HUNT.js → traffic-YEECHDQM.js} +5 -5
  125. package/dist/{users-BST5DQ5R.js → users-5HHP54GP.js} +3 -3
  126. package/dist/{visibility-stats-NCNP4AL2.js → visibility-stats-NYXIEPVB.js} +3 -3
  127. package/dist/{wordpress-4HQDLQVE.js → wordpress-RPQ44OM5.js} +3 -3
  128. package/package.json +1 -1
  129. package/assets/assets/AgentSetupPage-D7YVdPWO.js +0 -17
  130. package/assets/assets/ToneBadge-Df8oiKsQ.js +0 -60
  131. package/dist/intelligence-service-EJQQNO65.js +0 -16
@@ -20,7 +20,7 @@ import {
20
20
  templateLinkRatio,
21
21
  templateLinkUbiquityAvailable,
22
22
  validationError
23
- } from "./chunk-SF5JLMLG.js";
23
+ } from "./chunk-FCGYYZHL.js";
24
24
  import {
25
25
  __export
26
26
  } from "./chunk-MLKGABMK.js";
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-WH2M2MQF.js";
3
+ } from "./chunk-MJGY7NBK.js";
4
4
  import {
5
5
  emitJsonl
6
6
  } from "./chunk-Z7IUAJOF.js";
7
7
  import {
8
8
  measurementDraftOperationSchema,
9
9
  runMeasurementDraftAction
10
- } from "./chunk-MRSNLKSM.js";
10
+ } from "./chunk-5QR7D4RQ.js";
11
11
  import {
12
12
  isMachineFormat,
13
13
  systemError
@@ -37,7 +37,7 @@ import {
37
37
  unattributedAnswersLabel,
38
38
  uncheckedSourcesLabel,
39
39
  visibilityReportRequestSchema
40
- } from "./chunk-SF5JLMLG.js";
40
+ } from "./chunk-FCGYYZHL.js";
41
41
 
42
42
  // src/commands/measurement-plan.ts
43
43
  import crypto from "crypto";
@@ -16982,8 +16982,12 @@ var hostedMcpUnavailableReasonSchema = z46.enum([
16982
16982
  "transport-unavailable"
16983
16983
  ]);
16984
16984
  var HostedMcpUnavailableReasons = hostedMcpUnavailableReasonSchema.enum;
16985
+ var mcpPluginConnectionSchema = z46.object({
16986
+ gatewayUrl: z46.string().url(),
16987
+ workspace: z46.string().min(1)
16988
+ });
16985
16989
  var hostedMcpHealthSchema = z46.discriminatedUnion("status", [
16986
- z46.object({ status: z46.literal(HostedMcpStatuses.ready), url: z46.string().url() }),
16990
+ z46.object({ status: z46.literal(HostedMcpStatuses.ready), url: z46.string().url(), plugin: mcpPluginConnectionSchema.optional() }),
16987
16991
  z46.object({ status: z46.literal(HostedMcpStatuses.unavailable), reason: hostedMcpUnavailableReasonSchema })
16988
16992
  ]);
16989
16993
  var mcpHealthSchema = z46.object({
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  answerServiceAdapters,
3
3
  answerServiceDescriptors
4
- } from "./chunk-6W5AR4IW.js";
4
+ } from "./chunk-ZXYCPRNY.js";
5
5
  import {
6
6
  AeroLlmUsageFeatures,
7
7
  aeroTurnStatus,
@@ -27,14 +27,14 @@ import {
27
27
  resolveConfiguredAgentProvider,
28
28
  resolveSessionProviderAndModel,
29
29
  setAeroSystemPrompt
30
- } from "./chunk-GNBATQS3.js";
30
+ } from "./chunk-KF76GJ7L.js";
31
31
  import {
32
32
  AeroToolProfiles,
33
33
  AeroToolScopes,
34
34
  buildAeroStateTools,
35
35
  isAeroToolProfile,
36
36
  truncateToolResult
37
- } from "./chunk-ETVM3T7K.js";
37
+ } from "./chunk-WWZ6RZJ5.js";
38
38
  import {
39
39
  getGoogleAuthConfig,
40
40
  getGoogleConnection,
@@ -53,7 +53,7 @@ import {
53
53
  removeCloudflareTrafficConnection,
54
54
  removeCloudflareTrafficConnectionBySourceId,
55
55
  upsertCloudflareTrafficConnection
56
- } from "./chunk-XDQJOZKJ.js";
56
+ } from "./chunk-PSNTEGNY.js";
57
57
  import {
58
58
  claudeAdapter,
59
59
  embedQueries,
@@ -64,7 +64,7 @@ import {
64
64
  openaiAdapter,
65
65
  openrouterAdapter,
66
66
  perplexityAdapter
67
- } from "./chunk-6ATKY252.js";
67
+ } from "./chunk-C3UFOS7J.js";
68
68
  import {
69
69
  classifyUsageSurface,
70
70
  createApiUsageTelemetry,
@@ -76,7 +76,7 @@ import {
76
76
  startOutcomeTimer,
77
77
  trackFeatureCompleted,
78
78
  trackInstallState
79
- } from "./chunk-S77W2XSI.js";
79
+ } from "./chunk-7J7E2F3M.js";
80
80
  import {
81
81
  isLoopbackBindHost
82
82
  } from "./chunk-TSENU4GG.js";
@@ -84,7 +84,7 @@ import {
84
84
  isApiProviderRegistrable,
85
85
  isCdpProviderRegistrable,
86
86
  registeredProviderNames
87
- } from "./chunk-DLVGMRM5.js";
87
+ } from "./chunk-2WBT6TEJ.js";
88
88
  import {
89
89
  checkLatestVersionForServer,
90
90
  getOrCreateAnonymousId,
@@ -95,17 +95,17 @@ import {
95
95
  recordDashboardEvent,
96
96
  setTelemetryPreference,
97
97
  trackEvent
98
- } from "./chunk-PRSQ4R47.js";
98
+ } from "./chunk-W5GZENMO.js";
99
99
  import {
100
100
  createCanonryMcpServer
101
- } from "./chunk-F5D4GPZQ.js";
101
+ } from "./chunk-NKNA2DSS.js";
102
102
  import {
103
103
  CANONRY_MCP_TIERS,
104
104
  CANONRY_MCP_TOOLKIT_NAMES
105
105
  } from "./chunk-NDTU7FGL.js";
106
106
  import {
107
107
  ApiClient
108
- } from "./chunk-WH2M2MQF.js";
108
+ } from "./chunk-MJGY7NBK.js";
109
109
  import {
110
110
  AGENT_PROVIDERS,
111
111
  adapterSupportsBatch,
@@ -136,21 +136,21 @@ import {
136
136
  saveConfigPatch,
137
137
  sentimentInstallReadiness,
138
138
  updateSharedProviderExecutionGate
139
- } from "./chunk-HKV4UWG5.js";
139
+ } from "./chunk-5SVPFDUM.js";
140
140
  import {
141
141
  getBundledSkillSnapshots
142
- } from "./chunk-HEL6DKDN.js";
142
+ } from "./chunk-7UVCZZQJ.js";
143
143
  import {
144
144
  computeFactorAverages,
145
145
  deleteSiteCrawlGraphLayout,
146
146
  persistSiteCrawlGraphLayout,
147
147
  prepareSiteCrawlGraphLayout,
148
148
  recordedSharePct
149
- } from "./chunk-6YW24AUN.js";
149
+ } from "./chunk-46KV7CZU.js";
150
150
  import {
151
151
  CanonryMcpToolNames,
152
152
  canonryMcpTools
153
- } from "./chunk-3WPTMLQI.js";
153
+ } from "./chunk-4QHTXT4A.js";
154
154
  import {
155
155
  PACKAGE_VERSION
156
156
  } from "./chunk-AOJU5LKX.js";
@@ -159,16 +159,16 @@ import {
159
159
  } from "./chunk-HGMYEDAQ.js";
160
160
  import {
161
161
  IntelligenceService
162
- } from "./chunk-5PA7SJ2M.js";
162
+ } from "./chunk-OF6UW77Y.js";
163
163
  import {
164
164
  addLogListener,
165
165
  createFastifyLogger,
166
166
  createLogger
167
- } from "./chunk-AZQNJX3T.js";
167
+ } from "./chunk-Z2FY6AGZ.js";
168
168
  import {
169
169
  computeCitedCompetitorDomains,
170
170
  determineCitationState
171
- } from "./chunk-JPM3VC6A.js";
171
+ } from "./chunk-XYYWKCJQ.js";
172
172
  import {
173
173
  BingApiError,
174
174
  CC_CACHE_DIR,
@@ -289,7 +289,7 @@ import {
289
289
  webhookResponseReason,
290
290
  webhookTargetRefusalReason,
291
291
  writeAuditLog
292
- } from "./chunk-WLWOGBLJ.js";
292
+ } from "./chunk-M7OLPSCA.js";
293
293
  import {
294
294
  OperationalLogStore,
295
295
  SentimentIdempotencyConflict,
@@ -375,7 +375,7 @@ import {
375
375
  siteLivenessState,
376
376
  trafficSources,
377
377
  usageCounters
378
- } from "./chunk-PAIYFNNY.js";
378
+ } from "./chunk-D5XPB7MM.js";
379
379
  import {
380
380
  AGENT_MEMORY_VALUE_MAX_BYTES,
381
381
  AI_ENGINE_DOMAINS,
@@ -627,7 +627,7 @@ import {
627
627
  winnabilityClassLabel,
628
628
  withRetry,
629
629
  withSkippedProviders
630
- } from "./chunk-SF5JLMLG.js";
630
+ } from "./chunk-FCGYYZHL.js";
631
631
 
632
632
  // src/google-marketing-runtime.ts
633
633
  import crypto2 from "crypto";
@@ -5810,7 +5810,7 @@ function nonBlank(value) {
5810
5810
  return trimmed ? trimmed : void 0;
5811
5811
  }
5812
5812
  function resolveBuildCommit(env = process.env) {
5813
- const embedded = true ? "a9c886130b3b0c74de10313ac5ebd1c0853664d0" : void 0;
5813
+ const embedded = true ? "c83461c5dec416cec973e066da1c60bb964869b0" : void 0;
5814
5814
  return nonBlank(embedded) ?? nonBlank(env.CANONRY_COMMIT);
5815
5815
  }
5816
5816
  function resolveInstanceIdentity(env = process.env) {
@@ -17043,7 +17043,19 @@ function mcpHttpHealth(app, apiPrefix, hosted) {
17043
17043
  return unavailable(HostedMcpUnavailableReasons["oauth-unavailable"]);
17044
17044
  }
17045
17045
  if (!hosted.hasAccounts) return unavailable(HostedMcpUnavailableReasons["account-required"]);
17046
- return { status, hosted: { status: HostedMcpStatuses.ready, url: `${publicUrl.origin}${apiPrefix}/mcp` } };
17046
+ const plugin = pluginConnection(hosted.plugin, publicUrl);
17047
+ return { status, hosted: { status: HostedMcpStatuses.ready, url: `${publicUrl.origin}${apiPrefix}/mcp`, ...plugin ? { plugin } : {} } };
17048
+ }
17049
+ function pluginConnection(gateway, publicUrl) {
17050
+ if (!gateway?.url) return void 0;
17051
+ let url;
17052
+ try {
17053
+ url = new URL(gateway.url);
17054
+ } catch {
17055
+ return void 0;
17056
+ }
17057
+ if (url.protocol !== "https:" || url.username || url.password || url.search || url.hash) return void 0;
17058
+ return { gatewayUrl: url.href, workspace: gateway.workspace?.trim() || publicUrl.host };
17047
17059
  }
17048
17060
  function registerMcpHttpRoutes(scope, opts) {
17049
17061
  const sessions = /* @__PURE__ */ new Map();
@@ -20387,7 +20399,8 @@ async function createServer(opts) {
20387
20399
  const getMcpHealth = () => mcpHttpHealth(app, apiPrefix, {
20388
20400
  publicUrl: opts.config.publicUrl,
20389
20401
  hasAccounts: anyUsersExist(opts.db),
20390
- authorizationPath
20402
+ authorizationPath,
20403
+ plugin: opts.config.mcpGateway
20391
20404
  });
20392
20405
  const credentialChecker = createCredentialChecker({
20393
20406
  db: opts.db,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  USAGE_TELEMETRY_HEADERS,
3
3
  redactLogString
4
- } from "./chunk-SF5JLMLG.js";
4
+ } from "./chunk-FCGYYZHL.js";
5
5
 
6
6
  // ../api-routes/src/request-context.ts
7
7
  import { AsyncLocalStorage } from "async_hooks";
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-HGMYEDAQ.js";
5
5
  import {
6
6
  describeError
7
- } from "./chunk-SF5JLMLG.js";
7
+ } from "./chunk-FCGYYZHL.js";
8
8
 
9
9
  // src/gsc-sitemap-submission.ts
10
10
  function dedupeGscSitemapUrls(urls) {
@@ -5,7 +5,7 @@ import {
5
5
  isStoredPageReadTool,
6
6
  isStoredReadTool,
7
7
  truncateToolResult
8
- } from "./chunk-ETVM3T7K.js";
8
+ } from "./chunk-WWZ6RZJ5.js";
9
9
  import {
10
10
  CANONRY_MCP_TOOLKITS
11
11
  } from "./chunk-NDTU7FGL.js";
@@ -22,18 +22,18 @@ import {
22
22
  resolveApiKeyFor,
23
23
  resolveModelForProvider,
24
24
  validateAgentProviderRegistry
25
- } from "./chunk-HKV4UWG5.js";
25
+ } from "./chunk-5SVPFDUM.js";
26
26
  import {
27
27
  CanonryMcpToolNames,
28
28
  canonryMcpTools
29
- } from "./chunk-3WPTMLQI.js";
29
+ } from "./chunk-4QHTXT4A.js";
30
30
  import {
31
31
  createLogger
32
- } from "./chunk-AZQNJX3T.js";
32
+ } from "./chunk-Z2FY6AGZ.js";
33
33
  import {
34
34
  agentToolEvents,
35
35
  llmUsageEvents
36
- } from "./chunk-PAIYFNNY.js";
36
+ } from "./chunk-D5XPB7MM.js";
37
37
  import {
38
38
  MeasurementPortfolioLists,
39
39
  SeoCapabilities,
@@ -42,7 +42,7 @@ import {
42
42
  describeError,
43
43
  validationError,
44
44
  visibilityReportRequestSchema
45
- } from "./chunk-SF5JLMLG.js";
45
+ } from "./chunk-FCGYYZHL.js";
46
46
 
47
47
  // src/agent/session.ts
48
48
  import fs3 from "fs";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  registeredProviderNames
3
- } from "./chunk-DLVGMRM5.js";
3
+ } from "./chunk-2WBT6TEJ.js";
4
4
  import {
5
5
  configExists,
6
6
  loadConfigRaw
7
- } from "./chunk-HKV4UWG5.js";
7
+ } from "./chunk-5SVPFDUM.js";
8
8
 
9
9
  // src/setup-state.ts
10
10
  import fs from "fs";
@@ -28,7 +28,7 @@ async function buildSetupState() {
28
28
  }
29
29
  if (dbPath && fs.existsSync(dbPath)) {
30
30
  try {
31
- const { createClient, projects, queries: queriesTable } = await import("./src-52USCS7O.js");
31
+ const { createClient, projects, queries: queriesTable } = await import("./src-SXB3MOP3.js");
32
32
  const db = createClient(dbPath);
33
33
  project_count = db.select({ id: projects.id }).from(projects).all().length;
34
34
  const firstQuery = db.select({ id: queriesTable.id }).from(queriesTable).limit(1).all();
@@ -47,7 +47,7 @@ function queueServeHandoff() {
47
47
  async function runPendingServeHandoff(format) {
48
48
  if (!pendingServeHandoff) return;
49
49
  pendingServeHandoff = false;
50
- const { serveCommand } = await import("./serve-BYHHULUU.js");
50
+ const { serveCommand } = await import("./serve-IZ2FZ7F3.js");
51
51
  await serveCommand(format);
52
52
  }
53
53
 
@@ -9,14 +9,14 @@ import {
9
9
  normalizeCloudflareWorkerEvent,
10
10
  sessionizeJourneyRequests,
11
11
  verifyRequestSignature
12
- } from "./chunk-QS6RIP37.js";
12
+ } from "./chunk-TESDUMVK.js";
13
13
  import {
14
14
  currentOutcomeAttribution,
15
15
  getRequestContext,
16
16
  registerRequestContext,
17
17
  requestAuditIdentity,
18
18
  sanitizeRequestContext
19
- } from "./chunk-GWDMWKM6.js";
19
+ } from "./chunk-JPOIDGGF.js";
20
20
  import {
21
21
  SentimentIdempotencyConflict,
22
22
  SentimentRepository,
@@ -157,7 +157,7 @@ import {
157
157
  userSessions,
158
158
  users,
159
159
  writeNegativeReviewMaxStars
160
- } from "./chunk-PAIYFNNY.js";
160
+ } from "./chunk-D5XPB7MM.js";
161
161
  import {
162
162
  ADS_ACTIVATE_SCOPE,
163
163
  ADS_ACTIVATION_ABSOLUTE_MAX_ENTITIES,
@@ -1196,7 +1196,7 @@ import {
1196
1196
  wordpressSchemaDeployResultDtoSchema,
1197
1197
  wordpressSchemaStatusResultDtoSchema,
1198
1198
  wordpressStatusDtoSchema
1199
- } from "./chunk-SF5JLMLG.js";
1199
+ } from "./chunk-FCGYYZHL.js";
1200
1200
 
1201
1201
  // ../api-routes/src/user-session.ts
1202
1202
  import crypto2 from "crypto";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  loadConfig
3
- } from "./chunk-HKV4UWG5.js";
3
+ } from "./chunk-5SVPFDUM.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-SF5JLMLG.js";
39
+ } from "./chunk-FCGYYZHL.js";
40
40
 
41
41
  // ../api-client-generated/src/generated/core/bodySerializer.gen.ts
42
42
  var jsonBodySerializer = {
@@ -6,12 +6,12 @@ import {
6
6
  import {
7
7
  createApiClient,
8
8
  runWithUsageTags
9
- } from "./chunk-WH2M2MQF.js";
9
+ } from "./chunk-MJGY7NBK.js";
10
10
  import {
11
11
  canonryMcpTools,
12
12
  mcpOutputSchema,
13
13
  toolOperationAccess
14
- } from "./chunk-3WPTMLQI.js";
14
+ } from "./chunk-4QHTXT4A.js";
15
15
  import {
16
16
  PACKAGE_VERSION
17
17
  } from "./chunk-AOJU5LKX.js";
@@ -24,7 +24,7 @@ import {
24
24
  isReadOnlyKey,
25
25
  restrictedWriteScopes,
26
26
  upgradeCaveatFor
27
- } from "./chunk-SF5JLMLG.js";
27
+ } from "./chunk-FCGYYZHL.js";
28
28
 
29
29
  // src/mcp/server.ts
30
30
  import { randomUUID } from "crypto";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  createLogger
3
- } from "./chunk-AZQNJX3T.js";
3
+ } from "./chunk-Z2FY6AGZ.js";
4
4
  import {
5
5
  pickProjectCitedDomain
6
- } from "./chunk-JPM3VC6A.js";
6
+ } from "./chunk-XYYWKCJQ.js";
7
7
  import {
8
8
  GBP_INSIGHT_PROVIDER,
9
9
  PERSISTENT_GAP_THRESHOLD,
@@ -17,7 +17,7 @@ import {
17
17
  mergeGscQueryTotalsWithFallback,
18
18
  readGscQueryDailyRows,
19
19
  readLatestGscDataDate
20
- } from "./chunk-WLWOGBLJ.js";
20
+ } from "./chunk-M7OLPSCA.js";
21
21
  import {
22
22
  competitors,
23
23
  gbpDailyMetrics,
@@ -35,14 +35,14 @@ import {
35
35
  queries,
36
36
  querySnapshots,
37
37
  runs
38
- } from "./chunk-PAIYFNNY.js";
38
+ } from "./chunk-D5XPB7MM.js";
39
39
  import {
40
40
  CitationStates,
41
41
  RunKinds,
42
42
  RunStatuses,
43
43
  RunTriggers,
44
44
  effectiveDomains
45
- } from "./chunk-SF5JLMLG.js";
45
+ } from "./chunk-FCGYYZHL.js";
46
46
 
47
47
  // src/intelligence-service.ts
48
48
  import { eq, desc, asc, and, ne, or, inArray, gte, lte, isNull, sql, exists } from "drizzle-orm";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  cloudflareQueueNameSchema
3
- } from "./chunk-SF5JLMLG.js";
3
+ } from "./chunk-FCGYYZHL.js";
4
4
 
5
5
  // src/cloudflare-traffic-config.ts
6
6
  function unsupportedDeliveryMode(deliveryMode) {
@@ -5,7 +5,7 @@ import {
5
5
  AppError,
6
6
  parseWindowIn,
7
7
  resolveDateRange
8
- } from "./chunk-SF5JLMLG.js";
8
+ } from "./chunk-FCGYYZHL.js";
9
9
 
10
10
  // src/cli-access.ts
11
11
  var CLI_ACCESS_BY_ID = Object.freeze({
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  trackIntegrationConnection
3
- } from "./chunk-S77W2XSI.js";
3
+ } from "./chunk-7J7E2F3M.js";
4
4
  import {
5
5
  cliRuntimeContext
6
- } from "./chunk-PRSQ4R47.js";
6
+ } from "./chunk-W5GZENMO.js";
7
7
 
8
8
  // src/cli-connection-telemetry.ts
9
9
  function trackCliConnection(properties) {
@@ -8,7 +8,7 @@ import {
8
8
  classifyJourneyEntry,
9
9
  hostMatchesDomain,
10
10
  hostOf
11
- } from "./chunk-SF5JLMLG.js";
11
+ } from "./chunk-FCGYYZHL.js";
12
12
 
13
13
  // ../integration-traffic/src/ip-ranges/amazonbot.json
14
14
  var amazonbot_default = {
@@ -7,27 +7,27 @@ import {
7
7
  reparseStoredResult4,
8
8
  reparseStoredResult5,
9
9
  resolveStoredApiResponse
10
- } from "./chunk-6ATKY252.js";
10
+ } from "./chunk-C3UFOS7J.js";
11
11
  import {
12
12
  loadConfig
13
- } from "./chunk-HKV4UWG5.js";
13
+ } from "./chunk-5SVPFDUM.js";
14
14
  import {
15
15
  isMachineFormat
16
16
  } from "./chunk-HGMYEDAQ.js";
17
17
  import {
18
18
  determineCitationState
19
- } from "./chunk-JPM3VC6A.js";
19
+ } from "./chunk-XYYWKCJQ.js";
20
20
  import {
21
21
  backfillProjectAnswerMentions,
22
22
  competitorIdentityColumns,
23
23
  createRunCompetitorResolver,
24
24
  readMarketCompetitorNames,
25
25
  refreshSnapshotMentionIdentity
26
- } from "./chunk-WLWOGBLJ.js";
26
+ } from "./chunk-M7OLPSCA.js";
27
27
  import {
28
28
  classifyAiUserFetch,
29
29
  classifyCrawler
30
- } from "./chunk-QS6RIP37.js";
30
+ } from "./chunk-TESDUMVK.js";
31
31
  import {
32
32
  aiUserFetchEventsHourly,
33
33
  auditLog,
@@ -42,7 +42,7 @@ import {
42
42
  querySnapshots,
43
43
  rawEventSamples,
44
44
  runs
45
- } from "./chunk-PAIYFNNY.js";
45
+ } from "./chunk-D5XPB7MM.js";
46
46
  import {
47
47
  ProviderNames,
48
48
  RetrievalContracts,
@@ -59,7 +59,7 @@ import {
59
59
  extractRecommendedCompetitors,
60
60
  normalizeUrlPath,
61
61
  openRouterRouteModel
62
- } from "./chunk-SF5JLMLG.js";
62
+ } from "./chunk-FCGYYZHL.js";
63
63
 
64
64
  // src/commands/backfill.ts
65
65
  import { setImmediate as yieldToEventLoop } from "timers/promises";
@@ -437,7 +437,7 @@ No DB writes performed. Re-run without --dry-run to apply.`);
437
437
  }
438
438
  }
439
439
  async function backfillInsightsCommand(project, opts) {
440
- const { IntelligenceService } = await import("./intelligence-service-EJQQNO65.js");
440
+ const { IntelligenceService } = await import("./intelligence-service-G6NCD4JJ.js");
441
441
  const config = loadConfig();
442
442
  const db = createClient(config.database);
443
443
  migrate(db);
@@ -4,14 +4,14 @@ import {
4
4
  } from "./chunk-VJWDBFSL.js";
5
5
  import {
6
6
  createApiClient
7
- } from "./chunk-WH2M2MQF.js";
7
+ } from "./chunk-MJGY7NBK.js";
8
8
  import {
9
9
  CliError,
10
10
  isMachineFormat
11
11
  } from "./chunk-HGMYEDAQ.js";
12
12
  import {
13
13
  describeError
14
- } from "./chunk-SF5JLMLG.js";
14
+ } from "./chunk-FCGYYZHL.js";
15
15
 
16
16
  // src/commands/mcp.ts
17
17
  import fs from "fs";
@@ -5,7 +5,7 @@ import {
5
5
  loadConfig,
6
6
  loadConfigRaw,
7
7
  saveConfigPatch
8
- } from "./chunk-HKV4UWG5.js";
8
+ } from "./chunk-5SVPFDUM.js";
9
9
  import {
10
10
  CANONRY_NPM_PACKAGE_URL,
11
11
  compareSemver,
@@ -18,7 +18,7 @@ import {
18
18
  updateCheckEnvOptOut,
19
19
  upgradeCaveatFor,
20
20
  upgradeCommandFor
21
- } from "./chunk-SF5JLMLG.js";
21
+ } from "./chunk-FCGYYZHL.js";
22
22
 
23
23
  // src/runtime-context.ts
24
24
  function cliRuntimeContext(env = process.env, stdio = process) {
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  runWithUsageTags
3
- } from "./chunk-WH2M2MQF.js";
3
+ } from "./chunk-MJGY7NBK.js";
4
4
  import {
5
5
  CanonryMcpToolNames,
6
6
  canonryMcpTools
7
- } from "./chunk-3WPTMLQI.js";
7
+ } from "./chunk-4QHTXT4A.js";
8
8
  import {
9
9
  CliError
10
10
  } from "./chunk-HGMYEDAQ.js";
11
11
  import {
12
12
  buildOpenApiDocument
13
- } from "./chunk-WLWOGBLJ.js";
13
+ } from "./chunk-M7OLPSCA.js";
14
14
  import {
15
15
  DEFAULT_COMPETITOR_AUTO_ALIAS_MODE,
16
16
  MeasurementPortfolioLists,
@@ -23,7 +23,7 @@ import {
23
23
  seoDatasetWithoutVendor,
24
24
  seoProviderSchema,
25
25
  truncateUtf16
26
- } from "./chunk-SF5JLMLG.js";
26
+ } from "./chunk-FCGYYZHL.js";
27
27
 
28
28
  // src/agent/tools.ts
29
29
  import { Type as Type2 } from "@earendil-works/pi-ai";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  hostMatchesDomain
3
- } from "./chunk-SF5JLMLG.js";
3
+ } from "./chunk-FCGYYZHL.js";
4
4
 
5
5
  // src/citation-utils.ts
6
6
  function pickProjectCitedDomain(citedDomains, projectDomains) {
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  getRequestContext
3
- } from "./chunk-GWDMWKM6.js";
3
+ } from "./chunk-JPOIDGGF.js";
4
4
  import {
5
5
  diagnosticIdentity,
6
6
  redactLogString,
7
7
  redactLogValue
8
- } from "./chunk-SF5JLMLG.js";
8
+ } from "./chunk-FCGYYZHL.js";
9
9
 
10
10
  // ../api-routes/src/runtime-logger.ts
11
11
  import { format } from "util";
@@ -28,7 +28,7 @@ import {
28
28
  unknownUsageObservation,
29
29
  usdToMicros,
30
30
  withRetry
31
- } from "./chunk-SF5JLMLG.js";
31
+ } from "./chunk-FCGYYZHL.js";
32
32
 
33
33
  // ../provider-answer-services/src/core/http.ts
34
34
  var MAX_RESPONSE_BYTES = 8 * 1024 * 1024;
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-WH2M2MQF.js";
4
- import "./chunk-HKV4UWG5.js";
3
+ } from "./chunk-MJGY7NBK.js";
4
+ import "./chunk-5SVPFDUM.js";
5
5
  import "./chunk-AOJU5LKX.js";
6
6
  import "./chunk-HGMYEDAQ.js";
7
- import "./chunk-SF5JLMLG.js";
7
+ import "./chunk-FCGYYZHL.js";
8
8
  import "./chunk-MLKGABMK.js";
9
9
 
10
10
  // src/commands/citations.ts