@canonry/canonry 7.91.2 → 7.92.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/assets/agent-workspace/skills/canonry/references/canonry-cli.md +1 -1
- package/assets/assets/{AgentSetupPage-DpBlChWi.js → AgentSetupPage-Dr5ZoPYi.js} +1 -1
- package/assets/assets/{AuditHistoryPanel-DAotR_zD.js → AuditHistoryPanel-Dc8pGeZT.js} +1 -1
- package/assets/assets/{BacklinksPage-CFoi9mrt.js → BacklinksPage-zEaP7G6s.js} +1 -1
- package/assets/assets/{HistoryPage-DIGmY4wi.js → HistoryPage-9OaxBSY8.js} +1 -1
- package/assets/assets/{MeasurementPropertyPage-C6o9U2R6.js → MeasurementPropertyPage-k_mqkoWn.js} +1 -1
- package/assets/assets/{ProjectPage-00Vsnxv4.js → ProjectPage-vgHaFT7S.js} +1 -1
- package/assets/assets/{RunsPage-ChSbIrF9.js → RunsPage-CXkefezd.js} +1 -1
- package/assets/assets/{SettingsPage-CIrzXeP8.js → SettingsPage-C8FUNUN5.js} +1 -1
- package/assets/assets/{SiteHealthSection-HZXdeAOx.js → SiteHealthSection-C94uYTE3.js} +2 -2
- package/assets/assets/ToneBadge-COrS2zpP.js +60 -0
- package/assets/assets/{TrafficPage-ZYsFSEuq.js → TrafficPage-KlGx3-bc.js} +1 -1
- package/assets/assets/{TrafficSourceDetailPage-D5uJZpZ4.js → TrafficSourceDetailPage-BMs9kd7S.js} +1 -1
- package/assets/assets/{account-context-DMLbDVNZ.js → account-context-F2VRKRtu.js} +1 -1
- package/assets/assets/{agent-trust-copy-DbpAXPxc.js → agent-trust-copy-Hb775a57.js} +1 -1
- package/assets/assets/{card-Be_eN_-Q.js → card-P1VA-JnV.js} +1 -1
- package/assets/assets/{format-helpers-IKCsn-Iw.js → format-helpers-COfTmLRL.js} +1 -1
- package/assets/assets/{index-3jdPlyTf.js → index-DHrWeA6k.js} +4 -4
- package/assets/assets/{query-client-CoKNm49W.js → query-client-BHtq57Sw.js} +1 -1
- package/assets/assets/{react-query-DIdeX4Dn.js → react-query-IhpEAOba.js} +1 -1
- package/assets/assets/{react-sigma_core.esm.min-De3OcL3T.js → react-sigma_core.esm.min-B4NX5_aX.js} +1 -1
- package/assets/assets/{server-traffic-DvN44H1n.js → server-traffic-ykAWQo0I.js} +1 -1
- package/assets/assets/{service-RpR2yqfP.js → service-m9l8my0x.js} +1 -1
- package/assets/index.html +7 -7
- package/dist/{ads-RC5EHP6E.js → ads-LRHVFP2J.js} +3 -3
- package/dist/{agent-JYG5XPUJ.js → agent-P7HWL7VX.js} +7 -7
- package/dist/{agent-ask-FGPGEOEI.js → agent-ask-S374MIJS.js} +3 -3
- package/dist/{agent-conversations-Q3EKETCC.js → agent-conversations-3SSKVUYG.js} +3 -3
- package/dist/{agent-journeys-IHBTU6SZ.js → agent-journeys-ZEO7Z4QR.js} +3 -3
- package/dist/{agent-memory-RXEPKF5K.js → agent-memory-E5YVW5WY.js} +3 -3
- package/dist/{agent-providers-LDMGD7TD.js → agent-providers-BWWB42XJ.js} +3 -3
- package/dist/{agent-transcript-NXSXOYNE.js → agent-transcript-YG7TTHWS.js} +3 -3
- package/dist/{analytics-4BILIAM5.js → analytics-AIKX4BUM.js} +3 -3
- package/dist/{apply-ENLWU4Z2.js → apply-5MPSMIKM.js} +3 -3
- package/dist/{backfill-HHG3Z46F.js → backfill-2BFEE6XJ.js} +10 -10
- package/dist/{backlinks-5MMWYPFW.js → backlinks-L6BYIJIK.js} +3 -3
- package/dist/{bing-KO3PDNXZ.js → bing-E4ZSEVQV.js} +3 -3
- package/dist/{bootstrap-E76JLH63.js → bootstrap-V7OE6XXB.js} +10 -10
- package/dist/{cdp-BZRWX3MX.js → cdp-LWNX6UZF.js} +7 -7
- package/dist/{chunk-MNIQFFLL.js → chunk-2D3JYWFX.js} +4 -4
- package/dist/{chunk-MM3OYQ53.js → chunk-3WWSOWXP.js} +2 -2
- package/dist/{chunk-OK6MKE4B.js → chunk-4HLR3DRQ.js} +1 -1
- package/dist/{chunk-V4MRQPV2.js → chunk-4QYGB5IC.js} +1 -1
- package/dist/{chunk-XFVB3UCE.js → chunk-7534NXSP.js} +1 -1
- package/dist/{chunk-7LN6QPV7.js → chunk-76KBMLPR.js} +1 -1
- package/dist/{chunk-SMH4FUXJ.js → chunk-AUC47DFW.js} +1 -1
- package/dist/{chunk-PIOCF5GN.js → chunk-BRNZ3G3B.js} +5 -5
- package/dist/{chunk-PIDL7OJ4.js → chunk-BTYOU24P.js} +2 -2
- package/dist/{chunk-QZM44MJL.js → chunk-BYDJIBAB.js} +358 -357
- package/dist/{chunk-KVNGLXG7.js → chunk-CIP3CE2C.js} +3 -3
- package/dist/{chunk-5MBZUPY3.js → chunk-DEFHTBJV.js} +1 -1
- package/dist/{chunk-B23XQ5OP.js → chunk-ERSHLW5J.js} +4 -4
- package/dist/{chunk-KKVIRNFF.js → chunk-EWZOL56J.js} +3 -3
- package/dist/{chunk-2REKLGYS.js → chunk-FYYOX7UY.js} +18 -1
- package/dist/{chunk-ZYHP6QZO.js → chunk-GNHXSSQM.js} +2 -2
- package/dist/{chunk-ZR4WEKEC.js → chunk-H3PWMM4K.js} +1 -1
- package/dist/{chunk-FX5H2PD5.js → chunk-IDISBRPO.js} +7 -7
- package/dist/{chunk-5DMCGBIT.js → chunk-JZVTSC2V.js} +2 -2
- package/dist/{chunk-JC2MAKWO.js → chunk-K7ZG6K7J.js} +1 -1
- package/dist/{chunk-JXGVPQA5.js → chunk-KKSE52CI.js} +6 -6
- package/dist/{chunk-ML3KDUHO.js → chunk-MDYFHX5Y.js} +70 -22
- package/dist/{chunk-UHCRUGI5.js → chunk-N2EWSWZD.js} +1 -1
- package/dist/{chunk-6SEWKBDC.js → chunk-O7D7KV75.js} +3 -3
- package/dist/{chunk-JKBQ3G25.js → chunk-P6ZDIVFZ.js} +1 -1
- package/dist/{chunk-FYJMNYVR.js → chunk-T5DH6FEH.js} +1 -1
- package/dist/{chunk-SMSTXGJX.js → chunk-TY5YTNLU.js} +2 -2
- package/dist/{chunk-SC7WEHEK.js → chunk-U3T37P7H.js} +3 -3
- package/dist/{chunk-PAC5EE5X.js → chunk-UMTYAPCQ.js} +4 -4
- package/dist/{chunk-FLP4XMWI.js → chunk-WONUYAKB.js} +4 -4
- package/dist/{chunk-IPFSY55D.js → chunk-XYQMPYWE.js} +1 -1
- package/dist/{chunk-T6ZYAUJX.js → chunk-ZEZPTUUB.js} +31 -14
- package/dist/{chunk-EIYNZOQA.js → chunk-ZPVJ5PVB.js} +2 -2
- package/dist/{chunk-QS57GCF4.js → chunk-ZTCQVHQV.js} +2 -2
- package/dist/{chunk-HMNQTF3E.js → chunk-ZTRGUTUP.js} +5 -5
- package/dist/{citations-UEKKVKBV.js → citations-BYSB6NON.js} +3 -3
- package/dist/{cli-catalog-HJOVIDG6.js → cli-catalog-CFCLMVSK.js} +3 -3
- package/dist/{cli-commands-5FUTLXQS.js → cli-commands-G5LDZRUU.js} +7 -7
- package/dist/cli.js +13 -13
- package/dist/{competitor-3TX3GOLA.js → competitor-DUYU7EL7.js} +3 -3
- package/dist/{content-BKICG6BP.js → content-OGURKOCE.js} +3 -3
- package/dist/{dashboard-HOCPAGFO.js → dashboard-UOIHD75S.js} +6 -6
- package/dist/{demo-IXNY4QU4.js → demo-UTXZOVOZ.js} +1 -1
- package/dist/{demo-server-HGKXT27V.js → demo-server-4TRTOGKP.js} +12 -12
- package/dist/{discover-LBULUEYL.js → discover-SHUCBUDJ.js} +3 -3
- package/dist/{discover-eval-V7UJGWHK.js → discover-eval-3ZTYLTGU.js} +3 -3
- package/dist/{doctor-O45PQVTM.js → doctor-FRSV5GAR.js} +3 -3
- package/dist/{evidence-FCNEZ7OV.js → evidence-7UJHNILW.js} +3 -3
- package/dist/{export-cmd-CFC3HYWQ.js → export-cmd-2DAWSD52.js} +3 -3
- package/dist/{ga-V643BFQV.js → ga-K2EVI3KO.js} +3 -3
- package/dist/{gbp-L5PCSFCF.js → gbp-NXFINC7N.js} +3 -3
- package/dist/{google-TO6R7PKD.js → google-J4T52EIG.js} +4 -4
- package/dist/{google-marketing-BOSOBO4T.js → google-marketing-PZGKZPEB.js} +1 -1
- package/dist/{health-cmd-UZKM4AB7.js → health-cmd-5IHX5GRQ.js} +3 -3
- package/dist/{history-WRVANB63.js → history-IVO5IVH2.js} +3 -3
- package/dist/index.d.ts +71 -71
- package/dist/index.js +25 -25
- package/dist/{init-CYKAYU6A.js → init-TNCLNDMS.js} +12 -12
- package/dist/{insights-UQ76TUH7.js → insights-SPA2BVMV.js} +3 -3
- package/dist/intelligence-service-YPKAM4JJ.js +16 -0
- package/dist/{journeys-6S235DIK.js → journeys-7FAHZRGP.js} +3 -3
- package/dist/{keys-VXQWKBDR.js → keys-PPBHRYPZ.js} +3 -3
- package/dist/{keyword-VM26Z6Z7.js → keyword-C4ULYIWF.js} +3 -3
- package/dist/{logs-B4UKUNNS.js → logs-X7NQN4UT.js} +3 -3
- package/dist/{mcp-NFRDBPMW.js → mcp-ERMFW6WJ.js} +4 -4
- package/dist/mcp.js +9 -9
- package/dist/{measurement-plan-PH4S4NL4.js → measurement-plan-7IPWYNIC.js} +5 -5
- package/dist/{notify-XCFFEECP.js → notify-AC4ZHLUK.js} +3 -3
- package/dist/{organic-evidence-P6YKEE5J.js → organic-evidence-GDDMNJHN.js} +3 -3
- package/dist/{overview-XA7WM5QI.js → overview-7VCUIYQE.js} +4 -4
- package/dist/{project-US5UT3TO.js → project-N4RGX5CT.js} +3 -3
- package/dist/{query-MVLTNGDG.js → query-Y7LGD6PG.js} +3 -3
- package/dist/{research-XWJOXQDW.js → research-WTZO3D7B.js} +3 -3
- package/dist/{results-export-QMNLDPOB.js → results-export-BYUFBWEK.js} +3 -3
- package/dist/{run-U7Y3UINV.js → run-SXMD6GW5.js} +4 -4
- package/dist/{schedule-WO72K2TA.js → schedule-UQFPQBHI.js} +3 -3
- package/dist/{search-VFN7HC4Q.js → search-EJUJRZEE.js} +3 -3
- package/dist/{serve-R5SZLLJ7.js → serve-ON5OOCRY.js} +26 -26
- package/dist/{session-IF7IXHSS.js → session-4RJTRXIO.js} +13 -13
- package/dist/{settings-RTPDTKM3.js → settings-ZBP3KDJK.js} +3 -3
- package/dist/{sitemaps-5CCNCMM4.js → sitemaps-KVROUSLB.js} +3 -3
- package/dist/{skills-ZWET6NI7.js → skills-AGAHFQD5.js} +2 -2
- package/dist/{snapshot-CCQ62PWI.js → snapshot-WDK6ZSJA.js} +3 -3
- package/dist/{src-G42HKGIS.js → src-XGUBO65J.js} +2 -2
- package/dist/{status-YE6MWDYD.js → status-IFUJIB73.js} +4 -4
- package/dist/{technical-aeo-LIEMDI5R.js → technical-aeo-6KR3YH4X.js} +3 -3
- package/dist/{telemetry-D5OR6DKJ.js → telemetry-EZNMZMH6.js} +4 -4
- package/dist/{tools-R63V5YCE.js → tools-HRHCCGJ5.js} +11 -11
- package/dist/{traffic-6JJNWQZL.js → traffic-7OSHD23C.js} +5 -5
- package/dist/{trends-QZEDEIQE.js → trends-I3NWFNHX.js} +3 -3
- package/dist/{users-UYTKWYR6.js → users-VBLZGMML.js} +3 -3
- package/dist/{visibility-stats-ESDTTTAE.js → visibility-stats-6YAV2MTM.js} +18 -3
- package/dist/{wordpress-EJLVQNNU.js → wordpress-EM3S3NDA.js} +3 -3
- package/package.json +1 -1
- package/assets/assets/ToneBadge-ht0n6RUH.js +0 -60
- package/dist/intelligence-service-LVOX33SJ.js +0 -16
|
@@ -7,12 +7,12 @@ import {
|
|
|
7
7
|
import {
|
|
8
8
|
createApiClient,
|
|
9
9
|
runWithUsageTags
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-ZPVJ5PVB.js";
|
|
11
11
|
import {
|
|
12
12
|
canonryMcpTools,
|
|
13
13
|
mcpOutputSchema,
|
|
14
14
|
toolOperationAccess
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-UMTYAPCQ.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-FYYOX7UY.js";
|
|
29
29
|
|
|
30
30
|
// src/mcp/server.ts
|
|
31
31
|
import { randomUUID } from "crypto";
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runWithUsageTags
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-ZPVJ5PVB.js";
|
|
4
4
|
import {
|
|
5
5
|
CanonryMcpToolNames,
|
|
6
6
|
canonryMcpTools
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-UMTYAPCQ.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-ZEZPTUUB.js";
|
|
14
14
|
import {
|
|
15
15
|
DEFAULT_COMPETITOR_AUTO_ALIAS_MODE,
|
|
16
16
|
MeasurementPortfolioLists,
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
seoDatasetWithoutVendor,
|
|
24
24
|
seoProviderSchema,
|
|
25
25
|
truncateUtf16
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-FYYOX7UY.js";
|
|
27
27
|
|
|
28
28
|
// src/agent/tools.ts
|
|
29
29
|
import { Type as Type2 } from "@earendil-works/pi-ai";
|
|
@@ -2,18 +2,18 @@ import {
|
|
|
2
2
|
configExists,
|
|
3
3
|
loadConfigRaw,
|
|
4
4
|
saveConfigPatch
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-4QYGB5IC.js";
|
|
6
6
|
import {
|
|
7
7
|
BUNDLED_SKILL_NAMES,
|
|
8
8
|
installSkills
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-T5DH6FEH.js";
|
|
10
10
|
import {
|
|
11
11
|
PACKAGE_VERSION
|
|
12
12
|
} from "./chunk-AOJU5LKX.js";
|
|
13
13
|
import {
|
|
14
14
|
SKILL_MANIFEST_FILENAME,
|
|
15
15
|
SkillsClients
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-FYYOX7UY.js";
|
|
17
17
|
|
|
18
18
|
// src/skills-autosync.ts
|
|
19
19
|
import fs from "fs";
|
|
@@ -11719,6 +11719,12 @@ var visibilityStatsQueryEntrySchema = visibilityStatsCountsSchema.extend({
|
|
|
11719
11719
|
query: z29.string(),
|
|
11720
11720
|
firstObserved: z29.string(),
|
|
11721
11721
|
lastObserved: z29.string(),
|
|
11722
|
+
/**
|
|
11723
|
+
* The class the query is measured under, as the query list reports it:
|
|
11724
|
+
* `branded` or `non-brand`, `null` when it has no single class (a project
|
|
11725
|
+
* with no brand name, or an Advanced query assigned under both or neither).
|
|
11726
|
+
*/
|
|
11727
|
+
queryClass: queryClassSchema.nullable().optional(),
|
|
11722
11728
|
/**
|
|
11723
11729
|
* Per-provider breakdown — present only when `groupBy=provider`. Each
|
|
11724
11730
|
* entry's counts sum to this query's pooled counts.
|
|
@@ -11772,8 +11778,19 @@ var visibilityStatsDtoSchema = z29.object({
|
|
|
11772
11778
|
*/
|
|
11773
11779
|
groupBy: visibilityStatsGroupBySchema.optional(),
|
|
11774
11780
|
window: visibilityStatsWindowSchema,
|
|
11775
|
-
/** Pooled counts across every tracked query in the window. */
|
|
11781
|
+
/** Pooled counts across every tracked query in the window, branded and non-brand together. */
|
|
11776
11782
|
totals: visibilityStatsCountsSchema,
|
|
11783
|
+
/**
|
|
11784
|
+
* `totals` split by each query's class. Branded and non-brand answers never
|
|
11785
|
+
* share a rate, so compare these, not `totals`. `unclassified` holds queries
|
|
11786
|
+
* with no single class. `queryClass` does not change it: that parameter
|
|
11787
|
+
* scopes share of voice only.
|
|
11788
|
+
*/
|
|
11789
|
+
byQueryClass: z29.object({
|
|
11790
|
+
branded: visibilityStatsCountsSchema,
|
|
11791
|
+
nonBrand: visibilityStatsCountsSchema,
|
|
11792
|
+
unclassified: visibilityStatsCountsSchema
|
|
11793
|
+
}).optional(),
|
|
11777
11794
|
/**
|
|
11778
11795
|
* Pooled per-provider counts across every tracked query — present only when
|
|
11779
11796
|
* `groupBy=provider`. Each entry's counts sum to `totals`.
|
|
@@ -4,14 +4,14 @@ import {
|
|
|
4
4
|
} from "./chunk-VJWDBFSL.js";
|
|
5
5
|
import {
|
|
6
6
|
createApiClient
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-ZPVJ5PVB.js";
|
|
8
8
|
import {
|
|
9
9
|
CliError,
|
|
10
10
|
isMachineFormat
|
|
11
11
|
} from "./chunk-HGMYEDAQ.js";
|
|
12
12
|
import {
|
|
13
13
|
describeError
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-FYYOX7UY.js";
|
|
15
15
|
|
|
16
16
|
// src/commands/mcp.ts
|
|
17
17
|
import fs from "fs";
|
|
@@ -8,23 +8,23 @@ import {
|
|
|
8
8
|
reparseStoredResult4,
|
|
9
9
|
reparseStoredResult5,
|
|
10
10
|
resolveStoredApiResponse
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-BRNZ3G3B.js";
|
|
12
12
|
import {
|
|
13
13
|
loadConfig
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-4QYGB5IC.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-AUC47DFW.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-ZEZPTUUB.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-H3PWMM4K.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-FYYOX7UY.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-YPKAM4JJ.js");
|
|
433
433
|
const config = loadConfig();
|
|
434
434
|
const db = createClient(config.database);
|
|
435
435
|
migrate(db);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createApiClient
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-ZPVJ5PVB.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-FYYOX7UY.js";
|
|
23
23
|
|
|
24
24
|
// src/commands/run.ts
|
|
25
25
|
function getClient() {
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
isStoredPageReadTool,
|
|
6
6
|
isStoredReadTool,
|
|
7
7
|
truncateToolResult
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-ERSHLW5J.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-4QYGB5IC.js";
|
|
27
27
|
import {
|
|
28
28
|
CanonryMcpToolNames,
|
|
29
29
|
canonryMcpTools
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-UMTYAPCQ.js";
|
|
31
31
|
import {
|
|
32
32
|
createLogger
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-BTYOU24P.js";
|
|
34
34
|
import {
|
|
35
35
|
agentToolEvents,
|
|
36
36
|
llmUsageEvents
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-H3PWMM4K.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-FYYOX7UY.js";
|
|
47
47
|
|
|
48
48
|
// src/agent/session.ts
|
|
49
49
|
import fs2 from "fs";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
answerServiceAdapters,
|
|
3
3
|
answerServiceDescriptors
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-DEFHTBJV.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-KKSE52CI.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-ERSHLW5J.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-4HLR3DRQ.js";
|
|
57
57
|
import {
|
|
58
58
|
claudeAdapter,
|
|
59
59
|
embedQueries,
|
|
@@ -65,7 +65,7 @@ import {
|
|
|
65
65
|
openrouterAdapter,
|
|
66
66
|
perplexityAdapter,
|
|
67
67
|
startTrafficReclassification
|
|
68
|
-
} from "./chunk-
|
|
68
|
+
} from "./chunk-BRNZ3G3B.js";
|
|
69
69
|
import {
|
|
70
70
|
classifyUsageSurface,
|
|
71
71
|
createApiUsageTelemetry,
|
|
@@ -77,7 +77,7 @@ import {
|
|
|
77
77
|
startOutcomeTimer,
|
|
78
78
|
trackFeatureCompleted,
|
|
79
79
|
trackInstallState
|
|
80
|
-
} from "./chunk-
|
|
80
|
+
} from "./chunk-WONUYAKB.js";
|
|
81
81
|
import {
|
|
82
82
|
isLoopbackBindHost
|
|
83
83
|
} from "./chunk-TSENU4GG.js";
|
|
@@ -85,7 +85,7 @@ import {
|
|
|
85
85
|
isApiProviderRegistrable,
|
|
86
86
|
isCdpProviderRegistrable,
|
|
87
87
|
registeredProviderNames
|
|
88
|
-
} from "./chunk-
|
|
88
|
+
} from "./chunk-N2EWSWZD.js";
|
|
89
89
|
import {
|
|
90
90
|
checkLatestVersionForServer,
|
|
91
91
|
getOrCreateAnonymousId,
|
|
@@ -97,17 +97,17 @@ import {
|
|
|
97
97
|
recordDashboardEvent,
|
|
98
98
|
setTelemetryPreference,
|
|
99
99
|
trackEvent
|
|
100
|
-
} from "./chunk-
|
|
100
|
+
} from "./chunk-TY5YTNLU.js";
|
|
101
101
|
import {
|
|
102
102
|
createCanonryMcpServer
|
|
103
|
-
} from "./chunk-
|
|
103
|
+
} from "./chunk-CIP3CE2C.js";
|
|
104
104
|
import {
|
|
105
105
|
CANONRY_MCP_TIERS,
|
|
106
106
|
CANONRY_MCP_TOOLKIT_NAMES
|
|
107
107
|
} from "./chunk-MTW37GXF.js";
|
|
108
108
|
import {
|
|
109
109
|
ApiClient
|
|
110
|
-
} from "./chunk-
|
|
110
|
+
} from "./chunk-ZPVJ5PVB.js";
|
|
111
111
|
import {
|
|
112
112
|
AGENT_PROVIDERS,
|
|
113
113
|
adapterSupportsBatch,
|
|
@@ -139,21 +139,21 @@ import {
|
|
|
139
139
|
saveConfigPatch,
|
|
140
140
|
sentimentInstallReadiness,
|
|
141
141
|
updateSharedProviderExecutionGate
|
|
142
|
-
} from "./chunk-
|
|
142
|
+
} from "./chunk-4QYGB5IC.js";
|
|
143
143
|
import {
|
|
144
144
|
getBundledSkillSnapshots
|
|
145
|
-
} from "./chunk-
|
|
145
|
+
} from "./chunk-T5DH6FEH.js";
|
|
146
146
|
import {
|
|
147
147
|
computeFactorAverages,
|
|
148
148
|
deleteSiteCrawlGraphLayout,
|
|
149
149
|
persistSiteCrawlGraphLayout,
|
|
150
150
|
prepareSiteCrawlGraphLayout,
|
|
151
151
|
recordedSharePct
|
|
152
|
-
} from "./chunk-
|
|
152
|
+
} from "./chunk-3WWSOWXP.js";
|
|
153
153
|
import {
|
|
154
154
|
CanonryMcpToolNames,
|
|
155
155
|
canonryMcpTools
|
|
156
|
-
} from "./chunk-
|
|
156
|
+
} from "./chunk-UMTYAPCQ.js";
|
|
157
157
|
import {
|
|
158
158
|
PACKAGE_VERSION
|
|
159
159
|
} from "./chunk-AOJU5LKX.js";
|
|
@@ -162,16 +162,16 @@ import {
|
|
|
162
162
|
} from "./chunk-HGMYEDAQ.js";
|
|
163
163
|
import {
|
|
164
164
|
IntelligenceService
|
|
165
|
-
} from "./chunk-
|
|
165
|
+
} from "./chunk-ZTRGUTUP.js";
|
|
166
166
|
import {
|
|
167
167
|
computeCitedCompetitorDomains,
|
|
168
168
|
determineCitationState
|
|
169
|
-
} from "./chunk-
|
|
169
|
+
} from "./chunk-AUC47DFW.js";
|
|
170
170
|
import {
|
|
171
171
|
addLogListener,
|
|
172
172
|
createFastifyLogger,
|
|
173
173
|
createLogger
|
|
174
|
-
} from "./chunk-
|
|
174
|
+
} from "./chunk-BTYOU24P.js";
|
|
175
175
|
import {
|
|
176
176
|
BingApiError,
|
|
177
177
|
CC_CACHE_DIR,
|
|
@@ -316,7 +316,7 @@ import {
|
|
|
316
316
|
webhookResponseReason,
|
|
317
317
|
webhookTargetRefusalReason,
|
|
318
318
|
writeAuditLog
|
|
319
|
-
} from "./chunk-
|
|
319
|
+
} from "./chunk-ZEZPTUUB.js";
|
|
320
320
|
import {
|
|
321
321
|
OperationalLogStore,
|
|
322
322
|
SentimentIdempotencyConflict,
|
|
@@ -413,7 +413,7 @@ import {
|
|
|
413
413
|
unrecognizedAgentEventsHourly,
|
|
414
414
|
unrecognizedAgentNotifyState,
|
|
415
415
|
usageCounters
|
|
416
|
-
} from "./chunk-
|
|
416
|
+
} from "./chunk-H3PWMM4K.js";
|
|
417
417
|
import {
|
|
418
418
|
AGENT_MEMORY_VALUE_MAX_BYTES,
|
|
419
419
|
AI_ENGINE_DOMAINS,
|
|
@@ -597,6 +597,7 @@ import {
|
|
|
597
597
|
isEligibleFor,
|
|
598
598
|
isNegativeReviewRating,
|
|
599
599
|
isOpenRouterRoute,
|
|
600
|
+
isProviderAccountFailure,
|
|
600
601
|
isReadOnlyKey,
|
|
601
602
|
isRetryableHttpError,
|
|
602
603
|
isSearchLocationIgnored,
|
|
@@ -671,7 +672,7 @@ import {
|
|
|
671
672
|
winnabilityClassLabel,
|
|
672
673
|
withRetry,
|
|
673
674
|
withSkippedProviders
|
|
674
|
-
} from "./chunk-
|
|
675
|
+
} from "./chunk-FYYOX7UY.js";
|
|
675
676
|
|
|
676
677
|
// src/google-marketing-runtime.ts
|
|
677
678
|
import crypto2 from "crypto";
|
|
@@ -5975,7 +5976,7 @@ function nonBlank(value) {
|
|
|
5975
5976
|
return trimmed ? trimmed : void 0;
|
|
5976
5977
|
}
|
|
5977
5978
|
function resolveBuildCommit(env = process.env) {
|
|
5978
|
-
const embedded = true ? "
|
|
5979
|
+
const embedded = true ? "20ec7e4563f5d7afaa5657f6bedc2f8ec4b18727" : void 0;
|
|
5979
5980
|
return nonBlank(embedded) ?? nonBlank(env.CANONRY_COMMIT);
|
|
5980
5981
|
}
|
|
5981
5982
|
function resolveInstanceIdentity(env = process.env) {
|
|
@@ -10695,7 +10696,7 @@ function bingRunFailure(err) {
|
|
|
10695
10696
|
}
|
|
10696
10697
|
var BING_INSPECT_SPACING_MS = 2e3;
|
|
10697
10698
|
async function executeBingInspectSitemap(db, runId, projectId, opts) {
|
|
10698
|
-
const reportOutcome = startRunOutcome(db, runId, FeatureNames.bing, "
|
|
10699
|
+
const reportOutcome = startRunOutcome(db, runId, FeatureNames.bing, "inspect");
|
|
10699
10700
|
let abortCause;
|
|
10700
10701
|
const startedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
10701
10702
|
db.update(runs).set({ status: RunStatuses.running, startedAt }).where(eq12(runs.id, runId)).run();
|
|
@@ -16875,6 +16876,7 @@ async function compactMessages(args) {
|
|
|
16875
16876
|
// src/agent/session-registry.ts
|
|
16876
16877
|
var log27 = createLogger("SessionRegistry");
|
|
16877
16878
|
var MAX_HYDRATE_NOTES = 20;
|
|
16879
|
+
var PROVIDER_ACCOUNT_COOLDOWN_MS = 24 * 60 * 60 * 1e3;
|
|
16878
16880
|
var MAX_HYDRATE_BYTES = 32 * 1024;
|
|
16879
16881
|
function escapeMemoryFragment(value) {
|
|
16880
16882
|
return value.replace(/<(\/?)memory>/gi, "<$1\u200Cmemory>");
|
|
@@ -16891,6 +16893,8 @@ function withoutPersistedToolDetails(messages) {
|
|
|
16891
16893
|
var SessionRegistry = class {
|
|
16892
16894
|
live = /* @__PURE__ */ new Map();
|
|
16893
16895
|
pending = /* @__PURE__ */ new Map();
|
|
16896
|
+
/** Shared across projects, scoped to the provider and a digest of its credential. */
|
|
16897
|
+
providerCooldowns = /* @__PURE__ */ new Map();
|
|
16894
16898
|
/** Last tool scope used on the live Agent for a project. Read in getOrCreate to know when to swap. */
|
|
16895
16899
|
scopes = /* @__PURE__ */ new Map();
|
|
16896
16900
|
/** Last profile used on the live Agent for a project. Paired with scopes when rebuilding tools. */
|
|
@@ -17341,6 +17345,7 @@ ${lines.join("\n")}
|
|
|
17341
17345
|
*/
|
|
17342
17346
|
queueFollowUp(projectName, message) {
|
|
17343
17347
|
if (!this.proactive) return;
|
|
17348
|
+
if (this.providerCoolingDown(projectName)) return;
|
|
17344
17349
|
if (this.live.has(projectName)) {
|
|
17345
17350
|
this.appendPending(projectName, [message]);
|
|
17346
17351
|
} else {
|
|
@@ -17371,6 +17376,7 @@ ${lines.join("\n")}
|
|
|
17371
17376
|
async drainNow(projectName) {
|
|
17372
17377
|
if (!this.proactive) return;
|
|
17373
17378
|
if (!this.hasPendingWork(projectName)) return;
|
|
17379
|
+
if (this.providerCoolingDown(projectName)) return;
|
|
17374
17380
|
try {
|
|
17375
17381
|
let agent;
|
|
17376
17382
|
try {
|
|
@@ -17381,6 +17387,7 @@ ${lines.join("\n")}
|
|
|
17381
17387
|
if (err.code === "AGENT_BUSY") return;
|
|
17382
17388
|
throw err;
|
|
17383
17389
|
}
|
|
17390
|
+
if (this.providerCoolingDown(projectName)) return;
|
|
17384
17391
|
const msgs = this.consumePending(projectName);
|
|
17385
17392
|
if (msgs.length === 0) return;
|
|
17386
17393
|
await agent.prompt(msgs);
|
|
@@ -17477,12 +17484,53 @@ ${lines.join("\n")}
|
|
|
17477
17484
|
* arrives mid-CLI-turn would sit in pending until someone called drainNow.
|
|
17478
17485
|
*/
|
|
17479
17486
|
registerDrainHook(agent, projectName) {
|
|
17487
|
+
let lastRequest;
|
|
17488
|
+
const resolveApiKey = agent.getApiKey;
|
|
17489
|
+
agent.getApiKey = async (provider) => {
|
|
17490
|
+
lastRequest = void 0;
|
|
17491
|
+
const apiKey = await resolveApiKey?.(provider);
|
|
17492
|
+
const accountKey = this.providerAccountKey(provider, apiKey);
|
|
17493
|
+
lastRequest = { accountKey, cooldown: this.providerCooldowns.get(accountKey) };
|
|
17494
|
+
return apiKey;
|
|
17495
|
+
};
|
|
17480
17496
|
agent.subscribe((event) => {
|
|
17497
|
+
if (event.type === "agent_start") lastRequest = void 0;
|
|
17481
17498
|
if (event.type !== "agent_end") return;
|
|
17499
|
+
if (lastRequest) {
|
|
17500
|
+
const { accountKey, cooldown } = lastRequest;
|
|
17501
|
+
const reason = classifyProviderErrorMessage(agent.state.errorMessage ?? "");
|
|
17502
|
+
if (isProviderAccountFailure(reason)) {
|
|
17503
|
+
const retryAt = Date.now() + PROVIDER_ACCOUNT_COOLDOWN_MS;
|
|
17504
|
+
this.providerCooldowns.set(accountKey, { retryAt });
|
|
17505
|
+
log27.warn("provider.background-paused", {
|
|
17506
|
+
projectName,
|
|
17507
|
+
provider: agent.state.model.provider,
|
|
17508
|
+
reason,
|
|
17509
|
+
retryAt: new Date(retryAt).toISOString(),
|
|
17510
|
+
recovery: "Fix the provider credentials or billing, then send Aero a prompt to retry now."
|
|
17511
|
+
});
|
|
17512
|
+
} else if (aeroTurnStatus(agent)?.reason === "completed" && this.providerCooldowns.get(accountKey) === cooldown) {
|
|
17513
|
+
this.providerCooldowns.delete(accountKey);
|
|
17514
|
+
}
|
|
17515
|
+
}
|
|
17482
17516
|
if ((this.pending.get(projectName) ?? []).length === 0) return;
|
|
17483
17517
|
void this.drainNow(projectName);
|
|
17484
17518
|
});
|
|
17485
17519
|
}
|
|
17520
|
+
providerAccountKey(provider, apiKey) {
|
|
17521
|
+
const canonical = coerceAgentProvider(provider);
|
|
17522
|
+
const vendor = canonical ? getAgentProvider(canonical).piAiProvider : provider;
|
|
17523
|
+
return crypto24.createHash("sha256").update(JSON.stringify([vendor, apiKey ?? ""])).digest("hex");
|
|
17524
|
+
}
|
|
17525
|
+
providerCoolingDown(projectName) {
|
|
17526
|
+
for (const [key, cooldown] of this.providerCooldowns) {
|
|
17527
|
+
if (cooldown.retryAt <= Date.now()) this.providerCooldowns.delete(key);
|
|
17528
|
+
}
|
|
17529
|
+
const provider = this.turnProvider(projectName);
|
|
17530
|
+
if (provider === void 0) return false;
|
|
17531
|
+
const vendor = getAgentProvider(provider).piAiProvider;
|
|
17532
|
+
return this.providerCooldowns.has(this.providerAccountKey(vendor, resolveApiKeyFor(vendor, this.opts.config)));
|
|
17533
|
+
}
|
|
17486
17534
|
resolveProjectId(projectName) {
|
|
17487
17535
|
const id = this.tryResolveProjectId(projectName);
|
|
17488
17536
|
if (!id) throw new Error(`Project "${projectName}" not found`);
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
resolveCliAccess,
|
|
4
4
|
resolveCliAccessForInvocation,
|
|
5
5
|
windowOptions
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-P6ZDIVFZ.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-FYYOX7UY.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-CFCLMVSK.js");
|
|
115
115
|
const group2 = argsWithoutHelp.find((arg) => !arg.startsWith("--"));
|
|
116
116
|
printCliCatalog2(specs, fallbackFormat, group2, accessValue);
|
|
117
117
|
return true;
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
loadConfig,
|
|
6
6
|
loadConfigRaw,
|
|
7
7
|
saveConfigPatch
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-4QYGB5IC.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-FYYOX7UY.js";
|
|
22
22
|
|
|
23
23
|
// src/runtime-context.ts
|
|
24
24
|
function cliRuntimeContext(env = process.env, stdio = process) {
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createApiClient
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-ZPVJ5PVB.js";
|
|
4
4
|
import {
|
|
5
5
|
emitJsonl
|
|
6
6
|
} from "./chunk-Z7IUAJOF.js";
|
|
7
7
|
import {
|
|
8
8
|
measurementDraftOperationSchema,
|
|
9
9
|
runMeasurementDraftAction
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-XYQMPYWE.js";
|
|
11
11
|
import {
|
|
12
12
|
isMachineFormat,
|
|
13
13
|
systemError
|
|
@@ -37,7 +37,7 @@ import {
|
|
|
37
37
|
unattributedAnswersLabel,
|
|
38
38
|
uncheckedSourcesLabel,
|
|
39
39
|
visibilityReportRequestSchema
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-FYYOX7UY.js";
|
|
41
41
|
|
|
42
42
|
// src/commands/measurement-plan.ts
|
|
43
43
|
import crypto from "crypto";
|
|
@@ -2,11 +2,11 @@ import {
|
|
|
2
2
|
dedupeGscSitemapUrls,
|
|
3
3
|
resolveDiscoveredGscSitemapUrls,
|
|
4
4
|
submitGscSitemapBatches
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-76KBMLPR.js";
|
|
6
6
|
import {
|
|
7
7
|
measurementDraftOperationSchema,
|
|
8
8
|
runMeasurementDraftAction
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-XYQMPYWE.js";
|
|
10
10
|
import {
|
|
11
11
|
CliError
|
|
12
12
|
} from "./chunk-HGMYEDAQ.js";
|
|
@@ -187,7 +187,7 @@ import {
|
|
|
187
187
|
trendSurfaceSchema,
|
|
188
188
|
visibilityCompareSelectionSchema,
|
|
189
189
|
visibilityReportRequestSchema
|
|
190
|
-
} from "./chunk-
|
|
190
|
+
} from "./chunk-FYYOX7UY.js";
|
|
191
191
|
|
|
192
192
|
// src/mcp/tool-registry.ts
|
|
193
193
|
import { z as z2 } from "zod";
|
|
@@ -2087,7 +2087,7 @@ var rawCanonryMcpTools = [
|
|
|
2087
2087
|
month: z2.string().optional().describe("Aggregate one calendar month (YYYY-MM), expanded to that month's inclusive UTC bounds. Mutually exclusive with since/until/lastRuns."),
|
|
2088
2088
|
groupBy: z2.enum(["provider"]).optional().describe('Set to "provider" for a per-provider breakdown.'),
|
|
2089
2089
|
shareOfVoice: z2.boolean().optional().describe("Include brand-mention share with tracked/observed basis and availability across the same window (non-brand queries unless queryClass says otherwise)."),
|
|
2090
|
-
queryClass: z2.enum(["branded", "non-brand"]).optional().describe('Query class for shareOfVoice. Defaults to non-brand. There is no "all": branded and non-brand never share a denominator.')
|
|
2090
|
+
queryClass: z2.enum(["branded", "non-brand"]).optional().describe('Query class for shareOfVoice. Defaults to non-brand. There is no "all": branded and non-brand never share a denominator. It does not filter the counts: `totals` pools both classes, and `byQueryClass` (plus `queryClass` on each query) carries the split.')
|
|
2091
2091
|
}),
|
|
2092
2092
|
annotations: readAnnotations(),
|
|
2093
2093
|
openApiOperations: ["GET /api/v1/projects/{name}/visibility-stats"],
|