@canonry/canonry 7.65.1 → 7.67.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 (138) hide show
  1. package/assets/agent-workspace/skills/aero/references/seo-analysis.md +15 -1
  2. package/assets/agent-workspace/skills/canonry/references/canonry-cli.md +2 -2
  3. package/assets/assets/{AgentSetupPage-BDLMjn1I.js → AgentSetupPage-ORsy3QEa.js} +3 -3
  4. package/assets/assets/{AuditHistoryPanel-qhIB8KRK.js → AuditHistoryPanel-vTHZDbfs.js} +1 -1
  5. package/assets/assets/{BacklinksPage-iWrZ0-Pp.js → BacklinksPage-FqADB5sO.js} +1 -1
  6. package/assets/assets/{HistoryPage-BP1_GGlT.js → HistoryPage-C4l5Toqa.js} +1 -1
  7. package/assets/assets/MeasurementPropertyPage-x8f7xanT.js +4 -0
  8. package/assets/assets/ProjectPage-CG9I2-B4.js +9 -0
  9. package/assets/assets/{RunsPage-Ddd2oE1Y.js → RunsPage-oyhhwAPq.js} +1 -1
  10. package/assets/assets/{SettingsPage-D_QdYWDO.js → SettingsPage-DJc4Di1M.js} +1 -1
  11. package/assets/assets/SiteHealthSection-BvqFg3rG.js +2 -0
  12. package/assets/assets/ToneBadge-CTWpeKu8.js +60 -0
  13. package/assets/assets/{TrafficPage-VnBUE1S6.js → TrafficPage-DAD0FFkL.js} +2 -2
  14. package/assets/assets/TrafficSourceDetailPage-BBEzbawh.js +1 -0
  15. package/assets/assets/{account-context-CWRd3KeS.js → account-context-DMHOefRt.js} +1 -1
  16. package/assets/assets/{card-Cb_fM36G.js → card-Brp6fFNG.js} +1 -1
  17. package/assets/assets/{extract-error-message-DSIAoHTR.js → extract-error-message-5QpQCsGb.js} +1 -1
  18. package/assets/assets/{format-helpers-CxNDa1oa.js → format-helpers-BFM0FRjT.js} +1 -1
  19. package/assets/assets/index-BBNs-RhI.js +60 -0
  20. package/assets/assets/{query-client-DLdAMlsX.js → query-client-BMTW-xss.js} +1 -1
  21. package/assets/assets/react-query-DGmY6hJa.js +1 -0
  22. package/assets/assets/{react-sigma_core.esm.min-DEG8vFYD.js → react-sigma_core.esm.min-C0VjhgDo.js} +1 -1
  23. package/assets/assets/service-DW9u_0aZ.js +1 -0
  24. package/assets/index.html +7 -7
  25. package/dist/{ads-D4WQOT5K.js → ads-BXGEL4WI.js} +3 -3
  26. package/dist/{agent-E3IYC7OJ.js → agent-LFX7GHWD.js} +7 -7
  27. package/dist/{agent-ask-ZSKRPB2Z.js → agent-ask-QJV225AT.js} +3 -3
  28. package/dist/{agent-conversations-YHPYPQE2.js → agent-conversations-2TZDIGA6.js} +3 -3
  29. package/dist/{agent-memory-6OWOOD5O.js → agent-memory-XCY3ZG5C.js} +3 -3
  30. package/dist/{agent-providers-7KZK37UO.js → agent-providers-VS6PH55Y.js} +3 -3
  31. package/dist/{agent-transcript-3O7GPML6.js → agent-transcript-BUUHOTZM.js} +3 -3
  32. package/dist/{analytics-P2LLIUYK.js → analytics-YWJWPUNF.js} +3 -3
  33. package/dist/{apply-VBNNJOCT.js → apply-BMCYFBEJ.js} +3 -3
  34. package/dist/{backfill-F5SSURCH.js → backfill-YBOKT5LT.js} +9 -9
  35. package/dist/{backlinks-4RE3TNNA.js → backlinks-QNNABB4N.js} +3 -3
  36. package/dist/{bing-V6UN7D44.js → bing-KEMXBABP.js} +3 -3
  37. package/dist/{bootstrap-SHTSPAI5.js → bootstrap-X2AADK4M.js} +10 -10
  38. package/dist/{cdp-GDL2VFI3.js → cdp-WVYUEV4U.js} +7 -7
  39. package/dist/{chunk-3QKKHU7D.js → chunk-2X7DFLMD.js} +8 -8
  40. package/dist/{chunk-2AROR73F.js → chunk-32BTTG5N.js} +5 -5
  41. package/dist/{chunk-BV6NXSAH.js → chunk-37R6GTU7.js} +21 -3
  42. package/dist/{chunk-HPUZMBS6.js → chunk-5DMESZDF.js} +2 -2
  43. package/dist/{chunk-XOMUSIM7.js → chunk-6DJN7HCK.js} +83 -11
  44. package/dist/{chunk-SRTX6XYR.js → chunk-AFRCTLUL.js} +370 -337
  45. package/dist/{chunk-Z2EENWM3.js → chunk-AVISYPUU.js} +877 -478
  46. package/dist/{chunk-HI2HCYLB.js → chunk-CBYKQRDH.js} +2 -2
  47. package/dist/{chunk-S4VCXCRQ.js → chunk-EKSXR7RJ.js} +1 -1
  48. package/dist/{chunk-66DPEVLJ.js → chunk-G6PZEDTH.js} +3 -3
  49. package/dist/{chunk-GZPGDAAF.js → chunk-GTPGYFZ4.js} +2 -2
  50. package/dist/{chunk-Q2WZAD5W.js → chunk-HX3WLTZU.js} +1 -1
  51. package/dist/{chunk-JSAYC36T.js → chunk-IEBMODUI.js} +193 -47
  52. package/dist/{chunk-2UFA3DYM.js → chunk-KJLICF53.js} +4 -4
  53. package/dist/{chunk-ZPRJCSSR.js → chunk-LU3M54IY.js} +1 -1
  54. package/dist/{chunk-HO5W6QC7.js → chunk-MD5PHJBX.js} +2 -1
  55. package/dist/{chunk-SL3Y7IOX.js → chunk-MLOGEXIO.js} +1 -1
  56. package/dist/{chunk-LTX3TJ3E.js → chunk-MOJ2XZXK.js} +1 -1
  57. package/dist/{chunk-IYB3EGSD.js → chunk-NHHZQWMI.js} +1 -1
  58. package/dist/{chunk-H6HIJAIU.js → chunk-P74TPIWZ.js} +2 -2
  59. package/dist/{chunk-M3OZL6PQ.js → chunk-RRS7U6HQ.js} +4 -4
  60. package/dist/{chunk-X4AHYJCE.js → chunk-UHLWNU6I.js} +5 -5
  61. package/dist/{chunk-C2PYKUD3.js → chunk-UNCOK6DA.js} +1 -1
  62. package/dist/{chunk-IJKKK7F4.js → chunk-UXTNDZKM.js} +1 -1
  63. package/dist/{chunk-GM5ZOWBK.js → chunk-VR4MYSEH.js} +4 -4
  64. package/dist/{chunk-ZWZOQNLD.js → chunk-WSYLDPYF.js} +1 -1
  65. package/dist/{chunk-AE6HJZBU.js → chunk-WZ4LUM26.js} +3 -3
  66. package/dist/{chunk-DQVJB6CZ.js → chunk-XEGYSZEV.js} +99 -9
  67. package/dist/{chunk-F7NZEUXP.js → chunk-XEPEMON2.js} +14 -2
  68. package/dist/{chunk-CRKOGLKJ.js → chunk-XIA6NWIF.js} +4 -4
  69. package/dist/{chunk-737TOG2F.js → chunk-XMIKSCAO.js} +1 -1
  70. package/dist/{chunk-2Y7RN5HG.js → chunk-Y54PMWBH.js} +3 -3
  71. package/dist/{chunk-QNRMYDK6.js → chunk-YP743QX5.js} +1 -1
  72. package/dist/{chunk-XMKXXWMO.js → chunk-ZGUR4AZM.js} +2 -2
  73. package/dist/{citations-GO4SPZYS.js → citations-ZSI5BOGD.js} +3 -3
  74. package/dist/{cli-catalog-6XYQY3PI.js → cli-catalog-J2HUCGJL.js} +3 -3
  75. package/dist/{cli-commands-2TZKVGK6.js → cli-commands-XFMVFREG.js} +7 -7
  76. package/dist/cli.js +13 -13
  77. package/dist/{competitor-JBTKRJ6Y.js → competitor-WJDN3DLP.js} +3 -3
  78. package/dist/{content-LKXXQ7X4.js → content-K52YV4BK.js} +3 -3
  79. package/dist/{dashboard-LUA7UX6B.js → dashboard-L6RKTP35.js} +6 -6
  80. package/dist/{demo-I7JDZJUW.js → demo-Y7XRD4X4.js} +1 -1
  81. package/dist/{demo-server-GNGGWERV.js → demo-server-QNQX5CNP.js} +73 -11
  82. package/dist/{discover-TODAYYJ2.js → discover-UO5M7HQZ.js} +3 -3
  83. package/dist/{discover-eval-FWQESEYB.js → discover-eval-DN4PS6VN.js} +3 -3
  84. package/dist/{doctor-AXNJT2UC.js → doctor-7UYUXG7J.js} +3 -3
  85. package/dist/{evidence-2XGEY4ZC.js → evidence-DGKN5SGQ.js} +3 -3
  86. package/dist/{export-cmd-7RMYBIBZ.js → export-cmd-QAQWWIRL.js} +3 -3
  87. package/dist/{ga-HZDIZGCO.js → ga-4LGTEA6J.js} +3 -3
  88. package/dist/{gbp-SMRBWJEL.js → gbp-XOLYZ4XC.js} +3 -3
  89. package/dist/{google-2CN345XS.js → google-CAQDCFA6.js} +4 -4
  90. package/dist/{google-marketing-W7T2VTVW.js → google-marketing-HU5I3XPP.js} +1 -1
  91. package/dist/{health-cmd-W7OWZ4ZI.js → health-cmd-3PEB3M45.js} +3 -3
  92. package/dist/{history-UVNCBHTE.js → history-UGUWYPOY.js} +3 -3
  93. package/dist/index.d.ts +342 -161
  94. package/dist/index.js +24 -24
  95. package/dist/{init-2IWS2R7G.js → init-DEW65BLN.js} +11 -11
  96. package/dist/{insights-PQ52G5LU.js → insights-ZC3R4ZYG.js} +3 -3
  97. package/dist/intelligence-service-XRJVXZYI.js +15 -0
  98. package/dist/{journeys-3PP5GYVJ.js → journeys-W6F4BCXF.js} +3 -3
  99. package/dist/{keys-CWZUX7IQ.js → keys-ME7VRF73.js} +3 -3
  100. package/dist/{keyword-5OMMULLY.js → keyword-R3PLGSO5.js} +3 -3
  101. package/dist/{logs-3FTE42E3.js → logs-UM7CWHYB.js} +3 -3
  102. package/dist/{mcp-FK5DTI7I.js → mcp-BUPP5HC6.js} +2 -2
  103. package/dist/mcp.js +9 -9
  104. package/dist/{measurement-plan-ICO2BQNT.js → measurement-plan-R4KZHJII.js} +5 -5
  105. package/dist/{notify-ML4PYD3L.js → notify-4C26D2MY.js} +3 -3
  106. package/dist/{organic-evidence-4U4H3DCR.js → organic-evidence-SLIISYHW.js} +3 -3
  107. package/dist/{overview-NF427VFO.js → overview-JJZZOYQU.js} +4 -4
  108. package/dist/{project-AAO65OF7.js → project-XJH2OECP.js} +3 -3
  109. package/dist/{query-7ZOUQNF5.js → query-ZWAIWIYB.js} +3 -3
  110. package/dist/{research-UQ7AF5N3.js → research-GTVWVZBI.js} +3 -3
  111. package/dist/{results-export-CZCLC4ZH.js → results-export-CPAWO5AV.js} +3 -3
  112. package/dist/{run-4XJZW52R.js → run-RI2BMD7U.js} +4 -4
  113. package/dist/{schedule-D3E5FDBE.js → schedule-HDDWULBX.js} +3 -3
  114. package/dist/{search-DYET2IL4.js → search-TT3Q2BBP.js} +3 -3
  115. package/dist/{serve-QWMTR3SN.js → serve-6JYPUU24.js} +25 -25
  116. package/dist/{session-7CW2V5EH.js → session-DDESFV3N.js} +12 -12
  117. package/dist/{settings-ZISHACFX.js → settings-4AYXYJVA.js} +3 -3
  118. package/dist/{skills-WU6IN3NL.js → skills-UFMLMMY5.js} +2 -2
  119. package/dist/{snapshot-KCKQDJ2W.js → snapshot-KLWQGZB6.js} +3 -3
  120. package/dist/{src-WIOU5G4V.js → src-6IHGEMT2.js} +6 -2
  121. package/dist/{status-CYZFVMYA.js → status-HRIUPGUM.js} +4 -4
  122. package/dist/{technical-aeo-P5CS22AR.js → technical-aeo-HKJQHMMS.js} +3 -3
  123. package/dist/{telemetry-LPK5F2WU.js → telemetry-IS6KZK32.js} +4 -4
  124. package/dist/{tools-E3B2GZ6Q.js → tools-ZNVQFEAX.js} +11 -11
  125. package/dist/{traffic-5KZYXXIQ.js → traffic-PFHFGN44.js} +5 -5
  126. package/dist/{users-2F346HIW.js → users-BSLUSU6W.js} +3 -3
  127. package/dist/{visibility-stats-ITA6DNF3.js → visibility-stats-MPRNHPZW.js} +3 -3
  128. package/dist/{wordpress-ZHCFT6V3.js → wordpress-U5XKHURL.js} +3 -3
  129. package/package.json +1 -1
  130. package/assets/assets/MeasurementPropertyPage-dxGJ1GF9.js +0 -4
  131. package/assets/assets/ProjectPage-W6oYA85b.js +0 -9
  132. package/assets/assets/SiteHealthSection-DT20rNw-.js +0 -2
  133. package/assets/assets/ToneBadge-CJ6ObMRe.js +0 -60
  134. package/assets/assets/TrafficSourceDetailPage-CdoL5Dt9.js +0 -1
  135. package/assets/assets/index-D6WlecSB.js +0 -60
  136. package/assets/assets/react-query-BktZZtSC.js +0 -1
  137. package/assets/assets/service-DKP-BIBy.js +0 -1
  138. package/dist/intelligence-service-IAUGKMDO.js +0 -15
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  clearDashboardPassword,
3
3
  loadConfigRaw
