thumbgate 1.35.0 → 1.37.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.
Files changed (196) hide show
  1. package/.agents/skills/cyberstrike-compare-not-clone/SKILL.md +36 -0
  2. package/.agents/skills/gitlab-sandbox-allowlist-not-trust/SKILL.md +77 -0
  3. package/.agents/skills/jit-harness-compare-not-clone/SKILL.md +34 -0
  4. package/.agents/skills/openui-catalog-compose-honesty/SKILL.md +64 -0
  5. package/.agents/skills/zvec-grep-compare-not-clone/SKILL.md +34 -0
  6. package/.claude-plugin/plugin.json +1 -1
  7. package/.well-known/llms.txt +1 -0
  8. package/.well-known/mcp/server-card.json +1 -1
  9. package/CONTRIBUTING.md +95 -0
  10. package/README.md +195 -632
  11. package/THIRD_PARTY_NOTICES.md +89 -0
  12. package/adapters/claude/.mcp.json +2 -2
  13. package/adapters/forge/forge.yaml +3 -3
  14. package/adapters/future-agi/.mcp.json +8 -0
  15. package/adapters/future-agi/FUTURE_AGI.md +23 -0
  16. package/adapters/future-agi/config.toml +3 -0
  17. package/adapters/future-agi/future-agi-bridge.js +9 -0
  18. package/adapters/future-agi/opencode.json +8 -0
  19. package/adapters/herdr/herdr-plugin.toml +18 -0
  20. package/adapters/mcp/server-stdio.js +238 -25
  21. package/adapters/opencode/opencode.json +1 -1
  22. package/adapters/workos/WORKOS.md +52 -0
  23. package/bin/cli.js +336 -3
  24. package/bin/futureagi-bridge +9 -0
  25. package/config/gate-templates.json +581 -4
  26. package/config/gates/actor-critic-audit.json +34 -0
  27. package/config/gates/default.json +9 -3
  28. package/config/gates/five-walls-governance.json +34 -0
  29. package/config/gates/future-agi-guardrails.json +34 -0
  30. package/config/gates/radware-threat-defense-2026.json +61 -0
  31. package/config/gates/simatree-data-governance.json +33 -0
  32. package/config/mcp-allowlists.json +4 -0
  33. package/config/merge-quality-checks.json +6 -0
  34. package/config/model-candidates.json +312 -29
  35. package/config/model-tiers.json +18 -0
  36. package/config/post-deploy-marketing-pages.json +10 -0
  37. package/config/progressive/01-wire-only.json +11 -0
  38. package/config/progressive/02-dashboard-empty-ok.json +10 -0
  39. package/config/progressive/03-one-lesson.json +10 -0
  40. package/config/progressive/04-warn-fires.json +11 -0
  41. package/config/progressive/05-strict-optional.json +11 -0
  42. package/config/progressive/README.md +15 -0
  43. package/config/schemas/broker-execution-receipt.schema.json +139 -0
  44. package/config/schemas/provider-execution-attestation-v1.schema.json +58 -0
  45. package/conformance/provider-attestation/vectors.json +320 -0
  46. package/docs/specs/provider-execution-attestation-v1.md +69 -0
  47. package/openapi/openapi.yaml +15 -0
  48. package/package.json +390 -148
  49. package/public/about.html +2 -2
  50. package/public/ai-malpractice-prevention.html +7 -7
  51. package/public/blog/a-10-dollar-vps-is-not-a-computer.html +143 -0
  52. package/public/blog/a-receipt-is-not-world-state.html +388 -0
  53. package/public/blog/git-at-agent-scale.html +374 -0
  54. package/public/blog/no-llm-in-the-gate.html +133 -0
  55. package/public/blog.html +80 -0
  56. package/public/case-studies.html +16 -1
  57. package/public/compare.html +28 -0
  58. package/public/diagnostic.html +216 -7
  59. package/public/docs/connectors.html +39 -0
  60. package/public/federal.html +2 -2
  61. package/public/founders.html +639 -0
  62. package/public/index.html +87 -9
  63. package/public/install.html +8 -8
  64. package/public/learn.html +39 -0
  65. package/public/numbers.html +2 -2
  66. package/public/peter.html +310 -0
  67. package/public/platform-partners.html +119 -0
  68. package/public/pricing.html +24 -3
  69. package/public/privacy.html +117 -0
  70. package/public/pro.html +17 -0
  71. package/public/support.html +62 -0
  72. package/public/terms.html +130 -0
  73. package/public/third-party-notices.html +95 -0
  74. package/public/yt.html +351 -0
  75. package/scripts/action-receipts.js +133 -3
  76. package/scripts/adaptive-governance-arena.js +349 -0
  77. package/scripts/admin-override.js +205 -0
  78. package/scripts/agent-action-inventory.js +869 -0
  79. package/scripts/agent-audit-trace.js +42 -2
  80. package/scripts/agent-egress-policy.js +1117 -0
  81. package/scripts/agent-memory-lifecycle.js +141 -2
  82. package/scripts/agent-operations-planner.js +441 -1
  83. package/scripts/agent-readiness.js +68 -0
  84. package/scripts/agent-security-central.js +647 -0
  85. package/scripts/allowlist-bridge-honesty.js +417 -0
  86. package/scripts/async-job-runner.js +102 -11
  87. package/scripts/audit-trail.js +212 -0
  88. package/scripts/billing.js +1 -1
  89. package/scripts/broker-execution-receipts.js +719 -0
  90. package/scripts/budget-aware-gates-proof.js +423 -0
  91. package/scripts/claude-feedback-sync.js +29 -3
  92. package/scripts/claw-harness-production.js +237 -0
  93. package/scripts/cli-schema.js +163 -1
  94. package/scripts/codex-runbook-flywheel.js +318 -0
  95. package/scripts/context-footprint.js +186 -0
  96. package/scripts/contextfs.js +143 -61
  97. package/scripts/dashboard.js +251 -32
  98. package/scripts/deepseek-v4-runtime-guardrails.js +72 -6
  99. package/scripts/docker-sandbox-planner.js +18 -0
  100. package/scripts/double-blind-eval-protocol.js +252 -0
  101. package/scripts/edotenv-rl-gateway.js +259 -0
  102. package/scripts/ensure-production-search-corpus.js +162 -0
  103. package/scripts/eval-holdout.js +311 -0
  104. package/scripts/feedback-aggregate.js +21 -2
  105. package/scripts/feedback-loop.js +87 -5
  106. package/scripts/feedback-quality.js +9 -0
  107. package/scripts/file-ledger-lock.js +4 -1
  108. package/scripts/financial-control-plane.js +41 -1
  109. package/scripts/find-dormant-requires.js +118 -0
  110. package/scripts/fs-utils.js +84 -8
  111. package/scripts/gates-engine.js +810 -63
  112. package/scripts/generate-case-study-outreach.js +24 -15
  113. package/scripts/git-at-scale.js +628 -0
  114. package/scripts/governance-conflict-audit.js +1650 -0
  115. package/scripts/governance-difficulty-curriculum.js +328 -0
  116. package/scripts/graphrag-retrieval.js +275 -0
  117. package/scripts/gurobi-optimizer.js +324 -0
  118. package/scripts/gurobi_optimizer.py +485 -0
  119. package/scripts/harness-selector.js +82 -1
  120. package/scripts/hidden-entry-points.js +284 -0
  121. package/scripts/human-escalation.js +199 -1
  122. package/scripts/hybrid-feedback-context.js +152 -19
  123. package/scripts/intent-governed-execution.js +602 -0
  124. package/scripts/intervention-policy.js +123 -20
  125. package/scripts/jit-harness-compose.js +628 -0
  126. package/scripts/jsonl-watcher.js +10 -0
  127. package/scripts/lesson-embedding-index.js +95 -12
  128. package/scripts/lesson-retrieval.js +105 -19
  129. package/scripts/local-model-profile.js +19 -2
  130. package/scripts/mailer/resend-mailer.js +1 -1
  131. package/scripts/matryoshka-embedding.js +235 -0
  132. package/scripts/mcp-oauth.js +42 -4
  133. package/scripts/mcp-session-handles.js +1016 -0
  134. package/scripts/mcp-wiring-doctor.js +314 -0
  135. package/scripts/memory-firewall.js +115 -2
  136. package/scripts/memory-scope-readiness.js +299 -0
  137. package/scripts/memory-vs-rag-route.js +161 -0
  138. package/scripts/model-tier-router.js +148 -21
  139. package/scripts/nvidia-specdecode-al-doctor.js +536 -0
  140. package/scripts/openui-catalog-compose-honesty.js +593 -0
  141. package/scripts/operational-integrity.js +19 -1
  142. package/scripts/override-audit.js +213 -0
  143. package/scripts/package-manager-honesty-doctor.js +458 -0
  144. package/scripts/pr-manager.js +63 -1
  145. package/scripts/prove-herdr-adapter.js +52 -0
  146. package/scripts/prove-memory-pyramid-and-symbolic-canvas.js +95 -0
  147. package/scripts/prove-workos.js +73 -0
  148. package/scripts/provider-attestation-conformance.js +192 -0
  149. package/scripts/provider-receipt-contract.js +136 -0
  150. package/scripts/qwen38-max-cost-optimizer.js +401 -0
  151. package/scripts/radware-threat-defense.js +280 -0
  152. package/scripts/rag-embedding-identity.js +221 -0
  153. package/scripts/rag-precision-guardrails.js +112 -2
  154. package/scripts/remote-feedback-capture.js +159 -0
  155. package/scripts/research-agent-harness.js +256 -0
  156. package/scripts/rsi-safety-hillclimb.js +200 -0
  157. package/scripts/rule-sprawl.js +188 -0
  158. package/scripts/schedule-manager.js +147 -0
  159. package/scripts/self-heal.js +8 -0
  160. package/scripts/session-lease.js +415 -0
  161. package/scripts/simatree-data-governance.js +347 -0
  162. package/scripts/slo-alert-engine.js +172 -7
  163. package/scripts/solver-parity.js +539 -0
  164. package/scripts/stealth-memory-injection-gate.js +333 -0
  165. package/scripts/switchyard-router.js +366 -0
  166. package/scripts/telemetry-analytics.js +84 -27
  167. package/scripts/temporal-decay-weighting.js +138 -0
  168. package/scripts/test-all.js +165 -0
  169. package/scripts/token-savings.js +42 -0
  170. package/scripts/tool-kpi-tracker.js +108 -5
  171. package/scripts/tool-registry.js +193 -5
  172. package/scripts/universal-claim-evaluator.js +14 -2
  173. package/scripts/vector-store.js +279 -9
  174. package/scripts/workflow-notebook.js +391 -0
  175. package/scripts/workflow-sentinel.js +111 -12
  176. package/scripts/workos-production-guard.js +260 -0
  177. package/scripts/workspace-search-route.js +515 -0
  178. package/server.json +2 -2
  179. package/src/agent-identity-boundary.js +76 -0
  180. package/src/agent-retrieval-cache.js +155 -0
  181. package/src/alert-noise-ledger.js +502 -0
  182. package/src/api/server.js +724 -153
  183. package/src/git-fast-cache.js +220 -0
  184. package/src/git-wal-sync.js +156 -0
  185. package/src/hash-anchored-edit.js +82 -0
  186. package/src/hermes-platform-protocol.js +475 -0
  187. package/src/hermes-sync-plane.js +241 -0
  188. package/src/index.js +30 -1
  189. package/src/iso42001-compliance-guard.js +97 -0
  190. package/src/latency-budget.js +244 -0
  191. package/src/mcp-writeguard.js +316 -0
  192. package/src/miminions-adapter.js +106 -0
  193. package/src/pipeline-compass.js +104 -0
  194. package/src/ppl-alert-pipeline.js +284 -0
  195. package/src/rendezvous-router.js +90 -0
  196. package/src/security-questionnaire.js +195 -0
