gravito-eval 0.2.2 → 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 CHANGED
@@ -13,10 +13,9 @@ npx gravito-eval scan https://stripe.com
13
13
  ```
14
14
  Scanning https://stripe.com
15
15
 
16
- ◐ Fetching page content
17
- ◑ Running governance analysis
18
- Calculating score & benchmarks
19
- ◉ Analysis complete
16
+ ◐ Fetching page content (2s)
17
+ ◑ Running content analysis (4s)
18
+ Analysis complete (32s)
20
19
 
21
20
  Gravito Eval Results
22
21
  ──────────────────────────────────────────────────
@@ -33,33 +32,66 @@ npx gravito-eval scan https://stripe.com
33
32
  ──────────────────────────────────────────────────
34
33
 
35
34
  HIGH Unsubstantiated Claim
36
- Unsubstantiated Claims: "50% of"
35
+ → "50% of" — no source, no verification
37
36
  Fix: Add a verifiable source or rephrase as a qualified statement
38
37
 
39
38
  HIGH Unsubstantiated Claim
40
- Unsubstantiated Claims: "100% of"
39
+ → "100% of" — percentage claim without citation
41
40
  Fix: Add a verifiable source or rephrase as a qualified statement
42
41
 
43
42
  MEDIUM Banned Vocabulary
44
- Banned Vocabulary: "cutting edge"
43
+ → "cutting edge" — vague marketing language
45
44
  Fix: Replace with specific, measurable language
46
45
 
47
- Additional Insights Gravito Found
48
- ──────────────────────────────────────────────────
49
- ◆ Unapproved Claims
50
- ◆ Missing Disclaimers
51
- ◆ Forbidden Language
52
-
53
46
  ──────────────────────────────────────────────────
54
47
  Share: https://gravito.ai/try/report/a1b2c3d4
55
48
 
56
- Analyzed in 27.4s · Gravito Engine (Live) · 4 issues found
49
+ Analyzed in 32.0s · Gravito Engine (Live) · 4 issues found
57
50
  ```
58
51
 
59
52
  Every scan produces a shareable link.
60
53
 
61
54
  ---
62
55
 
56
+ ## Compare Two Sites
57
+
58
+ ```bash
59
+ npx gravito-eval compare stripe.com github.com
60
+ ```
61
+
62
+ ```
63
+ Gravito Eval — Comparison
64
+ ──────────────────────────────────────────────────
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
81
+ ──────────────────────────────────────────────────
82
+
83
+ Only stripe.com has:
84
+ HIGH Unsubstantiated Claim
85
+ MEDIUM Banned Vocabulary
86
+
87
+ Both sites have:
88
+ ~ Missing Disclaimers
89
+ ```
90
+
91
+ Compare your site to a competitor. See who's doing better and why.
92
+
93
+ ---
94
+
63
95
  ## Try It
64
96
 
65
97
  ```bash
@@ -86,11 +118,11 @@ npx gravito-eval demo
86
118
 
87
119
  Gravito Eval analyzes a real website and shows:
88
120
 
89
- - How closely it matches human-quality governance judgment
90
- - Where the gaps are (unsubstantiated claims, missing disclaimers, banned vocabulary)
91
- - What improvements a human reviewer would miss
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
92
124
 
93
- It runs the same engine that powers [Gravito](https://gravito.ai) — a governance layer for AI outputs and digital surfaces.
125
+ It runs the same engine that powers [Gravito](https://gravito.ai).
94
126
 
95
127
  ---
96
128
 
@@ -100,7 +132,7 @@ Most tools tell you **what** is wrong.
100
132
 
101
133
  Gravito Eval tells you:
102
134
 
103
- - **How aligned** your content is with governance best practices
135
+ - **How aligned** your content is with quality best practices
104
136
  - **Where it disagrees** with what a human reviewer would flag
105
137
  - **Whether those disagreements are valuable** — sometimes the AI catches things humans miss
106
138
 
@@ -110,11 +142,11 @@ Gravito Eval tells you:
110
142
 
111
143
  | Use Case | What You Get |
112
144
  |---|---|
113
- | **Scan your landing page** | Governance score, issues, fixes, industry benchmark |
145
+ | **Scan your landing page** | Quality score, issues, fixes, industry benchmark |
146
+ | **Compare to competitors** | Side-by-side analysis with `compare` command |
114
147
  | **Evaluate LLM outputs** | Alignment metrics, novel signal detection |
115
148
  | **Compare prompts** | Run the same content through different prompts, compare scores |
116
- | **QA AI features** | Check if your AI-generated content meets governance standards |
117
- | **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 |
118
150
 
119
151
  ---
120
152
 
@@ -170,14 +202,14 @@ Add `--explain` for detailed match reasoning. Add `--json` for raw output.
170
202
  ## How It Works
171
203
 
172
204
  ```
