@canonry/canonry 7.58.5 → 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 (132) hide show
  1. package/assets/agent-workspace/skills/aero/SKILL.md +2 -1
  2. package/assets/agent-workspace/skills/canonry/references/canonry-cli.md +48 -4
  3. package/assets/agent-workspace/skills/canonry/references/server-side-traffic.md +34 -0
  4. package/assets/assets/{AgentSetupPage-CoD9a386.js → AgentSetupPage-xAe2RSTQ.js} +1 -1
  5. package/assets/assets/{AuditHistoryPanel-DSUKF9GC.js → AuditHistoryPanel-DRGMxc1o.js} +1 -1
  6. package/assets/assets/{BacklinksPage-DIZy0NkW.js → BacklinksPage-OS6r_MtQ.js} +1 -1
  7. package/assets/assets/{HistoryPage-B2Xtxu5L.js → HistoryPage-RDxUN7rD.js} +1 -1
  8. package/assets/assets/{MeasurementPropertyPage-BZmvjMiS.js → MeasurementPropertyPage-BVAmJBKa.js} +1 -1
  9. package/assets/assets/{ProjectPage-DMIoYBCF.js → ProjectPage-BWY9eFFx.js} +1 -1
  10. package/assets/assets/{RunsPage-DtvesLu2.js → RunsPage-Fb7IM6iV.js} +1 -1
  11. package/assets/assets/{SettingsPage-BjE3d5Ae.js → SettingsPage-Dz_agQCf.js} +1 -1
  12. package/assets/assets/{SiteHealthSection-D6RLbM2o.js → SiteHealthSection-TXp2Cszl.js} +2 -2
  13. package/assets/assets/ToneBadge-DZzQvXs_.js +60 -0
  14. package/assets/assets/{TrafficPage-CHZlfMgd.js → TrafficPage-BKfgooKl.js} +1 -1
  15. package/assets/assets/{TrafficSourceDetailPage-Dp7AYvRP.js → TrafficSourceDetailPage-C1HM_4Mh.js} +1 -1
  16. package/assets/assets/{account-context-DHWaWJSr.js → account-context-sj3dKq-a.js} +1 -1
  17. package/assets/assets/{card-im88-x1b.js → card-DKV0mNmm.js} +1 -1
  18. package/assets/assets/{extract-error-message-Bq8oNvfF.js → extract-error-message-Tfdo6vAJ.js} +1 -1
  19. package/assets/assets/{format-helpers-DOEct2q8.js → format-helpers-BagbvnfZ.js} +1 -1
  20. package/assets/assets/{index-CgAMnZFS.js → index-7G0DHKIO.js} +4 -4
  21. package/assets/assets/{query-client-BN_-qp71.js → query-client-7P_Wczfa.js} +1 -1
  22. package/assets/assets/{react-query-P6OZ-MPl.js → react-query-agN8P-yg.js} +1 -1
  23. package/assets/assets/{react-sigma_core.esm.min-TGwpCHs4.js → react-sigma_core.esm.min-CHz1PIYq.js} +1 -1
  24. package/assets/assets/{service-CUJkePNp.js → service-CAV4dMit.js} +1 -1
  25. package/assets/index.html +7 -7
  26. package/dist/{ads-BMBXQB67.js → ads-A42JBQ5Q.js} +3 -3
  27. package/dist/{agent-S6CU36RL.js → agent-ZKKHPMOB.js} +7 -7
  28. package/dist/{agent-ask-XG7WQBX6.js → agent-ask-SMV76QZM.js} +3 -3
  29. package/dist/{agent-conversations-C4QBZAPC.js → agent-conversations-O5QA3MHR.js} +3 -3
  30. package/dist/{agent-memory-I7UJ7MKH.js → agent-memory-ZRJQ6SZU.js} +3 -3
  31. package/dist/{agent-providers-YHRIYJDT.js → agent-providers-EOXIPRXN.js} +3 -3
  32. package/dist/{agent-transcript-2WICUOEW.js → agent-transcript-4TB2VI5E.js} +3 -3
  33. package/dist/{analytics-Y5AGSYWD.js → analytics-KSHS32RJ.js} +3 -3
  34. package/dist/{apply-DLVLMU3O.js → apply-4ZZMONED.js} +3 -3
  35. package/dist/{backfill-SINDWLD3.js → backfill-DJIIN5ZR.js} +9 -9
  36. package/dist/{backlinks-TEZTPNZ5.js → backlinks-XIAPORR5.js} +3 -3
  37. package/dist/{bing-IIA5HLND.js → bing-QDZXI334.js} +3 -3
  38. package/dist/{bootstrap-AKGA3BJI.js → bootstrap-7RAGKHJZ.js} +10 -10
  39. package/dist/{cdp-WWOFWFYU.js → cdp-3OX3WGWN.js} +7 -7
  40. package/dist/{chunk-4P7NK7XM.js → chunk-2IBFY7KQ.js} +2 -2
  41. package/dist/{chunk-SCS7R2ND.js → chunk-3JV3PWNA.js} +128 -1
  42. package/dist/{chunk-QEJBAPDP.js → chunk-4IV4FO3O.js} +2616 -2055
  43. package/dist/{chunk-27SGL3DF.js → chunk-66C7YITH.js} +1 -1
  44. package/dist/{chunk-TH3NNUJW.js → chunk-7HZ7KRHT.js} +5 -1
  45. package/dist/{chunk-O6TF6TPM.js → chunk-7KEIZ5OO.js} +8 -8
  46. package/dist/{chunk-YJPQBJZO.js → chunk-7XSGAPN5.js} +48 -3
  47. package/dist/{chunk-NWYNTYPD.js → chunk-ADY24WBX.js} +4 -4
  48. package/dist/{chunk-N2HCXIQ3.js → chunk-D7ZU5LMK.js} +1 -1
  49. package/dist/{chunk-BP5OKJIC.js → chunk-DUYENNUI.js} +2 -2
  50. package/dist/{chunk-52NCZIAC.js → chunk-FCPIOH6P.js} +1 -1
  51. package/dist/{chunk-CYVQW32W.js → chunk-FKQPVB5B.js} +21 -20
  52. package/dist/{chunk-IFVTHGXG.js → chunk-G7VJEPDZ.js} +2 -2
  53. package/dist/{chunk-U65LWABS.js → chunk-GLFE3Q3C.js} +7 -3
  54. package/dist/{chunk-QSPLYPVA.js → chunk-HGBIJIVM.js} +1 -1
  55. package/dist/{chunk-WLIGKWVB.js → chunk-HV5MGQYI.js} +3 -3
  56. package/dist/{chunk-4UGM5YV4.js → chunk-I32IFAB3.js} +3 -3
  57. package/dist/{chunk-G34BVUMF.js → chunk-IDPAYZHR.js} +1 -1
  58. package/dist/{chunk-Y7NX6EIK.js → chunk-JDL4QAPT.js} +2666 -2407
  59. package/dist/{chunk-5D4RL23M.js → chunk-L7WQTD3D.js} +5 -5
  60. package/dist/{chunk-6IBLGQVZ.js → chunk-NQTUPEBQ.js} +1 -1
  61. package/dist/{chunk-Q4J3XSWE.js → chunk-O7KIDW4H.js} +347 -10
  62. package/dist/{chunk-A5F5E4DL.js → chunk-OA6N3BI7.js} +4 -4
  63. package/dist/{chunk-3U7LL3JM.js → chunk-QCSNNKFI.js} +1 -1
  64. package/dist/{chunk-TVANRUBO.js → chunk-QEG7BSLH.js} +8 -1
  65. package/dist/{chunk-AP7YSOFC.js → chunk-QRC6SDPF.js} +417 -331
  66. package/dist/{chunk-65YQFVJM.js → chunk-RLXNZRHD.js} +5 -5
  67. package/dist/{chunk-F6W7FCS2.js → chunk-SJNF5GN2.js} +26 -2
  68. package/dist/{chunk-JGRUCEL4.js → chunk-TLNHDCJF.js} +2 -2
  69. package/dist/{chunk-L7TKNHEX.js → chunk-UHE4RLFW.js} +1 -1
  70. package/dist/{chunk-YDSY5YJE.js → chunk-XJF7LMGU.js} +4 -4
  71. package/dist/{chunk-ZYL3LCDZ.js → chunk-Z63ZR6AD.js} +1 -1
  72. package/dist/{chunk-KWXARGCT.js → chunk-Z7WG6F7Q.js} +3 -3
  73. package/dist/{chunk-4TM4NXQR.js → chunk-ZK5WIVGA.js} +2 -2
  74. package/dist/{citations-4LVBHTDX.js → citations-L3HFNQVU.js} +3 -3
  75. package/dist/{cli-catalog-PJYR3JHX.js → cli-catalog-DJPRREDK.js} +3 -3
  76. package/dist/{cli-commands-ZPW3OST3.js → cli-commands-4KG4X76Z.js} +7 -7
  77. package/dist/cli.js +14 -14
  78. package/dist/{competitor-T7UXAW4F.js → competitor-Q5LZ26U5.js} +3 -3
  79. package/dist/{content-DFYYGGPI.js → content-WRVFNQSO.js} +3 -3
  80. package/dist/{dashboard-VT3GQRW4.js → dashboard-GBP2T2AG.js} +6 -6
  81. package/dist/{demo-ZBNVULOO.js → demo-JMLMPLJ6.js} +1 -1
  82. package/dist/{demo-server-QUW4TDJL.js → demo-server-AOVPBGZ7.js} +11 -11
  83. package/dist/{discover-QTC5OBQG.js → discover-SKUNZE4Y.js} +3 -3
  84. package/dist/{discover-eval-QQZGUPR6.js → discover-eval-57BEDSQN.js} +3 -3
  85. package/dist/{doctor-VHFDL5MH.js → doctor-DMLJGH6G.js} +3 -3
  86. package/dist/{evidence-4PRFOC2I.js → evidence-J4XF4W7O.js} +3 -3
  87. package/dist/{export-cmd-BQE7BPKZ.js → export-cmd-3JXT2YAP.js} +3 -3
  88. package/dist/{ga-ULY5XDBK.js → ga-KHILAPMC.js} +3 -3
  89. package/dist/{gbp-4WHNZAFY.js → gbp-PHOFQZNT.js} +3 -3
  90. package/dist/{google-O4IVWLSG.js → google-QOLM2NBI.js} +4 -4
  91. package/dist/{google-marketing-DCQDTDDG.js → google-marketing-N37WUWNL.js} +1 -1
  92. package/dist/{health-cmd-I2JTACS7.js → health-cmd-2FUEPUJZ.js} +3 -3
  93. package/dist/{history-LUPHO3P3.js → history-MOSRCLAD.js} +3 -3
  94. package/dist/index.d.ts +818 -64
  95. package/dist/index.js +24 -24
  96. package/dist/{init-C2DLDK6T.js → init-V6ER2PJV.js} +11 -11
  97. package/dist/{insights-GC2W45U4.js → insights-F3MT66IV.js} +3 -3
  98. package/dist/intelligence-service-S5DI74LD.js +15 -0
  99. package/dist/journeys-DNS3EZNK.js +122 -0
  100. package/dist/{keys-DXQBSOBI.js → keys-NPOLKCWZ.js} +3 -3
  101. package/dist/{keyword-2DCR2QCJ.js → keyword-AXEPIJQ7.js} +3 -3
  102. package/dist/{logs-H45QFIEB.js → logs-ECEDVUTX.js} +3 -3
  103. package/dist/{mcp-NXXP6M3C.js → mcp-HUIRIY74.js} +2 -2
  104. package/dist/mcp.js +9 -9
  105. package/dist/{measurement-plan-IG4JUKKW.js → measurement-plan-5Y2IHH43.js} +5 -5
  106. package/dist/{notify-BLLWXMBB.js → notify-PIFCJ7WM.js} +3 -3
  107. package/dist/{organic-evidence-73K7W7SB.js → organic-evidence-S2IE5XV6.js} +3 -3
  108. package/dist/{overview-4TAULPUG.js → overview-TZT7C4U4.js} +4 -4
  109. package/dist/{project-ANX4JTWS.js → project-HIY673Y5.js} +3 -3
  110. package/dist/{query-U3MFTLGR.js → query-FUJIMFJQ.js} +3 -3
  111. package/dist/{research-3YZ6QI67.js → research-ECGEXWID.js} +3 -3
  112. package/dist/{results-export-72OVLKSC.js → results-export-7DRGFNUX.js} +3 -3
  113. package/dist/{run-SI6IL4FC.js → run-4JEDD5VT.js} +4 -4
  114. package/dist/{schedule-FYEHU2VH.js → schedule-NRHQXHTW.js} +3 -3
  115. package/dist/{search-MXDT3DQE.js → search-M7PNZZZL.js} +3 -3
  116. package/dist/{serve-ME2KJ6BG.js → serve-RXLQEALQ.js} +56 -27
  117. package/dist/{session-R3PRJ3RB.js → session-MCSZQR5V.js} +12 -12
  118. package/dist/{settings-ZGS26QOP.js → settings-JXOYI7VV.js} +3 -3
  119. package/dist/{skills-ZMMCKKSA.js → skills-SRUXD2PV.js} +2 -2
  120. package/dist/{snapshot-5AGGUQKE.js → snapshot-7N4BEGGM.js} +3 -3
  121. package/dist/{src-AIM5FPLZ.js → src-ZAAE3NIM.js} +8 -2
  122. package/dist/{status-HVQI4E5X.js → status-5OYYSMAY.js} +4 -4
  123. package/dist/{technical-aeo-S4OFCURE.js → technical-aeo-464OUUWT.js} +3 -3
  124. package/dist/{telemetry-SPSC5MUN.js → telemetry-BZFNXACR.js} +4 -4
  125. package/dist/{tools-VZVQ2CTU.js → tools-YVWC3NTG.js} +11 -11
  126. package/dist/{traffic-5AXVN37M.js → traffic-WXJHRB7H.js} +13 -8
  127. package/dist/{users-WFKSUCGV.js → users-U2UNKGDY.js} +3 -3
  128. package/dist/{visibility-stats-5S26GC27.js → visibility-stats-AHGME46N.js} +3 -3
  129. package/dist/{wordpress-IUPZC7II.js → wordpress-FUVFZKH2.js} +3 -3
  130. package/package.json +1 -1
  131. package/assets/assets/ToneBadge-DYEbxp5S.js +0 -60
  132. package/dist/intelligence-service-R5BRSQKI.js +0 -15
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  USAGE_TELEMETRY_HEADERS,
3
3
  redactLogString