@@ -0,0 +1,195 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Public vendor-security questionnaire.
5
+ * Answers are taken from existing public legal docs only.
6
+ * This is not a SOC 2 report or certification claim.
7
+ */
8
+
9
+ const UPDATED = '2026-08-18';
10
+
11
+ function getSecurityQuestionnaire() {
12
+ return {
13
+ product: 'ThumbGate',
14
+ updated: UPDATED,
15
+ certification: false,
16
+ copyPasteUrl: 'https://thumbgate.ai/security.json',
17
+ htmlUrl: 'https://thumbgate.ai/security',
18
+ items: [
19
+ {
20
+ id: 'what',
21
+ question: 'What does ThumbGate do?',
22
+ answer: 'ThumbGate is a local-first pre-action control layer for AI coding agents. Gates can allow, warn, require approval, or hard-deny tool calls. It is not a guarantee that every unsafe action is detected.',
23
+ source: '/security and docs/legal/SECURITY_AND_INCIDENT.md',
24
+ },
25
+ {
26
+ id: 'soc2',
27
+ question: 'Do you have SOC 2, ISO 27001, ISO 42001, HIPAA, or a default BAA?',
28
+ answer: 'No. ThumbGate does not have a SOC 2 Type I/II report, ISO 27001 or ISO 42001 certificate, HIPAA eligibility, or a default BAA. Do not treat marketing “control mapping” language as an attestation.',
29
+ source: 'docs/legal/SECURITY_AND_INCIDENT.md §7',
30
+ },
31
+ {
32
+ id: 'source-code',
33
+ question: 'Where does customer workspace source code live?',
34
+ answer: 'On the customer machine by default. The local engine does not fetch or render workspace source on public marketing dashboards. Hosted surfaces process account, billing, pairing, and runner operational logs — not local workspace contents unless the customer sends them.',
35
+ source: '/privacy and docs/legal/PRIVACY_POLICY.md §1–2',
36
+ },
37
+ {
38
+ id: 'training',
39
+ question: 'Do you train models on customer data?',
40
+ answer: 'We do not share local-engine workspace source with model trainers. Hosted features only process content the customer sends to those features.',
41
+ source: 'docs/legal/PRIVACY_POLICY.md §3',
42
+ },
43
+ {
44
+ id: 'subprocessors',
45
+ question: 'Who are your subprocessors?',
46
+ answer: 'Operational list: Stripe (payments), Railway (hosting), Plausible (web analytics), PostHog (product analytics where configured), Resend (transactional email where configured), PayPal (alternate payment rail where used), GitHub (repo/issues/Marketplace). Presence on the list is not a claim that every enterprise questionnaire or SCC is complete.',
47
+ source: 'docs/legal/PRIVACY_POLICY.md §4',
48
+ },
49
+ {
50
+ id: 'encryption',
51
+ question: 'Is data encrypted in transit?',
52
+ answer: 'Hosted endpoints are served over HTTPS/TLS. This is engineering practice, not a certified control.',
53
+ source: 'docs/legal/SECURITY_AND_INCIDENT.md §3',
54
+ },
55
+ {
56
+ id: 'auth',
57
+ question: 'How is hosted access controlled?',
58
+ answer: 'Sensitive hosted routes use API keys or operator auth. Stripe webhooks are HMAC-verified. Production secrets live in the host secret store, not git.',
59
+ source: 'docs/legal/SECURITY_AND_INCIDENT.md §3',
60
+ },
61
+ {
62
+ id: 'audit',
63
+ question: 'What audit artifact exists for a consequential agent action?',
64
+ answer: 'A signed broker execution receipt. Agents cannot mint a valid signature. Public schema: https://github.com/IgorGanapolsky/ThumbGate/blob/main/config/schemas/broker-execution-receipt.schema.json',
65
+ source: 'docs/BROKER_EXECUTION_RECEIPTS.md',
66
+ },
67
+ {
68
+ id: 'gpc',
69
+ question: 'Do you honor Global Privacy Control, DNT, and CCPA 1798.135?',
70
+ answer: 'Yes on marketing surfaces. Sec-GPC: 1 or DNT: 1 discards first-party /v1/telemetry/ping (still 204) and omits Plausible/GA bootstrap. Privacy notice describes analytics as pseudonymous, not anonymous, and exposes Your Privacy Choices.',
71
+ source: '/privacy#your-privacy-choices and PR #3514',
72
+ },
73
+ {
74
+ id: 'sale',
75
+ question: 'Do you sell personal information?',
76
+ answer: 'No.',
77
+ source: 'docs/legal/PRIVACY_POLICY.md §2',
78
+ },
79
+ {
80
+ id: 'deletion',
81
+ question: 'How do we delete hosted account data?',
82
+ answer: 'Email privacy@thumbgate.ai or the contact on /privacy. Verified hosted-account deletion requests are processed within 30 days except legal holds. Local data is deleted by removing local directories.',
83
+ source: 'docs/legal/PRIVACY_POLICY.md §6',
84
+ },
85
+ {
86
+ id: 'incident',
87
+ question: 'What is the incident notification target?',
88
+ answer: 'For enterprise customers under a signed agreement that includes incident terms: notify the designated contact within 72 hours after confirming a personal-data or confidential hosted-content breach affecting that customer. Self-serve users without that schedule get commercially reasonable notice, not a contractual 72-hour SLA.',
89
+ source: 'docs/legal/SECURITY_AND_INCIDENT.md §5',
90
+ },
91
+ {
92
+ id: 'vuln',
93
+ question: 'How do we report a vulnerability?',
94
+ answer: 'Email security@thumbgate.ai with “Security” in the subject. Do not file public GitHub issues for active vulnerabilities. Acknowledgement target: 48 hours.',
95
+ source: '/security',
96
+ },
97
+ {
98
+ id: 'inspect',
99
+ question: 'Can we inspect the control layer?',
100
+ answer: 'Yes. The public runtime is MIT-licensed at https://github.com/IgorGanapolsky/ThumbGate. Hosted operation, adapter coverage, and dashboard state are what a subscription buys — not a private intelligence split.',
101
+ source: 'MOAT.md and /legal/licensing',
102
+ },
103
+ {
104
+ id: 'health',
105
+ question: 'How do we verify the live hosted build?',
106
+ answer: 'GET https://thumbgate-production.up.railway.app/health returns version and buildSha. Production claims require that buildSha to match the intended main commit.',
107
+ source: 'CLAUDE.md Deployment Verification Gate',
108
+ },
109
+ ],
110
+ };
111
+ }
112
+
113
+ function escapeHtml(value) {
114
+ return String(value)
115
+ .replace(/&/g, '&')
116
+ .replace(/</g, '&lt;')
117
+ .replace(/>/g, '&gt;')
118
+ .replace(/"/g, '&quot;');
119
+ }
120
+
121
+ function toMarkdown(pack = getSecurityQuestionnaire()) {
122
+ const lines = [
123
+ `# ThumbGate security questionnaire`,
124
+ ``,
125
+ `Updated: ${pack.updated}`,
126
+ `This is not a SOC 2 report, pen-test certificate, or compliance certification.`,
127
+ `Machine-readable: ${pack.copyPasteUrl}`,
128
+ ``,
129
+ ];
130
+ for (const item of pack.items) {
131
+ lines.push(`## ${item.question}`);
132
+ lines.push(item.answer);
133
+ lines.push(`Source: ${item.source}`);
134
+ lines.push('');
135
+ }
136
+ return lines.join('\n');
137
+ }
138
+
139
+ function renderSecurityOverviewHtml(pack = getSecurityQuestionnaire()) {
140
+ const faqLd = {
141
+ '@context': 'https://schema.org',
142
+ '@type': 'FAQPage',
143
+ mainEntity: pack.items.map((item) => ({
144
+ '@type': 'Question',
145
+ name: item.question,
146
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
147
+ })),
148
+ };
149
+
150
+ const itemsHtml = pack.items.map((item) => `
151
+ <article class="qa" id="${escapeHtml(item.id)}">
152
+ <h3>${escapeHtml(item.question)}</h3>
153
+ <p>${escapeHtml(item.answer)}</p>
154
+ <p class="src">Source: ${escapeHtml(item.source)}</p>
155
+ </article>`).join('\n');
156
+
157
+ return `<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
158
+ <title>Security questionnaire — ThumbGate</title>
159
+ <meta name="description" content="Copy-paste vendor security answers for ThumbGate. Local-first control layer, no SOC 2 claim, GPC/DNT honored, public receipt schema.">
160
+ <link rel="canonical" href="https://thumbgate.ai/security">
161
+ <script type="application/ld+json">${JSON.stringify(faqLd)}</script>
162
+ <style>body{font-family:system-ui,-apple-system,sans-serif;max-width:820px;margin:0 auto;padding:32px 20px;line-height:1.55;color:#1f2937}
163
+ h1{font-size:28px;margin:0 0 8px}h2{font-size:18px;margin:28px 0 8px}h3{font-size:16px;margin:0 0 8px}p,li{font-size:15px}
164
+ .meta{color:#6b7280;font-size:14px;margin:0 0 24px}
165
+ .draft{border-left:3px solid #f59e0b;background:#fffbeb;padding:10px 14px;border-radius:0 8px 8px 0;margin:16px 0}
166
+ .qa{border:1px solid #e5e7eb;border-radius:10px;padding:14px 16px;margin:12px 0}
167
+ .src{color:#6b7280;font-size:13px;margin:8px 0 0}
168
+ pre{background:#0f172a;color:#e2e8f0;padding:12px 14px;border-radius:8px;overflow:auto;font-size:13px}
169
+ ul{padding-left:22px}li{margin:6px 0}a{color:#0066cc}
170
+ footer{margin-top:40px;padding-top:20px;border-top:1px solid #e5e7eb;color:#6b7280;font-size:14px}</style></head><body>
171
+ <h1>Security overview</h1>
172
+ <p class="meta"><strong>ThumbGate</strong> · Last updated: ${escapeHtml(pack.updated)} · JSON: <a href="/security.json">/security.json</a></p>
173
+ <div class="draft">This page is a product security summary for buyers and partners. It is not a SOC 2 report, pen-test certificate, or compliance certification. Paste <a href="/security.json">/security.json</a> into a vendor review instead of waiting on a custom write-up.</div>
174
+ <h2>Control layer model</h2>
175
+ <p>ThumbGate provides pre-action control for AI agents: allow, warn, require approval, or hard-deny tool calls based on configured rules. It is not a guarantee that every unsafe action is detected.</p>
176
+ <h2>Local-first boundary</h2>
177
+ <p>The default local engine keeps workspace source and local lessons on your machine. Hosted surfaces process account, billing, device pairing, and runner operational logs as described in the <a href="/privacy">Privacy Policy</a>.</p>
178
+ <h2>Vendor questionnaire</h2>
179
+ <p>Standard startup security-review questions, answered from existing public docs. Copy the JSON or the markdown block below.</p>
180
+ ${itemsHtml}
181
+ <h2>Copy as markdown</h2>
182
+ <pre>${escapeHtml(toMarkdown(pack))}</pre>
183
+ <h2>Incident notification posture</h2>
184
+ <p>For enterprise customers under a signed agreement that includes incident terms, the draft contractual target is notification within <strong>72 hours</strong> after confirming a personal-data or confidential hosted-content breach affecting that customer.</p>
185
+ <h2>Vulnerability disclosure</h2>
186
+ <p>Email <a href="mailto:security@thumbgate.ai">security@thumbgate.ai</a> with “Security” in the subject. Do not file public issues for active vulnerabilities. Acknowledgement target: 48 hours.</p>
187
+ <footer><a href="/terms">Terms</a> · <a href="/privacy">Privacy</a> · <a href="/privacy#your-privacy-choices">Your Privacy Choices</a> · <a href="/trust">Trust Center</a> · <a href="/support">Support</a> · <a href="/legal">Legal index</a></footer>
188
+ </body></html>`;
189
+ }
190
+
191
+ module.exports = {
192
+ getSecurityQuestionnaire,
193
+ renderSecurityOverviewHtml,
194
+ toMarkdown,
195
+ };