@canonry/canonry 7.83.1 → 7.83.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-2LHPVDO5.js";
13
+ } from "./chunk-3GXAL3F7.js";
14
14
  import "./chunk-OMNS42ZQ.js";
15
15
  import "./chunk-WA4FD5Y6.js";
16
16
  import "./chunk-HGMYEDAQ.js";
@@ -18,7 +18,7 @@ import "./chunk-LZGVQSZL.js";
18
18
  import {
19
19
  backfillProjectAnswerMentions,
20
20
  backfillProjectAnswerMentionsInChunks
21
- } from "./chunk-ZDOT2XF2.js";
21
+ } from "./chunk-5AGYH5PX.js";
22
22
  import "./chunk-IQTMHY23.js";
23
23
  import "./chunk-WDEDEEWA.js";
24
24
  import "./chunk-3UFQI4KL.js";
@@ -24,7 +24,7 @@ import {
24
24
  createRunCompetitorResolver,
25
25
  readMarketCompetitorNames,
26
26
  refreshSnapshotMentionIdentity
27
- } from "./chunk-ZDOT2XF2.js";
27
+ } from "./chunk-5AGYH5PX.js";
28
28
  import {
29
29
  classifyAiUserFetch,
30
30
  classifyCrawler
@@ -439,7 +439,7 @@ No DB writes performed. Re-run without --dry-run to apply.`);
439
439
  }
440
440
  }
441
441
  async function backfillInsightsCommand(project, opts) {
442
- const { IntelligenceService } = await import("./intelligence-service-HZ2LWOHB.js");
442
+ const { IntelligenceService } = await import("./intelligence-service-AMXDCTS2.js");
443
443
  const config = loadConfig();
444
444
  const db = createClient(config.database);
445
445
  migrate(db);
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-HGMYEDAQ.js";
11
11
  import {
12
12
  buildOpenApiDocument
13
- } from "./chunk-ZDOT2XF2.js";
13
+ } from "./chunk-5AGYH5PX.js";
14
14
  import {
15
15
  DEFAULT_COMPETITOR_AUTO_ALIAS_MODE,
16
16
  MeasurementPortfolioLists,
@@ -49501,9 +49501,10 @@ async function googleRoutes(app, opts) {
49501
49501
  });
49502
49502
  const conditions = [eq70(gbpReviews.projectId, project.id)];
49503
49503
  if (locationName) conditions.push(eq70(gbpReviews.locationName, locationName));
49504
- if (negativeOnly) conditions.push(sql24`${gbpReviews.starRating} BETWEEN 1 AND ${negativeMaxStars}`);
49505
- const total = app.db.select({ n: sql24`count(*)` }).from(gbpReviews).where(and58(...conditions)).get()?.n ?? 0;
49506
- const reviews = app.db.select().from(gbpReviews).where(and58(...conditions)).orderBy(desc31(gbpReviews.updateTime), gbpReviews.reviewName).limit(limit).all().map((r) => ({
49504
+ const scoped = app.db.select().from(gbpReviews).where(and58(...conditions)).orderBy(desc31(gbpReviews.updateTime), gbpReviews.reviewName).all();
49505
+ const listed = withoutRepeatedPlacesReviews(app.db, project.id, scoped).filter((r) => !negativeOnly || isNegativeReviewRating(r.starRating, negativeMaxStars));
49506
+ const total = listed.length;
49507
+ const reviews = listed.slice(0, limit).map((r) => ({
49507
49508
  locationName: r.locationName,
49508
49509
  origin: r.origin,
49509
49510
  reviewName: r.reviewName,
@@ -49579,6 +49580,26 @@ function parseReviewNegativeFlag(value) {
49579
49580
  if (value === "true" || value === "1") return true;
49580
49581
  throw validationError('"negative" must be "true" or "false"');
49581
49582
  }
49583
+ function withoutRepeatedPlacesReviews(db, projectId, rows) {
49584
+ if (!rows.some((r) => r.origin === "places")) return rows;
49585
+ const v4Locations = new Set(db.select({ locationName: gbpReviewRatings.locationName }).from(gbpReviewRatings).where(and58(eq70(gbpReviewRatings.projectId, projectId), eq70(gbpReviewRatings.origin, "gbp"))).all().map((row) => row.locationName));
49586
+ const covered = new Set(db.select({ locationName: gbpLocations.locationName, reviewsAccess: gbpLocations.reviewsAccess }).from(gbpLocations).where(eq70(gbpLocations.projectId, projectId)).all().filter((loc) => businessProfileReviewsCover(loc.reviewsAccess ?? null, v4Locations.has(loc.locationName))).map((loc) => loc.locationName));
49587
+ const v4Copies = new Set(db.select({ locationName: gbpReviews.locationName, reviewerName: gbpReviews.reviewerName, createTime: gbpReviews.createTime }).from(gbpReviews).where(and58(eq70(gbpReviews.projectId, projectId), eq70(gbpReviews.origin, "gbp"))).all().map(reviewIdentity).filter((key) => key !== null));
49588
+ return rows.filter((r) => {
49589
+ if (r.origin !== "places") return true;
49590
+ if (covered.has(r.locationName)) return false;
49591
+ const identity = reviewIdentity(r);
49592
+ return identity === null || !v4Copies.has(identity);
49593
+ });
49594
+ }
49595
+ function reviewIdentity(review) {
49596
+ const reviewer = review.reviewerName?.trim().toLowerCase();
49597
+ const created = review.createTime === null ? Number.NaN : Date.parse(review.createTime);
49598
+ if (!reviewer || !Number.isFinite(created)) return null;
49599
+ return `${review.locationName}
49600
+ ${reviewer}
49601
+ ${Math.floor(created / 1e3)}`;
49602
+ }
49582
49603
  function parseReviewLimit(value) {
49583
49604
  if (value === void 0 || value === "") return REVIEW_LIST_DEFAULT_LIMIT;
49584
49605
  const parsed = Number(value);
@@ -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-E4HDMCY5.js");
50
+ const { serveCommand } = await import("./serve-KGZW5WPA.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-DH4DXUX4.js";
30
+ } from "./chunk-QHUCHZA3.js";
31
31
  import {
32
32
  AeroToolProfiles,
33
33
  AeroToolScopes,
34
34
  buildAeroStateTools,
35
35
  isAeroToolProfile,
36
36
  truncateToolResult
37
- } from "./chunk-7M7X54PL.js";
37
+ } from "./chunk-4D2QHIRS.js";
38
38
  import {
39
39
  getGoogleAuthConfig,
40
40
  getGoogleConnection,
@@ -161,7 +161,7 @@ import {
161
161
  } from "./chunk-HGMYEDAQ.js";
162
162
  import {
163
163
  IntelligenceService
164
- } from "./chunk-M3FWZMO4.js";
164
+ } from "./chunk-UGUON7IK.js";
165
165
  import {
166
166
  addLogListener,
167
167
  createFastifyLogger,
@@ -291,7 +291,7 @@ import {
291
291
  webhookResponseReason,
292
292
  webhookTargetRefusalReason,
293
293
  writeAuditLog
294
- } from "./chunk-ZDOT2XF2.js";
294
+ } from "./chunk-5AGYH5PX.js";
295
295
  import {
296
296
  OperationalLogStore,
297
297
  SentimentIdempotencyConflict,
@@ -5939,7 +5939,7 @@ function nonBlank(value) {
5939
5939
  return trimmed ? trimmed : void 0;
5940
5940
  }
5941
5941
  function resolveBuildCommit(env = process.env) {
5942
- const embedded = true ? "32fe862d5a435b4df92c0452b82af35be0401698" : void 0;
5942
+ const embedded = true ? "75364de8747fc957bbcd4ff16a1eceffda2cf9dd" : void 0;
5943
5943
  return nonBlank(embedded) ?? nonBlank(env.CANONRY_COMMIT);
5944
5944
  }
5945
5945
  function resolveInstanceIdentity(env = process.env) {
@@ -5,7 +5,7 @@ import {
5
5
  isStoredPageReadTool,
6
6
  isStoredReadTool,
7
7
  truncateToolResult
8
- } from "./chunk-7M7X54PL.js";
8
+ } from "./chunk-4D2QHIRS.js";
9
9
  import {
10
10
  CANONRY_MCP_TOOLKITS,
11
11
  resolveAeroSkillDir
@@ -17,7 +17,7 @@ import {
17
17
  mergeGscQueryTotalsWithFallback,
18
18
  readGscQueryDailyRows,
19
19
  readLatestGscDataDate
20
- } from "./chunk-ZDOT2XF2.js";
20
+ } from "./chunk-5AGYH5PX.js";
21
21
  import {
22
22
  competitors,
23
23
  gbpDailyMetrics,
@@ -727,7 +727,7 @@ var DEMO_CLI_COMMANDS = [{
727
727
  options: { host: stringOption(), port: stringOption(), "trust-proxy": multiStringOption() },
728
728
  allowPositionals: false,
729
729
  run: async (input) => {
730
- const { demoCommand } = await import("./demo-ZAVNNINJ.js");
730
+ const { demoCommand } = await import("./demo-DIP5JBEI.js");
731
731
  await demoCommand({
732
732
  host: getString(input.values, "host"),
733
733
  port: getString(input.values, "port"),
@@ -748,7 +748,7 @@ var BACKFILL_CLI_COMMANDS = [
748
748
  allowPositionals: false,
749
749
  supportsDryRun: true,
750
750
  run: async (input) => {
751
- const { backfillAnswerVisibilityCommand } = await import("./backfill-FPKFZZD6.js");
751
+ const { backfillAnswerVisibilityCommand } = await import("./backfill-PZBLCRPI.js");
752
752
  await backfillAnswerVisibilityCommand({
753
753
  project: getString(input.values, "project"),
754
754
  dryRun: input.dryRun,
@@ -765,7 +765,7 @@ var BACKFILL_CLI_COMMANDS = [
765
765
  allowPositionals: false,
766
766
  supportsDryRun: true,
767
767
  run: async (input) => {
768
- const { backfillAnswerMentionsCommand } = await import("./backfill-FPKFZZD6.js");
768
+ const { backfillAnswerMentionsCommand } = await import("./backfill-PZBLCRPI.js");
769
769
  await backfillAnswerMentionsCommand({
770
770
  project: getString(input.values, "project"),
771
771
  dryRun: input.dryRun,
@@ -783,7 +783,7 @@ var BACKFILL_CLI_COMMANDS = [
783
783
  },
784
784
  supportsDryRun: true,
785
785
  run: async (input) => {
786
- const { backfillInsightsCommand } = await import("./backfill-FPKFZZD6.js");
786
+ const { backfillInsightsCommand } = await import("./backfill-PZBLCRPI.js");
787
787
  const usage = "canonry backfill insights <project> [--from-run <id>] [--to-run <id>] [--since <date>] [--dry-run] [--format json]";
788
788
  const project3 = requireProject(input, "backfill insights", usage);
789
789
  await backfillInsightsCommand(project3, {
@@ -803,7 +803,7 @@ var BACKFILL_CLI_COMMANDS = [
803
803
  },
804
804
  allowPositionals: false,
805
805
  run: async (input) => {
806
- const { backfillNormalizedPathsCommand } = await import("./backfill-FPKFZZD6.js");
806
+ const { backfillNormalizedPathsCommand } = await import("./backfill-PZBLCRPI.js");
807
807
  await backfillNormalizedPathsCommand({
808
808
  project: getString(input.values, "project"),
809
809
  format: input.format
@@ -818,7 +818,7 @@ var BACKFILL_CLI_COMMANDS = [
818
818
  },
819
819
  allowPositionals: false,
820
820
  run: async (input) => {
821
- const { backfillAiReferralPathsCommand } = await import("./backfill-FPKFZZD6.js");
821
+ const { backfillAiReferralPathsCommand } = await import("./backfill-PZBLCRPI.js");
822
822
  await backfillAiReferralPathsCommand({
823
823
  project: getString(input.values, "project"),
824
824
  format: input.format
@@ -830,7 +830,7 @@ var BACKFILL_CLI_COMMANDS = [
830
830
  usage: "canonry backfill snapshot-attribution <project> [--dry-run] [--format json]",
831
831
  supportsDryRun: true,
832
832
  run: async (input) => {
833
- const { backfillSnapshotAttributionCommand } = await import("./backfill-FPKFZZD6.js");
833
+ const { backfillSnapshotAttributionCommand } = await import("./backfill-PZBLCRPI.js");
834
834
  const usage = "canonry backfill snapshot-attribution <project> [--dry-run] [--format json]";
835
835
  const project3 = requireProject(input, "backfill snapshot-attribution", usage);
836
836
  await backfillSnapshotAttributionCommand({
@@ -849,7 +849,7 @@ var BACKFILL_CLI_COMMANDS = [
849
849
  allowPositionals: false,
850
850
  supportsDryRun: true,
851
851
  run: async (input) => {
852
- const { backfillTrafficClassificationCommand } = await import("./backfill-FPKFZZD6.js");
852
+ const { backfillTrafficClassificationCommand } = await import("./backfill-PZBLCRPI.js");
853
853
  await backfillTrafficClassificationCommand({
854
854
  project: getString(input.values, "project"),
855
855
  dryRun: input.dryRun,
@@ -1291,7 +1291,7 @@ var DASHBOARD_CLI_COMMANDS = [
1291
1291
  usage: "canonry dashboard reset-password [--format json]",
1292
1292
  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.",
1293
1293
  run: async (input) => {
1294
- const { resetDashboardPassword } = await import("./dashboard-TKY5UW2E.js");
1294
+ const { resetDashboardPassword } = await import("./dashboard-SMI6A6OF.js");
1295
1295
  await resetDashboardPassword({ format: input.format });
1296
1296
  }
1297
1297
  },
@@ -6929,7 +6929,7 @@ var SYSTEM_CLI_COMMANDS = [
6929
6929
  options: { access: stringOption() },
6930
6930
  run: async (input) => {
6931
6931
  if (input.positionals.length > 1) throw usageError("Expected at most one command group");
6932
- const [{ printCliCatalog }, { REGISTERED_CLI_COMMANDS: REGISTERED_CLI_COMMANDS2 }] = await Promise.all([import("./cli-catalog-IKF4A7ZS.js"), import("./cli-commands-OFL44XAT.js")]);
6932
+ const [{ printCliCatalog }, { REGISTERED_CLI_COMMANDS: REGISTERED_CLI_COMMANDS2 }] = await Promise.all([import("./cli-catalog-IKF4A7ZS.js"), import("./cli-commands-KNMPQFQO.js")]);
6933
6933
  printCliCatalog(REGISTERED_CLI_COMMANDS2, input.format, input.positionals[0], getString(input.values, "access"));
6934
6934
  }
6935
6935
  },
@@ -6978,7 +6978,7 @@ var SYSTEM_CLI_COMMANDS = [
6978
6978
  },
6979
6979
  allowPositionals: false,
6980
6980
  run: async (input) => {
6981
- const { initCommand } = await import("./init-B3QKVWPF.js");
6981
+ const { initCommand } = await import("./init-UZPL4H55.js");
6982
6982
  await initCommand({
6983
6983
  force: getBoolean(input.values, "force"),
6984
6984
  ref: getString(input.values, "ref"),
@@ -7033,7 +7033,7 @@ var SYSTEM_CLI_COMMANDS = [
7033
7033
  allowPositionals: false,
7034
7034
  run: async (input) => {
7035
7035
  applyServerEnv(input.values);
7036
- const { serveCommand } = await import("./serve-E4HDMCY5.js");
7036
+ const { serveCommand } = await import("./serve-KGZW5WPA.js");
7037
7037
  await serveCommand(input.format);
7038
7038
  }
7039
7039
  },
@@ -8351,8 +8351,8 @@ var AGENT_CLI_COMMANDS = [
8351
8351
  "timeout-ms": stringOption()
8352
8352
  },
8353
8353
  run: async (input) => {
8354
- const { coerceAgentProvider } = await import("./session-EVHTLNIH.js");
8355
- const { AERO_TOOL_PROFILES, isAeroToolProfile } = await import("./tools-JPYR7UTF.js");
8354
+ const { coerceAgentProvider } = await import("./session-BY2FSRYU.js");
8355
+ const { AERO_TOOL_PROFILES, isAeroToolProfile } = await import("./tools-5YRH5NEI.js");
8356
8356
  const { agentAsk } = await import("./agent-ask-A4HQCNLV.js");
8357
8357
  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]`;
8358
8358
  const project3 = requireProject(input, "agent.ask", usage);
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  REGISTERED_CLI_COMMANDS
3
- } from "./chunk-ITQ3KPG2.js";
3
+ } from "./chunk-V52KSHH7.js";
4
4
  import "./chunk-6GO5VVAC.js";
