thumbgate 1.15.0 → 1.16.1

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.
Files changed (129) hide show
  1. package/.claude-plugin/marketplace.json +6 -6
  2. package/.claude-plugin/plugin.json +3 -3
  3. package/.well-known/llms.txt +5 -5
  4. package/.well-known/mcp/server-card.json +1 -1
  5. package/README.md +59 -35
  6. package/adapters/chatgpt/openapi.yaml +118 -2
  7. package/adapters/claude/.mcp.json +2 -2
  8. package/adapters/mcp/server-stdio.js +210 -84
  9. package/adapters/opencode/opencode.json +1 -1
  10. package/bench/prompt-eval-suite.json +5 -1
  11. package/bin/cli.js +157 -8
  12. package/config/evals/agent-safety-eval.json +338 -22
  13. package/config/gates/routine.json +43 -0
  14. package/config/github-about.json +3 -3
  15. package/config/model-candidates.json +131 -0
  16. package/openapi/openapi.yaml +118 -2
  17. package/package.json +57 -49
  18. package/public/blog.html +7 -7
  19. package/public/codex-plugin.html +6 -6
  20. package/public/compare.html +29 -23
  21. package/public/dashboard.html +82 -10
  22. package/public/guide.html +28 -28
  23. package/public/index.html +216 -98
  24. package/public/learn.html +50 -22
  25. package/public/lessons.html +1 -1
  26. package/public/numbers.html +17 -17
  27. package/public/pro.html +82 -18
  28. package/scripts/agent-audit-trace.js +55 -0
  29. package/scripts/agent-memory-lifecycle.js +96 -0
  30. package/scripts/agent-readiness-plan.js +118 -0
  31. package/scripts/agentic-data-pipeline.js +21 -1
  32. package/scripts/agents-sdk-sandbox-plan.js +57 -0
  33. package/scripts/ai-org-governance.js +98 -0
  34. package/scripts/ai-search-distribution.js +43 -0
  35. package/scripts/artifact-agent-plan.js +81 -0
  36. package/scripts/billing.js +27 -8
  37. package/scripts/cli-schema.js +18 -2
  38. package/scripts/code-mode-mcp-plan.js +71 -0
  39. package/scripts/context-engine.js +1 -2
  40. package/scripts/context-manager.js +4 -1
  41. package/scripts/dashboard-render-spec.js +1 -1
  42. package/scripts/dashboard.js +275 -9
  43. package/scripts/decision-journal.js +13 -3
  44. package/scripts/document-workflow-governance.js +62 -0
  45. package/scripts/enterprise-agent-rollout.js +34 -0
  46. package/scripts/experience-replay-governance.js +69 -0
  47. package/scripts/export-hf-dataset.js +1 -1
  48. package/scripts/feedback-loop.js +92 -4
  49. package/scripts/feedback-to-rules.js +17 -23
  50. package/scripts/gates-engine.js +4 -6
  51. package/scripts/growth-campaigns.js +49 -0
  52. package/scripts/harness-selector.js +16 -4
  53. package/scripts/hybrid-supervisor-agent.js +64 -0
  54. package/scripts/inference-cache-policy.js +72 -0
  55. package/scripts/inference-economics.js +53 -0
  56. package/scripts/internal-agent-bootstrap.js +12 -2
  57. package/scripts/knowledge-layer-plan.js +108 -0
  58. package/scripts/lesson-inference.js +183 -44
  59. package/scripts/lesson-search.js +4 -1
  60. package/scripts/llm-client.js +157 -26
  61. package/scripts/mailer/resend-mailer.js +112 -1
  62. package/scripts/mcp-transport-strategy.js +66 -0
  63. package/scripts/memory-store-governance.js +60 -0
  64. package/scripts/meta-agent-loop.js +7 -13
  65. package/scripts/model-access-eligibility.js +38 -0
  66. package/scripts/model-migration-readiness.js +55 -0
  67. package/scripts/operational-integrity.js +96 -3
  68. package/scripts/otel-declarative-config.js +56 -0
  69. package/scripts/perplexity-client.js +1 -1
  70. package/scripts/post-training-governance.js +34 -0
  71. package/scripts/private-core-boundary.js +72 -0
  72. package/scripts/production-agent-readiness.js +40 -0
  73. package/scripts/prompt-eval.js +564 -32
  74. package/scripts/prompt-programs.js +93 -0
  75. package/scripts/provider-action-normalizer.js +585 -0
  76. package/scripts/scaling-law-claims.js +60 -0
  77. package/scripts/security-scanner.js +1 -1
  78. package/scripts/self-distill-agent.js +7 -32
  79. package/scripts/seo-gsd.js +232 -55
  80. package/scripts/skill-rag-router.js +53 -0
  81. package/scripts/spec-gate.js +1 -1
  82. package/scripts/student-consistent-training.js +73 -0
  83. package/scripts/synthetic-data-provenance.js +98 -0
  84. package/scripts/task-context-result.js +81 -0
  85. package/scripts/telemetry-analytics.js +149 -0
  86. package/scripts/thompson-sampling.js +2 -2
  87. package/scripts/token-savings.js +7 -6
  88. package/scripts/token-tco.js +46 -0
  89. package/scripts/tool-registry.js +63 -3
  90. package/scripts/verification-loop.js +10 -1
  91. package/scripts/verifier-scoring.js +71 -0
  92. package/scripts/workflow-sentinel.js +284 -28
  93. package/scripts/workspace-agent-routines.js +118 -0
  94. package/src/api/server.js +381 -120
  95. package/scripts/analytics-report.js +0 -328
  96. package/scripts/autonomous-workflow.js +0 -377
  97. package/scripts/billing-setup.js +0 -109
  98. package/scripts/creator-campaigns.js +0 -239
  99. package/scripts/cross-encoder-reranker.js +0 -235
  100. package/scripts/daemon-manager.js +0 -108
  101. package/scripts/decision-trace.js +0 -354
  102. package/scripts/delegation-runtime.js +0 -896
  103. package/scripts/dispatch-brief.js +0 -159
  104. package/scripts/distribution-surfaces.js +0 -110
  105. package/scripts/feedback-history-distiller.js +0 -382
  106. package/scripts/funnel-analytics.js +0 -35
  107. package/scripts/history-distiller.js +0 -200
  108. package/scripts/hosted-job-launcher.js +0 -256
  109. package/scripts/intent-router.js +0 -392
  110. package/scripts/lesson-reranker.js +0 -263
  111. package/scripts/lesson-retrieval.js +0 -148
  112. package/scripts/managed-lesson-agent.js +0 -183
  113. package/scripts/operational-dashboard.js +0 -103
  114. package/scripts/operational-summary.js +0 -129
  115. package/scripts/operator-artifacts.js +0 -608
  116. package/scripts/optimize-context.js +0 -17
  117. package/scripts/org-dashboard.js +0 -206
  118. package/scripts/partner-orchestration.js +0 -146
  119. package/scripts/predictive-insights.js +0 -356
  120. package/scripts/pulse.js +0 -80
  121. package/scripts/reflector-agent.js +0 -221
  122. package/scripts/sales-pipeline.js +0 -681
  123. package/scripts/session-episode-store.js +0 -329
  124. package/scripts/session-health-sensor.js +0 -242
  125. package/scripts/session-report.js +0 -120
  126. package/scripts/swarm-coordinator.js +0 -81
  127. package/scripts/tool-kpi-tracker.js +0 -12
  128. package/scripts/webhook-delivery.js +0 -62
  129. package/scripts/workflow-sprint-intake.js +0 -475
