thumbgate 1.27.6 → 1.27.7
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/thumbgate-blocked.md +27 -0
- package/.claude/commands/thumbgate-doctor.md +30 -0
- package/.claude/commands/thumbgate-guard.md +36 -0
- package/.claude/commands/thumbgate-protect.md +30 -0
- package/.claude/commands/thumbgate-rules.md +30 -0
- package/.claude-plugin/plugin.json +1 -1
- package/.well-known/llms.txt +6 -2
- package/.well-known/mcp/server-card.json +1 -1
- package/README.md +49 -5
- package/adapters/claude/.mcp.json +2 -2
- package/adapters/letta/README.md +41 -0
- package/adapters/letta/thumbgate-letta-adapter.js +133 -0
- package/adapters/mcp/server-stdio.js +16 -1
- package/adapters/opencode/opencode.json +1 -1
- package/adapters/policy-engine/ethicore-guardian-client.js +68 -0
- package/adapters/policy-engine/thumbgate-policy-engine-adapter.js +260 -0
- package/bench/observability-eval-suite.json +26 -0
- package/bin/cli.js +180 -2
- package/bin/postinstall.js +1 -1
- package/config/gate-templates.json +84 -0
- package/config/gates/claim-verification.json +6 -0
- package/config/gates/default.json +20 -0
- package/config/github-about.json +1 -1
- package/config/model-candidates.json +50 -0
- package/package.json +65 -25
- package/public/agent-manager.html +41 -1
- package/public/agents-cost-savings.html +1 -1
- package/public/ai-malpractice-prevention.html +2 -1
- package/public/assets/brand/github-social-preview.png +0 -0
- package/public/assets/brand/thumbgate-icon-512.png +0 -0
- package/public/assets/brand/thumbgate-icon-pro-512.png +0 -0
- package/public/assets/brand/thumbgate-icon-team-512.png +0 -0
- package/public/assets/brand/thumbgate-logo-1200x360.png +0 -0
- package/public/assets/brand/thumbgate-mark-inline.svg +15 -0
- package/public/assets/brand/thumbgate-mark-pro.svg +23 -0
- package/public/assets/brand/thumbgate-mark-team.svg +26 -0
- package/public/assets/brand/thumbgate-mark.svg +15 -0
- package/public/assets/brand/thumbgate-wordmark.svg +20 -0
- package/public/assets/claude-thumbgate-statusbar.svg +8 -0
- package/public/assets/codex-thumbgate-statusbar-test.svg +9 -0
- package/public/assets/legal-intake-control-flow.svg +66 -0
- package/public/blog.html +1 -1
- package/public/brand/thumbgate-mark.svg +15 -0
- package/public/brand/thumbgate-og.svg +16 -0
- package/public/codex-enterprise.html +1 -1
- package/public/codex-plugin.html +1 -1
- package/public/compare.html +23 -3
- package/public/dashboard.html +312 -30
- package/public/federal.html +1 -1
- package/public/guide.html +5 -4
- package/public/index.html +167 -49
- package/public/js/buyer-intent.js +672 -0
- package/public/learn.html +74 -7
- package/public/lessons.html +2 -1
- package/public/numbers.html +3 -3
- package/public/pricing.html +63 -15
- package/public/pro.html +7 -7
- package/scripts/activation-quickstart.js +187 -0
- package/scripts/agent-memory-lifecycle.js +211 -0
- package/scripts/async-eval-observability.js +236 -0
- package/scripts/auto-promote-gates.js +75 -4
- package/scripts/build-metadata.js +24 -3
- package/scripts/cli-schema.js +22 -0
- package/scripts/dashboard-chat.js +2 -1
- package/scripts/dashboard.js +8 -0
- package/scripts/export-databricks-bundle.js +5 -1
- package/scripts/export-dpo-pairs.js +7 -2
- package/scripts/feedback-aggregate.js +281 -0
- package/scripts/feedback-loop.js +34 -0
- package/scripts/filesystem-search.js +35 -10
- package/scripts/gates-engine.js +198 -6
- package/scripts/gemini-embedding-policy.js +2 -1
- package/scripts/hook-stop-anti-claim.js +227 -0
- package/scripts/hook-thumbgate-cache-updater.js +18 -2
- package/scripts/lesson-inference.js +8 -3
- package/scripts/lesson-search.js +17 -1
- package/scripts/operational-integrity.js +39 -5
- package/scripts/plausible-domain-config.js +4 -2
- package/scripts/rate-limiter.js +12 -6
- package/scripts/secret-redaction.js +166 -0
- package/scripts/security-scanner.js +100 -0
- package/scripts/self-distill-agent.js +3 -1
- package/scripts/self-harness-optimizer.js +141 -0
- package/scripts/seo-gsd.js +635 -0
- package/scripts/statusline-cache-path.js +17 -2
- package/scripts/statusline-cache-read.js +57 -0
- package/scripts/statusline-local-stats.js +9 -1
- package/scripts/statusline-meta.js +5 -2
- package/scripts/statusline.sh +13 -1
- package/scripts/sync-telemetry-from-prod.js +374 -0
- package/scripts/telemetry-analytics.js +9 -0
- package/scripts/thumbgate-search.js +85 -19
- package/scripts/tool-contract-validator.js +76 -0
- package/scripts/vector-store.js +44 -0
- package/scripts/workspace-evolver.js +62 -2
- package/src/api/server.js +715 -86
|
@@ -377,6 +377,26 @@
|
|
|
377
377
|
"message": "Self-protection: agent cannot modify hook registrations.",
|
|
378
378
|
"severity": "critical",
|
|
379
379
|
"compliance": ["NIST-AC-3", "OWASP-A01", "SOC2-CC6.1"]
|
|
380
|
+
},
|
|
381
|
+
{
|
|
382
|
+
"id": "on-demand-careful-mode",
|
|
383
|
+
"layer": "Execution",
|
|
384
|
+
"toolNames": ["Bash"],
|
|
385
|
+
"pattern": "(rm\\s+-rf|drop\\s+table|force-push|git\\s+push\\s+-[fF]|git\\s+push\\s+--force|kubectl\\s+delete)",
|
|
386
|
+
"action": "block",
|
|
387
|
+
"when": { "constraints": { "careful_mode": true } },
|
|
388
|
+
"message": "Careful mode is active. Dangerous command is blocked.",
|
|
389
|
+
"severity": "critical"
|
|
390
|
+
},
|
|
391
|
+
{
|
|
392
|
+
"id": "on-demand-freeze-mode",
|
|
393
|
+
"layer": "Decisions",
|
|
394
|
+
"toolNames": ["Edit", "Write", "MultiEdit"],
|
|
395
|
+
"pattern": ".*",
|
|
396
|
+
"action": "block",
|
|
397
|
+
"when": { "constraints": { "freeze_mode": true } },
|
|
398
|
+
"message": "Freeze mode is active. Edits outside the frozen directory are blocked.",
|
|
399
|
+
"severity": "high"
|
|
380
400
|
}
|
|
381
401
|
]
|
|
382
402
|
}
|
package/config/github-about.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"repositoryUrl": "https://github.com/IgorGanapolsky/ThumbGate",
|
|
4
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
|
-
"metaDescription": "
|
|
6
|
+
"metaDescription": "Stripe Connect integration engineering for ticketing and marketplace platforms — Pretix plugin shipped to Hilltown Media. ThumbGate is also the pre-action governance runtime for AI coding agents (Claude Code, Cursor, Codex, Gemini CLI): 👍 thumbs up and 👎 thumbs down feedback become history-aware lessons, shared lessons and org visibility, and PreToolUse checks that block repeated mistakes before code, money, or customer systems change. Perfect for vibe coding and human-in-the-loop workflows.",
|
|
7
7
|
"topics": [
|
|
8
8
|
"thumbgate",
|
|
9
9
|
"pre-action-checks",
|
|
@@ -116,6 +116,23 @@
|
|
|
116
116
|
"medianLatencyMs",
|
|
117
117
|
"memoryBandwidthEstimate"
|
|
118
118
|
]
|
|
119
|
+
},
|
|
120
|
+
"self-improving-agent-skill-synthesis": {
|
|
121
|
+
"label": "Self-improving agent skill synthesis",
|
|
122
|
+
"summary": "Evaluate models on their ability to self-improve, generate safe Markdown skills, and correctly check synthesized skills against existing gate/prevention rules.",
|
|
123
|
+
"desiredStrengths": ["agentic-coding", "tool-use", "self-evolving", "skill-synthesis", "reliability"],
|
|
124
|
+
"targetContextWindow": 128000,
|
|
125
|
+
"benchmarkCommands": [
|
|
126
|
+
"npx thumbgate eval --from-feedback --json --min-score=0",
|
|
127
|
+
"node scripts/gate-eval.js run"
|
|
128
|
+
],
|
|
129
|
+
"metrics": [
|
|
130
|
+
"passRate",
|
|
131
|
+
"skillSafetyCheckAccuracy",
|
|
132
|
+
"ruleBypassDetectionRate",
|
|
133
|
+
"medianLatencyMs",
|
|
134
|
+
"costPerEvolutionUsd"
|
|
135
|
+
]
|
|
119
136
|
}
|
|
120
137
|
},
|
|
121
138
|
"candidates": [
|
|
@@ -279,6 +296,39 @@
|
|
|
279
296
|
"costClass": "medium",
|
|
280
297
|
"strengths": ["agentic-coding", "tool-use", "dynamic-tool-creation", "screen-interaction", "on-prem", "self-evolving"],
|
|
281
298
|
"notes": "Nvidia OpenShell runtime for autonomous self-evolving claw-style agents (basis for Automation Anywhere EnterpriseClaw). Run locally/on-prem. ThumbGate provides the missing governance layer (gates, feedback, rules). Use with hybrid local-cloud for full enterprise deployment."
|
|
299
|
+
},
|
|
300
|
+
{
|
|
301
|
+
"id": "nousresearch/hermes-3-llama-3.1-70b",
|
|
302
|
+
"vendor": "Nous Research",
|
|
303
|
+
"family": "hermes",
|
|
304
|
+
"provider": "openrouter",
|
|
305
|
+
"model": "hermes-3-llama-3.1-70b",
|
|
306
|
+
"contextWindow": 128000,
|
|
307
|
+
"costClass": "medium",
|
|
308
|
+
"strengths": ["agentic-coding", "tool-use", "self-evolving", "skill-synthesis", "multi-platform", "reasoning"],
|
|
309
|
+
"notes": "Nous Research's Hermes 3 model family, optimized for autonomous reasoning, tool-use, and self-improvement loops. Benchmark KV caching, trace-length constraints, and dynamic skill synthesis validation rules before deploying."
|
|
310
|
+
},
|
|
311
|
+
{
|
|
312
|
+
"id": "anthropic/claude-opus-4-8",
|
|
313
|
+
"vendor": "Anthropic",
|
|
314
|
+
"family": "claude",
|
|
315
|
+
"provider": "anthropic",
|
|
316
|
+
"model": "claude-opus-4.8",
|
|
317
|
+
"contextWindow": 200000,
|
|
318
|
+
"costClass": "high",
|
|
319
|
+
"strengths": ["agentic-coding", "tool-use", "reliability", "long-context", "long-horizon-coding", "multi-agent"],
|
|
320
|
+
"notes": "Frontier coding model with 56.7 Coding Index. Grew 140% WoW on OpenRouter to 1.33T tokens. Ideal for long trace reviews and complex reasoning steps, despite higher latency and cost."
|
|
321
|
+
},
|
|
322
|
+
{
|
|
323
|
+
"id": "google/gemini-3.1-pro-preview",
|
|
324
|
+
"vendor": "Google",
|
|
325
|
+
"family": "gemini",
|
|
326
|
+
"provider": "google",
|
|
327
|
+
"model": "gemini-3.1-pro-preview",
|
|
328
|
+
"contextWindow": 2000000,
|
|
329
|
+
"costClass": "medium",
|
|
330
|
+
"strengths": ["agentic-coding", "tool-use", "reliability", "long-context", "data-analysis", "cost-efficiency"],
|
|
331
|
+
"notes": "Google's 3.1 Pro Preview model with 55.5 Coding Index and massive 2M token context window. Strong choice for complex RAG tasks, repository-scale auditing, and long-context trace analysis."
|
|
282
332
|
}
|
|
283
333
|
]
|
|
284
334
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "thumbgate",
|
|
3
|
-
"version": "1.27.
|
|
3
|
+
"version": "1.27.7",
|
|
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": {
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
"files": [
|
|
19
19
|
"scripts/access-anomaly-detector.js",
|
|
20
20
|
"scripts/action-receipts.js",
|
|
21
|
+
"scripts/activation-quickstart.js",
|
|
21
22
|
"scripts/activation-tracker.js",
|
|
22
23
|
"scripts/agent-audit-trace.js",
|
|
23
24
|
"scripts/agent-design-governance.js",
|
|
@@ -33,6 +34,7 @@
|
|
|
33
34
|
"scripts/ai-engineering-stack-guardrails.js",
|
|
34
35
|
"scripts/ai-search-distribution.js",
|
|
35
36
|
"scripts/analytics-window.js",
|
|
37
|
+
"scripts/async-eval-observability.js",
|
|
36
38
|
"scripts/async-job-runner.js",
|
|
37
39
|
"scripts/audit-trail.js",
|
|
38
40
|
"scripts/audit.js",
|
|
@@ -84,6 +86,7 @@
|
|
|
84
86
|
"scripts/export-dpo-pairs.js",
|
|
85
87
|
"scripts/export-hf-dataset.js",
|
|
86
88
|
"scripts/failure-diagnostics.js",
|
|
89
|
+
"scripts/feedback-aggregate.js",
|
|
87
90
|
"scripts/feedback-attribution.js",
|
|
88
91
|
"scripts/feedback-loop.js",
|
|
89
92
|
"scripts/feedback-paths.js",
|
|
@@ -103,6 +106,7 @@
|
|
|
103
106
|
"scripts/harness-selector.js",
|
|
104
107
|
"scripts/hf-papers.js",
|
|
105
108
|
"scripts/hook-runtime.js",
|
|
109
|
+
"scripts/hook-stop-anti-claim.js",
|
|
106
110
|
"scripts/hook-thumbgate-cache-updater.js",
|
|
107
111
|
"scripts/hosted-config.js",
|
|
108
112
|
"scripts/hybrid-feedback-context.js",
|
|
@@ -175,9 +179,11 @@
|
|
|
175
179
|
"scripts/rule-validator.js",
|
|
176
180
|
"scripts/secret-scanner.js",
|
|
177
181
|
"scripts/secret-fixture-tokens.js",
|
|
182
|
+
"scripts/secret-redaction.js",
|
|
178
183
|
"scripts/security-scanner.js",
|
|
179
184
|
"scripts/self-distill-agent.js",
|
|
180
185
|
"scripts/self-heal.js",
|
|
186
|
+
"scripts/self-harness-optimizer.js",
|
|
181
187
|
"scripts/self-healing-check.js",
|
|
182
188
|
"scripts/semantic-dedup.js",
|
|
183
189
|
"scripts/semantic-layer.js",
|
|
@@ -189,6 +195,7 @@
|
|
|
189
195
|
"scripts/skill-rag-router.js",
|
|
190
196
|
"scripts/slo-alert-engine.js",
|
|
191
197
|
"scripts/spec-gate.js",
|
|
198
|
+
"scripts/statusline-cache-read.js",
|
|
192
199
|
"scripts/statusline-cache-path.js",
|
|
193
200
|
"scripts/statusline-context.js",
|
|
194
201
|
"scripts/statusline-lesson.js",
|
|
@@ -198,6 +205,7 @@
|
|
|
198
205
|
"scripts/statusline-tower.js",
|
|
199
206
|
"scripts/statusline.sh",
|
|
200
207
|
"scripts/structured-prompt-driven.js",
|
|
208
|
+
"scripts/sync-telemetry-from-prod.js",
|
|
201
209
|
"scripts/synthetic-data-provenance.js",
|
|
202
210
|
"scripts/task-context-result.js",
|
|
203
211
|
"scripts/telemetry-analytics.js",
|
|
@@ -207,6 +215,7 @@
|
|
|
207
215
|
"scripts/trajectory-scorer.js",
|
|
208
216
|
"scripts/token-savings.js",
|
|
209
217
|
"scripts/token-tco.js",
|
|
218
|
+
"scripts/tool-contract-validator.js",
|
|
210
219
|
"scripts/tool-registry.js",
|
|
211
220
|
"scripts/upstream-contribution-engine.js",
|
|
212
221
|
"scripts/user-profile.js",
|
|
@@ -232,11 +241,17 @@
|
|
|
232
241
|
"adapters/codex/config.toml",
|
|
233
242
|
"adapters/forge/forge.yaml",
|
|
234
243
|
"adapters/gemini/function-declarations.json",
|
|
244
|
+
"adapters/letta/README.md",
|
|
245
|
+
"adapters/letta/thumbgate-letta-adapter.js",
|
|
235
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",
|
|
236
250
|
"adapters/mcp/server-stdio.js",
|
|
237
251
|
"adapters/opencode/opencode.json",
|
|
238
252
|
"bench/programbench-smoke.json",
|
|
239
253
|
"bench/prompt-eval-suite.json",
|
|
254
|
+
"bench/observability-eval-suite.json",
|
|
240
255
|
"bench/thumbgate-bench.json",
|
|
241
256
|
"bin/cli.js",
|
|
242
257
|
"bin/dashboard-cli.js",
|
|
@@ -261,6 +276,12 @@
|
|
|
261
276
|
"public/numbers.html",
|
|
262
277
|
"public/pricing.html",
|
|
263
278
|
"public/pro.html",
|
|
279
|
+
"public/assets/brand/",
|
|
280
|
+
"public/assets/claude-thumbgate-statusbar.svg",
|
|
281
|
+
"public/assets/codex-thumbgate-statusbar-test.svg",
|
|
282
|
+
"public/assets/legal-intake-control-flow.svg",
|
|
283
|
+
"public/brand/",
|
|
284
|
+
"public/js/",
|
|
264
285
|
"skills/thumbgate/SKILL.md",
|
|
265
286
|
"src/"
|
|
266
287
|
],
|
|
@@ -300,13 +321,6 @@
|
|
|
300
321
|
"medium:weekly:draft": "node scripts/medium-weekly.js --write",
|
|
301
322
|
"medium:weekly:schedule": "node scripts/medium-weekly.js --schedule",
|
|
302
323
|
"sales:pipeline": "node scripts/sales-pipeline.js",
|
|
303
|
-
"social:prepare": "node scripts/social-pipeline.js prepare",
|
|
304
|
-
"social:post": "node scripts/social-pipeline.js post",
|
|
305
|
-
"social:queue": "node scripts/social-pipeline.js queue",
|
|
306
|
-
"social:publish": "node scripts/social-pipeline.js publish",
|
|
307
|
-
"social:publish:queue": "node scripts/social-pipeline.js publish-queue",
|
|
308
|
-
"social:scheduler:install": "node scripts/social-pipeline.js install-scheduler",
|
|
309
|
-
"social:status": "node scripts/social-pipeline.js status",
|
|
310
324
|
"social:poll": "node scripts/social-analytics/poll-all.js",
|
|
311
325
|
"social:poll:github": "node scripts/social-analytics/pollers/github.js",
|
|
312
326
|
"social:poll:instagram": "node scripts/social-analytics/pollers/instagram.js",
|
|
@@ -360,12 +374,15 @@
|
|
|
360
374
|
"social:prospect:bluesky": "node scripts/social-bluesky-prospecting.js",
|
|
361
375
|
"social:prospect:bluesky:dry": "node scripts/social-bluesky-prospecting.js --dry-run",
|
|
362
376
|
"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:tool-contract-validator && npm run test:check-update",
|
|
363
378
|
"test:python": "python3 -m pytest tests/*.py",
|
|
364
|
-
"test
|
|
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:tool-contract-validator && npm run test:check-update && npm run test:hermes-gate",
|
|
365
381
|
"test:hook-stop-verify-deploy": "node --test tests/hook-stop-verify-deploy.test.js",
|
|
366
382
|
"test:hook-stop-anti-claim": "node --test tests/hook-stop-anti-claim.test.js",
|
|
367
383
|
"test:plausible-server-events": "node --test tests/plausible-server-events.test.js tests/plausible-poller.test.js tests/plausible-domain-config.test.js",
|
|
368
384
|
"test:activation-tracker": "node --test tests/activation-tracker.test.js",
|
|
385
|
+
"test:activation-onboarding": "node --test tests/activation-onboarding.test.js",
|
|
369
386
|
"test:unified-revenue-rollup": "node --test tests/unified-revenue-rollup.test.js",
|
|
370
387
|
"test:conversion-rate-stats": "node --test tests/conversion-rate-stats.test.js",
|
|
371
388
|
"test:external-customer-audit": "node --test tests/external-customer-audit.test.js",
|
|
@@ -398,6 +415,10 @@
|
|
|
398
415
|
"eval:feedback": "node scripts/prompt-eval.js --from-feedback",
|
|
399
416
|
"eval:feedback-quality": "python3 scripts/feedback_quality_eval.py",
|
|
400
417
|
"eval:classifier": "python3 scripts/eval_gate_classifier.py",
|
|
418
|
+
"eval:rag": "node scripts/eval-rag.js",
|
|
419
|
+
"test:eval-rag": "node --test tests/eval-rag.test.js",
|
|
420
|
+
"eval:async-observability": "node scripts/async-eval-observability.js",
|
|
421
|
+
"test:async-eval-observability": "node --test tests/async-eval-observability.test.js",
|
|
401
422
|
"test:decision-trace": "node --test tests/decision-trace.test.js",
|
|
402
423
|
"test:feedback-fallback": "node --test tests/feedback-fallback.test.js",
|
|
403
424
|
"test:metaclaw": "node --test tests/metaclaw-features.test.js",
|
|
@@ -406,12 +427,18 @@
|
|
|
406
427
|
"test:multi-hop-recall": "node --test tests/multi-hop-recall.test.js",
|
|
407
428
|
"test:synthetic-dpo": "node --test tests/synthetic-dpo.test.js",
|
|
408
429
|
"test:thumbgate-skill": "node --test tests/thumbgate-skill.test.js",
|
|
409
|
-
"test:
|
|
430
|
+
"test:discoverable-skills": "node --test tests/discoverable-skills.test.js",
|
|
431
|
+
"test:discoverable-skill-skills": "node --test tests/discoverable-skill-skills.test.js",
|
|
432
|
+
"test:statusline": "node --test tests/claude-feedback-sync.test.js tests/statusline.test.js tests/statusline-aggregation.test.js tests/statusline-context.test.js tests/statusline-links.test.js tests/statusline-e2e.test.js",
|
|
433
|
+
"test:statusline-cache-aggregate": "node --test tests/statusline-cache-aggregate.test.js",
|
|
434
|
+
"test:no-internal-orchestration-leaks": "node --test tests/no-internal-orchestration-leaks.test.js",
|
|
410
435
|
"test:memory-dedup": "node --test tests/memory-dedup.test.js",
|
|
411
436
|
"test:lesson-db": "node --test tests/lesson-db.test.js",
|
|
412
437
|
"test:lesson-rotation": "node --test tests/lesson-rotation.test.js",
|
|
413
438
|
"test:feedback-quality": "node --test tests/feedback-quality.test.js",
|
|
414
439
|
"test:sync-version": "node --test tests/sync-version.test.js",
|
|
440
|
+
"test:team-sync": "node --test tests/team-sync.test.js",
|
|
441
|
+
"test:sync-telemetry": "node --test tests/sync-telemetry-from-prod.test.js",
|
|
415
442
|
"test:check-congruence": "node --test tests/check-congruence.test.js",
|
|
416
443
|
"test:tool-registry": "node --test tests/tool-registry.test.js",
|
|
417
444
|
"test:dfcx-gate": "node --test tests/dfcx-webhook-gate.test.js",
|
|
@@ -428,7 +455,7 @@
|
|
|
428
455
|
"test:hosted-config": "node --test tests/hosted-config.test.js",
|
|
429
456
|
"test:operational-summary": "node --test tests/operational-summary.test.js",
|
|
430
457
|
"test:operational-dashboard": "node --test tests/operational-dashboard.test.js",
|
|
431
|
-
"test:operator-artifacts": "node --test tests/operator-artifacts.test.js tests/revenue-pack-utils.test.js
|
|
458
|
+
"test:operator-artifacts": "node --test tests/operator-artifacts.test.js tests/revenue-pack-utils.test.js",
|
|
432
459
|
"test:operator-key-auth": "node --test tests/api-operator-key-auth.test.js",
|
|
433
460
|
"test:cloudflare-sandbox": "node --test tests/cloudflare-dynamic-sandbox.test.js tests/cloudflare-sandbox-api.test.js",
|
|
434
461
|
"test:mcp-config": "node --test tests/mcp-config.test.js",
|
|
@@ -449,8 +476,10 @@
|
|
|
449
476
|
"test:hf-papers": "node --test tests/hf-papers.test.js",
|
|
450
477
|
"test:marketing-experiment": "node --test tests/marketing-experiment.test.js",
|
|
451
478
|
"test:seo-gsd": "node --test tests/seo-gsd.test.js",
|
|
479
|
+
"test:hermes-gate": "node --test tests/hermes-gate.test.js",
|
|
452
480
|
"test:verify-run": "node --test tests/verify-run.test.js",
|
|
453
481
|
"test:export-dpo-pairs": "node --test tests/export-dpo-pairs.test.js",
|
|
482
|
+
"test:secret-redaction": "node --test tests/secret-redaction.test.js",
|
|
454
483
|
"test:export-hf-dataset": "node --test tests/export-hf-dataset.test.js",
|
|
455
484
|
"export:hf": "node scripts/export-hf-dataset.js",
|
|
456
485
|
"seo:gsd": "node scripts/seo-gsd.js plan",
|
|
@@ -463,7 +492,6 @@
|
|
|
463
492
|
"test:loop": "node scripts/feedback-loop.js --test",
|
|
464
493
|
"test:dpo": "node scripts/export-dpo-pairs.js --test",
|
|
465
494
|
"test:kto": "node --test tests/export-kto.test.js",
|
|
466
|
-
"test:api": "node --test --test-concurrency=1 tests/api-server.test.js tests/api-events-sse.test.js tests/api-auth-config.test.js tests/mcp-server.test.js tests/adapters.test.js tests/openapi-parity.test.js tests/budget-guard.test.js tests/context-manager.test.js tests/contextfs.test.js tests/job-api.test.js tests/pack-templates.test.js tests/dashboard.test.js tests/dashboard-render-spec.test.js tests/dashboard-html.test.js tests/agent-readiness.test.js tests/mcp-policy.test.js tests/subagent-profiles.test.js tests/intent-router.test.js tests/internal-agent-bootstrap.test.js tests/lesson-search.test.js tests/thumbgate-search.test.js tests/document-intake.test.js tests/rubric-engine.test.js tests/self-healing-check.test.js tests/self-heal.test.js tests/feedback-schema.test.js tests/thompson-sampling.test.js tests/feedback-sequences.test.js tests/diversity-tracking.test.js tests/vector-store.test.js tests/gemini-embedding-policy.test.js tests/feedback-attribution.test.js tests/hybrid-feedback-context.test.js tests/loop-closure.test.js tests/code-reasoning.test.js tests/feedback-loop.test.js tests/feedback-inbox-read.test.js tests/feedback-to-memory.test.js tests/test-coverage.test.js tests/version-metadata.test.js tests/claude-mcpb.test.js tests/claude-codex-bridge.test.js tests/cursor-plugin.test.js tests/codex-plugin.test.js tests/ide-marketplace-extensions.test.js tests/telemetry-analytics.test.js tests/public-landing.test.js tests/lessons-page.test.js tests/pro-landing.test.js tests/local-model-profile.test.js tests/risk-scorer.test.js tests/context-compaction.test.js tests/reminder-engine.test.js tests/post-to-x.test.js tests/verification-loop.test.js tests/async-job-runner.test.js tests/commerce-quality.test.js tests/recall-limit.test.js tests/problem-detail.test.js tests/natural-language-harness.test.js tests/settings-hierarchy.test.js tests/classifier-routing.test.js",
|
|
467
495
|
"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",
|
|
468
496
|
"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",
|
|
469
497
|
"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",
|
|
@@ -471,16 +499,16 @@
|
|
|
471
499
|
"test:quality": "node --test tests/validate-feedback.test.js tests/feedback-quality-eval-python.test.js tests/eval-gate-classifier.test.js",
|
|
472
500
|
"test:intelligence": "node --test tests/intelligence.test.js",
|
|
473
501
|
"test:training-export": "node --test tests/training-export.test.js tests/databricks-export.test.js",
|
|
474
|
-
"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
|
|
502
|
+
"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",
|
|
475
503
|
"test:operational-integrity": "node --test tests/operational-integrity.test.js tests/sync-branch-protection.test.js",
|
|
476
|
-
"test:workflow": "node --test tests/parallel-workflow.test.js tests/workflow-contract.test.js tests/
|
|
504
|
+
"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",
|
|
477
505
|
"test:sales-pipeline": "node --test tests/sales-pipeline.test.js",
|
|
478
506
|
"test:billing": "node --test tests/billing.test.js tests/stripe-sync-product-images.test.js",
|
|
479
507
|
"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",
|
|
480
508
|
"test:evolution": "node --test tests/workspace-evolver.test.js",
|
|
481
509
|
"test:watcher": "node --test tests/jsonl-watcher.test.js",
|
|
482
510
|
"test:autoresearch": "node --test tests/autoresearch.test.js",
|
|
483
|
-
"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",
|
|
511
|
+
"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",
|
|
484
512
|
"test:session-analyzer": "node --test tests/session-analyzer.test.js",
|
|
485
513
|
"test:tessl": "node --test tests/tessl-export.test.js",
|
|
486
514
|
"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",
|
|
@@ -560,6 +588,7 @@
|
|
|
560
588
|
"test:funnel-invariants": "node --test tests/funnel-invariants.test.js",
|
|
561
589
|
"test:cli-telemetry": "node --test tests/cli-telemetry.test.js",
|
|
562
590
|
"test:pro-parity": "node --test tests/pro-parity.test.js",
|
|
591
|
+
"test:pricing-page-telemetry": "node --test tests/pricing-page-telemetry.test.js",
|
|
563
592
|
"test:skill-exporter": "node --test tests/skill-exporter.test.js",
|
|
564
593
|
"test:model-tier-router": "node --test tests/model-tier-router.test.js",
|
|
565
594
|
"test:computer-use-firewall": "node --test tests/computer-use-firewall.test.js",
|
|
@@ -612,7 +641,6 @@
|
|
|
612
641
|
"social:dedupe:cleanup": "node scripts/social-analytics/cleanup-zernio-duplicates.js",
|
|
613
642
|
"test:install-growth-automation": "node --test tests/install-growth-automation.test.js",
|
|
614
643
|
"test:publish-thumbgate-launch": "node --test tests/publish-thumbgate-launch.test.js",
|
|
615
|
-
"test:community-course-platform-launch-kit": "node --test tests/community-course-platform-launch-kit.test.js",
|
|
616
644
|
"test:reconcile-thumbgate-campaign": "node --test tests/reconcile-thumbgate-campaign.test.js",
|
|
617
645
|
"test:schedule-thumbgate-campaign": "node --test tests/schedule-thumbgate-campaign.test.js",
|
|
618
646
|
"test:social-reply-monitor": "node --test tests/social-reply-monitor.test.js tests/reddit-monitor-launchd.test.js",
|
|
@@ -663,7 +691,6 @@
|
|
|
663
691
|
"test:explore": "node --test tests/explore.test.js",
|
|
664
692
|
"test:cli-schema": "node --test tests/cli-schema.test.js",
|
|
665
693
|
"test:cli-agent-experience": "node --test tests/cli-agent-experience.test.js",
|
|
666
|
-
"test:demo-voiceover": "node --test tests/demo-voiceover.test.js",
|
|
667
694
|
"test:gate-coherence": "node --test tests/gate-coherence.test.js",
|
|
668
695
|
"test:gate-eval": "node --test tests/gate-eval.test.js",
|
|
669
696
|
"gate-eval:ci": "node scripts/gate-eval.js run",
|
|
@@ -706,6 +733,7 @@
|
|
|
706
733
|
"test:install-shim": "node --test tests/install-shim.test.js",
|
|
707
734
|
"test:hook-runtime-subcommands": "node --test tests/hook-runtime-subcommands.test.js",
|
|
708
735
|
"test:implementation-notes": "node --test tests/implementation-notes.test.js",
|
|
736
|
+
"test:public-repo-hygiene": "node --test tests/public-repo-hygiene.test.js",
|
|
709
737
|
"test:daily-block-cap": "node --test tests/daily-block-cap.test.js",
|
|
710
738
|
"test:free-to-paid-conversion-units": "node --test tests/free-to-paid-conversion-units.test.js",
|
|
711
739
|
"test:metrics-real-endpoint": "node --test tests/metrics-real-endpoint.test.js",
|
|
@@ -717,12 +745,17 @@
|
|
|
717
745
|
"test:pricing-page-clickability": "playwright test tests/e2e/pricing-page-clickability.spec.js",
|
|
718
746
|
"test:proof:truth": "node --test tests/knowledge-entropy.test.js tests/mcp-wiring-doctor.test.js tests/sequence-guard.test.js tests/slopsquat-guard.test.js tests/slopsquat-stress.test.js tests/truth-and-proof.test.js tests/wire-proof-gate.test.js tests/adaptive-reliability.test.js tests/coderabbit-patterns.test.js",
|
|
719
747
|
"build:grok-plugin": "node scripts/build-grok-plugin.js",
|
|
720
|
-
"promote:launch": "node scripts/x-autonomous-marketing.js",
|
|
721
748
|
"feedback:ingest": "node scripts/ingest-manual-feedback.js",
|
|
722
749
|
"verify-proof": "node scripts/require-proof.js",
|
|
723
750
|
"test:mcp-oauth-reviewer": "node --test tests/mcp-oauth-reviewer.test.js",
|
|
724
751
|
"test:dashboard-chat": "node --test tests/dashboard-chat.test.js",
|
|
725
|
-
"test:gitar-integration": "node --test tests/gitar-integration.test.js"
|
|
752
|
+
"test:gitar-integration": "node --test tests/gitar-integration.test.js",
|
|
753
|
+
"test:api": "node --test --test-concurrency=1 tests/api-server.test.js tests/api-events-sse.test.js tests/api-auth-config.test.js tests/mcp-server.test.js tests/adapters.test.js tests/openapi-parity.test.js tests/budget-guard.test.js tests/context-manager.test.js tests/contextfs.test.js tests/job-api.test.js tests/pack-templates.test.js tests/dashboard.test.js tests/dashboard-render-spec.test.js tests/dashboard-html.test.js tests/agent-readiness.test.js tests/mcp-policy.test.js tests/subagent-profiles.test.js tests/intent-router.test.js tests/internal-agent-bootstrap.test.js tests/lesson-search.test.js tests/thumbgate-search.test.js tests/document-intake.test.js tests/rubric-engine.test.js tests/self-healing-check.test.js tests/self-heal.test.js tests/feedback-schema.test.js tests/thompson-sampling.test.js tests/feedback-sequences.test.js tests/diversity-tracking.test.js tests/vector-store.test.js tests/gemini-embedding-policy.test.js tests/feedback-attribution.test.js tests/hybrid-feedback-context.test.js tests/loop-closure.test.js tests/code-reasoning.test.js tests/feedback-loop.test.js tests/feedback-inbox-read.test.js tests/feedback-to-memory.test.js tests/test-coverage.test.js tests/version-metadata.test.js tests/claude-mcpb.test.js tests/claude-codex-bridge.test.js tests/cursor-plugin.test.js tests/codex-plugin.test.js tests/ide-marketplace-extensions.test.js tests/telemetry-analytics.test.js tests/public-landing.test.js tests/lessons-page.test.js tests/pro-landing.test.js tests/local-model-profile.test.js tests/risk-scorer.test.js tests/context-compaction.test.js tests/reminder-engine.test.js tests/verification-loop.test.js tests/async-job-runner.test.js tests/commerce-quality.test.js tests/recall-limit.test.js tests/problem-detail.test.js tests/natural-language-harness.test.js tests/settings-hierarchy.test.js tests/classifier-routing.test.js",
|
|
754
|
+
"test:leak-scanner": "node --test tests/leak-scanner.test.js",
|
|
755
|
+
"test:tool-contract-validator": "node --test tests/tool-contract-validator.test.js",
|
|
756
|
+
"test:letta-adapter": "node --test tests/letta-adapter.test.js",
|
|
757
|
+
"eval:observability": "node scripts/async-eval-observability.js",
|
|
758
|
+
"test:async-eval-observability": "node --test tests/async-eval-observability.test.js"
|
|
726
759
|
},
|
|
727
760
|
"keywords": [
|
|
728
761
|
"mcp",
|
|
@@ -777,21 +810,28 @@
|
|
|
777
810
|
"node": ">=18.18.0"
|
|
778
811
|
},
|
|
779
812
|
"dependencies": {
|
|
780
|
-
"@anthropic-ai/sdk": "0.
|
|
781
|
-
"@google/genai": "
|
|
813
|
+
"@anthropic-ai/sdk": "0.102.0",
|
|
814
|
+
"@google/genai": "2.7.0",
|
|
782
815
|
"@huggingface/transformers": "^4.2.0",
|
|
783
|
-
"@lancedb/lancedb": "^0.
|
|
816
|
+
"@lancedb/lancedb": "^0.30.0",
|
|
784
817
|
"apache-arrow": "^18.1.0",
|
|
785
818
|
"better-sqlite3": "^12.9.0",
|
|
786
819
|
"dotenv": "^17.4.2",
|
|
787
820
|
"playwright-core": "^1.59.1",
|
|
788
|
-
"protobufjs": "^8.
|
|
789
|
-
"stripe": "^22.0
|
|
821
|
+
"protobufjs": "^8.5.0",
|
|
822
|
+
"stripe": "^22.2.0"
|
|
790
823
|
},
|
|
791
824
|
"overrides": {
|
|
825
|
+
"@google/genai": {
|
|
826
|
+
"protobufjs": "7.6.4"
|
|
827
|
+
},
|
|
828
|
+
"onnxruntime-web": {
|
|
829
|
+
"protobufjs": "7.6.4"
|
|
830
|
+
},
|
|
792
831
|
"express@4.22.1": {
|
|
793
832
|
"path-to-regexp": "0.1.13"
|
|
794
|
-
}
|
|
833
|
+
},
|
|
834
|
+
"js-yaml": "4.2.0"
|
|
795
835
|
},
|
|
796
836
|
"mcpName": "io.github.IgorGanapolsky/thumbgate",
|
|
797
837
|
"devDependencies": {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
6
|
<title>ThumbGate for the Agent Manager — Pre-Action Checks for Claude Code, Cursor, Codex</title>
|
|
7
|
-
<script defer data-domain="thumbgate
|
|
7
|
+
<script defer data-domain="thumbgate.ai" src="https://plausible.io/js/script.js"></script>
|
|
8
8
|
<meta name="description" content="Anthropic named the role that owns enterprise Claude Code: the Agent Manager. ThumbGate is the pre-action enforcement layer underneath CLAUDE.md, the plugin marketplace, permissions policy, and which skills ship.">
|
|
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.">
|
|
@@ -28,6 +28,46 @@
|
|
|
28
28
|
]
|
|
29
29
|
}
|
|
30
30
|
</script>
|
|
31
|
+
<script type="application/ld+json">
|
|
32
|
+
{
|
|
33
|
+
"@context": "https://schema.org",
|
|
34
|
+
"@type": "FAQPage",
|
|
35
|
+
"mainEntity": [
|
|
36
|
+
{
|
|
37
|
+
"@type": "Question",
|
|
38
|
+
"name": "What is the Agent Manager role?",
|
|
39
|
+
"acceptedAnswer": {
|
|
40
|
+
"@type": "Answer",
|
|
41
|
+
"text": "Anthropic named it: the Agent Manager is a hybrid PM/engineer single DRI who owns the Claude Code configuration every developer in the org actually feels — the CLAUDE.md hierarchy, the plugin marketplace, the permissions policy, and which skills ship — and is responsible for keeping them current. Without that role, enterprise Claude Code rollouts stall in phase two; with it, the model improving is no longer the bottleneck."
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"@type": "Question",
|
|
46
|
+
"name": "How does ThumbGate help the Agent Manager?",
|
|
47
|
+
"acceptedAnswer": {
|
|
48
|
+
"@type": "Answer",
|
|
49
|
+
"text": "ThumbGate is the pre-action enforcement layer underneath what the role owns. It runs PreToolUse hooks at the tool-call boundary, auto-distills prevention rules from real thumbs-down feedback and writes them into CLAUDE.md, provides an org-wide rule library and hosted dashboard, and keeps an adapter matrix current as Claude Code, Cursor, and Codex change — so the role does not have to be the operator themselves. Each block carries the rule that fired and the evidence that triggered it, so the agent can choose a safer plan."
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"@type": "Question",
|
|
54
|
+
"name": "Is ThumbGate free for the Agent Manager to start?",
|
|
55
|
+
"acceptedAnswer": {
|
|
56
|
+
"@type": "Answer",
|
|
57
|
+
"text": "Yes. npx thumbgate init in one repo is free and MIT licensed, and the gates work locally without a hosted account. The paid tier adds the hosted dashboard, the org-wide rule library, DPO/HuggingFace export, and 24x7 ops on the adapter matrix — the operational work the role would otherwise have to do itself."
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"@type": "Question",
|
|
62
|
+
"name": "Which AI coding agents does ThumbGate cover for an enterprise rollout?",
|
|
63
|
+
"acceptedAnswer": {
|
|
64
|
+
"@type": "Answer",
|
|
65
|
+
"text": "Claude Code, Cursor, Codex, Gemini, Amp, Cline, and OpenCode. One install wires every supported agent, and each adapter is version-pinned and CI-checked against the upstream runtime, so a breaking change to a hook or plugin API does not stall the rollout for a quarter."
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
]
|
|
69
|
+
}
|
|
70
|
+
</script>
|
|
31
71
|
<style>
|
|
32
72
|
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
|
|
33
73
|
:root { --bg:#0a0a0b; --card:#161618; --border:#222225; --text:#e8e8ec; --muted:#8b8b94; --cyan:#22d3ee; }
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
6
|
<title>FinOps for AI Agents — ThumbGate prevents the spend FinOps tools just report on</title>
|
|
7
|
-
<script defer data-domain="thumbgate
|
|
7
|
+
<script defer data-domain="thumbgate.ai" src="https://plausible.io/js/script.js"></script>
|
|
8
8
|
<meta name="description" content="Most FinOps platforms report on AI agent spend after it happens. ThumbGate is the runtime layer that prevents the wasted tool calls in the first place — and prints the dollar amount you saved.">
|
|
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.">
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
6
|
<title>Pre-Execution Controls for Legal AI Agents - ThumbGate</title>
|
|
7
|
-
<script defer data-domain="thumbgate
|
|
7
|
+
<script defer data-domain="thumbgate.ai" src="https://plausible.io/js/script.js"></script>
|
|
8
8
|
<meta name="description" content="Pre-execution controls for law-firm AI agents: block unauthorized advice, conflict-check failures, privilege leaks, and unapproved model calls before an agent acts.">
|
|
9
9
|
<meta property="og:title" content="Pre-Execution Controls for Legal AI Agents">
|
|
10
10
|
<meta property="og:description" content="ThumbGate preloads firm-approved ground truth, checks legal AI actions before execution, and records audit evidence for law-firm innovation, risk, and pricing teams.">
|
|
@@ -813,5 +813,6 @@
|
|
|
813
813
|
<p>ThumbGate is a software control layer, not legal advice. This page is intended for pilot scoping with law-firm innovation, technology, risk, and pricing teams. Final policy choices should be reviewed by the firm's attorneys and security team.</p>
|
|
814
814
|
</footer>
|
|
815
815
|
</div>
|
|
816
|
+
<script src="/js/buyer-intent.js"></script>
|
|
816
817
|
</body>
|
|
817
818
|
</html>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,15 @@
|
|
|
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
|
+
<title id="tg-inline-title">ThumbGate</title>
|
|
3
|
+
<desc id="tg-inline-desc">ThumbGate TG gate monogram, transparent background for inline use in site headers.</desc>
|
|
4
|
+
<defs>
|
|
5
|
+
<linearGradient id="tg-inline-frame" x1="8" y1="8" x2="56" y2="56" gradientUnits="userSpaceOnUse">
|
|
6
|
+
<stop offset="0" stop-color="#8cf5d1"/>
|
|
7
|
+
<stop offset="1" stop-color="#22d3ee"/>
|
|
8
|
+
</linearGradient>
|
|
9
|
+
</defs>
|
|
10
|
+
<rect x="4" y="4" width="56" height="56" rx="14" fill="#061015"/>
|
|
11
|
+
<rect x="9" y="9" width="46" height="46" rx="12" fill="#0b1820" stroke="url(#tg-inline-frame)" stroke-width="3.5"/>
|
|
12
|
+
<path d="M19 44V25c0-5.5 4.5-10 10-10h6c5.5 0 10 4.5 10 10v19" fill="none" stroke="#8cf5d1" stroke-width="4.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
13
|
+
<text x="32" y="39" text-anchor="middle" fill="#e7fbff" font-family="Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Arial, sans-serif" font-size="19" font-weight="900">TG</text>
|
|
14
|
+
<rect x="18" y="44" width="28" height="4" rx="2" fill="#22d3ee"/>
|
|
15
|
+
</svg>
|