@canonry/canonry 7.64.5 → 7.65.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 +2 -1
- package/assets/assets/{AgentSetupPage-DYw_Srwu.js → AgentSetupPage-DPHRo4OR.js} +1 -1
- package/assets/assets/{AuditHistoryPanel-6_-mgHbw.js → AuditHistoryPanel-qhIB8KRK.js} +1 -1
- package/assets/assets/{BacklinksPage-DFzYKntv.js → BacklinksPage-iWrZ0-Pp.js} +1 -1
- package/assets/assets/{HistoryPage-C4pZxBYX.js → HistoryPage-BP1_GGlT.js} +1 -1
- package/assets/assets/{MeasurementPropertyPage-C7TkC3Ja.js → MeasurementPropertyPage-DfPHZNGo.js} +1 -1
- package/assets/assets/{ProjectPage-CmT2Vghx.js → ProjectPage-D4n2oqPP.js} +2 -2
- package/assets/assets/RunsPage-Cc98Px3T.js +1 -0
- package/assets/assets/{SettingsPage-Cl6ni4_w.js → SettingsPage-CMyCE-H2.js} +1 -1
- package/assets/assets/{SiteHealthSection-D8D2mIsJ.js → SiteHealthSection-CGKKUtqQ.js} +2 -2
- package/assets/assets/ToneBadge-CJ6ObMRe.js +60 -0
- package/assets/assets/{TrafficPage-jAQRK1Xq.js → TrafficPage-DAef3d2A.js} +1 -1
- package/assets/assets/{TrafficSourceDetailPage-VuKDrAGn.js → TrafficSourceDetailPage-CdoL5Dt9.js} +1 -1
- package/assets/assets/{account-context-haz0f6Tu.js → account-context-CWRd3KeS.js} +1 -1
- package/assets/assets/{card-BAimTqa8.js → card-Cb_fM36G.js} +1 -1
- package/assets/assets/{extract-error-message-BBG79rN-.js → extract-error-message-DSIAoHTR.js} +1 -1
- package/assets/assets/{format-helpers-DQRYsYjD.js → format-helpers-CxNDa1oa.js} +1 -1
- package/assets/assets/{index-DyLlYKrZ.js → index-DEXKV7TW.js} +6 -6
- package/assets/assets/{query-client-DhJ8vlMi.js → query-client-DLdAMlsX.js} +1 -1
- package/assets/assets/{react-query-CRJlZpE1.js → react-query-BktZZtSC.js} +1 -1
- package/assets/assets/{react-sigma_core.esm.min-Ctdaaevn.js → react-sigma_core.esm.min-DgK5sRqv.js} +1 -1
- package/assets/assets/{service-83e6qD-8.js → service-Dv9FDyFY.js} +1 -1
- package/assets/index.html +7 -7
- package/dist/{ads-XBJFILES.js → ads-D4WQOT5K.js} +3 -3
- package/dist/{agent-LWL4G3YX.js → agent-E3IYC7OJ.js} +7 -7
- package/dist/{agent-ask-2SBUWTSS.js → agent-ask-ZSKRPB2Z.js} +3 -3
- package/dist/{agent-conversations-S465NNT2.js → agent-conversations-YHPYPQE2.js} +3 -3
- package/dist/{agent-memory-KS26TRAX.js → agent-memory-6OWOOD5O.js} +3 -3
- package/dist/{agent-providers-GLKRFX7S.js → agent-providers-7KZK37UO.js} +3 -3
- package/dist/{agent-transcript-WBDL4RTP.js → agent-transcript-3O7GPML6.js} +3 -3
- package/dist/{analytics-UUINEXLR.js → analytics-P2LLIUYK.js} +3 -3
- package/dist/{apply-HOEJMCHJ.js → apply-VBNNJOCT.js} +3 -3
- package/dist/{backfill-X46FWWGQ.js → backfill-F5SSURCH.js} +9 -9
- package/dist/{backlinks-NKZXQWXU.js → backlinks-4RE3TNNA.js} +3 -3
- package/dist/{bing-JVHVTKGP.js → bing-V6UN7D44.js} +3 -3
- package/dist/{bootstrap-SL2I6R6N.js → bootstrap-SHTSPAI5.js} +10 -10
- package/dist/{cdp-QBXJ3CN3.js → cdp-GDL2VFI3.js} +7 -7
- package/dist/{chunk-7RZFTNWT.js → chunk-2AROR73F.js} +5 -5
- package/dist/{chunk-56ISY5RC.js → chunk-2Y7RN5HG.js} +3 -3
- package/dist/{chunk-ZTNH6H2F.js → chunk-3QKKHU7D.js} +8 -8
- package/dist/{chunk-ZZIFS4RW.js → chunk-66DPEVLJ.js} +3 -3
- package/dist/{chunk-YXXJFOVG.js → chunk-6FN2OQKL.js} +340 -340
- package/dist/{chunk-VXKMJFPV.js → chunk-737TOG2F.js} +1 -1
- package/dist/{chunk-BMOMIECJ.js → chunk-AE6HJZBU.js} +3 -3
- package/dist/{chunk-C2DURF57.js → chunk-BV6NXSAH.js} +3 -3
- package/dist/{chunk-VXTI3APQ.js → chunk-C2PYKUD3.js} +1 -1
- package/dist/{chunk-XRE7XAYH.js → chunk-CRKOGLKJ.js} +18 -4
- package/dist/{chunk-T3QZVIPV.js → chunk-DQVJB6CZ.js} +1 -1
- package/dist/{chunk-IQVD3UND.js → chunk-F7NZEUXP.js} +2 -2
- package/dist/{chunk-S42DBIIC.js → chunk-GM5ZOWBK.js} +3 -3
- package/dist/{chunk-LEGBODMN.js → chunk-GQXSZE2Z.js} +62 -20
- package/dist/{chunk-UL2XEPI6.js → chunk-GZPGDAAF.js} +2 -2
- package/dist/{chunk-DEO75ZSC.js → chunk-H6HIJAIU.js} +2 -2
- package/dist/{chunk-XQTLLBJG.js → chunk-HI2HCYLB.js} +2 -2
- package/dist/{chunk-LITW7QNO.js → chunk-HO5W6QC7.js} +1 -1
- package/dist/{chunk-UGVEFUZ4.js → chunk-HPUZMBS6.js} +2 -2
- package/dist/{chunk-R62SF6QP.js → chunk-IJKKK7F4.js} +1 -1
- package/dist/{chunk-565ZI72D.js → chunk-IYB3EGSD.js} +1 -1
- package/dist/{chunk-STEYZ24N.js → chunk-LTX3TJ3E.js} +1 -1
- package/dist/{chunk-NE4KRQYV.js → chunk-M3OZL6PQ.js} +4 -4
- package/dist/{chunk-SSBJIBK7.js → chunk-O3INLME6.js} +4 -4
- package/dist/{chunk-Q62B3ISV.js → chunk-Q2WZAD5W.js} +1 -1
- package/dist/{chunk-PNDART6A.js → chunk-QNRMYDK6.js} +1 -1
- package/dist/{chunk-SFHUS5N4.js → chunk-S4VCXCRQ.js} +1 -1
- package/dist/{chunk-FBHW62IM.js → chunk-SL3Y7IOX.js} +1 -1
- package/dist/{chunk-GPNOJVM2.js → chunk-X4AHYJCE.js} +5 -5
- package/dist/{chunk-XFZPSZKU.js → chunk-XMKXXWMO.js} +2 -2
- package/dist/{chunk-DMNRYTX7.js → chunk-XOMUSIM7.js} +2 -2
- package/dist/{chunk-PKRH4UKJ.js → chunk-Z2EENWM3.js} +96 -30
- package/dist/{chunk-EII2VL22.js → chunk-ZPRJCSSR.js} +1 -1
- package/dist/{chunk-BTWB3ZAW.js → chunk-ZWZOQNLD.js} +1 -1
- package/dist/{citations-AW63LMXP.js → citations-GO4SPZYS.js} +3 -3
- package/dist/{cli-catalog-FBB6DN3W.js → cli-catalog-6XYQY3PI.js} +3 -3
- package/dist/{cli-commands-MXWXQSSX.js → cli-commands-AMURHC27.js} +7 -7
- package/dist/cli.js +13 -13
- package/dist/{competitor-YVI2IA7R.js → competitor-JBTKRJ6Y.js} +3 -3
- package/dist/{content-EJVE6ZCL.js → content-LKXXQ7X4.js} +3 -3
- package/dist/{dashboard-XPVUV6UT.js → dashboard-LUA7UX6B.js} +6 -6
- package/dist/{demo-6XBNMZ6F.js → demo-I7JDZJUW.js} +1 -1
- package/dist/{demo-server-S3XRNSHH.js → demo-server-GNGGWERV.js} +11 -11
- package/dist/{discover-4GZERX62.js → discover-TODAYYJ2.js} +3 -3
- package/dist/{discover-eval-F5RD6Q3H.js → discover-eval-FWQESEYB.js} +3 -3
- package/dist/{doctor-P2MOEW3V.js → doctor-AXNJT2UC.js} +3 -3
- package/dist/{evidence-SUWXYKIW.js → evidence-2XGEY4ZC.js} +3 -3
- package/dist/{export-cmd-F3VXILID.js → export-cmd-7RMYBIBZ.js} +3 -3
- package/dist/{ga-44LAMZLT.js → ga-HZDIZGCO.js} +3 -3
- package/dist/{gbp-WUMYLWJR.js → gbp-SMRBWJEL.js} +3 -3
- package/dist/{google-L7YBFK2M.js → google-2CN345XS.js} +4 -4
- package/dist/{google-marketing-ZSXMIOO5.js → google-marketing-W7T2VTVW.js} +1 -1
- package/dist/{health-cmd-IIE77FT5.js → health-cmd-W7OWZ4ZI.js} +3 -3
- package/dist/{history-RK4UG5YE.js → history-UVNCBHTE.js} +3 -3
- package/dist/index.d.ts +9 -5
- package/dist/index.js +24 -24
- package/dist/{init-X2ADJGSC.js → init-MDGOTK2L.js} +11 -11
- package/dist/{insights-Z5IGGJMR.js → insights-PQ52G5LU.js} +3 -3
- package/dist/intelligence-service-IAUGKMDO.js +15 -0
- package/dist/{journeys-CHA56BCH.js → journeys-3PP5GYVJ.js} +3 -3
- package/dist/{keys-ATLI7E4N.js → keys-CWZUX7IQ.js} +3 -3
- package/dist/{keyword-MICVFKNQ.js → keyword-5OMMULLY.js} +3 -3
- package/dist/{logs-BTAFJPMJ.js → logs-3FTE42E3.js} +3 -3
- package/dist/{mcp-6GPRFCSX.js → mcp-FK5DTI7I.js} +2 -2
- package/dist/mcp.js +9 -9
- package/dist/{measurement-plan-PC2YTZ5L.js → measurement-plan-ICO2BQNT.js} +5 -5
- package/dist/{notify-UUO7K7PR.js → notify-ML4PYD3L.js} +3 -3
- package/dist/{organic-evidence-NLJZMQEH.js → organic-evidence-4U4H3DCR.js} +3 -3
- package/dist/{overview-B6NHPCSJ.js → overview-NF427VFO.js} +4 -4
- package/dist/{project-TZRDJVYR.js → project-AAO65OF7.js} +3 -3
- package/dist/{query-IS5DNPEZ.js → query-7ZOUQNF5.js} +3 -3
- package/dist/{research-4Q25MXA6.js → research-UQ7AF5N3.js} +3 -3
- package/dist/{results-export-AQXKBDV2.js → results-export-CZCLC4ZH.js} +3 -3
- package/dist/{run-NFQRNNMQ.js → run-4XJZW52R.js} +4 -4
- package/dist/{schedule-VID5OMNW.js → schedule-D3E5FDBE.js} +3 -3
- package/dist/{search-YKIYLRSE.js → search-DYET2IL4.js} +3 -3
- package/dist/{serve-DSPCXBV3.js → serve-R2CI3RWQ.js} +25 -25
- package/dist/{session-PZ5TREWF.js → session-7CW2V5EH.js} +12 -12
- package/dist/{settings-RMGOJNRU.js → settings-ZISHACFX.js} +3 -3
- package/dist/{skills-Q3FCYWQK.js → skills-WU6IN3NL.js} +2 -2
- package/dist/{snapshot-ZWWYWBMG.js → snapshot-KCKQDJ2W.js} +3 -3
- package/dist/{src-IBMZTBVL.js → src-WIOU5G4V.js} +2 -2
- package/dist/{status-6MTUPM2Y.js → status-CYZFVMYA.js} +4 -4
- package/dist/{technical-aeo-7CWV55RA.js → technical-aeo-P5CS22AR.js} +3 -3
- package/dist/{telemetry-PBRCF7MV.js → telemetry-LPK5F2WU.js} +4 -4
- package/dist/{tools-AUPH4K65.js → tools-E3B2GZ6Q.js} +11 -11
- package/dist/{traffic-24T4MSRG.js → traffic-5KZYXXIQ.js} +5 -5
- package/dist/{users-4WBWD7IO.js → users-2F346HIW.js} +3 -3
- package/dist/{visibility-stats-H6QWQUNH.js → visibility-stats-ITA6DNF3.js} +3 -3
- package/dist/{wordpress-QSAHAV7S.js → wordpress-ZHCFT6V3.js} +3 -3
- package/package.json +1 -1
- package/assets/assets/RunsPage-B-eTk2cT.js +0 -1
- package/assets/assets/ToneBadge-yx6FMD6v.js +0 -60
- package/dist/intelligence-service-JYOJ63Z2.js +0 -15
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
resolveCliAccess,
|
|
4
4
|
resolveCliAccessForInvocation,
|
|
5
5
|
windowOptions
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-HO5W6QC7.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-DQVJB6CZ.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-6XYQY3PI.js");
|
|
115
115
|
const group2 = argsWithoutHelp.find((arg) => !arg.startsWith("--"));
|
|
116
116
|
printCliCatalog2(specs, fallbackFormat, group2, accessValue);
|
|
117
117
|
return true;
|
|
@@ -2,11 +2,11 @@ import {
|
|
|
2
2
|
dedupeGscSitemapUrls,
|
|
3
3
|
resolveDiscoveredGscSitemapUrls,
|
|
4
4
|
submitGscSitemapBatches
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-ZWZOQNLD.js";
|
|
6
6
|
import {
|
|
7
7
|
measurementDraftOperationSchema,
|
|
8
8
|
runMeasurementDraftAction
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-ZPRJCSSR.js";
|
|
10
10
|
import {
|
|
11
11
|
CliError
|
|
12
12
|
} from "./chunk-HGMYEDAQ.js";
|
|
@@ -173,7 +173,7 @@ import {
|
|
|
173
173
|
trafficSeriesGranularitySchema,
|
|
174
174
|
visibilityCompareSelectionSchema,
|
|
175
175
|
visibilityReportRequestSchema
|
|
176
|
-
} from "./chunk-
|
|
176
|
+
} from "./chunk-DQVJB6CZ.js";
|
|
177
177
|
|
|
178
178
|
// src/mcp/tool-registry.ts
|
|
179
179
|
import { z as z2 } from "zod";
|
|
@@ -1,28 +1,29 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runWithUsageTags
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-F7NZEUXP.js";
|
|
4
4
|
import {
|
|
5
5
|
CanonryMcpToolNames,
|
|
6
6
|
canonryMcpTools
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-BV6NXSAH.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-Z2EENWM3.js";
|
|
14
14
|
import {
|
|
15
15
|
DEFAULT_COMPETITOR_AUTO_ALIAS_MODE,
|
|
16
16
|
MeasurementPortfolioLists,
|
|
17
17
|
RATIO_UNIT_META_KEY,
|
|
18
18
|
RunKinds,
|
|
19
|
+
SchedulableRunKinds,
|
|
19
20
|
describeError,
|
|
20
21
|
formatPercent,
|
|
21
22
|
ratioUnitSchema,
|
|
22
23
|
seoDatasetWithoutVendor,
|
|
23
24
|
seoProviderSchema,
|
|
24
25
|
truncateUtf16
|
|
25
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-DQVJB6CZ.js";
|
|
26
27
|
|
|
27
28
|
// src/agent/tools.ts
|
|
28
29
|
import { Type as Type2 } from "@earendil-works/pi-ai";
|
|
@@ -814,6 +815,18 @@ function refuseManagedSweepCancel(tool, ctx) {
|
|
|
814
815
|
}
|
|
815
816
|
};
|
|
816
817
|
}
|
|
818
|
+
var SEO_SCHEDULE_REFUSAL = "Aero cannot schedule paid SEO refreshes. Ask the operator to set the seo-sync schedule.";
|
|
819
|
+
function refuseSeoScheduleWrite(tool) {
|
|
820
|
+
const write = tool.execute;
|
|
821
|
+
return {
|
|
822
|
+
...tool,
|
|
823
|
+
execute: async (toolCallId, params, ...rest) => {
|
|
824
|
+
const schedule = isRecord2(params) && isRecord2(params.schedule) ? params.schedule : {};
|
|
825
|
+
if (schedule.kind === SchedulableRunKinds["seo-sync"] && schedule.enabled !== false) throw new Error(SEO_SCHEDULE_REFUSAL);
|
|
826
|
+
return write(toolCallId, params, ...rest);
|
|
827
|
+
}
|
|
828
|
+
};
|
|
829
|
+
}
|
|
817
830
|
var COMPETITOR_AUTO_ALIAS_MODE_REFUSAL = "Aero cannot change a project's competitorAutoAliases mode. Omit competitorAutoAliases to keep the stored mode, or ask the operator to change it.";
|
|
818
831
|
var COMPETITOR_AUTO_ALIAS_MODE_WRITES = /* @__PURE__ */ new Set([
|
|
819
832
|
CanonryMcpToolNames.canonry_project_upsert,
|
|
@@ -875,6 +888,7 @@ function buildMcpAgentTools(registry, ctx, opts = {}) {
|
|
|
875
888
|
const agentTool = mcpToAgentTool(tool, ctx);
|
|
876
889
|
if (COMPETITOR_AUTO_ALIAS_MODE_WRITES.has(tool.name)) return refuseCompetitorAutoAliasModeChange(agentTool, ctx);
|
|
877
890
|
if (tool.name === "canonry_competitors_add") return refuseCompetitorBulkAddAcknowledgement(agentTool);
|
|
891
|
+
if (tool.name === CanonryMcpToolNames.canonry_schedule_set) return refuseSeoScheduleWrite(agentTool);
|
|
878
892
|
return opts.managedSweeps && tool.name === CanonryMcpToolNames.canonry_run_cancel ? refuseManagedSweepCancel(agentTool, ctx) : agentTool;
|
|
879
893
|
});
|
|
880
894
|
}
|
|
@@ -21518,7 +21518,7 @@ import { z as z69 } from "zod";
|
|
|
21518
21518
|
|
|
21519
21519
|
// ../contracts/src/schedule.ts
|
|
21520
21520
|
import { z as z68 } from "zod";
|
|
21521
|
-
var schedulableRunKindSchema = z68.enum(["answer-visibility", "traffic-sync", "gbp-sync", "data-refresh", "backlinks-sync", "site-audit", "ads-sync", "doctor"]);
|
|
21521
|
+
var schedulableRunKindSchema = z68.enum(["answer-visibility", "traffic-sync", "gbp-sync", "data-refresh", "backlinks-sync", "site-audit", "ads-sync", "doctor", "seo-sync"]);
|
|
21522
21522
|
var SchedulableRunKinds = schedulableRunKindSchema.enum;
|
|
21523
21523
|
var calendarRecurrenceSchema = z68.object({
|
|
21524
21524
|
everyDays: z68.number().int().min(1).max(3650),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
loadConfig
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-C2PYKUD3.js";
|
|
4
4
|
import {
|
|
5
5
|
PACKAGE_VERSION
|
|
6
6
|
} from "./chunk-AOJU5LKX.js";
|
|
@@ -36,7 +36,7 @@ import {
|
|
|
36
36
|
sentimentSettingsReadSchema,
|
|
37
37
|
sentimentSummaryReadSchema,
|
|
38
38
|
upgradeCommandFor
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-DQVJB6CZ.js";
|
|
40
40
|
|
|
41
41
|
// ../api-client-generated/src/generated/core/bodySerializer.gen.ts
|
|
42
42
|
var jsonBodySerializer = {
|
|
@@ -6,12 +6,12 @@ import {
|
|
|
6
6
|
import {
|
|
7
7
|
createApiClient,
|
|
8
8
|
runWithUsageTags
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-F7NZEUXP.js";
|
|
10
10
|
import {
|
|
11
11
|
canonryMcpTools,
|
|
12
12
|
mcpOutputSchema,
|
|
13
13
|
toolOperationAccess
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-BV6NXSAH.js";
|
|
15
15
|
import {
|
|
16
16
|
PACKAGE_VERSION
|
|
17
17
|
} from "./chunk-AOJU5LKX.js";
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
isReadOnlyKey,
|
|
25
25
|
restrictedWriteScopes,
|
|
26
26
|
upgradeCaveatFor
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-DQVJB6CZ.js";
|
|
28
28
|
|
|
29
29
|
// src/mcp/server.ts
|
|
30
30
|
import { randomUUID } from "crypto";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
answerServiceAdapters,
|
|
3
3
|
answerServiceDescriptors
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-737TOG2F.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-2AROR73F.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-CRKOGLKJ.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-QNRMYDK6.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-HPUZMBS6.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-M3OZL6PQ.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-IYB3EGSD.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-XMKXXWMO.js";
|
|
99
99
|
import {
|
|
100
100
|
createCanonryMcpServer
|
|
101
|
-
} from "./chunk-
|
|
101
|
+
} from "./chunk-GM5ZOWBK.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-F7NZEUXP.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-C2PYKUD3.js";
|
|
140
140
|
import {
|
|
141
141
|
getBundledSkillSnapshots
|
|
142
|
-
} from "./chunk-
|
|
142
|
+
} from "./chunk-SL3Y7IOX.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-H6HIJAIU.js";
|
|
150
150
|
import {
|
|
151
151
|
CanonryMcpToolNames,
|
|
152
152
|
canonryMcpTools
|
|
153
|
-
} from "./chunk-
|
|
153
|
+
} from "./chunk-BV6NXSAH.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-X4AHYJCE.js";
|
|
166
166
|
import {
|
|
167
167
|
computeCitedCompetitorDomains,
|
|
168
168
|
determineCitationState
|
|
169
|
-
} from "./chunk-
|
|
169
|
+
} from "./chunk-S4VCXCRQ.js";
|
|
170
170
|
import {
|
|
171
171
|
BingApiError,
|
|
172
172
|
CC_CACHE_DIR,
|
|
@@ -278,6 +278,7 @@ import {
|
|
|
278
278
|
sentimentClassifierInput,
|
|
279
279
|
sentimentHash,
|
|
280
280
|
serializeUserSessionCookie,
|
|
281
|
+
startScheduledSeoRefreshes,
|
|
281
282
|
stripIpv6Brackets,
|
|
282
283
|
syncRunClaimKey,
|
|
283
284
|
toAlertView,
|
|
@@ -285,7 +286,7 @@ import {
|
|
|
285
286
|
webhookResponseReason,
|
|
286
287
|
webhookTargetRefusalReason,
|
|
287
288
|
writeAuditLog
|
|
288
|
-
} from "./chunk-
|
|
289
|
+
} from "./chunk-Z2EENWM3.js";
|
|
289
290
|
import {
|
|
290
291
|
OperationalLogStore,
|
|
291
292
|
SentimentIdempotencyConflict,
|
|
@@ -371,7 +372,7 @@ import {
|
|
|
371
372
|
siteLivenessState,
|
|
372
373
|
trafficSources,
|
|
373
374
|
usageCounters
|
|
374
|
-
} from "./chunk-
|
|
375
|
+
} from "./chunk-XOMUSIM7.js";
|
|
375
376
|
import {
|
|
376
377
|
AGENT_MEMORY_VALUE_MAX_BYTES,
|
|
377
378
|
AI_ENGINE_DOMAINS,
|
|
@@ -617,7 +618,7 @@ import {
|
|
|
617
618
|
winnabilityClassLabel,
|
|
618
619
|
withRetry,
|
|
619
620
|
withSkippedProviders
|
|
620
|
-
} from "./chunk-
|
|
621
|
+
} from "./chunk-DQVJB6CZ.js";
|
|
621
622
|
|
|
622
623
|
// src/google-marketing-runtime.ts
|
|
623
624
|
import crypto2 from "crypto";
|
|
@@ -5658,7 +5659,7 @@ function nonBlank(value) {
|
|
|
5658
5659
|
return trimmed ? trimmed : void 0;
|
|
5659
5660
|
}
|
|
5660
5661
|
function resolveBuildCommit(env = process.env) {
|
|
5661
|
-
const embedded = true ? "
|
|
5662
|
+
const embedded = true ? "d690131dbffb56d442cbb05eb5b318e6f7e9f499" : void 0;
|
|
5662
5663
|
return nonBlank(embedded) ?? nonBlank(env.CANONRY_COMMIT);
|
|
5663
5664
|
}
|
|
5664
5665
|
function resolveInstanceIdentity(env = process.env) {
|
|
@@ -13423,6 +13424,29 @@ var Scheduler = class {
|
|
|
13423
13424
|
this.callbacks.onAdsSyncRequested(runId2, projectId);
|
|
13424
13425
|
return SLOT_FIRED;
|
|
13425
13426
|
}
|
|
13427
|
+
if (kind === SchedulableRunKinds["seo-sync"]) {
|
|
13428
|
+
if (!this.callbacks.onSeoSyncRequested) {
|
|
13429
|
+
log17.warn("seo-sync.no-callback", { scheduleId, projectId, msg: "host did not register onSeoSyncRequested" });
|
|
13430
|
+
return slotFailed(OutcomeReasonCodes.UNSUPPORTED);
|
|
13431
|
+
}
|
|
13432
|
+
const activeSeoRun = this.db.select({ id: runs.id }).from(runs).where(and17(
|
|
13433
|
+
eq20(runs.projectId, projectId),
|
|
13434
|
+
eq20(runs.kind, RunKinds["seo-sync"]),
|
|
13435
|
+
inArray10(runs.status, [RunStatuses.queued, RunStatuses.running])
|
|
13436
|
+
)).get();
|
|
13437
|
+
if (activeSeoRun) {
|
|
13438
|
+
log17.info("seo-sync.skipped-active", { projectName: project.name, activeRunId: activeSeoRun.id });
|
|
13439
|
+
this.updateScheduleTiming(currentSchedule.id, { nextRunAt });
|
|
13440
|
+
return slotSkipped(OutcomeReasonCodes.OPERATION_IN_PROGRESS);
|
|
13441
|
+
}
|
|
13442
|
+
this.updateScheduleTiming(currentSchedule.id, {
|
|
13443
|
+
lastRunAt: now,
|
|
13444
|
+
nextRunAt
|
|
13445
|
+
});
|
|
13446
|
+
log17.info("seo-sync.triggered", { projectName: project.name });
|
|
13447
|
+
this.callbacks.onSeoSyncRequested({ scheduleId, projectId, occurrence: now.slice(0, 16) });
|
|
13448
|
+
return SLOT_FIRED;
|
|
13449
|
+
}
|
|
13426
13450
|
if (kind === SchedulableRunKinds["data-refresh"]) {
|
|
13427
13451
|
if (!this.callbacks.onDataRefreshRequested) {
|
|
13428
13452
|
log17.warn("data-refresh.no-callback", { scheduleId, projectId, msg: "host did not register onDataRefreshRequested" });
|
|
@@ -19776,6 +19800,24 @@ async function createServer(opts) {
|
|
|
19776
19800
|
},
|
|
19777
19801
|
onSiteAuditRequested: (runId, projectId, auditOpts) => {
|
|
19778
19802
|
runSiteAudit(runId, projectId, auditOpts);
|
|
19803
|
+
},
|
|
19804
|
+
onSeoSyncRequested: ({ scheduleId, projectId, occurrence }) => {
|
|
19805
|
+
try {
|
|
19806
|
+
const outcomes = startScheduledSeoRefreshes(
|
|
19807
|
+
opts.db,
|
|
19808
|
+
{ getSeoRuntime: seoRuntime.getRuntime, onSeoRunRequested: () => seoRuntime.wake() },
|
|
19809
|
+
{ scheduleId, projectId, occurrence }
|
|
19810
|
+
);
|
|
19811
|
+
for (const outcome of outcomes) {
|
|
19812
|
+
if (outcome.status === "skipped") {
|
|
19813
|
+
app.log.warn({ projectId, profileId: outcome.profileId, runId: outcome.runId, reason: outcome.reason, detail: outcome.detail }, "Scheduled SEO refresh did not start");
|
|
19814
|
+
} else {
|
|
19815
|
+
app.log.info({ projectId, profileId: outcome.profileId, runId: outcome.runId, status: outcome.status }, "Scheduled SEO refresh admitted");
|
|
19816
|
+
}
|
|
19817
|
+
}
|
|
19818
|
+
} catch (err) {
|
|
19819
|
+
app.log.error({ projectId, err: describeError(err) }, "Scheduled SEO refresh failed");
|
|
19820
|
+
}
|
|
19779
19821
|
}
|
|
19780
19822
|
}, { spreadMs: opts.scheduleSpreadMs ?? SCHEDULE_SPREAD_MS });
|
|
19781
19823
|
const providerSummary = providerSummaries(registry, opts.config);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
trackIntegrationConnection
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-M3OZL6PQ.js";
|
|
4
4
|
import {
|
|
5
5
|
cliRuntimeContext
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-XMKXXWMO.js";
|
|
7
7
|
|
|
8
8
|
// src/cli-connection-telemetry.ts
|
|
9
9
|
function trackCliConnection(properties) {
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
siteCrawlGraphNodes,
|
|
6
6
|
siteCrawlPages,
|
|
7
7
|
siteCrawlSnapshots
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-XOMUSIM7.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-DQVJB6CZ.js";
|
|
19
19
|
|
|
20
20
|
// src/site-audit-factors.ts
|
|
21
21
|
function recordedSharePct(factor) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createApiClient
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-F7NZEUXP.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-DQVJB6CZ.js";
|
|
23
23
|
|
|
24
24
|
// src/commands/run.ts
|
|
25
25
|
function getClient() {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
parseJsonColumn
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-XOMUSIM7.js";
|
|
4
4
|
import {
|
|
5
5
|
AI_ENGINE_DOMAINS,
|
|
6
6
|
AI_ENGINE_SELF_DOMAINS,
|
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
retryAfterDelayMs,
|
|
27
27
|
usageCount,
|
|
28
28
|
withRetry
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-DQVJB6CZ.js";
|
|
30
30
|
|
|
31
31
|
// ../provider-openai/src/normalize.ts
|
|
32
32
|
import OpenAI from "openai";
|
|
@@ -2,13 +2,13 @@ import {
|
|
|
2
2
|
bucketCliCommandDuration,
|
|
3
3
|
isTelemetryEnabled,
|
|
4
4
|
trackEvent
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-XMKXXWMO.js";
|
|
6
6
|
import {
|
|
7
7
|
getConfigDir
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-C2PYKUD3.js";
|
|
9
9
|
import {
|
|
10
10
|
currentOutcomeAttribution
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-IJKKK7F4.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-DQVJB6CZ.js";
|
|
23
23
|
|
|
24
24
|
// src/outcome-telemetry.ts
|
|
25
25
|
import fs from "fs";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
registeredProviderNames
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-IYB3EGSD.js";
|
|
4
4
|
import {
|
|
5
5
|
configExists,
|
|
6
6
|
loadConfigRaw
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-C2PYKUD3.js";
|
|
8
8
|
|
|
9
9
|
// src/setup-state.ts
|
|
10
10
|
import fs from "fs";
|
|
@@ -28,7 +28,7 @@ async function buildSetupState() {
|
|
|
28
28
|
}
|
|
29
29
|
if (dbPath && fs.existsSync(dbPath)) {
|
|
30
30
|
try {
|
|
31
|
-
const { createClient, projects, queries: queriesTable } = await import("./src-
|
|
31
|
+
const { createClient, projects, queries: queriesTable } = await import("./src-WIOU5G4V.js");
|
|
32
32
|
const db = createClient(dbPath);
|
|
33
33
|
project_count = db.select({ id: projects.id }).from(projects).all().length;
|
|
34
34
|
const firstQuery = db.select({ id: queriesTable.id }).from(queriesTable).limit(1).all();
|
|
@@ -47,7 +47,7 @@ function queueServeHandoff() {
|
|
|
47
47
|
async function runPendingServeHandoff(format) {
|
|
48
48
|
if (!pendingServeHandoff) return;
|
|
49
49
|
pendingServeHandoff = false;
|
|
50
|
-
const { serveCommand } = await import("./serve-
|
|
50
|
+
const { serveCommand } = await import("./serve-R2CI3RWQ.js");
|
|
51
51
|
await serveCommand(format);
|
|
52
52
|
}
|
|
53
53
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
pickProjectCitedDomain
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-S4VCXCRQ.js";
|
|
4
4
|
import {
|
|
5
5
|
GBP_INSIGHT_PROVIDER,
|
|
6
6
|
PERSISTENT_GAP_THRESHOLD,
|
|
@@ -14,10 +14,10 @@ import {
|
|
|
14
14
|
mergeGscQueryTotalsWithFallback,
|
|
15
15
|
readGscQueryDailyRows,
|
|
16
16
|
readLatestGscDataDate
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-Z2EENWM3.js";
|
|
18
18
|
import {
|
|
19
19
|
getRequestContext
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-IJKKK7F4.js";
|
|
21
21
|
import {
|
|
22
22
|
competitors,
|
|
23
23
|
gbpDailyMetrics,
|
|
@@ -35,7 +35,7 @@ import {
|
|
|
35
35
|
queries,
|
|
36
36
|
querySnapshots,
|
|
37
37
|
runs
|
|
38
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-XOMUSIM7.js";
|
|
39
39
|
import {
|
|
40
40
|
CitationStates,
|
|
41
41
|
RunKinds,
|
|
@@ -45,7 +45,7 @@ import {
|
|
|
45
45
|
effectiveDomains,
|
|
46
46
|
redactLogString,
|
|
47
47
|
redactLogValue
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-DQVJB6CZ.js";
|
|
49
49
|
|
|
50
50
|
// src/intelligence-service.ts
|
|
51
51
|
import { eq, desc, asc, and, ne, or, inArray, gte, lte, isNull, sql, exists } from "drizzle-orm";
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
loadConfig,
|
|
6
6
|
loadConfigRaw,
|
|
7
7
|
saveConfigPatch
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-C2PYKUD3.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-DQVJB6CZ.js";
|
|
22
22
|
|
|
23
23
|
// src/runtime-context.ts
|
|
24
24
|
function cliRuntimeContext(env = process.env, stdio = process) {
|