@canonry/canonry 7.81.0 → 7.82.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/assets/agent-workspace/skills/canonry/references/canonry-cli.md +2 -0
  2. package/assets/assets/{AgentSetupPage-vJPymut8.js → AgentSetupPage-CcjQeUvK.js} +1 -1
  3. package/assets/assets/{AuditHistoryPanel-BItu4Vzu.js → AuditHistoryPanel-DgTvt2hQ.js} +1 -1
  4. package/assets/assets/{BacklinksPage-BzYbNK-V.js → BacklinksPage-DFQhtk4d.js} +1 -1
  5. package/assets/assets/{HistoryPage-B_llsE1v.js → HistoryPage-CkkWqQol.js} +1 -1
  6. package/assets/assets/{MeasurementPropertyPage-CUoV6lhB.js → MeasurementPropertyPage-Cwnda2BA.js} +1 -1
  7. package/assets/assets/{ProjectPage-C6woOQUb.js → ProjectPage-C39ua8CG.js} +1 -1
  8. package/assets/assets/{RunsPage-D_2CO_AJ.js → RunsPage-B4tMl-_9.js} +1 -1
  9. package/assets/assets/{SettingsPage-C-Ik_cYz.js → SettingsPage-DmDdf02o.js} +1 -1
  10. package/assets/assets/{SiteHealthSection-C-BOkaLy.js → SiteHealthSection-CfQePJ7s.js} +2 -2
  11. package/assets/assets/ToneBadge-bXf5LaSI.js +60 -0
  12. package/assets/assets/{TrafficPage-CZ8ylTak.js → TrafficPage-C9y8xEr6.js} +1 -1
  13. package/assets/assets/{TrafficSourceDetailPage-DFhPy-yp.js → TrafficSourceDetailPage-Dklvlek4.js} +1 -1
  14. package/assets/assets/{account-context-BN8ksOuB.js → account-context-BjM5ZlYl.js} +1 -1
  15. package/assets/assets/{card-BKhZmy5E.js → card-CDFncx20.js} +1 -1
  16. package/assets/assets/{extract-error-message-CJvSceYp.js → extract-error-message-s3FKmMjt.js} +1 -1
  17. package/assets/assets/{format-helpers-DN6eKZvA.js → format-helpers-CYQ-LjnQ.js} +1 -1
  18. package/assets/assets/{index-D-lS_O3g.js → index-qWvnlyfA.js} +4 -4
  19. package/assets/assets/{query-client-X8eRXjbT.js → query-client-C_dAEVvf.js} +1 -1
  20. package/assets/assets/{react-query-DOLt-sL-.js → react-query-BKozxbv1.js} +1 -1
  21. package/assets/assets/{react-sigma_core.esm.min-DOMHedxL.js → react-sigma_core.esm.min-J2l6CcJl.js} +1 -1
  22. package/assets/assets/{service-BiQUl6ZL.js → service-BhAtQFOI.js} +1 -1
  23. package/assets/index.html +7 -7
  24. package/dist/{ads-XDPKJZD5.js → ads-UDOONRKQ.js} +3 -3
  25. package/dist/{agent-TLMUNKYG.js → agent-JTEGEX6X.js} +7 -7
  26. package/dist/{agent-ask-J3OIR65S.js → agent-ask-PUV4EVGS.js} +3 -3
  27. package/dist/{agent-conversations-KLLYICAB.js → agent-conversations-TWTSQHBR.js} +3 -3
  28. package/dist/{agent-memory-HVT2M2AW.js → agent-memory-ZJEXAUJB.js} +3 -3
  29. package/dist/{agent-providers-QMS2NZTY.js → agent-providers-2RQZSGMP.js} +3 -3
  30. package/dist/{agent-transcript-V7UCK257.js → agent-transcript-YYS3XBES.js} +3 -3
  31. package/dist/{analytics-37Z5MGHQ.js → analytics-RLC6PRUZ.js} +3 -3
  32. package/dist/{apply-F3YZEJD4.js → apply-Z5SSCEJ2.js} +3 -3
  33. package/dist/{backfill-3YUPT5T2.js → backfill-6K2UMALK.js} +9 -9
  34. package/dist/{backlinks-GDTPG3SB.js → backlinks-LDI2VTPT.js} +3 -3
  35. package/dist/{bing-H7D5KUQF.js → bing-SSNMNZEF.js} +3 -3
  36. package/dist/{bootstrap-JLC26QRM.js → bootstrap-ISRV5I52.js} +10 -10
  37. package/dist/{cdp-WVMC4V4P.js → cdp-WU7QCPQ3.js} +7 -7
  38. package/dist/{chunk-TKOJAZ6S.js → chunk-2FIDPBWE.js} +1 -1
  39. package/dist/{chunk-AX7BBB3S.js → chunk-2GJLKCXL.js} +24 -1
  40. package/dist/{chunk-TJA6Z5FV.js → chunk-462CIYLY.js} +1 -1
  41. package/dist/{chunk-FQYMARCU.js → chunk-4IYFVC22.js} +3 -3
  42. package/dist/{chunk-L6R6MSWW.js → chunk-5K3S74ZX.js} +1 -1
  43. package/dist/{chunk-QVMUMIG4.js → chunk-5NDUJLUL.js} +6 -6
  44. package/dist/{chunk-6ST5JIUJ.js → chunk-7ZJHKLTK.js} +1 -1
  45. package/dist/{chunk-SJYKKUH5.js → chunk-AAMOBJXJ.js} +1 -1
  46. package/dist/{chunk-KRKOTKTY.js → chunk-DWFVH3E2.js} +2 -2
  47. package/dist/{chunk-OHXAS7LT.js → chunk-EIDOBJF2.js} +2 -2
  48. package/dist/{chunk-SSTQINNT.js → chunk-F4FDJI5O.js} +3 -3
  49. package/dist/{chunk-H5WAYPLS.js → chunk-FDKDS4TK.js} +4 -4
  50. package/dist/{chunk-J5K7QM3U.js → chunk-GKHM5OT6.js} +2 -2
  51. package/dist/{chunk-M6IABRSO.js → chunk-HDVJNYYE.js} +3 -3
  52. package/dist/{chunk-VSWED7DX.js → chunk-J7EYQFMJ.js} +4 -4
  53. package/dist/{chunk-EDV5YR2J.js → chunk-JDEHNF7K.js} +1 -1
  54. package/dist/{chunk-Z6HMIMK2.js → chunk-JMUSNZJR.js} +1 -1
  55. package/dist/{chunk-4EPCWJAM.js → chunk-JP4RTZGE.js} +2 -2
  56. package/dist/{chunk-2ZRCLJQX.js → chunk-LRFCNERP.js} +3 -3
  57. package/dist/{chunk-GK5H5QAH.js → chunk-M7WS2BL3.js} +1 -1
  58. package/dist/{chunk-F3EJRABZ.js → chunk-NNUZ37NJ.js} +4 -4
  59. package/dist/{chunk-IJGPHVZU.js → chunk-NPMJFPBM.js} +24 -4
  60. package/dist/{chunk-GRS5UBVQ.js → chunk-OH42CAWP.js} +1 -1
  61. package/dist/{chunk-6T7JZS67.js → chunk-Q47DEZGT.js} +402 -270
  62. package/dist/{chunk-PR2JM2FR.js → chunk-QHEKMJL4.js} +2 -2
  63. package/dist/{chunk-BALMAZTD.js → chunk-S6IC7ZK2.js} +9 -1
  64. package/dist/{chunk-FOQUCSNN.js → chunk-SIRWPXGJ.js} +8 -8
  65. package/dist/{chunk-YJ4EEYIP.js → chunk-SVF4P6DB.js} +1 -1
  66. package/dist/{chunk-CR6OF4SL.js → chunk-T76RQIGK.js} +3 -3
  67. package/dist/{chunk-ATOAIF2W.js → chunk-VVOCZTNC.js} +2 -2
  68. package/dist/{chunk-HPCDCZJW.js → chunk-VWYB4RA4.js} +2 -2
  69. package/dist/{chunk-FFS6J325.js → chunk-WB6VIQ7L.js} +1 -1
  70. package/dist/{chunk-WR2VQ5TF.js → chunk-ZBAB5DFZ.js} +336 -336
  71. package/dist/{chunk-Q6I2FSVG.js → chunk-ZR3RYJF3.js} +5 -5
  72. package/dist/{chunk-YJ7FKGRE.js → chunk-ZX7XDVPC.js} +2 -2
  73. package/dist/{citations-LQEXT3QX.js → citations-X5LS7SZX.js} +3 -3
  74. package/dist/{cli-catalog-FQ3GU4I7.js → cli-catalog-S4RLOOCK.js} +3 -3
  75. package/dist/{cli-commands-V5ITGQYI.js → cli-commands-LPBKNYWG.js} +7 -7
  76. package/dist/cli.js +13 -13
  77. package/dist/{competitor-LNBFBUHM.js → competitor-O5YXN5SD.js} +3 -3
  78. package/dist/{content-SXOXACBG.js → content-C6SO5LNZ.js} +3 -3
  79. package/dist/{dashboard-VQ7ZJM3Z.js → dashboard-3P6FFYCW.js} +6 -6
  80. package/dist/{demo-MVF5RBLW.js → demo-OJ6C4DU3.js} +1 -1
  81. package/dist/{demo-server-O4GV5RCH.js → demo-server-GJXDVREB.js} +12 -12
  82. package/dist/{discover-62BQKXZE.js → discover-Z355GK36.js} +3 -3
  83. package/dist/{discover-eval-6UYCPXIC.js → discover-eval-6OVS55LV.js} +3 -3
  84. package/dist/{doctor-GAD732OH.js → doctor-E52VMIEP.js} +3 -3
  85. package/dist/{evidence-HMBZTISH.js → evidence-ITVU3HYF.js} +3 -3
  86. package/dist/{export-cmd-H4QAPQLL.js → export-cmd-S2UD3ALT.js} +3 -3
  87. package/dist/{ga-EIUF4YK5.js → ga-T3UEGAZC.js} +3 -3
  88. package/dist/{gbp-IY55YRX3.js → gbp-3G45OTYX.js} +3 -3
  89. package/dist/{google-7VNVJRG5.js → google-YZS4HLN3.js} +4 -4
  90. package/dist/{google-marketing-5VRNWIYL.js → google-marketing-LIV6O63R.js} +1 -1
  91. package/dist/{health-cmd-IYULMWYP.js → health-cmd-2FC73XH6.js} +3 -3
  92. package/dist/{history-U47EQSVQ.js → history-KLRMAVLG.js} +3 -3
  93. package/dist/index.d.ts +109 -25
  94. package/dist/index.js +25 -25
  95. package/dist/{init-BB3AHJIC.js → init-327KB44R.js} +12 -12
  96. package/dist/{insights-TMOIYIN2.js → insights-KTGRGFAN.js} +3 -3
  97. package/dist/intelligence-service-YX72V6NG.js +16 -0
  98. package/dist/{journeys-SBEEBTLZ.js → journeys-PF2OO5W2.js} +3 -3
  99. package/dist/{keys-B6WL56H5.js → keys-7NTJ7TFJ.js} +3 -3
  100. package/dist/{keyword-EVCBMO4R.js → keyword-C37ZTBOS.js} +3 -3
  101. package/dist/{logs-NFHUPOV6.js → logs-GU223TLX.js} +3 -3
  102. package/dist/{mcp-QJEEHLSF.js → mcp-2DZFAHOW.js} +4 -4
  103. package/dist/mcp.js +9 -9
  104. package/dist/{measurement-plan-HZHP6HMF.js → measurement-plan-ZSZUAW4Y.js} +5 -5
  105. package/dist/{notify-FKSEZ2RI.js → notify-GYSA5V67.js} +5 -4
  106. package/dist/{organic-evidence-S5MUDRRT.js → organic-evidence-2NLMSKHX.js} +3 -3
  107. package/dist/{overview-3CIM4X6O.js → overview-NL3B5XME.js} +4 -4
  108. package/dist/{project-SFZVTTFG.js → project-3THJAPRN.js} +3 -3
  109. package/dist/{query-3CDC52ST.js → query-JU5UHTGT.js} +3 -3
  110. package/dist/{research-YXNYFECM.js → research-WLS77NOR.js} +3 -3
  111. package/dist/{results-export-INLGMMB2.js → results-export-RQKUM5OA.js} +3 -3
  112. package/dist/{run-BHF4QPOI.js → run-H6BA7COC.js} +4 -4
  113. package/dist/{schedule-QVYRWV6M.js → schedule-ISTF4OHX.js} +3 -3
  114. package/dist/{search-QXWAPV4H.js → search-HIYAHDZR.js} +3 -3
  115. package/dist/{serve-Z23URYCX.js → serve-7WKYATM7.js} +26 -26
  116. package/dist/{session-DYXVMEHP.js → session-4B5VWFCF.js} +13 -13
  117. package/dist/{settings-YMPACJEL.js → settings-ZI4UQXJO.js} +3 -3
  118. package/dist/{skills-ELKAS2QM.js → skills-LN34DUVA.js} +2 -2
  119. package/dist/{snapshot-5AFQZZCJ.js → snapshot-BDPWMMDS.js} +3 -3
  120. package/dist/{src-6NEOIOJN.js → src-UENQLEK4.js} +4 -2
  121. package/dist/{status-NCP3TWKF.js → status-6CIRB7TO.js} +4 -4
  122. package/dist/{technical-aeo-44AW2Q7L.js → technical-aeo-L435UGJL.js} +3 -3
  123. package/dist/{telemetry-3SZE36LD.js → telemetry-VIY5GILS.js} +4 -4
  124. package/dist/{tools-YLGNUOH6.js → tools-LILY27JS.js} +11 -11
  125. package/dist/{traffic-CHXA7CWW.js → traffic-KHGUZSP6.js} +5 -5
  126. package/dist/{users-HGMPXPZT.js → users-KLOJMJSB.js} +3 -3
  127. package/dist/{visibility-stats-QZXKJI5B.js → visibility-stats-OG2HEGFX.js} +3 -3
  128. package/dist/{wordpress-C3FM3ZP6.js → wordpress-NPVZAUSN.js} +3 -3
  129. package/package.json +1 -1
  130. package/assets/assets/ToneBadge-B8svjXgK.js +0 -60
  131. package/dist/intelligence-service-PJYJZPJF.js +0 -16