4
- } from "./chunk-C2PYKUD3.js";
4
+ } from "./chunk-UNCOK6DA.js";
5
5
  import {
6
6
  isMachineFormat
7
7
  } from "./chunk-HGMYEDAQ.js";
8
8
  import {
9
9
  anyUsersExist
10
- } from "./chunk-Z2EENWM3.js";
11
- import "./chunk-Q2WZAD5W.js";
12
- import "./chunk-IJKKK7F4.js";
10
+ } from "./chunk-AVISYPUU.js";
11
+ import "./chunk-HX3WLTZU.js";
12
+ import "./chunk-UXTNDZKM.js";
13
13
  import {
14
14
  createClient
15
- } from "./chunk-XOMUSIM7.js";
16
- import "./chunk-DQVJB6CZ.js";
15
+ } from "./chunk-6DJN7HCK.js";
16
+ import "./chunk-XEGYSZEV.js";
17
17
  import "./chunk-MLKGABMK.js";
18
18
 
19
19
  // src/commands/dashboard.ts
@@ -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-GNGGWERV.js");
43
+ const { createDemoServer } = await import("./demo-server-QNQX5CNP.js");
44
44
  const app = await createDemoServer({ trustProxy });
45
45
  let stopping = false;
46
46
  const stop = () => {
@@ -5,12 +5,12 @@ import {
5
5
  computeFactorAverages,
6
6
  layoutSiteCrawlGraphInput,
7
7
  persistSiteCrawlGraphLayout
8
- } from "./chunk-H6HIJAIU.js";
8
+ } from "./chunk-P74TPIWZ.js";
9
9
  import {
10
10
  canonryMcpTools
11
- } from "./chunk-BV6NXSAH.js";
12
- import "./chunk-ZWZOQNLD.js";
13
- import "./chunk-ZPRJCSSR.js";
11
+ } from "./chunk-37R6GTU7.js";
12
+ import "./chunk-WSYLDPYF.js";
13
+ import "./chunk-LU3M54IY.js";
14
14
  import {
15
15
  PACKAGE_VERSION
16
16
  } from "./chunk-AOJU5LKX.js";
