@canonry/canonry 7.82.0 → 7.83.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/aero/references/ai-traffic-tracking.md +20 -3
  2. package/assets/agent-workspace/skills/canonry/references/ai-traffic-tracking.md +20 -3
  3. package/assets/agent-workspace/skills/canonry/references/canonry-cli.md +35 -2
  4. package/assets/agent-workspace/skills/canonry/references/server-side-traffic.md +57 -1
  5. package/assets/assets/{AgentSetupPage-CcjQeUvK.js → AgentSetupPage-B9NOQP8a.js} +6 -6
  6. package/assets/assets/{AuditHistoryPanel-DgTvt2hQ.js → AuditHistoryPanel-Fvh4WFjq.js} +1 -1
  7. package/assets/assets/{BacklinksPage-DFQhtk4d.js → BacklinksPage-D1UHFLoV.js} +1 -1
  8. package/assets/assets/{ChartPrimitives-CfjGDL5d.js → ChartPrimitives-B5L9FUj3.js} +1 -1
  9. package/assets/assets/{Hint-Ro2RKH6t.js → Hint-CfeZmZig.js} +1 -1
  10. package/assets/assets/{HistoryPage-CkkWqQol.js → HistoryPage-CBcacDgP.js} +1 -1
  11. package/assets/assets/{InfoTooltip-CJ3IWqBk.js → InfoTooltip-DrBIPuSU.js} +1 -1
  12. package/assets/assets/MeasurementPropertyPage-ZuZpurwr.js +4 -0
  13. package/assets/assets/ProjectPage-BoqDyoGi.js +11 -0
  14. package/assets/assets/{RunsPage-B4tMl-_9.js → RunsPage-tlCk_gOw.js} +1 -1
  15. package/assets/assets/{SettingsPage-DmDdf02o.js → SettingsPage-7mRTFLFQ.js} +1 -1
  16. package/assets/assets/SiteHealthSection-l_A_AmY_.js +2 -0
  17. package/assets/assets/ToneBadge-CXyUIWzB.js +60 -0
  18. package/assets/assets/{TrafficPage-C9y8xEr6.js → TrafficPage-DQbBT3TP.js} +2 -2
  19. package/assets/assets/TrafficSourceDetailPage-D3DwE6Qd.js +1 -0
  20. package/assets/assets/{account-context-BjM5ZlYl.js → account-context-Bhgg1lEH.js} +1 -1
  21. package/assets/assets/agent-trust-copy-CKZsKhc0.js +1 -0
  22. package/assets/assets/{card-CDFncx20.js → card-B16Dvxau.js} +1 -1
  23. package/assets/assets/{extract-error-message-s3FKmMjt.js → extract-error-message-B5_v_-U8.js} +1 -1
  24. package/assets/assets/{format-helpers-CYQ-LjnQ.js → format-helpers-Bs9rrO74.js} +1 -1
  25. package/assets/assets/index-3aBRkQpI.js +60 -0
  26. package/assets/assets/{index-TBDfE2OO.css → index-BnmWwrZA.css} +1 -1
  27. package/assets/assets/{query-client-C_dAEVvf.js → query-client-D-tt1sn3.js} +1 -1
  28. package/assets/assets/react-query-DQr9PoNm.js +1 -0
  29. package/assets/assets/{react-sigma_core.esm.min-J2l6CcJl.js → react-sigma_core.esm.min-BfZVKh7v.js} +1 -1
  30. package/assets/assets/{service-BhAtQFOI.js → service-Cmt36bhL.js} +1 -1
  31. package/assets/assets/{vendor-lucide-BILL9eZH.js → vendor-lucide-CoTHJwai.js} +1 -1
  32. package/assets/assets/{vendor-markdown-DNTP_967.js → vendor-markdown-cQgSk2i0.js} +1 -1
  33. package/assets/assets/{vendor-radix-C6jOoh_7.js → vendor-radix-wS8sWIWE.js} +1 -1
  34. package/assets/assets/{vendor-recharts-PsGDYxIT.js → vendor-recharts-AnNqECZW.js} +1 -1
  35. package/assets/assets/{vendor-tanstack-BoP7BGaH.js → vendor-tanstack-q5SvZtcv.js} +1 -1
  36. package/assets/index.html +15 -15
  37. package/dist/{ads-UDOONRKQ.js → ads-BSVYKQ2L.js} +3 -3
  38. package/dist/{agent-JTEGEX6X.js → agent-L7VUHOHS.js} +7 -7
  39. package/dist/{agent-ask-PUV4EVGS.js → agent-ask-A4HQCNLV.js} +3 -3
  40. package/dist/{agent-conversations-TWTSQHBR.js → agent-conversations-L3TJJKPJ.js} +3 -3
  41. package/dist/agent-journeys-FEXRAZYN.js +86 -0
  42. package/dist/{agent-memory-ZJEXAUJB.js → agent-memory-LBTLOHUA.js} +3 -3
  43. package/dist/{agent-providers-2RQZSGMP.js → agent-providers-X7V2IHRK.js} +3 -3
  44. package/dist/{agent-transcript-YYS3XBES.js → agent-transcript-YSP2HKUZ.js} +3 -3
  45. package/dist/{analytics-RLC6PRUZ.js → analytics-FBPHES6M.js} +3 -3
  46. package/dist/{apply-Z5SSCEJ2.js → apply-PBCXZC5F.js} +3 -3
  47. package/dist/{backfill-6K2UMALK.js → backfill-NMHO3AIW.js} +9 -9
  48. package/dist/{backlinks-LDI2VTPT.js → backlinks-QMLTF2VF.js} +3 -3
  49. package/dist/{bing-SSNMNZEF.js → bing-H65WGTXU.js} +3 -3
  50. package/dist/{bootstrap-ISRV5I52.js → bootstrap-JAZNMAKP.js} +10 -10
  51. package/dist/{cdp-WU7QCPQ3.js → cdp-4DAMAHTB.js} +7 -7
  52. package/dist/{chunk-T76RQIGK.js → chunk-32U5LFIT.js} +4 -4
  53. package/dist/{chunk-SIRWPXGJ.js → chunk-33EHXZDH.js} +18 -9
  54. package/dist/{chunk-2GJLKCXL.js → chunk-3UFQI4KL.js} +114 -1
  55. package/dist/{chunk-5NDUJLUL.js → chunk-4PPF3SIU.js} +7 -7
  56. package/dist/{chunk-J7EYQFMJ.js → chunk-4XM3T65L.js} +4 -4
  57. package/dist/{chunk-QHEKMJL4.js → chunk-7Q5BSCKN.js} +2 -2
  58. package/dist/{chunk-JMUSNZJR.js → chunk-AA6P5NK3.js} +1 -1
  59. package/dist/{chunk-462CIYLY.js → chunk-CBAYQHNX.js} +1 -1
  60. package/dist/{chunk-J2DA4LUR.js → chunk-DRZDOL3P.js} +22 -22
  61. package/dist/{chunk-M7WS2BL3.js → chunk-FICCBAAY.js} +152 -5
  62. package/dist/{chunk-HDVJNYYE.js → chunk-HIC62JTS.js} +34 -5
  63. package/dist/{chunk-ZX7XDVPC.js → chunk-IPPNN5KE.js} +18 -2
  64. package/dist/{chunk-LRFCNERP.js → chunk-JCWXEVYW.js} +3 -3
  65. package/dist/{chunk-ZR3RYJF3.js → chunk-JECDHS6M.js} +5 -5
  66. package/dist/{chunk-EIDOBJF2.js → chunk-KCFIQJOL.js} +2 -2
  67. package/dist/{chunk-2FIDPBWE.js → chunk-KFMU6CLU.js} +1 -1
  68. package/dist/{chunk-OH42CAWP.js → chunk-LZGVQSZL.js} +1 -1
  69. package/dist/{chunk-JI7FDO7I.js → chunk-MTW37GXF.js} +1 -1
  70. package/dist/{chunk-RMZCQUKN.js → chunk-N3PYCQYT.js} +392 -343
  71. package/dist/{chunk-JDEHNF7K.js → chunk-NCM6PX64.js} +1 -1
  72. package/dist/{chunk-NPMJFPBM.js → chunk-OIHR2BDK.js} +3042 -2633
  73. package/dist/{chunk-GKHM5OT6.js → chunk-OMNS42ZQ.js} +2 -2
  74. package/dist/{chunk-NNUZ37NJ.js → chunk-P76XOEWL.js} +4 -4
  75. package/dist/{chunk-S6IC7ZK2.js → chunk-PHVIMUAQ.js} +2683 -2474
  76. package/dist/{chunk-SVF4P6DB.js → chunk-QAJDHHC5.js} +1 -1
  77. package/dist/{chunk-2PDDTRTG.js → chunk-S5Y633HH.js} +4 -4
  78. package/dist/{chunk-5K3S74ZX.js → chunk-SEAXXCU6.js} +3 -1
  79. package/dist/{chunk-4IYFVC22.js → chunk-SKH3N6WI.js} +3 -3
  80. package/dist/{chunk-VVOCZTNC.js → chunk-SVMTN7MI.js} +2 -2
  81. package/dist/{chunk-WB6VIQ7L.js → chunk-W5ZBMBBZ.js} +1 -1
  82. package/dist/{chunk-7ZJHKLTK.js → chunk-WA4FD5Y6.js} +1 -1
  83. package/dist/{chunk-AAMOBJXJ.js → chunk-WDEDEEWA.js} +1 -1
  84. package/dist/{chunk-F4FDJI5O.js → chunk-X7U7XYJQ.js} +3 -3
  85. package/dist/{chunk-DWFVH3E2.js → chunk-Y7WHB65J.js} +2 -2
  86. package/dist/{chunk-JP4RTZGE.js → chunk-YCRPOY2Y.js} +2 -2
  87. package/dist/{chunk-VWYB4RA4.js → chunk-YJOGWS7F.js} +2 -2
  88. package/dist/{citations-X5LS7SZX.js → citations-MNLMO33V.js} +3 -3
  89. package/dist/{cli-catalog-S4RLOOCK.js → cli-catalog-IKF4A7ZS.js} +3 -3
  90. package/dist/{cli-commands-BGNM6H6P.js → cli-commands-7UXIHESS.js} +7 -7
  91. package/dist/cli.js +14 -14
  92. package/dist/{competitor-O5YXN5SD.js → competitor-5DY5PKNU.js} +3 -3
  93. package/dist/{content-C6SO5LNZ.js → content-XNK2YY4S.js} +3 -3
  94. package/dist/{dashboard-3P6FFYCW.js → dashboard-72QZZ5Q6.js} +6 -6
  95. package/dist/{demo-OJ6C4DU3.js → demo-KD2SLCIP.js} +1 -1
  96. package/dist/{demo-server-GJXDVREB.js → demo-server-7EYKEN23.js} +12 -12
  97. package/dist/{discover-Z355GK36.js → discover-D4H4ALIE.js} +3 -3
  98. package/dist/{discover-eval-6OVS55LV.js → discover-eval-2CID2IBT.js} +3 -3
  99. package/dist/{doctor-E52VMIEP.js → doctor-OWRQNDWF.js} +3 -3
  100. package/dist/{evidence-ITVU3HYF.js → evidence-SQX4IMQM.js} +3 -3
  101. package/dist/{export-cmd-S2UD3ALT.js → export-cmd-73PYMZZ5.js} +3 -3
  102. package/dist/{ga-T3UEGAZC.js → ga-S6AKEVAL.js} +3 -3
  103. package/dist/{gbp-3G45OTYX.js → gbp-57J3AXEY.js} +3 -3
  104. package/dist/{google-YZS4HLN3.js → google-PPU5MJSV.js} +4 -4
  105. package/dist/{google-marketing-LIV6O63R.js → google-marketing-W4KZ74HX.js} +1 -1
  106. package/dist/{health-cmd-2FC73XH6.js → health-cmd-QYP4MS3E.js} +3 -3
  107. package/dist/{history-KLRMAVLG.js → history-MFHBHYH7.js} +3 -3
  108. package/dist/index.d.ts +683 -11
  109. package/dist/index.js +26 -26
  110. package/dist/{init-CTP7OZTR.js → init-R2OT2EC7.js} +12 -12
  111. package/dist/{insights-KTGRGFAN.js → insights-IIMMXGRO.js} +3 -3
  112. package/dist/intelligence-service-4D34S2P6.js +16 -0
  113. package/dist/{journeys-PF2OO5W2.js → journeys-DXXRNANM.js} +6 -5
  114. package/dist/{keys-7NTJ7TFJ.js → keys-O3T52MLX.js} +3 -3
  115. package/dist/{keyword-C37ZTBOS.js → keyword-MS23BR7O.js} +3 -3
  116. package/dist/{logs-GU223TLX.js → logs-SKR5OLTY.js} +3 -3
  117. package/dist/{mcp-2DZFAHOW.js → mcp-NFC2PBGD.js} +4 -4
  118. package/dist/mcp.js +10 -10
  119. package/dist/{measurement-plan-ZSZUAW4Y.js → measurement-plan-Z73LMQYB.js} +5 -5
  120. package/dist/{notify-GYSA5V67.js → notify-2RUWK2AR.js} +3 -3
  121. package/dist/{organic-evidence-2NLMSKHX.js → organic-evidence-BGAOEVMZ.js} +3 -3
  122. package/dist/{overview-NL3B5XME.js → overview-DONWVYZT.js} +4 -4
  123. package/dist/{project-3THJAPRN.js → project-FFSPWR6R.js} +3 -3
  124. package/dist/{query-JU5UHTGT.js → query-AXEUWIW3.js} +3 -3
  125. package/dist/{research-WLS77NOR.js → research-YURAJRCV.js} +3 -3
  126. package/dist/{results-export-RQKUM5OA.js → results-export-ECSJKZHZ.js} +3 -3
  127. package/dist/{run-H6BA7COC.js → run-27EXPBE4.js} +4 -4
  128. package/dist/{schedule-ISTF4OHX.js → schedule-NY55SZZF.js} +3 -3
  129. package/dist/{search-HIYAHDZR.js → search-RXCBX3ST.js} +3 -3
  130. package/dist/{serve-5WPYWTOF.js → serve-HWLAUXAU.js} +27 -27
  131. package/dist/{session-4B5VWFCF.js → session-LBMTUPPY.js} +14 -14
  132. package/dist/{settings-ZI4UQXJO.js → settings-IPC5SSDU.js} +3 -3
  133. package/dist/{skills-LN34DUVA.js → skills-Y3VNCWQM.js} +2 -2
  134. package/dist/{snapshot-BDPWMMDS.js → snapshot-TPDSMADU.js} +3 -3
  135. package/dist/{src-UENQLEK4.js → src-IDX2F2SR.js} +8 -2
  136. package/dist/{status-6CIRB7TO.js → status-YSQJBNM7.js} +4 -4
  137. package/dist/{technical-aeo-L435UGJL.js → technical-aeo-NMUQVIFG.js} +3 -3
  138. package/dist/{telemetry-VIY5GILS.js → telemetry-OA6W7Q54.js} +4 -4
  139. package/dist/{tools-LILY27JS.js → tools-LROEIKWI.js} +11 -11
  140. package/dist/{traffic-KHGUZSP6.js → traffic-ZJHB2TWF.js} +10 -6
  141. package/dist/{users-KLOJMJSB.js → users-NMWBTCDI.js} +3 -3
  142. package/dist/{visibility-stats-OG2HEGFX.js → visibility-stats-DE64FVOJ.js} +3 -3
  143. package/dist/{wordpress-NPVZAUSN.js → wordpress-AJWIJSM7.js} +3 -3
  144. package/package.json +1 -1
  145. package/assets/assets/MeasurementPropertyPage-Cwnda2BA.js +0 -4
  146. package/assets/assets/ProjectPage-C39ua8CG.js +0 -11
  147. package/assets/assets/SiteHealthSection-CfQePJ7s.js +0 -2
  148. package/assets/assets/ToneBadge-bXf5LaSI.js +0 -60
  149. package/assets/assets/TrafficSourceDetailPage-Dklvlek4.js +0 -1
  150. package/assets/assets/index-qWvnlyfA.js +0 -60
  151. package/assets/assets/react-query-BKozxbv1.js +0 -1
  152. package/dist/intelligence-service-YX72V6NG.js +0 -16
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  runWithUsageTags
3
- } from "./chunk-ZX7XDVPC.js";
3
+ } from "./chunk-IPPNN5KE.js";
4
4
  import {
5
5
  CanonryMcpToolNames,
6
6
  canonryMcpTools
7
- } from "./chunk-HDVJNYYE.js";
7
+ } from "./chunk-HIC62JTS.js";
8
8
  import {
9
9
  CliError
10
10
  } from "./chunk-HGMYEDAQ.js";