4
- } from "./chunk-Y7NX6EIK.js";
4
+ } from "./chunk-JDL4QAPT.js";
5
5
 
6
6
  // ../api-routes/src/request-context.ts
7
7
  import { AsyncLocalStorage } from "async_hooks";
@@ -5,7 +5,7 @@ import {
5
5
  AppError,
6
6
  parseWindowIn,
7
7
  resolveDateRange
8
- } from "./chunk-Y7NX6EIK.js";
8
+ } from "./chunk-JDL4QAPT.js";
9
9
 
10
10
  // src/cli-access.ts
11
11
  var CLI_ACCESS_BY_ID = Object.freeze({
@@ -224,6 +224,10 @@ var CLI_ACCESS_BY_ID = Object.freeze({
224
224
  "init": "write",
225
225
  "insights": "stored",
226
226
  "insights.dismiss": "write",
227
+ "journeys": "stored",
228
+ "journeys.list": "stored",
229
+ "journeys.show": "stored",
230
+ "journeys.summary": "stored",
227
231
  "key": "stored",
228
232
  "key.create": "write",
229
233
  "key.list": "stored",
@@ -7,27 +7,27 @@ import {
7
7
  reparseStoredResult4,
8
8
  reparseStoredResult5,
9
9
  resolveStoredApiResponse
10
- } from "./chunk-BP5OKJIC.js";
10
+ } from "./chunk-DUYENNUI.js";
11
11
  import {
12
12
  loadConfig
13
- } from "./chunk-TVANRUBO.js";
13
+ } from "./chunk-QEG7BSLH.js";
14
14
  import {
15
15
  isMachineFormat
16
16
  } from "./chunk-HGMYEDAQ.js";
17
17
  import {
18
18
  determineCitationState
19
- } from "./chunk-L7TKNHEX.js";
19
+ } from "./chunk-UHE4RLFW.js";
20
20
  import {
21
21
  backfillProjectAnswerMentions,
22
22
  competitorIdentityColumns,
23
23
  createRunCompetitorResolver,
24
24
  readMarketCompetitorNames,
25
25
  refreshSnapshotMentionIdentity
26
- } from "./chunk-QEJBAPDP.js";
26
+ } from "./chunk-4IV4FO3O.js";
27
27
  import {
28
28
  classifyAiUserFetch,
29
29
  classifyCrawler
30
- } from "./chunk-Q4J3XSWE.js";
30
+ } from "./chunk-O7KIDW4H.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-SCS7R2ND.js";
45
+ } from "./chunk-3JV3PWNA.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-Y7NX6EIK.js";
62
+ } from "./chunk-JDL4QAPT.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-R5BRSQKI.js");
440
+ const { IntelligenceService } = await import("./intelligence-service-S5DI74LD.js");
441
441
  const config = loadConfig();