@@ -18,16 +18,16 @@ import "./chunk-HGMYEDAQ.js";
18
18
  import {
19
19
  HISTORY_WINDOW_RUNS,
20
20
  IntelligenceService
21
- } from "./chunk-X4AHYJCE.js";
21
+ } from "./chunk-UHLWNU6I.js";
22
22
  import {
23
23
  determineCitationState
24
- } from "./chunk-S4VCXCRQ.js";
24
+ } from "./chunk-EKSXR7RJ.js";
25
25
  import {
26
26
  apiRoutes,
27
27
  assessConversionTrackingIntegrity
28
- } from "./chunk-Z2EENWM3.js";
29
- import "./chunk-Q2WZAD5W.js";
30
- import "./chunk-IJKKK7F4.js";
28
+ } from "./chunk-AVISYPUU.js";
29
+ import "./chunk-HX3WLTZU.js";
30
+ import "./chunk-UXTNDZKM.js";
31
31
  import {
32
32
  adsAdGroups,
33
33
  adsAds,
@@ -103,7 +103,7 @@ import {
103
103
  siteCrawlPages,
104
104
  siteCrawlSnapshots,
105
105
  trafficSources
106
- } from "./chunk-XOMUSIM7.js";
106
+ } from "./chunk-6DJN7HCK.js";
107
107
  import {
108
108
  AI_ENGINE_DOMAINS,
109
109
  GA_OVERVIEW_HISTORY_DAYS,
@@ -114,6 +114,7 @@ import {
114
114
  RunTriggers,
115
115
  SeoAdapterOutcomes,
116
116
  SeoCapabilities,
117
+ SeoMarketRankingSearchStatuses,
117
118
  SeoProviders,
118
119
  SeoRunStatuses,
119
120
  SeoScopeKinds,
@@ -145,10 +146,11 @@ import {
145
146
  parseStoredMeasurementPlanAnyVersion,
146
147
  percentOf,
147
148
  placementLinkDecision,
149
+ queryClassSchema,
148
150
  roundPreservingTotal,
149
151
  siteAuditPageFactorSchema,
150
152
  wilsonInterval
151
- } from "./chunk-DQVJB6CZ.js";
153
+ } from "./chunk-XEGYSZEV.js";
152
154
  import "./chunk-MLKGABMK.js";
153
155
 
154
156
  // src/demo-server.ts
@@ -1286,6 +1288,7 @@ var DEMO_READ_ROUTES = /* @__PURE__ */ new Set([
1286
1288
  "/api/v1/projects/:name/seo/keyword-metrics",
1287
1289
  "/api/v1/projects/:name/seo/domain-intelligence",
1288
1290
  "/api/v1/projects/:name/seo/ranked-keywords",
1291
+ "/api/v1/projects/:name/seo/market-rankings",
1289
1292
  "/api/v1/projects/:name/seo/runs",
1290
1293
  "/api/v1/projects/:name/seo/runs/:id",
1291
1294
  "/api/v1/projects/:name/snapshots",
@@ -3199,6 +3202,38 @@ function seedLocalAndCommercialSignals(db, input) {
3199
3202
 
3200
3203
  // src/demo/seed-seo.ts
3201
3204
  import { eq as eq5 } from "drizzle-orm";
3205
+ function demoMarketRankings(plan, input, target, capturedAt, daysAgo) {
3206
+ const settings = input.rankings;
3207
+ const text = new Map(plan.querySnapshots.map((snapshot) => [snapshot.queryId, snapshot.queryText]));
3208
+ const nonBrand = new Set(plan.assignments.filter((assignment) => assignment.queryClass === queryClassSchema.enum["non-brand"]).map((assignment) => `${assignment.targetKey}:${assignment.queryId}`));
3209
+ const competitors2 = [...new Set(plan.groups.flatMap((group) => group.competitors.map((competitor) => competitor.domain)))].sort();
3210
+ return (plan.reportingScopes ?? []).flatMap((market) => {
3211
+ const location = settings.locations.find((item) => item.key === market.stableKey);
3212
+ const queryIds = [...new Set(market.usageEdges.filter((edge) => nonBrand.has(`${edge.targetKey}:${edge.queryId}`)).map((edge) => edge.queryId))];
3213
+ return queryIds.map((queryId, index) => {
3214
+ const queryText = text.get(queryId);
3215
+ const rank = index === 3 ? null : [3, 7, 14][index] + (daysAgo === 1 ? 0 : 2);
3216
+ const context = { marketKey: market.stableKey, marketLabel: market.label, regionKey: market.groupKey ?? null, regionLabel: market.groupKey ? plan.groups.find((group) => group.stableKey === market.groupKey)?.label ?? null : null, queryId, queryText, queryClass: queryClassSchema.enum["non-brand"] };
3217
+ const provenance = { provider: SeoProviders.dataforseo, dataset: "demo-market-rankings", engine: "google", locationCode: location.locationCode, languageCode: input.languageCode, device: settings.device, collectedAt: capturedAt, sourceUpdatedAt: capturedAt };
3218
+ return {
3219
+ request: { capability: SeoCapabilities["market-rankings"], target, keywords: [queryText], locationCode: location.locationCode, languageCode: input.languageCode, limit: input.limit, tag: "", search: { device: settings.device, depth: settings.depth, locationLabel: location.label, markets: [{ context, competitors: competitors2 }] } },
3220
+ row: {
3221
+ ...context,
3222
+ searchText: queryText,
3223
+ locationLabel: location.label,
3224
+ target,
3225
+ searchStatus: SeoMarketRankingSearchStatuses.completed,
3226
+ rankOrganic: rank,
3227
+ rankAbsolute: rank === null ? null : rank + 2,
3228
+ url: rank === null ? null : `https://${target.value}/destinations/${market.stableKey.replace(/^market-/, "")}/`,
3229
+ depth: settings.depth,
3230
+ competitors: competitors2.map((domain, competitorIndex) => ({ domain, rankOrganic: 2 + competitorIndex * 3 + index })),
3231
+ provenance
3232
+ }
3233
+ };
3234
+ });
3235
+ });
3236
+ }
3202
3237
  function seedDemoSeo(db, context) {
3203
3238
  db.transaction((tx) => {
3204
3239
  for (const project of [context.simple, context.portfolio]) {
@@ -3233,6 +3268,14 @@ function seedDemoSeo(db, context) {
3233
3268
  scope: { kind: scope.kind, key: scope.key, expectedPlanRevision: version.revision }
3234
3269
  } });
3235
3270
  }
3271
+ const city = new Map(properties.map((property) => [`market-${property.market.key}`, `${property.market.city}, ${property.market.region}`]));
3272
+ profiles.push({ id: "market-rankings", input: {
3273
+ ...base,
3274
+ name: "Market rankings",
3275
+ capabilities: [SeoCapabilities["market-rankings"]],
3276
+ keywords: [],
3277
+ rankings: { locations: (plan.reportingScopes ?? []).map((market, index) => ({ key: market.stableKey, locationCode: 900001 + index, label: city.get(market.stableKey) ?? market.label })), depth: 50, device: "mobile", searchText: "query" }
3278
+ } });
3236
3279
  }
3237
3280
  for (const { id: profileId, input } of profiles) {
3238
3281
  const createdAt = new Date(context.now.getTime() - 8 * 864e5).toISOString();
@@ -3261,6 +3304,25 @@ function seedDemoSeo(db, context) {
3261
3304
  startedAt: capturedAt,
3262
3305
  finishedAt: capturedAt
3263
3306
  }).run();
3307
+ if (input.capabilities.includes(SeoCapabilities["market-rankings"]) && plan && input.targets[0]) {
3308
+ for (const [index, { request, row }] of demoMarketRankings(plan, input, input.targets[0], capturedAt, daysAgo).entries()) {
3309
+ tx.insert(seoTasks).values({
3310
+ id: `${runId}-search-${index}`,
3311
+ jobId: runId,
3312
+ request: { ...request, tag: runId },
3313
+ status: SeoRunStatuses.completed,
3314
+ catalogRevision: "demo",
3315
+ collectionOutcome: SeoAdapterOutcomes.completed,
3316
+ reservedMicros: 0,
3317
+ actualMicros: 0,
3318
+ receipts: [],
3319
+ results: { ...emptySeoResults(), marketRankings: [row] },
3320
+ startedAt: capturedAt,
3321
+ finishedAt: capturedAt
3322
+ }).run();
3323
+ }
3324
+ continue;
3325
+ }
3264
3326
  for (const capability of input.capabilities) {
3265
3327
  const provenance = { provider: SeoProviders.dataforseo, dataset: `demo-${capability}`, engine: "google", locationCode: input.locationCode, languageCode: input.languageCode, device: "unspecified", collectedAt: capturedAt, sourceUpdatedAt: capturedAt };
3266
3328
  const results = emptySeoResults();
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-F7NZEUXP.js";
4
- import "./chunk-C2PYKUD3.js";
3
+ } from "./chunk-XEPEMON2.js";
4
+ import "./chunk-UNCOK6DA.js";
5
5
  import {
6
6
  emitJsonl
7
7
  } from "./chunk-Z7IUAJOF.js";
@@ -14,7 +14,7 @@ import {
14
14
  CitationStates,
15
15
  DiscoveryPromoteCompetitorSkipReasons,
16
16
  describeError
17
- } from "./chunk-DQVJB6CZ.js";
17
+ } from "./chunk-XEGYSZEV.js";
18
18
  import "./chunk-MLKGABMK.js";
19
19
 
20
20
  // src/commands/discover.ts
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-F7NZEUXP.js";
4
- import "./chunk-C2PYKUD3.js";
3
+ } from "./chunk-XEPEMON2.js";
4
+ import "./chunk-UNCOK6DA.js";
5
5
  import "./chunk-AOJU5LKX.js";
6
6
  import {
7
7
  CliError,
8
8
  EXIT_USER_ERROR
9
9
  } from "./chunk-HGMYEDAQ.js";
10
- import "./chunk-DQVJB6CZ.js";
10
+ import "./chunk-XEGYSZEV.js";
11
11
  import "./chunk-MLKGABMK.js";
12
12
 
13
13
  // src/commands/discover-eval.ts
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-F7NZEUXP.js";
4
- import "./chunk-C2PYKUD3.js";
3
+ } from "./chunk-XEPEMON2.js";
4
+ import "./chunk-UNCOK6DA.js";
5
5
  import {
6
6
  emitJsonl
7
7
  } from "./chunk-Z7IUAJOF.js";
@@ -13,7 +13,7 @@ import {
13
13
  import {
14
14
  CheckScopes,
15
15
  CheckStatuses
16
- } from "./chunk-DQVJB6CZ.js";
16
+ } from "./chunk-XEGYSZEV.js";
17
17
  import "./chunk-MLKGABMK.js";
18
18
 
19
19
  // src/commands/doctor.ts
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-F7NZEUXP.js";
4
- import "./chunk-C2PYKUD3.js";
3
+ } from "./chunk-XEPEMON2.js";
4
+ import "./chunk-UNCOK6DA.js";
5
5
  import {
6
6
  emitJsonl
7
7
  } from "./chunk-Z7IUAJOF.js";