@@ -5,7 +5,7 @@ import {
5
5
  isStoredPageReadTool,
6
6
  isStoredReadTool,
7
7
  truncateToolResult
8
- } from "./chunk-VSWED7DX.js";
8
+ } from "./chunk-J7EYQFMJ.js";
9
9
  import {
10
10
  CANONRY_MCP_TOOLKITS,
11
11
  resolveAeroSkillDir
@@ -23,18 +23,18 @@ import {
23
23
  resolveApiKeyFor,
24
24
  resolveModelForProvider,
25
25
  validateAgentProviderRegistry
26
- } from "./chunk-6ST5JIUJ.js";
26
+ } from "./chunk-7ZJHKLTK.js";
27
27
  import {
28
28
  CanonryMcpToolNames,
29
29
  canonryMcpTools
30
- } from "./chunk-M6IABRSO.js";
30
+ } from "./chunk-HDVJNYYE.js";
31
31
  import {
32
32
  createLogger
33
- } from "./chunk-ATOAIF2W.js";
33
+ } from "./chunk-VVOCZTNC.js";
34
34
  import {
35
35
  agentToolEvents,
36
36
  llmUsageEvents
37
- } from "./chunk-AX7BBB3S.js";
37
+ } from "./chunk-2GJLKCXL.js";
38
38
  import {
39
39
  MeasurementPortfolioLists,
40
40
  SeoCapabilities,
@@ -43,7 +43,7 @@ import {
43
43
  describeError,
44
44
  validationError,
45
45
  visibilityReportRequestSchema
46
- } from "./chunk-BALMAZTD.js";
46
+ } from "./chunk-S6IC7ZK2.js";
47
47
 
