@canonry/canonry 7.88.0 → 7.89.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 (152) hide show
  1. package/assets/agent-workspace/skills/canonry/references/canonry-cli.md +4 -4
  2. package/assets/assets/{AgentSetupPage-DV06oPTd.js → AgentSetupPage-BU1supL8.js} +6 -6
  3. package/assets/assets/AuditHistoryPanel-D7or_J3j.js +1 -0
  4. package/assets/assets/{BacklinksPage-Dw0wgYlg.js → BacklinksPage-SOls3ew4.js} +1 -1
  5. package/assets/assets/{ChartPrimitives-4D5wgAn5.js → ChartPrimitives-Cs2iavxU.js} +1 -1
  6. package/assets/assets/{Hint-CfeZmZig.js → Hint-uoVNfr0U.js} +1 -1
  7. package/assets/assets/{HistoryPage-DsDx15am.js → HistoryPage-LNKtQ6a8.js} +1 -1
  8. package/assets/assets/{InfoTooltip-DrBIPuSU.js → InfoTooltip-CNLlIWeP.js} +1 -1
  9. package/assets/assets/MeasurementPropertyPage-CTZzlHWE.js +4 -0
  10. package/assets/assets/ProjectPage-D79zuY-M.js +11 -0
  11. package/assets/assets/{RunsPage-BggqKbOG.js → RunsPage-B8zUD2gr.js} +1 -1
  12. package/assets/assets/{SettingsPage-B7ns_ECx.js → SettingsPage-BOQgT_7N.js} +1 -1
  13. package/assets/assets/SiteHealthSection-G3_MShnD.js +2 -0
  14. package/assets/assets/{ToneBadge-B8hKcr8p.js → ToneBadge-DawS8vMp.js} +6 -6
  15. package/assets/assets/TrafficPage-DJUqxtrQ.js +40 -0
  16. package/assets/assets/TrafficSourceDetailPage-OVY_L73m.js +1 -0
  17. package/assets/assets/{account-context-pzV-boTi.js → account-context-DoI9S9qY.js} +1 -1
  18. package/assets/assets/agent-trust-copy-CZpfPr4M.js +1 -0
  19. package/assets/assets/{card-Mu_5i5fM.js → card-ClURYmZN.js} +1 -1
  20. package/assets/assets/{format-helpers-C8QYorwm.js → format-helpers-CscAFAMJ.js} +2 -2
  21. package/assets/assets/{index-BOUrrC9J.css → index-Bhpq6fUo.css} +1 -1
  22. package/assets/assets/index-y0Wx0ZWq.js +60 -0
  23. package/assets/assets/{query-client-CdG4DC3B.js → query-client-Dm_GqsTu.js} +1 -1
  24. package/assets/assets/react-query-BwhgbuS1.js +1 -0
  25. package/assets/assets/{react-sigma_core.esm.min-BfnfPCis.js → react-sigma_core.esm.min-6J0MSvMJ.js} +1 -1
  26. package/assets/assets/server-traffic-C-_D6pdo.js +1 -0
  27. package/assets/assets/{service-B85wjZQP.js → service-C7qDx_qB.js} +1 -1
  28. package/assets/assets/{vendor-lucide-CoTHJwai.js → vendor-lucide-Bo69m9KC.js} +1 -1
  29. package/assets/assets/{vendor-markdown-cQgSk2i0.js → vendor-markdown-BiRP51B0.js} +1 -1
  30. package/assets/assets/{vendor-radix-wS8sWIWE.js → vendor-radix-PQeN8gOe.js} +1 -1
  31. package/assets/assets/{vendor-recharts-AnNqECZW.js → vendor-recharts-CY6tH-r6.js} +1 -1
  32. package/assets/assets/{vendor-tanstack-q5SvZtcv.js → vendor-tanstack-tBjrfzKu.js} +1 -1
  33. package/assets/index.html +15 -15
  34. package/dist/{ads-4TAIMWZC.js → ads-XEW2LBKV.js} +3 -3
  35. package/dist/{agent-C7NKP2TO.js → agent-VYADMMPT.js} +7 -7
  36. package/dist/{agent-ask-EPH5FDM6.js → agent-ask-4G57GM3S.js} +3 -3
  37. package/dist/{agent-conversations-LPBBVRKK.js → agent-conversations-MRKRCXQI.js} +3 -3
  38. package/dist/{agent-journeys-MBORINJA.js → agent-journeys-WEUEYRMK.js} +3 -3
  39. package/dist/{agent-memory-NJIZO75R.js → agent-memory-YLAOXQQ6.js} +3 -3
  40. package/dist/{agent-providers-ZQVUOCX6.js → agent-providers-AWKQRJDZ.js} +3 -3
  41. package/dist/{agent-transcript-67HFY5GT.js → agent-transcript-HXYFVCUD.js} +3 -3
  42. package/dist/{analytics-TUO6BVB6.js → analytics-5G5G5OJU.js} +3 -3
  43. package/dist/{apply-V7A5O7YS.js → apply-FCKZG7A2.js} +3 -3
  44. package/dist/{backfill-PGKYR6NA.js → backfill-3CTZHCJS.js} +10 -10
  45. package/dist/{backlinks-5GGPQNR4.js → backlinks-Q53JT63C.js} +3 -3
  46. package/dist/{bing-PQOLIW2X.js → bing-FOY2UVIM.js} +34 -8
  47. package/dist/{bootstrap-IH3XX6PI.js → bootstrap-FXIT7LDW.js} +10 -10
  48. package/dist/{cdp-B3PFQ5RB.js → cdp-WWQW3LIZ.js} +7 -7
  49. package/dist/{chunk-FLJVGHTQ.js → chunk-2BZJ4W27.js} +3 -3
  50. package/dist/{chunk-DILCH7RL.js → chunk-3H5VURTU.js} +1 -1
  51. package/dist/{chunk-CYQCO5NY.js → chunk-3IC7PRTW.js} +1 -1
  52. package/dist/{chunk-N6AWKBLY.js → chunk-4INNOSWU.js} +5 -5
  53. package/dist/{chunk-FNQFM3TK.js → chunk-5GQ2AGWS.js} +3 -3
  54. package/dist/{chunk-TAQHHXBC.js → chunk-7522CQ2E.js} +4 -4
  55. package/dist/{chunk-5KDJJO2N.js → chunk-A6DKZ4KQ.js} +1 -1
  56. package/dist/{chunk-TL52ELES.js → chunk-DPKA5CWK.js} +1 -1
  57. package/dist/{chunk-FL76YWYN.js → chunk-DX46HM7S.js} +1 -1
  58. package/dist/{chunk-PBOIN52J.js → chunk-EWR25OVQ.js} +2 -2
  59. package/dist/{chunk-2KL2XHS6.js → chunk-GDEYX6E3.js} +4 -4
  60. package/dist/{chunk-E4DUE2PW.js → chunk-GSNKBXGN.js} +6 -6
  61. package/dist/{chunk-4VMHN5LL.js → chunk-HSOZSLIZ.js} +99 -30
  62. package/dist/{chunk-DVWAA3ES.js → chunk-IK3PYAQU.js} +21 -21
  63. package/dist/{chunk-UVXQQZB5.js → chunk-J7V7TYX7.js} +2 -2
  64. package/dist/{chunk-PZLEKWYA.js → chunk-JLBJEQPV.js} +1 -1
  65. package/dist/{chunk-6DIDDYG6.js → chunk-KAGMYJYG.js} +5 -5
  66. package/dist/{chunk-4T2VZPDG.js → chunk-MNLQY5WG.js} +2 -2
  67. package/dist/{chunk-D354CQ6T.js → chunk-MXGME7NG.js} +1 -1
  68. package/dist/{chunk-OKLDBQYW.js → chunk-RE24YYIY.js} +4 -4
  69. package/dist/{chunk-R7K24KY7.js → chunk-S7D2ELTC.js} +3 -3
  70. package/dist/{chunk-EGUJNHAZ.js → chunk-TCANF22P.js} +2 -2
  71. package/dist/{chunk-5WWEZ26Y.js → chunk-UIULMWJX.js} +2 -2
  72. package/dist/{chunk-O7OZVZWR.js → chunk-VBM6T5ZP.js} +21 -13
  73. package/dist/{chunk-IR3MYKIA.js → chunk-VL4AZGUA.js} +1 -1
  74. package/dist/{chunk-MEN27RAJ.js → chunk-WE6FSG7J.js} +1 -1
  75. package/dist/{chunk-EYSQMZ6L.js → chunk-WHN4RF2Y.js} +373 -369
  76. package/dist/{chunk-4A4X7VXE.js → chunk-WPTCWNA6.js} +2 -2
  77. package/dist/{chunk-LBZYPZAA.js → chunk-X6XFWQCE.js} +7 -7
  78. package/dist/{chunk-BDLC3DFM.js → chunk-Y35D3ZCH.js} +2 -2
  79. package/dist/{chunk-Q2SJRZA3.js → chunk-YKLYWVLL.js} +46 -2
  80. package/dist/{chunk-IPOYH4WE.js → chunk-YW2IQEWS.js} +1 -1
  81. package/dist/{chunk-ZQGWB7VJ.js → chunk-ZEWOPHTA.js} +1 -1
  82. package/dist/{chunk-MCQK432C.js → chunk-ZX4TZNP4.js} +1 -1
  83. package/dist/{chunk-EL4HRIID.js → chunk-ZYEWB5BK.js} +3 -3
  84. package/dist/{citations-J3IGPX4L.js → citations-ZZ6ODCGZ.js} +3 -3
  85. package/dist/{cli-catalog-2PCRGKPH.js → cli-catalog-HEX47BKL.js} +3 -3
  86. package/dist/{cli-commands-4MUJZCZO.js → cli-commands-6OLN355M.js} +7 -7
  87. package/dist/cli.js +13 -13
  88. package/dist/{competitor-X7Q2AZGL.js → competitor-6MRHORU2.js} +3 -3
  89. package/dist/{content-HTR3PJPX.js → content-S2UOGTLN.js} +3 -3
  90. package/dist/{dashboard-LSO57ZEE.js → dashboard-J4H3FVKH.js} +6 -6
  91. package/dist/{demo-P25N4SKK.js → demo-7PJJQMLO.js} +1 -1
  92. package/dist/{demo-server-6Z5XSHFS.js → demo-server-55I5LNNS.js} +12 -12
  93. package/dist/{discover-KE6TQPOC.js → discover-O4NFDHGP.js} +3 -3
  94. package/dist/{discover-eval-XKOYGCRW.js → discover-eval-PE2MW42B.js} +3 -3
  95. package/dist/{doctor-RL2J54I3.js → doctor-GT4MMJQJ.js} +3 -3
  96. package/dist/{evidence-CYJ4AKUZ.js → evidence-Z344KVJX.js} +3 -3
  97. package/dist/{export-cmd-2YM3PXCW.js → export-cmd-Z6WWLI6H.js} +3 -3
  98. package/dist/{ga-XAB66MJO.js → ga-SXIGAF5F.js} +3 -3
  99. package/dist/{gbp-CDGBLRVV.js → gbp-CSLWSEKF.js} +3 -3
  100. package/dist/{google-XHCUKQ3J.js → google-EAQJ46AR.js} +4 -4
  101. package/dist/{google-marketing-ZR6NTWEY.js → google-marketing-NVKB4NLG.js} +1 -1
  102. package/dist/{health-cmd-VS3EIFJD.js → health-cmd-6IYRMZS3.js} +3 -3
  103. package/dist/{history-YIGYYNZJ.js → history-KLZI7IKJ.js} +3 -3
  104. package/dist/index.d.ts +14 -14
  105. package/dist/index.js +25 -25
  106. package/dist/{init-ST3BXHQF.js → init-LFLCM6KJ.js} +12 -12
  107. package/dist/{insights-KZS6TYYL.js → insights-C7NN64E2.js} +3 -3
  108. package/dist/intelligence-service-ENI35JFR.js +16 -0
  109. package/dist/{journeys-USOPWGW5.js → journeys-C34YDOM6.js} +3 -3
  110. package/dist/{keys-XY7LSM3S.js → keys-4RDLFHXO.js} +3 -3
  111. package/dist/{keyword-PKBFHHF5.js → keyword-BZEJEYAG.js} +3 -3
  112. package/dist/{logs-PROW5TQJ.js → logs-5FPZRSZM.js} +3 -3
  113. package/dist/{mcp-OQGC62QU.js → mcp-574UA5Y3.js} +4 -4
  114. package/dist/mcp.js +9 -9
  115. package/dist/{measurement-plan-AI4NNBTO.js → measurement-plan-2H4KHD2Y.js} +5 -5
  116. package/dist/{notify-6HRPNJZ5.js → notify-TFXL4CSH.js} +3 -3
  117. package/dist/{organic-evidence-IXCSUGGY.js → organic-evidence-R55KSYFN.js} +3 -3
  118. package/dist/{overview-2WS3CFHK.js → overview-NJTCLHAB.js} +4 -4
  119. package/dist/{project-ENUZG62V.js → project-PV36DZDG.js} +3 -3
  120. package/dist/{query-WE3ZWTIB.js → query-5SVITJ4K.js} +3 -3
  121. package/dist/{research-DZSD5UZ2.js → research-JSET5FNY.js} +3 -3
  122. package/dist/{results-export-JMUMYNUE.js → results-export-5EFMXTPG.js} +3 -3
  123. package/dist/{run-QXOO7CRK.js → run-NOSOG3YH.js} +4 -4
  124. package/dist/{schedule-3RJKGUDN.js → schedule-I3ACQC2C.js} +3 -3
  125. package/dist/{search-SGS4H7I4.js → search-EE53K7J5.js} +3 -3
  126. package/dist/{serve-T24QKEUY.js → serve-SDU77HVC.js} +26 -26
  127. package/dist/{session-HPH2A4AZ.js → session-FYZCUPVX.js} +13 -13
  128. package/dist/{settings-K44RK2TW.js → settings-CEI7EKPO.js} +3 -3
  129. package/dist/{skills-HGPPGBXG.js → skills-TRTFFZU3.js} +2 -2
  130. package/dist/{snapshot-FEHHQRY3.js → snapshot-2RXVTDTZ.js} +3 -3
  131. package/dist/{src-4PAYI7GE.js → src-DYJHW2HG.js} +2 -2
  132. package/dist/{status-L5HVFWTS.js → status-2VHBSIRY.js} +4 -4
  133. package/dist/{technical-aeo-Z43UCW6E.js → technical-aeo-3OMGT4ZT.js} +3 -3
  134. package/dist/{telemetry-D47SSSG7.js → telemetry-5F4EHGR2.js} +4 -4
  135. package/dist/{tools-WCWUY2ZJ.js → tools-C3IIMXBJ.js} +11 -11
  136. package/dist/{traffic-5KH62P43.js → traffic-S3VUYBG6.js} +5 -5
  137. package/dist/{trends-RMAXZKRO.js → trends-RQ4B2QWA.js} +3 -3
  138. package/dist/{users-WT54XNEI.js → users-T6OOG5YB.js} +3 -3
  139. package/dist/{visibility-stats-HU62U5MA.js → visibility-stats-2O24MQCV.js} +3 -3
  140. package/dist/{wordpress-BDAKQ4MU.js → wordpress-SDENOBFI.js} +3 -3
  141. package/package.json +1 -1
  142. package/assets/assets/AuditHistoryPanel-C1JnxBFK.js +0 -1
  143. package/assets/assets/MeasurementPropertyPage-Bkxt3QcY.js +0 -4
  144. package/assets/assets/ProjectPage-CzrD1lpf.js +0 -11
  145. package/assets/assets/SiteHealthSection-B2YibqCs.js +0 -2
  146. package/assets/assets/TrafficPage-DRTbgzKI.js +0 -40
  147. package/assets/assets/TrafficSourceDetailPage-sgLE2gdJ.js +0 -1
  148. package/assets/assets/agent-trust-copy-DBtiOpFu.js +0 -1
  149. package/assets/assets/extract-error-message-D_ptq0tW.js +0 -1
  150. package/assets/assets/index-fN5qDR8H.js +0 -60
  151. package/assets/assets/react-query-CxeygwoL.js +0 -1
  152. package/dist/intelligence-service-LCTP5BC7.js +0 -16