@@ -9,7 +9,7 @@ import "./chunk-AOJU5LKX.js";
9
9
  import "./chunk-HGMYEDAQ.js";
10
10
  import {
11
11
  CitationStates
12
- } from "./chunk-DQVJB6CZ.js";
12
+ } from "./chunk-XEGYSZEV.js";
13
13
  import "./chunk-MLKGABMK.js";
14
14
 
15
15
  // src/commands/evidence.ts
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-F7NZEUXP.js";
4
- import "./chunk-C2PYKUD3.js";
3
+ } from "./chunk-XEPEMON2.js";
4
+ import "./chunk-UNCOK6DA.js";
5
5
  import "./chunk-AOJU5LKX.js";
6
6
  import {
7
7
  isEndpointMissing,
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-HGMYEDAQ.js";
10
10
  import {
11
11
  isRedactedNotificationUrl
12
- } from "./chunk-DQVJB6CZ.js";
12
+ } from "./chunk-XEGYSZEV.js";
13
13
  import "./chunk-MLKGABMK.js";
14
14
 
15
15
  // src/commands/export-cmd.ts
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-F7NZEUXP.js";
4
- import "./chunk-C2PYKUD3.js";
3
+ } from "./chunk-XEPEMON2.js";
4
+ import "./chunk-UNCOK6DA.js";
5
5
  import {
6
6
  emitJsonl
7
7
  } from "./chunk-Z7IUAJOF.js";