11
11
  import {
12
12
  buildOpenApiDocument
13
- } from "./chunk-NPMJFPBM.js";
13
+ } from "./chunk-OIHR2BDK.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-S6IC7ZK2.js";
26
+ } from "./chunk-PHVIMUAQ.js";
27
27
 
28
28
  // src/agent/tools.ts
29
29
  import { Type as Type2 } from "@earendil-works/pi-ai";
@@ -4,14 +4,14 @@ import {
4
4
  } from "./chunk-VJWDBFSL.js";
5
5
  import {
6
6
  createApiClient
7
- } from "./chunk-ZX7XDVPC.js";
7
+ } from "./chunk-IPPNN5KE.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-S6IC7ZK2.js";
14
+ } from "./chunk-PHVIMUAQ.js";
15
15
 
16
16
  // src/commands/mcp.ts
17
17
  import fs from "fs";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  API_PROVIDER_NAMES,
3
3
  ProviderNames
4
- } from "./chunk-S6IC7ZK2.js";
4
+ } from "./chunk-PHVIMUAQ.js";
5
5
 
6
6
  // src/provider-registration.ts
7
7
  function isApiProviderRegistrable(name, entry) {
@@ -15,7 +15,7 @@ import {
15
15
  formatCanonryPluginUpdateHint,
16
16
  formatCanonryPluginVersionMismatch,
17
17
  skillsClientSchema
18
- } from "./chunk-S6IC7ZK2.js";
18
+ } from "./chunk-PHVIMUAQ.js";
19
19
 