5
5
  import "./chunk-VJWDBFSL.js";
6
6
  import "./chunk-JCWXEVYW.js";
package/dist/cli.js CHANGED
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node --import tsx
2
2
  import {
3
3
  REGISTERED_CLI_COMMANDS
4
- } from "./chunk-ITQ3KPG2.js";
4
+ } from "./chunk-V52KSHH7.js";
5
5
  import "./chunk-6GO5VVAC.js";
6
6
  import {
7
7
  buildSetupState,
8
8
  runPendingServeHandoff
9
- } from "./chunk-P7UE7HIX.js";
9
+ } from "./chunk-IJQJSNOZ.js";
10
10
  import "./chunk-VJWDBFSL.js";
11
11
  import "./chunk-JCWXEVYW.js";
12
12
  import "./chunk-TSENU4GG.js";
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-HGMYEDAQ.js";
8
8
  import {
9
9
  anyUsersExist
10
- } from "./chunk-ZDOT2XF2.js";
10
+ } from "./chunk-5AGYH5PX.js";
11
11
  import "./chunk-IQTMHY23.js";
12
12
  import "./chunk-WDEDEEWA.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-K5CZX35Q.js");
43
+ const { createDemoServer } = await import("./demo-server-EWOBWWV4.js");
44
44
  const app = await createDemoServer({ trustProxy });
