@canonry/canonry 7.61.1 → 7.61.2

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.
@@ -10,7 +10,7 @@ import {
10
10
  backfillSnapshotAttributionCommand,
11
11
  backfillTrafficClassificationCommand,
12
12
  replayQueryAuditLog
13
- } from "./chunk-4UTPB5KB.js";
13
+ } from "./chunk-H6QJN6RQ.js";
14
14
  import "./chunk-GAA7JGB7.js";
15
15
  import "./chunk-CZSHCZHW.js";
16
16
  import "./chunk-HGMYEDAQ.js";
@@ -18,7 +18,7 @@ import "./chunk-G3ZNUINX.js";
18
18
  import {
19
19
  backfillProjectAnswerMentions,
20
20
  backfillProjectAnswerMentionsInChunks
21
- } from "./chunk-QP36LXT5.js";
21
+ } from "./chunk-5STJ5LXF.js";
22
22
  import "./chunk-34HGKT6I.js";
23
23
  import "./chunk-KX5IRN55.js";
24
24
  import "./chunk-HD7AZIOP.js";
@@ -6193,9 +6193,9 @@ function queryValue(request, key) {
6193
6193
  function requestEmbedProjectTabs(request, configuredTabs) {
6194
6194
  const headerTabs = normalizeIdTokens(splitList(request.headers["x-canonry-embed-tabs"]));
6195
6195
  const configured = configuredTabs && configuredTabs.length > 0 ? configuredTabs : void 0;
6196
- if (!configured) return headerTabs;
6197
- if (!headerTabs) return [...configured];
6198
- return headerTabs.filter((tab) => configured.includes(tab));
6196
+ if (!configured) return headerTabs ? { tabs: headerTabs, fromEmbedSurface: true } : void 0;
6197
+ if (!headerTabs) return { tabs: [...configured], fromEmbedSurface: false };
6198
+ return { tabs: headerTabs.filter((tab) => configured.includes(tab)), fromEmbedSurface: true };
6199
6199
  }
6200
6200
  function projectRouteRest(url) {
6201
6201
  const match = url.match(/\/projects\/[^/]+(?:\/([^?#]*))?$/);
@@ -6255,12 +6255,14 @@ function isTechnicalAeoRead(request, url) {
6255
6255
  return rest === "technical-aeo" || rest === "technical-aeo/pages" || rest === "technical-aeo/trend" || rest === "technical-aeo/crawl" || rest === "technical-aeo/graph" || rest === "technical-aeo/subgraph" || rest === "technical-aeo/path" || rest === "technical-aeo/changes" || rest === "technical-aeo/crawl/pages/audit" || rest === "technical-aeo/crawl/pages" || rest === "technical-aeo/runs" || rest === "technical-aeo/structure" || rest === "technical-aeo/internal-links" || rest === "technical-aeo/internal-links/neighbors" || rest === "technical-aeo/dead-links";
6256
6256
  }
6257
6257
  function enforceEmbedProjectTabs(request, configuredTabs) {
6258
- const tabs = requestEmbedProjectTabs(request, configuredTabs);
6259
- if (tabs === void 0) return;
6258
+ const policy = requestEmbedProjectTabs(request, configuredTabs);
6259
+ if (policy === void 0) return;
6260
6260
  if (request.method === "OPTIONS") return;
6261
- if (WRITE_METHODS2.has(request.method)) {
6261
+ const { tabs } = policy;
6262
+ if (policy.fromEmbedSurface && WRITE_METHODS2.has(request.method)) {
6262
6263
  throw forbidden("This endpoint is not available in embed mode.");
6263
6264
  }
6265
+ if (WRITE_METHODS2.has(request.method)) return;
6264
6266
  const url = request.url.split("?")[0];
6265
6267
  if (isProjectShellRead(request, url)) return;
6266
6268
  if (tabs.includes("overview") && isOverviewRead(url)) return;
@@ -14,7 +14,7 @@ import {
14
14
  mergeGscQueryTotalsWithFallback,
15
15
  readGscQueryDailyRows,
16
16
  readLatestGscDataDate
17
- } from "./chunk-QP36LXT5.js";
17
+ } from "./chunk-5STJ5LXF.js";
18
18
  import {
19
19
  getRequestContext
20
20
  } from "./chunk-KX5IRN55.js";
@@ -23,7 +23,7 @@ import {
23
23
  createRunCompetitorResolver,
24
24
  readMarketCompetitorNames,
25
25
  refreshSnapshotMentionIdentity
26
- } from "./chunk-QP36LXT5.js";
26
+ } from "./chunk-5STJ5LXF.js";
27
27
  import {
28
28
  classifyAiUserFetch,
29
29
  classifyCrawler
@@ -437,7 +437,7 @@ No DB writes performed. Re-run without --dry-run to apply.`);
437
437
  }
438
438
  }
439
439
  async function backfillInsightsCommand(project, opts) {
440
- const { IntelligenceService } = await import("./intelligence-service-O4BALXZK.js");
440
+ const { IntelligenceService } = await import("./intelligence-service-ZJ5X6J3A.js");
441
441
  const config = loadConfig();
442
442
  const db = createClient(config.database);
443
443
  migrate(db);
@@ -47,7 +47,7 @@ function queueServeHandoff() {
47
47
  async function runPendingServeHandoff(format) {
48
48
  if (!pendingServeHandoff) return;
49
49
  pendingServeHandoff = false;
50
- const { serveCommand } = await import("./serve-YWBWBUBR.js");
50
+ const { serveCommand } = await import("./serve-U6ZKXTKN.js");
51
51
  await serveCommand(format);
52
52
  }
53
53
 
@@ -27,14 +27,14 @@ import {
27
27
  resolveConfiguredAgentProvider,
28
28
  resolveSessionProviderAndModel,
29
29
  setAeroSystemPrompt
30
- } from "./chunk-G3DZSUYD.js";
30
+ } from "./chunk-XEM6TO4X.js";
31
31
  import {
32
32
  AeroToolProfiles,
33
33
  AeroToolScopes,
34
34
  buildAeroStateTools,
35
35
  isAeroToolProfile,
36
36
  truncateToolResult
37
- } from "./chunk-BKNIXYMI.js";
37
+ } from "./chunk-ZB3YVCBL.js";
38
38
  import {
39
39
  getGoogleAuthConfig,
40
40
  getGoogleConnection,
@@ -162,7 +162,7 @@ import {
162
162
  addLogListener,
163
163
  createFastifyLogger,
164
164
  createLogger
165
- } from "./chunk-TGZKOIZ3.js";
165
+ } from "./chunk-COUDJ44G.js";
166
166
  import {
167
167
  computeCitedCompetitorDomains,
168
168
  determineCitationState
@@ -285,7 +285,7 @@ import {
285
285
  webhookResponseReason,
286
286
  webhookTargetRefusalReason,
287
287
  writeAuditLog
288
- } from "./chunk-QP36LXT5.js";
288
+ } from "./chunk-5STJ5LXF.js";
289
289
  import {
290
290
  OperationalLogStore,
291
291
  SentimentIdempotencyConflict,
@@ -5657,7 +5657,7 @@ function nonBlank(value) {
5657
5657
  return trimmed ? trimmed : void 0;
5658
5658
  }
5659
5659
  function resolveBuildCommit(env = process.env) {
5660
- const embedded = true ? "702b9edacd9f89400cd610bf68d54b10bb1d246e" : void 0;
5660
+ const embedded = true ? "792185d98d9005ebf7bfeded786729511b971905" : void 0;
5661
5661
  return nonBlank(embedded) ?? nonBlank(env.CANONRY_COMMIT);
5662
5662
  }
5663
5663
  function resolveInstanceIdentity(env = process.env) {
@@ -599,7 +599,7 @@ var DEMO_CLI_COMMANDS = [{
599
599
  options: { host: stringOption(), port: stringOption(), "trust-proxy": multiStringOption() },
600
600
  allowPositionals: false,
601
601
  run: async (input) => {
602
- const { demoCommand } = await import("./demo-CNTR3ZXS.js");
602
+ const { demoCommand } = await import("./demo-GLYZQOTJ.js");
603
603
  await demoCommand({
604
604
  host: getString(input.values, "host"),
605
605
  port: getString(input.values, "port"),
@@ -620,7 +620,7 @@ var BACKFILL_CLI_COMMANDS = [
620
620
  allowPositionals: false,
621
621
  supportsDryRun: true,
622
622
  run: async (input) => {
623
- const { backfillAnswerVisibilityCommand } = await import("./backfill-SCB3KOTF.js");
623
+ const { backfillAnswerVisibilityCommand } = await import("./backfill-7I5BMA6R.js");
624
624
  await backfillAnswerVisibilityCommand({
625
625
  project: getString(input.values, "project"),
626
626
  dryRun: input.dryRun,
@@ -637,7 +637,7 @@ var BACKFILL_CLI_COMMANDS = [
637
637
  allowPositionals: false,
638
638
  supportsDryRun: true,
639
639
  run: async (input) => {
640
- const { backfillAnswerMentionsCommand } = await import("./backfill-SCB3KOTF.js");
640
+ const { backfillAnswerMentionsCommand } = await import("./backfill-7I5BMA6R.js");
641
641
  await backfillAnswerMentionsCommand({
642
642
  project: getString(input.values, "project"),
643
643
  dryRun: input.dryRun,
@@ -655,7 +655,7 @@ var BACKFILL_CLI_COMMANDS = [
655
655
  },
656
656
  supportsDryRun: true,
657
657
  run: async (input) => {
658
- const { backfillInsightsCommand } = await import("./backfill-SCB3KOTF.js");
658
+ const { backfillInsightsCommand } = await import("./backfill-7I5BMA6R.js");
659
659
  const usage = "canonry backfill insights <project> [--from-run <id>] [--to-run <id>] [--since <date>] [--dry-run] [--format json]";
660
660
  const project3 = requireProject(input, "backfill insights", usage);
661
661
  await backfillInsightsCommand(project3, {
@@ -675,7 +675,7 @@ var BACKFILL_CLI_COMMANDS = [
675
675
  },
676
676
  allowPositionals: false,
677
677
  run: async (input) => {
678
- const { backfillNormalizedPathsCommand } = await import("./backfill-SCB3KOTF.js");
678
+ const { backfillNormalizedPathsCommand } = await import("./backfill-7I5BMA6R.js");
679
679
  await backfillNormalizedPathsCommand({
680
680
  project: getString(input.values, "project"),
681
681
  format: input.format
@@ -690,7 +690,7 @@ var BACKFILL_CLI_COMMANDS = [
690
690
  },
691
691
  allowPositionals: false,
692
692
  run: async (input) => {
693
- const { backfillAiReferralPathsCommand } = await import("./backfill-SCB3KOTF.js");
693
+ const { backfillAiReferralPathsCommand } = await import("./backfill-7I5BMA6R.js");
694
694
  await backfillAiReferralPathsCommand({
695
695
  project: getString(input.values, "project"),
696
696
  format: input.format
@@ -702,7 +702,7 @@ var BACKFILL_CLI_COMMANDS = [
702
702
  usage: "canonry backfill snapshot-attribution <project> [--dry-run] [--format json]",
703
703
  supportsDryRun: true,
704
704
  run: async (input) => {
705
- const { backfillSnapshotAttributionCommand } = await import("./backfill-SCB3KOTF.js");
705
+ const { backfillSnapshotAttributionCommand } = await import("./backfill-7I5BMA6R.js");
706
706
  const usage = "canonry backfill snapshot-attribution <project> [--dry-run] [--format json]";
707
707
  const project3 = requireProject(input, "backfill snapshot-attribution", usage);
708
708
  await backfillSnapshotAttributionCommand({
@@ -721,7 +721,7 @@ var BACKFILL_CLI_COMMANDS = [
721
721
  allowPositionals: false,
722
722
  supportsDryRun: true,
723
723
  run: async (input) => {
724
- const { backfillTrafficClassificationCommand } = await import("./backfill-SCB3KOTF.js");
724
+ const { backfillTrafficClassificationCommand } = await import("./backfill-7I5BMA6R.js");
725
725
  await backfillTrafficClassificationCommand({
726
726
  project: getString(input.values, "project"),
727
727
  dryRun: input.dryRun,
@@ -1163,7 +1163,7 @@ var DASHBOARD_CLI_COMMANDS = [
1163
1163
  usage: "canonry dashboard reset-password [--format json]",
1164
1164
  help: "Clears the dashboard password from config.yaml, so the dashboard asks for a new one after a restart.\nLocal only: it edits the config file under CANONRY_CONFIG_DIR and does not call the server.",
1165
1165
  run: async (input) => {
1166
- const { resetDashboardPassword } = await import("./dashboard-WHWMMX7W.js");
1166
+ const { resetDashboardPassword } = await import("./dashboard-4AEKE4XK.js");
1167
1167
  await resetDashboardPassword({ format: input.format });
1168
1168
  }
1169
1169
  },
@@ -6702,7 +6702,7 @@ var SYSTEM_CLI_COMMANDS = [
6702
6702
  options: { access: stringOption() },
6703
6703
  run: async (input) => {
6704
6704
  if (input.positionals.length > 1) throw usageError("Expected at most one command group");
6705
- const [{ printCliCatalog }, { REGISTERED_CLI_COMMANDS: REGISTERED_CLI_COMMANDS2 }] = await Promise.all([import("./cli-catalog-F3IOEPJK.js"), import("./cli-commands-J7CI2RNW.js")]);
6705
+ const [{ printCliCatalog }, { REGISTERED_CLI_COMMANDS: REGISTERED_CLI_COMMANDS2 }] = await Promise.all([import("./cli-catalog-F3IOEPJK.js"), import("./cli-commands-NVNMM4IE.js")]);
6706
6706
  printCliCatalog(REGISTERED_CLI_COMMANDS2, input.format, input.positionals[0], getString(input.values, "access"));
6707
6707
  }
6708
6708
  },
@@ -6751,7 +6751,7 @@ var SYSTEM_CLI_COMMANDS = [
6751
6751
  },
6752
6752
  allowPositionals: false,
6753
6753
  run: async (input) => {
6754
- const { initCommand } = await import("./init-NCJ6KXTS.js");
6754
+ const { initCommand } = await import("./init-U7MG23AF.js");
6755
6755
  await initCommand({
6756
6756
  force: getBoolean(input.values, "force"),
6757
6757
  ref: getString(input.values, "ref"),
@@ -6806,7 +6806,7 @@ var SYSTEM_CLI_COMMANDS = [
6806
6806
  allowPositionals: false,
6807
6807
  run: async (input) => {
6808
6808
  applyServerEnv(input.values);
6809
- const { serveCommand } = await import("./serve-YWBWBUBR.js");
6809
+ const { serveCommand } = await import("./serve-U6ZKXTKN.js");
6810
6810
  await serveCommand(input.format);
6811
6811
  }
6812
6812
  },
@@ -8114,8 +8114,8 @@ var AGENT_CLI_COMMANDS = [
8114
8114
  "timeout-ms": stringOption()
8115
8115
  },
8116
8116
  run: async (input) => {
8117
- const { coerceAgentProvider } = await import("./session-HCGHUWAV.js");
8118
- const { AERO_TOOL_PROFILES, isAeroToolProfile } = await import("./tools-C3I2X3IS.js");
8117
+ const { coerceAgentProvider } = await import("./session-PPYDP5UU.js");
8118
+ const { AERO_TOOL_PROFILES, isAeroToolProfile } = await import("./tools-OOAF75Y5.js");
8119
8119
  const { agentAsk } = await import("./agent-ask-KCZKPBY7.js");
8120
8120
  const usage = `canonry agent ask <project> "<prompt>" [--provider ${AGENT_PROVIDER_IDS.join("|")}] [--model <id>] [--scope all|read-only] [--profile default|ads-operator] [--context <json>] [--conversation <id>] [--max-tool-calls <n>] [--timeout-ms <ms>] [--format json]`;
8121
8121
  const project3 = requireProject(input, "agent.ask", usage);
@@ -5,7 +5,7 @@ import {
5
5
  isStoredPageReadTool,
6
6
  isStoredReadTool,
7
7
  truncateToolResult
8
- } from "./chunk-BKNIXYMI.js";
8
+ } from "./chunk-ZB3YVCBL.js";
9
9
  import {
10
10
  CANONRY_MCP_TOOLKITS
11
11
  } from "./chunk-NCIPNVD6.js";
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-HGMYEDAQ.js";
11
11
  import {
12
12
  buildOpenApiDocument
13
- } from "./chunk-QP36LXT5.js";
13
+ } from "./chunk-5STJ5LXF.js";
14
14
  import {
15
15
  DEFAULT_COMPETITOR_AUTO_ALIAS_MODE,
16
16
  MeasurementPortfolioLists,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  REGISTERED_CLI_COMMANDS
3
- } from "./chunk-3E7NFLYB.js";
3
+ } from "./chunk-RWHKTH75.js";
4
4
  import "./chunk-6GO5VVAC.js";
5
5
  import "./chunk-B5KK54RE.js";
6
6
  import "./chunk-VJWDBFSL.js";
package/dist/cli.js CHANGED
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node --import tsx
2
2
  import {
3
3
  REGISTERED_CLI_COMMANDS
4
- } from "./chunk-3E7NFLYB.js";
4
+ } from "./chunk-RWHKTH75.js";
5
5
  import {
6
6
  buildSetupState,
7
7
  runPendingServeHandoff
8
- } from "./chunk-V7Q2FUHQ.js";
8
+ } from "./chunk-KLB3CTOQ.js";
9
9
  import "./chunk-6GO5VVAC.js";
10
10
  import "./chunk-B5KK54RE.js";
11
11
  import "./chunk-VJWDBFSL.js";
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-HGMYEDAQ.js";
8
8
  import {
9
9
  anyUsersExist
10
- } from "./chunk-QP36LXT5.js";
10
+ } from "./chunk-5STJ5LXF.js";
11
11
  import "./chunk-34HGKT6I.js";
12
12
  import "./chunk-KX5IRN55.js";
13
13
  import {
@@ -40,7 +40,7 @@ function parseDemoTrustedProxies(values) {
40
40
  async function demoCommand(options) {
41
41
  const { host, port } = parseDemoListenOptions(options);
42
42
  const trustProxy = parseDemoTrustedProxies(options.trustProxy);
43
- const { createDemoServer } = await import("./demo-server-ZOV5HCDE.js");
43
+ const { createDemoServer } = await import("./demo-server-24RESPMP.js");
44
44
  const app = await createDemoServer({ trustProxy });
45
45
  let stopping = false;
46
46
  const stop = () => {
@@ -18,14 +18,14 @@ import "./chunk-HGMYEDAQ.js";
18
18
  import {
19
19
  HISTORY_WINDOW_RUNS,
20
20
  IntelligenceService
21
- } from "./chunk-TGZKOIZ3.js";
21
+ } from "./chunk-COUDJ44G.js";
22
22
  import {
23
23
  determineCitationState
24
24
  } from "./chunk-G3ZNUINX.js";
25
25
  import {
26
26
  apiRoutes,
27
27
  assessConversionTrackingIntegrity
28
- } from "./chunk-QP36LXT5.js";
28
+ } from "./chunk-5STJ5LXF.js";
29
29
  import "./chunk-34HGKT6I.js";
30
30
  import "./chunk-KX5IRN55.js";
31
31
  import {
package/dist/index.d.ts CHANGED
@@ -6730,7 +6730,7 @@ declare const providerBatches: drizzle_orm_sqlite_core.SQLiteTableWithColumns<{
6730
6730
  tableName: "provider_batches";
6731
6731
  dataType: "string";
6732
6732
  columnType: "SQLiteText";
6733
- data: "unknown" | "failed" | "submitted" | "submitting" | "ended" | "ingested" | "cancelled";
6733
+ data: "unknown" | "failed" | "submitted" | "cancelled" | "submitting" | "ended" | "ingested";
6734
6734
  driverParam: string;
6735
6735
  notNull: true;
6736
6736
  hasDefault: false;
@@ -6743,7 +6743,7 @@ declare const providerBatches: drizzle_orm_sqlite_core.SQLiteTableWithColumns<{
6743
6743
  generated: undefined;
6744
6744
  }, {}, {
6745
6745
  length: number | undefined;
6746
- $type: "unknown" | "failed" | "submitted" | "submitting" | "ended" | "ingested" | "cancelled";
6746
+ $type: "unknown" | "failed" | "submitted" | "cancelled" | "submitting" | "ended" | "ingested";
6747
6747
  }>;
6748
6748
  requestCount: drizzle_orm_sqlite_core.SQLiteColumn<{
6749
6749
  name: "request_count";
@@ -11826,7 +11826,7 @@ declare const siteAuditSnapshots: drizzle_orm_sqlite_core.SQLiteTableWithColumns
11826
11826
  weight: number;
11827
11827
  sharePct: number | null;
11828
11828
  avgScore: number;
11829
- status: "fail" | "partial" | "pass";
11829
+ status: "partial" | "fail" | "pass";
11830
11830
  pagesPassing: number;
11831
11831
  pagesPartial: number;
11832
11832
  pagesFailing: number;
@@ -11848,7 +11848,7 @@ declare const siteAuditSnapshots: drizzle_orm_sqlite_core.SQLiteTableWithColumns
11848
11848
  weight: number;
11849
11849
  sharePct: number | null;
11850
11850
  avgScore: number;
11851
- status: "fail" | "partial" | "pass";
11851
+ status: "partial" | "fail" | "pass";
11852
11852
  pagesPassing: number;
11853
11853
  pagesPartial: number;
11854
11854
  pagesFailing: number;
@@ -17234,7 +17234,7 @@ declare const gaLeadEventsDaily: drizzle_orm_sqlite_core.SQLiteTableWithColumns<
17234
17234
  tableName: "ga_lead_events_daily";
17235
17235
  dataType: "string";
17236
17236
  columnType: "SQLiteText";
17237
- data: "landing-page" | "channel";
17237
+ data: "channel" | "landing-page";
17238
17238
  driverParam: string;
17239
17239
  notNull: true;
17240
17240
  hasDefault: false;
@@ -17247,7 +17247,7 @@ declare const gaLeadEventsDaily: drizzle_orm_sqlite_core.SQLiteTableWithColumns<
17247
17247
  generated: undefined;
17248
17248
  }, {}, {
17249
17249
  length: number | undefined;
17250
- $type: "landing-page" | "channel";
17250
+ $type: "channel" | "landing-page";
17251
17251
  }>;
17252
17252
  eventCount: drizzle_orm_sqlite_core.SQLiteColumn<{
17253
17253
  name: "event_count";
@@ -17470,7 +17470,7 @@ declare const gaMeasurementSyncStates: drizzle_orm_sqlite_core.SQLiteTableWithCo
17470
17470
  tableName: "ga_measurement_sync_state";
17471
17471
  dataType: "string";
17472
17472
  columnType: "SQLiteText";
17473
- data: "landing-page" | "channel";
17473
+ data: "channel" | "landing-page";
17474
17474
  driverParam: string;
17475
17475
  notNull: false;
17476
17476
  hasDefault: false;
@@ -17483,7 +17483,7 @@ declare const gaMeasurementSyncStates: drizzle_orm_sqlite_core.SQLiteTableWithCo
17483
17483
  generated: undefined;
17484
17484
  }, {}, {
17485
17485
  length: number | undefined;
17486
- $type: "landing-page" | "channel";
17486
+ $type: "channel" | "landing-page";
17487
17487
  }>;
17488
17488
  searchLandingStatus: drizzle_orm_sqlite_core.SQLiteColumn<{
17489
17489
  name: "search_landing_status";
@@ -30662,7 +30662,7 @@ declare const adsOperationSteps: drizzle_orm_sqlite_core.SQLiteTableWithColumns<
30662
30662
  tableName: "ads_operation_steps";
30663
30663
  dataType: "string";
30664
30664
  columnType: "SQLiteText";
30665
- data: "unknown" | "active" | "failed" | "pending" | "executing" | "rollback_executing" | "rolled_back" | "rollback_failed";
30665
+ data: "unknown" | "failed" | "active" | "pending" | "executing" | "rollback_executing" | "rolled_back" | "rollback_failed";
30666
30666
  driverParam: string;
30667
30667
  notNull: true;
30668
30668
  hasDefault: false;
@@ -30675,7 +30675,7 @@ declare const adsOperationSteps: drizzle_orm_sqlite_core.SQLiteTableWithColumns<
30675
30675
  generated: undefined;
30676
30676
  }, {}, {
30677
30677
  length: number | undefined;
30678
- $type: "unknown" | "active" | "failed" | "pending" | "executing" | "rollback_executing" | "rolled_back" | "rollback_failed";
30678
+ $type: "unknown" | "failed" | "active" | "pending" | "executing" | "rollback_executing" | "rolled_back" | "rollback_failed";
30679
30679
  }>;
30680
30680
  providerUpdatedAt: drizzle_orm_sqlite_core.SQLiteColumn<{
30681
30681
  name: "provider_updated_at";
@@ -36933,8 +36933,8 @@ type ClassificationConfig = z.infer<typeof classificationConfigSchema>;
36933
36933
  declare const seoInstallConfigSchema: z.ZodObject<{
36934
36934
  enabled: z.ZodBoolean;
36935
36935
  fundingMode: z.ZodEnum<{
36936
- "self-hosted": "self-hosted";
36937
36936
  hosted: "hosted";
36937
+ "self-hosted": "self-hosted";
36938
36938
  }>;
36939
36939
  policy: z.ZodObject<{
36940
36940
  maxRunCostMicros: z.ZodNumber;
package/dist/index.js CHANGED
@@ -3,10 +3,10 @@ import {
3
3
  createGoogleMarketingCredentialStore,
4
4
  createGoogleMarketingRuntime,
5
5
  createServer
6
- } from "./chunk-QGXPQHDN.js";
6
+ } from "./chunk-OWEIOEOY.js";
7
7
  import "./chunk-7VEXNHRX.js";
8
- import "./chunk-G3DZSUYD.js";
9
- import "./chunk-BKNIXYMI.js";
8
+ import "./chunk-XEM6TO4X.js";
9
+ import "./chunk-ZB3YVCBL.js";
10
10
  import "./chunk-ELCLGWUT.js";
11
11
  import "./chunk-XEBKF4N5.js";
12
12
  import "./chunk-XCA546YC.js";
@@ -28,9 +28,9 @@ import "./chunk-VCSJHXW6.js";
28
28
  import "./chunk-MRNMDQRB.js";
29
29
  import "./chunk-AOJU5LKX.js";
30
30
  import "./chunk-HGMYEDAQ.js";
31
- import "./chunk-TGZKOIZ3.js";
31
+ import "./chunk-COUDJ44G.js";
32
32
  import "./chunk-G3ZNUINX.js";
33
- import "./chunk-QP36LXT5.js";
33
+ import "./chunk-5STJ5LXF.js";
34
34
  import "./chunk-34HGKT6I.js";
35
35
  import "./chunk-KX5IRN55.js";
36
36
  import "./chunk-HD7AZIOP.js";
@@ -7,7 +7,7 @@ import {
7
7
  import {
8
8
  buildSetupState,
9
9
  queueServeHandoff
10
- } from "./chunk-V7Q2FUHQ.js";
10
+ } from "./chunk-KLB3CTOQ.js";
11
11
  import "./chunk-VJWDBFSL.js";
12
12
  import "./chunk-EKY6GHJ4.js";
13
13
  import "./chunk-P5DZ56CR.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  HISTORY_WINDOW_RUNS,
3
3
  IntelligenceService
4
- } from "./chunk-TGZKOIZ3.js";
4
+ } from "./chunk-COUDJ44G.js";
5
5
  import "./chunk-G3ZNUINX.js";
6
- import "./chunk-QP36LXT5.js";
6
+ import "./chunk-5STJ5LXF.js";
7
7
  import "./chunk-34HGKT6I.js";
8
8
  import "./chunk-KX5IRN55.js";
9
9
  import "./chunk-HD7AZIOP.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  backfillAiReferralPaths,
3
3
  backfillNormalizedPaths
4
- } from "./chunk-4UTPB5KB.js";
4
+ } from "./chunk-H6QJN6RQ.js";
5
5
  import {
6
6
  operatorHttpUrl
7
7
  } from "./chunk-6GO5VVAC.js";
@@ -9,10 +9,10 @@ import {
9
9
  allowsKeylessFirstRunSetup,
10
10
  createServer,
11
11
  waitForServerRuntimeStartup
12
- } from "./chunk-QGXPQHDN.js";
12
+ } from "./chunk-OWEIOEOY.js";
13
13
  import "./chunk-7VEXNHRX.js";
14
- import "./chunk-G3DZSUYD.js";
15
- import "./chunk-BKNIXYMI.js";
14
+ import "./chunk-XEM6TO4X.js";
15
+ import "./chunk-ZB3YVCBL.js";
16
16
  import "./chunk-ELCLGWUT.js";
17
17
  import "./chunk-XEBKF4N5.js";
18
18
  import "./chunk-XCA546YC.js";
@@ -56,12 +56,12 @@ import {
56
56
  CliError,
57
57
  isMachineFormat
58
58
  } from "./chunk-HGMYEDAQ.js";
59
- import "./chunk-TGZKOIZ3.js";
59
+ import "./chunk-COUDJ44G.js";
60
60
  import "./chunk-G3ZNUINX.js";
61
61
  import {
62
62
  refreshSnapshotMentionIdentity,
63
63
  snapshotsWithSentimentResults
64
- } from "./chunk-QP36LXT5.js";
64
+ } from "./chunk-5STJ5LXF.js";
65
65
  import "./chunk-34HGKT6I.js";
66
66
  import "./chunk-KX5IRN55.js";
67
67
  import {
@@ -10,8 +10,8 @@ import {
10
10
  resolveAeroSkillDir,
11
11
  resolveConfiguredAgentProvider,
12
12
  resolveSessionProviderAndModel
13
- } from "./chunk-G3DZSUYD.js";
14
- import "./chunk-BKNIXYMI.js";
13
+ } from "./chunk-XEM6TO4X.js";
14
+ import "./chunk-ZB3YVCBL.js";
15
15
  import "./chunk-NCIPNVD6.js";
16
16
  import "./chunk-SZXYGJMI.js";
17
17
  import {
@@ -24,7 +24,7 @@ import "./chunk-VCSJHXW6.js";
24
24
  import "./chunk-MRNMDQRB.js";
25
25
  import "./chunk-AOJU5LKX.js";
26
26
  import "./chunk-HGMYEDAQ.js";
27
- import "./chunk-QP36LXT5.js";
27
+ import "./chunk-5STJ5LXF.js";
28
28
  import "./chunk-34HGKT6I.js";
29
29
  import "./chunk-KX5IRN55.js";
30
30
  import "./chunk-HD7AZIOP.js";
@@ -11,7 +11,7 @@ import {
11
11
  buildAllTools,
12
12
  buildReadTools,
13
13
  isAeroToolProfile
14
- } from "./chunk-BKNIXYMI.js";
14
+ } from "./chunk-ZB3YVCBL.js";
15
15
  import "./chunk-SZXYGJMI.js";
16
16
  import "./chunk-CZSHCZHW.js";
17
17
  import "./chunk-RL7LPPFU.js";
@@ -19,7 +19,7 @@ import "./chunk-VCSJHXW6.js";
19
19
  import "./chunk-MRNMDQRB.js";
20
20
  import "./chunk-AOJU5LKX.js";
21
21
  import "./chunk-HGMYEDAQ.js";
22
- import "./chunk-QP36LXT5.js";
22
+ import "./chunk-5STJ5LXF.js";
23
23
  import "./chunk-34HGKT6I.js";
24
24
  import "./chunk-KX5IRN55.js";
25
25
  import "./chunk-HD7AZIOP.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@canonry/canonry",
3
- "version": "7.61.1",
3
+ "version": "7.61.2",
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": [