@@ -15,14 +15,14 @@ import {
15
15
  normalizeCloudflareWorkerEvent,
16
16
  sessionizeJourneyRequests,
17
17
  verifyRequestSignature
18
- } from "./chunk-IR3MYKIA.js";
18
+ } from "./chunk-VL4AZGUA.js";
19
19
  import {
20
20
  currentOutcomeAttribution,
21
21
  getRequestContext,
22
22
  registerRequestContext,
23
23
  requestAuditIdentity,
24
24
  sanitizeRequestContext
25
- } from "./chunk-IPOYH4WE.js";
25
+ } from "./chunk-YW2IQEWS.js";
26
26
  import {
27
27
  RawEventSampleEventTypes,
28
28
  SentimentIdempotencyConflict,
@@ -178,7 +178,7 @@ import {
178
178
  userSessions,
179
179
  users,
180
180
  writeNegativeReviewMaxStars
181
- } from "./chunk-ZQGWB7VJ.js";
181
+ } from "./chunk-ZEWOPHTA.js";
182
182
  import {
183
183
  ADS_ACTIVATE_SCOPE,
184
184
  ADS_ACTIVATION_ABSOLUTE_MAX_ENTITIES,
@@ -1270,7 +1270,7 @@ import {
1270
1270
  wordpressSchemaDeployResultDtoSchema,
1271
1271
  wordpressSchemaStatusResultDtoSchema,
1272
1272
  wordpressStatusDtoSchema
1273
- } from "./chunk-Q2SJRZA3.js";
1273
+ } from "./chunk-YKLYWVLL.js";
1274
1274
 