48
48
  // src/agent/session.ts
49
49
  import fs2 from "fs";
@@ -20,7 +20,7 @@ import {
20
20
  resolveProviderModel,
21
21
  schedulableRunKindSchema,
22
22
  sentimentEvaluatorProviderSchema
23
- } from "./chunk-BALMAZTD.js";
23
+ } from "./chunk-S6IC7ZK2.js";
24
24
 
25
25
  // ../config/src/index.ts
26
26
  import { z as z5 } from "zod";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  USAGE_TELEMETRY_HEADERS,
3
3
  redactLogString
4
- } from "./chunk-BALMAZTD.js";
4
+ } from "./chunk-S6IC7ZK2.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
  siteCrawlGraphNodes,
6
6
  siteCrawlPages,
7
7
  siteCrawlSnapshots
8
- } from "./chunk-AX7BBB3S.js";
8
+ } from "./chunk-2GJLKCXL.js";
9
9
  import {
10
10
  SITE_CRAWL_GRAPH_MAX_EDGES,
11
11
  SITE_CRAWL_GRAPH_MAX_NODES,
@@ -15,7 +15,7 @@ import {
15
15
  factorStatusFromDistribution,
16
16
  factorStatusFromScore,
17
17
  roundPreservingTotal
18
- } from "./chunk-BALMAZTD.js";
18
+ } from "./chunk-S6IC7ZK2.js";
19
19
 
