@rankcli/agent-runtime 0.0.39 → 0.0.40
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/LICENSE +110 -0
- package/README.md +2 -2
- package/dist/deno/engine.bundle.js +28598 -0
- package/dist/deno/index.ts +3 -0
- package/dist/index.d.mts +818 -7
- package/dist/index.d.ts +818 -7
- package/dist/index.js +6244 -168
- package/dist/index.mjs +6186 -132
- package/package.json +11 -6
package/dist/index.d.mts
CHANGED
|
@@ -213,17 +213,14 @@ interface IssueDefinition {
|
|
|
213
213
|
}
|
|
214
214
|
declare const ISSUE_DEFINITIONS: Record<string, IssueDefinition>;
|
|
215
215
|
|
|
216
|
-
/** Shape
|
|
216
|
+
/** Shape these checks share: (html, url) -> issues + check-specific data. */
|
|
217
217
|
type PremiumCheckFn = (html: string, url: string) => {
|
|
218
218
|
issues: AuditIssue[];
|
|
219
219
|
data: unknown;
|
|
220
220
|
};
|
|
221
221
|
/**
|
|
222
|
-
*
|
|
223
|
-
*
|
|
224
|
-
* directly) or the CLI (after a valid license decrypts the WASM-embedded
|
|
225
|
-
* bundle). This package never imports an implementation, only this type -
|
|
226
|
-
* see docs/GEO_COVERAGE.md or packaging.test.ts for why.
|
|
222
|
+
* The checks `runFullAudit` runs through its `premiumChecks` option. The default is the
|
|
223
|
+
* built-in set in premium-checks.ts; a caller can pass its own to replace or stub them.
|
|
227
224
|
*/
|
|
228
225
|
interface PremiumChecks {
|
|
229
226
|
analyzeFeaturedSnippet: PremiumCheckFn;
|
|
@@ -1152,6 +1149,820 @@ declare function analyzeResponsiveImages(html: string, url: string): {
|
|
|
1152
1149
|
data: ResponsiveImageData;
|
|
1153
1150
|
};
|
|
1154
1151
|
|
|
1152
|
+
interface SnippetOpportunity {
|
|
1153
|
+
type: 'definition' | 'list' | 'table' | 'paragraph' | 'qa';
|
|
1154
|
+
heading: string;
|
|
1155
|
+
score: number;
|
|
1156
|
+
issues: string[];
|
|
1157
|
+
suggestions: string[];
|
|
1158
|
+
}
|
|
1159
|
+
interface FeaturedSnippetData {
|
|
1160
|
+
hasDefinitionFormat: boolean;
|
|
1161
|
+
hasListFormat: boolean;
|
|
1162
|
+
hasTableFormat: boolean;
|
|
1163
|
+
hasQAFormat: boolean;
|
|
1164
|
+
hasInvertedPyramid: boolean;
|
|
1165
|
+
opportunities: SnippetOpportunity[];
|
|
1166
|
+
faqSchemaPresent: boolean;
|
|
1167
|
+
howToSchemaPresent: boolean;
|
|
1168
|
+
questionHeadingsCount: number;
|
|
1169
|
+
}
|
|
1170
|
+
/**
|
|
1171
|
+
* Main function: Analyze page for featured snippet optimization
|
|
1172
|
+
*/
|
|
1173
|
+
declare function analyzeFeaturedSnippet(html: string, url: string): {
|
|
1174
|
+
issues: AuditIssue[];
|
|
1175
|
+
data: FeaturedSnippetData;
|
|
1176
|
+
};
|
|
1177
|
+
|
|
1178
|
+
interface InternalLinkGraphData {
|
|
1179
|
+
totalInternalLinks: number;
|
|
1180
|
+
orphanPages: string[];
|
|
1181
|
+
deepPages: string[];
|
|
1182
|
+
hubPages: string[];
|
|
1183
|
+
authorityPages: string[];
|
|
1184
|
+
linkDistribution: {
|
|
1185
|
+
url: string;
|
|
1186
|
+
links: number;
|
|
1187
|
+
}[];
|
|
1188
|
+
firstLinkAnchors: Map<string, string>;
|
|
1189
|
+
contextualLinkRatio: number;
|
|
1190
|
+
navigationVsContentRatio: number;
|
|
1191
|
+
}
|
|
1192
|
+
/**
|
|
1193
|
+
* Main function: Analyze internal link structure
|
|
1194
|
+
*/
|
|
1195
|
+
declare function analyzeInternalLinkGraph(html: string, url: string): {
|
|
1196
|
+
issues: AuditIssue[];
|
|
1197
|
+
data: Partial<InternalLinkGraphData>;
|
|
1198
|
+
};
|
|
1199
|
+
|
|
1200
|
+
interface AuthorInfo {
|
|
1201
|
+
name: string | null;
|
|
1202
|
+
bio: string | null;
|
|
1203
|
+
credentials: string[];
|
|
1204
|
+
socialLinks: string[];
|
|
1205
|
+
hasSchema: boolean;
|
|
1206
|
+
photoPresent: boolean;
|
|
1207
|
+
}
|
|
1208
|
+
interface OrganizationInfo {
|
|
1209
|
+
name: string | null;
|
|
1210
|
+
type: string | null;
|
|
1211
|
+
hasSchema: boolean;
|
|
1212
|
+
hasContactInfo: boolean;
|
|
1213
|
+
hasSocialProfiles: boolean;
|
|
1214
|
+
trustBadges: string[];
|
|
1215
|
+
}
|
|
1216
|
+
interface ReviewInfo {
|
|
1217
|
+
hasReviewer: boolean;
|
|
1218
|
+
reviewerName: string | null;
|
|
1219
|
+
reviewerCredentials: string[];
|
|
1220
|
+
reviewDate: string | null;
|
|
1221
|
+
nextReviewDate: string | null;
|
|
1222
|
+
reviewType: 'medical' | 'expert' | 'fact-check' | 'editorial' | null;
|
|
1223
|
+
}
|
|
1224
|
+
interface TrustBadgeInfo {
|
|
1225
|
+
pressFeatures: string[];
|
|
1226
|
+
certifications: string[];
|
|
1227
|
+
awards: string[];
|
|
1228
|
+
partnerships: string[];
|
|
1229
|
+
}
|
|
1230
|
+
interface EEATData {
|
|
1231
|
+
author: AuthorInfo;
|
|
1232
|
+
organization: OrganizationInfo;
|
|
1233
|
+
reviewer: ReviewInfo;
|
|
1234
|
+
trustBadges: TrustBadgeInfo;
|
|
1235
|
+
experienceSignals: string[];
|
|
1236
|
+
expertiseSignals: string[];
|
|
1237
|
+
authoritySignals: string[];
|
|
1238
|
+
trustSignals: string[];
|
|
1239
|
+
citationCount: number;
|
|
1240
|
+
authoritativeSources: string[];
|
|
1241
|
+
contentDate: {
|
|
1242
|
+
published: string | null;
|
|
1243
|
+
modified: string | null;
|
|
1244
|
+
};
|
|
1245
|
+
hasVideoContent: boolean;
|
|
1246
|
+
videoExperienceSignals: string[];
|
|
1247
|
+
isYMYL: boolean;
|
|
1248
|
+
}
|
|
1249
|
+
/**
|
|
1250
|
+
* Main function: Analyze E-E-A-T signals
|
|
1251
|
+
*/
|
|
1252
|
+
declare function analyzeEEATSignals(html: string, url: string): {
|
|
1253
|
+
issues: AuditIssue[];
|
|
1254
|
+
data: EEATData;
|
|
1255
|
+
};
|
|
1256
|
+
|
|
1257
|
+
interface ZipfAnalysis {
|
|
1258
|
+
alpha: number;
|
|
1259
|
+
isNatural: boolean;
|
|
1260
|
+
rSquared: number;
|
|
1261
|
+
stuffedKeywords: Array<{
|
|
1262
|
+
word: string;
|
|
1263
|
+
deviation: number;
|
|
1264
|
+
}>;
|
|
1265
|
+
missingMidTail: string[];
|
|
1266
|
+
}
|
|
1267
|
+
interface EntropyAnalysis {
|
|
1268
|
+
wordEntropy: number;
|
|
1269
|
+
normalizedEntropy: number;
|
|
1270
|
+
vocabularyRichness: number;
|
|
1271
|
+
repetitionScore: number;
|
|
1272
|
+
bigramEntropy: number;
|
|
1273
|
+
qualityIndicator: 'excellent' | 'good' | 'average' | 'poor';
|
|
1274
|
+
}
|
|
1275
|
+
interface BM25Analysis {
|
|
1276
|
+
keyword: string;
|
|
1277
|
+
score: number;
|
|
1278
|
+
termFrequency: number;
|
|
1279
|
+
saturationPoint: boolean;
|
|
1280
|
+
lengthPenalty: number;
|
|
1281
|
+
recommendation: string;
|
|
1282
|
+
}
|
|
1283
|
+
interface ContentScienceData {
|
|
1284
|
+
zipf: ZipfAnalysis;
|
|
1285
|
+
entropy: EntropyAnalysis;
|
|
1286
|
+
bm25: BM25Analysis[];
|
|
1287
|
+
overallQuality: 'excellent' | 'good' | 'needs-work' | 'poor';
|
|
1288
|
+
}
|
|
1289
|
+
/**
|
|
1290
|
+
* Run comprehensive content science analysis
|
|
1291
|
+
*/
|
|
1292
|
+
declare function analyzeContentScience(html: string, url: string, targetKeywords?: string[]): {
|
|
1293
|
+
issues: AuditIssue[];
|
|
1294
|
+
data: ContentScienceData;
|
|
1295
|
+
};
|
|
1296
|
+
|
|
1297
|
+
interface PageKeywordData {
|
|
1298
|
+
url: string;
|
|
1299
|
+
title: string;
|
|
1300
|
+
h1: string[];
|
|
1301
|
+
metaDescription: string;
|
|
1302
|
+
primaryKeywords: string[];
|
|
1303
|
+
keywordDensity: Map<string, number>;
|
|
1304
|
+
}
|
|
1305
|
+
/**
|
|
1306
|
+
* Analyze a single page for cannibalization signals
|
|
1307
|
+
* Used for single-page audits to detect potential self-cannibalization patterns
|
|
1308
|
+
*/
|
|
1309
|
+
declare function analyzeKeywordCannibalizationSinglePage(html: string, url: string): {
|
|
1310
|
+
issues: AuditIssue[];
|
|
1311
|
+
data: PageKeywordData;
|
|
1312
|
+
};
|
|
1313
|
+
|
|
1314
|
+
interface AboveFoldAnalysis {
|
|
1315
|
+
hasHeadline: boolean;
|
|
1316
|
+
headlineText: string | null;
|
|
1317
|
+
hasCTA: boolean;
|
|
1318
|
+
ctaCount: number;
|
|
1319
|
+
ctaTexts: string[];
|
|
1320
|
+
hasForm: boolean;
|
|
1321
|
+
formType: 'contact' | 'signup' | 'search' | 'calculator' | 'other' | null;
|
|
1322
|
+
hasSocialProof: boolean;
|
|
1323
|
+
socialProofTypes: string[];
|
|
1324
|
+
hasHeroImage: boolean;
|
|
1325
|
+
hasVideo: boolean;
|
|
1326
|
+
estimatedAboveFoldScore: number;
|
|
1327
|
+
}
|
|
1328
|
+
interface SocialProofAnalysis {
|
|
1329
|
+
hasTestimonials: boolean;
|
|
1330
|
+
testimonialCount: number;
|
|
1331
|
+
hasReviews: boolean;
|
|
1332
|
+
reviewCount: number;
|
|
1333
|
+
hasRatings: boolean;
|
|
1334
|
+
averageRating: number | null;
|
|
1335
|
+
hasClientLogos: boolean;
|
|
1336
|
+
clientLogoCount: number;
|
|
1337
|
+
hasCaseStudies: boolean;
|
|
1338
|
+
hasAwards: boolean;
|
|
1339
|
+
hasCertifications: boolean;
|
|
1340
|
+
hasTrustBadges: boolean;
|
|
1341
|
+
hasStatistics: boolean;
|
|
1342
|
+
statisticsFound: string[];
|
|
1343
|
+
socialProofScore: number;
|
|
1344
|
+
}
|
|
1345
|
+
interface EngagementTriggers {
|
|
1346
|
+
hasCalculator: boolean;
|
|
1347
|
+
calculatorTypes: string[];
|
|
1348
|
+
hasQuiz: boolean;
|
|
1349
|
+
hasInteractiveElement: boolean;
|
|
1350
|
+
interactiveTypes: string[];
|
|
1351
|
+
hasEmbeddedVideo: boolean;
|
|
1352
|
+
videoCount: number;
|
|
1353
|
+
hasExpandableContent: boolean;
|
|
1354
|
+
hasTabsOrAccordion: boolean;
|
|
1355
|
+
hasChatWidget: boolean;
|
|
1356
|
+
engagementScore: number;
|
|
1357
|
+
}
|
|
1358
|
+
interface ConversionElementsData {
|
|
1359
|
+
aboveFold: AboveFoldAnalysis;
|
|
1360
|
+
socialProof: SocialProofAnalysis;
|
|
1361
|
+
engagementTriggers: EngagementTriggers;
|
|
1362
|
+
pageType: 'commercial' | 'informational' | 'mixed' | 'unknown';
|
|
1363
|
+
recommendations: string[];
|
|
1364
|
+
}
|
|
1365
|
+
/**
|
|
1366
|
+
* Main function: Analyze conversion elements
|
|
1367
|
+
*/
|
|
1368
|
+
declare function analyzeConversionElements(html: string, url: string): {
|
|
1369
|
+
issues: AuditIssue[];
|
|
1370
|
+
data: ConversionElementsData;
|
|
1371
|
+
};
|
|
1372
|
+
|
|
1373
|
+
interface KeywordPlacementData {
|
|
1374
|
+
detectedKeywords: string[];
|
|
1375
|
+
urlAnalysis: {
|
|
1376
|
+
containsKeyword: boolean;
|
|
1377
|
+
keywordInUrl: string | null;
|
|
1378
|
+
urlSlug: string;
|
|
1379
|
+
isCleanUrl: boolean;
|
|
1380
|
+
hasDynamicParams: boolean;
|
|
1381
|
+
};
|
|
1382
|
+
titleAnalysis: {
|
|
1383
|
+
hasExactMatch: boolean;
|
|
1384
|
+
hasPartialMatch: boolean;
|
|
1385
|
+
titleMatchScore: number;
|
|
1386
|
+
position: 'start' | 'middle' | 'end' | 'none';
|
|
1387
|
+
};
|
|
1388
|
+
h1Analysis: {
|
|
1389
|
+
hasExactMatch: boolean;
|
|
1390
|
+
hasPartialMatch: boolean;
|
|
1391
|
+
h1Text: string | null;
|
|
1392
|
+
};
|
|
1393
|
+
firstParagraphAnalysis: {
|
|
1394
|
+
hasKeyword: boolean;
|
|
1395
|
+
keywordPosition: number | null;
|
|
1396
|
+
firstParagraphPreview: string;
|
|
1397
|
+
isWithinFirst100Words: boolean;
|
|
1398
|
+
};
|
|
1399
|
+
metaDescriptionAnalysis: {
|
|
1400
|
+
hasKeyword: boolean;
|
|
1401
|
+
position: 'start' | 'middle' | 'end' | 'none';
|
|
1402
|
+
};
|
|
1403
|
+
overallPlacementScore: number;
|
|
1404
|
+
}
|
|
1405
|
+
/**
|
|
1406
|
+
* Main function: Analyze keyword placement
|
|
1407
|
+
*/
|
|
1408
|
+
declare function analyzeKeywordPlacement(html: string, url: string): {
|
|
1409
|
+
issues: AuditIssue[];
|
|
1410
|
+
data: KeywordPlacementData;
|
|
1411
|
+
};
|
|
1412
|
+
|
|
1413
|
+
interface InternalLink {
|
|
1414
|
+
href: string;
|
|
1415
|
+
anchorText: string;
|
|
1416
|
+
context: 'navigation' | 'content' | 'footer' | 'sidebar';
|
|
1417
|
+
isDoFollow: boolean;
|
|
1418
|
+
destination: 'internal' | 'external' | 'anchor';
|
|
1419
|
+
}
|
|
1420
|
+
interface TopicalClusterData {
|
|
1421
|
+
currentUrl: string;
|
|
1422
|
+
internalLinks: InternalLink[];
|
|
1423
|
+
externalLinks: InternalLink[];
|
|
1424
|
+
anchorLinks: InternalLink[];
|
|
1425
|
+
linkMetrics: {
|
|
1426
|
+
totalLinks: number;
|
|
1427
|
+
internalLinkCount: number;
|
|
1428
|
+
externalLinkCount: number;
|
|
1429
|
+
contentLinks: number;
|
|
1430
|
+
uniqueInternalDestinations: number;
|
|
1431
|
+
avgAnchorTextLength: number;
|
|
1432
|
+
hasExactMatchAnchors: boolean;
|
|
1433
|
+
};
|
|
1434
|
+
clusterSignals: {
|
|
1435
|
+
hasHubStructure: boolean;
|
|
1436
|
+
hasSpokeLinks: boolean;
|
|
1437
|
+
hasBreadcrumbs: boolean;
|
|
1438
|
+
hasRelatedPosts: boolean;
|
|
1439
|
+
hasCategoryLinks: boolean;
|
|
1440
|
+
internalToExternalRatio: number;
|
|
1441
|
+
};
|
|
1442
|
+
orphanPageRisk: 'low' | 'medium' | 'high';
|
|
1443
|
+
recommendations: string[];
|
|
1444
|
+
}
|
|
1445
|
+
/**
|
|
1446
|
+
* Main function: Analyze topical cluster structure
|
|
1447
|
+
*/
|
|
1448
|
+
declare function analyzeTopicalClusters(html: string, url: string): {
|
|
1449
|
+
issues: AuditIssue[];
|
|
1450
|
+
data: TopicalClusterData;
|
|
1451
|
+
};
|
|
1452
|
+
|
|
1453
|
+
interface PlatformLink {
|
|
1454
|
+
platform: string;
|
|
1455
|
+
url: string;
|
|
1456
|
+
type: 'profile' | 'content' | 'mention' | 'embed';
|
|
1457
|
+
location: 'header' | 'footer' | 'content' | 'sidebar' | 'schema';
|
|
1458
|
+
}
|
|
1459
|
+
interface PlatformPresenceData {
|
|
1460
|
+
detectedPlatforms: string[];
|
|
1461
|
+
platformLinks: PlatformLink[];
|
|
1462
|
+
socialProfiles: {
|
|
1463
|
+
platform: string;
|
|
1464
|
+
url: string;
|
|
1465
|
+
hasSchemaMarkup: boolean;
|
|
1466
|
+
}[];
|
|
1467
|
+
embeddedContent: {
|
|
1468
|
+
platform: string;
|
|
1469
|
+
count: number;
|
|
1470
|
+
}[];
|
|
1471
|
+
metrics: {
|
|
1472
|
+
totalPlatforms: number;
|
|
1473
|
+
hasYouTube: boolean;
|
|
1474
|
+
hasTikTok: boolean;
|
|
1475
|
+
hasTwitter: boolean;
|
|
1476
|
+
hasLinkedIn: boolean;
|
|
1477
|
+
hasReddit: boolean;
|
|
1478
|
+
hasFacebook: boolean;
|
|
1479
|
+
hasInstagram: boolean;
|
|
1480
|
+
hasPinterest: boolean;
|
|
1481
|
+
hasPodcast: boolean;
|
|
1482
|
+
hasGitHub: boolean;
|
|
1483
|
+
};
|
|
1484
|
+
schemaPresence: {
|
|
1485
|
+
hasSameAs: boolean;
|
|
1486
|
+
sameAsUrls: string[];
|
|
1487
|
+
hasOrganizationSchema: boolean;
|
|
1488
|
+
hasPersonSchema: boolean;
|
|
1489
|
+
};
|
|
1490
|
+
crossPlatformScore: number;
|
|
1491
|
+
recommendations: string[];
|
|
1492
|
+
}
|
|
1493
|
+
/**
|
|
1494
|
+
* Main function: Analyze platform presence
|
|
1495
|
+
*/
|
|
1496
|
+
declare function analyzePlatformPresence(html: string, url: string): {
|
|
1497
|
+
issues: AuditIssue[];
|
|
1498
|
+
data: PlatformPresenceData;
|
|
1499
|
+
};
|
|
1500
|
+
|
|
1501
|
+
interface InteractiveElement {
|
|
1502
|
+
type: 'calculator' | 'quiz' | 'form' | 'widget' | 'embed' | 'tool' | 'interactive';
|
|
1503
|
+
description: string;
|
|
1504
|
+
location: string;
|
|
1505
|
+
hasUserInput: boolean;
|
|
1506
|
+
}
|
|
1507
|
+
interface InteractiveToolsData {
|
|
1508
|
+
hasInteractiveTools: boolean;
|
|
1509
|
+
tools: InteractiveElement[];
|
|
1510
|
+
dwellTimeSignals: {
|
|
1511
|
+
hasCalculator: boolean;
|
|
1512
|
+
hasQuiz: boolean;
|
|
1513
|
+
hasInteractiveWidget: boolean;
|
|
1514
|
+
hasVideoEmbed: boolean;
|
|
1515
|
+
hasCodePlayground: boolean;
|
|
1516
|
+
hasConfigurator: boolean;
|
|
1517
|
+
hasChatWidget: boolean;
|
|
1518
|
+
};
|
|
1519
|
+
toolCount: number;
|
|
1520
|
+
dwellTimeScore: number;
|
|
1521
|
+
recommendations: string[];
|
|
1522
|
+
}
|
|
1523
|
+
/**
|
|
1524
|
+
* Main function: Analyze interactive tools on the page
|
|
1525
|
+
*/
|
|
1526
|
+
declare function analyzeInteractiveTools(html: string, url: string): {
|
|
1527
|
+
issues: AuditIssue[];
|
|
1528
|
+
data: InteractiveToolsData;
|
|
1529
|
+
};
|
|
1530
|
+
|
|
1531
|
+
type FunnelStage = 'tofu' | 'mofu' | 'bofu' | 'mixed';
|
|
1532
|
+
interface FunnelIntentData {
|
|
1533
|
+
detectedStage: FunnelStage;
|
|
1534
|
+
confidence: number;
|
|
1535
|
+
signals: {
|
|
1536
|
+
tofu: string[];
|
|
1537
|
+
mofu: string[];
|
|
1538
|
+
bofu: string[];
|
|
1539
|
+
};
|
|
1540
|
+
metrics: {
|
|
1541
|
+
informationalScore: number;
|
|
1542
|
+
considerationScore: number;
|
|
1543
|
+
conversionScore: number;
|
|
1544
|
+
};
|
|
1545
|
+
pageType: string;
|
|
1546
|
+
aiOverviewRisk: 'high' | 'medium' | 'low';
|
|
1547
|
+
recommendations: string[];
|
|
1548
|
+
}
|
|
1549
|
+
/**
|
|
1550
|
+
* Main function: Analyze search funnel intent
|
|
1551
|
+
*/
|
|
1552
|
+
declare function analyzeFunnelIntent(html: string, url: string): {
|
|
1553
|
+
issues: AuditIssue[];
|
|
1554
|
+
data: FunnelIntentData;
|
|
1555
|
+
};
|
|
1556
|
+
|
|
1557
|
+
interface NavBoostSignalsData {
|
|
1558
|
+
clickOptimization: {
|
|
1559
|
+
hasClearTitle: boolean;
|
|
1560
|
+
hasCompellingMetaDesc: boolean;
|
|
1561
|
+
titleTruncated: boolean;
|
|
1562
|
+
metaDescTruncated: boolean;
|
|
1563
|
+
estimatedCTRPotential: 'high' | 'medium' | 'low';
|
|
1564
|
+
};
|
|
1565
|
+
engagementSignals: {
|
|
1566
|
+
hasTableOfContents: boolean;
|
|
1567
|
+
hasJumpLinks: boolean;
|
|
1568
|
+
estimatedScrollDepth: 'deep' | 'medium' | 'shallow';
|
|
1569
|
+
hasProgressIndicator: boolean;
|
|
1570
|
+
hasStickyNavigation: boolean;
|
|
1571
|
+
contentSections: number;
|
|
1572
|
+
};
|
|
1573
|
+
bounceRiskFactors: {
|
|
1574
|
+
hasAboveFoldContent: boolean;
|
|
1575
|
+
hasSlowLoadingIndicators: boolean;
|
|
1576
|
+
hasPopupRisk: boolean;
|
|
1577
|
+
hasIntrusiveAds: boolean;
|
|
1578
|
+
contentMatchesTitle: boolean;
|
|
1579
|
+
hasImmediateValue: boolean;
|
|
1580
|
+
};
|
|
1581
|
+
dwellTimeFactors: {
|
|
1582
|
+
estimatedReadTime: number;
|
|
1583
|
+
hasVideo: boolean;
|
|
1584
|
+
hasInteractiveElements: boolean;
|
|
1585
|
+
contentDepth: 'comprehensive' | 'moderate' | 'thin';
|
|
1586
|
+
hasRelatedContent: boolean;
|
|
1587
|
+
};
|
|
1588
|
+
overallNavBoostScore: number;
|
|
1589
|
+
recommendations: string[];
|
|
1590
|
+
}
|
|
1591
|
+
/**
|
|
1592
|
+
* Main function: Analyze NavBoost optimization signals
|
|
1593
|
+
*/
|
|
1594
|
+
declare function analyzeNavBoostSignals(html: string, url: string): {
|
|
1595
|
+
issues: AuditIssue[];
|
|
1596
|
+
data: NavBoostSignalsData;
|
|
1597
|
+
};
|
|
1598
|
+
|
|
1599
|
+
interface EntitySEOData {
|
|
1600
|
+
entitySignals: {
|
|
1601
|
+
hasOrganizationSchema: boolean;
|
|
1602
|
+
hasPersonSchema: boolean;
|
|
1603
|
+
hasProductSchema: boolean;
|
|
1604
|
+
hasSameAsReferences: boolean;
|
|
1605
|
+
sameAsUrls: string[];
|
|
1606
|
+
hasMainEntityOfPage: boolean;
|
|
1607
|
+
hasAboutReference: boolean;
|
|
1608
|
+
};
|
|
1609
|
+
entityClarity: {
|
|
1610
|
+
primaryEntityType: string | null;
|
|
1611
|
+
entityNameConsistency: boolean;
|
|
1612
|
+
hasEntityDefinition: boolean;
|
|
1613
|
+
hasWikipediaStyleIntro: boolean;
|
|
1614
|
+
entityMentionCount: number;
|
|
1615
|
+
};
|
|
1616
|
+
topicalCoverage: {
|
|
1617
|
+
hasRelatedEntities: boolean;
|
|
1618
|
+
relatedEntityCount: number;
|
|
1619
|
+
hasEntityRelationships: boolean;
|
|
1620
|
+
topicalDepthScore: number;
|
|
1621
|
+
};
|
|
1622
|
+
knowledgePanelSignals: {
|
|
1623
|
+
hasCompanyInfo: boolean;
|
|
1624
|
+
hasFounderInfo: boolean;
|
|
1625
|
+
hasHeadquarters: boolean;
|
|
1626
|
+
hasIndustryMention: boolean;
|
|
1627
|
+
hasDateFounded: boolean;
|
|
1628
|
+
};
|
|
1629
|
+
entitySEOScore: number;
|
|
1630
|
+
recommendations: string[];
|
|
1631
|
+
}
|
|
1632
|
+
/**
|
|
1633
|
+
* Main function: Analyze Entity SEO optimization
|
|
1634
|
+
*/
|
|
1635
|
+
declare function analyzeEntitySEO(html: string, url: string): {
|
|
1636
|
+
issues: AuditIssue[];
|
|
1637
|
+
data: EntitySEOData;
|
|
1638
|
+
};
|
|
1639
|
+
|
|
1640
|
+
interface FreshnessSignalsData {
|
|
1641
|
+
dateSignals: {
|
|
1642
|
+
hasDatePublished: boolean;
|
|
1643
|
+
hasDateModified: boolean;
|
|
1644
|
+
hasSchemaDatePublished: boolean;
|
|
1645
|
+
hasSchemaDateModified: boolean;
|
|
1646
|
+
visibleDateOnPage: string | null;
|
|
1647
|
+
schemaDatePublished: string | null;
|
|
1648
|
+
schemaDateModified: string | null;
|
|
1649
|
+
daysSincePublished: number | null;
|
|
1650
|
+
daysSinceModified: number | null;
|
|
1651
|
+
};
|
|
1652
|
+
freshnessIndicators: {
|
|
1653
|
+
hasCurrentYearMention: boolean;
|
|
1654
|
+
hasRecentDateReferences: boolean;
|
|
1655
|
+
hasUpdateNotice: boolean;
|
|
1656
|
+
hasChangeLog: boolean;
|
|
1657
|
+
hasVersionNumber: boolean;
|
|
1658
|
+
contentFreshnessSignal: 'fresh' | 'dated' | 'evergreen' | 'unknown';
|
|
1659
|
+
};
|
|
1660
|
+
qdfRelevance: {
|
|
1661
|
+
isLikelyQDFTopic: boolean;
|
|
1662
|
+
qdfIndicators: string[];
|
|
1663
|
+
updateFrequencyRecommendation: string;
|
|
1664
|
+
};
|
|
1665
|
+
aiCitationOptimization: {
|
|
1666
|
+
hasLastUpdatedMeta: boolean;
|
|
1667
|
+
hasClearDateFormat: boolean;
|
|
1668
|
+
freshnessSchemaComplete: boolean;
|
|
1669
|
+
aiCitationReadiness: 'high' | 'medium' | 'low';
|
|
1670
|
+
};
|
|
1671
|
+
freshnessScore: number;
|
|
1672
|
+
recommendations: string[];
|
|
1673
|
+
}
|
|
1674
|
+
/**
|
|
1675
|
+
* Main function: Analyze freshness signals
|
|
1676
|
+
*/
|
|
1677
|
+
declare function analyzeFreshnessSignals(html: string, url: string): {
|
|
1678
|
+
issues: AuditIssue[];
|
|
1679
|
+
data: FreshnessSignalsData;
|
|
1680
|
+
};
|
|
1681
|
+
|
|
1682
|
+
/**
|
|
1683
|
+
* AI Content Structure Checks
|
|
1684
|
+
*
|
|
1685
|
+
* AI systems prefer well-structured content that's easy to parse and quote.
|
|
1686
|
+
* These checks verify content is formatted optimally for AI consumption:
|
|
1687
|
+
* - Tables for comparisons/data
|
|
1688
|
+
* - Numbered lists for steps/procedures
|
|
1689
|
+
* - Bullet points for features/benefits
|
|
1690
|
+
* - Clear Q&A format for direct answers
|
|
1691
|
+
* - Concise, quotable statements
|
|
1692
|
+
*/
|
|
1693
|
+
|
|
1694
|
+
interface AIContentStructureData {
|
|
1695
|
+
tables: {
|
|
1696
|
+
count: number;
|
|
1697
|
+
hasComparisonTable: boolean;
|
|
1698
|
+
hasDataTable: boolean;
|
|
1699
|
+
};
|
|
1700
|
+
lists: {
|
|
1701
|
+
orderedLists: number;
|
|
1702
|
+
unorderedLists: number;
|
|
1703
|
+
hasStepByStep: boolean;
|
|
1704
|
+
hasBulletedFeatures: boolean;
|
|
1705
|
+
};
|
|
1706
|
+
qaFormat: {
|
|
1707
|
+
hasExplicitQA: boolean;
|
|
1708
|
+
questionCount: number;
|
|
1709
|
+
hasDirectAnswers: boolean;
|
|
1710
|
+
};
|
|
1711
|
+
quotability: {
|
|
1712
|
+
hasDefinitions: boolean;
|
|
1713
|
+
hasConciseStatements: boolean;
|
|
1714
|
+
shortParagraphRatio: number;
|
|
1715
|
+
};
|
|
1716
|
+
structureScore: number;
|
|
1717
|
+
}
|
|
1718
|
+
declare function analyzeAIContentStructure(html: string, url: string): {
|
|
1719
|
+
issues: AuditIssue[];
|
|
1720
|
+
data: AIContentStructureData;
|
|
1721
|
+
};
|
|
1722
|
+
|
|
1723
|
+
/**
|
|
1724
|
+
* RAG Chunk Readiness
|
|
1725
|
+
*
|
|
1726
|
+
* How AI answer engines actually retrieve content: RAG (Retrieval-Augmented
|
|
1727
|
+
* Generation) systems chunk a page into pieces — the 2026 convergence
|
|
1728
|
+
* benchmark is roughly 400-512 tokens per chunk, 10-25% overlap — then
|
|
1729
|
+
* retrieve whichever chunk(s) best match a query, not the whole page. A page
|
|
1730
|
+
* whose own heading-delimited sections are naturally chunk-sized, with clear
|
|
1731
|
+
* headings and paragraphs that don't lean on the previous section's context
|
|
1732
|
+
* to make sense, is less likely to get split mid-thought by a RAG chunker —
|
|
1733
|
+
* preserving the semantic boundaries the author actually wrote, which is
|
|
1734
|
+
* what the RAG-chunking literature credits with better retrieval recall.
|
|
1735
|
+
*
|
|
1736
|
+
* This is a genuinely different angle from ai-content-structure.ts (tables/
|
|
1737
|
+
* lists/Q&A formatting): that's about FORMAT, this is about SECTION SIZE
|
|
1738
|
+
* and SELF-CONTAINMENT. Novel enough that no dedicated site-auditing tool
|
|
1739
|
+
* for it was found as of this writing — RAG-chunking guidance that exists
|
|
1740
|
+
* targets people building RAG systems, not people writing web content.
|
|
1741
|
+
*/
|
|
1742
|
+
|
|
1743
|
+
interface ChunkSection {
|
|
1744
|
+
heading: string;
|
|
1745
|
+
headingLevel: number;
|
|
1746
|
+
wordCount: number;
|
|
1747
|
+
estimatedTokens: number;
|
|
1748
|
+
sizeQuality: 'too-short' | 'good' | 'too-long';
|
|
1749
|
+
startsWithDanglingReference: boolean;
|
|
1750
|
+
}
|
|
1751
|
+
interface RAGChunkReadinessData {
|
|
1752
|
+
sections: ChunkSection[];
|
|
1753
|
+
totalSections: number;
|
|
1754
|
+
wellSizedSectionCount: number;
|
|
1755
|
+
danglingReferenceCount: number;
|
|
1756
|
+
chunkReadinessScore: number;
|
|
1757
|
+
}
|
|
1758
|
+
declare function analyzeRAGChunkReadiness(html: string, url: string): {
|
|
1759
|
+
issues: AuditIssue[];
|
|
1760
|
+
data: RAGChunkReadinessData;
|
|
1761
|
+
};
|
|
1762
|
+
|
|
1763
|
+
/**
|
|
1764
|
+
* Citation Quality Checks
|
|
1765
|
+
*
|
|
1766
|
+
* AI prioritizes content that cites reputable sources. Well-cited content
|
|
1767
|
+
* demonstrates expertise and trustworthiness (E-E-A-T signals).
|
|
1768
|
+
* These checks verify proper citation practices.
|
|
1769
|
+
*/
|
|
1770
|
+
|
|
1771
|
+
interface CitationQualityData {
|
|
1772
|
+
totalLinks: number;
|
|
1773
|
+
externalLinks: number;
|
|
1774
|
+
citationLinks: number;
|
|
1775
|
+
reputableSources: {
|
|
1776
|
+
academic: string[];
|
|
1777
|
+
government: string[];
|
|
1778
|
+
educational: string[];
|
|
1779
|
+
authoritative: string[];
|
|
1780
|
+
technical: string[];
|
|
1781
|
+
};
|
|
1782
|
+
citationPatterns: {
|
|
1783
|
+
hasInlineCitations: boolean;
|
|
1784
|
+
hasReferencesSection: boolean;
|
|
1785
|
+
hasStatistics: boolean;
|
|
1786
|
+
statisticsWithSources: number;
|
|
1787
|
+
statisticsWithoutSources: number;
|
|
1788
|
+
};
|
|
1789
|
+
citationScore: number;
|
|
1790
|
+
}
|
|
1791
|
+
declare function analyzeCitationQuality(html: string, url: string): {
|
|
1792
|
+
issues: AuditIssue[];
|
|
1793
|
+
data: CitationQualityData;
|
|
1794
|
+
};
|
|
1795
|
+
|
|
1796
|
+
/**
|
|
1797
|
+
* Answer Conciseness Checks
|
|
1798
|
+
*
|
|
1799
|
+
* AI systems prefer succinct, quotable answers. Content that provides
|
|
1800
|
+
* clear, direct answers to questions is more likely to be cited.
|
|
1801
|
+
* This check analyzes answer quality and quotability.
|
|
1802
|
+
*/
|
|
1803
|
+
|
|
1804
|
+
interface AnswerConcisenessData {
|
|
1805
|
+
headings: {
|
|
1806
|
+
total: number;
|
|
1807
|
+
questions: number;
|
|
1808
|
+
withDirectAnswers: number;
|
|
1809
|
+
};
|
|
1810
|
+
answers: {
|
|
1811
|
+
averageFirstSentenceLength: number;
|
|
1812
|
+
shortAnswersCount: number;
|
|
1813
|
+
longAnswersCount: number;
|
|
1814
|
+
quotableAnswers: string[];
|
|
1815
|
+
};
|
|
1816
|
+
definitions: {
|
|
1817
|
+
count: number;
|
|
1818
|
+
examples: string[];
|
|
1819
|
+
};
|
|
1820
|
+
keyTakeaways: {
|
|
1821
|
+
hasSummary: boolean;
|
|
1822
|
+
hasTLDR: boolean;
|
|
1823
|
+
hasKeyPoints: boolean;
|
|
1824
|
+
};
|
|
1825
|
+
concisenessScore: number;
|
|
1826
|
+
}
|
|
1827
|
+
declare function analyzeAnswerConciseness(html: string, url: string): {
|
|
1828
|
+
issues: AuditIssue[];
|
|
1829
|
+
data: AnswerConcisenessData;
|
|
1830
|
+
};
|
|
1831
|
+
|
|
1832
|
+
/**
|
|
1833
|
+
* Brand Mention Optimization Checks
|
|
1834
|
+
*
|
|
1835
|
+
* AI systems extract and quote brand information when answering queries.
|
|
1836
|
+
* This check analyzes whether your brand is clearly defined in a way
|
|
1837
|
+
* that AI can extract, quote, and recommend.
|
|
1838
|
+
*
|
|
1839
|
+
* Key insight: "AI doesn't decide who you are. It mostly just repeats
|
|
1840
|
+
* what it finds on the internet." - Control your brand narrative.
|
|
1841
|
+
*/
|
|
1842
|
+
|
|
1843
|
+
interface BrandMentionData {
|
|
1844
|
+
brandSignals: {
|
|
1845
|
+
hasBrandDefinition: boolean;
|
|
1846
|
+
hasUSP: boolean;
|
|
1847
|
+
hasValueProposition: boolean;
|
|
1848
|
+
hasBrandStatement: boolean;
|
|
1849
|
+
brandMentionCount: number;
|
|
1850
|
+
};
|
|
1851
|
+
brandCoverage: {
|
|
1852
|
+
hasPricingInfo: boolean;
|
|
1853
|
+
hasAboutSection: boolean;
|
|
1854
|
+
hasFAQSection: boolean;
|
|
1855
|
+
hasTestimonials: boolean;
|
|
1856
|
+
hasProofPoints: boolean;
|
|
1857
|
+
};
|
|
1858
|
+
brandConsistency: {
|
|
1859
|
+
hasConsistentNaming: boolean;
|
|
1860
|
+
hasContactInfo: boolean;
|
|
1861
|
+
hasSocialLinks: boolean;
|
|
1862
|
+
hasReviewLinks: boolean;
|
|
1863
|
+
};
|
|
1864
|
+
quotableBrandStatements: string[];
|
|
1865
|
+
brandScore: number;
|
|
1866
|
+
}
|
|
1867
|
+
declare function analyzeBrandMentionOptimization(html: string, url: string): {
|
|
1868
|
+
issues: AuditIssue[];
|
|
1869
|
+
data: BrandMentionData;
|
|
1870
|
+
};
|
|
1871
|
+
|
|
1872
|
+
/**
|
|
1873
|
+
* AI Citation Worthiness Checks
|
|
1874
|
+
*
|
|
1875
|
+
* AI systems prefer to cite content that demonstrates originality and
|
|
1876
|
+
* human expertise - things AI can't easily fake. This check analyzes
|
|
1877
|
+
* signals that make content worthy of being cited as a source.
|
|
1878
|
+
*
|
|
1879
|
+
* Key insight: "If AI can easily create it, don't publish it.
|
|
1880
|
+
* Add what AI can't fake: original data, real experience, real
|
|
1881
|
+
* screenshots, real documentation, and real opinions."
|
|
1882
|
+
*/
|
|
1883
|
+
|
|
1884
|
+
interface AICitationWorthinessData {
|
|
1885
|
+
originalitySignals: {
|
|
1886
|
+
hasOriginalData: boolean;
|
|
1887
|
+
hasScreenshots: boolean;
|
|
1888
|
+
hasOriginalImages: boolean;
|
|
1889
|
+
hasDatedContent: boolean;
|
|
1890
|
+
hasFirstPersonExperience: boolean;
|
|
1891
|
+
};
|
|
1892
|
+
expertiseSignals: {
|
|
1893
|
+
hasAuthorByline: boolean;
|
|
1894
|
+
hasAuthorCredentials: boolean;
|
|
1895
|
+
hasExpertQuotes: boolean;
|
|
1896
|
+
hasMethodology: boolean;
|
|
1897
|
+
hasPrimaryResearch: boolean;
|
|
1898
|
+
};
|
|
1899
|
+
proofSignals: {
|
|
1900
|
+
hasSpecificNumbers: boolean;
|
|
1901
|
+
hasCaseStudies: boolean;
|
|
1902
|
+
hasBeforeAfter: boolean;
|
|
1903
|
+
hasDocumentation: boolean;
|
|
1904
|
+
hasRealExamples: boolean;
|
|
1905
|
+
};
|
|
1906
|
+
citationWorthinessScore: number;
|
|
1907
|
+
aiProofElements: string[];
|
|
1908
|
+
}
|
|
1909
|
+
declare function analyzeAICitationWorthiness(html: string, url: string): {
|
|
1910
|
+
issues: AuditIssue[];
|
|
1911
|
+
data: AICitationWorthinessData;
|
|
1912
|
+
};
|
|
1913
|
+
|
|
1914
|
+
/**
|
|
1915
|
+
* Review Ecosystem Checks
|
|
1916
|
+
*
|
|
1917
|
+
* AI systems use review signals from multiple platforms to assess brand trust.
|
|
1918
|
+
* This check analyzes integration with review platforms and testimonial presence.
|
|
1919
|
+
*
|
|
1920
|
+
* Key insight: "If you want visibility across AI platforms, you need review
|
|
1921
|
+
* diversity. That means building reviews on the platforms that matter in
|
|
1922
|
+
* your specific niche."
|
|
1923
|
+
*/
|
|
1924
|
+
|
|
1925
|
+
interface ReviewEcosystemData {
|
|
1926
|
+
reviewPlatforms: {
|
|
1927
|
+
linked: string[];
|
|
1928
|
+
embedded: string[];
|
|
1929
|
+
sameAsLinks: string[];
|
|
1930
|
+
};
|
|
1931
|
+
testimonials: {
|
|
1932
|
+
count: number;
|
|
1933
|
+
hasAttribution: boolean;
|
|
1934
|
+
hasPhotos: boolean;
|
|
1935
|
+
hasCompanyNames: boolean;
|
|
1936
|
+
};
|
|
1937
|
+
reviewSchema: {
|
|
1938
|
+
hasAggregateRating: boolean;
|
|
1939
|
+
hasReviewSchema: boolean;
|
|
1940
|
+
ratingValue?: number;
|
|
1941
|
+
reviewCount?: number;
|
|
1942
|
+
};
|
|
1943
|
+
trustSignals: {
|
|
1944
|
+
hasTrustBadges: boolean;
|
|
1945
|
+
hasCertifications: boolean;
|
|
1946
|
+
hasAwards: boolean;
|
|
1947
|
+
hasMediaMentions: boolean;
|
|
1948
|
+
};
|
|
1949
|
+
reviewEcosystemScore: number;
|
|
1950
|
+
}
|
|
1951
|
+
declare function analyzeReviewEcosystem(html: string, url: string): {
|
|
1952
|
+
issues: AuditIssue[];
|
|
1953
|
+
data: ReviewEcosystemData;
|
|
1954
|
+
};
|
|
1955
|
+
|
|
1956
|
+
/**
|
|
1957
|
+
* The 21 checks that used to live in a private package, encrypted into the CLI's WASM
|
|
1958
|
+
* binary and decrypted with a passphrase that shipped in the same tarball. Every plan runs
|
|
1959
|
+
* every check, so they are ordinary checks now: `runFullAudit` runs them by default and
|
|
1960
|
+
* `premiumChecks` is exported for callers that want to run or replace them individually.
|
|
1961
|
+
*/
|
|
1962
|
+
|
|
1963
|
+
/** What `runFullAudit` runs when no `premiumChecks` option is given. */
|
|
1964
|
+
declare const premiumChecks: PremiumChecks;
|
|
1965
|
+
|
|
1155
1966
|
/**
|
|
1156
1967
|
* URL Safety Check (Local Hash Database)
|
|
1157
1968
|
*
|
|
@@ -5740,4 +6551,4 @@ declare namespace index {
|
|
|
5740
6551
|
export { type index_DetectionResult as DetectionResult, type index_Evidence as Evidence, type index_Framework as Framework, type index_FrameworkCheck as FrameworkCheck, type index_FrameworkInfo as FrameworkInfo, type index_FrameworkRecipe as FrameworkRecipe, index_SCORE_FLOOR as SCORE_FLOOR, index_SIGNALS as SIGNALS, index_SUPPORTED_FRAMEWORKS as SUPPORTED_FRAMEWORKS, type index_Signal as Signal, index_WEIGHT as WEIGHT, detectFramework$1 as detectFramework, index_detectFromEvidence as detectFromEvidence, index_detectFromHeaders as detectFromHeaders, index_detectFromHtml as detectFromHtml, index_detectFromPackageJson as detectFromPackageJson, index_embedRecipe as embedRecipe, index_getFrameworkChecks as getFrameworkChecks, index_getFrameworkDisplayName as getFrameworkDisplayName, index_getFrameworkIssues as getFrameworkIssues, index_getFrameworkSuggestions as getFrameworkSuggestions, index_getFrameworkSummary as getFrameworkSummary, index_getMigrationPaths as getMigrationPaths, index_getPerformanceTips as getPerformanceTips, index_getSeoChallenges as getSeoChallenges, index_getTotalFrameworkChecks as getTotalFrameworkChecks, index_loadRecipe as loadRecipe };
|
|
5741
6552
|
}
|
|
5742
6553
|
|
|
5743
|
-
export { type AIContentConfig, type AIKeywordResearchOptions, type AgentDefinition, type AgentTool, type AlertChannel, type AlertConfig, type AlertMessage, type AlertResult, type AlertSeverity, type AlertType, type AuditAlertPayload, type AuditIssue, type AuditIssueData, type AuditOptions, type AuditPRResult, type AuditReport, type AuditReportData, type AuditRunnerOptions, type AuditRunnerResult, type AuditSchedule, type BlogPostConfig, type BrandConfig, type CIAction, type CIKeywordOptions, type CIKeywordResult, COMMIT_TYPES, type ChangelogConfig, type ChangelogResult, type CitationCheckOptions, type CommitConfig, type ComparisonConfig, type ComparisonRow, type CompetitiveInsight, type CompetitiveSearchOptions, type CompetitiveSearchResult, type CompetitorComparison, type CompetitorKeywordResult, type CompetitorOverlap, type CompetitorTool, type CompetitorUrl, type ContentElements, type ContentGeneratorOptions, type ContentRecommendation, type ConventionalCommit, type CrawlResult, type CrawlStats, type CrawledPage, type CreateAuditPROptions, type CreatePROptions, type DataForSEOCredentials, type DeterministicFixInput, type DeterministicFixes, type DiscoveredPage, type EnhancedToolIdea, type ExecOptions, type ExecuteOptions, type ExecutionResult, type FAQItem, type FAQSchemaOptions, type FeaturedSnippetAnalysis, type Fix, type FixFile, type FixGeneratorOptions, type FixResult, type FrameworkInfo$1 as FrameworkInfo, type FreeKeywordResult, type FreeToolIdea, type GA4Config, type GEOAlert, type GEOAlertType, type GEOHistory, type GEOHistoryOptions, type GEOQuery, type GEOReport, type GEOResult, type GEOTrend, type GSCConfig, type GSCCredentials, type GSCPerformanceData, type GSCQueryData, type GSCQueryResult, type GeneratedCode, type GeneratedContent, type GeneratedFix, type HeadingStructure, type HeadlineAnalysis, type HealthScore, ISSUE_DEFINITIONS, type ImageInfo$2 as ImageInfo, type InjectionResult, type IntentAnalysis, type IssueCategory, type IssueDefinition, type IssueSeverity, type KeyFact, type KeyFactsOptions, type KeywordAction, type KeywordCluster, type KeywordData, type KeywordDensityAnalysis, type KeywordLLM, type KeywordOpportunity, type KeywordRecommendation, type KeywordResearchOptions, type KeywordResearchResult, type KeywordStats, type KeywordTopic, type KeywordTrend, type LLMCitationResult, type LLMJudgeOptions, type LLMProvider, LOCATION_CODES, type LSIKeyword, type LinkInfo$1 as LinkInfo, type Mention, type MentionType, type MetaData, type MetaFixOptions, type NGram, type NLPAnalysisResult, OG_IMAGE_SPECS, type OptimizeOptions, type PRConfig, type PRDescription, PRIORITY_WEIGHTS, type PRResult, type PageAudit, type PageData, type PageMeta, type PaidKeywordResult, type ParsedResponse, type PlanTier, type ProviderStats, type QuickWin, REDUNDANT_WHEN_PRESENT, type RankCheckOptions, type RankCheckResult, type RankHistory, RankTracker, type RankingResult, type RankingTierLimits, type ReadabilityResult, type ReadmeConfig, type ReadmeResult, type ReportBranding, type ReportConfig, type ReportData, type ReportPageData, type RouteInfo, type SEOAnalysisResult, type SEOFixCommit, type SEOFixSummary, type SEOIssue, type SEORecommendation, type SEOScore, SEO_SCOPES, SITE_PROFILE_QUESTIONS, type ScheduledAuditConfig, type ScheduledAuditResult, type SchemaData, Schemas, type SearchIntent, type Sentiment, type SerpApiConfig, SerpClient, type SerpClientConfig, type SerpFeature, type SiteCrawlResult, type SiteProfile, type SiteSummary, type SnippetRecommendation, type SnippetType, type SocialMetaConfig, type SocialMetaFix, type SummarizerOptions, type TFIDFResult, TIER_LIMITS, type ToolFeasibilityScore, type ToolFunction, type ToolResult, type TopicClusterResult, type TopicModel, type TrackedKeyword, type TrackerConfig, type TrackingOptions, type TrendDirection, type UncertaintyAssessment, type WizardQuestion, type WizardResponse, type WizardResult, type WizardSession, type WorkflowConfig, addTrackingResult, analyzeAnchorText, analyzeCanonicalAdvanced, analyzeClientRendering, analyzeContentFreshness, analyzeDOMStructure, analyzeFeaturedSnippetPotential, analyzeHeadings, analyzeHeadline, analyzeHreflang, analyzeImages$1 as analyzeImages, analyzeKeywordDensity, analyzeKeywords, analyzeLinks, analyzeLocalSEO, analyzeMobile, analyzeModernImages, analyzeOnPage, analyzePagination, analyzePerformance, analyzeReadability, analyzeRedirectChain, analyzeRedirects, analyzeResponsiveImages, analyzeSERPPreview, analyzeSecurity, analyzeSecurityHeaders$1 as analyzeSecurityHeaders, analyzeSocialMeta, analyzeStructuredData$1 as analyzeStructuredData, analyzeTrackerBloat, analyzeUrl, analyzeUrlSafety, index$1 as analyzers, applyFixes, assessReplacement, buildDeterministicFixes, buildFrameworkGuidance, buildGSCApiRequest, buildGSCRequest, calculateAIVisibilityScore, calculateBM25, calculateTFIDF$1 as calculateKeywordTFIDF, calculateNextRun, calculateTFIDF, checkAIBotBlocking, checkAMP, checkAdsTxt, checkAppleTouchIcon, checkBalance, checkCertificate, checkDMARC, checkGitHubCLI, checkInternalRedirects, checkJSRenderingRatio, checkLLMCitations, checkLlmsTxt, checkMobileResources, checkPlaintextEmails, checkRedirects, checkRobots, checkRobotsTxt, checkSPF, checkSitemap, classifyIntent, classifyIntents, clusterKeywordsByEmbedding, compareCompetitorVisibility, comparePeriods, completeWizard, crawlSite, crawlUrl, createAuditPR, createFallbackSummary, createGEOHistory, createPullRequest, createSEOCommit, createSEOCommits, dedupeIssues, describeConcerns, detectDuplicates, detectFramework, detectGitHubPages, detectMentions, detectSoft404, detectTechnologies, detectVisibilityChanges, discoverCompetitorKeywords, discoverPagesFromLinks, discoverRoutesFromRepo, enhanceSummaryWithCompetitors, enhanceToolIdea, enrichKeywordsWithEstimates, ensureGitRepo, evaluateAndEnhanceToolIdeas, evaluateToolFeasibility, executeAgent, extractContentHash, extractEntityPhrases, extractImages, extractKeyPhrases, extractLinks, extractMeta, extractNgrams, extractSchema, extractSeedKeywords, extractTopics, fetchCoreWebVitals, findAlmostPage1Keywords, findAppRoot, findCTROpportunities, findHtmlEntry, findLSIKeywords, findPageFiles, findTopPerformers, formatAlertMessage, formatCIResult, formatCompetitorReport, formatConventionalCommit, formatFeaturedSnippetReport, formatHeadlineReport, formatIntentReport, formatKeywordDensityReport, formatKeywordReport, formatPRBody, formatPRTitle, formatReadabilityReport, formatReport, formatSEOCommitMessage, formatTopicReport, formatWizardProgress, index as frameworks, generateAICitableContent, generateAllFixes, generateAngularSEOService, generateAspNetCoreSEO, generateAstroBaseHead, generateAstroMeta, generateBlogPost, generateBranchName, generateChangelog, generateCommitSummary, generateComparisonTable, generateCompleteSocialMetaSetup, generateDjangoSEOHelper, generateDuplicateIssues, generateEleventySEO, generateFAQSchema, generateFixes, generateGA4EnvTemplate, generateGA4ReactComponent, generateGA4Script, generateGA4ViteScript, generateGEOReport, generateGSCVerificationTag, generateGitHubActionSetup, generateGoSEO, generateHTMLReport, generateHTMLSocialMeta, generateHTMXSEO, generateHeadlineVariations, generateHugoSEO, generateJekyllSEO, generateJsonReport, generateKeyFacts, generateLaravelSEOHelper, generateMarkdownReport, generateNextAppMetadata, generateNextJsAppRouterMetadata, generateNextJsPagesRouterHead, generateNextPagesHead, generateNuxtSEOHead, generatePDFReport, generatePRDescription, generatePhoenixSEO, generateRailsSEOHelper, generateReactHelmetSocialMeta, generateReactSEOHead, generateRecommendationQueries, generateRemixMeta, generateRemixSEO, generateSecretsDoc, generateSocialMetaFix, generateSpringBootSEO, generateSvelteKitMeta, generateSvelteKitSEOHead, generateUncertaintyQuestions, generateVueSEOHead, generateWizardQuestions, generateWorkflow, getAIVisibilitySummary, getAutocompleteSuggestions, getDateRange, getExpandedSuggestions, getFrameworkSpecificFix, getFrameworkSpecificFixExtended, getGSCSetupInstructions, getGitUser, getKeywordData, getKeywordSuggestions, getMaxKdThreshold, getNextQuestion, getRelatedKeywords, getVisibilityTrend, groupKeywordsByTopic, identifyQuickWins, injectGA4, injectGSCVerification, interpolatePrompt, isGitRepo, keywordLLM, listFiles, loadAgent, loadAgentByName, mergePages, metaRefreshTarget, openAIKeywordLLM, optimizeForAI, optimizeReadme, parseGEOResponse, parseGSCResponse, parseJsonReply, parseSitemap, prioritizeKeywords, processWizardResponse, readFile, routesToUrls, runAIKeywordResearch, runAIReadinessChecks, runAdditionalChecks, runAuditWithFixes, runCIKeywordResearch, runCrawlabilityChecks, runDirectAnalysis, runFullAudit, runKeywordResearch, runNLPAnalysis, runScheduledAudit, scoreContentSEO, scoreMention, searchCompetitors, searchFormatConverters, searchHackerNews, sendAlert, sendAlerts, sendDiscordAlert, sendSlackAlert, servedDir, shouldRunAudit, shouldSendAlert, startWizardSession, suggestSchemaTypes, summarizeSite, tokenize, tools, trackLLMVisibility, transformGSCData, urlSafetyDatabase, wizardResponsesToContext, writeFile, writeGitHubActionFiles };
|
|
6554
|
+
export { type AIContentConfig, type AIKeywordResearchOptions, type AgentDefinition, type AgentTool, type AlertChannel, type AlertConfig, type AlertMessage, type AlertResult, type AlertSeverity, type AlertType, type AuditAlertPayload, type AuditIssue, type AuditIssueData, type AuditOptions, type AuditPRResult, type AuditReport, type AuditReportData, type AuditRunnerOptions, type AuditRunnerResult, type AuditSchedule, type BlogPostConfig, type BrandConfig, type CIAction, type CIKeywordOptions, type CIKeywordResult, COMMIT_TYPES, type ChangelogConfig, type ChangelogResult, type CitationCheckOptions, type CommitConfig, type ComparisonConfig, type ComparisonRow, type CompetitiveInsight, type CompetitiveSearchOptions, type CompetitiveSearchResult, type CompetitorComparison, type CompetitorKeywordResult, type CompetitorOverlap, type CompetitorTool, type CompetitorUrl, type ContentElements, type ContentGeneratorOptions, type ContentRecommendation, type ConventionalCommit, type CrawlResult, type CrawlStats, type CrawledPage, type CreateAuditPROptions, type CreatePROptions, type DataForSEOCredentials, type DeterministicFixInput, type DeterministicFixes, type DiscoveredPage, type EnhancedToolIdea, type ExecOptions, type ExecuteOptions, type ExecutionResult, type FAQItem, type FAQSchemaOptions, type FeaturedSnippetAnalysis, type Fix, type FixFile, type FixGeneratorOptions, type FixResult, type FrameworkInfo$1 as FrameworkInfo, type FreeKeywordResult, type FreeToolIdea, type GA4Config, type GEOAlert, type GEOAlertType, type GEOHistory, type GEOHistoryOptions, type GEOQuery, type GEOReport, type GEOResult, type GEOTrend, type GSCConfig, type GSCCredentials, type GSCPerformanceData, type GSCQueryData, type GSCQueryResult, type GeneratedCode, type GeneratedContent, type GeneratedFix, type HeadingStructure, type HeadlineAnalysis, type HealthScore, ISSUE_DEFINITIONS, type ImageInfo$2 as ImageInfo, type InjectionResult, type IntentAnalysis, type IssueCategory, type IssueDefinition, type IssueSeverity, type KeyFact, type KeyFactsOptions, type KeywordAction, type KeywordCluster, type KeywordData, type KeywordDensityAnalysis, type KeywordLLM, type KeywordOpportunity, type KeywordRecommendation, type KeywordResearchOptions, type KeywordResearchResult, type KeywordStats, type KeywordTopic, type KeywordTrend, type LLMCitationResult, type LLMJudgeOptions, type LLMProvider, LOCATION_CODES, type LSIKeyword, type LinkInfo$1 as LinkInfo, type Mention, type MentionType, type MetaData, type MetaFixOptions, type NGram, type NLPAnalysisResult, OG_IMAGE_SPECS, type OptimizeOptions, type PRConfig, type PRDescription, PRIORITY_WEIGHTS, type PRResult, type PageAudit, type PageData, type PageMeta, type PaidKeywordResult, type ParsedResponse, type PlanTier, type PremiumCheckFn, type PremiumChecks, type ProviderStats, type QuickWin, REDUNDANT_WHEN_PRESENT, type RankCheckOptions, type RankCheckResult, type RankHistory, RankTracker, type RankingResult, type RankingTierLimits, type ReadabilityResult, type ReadmeConfig, type ReadmeResult, type ReportBranding, type ReportConfig, type ReportData, type ReportPageData, type RouteInfo, type SEOAnalysisResult, type SEOFixCommit, type SEOFixSummary, type SEOIssue, type SEORecommendation, type SEOScore, SEO_SCOPES, SITE_PROFILE_QUESTIONS, type ScheduledAuditConfig, type ScheduledAuditResult, type SchemaData, Schemas, type SearchIntent, type Sentiment, type SerpApiConfig, SerpClient, type SerpClientConfig, type SerpFeature, type SiteCrawlResult, type SiteProfile, type SiteSummary, type SnippetRecommendation, type SnippetType, type SocialMetaConfig, type SocialMetaFix, type SummarizerOptions, type TFIDFResult, TIER_LIMITS, type ToolFeasibilityScore, type ToolFunction, type ToolResult, type TopicClusterResult, type TopicModel, type TrackedKeyword, type TrackerConfig, type TrackingOptions, type TrendDirection, type UncertaintyAssessment, type WizardQuestion, type WizardResponse, type WizardResult, type WizardSession, type WorkflowConfig, addTrackingResult, analyzeAICitationWorthiness, analyzeAIContentStructure, analyzeAnchorText, analyzeAnswerConciseness, analyzeBrandMentionOptimization, analyzeCanonicalAdvanced, analyzeCitationQuality, analyzeClientRendering, analyzeContentFreshness, analyzeContentScience, analyzeConversionElements, analyzeDOMStructure, analyzeEEATSignals, analyzeEntitySEO, analyzeFeaturedSnippet, analyzeFeaturedSnippetPotential, analyzeFreshnessSignals, analyzeFunnelIntent, analyzeHeadings, analyzeHeadline, analyzeHreflang, analyzeImages$1 as analyzeImages, analyzeInteractiveTools, analyzeInternalLinkGraph, analyzeKeywordCannibalizationSinglePage, analyzeKeywordDensity, analyzeKeywordPlacement, analyzeKeywords, analyzeLinks, analyzeLocalSEO, analyzeMobile, analyzeModernImages, analyzeNavBoostSignals, analyzeOnPage, analyzePagination, analyzePerformance, analyzePlatformPresence, analyzeRAGChunkReadiness, analyzeReadability, analyzeRedirectChain, analyzeRedirects, analyzeResponsiveImages, analyzeReviewEcosystem, analyzeSERPPreview, analyzeSecurity, analyzeSecurityHeaders$1 as analyzeSecurityHeaders, analyzeSocialMeta, analyzeStructuredData$1 as analyzeStructuredData, analyzeTopicalClusters, analyzeTrackerBloat, analyzeUrl, analyzeUrlSafety, index$1 as analyzers, applyFixes, assessReplacement, buildDeterministicFixes, buildFrameworkGuidance, buildGSCApiRequest, buildGSCRequest, calculateAIVisibilityScore, calculateBM25, calculateTFIDF$1 as calculateKeywordTFIDF, calculateNextRun, calculateTFIDF, checkAIBotBlocking, checkAMP, checkAdsTxt, checkAppleTouchIcon, checkBalance, checkCertificate, checkDMARC, checkGitHubCLI, checkInternalRedirects, checkJSRenderingRatio, checkLLMCitations, checkLlmsTxt, checkMobileResources, checkPlaintextEmails, checkRedirects, checkRobots, checkRobotsTxt, checkSPF, checkSitemap, classifyIntent, classifyIntents, clusterKeywordsByEmbedding, compareCompetitorVisibility, comparePeriods, completeWizard, crawlSite, crawlUrl, createAuditPR, createFallbackSummary, createGEOHistory, createPullRequest, createSEOCommit, createSEOCommits, dedupeIssues, describeConcerns, detectDuplicates, detectFramework, detectGitHubPages, detectMentions, detectSoft404, detectTechnologies, detectVisibilityChanges, discoverCompetitorKeywords, discoverPagesFromLinks, discoverRoutesFromRepo, enhanceSummaryWithCompetitors, enhanceToolIdea, enrichKeywordsWithEstimates, ensureGitRepo, evaluateAndEnhanceToolIdeas, evaluateToolFeasibility, executeAgent, extractContentHash, extractEntityPhrases, extractImages, extractKeyPhrases, extractLinks, extractMeta, extractNgrams, extractSchema, extractSeedKeywords, extractTopics, fetchCoreWebVitals, findAlmostPage1Keywords, findAppRoot, findCTROpportunities, findHtmlEntry, findLSIKeywords, findPageFiles, findTopPerformers, formatAlertMessage, formatCIResult, formatCompetitorReport, formatConventionalCommit, formatFeaturedSnippetReport, formatHeadlineReport, formatIntentReport, formatKeywordDensityReport, formatKeywordReport, formatPRBody, formatPRTitle, formatReadabilityReport, formatReport, formatSEOCommitMessage, formatTopicReport, formatWizardProgress, index as frameworks, generateAICitableContent, generateAllFixes, generateAngularSEOService, generateAspNetCoreSEO, generateAstroBaseHead, generateAstroMeta, generateBlogPost, generateBranchName, generateChangelog, generateCommitSummary, generateComparisonTable, generateCompleteSocialMetaSetup, generateDjangoSEOHelper, generateDuplicateIssues, generateEleventySEO, generateFAQSchema, generateFixes, generateGA4EnvTemplate, generateGA4ReactComponent, generateGA4Script, generateGA4ViteScript, generateGEOReport, generateGSCVerificationTag, generateGitHubActionSetup, generateGoSEO, generateHTMLReport, generateHTMLSocialMeta, generateHTMXSEO, generateHeadlineVariations, generateHugoSEO, generateJekyllSEO, generateJsonReport, generateKeyFacts, generateLaravelSEOHelper, generateMarkdownReport, generateNextAppMetadata, generateNextJsAppRouterMetadata, generateNextJsPagesRouterHead, generateNextPagesHead, generateNuxtSEOHead, generatePDFReport, generatePRDescription, generatePhoenixSEO, generateRailsSEOHelper, generateReactHelmetSocialMeta, generateReactSEOHead, generateRecommendationQueries, generateRemixMeta, generateRemixSEO, generateSecretsDoc, generateSocialMetaFix, generateSpringBootSEO, generateSvelteKitMeta, generateSvelteKitSEOHead, generateUncertaintyQuestions, generateVueSEOHead, generateWizardQuestions, generateWorkflow, getAIVisibilitySummary, getAutocompleteSuggestions, getDateRange, getExpandedSuggestions, getFrameworkSpecificFix, getFrameworkSpecificFixExtended, getGSCSetupInstructions, getGitUser, getKeywordData, getKeywordSuggestions, getMaxKdThreshold, getNextQuestion, getRelatedKeywords, getVisibilityTrend, groupKeywordsByTopic, identifyQuickWins, injectGA4, injectGSCVerification, interpolatePrompt, isGitRepo, keywordLLM, listFiles, loadAgent, loadAgentByName, mergePages, metaRefreshTarget, openAIKeywordLLM, optimizeForAI, optimizeReadme, parseGEOResponse, parseGSCResponse, parseJsonReply, parseSitemap, premiumChecks, prioritizeKeywords, processWizardResponse, readFile, routesToUrls, runAIKeywordResearch, runAIReadinessChecks, runAdditionalChecks, runAuditWithFixes, runCIKeywordResearch, runCrawlabilityChecks, runDirectAnalysis, runFullAudit, runKeywordResearch, runNLPAnalysis, runScheduledAudit, scoreContentSEO, scoreMention, searchCompetitors, searchFormatConverters, searchHackerNews, sendAlert, sendAlerts, sendDiscordAlert, sendSlackAlert, servedDir, shouldRunAudit, shouldSendAlert, startWizardSession, suggestSchemaTypes, summarizeSite, tokenize, tools, trackLLMVisibility, transformGSCData, urlSafetyDatabase, wizardResponsesToContext, writeFile, writeGitHubActionFiles };
|