@canonry/canonry 7.59.0 → 7.60.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/agent-workspace/skills/aero/SKILL.md +2 -1
  2. package/assets/agent-workspace/skills/canonry/references/canonry-cli.md +19 -5
  3. package/assets/agent-workspace/skills/canonry/references/server-side-traffic.md +6 -3
  4. package/assets/assets/{AgentSetupPage-DH2Mi2Q7.js → AgentSetupPage-xAe2RSTQ.js} +1 -1
  5. package/assets/assets/{AuditHistoryPanel-DVIQR5y5.js → AuditHistoryPanel-DRGMxc1o.js} +1 -1
  6. package/assets/assets/{BacklinksPage-DFFeaSbH.js → BacklinksPage-OS6r_MtQ.js} +1 -1
  7. package/assets/assets/{HistoryPage-BxDhO9rm.js → HistoryPage-RDxUN7rD.js} +1 -1
  8. package/assets/assets/{MeasurementPropertyPage-B0AkDYxY.js → MeasurementPropertyPage-BVAmJBKa.js} +1 -1
  9. package/assets/assets/{ProjectPage-6_HOcytx.js → ProjectPage-BWY9eFFx.js} +1 -1
  10. package/assets/assets/{RunsPage-BUK5EqC6.js → RunsPage-Fb7IM6iV.js} +1 -1
  11. package/assets/assets/{SettingsPage-CuBUZ4TN.js → SettingsPage-Dz_agQCf.js} +1 -1
  12. package/assets/assets/{SiteHealthSection-CoyiSleA.js → SiteHealthSection-TXp2Cszl.js} +2 -2
  13. package/assets/assets/{ToneBadge-Du4fOtJa.js → ToneBadge-DZzQvXs_.js} +1 -1
  14. package/assets/assets/{TrafficPage-BE9Ay-x-.js → TrafficPage-BKfgooKl.js} +1 -1
  15. package/assets/assets/{TrafficSourceDetailPage-kW0DFcwB.js → TrafficSourceDetailPage-C1HM_4Mh.js} +1 -1
  16. package/assets/assets/{account-context-IN6VE8PV.js → account-context-sj3dKq-a.js} +1 -1
  17. package/assets/assets/{card-DiBSxANp.js → card-DKV0mNmm.js} +1 -1
  18. package/assets/assets/{extract-error-message-_H20efSf.js → extract-error-message-Tfdo6vAJ.js} +1 -1
  19. package/assets/assets/{format-helpers-DKjsmbxo.js → format-helpers-BagbvnfZ.js} +1 -1
  20. package/assets/assets/{index-B1kVq-wC.js → index-7G0DHKIO.js} +4 -4
  21. package/assets/assets/{query-client-BXS2w17E.js → query-client-7P_Wczfa.js} +1 -1
  22. package/assets/assets/{react-query-B8oOFCyW.js → react-query-agN8P-yg.js} +1 -1
  23. package/assets/assets/{react-sigma_core.esm.min-Bf_kjp11.js → react-sigma_core.esm.min-CHz1PIYq.js} +1 -1
  24. package/assets/assets/{service-D9noo7pB.js → service-CAV4dMit.js} +1 -1
  25. package/assets/index.html +7 -7
  26. package/dist/{ads-6NAIIZGO.js → ads-A42JBQ5Q.js} +3 -3
  27. package/dist/{agent-LISFS4WR.js → agent-ZKKHPMOB.js} +7 -7
  28. package/dist/{agent-ask-JJM34LMD.js → agent-ask-SMV76QZM.js} +3 -3
  29. package/dist/{agent-conversations-4JNBIBVR.js → agent-conversations-O5QA3MHR.js} +3 -3
  30. package/dist/{agent-memory-I2M7TIWO.js → agent-memory-ZRJQ6SZU.js} +3 -3
  31. package/dist/{agent-providers-3ZX3RETW.js → agent-providers-EOXIPRXN.js} +3 -3
  32. package/dist/{agent-transcript-OYK4O5XV.js → agent-transcript-4TB2VI5E.js} +3 -3
  33. package/dist/{analytics-7HW2FSST.js → analytics-KSHS32RJ.js} +3 -3
  34. package/dist/{apply-S2OC6S65.js → apply-4ZZMONED.js} +3 -3
  35. package/dist/{backfill-EUHHN4VT.js → backfill-DJIIN5ZR.js} +9 -9
  36. package/dist/{backlinks-AY5EMVN4.js → backlinks-XIAPORR5.js} +3 -3
  37. package/dist/{bing-KJW2LYAT.js → bing-QDZXI334.js} +3 -3
  38. package/dist/{bootstrap-3R4AMSY4.js → bootstrap-7RAGKHJZ.js} +10 -10
  39. package/dist/{cdp-URC66DX5.js → cdp-3OX3WGWN.js} +7 -7
  40. package/dist/{chunk-MTKXD4WY.js → chunk-2IBFY7KQ.js} +2 -2
  41. package/dist/{chunk-QF5C3JXL.js → chunk-3JV3PWNA.js} +1 -1
  42. package/dist/{chunk-WSFCQQ7F.js → chunk-4IV4FO3O.js} +64 -14
  43. package/dist/{chunk-KLPRF4PA.js → chunk-66C7YITH.js} +1 -1
  44. package/dist/{chunk-Y54KA37X.js → chunk-7HZ7KRHT.js} +1 -1
  45. package/dist/{chunk-PSRJYRAD.js → chunk-7KEIZ5OO.js} +8 -8
  46. package/dist/{chunk-LWKHCQ46.js → chunk-7XSGAPN5.js} +3 -3
  47. package/dist/{chunk-PP7HR4II.js → chunk-ADY24WBX.js} +4 -4
  48. package/dist/{chunk-EED2QEE7.js → chunk-D7ZU5LMK.js} +1 -1
  49. package/dist/{chunk-JLDTGMVQ.js → chunk-DUYENNUI.js} +2 -2
  50. package/dist/{chunk-PZUMERGZ.js → chunk-FCPIOH6P.js} +1 -1
  51. package/dist/{chunk-HKLI6ZFP.js → chunk-FKQPVB5B.js} +20 -20
  52. package/dist/{chunk-EJZ4TQQR.js → chunk-G7VJEPDZ.js} +2 -2
  53. package/dist/{chunk-SEBIXQEN.js → chunk-GLFE3Q3C.js} +3 -3
  54. package/dist/{chunk-LJRXJHWJ.js → chunk-HGBIJIVM.js} +1 -1
  55. package/dist/{chunk-RFXO5GPB.js → chunk-HV5MGQYI.js} +3 -3
  56. package/dist/{chunk-ON7D53WE.js → chunk-I32IFAB3.js} +3 -3
  57. package/dist/{chunk-SXDAIG5W.js → chunk-IDPAYZHR.js} +1 -1
  58. package/dist/{chunk-HUO3YPKB.js → chunk-JDL4QAPT.js} +17 -3
  59. package/dist/{chunk-OTQFHUIH.js → chunk-L7WQTD3D.js} +5 -5
  60. package/dist/{chunk-WUVX5HBI.js → chunk-NQTUPEBQ.js} +1 -1
  61. package/dist/{chunk-TJ4UAO7R.js → chunk-O7KIDW4H.js} +31 -4
  62. package/dist/{chunk-PDS77GLS.js → chunk-OA6N3BI7.js} +4 -4
  63. package/dist/{chunk-KCO3PGDZ.js → chunk-QCSNNKFI.js} +1 -1
  64. package/dist/{chunk-FA7RDZ43.js → chunk-QEG7BSLH.js} +1 -1
  65. package/dist/{chunk-GS6IH7CI.js → chunk-QRC6SDPF.js} +346 -334
  66. package/dist/{chunk-B4N5L6NF.js → chunk-RLXNZRHD.js} +5 -5
  67. package/dist/{chunk-PTKFLEVN.js → chunk-SJNF5GN2.js} +2 -2
  68. package/dist/{chunk-O7BPIPJB.js → chunk-TLNHDCJF.js} +2 -2
  69. package/dist/{chunk-VRI3UDRA.js → chunk-UHE4RLFW.js} +1 -1
  70. package/dist/{chunk-TKX4G4NV.js → chunk-XJF7LMGU.js} +4 -4
  71. package/dist/{chunk-3WRDJJOY.js → chunk-Z63ZR6AD.js} +1 -1
  72. package/dist/{chunk-VWO4WRQM.js → chunk-Z7WG6F7Q.js} +3 -3
  73. package/dist/{chunk-X3UXPAT7.js → chunk-ZK5WIVGA.js} +2 -2
  74. package/dist/{citations-DAXUWNKQ.js → citations-L3HFNQVU.js} +3 -3
  75. package/dist/{cli-catalog-ORQPYKHI.js → cli-catalog-DJPRREDK.js} +3 -3
  76. package/dist/{cli-commands-SDTHXYWU.js → cli-commands-4KG4X76Z.js} +7 -7
  77. package/dist/cli.js +13 -13
  78. package/dist/{competitor-QPL47DA6.js → competitor-Q5LZ26U5.js} +3 -3
  79. package/dist/{content-V5NLV3AH.js → content-WRVFNQSO.js} +3 -3
  80. package/dist/{dashboard-CZEO2UTG.js → dashboard-GBP2T2AG.js} +6 -6
  81. package/dist/{demo-JZS5DBSR.js → demo-JMLMPLJ6.js} +1 -1
  82. package/dist/{demo-server-OAYVJVGC.js → demo-server-AOVPBGZ7.js} +11 -11
  83. package/dist/{discover-TEEHJPLW.js → discover-SKUNZE4Y.js} +3 -3
  84. package/dist/{discover-eval-4I25W4VL.js → discover-eval-57BEDSQN.js} +3 -3
  85. package/dist/{doctor-VR6YKJSW.js → doctor-DMLJGH6G.js} +3 -3
  86. package/dist/{evidence-SISRJ4YZ.js → evidence-J4XF4W7O.js} +3 -3
  87. package/dist/{export-cmd-L5LKHKBY.js → export-cmd-3JXT2YAP.js} +3 -3
  88. package/dist/{ga-WQQVWU5Q.js → ga-KHILAPMC.js} +3 -3
  89. package/dist/{gbp-XKRX7ZJY.js → gbp-PHOFQZNT.js} +3 -3
  90. package/dist/{google-TUEMVVGE.js → google-QOLM2NBI.js} +4 -4
  91. package/dist/{google-marketing-JWAJXNWR.js → google-marketing-N37WUWNL.js} +1 -1
  92. package/dist/{health-cmd-2OQEIQMG.js → health-cmd-2FUEPUJZ.js} +3 -3
  93. package/dist/{history-33VEX442.js → history-MOSRCLAD.js} +3 -3
  94. package/dist/index.d.ts +7 -7
  95. package/dist/index.js +24 -24
  96. package/dist/{init-QMLVST26.js → init-V6ER2PJV.js} +11 -11
  97. package/dist/{insights-6VIXDNVK.js → insights-F3MT66IV.js} +3 -3
  98. package/dist/intelligence-service-S5DI74LD.js +15 -0
  99. package/dist/{journeys-7YJLJ34F.js → journeys-DNS3EZNK.js} +3 -3
  100. package/dist/{keys-I7Z5CGEQ.js → keys-NPOLKCWZ.js} +3 -3
  101. package/dist/{keyword-OPTT3EXO.js → keyword-AXEPIJQ7.js} +3 -3
  102. package/dist/{logs-35L2ZWRO.js → logs-ECEDVUTX.js} +3 -3
  103. package/dist/{mcp-JWB42VTJ.js → mcp-HUIRIY74.js} +2 -2
  104. package/dist/mcp.js +9 -9
  105. package/dist/{measurement-plan-UWA2N6FO.js → measurement-plan-5Y2IHH43.js} +5 -5
  106. package/dist/{notify-FE7FSXDB.js → notify-PIFCJ7WM.js} +3 -3
  107. package/dist/{organic-evidence-34EKPGKI.js → organic-evidence-S2IE5XV6.js} +3 -3
  108. package/dist/{overview-HPY5I6ZT.js → overview-TZT7C4U4.js} +4 -4
  109. package/dist/{project-5CCX7VNR.js → project-HIY673Y5.js} +3 -3
  110. package/dist/{query-VV4TRRDX.js → query-FUJIMFJQ.js} +3 -3
  111. package/dist/{research-62VXIO2O.js → research-ECGEXWID.js} +3 -3
  112. package/dist/{results-export-QZQTNXMB.js → results-export-7DRGFNUX.js} +3 -3
  113. package/dist/{run-MYWJ2MPB.js → run-4JEDD5VT.js} +4 -4
  114. package/dist/{schedule-YC76OSAK.js → schedule-NRHQXHTW.js} +3 -3
  115. package/dist/{search-J2J7BXBL.js → search-M7PNZZZL.js} +3 -3
  116. package/dist/{serve-LESJD7GM.js → serve-RXLQEALQ.js} +25 -25
  117. package/dist/{session-2MU6LLLC.js → session-MCSZQR5V.js} +12 -12
  118. package/dist/{settings-QIMV3UYB.js → settings-JXOYI7VV.js} +3 -3
  119. package/dist/{skills-3HOQ77ON.js → skills-SRUXD2PV.js} +2 -2
  120. package/dist/{snapshot-XL3KO4OW.js → snapshot-7N4BEGGM.js} +3 -3
  121. package/dist/{src-CLICUC3F.js → src-ZAAE3NIM.js} +2 -2
  122. package/dist/{status-CKAJEBHG.js → status-5OYYSMAY.js} +4 -4
  123. package/dist/{technical-aeo-CW7WNDUU.js → technical-aeo-464OUUWT.js} +3 -3
  124. package/dist/{telemetry-GPP5XD7R.js → telemetry-BZFNXACR.js} +4 -4
  125. package/dist/{tools-UNFFO5HO.js → tools-YVWC3NTG.js} +11 -11
  126. package/dist/{traffic-LALKHOSD.js → traffic-WXJHRB7H.js} +13 -8
  127. package/dist/{users-NQG7Y3GC.js → users-U2UNKGDY.js} +3 -3
  128. package/dist/{visibility-stats-RJHXNYBM.js → visibility-stats-AHGME46N.js} +3 -3
  129. package/dist/{wordpress-VLHQ6P47.js → wordpress-FUVFZKH2.js} +3 -3
  130. package/package.json +1 -1
  131. package/dist/intelligence-service-NFBPBKI7.js +0 -15