442
442
  const db = createClient(config.database);
443
443
  migrate(db);
@@ -2,11 +2,11 @@ import {
2
2
  dedupeGscSitemapUrls,
3
3
  resolveDiscoveredGscSitemapUrls,
4
4
  submitGscSitemapBatches
5
- } from "./chunk-QSPLYPVA.js";
5
+ } from "./chunk-HGBIJIVM.js";
6
6
  import {
7
7
  measurementDraftOperationSchema,
8
8
  runMeasurementDraftAction
9
- } from "./chunk-N2HCXIQ3.js";
9
+ } from "./chunk-D7ZU5LMK.js";
10
10
  import {
11
11
  CliError
12
12
  } from "./chunk-HGMYEDAQ.js";
@@ -70,6 +70,9 @@ import {
70
70
  gscPerformanceOrderBySchema,
71
71
  insightSeveritySchema,
72
72
  instanceStatusDtoSchema,
73
+ journeyDetailQuerySchema,
74
+ journeySummaryQuerySchema,
75
+ journeysQuerySchema,
73
76
  keywordBatchRequestSchema,
74
77
  keywordGenerateRequestSchema,
75
78
  logQuerySchema,
@@ -170,7 +173,7 @@ import {
170
173
  trafficSeriesGranularitySchema,
171
174
  visibilityCompareSelectionSchema,
172
175
  visibilityReportRequestSchema
173
- } from "./chunk-Y7NX6EIK.js";
176
+ } from "./chunk-JDL4QAPT.js";
174
177
 
