@canonry/canonry 7.78.0 → 7.78.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.
Files changed (89) hide show
  1. package/dist/{ads-MIR5MCHL.js → ads-MNMND5VH.js} +2 -2
  2. package/dist/{agent-IXRL5RBI.js → agent-4KNDL3D3.js} +5 -5
  3. package/dist/{agent-ask-K42H6H2T.js → agent-ask-32RTOL2M.js} +2 -2
  4. package/dist/{agent-conversations-2T3W4DHO.js → agent-conversations-BXVWHUZC.js} +2 -2
  5. package/dist/{agent-memory-LJBNSTSP.js → agent-memory-7R7UVFS5.js} +2 -2
  6. package/dist/{agent-providers-QR4LY3AP.js → agent-providers-QGVLCCH4.js} +2 -2
  7. package/dist/{agent-transcript-JIHJWHV6.js → agent-transcript-7Y6BJCIT.js} +2 -2
  8. package/dist/{analytics-JRV7DBBU.js → analytics-YOGEHW6J.js} +2 -2
  9. package/dist/{apply-ZFWDSAV4.js → apply-TB3MF3PH.js} +2 -2
  10. package/dist/{backfill-LU2AQIPY.js → backfill-IRVLT6VT.js} +5 -5
  11. package/dist/{backlinks-NAC2373F.js → backlinks-6GTL324T.js} +2 -2
  12. package/dist/{bing-L3LDBJOC.js → bing-OMQACSDY.js} +2 -2
  13. package/dist/{bootstrap-I6DA4KWB.js → bootstrap-WZ6YDQIG.js} +6 -6
  14. package/dist/{cdp-4F74XLTH.js → cdp-3WBLAWOL.js} +5 -5
  15. package/dist/{chunk-SAHH2FXO.js → chunk-2EWZ3DJ4.js} +1 -1
  16. package/dist/{chunk-VLOCDWCS.js → chunk-3QJWOF2B.js} +3 -2
  17. package/dist/{chunk-6PRFVLIK.js → chunk-4GEEYY3N.js} +1 -1
  18. package/dist/{chunk-UH44UCRM.js → chunk-5NBXPO4G.js} +1 -1
  19. package/dist/{chunk-L2KMR7CM.js → chunk-72YPSNCG.js} +1 -1
  20. package/dist/{chunk-L6F2HOQH.js → chunk-7HE4LAJY.js} +5 -5
  21. package/dist/{chunk-C5WSQXP5.js → chunk-7OAXEMOF.js} +1 -1
  22. package/dist/{chunk-RSVANBNW.js → chunk-BKOG3GEI.js} +1 -1
  23. package/dist/{chunk-EHXNYXAS.js → chunk-BLZCNL3B.js} +1 -1
  24. package/dist/{chunk-ZUC7CJVD.js → chunk-BTMLE3EN.js} +2 -2
  25. package/dist/{chunk-EFMZSYRD.js → chunk-COUM462G.js} +16 -13
  26. package/dist/{chunk-JEUL5QZP.js → chunk-GEHRGKQT.js} +3 -3
  27. package/dist/{chunk-WXIL2EFM.js → chunk-IYMTQHPD.js} +2 -2
  28. package/dist/{chunk-367K6XVX.js → chunk-KF7I7FBI.js} +2 -2
  29. package/dist/{chunk-SOQVI7EZ.js → chunk-LBNUTWPK.js} +1 -1
  30. package/dist/{chunk-6P6YBNKN.js → chunk-OES6PSQK.js} +3 -3
  31. package/dist/{chunk-6VBLPCCX.js → chunk-PH4AESRE.js} +2 -0
  32. package/dist/{chunk-UQOC5ZQE.js → chunk-PLLDJUG2.js} +2 -2
  33. package/dist/{chunk-M3BUP6XD.js → chunk-PRCBHOVR.js} +43 -7
  34. package/dist/{chunk-QXSOXDUR.js → chunk-R26CF4WT.js} +1 -1
  35. package/dist/{chunk-WCFANFR2.js → chunk-UHCOJCT3.js} +308 -308
  36. package/dist/{citations-2XELMCCV.js → citations-PGG7JEIN.js} +2 -2
  37. package/dist/{cli-commands-WCOAB6XU.js → cli-commands-NGXSLPIA.js} +4 -4
  38. package/dist/cli.js +7 -7
  39. package/dist/{competitor-IK4GYTZO.js → competitor-B3CZOKZU.js} +2 -2
  40. package/dist/{content-SMQPJXPC.js → content-Z4XJMZB4.js} +2 -2
  41. package/dist/{dashboard-EE24ROVG.js → dashboard-6MMYA2GG.js} +3 -3
  42. package/dist/{demo-7XH2N65A.js → demo-3R2SHQPO.js} +1 -1
  43. package/dist/{demo-server-CVB65UYW.js → demo-server-ISJOEJN5.js} +4 -4
  44. package/dist/{discover-3KHUCVE7.js → discover-OT3K7KQK.js} +2 -2
  45. package/dist/{discover-eval-DOEP4ZQ7.js → discover-eval-DN4J4KD5.js} +2 -2
  46. package/dist/{doctor-3T6RKSE7.js → doctor-UDF6OCSR.js} +2 -2
  47. package/dist/{evidence-4NFL5KM3.js → evidence-Z364UFOD.js} +2 -2
  48. package/dist/{export-cmd-BQC6XLJ7.js → export-cmd-K27XN4G5.js} +2 -2
  49. package/dist/{ga-HBRA4UUK.js → ga-Q2CELDLG.js} +2 -2
  50. package/dist/{gbp-2WMBTDJV.js → gbp-V2APGSIQ.js} +2 -2
  51. package/dist/{google-JFUE4BNJ.js → google-WFHYA3QT.js} +2 -2
  52. package/dist/{health-cmd-7BMVCCG2.js → health-cmd-RGFAJ4YP.js} +2 -2
  53. package/dist/{history-QA4ZXCVH.js → history-RUSU66BZ.js} +2 -2
  54. package/dist/index.d.ts +10 -7
  55. package/dist/index.js +13 -13
  56. package/dist/{init-O4G2MDMC.js → init-SMBVJSP6.js} +8 -8
  57. package/dist/{insights-K4UX2PSI.js → insights-4IFQLPS3.js} +2 -2
  58. package/dist/{intelligence-service-D7DS4UKT.js → intelligence-service-MPNONLCW.js} +3 -3
  59. package/dist/{journeys-UWEWJXGT.js → journeys-PTC2QY57.js} +2 -2
  60. package/dist/{keys-CL5YYE7Q.js → keys-JASXI2SR.js} +2 -2
  61. package/dist/{keyword-IFCC5IZT.js → keyword-SK2HJXCJ.js} +2 -2
  62. package/dist/{logs-2A3HBUBK.js → logs-AS5I5V2A.js} +2 -2
  63. package/dist/{mcp-B6L7PKZ4.js → mcp-BQSOYHEX.js} +3 -3
  64. package/dist/mcp.js +4 -4
  65. package/dist/{measurement-plan-GYSO6CXX.js → measurement-plan-LZYYH3OD.js} +3 -3
  66. package/dist/{notify-XM23I2B3.js → notify-JM6252F6.js} +2 -2
  67. package/dist/{organic-evidence-U7HZMXKP.js → organic-evidence-L3Y6RZIH.js} +2 -2
  68. package/dist/{overview-TSAK5DQP.js → overview-VIF2GXYW.js} +3 -3
  69. package/dist/{project-L7DLDEPI.js → project-FQEPFPRD.js} +2 -2
  70. package/dist/{query-FM5HDHO4.js → query-VKRESS6B.js} +2 -2
  71. package/dist/{research-7G5JU44N.js → research-6A6QWKN3.js} +2 -2
  72. package/dist/{results-export-JJDGG6ZP.js → results-export-VUB2ZD5B.js} +2 -2
  73. package/dist/{run-ZVIQVG23.js → run-PG5GYZT7.js} +3 -3
  74. package/dist/{schedule-TV7LWSYI.js → schedule-EBGOLCQZ.js} +2 -2
  75. package/dist/{search-7KRZLZ6S.js → search-NS4XPZRL.js} +2 -2
  76. package/dist/{serve-WSOG525W.js → serve-J7WR3J6I.js} +14 -14
  77. package/dist/{session-OUGQSGVV.js → session-FBHHWILQ.js} +6 -6
  78. package/dist/{settings-AOXQJOHN.js → settings-LNCAYCDF.js} +2 -2
  79. package/dist/{snapshot-B44CXKFU.js → snapshot-LX7OR7SO.js} +2 -2
  80. package/dist/{src-IBGSUYEG.js → src-AQ5MHQGQ.js} +1 -1
  81. package/dist/{status-RNBSFZ6Q.js → status-DQ6FNWUT.js} +3 -3
  82. package/dist/{technical-aeo-UAOKK5QH.js → technical-aeo-5GU2IY6W.js} +2 -2
  83. package/dist/{telemetry-55PUOMA7.js → telemetry-QK2GPII3.js} +3 -3
  84. package/dist/{tools-HRGP4FXN.js → tools-3ACR2D2V.js} +5 -5
  85. package/dist/{traffic-M4OHG5JW.js → traffic-2JFQKVAX.js} +2 -2
  86. package/dist/{users-GU7MULRM.js → users-7OJ2RGV3.js} +2 -2
  87. package/dist/{visibility-stats-4IDTDXDC.js → visibility-stats-VR25XMMY.js} +2 -2
  88. package/dist/{wordpress-CYXB4R5Y.js → wordpress-JYXTF4PL.js} +2 -2
  89. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-C5WSQXP5.js";