45
45
  let stopping = false;
46
46
  const stop = () => {
@@ -18,7 +18,7 @@ import "./chunk-HGMYEDAQ.js";
18
18
  import {
19
19
  HISTORY_WINDOW_RUNS,
20
20
  IntelligenceService
21
- } from "./chunk-M3FWZMO4.js";
21
+ } from "./chunk-UGUON7IK.js";
22
22
  import "./chunk-SVMTN7MI.js";
23
23
  import {
24
24
  determineCitationState
@@ -26,7 +26,7 @@ import {
26
26
  import {
27
27
  apiRoutes,
28
28
  assessConversionTrackingIntegrity
29
- } from "./chunk-ZDOT2XF2.js";
29
+ } from "./chunk-5AGYH5PX.js";
30
30
  import "./chunk-IQTMHY23.js";
31
31
  import "./chunk-WDEDEEWA.js";
32
32
  import {
package/dist/index.d.ts CHANGED
@@ -1349,8 +1349,8 @@ declare const seoCompetitorSchema: z.ZodObject<{
1349
1349
  }, z.core.$strict>;
1350
1350
  type SeoCompetitor = z.infer<typeof seoCompetitorSchema>;
1351
1351
  declare const seoKeywordGapModeSchema: z.ZodEnum<{
1352
- missing: "missing";
1353
1352
  shared: "shared";
1353
+ missing: "missing";
1354
1354
  }>;
1355
1355
  type SeoKeywordGapMode = z.infer<typeof seoKeywordGapModeSchema>;
1356
1356
  /** Missing means absent from the provider's database result for this pair, never a fresh Google rank check. */
@@ -1380,8 +1380,8 @@ declare const seoKeywordGapSchema: z.ZodObject<{
1380
1380
  keywordDifficulty: z.ZodNullable<z.ZodNumber>;
1381
1381
  cpcUsd: z.ZodNullable<z.ZodNumber>;
1382
1382
  kind: z.ZodEnum<{
1383
- missing: "missing";
1384
1383
  shared: "shared";
1384
+ missing: "missing";
1385
1385
  outranked: "outranked";
1386
1386
  }>;
1387
1387
  rankGap: z.ZodNullable<z.ZodNumber>;
@@ -1677,8 +1677,8 @@ declare const seoResultsSchema: z.ZodObject<{
1677
1677
  keywordDifficulty: z.ZodNullable<z.ZodNumber>;
1678
1678
  cpcUsd: z.ZodNullable<z.ZodNumber>;
1679
1679
  kind: z.ZodEnum<{
1680
- missing: "missing";
1681
1680
  shared: "shared";
1681
+ missing: "missing";
1682
1682
  outranked: "outranked";
1683
1683
  }>;
1684
1684
  rankGap: z.ZodNullable<z.ZodNumber>;
@@ -7137,7 +7137,7 @@ declare const providerBatches: drizzle_orm_sqlite_core.SQLiteTableWithColumns<{
7137
7137
  tableName: "provider_batches";
7138
7138
  dataType: "string";
7139
7139
  columnType: "SQLiteText";
7140
- data: "unknown" | "failed" | "submitting" | "submitted" | "ended" | "ingested" | "cancelled";
7140
+ data: "unknown" | "failed" | "submitted" | "submitting" | "ended" | "ingested" | "cancelled";
7141
7141
  driverParam: string;
7142
7142
  notNull: true;
7143
7143
  hasDefault: false;
@@ -7150,7 +7150,7 @@ declare const providerBatches: drizzle_orm_sqlite_core.SQLiteTableWithColumns<{
7150
7150
  generated: undefined;
7151
7151
  }, {}, {
7152
7152
  length: number | undefined;
7153
- $type: "unknown" | "failed" | "submitting" | "submitted" | "ended" | "ingested" | "cancelled";
7153
+ $type: "unknown" | "failed" | "submitted" | "submitting" | "ended" | "ingested" | "cancelled";
7154
7154
  }>;
7155
7155
  requestCount: drizzle_orm_sqlite_core.SQLiteColumn<{
7156
7156
  name: "request_count";
@@ -12427,7 +12427,7 @@ declare const siteAuditSnapshots: drizzle_orm_sqlite_core.SQLiteTableWithColumns
12427
12427
  weight: number;
12428
12428
  sharePct: number | null;
12429
12429
  avgScore: number;
12430
- status: "fail" | "partial" | "pass";
12430
+ status: "partial" | "fail" | "pass";
12431
12431
  pagesPassing: number;
12432
12432
  pagesPartial: number;
12433
12433
  pagesFailing: number;
@@ -12449,7 +12449,7 @@ declare const siteAuditSnapshots: drizzle_orm_sqlite_core.SQLiteTableWithColumns
12449
12449
  weight: number;
12450
12450
  sharePct: number | null;
12451
12451
  avgScore: number;
12452
- status: "fail" | "partial" | "pass";
12452
+ status: "partial" | "fail" | "pass";
12453
12453
  pagesPassing: number;
12454
12454
  pagesPartial: number;
12455
12455
  pagesFailing: number;
@@ -17871,7 +17871,7 @@ declare const gaLeadEventsDaily: drizzle_orm_sqlite_core.SQLiteTableWithColumns<
17871
17871
  tableName: "ga_lead_events_daily";
17872
17872
  dataType: "string";
17873
17873
  columnType: "SQLiteText";
17874
- data: "landing-page" | "channel";
17874
+ data: "channel" | "landing-page";
17875
17875
  driverParam: string;
17876
17876
  notNull: true;
17877
17877
  hasDefault: false;
@@ -17884,7 +17884,7 @@ declare const gaLeadEventsDaily: drizzle_orm_sqlite_core.SQLiteTableWithColumns<
17884
17884
  generated: undefined;
17885
17885
  }, {}, {
17886
17886
  length: number | undefined;
17887
- $type: "landing-page" | "channel";
17887
+ $type: "channel" | "landing-page";
17888
17888
  }>;
17889
17889
  eventCount: drizzle_orm_sqlite_core.SQLiteColumn<{
17890
17890
  name: "event_count";
@@ -18107,7 +18107,7 @@ declare const gaMeasurementSyncStates: drizzle_orm_sqlite_core.SQLiteTableWithCo
18107
18107
  tableName: "ga_measurement_sync_state";
18108
18108
  dataType: "string";
18109
18109
  columnType: "SQLiteText";
18110
- data: "landing-page" | "channel";
18110
+ data: "channel" | "landing-page";
18111
18111
  driverParam: string;
18112
18112
  notNull: false;
18113
18113
  hasDefault: false;
@@ -18120,7 +18120,7 @@ declare const gaMeasurementSyncStates: drizzle_orm_sqlite_core.SQLiteTableWithCo
18120
18120
  generated: undefined;
18121
18121
  }, {}, {
18122
18122
  length: number | undefined;
18123
- $type: "landing-page" | "channel";
18123
+ $type: "channel" | "landing-page";
18124
18124
  }>;
18125
18125
  leadEventNames: drizzle_orm_sqlite_core.SQLiteColumn<{
18126
18126
  name: "lead_event_names";
@@ -32296,7 +32296,7 @@ declare const adsOperationSteps: drizzle_orm_sqlite_core.SQLiteTableWithColumns<
32296
32296
  tableName: "ads_operation_steps";
32297
32297
  dataType: "string";
32298
32298
  columnType: "SQLiteText";
32299
- data: "unknown" | "active" | "failed" | "pending" | "executing" | "rollback_executing" | "rolled_back" | "rollback_failed";
32299
+ data: "unknown" | "failed" | "active" | "pending" | "executing" | "rollback_executing" | "rolled_back" | "rollback_failed";
32300
32300
  driverParam: string;
32301
32301
  notNull: true;
32302
32302
  hasDefault: false;
@@ -32309,7 +32309,7 @@ declare const adsOperationSteps: drizzle_orm_sqlite_core.SQLiteTableWithColumns<
32309
32309
  generated: undefined;
32310
32310
  }, {}, {
32311
32311
  length: number | undefined;
32312
- $type: "unknown" | "active" | "failed" | "pending" | "executing" | "rollback_executing" | "rolled_back" | "rollback_failed";
32312
+ $type: "unknown" | "failed" | "active" | "pending" | "executing" | "rollback_executing" | "rolled_back" | "rollback_failed";
32313
32313
  }>;
32314
32314
  providerUpdatedAt: drizzle_orm_sqlite_core.SQLiteColumn<{
32315
32315
  name: "provider_updated_at";
package/dist/index.js CHANGED
@@ -3,10 +3,10 @@ import {
3
3
  createGoogleMarketingCredentialStore,
4
4
  createGoogleMarketingRuntime,
5
5
  createServer
6
- } from "./chunk-BIBFCAYR.js";
6
+ } from "./chunk-KVSCEZBR.js";
7
7
  import "./chunk-NCM6PX64.js";
8
- import "./chunk-DH4DXUX4.js";
9
- import "./chunk-7M7X54PL.js";
8
+ import "./chunk-QHUCHZA3.js";
9
+ import "./chunk-4D2QHIRS.js";
10
10
  import "./chunk-ELCLGWUT.js";
11
11
  import "./chunk-XEBKF4N5.js";
12
12
  import "./chunk-QAJDHHC5.js";
@@ -28,10 +28,10 @@ import "./chunk-W5ZBMBBZ.js";
28
28
  import "./chunk-KFMU6CLU.js";
29
29
  import "./chunk-AOJU5LKX.js";
30
30
  import "./chunk-HGMYEDAQ.js";
31
- import "./chunk-M3FWZMO4.js";
31
+ import "./chunk-UGUON7IK.js";
32
32
  import "./chunk-SVMTN7MI.js";
33
33
  import "./chunk-LZGVQSZL.js";
34
- import "./chunk-ZDOT2XF2.js";
34
+ import "./chunk-5AGYH5PX.js";
35
35
  import "./chunk-IQTMHY23.js";
36
36
  import "./chunk-WDEDEEWA.js";
37
37
  import "./chunk-3UFQI4KL.js";
@@ -7,7 +7,7 @@ import {
7
7
  import {
8
8
  buildSetupState,
9
9
  queueServeHandoff
10
- } from "./chunk-P7UE7HIX.js";
10
+ } from "./chunk-IJQJSNOZ.js";
11
11
  import "./chunk-VJWDBFSL.js";
12
12
  import "./chunk-P76XOEWL.js";
13
13
  import "./chunk-AA6P5NK3.js";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  HISTORY_WINDOW_RUNS,
3
3
  IntelligenceService
4
- } from "./chunk-M3FWZMO4.js";
4
+ } from "./chunk-UGUON7IK.js";
5
5
  import "./chunk-SVMTN7MI.js";
6
6
  import "./chunk-LZGVQSZL.js";
7
- import "./chunk-ZDOT2XF2.js";
7
+ import "./chunk-5AGYH5PX.js";
8
8
  import "./chunk-IQTMHY23.js";
9
9
  import "./chunk-WDEDEEWA.js";
10
10
  import "./chunk-3UFQI4KL.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  backfillAiReferralPaths,
3
3
  backfillNormalizedPaths
4
- } from "./chunk-2LHPVDO5.js";
4
+ } from "./chunk-3GXAL3F7.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-BIBFCAYR.js";
12
+ } from "./chunk-KVSCEZBR.js";
13
13
  import "./chunk-NCM6PX64.js";