173
- URL → Fetch Content → Governance Analysis → Industry Benchmark → Score + Issues + Fixes
174
-
175
- 5 analysis frameworks:
176
- • Claim verification
177
- • Vocabulary compliance
178
- • Disclosure detection
179
- • Pattern recognition
180
- • Brand governance
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
181
213
  ```
182
214
 
183
215
  The analysis runs server-side on the Gravito engine. No local LLM required.
@@ -187,14 +219,15 @@ The analysis runs server-side on the Gravito engine. No local LLM required.
187
219
  ## CLI Reference
188
220
 
189
221
  ```
190
- gravito-eval scan <url> Scan a live URL
191
- gravito-eval scan <url> --json Output raw JSON
192
- gravito-eval demo See a demo with explanations
193
- gravito-eval run <path> Evaluate local findings
194
- gravito-eval run <path> --explain Show detailed match reasoning
195
- gravito-eval run <path> --json Output raw JSON
196
- gravito-eval --help Show help
197
- gravito-eval --version Show version
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
198
231
  ```
199
232
 
200
233
  ---
@@ -202,7 +235,7 @@ gravito-eval --version Show version
202
235
  ## Requirements
203
236
 
204
237
  - Node.js 18+
205
- - Internet connection (for `scan` command)
238
+ - Internet connection (for `scan` and `compare` commands)
206
239
 
207
240
  ---
208
241
 
@@ -234,7 +267,7 @@ result.verdict // PASS | PARTIAL | FAIL | INSUFFICIENT_DATA
234
267
 
235
268
  Want this running continuously on your site?
236
269
 
237
- [Gravito](https://gravito.ai) provides always-on governance monitoring, automated alerts, and team dashboards.
270
+ [Gravito](https://gravito.ai) provides always-on monitoring, automated alerts, and team dashboards.
238
271
 
239
272
  ---
240
273
 
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../cli/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;GAYG"}
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,6 +123,20 @@ function bar(value, width = 20) {
142
123
  const color = scoreColor(value);
143
124
  return color("█".repeat(filled)) + c.dim("░".repeat(empty));
144
125
  }
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
+ }
145
140
  function httpRequest(method, url, data) {
146
141
  return new Promise((resolve, reject) => {
147
142
  const payload = data ? JSON.stringify(data) : undefined;
@@ -185,7 +180,7 @@ function httpGet(url) {
185
180
  function sleep(ms) {
186
181
  return new Promise(resolve => setTimeout(resolve, ms));
187
182
  }
188
- // Known brand names and design-intent terms that should NOT be flagged as capitalization errors
183
+ // Known brand names and design-intent terms that should NOT be flagged
189
184
  const KNOWN_BRANDS = new Set([
190
185
  'URBN', 'NYSE', 'NASDAQ', 'AWS', 'GCP', 'IBM', 'SAP', 'HSBC', 'KPMG',
191
186
  'BMW', 'UBS', 'DHL', 'BBC', 'CNN', 'ESPN', 'HBO', 'NFL', 'NBA', 'FIFA',
@@ -228,26 +223,28 @@ function filterIssuesForDisplay(issues) {
228
223
  return true;
229
224
  });
230
225
  }
231
- function printScanResult(result) {
226
+ function printScanResult(result, compact = false) {
232
227
  // Filter issues before display
233
228
  const displayIssues = filterIssuesForDisplay(result.issues);
234
229
  const sc = scoreColor(result.overallScore);
235
- console.log();
236
- console.log(c.bold(" Gravito Eval Results"));
237
- console.log(c.dim(" " + "─".repeat(50)));
238
- console.log();
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
+ }
239
236
  // Score + Grade
240
237
  console.log(` ${c.dim("Score:")} ${sc(c.bold(String(result.overallScore)))}${c.dim("/100")} ${gradeEmoji(result.grade)} ${c.bold(result.grade)} Grade`);
241
238
  console.log(` ${c.dim("Site:")} ${c.cyan(result.url)}`);
242
- if (result.pageTitle) {
239
+ if (result.pageTitle && !compact) {
243
240
  console.log(` ${c.dim("Title:")} ${result.pageTitle}`);
244
241
  }
245
242
  console.log();
246
243
  // Score bar
247
244
  console.log(` ${bar(result.overallScore, 30)} ${sc(String(result.overallScore) + "%")}`);
248
245
  console.log();
249
- // Benchmark
250
- if (result.benchmark) {
246
+ // Benchmark — no (est.) label, cleaner presentation
247
+ if (result.benchmark && !compact) {
251
248
  const b = result.benchmark;
252
249
  console.log(` ${c.dim("vs")} ${b.industryLabel}: ${c.bold("top " + (100 - b.percentileRank) + "%")} ${c.dim("(avg: " + b.industryAvg + ")")}`);
253
250
  console.log();
@@ -256,47 +253,52 @@ function printScanResult(result) {
256
253
  if (displayIssues.length > 0) {
257
254
  console.log(c.bold(" Key Issues"));
258
255
  console.log(c.dim(" " + "─".repeat(50)));
259
- const topIssues = displayIssues.slice(0, 6);
256
+ const maxIssues = compact ? 3 : 6;
257
+ const topIssues = displayIssues.slice(0, maxIssues);
260
258
  for (const issue of topIssues) {
261
259
  console.log();
262
260
  console.log(` ${severityBadge(issue.severity)} ${c.bold(issue.title)}`);
263
261
  console.log(` ${c.dim("→")} ${issue.description}`);
264
- console.log(` ${c.green("Fix:")} ${issue.fix}`);
262
+ if (!compact) {
263
+ console.log(` ${c.green("Fix:")} ${issue.fix}`);
264
+ }
265
265
  }
266
- if (displayIssues.length > 6) {
266
+ if (displayIssues.length > maxIssues) {
267
267
  console.log();
268
- console.log(c.dim(` + ${displayIssues.length - 6} more issues in full report`));
268
+ console.log(c.dim(` + ${displayIssues.length - maxIssues} more issues in full report`));
269
269
  }
270
270
  console.log();
271
271
  }
272
- // Novel Insights (patterns)
273
- if (result.patternsDetected.length > 0) {
274
- console.log(c.bold(" Additional Insights Gravito Found"));
272
+ // Novel Insights (patterns) — only in full mode
273
+ if (!compact && result.patternsDetected.length > 0) {
274
+ console.log(c.bold(" Additional Insights"));
275
275
  console.log(c.dim(" " + "─".repeat(50)));
276
276
  for (const pattern of result.patternsDetected) {
277
277
  console.log(` ${c.magenta("◆")} ${pattern.replace(/_/g, " ").replace(/\b\w/g, (ch) => ch.toUpperCase())}`);
278
278
  }
279
279
  console.log();
280
280
  }
281
- // Projection
282
- if (result.projection) {
281
+ // Projection — only in full mode
282
+ if (!compact && result.projection) {
283
283
  console.log(c.bold(" What This Means"));
284
284
  console.log(c.dim(" " + "─".repeat(50)));
285
285
  console.log(` ${result.projection.summary}`);
286
286
  console.log(` ${c.dim("Time to fix:")} ${result.projection.timeToFix}`);
287
287
  console.log();
288
288
  }
289
- // Shareable link
290
- console.log(c.dim(" " + "─".repeat(50)));
291
- console.log(` ${c.bold("Share:")} ${c.cyan(`${SHARE_BASE}/${result.reportId}`)}`);
292
- console.log();
293
- // Next step — subtle, not salesy
294
- console.log(c.dim(" Try another site:"));
295
- console.log(c.dim(" npx gravito-eval scan https://your-site.com"));
296
- console.log();
297
- // Analysis meta
298
- console.log(c.dim(` Analyzed in ${(result.analysisTimeMs / 1000).toFixed(1)}s · ${result.engineUsed} · ${displayIssues.length} issues found`));
299
- console.log();
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
+ }
300
302
  }
301
303
  async function runScan(url, jsonOutput) {
302
304
  // Normalize URL
@@ -314,25 +316,14 @@ async function runScan(url, jsonOutput) {
314
316
  process.exit(1);
315
317
  }
316
318
  // Try async scan first (startScan + poll), fall back to sync analyzeUrl
319
+ let result;
317
320
  try {
318
- const result = await runAsyncScan(targetUrl);
319
- if (jsonOutput) {
320
- console.log(JSON.stringify(result, null, 2));
321
- }
322
- else {
323
- printScanResult(result);
324
- }
321
+ result = await runAsyncScan(targetUrl);
325
322
  }
326
323
  catch (asyncErr) {
327
324
  // If async scan fails (e.g., endpoint not deployed yet), fall back to sync
328
325
  try {
329
- const result = await runSyncScan(targetUrl);
330
- if (jsonOutput) {
331
- console.log(JSON.stringify(result, null, 2));
332
- }
333
- else {
334
- printScanResult(result);
335
- }
326
+ result = await runSyncScan(targetUrl);
336
327
  }
337
328
  catch (syncErr) {
338
329
  console.error(`Error: ${syncErr.message || 'Analysis failed'}`);
@@ -346,8 +337,16 @@ async function runScan(url, jsonOutput) {
346
337
  process.exit(1);
347
338
  }
348
339
  }
340
+ if (jsonOutput) {
341
+ console.log(JSON.stringify(result, null, 2));
342
+ }
343
+ else {
344
+ printScanResult(result);
345
+ }
346
+ return result;
349
347
  }
350
348
  async function runAsyncScan(targetUrl) {
349
+ const startTime = Date.now();
351
350
  // Step 1: Start the scan (returns immediately)
352
351
  console.log();
353
352
  console.log(` ${c.dim("Scanning")} ${c.cyan(targetUrl)}`);
@@ -361,17 +360,19 @@ async function runAsyncScan(targetUrl) {
361
360
  if (!jobId) {
362
361
  throw new Error('No job ID returned');
363
362
  }
364
- // Step 2: Poll for results with real progress
363
+ // Step 2: Poll for results with real progress and elapsed time
365
364
  const progressSteps = [
366
365
  { status: 'fetching', icon: '\u25d0', msg: 'Fetching page content' },
367
- { status: 'analyzing', icon: '\u25d1', msg: 'Running governance analysis' },
368
- { status: 'scoring', icon: '\u25d2', msg: 'Calculating score & benchmarks' },
366
+ { status: 'analyzing', icon: '\u25d1', msg: 'Running content analysis' },
367
+ { status: 'scoring', icon: '\u25d2', msg: 'Scoring against industry baseline' },
369
368
  { status: 'complete', icon: '\u25c9', msg: 'Analysis complete' },
370
369
  ];
371
370
  let lastStatus = '';
372
371
  const maxPolls = 60; // 2 minutes max
372
+ let lastProgressUpdate = Date.now();
373
373
  for (let i = 0; i < maxPolls; i++) {
374
374
  await sleep(2000);
375
+ const elapsed = formatElapsed(Date.now() - startTime);
375
376
  try {
376
377
  const pollResponse = await httpGet(`${API_BASE}/api/trpc/try.getScanStatus?input=${encodeURIComponent(JSON.stringify({ json: { jobId } }))}`);
377
378
  if (pollResponse.status !== 200)
@@ -385,9 +386,15 @@ async function runAsyncScan(targetUrl) {
385
386
  const step = progressSteps.find(s => s.status === data.status);
386
387
  if (step) {
387
388
  const color = data.status === 'complete' ? c.green : c.cyan;
388
- console.log(` ${color(step.icon)} ${step.msg}`);
389
+ console.log(` ${color(step.icon)} ${step.msg} ${c.dim(`(${elapsed})`)}`);
389
390
  }
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();
391
398
  }
392
399
  // Check for completion
393
400
  if (data.status === 'complete' && data.result) {
@@ -417,28 +424,248 @@ async function runAsyncScan(targetUrl) {
417
424
  throw new Error('Scan timed out after 2 minutes.');
418
425
  }
419
426
  async function runSyncScan(targetUrl) {
420
- const spinner = new Spinner();
421
- spinner.start(`Scanning ${c.cyan(targetUrl)}`);
422
- const response = await httpPost(`${API_BASE}/api/trpc/try.analyzeUrl`, { json: { url: targetUrl } });
423
- spinner.stop();
424
- if (response.status !== 200) {
425
- let errorMsg = 'Analysis failed';
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);
434
+ try {
435
+ const response = await httpPost(`${API_BASE}/api/trpc/try.analyzeUrl`, { json: { url: targetUrl } });
436
+ clearInterval(progressInterval);
437
+ console.log();
438
+ if (response.status !== 200) {
439
+ let errorMsg = 'Analysis failed';
440
+ try {
441
+ const err = JSON.parse(response.body);
442
+ if (err?.error?.json?.message)
443
+ errorMsg = err.error.json.message;
444
+ else if (err?.error?.message)
445
+ errorMsg = err.error.message;
446
+ }
447
+ catch { }
448
+ throw new Error(errorMsg);
449
+ }
450
+ const parsed = JSON.parse(response.body);
451
+ const result = parsed.result?.data?.json || parsed.result?.data || parsed;
452
+ if (!result.overallScore && result.overallScore !== 0) {
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);
426
539
  try {
427
- const err = JSON.parse(response.body);
428
- if (err?.error?.json?.message)
429
- errorMsg = err.error.json.message;
430
- else if (err?.error?.message)
431
- errorMsg = err.error.message;
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');
552
+ }
553
+ }
554
+ catch (err) {
555
+ if (err.message && err.message !== 'Request timed out')
556
+ throw err;
432
557
  }
433
- catch { }
434
- throw new Error(errorMsg);
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');
435
565
  }
436
566
  const parsed = JSON.parse(response.body);
437
- const result = parsed.result?.data?.json || parsed.result?.data || parsed;
438
- if (!result.overallScore && result.overallScore !== 0) {
439
- throw new Error('Unexpected response format');
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`);
440
592
  }