4
- import "./chunk-VLOCDWCS.js";
3
+ } from "./chunk-7OAXEMOF.js";
4
+ import "./chunk-3QJWOF2B.js";
5
5
  import {
6
6
  emitJsonl
7
7
  } from "./chunk-Z7IUAJOF.js";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  trackCliConnection
3
- } from "./chunk-367K6XVX.js";
4
- import "./chunk-UQOC5ZQE.js";
5
- import "./chunk-6PRFVLIK.js";
3
+ } from "./chunk-KF7I7FBI.js";
4
+ import "./chunk-PLLDJUG2.js";
5
+ import "./chunk-4GEEYY3N.js";
6
6
  import {
7
7
  createApiClient
8
- } from "./chunk-C5WSQXP5.js";
9
- import "./chunk-VLOCDWCS.js";
8
+ } from "./chunk-7OAXEMOF.js";
9
+ import "./chunk-3QJWOF2B.js";
10
10
  import "./chunk-AOJU5LKX.js";
11
11
  import {
12
12
  isMachineFormat
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-C5WSQXP5.js";
4
- import "./chunk-VLOCDWCS.js";
3
+ } from "./chunk-7OAXEMOF.js";
4
+ import "./chunk-3QJWOF2B.js";
5
5
  import "./chunk-AOJU5LKX.js";