@@ -751,6 +751,34 @@ paths:
751
751
  $ref: '#/components/schemas/FunnelAnalyticsResponse'
752
752
  '401':
753
753
  description: Unauthorized
754
+ /v1/analytics/losses:
755
+ get:
756
+ operationId: getLossAnalytics
757
+ parameters:
758
+ - in: query
759
+ name: window
760
+ schema:
761
+ type: string
762
+ enum: [today, 7d, 30d, lifetime]
763
+ - in: query
764
+ name: timezone
765
+ schema:
766
+ type: string
767
+ - in: query
768
+ name: now
769
+ schema:
770
+ type: string
771
+ format: date-time
772
+ responses:
773
+ '200':
774
+ description: Ranked buyer-loss and revenue-opportunity analysis for the active analytics window
775
+ content:
776
+ application/json:
777
+ schema:
778
+ type: object
779
+ additionalProperties: true
780
+ '401':
781
+ description: Unauthorized
754
782
  /v1/dashboard:
755
783
  get:
756
784
  operationId: getDashboard
@@ -848,10 +876,79 @@ paths:
848
876
  application/json:
849
877
  schema:
850
878
  type: object
851
- required: [toolName]
852
879
  properties:
853
880
  toolName:
854
881
  type: string
882
+ description: Tool name is optional when provider-native tool call payload is supplied.
883
+ provider:
884
+ type: string
885
+ model:
886
+ type: string
887
+ providerToolCall:
888
+ type: object
889
+ additionalProperties: true
890
+ toolCall:
891
+ type: object
892
+ additionalProperties: true
893
+ toolUse:
894
+ type: object
895
+ additionalProperties: true
896
+ content:
897
+ type: array
898
+ items:
899
+ type: object
900
+ additionalProperties: true
901
+ input:
902
+ type: object
903
+ additionalProperties: true
904
+ arguments:
905
+ type: object
906
+ additionalProperties: true
907
+ method:
908
+ type: string
909
+ params:
910
+ type: object
911
+ additionalProperties: true
912
+ mcp:
913
+ type: object
914
+ additionalProperties: true
915
+ mcpToolCall:
916
+ type: object
917
+ additionalProperties: true
918
+ usage:
919
+ type: object
920
+ additionalProperties: true
921
+ tokenEstimate:
922
+ type: number
923
+ costUsd:
924
+ type: number
925
+ budget:
926
+ type: object
927
+ additionalProperties: true
928
+ workflowPattern:
929
+ type: string
930
+ enum: [single_action, chaining, routing, parallelization, evaluator-optimizer, agent]
931
+ workflow:
932
+ type: object
933
+ additionalProperties: true
934
+ goal:
935
+ type: string
936
+ tools:
937
+ type: array
938
+ items:
939
+ type: string
940
+ branches:
941
+ type: array
942
+ items:
943
+ type: string
944
+ steps:
945
+ type: array
946
+ items:
947
+ type: string
948
+ routes:
949
+ type: array
950
+ items:
951
+ type: string
855
952
  command:
856
953
  type: string
857
954
  filePath:
@@ -868,6 +965,25 @@ paths:
868
965
  type: boolean
869
966
  requireVersionNotBehindBase:
870
967
  type: boolean
968
+ workflowDispatch:
969
+ type: object
970
+ description: Evidence required before running `gh workflow run` or another environment-specific workflow dispatch.
971
+ properties:
972
+ environment:
973
+ type: string
974
+ description: Requested environment such as dev, staging, beta, or release.
975
+ workflow:
976
+ type: string
977
+ description: Expected workflow file or workflow name.
978
+ ref:
979
+ type: string
980
+ description: Expected branch or ref passed to the workflow dispatch command.
981
+ sha:
982
+ type: string
983
+ description: Expected HEAD SHA to verify before and after dispatch.
984
+ job:
985
+ type: string
986
+ description: Expected job name to verify before reporting the workflow URL.
871
987
  responses:
872
988
  '200':
873
989
  description: Persisted workflow-sentinel recommendation with decision-control metadata and actionId
@@ -1121,7 +1237,7 @@ paths:
1121
1237
  description: Comma-separated tags that must all be present on a lesson.
1122
1238
  responses:
1123
1239
  '200':
1124
- description: Searchable promoted lessons with linked corrective actions, prevention rules, and auto-gates
1240
+ description: Searchable promoted lessons with linked corrective actions, prevention rules, and auto-promoted checks
1125
1241
  '401':
1126
1242
  description: Unauthorized
