@canonry/canonry 4.180.0 → 4.180.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.
|
@@ -157,7 +157,7 @@ import {
|
|
|
157
157
|
siteCrawlSnapshots,
|
|
158
158
|
toAlertView,
|
|
159
159
|
usageCounters
|
|
160
|
-
} from "./chunk-
|
|
160
|
+
} from "./chunk-VEEHINTY.js";
|
|
161
161
|
import {
|
|
162
162
|
AGENT_MEMORY_VALUE_MAX_BYTES,
|
|
163
163
|
AGENT_PROVIDER_IDS,
|
|
@@ -11857,7 +11857,7 @@ function readStoredGroundingSources(rawResponse) {
|
|
|
11857
11857
|
return result;
|
|
11858
11858
|
}
|
|
11859
11859
|
async function backfillInsightsCommand(project, opts) {
|
|
11860
|
-
const { IntelligenceService: IntelligenceService2 } = await import("./intelligence-service-
|
|
11860
|
+
const { IntelligenceService: IntelligenceService2 } = await import("./intelligence-service-NHAF7V6L.js");
|
|
11861
11861
|
const config = loadConfig();
|
|
11862
11862
|
const db = createClient(config.database);
|
|
11863
11863
|
migrate(db);
|
|
@@ -26874,20 +26874,26 @@ function buildReportActionPlan(input) {
|
|
|
26874
26874
|
});
|
|
26875
26875
|
}
|
|
26876
26876
|
if (actions.length === 0) {
|
|
26877
|
+
const neverMeasured = input.citationScorecard.providers.length === 0;
|
|
26877
26878
|
actions.push({
|
|
26878
26879
|
audience: "both",
|
|
26879
26880
|
priority: 90,
|
|
26880
26881
|
horizon: "short-term",
|
|
26881
26882
|
category: "monitoring",
|
|
26882
|
-
title: "Keep monitoring citation and mention coverage",
|
|
26883
|
-
action: "Run the next scheduled check and watch for citation gains, losses, and engine-specific misses.",
|
|
26884
|
-
why: [
|
|
26883
|
+
title: neverMeasured ? "Run the first visibility check" : "Keep monitoring citation and mention coverage",
|
|
26884
|
+
action: neverMeasured ? "Run an answer-visibility check to establish the first citation and mention baseline." : "Run the next scheduled check and watch for citation gains, losses, and engine-specific misses.",
|
|
26885
|
+
why: neverMeasured ? [
|
|
26886
|
+
"No answer-engine check has completed for this project, so there is no citation or mention evidence to act on yet.",
|
|
26887
|
+
"The rest of this report can only describe what was measured, and this signal has not been measured once."
|
|
26888
|
+
] : [
|
|
26885
26889
|
"No urgent corrective action surfaced from the current evidence.",
|
|
26886
26890
|
"AEO performance is directional; repeated checks are needed before overreacting to a single sample."
|
|
26887
26891
|
],
|
|
26888
|
-
evidence: [
|
|
26889
|
-
|
|
26890
|
-
|
|
26892
|
+
evidence: [
|
|
26893
|
+
neverMeasured ? "No completed answer-engine snapshots exist for this project, so nothing could be detected either way." : "No critical insights, content gaps, indexing blockers, or provider-zero issues were detected in this report."
|
|
26894
|
+
],
|
|
26895
|
+
successMetric: neverMeasured ? "A first check completes and produces a citation and mention baseline." : "Coverage stays stable or improves across the next trend window.",
|
|
26896
|
+
confidence: neverMeasured ? "high" : "medium"
|
|
26891
26897
|
});
|
|
26892
26898
|
}
|
|
26893
26899
|
return actions.sort((a, b) => a.priority - b.priority).slice(0, 10);
|
|
@@ -26952,14 +26958,17 @@ function buildAgencyDiagnostics(input) {
|
|
|
26952
26958
|
});
|
|
26953
26959
|
}
|
|
26954
26960
|
if (input.indexingHealth) {
|
|
26961
|
+
const inspected = input.indexingHealth.total > 0;
|
|
26962
|
+
const provider = input.indexingHealth.provider ?? "the connected provider";
|
|
26955
26963
|
diagnostics.push({
|
|
26956
26964
|
title: "Indexing health",
|
|
26957
|
-
detail: `${input.indexingHealth.indexedPct}% of inspected URLs are indexed in ${
|
|
26958
|
-
|
|
26959
|
-
|
|
26965
|
+
detail: inspected ? `${input.indexingHealth.indexedPct}% of inspected URLs are indexed in ${provider}.` : `No URLs have been inspected in ${provider} yet, so indexing coverage is not measured.`,
|
|
26966
|
+
// Not measured is not a finding, so it must not carry a finding's tone.
|
|
26967
|
+
severity: !inspected ? "neutral" : input.indexingHealth.indexedPct >= 90 ? "positive" : input.indexingHealth.indexedPct >= 70 ? "caution" : "negative",
|
|
26968
|
+
evidence: inspected ? [
|
|
26960
26969
|
`${input.indexingHealth.indexed}/${input.indexingHealth.total} indexed`,
|
|
26961
26970
|
`${input.indexingHealth.notIndexed} not indexed`
|
|
26962
|
-
]
|
|
26971
|
+
] : ["0 URLs inspected"]
|
|
26963
26972
|
});
|
|
26964
26973
|
}
|
|
26965
26974
|
diagnostics.push({
|
package/dist/cli.js
CHANGED
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
showFirstRunNotice,
|
|
27
27
|
trackCliCommandFinished,
|
|
28
28
|
trackEvent
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-BJAZWJNH.js";
|
|
30
30
|
import {
|
|
31
31
|
autoSyncSkills,
|
|
32
32
|
formatAutoSyncNotice
|
|
@@ -69,7 +69,7 @@ import {
|
|
|
69
69
|
projects,
|
|
70
70
|
queries,
|
|
71
71
|
renderReportHtml
|
|
72
|
-
} from "./chunk-
|
|
72
|
+
} from "./chunk-VEEHINTY.js";
|
|
73
73
|
import {
|
|
74
74
|
AdsDeliverySnapshotStatuses,
|
|
75
75
|
AdsHistoricalCampaignRollupStatuses,
|
package/dist/index.js
CHANGED
|
@@ -3,11 +3,11 @@ import {
|
|
|
3
3
|
createGoogleMarketingCredentialStore,
|
|
4
4
|
createGoogleMarketingRuntime,
|
|
5
5
|
createServer
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-BJAZWJNH.js";
|
|
7
7
|
import {
|
|
8
8
|
loadConfig
|
|
9
9
|
} from "./chunk-NFALEGSZ.js";
|
|
10
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-VEEHINTY.js";
|
|
11
11
|
import "./chunk-3JW762Q4.js";
|
|
12
12
|
export {
|
|
13
13
|
GoogleMarketingRuntimeError,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@canonry/canonry",
|
|
3
|
-
"version": "4.180.
|
|
3
|
+
"version": "4.180.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Self-hosted AI visibility (AEO) platform: track how ChatGPT, Claude, Gemini, and Perplexity cite your domain, join it with Search Console, GA4, server-side traffic, and paid media, and fix what you find through agent tools (CLI, REST, MCP). Local SQLite.",
|
|
6
6
|
"license": "FSL-1.1-ALv2",
|
|
@@ -70,31 +70,31 @@
|
|
|
70
70
|
"@types/node-cron": "^3.0.11",
|
|
71
71
|
"tsup": "^8.5.1",
|
|
72
72
|
"tsx": "^4.19.0",
|
|
73
|
-
"@ainyc/canonry-api-client": "0.0.0",
|
|
74
73
|
"@ainyc/canonry-api-routes": "0.0.0",
|
|
74
|
+
"@ainyc/canonry-api-client": "0.0.0",
|
|
75
75
|
"@ainyc/canonry-config": "0.0.0",
|
|
76
76
|
"@ainyc/canonry-contracts": "0.0.0",
|
|
77
77
|
"@ainyc/canonry-db": "0.0.0",
|
|
78
|
-
"@ainyc/canonry-integration-cloud-run": "0.0.0",
|
|
79
78
|
"@ainyc/canonry-integration-bing": "0.0.0",
|
|
79
|
+
"@ainyc/canonry-integration-cloud-run": "0.0.0",
|
|
80
80
|
"@ainyc/canonry-integration-cloudflare-queue": "0.0.0",
|
|
81
81
|
"@ainyc/canonry-integration-cloudflare-worker": "0.0.0",
|
|
82
82
|
"@ainyc/canonry-integration-commoncrawl": "0.0.0",
|
|
83
83
|
"@ainyc/canonry-integration-google": "0.0.0",
|
|
84
|
-
"@ainyc/canonry-integration-google-business-profile": "0.0.0",
|
|
85
84
|
"@ainyc/canonry-integration-google-ads": "0.0.0",
|
|
86
|
-
"@ainyc/canonry-integration-google-
|
|
87
|
-
"@ainyc/canonry-integration-openai-ads": "0.0.0",
|
|
88
|
-
"@ainyc/canonry-integration-traffic": "0.0.0",
|
|
85
|
+
"@ainyc/canonry-integration-google-business-profile": "0.0.0",
|
|
89
86
|
"@ainyc/canonry-integration-google-places": "0.0.0",
|
|
87
|
+
"@ainyc/canonry-integration-traffic": "0.0.0",
|
|
88
|
+
"@ainyc/canonry-integration-openai-ads": "0.0.0",
|
|
90
89
|
"@ainyc/canonry-integration-wordpress": "0.0.0",
|
|
90
|
+
"@ainyc/canonry-integration-google-tag-manager": "0.0.0",
|
|
91
91
|
"@ainyc/canonry-intelligence": "0.0.0",
|
|
92
92
|
"@ainyc/canonry-provider-cdp": "0.0.0",
|
|
93
|
-
"@ainyc/canonry-provider-gemini": "0.0.0",
|
|
94
93
|
"@ainyc/canonry-provider-claude": "0.0.0",
|
|
94
|
+
"@ainyc/canonry-provider-gemini": "0.0.0",
|
|
95
95
|
"@ainyc/canonry-provider-local": "0.0.0",
|
|
96
|
-
"@ainyc/canonry-provider-
|
|
97
|
-
"@ainyc/canonry-provider-
|
|
96
|
+
"@ainyc/canonry-provider-perplexity": "0.0.0",
|
|
97
|
+
"@ainyc/canonry-provider-openai": "0.0.0"
|
|
98
98
|
},
|
|
99
99
|
"scripts": {
|
|
100
100
|
"build": "tsx scripts/copy-agent-assets.ts && tsup && tsx build-web.ts",
|