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
package/public/install.html
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
6
|
__GOOGLE_SITE_VERIFICATION_META__
|
|
7
7
|
<title>Install ThumbGate | Live agent guardrails for Claude, Cursor, Codex, and VS Code</title>
|
|
8
|
-
<meta name="description" content="Install ThumbGate from npm, VS Code Marketplace, Open VSX, GitHub Release, or MCP Registry. See what is live now, what is pending, and when to buy the Workflow
|
|
8
|
+
<meta name="description" content="Install ThumbGate from npm, VS Code Marketplace, Open VSX, GitHub Release, or MCP Registry. See what is live now, what is pending, and when to buy the Managed AI Agent Workflow Gate.">
|
|
9
9
|
<meta property="og:title" content="Install ThumbGate">
|
|
10
10
|
<meta property="og:description" content="Proof-backed install paths for ThumbGate agent guardrails, plus the paid diagnostic path for one repeated workflow failure.">
|
|
11
11
|
<meta property="og:type" content="website">
|
|
@@ -133,7 +133,7 @@ __GA_BOOTSTRAP__
|
|
|
133
133
|
<div class="container">
|
|
134
134
|
<span class="eyebrow">Install paths verified for v1.27.20</span>
|
|
135
135
|
<h1>Install the agent guardrail before the next repeated mistake costs real money.</h1>
|
|
136
|
-
<p class="lede">ThumbGate is live on the surfaces developers already use: npm, VS Code Marketplace, Open VSX, GitHub Release assets, and MCP Registry. If the risky workflow is already customer-visible, start with the Workflow
|
|
136
|
+
<p class="lede">ThumbGate is live on the surfaces developers already use: npm, VS Code Marketplace, Open VSX, GitHub Release assets, and MCP Registry. If the risky workflow is already customer-visible, start with the Managed AI Agent Workflow Gate instead of another generic install.</p>
|
|
137
137
|
<div class="actions">
|
|
138
138
|
<a class="btn-primary" href="#install">Install now</a>
|
|
139
139
|
<a class="btn-secondary" href="/diagnostic?utm_source=install_page&utm_medium=owned_page&utm_campaign=marketplace_distribution">Harden one workflow</a>
|
|
@@ -180,7 +180,7 @@ npx -y thumbgate@1.27.20 doctor --fix</code></pre></article>
|
|
|
180
180
|
<div class="container">
|
|
181
181
|
<div class="cta-band">
|
|
182
182
|
<h2>When install is not enough, buy the diagnostic.</h2>
|
|
183
|
-
<p>If one AI-agent workflow already touches customers, money, production, outbound messages, browser automation, or deploy approvals, a generic install is not enough. The Workflow
|
|
183
|
+
<p>If one AI-agent workflow already touches customers, money, production, outbound messages, browser automation, or deploy approvals, a generic install is not enough. The Managed AI Agent Workflow Gate turns the repeated failure into one configured local gate, a regression test, and rollout and rollback proof.</p>
|
|
184
184
|
<div class="actions">
|
|
185
185
|
<a class="btn-primary" href="/diagnostic?utm_source=install_page&utm_medium=owned_page&utm_campaign=workflow_hardening_diagnostic">Start the $499 diagnostic</a>
|
|
186
186
|
<a class="btn-secondary" href="/guide">Read the setup guide</a>
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
(function(global) {
|
|
2
2
|
var BUYER_EMAIL_STORAGE_KEY = 'thumbgateBuyerEmail';
|
|
3
|
+
var REVENUE_ASSIST_CHECKOUT_KEY = 'thumbgateRevenueAssistCheckoutSeen';
|
|
3
4
|
var CHECKOUT_LINK_SELECTOR = 'a[href*="/checkout/pro"], a[href*="/go/pro"]';
|
|
4
5
|
var BUYER_EMAIL_SELECTOR = '[data-buyer-email]';
|
|
5
6
|
|
|
@@ -232,7 +233,6 @@
|
|
|
232
233
|
var placement = settings.placement || normalizePlacement(pathname);
|
|
233
234
|
var campaign = settings.campaign || 'high_traffic_pages';
|
|
234
235
|
var proHref = appendCampaignParams(settings.proHref || '/checkout/pro', {
|
|
235
|
-
confirm: '1',
|
|
236
236
|
utm_source: 'owned_site',
|
|
237
237
|
utm_medium: 'sticky_cta',
|
|
238
238
|
utm_campaign: campaign,
|
|
@@ -264,9 +264,9 @@
|
|
|
264
264
|
|
|
265
265
|
panel.querySelectorAll('[data-assist-cta]').forEach(function(link) {
|
|
266
266
|
link.addEventListener('click', function() {
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
}
|
|
267
|
+
if (link.getAttribute('data-assist-cta') === 'assist_pro_checkout') {
|
|
268
|
+
markCheckoutSeen();
|
|
269
|
+
}
|
|
270
270
|
trackEvent('assist_cta_click', {
|
|
271
271
|
ctaId: link.getAttribute('data-assist-cta'),
|
|
272
272
|
ctaPlacement: placement,
|
|
@@ -283,7 +283,6 @@
|
|
|
283
283
|
page: pathname,
|
|
284
284
|
});
|
|
285
285
|
panel.remove();
|
|
286
|
-
showAbandonSurvey('cta_dismiss');
|
|
287
286
|
});
|
|
288
287
|
}
|
|
289
288
|
|
|
@@ -309,22 +308,33 @@
|
|
|
309
308
|
|
|
310
309
|
function checkoutWasSeen() {
|
|
311
310
|
try {
|
|
312
|
-
return global.sessionStorage.getItem(
|
|
311
|
+
return global.sessionStorage.getItem(REVENUE_ASSIST_CHECKOUT_KEY) === '1';
|
|
313
312
|
} catch (_error) {
|
|
314
313
|
return false;
|
|
315
314
|
}
|
|
316
315
|
}
|
|
317
316
|
|
|
317
|
+
function markCheckoutSeen() {
|
|
318
|
+
try {
|
|
319
|
+
global.sessionStorage.setItem(REVENUE_ASSIST_CHECKOUT_KEY, '1');
|
|
320
|
+
} catch (_error) {}
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
getCheckoutLinks().forEach(function(link) {
|
|
324
|
+
link.addEventListener('click', markCheckoutSeen);
|
|
325
|
+
});
|
|
326
|
+
|
|
318
327
|
function showAbandonSurvey(trigger) {
|
|
319
|
-
if (wasSurveyShown() || checkoutWasSeen() || global.document.querySelector('[data-thumbgate-abandon-survey]')) {
|
|
328
|
+
if (wasSurveyShown() || !checkoutWasSeen() || global.document.querySelector('[data-thumbgate-abandon-survey]')) {
|
|
320
329
|
return;
|
|
321
330
|
}
|
|
322
331
|
markSurveyShown();
|
|
332
|
+
panel.remove();
|
|
323
333
|
var survey = global.document.createElement('aside');
|
|
324
334
|
survey.setAttribute('data-thumbgate-abandon-survey', trigger || 'unknown');
|
|
325
335
|
survey.setAttribute('aria-label', 'ThumbGate checkout feedback');
|
|
326
336
|
survey.innerHTML = [
|
|
327
|
-
'<strong>What stopped you from
|
|
337
|
+
'<strong>What stopped you from completing checkout?</strong>',
|
|
328
338
|
'<div>',
|
|
329
339
|
'<button type="button" data-abandon-reason="fit_unclear">Not sure it fits my agent stack</button>',
|
|
330
340
|
'<button type="button" data-abandon-reason="need_proof">Need proof before paying</button>',
|
|
@@ -351,17 +361,22 @@
|
|
|
351
361
|
});
|
|
352
362
|
}
|
|
353
363
|
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
364
|
+
var checkoutReturnTimer = null;
|
|
365
|
+
|
|
366
|
+
function scheduleCheckoutReturnSurvey() {
|
|
367
|
+
if (!checkoutWasSeen() || !global.setTimeout) return;
|
|
368
|
+
if (checkoutReturnTimer && global.clearTimeout) {
|
|
369
|
+
global.clearTimeout(checkoutReturnTimer);
|
|
370
|
+
}
|
|
371
|
+
checkoutReturnTimer = global.setTimeout(function() {
|
|
372
|
+
checkoutReturnTimer = null;
|
|
373
|
+
showAbandonSurvey('checkout_return');
|
|
374
|
+
}, settings.checkoutReturnSurveyDelayMs || 1200);
|
|
358
375
|
}
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
}
|
|
364
|
-
});
|
|
376
|
+
|
|
377
|
+
scheduleCheckoutReturnSurvey();
|
|
378
|
+
if (global.addEventListener) {
|
|
379
|
+
global.addEventListener('pageshow', scheduleCheckoutReturnSurvey);
|
|
365
380
|
}
|
|
366
381
|
|
|
367
382
|
return {
|
package/public/numbers.html
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"alternateName": "thumbgate",
|
|
26
26
|
"applicationCategory": "DeveloperApplication",
|
|
27
27
|
"operatingSystem": "Cross-platform, Node.js >=18.18.0",
|
|
28
|
-
"softwareVersion": "1.
|
|
28
|
+
"softwareVersion": "1.29.2",
|
|
29
29
|
"url": "https://thumbgate.ai/numbers",
|
|
30
30
|
"dateModified": "2026-05-07",
|
|
31
31
|
"creator": {
|
|
@@ -202,7 +202,7 @@
|
|
|
202
202
|
<main class="container">
|
|
203
203
|
<h1>The Numbers</h1>
|
|
204
204
|
<p class="subtitle">Generated first-party operational snapshot from the ThumbGate runtime. This is not customer traction, install volume, revenue, or proof that a configured gate has fired.</p>
|
|
205
|
-
<div class="freshness">Updated: 2026-05-07 · Version 1.
|
|
205
|
+
<div class="freshness">Updated: 2026-05-07 · Version 1.29.2</div>
|
|
206
206
|
<div class="truth-note"><strong>Read this first:</strong> configured checks are inventory. Recorded blocks and warnings are usage evidence. This snapshot currently reports 0 recorded hard-block event(s) and 0 recorded warning event(s).</div>
|
|
207
207
|
|
|
208
208
|
<h2>Gate enforcement</h2>
|