@ainyc/canonry 4.103.0 → 4.105.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.
Files changed (26) hide show
  1. package/README.md +7 -6
  2. package/assets/agent-workspace/skills/canonry/SKILL.md +5 -5
  3. package/assets/agent-workspace/skills/canonry/references/canonry-cli.md +1 -1
  4. package/assets/assets/{BacklinksPage-CAzeiWX-.js → BacklinksPage-Kls1x7Zh.js} +1 -1
  5. package/assets/assets/{ChartPrimitives-Cl91UJcT.js → ChartPrimitives-DteNu5zR.js} +1 -1
  6. package/assets/assets/ProjectPage-edkqv28l.js +7 -0
  7. package/assets/assets/{RunRow-DqumjxZP.js → RunRow-DSQNNTkL.js} +1 -1
  8. package/assets/assets/{RunsPage-DOdjY-ia.js → RunsPage-CNlAmkea.js} +1 -1
  9. package/assets/assets/{SettingsPage-DYW3Lfre.js → SettingsPage-CbZCrj9s.js} +1 -1
  10. package/assets/assets/{TrafficPage-DX8A16LI.js → TrafficPage-BA27Ssn7.js} +1 -1
  11. package/assets/assets/{TrafficSourceDetailPage-COLKpEny.js → TrafficSourceDetailPage-ObEEBBgZ.js} +1 -1
  12. package/assets/assets/{arrow-left-DsQ3GWJh.js → arrow-left-C6gsO8Mi.js} +1 -1
  13. package/assets/assets/{extract-error-message-DQEs2_vw.js → extract-error-message-C8UnfNTz.js} +1 -1
  14. package/assets/assets/{index-CY4Xe0F8.js → index-BFQXjVBq.js} +39 -39
  15. package/assets/assets/{trash-2-BARaYs9Y.js → trash-2-CX3yohiP.js} +1 -1
  16. package/assets/index.html +1 -1
  17. package/dist/{chunk-23DCY7DL.js → chunk-IDSJTITA.js} +1 -1
  18. package/dist/{chunk-Q7FFDQU4.js → chunk-LZW4ABXX.js} +25 -1
  19. package/dist/{chunk-GNMZTR6Y.js → chunk-UCKUZCIM.js} +1 -1
  20. package/dist/{chunk-BTJY73GW.js → chunk-XRKGLZF6.js} +16 -23
  21. package/dist/cli.js +16 -9
  22. package/dist/index.js +4 -4
  23. package/dist/{intelligence-service-GM3RXE2F.js → intelligence-service-UBGH5QF4.js} +2 -2
  24. package/dist/mcp.js +2 -2
  25. package/package.json +13 -10
  26. package/assets/assets/ProjectPage-6n6qXa-G.js +0 -7
@@ -1 +1 @@
1
- import{c}from"./index-CY4Xe0F8.js";const a=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],h=c("circle-check",a);const e=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]],n=c("circle-question-mark",e);const o=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],s=c("download",o);const t=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],r=c("trash-2",t);export{h as C,s as D,r as T,n as a};
1
+ import{c}from"./index-BFQXjVBq.js";const a=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],h=c("circle-check",a);const e=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]],n=c("circle-question-mark",e);const o=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],s=c("download",o);const t=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],r=c("trash-2",t);export{h as C,s as D,r as T,n as a};
package/assets/index.html CHANGED
@@ -12,7 +12,7 @@
12
12
  <link rel="icon" type="image/png" sizes="32x32" href="./favicon-32.png" />
13
13
  <link rel="apple-touch-icon" href="./apple-touch-icon.png" />
14
14
  <title>Canonry</title>
15
- <script type="module" crossorigin src="./assets/index-CY4Xe0F8.js"></script>
15
+ <script type="module" crossorigin src="./assets/index-BFQXjVBq.js"></script>
16
16
  <link rel="modulepreload" crossorigin href="./assets/vendor-tanstack-Be8JdV5M.js">
17
17
  <link rel="modulepreload" crossorigin href="./assets/vendor-radix-CQ77EO2y.js">
18
18
  <link rel="modulepreload" crossorigin href="./assets/vendor-recharts-C9EZkgbP.js">