1127
1243
  /v1/search:
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "thumbgate",
3
- "version": "1.15.0",
4
- "description": "Self-improving agent governance: type thumbs-up or thumbs-down on any AI agent action. ThumbGate turns every mistake into a prevention rule and blocks the pattern from repeating. One thumbs-down, never again. 33 pre-action gates, budget enforcement, and self-protection for Claude Code, Cursor, Codex, Gemini CLI, and Amp.",
3
+ "version": "1.16.1",
4
+ "description": "Self-improving agent governance: type thumbs-up or thumbs-down on any AI agent action. ThumbGate turns every mistake into a prevention rule and blocks the pattern from repeating. One thumbs-down, never again. 33 pre-action checks, budget enforcement, and self-protection for Claude Code, Cursor, Codex, Gemini CLI, and Amp.",
5
5
  "homepage": "https://thumbgate-production.up.railway.app",
6
6
  "repository": {
7
7
  "type": "git",
@@ -44,11 +44,16 @@
44
44
  "public/numbers.html",
45
45
  "public/pro.html",
46
46
  "scripts/access-anomaly-detector.js",
47
+ "scripts/agent-audit-trace.js",
48
+ "scripts/agent-memory-lifecycle.js",
47
49
  "scripts/agent-readiness.js",
50
+ "scripts/agent-readiness-plan.js",
48
51
  "scripts/agentic-data-pipeline.js",
49
- "scripts/analytics-report.js",
52
+ "scripts/agents-sdk-sandbox-plan.js",
53
+ "scripts/ai-org-governance.js",
54
+ "scripts/ai-search-distribution.js",
50
55
  "scripts/analytics-window.js",
51
- "scripts/autonomous-workflow.js",
56
+ "scripts/artifact-agent-plan.js",
52
57
  "scripts/autoresearch-runner.js",
53
58
  "scripts/async-job-runner.js",
54
59
  "scripts/audit-trail.js",
@@ -56,7 +61,6 @@
56
61
  "scripts/auto-wire-hooks.js",
57
62
  "scripts/bayes-optimal-gate.js",
58
63
  "scripts/belief-update.js",
59
- "scripts/billing-setup.js",
60
64
  "scripts/billing.js",
61
65
  "scripts/bot-detection.js",
62
66
  "scripts/bot-detector.js",
@@ -68,6 +72,7 @@
68
72
  "scripts/cli-status.js",
69
73
  "scripts/cli-telemetry.js",
70
74
  "scripts/cloudflare-dynamic-sandbox.js",
75
+ "scripts/code-mode-mcp-plan.js",
71
76
  "scripts/code-reasoning.js",
72
77
  "scripts/codegraph-context.js",
73
78
  "scripts/commercial-offer.js",
@@ -75,23 +80,19 @@
75
80
  "scripts/context-engine.js",
76
81
  "scripts/contextfs.js",
77
82
  "scripts/conversation-context.js",
78
- "scripts/creator-campaigns.js",
79
- "scripts/cross-encoder-reranker.js",
80
83
  "scripts/context-footprint.js",
81
84
  "scripts/codex-self-heal.js",
82
- "scripts/daemon-manager.js",
83
85
  "scripts/dashboard-render-spec.js",
84
86
  "scripts/dashboard.js",
85
87
  "scripts/decision-journal.js",
86
- "scripts/decision-trace.js",
87
- "scripts/delegation-runtime.js",
88
88
  "scripts/durability/step.js",
89
- "scripts/dispatch-brief.js",
90
- "scripts/distribution-surfaces.js",
91
89
  "scripts/docker-sandbox-planner.js",
92
90
  "scripts/document-intake.js",
91
+ "scripts/document-workflow-governance.js",
92
+ "scripts/enterprise-agent-rollout.js",
93
93
  "scripts/evolution-state.js",
94
94
  "scripts/experiment-tracker.js",
95
+ "scripts/experience-replay-governance.js",
95
96
  "scripts/explore-subcommands.js",
96
97
  "scripts/explore.js",
97
98
  "scripts/export-databricks-bundle.js",
@@ -99,7 +100,6 @@
99
100
  "scripts/export-hf-dataset.js",
100
101
  "scripts/failure-diagnostics.js",
101
102
  "scripts/feedback-attribution.js",
102
- "scripts/feedback-history-distiller.js",
103
103
  "scripts/feedback-loop.js",
104
104
  "scripts/feedback-paths.js",
105
105
  "scripts/feedback-quality.js",
@@ -108,82 +108,79 @@
108
108
  "scripts/feedback-to-rules.js",
109
109
  "scripts/filesystem-search.js",
110
110
  "scripts/fs-utils.js",
111
- "scripts/funnel-analytics.js",
112
111
  "scripts/gate-stats.js",
113
112
  "scripts/gate-templates.js",
114
113
  "scripts/gates-engine.js",
114
+ "scripts/growth-campaigns.js",
115
115
  "scripts/harness-selector.js",
116
116
  "scripts/hf-papers.js",
117
- "scripts/history-distiller.js",
118
117
  "scripts/hook-runtime.js",
119
118
  "scripts/hook-thumbgate-cache-updater.js",
120
119
  "scripts/hosted-config.js",
121
- "scripts/hosted-job-launcher.js",
122
120
  "scripts/hybrid-feedback-context.js",
121
+ "scripts/hybrid-supervisor-agent.js",
123
122
  "scripts/install-mcp.js",
124
- "scripts/intent-router.js",
123
+ "scripts/inference-cache-policy.js",
124
+ "scripts/inference-economics.js",
125
125
  "scripts/internal-agent-bootstrap.js",
126
126
  "scripts/intervention-policy.js",
127
127
  "scripts/jsonl-watcher.js",
128
128
  "scripts/lesson-canonical.js",
129
129
  "scripts/lesson-db.js",
130
130
  "scripts/lesson-inference.js",
131
- "scripts/lesson-reranker.js",
132
- "scripts/lesson-retrieval.js",
133
131
  "scripts/lesson-rotation.js",
134
132
  "scripts/lesson-search.js",
135
133
  "scripts/lesson-synthesis.js",
134
+ "scripts/knowledge-layer-plan.js",
136
135
  "scripts/rule-validator.js",
137
136
  "scripts/license.js",
138
137
  "scripts/llm-client.js",
139
138
  "scripts/mailer/index.js",
140
139
  "scripts/mailer/resend-mailer.js",
141
140
  "scripts/local-model-profile.js",
142
- "scripts/managed-lesson-agent.js",
143
141
  "scripts/mcp-config.js",
144
142
  "scripts/mcp-policy.js",
143
+ "scripts/mcp-transport-strategy.js",
144
+ "scripts/memory-store-governance.js",
145
145
  "scripts/memory-firewall.js",
146
146
  "scripts/meta-agent-loop.js",
147
+ "scripts/model-access-eligibility.js",
148
+ "scripts/model-migration-readiness.js",
147
149
  "scripts/multimodal-retrieval-plan.js",
148
150
  "scripts/native-messaging-audit.js",
149
151
  "scripts/natural-language-harness.js",
150
152
  "scripts/obsidian-export.js",
151
- "scripts/operational-dashboard.js",
153
+ "scripts/otel-declarative-config.js",
152
154
  "scripts/operational-integrity.js",
153
- "scripts/operational-summary.js",
154
- "scripts/operator-artifacts.js",
155
- "scripts/optimize-context.js",
156
- "scripts/org-dashboard.js",
157
- "scripts/partner-orchestration.js",
158
155
  "scripts/perplexity-client.js",
159
- "scripts/predictive-insights.js",
160
156
  "scripts/pr-manager.js",
157
+ "scripts/private-core-boundary.js",
161
158
  "scripts/pro-local-dashboard.js",
162
159
  "scripts/problem-detail.js",
163
160
  "scripts/product-feedback.js",
161
+ "scripts/provider-action-normalizer.js",
164
162
  "scripts/profile-router.js",
163
+ "scripts/prompt-programs.js",
165
164
  "scripts/prompt-eval.js",
166
165
  "scripts/prompt-guard.js",
166
+ "scripts/post-training-governance.js",
167
+ "scripts/production-agent-readiness.js",
167
168
  "scripts/published-cli.js",
168
- "scripts/pulse.js",
169
169
  "scripts/rate-limiter.js",
170
- "scripts/reflector-agent.js",
171
170
  "scripts/risk-scorer.js",
172
171
  "scripts/rlaif-self-audit.js",
173
172
  "scripts/rubric-engine.js",
174
- "scripts/sales-pipeline.js",
175
173
  "scripts/secret-scanner.js",
176
174
  "scripts/security-scanner.js",
177
175
  "scripts/self-distill-agent.js",
178
176
  "scripts/self-heal.js",
177
+ "scripts/scaling-law-claims.js",
179
178
  "scripts/semantic-dedup.js",
180
179
  "scripts/semantic-layer.js",
181
180
  "scripts/seo-gsd.js",
182
- "scripts/session-episode-store.js",
183
- "scripts/session-health-sensor.js",
184
- "scripts/session-report.js",
185
181
  "scripts/settings-hierarchy.js",
186
182
  "scripts/skill-generator.js",
183
+ "scripts/skill-rag-router.js",
187
184
  "scripts/slo-alert-engine.js",
188
185
  "scripts/spec-gate.js",
189
186
  "scripts/statusline-cache-path.js",
@@ -194,21 +191,23 @@
194
191
  "scripts/statusline-meta.js",
195
192
  "scripts/statusline-tower.js",
196
193
  "scripts/statusline.sh",
197
- "scripts/swarm-coordinator.js",
194
+ "scripts/student-consistent-training.js",
195
+ "scripts/synthetic-data-provenance.js",
196
+ "scripts/task-context-result.js",
198
197
  "scripts/telemetry-analytics.js",
199
198
  "scripts/thompson-sampling.js",
200
199
  "scripts/thumbgate-search.js",
200
+ "scripts/token-tco.js",
201
201
  "scripts/token-savings.js",
202
- "scripts/tool-kpi-tracker.js",
203
202
  "scripts/tool-registry.js",
204
203
  "scripts/user-profile.js",
205
204
  "scripts/validate-workflow-contract.js",
206
205
  "scripts/vector-store.js",
206
+ "scripts/verifier-scoring.js",
207
207
  "scripts/verification-loop.js",
208
- "scripts/webhook-delivery.js",
209
208
  "scripts/workflow-runs.js",
210
209
  "scripts/workflow-sentinel.js",
211
- "scripts/workflow-sprint-intake.js",
210
+ "scripts/workspace-agent-routines.js",
212
211
  "scripts/workspace-evolver.js",
213
212
  "scripts/xmemory-lite.js",
214
213
  "skills/thumbgate/SKILL.md",
@@ -234,6 +233,7 @@
234
233
  "creator:links": "node scripts/creator-campaigns.js",
235
234
  "stripe:live": "node scripts/stripe-live-status.js",
236
235
  "gtm:revenue-loop": "node scripts/autonomous-sales-agent.js",
236
+ "gtm:aiventyx": "node scripts/aiventyx-marketplace-plan.js",
237
237
  "sales:pipeline": "node scripts/sales-pipeline.js",
238
238
  "social:prepare": "node scripts/social-pipeline.js prepare",
239
239
  "social:post": "node scripts/social-pipeline.js post",
@@ -247,7 +247,6 @@
247
247
  "social:poll:instagram": "node scripts/social-analytics/pollers/instagram.js",
248
248
  "social:poll:tiktok": "node scripts/social-analytics/pollers/tiktok.js",
249
249
  "social:poll:linkedin": "node scripts/social-analytics/pollers/linkedin.js",
250
- "social:poll:x": "node scripts/social-analytics/pollers/x.js",
251
250
  "social:poll:reddit": "node scripts/social-analytics/pollers/reddit.js",
252
251
  "social:poll:threads": "node scripts/social-analytics/pollers/threads.js",
253
252
  "social:poll:youtube": "node scripts/social-analytics/pollers/youtube.js",
@@ -268,7 +267,7 @@
268
267
  "trace:eval": "node scripts/decision-trace.js eval",
269
268
  "social:reply-monitor": "node scripts/social-reply-monitor.js",
270
269
  "social:reply-monitor:dry": "node scripts/social-reply-monitor.js --dry-run",
271
- "test": "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:zernio-canonical-pollers && npm run test:zernio-status && npm run test:obsidian-export && npm run test:lesson-db && npm run test:lesson-rotation && npm run test:memory-dedup && npm run test:feedback-quality && npm run test:sync-version && npm run test:check-congruence && npm run test:tool-registry && npm run test:feedback-to-rules && npm run test:memory-firewall && npm run test:belief-update && npm run test:hosted-config && npm run test:operational-summary && npm run test:operator-artifacts && npm run test:operator-key-auth && npm run test:cloudflare-sandbox && npm run test:mcp-config && npm run test:plan-gate && npm run test:pulse && npm run test:semantic-layer && npm run test:data-pipeline && npm run test:optimize-context && npm run test:principle-extractor && npm run test:analytics-window && npm run test:funnel-analytics && npm run test:experiment-tracker && npm run test:build-metadata && npm run test:context-engine && npm run test:hf-papers && npm run test:marketing-experiment && npm run test:seo-gsd && npm run test:verify-run && npm run test:export-dpo-pairs && npm run test:export-hf-dataset && npm run test:license && npm run test:bot-detector && npm run test:postinstall && npm run test:funnel-invariants && npm run test:cli-telemetry && npm run test:pro-parity && npm run test:model-tier-router && npm run test:computer-use-firewall && npm run test:skill-exporter && npm run test:statusline && npm run test:evolution && npm run test:org-dashboard && npm run test:multi-hop-recall && npm run test:synthetic-dpo && npm run test:thumbgate-skill && npm run test:learn-hub && npm run test:feedback-fallback && npm run test:metaclaw && npm run test:server-lock && npm run test:control-tower && npm run test:pii-scanner && npm run test:data-governance && npm run test:lesson-inference && npm run test:semantic-dedup && npm run test:fs-utils && npm run test:cli-schema && npm run test:explore && npm run test:lesson-reranker && npm run test:lesson-retrieval && npm run test:cross-encoder && npm run test:reflector-agent && npm run test:feedback-session && npm run test:feedback-history-distiller && npm run test:hallucination-detector && npm run test:history-distiller && npm run test:predictive-insights && npm run test:prove-predictive-insights && npm run test:statusbar-cli && npm run test:generate-instagram-card && npm run test:instagram-thumbgate-post && npm run test:publish-instagram-thumbgate && npm run test:lesson-synthesis && npm run test:lesson-canonical && npm run test:background-governance && npm run test:memory-migration && npm run test:prompt-dlp && npm run test:ephemeral-store && npm run test:agent-security && npm run test:skill-progressive && npm run test:per-step-scoring && npm run test:weekly-auto-post && npm run test:social-post-hourly && npm run test:social-quality-gate && npm run test:a2ui-engine && npm run test:gate-satisfy && npm run test:money-watcher && npm run test:budget && npm run test:quick-start && npm run test:utm && npm run test:product-feedback && npm run test:feedback-root-consolidator && npm run test:engagement-audit && npm run test:install-growth-automation && npm run test:publish-thumbgate-launch && npm run test: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: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-bot-guard && 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:prompt-eval && npm run test:demo-voiceover && npm run test:gate-coherence && npm run test:gate-eval && npm run test:high-roi && npm run test:public-static-assets && npm run test:token-savings && npm run test:numbers-page && npm run test:workflow-gate-checkpoint && npm run test:lesson-export-import && npm run test:landing-page-claims && npm run test: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: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",
270
+ "test": "npm run test:schema && npm run test:loop && npm run test:dpo && npm run test:kto && npm run test:api && npm run test:proof && npm run test:e2e && npm run test:rlaif && npm run test:attribution && npm run test:quality && npm run test:intelligence && npm run test:training-export && npm run test:deployment && npm run test:operational-integrity && npm run test:workflow && npm run test:billing && npm run test:cli && npm run test:watcher && npm run test:autoresearch && npm run test:ops && npm run test:session-analyzer && npm run test:tessl && npm run test:gates && npm run test:evoskill && npm run test:gates-hardening && npm run test:workers && npm run test:social-analytics && npm run test:memalign && npm run test:xmemory-lite && npm run test:filesystem-search && npm run test:zernio && npm run test:platform-limits && npm run test:post-video && npm run test:post-everywhere-instagram && npm run test:post-everywhere-channels && npm run test:post-everywhere-zernio-default && npm run test:zernio-canonical-pollers && npm run test:zernio-status && npm run test:obsidian-export && npm run test:lesson-db && npm run test:lesson-rotation && npm run test:memory-dedup && npm run test:feedback-quality && npm run test:sync-version && npm run test:check-congruence && npm run test:tool-registry && npm run test:feedback-to-rules && npm run test:memory-firewall && npm run test:belief-update && npm run test:hosted-config && npm run test:operational-summary && npm run test:operational-dashboard && npm run test:operator-artifacts && npm run test:operator-key-auth && npm run test:cloudflare-sandbox && npm run test:mcp-config && npm run test:plan-gate && npm run test:pulse && npm run test:semantic-layer && npm run test:data-pipeline && npm run test:optimize-context && npm run test:principle-extractor && npm run test:analytics-window && npm run test:funnel-analytics && npm run test:experiment-tracker && npm run test:build-metadata && npm run test:context-engine && npm run test:hf-papers && npm run test:marketing-experiment && npm run test:seo-gsd && npm run test:verify-run && npm run test:export-dpo-pairs && npm run test:export-hf-dataset && npm run test:license && npm run test:bot-detector && npm run test:postinstall && npm run test:funnel-invariants && npm run test:cli-telemetry && npm run test:pro-parity && npm run test:model-tier-router && npm run test:computer-use-firewall && npm run test:skill-exporter && npm run test:statusline && npm run test:evolution && npm run test:org-dashboard && npm run test:multi-hop-recall && npm run test:synthetic-dpo && npm run test:thumbgate-skill && npm run test:learn-hub && npm run test:feedback-fallback && npm run test:metaclaw && npm run test:server-lock && npm run test:control-tower && npm run test:pii-scanner && npm run test:data-governance && npm run test:lesson-inference && npm run test:semantic-dedup && npm run test:fs-utils && npm run test:cli-schema && npm run test:explore && npm run test:lesson-reranker && npm run test:lesson-retrieval && npm run test:cross-encoder && npm run test:reflector-agent && npm run test:feedback-session && npm run test:feedback-history-distiller && npm run test:hallucination-detector && npm run test:history-distiller && npm run test:predictive-insights && npm run test:prove-predictive-insights && npm run test:statusbar-cli && npm run test:generate-instagram-card && npm run test:instagram-thumbgate-post && npm run test:publish-instagram-thumbgate && npm run test:lesson-synthesis && npm run test:lesson-canonical && npm run test:background-governance && npm run test:memory-migration && npm run test:prompt-dlp && npm run test:ephemeral-store && npm run test:agent-security && npm run test:skill-progressive && npm run test:per-step-scoring && npm run test:weekly-auto-post && npm run test:social-post-hourly && npm run test:social-quality-gate && npm run test:a2ui-engine && npm run test:gate-satisfy && npm run test:money-watcher && npm run test:budget && npm run test:quick-start && npm run test:utm && npm run test:product-feedback && npm run test:feedback-root-consolidator && npm run test:engagement-audit && npm run test:install-growth-automation && npm run test:publish-thumbgate-launch && npm run test: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: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-bot-guard && npm run test:session-health && npm run test:session-episodes && npm run test:spec-gate && npm run test:decision-trace && npm run test:dashboard-insights && npm run test:telemetry-tracked-link-slug && npm run test:prompt-eval && npm run test:demo-voiceover && npm run test:gate-coherence && npm run test:gate-eval && npm run test:high-roi && npm run test:public-static-assets && npm run test:token-savings && npm run test:numbers-page && npm run test:workflow-gate-checkpoint && npm run test:lesson-export-import && npm run test:landing-page-claims && npm run test:competitive-positioning-marketing && npm run test: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: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:public-core-boundary",
272
271
  "test:swarm-coordinator": "node --test tests/swarm-coordinator.test.js",
273
272
  "test:session-report": "node --test tests/session-report.test.js",
274
273
  "test:require-evidence-gate": "node --test tests/require-evidence-gate.test.js",
@@ -277,7 +276,9 @@
277
276
  "test:session-episodes": "node --test tests/session-episode-store.test.js",
278
277
  "test:spec-gate": "node --test tests/spec-gate.test.js",
279
278
  "test:dashboard-insights": "node --test tests/dashboard-insights.test.js",
279
+ "test:telemetry-tracked-link-slug": "node --test tests/telemetry-tracked-link-slug.test.js",
280
280
  "test:prompt-eval": "node --test tests/prompt-eval.test.js",
281
+ "eval:feedback": "node scripts/prompt-eval.js --from-feedback",
281
282
  "test:decision-trace": "node --test tests/decision-trace.test.js",
282
283
  "test:feedback-fallback": "node --test tests/feedback-fallback.test.js",
283
284
  "test:metaclaw": "node --test tests/metaclaw-features.test.js",
@@ -300,6 +301,7 @@
300
301
  "test:belief-update": "node --test tests/belief-update.test.js",
301
302
  "test:hosted-config": "node --test tests/hosted-config.test.js",
302
303
  "test:operational-summary": "node --test tests/operational-summary.test.js",
304
+ "test:operational-dashboard": "node --test tests/operational-dashboard.test.js",
303
305
  "test:operator-artifacts": "node --test tests/operator-artifacts.test.js",
304
306
  "test:operator-key-auth": "node --test tests/api-operator-key-auth.test.js",
305
307
  "test:cloudflare-sandbox": "node --test tests/cloudflare-dynamic-sandbox.test.js tests/cloudflare-sandbox-api.test.js",
@@ -332,19 +334,19 @@
332
334
  "test:loop": "node scripts/feedback-loop.js --test",
333
335
  "test:dpo": "node scripts/export-dpo-pairs.js --test",
334
336
  "test:kto": "node --test tests/export-kto.test.js",
335
- "test:api": "node --test --test-concurrency=1 tests/api-server.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/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/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",
336
- "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-subway-upgrades.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",
337
+ "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/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/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",
338
+ "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",
337
339
  "test:e2e": "node --test tests/e2e-pipeline.test.js tests/e2e-product-flows.test.js tests/e2e-coverage-contract.test.js",
338
340
  "test:rlaif": "node --test tests/rlaif-self-audit.test.js tests/dpo-optimizer.test.js tests/meta-policy.test.js",
339
341
  "test:attribution": "node --test tests/feedback-attribution.test.js tests/hybrid-feedback-context.test.js",
340
342
  "test:quality": "node --test tests/validate-feedback.test.js",
341
343
  "test:intelligence": "node --test tests/intelligence.test.js",
342
344
  "test:training-export": "node --test tests/training-export.test.js tests/databricks-export.test.js",
343
- "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/revenue-observability-workflow.test.js",
345
+ "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/revenue-observability-workflow.test.js",
344
346
  "test:operational-integrity": "node --test tests/operational-integrity.test.js tests/sync-branch-protection.test.js",
345
- "test:workflow": "node --test tests/workflow-contract.test.js tests/social-marketing-assets.test.js tests/social-pipeline.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/gtm-revenue-loop.test.js tests/sales-pipeline.test.js tests/enterprise-story.test.js tests/ralph-loop.test.js tests/ralph-mode-ci.test.js",
347
+ "test:workflow": "node --test tests/workflow-contract.test.js tests/social-marketing-assets.test.js tests/social-pipeline.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/gtm-revenue-loop.test.js tests/aiventyx-marketplace-plan.test.js tests/sales-pipeline.test.js tests/enterprise-story.test.js tests/ralph-loop.test.js tests/ralph-mode-ci.test.js",
346
348
  "test:sales-pipeline": "node --test tests/sales-pipeline.test.js",
347
- "test:billing": "node --test tests/billing.test.js",
349
+ "test:billing": "node --test tests/billing.test.js tests/stripe-sync-product-images.test.js",
348
350
  "test:cli": "node --test tests/analytics-report.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/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",
349
351
  "test:evolution": "node --test tests/workspace-evolver.test.js",
350
352
  "test:watcher": "node --test tests/jsonl-watcher.test.js",
@@ -352,7 +354,7 @@
352
354
  "test:ops": "node --test 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/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",
353
355
  "test:session-analyzer": "node --test tests/session-analyzer.test.js",
354
356
  "test:tessl": "node --test tests/tessl-export.test.js",
355
- "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/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",
357
+ "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",
356
358
  "test:budget": "node --test tests/budget-enforcer.test.js",
357
359
  "test:workers": "npm --prefix workers ci && npm --prefix workers test",
358
360
  "test:evoskill": "node --test tests/evoskill.test.js",
@@ -411,6 +413,7 @@
411
413
  "test:post-video": "node --test tests/post-video.test.js",
412
414
  "test:post-everywhere-instagram": "node --test tests/post-everywhere-instagram.test.js",
413
415
  "test:post-everywhere-channels": "node --test tests/post-everywhere-channels.test.js",
416
+ "test:post-everywhere-zernio-default": "node --test tests/post-everywhere-zernio-default.test.js",
414
417
  "test:zernio-canonical-pollers": "node --test tests/zernio-canonical-pollers.test.js",
415
418
  "test:zernio-status": "node --test tests/zernio-status.test.js",
416
419
  "test:license": "node --test tests/license.test.js",
@@ -427,10 +430,11 @@
427
430
  "test:control-tower": "node --test tests/control-tower.test.js",
428
431
  "test:pii-scanner": "node --test tests/pii-scanner.test.js",
429
432
  "test:data-governance": "node --test tests/data-governance.test.js",
430
- "test:lesson-inference": "node --test tests/conversation-context.test.js tests/lesson-inference.test.js",
433
+ "test:lesson-inference": "node --test tests/conversation-context.test.js tests/lesson-inference.test.js tests/lesson-prompt-shape.test.js",
431
434
  "test:lesson-retrieval": "node --test tests/lesson-retrieval.test.js",
432
435
  "test:cross-encoder": "node --test tests/cross-encoder-reranker.test.js",
433
436
  "test:reflector-agent": "node --test tests/reflector-agent.test.js",
437
+ "test:public-core-boundary": "node --test tests/public-core-boundary.test.js",
434
438
  "test:feedback-session": "node --test tests/feedback-session.test.js",
435
439
  "test:feedback-history-distiller": "node --test tests/feedback-history-distiller.test.js",
436
440
  "test:hallucination-detector": "node --test tests/hallucination-detector.test.js",
@@ -485,6 +489,7 @@
485
489
  "test:ai-search-visibility": "node --test tests/ai-search-visibility.test.js",
486
490
  "test:security-scanner": "node --test tests/security-scanner.test.js",
487
491
  "test:llm-client": "node --test tests/llm-client.test.js",
492
+ "test:model-candidates": "node --test tests/model-candidates.test.js",
488
493
  "test:managed-lesson-agent": "node --test tests/managed-lesson-agent.test.js",
489
494
  "agent:run": "node scripts/managed-lesson-agent.js",
490
495
  "agent:run:dry": "node scripts/managed-lesson-agent.js --dry-run",
@@ -516,7 +521,8 @@
516
521
  "test:demo-voiceover": "node --test tests/demo-voiceover.test.js",
517
522
  "test:gate-coherence": "node --test tests/gate-coherence.test.js",
518
523
  "test:gate-eval": "node --test tests/gate-eval.test.js",
519
- "test:high-roi": "node --test tests/high-roi.test.js tests/autonomous-workflow.test.js",
524
+ "gate-eval:ci": "node scripts/gate-eval.js run",
525
+ "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",
520
526
  "test:public-static-assets": "node --test tests/public-static-assets.test.js",
521
527
  "test:token-savings": "node --test tests/token-savings.test.js",
522
528
  "test:numbers-page": "node --test tests/numbers-page.test.js",
@@ -524,6 +530,7 @@
524
530
  "workflow:autonomous": "node scripts/autonomous-workflow.js",
525
531
  "test:lesson-export-import": "node --test tests/lesson-export-import.test.js",
526
532
  "test:landing-page-claims": "node --test tests/landing-page-claims.test.js",
533
+ "test:competitive-positioning-marketing": "node --test tests/competitive-positioning-marketing.test.js",
527
534
  "test:dashboard-deeplink-e2e": "node --test tests/dashboard-deeplink-e2e.test.js",
528
535
  "test:public-package-parity": "node --test tests/public-package-parity.test.js",
529
536
  "prepare": "bash bin/install-hooks.sh >/dev/null 2>&1 || true",
@@ -535,7 +542,8 @@
535
542
  "test:mailer": "node --test tests/mailer.test.js tests/mailer-dns.test.js tests/billing-webhook-email.test.js",
536
543
  "test:brand-assets": "node --test tests/brand-assets.test.js",
537
544
  "test:enforcement-teeth": "node --test tests/enforcement-teeth.test.js",
538
- "test:bayes-optimal-gate": "node --test tests/bayes-optimal-gate.test.js"
545
+ "test:bayes-optimal-gate": "node --test tests/bayes-optimal-gate.test.js",
546
+ "test:actionable-remediations": "node --test tests/actionable-remediations.test.js"
539
547
  },