@@ -26,7 +26,7 @@ import {
26
26
  gaSearchLandingHasSearchData,
27
27
  gaSearchLandingPageLabel,
28
28
  isGaOverviewWindow
29
- } from "./chunk-DQVJB6CZ.js";
29
+ } from "./chunk-XEGYSZEV.js";
30
30
  import "./chunk-MLKGABMK.js";
31
31
 
32
32
  // src/commands/ga.ts
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-F7NZEUXP.js";
4
- import "./chunk-C2PYKUD3.js";
3
+ } from "./chunk-XEPEMON2.js";
4
+ import "./chunk-UNCOK6DA.js";
5
5
  import "./chunk-AOJU5LKX.js";
6
6
  import {
7
7
  isMachineFormat
@@ -11,7 +11,7 @@ import {
11
11
  formatPercent,
12
12
  gbpLocalPostCreateSchema,
13
13
  validationError
14
- } from "./chunk-DQVJB6CZ.js";
14
+ } from "./chunk-XEGYSZEV.js";
15
15
  import "./chunk-MLKGABMK.js";
16
16
 
17
17
  // src/commands/gbp.ts
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-F7NZEUXP.js";
4
- import "./chunk-C2PYKUD3.js";
3
+ } from "./chunk-XEPEMON2.js";
4
+ import "./chunk-UNCOK6DA.js";
5
5
  import {
6
6
  emitJsonl
7
7
  } from "./chunk-Z7IUAJOF.js";
