@ainyc/canonry 4.114.1 → 4.115.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/assets/{BacklinksPage-C60ma4Sg.js → BacklinksPage-yUb8oJuq.js} +1 -1
- package/assets/assets/{ChartPrimitives-Blgw1l6J.js → ChartPrimitives-CdQM3YDG.js} +1 -1
- package/assets/assets/ProjectPage-CHj9fvTs.js +7 -0
- package/assets/assets/{RunRow-DgQiXWZl.js → RunRow-BU_x7EcP.js} +1 -1
- package/assets/assets/{RunsPage-C9upHccV.js → RunsPage-CFIBWaO7.js} +1 -1
- package/assets/assets/{SettingsPage-Bz_-_DnJ.js → SettingsPage-PyMryUad.js} +1 -1
- package/assets/assets/{TrafficPage-BhBnQl2N.js → TrafficPage-471ypAdQ.js} +1 -1
- package/assets/assets/{TrafficSourceDetailPage-DWXqcRNO.js → TrafficSourceDetailPage-CI7TEQge.js} +1 -1
- package/assets/assets/{arrow-left-C6SuuEtD.js → arrow-left-D2N9u-0i.js} +1 -1
- package/assets/assets/{extract-error-message-DPZ5yqzd.js → extract-error-message-CAdsqKp3.js} +1 -1
- package/assets/assets/index-B4R1-8hR.css +1 -0
- package/assets/assets/{index-C3oQZHf8.js → index-CoL5HENE.js} +66 -66
- package/assets/assets/{trash-2-D3Nju7AK.js → trash-2-UgQrN5Np.js} +1 -1
- package/assets/index.html +2 -2
- package/dist/{chunk-VEUBAZRG.js → chunk-6LOKMEL3.js} +101 -0
- package/dist/{chunk-WMWZW34J.js → chunk-B2SNXXAJ.js} +4 -4
- package/dist/{chunk-DUBZH5JW.js → chunk-CW4JISBL.js} +1 -1
- package/dist/{chunk-3VSTTH4M.js → chunk-Z3OGDQHB.js} +489 -244
- package/dist/cli.js +52 -8
- package/dist/index.js +4 -4
- package/dist/{intelligence-service-I5EQ77KZ.js → intelligence-service-4AWB2V7U.js} +2 -2
- package/dist/mcp.js +2 -2
- package/package.json +8 -8
- package/assets/assets/ProjectPage-DfvEEwNU.js +0 -7
- package/assets/assets/index-CReX5Jn9.css +0 -1
package/dist/cli.js
CHANGED
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
setTelemetrySource,
|
|
30
30
|
showFirstRunNotice,
|
|
31
31
|
trackEvent
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-B2SNXXAJ.js";
|
|
33
33
|
import {
|
|
34
34
|
CliError,
|
|
35
35
|
EXIT_SYSTEM_ERROR,
|
|
@@ -46,7 +46,7 @@ import {
|
|
|
46
46
|
saveConfig,
|
|
47
47
|
saveConfigPatch,
|
|
48
48
|
usageError
|
|
49
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-CW4JISBL.js";
|
|
50
50
|
import {
|
|
51
51
|
apiKeys,
|
|
52
52
|
createClient,
|
|
@@ -54,7 +54,7 @@ import {
|
|
|
54
54
|
projects,
|
|
55
55
|
queries,
|
|
56
56
|
renderReportHtml
|
|
57
|
-
} from "./chunk-
|
|
57
|
+
} from "./chunk-Z3OGDQHB.js";
|
|
58
58
|
import {
|
|
59
59
|
BacklinkSources,
|
|
60
60
|
CcReleaseSyncStatuses,
|
|
@@ -80,7 +80,7 @@ import {
|
|
|
80
80
|
providerQuotaPolicySchema,
|
|
81
81
|
resolveProviderInput,
|
|
82
82
|
winnabilityClassSchema
|
|
83
|
-
} from "./chunk-
|
|
83
|
+
} from "./chunk-6LOKMEL3.js";
|
|
84
84
|
|
|
85
85
|
// src/cli.ts
|
|
86
86
|
import { pathToFileURL } from "url";
|
|
@@ -3060,17 +3060,22 @@ async function gaTraffic(project, opts) {
|
|
|
3060
3060
|
if (result.aiSessionsDeduped > 0) {
|
|
3061
3061
|
const share = result.totalSessions > 0 ? Math.round(result.aiSessionsDeduped / result.totalSessions * 100) : 0;
|
|
3062
3062
|
console.log(` AI Sessions (deduped): ${result.aiSessionsDeduped} (${share}% of total)`);
|
|
3063
|
+
if (result.paidAiSessionsDeduped > 0) {
|
|
3064
|
+
console.log(` Paid AI: ${result.paidAiSessionsDeduped} (${result.paidAiSharePctDisplay} of total)`);
|
|
3065
|
+
}
|
|
3063
3066
|
}
|
|
3064
3067
|
console.log();
|
|
3065
3068
|
if (result.aiReferrals.length > 0) {
|
|
3066
3069
|
const attrWidth = 12;
|
|
3070
|
+
const classWidth = 8;
|
|
3067
3071
|
console.log(" AI REFERRAL SOURCES");
|
|
3068
|
-
console.log(` ${"SOURCE".padEnd(25)} ${"MEDIUM".padEnd(15)} ${"ATTRIBUTION".padEnd(attrWidth)} ${"SESSIONS".padEnd(10)}${"USERS".padEnd(8)}`);
|
|
3069
|
-
console.log(` ${"\u2500".repeat(25)} ${"\u2500".repeat(15)} ${"\u2500".repeat(attrWidth)} ${"\u2500".repeat(10)}${"\u2500".repeat(8)}`);
|
|
3072
|
+
console.log(` ${"SOURCE".padEnd(25)} ${"MEDIUM".padEnd(15)} ${"CLASS".padEnd(classWidth)} ${"ATTRIBUTION".padEnd(attrWidth)} ${"SESSIONS".padEnd(10)}${"USERS".padEnd(8)}`);
|
|
3073
|
+
console.log(` ${"\u2500".repeat(25)} ${"\u2500".repeat(15)} ${"\u2500".repeat(classWidth)} ${"\u2500".repeat(attrWidth)} ${"\u2500".repeat(10)}${"\u2500".repeat(8)}`);
|
|
3070
3074
|
for (const ref of result.aiReferrals) {
|
|
3071
3075
|
const dimLabel = ref.sourceDimension === "first_user" ? "first-visit" : ref.sourceDimension === "manual_utm" ? "utm" : "session";
|
|
3076
|
+
const classLabel = ref.trafficClass === "paid" ? "paid" : "organic";
|
|
3072
3077
|
console.log(
|
|
3073
|
-
` ${ref.source.padEnd(25)} ${ref.medium.padEnd(15)} ${dimLabel.padEnd(attrWidth)} ${String(ref.sessions).padEnd(10)}${String(ref.users).padEnd(8)}`
|
|
3078
|
+
` ${ref.source.padEnd(25)} ${ref.medium.padEnd(15)} ${classLabel.padEnd(classWidth)} ${dimLabel.padEnd(attrWidth)} ${String(ref.sessions).padEnd(10)}${String(ref.users).padEnd(8)}`
|
|
3074
3079
|
);
|
|
3075
3080
|
}
|
|
3076
3081
|
console.log();
|
|
@@ -3305,19 +3310,35 @@ async function gaAttribution(project, opts) {
|
|
|
3305
3310
|
organicSessions: traffic.totalOrganicSessions,
|
|
3306
3311
|
aiSessions: traffic.aiSessionsDeduped,
|
|
3307
3312
|
aiUsers: traffic.aiUsersDeduped,
|
|
3313
|
+
paidAiSessions: traffic.paidAiSessionsDeduped,
|
|
3314
|
+
paidAiUsers: traffic.paidAiUsersDeduped,
|
|
3315
|
+
organicAiSessions: traffic.organicAiSessionsDeduped,
|
|
3316
|
+
organicAiUsers: traffic.organicAiUsersDeduped,
|
|
3308
3317
|
aiSessionsBySession: traffic.aiSessionsBySession,
|
|
3309
3318
|
aiUsersBySession: traffic.aiUsersBySession,
|
|
3319
|
+
paidAiSessionsBySession: traffic.paidAiSessionsBySession,
|
|
3320
|
+
paidAiUsersBySession: traffic.paidAiUsersBySession,
|
|
3321
|
+
organicAiSessionsBySession: traffic.organicAiSessionsBySession,
|
|
3322
|
+
organicAiUsersBySession: traffic.organicAiUsersBySession,
|
|
3310
3323
|
socialSessions: traffic.socialSessions,
|
|
3311
3324
|
socialUsers: traffic.socialUsers,
|
|
3312
3325
|
directSessions: traffic.totalDirectSessions,
|
|
3313
3326
|
aiSharePct: traffic.aiSharePct,
|
|
3314
3327
|
aiSharePctBySession: traffic.aiSharePctBySession,
|
|
3328
|
+
paidAiSharePct: traffic.paidAiSharePct,
|
|
3329
|
+
paidAiSharePctBySession: traffic.paidAiSharePctBySession,
|
|
3330
|
+
organicAiSharePct: traffic.organicAiSharePct,
|
|
3331
|
+
organicAiSharePctBySession: traffic.organicAiSharePctBySession,
|
|
3315
3332
|
socialSharePct: traffic.socialSharePct,
|
|
3316
3333
|
organicSharePct: traffic.organicSharePct,
|
|
3317
3334
|
directSharePct: traffic.directSharePct,
|
|
3318
3335
|
organicSharePctDisplay: traffic.organicSharePctDisplay,
|
|
3319
3336
|
aiSharePctDisplay: traffic.aiSharePctDisplay,
|
|
3320
3337
|
aiSharePctBySessionDisplay: traffic.aiSharePctBySessionDisplay,
|
|
3338
|
+
paidAiSharePctDisplay: traffic.paidAiSharePctDisplay,
|
|
3339
|
+
paidAiSharePctBySessionDisplay: traffic.paidAiSharePctBySessionDisplay,
|
|
3340
|
+
organicAiSharePctDisplay: traffic.organicAiSharePctDisplay,
|
|
3341
|
+
organicAiSharePctBySessionDisplay: traffic.organicAiSharePctBySessionDisplay,
|
|
3321
3342
|
socialSharePctDisplay: traffic.socialSharePctDisplay,
|
|
3322
3343
|
directSharePctDisplay: traffic.directSharePctDisplay,
|
|
3323
3344
|
otherSessions: traffic.otherSessions,
|
|
@@ -3345,6 +3366,9 @@ async function gaAttribution(project, opts) {
|
|
|
3345
3366
|
console.log(` Social: ${String(traffic.channelBreakdown.social.sessions).padEnd(6)} (${traffic.channelBreakdown.social.sharePctDisplay.padStart(4)}) ${fmtTrend(trend.social.trend7dPct).padEnd(12)} ${fmtTrend(trend.social.trend30dPct)}`);
|
|
3346
3367
|
console.log(` Direct: ${String(traffic.channelBreakdown.direct.sessions).padEnd(6)} (${traffic.channelBreakdown.direct.sharePctDisplay.padStart(4)}) ${fmtTrend(trend.direct.trend7dPct).padEnd(12)} ${fmtTrend(trend.direct.trend30dPct)}`);
|
|
3347
3368
|
console.log(` AI Referrals: ${String(traffic.channelBreakdown.ai.sessions).padEnd(6)} (${traffic.channelBreakdown.ai.sharePctDisplay.padStart(4)}) ${fmtTrend(trend.ai.trend7dPct).padEnd(12)} ${fmtTrend(trend.ai.trend30dPct)} (lower bound \u2014 sessionSource only; referrer-stripped traffic falls under Direct)`);
|
|
3369
|
+
if (traffic.paidAiSessionsBySession > 0) {
|
|
3370
|
+
console.log(` Paid AI: ${String(traffic.paidAiSessionsBySession).padEnd(6)} (${traffic.paidAiSharePctBySessionDisplay.padStart(4)})`);
|
|
3371
|
+
}
|
|
3348
3372
|
console.log(` Other: ${String(traffic.channelBreakdown.other.sessions).padEnd(6)} (${traffic.channelBreakdown.other.sharePctDisplay.padStart(4)})`);
|
|
3349
3373
|
console.log(` \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500`);
|
|
3350
3374
|
console.log(` Total: ${String(traffic.totalSessions).padEnd(6)} ${fmtTrend(trend.total.trend7dPct).padEnd(12)} ${fmtTrend(trend.total.trend30dPct)}`);
|
|
@@ -3373,19 +3397,35 @@ async function gaAttribution(project, opts) {
|
|
|
3373
3397
|
organicSessions: traffic.totalOrganicSessions,
|
|
3374
3398
|
aiSessions: traffic.aiSessionsDeduped,
|
|
3375
3399
|
aiUsers: traffic.aiUsersDeduped,
|
|
3400
|
+
paidAiSessions: traffic.paidAiSessionsDeduped,
|
|
3401
|
+
paidAiUsers: traffic.paidAiUsersDeduped,
|
|
3402
|
+
organicAiSessions: traffic.organicAiSessionsDeduped,
|
|
3403
|
+
organicAiUsers: traffic.organicAiUsersDeduped,
|
|
3376
3404
|
aiSessionsBySession: traffic.aiSessionsBySession,
|
|
3377
3405
|
aiUsersBySession: traffic.aiUsersBySession,
|
|
3406
|
+
paidAiSessionsBySession: traffic.paidAiSessionsBySession,
|
|
3407
|
+
paidAiUsersBySession: traffic.paidAiUsersBySession,
|
|
3408
|
+
organicAiSessionsBySession: traffic.organicAiSessionsBySession,
|
|
3409
|
+
organicAiUsersBySession: traffic.organicAiUsersBySession,
|
|
3378
3410
|
socialSessions: traffic.socialSessions,
|
|
3379
3411
|
socialUsers: traffic.socialUsers,
|
|
3380
3412
|
directSessions: traffic.totalDirectSessions,
|
|
3381
3413
|
aiSharePct: traffic.aiSharePct,
|
|
3382
3414
|
aiSharePctBySession: traffic.aiSharePctBySession,
|
|
3415
|
+
paidAiSharePct: traffic.paidAiSharePct,
|
|
3416
|
+
paidAiSharePctBySession: traffic.paidAiSharePctBySession,
|
|
3417
|
+
organicAiSharePct: traffic.organicAiSharePct,
|
|
3418
|
+
organicAiSharePctBySession: traffic.organicAiSharePctBySession,
|
|
3383
3419
|
socialSharePct: traffic.socialSharePct,
|
|
3384
3420
|
organicSharePct: traffic.organicSharePct,
|
|
3385
3421
|
directSharePct: traffic.directSharePct,
|
|
3386
3422
|
organicSharePctDisplay: traffic.organicSharePctDisplay,
|
|
3387
3423
|
aiSharePctDisplay: traffic.aiSharePctDisplay,
|
|
3388
3424
|
aiSharePctBySessionDisplay: traffic.aiSharePctBySessionDisplay,
|
|
3425
|
+
paidAiSharePctDisplay: traffic.paidAiSharePctDisplay,
|
|
3426
|
+
paidAiSharePctBySessionDisplay: traffic.paidAiSharePctBySessionDisplay,
|
|
3427
|
+
organicAiSharePctDisplay: traffic.organicAiSharePctDisplay,
|
|
3428
|
+
organicAiSharePctBySessionDisplay: traffic.organicAiSharePctBySessionDisplay,
|
|
3389
3429
|
socialSharePctDisplay: traffic.socialSharePctDisplay,
|
|
3390
3430
|
directSharePctDisplay: traffic.directSharePctDisplay,
|
|
3391
3431
|
otherSessions: traffic.otherSessions,
|
|
@@ -3414,13 +3454,17 @@ async function gaAttribution(project, opts) {
|
|
|
3414
3454
|
console.log(` Social: ${traffic.channelBreakdown.social.sessions} sessions (${traffic.channelBreakdown.social.sharePctDisplay})`);
|
|
3415
3455
|
console.log(` Direct: ${traffic.channelBreakdown.direct.sessions} sessions (${traffic.channelBreakdown.direct.sharePctDisplay})`);
|
|
3416
3456
|
console.log(` AI Referrals: ${traffic.channelBreakdown.ai.sessions} sessions (${traffic.channelBreakdown.ai.sharePctDisplay}) (lower bound \u2014 sessionSource only; referrer-stripped traffic falls under Direct)`);
|
|
3457
|
+
if (traffic.paidAiSessionsBySession > 0) {
|
|
3458
|
+
console.log(` Paid AI: ${traffic.paidAiSessionsBySession} sessions (${traffic.paidAiSharePctBySessionDisplay})`);
|
|
3459
|
+
}
|
|
3417
3460
|
console.log(` Other: ${traffic.channelBreakdown.other.sessions} sessions (${traffic.channelBreakdown.other.sharePctDisplay})`);
|
|
3418
3461
|
if (traffic.aiReferrals.length > 0) {
|
|
3419
3462
|
console.log();
|
|
3420
3463
|
console.log(" AI SOURCES");
|
|
3421
3464
|
for (const ref of traffic.aiReferrals.slice(0, 10)) {
|
|
3422
3465
|
const dimLabel = ref.sourceDimension === "first_user" ? "first-visit" : ref.sourceDimension === "manual_utm" ? "utm" : "session";
|
|
3423
|
-
|
|
3466
|
+
const classLabel = ref.trafficClass === "paid" ? "paid" : "organic";
|
|
3467
|
+
console.log(` ${ref.source.padEnd(25)} ${String(ref.sessions).padEnd(8)} sessions (${classLabel}, ${dimLabel})`);
|
|
3424
3468
|
}
|
|
3425
3469
|
}
|
|
3426
3470
|
if (traffic.aiReferralLandingPages.length > 0) {
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createServer
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-B2SNXXAJ.js";
|
|
4
4
|
import {
|
|
5
5
|
loadConfig
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-CW4JISBL.js";
|
|
7
|
+
import "./chunk-Z3OGDQHB.js";
|
|
8
|
+
import "./chunk-6LOKMEL3.js";
|
|
9
9
|
export {
|
|
10
10
|
createServer,
|
|
11
11
|
loadConfig
|
package/dist/mcp.js
CHANGED
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
PACKAGE_VERSION,
|
|
4
4
|
canonryMcpTools,
|
|
5
5
|
createApiClient
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-CW4JISBL.js";
|
|
7
7
|
import {
|
|
8
8
|
isReadOnlyKey
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-6LOKMEL3.js";
|
|
10
10
|
|
|
11
11
|
// src/mcp/cli.ts
|
|
12
12
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ainyc/canonry",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.115.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Agent-first open-source AEO operating platform - track how answer engines cite your domain",
|
|
6
6
|
"license": "FSL-1.1-ALv2",
|
|
@@ -66,22 +66,22 @@
|
|
|
66
66
|
"tsup": "^8.5.1",
|
|
67
67
|
"tsx": "^4.19.0",
|
|
68
68
|
"@ainyc/canonry-api-client": "0.0.0",
|
|
69
|
-
"@ainyc/canonry-api-routes": "0.0.0",
|
|
70
69
|
"@ainyc/canonry-config": "0.0.0",
|
|
71
|
-
"@ainyc/canonry-db": "0.0.0",
|
|
72
70
|
"@ainyc/canonry-contracts": "0.0.0",
|
|
71
|
+
"@ainyc/canonry-api-routes": "0.0.0",
|
|
72
|
+
"@ainyc/canonry-db": "0.0.0",
|
|
73
73
|
"@ainyc/canonry-integration-bing": "0.0.0",
|
|
74
|
-
"@ainyc/canonry-integration-
|
|
74
|
+
"@ainyc/canonry-integration-cloud-run": "0.0.0",
|
|
75
75
|
"@ainyc/canonry-integration-commoncrawl": "0.0.0",
|
|
76
76
|
"@ainyc/canonry-integration-google": "0.0.0",
|
|
77
|
-
"@ainyc/canonry-integration-
|
|
77
|
+
"@ainyc/canonry-integration-openai-ads": "0.0.0",
|
|
78
78
|
"@ainyc/canonry-integration-google-business-profile": "0.0.0",
|
|
79
79
|
"@ainyc/canonry-integration-google-places": "0.0.0",
|
|
80
80
|
"@ainyc/canonry-integration-traffic": "0.0.0",
|
|
81
|
-
"@ainyc/canonry-integration-wordpress": "0.0.0",
|
|
82
|
-
"@ainyc/canonry-provider-cdp": "0.0.0",
|
|
83
|
-
"@ainyc/canonry-provider-claude": "0.0.0",
|
|
84
81
|
"@ainyc/canonry-intelligence": "0.0.0",
|
|
82
|
+
"@ainyc/canonry-provider-claude": "0.0.0",
|
|
83
|
+
"@ainyc/canonry-provider-cdp": "0.0.0",
|
|
84
|
+
"@ainyc/canonry-integration-wordpress": "0.0.0",
|
|
85
85
|
"@ainyc/canonry-provider-gemini": "0.0.0",
|
|
86
86
|
"@ainyc/canonry-provider-openai": "0.0.0",
|
|
87
87
|
"@ainyc/canonry-provider-perplexity": "0.0.0",
|