seo 0.2.10 → 0.2.13

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.
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
 
2
- import { Headers, RequestInit as RequestInit$1, fetch as fetch$1 } from "undici";
2
+ import { Headers, RequestInit as RequestInit$1, Response as Response$1, fetch as fetch$1 } from "undici";
3
3
  import { z } from "zod";
4
4
  import Libsql from "libsql";
5
5
  import pino from "pino";
@@ -261,6 +261,11 @@ declare const clientProfileSchema: z.ZodObject<{
261
261
  propertyId: z.ZodString;
262
262
  }, z.core.$strip>>;
263
263
  }, z.core.$strip>>;
264
+ searchEngines: z.ZodOptional<z.ZodObject<{
265
+ bing: z.ZodOptional<z.ZodObject<{
266
+ siteUrl: z.ZodString;
267
+ }, z.core.$strip>>;
268
+ }, z.core.$strip>>;
264
269
  reportDay: z.ZodOptional<z.ZodNumber>;
265
270
  technicalWeekday: z.ZodOptional<z.ZodNumber>;
266
271
  isDefault: z.ZodOptional<z.ZodBoolean>;
@@ -288,6 +293,11 @@ declare const configSchema: z.ZodObject<{
288
293
  propertyId: z.ZodString;
289
294
  }, z.core.$strip>>;
290
295
  }, z.core.$strip>>;
296
+ searchEngines: z.ZodOptional<z.ZodObject<{
297
+ bing: z.ZodOptional<z.ZodObject<{
298
+ siteUrl: z.ZodString;
299
+ }, z.core.$strip>>;
300
+ }, z.core.$strip>>;
291
301
  reportDay: z.ZodOptional<z.ZodNumber>;
292
302
  technicalWeekday: z.ZodOptional<z.ZodNumber>;
293
303
  isDefault: z.ZodOptional<z.ZodBoolean>;
