@canonry/canonry 7.71.0 → 7.72.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 +1 -1
- package/assets/assets/{AgentSetupPage-DexQKsfX.js → AgentSetupPage-kkWYCvUB.js} +1 -1
- package/assets/assets/{AuditHistoryPanel-C0tKUYig.js → AuditHistoryPanel-BS-iFyHX.js} +1 -1
- package/assets/assets/{BacklinksPage-CXKsDXhy.js → BacklinksPage-BW2bEGF4.js} +1 -1
- package/assets/assets/{HistoryPage-D1UkPELF.js → HistoryPage-Dh6o2iVd.js} +1 -1
- package/assets/assets/{MeasurementPropertyPage-CsSUHpB7.js → MeasurementPropertyPage-BsUyf7NF.js} +1 -1
- package/assets/assets/{ProjectPage-DVQora-C.js → ProjectPage-CYBZBlk3.js} +1 -1
- package/assets/assets/{RunsPage-CnPgX-bf.js → RunsPage-D27pEHr4.js} +1 -1
- package/assets/assets/{SettingsPage-DfiH_eyL.js → SettingsPage-CkI60Uw0.js} +1 -1
- package/assets/assets/{SiteHealthSection-BTfTcF_w.js → SiteHealthSection-BKHeLIQL.js} +2 -2
- package/assets/assets/{ToneBadge-aGjnkfBI.js → ToneBadge-CmvL5mFG.js} +1 -1
- package/assets/assets/{TrafficPage-DIa6lxo2.js → TrafficPage-x01Zc1a-.js} +1 -1
- package/assets/assets/{TrafficSourceDetailPage-BTFJ4JkC.js → TrafficSourceDetailPage-DE-NyNGz.js} +1 -1
- package/assets/assets/{account-context-RobEwj-E.js → account-context-BwV6ox8O.js} +1 -1
- package/assets/assets/{card-BLjXAqaV.js → card-DhkoBNyY.js} +1 -1
- package/assets/assets/{extract-error-message-BnVETQ_r.js → extract-error-message-dNDtiSBo.js} +1 -1
- package/assets/assets/{format-helpers-2INiLwsz.js → format-helpers-Bt4tx-f3.js} +1 -1
- package/assets/assets/{index-zdoJudA4.js → index-DtKWmlCj.js} +4 -4
- package/assets/assets/{query-client-BMplcUQL.js → query-client-D-zMw63p.js} +1 -1
- package/assets/assets/{react-query-BYjj2p2M.js → react-query-EdiRRB2q.js} +1 -1
- package/assets/assets/{react-sigma_core.esm.min-CerNhJzW.js → react-sigma_core.esm.min-CmaI5ZWC.js} +1 -1
- package/assets/assets/{service-DM_6LxOl.js → service-C_Ai7oQC.js} +1 -1
- package/assets/index.html +7 -7
- package/dist/{ads-P75E4E3Q.js → ads-FFUUMS4J.js} +3 -3
- package/dist/{agent-WKTCTJL7.js → agent-LCD2VG7C.js} +7 -7
- package/dist/{agent-ask-CI4I5UER.js → agent-ask-OBHTCYFR.js} +3 -3
- package/dist/{agent-conversations-2LXN6PC5.js → agent-conversations-VMZ4NFIX.js} +3 -3
- package/dist/{agent-memory-STJUYUEI.js → agent-memory-UPFJFNWC.js} +3 -3
- package/dist/{agent-providers-HRQCKR57.js → agent-providers-4GOWLBZK.js} +3 -3
- package/dist/{agent-transcript-SMNVT5UA.js → agent-transcript-RGXIVZUP.js} +3 -3
- package/dist/{analytics-GZRA5LS4.js → analytics-FBK4XV5P.js} +3 -3
- package/dist/{apply-QXMZGXAY.js → apply-Y2DVE3YB.js} +3 -3
- package/dist/{backfill-3VVYI6XX.js → backfill-ENGKBFKH.js} +9 -9
- package/dist/{backlinks-VUTZFYJY.js → backlinks-YWHFC7DZ.js} +3 -3
- package/dist/{bing-DKYPVXU4.js → bing-7BP3DWPK.js} +3 -3
- package/dist/{bootstrap-3CMHZS6G.js → bootstrap-Z7QSKVPL.js} +10 -10
- package/dist/{cdp-XP4RGCA6.js → cdp-OL6RENO3.js} +7 -7
- package/dist/{chunk-Z6BDB4KS.js → chunk-2PC54WLE.js} +4 -4
- package/dist/{chunk-SNCRERSZ.js → chunk-3AG3LPZX.js} +1 -1
- package/dist/{chunk-JCECURGF.js → chunk-4LTL5RNY.js} +4 -4
- package/dist/{chunk-ALXQPMYR.js → chunk-6MYHGP46.js} +1 -1
- package/dist/{chunk-C3ZH2HLV.js → chunk-7OJQWLDI.js} +5 -5
- package/dist/{chunk-T6IV35KG.js → chunk-ATT3ZCSS.js} +2 -2
- package/dist/{chunk-U6EUBP4B.js → chunk-BADJCT6U.js} +1 -1
- package/dist/{chunk-AAPMP2T3.js → chunk-BKIFKB7E.js} +8 -8
- package/dist/{chunk-JB4NDUWJ.js → chunk-BZZDFIY2.js} +1 -1
- package/dist/{chunk-ETMB45WP.js → chunk-DRGCVTYH.js} +1 -1
- package/dist/{chunk-WE3SK5GQ.js → chunk-GA2EHZTI.js} +4 -4
- package/dist/{chunk-VLFPI3T3.js → chunk-H4HNXCDF.js} +2 -2
- package/dist/{chunk-OOXR7SZ5.js → chunk-H6IQ4YCJ.js} +4 -4
- package/dist/{chunk-ILLWCY2P.js → chunk-IV6VZ63E.js} +3 -3
- package/dist/{chunk-FNVUPIMW.js → chunk-IZMT4WLZ.js} +2 -2
- package/dist/{chunk-WHH7HWN7.js → chunk-J523Y7X2.js} +1 -1
- package/dist/{chunk-3NOFNFGV.js → chunk-JE5QURTR.js} +1 -1
- package/dist/{chunk-WNBN4FYE.js → chunk-JEBY6MS6.js} +1 -1
- package/dist/{chunk-K4S2T6C5.js → chunk-JO73L677.js} +2 -2
- package/dist/{chunk-JEC5Z22M.js → chunk-L6WMECR5.js} +5 -5
- package/dist/{chunk-DEMNY4YE.js → chunk-MJYO6UK2.js} +2 -2
- package/dist/{chunk-IX7AKQBJ.js → chunk-NZZWJCKS.js} +3 -3
- package/dist/{chunk-EDQ4V4PJ.js → chunk-O7WOCTBD.js} +13 -1
- package/dist/{chunk-NPHBHVAY.js → chunk-PPM6Z7CM.js} +1 -1
- package/dist/{chunk-AVNEHYTZ.js → chunk-Q25JQANW.js} +1 -1
- package/dist/{chunk-2G3J62KV.js → chunk-QDN3FL2A.js} +1 -1
- package/dist/{chunk-JHCIMIB5.js → chunk-TEDY3MHN.js} +3 -3
- package/dist/{chunk-DP5V4C3I.js → chunk-TOX6HAQJ.js} +3 -3
- package/dist/{chunk-ZCIC3DLS.js → chunk-UWBJWKDQ.js} +2 -2
- package/dist/{chunk-XSRKTGRG.js → chunk-VH2KHJGT.js} +38 -21
- package/dist/{chunk-SZSJALQM.js → chunk-VJFQNFOR.js} +12 -6
- package/dist/{chunk-QREFWO3Q.js → chunk-XR6ZVMYK.js} +1 -1
- package/dist/{chunk-A3NSYJJL.js → chunk-YXAKL5HM.js} +9 -1
- package/dist/{chunk-KRDMSGNZ.js → chunk-ZG4KG53J.js} +334 -334
- package/dist/{citations-X24SQ4ZU.js → citations-RVSC67GE.js} +3 -3
- package/dist/{cli-catalog-RYUJEUAY.js → cli-catalog-NEZE5QU5.js} +3 -3
- package/dist/{cli-commands-DFTOVHCU.js → cli-commands-5YNRJIN6.js} +7 -7
- package/dist/cli.js +13 -13
- package/dist/{competitor-4GIR3D4Q.js → competitor-BX3M3OYS.js} +3 -3
- package/dist/{content-FPMODFJ4.js → content-PKJMVMHJ.js} +3 -3
- package/dist/{dashboard-IJCLC5MW.js → dashboard-FI5KKIP4.js} +6 -6
- package/dist/{demo-52GRHFQH.js → demo-DQSDWOTF.js} +1 -1
- package/dist/{demo-server-QZPEIXU2.js → demo-server-32RKOBFE.js} +11 -11
- package/dist/{discover-Y7I3V75V.js → discover-JDP44ZHX.js} +3 -3
- package/dist/{discover-eval-TS67TA2C.js → discover-eval-6ORCVYYR.js} +3 -3
- package/dist/{doctor-E3OPJGNR.js → doctor-TVZRMBSS.js} +3 -3
- package/dist/{evidence-HBPR3QYE.js → evidence-FNIAFBBG.js} +3 -3
- package/dist/{export-cmd-AXSRXCD5.js → export-cmd-HQNF2SSD.js} +3 -3
- package/dist/{ga-JXHGIEMK.js → ga-PIO5OXMK.js} +3 -3
- package/dist/{gbp-4M54KRXG.js → gbp-3R5FME43.js} +3 -3
- package/dist/{google-TBZLFQTN.js → google-BYZREX2O.js} +4 -4
- package/dist/{google-marketing-EFUITED7.js → google-marketing-SPQ2GW6X.js} +1 -1
- package/dist/{health-cmd-5SCHBHXS.js → health-cmd-HH5RYMSV.js} +3 -3
- package/dist/{history-BLOGMFLZ.js → history-Q35NLLMJ.js} +3 -3
- package/dist/index.d.ts +23 -6
- package/dist/index.js +24 -24
- package/dist/{init-2WCCRDYU.js → init-O6PEZ2RT.js} +11 -11
- package/dist/{insights-AUTLWRQS.js → insights-SH73B4PD.js} +3 -3
- package/dist/intelligence-service-V2VS43H4.js +15 -0
- package/dist/{journeys-7Y3HE5AX.js → journeys-SIV7HPW7.js} +3 -3
- package/dist/{keys-3T65JGMW.js → keys-O656YWSW.js} +3 -3
- package/dist/{keyword-2MQEXEYJ.js → keyword-FZ2N4EW7.js} +3 -3
- package/dist/{logs-4AWZCX2X.js → logs-2NPN7HBI.js} +3 -3
- package/dist/{mcp-RCMC554F.js → mcp-RHQY3DV6.js} +2 -2
- package/dist/mcp.js +9 -9
- package/dist/{measurement-plan-HFPXGBVZ.js → measurement-plan-JQKVSJRL.js} +5 -5
- package/dist/{notify-GEUMV4QL.js → notify-VTAYBHC6.js} +3 -3
- package/dist/{organic-evidence-TAH2R2U4.js → organic-evidence-HPXXEPOW.js} +3 -3
- package/dist/{overview-WBZW5QMX.js → overview-FSBNDYZJ.js} +4 -4
- package/dist/{project-52XSBNDM.js → project-MAPPXURS.js} +3 -3
- package/dist/{query-7DHBS2QS.js → query-R6DLPIPJ.js} +3 -3
- package/dist/{research-VDLJDU72.js → research-FXKOEUQB.js} +3 -3
- package/dist/{results-export-4XMDISAJ.js → results-export-X2PUM63S.js} +3 -3
- package/dist/{run-NQ664S64.js → run-6ENTG4IO.js} +4 -4
- package/dist/{schedule-CFG2I3BJ.js → schedule-DMMVRT7P.js} +3 -3
- package/dist/{search-Q5HSLPLD.js → search-FHI6APT7.js} +3 -3
- package/dist/{serve-4X3LDV6K.js → serve-KS6ABZHU.js} +25 -25
- package/dist/{session-3JP36MHE.js → session-Q623G5DT.js} +12 -12
- package/dist/{settings-Y7RLRCLF.js → settings-FMB4QED4.js} +3 -3
- package/dist/{skills-ZVV7HCF5.js → skills-HBIMHSOI.js} +2 -2
- package/dist/{snapshot-UAWGXBKI.js → snapshot-RBA2EL7R.js} +3 -3
- package/dist/{src-6ZMVHPAY.js → src-BXXGJOQB.js} +2 -2
- package/dist/{status-A2FZZJ4M.js → status-ATFDFAVG.js} +4 -4
- package/dist/{technical-aeo-HXGF72PP.js → technical-aeo-JWQTGCTB.js} +6 -4
- package/dist/{telemetry-7SHJAUQD.js → telemetry-6QFGJL2I.js} +4 -4
- package/dist/{tools-3HY3R5J5.js → tools-GNTPFDAF.js} +11 -11
- package/dist/{traffic-6LPWSVRR.js → traffic-5R7M4CK5.js} +5 -5
- package/dist/{users-UHABRTME.js → users-24TIUYJY.js} +3 -3
- package/dist/{visibility-stats-Z5D6ITSA.js → visibility-stats-YLQPPBJJ.js} +3 -3
- package/dist/{wordpress-HEIQZGMP.js → wordpress-7VDPHMUZ.js} +3 -3
- package/package.json +2 -2
- package/dist/intelligence-service-XDGWLXW4.js +0 -15
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
answerServiceAdapters,
|
|
3
3
|
answerServiceDescriptors
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-XR6ZVMYK.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-
|
|
30
|
+
} from "./chunk-7OJQWLDI.js";
|
|
31
31
|
import {
|
|
32
32
|
AeroToolProfiles,
|
|
33
33
|
AeroToolScopes,
|
|
34
34
|
buildAeroStateTools,
|
|
35
35
|
isAeroToolProfile,
|
|
36
36
|
truncateToolResult
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-H6IQ4YCJ.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-
|
|
56
|
+
} from "./chunk-BZZDFIY2.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-
|
|
67
|
+
} from "./chunk-JO73L677.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-
|
|
79
|
+
} from "./chunk-4LTL5RNY.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-
|
|
87
|
+
} from "./chunk-6MYHGP46.js";
|
|
88
88
|
import {
|
|
89
89
|
checkLatestVersionForServer,
|
|
90
90
|
getOrCreateAnonymousId,
|
|
@@ -95,17 +95,17 @@ import {
|
|
|
95
95
|
recordDashboardEvent,
|
|
96
96
|
setTelemetryPreference,
|
|
97
97
|
trackEvent
|
|
98
|
-
} from "./chunk-
|
|
98
|
+
} from "./chunk-MJYO6UK2.js";
|
|
99
99
|
import {
|
|
100
100
|
createCanonryMcpServer
|
|
101
|
-
} from "./chunk-
|
|
101
|
+
} from "./chunk-IV6VZ63E.js";
|
|
102
102
|
import {
|
|
103
103
|
CANONRY_MCP_TIERS,
|
|
104
104
|
CANONRY_MCP_TOOLKIT_NAMES
|
|
105
105
|
} from "./chunk-NDTU7FGL.js";
|
|
106
106
|
import {
|
|
107
107
|
ApiClient
|
|
108
|
-
} from "./chunk-
|
|
108
|
+
} from "./chunk-ATT3ZCSS.js";
|
|
109
109
|
import {
|
|
110
110
|
AGENT_PROVIDERS,
|
|
111
111
|
adapterSupportsBatch,
|
|
@@ -136,21 +136,21 @@ import {
|
|
|
136
136
|
saveConfigPatch,
|
|
137
137
|
sentimentInstallReadiness,
|
|
138
138
|
updateSharedProviderExecutionGate
|
|
139
|
-
} from "./chunk-
|
|
139
|
+
} from "./chunk-JE5QURTR.js";
|
|
140
140
|
import {
|
|
141
141
|
getBundledSkillSnapshots
|
|
142
|
-
} from "./chunk-
|
|
142
|
+
} from "./chunk-PPM6Z7CM.js";
|
|
143
143
|
import {
|
|
144
144
|
computeFactorAverages,
|
|
145
145
|
deleteSiteCrawlGraphLayout,
|
|
146
146
|
persistSiteCrawlGraphLayout,
|
|
147
147
|
prepareSiteCrawlGraphLayout,
|
|
148
148
|
recordedSharePct
|
|
149
|
-
} from "./chunk-
|
|
149
|
+
} from "./chunk-IZMT4WLZ.js";
|
|
150
150
|
import {
|
|
151
151
|
CanonryMcpToolNames,
|
|
152
152
|
canonryMcpTools
|
|
153
|
-
} from "./chunk-
|
|
153
|
+
} from "./chunk-GA2EHZTI.js";
|
|
154
154
|
import {
|
|
155
155
|
PACKAGE_VERSION
|
|
156
156
|
} from "./chunk-AOJU5LKX.js";
|
|
@@ -162,11 +162,11 @@ import {
|
|
|
162
162
|
addLogListener,
|
|
163
163
|
createFastifyLogger,
|
|
164
164
|
createLogger
|
|
165
|
-
} from "./chunk-
|
|
165
|
+
} from "./chunk-L6WMECR5.js";
|
|
166
166
|
import {
|
|
167
167
|
computeCitedCompetitorDomains,
|
|
168
168
|
determineCitationState
|
|
169
|
-
} from "./chunk-
|
|
169
|
+
} from "./chunk-DRGCVTYH.js";
|
|
170
170
|
import {
|
|
171
171
|
BingApiError,
|
|
172
172
|
CC_CACHE_DIR,
|
|
@@ -286,7 +286,7 @@ import {
|
|
|
286
286
|
webhookResponseReason,
|
|
287
287
|
webhookTargetRefusalReason,
|
|
288
288
|
writeAuditLog
|
|
289
|
-
} from "./chunk-
|
|
289
|
+
} from "./chunk-VJFQNFOR.js";
|
|
290
290
|
import {
|
|
291
291
|
OperationalLogStore,
|
|
292
292
|
SentimentIdempotencyConflict,
|
|
@@ -372,7 +372,7 @@ import {
|
|
|
372
372
|
siteLivenessState,
|
|
373
373
|
trafficSources,
|
|
374
374
|
usageCounters
|
|
375
|
-
} from "./chunk-
|
|
375
|
+
} from "./chunk-O7WOCTBD.js";
|
|
376
376
|
import {
|
|
377
377
|
AGENT_MEMORY_VALUE_MAX_BYTES,
|
|
378
378
|
AI_ENGINE_DOMAINS,
|
|
@@ -624,7 +624,7 @@ import {
|
|
|
624
624
|
winnabilityClassLabel,
|
|
625
625
|
withRetry,
|
|
626
626
|
withSkippedProviders
|
|
627
|
-
} from "./chunk-
|
|
627
|
+
} from "./chunk-YXAKL5HM.js";
|
|
628
628
|
|
|
629
629
|
// src/google-marketing-runtime.ts
|
|
630
630
|
import crypto2 from "crypto";
|
|
@@ -5807,7 +5807,7 @@ function nonBlank(value) {
|
|
|
5807
5807
|
return trimmed ? trimmed : void 0;
|
|
5808
5808
|
}
|
|
5809
5809
|
function resolveBuildCommit(env = process.env) {
|
|
5810
|
-
const embedded = true ? "
|
|
5810
|
+
const embedded = true ? "5316fa88fb0c94357b949d9442ad4ce1b8307880" : void 0;
|
|
5811
5811
|
return nonBlank(embedded) ?? nonBlank(env.CANONRY_COMMIT);
|
|
5812
5812
|
}
|
|
5813
5813
|
function resolveInstanceIdentity(env = process.env) {
|
|
@@ -11884,6 +11884,7 @@ var log14 = createLogger("SiteAudit");
|
|
|
11884
11884
|
var SiteAuditCancelledError = class extends Error {
|
|
11885
11885
|
name = "SiteAuditCancelledError";
|
|
11886
11886
|
};
|
|
11887
|
+
var SITE_AUDIT_SKIP_URL_VERSIONS_AFTER = 3;
|
|
11887
11888
|
var NON_PAGE_MEDIA_EXTENSIONS = /\.(?:jpe?g|png|gif|webp|avif|bmp|ico|tiff?|svg|mp4|webm|mov|avi|mp3|wav|ogg|woff2?|ttf|otf|eot)(?:$|\?)/i;
|
|
11888
11889
|
var NON_PAGE_MEDIA_CONTENT_TYPE = /^(?:image|video|audio|font)\//i;
|
|
11889
11890
|
function isNonPageMedia(page) {
|
|
@@ -12317,6 +12318,8 @@ async function executeSiteAudit(db, runId, projectId, opts = {}) {
|
|
|
12317
12318
|
pagesFetched: progress.pagesFetched,
|
|
12318
12319
|
pagesEligible: event.type === "summary" ? observedPages.size === 0 ? 0 : [...observedPages.values()].filter(isInventoryEligible).length : sql6`${siteCrawlAttempts.pagesEligible}`,
|
|
12319
12320
|
pagesErrored: event.type === "summary" ? observedErrorCount(observedPages.values()) : sql6`${siteCrawlAttempts.pagesErrored}`,
|
|
12321
|
+
// Only the summary knows how many URL versions the crawl left unfetched.
|
|
12322
|
+
urlVersionsSkipped: event.type === "summary" ? event.summary.urlVersions?.skipped ?? 0 : sql6`${siteCrawlAttempts.urlVersionsSkipped}`,
|
|
12320
12323
|
edgesDiscovered: progress.edgesObserved,
|
|
12321
12324
|
updatedAt: now
|
|
12322
12325
|
}).where(eq18(siteCrawlAttempts.id, attemptId)).run();
|
|
@@ -12361,6 +12364,7 @@ async function executeSiteAudit(db, runId, projectId, opts = {}) {
|
|
|
12361
12364
|
checkDeadLinks: opts.checkDeadLinks ?? false,
|
|
12362
12365
|
includeGeo: opts.includeGeo ?? false,
|
|
12363
12366
|
includeAgentSkills: opts.includeAgentSkills ?? true,
|
|
12367
|
+
skipUrlVersionsAfter: SITE_AUDIT_SKIP_URL_VERSIONS_AFTER,
|
|
12364
12368
|
signal: opts.signal,
|
|
12365
12369
|
onEvent: persistEvent
|
|
12366
12370
|
});
|
|
@@ -12560,7 +12564,20 @@ async function executeSiteAudit(db, runId, projectId, opts = {}) {
|
|
|
12560
12564
|
if (current?.status === "cancelled") throw new SiteAuditCancelledError(`Site audit cancelled before publication: ${runId}`);
|
|
12561
12565
|
throw new Error(`Site audit run was no longer running before publication: ${runId}`);
|
|
12562
12566
|
}
|
|
12563
|
-
log14.info("completed", {
|
|
12567
|
+
log14.info("completed", {
|
|
12568
|
+
runId,
|
|
12569
|
+
projectId,
|
|
12570
|
+
status: terminalStatus,
|
|
12571
|
+
complete: crawlSummary.complete,
|
|
12572
|
+
pages: crawlSummary.pagesObserved,
|
|
12573
|
+
urlVersionsSkipped: crawlSummary.urlVersions?.skipped ?? 0,
|
|
12574
|
+
urlVersionPatterns: (crawlSummary.urlVersions?.patterns ?? []).map((pattern) => ({
|
|
12575
|
+
section: pattern.section,
|
|
12576
|
+
parameters: pattern.parameters,
|
|
12577
|
+
copies: pattern.copies,
|
|
12578
|
+
skipped: pattern.skipped
|
|
12579
|
+
}))
|
|
12580
|
+
});
|
|
12564
12581
|
trackSiteAuditOutcome(db, {
|
|
12565
12582
|
runId,
|
|
12566
12583
|
projectId,
|
|
@@ -9,14 +9,14 @@ import {
|
|
|
9
9
|
normalizeCloudflareWorkerEvent,
|
|
10
10
|
sessionizeJourneyRequests,
|
|
11
11
|
verifyRequestSignature
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-JEBY6MS6.js";
|
|
13
13
|
import {
|
|
14
14
|
currentOutcomeAttribution,
|
|
15
15
|
getRequestContext,
|
|
16
16
|
registerRequestContext,
|
|
17
17
|
requestAuditIdentity,
|
|
18
18
|
sanitizeRequestContext
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-BADJCT6U.js";
|
|
20
20
|
import {
|
|
21
21
|
SentimentIdempotencyConflict,
|
|
22
22
|
SentimentRepository,
|
|
@@ -156,7 +156,7 @@ import {
|
|
|
156
156
|
userSessions,
|
|
157
157
|
users,
|
|
158
158
|
writeNegativeReviewMaxStars
|
|
159
|
-
} from "./chunk-
|
|
159
|
+
} from "./chunk-O7WOCTBD.js";
|
|
160
160
|
import {
|
|
161
161
|
ADS_ACTIVATE_SCOPE,
|
|
162
162
|
ADS_ACTIVATION_ABSOLUTE_MAX_ENTITIES,
|
|
@@ -1194,7 +1194,7 @@ import {
|
|
|
1194
1194
|
wordpressSchemaDeployResultDtoSchema,
|
|
1195
1195
|
wordpressSchemaStatusResultDtoSchema,
|
|
1196
1196
|
wordpressStatusDtoSchema
|
|
1197
|
-
} from "./chunk-
|
|
1197
|
+
} from "./chunk-YXAKL5HM.js";
|
|
1198
1198
|
|
|
1199
1199
|
// ../api-routes/src/user-session.ts
|
|
1200
1200
|
import crypto2 from "crypto";
|
|
@@ -42312,7 +42312,7 @@ var routeCatalog = [
|
|
|
42312
42312
|
{ name: "nodeKey", in: "query", description: "Return only the page with this node key. Combined with a filter it answers whether that exact page is in the filtered set, without paging through the list.", schema: stringSchema },
|
|
42313
42313
|
{ name: "healthState", in: "query", description: "Filter by the derived Site Health state shared with the dashboard and agents. Unlike `indexabilityState` this folds fetch state, canonical identity, and the crawler reasons into one decision. `hidden` means the SITE told answer engines not to index the page (noindex, canonical-away, robots.txt); a non-HTML file is `resource` and a redirect is `redirect`, because neither is suppressed. Values: `eligible`, `hidden`, `resource`, `redirect`, `failed`, `unchecked`.", schema: { type: "string", enum: ["eligible", "hidden", "resource", "redirect", "failed", "unchecked"] } },
|
|
42314
42314
|
{ name: "auditState", in: "query", description: "Filter by audit state. A URL version has `url-version`: it was fetched and classified but not scored.", schema: stringSchema },
|
|
42315
|
-
{ name: "urlVersions", in: "query", description: "URL versions are parameter addresses (filters, views, cache settings) whose canonical names the same path, so the site marks them as copies of that page. The audit does not score them or count them in fixes, and `inventorySummary.urlVersions` counts them. `include` (default) keeps every crawled address, `exclude` lists pages only, as the dashboard does, and `only` lists the URL versions, each with `urlVersionOf`. Scans made before URL versions were set aside have none.", schema: { type: "string", enum: ["include", "exclude", "only"] } },
|
|
42315
|
+
{ name: "urlVersions", in: "query", description: "URL versions are parameter addresses (filters, views, cache settings) whose canonical names the same path, so the site marks them as copies of that page. The audit does not score them or count them in fixes, and `inventorySummary.urlVersions` counts them. `include` (default) keeps every crawled address, `exclude` lists pages only, as the dashboard does, and `only` lists the URL versions, each with `urlVersionOf`. Once a few addresses with the same parameter pattern prove to be copies, the crawl stops fetching that pattern: those have no rows and `inventorySummary.urlVersionsNotFetched` counts them. Scans made before URL versions were set aside have none.", schema: { type: "string", enum: ["include", "exclude", "only"] } },
|
|
42316
42316
|
{ name: "sort", in: "query", description: "Sort order. Defaults to `url`.", schema: { type: "string", enum: ["url", "path", "score-asc", "score-desc"] } },
|
|
42317
42317
|
crawlCursorParameter,
|
|
42318
42318
|
crawlLimitParameter
|
|
@@ -72580,13 +72580,19 @@ async function technicalAeoRoutes(app, opts) {
|
|
|
72580
72580
|
const total = groups.reduce((sum, group) => sum + group.pages, 0);
|
|
72581
72581
|
const eligible = groups.reduce((sum, group) => sum + (group.inventoryEligible ? group.pages : 0), 0);
|
|
72582
72582
|
const urlVersions = app.db.select({ value: count8() }).from(siteCrawlPages).where(and83(inScope, isNotNull10(siteCrawlPages.urlVersionOf))).get()?.value ?? 0;
|
|
72583
|
+
const urlVersionsNotFetched = app.db.select({ value: siteCrawlAttempts.urlVersionsSkipped }).from(siteCrawlAttempts).where(and83(
|
|
72584
|
+
eq100(siteCrawlAttempts.projectId, scope.projectId),
|
|
72585
|
+
eq100(siteCrawlAttempts.runId, scope.runId),
|
|
72586
|
+
eq100(siteCrawlAttempts.id, scope.attemptId)
|
|
72587
|
+
)).get()?.value ?? 0;
|
|
72583
72588
|
return {
|
|
72584
72589
|
scope: "selected-snapshot",
|
|
72585
72590
|
total,
|
|
72586
72591
|
eligible,
|
|
72587
72592
|
excluded: total - eligible,
|
|
72588
72593
|
excludedReasons: reasonCounts(groups.filter((group) => !group.inventoryEligible)),
|
|
72589
|
-
urlVersions
|
|
72594
|
+
urlVersions,
|
|
72595
|
+
urlVersionsNotFetched
|
|
72590
72596
|
};
|
|
72591
72597
|
};
|
|
72592
72598
|
const completenessOf = (target) => ({
|
|
@@ -7911,7 +7911,15 @@ var siteCrawlInventorySummarySchema = z20.object({
|
|
|
7911
7911
|
* and not counted in fixes. A subset of `excluded`; 0 for a scan made before
|
|
7912
7912
|
* the audit set them aside, which scored every address.
|
|
7913
7913
|
*/
|
|
7914
|
-
urlVersions: z20.number().int().nonnegative().default(0)
|
|
7914
|
+
urlVersions: z20.number().int().nonnegative().default(0),
|
|
7915
|
+
/**
|
|
7916
|
+
* URL versions the crawl did not fetch at all: once a few addresses with
|
|
7917
|
+
* the same parameter pattern proved to be copies, it skipped the rest. They
|
|
7918
|
+
* have no page rows, so they are outside `total` and `urlVersions`; the URL
|
|
7919
|
+
* versions a scan found are `urlVersions + urlVersionsNotFetched`. 0 for a
|
|
7920
|
+
* scan that fetched every address.
|
|
7921
|
+
*/
|
|
7922
|
+
urlVersionsNotFetched: z20.number().int().nonnegative().default(0)
|
|
7915
7923
|
});
|
|
7916
7924
|
var siteCrawlAvailableScanDatesSchema = z20.object({
|
|
7917
7925
|
/** Most recent distinct visible crawl dates, newest first. Fewer rows than totalDates means the list is bounded. */
|