thumbgate 1.29.2 → 1.31.0

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 (111) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.well-known/mcp/server-card.json +1 -1
  3. package/README.md +54 -16
  4. package/adapters/claude/.mcp.json +2 -2
  5. package/adapters/forge/forge.yaml +3 -3
  6. package/adapters/mcp/server-stdio.js +143 -14
  7. package/adapters/opencode/opencode.json +1 -1
  8. package/bench/observability-eval-suite.json +2 -2
  9. package/bin/cli.js +154 -36
  10. package/config/evals/generation-quality-golden.json +95 -0
  11. package/config/evals/rag-answer-quality-golden.json +91 -0
  12. package/config/evals/retrieval-hybrid-ablation.json +66 -0
  13. package/config/evals/retrieval-ranking-golden.json +522 -0
  14. package/config/gates/default.json +217 -50
  15. package/config/mcp-allowlists.json +215 -185
  16. package/config/model-tiers.json +7 -2
  17. package/config/post-deploy-marketing-pages.json +26 -1
  18. package/glama.json +6 -0
  19. package/package.json +94 -11
  20. package/public/architecture.html +130 -0
  21. package/public/assets/diagrams/agent-integration.png +0 -0
  22. package/public/assets/diagrams/before-after.svg +22 -0
  23. package/public/assets/diagrams/decision.svg +36 -0
  24. package/public/assets/diagrams/feedback-pipeline.png +0 -0
  25. package/public/assets/diagrams/hero-thumbs.svg +68 -0
  26. package/public/assets/diagrams/loop.svg +40 -0
  27. package/public/assets/diagrams/plugin-topology.png +0 -0
  28. package/public/assets/diagrams/pre-action-gate-loop.svg +59 -0
  29. package/public/assets/diagrams/self-improving-thumbs-loop.svg +105 -0
  30. package/public/assets/diagrams/stack.svg +18 -0
  31. package/public/assets/diagrams/thumbgate-architecture.png +0 -0
  32. package/public/case-studies.html +151 -0
  33. package/public/compare.html +1 -0
  34. package/public/dashboard.html +126 -28
  35. package/public/eval-scorecard.html +195 -0
  36. package/public/eval-scorecard.json +18 -0
  37. package/public/evaluations.html +168 -0
  38. package/public/index.html +143 -13
  39. package/public/numbers.html +3 -2
  40. package/public/pricing.html +143 -30
  41. package/public/whitepaper.html +189 -0
  42. package/scripts/a-plus-evidence-scorecard.js +303 -0
  43. package/scripts/activation-quickstart.js +1 -0
  44. package/scripts/agent-outcome-monitor.js +71 -1
  45. package/scripts/async-eval-observability.js +36 -11
  46. package/scripts/audit-trail.js +37 -1
  47. package/scripts/auto-promote-gates.js +149 -34
  48. package/scripts/billing.js +3 -1
  49. package/scripts/claude-feedback-sync.js +3 -2
  50. package/scripts/cli-feedback.js +13 -7
  51. package/scripts/colbert-style-maxsim.js +236 -0
  52. package/scripts/cross-encoder-reranker.js +359 -126
  53. package/scripts/dashboard-chat.js +350 -17
  54. package/scripts/document-intake.js +283 -7
  55. package/scripts/eval-quality-suite.js +204 -0
  56. package/scripts/feedback-aggregate.js +5 -2
  57. package/scripts/feedback-loop.js +359 -189
  58. package/scripts/feedback-paths.js +32 -13
  59. package/scripts/feedback-quality.js +53 -0
  60. package/scripts/filesystem-search.js +17 -7
  61. package/scripts/gates-engine.js +98 -4
  62. package/scripts/generate-case-study-outreach.js +253 -0
  63. package/scripts/generate-eval-scorecard.js +276 -0
  64. package/scripts/growth-campaigns.js +183 -0
  65. package/scripts/harness-tool-names.js +70 -0
  66. package/scripts/hook-runtime.js +10 -3
  67. package/scripts/jsonl-watcher.js +1 -0
  68. package/scripts/lesson-db.js +16 -5
  69. package/scripts/lesson-embedding-index.js +67 -20
  70. package/scripts/lesson-embedding-maintenance.js +177 -0
  71. package/scripts/lesson-inference.js +23 -4
  72. package/scripts/lesson-reranker.js +55 -9
  73. package/scripts/lesson-retrieval.js +375 -32
  74. package/scripts/lesson-search.js +48 -11
  75. package/scripts/llm-client.js +304 -15
  76. package/scripts/mcp-config.js +26 -5
  77. package/scripts/mcp-oauth.js +37 -2
  78. package/scripts/model-eval.js +308 -0
  79. package/scripts/model-tier-router.js +593 -0
  80. package/scripts/parallel-workflow-orchestrator.js +86 -22
  81. package/scripts/pragmatic-hybrid-search.js +379 -0
  82. package/scripts/published-cli.js +11 -1
  83. package/scripts/rag-document-pipeline.js +461 -0
  84. package/scripts/rag-structured-output.js +441 -0
  85. package/scripts/ragas-style-metrics.js +351 -0
  86. package/scripts/refresh-proof-pack.js +261 -0
  87. package/scripts/request-envelope.js +178 -0
  88. package/scripts/rerank-pipeline.js +370 -0
  89. package/scripts/rerank-quality-eval.js +155 -0
  90. package/scripts/retrieval-hybrid-ablation.js +120 -0
  91. package/scripts/retrieval-quality-tier.js +118 -0
  92. package/scripts/risk-scorer.js +144 -15
  93. package/scripts/secret-scanner.js +395 -4
  94. package/scripts/self-distill-agent.js +7 -1
  95. package/scripts/self-healing-check.js +25 -0
  96. package/scripts/skill-packs.js +183 -0
  97. package/scripts/slow-loop.js +72 -0
  98. package/scripts/statusline-links.js +1 -1
  99. package/scripts/statusline-local-stats.js +1 -1
  100. package/scripts/statusline.sh +8 -1
  101. package/scripts/telemetry-analytics.js +13 -1
  102. package/scripts/thumbgate-bench.js +13 -0
  103. package/scripts/thumbgate-search.js +98 -6
  104. package/scripts/tier-budget-guard.js +186 -0
  105. package/scripts/tool-kpi-tracker.js +124 -0
  106. package/scripts/tool-registry.js +95 -1
  107. package/scripts/vector-store.js +108 -4
  108. package/scripts/verify-marketing-pages-deployed.js +85 -3
  109. package/server.json +44 -0
  110. package/smithery.yaml +17 -0
  111. package/src/api/server.js +424 -99
