thumbgate 1.23.0 → 1.23.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-plugin/marketplace.json +5 -5
- package/.claude-plugin/plugin.json +2 -2
- package/.well-known/llms.txt +26 -11
- package/.well-known/mcp/server-card.json +8 -8
- package/README.md +69 -34
- 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 +57 -16
- package/bin/postinstall.js +11 -22
- package/config/gate-templates.json +72 -0
- package/config/github-about.json +1 -1
- package/config/post-deploy-marketing-pages.json +10 -0
- package/package.json +6 -6
- package/public/agent-manager.html +3 -3
- package/public/agents-cost-savings.html +3 -3
- package/public/ai-malpractice-prevention.html +726 -149
- package/public/blog.html +3 -3
- package/public/codex-enterprise.html +3 -3
- package/public/codex-plugin.html +4 -4
- package/public/compare.html +6 -6
- package/public/dashboard.html +211 -126
- package/public/guide.html +5 -5
- package/public/index.html +187 -47
- package/public/learn.html +24 -10
- package/public/lessons.html +2 -2
- package/public/numbers.html +6 -6
- package/public/pricing.html +6 -5
- package/public/pro.html +23 -0
- package/scripts/billing.js +17 -0
- package/scripts/commercial-offer.js +75 -0
- package/scripts/dashboard.js +53 -1
- package/scripts/gates-engine.js +3 -3
- package/scripts/plausible-server-events.js +2 -1
- package/scripts/rate-limiter.js +16 -12
- package/scripts/seo-gsd.js +167 -1
- package/scripts/telemetry-analytics.js +310 -0
- package/scripts/visitor-journey.js +172 -0
- package/src/api/server.js +65 -29
- package/adapters/chatgpt/openapi.yaml +0 -1705
package/bin/postinstall.js
CHANGED
|
@@ -26,32 +26,21 @@ const DASHBOARD_URL = 'https://thumbgate.ai/dashboard?utm_source=npm&utm_medium=
|
|
|
26
26
|
|
|
27
27
|
process.stderr.write(`
|
|
28
28
|
╭─────────────────────────────────────────────────────╮
|
|
29
|
-
│ ThumbGate installed —
|
|
29
|
+
│ ThumbGate installed — 7-day Pro trial is live. │
|
|
30
30
|
│ │
|
|
31
|
-
│
|
|
32
|
-
│
|
|
33
|
-
│ unlimited captures) or upgrade to keep Pro. │
|
|
31
|
+
│ Start now: npx thumbgate init │
|
|
32
|
+
│ Updates: npx thumbgate subscribe you@company.com│
|
|
34
33
|
│ │
|
|
35
|
-
│
|
|
36
|
-
│
|
|
37
|
-
│ npx thumbgate stats │
|
|
38
|
-
│ │
|
|
39
|
-
│ Get the 5-min setup guide + weekly tips: │
|
|
40
|
-
│ npx thumbgate subscribe you@company.com │
|
|
41
|
-
│ │
|
|
42
|
-
│ See your gates firing live: │
|
|
43
|
-
│ ${DASHBOARD_URL.slice(0, 47).padEnd(47, ' ')} │
|
|
34
|
+
│ Free after trial: 3 rules, 5 captures/day. │
|
|
35
|
+
│ Pro ($19/mo): unlimited everything. │
|
|
44
36
|
╰─────────────────────────────────────────────────────╯
|
|
45
37
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
Hosted dashboard — no self-hosting needed
|
|
51
|
-
|
|
52
|
-
After the trial: ${PRO_PRICE_LABEL}
|
|
53
|
-
Upgrade: ${PRO_CTA_URL}
|
|
38
|
+
Trial unlocks: unlimited rules, lesson search, DPO export,
|
|
39
|
+
hosted dashboard. After 7 days, free tier limits apply.
|
|
40
|
+
Subscribe for the 5-min setup guide + weekly tips:
|
|
41
|
+
npx thumbgate subscribe you@company.com
|
|
54
42
|
|
|
55
|
-
|
|
43
|
+
Dashboard: ${DASHBOARD_URL}
|
|
44
|
+
Keep Pro: ${PRO_CTA_URL}
|
|
56
45
|
|
|
57
46
|
`);
|
|
@@ -444,6 +444,78 @@
|
|
|
444
444
|
"problem": "Blocks background agents from cloning, building, testing, or publishing unless they run in an isolated durable environment with logs.",
|
|
445
445
|
"roi": "Lets the team pursue unattended revenue and engineering workflows without turning local developer machines into the execution boundary.",
|
|
446
446
|
"rollout": "Enable for every agent that can run tests, push branches, deploy, publish content, change billing, or touch customer data."
|
|
447
|
+
},
|
|
448
|
+
{
|
|
449
|
+
"id": "block-unauthorized-practice-of-law",
|
|
450
|
+
"name": "Block unauthorized practice of law",
|
|
451
|
+
"category": "Legal Intake Safety",
|
|
452
|
+
"signal": "👎",
|
|
453
|
+
"defaultAction": "block",
|
|
454
|
+
"severity": "critical",
|
|
455
|
+
"pattern": "(outcome prediction|jurisdictional recommendation|[Yy]ou\\s+(should|could|might)\\s+(file|sue|claim)|strong case|likely\\s+(prevail|win|succeed))",
|
|
456
|
+
"problem": "Stops advice-shaped intake replies under ABA Rule 5.5.",
|
|
457
|
+
"roi": "Prevents malpractice exposure before delivery.",
|
|
458
|
+
"rollout": "Enable on every AI intake channel."
|
|
459
|
+
},
|
|
460
|
+
{
|
|
461
|
+
"id": "require-conflict-check-before-intake",
|
|
462
|
+
"name": "Require conflict check before intake continues",
|
|
463
|
+
"category": "Legal Intake Safety",
|
|
464
|
+
"signal": "👎",
|
|
465
|
+
"defaultAction": "block",
|
|
466
|
+
"severity": "critical",
|
|
467
|
+
"pattern": "(collect_case_facts|schedule_consultation|intake_continue).*(missing|no|unchecked).*(conflict|adverse[_-]party|clearance)",
|
|
468
|
+
"problem": "Requires adverse-party clearance before sensitive facts.",
|
|
469
|
+
"roi": "Catches conflicts before privileged facts cross ethical walls.",
|
|
470
|
+
"rollout": "Use the firm's conflicts API or a synthetic pilot fixture."
|
|
471
|
+
},
|
|
472
|
+
{
|
|
473
|
+
"id": "block-privileged-content-egress",
|
|
474
|
+
"name": "Block privileged content egress",
|
|
475
|
+
"category": "Legal Intake Safety",
|
|
476
|
+
"signal": "👎",
|
|
477
|
+
"defaultAction": "block",
|
|
478
|
+
"severity": "critical",
|
|
479
|
+
"pattern": "(send_email|api_call|external_request|schedule|crm_update).*(privileged|attorney[_-]client|work[_-]product|matter[_-]id|confidential)",
|
|
480
|
+
"problem": "Blocks outbound actions with privilege markers.",
|
|
481
|
+
"roi": "Prevents single-action privilege waiver.",
|
|
482
|
+
"rollout": "Define markers, start with hard block, then add in-tenant reroute."
|
|
483
|
+
},
|
|
484
|
+
{
|
|
485
|
+
"id": "require-approved-disclaimer-before-response",
|
|
486
|
+
"name": "Require approved disclaimer before response",
|
|
487
|
+
"category": "Legal Intake Safety",
|
|
488
|
+
"signal": "👎",
|
|
489
|
+
"defaultAction": "block",
|
|
490
|
+
"severity": "high",
|
|
491
|
+
"pattern": "(intake_response|client_reply).*((missing|no)\\s*(disclaimer|disclosure|non[_-]engagement)|(disclaimer|disclosure|non[_-]engagement)\\s*[:=]?\\s*(missing|none|no))",
|
|
492
|
+
"problem": "Requires firm-approved non-engagement language.",
|
|
493
|
+
"roi": "Reduces inadvertent client-relationship risk.",
|
|
494
|
+
"rollout": "Load approved disclaimer during pilot."
|
|
495
|
+
},
|
|
496
|
+
{
|
|
497
|
+
"id": "restrict-model-endpoint-to-approved-list",
|
|
498
|
+
"name": "Restrict model endpoint to approved list",
|
|
499
|
+
"category": "Legal Intake Safety",
|
|
500
|
+
"signal": "👎",
|
|
501
|
+
"defaultAction": "block",
|
|
502
|
+
"severity": "high",
|
|
503
|
+
"pattern": "(model_call|llm_request|api_endpoint).*(unapproved|unknown|public|consumer)",
|
|
504
|
+
"problem": "Blocks unapproved model endpoints.",
|
|
505
|
+
"roi": "Keeps data inside approved vendor boundaries.",
|
|
506
|
+
"rollout": "Allowlist endpoints during pilot."
|
|
507
|
+
},
|
|
508
|
+
{
|
|
509
|
+
"id": "require-attorney-review-before-routing",
|
|
510
|
+
"name": "Require attorney review before case routing",
|
|
511
|
+
"category": "Legal Intake Safety",
|
|
512
|
+
"signal": "👎",
|
|
513
|
+
"defaultAction": "block",
|
|
514
|
+
"severity": "high",
|
|
515
|
+
"pattern": "(route_to_attorney|assign_practice_area|schedule_consultation).*(no|missing).*(review|approval|supervisor)",
|
|
516
|
+
"problem": "Requires review before routing or scheduling.",
|
|
517
|
+
"roi": "Prevents bad prospect routing.",
|
|
518
|
+
"rollout": "Start strict; relax after pilot evidence."
|
|
447
519
|
}
|
|
448
520
|
]
|
|
449
521
|
}
|
package/config/github-about.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"repo": "IgorGanapolsky/ThumbGate",
|
|
3
3
|
"repositoryUrl": "https://github.com/IgorGanapolsky/ThumbGate",
|
|
4
|
-
"homepageUrl": "https://thumbgate
|
|
4
|
+
"homepageUrl": "https://thumbgate.ai",
|
|
5
5
|
"githubDescription": "Agent governance for ThumbGate: 👍/👎 become Pre-Action Checks that block repeat mistakes before code, money, or customer systems change.",
|
|
6
6
|
"metaDescription": "Stop paying for the same AI mistake twice. ThumbGate is machine-speed pre-action defense for AI coding agents and vibe coding workflows: 👍 thumbs up and 👎 thumbs down become history-aware lessons, shared lessons and org visibility, actionable remediations, agent surface inventory, and Pre-Action Checks that block repeat mistakes before the next tool call across Claude Code, Cursor, Codex, Gemini, Amp, Cline, and OpenCode.",
|
|
7
7
|
"topics": [
|
|
@@ -27,6 +27,16 @@
|
|
|
27
27
|
"sentinel": "ThumbGate",
|
|
28
28
|
"description": "First-party numbers / data transparency page"
|
|
29
29
|
},
|
|
30
|
+
{
|
|
31
|
+
"route": "/ai-malpractice-prevention",
|
|
32
|
+
"sentinel": "Pre-Execution Controls for Legal AI Agents",
|
|
33
|
+
"description": "Legal AI intake risk-controls page for law-firm pilot conversations"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"route": "/learn/background-agent-control-layer",
|
|
37
|
+
"sentinel": "Background agents need a control layer outside the model",
|
|
38
|
+
"description": "Background-agent AI-SDLC control-layer positioning page"
|
|
39
|
+
},
|
|
30
40
|
{
|
|
31
41
|
"route": "/llm-context.md",
|
|
32
42
|
"sentinel": "## What ThumbGate Is",
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "thumbgate",
|
|
3
|
-
"version": "1.23.
|
|
3
|
+
"version": "1.23.2",
|
|
4
4
|
"description": "ThumbGate self-improving agent governance: thumbs-up/down turns every mistake into a prevention rule and blocks repeat patterns. 33 pre-action checks, budget enforcement, and self-protection for Claude Code, Cursor, Codex, Gemini CLI, and Amp.",
|
|
5
|
-
"homepage": "https://thumbgate
|
|
5
|
+
"homepage": "https://thumbgate.ai",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
8
|
"url": "https://github.com/IgorGanapolsky/ThumbGate.git"
|
|
@@ -198,6 +198,7 @@
|
|
|
198
198
|
"scripts/verification-loop.js",
|
|
199
199
|
"scripts/verifier-scoring.js",
|
|
200
200
|
"scripts/verify-marketing-pages-deployed.js",
|
|
201
|
+
"scripts/visitor-journey.js",
|
|
201
202
|
"scripts/workflow-runs.js",
|
|
202
203
|
"scripts/workflow-sentinel.js",
|
|
203
204
|
"scripts/workspace-agent-routines.js",
|
|
@@ -209,7 +210,6 @@
|
|
|
209
210
|
"LICENSE",
|
|
210
211
|
"README.md",
|
|
211
212
|
"adapters/amp/skills/thumbgate-feedback/SKILL.md",
|
|
212
|
-
"adapters/chatgpt/openapi.yaml",
|
|
213
213
|
"adapters/claude/.mcp.json",
|
|
214
214
|
"adapters/codex/config.toml",
|
|
215
215
|
"adapters/forge/forge.yaml",
|
|
@@ -341,7 +341,7 @@
|
|
|
341
341
|
"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: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:plan-gate && 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: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: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: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:community-course-platform-launch-kit && 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: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:demo-voiceover && 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: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",
|
|
342
342
|
"test:hook-stop-verify-deploy": "node --test tests/hook-stop-verify-deploy.test.js",
|
|
343
343
|
"test:hook-stop-anti-claim": "node --test tests/hook-stop-anti-claim.test.js",
|
|
344
|
-
"test:plausible-server-events": "node --test tests/plausible-server-events.test.js",
|
|
344
|
+
"test:plausible-server-events": "node --test tests/plausible-server-events.test.js tests/plausible-poller.test.js",
|
|
345
345
|
"test:activation-tracker": "node --test tests/activation-tracker.test.js",
|
|
346
346
|
"test:unified-revenue-rollup": "node --test tests/unified-revenue-rollup.test.js",
|
|
347
347
|
"test:conversion-rate-stats": "node --test tests/conversion-rate-stats.test.js",
|
|
@@ -349,7 +349,7 @@
|
|
|
349
349
|
"test:stripe-checkout-diagnostic": "node --test tests/stripe-checkout-diagnostic.test.js",
|
|
350
350
|
"test:stripe-business-identity-probe": "node --test tests/stripe-business-identity-probe.test.js",
|
|
351
351
|
"test:ci-cd-hygiene-audit": "node --test tests/ci-cd-hygiene-audit.test.js",
|
|
352
|
-
"test:telemetry-export": "node --test tests/telemetry-export.test.js",
|
|
352
|
+
"test:telemetry-export": "node --test tests/telemetry-export.test.js tests/telemetry-analytics-quality.test.js",
|
|
353
353
|
"test:swarm-coordinator": "node --test tests/swarm-coordinator.test.js",
|
|
354
354
|
"test:session-report": "node --test tests/session-report.test.js",
|
|
355
355
|
"test:agent-reasoning-traces": "node --test tests/agent-reasoning-traces.test.js tests/agent-stack-survival-audit.test.js",
|
|
@@ -638,7 +638,7 @@
|
|
|
638
638
|
"test:high-roi": "node --test tests/high-roi.test.js tests/model-candidates.test.js tests/autonomous-workflow.test.js tests/high-roi-agent-workflows.test.js tests/interaction-model.test.js tests/interaction-model-e2e.test.js tests/code-graph-guardrails.test.js tests/proxy-pointer-rag-guardrails.test.js tests/rag-precision-guardrails.test.js tests/ai-engineering-stack-guardrails.test.js tests/long-running-agent-context-guardrails.test.js tests/reasoning-efficiency-guardrails.test.js tests/deepseek-v4-runtime-guardrails.test.js tests/upstream-contribution-engine.test.js tests/proactive-agent-eval-guardrails.test.js tests/reward-hacking-guardrails.test.js tests/chatgpt-ads-readiness-pack.test.js tests/oss-pr-opportunity-scout.test.js tests/agent-design-governance.test.js tests/gemini-embedding-policy.test.js tests/openclaw-agent-governance-kit.test.js",
|
|
639
639
|
"test:public-static-assets": "node --test tests/public-static-assets.test.js",
|
|
640
640
|
"test:token-savings": "node --test tests/token-savings.test.js",
|
|
641
|
-
"test:cost-cli": "node --test tests/cost-cli.test.js",
|
|
641
|
+
"test:cost-cli": "node --test tests/cost-cli.test.js tests/conversion-receipt.test.js",
|
|
642
642
|
"test:numbers-page": "node --test tests/numbers-page.test.js",
|
|
643
643
|
"test:workflow-gate-checkpoint": "node --test tests/workflow-gate-checkpoint.test.js tests/autonomous-workflow.test.js",
|
|
644
644
|
"workflow:autonomous": "node scripts/autonomous-workflow.js",
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
<meta property="og:title" content="ThumbGate for the Agent Manager">
|
|
10
10
|
<meta property="og:description" content="The role Anthropic named — Agent Manager — owns CLAUDE.md, the plugin marketplace, permissions, and which skills ship. ThumbGate is the runtime underneath all of that.">
|
|
11
11
|
<meta property="og:type" content="article">
|
|
12
|
-
<meta property="og:image" content="https://thumbgate
|
|
13
|
-
<link rel="canonical" href="https://thumbgate
|
|
12
|
+
<meta property="og:image" content="https://thumbgate.ai/og.png">
|
|
13
|
+
<link rel="canonical" href="https://thumbgate.ai/agent-manager">
|
|
14
14
|
<script type="application/ld+json">
|
|
15
15
|
{
|
|
16
16
|
"@context": "https://schema.org",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"datePublished": "2026-05-19",
|
|
21
21
|
"dateModified": "2026-05-19",
|
|
22
22
|
"author": { "@type": "Person", "name": "Igor Ganapolsky", "url": "https://github.com/IgorGanapolsky" },
|
|
23
|
-
"publisher": { "@type": "Organization", "name": "ThumbGate", "url": "https://thumbgate
|
|
23
|
+
"publisher": { "@type": "Organization", "name": "ThumbGate", "url": "https://thumbgate.ai" },
|
|
24
24
|
"about": [
|
|
25
25
|
{ "@type": "Thing", "name": "Agent Manager" },
|
|
26
26
|
{ "@type": "Thing", "name": "Claude Code rollout" },
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
<meta property="og:title" content="FinOps for AI Agents — Prevention, Not Reporting">
|
|
10
10
|
<meta property="og:description" content="Cost dashboards tell you what your agents wasted last week. ThumbGate's PreToolUse gates stop the wasted tool calls before they fire — and `thumbgate cost` shows you the dollar amount.">
|
|
11
11
|
<meta property="og:type" content="article">
|
|
12
|
-
<meta property="og:image" content="https://thumbgate
|
|
13
|
-
<link rel="canonical" href="https://thumbgate
|
|
12
|
+
<meta property="og:image" content="https://thumbgate.ai/og.png">
|
|
13
|
+
<link rel="canonical" href="https://thumbgate.ai/agents-cost-savings">
|
|
14
14
|
<script type="application/ld+json">
|
|
15
15
|
{
|
|
16
16
|
"@context": "https://schema.org",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"datePublished": "2026-05-21",
|
|
21
21
|
"dateModified": "2026-05-21",
|
|
22
22
|
"author": { "@type": "Person", "name": "Igor Ganapolsky", "url": "https://github.com/IgorGanapolsky" },
|
|
23
|
-
"publisher": { "@type": "Organization", "name": "ThumbGate", "url": "https://thumbgate
|
|
23
|
+
"publisher": { "@type": "Organization", "name": "ThumbGate", "url": "https://thumbgate.ai" },
|
|
24
24
|
"about": [
|
|
25
25
|
{ "@type": "Thing", "name": "FinOps for AI" },
|
|
26
26
|
{ "@type": "Thing", "name": "Agent Cost Optimization" },
|