6
6
  import {
7
7
  CliError,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-C5WSQXP5.js";
4
- import "./chunk-VLOCDWCS.js";
3
+ } from "./chunk-7OAXEMOF.js";
4
+ import "./chunk-3QJWOF2B.js";
5
5
  import "./chunk-AOJU5LKX.js";
6
6
  import {
7
7
  CliError,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-C5WSQXP5.js";
4
- import "./chunk-VLOCDWCS.js";
3
+ } from "./chunk-7OAXEMOF.js";
4
+ import "./chunk-3QJWOF2B.js";
5
5
  import {
6
6
  emitJsonl
7
7
  } from "./chunk-Z7IUAJOF.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-C5WSQXP5.js";
4
- import "./chunk-VLOCDWCS.js";
3
+ } from "./chunk-7OAXEMOF.js";
4
+ import "./chunk-3QJWOF2B.js";
5
5
  import {
6
6
  emitJsonl
7
7
  } from "./chunk-Z7IUAJOF.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-C5WSQXP5.js";
4
- import "./chunk-VLOCDWCS.js";
3
+ } from "./chunk-7OAXEMOF.js";
4
+ import "./chunk-3QJWOF2B.js";
5
5
  import "./chunk-AOJU5LKX.js";
6
6
  import {
7
7
  CliError,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-C5WSQXP5.js";
4
- import "./chunk-VLOCDWCS.js";
3
+ } from "./chunk-7OAXEMOF.js";
4
+ import "./chunk-3QJWOF2B.js";
5
5
  import "./chunk-AOJU5LKX.js";
6
6
  import {
7
7
  CliError,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-C5WSQXP5.js";
4
- import "./chunk-VLOCDWCS.js";
3
+ } from "./chunk-7OAXEMOF.js";
4
+ import "./chunk-3QJWOF2B.js";
5
5
  import "./chunk-AOJU5LKX.js";