441
- return result;
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}`);
614
+ }
615
+ console.log();
616
+ }
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();
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();
442
669
  }
443
670
  // ─── Demo Command ────────────────────────────────────────────────────────
444
671
  function runDemo() {
@@ -446,10 +673,10 @@ function runDemo() {
446
673
  console.log(c.bold(" Gravito Eval — Demo"));
447
674
  console.log(c.dim(" " + "─".repeat(50)));
448
675
  console.log();
449
- console.log(` Gravito evaluates any website or AI output and tells you:`);
450
- console.log(` ${c.cyan("1.")} How closely it matches human-quality judgment`);
451
- console.log(` ${c.cyan("2.")} Where the gaps are`);
452
- console.log(` ${c.cyan("3.")} What improvements a human reviewer would miss`);
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`);
453
680
  console.log();
454
681
  console.log(c.dim(" " + "─".repeat(50)));
455
682
  console.log();
@@ -462,7 +689,7 @@ function runDemo() {
462
689
  overallScore: 64,
463
690
  grade: "D",
464
691
  riskLevel: "medium",
465
- summary: "This page has 4 high-priority issues that weaken trust and conversion. Fixing them would meaningfully improve both compliance posture and user confidence.",
692
+ summary: "This page has 4 high-priority issues that weaken trust and conversion. Fixing them would meaningfully improve both quality and user confidence.",
466
693
  issues: [
467
694
  {
468
695
  category: "unsubstantiated_claim",
@@ -530,7 +757,7 @@ function runDemo() {
530
757
  industryCategory: "saas_marketing",
531
758
  industryLabel: "SaaS Marketing Pages",
532
759
  industryAvg: 62,
533
- insight: "This page falls below the median for SaaS marketing pages. Competitors with better governance scores are building more trust with the same audience.",
760
+ insight: "This page falls below the median for SaaS marketing pages. Competitors with better scores are building more trust with the same audience.",
534
761
  },
535
762
  };
536
763
  printScanResult(demoResult);
@@ -539,7 +766,7 @@ function runDemo() {
539
766
  console.log(c.bold(" How it works"));
540
767
  console.log();
541
768
  console.log(` ${c.cyan("→")} Gravito fetches the page and extracts content`);
542
- console.log(` ${c.cyan("→")} Runs governance analysis across 5 frameworks`);
769
+ console.log(` ${c.cyan("→")} Runs analysis across 5 quality frameworks`);
543
770
  console.log(` ${c.cyan("→")} Compares against industry benchmarks`);
544
771
  console.log(` ${c.cyan("→")} Identifies issues a human reviewer would flag`);
545
772
  console.log(` ${c.cyan("→")} Finds additional issues humans typically miss`);
@@ -552,6 +779,10 @@ function runDemo() {
552
779
  console.log(` ${c.cyan("npx gravito-eval scan https://openai.com")}`);
553
780
  console.log(` ${c.cyan("npx gravito-eval scan https://your-site.com")}`);
554
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();
555
786
  }
556
787
  // ─── Run Command (existing) ──────────────────────────────────────────────
557
788
  function printResult(result) {
@@ -707,10 +938,11 @@ function loadData(inputPath) {
707
938
  // ─── Main ────────────────────────────────────────────────────────────────
708
939
  function showHelp() {
709
940
  console.log(`
710
- ${c.bold("Gravito Eval")} — Evaluate any website or AI output in seconds
941
+ ${c.bold("Gravito Eval")} — Scan any website for content quality issues
711
942
 
712
943
  ${c.bold("Usage:")}
713
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")}
714
946
  gravito-eval demo ${c.dim("See a demo with explanations")}
715
947
  gravito-eval run <path> ${c.dim("Evaluate local findings")}
716
948
 
@@ -724,6 +956,7 @@ ${c.bold("Run flags:")}
724
956
 
725
957
  ${c.bold("Examples:")}
726
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")}
727
960
  ${c.cyan("gravito-eval scan https://your-site.com")} ${c.dim("Scan your own site")}
728
961
  ${c.cyan("gravito-eval demo")} ${c.dim("See what the output looks like")}
729
962
  ${c.cyan("gravito-eval run ./examples/basic")} ${c.dim("Evaluate local data")}
@@ -761,6 +994,19 @@ async function main() {
761
994
  setTimeout(() => process.exit(0), 100);
762
995
  return;
763
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
+ }
764
1010
  // ── demo ──
765
1011
  if (command === "demo") {
766
1012
  (0, telemetry_1.trackRun)("demo");
@@ -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,6 +1,6 @@
1
1
  {
2
2
  "name": "gravito-eval",
3
- "version": "0.2.2",
3
+ "version": "0.3.0",
4
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",