20
20
  // src/site-audit-factors.ts
21
21
  function recordedSharePct(factor) {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-YJ7FKGRE.js";
3
+ } from "./chunk-ZX7XDVPC.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-BALMAZTD.js";
22
+ } from "./chunk-S6IC7ZK2.js";
23
23
 
24
24
  // src/commands/run.ts
25
25
  function getClient() {
@@ -3,7 +3,7 @@ import {
3
3
  resolveCliAccess,
4
4
  resolveCliAccessForInvocation,
5
5
  windowOptions
6
- } from "./chunk-L6R6MSWW.js";
6
+ } from "./chunk-5K3S74ZX.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-BALMAZTD.js";
17
+ } from "./chunk-S6IC7ZK2.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-FQ3GU4I7.js");
114
+ const { printCliCatalog: printCliCatalog2 } = await import("./cli-catalog-S4RLOOCK.js");
115
115
  const group2 = argsWithoutHelp.find((arg) => !arg.startsWith("--"));
116
116
  printCliCatalog2(specs, fallbackFormat, group2, accessValue);
117
117
  return true;
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  registeredProviderNames
3
- } from "./chunk-Z6HMIMK2.js";
3
+ } from "./chunk-JMUSNZJR.js";
4
4
  import {
5
5
  configExists,
6
6
  loadConfigRaw
7
- } from "./chunk-6ST5JIUJ.js";
7
+ } from "./chunk-7ZJHKLTK.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-6NEOIOJN.js");
31
+ const { createClient, projects, queries: queriesTable } = await import("./src-UENQLEK4.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-Z23URYCX.js");
50
+ const { serveCommand } = await import("./serve-7WKYATM7.js");
51
51
  await serveCommand(format);