6
6
  import {
7
7
  CliError,
@@ -10,18 +10,18 @@ import {
10
10
  backfillSnapshotAttributionCommand,
11
11
  backfillTrafficClassificationCommand,
12
12
  replayQueryAuditLog
13
- } from "./chunk-L6F2HOQH.js";
14
- import "./chunk-UH44UCRM.js";
15
- import "./chunk-VLOCDWCS.js";
13
+ } from "./chunk-7HE4LAJY.js";
14
+ import "./chunk-5NBXPO4G.js";
15
+ import "./chunk-3QJWOF2B.js";
16
16
  import "./chunk-HGMYEDAQ.js";
17
17
  import "./chunk-JERATA5R.js";
18
18
  import {
19
19
  backfillProjectAnswerMentions,
20
20
  backfillProjectAnswerMentionsInChunks
21
- } from "./chunk-M3BUP6XD.js";
21
+ } from "./chunk-PRCBHOVR.js";
22
22
  import "./chunk-O4WBYEGV.js";
23
23
  import "./chunk-3MGM3U6V.js";
24
- import "./chunk-6VBLPCCX.js";
24
+ import "./chunk-PH4AESRE.js";
25
25
  import "./chunk-PM2DB3HE.js";
26
26
  import "./chunk-MLKGABMK.js";
27
27
  export {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-C5WSQXP5.js";
4
- import "./chunk-VLOCDWCS.js";
3
+ } from "./chunk-7OAXEMOF.js";
4
+ import "./chunk-3QJWOF2B.js";
5
5
  import {
6
6
  emitJsonl
7
7
  } from "./chunk-Z7IUAJOF.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-C5WSQXP5.js";
4
- import "./chunk-VLOCDWCS.js";
3
+ } from "./chunk-7OAXEMOF.js";
4
+ import "./chunk-3QJWOF2B.js";
5
5
  import {
6
6
  emitJsonl
7
7
  } from "./chunk-Z7IUAJOF.js";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  trackCliConnection
3
- } from "./chunk-367K6XVX.js";
3
+ } from "./chunk-KF7I7FBI.js";
4
4
  import {
5
5
  answerServiceDescriptors
6
6
  } from "./chunk-WSWHLKKJ.js";
7
7
  import {
8
8
  outcomeFailure
9
- } from "./chunk-UQOC5ZQE.js";
9
+ } from "./chunk-PLLDJUG2.js";
10
10
  import {
11
11
  isLoopbackBindHost
12
12
  } from "./chunk-TSENU4GG.js";
@@ -16,10 +16,10 @@ import {
16
16
  import {
17
17
  isTelemetryEnabled,
18
18
  recordInstallRef
19
- } from "./chunk-6PRFVLIK.js";
19
+ } from "./chunk-4GEEYY3N.js";
20
20
  import {
21
21
  createApiClient
22
- } from "./chunk-C5WSQXP5.js";
22
+ } from "./chunk-7OAXEMOF.js";
23
23
  import {
24
24
  configExists,
25
25
  getAnswerServiceEnv,
@@ -30,7 +30,7 @@ import {
30
30
  loadConfigRaw,
31
31
  saveConfig,
32
32
  withBootstrapProviderDefaults
33
- } from "./chunk-VLOCDWCS.js";
33
+ } from "./chunk-3QJWOF2B.js";
34
34
  import "./chunk-AOJU5LKX.js";
35
35
  import {
36
36
  CliError,
@@ -44,7 +44,7 @@ import {
44
44
  createClient,
45
45
  dashboardSessions,
46
46
  migrate
47
- } from "./chunk-6VBLPCCX.js";
47
+ } from "./chunk-PH4AESRE.js";
48
48
  import {
49
49
  ProviderNames,
50
50
  ProviderReloadErrorReasons
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  trackCliConnection
3
- } from "./chunk-367K6XVX.js";
3
+ } from "./chunk-KF7I7FBI.js";
4
4
  import {
5
5
  outcomeFailure
6
- } from "./chunk-UQOC5ZQE.js";
7
- import "./chunk-6PRFVLIK.js";
6
+ } from "./chunk-PLLDJUG2.js";
7
+ import "./chunk-4GEEYY3N.js";
8
8
  import {
9
9
  createApiClient
10
- } from "./chunk-C5WSQXP5.js";
10
+ } from "./chunk-7OAXEMOF.js";
11
11
  import {
12
12
  loadConfig,
13
13
  saveConfigPatch
14
- } from "./chunk-VLOCDWCS.js";
14
+ } from "./chunk-3QJWOF2B.js";
15
15
  import "./chunk-AOJU5LKX.js";
