@ainyc/canonry 4.51.4 → 4.53.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/assets/{BacklinksPage-9TlM08Wf.js → BacklinksPage-DELb5ok3.js} +1 -1
- package/assets/assets/ProjectPage-CM_uQa2L.js +6 -0
- package/assets/assets/{RunRow-D7qdWWRl.js → RunRow-aqJEr7XJ.js} +1 -1
- package/assets/assets/{RunsPage-CvewepfU.js → RunsPage-Dhuj1w72.js} +1 -1
- package/assets/assets/{SettingsPage-C7BvAhiB.js → SettingsPage-B2_vxr4y.js} +1 -1
- package/assets/assets/{TrafficPage-DC3NhFOh.js → TrafficPage-BKaiZRIH.js} +1 -1
- package/assets/assets/TrafficSourceDetailPage-DXIQ4g9S.js +1 -0
- package/assets/assets/{arrow-left-Agb02DMK.js → arrow-left-CYjzP3M3.js} +1 -1
- package/assets/assets/{index-DTCZ93Ne.js → index-BStwmAg6.js} +55 -55
- package/assets/assets/{index-DeGyEwik.css → index-Bm3JQsW0.css} +1 -1
- package/assets/assets/{server-traffic-C-0Ndjpw.js → server-traffic-D_1gSi-b.js} +1 -1
- package/assets/assets/{trash-2-lkrXVRRm.js → trash-2-8JiADnUJ.js} +1 -1
- package/assets/index.html +2 -2
- package/dist/{chunk-HMZKIOLG.js → chunk-J7MX3YOH.js} +1 -1
- package/dist/{chunk-QZ5XSM6C.js → chunk-JHAHNKSN.js} +103 -1
- package/dist/{chunk-WBO5S3IX.js → chunk-KVE7RLBI.js} +452 -63
- package/dist/{chunk-FYGBW3SM.js → chunk-VZPDBHBW.js} +29 -1
- package/dist/cli.js +40 -27
- package/dist/index.js +4 -4
- package/dist/{intelligence-service-2XL2M7QP.js → intelligence-service-OCREQUCQ.js} +2 -2
- package/dist/mcp.js +2 -2
- package/package.json +10 -10
- package/assets/assets/ProjectPage-CD591qDz.js +0 -6
- package/assets/assets/TrafficSourceDetailPage-BvtTA6rs.js +0 -1
|
@@ -2646,6 +2646,15 @@ var serverActivitySectionSchema = z21.object({
|
|
|
2646
2646
|
verifiedCrawlerHits: z21.object({ current: z21.number(), prior: z21.number(), deltaPct: z21.number().nullable() }),
|
|
2647
2647
|
/** Last-7d total unverified crawler hits, separated from verified trust metrics. */
|
|
2648
2648
|
unverifiedCrawlerHits: z21.object({ current: z21.number(), prior: z21.number(), deltaPct: z21.number().nullable() }),
|
|
2649
|
+
/**
|
|
2650
|
+
* Last-7d on-demand per-user fetches from AI surfaces (ChatGPT-User,
|
|
2651
|
+
* Perplexity-User, MistralAI-User). Disjoint from `verifiedCrawlerHits` /
|
|
2652
|
+
* `unverifiedCrawlerHits` — those measure bulk crawl; this measures human
|
|
2653
|
+
* users asking an AI to read a URL. Counts verified + unverified together
|
|
2654
|
+
* because the operational question for user-fetch is "is this happening?"
|
|
2655
|
+
* not "is this a confirmed bot identity?"
|
|
2656
|
+
*/
|
|
2657
|
+
aiUserFetchHits: z21.object({ current: z21.number(), prior: z21.number(), deltaPct: z21.number().nullable() }),
|
|
2649
2658
|
/** Last-7d AI-referral sessions (sessionized from server-side request evidence). */
|
|
2650
2659
|
referralArrivals: z21.object({ current: z21.number(), prior: z21.number(), deltaPct: z21.number().nullable() }),
|
|
2651
2660
|
/** Per-AI-operator breakdown (OpenAI, Anthropic, Google AI, Perplexity, …). */
|
|
@@ -2654,6 +2663,8 @@ var serverActivitySectionSchema = z21.object({
|
|
|
2654
2663
|
verifiedHits: z21.number(),
|
|
2655
2664
|
/** Shown to agency audience only — claimed-bot UA, rDNS not confirmed. */
|
|
2656
2665
|
unverifiedHits: z21.number(),
|
|
2666
|
+
/** Per-user fetches from this operator's AI surface (ChatGPT-User, …). */
|
|
2667
|
+
userFetchHits: z21.number(),
|
|
2657
2668
|
referralArrivals: z21.number(),
|
|
2658
2669
|
deltaPct: z21.number().nullable()
|
|
2659
2670
|
})),
|
|
@@ -2681,6 +2692,7 @@ var serverActivitySectionSchema = z21.object({
|
|
|
2681
2692
|
dailyTrend: z21.array(z21.object({
|
|
2682
2693
|
date: z21.string(),
|
|
2683
2694
|
verifiedCrawlerHits: z21.number(),
|
|
2695
|
+
userFetchHits: z21.number(),
|
|
2684
2696
|
referralArrivals: z21.number()
|
|
2685
2697
|
})),
|
|
2686
2698
|
/**
|
|
@@ -3198,9 +3210,11 @@ var trafficSyncResponseSchema = z23.object({
|
|
|
3198
3210
|
syncedAt: z23.string(),
|
|
3199
3211
|
pulledEvents: z23.number().int().nonnegative(),
|
|
3200
3212
|
crawlerHits: z23.number().int().nonnegative(),
|
|
3213
|
+
aiUserFetchHits: z23.number().int().nonnegative(),
|
|
3201
3214
|
aiReferralHits: z23.number().int().nonnegative(),
|
|
3202
3215
|
unknownHits: z23.number().int().nonnegative(),
|
|
3203
3216
|
crawlerBucketRows: z23.number().int().nonnegative(),
|
|
3217
|
+
aiUserFetchBucketRows: z23.number().int().nonnegative(),
|
|
3204
3218
|
aiReferralBucketRows: z23.number().int().nonnegative(),
|
|
3205
3219
|
sampleRows: z23.number().int().nonnegative(),
|
|
3206
3220
|
windowStart: z23.string(),
|
|
@@ -3222,6 +3236,7 @@ var trafficBackfillResponseSchema = z23.object({
|
|
|
3222
3236
|
});
|
|
3223
3237
|
var trafficSourceTotalsSchema = z23.object({
|
|
3224
3238
|
crawlerHits: z23.number().int().nonnegative(),
|
|
3239
|
+
aiUserFetchHits: z23.number().int().nonnegative(),
|
|
3225
3240
|
aiReferralHits: z23.number().int().nonnegative(),
|
|
3226
3241
|
sampleCount: z23.number().int().nonnegative()
|
|
3227
3242
|
});
|
|
@@ -3241,7 +3256,7 @@ var trafficSourceDetailDtoSchema = trafficSourceDtoSchema.extend({
|
|
|
3241
3256
|
var trafficStatusResponseSchema = z23.object({
|
|
3242
3257
|
sources: z23.array(trafficSourceDetailDtoSchema)
|
|
3243
3258
|
});
|
|
3244
|
-
var trafficEventKindSchema = z23.enum(["crawler", "ai-referral"]);
|
|
3259
|
+
var trafficEventKindSchema = z23.enum(["crawler", "ai-user-fetch", "ai-referral"]);
|
|
3245
3260
|
var TrafficEventKinds = trafficEventKindSchema.enum;
|
|
3246
3261
|
var trafficCrawlerEventEntrySchema = z23.object({
|
|
3247
3262
|
kind: z23.literal(TrafficEventKinds.crawler),
|
|
@@ -3254,6 +3269,17 @@ var trafficCrawlerEventEntrySchema = z23.object({
|
|
|
3254
3269
|
status: z23.number().int(),
|
|
3255
3270
|
hits: z23.number().int().nonnegative()
|
|
3256
3271
|
});
|
|
3272
|
+
var trafficAiUserFetchEventEntrySchema = z23.object({
|
|
3273
|
+
kind: z23.literal(TrafficEventKinds["ai-user-fetch"]),
|
|
3274
|
+
sourceId: z23.string(),
|
|
3275
|
+
tsHour: z23.string(),
|
|
3276
|
+
botId: z23.string(),
|
|
3277
|
+
operator: z23.string(),
|
|
3278
|
+
verificationStatus: z23.string(),
|
|
3279
|
+
pathNormalized: z23.string(),
|
|
3280
|
+
status: z23.number().int(),
|
|
3281
|
+
hits: z23.number().int().nonnegative()
|
|
3282
|
+
});
|
|
3257
3283
|
var trafficAiReferralEventEntrySchema = z23.object({
|
|
3258
3284
|
kind: z23.literal(TrafficEventKinds["ai-referral"]),
|
|
3259
3285
|
sourceId: z23.string(),
|
|
@@ -3268,6 +3294,7 @@ var trafficAiReferralEventEntrySchema = z23.object({
|
|
|
3268
3294
|
});
|
|
3269
3295
|
var trafficEventEntrySchema = z23.discriminatedUnion("kind", [
|
|
3270
3296
|
trafficCrawlerEventEntrySchema,
|
|
3297
|
+
trafficAiUserFetchEventEntrySchema,
|
|
3271
3298
|
trafficAiReferralEventEntrySchema
|
|
3272
3299
|
]);
|
|
3273
3300
|
var trafficEventsResponseSchema = z23.object({
|
|
@@ -3275,6 +3302,7 @@ var trafficEventsResponseSchema = z23.object({
|
|
|
3275
3302
|
windowEnd: z23.string(),
|
|
3276
3303
|
totals: z23.object({
|
|
3277
3304
|
crawlerHits: z23.number().int().nonnegative(),
|
|
3305
|
+
aiUserFetchHits: z23.number().int().nonnegative(),
|
|
3278
3306
|
aiReferralHits: z23.number().int().nonnegative()
|
|
3279
3307
|
}),
|
|
3280
3308
|
events: z23.array(trafficEventEntrySchema)
|
package/dist/cli.js
CHANGED
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
setTelemetrySource,
|
|
24
24
|
showFirstRunNotice,
|
|
25
25
|
trackEvent
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-KVE7RLBI.js";
|
|
27
27
|
import {
|
|
28
28
|
CliError,
|
|
29
29
|
EXIT_SYSTEM_ERROR,
|
|
@@ -39,14 +39,14 @@ import {
|
|
|
39
39
|
saveConfig,
|
|
40
40
|
saveConfigPatch,
|
|
41
41
|
usageError
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-J7MX3YOH.js";
|
|
43
43
|
import {
|
|
44
44
|
apiKeys,
|
|
45
45
|
createClient,
|
|
46
46
|
migrate,
|
|
47
47
|
projects,
|
|
48
48
|
queries
|
|
49
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-JHAHNKSN.js";
|
|
50
50
|
import {
|
|
51
51
|
CcReleaseSyncStatuses,
|
|
52
52
|
CheckScopes,
|
|
@@ -65,7 +65,7 @@ import {
|
|
|
65
65
|
providerQuotaPolicySchema,
|
|
66
66
|
resolveProviderInput,
|
|
67
67
|
skillsClientSchema
|
|
68
|
-
} from "./chunk-
|
|
68
|
+
} from "./chunk-VZPDBHBW.js";
|
|
69
69
|
|
|
70
70
|
// src/cli.ts
|
|
71
71
|
import { pathToFileURL } from "url";
|
|
@@ -3310,33 +3310,45 @@ async function trafficStatus(project, opts) {
|
|
|
3310
3310
|
}
|
|
3311
3311
|
}
|
|
3312
3312
|
function formatEventLine(event) {
|
|
3313
|
-
|
|
3314
|
-
|
|
3315
|
-
|
|
3316
|
-
|
|
3317
|
-
|
|
3318
|
-
|
|
3319
|
-
|
|
3320
|
-
|
|
3321
|
-
|
|
3322
|
-
|
|
3313
|
+
switch (event.kind) {
|
|
3314
|
+
case TrafficEventKinds.crawler:
|
|
3315
|
+
return [
|
|
3316
|
+
event.tsHour,
|
|
3317
|
+
"crawler",
|
|
3318
|
+
event.botId,
|
|
3319
|
+
event.verificationStatus,
|
|
3320
|
+
String(event.status),
|
|
3321
|
+
event.pathNormalized,
|
|
3322
|
+
`${event.hits} hits`
|
|
3323
|
+
].join(" ");
|
|
3324
|
+
case TrafficEventKinds["ai-user-fetch"]:
|
|
3325
|
+
return [
|
|
3326
|
+
event.tsHour,
|
|
3327
|
+
"ai-user-fetch",
|
|
3328
|
+
event.botId,
|
|
3329
|
+
event.verificationStatus,
|
|
3330
|
+
String(event.status),
|
|
3331
|
+
event.pathNormalized,
|
|
3332
|
+
`${event.hits} hits`
|
|
3333
|
+
].join(" ");
|
|
3334
|
+
case TrafficEventKinds["ai-referral"]:
|
|
3335
|
+
return [
|
|
3336
|
+
event.tsHour,
|
|
3337
|
+
"ai-referral",
|
|
3338
|
+
event.product,
|
|
3339
|
+
event.evidenceType,
|
|
3340
|
+
event.sourceDomain,
|
|
3341
|
+
event.landingPathNormalized,
|
|
3342
|
+
`${event.hits} hits`
|
|
3343
|
+
].join(" ");
|
|
3323
3344
|
}
|
|
3324
|
-
return [
|
|
3325
|
-
event.tsHour,
|
|
3326
|
-
"ai-referral",
|
|
3327
|
-
event.product,
|
|
3328
|
-
event.evidenceType,
|
|
3329
|
-
event.sourceDomain,
|
|
3330
|
-
event.landingPathNormalized,
|
|
3331
|
-
`${event.hits} hits`
|
|
3332
|
-
].join(" ");
|
|
3333
3345
|
}
|
|
3334
3346
|
async function trafficEvents(project, opts) {
|
|
3335
|
-
if (opts.kind && opts.kind !== "all" && opts.kind !== TrafficEventKinds.crawler && opts.kind !== TrafficEventKinds["ai-referral"]) {
|
|
3347
|
+
if (opts.kind && opts.kind !== "all" && opts.kind !== TrafficEventKinds.crawler && opts.kind !== TrafficEventKinds["ai-user-fetch"] && opts.kind !== TrafficEventKinds["ai-referral"]) {
|
|
3336
3348
|
throw new CliError({
|
|
3337
3349
|
code: "TRAFFIC_INVALID_KIND",
|
|
3338
|
-
message: `--kind must be one of: all, ${TrafficEventKinds.crawler}, ${TrafficEventKinds["ai-referral"]}`,
|
|
3339
|
-
displayMessage: `Error: --kind must be "all", "${TrafficEventKinds.crawler}", or "${TrafficEventKinds["ai-referral"]}"`,
|
|
3350
|
+
message: `--kind must be one of: all, ${TrafficEventKinds.crawler}, ${TrafficEventKinds["ai-user-fetch"]}, ${TrafficEventKinds["ai-referral"]}`,
|
|
3351
|
+
displayMessage: `Error: --kind must be "all", "${TrafficEventKinds.crawler}", "${TrafficEventKinds["ai-user-fetch"]}", or "${TrafficEventKinds["ai-referral"]}"`,
|
|
3340
3352
|
details: { project, kind: opts.kind }
|
|
3341
3353
|
});
|
|
3342
3354
|
}
|
|
@@ -3358,7 +3370,8 @@ async function trafficEvents(project, opts) {
|
|
|
3358
3370
|
return;
|
|
3359
3371
|
}
|
|
3360
3372
|
console.log(`Traffic events for "${project}" ${result.windowStart} \u2192 ${result.windowEnd}`);
|
|
3361
|
-
console.log(` Crawler hits (window):
|
|
3373
|
+
console.log(` Crawler hits (window): ${result.totals.crawlerHits}`);
|
|
3374
|
+
console.log(` AI user-fetch hits (window): ${result.totals.aiUserFetchHits}`);
|
|
3362
3375
|
console.log(` AI referral sessions (window): ${result.totals.aiReferralHits}`);
|
|
3363
3376
|
console.log("");
|
|
3364
3377
|
if (result.events.length === 0) {
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createServer
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-KVE7RLBI.js";
|
|
4
4
|
import {
|
|
5
5
|
loadConfig
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-J7MX3YOH.js";
|
|
7
|
+
import "./chunk-JHAHNKSN.js";
|
|
8
|
+
import "./chunk-VZPDBHBW.js";
|
|
9
9
|
export {
|
|
10
10
|
createServer,
|
|
11
11
|
loadConfig
|
package/dist/mcp.js
CHANGED
|
@@ -2,8 +2,8 @@ import {
|
|
|
2
2
|
CliError,
|
|
3
3
|
canonryMcpTools,
|
|
4
4
|
createApiClient
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-J7MX3YOH.js";
|
|
6
|
+
import "./chunk-VZPDBHBW.js";
|
|
7
7
|
|
|
8
8
|
// src/mcp/cli.ts
|
|
9
9
|
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.53.0",
|
|
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",
|
|
@@ -61,23 +61,23 @@
|
|
|
61
61
|
"tsup": "^8.5.1",
|
|
62
62
|
"tsx": "^4.19.0",
|
|
63
63
|
"@ainyc/canonry-api-client": "0.0.0",
|
|
64
|
-
"@ainyc/canonry-config": "0.0.0",
|
|
65
|
-
"@ainyc/canonry-contracts": "0.0.0",
|
|
66
|
-
"@ainyc/canonry-db": "0.0.0",
|
|
67
64
|
"@ainyc/canonry-api-routes": "0.0.0",
|
|
65
|
+
"@ainyc/canonry-contracts": "0.0.0",
|
|
66
|
+
"@ainyc/canonry-integration-cloud-run": "0.0.0",
|
|
67
|
+
"@ainyc/canonry-config": "0.0.0",
|
|
68
|
+
"@ainyc/canonry-integration-google": "0.0.0",
|
|
68
69
|
"@ainyc/canonry-intelligence": "0.0.0",
|
|
69
70
|
"@ainyc/canonry-integration-commoncrawl": "0.0.0",
|
|
70
|
-
"@ainyc/canonry-
|
|
71
|
+
"@ainyc/canonry-db": "0.0.0",
|
|
71
72
|
"@ainyc/canonry-integration-bing": "0.0.0",
|
|
72
|
-
"@ainyc/canonry-integration-traffic": "0.0.0",
|
|
73
|
-
"@ainyc/canonry-integration-google": "0.0.0",
|
|
74
73
|
"@ainyc/canonry-integration-wordpress": "0.0.0",
|
|
75
74
|
"@ainyc/canonry-provider-cdp": "0.0.0",
|
|
75
|
+
"@ainyc/canonry-integration-traffic": "0.0.0",
|
|
76
|
+
"@ainyc/canonry-provider-gemini": "0.0.0",
|
|
76
77
|
"@ainyc/canonry-provider-claude": "0.0.0",
|
|
78
|
+
"@ainyc/canonry-provider-perplexity": "0.0.0",
|
|
77
79
|
"@ainyc/canonry-provider-local": "0.0.0",
|
|
78
|
-
"@ainyc/canonry-provider-openai": "0.0.0"
|
|
79
|
-
"@ainyc/canonry-provider-gemini": "0.0.0",
|
|
80
|
-
"@ainyc/canonry-provider-perplexity": "0.0.0"
|
|
80
|
+
"@ainyc/canonry-provider-openai": "0.0.0"
|
|
81
81
|
},
|
|
82
82
|
"scripts": {
|
|
83
83
|
"build": "tsx scripts/copy-agent-assets.ts && tsup && tsx build-web.ts",
|