540
548
  "keywords": [
541
549
  "mcp",
@@ -544,7 +552,7 @@
544
552
  "agent-skills",
545
553
  "skill",
546
554
  "context-engineering",
547
- "pre-action-gates",
555
+ "pre-action-checks",
548
556
  "ai-agent-safety",
549
557
  "guardrails",
550
558
  "feedback-memory",
package/public/blog.html CHANGED
@@ -38,13 +38,13 @@
38
38
  "@type": "BlogPosting",
39
39
  "headline": "Your AI agent is a supply chain attack surface. Here's how to gate it.",
40
40
  "datePublished": "2026-04-10",
41
- "keywords": "AI agent security, supply chain attack, pre-action gates, agent governance, ThumbGate"
41
+ "keywords": "AI agent security, supply chain attack, pre-action checks, agent governance, ThumbGate"
42
42
  },
43
43
  {
44
44
  "@type": "BlogPosting",
45
- "headline": "The Claude Code Leak Proves Why Pre-Action Gates Matter",
45
+ "headline": "The Claude Code Leak Proves Why Pre-Action Checks Matter",
46
46
  "datePublished": "2026-04-01",
47
- "keywords": "Claude Code security, Claude Code guardrails, AI agent safety, pre-action gates"
47
+ "keywords": "Claude Code security, Claude Code guardrails, AI agent safety, pre-action checks"
48
48
  },
