@canonry/canonry 7.87.2 → 7.89.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 (153) hide show
  1. package/assets/agent-workspace/skills/canonry/references/canonry-cli.md +31 -5
  2. package/assets/assets/{AgentSetupPage-_ZP3F_zA.js → AgentSetupPage-BU1supL8.js} +6 -6
  3. package/assets/assets/AuditHistoryPanel-D7or_J3j.js +1 -0
  4. package/assets/assets/{BacklinksPage-CsvVgXTZ.js → BacklinksPage-SOls3ew4.js} +1 -1
  5. package/assets/assets/{ChartPrimitives-4D5wgAn5.js → ChartPrimitives-Cs2iavxU.js} +1 -1
  6. package/assets/assets/{Hint-CfeZmZig.js → Hint-uoVNfr0U.js} +1 -1
  7. package/assets/assets/{HistoryPage-BCxpCul0.js → HistoryPage-LNKtQ6a8.js} +1 -1
  8. package/assets/assets/{InfoTooltip-DrBIPuSU.js → InfoTooltip-CNLlIWeP.js} +1 -1
  9. package/assets/assets/MeasurementPropertyPage-CTZzlHWE.js +4 -0
  10. package/assets/assets/ProjectPage-D79zuY-M.js +11 -0
  11. package/assets/assets/{RunsPage-CfQ_kqlu.js → RunsPage-B8zUD2gr.js} +1 -1
  12. package/assets/assets/{SettingsPage-PIgRvqJc.js → SettingsPage-BOQgT_7N.js} +1 -1
  13. package/assets/assets/SiteHealthSection-G3_MShnD.js +2 -0
  14. package/assets/assets/{ToneBadge-BgTLSTKp.js → ToneBadge-DawS8vMp.js} +6 -6
  15. package/assets/assets/TrafficPage-DJUqxtrQ.js +40 -0
  16. package/assets/assets/TrafficSourceDetailPage-OVY_L73m.js +1 -0
  17. package/assets/assets/{account-context-CVjb3ZSn.js → account-context-DoI9S9qY.js} +1 -1
  18. package/assets/assets/agent-trust-copy-CZpfPr4M.js +1 -0
  19. package/assets/assets/{card-BnVez9nG.js → card-ClURYmZN.js} +1 -1
  20. package/assets/assets/{format-helpers-DVXZD864.js → format-helpers-CscAFAMJ.js} +2 -2
  21. package/assets/assets/{index-BOUrrC9J.css → index-Bhpq6fUo.css} +1 -1
  22. package/assets/assets/index-y0Wx0ZWq.js +60 -0
  23. package/assets/assets/{query-client-CVc7wMKJ.js → query-client-Dm_GqsTu.js} +1 -1
  24. package/assets/assets/react-query-BwhgbuS1.js +1 -0
  25. package/assets/assets/{react-sigma_core.esm.min-CVfGIEIE.js → react-sigma_core.esm.min-6J0MSvMJ.js} +1 -1
  26. package/assets/assets/server-traffic-C-_D6pdo.js +1 -0
  27. package/assets/assets/{service-BGqeyqhZ.js → service-C7qDx_qB.js} +1 -1
  28. package/assets/assets/{vendor-lucide-CoTHJwai.js → vendor-lucide-Bo69m9KC.js} +1 -1
  29. package/assets/assets/{vendor-markdown-cQgSk2i0.js → vendor-markdown-BiRP51B0.js} +1 -1
  30. package/assets/assets/{vendor-radix-wS8sWIWE.js → vendor-radix-PQeN8gOe.js} +1 -1
  31. package/assets/assets/{vendor-recharts-AnNqECZW.js → vendor-recharts-CY6tH-r6.js} +1 -1
  32. package/assets/assets/{vendor-tanstack-q5SvZtcv.js → vendor-tanstack-tBjrfzKu.js} +1 -1
  33. package/assets/index.html +15 -15
  34. package/dist/{ads-ZUZWSIBV.js → ads-XEW2LBKV.js} +3 -3
  35. package/dist/{agent-YDS3WY7B.js → agent-VYADMMPT.js} +7 -7
  36. package/dist/{agent-ask-7VUPXTXL.js → agent-ask-4G57GM3S.js} +3 -3
  37. package/dist/{agent-conversations-WPEBK3BS.js → agent-conversations-MRKRCXQI.js} +3 -3
  38. package/dist/{agent-journeys-H5CCYLNB.js → agent-journeys-WEUEYRMK.js} +3 -3
  39. package/dist/{agent-memory-CNPKPIWD.js → agent-memory-YLAOXQQ6.js} +3 -3
  40. package/dist/{agent-providers-U7FLJO5I.js → agent-providers-AWKQRJDZ.js} +3 -3
  41. package/dist/{agent-transcript-VY3BQNPU.js → agent-transcript-HXYFVCUD.js} +3 -3
  42. package/dist/{analytics-PYUNO7C2.js → analytics-5G5G5OJU.js} +3 -3
  43. package/dist/{apply-YNBEYC2G.js → apply-FCKZG7A2.js} +3 -3
  44. package/dist/{backfill-6AYHWEQX.js → backfill-3CTZHCJS.js} +10 -10
  45. package/dist/{backlinks-LVHZ2MQ7.js → backlinks-Q53JT63C.js} +3 -3
  46. package/dist/bing-FOY2UVIM.js +785 -0
  47. package/dist/{bootstrap-27NOBWTP.js → bootstrap-FXIT7LDW.js} +10 -10
  48. package/dist/{cdp-HCYY4SXR.js → cdp-WWQW3LIZ.js} +7 -7
  49. package/dist/{chunk-INH773FB.js → chunk-2BZJ4W27.js} +3 -3
  50. package/dist/{chunk-3KK6FWDF.js → chunk-3H5VURTU.js} +1 -1
  51. package/dist/{chunk-IK7QEKKD.js → chunk-3IC7PRTW.js} +1 -1
  52. package/dist/{chunk-BVJA3TV2.js → chunk-4INNOSWU.js} +5 -5
  53. package/dist/{chunk-4LNZTL7M.js → chunk-5GQ2AGWS.js} +3 -3
  54. package/dist/{chunk-3FHBPJ5R.js → chunk-7522CQ2E.js} +4 -4
  55. package/dist/{chunk-2FJB3CSS.js → chunk-A6DKZ4KQ.js} +1 -1
  56. package/dist/{chunk-JAYUWQAV.js → chunk-DPKA5CWK.js} +1 -1
  57. package/dist/{chunk-MNLAIB67.js → chunk-DX46HM7S.js} +1 -1
  58. package/dist/{chunk-ZJVQ72VC.js → chunk-EWR25OVQ.js} +2 -2
  59. package/dist/{chunk-TFB2S6TQ.js → chunk-GDEYX6E3.js} +4 -4
  60. package/dist/{chunk-T2MGGW6Y.js → chunk-GSNKBXGN.js} +6 -6
  61. package/dist/{chunk-AI75KS7G.js → chunk-HSOZSLIZ.js} +2574 -1585
  62. package/dist/{chunk-IVGVPPQT.js → chunk-IK3PYAQU.js} +1088 -646
  63. package/dist/{chunk-GDU6IMGB.js → chunk-J7V7TYX7.js} +2 -2
  64. package/dist/{chunk-GXTCDNX7.js → chunk-JLBJEQPV.js} +1 -1
  65. package/dist/{chunk-ZCNKGBIV.js → chunk-KAGMYJYG.js} +5 -5
  66. package/dist/{chunk-2AXFKYJU.js → chunk-MNLQY5WG.js} +2 -2
  67. package/dist/{chunk-FAMCDCVK.js → chunk-MXGME7NG.js} +1 -1
  68. package/dist/{chunk-6F5ULQDY.js → chunk-RE24YYIY.js} +4 -4
  69. package/dist/{chunk-ICS2WJ7H.js → chunk-S7D2ELTC.js} +3 -3
  70. package/dist/{chunk-TEQF4ZJA.js → chunk-TCANF22P.js} +162 -2
  71. package/dist/{chunk-BJHHD7VE.js → chunk-UIULMWJX.js} +2 -2
  72. package/dist/{chunk-TN53B5AB.js → chunk-VBM6T5ZP.js} +218 -3
  73. package/dist/{chunk-POMLL2OZ.js → chunk-VL4AZGUA.js} +1 -1
  74. package/dist/{chunk-CBWGUGME.js → chunk-WE6FSG7J.js} +18 -2
  75. package/dist/{chunk-LYTBHEID.js → chunk-WHN4RF2Y.js} +534 -342
  76. package/dist/{chunk-DOPUEXMC.js → chunk-WPTCWNA6.js} +2 -2
  77. package/dist/{chunk-IE4D47JE.js → chunk-X6XFWQCE.js} +7 -7
  78. package/dist/{chunk-IBGZ6D6R.js → chunk-Y35D3ZCH.js} +2 -2
  79. package/dist/{chunk-F643WELJ.js → chunk-YKLYWVLL.js} +341 -5
  80. package/dist/{chunk-GBWCEOZR.js → chunk-YW2IQEWS.js} +1 -1
  81. package/dist/{chunk-AYYZ4HKJ.js → chunk-ZEWOPHTA.js} +230 -1
  82. package/dist/{chunk-4FWDITQG.js → chunk-ZX4TZNP4.js} +1 -1
  83. package/dist/{chunk-JDTKG7KJ.js → chunk-ZYEWB5BK.js} +3 -3
  84. package/dist/{citations-3EZTHA65.js → citations-ZZ6ODCGZ.js} +3 -3
  85. package/dist/{cli-catalog-CBTM3JKP.js → cli-catalog-HEX47BKL.js} +3 -3
  86. package/dist/{cli-commands-H7BFVUGC.js → cli-commands-6OLN355M.js} +7 -7
  87. package/dist/cli.js +13 -13
  88. package/dist/{competitor-VH4TXJLT.js → competitor-6MRHORU2.js} +3 -3
  89. package/dist/{content-TSMNHXJZ.js → content-S2UOGTLN.js} +3 -3
  90. package/dist/{dashboard-KT2ACPI5.js → dashboard-J4H3FVKH.js} +6 -6
  91. package/dist/{demo-LWSLULEZ.js → demo-7PJJQMLO.js} +1 -1
  92. package/dist/{demo-server-UENMDVMG.js → demo-server-55I5LNNS.js} +12 -12
  93. package/dist/{discover-XTJXTKCI.js → discover-O4NFDHGP.js} +3 -3
  94. package/dist/{discover-eval-IVQI5YEW.js → discover-eval-PE2MW42B.js} +3 -3
  95. package/dist/{doctor-SJ4SHSQO.js → doctor-GT4MMJQJ.js} +3 -3
  96. package/dist/{evidence-C6T556YH.js → evidence-Z344KVJX.js} +3 -3
  97. package/dist/{export-cmd-JQZ5ZRSI.js → export-cmd-Z6WWLI6H.js} +3 -3
  98. package/dist/{ga-W2WHVRHN.js → ga-SXIGAF5F.js} +3 -3
  99. package/dist/{gbp-3AZIV5WF.js → gbp-CSLWSEKF.js} +3 -3
  100. package/dist/{google-3CKWPZT7.js → google-EAQJ46AR.js} +4 -4
  101. package/dist/{google-marketing-PJBGQYYW.js → google-marketing-NVKB4NLG.js} +1 -1
  102. package/dist/{health-cmd-4JTQMCXM.js → health-cmd-6IYRMZS3.js} +3 -3
  103. package/dist/{history-TXUJFEO2.js → history-KLZI7IKJ.js} +3 -3
  104. package/dist/index.d.ts +1891 -399
  105. package/dist/index.js +25 -25
  106. package/dist/{init-TF3OPCEC.js → init-LFLCM6KJ.js} +12 -12
  107. package/dist/{insights-XZQO4B45.js → insights-C7NN64E2.js} +3 -3
  108. package/dist/intelligence-service-ENI35JFR.js +16 -0
  109. package/dist/{journeys-VFIV5JYV.js → journeys-C34YDOM6.js} +3 -3
  110. package/dist/{keys-PV23G4LW.js → keys-4RDLFHXO.js} +3 -3
  111. package/dist/{keyword-D76KBIV5.js → keyword-BZEJEYAG.js} +3 -3
  112. package/dist/{logs-DYDZ6IEJ.js → logs-5FPZRSZM.js} +3 -3
  113. package/dist/{mcp-GAR5LDQD.js → mcp-574UA5Y3.js} +4 -4
  114. package/dist/mcp.js +9 -9
  115. package/dist/{measurement-plan-K24EOGMI.js → measurement-plan-2H4KHD2Y.js} +5 -5
  116. package/dist/{notify-XQHMPDQQ.js → notify-TFXL4CSH.js} +3 -3
  117. package/dist/{organic-evidence-UHHE7AO4.js → organic-evidence-R55KSYFN.js} +3 -3
  118. package/dist/{overview-AUZ3XRS5.js → overview-NJTCLHAB.js} +4 -4
  119. package/dist/{project-FUCPU2BD.js → project-PV36DZDG.js} +3 -3
  120. package/dist/{query-HRMSXDKL.js → query-5SVITJ4K.js} +3 -3
  121. package/dist/{research-R23XLZJ3.js → research-JSET5FNY.js} +3 -3
  122. package/dist/{results-export-N6IV3KG4.js → results-export-5EFMXTPG.js} +3 -3
  123. package/dist/{run-CJLG5EXH.js → run-NOSOG3YH.js} +4 -4
  124. package/dist/{schedule-IPDCQ2I5.js → schedule-I3ACQC2C.js} +3 -3
  125. package/dist/{search-ZU4AKJ76.js → search-EE53K7J5.js} +3 -3
  126. package/dist/{serve-LLIUILD2.js → serve-SDU77HVC.js} +26 -26
  127. package/dist/{session-2NQKSF2N.js → session-FYZCUPVX.js} +13 -13
  128. package/dist/{settings-4FS5NRKP.js → settings-CEI7EKPO.js} +3 -3
  129. package/dist/{skills-GSFHACGN.js → skills-TRTFFZU3.js} +2 -2
  130. package/dist/{snapshot-4NUVPDK3.js → snapshot-2RXVTDTZ.js} +3 -3
  131. package/dist/{src-JQYZ2TP6.js → src-DYJHW2HG.js} +16 -2
  132. package/dist/{status-ASBLMFP2.js → status-2VHBSIRY.js} +4 -4
  133. package/dist/{technical-aeo-QXHRBGYY.js → technical-aeo-3OMGT4ZT.js} +3 -3
  134. package/dist/{telemetry-J2I577I3.js → telemetry-5F4EHGR2.js} +4 -4
  135. package/dist/{tools-UPJRW4DN.js → tools-C3IIMXBJ.js} +11 -11
  136. package/dist/{traffic-GWBZKYR5.js → traffic-S3VUYBG6.js} +5 -5
  137. package/dist/{trends-YOLCJBNM.js → trends-RQ4B2QWA.js} +3 -3
  138. package/dist/{users-LPSCZV3M.js → users-T6OOG5YB.js} +3 -3
  139. package/dist/{visibility-stats-JJQTZSSK.js → visibility-stats-2O24MQCV.js} +3 -3
  140. package/dist/{wordpress-4IKDT5KT.js → wordpress-SDENOBFI.js} +3 -3
  141. package/package.json +1 -1
  142. package/assets/assets/AuditHistoryPanel-9B0XpYsN.js +0 -1
  143. package/assets/assets/MeasurementPropertyPage-BObvWjVx.js +0 -4
  144. package/assets/assets/ProjectPage-y378tOaT.js +0 -11
  145. package/assets/assets/SiteHealthSection-DuUE1cB0.js +0 -2
  146. package/assets/assets/TrafficPage-B_YunwjH.js +0 -40
  147. package/assets/assets/TrafficSourceDetailPage-C51W87fU.js +0 -1
  148. package/assets/assets/agent-trust-copy-BlpC8jo5.js +0 -1
  149. package/assets/assets/extract-error-message-Dqirbrl0.js +0 -1
  150. package/assets/assets/index-CsvEqhK4.js +0 -60
  151. package/assets/assets/react-query-CSlTSOjz.js +0 -1
  152. package/dist/bing-A2MUG6AV.js +0 -418
  153. package/dist/intelligence-service-LEH5UVIC.js +0 -16
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  trackIntegrationConnection
3
- } from "./chunk-6F5ULQDY.js";
3
+ } from "./chunk-RE24YYIY.js";
4
4
  import {
5
5
  cliRuntimeContext
6
- } from "./chunk-DOPUEXMC.js";
6
+ } from "./chunk-WPTCWNA6.js";
7
7
 
