@ainyc/canonry 4.84.0 → 4.85.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/aero/references/regression-playbook.md +2 -0
- package/assets/agent-workspace/skills/canonry/references/canonry-cli.md +19 -0
- package/assets/assets/{BacklinksPage-OrSg_iPA.js → BacklinksPage-CDAv0ggn.js} +1 -1
- package/assets/assets/{ChartPrimitives-DPBhAT_r.js → ChartPrimitives-CnAmsyt7.js} +1 -1
- package/assets/assets/{ProjectPage-CpMcEmtw.js → ProjectPage-C9KEgRxD.js} +1 -1
- package/assets/assets/{RunRow-2Rty0BAH.js → RunRow-CVZ5o8fg.js} +1 -1
- package/assets/assets/{RunsPage-B3ahqf8s.js → RunsPage-Bzy5c0MZ.js} +1 -1
- package/assets/assets/{SettingsPage-BIjeI85q.js → SettingsPage-B1ocxPBe.js} +1 -1
- package/assets/assets/{TrafficPage-DjGoj691.js → TrafficPage-D2zepQOC.js} +1 -1
- package/assets/assets/{TrafficSourceDetailPage-BgKG-2q3.js → TrafficSourceDetailPage-C7JuAkaK.js} +1 -1
- package/assets/assets/{arrow-left-Cf7wmru1.js → arrow-left-Bv3CWylm.js} +1 -1
- package/assets/assets/{extract-error-message-CANxezte.js → extract-error-message-BtVid5TP.js} +1 -1
- package/assets/assets/{index-CGlPx_cu.js → index-DmNti_xn.js} +72 -72
- package/assets/assets/{trash-2-6nHJZrvy.js → trash-2-BoimCsYz.js} +1 -1
- package/assets/index.html +1 -1
- package/dist/{chunk-VJBO4VIK.js → chunk-3K3QRSYE.js} +620 -422
- package/dist/{chunk-Y3O3HBMN.js → chunk-62YB3ML7.js} +49 -1
- package/dist/{chunk-M3IYKTSF.js → chunk-7BMSWI2K.js} +4 -4
- package/dist/{chunk-BNF3HXBW.js → chunk-I2BJC3DT.js} +1021 -942
- package/dist/cli.js +151 -20
- package/dist/index.js +4 -4
- package/dist/{intelligence-service-PDIAMP5I.js → intelligence-service-AHHBQKRD.js} +2 -2
- package/dist/mcp.js +2 -2
- package/package.json +9 -9
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
trafficConnectVercelRequestSchema,
|
|
24
24
|
trafficConnectWordpressRequestSchema,
|
|
25
25
|
trafficEventKindSchema
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-I2BJC3DT.js";
|
|
27
27
|
|
|
28
28
|
// src/config.ts
|
|
29
29
|
import fs from "fs";
|
|
@@ -1538,6 +1538,18 @@ var getApiV1ProjectsByNameAnalyticsSources = (options) => {
|
|
|
1538
1538
|
...options
|
|
1539
1539
|
});
|
|
1540
1540
|
};
|
|
1541
|
+
var getApiV1ProjectsByNameVisibilityStats = (options) => {
|
|
1542
|
+
return (options.client ?? client).get({
|
|
1543
|
+
security: [
|
|
1544
|
+
{
|
|
1545
|
+
scheme: "bearer",
|
|
1546
|
+
type: "http"
|
|
1547
|
+
}
|
|
1548
|
+
],
|
|
1549
|
+
url: "/api/v1/projects/{name}/visibility-stats",
|
|
1550
|
+
...options
|
|
1551
|
+
});
|
|
1552
|
+
};
|
|
1541
1553
|
var getApiV1ProjectsByNameSnapshotsDiff = (options) => {
|
|
1542
1554
|
return (options.client ?? client).get({
|
|
1543
1555
|
security: [
|
|
@@ -5062,6 +5074,20 @@ var ApiClient = class {
|
|
|
5062
5074
|
() => getApiV1ProjectsByNameCitationsVisibility({ client: this.heyClient, path: { name: project } })
|
|
5063
5075
|
);
|
|
5064
5076
|
}
|
|
5077
|
+
async getVisibilityStats(project, opts = {}) {
|
|
5078
|
+
return this.invoke(
|
|
5079
|
+
() => getApiV1ProjectsByNameVisibilityStats({
|
|
5080
|
+
client: this.heyClient,
|
|
5081
|
+
path: { name: project },
|
|
5082
|
+
query: {
|
|
5083
|
+
since: opts.since,
|
|
5084
|
+
until: opts.until,
|
|
5085
|
+
lastRuns: opts.lastRuns,
|
|
5086
|
+
groupBy: opts.groupBy
|
|
5087
|
+
}
|
|
5088
|
+
})
|
|
5089
|
+
);
|
|
5090
|
+
}
|
|
5065
5091
|
// ── Backlinks — workspace-level ────────────────────────────────────────
|
|
5066
5092
|
async backlinksStatus() {
|
|
5067
5093
|
return this.invoke(() => getApiV1BacklinksStatus({ client: this.heyClient }));
|
|
@@ -5768,6 +5794,28 @@ var canonryMcpTools = [
|
|
|
5768
5794
|
openApiOperations: ["GET /api/v1/projects/{name}/citations/visibility"],
|
|
5769
5795
|
handler: (client2, input) => client2.getCitationVisibility(input.project)
|
|
5770
5796
|
}),
|
|
5797
|
+
defineTool({
|
|
5798
|
+
name: "canonry_visibility_stats",
|
|
5799
|
+
title: "Get aggregated mention/citation stats",
|
|
5800
|
+
description: 'Per-query mention (answer-text) and citation (source-list) counts WITH a sample size, pooled across many answer-visibility runs (probe-excluded) \u2014 the data to compute a confidence-aware (Wilson) proportion or detect drift without fetching every run. Tri-state aware: `checked` (the n for the mention proportion) counts only snapshots where answerMentioned was recorded; `null` ("not checked") is excluded, never counted as not-mentioned. Returns per-query `total`/`checked`/`mentioned`/`cited` + derived `mentionRate` (mentioned/checked) and `citedRate` (cited/total), `firstObserved`/`lastObserved`, and pooled `totals`. Window with `since`/`until` (ISO) OR `lastRuns` (mutually exclusive); with none set, EVERY completed/partial run is pooled (`window.runCount` says how many) \u2014 pass `lastRuns` for a recent sample. Set `groupBy=provider` for a per-provider breakdown whose counts sum to the pooled counts (`groupBy` is omitted from the response otherwise).',
|
|
5801
|
+
access: "read",
|
|
5802
|
+
tier: "monitoring",
|
|
5803
|
+
inputSchema: z2.object({
|
|
5804
|
+
project: projectNameSchema,
|
|
5805
|
+
since: z2.string().optional().describe("Inclusive lower bound on run createdAt (ISO 8601). A date-only value (YYYY-MM-DD) is the start of that UTC day. Mutually exclusive with lastRuns."),
|
|
5806
|
+
until: z2.string().optional().describe("Inclusive upper bound on run createdAt (ISO 8601). A date-only value (YYYY-MM-DD) covers the whole UTC day (through 23:59:59.999). Mutually exclusive with lastRuns."),
|
|
5807
|
+
lastRuns: z2.number().int().positive().optional().describe("Aggregate only the most recent N answer-visibility runs. Mutually exclusive with since/until."),
|
|
5808
|
+
groupBy: z2.enum(["provider"]).optional().describe('Set to "provider" for a per-provider breakdown.')
|
|
5809
|
+
}),
|
|
5810
|
+
annotations: readAnnotations(),
|
|
5811
|
+
openApiOperations: ["GET /api/v1/projects/{name}/visibility-stats"],
|
|
5812
|
+
handler: (client2, input) => client2.getVisibilityStats(input.project, {
|
|
5813
|
+
since: input.since,
|
|
5814
|
+
until: input.until,
|
|
5815
|
+
lastRuns: input.lastRuns,
|
|
5816
|
+
groupBy: input.groupBy
|
|
5817
|
+
})
|
|
5818
|
+
}),
|
|
5771
5819
|
defineTool({
|
|
5772
5820
|
name: "canonry_content_targets",
|
|
5773
5821
|
title: "Get content targets",
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
loadConfig,
|
|
10
10
|
loadConfigRaw,
|
|
11
11
|
saveConfigPatch
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-62YB3ML7.js";
|
|
13
13
|
import {
|
|
14
14
|
CC_CACHE_DIR,
|
|
15
15
|
DUCKDB_SPEC,
|
|
@@ -104,7 +104,7 @@ import {
|
|
|
104
104
|
siteAuditPages,
|
|
105
105
|
siteAuditSnapshots,
|
|
106
106
|
usageCounters
|
|
107
|
-
} from "./chunk-
|
|
107
|
+
} from "./chunk-3K3QRSYE.js";
|
|
108
108
|
import {
|
|
109
109
|
AGENT_MEMORY_VALUE_MAX_BYTES,
|
|
110
110
|
AGENT_PROVIDER_IDS,
|
|
@@ -160,7 +160,7 @@ import {
|
|
|
160
160
|
validationError,
|
|
161
161
|
winnabilityClassLabel,
|
|
162
162
|
withRetry
|
|
163
|
-
} from "./chunk-
|
|
163
|
+
} from "./chunk-I2BJC3DT.js";
|
|
164
164
|
|
|
165
165
|
// src/telemetry.ts
|
|
166
166
|
import crypto from "crypto";
|
|
@@ -6289,7 +6289,7 @@ function readStoredGroundingSources(rawResponse) {
|
|
|
6289
6289
|
return result;
|
|
6290
6290
|
}
|
|
6291
6291
|
async function backfillInsightsCommand(project, opts) {
|
|
6292
|
-
const { IntelligenceService: IntelligenceService2 } = await import("./intelligence-service-
|
|
6292
|
+
const { IntelligenceService: IntelligenceService2 } = await import("./intelligence-service-AHHBQKRD.js");
|
|
6293
6293
|
const config = loadConfig();
|
|
6294
6294
|
const db = createClient(config.database);
|
|
6295
6295
|
migrate(db);
|