thumbgate 1.30.0 → 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 (77) 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 +66 -8
  7. package/adapters/opencode/opencode.json +1 -1
  8. package/bench/observability-eval-suite.json +2 -2
  9. package/bin/cli.js +147 -31
  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 +212 -206
  16. package/config/model-tiers.json +7 -2
  17. package/glama.json +6 -0
  18. package/package.json +60 -8
  19. package/public/assets/diagrams/before-after.svg +17 -16
  20. package/public/assets/diagrams/hero-thumbs.svg +68 -0
  21. package/public/assets/diagrams/loop.svg +19 -13
  22. package/public/assets/diagrams/self-improving-thumbs-loop.svg +105 -0
  23. package/public/compare.html +1 -0
  24. package/public/dashboard.html +126 -28
  25. package/public/evaluations.html +1 -1
  26. package/public/index.html +142 -13
  27. package/public/numbers.html +3 -2
  28. package/public/pricing.html +143 -30
  29. package/scripts/a-plus-evidence-scorecard.js +303 -0
  30. package/scripts/async-eval-observability.js +36 -11
  31. package/scripts/audit-trail.js +37 -1
  32. package/scripts/auto-promote-gates.js +149 -34
  33. package/scripts/colbert-style-maxsim.js +236 -0
  34. package/scripts/cross-encoder-reranker.js +356 -126
  35. package/scripts/dashboard-chat.js +350 -17
  36. package/scripts/document-intake.js +283 -7
  37. package/scripts/eval-quality-suite.js +204 -0
  38. package/scripts/feedback-loop.js +115 -7
  39. package/scripts/feedback-paths.js +32 -13
  40. package/scripts/feedback-quality.js +53 -0
  41. package/scripts/filesystem-search.js +17 -7
  42. package/scripts/gates-engine.js +17 -0
  43. package/scripts/harness-tool-names.js +70 -0
  44. package/scripts/hook-runtime.js +10 -3
  45. package/scripts/lesson-db.js +16 -5
  46. package/scripts/lesson-embedding-index.js +67 -20
  47. package/scripts/lesson-embedding-maintenance.js +177 -0
  48. package/scripts/lesson-reranker.js +55 -9
  49. package/scripts/lesson-retrieval.js +305 -29
  50. package/scripts/lesson-search.js +22 -8
  51. package/scripts/llm-client.js +304 -15
  52. package/scripts/model-tier-router.js +593 -0
  53. package/scripts/pragmatic-hybrid-search.js +379 -0
  54. package/scripts/rag-document-pipeline.js +461 -0
  55. package/scripts/rag-structured-output.js +441 -0
  56. package/scripts/ragas-style-metrics.js +351 -0
  57. package/scripts/request-envelope.js +178 -0
  58. package/scripts/rerank-pipeline.js +370 -0
  59. package/scripts/rerank-quality-eval.js +155 -0
  60. package/scripts/retrieval-hybrid-ablation.js +120 -0
  61. package/scripts/retrieval-quality-tier.js +118 -0
  62. package/scripts/secret-scanner.js +395 -4
  63. package/scripts/self-distill-agent.js +7 -1
  64. package/scripts/self-healing-check.js +25 -0
  65. package/scripts/skill-packs.js +183 -0
  66. package/scripts/slow-loop.js +72 -0
  67. package/scripts/statusline-links.js +1 -1
  68. package/scripts/statusline.sh +8 -1
  69. package/scripts/telemetry-analytics.js +13 -1
  70. package/scripts/thumbgate-search.js +98 -6
  71. package/scripts/tier-budget-guard.js +186 -0
  72. package/scripts/tool-registry.js +46 -0
  73. package/scripts/vector-store.js +108 -4
  74. package/scripts/verify-marketing-pages-deployed.js +85 -3
  75. package/server.json +44 -0
  76. package/smithery.yaml +17 -0
  77. package/src/api/server.js +194 -13
@@ -2,272 +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",
15
+ "context_stuff_lessons",
16
+ "dashboard",
17
+ "describe_reliability_entity",
18
+ "describe_semantic_entity",
46
19
  "detect_noop",
