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/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "thumbgate",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "ThumbGate Pre-Action Checks
|
|
3
|
+
"version": "1.29.2",
|
|
4
|
+
"description": "ThumbGate Pre-Action Checks self-improve from ranked lessons and repeated failures, hard-block detected secret leaks, and block matches in strict mode.",
|
|
5
5
|
"homepage": "https://thumbgate.ai",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
"main": "src/index.js",
|
|
14
14
|
"bin": {
|
|
15
15
|
"thumbgate": "bin/cli.js",
|
|
16
|
-
"thumbgate-dashboard": "bin/dashboard-cli.js"
|
|
16
|
+
"thumbgate-dashboard": "bin/dashboard-cli.js",
|
|
17
|
+
"thumbgate-revenue-evidence": "scripts/grafana-revenue-evidence.js"
|
|
17
18
|
},
|
|
18
19
|
"files": [
|
|
19
20
|
"scripts/access-anomaly-detector.js",
|
|
@@ -21,6 +22,8 @@
|
|
|
21
22
|
"scripts/activation-quickstart.js",
|
|
22
23
|
"scripts/activation-tracker.js",
|
|
23
24
|
"scripts/agent-audit-trace.js",
|
|
25
|
+
"scripts/agent-outcome-eval.js",
|
|
26
|
+
"scripts/agent-outcome-monitor.js",
|
|
24
27
|
"scripts/agent-design-governance.js",
|
|
25
28
|
"scripts/agent-memory-lifecycle.js",
|
|
26
29
|
"scripts/agent-readiness-plan.js",
|
|
@@ -65,7 +68,9 @@
|
|
|
65
68
|
"scripts/code-reasoning.js",
|
|
66
69
|
"scripts/codegraph-context.js",
|
|
67
70
|
"scripts/codex-self-heal.js",
|
|
71
|
+
"scripts/buyer-paths.js",
|
|
68
72
|
"scripts/commercial-offer.js",
|
|
73
|
+
"scripts/revenue-offer-system.js",
|
|
69
74
|
"scripts/context-engine.js",
|
|
70
75
|
"scripts/context-footprint.js",
|
|
71
76
|
"scripts/context-manager.js",
|
|
@@ -87,6 +92,9 @@
|
|
|
87
92
|
"scripts/export-databricks-bundle.js",
|
|
88
93
|
"scripts/entitlement.js",
|
|
89
94
|
"config/entitlement-public-keys.json",
|
|
95
|
+
"scripts/external-customer-audit.js",
|
|
96
|
+
"scripts/stripe-revenue-catalog.js",
|
|
97
|
+
"scripts/stripe-revenue-catalog-audit.js",
|
|
90
98
|
"scripts/export-dpo-pairs.js",
|
|
91
99
|
"scripts/export-hf-dataset.js",
|
|
92
100
|
"scripts/failure-diagnostics.js",
|
|
@@ -103,6 +111,7 @@
|
|
|
103
111
|
"scripts/feedback_quality_eval.py",
|
|
104
112
|
"scripts/filesystem-search.js",
|
|
105
113
|
"scripts/fs-utils.js",
|
|
114
|
+
"scripts/grafana-revenue-evidence.js",
|
|
106
115
|
"scripts/gate-stats.js",
|
|
107
116
|
"scripts/gate-templates.js",
|
|
108
117
|
"scripts/gates-engine.js",
|
|
@@ -114,6 +123,7 @@
|
|
|
114
123
|
"scripts/hook-stop-anti-claim.js",
|
|
115
124
|
"scripts/hook-thumbgate-cache-updater.js",
|
|
116
125
|
"scripts/hosted-config.js",
|
|
126
|
+
"scripts/human-escalation.js",
|
|
117
127
|
"scripts/hybrid-feedback-context.js",
|
|
118
128
|
"scripts/imperative-detector.js",
|
|
119
129
|
"scripts/hybrid-supervisor-agent.js",
|
|
@@ -155,6 +165,9 @@
|
|
|
155
165
|
"scripts/noop-detect.js",
|
|
156
166
|
"scripts/obsidian-export.js",
|
|
157
167
|
"scripts/operational-integrity.js",
|
|
168
|
+
"scripts/observability-setup.js",
|
|
169
|
+
"scripts/observability-env.js",
|
|
170
|
+
"scripts/jsonl-window.js",
|
|
158
171
|
"scripts/oss-pr-opportunity-scout.js",
|
|
159
172
|
"scripts/otel-declarative-config.js",
|
|
160
173
|
"scripts/parallel-workflow-orchestrator.js",
|
|
@@ -173,6 +186,9 @@
|
|
|
173
186
|
"scripts/prompt-guard.js",
|
|
174
187
|
"scripts/prompt-programs.js",
|
|
175
188
|
"scripts/prompting-operating-system.js",
|
|
189
|
+
"scripts/provider-live-evidence.js",
|
|
190
|
+
"scripts/provider-payment-reconciler.js",
|
|
191
|
+
"scripts/provider-revenue-evidence.js",
|
|
176
192
|
"scripts/provider-action-normalizer.js",
|
|
177
193
|
"scripts/proxy-pointer-rag-guardrails.js",
|
|
178
194
|
"scripts/qa-scenario-planner.js",
|
|
@@ -181,11 +197,15 @@
|
|
|
181
197
|
"scripts/rate-limiter.js",
|
|
182
198
|
"scripts/reasoning-efficiency-guardrails.js",
|
|
183
199
|
"scripts/repeat-metric.js",
|
|
200
|
+
"scripts/revenue-action-eligibility.js",
|
|
201
|
+
"scripts/revenue-evidence-remediation.js",
|
|
184
202
|
"scripts/reward-hacking-guardrails.js",
|
|
185
203
|
"scripts/risk-scorer.js",
|
|
186
204
|
"scripts/rlaif-self-audit.js",
|
|
187
205
|
"scripts/rubric-engine.js",
|
|
188
206
|
"scripts/rule-validator.js",
|
|
207
|
+
"scripts/sales-pipeline.js",
|
|
208
|
+
"scripts/schedule-manager.js",
|
|
189
209
|
"scripts/secret-scanner.js",
|
|
190
210
|
"scripts/secret-fixture-tokens.js",
|
|
191
211
|
"scripts/secret-redaction.js",
|
|
@@ -205,6 +225,7 @@
|
|
|
205
225
|
"scripts/skill-rag-router.js",
|
|
206
226
|
"scripts/slo-alert-engine.js",
|
|
207
227
|
"scripts/spec-gate.js",
|
|
228
|
+
"scripts/stripe-credentials.js",
|
|
208
229
|
"scripts/statusline-cache-read.js",
|
|
209
230
|
"scripts/statusline-cache-path.js",
|
|
210
231
|
"scripts/statusline-context.js",
|
|
@@ -227,6 +248,7 @@
|
|
|
227
248
|
"scripts/token-tco.js",
|
|
228
249
|
"scripts/tool-contract-validator.js",
|
|
229
250
|
"scripts/tool-registry.js",
|
|
251
|
+
"scripts/task-outcomes.js",
|
|
230
252
|
"scripts/upstream-contribution-engine.js",
|
|
231
253
|
"scripts/user-profile.js",
|
|
232
254
|
"scripts/validate-workflow-contract.js",
|
|
@@ -237,6 +259,7 @@
|
|
|
237
259
|
"scripts/visitor-journey.js",
|
|
238
260
|
"scripts/workflow-runs.js",
|
|
239
261
|
"scripts/workflow-sentinel.js",
|
|
262
|
+
"scripts/workflow-intake-queue.js",
|
|
240
263
|
"scripts/workspace-agent-routines.js",
|
|
241
264
|
"scripts/workspace-evolver.js",
|
|
242
265
|
"scripts/xmemory-lite.js",
|
|
@@ -247,6 +270,8 @@
|
|
|
247
270
|
".well-known/",
|
|
248
271
|
"LICENSE",
|
|
249
272
|
"README.md",
|
|
273
|
+
"docs/integrations/grafana/README.md",
|
|
274
|
+
"docs/integrations/grafana/thumbgate-revenue-evidence-dashboard.json",
|
|
250
275
|
"adapters/amp/skills/thumbgate-feedback/SKILL.md",
|
|
251
276
|
"adapters/claude/.mcp.json",
|
|
252
277
|
"adapters/codex/config.toml",
|
|
@@ -272,6 +297,7 @@
|
|
|
272
297
|
"public/about.html",
|
|
273
298
|
"public/agent-manager.html",
|
|
274
299
|
"public/blog.html",
|
|
300
|
+
"public/blog/",
|
|
275
301
|
"public/codex-enterprise.html",
|
|
276
302
|
"public/agents-cost-savings.html",
|
|
277
303
|
"public/ai-malpractice-prevention.html",
|
|
@@ -301,6 +327,9 @@
|
|
|
301
327
|
"src/"
|
|
302
328
|
],
|
|
303
329
|
"scripts": {
|
|
330
|
+
"canary:snapshot": "node scripts/gate-decision-canary.js --snapshot",
|
|
331
|
+
"canary:check": "node scripts/gate-decision-canary.js --check",
|
|
332
|
+
"test:canary": "node --test tests/gate-decision-canary.test.js",
|
|
304
333
|
"postinstall": "node bin/postinstall.js || true",
|
|
305
334
|
"start": "node src/api/server.js",
|
|
306
335
|
"numbers:generate": "node scripts/generate-numbers-page.js",
|
|
@@ -316,9 +345,12 @@
|
|
|
316
345
|
"verify:full": "node scripts/verify-run.js full",
|
|
317
346
|
"budget:status": "node scripts/budget-guard.js --status",
|
|
318
347
|
"revenue:status": "node scripts/revenue-status.js",
|
|
348
|
+
"revenue:intake-queue": "node scripts/workflow-intake-queue.js",
|
|
349
|
+
"revenue:offers": "node scripts/revenue-offer-system.js",
|
|
319
350
|
"revenue:truth": "bash bin/revenue-truth.sh",
|
|
320
351
|
"revenue:doctor": "node scripts/revenue-observability-doctor.js",
|
|
321
352
|
"revenue:plan": "node scripts/may-2026-revenue-machine.js",
|
|
353
|
+
"revenue:remediate": "node scripts/revenue-evidence-remediation.js",
|
|
322
354
|
"revenue:status:local": "node bin/cli.js cfo",
|
|
323
355
|
"revenue:repair:github-marketplace": "node bin/cli.js repair-github-marketplace --write",
|
|
324
356
|
"cfo:report": "node bin/cli.js cfo",
|
|
@@ -339,6 +371,7 @@
|
|
|
339
371
|
"medium:weekly:draft": "node scripts/medium-weekly.js --write",
|
|
340
372
|
"medium:weekly:schedule": "node scripts/medium-weekly.js --schedule",
|
|
341
373
|
"sales:pipeline": "node scripts/sales-pipeline.js",
|
|
374
|
+
"sales:reconcile-payment": "node scripts/provider-payment-reconciler.js",
|
|
342
375
|
"social:poll": "node scripts/social-analytics/poll-all.js",
|
|
343
376
|
"social:poll:github": "node scripts/social-analytics/pollers/github.js",
|
|
344
377
|
"social:poll:instagram": "node scripts/social-analytics/pollers/instagram.js",
|
|
@@ -368,6 +401,8 @@
|
|
|
368
401
|
"judge:reward:prompt": "node scripts/judge-reward-function.js prompt",
|
|
369
402
|
"llm:behavior": "node scripts/llm-behavior-monitor.js report",
|
|
370
403
|
"llm:behavior:json": "node scripts/llm-behavior-monitor.js json",
|
|
404
|
+
"eval:agent-outcomes": "node scripts/agent-outcome-eval.js",
|
|
405
|
+
"monitor:agent-outcomes": "node scripts/agent-outcome-monitor.js",
|
|
371
406
|
"prompt:plan": "node scripts/prompting-operating-system.js plan",
|
|
372
407
|
"prompt:plan:json": "node scripts/prompting-operating-system.js json",
|
|
373
408
|
"credentials:plan": "node scripts/single-use-credential-gate.js plan",
|
|
@@ -392,18 +427,26 @@
|
|
|
392
427
|
"social:prospect:bluesky": "node scripts/social-bluesky-prospecting.js",
|
|
393
428
|
"social:prospect:bluesky:dry": "node scripts/social-bluesky-prospecting.js --dry-run",
|
|
394
429
|
"social:reply-publish:bluesky:dry": "node scripts/social-reply-monitor-bluesky.js --publish-approved --dry-run",
|
|
395
|
-
"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:billing-setup && 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:platform-limits && npm run test:post-video && npm run test:post-everywhere-instagram && npm run test:post-everywhere-channels && 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:release-window && 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:entitlement && npm run test:export-dpo-pairs && npm run test:export-hf-dataset && npm run test:license && npm run test:imperative-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:sync-launch-assets && npm run test:ai-search-visibility && npm run test:perplexity && npm run test:xss-checkout-escape && 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:pack-runtime-integrity && npm run test:hook-self-protection && npm run test:self-protect-enforcement && npm run test:never-bypass-branch-protection && 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 && npm run test:memory-provider-enforcement-bridge && npm run test:publisher-credential-guards && npm run test:reddit-browser-notification-watch && npm run test:payment-rails && npm run test:service-checkout-price-integrity && npm run test:cursor-marketplace-doctor && npm run test:plugin-hooks-manifest && npm run test:okara-money-promo-automation",
|
|
430
|
+
"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:grafana-revenue-evidence && npm run test:billing && npm run test:billing-setup && 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:canary && 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:platform-limits && npm run test:post-video && npm run test:post-everywhere-instagram && npm run test:post-everywhere-channels && 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:release-window && 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:verification-evidence && 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:entitlement && npm run test:export-dpo-pairs && npm run test:export-hf-dataset && npm run test:license && npm run test:imperative-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:sync-launch-assets && npm run test:ai-search-visibility && npm run test:perplexity && npm run test:xss-checkout-escape && 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:stop-hook-json-contract && 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:jsonl-window && npm run test:observability-env && npm run test:public-bundle-ratchet && npm run test:pack-runtime-integrity && npm run test:hook-self-protection && npm run test:self-protect-enforcement && npm run test:never-bypass-branch-protection && 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 && npm run test:memory-provider-enforcement-bridge && npm run test:publisher-credential-guards && npm run test:reddit-browser-notification-watch && npm run test:payment-rails && npm run test:service-checkout-price-integrity && npm run test:cursor-marketplace-doctor && npm run test:plugin-hooks-manifest && npm run test:okara-money-promo-automation",
|
|
396
431
|
"test:python": "python3 -m pytest tests/*.py",
|
|
397
432
|
"test:check-update": "node --test tests/check-update.test.js",
|
|
398
433
|
"test:hook-stop-verify-deploy": "node --test tests/hook-stop-verify-deploy.test.js",
|
|
399
434
|
"test:hook-stop-anti-claim": "node --test tests/hook-stop-anti-claim.test.js",
|
|
435
|
+
"test:stop-hook-json-contract": "node --test tests/stop-hook-json-contract.test.js",
|
|
400
436
|
"test:plausible-server-events": "node --test tests/plausible-server-events.test.js tests/plausible-poller.test.js tests/plausible-domain-config.test.js",
|
|
401
437
|
"test:activation-tracker": "node --test tests/activation-tracker.test.js",
|
|
402
438
|
"test:activation-onboarding": "node --test tests/activation-onboarding.test.js",
|
|
403
439
|
"test:unified-revenue-rollup": "node --test tests/unified-revenue-rollup.test.js",
|
|
404
440
|
"test:conversion-rate-stats": "node --test tests/conversion-rate-stats.test.js",
|
|
405
|
-
"test:external-customer-audit": "node --test tests/external-customer-audit.test.js",
|
|
441
|
+
"test:external-customer-audit": "node --test tests/external-customer-audit*.test.js tests/stripe-revenue-catalog-audit.test.js tests/revenue-truth-workflow.test.js",
|
|
442
|
+
"test:revenue-truth-workflow": "node --test tests/revenue-truth-workflow.test.js",
|
|
443
|
+
"stripe:catalog-audit": "node scripts/stripe-revenue-catalog-audit.js --json",
|
|
406
444
|
"test:stripe-checkout-diagnostic": "node --test tests/stripe-checkout-diagnostic.test.js",
|
|
445
|
+
"test:revenue-offer-ladder": "node --test tests/revenue-offer-ladder.test.js",
|
|
446
|
+
"test:revenue-offer-system": "node --test tests/revenue-offer-system.test.js",
|
|
447
|
+
"test:revenue-action-eligibility": "node --test tests/revenue-action-eligibility.test.js tests/gtm-revenue-action-eligibility.test.js tests/github-outreach.test.js",
|
|
448
|
+
"test:public-enterprise-capability-boundary": "node --test tests/public-enterprise-capability-boundary.test.js",
|
|
449
|
+
"test:buyer-paths": "node --test tests/buyer-paths.test.js",
|
|
407
450
|
"test:stripe-business-identity-probe": "node --test tests/stripe-business-identity-probe.test.js",
|
|
408
451
|
"test:ci-cd-hygiene-audit": "node --test tests/ci-cd-hygiene-audit.test.js",
|
|
409
452
|
"test:telemetry-export": "node --test tests/telemetry-export.test.js tests/telemetry-analytics-quality.test.js",
|
|
@@ -429,7 +472,8 @@
|
|
|
429
472
|
"test:spec-gate": "node --test tests/spec-gate.test.js",
|
|
430
473
|
"test:dashboard-insights": "node --test tests/dashboard-insights.test.js",
|
|
431
474
|
"test:telemetry-tracked-link-slug": "node --test tests/telemetry-tracked-link-slug.test.js",
|
|
432
|
-
"test:prompt-eval": "node --test tests/prompt-eval.test.js",
|
|
475
|
+
"test:prompt-eval": "node --test tests/prompt-eval.test.js tests/verified-agent-outcomes.test.js tests/task-outcome-api.test.js",
|
|
476
|
+
"test:verified-agent-outcomes": "node --test tests/verified-agent-outcomes.test.js tests/task-outcome-api.test.js",
|
|
433
477
|
"eval:feedback": "node scripts/prompt-eval.js --from-feedback",
|
|
434
478
|
"eval:feedback-quality": "python3 scripts/feedback_quality_eval.py",
|
|
435
479
|
"eval:classifier": "python3 scripts/eval_gate_classifier.py",
|
|
@@ -480,6 +524,7 @@
|
|
|
480
524
|
"test:cloudflare-sandbox": "node --test tests/cloudflare-dynamic-sandbox.test.js tests/cloudflare-sandbox-api.test.js",
|
|
481
525
|
"test:mcp-config": "node --test tests/mcp-config.test.js tests/mcp-capability-exposure.test.js",
|
|
482
526
|
"test:mcp-tool-annotations": "node --test tests/mcp-tool-annotations.test.js",
|
|
527
|
+
"test:mcp-policy": "node --test tests/mcp-policy.test.js",
|
|
483
528
|
"test:mcp-oauth": "node --test tests/mcp-oauth.test.js",
|
|
484
529
|
"test:mcp-oauth-flow": "node --test tests/mcp-oauth-flow.test.js",
|
|
485
530
|
"test:plan-gate": "node --test tests/plan-gate.test.js",
|
|
@@ -515,15 +560,17 @@
|
|
|
515
560
|
"test:proof": "node --test tests/prove-adapters.test.js tests/prove-attribution.test.js tests/prove-cloudflare-sandbox.test.js tests/prove-data-quality.test.js tests/prove-intelligence.test.js tests/prove-lancedb.test.js tests/prove-loop-closure.test.js tests/prove-training-export.test.js tests/prove-local-intelligence.test.js tests/prove-workflow-contract.test.js tests/prove-autoresearch.test.js tests/prove-claim-verification.test.js tests/prove-data-pipeline.test.js tests/prove-evolution.test.js tests/prove-harnesses.test.js tests/prove-packaged-runtime.test.js tests/prove-runtime.test.js tests/prove-seo-gsd.test.js tests/prove-settings.test.js tests/prove-xmemory.test.js && node --test tests/prove-automation.test.js",
|
|
516
561
|
"test:e2e": "node --test tests/e2e-pipeline.test.js tests/e2e-product-flows.test.js tests/e2e-coverage-contract.test.js tests/interaction-model-e2e.test.js",
|
|
517
562
|
"test:rlaif": "node --test tests/rlaif-self-audit.test.js tests/dpo-optimizer.test.js tests/meta-policy.test.js tests/agent-reward-model.test.js",
|
|
518
|
-
"test:attribution": "node --test tests/feedback-attribution.test.js tests/hybrid-feedback-context.test.js",
|
|
563
|
+
"test:attribution": "node --test tests/feedback-attribution.test.js tests/hybrid-feedback-context.test.js tests/memory-guard-matching.test.js",
|
|
519
564
|
"test:quality": "node --test tests/validate-feedback.test.js tests/feedback-quality-eval-python.test.js tests/eval-gate-classifier.test.js",
|
|
520
565
|
"test:intelligence": "node --test tests/intelligence.test.js",
|
|
521
566
|
"test:training-export": "node --test tests/training-export.test.js tests/databricks-export.test.js",
|
|
522
|
-
"test:deployment": "node --test tests/deployment.test.js tests/deploy-policy.test.js tests/publish-decision.test.js tests/changeset-check.test.js tests/release-notes.test.js tests/sonarcloud-workflow.test.js tests/package-boundary.test.js tests/public-package-boundary.test.js tests/packed-feedback-retrieval-e2e.test.js",
|
|
567
|
+
"test:deployment": "node --test tests/deployment.test.js tests/deploy-policy.test.js tests/publish-decision.test.js tests/changeset-check.test.js tests/release-notes.test.js tests/sonarcloud-workflow.test.js tests/package-boundary.test.js tests/public-package-boundary.test.js tests/packed-feedback-retrieval-e2e.test.js tests/packed-provider-payment-reconciler-e2e.test.js tests/packed-revenue-remediation-e2e.test.js",
|
|
523
568
|
"test:operational-integrity": "node --test tests/operational-integrity.test.js tests/sync-branch-protection.test.js",
|
|
524
|
-
"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/apollo-acquisition.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",
|
|
525
|
-
"test:
|
|
526
|
-
"test:
|
|
569
|
+
"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/workflow-intake-queue.test.js tests/revenue-pack-utils.test.js tests/apollo-acquisition.test.js tests/sales-pipeline.test.js tests/provider-payment-reconciler.test.js tests/reddit-dm-outreach-evidence.test.js tests/gtm-sales-evidence-commands.test.js tests/revenue-action-eligibility.test.js tests/revenue-evidence-remediation.test.js tests/gtm-revenue-action-eligibility.test.js tests/revenue-offer-ladder.test.js tests/revenue-offer-system.test.js tests/buyer-paths.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",
|
|
570
|
+
"test:revenue-evidence-remediation": "node --test tests/revenue-evidence-remediation.test.js",
|
|
571
|
+
"test:grafana-revenue-evidence": "node --test tests/grafana-revenue-evidence.test.js",
|
|
572
|
+
"test:sales-pipeline": "node --test tests/sales-pipeline.test.js tests/provider-payment-reconciler.test.js tests/reddit-dm-outreach-evidence.test.js tests/gtm-sales-evidence-commands.test.js",
|
|
573
|
+
"test:billing": "node --test tests/billing.test.js tests/paypal-billing.test.js tests/stripe-sync-product-images.test.js tests/checkout-attribution-reference.test.js",
|
|
527
574
|
"test:billing-setup": "node --test tests/billing-setup-redaction.test.js",
|
|
528
575
|
"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/feedback-lesson-sanitization.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",
|
|
529
576
|
"test:evolution": "node --test tests/workspace-evolver.test.js",
|
|
@@ -532,7 +579,7 @@
|
|
|
532
579
|
"test:ops": "node --test tests/qa-scenario-planner.test.js tests/adk-consolidator.test.js tests/anthropic-partner-strategy.test.js tests/auto-promote-gates.test.js tests/auto-wire-hooks.test.js tests/claude-skill.test.js tests/codegraph-context.test.js tests/commercial-signals.test.js tests/decision-journal.test.js tests/delegation-runtime.test.js tests/disagreement-mining.test.js tests/failure-diagnostics.test.js tests/gate-stats.test.js tests/gates-engine-upgrade-cta.test.js tests/git-hook-installer.test.js tests/github-billing.test.js tests/intervention-policy.test.js tests/markdown-escape.test.js tests/mcp-tools-gates.test.js tests/native-messaging-audit.test.js tests/project-bayes-e2e.test.js tests/project-bayes.test.js tests/rate-limiter.test.js tests/schedule-manager.test.js tests/session-handoff.test.js tests/skill-generator.test.js tests/smart-learning.test.js tests/spike-and-sink.test.js tests/stripe-revenue.test.js tests/stripe-webhook-route.test.js tests/stripe-webhook-rotation.test.js tests/train-from-feedback.test.js tests/workflow-hardening-sprint.test.js tests/workflow-sentinel.test.js tests/test-suite-parity.test.js tests/a2ui-engine.test.js tests/webhook-delivery.test.js tests/auto-context-packs.test.js tests/daily-block-cap.test.js tests/auto-promote-regression-gate.test.js",
|
|
533
580
|
"test:session-analyzer": "node --test tests/session-analyzer.test.js",
|
|
534
581
|
"test:tessl": "node --test tests/tessl-export.test.js",
|
|
535
|
-
"test:gates": "node --test tests/gate-templates.test.js tests/gates-engine.test.js tests/claim-verification.test.js tests/secret-scanner.test.js tests/secret-fixture-safety.test.js tests/prompt-guard.test.js tests/audit-trail.test.js tests/profile-router.test.js tests/workflow-sentinel.test.js tests/docker-sandbox-planner.test.js tests/mcp-tools-suggest-fix.test.js tests/deny-network-egress-pattern.test.js",
|
|
582
|
+
"test:gates": "node --test --test-concurrency=1 tests/gate-templates.test.js tests/gates-engine.test.js tests/claim-verification.test.js tests/secret-scanner.test.js tests/secret-fixture-safety.test.js tests/prompt-guard.test.js tests/audit-trail.test.js tests/profile-router.test.js tests/workflow-sentinel.test.js tests/docker-sandbox-planner.test.js tests/mcp-tools-suggest-fix.test.js tests/deny-network-egress-pattern.test.js tests/git-pathspec-scope.test.js tests/git-global-option-bypass.test.js tests/gate-evasion-matrix.test.js",
|
|
536
583
|
"test:budget": "node --test tests/budget-guard.test.js tests/budget-enforcer.test.js tests/tokenomics-cost-guard.test.js tests/hook-no-budget-lockout.test.js",
|
|
537
584
|
"test:workers": "npm --prefix workers ci && npm --prefix workers test",
|
|
538
585
|
"test:evoskill": "node --test tests/evoskill.test.js",
|
|
@@ -640,12 +687,12 @@
|
|
|
640
687
|
"test:social-quality-gate": "node --test tests/social-quality-gate.test.js tests/validate-social-post.test.js",
|
|
641
688
|
"test:a2ui-engine": "node --test tests/a2ui-engine.test.js",
|
|
642
689
|
"test:gate-satisfy": "node --test tests/gate-satisfy.test.js",
|
|
643
|
-
"test:money-watcher": "node --test tests/money-watcher.test.js",
|
|
690
|
+
"test:money-watcher": "node --test tests/money-watcher.test.js tests/install-revenue-truth-automation.test.js",
|
|
644
691
|
"test:quick-start": "node --test tests/quick-start.test.js",
|
|
645
692
|
"test:utm": "node --test tests/utm.test.js",
|
|
646
693
|
"test:product-feedback": "node --test tests/product-feedback.test.js",
|
|
647
694
|
"test:feedback-root-consolidator": "node --test tests/feedback-root-consolidator.test.js",
|
|
648
|
-
"social:publish:launch": "node scripts/social-analytics/publish-thumbgate-launch.js",
|
|
695
|
+
"social:publish:launch": "node scripts/social-analytics/run-publish-thumbgate-launch.js",
|
|
649
696
|
"social:publish:latest-release-article": "node scripts/social-analytics/publish-latest-release-article.js",
|
|
650
697
|
"social:publish:latest-release-fallbacks": "node scripts/social-analytics/publish-latest-release-fallbacks.js",
|
|
651
698
|
"social:verify:latest-release": "node scripts/social-analytics/verify-latest-release-posts.js",
|
|
@@ -710,11 +757,12 @@
|
|
|
710
757
|
"gate-eval:ci": "node scripts/gate-eval.js run",
|
|
711
758
|
"test:ai-engineering-stack-guardrails": "node --test tests/ai-engineering-stack-guardrails.test.js",
|
|
712
759
|
"test:ai-component-inventory": "node --test tests/ai-component-inventory.test.js",
|
|
760
|
+
"test:verification-evidence": "node --test tests/verification-evidence.test.js",
|
|
713
761
|
"test:interaction-model": "node --test tests/interaction-model.test.js tests/interaction-model-e2e.test.js",
|
|
714
762
|
"aws-blocks:guardrails": "node scripts/aws-blocks-guardrails.js",
|
|
715
763
|
"test:aws-blocks-guardrails": "node --test tests/aws-blocks-guardrails.test.js",
|
|
716
764
|
"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 tests/agent-operations-planner.test.js tests/aws-blocks-guardrails.test.js",
|
|
717
|
-
"test:public-static-assets": "node --test tests/public-static-assets.test.js",
|
|
765
|
+
"test:public-static-assets": "node --test tests/public-static-assets.test.js tests/public-checkout-intent-gate.test.js tests/public-enterprise-capability-boundary.test.js",
|
|
718
766
|
"test:token-savings": "node --test tests/token-savings.test.js",
|
|
719
767
|
"test:cost-cli": "node --test tests/cost-cli.test.js tests/conversion-receipt.test.js",
|
|
720
768
|
"test:numbers-page": "node --test tests/numbers-page.test.js",
|
|
@@ -729,7 +777,7 @@
|
|
|
729
777
|
"test:e2e:playwright:headed": "playwright test --headed",
|
|
730
778
|
"test:e2e:playwright:ui": "playwright test --ui",
|
|
731
779
|
"test:e2e:playwright:report": "playwright show-report",
|
|
732
|
-
"test:public-package-parity": "node --test tests/public-package-parity.test.js",
|
|
780
|
+
"test:public-package-parity": "node --test tests/public-package-parity.test.js tests/blog-hub.test.js",
|
|
733
781
|
"prepare": "bash bin/install-hooks.sh >/dev/null 2>&1 || true",
|
|
734
782
|
"install:hooks": "bash bin/install-hooks.sh",
|
|
735
783
|
"test:token-savings-dashboard": "node --test tests/token-savings-dashboard.test.js",
|
|
@@ -786,7 +834,11 @@
|
|
|
786
834
|
"test:self-protect-enforcement": "node --test tests/self-protect-enforcement.test.js",
|
|
787
835
|
"test:pack-runtime-integrity": "node --test tests/pack-runtime-integrity.test.js",
|
|
788
836
|
"test:entitlement": "node --test tests/entitlement.test.js",
|
|
789
|
-
"test:xss-checkout-escape": "node --test tests/xss-checkout-escape.test.js"
|
|
837
|
+
"test:xss-checkout-escape": "node --test tests/xss-checkout-escape.test.js",
|
|
838
|
+
"observability:setup": "node scripts/observability-setup.js",
|
|
839
|
+
"observability:doctor": "node scripts/revenue-observability-doctor.js",
|
|
840
|
+
"test:jsonl-window": "node --test tests/jsonl-window.test.js",
|
|
841
|
+
"test:observability-env": "node --test tests/observability-env.test.js"
|
|
790
842
|
},
|
|
791
843
|
"keywords": [
|
|
792
844
|
"mcp",
|
|
@@ -843,26 +895,27 @@
|
|
|
843
895
|
"dependencies": {
|
|
844
896
|
"@anthropic-ai/sdk": "0.102.0",
|
|
845
897
|
"@google/genai": "2.7.0",
|
|
846
|
-
"@huggingface/transformers": "^4.2.0",
|
|
847
898
|
"@lancedb/lancedb": "^0.30.0",
|
|
848
899
|
"apache-arrow": "^18.1.0",
|
|
849
900
|
"better-sqlite3": "^12.9.0",
|
|
850
901
|
"dotenv": "^17.4.2",
|
|
851
902
|
"playwright-core": "^1.59.1",
|
|
852
|
-
"protobufjs": "^8.
|
|
903
|
+
"protobufjs": "^8.7.1",
|
|
853
904
|
"stripe": "^22.2.0"
|
|
854
905
|
},
|
|
855
906
|
"overrides": {
|
|
907
|
+
"adm-zip": "0.6.0",
|
|
856
908
|
"@google/genai": {
|
|
857
|
-
"protobufjs": "7.6.
|
|
909
|
+
"protobufjs": "7.6.5"
|
|
858
910
|
},
|
|
911
|
+
"brace-expansion": "5.0.8",
|
|
859
912
|
"onnxruntime-web": {
|
|
860
|
-
"protobufjs": "7.6.
|
|
913
|
+
"protobufjs": "7.6.5"
|
|
861
914
|
},
|
|
862
915
|
"express@4.22.1": {
|
|
863
916
|
"path-to-regexp": "0.1.13"
|
|
864
917
|
},
|
|
865
|
-
"js-yaml": "4.
|
|
918
|
+
"js-yaml": "4.3.0"
|
|
866
919
|
},
|
|
867
920
|
"mcpName": "io.github.IgorGanapolsky/thumbgate",
|
|
868
921
|
"devDependencies": {
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"name": "How does ThumbGate help the Agent Manager?",
|
|
47
47
|
"acceptedAnswer": {
|
|
48
48
|
"@type": "Answer",
|
|
49
|
-
"text": "ThumbGate is the pre-action enforcement layer under the role. It runs PreToolUse hooks, distills repeated thumbs-down feedback into CLAUDE.md rules, and shows the rule plus evidence on each block. Pro keeps personal recall, exports, dashboard proof, and adapters maintained
|
|
49
|
+
"text": "ThumbGate is the pre-action enforcement layer under the role. It runs PreToolUse hooks, distills repeated thumbs-down feedback into CLAUDE.md rules, and shows the rule plus evidence on each block. Pro keeps personal recall, exports, personal dashboard proof, and adapters maintained. Enterprise service work is qualified after intake; an org-wide hosted rule library and hosted dashboard are not generally available."
|
|
50
50
|
}
|
|
51
51
|
},
|
|
52
52
|
{
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"name": "Is ThumbGate free for the Agent Manager to start?",
|
|
55
55
|
"acceptedAnswer": {
|
|
56
56
|
"@type": "Answer",
|
|
57
|
-
"text": "Yes. npx thumbgate init in one repo is free and MIT licensed, and gates work locally without a hosted account. Pro adds personal recall, dashboard proof, DPO/HuggingFace export, and managed adapters. Enterprise
|
|
57
|
+
"text": "Yes. npx thumbgate init in one repo is free and MIT licensed, and gates work locally without a hosted account. Pro adds personal recall, personal dashboard proof, DPO/HuggingFace export, and managed adapters. Enterprise service work can add scoped rollout support after intake; a hosted org dashboard and org-wide hosted rule library are not generally available."
|
|
58
58
|
}
|
|
59
59
|
},
|
|
60
60
|
{
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
<a href="/" class="brand">ThumbGate</a>
|
|
99
99
|
<a href="/guide">Guide</a>
|
|
100
100
|
<a href="/dashboard">Dashboard demo</a>
|
|
101
|
-
<a href="
|
|
101
|
+
<a href="/diagnostic">Managed workflow gate</a>
|
|
102
102
|
<a href="https://github.com/IgorGanapolsky/ThumbGate" target="_blank" rel="noopener">GitHub</a>
|
|
103
103
|
</nav>
|
|
104
104
|
<div class="container">
|
|
@@ -112,7 +112,7 @@
|
|
|
112
112
|
<tbody>
|
|
113
113
|
<tr>
|
|
114
114
|
<td><strong>CLAUDE.md hierarchy</strong><br>Keeping the policy that the model reads on every session current and consistent across repos.</td>
|
|
115
|
-
<td>Prevention rules distilled from repeated real <code>👎</code> feedback and written into <code>CLAUDE.md</code> by <code>scripts/feedback-to-rules.js</code>.
|
|
115
|
+
<td>Prevention rules distilled from repeated real <code>👎</code> feedback and written into <code>CLAUDE.md</code> by <code>scripts/feedback-to-rules.js</code>. A hosted org-wide rule library is not generally available.</td>
|
|
116
116
|
</tr>
|
|
117
117
|
<tr>
|
|
118
118
|
<td><strong>Plugin marketplace</strong><br>Deciding which Claude Code / Cursor / Codex plugins are blessed and which are not.</td>
|
|
@@ -128,7 +128,7 @@
|
|
|
128
128
|
</tr>
|
|
129
129
|
<tr>
|
|
130
130
|
<td><strong>Keep them current</strong><br>When Claude Code ships a breaking change to hooks or to the plugin API, your rollout cannot wait a quarter.</td>
|
|
131
|
-
<td>
|
|
131
|
+
<td>Managed adapter maintenance for the supported personal runtime surfaces. Enterprise service work is fixed in a signed scope; it is not an unbounded hosted operator or 24×7 incident-response promise.</td>
|
|
132
132
|
</tr>
|
|
133
133
|
</tbody>
|
|
134
134
|
</table>
|
|
@@ -145,11 +145,11 @@
|
|
|
145
145
|
</div>
|
|
146
146
|
<div class="card">
|
|
147
147
|
<h3>Phase 2 — Rollout lands</h3>
|
|
148
|
-
<p>
|
|
148
|
+
<p>This is where the Agent Manager becomes a named role. The $499 Enterprise Workflow Gate scopes one repeated failure into one configured local gate, its regression test, and rollout and rollback proof. A hosted dashboard and org-wide hosted rule library are not generally available.</p>
|
|
149
149
|
</div>
|
|
150
150
|
<div class="card">
|
|
151
151
|
<h3>Phase 3 — Adoption spreads</h3>
|
|
152
|
-
<p>The team becomes the harness. The Agent Manager stops being a bottleneck because the policy enforces itself at the tool-call boundary.
|
|
152
|
+
<p>The team becomes the harness. The Agent Manager stops being a bottleneck because the policy enforces itself at the tool-call boundary. The configured gate and regression test keep the proven workflow from drifting as adoption spreads.</p>
|
|
153
153
|
</div>
|
|
154
154
|
</div>
|
|
155
155
|
|
|
@@ -157,14 +157,13 @@
|
|
|
157
157
|
<ol>
|
|
158
158
|
<li><strong>Install free.</strong> <code>npx thumbgate init</code> in one repo. Captures thumbs-up/down feedback locally; auto-promotes repeated failures into prevention rules.</li>
|
|
159
159
|
<li><strong>Wire one Pre-Action Check.</strong> Pick the most-repeated agent mistake your org has felt this month. Promote that one to a rule. Watch the next attempt get flagged and logged at the tool-call boundary (and hard-blocked under strict enforcement), with the rule that fired in the agent's reasoning trace.</li>
|
|
160
|
-
<li><strong>
|
|
160
|
+
<li><strong>Buy the $499 Enterprise Workflow Gate.</strong> Bring one repeated failure. Leave with one configured local gate, its regression test, and written rollout and rollback proof within two business days after access and the agreed workflow materials are available.</li>
|
|
161
161
|
</ol>
|
|
162
162
|
|
|
163
163
|
<div class="card">
|
|
164
|
-
<p><strong>Anthropic named the role. ThumbGate is the runtime that role needs.</strong> The free CLI is real, MIT-licensed, and
|
|
164
|
+
<p><strong>Anthropic named the role. ThumbGate is the runtime that role needs.</strong> The free CLI is real, MIT-licensed, and works locally. The $499 Enterprise Workflow Gate is the single managed entry offer for one supported workflow.</p>
|
|
165
165
|
<p>
|
|
166
|
-
<a href="
|
|
167
|
-
<a href="/checkout/pro?utm_source=website&utm_medium=agent_manager_page&utm_campaign=pro_upgrade&cta_id=agent_manager_pro_checkout&cta_placement=agent_manager_page&plan_id=pro" class="secondary">Or start Pro at $19/mo →</a>
|
|
166
|
+
<a href="/diagnostic" class="cta">Get the managed workflow gate</a>
|
|
168
167
|
</p>
|
|
169
168
|
</div>
|
|
170
169
|
|
|
@@ -131,9 +131,9 @@ npx thumbgate cost # see what the gates were worth</code></pre>
|
|
|
131
131
|
<div class="quote">"The category isn't 'FinOps for AI' — it's 'gates that stop the spend so FinOps has less to report on.' One sits behind the other."</div>
|
|
132
132
|
|
|
133
133
|
<div class="card">
|
|
134
|
-
<p><strong>The free CLI is real. Pro adds the personal dashboard, recall, exports, and managed adapters. Enterprise is
|
|
134
|
+
<p><strong>The free CLI is real. Pro adds the personal local dashboard, recall, exports, and managed adapters. Enterprise service work is qualified and signed after intake around local workflow controls; a hosted org dashboard and org-wide hosted rule library are not generally available.</strong></p>
|
|
135
135
|
<p>
|
|
136
|
-
<a href="
|
|
136
|
+
<a href="/diagnostic?utm_source=website&utm_medium=agents_cost_savings_page&utm_campaign=managed_workflow_gate&cta_id=agents_cost_savings_managed_gate&cta_placement=agents_cost_savings_page" class="cta">Get the managed workflow gate</a>
|
|
137
137
|
<a href="/checkout/pro?utm_source=website&utm_medium=agents_cost_savings_page&utm_campaign=pro_upgrade&cta_id=agents_cost_savings_pro_checkout&cta_placement=agents_cost_savings_page&plan_id=pro" class="secondary">Or start Pro at $19/mo →</a>
|
|
138
138
|
</p>
|
|
139
139
|
</div>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 360" role="img" aria-labelledby="tg-logo-transparent-title tg-logo-transparent-desc">
|
|
2
2
|
<title id="tg-logo-transparent-title">ThumbGate</title>
|
|
3
|
-
<desc id="tg-logo-transparent-desc">Transparent ThumbGate sponsor logo with
|
|
3
|
+
<desc id="tg-logo-transparent-desc">Transparent ThumbGate sponsor logo with the canonical TG gate monogram and wordmark for dark or colored event backgrounds.</desc>
|
|
4
4
|
<defs>
|
|
5
5
|
<linearGradient id="tg-logo-transparent-frame" x1="64" y1="72" x2="288" y2="296" gradientUnits="userSpaceOnUse">
|
|
6
6
|
<stop offset="0" stop-color="#8cf5d1"/>
|
|
@@ -12,16 +12,11 @@
|
|
|
12
12
|
</defs>
|
|
13
13
|
<g filter="url(#tg-logo-transparent-glow)">
|
|
14
14
|
<rect x="66" y="66" width="228" height="228" rx="54" fill="#061015" fill-opacity="0.78"/>
|
|
15
|
-
<
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
<!-- Proportional Thumbs Up -->
|
|
21
|
-
<g transform="translate(19, 17) scale(1.1)" stroke="#8cf5d1" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" fill="none">
|
|
22
|
-
<path d="M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3"/>
|
|
23
|
-
</g>
|
|
24
|
-
</g>
|
|
15
|
+
<rect x="91" y="91" width="178" height="178" rx="44" fill="#0b1820" stroke="url(#tg-logo-transparent-frame)" stroke-width="10"/>
|
|
16
|
+
<path d="M120 142V208c0 25 18 43 43 43h34c25 0 43-18 43-43v-66c0-25-18-43-43-43h-34c-25 0-43 18-43 43Z"
|
|
17
|
+
fill="none" stroke="#8cf5d1" stroke-width="12" stroke-linecap="round" stroke-linejoin="round"/>
|
|
18
|
+
<text x="133" y="207" fill="#f4fdff" font-family="Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Arial, sans-serif" font-size="67" font-weight="900">TG</text>
|
|
19
|
+
<rect x="120" y="240" width="120" height="12" rx="6" fill="#22d3ee"/>
|
|
25
20
|
</g>
|
|
26
21
|
<text x="340" y="178" fill="#f4fdff" font-family="Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Arial, sans-serif" font-size="82" font-weight="900">ThumbGate</text>
|
|
27
22
|
<text x="344" y="235" fill="#9ca3af" font-family="Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Arial, sans-serif" font-size="30" font-weight="600">Pre-Action Gates for AI coding agents</text>
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-labelledby="tg-inline-title tg-inline-desc">
|
|
2
2
|
<title id="tg-inline-title">ThumbGate</title>
|
|
3
|
-
<desc id="tg-inline-desc">ThumbGate
|
|
3
|
+
<desc id="tg-inline-desc">ThumbGate TG gate monogram mark for inline site headers. Matches the Stripe product icon family — inset frame, arched gate, bold TG, threshold bar. Transparent backdrop for dark headers.</desc>
|
|
4
4
|
<defs>
|
|
5
|
-
<linearGradient id="tg-inline-
|
|
5
|
+
<linearGradient id="tg-inline-ring" x1="12" y1="12" x2="52" y2="52" gradientUnits="userSpaceOnUse">
|
|
6
6
|
<stop offset="0" stop-color="#8cf5d1"/>
|
|
7
7
|
<stop offset="1" stop-color="#22d3ee"/>
|
|
8
8
|
</linearGradient>
|
|
9
9
|
</defs>
|
|
10
|
-
<!--
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
<!-- Transparent backdrop for dark headers; no full-canvas opaque tile -->
|
|
11
|
+
<!-- Outer gate frame (stroke only — no fill so header stays transparent) -->
|
|
12
|
+
<rect x="8" y="8" width="48" height="48" rx="12" fill="none" stroke="url(#tg-inline-ring)" stroke-width="2.5"/>
|
|
13
|
+
<!-- Arched gate opening (same geometry family as Stripe / app-icon mark) -->
|
|
14
|
+
<path d="M18 44V24c0-4.5 3.6-8.1 8.1-8.1h11.8c4.5 0 8.1 3.6 8.1 8.1v20" fill="none" stroke="#8cf5d1" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
15
|
+
<!-- TG monogram -->
|
|
16
|
+
<text x="32" y="38" text-anchor="middle" font-family="Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Arial, sans-serif" font-size="16" font-weight="900" fill="#e7fbff" letter-spacing="-1">TG</text>
|
|
17
|
+
<!-- Gate threshold bar -->
|
|
18
|
+
<rect x="17" y="42" width="30" height="3.5" rx="1.75" fill="#22d3ee"/>
|
|
18
19
|
</svg>
|
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" role="img" aria-labelledby="title desc">
|
|
2
2
|
<title id="title">ThumbGate mark</title>
|
|
3
|
-
<desc id="desc">
|
|
3
|
+
<desc id="desc">ThumbGate TG gate monogram app icon. Matches the Stripe product image family used on Checkout — dark tile, inset frame, arched gate, bold TG, threshold bar.</desc>
|
|
4
4
|
<defs>
|
|
5
5
|
<linearGradient id="tg-frame" x1="96" y1="96" x2="416" y2="416" gradientUnits="userSpaceOnUse">
|
|
6
6
|
<stop offset="0" stop-color="#8cf5d1"/>
|
|
7
7
|
<stop offset="1" stop-color="#22d3ee"/>
|
|
8
8
|
</linearGradient>
|
|
9
9
|
</defs>
|
|
10
|
+
<!-- App-icon tile (full dark rounded square) for favicon / apple-touch / PWA / Stripe -->
|
|
10
11
|
<rect width="512" height="512" rx="112" fill="#061015"/>
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
</g>
|
|
20
|
-
</g>
|
|
12
|
+
<!-- Outer gate frame (inset filled panel + stroke) -->
|
|
13
|
+
<rect x="78" y="78" width="356" height="356" rx="84" fill="#0b1820" stroke="url(#tg-frame)" stroke-width="18"/>
|
|
14
|
+
<!-- Arched gate opening -->
|
|
15
|
+
<path d="M146 354V192c0-36 29-65 65-65h90c36 0 65 29 65 65v162" fill="none" stroke="#8cf5d1" stroke-width="28" stroke-linecap="round" stroke-linejoin="round"/>
|
|
16
|
+
<!-- TG monogram -->
|
|
17
|
+
<text x="256" y="310" text-anchor="middle" fill="#e7fbff" font-family="Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Arial, sans-serif" font-size="132" font-weight="900" letter-spacing="-8">TG</text>
|
|
18
|
+
<!-- Gate threshold bar -->
|
|
19
|
+
<rect x="140" y="344" width="232" height="28" rx="14" fill="#22d3ee"/>
|
|
21
20
|
</svg>
|