1275
1275
  // ../api-routes/src/user-session.ts
1276
1276
  import crypto2 from "crypto";
@@ -29668,8 +29668,8 @@ async function analyticsRoutes(app) {
29668
29668
  }
29669
29669
  const earliest = new Date(projectRuns[0].createdAt);
29670
29670
  const latest = new Date(projectRuns[projectRuns.length - 1].createdAt);
29671
- const spanDays = Math.max(1, Math.ceil((latest.getTime() - earliest.getTime()) / 864e5));
29672
- const bucketSize = bucketSizeForSpan(spanDays);
29671
+ const spanDays2 = Math.max(1, Math.ceil((latest.getTime() - earliest.getTime()) / 864e5));
29672
+ const bucketSize = bucketSizeForSpan(spanDays2);
29673
29673
  const buckets = computeBuckets(
29674
29674
  allSnapshots,
29675
29675
  projectRuns,
@@ -30213,10 +30213,10 @@ function bumpCategory(counts2, category, domain) {
30213
30213
  }
30214
30214
  domains.set(domain, (domains.get(domain) ?? 0) + 1);
30215
30215
  }
30216
- function bucketSizeForSpan(spanDays) {
30217
- if (spanDays <= 14) return 1;
30218
- if (spanDays <= 60) return 7;
30219
- if (spanDays <= 180) return 14;
30216
+ function bucketSizeForSpan(spanDays2) {
30217
+ if (spanDays2 <= 14) return 1;
30218
+ if (spanDays2 <= 60) return 7;
30219
+ if (spanDays2 <= 180) return 14;
30220
30220
  return 30;
30221
30221
  }
30222
30222
  function computeProviderMetric(snapshots) {
@@ -41810,9 +41810,9 @@ var routeCatalog = [
41810
41810
  {
41811
41811
  method: "get",
41812
41812
  path: "/api/v1/projects/{name}/bing/traffic",
41813
- summary: "Get stored daily Bing site clicks and impressions",
41813
+ summary: "Get stored daily Bing site clicks and impressions, with trend fits and a period comparison",
41814
41814
  tags: ["bing"],
41815
- parameters: [nameParameter, { name: "startDate", in: "query", description: "First day (YYYY-MM-DD). Wins over days.", schema: stringSchema }, { name: "endDate", in: "query", description: "Last day (YYYY-MM-DD).", schema: stringSchema }, { name: "days", in: "query", description: "Span in days ending at endDate, or at the newest stored day (default 28).", schema: stringSchema }],
41815
+ parameters: [nameParameter, { name: "startDate", in: "query", description: "First day (YYYY-MM-DD). Wins over days.", schema: stringSchema }, { name: "endDate", in: "query", description: "Last day (YYYY-MM-DD).", schema: stringSchema }, { name: "days", in: "query", description: "Span in days ending at endDate, or at the newest stored day (default 28).", schema: stringSchema }, { name: "window", in: "query", description: "Window ending at endDate or the newest stored day: 7d, 30d, 90d or all. Not allowed with startDate or days.", schema: { type: "string", enum: ["7d", "30d", "90d", "all"] } }],
41816
41816
  responses: {
41817
41817
  200: jsonResponse("Stored Bing traffic returned.", "BingTrafficResponseDto"),
41818
41818
  400: errorResponse("Invalid request, or Bing is not connected or has no site selected for this project."),
@@ -41824,7 +41824,7 @@ var routeCatalog = [
41824
41824
  path: "/api/v1/projects/{name}/bing/queries",
41825
41825
  summary: "Get stored Bing query stats (weekly buckets summed over the window)",
41826
41826
  tags: ["bing"],
41827
- parameters: [nameParameter, { name: "startDate", in: "query", description: "First day (YYYY-MM-DD). Wins over days.", schema: stringSchema }, { name: "endDate", in: "query", description: "Last day (YYYY-MM-DD).", schema: stringSchema }, { name: "days", in: "query", description: "Span in days ending at endDate, or at the newest stored day (default 28).", schema: stringSchema }, { name: "query", in: "query", description: "Substring filter on the query.", schema: stringSchema }, { name: "groupBy", in: "query", description: "query (default) or week.", schema: stringSchema }, limitQueryParameter, offsetQueryParameter],
41827
+ parameters: [nameParameter, { name: "startDate", in: "query", description: "First day (YYYY-MM-DD). Wins over days.", schema: stringSchema }, { name: "endDate", in: "query", description: "Last day (YYYY-MM-DD).", schema: stringSchema }, { name: "days", in: "query", description: "Span in days ending at endDate, or at the newest stored day (default 28).", schema: stringSchema }, { name: "window", in: "query", description: "Window ending at endDate or the newest stored day: 7d, 30d, 90d or all. Not allowed with startDate or days.", schema: { type: "string", enum: ["7d", "30d", "90d", "all"] } }, { name: "query", in: "query", description: "Filter on the query: a substring, or the whole query with match=exact.", schema: stringSchema }, { name: "match", in: "query", description: "contains (default) or exact.", schema: { type: "string", enum: ["contains", "exact"] } }, { name: "groupBy", in: "query", description: "query (default) or week.", schema: stringSchema }, limitQueryParameter, offsetQueryParameter],
41828
41828
  responses: {
41829
41829
  200: jsonResponse("Stored Bing query stats returned.", "BingQueryTotalsResponseDto"),
41830
41830
  400: errorResponse("Invalid request, or Bing is not connected or has no site selected for this project."),
@@ -41836,7 +41836,7 @@ var routeCatalog = [
41836
41836
  path: "/api/v1/projects/{name}/bing/pages",
41837
41837
  summary: "Get stored Bing page stats (weekly buckets summed over the window)",
41838
41838
  tags: ["bing"],
41839
- parameters: [nameParameter, { name: "startDate", in: "query", description: "First day (YYYY-MM-DD). Wins over days.", schema: stringSchema }, { name: "endDate", in: "query", description: "Last day (YYYY-MM-DD).", schema: stringSchema }, { name: "days", in: "query", description: "Span in days ending at endDate, or at the newest stored day (default 28).", schema: stringSchema }, { name: "page", in: "query", description: "Substring filter on the page URL.", schema: stringSchema }, { name: "groupBy", in: "query", description: "page (default) or week.", schema: stringSchema }, limitQueryParameter, offsetQueryParameter],
41839
+ parameters: [nameParameter, { name: "startDate", in: "query", description: "First day (YYYY-MM-DD). Wins over days.", schema: stringSchema }, { name: "endDate", in: "query", description: "Last day (YYYY-MM-DD).", schema: stringSchema }, { name: "days", in: "query", description: "Span in days ending at endDate, or at the newest stored day (default 28).", schema: stringSchema }, { name: "window", in: "query", description: "Window ending at endDate or the newest stored day: 7d, 30d, 90d or all. Not allowed with startDate or days.", schema: { type: "string", enum: ["7d", "30d", "90d", "all"] } }, { name: "page", in: "query", description: "Filter on the page URL: a substring, or the whole URL with match=exact.", schema: stringSchema }, { name: "match", in: "query", description: "contains (default) or exact.", schema: { type: "string", enum: ["contains", "exact"] } }, { name: "groupBy", in: "query", description: "page (default) or week.", schema: stringSchema }, limitQueryParameter, offsetQueryParameter],
41840
41840
  responses: {
41841
41841
  200: jsonResponse("Stored Bing page stats returned.", "BingPageTotalsResponseDto"),
41842
41842
  400: errorResponse("Invalid request, or Bing is not connected or has no site selected for this project."),
@@ -47437,8 +47437,8 @@ function computeGscPeriodComparison(daily, bounds) {
47437
47437
  const firstMs = calendarDateMs(first);
47438
47438
  const lastMs = calendarDateMs(last);
47439
47439
  if (firstMs === null || lastMs === null || firstMs > lastMs) return null;
47440
- const spanDays = Math.floor((lastMs - firstMs) / DAY_MS3) + 1;
47441
- const periodDays = Math.floor(spanDays / 2);
47440
+ const spanDays2 = Math.floor((lastMs - firstMs) / DAY_MS3) + 1;
47441
+ const periodDays = Math.floor(spanDays2 / 2);
47442
47442
  if (periodDays < 1) return null;
47443
47443
  const byDate = new Map(daily.map((row) => [row.date, row]));
47444
47444
  const trailingStart = calendarDateAt(lastMs - (periodDays - 1) * DAY_MS3);
@@ -58061,14 +58061,29 @@ function requireHttpUrl(value, name) {
58061
58061
  }
58062
58062
  return raw;
58063
58063
  }
58064
+ var BING_WINDOW_DAYS = { "7d": 7, "30d": 30, "90d": 90, all: null };
58064
58065
  function resolveBingWindow(query2, latest, defaultDays = BING_DEFAULT_WINDOW_DAYS) {
58065
58066
  assertForwardRange(query2.startDate, query2.endDate);
58067
+ if (query2.window !== void 0 && query2.window !== "") {
58068
+ if (!(query2.window in BING_WINDOW_DAYS)) throw validationError('"window" must be 7d, 30d, 90d or all');
58069
+ if (query2.startDate || query2.days !== void 0 && query2.days !== "") {
58070
+ throw validationError('"window" cannot be combined with "startDate" or "days"');
58071
+ }
58072
+ }
58066
58073
  if (query2.startDate) return { startDate: query2.startDate, endDate: query2.endDate ?? null };
58067
- const days = parseDays(query2.days, defaultDays);
58068
58074
  const anchor = query2.endDate ?? latest;
58075
+ if (query2.window !== void 0 && query2.window !== "") {
58076
+ const windowDays2 = BING_WINDOW_DAYS[query2.window] ?? null;
58077
+ if (!anchor) return { startDate: null, endDate: null };
58078
+ return { startDate: windowDays2 === null ? null : shiftDay(anchor, -(windowDays2 - 1)), endDate: anchor };
58079
+ }
58080
+ const days = parseDays(query2.days, defaultDays);
58069
58081
  if (!anchor) return { startDate: null, endDate: null };
58070
58082
  return { startDate: shiftDay(anchor, -(days - 1)), endDate: anchor };
58071
58083
  }
58084
+ function spanDays(startDate, endDate) {
58085
+ return Math.round((Date.parse(`${endDate}T00:00:00Z`) - Date.parse(`${startDate}T00:00:00Z`)) / 864e5) + 1;
58086
+ }
58072
58087
  function ctrOf(clicks, impressions) {
58073
58088
  return impressions > 0 ? clicks / impressions : 0;
58074
58089
  }
@@ -58145,45 +58160,95 @@ async function bingDataRoutes(app, opts) {
58145
58160
  const project = resolveProject(app.db, request.params.name);
58146
58161
  const bounds = app.db.select({ latest: sql32`MAX(${bingTrafficDaily.date})`, earliest: sql32`MIN(${bingTrafficDaily.date})` }).from(bingTrafficDaily).where(eq79(bingTrafficDaily.projectId, project.id)).get();
58147
58162
  const latest = bounds?.latest ?? null;
58163
+ const earliest = bounds?.earliest ?? null;
58148
58164
  const window2 = resolveBingWindow(request.query, latest);
58165
+ const priorStart = window2.startDate && window2.endDate ? shiftDay(window2.startDate, -spanDays(window2.startDate, window2.endDate)) : null;
58166
+ const priorWindowIsSynced = priorStart !== null && earliest !== null && earliest <= priorStart;
58167
+ const fetchStart = priorWindowIsSynced ? priorStart : window2.startDate;
58149
58168
  const conditions = [eq79(bingTrafficDaily.projectId, project.id)];
58150
- if (window2.startDate) conditions.push(gte21(bingTrafficDaily.date, window2.startDate));
58169
+ if (fetchStart) conditions.push(gte21(bingTrafficDaily.date, fetchStart));
58151
58170
  if (window2.endDate) conditions.push(lte21(bingTrafficDaily.date, window2.endDate));
58152
- const rows = latest === null && !request.query.startDate ? [] : app.db.select().from(bingTrafficDaily).where(and67(...conditions)).orderBy(asc18(bingTrafficDaily.date)).all();
58171
+ const fetched = latest === null && !request.query.startDate ? [] : app.db.select().from(bingTrafficDaily).where(and67(...conditions)).orderBy(asc18(bingTrafficDaily.date)).all();
58172
+ const rows = window2.startDate ? fetched.filter((row) => row.date >= window2.startDate) : fetched;
58153
58173
  const clicks = rows.reduce((sum, row) => sum + row.clicks, 0);
58154
58174
  const impressions = rows.reduce((sum, row) => sum + row.impressions, 0);
58175
+ const byDate = new Map(rows.map((row) => [row.date, row]));
58176
+ const syncedStart = window2.startDate && earliest && window2.startDate > earliest ? window2.startDate : earliest ?? window2.startDate;
58177
+ const denseDates = rows.length === 0 ? [] : calendarDateRange(syncedStart ?? rows[0].date, window2.endDate ?? rows[rows.length - 1].date);
58178
+ const dense = (pick) => denseDates.map((date) => pick(byDate.get(date) ?? { clicks: 0, impressions: 0 }));
58179
+ const endsWithinData = latest !== null && window2.endDate !== null && window2.endDate <= latest;
58180
+ const comparisonRows = fetched.map((row) => ({ date: row.date, clicks: row.clicks, impressions: row.impressions, position: null, fromPropertyTotals: true }));
58181
+ const periodComparison = !endsWithinData || rows.length === 0 ? null : priorWindowIsSynced ? computeGscPeriodComparison(comparisonRows, { startDate: priorStart, endDate: window2.endDate, basis: "prior-window" }) : computeGscPeriodComparison(comparisonRows, { startDate: syncedStart ?? rows[0].date, endDate: window2.endDate, basis: "split-window" });
58155
58182
  return {
58156
58183
  rows: rows.map((row) => ({ date: row.date, clicks: row.clicks, impressions: row.impressions, ctr: ctrOf(row.clicks, row.impressions) })),
58157
58184
  totals: { clicks, impressions, ctr: ctrOf(clicks, impressions) },
58158
58185
  window: window2,
58159
58186
  latestAvailableDate: latest,
58160
- earliestAvailableDate: bounds?.earliest ?? null
58187
+ earliestAvailableDate: earliest,
58188
+ trends: {
58189
+ clicks: linearTrend(dense((row) => row.clicks)),
58190
+ impressions: linearTrend(dense((row) => row.impressions)),
58191
+ ctr: linearTrend(dense((row) => row.impressions > 0 ? row.clicks / row.impressions : null))
58192
+ },
58193
+ periodComparison
58161
58194
  };
58162
58195
  });
58163
58196
  function weeklyList(table, keyColumn, projectId, query2, keyGroup) {
58164
- const latest = app.db.select({ latest: sql32`MAX(${table.date})` }).from(table).where(eq79(table.projectId, projectId)).get()?.latest ?? null;
58197
+ const bounds = app.db.select({ latest: sql32`MAX(${table.date})`, earliest: sql32`MIN(${table.date})` }).from(table).where(eq79(table.projectId, projectId)).get();
58198
+ const latest = bounds?.latest ?? null;
58165
58199
  const window2 = resolveBingWindow(query2, latest);
58166
58200
  const groupBy = query2.groupBy ?? keyGroup;
58167
58201
  if (groupBy !== keyGroup && groupBy !== "week") {
58168
58202
  throw validationError(`"groupBy" must be ${keyGroup} or week`);
58169
58203
  }
58170
- const conditions = [eq79(table.projectId, projectId)];
58171
- if (window2.startDate) conditions.push(gte21(table.date, window2.startDate));
58172
- if (window2.endDate) conditions.push(lte21(table.date, window2.endDate));
58204
+ const match = query2.match ?? "contains";
58205
+ if (match !== "contains" && match !== "exact") throw validationError('"match" must be contains or exact');
58173
58206
  const search = query2.search?.trim();
58174
- if (search) conditions.push(sql32`${keyColumn} LIKE ${"%" + escapeLikePattern(search) + "%"} ESCAPE '\\'`);
58175
- const where = and67(...conditions);
58207
+ const filters = [eq79(table.projectId, projectId)];
58208
+ if (search) {
58209
+ filters.push(match === "exact" ? eq79(keyColumn, search) : sql32`${keyColumn} LIKE ${"%" + escapeLikePattern(search) + "%"} ESCAPE '\\'`);
58210
+ }
58211
+ const between = (startDate, endDate) => {
58212
+ const conditions = [...filters];
58213
+ if (startDate) conditions.push(gte21(table.date, startDate));
58214
+ if (endDate) conditions.push(lte21(table.date, endDate));
58215
+ return and67(...conditions);
58216
+ };
58217
+ const where = between(window2.startDate, window2.endDate);
58176
58218
  const empty = latest === null && !query2.startDate;
58219
+ const sumOver = (condition) => totalsShape(
58220
+ app.db.select(weeklyAggregates(table)).from(table).where(condition).get() ?? { clicks: 0, impressions: 0, avgImpressionPosition: null, avgClickPosition: null, weeks: 0 }
58221
+ );
58222
+ const windowTotals = empty ? null : sumOver(where);
58223
+ const totals = windowTotals && windowTotals.weeks > 0 ? windowTotals : null;
58224
+ let comparison = null;
58225
+ if (totals && window2.startDate && window2.endDate && bounds?.earliest) {
58226
+ const days = spanDays(window2.startDate, window2.endDate);
58227
+ const priorStart = shiftDay(window2.startDate, -days);
58228
+ if (bounds.earliest <= shiftDay(priorStart, 6)) {
58229
+ const prior = sumOver(between(priorStart, shiftDay(window2.startDate, -1)));
58230
+ comparison = {
58231
+ days,
58232
+ prior,
58233
+ difference: {
58234
+ clicks: totals.clicks - prior.clicks,
58235
+ impressions: totals.impressions - prior.impressions,
58236
+ ctr: roundRatio(totals.ctr - prior.ctr, RatioUnits.fraction),
58237
+ avgImpressionPosition: totals.avgImpressionPosition !== null && prior.avgImpressionPosition !== null ? round(totals.avgImpressionPosition - prior.avgImpressionPosition) : null
58238
+ }
58239
+ };
58240
+ }
58241
+ }
58177
58242
  if (groupBy === "week") {
58178
58243
  const weekly = empty ? [] : app.db.select({ date: table.date, ...weeklyAggregates(table) }).from(table).where(where).groupBy(table.date).orderBy(asc18(table.date)).all().map((row) => ({ date: row.date, ...totalsShape(row) }));
58179
- return { groupBy: "week", keyed: [], weekly, totalMatching: weekly.length, truncated: false, window: window2, latestAvailableDate: latest };
58244
+ return { groupBy: "week", keyed: [], weekly, totalMatching: weekly.length, truncated: false, window: window2, latestAvailableDate: latest, totals, comparison };
58180
58245
  }
58181
58246
  const limit = parseLimit(query2.limit);
58182
58247
  const offset = parseOffset(query2.offset);
58183
58248
  const aggregates = weeklyAggregates(table);
58184
58249
  const keyed = empty ? [] : app.db.select({ key: keyColumn, ...aggregates }).from(table).where(where).groupBy(keyColumn).orderBy(desc34(aggregates.clicks), desc34(aggregates.impressions), asc18(keyColumn)).limit(limit).offset(offset).all().map((row) => ({ key: row.key, ...totalsShape(row) }));
58185
58250
  const totalMatching = empty ? 0 : Number(app.db.select({ total: sql32`COUNT(DISTINCT ${keyColumn})` }).from(table).where(where).get()?.total ?? 0);
58186
- return { groupBy: keyGroup, keyed, weekly: [], totalMatching, truncated: offset + keyed.length < totalMatching, window: window2, latestAvailableDate: latest };
58251
+ return { groupBy: keyGroup, keyed, weekly: [], totalMatching, truncated: offset + keyed.length < totalMatching, window: window2, latestAvailableDate: latest, totals, comparison };
58187
58252
  }
58188
58253
  app.get("/projects/:name/bing/queries", async (request) => {
58189
58254
  const project = resolveProject(app.db, request.params.name);
@@ -58195,7 +58260,9 @@ async function bingDataRoutes(app, opts) {
58195
58260
  totalMatching: result.totalMatching,
58196
58261
  truncated: result.truncated,
58197
58262
  window: result.window,
58198
- latestAvailableDate: result.latestAvailableDate
58263
+ latestAvailableDate: result.latestAvailableDate,
58264
+ totals: result.totals,
58265
+ comparison: result.comparison
58199
58266
  };
58200
58267
  });
58201
58268
  app.get("/projects/:name/bing/pages", async (request) => {
@@ -58208,7 +58275,9 @@ async function bingDataRoutes(app, opts) {
58208
58275
  totalMatching: result.totalMatching,
58209
58276
  truncated: result.truncated,
58210
58277
  window: result.window,
58211
- latestAvailableDate: result.latestAvailableDate
58278
+ latestAvailableDate: result.latestAvailableDate,
58279
+ totals: result.totals,
58280
+ comparison: result.comparison
58212
58281
  };
58213
58282
  });
58214
58283
  app.get("/projects/:name/bing/crawl-stats", async (request) => {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  answerServiceAdapters,
3
3
  answerServiceDescriptors
4
- } from "./chunk-CYQCO5NY.js";
4
+ } from "./chunk-3IC7PRTW.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-E4DUE2PW.js";
30
+ } from "./chunk-GSNKBXGN.js";
31
31
  import {
32
32
  AeroToolProfiles,
33
33
  AeroToolScopes,
34
34
  buildAeroStateTools,
35
35
  isAeroToolProfile,
36
36
  truncateToolResult
37
- } from "./chunk-2KL2XHS6.js";
37
+ } from "./chunk-GDEYX6E3.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-MCQK432C.js";
56
+ } from "./chunk-ZX4TZNP4.js";
57
57
  import {
58
58
  claudeAdapter,
59
59
  embedQueries,
@@ -65,7 +65,7 @@ import {
65
65
  openrouterAdapter,
66
66
  perplexityAdapter,
67
67
  startTrafficReclassification
68
- } from "./chunk-N6AWKBLY.js";
68
+ } from "./chunk-4INNOSWU.js";
69
69
  import {
70
70
  classifyUsageSurface,
71
71
  createApiUsageTelemetry,
@@ -77,7 +77,7 @@ import {
77
77
  startOutcomeTimer,
78
78
  trackFeatureCompleted,
79
79
  trackInstallState
80
- } from "./chunk-OKLDBQYW.js";
80
+ } from "./chunk-RE24YYIY.js";
81
81
  import {
82
82
  isLoopbackBindHost
83
83
  } from "./chunk-TSENU4GG.js";
@@ -85,7 +85,7 @@ import {
85
85
  isApiProviderRegistrable,
86
86
  isCdpProviderRegistrable,
87
87
  registeredProviderNames
88
- } from "./chunk-DILCH7RL.js";
88
+ } from "./chunk-3H5VURTU.js";
89
89
  import {
90
90
  checkLatestVersionForServer,
91
91
  getOrCreateAnonymousId,
@@ -97,17 +97,17 @@ import {
97
97
  recordDashboardEvent,
98
98
  setTelemetryPreference,
99
99
  trackEvent
100
- } from "./chunk-4A4X7VXE.js";
100
+ } from "./chunk-WPTCWNA6.js";
101
101
  import {
102
102
  createCanonryMcpServer
103
- } from "./chunk-R7K24KY7.js";
103
+ } from "./chunk-S7D2ELTC.js";
104
104
  import {
105
105
  CANONRY_MCP_TIERS,
106
106
  CANONRY_MCP_TOOLKIT_NAMES
107
107
  } from "./chunk-MTW37GXF.js";
108
108
  import {
109
109
  ApiClient
110
- } from "./chunk-EGUJNHAZ.js";
110
+ } from "./chunk-TCANF22P.js";
111
111
  import {
112
112
  AGENT_PROVIDERS,
113
113
  adapterSupportsBatch,
@@ -139,21 +139,21 @@ import {
139
139
  saveConfigPatch,
140
140
  sentimentInstallReadiness,
141
141
  updateSharedProviderExecutionGate
142
- } from "./chunk-5KDJJO2N.js";
142
+ } from "./chunk-A6DKZ4KQ.js";
143
143
  import {
144
144
  getBundledSkillSnapshots
145
- } from "./chunk-D354CQ6T.js";
145
+ } from "./chunk-MXGME7NG.js";
146
146
  import {
147
147
  computeFactorAverages,
148
148
  deleteSiteCrawlGraphLayout,
149
149
  persistSiteCrawlGraphLayout,
150
150
  prepareSiteCrawlGraphLayout,
151
151
  recordedSharePct
152
- } from "./chunk-PBOIN52J.js";
152
+ } from "./chunk-EWR25OVQ.js";
153
153
  import {
154
154
  CanonryMcpToolNames,
155
155
  canonryMcpTools
156
- } from "./chunk-O7OZVZWR.js";
156
+ } from "./chunk-VBM6T5ZP.js";
157
157
  import {
158
158
  PACKAGE_VERSION
159
159
  } from "./chunk-AOJU5LKX.js";