@@ -10,7 +10,7 @@ import {
10
10
  requireGscSitemapUrls,
11
11
  resolveDiscoveredGscSitemapUrls,
12
12
  submitGscSitemapBatches
13
- } from "./chunk-ZWZOQNLD.js";
13
+ } from "./chunk-WSYLDPYF.js";
14
14
  import "./chunk-AOJU5LKX.js";
15
15
  import {
16
16
  CliError,
@@ -18,7 +18,7 @@ import {
18
18
  } from "./chunk-HGMYEDAQ.js";
19
19
  import {
20
20
  formatPercent
21
- } from "./chunk-DQVJB6CZ.js";
21
+ } from "./chunk-XEGYSZEV.js";
22
22
  import "./chunk-MLKGABMK.js";
23
23
 
24
24
  // src/commands/google.ts
@@ -12,7 +12,7 @@ import {
12
12
  describeError,
13
13
  formatMicros,
14
14
  formatPercent
15
- } from "./chunk-DQVJB6CZ.js";
15
+ } from "./chunk-XEGYSZEV.js";
16
16
  import "./chunk-MLKGABMK.js";
17
17
 
18
18
  // src/commands/google-marketing.ts
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-F7NZEUXP.js";
4
- import "./chunk-C2PYKUD3.js";
3
+ } from "./chunk-XEPEMON2.js";
4
+ import "./chunk-UNCOK6DA.js";
5
5
  import {
6
6
  emitJsonl
7
7
  } from "./chunk-Z7IUAJOF.js";
@@ -9,7 +9,7 @@ import "./chunk-AOJU5LKX.js";
9
9
  import "./chunk-HGMYEDAQ.js";
10
10
  import {
11
11
  formatPercent
12
- } from "./chunk-DQVJB6CZ.js";
12
+ } from "./chunk-XEGYSZEV.js";
13
13
  import "./chunk-MLKGABMK.js";
14
14
 
15
15
  // src/commands/health-cmd.ts
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createApiClient
3
- } from "./chunk-F7NZEUXP.js";
4
- import "./chunk-C2PYKUD3.js";
3
+ } from "./chunk-XEPEMON2.js";
4
+ import "./chunk-UNCOK6DA.js";
5
5
  import {
6
6
  emitJsonl
7
7
  } from "./chunk-Z7IUAJOF.js";
@@ -15,7 +15,7 @@ import {
15
15
  describeError,
16
16
  formatValidationIssues,
17
17
  resultsClearRequestSchema
18
- } from "./chunk-DQVJB6CZ.js";
18
+ } from "./chunk-XEGYSZEV.js";
19
19
  import "./chunk-MLKGABMK.js";
20
20
 
21
21
  // src/commands/history.ts