16
16
  import {
17
17
  CliError,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-C5WSQXP5.js";
3
+ } from "./chunk-7OAXEMOF.js";
4
4
  import {
5
5
  emitJsonl
6
6
  } from "./chunk-Z7IUAJOF.js";
@@ -208,7 +208,8 @@ var mcpGatewayConfigSchema = z5.object({
208
208
  return false;
209
209
  }
210
210
  }),
211
- workspace: z5.string().trim().min(1).max(253).nullish()
211
+ workspace: z5.string().trim().min(1).max(253).nullish(),
212
+ clientId: z5.string().regex(/^[\w-]{1,256}$/).nullish()
212
213
  }).strict().nullish();
213
214
  function resolveOperatorApiKeyIds(source) {
214
215
  const raw = source.CANONRY_OPERATOR_KEY_IDS?.trim();
@@ -1045,7 +1046,7 @@ Do not use "canonry init --force" for recovery. It replaces credentials without
1045
1046
  if (!mcpGatewayConfigSchema.safeParse(parsed.mcpGateway).success) {
1046
1047
  throw new CliError({
1047
1048
  code: "CONFIG_INVALID",
1048
- message: `Invalid config at ${configPath}: mcpGateway needs an HTTPS url without credentials, query or fragment, and an optional non-empty workspace.`
1049
+ message: `Invalid config at ${configPath}: mcpGateway needs an HTTPS url without credentials, query or fragment, an optional non-empty workspace, and an optional clientId of letters, digits, underscores or hyphens.`
1049
1050
  });
1050
1051
  }
1051
1052
  if (!dashboardManagedSweepsSchema.safeParse(parsed.dashboard?.managedSweeps).success) {
@@ -5,7 +5,7 @@ import {
5
5
  loadConfig,
6
6
  loadConfigRaw,
7
7
  saveConfigPatch
8
- } from "./chunk-VLOCDWCS.js";
8
+ } from "./chunk-3QJWOF2B.js";
9
9
  import {
10
10
  CANONRY_NPM_PACKAGE_URL,
11
11
  compareSemver,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseJsonColumn
3
- } from "./chunk-6VBLPCCX.js";
3
+ } from "./chunk-PH4AESRE.js";
4
4
  import {
5
5
  AI_ENGINE_DOMAINS,
6
6
  AI_ENGINE_SELF_DOMAINS,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-C5WSQXP5.js";
3
+ } from "./chunk-7OAXEMOF.js";
4
4
  import {
5
5
  emitJsonl
6
6
  } from "./chunk-Z7IUAJOF.js";
@@ -7,10 +7,10 @@ import {
7
7
  reparseStoredResult4,
8
8
  reparseStoredResult5,
9
9
  resolveStoredApiResponse
10
- } from "./chunk-UH44UCRM.js";
10
+ } from "./chunk-5NBXPO4G.js";
11
11
  import {
12
12
  loadConfig
13
- } from "./chunk-VLOCDWCS.js";
13
+ } from "./chunk-3QJWOF2B.js";
14
14
  import {
15
15
  isMachineFormat
16
16
  } from "./chunk-HGMYEDAQ.js";
@@ -23,7 +23,7 @@ import {
23
23
  createRunCompetitorResolver,
24
24
  readMarketCompetitorNames,
25
25
  refreshSnapshotMentionIdentity
26
- } from "./chunk-M3BUP6XD.js";
26
+ } from "./chunk-PRCBHOVR.js";
27
27
  import {
28
28
  classifyAiUserFetch,
29
29
  classifyCrawler
@@ -42,7 +42,7 @@ import {
42
42
  querySnapshots,
43
43
  rawEventSamples,
44
44
  runs
45
- } from "./chunk-6VBLPCCX.js";
45
+ } from "./chunk-PH4AESRE.js";
46
46
  import {
47
47
  ProviderNames,
48
48
  RetrievalContracts,
@@ -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-D7DS4UKT.js");
440
+ const { IntelligenceService } = await import("./intelligence-service-MPNONLCW.js");
441
441
  const config = loadConfig();
442
442
  const db = createClient(config.database);
443
443
  migrate(db);
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  loadConfig
3
- } from "./chunk-VLOCDWCS.js";
3
+ } from "./chunk-3QJWOF2B.js";
4
4
  import {
5
5
  PACKAGE_VERSION
6
6
  } from "./chunk-AOJU5LKX.js";
