thumbgate 1.8.0 โ 1.10.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.
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/.well-known/llms.txt +4 -0
- package/.well-known/mcp/server-card.json +9 -226
- package/adapters/README.md +1 -1
- package/adapters/claude/.mcp.json +2 -2
- package/adapters/mcp/server-stdio.js +46 -1
- package/adapters/opencode/opencode.json +1 -1
- package/config/enforcement.json +22 -0
- package/config/mcp-allowlists.json +5 -0
- package/package.json +8 -4
- package/public/index.html +2 -2
- package/scripts/agent-readiness.js +1 -0
- package/scripts/autoresearch-runner.js +228 -0
- package/scripts/bayes-optimal-gate.js +273 -0
- package/scripts/gate-stats.js +37 -0
- package/scripts/mailer/resend-mailer.js +11 -1
- package/scripts/multimodal-retrieval-plan.js +110 -0
- package/scripts/thompson-sampling.js +44 -0
- package/scripts/tool-registry.js +37 -0
- package/src/api/server.js +246 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "thumbgate-marketplace",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.10.1",
|
|
4
4
|
"owner": {
|
|
5
5
|
"name": "Igor Ganapolsky",
|
|
6
6
|
"email": "ig5973700@gmail.com"
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"source": "npm",
|
|
14
14
|
"package": "thumbgate"
|
|
15
15
|
},
|
|
16
|
-
"version": "1.
|
|
16
|
+
"version": "1.10.1",
|
|
17
17
|
"author": {
|
|
18
18
|
"name": "Igor Ganapolsky"
|
|
19
19
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "thumbgate",
|
|
3
3
|
"description": "Type ๐ or ๐ on any agent action. ThumbGate captures it, distills a lesson, and blocks the pattern from repeating. One thumbs-down = the agent physically cannot make that mistake again. 33 pre-action gates, budget enforcement, self-protection, and NIST/SOC2 compliance tags.",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.10.1",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Igor Ganapolsky"
|
|
7
7
|
},
|
package/.well-known/llms.txt
CHANGED
|
@@ -46,6 +46,10 @@ npx thumbgate init --agent claude-code
|
|
|
46
46
|
|
|
47
47
|
## Links
|
|
48
48
|
|
|
49
|
+
- Agent discovery: https://thumbgate-production.up.railway.app/.well-known/mcp.json
|
|
50
|
+
- Progressive tool index: https://thumbgate-production.up.railway.app/.well-known/mcp/tools.json
|
|
51
|
+
- Agent skills: https://thumbgate-production.up.railway.app/.well-known/mcp/skills.json
|
|
52
|
+
- MCP applications: https://thumbgate-production.up.railway.app/.well-known/mcp/applications.json
|
|
49
53
|
- Documentation: https://thumbgate-production.up.railway.app/guide
|
|
50
54
|
- Dashboard: https://thumbgate-production.up.railway.app/dashboard
|
|
51
55
|
- GitHub: https://github.com/IgorGanapolsky/ThumbGate
|
|
@@ -1,231 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "thumbgate",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.10.1",
|
|
4
4
|
"description": "ThumbGate โ ๐๐ feedback that teaches your AI agent. Thumbs down a mistake, it never happens again.",
|
|
5
|
-
"homepage": "https://
|
|
5
|
+
"homepage": "https://thumbgate-production.up.railway.app",
|
|
6
6
|
"transport": "stdio",
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
},
|
|
16
|
-
"required": []
|
|
17
|
-
},
|
|
18
|
-
"tools": [
|
|
19
|
-
{
|
|
20
|
-
"name": "capture_feedback",
|
|
21
|
-
"description": "Capture thumbs up/down feedback and promote actionable memory",
|
|
22
|
-
"inputSchema": {
|
|
23
|
-
"type": "object",
|
|
24
|
-
"required": [
|
|
25
|
-
"signal",
|
|
26
|
-
"context"
|
|
27
|
-
],
|
|
28
|
-
"properties": {
|
|
29
|
-
"signal": {
|
|
30
|
-
"type": "string",
|
|
31
|
-
"enum": [
|
|
32
|
-
"up",
|
|
33
|
-
"down"
|
|
34
|
-
]
|
|
35
|
-
},
|
|
36
|
-
"context": {
|
|
37
|
-
"type": "string"
|
|
38
|
-
},
|
|
39
|
-
"whatWentWrong": {
|
|
40
|
-
"type": "string"
|
|
41
|
-
},
|
|
42
|
-
"whatToChange": {
|
|
43
|
-
"type": "string"
|
|
44
|
-
},
|
|
45
|
-
"whatWorked": {
|
|
46
|
-
"type": "string"
|
|
47
|
-
},
|
|
48
|
-
"tags": {
|
|
49
|
-
"type": "array",
|
|
50
|
-
"items": {
|
|
51
|
-
"type": "string"
|
|
52
|
-
}
|
|
53
|
-
},
|
|
54
|
-
"skill": {
|
|
55
|
-
"type": "string"
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
"name": "feedback_summary",
|
|
62
|
-
"description": "Get summary of recent feedback",
|
|
63
|
-
"inputSchema": {
|
|
64
|
-
"type": "object",
|
|
65
|
-
"properties": {
|
|
66
|
-
"recent": {
|
|
67
|
-
"type": "number"
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
"name": "feedback_stats",
|
|
74
|
-
"description": "Get feedback stats and recommendations",
|
|
75
|
-
"inputSchema": {
|
|
76
|
-
"type": "object",
|
|
77
|
-
"properties": {}
|
|
78
|
-
}
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
"name": "list_intents",
|
|
82
|
-
"description": "List available intent plans and whether each requires human approval in the active profile",
|
|
83
|
-
"inputSchema": {
|
|
84
|
-
"type": "object",
|
|
85
|
-
"properties": {
|
|
86
|
-
"mcpProfile": {
|
|
87
|
-
"type": "string"
|
|
88
|
-
},
|
|
89
|
-
"bundleId": {
|
|
90
|
-
"type": "string"
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
},
|
|
95
|
-
{
|
|
96
|
-
"name": "plan_intent",
|
|
97
|
-
"description": "Generate an intent execution plan with policy checkpoints",
|
|
98
|
-
"inputSchema": {
|
|
99
|
-
"type": "object",
|
|
100
|
-
"required": [
|
|
101
|
-
"intentId"
|
|
102
|
-
],
|
|
103
|
-
"properties": {
|
|
104
|
-
"intentId": {
|
|
105
|
-
"type": "string"
|
|
106
|
-
},
|
|
107
|
-
"context": {
|
|
108
|
-
"type": "string"
|
|
109
|
-
},
|
|
110
|
-
"mcpProfile": {
|
|
111
|
-
"type": "string"
|
|
112
|
-
},
|
|
113
|
-
"bundleId": {
|
|
114
|
-
"type": "string"
|
|
115
|
-
},
|
|
116
|
-
"approved": {
|
|
117
|
-
"type": "boolean"
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
"name": "prevention_rules",
|
|
124
|
-
"description": "Generate prevention rules from repeated mistake patterns",
|
|
125
|
-
"inputSchema": {
|
|
126
|
-
"type": "object",
|
|
127
|
-
"properties": {
|
|
128
|
-
"minOccurrences": {
|
|
129
|
-
"type": "number"
|
|
130
|
-
},
|
|
131
|
-
"outputPath": {
|
|
132
|
-
"type": "string"
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
},
|
|
137
|
-
{
|
|
138
|
-
"name": "export_dpo_pairs",
|
|
139
|
-
"description": "Export DPO preference pairs from local memory log",
|
|
140
|
-
"inputSchema": {
|
|
141
|
-
"type": "object",
|
|
142
|
-
"properties": {
|
|
143
|
-
"memoryLogPath": {
|
|
144
|
-
"type": "string"
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
},
|
|
149
|
-
{
|
|
150
|
-
"name": "construct_context_pack",
|
|
151
|
-
"description": "Construct a bounded context pack from contextfs",
|
|
152
|
-
"inputSchema": {
|
|
153
|
-
"type": "object",
|
|
154
|
-
"properties": {
|
|
155
|
-
"query": {
|
|
156
|
-
"type": "string"
|
|
157
|
-
},
|
|
158
|
-
"maxItems": {
|
|
159
|
-
"type": "number"
|
|
160
|
-
},
|
|
161
|
-
"maxChars": {
|
|
162
|
-
"type": "number"
|
|
163
|
-
},
|
|
164
|
-
"namespaces": {
|
|
165
|
-
"type": "array",
|
|
166
|
-
"items": {
|
|
167
|
-
"type": "string"
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
},
|
|
173
|
-
{
|
|
174
|
-
"name": "evaluate_context_pack",
|
|
175
|
-
"description": "Record evaluation outcome for a context pack",
|
|
176
|
-
"inputSchema": {
|
|
177
|
-
"type": "object",
|
|
178
|
-
"required": [
|
|
179
|
-
"packId",
|
|
180
|
-
"outcome"
|
|
181
|
-
],
|
|
182
|
-
"properties": {
|
|
183
|
-
"packId": {
|
|
184
|
-
"type": "string"
|
|
185
|
-
},
|
|
186
|
-
"outcome": {
|
|
187
|
-
"type": "string"
|
|
188
|
-
},
|
|
189
|
-
"signal": {
|
|
190
|
-
"type": "string"
|
|
191
|
-
},
|
|
192
|
-
"notes": {
|
|
193
|
-
"type": "string"
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
},
|
|
198
|
-
{
|
|
199
|
-
"name": "context_provenance",
|
|
200
|
-
"description": "Get recent context/provenance events",
|
|
201
|
-
"inputSchema": {
|
|
202
|
-
"type": "object",
|
|
203
|
-
"properties": {
|
|
204
|
-
"limit": {
|
|
205
|
-
"type": "number"
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
},
|
|
210
|
-
{
|
|
211
|
-
"name": "recall",
|
|
212
|
-
"description": "Recall relevant past feedback, memories, and prevention rules for the current task",
|
|
213
|
-
"inputSchema": {
|
|
214
|
-
"type": "object",
|
|
215
|
-
"required": [
|
|
216
|
-
"query"
|
|
217
|
-
],
|
|
218
|
-
"properties": {
|
|
219
|
-
"query": {
|
|
220
|
-
"type": "string",
|
|
221
|
-
"description": "Describe the current task or context to find relevant past feedback"
|
|
222
|
-
},
|
|
223
|
-
"limit": {
|
|
224
|
-
"type": "number",
|
|
225
|
-
"description": "Max memories to return (default 5)"
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
]
|
|
7
|
+
"discovery": {
|
|
8
|
+
"manifestUrl": "https://thumbgate-production.up.railway.app/.well-known/mcp.json",
|
|
9
|
+
"toolIndexUrl": "https://thumbgate-production.up.railway.app/.well-known/mcp/tools.json",
|
|
10
|
+
"toolSchemaUrlTemplate": "https://thumbgate-production.up.railway.app/.well-known/mcp/tools/{name}.json",
|
|
11
|
+
"skillsUrl": "https://thumbgate-production.up.railway.app/.well-known/mcp/skills.json",
|
|
12
|
+
"applicationsUrl": "https://thumbgate-production.up.railway.app/.well-known/mcp/applications.json"
|
|
13
|
+
}
|
|
231
14
|
}
|
package/adapters/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
- `chatgpt/openapi.yaml`: import into GPT Actions.
|
|
4
4
|
- `gemini/function-declarations.json`: Gemini function-calling definitions.
|
|
5
5
|
- `mcp/server-stdio.js`: underlying local MCP stdio server implementation.
|
|
6
|
-
- `claude/.mcp.json`: example Claude Code MCP config using `npx --yes --package thumbgate@1.
|
|
6
|
+
- `claude/.mcp.json`: example Claude Code MCP config using `npx --yes --package thumbgate@1.10.1 thumbgate serve`.
|
|
7
7
|
- `codex/config.toml`: example Codex MCP profile section using the same version-pinned portable launcher.
|
|
8
8
|
- `amp/skills/thumbgate-feedback/SKILL.md`: Amp skill template.
|
|
9
9
|
- `opencode/opencode.json`: portable OpenCode MCP profile using the same version-pinned portable launcher.
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
"mcpServers": {
|
|
3
3
|
"thumbgate": {
|
|
4
4
|
"command": "npx",
|
|
5
|
-
"args": ["--yes", "--package", "thumbgate@1.
|
|
5
|
+
"args": ["--yes", "--package", "thumbgate@1.10.1", "thumbgate", "serve"]
|
|
6
6
|
}
|
|
7
7
|
},
|
|
8
8
|
"hooks": {
|
|
9
9
|
"preToolUse": {
|
|
10
10
|
"command": "npx",
|
|
11
|
-
"args": ["--yes", "--package", "thumbgate@1.
|
|
11
|
+
"args": ["--yes", "--package", "thumbgate@1.10.1", "thumbgate", "gate-check"]
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
}
|
|
@@ -106,6 +106,9 @@ const {
|
|
|
106
106
|
const {
|
|
107
107
|
searchThumbgate,
|
|
108
108
|
} = require('../../scripts/thumbgate-search');
|
|
109
|
+
const {
|
|
110
|
+
buildMultimodalRetrievalPlan,
|
|
111
|
+
} = require('../../scripts/multimodal-retrieval-plan');
|
|
109
112
|
const {
|
|
110
113
|
importDocument,
|
|
111
114
|
listImportedDocuments,
|
|
@@ -117,6 +120,7 @@ const {
|
|
|
117
120
|
listHarnesses,
|
|
118
121
|
runHarness,
|
|
119
122
|
} = require('../../scripts/natural-language-harness');
|
|
123
|
+
const { runLoop: runAutoresearchLoop } = require('../../scripts/autoresearch-runner');
|
|
120
124
|
const { TOOLS } = require('../../scripts/tool-registry');
|
|
121
125
|
const { reflect: reflectOnFeedback } = require('../../scripts/reflector-agent');
|
|
122
126
|
const { submitProductIssue } = require('../../scripts/product-feedback');
|
|
@@ -148,7 +152,7 @@ const {
|
|
|
148
152
|
finalizeSession: finalizeFeedbackSession,
|
|
149
153
|
} = require('../../scripts/feedback-session');
|
|
150
154
|
|
|
151
|
-
const SERVER_INFO = { name: 'thumbgate-mcp', version: '1.
|
|
155
|
+
const SERVER_INFO = { name: 'thumbgate-mcp', version: '1.10.1' };
|
|
152
156
|
const COMMERCE_CATEGORIES = [
|
|
153
157
|
'product_recommendation',
|
|
154
158
|
'brand_compliance',
|
|
@@ -196,6 +200,17 @@ function resolveImportDocumentPath(targetPath) {
|
|
|
196
200
|
return resolved;
|
|
197
201
|
}
|
|
198
202
|
|
|
203
|
+
function resolveWorkspaceCwd(targetPath) {
|
|
204
|
+
if (!targetPath) return undefined;
|
|
205
|
+
const workspaceRoot = path.resolve(process.cwd());
|
|
206
|
+
const resolved = path.resolve(workspaceRoot, String(targetPath));
|
|
207
|
+
const relative = path.relative(workspaceRoot, resolved);
|
|
208
|
+
if (relative.startsWith('..') || path.isAbsolute(relative)) {
|
|
209
|
+
throw new Error(`cwd must stay within ${workspaceRoot}`);
|
|
210
|
+
}
|
|
211
|
+
return resolved;
|
|
212
|
+
}
|
|
213
|
+
|
|
199
214
|
function toTextResult(payload) {
|
|
200
215
|
const text = typeof payload === 'string' ? payload : JSON.stringify(payload, null, 2);
|
|
201
216
|
return {
|
|
@@ -851,6 +866,36 @@ async function callToolInner(name, args) {
|
|
|
851
866
|
return toTextResult({ harnesses: listHarnesses({ tag: args.tag }) });
|
|
852
867
|
case 'run_harness':
|
|
853
868
|
return toTextResult(runHarness(args.harness, args.inputs || {}, { jobId: args.jobId }));
|
|
869
|
+
case 'plan_multimodal_retrieval':
|
|
870
|
+
return toTextResult(buildMultimodalRetrievalPlan(args));
|
|
871
|
+
case 'run_autoresearch': {
|
|
872
|
+
const iterations = Math.max(1, Math.min(5, Number(args.iterations || 1)));
|
|
873
|
+
const timeoutMs = Math.max(1000, Math.min(600000, Number(args.timeoutMs || 120000)));
|
|
874
|
+
const holdoutCommands = Array.isArray(args.holdoutCommands)
|
|
875
|
+
? args.holdoutCommands.filter((command) => typeof command === 'string' && command.trim())
|
|
876
|
+
: [];
|
|
877
|
+
const result = await runAutoresearchLoop({
|
|
878
|
+
iterations,
|
|
879
|
+
targetName: args.targetName || undefined,
|
|
880
|
+
nextValue: Number.isFinite(args.nextValue) ? args.nextValue : undefined,
|
|
881
|
+
testCommand: args.testCommand || 'npm test',
|
|
882
|
+
holdoutCommands,
|
|
883
|
+
timeoutMs,
|
|
884
|
+
cwd: resolveWorkspaceCwd(args.cwd),
|
|
885
|
+
researchQuery: args.researchQuery || null,
|
|
886
|
+
paperLimit: Math.max(1, Math.min(10, Number(args.paperLimit || 5))),
|
|
887
|
+
});
|
|
888
|
+
return toTextResult({
|
|
889
|
+
...result,
|
|
890
|
+
controls: {
|
|
891
|
+
iterations,
|
|
892
|
+
timeoutMs,
|
|
893
|
+
holdoutCommands,
|
|
894
|
+
maxIterationsPerCall: 5,
|
|
895
|
+
maxTimeoutMs: 600000,
|
|
896
|
+
},
|
|
897
|
+
});
|
|
898
|
+
}
|
|
854
899
|
case 'open_feedback_session':
|
|
855
900
|
return toTextResult(openFeedbackSession(args.feedbackEventId, args.signal, args.initialContext));
|
|
856
901
|
case 'append_feedback_context':
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "./enforcement.schema.json",
|
|
3
|
+
"description": "Loss matrix and enforcement knobs for the Bayes-optimal pre-tool-use gate. See scripts/bayes-optimal-gate.js for the decision math. Tags listed here mirror the canonical tags emitted by risk-scorer.buildPatternSummary. To disable tag-specific costs and fall back to a symmetric 1:1 decision, reduce any override to 1.0.",
|
|
4
|
+
"lossMatrix": {
|
|
5
|
+
"falseAllow": {
|
|
6
|
+
"default": 1.0,
|
|
7
|
+
"deploy-prod": 100.0,
|
|
8
|
+
"destructive": 50.0,
|
|
9
|
+
"secrets": 1000.0,
|
|
10
|
+
"force-push-main": 200.0,
|
|
11
|
+
"data-loss": 500.0,
|
|
12
|
+
"credentials": 800.0,
|
|
13
|
+
"rm-rf": 300.0,
|
|
14
|
+
"git-reset-hard": 100.0
|
|
15
|
+
},
|
|
16
|
+
"falseBlock": {
|
|
17
|
+
"default": 1.0
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"bayesOptimalEnabled": true,
|
|
21
|
+
"bayesPosteriorFloor": 0.05
|
|
22
|
+
}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
"search_lessons",
|
|
13
13
|
"retrieve_lessons",
|
|
14
14
|
"search_thumbgate",
|
|
15
|
+
"plan_multimodal_retrieval",
|
|
15
16
|
"reflect_on_feedback",
|
|
16
17
|
"feedback_stats",
|
|
17
18
|
"diagnose_failure",
|
|
@@ -45,6 +46,7 @@
|
|
|
45
46
|
"settings_status",
|
|
46
47
|
"list_harnesses",
|
|
47
48
|
"run_harness",
|
|
49
|
+
"run_autoresearch",
|
|
48
50
|
"estimate_uncertainty",
|
|
49
51
|
"get_business_metrics",
|
|
50
52
|
"describe_semantic_entity",
|
|
@@ -70,6 +72,7 @@
|
|
|
70
72
|
"search_lessons",
|
|
71
73
|
"retrieve_lessons",
|
|
72
74
|
"search_thumbgate",
|
|
75
|
+
"plan_multimodal_retrieval",
|
|
73
76
|
"reflect_on_feedback",
|
|
74
77
|
"prevention_rules",
|
|
75
78
|
"set_task_scope",
|
|
@@ -114,6 +117,7 @@
|
|
|
114
117
|
"search_lessons",
|
|
115
118
|
"retrieve_lessons",
|
|
116
119
|
"search_thumbgate",
|
|
120
|
+
"plan_multimodal_retrieval",
|
|
117
121
|
"feedback_stats",
|
|
118
122
|
"diagnose_failure",
|
|
119
123
|
"list_harnesses",
|
|
@@ -146,6 +150,7 @@
|
|
|
146
150
|
"search_lessons",
|
|
147
151
|
"retrieve_lessons",
|
|
148
152
|
"search_thumbgate",
|
|
153
|
+
"plan_multimodal_retrieval",
|
|
149
154
|
"feedback_stats",
|
|
150
155
|
"diagnose_failure",
|
|
151
156
|
"list_harnesses",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "thumbgate",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.10.1",
|
|
4
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.",
|
|
5
5
|
"homepage": "https://thumbgate-production.up.railway.app",
|
|
6
6
|
"repository": {
|
|
@@ -49,10 +49,12 @@
|
|
|
49
49
|
"scripts/analytics-report.js",
|
|
50
50
|
"scripts/analytics-window.js",
|
|
51
51
|
"scripts/autonomous-workflow.js",
|
|
52
|
+
"scripts/autoresearch-runner.js",
|
|
52
53
|
"scripts/async-job-runner.js",
|
|
53
54
|
"scripts/audit-trail.js",
|
|
54
55
|
"scripts/auto-promote-gates.js",
|
|
55
56
|
"scripts/auto-wire-hooks.js",
|
|
57
|
+
"scripts/bayes-optimal-gate.js",
|
|
56
58
|
"scripts/belief-update.js",
|
|
57
59
|
"scripts/billing-setup.js",
|
|
58
60
|
"scripts/billing.js",
|
|
@@ -135,6 +137,7 @@
|
|
|
135
137
|
"scripts/mcp-policy.js",
|
|
136
138
|
"scripts/memory-firewall.js",
|
|
137
139
|
"scripts/meta-agent-loop.js",
|
|
140
|
+
"scripts/multimodal-retrieval-plan.js",
|
|
138
141
|
"scripts/natural-language-harness.js",
|
|
139
142
|
"scripts/obsidian-export.js",
|
|
140
143
|
"scripts/operational-dashboard.js",
|
|
@@ -252,7 +255,7 @@
|
|
|
252
255
|
"trace:eval": "node scripts/decision-trace.js eval",
|
|
253
256
|
"social:reply-monitor": "node scripts/social-reply-monitor.js",
|
|
254
257
|
"social:reply-monitor:dry": "node scripts/social-reply-monitor.js --dry-run",
|
|
255
|
-
"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: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-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: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: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:swarm-coordinator && npm run test:session-report && npm run test:require-evidence-gate",
|
|
258
|
+
"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: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-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: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: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",
|
|
256
259
|
"test:swarm-coordinator": "node --test tests/swarm-coordinator.test.js",
|
|
257
260
|
"test:session-report": "node --test tests/session-report.test.js",
|
|
258
261
|
"test:require-evidence-gate": "node --test tests/require-evidence-gate.test.js",
|
|
@@ -502,9 +505,10 @@
|
|
|
502
505
|
"test:cursor-wiring": "node --test tests/cursor-wiring.test.js",
|
|
503
506
|
"test:pretooluse-injection": "node --test tests/pretooluse-lesson-injection.test.js",
|
|
504
507
|
"test:recent-corrective-context": "node --test tests/recent-corrective-actions-context.test.js",
|
|
505
|
-
"test:mailer": "node --test tests/mailer.test.js tests/billing-webhook-email.test.js",
|
|
508
|
+
"test:mailer": "node --test tests/mailer.test.js tests/mailer-dns.test.js tests/billing-webhook-email.test.js",
|
|
506
509
|
"test:brand-assets": "node --test tests/brand-assets.test.js",
|
|
507
|
-
"test:enforcement-teeth": "node --test tests/enforcement-teeth.test.js"
|
|
510
|
+
"test:enforcement-teeth": "node --test tests/enforcement-teeth.test.js",
|
|
511
|
+
"test:bayes-optimal-gate": "node --test tests/bayes-optimal-gate.test.js"
|
|
508
512
|
},
|
|
509
513
|
"keywords": [
|
|
510
514
|
"mcp",
|
package/public/index.html
CHANGED
|
@@ -974,7 +974,7 @@ __GA_BOOTSTRAP__
|
|
|
974
974
|
<!-- HOW IT WORKS -->
|
|
975
975
|
<section class="how-it-works" id="how-it-works">
|
|
976
976
|
<div class="container">
|
|
977
|
-
<div class="section-label">New in v1.
|
|
977
|
+
<div class="section-label">New in v1.10.1</div>
|
|
978
978
|
<h2 class="section-title">Three steps to stop repeated AI failures</h2>
|
|
979
979
|
<div class="steps">
|
|
980
980
|
<div class="step">
|
|
@@ -1330,7 +1330,7 @@ __GA_BOOTSTRAP__
|
|
|
1330
1330
|
<a href="https://www.linkedin.com/in/igorganapolsky" target="_blank" rel="noopener">LinkedIn</a>
|
|
1331
1331
|
<a href="/blog">Blog</a>
|
|
1332
1332
|
</div>
|
|
1333
|
-
<span class="footer-copy">ยฉ 2026 Max Smith KDP LLC ยท MIT License ยท v1.
|
|
1333
|
+
<span class="footer-copy">ยฉ 2026 Max Smith KDP LLC ยท MIT License ยท v1.10.1</span>
|
|
1334
1334
|
</div>
|
|
1335
1335
|
</footer>
|
|
1336
1336
|
|