@@ -2,248 +2,278 @@
2
2
  "version": 3,
3
3
  "profiles": {
4
4
  "default": [
5
- "recall",
6
- "unified_context",
7
- "set_task_scope",
8
- "get_scope_state",
9
- "satisfy_gate",
10
- "capture_feedback",
11
- "open_feedback_session",
12
5
  "append_feedback_context",
13
- "finalize_feedback_session",
14
- "feedback_summary",
15
- "search_lessons",
16
- "retrieve_lessons",
17
- "search_thumbgate",
18
- "plan_multimodal_retrieval",
19
- "plan_context_footprint",
20
- "plan_agent_design_governance",
21
- "plan_proactive_agent_eval_guardrails",
22
- "plan_reward_hacking_guardrails",
23
- "plan_oss_pr_opportunity_scout",
24
- "plan_chatgpt_ads_readiness",
25
- "reflect_on_feedback",
26
- "feedback_stats",
27
- "diagnose_failure",
28
- "list_intents",
29
- "plan_intent",
30
- "start_handoff",
31
- "complete_handoff",
6
+ "approve_protected_action",
32
7
  "bootstrap_internal_agent",
33
- "prevention_rules",
34
- "export_dpo_pairs",
35
- "export_hf_dataset",
36
- "export_databricks_bundle",
8
+ "capture_feedback",
9
+ "capture_memory_feedback",
10
+ "check_operational_integrity",
11
+ "commerce_recall",
12
+ "complete_handoff",
37
13
  "construct_context_pack",
38
- "evaluate_context_pack",
39
14
  "context_provenance",
40
- "commerce_recall",
41
- "generate_skill",
42
- "set_branch_governance",
43
- "get_branch_governance",
44
- "approve_protected_action",
45
- "track_action",
46
- "detect_noop",
47
- "record_action_receipt",
48
- "get_action_receipts",
49
- "verify_claim",
50
- "check_operational_integrity",
51
- "workflow_sentinel",
52
- "register_claim_gate",
53
- "gate_stats",
15
+ "context_stuff_lessons",
54
16
  "dashboard",
55
- "settings_status",
56
- "native_messaging_audit",
57
- "list_harnesses",
58
- "run_harness",
59
- "run_autoresearch",
60
- "estimate_uncertainty",
61
- "get_business_metrics",
62
- "describe_semantic_entity",
63
- "capture_memory_feedback",
64
- "get_reliability_rules",
65
17
  "describe_reliability_entity",
66
- "report_product_issue",
67
- "require_evidence_for_claim",
18
+ "describe_semantic_entity",
19
+ "detect_noop",
20
+ "diagnose_failure",
68
21
  "distribute_context_to_agents",
69
- "session_report",
22
+ "estimate_uncertainty",
23
+ "evaluate_context_pack",
24
+ "export_databricks_bundle",
25
+ "export_dpo_pairs",
26
+ "export_hf_dataset",
27
+ "feedback_stats",
28
+ "feedback_summary",
29
+ "finalize_feedback_session",
30
+ "gate_check",
31
+ "gate_stats",
70
32
  "generate_operator_artifact",
71
- "run_managed_lesson_agent",
33
+ "generate_skill",
34
+ "get_action_receipts",
35
+ "get_agent_outcome_metrics",
36
+ "get_branch_governance",
37
+ "get_business_metrics",
38
+ "get_reliability_rules",
39
+ "get_scope_state",
40
+ "get_task_outcomes",
41
+ "list_harnesses",
42
+ "list_human_escalations",
43
+ "list_intents",
72
44
  "managed_agent_status",
73
- "run_self_distill",
74
- "self_distill_status",
75
- "context_stuff_lessons",
76
- "perplexity_search",
45
+ "native_messaging_audit",
46
+ "open_feedback_session",
47
+ "parallel_workflow",
77
48
  "perplexity_ask",
78
- "perplexity_research",
79
49
  "perplexity_reason",
80
- "suggest_fix"
81
- ],
82
- "essential": [
83
- "recall",
84
- "unified_context",
85
- "set_task_scope",
86
- "get_scope_state",
87
- "satisfy_gate",
88
- "capture_feedback",
89
- "open_feedback_session",
90
- "append_feedback_context",
91
- "finalize_feedback_session",
92
- "search_lessons",
93
- "retrieve_lessons",
94
- "search_thumbgate",
95
- "plan_multimodal_retrieval",
96
- "plan_context_footprint",
50
+ "perplexity_research",
51
+ "perplexity_search",
97
52
  "plan_agent_design_governance",
53
+ "plan_chatgpt_ads_readiness",
54
+ "plan_context_footprint",
55
+ "plan_intent",
56
+ "plan_multimodal_retrieval",
57
+ "plan_oss_pr_opportunity_scout",
98
58
  "plan_proactive_agent_eval_guardrails",
99
59
  "plan_reward_hacking_guardrails",
100
- "plan_oss_pr_opportunity_scout",
101
- "plan_chatgpt_ads_readiness",
102
- "reflect_on_feedback",
103
60
  "prevention_rules",
61
+ "recall",
62
+ "record_action_receipt",
63
+ "record_task_outcome",
64
+ "reflect_on_feedback",
65
+ "register_claim_gate",
66
+ "report_product_issue",
67
+ "request_human_escalation",
68
+ "require_evidence_for_claim",
69
+ "retrieve_lessons",
70
+ "run_autoresearch",
71
+ "run_harness",
72
+ "run_managed_lesson_agent",
73
+ "run_self_distill",
74
+ "satisfy_gate",
75
+ "search_lessons",
76
+ "search_thumbgate",
77
+ "self_distill_status",
78
+ "session_report",
104
79
  "set_branch_governance",
105
- "get_branch_governance",
106
- "approve_protected_action",
80
+ "set_task_scope",
81
+ "settings_status",
82
+ "start_handoff",
83
+ "suggest_fix",
107
84
  "track_action",
85
+ "unified_context",
108
86
  "verify_claim",
87
+ "workflow_sentinel"
88
+ ],
89
+ "essential": [
90
+ "append_feedback_context",
91
+ "approve_protected_action",
92
+ "capture_feedback",
109
93
  "check_operational_integrity",
110
- "workflow_sentinel",
94
+ "estimate_uncertainty",
111
95
  "feedback_stats",
112
96
  "feedback_summary",
113
- "estimate_uncertainty",
114
- "report_product_issue",
115
- "require_evidence_for_claim",
116
- "session_report",
97
+ "finalize_feedback_session",
98
+ "gate_check",
117
99
  "generate_operator_artifact",
118
- "suggest_fix"
119
- ],
120
- "commerce": [
121
- "capture_feedback",
100
+ "get_agent_outcome_metrics",
101
+ "get_branch_governance",
102
+ "get_scope_state",
103
+ "get_task_outcomes",
104
+ "list_human_escalations",
105
+ "open_feedback_session",
106
+ "parallel_workflow",
107
+ "plan_agent_design_governance",
108
+ "plan_chatgpt_ads_readiness",
109
+ "plan_context_footprint",
110
+ "plan_multimodal_retrieval",
111
+ "plan_oss_pr_opportunity_scout",
112
+ "plan_proactive_agent_eval_guardrails",
113
+ "plan_reward_hacking_guardrails",
114
+ "prevention_rules",
122
115
  "recall",
116
+ "record_task_outcome",
117
+ "reflect_on_feedback",
118
+ "report_product_issue",
119
+ "request_human_escalation",
120
+ "require_evidence_for_claim",
123
121
  "retrieve_lessons",
122
+ "satisfy_gate",
123
+ "search_lessons",
124
124
  "search_thumbgate",
125
- "commerce_recall",
126
- "set_task_scope",
127
- "get_scope_state",
125
+ "session_report",
128
126
  "set_branch_governance",
129
- "get_branch_governance",
130
- "approve_protected_action",
127
+ "set_task_scope",
128
+ "suggest_fix",
131
129
  "track_action",
130
+ "unified_context",
132
131
  "verify_claim",
132
+ "workflow_sentinel"
133
+ ],
134
+ "commerce": [
135
+ "approve_protected_action",
136
+ "capture_feedback",
133
137
  "check_operational_integrity",
134
- "workflow_sentinel",
135
- "prevention_rules",
138
+ "commerce_recall",
136
139
  "feedback_stats",
137
140
  "feedback_summary",
138
- "suggest_fix"
139
- ],
140
- "readonly": [
141
+ "gate_check",
142
+ "get_agent_outcome_metrics",
143
+ "get_branch_governance",
144
+ "get_scope_state",
145
+ "get_task_outcomes",
146
+ "list_human_escalations",
147
+ "prevention_rules",
141
148
  "recall",
142
- "unified_context",
143
- "feedback_summary",
144
- "search_lessons",
149
+ "record_task_outcome",
150
+ "request_human_escalation",
145
151
  "retrieve_lessons",
146
152
  "search_thumbgate",
147
- "plan_multimodal_retrieval",
148
- "plan_context_footprint",
149
- "plan_agent_design_governance",
150
- "plan_proactive_agent_eval_guardrails",
151
- "plan_reward_hacking_guardrails",
152
- "plan_oss_pr_opportunity_scout",
153
- "plan_chatgpt_ads_readiness",
154
- "feedback_stats",
155
- "diagnose_failure",
156
- "list_harnesses",
157
- "list_intents",
158
- "plan_intent",
159
- "start_handoff",
160
- "complete_handoff",
161
- "context_provenance",
162
- "get_scope_state",
163
- "get_branch_governance",
153
+ "set_branch_governance",
154
+ "set_task_scope",
155
+ "suggest_fix",
156
+ "track_action",
164
157
  "verify_claim",
158
+ "workflow_sentinel"
159
+ ],
160
+ "readonly": [
165
161
  "check_operational_integrity",
166
- "workflow_sentinel",
167
- "gate_stats",
162
+ "context_provenance",
168
163
  "dashboard",
169
- "settings_status",
170
- "native_messaging_audit",
171
- "get_business_metrics",
172
- "describe_semantic_entity",
173
- "get_reliability_rules",
174
164
  "describe_reliability_entity",
175
- "require_evidence_for_claim",
176
- "session_report",
165
+ "describe_semantic_entity",
166
+ "diagnose_failure",
167
+ "feedback_stats",
168
+ "feedback_summary",
169
+ "gate_check",
170
+ "gate_stats",
177
171
  "generate_operator_artifact",
178
- "perplexity_search",
172
+ "get_agent_outcome_metrics",
173
+ "get_branch_governance",
174
+ "get_business_metrics",
175
+ "get_reliability_rules",
176
+ "get_scope_state",
177
+ "get_task_outcomes",
178
+ "list_harnesses",
179
+ "list_human_escalations",
180
+ "list_intents",
181
+ "native_messaging_audit",
179
182
  "perplexity_ask",
180
- "suggest_fix"
181
- ],
182
- "dispatch": [
183
- "recall",
184
- "unified_context",
185
- "feedback_summary",
186
- "search_lessons",
187
- "retrieve_lessons",
188
- "search_thumbgate",
189
- "plan_multimodal_retrieval",
190
- "plan_context_footprint",
183
+ "perplexity_search",
191
184
  "plan_agent_design_governance",
192
- "plan_proactive_agent_eval_guardrails",
193
- "plan_reward_hacking_guardrails",
194
- "plan_oss_pr_opportunity_scout",
195
185
  "plan_chatgpt_ads_readiness",
196
- "feedback_stats",
197
- "diagnose_failure",
198
- "list_harnesses",
199
- "list_intents",
186
+ "plan_context_footprint",
200
187
  "plan_intent",
201
- "run_harness",
202
- "context_provenance",
203
- "get_scope_state",
204
- "get_branch_governance",
188
+ "plan_multimodal_retrieval",
189
+ "plan_oss_pr_opportunity_scout",
190
+ "plan_proactive_agent_eval_guardrails",
191
+ "plan_reward_hacking_guardrails",
192
+ "recall",
193
+ "require_evidence_for_claim",
194
+ "retrieve_lessons",
195
+ "search_lessons",
196
+ "search_thumbgate",
197
+ "session_report",
198
+ "settings_status",
199
+ "suggest_fix",
200
+ "unified_context",
205
201
  "verify_claim",
202
+ "workflow_sentinel"
203
+ ],
204
+ "dispatch": [
206
205
  "check_operational_integrity",
207
- "workflow_sentinel",
208
- "gate_stats",
206
+ "context_provenance",
209
207
  "dashboard",
210
- "settings_status",
211
- "native_messaging_audit",
212
- "get_business_metrics",
208
+ "describe_reliability_entity",
213
209
  "describe_semantic_entity",
210
+ "diagnose_failure",
211
+ "feedback_stats",
212
+ "feedback_summary",
213
+ "gate_check",
214
+ "gate_stats",
215
+ "generate_operator_artifact",
216
+ "get_agent_outcome_metrics",
217
+ "get_branch_governance",
218
+ "get_business_metrics",
214
219
  "get_reliability_rules",
215
- "describe_reliability_entity",
220
+ "get_scope_state",
221
+ "get_task_outcomes",
222
+ "list_harnesses",
223
+ "list_human_escalations",
224
+ "list_intents",
225
+ "native_messaging_audit",
226
+ "perplexity_ask",
227
+ "perplexity_search",
228
+ "plan_agent_design_governance",
229
+ "plan_chatgpt_ads_readiness",
230
+ "plan_context_footprint",
231
+ "plan_intent",
232
+ "plan_multimodal_retrieval",
233
+ "plan_oss_pr_opportunity_scout",
234
+ "plan_proactive_agent_eval_guardrails",
235
+ "plan_reward_hacking_guardrails",
236
+ "recall",
216
237
  "require_evidence_for_claim",
238
+ "retrieve_lessons",
239
+ "run_harness",
240
+ "search_lessons",
241
+ "search_thumbgate",
217
242
  "session_report",
218
- "generate_operator_artifact",
219
- "perplexity_search",
220
- "perplexity_ask",
221
- "suggest_fix"
243
+ "settings_status",
244
+ "suggest_fix",
245
+ "unified_context",
246
+ "verify_claim",
247
+ "workflow_sentinel"
222
248
  ],
223
249
  "locked": [
250
+ "check_operational_integrity",
251
+ "diagnose_failure",
224
252
  "feedback_summary",
225
- "search_lessons",
226
- "retrieve_lessons",
227
- "search_thumbgate",
228
- "plan_context_footprint",
253
+ "gate_check",
254
+ "generate_operator_artifact",
255
+ "get_agent_outcome_metrics",
256
+ "get_branch_governance",
257
+ "get_scope_state",
258
+ "get_task_outcomes",
259
+ "list_harnesses",
260
+ "list_human_escalations",
261
+ "list_intents",
262
+ "native_messaging_audit",
229
263
  "plan_agent_design_governance",
230
- "plan_proactive_agent_eval_guardrails",
231
- "plan_reward_hacking_guardrails",
232
- "plan_oss_pr_opportunity_scout",
233
264
  "plan_chatgpt_ads_readiness",
234
- "diagnose_failure",
235
- "list_intents",
265
+ "plan_context_footprint",
236
266
  "plan_intent",
237
- "list_harnesses",
238
- "get_scope_state",
239
- "get_branch_governance",
240
- "verify_claim",
241
- "check_operational_integrity",
242
- "workflow_sentinel",
267
+ "plan_oss_pr_opportunity_scout",
268
+ "plan_proactive_agent_eval_guardrails",
269
+ "plan_reward_hacking_guardrails",
270
+ "retrieve_lessons",
271
+ "search_lessons",
272
+ "search_thumbgate",
243
273
  "settings_status",
244
- "native_messaging_audit",
245
- "generate_operator_artifact",
246
- "suggest_fix"
274
+ "suggest_fix",
275
+ "verify_claim",
276
+ "workflow_sentinel"
247
277
  ]
248
278
  }
