git-paid 2.1.3 → 2.1.4
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 +22 -34
- package/bin/git-paid.js +14 -14
- package/lib/auth.js +866 -282
- package/lib/directories.js +123 -123
- package/lib/engine.js +228 -112
- package/lib/fixer.js +58 -0
- package/lib/inbox.js +359 -72
- package/lib/mcp.js +139 -90
- package/lib/pseo.js +290 -106
- package/lib/safe-fetch.js +239 -0
- package/lib/stateful-mcp.js +16 -4
- package/lib/submitter.js +89 -28
- package/package.json +53 -44
- package/brand/README.md +0 -54
- package/brand/postbuild-icon.png +0 -0
- package/brand/postbuild-icon.svg +0 -14
- package/brand/postbuild-logo.png +0 -0
- package/brand/postbuild-logo.svg +0 -17
- package/lib/stripe.js +0 -554
package/README.md
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
> **`git push` ships your code. `git paid` sells it.**
|
|
4
4
|
>
|
|
5
|
-
>
|
|
5
|
+
> Post-Build Technical SEO, 25-Route Structured SEO Generator, Dedicated `@postbuild.dev` Verification Inbox, 85-Directory Launch Kit & IndexNow Dispatcher, and Stateful MCP Server for AI Coding Agents.
|
|
6
6
|
|
|
7
|
-
- **Web Studio & Live Audit**: [https://postbuild.dev](https://postbuild.dev)
|
|
8
|
-
- **CLI Binary**: `npx git-paid`
|
|
9
|
-
- **MCP Server**: `npx git-paid mcp`
|
|
7
|
+
- **Web Studio & Live Audit**: [https://www.postbuild.dev](https://www.postbuild.dev)
|
|
8
|
+
- **CLI Binary**: `npx git-paid`
|
|
9
|
+
- **MCP Server**: `npx -y git-paid mcp`
|
|
10
10
|
|
|
11
11
|
---
|
|
12
12
|
|
|
@@ -18,16 +18,16 @@ Run directly from your project root after deploying to Vercel, Railway, Render,
|
|
|
18
18
|
# 1. Run a live technical SEO & monetization readiness audit
|
|
19
19
|
npx git-paid https://your-app.com
|
|
20
20
|
|
|
21
|
-
# 2. Auto-generate & write robots.txt, sitemap.xml, llms.txt, and 25 static
|
|
21
|
+
# 2. Auto-generate & write robots.txt, sitemap.xml, llms.txt, and 25 static SEO HTML pages
|
|
22
22
|
npx git-paid fix https://your-app.com
|
|
23
23
|
|
|
24
|
-
# 3.
|
|
24
|
+
# 3. Prepare your launch kit across 85 curated SaaS/AI directories with IndexNow & form inspection
|
|
25
25
|
npx git-paid submit https://your-app.com --limit 10
|
|
26
26
|
|
|
27
|
-
# 4. Poll your dedicated @postbuild.dev verification inbox
|
|
28
|
-
npx git-paid inbox https://your-app.com
|
|
27
|
+
# 4. Poll your dedicated @postbuild.dev verification inbox for OTPs & confirmation links
|
|
28
|
+
npx git-paid inbox https://your-app.com
|
|
29
29
|
|
|
30
|
-
# 5. Install agent skill files (.agent/skills/postbuild/SKILL.md
|
|
30
|
+
# 5. Install agent skill files (.agent/skills/postbuild/SKILL.md) into your repository
|
|
31
31
|
npx git-paid skill
|
|
32
32
|
```
|
|
33
33
|
|
|
@@ -42,30 +42,30 @@ git paid https://your-app.com
|
|
|
42
42
|
|
|
43
43
|
## What `git-paid` Automates After You Ship
|
|
44
44
|
|
|
45
|
-
| Capability | Manual Post-Build Workflow | `git-paid` (`postbuild.dev`) |
|
|
45
|
+
| Capability | Manual Post-Build Workflow | `git-paid` (`www.postbuild.dev`) |
|
|
46
46
|
| :--- | :--- | :--- |
|
|
47
47
|
| **Technical & AI Search SEO** | Hand-writing meta tags, JSON-LD, and crawler rules | Writes `robots.txt` (`OAI-SearchBot`, `PerplexityBot`, `ClaudeBot`), `sitemap.xml`, `llms.txt`, and `SoftwareApplication` JSON-LD in 1 command |
|
|
48
|
-
| **25
|
|
49
|
-
| **85-Directory
|
|
50
|
-
| **Verification Inbox (`@postbuild.dev`)** | Clutters personal inbox with 85+ confirmation emails | Provisions `<slug
|
|
51
|
-
| **Self-Serve Stripe Checkout Gate** | Custom billing boilerplate | Drop-in
|
|
48
|
+
| **25 Structured SEO Pages** | Days of keyword research and static page coding | Pre-renders 25 `/use-cases/*`, `/compare/*`, `/calculators/*`, `/guides/*`, `/templates/*`, `/alternatives/*`, and `/checklists/*` HTML landing pages |
|
|
49
|
+
| **85-Directory Launch Kit** | Hours of repetitive copy-pasting & UTM tagging | Synthesizes Show HN / Product Hunt / directory copy, generates 85 prefilled submission links, and pings IndexNow & WebSub |
|
|
50
|
+
| **Verification Inbox (`@postbuild.dev`)** | Clutters personal inbox with 85+ confirmation emails | Provisions isolated `<slug>-<hash>@postbuild.dev`, extracts 6-digit OTPs, and surfaces confirmation links |
|
|
51
|
+
| **Self-Serve Stripe Checkout Gate** | Custom billing boilerplate | Drop-in `<CheckoutGate />` component + `/api/checkout.js` server route template |
|
|
52
52
|
|
|
53
53
|
---
|
|
54
54
|
|
|
55
|
-
## Stateful MCP Server (`npx git-paid mcp`)
|
|
55
|
+
## Stateful MCP Server (`npx -y git-paid mcp`)
|
|
56
56
|
|
|
57
57
|
`git-paid` includes a built-in **Stateful Model Context Protocol (MCP) Server** over `stdio` (JSON-RPC 2.0) designed for **Claude Code**, **Cursor**, **Windsurf**, and **Google Antigravity / Gemini**.
|
|
58
58
|
|
|
59
59
|
Unlike stateless MCP servers that re-serialize identical directory lists and SEO payloads on every turn, the Postbuild MCP middleware provides:
|
|
60
60
|
|
|
61
61
|
1. **Watermark Context Residuals (`unchanged@vN` / `updated@vN`)**:
|
|
62
|
-
- Turn 1 projects clean entity stubs; Turn 2+ emits lightweight `@vN` watermark deltas for unchanged records,
|
|
62
|
+
- Turn 1 projects clean entity stubs; Turn 2+ emits lightweight `@vN` watermark deltas for unchanged records, reducing multi-turn token consumption in benchmarked multi-turn sessions.
|
|
63
63
|
2. **In-Memory Superset Query Cache (`<1ms` Latency)**:
|
|
64
64
|
- Follow-up filtered tool calls (`category`, `min_da`, `status`, `limit`) resolve in-memory in `<1ms` with zero redundant network round-trips.
|
|
65
65
|
3. **Two-Phase Cryptographic OCC Write Guard (`ct_...`)**:
|
|
66
66
|
- Live directory dispatch mutations require a Phase 1 dry-run (`dry_run: true`) that issues an HMAC-signed `commit_token` (`ct_...`) before Phase 2 commits the launch state.
|
|
67
67
|
4. **Untrusted Content Spotlighting**:
|
|
68
|
-
- External scraped metadata and inbound email
|
|
68
|
+
- External scraped metadata and all inbound email fields (`from`, `subject`, `snippet`, `primaryLink`, `otpCode`) are wrapped in `<<<UNTRUSTED_CONTENT_DATA_ONLY: ... >>>` delimiters to prevent indirect prompt injection.
|
|
69
69
|
|
|
70
70
|
### Available MCP Tools
|
|
71
71
|
|
|
@@ -73,11 +73,11 @@ Unlike stateless MCP servers that re-serialize identical directory lists and SEO
|
|
|
73
73
|
| :--- | :--- |
|
|
74
74
|
| `postbuild_scan` | Audits any live URL (8 technical/AI SEO & paywall checks), synthesizes launch copy, and caches working-set state. |
|
|
75
75
|
| `postbuild_directories` | Queries the 85-directory catalog using the in-memory superset cache and `@vN` watermark deltas. |
|
|
76
|
-
| `postbuild_pseo` | Queries and filters the 25
|
|
76
|
+
| `postbuild_pseo` | Queries and filters the 25 structured SEO routes with stateful delta compaction. |
|
|
77
77
|
| `postbuild_dispatch` | Executes Two-Phase Cryptographic OCC directory dispatch (`dry_run: true` → `commit_token` → commit). |
|
|
78
|
-
| `postbuild_inbox` | Polls `<slug
|
|
78
|
+
| `postbuild_inbox` | Polls `<slug>-<hash>@postbuild.dev`, extracts 6-digit OTPs, and optionally verifies allowlisted confirmation links. |
|
|
79
79
|
| `postbuild_fix` | Writes `robots.txt`, `sitemap.xml`, `llms.txt`, `.postbuild/pseo/*.html`, and `PostbuildCheckoutGate.jsx` to disk. |
|
|
80
|
-
| `postbuild_vault_sync` |
|
|
80
|
+
| `postbuild_vault_sync` | Writes `LAUNCH_STATUS.md` and `.postbuild/telemetry.json` to your project repo (or syncs into an Obsidian VaultOS dashboard if `.obsidian/` is present). |
|
|
81
81
|
|
|
82
82
|
### MCP Configuration (`mcp_config.json` / `.cursor/mcp.json` / `claude_desktop_config.json`)
|
|
83
83
|
|
|
@@ -94,20 +94,8 @@ Unlike stateless MCP servers that re-serialize identical directory lists and SEO
|
|
|
94
94
|
|
|
95
95
|
---
|
|
96
96
|
|
|
97
|
-
## Obsidian VaultOS Integration
|
|
98
|
-
|
|
99
|
-
Sync your live project launches directly into your **Obsidian VaultOS** command center:
|
|
100
|
-
|
|
101
|
-
```bash
|
|
102
|
-
npx git-paid vault https://your-app.com --vault "C:/Users/You/ObsidianVault"
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
Writes `_meta/postbuild-telemetry.json` and `_dashboards/Postbuild Launch.md` with live SEO readiness scores, 85-directory dispatch progress, `@postbuild.dev` OTP logs, and Buyer Intent Radar threads.
|
|
106
|
-
|
|
107
|
-
---
|
|
108
|
-
|
|
109
97
|
## License
|
|
110
98
|
|
|
111
|
-
**Apache-2.0** — Copyright © 2026 Bennett Moore ([https://postbuild.dev](https://postbuild.dev)).
|
|
99
|
+
**Apache-2.0** — Copyright © 2026 Bennett Moore ([https://www.postbuild.dev](https://www.postbuild.dev)).
|
|
112
100
|
|
|
113
|
-
The `git-paid` CLI and MCP client are licensed under the [Apache License, Version 2.0](./LICENSE). Under Section 6 of the Apache-2.0 License, no permission is granted to use the `postbuild`, `git-paid`, or `postbuild.dev` trade names, trademarks, or logos. The hosted `postbuild.dev` cloud service, `@postbuild.dev` verification inbox infrastructure, and commercial Launch Pass / Studio tiers remain proprietary services of [https://postbuild.dev](https://postbuild.dev).
|
|
101
|
+
The `git-paid` CLI and MCP client are licensed under the [Apache License, Version 2.0](./LICENSE). Under Section 6 of the Apache-2.0 License, no permission is granted to use the `postbuild`, `git-paid`, or `postbuild.dev` trade names, trademarks, or logos. The hosted `postbuild.dev` cloud service, `@postbuild.dev` verification inbox infrastructure, and commercial Launch Pass / Studio tiers remain proprietary services of [https://www.postbuild.dev](https://www.postbuild.dev).
|
package/bin/git-paid.js
CHANGED
|
@@ -45,10 +45,10 @@ async function runCli() {
|
|
|
45
45
|
console.log(" git paid login <pb_live_key> Authenticate CLI & MCP with your Launch Pass / Studio license");
|
|
46
46
|
console.log(" git paid fix [url] [PRO] Write 25 pSEO HTML pages, robots.txt, sitemap.xml & llms.txt");
|
|
47
47
|
console.log(" git paid submit [url] [PRO] Headless 85-directory form submitter + OTP auto-verifier");
|
|
48
|
-
console.log(" git paid inbox [bot-email] [PRO] Check & auto-verify <
|
|
49
|
-
console.log(" git paid mcp Start Postbuild MCP Server (postbuild-mcp v2.1.
|
|
48
|
+
console.log(" git paid inbox [bot-email] [PRO] Check & auto-verify <domain-tld>-bot@postbuild.dev (e.g. acme-com-bot@) links & OTPs");
|
|
49
|
+
console.log(" git paid mcp Start Postbuild MCP Server (postbuild-mcp v2.1.4)");
|
|
50
50
|
console.log(" git paid init-agent Scaffold .agent/skills/postbuild/SKILL.md & MCP config");
|
|
51
|
-
console.log(" git paid vault [path] [PRO] Sync live telemetry & Bento
|
|
51
|
+
console.log(" git paid vault [path] [PRO] Sync live telemetry & Bento dashboard to Obsidian VaultOS\n");
|
|
52
52
|
process.exit(0);
|
|
53
53
|
}
|
|
54
54
|
|
|
@@ -125,11 +125,11 @@ async function runCli() {
|
|
|
125
125
|
});
|
|
126
126
|
console.log(` [+] Headless Browser Engine: ${submitRes.headlessBrowser}`);
|
|
127
127
|
console.log(` [+] Provisioned Bot Inbox: ${submitRes.botEmail}`);
|
|
128
|
-
console.log(` [+] Total Directories
|
|
128
|
+
console.log(` [+] Total Directories Ready: ${submitRes.totalDirectoriesPrepared || submitRes.totalDirectoriesDispatched}\n`);
|
|
129
129
|
console.log(" --- Headless Form Inspection & Submission Receipts ---");
|
|
130
130
|
for (const r of submitRes.formReceipts) {
|
|
131
131
|
console.log(
|
|
132
|
-
` [
|
|
132
|
+
` [INSPECT] ${r.name.padEnd(23)} (DR ${r.dr}) via ${r.engineUsed} -> Fields: [${r.mappedFields.slice(0, 5).join(", ")}]`
|
|
133
133
|
);
|
|
134
134
|
}
|
|
135
135
|
console.log("\n --- @postbuild.dev Inbox Auto-Verification ---");
|
|
@@ -150,7 +150,7 @@ async function runCli() {
|
|
|
150
150
|
if (subcmd === "init-agent" || subcmd === "agent" || subcmd === "skill") {
|
|
151
151
|
const res = installAgentSkillFiles({ cwd: process.cwd() });
|
|
152
152
|
console.log(` [+] Scaffolded Agent Skill: ${res.skillMdPath}`);
|
|
153
|
-
console.log(` [+] Powered by: postbuild-mcp@2.1.
|
|
153
|
+
console.log(` [+] Powered by: postbuild-mcp@2.1.4 (Stateful Delta Compaction)\n`);
|
|
154
154
|
console.log(" Add this to your Claude Code / Cursor / Antigravity MCP config:\n");
|
|
155
155
|
console.log(JSON.stringify(res.mcpConfigSnippet, null, 2));
|
|
156
156
|
console.log("");
|
|
@@ -160,19 +160,19 @@ async function runCli() {
|
|
|
160
160
|
if (subcmd === "vault" || subcmd === "vaultos") {
|
|
161
161
|
const license = await verifyCliLicense({ domain: "postbuild.dev" });
|
|
162
162
|
if (!license.valid) {
|
|
163
|
-
printProGateBanner(license, "
|
|
163
|
+
printProGateBanner(license, "Markdown / Docs & Telemetry Sync");
|
|
164
164
|
process.exit(1);
|
|
165
165
|
}
|
|
166
166
|
|
|
167
167
|
const vaultArg =
|
|
168
168
|
args.find((a, i) => i > 0 && !a.startsWith("--") && !/^https?:\/\//i.test(a)) ||
|
|
169
|
-
|
|
169
|
+
process.cwd();
|
|
170
170
|
const urlArgs = args.filter((a, i) => i > 0 && /^https?:\/\//i.test(a));
|
|
171
|
-
const targetUrls = urlArgs.length ? urlArgs : ["https://postbuild.dev"
|
|
171
|
+
const targetUrls = urlArgs.length ? urlArgs : ["https://postbuild.dev"];
|
|
172
172
|
|
|
173
|
-
console.log(` [*] Syncing Postbuild MCP Telemetry
|
|
174
|
-
console.log(` [*] Target
|
|
175
|
-
console.log(` [*] Domains:
|
|
173
|
+
console.log(` [*] Syncing Postbuild MCP Telemetry & Launch Status...`);
|
|
174
|
+
console.log(` [*] Target Directory: ${vaultArg}`);
|
|
175
|
+
console.log(` [*] Domains: ${targetUrls.join(", ")}\n`);
|
|
176
176
|
|
|
177
177
|
const syncRes = await syncPostbuildToVault({
|
|
178
178
|
vaultPath: vaultArg,
|
|
@@ -184,7 +184,7 @@ async function runCli() {
|
|
|
184
184
|
` [OK] ${p.domain.padEnd(20)} Score: ${p.readinessScore}/100 | pSEO: ${p.pseoCount} | Dirs: ${p.directoryCount} | MCP: ${p.mcpReductionPct}`
|
|
185
185
|
);
|
|
186
186
|
}
|
|
187
|
-
console.log("\n ---
|
|
187
|
+
console.log("\n --- Files Updated ---");
|
|
188
188
|
for (const f of syncRes.writtenVaultFiles) {
|
|
189
189
|
console.log(` [WRITE] ${f}`);
|
|
190
190
|
}
|
|
@@ -210,7 +210,7 @@ async function runCli() {
|
|
|
210
210
|
if (args.includes("--test")) {
|
|
211
211
|
await sendTestVerificationEmail(inboxAddr, "postbuild.dev");
|
|
212
212
|
}
|
|
213
|
-
const res = await autoVerifyInboxLinks(inboxAddr);
|
|
213
|
+
const res = await autoVerifyInboxLinks(inboxAddr, { autoVerify: !args.includes("--no-verify") });
|
|
214
214
|
console.log(
|
|
215
215
|
` [*] Verification Inbox: ${res.inboxAddress} (${res.totalMessages} messages, ${res.verifiedCount} auto-verified)\n`
|
|
216
216
|
);
|