14
- import "./chunk-DH4DXUX4.js";
15
- import "./chunk-7M7X54PL.js";
14
+ import "./chunk-QHUCHZA3.js";
15
+ import "./chunk-4D2QHIRS.js";
16
16
  import "./chunk-ELCLGWUT.js";
17
17
  import "./chunk-XEBKF4N5.js";
18
18
  import "./chunk-QAJDHHC5.js";
@@ -57,13 +57,13 @@ import {
57
57
  CliError,
58
58
  isMachineFormat
59
59
  } from "./chunk-HGMYEDAQ.js";
60
- import "./chunk-M3FWZMO4.js";
60
+ import "./chunk-UGUON7IK.js";
61
61
  import "./chunk-SVMTN7MI.js";
62
62
  import "./chunk-LZGVQSZL.js";
63
63
  import {
64
64
  refreshSnapshotMentionIdentity,
65
65
  snapshotsWithSentimentResults
66
- } from "./chunk-ZDOT2XF2.js";
66
+ } from "./chunk-5AGYH5PX.js";
67
67
  import "./chunk-IQTMHY23.js";
68
68
  import "./chunk-WDEDEEWA.js";
69
69
  import {
@@ -9,8 +9,8 @@ import {
9
9
  resolveAeroModel,
10
10
  resolveConfiguredAgentProvider,
11
11
  resolveSessionProviderAndModel
12
- } from "./chunk-DH4DXUX4.js";
13
- import "./chunk-7M7X54PL.js";
12
+ } from "./chunk-QHUCHZA3.js";
13
+ import "./chunk-4D2QHIRS.js";
14
14
  import {
15
15
  resolveAeroSkillDir
16
16
  } from "./chunk-MTW37GXF.js";
