@canonry/canonry 6.2.0 → 6.3.1
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 +12 -0
- package/assets/assets/{AuditHistoryPanel-CuEMfkaA.js → AuditHistoryPanel-BUYWIjlG.js} +1 -1
- package/assets/assets/{BacklinksPage-CftadZ1-.js → BacklinksPage-aBcxpN_9.js} +1 -1
- package/assets/assets/{HistoryPage-DouRgshN.js → HistoryPage-PoBuxiY_.js} +1 -1
- package/assets/assets/{MeasurementPropertyPage-qfqv2qs9.js → MeasurementPropertyPage-DyjyqHac.js} +1 -1
- package/assets/assets/{ProjectPage-DqEVwe4t.js → ProjectPage-Mmv5YW-K.js} +1 -1
- package/assets/assets/{RunsPage-CUkMs0gB.js → RunsPage-CHHxOpzo.js} +1 -1
- package/assets/assets/{SettingsPage-LLQ40tSh.js → SettingsPage-CNKnrLXC.js} +1 -1
- package/assets/assets/{SiteHealthSection-Ba7foDiU.js → SiteHealthSection-C9RivT7G.js} +3 -3
- package/assets/assets/{TrafficPage-Cu_ZR3--.js → TrafficPage-CY-ibXnb.js} +1 -1
- package/assets/assets/{TrafficSourceDetailPage-NKZq7jf9.js → TrafficSourceDetailPage-BgiPXubs.js} +1 -1
- package/assets/assets/{extract-error-message-BdQYrz9N.js → extract-error-message-H1dzzfBP.js} +1 -1
- package/assets/assets/{index-HOeLz1ZL.js → index-DSCun3I9.js} +21 -21
- package/assets/assets/{react-sigma_core.esm.min-CZaoE5cU.js → react-sigma_core.esm.min-uiYtR_DU.js} +1 -1
- package/assets/assets/{v2-overview-adapter-BVx4nI49.js → v2-overview-adapter-BQokN2eb.js} +1 -1
- package/assets/index.html +1 -1
- package/dist/{chunk-2RFHQ6XT.js → chunk-4WZUR7XX.js} +240 -119
- package/dist/{chunk-4EKOKWQT.js → chunk-5FYTFE5T.js} +2 -2
- package/dist/{chunk-Y2B7JRSB.js → chunk-5GY5WBAF.js} +3 -3
- package/dist/{chunk-ENI3GOWW.js → chunk-7CVTTQRV.js} +95 -26
- package/dist/{chunk-W3GDZZNF.js → chunk-DERWXLHX.js} +15 -1
- package/dist/{chunk-6EPN4XY5.js → chunk-EV5G5QRR.js} +324 -280
- package/dist/{chunk-V6JUBTNL.js → chunk-ZZEPF3A5.js} +23 -3
- package/dist/cli.js +53 -8
- package/dist/{demo-server-CH7MOBXW.js → demo-server-AIFR77TP.js} +4 -4
- package/dist/index.js +6 -6
- package/dist/{intelligence-service-4IONMOFB.js → intelligence-service-SYISPW25.js} +2 -2
- package/dist/mcp.js +4 -4
- package/package.json +13 -13
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
PACKAGE_VERSION,
|
|
6
6
|
canonryMcpTools,
|
|
7
7
|
isMachineFormat
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-DERWXLHX.js";
|
|
9
9
|
import {
|
|
10
10
|
AGENT_PROVIDER_IDS,
|
|
11
11
|
CANONRY_NPM_PACKAGE_URL,
|
|
@@ -50,7 +50,7 @@ import {
|
|
|
50
50
|
skillsClientSchema,
|
|
51
51
|
upgradeCaveatFor,
|
|
52
52
|
upgradeCommandFor
|
|
53
|
-
} from "./chunk-
|
|
53
|
+
} from "./chunk-EV5G5QRR.js";
|
|
54
54
|
|
|
55
55
|
// src/config.ts
|
|
56
56
|
import fs from "fs";
|
|
@@ -3384,6 +3384,22 @@ var putApiV1Telemetry = (options) => {
|
|
|
3384
3384
|
}
|
|
3385
3385
|
});
|
|
3386
3386
|
};
|
|
3387
|
+
var postApiV1Feedback = (options) => {
|
|
3388
|
+
return (options.client ?? client).post({
|
|
3389
|
+
security: [
|
|
3390
|
+
{
|
|
3391
|
+
scheme: "bearer",
|
|
3392
|
+
type: "http"
|
|
3393
|
+
}
|
|
3394
|
+
],
|
|
3395
|
+
url: "/api/v1/feedback",
|
|
3396
|
+
...options,
|
|
3397
|
+
headers: {
|
|
3398
|
+
"Content-Type": "application/json",
|
|
3399
|
+
...options.headers
|
|
3400
|
+
}
|
|
3401
|
+
});
|
|
3402
|
+
};
|
|
3387
3403
|
var getApiV1CdpStatus = (options) => {
|
|
3388
3404
|
return (options?.client ?? client).get({
|
|
3389
3405
|
security: [
|
|
@@ -7482,6 +7498,10 @@ var ApiClient = class {
|
|
|
7482
7498
|
async updateTelemetry(enabled) {
|
|
7483
7499
|
return normalizeTelemetryStatus(await this.invoke(() => putApiV1Telemetry({ client: this.heyClient, body: { enabled } })));
|
|
7484
7500
|
}
|
|
7501
|
+
/** Forward product feedback about Canonry to canonry.ai through the server. */
|
|
7502
|
+
async sendFeedback(body) {
|
|
7503
|
+
return this.invoke(() => postApiV1Feedback({ client: this.heyClient, body }));
|
|
7504
|
+
}
|
|
7485
7505
|
// ── Schedules / notifications / locations ───────────────────────────────
|
|
7486
7506
|
async listSchedules(project) {
|
|
7487
7507
|
return this.invoke(
|
|
@@ -9651,7 +9671,7 @@ var OPERATIONS_GUIDE = {
|
|
|
9651
9671
|
"guideVersion": "v1",
|
|
9652
9672
|
"operationsGuideUrl": "https://github.com/Canonry/canonry/blob/main/docs/agent-operations/v1.md",
|
|
9653
9673
|
"resourceUri": "canonry://agent-operations/v1",
|
|
9654
|
-
"initialize": 'Canonry tracks how AI answer engines mention brands and cite domains.\nStart with canonry_help({intent:"status"}), or name your intended workflow. It returns a small route of currently available tools and approval boundaries. Follow its stored-evidence reads before proposing action. No skill, resource reader, plugin installation, or local CLI is required for connected MCP clients. A host-native Canonry skill, if installed, is optional additional guidance.\nmentioned = brand in answer TEXT; cited = domain in SOURCE links. Never compute one from the other. A null answerMentioned means not checked, not false. No recorded sweep means no measured figure.\nGet explicit approval for live provider reads, sweeps, probes, research, syncs, and writes, bounded to the target and requested work. A readOnlyHint or GET is not proof of a free operation. Live ads reads include canonry_ads_account, canonry_ads_geo_search, canonry_ads_live_delivery, canonry_ads_conversion_pixels, canonry_ads_conversion_event_settings. Google live reads/syncs include canonry_google_ads_customers, canonry_gtm_accounts, canonry_gtm_containers, canonry_gtm_workspaces, canonry_google_ads_sync, canonry_gtm_sync.\nHelp and skills grant no permissions. The server enforces authority. On missing tools or 403, report the boundary; do not switch credentials or endpoints to bypass it. Hosted catalogs are fixed; only use canonry_load_toolkit when help explicitly offers it.\n',
|
|
9674
|
+
"initialize": 'Canonry tracks how AI answer engines mention brands and cite domains.\nStart with canonry_help({intent:"status"}), or name your intended workflow. It returns a small route of currently available tools and approval boundaries. Follow its stored-evidence reads before proposing action. No skill, resource reader, plugin installation, or local CLI is required for connected MCP clients. A host-native Canonry skill, if installed, is optional additional guidance.\nmentioned = brand in answer TEXT; cited = domain in SOURCE links. Never compute one from the other. A null answerMentioned means not checked, not false. No recorded sweep means no measured figure.\nGet explicit approval for live provider reads, sweeps, probes, research, syncs, and writes, bounded to the target and requested work. A readOnlyHint or GET is not proof of a free operation. Live ads reads include canonry_ads_account, canonry_ads_geo_search, canonry_ads_live_delivery, canonry_ads_conversion_pixels, canonry_ads_conversion_event_settings. Google live reads/syncs include canonry_google_ads_customers, canonry_gtm_accounts, canonry_gtm_containers, canonry_gtm_workspaces, canonry_google_ads_sync, canonry_gtm_sync.\nHelp and skills grant no permissions. The server enforces authority. On missing tools or 403, report the boundary; do not switch credentials or endpoints to bypass it. Hosted catalogs are fixed; only use canonry_load_toolkit when help explicitly offers it.\nIf you uncover a Canonry struggle (failure, confusing output, workaround) or a concrete improvement, tell the user and send it once with canonry_feedback. No secrets or customer data.\n',
|
|
9655
9675
|
"approvalBoundary": [
|
|
9656
9676
|
"provider reads",
|
|
9657
9677
|
"sweeps",
|
package/dist/cli.js
CHANGED
|
@@ -35,11 +35,11 @@ import {
|
|
|
35
35
|
trackCliCommandFinished,
|
|
36
36
|
trackEvent,
|
|
37
37
|
waitForServerRuntimeStartup
|
|
38
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-4WZUR7XX.js";
|
|
39
39
|
import {
|
|
40
40
|
autoSyncSkills,
|
|
41
41
|
formatAutoSyncNotice
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-5GY5WBAF.js";
|
|
43
43
|
import {
|
|
44
44
|
configExists,
|
|
45
45
|
createApiClient,
|
|
@@ -56,13 +56,13 @@ import {
|
|
|
56
56
|
saveConfig,
|
|
57
57
|
saveConfigPatch,
|
|
58
58
|
shouldPrintServeSkillsNudge
|
|
59
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-ZZEPF3A5.js";
|
|
60
60
|
import {
|
|
61
61
|
DEFAULT_DEMO_TRUSTED_PROXIES,
|
|
62
62
|
trustedProxiesProblem,
|
|
63
63
|
trustedProxyProblem
|
|
64
64
|
} from "./chunk-RB2F4D3Z.js";
|
|
65
|
-
import "./chunk-
|
|
65
|
+
import "./chunk-5FYTFE5T.js";
|
|
66
66
|
import {
|
|
67
67
|
CliError,
|
|
68
68
|
EXIT_SYSTEM_ERROR,
|
|
@@ -74,7 +74,7 @@ import {
|
|
|
74
74
|
runMeasurementDraftAction,
|
|
75
75
|
systemError,
|
|
76
76
|
usageError
|
|
77
|
-
} from "./chunk-
|
|
77
|
+
} from "./chunk-DERWXLHX.js";
|
|
78
78
|
import {
|
|
79
79
|
CLOUDFLARE_WORKER_BINDINGS,
|
|
80
80
|
CLOUDFLARE_WORKER_GENERATED_MARKER,
|
|
@@ -90,7 +90,7 @@ import {
|
|
|
90
90
|
queries,
|
|
91
91
|
renderReportHtml,
|
|
92
92
|
runs
|
|
93
|
-
} from "./chunk-
|
|
93
|
+
} from "./chunk-7CVTTQRV.js";
|
|
94
94
|
import {
|
|
95
95
|
AdsDeliverySnapshotStatuses,
|
|
96
96
|
AdsHistoricalCampaignRollupStatuses,
|
|
@@ -103,6 +103,7 @@ import {
|
|
|
103
103
|
CheckScopes,
|
|
104
104
|
CheckStatuses,
|
|
105
105
|
CitationStates,
|
|
106
|
+
FEEDBACK_KINDS,
|
|
106
107
|
GaMoverChangeBases,
|
|
107
108
|
MeasurementEvidenceShapes,
|
|
108
109
|
OUTSTANDING_PROVIDER_BATCH_STATUSES,
|
|
@@ -145,6 +146,7 @@ import {
|
|
|
145
146
|
discoveryCompetitorTypeSchema,
|
|
146
147
|
effectiveDomains,
|
|
147
148
|
factorStatusFromScore,
|
|
149
|
+
feedbackSubmissionSchema,
|
|
148
150
|
formatGbpMetricLabel,
|
|
149
151
|
formatIsoDate,
|
|
150
152
|
formatMicros,
|
|
@@ -198,7 +200,7 @@ import {
|
|
|
198
200
|
visibilityCompareSelectionSchema,
|
|
199
201
|
visibilityReportRequestSchema,
|
|
200
202
|
winnabilityClassSchema
|
|
201
|
-
} from "./chunk-
|
|
203
|
+
} from "./chunk-EV5G5QRR.js";
|
|
202
204
|
|
|
203
205
|
// src/cli.ts
|
|
204
206
|
import { pathToFileURL } from "url";
|
|
@@ -732,7 +734,7 @@ function parseDemoTrustedProxies(values) {
|
|
|
732
734
|
async function demoCommand(options) {
|
|
733
735
|
const { host, port } = parseDemoListenOptions(options);
|
|
734
736
|
const trustProxy = parseDemoTrustedProxies(options.trustProxy);
|
|
735
|
-
const { createDemoServer } = await import("./demo-server-
|
|
737
|
+
const { createDemoServer } = await import("./demo-server-AIFR77TP.js");
|
|
736
738
|
const app = await createDemoServer({ trustProxy });
|
|
737
739
|
let stopping = false;
|
|
738
740
|
const stop = () => {
|
|
@@ -16950,6 +16952,33 @@ Usage: canonry telemetry <status|enable|disable> [--target local|server] [--form
|
|
|
16950
16952
|
}
|
|
16951
16953
|
}
|
|
16952
16954
|
|
|
16955
|
+
// src/commands/feedback.ts
|
|
16956
|
+
async function feedbackCommand(input, format) {
|
|
16957
|
+
const parsed = feedbackSubmissionSchema.safeParse({
|
|
16958
|
+
kind: input.kind ?? "other",
|
|
16959
|
+
summary: input.summary ?? "",
|
|
16960
|
+
...input.details ? { details: input.details } : {},
|
|
16961
|
+
...input.area ? { area: input.area } : {},
|
|
16962
|
+
...input.command ? { command: input.command } : {},
|
|
16963
|
+
...input.errorCode ? { errorCode: input.errorCode } : {}
|
|
16964
|
+
});
|
|
16965
|
+
if (!parsed.success) {
|
|
16966
|
+
const fields = [...new Set(parsed.error.issues.map((issue) => issue.path.join(".") || "input"))].join(", ");
|
|
16967
|
+
throw usageError(`Error: invalid feedback (${fields}). Kind is one of ${FEEDBACK_KINDS.join(", ")}; the summary is required, up to 500 characters.
|
|
16968
|
+
Usage: ${FEEDBACK_USAGE}`, {
|
|
16969
|
+
message: "Invalid feedback",
|
|
16970
|
+
details: { fields }
|
|
16971
|
+
});
|
|
16972
|
+
}
|
|
16973
|
+
const result = await createApiClient().sendFeedback(parsed.data);
|
|
16974
|
+
if (isMachineFormat(format)) {
|
|
16975
|
+
console.log(JSON.stringify(result, null, 2));
|
|
16976
|
+
return;
|
|
16977
|
+
}
|
|
16978
|
+
console.log(`Thanks, feedback sent to the Canonry team (id ${result.id}).`);
|
|
16979
|
+
}
|
|
16980
|
+
var FEEDBACK_USAGE = 'canonry feedback "<summary>" [--kind struggle|bug|improvement|other] [--details <text>] [--area <area>] [--command <canonry command>] [--error-code <code>] [--format json]';
|
|
16981
|
+
|
|
16953
16982
|
// src/commands/logs.ts
|
|
16954
16983
|
async function showOperationalLogs(query, format) {
|
|
16955
16984
|
const parsed = logQuerySchema.safeParse(query);
|
|
@@ -17110,6 +17139,22 @@ var SYSTEM_CLI_COMMANDS = [
|
|
|
17110
17139
|
stopDaemon(input.format);
|
|
17111
17140
|
}
|
|
17112
17141
|
},
|
|
17142
|
+
{
|
|
17143
|
+
path: ["feedback"],
|
|
17144
|
+
usage: FEEDBACK_USAGE,
|
|
17145
|
+
help: "Send a struggle, bug, improvement or note about Canonry itself to the Canonry team. Credentials are redacted before sending; never include customer data. The anonymous install id is attached only while telemetry is enabled.",
|
|
17146
|
+
options: { kind: stringOption(), details: stringOption(), area: stringOption(), command: stringOption(), "error-code": stringOption() },
|
|
17147
|
+
run: async (input) => {
|
|
17148
|
+
await feedbackCommand({
|
|
17149
|
+
summary: input.positionals.join(" ").trim() || void 0,
|
|
17150
|
+
kind: getString(input.values, "kind"),
|
|
17151
|
+
details: getString(input.values, "details"),
|
|
17152
|
+
area: getString(input.values, "area"),
|
|
17153
|
+
command: getString(input.values, "command"),
|
|
17154
|
+
errorCode: getString(input.values, "error-code")
|
|
17155
|
+
}, input.format);
|
|
17156
|
+
}
|
|
17157
|
+
},
|
|
17113
17158
|
{
|
|
17114
17159
|
path: ["telemetry", "status"],
|
|
17115
17160
|
usage: "canonry telemetry status [--target local|server] [--format json]",
|
|
@@ -5,11 +5,11 @@ import {
|
|
|
5
5
|
computeFactorAverages,
|
|
6
6
|
layoutSiteCrawlGraphInput,
|
|
7
7
|
persistSiteCrawlGraphLayout
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-5FYTFE5T.js";
|
|
9
9
|
import {
|
|
10
10
|
PACKAGE_VERSION,
|
|
11
11
|
canonryMcpTools
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-DERWXLHX.js";
|
|
13
13
|
import {
|
|
14
14
|
HISTORY_WINDOW_RUNS,
|
|
15
15
|
IntelligenceService,
|
|
@@ -85,7 +85,7 @@ import {
|
|
|
85
85
|
siteCrawlPages,
|
|
86
86
|
siteCrawlSnapshots,
|
|
87
87
|
trafficSources
|
|
88
|
-
} from "./chunk-
|
|
88
|
+
} from "./chunk-7CVTTQRV.js";
|
|
89
89
|
import {
|
|
90
90
|
RunKinds,
|
|
91
91
|
SiteCrawlFetchStates,
|
|
@@ -112,7 +112,7 @@ import {
|
|
|
112
112
|
roundPreservingTotal,
|
|
113
113
|
siteAuditPageFactorSchema,
|
|
114
114
|
wilsonInterval
|
|
115
|
-
} from "./chunk-
|
|
115
|
+
} from "./chunk-EV5G5QRR.js";
|
|
116
116
|
|
|
117
117
|
// src/demo-server.ts
|
|
118
118
|
import { dirname, join as join2 } from "path";
|
package/dist/index.js
CHANGED
|
@@ -3,14 +3,14 @@ import {
|
|
|
3
3
|
createGoogleMarketingCredentialStore,
|
|
4
4
|
createGoogleMarketingRuntime,
|
|
5
5
|
createServer
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-4WZUR7XX.js";
|
|
7
7
|
import {
|
|
8
8
|
loadConfig
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-ZZEPF3A5.js";
|
|
10
|
+
import "./chunk-5FYTFE5T.js";
|
|
11
|
+
import "./chunk-DERWXLHX.js";
|
|
12
|
+
import "./chunk-7CVTTQRV.js";
|
|
13
|
+
import "./chunk-EV5G5QRR.js";
|
|
14
14
|
export {
|
|
15
15
|
GoogleMarketingRuntimeError,
|
|
16
16
|
createGoogleMarketingCredentialStore,
|
package/dist/mcp.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
autoSyncSkills
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-5GY5WBAF.js";
|
|
4
4
|
import {
|
|
5
5
|
createApiClient,
|
|
6
6
|
createCanonryMcpServer
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-ZZEPF3A5.js";
|
|
8
|
+
import "./chunk-DERWXLHX.js";
|
|
9
9
|
import {
|
|
10
10
|
isReadOnlyKey,
|
|
11
11
|
updateCheckEnvOptOut
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-EV5G5QRR.js";
|
|
13
13
|
|
|
14
14
|
// src/mcp/cli.ts
|
|
15
15
|
import { randomUUID } from "crypto";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@canonry/canonry",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.3.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Self-hosted AI visibility (AEO) platform: track how ChatGPT, Claude, Gemini, and Perplexity cite your domain, join it with Search Console, GA4, server-side traffic, and paid media, and fix what you find through agent tools (CLI, REST, MCP). Local SQLite.",
|
|
6
6
|
"keywords": [
|
|
@@ -87,32 +87,32 @@
|
|
|
87
87
|
"tsx": "^4.19.0",
|
|
88
88
|
"@ainyc/canonry-web": "0.0.0",
|
|
89
89
|
"@ainyc/canonry-api-routes": "0.0.0",
|
|
90
|
-
"@ainyc/canonry-config": "0.0.0",
|
|
91
90
|
"@ainyc/canonry-api-client": "0.0.0",
|
|
91
|
+
"@ainyc/canonry-config": "0.0.0",
|
|
92
92
|
"@ainyc/canonry-contracts": "0.0.0",
|
|
93
93
|
"@ainyc/canonry-db": "0.0.0",
|
|
94
|
-
"@ainyc/canonry-integration-bing": "0.0.0",
|
|
95
|
-
"@ainyc/canonry-integration-cloudflare-queue": "0.0.0",
|
|
96
|
-
"@ainyc/canonry-integration-commoncrawl": "0.0.0",
|
|
97
94
|
"@ainyc/canonry-integration-cloud-run": "0.0.0",
|
|
98
|
-
"@ainyc/canonry-integration-
|
|
95
|
+
"@ainyc/canonry-integration-cloudflare-queue": "0.0.0",
|
|
96
|
+
"@ainyc/canonry-integration-bing": "0.0.0",
|
|
99
97
|
"@ainyc/canonry-integration-cloudflare-worker": "0.0.0",
|
|
100
|
-
"@ainyc/canonry-integration-google-ads": "0.0.0",
|
|
101
98
|
"@ainyc/canonry-integration-google-business-profile": "0.0.0",
|
|
99
|
+
"@ainyc/canonry-integration-google": "0.0.0",
|
|
100
|
+
"@ainyc/canonry-integration-google-ads": "0.0.0",
|
|
101
|
+
"@ainyc/canonry-integration-commoncrawl": "0.0.0",
|
|
102
102
|
"@ainyc/canonry-integration-google-tag-manager": "0.0.0",
|
|
103
103
|
"@ainyc/canonry-integration-google-places": "0.0.0",
|
|
104
104
|
"@ainyc/canonry-integration-openai-ads": "0.0.0",
|
|
105
105
|
"@ainyc/canonry-integration-traffic": "0.0.0",
|
|
106
|
-
"@ainyc/canonry-integration-wordpress": "0.0.0",
|
|
107
|
-
"@ainyc/canonry-provider-cdp": "0.0.0",
|
|
108
106
|
"@ainyc/canonry-intelligence": "0.0.0",
|
|
107
|
+
"@ainyc/canonry-provider-cdp": "0.0.0",
|
|
108
|
+
"@ainyc/canonry-integration-wordpress": "0.0.0",
|
|
109
|
+
"@ainyc/canonry-provider-gemini": "0.0.0",
|
|
109
110
|
"@ainyc/canonry-provider-claude": "0.0.0",
|
|
110
|
-
"@ainyc/canonry-provider-
|
|
111
|
+
"@ainyc/canonry-provider-local": "0.0.0",
|
|
111
112
|
"@ainyc/canonry-provider-perplexity": "0.0.0",
|
|
112
|
-
"@ainyc/canonry-provider-gemini": "0.0.0",
|
|
113
|
-
"@ainyc/canonry-provider-openai": "0.0.0",
|
|
114
113
|
"@ainyc/canonry-integration-typesafe": "0.0.0",
|
|
115
|
-
"@ainyc/canonry-provider-
|
|
114
|
+
"@ainyc/canonry-provider-muse": "0.0.0",
|
|
115
|
+
"@ainyc/canonry-provider-openai": "0.0.0"
|
|
116
116
|
},
|
|
117
117
|
"scripts": {
|
|
118
118
|
"build": "pnpm run build:cli && pnpm run build:web",
|