@@ -162,16 +162,16 @@ import {
162
162
  } from "./chunk-HGMYEDAQ.js";
163
163
  import {
164
164
  IntelligenceService
165
- } from "./chunk-6DIDDYG6.js";
165
+ } from "./chunk-KAGMYJYG.js";
166
166
  import {
167
167
  computeCitedCompetitorDomains,
168
168
  determineCitationState
169
- } from "./chunk-TL52ELES.js";
169
+ } from "./chunk-DPKA5CWK.js";
170
170
  import {
171
171
  addLogListener,
172
172
  createFastifyLogger,
173
173
  createLogger
174
- } from "./chunk-BDLC3DFM.js";
174
+ } from "./chunk-Y35D3ZCH.js";
175
175
  import {
176
176
  BingApiError,
177
177
  CC_CACHE_DIR,
@@ -315,7 +315,7 @@ import {
315
315
  webhookResponseReason,
316
316
  webhookTargetRefusalReason,
317
317
  writeAuditLog
318
- } from "./chunk-4VMHN5LL.js";
318
+ } from "./chunk-HSOZSLIZ.js";
319
319
  import {
320
320
  OperationalLogStore,
321
321
  SentimentIdempotencyConflict,
@@ -410,7 +410,7 @@ import {
410
410
  unrecognizedAgentEventsHourly,
411
411
  unrecognizedAgentNotifyState,
412
412
  usageCounters
413
- } from "./chunk-ZQGWB7VJ.js";
413
+ } from "./chunk-ZEWOPHTA.js";
414
414
  import {
415
415
  AGENT_MEMORY_VALUE_MAX_BYTES,
416
416
  AI_ENGINE_DOMAINS,
@@ -667,7 +667,7 @@ import {
667
667
  winnabilityClassLabel,
668
668
  withRetry,
669
669
  withSkippedProviders
670
- } from "./chunk-Q2SJRZA3.js";
670
+ } from "./chunk-YKLYWVLL.js";
671
671
 