@@ -903,6 +913,45 @@ declare const RULE_DEFINITIONS: readonly [{
903
913
  readonly evidenceFields: ["request.accessBlock", "report.access", "issue.evidence.accessBlock"];
904
914
  readonly suggestedCommands: ["seo crawl --sitemap-url <url> --health --json"];
905
915
  };
916
+ }, {
917
+ readonly id: "soft_authentication_gate";
918
+ readonly title: "Page appears to be an authentication gate";
919
+ readonly category: "response";
920
+ readonly defaultSeverity: "medium";
921
+ readonly whyItMatters: "The URL returned a successful HTML response, but the visible document looks like a login gate rather than the intended public page. Users and crawlers may receive a 200 response without the content they expected.";
922
+ readonly howToFix: "Confirm whether authentication is intentional. Public URLs should return their public content without a login form. Protected URLs should use a clear 401 or 403 response where appropriate and should not appear in public sitemaps or internal crawl paths.";
923
+ readonly impactIfIgnored: "A login page can be mistaken for the intended content, producing misleading crawl results and weak search or agent access.";
924
+ readonly howToVerify: "Fetch the affected URL without a session and confirm it returns the intended public page, or a deliberate authentication status for protected content.";
925
+ readonly agentHints: {
926
+ readonly evidenceFields: ["page.softAuthenticationGate", "page.finalUrl"];
927
+ readonly suggestedCommands: ["seo crawl <url> --max-pages 1 --json"];
928
+ };
929
+ }, {
930
+ readonly id: "client_rendered_content";
931
+ readonly title: "Important content requires JavaScript rendering";
932
+ readonly category: "response";
933
+ readonly defaultSeverity: "medium";
934
+ readonly whyItMatters: "The raw HTML contained very little content and the useful document appeared only after JavaScript rendering. Some crawlers, agents, previews, and constrained clients do not run the page JavaScript.";
935
+ readonly howToFix: "Render the important page content into the initial HTML, or publish a complete server-generated representation such as negotiated Markdown. Keep navigation, headings, canonicals, and indexability signals available without client execution.";
936
+ readonly impactIfIgnored: "Clients that do not execute JavaScript may see an empty shell or miss important content and links.";
937
+ readonly howToVerify: "Re-run the crawl and confirm the raw and rendered content observations contain the same important document content.";
938
+ readonly agentHints: {
939
+ readonly evidenceFields: ["page.fetchDiagnostics.rendering.documentDifference", "page.usedJs"];
940
+ readonly suggestedCommands: ["seo crawl <url> --json"];
941
+ };
942
+ }, {
943
+ readonly id: "soft_404";
944
+ readonly title: "Unknown URLs return a successful response";
945
+ readonly category: "response";
946
+ readonly defaultSeverity: "high";
947
+ readonly whyItMatters: "Known-nonexistent URLs returned a successful response or redirected to another successful page. Search engines and users cannot reliably distinguish missing content from a real page.";
948
+ readonly howToFix: "Return 404 or 410 for missing URLs. If a replacement exists, redirect only the specific retired URL to its closest relevant replacement rather than sending every unknown path to a generic page.";
949
+ readonly impactIfIgnored: "Missing URLs can remain in crawl queues, waste crawl attention, and create confusing search or monitoring evidence.";
950
+ readonly howToVerify: "Request several known-nonexistent paths and confirm each returns 404 or 410 without redirecting to a generic successful page.";
951
+ readonly agentHints: {
952
+ readonly evidenceFields: ["report.siteChecks.soft404"];
953
+ readonly suggestedCommands: ["seo crawl <url> --json"];
954
+ };
906
955
  }, {
907
956
  readonly id: "client_error";
908
957
  readonly title: "Client error";
@@ -1921,6 +1970,15 @@ type CommunityIntentReport = {
1921
1970
  };
1922
1971
  declare function communityIntentReport(input: QueryOpportunityInput, dependencies?: QueryOpportunityDependencies): Promise<CommunityIntentReport>;
1923
1972
  //#endregion
1973
+ //#region packages/core/src/extract/content-sketch.d.ts
1974
+ type ContentSketch = {
1975
+ version: 1;
1976
+ wordCount: number;
1977
+ shingleSize: number;
1978
+ sampledShingles: number;
1979
+ hashes: string[];
1980
+ };
1981
+ //#endregion
1924
1982
  //#region packages/core/src/extract/main-content.d.ts
1925
1983
  interface DefuddleResult {
1926
1984
  content?: string;
@@ -1953,6 +2011,22 @@ type CrawlerExtractionEvidence = {
1953
2011
  text: string;
1954
2012
  }>;
1955
2013
  socialProfileLinks: string[];
2014
+ contentSketch: ContentSketch;
2015
+ softAuthenticationGate?: {
2016
+ kind: 'login-form';
2017
+ indicators: string[];
2018
+ formActionPath?: string;
2019
+ };
2020
+ tabbedContent?: {
2021
+ groups: number;
2022
+ panels: number;
2023
+ retainedPanels: number;
2024
+ truncated: boolean;
2025
+ panelSketches: Array<{
2026
+ label?: string;
2027
+ sketch: ContentSketch;
2028
+ }>;
2029
+ };
1956
2030
  };
1957
2031
  type PageExtraction = ExtractedPage & {
1958
2032
  crawlerEvidence?: CrawlerExtractionEvidence;
@@ -2431,6 +2505,22 @@ type CrawlPageSnapshot = {
2431
2505
  mainContentHash?: string;
2432
2506
  textRatio?: number;
2433
2507
  contentSample?: string;
2508
+ contentSketch?: ContentSketch;
2509
+ softAuthenticationGate?: {
2510
+ kind: 'login-form';
2511
+ indicators: string[];
2512
+ formActionPath?: string;
2513
+ };
2514
+ tabbedContent?: {
2515
+ groups: number;
2516
+ panels: number;
2517
+ retainedPanels: number;
2518
+ truncated: boolean;
2519
+ panelSketches: Array<{
2520
+ label?: string;
2521
+ sketch: ContentSketch;
2522
+ }>;
2523
+ };
2434
2524
  lang?: string;
2435
2525
  hasViewport?: boolean;
2436
2526
  isHttps?: boolean;
@@ -2852,6 +2942,8 @@ type AgentRepresentationResponse = {
2852
2942
  status?: number;
2853
2943
  contentType?: string;
2854
2944
  bytes?: number;
2945
+ characters?: number;
2946
+ estimatedTokens?: number;
2855
2947
  sha256?: string;
2856
2948
  canonicalUrl?: string;
2857
2949
  alternateUrl?: string;
@@ -2877,6 +2969,14 @@ type MarkdownQualityObservation = {
2877
2969
  wordRetentionRatio: number | null;
2878
2970
  introductoryCopyRetained: boolean | null;
2879
2971
  navigationOnly: boolean;
2972
+ contentSketchCoverage?: number | null;
2973
+ tabbedContent?: {
2974
+ detectedPanels: number;
2975
+ evaluatedPanels: number;
2976
+ retainedPanels: number;
2977
+ missingPanels: number;
2978
+ complete: boolean | null;
2979
+ };
2880
2980
  };
2881
2981
  type MarkdownAlternateObservation = {
2882
2982
  htmlUrl: string;
@@ -2972,6 +3072,7 @@ type CrawlAgentDiscovery = {
2972
3072
  missingHtmlRoutes: string[];
2973
3073
  missingMarkdownRoutes: string[];
2974
3074
  orphanMarkdownRoutes: string[];
3075
+ comparisonStatus?: 'complete' | 'partial' | 'not-applicable';
2975
3076
  error?: string;
2976
3077
  };
2977
3078
  agentSkills: {
@@ -3083,6 +3184,33 @@ declare function normalizeCrawlSkipReasonCounts(input: {
3083
3184
  };
3084
3185
  declare function crawlSkipReasonCountsFromRecord(input?: Partial<Record<CrawlSkipReason, number>>): CrawlSkipReasonCount[];
3085
3186
  //#endregion
3187
+ //#region packages/core/src/analyze/monitoring/crawl-page.d.ts
3188
+ type CrawlOneResult = {
3189
+ request?: CrawlRequestObservation;
3190
+ page?: CrawlPageSnapshot;
3191
+ urls: string[];
3192
+ warning?: string;
3193
+ };
3194
+ declare function crawlOne(url: string, opts?: FetchPageOptions): Promise<CrawlOneResult>;
3195
+ declare function crawlStatusOnly(url: string, opts?: FetchPageOptions): Promise<CrawlOneResult>;
3196
+ //#endregion
3197
+ //#region packages/core/src/analyze/crawler/site-checks.d.ts
3198
+ type CrawlSiteChecks = {
3199
+ soft404: {
3200
+ status: 'pass' | 'warning' | 'unknown';
3201
+ probes: Array<{
3202
+ url: string;
3203
+ status?: number;
3204
+ finalUrl?: string;
3205
+ redirected?: boolean;
3206
+ accessBlocked?: boolean;
3207
+ error?: string;
3208
+ }>;
3209
+ probeLimit: number;
3210
+ complete: boolean;
3211
+ };
3212
+ };
3213
+ //#endregion
3086
3214
  //#region packages/core/src/analyze/crawler/report.d.ts
3087
3215
  type CrawlMode = 'site' | 'page' | 'list' | 'sitemap';
3088
3216
  type CrawlStrategy = 'full' | 'health';
@@ -3330,6 +3458,7 @@ type CrawlReport = {
3330
3458
  ai?: CrawlAiSignals;
3331
3459
  sitemapDiscovery?: CrawlSitemapDiscovery;
3332
3460
  externalLinkVerification?: CrawlExternalLinkVerification;
3461
+ siteChecks?: CrawlSiteChecks;
3333
3462
  agentDiscovery?: CrawlAgentDiscovery;
3334
3463
  warnings: string[];
3335
3464
  caveats: string[];
@@ -3360,6 +3489,7 @@ declare function createCrawlReport(input: {
3360
3489
  requests?: CrawlRequestObservation[];
3361
3490
  requestEvidenceStatus?: CrawlReport['requestEvidenceStatus'];
3362
3491
  issues?: CrawlIssue[];
3492
+ additionalIssues?: CrawlIssue[];
3363
3493
  linkGraph?: CrawlLinkGraph;
3364
3494
  ai?: CrawlAiSignals;
3365
3495
  projectId?: string;
@@ -3368,6 +3498,7 @@ declare function createCrawlReport(input: {
3368
3498
  dataSources?: CrawlReportDataSources;
3369
3499
  sitemapDiscovery?: CrawlSitemapDiscovery;
3370
3500
  externalLinkVerification?: CrawlExternalLinkVerification;
3501
+ siteChecks?: CrawlSiteChecks;
3371
3502
  agentDiscovery?: CrawlAgentDiscovery;
3372
3503
  status?: CrawlReport['status'];
3373
3504
  warnings?: string[];
@@ -3729,16 +3860,6 @@ declare function loadCrawlReport(id: string, store?: CrawlReportStoreAdapter): C
3729
3860
  declare function deleteCrawlReport(id: string, store?: CrawlReportStoreAdapter): boolean;
3730
3861
  declare function latestCrawlReport(site?: string, store?: CrawlReportStoreAdapter): CrawlReport | undefined;
3731
3862
  //#endregion
3732
- //#region packages/core/src/analyze/monitoring/crawl-page.d.ts
3733
- type CrawlOneResult = {
3734
- request?: CrawlRequestObservation;
3735
- page?: CrawlPageSnapshot;
3736
- urls: string[];
3737
- warning?: string;
3738
- };
3739
- declare function crawlOne(url: string, opts?: FetchPageOptions): Promise<CrawlOneResult>;
3740
- declare function crawlStatusOnly(url: string, opts?: FetchPageOptions): Promise<CrawlOneResult>;
3741
- //#endregion
3742
3863
  //#region packages/core/src/analyze/workflows/analytics-value.d.ts
3743
3864
  type LandingPageValue = {
3744
3865
  sessions: number;
@@ -4153,8 +4274,8 @@ declare const crawlerRuleSeveritySchema: z.ZodEnum<{
4153
4274
  medium: "medium";
4154
4275
  }>;
4155
4276
  declare const crawlerRuleRecommendationSchema: z.ZodEnum<{
4156
- fix: "fix";
4157
4277
  review: "review";
4278
+ fix: "fix";
4158
4279
  }>;
4159
4280
  declare const crawlerRuleCategorySchema: z.ZodEnum<{
4160
4281
  metadata: "metadata";
@@ -4204,8 +4325,8 @@ declare const crawlerRuleInfoSchema: z.ZodObject<{
4204
4325
  medium: "medium";
4205
4326
  }>;
4206
4327
  recommendation: z.ZodEnum<{
4207
- fix: "fix";
4208
4328
  review: "review";
4329
+ fix: "fix";
4209
4330
  }>;
4210
4331
  whyItMatters: z.ZodString;
4211
4332
  howToFix: z.ZodString;
@@ -4330,12 +4451,12 @@ declare const crawlPageSnapshotSchema: z.ZodObject<{
4330
4451
  off: "off";
4331
4452
  }>;
4332
4453
  status: z.ZodEnum<{
4454
+ unavailable: "unavailable";
4333
4455
  failed: "failed";
4334
4456
  rendered: "rendered";
4335
4457
  "not-requested": "not-requested";
4336
4458
  "not-needed": "not-needed";
4337
4459
  skipped: "skipped";
4338
- unavailable: "unavailable";
4339
4460
  }>;
4340
4461
  raw: z.ZodOptional<z.ZodObject<{
4341
4462
  source: z.ZodEnum<{
@@ -4615,6 +4736,34 @@ declare const crawlPageSnapshotSchema: z.ZodObject<{
4615
4736
  mainContentHash: z.ZodOptional<z.ZodString>;
4616
4737
  textRatio: z.ZodOptional<z.ZodNumber>;
4617
4738
  contentSample: z.ZodOptional<z.ZodString>;
4739
+ contentSketch: z.ZodOptional<z.ZodObject<{
4740
+ version: z.ZodLiteral<1>;
4741
+ wordCount: z.ZodNumber;
4742
+ shingleSize: z.ZodNumber;
4743
+ sampledShingles: z.ZodNumber;
4744
+ hashes: z.ZodArray<z.ZodString>;
4745
+ }, z.core.$strip>>;
4746
+ softAuthenticationGate: z.ZodOptional<z.ZodObject<{
4747
+ kind: z.ZodLiteral<"login-form">;
4748
+ indicators: z.ZodArray<z.ZodString>;
4749
+ formActionPath: z.ZodOptional<z.ZodString>;
4750
+ }, z.core.$strip>>;
4751
+ tabbedContent: z.ZodOptional<z.ZodObject<{
4752
+ groups: z.ZodNumber;
4753
+ panels: z.ZodNumber;
4754
+ retainedPanels: z.ZodNumber;
4755
+ truncated: z.ZodBoolean;
4756
+ panelSketches: z.ZodArray<z.ZodObject<{
4757
+ label: z.ZodOptional<z.ZodString>;
4758
+ sketch: z.ZodObject<{
4759
+ version: z.ZodLiteral<1>;
4760
+ wordCount: z.ZodNumber;
4761
+ shingleSize: z.ZodNumber;
4762
+ sampledShingles: z.ZodNumber;
4763
+ hashes: z.ZodArray<z.ZodString>;
4764
+ }, z.core.$strip>;
4765
+ }, z.core.$strip>>;
4766
+ }, z.core.$strip>>;
4618
4767
  lang: z.ZodOptional<z.ZodString>;
4619
4768
  hasViewport: z.ZodOptional<z.ZodBoolean>;
4620
4769
  isHttps: z.ZodOptional<z.ZodBoolean>;
@@ -4654,9 +4803,9 @@ declare const crawlPageSnapshotSchema: z.ZodObject<{
4654
4803
  status: z.ZodOptional<z.ZodNumber>;
4655
4804
  error: z.ZodOptional<z.ZodString>;
4656
4805
  state: z.ZodOptional<z.ZodEnum<{
4806
+ unavailable: "unavailable";
4657
4807
  available: "available";
4658
4808
  "rate-limited": "rate-limited";
4659
- unavailable: "unavailable";
4660
4809
  "confirmed-broken": "confirmed-broken";
4661
4810
  transient: "transient";
4662
4811
  "provider-blocked": "provider-blocked";
@@ -5066,8 +5215,8 @@ declare const crawlTopFixSchema: z.ZodObject<{
5066
5215
  count: z.ZodNumber;
5067
5216
  sampleUrls: z.ZodArray<z.ZodString>;
5068
5217
  recommendation: z.ZodEnum<{
5069
- fix: "fix";
5070
5218
  review: "review";
5219
+ fix: "fix";
5071
5220
  }>;
5072
5221
  score: z.ZodNumber;
5073
5222
  scoreFactors: z.ZodObject<{
@@ -5461,12 +5610,12 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
5461
5610
  off: "off";
5462
5611
  }>;
5463
5612
  status: z.ZodEnum<{
5613
+ unavailable: "unavailable";
5464
5614
  failed: "failed";
5465
5615
  rendered: "rendered";
5466
5616
  "not-requested": "not-requested";
5467
5617
  "not-needed": "not-needed";
5468
5618
  skipped: "skipped";
5469
- unavailable: "unavailable";
5470
5619
  }>;
5471
5620
  raw: z.ZodOptional<z.ZodObject<{
5472
5621
  source: z.ZodEnum<{
@@ -5746,6 +5895,34 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
5746
5895
  mainContentHash: z.ZodOptional<z.ZodString>;
5747
5896
  textRatio: z.ZodOptional<z.ZodNumber>;
5748
5897
  contentSample: z.ZodOptional<z.ZodString>;
5898
+ contentSketch: z.ZodOptional<z.ZodObject<{
5899
+ version: z.ZodLiteral<1>;
5900
+ wordCount: z.ZodNumber;
5901
+ shingleSize: z.ZodNumber;
5902
+ sampledShingles: z.ZodNumber;
5903
+ hashes: z.ZodArray<z.ZodString>;
5904
+ }, z.core.$strip>>;
5905
+ softAuthenticationGate: z.ZodOptional<z.ZodObject<{
5906
+ kind: z.ZodLiteral<"login-form">;
5907
+ indicators: z.ZodArray<z.ZodString>;
5908
+ formActionPath: z.ZodOptional<z.ZodString>;
5909
+ }, z.core.$strip>>;
5910
+ tabbedContent: z.ZodOptional<z.ZodObject<{
5911
+ groups: z.ZodNumber;
5912
+ panels: z.ZodNumber;
5913
+ retainedPanels: z.ZodNumber;
5914
+ truncated: z.ZodBoolean;
5915
+ panelSketches: z.ZodArray<z.ZodObject<{
5916
+ label: z.ZodOptional<z.ZodString>;
5917
+ sketch: z.ZodObject<{
5918
+ version: z.ZodLiteral<1>;
5919
+ wordCount: z.ZodNumber;
5920
+ shingleSize: z.ZodNumber;
5921
+ sampledShingles: z.ZodNumber;
5922
+ hashes: z.ZodArray<z.ZodString>;
5923
+ }, z.core.$strip>;
5924
+ }, z.core.$strip>>;
5925
+ }, z.core.$strip>>;
5749
5926
  lang: z.ZodOptional<z.ZodString>;
5750
5927
  hasViewport: z.ZodOptional<z.ZodBoolean>;
5751
5928
  isHttps: z.ZodOptional<z.ZodBoolean>;
@@ -5785,9 +5962,9 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
5785
5962
  status: z.ZodOptional<z.ZodNumber>;
5786
5963
  error: z.ZodOptional<z.ZodString>;
5787
5964
  state: z.ZodOptional<z.ZodEnum<{
5965
+ unavailable: "unavailable";
5788
5966
  available: "available";
5789
5967
  "rate-limited": "rate-limited";
5790
- unavailable: "unavailable";
5791
5968
  "confirmed-broken": "confirmed-broken";
5792
5969
  transient: "transient";
5793
5970
  "provider-blocked": "provider-blocked";
@@ -6011,8 +6188,8 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
6011
6188
  searchConsole: z.ZodObject<{
6012
6189
  status: z.ZodEnum<{
6013
6190
  partial: "partial";
6014
- skipped: "skipped";
6015
6191
  unavailable: "unavailable";
6192
+ skipped: "skipped";
6016
6193
  joined: "joined";
6017
6194
  none: "none";
6018
6195
  }>;
@@ -6036,8 +6213,8 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
6036
6213
  analytics: z.ZodObject<{
6037
6214
  status: z.ZodEnum<{
6038
6215
  partial: "partial";
6039
- skipped: "skipped";
6040
6216
  unavailable: "unavailable";
6217
+ skipped: "skipped";
6041
6218
  joined: "joined";
6042
6219
  none: "none";
6043
6220
  }>;
@@ -6182,9 +6359,9 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
6182
6359
  deferredUrls: z.ZodNumber;
6183
6360
  limit: z.ZodNumber;
6184
6361
  outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
6362
+ unavailable: "unavailable";
6185
6363
  available: "available";
6186
6364
  "rate-limited": "rate-limited";
6187
- unavailable: "unavailable";
6188
6365
  "confirmed-broken": "confirmed-broken";
6189
6366
  transient: "transient";
6190
6367
  "provider-blocked": "provider-blocked";
@@ -6192,6 +6369,25 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
6192
6369
  }>, z.ZodNumber>>;
6193
6370
  warnings: z.ZodArray<z.ZodString>;
6194
6371
  }, z.core.$strip>>;
6372
+ siteChecks: z.ZodOptional<z.ZodObject<{
6373
+ soft404: z.ZodObject<{
6374
+ status: z.ZodEnum<{
6375
+ unknown: "unknown";
6376
+ warning: "warning";
6377
+ pass: "pass";
6378
+ }>;
6379
+ probes: z.ZodArray<z.ZodObject<{
6380
+ url: z.ZodString;
6381
+ status: z.ZodOptional<z.ZodNumber>;
6382
+ finalUrl: z.ZodOptional<z.ZodString>;
6383
+ redirected: z.ZodOptional<z.ZodBoolean>;
6384
+ accessBlocked: z.ZodOptional<z.ZodBoolean>;
6385
+ error: z.ZodOptional<z.ZodString>;
6386
+ }, z.core.$strip>>;
6387
+ probeLimit: z.ZodNumber;
6388
+ complete: z.ZodBoolean;
6389
+ }, z.core.$strip>;
6390
+ }, z.core.$strip>>;
6195
6391
  agentDiscovery: z.ZodOptional<z.ZodObject<{
6196
6392
  profile: z.ZodLiteral<"content">;
6197
6393
  profileApplicability: z.ZodRecord<z.ZodEnum<{
@@ -6228,6 +6424,8 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
6228
6424
  status: z.ZodOptional<z.ZodNumber>;
6229
6425
  contentType: z.ZodOptional<z.ZodString>;
6230
6426
  bytes: z.ZodOptional<z.ZodNumber>;
6427
+ characters: z.ZodOptional<z.ZodNumber>;
6428
+ estimatedTokens: z.ZodOptional<z.ZodNumber>;
6231
6429
  sha256: z.ZodOptional<z.ZodString>;
6232
6430
  canonicalUrl: z.ZodOptional<z.ZodString>;
6233
6431
  alternateUrl: z.ZodOptional<z.ZodString>;
@@ -6242,6 +6440,8 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
6242
6440
  status: z.ZodOptional<z.ZodNumber>;
6243
6441
  contentType: z.ZodOptional<z.ZodString>;
6244
6442
  bytes: z.ZodOptional<z.ZodNumber>;
6443
+ characters: z.ZodOptional<z.ZodNumber>;
6444
+ estimatedTokens: z.ZodOptional<z.ZodNumber>;
6245
6445
  sha256: z.ZodOptional<z.ZodString>;
6246
6446
  canonicalUrl: z.ZodOptional<z.ZodString>;
6247
6447
  alternateUrl: z.ZodOptional<z.ZodString>;
@@ -6256,6 +6456,8 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
6256
6456
  status: z.ZodOptional<z.ZodNumber>;
6257
6457
  contentType: z.ZodOptional<z.ZodString>;
6258
6458
  bytes: z.ZodOptional<z.ZodNumber>;
6459
+ characters: z.ZodOptional<z.ZodNumber>;
6460
+ estimatedTokens: z.ZodOptional<z.ZodNumber>;
6259
6461
  sha256: z.ZodOptional<z.ZodString>;
6260
6462
  canonicalUrl: z.ZodOptional<z.ZodString>;
6261
6463
  alternateUrl: z.ZodOptional<z.ZodString>;
@@ -6284,6 +6486,14 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
6284
6486
  wordRetentionRatio: z.ZodNullable<z.ZodNumber>;
6285
6487
  introductoryCopyRetained: z.ZodNullable<z.ZodBoolean>;
6286
6488
  navigationOnly: z.ZodBoolean;
6489
+ contentSketchCoverage: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
6490
+ tabbedContent: z.ZodOptional<z.ZodObject<{
6491
+ detectedPanels: z.ZodNumber;
6492
+ evaluatedPanels: z.ZodNumber;
6493
+ retainedPanels: z.ZodNumber;
6494
+ missingPanels: z.ZodNumber;
6495
+ complete: z.ZodNullable<z.ZodBoolean>;
6496
+ }, z.core.$strip>>;
6287
6497
  }, z.core.$strip>>;
6288
6498
  }, z.core.$strip>>;
6289
6499
  }, z.core.$strip>;
@@ -6302,6 +6512,11 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
6302
6512
  missingHtmlRoutes: z.ZodArray<z.ZodString>;
6303
6513
  missingMarkdownRoutes: z.ZodArray<z.ZodString>;
6304
6514
  orphanMarkdownRoutes: z.ZodArray<z.ZodString>;
6515
+ comparisonStatus: z.ZodOptional<z.ZodEnum<{
6516
+ partial: "partial";
6517
+ complete: "complete";
6518
+ "not-applicable": "not-applicable";
6519
+ }>>;
6305
6520
  error: z.ZodOptional<z.ZodString>;
6306
6521
  }, z.core.$strip>;
6307
6522
  agentSkills: z.ZodObject<{
@@ -6839,12 +7054,12 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
6839
7054
  off: "off";
6840
7055
  }>;
6841
7056
  status: z.ZodEnum<{
7057
+ unavailable: "unavailable";
6842
7058
  failed: "failed";
6843
7059
  rendered: "rendered";
6844
7060
  "not-requested": "not-requested";
6845
7061
  "not-needed": "not-needed";
6846
7062
  skipped: "skipped";
6847
- unavailable: "unavailable";
6848
7063
  }>;
6849
7064
  raw: z.ZodOptional<z.ZodObject<{
6850
7065
  source: z.ZodEnum<{
@@ -7124,6 +7339,34 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
7124
7339
  mainContentHash: z.ZodOptional<z.ZodString>;
7125
7340
  textRatio: z.ZodOptional<z.ZodNumber>;
7126
7341
  contentSample: z.ZodOptional<z.ZodString>;
7342
+ contentSketch: z.ZodOptional<z.ZodObject<{
7343
+ version: z.ZodLiteral<1>;
7344
+ wordCount: z.ZodNumber;
7345
+ shingleSize: z.ZodNumber;
7346
+ sampledShingles: z.ZodNumber;
7347
+ hashes: z.ZodArray<z.ZodString>;
7348
+ }, z.core.$strip>>;
7349
+ softAuthenticationGate: z.ZodOptional<z.ZodObject<{
7350
+ kind: z.ZodLiteral<"login-form">;
7351
+ indicators: z.ZodArray<z.ZodString>;
7352
+ formActionPath: z.ZodOptional<z.ZodString>;
7353
+ }, z.core.$strip>>;
7354
+ tabbedContent: z.ZodOptional<z.ZodObject<{
7355
+ groups: z.ZodNumber;
7356
+ panels: z.ZodNumber;
7357
+ retainedPanels: z.ZodNumber;
7358
+ truncated: z.ZodBoolean;
7359
+ panelSketches: z.ZodArray<z.ZodObject<{
7360
+ label: z.ZodOptional<z.ZodString>;
7361
+ sketch: z.ZodObject<{
7362
+ version: z.ZodLiteral<1>;
7363
+ wordCount: z.ZodNumber;
7364
+ shingleSize: z.ZodNumber;
7365
+ sampledShingles: z.ZodNumber;
7366
+ hashes: z.ZodArray<z.ZodString>;
7367
+ }, z.core.$strip>;
7368
+ }, z.core.$strip>>;
7369
+ }, z.core.$strip>>;
7127
7370
  lang: z.ZodOptional<z.ZodString>;
7128
7371
  hasViewport: z.ZodOptional<z.ZodBoolean>;
7129
7372
  isHttps: z.ZodOptional<z.ZodBoolean>;
@@ -7163,9 +7406,9 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
7163
7406
  status: z.ZodOptional<z.ZodNumber>;
7164
7407
  error: z.ZodOptional<z.ZodString>;
7165
7408
  state: z.ZodOptional<z.ZodEnum<{
7409
+ unavailable: "unavailable";
7166
7410
  available: "available";
7167
7411
  "rate-limited": "rate-limited";
7168
- unavailable: "unavailable";
7169
7412
  "confirmed-broken": "confirmed-broken";
7170
7413
  transient: "transient";
7171
7414
  "provider-blocked": "provider-blocked";
@@ -7389,8 +7632,8 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
7389
7632
  searchConsole: z.ZodObject<{
7390
7633
  status: z.ZodEnum<{
7391
7634
  partial: "partial";
7392
- skipped: "skipped";
7393
7635
  unavailable: "unavailable";
7636
+ skipped: "skipped";
7394
7637
  joined: "joined";
7395
7638
  none: "none";
7396
7639
  }>;
@@ -7414,8 +7657,8 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
7414
7657
  analytics: z.ZodObject<{
7415
7658
  status: z.ZodEnum<{
7416
7659
  partial: "partial";
7417
- skipped: "skipped";
7418
7660
  unavailable: "unavailable";
7661
+ skipped: "skipped";
7419
7662
  joined: "joined";
7420
7663
  none: "none";
7421
7664
  }>;
@@ -7560,9 +7803,9 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
7560
7803
  deferredUrls: z.ZodNumber;
7561
7804
  limit: z.ZodNumber;
7562
7805
  outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
7806
+ unavailable: "unavailable";
7563
7807
  available: "available";
7564
7808
  "rate-limited": "rate-limited";
7565
- unavailable: "unavailable";
7566
7809
  "confirmed-broken": "confirmed-broken";
7567
7810
  transient: "transient";
7568
7811
  "provider-blocked": "provider-blocked";
@@ -7570,6 +7813,25 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
7570
7813
  }>, z.ZodNumber>>;
7571
7814
  warnings: z.ZodArray<z.ZodString>;
7572
7815
  }, z.core.$strip>>;
7816
+ siteChecks: z.ZodOptional<z.ZodObject<{
7817
+ soft404: z.ZodObject<{
7818
+ status: z.ZodEnum<{
7819
+ unknown: "unknown";
7820
+ warning: "warning";
7821
+ pass: "pass";
7822
+ }>;
7823
+ probes: z.ZodArray<z.ZodObject<{
7824
+ url: z.ZodString;
7825
+ status: z.ZodOptional<z.ZodNumber>;
7826
+ finalUrl: z.ZodOptional<z.ZodString>;
7827
+ redirected: z.ZodOptional<z.ZodBoolean>;
7828
+ accessBlocked: z.ZodOptional<z.ZodBoolean>;
7829
+ error: z.ZodOptional<z.ZodString>;
7830
+ }, z.core.$strip>>;
7831
+ probeLimit: z.ZodNumber;
7832
+ complete: z.ZodBoolean;
7833
+ }, z.core.$strip>;
7834
+ }, z.core.$strip>>;
7573
7835
  agentDiscovery: z.ZodOptional<z.ZodObject<{
7574
7836
  profile: z.ZodLiteral<"content">;
7575
7837
  profileApplicability: z.ZodRecord<z.ZodEnum<{
@@ -7606,6 +7868,8 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
7606
7868
  status: z.ZodOptional<z.ZodNumber>;
7607
7869
  contentType: z.ZodOptional<z.ZodString>;
7608
7870
  bytes: z.ZodOptional<z.ZodNumber>;
7871
+ characters: z.ZodOptional<z.ZodNumber>;
7872
+ estimatedTokens: z.ZodOptional<z.ZodNumber>;
7609
7873
  sha256: z.ZodOptional<z.ZodString>;
7610
7874
  canonicalUrl: z.ZodOptional<z.ZodString>;
7611
7875
  alternateUrl: z.ZodOptional<z.ZodString>;
@@ -7620,6 +7884,8 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
7620
7884
  status: z.ZodOptional<z.ZodNumber>;
7621
7885
  contentType: z.ZodOptional<z.ZodString>;
7622
7886
  bytes: z.ZodOptional<z.ZodNumber>;
7887
+ characters: z.ZodOptional<z.ZodNumber>;
7888
+ estimatedTokens: z.ZodOptional<z.ZodNumber>;
7623
7889
  sha256: z.ZodOptional<z.ZodString>;
7624
7890
  canonicalUrl: z.ZodOptional<z.ZodString>;
7625
7891
  alternateUrl: z.ZodOptional<z.ZodString>;
@@ -7634,6 +7900,8 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
7634
7900
  status: z.ZodOptional<z.ZodNumber>;
7635
7901
  contentType: z.ZodOptional<z.ZodString>;
7636
7902
  bytes: z.ZodOptional<z.ZodNumber>;
7903
+ characters: z.ZodOptional<z.ZodNumber>;
7904
+ estimatedTokens: z.ZodOptional<z.ZodNumber>;
7637
7905
  sha256: z.ZodOptional<z.ZodString>;
7638
7906
  canonicalUrl: z.ZodOptional<z.ZodString>;
7639
7907
  alternateUrl: z.ZodOptional<z.ZodString>;
@@ -7662,6 +7930,14 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
7662
7930
  wordRetentionRatio: z.ZodNullable<z.ZodNumber>;
7663
7931
  introductoryCopyRetained: z.ZodNullable<z.ZodBoolean>;
7664
7932
  navigationOnly: z.ZodBoolean;
7933
+ contentSketchCoverage: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
7934
+ tabbedContent: z.ZodOptional<z.ZodObject<{
7935
+ detectedPanels: z.ZodNumber;
7936
+ evaluatedPanels: z.ZodNumber;
7937
+ retainedPanels: z.ZodNumber;
7938
+ missingPanels: z.ZodNumber;
7939
+ complete: z.ZodNullable<z.ZodBoolean>;
7940
+ }, z.core.$strip>>;
7665
7941
  }, z.core.$strip>>;
7666
7942
  }, z.core.$strip>>;
7667
7943
  }, z.core.$strip>;
@@ -7680,6 +7956,11 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
7680
7956
  missingHtmlRoutes: z.ZodArray<z.ZodString>;
7681
7957
  missingMarkdownRoutes: z.ZodArray<z.ZodString>;
7682
7958
  orphanMarkdownRoutes: z.ZodArray<z.ZodString>;
7959
+ comparisonStatus: z.ZodOptional<z.ZodEnum<{
7960
+ partial: "partial";
7961
+ complete: "complete";
7962
+ "not-applicable": "not-applicable";
7963
+ }>>;
7683
7964
  error: z.ZodOptional<z.ZodString>;
7684
7965
  }, z.core.$strip>;
7685
7966
  agentSkills: z.ZodObject<{
@@ -8217,12 +8498,12 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
8217
8498
  off: "off";
8218
8499
  }>;
8219
8500
  status: z.ZodEnum<{
8501
+ unavailable: "unavailable";
8220
8502
  failed: "failed";
8221
8503
  rendered: "rendered";
8222
8504
  "not-requested": "not-requested";
8223
8505
  "not-needed": "not-needed";
8224
8506
  skipped: "skipped";
8225
- unavailable: "unavailable";
8226
8507
  }>;
8227
8508
  raw: z.ZodOptional<z.ZodObject<{
8228
8509
  source: z.ZodEnum<{
@@ -8502,6 +8783,34 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
8502
8783
  mainContentHash: z.ZodOptional<z.ZodString>;
8503
8784
  textRatio: z.ZodOptional<z.ZodNumber>;
8504
8785
  contentSample: z.ZodOptional<z.ZodString>;
8786
+ contentSketch: z.ZodOptional<z.ZodObject<{
8787
+ version: z.ZodLiteral<1>;
8788
+ wordCount: z.ZodNumber;
8789
+ shingleSize: z.ZodNumber;
8790
+ sampledShingles: z.ZodNumber;
8791
+ hashes: z.ZodArray<z.ZodString>;
8792
+ }, z.core.$strip>>;
8793
+ softAuthenticationGate: z.ZodOptional<z.ZodObject<{
8794
+ kind: z.ZodLiteral<"login-form">;
8795
+ indicators: z.ZodArray<z.ZodString>;
8796
+ formActionPath: z.ZodOptional<z.ZodString>;
8797
+ }, z.core.$strip>>;
8798
+ tabbedContent: z.ZodOptional<z.ZodObject<{
8799
+ groups: z.ZodNumber;
8800
+ panels: z.ZodNumber;
8801
+ retainedPanels: z.ZodNumber;
8802
+ truncated: z.ZodBoolean;
8803
+ panelSketches: z.ZodArray<z.ZodObject<{
8804
+ label: z.ZodOptional<z.ZodString>;
8805
+ sketch: z.ZodObject<{
8806
+ version: z.ZodLiteral<1>;
8807
+ wordCount: z.ZodNumber;
8808
+ shingleSize: z.ZodNumber;
8809
+ sampledShingles: z.ZodNumber;
8810
+ hashes: z.ZodArray<z.ZodString>;
8811
+ }, z.core.$strip>;
8812
+ }, z.core.$strip>>;
8813
+ }, z.core.$strip>>;
8505
8814
  lang: z.ZodOptional<z.ZodString>;
8506
8815
  hasViewport: z.ZodOptional<z.ZodBoolean>;
8507
8816
  isHttps: z.ZodOptional<z.ZodBoolean>;
@@ -8541,9 +8850,9 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
8541
8850
  status: z.ZodOptional<z.ZodNumber>;
8542
8851
  error: z.ZodOptional<z.ZodString>;
8543
8852
  state: z.ZodOptional<z.ZodEnum<{
8853
+ unavailable: "unavailable";
8544
8854
  available: "available";
8545
8855
  "rate-limited": "rate-limited";
8546
- unavailable: "unavailable";
8547
8856
  "confirmed-broken": "confirmed-broken";
8548
8857
  transient: "transient";
8549
8858
  "provider-blocked": "provider-blocked";
@@ -8767,8 +9076,8 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
8767
9076
  searchConsole: z.ZodObject<{
8768
9077
  status: z.ZodEnum<{
8769
9078
  partial: "partial";
8770
- skipped: "skipped";
8771
9079
  unavailable: "unavailable";
9080
+ skipped: "skipped";
8772
9081
  joined: "joined";
8773
9082
  none: "none";
8774
9083
  }>;
@@ -8792,8 +9101,8 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
8792
9101
  analytics: z.ZodObject<{
8793
9102
  status: z.ZodEnum<{
8794
9103
  partial: "partial";
8795
- skipped: "skipped";
8796
9104
  unavailable: "unavailable";
9105
+ skipped: "skipped";
8797
9106
  joined: "joined";
8798
9107
  none: "none";
8799
9108
  }>;
@@ -8938,9 +9247,9 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
8938
9247
  deferredUrls: z.ZodNumber;
8939
9248
  limit: z.ZodNumber;
8940
9249
  outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
9250
+ unavailable: "unavailable";
8941
9251
  available: "available";
8942
9252
  "rate-limited": "rate-limited";
8943
- unavailable: "unavailable";
8944
9253
  "confirmed-broken": "confirmed-broken";
8945
9254
  transient: "transient";
8946
9255
  "provider-blocked": "provider-blocked";
@@ -8948,6 +9257,25 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
8948
9257
  }>, z.ZodNumber>>;
8949
9258
  warnings: z.ZodArray<z.ZodString>;
8950
9259
  }, z.core.$strip>>;
9260
+ siteChecks: z.ZodOptional<z.ZodObject<{
9261
+ soft404: z.ZodObject<{
9262
+ status: z.ZodEnum<{
9263
+ unknown: "unknown";
9264
+ warning: "warning";
9265
+ pass: "pass";
9266
+ }>;
9267
+ probes: z.ZodArray<z.ZodObject<{
9268
+ url: z.ZodString;
9269
+ status: z.ZodOptional<z.ZodNumber>;
9270
+ finalUrl: z.ZodOptional<z.ZodString>;
9271
+ redirected: z.ZodOptional<z.ZodBoolean>;
9272
+ accessBlocked: z.ZodOptional<z.ZodBoolean>;
9273
+ error: z.ZodOptional<z.ZodString>;
9274
+ }, z.core.$strip>>;
9275
+ probeLimit: z.ZodNumber;
9276
+ complete: z.ZodBoolean;
9277
+ }, z.core.$strip>;
9278
+ }, z.core.$strip>>;
8951
9279
  agentDiscovery: z.ZodOptional<z.ZodObject<{
8952
9280
  profile: z.ZodLiteral<"content">;
8953
9281
  profileApplicability: z.ZodRecord<z.ZodEnum<{
@@ -8984,6 +9312,8 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
8984
9312
  status: z.ZodOptional<z.ZodNumber>;
8985
9313
  contentType: z.ZodOptional<z.ZodString>;
8986
9314
  bytes: z.ZodOptional<z.ZodNumber>;
9315
+ characters: z.ZodOptional<z.ZodNumber>;
9316
+ estimatedTokens: z.ZodOptional<z.ZodNumber>;
8987
9317
  sha256: z.ZodOptional<z.ZodString>;
8988
9318
  canonicalUrl: z.ZodOptional<z.ZodString>;
8989
9319
  alternateUrl: z.ZodOptional<z.ZodString>;
@@ -8998,6 +9328,8 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
8998
9328
  status: z.ZodOptional<z.ZodNumber>;
8999
9329
  contentType: z.ZodOptional<z.ZodString>;
9000
9330
  bytes: z.ZodOptional<z.ZodNumber>;
9331
+ characters: z.ZodOptional<z.ZodNumber>;
9332
+ estimatedTokens: z.ZodOptional<z.ZodNumber>;
9001
9333
  sha256: z.ZodOptional<z.ZodString>;
9002
9334
  canonicalUrl: z.ZodOptional<z.ZodString>;
9003
9335
  alternateUrl: z.ZodOptional<z.ZodString>;
@@ -9012,6 +9344,8 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
9012
9344
  status: z.ZodOptional<z.ZodNumber>;
9013
9345
  contentType: z.ZodOptional<z.ZodString>;
9014
9346
  bytes: z.ZodOptional<z.ZodNumber>;
9347
+ characters: z.ZodOptional<z.ZodNumber>;
9348
+ estimatedTokens: z.ZodOptional<z.ZodNumber>;
9015
9349
  sha256: z.ZodOptional<z.ZodString>;
9016
9350
  canonicalUrl: z.ZodOptional<z.ZodString>;
9017
9351
  alternateUrl: z.ZodOptional<z.ZodString>;
@@ -9040,6 +9374,14 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
9040
9374
  wordRetentionRatio: z.ZodNullable<z.ZodNumber>;
9041
9375
  introductoryCopyRetained: z.ZodNullable<z.ZodBoolean>;
9042
9376
  navigationOnly: z.ZodBoolean;
9377
+ contentSketchCoverage: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
9378
+ tabbedContent: z.ZodOptional<z.ZodObject<{
9379
+ detectedPanels: z.ZodNumber;
9380
+ evaluatedPanels: z.ZodNumber;
9381
+ retainedPanels: z.ZodNumber;
9382
+ missingPanels: z.ZodNumber;
9383
+ complete: z.ZodNullable<z.ZodBoolean>;
9384
+ }, z.core.$strip>>;
9043
9385
  }, z.core.$strip>>;
9044
9386
  }, z.core.$strip>>;
9045
9387
  }, z.core.$strip>;
@@ -9058,6 +9400,11 @@ declare const crawlReportSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
9058
9400
  missingHtmlRoutes: z.ZodArray<z.ZodString>;
9059
9401
  missingMarkdownRoutes: z.ZodArray<z.ZodString>;
9060
9402
  orphanMarkdownRoutes: z.ZodArray<z.ZodString>;
9403
+ comparisonStatus: z.ZodOptional<z.ZodEnum<{
9404
+ partial: "partial";
9405
+ complete: "complete";
9406
+ "not-applicable": "not-applicable";
9407
+ }>>;
9061
9408
  error: z.ZodOptional<z.ZodString>;
9062
9409
  }, z.core.$strip>;
9063
9410
  agentSkills: z.ZodObject<{
@@ -9597,12 +9944,12 @@ declare const crawlerSchemas: {
9597
9944
  off: "off";
9598
9945
  }>;
9599
9946
  status: z.ZodEnum<{
9947
+ unavailable: "unavailable";
9600
9948
  failed: "failed";
9601
9949
  rendered: "rendered";
9602
9950
  "not-requested": "not-requested";
9603
9951
  "not-needed": "not-needed";
9604
9952
  skipped: "skipped";
9605
- unavailable: "unavailable";
9606
9953
  }>;
9607
9954
  raw: z.ZodOptional<z.ZodObject<{
9608
9955
  source: z.ZodEnum<{
@@ -9882,6 +10229,34 @@ declare const crawlerSchemas: {
9882
10229
  mainContentHash: z.ZodOptional<z.ZodString>;
9883
10230
  textRatio: z.ZodOptional<z.ZodNumber>;
9884
10231
  contentSample: z.ZodOptional<z.ZodString>;
10232
+ contentSketch: z.ZodOptional<z.ZodObject<{
10233
+ version: z.ZodLiteral<1>;
10234
+ wordCount: z.ZodNumber;
10235
+ shingleSize: z.ZodNumber;
10236
+ sampledShingles: z.ZodNumber;
10237
+ hashes: z.ZodArray<z.ZodString>;
10238
+ }, z.core.$strip>>;
10239
+ softAuthenticationGate: z.ZodOptional<z.ZodObject<{
10240
+ kind: z.ZodLiteral<"login-form">;
10241
+ indicators: z.ZodArray<z.ZodString>;
10242
+ formActionPath: z.ZodOptional<z.ZodString>;
10243
+ }, z.core.$strip>>;
10244
+ tabbedContent: z.ZodOptional<z.ZodObject<{
10245
+ groups: z.ZodNumber;
10246
+ panels: z.ZodNumber;
10247
+ retainedPanels: z.ZodNumber;
10248
+ truncated: z.ZodBoolean;
10249
+ panelSketches: z.ZodArray<z.ZodObject<{
10250
+ label: z.ZodOptional<z.ZodString>;
10251
+ sketch: z.ZodObject<{
10252
+ version: z.ZodLiteral<1>;
10253
+ wordCount: z.ZodNumber;
10254
+ shingleSize: z.ZodNumber;
10255
+ sampledShingles: z.ZodNumber;
10256
+ hashes: z.ZodArray<z.ZodString>;
10257
+ }, z.core.$strip>;
10258
+ }, z.core.$strip>>;
10259
+ }, z.core.$strip>>;
9885
10260
  lang: z.ZodOptional<z.ZodString>;
9886
10261
  hasViewport: z.ZodOptional<z.ZodBoolean>;
9887
10262
  isHttps: z.ZodOptional<z.ZodBoolean>;
@@ -9921,9 +10296,9 @@ declare const crawlerSchemas: {
9921
10296
  status: z.ZodOptional<z.ZodNumber>;
9922
10297
  error: z.ZodOptional<z.ZodString>;
9923
10298
  state: z.ZodOptional<z.ZodEnum<{
10299
+ unavailable: "unavailable";
9924
10300
  available: "available";
9925
10301
  "rate-limited": "rate-limited";
9926
- unavailable: "unavailable";
9927
10302
  "confirmed-broken": "confirmed-broken";
9928
10303
  transient: "transient";
9929
10304
  "provider-blocked": "provider-blocked";
@@ -10147,8 +10522,8 @@ declare const crawlerSchemas: {
10147
10522
  searchConsole: z.ZodObject<{
10148
10523
  status: z.ZodEnum<{
10149
10524
  partial: "partial";
10150
- skipped: "skipped";
10151
10525
  unavailable: "unavailable";
10526
+ skipped: "skipped";
10152
10527
  joined: "joined";
10153
10528
  none: "none";
10154
10529
  }>;
@@ -10172,8 +10547,8 @@ declare const crawlerSchemas: {
10172
10547
  analytics: z.ZodObject<{
10173
10548
  status: z.ZodEnum<{
10174
10549
  partial: "partial";
10175
- skipped: "skipped";
10176
10550
  unavailable: "unavailable";
10551
+ skipped: "skipped";
10177
10552
  joined: "joined";
10178
10553
  none: "none";
10179
10554
  }>;
@@ -10318,9 +10693,9 @@ declare const crawlerSchemas: {
10318
10693
  deferredUrls: z.ZodNumber;
10319
10694
  limit: z.ZodNumber;
10320
10695
  outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
10696
+ unavailable: "unavailable";
10321
10697
  available: "available";
10322
10698
  "rate-limited": "rate-limited";
10323
- unavailable: "unavailable";
10324
10699
  "confirmed-broken": "confirmed-broken";
10325
10700
  transient: "transient";
10326
10701
  "provider-blocked": "provider-blocked";
@@ -10328,6 +10703,25 @@ declare const crawlerSchemas: {
10328
10703
  }>, z.ZodNumber>>;
10329
10704
  warnings: z.ZodArray<z.ZodString>;
10330
10705
  }, z.core.$strip>>;
10706
+ siteChecks: z.ZodOptional<z.ZodObject<{
10707
+ soft404: z.ZodObject<{
10708
+ status: z.ZodEnum<{
10709
+ unknown: "unknown";
10710
+ warning: "warning";
10711
+ pass: "pass";
10712
+ }>;
10713
+ probes: z.ZodArray<z.ZodObject<{
10714
+ url: z.ZodString;
10715
+ status: z.ZodOptional<z.ZodNumber>;
10716
+ finalUrl: z.ZodOptional<z.ZodString>;
10717
+ redirected: z.ZodOptional<z.ZodBoolean>;
10718
+ accessBlocked: z.ZodOptional<z.ZodBoolean>;
10719
+ error: z.ZodOptional<z.ZodString>;
10720
+ }, z.core.$strip>>;
10721
+ probeLimit: z.ZodNumber;
10722
+ complete: z.ZodBoolean;
10723
+ }, z.core.$strip>;
10724
+ }, z.core.$strip>>;
10331
10725
  agentDiscovery: z.ZodOptional<z.ZodObject<{
10332
10726
  profile: z.ZodLiteral<"content">;
10333
10727
  profileApplicability: z.ZodRecord<z.ZodEnum<{
@@ -10364,6 +10758,8 @@ declare const crawlerSchemas: {
10364
10758
  status: z.ZodOptional<z.ZodNumber>;
10365
10759
  contentType: z.ZodOptional<z.ZodString>;
10366
10760
  bytes: z.ZodOptional<z.ZodNumber>;
10761
+ characters: z.ZodOptional<z.ZodNumber>;
10762
+ estimatedTokens: z.ZodOptional<z.ZodNumber>;
10367
10763
  sha256: z.ZodOptional<z.ZodString>;
10368
10764
  canonicalUrl: z.ZodOptional<z.ZodString>;
10369
10765
  alternateUrl: z.ZodOptional<z.ZodString>;
@@ -10378,6 +10774,8 @@ declare const crawlerSchemas: {
10378
10774
  status: z.ZodOptional<z.ZodNumber>;
10379
10775
  contentType: z.ZodOptional<z.ZodString>;
10380
10776
  bytes: z.ZodOptional<z.ZodNumber>;
10777
+ characters: z.ZodOptional<z.ZodNumber>;
10778
+ estimatedTokens: z.ZodOptional<z.ZodNumber>;
10381
10779
  sha256: z.ZodOptional<z.ZodString>;
10382
10780
  canonicalUrl: z.ZodOptional<z.ZodString>;
10383
10781
  alternateUrl: z.ZodOptional<z.ZodString>;
@@ -10392,6 +10790,8 @@ declare const crawlerSchemas: {
10392
10790
  status: z.ZodOptional<z.ZodNumber>;
10393
10791
  contentType: z.ZodOptional<z.ZodString>;
10394
10792
  bytes: z.ZodOptional<z.ZodNumber>;
10793
+ characters: z.ZodOptional<z.ZodNumber>;
10794
+ estimatedTokens: z.ZodOptional<z.ZodNumber>;
10395
10795
  sha256: z.ZodOptional<z.ZodString>;
10396
10796
  canonicalUrl: z.ZodOptional<z.ZodString>;
10397
10797
  alternateUrl: z.ZodOptional<z.ZodString>;
@@ -10420,6 +10820,14 @@ declare const crawlerSchemas: {
10420
10820
  wordRetentionRatio: z.ZodNullable<z.ZodNumber>;
10421
10821
  introductoryCopyRetained: z.ZodNullable<z.ZodBoolean>;
10422
10822
  navigationOnly: z.ZodBoolean;
10823
+ contentSketchCoverage: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
10824
+ tabbedContent: z.ZodOptional<z.ZodObject<{
10825
+ detectedPanels: z.ZodNumber;
10826
+ evaluatedPanels: z.ZodNumber;
10827
+ retainedPanels: z.ZodNumber;
10828
+ missingPanels: z.ZodNumber;
10829
+ complete: z.ZodNullable<z.ZodBoolean>;
10830
+ }, z.core.$strip>>;
10423
10831
  }, z.core.$strip>>;
10424
10832
  }, z.core.$strip>>;
10425
10833
  }, z.core.$strip>;
@@ -10438,6 +10846,11 @@ declare const crawlerSchemas: {
10438
10846
  missingHtmlRoutes: z.ZodArray<z.ZodString>;
10439
10847
  missingMarkdownRoutes: z.ZodArray<z.ZodString>;
10440
10848
  orphanMarkdownRoutes: z.ZodArray<z.ZodString>;
10849
+ comparisonStatus: z.ZodOptional<z.ZodEnum<{
10850
+ partial: "partial";
10851
+ complete: "complete";
10852
+ "not-applicable": "not-applicable";
10853
+ }>>;
10441
10854
  error: z.ZodOptional<z.ZodString>;
10442
10855
  }, z.core.$strip>;
10443
10856
  agentSkills: z.ZodObject<{
@@ -10975,12 +11388,12 @@ declare const crawlerSchemas: {
10975
11388
  off: "off";
10976
11389
  }>;
10977
11390
  status: z.ZodEnum<{
11391
+ unavailable: "unavailable";
10978
11392
  failed: "failed";
10979
11393
  rendered: "rendered";
10980
11394
  "not-requested": "not-requested";
10981
11395
  "not-needed": "not-needed";
10982
11396
  skipped: "skipped";
10983
- unavailable: "unavailable";
10984
11397
  }>;
10985
11398
  raw: z.ZodOptional<z.ZodObject<{
10986
11399
  source: z.ZodEnum<{
@@ -11260,6 +11673,34 @@ declare const crawlerSchemas: {
11260
11673
  mainContentHash: z.ZodOptional<z.ZodString>;
11261
11674
  textRatio: z.ZodOptional<z.ZodNumber>;
11262
11675
  contentSample: z.ZodOptional<z.ZodString>;
11676
+ contentSketch: z.ZodOptional<z.ZodObject<{
11677
+ version: z.ZodLiteral<1>;
11678
+ wordCount: z.ZodNumber;
11679
+ shingleSize: z.ZodNumber;
11680
+ sampledShingles: z.ZodNumber;
11681
+ hashes: z.ZodArray<z.ZodString>;
11682
+ }, z.core.$strip>>;
11683
+ softAuthenticationGate: z.ZodOptional<z.ZodObject<{
11684
+ kind: z.ZodLiteral<"login-form">;
11685
+ indicators: z.ZodArray<z.ZodString>;
11686
+ formActionPath: z.ZodOptional<z.ZodString>;
11687
+ }, z.core.$strip>>;
11688
+ tabbedContent: z.ZodOptional<z.ZodObject<{
11689
+ groups: z.ZodNumber;
11690
+ panels: z.ZodNumber;
11691
+ retainedPanels: z.ZodNumber;
11692
+ truncated: z.ZodBoolean;
11693
+ panelSketches: z.ZodArray<z.ZodObject<{
11694
+ label: z.ZodOptional<z.ZodString>;
11695
+ sketch: z.ZodObject<{
11696
+ version: z.ZodLiteral<1>;
11697
+ wordCount: z.ZodNumber;
11698
+ shingleSize: z.ZodNumber;
11699
+ sampledShingles: z.ZodNumber;
11700
+ hashes: z.ZodArray<z.ZodString>;
11701
+ }, z.core.$strip>;
11702
+ }, z.core.$strip>>;
11703
+ }, z.core.$strip>>;
11263
11704
  lang: z.ZodOptional<z.ZodString>;
11264
11705
  hasViewport: z.ZodOptional<z.ZodBoolean>;
11265
11706
  isHttps: z.ZodOptional<z.ZodBoolean>;
@@ -11299,9 +11740,9 @@ declare const crawlerSchemas: {
11299
11740
  status: z.ZodOptional<z.ZodNumber>;
11300
11741
  error: z.ZodOptional<z.ZodString>;
11301
11742
  state: z.ZodOptional<z.ZodEnum<{
11743
+ unavailable: "unavailable";
11302
11744
  available: "available";
11303
11745
  "rate-limited": "rate-limited";
11304
- unavailable: "unavailable";
11305
11746
  "confirmed-broken": "confirmed-broken";
11306
11747
  transient: "transient";
11307
11748
  "provider-blocked": "provider-blocked";
@@ -11525,8 +11966,8 @@ declare const crawlerSchemas: {
11525
11966
  searchConsole: z.ZodObject<{
11526
11967
  status: z.ZodEnum<{
11527
11968
  partial: "partial";
11528
- skipped: "skipped";
11529
11969
  unavailable: "unavailable";
11970
+ skipped: "skipped";
11530
11971
  joined: "joined";
11531
11972
  none: "none";
11532
11973
  }>;
@@ -11550,8 +11991,8 @@ declare const crawlerSchemas: {
11550
11991
  analytics: z.ZodObject<{
11551
11992
  status: z.ZodEnum<{
11552
11993
  partial: "partial";
11553
- skipped: "skipped";
11554
11994
  unavailable: "unavailable";
11995
+ skipped: "skipped";
11555
11996
  joined: "joined";
11556
11997
  none: "none";
11557
11998
  }>;
@@ -11696,9 +12137,9 @@ declare const crawlerSchemas: {
11696
12137
  deferredUrls: z.ZodNumber;
11697
12138
  limit: z.ZodNumber;
11698
12139
  outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
12140
+ unavailable: "unavailable";
11699
12141
  available: "available";
11700
12142
  "rate-limited": "rate-limited";
11701
- unavailable: "unavailable";
11702
12143
  "confirmed-broken": "confirmed-broken";
11703
12144
  transient: "transient";
11704
12145
  "provider-blocked": "provider-blocked";
@@ -11706,6 +12147,25 @@ declare const crawlerSchemas: {
11706
12147
  }>, z.ZodNumber>>;
11707
12148
  warnings: z.ZodArray<z.ZodString>;
11708
12149
  }, z.core.$strip>>;
12150
+ siteChecks: z.ZodOptional<z.ZodObject<{
12151
+ soft404: z.ZodObject<{
12152
+ status: z.ZodEnum<{
12153
+ unknown: "unknown";
12154
+ warning: "warning";
12155
+ pass: "pass";
12156
+ }>;
12157
+ probes: z.ZodArray<z.ZodObject<{
12158
+ url: z.ZodString;
12159
+ status: z.ZodOptional<z.ZodNumber>;
12160
+ finalUrl: z.ZodOptional<z.ZodString>;
12161
+ redirected: z.ZodOptional<z.ZodBoolean>;
12162
+ accessBlocked: z.ZodOptional<z.ZodBoolean>;
12163
+ error: z.ZodOptional<z.ZodString>;
12164
+ }, z.core.$strip>>;
12165
+ probeLimit: z.ZodNumber;
12166
+ complete: z.ZodBoolean;
12167
+ }, z.core.$strip>;
12168
+ }, z.core.$strip>>;
11709
12169
  agentDiscovery: z.ZodOptional<z.ZodObject<{
11710
12170
  profile: z.ZodLiteral<"content">;
11711
12171
  profileApplicability: z.ZodRecord<z.ZodEnum<{
@@ -11742,6 +12202,8 @@ declare const crawlerSchemas: {
11742
12202
  status: z.ZodOptional<z.ZodNumber>;
11743
12203
  contentType: z.ZodOptional<z.ZodString>;
11744
12204
  bytes: z.ZodOptional<z.ZodNumber>;
12205
+ characters: z.ZodOptional<z.ZodNumber>;
12206
+ estimatedTokens: z.ZodOptional<z.ZodNumber>;
11745
12207
  sha256: z.ZodOptional<z.ZodString>;
11746
12208
  canonicalUrl: z.ZodOptional<z.ZodString>;
11747
12209
  alternateUrl: z.ZodOptional<z.ZodString>;
@@ -11756,6 +12218,8 @@ declare const crawlerSchemas: {
11756
12218
  status: z.ZodOptional<z.ZodNumber>;
11757
12219
  contentType: z.ZodOptional<z.ZodString>;
11758
12220
  bytes: z.ZodOptional<z.ZodNumber>;
12221
+ characters: z.ZodOptional<z.ZodNumber>;
12222
+ estimatedTokens: z.ZodOptional<z.ZodNumber>;
11759
12223
  sha256: z.ZodOptional<z.ZodString>;
11760
12224
  canonicalUrl: z.ZodOptional<z.ZodString>;
11761
12225
  alternateUrl: z.ZodOptional<z.ZodString>;
@@ -11770,6 +12234,8 @@ declare const crawlerSchemas: {
11770
12234
  status: z.ZodOptional<z.ZodNumber>;
11771
12235
  contentType: z.ZodOptional<z.ZodString>;
11772
12236
  bytes: z.ZodOptional<z.ZodNumber>;
12237
+ characters: z.ZodOptional<z.ZodNumber>;
12238
+ estimatedTokens: z.ZodOptional<z.ZodNumber>;
11773
12239
  sha256: z.ZodOptional<z.ZodString>;
11774
12240
  canonicalUrl: z.ZodOptional<z.ZodString>;
11775
12241
  alternateUrl: z.ZodOptional<z.ZodString>;
@@ -11798,6 +12264,14 @@ declare const crawlerSchemas: {
11798
12264
  wordRetentionRatio: z.ZodNullable<z.ZodNumber>;
11799
12265
  introductoryCopyRetained: z.ZodNullable<z.ZodBoolean>;
11800
12266
  navigationOnly: z.ZodBoolean;
12267
+ contentSketchCoverage: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
12268
+ tabbedContent: z.ZodOptional<z.ZodObject<{
12269
+ detectedPanels: z.ZodNumber;
12270
+ evaluatedPanels: z.ZodNumber;
12271
+ retainedPanels: z.ZodNumber;
12272
+ missingPanels: z.ZodNumber;
12273
+ complete: z.ZodNullable<z.ZodBoolean>;
12274
+ }, z.core.$strip>>;
11801
12275
  }, z.core.$strip>>;
11802
12276
  }, z.core.$strip>>;
11803
12277
  }, z.core.$strip>;
@@ -11816,6 +12290,11 @@ declare const crawlerSchemas: {
11816
12290
  missingHtmlRoutes: z.ZodArray<z.ZodString>;
11817
12291
  missingMarkdownRoutes: z.ZodArray<z.ZodString>;
11818
12292
  orphanMarkdownRoutes: z.ZodArray<z.ZodString>;
12293
+ comparisonStatus: z.ZodOptional<z.ZodEnum<{
12294
+ partial: "partial";
12295
+ complete: "complete";
12296
+ "not-applicable": "not-applicable";
12297
+ }>>;
11819
12298
  error: z.ZodOptional<z.ZodString>;
11820
12299
  }, z.core.$strip>;
11821
12300
  agentSkills: z.ZodObject<{
@@ -12353,12 +12832,12 @@ declare const crawlerSchemas: {
12353
12832
  off: "off";
12354
12833
  }>;
12355
12834
  status: z.ZodEnum<{
12835
+ unavailable: "unavailable";
12356
12836
  failed: "failed";
12357
12837
  rendered: "rendered";
12358
12838
  "not-requested": "not-requested";
12359
12839
  "not-needed": "not-needed";
12360
12840
  skipped: "skipped";
12361
- unavailable: "unavailable";
12362
12841
  }>;
12363
12842
  raw: z.ZodOptional<z.ZodObject<{
12364
12843
  source: z.ZodEnum<{
@@ -12638,6 +13117,34 @@ declare const crawlerSchemas: {
12638
13117
  mainContentHash: z.ZodOptional<z.ZodString>;
12639
13118
  textRatio: z.ZodOptional<z.ZodNumber>;
12640
13119
  contentSample: z.ZodOptional<z.ZodString>;
13120
+ contentSketch: z.ZodOptional<z.ZodObject<{
13121
+ version: z.ZodLiteral<1>;
13122
+ wordCount: z.ZodNumber;
13123
+ shingleSize: z.ZodNumber;
13124
+ sampledShingles: z.ZodNumber;
13125
+ hashes: z.ZodArray<z.ZodString>;
13126
+ }, z.core.$strip>>;
13127
+ softAuthenticationGate: z.ZodOptional<z.ZodObject<{
13128
+ kind: z.ZodLiteral<"login-form">;
13129
+ indicators: z.ZodArray<z.ZodString>;
13130
+ formActionPath: z.ZodOptional<z.ZodString>;
13131
+ }, z.core.$strip>>;
13132
+ tabbedContent: z.ZodOptional<z.ZodObject<{
13133
+ groups: z.ZodNumber;
13134
+ panels: z.ZodNumber;
13135
+ retainedPanels: z.ZodNumber;
13136
+ truncated: z.ZodBoolean;
13137
+ panelSketches: z.ZodArray<z.ZodObject<{
13138
+ label: z.ZodOptional<z.ZodString>;
13139
+ sketch: z.ZodObject<{
13140
+ version: z.ZodLiteral<1>;
13141
+ wordCount: z.ZodNumber;
13142
+ shingleSize: z.ZodNumber;
13143
+ sampledShingles: z.ZodNumber;
13144
+ hashes: z.ZodArray<z.ZodString>;
13145
+ }, z.core.$strip>;
13146
+ }, z.core.$strip>>;
13147
+ }, z.core.$strip>>;
12641
13148
  lang: z.ZodOptional<z.ZodString>;
12642
13149
  hasViewport: z.ZodOptional<z.ZodBoolean>;
12643
13150
  isHttps: z.ZodOptional<z.ZodBoolean>;
@@ -12677,9 +13184,9 @@ declare const crawlerSchemas: {
12677
13184
  status: z.ZodOptional<z.ZodNumber>;
12678
13185
  error: z.ZodOptional<z.ZodString>;
12679
13186
  state: z.ZodOptional<z.ZodEnum<{
13187
+ unavailable: "unavailable";
12680
13188
  available: "available";
12681
13189
  "rate-limited": "rate-limited";
12682
- unavailable: "unavailable";
12683
13190
  "confirmed-broken": "confirmed-broken";
12684
13191
  transient: "transient";
12685
13192
  "provider-blocked": "provider-blocked";
@@ -12903,8 +13410,8 @@ declare const crawlerSchemas: {
12903
13410
  searchConsole: z.ZodObject<{
12904
13411
  status: z.ZodEnum<{
12905
13412
  partial: "partial";
12906
- skipped: "skipped";
12907
13413
  unavailable: "unavailable";
13414
+ skipped: "skipped";
12908
13415
  joined: "joined";
12909
13416
  none: "none";
12910
13417
  }>;
@@ -12928,8 +13435,8 @@ declare const crawlerSchemas: {
12928
13435
  analytics: z.ZodObject<{
12929
13436
  status: z.ZodEnum<{
12930
13437
  partial: "partial";
12931
- skipped: "skipped";
12932
13438
  unavailable: "unavailable";
13439
+ skipped: "skipped";
12933
13440
  joined: "joined";
12934
13441
  none: "none";
12935
13442
  }>;
@@ -13074,9 +13581,9 @@ declare const crawlerSchemas: {
13074
13581
  deferredUrls: z.ZodNumber;
13075
13582
  limit: z.ZodNumber;
13076
13583
  outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
13584
+ unavailable: "unavailable";
13077
13585
  available: "available";
13078
13586
  "rate-limited": "rate-limited";
13079
- unavailable: "unavailable";
13080
13587
  "confirmed-broken": "confirmed-broken";
13081
13588
  transient: "transient";
13082
13589
  "provider-blocked": "provider-blocked";
@@ -13084,6 +13591,25 @@ declare const crawlerSchemas: {
13084
13591
  }>, z.ZodNumber>>;
13085
13592
  warnings: z.ZodArray<z.ZodString>;
13086
13593
  }, z.core.$strip>>;
13594
+ siteChecks: z.ZodOptional<z.ZodObject<{
13595
+ soft404: z.ZodObject<{
13596
+ status: z.ZodEnum<{
13597
+ unknown: "unknown";
13598
+ warning: "warning";
13599
+ pass: "pass";
13600
+ }>;
13601
+ probes: z.ZodArray<z.ZodObject<{
13602
+ url: z.ZodString;
13603
+ status: z.ZodOptional<z.ZodNumber>;
13604
+ finalUrl: z.ZodOptional<z.ZodString>;
13605
+ redirected: z.ZodOptional<z.ZodBoolean>;
13606
+ accessBlocked: z.ZodOptional<z.ZodBoolean>;
13607
+ error: z.ZodOptional<z.ZodString>;
13608
+ }, z.core.$strip>>;
13609
+ probeLimit: z.ZodNumber;
13610
+ complete: z.ZodBoolean;
13611
+ }, z.core.$strip>;
13612
+ }, z.core.$strip>>;
13087
13613
  agentDiscovery: z.ZodOptional<z.ZodObject<{
13088
13614
  profile: z.ZodLiteral<"content">;
13089
13615
  profileApplicability: z.ZodRecord<z.ZodEnum<{
@@ -13120,6 +13646,8 @@ declare const crawlerSchemas: {
13120
13646
  status: z.ZodOptional<z.ZodNumber>;
13121
13647
  contentType: z.ZodOptional<z.ZodString>;
13122
13648
  bytes: z.ZodOptional<z.ZodNumber>;
13649
+ characters: z.ZodOptional<z.ZodNumber>;
13650
+ estimatedTokens: z.ZodOptional<z.ZodNumber>;
13123
13651
  sha256: z.ZodOptional<z.ZodString>;
13124
13652
  canonicalUrl: z.ZodOptional<z.ZodString>;
13125
13653
  alternateUrl: z.ZodOptional<z.ZodString>;
@@ -13134,6 +13662,8 @@ declare const crawlerSchemas: {
13134
13662
  status: z.ZodOptional<z.ZodNumber>;
13135
13663
  contentType: z.ZodOptional<z.ZodString>;
13136
13664
  bytes: z.ZodOptional<z.ZodNumber>;
13665
+ characters: z.ZodOptional<z.ZodNumber>;
13666
+ estimatedTokens: z.ZodOptional<z.ZodNumber>;
13137
13667
  sha256: z.ZodOptional<z.ZodString>;
13138
13668
  canonicalUrl: z.ZodOptional<z.ZodString>;
13139
13669
  alternateUrl: z.ZodOptional<z.ZodString>;
@@ -13148,6 +13678,8 @@ declare const crawlerSchemas: {
13148
13678
  status: z.ZodOptional<z.ZodNumber>;
13149
13679
  contentType: z.ZodOptional<z.ZodString>;
13150
13680
  bytes: z.ZodOptional<z.ZodNumber>;
13681
+ characters: z.ZodOptional<z.ZodNumber>;
13682
+ estimatedTokens: z.ZodOptional<z.ZodNumber>;
13151
13683
  sha256: z.ZodOptional<z.ZodString>;
13152
13684
  canonicalUrl: z.ZodOptional<z.ZodString>;
13153
13685
  alternateUrl: z.ZodOptional<z.ZodString>;
@@ -13176,6 +13708,14 @@ declare const crawlerSchemas: {
13176
13708
  wordRetentionRatio: z.ZodNullable<z.ZodNumber>;
13177
13709
  introductoryCopyRetained: z.ZodNullable<z.ZodBoolean>;
13178
13710
  navigationOnly: z.ZodBoolean;
13711
+ contentSketchCoverage: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
13712
+ tabbedContent: z.ZodOptional<z.ZodObject<{
13713
+ detectedPanels: z.ZodNumber;
13714
+ evaluatedPanels: z.ZodNumber;
13715
+ retainedPanels: z.ZodNumber;
13716
+ missingPanels: z.ZodNumber;
13717
+ complete: z.ZodNullable<z.ZodBoolean>;
13718
+ }, z.core.$strip>>;
13179
13719
  }, z.core.$strip>>;
13180
13720
  }, z.core.$strip>>;
13181
13721
  }, z.core.$strip>;
@@ -13194,6 +13734,11 @@ declare const crawlerSchemas: {
13194
13734
  missingHtmlRoutes: z.ZodArray<z.ZodString>;
13195
13735
  missingMarkdownRoutes: z.ZodArray<z.ZodString>;
13196
13736
  orphanMarkdownRoutes: z.ZodArray<z.ZodString>;
13737
+ comparisonStatus: z.ZodOptional<z.ZodEnum<{
13738
+ partial: "partial";
13739
+ complete: "complete";
13740
+ "not-applicable": "not-applicable";
13741
+ }>>;
13197
13742
  error: z.ZodOptional<z.ZodString>;
13198
13743
  }, z.core.$strip>;
13199
13744
  agentSkills: z.ZodObject<{
@@ -13522,8 +14067,8 @@ declare const crawlerSchemas: {
13522
14067
  count: z.ZodNumber;
13523
14068
  sampleUrls: z.ZodArray<z.ZodString>;
13524
14069
  recommendation: z.ZodEnum<{
13525
- fix: "fix";
13526
14070
  review: "review";
14071
+ fix: "fix";
13527
14072
  }>;
13528
14073
  score: z.ZodNumber;
13529
14074
  scoreFactors: z.ZodObject<{
@@ -13579,8 +14124,8 @@ declare const crawlerSchemas: {
13579
14124
  medium: "medium";
13580
14125
  }>;
13581
14126
  recommendation: z.ZodEnum<{
13582
- fix: "fix";
13583
14127
  review: "review";
14128
+ fix: "fix";
13584
14129
  }>;
13585
14130
  whyItMatters: z.ZodString;
13586
14131
  howToFix: z.ZodString;
@@ -13865,12 +14410,12 @@ declare const crawlerSchemas: {
13865
14410
  off: "off";
13866
14411
  }>;
13867
14412
  status: z.ZodEnum<{
14413
+ unavailable: "unavailable";
13868
14414
  failed: "failed";
13869
14415
  rendered: "rendered";
13870
14416
  "not-requested": "not-requested";
13871
14417
  "not-needed": "not-needed";
13872
14418
  skipped: "skipped";
13873
- unavailable: "unavailable";
13874
14419
  }>;
13875
14420
  raw: z.ZodOptional<z.ZodObject<{
13876
14421
  source: z.ZodEnum<{
@@ -14150,6 +14695,34 @@ declare const crawlerSchemas: {
14150
14695
  mainContentHash: z.ZodOptional<z.ZodString>;
14151
14696
  textRatio: z.ZodOptional<z.ZodNumber>;
14152
14697
  contentSample: z.ZodOptional<z.ZodString>;
14698
+ contentSketch: z.ZodOptional<z.ZodObject<{
14699
+ version: z.ZodLiteral<1>;
14700
+ wordCount: z.ZodNumber;
14701
+ shingleSize: z.ZodNumber;
14702
+ sampledShingles: z.ZodNumber;
14703
+ hashes: z.ZodArray<z.ZodString>;
14704
+ }, z.core.$strip>>;
14705
+ softAuthenticationGate: z.ZodOptional<z.ZodObject<{
14706
+ kind: z.ZodLiteral<"login-form">;
14707
+ indicators: z.ZodArray<z.ZodString>;
14708
+ formActionPath: z.ZodOptional<z.ZodString>;
14709
+ }, z.core.$strip>>;
14710
+ tabbedContent: z.ZodOptional<z.ZodObject<{
14711
+ groups: z.ZodNumber;
14712
+ panels: z.ZodNumber;
14713
+ retainedPanels: z.ZodNumber;
14714
+ truncated: z.ZodBoolean;
14715
+ panelSketches: z.ZodArray<z.ZodObject<{
14716
+ label: z.ZodOptional<z.ZodString>;
14717
+ sketch: z.ZodObject<{
14718
+ version: z.ZodLiteral<1>;
14719
+ wordCount: z.ZodNumber;
14720
+ shingleSize: z.ZodNumber;
14721
+ sampledShingles: z.ZodNumber;
14722
+ hashes: z.ZodArray<z.ZodString>;
14723
+ }, z.core.$strip>;
14724
+ }, z.core.$strip>>;
14725
+ }, z.core.$strip>>;
14153
14726
  lang: z.ZodOptional<z.ZodString>;
14154
14727
  hasViewport: z.ZodOptional<z.ZodBoolean>;
14155
14728
  isHttps: z.ZodOptional<z.ZodBoolean>;
@@ -14189,9 +14762,9 @@ declare const crawlerSchemas: {
14189
14762
  status: z.ZodOptional<z.ZodNumber>;
14190
14763
  error: z.ZodOptional<z.ZodString>;
14191
14764
  state: z.ZodOptional<z.ZodEnum<{
14765
+ unavailable: "unavailable";
14192
14766
  available: "available";
14193
14767
  "rate-limited": "rate-limited";
14194
- unavailable: "unavailable";
14195
14768
  "confirmed-broken": "confirmed-broken";
14196
14769
  transient: "transient";
14197
14770
  "provider-blocked": "provider-blocked";
@@ -14616,12 +15189,12 @@ declare const crawlerJsonSchemas: {
14616
15189
  off: "off";
14617
15190
  }>;
14618
15191
  status: z.ZodEnum<{
15192
+ unavailable: "unavailable";
14619
15193
  failed: "failed";
14620
15194
  rendered: "rendered";
14621
15195
  "not-requested": "not-requested";
14622
15196
  "not-needed": "not-needed";
14623
15197
  skipped: "skipped";
14624
- unavailable: "unavailable";
14625
15198
  }>;
14626
15199
  raw: z.ZodOptional<z.ZodObject<{
14627
15200
  source: z.ZodEnum<{
@@ -14901,6 +15474,34 @@ declare const crawlerJsonSchemas: {
14901
15474
  mainContentHash: z.ZodOptional<z.ZodString>;
14902
15475
  textRatio: z.ZodOptional<z.ZodNumber>;
14903
15476
  contentSample: z.ZodOptional<z.ZodString>;
15477
+ contentSketch: z.ZodOptional<z.ZodObject<{
15478
+ version: z.ZodLiteral<1>;
15479
+ wordCount: z.ZodNumber;
15480
+ shingleSize: z.ZodNumber;
15481
+ sampledShingles: z.ZodNumber;
15482
+ hashes: z.ZodArray<z.ZodString>;
15483
+ }, z.core.$strip>>;
15484
+ softAuthenticationGate: z.ZodOptional<z.ZodObject<{
15485
+ kind: z.ZodLiteral<"login-form">;
15486
+ indicators: z.ZodArray<z.ZodString>;
15487
+ formActionPath: z.ZodOptional<z.ZodString>;
15488
+ }, z.core.$strip>>;
15489
+ tabbedContent: z.ZodOptional<z.ZodObject<{
15490
+ groups: z.ZodNumber;
15491
+ panels: z.ZodNumber;
15492
+ retainedPanels: z.ZodNumber;
15493
+ truncated: z.ZodBoolean;
15494
+ panelSketches: z.ZodArray<z.ZodObject<{
15495
+ label: z.ZodOptional<z.ZodString>;
15496
+ sketch: z.ZodObject<{
15497
+ version: z.ZodLiteral<1>;
15498
+ wordCount: z.ZodNumber;
15499
+ shingleSize: z.ZodNumber;
15500
+ sampledShingles: z.ZodNumber;
15501
+ hashes: z.ZodArray<z.ZodString>;
15502
+ }, z.core.$strip>;
15503
+ }, z.core.$strip>>;
15504
+ }, z.core.$strip>>;
14904
15505
  lang: z.ZodOptional<z.ZodString>;
14905
15506
  hasViewport: z.ZodOptional<z.ZodBoolean>;
14906
15507
  isHttps: z.ZodOptional<z.ZodBoolean>;
@@ -14940,9 +15541,9 @@ declare const crawlerJsonSchemas: {
14940
15541
  status: z.ZodOptional<z.ZodNumber>;
14941
15542
  error: z.ZodOptional<z.ZodString>;
14942
15543
  state: z.ZodOptional<z.ZodEnum<{
15544
+ unavailable: "unavailable";
14943
15545
  available: "available";
14944
15546
  "rate-limited": "rate-limited";
14945
- unavailable: "unavailable";
14946
15547
  "confirmed-broken": "confirmed-broken";
14947
15548
  transient: "transient";
14948
15549
  "provider-blocked": "provider-blocked";
@@ -15166,8 +15767,8 @@ declare const crawlerJsonSchemas: {
15166
15767
  searchConsole: z.ZodObject<{
15167
15768
  status: z.ZodEnum<{
15168
15769
  partial: "partial";
15169
- skipped: "skipped";
15170
15770
  unavailable: "unavailable";
15771
+ skipped: "skipped";
15171
15772
  joined: "joined";
15172
15773
  none: "none";
15173
15774
  }>;
@@ -15191,8 +15792,8 @@ declare const crawlerJsonSchemas: {
15191
15792
  analytics: z.ZodObject<{
15192
15793
  status: z.ZodEnum<{
15193
15794
  partial: "partial";
15194
- skipped: "skipped";
15195
15795
  unavailable: "unavailable";
15796
+ skipped: "skipped";
15196
15797
  joined: "joined";
15197
15798
  none: "none";
15198
15799
  }>;
@@ -15337,9 +15938,9 @@ declare const crawlerJsonSchemas: {
15337
15938
  deferredUrls: z.ZodNumber;
15338
15939
  limit: z.ZodNumber;
15339
15940
  outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
15941
+ unavailable: "unavailable";
15340
15942
  available: "available";
15341
15943
  "rate-limited": "rate-limited";
15342
- unavailable: "unavailable";
15343
15944
  "confirmed-broken": "confirmed-broken";
15344
15945
  transient: "transient";
15345
15946
  "provider-blocked": "provider-blocked";
@@ -15347,6 +15948,25 @@ declare const crawlerJsonSchemas: {
15347
15948
  }>, z.ZodNumber>>;
15348
15949
  warnings: z.ZodArray<z.ZodString>;
15349
15950
  }, z.core.$strip>>;
15951
+ siteChecks: z.ZodOptional<z.ZodObject<{
15952
+ soft404: z.ZodObject<{
15953
+ status: z.ZodEnum<{
15954
+ unknown: "unknown";
15955
+ warning: "warning";
15956
+ pass: "pass";
15957
+ }>;
15958
+ probes: z.ZodArray<z.ZodObject<{
15959
+ url: z.ZodString;
15960
+ status: z.ZodOptional<z.ZodNumber>;
15961
+ finalUrl: z.ZodOptional<z.ZodString>;
15962
+ redirected: z.ZodOptional<z.ZodBoolean>;
15963
+ accessBlocked: z.ZodOptional<z.ZodBoolean>;
15964
+ error: z.ZodOptional<z.ZodString>;
15965
+ }, z.core.$strip>>;
15966
+ probeLimit: z.ZodNumber;
15967
+ complete: z.ZodBoolean;
15968
+ }, z.core.$strip>;
15969
+ }, z.core.$strip>>;
15350
15970
  agentDiscovery: z.ZodOptional<z.ZodObject<{
15351
15971
  profile: z.ZodLiteral<"content">;
15352
15972
  profileApplicability: z.ZodRecord<z.ZodEnum<{
@@ -15383,6 +16003,8 @@ declare const crawlerJsonSchemas: {
15383
16003
  status: z.ZodOptional<z.ZodNumber>;
15384
16004
  contentType: z.ZodOptional<z.ZodString>;
15385
16005
  bytes: z.ZodOptional<z.ZodNumber>;
16006
+ characters: z.ZodOptional<z.ZodNumber>;
16007
+ estimatedTokens: z.ZodOptional<z.ZodNumber>;
15386
16008
  sha256: z.ZodOptional<z.ZodString>;
15387
16009
  canonicalUrl: z.ZodOptional<z.ZodString>;
15388
16010
  alternateUrl: z.ZodOptional<z.ZodString>;
@@ -15397,6 +16019,8 @@ declare const crawlerJsonSchemas: {
15397
16019
  status: z.ZodOptional<z.ZodNumber>;
15398
16020
  contentType: z.ZodOptional<z.ZodString>;
15399
16021
  bytes: z.ZodOptional<z.ZodNumber>;
16022
+ characters: z.ZodOptional<z.ZodNumber>;
16023
+ estimatedTokens: z.ZodOptional<z.ZodNumber>;
15400
16024
  sha256: z.ZodOptional<z.ZodString>;
15401
16025
  canonicalUrl: z.ZodOptional<z.ZodString>;
15402
16026
  alternateUrl: z.ZodOptional<z.ZodString>;
@@ -15411,6 +16035,8 @@ declare const crawlerJsonSchemas: {
15411
16035
  status: z.ZodOptional<z.ZodNumber>;
15412
16036
  contentType: z.ZodOptional<z.ZodString>;
15413
16037
  bytes: z.ZodOptional<z.ZodNumber>;
16038
+ characters: z.ZodOptional<z.ZodNumber>;
16039
+ estimatedTokens: z.ZodOptional<z.ZodNumber>;
15414
16040
  sha256: z.ZodOptional<z.ZodString>;
15415
16041
  canonicalUrl: z.ZodOptional<z.ZodString>;
15416
16042
  alternateUrl: z.ZodOptional<z.ZodString>;
@@ -15439,6 +16065,14 @@ declare const crawlerJsonSchemas: {
15439
16065
  wordRetentionRatio: z.ZodNullable<z.ZodNumber>;
15440
16066
  introductoryCopyRetained: z.ZodNullable<z.ZodBoolean>;
15441
16067
  navigationOnly: z.ZodBoolean;
16068
+ contentSketchCoverage: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
16069
+ tabbedContent: z.ZodOptional<z.ZodObject<{
16070
+ detectedPanels: z.ZodNumber;
16071
+ evaluatedPanels: z.ZodNumber;
16072
+ retainedPanels: z.ZodNumber;
16073
+ missingPanels: z.ZodNumber;
16074
+ complete: z.ZodNullable<z.ZodBoolean>;
16075
+ }, z.core.$strip>>;
15442
16076
  }, z.core.$strip>>;
15443
16077
  }, z.core.$strip>>;
15444
16078
  }, z.core.$strip>;
@@ -15457,6 +16091,11 @@ declare const crawlerJsonSchemas: {
15457
16091
  missingHtmlRoutes: z.ZodArray<z.ZodString>;
15458
16092
  missingMarkdownRoutes: z.ZodArray<z.ZodString>;
15459
16093
  orphanMarkdownRoutes: z.ZodArray<z.ZodString>;
16094
+ comparisonStatus: z.ZodOptional<z.ZodEnum<{
16095
+ partial: "partial";
16096
+ complete: "complete";
16097
+ "not-applicable": "not-applicable";
16098
+ }>>;
15460
16099
  error: z.ZodOptional<z.ZodString>;
15461
16100
  }, z.core.$strip>;
15462
16101
  agentSkills: z.ZodObject<{
@@ -15994,12 +16633,12 @@ declare const crawlerJsonSchemas: {
15994
16633
  off: "off";
15995
16634
  }>;
15996
16635
  status: z.ZodEnum<{
16636
+ unavailable: "unavailable";
15997
16637
  failed: "failed";
15998
16638
  rendered: "rendered";
15999
16639
  "not-requested": "not-requested";
16000
16640
  "not-needed": "not-needed";
16001
16641
  skipped: "skipped";
16002
- unavailable: "unavailable";
16003
16642
  }>;
16004
16643
  raw: z.ZodOptional<z.ZodObject<{
16005
16644
  source: z.ZodEnum<{
@@ -16279,6 +16918,34 @@ declare const crawlerJsonSchemas: {
16279
16918
  mainContentHash: z.ZodOptional<z.ZodString>;
16280
16919
  textRatio: z.ZodOptional<z.ZodNumber>;
16281
16920
  contentSample: z.ZodOptional<z.ZodString>;
16921
+ contentSketch: z.ZodOptional<z.ZodObject<{
16922
+ version: z.ZodLiteral<1>;
16923
+ wordCount: z.ZodNumber;
16924
+ shingleSize: z.ZodNumber;
16925
+ sampledShingles: z.ZodNumber;
16926
+ hashes: z.ZodArray<z.ZodString>;
16927
+ }, z.core.$strip>>;
16928
+ softAuthenticationGate: z.ZodOptional<z.ZodObject<{
16929
+ kind: z.ZodLiteral<"login-form">;
16930
+ indicators: z.ZodArray<z.ZodString>;
16931
+ formActionPath: z.ZodOptional<z.ZodString>;
16932
+ }, z.core.$strip>>;
16933
+ tabbedContent: z.ZodOptional<z.ZodObject<{
16934
+ groups: z.ZodNumber;
16935
+ panels: z.ZodNumber;
16936
+ retainedPanels: z.ZodNumber;
16937
+ truncated: z.ZodBoolean;
16938
+ panelSketches: z.ZodArray<z.ZodObject<{
16939
+ label: z.ZodOptional<z.ZodString>;
16940
+ sketch: z.ZodObject<{
16941
+ version: z.ZodLiteral<1>;
16942
+ wordCount: z.ZodNumber;
16943
+ shingleSize: z.ZodNumber;
16944
+ sampledShingles: z.ZodNumber;
16945
+ hashes: z.ZodArray<z.ZodString>;
16946
+ }, z.core.$strip>;
16947
+ }, z.core.$strip>>;
16948
+ }, z.core.$strip>>;
16282
16949
  lang: z.ZodOptional<z.ZodString>;
16283
16950
  hasViewport: z.ZodOptional<z.ZodBoolean>;
16284
16951
  isHttps: z.ZodOptional<z.ZodBoolean>;
@@ -16318,9 +16985,9 @@ declare const crawlerJsonSchemas: {
16318
16985
  status: z.ZodOptional<z.ZodNumber>;
16319
16986
  error: z.ZodOptional<z.ZodString>;
16320
16987
  state: z.ZodOptional<z.ZodEnum<{
16988
+ unavailable: "unavailable";
16321
16989
  available: "available";
16322
16990
  "rate-limited": "rate-limited";
16323
- unavailable: "unavailable";
16324
16991
  "confirmed-broken": "confirmed-broken";
16325
16992
  transient: "transient";
16326
16993
  "provider-blocked": "provider-blocked";
@@ -16544,8 +17211,8 @@ declare const crawlerJsonSchemas: {
16544
17211
  searchConsole: z.ZodObject<{
16545
17212
  status: z.ZodEnum<{
16546
17213
  partial: "partial";
16547
- skipped: "skipped";
16548
17214
  unavailable: "unavailable";
17215
+ skipped: "skipped";
16549
17216
  joined: "joined";
16550
17217
  none: "none";
16551
17218
  }>;
@@ -16569,8 +17236,8 @@ declare const crawlerJsonSchemas: {
16569
17236
  analytics: z.ZodObject<{
16570
17237
  status: z.ZodEnum<{
16571
17238
  partial: "partial";
16572
- skipped: "skipped";
16573
17239
  unavailable: "unavailable";
17240
+ skipped: "skipped";
16574
17241
  joined: "joined";
16575
17242
  none: "none";
16576
17243
  }>;
@@ -16715,9 +17382,9 @@ declare const crawlerJsonSchemas: {
16715
17382
  deferredUrls: z.ZodNumber;
16716
17383
  limit: z.ZodNumber;
16717
17384
  outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
17385
+ unavailable: "unavailable";
16718
17386
  available: "available";
16719
17387
  "rate-limited": "rate-limited";
16720
- unavailable: "unavailable";
16721
17388
  "confirmed-broken": "confirmed-broken";
16722
17389
  transient: "transient";
16723
17390
  "provider-blocked": "provider-blocked";
@@ -16725,6 +17392,25 @@ declare const crawlerJsonSchemas: {
16725
17392
  }>, z.ZodNumber>>;
16726
17393
  warnings: z.ZodArray<z.ZodString>;
16727
17394
  }, z.core.$strip>>;
17395
+ siteChecks: z.ZodOptional<z.ZodObject<{
17396
+ soft404: z.ZodObject<{
17397
+ status: z.ZodEnum<{
17398
+ unknown: "unknown";
17399
+ warning: "warning";
17400
+ pass: "pass";
17401
+ }>;
17402
+ probes: z.ZodArray<z.ZodObject<{
17403
+ url: z.ZodString;
17404
+ status: z.ZodOptional<z.ZodNumber>;
17405
+ finalUrl: z.ZodOptional<z.ZodString>;
17406
+ redirected: z.ZodOptional<z.ZodBoolean>;
17407
+ accessBlocked: z.ZodOptional<z.ZodBoolean>;
17408
+ error: z.ZodOptional<z.ZodString>;
17409
+ }, z.core.$strip>>;
17410
+ probeLimit: z.ZodNumber;
17411
+ complete: z.ZodBoolean;
17412
+ }, z.core.$strip>;
17413
+ }, z.core.$strip>>;
16728
17414
  agentDiscovery: z.ZodOptional<z.ZodObject<{
16729
17415
  profile: z.ZodLiteral<"content">;
16730
17416
  profileApplicability: z.ZodRecord<z.ZodEnum<{
@@ -16761,6 +17447,8 @@ declare const crawlerJsonSchemas: {
16761
17447
  status: z.ZodOptional<z.ZodNumber>;
16762
17448
  contentType: z.ZodOptional<z.ZodString>;
16763
17449
  bytes: z.ZodOptional<z.ZodNumber>;
17450
+ characters: z.ZodOptional<z.ZodNumber>;
17451
+ estimatedTokens: z.ZodOptional<z.ZodNumber>;
16764
17452
  sha256: z.ZodOptional<z.ZodString>;
16765
17453
  canonicalUrl: z.ZodOptional<z.ZodString>;
16766
17454
  alternateUrl: z.ZodOptional<z.ZodString>;
@@ -16775,6 +17463,8 @@ declare const crawlerJsonSchemas: {
16775
17463
  status: z.ZodOptional<z.ZodNumber>;
16776
17464
  contentType: z.ZodOptional<z.ZodString>;
16777
17465
  bytes: z.ZodOptional<z.ZodNumber>;
17466
+ characters: z.ZodOptional<z.ZodNumber>;
17467
+ estimatedTokens: z.ZodOptional<z.ZodNumber>;
16778
17468
  sha256: z.ZodOptional<z.ZodString>;
16779
17469
  canonicalUrl: z.ZodOptional<z.ZodString>;
16780
17470
  alternateUrl: z.ZodOptional<z.ZodString>;
@@ -16789,6 +17479,8 @@ declare const crawlerJsonSchemas: {
16789
17479
  status: z.ZodOptional<z.ZodNumber>;
16790
17480
  contentType: z.ZodOptional<z.ZodString>;
16791
17481
  bytes: z.ZodOptional<z.ZodNumber>;
17482
+ characters: z.ZodOptional<z.ZodNumber>;
17483
+ estimatedTokens: z.ZodOptional<z.ZodNumber>;
16792
17484
  sha256: z.ZodOptional<z.ZodString>;
16793
17485
  canonicalUrl: z.ZodOptional<z.ZodString>;
16794
17486
  alternateUrl: z.ZodOptional<z.ZodString>;
@@ -16817,6 +17509,14 @@ declare const crawlerJsonSchemas: {
16817
17509
  wordRetentionRatio: z.ZodNullable<z.ZodNumber>;
16818
17510
  introductoryCopyRetained: z.ZodNullable<z.ZodBoolean>;
16819
17511
  navigationOnly: z.ZodBoolean;
17512
+ contentSketchCoverage: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
17513
+ tabbedContent: z.ZodOptional<z.ZodObject<{
17514
+ detectedPanels: z.ZodNumber;
17515
+ evaluatedPanels: z.ZodNumber;
17516
+ retainedPanels: z.ZodNumber;
17517
+ missingPanels: z.ZodNumber;
17518
+ complete: z.ZodNullable<z.ZodBoolean>;
17519
+ }, z.core.$strip>>;
16820
17520
  }, z.core.$strip>>;
16821
17521
  }, z.core.$strip>>;
16822
17522
  }, z.core.$strip>;
@@ -16835,6 +17535,11 @@ declare const crawlerJsonSchemas: {
16835
17535
  missingHtmlRoutes: z.ZodArray<z.ZodString>;
16836
17536
  missingMarkdownRoutes: z.ZodArray<z.ZodString>;
16837
17537
  orphanMarkdownRoutes: z.ZodArray<z.ZodString>;
17538
+ comparisonStatus: z.ZodOptional<z.ZodEnum<{
17539
+ partial: "partial";
17540
+ complete: "complete";
17541
+ "not-applicable": "not-applicable";
17542
+ }>>;
16838
17543
  error: z.ZodOptional<z.ZodString>;
16839
17544
  }, z.core.$strip>;
16840
17545
  agentSkills: z.ZodObject<{
@@ -17372,12 +18077,12 @@ declare const crawlerJsonSchemas: {
17372
18077
  off: "off";
17373
18078
  }>;
17374
18079
  status: z.ZodEnum<{
18080
+ unavailable: "unavailable";
17375
18081
  failed: "failed";
17376
18082
  rendered: "rendered";
17377
18083
  "not-requested": "not-requested";
17378
18084
  "not-needed": "not-needed";
17379
18085
  skipped: "skipped";
17380
- unavailable: "unavailable";
17381
18086
  }>;
17382
18087
  raw: z.ZodOptional<z.ZodObject<{
17383
18088
  source: z.ZodEnum<{
@@ -17657,6 +18362,34 @@ declare const crawlerJsonSchemas: {
17657
18362
  mainContentHash: z.ZodOptional<z.ZodString>;
17658
18363
  textRatio: z.ZodOptional<z.ZodNumber>;
17659
18364
  contentSample: z.ZodOptional<z.ZodString>;
18365
+ contentSketch: z.ZodOptional<z.ZodObject<{
18366
+ version: z.ZodLiteral<1>;
18367
+ wordCount: z.ZodNumber;
18368
+ shingleSize: z.ZodNumber;
18369
+ sampledShingles: z.ZodNumber;
18370
+ hashes: z.ZodArray<z.ZodString>;
18371
+ }, z.core.$strip>>;
18372
+ softAuthenticationGate: z.ZodOptional<z.ZodObject<{
18373
+ kind: z.ZodLiteral<"login-form">;
18374
+ indicators: z.ZodArray<z.ZodString>;
18375
+ formActionPath: z.ZodOptional<z.ZodString>;
18376
+ }, z.core.$strip>>;
18377
+ tabbedContent: z.ZodOptional<z.ZodObject<{
18378
+ groups: z.ZodNumber;
18379
+ panels: z.ZodNumber;
18380
+ retainedPanels: z.ZodNumber;
18381
+ truncated: z.ZodBoolean;
18382
+ panelSketches: z.ZodArray<z.ZodObject<{
18383
+ label: z.ZodOptional<z.ZodString>;
18384
+ sketch: z.ZodObject<{
18385
+ version: z.ZodLiteral<1>;
18386
+ wordCount: z.ZodNumber;
18387
+ shingleSize: z.ZodNumber;
18388
+ sampledShingles: z.ZodNumber;
18389
+ hashes: z.ZodArray<z.ZodString>;
18390
+ }, z.core.$strip>;
18391
+ }, z.core.$strip>>;
18392
+ }, z.core.$strip>>;
17660
18393
  lang: z.ZodOptional<z.ZodString>;
17661
18394
  hasViewport: z.ZodOptional<z.ZodBoolean>;
17662
18395
  isHttps: z.ZodOptional<z.ZodBoolean>;
@@ -17696,9 +18429,9 @@ declare const crawlerJsonSchemas: {
17696
18429
  status: z.ZodOptional<z.ZodNumber>;
17697
18430
  error: z.ZodOptional<z.ZodString>;
17698
18431
  state: z.ZodOptional<z.ZodEnum<{
18432
+ unavailable: "unavailable";
17699
18433
  available: "available";
17700
18434
  "rate-limited": "rate-limited";
17701
- unavailable: "unavailable";
17702
18435
  "confirmed-broken": "confirmed-broken";
17703
18436
  transient: "transient";
17704
18437
  "provider-blocked": "provider-blocked";
@@ -17922,8 +18655,8 @@ declare const crawlerJsonSchemas: {
17922
18655
  searchConsole: z.ZodObject<{
17923
18656
  status: z.ZodEnum<{
17924
18657
  partial: "partial";
17925
- skipped: "skipped";
17926
18658
  unavailable: "unavailable";
18659
+ skipped: "skipped";
17927
18660
  joined: "joined";
17928
18661
  none: "none";
17929
18662
  }>;
@@ -17947,8 +18680,8 @@ declare const crawlerJsonSchemas: {
17947
18680
  analytics: z.ZodObject<{
17948
18681
  status: z.ZodEnum<{
17949
18682
  partial: "partial";
17950
- skipped: "skipped";
17951
18683
  unavailable: "unavailable";
18684
+ skipped: "skipped";
17952
18685
  joined: "joined";
17953
18686
  none: "none";
17954
18687
  }>;
@@ -18093,9 +18826,9 @@ declare const crawlerJsonSchemas: {
18093
18826
  deferredUrls: z.ZodNumber;
18094
18827
  limit: z.ZodNumber;
18095
18828
  outcomes: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
18829
+ unavailable: "unavailable";
18096
18830
  available: "available";
18097
18831
  "rate-limited": "rate-limited";
18098
- unavailable: "unavailable";
18099
18832
  "confirmed-broken": "confirmed-broken";
18100
18833
  transient: "transient";
18101
18834
  "provider-blocked": "provider-blocked";
@@ -18103,6 +18836,25 @@ declare const crawlerJsonSchemas: {
18103
18836
  }>, z.ZodNumber>>;
18104
18837
  warnings: z.ZodArray<z.ZodString>;
18105
18838
  }, z.core.$strip>>;
18839
+ siteChecks: z.ZodOptional<z.ZodObject<{
18840
+ soft404: z.ZodObject<{
18841
+ status: z.ZodEnum<{
18842
+ unknown: "unknown";
18843
+ warning: "warning";
18844
+ pass: "pass";
18845
+ }>;
18846
+ probes: z.ZodArray<z.ZodObject<{
18847
+ url: z.ZodString;
18848
+ status: z.ZodOptional<z.ZodNumber>;
18849
+ finalUrl: z.ZodOptional<z.ZodString>;
18850
+ redirected: z.ZodOptional<z.ZodBoolean>;
18851
+ accessBlocked: z.ZodOptional<z.ZodBoolean>;
18852
+ error: z.ZodOptional<z.ZodString>;
18853
+ }, z.core.$strip>>;
18854
+ probeLimit: z.ZodNumber;
18855
+ complete: z.ZodBoolean;
18856
+ }, z.core.$strip>;
18857
+ }, z.core.$strip>>;
18106
18858
  agentDiscovery: z.ZodOptional<z.ZodObject<{
18107
18859
  profile: z.ZodLiteral<"content">;
18108
18860
  profileApplicability: z.ZodRecord<z.ZodEnum<{
@@ -18139,6 +18891,8 @@ declare const crawlerJsonSchemas: {
18139
18891
  status: z.ZodOptional<z.ZodNumber>;
18140
18892
  contentType: z.ZodOptional<z.ZodString>;
18141
18893
  bytes: z.ZodOptional<z.ZodNumber>;
18894
+ characters: z.ZodOptional<z.ZodNumber>;
18895
+ estimatedTokens: z.ZodOptional<z.ZodNumber>;
18142
18896
  sha256: z.ZodOptional<z.ZodString>;
18143
18897
  canonicalUrl: z.ZodOptional<z.ZodString>;
18144
18898
  alternateUrl: z.ZodOptional<z.ZodString>;
@@ -18153,6 +18907,8 @@ declare const crawlerJsonSchemas: {
18153
18907
  status: z.ZodOptional<z.ZodNumber>;
18154
18908
  contentType: z.ZodOptional<z.ZodString>;
18155
18909
  bytes: z.ZodOptional<z.ZodNumber>;
18910
+ characters: z.ZodOptional<z.ZodNumber>;
18911
+ estimatedTokens: z.ZodOptional<z.ZodNumber>;
18156
18912
  sha256: z.ZodOptional<z.ZodString>;
18157
18913
  canonicalUrl: z.ZodOptional<z.ZodString>;
18158
18914
  alternateUrl: z.ZodOptional<z.ZodString>;
@@ -18167,6 +18923,8 @@ declare const crawlerJsonSchemas: {
18167
18923
  status: z.ZodOptional<z.ZodNumber>;
18168
18924
  contentType: z.ZodOptional<z.ZodString>;
18169
18925
  bytes: z.ZodOptional<z.ZodNumber>;
18926
+ characters: z.ZodOptional<z.ZodNumber>;
18927
+ estimatedTokens: z.ZodOptional<z.ZodNumber>;
18170
18928
  sha256: z.ZodOptional<z.ZodString>;
18171
18929
  canonicalUrl: z.ZodOptional<z.ZodString>;
18172
18930
  alternateUrl: z.ZodOptional<z.ZodString>;
@@ -18195,6 +18953,14 @@ declare const crawlerJsonSchemas: {
18195
18953
  wordRetentionRatio: z.ZodNullable<z.ZodNumber>;
18196
18954
  introductoryCopyRetained: z.ZodNullable<z.ZodBoolean>;
18197
18955
  navigationOnly: z.ZodBoolean;
18956
+ contentSketchCoverage: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
18957
+ tabbedContent: z.ZodOptional<z.ZodObject<{
18958
+ detectedPanels: z.ZodNumber;
18959
+ evaluatedPanels: z.ZodNumber;
18960
+ retainedPanels: z.ZodNumber;
18961
+ missingPanels: z.ZodNumber;
18962
+ complete: z.ZodNullable<z.ZodBoolean>;
18963
+ }, z.core.$strip>>;
18198
18964
  }, z.core.$strip>>;
18199
18965
  }, z.core.$strip>>;
18200
18966
  }, z.core.$strip>;
@@ -18213,6 +18979,11 @@ declare const crawlerJsonSchemas: {
18213
18979
  missingHtmlRoutes: z.ZodArray<z.ZodString>;
18214
18980
  missingMarkdownRoutes: z.ZodArray<z.ZodString>;
18215
18981
  orphanMarkdownRoutes: z.ZodArray<z.ZodString>;
18982
+ comparisonStatus: z.ZodOptional<z.ZodEnum<{
18983
+ partial: "partial";
18984
+ complete: "complete";
18985
+ "not-applicable": "not-applicable";
18986
+ }>>;
18216
18987
  error: z.ZodOptional<z.ZodString>;
18217
18988
  }, z.core.$strip>;
18218
18989
  agentSkills: z.ZodObject<{
@@ -18541,8 +19312,8 @@ declare const crawlerJsonSchemas: {
18541
19312
  count: z.ZodNumber;
18542
19313
  sampleUrls: z.ZodArray<z.ZodString>;
18543
19314
  recommendation: z.ZodEnum<{
18544
- fix: "fix";
18545
19315
  review: "review";
19316
+ fix: "fix";
18546
19317
  }>;
18547
19318
  score: z.ZodNumber;
18548
19319
  scoreFactors: z.ZodObject<{
@@ -18598,8 +19369,8 @@ declare const crawlerJsonSchemas: {
18598
19369
  medium: "medium";
18599
19370
  }>;
18600
19371
  recommendation: z.ZodEnum<{
18601
- fix: "fix";
18602
19372
  review: "review";
19373
+ fix: "fix";
18603
19374
  }>;
18604
19375
  whyItMatters: z.ZodString;
18605
19376
  howToFix: z.ZodString;
@@ -18884,12 +19655,12 @@ declare const crawlerJsonSchemas: {
18884
19655
  off: "off";
18885
19656
  }>;
18886
19657
  status: z.ZodEnum<{
19658
+ unavailable: "unavailable";
18887
19659
  failed: "failed";
18888
19660
  rendered: "rendered";
18889
19661
  "not-requested": "not-requested";
18890
19662
  "not-needed": "not-needed";
18891
19663
  skipped: "skipped";
18892
- unavailable: "unavailable";
18893
19664
  }>;
18894
19665
  raw: z.ZodOptional<z.ZodObject<{
18895
19666
  source: z.ZodEnum<{
@@ -19169,6 +19940,34 @@ declare const crawlerJsonSchemas: {
19169
19940
  mainContentHash: z.ZodOptional<z.ZodString>;
19170
19941
  textRatio: z.ZodOptional<z.ZodNumber>;
19171
19942
  contentSample: z.ZodOptional<z.ZodString>;
19943
+ contentSketch: z.ZodOptional<z.ZodObject<{
19944
+ version: z.ZodLiteral<1>;
19945
+ wordCount: z.ZodNumber;
19946
+ shingleSize: z.ZodNumber;
19947
+ sampledShingles: z.ZodNumber;
19948
+ hashes: z.ZodArray<z.ZodString>;
19949
+ }, z.core.$strip>>;
19950
+ softAuthenticationGate: z.ZodOptional<z.ZodObject<{
19951
+ kind: z.ZodLiteral<"login-form">;
19952
+ indicators: z.ZodArray<z.ZodString>;
19953
+ formActionPath: z.ZodOptional<z.ZodString>;
19954
+ }, z.core.$strip>>;
19955
+ tabbedContent: z.ZodOptional<z.ZodObject<{
19956
+ groups: z.ZodNumber;
19957
+ panels: z.ZodNumber;
19958
+ retainedPanels: z.ZodNumber;
19959
+ truncated: z.ZodBoolean;
19960
+ panelSketches: z.ZodArray<z.ZodObject<{
19961
+ label: z.ZodOptional<z.ZodString>;
19962
+ sketch: z.ZodObject<{
19963
+ version: z.ZodLiteral<1>;
19964
+ wordCount: z.ZodNumber;
19965
+ shingleSize: z.ZodNumber;
19966
+ sampledShingles: z.ZodNumber;
19967
+ hashes: z.ZodArray<z.ZodString>;
19968
+ }, z.core.$strip>;
19969
+ }, z.core.$strip>>;
19970
+ }, z.core.$strip>>;
19172
19971
  lang: z.ZodOptional<z.ZodString>;
19173
19972
  hasViewport: z.ZodOptional<z.ZodBoolean>;
19174
19973
  isHttps: z.ZodOptional<z.ZodBoolean>;
@@ -19208,9 +20007,9 @@ declare const crawlerJsonSchemas: {
19208
20007
  status: z.ZodOptional<z.ZodNumber>;
19209
20008
  error: z.ZodOptional<z.ZodString>;
19210
20009
  state: z.ZodOptional<z.ZodEnum<{
20010
+ unavailable: "unavailable";
19211
20011
  available: "available";
19212
20012
  "rate-limited": "rate-limited";
19213
- unavailable: "unavailable";
19214
20013
  "confirmed-broken": "confirmed-broken";
19215
20014
  transient: "transient";
19216
20015
  "provider-blocked": "provider-blocked";
@@ -22809,6 +23608,769 @@ declare function updatePostmortemWorkflow(input: {
22809
23608
  segmentImpact?: typeof segmentImpact;
22810
23609
  }): Promise<WorkflowReport<PostmortemOutput>>;
22811
23610
  //#endregion
23611
+ //#region packages/core/src/bing/client.d.ts
23612
+ type BingWebmasterCredentials = {
23613
+ apiKey: string;
23614
+ accessToken?: never;
23615
+ } | {
23616
+ accessToken: string;
23617
+ apiKey?: never;
23618
+ };
23619
+ type BingWebmasterSite = {
23620
+ url: string;
23621
+ isVerified: boolean;
23622
+ };
23623
+ type BingTrafficRow = {
23624
+ date: string;
23625
+ clicks: number;
23626
+ impressions: number;
23627
+ };
23628
+ type BingCrawlRow = {
23629
+ date: string;
23630
+ crawledPages?: number;
23631
+ inIndex?: number;
23632
+ inLinks?: number;
23633
+ code2xx?: number;
23634
+ code301?: number;
23635
+ code302?: number;
23636
+ code4xx?: number;
23637
+ code5xx?: number;
23638
+ blockedByRobotsTxt?: number;
23639
+ crawlErrors?: number;
23640
+ connectionTimeout?: number;
23641
+ dnsFailures?: number;
23642
+ containsMalware?: number;
23643
+ allOtherCodes?: number;
23644
+ };
23645
+ type BingDimensionRow = {
23646
+ date: string;
23647
+ value: string;
23648
+ clicks: number;
23649
+ impressions: number;
23650
+ avgClickPosition?: number;
23651
+ avgImpressionPosition?: number;
23652
+ };
23653
+ type BingRows<T> = {
23654
+ rows: T[];
23655
+ invalidRows: number;
23656
+ capped: boolean;
23657
+ returnedRows: number;
23658
+ };
23659
+ type BingLinkCountRow = {
23660
+ url: string;
23661
+ count: number;
23662
+ };
23663
+ type BingUrlLinkRow = {
23664
+ url: string;
23665
+ anchorText?: string;
23666
+ };
23667
+ type BingLinkPage<T> = {
23668
+ rows: T[];
23669
+ totalPages: number;
23670
+ invalidRows: number;
23671
+ capped: boolean;
23672
+ returnedRows: number;
23673
+ };
23674
+ type BingFetch = (url: string, init?: RequestInit$1) => Promise<Response$1>;
23675
+ type BingClientOptions = {
23676
+ baseUrl?: string;
23677
+ fetchImpl?: BingFetch;
23678
+ timeoutMs?: number;
23679
+ };
23680
+ declare class BingWebmasterClient {
23681
+ private readonly credentials;
23682
+ readonly authentication: 'api-key' | 'oauth';
23683
+ private readonly baseUrl;
23684
+ private readonly fetchImpl;
23685
+ private readonly timeoutMs;
23686
+ constructor(credentials: BingWebmasterCredentials, options?: BingClientOptions);
23687
+ private request;
23688
+ listSites(): Promise<{
23689
+ sites: BingWebmasterSite[];
23690
+ invalidRows: number;
23691
+ }>;
23692
+ getTraffic(siteUrl: string): Promise<BingRows<BingTrafficRow>>;
23693
+ getCrawlStats(siteUrl: string): Promise<BingRows<BingCrawlRow>>;
23694
+ getQueryStats(siteUrl: string): Promise<BingRows<BingDimensionRow>>;
23695
+ getPageStats(siteUrl: string): Promise<BingRows<BingDimensionRow>>;
23696
+ private getDimensionStats;
23697
+ getLinkCounts(siteUrl: string, page: number): Promise<BingLinkPage<BingLinkCountRow>>;
23698
+ getUrlLinks(siteUrl: string, link: string, page: number): Promise<BingLinkPage<BingUrlLinkRow>>;
23699
+ }
23700
+ //#endregion
23701
+ //#region packages/core/src/bing/analysis.d.ts
23702
+ declare function analyzeBingTraffic(rows: BingTrafficRow[], comparisonDays?: number): {
23703
+ comparisonDays: number;
23704
+ current: {
23705
+ startDate: string;
23706
+ endDate: string;
23707
+ expectedDays: number;
23708
+ observedDays: number;
23709
+ missingDays: number;
23710
+ clicks: number;
23711
+ impressions: number;
23712
+ ctr: number | null;
23713
+ };
23714
+ previous: {
23715
+ startDate: string;
23716
+ endDate: string;
23717
+ expectedDays: number;
23718
+ observedDays: number;
23719
+ missingDays: number;
23720
+ clicks: number;
23721
+ impressions: number;
23722
+ ctr: number | null;
23723
+ };
23724
+ changes: {
23725
+ clicks: number;
23726
+ clicksPercent: number | null;
23727
+ impressions: number;
23728
+ impressionsPercent: number | null;
23729
+ ctrPercentagePoints: number | null;
23730
+ };
23731
+ } | undefined;
23732
+ declare function analyzeBingCrawl(rows: BingCrawlRow[], comparisonDays?: number): {
23733
+ comparisonDays: number;
23734
+ targetDate: string;
23735
+ current: BingCrawlRow;
23736
+ previous: undefined;
23737
+ changes: Partial<Record<"crawledPages" | "inIndex" | "inLinks" | "code4xx" | "code5xx" | "blockedByRobotsTxt" | "crawlErrors" | "connectionTimeout" | "dnsFailures" | "containsMalware", {
23738
+ previous: number;
23739
+ current: number;
23740
+ absolute: number;
23741
+ percent: number | null;
23742
+ }>>;
23743
+ } | {
23744
+ comparisonDays: number;
23745
+ targetDate: string;
23746
+ current: BingCrawlRow;
23747
+ previous: BingCrawlRow;
23748
+ changes: Partial<Record<"crawledPages" | "inIndex" | "inLinks" | "code4xx" | "code5xx" | "blockedByRobotsTxt" | "crawlErrors" | "connectionTimeout" | "dnsFailures" | "containsMalware", {
23749
+ previous: number;
23750
+ current: number;
23751
+ absolute: number;
23752
+ percent: number | null;
23753
+ }>>;
23754
+ } | undefined;
23755
+ type Aggregate = {
23756
+ value: string;
23757
+ observedWeeks: number;
23758
+ clicks: number;
23759
+ impressions: number;
23760
+ avgClickPosition: number | null;
23761
+ avgImpressionPosition: number | null;
23762
+ };
23763
+ declare function analyzeBingDimensions(rows: BingDimensionRow[], kind: 'query' | 'page'): {
23764
+ kind: "query" | "page";
23765
+ sourceSemantics: string;
23766
+ periods: {
23767
+ weeksPerPeriod: number;
23768
+ currentDates: string[];
23769
+ previousDates: string[];
23770
+ };
23771
+ coverage: {
23772
+ sourceRows: number;
23773
+ currentDimensions: number;
23774
+ previousDimensions: number;
23775
+ matchedDimensions: number;
23776
+ comparableDimensions: number;
23777
+ incompleteMatchedDimensions: number;
23778
+ currentOnlyDimensions: number;
23779
+ previousOnlyDimensions: number;
23780
+ };
23781
+ thresholds: {
23782
+ heuristic: true;
23783
+ opportunityMinImpressions: number;
23784
+ opportunityPositionRange: readonly [4, 20];
23785
+ resultLimit: number;
23786
+ };
23787
+ movements: {
23788
+ value: string;
23789
+ current: Aggregate;
23790
+ previous: Aggregate;
23791
+ changes: {
23792
+ clicks: number;
23793
+ clicksPercent: number | null;
23794
+ impressions: number;
23795
+ impressionsPercent: number | null;
23796
+ };
23797
+ }[];
23798
+ opportunities: Aggregate[];
23799
+ };
23800
+ declare const bingAnalysisDefaults: {
23801
+ readonly comparisonDays: 28;
23802
+ readonly weeklyPeriods: 4;
23803
+ readonly resultLimit: 10;
23804
+ };
23805
+ //#endregion
23806
+ //#region packages/core/src/storage/provider-secrets.d.ts
23807
+ type ProviderSecretSource = 'environment' | 'keychain' | 'file';
23808
+ type ProviderSecret = {
23809
+ value: string;
23810
+ source: ProviderSecretSource;
23811
+ };
23812
+ declare function readProviderSecret(input: {
23813
+ name: string;
23814
+ envVar?: string;
23815
+ env?: NodeJS.ProcessEnv;
23816
+ }): Promise<ProviderSecret | undefined>;
23817
+ declare function writeProviderSecret(name: string, value: string): Promise<Exclude<ProviderSecretSource, 'environment'>>;
23818
+ declare function deleteProviderSecret(name: string): Promise<void>;
23819
+ //#endregion
23820
+ //#region packages/core/src/bing/credentials.d.ts
23821
+ declare const BING_API_KEY_SECRET = "bing-api-key";
23822
+ declare const BING_API_KEY_ENV = "SEO_BING_API_KEY";
23823
+ declare function createBingWebmasterClient(input?: {
23824
+ env?: NodeJS.ProcessEnv;
23825
+ }): Promise<{
23826
+ client: BingWebmasterClient;
23827
+ credentialSource: ProviderSecretSource;
23828
+ }>;
23829
+ //#endregion
23830
+ //#region packages/core/src/bing/overview.d.ts
23831
+ type Finding = {
23832
+ code: string;
23833
+ severity: 'info' | 'review' | 'warning';
23834
+ title: string;
23835
+ evidence: Record<string, unknown>;
23836
+ interpretation: string;
23837
+ verification: string;
23838
+ };
23839
+ declare function bingWebmasterOverview(input: {
23840
+ site: string;
23841
+ client?: BingWebmasterClient;
23842
+ credentialSource?: 'environment' | 'keychain' | 'file';
23843
+ }): Promise<{
23844
+ schemaVersion: 2;
23845
+ site: string;
23846
+ generatedAt: string;
23847
+ dataStatus: string;
23848
+ summary: {
23849
+ findings: number;
23850
+ warnings: number;
23851
+ reviewItems: number;
23852
+ };
23853
+ findings: Finding[];
23854
+ outputBudget: {
23855
+ maxFindings: number;
23856
+ maxDailyRowsPerSection: number;
23857
+ maxDailyRowsTotal: number;
23858
+ maxDimensionItemsPerList: number;
23859
+ maxDimensionItemsTotal: number;
23860
+ };
23861
+ provenance: {
23862
+ provider: "bing-webmaster";
23863
+ authentication: "api-key" | "oauth";
23864
+ credentialSource: "file" | "environment" | "keychain";
23865
+ observedAt: string;
23866
+ cached: false;
23867
+ rowLimits: {
23868
+ traffic: number;
23869
+ crawl: number;
23870
+ queries: number;
23871
+ pages: number;
23872
+ };
23873
+ methods: string[];
23874
+ };
23875
+ traffic: {
23876
+ status: "unavailable";
23877
+ warning: string;
23878
+ } | {
23879
+ data: {
23880
+ range: {
23881
+ startDate: string;
23882
+ endDate: string;
23883
+ } | undefined;
23884
+ clicks: number;
23885
+ impressions: number;
23886
+ analysis: {
23887
+ comparisonDays: number;
23888
+ current: {
23889
+ startDate: string;
23890
+ endDate: string;
23891
+ expectedDays: number;
23892
+ observedDays: number;
23893
+ missingDays: number;
23894
+ clicks: number;
23895
+ impressions: number;
23896
+ ctr: number | null;
23897
+ };
23898
+ previous: {
23899
+ startDate: string;
23900
+ endDate: string;
23901
+ expectedDays: number;
23902
+ observedDays: number;
23903
+ missingDays: number;
23904
+ clicks: number;
23905
+ impressions: number;
23906
+ ctr: number | null;
23907
+ };
23908
+ changes: {
23909
+ clicks: number;
23910
+ clicksPercent: number | null;
23911
+ impressions: number;
23912
+ impressionsPercent: number | null;
23913
+ ctrPercentagePoints: number | null;
23914
+ };
23915
+ } | undefined;
23916
+ rows: BingTrafficRow[] & {
23917
+ date: string;
23918
+ }[];
23919
+ invalidRows: number;
23920
+ capped: boolean;
23921
+ returnedRows: number;
23922
+ retainedRows: number;
23923
+ outputSelection: {
23924
+ strategy: "most-recent";
23925
+ availableRows: number;
23926
+ returnedRows: number;
23927
+ omittedRows: number;
23928
+ };
23929
+ };
23930
+ status: "complete";
23931
+ } | {
23932
+ data: {
23933
+ range: {
23934
+ startDate: string;
23935
+ endDate: string;
23936
+ } | undefined;
23937
+ clicks: number;
23938
+ impressions: number;
23939
+ analysis: {
23940
+ comparisonDays: number;
23941
+ current: {
23942
+ startDate: string;
23943
+ endDate: string;
23944
+ expectedDays: number;
23945
+ observedDays: number;
23946
+ missingDays: number;
23947
+ clicks: number;
23948
+ impressions: number;
23949
+ ctr: number | null;
23950
+ };
23951
+ previous: {
23952
+ startDate: string;
23953
+ endDate: string;
23954
+ expectedDays: number;
23955
+ observedDays: number;
23956
+ missingDays: number;
23957
+ clicks: number;
23958
+ impressions: number;
23959
+ ctr: number | null;
23960
+ };
23961
+ changes: {
23962
+ clicks: number;
23963
+ clicksPercent: number | null;
23964
+ impressions: number;
23965
+ impressionsPercent: number | null;
23966
+ ctrPercentagePoints: number | null;
23967
+ };
23968
+ } | undefined;
23969
+ rows: BingTrafficRow[] & {
23970
+ date: string;
23971
+ }[];
23972
+ invalidRows: number;
23973
+ capped: boolean;
23974
+ returnedRows: number;
23975
+ retainedRows: number;
23976
+ outputSelection: {
23977
+ strategy: "most-recent";
23978
+ availableRows: number;
23979
+ returnedRows: number;
23980
+ omittedRows: number;
23981
+ };
23982
+ };
23983
+ status: "partial";
23984
+ warning: string;
23985
+ };
23986
+ crawl: {
23987
+ status: "unavailable";
23988
+ warning: string;
23989
+ } | {
23990
+ data: {
23991
+ range: {
23992
+ startDate: string;
23993
+ endDate: string;
23994
+ } | undefined;
23995
+ latest: BingCrawlRow | undefined;
23996
+ analysis: {
23997
+ comparisonDays: number;
23998
+ targetDate: string;
23999
+ current: BingCrawlRow;
24000
+ previous: undefined;
24001
+ changes: Partial<Record<"crawledPages" | "inIndex" | "inLinks" | "code4xx" | "code5xx" | "blockedByRobotsTxt" | "crawlErrors" | "connectionTimeout" | "dnsFailures" | "containsMalware", {
24002
+ previous: number;
24003
+ current: number;
24004
+ absolute: number;
24005
+ percent: number | null;
24006
+ }>>;
24007
+ } | {
24008
+ comparisonDays: number;
24009
+ targetDate: string;
24010
+ current: BingCrawlRow;
24011
+ previous: BingCrawlRow;
24012
+ changes: Partial<Record<"crawledPages" | "inIndex" | "inLinks" | "code4xx" | "code5xx" | "blockedByRobotsTxt" | "crawlErrors" | "connectionTimeout" | "dnsFailures" | "containsMalware", {
24013
+ previous: number;
24014
+ current: number;
24015
+ absolute: number;
24016
+ percent: number | null;
24017
+ }>>;
24018
+ } | undefined;
24019
+ rows: BingCrawlRow[] & {
24020
+ date: string;
24021
+ }[];
24022
+ invalidRows: number;
24023
+ capped: boolean;
24024
+ returnedRows: number;
24025
+ retainedRows: number;
24026
+ outputSelection: {
24027
+ strategy: "most-recent";
24028
+ availableRows: number;
24029
+ returnedRows: number;
24030
+ omittedRows: number;
24031
+ };
24032
+ };
24033
+ status: "complete";
24034
+ } | {
24035
+ data: {
24036
+ range: {
24037
+ startDate: string;
24038
+ endDate: string;
24039
+ } | undefined;
24040
+ latest: BingCrawlRow | undefined;
24041
+ analysis: {
24042
+ comparisonDays: number;
24043
+ targetDate: string;
24044
+ current: BingCrawlRow;
24045
+ previous: undefined;
24046
+ changes: Partial<Record<"crawledPages" | "inIndex" | "inLinks" | "code4xx" | "code5xx" | "blockedByRobotsTxt" | "crawlErrors" | "connectionTimeout" | "dnsFailures" | "containsMalware", {
24047
+ previous: number;
24048
+ current: number;
24049
+ absolute: number;
24050
+ percent: number | null;
24051
+ }>>;
24052
+ } | {
24053
+ comparisonDays: number;
24054
+ targetDate: string;
24055
+ current: BingCrawlRow;
24056
+ previous: BingCrawlRow;
24057
+ changes: Partial<Record<"crawledPages" | "inIndex" | "inLinks" | "code4xx" | "code5xx" | "blockedByRobotsTxt" | "crawlErrors" | "connectionTimeout" | "dnsFailures" | "containsMalware", {
24058
+ previous: number;
24059
+ current: number;
24060
+ absolute: number;
24061
+ percent: number | null;
24062
+ }>>;
24063
+ } | undefined;
24064
+ rows: BingCrawlRow[] & {
24065
+ date: string;
24066
+ }[];
24067
+ invalidRows: number;
24068
+ capped: boolean;
24069
+ returnedRows: number;
24070
+ retainedRows: number;
24071
+ outputSelection: {
24072
+ strategy: "most-recent";
24073
+ availableRows: number;
24074
+ returnedRows: number;
24075
+ omittedRows: number;
24076
+ };
24077
+ };
24078
+ status: "partial";
24079
+ warning: string;
24080
+ };
24081
+ queries: {
24082
+ status: "unavailable";
24083
+ warning: string;
24084
+ } | {
24085
+ data: {
24086
+ returnedRows: number;
24087
+ retainedRows: number;
24088
+ invalidRows: number;
24089
+ capped: boolean;
24090
+ range: {
24091
+ startDate: string;
24092
+ endDate: string;
24093
+ } | undefined;
24094
+ analysis: {
24095
+ kind: "query" | "page";
24096
+ sourceSemantics: string;
24097
+ periods: {
24098
+ weeksPerPeriod: number;
24099
+ currentDates: string[];
24100
+ previousDates: string[];
24101
+ };
24102
+ coverage: {
24103
+ sourceRows: number;
24104
+ currentDimensions: number;
24105
+ previousDimensions: number;
24106
+ matchedDimensions: number;
24107
+ comparableDimensions: number;
24108
+ incompleteMatchedDimensions: number;
24109
+ currentOnlyDimensions: number;
24110
+ previousOnlyDimensions: number;
24111
+ };
24112
+ thresholds: {
24113
+ heuristic: true;
24114
+ opportunityMinImpressions: number;
24115
+ opportunityPositionRange: readonly [4, 20];
24116
+ resultLimit: number;
24117
+ };
24118
+ movements: {
24119
+ value: string;
24120
+ current: {
24121
+ value: string;
24122
+ observedWeeks: number;
24123
+ clicks: number;
24124
+ impressions: number;
24125
+ avgClickPosition: number | null;
24126
+ avgImpressionPosition: number | null;
24127
+ };
24128
+ previous: {
24129
+ value: string;
24130
+ observedWeeks: number;
24131
+ clicks: number;
24132
+ impressions: number;
24133
+ avgClickPosition: number | null;
24134
+ avgImpressionPosition: number | null;
24135
+ };
24136
+ changes: {
24137
+ clicks: number;
24138
+ clicksPercent: number | null;
24139
+ impressions: number;
24140
+ impressionsPercent: number | null;
24141
+ };
24142
+ }[];
24143
+ opportunities: {
24144
+ value: string;
24145
+ observedWeeks: number;
24146
+ clicks: number;
24147
+ impressions: number;
24148
+ avgClickPosition: number | null;
24149
+ avgImpressionPosition: number | null;
24150
+ }[];
24151
+ } | undefined;
24152
+ };
24153
+ status: "complete";
24154
+ } | {
24155
+ data: {
24156
+ returnedRows: number;
24157
+ retainedRows: number;
24158
+ invalidRows: number;
24159
+ capped: boolean;
24160
+ range: {
24161
+ startDate: string;
24162
+ endDate: string;
24163
+ } | undefined;
24164
+ analysis: {
24165
+ kind: "query" | "page";
24166
+ sourceSemantics: string;
24167
+ periods: {
24168
+ weeksPerPeriod: number;
24169
+ currentDates: string[];
24170
+ previousDates: string[];
24171
+ };
24172
+ coverage: {
24173
+ sourceRows: number;
24174
+ currentDimensions: number;
24175
+ previousDimensions: number;
24176
+ matchedDimensions: number;
24177
+ comparableDimensions: number;
24178
+ incompleteMatchedDimensions: number;
24179
+ currentOnlyDimensions: number;
24180
+ previousOnlyDimensions: number;
24181
+ };
24182
+ thresholds: {
24183
+ heuristic: true;
24184
+ opportunityMinImpressions: number;
24185
+ opportunityPositionRange: readonly [4, 20];
24186
+ resultLimit: number;
24187
+ };
24188
+ movements: {
24189
+ value: string;
24190
+ current: {
24191
+ value: string;
24192
+ observedWeeks: number;
24193
+ clicks: number;
24194
+ impressions: number;
24195
+ avgClickPosition: number | null;
24196
+ avgImpressionPosition: number | null;
24197
+ };
24198
+ previous: {
24199
+ value: string;
24200
+ observedWeeks: number;
24201
+ clicks: number;
24202
+ impressions: number;
24203
+ avgClickPosition: number | null;
24204
+ avgImpressionPosition: number | null;
24205
+ };
24206
+ changes: {
24207
+ clicks: number;
24208
+ clicksPercent: number | null;
24209
+ impressions: number;
24210
+ impressionsPercent: number | null;
24211
+ };
24212
+ }[];
24213
+ opportunities: {
24214
+ value: string;
24215
+ observedWeeks: number;
24216
+ clicks: number;
24217
+ impressions: number;
24218
+ avgClickPosition: number | null;
24219
+ avgImpressionPosition: number | null;
24220
+ }[];
24221
+ } | undefined;
24222
+ };
24223
+ status: "partial";
24224
+ warning: string;
24225
+ };
24226
+ pages: {
24227
+ status: "unavailable";
24228
+ warning: string;
24229
+ } | {
24230
+ data: {
24231
+ returnedRows: number;
24232
+ retainedRows: number;
24233
+ invalidRows: number;
24234
+ capped: boolean;
24235
+ range: {
24236
+ startDate: string;
24237
+ endDate: string;
24238
+ } | undefined;
24239
+ analysis: {
24240
+ kind: "query" | "page";
24241
+ sourceSemantics: string;
24242
+ periods: {
24243
+ weeksPerPeriod: number;
24244
+ currentDates: string[];
24245
+ previousDates: string[];
24246
+ };
24247
+ coverage: {
24248
+ sourceRows: number;
24249
+ currentDimensions: number;
24250
+ previousDimensions: number;
24251
+ matchedDimensions: number;
24252
+ comparableDimensions: number;
24253
+ incompleteMatchedDimensions: number;
24254
+ currentOnlyDimensions: number;
24255
+ previousOnlyDimensions: number;
24256
+ };
24257
+ thresholds: {
24258
+ heuristic: true;
24259
+ opportunityMinImpressions: number;
24260
+ opportunityPositionRange: readonly [4, 20];
24261
+ resultLimit: number;
24262
+ };
24263
+ movements: {
24264
+ value: string;
24265
+ current: {
24266
+ value: string;
24267
+ observedWeeks: number;
24268
+ clicks: number;
24269
+ impressions: number;
24270
+ avgClickPosition: number | null;
24271
+ avgImpressionPosition: number | null;
24272
+ };
24273
+ previous: {
24274
+ value: string;
24275
+ observedWeeks: number;
24276
+ clicks: number;
24277
+ impressions: number;
24278
+ avgClickPosition: number | null;
24279
+ avgImpressionPosition: number | null;
24280
+ };
24281
+ changes: {
24282
+ clicks: number;
24283
+ clicksPercent: number | null;
24284
+ impressions: number;
24285
+ impressionsPercent: number | null;
24286
+ };
24287
+ }[];
24288
+ opportunities: {
24289
+ value: string;
24290
+ observedWeeks: number;
24291
+ clicks: number;
24292
+ impressions: number;
24293
+ avgClickPosition: number | null;
24294
+ avgImpressionPosition: number | null;
24295
+ }[];
24296
+ } | undefined;
24297
+ };
24298
+ status: "complete";
24299
+ } | {
24300
+ data: {
24301
+ returnedRows: number;
24302
+ retainedRows: number;
24303
+ invalidRows: number;
24304
+ capped: boolean;
24305
+ range: {
24306
+ startDate: string;
24307
+ endDate: string;
24308
+ } | undefined;
24309
+ analysis: {
24310
+ kind: "query" | "page";
24311
+ sourceSemantics: string;
24312
+ periods: {
24313
+ weeksPerPeriod: number;
24314
+ currentDates: string[];
24315
+ previousDates: string[];
24316
+ };
24317
+ coverage: {
24318
+ sourceRows: number;
24319
+ currentDimensions: number;
24320
+ previousDimensions: number;
24321
+ matchedDimensions: number;
24322
+ comparableDimensions: number;
24323
+ incompleteMatchedDimensions: number;
24324
+ currentOnlyDimensions: number;
24325
+ previousOnlyDimensions: number;
24326
+ };
24327
+ thresholds: {
24328
+ heuristic: true;
24329
+ opportunityMinImpressions: number;
24330
+ opportunityPositionRange: readonly [4, 20];
24331
+ resultLimit: number;
24332
+ };
24333
+ movements: {
24334
+ value: string;
24335
+ current: {
24336
+ value: string;
24337
+ observedWeeks: number;
24338
+ clicks: number;
24339
+ impressions: number;
24340
+ avgClickPosition: number | null;
24341
+ avgImpressionPosition: number | null;
24342
+ };
24343
+ previous: {
24344
+ value: string;
24345
+ observedWeeks: number;
24346
+ clicks: number;
24347
+ impressions: number;
24348
+ avgClickPosition: number | null;
24349
+ avgImpressionPosition: number | null;
24350
+ };
24351
+ changes: {
24352
+ clicks: number;
24353
+ clicksPercent: number | null;
24354
+ impressions: number;
24355
+ impressionsPercent: number | null;
24356
+ };
24357
+ }[];
24358
+ opportunities: {
24359
+ value: string;
24360
+ observedWeeks: number;
24361
+ clicks: number;
24362
+ impressions: number;
24363
+ avgClickPosition: number | null;
24364
+ avgImpressionPosition: number | null;
24365
+ }[];
24366
+ } | undefined;
24367
+ };
24368
+ status: "partial";
24369
+ warning: string;
24370
+ };
24371
+ caveats: string[];
24372
+ }>;
24373
+ //#endregion
22812
24374
  //#region packages/core/src/brand.d.ts
22813
24375
  declare function deriveBrandTerms(input: {
22814
24376
  id?: string;
@@ -22859,14 +24421,17 @@ type ClientProfileInput = {
22859
24421
  watchUrls?: string[];
22860
24422
  brandTerms?: string[];
22861
24423
  analytics?: ClientProfile['analytics'];
24424
+ searchEngines?: ClientProfile['searchEngines'];
22862
24425
  reportDay?: number;
22863
24426
  technicalWeekday?: number;
22864
24427
  isDefault?: boolean;
22865
24428
  };
22866
24429
  declare function googleAnalyticsPropertyId(client: Pick<ClientProfile, 'analytics'> | undefined): string | undefined;
24430
+ declare function bingWebmasterSiteUrl(client: Pick<ClientProfile, 'searchEngines'> | undefined): string | undefined;
22867
24431
  declare function listClients(): ClientProfile[];
22868
24432
  declare function getClient(idOrName?: string): ClientProfile | undefined;
22869
24433
  declare function saveClient(input: ClientProfileInput): ClientProfile;
24434
+ declare function setClientBingSite(idOrName: string, siteUrl: string): ClientProfile;
22870
24435
  declare function deleteClient(idOrName: string): boolean;
22871
24436
  declare function setDefaultClient(idOrName: string): ClientProfile;
22872
24437
  //#endregion
@@ -22907,6 +24472,21 @@ declare function refreshPrioritiesCsvFiles(report: WorkflowReport<{
22907
24472
  }>): CsvFile[];
22908
24473
  declare function pseoCsvFiles(report: PseoAuditReport): CsvFile[];
22909
24474
  //#endregion
24475
+ //#region packages/core/src/export/report-html.d.ts
24476
+ type ReportHtmlView = 'client' | 'analyst';
24477
+ type ReportHtmlSection = {
24478
+ title: string;
24479
+ summary?: string;
24480
+ items: string[];
24481
+ };
24482
+ type ReportHtmlInput = {
24483
+ report: ReportNarrative;
24484
+ title?: string;
24485
+ view?: ReportHtmlView;
24486
+ additionalSections?: ReportHtmlSection[];
24487
+ };
24488
+ declare function renderReportHtml(input: ReportHtmlInput): string;
24489
+ //#endregion
22910
24490
  //#region packages/core/src/export/update-postmortem.d.ts
22911
24491
  type PostmortemCsvReport = WorkflowReport<{
22912
24492
  update: {
@@ -23090,6 +24670,181 @@ declare function finalGscDateRange(days?: number, now?: Date): {
23090
24670
  declare function normalizeHttpUrl(value: string): string;
23091
24671
  declare function assertUrlMatchesGscProperty(property: string, value: string): string;
23092
24672
  //#endregion
24673
+ //#region packages/core/src/indexnow/types.d.ts
24674
+ declare const INDEXNOW_ENDPOINT = "https://api.indexnow.org/indexnow";
24675
+ declare const INDEXNOW_MAX_URLS = 1000;
24676
+ declare const INDEXNOW_KEY_ENV = "SEO_INDEXNOW_KEY";
24677
+ declare const INDEXNOW_KEYS_SECRET = "indexnow-keys";
24678
+ type IndexNowKey = {
24679
+ host: string;
24680
+ key: string;
24681
+ keyLocation: string;
24682
+ createdAt: string;
24683
+ };
24684
+ type IndexNowKeySource = 'environment' | 'keychain' | 'file';
24685
+ type IndexNowSubmission = {
24686
+ schemaVersion: 1;
24687
+ generatedAt: string;
24688
+ dryRun: boolean;
24689
+ status: 'validated' | 'submitted' | 'pending-validation';
24690
+ endpoint: typeof INDEXNOW_ENDPOINT;
24691
+ host: string;
24692
+ keyLocation: string;
24693
+ submittedUrls: number;
24694
+ responseStatus?: 200 | 202;
24695
+ caveats: string[];
24696
+ };
24697
+ //#endregion
24698
+ //#region packages/core/src/indexnow/client.d.ts
24699
+ type IndexNowFetch = (url: string, init?: RequestInit$1) => Promise<Response$1>;
24700
+ declare function verifyIndexNowKey(input: {
24701
+ record: IndexNowKey;
24702
+ fetchImpl?: IndexNowFetch;
24703
+ timeoutMs?: number;
24704
+ }): Promise<{
24705
+ verified: boolean;
24706
+ status: number;
24707
+ keyLocation: string;
24708
+ }>;
24709
+ declare function submitIndexNow(input: {
24710
+ record: IndexNowKey;
24711
+ urls: string[];
24712
+ dryRun?: boolean;
24713
+ fetchImpl?: IndexNowFetch;
24714
+ now?: Date;
24715
+ }): Promise<IndexNowSubmission>;
24716
+ //#endregion
24717
+ //#region packages/core/src/indexnow/keys.d.ts
24718
+ declare function parseIndexNowSite(value: string): URL;
24719
+ declare function validateIndexNowKey(value: string): string;
24720
+ declare function createIndexNowKey(): string;
24721
+ declare function createIndexNowKeyRecord(input: {
24722
+ site: string;
24723
+ key?: string;
24724
+ keyLocation?: string;
24725
+ now?: Date;
24726
+ }): IndexNowKey;
24727
+ declare function validateIndexNowKeyRecord(record: IndexNowKey): IndexNowKey;
24728
+ declare function saveIndexNowKey(record: IndexNowKey): Promise<Exclude<IndexNowKeySource, 'environment'>>;
24729
+ declare function resolveIndexNowKey(input: {
24730
+ site: string;
24731
+ env?: NodeJS.ProcessEnv;
24732
+ }): Promise<{
24733
+ record: IndexNowKey;
24734
+ source: IndexNowKeySource;
24735
+ }>;
24736
+ declare function listIndexNowKeys(): Promise<Array<Omit<IndexNowKey, 'key'>>>;
24737
+ declare function removeIndexNowKey(siteValue: string): Promise<boolean>;
24738
+ //#endregion
24739
+ //#region packages/core/src/links/types.d.ts
24740
+ type LinkEvidenceProvider = 'bing-webmaster' | 'csv-import' | 'json-import' | 'jsonl-import';
24741
+ type LinkEvidenceRow = {
24742
+ sourceUrl: string;
24743
+ sourceDomain: string;
24744
+ targetUrl: string;
24745
+ anchorText?: string;
24746
+ firstSeenAt?: string;
24747
+ lastSeenAt?: string;
24748
+ nofollow?: boolean;
24749
+ };
24750
+ type LinkTargetCount = {
24751
+ targetUrl: string;
24752
+ providerReportedLinks?: number;
24753
+ observedLinks: number;
24754
+ };
24755
+ type LinkEvidenceProvenance = {
24756
+ provider: LinkEvidenceProvider;
24757
+ observedAt: string;
24758
+ cached: false;
24759
+ suppliedRows: number;
24760
+ validRows: number;
24761
+ invalidRows: number;
24762
+ duplicateRows: number;
24763
+ capped: boolean;
24764
+ rowLimit: number;
24765
+ completeness: 'complete' | 'partial' | 'unknown';
24766
+ file?: {
24767
+ path: string;
24768
+ format: 'csv' | 'json' | 'jsonl';
24769
+ bytesRead: number;
24770
+ fileBytes: number;
24771
+ };
24772
+ providerRequests?: {
24773
+ methods: string[];
24774
+ targetPagesRequested: number;
24775
+ detailPagesRequested: number;
24776
+ maxConcurrentRequests: number;
24777
+ };
24778
+ providerCoverage?: {
24779
+ targetCountRows: {
24780
+ returnedRows: number;
24781
+ retainedRows: number;
24782
+ invalidRows: number;
24783
+ };
24784
+ detailRows: {
24785
+ returnedRows: number;
24786
+ retainedRows: number;
24787
+ invalidRows: number;
24788
+ };
24789
+ };
24790
+ };
24791
+ type CollectedLinkEvidence = {
24792
+ rows: LinkEvidenceRow[];
24793
+ targetCounts: LinkTargetCount[];
24794
+ provenance: LinkEvidenceProvenance;
24795
+ warnings: string[];
24796
+ };
24797
+ //#endregion
24798
+ //#region packages/core/src/links/bing.d.ts
24799
+ declare function collectBingLinkEvidence(input: {
24800
+ site: string;
24801
+ client?: BingWebmasterClient;
24802
+ targetLimit?: number;
24803
+ detailPagesPerTarget?: number;
24804
+ rowLimit?: number;
24805
+ }): Promise<CollectedLinkEvidence>;
24806
+ //#endregion
24807
+ //#region packages/core/src/links/import.d.ts
24808
+ type ImportFormat = 'csv' | 'json' | 'jsonl';
24809
+ declare function importLinkEvidence(input: {
24810
+ file: string;
24811
+ format?: ImportFormat;
24812
+ rowLimit?: number;
24813
+ }): Promise<CollectedLinkEvidence>;
24814
+ //#endregion
24815
+ //#region packages/core/src/links/normalize.d.ts
24816
+ type RawLinkEvidenceRow = Record<string, unknown>;
24817
+ declare function normalizeLinkEvidenceRow(raw: RawLinkEvidenceRow): LinkEvidenceRow | undefined;
24818
+ declare function linkEvidenceKey(row: LinkEvidenceRow): string;
24819
+ declare function compareLinkEvidence(a: LinkEvidenceRow, b: LinkEvidenceRow): number;
24820
+ //#endregion
24821
+ //#region packages/core/src/links/report.d.ts
24822
+ declare function linkEvidenceReport(input: {
24823
+ evidence: CollectedLinkEvidence;
24824
+ limit?: number;
24825
+ }): {
24826
+ schemaVersion: 1;
24827
+ generatedAt: string;
24828
+ dataStatus: "partial" | "complete";
24829
+ summary: {
24830
+ observedLinks: number;
24831
+ referringDomains: number;
24832
+ targetPages: number;
24833
+ providerTargetPages: number;
24834
+ };
24835
+ provenance: LinkEvidenceProvenance;
24836
+ selection: {
24837
+ availableRows: number;
24838
+ returnedRows: number;
24839
+ omittedRows: number;
24840
+ limit: number;
24841
+ };
24842
+ targetCounts: LinkTargetCount[];
24843
+ links: LinkEvidenceRow[];
24844
+ warnings: string[];
24845
+ caveats: string[];
24846
+ };
24847
+ //#endregion
23093
24848
  //#region packages/core/src/logger.d.ts
23094
24849
  declare function createLogger(runId: string): pino.Logger;
23095
24850
  declare function makeRunId(): string;
@@ -23105,6 +24860,7 @@ interface SeoCliPaths {
23105
24860
  configFile: string;
23106
24861
  tokensFile: string;
23107
24862
  oauthClientFile: string;
24863
+ providerSecretsFile: string;
23108
24864
  telemetryStateFile: string;
23109
24865
  cacheDbFile: string;
23110
24866
  }
@@ -23191,6 +24947,163 @@ declare class JsonFileStorageAdapter implements StorageAdapter {
23191
24947
  }
23192
24948
  declare const localCredentialsProvider: LocalCredentialsProvider;
23193
24949
  //#endregion
24950
+ //#region packages/core/src/server-logs/types.d.ts
24951
+ type ServerLogFormat = 'combined' | 'jsonl';
24952
+ type CrawlerCategory = 'search' | 'ai';
24953
+ type ServerLogRecord = {
24954
+ timestamp: string;
24955
+ method: string;
24956
+ path: string;
24957
+ status: number;
24958
+ bytes?: number;
24959
+ userAgent?: string;
24960
+ crawler?: {
24961
+ family: string;
24962
+ category: CrawlerCategory;
24963
+ };
24964
+ };
24965
+ type StatusBreakdown = {
24966
+ success: number;
24967
+ redirect: number;
24968
+ clientError: number;
24969
+ serverError: number;
24970
+ other: number;
24971
+ };
24972
+ type CrawlerSummary = StatusBreakdown & {
24973
+ family: string;
24974
+ category: CrawlerCategory;
24975
+ requests: number;
24976
+ lastSeenAt: string;
24977
+ };
24978
+ type CrawlerPathSummary = StatusBreakdown & {
24979
+ family: string;
24980
+ category: CrawlerCategory;
24981
+ path: string;
24982
+ requests: number;
24983
+ lastSeenAt: string;
24984
+ };
24985
+ type ServerLogEvidence = {
24986
+ summary: {
24987
+ suppliedRows: number;
24988
+ parsedRows: number;
24989
+ invalidRows: number;
24990
+ crawlerRows: number;
24991
+ nonCrawlerRows: number;
24992
+ responseBytes: number;
24993
+ firstSeenAt?: string;
24994
+ lastSeenAt?: string;
24995
+ };
24996
+ statusCodes: Array<{
24997
+ status: number;
24998
+ requests: number;
24999
+ }>;
25000
+ crawlers: CrawlerSummary[];
25001
+ crawlerPaths: CrawlerPathSummary[];
25002
+ provenance: {
25003
+ source: 'local-server-log';
25004
+ observedAt: string;
25005
+ cached: false;
25006
+ file: {
25007
+ path: string;
25008
+ format: ServerLogFormat;
25009
+ bytesRead: number;
25010
+ fileBytes: number;
25011
+ };
25012
+ limits: {
25013
+ rowLimit: number;
25014
+ pathLimit: number;
25015
+ byteLimit: number;
25016
+ maxLineBytes: number;
25017
+ };
25018
+ coverage: {
25019
+ fileReadCompletely: boolean;
25020
+ rowsCapped: boolean;
25021
+ bytesCapped: boolean;
25022
+ pathsCapped: boolean;
25023
+ untrackedCrawlerPathRows: number;
25024
+ };
25025
+ completeness: 'complete' | 'partial';
25026
+ };
25027
+ warnings: string[];
25028
+ };
25029
+ //#endregion
25030
+ //#region packages/core/src/server-logs/import.d.ts
25031
+ declare function importServerLog(input: {
25032
+ file: string;
25033
+ format?: ServerLogFormat;
25034
+ rowLimit?: number;
25035
+ pathLimit?: number;
25036
+ }): Promise<ServerLogEvidence>;
25037
+ //#endregion
25038
+ //#region packages/core/src/server-logs/parse.d.ts
25039
+ declare function classifyCrawler(userAgent?: string): {
25040
+ family: string;
25041
+ category: CrawlerCategory;
25042
+ } | undefined;
25043
+ declare function parseCombinedLogLine(line: string): ServerLogRecord | undefined;
25044
+ declare function parseJsonLogLine(line: string): ServerLogRecord | undefined;
25045
+ declare function emptyStatusBreakdown(): StatusBreakdown;
25046
+ declare function addStatus(breakdown: StatusBreakdown, status: number): void;
25047
+ //#endregion
25048
+ //#region packages/core/src/server-logs/report.d.ts
25049
+ declare function serverLogReport(input: {
25050
+ evidence: ServerLogEvidence;
25051
+ limit?: number;
25052
+ }): {
25053
+ schemaVersion: 1;
25054
+ generatedAt: string;
25055
+ dataStatus: "partial" | "complete";
25056
+ summary: {
25057
+ suppliedRows: number;
25058
+ parsedRows: number;
25059
+ invalidRows: number;
25060
+ crawlerRows: number;
25061
+ nonCrawlerRows: number;
25062
+ responseBytes: number;
25063
+ firstSeenAt?: string;
25064
+ lastSeenAt?: string;
25065
+ };
25066
+ statusCodes: {
25067
+ status: number;
25068
+ requests: number;
25069
+ }[];
25070
+ crawlers: CrawlerSummary[];
25071
+ crawlerPaths: CrawlerPathSummary[];
25072
+ selection: {
25073
+ availableCrawlerPaths: number;
25074
+ returnedCrawlerPaths: number;
25075
+ omittedCrawlerPaths: number;
25076
+ limit: number;
25077
+ };
25078
+ provenance: {
25079
+ source: "local-server-log";
25080
+ observedAt: string;
25081
+ cached: false;
25082
+ file: {
25083
+ path: string;
25084
+ format: ServerLogFormat;
25085
+ bytesRead: number;
25086
+ fileBytes: number;
25087
+ };
25088
+ limits: {
25089
+ rowLimit: number;
25090
+ pathLimit: number;
25091
+ byteLimit: number;
25092
+ maxLineBytes: number;
25093
+ };
25094
+ coverage: {
25095
+ fileReadCompletely: boolean;
25096
+ rowsCapped: boolean;
25097
+ bytesCapped: boolean;
25098
+ pathsCapped: boolean;
25099
+ untrackedCrawlerPathRows: number;
25100
+ };
25101
+ completeness: "complete" | "partial";
25102
+ };
25103
+ warnings: string[];
25104
+ caveats: string[];
25105
+ };
25106
+ //#endregion
23194
25107
  //#region packages/core/src/storage/config.d.ts
23195
25108
  type TokenStorageMode = 'keychain' | 'file';
23196
25109
  type TokenStorageStatus = {
@@ -23254,7 +25167,7 @@ declare const TELEMETRY_TIMEOUT_MS = 2000;
23254
25167
  declare const TELEMETRY_EVENTS: readonly ["first_run", "setup_complete", "audit_start", "audit_complete", "audit_failed", "first_audit_complete", "active_d1", "active_d7", "active_d30"];
23255
25168
  declare const TELEMETRY_AGENTS: readonly ["claude-code", "cursor", "codex", "cli", "unknown"];
23256
25169
  declare const TELEMETRY_ERROR_CATEGORIES: readonly ["auth", "crawl_timeout", "network", "config", "unknown"];
23257
- declare const TELEMETRY_REPORTS: readonly ["affected-urls", "agent-readiness", "ai-readiness", "ai-referrals", "ai-search-scorecard", "audit-page", "audit-urls", "cannibalisation", "community-intent", "compare-crawls", "content-optimization", "crawl-diff", "site-crawl", "ctr-underperformers", "decaying-pages", "setup-check", "entity-readiness", "explain-crawl-issue", "geo-gaps", "crawl-report", "index-coverage", "index-coverage-plan", "index-monitor", "index-watch", "internal-links", "link-recovery", "crawl-history", "crawler-rules", "llms-txt-audit", "generate-llms-txt", "measure-change", "monthly-report", "okf-build", "okf-validate", "page-opportunities", "performance-audit", "pseo-audit", "query-clusters", "quick-wins", "redirect-trace", "narrative-report", "second-page", "segment-impact", "striking-distance", "seo-to-ai-query", "top-fixes", "traffic-anomaly", "update-correlation", "search-performance-overview", "monthly-action-plan", "refresh-priorities", "technical-watch", "update-postmortem"];
25170
+ declare const TELEMETRY_REPORTS: readonly ["affected-urls", "agent-readiness", "ai-readiness", "ai-referrals", "ai-search-scorecard", "audit-page", "audit-urls", "bing-webmaster-overview", "cannibalisation", "community-intent", "compare-crawls", "content-optimization", "crawl-diff", "site-crawl", "ctr-underperformers", "decaying-pages", "setup-check", "entity-readiness", "explain-crawl-issue", "geo-gaps", "crawl-report", "index-coverage", "index-coverage-plan", "index-monitor", "index-watch", "internal-links", "link-evidence", "server-log-analysis", "link-recovery", "crawl-history", "crawler-rules", "llms-txt-audit", "generate-llms-txt", "measure-change", "monthly-report", "okf-build", "okf-validate", "page-opportunities", "performance-audit", "pseo-audit", "query-clusters", "quick-wins", "redirect-trace", "narrative-report", "second-page", "segment-impact", "striking-distance", "seo-to-ai-query", "top-fixes", "traffic-anomaly", "update-correlation", "search-performance-overview", "monthly-action-plan", "refresh-priorities", "technical-watch", "update-postmortem"];
23258
25171
  type TelemetryEvent = (typeof TELEMETRY_EVENTS)[number];
23259
25172
  type TelemetryAgent = (typeof TELEMETRY_AGENTS)[number];
23260
25173
  type TelemetryErrorCategory = (typeof TELEMETRY_ERROR_CATEGORIES)[number];
@@ -23329,5 +25242,5 @@ declare function isoDate(daysAgo?: number): string;
23329
25242
  //#region packages/core/src/version.d.ts
23330
25243
  declare const SEO_VERSION: string;
23331
25244
  //#endregion
23332
- export { AI_REFERRAL_SOURCES, AI_REFERRAL_SOURCES_VERSION, AI_SEARCH_SCORECARD_METHODOLOGY_ID, AI_SEARCH_SCORECARD_METHODOLOGY_VERSION, AUDIT_PAGE_RULE_IDS, AUTOMATIC_BASELINE_SITE_RETENTION, AUTOMATIC_BASELINE_TOTAL_RETENTION, AccessBlockEvidence, AffectedUrl, AffectedUrlFilters, AffectedUrlResult, AffectedUrlSelection, type AgentDiscoveryDataStatus, type AgentEndpointDiscovery, type AgentEndpointObservation, type AgentLinkHeaderEntry, type AgentLinkHeaderObservation, AgentReadinessCheck, AgentReadinessCheckStatus, type AgentReadinessProfile, AgentReadinessReport, AgentReadinessSection, type AgentRepresentationResponse, type AgentSkillObservation, AiReadinessReport, type AiReferralDataSource, type AiReferralMetrics, type AiReferralQueryEvidence, type AiReferralReport, type AiReferralSourceDefinition, AiSearchScorecard, AnalyticsMetricDelta, AnalyticsTestMetrics, type AnalyzeCannibalRowsInput, type AnalyzeDecayInput, type AnalyzeQuickWinsInput, type AnalyzeSecondPageInput, type AnalyzeStrikingDistanceInput, AppConfig, AuditPageDependencies, AuditPageReport, AuthorizedGoogleClient, BROWSER_USER_AGENT, BacklinkProvider, BoundedSitemapInventory, BrandTermCandidate, CANNIBAL_MAXIMUM_DOMINANT_SHARE, CANNIBAL_MINIMUM_PAGE_SHARE, CRAWL_REPORT_STORAGE_VERSION, CRAWL_RUN_RETENTION, CRAWL_SKIP_REASONS, CTR_DEFAULT_LIMIT, CTR_DEFAULT_MIN_IMPRESSIONS, CTR_MAX_LIMIT, CTR_MAX_MIN_IMPRESSIONS, CacheStats, type CannibalAnalysis, CannibalDependencies, type CannibalItem, type CannibalPage, type CannibalReport, CannibalReportInput, type CannibalSelection, type CannibalSuppression, type CannibalSuppressionReason, ChangeMeasurement, ChangeMeasurementAttempt, ChangeRow, ChangeScope, ClientProfile, ClientProfileInput, CommunityIntent, CommunityIntentClassification, CommunityIntentReport, ContentExtractionDiagnostics, ContentExtractor, ContentGroup, ContentGroupDimension, ContentGroupMatchType, ContentGroupRow, ContentOptimizationIntent, ContentOptimizationReport, CoverageField, CrawlAccessSummary, type CrawlAgentDiscovery, CrawlAiBotAccess, CrawlAiResourceSignal, CrawlAiSignals, CrawlAnalyticsDataSource, CrawlConfig, CrawlConfigInput, CrawlDataSourceStatus, CrawlDataSourceWindow, CrawlDiffItem, CrawlDiffRecommendation, CrawlDiffReport, CrawlExternalLinkVerification, CrawlFetchRateConfig, CrawlImplementationQueueInput, CrawlImplementationQueueItem, CrawlImplementationQueueOutput, CrawlIssue, CrawlIssueGroup, CrawlLinkGraph, CrawlMode, CrawlOneResult, CrawlOutputFormat, CrawlPageRow, CrawlPageSnapshot, CrawlReport, CrawlReportDataSources, CrawlReportMeta, CrawlReportSaveOptions, CrawlReportStorageEnvelope, CrawlReportStoreAdapter, CrawlReportSummary, CrawlRequestObservation, CrawlResponseObservation, CrawlRun, CrawlRunRow, CrawlRunStats, CrawlSearchDataSource, type CrawlSiteDependencies, CrawlSitemapDiscovery, CrawlSkipImpact, CrawlSkipReason, CrawlSkipReasonCount, CrawlSkippedUrlsByImpact, CrawlSnapshotDiffReport, CrawlSnapshotIssueChange, CrawlSnapshotPageChange, CrawlStatusEvent, CrawlStatusHandler, CrawlStatusPhase, CrawlStrategy, CrawlerIdentity, CredentialsProvider, CreditUsage, CsvFile, CsvRow, CsvValue, type CtrUnderperformer, CtrUnderperformerDependencies, type CtrUnderperformerSelection, DataForSeoProvider, type DecayAnalysis, type DecayComparison, type DecayDiagnosis, type DecayGroup, type DecayItem, type DecayMetrics, type DecayReport, type DecaySelection, type DecaySignal, DecayingDependencies, DecayingReportInput, DiagnosePropertyDependencies, DiagnosePropertyReport, DiagnosisDataStatus, DiagnosisPriority, DoctorCheck, DueIndexSelection, DueIndexUrl, EffectiveSnippetControl, EntityReadinessCheck, EntityReadinessReport, ExternalLinkCheck, ExternalLinkCheckAttempt, ExternalLinkCheckState, ExtractedLinkLocation, ExtractedPage, FetchPageDependencies, type FetchPageOptions, type FetchRateControls, GSC_FINAL_DATA_LAG_DAYS, GSC_TIME_ZONE, Ga4AccountSummary, Ga4DataStream, Ga4PropertySummary, Ga4ReportRequest, Ga4RunReportResult, Ga4WebStreamCandidate, Ga4WebStreamMatch, GenerateLlmsTxtOptions, GeneratedLlmsTxt, GeoGap, GeoGapFilters, GeoGapResult, type GoogleAccessTokenClient, GoogleRichResultAssessment, GoogleRichResultAssessmentSelection, GoogleRichResultAssessmentStatus, GscRow, HttpProfile, INDEX_WATCH_ATTEMPT_RETENTION, INTERNAL_LINK_LEXICAL_TARGET_LIMIT, INTERNAL_LINK_MATCH_EVIDENCE_LIMIT, IndexCoverageBoundedSection, IndexCoverageCandidateItem, IndexCoverageControlReason, IndexCoverageControlledItem, IndexCoverageCrawlInput, IndexCoverageInput, IndexCoverageInventoryItem, IndexCoveragePlan, IndexCoveragePlanInput, IndexCoverageReport, IndexCoverageReportDependencies, IndexCoverageReportInput, IndexCoverageSearchConsoleInput, IndexCoverageSearchVisibilityItem, IndexCoverageSignalsReport, IndexCoverageSitemapInput, IndexCoverageSourceCompleteness, IndexCoverageSourceEvidence, IndexCoverageSourceMembership, IndexCoverageTemplateReview, IndexMonitorPropertyRun, IndexMonitorReport, IndexPlanProperty, IndexPlanSuggestion, IndexPropertyUrlAllocation, IndexWatchChange, IndexWatchChangeKind, IndexWatchDependencies, IndexWatchIssueCode, IndexWatchItem, IndexWatchPrevious, IndexWatchReport, IndexWatchRow, IndexWatchStore, type InternalLinkCandidate, type InternalLinkMatchKind, type InternalLinkOpportunity, type InternalLinkQueryMatch, InternalLinksAnalysis, InternalLinksAnalysisInput, InternalLinksDependencies, InternalLinksInput, type InternalLinksReport, type InternalLinksSelection, type InternalLinksWarning, type JavaScriptRenderingInput, type JavaScriptRenderingMode, JsonFileStorageAdapter, KeywordDataProvider, KeywordOverview, KeywordRow, LINK_RECOVER_RUN_RETENTION, LOG_MAX_AGE_MS, LOG_MAX_FILE_BYTES, LOG_MAX_TOTAL_BYTES, LatestCrawlSummaryRow, LighthouseFailureCode, LinkRecoverItem, LinkRecoverReport, LinkRecoverSummary, LlmsAuditIssue, LlmsAuditReport, type LlmsTxtLinkObservation, LocalCredentialsProvider, LogPruneResult, MAX_CRAWL_CONCURRENCY, MAX_CRAWL_DEPTH, MAX_CRAWL_PAGES, MAX_CRAWL_TIMEOUT_MS, type MarkdownAlternateObservation, type MarkdownQualityObservation, MeasureChangeDependencies, MetricDelta, MonitoringStatusCheck, MonitoringStatusReport, NarrativeSection, type OAuthClientConfig, OKF_DEFAULT_CONCEPTS, OKF_MAX_CONCEPTS, OkfBundle, OkfExplainReport, OkfFile, OkfValidationIssue, OkfValidationReport, OpportunityBenchmarkRow, PageFetchDiagnostics, PageFetchResult, type PageOpportunityAnalysis, type PageOpportunityAnalysisInput, type PageOpportunityBenchmark, PageOpportunityInput, type PageOpportunityItem, PageOpportunityReport, type PageOpportunitySelection, type PageOpportunityType, type PageOpportunityVerification, type PageRenderer, PageSearchMetrics, PageTopQuery, PartialDiagnosisReason, PerformanceAuditReport, PerformanceFieldData, PerformanceFieldMetric, PerformanceMetric, PerformanceRating, PositionBenchmark, Presentation, PresentationChart, PresentationScalar, PresentationTable, PresentationTableColumn, PriorityQueueItem, ProgressReporter, ProviderOpts, ProviderResult, PseoAuditInput, type PseoAuditReport, type PseoAuditTemplate, type PseoCrawlSample, type PseoCrawlTechnicalStatus, PseoDependencies, type PseoEntityFit, type PseoIndexStatus, type PseoInspectionSample, type PseoPageRow, type PseoQueryCoverage, type PseoQueryPageRow, PseoTemplateCluster, type PseoTemplateMetrics, PseoTemplateShape, QueryCluster, type QueryClusterPage, type QueryClusterRow, QueryContentClassification, QueryContentCoverage, QueryContentSignal, QueryFieldCoverage, type QuickWinAnalysis, type QuickWinGroup, type QuickWinItem, type QuickWinSelection, type QuickWinTemplateRecommendation, QuickWinsDependencies, QuickWinsInput, REPORT_BASELINE_MAX_AGE_MS, REPORT_BASELINE_MAX_DEPTH, REPORT_BASELINE_MAX_PAGES, ReadinessCheck, ReadinessSection, ReadinessStatus, Recommendation, RedirectTraceIssue, RedirectTraceReport, RedirectTraceStep, RenderingDocumentDifference, RenderingDocumentField, RenderingDocumentSnapshot, ReportNarrative, ResolveTechnicalBaselineInput, ResponseSizeLimitError, RobotsDirective, RuleCategory, RuleId, RuleInfo, RuleRecommendation, RuleSeverity, SCORECARD_CHECK_WEIGHTS, SCORECARD_STATUS_CREDIT, SEO_CRAWLER_IDENTITY, SEO_CRAWLER_TOKEN, SEO_CRAWLER_USER_AGENT, SEO_VERSION, SERP_TITLE_REFERENCE_WIDTH_PX, SERP_TITLE_WIDTH_PROFILE, ScorecardBand, ScorecardCheck, ScorecardCheckId, ScorecardObservation, ScorecardStatus, SearchAnalyticsRequest, SearchDateWindow, SearchPageBatch, SearchStatusIncident, SearchUpdate, type SecondPageAnalysis, SecondPageDependencies, SecondPageInput, type SecondPageItem, type SecondPageQuery, type SecondPageRecommendation, type SecondPageReport, type SecondPageSelection, type SegmentDimension, SegmentImpactDependencies, SegmentImpactInput, type SegmentImpactItem, type SegmentImpactReport, type SegmentImpactSelection, type SegmentPeriodEvidence, type SegmentRange, SemrushProvider, SeoChange, SeoCliPathOptions, SeoCliPaths, SeoError, SeoErrorCode, SeoToAiQueryReport, SerpProvider, ServiceAccountAccessTokenClient, ServiceAccountConfig, ServiceAccountStatus, SessionLedger, SitemapDocument, SitemapFetchResult, SitemapInvalidLoc, SitemapLastmodObservation, SkippedDiagnosisSection, SnippetControlEvidence, StorageAdapter, StoredTokens, type StrikingDistanceAnalysis, type StrikingDistanceAnalysisGroup, type StrikingDistanceAnalysisItem, StrikingDistanceDependencies, StrikingDistanceInput, StrikingDistanceItem, StrikingDistanceReport, TELEMETRY_AGENTS, TELEMETRY_ENDPOINT, TELEMETRY_ERROR_CATEGORIES, TELEMETRY_EVENTS, TELEMETRY_NOTICE, TELEMETRY_REPORTS, TELEMETRY_SCHEMA_VERSION, TELEMETRY_TIMEOUT_MS, TechnicalBaseline, TechnicalBaselineDependencies, TechnicalBaselineStatus, TelemetryAgent, TelemetryDisableReason, TelemetryErrorCategory, TelemetryEvent, TelemetryOptions, TelemetryPayload, TelemetryReport, TelemetryState, TelemetryStatus, TemplateAwareReport, TestMetrics, TitleWidthEstimate, TokenStorageMode, TokenStorageStatus, TopFix, TopFixFilters, TrafficAnomaly, TrafficAnomalyCoverage, TrafficAnomalyReport, type UnmatchedSegment, UpdateConfounder, UpdateCorrelationReport, UrlInspectionRequest, UrlInspectionResult, WorkflowAction, WorkflowReport, WorkflowStep, affectedUrls, agentReadiness, aiPromptsForQuery, aiReadiness, aiReferralSourceForValue, aiReferralsReport, aiSearchScorecard, allocateIndexUrlsToProperties, analyticsConnectionsSchema, analyzeAiReferralRows, analyzeCannibalRows, analyzeCtrUnderperformersFromRows, analyzeDecay, analyzeIndexCoverageSignals, analyzeInternalLinksFromRows, analyzePageOpportunitiesFromRows, analyzeQueryClustersFromRows, analyzeQuickWinsFromRows, analyzeSecondPageRows, analyzeSegmentRows, analyzeStrikingDistanceRows, analyzeTrafficAnomalyRows, assertCrawlConfigLimits, assertUrlMatchesGscProperty, attachCrawlRecommendations, auditCrawlPages, auditCrawlRequests, auditLlmsTxt, auditPage, authStatus, boundedSitemapInventory, buildOkfBundle, buildPseoAuditReportFromRows, buildTelemetryPayload, cannibalReport, changeMeasurementCsvRows, checkDatabaseReadiness, classifyCommunityIntent, clearCache, clientProfileSchema, clusterPseoTemplates, clusterQueryRows, collectAgentDiscovery, combineRobotsValues, communityIntentReport, compareCrawlPages, compareCrawlReports, compareSegmentRows, configSchema, contentCoverageRecommendation, contentCoverageType, contentOptimizationFromPageOpportunities, contentOptimizationReport, countLabel, crawlConfigHash, crawlConfigSchema, crawlDefinitionId, crawlDiff, crawlFixToQueueItem, crawlImplementationQueueWorkflow, crawlIssueGroupSchema, crawlIssueSchema, crawlOne, crawlPageSnapshotSchema, crawlReportSchema, crawlReportStore, crawlReportSummarySchema, crawlRequestObservationSchema, crawlRunId, crawlSite, crawlSkipImpact, crawlSkipReasonCountsFromRecord, crawlStatusOnly, crawlTopFixSchema, crawlerJsonSchemas, crawlerRuleCategorySchema, crawlerRuleIdSchema, crawlerRuleInfoSchema, crawlerRuleRecommendationSchema, crawlerRuleSeveritySchema, crawlerSchemas, createAuthorizedClient, createContentGroup, createCrawlReport, createCtrBenchmarkContext, createGoogleAccessTokenClient, createLogger, createPageRenderer, ctrUnderperformersReport, decayClusterDrafts, decayComparisonRange, decayingReport, deleteChange, deleteClient, deleteContentGroup, deleteCrawlReport, deleteTokens, deriveBrandTerms, detectBrandTerms, detectTelemetryAgent, diagnoseCsvFiles, diagnoseProperty, diagnosePropertyWorkflow, effectiveRobotsDirectives, effectiveSnippetControl, ensureSeoCliDirs, entityReadiness, estimateSerpTitleWidth, expectedCtrForPosition, explainOkfValidation, explainRule, fetchCruxFieldData, fetchPage, fetchPageStatus, fetchSearchStatusIncidents, fetchSitemapUrls, fetchText, fileSize, finalGscDateRange, findOverlappingSearchUpdates, formatRelativeExpiry, ga4MatchReason, ga4PropertyIdFromName, ga4ReportQualityWarnings, ga4RequestCanUseCache, ga4RowsToObjects, generateLlmsTxt, geoGaps, geoGapsReport, getAuthModeStatus, getCacheStats, getChange, getClient, getClientConfig, getContentGroup, getDb, getKeywordProvider, getPreviousRun, getPrivacySnapshot, getRepeatedLinkRecoverUrls, getRunPages, getSeoCliPaths, getServiceAccountConfig, getServiceAccountStatus, getTelemetryStatus, getTokenStorageStatus, googleAnalyticsPropertyId, groupCrawlIssues, hasMetaRobotsDirective, hasRule, hasXRobotsDirective, hashKey, indexCoveragePlan, indexCoverageSignals, indexMonitor, indexWatch, inferPseoTemplate, inferTemplateMovement, initializeTelemetry, insertCrawlRun, insertLinkRecoverRun, inspectUrl, internalLinksReport, interpretUpdateCorrelation, isBrandQuery, isCompatibleTechnicalBaseline, isCurrentTechnicalBaseline, isEntityEvidenceSchemaType, isSiteIdentitySchemaType, isSkippableReportError, isTelemetryCi, isTelemetryReport, isoDate, isoWeek, latestCrawlReport, latestCrawlSummaries, latestFinalGscDate, latestIndexWatchSummary, latestLinkRecoverSummary, linkEntries, linkRecover, linkRecoverRecommendation, listChanges, listClients, listContentGroups, listCrawlReports, listGa4AccountSummaries, listGa4DataStreams, listRules, listSearchUpdates, listSites, loadCrawlReport, localCredentialsProvider, loginWithLoopback, makeRunId, matchGa4WebStreams, measureChange, measureCoverage, metaRobotsDirectives, migrateLegacyMacConfig, missingOAuthClientMessage, missingSharedClientLoginMessage, monitoringStatus, monthlyReport, monthlyReportWorkflow, narrativeCsvFiles, normalizeCrawlConfig, normalizeCrawlSkipReasonCounts, normalizeForCoverage, normalizeHttpUrl, normalizeJavaScriptRenderingMode, normalizeLoadedCrawlReport, noteCacheWrite, okfConceptLimit, pageEvidenceRecommendation, pageOpportunitiesReport, parseOlderThan, parsePseoPath, performanceAudit, performanceReportIsCacheable, planDueIndexUrls, planIndexCoverageFromUrls, plural, propertyMatchesUrl, providerPreferenceSchema, pruneIndexWatchSnapshots, pruneLogs, pseoAuditOptions, pseoAuditReport, pseoCsvFiles, pseoIndexStatus, pseoPresentation, publicHttpFetch, queryClusterReport, queryClusterTokens, queryContentCoverageFromPage, queryContentFieldsFromPage, queryFieldCoverage, queryOpportunityRecommendation, queryPageMetrics, queryPageTopQuery, queryPagesMetrics, queryPagesMetricsBatch, queryPagesTopQueries, queryPagesTopQueriesBatch, querySearchAnalytics, quickWinsCsvRows, quickWinsReport, readBoundedResponseText, readConfig, readOauthClient, readTokens, recommendCrawlDiffItem, recommendationForRule, recordChange, redirectTrace, refreshAuthToken, refreshPrioritiesCsvFiles, refreshPrioritiesWorkflow, renderCrawlCsv, renderCrawlHtml, renderCrawlJunit, renderCrawlMarkdownTickets, renderCrawlPagesCsv, renderCrawlPretty, renderCsv, renderPresentationTablesMarkdown, renderPseoMarkdown, renderWorkflowMarkdown, reportNarrative, reportPresentation, requestHeaders, resolveSegmentRanges, resolveSeoCliPaths, resolveTechnicalBaseline, reviewObservations, roundedPosition, runDoctor, runGa4Report, safeError, saveClient, saveCrawlReport, secondPage, segmentComparisonRange, segmentImpact, segmentRangeDays, selectAffectedUrls, selectDueIndexUrls, seoErrorEnvelope, seoToAiQueryReport, sessionSourceInListFilter, setDefaultClient, setTelemetryEnabled, setTokenStorageMode, shiftIsoDate, shouldExcludeBrandQuery, siteSchema, sqliteCrawlReportStore, strikingDistance, summarizeCrawlReport, pageTechnicalSignals as technicalPageSignals, technicalWatchWorkflow, telemetryErrorCategory, templateForUrl, toSeoError, tokenSchema, topCrawlRecommendations, topFixes, trackTelemetryReportComplete, trackTelemetryReportFailed, trackTelemetryReportStart, trackTelemetrySetupComplete, trafficAnomaly, unavailableSegmentImpactReport, unicodeTokens, updateCorrelation, updatePostmortemCsvFiles, updatePostmortemWorkflow, validateOkfFiles, verifyQueryContent, workflowPresentation, writeConfig, writeOauthClient, writeTokens, xRobotsDirectives };
25245
+ export { AI_REFERRAL_SOURCES, AI_REFERRAL_SOURCES_VERSION, AI_SEARCH_SCORECARD_METHODOLOGY_ID, AI_SEARCH_SCORECARD_METHODOLOGY_VERSION, AUDIT_PAGE_RULE_IDS, AUTOMATIC_BASELINE_SITE_RETENTION, AUTOMATIC_BASELINE_TOTAL_RETENTION, AccessBlockEvidence, AffectedUrl, AffectedUrlFilters, AffectedUrlResult, AffectedUrlSelection, type AgentDiscoveryDataStatus, type AgentEndpointDiscovery, type AgentEndpointObservation, type AgentLinkHeaderEntry, type AgentLinkHeaderObservation, AgentReadinessCheck, AgentReadinessCheckStatus, type AgentReadinessProfile, AgentReadinessReport, AgentReadinessSection, type AgentRepresentationResponse, type AgentSkillObservation, AiReadinessReport, type AiReferralDataSource, type AiReferralMetrics, type AiReferralQueryEvidence, type AiReferralReport, type AiReferralSourceDefinition, AiSearchScorecard, AnalyticsMetricDelta, AnalyticsTestMetrics, type AnalyzeCannibalRowsInput, type AnalyzeDecayInput, type AnalyzeQuickWinsInput, type AnalyzeSecondPageInput, type AnalyzeStrikingDistanceInput, AppConfig, AuditPageDependencies, AuditPageReport, AuthorizedGoogleClient, BING_API_KEY_ENV, BING_API_KEY_SECRET, BROWSER_USER_AGENT, BacklinkProvider, BingCrawlRow, BingDimensionRow, BingLinkCountRow, BingLinkPage, BingRows, BingTrafficRow, BingUrlLinkRow, BingWebmasterClient, BingWebmasterCredentials, BingWebmasterSite, BoundedSitemapInventory, BrandTermCandidate, CANNIBAL_MAXIMUM_DOMINANT_SHARE, CANNIBAL_MINIMUM_PAGE_SHARE, CRAWL_REPORT_STORAGE_VERSION, CRAWL_RUN_RETENTION, CRAWL_SKIP_REASONS, CTR_DEFAULT_LIMIT, CTR_DEFAULT_MIN_IMPRESSIONS, CTR_MAX_LIMIT, CTR_MAX_MIN_IMPRESSIONS, CacheStats, type CannibalAnalysis, CannibalDependencies, type CannibalItem, type CannibalPage, type CannibalReport, CannibalReportInput, type CannibalSelection, type CannibalSuppression, type CannibalSuppressionReason, ChangeMeasurement, ChangeMeasurementAttempt, ChangeRow, ChangeScope, ClientProfile, ClientProfileInput, CollectedLinkEvidence, CommunityIntent, CommunityIntentClassification, CommunityIntentReport, ContentExtractionDiagnostics, ContentExtractor, ContentGroup, ContentGroupDimension, ContentGroupMatchType, ContentGroupRow, ContentOptimizationIntent, ContentOptimizationReport, CoverageField, CrawlAccessSummary, type CrawlAgentDiscovery, CrawlAiBotAccess, CrawlAiResourceSignal, CrawlAiSignals, CrawlAnalyticsDataSource, CrawlConfig, CrawlConfigInput, CrawlDataSourceStatus, CrawlDataSourceWindow, CrawlDiffItem, CrawlDiffRecommendation, CrawlDiffReport, CrawlExternalLinkVerification, CrawlFetchRateConfig, CrawlImplementationQueueInput, CrawlImplementationQueueItem, CrawlImplementationQueueOutput, CrawlIssue, CrawlIssueGroup, CrawlLinkGraph, CrawlMode, CrawlOneResult, CrawlOutputFormat, CrawlPageRow, CrawlPageSnapshot, CrawlReport, CrawlReportDataSources, CrawlReportMeta, CrawlReportSaveOptions, CrawlReportStorageEnvelope, CrawlReportStoreAdapter, CrawlReportSummary, CrawlRequestObservation, CrawlResponseObservation, CrawlRun, CrawlRunRow, CrawlRunStats, CrawlSearchDataSource, type CrawlSiteChecks, type CrawlSiteDependencies, CrawlSitemapDiscovery, CrawlSkipImpact, CrawlSkipReason, CrawlSkipReasonCount, CrawlSkippedUrlsByImpact, CrawlSnapshotDiffReport, CrawlSnapshotIssueChange, CrawlSnapshotPageChange, CrawlStatusEvent, CrawlStatusHandler, CrawlStatusPhase, CrawlStrategy, CrawlerCategory, CrawlerIdentity, CrawlerPathSummary, CrawlerSummary, CredentialsProvider, CreditUsage, CsvFile, CsvRow, CsvValue, type CtrUnderperformer, CtrUnderperformerDependencies, type CtrUnderperformerSelection, DataForSeoProvider, type DecayAnalysis, type DecayComparison, type DecayDiagnosis, type DecayGroup, type DecayItem, type DecayMetrics, type DecayReport, type DecaySelection, type DecaySignal, DecayingDependencies, DecayingReportInput, DiagnosePropertyDependencies, DiagnosePropertyReport, DiagnosisDataStatus, DiagnosisPriority, DoctorCheck, DueIndexSelection, DueIndexUrl, EffectiveSnippetControl, EntityReadinessCheck, EntityReadinessReport, ExternalLinkCheck, ExternalLinkCheckAttempt, ExternalLinkCheckState, ExtractedLinkLocation, ExtractedPage, FetchPageDependencies, type FetchPageOptions, type FetchRateControls, GSC_FINAL_DATA_LAG_DAYS, GSC_TIME_ZONE, Ga4AccountSummary, Ga4DataStream, Ga4PropertySummary, Ga4ReportRequest, Ga4RunReportResult, Ga4WebStreamCandidate, Ga4WebStreamMatch, GenerateLlmsTxtOptions, GeneratedLlmsTxt, GeoGap, GeoGapFilters, GeoGapResult, type GoogleAccessTokenClient, GoogleRichResultAssessment, GoogleRichResultAssessmentSelection, GoogleRichResultAssessmentStatus, GscRow, HttpProfile, INDEXNOW_ENDPOINT, INDEXNOW_KEYS_SECRET, INDEXNOW_KEY_ENV, INDEXNOW_MAX_URLS, INDEX_WATCH_ATTEMPT_RETENTION, INTERNAL_LINK_LEXICAL_TARGET_LIMIT, INTERNAL_LINK_MATCH_EVIDENCE_LIMIT, IndexCoverageBoundedSection, IndexCoverageCandidateItem, IndexCoverageControlReason, IndexCoverageControlledItem, IndexCoverageCrawlInput, IndexCoverageInput, IndexCoverageInventoryItem, IndexCoveragePlan, IndexCoveragePlanInput, IndexCoverageReport, IndexCoverageReportDependencies, IndexCoverageReportInput, IndexCoverageSearchConsoleInput, IndexCoverageSearchVisibilityItem, IndexCoverageSignalsReport, IndexCoverageSitemapInput, IndexCoverageSourceCompleteness, IndexCoverageSourceEvidence, IndexCoverageSourceMembership, IndexCoverageTemplateReview, IndexMonitorPropertyRun, IndexMonitorReport, IndexNowKey, IndexNowKeySource, IndexNowSubmission, IndexPlanProperty, IndexPlanSuggestion, IndexPropertyUrlAllocation, IndexWatchChange, IndexWatchChangeKind, IndexWatchDependencies, IndexWatchIssueCode, IndexWatchItem, IndexWatchPrevious, IndexWatchReport, IndexWatchRow, IndexWatchStore, type InternalLinkCandidate, type InternalLinkMatchKind, type InternalLinkOpportunity, type InternalLinkQueryMatch, InternalLinksAnalysis, InternalLinksAnalysisInput, InternalLinksDependencies, InternalLinksInput, type InternalLinksReport, type InternalLinksSelection, type InternalLinksWarning, type JavaScriptRenderingInput, type JavaScriptRenderingMode, JsonFileStorageAdapter, KeywordDataProvider, KeywordOverview, KeywordRow, LINK_RECOVER_RUN_RETENTION, LOG_MAX_AGE_MS, LOG_MAX_FILE_BYTES, LOG_MAX_TOTAL_BYTES, LatestCrawlSummaryRow, LighthouseFailureCode, LinkEvidenceProvenance, LinkEvidenceProvider, LinkEvidenceRow, LinkRecoverItem, LinkRecoverReport, LinkRecoverSummary, LinkTargetCount, LlmsAuditIssue, LlmsAuditReport, type LlmsTxtLinkObservation, LocalCredentialsProvider, LogPruneResult, MAX_CRAWL_CONCURRENCY, MAX_CRAWL_DEPTH, MAX_CRAWL_PAGES, MAX_CRAWL_TIMEOUT_MS, type MarkdownAlternateObservation, type MarkdownQualityObservation, MeasureChangeDependencies, MetricDelta, MonitoringStatusCheck, MonitoringStatusReport, NarrativeSection, type OAuthClientConfig, OKF_DEFAULT_CONCEPTS, OKF_MAX_CONCEPTS, OkfBundle, OkfExplainReport, OkfFile, OkfValidationIssue, OkfValidationReport, OpportunityBenchmarkRow, PageFetchDiagnostics, PageFetchResult, type PageOpportunityAnalysis, type PageOpportunityAnalysisInput, type PageOpportunityBenchmark, PageOpportunityInput, type PageOpportunityItem, PageOpportunityReport, type PageOpportunitySelection, type PageOpportunityType, type PageOpportunityVerification, type PageRenderer, PageSearchMetrics, PageTopQuery, PartialDiagnosisReason, PerformanceAuditReport, PerformanceFieldData, PerformanceFieldMetric, PerformanceMetric, PerformanceRating, PositionBenchmark, Presentation, PresentationChart, PresentationScalar, PresentationTable, PresentationTableColumn, PriorityQueueItem, ProgressReporter, ProviderOpts, ProviderResult, ProviderSecret, ProviderSecretSource, PseoAuditInput, type PseoAuditReport, type PseoAuditTemplate, type PseoCrawlSample, type PseoCrawlTechnicalStatus, PseoDependencies, type PseoEntityFit, type PseoIndexStatus, type PseoInspectionSample, type PseoPageRow, type PseoQueryCoverage, type PseoQueryPageRow, PseoTemplateCluster, type PseoTemplateMetrics, PseoTemplateShape, QueryCluster, type QueryClusterPage, type QueryClusterRow, QueryContentClassification, QueryContentCoverage, QueryContentSignal, QueryFieldCoverage, type QuickWinAnalysis, type QuickWinGroup, type QuickWinItem, type QuickWinSelection, type QuickWinTemplateRecommendation, QuickWinsDependencies, QuickWinsInput, REPORT_BASELINE_MAX_AGE_MS, REPORT_BASELINE_MAX_DEPTH, REPORT_BASELINE_MAX_PAGES, RawLinkEvidenceRow, ReadinessCheck, ReadinessSection, ReadinessStatus, Recommendation, RedirectTraceIssue, RedirectTraceReport, RedirectTraceStep, RenderingDocumentDifference, RenderingDocumentField, RenderingDocumentSnapshot, ReportHtmlInput, ReportHtmlSection, ReportHtmlView, ReportNarrative, ResolveTechnicalBaselineInput, ResponseSizeLimitError, RobotsDirective, RuleCategory, RuleId, RuleInfo, RuleRecommendation, RuleSeverity, SCORECARD_CHECK_WEIGHTS, SCORECARD_STATUS_CREDIT, SEO_CRAWLER_IDENTITY, SEO_CRAWLER_TOKEN, SEO_CRAWLER_USER_AGENT, SEO_VERSION, SERP_TITLE_REFERENCE_WIDTH_PX, SERP_TITLE_WIDTH_PROFILE, ScorecardBand, ScorecardCheck, ScorecardCheckId, ScorecardObservation, ScorecardStatus, SearchAnalyticsRequest, SearchDateWindow, SearchPageBatch, SearchStatusIncident, SearchUpdate, type SecondPageAnalysis, SecondPageDependencies, SecondPageInput, type SecondPageItem, type SecondPageQuery, type SecondPageRecommendation, type SecondPageReport, type SecondPageSelection, type SegmentDimension, SegmentImpactDependencies, SegmentImpactInput, type SegmentImpactItem, type SegmentImpactReport, type SegmentImpactSelection, type SegmentPeriodEvidence, type SegmentRange, SemrushProvider, SeoChange, SeoCliPathOptions, SeoCliPaths, SeoError, SeoErrorCode, SeoToAiQueryReport, SerpProvider, ServerLogEvidence, ServerLogFormat, ServerLogRecord, ServiceAccountAccessTokenClient, ServiceAccountConfig, ServiceAccountStatus, SessionLedger, SitemapDocument, SitemapFetchResult, SitemapInvalidLoc, SitemapLastmodObservation, SkippedDiagnosisSection, SnippetControlEvidence, StatusBreakdown, StorageAdapter, StoredTokens, type StrikingDistanceAnalysis, type StrikingDistanceAnalysisGroup, type StrikingDistanceAnalysisItem, StrikingDistanceDependencies, StrikingDistanceInput, StrikingDistanceItem, StrikingDistanceReport, TELEMETRY_AGENTS, TELEMETRY_ENDPOINT, TELEMETRY_ERROR_CATEGORIES, TELEMETRY_EVENTS, TELEMETRY_NOTICE, TELEMETRY_REPORTS, TELEMETRY_SCHEMA_VERSION, TELEMETRY_TIMEOUT_MS, TechnicalBaseline, TechnicalBaselineDependencies, TechnicalBaselineStatus, TelemetryAgent, TelemetryDisableReason, TelemetryErrorCategory, TelemetryEvent, TelemetryOptions, TelemetryPayload, TelemetryReport, TelemetryState, TelemetryStatus, TemplateAwareReport, TestMetrics, TitleWidthEstimate, TokenStorageMode, TokenStorageStatus, TopFix, TopFixFilters, TrafficAnomaly, TrafficAnomalyCoverage, TrafficAnomalyReport, type UnmatchedSegment, UpdateConfounder, UpdateCorrelationReport, UrlInspectionRequest, UrlInspectionResult, WorkflowAction, WorkflowReport, WorkflowStep, addStatus, affectedUrls, agentReadiness, aiPromptsForQuery, aiReadiness, aiReferralSourceForValue, aiReferralsReport, aiSearchScorecard, allocateIndexUrlsToProperties, analyticsConnectionsSchema, analyzeAiReferralRows, analyzeBingCrawl, analyzeBingDimensions, analyzeBingTraffic, analyzeCannibalRows, analyzeCtrUnderperformersFromRows, analyzeDecay, analyzeIndexCoverageSignals, analyzeInternalLinksFromRows, analyzePageOpportunitiesFromRows, analyzeQueryClustersFromRows, analyzeQuickWinsFromRows, analyzeSecondPageRows, analyzeSegmentRows, analyzeStrikingDistanceRows, analyzeTrafficAnomalyRows, assertCrawlConfigLimits, assertUrlMatchesGscProperty, attachCrawlRecommendations, auditCrawlPages, auditCrawlRequests, auditLlmsTxt, auditPage, authStatus, bingAnalysisDefaults, bingWebmasterOverview, bingWebmasterSiteUrl, boundedSitemapInventory, buildOkfBundle, buildPseoAuditReportFromRows, buildTelemetryPayload, cannibalReport, changeMeasurementCsvRows, checkDatabaseReadiness, classifyCommunityIntent, classifyCrawler, clearCache, clientProfileSchema, clusterPseoTemplates, clusterQueryRows, collectAgentDiscovery, collectBingLinkEvidence, combineRobotsValues, communityIntentReport, compareCrawlPages, compareCrawlReports, compareLinkEvidence, compareSegmentRows, configSchema, contentCoverageRecommendation, contentCoverageType, contentOptimizationFromPageOpportunities, contentOptimizationReport, countLabel, crawlConfigHash, crawlConfigSchema, crawlDefinitionId, crawlDiff, crawlFixToQueueItem, crawlImplementationQueueWorkflow, crawlIssueGroupSchema, crawlIssueSchema, crawlOne, crawlPageSnapshotSchema, crawlReportSchema, crawlReportStore, crawlReportSummarySchema, crawlRequestObservationSchema, crawlRunId, crawlSite, crawlSkipImpact, crawlSkipReasonCountsFromRecord, crawlStatusOnly, crawlTopFixSchema, crawlerJsonSchemas, crawlerRuleCategorySchema, crawlerRuleIdSchema, crawlerRuleInfoSchema, crawlerRuleRecommendationSchema, crawlerRuleSeveritySchema, crawlerSchemas, createAuthorizedClient, createBingWebmasterClient, createContentGroup, createCrawlReport, createCtrBenchmarkContext, createGoogleAccessTokenClient, createIndexNowKey, createIndexNowKeyRecord, createLogger, createPageRenderer, ctrUnderperformersReport, decayClusterDrafts, decayComparisonRange, decayingReport, deleteChange, deleteClient, deleteContentGroup, deleteCrawlReport, deleteProviderSecret, deleteTokens, deriveBrandTerms, detectBrandTerms, detectTelemetryAgent, diagnoseCsvFiles, diagnoseProperty, diagnosePropertyWorkflow, effectiveRobotsDirectives, effectiveSnippetControl, emptyStatusBreakdown, ensureSeoCliDirs, entityReadiness, estimateSerpTitleWidth, expectedCtrForPosition, explainOkfValidation, explainRule, fetchCruxFieldData, fetchPage, fetchPageStatus, fetchSearchStatusIncidents, fetchSitemapUrls, fetchText, fileSize, finalGscDateRange, findOverlappingSearchUpdates, formatRelativeExpiry, ga4MatchReason, ga4PropertyIdFromName, ga4ReportQualityWarnings, ga4RequestCanUseCache, ga4RowsToObjects, generateLlmsTxt, geoGaps, geoGapsReport, getAuthModeStatus, getCacheStats, getChange, getClient, getClientConfig, getContentGroup, getDb, getKeywordProvider, getPreviousRun, getPrivacySnapshot, getRepeatedLinkRecoverUrls, getRunPages, getSeoCliPaths, getServiceAccountConfig, getServiceAccountStatus, getTelemetryStatus, getTokenStorageStatus, googleAnalyticsPropertyId, groupCrawlIssues, hasMetaRobotsDirective, hasRule, hasXRobotsDirective, hashKey, importLinkEvidence, importServerLog, indexCoveragePlan, indexCoverageSignals, indexMonitor, indexWatch, inferPseoTemplate, inferTemplateMovement, initializeTelemetry, insertCrawlRun, insertLinkRecoverRun, inspectUrl, internalLinksReport, interpretUpdateCorrelation, isBrandQuery, isCompatibleTechnicalBaseline, isCurrentTechnicalBaseline, isEntityEvidenceSchemaType, isSiteIdentitySchemaType, isSkippableReportError, isTelemetryCi, isTelemetryReport, isoDate, isoWeek, latestCrawlReport, latestCrawlSummaries, latestFinalGscDate, latestIndexWatchSummary, latestLinkRecoverSummary, linkEntries, linkEvidenceKey, linkEvidenceReport, linkRecover, linkRecoverRecommendation, listChanges, listClients, listContentGroups, listCrawlReports, listGa4AccountSummaries, listGa4DataStreams, listIndexNowKeys, listRules, listSearchUpdates, listSites, loadCrawlReport, localCredentialsProvider, loginWithLoopback, makeRunId, matchGa4WebStreams, measureChange, measureCoverage, metaRobotsDirectives, migrateLegacyMacConfig, missingOAuthClientMessage, missingSharedClientLoginMessage, monitoringStatus, monthlyReport, monthlyReportWorkflow, narrativeCsvFiles, normalizeCrawlConfig, normalizeCrawlSkipReasonCounts, normalizeForCoverage, normalizeHttpUrl, normalizeJavaScriptRenderingMode, normalizeLinkEvidenceRow, normalizeLoadedCrawlReport, noteCacheWrite, okfConceptLimit, pageEvidenceRecommendation, pageOpportunitiesReport, parseCombinedLogLine, parseIndexNowSite, parseJsonLogLine, parseOlderThan, parsePseoPath, performanceAudit, performanceReportIsCacheable, planDueIndexUrls, planIndexCoverageFromUrls, plural, propertyMatchesUrl, providerPreferenceSchema, pruneIndexWatchSnapshots, pruneLogs, pseoAuditOptions, pseoAuditReport, pseoCsvFiles, pseoIndexStatus, pseoPresentation, publicHttpFetch, queryClusterReport, queryClusterTokens, queryContentCoverageFromPage, queryContentFieldsFromPage, queryFieldCoverage, queryOpportunityRecommendation, queryPageMetrics, queryPageTopQuery, queryPagesMetrics, queryPagesMetricsBatch, queryPagesTopQueries, queryPagesTopQueriesBatch, querySearchAnalytics, quickWinsCsvRows, quickWinsReport, readBoundedResponseText, readConfig, readOauthClient, readProviderSecret, readTokens, recommendCrawlDiffItem, recommendationForRule, recordChange, redirectTrace, refreshAuthToken, refreshPrioritiesCsvFiles, refreshPrioritiesWorkflow, removeIndexNowKey, renderCrawlCsv, renderCrawlHtml, renderCrawlJunit, renderCrawlMarkdownTickets, renderCrawlPagesCsv, renderCrawlPretty, renderCsv, renderPresentationTablesMarkdown, renderPseoMarkdown, renderReportHtml, renderWorkflowMarkdown, reportNarrative, reportPresentation, requestHeaders, resolveIndexNowKey, resolveSegmentRanges, resolveSeoCliPaths, resolveTechnicalBaseline, reviewObservations, roundedPosition, runDoctor, runGa4Report, safeError, saveClient, saveCrawlReport, saveIndexNowKey, secondPage, segmentComparisonRange, segmentImpact, segmentRangeDays, selectAffectedUrls, selectDueIndexUrls, seoErrorEnvelope, seoToAiQueryReport, serverLogReport, sessionSourceInListFilter, setClientBingSite, setDefaultClient, setTelemetryEnabled, setTokenStorageMode, shiftIsoDate, shouldExcludeBrandQuery, siteSchema, sqliteCrawlReportStore, strikingDistance, submitIndexNow, summarizeCrawlReport, pageTechnicalSignals as technicalPageSignals, technicalWatchWorkflow, telemetryErrorCategory, templateForUrl, toSeoError, tokenSchema, topCrawlRecommendations, topFixes, trackTelemetryReportComplete, trackTelemetryReportFailed, trackTelemetryReportStart, trackTelemetrySetupComplete, trafficAnomaly, unavailableSegmentImpactReport, unicodeTokens, updateCorrelation, updatePostmortemCsvFiles, updatePostmortemWorkflow, validateIndexNowKey, validateIndexNowKeyRecord, validateOkfFiles, verifyIndexNowKey, verifyQueryContent, workflowPresentation, writeConfig, writeOauthClient, writeProviderSecret, writeTokens, xRobotsDirectives };
23333
25246
  //# sourceMappingURL=index.d.ts.map