52
52
  }
53
53
 
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseJsonColumn
3
- } from "./chunk-AX7BBB3S.js";
3
+ } from "./chunk-2GJLKCXL.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-BALMAZTD.js";
29
+ } from "./chunk-S6IC7ZK2.js";
30
30
 
31
31
  // ../provider-openai/src/normalize.ts
32
32
  import OpenAI from "openai";
@@ -2,11 +2,11 @@ import {
2
2
  dedupeGscSitemapUrls,
3
3
  resolveDiscoveredGscSitemapUrls,
4
4
  submitGscSitemapBatches
5
- } from "./chunk-FFS6J325.js";
5
+ } from "./chunk-WB6VIQ7L.js";
6
6
  import {
7
7
  measurementDraftOperationSchema,
8
8
  runMeasurementDraftAction
9
- } from "./chunk-TKOJAZ6S.js";
9
+ } from "./chunk-2FIDPBWE.js";
10
10
  import {
11
11
  CliError
12
12
  } from "./chunk-HGMYEDAQ.js";
@@ -183,7 +183,7 @@ import {
183
183
  trafficUnrecognizedAgentsQuerySchema,
184
184
  visibilityCompareSelectionSchema,
185
185
  visibilityReportRequestSchema
186
- } from "./chunk-BALMAZTD.js";
186
+ } from "./chunk-S6IC7ZK2.js";
187
187
 