47
- "record_action_receipt",
20
+ "diagnose_failure",
21
+ "distribute_context_to_agents",
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",
32
+ "generate_operator_artifact",
33
+ "generate_skill",
48
34
  "get_action_receipts",
49
- "record_task_outcome",
50
- "get_task_outcomes",
51
35
  "get_agent_outcome_metrics",
52
- "request_human_escalation",
53
- "list_human_escalations",
54
- "verify_claim",
55
- "check_operational_integrity",
56
- "workflow_sentinel",
57
- "register_claim_gate",
58
- "gate_stats",
59
- "dashboard",
60
- "settings_status",
61
- "native_messaging_audit",
62
- "list_harnesses",
63
- "run_harness",
64
- "run_autoresearch",
65
- "estimate_uncertainty",
36
+ "get_branch_governance",
66
37
  "get_business_metrics",
67
- "describe_semantic_entity",
68
- "capture_memory_feedback",
69
38
  "get_reliability_rules",
70
- "describe_reliability_entity",
71
- "report_product_issue",
72
- "require_evidence_for_claim",
73
- "distribute_context_to_agents",
74
- "session_report",
75
- "generate_operator_artifact",
76
- "run_managed_lesson_agent",
39
+ "get_scope_state",
40
+ "get_task_outcomes",
41
+ "list_harnesses",
42
+ "list_human_escalations",
43
+ "list_intents",
77
44
  "managed_agent_status",
78
- "run_self_distill",
79
- "self_distill_status",
80
- "context_stuff_lessons",
45
+ "native_messaging_audit",
46
+ "open_feedback_session",
81
47
  "parallel_workflow",
82
- "perplexity_search",
83
48
  "perplexity_ask",
84
- "perplexity_research",
85
49
  "perplexity_reason",