@@ -18520,7 +18520,12 @@ var cloudflareTrafficSourceBaseSchema = z55.object({
18520
18520
  /** Identifier of the bot/referer keyword set baked into the deployed Worker. */
18521
18521
  expectedBotListVersion: z55.string().min(1),
18522
18522
  /** Target Cloudflare zone for the operator-managed Worker route. */
18523
- zoneId: z55.string().nullable()
18523
+ zoneId: z55.string().nullable(),
18524
+ /**
18525
+ * The generated Worker also forwards people's page views (document loads),
18526
+ * so AI visitor journeys see later visits. Absent on older rows: off.
18527
+ */
18528
+ forwardPageViews: z55.boolean().default(false)
18524
18529
  });
18525
18530
  var cloudflareDirectPushTrafficSourceConfigSchema = cloudflareTrafficSourceBaseSchema.extend({
18526
18531
  deliveryMode: z55.literal(CloudflareTrafficDeliveryModes["direct-push"]),
@@ -18553,7 +18558,12 @@ var cloudflareTrafficSourceConfigSchema = z55.preprocess(
18553
18558
  var trafficConnectCloudflareBaseRequestSchema = z55.object({
18554
18559
  displayName: z55.string().min(1).optional(),
18555
18560
  /** Target Cloudflare zone. Canonry does not validate it against Cloudflare. */
18556
- zoneId: z55.string().min(1).optional()
18561
+ zoneId: z55.string().min(1).optional(),
18562
+ /**
18563
+ * Generate a Worker that also forwards page views, for complete AI visitor
18564
+ * journeys. Omitted on a reconnect keeps the source's current setting.
18565
+ */
18566
+ forwardPageViews: z55.boolean().optional()
18557
18567
  });
18558
18568
  var trafficConnectCloudflareDirectPushRequestSchema = trafficConnectCloudflareBaseRequestSchema.extend({
18559
18569
  deliveryMode: z55.literal(CloudflareTrafficDeliveryModes["direct-push"]),
@@ -18581,6 +18591,8 @@ var trafficConnectCloudflareResponseBaseSchema = z55.object({
18581
18591
  workerScript: z55.string().min(1),
18582
18592
  wranglerToml: z55.string().min(1),
18583
18593
  workerVersion: z55.string().min(1),
18594
+ /** Whether the generated Worker forwards page views. */
18595
+ forwardPageViews: z55.boolean().default(false),
18584
18596
  instructions: z55.string().min(1)
18585
18597
  });
18586
18598
  var trafficConnectCloudflareDirectPushResponseSchema = trafficConnectCloudflareResponseBaseSchema.extend({
@@ -18952,8 +18964,9 @@ var JOURNEY_RETENTION_DAYS = 180;
18952
18964
  var JOURNEY_VISIT_IDLE_MINUTES = 30;
18953
18965
  var JOURNEY_MAX_REQUESTS_PER_VISITOR_DAY = 300;
18954
18966
  var JOURNEY_PARTIAL_SOURCE_TYPES = {
18955
- cloudflare: "The Worker forwards only AI-referred and bot requests, so later visits from this source are not recorded."
18967
+ cloudflare: "The Worker forwards only AI-referred and bot requests, so later visits from this source are not recorded. Reconnect with --forward-page-views and redeploy the Worker to record them."
18956
18968
  };
18969
+ var JOURNEY_PAGE_VIEWS_PENDING_REASON = "Page-view forwarding is on, but the deployed Worker has not reported it yet. Redeploy the Worker and send a request through it.";
18957
18970
  var JOURNEY_LIST_VISITS_PER_VISITOR = 20;
18958
18971
  var journeyKeyBasisSchema = z56.enum(["ip-ua", "ua"]);
18959
18972
  var JourneyKeyBases = journeyKeyBasisSchema.enum;
@@ -26849,6 +26862,7 @@ export {
26849
26862
  JOURNEY_VISIT_IDLE_MINUTES,
26850
26863
  JOURNEY_MAX_REQUESTS_PER_VISITOR_DAY,
26851
26864
  JOURNEY_PARTIAL_SOURCE_TYPES,
26865
+ JOURNEY_PAGE_VIEWS_PENDING_REASON,
26852
26866
  JOURNEY_LIST_VISITS_PER_VISITOR,
26853
26867
  JourneyKeyBases,
26854
26868
  journeyEntryClassSchema,
@@ -5,7 +5,7 @@ import {
5
5
  isStoredPageReadTool,
6
6
  isStoredReadTool,
7
7
  truncateToolResult
8
- } from "./chunk-PDS77GLS.js";
8
+ } from "./chunk-OA6N3BI7.js";
9
9
  import {
10
10
  CANONRY_MCP_TOOLKITS
11
11
  } from "./chunk-NCIPNVD6.js";
@@ -22,15 +22,15 @@ import {
22
22
  resolveApiKeyFor,
23
23
  resolveModelForProvider,
24
24
  validateAgentProviderRegistry
25
- } from "./chunk-FA7RDZ43.js";
25
+ } from "./chunk-QEG7BSLH.js";
26
26
  import {
27
27
  CanonryMcpToolNames,
28
28
  canonryMcpTools
29
- } from "./chunk-LWKHCQ46.js";
29
+ } from "./chunk-7XSGAPN5.js";
30
30
  import {
31
31
  agentToolEvents,
32
32
  llmUsageEvents
33
- } from "./chunk-QF5C3JXL.js";
33
+ } from "./chunk-3JV3PWNA.js";
34
34
  import {
35
35
  MeasurementPortfolioLists,
36
36
  agentTurnLimitsSchema,
@@ -38,7 +38,7 @@ import {
38
38
  describeError,
39
39
  validationError,
40
40
  visibilityReportRequestSchema
41
- } from "./chunk-HUO3YPKB.js";
41
+ } from "./chunk-JDL4QAPT.js";
42
42
 
43
43
  // src/agent/session.ts
44
44
  import fs3 from "fs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  cloudflareQueueNameSchema
3
- } from "./chunk-HUO3YPKB.js";
3
+ } from "./chunk-JDL4QAPT.js";
4
4
 
5
5
  // src/cloudflare-traffic-config.ts
6
6
  function unsupportedDeliveryMode(deliveryMode) {
@@ -8,7 +8,7 @@ import {
8
8
  classifyJourneyEntry,
9
9
  hostMatchesDomain,
10
10
  hostOf
11
- } from "./chunk-HUO3YPKB.js";
11
+ } from "./chunk-JDL4QAPT.js";
12
12
 
13
13
  // ../integration-traffic/src/ip-ranges/amazonbot.json
14
14
  var amazonbot_default = {
@@ -15186,6 +15186,29 @@ var DEFAULT_BOT_LIST = {
15186
15186
  };
15187
15187
  var DEFAULT_BOT_SCORE_MAX_FORWARD = 30;
15188
15188
  var WORKER_COMPATIBILITY_DATE = "2026-05-01";
15189
+ var CLOUDFLARE_PAGE_VIEWS_VERSION_SUFFIX = "+page-views";
15190
+ var PAGE_VIEW_ASSET_EXTENSIONS = ["avif", "bmp", "css", "gif", "ico", "jpeg", "jpg", "js", "map", "mjs", "mp3", "mp4", "otf", "pdf", "png", "svg", "ttf", "txt", "webm", "webmanifest", "webp", "woff", "woff2", "xml", "zip"];
15191
+ var PAGE_VIEW_FILTER = `
15192
+ const PAGE_VIEW_ASSET_PATTERN = new RegExp(${JSON.stringify(`\\.(?:${PAGE_VIEW_ASSET_EXTENSIONS.join("|")})$`)}, 'i')
15193
+
15194
+ function isPageView(request) {
15195
+ const method = request.method || 'GET'
15196
+ if (method !== 'GET' && method !== 'POST') return false
15197
+ const purpose = lower(request.headers.get('sec-purpose') || request.headers.get('purpose') || '')
15198
+ if (purpose.indexOf('prefetch') !== -1 || purpose.indexOf('prerender') !== -1) return false
15199
+ const ua = request.headers.get('user-agent') || ''
15200
+ if (ua.indexOf('Mozilla/') !== 0) return false
15201
+ const dest = lower(request.headers.get('sec-fetch-dest') || '')
15202
+ if (dest) return dest === 'document'
15203
+ if (method !== 'GET') return false
15204
+ if (lower(request.headers.get('accept') || '').indexOf('text/html') === -1) return false
15205
+ try {
15206
+ return !PAGE_VIEW_ASSET_PATTERN.test(new URL(request.url).pathname)
15207
+ } catch (_) {
15208
+ return false
15209
+ }
15210
+ }
15211
+ `;
15189
15212
  function jsString(value) {
15190
15213
  return JSON.stringify(value);
15191
15214
  }
@@ -15194,6 +15217,9 @@ function jsArray(values) {
15194
15217
  }
15195
15218
  function generateWorkerScript(opts) {
15196
15219
  const botScoreMax = opts.botScoreMaxForward ?? DEFAULT_BOT_SCORE_MAX_FORWARD;
15220
+ const pageViewHeader = opts.forwardPageViews ? "\n// page views: forwarded" : "";
15221
+ const pageViewFilter = opts.forwardPageViews ? PAGE_VIEW_FILTER : "";
15222
+ const pageViewCheck = opts.forwardPageViews ? "\n if (isPageView(request)) return true" : "";
15197
15223
  const canonicalJsonFunction = canonicalizeCloudflareJson.toString();
15198
15224
  const directPushDelivery = opts.deliveryMode === "direct-push" ? `
15199
15225
  function toHex(buffer) {
@@ -15303,7 +15329,7 @@ async function deliverViaQueue(env, batch) {
15303
15329
  return `${CLOUDFLARE_WORKER_GENERATED_MARKER}
15304
15330
  // worker version: ${opts.workerVersion}
15305
15331
  // bot-list version: ${opts.botList.version}
15306
- // delivery mode: ${opts.deliveryMode}
15332
+ // delivery mode: ${opts.deliveryMode}${pageViewHeader}
15307
15333
 
15308
15334
  const UA_KEYWORDS = ${jsArray(opts.botList.uaKeywords)}
15309
15335
  const REFERER_DOMAINS = ${jsArray(opts.botList.refererDomains)}
@@ -15378,14 +15404,14 @@ function botSignals(cf) {
15378
15404
  if (typeof cf.botScore === 'number' && cf.botScore < BOT_SCORE_MAX_FORWARD) return true
15379
15405
  return false
15380
15406
  }
15381
-
15407
+ ${pageViewFilter}
15382
15408
  function shouldForward(request) {
15383
15409
  const ua = request.headers.get('user-agent') || ''
15384
15410
  if (uaMatches(ua)) return true
15385
15411
  if (urlUtmMatches(request.url)) return true
15386
15412
  const referer = request.headers.get('referer') || ''
15387
15413
  if (refererMatches(referer)) return true
15388
- if (urlUtmMatches(referer)) return true
15414
+ if (urlUtmMatches(referer)) return true${pageViewCheck}
15389
15415
  return botSignals(request.cf)
15390
15416
  }
15391
15417
 
@@ -15680,6 +15706,7 @@ export {
15680
15706
  CLOUDFLARE_WORKER_GENERATED_MARKER,
15681
15707
  CLOUDFLARE_WRANGLER_GENERATED_MARKER,
15682
15708
  DEFAULT_BOT_LIST,
15709
+ CLOUDFLARE_PAGE_VIEWS_VERSION_SUFFIX,
15683
15710
  generateWorkerScript,
15684
15711
  generateWranglerToml,
15685
15712
  verifyRequestSignature
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  runWithUsageTags
3
- } from "./chunk-PTKFLEVN.js";
3
+ } from "./chunk-SJNF5GN2.js";
4
4
  import {
5
5
  CanonryMcpToolNames,
6
6
  canonryMcpTools
7
- } from "./chunk-LWKHCQ46.js";
7
+ } from "./chunk-7XSGAPN5.js";
8
8
  import {
9
9
  CliError
10
10
  } from "./chunk-HGMYEDAQ.js";
11
11
  import {
12
12
  buildOpenApiDocument
13
- } from "./chunk-WSFCQQ7F.js";
13
+ } from "./chunk-4IV4FO3O.js";
14
14
  import {
15
15
  DEFAULT_COMPETITOR_AUTO_ALIAS_MODE,
16
16
  MeasurementPortfolioLists,
@@ -20,7 +20,7 @@ import {
20
20
  formatPercent,
21
21
  ratioUnitSchema,
22
22
  truncateUtf16
23
- } from "./chunk-HUO3YPKB.js";
23
+ } from "./chunk-JDL4QAPT.js";
24
24
 
25
25
  // src/agent/tools.ts
26
26
  import { Type as Type2 } from "@earendil-works/pi-ai";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  API_PROVIDER_NAMES,
3
3
  ProviderNames
4
- } from "./chunk-HUO3YPKB.js";
4
+ } from "./chunk-JDL4QAPT.js";
5
5
 
6
6
  // src/provider-registration.ts
7
7
  function isApiProviderRegistrable(name, entry) {
@@ -20,7 +20,7 @@ import {
20
20
  resolveProviderModel,
21
21
  schedulableRunKindSchema,
22
22
  sentimentEvaluatorProviderSchema
23
- } from "./chunk-HUO3YPKB.js";
23
+ } from "./chunk-JDL4QAPT.js";
24
24
 
25
25
  // ../config/src/index.ts
26
26
  import { z as z4 } from "zod";