thumbgate 0.9.9
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/README.md +134 -0
- package/.claude-plugin/bundle/icon.png +0 -0
- package/.claude-plugin/bundle/icon.svg +18 -0
- package/.claude-plugin/bundle/server/index.js +24 -0
- package/.claude-plugin/marketplace.json +36 -0
- package/.claude-plugin/plugin.json +21 -0
- package/.well-known/mcp/server-card.json +231 -0
- package/LICENSE +21 -0
- package/README.md +375 -0
- package/adapters/README.md +9 -0
- package/adapters/amp/skills/rlhf-feedback/SKILL.md +22 -0
- package/adapters/chatgpt/INSTALL.md +83 -0
- package/adapters/chatgpt/openapi.yaml +1281 -0
- package/adapters/claude/.mcp.json +14 -0
- package/adapters/codex/config.toml +9 -0
- package/adapters/gemini/function-declarations.json +224 -0
- package/adapters/mcp/server-stdio.js +788 -0
- package/adapters/opencode/opencode.json +15 -0
- package/bin/cli.js +1483 -0
- package/bin/memory.sh +64 -0
- package/bin/obsidian-sync.sh +20 -0
- package/bin/postinstall.js +37 -0
- package/config/build-metadata.json +4 -0
- package/config/e2e-critical-flows.json +45 -0
- package/config/gate-templates.json +77 -0
- package/config/gates/claim-verification.json +29 -0
- package/config/gates/computer-use.json +39 -0
- package/config/gates/default.json +117 -0
- package/config/github-about.json +25 -0
- package/config/mcp-allowlists.json +135 -0
- package/config/model-tiers.json +33 -0
- package/config/partner-routing.json +132 -0
- package/config/policy-bundles/constrained-v1.json +64 -0
- package/config/policy-bundles/default-v1.json +91 -0
- package/config/rubrics/default-v1.json +52 -0
- package/config/skill-packs/react-testing.json +23 -0
- package/config/skill-packs/stripe-integration/references/api-spec.json +1 -0
- package/config/skill-packs/stripe-integration/references/webhook-guide.md +3 -0
- package/config/skill-specs/pr-reviewer.json +9 -0
- package/config/skill-specs/release-status.json +9 -0
- package/config/skill-specs/ticket-triage.json +9 -0
- package/config/subagent-profiles.json +32 -0
- package/config/tessl-tiles.json +29 -0
- package/config/thumbgate-settings.managed.json +12 -0
- package/openapi/openapi.yaml +1281 -0
- package/package.json +286 -0
- package/plugins/amp-skill/INSTALL.md +52 -0
- package/plugins/amp-skill/SKILL.md +64 -0
- package/plugins/claude-codex-bridge/.claude-plugin/plugin.json +22 -0
- package/plugins/claude-codex-bridge/.mcp.json +12 -0
- package/plugins/claude-codex-bridge/INSTALL.md +43 -0
- package/plugins/claude-codex-bridge/README.md +46 -0
- package/plugins/claude-codex-bridge/scripts/codex-bridge.js +288 -0
- package/plugins/claude-codex-bridge/skills/adversarial-review/SKILL.md +24 -0
- package/plugins/claude-codex-bridge/skills/result/SKILL.md +22 -0
- package/plugins/claude-codex-bridge/skills/review/SKILL.md +28 -0
- package/plugins/claude-codex-bridge/skills/second-pass/SKILL.md +27 -0
- package/plugins/claude-codex-bridge/skills/setup/SKILL.md +21 -0
- package/plugins/claude-codex-bridge/skills/status/SKILL.md +19 -0
- package/plugins/claude-skill/INSTALL.md +55 -0
- package/plugins/claude-skill/SKILL.md +46 -0
- package/plugins/codex-profile/.codex-plugin/plugin.json +43 -0
- package/plugins/codex-profile/.mcp.json +12 -0
- package/plugins/codex-profile/AGENTS.md +20 -0
- package/plugins/codex-profile/INSTALL.md +66 -0
- package/plugins/codex-profile/README.md +37 -0
- package/plugins/cursor-marketplace/.cursor-plugin/plugin.json +23 -0
- package/plugins/cursor-marketplace/CHANGELOG.md +30 -0
- package/plugins/cursor-marketplace/LICENSE +21 -0
- package/plugins/cursor-marketplace/README.md +124 -0
- package/plugins/cursor-marketplace/agents/reliability-reviewer.md +31 -0
- package/plugins/cursor-marketplace/assets/logo-400x400.png +0 -0
- package/plugins/cursor-marketplace/commands/capture-feedback.md +33 -0
- package/plugins/cursor-marketplace/commands/check-gates.md +25 -0
- package/plugins/cursor-marketplace/commands/show-lessons.md +27 -0
- package/plugins/cursor-marketplace/hooks/hooks.json +10 -0
- package/plugins/cursor-marketplace/mcp.json +12 -0
- package/plugins/cursor-marketplace/rules/feedback-capture.mdc +34 -0
- package/plugins/cursor-marketplace/rules/pre-action-gates.mdc +30 -0
- package/plugins/cursor-marketplace/rules/session-continuity.mdc +28 -0
- package/plugins/cursor-marketplace/scripts/gate-check.sh +11 -0
- package/plugins/cursor-marketplace/skills/capture-feedback/SKILL.md +47 -0
- package/plugins/cursor-marketplace/skills/prevention-rules/SKILL.md +31 -0
- package/plugins/cursor-marketplace/skills/recall-context/SKILL.md +30 -0
- package/plugins/cursor-marketplace/skills/search-lessons/SKILL.md +33 -0
- package/plugins/gemini-extension/INSTALL.md +92 -0
- package/plugins/gemini-extension/gemini_prompt.txt +14 -0
- package/plugins/gemini-extension/tool_contract.json +45 -0
- package/plugins/opencode-profile/INSTALL.md +57 -0
- package/public/assets/instagram-card.png +0 -0
- package/public/assets/tiktok-agent-memory.mp4 +0 -0
- package/public/blog.html +400 -0
- package/public/dashboard.html +1093 -0
- package/public/guide.html +317 -0
- package/public/index.html +1195 -0
- package/public/learn/agent-harness-pattern.html +180 -0
- package/public/learn/ai-agent-persistent-memory.html +202 -0
- package/public/learn/learn.css +45 -0
- package/public/learn/mcp-pre-action-gates-explained.html +172 -0
- package/public/learn/stop-ai-agent-force-push.html +134 -0
- package/public/learn/vibe-coding-safety-net.html +142 -0
- package/public/learn.html +213 -0
- package/public/lessons.html +650 -0
- package/public/vercel.json +8 -0
- package/scripts/__pycache__/train_from_feedback.cpython-314.pyc +0 -0
- package/scripts/a2ui-engine.js +73 -0
- package/scripts/access-anomaly-detector.js +12 -0
- package/scripts/adk-consolidator.js +266 -0
- package/scripts/agent-readiness.js +220 -0
- package/scripts/agent-security-hardening.js +227 -0
- package/scripts/agentic-data-pipeline.js +847 -0
- package/scripts/analytics-report.js +328 -0
- package/scripts/analytics-window.js +158 -0
- package/scripts/async-job-runner.js +1001 -0
- package/scripts/audit-trail.js +398 -0
- package/scripts/auto-promote-gates.js +293 -0
- package/scripts/auto-wire-hooks.js +316 -0
- package/scripts/autonomous-sales-agent.js +39 -0
- package/scripts/autoresearch-runner.js +216 -0
- package/scripts/background-agent-governance.js +237 -0
- package/scripts/behavioral-extraction.js +93 -0
- package/scripts/belief-update.js +84 -0
- package/scripts/billing.js +2438 -0
- package/scripts/bot-detector.js +50 -0
- package/scripts/budget-guard.js +173 -0
- package/scripts/build-claude-mcpb.js +189 -0
- package/scripts/build-metadata.js +97 -0
- package/scripts/check-congruence.js +322 -0
- package/scripts/cli-feedback.js +135 -0
- package/scripts/cli-telemetry.js +87 -0
- package/scripts/cloudflare-dynamic-sandbox.js +315 -0
- package/scripts/code-reasoning.js +350 -0
- package/scripts/codegraph-context.js +466 -0
- package/scripts/commercial-offer.js +56 -0
- package/scripts/computer-use-firewall.js +250 -0
- package/scripts/context-engine.js +694 -0
- package/scripts/contextfs.js +1287 -0
- package/scripts/conversation-context.js +119 -0
- package/scripts/creator-campaigns.js +239 -0
- package/scripts/daemon-manager.js +108 -0
- package/scripts/daily-digest.js +11 -0
- package/scripts/dashboard-render-spec.js +395 -0
- package/scripts/dashboard.js +1058 -0
- package/scripts/data-governance.js +173 -0
- package/scripts/delegation-runtime.js +900 -0
- package/scripts/deploy-gcp.sh +44 -0
- package/scripts/deploy-policy.js +231 -0
- package/scripts/disagreement-mining.js +315 -0
- package/scripts/dispatch-brief.js +159 -0
- package/scripts/distribution-surfaces.js +44 -0
- package/scripts/dpo-optimizer.js +206 -0
- package/scripts/ensure-repo-bootstrap.js +129 -0
- package/scripts/ephemeral-agent-store.js +219 -0
- package/scripts/eval-harness.js +56 -0
- package/scripts/evolution-state.js +241 -0
- package/scripts/experiment-tracker.js +267 -0
- package/scripts/export-databricks-bundle.js +242 -0
- package/scripts/export-dpo-pairs.js +344 -0
- package/scripts/export-kto-pairs.js +309 -0
- package/scripts/export-training.js +450 -0
- package/scripts/failure-diagnostics.js +558 -0
- package/scripts/feedback-attribution.js +313 -0
- package/scripts/feedback-fallback.js +110 -0
- package/scripts/feedback-history-distiller.js +391 -0
- package/scripts/feedback-inbox-read.js +162 -0
- package/scripts/feedback-loop.js +1887 -0
- package/scripts/feedback-paths.js +145 -0
- package/scripts/feedback-quality.js +139 -0
- package/scripts/feedback-root-consolidator.js +238 -0
- package/scripts/feedback-schema.js +426 -0
- package/scripts/feedback-session.js +286 -0
- package/scripts/feedback-to-memory.js +185 -0
- package/scripts/feedback-to-rules.js +164 -0
- package/scripts/filesystem-search.js +405 -0
- package/scripts/funnel-analytics.js +35 -0
- package/scripts/gate-satisfy.js +42 -0
- package/scripts/gate-stats.js +116 -0
- package/scripts/gate-templates.js +70 -0
- package/scripts/gates-engine.js +816 -0
- package/scripts/generate-paperbanana-diagrams.sh +99 -0
- package/scripts/generate-pretool-hook.sh +40 -0
- package/scripts/github-about.js +350 -0
- package/scripts/github-outreach.js +65 -0
- package/scripts/gtm-revenue-loop.js +520 -0
- package/scripts/hallucination-detector.js +226 -0
- package/scripts/hf-papers.js +317 -0
- package/scripts/history-distiller.js +200 -0
- package/scripts/hook-auto-capture.sh +100 -0
- package/scripts/hook-stop-pr-thread-check.sh +68 -0
- package/scripts/hook-stop-self-score.sh +51 -0
- package/scripts/hook-stop-verify-deploy.sh +31 -0
- package/scripts/hook-thumbgate-cache-updater.js +48 -0
- package/scripts/hook-verify-before-done.sh +20 -0
- package/scripts/hosted-config.js +156 -0
- package/scripts/hybrid-feedback-context.js +675 -0
- package/scripts/install-mcp.js +159 -0
- package/scripts/intent-router.js +392 -0
- package/scripts/internal-agent-bootstrap.js +490 -0
- package/scripts/jsonl-watcher.js +155 -0
- package/scripts/lesson-db.js +613 -0
- package/scripts/lesson-inference.js +310 -0
- package/scripts/lesson-retrieval.js +95 -0
- package/scripts/lesson-rotation.js +137 -0
- package/scripts/lesson-search.js +644 -0
- package/scripts/lesson-synthesis.js +196 -0
- package/scripts/license.js +50 -0
- package/scripts/local-model-profile.js +384 -0
- package/scripts/markdown-escape.js +12 -0
- package/scripts/marketing-experiment.js +671 -0
- package/scripts/mcp-config.js +149 -0
- package/scripts/mcp-policy.js +99 -0
- package/scripts/memalign-recall.js +111 -0
- package/scripts/memory-firewall.js +222 -0
- package/scripts/memory-migration.js +296 -0
- package/scripts/meta-policy.js +190 -0
- package/scripts/metered-billing.js +16 -0
- package/scripts/model-tier-router.js +301 -0
- package/scripts/money-watcher.js +71 -0
- package/scripts/multi-hop-recall.js +240 -0
- package/scripts/natural-language-harness.js +330 -0
- package/scripts/obsidian-export.js +713 -0
- package/scripts/operational-dashboard.js +103 -0
- package/scripts/operational-summary.js +93 -0
- package/scripts/optimize-context.js +17 -0
- package/scripts/org-dashboard.js +201 -0
- package/scripts/partner-orchestration.js +146 -0
- package/scripts/per-step-scoring.js +165 -0
- package/scripts/perplexity-marketing.js +466 -0
- package/scripts/pii-scanner.js +153 -0
- package/scripts/plan-gate.js +154 -0
- package/scripts/post-everywhere.js +308 -0
- package/scripts/post-to-x-retry.sh +22 -0
- package/scripts/post-to-x.js +369 -0
- package/scripts/pr-manager.js +236 -0
- package/scripts/predictive-insights.js +356 -0
- package/scripts/principle-extractor.js +162 -0
- package/scripts/pro-features.js +40 -0
- package/scripts/pro-local-dashboard.js +174 -0
- package/scripts/problem-detail.js +53 -0
- package/scripts/product-feedback.js +134 -0
- package/scripts/profile-router.js +245 -0
- package/scripts/prompt-dlp.js +221 -0
- package/scripts/prompt-guard.js +83 -0
- package/scripts/prove-adapters.js +863 -0
- package/scripts/prove-attribution.js +365 -0
- package/scripts/prove-automation.js +653 -0
- package/scripts/prove-autoresearch.js +304 -0
- package/scripts/prove-claim-verification.js +277 -0
- package/scripts/prove-cloudflare-sandbox.js +163 -0
- package/scripts/prove-data-pipeline.js +410 -0
- package/scripts/prove-data-quality.js +227 -0
- package/scripts/prove-evolution.js +352 -0
- package/scripts/prove-harnesses.js +287 -0
- package/scripts/prove-intelligence.js +259 -0
- package/scripts/prove-lancedb.js +371 -0
- package/scripts/prove-local-intelligence.js +342 -0
- package/scripts/prove-loop-closure.js +263 -0
- package/scripts/prove-predictive-insights.js +357 -0
- package/scripts/prove-runtime.js +350 -0
- package/scripts/prove-seo-gsd.js +234 -0
- package/scripts/prove-settings.js +279 -0
- package/scripts/prove-subway-upgrades.js +277 -0
- package/scripts/prove-tessl.js +229 -0
- package/scripts/prove-training-export.js +327 -0
- package/scripts/prove-workflow-contract.js +116 -0
- package/scripts/prove-xmemory.js +332 -0
- package/scripts/publish-decision.js +133 -0
- package/scripts/pulse.js +80 -0
- package/scripts/rate-limiter.js +125 -0
- package/scripts/reddit-dm-outreach.js +182 -0
- package/scripts/reddit-monitor-cron.sh +26 -0
- package/scripts/reflector-agent.js +221 -0
- package/scripts/reminder-engine.js +132 -0
- package/scripts/revenue-status.js +472 -0
- package/scripts/risk-scorer.js +459 -0
- package/scripts/rlaif-self-audit.js +129 -0
- package/scripts/rlhf_session_start.sh +32 -0
- package/scripts/rubric-engine.js +230 -0
- package/scripts/schedule-manager.js +251 -0
- package/scripts/secret-scanner.js +414 -0
- package/scripts/self-heal.js +147 -0
- package/scripts/self-healing-check.js +188 -0
- package/scripts/semantic-layer.js +98 -0
- package/scripts/seo-gsd.js +1153 -0
- package/scripts/settings-hierarchy.js +214 -0
- package/scripts/shieldcortex-memory-firewall-runner.mjs +53 -0
- package/scripts/skill-exporter.js +262 -0
- package/scripts/skill-generator.js +446 -0
- package/scripts/skill-materializer.js +134 -0
- package/scripts/skill-packs.js +136 -0
- package/scripts/skill-proposer.js +99 -0
- package/scripts/skill-quality-tracker.js +282 -0
- package/scripts/slo-alert-engine.js +14 -0
- package/scripts/slow-loop.js +72 -0
- package/scripts/social-analytics/db/schema.sql +32 -0
- package/scripts/social-analytics/db/social-analytics.db +0 -0
- package/scripts/social-analytics/digest.js +256 -0
- package/scripts/social-analytics/generate-instagram-card.js +97 -0
- package/scripts/social-analytics/instagram-thumbgate-post.js +107 -0
- package/scripts/social-analytics/load-env.js +46 -0
- package/scripts/social-analytics/mcp-server.js +289 -0
- package/scripts/social-analytics/normalizer.js +580 -0
- package/scripts/social-analytics/notify.js +162 -0
- package/scripts/social-analytics/poll-all.js +92 -0
- package/scripts/social-analytics/pollers/github.js +195 -0
- package/scripts/social-analytics/pollers/instagram.js +253 -0
- package/scripts/social-analytics/pollers/linkedin.js +330 -0
- package/scripts/social-analytics/pollers/plausible.js +247 -0
- package/scripts/social-analytics/pollers/reddit.js +306 -0
- package/scripts/social-analytics/pollers/threads.js +233 -0
- package/scripts/social-analytics/pollers/tiktok.js +203 -0
- package/scripts/social-analytics/pollers/x.js +227 -0
- package/scripts/social-analytics/pollers/youtube.js +304 -0
- package/scripts/social-analytics/pollers/zernio.js +183 -0
- package/scripts/social-analytics/publish-instagram-thumbgate.js +98 -0
- package/scripts/social-analytics/publish-thumbgate-launch.js +316 -0
- package/scripts/social-analytics/publishers/devto.js +122 -0
- package/scripts/social-analytics/publishers/instagram.js +317 -0
- package/scripts/social-analytics/publishers/linkedin.js +294 -0
- package/scripts/social-analytics/publishers/reddit.js +390 -0
- package/scripts/social-analytics/publishers/threads.js +275 -0
- package/scripts/social-analytics/publishers/tiktok.js +217 -0
- package/scripts/social-analytics/publishers/x.js +259 -0
- package/scripts/social-analytics/publishers/youtube.js +223 -0
- package/scripts/social-analytics/publishers/zernio.js +378 -0
- package/scripts/social-analytics/run-digest.js +34 -0
- package/scripts/social-analytics/store.js +257 -0
- package/scripts/social-analytics/utm.js +143 -0
- package/scripts/social-pipeline.js +2628 -0
- package/scripts/social-quality-gate.js +18 -0
- package/scripts/social-reply-monitor.js +445 -0
- package/scripts/status-dashboard.js +155 -0
- package/scripts/statusline-lesson.js +16 -0
- package/scripts/statusline-tower.js +8 -0
- package/scripts/statusline.sh +116 -0
- package/scripts/stripe-live-status.js +115 -0
- package/scripts/subagent-profiles.js +79 -0
- package/scripts/sync-gh-secrets-from-env.sh +70 -0
- package/scripts/sync-github-about.js +52 -0
- package/scripts/sync-version.js +447 -0
- package/scripts/synthetic-dpo.js +234 -0
- package/scripts/telemetry-analytics.js +821 -0
- package/scripts/tessl-export.js +371 -0
- package/scripts/test-coverage.js +120 -0
- package/scripts/thompson-sampling.js +417 -0
- package/scripts/thumbgate-search.js +189 -0
- package/scripts/tool-kpi-tracker.js +12 -0
- package/scripts/tool-registry.js +811 -0
- package/scripts/train_from_feedback.py +933 -0
- package/scripts/user-profile.js +78 -0
- package/scripts/validate-feedback.js +581 -0
- package/scripts/validate-workflow-contract.js +287 -0
- package/scripts/vector-store.js +197 -0
- package/scripts/verification-loop.js +291 -0
- package/scripts/verify-obsidian-setup.sh +269 -0
- package/scripts/verify-run.js +269 -0
- package/scripts/webhook-delivery.js +62 -0
- package/scripts/weekly-auto-post.js +124 -0
- package/scripts/workflow-runs.js +154 -0
- package/scripts/workflow-sprint-intake.js +475 -0
- package/scripts/workspace-evolver.js +374 -0
- package/scripts/x-autonomous-marketing.js +139 -0
- package/scripts/xmemory-lite.js +405 -0
- package/skills/agent-memory/SKILL.md +97 -0
- package/skills/rlhf-feedback/SKILL.md +49 -0
- package/skills/solve-architecture-autonomy/SKILL.md +17 -0
- package/skills/solve-architecture-autonomy/tool.js +33 -0
- package/skills/thumbgate/SKILL.md +114 -0
- package/src/api/server.js +4206 -0
package/bin/memory.sh
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# bin/memory.sh - Layer 3 & 4 & 5 Memory Stack Refresher
|
|
3
|
+
|
|
4
|
+
PRIMER_FILE="primer.md"
|
|
5
|
+
|
|
6
|
+
if [ ! -f "$PRIMER_FILE" ]; then
|
|
7
|
+
echo "Error: $PRIMER_FILE not found."
|
|
8
|
+
exit 1
|
|
9
|
+
fi
|
|
10
|
+
|
|
11
|
+
echo "🤖 [Memory Stack] Refreshing context..."
|
|
12
|
+
|
|
13
|
+
# 1. Behavioral Extraction (Layer 4)
|
|
14
|
+
node scripts/behavioral-extraction.js > /dev/null
|
|
15
|
+
TRAITS_FILE="$(node -e "const path = require('path'); const { resolveFeedbackDir } = require('./scripts/feedback-paths'); process.stdout.write(path.join(resolveFeedbackDir(), 'behavioral-traits.json'));" 2>/dev/null)"
|
|
16
|
+
if [ -z "$TRAITS_FILE" ]; then
|
|
17
|
+
TRAITS_FILE=".thumbgate/behavioral-traits.json"
|
|
18
|
+
fi
|
|
19
|
+
|
|
20
|
+
# 2. Capture git context (Layer 3)
|
|
21
|
+
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo "unknown")
|
|
22
|
+
LAST_COMMITS=$(git log -n 5 --oneline 2>/dev/null || echo "No commits found")
|
|
23
|
+
DIRTY_FILES=$(git status --short 2>/dev/null || echo "")
|
|
24
|
+
|
|
25
|
+
# 3. Rebuild Primer
|
|
26
|
+
TEMP_FILE=$(mktemp)
|
|
27
|
+
|
|
28
|
+
# Read primer until "## Behavioral Traits"
|
|
29
|
+
sed -n '1,/## Behavioral Traits/p' "$PRIMER_FILE" > "$TEMP_FILE"
|
|
30
|
+
echo "" >> "$TEMP_FILE"
|
|
31
|
+
|
|
32
|
+
if [ -f "$TRAITS_FILE" ]; then
|
|
33
|
+
# Extract trait descriptions from JSON
|
|
34
|
+
cat "$TRAITS_FILE" | grep "description" | sed 's/.*: "//;s/".*//' | sed 's/^/- /' >> "$TEMP_FILE"
|
|
35
|
+
else
|
|
36
|
+
echo "_No strong behavioral patterns identified yet._" >> "$TEMP_FILE"
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
echo "" >> "$TEMP_FILE"
|
|
40
|
+
echo "## Live Git Context" >> "$TEMP_FILE"
|
|
41
|
+
echo "" >> "$TEMP_FILE"
|
|
42
|
+
echo "### Branch: $CURRENT_BRANCH" >> "$TEMP_FILE"
|
|
43
|
+
echo "" >> "$TEMP_FILE"
|
|
44
|
+
echo "### Last 5 Commits:" >> "$TEMP_FILE"
|
|
45
|
+
echo '```' >> "$TEMP_FILE"
|
|
46
|
+
echo "$LAST_COMMITS" >> "$TEMP_FILE"
|
|
47
|
+
echo '```' >> "$TEMP_FILE"
|
|
48
|
+
echo "" >> "$TEMP_FILE"
|
|
49
|
+
echo "### Modified Files:" >> "$TEMP_FILE"
|
|
50
|
+
if [ -z "$DIRTY_FILES" ]; then
|
|
51
|
+
echo "_None (Clean working tree)_" >> "$TEMP_FILE"
|
|
52
|
+
else
|
|
53
|
+
echo '```' >> "$TEMP_FILE"
|
|
54
|
+
echo "$DIRTY_FILES" >> "$TEMP_FILE"
|
|
55
|
+
echo '```' >> "$TEMP_FILE"
|
|
56
|
+
fi
|
|
57
|
+
|
|
58
|
+
mv "$TEMP_FILE" "$PRIMER_FILE"
|
|
59
|
+
|
|
60
|
+
# 4. Sync to Obsidian (Layer 5)
|
|
61
|
+
chmod +x bin/obsidian-sync.sh
|
|
62
|
+
./bin/obsidian-sync.sh
|
|
63
|
+
|
|
64
|
+
echo "✅ Context refresh complete."
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# obsidian-sync.sh
|
|
4
|
+
#
|
|
5
|
+
# Layer 5: Obsidian Knowledge Bridge
|
|
6
|
+
# Exports ThumbGate data as interlinked Obsidian markdown notes to a vault.
|
|
7
|
+
|
|
8
|
+
VAULT_PATH=$THUMBGATE_OBSIDIAN_VAULT_PATH
|
|
9
|
+
PROJECT_NAME=$(basename "$(pwd)")
|
|
10
|
+
|
|
11
|
+
if [ -z "$VAULT_PATH" ]; then
|
|
12
|
+
echo "🤖 [Layer 5] THUMBGATE_OBSIDIAN_VAULT_PATH not set. Skipping sync."
|
|
13
|
+
exit 0
|
|
14
|
+
fi
|
|
15
|
+
|
|
16
|
+
echo "🤖 [Layer 5] Exporting memories to Obsidian vault: $VAULT_PATH/AI-Memories/$PROJECT_NAME"
|
|
17
|
+
|
|
18
|
+
npx thumbgate obsidian-export --vault-path="$VAULT_PATH" --output-dir="AI-Memories/$PROJECT_NAME"
|
|
19
|
+
|
|
20
|
+
echo "✅ Sync complete."
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Post-install banner — the ONE place every npm user sees ThumbGate.
|
|
6
|
+
* Prints to stderr so it never contaminates piped output.
|
|
7
|
+
* Respects THUMBGATE_NO_NUDGE=1 and CI environments.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
const isCI = !!(process.env.CI || process.env.CONTINUOUS_INTEGRATION || process.env.GITHUB_ACTIONS);
|
|
11
|
+
const isQuiet = process.env.THUMBGATE_NO_NUDGE === '1' || process.env.npm_config_loglevel === 'silent';
|
|
12
|
+
|
|
13
|
+
if (isCI || isQuiet) process.exit(0);
|
|
14
|
+
|
|
15
|
+
const {
|
|
16
|
+
PRO_MONTHLY_PAYMENT_LINK,
|
|
17
|
+
PRO_PRICE_LABEL,
|
|
18
|
+
} = require('../scripts/commercial-offer');
|
|
19
|
+
|
|
20
|
+
process.stderr.write(`
|
|
21
|
+
┌─────────────────────────────────────────────────────┐
|
|
22
|
+
│ │
|
|
23
|
+
│ ThumbGate installed successfully. │
|
|
24
|
+
│ │
|
|
25
|
+
│ Quick start: │
|
|
26
|
+
│ npx thumbgate init │
|
|
27
|
+
│ npx thumbgate stats │
|
|
28
|
+
│ │
|
|
29
|
+
│ Unlock Pro (personal local dashboard, DPO export, │
|
|
30
|
+
│ optional hosted API key) — ${PRO_PRICE_LABEL}: │
|
|
31
|
+
│ ${PRO_MONTHLY_PAYMENT_LINK} │
|
|
32
|
+
│ │
|
|
33
|
+
│ Or run: npx thumbgate pro │
|
|
34
|
+
│ │
|
|
35
|
+
└─────────────────────────────────────────────────────┘
|
|
36
|
+
|
|
37
|
+
`);
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"flows": [
|
|
4
|
+
{
|
|
5
|
+
"id": "feedback_pipeline_roundtrip",
|
|
6
|
+
"title": "E2E: feedback capture -> memory -> DPO export -> prevention rules"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"id": "feedback_api_roundtrip",
|
|
10
|
+
"title": "E2E: API server feedback capture -> stats -> summary round-trip"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"id": "pro_team_checkout_to_dashboard",
|
|
14
|
+
"title": "E2E: public checkout -> paid local session -> usable dashboard key -> admin billing summary"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"id": "localhost_pro_dashboard_bootstrap",
|
|
18
|
+
"title": "E2E: localhost dashboard bootstraps Local Pro while forwarded hosts stay unbootstrapped"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"id": "rotated_billing_key_survives_dashboard",
|
|
22
|
+
"title": "E2E: rotated billing key disables the old key and keeps dashboard access alive"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"id": "history_aware_feedback_distillation",
|
|
26
|
+
"title": "E2E: vague thumbs-down distills a lesson and preserves linked follow-up context"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"id": "learn_hub_http_surface",
|
|
30
|
+
"title": "E2E: learn hub and article pages serve live over HTTP"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": "team_workflow_sprint_to_analytics",
|
|
34
|
+
"title": "E2E: workflow sprint intake progresses to paid team and surfaces in dashboard analytics"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"id": "promoted_lesson_http_crud",
|
|
38
|
+
"title": "E2E: promoted lesson can be viewed, updated, searched, and deleted through the HTTP surface"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"id": "bayesian_uncertainty_via_mcp",
|
|
42
|
+
"title": "E2E: contradictory feedback drives uncertainty through the MCP tool surface"
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"templates": [
|
|
4
|
+
{
|
|
5
|
+
"id": "never-force-push-main",
|
|
6
|
+
"name": "Never force-push to main",
|
|
7
|
+
"category": "Git Safety",
|
|
8
|
+
"signal": "👎",
|
|
9
|
+
"defaultAction": "block",
|
|
10
|
+
"severity": "critical",
|
|
11
|
+
"pattern": "git\\s+push\\s+(--force|-f)",
|
|
12
|
+
"problem": "Stops destructive history rewrites on protected branches before they land.",
|
|
13
|
+
"roi": "Protects every shared repo from the fastest irreversible mistake.",
|
|
14
|
+
"rollout": "Enable on every team repo on day one."
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"id": "never-skip-tests-before-commit",
|
|
18
|
+
"name": "Never skip tests before commit",
|
|
19
|
+
"category": "Verification",
|
|
20
|
+
"signal": "👎",
|
|
21
|
+
"defaultAction": "block",
|
|
22
|
+
"severity": "high",
|
|
23
|
+
"pattern": "git\\s+commit",
|
|
24
|
+
"problem": "Requires proof before code leaves the laptop, reducing broken commits and noisy CI.",
|
|
25
|
+
"roi": "Cuts review churn and CI rollback time across the team.",
|
|
26
|
+
"rollout": "Pair with repository-specific test commands."
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"id": "evidence-before-done",
|
|
30
|
+
"name": "Require evidence before saying done",
|
|
31
|
+
"category": "Agent Honesty",
|
|
32
|
+
"signal": "👎",
|
|
33
|
+
"defaultAction": "block",
|
|
34
|
+
"severity": "high",
|
|
35
|
+
"pattern": "completion_claim_without_verification",
|
|
36
|
+
"problem": "Prevents agents from claiming success without test, deploy, or runtime evidence.",
|
|
37
|
+
"roi": "Raises trust in autonomous runs and reduces manual re-checking.",
|
|
38
|
+
"rollout": "Use for every workflow where proof matters more than speed."
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"id": "protect-production-sql",
|
|
42
|
+
"name": "Protect production SQL",
|
|
43
|
+
"category": "Database Safety",
|
|
44
|
+
"signal": "👎",
|
|
45
|
+
"defaultAction": "block",
|
|
46
|
+
"severity": "critical",
|
|
47
|
+
"pattern": "(drop|truncate|delete)\\s+.*production",
|
|
48
|
+
"problem": "Blocks destructive SQL operations against production-like targets.",
|
|
49
|
+
"roi": "One saved incident pays for the whole rollout.",
|
|
50
|
+
"rollout": "Turn on for any team touching live data."
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"id": "back-up-env-before-edit",
|
|
54
|
+
"name": "Back up .env before editing",
|
|
55
|
+
"category": "Secrets Hygiene",
|
|
56
|
+
"signal": "👎",
|
|
57
|
+
"defaultAction": "warn",
|
|
58
|
+
"severity": "medium",
|
|
59
|
+
"pattern": "\\.env",
|
|
60
|
+
"problem": "Flags risky config edits before tokens or local credentials are lost.",
|
|
61
|
+
"roi": "Reduces secret churn and local breakage during setup work.",
|
|
62
|
+
"rollout": "Good default for every machine and shared repo."
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"id": "promote-known-good-workflows",
|
|
66
|
+
"name": "Promote known-good workflows",
|
|
67
|
+
"category": "Positive Reinforcement",
|
|
68
|
+
"signal": "👍",
|
|
69
|
+
"defaultAction": "allow",
|
|
70
|
+
"severity": "medium",
|
|
71
|
+
"pattern": "verified_workflow_pattern",
|
|
72
|
+
"problem": "Turns repeated thumbs-up patterns into recommended workflow defaults and starter rules.",
|
|
73
|
+
"roi": "Helps new agents and new teammates start from what already works.",
|
|
74
|
+
"rollout": "Use with shared lessons to accelerate onboarding."
|
|
75
|
+
}
|
|
76
|
+
]
|
|
77
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"claims": [
|
|
4
|
+
{
|
|
5
|
+
"pattern": "match.*figma|figma.*correct|design.*match|colors.*match|styling.*correct",
|
|
6
|
+
"requiredActions": ["figma_verified"],
|
|
7
|
+
"message": "You claimed the design matches Figma without calling mcp__figma__get_design_context. Verify the design first, then call track_action('figma_verified').",
|
|
8
|
+
"createdAt": 1774972800000
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"pattern": "tests? pass|all tests|ci.*green|ci.*pass",
|
|
12
|
+
"requiredActions": ["tests_passed"],
|
|
13
|
+
"message": "You claimed tests pass without evidence. Run the tests first, then call track_action('tests_passed').",
|
|
14
|
+
"createdAt": 1774972800000
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"pattern": "ready to merge|pr.*ready|mark.*ready",
|
|
18
|
+
"requiredActions": ["tests_passed", "pr_threads_checked"],
|
|
19
|
+
"message": "You claimed PR readiness without verifying tests pass and review threads are resolved.",
|
|
20
|
+
"createdAt": 1774972800000
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"pattern": "verified on device|works on device|device.*verified|on.device.*correct",
|
|
24
|
+
"requiredActions": ["on_device_verified"],
|
|
25
|
+
"message": "You claimed on-device verification without evidence. Capture the proof first, then call track_action('on_device_verified').",
|
|
26
|
+
"createdAt": 1774972800000
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"description": "Computer-use action gates for OpenAI Responses API environment",
|
|
4
|
+
"presets": {
|
|
5
|
+
"safe-readonly": {
|
|
6
|
+
"description": "Read-only browsing and file access. No writes, no shell, no uploads.",
|
|
7
|
+
"allowedActions": ["browser.open", "browser.click", "file.read", "clipboard.read"],
|
|
8
|
+
"deniedActions": ["shell.exec", "file.write", "file.delete", "upload", "message.send"],
|
|
9
|
+
"approvalRequired": ["browser.type", "download", "clipboard.write"]
|
|
10
|
+
},
|
|
11
|
+
"dev-sandbox": {
|
|
12
|
+
"description": "Development sandbox. Code editing allowed, no external communication.",
|
|
13
|
+
"allowedActions": ["browser.open", "browser.click", "browser.type", "file.read", "file.write", "clipboard.read", "clipboard.write", "download"],
|
|
14
|
+
"deniedActions": ["upload", "message.send"],
|
|
15
|
+
"approvalRequired": ["shell.exec", "file.delete"]
|
|
16
|
+
},
|
|
17
|
+
"human-approval-for-write": {
|
|
18
|
+
"description": "All write actions require human approval.",
|
|
19
|
+
"allowedActions": ["browser.open", "browser.click", "file.read", "clipboard.read"],
|
|
20
|
+
"deniedActions": [],
|
|
21
|
+
"approvalRequired": ["browser.type", "shell.exec", "file.write", "file.delete", "clipboard.write", "download", "upload", "message.send"]
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"secretPatterns": [
|
|
25
|
+
"(?i)(api[_-]?key|secret|token|password|credential|auth)\\s*[:=]",
|
|
26
|
+
"(?i)bearer\\s+[a-zA-Z0-9._-]+",
|
|
27
|
+
"ghp_[a-zA-Z0-9]{36}",
|
|
28
|
+
"sk-[a-zA-Z0-9]{48}"
|
|
29
|
+
],
|
|
30
|
+
"dangerousShellPatterns": [
|
|
31
|
+
"rm\\s+-rf\\s+/",
|
|
32
|
+
"rm\\s+-rf\\s+~",
|
|
33
|
+
":(){ :|:& };:",
|
|
34
|
+
"dd\\s+if=/dev/zero",
|
|
35
|
+
"mkfs\\.",
|
|
36
|
+
"curl.*\\|.*sh",
|
|
37
|
+
"wget.*\\|.*bash"
|
|
38
|
+
]
|
|
39
|
+
}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"gates": [
|
|
4
|
+
{
|
|
5
|
+
"id": "local-only-git-writes",
|
|
6
|
+
"layer": "Identity",
|
|
7
|
+
"pattern": "^(git\\s+(add|commit|push)|gh\\s+pr\\s+)",
|
|
8
|
+
"action": "block",
|
|
9
|
+
"when": { "constraints": { "local_only": true } },
|
|
10
|
+
"message": "User requested local-only work. Git writes and PR operations are blocked.",
|
|
11
|
+
"severity": "critical"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"id": "gh-pr-create-restricted",
|
|
15
|
+
"layer": "Identity",
|
|
16
|
+
"pattern": "gh\\s+pr\\s+create",
|
|
17
|
+
"action": "block",
|
|
18
|
+
"unless": "pr_create_allowed",
|
|
19
|
+
"message": "PR creation requires explicit 'pr_create_allowed' satisfaction with evidence of user permission.",
|
|
20
|
+
"severity": "high"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"id": "gh-pr-merge-restricted",
|
|
24
|
+
"layer": "Identity",
|
|
25
|
+
"pattern": "gh\\s+pr\\s+merge",
|
|
26
|
+
"action": "block",
|
|
27
|
+
"unless": "pr_merge_allowed",
|
|
28
|
+
"message": "PR merging requires explicit 'pr_merge_allowed' satisfaction with evidence of user permission.",
|
|
29
|
+
"severity": "high"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"id": "loop-abuse-prevention",
|
|
33
|
+
"layer": "Decisions",
|
|
34
|
+
"pattern": "loop\\s+\\d+\\s+.*(curl|wget|rm\\s+-rf|git\\s+push|gh\\s+pr)",
|
|
35
|
+
"action": "block",
|
|
36
|
+
"message": "High-risk command detected inside a loop. Scheduled tasks must not perform egress or destructive writes without explicit approval.",
|
|
37
|
+
"severity": "critical"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"id": "push-without-thread-check",
|
|
41
|
+
"layer": "Decisions",
|
|
42
|
+
"trigger": "Bash:git_push",
|
|
43
|
+
"pattern": "git\\s+push",
|
|
44
|
+
"action": "block",
|
|
45
|
+
"unless": "pr_threads_checked",
|
|
46
|
+
"message": "Check PR review threads (reviewThreads first:50) before pushing. Use satisfy_gate('pr_threads_checked', 'evidence') to bypass.",
|
|
47
|
+
"severity": "critical"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"id": "package-lock-reset",
|
|
51
|
+
"layer": "Execution",
|
|
52
|
+
"trigger": "Bash:package_lock",
|
|
53
|
+
"pattern": "git\\s+checkout\\s+\\S+\\s+--\\s+package-lock\\.json",
|
|
54
|
+
"action": "block",
|
|
55
|
+
"message": "Never reset package-lock.json from another branch. Run npm install instead.",
|
|
56
|
+
"severity": "critical"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"id": "force-push",
|
|
60
|
+
"layer": "Execution",
|
|
61
|
+
"trigger": "Bash:git_force_push",
|
|
62
|
+
"pattern": "git\\s+push\\s+(--force|-f)",
|
|
63
|
+
"action": "block",
|
|
64
|
+
"message": "Force push blocked. This is destructive and irreversible.",
|
|
65
|
+
"severity": "critical"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"id": "protected-branch-push",
|
|
69
|
+
"layer": "Execution",
|
|
70
|
+
"trigger": "Bash:protected_push",
|
|
71
|
+
"pattern": "git\\s+push\\s+(?:\\S+\\s+)?(?:develop|main|master)\\b",
|
|
72
|
+
"action": "block",
|
|
73
|
+
"message": "Direct push to protected branch. Use feature branches and PRs.",
|
|
74
|
+
"severity": "critical"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"id": "env-file-edit",
|
|
78
|
+
"layer": "Cloud",
|
|
79
|
+
"trigger": "Edit:env_file",
|
|
80
|
+
"pattern": "\\.env",
|
|
81
|
+
"action": "warn",
|
|
82
|
+
"message": "Editing .env file — verify you are not deleting existing tokens",
|
|
83
|
+
"severity": "medium"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"id": "deny-network-egress",
|
|
87
|
+
"layer": "Cloud",
|
|
88
|
+
"pattern": "curl\\s|wget\\s|fetch\\(|https?://(?!github\\.com|registry\\.npmjs\\.org|api\\.anthropic\\.com)",
|
|
89
|
+
"action": "warn",
|
|
90
|
+
"unless": "egress_approved",
|
|
91
|
+
"message": "Potential unauthorized network egress detected.",
|
|
92
|
+
"severity": "medium"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"id": "unverified-skill-use",
|
|
96
|
+
"layer": "Supply Chain",
|
|
97
|
+
"trigger": "Skill:load",
|
|
98
|
+
"pattern": ".*",
|
|
99
|
+
"when": { "constraints": { "THUMBGATE_DELEGATION_MODE": true } },
|
|
100
|
+
"action": "warn",
|
|
101
|
+
"unless": "skill_verified",
|
|
102
|
+
"message": "Skill provenance check failed. Run 'npm run skill:verify' or satisfy 'skill_verified' with a valid signature to proceed.",
|
|
103
|
+
"severity": "high"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"id": "blocked-npx-content",
|
|
107
|
+
"layer": "Supply Chain",
|
|
108
|
+
"trigger": "Bash:exec",
|
|
109
|
+
"pattern": ".*",
|
|
110
|
+
"executable_hash": "237adf8f3747cad8b9b62fcfd0d9c8d509a64e550337707f55100afcb79e8900",
|
|
111
|
+
"when": { "constraints": { "THUMBGATE_DELEGATION_MODE": true } },
|
|
112
|
+
"action": "block",
|
|
113
|
+
"message": "Blocked npx execution by content hash. Renaming the binary does not bypass this gate.",
|
|
114
|
+
"severity": "critical"
|
|
115
|
+
}
|
|
116
|
+
]
|
|
117
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"repo": "IgorGanapolsky/ThumbGate",
|
|
3
|
+
"repositoryUrl": "https://github.com/IgorGanapolsky/ThumbGate",
|
|
4
|
+
"homepageUrl": "https://thumbgate-production.up.railway.app",
|
|
5
|
+
"description": "Pre-action gates for AI coding agents. Skill disclosure cuts tokens. Hallucination and PII checks harden outputs. 👍 Thumbs up reinforces good behavior. 👎 Thumbs down blocks repeated mistakes. Free is local. History-aware lessons distill vague feedback. Team adds shared lessons and org visibility, plus generated review views.",
|
|
6
|
+
"topics": [
|
|
7
|
+
"thumbgate",
|
|
8
|
+
"pre-action-gates",
|
|
9
|
+
"mcp",
|
|
10
|
+
"mcp-server",
|
|
11
|
+
"ai-agents",
|
|
12
|
+
"agent-reliability",
|
|
13
|
+
"guardrails",
|
|
14
|
+
"ai-safety",
|
|
15
|
+
"developer-tools",
|
|
16
|
+
"feedback-loop",
|
|
17
|
+
"claude-code",
|
|
18
|
+
"cursor",
|
|
19
|
+
"codex",
|
|
20
|
+
"gemini",
|
|
21
|
+
"amp",
|
|
22
|
+
"opencode",
|
|
23
|
+
"thompson-sampling"
|
|
24
|
+
]
|
|
25
|
+
}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"profiles": {
|
|
4
|
+
"default": [
|
|
5
|
+
"recall",
|
|
6
|
+
"capture_feedback",
|
|
7
|
+
"open_feedback_session",
|
|
8
|
+
"append_feedback_context",
|
|
9
|
+
"finalize_feedback_session",
|
|
10
|
+
"feedback_summary",
|
|
11
|
+
"search_lessons",
|
|
12
|
+
"retrieve_lessons",
|
|
13
|
+
"search_rlhf",
|
|
14
|
+
"reflect_on_feedback",
|
|
15
|
+
"feedback_stats",
|
|
16
|
+
"diagnose_failure",
|
|
17
|
+
"list_intents",
|
|
18
|
+
"plan_intent",
|
|
19
|
+
"start_handoff",
|
|
20
|
+
"complete_handoff",
|
|
21
|
+
"bootstrap_internal_agent",
|
|
22
|
+
"prevention_rules",
|
|
23
|
+
"export_dpo_pairs",
|
|
24
|
+
"export_databricks_bundle",
|
|
25
|
+
"construct_context_pack",
|
|
26
|
+
"evaluate_context_pack",
|
|
27
|
+
"context_provenance",
|
|
28
|
+
"commerce_recall",
|
|
29
|
+
"generate_skill",
|
|
30
|
+
"satisfy_gate",
|
|
31
|
+
"track_action",
|
|
32
|
+
"verify_claim",
|
|
33
|
+
"register_claim_gate",
|
|
34
|
+
"gate_stats",
|
|
35
|
+
"dashboard",
|
|
36
|
+
"settings_status",
|
|
37
|
+
"list_harnesses",
|
|
38
|
+
"run_harness",
|
|
39
|
+
"estimate_uncertainty",
|
|
40
|
+
"get_business_metrics",
|
|
41
|
+
"describe_semantic_entity",
|
|
42
|
+
"capture_memory_feedback",
|
|
43
|
+
"get_reliability_rules",
|
|
44
|
+
"describe_reliability_entity",
|
|
45
|
+
"report_product_issue"
|
|
46
|
+
],
|
|
47
|
+
"essential": [
|
|
48
|
+
"capture_feedback",
|
|
49
|
+
"open_feedback_session",
|
|
50
|
+
"append_feedback_context",
|
|
51
|
+
"finalize_feedback_session",
|
|
52
|
+
"recall",
|
|
53
|
+
"search_lessons",
|
|
54
|
+
"retrieve_lessons",
|
|
55
|
+
"search_rlhf",
|
|
56
|
+
"reflect_on_feedback",
|
|
57
|
+
"prevention_rules",
|
|
58
|
+
"track_action",
|
|
59
|
+
"verify_claim",
|
|
60
|
+
"feedback_stats",
|
|
61
|
+
"feedback_summary",
|
|
62
|
+
"estimate_uncertainty",
|
|
63
|
+
"report_product_issue"
|
|
64
|
+
],
|
|
65
|
+
"commerce": [
|
|
66
|
+
"capture_feedback",
|
|
67
|
+
"recall",
|
|
68
|
+
"retrieve_lessons",
|
|
69
|
+
"search_rlhf",
|
|
70
|
+
"commerce_recall",
|
|
71
|
+
"track_action",
|
|
72
|
+
"verify_claim",
|
|
73
|
+
"prevention_rules",
|
|
74
|
+
"feedback_stats",
|
|
75
|
+
"feedback_summary"
|
|
76
|
+
],
|
|
77
|
+
"readonly": [
|
|
78
|
+
"recall",
|
|
79
|
+
"feedback_summary",
|
|
80
|
+
"search_lessons",
|
|
81
|
+
"retrieve_lessons",
|
|
82
|
+
"search_rlhf",
|
|
83
|
+
"feedback_stats",
|
|
84
|
+
"diagnose_failure",
|
|
85
|
+
"list_harnesses",
|
|
86
|
+
"list_intents",
|
|
87
|
+
"plan_intent",
|
|
88
|
+
"start_handoff",
|
|
89
|
+
"complete_handoff",
|
|
90
|
+
"context_provenance",
|
|
91
|
+
"verify_claim",
|
|
92
|
+
"gate_stats",
|
|
93
|
+
"dashboard",
|
|
94
|
+
"settings_status",
|
|
95
|
+
"get_business_metrics",
|
|
96
|
+
"describe_semantic_entity",
|
|
97
|
+
"get_reliability_rules",
|
|
98
|
+
"describe_reliability_entity"
|
|
99
|
+
],
|
|
100
|
+
"dispatch": [
|
|
101
|
+
"recall",
|
|
102
|
+
"feedback_summary",
|
|
103
|
+
"search_lessons",
|
|
104
|
+
"retrieve_lessons",
|
|
105
|
+
"search_rlhf",
|
|
106
|
+
"feedback_stats",
|
|
107
|
+
"diagnose_failure",
|
|
108
|
+
"list_harnesses",
|
|
109
|
+
"list_intents",
|
|
110
|
+
"plan_intent",
|
|
111
|
+
"run_harness",
|
|
112
|
+
"context_provenance",
|
|
113
|
+
"verify_claim",
|
|
114
|
+
"gate_stats",
|
|
115
|
+
"dashboard",
|
|
116
|
+
"settings_status",
|
|
117
|
+
"get_business_metrics",
|
|
118
|
+
"describe_semantic_entity",
|
|
119
|
+
"get_reliability_rules",
|
|
120
|
+
"describe_reliability_entity"
|
|
121
|
+
],
|
|
122
|
+
"locked": [
|
|
123
|
+
"feedback_summary",
|
|
124
|
+
"search_lessons",
|
|
125
|
+
"retrieve_lessons",
|
|
126
|
+
"search_rlhf",
|
|
127
|
+
"diagnose_failure",
|
|
128
|
+
"list_intents",
|
|
129
|
+
"plan_intent",
|
|
130
|
+
"list_harnesses",
|
|
131
|
+
"verify_claim",
|
|
132
|
+
"settings_status"
|
|
133
|
+
]
|
|
134
|
+
}
|
|
135
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"tiers": {
|
|
4
|
+
"nano": {
|
|
5
|
+
"label": "GPT-5.4 nano",
|
|
6
|
+
"taskTypes": ["classification", "extraction", "ranking", "labeling", "summarization"],
|
|
7
|
+
"maxContextTokens": 32000,
|
|
8
|
+
"costMultiplier": 0.1
|
|
9
|
+
},
|
|
10
|
+
"mini": {
|
|
11
|
+
"label": "GPT-5.4 mini",
|
|
12
|
+
"taskTypes": ["code-edit", "test-generation", "review", "tool-use", "debugging"],
|
|
13
|
+
"maxContextTokens": 200000,
|
|
14
|
+
"costMultiplier": 0.4
|
|
15
|
+
},
|
|
16
|
+
"frontier": {
|
|
17
|
+
"label": "GPT-5.4",
|
|
18
|
+
"taskTypes": ["architecture", "cross-file", "complex-debugging", "large-context"],
|
|
19
|
+
"maxContextTokens": 1000000,
|
|
20
|
+
"costMultiplier": 1.0,
|
|
21
|
+
"budgetDefaults": {
|
|
22
|
+
"tokenCap": 500000,
|
|
23
|
+
"requireReason": true
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"escalationRules": {
|
|
28
|
+
"contextThreshold": 200000,
|
|
29
|
+
"failureRetryThreshold": 2,
|
|
30
|
+
"highRiskEscalation": true,
|
|
31
|
+
"architectureTags": ["architecture", "cross-file", "multi-module", "system-design"]
|
|
32
|
+
}
|
|
33
|
+
}
|