8
8
  // src/cli-connection-telemetry.ts
9
9
  function trackCliConnection(properties) {
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-HGMYEDAQ.js";
5
5
  import {
6
6
  describeError
7
- } from "./chunk-F643WELJ.js";
7
+ } from "./chunk-YKLYWVLL.js";
8
8
 
9
9
  // src/gsc-sitemap-submission.ts
10
10
  function dedupeGscSitemapUrls(urls) {
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  pickProjectCitedDomain
3
- } from "./chunk-JAYUWQAV.js";
3
+ } from "./chunk-DPKA5CWK.js";
4
4
  import {
5
5
  createLogger
6
- } from "./chunk-IBGZ6D6R.js";
6
+ } from "./chunk-Y35D3ZCH.js";
7
7
  import {
8
8
  GBP_INSIGHT_PROVIDER,
9
9
  PERSISTENT_GAP_THRESHOLD,
@@ -17,7 +17,7 @@ import {
17
17
  mergeGscQueryTotalsWithFallback,
18
18
  readGscQueryDailyRows,
19
19
  readLatestGscDataDate
20
- } from "./chunk-AI75KS7G.js";
20
+ } from "./chunk-HSOZSLIZ.js";
21
21
  import {
22
22
  competitors,
23
23
  gbpDailyMetrics,
@@ -35,14 +35,14 @@ import {
35
35
  queries,
36
36
  querySnapshots,
37
37
  runs
38
- } from "./chunk-AYYZ4HKJ.js";
38
+ } from "./chunk-ZEWOPHTA.js";
39
39
  import {
40
40
  CitationStates,
41
41
  RunKinds,
42
42
  RunStatuses,
43
43
  RunTriggers,
44
44
  effectiveDomains
45
- } from "./chunk-F643WELJ.js";
45
+ } from "./chunk-YKLYWVLL.js";
46
46
 