20
20
  // src/commands/skills.ts
21
21
  import crypto from "crypto";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  answerServiceAdapters,
3
3
  answerServiceDescriptors
4
- } from "./chunk-JDEHNF7K.js";
4
+ } from "./chunk-NCM6PX64.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-5NDUJLUL.js";
30
+ } from "./chunk-4PPF3SIU.js";
31
31
  import {
32
32
  AeroToolProfiles,
33
33
  AeroToolScopes,
34
34
  buildAeroStateTools,
35
35
  isAeroToolProfile,
36
36
  truncateToolResult
37
- } from "./chunk-J7EYQFMJ.js";
37
+ } from "./chunk-4XM3T65L.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-SVF4P6DB.js";
56
+ } from "./chunk-QAJDHHC5.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-GKHM5OT6.js";
67
+ } from "./chunk-OMNS42ZQ.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-NNUZ37NJ.js";
79
+ } from "./chunk-P76XOEWL.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-JMUSNZJR.js";
87
+ } from "./chunk-AA6P5NK3.js";
88
88
  import {
89
89
  checkLatestVersionForServer,
90
90
  getOrCreateAnonymousId,
@@ -96,17 +96,17 @@ import {
96
96
  recordDashboardEvent,
97
97
  setTelemetryPreference,
98
98
  trackEvent
99
- } from "./chunk-VWYB4RA4.js";
99
+ } from "./chunk-YJOGWS7F.js";
100
100
  import {
101
101
  createCanonryMcpServer
102
- } from "./chunk-T76RQIGK.js";
102
+ } from "./chunk-32U5LFIT.js";
103
103
  import {
104
104
  CANONRY_MCP_TIERS,
105
105
  CANONRY_MCP_TOOLKIT_NAMES
106
- } from "./chunk-JI7FDO7I.js";
106
+ } from "./chunk-MTW37GXF.js";
107
107
  import {
108
108
  ApiClient
109
- } from "./chunk-ZX7XDVPC.js";
109
+ } from "./chunk-IPPNN5KE.js";
110
110
  import {
111
111
  AGENT_PROVIDERS,
112
112
  adapterSupportsBatch,
@@ -138,21 +138,21 @@ import {
138
138
  saveConfigPatch,
139
139
  sentimentInstallReadiness,
140
140
  updateSharedProviderExecutionGate
141
- } from "./chunk-7ZJHKLTK.js";
141
+ } from "./chunk-WA4FD5Y6.js";
142
142
  import {
143
143
  getBundledSkillSnapshots
144
- } from "./chunk-462CIYLY.js";
144
+ } from "./chunk-CBAYQHNX.js";
145
145
  import {
146
146
  computeFactorAverages,
147
147
  deleteSiteCrawlGraphLayout,
148
148
  persistSiteCrawlGraphLayout,
149
149
  prepareSiteCrawlGraphLayout,
150
150
  recordedSharePct
151
- } from "./chunk-DWFVH3E2.js";
151
+ } from "./chunk-Y7WHB65J.js";
152
152
  import {
153
153
  CanonryMcpToolNames,
154
154
  canonryMcpTools
155
- } from "./chunk-HDVJNYYE.js";
155
+ } from "./chunk-HIC62JTS.js";
156
156
  import {
157
157
  PACKAGE_VERSION
158
158
  } from "./chunk-AOJU5LKX.js";