@@ -24,7 +24,7 @@ import {
24
24
  trafficConnectVercelRequestSchema,
25
25
  trafficConnectWordpressRequestSchema,
26
26
  trafficEventKindSchema
27
- } from "./chunk-Q7FFDQU4.js";
27
+ } from "./chunk-LZW4ABXX.js";
28
28
 
29
29
  // src/config.ts
30
30
  import fs from "fs";
@@ -5415,9 +5415,31 @@ function buildEmbedClientConfig(resolved) {
5415
5415
  if (!resolved.enabled) return void 0;
5416
5416
  const client = { enabled: true };
5417
5417
  if (resolved.views && resolved.views.length > 0) client.views = resolved.views;
5418
+ if (resolved.projectTabs && resolved.projectTabs.length > 0) client.projectTabs = resolved.projectTabs;
5418
5419
  if (resolved.theme && Object.keys(resolved.theme).length > 0) client.theme = resolved.theme;
5419
5420
  return client;
5420
5421
  }
5422
+ function normalizeIdTokens(raw) {
5423
+ if (raw.length === 0) return void 0;
5424
+ const seen = /* @__PURE__ */ new Set();
5425
+ const out = [];
5426
+ for (const token of raw) {
5427
+ const id = token.toLowerCase();
5428
+ if (seen.has(id)) continue;
5429
+ seen.add(id);
5430
+ out.push(id);
5431
+ }
5432
+ return out.length > 0 ? out : void 0;
5433
+ }
5434
+ function embedClientConfigForRequest(resolved, projectTabsOverride) {
5435
+ const base = buildEmbedClientConfig(resolved);
5436
+ if (!base) return void 0;
5437
+ const override = normalizeIdTokens(splitList(projectTabsOverride));
5438
+ return override ? { ...base, projectTabs: override } : base;
5439
+ }
5440
+ function serializeForInlineScript(value) {
5441
+ return JSON.stringify(value).replace(/</g, "\\u003c").replace(/>/g, "\\u003e").replace(/&/g, "\\u0026").replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029");
5442
+ }
5421
5443
 
5422
5444
  // ../contracts/src/telemetry.ts
5423
5445
  var GHOST_TELEMETRY_TEST_LOCATIONS = /* @__PURE__ */ new Set(["nyc", "lax", "chi"]);
@@ -5738,6 +5760,8 @@ export {
5738
5760
  splitList,
5739
5761
  parseOriginList,
5740
5762
  frameAncestorsHeaderValue,
5741
- buildEmbedClientConfig,
5763
+ normalizeIdTokens,
5764
+ embedClientConfigForRequest,
5765
+ serializeForInlineScript,
5742
5766
  isGhostTelemetryEvent
5743
5767
  };
@@ -264,7 +264,7 @@ import {
264
264
  wordpressSchemaDeployResultDtoSchema,
265
265
  wordpressSchemaStatusResultDtoSchema,
266
266
  wordpressStatusDtoSchema
267
- } from "./chunk-Q7FFDQU4.js";
267
+ } from "./chunk-LZW4ABXX.js";
268
268
 
269
269
  // src/intelligence-service.ts
270
270
  import { eq as eq38, desc as desc18, asc as asc6, and as and28, ne as ne5, or as or5, inArray as inArray14, gte as gte7, lte as lte4 } from "drizzle-orm";
