aeo-ready 1.6.0 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/package.json +1 -1
  2. package/src/fix.js +0 -15
  3. package/src/scan.js +2 -64
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aeo-ready",
3
- "version": "1.6.0",
3
+ "version": "1.7.0",
4
4
  "description": "AEO benchmark aggregator. One scan, every score. Collects agentic-seo, Cloudflare, Fern, Vercel, and AgentGrade in one report.",
5
5
  "type": "module",
6
6
  "bin": {
package/src/fix.js CHANGED
@@ -162,7 +162,6 @@ export async function runFixes(result, dir) {
162
162
  }
163
163
 
164
164
  const fixed = [];
165
- const skipped = [];
166
165
  const manual = [];
167
166
 
168
167
  for (const [, action] of triggered) {
@@ -170,10 +169,6 @@ export async function runFixes(result, dir) {
170
169
  manual.push(action.label);
171
170
  continue;
172
171
  }
173
- if (!dir) {
174
- skipped.push(action.label);
175
- continue;
176
- }
177
172
  const r = await action.apply(dir, result);
178
173
  if (r) fixed.push(r);
179
174
  }
@@ -191,16 +186,6 @@ export async function runFixes(result, dir) {
191
186
  console.log("");
192
187
  }
193
188
 
194
- if (skipped.length > 0) {
195
- console.log(
196
- chalk.bold(" Skipped") + chalk.dim(" (run with --dir to auto-fix):\n"),
197
- );
198
- for (const s of skipped) {
199
- console.log(` ${chalk.yellow("-")} ${s}`);
200
- }
201
- console.log("");
202
- }
203
-
204
189
  if (manual.length > 0) {
205
190
  console.log(chalk.bold(" Manual fixes needed:\n"));
206
191
  manual.forEach((m, i) => {
package/src/scan.js CHANGED
@@ -1,8 +1,7 @@
1
1
  import chalk from "chalk";
2
- import { createInterface } from "readline";
3
2
  import { runAllBenchmarks, printBenchmarks } from "./benchmark/index.js";
4
3
  import { saveResult } from "./history/index.js";
5
- import { runFixes } from "./fix.js";
4
+ import { showRecommendations } from "./recommendations.js";
6
5
 
7
6
  export async function scan(opts) {
8
7
  const { url, dir, json } = opts;
@@ -38,7 +37,7 @@ export async function scan(opts) {
38
37
  await saveResult(result, baseDir);
39
38
 
40
39
  if (!json && averageScore < 100 && process.stdin.isTTY) {
41
- await promptFix(result, dir);
40
+ await showRecommendations(result, dir);
42
41
  }
43
42
 
44
43
  return result;
@@ -84,65 +83,4 @@ function printReport(result) {
84
83
  console.log(
85
84
  ` ${chalk.bold("Overall")}${" ".repeat(37)}${gc.bold(`${averageScore}/100`)}\n`,
86
85
  );
87
-
88
- printNextSteps(result);
89
- }
90
-
91
- function printNextSteps(result) {
92
- const { benchmarks, averageScore } = result;
93
- const steps = [];
94
-
95
- if (averageScore < 80) {
96
- steps.push(["npx agentic-seo init", "scaffold llms.txt, AGENTS.md"]);
97
- }
98
-
99
- const cfFails =
100
- benchmarks.cloudflare?.checks?.filter((c) => c.status === "fail") || [];
101
- if (cfFails.length > 0) {
102
- steps.push([
103
- `Cloudflare: ${cfFails.length} failing`,
104
- "see isitagentready.com",
105
- ]);
106
- }
107
-
108
- const fernFails =
109
- benchmarks.fern?.checks?.filter(
110
- (c) => c.status === "fail" || c.status === "warn",
111
- ) || [];
112
- if (fernFails.length > 0) {
113
- steps.push([
114
- `npx afdocs check ${result.url}`,
115
- `${fernFails.length} Fern issues`,
116
- ]);
117
- }
118
-
119
- steps.push([
120
- "npx skills add katrinalaszlo/agent-serve",
121
- "make your product agent-ready",
122
- ]);
123
-
124
- if (steps.length > 0) {
125
- console.log(chalk.bold(" Next steps\n"));
126
- const maxCmd = Math.max(...steps.map(([cmd]) => cmd.length));
127
- for (const [cmd, desc] of steps) {
128
- console.log(` ${cmd.padEnd(maxCmd + 4)}${chalk.dim(desc)}`);
129
- }
130
- console.log("");
131
- }
132
- }
133
-
134
- function ask(question) {
135
- const rl = createInterface({ input: process.stdin, output: process.stdout });
136
- return new Promise((resolve) => {
137
- rl.question(question, (answer) => {
138
- rl.close();
139
- resolve(answer.trim().toLowerCase());
140
- });
141
- });
142
- }
143
-
144
- async function promptFix(result, dir) {
145
- const answer = await ask(chalk.bold(" Fix now? ") + chalk.dim("[y/N] "));
146
- if (answer !== "y" && answer !== "yes") return;
147
- await runFixes(result, dir);
148
86
  }