175
178
  // src/mcp/tool-registry.ts
176
179
  import { z as z2 } from "zod";
@@ -2821,6 +2824,48 @@ var rawCanonryMcpTools = [
2821
2824
  return client.trafficListSamples(project, query);
2822
2825
  }
2823
2826
  }),
2827
+ defineTool({
2828
+ name: "canonry_journeys_summary",
2829
+ title: "Summarize AI visitor journeys",
2830
+ description: "Stored AI visitor journeys: visitors whose first AI visit started in the window (default 30 days), how many came back in a later visit, by which entry (search, direct, social, paid, referral, ai), median days to return, and counts by engine. Visitors are keyed hashes, never IPs; user-agent-only keys (sources without an IP) can merge people on the same device and browser version. No provider call or write.",
2831
+ access: "read",
2832
+ tier: "traffic",
2833
+ inputSchema: journeySummaryQuerySchema.extend({ project: projectNameSchema }),
2834
+ annotations: readAnnotations(),
2835
+ openApiOperations: ["GET /api/v1/projects/{name}/journeys/summary"],
2836
+ handler: (client, input) => {
2837
+ const { project, ...query } = input;
2838
+ return client.journeysSummary(project, query);
2839
+ }
2840
+ }),
2841
+ defineTool({
2842
+ name: "canonry_journeys_list",
2843
+ title: "List AI visitor journeys",
2844
+ description: "List stored AI visitors, newest first AI visit first, with their first 20 visits (entry class and name, landing path, page count; visitCount is the total). Filter by first AI engine or by whether they came back. Visits are 30-minute sessions; visits within 30 days after an AI visit are kept, 180-day retention. A high cappedDays means a user agent many people share; partialSources names sources whose logs miss later visits. No provider call or write.",
2845
+ access: "read",
2846
+ tier: "traffic",
2847
+ inputSchema: journeysQuerySchema.extend({ project: projectNameSchema }),
2848
+ annotations: readAnnotations(),
2849
+ openApiOperations: ["GET /api/v1/projects/{name}/journeys"],
2850
+ handler: (client, input) => {
2851
+ const { project, ...query } = input;
2852
+ return client.journeysList(project, query);
2853
+ }
2854
+ }),
2855
+ defineTool({
2856
+ name: "canonry_journey_get",
2857
+ title: "Read one AI visitor journey",
2858
+ description: "Read one AI visitor key from canonry_journeys_list: a page of its stored visits in time order (limit 1 to 500, default 100; totalVisits is the total), each with its requests (time, method, path, status, page or data). No provider call or write.",
2859
+ access: "read",
2860
+ tier: "traffic",
2861
+ inputSchema: journeyDetailQuerySchema.extend({ project: projectNameSchema, visitorKey: z2.string().min(1) }),
2862
+ annotations: readAnnotations(),
2863
+ openApiOperations: ["GET /api/v1/projects/{name}/journeys/{visitorKey}"],
2864
+ handler: (client, input) => {
2865
+ const { project, visitorKey, ...query } = input;
2866
+ return client.journeyGet(project, visitorKey, query);
2867
+ }
2868
+ }),
2824
2869
  defineTool({
2825
2870
  name: "canonry_traffic_events",
2826
2871
  title: "List traffic events",
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  registeredProviderNames
3
- } from "./chunk-3U7LL3JM.js";
3
+ } from "./chunk-QCSNNKFI.js";
4
4
  import {
5
5
  configExists,
6
6
  loadConfigRaw
7
- } from "./chunk-TVANRUBO.js";
7
+ } from "./chunk-QEG7BSLH.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-AIM5FPLZ.js");
31
+ const { createClient, projects, queries: queriesTable } = await import("./src-ZAAE3NIM.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-ME2KJ6BG.js");
50
+ const { serveCommand } = await import("./serve-RXLQEALQ.js");
51
51
  await serveCommand(format);