@@ -10,7 +10,7 @@ import {
10
10
  loadConfig,
11
11
  loadConfigRaw,
12
12
  saveConfigPatch
13
- } from "./chunk-23DCY7DL.js";
13
+ } from "./chunk-IDSJTITA.js";
14
14
  import {
15
15
  CC_CACHE_DIR,
16
16
  DUCKDB_SPEC,
@@ -115,7 +115,7 @@ import {
115
115
  siteAuditPages,
116
116
  siteAuditSnapshots,
117
117
  usageCounters
118
- } from "./chunk-GNMZTR6Y.js";
118
+ } from "./chunk-UCKUZCIM.js";
119
119
  import {
120
120
  AGENT_MEMORY_VALUE_MAX_BYTES,
121
121
  AGENT_PROVIDER_IDS,
@@ -147,7 +147,6 @@ import {
147
147
  agentMemoryUpsertRequestSchema,
148
148
  authInvalid,
149
149
  authRequired,
150
- buildEmbedClientConfig,
151
150
  buildRunErrorFromMessages,
152
151
  classifySkillFile,
153
152
  coerceSkillManifest,
@@ -158,6 +157,7 @@ import {
158
157
  dollarsToMicros,
159
158
  effectiveBrandNames,
160
159
  effectiveDomains,
160
+ embedClientConfigForRequest,
161
161
  factorStatusFromScore,
162
162
  frameAncestorsHeaderValue,
163
163
  hostOf,
@@ -165,18 +165,20 @@ import {
165
165
  isBrowserProvider,
166
166
  isGhostTelemetryEvent,
167
167
  isRetryableHttpError,
168
+ normalizeIdTokens,
168
169
  normalizeUrlPath,
169
170
  notFound,
170
171
  parseOriginList,
171
172
  providerError,
172
173
  resolveSnapshotRequestQueries,
174
+ serializeForInlineScript,
173
175
  serializeRunError,
174
176
  skillsClientSchema,
175
177
  splitList,
176
178
  validationError,
177
179
  winnabilityClassLabel,
178
180
  withRetry
179
- } from "./chunk-Q7FFDQU4.js";
181
+ } from "./chunk-LZW4ABXX.js";
180
182
 
181
183
  // src/telemetry.ts
182
184
  import crypto from "crypto";
@@ -337,7 +339,7 @@ function trackEvent(event, properties, options) {
337
339
  import { createRequire as createRequire2 } from "module";
338
340
  var _require2 = createRequire2(import.meta.url);
339
341
  var { version: PKG_VERSION } = _require2("../package.json");
340
- var PKG_NAME = "@ainyc/canonry";
342
+ var PKG_NAME = "@canonry/canonry";
341
343
  var NPM_DIST_TAGS_URL = `https://registry.npmjs.org/-/package/${PKG_NAME}/dist-tags`;
342
344
  var NPM_PACKAGE_URL = `https://www.npmjs.com/package/${PKG_NAME}`;
343
345
  var FETCH_TIMEOUT_MS = 1500;
@@ -2756,26 +2758,17 @@ function resolveEmbedConfig(env, config) {
2756
2758
  const enabled = rawEnabled ? rawEnabled === "1" || rawEnabled.toLowerCase() === "true" : embed?.enabled === true;
2757
2759
  const allowedOrigins = env.CANONRY_EMBED_ORIGINS !== void 0 ? parseOriginList(env.CANONRY_EMBED_ORIGINS) : parseOriginList(embed?.allowOrigins);
2758
2760
  const rawViews = env.CANONRY_EMBED_VIEWS !== void 0 ? splitList(env.CANONRY_EMBED_VIEWS) : splitList(embed?.views);
2759
- const views = normalizeViews(rawViews);
2761
+ const views = normalizeIdTokens(rawViews);
2762
+ const rawProjectTabs = env.CANONRY_EMBED_PROJECT_TABS !== void 0 ? splitList(env.CANONRY_EMBED_PROJECT_TABS) : splitList(embed?.projectTabs);
2763
+ const projectTabs = normalizeIdTokens(rawProjectTabs);
2760
2764
  return {
2761
2765
  enabled,
2762
2766
  allowedOrigins,
2763
2767
  ...views ? { views } : {},
2768
+ ...projectTabs ? { projectTabs } : {},
2764
2769
  ...embed?.theme ? { theme: embed.theme } : {}
2765
2770
  };
2766
2771
  }
2767
- function normalizeViews(raw) {
2768
- if (raw.length === 0) return void 0;
2769
- const seen = /* @__PURE__ */ new Set();
2770
- const out = [];
2771
- for (const view of raw) {
2772
- const id = view.toLowerCase();
2773
- if (seen.has(id)) continue;
2774
- seen.add(id);
2775
- out.push(id);
2776
- }
2777
- return out.length > 0 ? out : void 0;
2778
- }
2779
2772
 
2780
2773
  // src/agent-config.ts
2781
2774
  function resolveAgentEnabled(env, config) {
@@ -6438,7 +6431,7 @@ function readStoredGroundingSources(rawResponse) {
6438
6431
  return result;
6439
6432
  }
6440
6433
  async function backfillInsightsCommand(project, opts) {
6441
- const { IntelligenceService: IntelligenceService2 } = await import("./intelligence-service-GM3RXE2F.js");
6434
+ const { IntelligenceService: IntelligenceService2 } = await import("./intelligence-service-UBGH5QF4.js");
6442
6435
  const config = loadConfig();
6443
6436
  const db = createClient(config.database);
6444
6437
  migrate(db);
@@ -12235,21 +12228,21 @@ async function createServer(opts) {
12235
12228
  const assetsDir = opts.assetsDir ?? path9.join(dirname, "..", "assets");
12236
12229
  if (fs8.existsSync(assetsDir)) {
12237
12230
  const indexPath = path9.join(assetsDir, "index.html");
12238
- const injectConfig = (html) => {
12231
+ const injectConfig = (html, projectTabsOverride) => {
12239
12232
  const clientConfig = {};
12240
12233
  if (basePath) clientConfig.basePath = basePath;
12241
12234
  if (embed.enabled) {
12242
- const embedClient = buildEmbedClientConfig(embed);
12235
+ const embedClient = embedClientConfigForRequest(embed, projectTabsOverride);
12243
12236
  if (embedClient) clientConfig.embed = embedClient;
12244
12237
  }
12245
- const configScript = `<script>window.__CANONRY_CONFIG__=${JSON.stringify(clientConfig)}</script>`;
12238
+ const configScript = `<script>window.__CANONRY_CONFIG__=${serializeForInlineScript(clientConfig)}</script>`;
12246
12239
  const baseTag = `<base href="${basePath ?? "/"}">`;
12247
12240
  return html.replace("<head>", `<head>${baseTag}`).replace("</head>", `${configScript}</head>`);
12248
12241
  };
12249
12242
  const sendSpaDocument = (reply, html) => {
12250
12243
  reply.header("Cache-Control", "no-cache, must-revalidate");
12251
12244
  if (embedCsp) reply.header("Content-Security-Policy", embedCsp);
12252
- return reply.type("text/html").send(injectConfig(html));
12245
+ return reply.type("text/html").send(injectConfig(html, reply.request.headers["x-canonry-embed-tabs"]));
12253
12246
  };
12254
12247
  const fastifyStatic = await import("@fastify/static");
12255
12248
  await app.register(fastifyStatic.default, {
package/dist/cli.js CHANGED
@@ -29,7 +29,7 @@ import {
29
29
  setTelemetrySource,
30
30
  showFirstRunNotice,
31
31
  trackEvent
32
- } from "./chunk-BTJY73GW.js";
32
+ } from "./chunk-XRKGLZF6.js";
33
33
  import {
34
34
  CliError,
35
35
  EXIT_SYSTEM_ERROR,
@@ -46,7 +46,7 @@ import {
46
46
  saveConfig,
47
47
  saveConfigPatch,
48
48
  usageError
49
- } from "./chunk-23DCY7DL.js";
49
+ } from "./chunk-IDSJTITA.js";
50
50
  import {
51
51
  apiKeys,
52
52
  createClient,
@@ -54,7 +54,7 @@ import {
54
54
  projects,
55
55
  queries,
56
56
  renderReportHtml
57
- } from "./chunk-GNMZTR6Y.js";
57
+ } from "./chunk-UCKUZCIM.js";
58
58
  import {
59
59
  BacklinkSources,
60
60
  CcReleaseSyncStatuses,
@@ -80,7 +80,7 @@ import {
80
80
  providerQuotaPolicySchema,
81
81
  resolveProviderInput,
82
82
  winnabilityClassSchema
83
- } from "./chunk-Q7FFDQU4.js";
83
+ } from "./chunk-LZW4ABXX.js";
84
84
 
85
85
  // src/cli.ts
86
86
  import { pathToFileURL } from "url";
@@ -9209,7 +9209,7 @@ function formatSnapshotMarkdown(report) {
9209
9209
  lines.push("");
9210
9210
  }
9211
9211
  lines.push("---");
9212
- lines.push(`*Generated by [Canonry](https://github.com/AINYC/canonry)*`);
9212
+ lines.push(`*Generated by [Canonry](https://github.com/Canonry/canonry)*`);
9213
9213
  return lines.join("\n");
9214
9214
  }
9215
9215
  function formatSnapshotText(report) {
@@ -10380,6 +10380,7 @@ function buildServeForwardArgs(opts) {
10380
10380
  args.push("--embed");
10381
10381
  for (const origin of opts.embedAllowOrigins ?? []) args.push("--embed-allow-origin", origin);
10382
10382
  for (const view of opts.embedViews ?? []) args.push("--embed-view", view);
10383
+ for (const projectTab of opts.embedProjectTabs ?? []) args.push("--embed-project-tab", projectTab);
10383
10384
  }
10384
10385
  return args;
10385
10386
  }
@@ -11094,9 +11095,12 @@ function applyServerEnv(values) {
11094
11095
  if (basePath) process.env.CANONRY_BASE_PATH = basePath;
11095
11096
  const embedOrigins = getStringArray(values, "embed-allow-origin");
11096
11097
  const embedViews = getStringArray(values, "embed-view");
11098
+ const embedProjectTabs = getStringArray(values, "embed-project-tab");
11097
11099
  if (getBoolean(values, "embed")) process.env.CANONRY_EMBED = "1";
11098
11100
  if (embedOrigins && embedOrigins.length > 0) process.env.CANONRY_EMBED_ORIGINS = embedOrigins.join(",");
11099
11101
  if (embedViews && embedViews.length > 0) process.env.CANONRY_EMBED_VIEWS = embedViews.join(",");
11102
+ if (embedProjectTabs && embedProjectTabs.length > 0)
11103
+ process.env.CANONRY_EMBED_PROJECT_TABS = embedProjectTabs.join(",");
11100
11104
  }
11101
11105
  var SYSTEM_CLI_COMMANDS = [
11102
11106
  {
@@ -11153,14 +11157,15 @@ var SYSTEM_CLI_COMMANDS = [
11153
11157
  },
11154
11158
  {
11155
11159
  path: ["serve"],
11156
- usage: "canonry serve [--port <port>] [--host <host>] [--base-path <path>] [--embed] [--embed-allow-origin <origin>...] [--embed-view <view>...] [--format json]",
11160
+ usage: "canonry serve [--port <port>] [--host <host>] [--base-path <path>] [--embed] [--embed-allow-origin <origin>...] [--embed-view <view>...] [--embed-project-tab <tab>...] [--format json]",
11157
11161
  options: {
11158
11162
  port: stringOption(),
11159
11163
  host: stringOption(),
11160
11164
  "base-path": stringOption(),
11161
11165
  embed: { type: "boolean", default: false },
11162
11166
  "embed-allow-origin": multiStringOption(),
11163
- "embed-view": multiStringOption()
11167
+ "embed-view": multiStringOption(),
11168
+ "embed-project-tab": multiStringOption()
11164
11169
  },
11165
11170
  allowPositionals: false,
11166
11171
  run: async (input) => {
@@ -11170,14 +11175,15 @@ var SYSTEM_CLI_COMMANDS = [
11170
11175
  },
11171
11176
  {
11172
11177
  path: ["start"],
11173
- usage: "canonry start [--port <port>] [--host <host>] [--base-path <path>] [--embed] [--embed-allow-origin <origin>...] [--embed-view <view>...] [--format json]",
11178
+ usage: "canonry start [--port <port>] [--host <host>] [--base-path <path>] [--embed] [--embed-allow-origin <origin>...] [--embed-view <view>...] [--embed-project-tab <tab>...] [--format json]",
11174
11179
  options: {
11175
11180
  port: stringOption(),
11176
11181
  host: stringOption(),
11177
11182
  "base-path": stringOption(),
11178
11183
  embed: { type: "boolean", default: false },
11179
11184
  "embed-allow-origin": multiStringOption(),
11180
- "embed-view": multiStringOption()
11185
+ "embed-view": multiStringOption(),
11186
+ "embed-project-tab": multiStringOption()
11181
11187
  },
11182
11188
  allowPositionals: false,
11183
11189
  run: async (input) => {
@@ -11188,6 +11194,7 @@ var SYSTEM_CLI_COMMANDS = [
11188
11194
  embed: getBoolean(input.values, "embed"),
11189
11195
  embedAllowOrigins: getStringArray(input.values, "embed-allow-origin"),
11190
11196
  embedViews: getStringArray(input.values, "embed-view"),
11197
+ embedProjectTabs: getStringArray(input.values, "embed-project-tab"),
11191
11198
  format: input.format
11192
11199
  });
11193
11200
  }
package/dist/index.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  createServer
3
- } from "./chunk-BTJY73GW.js";
3
+ } from "./chunk-XRKGLZF6.js";
4
4
  import {
5
5
  loadConfig
6
- } from "./chunk-23DCY7DL.js";
7
- import "./chunk-GNMZTR6Y.js";
8
- import "./chunk-Q7FFDQU4.js";
6
+ } from "./chunk-IDSJTITA.js";
7
+ import "./chunk-UCKUZCIM.js";
8
+ import "./chunk-LZW4ABXX.js";
9
9
  export {
10
10
  createServer,
11
11
  loadConfig
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  IntelligenceService
3
- } from "./chunk-GNMZTR6Y.js";
4
- import "./chunk-Q7FFDQU4.js";
3
+ } from "./chunk-UCKUZCIM.js";
4
+ import "./chunk-LZW4ABXX.js";
5
5
  export {
6
6
  IntelligenceService
7
7
  };
package/dist/mcp.js CHANGED
@@ -3,10 +3,10 @@ import {
3
3
  PACKAGE_VERSION,
4
4
  canonryMcpTools,
5
5
  createApiClient
6
- } from "./chunk-23DCY7DL.js";
6
+ } from "./chunk-IDSJTITA.js";
7
7
  import {
8
8
  isReadOnlyKey
9
- } from "./chunk-Q7FFDQU4.js";
9
+ } from "./chunk-LZW4ABXX.js";
10
10
 
11
11
  // src/mcp/cli.ts
12
12
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
package/package.json CHANGED
@@ -1,17 +1,20 @@
1
1
  {
2
2
  "name": "@ainyc/canonry",
3
- "version": "4.103.0",
3
+ "version": "4.105.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",
7
7
  "homepage": "https://canonry.ai",
8
8
  "repository": {
9
9
  "type": "git",
10
- "url": "https://github.com/AINYC/canonry.git",
10
+ "url": "https://github.com/Canonry/canonry.git",
11
11
  "directory": "packages/canonry"
12
12
  },
13
13
  "bugs": {
14
- "url": "https://github.com/AINYC/canonry/issues"
14
+ "url": "https://github.com/Canonry/canonry/issues"
15
+ },
16
+ "publishConfig": {
17
+ "access": "public"
15
18
  },
16
19
  "bin": {
17
20
  "canonry": "./bin/canonry.mjs",
@@ -63,23 +66,23 @@
63
66
  "tsup": "^8.5.1",
64
67
  "tsx": "^4.19.0",
65
68
  "@ainyc/canonry-api-client": "0.0.0",
66
- "@ainyc/canonry-api-routes": "0.0.0",
69
+ "@ainyc/canonry-config": "0.0.0",
67
70
  "@ainyc/canonry-contracts": "0.0.0",
68
- "@ainyc/canonry-db": "0.0.0",
71
+ "@ainyc/canonry-api-routes": "0.0.0",
69
72
  "@ainyc/canonry-integration-bing": "0.0.0",
70
- "@ainyc/canonry-config": "0.0.0",
71
73
  "@ainyc/canonry-integration-openai-ads": "0.0.0",
72
- "@ainyc/canonry-integration-google": "0.0.0",
73
- "@ainyc/canonry-integration-cloud-run": "0.0.0",
74
+ "@ainyc/canonry-db": "0.0.0",
74
75
  "@ainyc/canonry-integration-commoncrawl": "0.0.0",
76
+ "@ainyc/canonry-integration-google": "0.0.0",
75
77
  "@ainyc/canonry-integration-google-business-profile": "0.0.0",
76
78
  "@ainyc/canonry-integration-google-places": "0.0.0",
79
+ "@ainyc/canonry-integration-cloud-run": "0.0.0",
80
+ "@ainyc/canonry-integration-traffic": "0.0.0",
77
81
  "@ainyc/canonry-integration-wordpress": "0.0.0",
78
- "@ainyc/canonry-intelligence": "0.0.0",
79
82
  "@ainyc/canonry-provider-cdp": "0.0.0",
83
+ "@ainyc/canonry-intelligence": "0.0.0",
80
84
  "@ainyc/canonry-provider-claude": "0.0.0",
81
85
  "@ainyc/canonry-provider-gemini": "0.0.0",
82
- "@ainyc/canonry-integration-traffic": "0.0.0",
83
86
  "@ainyc/canonry-provider-local": "0.0.0",
84
87
  "@ainyc/canonry-provider-perplexity": "0.0.0",
85
88
  "@ainyc/canonry-provider-openai": "0.0.0"