672
672
  // src/google-marketing-runtime.ts
673
673
  import crypto2 from "crypto";
@@ -5971,7 +5971,7 @@ function nonBlank(value) {
5971
5971
  return trimmed ? trimmed : void 0;
5972
5972
  }
5973
5973
  function resolveBuildCommit(env = process.env) {
5974
- const embedded = true ? "ecd1f66b433f5d60221d22ded51250c0565edf7b" : void 0;
5974
+ const embedded = true ? "631c4f7e14ca92a42ef0e2ea31ad5f3d14c8a286" : void 0;
5975
5975
  return nonBlank(embedded) ?? nonBlank(env.CANONRY_COMMIT);
5976
5976
  }
5977
5977
  function resolveInstanceIdentity(env = process.env) {
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  trackIntegrationConnection
3
- } from "./chunk-OKLDBQYW.js";
3
+ } from "./chunk-RE24YYIY.js";
4
4
  import {
5
5
  cliRuntimeContext
6
- } from "./chunk-4A4X7VXE.js";
6
+ } from "./chunk-WPTCWNA6.js";
7
7
 
8
8
  // src/cli-connection-telemetry.ts
9
9
  function trackCliConnection(properties) {
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-HGMYEDAQ.js";
5
5
  import {
6
6
  describeError
7
- } from "./chunk-Q2SJRZA3.js";
7
+ } from "./chunk-YKLYWVLL.js";
8
8
 
