@canonry/canonry 7.80.0 → 7.82.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.
- package/assets/agent-workspace/skills/canonry/references/canonry-cli.md +16 -0
- package/assets/agent-workspace/skills/canonry/references/server-side-traffic.md +13 -0
- package/assets/assets/{AgentSetupPage-Cr2ZU_4s.js → AgentSetupPage-CcjQeUvK.js} +1 -1
- package/assets/assets/{AuditHistoryPanel-Bb5wq-Bk.js → AuditHistoryPanel-DgTvt2hQ.js} +1 -1
- package/assets/assets/{BacklinksPage-i1cfxTDj.js → BacklinksPage-DFQhtk4d.js} +1 -1
- package/assets/assets/{HistoryPage-C2NRdNrn.js → HistoryPage-CkkWqQol.js} +1 -1
- package/assets/assets/{MeasurementPropertyPage-ighxjOiq.js → MeasurementPropertyPage-Cwnda2BA.js} +1 -1
- package/assets/assets/{ProjectPage-DnAXCPle.js → ProjectPage-C39ua8CG.js} +1 -1
- package/assets/assets/{RunsPage-Ds5K3fOQ.js → RunsPage-B4tMl-_9.js} +1 -1
- package/assets/assets/{SettingsPage-B8Jed-xH.js → SettingsPage-DmDdf02o.js} +1 -1
- package/assets/assets/{SiteHealthSection-cjNQasWj.js → SiteHealthSection-CfQePJ7s.js} +2 -2
- package/assets/assets/ToneBadge-bXf5LaSI.js +60 -0
- package/assets/assets/{TrafficPage-BUid1rkh.js → TrafficPage-C9y8xEr6.js} +1 -1
- package/assets/assets/{TrafficSourceDetailPage-D3KHgRvF.js → TrafficSourceDetailPage-Dklvlek4.js} +1 -1
- package/assets/assets/{account-context-B50QqDEA.js → account-context-BjM5ZlYl.js} +1 -1
- package/assets/assets/{card-BE2fqwVq.js → card-CDFncx20.js} +1 -1
- package/assets/assets/{extract-error-message-xuN_xeRJ.js → extract-error-message-s3FKmMjt.js} +1 -1
- package/assets/assets/{format-helpers-CiC6gALY.js → format-helpers-CYQ-LjnQ.js} +1 -1
- package/assets/assets/{index-BhoSVTom.js → index-qWvnlyfA.js} +4 -4
- package/assets/assets/{query-client-C5GhDMY7.js → query-client-C_dAEVvf.js} +1 -1
- package/assets/assets/{react-query-CmHyfYFq.js → react-query-BKozxbv1.js} +1 -1
- package/assets/assets/{react-sigma_core.esm.min-SbOH7c6K.js → react-sigma_core.esm.min-J2l6CcJl.js} +1 -1
- package/assets/assets/{service-B2i_ZzWP.js → service-BhAtQFOI.js} +1 -1
- package/assets/index.html +7 -7
- package/dist/{ads-MNMND5VH.js → ads-UDOONRKQ.js} +3 -3
- package/dist/{agent-4KNDL3D3.js → agent-JTEGEX6X.js} +7 -7
- package/dist/{agent-ask-32RTOL2M.js → agent-ask-PUV4EVGS.js} +3 -3
- package/dist/{agent-conversations-BXVWHUZC.js → agent-conversations-TWTSQHBR.js} +3 -3
- package/dist/{agent-memory-7R7UVFS5.js → agent-memory-ZJEXAUJB.js} +3 -3
- package/dist/{agent-providers-QGVLCCH4.js → agent-providers-2RQZSGMP.js} +3 -3
- package/dist/{agent-transcript-7Y6BJCIT.js → agent-transcript-YYS3XBES.js} +3 -3
- package/dist/{analytics-YOGEHW6J.js → analytics-RLC6PRUZ.js} +3 -3
- package/dist/{apply-TB3MF3PH.js → apply-Z5SSCEJ2.js} +3 -3
- package/dist/{backfill-BXEYMV3Y.js → backfill-6K2UMALK.js} +9 -9
- package/dist/{backlinks-6GTL324T.js → backlinks-LDI2VTPT.js} +3 -3
- package/dist/{bing-OMQACSDY.js → bing-SSNMNZEF.js} +3 -3
- package/dist/{bootstrap-ITVA7X45.js → bootstrap-ISRV5I52.js} +10 -10
- package/dist/{cdp-3WBLAWOL.js → cdp-WU7QCPQ3.js} +7 -7
- package/dist/{chunk-7HB6QLX4.js → chunk-2FIDPBWE.js} +1 -1
- package/dist/{chunk-HRFPGXON.js → chunk-2GJLKCXL.js} +61 -1
- package/dist/{chunk-ENUSVOQ5.js → chunk-2PDDTRTG.js} +4 -4
- package/dist/{chunk-AI44ZCMK.js → chunk-462CIYLY.js} +1 -1
- package/dist/{chunk-BLZCNL3B.js → chunk-4IYFVC22.js} +3 -3
- package/dist/{chunk-6ACWXQNZ.js → chunk-5K3S74ZX.js} +2 -1
- package/dist/{chunk-MIQMUSE4.js → chunk-5NDUJLUL.js} +6 -6
- package/dist/{chunk-3QJWOF2B.js → chunk-7ZJHKLTK.js} +1 -1
- package/dist/{chunk-3MGM3U6V.js → chunk-AAMOBJXJ.js} +1 -1
- package/dist/{chunk-OIRHCT63.js → chunk-DWFVH3E2.js} +2 -2
- package/dist/{chunk-72YPSNCG.js → chunk-EIDOBJF2.js} +2 -2
- package/dist/{chunk-45RGH7XI.js → chunk-F4FDJI5O.js} +3 -3
- package/dist/{chunk-7S6SQFFT.js → chunk-GKHM5OT6.js} +2 -2
- package/dist/{chunk-MUYTDD35.js → chunk-HDVJNYYE.js} +18 -3
- package/dist/{chunk-DKONZ36U.js → chunk-J2DA4LUR.js} +402 -270
- package/dist/{chunk-JJO5XNS6.js → chunk-J7EYQFMJ.js} +4 -4
- package/dist/{chunk-WSWHLKKJ.js → chunk-JDEHNF7K.js} +1 -1
- package/dist/{chunk-FCYGY4FT.js → chunk-JMUSNZJR.js} +1 -1
- package/dist/{chunk-KF7I7FBI.js → chunk-JP4RTZGE.js} +2 -2
- package/dist/{chunk-2EWZ3DJ4.js → chunk-LRFCNERP.js} +3 -3
- package/dist/{chunk-B36XUBYK.js → chunk-M7WS2BL3.js} +102 -57
- package/dist/{chunk-PLLDJUG2.js → chunk-NNUZ37NJ.js} +4 -4
- package/dist/{chunk-R3US2RG6.js → chunk-NPMJFPBM.js} +1501 -1353
- package/dist/{chunk-JERATA5R.js → chunk-OH42CAWP.js} +1 -1
- package/dist/{chunk-R26CF4WT.js → chunk-QHEKMJL4.js} +2 -2
- package/dist/{chunk-CJ4JDM5W.js → chunk-RMZCQUKN.js} +347 -335
- package/dist/{chunk-PM2DB3HE.js → chunk-S6IC7ZK2.js} +38 -1
- package/dist/{chunk-T2TIQP5O.js → chunk-SIRWPXGJ.js} +8 -8
- package/dist/{chunk-KZB6HLFT.js → chunk-SVF4P6DB.js} +1 -1
- package/dist/{chunk-RPTOVEZT.js → chunk-T76RQIGK.js} +3 -3
- package/dist/{chunk-TZRYVW75.js → chunk-VVOCZTNC.js} +2 -2
- package/dist/{chunk-4GEEYY3N.js → chunk-VWYB4RA4.js} +2 -2
- package/dist/{chunk-ZHFE6J3A.js → chunk-WB6VIQ7L.js} +1 -1
- package/dist/{chunk-QAVJ6LHN.js → chunk-ZR3RYJF3.js} +5 -5
- package/dist/{chunk-7OAXEMOF.js → chunk-ZX7XDVPC.js} +10 -2
- package/dist/{citations-PGG7JEIN.js → citations-X5LS7SZX.js} +3 -3
- package/dist/{cli-catalog-KC6JYHSW.js → cli-catalog-S4RLOOCK.js} +3 -3
- package/dist/{cli-commands-XFFBO46N.js → cli-commands-BGNM6H6P.js} +7 -7
- package/dist/cli.js +13 -13
- package/dist/{competitor-B3CZOKZU.js → competitor-O5YXN5SD.js} +3 -3
- package/dist/{content-Z4XJMZB4.js → content-C6SO5LNZ.js} +3 -3
- package/dist/{dashboard-L5XCPIFW.js → dashboard-3P6FFYCW.js} +6 -6
- package/dist/{demo-HWM3OWEO.js → demo-OJ6C4DU3.js} +1 -1
- package/dist/{demo-server-5DE5PAEC.js → demo-server-GJXDVREB.js} +12 -12
- package/dist/{discover-OT3K7KQK.js → discover-Z355GK36.js} +3 -3
- package/dist/{discover-eval-DN4J4KD5.js → discover-eval-6OVS55LV.js} +3 -3
- package/dist/{doctor-UDF6OCSR.js → doctor-E52VMIEP.js} +3 -3
- package/dist/{evidence-Z364UFOD.js → evidence-ITVU3HYF.js} +3 -3
- package/dist/{export-cmd-K27XN4G5.js → export-cmd-S2UD3ALT.js} +3 -3
- package/dist/{ga-Q2CELDLG.js → ga-T3UEGAZC.js} +3 -3
- package/dist/{gbp-V2APGSIQ.js → gbp-3G45OTYX.js} +3 -3
- package/dist/{google-WFHYA3QT.js → google-YZS4HLN3.js} +4 -4
- package/dist/{google-marketing-5ROIKBC7.js → google-marketing-LIV6O63R.js} +1 -1
- package/dist/{health-cmd-RGFAJ4YP.js → health-cmd-2FC73XH6.js} +3 -3
- package/dist/{history-RUSU66BZ.js → history-KLRMAVLG.js} +3 -3
- package/dist/index.d.ts +344 -83
- package/dist/index.js +25 -25
- package/dist/{init-WXKOOS25.js → init-CTP7OZTR.js} +12 -12
- package/dist/{insights-4IFQLPS3.js → insights-KTGRGFAN.js} +3 -3
- package/dist/intelligence-service-YX72V6NG.js +16 -0
- package/dist/{journeys-PTC2QY57.js → journeys-PF2OO5W2.js} +3 -3
- package/dist/{keys-JASXI2SR.js → keys-7NTJ7TFJ.js} +3 -3
- package/dist/{keyword-SK2HJXCJ.js → keyword-C37ZTBOS.js} +3 -3
- package/dist/{logs-AS5I5V2A.js → logs-GU223TLX.js} +3 -3
- package/dist/{mcp-BQSOYHEX.js → mcp-2DZFAHOW.js} +4 -4
- package/dist/mcp.js +9 -9
- package/dist/{measurement-plan-LZYYH3OD.js → measurement-plan-ZSZUAW4Y.js} +5 -5
- package/dist/{notify-JM6252F6.js → notify-GYSA5V67.js} +5 -4
- package/dist/{organic-evidence-L3Y6RZIH.js → organic-evidence-2NLMSKHX.js} +3 -3
- package/dist/{overview-VIF2GXYW.js → overview-NL3B5XME.js} +4 -4
- package/dist/{project-FQEPFPRD.js → project-3THJAPRN.js} +3 -3
- package/dist/{query-VKRESS6B.js → query-JU5UHTGT.js} +3 -3
- package/dist/{research-6A6QWKN3.js → research-WLS77NOR.js} +3 -3
- package/dist/{results-export-VUB2ZD5B.js → results-export-RQKUM5OA.js} +3 -3
- package/dist/{run-PG5GYZT7.js → run-H6BA7COC.js} +4 -4
- package/dist/{schedule-EBGOLCQZ.js → schedule-ISTF4OHX.js} +3 -3
- package/dist/{search-NS4XPZRL.js → search-HIYAHDZR.js} +3 -3
- package/dist/{serve-7JITP7HH.js → serve-5WPYWTOF.js} +26 -26
- package/dist/{session-PCUTTGTF.js → session-4B5VWFCF.js} +13 -13
- package/dist/{settings-LNCAYCDF.js → settings-ZI4UQXJO.js} +3 -3
- package/dist/{skills-DWXA55QA.js → skills-LN34DUVA.js} +2 -2
- package/dist/{snapshot-LX7OR7SO.js → snapshot-BDPWMMDS.js} +3 -3
- package/dist/{src-QC2VNJWJ.js → src-UENQLEK4.js} +6 -2
- package/dist/{status-DQ6FNWUT.js → status-6CIRB7TO.js} +4 -4
- package/dist/{technical-aeo-5GU2IY6W.js → technical-aeo-L435UGJL.js} +3 -3
- package/dist/{telemetry-QK2GPII3.js → telemetry-VIY5GILS.js} +4 -4
- package/dist/{tools-LILIKI26.js → tools-LILY27JS.js} +11 -11
- package/dist/{traffic-77CKSYM3.js → traffic-KHGUZSP6.js} +30 -7
- package/dist/{users-7OJ2RGV3.js → users-KLOJMJSB.js} +3 -3
- package/dist/{visibility-stats-VR25XMMY.js → visibility-stats-OG2HEGFX.js} +3 -3
- package/dist/{wordpress-JYXTF4PL.js → wordpress-NPVZAUSN.js} +3 -3
- package/package.json +1 -1
- package/assets/assets/ToneBadge-CUe-WrzN.js +0 -60
- package/dist/intelligence-service-RVKSPP4X.js +0 -16
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runWithUsageTags
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-ZX7XDVPC.js";
|
|
4
4
|
import {
|
|
5
5
|
CanonryMcpToolNames,
|
|
6
6
|
canonryMcpTools
|
|
7
|
-
} from "./chunk-
|
|
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-
|
|
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-
|
|
26
|
+
} from "./chunk-S6IC7ZK2.js";
|
|
27
27
|
|
|
28
28
|
// src/agent/tools.ts
|
|
29
29
|
import { Type as Type2 } from "@earendil-works/pi-ai";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
trackIntegrationConnection
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-NNUZ37NJ.js";
|
|
4
4
|
import {
|
|
5
5
|
cliRuntimeContext
|
|
6
|
-
} from "./chunk-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
11
|
+
} from "./chunk-S6IC7ZK2.js";
|
|
12
12
|
|
|
13
13
|
// ../integration-traffic/src/ip-ranges/amazonbot.json
|
|
14
14
|
var amazonbot_default = {
|
|
@@ -14829,8 +14829,84 @@ function sessionizeJourneyRequests(requests, state, options) {
|
|
|
14829
14829
|
return { visits: [...visits.values()], events, visitors, dropped, capped };
|
|
14830
14830
|
}
|
|
14831
14831
|
|
|
14832
|
+
// ../integration-traffic/src/unlisted-agents.ts
|
|
14833
|
+
var UNLISTED_AGENT_SKIPPED_EXTENSIONS = [
|
|
14834
|
+
"avif",
|
|
14835
|
+
"bmp",
|
|
14836
|
+
"css",
|
|
14837
|
+
"gif",
|
|
14838
|
+
"ico",
|
|
14839
|
+
"jpeg",
|
|
14840
|
+
"jpg",
|
|
14841
|
+
"js",
|
|
14842
|
+
"map",
|
|
14843
|
+
"mjs",
|
|
14844
|
+
"mp3",
|
|
14845
|
+
"mp4",
|
|
14846
|
+
"otf",
|
|
14847
|
+
"png",
|
|
14848
|
+
"svg",
|
|
14849
|
+
"ttf",
|
|
14850
|
+
"webm",
|
|
14851
|
+
"webmanifest",
|
|
14852
|
+
"webp",
|
|
14853
|
+
"woff",
|
|
14854
|
+
"woff2",
|
|
14855
|
+
"zip"
|
|
14856
|
+
];
|
|
14857
|
+
var GENERIC_HTTP_CLIENTS = [
|
|
14858
|
+
"curl",
|
|
14859
|
+
"wget",
|
|
14860
|
+
"python",
|
|
14861
|
+
"python-requests",
|
|
14862
|
+
"python-urllib",
|
|
14863
|
+
"python-httpx",
|
|
14864
|
+
"aiohttp",
|
|
14865
|
+
"httpx",
|
|
14866
|
+
"go-http-client",
|
|
14867
|
+
"okhttp",
|
|
14868
|
+
"java",
|
|
14869
|
+
"apache-httpclient",
|
|
14870
|
+
"axios",
|
|
14871
|
+
"node",
|
|
14872
|
+
"node-fetch",
|
|
14873
|
+
"undici",
|
|
14874
|
+
"got",
|
|
14875
|
+
"libwww-perl",
|
|
14876
|
+
"guzzlehttp",
|
|
14877
|
+
"ruby",
|
|
14878
|
+
"faraday",
|
|
14879
|
+
"php",
|
|
14880
|
+
"wordpress",
|
|
14881
|
+
"dalvik",
|
|
14882
|
+
"postmanruntime",
|
|
14883
|
+
"insomnia"
|
|
14884
|
+
];
|
|
14885
|
+
var BROWSER_SHAPED_AGENT_MARKERS = ["compatible;", "fetch", "agent", "headless", "+http"];
|
|
14886
|
+
var PRODUCT_NAME_END = /[/\s;(]/;
|
|
14887
|
+
var SKIPPED_PATH = new RegExp(`\\.(?:${UNLISTED_AGENT_SKIPPED_EXTENSIONS.join("|")})$`, "i");
|
|
14888
|
+
var COMPATIBLE_NAME = /compatible;\s*([a-z0-9][a-z0-9._-]*)/;
|
|
14889
|
+
var BOT_LIKE_NAME = /([a-z0-9][a-z0-9._-]*(?:bot|crawler|spider|fetcher|agent|-user))\//;
|
|
14890
|
+
var HEADLESS_NAME = /\b(headless[a-z]*)\//;
|
|
14891
|
+
var BROWSER_COMPATIBLE_NAMES = ["msie"];
|
|
14892
|
+
var MAX_AGENT_NAME_LENGTH = 64;
|
|
14893
|
+
function unrecognizedAgentName(request) {
|
|
14894
|
+
const method = (request.method ?? "GET").toUpperCase();
|
|
14895
|
+
if (method !== "GET" && method !== "HEAD") return null;
|
|
14896
|
+
if (request.path && SKIPPED_PATH.test(request.path.split("?")[0] ?? "")) return null;
|
|
14897
|
+
const ua = (request.userAgent ?? "").trim().toLowerCase();
|
|
14898
|
+
if (!ua) return null;
|
|
14899
|
+
const product = ua.split(PRODUCT_NAME_END)[0] ?? "";
|
|
14900
|
+
if (!product || GENERIC_HTTP_CLIENTS.includes(product)) return null;
|
|
14901
|
+
if (product !== "mozilla") return product.slice(0, MAX_AGENT_NAME_LENGTH);
|
|
14902
|
+
const name = COMPATIBLE_NAME.exec(ua)?.[1] ?? BOT_LIKE_NAME.exec(ua)?.[1] ?? HEADLESS_NAME.exec(ua)?.[1];
|
|
14903
|
+
if (!name || BROWSER_COMPATIBLE_NAMES.includes(name)) return null;
|
|
14904
|
+
return name.slice(0, MAX_AGENT_NAME_LENGTH);
|
|
14905
|
+
}
|
|
14906
|
+
|
|
14832
14907
|
// ../integration-traffic/src/rollup.ts
|
|
14833
14908
|
var DEFAULT_SAMPLE_LIMIT = 25;
|
|
14909
|
+
var MAX_UNRECOGNIZED_AGENT_NAMES = 200;
|
|
14834
14910
|
var DEFAULT_AI_REFERRAL_SESSION_WINDOW_MS = 6e4;
|
|
14835
14911
|
var UUID_SEGMENT2 = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
14836
14912
|
var LONG_HEX_SEGMENT2 = /^[0-9a-f]{16,}$/i;
|
|
@@ -14945,6 +15021,7 @@ function buildTrafficProbeReport(events, options = {}) {
|
|
|
14945
15021
|
const crawlerBuckets = /* @__PURE__ */ new Map();
|
|
14946
15022
|
const aiUserFetchBuckets = /* @__PURE__ */ new Map();
|
|
14947
15023
|
const aiReferralBuckets = /* @__PURE__ */ new Map();
|
|
15024
|
+
const unrecognizedAgentBuckets = /* @__PURE__ */ new Map();
|
|
14948
15025
|
const aiReferralSessions = /* @__PURE__ */ new Map();
|
|
14949
15026
|
const topBots = /* @__PURE__ */ new Map();
|
|
14950
15027
|
const topCrawlerPaths = /* @__PURE__ */ new Map();
|
|
@@ -15052,7 +15129,21 @@ function buildTrafficProbeReport(events, options = {}) {
|
|
|
15052
15129
|
aiReferralSessions.set(key, existing ? mergeReferralSession(existing, session) : session);
|
|
15053
15130
|
}
|
|
15054
15131
|
}
|
|
15055
|
-
if (!crawler && !aiUserFetch && !aiReferral)
|
|
15132
|
+
if (!crawler && !aiUserFetch && !aiReferral) {
|
|
15133
|
+
unknownHits += 1;
|
|
15134
|
+
const agentName = unrecognizedAgentName(event);
|
|
15135
|
+
if (agentName) {
|
|
15136
|
+
const key = `${tsHour} ${agentName}`;
|
|
15137
|
+
const existing = unrecognizedAgentBuckets.get(key);
|
|
15138
|
+
if (existing) {
|
|
15139
|
+
existing.hits += 1;
|
|
15140
|
+
existing.sampledUserAgent = event.userAgent ?? existing.sampledUserAgent;
|
|
15141
|
+
existing.sampledPath = pathNormalized;
|
|
15142
|
+
} else {
|
|
15143
|
+
unrecognizedAgentBuckets.set(key, { tsHour, agentName, hits: 1, sampledUserAgent: event.userAgent ?? "", sampledPath: pathNormalized });
|
|
15144
|
+
}
|
|
15145
|
+
}
|
|
15146
|
+
}
|
|
15056
15147
|
samples.push({
|
|
15057
15148
|
eventId: event.eventId,
|
|
15058
15149
|
observedAt: event.observedAt,
|
|
@@ -15118,6 +15209,7 @@ function buildTrafficProbeReport(events, options = {}) {
|
|
|
15118
15209
|
crawlerEventsHourly: [...crawlerBuckets.values()].sort(sortCrawlerBuckets),
|
|
15119
15210
|
aiUserFetchEventsHourly: [...aiUserFetchBuckets.values()].sort(sortAiUserFetchBuckets),
|
|
15120
15211
|
aiReferralEventsHourly: [...aiReferralBuckets.values()].sort(sortReferralBuckets),
|
|
15212
|
+
unrecognizedAgentEventsHourly: busiestUnrecognizedAgents(unrecognizedAgentBuckets),
|
|
15121
15213
|
topBots: topEntries(topBots, 10),
|
|
15122
15214
|
topCrawlerPaths: topEntries(topCrawlerPaths, 10),
|
|
15123
15215
|
topAiUserFetchBots: topEntries(topAiUserFetchBots, 10),
|
|
@@ -15127,67 +15219,20 @@ function buildTrafficProbeReport(events, options = {}) {
|
|
|
15127
15219
|
samples
|
|
15128
15220
|
};
|
|
15129
15221
|
}
|
|
15222
|
+
function busiestUnrecognizedAgents(buckets) {
|
|
15223
|
+
const hitsByName = /* @__PURE__ */ new Map();
|
|
15224
|
+
for (const bucket of buckets.values()) hitsByName.set(bucket.agentName, (hitsByName.get(bucket.agentName) ?? 0) + bucket.hits);
|
|
15225
|
+
const kept = new Set(
|
|
15226
|
+
[...hitsByName.entries()].sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0])).slice(0, MAX_UNRECOGNIZED_AGENT_NAMES).map(([name]) => name)
|
|
15227
|
+
);
|
|
15228
|
+
return [...buckets.values()].filter((bucket) => kept.has(bucket.agentName)).sort((a, b) => a.tsHour.localeCompare(b.tsHour) || a.agentName.localeCompare(b.agentName));
|
|
15229
|
+
}
|
|
15130
15230
|
function incrementBucket(map, key, fields) {
|
|
15131
15231
|
const existing = map.get(key);
|
|
15132
15232
|
if (existing) existing.hits += 1;
|
|
15133
15233
|
else map.set(key, { fields, hits: 1 });
|
|
15134
15234
|
}
|
|
15135
15235
|
|
|
15136
|
-
// ../integration-traffic/src/unlisted-agents.ts
|
|
15137
|
-
var UNLISTED_AGENT_SKIPPED_EXTENSIONS = [
|
|
15138
|
-
"avif",
|
|
15139
|
-
"bmp",
|
|
15140
|
-
"css",
|
|
15141
|
-
"gif",
|
|
15142
|
-
"ico",
|
|
15143
|
-
"jpeg",
|
|
15144
|
-
"jpg",
|
|
15145
|
-
"js",
|
|
15146
|
-
"map",
|
|
15147
|
-
"mjs",
|
|
15148
|
-
"mp3",
|
|
15149
|
-
"mp4",
|
|
15150
|
-
"otf",
|
|
15151
|
-
"png",
|
|
15152
|
-
"svg",
|
|
15153
|
-
"ttf",
|
|
15154
|
-
"webm",
|
|
15155
|
-
"webmanifest",
|
|
15156
|
-
"webp",
|
|
15157
|
-
"woff",
|
|
15158
|
-
"woff2",
|
|
15159
|
-
"zip"
|
|
15160
|
-
];
|
|
15161
|
-
var GENERIC_HTTP_CLIENTS = [
|
|
15162
|
-
"curl",
|
|
15163
|
-
"wget",
|
|
15164
|
-
"python",
|
|
15165
|
-
"python-requests",
|
|
15166
|
-
"python-urllib",
|
|
15167
|
-
"python-httpx",
|
|
15168
|
-
"aiohttp",
|
|
15169
|
-
"httpx",
|
|
15170
|
-
"go-http-client",
|
|
15171
|
-
"okhttp",
|
|
15172
|
-
"java",
|
|
15173
|
-
"apache-httpclient",
|
|
15174
|
-
"axios",
|
|
15175
|
-
"node",
|
|
15176
|
-
"node-fetch",
|
|
15177
|
-
"undici",
|
|
15178
|
-
"got",
|
|
15179
|
-
"libwww-perl",
|
|
15180
|
-
"guzzlehttp",
|
|
15181
|
-
"ruby",
|
|
15182
|
-
"faraday",
|
|
15183
|
-
"php",
|
|
15184
|
-
"wordpress",
|
|
15185
|
-
"dalvik",
|
|
15186
|
-
"postmanruntime",
|
|
15187
|
-
"insomnia"
|
|
15188
|
-
];
|
|
15189
|
-
var BROWSER_SHAPED_AGENT_MARKERS = ["compatible;", "fetch", "agent", "headless", "+http"];
|
|
15190
|
-
|
|
15191
15236
|
// ../integration-cloudflare-worker/src/types.ts
|
|
15192
15237
|
var CLOUDFLARE_WORKER_BINDINGS = {
|
|
15193
15238
|
deliveryMode: "CANONRY_DELIVERY_MODE",
|
|
@@ -2,13 +2,13 @@ import {
|
|
|
2
2
|
bucketCliCommandDuration,
|
|
3
3
|
isTelemetryEnabled,
|
|
4
4
|
trackEvent
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-VWYB4RA4.js";
|
|
6
6
|
import {
|
|
7
7
|
getConfigDir
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-7ZJHKLTK.js";
|
|
9
9
|
import {
|
|
10
10
|
currentOutcomeAttribution
|
|
11
|
-
} from "./chunk-
|
|
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-
|
|
22
|
+
} from "./chunk-S6IC7ZK2.js";
|
|
23
23
|
|
|
24
24
|
// src/outcome-telemetry.ts
|
|
25
25
|
import fs from "fs";
|