@canonry/canonry 4.165.2 → 4.167.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/{AuditHistoryPanel-DYBAiNCu.js → AuditHistoryPanel-Dvz6QFtW.js} +1 -1
- package/assets/assets/{BacklinksPage-p19FCIyh.js → BacklinksPage-BHOtOIr5.js} +1 -1
- package/assets/assets/{HistoryPage-CRSuA-J0.js → HistoryPage-Bc5Nx6dX.js} +1 -1
- package/assets/assets/{MeasurementPropertyPage-Bgr9VeUk.js → MeasurementPropertyPage-D4FIFiWv.js} +1 -1
- package/assets/assets/ProjectPage-CT5ZD7_A.js +9 -0
- package/assets/assets/{RunRow-_RMMaLPt.js → RunRow-CB2oG45_.js} +1 -1
- package/assets/assets/{RunsPage-CaDPSEfE.js → RunsPage-OLbocIOY.js} +1 -1
- package/assets/assets/SettingsPage-DVdPBrap.js +1 -0
- package/assets/assets/{SiteHealthSection-Byp_Fu5K.js → SiteHealthSection-B1bjMCqY.js} +3 -3
- package/assets/assets/{TrafficPage-BXkXNKYB.js → TrafficPage-BUWXjHhw.js} +1 -1
- package/assets/assets/{TrafficSourceDetailPage-CReS8q0H.js → TrafficSourceDetailPage-DwoFzTu7.js} +1 -1
- package/assets/assets/{extract-error-message-CHW-A3AQ.js → extract-error-message-CNH2-nPH.js} +1 -1
- package/assets/assets/{index-CcS2bDjR.js → index-DdXb59Rg.js} +20 -20
- package/assets/assets/{react-sigma_core.esm.min-Cm0RA3Iv.js → react-sigma_core.esm.min-DLRh4X_G.js} +1 -1
- package/assets/index.html +1 -1
- package/dist/{chunk-BJLIMWL2.js → chunk-7M3QVRJD.js} +134 -57
- package/dist/{chunk-J56XZGG6.js → chunk-P5LR3NDQ.js} +6 -5
- package/dist/{chunk-UVDX2Y4N.js → chunk-SXENNCJF.js} +104 -96
- package/dist/{chunk-P2CQ57UV.js → chunk-TP4KXU3E.js} +20 -2
- package/dist/cli.js +36 -29
- package/dist/index.js +4 -4
- package/dist/{intelligence-service-QGBYYNWV.js → intelligence-service-ULDOVV5Y.js} +2 -2
- package/dist/mcp.js +2 -2
- package/package.json +11 -11
- package/assets/assets/ProjectPage-D6-9qYKU.js +0 -9
- package/assets/assets/SettingsPage-Dcp71zcu.js +0 -1
|
@@ -158,6 +158,21 @@ function internalError(message, details) {
|
|
|
158
158
|
function runtimeStateMissing(message, details) {
|
|
159
159
|
return new AppError("RUNTIME_STATE_MISSING", message, 503, details);
|
|
160
160
|
}
|
|
161
|
+
function describeError(err) {
|
|
162
|
+
if (err instanceof Error) return err.message;
|
|
163
|
+
if (typeof err === "string") return err;
|
|
164
|
+
if (err === null || err === void 0) return "unknown error";
|
|
165
|
+
try {
|
|
166
|
+
const json = JSON.stringify(err);
|
|
167
|
+
if (json !== void 0) return json;
|
|
168
|
+
} catch {
|
|
169
|
+
}
|
|
170
|
+
try {
|
|
171
|
+
return String(err);
|
|
172
|
+
} catch {
|
|
173
|
+
return "unknown error";
|
|
174
|
+
}
|
|
175
|
+
}
|
|
161
176
|
|
|
162
177
|
// ../contracts/src/provider.ts
|
|
163
178
|
import { z } from "zod";
|
|
@@ -8702,8 +8717,8 @@ var siteCrawlCountsSchema = z25.object({
|
|
|
8702
8717
|
var siteCrawlDeadLinksSummarySchema = z25.discriminatedUnion("state", [
|
|
8703
8718
|
z25.object({ state: z25.literal("unavailable") }),
|
|
8704
8719
|
z25.object({ state: z25.literal("disabled") }),
|
|
8705
|
-
z25.object({ state: z25.literal("complete"), checked: z25.number().int().nonnegative(), found: z25.number().int().nonnegative() }),
|
|
8706
|
-
z25.object({ state: z25.literal("partial"), checked: z25.number().int().nonnegative(), found: z25.number().int().nonnegative() })
|
|
8720
|
+
z25.object({ state: z25.literal("complete"), checked: z25.number().int().nonnegative(), found: z25.number().int().nonnegative(), unverified: z25.number().int().nonnegative() }),
|
|
8721
|
+
z25.object({ state: z25.literal("partial"), checked: z25.number().int().nonnegative(), found: z25.number().int().nonnegative(), unverified: z25.number().int().nonnegative() })
|
|
8707
8722
|
]);
|
|
8708
8723
|
var siteCrawlSummarySchema = z25.object({
|
|
8709
8724
|
project: z25.string(),
|
|
@@ -9385,6 +9400,7 @@ var siteCrawlDeadLinksResponseSchema = z25.discriminatedUnion("state", [
|
|
|
9385
9400
|
checkDeadLinks: z25.literal(true),
|
|
9386
9401
|
checked: z25.number().int().nonnegative(),
|
|
9387
9402
|
found: z25.number().int().nonnegative(),
|
|
9403
|
+
unverified: z25.number().int().nonnegative(),
|
|
9388
9404
|
total: z25.number().int().nonnegative(),
|
|
9389
9405
|
nextCursor: z25.string().nullable(),
|
|
9390
9406
|
deadLinks: z25.array(siteCrawlDeadLinkSchema).default([])
|
|
@@ -9396,6 +9412,7 @@ var siteCrawlDeadLinksResponseSchema = z25.discriminatedUnion("state", [
|
|
|
9396
9412
|
checkDeadLinks: z25.literal(true),
|
|
9397
9413
|
checked: z25.number().int().nonnegative(),
|
|
9398
9414
|
found: z25.number().int().nonnegative(),
|
|
9415
|
+
unverified: z25.number().int().nonnegative(),
|
|
9399
9416
|
total: z25.number().int().nonnegative(),
|
|
9400
9417
|
nextCursor: z25.string().nullable(),
|
|
9401
9418
|
deadLinks: z25.array(siteCrawlDeadLinkSchema).default([])
|
|
@@ -15010,6 +15027,7 @@ export {
|
|
|
15010
15027
|
missingDependency,
|
|
15011
15028
|
internalError,
|
|
15012
15029
|
runtimeStateMissing,
|
|
15030
|
+
describeError,
|
|
15013
15031
|
DEFAULT_MEASUREMENT_CONFIG,
|
|
15014
15032
|
gaMeasurementAnalysisWindowSchema,
|
|
15015
15033
|
gaMeasurementHostScopeSchema,
|
package/dist/cli.js
CHANGED
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
showFirstRunNotice,
|
|
32
32
|
trackCliCommandFinished,
|
|
33
33
|
trackEvent
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-SXENNCJF.js";
|
|
35
35
|
import {
|
|
36
36
|
CliError,
|
|
37
37
|
EXIT_SYSTEM_ERROR,
|
|
@@ -51,7 +51,7 @@ import {
|
|
|
51
51
|
saveConfigPatch,
|
|
52
52
|
systemError,
|
|
53
53
|
usageError
|
|
54
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-P5LR3NDQ.js";
|
|
55
55
|
import {
|
|
56
56
|
CLOUDFLARE_WORKER_BINDINGS,
|
|
57
57
|
CLOUDFLARE_WORKER_GENERATED_MARKER,
|
|
@@ -65,7 +65,7 @@ import {
|
|
|
65
65
|
projects,
|
|
66
66
|
queries,
|
|
67
67
|
renderReportHtml
|
|
68
|
-
} from "./chunk-
|
|
68
|
+
} from "./chunk-7M3QVRJD.js";
|
|
69
69
|
import {
|
|
70
70
|
AdsDeliverySnapshotStatuses,
|
|
71
71
|
AdsHistoricalCampaignRollupStatuses,
|
|
@@ -100,6 +100,7 @@ import {
|
|
|
100
100
|
adsPauseRequestSchema,
|
|
101
101
|
backlinkSourceSchema,
|
|
102
102
|
buildModelChangeNotice,
|
|
103
|
+
describeError,
|
|
103
104
|
discoveryBucketSchema,
|
|
104
105
|
discoveryCompetitorTypeSchema,
|
|
105
106
|
effectiveDomains,
|
|
@@ -129,7 +130,7 @@ import {
|
|
|
129
130
|
providerQuotaPolicySchema,
|
|
130
131
|
resolveProviderInput,
|
|
131
132
|
winnabilityClassSchema
|
|
132
|
-
} from "./chunk-
|
|
133
|
+
} from "./chunk-TP4KXU3E.js";
|
|
133
134
|
|
|
134
135
|
// src/cli.ts
|
|
135
136
|
import { pathToFileURL } from "url";
|
|
@@ -1180,7 +1181,7 @@ async function bingRefresh(project, format) {
|
|
|
1180
1181
|
);
|
|
1181
1182
|
for (const r of results) {
|
|
1182
1183
|
if (r.status === "rejected") {
|
|
1183
|
-
errors.push(
|
|
1184
|
+
errors.push(describeError(r.reason));
|
|
1184
1185
|
}
|
|
1185
1186
|
}
|
|
1186
1187
|
if (!isMachineFormat(format)) {
|
|
@@ -1522,7 +1523,7 @@ async function cdpStatus(format) {
|
|
|
1522
1523
|
console.log("Launch Chrome with: chrome --remote-debugging-port=9222");
|
|
1523
1524
|
}
|
|
1524
1525
|
} catch (err) {
|
|
1525
|
-
const msg =
|
|
1526
|
+
const msg = describeError(err);
|
|
1526
1527
|
if (msg.includes("501") || msg.includes("not configured")) {
|
|
1527
1528
|
if (isMachineFormat(format)) {
|
|
1528
1529
|
console.log(JSON.stringify({
|
|
@@ -1586,7 +1587,7 @@ async function cdpScreenshot(query, opts) {
|
|
|
1586
1587
|
}
|
|
1587
1588
|
}
|
|
1588
1589
|
} catch (err) {
|
|
1589
|
-
const msg =
|
|
1590
|
+
const msg = describeError(err);
|
|
1590
1591
|
throw new CliError({
|
|
1591
1592
|
code: "CDP_SCREENSHOT_FAILED",
|
|
1592
1593
|
message: `CDP screenshot failed: ${msg}`,
|
|
@@ -1699,7 +1700,7 @@ function summarizeAngles(sessions) {
|
|
|
1699
1700
|
};
|
|
1700
1701
|
}
|
|
1701
1702
|
function errorMessage(err) {
|
|
1702
|
-
return
|
|
1703
|
+
return describeError(err);
|
|
1703
1704
|
}
|
|
1704
1705
|
async function discoverRun(project, opts) {
|
|
1705
1706
|
const client = getClient4();
|
|
@@ -3005,8 +3006,8 @@ function readRequest(inputPath, schema) {
|
|
|
3005
3006
|
if (err instanceof CliError) throw err;
|
|
3006
3007
|
throw new CliError({
|
|
3007
3008
|
code: "ADS_INPUT_INVALID",
|
|
3008
|
-
message:
|
|
3009
|
-
displayMessage: `Error: invalid ads JSON input (${
|
|
3009
|
+
message: describeError(err),
|
|
3010
|
+
displayMessage: `Error: invalid ads JSON input (${describeError(err)})`,
|
|
3010
3011
|
details: { inputPath }
|
|
3011
3012
|
});
|
|
3012
3013
|
}
|
|
@@ -3881,7 +3882,7 @@ async function gaConnect(project, opts) {
|
|
|
3881
3882
|
JSON.parse(content);
|
|
3882
3883
|
body.keyJson = content;
|
|
3883
3884
|
} catch (e) {
|
|
3884
|
-
const msg =
|
|
3885
|
+
const msg = describeError(e);
|
|
3885
3886
|
throw new CliError({
|
|
3886
3887
|
code: "GA_KEY_FILE_READ_ERROR",
|
|
3887
3888
|
message: `Failed to read key file: ${msg}`,
|
|
@@ -5694,7 +5695,7 @@ function configString(value, fallback = "(unset)") {
|
|
|
5694
5695
|
return typeof value === "string" ? value : fallback;
|
|
5695
5696
|
}
|
|
5696
5697
|
function errorMessage2(error) {
|
|
5697
|
-
return
|
|
5698
|
+
return describeError(error);
|
|
5698
5699
|
}
|
|
5699
5700
|
function requireCloudflareQueueOption(project, value, option) {
|
|
5700
5701
|
if (value?.trim()) return value.trim();
|
|
@@ -5998,7 +5999,7 @@ async function trafficConnectWordpress(project, opts) {
|
|
|
5998
5999
|
try {
|
|
5999
6000
|
applicationPassword = fs19.readFileSync(opts.appPasswordFile, "utf-8").trim();
|
|
6000
6001
|
} catch (e) {
|
|
6001
|
-
const msg =
|
|
6002
|
+
const msg = describeError(e);
|
|
6002
6003
|
throw new CliError({
|
|
6003
6004
|
code: "TRAFFIC_WP_APP_PASSWORD_FILE_READ_ERROR",
|
|
6004
6005
|
message: `Failed to read --app-password-file: ${msg}`,
|
|
@@ -6058,7 +6059,7 @@ async function trafficConnectCloudRun(project, opts) {
|
|
|
6058
6059
|
keyJson = fs19.readFileSync(opts.serviceAccountKey, "utf-8");
|
|
6059
6060
|
JSON.parse(keyJson);
|
|
6060
6061
|
} catch (e) {
|
|
6061
|
-
const msg =
|
|
6062
|
+
const msg = describeError(e);
|
|
6062
6063
|
throw new CliError({
|
|
6063
6064
|
code: "TRAFFIC_KEY_FILE_READ_ERROR",
|
|
6064
6065
|
message: `Failed to read service-account key: ${msg}`,
|
|
@@ -6119,7 +6120,7 @@ async function trafficConnectVercel(project, opts) {
|
|
|
6119
6120
|
try {
|
|
6120
6121
|
token = fs19.readFileSync(opts.tokenFile, "utf-8").trim();
|
|
6121
6122
|
} catch (e) {
|
|
6122
|
-
const msg =
|
|
6123
|
+
const msg = describeError(e);
|
|
6123
6124
|
throw new CliError({
|
|
6124
6125
|
code: "TRAFFIC_VERCEL_TOKEN_FILE_READ_ERROR",
|
|
6125
6126
|
message: `Failed to read --token-file: ${msg}`,
|
|
@@ -7517,7 +7518,7 @@ async function submitGscSitemaps(client, project, opts) {
|
|
|
7517
7518
|
if (index === 0) throw cause;
|
|
7518
7519
|
const attempted = aggregate.summary.total + batchSitemapUrls.length;
|
|
7519
7520
|
const remaining = sitemapUrls.length - attempted;
|
|
7520
|
-
const causeDetails = cause instanceof CliError ? { code: cause.code, message: cause.message, details: cause.details } : { message:
|
|
7521
|
+
const causeDetails = cause instanceof CliError ? { code: cause.code, message: cause.message, details: cause.details } : { message: describeError(cause) };
|
|
7521
7522
|
throw new CliError({
|
|
7522
7523
|
code: "GOOGLE_SITEMAP_SUBMISSION_PARTIAL",
|
|
7523
7524
|
message: `Sitemap submission stopped at batch ${index + 1}/${batches.length}; ${aggregate.summary.accepted} accepted, ${aggregate.summary.failed} failed, ${batchSitemapUrls.length} unconfirmed, ${remaining} not attempted.`,
|
|
@@ -9277,7 +9278,7 @@ function readJsonConfig(configPath) {
|
|
|
9277
9278
|
} catch (err) {
|
|
9278
9279
|
throw new CliError({
|
|
9279
9280
|
code: "VALIDATION_ERROR",
|
|
9280
|
-
message: `Failed to parse ${configPath}: ${
|
|
9281
|
+
message: `Failed to parse ${configPath}: ${describeError(err)}`,
|
|
9281
9282
|
exitCode: 1,
|
|
9282
9283
|
details: { configPath }
|
|
9283
9284
|
});
|
|
@@ -9670,7 +9671,7 @@ async function applyConfigFile(filePath) {
|
|
|
9670
9671
|
const result = await client.apply(config);
|
|
9671
9672
|
applied.push(result);
|
|
9672
9673
|
} catch (err) {
|
|
9673
|
-
const msg =
|
|
9674
|
+
const msg = describeError(err);
|
|
9674
9675
|
errors.push(`Document ${i + 1}: ${msg}`);
|
|
9675
9676
|
}
|
|
9676
9677
|
}
|
|
@@ -9683,7 +9684,7 @@ async function applyConfigs(filePaths, format) {
|
|
|
9683
9684
|
try {
|
|
9684
9685
|
result = await applyConfigFile(filePath);
|
|
9685
9686
|
} catch (err) {
|
|
9686
|
-
const message =
|
|
9687
|
+
const message = describeError(err);
|
|
9687
9688
|
result = {
|
|
9688
9689
|
filePath,
|
|
9689
9690
|
applied: [],
|
|
@@ -10110,7 +10111,7 @@ async function showHistory(project, format, opts = {}) {
|
|
|
10110
10111
|
if (entry.diff != null) console.log(` diff: ${JSON.stringify(entry.diff)}`);
|
|
10111
10112
|
}
|
|
10112
10113
|
} catch (err) {
|
|
10113
|
-
const message =
|
|
10114
|
+
const message = describeError(err);
|
|
10114
10115
|
throw new CliError({
|
|
10115
10116
|
code: "HISTORY_FETCH_FAILED",
|
|
10116
10117
|
message: project ? `Failed to fetch history for project "${project}"` : "Failed to fetch instance history",
|
|
@@ -11065,7 +11066,7 @@ async function triggerRunAll(opts) {
|
|
|
11065
11066
|
});
|
|
11066
11067
|
}
|
|
11067
11068
|
} catch (err) {
|
|
11068
|
-
const msg =
|
|
11069
|
+
const msg = describeError(err);
|
|
11069
11070
|
results.push({ project: p.name, runId: "", status: "error", location: null, error: msg });
|
|
11070
11071
|
}
|
|
11071
11072
|
}
|
|
@@ -13554,7 +13555,7 @@ function stopDaemon(format = "text") {
|
|
|
13554
13555
|
}
|
|
13555
13556
|
console.log(`Canonry stopped (PID: ${pid})`);
|
|
13556
13557
|
} catch (err) {
|
|
13557
|
-
const msg =
|
|
13558
|
+
const msg = describeError(err);
|
|
13558
13559
|
throw new CliError({
|
|
13559
13560
|
code: "DAEMON_STOP_FAILED",
|
|
13560
13561
|
message: `Failed to stop Canonry (PID: ${pid}): ${msg}`,
|
|
@@ -13780,7 +13781,7 @@ async function initCommand(opts) {
|
|
|
13780
13781
|
try {
|
|
13781
13782
|
skillsSummary = await installSkills({ dir: skillsTarget });
|
|
13782
13783
|
} catch (err) {
|
|
13783
|
-
skillsTip = `Skills auto-install failed: ${
|
|
13784
|
+
skillsTip = `Skills auto-install failed: ${describeError(err)}. Run "canonry skills install" manually.`;
|
|
13784
13785
|
}
|
|
13785
13786
|
} else {
|
|
13786
13787
|
skillsTip = 'Run "canonry skills install" in a project directory to add the canonry + Aero playbook to .claude/skills/ and .codex/skills/.';
|
|
@@ -13800,7 +13801,7 @@ async function initCommand(opts) {
|
|
|
13800
13801
|
process.chdir(previousCwd);
|
|
13801
13802
|
}
|
|
13802
13803
|
} catch (err) {
|
|
13803
|
-
mcpTip = `MCP auto-install failed: ${
|
|
13804
|
+
mcpTip = `MCP auto-install failed: ${describeError(err)}. Run "canonry mcp install --client claude-code" manually.`;
|
|
13804
13805
|
}
|
|
13805
13806
|
} else {
|
|
13806
13807
|
mcpTip = 'Run "canonry mcp install --client claude-code" in a project directory to register the canonry MCP server in `.mcp.json` for Claude Code sessions.';
|
|
@@ -14153,7 +14154,7 @@ async function serveCommand(format = "text") {
|
|
|
14153
14154
|
);
|
|
14154
14155
|
}
|
|
14155
14156
|
} catch (err) {
|
|
14156
|
-
const msg =
|
|
14157
|
+
const msg = describeError(err);
|
|
14157
14158
|
process.stderr.write(`warning: normalized-path backfill skipped: ${msg}
|
|
14158
14159
|
`);
|
|
14159
14160
|
}
|
|
@@ -14165,7 +14166,7 @@ async function serveCommand(format = "text") {
|
|
|
14165
14166
|
);
|
|
14166
14167
|
}
|
|
14167
14168
|
} catch (err) {
|
|
14168
|
-
const msg =
|
|
14169
|
+
const msg = describeError(err);
|
|
14169
14170
|
process.stderr.write(`warning: ai-referral-paths backfill skipped: ${msg}
|
|
14170
14171
|
`);
|
|
14171
14172
|
}
|
|
@@ -14223,7 +14224,7 @@ Canonry server running at ${url}`);
|
|
|
14223
14224
|
providers: providerNames
|
|
14224
14225
|
});
|
|
14225
14226
|
} catch (err) {
|
|
14226
|
-
const message =
|
|
14227
|
+
const message = describeError(err);
|
|
14227
14228
|
throw new CliError({
|
|
14228
14229
|
code: "SERVE_START_FAILED",
|
|
14229
14230
|
message: `Failed to start server: ${message}`,
|
|
@@ -14947,13 +14948,19 @@ async function technicalAeoDeadLinks(project, opts) {
|
|
|
14947
14948
|
}
|
|
14948
14949
|
const lines = [`Dead links: ${res.found} found from ${res.checked} checked (${res.state})`];
|
|
14949
14950
|
for (const finding of res.deadLinks) lines.push(`${finding.sourceUrl ?? "-"} \u2192 ${finding.targetUrl ?? "-"}`);
|
|
14951
|
+
if (res.unverified > 0) lines.push(unverifiedNote(res.unverified));
|
|
14950
14952
|
if (res.nextCursor) lines.push(`Next cursor: ${res.nextCursor}`);
|
|
14951
14953
|
console.log(lines.join("\n"));
|
|
14952
14954
|
}
|
|
14955
|
+
function unverifiedNote(unverified) {
|
|
14956
|
+
return `${unverified} link${unverified === 1 ? "" : "s"} could not be checked (the crawler never got a response). Not counted as broken; re-run to retry.`;
|
|
14957
|
+
}
|
|
14953
14958
|
function formatDeadLinkState(value) {
|
|
14954
14959
|
if (value.state === "disabled") return "disabled (opt in with --check-dead-links)";
|
|
14955
14960
|
if (value.state === "unavailable") return "unavailable";
|
|
14956
|
-
|
|
14961
|
+
const unverified = value.unverified ?? 0;
|
|
14962
|
+
const suffix = unverified > 0 ? `, ${unverified} unchecked` : "";
|
|
14963
|
+
return `${value.found ?? 0} found / ${value.checked ?? 0} checked${suffix} (${value.state})`;
|
|
14957
14964
|
}
|
|
14958
14965
|
async function technicalAeoRun(project, opts) {
|
|
14959
14966
|
const client = getClient27();
|
|
@@ -16347,7 +16354,7 @@ function resolveContent(input, command, usage, options) {
|
|
|
16347
16354
|
try {
|
|
16348
16355
|
return fs17.readFileSync(contentFile, "utf-8");
|
|
16349
16356
|
} catch (error) {
|
|
16350
|
-
const message =
|
|
16357
|
+
const message = describeError(error);
|
|
16351
16358
|
throw usageError(`Error: could not read --content-file "${contentFile}": ${message}`, {
|
|
16352
16359
|
message: `could not read --content-file "${contentFile}": ${message}`,
|
|
16353
16360
|
details: { command, usage }
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createServer
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-SXENNCJF.js";
|
|
4
4
|
import {
|
|
5
5
|
loadConfig
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-P5LR3NDQ.js";
|
|
7
|
+
import "./chunk-7M3QVRJD.js";
|
|
8
|
+
import "./chunk-TP4KXU3E.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-P5LR3NDQ.js";
|
|
7
7
|
import {
|
|
8
8
|
isReadOnlyKey
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-TP4KXU3E.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": "@canonry/canonry",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.167.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",
|
|
@@ -70,29 +70,29 @@
|
|
|
70
70
|
"@types/node-cron": "^3.0.11",
|
|
71
71
|
"tsup": "^8.5.1",
|
|
72
72
|
"tsx": "^4.19.0",
|
|
73
|
-
"@ainyc/canonry-api-client": "0.0.0",
|
|
74
|
-
"@ainyc/canonry-contracts": "0.0.0",
|
|
75
|
-
"@ainyc/canonry-api-routes": "0.0.0",
|
|
76
73
|
"@ainyc/canonry-config": "0.0.0",
|
|
77
74
|
"@ainyc/canonry-db": "0.0.0",
|
|
75
|
+
"@ainyc/canonry-api-routes": "0.0.0",
|
|
76
|
+
"@ainyc/canonry-contracts": "0.0.0",
|
|
77
|
+
"@ainyc/canonry-api-client": "0.0.0",
|
|
78
78
|
"@ainyc/canonry-integration-bing": "0.0.0",
|
|
79
|
+
"@ainyc/canonry-integration-cloudflare-queue": "0.0.0",
|
|
79
80
|
"@ainyc/canonry-integration-cloudflare-worker": "0.0.0",
|
|
80
81
|
"@ainyc/canonry-integration-openai-ads": "0.0.0",
|
|
81
|
-
"@ainyc/canonry-integration-cloudflare-queue": "0.0.0",
|
|
82
82
|
"@ainyc/canonry-integration-commoncrawl": "0.0.0",
|
|
83
|
-
"@ainyc/canonry-integration-cloud-run": "0.0.0",
|
|
84
83
|
"@ainyc/canonry-integration-google": "0.0.0",
|
|
84
|
+
"@ainyc/canonry-integration-cloud-run": "0.0.0",
|
|
85
85
|
"@ainyc/canonry-integration-google-business-profile": "0.0.0",
|
|
86
|
-
"@ainyc/canonry-integration-traffic": "0.0.0",
|
|
87
86
|
"@ainyc/canonry-integration-google-places": "0.0.0",
|
|
87
|
+
"@ainyc/canonry-integration-traffic": "0.0.0",
|
|
88
|
+
"@ainyc/canonry-provider-cdp": "0.0.0",
|
|
88
89
|
"@ainyc/canonry-integration-wordpress": "0.0.0",
|
|
89
|
-
"@ainyc/canonry-intelligence": "0.0.0",
|
|
90
90
|
"@ainyc/canonry-provider-claude": "0.0.0",
|
|
91
|
-
"@ainyc/canonry-provider-local": "0.0.0",
|
|
92
91
|
"@ainyc/canonry-provider-gemini": "0.0.0",
|
|
93
|
-
"@ainyc/canonry-provider-cdp": "0.0.0",
|
|
94
92
|
"@ainyc/canonry-provider-openai": "0.0.0",
|
|
95
|
-
"@ainyc/canonry-provider-
|
|
93
|
+
"@ainyc/canonry-provider-local": "0.0.0",
|
|
94
|
+
"@ainyc/canonry-provider-perplexity": "0.0.0",
|
|
95
|
+
"@ainyc/canonry-intelligence": "0.0.0"
|
|
96
96
|
},
|
|
97
97
|
"scripts": {
|
|
98
98
|
"build": "tsx scripts/copy-agent-assets.ts && tsup && tsx build-web.ts",
|