thumbgate 1.12.2 โ 1.14.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.
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/.well-known/mcp/server-card.json +1 -1
- package/adapters/README.md +1 -1
- package/adapters/claude/.mcp.json +2 -2
- package/adapters/mcp/server-stdio.js +15 -1
- package/adapters/opencode/opencode.json +1 -1
- package/bin/cli.js +30 -0
- package/config/mcp-allowlists.json +7 -2
- package/config/merge-quality-checks.json +1 -2
- package/package.json +9 -3
- package/public/index.html +2 -2
- package/scripts/cli-schema.js +12 -0
- package/scripts/operator-artifacts.js +608 -0
- package/scripts/pr-manager.js +421 -0
- package/scripts/tool-registry.js +16 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "thumbgate-marketplace",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.14.0",
|
|
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.14.0",
|
|
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.14.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Igor Ganapolsky"
|
|
7
7
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "thumbgate",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.14.0",
|
|
4
4
|
"description": "ThumbGate โ ๐๐ feedback that teaches your AI agent. Thumbs down a mistake, it never happens again.",
|
|
5
5
|
"homepage": "https://thumbgate-production.up.railway.app",
|
|
6
6
|
"transport": "stdio",
|
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.14.0 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.14.0", "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.14.0", "thumbgate", "gate-check"]
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
}
|
|
@@ -132,6 +132,10 @@ const {
|
|
|
132
132
|
const { exportHfDataset } = require('../../scripts/export-hf-dataset');
|
|
133
133
|
const { distributeContextToAgents } = require('../../scripts/swarm-coordinator');
|
|
134
134
|
const { buildSessionReport } = require('../../scripts/session-report');
|
|
135
|
+
const {
|
|
136
|
+
generateOperatorArtifact,
|
|
137
|
+
formatArtifactMarkdown,
|
|
138
|
+
} = require('../../scripts/operator-artifacts');
|
|
135
139
|
|
|
136
140
|
const PRO_CHECKOUT_URL = 'https://thumbgate-production.up.railway.app/checkout/pro';
|
|
137
141
|
|
|
@@ -153,7 +157,7 @@ const {
|
|
|
153
157
|
finalizeSession: finalizeFeedbackSession,
|
|
154
158
|
} = require('../../scripts/feedback-session');
|
|
155
159
|
|
|
156
|
-
const SERVER_INFO = { name: 'thumbgate-mcp', version: '1.
|
|
160
|
+
const SERVER_INFO = { name: 'thumbgate-mcp', version: '1.14.0' };
|
|
157
161
|
const COMMERCE_CATEGORIES = [
|
|
158
162
|
'product_recommendation',
|
|
159
163
|
'brand_compliance',
|
|
@@ -802,6 +806,16 @@ async function callToolInner(name, args) {
|
|
|
802
806
|
}));
|
|
803
807
|
case 'session_report':
|
|
804
808
|
return toTextResult(buildSessionReport({ windowHours: args.windowHours }));
|
|
809
|
+
case 'generate_operator_artifact': {
|
|
810
|
+
const artifact = await generateOperatorArtifact({
|
|
811
|
+
type: args.type,
|
|
812
|
+
windowHours: args.windowHours,
|
|
813
|
+
});
|
|
814
|
+
if (args.format === 'markdown') {
|
|
815
|
+
return toTextResult(formatArtifactMarkdown(artifact));
|
|
816
|
+
}
|
|
817
|
+
return toTextResult(artifact);
|
|
818
|
+
}
|
|
805
819
|
case 'check_operational_integrity':
|
|
806
820
|
return toTextResult(evaluateOperationalIntegrity({
|
|
807
821
|
repoPath: args.repoPath,
|
package/bin/cli.js
CHANGED
|
@@ -1670,6 +1670,32 @@ function dashboard() {
|
|
|
1670
1670
|
});
|
|
1671
1671
|
}
|
|
1672
1672
|
|
|
1673
|
+
function artifacts() {
|
|
1674
|
+
const argv = process.argv.slice(3);
|
|
1675
|
+
const args = parseArgs(argv);
|
|
1676
|
+
const positionalType = argv.find((arg) => !arg.startsWith('--'));
|
|
1677
|
+
const {
|
|
1678
|
+
generateOperatorArtifact,
|
|
1679
|
+
formatArtifactMarkdown,
|
|
1680
|
+
} = require(path.join(PKG_ROOT, 'scripts', 'operator-artifacts'));
|
|
1681
|
+
|
|
1682
|
+
generateOperatorArtifact({
|
|
1683
|
+
type: args.type || positionalType || 'reliability-pulse',
|
|
1684
|
+
windowHours: args['window-hours'] || args.window,
|
|
1685
|
+
})
|
|
1686
|
+
.then((artifact) => {
|
|
1687
|
+
if (args.json) {
|
|
1688
|
+
console.log(JSON.stringify(artifact, null, 2));
|
|
1689
|
+
return;
|
|
1690
|
+
}
|
|
1691
|
+
process.stdout.write(formatArtifactMarkdown(artifact));
|
|
1692
|
+
})
|
|
1693
|
+
.catch((err) => {
|
|
1694
|
+
console.error(err && err.message ? err.message : err);
|
|
1695
|
+
process.exit(1);
|
|
1696
|
+
});
|
|
1697
|
+
}
|
|
1698
|
+
|
|
1673
1699
|
function gateStats() {
|
|
1674
1700
|
const args = parseArgs(process.argv.slice(3));
|
|
1675
1701
|
const { calculateStats, formatStats } = require(path.join(PKG_ROOT, 'scripts', 'gate-stats'));
|
|
@@ -2088,6 +2114,10 @@ switch (COMMAND) {
|
|
|
2088
2114
|
case 'dashboard':
|
|
2089
2115
|
dashboard();
|
|
2090
2116
|
break;
|
|
2117
|
+
case 'artifact':
|
|
2118
|
+
case 'artifacts':
|
|
2119
|
+
artifacts();
|
|
2120
|
+
break;
|
|
2091
2121
|
case 'analytics': {
|
|
2092
2122
|
const { run: runAnalytics } = require(path.join(PKG_ROOT, 'scripts', 'analytics-report'));
|
|
2093
2123
|
runAnalytics();
|
|
@@ -58,6 +58,7 @@
|
|
|
58
58
|
"require_evidence_for_claim",
|
|
59
59
|
"distribute_context_to_agents",
|
|
60
60
|
"session_report",
|
|
61
|
+
"generate_operator_artifact",
|
|
61
62
|
"perplexity_search",
|
|
62
63
|
"perplexity_ask",
|
|
63
64
|
"perplexity_research",
|
|
@@ -91,7 +92,8 @@
|
|
|
91
92
|
"estimate_uncertainty",
|
|
92
93
|
"report_product_issue",
|
|
93
94
|
"require_evidence_for_claim",
|
|
94
|
-
"session_report"
|
|
95
|
+
"session_report",
|
|
96
|
+
"generate_operator_artifact"
|
|
95
97
|
],
|
|
96
98
|
"commerce": [
|
|
97
99
|
"capture_feedback",
|
|
@@ -143,6 +145,7 @@
|
|
|
143
145
|
"describe_reliability_entity",
|
|
144
146
|
"require_evidence_for_claim",
|
|
145
147
|
"session_report",
|
|
148
|
+
"generate_operator_artifact",
|
|
146
149
|
"perplexity_search",
|
|
147
150
|
"perplexity_ask"
|
|
148
151
|
],
|
|
@@ -176,6 +179,7 @@
|
|
|
176
179
|
"describe_reliability_entity",
|
|
177
180
|
"require_evidence_for_claim",
|
|
178
181
|
"session_report",
|
|
182
|
+
"generate_operator_artifact",
|
|
179
183
|
"perplexity_search",
|
|
180
184
|
"perplexity_ask"
|
|
181
185
|
],
|
|
@@ -194,7 +198,8 @@
|
|
|
194
198
|
"verify_claim",
|
|
195
199
|
"check_operational_integrity",
|
|
196
200
|
"workflow_sentinel",
|
|
197
|
-
"settings_status"
|
|
201
|
+
"settings_status",
|
|
202
|
+
"generate_operator_artifact"
|
|
198
203
|
]
|
|
199
204
|
}
|
|
200
205
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "thumbgate",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.14.0",
|
|
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": {
|
|
@@ -148,11 +148,13 @@
|
|
|
148
148
|
"scripts/operational-dashboard.js",
|
|
149
149
|
"scripts/operational-integrity.js",
|
|
150
150
|
"scripts/operational-summary.js",
|
|
151
|
+
"scripts/operator-artifacts.js",
|
|
151
152
|
"scripts/optimize-context.js",
|
|
152
153
|
"scripts/org-dashboard.js",
|
|
153
154
|
"scripts/partner-orchestration.js",
|
|
154
155
|
"scripts/perplexity-client.js",
|
|
155
156
|
"scripts/predictive-insights.js",
|
|
157
|
+
"scripts/pr-manager.js",
|
|
156
158
|
"scripts/pro-local-dashboard.js",
|
|
157
159
|
"scripts/problem-detail.js",
|
|
158
160
|
"scripts/product-feedback.js",
|
|
@@ -263,7 +265,7 @@
|
|
|
263
265
|
"trace:eval": "node scripts/decision-trace.js eval",
|
|
264
266
|
"social:reply-monitor": "node scripts/social-reply-monitor.js",
|
|
265
267
|
"social:reply-monitor:dry": "node scripts/social-reply-monitor.js --dry-run",
|
|
266
|
-
"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: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",
|
|
268
|
+
"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: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",
|
|
267
269
|
"test:swarm-coordinator": "node --test tests/swarm-coordinator.test.js",
|
|
268
270
|
"test:session-report": "node --test tests/session-report.test.js",
|
|
269
271
|
"test:require-evidence-gate": "node --test tests/require-evidence-gate.test.js",
|
|
@@ -294,6 +296,7 @@
|
|
|
294
296
|
"test:belief-update": "node --test tests/belief-update.test.js",
|
|
295
297
|
"test:hosted-config": "node --test tests/hosted-config.test.js",
|
|
296
298
|
"test:operational-summary": "node --test tests/operational-summary.test.js",
|
|
299
|
+
"test:operator-artifacts": "node --test tests/operator-artifacts.test.js",
|
|
297
300
|
"test:operator-key-auth": "node --test tests/api-operator-key-auth.test.js",
|
|
298
301
|
"test:cloudflare-sandbox": "node --test tests/cloudflare-dynamic-sandbox.test.js tests/cloudflare-sandbox-api.test.js",
|
|
299
302
|
"test:mcp-config": "node --test tests/mcp-config.test.js",
|
|
@@ -397,12 +400,15 @@
|
|
|
397
400
|
"profile:route": "node scripts/profile-router.js",
|
|
398
401
|
"social:poll:zernio": "node scripts/social-analytics/pollers/zernio.js",
|
|
399
402
|
"social:publish:zernio": "node scripts/social-analytics/publishers/zernio.js",
|
|
403
|
+
"social:zernio:status": "node scripts/social-analytics/zernio-status.js",
|
|
400
404
|
"test:zernio": "node --test tests/zernio-integration.test.js",
|
|
401
405
|
"test:platform-limits": "node --test tests/platform-limits.test.js",
|
|
402
406
|
"test:durability-step": "node --test tests/durability-step.test.js",
|
|
403
407
|
"test:post-video": "node --test tests/post-video.test.js",
|
|
404
408
|
"test:post-everywhere-instagram": "node --test tests/post-everywhere-instagram.test.js",
|
|
405
409
|
"test:post-everywhere-channels": "node --test tests/post-everywhere-channels.test.js",
|
|
410
|
+
"test:zernio-canonical-pollers": "node --test tests/zernio-canonical-pollers.test.js",
|
|
411
|
+
"test:zernio-status": "node --test tests/zernio-status.test.js",
|
|
406
412
|
"test:license": "node --test tests/license.test.js",
|
|
407
413
|
"test:bot-detector": "node --test tests/bot-detector.test.js",
|
|
408
414
|
"test:bot-detection": "node --test tests/bot-detection.test.js",
|
|
@@ -574,7 +580,7 @@
|
|
|
574
580
|
"dependencies": {
|
|
575
581
|
"@anthropic-ai/sdk": "^0.90.0",
|
|
576
582
|
"@google/genai": "^1.49.0",
|
|
577
|
-
"@huggingface/transformers": "^4.0
|
|
583
|
+
"@huggingface/transformers": "^4.1.0",
|
|
578
584
|
"@lancedb/lancedb": "^0.27.2",
|
|
579
585
|
"apache-arrow": "^18.1.0",
|
|
580
586
|
"better-sqlite3": "^12.9.0",
|
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.14.0</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.14.0</span>
|
|
1334
1334
|
</div>
|
|
1335
1335
|
</footer>
|
|
1336
1336
|
|
package/scripts/cli-schema.js
CHANGED
|
@@ -77,6 +77,18 @@ const CLI_COMMANDS = [
|
|
|
77
77
|
{ name: 'json', type: 'boolean', description: 'Output as JSON' },
|
|
78
78
|
],
|
|
79
79
|
},
|
|
80
|
+
{
|
|
81
|
+
name: 'artifacts',
|
|
82
|
+
aliases: ['artifact'],
|
|
83
|
+
description: 'Operator decision artifacts - PR, reliability, revenue, and release pulses',
|
|
84
|
+
group: 'discovery',
|
|
85
|
+
mcpTool: 'generate_operator_artifact',
|
|
86
|
+
flags: [
|
|
87
|
+
{ name: 'type', type: 'string', description: 'pr-pulse | reliability-pulse | revenue-pulse | release-readiness' },
|
|
88
|
+
{ name: 'window-hours', type: 'number', description: 'Lookback window in hours (default 24)' },
|
|
89
|
+
{ name: 'json', type: 'boolean', description: 'Output as JSON' },
|
|
90
|
+
],
|
|
91
|
+
},
|
|
80
92
|
{
|
|
81
93
|
name: 'summary',
|
|
82
94
|
description: 'Human-readable feedback summary',
|