47
47
  // src/intelligence-service.ts
48
48
  import { eq, desc, asc, and, ne, or, inArray, gte, lte, isNull, sql, exists } from "drizzle-orm";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-TEQF4ZJA.js";
3
+ } from "./chunk-TCANF22P.js";
4
4
  import {
5
5
  emitJsonl
6
6
  } from "./chunk-Z7IUAJOF.js";
@@ -19,7 +19,7 @@ import {
19
19
  formatMicros,
20
20
  formatRunErrorOneLine,
21
21
  resolveProviderInput
22
- } from "./chunk-F643WELJ.js";
22
+ } from "./chunk-YKLYWVLL.js";
23
23
 
24
24
  // src/commands/run.ts
25
25
  function getClient() {
@@ -15,7 +15,7 @@ import {
15
15
  formatCanonryPluginUpdateHint,
16
16
  formatCanonryPluginVersionMismatch,
17
17
  skillsClientSchema
18
- } from "./chunk-F643WELJ.js";
18
+ } from "./chunk-YKLYWVLL.js";
19
19
 
20
20
  // src/commands/skills.ts
21
21
  import crypto from "crypto";
@@ -2,13 +2,13 @@ import {
2
2
  bucketCliCommandDuration,
3
3
  isTelemetryEnabled,
4
4
  trackEvent
5
- } from "./chunk-DOPUEXMC.js";
5
+ } from "./chunk-WPTCWNA6.js";
6
6
  import {
7
7
  getConfigDir
8
- } from "./chunk-2FJB3CSS.js";
8
+ } from "./chunk-A6DKZ4KQ.js";
9
9
  import {
10
10
  currentOutcomeAttribution
11
- } from "./chunk-GBWCEOZR.js";
11
+ } from "./chunk-YW2IQEWS.js";
12
12
  import {
13
13
  AGENT_NONE,
14
14
  OutcomeSurfaces,
@@ -19,7 +19,7 @@ import {
19
19
  integrationConnectionPropertiesSchema,
20
20
  normalizeAgentSlug,
21
21
  usageSurfaceSchema
22
- } from "./chunk-F643WELJ.js";
22
+ } from "./chunk-YKLYWVLL.js";
23
23
 