249
279
  }
@@ -4,6 +4,7 @@
4
4
  "nano": {
5
5
  "label": "GPT-5.4 nano",
6
6
  "modelId": "gpt-5.4-nano",
7
+ "provider": "openai",
7
8
  "taskTypes": ["classification", "extraction", "ranking", "labeling", "summarization"],
8
9
  "maxContextTokens": 32000,
9
10
  "costMultiplier": 0.1
@@ -11,6 +12,7 @@
11
12
  "mini": {
12
13
  "label": "GPT-5.4 mini",
13
14
  "modelId": "gpt-5.4-mini",
15
+ "provider": "openai",
14
16
  "taskTypes": ["code-edit", "test-generation", "review", "tool-use", "debugging"],
15
17
  "maxContextTokens": 200000,
16
18
  "costMultiplier": 0.4
@@ -18,6 +20,7 @@
18
20
  "frontier": {
19
21
  "label": "GPT-5.5",
20
22
  "modelId": "gpt-5.5",
23
+ "provider": "openai",
21
24
  "taskTypes": ["architecture", "cross-file", "complex-debugging", "large-context"],
22
25
  "maxContextTokens": 1000000,
23
26
  "costMultiplier": 1.0,
@@ -27,7 +30,9 @@
27
30
  }
28
31
  },
29
32
  "localFrontier": {
30
- "label": "GLM 5.1",
33
+ "label": "Configured local frontier",
34
+ "modelId": null,
35
+ "provider": "openai-compatible",
31
36
  "taskTypes": [],
32
37
  "maxContextTokens": 1000000,
33
38
  "costMultiplier": 0.0,
@@ -35,7 +40,7 @@
35
40
  "tokenCap": 2000000,
36
41
  "requireReason": false
37
42
  },
38
- "notes": "Self-hosted open-source tier. Activate via THUMBGATE_LOCAL_MODEL_FAMILY=glm-*. Zero marginal cost; no token budget enforcement needed."
43
+ "notes": "Self-hosted open-source tier. The runtime derives the served model from THUMBGATE_MODEL_ROLE_NORMAL, THUMBGATE_LOCAL_MODEL, THUMBGATE_MODEL_ID, or THUMBGATE_LOCAL_MODEL_FAMILY. Zero marginal API cost; no token budget enforcement needed."
39
44
  }