@@ -161,16 +161,16 @@ import {
161
161
  } from "./chunk-HGMYEDAQ.js";
162
162
  import {
163
163
  IntelligenceService
164
- } from "./chunk-ZR3RYJF3.js";
164
+ } from "./chunk-JECDHS6M.js";
165
165
  import {
166
166
  addLogListener,
167
167
  createFastifyLogger,
168
168
  createLogger
169
- } from "./chunk-VVOCZTNC.js";
169
+ } from "./chunk-SVMTN7MI.js";
170
170
  import {
171
171
  computeCitedCompetitorDomains,
172
172
  determineCitationState
173
- } from "./chunk-OH42CAWP.js";
173
+ } from "./chunk-LZGVQSZL.js";
174
174
  import {
175
175
  BingApiError,
176
176
  CC_CACHE_DIR,
@@ -291,7 +291,7 @@ import {
291
291
  webhookResponseReason,
292
292
  webhookTargetRefusalReason,
293
293
  writeAuditLog
294
- } from "./chunk-NPMJFPBM.js";
294
+ } from "./chunk-OIHR2BDK.js";
295
295
  import {
296
296
  OperationalLogStore,
297
297
  SentimentIdempotencyConflict,
@@ -379,7 +379,7 @@ import {
379
379
  unrecognizedAgentEventsHourly,
380
380
  unrecognizedAgentNotifyState,
381
381
  usageCounters
382
- } from "./chunk-2GJLKCXL.js";
382
+ } from "./chunk-3UFQI4KL.js";
383
383
  import {
384
384
  AGENT_MEMORY_VALUE_MAX_BYTES,
385
385
  AI_ENGINE_DOMAINS,
@@ -635,7 +635,7 @@ import {
635
635
  winnabilityClassLabel,
636
636
  withRetry,
637
637
  withSkippedProviders
638
- } from "./chunk-S6IC7ZK2.js";
638
+ } from "./chunk-PHVIMUAQ.js";
639
639
 
640
640
  // src/google-marketing-runtime.ts
641
641
  import crypto2 from "crypto";
@@ -5939,7 +5939,7 @@ function nonBlank(value) {
5939
5939
  return trimmed ? trimmed : void 0;
5940
5940
  }
5941
5941
  function resolveBuildCommit(env = process.env) {
5942
- const embedded = true ? "2d31f874106c0d9772c47b19f7d79f2257976fef" : void 0;
5942
+ const embedded = true ? "422c745a4356201c9edcd13c64e567ce2d8afe73" : void 0;
5943
5943
  return nonBlank(embedded) ?? nonBlank(env.CANONRY_COMMIT);
5944
5944
  }