24
24
  // src/outcome-telemetry.ts
25
25
  import fs from "fs";
@@ -7,12 +7,12 @@ import {
7
7
  import {
8
8
  createApiClient,
9
9
  runWithUsageTags
10
- } from "./chunk-TEQF4ZJA.js";
10
+ } from "./chunk-TCANF22P.js";
11
11
  import {
12
12
  canonryMcpTools,
13
13
  mcpOutputSchema,
14
14
  toolOperationAccess
15
- } from "./chunk-TN53B5AB.js";
15
+ } from "./chunk-VBM6T5ZP.js";
16
16
  import {
17
17
  PACKAGE_VERSION
18
18
  } from "./chunk-AOJU5LKX.js";
@@ -25,7 +25,7 @@ import {
25
25
  isReadOnlyKey,
26
26
  restrictedWriteScopes,
27
27
  upgradeCaveatFor
28
- } from "./chunk-F643WELJ.js";
28
+ } from "./chunk-YKLYWVLL.js";
29
29
 
30
30
  // src/mcp/server.ts
31
31
  import { randomUUID } from "crypto";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  loadConfig
3
- } from "./chunk-2FJB3CSS.js";
3
+ } from "./chunk-A6DKZ4KQ.js";
4
4
  import {
5
5
  PACKAGE_VERSION
6
6
  } from "./chunk-AOJU5LKX.js";
@@ -36,7 +36,7 @@ import {
36
36
  sentimentSettingsReadSchema,
37
37
  sentimentSummaryReadSchema,
38
38
  upgradeCommandFor
39
- } from "./chunk-F643WELJ.js";
39
+ } from "./chunk-YKLYWVLL.js";
40
40
 
41
41
  // ../api-client-generated/src/generated/core/bodySerializer.gen.ts
42
42
  var jsonBodySerializer = {
@@ -2708,6 +2708,86 @@ var getApiV1ProjectsByNameBingPerformance = (options) => (options.client ?? clie
2708
2708
  url: "/api/v1/projects/{name}/bing/performance",
2709
2709
  ...options
2710
2710
  });
2711
+ var postApiV1ProjectsByNameBingSync = (options) => (options.client ?? client).post({
2712
+ security: [{ scheme: "bearer", type: "http" }],
2713
+ url: "/api/v1/projects/{name}/bing/sync",
2714
+ ...options
2715
+ });
2716
+ var getApiV1ProjectsByNameBingTraffic = (options) => (options.client ?? client).get({
2717
+ security: [{ scheme: "bearer", type: "http" }],
2718
+ url: "/api/v1/projects/{name}/bing/traffic",
2719
+ ...options
2720
+ });
2721
+ var getApiV1ProjectsByNameBingQueries = (options) => (options.client ?? client).get({
2722
+ security: [{ scheme: "bearer", type: "http" }],
2723
+ url: "/api/v1/projects/{name}/bing/queries",
2724
+ ...options
2725
+ });
2726
+ var getApiV1ProjectsByNameBingPages = (options) => (options.client ?? client).get({
2727
+ security: [{ scheme: "bearer", type: "http" }],
2728
+ url: "/api/v1/projects/{name}/bing/pages",
2729
+ ...options
2730
+ });
2731
+ var getApiV1ProjectsByNameBingCrawlStats = (options) => (options.client ?? client).get({
2732
+ security: [{ scheme: "bearer", type: "http" }],
2733
+ url: "/api/v1/projects/{name}/bing/crawl-stats",
2734
+ ...options
2735
+ });
2736
+ var getApiV1ProjectsByNameBingSitemaps = (options) => (options.client ?? client).get({
2737
+ security: [{ scheme: "bearer", type: "http" }],
2738
+ url: "/api/v1/projects/{name}/bing/sitemaps",
2739
+ ...options
2740
+ });
2741
+ var getApiV1ProjectsByNameBingSite = (options) => (options.client ?? client).get({
2742
+ security: [{ scheme: "bearer", type: "http" }],
2743
+ url: "/api/v1/projects/{name}/bing/site",
2744
+ ...options
2745
+ });
2746
+ var getApiV1ProjectsByNameBingKeywordDemand = (options) => (options.client ?? client).get({
2747
+ security: [{ scheme: "bearer", type: "http" }],
2748
+ url: "/api/v1/projects/{name}/bing/keyword-demand",
2749
+ ...options
2750
+ });
2751
+ var getApiV1ProjectsByNameBingQueryPages = (options) => (options.client ?? client).get({
2752
+ security: [{ scheme: "bearer", type: "http" }],
2753
+ url: "/api/v1/projects/{name}/bing/query-pages",
2754
+ ...options
2755
+ });
2756
+ var getApiV1ProjectsByNameBingPageQueries = (options) => (options.client ?? client).get({
2757
+ security: [{ scheme: "bearer", type: "http" }],
2758
+ url: "/api/v1/projects/{name}/bing/page-queries",
2759
+ ...options
2760
+ });
2761
+ var getApiV1ProjectsByNameBingQueryHistory = (options) => (options.client ?? client).get({
2762
+ security: [{ scheme: "bearer", type: "http" }],
2763
+ url: "/api/v1/projects/{name}/bing/query-history",
2764
+ ...options
2765
+ });
2766
+ var getApiV1ProjectsByNameBingUrlTraffic = (options) => (options.client ?? client).get({
2767
+ security: [{ scheme: "bearer", type: "http" }],
2768
+ url: "/api/v1/projects/{name}/bing/url-traffic",
2769
+ ...options
2770
+ });
2771
+ var getApiV1ProjectsByNameBingUrlChildren = (options) => (options.client ?? client).get({
2772
+ security: [{ scheme: "bearer", type: "http" }],
2773
+ url: "/api/v1/projects/{name}/bing/url-children",
2774
+ ...options
2775
+ });
2776
+ var getApiV1ProjectsByNameBingLinks = (options) => (options.client ?? client).get({
2777
+ security: [{ scheme: "bearer", type: "http" }],
2778
+ url: "/api/v1/projects/{name}/bing/links",
2779
+ ...options
2780
+ });
2781
+ var getApiV1ProjectsByNameBingFetchedUrls = (options) => (options.client ?? client).get({
2782
+ security: [{ scheme: "bearer", type: "http" }],
2783
+ url: "/api/v1/projects/{name}/bing/fetched-urls",
2784
+ ...options
2785
+ });
2786
+ var getApiV1ProjectsByNameBingKeywords = (options) => (options.client ?? client).get({
2787
+ security: [{ scheme: "bearer", type: "http" }],
2788
+ url: "/api/v1/projects/{name}/bing/keywords",
2789
+ ...options
2790
+ });
2711
2791
  var postApiV1ProjectsByNameWordpressConnect = (options) => (options.client ?? client).post({
2712
2792
  security: [{ scheme: "bearer", type: "http" }],
2713
2793
  url: "/api/v1/projects/{name}/wordpress/connect",
@@ -5800,6 +5880,86 @@ var ApiClient = class {
5800
5880
  })
5801
5881
  );