49
49
  {
50
50
  "@type": "BlogPosting",
@@ -195,9 +195,9 @@
195
195
  something that operates on the <em>input</em> &mdash; before execution.
196
196
  </p>
197
197
 
198
- <h3>Pre-Action Gates via PreToolUse hooks</h3>
198
+ <h3>Pre-Action Checks via PreToolUse hooks</h3>
199
199
  <p>
200
- ThumbGate implements pre-action gates via <code>PreToolUse</code> hooks
200
+ ThumbGate implements pre-action checks via <code>PreToolUse</code> hooks
201
201
  &mdash; interception points that run before every tool invocation. No
202
202
  action reaches execution without passing through the gate. Not Bash
203
203
  commands, not file edits, not web fetches.
@@ -290,7 +290,7 @@
290
290
 
291
291
  <article class="post">
292
292
  <div class="post-date">April 1, 2026</div>
293
- <h2>The Claude Code Leak Proves Why Pre-Action Gates Matter</h2>
293
+ <h2>The Claude Code Leak Proves Why Pre-Action Checks Matter</h2>
294
294
 
295
295
  <p>
296
296
  Anthropic accidentally shipped 512,000 lines of Claude Code source
@@ -314,7 +314,7 @@
314
314
 
315
315
  <p>
316
316
  That's exactly what ThumbGate does. Every Claude Code user — and every
317
- Claw-code user — can add pre-action gates today:
317
+ Claw-code user — can add pre-action checks today:
318
318
  </p>
319
319
 
320
320
  <ul>
@@ -5,8 +5,8 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>ThumbGate for Codex - Auto-Updating MCP Plugin</title>
7
7
  <script defer data-domain="thumbgate-production.up.railway.app" src="https://plausible.io/js/script.js"></script>
8
- <meta name="description" content="Install ThumbGate for Codex with an auto-updating MCP plugin, Pre-Action Gates, thumbs-up/down feedback memory, and a local-first Reliability Gateway.">
9
- <meta name="keywords" content="ThumbGate Codex plugin, Codex MCP server, Codex pre-action gates, Codex guardrails, thumbgate latest, AI coding agent reliability">
8
+ <meta name="description" content="Install ThumbGate for Codex with an auto-updating MCP plugin, Pre-Action Checks, thumbs-up/down feedback memory, and a local-first Reliability Gateway.">
9
+ <meta name="keywords" content="ThumbGate Codex plugin, Codex MCP server, Codex pre-action checks, Codex guardrails, thumbgate latest, AI coding agent reliability">
10
10
  <meta property="og:title" content="ThumbGate for Codex">
11
11
  <meta property="og:description" content="Auto-updating MCP and hook launcher for Codex. One install, then ThumbGate resolves the latest npm runtime when Codex starts.">
12
12
  <meta property="og:type" content="website">
@@ -21,7 +21,7 @@
21
21
  "name": "ThumbGate for Codex",
22
22
  "applicationCategory": "DeveloperApplication",
23
23
  "operatingSystem": "macOS, Linux, Windows with Node.js",
24
- "description": "ThumbGate for Codex installs an MCP server and hook launcher that resolves thumbgate@latest at startup, captures thumbs-up/down feedback, and enforces Pre-Action Gates before risky agent actions run.",
24
+ "description": "ThumbGate for Codex installs an MCP server and hook launcher that resolves thumbgate@latest at startup, captures thumbs-up/down feedback, and enforces Pre-Action Checks before risky agent actions run.",
25
25
  "url": "https://thumbgate-production.up.railway.app/codex-plugin",
26
26
  "downloadUrl": "https://github.com/IgorGanapolsky/ThumbGate/releases/latest/download/thumbgate-codex-plugin.zip",
27
27
  "installUrl": "https://thumbgate-production.up.railway.app/codex-plugin",
@@ -192,7 +192,7 @@
192
192
  <main>
193
193
  <section class="hero">
194
194
  <div class="wrap">
195
- <div class="eyebrow">Codex MCP plugin + Pre-Action Gates</div>
195
+ <div class="eyebrow">Codex MCP plugin + Pre-Action Checks</div>
196
196
  <h1>Give Codex a thumbs-down once. Block the repeat before it runs again.</h1>
197
197
  <p class="sub" style="font-size:13px;opacity:0.85;">Updated: <time datetime="2026-04-20">2026-04-20</time> · by <a href="https://github.com/IgorGanapolsky" style="color:inherit;">Igor Ganapolsky</a></p>
198
198
  <p class="sub">ThumbGate wires Codex into local-first feedback memory, MCP tools, and hook enforcement. The launcher resolves <code>thumbgate@latest</code> when Codex starts, so published npm fixes reach your active MCP server after a restart.</p>
@@ -218,7 +218,7 @@
218
218
  </div>
219
219
  <div class="tile">
220
220
  <h3>Hard stop before action</h3>
221
- <p>Pre-Action Gates evaluate commands, file edits, publishes, merges, and other high-risk actions before execution. Bad repeats get blocked before they burn time or tokens.</p>
221
+ <p>Pre-Action Checks evaluate commands, file edits, publishes, merges, and other high-risk actions before execution. Bad repeats get blocked before they burn time or tokens.</p>
222
222
  </div>
223
223
  </section>
224
224
 
@@ -276,7 +276,7 @@
276
276
 
277
277
  <footer>
278
278
  <div class="wrap">
279
- ThumbGate MIT License. Pre-Action Gates, DPO-ready feedback, and local-first Codex enforcement.
279
+ ThumbGate MIT License. Pre-Action Checks, DPO-ready feedback, and local-first Codex enforcement.
280
280
  </div>
281
281
  </footer>
282
282
  </body>