content-grade 1.0.32 → 1.0.33

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.
@@ -98,7 +98,7 @@ function incrementUsage() {
98
98
 
99
99
  // Upgrade links — Free → Pro → Business → Team
100
100
  const UPGRADE_LINKS = {
101
- free: 'https://content-grade.github.io/Content-Grade/#pricing', // Pro $9/mo — pricing page
101
+ free: 'https://buy.stripe.com/4gM14p87GeCh9vn9ks8k80a', // Pro $9/mo — direct checkout
102
102
  pro: 'https://buy.stripe.com/bJefZjafO2Tz36Z2W48k80b', // Business $29/mo
103
103
  business: 'https://buy.stripe.com/cNiaEZfA8cu9bDv4088k80c', // Team $79/mo
104
104
  };
@@ -111,7 +111,7 @@ const TIER_NAMES = {
111
111
  };
112
112
 
113
113
  const TIER_LIMITS = {
114
- free: 3,
114
+ free: 5,
115
115
  pro: Infinity,
116
116
  business: 100,
117
117
  team: 500,
@@ -128,7 +128,7 @@ function getUpgradeMessage() {
128
128
  // Show usage-aware upgrade CTA after each free run.
129
129
  // count = today's usage AFTER this run (1 = first run, 3 = last free run).
130
130
  function showFreeTierCTA(count) {
131
- const limit = TIER_LIMITS.free; // 3
131
+ const limit = TIER_LIMITS.free; // 5
132
132
  const remaining = Math.max(0, limit - count);
133
133
 
134
134
  blank();
@@ -233,18 +233,19 @@ function checkFreeTierLimit() {
233
233
 
234
234
  blank();
235
235
  hr();
236
- console.log(` ${YL}${B}${limit}/${limit} free analyses used — limit reached.${R}`);
236
+ console.log(` ${YL}${B}You've used ${usage.count}/${limit} free analyses today.${R}`);
237
237
  blank();
238
- console.log(` ${D}Pro removes the cap — unlimited analyses, $9/mo:${R}`);
239
- console.log(` ${D}├── Unlimited analyses — no cap, ever${R}`);
240
- console.log(` ${D}├── Batch mode — score an entire /posts/ directory${R}`);
241
- console.log(` ${D}├── CI mode — exit 1 on below-threshold content${R}`);
242
- console.log(` ${D}└── JSON + HTML output — pipe into your pipeline${R}`);
238
+ console.log(` ${WH}${B}Upgrade to Pro — unlimited analyses, $9/mo${R}`);
243
239
  blank();
244
- console.log(` ${D}Used by 1,100+ developers.${R}`);
240
+ console.log(` ${D}Pro removes the daily cap entirely:${R}`);
241
+ console.log(` ${D} · Unlimited analyses — run as many as you need, every day${R}`);
242
+ console.log(` ${D} · Batch mode — score an entire /posts/ directory at once${R}`);
243
+ console.log(` ${D} · CI mode — gate deploys on content quality${R}`);
244
+ console.log(` ${D} · JSON + HTML output — pipe results into your pipeline${R}`);
245
245
  blank();
246
- console.log(` ${MG}${B}→ ${CY}${UPGRADE_LINKS.free}${R}`);
247
- console.log(` ${D} After purchase → get your key: ${CY}https://content-grade.onrender.com/my-license${R}`);
246
+ console.log(` ${MG}${B}→ Get Pro ($9/mo): ${CY}${UPGRADE_LINKS.free}${R}`);
247
+ blank();
248
+ console.log(` ${D} After purchase → get your license key: ${CY}https://content-grade.onrender.com/my-license${R}`);
248
249
  console.log(` ${D} Already have a key? ${CY}content-grade activate <key>${R}`);
249
250
  hr();
250
251
  blank();
@@ -516,7 +517,7 @@ async function cmdAnalyze(filePath) {
516
517
  process.exit(1);
517
518
  }
518
519
 
519
- if (checkFreeTierLimit()) { process.exit(1); }
520
+ if (checkFreeTierLimit()) { process.exit(0); }
520
521
 
521
522
  if (!_jsonMode && !_quietMode) {
522
523
  banner();
@@ -756,7 +757,7 @@ async function cmdHeadline(text) {
756
757
  process.exit(1);
757
758
  }
758
759
 
759
- if (checkFreeTierLimit()) { process.exit(1); }
760
+ if (checkFreeTierLimit()) { process.exit(0); }
760
761
 
761
762
  if (!_jsonMode && !_quietMode) {
762
763
  banner();
@@ -944,7 +945,7 @@ async function cmdActivate() {
944
945
  blank();
945
946
  console.log(` ${B}Pro features:${R}`);
946
947
  console.log(` ${D} content-grade batch ./posts/ ${R}${D}# analyze all files in a directory${R}`);
947
- console.log(` ${D} Unlimited analyses/day (vs 3 free)${R}`);
948
+ console.log(` ${D} Unlimited analyses/day (vs 5 free)${R}`);
948
949
  blank();
949
950
  return;
950
951
  }
@@ -1297,7 +1298,7 @@ function cmdStart() {
1297
1298
  info(` EmailForge — ${url}/email-forge`);
1298
1299
  info(` AudienceDecoder — ${url}/audience`);
1299
1300
  blank();
1300
- info(`Free tier: 3 analyses/day. Unlimited with Pro ($9/mo) → ${UPGRADE_LINKS.free}`);
1301
+ info(`Free tier: 5 analyses/day. Unlimited with Pro ($9/mo) → ${UPGRADE_LINKS.free}`);
1301
1302
  info(`Press Ctrl+C to stop`);
1302
1303
  blank();
1303
1304
  openBrowser(url);
@@ -1568,7 +1569,7 @@ function cmdHelp() {
1568
1569
 
1569
1570
  console.log(` ${B}PRICING${R}`);
1570
1571
  blank();
1571
- console.log(` Free 3/day $0`);
1572
+ console.log(` Free 5/day $0`);
1572
1573
  console.log(` Pro Unlimited $9/mo`);
1573
1574
  console.log(` Business 100/day $29/mo`);
1574
1575
  console.log(` Team 500/day $79/mo`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "content-grade",
3
- "version": "1.0.32",
3
+ "version": "1.0.33",
4
4
  "description": "AI-powered content analysis CLI. Score any blog post, landing page, or ad copy in under 30 seconds — runs on Claude CLI, no API key needed.",
5
5
  "type": "module",
6
6
  "bin": {