5802
5882
  }
5883
+ async bingSync(project) {
5884
+ return this.invoke(
5885
+ () => postApiV1ProjectsByNameBingSync({ client: this.heyClient, path: { name: project } })
5886
+ );
5887
+ }
5888
+ async bingTraffic(project, query) {
5889
+ return this.invoke(
5890
+ () => getApiV1ProjectsByNameBingTraffic({ client: this.heyClient, path: { name: project }, query })
5891
+ );
5892
+ }
5893
+ async bingQueries(project, query) {
5894
+ return this.invoke(
5895
+ () => getApiV1ProjectsByNameBingQueries({ client: this.heyClient, path: { name: project }, query })
5896
+ );
5897
+ }
5898
+ async bingPages(project, query) {
5899
+ return this.invoke(
5900
+ () => getApiV1ProjectsByNameBingPages({ client: this.heyClient, path: { name: project }, query })
5901
+ );
5902
+ }
5903
+ async bingCrawlStats(project, query) {
5904
+ return this.invoke(
5905
+ () => getApiV1ProjectsByNameBingCrawlStats({ client: this.heyClient, path: { name: project }, query })
5906
+ );
5907
+ }
5908
+ async bingSitemaps(project) {
5909
+ return this.invoke(
5910
+ () => getApiV1ProjectsByNameBingSitemaps({ client: this.heyClient, path: { name: project } })
5911
+ );
5912
+ }
5913
+ async bingSite(project, query) {
5914
+ return this.invoke(
5915
+ () => getApiV1ProjectsByNameBingSite({ client: this.heyClient, path: { name: project }, query })
5916
+ );
5917
+ }
5918
+ async bingKeywordDemand(project, query) {
5919
+ return this.invoke(
5920
+ () => getApiV1ProjectsByNameBingKeywordDemand({ client: this.heyClient, path: { name: project }, query })
5921
+ );
5922
+ }
5923
+ async bingQueryPages(project, searchQuery) {
5924
+ return this.invoke(
5925
+ () => getApiV1ProjectsByNameBingQueryPages({ client: this.heyClient, path: { name: project }, query: { query: searchQuery } })
5926
+ );
5927
+ }
5928
+ async bingPageQueries(project, page) {
5929
+ return this.invoke(
5930
+ () => getApiV1ProjectsByNameBingPageQueries({ client: this.heyClient, path: { name: project }, query: { page } })
5931
+ );
5932
+ }
5933
+ async bingQueryHistory(project, query) {
5934
+ return this.invoke(
5935
+ () => getApiV1ProjectsByNameBingQueryHistory({ client: this.heyClient, path: { name: project }, query })
5936
+ );
5937
+ }
5938
+ async bingUrlTraffic(project, query) {
5939
+ return this.invoke(
5940
+ () => getApiV1ProjectsByNameBingUrlTraffic({ client: this.heyClient, path: { name: project }, query })
5941
+ );
5942
+ }
5943
+ async bingUrlChildren(project, query) {
5944
+ return this.invoke(
5945
+ () => getApiV1ProjectsByNameBingUrlChildren({ client: this.heyClient, path: { name: project }, query })
5946
+ );
5947
+ }
5948
+ async bingLinks(project, query) {
5949
+ return this.invoke(
5950
+ () => getApiV1ProjectsByNameBingLinks({ client: this.heyClient, path: { name: project }, query })
5951
+ );
5952
+ }
5953
+ async bingFetchedUrls(project, query) {
5954
+ return this.invoke(
5955
+ () => getApiV1ProjectsByNameBingFetchedUrls({ client: this.heyClient, path: { name: project }, query })
5956
+ );
5957
+ }
5958
+ async bingKeywords(project, query) {
5959
+ return this.invoke(
5960
+ () => getApiV1ProjectsByNameBingKeywords({ client: this.heyClient, path: { name: project }, query })
5961
+ );
5962
+ }
5803
5963
  // ── CDP browser provider ───────────────────────────────────────────────
5804
5964
  async getCdpStatus() {
5805
5965
  return this.invoke(() => getApiV1CdpStatus({ client: this.heyClient }));
@@ -4,14 +4,14 @@ import {
4
4
  } from "./chunk-VJWDBFSL.js";
5
5
  import {
6
6
  createApiClient
7
- } from "./chunk-TEQF4ZJA.js";
7
+ } from "./chunk-TCANF22P.js";
8
8
  import {
9
9
  CliError,
10
10
  isMachineFormat
11
11
  } from "./chunk-HGMYEDAQ.js";