40
45
  },
41
46
  "escalationRules": {
@@ -5,7 +5,7 @@
5
5
  {
6
6
  "route": "/",
7
7
  "sentinel": "Stop AI agent mistakes before they cost you",
8
- "description": "Home page hero (lifeblood never regress)"
8
+ "description": "Home page hero (lifeblood \u2014 never regress)"
9
9
  },
10
10
  {
11
11
  "route": "/pro",
@@ -75,6 +75,31 @@
75
75
  "route": "/leash-beta",
76
76
  "sentinel": "Stop Runaway AI Agents From Freezing Your Machine",
77
77
  "description": "Hermes Mobile founding beta / Leash Pro pricing landing"
78
+ },
79
+ {
80
+ "route": "/whitepaper",
81
+ "sentinel": "How we know ThumbGate works",
82
+ "description": "Evaluation white paper"
83
+ },
84
+ {
85
+ "route": "/architecture",
86
+ "sentinel": "Architecture diagrams",
87
+ "description": "Public diagram gallery"
88
+ },
89
+ {
90
+ "route": "/eval-scorecard",
91
+ "sentinel": "Eval scorecard",
92
+ "description": "ThumbGate Bench scorecard"
93
+ },
94
+ {
95
+ "route": "/evaluations",
96
+ "sentinel": "How We Evaluate",
97
+ "description": "ML evaluation methodology page"
98
+ },
99
+ {
100
+ "route": "/case-studies",
101
+ "sentinel": "Case studies",
102
+ "description": "Dogfood case studies proof page"
78
103
  }
79
104
  ]
80
105
  }
package/glama.json ADDED
@@ -0,0 +1,6 @@
1
+ {
2
+ "$schema": "https://glama.ai/mcp/schemas/server.json",
3
+ "maintainers": [
4
+ "IgorGanapolsky"
5
+ ]
6
+ }