52
52
  }
53
53
 
@@ -23,7 +23,7 @@ import {
23
23
  measurementDraftUpsertGroupRequestSchema,
24
24
  measurementDraftUpsertMarketRequestSchema,
25
25
  measurementDraftUpsertTargetRequestSchema
26
- } from "./chunk-Y7NX6EIK.js";
26
+ } from "./chunk-JDL4QAPT.js";
27
27
 
28
28
  // src/measurement-draft-actions.ts
29
29
  import { z } from "zod";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseJsonColumn
3
- } from "./chunk-SCS7R2ND.js";
3
+ } from "./chunk-3JV3PWNA.js";
4
4
  import {
5
5
  AI_ENGINE_DOMAINS,
6
6
  AI_ENGINE_SELF_DOMAINS,
@@ -26,7 +26,7 @@ import {
26
26
  retryAfterDelayMs,
27
27
  usageCount,
28
28
  withRetry
29
- } from "./chunk-Y7NX6EIK.js";
29
+ } from "./chunk-JDL4QAPT.js";
30
30
 
31
31
  // ../provider-openai/src/normalize.ts
32
32
  import OpenAI from "openai";
@@ -28,7 +28,7 @@ import {
28
28
  unknownUsageObservation,
29
29
  usdToMicros,
30
30
  withRetry
31
- } from "./chunk-Y7NX6EIK.js";
31
+ } from "./chunk-JDL4QAPT.js";
32
32
 