12
12
  import {
13
13
  describeError
14
- } from "./chunk-F643WELJ.js";
14
+ } from "./chunk-YKLYWVLL.js";
15
15
 
16
16
  // src/commands/mcp.ts
17
17
  import fs from "fs";
@@ -2,11 +2,11 @@ import {
2
2
  dedupeGscSitemapUrls,
3
3
  resolveDiscoveredGscSitemapUrls,
4
4
  submitGscSitemapBatches
5
- } from "./chunk-GXTCDNX7.js";
5
+ } from "./chunk-JLBJEQPV.js";
6
6
  import {
7
7
  measurementDraftOperationSchema,
8
8
  runMeasurementDraftAction
9
- } from "./chunk-MNLAIB67.js";
9
+ } from "./chunk-DX46HM7S.js";
10
10
  import {
11
11
  CliError
12
12
  } from "./chunk-HGMYEDAQ.js";
@@ -46,6 +46,7 @@ import {
46
46
  apiKeyDtoSchema,
47
47
  auditHistoryQuerySchema,
48
48
  backlinkSourceSchema,
49
+ bingSiteSnapshotKindSchema,
49
50
  calendarDateSchema,
50
51
  canonicalizeGtmAccountId,
51
52
  canonicalizeGtmResourceSelection,
@@ -186,7 +187,7 @@ import {
186
187
  trendSurfaceSchema,
187
188
  visibilityCompareSelectionSchema,
188
189
  visibilityReportRequestSchema
189
- } from "./chunk-F643WELJ.js";
190
+ } from "./chunk-YKLYWVLL.js";
190
191
 
191
192
  // src/mcp/tool-registry.ts
192
193
  import { z as z2 } from "zod";
@@ -486,6 +487,67 @@ var gscPerformanceInputSchema = z2.object({
486
487
  orderBy: gscPerformanceOrderBySchema.optional(),
487
488
  window: analyticsWindowSchema.optional()
488
489
  });
