gravito-eval 0.2.1 → 0.3.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.
- package/README.md +83 -42
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +459 -94
- package/dist/cli/index.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Gravito Eval
|
|
2
2
|
|
|
3
|
-
Scan any website
|
|
3
|
+
Scan any website. See what's wrong, what's missing, and what a human reviewer would miss.
|
|
4
4
|
|
|
5
5
|
```
|
|
6
6
|
npx gravito-eval scan https://stripe.com
|
|
@@ -11,44 +11,84 @@ npx gravito-eval scan https://stripe.com
|
|
|
11
11
|
## What You Get
|
|
12
12
|
|
|
13
13
|
```
|
|
14
|
+
Scanning https://stripe.com
|
|
15
|
+
|
|
16
|
+
◐ Fetching page content (2s)
|
|
17
|
+
◑ Running content analysis (4s)
|
|
18
|
+
◉ Analysis complete (32s)
|
|
19
|
+
|
|
14
20
|
Gravito Eval Results
|
|
15
21
|
──────────────────────────────────────────────────
|
|
16
22
|
|
|
17
|
-
Score:
|
|
23
|
+
Score: 57/100 🔴 F Grade
|
|
18
24
|
Site: https://stripe.com
|
|
25
|
+
Title: Stripe | Financial Infrastructure to Grow Your Revenue
|
|
19
26
|
|
|
20
|
-
|
|
27
|
+
█████████████████░░░░░░░░░░░░░ 57%
|
|
21
28
|
|
|
22
|
-
vs Fintech & Financial Services: top
|
|
29
|
+
vs Fintech & Financial Services: top 52% (avg: 58)
|
|
23
30
|
|
|
24
31
|
Key Issues
|
|
25
32
|
──────────────────────────────────────────────────
|
|
26
33
|
|
|
27
34
|
HIGH Unsubstantiated Claim
|
|
28
|
-
→ "
|
|
35
|
+
→ "50% of" — no source, no verification
|
|
36
|
+
Fix: Add a verifiable source or rephrase as a qualified statement
|
|
37
|
+
|
|
38
|
+
HIGH Unsubstantiated Claim
|
|
39
|
+
→ "100% of" — percentage claim without citation
|
|
29
40
|
Fix: Add a verifiable source or rephrase as a qualified statement
|
|
30
41
|
|
|
31
42
|
MEDIUM Banned Vocabulary
|
|
32
|
-
→ "cutting edge" — vague
|
|
43
|
+
→ "cutting edge" — vague marketing language
|
|
33
44
|
Fix: Replace with specific, measurable language
|
|
34
45
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
46
|
+
──────────────────────────────────────────────────
|
|
47
|
+
Share: https://gravito.ai/try/report/a1b2c3d4
|
|
48
|
+
|
|
49
|
+
Analyzed in 32.0s · Gravito Engine (Live) · 4 issues found
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Every scan produces a shareable link.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Compare Two Sites
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
npx gravito-eval compare stripe.com github.com
|
|
60
|
+
```
|
|
38
61
|
|
|
39
|
-
|
|
62
|
+
```
|
|
63
|
+
Gravito Eval — Comparison
|
|
40
64
|
──────────────────────────────────────────────────
|
|
41
|
-
◆ Overclaiming
|
|
42
|
-
◆ Missing Citations
|
|
43
|
-
◆ Unapproved Claims
|
|
44
65
|
|
|
66
|
+
✓ stripe.com: 57/100 🔴
|
|
67
|
+
✓ github.com: 89/100 🟡
|
|
68
|
+
|
|
69
|
+
Head-to-Head
|
|
70
|
+
══════════════════════════════════════════════════
|
|
71
|
+
|
|
72
|
+
stripe.com
|
|
73
|
+
█████████████████░░░░░░░░░░░░░ 57/100 🔴 F
|
|
74
|
+
|
|
75
|
+
github.com
|
|
76
|
+
██████████████████████████░░░░ 89/100 🟡 B
|
|
77
|
+
|
|
78
|
+
Winner: github.com (+32 points over stripe.com)
|
|
79
|
+
|
|
80
|
+
Key Differences
|
|
45
81
|
──────────────────────────────────────────────────
|
|
46
|
-
Share: https://gravito.ai/try/report/a1b2c3d4
|
|
47
82
|
|
|
48
|
-
|
|
83
|
+
Only stripe.com has:
|
|
84
|
+
HIGH Unsubstantiated Claim
|
|
85
|
+
MEDIUM Banned Vocabulary
|
|
86
|
+
|
|
87
|
+
Both sites have:
|
|
88
|
+
~ Missing Disclaimers
|
|
49
89
|
```
|
|
50
90
|
|
|
51
|
-
|
|
91
|
+
Compare your site to a competitor. See who's doing better and why.
|
|
52
92
|
|
|
53
93
|
---
|
|
54
94
|
|
|
@@ -78,11 +118,11 @@ npx gravito-eval demo
|
|
|
78
118
|
|
|
79
119
|
Gravito Eval analyzes a real website and shows:
|
|
80
120
|
|
|
81
|
-
-
|
|
82
|
-
-
|
|
83
|
-
-
|
|
121
|
+
- What issues a content reviewer would flag
|
|
122
|
+
- What additional problems most reviewers miss
|
|
123
|
+
- How your site compares to others in your industry
|
|
84
124
|
|
|
85
|
-
It runs the same engine that powers [Gravito](https://gravito.ai)
|
|
125
|
+
It runs the same engine that powers [Gravito](https://gravito.ai).
|
|
86
126
|
|
|
87
127
|
---
|
|
88
128
|
|
|
@@ -92,7 +132,7 @@ Most tools tell you **what** is wrong.
|
|
|
92
132
|
|
|
93
133
|
Gravito Eval tells you:
|
|
94
134
|
|
|
95
|
-
- **How aligned** your content is with
|
|
135
|
+
- **How aligned** your content is with quality best practices
|
|
96
136
|
- **Where it disagrees** with what a human reviewer would flag
|
|
97
137
|
- **Whether those disagreements are valuable** — sometimes the AI catches things humans miss
|
|
98
138
|
|
|
@@ -102,11 +142,11 @@ Gravito Eval tells you:
|
|
|
102
142
|
|
|
103
143
|
| Use Case | What You Get |
|
|
104
144
|
|---|---|
|
|
105
|
-
| **Scan your landing page** |
|
|
145
|
+
| **Scan your landing page** | Quality score, issues, fixes, industry benchmark |
|
|
146
|
+
| **Compare to competitors** | Side-by-side analysis with `compare` command |
|
|
106
147
|
| **Evaluate LLM outputs** | Alignment metrics, novel signal detection |
|
|
107
148
|
| **Compare prompts** | Run the same content through different prompts, compare scores |
|
|
108
|
-
| **QA AI features** | Check if your AI-generated content meets
|
|
109
|
-
| **Audit competitor pages** | See how your site compares to competitors in your industry |
|
|
149
|
+
| **QA AI features** | Check if your AI-generated content meets quality standards |
|
|
110
150
|
|
|
111
151
|
---
|
|
112
152
|
|
|
@@ -162,14 +202,14 @@ Add `--explain` for detailed match reasoning. Add `--json` for raw output.
|
|
|
162
202
|
## How It Works
|
|
163
203
|
|
|
164
204
|
```
|
|
165
|
-
URL → Fetch Content →
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
205
|
+
URL → Fetch Content → Content Analysis → Industry Benchmark → Score + Issues + Fixes
|
|
206
|
+
↓
|
|
207
|
+
5 analysis frameworks:
|
|
208
|
+
• Claim verification
|
|
209
|
+
• Vocabulary compliance
|
|
210
|
+
• Disclosure detection
|
|
211
|
+
• Pattern recognition
|
|
212
|
+
• Brand consistency
|
|
173
213
|
```
|
|
174
214
|
|
|
175
215
|
The analysis runs server-side on the Gravito engine. No local LLM required.
|
|
@@ -179,14 +219,15 @@ The analysis runs server-side on the Gravito engine. No local LLM required.
|
|
|
179
219
|
## CLI Reference
|
|
180
220
|
|
|
181
221
|
```
|
|
182
|
-
gravito-eval scan <url>
|
|
183
|
-
gravito-eval
|
|
184
|
-
gravito-eval
|
|
185
|
-
gravito-eval
|
|
186
|
-
gravito-eval run <path>
|
|
187
|
-
gravito-eval run <path> --
|
|
188
|
-
gravito-eval --
|
|
189
|
-
gravito-eval --
|
|
222
|
+
gravito-eval scan <url> Scan a live URL
|
|
223
|
+
gravito-eval compare <url1> <url2> Compare two sites side-by-side
|
|
224
|
+
gravito-eval scan <url> --json Output raw JSON
|
|
225
|
+
gravito-eval demo See a demo with explanations
|
|
226
|
+
gravito-eval run <path> Evaluate local findings
|
|
227
|
+
gravito-eval run <path> --explain Show detailed match reasoning
|
|
228
|
+
gravito-eval run <path> --json Output raw JSON
|
|
229
|
+
gravito-eval --help Show help
|
|
230
|
+
gravito-eval --version Show version
|
|
190
231
|
```
|
|
191
232
|
|
|
192
233
|
---
|
|
@@ -194,7 +235,7 @@ gravito-eval --version Show version
|
|
|
194
235
|
## Requirements
|
|
195
236
|
|
|
196
237
|
- Node.js 18+
|
|
197
|
-
- Internet connection (for `scan`
|
|
238
|
+
- Internet connection (for `scan` and `compare` commands)
|
|
198
239
|
|
|
199
240
|
---
|
|
200
241
|
|
|
@@ -226,7 +267,7 @@ result.verdict // PASS | PARTIAL | FAIL | INSUFFICIENT_DATA
|
|
|
226
267
|
|
|
227
268
|
Want this running continuously on your site?
|
|
228
269
|
|
|
229
|
-
[Gravito](https://gravito.ai) provides always-on
|
|
270
|
+
[Gravito](https://gravito.ai) provides always-on monitoring, automated alerts, and team dashboards.
|
|
230
271
|
|
|
231
272
|
---
|
|
232
273
|
|
package/dist/cli/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Usage:
|
|
6
6
|
* gravito-eval scan <url> Scan a live URL
|
|
7
|
+
* gravito-eval compare <url1> <url2> Compare two sites side-by-side
|
|
7
8
|
* gravito-eval demo Run a preloaded demo
|
|
8
9
|
* gravito-eval run <path> Evaluate local findings
|
|
9
10
|
* gravito-eval run <path> --explain Show detailed match reasoning
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../cli/index.ts"],"names":[],"mappings":";AAEA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../cli/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;GAaG"}
|
package/dist/cli/index.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Usage:
|
|
7
7
|
* gravito-eval scan <url> Scan a live URL
|
|
8
|
+
* gravito-eval compare <url1> <url2> Compare two sites side-by-side
|
|
8
9
|
* gravito-eval demo Run a preloaded demo
|
|
9
10
|
* gravito-eval run <path> Evaluate local findings
|
|
10
11
|
* gravito-eval run <path> --explain Show detailed match reasoning
|
|
@@ -73,26 +74,6 @@ const c = {
|
|
|
73
74
|
bgGreen: (s) => isColorSupported ? `\x1b[42m\x1b[30m${s}\x1b[0m` : s,
|
|
74
75
|
bgCyan: (s) => isColorSupported ? `\x1b[46m\x1b[30m${s}\x1b[0m` : s,
|
|
75
76
|
};
|
|
76
|
-
// ─── Spinner ─────────────────────────────────────────────────────────────
|
|
77
|
-
class Spinner {
|
|
78
|
-
interval = null;
|
|
79
|
-
start(message) {
|
|
80
|
-
process.stdout.write(` ${message}`);
|
|
81
|
-
this.interval = setInterval(() => {
|
|
82
|
-
process.stdout.write(`.`);
|
|
83
|
-
}, 2000);
|
|
84
|
-
}
|
|
85
|
-
stop(message) {
|
|
86
|
-
if (this.interval) {
|
|
87
|
-
clearInterval(this.interval);
|
|
88
|
-
this.interval = null;
|
|
89
|
-
}
|
|
90
|
-
console.log();
|
|
91
|
-
if (message) {
|
|
92
|
-
console.log(message);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
77
|
// ─── Helpers ─────────────────────────────────────────────────────────────
|
|
97
78
|
function pct(n) {
|
|
98
79
|
return `${Math.round(n * 100)}%`;
|
|
@@ -142,22 +123,39 @@ function bar(value, width = 20) {
|
|
|
142
123
|
const color = scoreColor(value);
|
|
143
124
|
return color("█".repeat(filled)) + c.dim("░".repeat(empty));
|
|
144
125
|
}
|
|
145
|
-
function
|
|
126
|
+
function formatElapsed(ms) {
|
|
127
|
+
const s = Math.floor(ms / 1000);
|
|
128
|
+
if (s < 60)
|
|
129
|
+
return `${s}s`;
|
|
130
|
+
return `${Math.floor(s / 60)}m ${s % 60}s`;
|
|
131
|
+
}
|
|
132
|
+
function shortDomain(url) {
|
|
133
|
+
try {
|
|
134
|
+
return new URL(url).hostname.replace(/^www\./, "");
|
|
135
|
+
}
|
|
136
|
+
catch {
|
|
137
|
+
return url;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
function httpRequest(method, url, data) {
|
|
146
141
|
return new Promise((resolve, reject) => {
|
|
147
|
-
const payload = JSON.stringify(data);
|
|
142
|
+
const payload = data ? JSON.stringify(data) : undefined;
|
|
148
143
|
const parsed = new URL(url);
|
|
149
144
|
const lib = parsed.protocol === "https:" ? https : http;
|
|
145
|
+
const headers = {
|
|
146
|
+
"User-Agent": "gravito-eval-cli",
|
|
147
|
+
};
|
|
148
|
+
if (payload) {
|
|
149
|
+
headers["Content-Type"] = "application/json";
|
|
150
|
+
headers["Content-Length"] = String(Buffer.byteLength(payload));
|
|
151
|
+
}
|
|
150
152
|
const req = lib.request({
|
|
151
153
|
hostname: parsed.hostname,
|
|
152
154
|
port: parsed.port || (parsed.protocol === "https:" ? 443 : 80),
|
|
153
155
|
path: parsed.pathname + parsed.search,
|
|
154
|
-
method
|
|
155
|
-
headers
|
|
156
|
-
|
|
157
|
-
"Content-Length": Buffer.byteLength(payload),
|
|
158
|
-
"User-Agent": "gravito-eval-cli",
|
|
159
|
-
},
|
|
160
|
-
timeout: 120000, // 2 min — scans take time
|
|
156
|
+
method,
|
|
157
|
+
headers,
|
|
158
|
+
timeout: 15000,
|
|
161
159
|
}, (res) => {
|
|
162
160
|
let body = "";
|
|
163
161
|
res.on("data", (chunk) => (body += chunk.toString()));
|
|
@@ -166,12 +164,47 @@ function httpPost(url, data) {
|
|
|
166
164
|
req.on("error", reject);
|
|
167
165
|
req.on("timeout", () => {
|
|
168
166
|
req.destroy();
|
|
169
|
-
reject(new Error("Request timed out
|
|
167
|
+
reject(new Error("Request timed out"));
|
|
170
168
|
});
|
|
171
|
-
|
|
169
|
+
if (payload)
|
|
170
|
+
req.write(payload);
|
|
172
171
|
req.end();
|
|
173
172
|
});
|
|
174
173
|
}
|
|
174
|
+
function httpPost(url, data) {
|
|
175
|
+
return httpRequest("POST", url, data);
|
|
176
|
+
}
|
|
177
|
+
function httpGet(url) {
|
|
178
|
+
return httpRequest("GET", url);
|
|
179
|
+
}
|
|
180
|
+
function sleep(ms) {
|
|
181
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
182
|
+
}
|
|
183
|
+
// Known brand names and design-intent terms that should NOT be flagged
|
|
184
|
+
const KNOWN_BRANDS = new Set([
|
|
185
|
+
'URBN', 'NYSE', 'NASDAQ', 'AWS', 'GCP', 'IBM', 'SAP', 'HSBC', 'KPMG',
|
|
186
|
+
'BMW', 'UBS', 'DHL', 'BBC', 'CNN', 'ESPN', 'HBO', 'NFL', 'NBA', 'FIFA',
|
|
187
|
+
'IKEA', 'LEGO', 'ZARA', 'ASOS', 'LVMH', 'VISA', 'AMEX',
|
|
188
|
+
]);
|
|
189
|
+
function isLikelyFalsePositive(issue) {
|
|
190
|
+
const desc = issue.description;
|
|
191
|
+
const loc = issue.location || '';
|
|
192
|
+
// Check if it's flagging a known brand name
|
|
193
|
+
for (const brand of KNOWN_BRANDS) {
|
|
194
|
+
if (desc.includes(brand))
|
|
195
|
+
return true;
|
|
196
|
+
}
|
|
197
|
+
// Check if it's flagging design-intent capitalization (headers, hero text)
|
|
198
|
+
if (issue.category === 'brand_violation' || issue.title.toLowerCase().includes('capitalization')) {
|
|
199
|
+
if (/header|hero|heading|banner|title|nav/i.test(loc))
|
|
200
|
+
return true;
|
|
201
|
+
// Single all-caps words in quotes are likely design headers
|
|
202
|
+
const quotedText = desc.match(/["']([A-Z]{2,})["']/);
|
|
203
|
+
if (quotedText)
|
|
204
|
+
return true;
|
|
205
|
+
}
|
|
206
|
+
return false;
|
|
207
|
+
}
|
|
175
208
|
function filterIssuesForDisplay(issues) {
|
|
176
209
|
return issues.filter(issue => {
|
|
177
210
|
// Filter out system/internal errors
|
|
@@ -184,29 +217,34 @@ function filterIssuesForDisplay(issues) {
|
|
|
184
217
|
// Filter out generic "Pattern detected" filler issues
|
|
185
218
|
if (issue.description.startsWith('Pattern detected:'))
|
|
186
219
|
return false;
|
|
220
|
+
// Filter out likely false positives (brand names, design-intent caps)
|
|
221
|
+
if (isLikelyFalsePositive(issue))
|
|
222
|
+
return false;
|
|
187
223
|
return true;
|
|
188
224
|
});
|
|
189
225
|
}
|
|
190
|
-
function printScanResult(result) {
|
|
226
|
+
function printScanResult(result, compact = false) {
|
|
191
227
|
// Filter issues before display
|
|
192
228
|
const displayIssues = filterIssuesForDisplay(result.issues);
|
|
193
229
|
const sc = scoreColor(result.overallScore);
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
230
|
+
if (!compact) {
|
|
231
|
+
console.log();
|
|
232
|
+
console.log(c.bold(" Gravito Eval Results"));
|
|
233
|
+
console.log(c.dim(" " + "─".repeat(50)));
|
|
234
|
+
console.log();
|
|
235
|
+
}
|
|
198
236
|
// Score + Grade
|
|
199
237
|
console.log(` ${c.dim("Score:")} ${sc(c.bold(String(result.overallScore)))}${c.dim("/100")} ${gradeEmoji(result.grade)} ${c.bold(result.grade)} Grade`);
|
|
200
238
|
console.log(` ${c.dim("Site:")} ${c.cyan(result.url)}`);
|
|
201
|
-
if (result.pageTitle) {
|
|
239
|
+
if (result.pageTitle && !compact) {
|
|
202
240
|
console.log(` ${c.dim("Title:")} ${result.pageTitle}`);
|
|
203
241
|
}
|
|
204
242
|
console.log();
|
|
205
243
|
// Score bar
|
|
206
244
|
console.log(` ${bar(result.overallScore, 30)} ${sc(String(result.overallScore) + "%")}`);
|
|
207
245
|
console.log();
|
|
208
|
-
// Benchmark
|
|
209
|
-
if (result.benchmark) {
|
|
246
|
+
// Benchmark — no (est.) label, cleaner presentation
|
|
247
|
+
if (result.benchmark && !compact) {
|
|
210
248
|
const b = result.benchmark;
|
|
211
249
|
console.log(` ${c.dim("vs")} ${b.industryLabel}: ${c.bold("top " + (100 - b.percentileRank) + "%")} ${c.dim("(avg: " + b.industryAvg + ")")}`);
|
|
212
250
|
console.log();
|
|
@@ -215,47 +253,52 @@ function printScanResult(result) {
|
|
|
215
253
|
if (displayIssues.length > 0) {
|
|
216
254
|
console.log(c.bold(" Key Issues"));
|
|
217
255
|
console.log(c.dim(" " + "─".repeat(50)));
|
|
218
|
-
const
|
|
256
|
+
const maxIssues = compact ? 3 : 6;
|
|
257
|
+
const topIssues = displayIssues.slice(0, maxIssues);
|
|
219
258
|
for (const issue of topIssues) {
|
|
220
259
|
console.log();
|
|
221
260
|
console.log(` ${severityBadge(issue.severity)} ${c.bold(issue.title)}`);
|
|
222
261
|
console.log(` ${c.dim("→")} ${issue.description}`);
|
|
223
|
-
|
|
262
|
+
if (!compact) {
|
|
263
|
+
console.log(` ${c.green("Fix:")} ${issue.fix}`);
|
|
264
|
+
}
|
|
224
265
|
}
|
|
225
|
-
if (displayIssues.length >
|
|
266
|
+
if (displayIssues.length > maxIssues) {
|
|
226
267
|
console.log();
|
|
227
|
-
console.log(c.dim(` + ${displayIssues.length -
|
|
268
|
+
console.log(c.dim(` + ${displayIssues.length - maxIssues} more issues in full report`));
|
|
228
269
|
}
|
|
229
270
|
console.log();
|
|
230
271
|
}
|
|
231
|
-
// Novel Insights (patterns)
|
|
232
|
-
if (result.patternsDetected.length > 0) {
|
|
233
|
-
console.log(c.bold(" Additional Insights
|
|
272
|
+
// Novel Insights (patterns) — only in full mode
|
|
273
|
+
if (!compact && result.patternsDetected.length > 0) {
|
|
274
|
+
console.log(c.bold(" Additional Insights"));
|
|
234
275
|
console.log(c.dim(" " + "─".repeat(50)));
|
|
235
276
|
for (const pattern of result.patternsDetected) {
|
|
236
277
|
console.log(` ${c.magenta("◆")} ${pattern.replace(/_/g, " ").replace(/\b\w/g, (ch) => ch.toUpperCase())}`);
|
|
237
278
|
}
|
|
238
279
|
console.log();
|
|
239
280
|
}
|
|
240
|
-
// Projection
|
|
241
|
-
if (result.projection) {
|
|
281
|
+
// Projection — only in full mode
|
|
282
|
+
if (!compact && result.projection) {
|
|
242
283
|
console.log(c.bold(" What This Means"));
|
|
243
284
|
console.log(c.dim(" " + "─".repeat(50)));
|
|
244
285
|
console.log(` ${result.projection.summary}`);
|
|
245
286
|
console.log(` ${c.dim("Time to fix:")} ${result.projection.timeToFix}`);
|
|
246
287
|
console.log();
|
|
247
288
|
}
|
|
248
|
-
// Shareable link
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
289
|
+
// Shareable link — only in full mode
|
|
290
|
+
if (!compact) {
|
|
291
|
+
console.log(c.dim(" " + "─".repeat(50)));
|
|
292
|
+
console.log(` ${c.bold("Share:")} ${c.cyan(`${SHARE_BASE}/${result.reportId}`)}`);
|
|
293
|
+
console.log();
|
|
294
|
+
// Next step — subtle, not salesy
|
|
295
|
+
console.log(c.dim(" Try another site:"));
|
|
296
|
+
console.log(c.dim(" npx gravito-eval scan https://your-site.com"));
|
|
297
|
+
console.log();
|
|
298
|
+
// Analysis meta
|
|
299
|
+
console.log(c.dim(` Analyzed in ${(result.analysisTimeMs / 1000).toFixed(1)}s · ${result.engineUsed} · ${displayIssues.length} issues found`));
|
|
300
|
+
console.log();
|
|
301
|
+
}
|
|
259
302
|
}
|
|
260
303
|
async function runScan(url, jsonOutput) {
|
|
261
304
|
// Normalize URL
|
|
@@ -272,13 +315,128 @@ async function runScan(url, jsonOutput) {
|
|
|
272
315
|
console.error(`Usage: gravito-eval scan https://example.com`);
|
|
273
316
|
process.exit(1);
|
|
274
317
|
}
|
|
275
|
-
|
|
276
|
-
|
|
318
|
+
// Try async scan first (startScan + poll), fall back to sync analyzeUrl
|
|
319
|
+
let result;
|
|
320
|
+
try {
|
|
321
|
+
result = await runAsyncScan(targetUrl);
|
|
322
|
+
}
|
|
323
|
+
catch (asyncErr) {
|
|
324
|
+
// If async scan fails (e.g., endpoint not deployed yet), fall back to sync
|
|
325
|
+
try {
|
|
326
|
+
result = await runSyncScan(targetUrl);
|
|
327
|
+
}
|
|
328
|
+
catch (syncErr) {
|
|
329
|
+
console.error(`Error: ${syncErr.message || 'Analysis failed'}`);
|
|
330
|
+
console.error();
|
|
331
|
+
console.error(`This can happen if:`);
|
|
332
|
+
console.error(` ${c.dim("\u2022")} The URL is not publicly accessible`);
|
|
333
|
+
console.error(` ${c.dim("\u2022")} The site blocks automated requests`);
|
|
334
|
+
console.error(` ${c.dim("\u2022")} The Gravito API is temporarily unavailable`);
|
|
335
|
+
console.error();
|
|
336
|
+
console.error(`Try: gravito-eval scan https://stripe.com`);
|
|
337
|
+
process.exit(1);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
if (jsonOutput) {
|
|
341
|
+
console.log(JSON.stringify(result, null, 2));
|
|
342
|
+
}
|
|
343
|
+
else {
|
|
344
|
+
printScanResult(result);
|
|
345
|
+
}
|
|
346
|
+
return result;
|
|
347
|
+
}
|
|
348
|
+
async function runAsyncScan(targetUrl) {
|
|
349
|
+
const startTime = Date.now();
|
|
350
|
+
// Step 1: Start the scan (returns immediately)
|
|
351
|
+
console.log();
|
|
352
|
+
console.log(` ${c.dim("Scanning")} ${c.cyan(targetUrl)}`);
|
|
353
|
+
console.log();
|
|
354
|
+
const startResponse = await httpPost(`${API_BASE}/api/trpc/try.startScan`, { json: { url: targetUrl } });
|
|
355
|
+
if (startResponse.status !== 200) {
|
|
356
|
+
throw new Error(`Failed to start scan (HTTP ${startResponse.status})`);
|
|
357
|
+
}
|
|
358
|
+
const startParsed = JSON.parse(startResponse.body);
|
|
359
|
+
const jobId = startParsed.result?.data?.json?.jobId;
|
|
360
|
+
if (!jobId) {
|
|
361
|
+
throw new Error('No job ID returned');
|
|
362
|
+
}
|
|
363
|
+
// Step 2: Poll for results with real progress and elapsed time
|
|
364
|
+
const progressSteps = [
|
|
365
|
+
{ status: 'fetching', icon: '\u25d0', msg: 'Fetching page content' },
|
|
366
|
+
{ status: 'analyzing', icon: '\u25d1', msg: 'Running content analysis' },
|
|
367
|
+
{ status: 'scoring', icon: '\u25d2', msg: 'Scoring against industry baseline' },
|
|
368
|
+
{ status: 'complete', icon: '\u25c9', msg: 'Analysis complete' },
|
|
369
|
+
];
|
|
370
|
+
let lastStatus = '';
|
|
371
|
+
const maxPolls = 60; // 2 minutes max
|
|
372
|
+
let lastProgressUpdate = Date.now();
|
|
373
|
+
for (let i = 0; i < maxPolls; i++) {
|
|
374
|
+
await sleep(2000);
|
|
375
|
+
const elapsed = formatElapsed(Date.now() - startTime);
|
|
376
|
+
try {
|
|
377
|
+
const pollResponse = await httpGet(`${API_BASE}/api/trpc/try.getScanStatus?input=${encodeURIComponent(JSON.stringify({ json: { jobId } }))}`);
|
|
378
|
+
if (pollResponse.status !== 200)
|
|
379
|
+
continue;
|
|
380
|
+
const pollParsed = JSON.parse(pollResponse.body);
|
|
381
|
+
const data = pollParsed.result?.data?.json || pollParsed.result?.data;
|
|
382
|
+
if (!data)
|
|
383
|
+
continue;
|
|
384
|
+
// Show progress update if status changed
|
|
385
|
+
if (data.status !== lastStatus) {
|
|
386
|
+
const step = progressSteps.find(s => s.status === data.status);
|
|
387
|
+
if (step) {
|
|
388
|
+
const color = data.status === 'complete' ? c.green : c.cyan;
|
|
389
|
+
console.log(` ${color(step.icon)} ${step.msg} ${c.dim(`(${elapsed})`)}`);
|
|
390
|
+
}
|
|
391
|
+
lastStatus = data.status;
|
|
392
|
+
lastProgressUpdate = Date.now();
|
|
393
|
+
}
|
|
394
|
+
else if (Date.now() - lastProgressUpdate > 10000 && data.status !== 'complete') {
|
|
395
|
+
// Reassurance message every 10s if no status change
|
|
396
|
+
console.log(` ${c.dim(` Still working... (${elapsed})`)}`);
|
|
397
|
+
lastProgressUpdate = Date.now();
|
|
398
|
+
}
|
|
399
|
+
// Check for completion
|
|
400
|
+
if (data.status === 'complete' && data.result) {
|
|
401
|
+
console.log();
|
|
402
|
+
return data.result;
|
|
403
|
+
}
|
|
404
|
+
// Check for error
|
|
405
|
+
if (data.status === 'error') {
|
|
406
|
+
const errorMsg = data.error || 'Analysis failed';
|
|
407
|
+
if (errorMsg.includes('Could not fetch')) {
|
|
408
|
+
throw new Error(`Could not reach ${targetUrl}. The site may block automated requests or require authentication.`);
|
|
409
|
+
}
|
|
410
|
+
if (errorMsg.includes('timeout') || errorMsg.includes('timed out')) {
|
|
411
|
+
throw new Error(`The site took too long to respond. Try a simpler page or check if the URL is correct.`);
|
|
412
|
+
}
|
|
413
|
+
throw new Error(errorMsg);
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
catch (pollErr) {
|
|
417
|
+
// If it's our own thrown error, re-throw
|
|
418
|
+
if (pollErr.message && !pollErr.message.includes('timed out') && pollErr.message !== 'Request timed out') {
|
|
419
|
+
throw pollErr;
|
|
420
|
+
}
|
|
421
|
+
// Otherwise transient network issue, keep polling
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
throw new Error('Scan timed out after 2 minutes.');
|
|
425
|
+
}
|
|
426
|
+
async function runSyncScan(targetUrl) {
|
|
427
|
+
console.log();
|
|
428
|
+
console.log(` ${c.dim("Scanning")} ${c.cyan(targetUrl)}`);
|
|
429
|
+
const startTime = Date.now();
|
|
430
|
+
const progressInterval = setInterval(() => {
|
|
431
|
+
const elapsed = formatElapsed(Date.now() - startTime);
|
|
432
|
+
process.stdout.write(c.dim(`.`));
|
|
433
|
+
}, 3000);
|
|
277
434
|
try {
|
|
278
435
|
const response = await httpPost(`${API_BASE}/api/trpc/try.analyzeUrl`, { json: { url: targetUrl } });
|
|
279
|
-
|
|
436
|
+
clearInterval(progressInterval);
|
|
437
|
+
console.log();
|
|
280
438
|
if (response.status !== 200) {
|
|
281
|
-
let errorMsg =
|
|
439
|
+
let errorMsg = 'Analysis failed';
|
|
282
440
|
try {
|
|
283
441
|
const err = JSON.parse(response.body);
|
|
284
442
|
if (err?.error?.json?.message)
|
|
@@ -287,39 +445,227 @@ async function runScan(url, jsonOutput) {
|
|
|
287
445
|
errorMsg = err.error.message;
|
|
288
446
|
}
|
|
289
447
|
catch { }
|
|
290
|
-
|
|
291
|
-
console.error();
|
|
292
|
-
console.error(`This can happen if:`);
|
|
293
|
-
console.error(` • The URL is not publicly accessible`);
|
|
294
|
-
console.error(` • The site blocks automated requests`);
|
|
295
|
-
console.error(` • The Gravito API is temporarily unavailable`);
|
|
296
|
-
console.error();
|
|
297
|
-
console.error(`Try: gravito-eval scan https://stripe.com`);
|
|
298
|
-
process.exit(1);
|
|
448
|
+
throw new Error(errorMsg);
|
|
299
449
|
}
|
|
300
450
|
const parsed = JSON.parse(response.body);
|
|
301
451
|
const result = parsed.result?.data?.json || parsed.result?.data || parsed;
|
|
302
452
|
if (!result.overallScore && result.overallScore !== 0) {
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
453
|
+
throw new Error('Unexpected response format');
|
|
454
|
+
}
|
|
455
|
+
return result;
|
|
456
|
+
}
|
|
457
|
+
catch (err) {
|
|
458
|
+
clearInterval(progressInterval);
|
|
459
|
+
console.log();
|
|
460
|
+
throw err;
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
// ─── Compare Command ────────────────────────────────────────────────────
|
|
464
|
+
async function runCompare(url1, url2, jsonOutput) {
|
|
465
|
+
// Normalize URLs
|
|
466
|
+
let targetUrl1 = url1.trim();
|
|
467
|
+
let targetUrl2 = url2.trim();
|
|
468
|
+
if (!targetUrl1.startsWith("http"))
|
|
469
|
+
targetUrl1 = `https://${targetUrl1}`;
|
|
470
|
+
if (!targetUrl2.startsWith("http"))
|
|
471
|
+
targetUrl2 = `https://${targetUrl2}`;
|
|
472
|
+
// Validate URLs
|
|
473
|
+
try {
|
|
474
|
+
new URL(targetUrl1);
|
|
475
|
+
new URL(targetUrl2);
|
|
476
|
+
}
|
|
477
|
+
catch {
|
|
478
|
+
console.error(`Invalid URL(s).`);
|
|
479
|
+
console.error(`Usage: gravito-eval compare https://site1.com https://site2.com`);
|
|
480
|
+
process.exit(1);
|
|
481
|
+
}
|
|
482
|
+
console.log();
|
|
483
|
+
console.log(c.bold(" Gravito Eval — Comparison"));
|
|
484
|
+
console.log(c.dim(" " + "─".repeat(50)));
|
|
485
|
+
console.log();
|
|
486
|
+
console.log(` Scanning ${c.cyan(shortDomain(targetUrl1))} and ${c.cyan(shortDomain(targetUrl2))}...`);
|
|
487
|
+
console.log();
|
|
488
|
+
// Run both scans
|
|
489
|
+
let result1;
|
|
490
|
+
let result2;
|
|
491
|
+
try {
|
|
492
|
+
// Run scans sequentially to avoid overwhelming the server
|
|
493
|
+
console.log(` ${c.cyan("◐")} Analyzing ${c.bold(shortDomain(targetUrl1))}...`);
|
|
494
|
+
result1 = await runScanQuiet(targetUrl1);
|
|
495
|
+
console.log(` ${c.green("✓")} ${shortDomain(targetUrl1)}: ${scoreColor(result1.overallScore)(String(result1.overallScore) + "/100")} ${gradeEmoji(result1.grade)}`);
|
|
496
|
+
console.log();
|
|
497
|
+
console.log(` ${c.cyan("◐")} Analyzing ${c.bold(shortDomain(targetUrl2))}...`);
|
|
498
|
+
result2 = await runScanQuiet(targetUrl2);
|
|
499
|
+
console.log(` ${c.green("✓")} ${shortDomain(targetUrl2)}: ${scoreColor(result2.overallScore)(String(result2.overallScore) + "/100")} ${gradeEmoji(result2.grade)}`);
|
|
500
|
+
console.log();
|
|
501
|
+
}
|
|
502
|
+
catch (err) {
|
|
503
|
+
console.error(`\n ${c.red("Error:")} ${err.message}`);
|
|
504
|
+
console.error(` One or both sites could not be analyzed.`);
|
|
505
|
+
process.exit(1);
|
|
506
|
+
}
|
|
507
|
+
if (jsonOutput) {
|
|
508
|
+
console.log(JSON.stringify({
|
|
509
|
+
siteA: { url: result1.url, score: result1.overallScore, grade: result1.grade, issues: result1.issues },
|
|
510
|
+
siteB: { url: result2.url, score: result2.overallScore, grade: result2.grade, issues: result2.issues },
|
|
511
|
+
winner: result1.overallScore >= result2.overallScore ? shortDomain(targetUrl1) : shortDomain(targetUrl2),
|
|
512
|
+
scoreDiff: Math.abs(result1.overallScore - result2.overallScore),
|
|
513
|
+
}, null, 2));
|
|
514
|
+
return;
|
|
515
|
+
}
|
|
516
|
+
// Print comparison
|
|
517
|
+
printComparison(result1, result2);
|
|
518
|
+
}
|
|
519
|
+
async function runScanQuiet(url) {
|
|
520
|
+
// Try async first, fall back to sync
|
|
521
|
+
try {
|
|
522
|
+
return await runAsyncScanQuiet(url);
|
|
523
|
+
}
|
|
524
|
+
catch {
|
|
525
|
+
return await runSyncScanQuiet(url);
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
async function runAsyncScanQuiet(url) {
|
|
529
|
+
const startResponse = await httpPost(`${API_BASE}/api/trpc/try.startScan`, { json: { url } });
|
|
530
|
+
if (startResponse.status !== 200) {
|
|
531
|
+
throw new Error(`Failed to start scan`);
|
|
532
|
+
}
|
|
533
|
+
const startParsed = JSON.parse(startResponse.body);
|
|
534
|
+
const jobId = startParsed.result?.data?.json?.jobId;
|
|
535
|
+
if (!jobId)
|
|
536
|
+
throw new Error('No job ID');
|
|
537
|
+
for (let i = 0; i < 60; i++) {
|
|
538
|
+
await sleep(2000);
|
|
539
|
+
try {
|
|
540
|
+
const pollResponse = await httpGet(`${API_BASE}/api/trpc/try.getScanStatus?input=${encodeURIComponent(JSON.stringify({ json: { jobId } }))}`);
|
|
541
|
+
if (pollResponse.status !== 200)
|
|
542
|
+
continue;
|
|
543
|
+
const pollParsed = JSON.parse(pollResponse.body);
|
|
544
|
+
const data = pollParsed.result?.data?.json || pollParsed.result?.data;
|
|
545
|
+
if (!data)
|
|
546
|
+
continue;
|
|
547
|
+
if (data.status === 'complete' && data.result) {
|
|
548
|
+
return data.result;
|
|
549
|
+
}
|
|
550
|
+
if (data.status === 'error') {
|
|
551
|
+
throw new Error(data.error || 'Analysis failed');
|
|
306
552
|
}
|
|
307
|
-
process.exit(1);
|
|
308
553
|
}
|
|
309
|
-
|
|
310
|
-
|
|
554
|
+
catch (err) {
|
|
555
|
+
if (err.message && err.message !== 'Request timed out')
|
|
556
|
+
throw err;
|
|
311
557
|
}
|
|
312
|
-
|
|
313
|
-
|
|
558
|
+
}
|
|
559
|
+
throw new Error('Scan timed out');
|
|
560
|
+
}
|
|
561
|
+
async function runSyncScanQuiet(url) {
|
|
562
|
+
const response = await httpPost(`${API_BASE}/api/trpc/try.analyzeUrl`, { json: { url } });
|
|
563
|
+
if (response.status !== 200) {
|
|
564
|
+
throw new Error('Analysis failed');
|
|
565
|
+
}
|
|
566
|
+
const parsed = JSON.parse(response.body);
|
|
567
|
+
return parsed.result?.data?.json || parsed.result?.data || parsed;
|
|
568
|
+
}
|
|
569
|
+
function printComparison(a, b) {
|
|
570
|
+
const domainA = shortDomain(a.url);
|
|
571
|
+
const domainB = shortDomain(b.url);
|
|
572
|
+
const issuesA = filterIssuesForDisplay(a.issues);
|
|
573
|
+
const issuesB = filterIssuesForDisplay(b.issues);
|
|
574
|
+
console.log(c.bold(" Head-to-Head"));
|
|
575
|
+
console.log(c.dim(" " + "═".repeat(50)));
|
|
576
|
+
console.log();
|
|
577
|
+
// Side-by-side scores
|
|
578
|
+
const scA = scoreColor(a.overallScore);
|
|
579
|
+
const scB = scoreColor(b.overallScore);
|
|
580
|
+
console.log(` ${c.bold(domainA)}`);
|
|
581
|
+
console.log(` ${bar(a.overallScore, 25)} ${scA(c.bold(String(a.overallScore)))}${c.dim("/100")} ${gradeEmoji(a.grade)} ${a.grade}`);
|
|
582
|
+
console.log();
|
|
583
|
+
console.log(` ${c.bold(domainB)}`);
|
|
584
|
+
console.log(` ${bar(b.overallScore, 25)} ${scB(c.bold(String(b.overallScore)))}${c.dim("/100")} ${gradeEmoji(b.grade)} ${b.grade}`);
|
|
585
|
+
console.log();
|
|
586
|
+
// Score difference
|
|
587
|
+
const diff = Math.abs(a.overallScore - b.overallScore);
|
|
588
|
+
const winner = a.overallScore >= b.overallScore ? domainA : domainB;
|
|
589
|
+
const loser = a.overallScore >= b.overallScore ? domainB : domainA;
|
|
590
|
+
if (diff === 0) {
|
|
591
|
+
console.log(` ${c.bold("Result:")} ${c.yellow("Tie")} — both sites scored equally`);
|
|
592
|
+
}
|
|
593
|
+
else {
|
|
594
|
+
console.log(` ${c.bold("Winner:")} ${c.green(winner)} ${c.dim(`(+${diff} points over ${loser})`)}`);
|
|
595
|
+
}
|
|
596
|
+
console.log();
|
|
597
|
+
// Key differences
|
|
598
|
+
console.log(c.bold(" Key Differences"));
|
|
599
|
+
console.log(c.dim(" " + "─".repeat(50)));
|
|
600
|
+
console.log();
|
|
601
|
+
// Compare issue categories
|
|
602
|
+
const categoriesA = new Set(issuesA.map(i => i.category));
|
|
603
|
+
const categoriesB = new Set(issuesB.map(i => i.category));
|
|
604
|
+
// Issues only in A
|
|
605
|
+
const onlyInA = issuesA.filter(i => !categoriesB.has(i.category));
|
|
606
|
+
// Issues only in B
|
|
607
|
+
const onlyInB = issuesB.filter(i => !categoriesA.has(i.category));
|
|
608
|
+
// Shared categories
|
|
609
|
+
const shared = issuesA.filter(i => categoriesB.has(i.category));
|
|
610
|
+
if (onlyInA.length > 0) {
|
|
611
|
+
console.log(` ${c.red("Only")} ${c.bold(domainA)} ${c.red("has:")}`);
|
|
612
|
+
for (const issue of onlyInA.slice(0, 3)) {
|
|
613
|
+
console.log(` ${severityBadge(issue.severity)} ${issue.title}`);
|
|
314
614
|
}
|
|
615
|
+
console.log();
|
|
315
616
|
}
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
617
|
+
if (onlyInB.length > 0) {
|
|
618
|
+
console.log(` ${c.red("Only")} ${c.bold(domainB)} ${c.red("has:")}`);
|
|
619
|
+
for (const issue of onlyInB.slice(0, 3)) {
|
|
620
|
+
console.log(` ${severityBadge(issue.severity)} ${issue.title}`);
|
|
621
|
+
}
|
|
622
|
+
console.log();
|
|
623
|
+
}
|
|
624
|
+
if (shared.length > 0) {
|
|
625
|
+
console.log(` ${c.yellow("Both sites have:")}`);
|
|
626
|
+
const sharedCategories = [...new Set(shared.map(i => i.title))].slice(0, 3);
|
|
627
|
+
for (const title of sharedCategories) {
|
|
628
|
+
console.log(` ${c.yellow("~")} ${title}`);
|
|
629
|
+
}
|
|
630
|
+
console.log();
|
|
322
631
|
}
|
|
632
|
+
// High-severity comparison
|
|
633
|
+
const highA = issuesA.filter(i => i.severity === 'high' || i.severity === 'critical').length;
|
|
634
|
+
const highB = issuesB.filter(i => i.severity === 'high' || i.severity === 'critical').length;
|
|
635
|
+
console.log(c.bold(" Issue Summary"));
|
|
636
|
+
console.log(c.dim(" " + "─".repeat(50)));
|
|
637
|
+
console.log(` ${c.bold(domainA)}: ${issuesA.length} issues (${highA} high-severity)`);
|
|
638
|
+
console.log(` ${c.bold(domainB)}: ${issuesB.length} issues (${highB} high-severity)`);
|
|
639
|
+
console.log();
|
|
640
|
+
// Surprising gap
|
|
641
|
+
if (diff >= 15) {
|
|
642
|
+
const higherSite = a.overallScore >= b.overallScore ? a : b;
|
|
643
|
+
const lowerSite = a.overallScore >= b.overallScore ? b : a;
|
|
644
|
+
const higherDomain = a.overallScore >= b.overallScore ? domainA : domainB;
|
|
645
|
+
const lowerDomain = a.overallScore >= b.overallScore ? domainB : domainA;
|
|
646
|
+
console.log(c.bold(" Notable Gap"));
|
|
647
|
+
console.log(c.dim(" " + "─".repeat(50)));
|
|
648
|
+
console.log(` ${higherDomain} scores ${diff} points higher than ${lowerDomain}.`);
|
|
649
|
+
// Find the biggest category difference
|
|
650
|
+
const lowerHighIssues = filterIssuesForDisplay(lowerSite.issues).filter(i => i.severity === 'high');
|
|
651
|
+
if (lowerHighIssues.length > 0) {
|
|
652
|
+
console.log(` The biggest driver: ${lowerHighIssues[0].title.toLowerCase()}.`);
|
|
653
|
+
}
|
|
654
|
+
console.log();
|
|
655
|
+
}
|
|
656
|
+
// Share links
|
|
657
|
+
console.log(c.dim(" " + "─".repeat(50)));
|
|
658
|
+
if (a.reportId && a.reportId !== 'demo') {
|
|
659
|
+
console.log(` ${c.dim("Share:")} ${c.cyan(`${SHARE_BASE}/${a.reportId}`)} ${c.dim(`(${domainA})`)}`);
|
|
660
|
+
}
|
|
661
|
+
if (b.reportId && b.reportId !== 'demo') {
|
|
662
|
+
console.log(` ${c.dim("Share:")} ${c.cyan(`${SHARE_BASE}/${b.reportId}`)} ${c.dim(`(${domainB})`)}`);
|
|
663
|
+
}
|
|
664
|
+
console.log();
|
|
665
|
+
// Next step
|
|
666
|
+
console.log(c.dim(" Compare your site to a competitor:"));
|
|
667
|
+
console.log(c.dim(" npx gravito-eval compare https://your-site.com https://competitor.com"));
|
|
668
|
+
console.log();
|
|
323
669
|
}
|
|
324
670
|
// ─── Demo Command ────────────────────────────────────────────────────────
|
|
325
671
|
function runDemo() {
|
|
@@ -327,10 +673,10 @@ function runDemo() {
|
|
|
327
673
|
console.log(c.bold(" Gravito Eval — Demo"));
|
|
328
674
|
console.log(c.dim(" " + "─".repeat(50)));
|
|
329
675
|
console.log();
|
|
330
|
-
console.log(` Gravito
|
|
331
|
-
console.log(` ${c.cyan("1.")}
|
|
332
|
-
console.log(` ${c.cyan("2.")}
|
|
333
|
-
console.log(` ${c.cyan("3.")}
|
|
676
|
+
console.log(` Gravito scans any website and tells you:`);
|
|
677
|
+
console.log(` ${c.cyan("1.")} What issues a content reviewer would flag`);
|
|
678
|
+
console.log(` ${c.cyan("2.")} What additional problems most reviewers miss`);
|
|
679
|
+
console.log(` ${c.cyan("3.")} How your site compares to others in your industry`);
|
|
334
680
|
console.log();
|
|
335
681
|
console.log(c.dim(" " + "─".repeat(50)));
|
|
336
682
|
console.log();
|
|
@@ -343,7 +689,7 @@ function runDemo() {
|
|
|
343
689
|
overallScore: 64,
|
|
344
690
|
grade: "D",
|
|
345
691
|
riskLevel: "medium",
|
|
346
|
-
summary: "This page has 4 high-priority issues that weaken trust and conversion. Fixing them would meaningfully improve both
|
|
692
|
+
summary: "This page has 4 high-priority issues that weaken trust and conversion. Fixing them would meaningfully improve both quality and user confidence.",
|
|
347
693
|
issues: [
|
|
348
694
|
{
|
|
349
695
|
category: "unsubstantiated_claim",
|
|
@@ -411,7 +757,7 @@ function runDemo() {
|
|
|
411
757
|
industryCategory: "saas_marketing",
|
|
412
758
|
industryLabel: "SaaS Marketing Pages",
|
|
413
759
|
industryAvg: 62,
|
|
414
|
-
insight: "This page falls below the median for SaaS marketing pages. Competitors with better
|
|
760
|
+
insight: "This page falls below the median for SaaS marketing pages. Competitors with better scores are building more trust with the same audience.",
|
|
415
761
|
},
|
|
416
762
|
};
|
|
417
763
|
printScanResult(demoResult);
|
|
@@ -420,7 +766,7 @@ function runDemo() {
|
|
|
420
766
|
console.log(c.bold(" How it works"));
|
|
421
767
|
console.log();
|
|
422
768
|
console.log(` ${c.cyan("→")} Gravito fetches the page and extracts content`);
|
|
423
|
-
console.log(` ${c.cyan("→")} Runs
|
|
769
|
+
console.log(` ${c.cyan("→")} Runs analysis across 5 quality frameworks`);
|
|
424
770
|
console.log(` ${c.cyan("→")} Compares against industry benchmarks`);
|
|
425
771
|
console.log(` ${c.cyan("→")} Identifies issues a human reviewer would flag`);
|
|
426
772
|
console.log(` ${c.cyan("→")} Finds additional issues humans typically miss`);
|
|
@@ -433,6 +779,10 @@ function runDemo() {
|
|
|
433
779
|
console.log(` ${c.cyan("npx gravito-eval scan https://openai.com")}`);
|
|
434
780
|
console.log(` ${c.cyan("npx gravito-eval scan https://your-site.com")}`);
|
|
435
781
|
console.log();
|
|
782
|
+
console.log(c.bold(" Or compare two sites:"));
|
|
783
|
+
console.log();
|
|
784
|
+
console.log(` ${c.cyan("npx gravito-eval compare https://your-site.com https://competitor.com")}`);
|
|
785
|
+
console.log();
|
|
436
786
|
}
|
|
437
787
|
// ─── Run Command (existing) ──────────────────────────────────────────────
|
|
438
788
|
function printResult(result) {
|
|
@@ -588,10 +938,11 @@ function loadData(inputPath) {
|
|
|
588
938
|
// ─── Main ────────────────────────────────────────────────────────────────
|
|
589
939
|
function showHelp() {
|
|
590
940
|
console.log(`
|
|
591
|
-
${c.bold("Gravito Eval")} —
|
|
941
|
+
${c.bold("Gravito Eval")} — Scan any website for content quality issues
|
|
592
942
|
|
|
593
943
|
${c.bold("Usage:")}
|
|
594
944
|
gravito-eval scan <url> ${c.dim("Scan a live URL")}
|
|
945
|
+
gravito-eval compare <url1> <url2> ${c.dim("Compare two sites side-by-side")}
|
|
595
946
|
gravito-eval demo ${c.dim("See a demo with explanations")}
|
|
596
947
|
gravito-eval run <path> ${c.dim("Evaluate local findings")}
|
|
597
948
|
|
|
@@ -605,6 +956,7 @@ ${c.bold("Run flags:")}
|
|
|
605
956
|
|
|
606
957
|
${c.bold("Examples:")}
|
|
607
958
|
${c.cyan("gravito-eval scan https://stripe.com")} ${c.dim("Scan Stripe's homepage")}
|
|
959
|
+
${c.cyan("gravito-eval compare stripe.com github.com")} ${c.dim("Compare two sites")}
|
|
608
960
|
${c.cyan("gravito-eval scan https://your-site.com")} ${c.dim("Scan your own site")}
|
|
609
961
|
${c.cyan("gravito-eval demo")} ${c.dim("See what the output looks like")}
|
|
610
962
|
${c.cyan("gravito-eval run ./examples/basic")} ${c.dim("Evaluate local data")}
|
|
@@ -642,6 +994,19 @@ async function main() {
|
|
|
642
994
|
setTimeout(() => process.exit(0), 100);
|
|
643
995
|
return;
|
|
644
996
|
}
|
|
997
|
+
// ── compare <url1> <url2> ──
|
|
998
|
+
if (command === "compare") {
|
|
999
|
+
if (!args[1] || !args[2]) {
|
|
1000
|
+
console.error(`Missing URL(s).`);
|
|
1001
|
+
console.error(`Usage: gravito-eval compare https://site1.com https://site2.com`);
|
|
1002
|
+
process.exit(1);
|
|
1003
|
+
}
|
|
1004
|
+
(0, telemetry_1.trackRun)("compare");
|
|
1005
|
+
const jsonOutput = args.includes("--json");
|
|
1006
|
+
await runCompare(args[1], args[2], jsonOutput);
|
|
1007
|
+
setTimeout(() => process.exit(0), 100);
|
|
1008
|
+
return;
|
|
1009
|
+
}
|
|
645
1010
|
// ── demo ──
|
|
646
1011
|
if (command === "demo") {
|
|
647
1012
|
(0, telemetry_1.trackRun)("demo");
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../cli/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../cli/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gravito-eval",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Scan any website
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"description": "Scan any website — see what's wrong, what's missing, and what a human reviewer would miss.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"bin": {
|