188
188
  // src/mcp/tool-registry.ts
189
189
  import { z as z2 } from "zod";
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  runWithUsageTags
3
- } from "./chunk-YJ7FKGRE.js";
3
+ } from "./chunk-ZX7XDVPC.js";
4
4
  import {
5
5
  CanonryMcpToolNames,
6
6
  canonryMcpTools
7
- } from "./chunk-M6IABRSO.js";
7
+ } from "./chunk-HDVJNYYE.js";
8
8
  import {
9
9
  CliError
10
10
  } from "./chunk-HGMYEDAQ.js";
11
11
  import {
12
12
  buildOpenApiDocument
13
- } from "./chunk-IJGPHVZU.js";
13
+ } from "./chunk-NPMJFPBM.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-BALMAZTD.js";
26
+ } from "./chunk-S6IC7ZK2.js";
27
27
 
28
28
  // src/agent/tools.ts
29
29
  import { Type as Type2 } from "@earendil-works/pi-ai";
@@ -28,7 +28,7 @@ import {
28
28
  unknownUsageObservation,
29
29
  usdToMicros,
30
30
  withRetry
31
- } from "./chunk-BALMAZTD.js";
31
+ } from "./chunk-S6IC7ZK2.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
  API_PROVIDER_NAMES,
3
3
  ProviderNames
4
- } from "./chunk-BALMAZTD.js";
4
+ } from "./chunk-S6IC7ZK2.js";
5
5
 
6
6
  // src/provider-registration.ts
7
7
  function isApiProviderRegistrable(name, entry) {
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  trackIntegrationConnection
3
- } from "./chunk-F3EJRABZ.js";
3
+ } from "./chunk-NNUZ37NJ.js";
4
4
  import {
5
5
  cliRuntimeContext
6
- } from "./chunk-HPCDCZJW.js";
6
+ } from "./chunk-VWYB4RA4.js";
7
7
 
8
8
  // src/cli-connection-telemetry.ts
9
9
  function trackCliConnection(properties) {
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-YJ7FKGRE.js";
3
+ } from "./chunk-ZX7XDVPC.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-TKOJAZ6S.js";
10
+ } from "./chunk-2FIDPBWE.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-BALMAZTD.js";
40
+ } from "./chunk-S6IC7ZK2.js";
41
41
 
42
42
  // src/commands/measurement-plan.ts
43
43
  import crypto from "crypto";
@@ -8,7 +8,7 @@ import {
8
8
  classifyJourneyEntry,
9
9
  hostMatchesDomain,
10
10
  hostOf
11
- } from "./chunk-BALMAZTD.js";
11
+ } from "./chunk-S6IC7ZK2.js";
12
12
 
13
13
  // ../integration-traffic/src/ip-ranges/amazonbot.json
14
14
  var amazonbot_default = {
@@ -2,13 +2,13 @@ import {
2
2
  bucketCliCommandDuration,
3
3
  isTelemetryEnabled,
4
4
  trackEvent
5
- } from "./chunk-HPCDCZJW.js";
5
+ } from "./chunk-VWYB4RA4.js";
6
6
  import {
7
7
  getConfigDir
8
- } from "./chunk-6ST5JIUJ.js";
8
+ } from "./chunk-7ZJHKLTK.js";
9
9
  import {
10
10
  currentOutcomeAttribution
11
- } from "./chunk-SJYKKUH5.js";
11
+ } from "./chunk-AAMOBJXJ.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-BALMAZTD.js";
22
+ } from "./chunk-S6IC7ZK2.js";
23
23
 
24
24
  // src/outcome-telemetry.ts
25
25
  import fs from "fs";