33
33
  // ../provider-answer-services/src/core/http.ts
34
34
  var MAX_RESPONSE_BYTES = 8 * 1024 * 1024;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  answerServiceAdapters,
3
3
  answerServiceDescriptors
4
- } from "./chunk-52NCZIAC.js";
4
+ } from "./chunk-FCPIOH6P.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-5D4RL23M.js";
30
+ } from "./chunk-L7WQTD3D.js";
31
31
  import {
32
32
  AeroToolProfiles,
33
33
  AeroToolScopes,
34
34
  buildAeroStateTools,
35
35
  isAeroToolProfile,
36
36
  truncateToolResult
37
- } from "./chunk-A5F5E4DL.js";
37
+ } from "./chunk-OA6N3BI7.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-6IBLGQVZ.js";
56
+ } from "./chunk-NQTUPEBQ.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-BP5OKJIC.js";
67
+ } from "./chunk-DUYENNUI.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-YDSY5YJE.js";
79
+ } from "./chunk-XJF7LMGU.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-3U7LL3JM.js";
87
+ } from "./chunk-QCSNNKFI.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-IFVTHGXG.js";
98
+ } from "./chunk-G7VJEPDZ.js";
99
99
  import {
100
100
  createCanonryMcpServer
101
- } from "./chunk-KWXARGCT.js";
101
+ } from "./chunk-Z7WG6F7Q.js";
102
102
  import {
103
103
  CANONRY_MCP_TIERS,
104
104
  CANONRY_MCP_TOOLKIT_NAMES
105
105
  } from "./chunk-NCIPNVD6.js";