@@ -26,7 +26,7 @@ import "./chunk-KFMU6CLU.js";
26
26
  import "./chunk-AOJU5LKX.js";
27
27
  import "./chunk-HGMYEDAQ.js";
28
28
  import "./chunk-SVMTN7MI.js";
29
- import "./chunk-ZDOT2XF2.js";
29
+ import "./chunk-5AGYH5PX.js";
30
30
  import "./chunk-IQTMHY23.js";
31
31
  import "./chunk-WDEDEEWA.js";
32
32
  import "./chunk-3UFQI4KL.js";
@@ -11,7 +11,7 @@ import {
11
11
  buildAllTools,
12
12
  buildReadTools,
13
13
  isAeroToolProfile
14
- } from "./chunk-7M7X54PL.js";
14
+ } from "./chunk-4D2QHIRS.js";
15
15
  import "./chunk-IPPNN5KE.js";
16
16
  import "./chunk-WA4FD5Y6.js";
17
17
  import "./chunk-HIC62JTS.js";
@@ -19,7 +19,7 @@ import "./chunk-W5ZBMBBZ.js";
19
19
  import "./chunk-KFMU6CLU.js";
20
20
  import "./chunk-AOJU5LKX.js";
21
21
  import "./chunk-HGMYEDAQ.js";
22
- import "./chunk-ZDOT2XF2.js";
22
+ import "./chunk-5AGYH5PX.js";
23
23
  import "./chunk-IQTMHY23.js";
24
24
  import "./chunk-WDEDEEWA.js";
25
25
  import "./chunk-3UFQI4KL.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@canonry/canonry",
3
- "version": "7.83.1",
3
+ "version": "7.83.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": [