@@ -9,14 +9,14 @@ import {
9
9
  normalizeCloudflareWorkerEvent,
10
10
  sessionizeJourneyRequests,
11
11
  verifyRequestSignature
12
- } from "./chunk-GK5H5QAH.js";
12
+ } from "./chunk-M7WS2BL3.js";
13
13
  import {
14
14
  currentOutcomeAttribution,
15
15
  getRequestContext,
16
16
  registerRequestContext,
17
17
  requestAuditIdentity,
18
18
  sanitizeRequestContext
19
- } from "./chunk-SJYKKUH5.js";
19
+ } from "./chunk-AAMOBJXJ.js";
20
20
  import {
21
21
  RawEventSampleEventTypes,
22
22
  SentimentIdempotencyConflict,
@@ -159,7 +159,7 @@ import {
159
159
  userSessions,
160
160
  users,
161
161
  writeNegativeReviewMaxStars
162
- } from "./chunk-AX7BBB3S.js";
162
+ } from "./chunk-2GJLKCXL.js";
163
163
  import {
164
164
  ADS_ACTIVATE_SCOPE,
165
165
  ADS_ACTIVATION_ABSOLUTE_MAX_ENTITIES,
@@ -1211,7 +1211,7 @@ import {
1211
1211
  wordpressSchemaDeployResultDtoSchema,
1212
1212
  wordpressSchemaStatusResultDtoSchema,
1213
1213
  wordpressStatusDtoSchema
1214
- } from "./chunk-BALMAZTD.js";
1214
+ } from "./chunk-S6IC7ZK2.js";
1215
1215
 
1216
1216
  // ../api-routes/src/user-session.ts
1217
1217
  import crypto2 from "crypto";
@@ -8982,10 +8982,30 @@ function ratingView(payload) {
8982
8982
  timestamp: ratings.reduce((latest, r) => r.observedAt > latest ? r.observedAt : latest, ratings[0]?.observedAt ?? "")
8983
8983
  };
8984
8984
  }
8985
+ function unrecognizedAgentView(payload) {
8986
+ const { project, agents } = payload;
8987
+ const line = (agent) => {
8988
+ const hits = `${agent.hits} hit${agent.hits === 1 ? "" : "s"}`;
8989
+ return agent.sampleUserAgent ? `${agent.name}: ${hits}, ${snippet(agent.sampleUserAgent, 120)}` : `${agent.name}: ${hits}`;
8990
+ };
8991
+ const single = agents.length === 1 ? agents[0] : null;
8992
+ return {
8993
+ severity: AlertSeverities.info,
8994
+ category: CANONRY_ALERT_CATEGORY,
8995
+ title: single ? `${project.name}: new bot, ${single.name}` : `${project.name}: ${agents.length} new bots`,
8996
+ body: `Bots or agents Canonry does not recognize yet.
8997
+ ${single ? line(single) : bulletList(agents.map(line))}`,
8998
+ fields: [{ label: AlertFieldLabels.next, value: `cnry traffic unrecognized ${project.name}` }],
8999
+ url: payload.dashboardUrl,
9000
+ footer: project.canonicalDomain,
9001
+ timestamp: agents.reduce((latest, agent) => agent.lastSeenAt > latest ? agent.lastSeenAt : latest, agents[0]?.lastSeenAt ?? "")
9002
+ };
9003
+ }
8985
9004
  function toAlertView(payload) {
8986
9005
  if (isHealth(payload)) return healthView(payload);
8987
9006
  if (payload.event === "review.negative") return reviewView(payload);
8988
9007
  if (payload.event === "review.rating-dropped") return ratingView(payload);
9008
+ if (payload.event === "traffic.agent.discovered") return unrecognizedAgentView(payload);
8989
9009
  return runView(payload);
8990
9010
  }
8991
9011
 
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  hostMatchesDomain
3
- } from "./chunk-BALMAZTD.js";
3
+ } from "./chunk-S6IC7ZK2.js";
4
4
 
5
5
  // src/citation-utils.ts
6
6
  function pickProjectCitedDomain(citedDomains, projectDomains) {