106
106
  import {
107
107
  ApiClient
108
- } from "./chunk-F6W7FCS2.js";
108
+ } from "./chunk-SJNF5GN2.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-TVANRUBO.js";
139
+ } from "./chunk-QEG7BSLH.js";
140
140
  import {
141
141
  getBundledSkillSnapshots
142
- } from "./chunk-G34BVUMF.js";
142
+ } from "./chunk-IDPAYZHR.js";
143
143
  import {
144
144
  computeFactorAverages,
145
145
  deleteSiteCrawlGraphLayout,
146
146
  persistSiteCrawlGraphLayout,
147
147
  prepareSiteCrawlGraphLayout,
148
148
  recordedSharePct
149
- } from "./chunk-4TM4NXQR.js";
149
+ } from "./chunk-ZK5WIVGA.js";
150
150
  import {
151
151
  CanonryMcpToolNames,
152
152
  canonryMcpTools
153
- } from "./chunk-YJPQBJZO.js";
153
+ } from "./chunk-7XSGAPN5.js";
154
154
  import {
155
155
  PACKAGE_VERSION
156
156
  } from "./chunk-AOJU5LKX.js";
@@ -162,11 +162,11 @@ import {
162
162
  addLogListener,
163
163
  createFastifyLogger,
164
164
  createLogger
165
- } from "./chunk-65YQFVJM.js";
165
+ } from "./chunk-RLXNZRHD.js";
166
166
  import {
167
167
  computeCitedCompetitorDomains,
168
168
  determineCitationState
169
- } from "./chunk-L7TKNHEX.js";
169
+ } from "./chunk-UHE4RLFW.js";
170
170
  import {
171
171
  BingApiError,
172
172
  CC_CACHE_DIR,
@@ -285,7 +285,7 @@ import {
285
285
  webhookResponseReason,
286
286
  webhookTargetRefusalReason,
287
287
  writeAuditLog
288
- } from "./chunk-QEJBAPDP.js";
288
+ } from "./chunk-4IV4FO3O.js";
289
289
  import {
290
290
  OperationalLogStore,
291
291
  SentimentIdempotencyConflict,
@@ -371,7 +371,7 @@ import {
371
371
  siteLivenessState,
372
372
  trafficSources,
373
373
  usageCounters
374
- } from "./chunk-SCS7R2ND.js";
374
+ } from "./chunk-3JV3PWNA.js";
375
375
  import {
376
376
  AGENT_MEMORY_VALUE_MAX_BYTES,
377
377
  AI_ENGINE_DOMAINS,
@@ -616,7 +616,7 @@ import {
616
616
  winnabilityClassLabel,
617
617
  withRetry,
618
618
  withSkippedProviders
619
- } from "./chunk-Y7NX6EIK.js";
619
+ } from "./chunk-JDL4QAPT.js";
620
620
 
621
621
  // src/google-marketing-runtime.ts
622
622
  import crypto2 from "crypto";
@@ -5657,7 +5657,7 @@ function nonBlank(value) {
5657
5657
  return trimmed ? trimmed : void 0;
5658
5658
  }
5659
5659
  function resolveBuildCommit(env = process.env) {
5660
- const embedded = true ? "9a896bfe2e40ca556ac3d4d8e35a39ad0f9060f5" : void 0;
5660
+ const embedded = true ? "f07ffb8d5bf311a4b65733f81f887459cf1aa259" : void 0;
5661
5661
  return nonBlank(embedded) ?? nonBlank(env.CANONRY_COMMIT);
5662
5662
  }
5663
5663
  function resolveInstanceIdentity(env = process.env) {
@@ -20819,6 +20819,7 @@ async function createServer(opts) {
20819
20819
  wordpressTrafficCredentialStore,
20820
20820
  vercelTrafficCredentialStore,
20821
20821
  cloudflareTrafficCredentialStore,
20822
+ journeyKeySecret: opts.journeyKeySecret,
20822
20823
  cloudflareTrafficIngestUrl: buildCloudflareIngestUrlTemplate(opts.config),
20823
20824
  onTrafficSynced: trackTrafficSynced,
20824
20825
  onTrafficIngested: trackTrafficIngested,
@@ -5,7 +5,7 @@ import {
5
5
  loadConfig,
6
6
  loadConfigRaw,
7
7
  saveConfigPatch
8
- } from "./chunk-TVANRUBO.js";
8
+ } from "./chunk-QEG7BSLH.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-Y7NX6EIK.js";
21
+ } from "./chunk-JDL4QAPT.js";
22
22
 