@@ -6,7 +6,7 @@ import {
6
6
  import {
7
7
  createApiClient,
8
8
  runWithUsageTags
9
- } from "./chunk-C5WSQXP5.js";
9
+ } from "./chunk-7OAXEMOF.js";
10
10
  import {
11
11
  canonryMcpTools,
12
12
  mcpOutputSchema,
@@ -2,7 +2,7 @@ import {
2
2
  configExists,
3
3
  loadConfigRaw,
4
4
  saveConfigPatch
5
- } from "./chunk-VLOCDWCS.js";
5
+ } from "./chunk-3QJWOF2B.js";
6
6
  import {
7
7
  BUNDLED_SKILL_NAMES,
8
8
  installSkills
@@ -17,7 +17,7 @@ import {
17
17
  mergeGscQueryTotalsWithFallback,
18
18
  readGscQueryDailyRows,
19
19
  readLatestGscDataDate
20
- } from "./chunk-M3BUP6XD.js";
20
+ } from "./chunk-PRCBHOVR.js";
21
21
  import {
22
22
  competitors,
23
23
  gbpDailyMetrics,
@@ -35,7 +35,7 @@ import {
35
35
  queries,
36
36
  querySnapshots,
37
37
  runs
38
- } from "./chunk-6VBLPCCX.js";
38
+ } from "./chunk-PH4AESRE.js";
39
39
  import {
40
40
  CitationStates,
41
41
  RunKinds,
@@ -27,14 +27,14 @@ import {
27
27
  resolveConfiguredAgentProvider,
28
28
  resolveSessionProviderAndModel,
29
29
  setAeroSystemPrompt
30
- } from "./chunk-6P6YBNKN.js";
30
+ } from "./chunk-OES6PSQK.js";
31
31
  import {
32
32
  AeroToolProfiles,
33
33
  AeroToolScopes,
34
34
  buildAeroStateTools,
35
35
  isAeroToolProfile,
36
36
  truncateToolResult
37
- } from "./chunk-WXIL2EFM.js";
37
+ } from "./chunk-IYMTQHPD.js";
38
38
  import {
39
39
  getGoogleAuthConfig,
40
40
  getGoogleConnection,
@@ -64,7 +64,7 @@ import {
64
64
  openaiAdapter,
65
65
  openrouterAdapter,
66
66
  perplexityAdapter
67
- } from "./chunk-UH44UCRM.js";
67
+ } from "./chunk-5NBXPO4G.js";
68
68
  import {
69
69
  classifyUsageSurface,
70
70
  createApiUsageTelemetry,
@@ -76,7 +76,7 @@ import {
76
76
  startOutcomeTimer,
77
77
  trackFeatureCompleted,
78
78
  trackInstallState
79
- } from "./chunk-UQOC5ZQE.js";
79
+ } from "./chunk-PLLDJUG2.js";
80
80
  import {
81
81
  isLoopbackBindHost
82
82
  } from "./chunk-TSENU4GG.js";
@@ -96,17 +96,17 @@ import {
96
96
  recordDashboardEvent,
97
97
  setTelemetryPreference,
98
98
  trackEvent
99
- } from "./chunk-6PRFVLIK.js";
99
+ } from "./chunk-4GEEYY3N.js";
100
100
  import {
101
101
  createCanonryMcpServer
102
- } from "./chunk-RSVANBNW.js";
102
+ } from "./chunk-BKOG3GEI.js";
103
103
  import {
104
104
  CANONRY_MCP_TIERS,
105
105
  CANONRY_MCP_TOOLKIT_NAMES
106
106
  } from "./chunk-WVCDUKJ2.js";
