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.
- package/.agents/skills/cyberstrike-compare-not-clone/SKILL.md +36 -0
- package/.agents/skills/gitlab-sandbox-allowlist-not-trust/SKILL.md +77 -0
- package/.agents/skills/jit-harness-compare-not-clone/SKILL.md +34 -0
- package/.agents/skills/openui-catalog-compose-honesty/SKILL.md +64 -0
- package/.agents/skills/zvec-grep-compare-not-clone/SKILL.md +34 -0
- package/.claude-plugin/plugin.json +1 -1
- package/.well-known/llms.txt +1 -0
- package/.well-known/mcp/server-card.json +1 -1
- package/CONTRIBUTING.md +95 -0
- package/README.md +195 -632
- package/THIRD_PARTY_NOTICES.md +89 -0
- package/adapters/claude/.mcp.json +2 -2
- package/adapters/forge/forge.yaml +3 -3
- package/adapters/future-agi/.mcp.json +8 -0
- package/adapters/future-agi/FUTURE_AGI.md +23 -0
- package/adapters/future-agi/config.toml +3 -0
- package/adapters/future-agi/future-agi-bridge.js +9 -0
- package/adapters/future-agi/opencode.json +8 -0
- package/adapters/herdr/herdr-plugin.toml +18 -0
- package/adapters/mcp/server-stdio.js +238 -25
- package/adapters/opencode/opencode.json +1 -1
- package/adapters/workos/WORKOS.md +52 -0
- package/bin/cli.js +336 -3
- package/bin/futureagi-bridge +9 -0
- package/config/gate-templates.json +581 -4
- package/config/gates/actor-critic-audit.json +34 -0
- package/config/gates/default.json +9 -3
- package/config/gates/five-walls-governance.json +34 -0
- package/config/gates/future-agi-guardrails.json +34 -0
- package/config/gates/radware-threat-defense-2026.json +61 -0
- package/config/gates/simatree-data-governance.json +33 -0
- package/config/mcp-allowlists.json +4 -0
- package/config/merge-quality-checks.json +6 -0
- package/config/model-candidates.json +312 -29
- package/config/model-tiers.json +18 -0
- package/config/post-deploy-marketing-pages.json +10 -0
- package/config/progressive/01-wire-only.json +11 -0
- package/config/progressive/02-dashboard-empty-ok.json +10 -0
- package/config/progressive/03-one-lesson.json +10 -0
- package/config/progressive/04-warn-fires.json +11 -0
- package/config/progressive/05-strict-optional.json +11 -0
- package/config/progressive/README.md +15 -0
- package/config/schemas/broker-execution-receipt.schema.json +139 -0
- package/config/schemas/provider-execution-attestation-v1.schema.json +58 -0
- package/conformance/provider-attestation/vectors.json +320 -0
- package/docs/specs/provider-execution-attestation-v1.md +69 -0
- package/openapi/openapi.yaml +15 -0
- package/package.json +390 -148
- package/public/about.html +2 -2
- package/public/ai-malpractice-prevention.html +7 -7
- package/public/blog/a-10-dollar-vps-is-not-a-computer.html +143 -0
- package/public/blog/a-receipt-is-not-world-state.html +388 -0
- package/public/blog/git-at-agent-scale.html +374 -0
- package/public/blog/no-llm-in-the-gate.html +133 -0
- package/public/blog.html +80 -0
- package/public/case-studies.html +16 -1
- package/public/compare.html +28 -0
- package/public/diagnostic.html +216 -7
- package/public/docs/connectors.html +39 -0
- package/public/federal.html +2 -2
- package/public/founders.html +639 -0
- package/public/index.html +87 -9
- package/public/install.html +8 -8
- package/public/learn.html +39 -0
- package/public/numbers.html +2 -2
- package/public/peter.html +310 -0
- package/public/platform-partners.html +119 -0
- package/public/pricing.html +24 -3
- package/public/privacy.html +117 -0
- package/public/pro.html +17 -0
- package/public/support.html +62 -0
- package/public/terms.html +130 -0
- package/public/third-party-notices.html +95 -0
- package/public/yt.html +351 -0
- package/scripts/action-receipts.js +133 -3
- package/scripts/adaptive-governance-arena.js +349 -0
- package/scripts/admin-override.js +205 -0
- package/scripts/agent-action-inventory.js +869 -0
- package/scripts/agent-audit-trace.js +42 -2
- package/scripts/agent-egress-policy.js +1117 -0
- package/scripts/agent-memory-lifecycle.js +141 -2
- package/scripts/agent-operations-planner.js +441 -1
- package/scripts/agent-readiness.js +68 -0
- package/scripts/agent-security-central.js +647 -0
- package/scripts/allowlist-bridge-honesty.js +417 -0
- package/scripts/async-job-runner.js +102 -11
- package/scripts/audit-trail.js +212 -0
- package/scripts/billing.js +1 -1
- package/scripts/broker-execution-receipts.js +719 -0
- package/scripts/budget-aware-gates-proof.js +423 -0
- package/scripts/claude-feedback-sync.js +29 -3
- package/scripts/claw-harness-production.js +237 -0
- package/scripts/cli-schema.js +163 -1
- package/scripts/codex-runbook-flywheel.js +318 -0
- package/scripts/context-footprint.js +186 -0
- package/scripts/contextfs.js +143 -61
- package/scripts/dashboard.js +251 -32
- package/scripts/deepseek-v4-runtime-guardrails.js +72 -6
- package/scripts/docker-sandbox-planner.js +18 -0
- package/scripts/double-blind-eval-protocol.js +252 -0
- package/scripts/edotenv-rl-gateway.js +259 -0
- package/scripts/ensure-production-search-corpus.js +162 -0
- package/scripts/eval-holdout.js +311 -0
- package/scripts/feedback-aggregate.js +21 -2
- package/scripts/feedback-loop.js +87 -5
- package/scripts/feedback-quality.js +9 -0
- package/scripts/file-ledger-lock.js +4 -1
- package/scripts/financial-control-plane.js +41 -1
- package/scripts/find-dormant-requires.js +118 -0
- package/scripts/fs-utils.js +84 -8
- package/scripts/gates-engine.js +810 -63
- package/scripts/generate-case-study-outreach.js +24 -15
- package/scripts/git-at-scale.js +628 -0
- package/scripts/governance-conflict-audit.js +1650 -0
- package/scripts/governance-difficulty-curriculum.js +328 -0
- package/scripts/graphrag-retrieval.js +275 -0
- package/scripts/gurobi-optimizer.js +324 -0
- package/scripts/gurobi_optimizer.py +485 -0
- package/scripts/harness-selector.js +82 -1
- package/scripts/hidden-entry-points.js +284 -0
- package/scripts/human-escalation.js +199 -1
- package/scripts/hybrid-feedback-context.js +152 -19
- package/scripts/intent-governed-execution.js +602 -0
- package/scripts/intervention-policy.js +123 -20
- package/scripts/jit-harness-compose.js +628 -0
- package/scripts/jsonl-watcher.js +10 -0
- package/scripts/lesson-embedding-index.js +95 -12
- package/scripts/lesson-retrieval.js +105 -19
- package/scripts/local-model-profile.js +19 -2
- package/scripts/mailer/resend-mailer.js +1 -1
- package/scripts/matryoshka-embedding.js +235 -0
- package/scripts/mcp-oauth.js +42 -4
- package/scripts/mcp-session-handles.js +1016 -0
- package/scripts/mcp-wiring-doctor.js +314 -0
- package/scripts/memory-firewall.js +115 -2
- package/scripts/memory-scope-readiness.js +299 -0
- package/scripts/memory-vs-rag-route.js +161 -0
- package/scripts/model-tier-router.js +148 -21
- package/scripts/nvidia-specdecode-al-doctor.js +536 -0
- package/scripts/openui-catalog-compose-honesty.js +593 -0
- package/scripts/operational-integrity.js +19 -1
- package/scripts/override-audit.js +213 -0
- package/scripts/package-manager-honesty-doctor.js +458 -0
- package/scripts/pr-manager.js +63 -1
- package/scripts/prove-herdr-adapter.js +52 -0
- package/scripts/prove-memory-pyramid-and-symbolic-canvas.js +95 -0
- package/scripts/prove-workos.js +73 -0
- package/scripts/provider-attestation-conformance.js +192 -0
- package/scripts/provider-receipt-contract.js +136 -0
- package/scripts/qwen38-max-cost-optimizer.js +401 -0
- package/scripts/radware-threat-defense.js +280 -0
- package/scripts/rag-embedding-identity.js +221 -0
- package/scripts/rag-precision-guardrails.js +112 -2
- package/scripts/remote-feedback-capture.js +159 -0
- package/scripts/research-agent-harness.js +256 -0
- package/scripts/rsi-safety-hillclimb.js +200 -0
- package/scripts/rule-sprawl.js +188 -0
- package/scripts/schedule-manager.js +147 -0
- package/scripts/self-heal.js +8 -0
- package/scripts/session-lease.js +415 -0
- package/scripts/simatree-data-governance.js +347 -0
- package/scripts/slo-alert-engine.js +172 -7
- package/scripts/solver-parity.js +539 -0
- package/scripts/stealth-memory-injection-gate.js +333 -0
- package/scripts/switchyard-router.js +366 -0
- package/scripts/telemetry-analytics.js +84 -27
- package/scripts/temporal-decay-weighting.js +138 -0
- package/scripts/test-all.js +165 -0
- package/scripts/token-savings.js +42 -0
- package/scripts/tool-kpi-tracker.js +108 -5
- package/scripts/tool-registry.js +193 -5
- package/scripts/universal-claim-evaluator.js +14 -2
- package/scripts/vector-store.js +279 -9
- package/scripts/workflow-notebook.js +391 -0
- package/scripts/workflow-sentinel.js +111 -12
- package/scripts/workos-production-guard.js +260 -0
- package/scripts/workspace-search-route.js +515 -0
- package/server.json +2 -2
- package/src/agent-identity-boundary.js +76 -0
- package/src/agent-retrieval-cache.js +155 -0
- package/src/alert-noise-ledger.js +502 -0
- package/src/api/server.js +724 -153
- package/src/git-fast-cache.js +220 -0
- package/src/git-wal-sync.js +156 -0
- package/src/hash-anchored-edit.js +82 -0
- package/src/hermes-platform-protocol.js +475 -0
- package/src/hermes-sync-plane.js +241 -0
- package/src/index.js +30 -1
- package/src/iso42001-compliance-guard.js +97 -0
- package/src/latency-budget.js +244 -0
- package/src/mcp-writeguard.js +316 -0
- package/src/miminions-adapter.js +106 -0
- package/src/pipeline-compass.js +104 -0
- package/src/ppl-alert-pipeline.js +284 -0
- package/src/rendezvous-router.js +90 -0
- package/src/security-questionnaire.js +195 -0
|
@@ -5,7 +5,13 @@
|
|
|
5
5
|
"pretool-gating": {
|
|
6
6
|
"label": "PreTool gating",
|
|
7
7
|
"summary": "Fast, reliable gate judgments for tool-use and agentic coding decisions before commands run. Hybrid local-cloud candidates (e.g. perplexity/hybrid-local) excel here for privacy + low latency on sensitive paths.",
|
|
8
|
-
"desiredStrengths": [
|
|
8
|
+
"desiredStrengths": [
|
|
9
|
+
"agentic-coding",
|
|
10
|
+
"tool-use",
|
|
11
|
+
"reliability",
|
|
12
|
+
"privacy",
|
|
13
|
+
"fast-inference"
|
|
14
|
+
],
|
|
9
15
|
"targetContextWindow": 64000,
|
|
10
16
|
"benchmarkCommands": [
|
|
11
17
|
"npx thumbgate eval --from-feedback --json --min-score=0",
|
|
@@ -23,7 +29,12 @@
|
|
|
23
29
|
"long-trace-review": {
|
|
24
30
|
"label": "Long trace review",
|
|
25
31
|
"summary": "Review long agent traces, multi-step failures, and large-context coding sessions without dropping important detail.",
|
|
26
|
-
"desiredStrengths": [
|
|
32
|
+
"desiredStrengths": [
|
|
33
|
+
"long-horizon-coding",
|
|
34
|
+
"multi-agent",
|
|
35
|
+
"reliability",
|
|
36
|
+
"long-context"
|
|
37
|
+
],
|
|
27
38
|
"targetContextWindow": 128000,
|
|
28
39
|
"benchmarkCommands": [
|
|
29
40
|
"npx thumbgate eval --from-feedback --json --min-score=0",
|
|
@@ -44,7 +55,13 @@
|
|
|
44
55
|
"cheap-fast-path": {
|
|
45
56
|
"label": "Cheap fast path",
|
|
46
57
|
"summary": "Low-cost first-pass model for cheap approval triage before escalating ambiguous work. Perplexity hybrid-local is ideal: on-device for speed/privacy, escalate only when needed via orchestrator.",
|
|
47
|
-
"desiredStrengths": [
|
|
58
|
+
"desiredStrengths": [
|
|
59
|
+
"agentic-coding",
|
|
60
|
+
"tool-use",
|
|
61
|
+
"fast-inference",
|
|
62
|
+
"privacy",
|
|
63
|
+
"cost-efficiency"
|
|
64
|
+
],
|
|
48
65
|
"targetContextWindow": 32000,
|
|
49
66
|
"benchmarkCommands": [
|
|
50
67
|
"npx thumbgate eval --from-feedback --json --min-score=0",
|
|
@@ -61,7 +78,14 @@
|
|
|
61
78
|
"dashboard-analysis": {
|
|
62
79
|
"label": "Dashboard and dataset analysis",
|
|
63
80
|
"summary": "Evaluate frontier models for dataset analysis, chart generation, dashboard planning, and proof-backed insight quality before routing expensive analytical work. Perplexity hybrid excels for sensitive lessons/feedback data (local for privacy, cloud for depth).",
|
|
64
|
-
"desiredStrengths": [
|
|
81
|
+
"desiredStrengths": [
|
|
82
|
+
"data-analysis",
|
|
83
|
+
"dashboard-creation",
|
|
84
|
+
"charting",
|
|
85
|
+
"long-context",
|
|
86
|
+
"reliability",
|
|
87
|
+
"privacy"
|
|
88
|
+
],
|
|
65
89
|
"targetContextWindow": 200000,
|
|
66
90
|
"benchmarkCommands": [
|
|
67
91
|
"npx thumbgate eval --from-feedback --json --min-score=0",
|
|
@@ -80,7 +104,15 @@
|
|
|
80
104
|
"claw-style-enterprise-agent": {
|
|
81
105
|
"label": "Claw-style enterprise agent governance",
|
|
82
106
|
"summary": "Governance, gating, and feedback for autonomous 'claw-style' agents (Automation Anywhere EnterpriseClaw, Nvidia OpenShell-inspired) that have device file system access, runtime dynamic tool creation, screen/UI interaction, and multi-platform orchestration. Especially relevant for on-prem/air-gapped/hybrid enterprise data realities.",
|
|
83
|
-
"desiredStrengths": [
|
|
107
|
+
"desiredStrengths": [
|
|
108
|
+
"agentic-coding",
|
|
109
|
+
"tool-use",
|
|
110
|
+
"reliability",
|
|
111
|
+
"security",
|
|
112
|
+
"orchestration",
|
|
113
|
+
"audit-trail",
|
|
114
|
+
"privacy"
|
|
115
|
+
],
|
|
84
116
|
"targetContextWindow": 128000,
|
|
85
117
|
"benchmarkCommands": [
|
|
86
118
|
"npx thumbgate eval --from-feedback --json --min-score=0",
|
|
@@ -101,7 +133,14 @@
|
|
|
101
133
|
"tokenizer-brittleness": {
|
|
102
134
|
"label": "Tokenizer brittleness and byte-level robustness",
|
|
103
135
|
"summary": "Evaluate models for malformed JSONL, Unicode confusables, stack traces, secrets, SQL snippets, file paths, and code-symbol-heavy inputs before routing log, code, or security workloads.",
|
|
104
|
-
"desiredStrengths": [
|
|
136
|
+
"desiredStrengths": [
|
|
137
|
+
"tokenizer-free",
|
|
138
|
+
"byte-level",
|
|
139
|
+
"log-robustness",
|
|
140
|
+
"code-symbols",
|
|
141
|
+
"security-scanning",
|
|
142
|
+
"fast-inference"
|
|
143
|
+
],
|
|
105
144
|
"targetContextWindow": 64000,
|
|
106
145
|
"benchmarkCommands": [
|
|
107
146
|
"npx thumbgate model-candidates --workload=tokenizer-brittleness --json",
|
|
@@ -120,7 +159,13 @@
|
|
|
120
159
|
"self-improving-agent-skill-synthesis": {
|
|
121
160
|
"label": "Self-improving agent skill synthesis",
|
|
122
161
|
"summary": "Evaluate models on their ability to self-improve, generate safe Markdown skills, and correctly check synthesized skills against existing gate/prevention rules.",
|
|
123
|
-
"desiredStrengths": [
|
|
162
|
+
"desiredStrengths": [
|
|
163
|
+
"agentic-coding",
|
|
164
|
+
"tool-use",
|
|
165
|
+
"self-evolving",
|
|
166
|
+
"skill-synthesis",
|
|
167
|
+
"reliability"
|
|
168
|
+
],
|
|
124
169
|
"targetContextWindow": 128000,
|
|
125
170
|
"benchmarkCommands": [
|
|
126
171
|
"npx thumbgate eval --from-feedback --json --min-score=0",
|
|
@@ -137,7 +182,14 @@
|
|
|
137
182
|
"js-package-registry-governance": {
|
|
138
183
|
"label": "JavaScript package registry governance",
|
|
139
184
|
"summary": "Governance, gating, and supply-chain enforcement for agents consuming and publishing JavaScript packages via npm, vlt registry, and self-hosted VSR (serverless registry). Pre-action checks for dependency installation, registry override, provenance attestation, and workspace dependency pinning.",
|
|
140
|
-
"desiredStrengths": [
|
|
185
|
+
"desiredStrengths": [
|
|
186
|
+
"agentic-coding",
|
|
187
|
+
"tool-use",
|
|
188
|
+
"supply-chain-security",
|
|
189
|
+
"reliability",
|
|
190
|
+
"security",
|
|
191
|
+
"audit-trail"
|
|
192
|
+
],
|
|
141
193
|
"targetContextWindow": 64000,
|
|
142
194
|
"benchmarkCommands": [
|
|
143
195
|
"npx thumbgate eval --from-feedback --json --min-score=0",
|
|
@@ -158,7 +210,15 @@
|
|
|
158
210
|
"context-engineering": {
|
|
159
211
|
"label": "Context engineering for AI code agents",
|
|
160
212
|
"summary": "Evaluating models on context structuring, skill synthesis, MCP tool governance, sub-agent coordination, and hook-based lifecycle automation for AI code agent workflows (Claude Code, Codex, OpenCode). Based on the Hugging Face Context Course curriculum.",
|
|
161
|
-
"desiredStrengths": [
|
|
213
|
+
"desiredStrengths": [
|
|
214
|
+
"agentic-coding",
|
|
215
|
+
"tool-use",
|
|
216
|
+
"context-structuring",
|
|
217
|
+
"skill-synthesis",
|
|
218
|
+
"MCP-governance",
|
|
219
|
+
"reliability",
|
|
220
|
+
"long-horizon-coding"
|
|
221
|
+
],
|
|
162
222
|
"targetContextWindow": 128000,
|
|
163
223
|
"benchmarkCommands": [
|
|
164
224
|
"npx thumbgate eval --from-feedback --json --min-score=0",
|
|
@@ -187,7 +247,14 @@
|
|
|
187
247
|
"contextWindow": 64000,
|
|
188
248
|
"costClass": "medium",
|
|
189
249
|
"researchOnly": true,
|
|
190
|
-
"strengths": [
|
|
250
|
+
"strengths": [
|
|
251
|
+
"tokenizer-free",
|
|
252
|
+
"byte-level",
|
|
253
|
+
"log-robustness",
|
|
254
|
+
"code-symbols",
|
|
255
|
+
"security-scanning",
|
|
256
|
+
"fast-inference"
|
|
257
|
+
],
|
|
191
258
|
"notes": "Research-only candidate inspired by Fast BLT. Use as an evaluation target for tokenizer-free robustness and memory-bandwidth planning; do not route production traffic until a maintained runtime and model weights exist."
|
|
192
259
|
},
|
|
193
260
|
{
|
|
@@ -199,7 +266,12 @@
|
|
|
199
266
|
"model": "deepseek-v4-flash",
|
|
200
267
|
"contextWindow": 1000000,
|
|
201
268
|
"costClass": "medium",
|
|
202
|
-
"strengths": [
|
|
269
|
+
"strengths": [
|
|
270
|
+
"long-context",
|
|
271
|
+
"fast-inference",
|
|
272
|
+
"reliability",
|
|
273
|
+
"long-horizon-coding"
|
|
274
|
+
],
|
|
203
275
|
"notes": "Self-hosted long-context candidate for teams that can operate SGLang-class sparse-attention serving. Requires ThumbGate runtime guardrails before routing production traces."
|
|
204
276
|
},
|
|
205
277
|
{
|
|
@@ -211,7 +283,12 @@
|
|
|
211
283
|
"model": "deepseek-v4-pro",
|
|
212
284
|
"contextWindow": 1000000,
|
|
213
285
|
"costClass": "high",
|
|
214
|
-
"strengths": [
|
|
286
|
+
"strengths": [
|
|
287
|
+
"long-context",
|
|
288
|
+
"reliability",
|
|
289
|
+
"long-horizon-coding",
|
|
290
|
+
"multi-agent"
|
|
291
|
+
],
|
|
215
292
|
"notes": "High-capacity self-hosted candidate for long-trace review and verified-RL experiments. Benchmark cache coherence, speculative decoding, KV offload, and train-inference drift before use."
|
|
216
293
|
},
|
|
217
294
|
{
|
|
@@ -222,7 +299,15 @@
|
|
|
222
299
|
"model": "gpt-5.5",
|
|
223
300
|
"contextWindow": 1000000,
|
|
224
301
|
"costClass": "high",
|
|
225
|
-
"strengths": [
|
|
302
|
+
"strengths": [
|
|
303
|
+
"agentic-coding",
|
|
304
|
+
"tool-use",
|
|
305
|
+
"reliability",
|
|
306
|
+
"long-context",
|
|
307
|
+
"data-analysis",
|
|
308
|
+
"dashboard-creation",
|
|
309
|
+
"charting"
|
|
310
|
+
],
|
|
226
311
|
"notes": "Frontier candidate for complex reasoning, coding, dataset analysis, and dashboard workflows. Benchmark before routing high-volume or cost-sensitive work."
|
|
227
312
|
},
|
|
228
313
|
{
|
|
@@ -233,7 +318,11 @@
|
|
|
233
318
|
"model": "claude-haiku-4-5-20251001",
|
|
234
319
|
"contextWindow": 200000,
|
|
235
320
|
"costClass": "low",
|
|
236
|
-
"strengths": [
|
|
321
|
+
"strengths": [
|
|
322
|
+
"tool-use",
|
|
323
|
+
"reliability",
|
|
324
|
+
"fast-inference"
|
|
325
|
+
],
|
|
237
326
|
"notes": "Fast control candidate for cheap approval triage."
|
|
238
327
|
},
|
|
239
328
|
{
|
|
@@ -244,7 +333,12 @@
|
|
|
244
333
|
"model": "claude-sonnet-4-6",
|
|
245
334
|
"contextWindow": 200000,
|
|
246
335
|
"costClass": "medium",
|
|
247
|
-
"strengths": [
|
|
336
|
+
"strengths": [
|
|
337
|
+
"agentic-coding",
|
|
338
|
+
"tool-use",
|
|
339
|
+
"reliability",
|
|
340
|
+
"long-horizon-coding"
|
|
341
|
+
],
|
|
248
342
|
"notes": "Current stronger managed control candidate."
|
|
249
343
|
},
|
|
250
344
|
{
|
|
@@ -256,7 +350,11 @@
|
|
|
256
350
|
"model": "kimi-k2.6-32k",
|
|
257
351
|
"contextWindow": 32000,
|
|
258
352
|
"costClass": "medium",
|
|
259
|
-
"strengths": [
|
|
353
|
+
"strengths": [
|
|
354
|
+
"long-horizon-coding",
|
|
355
|
+
"multi-agent",
|
|
356
|
+
"reliability"
|
|
357
|
+
],
|
|
260
358
|
"notes": "Tinker April 23, 2026 release. Good candidate when long-horizon coding matters more than ultra-low latency."
|
|
261
359
|
},
|
|
262
360
|
{
|
|
@@ -268,7 +366,12 @@
|
|
|
268
366
|
"model": "kimi-k2.6-128k",
|
|
269
367
|
"contextWindow": 128000,
|
|
270
368
|
"costClass": "medium",
|
|
271
|
-
"strengths": [
|
|
369
|
+
"strengths": [
|
|
370
|
+
"long-horizon-coding",
|
|
371
|
+
"multi-agent",
|
|
372
|
+
"reliability",
|
|
373
|
+
"long-context"
|
|
374
|
+
],
|
|
272
375
|
"notes": "Highest-ROI Kimi candidate for long traces and multi-step review."
|
|
273
376
|
},
|
|
274
377
|
{
|
|
@@ -280,7 +383,12 @@
|
|
|
280
383
|
"model": "qwen3.6-35b-a3b",
|
|
281
384
|
"contextWindow": 64000,
|
|
282
385
|
"costClass": "low",
|
|
283
|
-
"strengths": [
|
|
386
|
+
"strengths": [
|
|
387
|
+
"agentic-coding",
|
|
388
|
+
"tool-use",
|
|
389
|
+
"reliability",
|
|
390
|
+
"fast-inference"
|
|
391
|
+
],
|
|
284
392
|
"notes": "Best first Tinker candidate for ThumbGate pre-action gating and tool-risk classification."
|
|
285
393
|
},
|
|
286
394
|
{
|
|
@@ -292,7 +400,11 @@
|
|
|
292
400
|
"model": "qwen3.6-27b",
|
|
293
401
|
"contextWindow": 64000,
|
|
294
402
|
"costClass": "low",
|
|
295
|
-
"strengths": [
|
|
403
|
+
"strengths": [
|
|
404
|
+
"agentic-coding",
|
|
405
|
+
"tool-use",
|
|
406
|
+
"fast-inference"
|
|
407
|
+
],
|
|
296
408
|
"notes": "Cheapest Tinker candidate for the fast gate path; use when latency/cost matter most."
|
|
297
409
|
},
|
|
298
410
|
{
|
|
@@ -303,7 +415,15 @@
|
|
|
303
415
|
"model": "hybrid-local-cloud-orchestrator",
|
|
304
416
|
"contextWindow": 200000,
|
|
305
417
|
"costClass": "variable",
|
|
306
|
-
"strengths": [
|
|
418
|
+
"strengths": [
|
|
419
|
+
"agentic-coding",
|
|
420
|
+
"tool-use",
|
|
421
|
+
"privacy",
|
|
422
|
+
"cost-efficiency",
|
|
423
|
+
"fast-inference",
|
|
424
|
+
"long-context",
|
|
425
|
+
"reliability"
|
|
426
|
+
],
|
|
307
427
|
"notes": "Perplexity hybrid local-cloud inference orchestrator (announced Computex 2026, part of Personal Computer). Autonomously routes: sensitive/privacy work to local on-device models, complex reasoning to frontier cloud. High-ROI for pretool-gating (local fast/privacy path), cheap-fast-path, and dashboard-analysis with sensitive data/lessons. Pair with ThumbGate hybrid-routing gates (see adapters/perplexity/HYBRID.md). Coming July 2026 for local inference."
|
|
308
428
|
},
|
|
309
429
|
{
|
|
@@ -314,7 +434,12 @@
|
|
|
314
434
|
"model": "local-inference",
|
|
315
435
|
"contextWindow": 128000,
|
|
316
436
|
"costClass": "low",
|
|
317
|
-
"strengths": [
|
|
437
|
+
"strengths": [
|
|
438
|
+
"fast-inference",
|
|
439
|
+
"privacy",
|
|
440
|
+
"tool-use",
|
|
441
|
+
"reliability"
|
|
442
|
+
],
|
|
318
443
|
"notes": "Local-only mode of Perplexity hybrid for on-device pre-action gating, sensitivity classification, and low-latency checks on AI PCs (Intel, NVIDIA). Escalate via orchestrator for full capability. Use for cheap-fast-path and pretool-gating workloads."
|
|
319
444
|
},
|
|
320
445
|
{
|
|
@@ -325,7 +450,17 @@
|
|
|
325
450
|
"model": "enterprise-claw",
|
|
326
451
|
"contextWindow": 200000,
|
|
327
452
|
"costClass": "variable",
|
|
328
|
-
"strengths": [
|
|
453
|
+
"strengths": [
|
|
454
|
+
"agentic-coding",
|
|
455
|
+
"tool-use",
|
|
456
|
+
"orchestration",
|
|
457
|
+
"audit-trail",
|
|
458
|
+
"security",
|
|
459
|
+
"on-prem",
|
|
460
|
+
"airgap",
|
|
461
|
+
"dynamic-tool-creation",
|
|
462
|
+
"screen-interaction"
|
|
463
|
+
],
|
|
329
464
|
"notes": "Claw-style autonomous enterprise agents (EnterpriseClaw, inspired by Nvidia OpenShell). Device-level access, runtime tool creation, screen/UI interaction, multi-platform orchestration. Governance infrastructure (ThumbGate) is explicitly called out as catching up. High-ROI for enterprise on-prem/hybrid use cases. Pair with perplexity/hybrid for inference routing. See adapters/claw/CLAW.md and new gate templates."
|
|
330
465
|
},
|
|
331
466
|
{
|
|
@@ -336,7 +471,14 @@
|
|
|
336
471
|
"model": "openshell",
|
|
337
472
|
"contextWindow": 128000,
|
|
338
473
|
"costClass": "medium",
|
|
339
|
-
"strengths": [
|
|
474
|
+
"strengths": [
|
|
475
|
+
"agentic-coding",
|
|
476
|
+
"tool-use",
|
|
477
|
+
"dynamic-tool-creation",
|
|
478
|
+
"screen-interaction",
|
|
479
|
+
"on-prem",
|
|
480
|
+
"self-evolving"
|
|
481
|
+
],
|
|
340
482
|
"notes": "Nvidia OpenShell runtime for autonomous self-evolving claw-style agents (basis for Automation Anywhere EnterpriseClaw). Run locally/on-prem. ThumbGate provides the missing governance layer (gates, feedback, rules). Use with hybrid local-cloud for full enterprise deployment."
|
|
341
483
|
},
|
|
342
484
|
{
|
|
@@ -347,7 +489,14 @@
|
|
|
347
489
|
"model": "hermes-3-llama-3.1-70b",
|
|
348
490
|
"contextWindow": 128000,
|
|
349
491
|
"costClass": "medium",
|
|
350
|
-
"strengths": [
|
|
492
|
+
"strengths": [
|
|
493
|
+
"agentic-coding",
|
|
494
|
+
"tool-use",
|
|
495
|
+
"self-evolving",
|
|
496
|
+
"skill-synthesis",
|
|
497
|
+
"multi-platform",
|
|
498
|
+
"reasoning"
|
|
499
|
+
],
|
|
351
500
|
"notes": "Nous Research's Hermes 3 model family, optimized for autonomous reasoning, tool-use, and self-improvement loops. Benchmark KV caching, trace-length constraints, and dynamic skill synthesis validation rules before deploying."
|
|
352
501
|
},
|
|
353
502
|
{
|
|
@@ -358,7 +507,14 @@
|
|
|
358
507
|
"model": "claude-opus-4.8",
|
|
359
508
|
"contextWindow": 200000,
|
|
360
509
|
"costClass": "high",
|
|
361
|
-
"strengths": [
|
|
510
|
+
"strengths": [
|
|
511
|
+
"agentic-coding",
|
|
512
|
+
"tool-use",
|
|
513
|
+
"reliability",
|
|
514
|
+
"long-context",
|
|
515
|
+
"long-horizon-coding",
|
|
516
|
+
"multi-agent"
|
|
517
|
+
],
|
|
362
518
|
"notes": "Frontier coding model with 56.7 Coding Index. Grew 140% WoW on OpenRouter to 1.33T tokens. Ideal for long trace reviews and complex reasoning steps, despite higher latency and cost."
|
|
363
519
|
},
|
|
364
520
|
{
|
|
@@ -369,7 +525,14 @@
|
|
|
369
525
|
"model": "gemini-3.1-pro-preview",
|
|
370
526
|
"contextWindow": 2000000,
|
|
371
527
|
"costClass": "medium",
|
|
372
|
-
"strengths": [
|
|
528
|
+
"strengths": [
|
|
529
|
+
"agentic-coding",
|
|
530
|
+
"tool-use",
|
|
531
|
+
"reliability",
|
|
532
|
+
"long-context",
|
|
533
|
+
"data-analysis",
|
|
534
|
+
"cost-efficiency"
|
|
535
|
+
],
|
|
373
536
|
"notes": "Google's 3.1 Pro Preview model with 55.5 Coding Index and massive 2M token context window. Strong choice for complex RAG tasks, repository-scale auditing, and long-context trace analysis."
|
|
374
537
|
},
|
|
375
538
|
{
|
|
@@ -380,7 +543,13 @@
|
|
|
380
543
|
"model": "hosted-registry",
|
|
381
544
|
"contextWindow": 10000,
|
|
382
545
|
"costClass": "low",
|
|
383
|
-
"strengths": [
|
|
546
|
+
"strengths": [
|
|
547
|
+
"supply-chain-security",
|
|
548
|
+
"package-management",
|
|
549
|
+
"audit-trail",
|
|
550
|
+
"reliability",
|
|
551
|
+
"security"
|
|
552
|
+
],
|
|
384
553
|
"notes": "vlt's hosted package registry service (launched Aug 2026) with secure npm mirror, private registries, and VSR (self-hosted serverless registry). ThumbGate gates integrate via preToolUse hooks on vlt install/add/publish and registry config overrides. Pair with require-local-dependency-vulnerability-scan and gate-vlt-package-publishing templates. See adapters/vlt/VLT.md and https://vlt.io/blog/1-0."
|
|
385
554
|
},
|
|
386
555
|
{
|
|
@@ -391,7 +560,14 @@
|
|
|
391
560
|
"model": "self-hosted-vsr",
|
|
392
561
|
"contextWindow": 10000,
|
|
393
562
|
"costClass": "low",
|
|
394
|
-
"strengths": [
|
|
563
|
+
"strengths": [
|
|
564
|
+
"supply-chain-security",
|
|
565
|
+
"package-management",
|
|
566
|
+
"on-prem",
|
|
567
|
+
"airgap",
|
|
568
|
+
"audit-trail",
|
|
569
|
+
"security"
|
|
570
|
+
],
|
|
395
571
|
"notes": "vlt's self-hosted VSR (serverless registry) for enterprise on-prem and air-gapped environments. ThumbGate's block-vlt-private-registry-bypass and require-review-vlt-registry-override gate templates enforce approved registry hosts. Critical for enterprises where most data is not cloud-native."
|
|
396
572
|
},
|
|
397
573
|
{
|
|
@@ -402,8 +578,115 @@
|
|
|
402
578
|
"model": "context-engineering-agent",
|
|
403
579
|
"contextWindow": 200000,
|
|
404
580
|
"costClass": "low",
|
|
405
|
-
"strengths": [
|
|
581
|
+
"strengths": [
|
|
582
|
+
"context-structuring",
|
|
583
|
+
"skill-synthesis",
|
|
584
|
+
"MCP-governance",
|
|
585
|
+
"agentic-coding",
|
|
586
|
+
"tool-use",
|
|
587
|
+
"reliability"
|
|
588
|
+
],
|
|
406
589
|
"notes": "Model optimized for the Hugging Face Context Course curriculum — context engineering for AI code agents (Claude Code, Codex, OpenCode). Excels at structuring knowledge so agents find context efficiently. Evaluated on MCP tool governance, skill synthesis validation, and hook-based lifecycle automation. See docs/guides/huggingface-context-course-governance.md and adapters/huggingface-context-course/."
|
|
590
|
+
},
|
|
591
|
+
{
|
|
592
|
+
"id": "nvidia/nemotron-3.5-lightning",
|
|
593
|
+
"vendor": "NVIDIA",
|
|
594
|
+
"family": "nemotron",
|
|
595
|
+
"provider": "nvidia",
|
|
596
|
+
"model": "nemotron-3.5-lightning",
|
|
597
|
+
"contextWindow": 128000,
|
|
598
|
+
"costClass": "low",
|
|
599
|
+
"strengths": [
|
|
600
|
+
"fast-inference",
|
|
601
|
+
"cost-efficiency",
|
|
602
|
+
"tool-use",
|
|
603
|
+
"reliability",
|
|
604
|
+
"agentic-coding"
|
|
605
|
+
],
|
|
606
|
+
"notes": "Nemotron 3.5 Lightning: open 30B MoE with ~3B active params for specialized always-on agent steps (intent, gate, classify). Pair with NeMo Switchyard-style multi-model step routing in scripts/switchyard-router.js. Not a single-model solution for whole agent runs."
|
|
607
|
+
},
|
|
608
|
+
{
|
|
609
|
+
"id": "nvidia/nemo-switchyard",
|
|
610
|
+
"vendor": "NVIDIA",
|
|
611
|
+
"family": "routing",
|
|
612
|
+
"provider": "nvidia",
|
|
613
|
+
"model": "nemo-switchyard",
|
|
614
|
+
"contextWindow": 64000,
|
|
615
|
+
"costClass": "low",
|
|
616
|
+
"strengths": [
|
|
617
|
+
"tool-use",
|
|
618
|
+
"reliability",
|
|
619
|
+
"cost-efficiency",
|
|
620
|
+
"multi-agent",
|
|
621
|
+
"orchestration"
|
|
622
|
+
],
|
|
623
|
+
"notes": "NeMo Switchyard: build and evaluate routing algorithms across a chosen model pool. ThumbGate implements the governance layer (routeAgentSteps + evaluateRoutingAlgorithm + multi-model gates). Use when complex agentic tasks would otherwise run on one expensive frontier model end-to-end."
|
|
624
|
+
},
|
|
625
|
+
{
|
|
626
|
+
"id": "alibaba/qwen3.8-max",
|
|
627
|
+
"vendor": "Alibaba Cloud",
|
|
628
|
+
"family": "qwen",
|
|
629
|
+
"provider": "model-studio",
|
|
630
|
+
"model": "qwen3.8-max",
|
|
631
|
+
"contextWindow": 200000,
|
|
632
|
+
"costClass": "medium",
|
|
633
|
+
"strengths": [
|
|
634
|
+
"agentic-coding",
|
|
635
|
+
"tool-use",
|
|
636
|
+
"long-horizon-coding",
|
|
637
|
+
"multimodal",
|
|
638
|
+
"cost-efficiency",
|
|
639
|
+
"reliability"
|
|
640
|
+
],
|
|
641
|
+
"notes": "Alibaba Cloud Model Studio 2.4T MoE flagship model. Excels at autonomous long-horizon coding projects spanning multi-day agent runs. Direct support for OpenAI-compatible API endpoints. Ideal for long-trace-review and claw-style-enterprise-agent workloads with ultra-low TCO ($6/mo token plan)."
|
|
642
|
+
},
|
|
643
|
+
{
|
|
644
|
+
"id": "alibaba/qwen3.7-plus",
|
|
645
|
+
"vendor": "Alibaba Cloud",
|
|
646
|
+
"family": "qwen",
|
|
647
|
+
"provider": "model-studio",
|
|
648
|
+
"model": "qwen3.7-plus",
|
|
649
|
+
"contextWindow": 128000,
|
|
650
|
+
"costClass": "low",
|
|
651
|
+
"strengths": [
|
|
652
|
+
"agentic-coding",
|
|
653
|
+
"tool-use",
|
|
654
|
+
"fast-inference",
|
|
655
|
+
"gui-interaction",
|
|
656
|
+
"cost-efficiency"
|
|
657
|
+
],
|
|
658
|
+
"notes": "Cost-effective vision-language model with full-stack agent intelligence for coding, tool use, and GUI computer-use interaction. Ideal candidate for cheap-fast-path and pretool-gating."
|
|
659
|
+
},
|
|
660
|
+
{
|
|
661
|
+
"id": "alibaba/qwen3.6-flash",
|
|
662
|
+
"vendor": "Alibaba Cloud",
|
|
663
|
+
"family": "qwen",
|
|
664
|
+
"provider": "model-studio",
|
|
665
|
+
"model": "qwen3.6-flash",
|
|
666
|
+
"contextWindow": 128000,
|
|
667
|
+
"costClass": "low",
|
|
668
|
+
"strengths": [
|
|
669
|
+
"fast-inference",
|
|
670
|
+
"cost-efficiency",
|
|
671
|
+
"tool-use",
|
|
672
|
+
"reliability"
|
|
673
|
+
],
|
|
674
|
+
"notes": "High-speed vision-language flash model for rapid pre-action checks, gate evaluation, and lightweight agent trace review. Default resolveQwenRoleRoute for pretool-gating and cheap-fast-path."
|
|
675
|
+
},
|
|
676
|
+
{
|
|
677
|
+
"id": "alibaba/text-embedding-v4",
|
|
678
|
+
"vendor": "Alibaba Cloud",
|
|
679
|
+
"family": "qwen-embedding",
|
|
680
|
+
"provider": "model-studio",
|
|
681
|
+
"model": "text-embedding-v4",
|
|
682
|
+
"contextWindow": 8192,
|
|
683
|
+
"costClass": "low",
|
|
684
|
+
"strengths": [
|
|
685
|
+
"fast-inference",
|
|
686
|
+
"cost-efficiency",
|
|
687
|
+
"reliability"
|
|
688
|
+
],
|
|
689
|
+
"notes": "OpenAI-compatible DashScope embedding model for RAG. Wire via THUMBGATE_EMBED_PROVIDER=dashscope + DASHSCOPE_API_KEY; Matryoshka dims via THUMBGATE_QWEN_EMBED_DIM / THUMBGATE_MATRYOSHKA_DIM. See adapters/qwen/QWEN.md."
|
|
407
690
|
}
|
|
408
691
|
]
|
|
409
692
|
}
|
package/config/model-tiers.json
CHANGED
|
@@ -17,6 +17,24 @@
|
|
|
17
17
|
"maxContextTokens": 200000,
|
|
18
18
|
"costMultiplier": 0.4
|
|
19
19
|
},
|
|
20
|
+
"bulkCloud": {
|
|
21
|
+
"label": "Bulk cloud cost saver (Qwen3.8-Max class)",
|
|
22
|
+
"modelId": "qwen3.8-max",
|
|
23
|
+
"provider": "openai-compatible",
|
|
24
|
+
"taskTypes": ["bulk-generation", "batch-processing", "high-output-coding", "content-generation", "bulk-automation"],
|
|
25
|
+
"maxContextTokens": 1000000,
|
|
26
|
+
"costMultiplier": 0.25,
|
|
27
|
+
"pricingUsdPerMTok": { "input": 2.0, "output": 6.0 },
|
|
28
|
+
"endpoint": {
|
|
29
|
+
"baseUrlEnv": "THUMBGATE_BULK_CLOUD_BASE_URL",
|
|
30
|
+
"apiKeyEnv": "THUMBGATE_BULK_CLOUD_API_KEY"
|
|
31
|
+
},
|
|
32
|
+
"budgetDefaults": {
|
|
33
|
+
"tokenCap": 2000000,
|
|
34
|
+
"requireReason": false
|
|
35
|
+
},
|
|
36
|
+
"notes": "Cost-saver cloud tier for steady high-output workloads, modeled on Alibaba Model Studio token-plan economics (Qwen3.8-Max ~$2/M input, ~$6/M output vs frontier ~$15/M output). Any OpenAI-compatible endpoint works: set THUMBGATE_BULK_CLOUD_BASE_URL and THUMBGATE_BULK_CLOUD_API_KEY. The tier is inert until both are configured; routing a bulk task without them raises a clear error naming the missing variables."
|
|
37
|
+
},
|
|
20
38
|
"frontier": {
|
|
21
39
|
"label": "GPT-5.5",
|
|
22
40
|
"modelId": "gpt-5.5",
|
|
@@ -36,6 +36,16 @@
|
|
|
36
36
|
"sentinel": "ThumbGate",
|
|
37
37
|
"description": "Federal lead-gen page (SBIR / GSA arrivals)"
|
|
38
38
|
},
|
|
39
|
+
{
|
|
40
|
+
"route": "/yt",
|
|
41
|
+
"sentinel": "Six business functions. Existing gates.",
|
|
42
|
+
"description": "YouTube/CPC dedicated landing mapping six business functions onto existing gates"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"route": "/aias-registration-yt",
|
|
46
|
+
"sentinel": "Six business functions. Existing gates.",
|
|
47
|
+
"description": "Alias matching summit-style ad paths; canonical is /yt"
|
|
48
|
+
},
|
|
39
49
|
{
|
|
40
50
|
"route": "/numbers",
|
|
41
51
|
"sentinel": "ThumbGate",
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"phase": 1,
|
|
3
|
+
"name": "wire-only",
|
|
4
|
+
"detectEnabled": false,
|
|
5
|
+
"commands": [
|
|
6
|
+
"npx thumbgate init",
|
|
7
|
+
"npx thumbgate doctor"
|
|
8
|
+
],
|
|
9
|
+
"verify": "doctor exits 0. Hooks exist. Dashboard may be empty.",
|
|
10
|
+
"hiddenMetric": "PreToolUse hook installed — not number of gates."
|
|
11
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"phase": 2,
|
|
3
|
+
"name": "dashboard-empty-ok",
|
|
4
|
+
"detectEnabled": false,
|
|
5
|
+
"commands": [
|
|
6
|
+
"npx thumbgate dashboard --open"
|
|
7
|
+
],
|
|
8
|
+
"verify": "Local dashboard HTML loads (via --open/--web). Empty stats are success.",
|
|
9
|
+
"hiddenMetric": "Page load, not interdiction count."
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"phase": 3,
|
|
3
|
+
"name": "one-lesson",
|
|
4
|
+
"detectEnabled": false,
|
|
5
|
+
"commands": [
|
|
6
|
+
"npx thumbgate capture --feedback=down --context=\"Never run DROP on production tables\" --what-went-wrong=\"agent proposed DROP\" --what-to-change=\"require review for DROP\""
|
|
7
|
+
],
|
|
8
|
+
"verify": "npx thumbgate stats shows at least one down.",
|
|
9
|
+
"hiddenMetric": "One captured lesson, not a full rule pack."
|
|
10
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"phase": 4,
|
|
3
|
+
"name": "warn-fires",
|
|
4
|
+
"detectEnabled": true,
|
|
5
|
+
"strict": false,
|
|
6
|
+
"commands": [
|
|
7
|
+
"npx thumbgate gate-stats"
|
|
8
|
+
],
|
|
9
|
+
"verify": "A matching tool call is flagged and logged. Default is warn, not deny.",
|
|
10
|
+
"hiddenMetric": "A matching attempt in the hook log — not a hard block."
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"phase": 5,
|
|
3
|
+
"name": "strict-optional",
|
|
4
|
+
"detectEnabled": true,
|
|
5
|
+
"strict": true,
|
|
6
|
+
"commands": [
|
|
7
|
+
"THUMBGATE_STRICT_ENFORCEMENT=1"
|
|
8
|
+
],
|
|
9
|
+
"verify": "Only after phases 1–4. Matching learned rules can hard-deny.",
|
|
10
|
+
"hiddenMetric": "Strict is opt-in. Secret-exfil floors already deny without it."
|
|
11
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Progressive wiring (Frigate-style)
|
|
2
|
+
|
|
3
|
+
Prove the pipe before you turn detection on.
|
|
4
|
+
|
|
5
|
+
| Phase | File | Enable matching? | Verify |
|
|
6
|
+
| --- | --- | --- | --- |
|
|
7
|
+
| 1 | `01-wire-only.json` | no | `npx thumbgate doctor` |
|
|
8
|
+
| 2 | `02-dashboard-empty-ok.json` | no | dashboard loads, empty OK |
|
|
9
|
+
| 3 | `03-one-lesson.json` | no | `npx thumbgate stats` |
|
|
10
|
+
| 4 | `04-warn-fires.json` | yes, warn | hook log / gate-stats |
|
|
11
|
+
| 5 | `05-strict-optional.json` | yes, strict | only after 1–4 |
|
|
12
|
+
|
|
13
|
+
Hidden metric: if nothing fires, check **hook install**, not rule count.
|
|
14
|
+
|
|
15
|
+
Live guide: `/guides/progressive-wiring`
|