@canonry/canonry 7.90.2 → 7.91.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.
- package/README.md +182 -125
- package/assets/agent-workspace/skills/canonry/references/canonry-cli.md +4 -0
- package/assets/assets/{AgentSetupPage-FfxjZWI8.js → AgentSetupPage-DpBlChWi.js} +1 -1
- package/assets/assets/{AuditHistoryPanel-YrEggsyA.js → AuditHistoryPanel-DAotR_zD.js} +1 -1
- package/assets/assets/{BacklinksPage-vXUxxplH.js → BacklinksPage-CFoi9mrt.js} +1 -1
- package/assets/assets/{HistoryPage-VJ_JQ7R3.js → HistoryPage-DIGmY4wi.js} +1 -1
- package/assets/assets/{MeasurementPropertyPage-DVm7CHU8.js → MeasurementPropertyPage-C6o9U2R6.js} +1 -1
- package/assets/assets/{ProjectPage-D6mHRRSs.js → ProjectPage-00Vsnxv4.js} +1 -1
- package/assets/assets/{RunsPage-DwtYzU9w.js → RunsPage-ChSbIrF9.js} +1 -1
- package/assets/assets/{SettingsPage-DsmgLFb7.js → SettingsPage-CIrzXeP8.js} +1 -1
- package/assets/assets/{SiteHealthSection-CFu6JBTb.js → SiteHealthSection-HZXdeAOx.js} +2 -2
- package/assets/assets/ToneBadge-ht0n6RUH.js +60 -0
- package/assets/assets/{TrafficPage-DGPSaWTl.js → TrafficPage-ZYsFSEuq.js} +1 -1
- package/assets/assets/{TrafficSourceDetailPage-C79eQilP.js → TrafficSourceDetailPage-D5uJZpZ4.js} +1 -1
- package/assets/assets/{account-context-GstYbqpX.js → account-context-DMLbDVNZ.js} +1 -1
- package/assets/assets/{agent-trust-copy-Ca4ys8J2.js → agent-trust-copy-DbpAXPxc.js} +1 -1
- package/assets/assets/{card-CgdGerYK.js → card-Be_eN_-Q.js} +1 -1
- package/assets/assets/{format-helpers-ByAY4dv0.js → format-helpers-IKCsn-Iw.js} +1 -1
- package/assets/assets/{index-D1ox2bx5.js → index-3jdPlyTf.js} +4 -4
- package/assets/assets/{query-client-DjRrRIsq.js → query-client-CoKNm49W.js} +1 -1
- package/assets/assets/{react-query-B8JD_K7g.js → react-query-DIdeX4Dn.js} +1 -1
- package/assets/assets/{react-sigma_core.esm.min-BGXzc_-G.js → react-sigma_core.esm.min-De3OcL3T.js} +1 -1
- package/assets/assets/{server-traffic-Bt9bexaP.js → server-traffic-DvN44H1n.js} +1 -1
- package/assets/assets/{service-SgtD5EOS.js → service-RpR2yqfP.js} +1 -1
- package/assets/index.html +7 -7
- package/dist/{ads-6BAITIBY.js → ads-QS4QEBHX.js} +3 -3
- package/dist/{agent-BE3D65U4.js → agent-TTGLGLPD.js} +7 -7
- package/dist/{agent-ask-TT6BAV2T.js → agent-ask-EBYJSSGR.js} +3 -3
- package/dist/{agent-conversations-GJDAWU36.js → agent-conversations-LPBMYN4F.js} +3 -3
- package/dist/{agent-journeys-UEL27GNY.js → agent-journeys-EL27YZKQ.js} +3 -3
- package/dist/{agent-memory-PB74OP46.js → agent-memory-YNWTLZGS.js} +3 -3
- package/dist/{agent-providers-5WFMNRRK.js → agent-providers-T7HJEQYM.js} +3 -3
- package/dist/{agent-transcript-IAGB3JXG.js → agent-transcript-EY6KUYYG.js} +3 -3
- package/dist/{analytics-5BVE7KUN.js → analytics-NTO6DGQ2.js} +3 -3
- package/dist/{apply-YJJWQ4JX.js → apply-UGT7DZHG.js} +3 -3
- package/dist/{backfill-6OLGZIEV.js → backfill-KDTC6JEP.js} +10 -10
- package/dist/{backlinks-4JK26OIO.js → backlinks-JRG57JRJ.js} +3 -3
- package/dist/{bing-NZYYPB2M.js → bing-ZV6QDFTJ.js} +3 -3
- package/dist/{bootstrap-6KHK63W3.js → bootstrap-GJHNMV5P.js} +10 -10
- package/dist/{cdp-PTXWVX6T.js → cdp-ZN47QU5O.js} +7 -7
- package/dist/{chunk-N7LRPMWR.js → chunk-2N7BYEZO.js} +2 -2
- package/dist/{chunk-ZV6PMFF4.js → chunk-3HNHOS6O.js} +1 -1
- package/dist/{chunk-HUQDD26S.js → chunk-3MIZP4IB.js} +7 -7
- package/dist/{chunk-SDXMG4VX.js → chunk-42OW42AR.js} +33 -7
- package/dist/{chunk-WYMBWCG5.js → chunk-4FFIIZB5.js} +1 -1
- package/dist/{chunk-AFYKUX2X.js → chunk-56EXMS52.js} +2 -2
- package/dist/{chunk-DZO6CATO.js → chunk-6DP2YPZY.js} +4 -4
- package/dist/{chunk-NKGQCCUS.js → chunk-6PNFPMLD.js} +6 -6
- package/dist/{chunk-7VJJXLRP.js → chunk-7KHSKOV6.js} +3 -3
- package/dist/{chunk-TA4L7U2M.js → chunk-AXWUCOYT.js} +1 -1
- package/dist/{chunk-USHY3SH6.js → chunk-C3BSCGUH.js} +15 -1
- package/dist/{chunk-K34Y6HQZ.js → chunk-DXXHZHPE.js} +390 -362
- package/dist/{chunk-QWNDNZJ3.js → chunk-EOIH5XHT.js} +2 -2
- package/dist/{chunk-DF4B6OGX.js → chunk-FAXYDTV5.js} +4 -4
- package/dist/{chunk-WNDBACO7.js → chunk-IHMODTQ7.js} +4 -4
- package/dist/{chunk-7ASKZHS4.js → chunk-IQ5RKJKQ.js} +1 -1
- package/dist/{chunk-PID3C4B7.js → chunk-L5U7VT4A.js} +1 -1
- package/dist/{chunk-UG7TZJIG.js → chunk-LSIE5MHG.js} +1 -1
- package/dist/{chunk-MGBUQHQZ.js → chunk-M322ZEOQ.js} +4 -4
- package/dist/{chunk-NPX5SL54.js → chunk-NAPFULBT.js} +1 -1
- package/dist/{chunk-YB2GAK32.js → chunk-NL2WM6OB.js} +5 -5
- package/dist/{chunk-2UULABPI.js → chunk-OI6YQMSB.js} +3 -3
- package/dist/{chunk-GKX5F7NX.js → chunk-P4MNYMJJ.js} +1 -1
- package/dist/{chunk-I7DAEE3L.js → chunk-PAXP5KZC.js} +5 -5
- package/dist/{chunk-ETIIPSWL.js → chunk-PQNT2JUO.js} +25 -0
- package/dist/{chunk-LTZNUDSI.js → chunk-QUS7755A.js} +3 -3
- package/dist/{chunk-XCEA5OMI.js → chunk-SYOQULRL.js} +2 -2
- package/dist/{chunk-Q6EZEVXE.js → chunk-UQVUDSAV.js} +1 -1
- package/dist/{chunk-K2B64IEQ.js → chunk-VFQMRUGN.js} +30 -23
- package/dist/{chunk-L2MDMZFT.js → chunk-W6H7WDHW.js} +3 -3
- package/dist/{chunk-LQWMNDZR.js → chunk-WOEGZKXQ.js} +1 -1
- package/dist/{chunk-F6WNKKGG.js → chunk-WTKGSKCS.js} +2 -2
- package/dist/{chunk-QLVTMPFW.js → chunk-YCRSIOIN.js} +2 -2
- package/dist/{chunk-F442MSX2.js → chunk-YFOTI7LJ.js} +2 -2
- package/dist/{chunk-OOVWMWMT.js → chunk-YVY23HNW.js} +1 -1
- package/dist/{citations-WX4VO6ZI.js → citations-6723MJLH.js} +3 -3
- package/dist/{cli-catalog-BTRNR2UP.js → cli-catalog-RVBNEPWA.js} +3 -3
- package/dist/{cli-commands-TJBEUBBX.js → cli-commands-6ZOUHE3V.js} +7 -7
- package/dist/cli.js +13 -13
- package/dist/{competitor-HZRZWCEN.js → competitor-ENYN5RAD.js} +3 -3
- package/dist/{content-NOZDHI3M.js → content-TT3PF4CR.js} +3 -3
- package/dist/{dashboard-TZLWHXP4.js → dashboard-JLCJDU2V.js} +6 -6
- package/dist/{demo-2PYBQD47.js → demo-KMVR3ZWW.js} +1 -1
- package/dist/{demo-server-JEQNGMMV.js → demo-server-QXI7BGMM.js} +12 -12
- package/dist/{discover-A2XFXHOC.js → discover-HATQTTDG.js} +3 -3
- package/dist/{discover-eval-A6SBUYXF.js → discover-eval-64TWPB5Z.js} +3 -3
- package/dist/{doctor-GZACELPF.js → doctor-6C5TXOG3.js} +3 -3
- package/dist/{evidence-RVFMUWIL.js → evidence-K43NRSOT.js} +3 -3
- package/dist/{export-cmd-X2TFZGNJ.js → export-cmd-KU64GUQ5.js} +3 -3
- package/dist/{ga-TOT3V67A.js → ga-KXKLUQBQ.js} +3 -3
- package/dist/{gbp-KP4YZU6S.js → gbp-5CZTROVP.js} +3 -3
- package/dist/{google-GCFSTV5N.js → google-6TNU7SVF.js} +4 -4
- package/dist/{google-marketing-ANS65KQN.js → google-marketing-UCUIJBQG.js} +1 -1
- package/dist/{health-cmd-UKMNLU6D.js → health-cmd-ZFJ7ZOWI.js} +3 -3
- package/dist/{history-TWGYSAZZ.js → history-V664SORR.js} +3 -3
- package/dist/index.d.ts +59 -32
- package/dist/index.js +25 -25
- package/dist/{init-3GSNOIUH.js → init-TAIUP5GV.js} +12 -12
- package/dist/{insights-7IOC7WIR.js → insights-JFW7HBPR.js} +3 -3
- package/dist/intelligence-service-RRKHXZ2N.js +16 -0
- package/dist/{journeys-NWKT45PT.js → journeys-QTZXBKBT.js} +3 -3
- package/dist/{keys-ZZYZUHUK.js → keys-KGI5S2IE.js} +3 -3
- package/dist/{keyword-F6EIX5KM.js → keyword-XU6Y4XVH.js} +3 -3
- package/dist/{logs-B45FXS6E.js → logs-E2DQXWQQ.js} +3 -3
- package/dist/{mcp-WPNCNWA5.js → mcp-PQE6WFED.js} +4 -4
- package/dist/mcp.js +9 -9
- package/dist/{measurement-plan-QT5HJ3KC.js → measurement-plan-NBGLF7BI.js} +5 -5
- package/dist/{notify-Z3LIF3SO.js → notify-SHEAQNUJ.js} +3 -3
- package/dist/{organic-evidence-R5TM7XUB.js → organic-evidence-LMXCFABG.js} +3 -3
- package/dist/{overview-6TZHJLQN.js → overview-MXEBDUCA.js} +4 -4
- package/dist/{project-VMPVOQ2A.js → project-MWZGTK4S.js} +3 -3
- package/dist/{query-EXSH5QP7.js → query-EZQY45JT.js} +3 -3
- package/dist/{research-6R6BEL4X.js → research-PSPDLEQL.js} +3 -3
- package/dist/{results-export-ZJRL3ECU.js → results-export-7FLSFC7J.js} +3 -3
- package/dist/{run-C4VXAJE3.js → run-MASOXS63.js} +4 -4
- package/dist/{schedule-KC6ETWMO.js → schedule-V32G7TBR.js} +21 -5
- package/dist/{search-SUR6BEQD.js → search-R2S5CAVK.js} +3 -3
- package/dist/{serve-SEHH35PJ.js → serve-PGPQOVGC.js} +26 -26
- package/dist/{session-D42KUKCZ.js → session-MNEWM2CT.js} +13 -13
- package/dist/{settings-LTCG3D5B.js → settings-KBY4766O.js} +3 -3
- package/dist/{sitemaps-YMTZLF5S.js → sitemaps-FLMA6DMY.js} +3 -3
- package/dist/{skills-THMG3L64.js → skills-WAHOLVYH.js} +2 -2
- package/dist/{snapshot-ZEVB3EE4.js → snapshot-VJYM7UX2.js} +3 -3
- package/dist/{src-HPVSTXVF.js → src-XVBKS6UX.js} +2 -2
- package/dist/{status-LPCPTWKO.js → status-YFAUBVEA.js} +4 -4
- package/dist/{technical-aeo-J6LNT45B.js → technical-aeo-656NEU3A.js} +3 -3
- package/dist/{telemetry-BPY34GDV.js → telemetry-CJ7ENZDY.js} +4 -4
- package/dist/{tools-K3G43ESI.js → tools-4STRCC7Q.js} +11 -11
- package/dist/{traffic-BOIFAPAR.js → traffic-NN6ECPRS.js} +5 -5
- package/dist/{trends-A2MDRSQQ.js → trends-HXZVTQ3I.js} +3 -3
- package/dist/{users-VJOQODJK.js → users-PELDCAXQ.js} +3 -3
- package/dist/{visibility-stats-YNMJYASA.js → visibility-stats-W3AELURT.js} +3 -3
- package/dist/{wordpress-BWG6D7VH.js → wordpress-TAVEI2XQ.js} +3 -3
- package/package.json +1 -1
- package/assets/assets/ToneBadge-B3rD6bDF.js +0 -60
- package/dist/intelligence-service-42Q3OVI5.js +0 -16
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
import {
|
|
2
2
|
trackCliConnection
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-YCRSIOIN.js";
|
|
4
4
|
import {
|
|
5
5
|
answerServiceDescriptors
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-AXWUCOYT.js";
|
|
7
7
|
import {
|
|
8
8
|
outcomeFailure
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-6DP2YPZY.js";
|
|
10
10
|
import {
|
|
11
11
|
isLoopbackBindHost
|
|
12
12
|
} from "./chunk-TSENU4GG.js";
|
|
13
13
|
import {
|
|
14
14
|
registeredProviderNames
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-WOEGZKXQ.js";
|
|
16
16
|
import {
|
|
17
17
|
isTelemetryEnabled,
|
|
18
18
|
recordInstallRef
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-56EXMS52.js";
|
|
20
20
|
import {
|
|
21
21
|
createApiClient
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-WTKGSKCS.js";
|
|
23
23
|
import {
|
|
24
24
|
configExists,
|
|
25
25
|
getAnswerServiceEnv,
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
loadConfigRaw,
|
|
31
31
|
saveConfig,
|
|
32
32
|
withBootstrapProviderDefaults
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-YVY23HNW.js";
|
|
34
34
|
import "./chunk-AOJU5LKX.js";
|
|
35
35
|
import {
|
|
36
36
|
CliError,
|
|
@@ -38,17 +38,17 @@ import {
|
|
|
38
38
|
isMachineFormat,
|
|
39
39
|
systemError
|
|
40
40
|
} from "./chunk-HGMYEDAQ.js";
|
|
41
|
-
import "./chunk-
|
|
41
|
+
import "./chunk-3HNHOS6O.js";
|
|
42
42
|
import {
|
|
43
43
|
apiKeys,
|
|
44
44
|
createClient,
|
|
45
45
|
dashboardSessions,
|
|
46
46
|
migrate
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-C3BSCGUH.js";
|
|
48
48
|
import {
|
|
49
49
|
ProviderNames,
|
|
50
50
|
ProviderReloadErrorReasons
|
|
51
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-PQNT2JUO.js";
|
|
52
52
|
import "./chunk-MLKGABMK.js";
|
|
53
53
|
|
|
54
54
|
// src/commands/bootstrap.ts
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import {
|
|
2
2
|
trackCliConnection
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-YCRSIOIN.js";
|
|
4
4
|
import {
|
|
5
5
|
outcomeFailure
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-6DP2YPZY.js";
|
|
7
|
+
import "./chunk-56EXMS52.js";
|
|
8
8
|
import {
|
|
9
9
|
createApiClient
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-WTKGSKCS.js";
|
|
11
11
|
import {
|
|
12
12
|
loadConfig,
|
|
13
13
|
saveConfigPatch
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-YVY23HNW.js";
|
|
15
15
|
import "./chunk-AOJU5LKX.js";
|
|
16
16
|
import {
|
|
17
17
|
CliError,
|
|
18
18
|
isMachineFormat
|
|
19
19
|
} from "./chunk-HGMYEDAQ.js";
|
|
20
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-3HNHOS6O.js";
|
|
21
21
|
import {
|
|
22
22
|
describeError
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-PQNT2JUO.js";
|
|
24
24
|
import "./chunk-MLKGABMK.js";
|
|
25
25
|
|
|
26
26
|
// src/commands/cdp.ts
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
siteCrawlGraphNodes,
|
|
6
6
|
siteCrawlPages,
|
|
7
7
|
siteCrawlSnapshots
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-C3BSCGUH.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-
|
|
18
|
+
} from "./chunk-PQNT2JUO.js";
|
|
19
19
|
|
|
20
20
|
// src/site-audit-factors.ts
|
|
21
21
|
function recordedSharePct(factor) {
|
|
@@ -8,23 +8,23 @@ import {
|
|
|
8
8
|
reparseStoredResult4,
|
|
9
9
|
reparseStoredResult5,
|
|
10
10
|
resolveStoredApiResponse
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-PAXP5KZC.js";
|
|
12
12
|
import {
|
|
13
13
|
loadConfig
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-YVY23HNW.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-P4MNYMJJ.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-42OW42AR.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-C3BSCGUH.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-PQNT2JUO.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-RRKHXZ2N.js");
|
|
433
433
|
const config = loadConfig();
|
|
434
434
|
const db = createClient(config.database);
|
|
435
435
|
migrate(db);
|
|
@@ -15,14 +15,14 @@ import {
|
|
|
15
15
|
normalizeCloudflareWorkerEvent,
|
|
16
16
|
sessionizeJourneyRequests,
|
|
17
17
|
verifyRequestSignature
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-NAPFULBT.js";
|
|
19
19
|
import {
|
|
20
20
|
currentOutcomeAttribution,
|
|
21
21
|
getRequestContext,
|
|
22
22
|
registerRequestContext,
|
|
23
23
|
requestAuditIdentity,
|
|
24
24
|
sanitizeRequestContext
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-3HNHOS6O.js";
|
|
26
26
|
import {
|
|
27
27
|
RawEventSampleEventTypes,
|
|
28
28
|
SentimentIdempotencyConflict,
|
|
@@ -180,7 +180,7 @@ import {
|
|
|
180
180
|
userSessions,
|
|
181
181
|
users,
|
|
182
182
|
writeNegativeReviewMaxStars
|
|
183
|
-
} from "./chunk-
|
|
183
|
+
} from "./chunk-C3BSCGUH.js";
|
|
184
184
|
import {
|
|
185
185
|
ADS_ACTIVATE_SCOPE,
|
|
186
186
|
ADS_ACTIVATION_ABSOLUTE_MAX_ENTITIES,
|
|
@@ -1171,6 +1171,7 @@ import {
|
|
|
1171
1171
|
siteAuditRunProgressSchema,
|
|
1172
1172
|
siteAuditRunRequestSchema,
|
|
1173
1173
|
siteAuditRunResponseSchema,
|
|
1174
|
+
siteAuditScheduleChecks,
|
|
1174
1175
|
siteAuditScoreSchema,
|
|
1175
1176
|
siteAuditTrendResponseSchema,
|
|
1176
1177
|
siteCrawlAuditFactorSchema,
|
|
@@ -1274,7 +1275,7 @@ import {
|
|
|
1274
1275
|
wordpressSchemaDeployResultDtoSchema,
|
|
1275
1276
|
wordpressSchemaStatusResultDtoSchema,
|
|
1276
1277
|
wordpressStatusDtoSchema
|
|
1277
|
-
} from "./chunk-
|
|
1278
|
+
} from "./chunk-PQNT2JUO.js";
|
|
1278
1279
|
|
|
1279
1280
|
// ../api-routes/src/user-session.ts
|
|
1280
1281
|
import crypto2 from "crypto";
|
|
@@ -39464,6 +39465,17 @@ var routeCatalog = [
|
|
|
39464
39465
|
providers: stringArraySchema,
|
|
39465
39466
|
enabled: booleanSchema,
|
|
39466
39467
|
sourceId: stringSchema,
|
|
39468
|
+
siteAudit: {
|
|
39469
|
+
type: "object",
|
|
39470
|
+
nullable: true,
|
|
39471
|
+
additionalProperties: false,
|
|
39472
|
+
description: "kind=site-audit only. What each scheduled scan checks; unset fields take the defaults (checkDeadLinks false, includeGeo false, includeAgentSkills true). Omit to keep the current checks; null resets them to the defaults.",
|
|
39473
|
+
properties: {
|
|
39474
|
+
checkDeadLinks: booleanSchema,
|
|
39475
|
+
includeGeo: booleanSchema,
|
|
39476
|
+
includeAgentSkills: booleanSchema
|
|
39477
|
+
}
|
|
39478
|
+
},
|
|
39467
39479
|
expectedUpdatedAt: {
|
|
39468
39480
|
type: "string",
|
|
39469
39481
|
format: "date-time",
|
|
@@ -39478,7 +39490,7 @@ var routeCatalog = [
|
|
|
39478
39490
|
responses: {
|
|
39479
39491
|
200: jsonResponse("Schedule updated.", "ScheduleDto"),
|
|
39480
39492
|
201: jsonResponse("Schedule created.", "ScheduleDto"),
|
|
39481
|
-
400: errorResponse("Invalid payload (e.g. sourceId missing for kind=traffic-sync,
|
|
39493
|
+
400: errorResponse("Invalid payload (e.g. sourceId missing for kind=traffic-sync, providers set for kind=traffic-sync, or siteAudit set for a kind other than site-audit)."),
|
|
39482
39494
|
409: errorResponse("The schedule changed since the caller loaded it.")
|
|
39483
39495
|
}
|
|
39484
39496
|
},
|
|
@@ -45081,7 +45093,7 @@ async function scheduleRoutes(app, opts) {
|
|
|
45081
45093
|
});
|
|
45082
45094
|
}
|
|
45083
45095
|
const kind = parsedBody.data.kind ?? parseKindParam(request.query?.kind);
|
|
45084
|
-
const { preset, cron, recurrence, timezone, providers, enabled, sourceId, expectedUpdatedAt } = parsedBody.data;
|
|
45096
|
+
const { preset, cron, recurrence, timezone, providers, enabled, sourceId, siteAudit, expectedUpdatedAt } = parsedBody.data;
|
|
45085
45097
|
if (kind === SchedulableRunKinds["traffic-sync"]) {
|
|
45086
45098
|
if (!sourceId) {
|
|
45087
45099
|
throw validationError('"sourceId" is required when kind is "traffic-sync"');
|
|
@@ -45102,6 +45114,9 @@ async function scheduleRoutes(app, opts) {
|
|
|
45102
45114
|
if (kind === SchedulableRunKinds["site-audit"] && providers && providers.length > 0) {
|
|
45103
45115
|
throw validationError('"providers" is not valid for kind "site-audit"');
|
|
45104
45116
|
}
|
|
45117
|
+
if (siteAudit !== void 0 && kind !== SchedulableRunKinds["site-audit"]) {
|
|
45118
|
+
throw validationError('"siteAudit" is only valid when kind is "site-audit"');
|
|
45119
|
+
}
|
|
45105
45120
|
if (kind === SchedulableRunKinds["seo-sync"]) {
|
|
45106
45121
|
if (providers && providers.length > 0) {
|
|
45107
45122
|
throw validationError('"providers" is not valid for kind "seo-sync"');
|
|
@@ -45157,6 +45172,7 @@ async function scheduleRoutes(app, opts) {
|
|
|
45157
45172
|
}
|
|
45158
45173
|
const now = nextScheduleUpdatedAt(existing?.updatedAt);
|
|
45159
45174
|
const scheduleId = existing?.id ?? crypto35.randomUUID();
|
|
45175
|
+
const siteAuditChecks = kind !== SchedulableRunKinds["site-audit"] ? null : siteAudit === void 0 ? existing?.siteAuditChecks ?? null : siteAudit === null ? null : siteAuditScheduleChecks(siteAudit);
|
|
45160
45176
|
const values = {
|
|
45161
45177
|
cronExpr,
|
|
45162
45178
|
recurrence: recurrence ?? null,
|
|
@@ -45165,6 +45181,7 @@ async function scheduleRoutes(app, opts) {
|
|
|
45165
45181
|
timezone,
|
|
45166
45182
|
providers: providers ?? [],
|
|
45167
45183
|
sourceId: sourceId ?? null,
|
|
45184
|
+
siteAuditChecks,
|
|
45168
45185
|
enabled: enabledBool,
|
|
45169
45186
|
enabledAt: scheduleEnabledAt(existing, enabledBool, now),
|
|
45170
45187
|
updatedAt: now
|
|
@@ -45196,7 +45213,9 @@ async function scheduleRoutes(app, opts) {
|
|
|
45196
45213
|
actor: "api",
|
|
45197
45214
|
action: existing ? "schedule.updated" : "schedule.created",
|
|
45198
45215
|
entityType: "schedule",
|
|
45199
|
-
|
|
45216
|
+
// A scan schedule logs the checks it ends up with, so a reset to the
|
|
45217
|
+
// defaults is as visible as turning deep checks on.
|
|
45218
|
+
diff: { kind, cronExpr, preset, recurrence, timezone, providers, sourceId, ...kind === SchedulableRunKinds["site-audit"] ? { siteAudit: siteAuditScheduleChecks(siteAuditChecks) } : {} }
|
|
45200
45219
|
});
|
|
45201
45220
|
return {
|
|
45202
45221
|
existed: existing !== void 0
|
|
@@ -45265,6 +45284,7 @@ function formatSchedule(row) {
|
|
|
45265
45284
|
enabled: row.enabled,
|
|
45266
45285
|
providers: row.providers,
|
|
45267
45286
|
sourceId: row.sourceId,
|
|
45287
|
+
siteAudit: row.kind === SchedulableRunKinds["site-audit"] ? siteAuditScheduleChecks(row.siteAuditChecks) : null,
|
|
45268
45288
|
lastRunAt: row.lastRunAt,
|
|
45269
45289
|
nextRunAt: row.nextRunAt,
|
|
45270
45290
|
createdAt: row.createdAt,
|
|
@@ -75036,6 +75056,7 @@ async function technicalAeoRoutes(app, opts) {
|
|
|
75036
75056
|
const resolveCrawl = (projectId, runId, requestedDate, scope = {}) => {
|
|
75037
75057
|
const filters = visibleCrawlFilters(projectId);
|
|
75038
75058
|
if (scope.recordedBefore) filters.push(lt17(siteCrawlSnapshots.createdAt, scope.recordedBefore));
|
|
75059
|
+
const newestIfComplete = sql43`case when ${siteCrawlSnapshots.complete} then ${siteCrawlSnapshots.createdAt} end`;
|
|
75039
75060
|
if (requestedDate) {
|
|
75040
75061
|
const nextDate2 = /* @__PURE__ */ new Date(`${requestedDate}T00:00:00.000Z`);
|
|
75041
75062
|
nextDate2.setUTCDate(nextDate2.getUTCDate() + 1);
|
|
@@ -75045,6 +75066,7 @@ async function technicalAeoRoutes(app, opts) {
|
|
|
75045
75066
|
const selected = app.db.select({ snapshot: siteCrawlSnapshots, runStatus: runs.status }).from(siteCrawlSnapshots).innerJoin(runs, eq109(siteCrawlSnapshots.runId, runs.id)).where(and92(...selectionFilters, runId ? eq109(siteCrawlSnapshots.runId, runId) : void 0)).orderBy(
|
|
75046
75067
|
desc50(sql43`substr(${siteCrawlSnapshots.createdAt}, 1, 10)`),
|
|
75047
75068
|
desc50(siteCrawlSnapshots.complete),
|
|
75069
|
+
desc50(newestIfComplete),
|
|
75048
75070
|
desc50(siteCrawlSnapshots.pagesFetched),
|
|
75049
75071
|
desc50(siteCrawlSnapshots.createdAt),
|
|
75050
75072
|
desc50(siteCrawlSnapshots.runId)
|
|
@@ -75066,6 +75088,7 @@ async function technicalAeoRoutes(app, opts) {
|
|
|
75066
75088
|
pages: siteCrawlSnapshots.pagesFetched
|
|
75067
75089
|
}).from(siteCrawlSnapshots).innerJoin(runs, eq109(siteCrawlSnapshots.runId, runs.id)).where(sameDate).orderBy(
|
|
75068
75090
|
desc50(siteCrawlSnapshots.complete),
|
|
75091
|
+
desc50(newestIfComplete),
|
|
75069
75092
|
desc50(siteCrawlSnapshots.pagesFetched),
|
|
75070
75093
|
desc50(siteCrawlSnapshots.createdAt),
|
|
75071
75094
|
desc50(siteCrawlSnapshots.runId)
|
|
@@ -75086,9 +75109,11 @@ async function technicalAeoRoutes(app, opts) {
|
|
|
75086
75109
|
...recordedBefore ? [lt17(siteAuditSnapshots.createdAt, recordedBefore)] : []
|
|
75087
75110
|
];
|
|
75088
75111
|
const complete = sql43`case when ${runs.status} = ${RunStatuses.completed} then 1 else 0 end`;
|
|
75112
|
+
const newestIfComplete = sql43`case when ${runs.status} = ${RunStatuses.completed} then ${siteAuditSnapshots.createdAt} end`;
|
|
75089
75113
|
const selectAudit = (pinnedRunId) => app.db.select({ snap: siteAuditSnapshots, runStatus: runs.status }).from(siteAuditSnapshots).innerJoin(runs, eq109(siteAuditSnapshots.runId, runs.id)).where(and92(...filters, pinnedRunId ? eq109(siteAuditSnapshots.runId, pinnedRunId) : void 0)).orderBy(
|
|
75090
75114
|
desc50(sql43`substr(${siteAuditSnapshots.createdAt}, 1, 10)`),
|
|
75091
75115
|
desc50(complete),
|
|
75116
|
+
desc50(newestIfComplete),
|
|
75092
75117
|
desc50(siteAuditSnapshots.pagesAudited),
|
|
75093
75118
|
desc50(siteAuditSnapshots.createdAt),
|
|
75094
75119
|
desc50(siteAuditSnapshots.runId)
|
|
@@ -75120,6 +75145,7 @@ async function technicalAeoRoutes(app, opts) {
|
|
|
75120
75145
|
pages: siteAuditSnapshots.pagesAudited
|
|
75121
75146
|
}).from(siteAuditSnapshots).innerJoin(runs, eq109(siteAuditSnapshots.runId, runs.id)).where(sameDate).orderBy(
|
|
75122
75147
|
desc50(complete),
|
|
75148
|
+
desc50(newestIfComplete),
|
|
75123
75149
|
desc50(siteAuditSnapshots.pagesAudited),
|
|
75124
75150
|
desc50(siteAuditSnapshots.createdAt),
|
|
75125
75151
|
desc50(siteAuditSnapshots.runId)
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
loadConfig,
|
|
6
6
|
loadConfigRaw,
|
|
7
7
|
saveConfigPatch
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-YVY23HNW.js";
|
|
9
9
|
import {
|
|
10
10
|
CANONRY_NPM_PACKAGE_URL,
|
|
11
11
|
compareSemver,
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
updateCheckEnvOptOut,
|
|
19
19
|
upgradeCaveatFor,
|
|
20
20
|
upgradeCommandFor
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-PQNT2JUO.js";
|
|
22
22
|
|
|
23
23
|
// src/runtime-context.ts
|
|
24
24
|
function cliRuntimeContext(env = process.env, stdio = process) {
|
|
@@ -2,13 +2,13 @@ import {
|
|
|
2
2
|
bucketCliCommandDuration,
|
|
3
3
|
isTelemetryEnabled,
|
|
4
4
|
trackEvent
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-56EXMS52.js";
|
|
6
6
|
import {
|
|
7
7
|
getConfigDir
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-YVY23HNW.js";
|
|
9
9
|
import {
|
|
10
10
|
currentOutcomeAttribution
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-3HNHOS6O.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-PQNT2JUO.js";
|
|
23
23
|
|
|
24
24
|
// src/outcome-telemetry.ts
|
|
25
25
|
import fs from "fs";
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
isStoredPageReadTool,
|
|
6
6
|
isStoredReadTool,
|
|
7
7
|
truncateToolResult
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-FAXYDTV5.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-
|
|
26
|
+
} from "./chunk-YVY23HNW.js";
|
|
27
27
|
import {
|
|
28
28
|
CanonryMcpToolNames,
|
|
29
29
|
canonryMcpTools
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-IHMODTQ7.js";
|
|
31
31
|
import {
|
|
32
32
|
createLogger
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-SYOQULRL.js";
|
|
34
34
|
import {
|
|
35
35
|
agentToolEvents,
|
|
36
36
|
llmUsageEvents
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-C3BSCGUH.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-
|
|
46
|
+
} from "./chunk-PQNT2JUO.js";
|
|
47
47
|
|
|
48
48
|
// src/agent/session.ts
|
|
49
49
|
import fs2 from "fs";
|
|
@@ -7,12 +7,12 @@ import {
|
|
|
7
7
|
import {
|
|
8
8
|
createApiClient,
|
|
9
9
|
runWithUsageTags
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-WTKGSKCS.js";
|
|
11
11
|
import {
|
|
12
12
|
canonryMcpTools,
|
|
13
13
|
mcpOutputSchema,
|
|
14
14
|
toolOperationAccess
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-IHMODTQ7.js";
|
|
16
16
|
import {
|
|
17
17
|
PACKAGE_VERSION
|
|
18
18
|
} from "./chunk-AOJU5LKX.js";
|
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
isReadOnlyKey,
|
|
26
26
|
restrictedWriteScopes,
|
|
27
27
|
upgradeCaveatFor
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-PQNT2JUO.js";
|
|
29
29
|
|
|
30
30
|
// src/mcp/server.ts
|
|
31
31
|
import { randomUUID } from "crypto";
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
templateLinkRatio,
|
|
21
21
|
templateLinkUbiquityAvailable,
|
|
22
22
|
validationError
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-PQNT2JUO.js";
|
|
24
24
|
import {
|
|
25
25
|
__export
|
|
26
26
|
} from "./chunk-MLKGABMK.js";
|
|
@@ -1011,6 +1011,11 @@ var schedules = sqliteTable2("schedules", {
|
|
|
1011
1011
|
providers: text2("providers", { mode: "json" }).$type().notNull().default([]),
|
|
1012
1012
|
/** Optional traffic-source UUID for traffic-sync schedules. Null for other kinds. */
|
|
1013
1013
|
sourceId: text2("source_id"),
|
|
1014
|
+
/**
|
|
1015
|
+
* Scan checks for site-audit schedules (dead links, location, agent checks).
|
|
1016
|
+
* Null means the defaults, and is always null for other kinds.
|
|
1017
|
+
*/
|
|
1018
|
+
siteAuditChecks: text2("site_audit_checks", { mode: "json" }).$type(),
|
|
1014
1019
|
lastRunAt: text2("last_run_at"),
|
|
1015
1020
|
nextRunAt: text2("next_run_at"),
|
|
1016
1021
|
/**
|
|
@@ -8919,6 +8924,15 @@ var MIGRATION_VERSIONS = [
|
|
|
8919
8924
|
)`,
|
|
8920
8925
|
`CREATE UNIQUE INDEX IF NOT EXISTS idx_sitemap_list_syncs_project_engine ON sitemap_list_syncs(project_id, engine)`
|
|
8921
8926
|
]
|
|
8927
|
+
},
|
|
8928
|
+
{
|
|
8929
|
+
version: 210,
|
|
8930
|
+
name: "schedule-site-audit-checks",
|
|
8931
|
+
// A site-audit schedule's scan checks (dead links, location, agent checks).
|
|
8932
|
+
// Null keeps the defaults, so existing schedules scan exactly as before.
|
|
8933
|
+
statements: [
|
|
8934
|
+
`ALTER TABLE schedules ADD COLUMN site_audit_checks TEXT`
|
|
8935
|
+
]
|
|
8922
8936
|
}
|
|
8923
8937
|
];
|
|
8924
8938
|
var AERO_LEDGER_REBUILDS = [
|