9
9
  // src/gsc-sitemap-submission.ts
10
10
  function dedupeGscSitemapUrls(urls) {
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  pickProjectCitedDomain
3
- } from "./chunk-TL52ELES.js";
3
+ } from "./chunk-DPKA5CWK.js";
4
4
  import {
5
5
  createLogger
6
- } from "./chunk-BDLC3DFM.js";
6
+ } from "./chunk-Y35D3ZCH.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-4VMHN5LL.js";
20
+ } from "./chunk-HSOZSLIZ.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-ZQGWB7VJ.js";
38
+ } from "./chunk-ZEWOPHTA.js";
39
39
  import {
40
40
  CitationStates,
41
41
  RunKinds,
42
42
  RunStatuses,
43
43
  RunTriggers,
44
44
  effectiveDomains
45
- } from "./chunk-Q2SJRZA3.js";
45
+ } from "./chunk-YKLYWVLL.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
  createApiClient
3
- } from "./chunk-EGUJNHAZ.js";
3
+ } from "./chunk-TCANF22P.js";
4
4
  import {
5
5
  emitJsonl
6
6
  } from "./chunk-Z7IUAJOF.js";
@@ -19,7 +19,7 @@ import {
19
19
  formatMicros,
20
20
  formatRunErrorOneLine,
21
21
  resolveProviderInput
22
- } from "./chunk-Q2SJRZA3.js";
22
+ } from "./chunk-YKLYWVLL.js";
23
23
 
