thumbgate 1.27.8 → 1.27.9
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-plugin/plugin.json +1 -1
- package/.well-known/llms.txt +1 -2
- package/.well-known/mcp/server-card.json +1 -1
- package/README.md +0 -2
- package/adapters/claude/.mcp.json +2 -2
- package/adapters/mcp/server-stdio.js +1 -1
- package/adapters/opencode/opencode.json +1 -1
- package/bin/cli.js +259 -78
- package/package.json +12 -19
- package/public/blog.html +30 -0
- package/public/compare/adopt-ai.html +219 -0
- package/public/compare/agentix-labs.html +197 -0
- package/public/compare/ai-experience-orchestration.html +216 -0
- package/public/compare/anthropic-claude-for-legal.html +260 -0
- package/public/compare/anthropic-containment.html +280 -0
- package/public/compare/arcade.html +175 -0
- package/public/compare/arcjet.html +239 -0
- package/public/compare/bumblebee.html +307 -0
- package/public/compare/claude-code-hooks.html +294 -0
- package/public/compare/databricks-unity-ai-gateway.html +215 -0
- package/public/compare/fallow.html +351 -0
- package/public/compare/heidi.html +233 -0
- package/public/compare/mem0.html +342 -0
- package/public/compare/oak-and-sparrow-gatekeeper.html +289 -0
- package/public/compare/rein.html +236 -0
- package/public/compare/sigmashake.html +256 -0
- package/public/compare/speclock.html +342 -0
- package/public/compare.html +2 -0
- package/public/guides/agent-harness-optimization.html +342 -0
- package/public/guides/agentic-web-governance.html +406 -0
- package/public/guides/ai-agent-governance-sprint.html +415 -0
- package/public/guides/ai-agent-pre-action-approval-gates.html +401 -0
- package/public/guides/ai-agent-workflow-migration-checklist.html +392 -0
- package/public/guides/ai-deployment-readiness.html +415 -0
- package/public/guides/ai-mode-ads-agent-governance.html +401 -0
- package/public/guides/ai-search-topical-presence.html +342 -0
- package/public/guides/autoresearch-agent-safety.html +342 -0
- package/public/guides/background-agent-governance.html +358 -0
- package/public/guides/best-tools-stop-ai-agents-breaking-production.html +363 -0
- package/public/guides/browser-automation-safety.html +342 -0
- package/public/guides/chatgpt-ads-trust.html +353 -0
- package/public/guides/claude-code-feedback.html +339 -0
- package/public/guides/claude-code-prevent-repeated-mistakes.html +161 -0
- package/public/guides/claude-code-skills-guardrails.html +343 -0
- package/public/guides/claude-desktop.html +356 -0
- package/public/guides/code-knowledge-graph-guardrails.html +365 -0
- package/public/guides/codex-cli-guardrails.html +339 -0
- package/public/guides/cursor-agent-guardrails.html +339 -0
- package/public/guides/cursor-prevent-repeated-mistakes.html +161 -0
- package/public/guides/database-agent-safety.html +406 -0
- package/public/guides/deepseek-v4-runtime-guardrails.html +346 -0
- package/public/guides/developer-machine-supply-chain-guardrails.html +358 -0
- package/public/guides/gcp-mcp-guardrails.html +147 -0
- package/public/guides/gemini-cli-feedback-memory.html +339 -0
- package/public/guides/gpt-5-5-model-evaluation.html +358 -0
- package/public/guides/internal-ai-engineering-stack-guardrails.html +348 -0
- package/public/guides/long-running-agent-context-management.html +346 -0
- package/public/guides/mcp-tool-governance.html +401 -0
- package/public/guides/multica-thumbgate-setup.html +134 -0
- package/public/guides/native-messaging-host-security.html +342 -0
- package/public/guides/policy-engine-pre-action-gates.html +346 -0
- package/public/guides/pre-action-checks.html +342 -0
- package/public/guides/pretooluse-hooks-vs-advisory-prompt-rules.html +342 -0
- package/public/guides/prompt-tricks-to-workflow-rules.html +365 -0
- package/public/guides/proxy-pointer-rag-guardrails.html +352 -0
- package/public/guides/rag-precision-tuning-guardrails.html +352 -0
- package/public/guides/reasoning-compression-guardrails.html +346 -0
- package/public/guides/relational-knowledge-ai-recommendations.html +342 -0
- package/public/guides/roo-code-alternative-cline.html +339 -0
- package/public/guides/semantic-programmatic-seo-guardrails.html +352 -0
- package/public/guides/seo-agent-skills-guardrails.html +344 -0
- package/public/guides/stop-repeated-ai-agent-mistakes.html +342 -0
- package/public/index.html +12 -50
- package/public/learn/ac-dc-runtime-enforcement.html +277 -0
- package/public/learn/agent-harness-pattern.html +181 -0
- package/public/learn/agent-swarms-shared-gates.html +173 -0
- package/public/learn/agentic-enterprise-context-brain.html +117 -0
- package/public/learn/agentic-os-team-governance.html +146 -0
- package/public/learn/ai-agent-governance.html +158 -0
- package/public/learn/ai-agent-persistent-memory.html +211 -0
- package/public/learn/background-agent-control-layer.html +184 -0
- package/public/learn/claude-code-goal-with-rubrics.html +205 -0
- package/public/learn/codex-role-plugins-need-governance.html +125 -0
- package/public/learn/cost-aware-agent-gate-routing.html +173 -0
- package/public/learn/databricks-unity-ai-gateway-runtime-governance.html +157 -0
- package/public/learn/deterministic-agent-workflows.html +185 -0
- package/public/learn/feedback-loop-vs-decision-layer.html +283 -0
- package/public/learn/from-prototype-to-production.html +223 -0
- package/public/learn/learn.css +51 -0
- package/public/learn/mcp-pre-action-checks-explained.html +172 -0
- package/public/learn/pretix-stripe-connect-marketplaces.html +161 -0
- package/public/learn/regulated-agent-execution-boundary.html +196 -0
- package/public/learn/spec-driven-development.html +168 -0
- package/public/learn/stop-ai-agent-force-push.html +134 -0
- package/public/learn/vibe-coding-safety-net.html +142 -0
- package/public/learn.html +6 -50
- package/public/numbers.html +2 -2
- package/public/pro.html +6 -6
- package/scripts/cli-schema.js +10 -22
- package/scripts/dashboard-chat.js +1 -2
- package/scripts/document-intake.js +49 -1
- package/scripts/gemini-embedding-policy.js +1 -2
- package/scripts/hosted-config.js +12 -0
- package/scripts/plausible-domain-config.js +1 -3
- package/scripts/reddit-browser-notification-watch.js +230 -0
- package/scripts/seo-gsd.js +0 -239
- package/scripts/vector-store.js +0 -44
- package/scripts/workspace-evolver.js +2 -62
- package/src/api/server.js +124 -335
- package/adapters/policy-engine/ethicore-guardian-client.js +0 -68
- package/adapters/policy-engine/thumbgate-policy-engine-adapter.js +0 -260
- package/scripts/hook-stop-anti-claim.js +0 -227
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "thumbgate",
|
|
3
|
-
"version": "1.27.
|
|
3
|
+
"version": "1.27.9",
|
|
4
4
|
"description": "ThumbGate self-improving agent governance: thumbs-up/down turns every mistake into a prevention rule and blocks repeat patterns. 36 pre-action checks, budget enforcement, and self-protection for Claude Code, Cursor, Codex, Gemini CLI, and Amp.",
|
|
5
5
|
"homepage": "https://thumbgate.ai",
|
|
6
6
|
"repository": {
|
|
@@ -106,7 +106,6 @@
|
|
|
106
106
|
"scripts/harness-selector.js",
|
|
107
107
|
"scripts/hf-papers.js",
|
|
108
108
|
"scripts/hook-runtime.js",
|
|
109
|
-
"scripts/hook-stop-anti-claim.js",
|
|
110
109
|
"scripts/hook-thumbgate-cache-updater.js",
|
|
111
110
|
"scripts/hosted-config.js",
|
|
112
111
|
"scripts/hybrid-feedback-context.js",
|
|
@@ -171,6 +170,7 @@
|
|
|
171
170
|
"scripts/rag-precision-guardrails.js",
|
|
172
171
|
"scripts/rate-limiter.js",
|
|
173
172
|
"scripts/reasoning-efficiency-guardrails.js",
|
|
173
|
+
"scripts/reddit-browser-notification-watch.js",
|
|
174
174
|
"scripts/repeat-metric.js",
|
|
175
175
|
"scripts/reward-hacking-guardrails.js",
|
|
176
176
|
"scripts/risk-scorer.js",
|
|
@@ -244,9 +244,6 @@
|
|
|
244
244
|
"adapters/letta/README.md",
|
|
245
245
|
"adapters/letta/thumbgate-letta-adapter.js",
|
|
246
246
|
"adapters/gcp/dfcx-webhook-gate.js",
|
|
247
|
-
"adapters/policy-engine/README.md",
|
|
248
|
-
"adapters/policy-engine/ethicore-guardian-client.js",
|
|
249
|
-
"adapters/policy-engine/thumbgate-policy-engine-adapter.js",
|
|
250
247
|
"adapters/mcp/server-stdio.js",
|
|
251
248
|
"adapters/opencode/opencode.json",
|
|
252
249
|
"bench/programbench-smoke.json",
|
|
@@ -267,11 +264,14 @@
|
|
|
267
264
|
"public/chatgpt-app.html",
|
|
268
265
|
"public/codex-plugin.html",
|
|
269
266
|
"public/compare.html",
|
|
267
|
+
"public/compare/",
|
|
270
268
|
"public/dashboard.html",
|
|
271
269
|
"public/federal.html",
|
|
272
270
|
"public/guide.html",
|
|
271
|
+
"public/guides/",
|
|
273
272
|
"public/index.html",
|
|
274
273
|
"public/learn.html",
|
|
274
|
+
"public/learn/",
|
|
275
275
|
"public/lessons.html",
|
|
276
276
|
"public/numbers.html",
|
|
277
277
|
"public/pricing.html",
|
|
@@ -366,6 +366,8 @@
|
|
|
366
366
|
"trace:eval": "node scripts/decision-trace.js eval",
|
|
367
367
|
"social:reply-monitor": "node scripts/social-reply-monitor.js",
|
|
368
368
|
"social:reply-monitor:dry": "node scripts/social-reply-monitor.js --dry-run",
|
|
369
|
+
"social:reply-monitor:reddit-browser": "node scripts/reddit-browser-notification-watch.js",
|
|
370
|
+
"social:reply-monitor:reddit-browser:dry": "node scripts/reddit-browser-notification-watch.js --dry-run",
|
|
369
371
|
"social:reply-monitor:install-reddit": "node scripts/reddit-monitor-launchd.js install",
|
|
370
372
|
"social:reply-monitor:bluesky": "node scripts/social-reply-monitor-bluesky.js",
|
|
371
373
|
"social:reply-monitor:bluesky:dry": "node scripts/social-reply-monitor-bluesky.js --dry-run",
|
|
@@ -374,10 +376,9 @@
|
|
|
374
376
|
"social:prospect:bluesky": "node scripts/social-bluesky-prospecting.js",
|
|
375
377
|
"social:prospect:bluesky:dry": "node scripts/social-bluesky-prospecting.js --dry-run",
|
|
376
378
|
"social:reply-publish:bluesky:dry": "node scripts/social-reply-monitor-bluesky.js --publish-approved --dry-run",
|
|
377
|
-
"test": "npm run test:python && npm run test:schema && npm run test:loop && npm run test:dpo && npm run test:kto && npm run test:api && npm run test:proof && npm run test:e2e && npm run test:rlaif && npm run test:attribution && npm run test:quality && npm run test:intelligence && npm run test:training-export && npm run test:deployment && npm run test:operational-integrity && npm run test:workflow && npm run test:billing && npm run test:cli && npm run test:watcher && npm run test:autoresearch && npm run test:ops && npm run test:session-analyzer && npm run test:tessl && npm run test:gates && npm run test:evoskill && npm run test:gates-hardening && npm run test:workers && npm run test:social-analytics && npm run test:memalign && npm run test:xmemory-lite && npm run test:filesystem-search && npm run test:zernio && npm run test:platform-limits && npm run test:post-video && npm run test:post-everywhere-instagram && npm run test:post-everywhere-channels && npm run test:post-everywhere-zernio-default && npm run test:zernio-canonical-pollers && npm run test:zernio-status && npm run test:obsidian-export && npm run test:lesson-db && npm run test:lesson-rotation && npm run test:memory-dedup && npm run test:feedback-quality && npm run test:sync-version && npm run test:check-congruence && npm run test:tool-registry && npm run test:repeat-metric && npm run test:noop-detect && npm run test:action-receipts && npm run test:feedback-to-rules && npm run test:memory-firewall && npm run test:memory-scope-readiness && npm run test:belief-update && npm run test:hosted-config && npm run test:operational-summary && npm run test:operational-dashboard && npm run test:operator-artifacts && npm run test:operator-key-auth && npm run test:cloudflare-sandbox && npm run test:mcp-config && npm run test:mcp-tool-annotations && npm run test:mcp-oauth && npm run test:mcp-oauth-flow && npm run test:plan-gate && npm run test:ai-component-inventory && npm run test:pulse && npm run test:semantic-layer && npm run test:data-pipeline && npm run test:optimize-context && npm run test:principle-extractor && npm run test:analytics-window && npm run test:funnel-analytics && npm run test:experiment-tracker && npm run test:build-metadata && npm run test:context-engine && npm run test:hf-papers && npm run test:marketing-experiment && npm run test:seo-gsd && npm run test:verify-run && npm run test:export-dpo-pairs && npm run test:export-hf-dataset && npm run test:license && npm run test:bot-detector && npm run test:audit-pr-bot-contamination && npm run test:stripe-bootstrap-saas-catalog && npm run test:postinstall && npm run test:funnel-invariants && npm run test:cli-telemetry && npm run test:pro-parity && npm run test:model-tier-router && npm run test:computer-use-firewall && npm run test:skill-exporter && npm run test:statusline && npm run test:statusline-cache-aggregate && npm run test:public-repo-hygiene && npm run test:no-internal-orchestration-leaks && npm run test:evolution && npm run test:org-dashboard && npm run test:multi-hop-recall && npm run test:synthetic-dpo && npm run test:thumbgate-skill && npm run test:learn-hub && npm run test:feedback-fallback && npm run test:metaclaw && npm run test:server-lock && npm run test:control-tower && npm run test:pii-scanner && npm run test:data-governance && npm run test:lesson-inference && npm run test:semantic-dedup && npm run test:fs-utils && npm run test:cli-schema && npm run test:explore && npm run test:lesson-reranker && npm run test:lesson-retrieval && npm run test:lesson-semantic-retrieval && npm run test:cross-encoder && npm run test:reflector-agent && npm run test:feedback-session && npm run test:feedback-history-distiller && npm run test:hallucination-detector && npm run test:history-distiller && npm run test:predictive-insights && npm run test:predictive-credible-range && npm run test:prove-predictive-insights && npm run test:statusbar-cli && npm run test:generate-instagram-card && npm run test:instagram-thumbgate-post && npm run test:publish-instagram-thumbgate && npm run test:lesson-synthesis && npm run test:lesson-canonical && npm run test:background-governance && npm run test:memory-migration && npm run test:prompt-dlp && npm run test:ephemeral-store && npm run test:agent-security && npm run test:skill-progressive && npm run test:per-step-scoring && npm run test:weekly-auto-post && npm run test:social-post-hourly && npm run test:social-quality-gate && npm run test:a2ui-engine && npm run test:gate-satisfy && npm run test:money-watcher && npm run test:budget && npm run test:quick-start && npm run test:utm && npm run test:product-feedback && npm run test:feedback-root-consolidator && npm run test:engagement-audit && npm run test:install-growth-automation && npm run test:publish-thumbgate-launch && npm run test:reconcile-thumbgate-campaign && npm run test:reddit-publisher && npm run test:schedule-thumbgate-campaign && npm run test:social-reply-monitor && npm run test:social-dedupe-cleanup && npm run test:sync-launch-assets && npm run test:ai-search-visibility && npm run test:perplexity && npm run test:security-scanner && npm run test:llm-client && npm run test:managed-lesson-agent && npm run test:self-distill && npm run test:meta-agent && npm run test:harness-selector && npm run test:thumbgate-bench && npm run test:seo-guides && npm run test:enforcement-loop && npm run test:cli-agent-experience && npm run test:bot-detection && npm run test:checkout-archived-product-guard && npm run test:postgres-guard && npm run test:checkout-bot-guard && npm run test:checkout-pro-confirmation-gate && npm run test:pricing-page-telemetry && npm run test:session-health && npm run test:session-episodes && npm run test:spec-gate && npm run test:decision-trace && npm run test:dashboard-insights && npm run test:telemetry-tracked-link-slug && npm run test:prompt-eval && npm run test:gate-coherence && npm run test:gate-eval && npm run test:high-roi && npm run test:public-static-assets && npm run test:token-savings && npm run test:numbers-page && npm run test:workflow-gate-checkpoint && npm run test:lesson-export-import && npm run test:landing-page-claims && npm run test:competitive-positioning-marketing && npm run test:medium-weekly && npm run test:dashboard-deeplink-e2e && npm run test:public-package-parity && npm run test:token-savings-dashboard && npm run test:cursor-wiring && npm run test:pretooluse-injection && npm run test:recent-corrective-context && npm run test:durability-step && npm run test:mailer && npm run test:brand-assets && npm run test:enforcement-teeth && npm run test:bayes-optimal-gate && npm run test:swarm-coordinator && npm run test:session-report && npm run test:agent-reasoning-traces && npm run test:judge-reward && npm run test:llm-behavior-monitor && npm run test:prompting-os && npm run test:single-use-credential-gate && npm run test:structured-prompt-driven && npm run test:require-evidence-gate && npm run test:rule-validator && npm run test:bluesky-atproto && npm run test:social-reply-monitor-bluesky && npm run test:bluesky-delete-replies && npm run test:architect-kit-memory-bridge && npm run test:sonar-review-hotspots && npm run test:actionable-remediations && npm run test:gemini-embedding-policy && npm run test:agent-design-governance && npm run test:public-core-boundary && npm run test:hook-stop-verify-deploy && npm run test:hook-stop-anti-claim && npm run test:plausible-server-events && npm run test:activation-tracker && npm run test:activation-onboarding && npm run test:unified-revenue-rollup && npm run test:conversion-rate-stats && npm run test:external-customer-audit && npm run test:telemetry-export && npm run test:stripe-checkout-diagnostic && npm run test:stripe-business-identity-probe && npm run test:revenue-observability-doctor && npm run test:public-bundle-ratchet && npm run test:stripe-payment-link-update && npm run test:ci-cd-hygiene-audit && npm run test:verify-marketing-pages-deployed && npm run test:install-email-capture && npm run test:install-shim && npm run test:hook-runtime-subcommands && npm run test:implementation-notes && npm run test:daily-block-cap && npm run test:free-to-paid-conversion-units && npm run test:metrics-real-endpoint && npm run test:cli-trial-and-help && npm run test:cost-cli && npm run test:silent-failure-cluster && npm run test:proof:truth && node --test tests/adaptive-reliability.test.js && npm run test:mcp-oauth-reviewer && npm run test:dfcx-gate && npm run test:dfcx-gate-server && npm run test:vertex-scorer && npm run test:dashboard-chat && npm run test:gitar-integration && npm run test:secret-redaction && npm run test:discoverable-skills && npm run test:discoverable-skill-skills && npm run test:sync-telemetry && npm run test:leak-scanner && npm run test:team-sync && npm run test:eval-rag && npm run test:async-eval-observability && npm run test:letta-adapter && npm run test:
|
|
379
|
+
"test": "npm run test:brain && npm run test:python && npm run test:schema && npm run test:loop && npm run test:dpo && npm run test:kto && npm run test:api && npm run test:proof && npm run test:e2e && npm run test:rlaif && npm run test:attribution && npm run test:quality && npm run test:intelligence && npm run test:training-export && npm run test:deployment && npm run test:operational-integrity && npm run test:workflow && npm run test:billing && npm run test:cli && npm run test:watcher && npm run test:autoresearch && npm run test:ops && npm run test:session-analyzer && npm run test:tessl && npm run test:gates && npm run test:evoskill && npm run test:gates-hardening && npm run test:workers && npm run test:social-analytics && npm run test:memalign && npm run test:xmemory-lite && npm run test:filesystem-search && npm run test:zernio && npm run test:platform-limits && npm run test:post-video && npm run test:post-everywhere-instagram && npm run test:post-everywhere-channels && npm run test:post-everywhere-zernio-default && npm run test:zernio-canonical-pollers && npm run test:zernio-status && npm run test:obsidian-export && npm run test:lesson-db && npm run test:lesson-rotation && npm run test:memory-dedup && npm run test:feedback-quality && npm run test:sync-version && npm run test:check-congruence && npm run test:tool-registry && npm run test:repeat-metric && npm run test:noop-detect && npm run test:action-receipts && npm run test:feedback-to-rules && npm run test:memory-firewall && npm run test:memory-scope-readiness && npm run test:belief-update && npm run test:hosted-config && npm run test:operational-summary && npm run test:operational-dashboard && npm run test:operator-artifacts && npm run test:operator-key-auth && npm run test:cloudflare-sandbox && npm run test:mcp-config && npm run test:mcp-tool-annotations && npm run test:mcp-oauth && npm run test:mcp-oauth-flow && npm run test:plan-gate && npm run test:ai-component-inventory && npm run test:pulse && npm run test:semantic-layer && npm run test:data-pipeline && npm run test:optimize-context && npm run test:principle-extractor && npm run test:analytics-window && npm run test:funnel-analytics && npm run test:experiment-tracker && npm run test:build-metadata && npm run test:context-engine && npm run test:hf-papers && npm run test:marketing-experiment && npm run test:seo-gsd && npm run test:verify-run && npm run test:export-dpo-pairs && npm run test:export-hf-dataset && npm run test:license && npm run test:bot-detector && npm run test:audit-pr-bot-contamination && npm run test:stripe-bootstrap-saas-catalog && npm run test:postinstall && npm run test:funnel-invariants && npm run test:cli-telemetry && npm run test:pro-parity && npm run test:model-tier-router && npm run test:computer-use-firewall && npm run test:skill-exporter && npm run test:statusline && npm run test:statusline-cache-aggregate && npm run test:public-repo-hygiene && npm run test:no-internal-orchestration-leaks && npm run test:evolution && npm run test:org-dashboard && npm run test:multi-hop-recall && npm run test:synthetic-dpo && npm run test:thumbgate-skill && npm run test:learn-hub && npm run test:feedback-fallback && npm run test:metaclaw && npm run test:server-lock && npm run test:control-tower && npm run test:pii-scanner && npm run test:data-governance && npm run test:lesson-inference && npm run test:semantic-dedup && npm run test:fs-utils && npm run test:cli-schema && npm run test:explore && npm run test:lesson-reranker && npm run test:lesson-retrieval && npm run test:lesson-semantic-retrieval && npm run test:cross-encoder && npm run test:reflector-agent && npm run test:feedback-session && npm run test:feedback-history-distiller && npm run test:hallucination-detector && npm run test:history-distiller && npm run test:predictive-insights && npm run test:predictive-credible-range && npm run test:prove-predictive-insights && npm run test:statusbar-cli && npm run test:generate-instagram-card && npm run test:instagram-thumbgate-post && npm run test:publish-instagram-thumbgate && npm run test:lesson-synthesis && npm run test:lesson-canonical && npm run test:background-governance && npm run test:memory-migration && npm run test:prompt-dlp && npm run test:ephemeral-store && npm run test:agent-security && npm run test:skill-progressive && npm run test:per-step-scoring && npm run test:weekly-auto-post && npm run test:social-post-hourly && npm run test:social-quality-gate && npm run test:a2ui-engine && npm run test:gate-satisfy && npm run test:money-watcher && npm run test:budget && npm run test:quick-start && npm run test:utm && npm run test:product-feedback && npm run test:feedback-root-consolidator && npm run test:engagement-audit && npm run test:install-growth-automation && npm run test:publish-thumbgate-launch && npm run test:reconcile-thumbgate-campaign && npm run test:reddit-publisher && npm run test:schedule-thumbgate-campaign && npm run test:social-reply-monitor && npm run test:social-dedupe-cleanup && npm run test:sync-launch-assets && npm run test:ai-search-visibility && npm run test:perplexity && npm run test:security-scanner && npm run test:llm-client && npm run test:managed-lesson-agent && npm run test:self-distill && npm run test:meta-agent && npm run test:harness-selector && npm run test:thumbgate-bench && npm run test:seo-guides && npm run test:enforcement-loop && npm run test:cli-agent-experience && npm run test:bot-detection && npm run test:checkout-archived-product-guard && npm run test:postgres-guard && npm run test:checkout-bot-guard && npm run test:checkout-pro-confirmation-gate && npm run test:pricing-page-telemetry && npm run test:session-health && npm run test:session-episodes && npm run test:spec-gate && npm run test:decision-trace && npm run test:dashboard-insights && npm run test:telemetry-tracked-link-slug && npm run test:prompt-eval && npm run test:gate-coherence && npm run test:gate-eval && npm run test:high-roi && npm run test:public-static-assets && npm run test:token-savings && npm run test:numbers-page && npm run test:workflow-gate-checkpoint && npm run test:lesson-export-import && npm run test:landing-page-claims && npm run test:competitive-positioning-marketing && npm run test:medium-weekly && npm run test:dashboard-deeplink-e2e && npm run test:public-package-parity && npm run test:token-savings-dashboard && npm run test:cursor-wiring && npm run test:pretooluse-injection && npm run test:recent-corrective-context && npm run test:durability-step && npm run test:mailer && npm run test:brand-assets && npm run test:enforcement-teeth && npm run test:bayes-optimal-gate && npm run test:swarm-coordinator && npm run test:session-report && npm run test:agent-reasoning-traces && npm run test:judge-reward && npm run test:llm-behavior-monitor && npm run test:prompting-os && npm run test:single-use-credential-gate && npm run test:structured-prompt-driven && npm run test:require-evidence-gate && npm run test:rule-validator && npm run test:bluesky-atproto && npm run test:social-reply-monitor-bluesky && npm run test:bluesky-delete-replies && npm run test:architect-kit-memory-bridge && npm run test:sonar-review-hotspots && npm run test:actionable-remediations && npm run test:gemini-embedding-policy && npm run test:agent-design-governance && npm run test:public-core-boundary && npm run test:hook-stop-verify-deploy && npm run test:hook-stop-anti-claim && npm run test:plausible-server-events && npm run test:activation-tracker && npm run test:activation-onboarding && npm run test:unified-revenue-rollup && npm run test:conversion-rate-stats && npm run test:external-customer-audit && npm run test:telemetry-export && npm run test:stripe-checkout-diagnostic && npm run test:stripe-business-identity-probe && npm run test:revenue-observability-doctor && npm run test:public-bundle-ratchet && npm run test:stripe-payment-link-update && npm run test:ci-cd-hygiene-audit && npm run test:verify-marketing-pages-deployed && npm run test:install-email-capture && npm run test:install-shim && npm run test:hook-runtime-subcommands && npm run test:implementation-notes && npm run test:daily-block-cap && npm run test:free-to-paid-conversion-units && npm run test:metrics-real-endpoint && npm run test:cli-trial-and-help && npm run test:cost-cli && npm run test:silent-failure-cluster && npm run test:proof:truth && node --test tests/adaptive-reliability.test.js && npm run test:mcp-oauth-reviewer && npm run test:dfcx-gate && npm run test:dfcx-gate-server && npm run test:vertex-scorer && npm run test:dashboard-chat && npm run test:gitar-integration && npm run test:secret-redaction && npm run test:discoverable-skills && npm run test:discoverable-skill-skills && npm run test:sync-telemetry && npm run test:leak-scanner && npm run test:team-sync && npm run test:eval-rag && npm run test:async-eval-observability && npm run test:letta-adapter && npm run test:tool-contract-validator && npm run test:policy-engine-adapter",
|
|
380
|
+
"test:brain": "node --test tests/brain.test.js",
|
|
378
381
|
"test:python": "python3 -m pytest tests/*.py",
|
|
379
|
-
"test:check-update": "node --test tests/check-update.test.js",
|
|
380
|
-
"test": "npm run test:python && npm run test:schema && npm run test:loop && npm run test:dpo && npm run test:kto && npm run test:api && npm run test:proof && npm run test:e2e && npm run test:rlaif && npm run test:attribution && npm run test:quality && npm run test:intelligence && npm run test:training-export && npm run test:deployment && npm run test:operational-integrity && npm run test:workflow && npm run test:billing && npm run test:cli && npm run test:watcher && npm run test:autoresearch && npm run test:ops && npm run test:session-analyzer && npm run test:tessl && npm run test:gates && npm run test:evoskill && npm run test:gates-hardening && npm run test:workers && npm run test:social-analytics && npm run test:memalign && npm run test:xmemory-lite && npm run test:filesystem-search && npm run test:zernio && npm run test:platform-limits && npm run test:post-video && npm run test:post-everywhere-instagram && npm run test:post-everywhere-channels && npm run test:post-everywhere-zernio-default && npm run test:zernio-canonical-pollers && npm run test:zernio-status && npm run test:obsidian-export && npm run test:lesson-db && npm run test:lesson-rotation && npm run test:memory-dedup && npm run test:feedback-quality && npm run test:sync-version && npm run test:check-congruence && npm run test:tool-registry && npm run test:repeat-metric && npm run test:noop-detect && npm run test:action-receipts && npm run test:feedback-to-rules && npm run test:memory-firewall && npm run test:memory-scope-readiness && npm run test:belief-update && npm run test:hosted-config && npm run test:operational-summary && npm run test:operational-dashboard && npm run test:operator-artifacts && npm run test:operator-key-auth && npm run test:cloudflare-sandbox && npm run test:mcp-config && npm run test:mcp-tool-annotations && npm run test:mcp-oauth && npm run test:mcp-oauth-flow && npm run test:plan-gate && npm run test:ai-component-inventory && npm run test:pulse && npm run test:semantic-layer && npm run test:data-pipeline && npm run test:optimize-context && npm run test:principle-extractor && npm run test:analytics-window && npm run test:funnel-analytics && npm run test:experiment-tracker && npm run test:build-metadata && npm run test:context-engine && npm run test:hf-papers && npm run test:marketing-experiment && npm run test:seo-gsd && npm run test:verify-run && npm run test:export-dpo-pairs && npm run test:export-hf-dataset && npm run test:license && npm run test:bot-detector && npm run test:audit-pr-bot-contamination && npm run test:stripe-bootstrap-saas-catalog && npm run test:postinstall && npm run test:funnel-invariants && npm run test:cli-telemetry && npm run test:pro-parity && npm run test:model-tier-router && npm run test:computer-use-firewall && npm run test:skill-exporter && npm run test:statusline && npm run test:statusline-cache-aggregate && npm run test:public-repo-hygiene && npm run test:no-internal-orchestration-leaks && npm run test:evolution && npm run test:org-dashboard && npm run test:multi-hop-recall && npm run test:synthetic-dpo && npm run test:thumbgate-skill && npm run test:learn-hub && npm run test:feedback-fallback && npm run test:metaclaw && npm run test:server-lock && npm run test:control-tower && npm run test:pii-scanner && npm run test:data-governance && npm run test:lesson-inference && npm run test:semantic-dedup && npm run test:fs-utils && npm run test:cli-schema && npm run test:explore && npm run test:lesson-reranker && npm run test:lesson-retrieval && npm run test:lesson-semantic-retrieval && npm run test:cross-encoder && npm run test:reflector-agent && npm run test:feedback-session && npm run test:feedback-history-distiller && npm run test:hallucination-detector && npm run test:history-distiller && npm run test:predictive-insights && npm run test:predictive-credible-range && npm run test:prove-predictive-insights && npm run test:statusbar-cli && npm run test:generate-instagram-card && npm run test:instagram-thumbgate-post && npm run test:publish-instagram-thumbgate && npm run test:lesson-synthesis && npm run test:lesson-canonical && npm run test:background-governance && npm run test:memory-migration && npm run test:prompt-dlp && npm run test:ephemeral-store && npm run test:agent-security && npm run test:skill-progressive && npm run test:per-step-scoring && npm run test:weekly-auto-post && npm run test:social-post-hourly && npm run test:social-quality-gate && npm run test:a2ui-engine && npm run test:gate-satisfy && npm run test:money-watcher && npm run test:budget && npm run test:quick-start && npm run test:utm && npm run test:product-feedback && npm run test:feedback-root-consolidator && npm run test:engagement-audit && npm run test:install-growth-automation && npm run test:publish-thumbgate-launch && npm run test:reconcile-thumbgate-campaign && npm run test:reddit-publisher && npm run test:schedule-thumbgate-campaign && npm run test:social-reply-monitor && npm run test:social-dedupe-cleanup && npm run test:sync-launch-assets && npm run test:ai-search-visibility && npm run test:perplexity && npm run test:security-scanner && npm run test:llm-client && npm run test:managed-lesson-agent && npm run test:self-distill && npm run test:meta-agent && npm run test:harness-selector && npm run test:thumbgate-bench && npm run test:seo-guides && npm run test:enforcement-loop && npm run test:cli-agent-experience && npm run test:bot-detection && npm run test:checkout-archived-product-guard && npm run test:postgres-guard && npm run test:checkout-bot-guard && npm run test:checkout-pro-confirmation-gate && npm run test:pricing-page-telemetry && npm run test:session-health && npm run test:session-episodes && npm run test:spec-gate && npm run test:decision-trace && npm run test:dashboard-insights && npm run test:telemetry-tracked-link-slug && npm run test:prompt-eval && npm run test:gate-coherence && npm run test:gate-eval && npm run test:high-roi && npm run test:public-static-assets && npm run test:token-savings && npm run test:numbers-page && npm run test:workflow-gate-checkpoint && npm run test:lesson-export-import && npm run test:landing-page-claims && npm run test:competitive-positioning-marketing && npm run test:medium-weekly && npm run test:dashboard-deeplink-e2e && npm run test:public-package-parity && npm run test:token-savings-dashboard && npm run test:cursor-wiring && npm run test:pretooluse-injection && npm run test:recent-corrective-context && npm run test:durability-step && npm run test:mailer && npm run test:brand-assets && npm run test:enforcement-teeth && npm run test:bayes-optimal-gate && npm run test:swarm-coordinator && npm run test:session-report && npm run test:agent-reasoning-traces && npm run test:judge-reward && npm run test:llm-behavior-monitor && npm run test:prompting-os && npm run test:single-use-credential-gate && npm run test:structured-prompt-driven && npm run test:require-evidence-gate && npm run test:rule-validator && npm run test:bluesky-atproto && npm run test:social-reply-monitor-bluesky && npm run test:bluesky-delete-replies && npm run test:architect-kit-memory-bridge && npm run test:sonar-review-hotspots && npm run test:actionable-remediations && npm run test:gemini-embedding-policy && npm run test:agent-design-governance && npm run test:public-core-boundary && npm run test:hook-stop-verify-deploy && npm run test:hook-stop-anti-claim && npm run test:plausible-server-events && npm run test:activation-tracker && npm run test:activation-onboarding && npm run test:unified-revenue-rollup && npm run test:conversion-rate-stats && npm run test:external-customer-audit && npm run test:telemetry-export && npm run test:stripe-checkout-diagnostic && npm run test:stripe-business-identity-probe && npm run test:revenue-observability-doctor && npm run test:public-bundle-ratchet && npm run test:stripe-payment-link-update && npm run test:ci-cd-hygiene-audit && npm run test:verify-marketing-pages-deployed && npm run test:install-email-capture && npm run test:install-shim && npm run test:hook-runtime-subcommands && npm run test:implementation-notes && npm run test:daily-block-cap && npm run test:free-to-paid-conversion-units && npm run test:metrics-real-endpoint && npm run test:cli-trial-and-help && npm run test:cost-cli && npm run test:silent-failure-cluster && npm run test:proof:truth && node --test tests/adaptive-reliability.test.js && npm run test:mcp-oauth-reviewer && npm run test:dfcx-gate && npm run test:dfcx-gate-server && npm run test:vertex-scorer && npm run test:dashboard-chat && npm run test:gitar-integration && npm run test:secret-redaction && npm run test:discoverable-skills && npm run test:discoverable-skill-skills && npm run test:sync-telemetry && npm run test:leak-scanner && npm run test:team-sync && npm run test:eval-rag && npm run test:async-eval-observability && npm run test:letta-adapter && npm run test:policy-engine-adapter && npm run test:tool-contract-validator && npm run test:check-update && npm run test:hermes-gate",
|
|
381
382
|
"test:hook-stop-verify-deploy": "node --test tests/hook-stop-verify-deploy.test.js",
|
|
382
383
|
"test:hook-stop-anti-claim": "node --test tests/hook-stop-anti-claim.test.js",
|
|
383
384
|
"test:plausible-server-events": "node --test tests/plausible-server-events.test.js tests/plausible-poller.test.js tests/plausible-domain-config.test.js",
|
|
@@ -453,6 +454,7 @@
|
|
|
453
454
|
"test:memory-scope-readiness": "node --test tests/memory-scope-readiness.test.js",
|
|
454
455
|
"test:belief-update": "node --test tests/belief-update.test.js",
|
|
455
456
|
"test:hosted-config": "node --test tests/hosted-config.test.js",
|
|
457
|
+
"test:policy-engine-adapter": "node --test tests/policy-engine-adapter.test.js",
|
|
456
458
|
"test:operational-summary": "node --test tests/operational-summary.test.js",
|
|
457
459
|
"test:operational-dashboard": "node --test tests/operational-dashboard.test.js",
|
|
458
460
|
"test:operator-artifacts": "node --test tests/operator-artifacts.test.js tests/revenue-pack-utils.test.js",
|
|
@@ -476,7 +478,6 @@
|
|
|
476
478
|
"test:hf-papers": "node --test tests/hf-papers.test.js",
|
|
477
479
|
"test:marketing-experiment": "node --test tests/marketing-experiment.test.js",
|
|
478
480
|
"test:seo-gsd": "node --test tests/seo-gsd.test.js",
|
|
479
|
-
"test:hermes-gate": "node --test tests/hermes-gate.test.js",
|
|
480
481
|
"test:verify-run": "node --test tests/verify-run.test.js",
|
|
481
482
|
"test:export-dpo-pairs": "node --test tests/export-dpo-pairs.test.js",
|
|
482
483
|
"test:secret-redaction": "node --test tests/secret-redaction.test.js",
|
|
@@ -503,7 +504,7 @@
|
|
|
503
504
|
"test:operational-integrity": "node --test tests/operational-integrity.test.js tests/sync-branch-protection.test.js",
|
|
504
505
|
"test:workflow": "node --test tests/parallel-workflow.test.js tests/workflow-contract.test.js tests/positioning-contract.test.js tests/docs-claim-hygiene.test.js tests/thumbgate-scope.test.js tests/workflow-runs.test.js tests/workflow-sprint-intake.test.js tests/revenue-pack-utils.test.js tests/sales-pipeline.test.js tests/github-outreach.test.js tests/enterprise-story.test.js tests/guide-conversion-path.test.js tests/buyer-intent-revenue-assist.test.js",
|
|
505
506
|
"test:sales-pipeline": "node --test tests/sales-pipeline.test.js",
|
|
506
|
-
"test:billing": "node --test tests/billing.test.js tests/stripe-sync-product-images.test.js",
|
|
507
|
+
"test:billing": "node --test tests/billing.test.js tests/stripe-sync-product-images.test.js tests/payment-rails.test.js",
|
|
507
508
|
"test:cli": "node --test tests/analytics-report.test.js tests/agent-design-governance.test.js tests/codex-self-heal.test.js tests/creator-campaigns.test.js tests/cli.test.js tests/codex-bridge-script.test.js tests/dependabot-changeset.test.js tests/dispatch-brief.test.js tests/feedback-normalize.test.js tests/install-mcp.test.js tests/install-scope-docs.test.js tests/pr-manager.test.js tests/pro-local-dashboard.test.js tests/published-cli.test.js tests/revenue-status.test.js tests/stripe-live-status.test.js tests/creator-dev-and-prune.test.js",
|
|
508
509
|
"test:evolution": "node --test tests/workspace-evolver.test.js",
|
|
509
510
|
"test:watcher": "node --test tests/jsonl-watcher.test.js",
|
|
@@ -754,7 +755,6 @@
|
|
|
754
755
|
"test:leak-scanner": "node --test tests/leak-scanner.test.js",
|
|
755
756
|
"test:tool-contract-validator": "node --test tests/tool-contract-validator.test.js",
|
|
756
757
|
"test:letta-adapter": "node --test tests/letta-adapter.test.js",
|
|
757
|
-
"test:policy-engine-adapter": "node --test tests/policy-engine-adapter.test.js",
|
|
758
758
|
"eval:observability": "node scripts/async-eval-observability.js",
|
|
759
759
|
"test:async-eval-observability": "node --test tests/async-eval-observability.test.js"
|
|
760
760
|
},
|
|
@@ -823,16 +823,9 @@
|
|
|
823
823
|
"stripe": "^22.2.0"
|
|
824
824
|
},
|
|
825
825
|
"overrides": {
|
|
826
|
-
"@google/genai": {
|
|
827
|
-
"protobufjs": "7.6.4"
|
|
828
|
-
},
|
|
829
|
-
"onnxruntime-web": {
|
|
830
|
-
"protobufjs": "7.6.4"
|
|
831
|
-
},
|
|
832
826
|
"express@4.22.1": {
|
|
833
827
|
"path-to-regexp": "0.1.13"
|
|
834
|
-
}
|
|
835
|
-
"js-yaml": "4.2.0"
|
|
828
|
+
}
|
|
836
829
|
},
|
|
837
830
|
"mcpName": "io.github.IgorGanapolsky/thumbgate",
|
|
838
831
|
"devDependencies": {
|
package/public/blog.html
CHANGED
|
@@ -34,6 +34,12 @@
|
|
|
34
34
|
"url": "https://thumbgate.ai/blog",
|
|
35
35
|
"publisher": { "@type": "Organization", "name": "ThumbGate" },
|
|
36
36
|
"blogPost": [
|
|
37
|
+
{
|
|
38
|
+
"@type": "BlogPosting",
|
|
39
|
+
"headline": "Databricks validates runtime AI governance. The next layer is pre-action enforcement.",
|
|
40
|
+
"datePublished": "2026-06-20",
|
|
41
|
+
"keywords": "Databricks Unity AI Gateway, runtime AI governance, MCP governance, pre-action enforcement, ThumbGate"
|
|
42
|
+
},
|
|
37
43
|
{
|
|
38
44
|
"@type": "BlogPosting",
|
|
39
45
|
"headline": "Your AI agent is a supply chain attack surface. Here's how to gate it.",
|
|
@@ -172,6 +178,30 @@
|
|
|
172
178
|
</header>
|
|
173
179
|
|
|
174
180
|
<div class="container">
|
|
181
|
+
<article class="post">
|
|
182
|
+
<div class="post-date">June 20, 2026</div>
|
|
183
|
+
<h2>Databricks validates runtime AI governance. The next layer is pre-action enforcement.</h2>
|
|
184
|
+
|
|
185
|
+
<p>
|
|
186
|
+
Databricks Unity AI Gateway is a strong market signal: enterprise AI
|
|
187
|
+
governance is moving from static policy into runtime interactions
|
|
188
|
+
across models, agents, MCP services, tools, guardrails, observability,
|
|
189
|
+
and cost controls.
|
|
190
|
+
</p>
|
|
191
|
+
<p>
|
|
192
|
+
That is exactly where ThumbGate should live in the buyer conversation:
|
|
193
|
+
not as a Databricks replacement, but as the local pre-action gate that
|
|
194
|
+
stops the developer agent before it calls shell, browser, file, API,
|
|
195
|
+
MCP, or deploy tools.
|
|
196
|
+
</p>
|
|
197
|
+
<p>
|
|
198
|
+
Dashboards and budgets warn you. Gates stop the action.
|
|
199
|
+
</p>
|
|
200
|
+
<p>
|
|
201
|
+
<a href="/learn/databricks-unity-ai-gateway-runtime-governance" class="cta">Read the runtime governance breakdown</a>
|
|
202
|
+
</p>
|
|
203
|
+
</article>
|
|
204
|
+
|
|
175
205
|
<article class="post">
|
|
176
206
|
<div class="post-date">April 10, 2026</div>
|
|
177
207
|
<h2>Your AI agent is a supply chain attack surface. Here's how to gate it.</h2>
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<title>ThumbGate vs Adopt AI | Managing AI Blast Radius in Production</title>
|
|
7
|
+
<meta name="description" content="Vijay Sagar Gullapalli and Sarat Mahavratayajula proposed an evals-first architecture to manage AI blast radius. ThumbGate implements this pre-execution firewall at the developer machine layer, gating outbound tool calls before they run." />
|
|
8
|
+
<meta property="og:title" content="ThumbGate vs Adopt AI | Managing AI Blast Radius in Production" />
|
|
9
|
+
<meta property="og:description" content="Compare the evals-first testing pipeline proposed by Adopt AI's Vijay Sagar Gullapalli with ThumbGate's pre-execution firewall. Learn how to combine offline evals with runtime gating." />
|
|
10
|
+
<meta property="og:type" content="article" />
|
|
11
|
+
<meta property="og:url" content="https://thumbgate.ai/compare/adopt-ai" />
|
|
12
|
+
<link rel="canonical" href="https://thumbgate.ai/compare/adopt-ai" />
|
|
13
|
+
<link rel="llm-context" href="/llm-context.md" type="text/markdown" />
|
|
14
|
+
<link rel="icon" type="image/png" href="/thumbgate-icon.png" />
|
|
15
|
+
<link rel="apple-touch-icon" href="/assets/brand/thumbgate-mark.svg" />
|
|
16
|
+
<meta property="og:image" content="/og.png" />
|
|
17
|
+
<style>
|
|
18
|
+
:root { --bg: #0a0a0b; --bg-raised: #111113; --bg-card: #161618; --line: #222225; --text: #e8e8ec; --muted: #8b8b96; --cyan: #22d3ee; --green: #4ade80; --amber: #fbbf24; }
|
|
19
|
+
* { box-sizing: border-box; }
|
|
20
|
+
body { margin: 0; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background: var(--bg); color: var(--text); line-height: 1.65; }
|
|
21
|
+
a { color: var(--cyan); text-decoration: none; }
|
|
22
|
+
a:hover { text-decoration: underline; }
|
|
23
|
+
.container { max-width: 980px; margin: 0 auto; padding: 0 24px; }
|
|
24
|
+
.topbar { position: sticky; top: 0; z-index: 20; backdrop-filter: blur(12px); background: rgba(10, 10, 11, 0.88); border-bottom: 1px solid var(--line); }
|
|
25
|
+
.topbar .container { display: flex; justify-content: space-between; align-items: center; padding-top: 14px; padding-bottom: 14px; }
|
|
26
|
+
.brand { font-weight: 700; color: var(--text); display: inline-flex; align-items: center; gap: 8px; text-decoration: none; }
|
|
27
|
+
.brand .logo-mark { width: 28px; height: 28px; display: block; }
|
|
28
|
+
.hero { padding: 72px 0 32px; }
|
|
29
|
+
.eyebrow { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 999px; border: 1px solid rgba(34, 211, 238, 0.22); background: rgba(34, 211, 238, 0.1); color: var(--cyan); text-transform: uppercase; letter-spacing: 0.08em; font-size: 12px; font-weight: 700; }
|
|
30
|
+
h1 { font-size: clamp(34px, 5vw, 56px); line-height: 1.06; letter-spacing: -0.04em; margin: 16px 0; max-width: 860px; }
|
|
31
|
+
.hero p { max-width: 760px; color: var(--muted); font-size: 18px; }
|
|
32
|
+
.grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); gap: 24px; padding-bottom: 72px; }
|
|
33
|
+
.card, .detail-section, .sidebar-card { background: var(--bg-card); border: 1px solid var(--line); border-radius: 16px; }
|
|
34
|
+
.card { padding: 24px; }
|
|
35
|
+
.detail-section { padding: 24px; margin-bottom: 18px; }
|
|
36
|
+
.detail-section h2 { margin: 0 0 12px; font-size: 24px; letter-spacing: -0.03em; }
|
|
37
|
+
.detail-section p, .detail-section li, .sidebar-card p { color: var(--muted); }
|
|
38
|
+
.detail-section ul, .card ul { padding-left: 18px; color: var(--muted); }
|
|
39
|
+
.comparison-table { width: 100%; border-collapse: collapse; margin-top: 16px; font-size: 14px; }
|
|
40
|
+
.comparison-table th, .comparison-table td { border: 1px solid var(--line); padding: 12px; text-align: left; vertical-align: top; }
|
|
41
|
+
.comparison-table th { background: var(--bg-raised); color: var(--cyan); }
|
|
42
|
+
.pill-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
|
|
43
|
+
.pill { border: 1px solid var(--line); background: var(--bg-raised); border-radius: 999px; padding: 10px 14px; font-size: 14px; font-weight: 650; }
|
|
44
|
+
.pill.good { color: #b8f7c8; border-color: rgba(74, 222, 128, 0.28); background: rgba(74, 222, 128, 0.1); }
|
|
45
|
+
.pill.warn { color: #ffe2a4; border-color: rgba(251, 191, 36, 0.28); background: rgba(251, 191, 36, 0.1); }
|
|
46
|
+
.sidebar { display: flex; flex-direction: column; gap: 18px; }
|
|
47
|
+
.sidebar-card { padding: 20px; }
|
|
48
|
+
.sidebar-card:first-child { position: sticky; top: 84px; max-height: calc(100vh - 104px); overflow-y: auto; -webkit-overflow-scrolling: touch; }
|
|
49
|
+
.cta-button { display: inline-flex; align-items: center; justify-content: center; margin-top: 18px; padding: 12px 16px; border-radius: 10px; background: var(--cyan); color: #071116; font-weight: 700; text-decoration: none; }
|
|
50
|
+
.related-card { display: block; padding: 14px; border-radius: 12px; border: 1px solid var(--line); background: var(--bg-raised); margin-top: 12px; color: var(--text); }
|
|
51
|
+
.related-label { display: block; color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 4px; }
|
|
52
|
+
.faq-item { border-top: 1px solid var(--line); padding: 14px 0; }
|
|
53
|
+
.faq-item summary { cursor: pointer; font-weight: 600; }
|
|
54
|
+
.faq-item p { color: var(--muted); }
|
|
55
|
+
@media (max-width: 860px) { .grid { grid-template-columns: 1fr; } .sidebar-card:first-child { position: static; max-height: none; overflow: visible; } }
|
|
56
|
+
</style>
|
|
57
|
+
<script type="application/ld+json">
|
|
58
|
+
{
|
|
59
|
+
"@context": "https://schema.org",
|
|
60
|
+
"@type": "TechArticle",
|
|
61
|
+
"headline": "ThumbGate vs Adopt AI: Managing AI Blast Radius in Production",
|
|
62
|
+
"description": "An architectural comparison of Adopt AI's evals-first framework for production AI pipelines and ThumbGate's pre-execution firewall at the IDE-agent level. Learn how to manage the infinite blast radius of model upgrades.",
|
|
63
|
+
"about": ["managing AI blast radius", "ThumbGate vs Adopt AI", "evals-first architecture", "structured output validation"],
|
|
64
|
+
"url": "https://thumbgate.ai/compare/adopt-ai",
|
|
65
|
+
"citation": "https://venturebeat.com/orchestration/when-claude-changed-everything-changed-managing-ai-blast-radius-in-production",
|
|
66
|
+
"publisher": { "@type": "Organization", "name": "ThumbGate", "url": "https://thumbgate.ai" },
|
|
67
|
+
"mainEntityOfPage": "https://thumbgate.ai/compare/adopt-ai"
|
|
68
|
+
}
|
|
69
|
+
</script>
|
|
70
|
+
<script type="application/ld+json">
|
|
71
|
+
{
|
|
72
|
+
"@context": "https://schema.org",
|
|
73
|
+
"@type": "FAQPage",
|
|
74
|
+
"mainEntity": [
|
|
75
|
+
{
|
|
76
|
+
"@type": "Question",
|
|
77
|
+
"name": "What is the 'infinite blast radius' problem in AI?",
|
|
78
|
+
"acceptedAnswer": {
|
|
79
|
+
"@type": "Answer",
|
|
80
|
+
"text": "The infinite blast radius problem refers to how routine upgrades in frontier language models (e.g., Claude 3.5 to 3.7 or 4.5) can introduce silent, non-deterministic formatting deviations in structured output. Because the model's output boundary meets critical internal APIs, these formatting drifts (like inserting curl commands in JSON descriptions or returning clarifying questions) bypass traditional software test suites and break downstream applications in production."
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"@type": "Question",
|
|
85
|
+
"name": "How does ThumbGate align with Adopt AI's proposed 'evals-first' architecture?",
|
|
86
|
+
"acceptedAnswer": {
|
|
87
|
+
"@type": "Answer",
|
|
88
|
+
"text": "Adopt AI advocates for an 'evals-first' workflow, where prompt updates and model upgrades are gated through automated evaluation suites derived from production traffic. ThumbGate complements this by acting as the active, local-first runtime gate (PreToolUse firewall). Instead of waiting for offline CI/CD test passes, ThumbGate intercepts dangerous, non-deterministic tool actions on developer machines and in local pipelines, converting human feedback directly into runtime check rules."
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"@type": "Question",
|
|
93
|
+
"name": "How does ThumbGate handle structured schema validation drift?",
|
|
94
|
+
"acceptedAnswer": {
|
|
95
|
+
"@type": "Answer",
|
|
96
|
+
"text": "ThumbGate uses structured adapters with self-healing capabilities to intercept LLM responses at the boundary of downstream integrations. If an upgrade introduces parameter deviations, ThumbGate's adapters automatically attempt key-mapping alignment, type coercion, and schema sanitization, logging telemetry warnings rather than throwing fatal application crashes."
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
}
|
|
101
|
+
</script>
|
|
102
|
+
</head>
|
|
103
|
+
<body>
|
|
104
|
+
|
|
105
|
+
<div class="topbar">
|
|
106
|
+
<div class="container">
|
|
107
|
+
<a href="/" class="brand">
|
|
108
|
+
<svg class="logo-mark" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
109
|
+
<circle cx="16" cy="16" r="14" fill="#161618" stroke="#22d3ee" stroke-width="2"/>
|
|
110
|
+
<path d="M16 8V24M8 16H24" stroke="#22d3ee" stroke-width="2" stroke-linecap="round"/>
|
|
111
|
+
</svg>
|
|
112
|
+
<span>ThumbGate</span>
|
|
113
|
+
</a>
|
|
114
|
+
<a href="/pricing.html" style="font-size: 14px; font-weight: 600;">Pricing</a>
|
|
115
|
+
</div>
|
|
116
|
+
</div>
|
|
117
|
+
|
|
118
|
+
<div class="container hero">
|
|
119
|
+
<div class="eyebrow">Production Safety</div>
|
|
120
|
+
<h1>ThumbGate vs Adopt AI</h1>
|
|
121
|
+
<p>Managing the infinite blast radius of non-deterministic LLMs in production: Combining evals-first gating with pre-execution firewalls.</p>
|
|
122
|
+
</div>
|
|
123
|
+
|
|
124
|
+
<div class="container">
|
|
125
|
+
<div class="grid">
|
|
126
|
+
<div class="main-content">
|
|
127
|
+
<div class="detail-section">
|
|
128
|
+
<h2>The Seam Where AI Breaks Downstream APIs</h2>
|
|
129
|
+
<p>
|
|
130
|
+
In the recent VentureBeat article <em>"When Claude changed, everything changed: managing AI blast radius in production"</em>, Sarat Mahavratayajula (Sherwin-Williams) and Vijay Sagar Gullapalli (Adopt AI) identified a fundamental operational vulnerability. In systems translating natural language to API calls, model updates (like Claude Sonnet 3.5 to 3.7 or 4.5) introduce silent formatting drifts.
|
|
131
|
+
</p>
|
|
132
|
+
<p>
|
|
133
|
+
Because LLMs operate non-deterministically, they can violate strict JSON contracts by wrapping responses in markdown backticks, placing parameters in description fields, or returning conversational questions. Traditional unit tests cannot predict these failure shapes, resulting in an "infinite blast radius" across your backend.
|
|
134
|
+
</p>
|
|
135
|
+
</div>
|
|
136
|
+
|
|
137
|
+
<div class="detail-section">
|
|
138
|
+
<h2>Comparison Matrix</h2>
|
|
139
|
+
<table class="comparison-table">
|
|
140
|
+
<thead>
|
|
141
|
+
<tr>
|
|
142
|
+
<th>Capability</th>
|
|
143
|
+
<th>Evals-First Philosophy (Adopt AI)</th>
|
|
144
|
+
<th>ThumbGate Framework</th>
|
|
145
|
+
</tr>
|
|
146
|
+
</thead>
|
|
147
|
+
<tbody>
|
|
148
|
+
<tr>
|
|
149
|
+
<td><strong>Primary Mechanism</strong></td>
|
|
150
|
+
<td>Offline evaluation suites gating CI/CD pull requests.</td>
|
|
151
|
+
<td>Active PreToolUse runtime gate blocking actions before execution.</td>
|
|
152
|
+
</tr>
|
|
153
|
+
<tr>
|
|
154
|
+
<td><strong>Seam Validation</strong></td>
|
|
155
|
+
<td>Strict JSON schema adherence validation post-generation.</td>
|
|
156
|
+
<td>Self-healing structured adapters with fallback parsing and alignment.</td>
|
|
157
|
+
</tr>
|
|
158
|
+
<tr>
|
|
159
|
+
<td><strong>Rule Generation</strong></td>
|
|
160
|
+
<td>Manual prompt refining and gold-standard evaluation sets.</td>
|
|
161
|
+
<td>Auto-promotes thumbs-down feedback into local regex & semantic rules.</td>
|
|
162
|
+
</tr>
|
|
163
|
+
<tr>
|
|
164
|
+
<td><strong>Execution Layer</strong></td>
|
|
165
|
+
<td>Application-level orchestration.</td>
|
|
166
|
+
<td>IDE agent level (Cursor, Claude Code, Codex, Gemini, Cline).</td>
|
|
167
|
+
</tr>
|
|
168
|
+
</tbody>
|
|
169
|
+
</table>
|
|
170
|
+
</div>
|
|
171
|
+
|
|
172
|
+
<div class="detail-section">
|
|
173
|
+
<h2>High-ROI Integration: Dual-Layer Perimeter</h2>
|
|
174
|
+
<p>
|
|
175
|
+
To successfully contain AI blast radius, enterprises must adopt a dual-layer approach:
|
|
176
|
+
</p>
|
|
177
|
+
<ul>
|
|
178
|
+
<li><strong>CI/CD Gate (Adopt AI style):</strong> Treat prompt edits and model versions as pull requests. Validate them against production-traffic test cases using automated evaluation suites.</li>
|
|
179
|
+
<li><strong>Runtime Firewall (ThumbGate style):</strong> Run local, pre-execution checks on developer machines. When a model drifts and outputs a destructive command or invalid call, block it at the terminal hook before it touches the operating system or database.</li>
|
|
180
|
+
</ul>
|
|
181
|
+
</div>
|
|
182
|
+
|
|
183
|
+
<div class="detail-section">
|
|
184
|
+
<h2>Frequently Asked Questions</h2>
|
|
185
|
+
<details class="faq-item">
|
|
186
|
+
<summary>Is Adopt AI a ThumbGate competitor?</summary>
|
|
187
|
+
<p>No. Adopt AI and its founders focus on prompt telemetry and evaluation-driven CI gates. ThumbGate operates at the local IDE agent hook layer. By deploying both, engineering teams evaluate model performance offline while enforcing hard safety boundaries in real-time execution.</p>
|
|
188
|
+
</details>
|
|
189
|
+
<details class="faq-item">
|
|
190
|
+
<summary>How do self-healing structured adapters work?</summary>
|
|
191
|
+
<p>If an LLM update changes output format (e.g. returning strings instead of floats or nesting lists), the structured adapter catches the validation error, coerces types, maps alternate names, and sanitizes the output rather than letting the downstream application crash.</p>
|
|
192
|
+
</details>
|
|
193
|
+
</div>
|
|
194
|
+
</div>
|
|
195
|
+
|
|
196
|
+
<div class="sidebar">
|
|
197
|
+
<div class="sidebar-card">
|
|
198
|
+
<h3>Contain the Radius</h3>
|
|
199
|
+
<p>Install the local PreToolUse gate to shield your database and git history from agent drift.</p>
|
|
200
|
+
<a href="/pricing.html" class="cta-button">Get ThumbGate Pro</a>
|
|
201
|
+
|
|
202
|
+
<div style="margin-top: 24px;">
|
|
203
|
+
<span class="related-label">Related Comparisons</span>
|
|
204
|
+
<a href="/compare/anthropic-containment.html" class="related-card">
|
|
205
|
+
<strong>vs Anthropic Containment</strong>
|
|
206
|
+
<span style="font-size: 12px; color: var(--muted); display: block;">gVisor vs local PreToolUse</span>
|
|
207
|
+
</a>
|
|
208
|
+
<a href="/compare/arcjet.html" class="related-card">
|
|
209
|
+
<strong>vs Arcjet</strong>
|
|
210
|
+
<span style="font-size: 12px; color: var(--muted); display: block;">Inbound HTTP vs Outbound hooks</span>
|
|
211
|
+
</a>
|
|
212
|
+
</div>
|
|
213
|
+
</div>
|
|
214
|
+
</div>
|
|
215
|
+
</div>
|
|
216
|
+
</div>
|
|
217
|
+
|
|
218
|
+
</body>
|
|
219
|
+
</html>
|