86
- "suggest_fix"
87
- ],
88
- "essential": [
89
- "recall",
90
- "unified_context",
91
- "set_task_scope",
92
- "get_scope_state",
93
- "satisfy_gate",
94
- "capture_feedback",
95
- "open_feedback_session",
96
- "append_feedback_context",
97
- "finalize_feedback_session",
98
- "search_lessons",
99
- "retrieve_lessons",
100
- "search_thumbgate",
101
- "plan_multimodal_retrieval",
102
- "plan_context_footprint",
50
+ "perplexity_research",
51
+ "perplexity_search",
103
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",
104
58
  "plan_proactive_agent_eval_guardrails",
105
59
  "plan_reward_hacking_guardrails",
106
- "plan_oss_pr_opportunity_scout",
107
- "plan_chatgpt_ads_readiness",
108
- "reflect_on_feedback",
109
60
  "prevention_rules",
110
- "set_branch_governance",
111
- "get_branch_governance",
112
- "approve_protected_action",
113
- "track_action",
61
+ "recall",
62
+ "record_action_receipt",
114
63
  "record_task_outcome",
115
- "get_task_outcomes",
116
- "get_agent_outcome_metrics",
64
+ "reflect_on_feedback",
65
+ "register_claim_gate",
66
+ "report_product_issue",
117
67
  "request_human_escalation",
118
- "list_human_escalations",
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",
79
+ "set_branch_governance",
80
+ "set_task_scope",
81
+ "settings_status",
82
+ "start_handoff",
83
+ "suggest_fix",
84
+ "track_action",
85
+ "unified_context",
119
86
  "verify_claim",
87
+ "workflow_sentinel"
88
+ ],
89
+ "essential": [
90
+ "append_feedback_context",
91
+ "approve_protected_action",
92
+ "capture_feedback",
120
93
  "check_operational_integrity",
121
- "workflow_sentinel",
94
+ "estimate_uncertainty",
122
95
  "feedback_stats",
123
96
  "feedback_summary",
124
- "estimate_uncertainty",
125
- "report_product_issue",
126
- "require_evidence_for_claim",
127
- "session_report",
97
+ "finalize_feedback_session",
98
+ "gate_check",
128
99
  "generate_operator_artifact",
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",
129
106
  "parallel_workflow",
130
- "suggest_fix"
131
- ],
132
- "commerce": [
133
- "capture_feedback",
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",
134
115
  "recall",
116
+ "record_task_outcome",
117
+ "reflect_on_feedback",
118
+ "report_product_issue",
119
+ "request_human_escalation",
120
+ "require_evidence_for_claim",
135
121
  "retrieve_lessons",
122
+ "satisfy_gate",
123
+ "search_lessons",
136
124
  "search_thumbgate",
137
- "commerce_recall",
138
- "set_task_scope",
139
- "get_scope_state",
125
+ "session_report",
140
126
  "set_branch_governance",
141
- "get_branch_governance",
142
- "approve_protected_action",
127
+ "set_task_scope",
128
+ "suggest_fix",
143
129
  "track_action",
144
- "record_task_outcome",
145
- "get_task_outcomes",
146
- "get_agent_outcome_metrics",
147
- "request_human_escalation",
148
- "list_human_escalations",
130
+ "unified_context",
149
131
  "verify_claim",
132
+ "workflow_sentinel"
133
+ ],
134
+ "commerce": [
135
+ "approve_protected_action",
136
+ "capture_feedback",
150
137
  "check_operational_integrity",
151
- "workflow_sentinel",
152
- "prevention_rules",
138
+ "commerce_recall",
153
139
  "feedback_stats",
154
140
  "feedback_summary",
155
- "suggest_fix"
156
- ],
157
- "readonly": [
158
- "recall",
159
- "unified_context",
160
- "feedback_summary",
161
- "search_lessons",
162
- "retrieve_lessons",
163
- "search_thumbgate",
164
- "plan_multimodal_retrieval",
165
- "plan_context_footprint",
166
- "plan_agent_design_governance",
167
- "plan_proactive_agent_eval_guardrails",
168
- "plan_reward_hacking_guardrails",
169
- "plan_oss_pr_opportunity_scout",
170
- "plan_chatgpt_ads_readiness",
171
- "feedback_stats",
172
- "diagnose_failure",
173
- "list_harnesses",
174
- "list_intents",
175
- "plan_intent",
176
- "context_provenance",
177
- "get_scope_state",
141
+ "gate_check",
142
+ "get_agent_outcome_metrics",
178
143
  "get_branch_governance",
144
+ "get_scope_state",
179
145
  "get_task_outcomes",
180
- "get_agent_outcome_metrics",
181
146
  "list_human_escalations",
147
+ "prevention_rules",
148
+ "recall",
149
+ "record_task_outcome",
150
+ "request_human_escalation",
151
+ "retrieve_lessons",
152
+ "search_thumbgate",
153
+ "set_branch_governance",
154
+ "set_task_scope",
155
+ "suggest_fix",
156
+ "track_action",
182
157
  "verify_claim",
158
+ "workflow_sentinel"
159
+ ],
160
+ "readonly": [
183
161
  "check_operational_integrity",
184
- "workflow_sentinel",
185
- "gate_stats",
162
+ "context_provenance",
186
163
  "dashboard",
187
- "settings_status",
188
- "native_messaging_audit",
189
- "get_business_metrics",
190
- "describe_semantic_entity",
191
- "get_reliability_rules",
192
164
  "describe_reliability_entity",
193
- "require_evidence_for_claim",
194
- "session_report",
165
+ "describe_semantic_entity",
166
+ "diagnose_failure",
167
+ "feedback_stats",
168
+ "feedback_summary",
169
+ "gate_check",
170
+ "gate_stats",
195
171
  "generate_operator_artifact",
196
- "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",
197
182
  "perplexity_ask",
198
- "suggest_fix"
199
- ],
200
- "dispatch": [
201
- "recall",
202
- "unified_context",
203
- "feedback_summary",
204
- "search_lessons",
205
- "retrieve_lessons",
206
- "search_thumbgate",
207
- "plan_multimodal_retrieval",
208
- "plan_context_footprint",
183
+ "perplexity_search",
209
184
  "plan_agent_design_governance",
210
- "plan_proactive_agent_eval_guardrails",
211
- "plan_reward_hacking_guardrails",
212
- "plan_oss_pr_opportunity_scout",
213
185
  "plan_chatgpt_ads_readiness",
214
- "feedback_stats",
215
- "diagnose_failure",
216
- "list_harnesses",
217
- "list_intents",
186
+ "plan_context_footprint",
218
187
  "plan_intent",
219
- "run_harness",
220
- "context_provenance",
221
- "get_scope_state",
222
- "get_branch_governance",
223
- "get_task_outcomes",
224
- "get_agent_outcome_metrics",
225
- "list_human_escalations",
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",
226
201
  "verify_claim",
202
+ "workflow_sentinel"
203
+ ],
204
+ "dispatch": [
227
205
  "check_operational_integrity",
228
- "workflow_sentinel",
229
- "gate_stats",
206
+ "context_provenance",
230
207
  "dashboard",
231
- "settings_status",
232
- "native_messaging_audit",
233
- "get_business_metrics",
234
- "describe_semantic_entity",
235
- "get_reliability_rules",
236
208
  "describe_reliability_entity",
237
- "require_evidence_for_claim",
238
- "session_report",
209
+ "describe_semantic_entity",
210
+ "diagnose_failure",
211
+ "feedback_stats",
212
+ "feedback_summary",
213
+ "gate_check",
214
+ "gate_stats",
239
215
  "generate_operator_artifact",
240
- "perplexity_search",
216
+ "get_agent_outcome_metrics",
217
+ "get_branch_governance",
218
+ "get_business_metrics",
219
+ "get_reliability_rules",
220
+ "get_scope_state",
221
+ "get_task_outcomes",
222
+ "list_harnesses",
223
+ "list_human_escalations",
224
+ "list_intents",
225
+ "native_messaging_audit",
241
226
  "perplexity_ask",
242
- "suggest_fix"
243
- ],
244
- "locked": [
245
- "feedback_summary",
246
- "search_lessons",
247
- "retrieve_lessons",
248
- "search_thumbgate",
249
- "plan_context_footprint",
227
+ "perplexity_search",
250
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",
251
234
  "plan_proactive_agent_eval_guardrails",
252
235
  "plan_reward_hacking_guardrails",
253
- "plan_oss_pr_opportunity_scout",
254
- "plan_chatgpt_ads_readiness",
236
+ "recall",
237
+ "require_evidence_for_claim",
238
+ "retrieve_lessons",
239
+ "run_harness",
240
+ "search_lessons",
241
+ "search_thumbgate",
242
+ "session_report",
243
+ "settings_status",
244
+ "suggest_fix",
245
+ "unified_context",
246
+ "verify_claim",
247
+ "workflow_sentinel"
248
+ ],
249
+ "locked": [
250
+ "check_operational_integrity",
255
251
  "diagnose_failure",
256
- "list_intents",
257
- "plan_intent",
258
- "list_harnesses",
259
- "get_scope_state",
252
+ "feedback_summary",
253
+ "gate_check",
254
+ "generate_operator_artifact",
255
+ "get_agent_outcome_metrics",
260
256
  "get_branch_governance",
257
+ "get_scope_state",
261
258
  "get_task_outcomes",
262
- "get_agent_outcome_metrics",
259
+ "list_harnesses",
263
260
  "list_human_escalations",
264
- "verify_claim",
265
- "check_operational_integrity",
266
- "workflow_sentinel",
267
- "settings_status",
261
+ "list_intents",
268
262
  "native_messaging_audit",
269
- "generate_operator_artifact",
270
- "suggest_fix"
263
+ "plan_agent_design_governance",
264
+ "plan_chatgpt_ads_readiness",
265
+ "plan_context_footprint",
266
+ "plan_intent",
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",
273
+ "settings_status",
274
+ "suggest_fix",
275
+ "verify_claim",
276
+ "workflow_sentinel"
271
277
  ]
272
278
  }
273
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": {
package/glama.json ADDED
@@ -0,0 +1,6 @@
1
+ {
2
+ "$schema": "https://glama.ai/mcp/schemas/server.json",
3
+ "maintainers": [
4
+ "IgorGanapolsky"
5
+ ]
6
+ }