24
24
  // src/commands/run.ts
25
25
  function getClient() {
@@ -15,7 +15,7 @@ import {
15
15
  formatCanonryPluginUpdateHint,
16
16
  formatCanonryPluginVersionMismatch,
17
17
  skillsClientSchema
18
- } from "./chunk-Q2SJRZA3.js";
18
+ } from "./chunk-YKLYWVLL.js";
19
19
 
20
20
  // src/commands/skills.ts
21
21
  import crypto from "crypto";
@@ -2,13 +2,13 @@ import {
2
2
  bucketCliCommandDuration,
3
3
  isTelemetryEnabled,
4
4
  trackEvent
5
- } from "./chunk-4A4X7VXE.js";
5
+ } from "./chunk-WPTCWNA6.js";
6
6
  import {
7
7
  getConfigDir
8
- } from "./chunk-5KDJJO2N.js";
8
+ } from "./chunk-A6DKZ4KQ.js";
9
9
  import {
10
10
  currentOutcomeAttribution
11
- } from "./chunk-IPOYH4WE.js";
11
+ } from "./chunk-YW2IQEWS.js";
12
12
  import {
13
13
  AGENT_NONE,
14
14
  OutcomeSurfaces,
@@ -19,7 +19,7 @@ import {
19
19
  integrationConnectionPropertiesSchema,
20
20
  normalizeAgentSlug,
21
21
  usageSurfaceSchema
22
- } from "./chunk-Q2SJRZA3.js";
22
+ } from "./chunk-YKLYWVLL.js";
23
23
 