5945
5945
  function resolveInstanceIdentity(env = process.env) {
@@ -1,14 +1,93 @@
1
1
  import {
2
2
  AI_ENGINE_DOMAINS,
3
+ AgentTrustLevels,
4
+ AgentTrustReasons,
3
5
  AiReferralTrafficClasses,
4
6
  TrafficEventConfidences,
5
7
  TrafficEvidenceKinds,
8
+ TrafficPathClasses,
6
9
  TrafficSourceTypes,
7
10
  classifyAiReferralTrafficClass,
8
11
  classifyJourneyEntry,
12
+ classifyTrafficPath,
9
13
  hostMatchesDomain,
10
14
  hostOf
11
- } from "./chunk-S6IC7ZK2.js";
15
+ } from "./chunk-PHVIMUAQ.js";
16
+
17
+ // ../integration-traffic/src/agent-trust.ts
18
+ var SCANNER_SEGMENTS = /* @__PURE__ */ new Set([
19
+ ".git",
20
+ ".svn",
21
+ ".hg",
22
+ ".github",
23
+ ".aws",
24
+ ".ssh",
25
+ ".docker",
26
+ ".kube",
27
+ ".npmrc",
28
+ ".htpasswd",
29
+ ".htaccess",
30
+ ".ds_store",
31
+ "wp-login.php",
32
+ "xmlrpc.php",
33
+ "phpmyadmin",
34
+ "phpunit",
35
+ "eval-stdin.php"
36
+ ]);
37
+ var ENCODED_TRAVERSAL = /(?:%2e%2e|%2e\.|\.%2e)(?:\/|\\|%2f|%5c|$)|\.\.(?:%2f|%5c)|%252e%252e/i;
38
+ var REASON_ORDER = [
39
+ AgentTrustReasons["scanner-path"],
40
+ AgentTrustReasons["unusual-user-agent"],
41
+ AgentTrustReasons["ip-in-published-list"],
42
+ AgentTrustReasons["ip-outside-published-list"],
43
+ AgentTrustReasons["no-ip"],
44
+ AgentTrustReasons["no-published-list"],
45
+ AgentTrustReasons["documented-user-agent"]
46
+ ];
47
+ var FAKE_REASONS = /* @__PURE__ */ new Set([
48
+ AgentTrustReasons["scanner-path"],
49
+ AgentTrustReasons["unusual-user-agent"]
50
+ ]);
51
+ function isScannerPath(rawPath) {
52
+ const pathOnly = (rawPath.split(/[?#]/)[0] ?? "").toLowerCase();
53
+ if (ENCODED_TRAVERSAL.test(pathOnly)) return true;
54
+ let decoded = pathOnly;
55
+ try {
56
+ decoded = decodeURIComponent(pathOnly);
57
+ } catch {
58
+ }
59
+ for (const segment of decoded.split(/[\\/]+/)) {
60
+ if (!segment) continue;
61
+ if (segment === ".." || segment.endsWith("..")) return true;
62
+ if (SCANNER_SEGMENTS.has(segment) || segment.startsWith("wp-config")) return true;
63
+ if (segment === ".env" || segment.startsWith(".env.") || segment.endsWith(".env")) return true;
64
+ }
65
+ return false;
66
+ }
67
+ function sortAgentTrustReasons(reasons) {
68
+ const present = new Set(reasons);
69
+ return REASON_ORDER.filter((reason) => present.has(reason));
70
+ }
71
+ function ipReason(input) {
72
+ if (input.verification.verified) return AgentTrustReasons["ip-in-published-list"];
73
+ if (input.verification.manifest) return AgentTrustReasons["ip-outside-published-list"];
74
+ return input.listPublished ? AgentTrustReasons["no-ip"] : AgentTrustReasons["no-published-list"];
75
+ }
76
+ function assessAgentTrust(input) {
77
+ const reasons = /* @__PURE__ */ new Set([ipReason(input)]);
78
+ const documented = input.rule.documentedUserAgents;
79
+ if (documented && documented.length > 0) {
80
+ reasons.add(documented.some((pattern) => pattern.test(input.userAgent.trim())) ? AgentTrustReasons["documented-user-agent"] : AgentTrustReasons["unusual-user-agent"]);
81
+ }
82
+ if (isScannerPath(input.path)) reasons.add(AgentTrustReasons["scanner-path"]);
83
+ return { trust: trustFor(reasons), trustReasons: sortAgentTrustReasons(reasons) };
84
+ }
85
+ function trustFor(reasons) {
86
+ if (reasons.has(AgentTrustReasons["ip-in-published-list"])) return AgentTrustLevels.verified;
87
+ for (const reason of reasons) if (FAKE_REASONS.has(reason)) return AgentTrustLevels.likely_fake;
88
+ const unchecked = reasons.has(AgentTrustReasons["no-ip"]) || reasons.has(AgentTrustReasons["no-published-list"]);
89
+ return unchecked && reasons.has(AgentTrustReasons["documented-user-agent"]) ? AgentTrustLevels.likely_real : AgentTrustLevels.unknown;
90
+ }
12
91
 
13
92
  // ../integration-traffic/src/ip-ranges/amazonbot.json
14
93
  var amazonbot_default = {
@@ -13966,6 +14045,10 @@ function verifyIpForRuleDecision(ip, ruleId) {
13966
14045
  const data = CACHE.get(ruleId);
13967
14046
  return data ? decideIpVerification(ip, data) : { verified: false, manifest: null };
13968
14047
  }
14048
+ function hasVerificationDataFor(ruleId) {
14049
+ const data = CACHE.get(ruleId);
14050
+ return !!data && data.ranges.length > 0;
14051
+ }
13969
14052
 
13970
14053
  // ../integration-traffic/src/rules.ts
13971
14054
  var SELF_TRAFFIC_USER_AGENT_PATTERNS = [
@@ -14000,7 +14083,10 @@ var DEFAULT_AI_CRAWLER_RULES = [
14000
14083
  operator: "OpenAI",
14001
14084
  product: "ChatGPT-User",
14002
14085
  purpose: "user-agent",
14003
- userAgentPatterns: [/ChatGPT-User\//i]
14086
+ userAgentPatterns: [/ChatGPT-User\//i],
14087
+ // OpenAI's published "full user-agent string". The version may move.
14088
+ // src: https://developers.openai.com/api/docs/bots
14089
+ documentedUserAgents: [/^Mozilla\/5\.0 AppleWebKit\/537\.36 \(KHTML, like Gecko\); compatible; ChatGPT-User\/\d+(?:\.\d+)*; \+https:\/\/openai\.com\/bot$/]
14004
14090
  },
14005
14091
  {
14006
14092
  // Observed MCP requests from ChatGPT integrations use this UA. OpenAI's
@@ -14165,7 +14251,10 @@ var DEFAULT_AI_CRAWLER_RULES = [
14165
14251
  operator: "Mistral AI",
14166
14252
  product: "MistralAI-User",
14167
14253
  purpose: "user-agent",
14168
- userAgentPatterns: [/MistralAI-User\//i]
14254
+ userAgentPatterns: [/MistralAI-User\//i],
14255
+ // Mistral's published "full user-agent string". The version may move.
14256
+ // src: https://docs.mistral.ai/robots
14257
+ documentedUserAgents: [/^Mozilla\/5\.0 AppleWebKit\/537\.36 \(KHTML, like Gecko; compatible; MistralAI-User\/\d+(?:\.\d+)*; \+https:\/\/docs\.mistral\.ai\/robots\)$/]
14169
14258
  },
14170
14259
  {
14171
14260
  // Mistral's search-index crawler. Unlike the legacy MistralBot UA below,
@@ -14451,13 +14540,21 @@ function classifyAiUserFetch(event) {
14451
14540
  if (rule.purpose !== USER_FETCH_PURPOSE) continue;
14452
14541
  if (rule.userAgentPatterns.some((pattern) => pattern.test(userAgent))) {
14453
14542
  const decision = verifyIpForRuleDecision(event.remoteIp, rule.id);
14543
+ const trust = assessAgentTrust({
14544
+ rule,
14545
+ userAgent,
14546
+ path: event.path,
14547
+ verification: decision,
14548
+ listPublished: hasVerificationDataFor(rule.id)
14549
+ });
14454
14550
  return {
14455
14551
  botId: rule.id,
14456
14552
  operator: rule.operator,
14457
14553
  product: rule.product,
14458
14554
  verificationStatus: decision.verified ? "verified" : "claimed_unverified",
14459
14555
  verificationManifest: decision.manifest,
14460
- matchedUserAgent: userAgent
14556
+ matchedUserAgent: userAgent,
14557
+ ...trust
14461
14558
  };
14462
14559
  }
14463
14560
  }
@@ -14829,6 +14926,41 @@ function sessionizeJourneyRequests(requests, state, options) {
14829
14926
  return { visits: [...visits.values()], events, visitors, dropped, capped };
14830
14927
  }
14831
14928
 
14929
+ // ../integration-traffic/src/agent-journeys.ts
14930
+ function extractAgentJourneyRequests(events) {
14931
+ const requests = [];
14932
+ for (const event of events) {
14933
+ if (isSelfTraffic(event)) continue;
14934
+ const agent = classifyAiUserFetch(event);
14935
+ if (!agent || agent.trust === AgentTrustLevels.likely_fake) continue;
14936
+ const timestamp = Date.parse(event.observedAt);
14937
+ if (!Number.isFinite(timestamp)) continue;
14938
+ const path = event.path.split(/[?#]/)[0] || "/";
14939
+ if (classifyTrafficPath(path) === TrafficPathClasses.asset && !/\.json\/?$/i.test(path)) continue;
14940
+ const maskedPath = maskJourneyPath(path);
14941
+ const retainedPath = maskedPath.length > 512 ? `${maskedPath.slice(0, 505)}/:token` : maskedPath;
14942
+ requests.push({
14943
+ sourceEventId: event.eventId,
14944
+ ts: new Date(timestamp).toISOString(),
14945
+ remoteIp: event.remoteIp?.trim() || null,
14946
+ userAgent: agent.matchedUserAgent,
14947
+ agentId: agent.botId,
14948
+ operator: agent.operator,
14949
+ product: agent.product,
14950
+ verificationStatus: agent.verificationStatus,
14951
+ verificationManifest: agent.verificationManifest,
14952
+ trust: agent.trust,
14953
+ trustReasons: agent.trustReasons,
14954
+ host: hostOf(event.host) ?? hostOf(event.requestUrl),
14955
+ path: retainedPath,
14956
+ method: event.method?.trim().toUpperCase() || null,
14957
+ status: event.status,
14958
+ latencyMs: event.latencyMs !== null && Number.isFinite(event.latencyMs) && event.latencyMs >= 0 ? event.latencyMs : null
14959
+ });
14960
+ }
14961
+ return requests;
14962
+ }
14963
+
14832
14964
  // ../integration-traffic/src/unlisted-agents.ts
14833
14965
  var UNLISTED_AGENT_SKIPPED_EXTENSIONS = [
14834
14966
  "avif",
@@ -15008,6 +15140,9 @@ function sortCrawlerBuckets(a, b) {
15008
15140
  function sortAiUserFetchBuckets(a, b) {
15009
15141
  return a.tsHour.localeCompare(b.tsHour) || a.botId.localeCompare(b.botId) || a.verificationStatus.localeCompare(b.verificationStatus) || (a.verificationManifest?.id ?? "").localeCompare(b.verificationManifest?.id ?? "") || a.pathNormalized.localeCompare(b.pathNormalized) || String(a.status).localeCompare(String(b.status));
15010
15142
  }
15143
+ function sortLikelyFakeBuckets(a, b) {
15144
+ return a.tsHour.localeCompare(b.tsHour) || a.botId.localeCompare(b.botId) || a.reason.localeCompare(b.reason);
15145
+ }
15011
15146
  function sortReferralBuckets(a, b) {
15012
15147
  return a.tsHour.localeCompare(b.tsHour) || a.product.localeCompare(b.product) || a.sourceDomain.localeCompare(b.sourceDomain) || a.landingPathNormalized.localeCompare(b.landingPathNormalized) || String(a.status).localeCompare(String(b.status));
15013
15148
  }
@@ -15020,6 +15155,7 @@ function buildTrafficProbeReport(events, options = {}) {
15020
15155
  const aiReferralSessionWindowMs = configuredSessionWindowMs > 0 ? configuredSessionWindowMs : DEFAULT_AI_REFERRAL_SESSION_WINDOW_MS;
15021
15156
  const crawlerBuckets = /* @__PURE__ */ new Map();
15022
15157
  const aiUserFetchBuckets = /* @__PURE__ */ new Map();
15158
+ const likelyFakeBuckets = /* @__PURE__ */ new Map();
15023
15159
  const aiReferralBuckets = /* @__PURE__ */ new Map();
15024
15160
  const unrecognizedAgentBuckets = /* @__PURE__ */ new Map();
15025
15161
  const aiReferralSessions = /* @__PURE__ */ new Map();
@@ -15033,6 +15169,7 @@ function buildTrafficProbeReport(events, options = {}) {
15033
15169
  const selfTrafficExcluded = events.length - includedEvents.length;
15034
15170
  let crawlerHits = 0;
15035
15171
  let aiUserFetchHits = 0;
15172
+ let aiUserFetchLikelyFakeHits = 0;
15036
15173
  let aiReferralHits = 0;
15037
15174
  let aiReferralPaidSessions = 0;
15038
15175
  let aiReferralOrganicSessions = 0;
@@ -15077,7 +15214,14 @@ function buildTrafficProbeReport(events, options = {}) {
15077
15214
  else topBots.set(botKey, { fields: { botId: crawler.botId, operator: crawler.operator }, hits: 1 });
15078
15215
  incrementBucket(topCrawlerPaths, pathNormalized, { pathNormalized });
15079
15216
  }
15080
- if (aiUserFetch) {
15217
+ if (aiUserFetch?.trust === AgentTrustLevels.likely_fake) {
15218
+ aiUserFetchLikelyFakeHits += 1;
15219
+ const reason = aiUserFetch.trustReasons[0];
15220
+ const key = [tsHour, aiUserFetch.botId, reason].join(" ");
15221
+ const existing = likelyFakeBuckets.get(key);
15222
+ if (existing) existing.hits += 1;
15223
+ else likelyFakeBuckets.set(key, { tsHour, botId: aiUserFetch.botId, operator: aiUserFetch.operator, reason, hits: 1 });
15224
+ } else if (aiUserFetch) {
15081
15225
  aiUserFetchHits += 1;
15082
15226
  const key = [
15083
15227
  tsHour,
@@ -15200,6 +15344,7 @@ function buildTrafficProbeReport(events, options = {}) {
15200
15344
  selfTrafficExcluded,
15201
15345
  crawlerHits,
15202
15346
  aiUserFetchHits,
15347
+ aiUserFetchLikelyFakeHits,
15203
15348
  aiReferralSessions: aiReferralSessions.size,
15204
15349
  aiReferralPaidSessions,
15205
15350
  aiReferralOrganicSessions,
@@ -15208,6 +15353,7 @@ function buildTrafficProbeReport(events, options = {}) {
15208
15353
  },
15209
15354
  crawlerEventsHourly: [...crawlerBuckets.values()].sort(sortCrawlerBuckets),
15210
15355
  aiUserFetchEventsHourly: [...aiUserFetchBuckets.values()].sort(sortAiUserFetchBuckets),
15356
+ aiUserFetchLikelyFakeHourly: [...likelyFakeBuckets.values()].sort(sortLikelyFakeBuckets),
15211
15357
  aiReferralEventsHourly: [...aiReferralBuckets.values()].sort(sortReferralBuckets),
15212
15358
  unrecognizedAgentEventsHourly: busiestUnrecognizedAgents(unrecognizedAgentBuckets),
15213
15359
  topBots: topEntries(topBots, 10),
@@ -15838,6 +15984,7 @@ export {
15838
15984
  classifyAiUserFetch,
15839
15985
  extractJourneyRequests,
15840
15986
  sessionizeJourneyRequests,
15987
+ extractAgentJourneyRequests,
15841
15988
  buildTrafficProbeReport,
15842
15989
  normalizeCloudflareWorkerEvent,
15843
15990
  CLOUDFLARE_WORKER_BINDINGS,
@@ -2,11 +2,11 @@ import {
2
2
  dedupeGscSitemapUrls,
3
3
  resolveDiscoveredGscSitemapUrls,
4
4
  submitGscSitemapBatches
5
- } from "./chunk-WB6VIQ7L.js";
5
+ } from "./chunk-W5ZBMBBZ.js";
6
6
  import {
7
7
  measurementDraftOperationSchema,
8
8
  runMeasurementDraftAction
9
- } from "./chunk-2FIDPBWE.js";
9
+ } from "./chunk-KFMU6CLU.js";
10
10
  import {
11
11
  CliError
12
12
  } from "./chunk-HGMYEDAQ.js";
@@ -42,6 +42,7 @@ import {
42
42
  adsPauseRequestSchema,
43
43
  adsUnresolvedOperationListQuerySchema,
44
44
  agentConversationCreateSchema,
45
+ agentJourneysQuerySchema,
45
46
  apiKeyDtoSchema,
46
47
  auditHistoryQuerySchema,
47
48
  backlinkSourceSchema,
@@ -183,7 +184,7 @@ import {
183
184
  trafficUnrecognizedAgentsQuerySchema,
184
185
  visibilityCompareSelectionSchema,
185
186
  visibilityReportRequestSchema
186
- } from "./chunk-S6IC7ZK2.js";
187
+ } from "./chunk-PHVIMUAQ.js";
187
188
 
188
189
  // src/mcp/tool-registry.ts
189
190
  import { z as z2 } from "zod";
@@ -2920,6 +2921,34 @@ var rawCanonryMcpTools = [
2920
2921
  return client.trafficListSamples(project, query);
2921
2922
  }
2922
2923
  }),
2924
+ defineTool({
2925
+ name: "canonry_traffic_agent_journeys",
2926
+ title: "List agent journeys",
2927
+ description: "Read stored user-triggered agent request sequences with trust levels (verified by published IP list, likely real, or unknown), inferred or unlinked correlation, and source/retention/cap limits. Likely fake requests are counted in coverage.likelyFakeRequests, never listed. IP and user-agent grouping does not prove a single user task. Simple and Advanced projects use the same evidence; targetKey filters URL matches against the current plan, not historical task intent. No provider calls or writes.",
2928
+ access: "read",
2929
+ tier: "traffic",
2930
+ inputSchema: agentJourneysQuerySchema.extend({ project: projectNameSchema }),
2931
+ annotations: readAnnotations(),
2932
+ openApiOperations: ["GET /api/v1/projects/{name}/traffic/agent-journeys"],
2933
+ handler: (client, input) => {
2934
+ const { project, ...query } = input;
2935
+ return client.trafficAgentJourneys(project, query);
2936
+ }
2937
+ }),
2938
+ defineTool({
2939
+ name: "canonry_traffic_agent_journey",
2940
+ title: "Read an agent journey",
2941
+ description: "Read the ordered request timeline for an id from canonry_traffic_agent_journeys. Preserve the list window and selectors. Requests include time, host, masked path, method, status, latency, verification, trust level with reasons, and Property attribution. HTTP responses do not prove business outcomes; no prompt, private reasoning or off-site browsing is recorded. No provider calls or writes.",
2942
+ access: "read",
2943
+ tier: "traffic",
2944
+ inputSchema: agentJourneysQuerySchema.extend({ project: projectNameSchema, journeyId: z2.string().min(1) }),
2945
+ annotations: readAnnotations(),
2946
+ openApiOperations: ["GET /api/v1/projects/{name}/traffic/agent-journeys/{journeyId}"],
2947
+ handler: (client, input) => {
2948
+ const { project, journeyId, ...query } = input;
2949
+ return client.trafficAgentJourney(project, journeyId, query);
2950
+ }
2951
+ }),
2923
2952
  defineTool({
2924
2953
  name: "canonry_traffic_unrecognized_agents",
2925
2954
  title: "List unrecognized bots and agents",
@@ -2951,7 +2980,7 @@ var rawCanonryMcpTools = [
2951
2980
  defineTool({
2952
2981
  name: "canonry_journeys_list",
2953
2982
  title: "List AI visitor journeys",
2954
- 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.",
2983
+ description: "List stored AI visitors, newest first AI visit first, with up to 20 visits from the first AI visit on (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.",
2955
2984
  access: "read",
2956
2985
  tier: "traffic",
2957
2986
  inputSchema: journeysQuerySchema.extend({ project: projectNameSchema }),
@@ -2965,7 +2994,7 @@ var rawCanonryMcpTools = [
2965
2994
  defineTool({
2966
2995
  name: "canonry_journey_get",
2967
2996
  title: "Read one AI visitor journey",
2968
- 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.",
2997
+ 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). events=pages returns page requests plus every non-GET/HEAD request; each visit keeps its stored requestCount. No provider call or write.",
2969
2998
  access: "read",
2970
2999
  tier: "traffic",
2971
3000
  inputSchema: journeyDetailQuerySchema.extend({ project: projectNameSchema, visitorKey: z2.string().min(1) }),
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  loadConfig
3
- } from "./chunk-7ZJHKLTK.js";
3
+ } from "./chunk-WA4FD5Y6.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-S6IC7ZK2.js";
39
+ } from "./chunk-PHVIMUAQ.js";
40
40
 
41
41
  // ../api-client-generated/src/generated/core/bodySerializer.gen.ts
42
42
  var jsonBodySerializer = {
@@ -3235,6 +3235,16 @@ var getApiV1ProjectsByNameTrafficSamples = (options) => (options.client ?? clien
3235
3235
  url: "/api/v1/projects/{name}/traffic/samples",
3236
3236
  ...options
3237
3237
  });
3238
+ var getApiV1ProjectsByNameTrafficAgentJourneys = (options) => (options.client ?? client).get({
3239
+ security: [{ scheme: "bearer", type: "http" }],
3240
+ url: "/api/v1/projects/{name}/traffic/agent-journeys",
3241
+ ...options
3242
+ });
3243
+ var getApiV1ProjectsByNameTrafficAgentJourneysByJourneyId = (options) => (options.client ?? client).get({
3244
+ security: [{ scheme: "bearer", type: "http" }],
3245
+ url: "/api/v1/projects/{name}/traffic/agent-journeys/{journeyId}",
3246
+ ...options
3247
+ });
3238
3248
  var getApiV1ProjectsByNameTrafficUnrecognizedAgents = (options) => (options.client ?? client).get({
3239
3249
  security: [{ scheme: "bearer", type: "http" }],
3240
3250
  url: "/api/v1/projects/{name}/traffic/unrecognized-agents",
@@ -6046,6 +6056,12 @@ var ApiClient = class {
6046
6056
  async trafficListSamples(project, query) {
6047
6057
  return this.invoke(() => getApiV1ProjectsByNameTrafficSamples({ client: this.heyClient, path: { name: project }, query }));
6048
6058
  }
6059
+ async trafficAgentJourneys(project, query) {
6060
+ return this.invoke(() => getApiV1ProjectsByNameTrafficAgentJourneys({ client: this.heyClient, path: { name: project }, query }));
6061
+ }
6062
+ async trafficAgentJourney(project, journeyId, query) {
6063
+ return this.invoke(() => getApiV1ProjectsByNameTrafficAgentJourneysByJourneyId({ client: this.heyClient, path: { name: project, journeyId }, query }));
6064
+ }
6049
6065
  async trafficUnrecognizedAgents(project, query) {
6050
6066
  return this.invoke(() => getApiV1ProjectsByNameTrafficUnrecognizedAgents({ client: this.heyClient, path: { name: project }, query }));
6051
6067
  }
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-ZX7XDVPC.js";
3
+ } from "./chunk-IPPNN5KE.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-2FIDPBWE.js";
10
+ } from "./chunk-KFMU6CLU.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-S6IC7ZK2.js";
40
+ } from "./chunk-PHVIMUAQ.js";
41
41
 
42
42
  // src/commands/measurement-plan.ts
43
43
  import crypto from "crypto";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  createLogger
3
- } from "./chunk-VVOCZTNC.js";
3
+ } from "./chunk-SVMTN7MI.js";
4
4
  import {
5
5
  pickProjectCitedDomain
6
- } from "./chunk-OH42CAWP.js";
6
+ } from "./chunk-LZGVQSZL.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-NPMJFPBM.js";
20
+ } from "./chunk-OIHR2BDK.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-2GJLKCXL.js";
38
+ } from "./chunk-3UFQI4KL.js";
39
39
  import {
40
40
  CitationStates,
41
41
  RunKinds,
42
42
  RunStatuses,
43
43
  RunTriggers,
44
44
  effectiveDomains
45
- } from "./chunk-S6IC7ZK2.js";
45
+ } from "./chunk-PHVIMUAQ.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";