@ainyc/canonry 4.99.0 → 4.100.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 +13 -1
- package/assets/assets/{BacklinksPage-CuWs7I1D.js → BacklinksPage-DWZdWEm3.js} +1 -1
- package/assets/assets/{ChartPrimitives-bm37tprp.js → ChartPrimitives-C-ky5206.js} +1 -1
- package/assets/assets/ProjectPage-CpbFpi6J.js +6 -0
- package/assets/assets/{RunRow-DzhQl87g.js → RunRow-Bj-D4kZe.js} +1 -1
- package/assets/assets/{RunsPage-wOaewhbF.js → RunsPage-GktitsAV.js} +1 -1
- package/assets/assets/{SettingsPage-CJdhhkkE.js → SettingsPage-AsFLFDS3.js} +1 -1
- package/assets/assets/{TrafficPage-BJBeN5Ph.js → TrafficPage-Cf3uCkxs.js} +1 -1
- package/assets/assets/{TrafficSourceDetailPage-D3PmH0B1.js → TrafficSourceDetailPage-B5t7nf9C.js} +1 -1
- package/assets/assets/{arrow-left-BmITMI6O.js → arrow-left-CZFQuQO_.js} +1 -1
- package/assets/assets/{extract-error-message-BGwnyAfP.js → extract-error-message--bieZ2IX.js} +1 -1
- package/assets/assets/index-9hI0ODQU.css +1 -0
- package/assets/assets/index-Cb2h7KkD.js +210 -0
- package/assets/assets/{trash-2-Bd2mkP_w.js → trash-2-sKO0k75f.js} +1 -1
- package/assets/index.html +2 -2
- package/dist/{chunk-CEHD33NQ.js → chunk-74SOIAIY.js} +262 -119
- package/dist/{chunk-CWFTMFEU.js → chunk-ADLS64PG.js} +117 -3
- package/dist/{chunk-DJVUNURL.js → chunk-SNHYRSUF.js} +401 -40
- package/dist/{chunk-VQN74WWA.js → chunk-UVIHWF45.js} +27 -1
- package/dist/cli.js +110 -4
- package/dist/index.js +4 -4
- package/dist/{intelligence-service-QHBXW4KI.js → intelligence-service-3CRNJLUZ.js} +2 -2
- package/dist/mcp.js +2 -2
- package/package.json +10 -10
- package/assets/assets/ProjectPage-BksYe8FP.js +0 -6
- package/assets/assets/index-BSX6r6ju.js +0 -210
- package/assets/assets/index-BsZNCwg8.css +0 -1
|
@@ -3455,6 +3455,93 @@ var projectSearchResponseSchema = z24.object({
|
|
|
3455
3455
|
truncated: z24.boolean(),
|
|
3456
3456
|
hits: z24.array(projectSearchHitSchema)
|
|
3457
3457
|
});
|
|
3458
|
+
var portfolioChangeTypeSchema = z24.enum([
|
|
3459
|
+
"citation-gained",
|
|
3460
|
+
"citation-lost",
|
|
3461
|
+
"mention-gained",
|
|
3462
|
+
"mention-lost",
|
|
3463
|
+
"run-failed",
|
|
3464
|
+
"insight-critical",
|
|
3465
|
+
"insight-high",
|
|
3466
|
+
"stale-visibility",
|
|
3467
|
+
"query-set-changed",
|
|
3468
|
+
"project-never-run"
|
|
3469
|
+
]);
|
|
3470
|
+
var PortfolioChangeTypes = portfolioChangeTypeSchema.enum;
|
|
3471
|
+
var portfolioChangeSchema = z24.object({
|
|
3472
|
+
id: z24.string(),
|
|
3473
|
+
projectName: z24.string(),
|
|
3474
|
+
projectSlug: z24.string(),
|
|
3475
|
+
changeType: portfolioChangeTypeSchema,
|
|
3476
|
+
tone: metricToneSchema,
|
|
3477
|
+
title: z24.string(),
|
|
3478
|
+
detail: z24.string(),
|
|
3479
|
+
occurredAt: z24.string(),
|
|
3480
|
+
href: z24.string().nullable(),
|
|
3481
|
+
actionLabel: z24.string().nullable(),
|
|
3482
|
+
comparable: z24.boolean()
|
|
3483
|
+
});
|
|
3484
|
+
var portfolioRunSchema = z24.object({
|
|
3485
|
+
runId: z24.string(),
|
|
3486
|
+
projectName: z24.string(),
|
|
3487
|
+
projectSlug: z24.string(),
|
|
3488
|
+
kindLabel: z24.string(),
|
|
3489
|
+
status: runStatusSchema,
|
|
3490
|
+
createdAt: z24.string(),
|
|
3491
|
+
startedAt: z24.string().nullable(),
|
|
3492
|
+
finishedAt: z24.string().nullable(),
|
|
3493
|
+
durationMs: z24.number().nullable(),
|
|
3494
|
+
mentionedCount: z24.number().int().nonnegative().nullable(),
|
|
3495
|
+
citedCount: z24.number().int().nonnegative().nullable(),
|
|
3496
|
+
totalCount: z24.number().int().nonnegative().nullable(),
|
|
3497
|
+
errorSummary: z24.string().nullable()
|
|
3498
|
+
});
|
|
3499
|
+
var portfolioProjectRowSchema = z24.object({
|
|
3500
|
+
projectSlug: z24.string(),
|
|
3501
|
+
projectName: z24.string(),
|
|
3502
|
+
canonicalDomain: z24.string(),
|
|
3503
|
+
mentionScore: z24.number(),
|
|
3504
|
+
mentionTone: metricToneSchema,
|
|
3505
|
+
mentionedOfTotal: z24.object({
|
|
3506
|
+
mentioned: z24.number().int().nonnegative(),
|
|
3507
|
+
total: z24.number().int().nonnegative()
|
|
3508
|
+
}),
|
|
3509
|
+
citedOfTotal: z24.object({
|
|
3510
|
+
cited: z24.number().int().nonnegative(),
|
|
3511
|
+
total: z24.number().int().nonnegative()
|
|
3512
|
+
}),
|
|
3513
|
+
mentionDelta: z24.object({
|
|
3514
|
+
gained: z24.number().int().nonnegative(),
|
|
3515
|
+
lost: z24.number().int().nonnegative(),
|
|
3516
|
+
comparable: z24.boolean()
|
|
3517
|
+
}),
|
|
3518
|
+
citationDelta: z24.object({
|
|
3519
|
+
gained: z24.number().int().nonnegative(),
|
|
3520
|
+
lost: z24.number().int().nonnegative(),
|
|
3521
|
+
comparable: z24.boolean()
|
|
3522
|
+
}),
|
|
3523
|
+
competitorPressureLabel: z24.string(),
|
|
3524
|
+
mentionTrend: z24.array(z24.number()),
|
|
3525
|
+
lastRunAt: z24.string().nullable(),
|
|
3526
|
+
hasEverRun: z24.boolean()
|
|
3527
|
+
});
|
|
3528
|
+
var portfolioFeedEmptyStateSchema = z24.object({
|
|
3529
|
+
kind: z24.enum(["all-clear", "awaiting-second-sweep"]),
|
|
3530
|
+
title: z24.string(),
|
|
3531
|
+
detail: z24.string()
|
|
3532
|
+
});
|
|
3533
|
+
var portfolioDtoSchema = z24.object({
|
|
3534
|
+
generatedAt: z24.string(),
|
|
3535
|
+
lastSweepAt: z24.string().nullable(),
|
|
3536
|
+
projectCount: z24.number().int().nonnegative(),
|
|
3537
|
+
comparableProjectCount: z24.number().int().nonnegative(),
|
|
3538
|
+
firstSweepProjectCount: z24.number().int().nonnegative(),
|
|
3539
|
+
changeFeed: z24.array(portfolioChangeSchema),
|
|
3540
|
+
changeFeedTotal: z24.number().int().nonnegative(),
|
|
3541
|
+
feedEmptyState: portfolioFeedEmptyStateSchema.nullable(),
|
|
3542
|
+
recentRuns: z24.array(portfolioRunSchema),
|
|
3543
|
+
projects: z24.array(portfolioProjectRowSchema)
|
|
3544
|
+
});
|
|
3458
3545
|
|
|
3459
3546
|
// ../contracts/src/content.ts
|
|
3460
3547
|
import { z as z25 } from "zod";
|
|
@@ -3998,12 +4085,15 @@ var citationScorecardSchema = z28.object({
|
|
|
3998
4085
|
providers: z28.array(z28.string()),
|
|
3999
4086
|
/** matrix[queryIndex][providerIndex] — null when no snapshot exists for the pair. */
|
|
4000
4087
|
matrix: z28.array(z28.array(citationCellSchema.nullable())),
|
|
4001
|
-
/** Per-provider citation
|
|
4088
|
+
/** Per-provider citation + mention rates (0..100). */
|
|
4002
4089
|
providerRates: z28.array(z28.object({
|
|
4003
4090
|
provider: z28.string(),
|
|
4004
4091
|
citedCount: z28.number(),
|
|
4092
|
+
/** Number of snapshots for this provider where the answer text mentioned the project. */
|
|
4093
|
+
mentionedCount: z28.number(),
|
|
4005
4094
|
totalCount: z28.number(),
|
|
4006
|
-
citationRate: z28.number()
|
|
4095
|
+
citationRate: z28.number(),
|
|
4096
|
+
mentionRate: z28.number()
|
|
4007
4097
|
}))
|
|
4008
4098
|
});
|
|
4009
4099
|
var competitorRowSchema = z28.object({
|
|
@@ -4274,7 +4364,11 @@ var citationsTrendPointSchema = z28.object({
|
|
|
4274
4364
|
* within that provider (`cited / scanned`), so it remains comparable
|
|
4275
4365
|
* between providers in the same run.
|
|
4276
4366
|
*/
|
|
4277
|
-
providerRates: z28.array(z28.object({
|
|
4367
|
+
providerRates: z28.array(z28.object({
|
|
4368
|
+
provider: z28.string(),
|
|
4369
|
+
citationRate: z28.number(),
|
|
4370
|
+
mentionRate: z28.number()
|
|
4371
|
+
}))
|
|
4278
4372
|
});
|
|
4279
4373
|
var reportInsightSchema = z28.object({
|
|
4280
4374
|
id: z28.string(),
|
|
@@ -4356,6 +4450,8 @@ var whatsChangedSectionSchema = z28.object({
|
|
|
4356
4450
|
mentionRate: reportRateDeltaSchema.nullable(),
|
|
4357
4451
|
/** Cited query count delta vs the prior completed run. Null when no prior run. */
|
|
4358
4452
|
citedQueryCount: reportRateDeltaSchema.nullable(),
|
|
4453
|
+
/** Mentioned query count delta vs the prior completed run. Null when no prior run. */
|
|
4454
|
+
mentionedQueryCount: reportRateDeltaSchema.nullable(),
|
|
4359
4455
|
/**
|
|
4360
4456
|
* GSC clicks delta — the most recent `comparisonWindowDays` of `gsc.trend`
|
|
4361
4457
|
* vs the `comparisonWindowDays` before that. Null when GSC isn't connected
|
|
@@ -5084,6 +5180,21 @@ function formatDateRange(start, end) {
|
|
|
5084
5180
|
if (start && end) return `${formatDate(start)} \u2192 ${formatDate(end)}`;
|
|
5085
5181
|
return formatDate(start || end);
|
|
5086
5182
|
}
|
|
5183
|
+
function formatRelativeTime(fromIso, nowIso) {
|
|
5184
|
+
if (!fromIso) return "\u2014";
|
|
5185
|
+
const from = Date.parse(fromIso);
|
|
5186
|
+
const now = Date.parse(nowIso);
|
|
5187
|
+
if (Number.isNaN(from) || Number.isNaN(now)) return formatDate(fromIso);
|
|
5188
|
+
const diffMs = now - from;
|
|
5189
|
+
if (diffMs < 6e4) return "just now";
|
|
5190
|
+
const minutes = Math.floor(diffMs / 6e4);
|
|
5191
|
+
if (minutes < 60) return `${minutes}m ago`;
|
|
5192
|
+
const hours = Math.floor(minutes / 60);
|
|
5193
|
+
if (hours < 24) return `${hours}h ago`;
|
|
5194
|
+
const days = Math.floor(hours / 24);
|
|
5195
|
+
if (days <= 7) return `${days}d ago`;
|
|
5196
|
+
return formatDate(fromIso);
|
|
5197
|
+
}
|
|
5087
5198
|
var DATE_ONLY_PATTERN = /^\d{4}-\d{2}-\d{2}$/;
|
|
5088
5199
|
function parseInclusiveEndMs(iso) {
|
|
5089
5200
|
const ms = Date.parse(iso);
|
|
@@ -5571,6 +5682,8 @@ export {
|
|
|
5571
5682
|
ccAvailableReleaseSchema,
|
|
5572
5683
|
ccCachedReleaseSchema,
|
|
5573
5684
|
projectOverviewDtoSchema,
|
|
5685
|
+
PortfolioChangeTypes,
|
|
5686
|
+
portfolioDtoSchema,
|
|
5574
5687
|
ContentActions,
|
|
5575
5688
|
contentActionLabel,
|
|
5576
5689
|
actionConfidenceLabel,
|
|
@@ -5643,6 +5756,7 @@ export {
|
|
|
5643
5756
|
formatDate,
|
|
5644
5757
|
formatIsoDate,
|
|
5645
5758
|
formatDateRange,
|
|
5759
|
+
formatRelativeTime,
|
|
5646
5760
|
parseInclusiveEndMs,
|
|
5647
5761
|
deltaPercent,
|
|
5648
5762
|
deltaTone,
|