24
24
  // src/outcome-telemetry.ts
25
25
  import fs from "fs";
@@ -7,12 +7,12 @@ import {
7
7
  import {
8
8
  createApiClient,
9
9
  runWithUsageTags
10
- } from "./chunk-EGUJNHAZ.js";
10
+ } from "./chunk-TCANF22P.js";
11
11
  import {
12
12
  canonryMcpTools,
13
13
  mcpOutputSchema,
14
14
  toolOperationAccess
15
- } from "./chunk-O7OZVZWR.js";
15
+ } from "./chunk-VBM6T5ZP.js";
16
16
  import {
17
17
  PACKAGE_VERSION
18
18
  } from "./chunk-AOJU5LKX.js";
@@ -25,7 +25,7 @@ import {
25
25
  isReadOnlyKey,
26
26
  restrictedWriteScopes,
27
27
  upgradeCaveatFor
28
- } from "./chunk-Q2SJRZA3.js";
28
+ } from "./chunk-YKLYWVLL.js";
29
29
 
30
30
  // src/mcp/server.ts
31
31
  import { randomUUID } from "crypto";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  loadConfig
3
- } from "./chunk-5KDJJO2N.js";
3
+ } from "./chunk-A6DKZ4KQ.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-Q2SJRZA3.js";
39
+ } from "./chunk-YKLYWVLL.js";
40
40
 
41
41
  // ../api-client-generated/src/generated/core/bodySerializer.gen.ts
42
42
  var jsonBodySerializer = {
@@ -4,14 +4,14 @@ import {
4
4
  } from "./chunk-VJWDBFSL.js";
5
5
  import {
6
6
  createApiClient
7
- } from "./chunk-EGUJNHAZ.js";
7
+ } from "./chunk-TCANF22P.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-Q2SJRZA3.js";
14
+ } from "./chunk-YKLYWVLL.js";
15
15
 
16
16
  // src/commands/mcp.ts
17
17
  import fs from "fs";