thumbgate 0.9.13 → 1.0.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 +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/.well-known/mcp/server-card.json +1 -1
- package/README.md +6 -3
- package/adapters/README.md +1 -1
- package/adapters/chatgpt/openapi.yaml +105 -0
- package/adapters/claude/.mcp.json +2 -2
- package/adapters/codex/config.toml +2 -2
- package/adapters/forge/forge.yaml +28 -0
- package/adapters/mcp/server-stdio.js +32 -1
- package/adapters/opencode/opencode.json +1 -1
- package/bin/cli.js +53 -3
- package/config/mcp-allowlists.json +10 -0
- package/openapi/openapi.yaml +105 -0
- package/package.json +4 -4
- package/plugins/amp-skill/INSTALL.md +3 -4
- package/plugins/amp-skill/SKILL.md +0 -1
- package/plugins/claude-codex-bridge/.claude-plugin/plugin.json +1 -1
- package/plugins/claude-codex-bridge/.mcp.json +1 -1
- package/plugins/claude-skill/INSTALL.md +1 -2
- package/plugins/codex-profile/.codex-plugin/plugin.json +1 -1
- package/plugins/codex-profile/.mcp.json +1 -1
- package/plugins/codex-profile/INSTALL.md +1 -1
- package/plugins/codex-profile/README.md +1 -1
- package/plugins/cursor-marketplace/.cursor-plugin/plugin.json +1 -1
- package/plugins/opencode-profile/INSTALL.md +1 -1
- package/public/blog.html +1 -0
- package/public/dashboard.html +1 -1
- package/public/guide.html +1 -1
- package/public/index.html +29 -5
- package/public/learn/agent-harness-pattern.html +1 -1
- package/public/learn/ai-agent-persistent-memory.html +1 -1
- package/public/learn/mcp-pre-action-gates-explained.html +1 -1
- package/public/learn/stop-ai-agent-force-push.html +1 -1
- package/public/learn/vibe-coding-safety-net.html +1 -1
- package/public/learn.html +62 -1
- package/public/lessons.html +1 -1
- package/public/pro.html +1 -1
- package/scripts/__pycache__/train_from_feedback.cpython-312.pyc +0 -0
- package/scripts/agent-security-hardening.js +4 -4
- package/scripts/async-job-runner.js +84 -24
- package/scripts/auto-wire-hooks.js +59 -1
- package/scripts/context-manager.js +330 -0
- package/scripts/dashboard.js +1 -1
- package/scripts/distribution-surfaces.js +12 -0
- package/scripts/ensure-repo-bootstrap.js +15 -14
- package/scripts/feedback-history-distiller.js +7 -1
- package/scripts/feedback-loop.js +10 -4
- package/scripts/feedback-paths.js +142 -10
- package/scripts/feedback-root-consolidator.js +18 -4
- package/scripts/gates-engine.js +96 -10
- package/scripts/hook-auto-capture.sh +1 -1
- package/scripts/hosted-job-launcher.js +260 -0
- package/scripts/managed-dpo-export.js +91 -0
- package/scripts/obsidian-export.js +0 -1
- package/scripts/operational-integrity.js +50 -7
- package/scripts/post-everywhere.js +10 -0
- package/scripts/prove-lancedb.js +62 -4
- package/scripts/publish-decision.js +16 -0
- package/scripts/self-healing-check.js +6 -1
- package/scripts/seo-gsd.js +217 -4
- package/scripts/social-analytics/load-env.js +33 -2
- package/scripts/social-analytics/store.js +200 -2
- package/scripts/statusline-cache-path.js +9 -6
- package/scripts/sync-version.js +18 -11
- package/scripts/tool-registry.js +37 -0
- package/scripts/train_from_feedback.py +0 -4
- package/scripts/workflow-sentinel.js +793 -0
- package/src/api/server.js +297 -38
- /package/scripts/{rlhf_session_start.sh → thumbgate_session_start.sh} +0 -0
package/scripts/tool-registry.js
CHANGED
|
@@ -490,6 +490,21 @@ const TOOLS = [
|
|
|
490
490
|
},
|
|
491
491
|
},
|
|
492
492
|
}),
|
|
493
|
+
readOnlyTool({
|
|
494
|
+
name: 'unified_context',
|
|
495
|
+
description: 'Assemble a complete, role-aware context object in one call. Combines session state, user profile, relevant lessons, prevention guards, context pack, and code-graph impact — with tiered graceful degradation (full → warm → cold). Replaces multiple recall/retrieve/session_primer calls with a single orchestrated request.',
|
|
496
|
+
inputSchema: {
|
|
497
|
+
type: 'object',
|
|
498
|
+
required: ['query'],
|
|
499
|
+
properties: {
|
|
500
|
+
query: { type: 'string', description: 'Describe the current task to find relevant context' },
|
|
501
|
+
toolName: { type: 'string', description: 'Current tool being invoked (improves lesson matching)' },
|
|
502
|
+
toolInput: { type: 'object', description: 'Current tool input (for guard evaluation)' },
|
|
503
|
+
agentType: { type: 'string', enum: ['claude', 'cursor', 'forgecode', 'codex'], description: 'Agent type — shapes context budget and feature inclusion' },
|
|
504
|
+
repoPath: { type: 'string', description: 'Repository path for code-graph impact analysis' },
|
|
505
|
+
},
|
|
506
|
+
},
|
|
507
|
+
}),
|
|
493
508
|
destructiveTool({
|
|
494
509
|
name: 'satisfy_gate',
|
|
495
510
|
description: 'Satisfy a gate condition with optional structured reasoning. Evidence is stored with a 5-minute TTL. When structuredReasoning is provided, the premise/evidence/conclusion chain is stored in the audit trail.',
|
|
@@ -632,6 +647,28 @@ const TOOLS = [
|
|
|
632
647
|
},
|
|
633
648
|
},
|
|
634
649
|
}),
|
|
650
|
+
readOnlyTool({
|
|
651
|
+
name: 'workflow_sentinel',
|
|
652
|
+
description: 'Predict pre-action workflow risk, blast radius, and remediations before a tool call executes.',
|
|
653
|
+
inputSchema: {
|
|
654
|
+
type: 'object',
|
|
655
|
+
required: ['toolName'],
|
|
656
|
+
properties: {
|
|
657
|
+
toolName: { type: 'string', description: 'Tool being assessed, such as Bash, Edit, or Write' },
|
|
658
|
+
command: { type: 'string', description: 'Optional shell command when toolName is Bash' },
|
|
659
|
+
filePath: { type: 'string', description: 'Optional primary file path for edit-like tools' },
|
|
660
|
+
changedFiles: {
|
|
661
|
+
type: 'array',
|
|
662
|
+
items: { type: 'string' },
|
|
663
|
+
description: 'Optional affected-file list used to estimate blast radius',
|
|
664
|
+
},
|
|
665
|
+
repoPath: { type: 'string', description: 'Optional repository path used for git-aware integrity checks' },
|
|
666
|
+
baseBranch: { type: 'string', description: 'Optional protected base branch override (defaults to main)' },
|
|
667
|
+
requirePrForReleaseSensitive: { type: 'boolean', description: 'When true, release-sensitive changes on non-base branches require an open PR' },
|
|
668
|
+
requireVersionNotBehindBase: { type: 'boolean', description: 'When true, release-sensitive changes cannot lag behind the base branch package version' },
|
|
669
|
+
},
|
|
670
|
+
},
|
|
671
|
+
}),
|
|
635
672
|
destructiveTool({
|
|
636
673
|
name: 'register_claim_gate',
|
|
637
674
|
description: 'Register a custom claim verification rule in local runtime state without editing tracked repo config.',
|
|
@@ -40,10 +40,6 @@ def resolve_feedback_dir() -> Path:
|
|
|
40
40
|
if local_thumbgate.exists():
|
|
41
41
|
return local_thumbgate
|
|
42
42
|
|
|
43
|
-
local_rlhf = PROJECT_ROOT / ".rlhf"
|
|
44
|
-
if local_rlhf.exists():
|
|
45
|
-
return local_rlhf
|
|
46
|
-
|
|
47
43
|
local_legacy = PROJECT_ROOT / ".claude" / "memory" / "feedback"
|
|
48
44
|
if local_legacy.exists():
|
|
49
45
|
return local_legacy
|