thumbgate 1.28.4 → 1.29.2
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/.claude/commands/dashboard.md +11 -1
- package/.claude/commands/thumbgate-dashboard.md +23 -8
- package/.claude-plugin/plugin.json +1 -1
- package/.well-known/llms.txt +18 -10
- package/.well-known/mcp/server-card.json +1 -1
- package/README.md +66 -3
- package/adapters/claude/.mcp.json +2 -2
- package/adapters/forge/forge.yaml +3 -3
- package/adapters/mcp/server-stdio.js +88 -2
- package/adapters/opencode/opencode.json +1 -1
- package/bin/cli.js +8 -8
- package/bin/postinstall.js +4 -13
- package/commands/dashboard.md +11 -1
- package/commands/thumbgate-dashboard.md +23 -8
- package/config/agent-outcome-monitor-thresholds.json +63 -0
- package/config/evals/agent-outcomes-baseline.json +17 -0
- package/config/evals/agent-outcomes-golden.json +412 -0
- package/config/evals/prompt-eval-baseline.json +23 -0
- package/config/github-about.json +5 -4
- package/config/post-deploy-marketing-pages.json +6 -6
- package/config/schemas/task-outcome-receipt.schema.json +296 -0
- package/docs/integrations/grafana/README.md +109 -0
- package/docs/integrations/grafana/thumbgate-revenue-evidence-dashboard.json +1930 -0
- package/openapi/openapi.yaml +475 -5
- package/package.json +75 -22
- package/public/agent-manager.html +10 -11
- package/public/agents-cost-savings.html +2 -2
- package/public/assets/brand/thumbgate-logo-transparent.svg +6 -11
- package/public/assets/brand/thumbgate-mark-inline-v3.svg +11 -10
- package/public/assets/brand/thumbgate-mark.svg +10 -11
- package/public/blog/inside-your-boundary.html +114 -0
- package/public/blog/process-over-outcome-gates.html +119 -0
- package/public/blog.html +296 -402
- package/public/brand/thumbgate-mark.svg +5 -9
- package/public/codex-enterprise.html +2 -2
- package/public/compare.html +12 -3
- package/public/diagnostic.html +79 -29
- package/public/guide.html +4 -4
- package/public/index.html +1090 -2098
- package/public/install.html +3 -3
- package/public/js/buyer-intent.js +33 -18
- package/public/numbers.html +2 -2
- package/public/pricing.html +268 -408
- package/public/pro.html +4 -4
- package/scripts/agent-outcome-eval.js +130 -0
- package/scripts/agent-outcome-monitor.js +261 -0
- package/scripts/agent-reasoning-traces.js +8 -9
- package/scripts/async-job-runner.js +107 -13
- package/scripts/billing.js +456 -126
- package/scripts/buyer-paths.js +102 -0
- package/scripts/cli-feedback.js +2 -2
- package/scripts/commercial-offer.js +18 -10
- package/scripts/durability/step.js +121 -12
- package/scripts/external-customer-audit.js +881 -0
- package/scripts/feedback-loop.js +26 -0
- package/scripts/gates-engine.js +554 -19
- package/scripts/grafana-revenue-evidence.js +856 -0
- package/scripts/human-escalation.js +265 -0
- package/scripts/hybrid-feedback-context.js +93 -50
- package/scripts/jsonl-window.js +89 -0
- package/scripts/judge-reward-function.js +30 -18
- package/scripts/lesson-embedding-index.js +3 -7
- package/scripts/meta-agent-loop.js +20 -2
- package/scripts/observability-env.js +139 -0
- package/scripts/observability-setup.js +55 -0
- package/scripts/plausible-domain-config.js +4 -0
- package/scripts/prompt-eval.js +81 -4
- package/scripts/provider-live-evidence.js +1290 -0
- package/scripts/provider-payment-reconciler.js +442 -0
- package/scripts/provider-revenue-evidence.js +249 -0
- package/scripts/rate-limiter.js +1 -5
- package/scripts/revenue-action-eligibility.js +414 -0
- package/scripts/revenue-evidence-remediation.js +694 -0
- package/scripts/revenue-offer-system.js +709 -0
- package/scripts/sales-pipeline.js +1117 -0
- package/scripts/schedule-manager.js +249 -0
- package/scripts/seo-gsd.js +8 -4
- package/scripts/stripe-credentials.js +37 -0
- package/scripts/stripe-revenue-catalog-audit.js +363 -0
- package/scripts/stripe-revenue-catalog.js +164 -0
- package/scripts/task-outcomes.js +425 -0
- package/scripts/telemetry-analytics.js +23 -3
- package/scripts/tool-contract-validator.js +287 -59
- package/scripts/tool-registry.js +143 -0
- package/scripts/vector-store.js +83 -7
- package/scripts/workflow-intake-queue.js +483 -0
- package/src/api/server.js +647 -118
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-labelledby="title desc">
|
|
2
2
|
<title id="title">ThumbGate</title>
|
|
3
|
-
<desc id="desc">ThumbGate
|
|
3
|
+
<desc id="desc">ThumbGate TG gate monogram.</desc>
|
|
4
4
|
<defs>
|
|
5
5
|
<linearGradient id="tg-frame" x1="8" y1="8" x2="56" y2="56" gradientUnits="userSpaceOnUse">
|
|
6
6
|
<stop offset="0" stop-color="#8cf5d1"/>
|
|
@@ -8,12 +8,8 @@
|
|
|
8
8
|
</linearGradient>
|
|
9
9
|
</defs>
|
|
10
10
|
<rect width="64" height="64" rx="14" fill="#061015"/>
|
|
11
|
-
|
|
12
|
-
<path d="
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
<!-- Proportional Thumbs Up -->
|
|
16
|
-
<g transform="translate(19, 17) scale(1.1)" stroke="#8cf5d1" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" fill="none">
|
|
17
|
-
<path d="M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3"/>
|
|
18
|
-
</g>
|
|
11
|
+
<rect x="9" y="9" width="46" height="46" rx="12" fill="#0b1820" stroke="url(#tg-frame)" stroke-width="3.5"/>
|
|
12
|
+
<path d="M19 44V25c0-5.5 4.5-10 10-10h6c5.5 0 10 4.5 10 10v19" fill="none" stroke="#8cf5d1" stroke-width="4.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
13
|
+
<text x="32" y="39" text-anchor="middle" fill="#e7fbff" font-family="Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Arial, sans-serif" font-size="19" font-weight="900">TG</text>
|
|
14
|
+
<rect x="18" y="44" width="28" height="4" rx="2" fill="#22d3ee"/>
|
|
19
15
|
</svg>
|
|
@@ -101,9 +101,9 @@
|
|
|
101
101
|
<p>This wires the Codex hook, sets up the local lesson DB, and gives you the capture/promote/block loop without a hosted account. If you want the standalone Codex plugin as a self-contained zip — for offline distribution to Dell-managed machines or for security review — grab it from <a href="https://github.com/IgorGanapolsky/ThumbGate/releases" target="_blank" rel="noopener" style="color:var(--cyan)">GitHub releases</a> (look for <code>codex-plugin-*.zip</code>).</p>
|
|
102
102
|
|
|
103
103
|
<div class="card">
|
|
104
|
-
<p><strong>The free CLI is real. Pro adds the personal dashboard, recall, exports, and managed adapters. Enterprise is
|
|
104
|
+
<p><strong>The free CLI is real. Pro adds the personal local dashboard, recall, exports, and managed adapters. Enterprise service work is qualified and signed after intake around local workflow controls; a hosted org dashboard and org-wide hosted rule library are not generally available.</strong></p>
|
|
105
105
|
<p>
|
|
106
|
-
<a href="
|
|
106
|
+
<a href="/diagnostic?utm_source=website&utm_medium=codex_enterprise_page&utm_campaign=managed_workflow_gate&cta_id=codex_enterprise_managed_gate&cta_placement=codex_enterprise_page" class="cta">Get the managed workflow gate</a>
|
|
107
107
|
<a href="/checkout/pro?utm_source=website&utm_medium=codex_enterprise_page&utm_campaign=pro_upgrade&cta_id=codex_enterprise_pro_checkout&cta_placement=codex_enterprise_page&plan_id=pro" class="secondary">Or start Pro at $19/mo →</a>
|
|
108
108
|
</p>
|
|
109
109
|
</div>
|
package/public/compare.html
CHANGED
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"name": "Is ThumbGate free?",
|
|
63
63
|
"acceptedAnswer": {
|
|
64
64
|
"@type": "Answer",
|
|
65
|
-
"text": "ThumbGate free includes local
|
|
65
|
+
"text": "ThumbGate's free CLI includes bounded local feedback capture, prevention rules, and pre-action blocking. The public managed offer is a $499 one-time implementation: one supported workflow review, one configured gate, a regression test, and written rollout and rollback proof."
|
|
66
66
|
}
|
|
67
67
|
},
|
|
68
68
|
{
|
|
@@ -218,7 +218,7 @@
|
|
|
218
218
|
</tr>
|
|
219
219
|
<tr>
|
|
220
220
|
<td>Cost</td>
|
|
221
|
-
<td>Free
|
|
221
|
+
<td>Free CLI + $499 one-time managed gate</td>
|
|
222
222
|
<td>Engineer time per review</td>
|
|
223
223
|
<td>Time lost + recovery cost</td>
|
|
224
224
|
<td>Free</td>
|
|
@@ -255,6 +255,12 @@
|
|
|
255
255
|
<p><a href="/compare/agentix-labs" class="cta">Read ThumbGate vs Agentix Labs</a></p>
|
|
256
256
|
</div>
|
|
257
257
|
|
|
258
|
+
<div class="card">
|
|
259
|
+
<h3>Comparing intent-aware workspace security?</h3>
|
|
260
|
+
<p>Ent validates the move from alerting after damage to intervention before a breach. Ent covers broad workforce and endpoint activity; ThumbGate owns the narrower, inspectable AI-agent tool-call boundary.</p>
|
|
261
|
+
<p><a href="/compare/ent" class="cta">Read ThumbGate vs Ent</a></p>
|
|
262
|
+
</div>
|
|
263
|
+
|
|
258
264
|
<div class="card">
|
|
259
265
|
<h3>Already using a supply-chain scanner?</h3>
|
|
260
266
|
<p>HEIDI (Meterian) catches AI assistants suggesting vulnerable npm/pip/maven packages — the supply-chain half of AI coding safety. ThumbGate is the behavior half: it blocks the agent's tool call before it fires a known-bad pattern. Different threat surfaces, both local-first, both free at base. Run both.</p>
|
|
@@ -272,6 +278,7 @@
|
|
|
272
278
|
<ul class="compare-index">
|
|
273
279
|
<li><a href="/compare/sigmashake">ThumbGate vs SigmaShake</a> — learns the rule from your thumbs-down vs a hand-picked ruleset hub</li>
|
|
274
280
|
<li><a href="/compare/claude-code-hooks">ThumbGate vs claude-code-hooks</a> — personal recall, exports, and managed adapters on top of local shell-script hooks</li>
|
|
281
|
+
<li><a href="/compare/ent">ThumbGate vs Ent (ent.ai)</a> — coding-agent PreToolUse gate vs endpoint pre-breach security</li>
|
|
275
282
|
<li><a href="/compare/arcjet">ThumbGate vs Arcjet</a> — agent-outbound gate pairs with an app-inbound firewall</li>
|
|
276
283
|
<li><a href="/compare/bumblebee">ThumbGate vs Bumblebee</a> — runtime enforcement pairs with static inventory</li>
|
|
277
284
|
<li><a href="/compare/anthropic-containment">ThumbGate vs Anthropic's Claude Containment</a> — an IDE-agent extension of Anthropic's published architecture</li>
|
|
@@ -284,6 +291,7 @@
|
|
|
284
291
|
<li><a href="/compare/speclock">ThumbGate vs SpecLock</a> — thumbs-feedback enforcement vs manual specs</li>
|
|
285
292
|
<li><a href="/compare/ai-experience-orchestration">ThumbGate vs AI Experience Orchestration</a> — orchestration vs execution enforcement</li>
|
|
286
293
|
<li><a href="/compare/agentix-labs">ThumbGate vs Agentix Labs</a> — productized enforcement vs custom AI-agent services</li>
|
|
294
|
+
<li><a href="/compare/ent">ThumbGate vs Ent</a> — AI-agent tool-call enforcement vs broad intent-aware workspace security</li>
|
|
287
295
|
<li><a href="/compare/adopt-ai">ThumbGate vs Adopt AI</a> — pre-execution firewall vs evals-first gating for production blast radius</li>
|
|
288
296
|
<li><a href="/compare/arcade">ThumbGate vs Arcade</a> — coding-agent guardrails vs enterprise API auth delegation</li>
|
|
289
297
|
<li><a href="/compare/databricks-unity-ai-gateway">ThumbGate vs Databricks Unity AI Gateway</a> — enterprise gateway vs local pre-action gates</li>
|
|
@@ -310,6 +318,7 @@
|
|
|
310
318
|
</div>
|
|
311
319
|
|
|
312
320
|
<h2>Get Started</h2>
|
|
321
|
+
<p><strong>Availability boundary:</strong> hosted Enterprise capabilities are not generally available. The public paid offer is the $499 one-time managed workflow gate described below.</p>
|
|
313
322
|
<div class="card">
|
|
314
323
|
<p>Install ThumbGate in one command:</p>
|
|
315
324
|
<pre><code>npx thumbgate init</code></pre>
|
|
@@ -334,7 +343,7 @@
|
|
|
334
343
|
|
|
335
344
|
<div class="card">
|
|
336
345
|
<h3>Is ThumbGate free?</h3>
|
|
337
|
-
<p>ThumbGate free includes local
|
|
346
|
+
<p>ThumbGate's free CLI includes bounded local feedback capture, prevention rules, and pre-action blocking. The public managed offer is a $499 one-time implementation: one supported workflow review, one configured gate, a regression test, and written rollout and rollback proof.</p>
|
|
338
347
|
</div>
|
|
339
348
|
|
|
340
349
|
<div class="card">
|
package/public/diagnostic.html
CHANGED
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
-
<title>ThumbGate Workflow
|
|
7
|
-
<meta name="description" content="
|
|
6
|
+
<title>ThumbGate Enterprise Workflow Gate — $499 | Self-Improving Firewall</title>
|
|
7
|
+
<meta name="description" content="Self-improving firewall for AI agents. Managed implementation for one repeated AI-agent workflow failure: one configured local gate, one regression test, and rollout and rollback proof.">
|
|
8
8
|
<link rel="canonical" href="__APP_ORIGIN__/diagnostic">
|
|
9
9
|
<link rel="alternate" type="text/markdown" title="ThumbGate LLM context" href="__APP_ORIGIN__/llm-context.md">
|
|
10
|
-
<meta property="og:title" content="ThumbGate Workflow
|
|
11
|
-
<meta property="og:description" content="Send one repeated AI-agent workflow failure. Get
|
|
10
|
+
<meta property="og:title" content="ThumbGate Enterprise Workflow Gate — $499">
|
|
11
|
+
<meta property="og:description" content="Send one repeated AI-agent workflow failure. Get one configured gate, a regression test, and rollout and rollback proof.">
|
|
12
12
|
<meta property="og:url" content="__APP_ORIGIN__/diagnostic">
|
|
13
13
|
<meta property="og:type" content="website">
|
|
14
14
|
<style>
|
|
@@ -84,6 +84,16 @@ h1 {
|
|
|
84
84
|
font-size: 20px;
|
|
85
85
|
}
|
|
86
86
|
.actions { display: flex; flex-wrap: wrap; gap: 12px; }
|
|
87
|
+
.diagnostic-pay-form {
|
|
88
|
+
width: min(100%, 520px);
|
|
89
|
+
padding: 16px;
|
|
90
|
+
border: 1px solid var(--line);
|
|
91
|
+
border-radius: 8px;
|
|
92
|
+
background: var(--panel);
|
|
93
|
+
}
|
|
94
|
+
.diagnostic-pay-form label { margin-top: 0; }
|
|
95
|
+
.diagnostic-pay-form button { margin-top: 10px; }
|
|
96
|
+
.diagnostic-pay-form .hint { display: block; margin-top: 8px; }
|
|
87
97
|
.button {
|
|
88
98
|
min-height: 48px;
|
|
89
99
|
display: inline-flex;
|
|
@@ -183,13 +193,13 @@ footer { padding: 32px 0 44px; color: var(--muted); }
|
|
|
183
193
|
{
|
|
184
194
|
"@context": "https://schema.org",
|
|
185
195
|
"@type": "Service",
|
|
186
|
-
"name": "ThumbGate Workflow
|
|
196
|
+
"name": "ThumbGate Enterprise Workflow Gate",
|
|
187
197
|
"provider": {
|
|
188
198
|
"@type": "Organization",
|
|
189
199
|
"name": "ThumbGate",
|
|
190
200
|
"url": "__APP_ORIGIN__"
|
|
191
201
|
},
|
|
192
|
-
"description": "A
|
|
202
|
+
"description": "A managed implementation for one repeated AI-agent workflow failure, including one configured local gate, a regression test, and rollout and rollback proof.",
|
|
193
203
|
"offers": {
|
|
194
204
|
"@type": "Offer",
|
|
195
205
|
"price": "__SPRINT_DIAGNOSTIC_PRICE_DOLLARS__",
|
|
@@ -207,7 +217,7 @@ footer { padding: 32px 0 44px; color: var(--muted); }
|
|
|
207
217
|
<span>ThumbGate</span>
|
|
208
218
|
</a>
|
|
209
219
|
<nav aria-label="Primary">
|
|
210
|
-
<a href="/
|
|
220
|
+
<a href="/">Home</a>
|
|
211
221
|
<a href="/pricing">Pricing</a>
|
|
212
222
|
<a href="/llm-context.md">LLM Context</a>
|
|
213
223
|
</nav>
|
|
@@ -215,22 +225,34 @@ footer { padding: 32px 0 44px; color: var(--muted); }
|
|
|
215
225
|
<main>
|
|
216
226
|
<div class="hero">
|
|
217
227
|
<div>
|
|
218
|
-
<div class="eyebrow">Workflow
|
|
228
|
+
<div class="eyebrow">Enterprise Workflow Gate · $499 entry offer</div>
|
|
219
229
|
<h1>Turn one repeated AI-agent failure into a gate you can prove.</h1>
|
|
220
|
-
<p class="lede">Send the workflow that keeps failing. ThumbGate
|
|
230
|
+
<p class="lede">Send the workflow that keeps failing. ThumbGate configures what should allow, warn, or deny before an agent writes, sends, deploys, or spends—and adds the regression proof.</p>
|
|
221
231
|
<div class="actions">
|
|
222
|
-
<
|
|
223
|
-
|
|
232
|
+
<form class="diagnostic-pay-form" action="/go/diagnostic-pay" method="POST" data-diagnostic-pay-form>
|
|
233
|
+
<input type="hidden" name="utm_source" value="diagnostic_page">
|
|
234
|
+
<input type="hidden" name="utm_medium" value="diagnostic_confirmation">
|
|
235
|
+
<input type="hidden" name="utm_campaign" value="workflow_hardening_diagnostic">
|
|
236
|
+
<input type="hidden" name="utm_content" value="hero_paid_diagnostic">
|
|
237
|
+
<input type="hidden" name="cta_id" value="diagnostic_hero_paid">
|
|
238
|
+
<input type="hidden" name="cta_placement" value="hero">
|
|
239
|
+
<input type="hidden" name="plan_id" value="sprint_diagnostic">
|
|
240
|
+
<label for="diagnostic-pay-email">Work email for the receipt</label>
|
|
241
|
+
<input id="diagnostic-pay-email" type="email" name="customer_email" autocomplete="email" required placeholder="you@company.com">
|
|
242
|
+
<button class="button primary" type="submit" data-revenue-cta data-cta-id="diagnostic_hero_paid" data-cta-placement="hero">Buy the $__SPRINT_DIAGNOSTIC_PRICE_DOLLARS__ enterprise gate</button>
|
|
243
|
+
<span class="hint">No Stripe session is created until you submit this form.</span>
|
|
244
|
+
</form>
|
|
245
|
+
<a class="button" href="#intake" data-revenue-cta data-cta-id="diagnostic_hero_intake" data-cta-placement="hero">Check workflow fit first</a>
|
|
224
246
|
</div>
|
|
225
247
|
<div class="proof-strip" aria-label="Diagnostic proof points">
|
|
226
|
-
<div class="proof"><strong>$__SPRINT_DIAGNOSTIC_PRICE_DOLLARS__</strong><span>
|
|
227
|
-
<div class="proof"><strong>One workflow</strong><span>
|
|
228
|
-
<div class="proof"><strong>
|
|
248
|
+
<div class="proof"><strong>$__SPRINT_DIAGNOSTIC_PRICE_DOLLARS__</strong><span>One fixed-price managed implementation.</span></div>
|
|
249
|
+
<div class="proof"><strong>One workflow</strong><span>One configured local gate and regression test.</span></div>
|
|
250
|
+
<div class="proof"><strong>Two business days</strong><span>Rollout and rollback proof after access is available.</span></div>
|
|
229
251
|
</div>
|
|
230
252
|
</div>
|
|
231
253
|
<form id="intake" class="intake-card" action="/v1/intake/workflow-sprint" method="POST" data-team-intake-form data-diagnostic-intake-form>
|
|
232
|
-
<h2>
|
|
233
|
-
<p>Use this
|
|
254
|
+
<h2>Check workflow fit</h2>
|
|
255
|
+
<p>Use this before checkout if you are unsure the repeated action can be reduced to one supported local gate.</p>
|
|
234
256
|
<input type="hidden" name="ctaId" value="diagnostic_page_intake">
|
|
235
257
|
<input type="hidden" name="ctaPlacement" value="diagnostic_page">
|
|
236
258
|
<input type="hidden" name="utmMedium" value="diagnostic_intake">
|
|
@@ -251,10 +273,33 @@ footer { padding: 32px 0 44px; color: var(--muted); }
|
|
|
251
273
|
<option>We are about to roll this workflow out</option>
|
|
252
274
|
<option>We need an independent proof checklist first</option>
|
|
253
275
|
</select>
|
|
254
|
-
<button type="submit" data-revenue-cta data-cta-id="diagnostic_page_submit" data-cta-placement="intake">Submit for
|
|
255
|
-
<p class="hint" data-diagnostic-payment-hint>Ready to pay now? Use the $499
|
|
276
|
+
<button type="submit" data-revenue-cta data-cta-id="diagnostic_page_submit" data-cta-placement="intake">Submit for fit check</button>
|
|
277
|
+
<p class="hint" data-diagnostic-payment-hint>Ready to pay now? Use the $499 managed-gate checkout above. If the workflow is not a supported fit, we refund the order instead of opening a larger consulting scope.</p>
|
|
256
278
|
</form>
|
|
257
279
|
</div>
|
|
280
|
+
<section>
|
|
281
|
+
<h2>Exactly what the $499 Enterprise Workflow Gate includes</h2>
|
|
282
|
+
<p class="lede" style="font-size:17px;">One workflow, one 60-minute working review, one configured local gate and regression test, plus rollout and rollback proof within two business days after access and the agreed workflow materials are available.</p>
|
|
283
|
+
<div class="grid" data-diagnostic-offer-contract>
|
|
284
|
+
<div class="box">
|
|
285
|
+
<h3>You provide</h3>
|
|
286
|
+
<p>A short intake, the accountable workflow owner, and non-secret examples or logs that show the repeated failure. Submit first if fit is unclear; an out-of-scope workflow does not require checkout.</p>
|
|
287
|
+
</div>
|
|
288
|
+
<div class="box">
|
|
289
|
+
<h3>You receive</h3>
|
|
290
|
+
<p>A workflow and failure map, one configured local gate, its regression test, and written rollout, rollback, and verification proof for the agreed workflow.</p>
|
|
291
|
+
</div>
|
|
292
|
+
<div class="box">
|
|
293
|
+
<h3>Boundaries</h3>
|
|
294
|
+
<p>The offer does not include multi-system implementation, legal or compliance certification, guaranteed savings, guaranteed incident prevention, or uncontracted hosted-team features.</p>
|
|
295
|
+
</div>
|
|
296
|
+
</div>
|
|
297
|
+
<div class="intake-card" style="margin-top:16px;" data-diagnostic-fit-terms>
|
|
298
|
+
<h3 style="margin-top:0;">Fit and refund boundary</h3>
|
|
299
|
+
<p>If the repeated failure cannot be reduced to one supported ThumbGate gate, the $__SPRINT_DIAGNOSTIC_PRICE_DOLLARS__ order is refunded instead of being silently converted into a larger service.</p>
|
|
300
|
+
<p class="hint">This is the enterprise entry offer for one workflow. Multi-workflow rollout, ongoing monitoring, shared hosting, compliance work, and hosted Enterprise capabilities are not included or generally available.</p>
|
|
301
|
+
</div>
|
|
302
|
+
</section>
|
|
258
303
|
<section>
|
|
259
304
|
<div class="grid">
|
|
260
305
|
<div class="box">
|
|
@@ -290,31 +335,36 @@ footer { padding: 32px 0 44px; color: var(--muted); }
|
|
|
290
335
|
</section>
|
|
291
336
|
</main>
|
|
292
337
|
<footer>
|
|
293
|
-
ThumbGate is local-first agent governance.
|
|
338
|
+
ThumbGate is local-first agent governance. <a href="/pricing">Buy the managed workflow gate</a> or submit one workflow above for a fit check.
|
|
294
339
|
</footer>
|
|
295
340
|
<script>
|
|
296
341
|
(function () {
|
|
297
342
|
const search = new URLSearchParams(window.location.search);
|
|
298
|
-
const
|
|
343
|
+
const paidForm = document.querySelector('[data-diagnostic-pay-form]');
|
|
299
344
|
const inboundSource = search.get('utm_source') || search.get('source');
|
|
300
345
|
const isAiventyxTraffic = String(inboundSource || '').trim().toLowerCase() === 'aiventyx';
|
|
301
|
-
if (
|
|
302
|
-
|
|
346
|
+
if (paidForm && isAiventyxTraffic) {
|
|
347
|
+
paidForm.remove();
|
|
303
348
|
const paymentHint = document.querySelector('[data-diagnostic-payment-hint]');
|
|
304
349
|
if (paymentHint) {
|
|
305
|
-
paymentHint.textContent = '
|
|
350
|
+
paymentHint.textContent = 'The Aiventyx payment path is paused while seller fees and downstream obligations remain unverified. Submit the workflow here without entering a marketplace payment or revenue-share commitment.';
|
|
306
351
|
}
|
|
307
|
-
} else if (
|
|
308
|
-
const href = new URL(paidCta.getAttribute('href'), window.location.origin);
|
|
352
|
+
} else if (paidForm) {
|
|
309
353
|
const passthrough = /^(utm_(source|medium|campaign|content|term)|source|acquisition_id|visitor_id|session_id|visitor_session_id|install_id|trace_id|creator|community|post_id|comment_id|campaign_variant|offer_code|referrer_host)$/i;
|
|
310
354
|
for (const [key, value] of search.entries()) {
|
|
311
355
|
if (!passthrough.test(key) || !value.trim()) continue;
|
|
312
|
-
|
|
356
|
+
let input = paidForm.querySelector(`input[name="${CSS.escape(key)}"]`);
|
|
357
|
+
if (!input) {
|
|
358
|
+
input = document.createElement('input');
|
|
359
|
+
input.type = 'hidden';
|
|
360
|
+
input.name = key;
|
|
361
|
+
paidForm.appendChild(input);
|
|
362
|
+
}
|
|
363
|
+
input.value = value.trim();
|
|
313
364
|
}
|
|
314
365
|
if (inboundSource && inboundSource.trim()) {
|
|
315
|
-
|
|
366
|
+
paidForm.querySelector('input[name="utm_source"]').value = inboundSource.trim();
|
|
316
367
|
}
|
|
317
|
-
paidCta.setAttribute('href', `${href.pathname}${href.search}${href.hash}`);
|
|
318
368
|
}
|
|
319
369
|
|
|
320
370
|
const form = document.querySelector('[data-diagnostic-intake-form]');
|
|
@@ -334,7 +384,7 @@ footer { padding: 32px 0 44px; color: var(--muted); }
|
|
|
334
384
|
|
|
335
385
|
function telemetry(eventName, props) {
|
|
336
386
|
try {
|
|
337
|
-
navigator.sendBeacon && navigator.sendBeacon('/v1/telemetry/
|
|
387
|
+
navigator.sendBeacon && navigator.sendBeacon('/v1/telemetry/ping', JSON.stringify({
|
|
338
388
|
event: eventName,
|
|
339
389
|
page: '/diagnostic',
|
|
340
390
|
source: 'diagnostic_page',
|
package/public/guide.html
CHANGED
|
@@ -330,7 +330,7 @@ npx thumbgate init --agent gemini</code></pre>
|
|
|
330
330
|
<tr><td>Auto-generates rules</td><td>Yes — from repeated failures</td><td>No</td><td>No</td></tr>
|
|
331
331
|
<tr><td>Agent support</td><td>Claude Code, Codex, Gemini, Amp, Cursor, OpenCode</td><td>Claude Code, Cursor, Windsurf, Cline</td><td>Claude, Cursor</td></tr>
|
|
332
332
|
<tr><td>Install</td><td><code>npx thumbgate init</code></td><td><code>npx speclock setup</code></td><td>Cloud signup</td></tr>
|
|
333
|
-
<tr><td>Cost</td><td>Free (Pro $19/mo or $149/yr,
|
|
333
|
+
<tr><td>Cost</td><td>Free (Pro $19/mo or $149/yr; proposal-only services at $3k/mo, $15k pilot, or $10k/mo after pilot)</td><td>Free</td><td>Free tier + paid</td></tr>
|
|
334
334
|
</table>
|
|
335
335
|
|
|
336
336
|
<h2>Common Scenarios</h2>
|
|
@@ -372,10 +372,10 @@ npx thumbgate init --agent gemini</code></pre>
|
|
|
372
372
|
<pre><code>npx thumbgate init</code></pre>
|
|
373
373
|
<p>One command. Works with Claude Code, Cursor, Codex, Gemini, Amp, and OpenCode. Claude Code can also call Codex for review, adversarial review, and second-pass handoffs through the repo-local bridge plugin.</p>
|
|
374
374
|
<a href="https://thumbgate.ai/checkout/pro?utm_source=guide&utm_medium=cta_button&utm_campaign=pro_pack" class="cta">Get Pro — $19/mo or $149/yr</a>
|
|
375
|
-
<a href="
|
|
376
|
-
<a href="
|
|
375
|
+
<a href="/diagnostic?utm_source=guide&utm_medium=cta_button&utm_campaign=workflow_diagnostic" class="cta cta-secondary">Start $499 diagnostic</a>
|
|
376
|
+
<a href="/go/sprint?utm_source=guide&utm_medium=cta_button&utm_campaign=workflow_sprint" class="cta cta-secondary">Scope $1500 sprint</a>
|
|
377
377
|
<a href="https://thumbgate.ai/#workflow-sprint-intake" class="cta cta-secondary">Send workflow first</a>
|
|
378
|
-
<p style="color:var(--muted); font-size:0.85rem;">Free: 2 captures/day, 10 total captures, 3 active prevention rules, hook blocking. Pro: personal dashboard, recall, search, unlimited captures/rules, managed adapters, DPO export. Enterprise
|
|
378
|
+
<p style="color:var(--muted); font-size:0.85rem;">Free: 2 captures/day, 10 total captures, 3 active prevention rules, hook blocking. Pro: personal local dashboard, recall, search, unlimited captures/rules, managed adapters, DPO export. Enterprise service work is qualified and signed after intake; hosted team sync and a hosted org dashboard are not generally available.</p>
|
|
379
379
|
|
|
380
380
|
</div>
|
|
381
381
|
<script src="/js/buyer-intent.js"></script>
|