@canonry/canonry 7.84.0 → 7.86.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/aero/references/ai-traffic-tracking.md +9 -5
- package/assets/agent-workspace/skills/canonry/references/ai-traffic-tracking.md +9 -5
- package/assets/agent-workspace/skills/canonry/references/canonry-cli.md +3 -1
- package/assets/agent-workspace/skills/canonry/references/server-side-traffic.md +36 -10
- package/assets/assets/{AgentSetupPage-B9NOQP8a.js → AgentSetupPage-0f7Ca4IZ.js} +4 -4
- package/assets/assets/{AuditHistoryPanel-Fvh4WFjq.js → AuditHistoryPanel-BAQuFTNl.js} +1 -1
- package/assets/assets/{BacklinksPage-D1UHFLoV.js → BacklinksPage-BK2bn9Xg.js} +1 -1
- package/assets/assets/{HistoryPage-CBcacDgP.js → HistoryPage-ZBfL9nGw.js} +1 -1
- package/assets/assets/{MeasurementPropertyPage-ZuZpurwr.js → MeasurementPropertyPage-DDSOq4aU.js} +3 -3
- package/assets/assets/ProjectPage-8cVgOm5o.js +11 -0
- package/assets/assets/{RunsPage-tlCk_gOw.js → RunsPage-ke0wMYLg.js} +1 -1
- package/assets/assets/{SettingsPage-7mRTFLFQ.js → SettingsPage-Bbi-sTBk.js} +1 -1
- package/assets/assets/{SiteHealthSection-l_A_AmY_.js → SiteHealthSection-eKxTDUE2.js} +2 -2
- package/assets/assets/{ToneBadge-CXyUIWzB.js → ToneBadge-WAMyKadz.js} +1 -1
- package/assets/assets/{TrafficPage-DQbBT3TP.js → TrafficPage-nXixENx9.js} +1 -1
- package/assets/assets/TrafficSourceDetailPage-ir5zJU_l.js +1 -0
- package/assets/assets/{account-context-Bhgg1lEH.js → account-context-BmN431xn.js} +1 -1
- package/assets/assets/agent-trust-copy-zfx8m-cx.js +1 -0
- package/assets/assets/{card-B16Dvxau.js → card-DUTMWeHB.js} +1 -1
- package/assets/assets/{extract-error-message-B5_v_-U8.js → extract-error-message-BFaIHLqb.js} +1 -1
- package/assets/assets/{format-helpers-Bs9rrO74.js → format-helpers-D1w2yznw.js} +1 -1
- package/assets/assets/index-C5r0VqgO.js +60 -0
- package/assets/assets/index-DIHdWY7b.css +1 -0
- package/assets/assets/{query-client-D-tt1sn3.js → query-client-DrIawr39.js} +1 -1
- package/assets/assets/react-query-DQuOVjDi.js +1 -0
- package/assets/assets/{react-sigma_core.esm.min-BfZVKh7v.js → react-sigma_core.esm.min-cvMDhRNS.js} +1 -1
- package/assets/assets/{service-Cmt36bhL.js → service-CvCKbPnf.js} +1 -1
- package/assets/index.html +8 -8
- package/dist/{ads-KBXA3LV6.js → ads-7IJTHW6T.js} +3 -3
- package/dist/{agent-OMNIUTNZ.js → agent-4UC2X7O2.js} +7 -7
- package/dist/{agent-ask-3JQNG2PE.js → agent-ask-SVPU2WQU.js} +3 -3
- package/dist/{agent-conversations-KO5PDSM2.js → agent-conversations-PJQRY5RX.js} +3 -3
- package/dist/{agent-journeys-QL6NG3BE.js → agent-journeys-JOD5DQ6G.js} +3 -3
- package/dist/{agent-memory-2WZ6LVAN.js → agent-memory-KTMZMUYF.js} +3 -3
- package/dist/{agent-providers-TABMSD4J.js → agent-providers-VEBB3WEW.js} +3 -3
- package/dist/{agent-transcript-YNF63MPR.js → agent-transcript-RRZJCMK2.js} +3 -3
- package/dist/{analytics-5FGY3FHC.js → analytics-EZV4XJKR.js} +3 -3
- package/dist/{apply-2HX4KYT6.js → apply-NP7ORQS4.js} +3 -3
- package/dist/{backfill-ABSW6J3S.js → backfill-7T6VFPWT.js} +10 -10
- package/dist/{backlinks-7CRPWNNN.js → backlinks-KTEJM2IP.js} +3 -3
- package/dist/{bing-IT46EUFH.js → bing-TC54HJUB.js} +3 -3
- package/dist/{bootstrap-CHOXLC7Q.js → bootstrap-UDSN22NT.js} +10 -10
- package/dist/{cdp-HQWKZGVQ.js → cdp-IZSHF3MS.js} +7 -7
- package/dist/{chunk-Q57GN464.js → chunk-2J5EUXO2.js} +1 -1
- package/dist/{chunk-HYEPL5UY.js → chunk-3K3QBKNC.js} +3 -3
- package/dist/{chunk-B42R2SPU.js → chunk-4EKPEVJ2.js} +191 -9
- package/dist/{chunk-LWYALZ6F.js → chunk-5KHF5FV5.js} +4 -4
- package/dist/{chunk-YPR2GVJC.js → chunk-5WEGX3H7.js} +1 -1
- package/dist/{chunk-OBGP3DRQ.js → chunk-5ZAQVRFL.js} +2 -2
- package/dist/{chunk-ZRL5FO5G.js → chunk-AZP37FMA.js} +3 -3
- package/dist/{chunk-43CPBLRJ.js → chunk-BLGYC2K7.js} +1 -1
- package/dist/{chunk-LE6ZODCY.js → chunk-CBNFWSWU.js} +2 -2
- package/dist/{chunk-6SVAUILQ.js → chunk-DU4QEC65.js} +2922 -2570
- package/dist/{chunk-LHAD6EK3.js → chunk-E6IZVSRY.js} +2 -2
- package/dist/{chunk-VCUNNS4R.js → chunk-EX6GVZAE.js} +1 -1
- package/dist/{chunk-LYNYNNOD.js → chunk-F5SQITTJ.js} +1 -1
- package/dist/{chunk-6TLHA6XA.js → chunk-GO4RP6XE.js} +3 -3
- package/dist/{chunk-EMSZDVDP.js → chunk-HHMOUS26.js} +5 -5
- package/dist/{chunk-I642VITF.js → chunk-IILPHGRC.js} +2 -2
- package/dist/{chunk-WJITVHAU.js → chunk-JAK37YKH.js} +2 -2
- package/dist/{chunk-OMUINNSO.js → chunk-KEIKD6JQ.js} +1 -1
- package/dist/{chunk-K3OY52MI.js → chunk-KUVTXIFX.js} +32 -10
- package/dist/{chunk-TZCUMC7U.js → chunk-LJ6VNMCY.js} +16 -8
- package/dist/{chunk-O7TWL6ZH.js → chunk-MJE3SGFW.js} +333 -203
- package/dist/{chunk-6Y75QV2S.js → chunk-OXI45LZP.js} +2 -2
- package/dist/{chunk-MZDIWY3K.js → chunk-RI2ZT3OR.js} +6 -6
- package/dist/{chunk-CEOIGQTS.js → chunk-RR76O744.js} +1 -1
- package/dist/{chunk-2MROJL32.js → chunk-STHWLBYT.js} +1 -1
- package/dist/{chunk-BIGIIVGV.js → chunk-SUSQEH2D.js} +55 -1
- package/dist/{chunk-QLKG7G4Y.js → chunk-TTXBQCE6.js} +21 -21
- package/dist/{chunk-WR4PA335.js → chunk-U3QNTJBP.js} +1 -1
- package/dist/{chunk-3EI4FHR5.js → chunk-UPFWF6TF.js} +4 -4
- package/dist/{chunk-D37PJYLD.js → chunk-UTG6UUGK.js} +1 -1
- package/dist/{chunk-AAKRCOQV.js → chunk-VBW33U4E.js} +2 -2
- package/dist/{chunk-GJE3OG4Y.js → chunk-WVMWY4SE.js} +3 -3
- package/dist/{chunk-3H6FSUKM.js → chunk-X3EU4UPS.js} +3 -3
- package/dist/{chunk-UYR5JI6R.js → chunk-Z5LJI5XK.js} +4 -4
- package/dist/{chunk-5PEVGTNX.js → chunk-ZFL5DOGJ.js} +341 -340
- package/dist/{citations-YRBUXEWU.js → citations-TOZK6OFP.js} +3 -3
- package/dist/{cli-catalog-JTIC72BY.js → cli-catalog-LNWBJNOD.js} +3 -3
- package/dist/{cli-commands-LUGJZGJU.js → cli-commands-3HX4JSDX.js} +7 -7
- package/dist/cli.js +13 -13
- package/dist/{competitor-ZKNDADMJ.js → competitor-54HLL354.js} +3 -3
- package/dist/{content-ANRSBG3Y.js → content-ZIGSMH5U.js} +3 -3
- package/dist/{dashboard-HTJBWAPW.js → dashboard-YJH6IQGK.js} +6 -6
- package/dist/{demo-V3ODU4JK.js → demo-ZYK5XCP3.js} +1 -1
- package/dist/{demo-server-QYMT3KT7.js → demo-server-LZ6MWJ2S.js} +12 -12
- package/dist/{discover-DX7KIWHU.js → discover-22QKOFIM.js} +3 -3
- package/dist/{discover-eval-PXWJYPHE.js → discover-eval-6IFCCH2S.js} +3 -3
- package/dist/{doctor-W2MTLKX7.js → doctor-WLLBFOJU.js} +3 -3
- package/dist/{evidence-PKKLSVNG.js → evidence-7VHTWNZW.js} +3 -3
- package/dist/{export-cmd-3PRWU7NH.js → export-cmd-5RZ3QDFH.js} +3 -3
- package/dist/{ga-QPH56JDO.js → ga-LPI3CWY4.js} +3 -3
- package/dist/{gbp-MJPIQZYZ.js → gbp-YBOMWR75.js} +3 -3
- package/dist/{google-2XZC7DNJ.js → google-N42X5FBH.js} +4 -4
- package/dist/{google-marketing-EDXL7ODG.js → google-marketing-SO4B7Z7L.js} +1 -1
- package/dist/{health-cmd-YR2MFYNK.js → health-cmd-W7RQWCEB.js} +3 -3
- package/dist/{history-OM4OXDOZ.js → history-SDRTOIDZ.js} +3 -3
- package/dist/index.d.ts +211 -5
- package/dist/index.js +25 -25
- package/dist/{init-5FAQPNH4.js → init-DPXOGP3P.js} +12 -12
- package/dist/{insights-YGMPBDVA.js → insights-636LLPVG.js} +3 -3
- package/dist/intelligence-service-JRVESWU2.js +16 -0
- package/dist/{journeys-ZPQCEHXY.js → journeys-NIXKVYA4.js} +21 -12
- package/dist/{keys-YZBRRGYE.js → keys-U2JR56TX.js} +3 -3
- package/dist/{keyword-HSPNKAJQ.js → keyword-GLRK2ZHR.js} +3 -3
- package/dist/{logs-NO2N7W34.js → logs-ENACGWGS.js} +3 -3
- package/dist/{mcp-EAGJ2Y2D.js → mcp-DST2XTP2.js} +4 -4
- package/dist/mcp.js +9 -9
- package/dist/{measurement-plan-6VCBAM5B.js → measurement-plan-Y3SA4ZQC.js} +5 -5
- package/dist/{notify-SS5H5GRB.js → notify-ZYXJQUHU.js} +3 -3
- package/dist/{organic-evidence-XOZQXTHF.js → organic-evidence-NSX7VCNW.js} +3 -3
- package/dist/{overview-3PLQYWDY.js → overview-UO6Z64IT.js} +4 -4
- package/dist/{project-ARUHBFCG.js → project-BHXUPHQA.js} +3 -3
- package/dist/{query-4KCFDJ5V.js → query-GDRAKEN5.js} +3 -3
- package/dist/{research-3NTYXGWN.js → research-YIOQ7WVP.js} +3 -3
- package/dist/{results-export-YOQQXBMP.js → results-export-KXMCAEHJ.js} +3 -3
- package/dist/{run-64UJAPPG.js → run-6PN5GOVE.js} +4 -4
- package/dist/{schedule-JN5JE4EK.js → schedule-5B67GLAM.js} +3 -3
- package/dist/{search-2QIHUMR7.js → search-BMVPCN2V.js} +3 -3
- package/dist/{serve-V2NPNYMP.js → serve-HB7DI7OC.js} +26 -26
- package/dist/{session-347VV5OG.js → session-3RTDTW6Z.js} +13 -13
- package/dist/{settings-XM5NGHFW.js → settings-FJEYHYRH.js} +3 -3
- package/dist/{skills-4MWWCA36.js → skills-6E7IUQUO.js} +2 -2
- package/dist/{snapshot-RWHR3VJ4.js → snapshot-BJQ7WPJZ.js} +3 -3
- package/dist/{src-HUF2NBUG.js → src-QU75IDHI.js} +6 -2
- package/dist/{status-3OI7PTQ5.js → status-3GHFPN54.js} +4 -4
- package/dist/{technical-aeo-RXHIFLHD.js → technical-aeo-76JRC66W.js} +3 -3
- package/dist/{telemetry-DZSITJKQ.js → telemetry-KB73JBDZ.js} +4 -4
- package/dist/{tools-ZUUOSB75.js → tools-6VWDHNPZ.js} +11 -11
- package/dist/{traffic-KIQBUHJW.js → traffic-XB7MZJ23.js} +5 -5
- package/dist/{users-ID4O7NXQ.js → users-HYBG3J72.js} +3 -3
- package/dist/{visibility-stats-X5MTD47P.js → visibility-stats-ZDB2LMRJ.js} +3 -3
- package/dist/{wordpress-WU2HLWIW.js → wordpress-SXKR6XNT.js} +3 -3
- package/package.json +1 -1
- package/assets/assets/ProjectPage-BoqDyoGi.js +0 -11
- package/assets/assets/TrafficSourceDetailPage-D3DwE6Qd.js +0 -1
- package/assets/assets/agent-trust-copy-CKZsKhc0.js +0 -1
- package/assets/assets/index-3aBRkQpI.js +0 -60
- package/assets/assets/index-BnmWwrZA.css +0 -1
- package/assets/assets/react-query-DQr9PoNm.js +0 -1
- package/dist/intelligence-service-GCN4S6QT.js +0 -16
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
trackIntegrationConnection
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-Z5LJI5XK.js";
|
|
4
4
|
import {
|
|
5
5
|
cliRuntimeContext
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-CBNFWSWU.js";
|
|
7
7
|
|
|
8
8
|
// src/cli-connection-telemetry.ts
|
|
9
9
|
function trackCliConnection(properties) {
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
measurementDraftUpsertGroupRequestSchema,
|
|
24
24
|
measurementDraftUpsertMarketRequestSchema,
|
|
25
25
|
measurementDraftUpsertTargetRequestSchema
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-KUVTXIFX.js";
|
|
27
27
|
|
|
28
28
|
// src/measurement-draft-actions.ts
|
|
29
29
|
import { z } from "zod";
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
resolveCliAccess,
|
|
4
4
|
resolveCliAccessForInvocation,
|
|
5
5
|
windowOptions
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-EX6GVZAE.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-
|
|
17
|
+
} from "./chunk-KUVTXIFX.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-
|
|
114
|
+
const { printCliCatalog: printCliCatalog2 } = await import("./cli-catalog-LNWBJNOD.js");
|
|
115
115
|
const group2 = argsWithoutHelp.find((arg) => !arg.startsWith("--"));
|
|
116
116
|
printCliCatalog2(specs, fallbackFormat, group2, accessValue);
|
|
117
117
|
return true;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
pickProjectCitedDomain
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-BLGYC2K7.js";
|
|
4
4
|
import {
|
|
5
5
|
createLogger
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-JAK37YKH.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-
|
|
20
|
+
} from "./chunk-DU4QEC65.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-
|
|
38
|
+
} from "./chunk-SUSQEH2D.js";
|
|
39
39
|
import {
|
|
40
40
|
CitationStates,
|
|
41
41
|
RunKinds,
|
|
42
42
|
RunStatuses,
|
|
43
43
|
RunTriggers,
|
|
44
44
|
effectiveDomains
|
|
45
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-KUVTXIFX.js";
|
|
46
46
|
|
|
47
47
|
// src/intelligence-service.ts
|
|
48
48
|
import { eq, desc, asc, and, ne, or, inArray, gte, lte, isNull, sql, exists } from "drizzle-orm";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createApiClient
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-VBW33U4E.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-
|
|
22
|
+
} from "./chunk-KUVTXIFX.js";
|
|
23
23
|
|
|
24
24
|
// src/commands/run.ts
|
|
25
25
|
function getClient() {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getRequestContext
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-UTG6UUGK.js";
|
|
4
4
|
import {
|
|
5
5
|
diagnosticIdentity,
|
|
6
6
|
redactLogString,
|
|
7
7
|
redactLogValue
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-KUVTXIFX.js";
|
|
9
9
|
|
|
10
10
|
// ../api-routes/src/runtime-logger.ts
|
|
11
11
|
import { format } from "util";
|
|
@@ -9750,6 +9750,16 @@ function formatDurationSeconds(seconds) {
|
|
|
9750
9750
|
if (minutes < 60) return `${minutes}m ${String(total % 60).padStart(2, "0")}s`;
|
|
9751
9751
|
return `${Math.floor(minutes / 60)}h ${String(minutes % 60).padStart(2, "0")}m`;
|
|
9752
9752
|
}
|
|
9753
|
+
function formatDayDuration(days) {
|
|
9754
|
+
if (!Number.isFinite(days) || days < 0) return "\u2014";
|
|
9755
|
+
const minutes = Math.round(days * 1440);
|
|
9756
|
+
if (minutes < 1) return "under a minute";
|
|
9757
|
+
if (minutes < 60) return minutes === 1 ? "1 minute" : `${minutes} minutes`;
|
|
9758
|
+
const hours = Math.round(days * 24);
|
|
9759
|
+
if (hours < 24) return hours === 1 ? "1 hour" : `${hours} hours`;
|
|
9760
|
+
const shown = days < 10 ? Math.round(days * 10) / 10 : Math.round(days);
|
|
9761
|
+
return shown === 1 ? "1 day" : `${shown} days`;
|
|
9762
|
+
}
|
|
9753
9763
|
var MONTH_NAMES = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
|
|
9754
9764
|
function formatCalendarDay(day, now = /* @__PURE__ */ new Date()) {
|
|
9755
9765
|
const match = /^(\d{4})-(\d{2})-(\d{2})$/.exec(day);
|
|
@@ -18827,7 +18837,9 @@ var agentTrustReasonSchema = z57.enum([
|
|
|
18827
18837
|
/** The operator publishes a full user-agent string and this one differs from it. */
|
|
18828
18838
|
"unusual-user-agent",
|
|
18829
18839
|
/** The path asks for secrets, version-control data, admin logins or traverses directories. */
|
|
18830
|
-
"scanner-path"
|
|
18840
|
+
"scanner-path",
|
|
18841
|
+
/** The same client (one IP) asked for scanner paths within a few minutes of this request. */
|
|
18842
|
+
"scanner-burst"
|
|
18831
18843
|
]);
|
|
18832
18844
|
var AgentTrustReasons = agentTrustReasonSchema.enum;
|
|
18833
18845
|
var trafficVerificationManifestSchema = z57.object({
|
|
@@ -19538,6 +19550,8 @@ var journeysQuerySchema = z58.object({
|
|
|
19538
19550
|
engine: z58.string().min(1).optional(),
|
|
19539
19551
|
/** Only visitors who came back after their first AI visit. */
|
|
19540
19552
|
returned: z58.enum(["true", "false"]).optional(),
|
|
19553
|
+
/** Only visitors matched this way: `ip-ua` (IP and browser) or `ua` (browser only, where one key can be many people). */
|
|
19554
|
+
keyBasis: journeyKeyBasisSchema.optional(),
|
|
19541
19555
|
limit: z58.number().int().min(1).max(200).optional(),
|
|
19542
19556
|
offset: z58.number().int().min(0).optional()
|
|
19543
19557
|
});
|
|
@@ -19640,19 +19654,26 @@ var journeySummaryResponseSchema = z58.object({
|
|
|
19640
19654
|
windowStart: z58.string(),
|
|
19641
19655
|
windowEnd: z58.string(),
|
|
19642
19656
|
lookbackDays: z58.literal(JOURNEY_LOOKBACK_DAYS),
|
|
19643
|
-
/**
|
|
19644
|
-
|
|
19645
|
-
|
|
19657
|
+
/**
|
|
19658
|
+
* Visitors matched by IP and browser whose first AI visit started in the
|
|
19659
|
+
* window. Visitors matched by browser only (`keyBasis.ua`) are not counted:
|
|
19660
|
+
* one such key can be many people. Null when every visitor in the window is
|
|
19661
|
+
* matched by browser only, so visitors are not measurable here.
|
|
19662
|
+
*/
|
|
19663
|
+
aiVisitors: z58.number().int().nullable(),
|
|
19664
|
+
/** AI-referred visits that started in the window, however their visitor was matched. */
|
|
19646
19665
|
aiVisits: z58.number().int(),
|
|
19647
|
-
/** Of aiVisitors, those who came back in a later visit. */
|
|
19648
|
-
returningVisitors: z58.number().int(),
|
|
19649
|
-
/** returningVisitors / aiVisitors; null with no
|
|
19666
|
+
/** Of aiVisitors, those who came back in a later visit; null with aiVisitors. */
|
|
19667
|
+
returningVisitors: z58.number().int().nullable(),
|
|
19668
|
+
/** returningVisitors / aiVisitors; null with no counted visitors. */
|
|
19650
19669
|
returnRate: fraction().nullable(),
|
|
19651
|
-
/** Later visits of
|
|
19652
|
-
returnedVia: z58.record(journeyEntryClassSchema, z58.number().int()),
|
|
19653
|
-
/** Median days from a visitor's first AI visit to their first later visit; null with none. */
|
|
19670
|
+
/** Later visits of the counted visitors, by how they came back; null with aiVisitors. */
|
|
19671
|
+
returnedVia: z58.record(journeyEntryClassSchema, z58.number().int()).nullable(),
|
|
19672
|
+
/** Median days from a visitor's first AI visit to their first later visit, to 0.0001 day; null with none. */
|
|
19654
19673
|
medianDaysToReturn: z58.number().nullable(),
|
|
19674
|
+
/** The counted visitors by first AI engine. */
|
|
19655
19675
|
byEngine: z58.array(z58.object({ engine: z58.string(), visitors: z58.number().int(), returningVisitors: z58.number().int() })),
|
|
19676
|
+
/** Visitors whose first AI visit started in the window, by how they were matched; `ua` ones are not in the visitor figures. */
|
|
19656
19677
|
keyBasis: z58.object({ ipUa: z58.number().int(), ua: z58.number().int() }),
|
|
19657
19678
|
partialSources: journeyPartialSourcesSchema
|
|
19658
19679
|
});
|
|
@@ -27261,6 +27282,7 @@ export {
|
|
|
27261
27282
|
competitorEntryParts,
|
|
27262
27283
|
formatPercent,
|
|
27263
27284
|
formatNumber,
|
|
27285
|
+
formatDayDuration,
|
|
27264
27286
|
formatCalendarDay,
|
|
27265
27287
|
formatIsoDate,
|
|
27266
27288
|
formatIsoDateInTimeZone,
|
|
@@ -8,23 +8,23 @@ import {
|
|
|
8
8
|
reparseStoredResult4,
|
|
9
9
|
reparseStoredResult5,
|
|
10
10
|
resolveStoredApiResponse
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-4EKPEVJ2.js";
|
|
12
12
|
import {
|
|
13
13
|
loadConfig
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-U3QNTJBP.js";
|
|
15
15
|
import {
|
|
16
16
|
isMachineFormat
|
|
17
17
|
} from "./chunk-HGMYEDAQ.js";
|
|
18
18
|
import {
|
|
19
19
|
determineCitationState
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-BLGYC2K7.js";
|
|
21
21
|
import {
|
|
22
22
|
backfillProjectAnswerMentions,
|
|
23
23
|
competitorIdentityColumns,
|
|
24
24
|
createRunCompetitorResolver,
|
|
25
25
|
readMarketCompetitorNames,
|
|
26
26
|
refreshSnapshotMentionIdentity
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-DU4QEC65.js";
|
|
28
28
|
import {
|
|
29
29
|
RawEventSampleEventTypes,
|
|
30
30
|
auditLog,
|
|
@@ -38,7 +38,7 @@ import {
|
|
|
38
38
|
querySnapshots,
|
|
39
39
|
rawEventSamples,
|
|
40
40
|
runs
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-SUSQEH2D.js";
|
|
42
42
|
import {
|
|
43
43
|
ProviderNames,
|
|
44
44
|
RetrievalContracts,
|
|
@@ -51,7 +51,7 @@ import {
|
|
|
51
51
|
extractRecommendedCompetitors,
|
|
52
52
|
normalizeUrlPath,
|
|
53
53
|
openRouterRouteModel
|
|
54
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-KUVTXIFX.js";
|
|
55
55
|
|
|
56
56
|
// src/commands/backfill.ts
|
|
57
57
|
import { setImmediate as yieldToEventLoop } from "timers/promises";
|
|
@@ -429,7 +429,7 @@ No DB writes performed. Re-run without --dry-run to apply.`);
|
|
|
429
429
|
}
|
|
430
430
|
}
|
|
431
431
|
async function backfillInsightsCommand(project, opts) {
|
|
432
|
-
const { IntelligenceService } = await import("./intelligence-service-
|
|
432
|
+
const { IntelligenceService } = await import("./intelligence-service-JRVESWU2.js");
|
|
433
433
|
const config = loadConfig();
|
|
434
434
|
const db = createClient(config.database);
|
|
435
435
|
migrate(db);
|
|
@@ -811,7 +811,11 @@ async function backfillTrafficClassificationCommand(opts) {
|
|
|
811
811
|
samplesRemoved: stored.samples.removed,
|
|
812
812
|
dryRun: isDryRun,
|
|
813
813
|
byBot,
|
|
814
|
-
unrecognized: stored.unrecognized
|
|
814
|
+
unrecognized: stored.unrecognized,
|
|
815
|
+
agentHits: stored.agentHits,
|
|
816
|
+
agentRequests: stored.agentRequests,
|
|
817
|
+
journeys: stored.journeys,
|
|
818
|
+
journeyMerges: stored.journeyMerges
|
|
815
819
|
}, isJson);
|
|
816
820
|
}
|
|
817
821
|
function emitTrafficClassificationReport(result, isJson) {
|
|
@@ -827,6 +831,10 @@ Traffic classification ${result.dryRun ? "preview" : "recovery"} complete.`);
|
|
|
827
831
|
console.log(` Unknown before: ${result.unknownBefore}`);
|
|
828
832
|
console.log(` Unknown after: ${result.unknownAfter}`);
|
|
829
833
|
console.log(` Unrecognized rows: ${result.unrecognized.examined} examined, ${result.unrecognized.moved} moved to a bot (${result.unrecognized.movedHits} hits), ${result.unrecognized.renamed} renamed, ${result.unrecognized.removed} removed`);
|
|
834
|
+
console.log(` Fake agent hits: ${result.agentHits.moved} hourly rows moved to likely fake (${result.agentHits.movedHits} hits)`);
|
|
835
|
+
console.log(` Agent requests: ${result.agentRequests.removed} removed (${result.agentRequests.probes} asked for a scanner path)`);
|
|
836
|
+
console.log(` Journeys: ${result.journeys.visitorsRemoved} visitors and ${result.journeys.visitsRemoved} visits removed, ${result.journeys.visitsRelanded} visits now start at a different page`);
|
|
837
|
+
console.log(` Split visitors: ${result.journeyMerges.visitorsMerged} joined to the same person's first visitor, seen from another IP (${result.journeyMerges.visitsJoined} visits merged)`);
|
|
830
838
|
if (Object.keys(result.byBot).length > 0) {
|
|
831
839
|
console.log(` By bot:`);
|
|
832
840
|
const sorted = Object.entries(result.byBot).sort(([, a], [, b]) => b - a);
|