@ainyc/canonry 4.55.1 → 4.56.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/SKILL.md +2 -0
- package/assets/agent-workspace/skills/canonry/SKILL.md +2 -0
- package/assets/agent-workspace/skills/canonry/references/server-side-traffic.md +55 -7
- package/assets/assets/{BacklinksPage-DVmaM864.js → BacklinksPage-yWx_BBLG.js} +1 -1
- package/assets/assets/ChartPrimitives-gqioJ07n.js +1 -0
- package/assets/assets/ProjectPage-D1tnXJ2L.js +6 -0
- package/assets/assets/{RunRow-BRqiLxj2.js → RunRow-DEr_yQLw.js} +1 -1
- package/assets/assets/{RunsPage-UxZ93-cg.js → RunsPage-DMrl5Fhn.js} +1 -1
- package/assets/assets/{SettingsPage-Cr5_EGbk.js → SettingsPage-Dp0TXf34.js} +1 -1
- package/assets/assets/{TrafficPage-CUC_lfTe.js → TrafficPage-POy4iHHt.js} +1 -1
- package/assets/assets/TrafficSourceDetailPage-BewjZ53n.js +1 -0
- package/assets/assets/{extract-error-message-DD5MibWI.js → extract-error-message-C0GGpK4T.js} +1 -1
- package/assets/assets/{index-nnF1LnyK.js → index-D0A-UvNH.js} +79 -79
- package/assets/assets/index-_jdnW4nh.css +1 -0
- package/assets/assets/{server-traffic-DjRISEZ-.js → server-traffic-B5rtrB-q.js} +1 -1
- package/assets/assets/{trash-2-CJ5M--Le.js → trash-2-CUczQ2Yl.js} +1 -1
- package/assets/index.html +2 -2
- package/dist/{chunk-UTM3FPAJ.js → chunk-4KWPOVIT.js} +181 -3
- package/dist/{chunk-ZY3EDW3S.js → chunk-6X5TF73A.js} +49 -3
- package/dist/{chunk-2OI7HFAB.js → chunk-I2LAM5IM.js} +309 -222
- package/dist/{chunk-OFY3Z2F7.js → chunk-WFVUZVJD.js} +368 -361
- package/dist/cli.js +66 -11
- package/dist/index.js +4 -4
- package/dist/{intelligence-service-NKAEHHJ5.js → intelligence-service-NY3MAVPB.js} +2 -2
- package/dist/mcp.js +2 -2
- package/package.json +10 -10
- package/assets/assets/ChartPrimitives-9Kx3gzQL.js +0 -1
- package/assets/assets/ProjectPage-DtL3LFne.js +0 -6
- package/assets/assets/TrafficSourceDetailPage-DARPL2TU.js +0 -1
- package/assets/assets/index-Bm3JQsW0.css +0 -1
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-I2LAM5IM.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-6X5TF73A.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-4KWPOVIT.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-WFVUZVJD.js";
|
|
69
69
|
|
|
70
70
|
// src/cli.ts
|
|
71
71
|
import { pathToFileURL } from "url";
|
|
@@ -3248,6 +3248,36 @@ async function trafficSync(project, opts) {
|
|
|
3248
3248
|
console.log(` Sample rows: ${result.sampleRows}`);
|
|
3249
3249
|
console.log(` Synced at: ${result.syncedAt}`);
|
|
3250
3250
|
}
|
|
3251
|
+
async function trafficReset(project, opts) {
|
|
3252
|
+
if (!opts.source) {
|
|
3253
|
+
throw new CliError({
|
|
3254
|
+
code: "TRAFFIC_SOURCE_REQUIRED",
|
|
3255
|
+
message: "--source <id> is required",
|
|
3256
|
+
displayMessage: "Error: --source <id> is required (run `canonry traffic sources` to list connected sources)",
|
|
3257
|
+
details: { project }
|
|
3258
|
+
});
|
|
3259
|
+
}
|
|
3260
|
+
if (!opts.advanceToNow) {
|
|
3261
|
+
throw new CliError({
|
|
3262
|
+
code: "TRAFFIC_RESET_REQUIRES_FLAG",
|
|
3263
|
+
message: "--advance-to-now is required",
|
|
3264
|
+
displayMessage: "Error: --advance-to-now is required. This skips any history between the source's current lastSyncedAt and now; run `canonry traffic backfill` separately if you need to recover it.",
|
|
3265
|
+
details: { project, source: opts.source }
|
|
3266
|
+
});
|
|
3267
|
+
}
|
|
3268
|
+
const client = getClient6();
|
|
3269
|
+
const updated = await client.trafficReset(project, opts.source);
|
|
3270
|
+
if (opts.format === "json") {
|
|
3271
|
+
console.log(JSON.stringify(updated, null, 2));
|
|
3272
|
+
return;
|
|
3273
|
+
}
|
|
3274
|
+
console.log(`Traffic source reset for "${project}" (source ${opts.source}).`);
|
|
3275
|
+
console.log(` Status: ${updated.status}`);
|
|
3276
|
+
console.log(` Last synced: ${updated.lastSyncedAt ?? "never"} (advanced to NOW)`);
|
|
3277
|
+
console.log(` Last error: ${updated.lastError ?? "none"}`);
|
|
3278
|
+
console.log("");
|
|
3279
|
+
console.log("Next scheduled sync will resume from this timestamp.");
|
|
3280
|
+
}
|
|
3251
3281
|
function formatSourceLine(source) {
|
|
3252
3282
|
const parts = [
|
|
3253
3283
|
source.id,
|
|
@@ -3545,6 +3575,28 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3545
3575
|
});
|
|
3546
3576
|
}
|
|
3547
3577
|
},
|
|
3578
|
+
{
|
|
3579
|
+
path: ["traffic", "reset"],
|
|
3580
|
+
usage: "canonry traffic reset <project> --source <id> --advance-to-now [--format json]",
|
|
3581
|
+
options: {
|
|
3582
|
+
source: stringOption(),
|
|
3583
|
+
"advance-to-now": { type: "boolean" }
|
|
3584
|
+
},
|
|
3585
|
+
run: async (input) => {
|
|
3586
|
+
const project = requireProject(
|
|
3587
|
+
input,
|
|
3588
|
+
"traffic.reset",
|
|
3589
|
+
"canonry traffic reset <project> --source <id> --advance-to-now"
|
|
3590
|
+
);
|
|
3591
|
+
const source = getString(input.values, "source");
|
|
3592
|
+
if (!source) throw new Error("--source <id> is required");
|
|
3593
|
+
await trafficReset(project, {
|
|
3594
|
+
source,
|
|
3595
|
+
advanceToNow: getBoolean(input.values, "advance-to-now"),
|
|
3596
|
+
format: input.format
|
|
3597
|
+
});
|
|
3598
|
+
}
|
|
3599
|
+
},
|
|
3548
3600
|
{
|
|
3549
3601
|
path: ["traffic", "sources"],
|
|
3550
3602
|
usage: "canonry traffic sources <project> [--format json]",
|
|
@@ -6811,7 +6863,7 @@ async function showRun(id, format) {
|
|
|
6811
6863
|
}
|
|
6812
6864
|
async function listRuns(project, opts) {
|
|
6813
6865
|
const client = getClient17();
|
|
6814
|
-
const runs = await client.listRuns(project, opts?.limit);
|
|
6866
|
+
const runs = await client.listRuns(project, opts?.limit, opts?.kind);
|
|
6815
6867
|
if (opts?.format === "json") {
|
|
6816
6868
|
console.log(JSON.stringify(runs, null, 2));
|
|
6817
6869
|
return;
|
|
@@ -6961,19 +7013,21 @@ var RUN_CLI_COMMANDS = [
|
|
|
6961
7013
|
},
|
|
6962
7014
|
{
|
|
6963
7015
|
path: ["runs"],
|
|
6964
|
-
usage: "canonry runs <project> [--limit <n>] [--format json]",
|
|
7016
|
+
usage: "canonry runs <project> [--limit <n>] [--kind <kind>] [--format json]",
|
|
6965
7017
|
options: {
|
|
6966
|
-
limit: stringOption()
|
|
7018
|
+
limit: stringOption(),
|
|
7019
|
+
kind: stringOption()
|
|
6967
7020
|
},
|
|
6968
7021
|
run: async (input) => {
|
|
6969
|
-
const project = requireProject(input, "runs", "canonry runs <project> [--limit <n>] [--format json]");
|
|
7022
|
+
const project = requireProject(input, "runs", "canonry runs <project> [--limit <n>] [--kind <kind>] [--format json]");
|
|
6970
7023
|
await listRuns(project, {
|
|
6971
7024
|
format: input.format,
|
|
6972
7025
|
limit: parseIntegerOption(input, "limit", {
|
|
6973
7026
|
command: "runs",
|
|
6974
|
-
usage: "canonry runs <project> [--limit <n>] [--format json]",
|
|
7027
|
+
usage: "canonry runs <project> [--limit <n>] [--kind <kind>] [--format json]",
|
|
6975
7028
|
message: "--limit must be an integer"
|
|
6976
|
-
})
|
|
7029
|
+
}),
|
|
7030
|
+
kind: getString(input.values, "kind")
|
|
6977
7031
|
});
|
|
6978
7032
|
}
|
|
6979
7033
|
}
|
|
@@ -7195,7 +7249,8 @@ async function showSettings(format) {
|
|
|
7195
7249
|
const status = provider.configured ? "configured" : "not configured";
|
|
7196
7250
|
console.log(` ${provider.name.padEnd(10)} ${status}`);
|
|
7197
7251
|
if (provider.configured) {
|
|
7198
|
-
|
|
7252
|
+
const modelLabel = provider.model ? provider.model : provider.defaultModel ? `${provider.defaultModel} (default)` : "(default)";
|
|
7253
|
+
console.log(` Model: ${modelLabel}`);
|
|
7199
7254
|
if (provider.quota) {
|
|
7200
7255
|
console.log(` Quota: ${provider.quota.maxConcurrency} concurrent \xB7 ${provider.quota.maxRequestsPerMinute}/min \xB7 ${provider.quota.maxRequestsPerDay}/day`);
|
|
7201
7256
|
}
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createServer
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-I2LAM5IM.js";
|
|
4
4
|
import {
|
|
5
5
|
loadConfig
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-6X5TF73A.js";
|
|
7
|
+
import "./chunk-4KWPOVIT.js";
|
|
8
|
+
import "./chunk-WFVUZVJD.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-6X5TF73A.js";
|
|
6
|
+
import "./chunk-WFVUZVJD.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.56.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,24 +61,24 @@
|
|
|
61
61
|
"@types/node-cron": "^3.0.11",
|
|
62
62
|
"tsup": "^8.5.1",
|
|
63
63
|
"tsx": "^4.19.0",
|
|
64
|
-
"@ainyc/canonry-api-client": "0.0.0",
|
|
65
64
|
"@ainyc/canonry-api-routes": "0.0.0",
|
|
66
65
|
"@ainyc/canonry-config": "0.0.0",
|
|
67
|
-
"@ainyc/canonry-
|
|
66
|
+
"@ainyc/canonry-api-client": "0.0.0",
|
|
68
67
|
"@ainyc/canonry-db": "0.0.0",
|
|
68
|
+
"@ainyc/canonry-contracts": "0.0.0",
|
|
69
69
|
"@ainyc/canonry-integration-bing": "0.0.0",
|
|
70
|
-
"@ainyc/canonry-integration-cloud-run": "0.0.0",
|
|
71
|
-
"@ainyc/canonry-integration-commoncrawl": "0.0.0",
|
|
72
|
-
"@ainyc/canonry-integration-google": "0.0.0",
|
|
73
70
|
"@ainyc/canonry-integration-traffic": "0.0.0",
|
|
74
|
-
"@ainyc/canonry-integration-
|
|
71
|
+
"@ainyc/canonry-integration-cloud-run": "0.0.0",
|
|
75
72
|
"@ainyc/canonry-intelligence": "0.0.0",
|
|
73
|
+
"@ainyc/canonry-provider-cdp": "0.0.0",
|
|
76
74
|
"@ainyc/canonry-provider-claude": "0.0.0",
|
|
77
75
|
"@ainyc/canonry-provider-gemini": "0.0.0",
|
|
78
|
-
"@ainyc/canonry-provider-cdp": "0.0.0",
|
|
79
|
-
"@ainyc/canonry-provider-local": "0.0.0",
|
|
80
76
|
"@ainyc/canonry-provider-openai": "0.0.0",
|
|
81
|
-
"@ainyc/canonry-provider-perplexity": "0.0.0"
|
|
77
|
+
"@ainyc/canonry-provider-perplexity": "0.0.0",
|
|
78
|
+
"@ainyc/canonry-provider-local": "0.0.0",
|
|
79
|
+
"@ainyc/canonry-integration-google": "0.0.0",
|
|
80
|
+
"@ainyc/canonry-integration-commoncrawl": "0.0.0",
|
|
81
|
+
"@ainyc/canonry-integration-wordpress": "0.0.0"
|
|
82
82
|
},
|
|
83
83
|
"scripts": {
|
|
84
84
|
"build": "tsx scripts/copy-agent-assets.ts && tsup && tsx build-web.ts",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const n={contentStyle:{backgroundColor:"#18181b",border:"1px solid #3f3f46",borderRadius:8,fontSize:12},labelStyle:{color:"#e4e4e7"},itemStyle:{color:"#a1a1aa"}},o={fill:"#71717a",fontSize:11},r="#27272a",c="#27272a",s=["#34d399","#60a5fa","#f472b6","#facc15","#a78bfa","#fb923c","#22d3ee","#f87171"];function e(a){const t=String(a);return t.includes("T")?new Date(t):new Date(t+"T00:00:00")}function f(a){return e(String(a)).toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"})}function i(a){const t=e(a);return`${t.getMonth()+1}/${t.getDate()}`}export{c as C,o as a,f as b,n as c,s as d,r as e,i as f};
|