23
23
  // src/runtime-context.ts
24
24
  function cliRuntimeContext(env = process.env, stdio = process) {
@@ -3,7 +3,7 @@ import {
3
3
  resolveCliAccess,
4
4
  resolveCliAccessForInvocation,
5
5
  windowOptions
6
- } from "./chunk-TH3NNUJW.js";
6
+ } from "./chunk-7HZ7KRHT.js";
7
7
  import {
8
8
  emitJsonl
9
9
  } from "./chunk-Z7IUAJOF.js";
@@ -14,7 +14,7 @@ import {
14
14
  } from "./chunk-HGMYEDAQ.js";
15
15
  import {
16
16
  OperationAccesses
17
- } from "./chunk-Y7NX6EIK.js";
17
+ } from "./chunk-JDL4QAPT.js";
18
18
 
19
19
  // src/cli-catalog.ts
20
20
  import { createRequire } from "module";
@@ -111,7 +111,7 @@ async function dispatchRegisteredCommand(args, fallbackFormat, specs) {
111
111
  const accessValue = accessFilterFromArgs(argsWithoutHelp);
112
112
  validateAccessFilter(accessValue);
113
113
  if (fallbackFormat !== "text") {
114
- const { printCliCatalog: printCliCatalog2 } = await import("./cli-catalog-PJYR3JHX.js");
114
+ const { printCliCatalog: printCliCatalog2 } = await import("./cli-catalog-DJPRREDK.js");
115
115
  const group2 = argsWithoutHelp.find((arg) => !arg.startsWith("--"));
116
116
  printCliCatalog2(specs, fallbackFormat, group2, accessValue);
117
117
  return true;
@@ -330,6 +330,10 @@ var CLI_ROOT_SUMMARIES = {
330
330
  "section": "Integrations",
331
331
  "summary": "Server-side traffic ingestion (Cloud Run)"
332
332
  },
333
+ "journeys": {
334
+ "section": "Integrations",
335
+ "summary": "AI visitor journeys from server-side traffic"
336
+ },
333
337
  "schedule": {
334
338
  "section": "Automation",
335
339
  "summary": "Manage scheduled runs"
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-HGMYEDAQ.js";
5
5
  import {
6
6
  describeError
7
- } from "./chunk-Y7NX6EIK.js";
7
+ } from "./chunk-JDL4QAPT.js";
8
8
 
9
9
  // src/gsc-sitemap-submission.ts
10
10
  function dedupeGscSitemapUrls(urls) {
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-F6W7FCS2.js";
3
+ } from "./chunk-SJNF5GN2.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-N2HCXIQ3.js";
10
+ } from "./chunk-D7ZU5LMK.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-Y7NX6EIK.js";
40
+ } from "./chunk-JDL4QAPT.js";
41
41
 
42
42
  // src/commands/measurement-plan.ts
43
43
  import crypto from "crypto";
@@ -2,18 +2,18 @@ import {
2
2
  configExists,
3
3
  loadConfigRaw,
4
4
  saveConfigPatch
5
- } from "./chunk-TVANRUBO.js";
5
+ } from "./chunk-QEG7BSLH.js";
6
6
  import {
7
7
  BUNDLED_SKILL_NAMES,
8
8
  installSkills
9
- } from "./chunk-G34BVUMF.js";
9
+ } from "./chunk-IDPAYZHR.js";
10
10
  import {
11
11
  PACKAGE_VERSION
12
12
  } from "./chunk-AOJU5LKX.js";
13
13
  import {
14
14
  SKILL_MANIFEST_FILENAME,
15
15
  SkillsClients
16
- } from "./chunk-Y7NX6EIK.js";
16
+ } from "./chunk-JDL4QAPT.js";
17
17
 
18
18
  // src/skills-autosync.ts
19
19
  import fs from "fs";
@@ -15,7 +15,7 @@ import {
15
15
  formatCanonryPluginUpdateHint,
16
16
  formatCanonryPluginVersionMismatch,
17
17
  skillsClientSchema
18
- } from "./chunk-Y7NX6EIK.js";
18
+ } from "./chunk-JDL4QAPT.js";
19
19
 
20
20
  // src/commands/skills.ts
21
21
  import crypto from "crypto";