107
107
  import {
108
108
  ApiClient
109
- } from "./chunk-C5WSQXP5.js";
109
+ } from "./chunk-7OAXEMOF.js";
110
110
  import {
111
111
  AGENT_PROVIDERS,
112
112
  adapterSupportsBatch,
@@ -138,7 +138,7 @@ import {
138
138
  saveConfigPatch,
139
139
  sentimentInstallReadiness,
140
140
  updateSharedProviderExecutionGate
141
- } from "./chunk-VLOCDWCS.js";
141
+ } from "./chunk-3QJWOF2B.js";
142
142
  import {
143
143
  getBundledSkillSnapshots
144
144
  } from "./chunk-AI44ZCMK.js";
@@ -148,7 +148,7 @@ import {
148
148
  persistSiteCrawlGraphLayout,
149
149
  prepareSiteCrawlGraphLayout,
150
150
  recordedSharePct
151
- } from "./chunk-SOQVI7EZ.js";
151
+ } from "./chunk-LBNUTWPK.js";
152
152
  import {
153
153
  CanonryMcpToolNames,
154
154
  canonryMcpTools
@@ -161,7 +161,7 @@ import {
161
161
  } from "./chunk-HGMYEDAQ.js";
162
162
  import {
163
163
  IntelligenceService
164
- } from "./chunk-ZUC7CJVD.js";
164
+ } from "./chunk-BTMLE3EN.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-M3BUP6XD.js";
294
+ } from "./chunk-PRCBHOVR.js";
295
295
  import {
296
296
  OperationalLogStore,
297
297
  SentimentIdempotencyConflict,
@@ -377,7 +377,7 @@ import {
377
377
  siteLivenessState,
378
378
  trafficSources,
379
379
  usageCounters
380
- } from "./chunk-6VBLPCCX.js";
380
+ } from "./chunk-PH4AESRE.js";
381
381
  import {
382
382
  AGENT_MEMORY_VALUE_MAX_BYTES,
383
383
  AI_ENGINE_DOMAINS,
@@ -5937,7 +5937,7 @@ function nonBlank(value) {
5937
5937
  return trimmed ? trimmed : void 0;
5938
5938
  }
5939
5939
  function resolveBuildCommit(env = process.env) {
5940
- const embedded = true ? "d072bd75fd700d80034392e01808c70cb509c189" : void 0;
5940
+ const embedded = true ? "3e41f6b61554e34c70c1fdc85a111f880cc15215" : void 0;
5941
5941
  return nonBlank(embedded) ?? nonBlank(env.CANONRY_COMMIT);
5942
5942
  }
5943
5943
  function resolveInstanceIdentity(env = process.env) {
@@ -21828,11 +21828,14 @@ async function createServer(opts) {
21828
21828
  if (publicOrigin) {
21829
21829
  const dashboardAssets = path5.join(assetsDir, "assets");
21830
21830
  const gateFont = fs5.existsSync(dashboardAssets) ? fs5.readdirSync(dashboardAssets).find((name) => /^geist-latin-wght-normal-[\w-]+\.woff2$/.test(name)) : void 0;
21831
+ const gateway = opts.config.mcpGateway;
21832
+ const gatewayClient = gateway?.clientId && URL.canParse(gateway.url) ? { id: gateway.clientId, origin: new URL(gateway.url).origin } : void 0;
21831
21833
  registerOAuthRoutes(app, {
21832
21834
  db: opts.db,
21833
21835
  issuer: publicOrigin,
21834
21836
  authorizationPath,
21835
21837
  ...gateFont ? { fontUrl: `${basePath ?? "/"}assets/${gateFont}` } : {},
21838
+ ...gatewayClient ? { gatewayClient } : {},
21836
21839
  resourcePaths: mcpTransportPaths().map(
21837
21840
  (suffix) => `${basePath ?? "/"}api/v1${suffix}`.replace("//", "/")
21838
21841
  ),
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  configExists,
6
6
  loadConfigRaw
7
- } from "./chunk-VLOCDWCS.js";
7
+ } from "./chunk-3QJWOF2B.js";
8
8
 
9
9
  // src/setup-state.ts
10
10
  import fs from "fs";
@@ -28,7 +28,7 @@ async function buildSetupState() {
28
28
  }
29
29
  if (dbPath && fs.existsSync(dbPath)) {
30
30
  try {
31
- const { createClient, projects, queries: queriesTable } = await import("./src-IBGSUYEG.js");
31
+ const { createClient, projects, queries: queriesTable } = await import("./src-AQ5MHQGQ.js");
32
32
  const db = createClient(dbPath);
33
33
  project_count = db.select({ id: projects.id }).from(projects).all().length;
34
34
  const firstQuery = db.select({ id: queriesTable.id }).from(queriesTable).limit(1).all();
@@ -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-WSOG525W.js");
50
+ const { serveCommand } = await import("./serve-J7WR3J6I.js");
51
51
  await serveCommand(format);
52
52
  }
53
53
 
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  runWithUsageTags
3
- } from "./chunk-C5WSQXP5.js";
3
+ } from "./chunk-7OAXEMOF.js";
4
4
  import {
5
5
  CanonryMcpToolNames,
6
6
  canonryMcpTools
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-HGMYEDAQ.js";
11
11
  import {
12
12
  buildOpenApiDocument
13
- } from "./chunk-M3BUP6XD.js";
13
+ } from "./chunk-PRCBHOVR.js";
14
14
  import {
15
15
  DEFAULT_COMPETITOR_AUTO_ALIAS_MODE,
16
16
  MeasurementPortfolioLists,
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  trackIntegrationConnection
3
- } from "./chunk-UQOC5ZQE.js";
3
+ } from "./chunk-PLLDJUG2.js";
4
4
  import {
5
5
  cliRuntimeContext
6
- } from "./chunk-6PRFVLIK.js";
6
+ } from "./chunk-4GEEYY3N.js";
7
7
 
8
8
  // src/cli-connection-telemetry.ts
9
9
  function trackCliConnection(properties) {
@@ -5,7 +5,7 @@ import {
5
5
  siteCrawlGraphNodes,
6
6
  siteCrawlPages,
7
7
  siteCrawlSnapshots
8
- } from "./chunk-6VBLPCCX.js";
8
+ } from "./chunk-PH4AESRE.js";
9
9
  import {
10
10
  SITE_CRAWL_GRAPH_MAX_EDGES,
11
11
  SITE_CRAWL_GRAPH_MAX_NODES,
@@ -5,7 +5,7 @@ import {
5
5
  isStoredPageReadTool,
6
6
  isStoredReadTool,
7
7
  truncateToolResult
8
- } from "./chunk-WXIL2EFM.js";
8
+ } from "./chunk-IYMTQHPD.js";
9
9
  import {
10
10
  CANONRY_MCP_TOOLKITS
11
11
  } from "./chunk-WVCDUKJ2.js";
@@ -22,7 +22,7 @@ import {
22
22
  resolveApiKeyFor,
23
23
  resolveModelForProvider,
24
24
  validateAgentProviderRegistry
25
- } from "./chunk-VLOCDWCS.js";
25
+ } from "./chunk-3QJWOF2B.js";
26
26
  import {
27
27
  CanonryMcpToolNames,
28
28
  canonryMcpTools
@@ -33,7 +33,7 @@ import {
33
33
  import {
34
34
  agentToolEvents,
35
35
  llmUsageEvents
36
- } from "./chunk-6VBLPCCX.js";
36
+ } from "./chunk-PH4AESRE.js";
37
37
  import {
38
38
  MeasurementPortfolioLists,
39
39
  SeoCapabilities,
@@ -919,6 +919,8 @@ var oauthClients = sqliteTable2("oauth_clients", {
919
919
  * chose its own display name — so that name is a claim, not a fact, and the
920
920
  * consent page must say so. A client calling itself "Canonry Dashboard"
921
921
  * otherwise reads as first-party on the one screen where trust is decided.
922
+ * The one exception is the shared MCP gateway's client once the operator
923
+ * names it in config (`mcpGateway.clientId`); its row stays `dynamic`.
922
924
  */
923
925
  registration: text2("registration").$type().notNull().default("operator"),
924
926
  createdAt: text2("created_at").notNull(),
@@ -2,10 +2,10 @@ import {
2
2
  bucketCliCommandDuration,
3
3
  isTelemetryEnabled,
4
4
  trackEvent
5
- } from "./chunk-6PRFVLIK.js";
5
+ } from "./chunk-4GEEYY3N.js";
6
6
  import {
7
7
  getConfigDir
8
- } from "./chunk-VLOCDWCS.js";
8
+ } from "./chunk-3QJWOF2B.js";
9
9
  import {
10
10
  currentOutcomeAttribution
11
11
  } from "./chunk-3MGM3U6V.js";