@rankcli/agent-runtime 0.0.3 → 0.0.5

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.js CHANGED
@@ -26764,25 +26764,33 @@ async function generateFixForIssue(issue, context) {
26764
26764
  return generateMetaDescFix(context, siteName);
26765
26765
  // Canonical issues
26766
26766
  case "MISSING_CANONICAL":
26767
+ case "CANONICAL_MISSING":
26768
+ // Full audit code
26767
26769
  case "CANONICAL_NO_HTTPS_REDIRECT":
26768
26770
  return generateCanonicalFix(context, fullUrl);
26769
26771
  // Viewport issues
26770
26772
  case "MISSING_VIEWPORT":
26771
26773
  case "HTML_NO_VIEWPORT":
26772
26774
  case "RESPONSIVE_NO_VIEWPORT":
26775
+ case "VIEWPORT_MISSING":
26773
26776
  return generateViewportFix(context);
26774
26777
  // Open Graph issues
26775
26778
  case "MISSING_OG_TAGS":
26776
26779
  case "OG_TITLE_MISSING":
26777
26780
  case "OG_DESC_MISSING":
26781
+ case "OG_DESCRIPTION_MISSING":
26782
+ // Full audit code
26778
26783
  case "OG_IMAGE_MISSING":
26779
26784
  case "OG_URL_MISSING":
26785
+ case "OG_TYPE_MISSING":
26780
26786
  return generateOGFix(context, siteName, fullUrl);
26781
26787
  // Twitter Card issues
26782
26788
  case "MISSING_TWITTER_CARD":
26783
26789
  case "TWITTER_CARD_MISSING":
26784
26790
  case "TWITTER_TITLE_MISSING":
26785
26791
  case "TWITTER_DESC_MISSING":
26792
+ case "TWITTER_DESCRIPTION_MISSING":
26793
+ // Full audit code
26786
26794
  case "TWITTER_IMAGE_MISSING":
26787
26795
  return generateTwitterFix(context, siteName);
26788
26796
  // Schema/structured data issues
@@ -26809,6 +26817,8 @@ async function generateFixForIssue(issue, context) {
26809
26817
  return generateSitemapFix(context, fullUrl);
26810
26818
  // H1 issues
26811
26819
  case "MISSING_H1":
26820
+ case "H1_MISSING":
26821
+ // Full audit code
26812
26822
  case "NO_VISIBLE_HEADLINE":
26813
26823
  case "H1_MISSING_KEYWORD":
26814
26824
  return await generateH1Fix({ cwd });
@@ -26838,12 +26848,14 @@ async function generateFixForIssue(issue, context) {
26838
26848
  // Favicon/icons
26839
26849
  case "HTML_NO_FAVICON":
26840
26850
  case "HTML_NO_APPLE_TOUCH_ICON":
26851
+ case "FAVICON_MISSING":
26841
26852
  return generateFaviconFix(context);
26842
26853
  // Charset/lang
26843
26854
  case "HTML_NO_CHARSET":
26844
26855
  case "HTML_NOT_UTF8":
26845
26856
  return generateCharsetFix(context);
26846
26857
  case "HTML_NO_LANG":
26858
+ case "LANG_ATTR_MISSING":
26847
26859
  return generateLangFix(context);
26848
26860
  // AI/LLMs.txt
26849
26861
  case "AI_NO_LLMS_TXT":
@@ -27078,7 +27090,8 @@ function generateSitemapFix(context, url) {
27078
27090
  }
27079
27091
  function generateSPAMetaFix(context, framework) {
27080
27092
  const { htmlPath } = context;
27081
- if (framework.name.toLowerCase().includes("react") || framework.name === "Unknown") {
27093
+ const frameworkLower = framework.name.toLowerCase();
27094
+ if (frameworkLower.includes("react") || frameworkLower.includes("vite") || framework.name === "Unknown") {
27082
27095
  return {
27083
27096
  issue: { code: "SPA_NO_META_MANAGEMENT", message: "SPA without dynamic meta tag management", severity: "warning" },
27084
27097
  file: "src/components/SEOHead.tsx",
package/dist/index.mjs CHANGED
@@ -25692,25 +25692,33 @@ async function generateFixForIssue(issue, context) {
25692
25692
  return generateMetaDescFix(context, siteName);
25693
25693
  // Canonical issues
25694
25694
  case "MISSING_CANONICAL":
25695
+ case "CANONICAL_MISSING":
25696
+ // Full audit code
25695
25697
  case "CANONICAL_NO_HTTPS_REDIRECT":
25696
25698
  return generateCanonicalFix(context, fullUrl);
25697
25699
  // Viewport issues
25698
25700
  case "MISSING_VIEWPORT":
25699
25701
  case "HTML_NO_VIEWPORT":
25700
25702
  case "RESPONSIVE_NO_VIEWPORT":
25703
+ case "VIEWPORT_MISSING":
25701
25704
  return generateViewportFix(context);
25702
25705
  // Open Graph issues
25703
25706
  case "MISSING_OG_TAGS":
25704
25707
  case "OG_TITLE_MISSING":
25705
25708
  case "OG_DESC_MISSING":
25709
+ case "OG_DESCRIPTION_MISSING":
25710
+ // Full audit code
25706
25711
  case "OG_IMAGE_MISSING":
25707
25712
  case "OG_URL_MISSING":
25713
+ case "OG_TYPE_MISSING":
25708
25714
  return generateOGFix(context, siteName, fullUrl);
25709
25715
  // Twitter Card issues
25710
25716
  case "MISSING_TWITTER_CARD":
25711
25717
  case "TWITTER_CARD_MISSING":
25712
25718
  case "TWITTER_TITLE_MISSING":
25713
25719
  case "TWITTER_DESC_MISSING":
25720
+ case "TWITTER_DESCRIPTION_MISSING":
25721
+ // Full audit code
25714
25722
  case "TWITTER_IMAGE_MISSING":
25715
25723
  return generateTwitterFix(context, siteName);
25716
25724
  // Schema/structured data issues
@@ -25737,6 +25745,8 @@ async function generateFixForIssue(issue, context) {
25737
25745
  return generateSitemapFix(context, fullUrl);
25738
25746
  // H1 issues
25739
25747
  case "MISSING_H1":
25748
+ case "H1_MISSING":
25749
+ // Full audit code
25740
25750
  case "NO_VISIBLE_HEADLINE":
25741
25751
  case "H1_MISSING_KEYWORD":
25742
25752
  return await generateH1Fix({ cwd });
@@ -25766,12 +25776,14 @@ async function generateFixForIssue(issue, context) {
25766
25776
  // Favicon/icons
25767
25777
  case "HTML_NO_FAVICON":
25768
25778
  case "HTML_NO_APPLE_TOUCH_ICON":
25779
+ case "FAVICON_MISSING":
25769
25780
  return generateFaviconFix(context);
25770
25781
  // Charset/lang
25771
25782
  case "HTML_NO_CHARSET":
25772
25783
  case "HTML_NOT_UTF8":
25773
25784
  return generateCharsetFix(context);
25774
25785
  case "HTML_NO_LANG":
25786
+ case "LANG_ATTR_MISSING":
25775
25787
  return generateLangFix(context);
25776
25788
  // AI/LLMs.txt
25777
25789
  case "AI_NO_LLMS_TXT":
@@ -26006,7 +26018,8 @@ function generateSitemapFix(context, url) {
26006
26018
  }
26007
26019
  function generateSPAMetaFix(context, framework) {
26008
26020
  const { htmlPath } = context;
26009
- if (framework.name.toLowerCase().includes("react") || framework.name === "Unknown") {
26021
+ const frameworkLower = framework.name.toLowerCase();
26022
+ if (frameworkLower.includes("react") || frameworkLower.includes("vite") || framework.name === "Unknown") {
26010
26023
  return {
26011
26024
  issue: { code: "SPA_NO_META_MANAGEMENT", message: "SPA without dynamic meta tag management", severity: "warning" },
26012
26025
  file: "src/components/SEOHead.tsx",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rankcli/agent-runtime",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "description": "RankCLI agent runtime - executes SEO audits and fixes with AI",
5
5
  "homepage": "https://rankcli.dev",
6
6
  "main": "dist/index.js",
package/src/fixer.ts CHANGED
@@ -86,6 +86,7 @@ async function generateFixForIssue(
86
86
 
87
87
  // Canonical issues
88
88
  case 'MISSING_CANONICAL':
89
+ case 'CANONICAL_MISSING': // Full audit code
89
90
  case 'CANONICAL_NO_HTTPS_REDIRECT':
90
91
  return generateCanonicalFix(context, fullUrl);
91
92
 
@@ -93,14 +94,17 @@ async function generateFixForIssue(
93
94
  case 'MISSING_VIEWPORT':
94
95
  case 'HTML_NO_VIEWPORT':
95
96
  case 'RESPONSIVE_NO_VIEWPORT':
97
+ case 'VIEWPORT_MISSING': // Full audit code
96
98
  return generateViewportFix(context);
97
99
 
98
100
  // Open Graph issues
99
101
  case 'MISSING_OG_TAGS':
100
102
  case 'OG_TITLE_MISSING':
101
103
  case 'OG_DESC_MISSING':
104
+ case 'OG_DESCRIPTION_MISSING': // Full audit code
102
105
  case 'OG_IMAGE_MISSING':
103
106
  case 'OG_URL_MISSING':
107
+ case 'OG_TYPE_MISSING':
104
108
  return generateOGFix(context, siteName, fullUrl);
105
109
 
106
110
  // Twitter Card issues
@@ -108,6 +112,7 @@ async function generateFixForIssue(
108
112
  case 'TWITTER_CARD_MISSING':
109
113
  case 'TWITTER_TITLE_MISSING':
110
114
  case 'TWITTER_DESC_MISSING':
115
+ case 'TWITTER_DESCRIPTION_MISSING': // Full audit code
111
116
  case 'TWITTER_IMAGE_MISSING':
112
117
  return generateTwitterFix(context, siteName);
113
118
 
@@ -135,6 +140,7 @@ async function generateFixForIssue(
135
140
 
136
141
  // H1 issues
137
142
  case 'MISSING_H1':
143
+ case 'H1_MISSING': // Full audit code
138
144
  case 'NO_VISIBLE_HEADLINE':
139
145
  case 'H1_MISSING_KEYWORD':
140
146
  return await generateH1Fix({ cwd });
@@ -168,6 +174,7 @@ async function generateFixForIssue(
168
174
  // Favicon/icons
169
175
  case 'HTML_NO_FAVICON':
170
176
  case 'HTML_NO_APPLE_TOUCH_ICON':
177
+ case 'FAVICON_MISSING': // Full audit code
171
178
  return generateFaviconFix(context);
172
179
 
173
180
  // Charset/lang
@@ -176,6 +183,7 @@ async function generateFixForIssue(
176
183
  return generateCharsetFix(context);
177
184
 
178
185
  case 'HTML_NO_LANG':
186
+ case 'LANG_ATTR_MISSING': // Full audit code
179
187
  return generateLangFix(context);
180
188
 
181
189
  // AI/LLMs.txt
@@ -441,9 +449,10 @@ function generateSitemapFix(context: FixContext, url: string): GeneratedFix {
441
449
 
442
450
  function generateSPAMetaFix(context: FixContext, framework: FrameworkInfo): GeneratedFix {
443
451
  const { htmlPath } = context;
452
+ const frameworkLower = framework.name.toLowerCase();
444
453
 
445
- // For React apps, recommend react-helmet-async
446
- if (framework.name.toLowerCase().includes('react') || framework.name === 'Unknown') {
454
+ // For React/Vite apps, recommend react-helmet-async
455
+ if (frameworkLower.includes('react') || frameworkLower.includes('vite') || framework.name === 'Unknown') {
447
456
  return {
448
457
  issue: { code: 'SPA_NO_META_MANAGEMENT', message: 'SPA without dynamic meta tag management', severity: 'warning' },
449
458
  file: 'src/components/SEOHead.tsx',