490
+ var bingWindowShape = {
491
+ project: projectNameSchema,
492
+ startDate: z2.string().optional().describe("First day, YYYY-MM-DD. Wins over days."),
493
+ endDate: z2.string().optional().describe("Last day, YYYY-MM-DD."),
494
+ days: z2.number().int().positive().optional().describe("Span in days ending at endDate or at the newest stored day (default 28).")
495
+ };
496
+ var bingWindowInputSchema = z2.object(bingWindowShape);
497
+ var bingRangeShape = {
498
+ ...bingWindowShape,
499
+ window: z2.enum(["7d", "30d", "90d", "all"]).optional().describe("Window ending at endDate or the newest stored day. Not with startDate or days.")
500
+ };
501
+ var bingTrafficInputSchema = z2.object(bingRangeShape);
502
+ var bingMatchSchema = z2.enum(["contains", "exact"]).optional().describe("contains (default) or exact: one whole query or page, e.g. with groupBy=week for its weeks.");
503
+ var bingQueriesInputSchema = z2.object({
504
+ ...bingRangeShape,
505
+ query: z2.string().optional().describe("Filter on the query: a substring, or the whole query with match=exact."),
506
+ match: bingMatchSchema,
507
+ groupBy: z2.enum(["query", "week"]).optional(),
508
+ limit: z2.number().int().positive().max(5e3).optional(),
509
+ offset: z2.number().int().nonnegative().optional()
510
+ });
511
+ var bingPagesInputSchema = z2.object({
512
+ ...bingRangeShape,
513
+ page: z2.string().optional().describe("Filter on the page URL: a substring, or the whole URL with match=exact."),
514
+ match: bingMatchSchema,
515
+ groupBy: z2.enum(["page", "week"]).optional(),
516
+ limit: z2.number().int().positive().max(5e3).optional(),
517
+ offset: z2.number().int().nonnegative().optional()
518
+ });
519
+ var bingSiteInputSchema = z2.object({
520
+ project: projectNameSchema,
521
+ kind: bingSiteSnapshotKindSchema.optional()
522
+ });
523
+ var bingKeywordDemandInputSchema = z2.object({
524
+ project: projectNameSchema,
525
+ query: z2.string().optional().describe("A tracked query whose weekly history to include.")
526
+ });
527
+ var bingQueryPagesInputSchema = z2.object({ project: projectNameSchema, query: z2.string().min(1) });
528
+ var bingPageQueriesInputSchema = z2.object({ project: projectNameSchema, page: z2.string().url() });
529
+ var bingQueryHistoryInputSchema = z2.object({ project: projectNameSchema, query: z2.string().min(1), page: z2.string().url().optional() });
530
+ var bingUrlTrafficInputSchema = z2.object({
531
+ project: projectNameSchema,
532
+ url: z2.string().url(),
533
+ children: z2.boolean().optional(),
534
+ page: z2.number().int().nonnegative().optional()
535
+ });
536
+ var bingKeywordsInputSchema = z2.object({
537
+ project: projectNameSchema,
538
+ keyword: z2.string().min(1),
539
+ country: z2.string().optional().describe("Market country, such as us. Defaults to the project country."),
540
+ language: z2.string().optional().describe("Market language tag, such as en-US. Defaults from the project."),
541
+ startDate: z2.string().optional(),
542
+ endDate: z2.string().optional()
543
+ });
544
+ function bingWindowQuery(input) {
545
+ return {
546
+ ...input.startDate ? { startDate: input.startDate } : {},
547
+ ...input.endDate ? { endDate: input.endDate } : {},
548
+ ...input.days !== void 0 ? { days: String(input.days) } : {}
549
+ };
550
+ }
489
551
  var gscPerformanceDailyInputSchema = z2.object({
490
552
  project: projectNameSchema,
491
553
  startDate: z2.string().optional(),
@@ -2465,6 +2527,159 @@ var rawCanonryMcpTools = [
2465
2527
  openApiOperations: ["GET /api/v1/projects/{name}/bing/coverage"],
2466
2528
  handler: (client, input) => client.bingCoverage(input.project)
2467
2529
  }),
2530
+ defineTool({
2531
+ name: "canonry_bing_sync",
2532
+ title: "Sync Bing data",
2533
+ description: "Queue a full Bing Webmaster sync for a project: daily site clicks and impressions, weekly query and page stats, daily crawl stats, sitemaps, site settings (submission quotas, crawl settings, blocked URLs, URL parameters, geo-targeting, preview and sitelink blocks, Fetch as Bingbot history, crawl issues) and weekly search demand for tracked queries. Makes about 20 to 50 calls to Bing, paced on the shared account limit. Runs daily as part of the data refresh; trigger it only when stored data is missing or stale. Returns the queued run.",
2534
+ access: "write",
2535
+ tier: "bing",
2536
+ inputSchema: projectInputSchema,
2537
+ annotations: writeAnnotations({ idempotentHint: true, openWorldHint: true }),
2538
+ openApiOperations: ["POST /api/v1/projects/{name}/bing/sync"],
2539
+ handler: (client, input) => client.bingSync(input.project)
2540
+ }),
2541
+ defineTool({
2542
+ name: "canonry_bing_traffic",
2543
+ title: "Get Bing traffic",
2544
+ description: "Get stored daily Bing search clicks and impressions for the whole site, with window totals and CTR (no call to Bing). These daily rows are the site total; use them for Bing headline numbers, never a sum of canonry_bing_queries rows. periodComparison compares the window with the stored window before it, or its own halves when basis is split-window; trends are fitted over the calendar. latestAvailableDate is the newest stored day (Bing lags 2 to 3 days); earliestAvailableDate says how far back history goes.",
2545
+ access: "read",
2546
+ tier: "bing",
2547
+ inputSchema: bingTrafficInputSchema,
2548
+ annotations: readAnnotations(),
2549
+ openApiOperations: ["GET /api/v1/projects/{name}/bing/traffic"],
2550
+ handler: (client, input) => client.bingTraffic(input.project, { ...bingWindowQuery(input), window: input.window })
2551
+ }),
2552
+ defineTool({
2553
+ name: "canonry_bing_queries",
2554
+ title: "Get Bing query stats",
2555
+ description: "Get stored Bing search stats per query (no call to Bing). Bing reports queries per WEEK, so each row sums the weekly buckets inside the window, with impression-weighted position and the number of weeks it appeared. Bing names only some queries: never sum rows for a site total, use canonry_bing_traffic. groupBy=week returns weekly totals instead, for a trend. totals sums every matching query before paging, and comparison sets it against the window before. Page with limit/offset until truncated is false.",
2556
+ access: "read",
2557
+ tier: "bing",
2558
+ inputSchema: bingQueriesInputSchema,
2559
+ annotations: readAnnotations(),
2560
+ openApiOperations: ["GET /api/v1/projects/{name}/bing/queries"],
2561
+ handler: (client, input) => client.bingQueries(input.project, { ...bingWindowQuery(input), window: input.window, query: input.query, match: input.match, groupBy: input.groupBy, limit: input.limit, offset: input.offset })
2562
+ }),
2563
+ defineTool({
2564
+ name: "canonry_bing_pages",
2565
+ title: "Get Bing page stats",
2566
+ description: "Get stored Bing search stats per page URL (no call to Bing), summed from weekly buckets like canonry_bing_queries. groupBy=week returns weekly totals. Never sum rows for a site total; use canonry_bing_traffic.",
2567
+ access: "read",
2568
+ tier: "bing",
2569
+ inputSchema: bingPagesInputSchema,
2570
+ annotations: readAnnotations(),
2571
+ openApiOperations: ["GET /api/v1/projects/{name}/bing/pages"],
2572
+ handler: (client, input) => client.bingPages(input.project, { ...bingWindowQuery(input), window: input.window, page: input.page, match: input.match, groupBy: input.groupBy, limit: input.limit, offset: input.offset })
2573
+ }),
2574
+ defineTool({
2575
+ name: "canonry_bing_crawl_stats",
2576
+ title: "Get Bing crawl stats",
2577
+ description: "Get stored daily Bingbot crawl counts (no call to Bing): pages crawled, pages in index, crawl errors, inbound links, HTTP 2xx/301/302/4xx/5xx counts, robots.txt blocks, timeouts, DNS failures and malware flags. Newest first.",
2578
+ access: "read",
2579
+ tier: "bing",
2580
+ inputSchema: bingWindowInputSchema,
2581
+ annotations: readAnnotations(),
2582
+ openApiOperations: ["GET /api/v1/projects/{name}/bing/crawl-stats"],
2583
+ handler: (client, input) => client.bingCrawlStats(input.project, bingWindowQuery(input))
2584
+ }),
2585
+ defineTool({
2586
+ name: "canonry_bing_sitemaps",
2587
+ title: "Get Bing sitemaps",
2588
+ description: "Get the sitemaps Bing has for the site as of the last sync (no call to Bing): type, status, URL count, submitted and last-crawled dates. Child sitemaps carry the parentUrl of their sitemap index.",
2589
+ access: "read",
2590
+ tier: "bing",
2591
+ inputSchema: projectInputSchema,
2592
+ annotations: readAnnotations(),
2593
+ openApiOperations: ["GET /api/v1/projects/{name}/bing/sitemaps"],
2594
+ handler: (client, input) => client.bingSitemaps(input.project)
2595
+ }),
2596
+ defineTool({
2597
+ name: "canonry_bing_site",
2598
+ title: "Get Bing site settings",
2599
+ description: "Get the stored Bing site settings (no call to Bing): URL and content submission quotas LEFT today and this month, crawl settings, crawl issues, blocked URLs, page preview blocks, sitelink blocks, URL parameters, geo-targeting, Fetch as Bingbot history, connected pages and user roles. status is unauthorized for owner-only settings this key cannot read. A blocked URL or preview block keeps a page out of Bing and Copilot answers.",
2600
+ access: "read",
2601
+ tier: "bing",
2602
+ inputSchema: bingSiteInputSchema,
2603
+ annotations: readAnnotations(),
2604
+ openApiOperations: ["GET /api/v1/projects/{name}/bing/site"],
2605
+ handler: (client, input) => client.bingSite(input.project, input.kind ? { kind: input.kind } : void 0)
2606
+ }),
2607
+ defineTool({
2608
+ name: "canonry_bing_keyword_demand",
2609
+ title: "Get Bing keyword demand",
2610
+ description: "Get stored weekly Bing search volume for every tracked query in the project market (no call to Bing): average and latest weekly exact-match searches, broad-match searches and weeks stored. This is demand for the query, not traffic to the site. Pass query to include that query's weekly history. Refreshed weekly by the Bing sync.",
2611
+ access: "read",
2612
+ tier: "bing",
2613
+ inputSchema: bingKeywordDemandInputSchema,
2614
+ annotations: readAnnotations(),
2615
+ openApiOperations: ["GET /api/v1/projects/{name}/bing/keyword-demand"],
2616
+ handler: (client, input) => client.bingKeywordDemand(input.project, input.query ? { query: input.query } : void 0)
2617
+ }),
2618
+ defineTool({
2619
+ name: "canonry_bing_query_pages",
2620
+ title: "Get Bing pages for a query (live)",
2621
+ description: "Ask Bing live which of the site's pages showed for one search query, per week (one call to Bing). Use it to find the page Bing ranks for a query.",
2622
+ access: "read",
2623
+ tier: "bing",
2624
+ inputSchema: bingQueryPagesInputSchema,
2625
+ annotations: readAnnotations(true),
2626
+ openApiOperations: ["GET /api/v1/projects/{name}/bing/query-pages"],
2627
+ handler: (client, input) => client.bingQueryPages(input.project, input.query)
2628
+ }),
2629
+ defineTool({
2630
+ name: "canonry_bing_page_queries",
2631
+ title: "Get Bing queries for a page (live)",
2632
+ description: "Ask Bing live which search queries one page showed for, per week (one call to Bing).",
2633
+ access: "read",
2634
+ tier: "bing",
2635
+ inputSchema: bingPageQueriesInputSchema,
2636
+ annotations: readAnnotations(true),
2637
+ openApiOperations: ["GET /api/v1/projects/{name}/bing/page-queries"],
2638
+ handler: (client, input) => client.bingPageQueries(input.project, input.page)
2639
+ }),
2640
+ defineTool({
2641
+ name: "canonry_bing_query_history",
2642
+ title: "Get Bing query history (live)",
2643
+ description: "Ask Bing live for one query's clicks and impressions per day, or per week with position when page is given (one call to Bing).",
2644
+ access: "read",
2645
+ tier: "bing",
2646
+ inputSchema: bingQueryHistoryInputSchema,
2647
+ annotations: readAnnotations(true),
2648
+ openApiOperations: ["GET /api/v1/projects/{name}/bing/query-history"],
2649
+ handler: (client, input) => client.bingQueryHistory(input.project, { query: input.query, page: input.page })
2650
+ }),
2651
+ defineTool({
2652
+ name: "canonry_bing_url_traffic",
2653
+ title: "Get Bing traffic for a URL (live)",
2654
+ description: "Ask Bing live for one URL's clicks and impressions, optionally with the URLs under it (children, 0-indexed page). One or two calls to Bing.",
2655
+ access: "read",
2656
+ tier: "bing",
2657
+ inputSchema: bingUrlTrafficInputSchema,
2658
+ annotations: readAnnotations(true),
2659
+ openApiOperations: ["GET /api/v1/projects/{name}/bing/url-traffic"],
2660
+ handler: (client, input) => client.bingUrlTraffic(input.project, {
2661
+ url: input.url,
2662
+ children: input.children ? "true" : void 0,
2663
+ page: input.page === void 0 ? void 0 : String(input.page)
2664
+ })
2665
+ }),
2666
+ defineTool({
2667
+ name: "canonry_bing_keywords",
2668
+ title: "Research a keyword on Bing (live)",
2669
+ description: "Ask Bing live for any keyword's search volume over a window, its weekly history and related keywords with their volume (three calls to Bing). Not tied to the site; use it to size demand for a topic or find new queries to track. impressions is exact-match volume, broadImpressions broad-match.",
2670
+ access: "read",
2671
+ tier: "bing",
2672
+ inputSchema: bingKeywordsInputSchema,
2673
+ annotations: readAnnotations(true),
2674
+ openApiOperations: ["GET /api/v1/projects/{name}/bing/keywords"],
2675
+ handler: (client, input) => client.bingKeywords(input.project, {
2676
+ keyword: input.keyword,
2677
+ country: input.country,
2678
+ language: input.language,
2679
+ startDate: input.startDate,
2680
+ endDate: input.endDate
2681
+ })
2682
+ }),
2468
2683
  defineTool({
2469
2684
  name: "canonry_gsc_sitemaps",
2470
2685
  title: "Get GSC sitemaps",
@@ -15,7 +15,7 @@ import {
15
15
  hostMatchesDomain,
16
16
  hostOf,
17
17
  isLocationRedirectStatus
18
- } from "./chunk-F643WELJ.js";
18
+ } from "./chunk-YKLYWVLL.js";
19
19
 
20
20
  // ../integration-traffic/src/agent-trust.ts
21
21
  var AGENT_TRUST_RULES_VERSION = 2;
@@ -5,7 +5,7 @@ import {
5
5
  AppError,
6
6
  parseWindowIn,
7
7
  resolveDateRange
8
- } from "./chunk-F643WELJ.js";
8
+ } from "./chunk-YKLYWVLL.js";
9
9
 
10
10
  // src/cli-access.ts
11
11
  var CLI_ACCESS_BY_ID = Object.freeze({
@@ -81,16 +81,32 @@ var CLI_ACCESS_BY_ID = Object.freeze({
81
81
  "bing.connect": "write",
82
82
  "bing.coverage": "write",
83
83
  "bing.coverage-history": "stored",
84
+ "bing.crawl-stats": "stored",
84
85
  "bing.disconnect": "write",
86
+ "bing.fetched-urls": "live",
85
87
  "bing.inspect": "write",
86
88
  "bing.inspect-sitemap": "write",
87
89
  "bing.inspections": "stored",
88
- "bing.performance": "live",
90
+ "bing.keyword-demand": "stored",
91
+ "bing.keywords": "live",
92
+ "bing.links": "live",
93
+ "bing.page-queries": "live",
94
+ "bing.pages": "stored",
95
+ "bing.performance": "stored",
96
+ "bing.queries": "stored",
97
+ "bing.query-history": "live",
98
+ "bing.query-pages": "live",
89
99
  "bing.refresh": "write",
90
100
  "bing.request-indexing": "write",
91
101
  "bing.set-site": "write",
102
+ "bing.site": "stored",
103
+ "bing.sitemaps": "stored",
92
104
  "bing.sites": "live",
93
105
  "bing.status": "stored",
106
+ "bing.sync": "write",
107
+ "bing.traffic": "stored",
108
+ "bing.url-children": "live",
109
+ "bing.url-traffic": "live",
94
110
  "bootstrap": "write",
95
111
  "cdp": "stored",
96
112
  "cdp.connect": "write",