dexterm-cli 0.2.0 → 0.2.2
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/dist/packages/agents/src/spectator.js +28 -2
- package/dist/packages/agents/src/tiers.js +3 -0
- package/dist/packages/agents/src/tools.js +3 -0
- package/dist/packages/autotrade/src/backtest.js +6 -2
- package/dist/packages/autotrade/src/chat/connector.js +5 -4
- package/dist/packages/autotrade/src/chat/control.js +3 -0
- package/dist/packages/autotrade/src/chat/hub.js +37 -2
- package/dist/packages/autotrade/src/chat/index.js +3 -2
- package/dist/packages/autotrade/src/chat/readonly.js +530 -0
- package/dist/packages/autotrade/src/chat/service.js +12 -1
- package/dist/packages/autotrade/src/engine.js +75 -29
- package/dist/packages/autotrade/src/fleet.js +2 -2
- package/dist/packages/autotrade/src/index.js +4 -0
- package/dist/packages/autotrade/src/rugproof-probe.js +415 -0
- package/dist/packages/autotrade/src/rugproof.js +231 -0
- package/dist/packages/autotrade/src/runner.js +203 -30
- package/dist/packages/autotrade/src/service-install.js +6 -4
- package/dist/packages/autotrade/src/sessions.js +16 -7
- package/dist/packages/autotrade/src/store.js +1 -1
- package/dist/packages/autotrade/src/strategy-stats.js +344 -0
- package/dist/packages/autotrade/src/strategy.js +29 -1
- package/dist/packages/autotrade/src/tiers.js +194 -0
- package/dist/packages/classifier/src/calibrate.js +138 -0
- package/dist/packages/classifier/src/classify.js +107 -0
- package/dist/packages/classifier/src/config.js +298 -0
- package/dist/packages/classifier/src/dossier.js +95 -0
- package/dist/packages/classifier/src/hardware.js +63 -0
- package/dist/packages/classifier/src/index.js +19 -0
- package/dist/packages/classifier/src/models.js +111 -0
- package/dist/packages/classifier/src/providers/heuristic.js +77 -0
- package/dist/packages/classifier/src/providers/http.js +63 -0
- package/dist/packages/classifier/src/providers/jev-open.js +86 -0
- package/dist/packages/classifier/src/providers/llm.js +89 -0
- package/dist/packages/classifier/src/providers/systemone-http.js +95 -0
- package/dist/packages/classifier/src/questions.js +97 -0
- package/dist/packages/classifier/src/registry.js +42 -0
- package/dist/packages/classifier/src/snapshot.js +31 -0
- package/dist/packages/classifier/src/systemone.js +88 -0
- package/dist/packages/classifier/src/types.js +18 -0
- package/dist/packages/classifier/src/win-acl.js +71 -0
- package/dist/packages/cli/assets/dash/dash.css +139 -0
- package/dist/packages/cli/assets/dash/dash.js +200 -0
- package/dist/packages/cli/assets/dash/icon.svg +1 -0
- package/dist/packages/cli/assets/dash/index.html +36 -0
- package/dist/packages/cli/src/app-help-gen.js +13 -1
- package/dist/packages/cli/src/autotrade-cmd/fleet.js +12 -3
- package/dist/packages/cli/src/autotrade-cmd/run.js +14 -2
- package/dist/packages/cli/src/autotrade-cmd/service.js +3 -1
- package/dist/packages/cli/src/autotrade-cmd/signal.js +2 -2
- package/dist/packages/cli/src/autotrade-cmd/strategies.js +1 -1
- package/dist/packages/cli/src/autotrade-cmd/telegram-host.js +2 -0
- package/dist/packages/cli/src/classifier-cmd.js +361 -0
- package/dist/packages/cli/src/classifier-live.js +81 -0
- package/dist/packages/cli/src/dash/data.js +217 -0
- package/dist/packages/cli/src/dash/server.js +92 -0
- package/dist/packages/cli/src/dash-cmd.js +113 -0
- package/dist/packages/cli/src/doctor.js +34 -0
- package/dist/packages/cli/src/live/screens/token-live.js +4 -0
- package/dist/packages/cli/src/live/signals.js +8 -0
- package/dist/packages/cli/src/main.js +98 -6
- package/dist/packages/cli/src/mcp-follow.js +21 -1
- package/dist/packages/cli/src/narratives-cmd.js +147 -0
- package/dist/packages/cli/src/narratives.js +114 -0
- package/dist/packages/cli/src/overlay/model.js +147 -0
- package/dist/packages/cli/src/overlay/page.js +146 -0
- package/dist/packages/cli/src/overlay/pnl.js +75 -0
- package/dist/packages/cli/src/overlay/server.js +170 -0
- package/dist/packages/cli/src/overlay-cmd.js +367 -0
- package/dist/packages/cli/src/record-cmd.js +82 -11
- package/dist/packages/cli/src/rules-cmd.js +2 -1
- package/dist/packages/cli/src/rules.js +24 -4
- package/dist/packages/cli/src/screens/narrative.js +154 -2
- package/dist/packages/cli/src/skill-eval-build.js +7 -2
- package/dist/packages/cli/src/state.js +1 -0
- package/dist/packages/cli/src/version.js +1 -1
- package/dist/packages/custom/src/rules.js +5 -1
- package/dist/packages/mcp/assets/kb/app-help/autotrade-telegram.md +1 -1
- package/dist/packages/mcp/assets/kb/app-help/classification-models.md +41 -0
- package/dist/packages/mcp/assets/kb/app-help/narratives-tracker.md +45 -0
- package/dist/packages/mcp/assets/kb/app-help/strategy-dashboard.md +38 -0
- package/dist/packages/mcp/assets/kb/app-help/streamer-overlay.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-confidence-tiers-experimental-unproven-paper-only.md +56 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-rug-proof-entries-experimental.md +52 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-the-always-on-service.md +3 -1
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-the-strategy-dashboard-dexterm-dash.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade.md +3 -1
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-before-any-experimental-trading.md +2 -2
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-copy-and-paste-without-surprises.md +0 -1
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-if-dexterm-says-command-not-found.md +2 -2
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-reopen-dexterm-later.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-terminal-shell-prompt-command-output-and-path.md +2 -2
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-windows-expectations.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-windows.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-build-a-strategy-by-chat-the-ladder.md +2 -0
- package/dist/packages/mcp/assets/kb/docs/docs-build-a-strategy-by-chat.md +2 -0
- package/dist/packages/mcp/assets/kb/docs/docs-classifier-hosted-jev-with-your-own-key.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-classifier-how-they-measured-on-dexterm-s-own-history.md +52 -0
- package/dist/packages/mcp/assets/kb/docs/docs-classifier-set-up-kev-on-your-own-machine.md +39 -0
- package/dist/packages/mcp/assets/kb/docs/docs-classifier-settings.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-classifier-the-choices.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-classifier-where-it-plugs-in.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-classifier-which-model-for-which-machine.md +42 -0
- package/dist/packages/mcp/assets/kb/docs/docs-classifier.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-cli-invocations.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-headless-recorder-dexterm-record.md +3 -0
- package/dist/packages/mcp/assets/kb/docs/docs-copy-trading.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-data-sources-recorded-history-and-retention.md +1 -0
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-install.md +3 -3
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-requirements.md +2 -2
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-supported-platforms.md +2 -11
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started.md +2 -2
- package/dist/packages/mcp/assets/kb/docs/docs-larp-measured-accuracy.md +2 -2
- package/dist/packages/mcp/assets/kb/docs/docs-larp-paste-a-coin-on-the-web.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-larp-the-larp-score.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-narratives-how-coins-are-grouped.md +39 -0
- package/dist/packages/mcp/assets/kb/docs/docs-narratives-limits.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-narratives-what-is-measured.md +44 -0
- package/dist/packages/mcp/assets/kb/docs/docs-narratives-what-testing-showed.md +43 -0
- package/dist/packages/mcp/assets/kb/docs/docs-narratives-where-to-find-it.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-narratives.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-overlay-before-you-start.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-overlay-limits.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-overlay-options.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-overlay-security-model.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-overlay-set-it-up-in-obs-step-by-step.md +49 -0
- package/dist/packages/mcp/assets/kb/docs/docs-overlay-the-pnl-scene-paper-and-live.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-overlay-the-three-scenes.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-overlay-what-is-redacted.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-overlay.md +25 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-real-mode-what-it-is.md +2 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-bubble-map.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-streaming-it.md +1 -0
- package/dist/packages/mcp/assets/kb/docs/docs-telegram-read-only-data-check-top-and-signals-experimental.md +48 -0
- package/dist/packages/mcp/assets/kb/docs/docs-telegram-what-it-is.md +3 -1
- package/dist/packages/mcp/assets/kb/docs/docs-telegram-what-it-will-not-do.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-voice-linux-and-windows.md +2 -2
- package/dist/packages/mcp/assets/kb/entries/narratives-tracker.md +45 -0
- package/dist/packages/mcp/src/server.js +106 -1
- package/dist/packages/mcp/src/spectator-sink.js +27 -0
- package/dist/packages/narratives/src/cluster.js +193 -0
- package/dist/packages/narratives/src/embed.js +184 -0
- package/dist/packages/narratives/src/export.js +60 -0
- package/dist/packages/narratives/src/index.js +10 -0
- package/dist/packages/narratives/src/label.js +48 -0
- package/dist/packages/narratives/src/normalize.js +179 -0
- package/dist/packages/narratives/src/recorder.js +93 -0
- package/dist/packages/narratives/src/tracker.js +328 -0
- package/dist/packages/packs/src/skill-care.js +10 -2
- package/dist/packages/recorder/src/exit-probes.js +215 -0
- package/dist/packages/recorder/src/index.js +1 -0
- package/dist/packages/recorder/src/recorder.js +11 -1
- package/dist/packages/recorder/src/retention.js +4 -0
- package/dist/packages/recorder/src/schema.js +20 -1
- package/dist/packages/tui/src/keymap.js +5 -0
- package/package.json +3 -1
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-windows-powershell-experimental.md +0 -39
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: strategy-dashboard
|
|
3
|
+
title: Track how your autotrade strategies perform in a browser, on this machine only (dexterm dash)
|
|
4
|
+
kind: app-help
|
|
5
|
+
screen: all
|
|
6
|
+
tags:
|
|
7
|
+
- app-help
|
|
8
|
+
- dash
|
|
9
|
+
- dashboard
|
|
10
|
+
- performance
|
|
11
|
+
- strategies
|
|
12
|
+
- track
|
|
13
|
+
- equity
|
|
14
|
+
- drawdown
|
|
15
|
+
- compare
|
|
16
|
+
- baseline
|
|
17
|
+
- rugs
|
|
18
|
+
- stuck
|
|
19
|
+
- browser
|
|
20
|
+
- web
|
|
21
|
+
- phone
|
|
22
|
+
commands:
|
|
23
|
+
- dash
|
|
24
|
+
confidence: high
|
|
25
|
+
owner: maintainers
|
|
26
|
+
origin: app-help-generated
|
|
27
|
+
reviewed_by: generated@2026-10-16
|
|
28
|
+
generated_from: dexterm/app keymap + overlay + mcp tools + cli (task-1413)
|
|
29
|
+
sources:
|
|
30
|
+
- packages/tui/src/keymap.ts
|
|
31
|
+
- packages/cli/src/main.ts
|
|
32
|
+
- packages/mcp/src/server.ts
|
|
33
|
+
date: 2026-10-16
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
`dexterm dash` reads your own autotrade run ledgers ($DEXTERM_HOME/autotrade/runs) and serves a dashboard on http://127.0.0.1:4317/ (loopback only; no account, no cloud, nothing leaves the machine; read-only). Views: Overview (every strategy side by side with an equity sparkline), Strategy (equity curve, drawdown, exit reasons, open positions with the engine mark and the realizable value from the last cached pool read, every trade), Rugs & stuck (closed at -80% or worse and stuck positions written off at what they actually sold), Compare (each strategy minus a --baseline with the 95% interval of the difference) and Live status; it refreshes every 30 s. Every number carries its sample size; under 20 closed trades a strategy is exploratory. Flags: --port, --home (repeat for several homes), --baseline ID, --books FILE (your own script's books), --allow-host NAME (a private proxy in front), --json, --export DIR [--redact-mints] (a static read-only snapshot). PAPER results are simulated. Not financial advice.
|
|
37
|
+
|
|
38
|
+
CLI: `dexterm dash`.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: streamer-overlay
|
|
3
|
+
title: Streamer overlay for OBS (dexterm overlay)
|
|
4
|
+
kind: app-help
|
|
5
|
+
screen: all
|
|
6
|
+
feature: streamer-overlay
|
|
7
|
+
tags:
|
|
8
|
+
- app-help
|
|
9
|
+
- overlay
|
|
10
|
+
- obs
|
|
11
|
+
- stream
|
|
12
|
+
- streamer
|
|
13
|
+
- browser source
|
|
14
|
+
- scene
|
|
15
|
+
- twitch
|
|
16
|
+
- spectator
|
|
17
|
+
- pnl
|
|
18
|
+
- coin card
|
|
19
|
+
- activity
|
|
20
|
+
commands:
|
|
21
|
+
- overlay
|
|
22
|
+
confidence: high
|
|
23
|
+
owner: maintainers
|
|
24
|
+
origin: app-help-generated
|
|
25
|
+
reviewed_by: generated@2026-10-16
|
|
26
|
+
generated_from: dexterm/app keymap + overlay + mcp tools + cli (task-1413)
|
|
27
|
+
sources:
|
|
28
|
+
- packages/tui/src/keymap.ts
|
|
29
|
+
- packages/cli/src/main.ts
|
|
30
|
+
- packages/mcp/src/server.ts
|
|
31
|
+
date: 2026-10-16
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
Put the agent session on a live stream. `dexterm overlay` serves three transparent scenes for an OBS Browser source on 127.0.0.1: the agent activity feed, the coin card the agent is on (name, LARP evidence and the deterministic verdict, a top-10 holder bar, the live holder/rug signals) and the PnL card (the same renderer as the H key; stamped PAPER for the agent's simulated fills, or PAPER / LIVE by wallet mode with `--ledger <tradeId>`). `--scene all` puts all three in one source, `--theme cyberspace|ice|neon` picks a preset. It watches the read-only spectator stream a running `dexterm --spectate-mcp` (or `dexterm agent serve --spectate`) opens; `--replay FILE` plays a saved session and every scene then says SAMPLE DATA. Each printed URL works once (a single-use ticket, 10 minutes to paste it; press n for fresh ones). Addresses are always shortened, every scene shows the age of its data, and the overlay can only watch: it sends nothing back and cannot pause, trade, arm or sign. Full docs: https://dexterm.xyz/docs/overlay/
|
|
35
|
+
|
|
36
|
+
CLI: `dexterm overlay`.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-autotrade-confidence-tiers-experimental-unproven-paper-only
|
|
3
|
+
title: Autotrade (paper) › Confidence tiers (experimental, unproven, paper only)
|
|
4
|
+
kind: docs
|
|
5
|
+
page: autotrade
|
|
6
|
+
page_title: Autotrade (paper)
|
|
7
|
+
heading: Confidence tiers (experimental, unproven, paper only)
|
|
8
|
+
anchor: confidence-tiers-experimental-unproven-paper-only
|
|
9
|
+
url: https://dexterm.xyz/docs/autotrade#confidence-tiers-experimental-unproven-paper-only
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- autotrade
|
|
13
|
+
- confidence
|
|
14
|
+
- tiers
|
|
15
|
+
- experimental
|
|
16
|
+
- unproven
|
|
17
|
+
- paper
|
|
18
|
+
- only
|
|
19
|
+
confidence: high
|
|
20
|
+
owner: maintainers
|
|
21
|
+
origin: docs-generated
|
|
22
|
+
reviewed_by: generated@2026-10-16
|
|
23
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
24
|
+
sources:
|
|
25
|
+
- site/content/docs/autotrade.md
|
|
26
|
+
date: 2026-10-16
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
**Unproven.** On our held-out data no tier made money, and our November research found no dexterm strategy with a proven edge. This is a way to test a sizing rule on paper; it is not a signal and not a reason to trade real money. Off unless a strategy turns it on, and refused outside paper.
|
|
30
|
+
|
|
31
|
+
Turn it on per strategy with `sizing.tiers` (paper mode, and the rug-proof block (https://dexterm.xyz/docs/autotrade#rug-proof-entries-experimental) with `minPoolAgeMin` 10 or more):
|
|
32
|
+
|
|
33
|
+
```json
|
|
34
|
+
"sizing": { "tiers": { "table": "v4-1785", "experimental": "paper-only" } }
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
The engine, not the agent, then scores every candidate on two figures from that coin's own tick:
|
|
38
|
+
|
|
39
|
+
- **turnover1h** = 1 h volume / liquidity, a point at **9.878 or less**;
|
|
40
|
+
- **bs5m** = buys / sells over 5 minutes, a point at **3.714 or more**.
|
|
41
|
+
|
|
42
|
+
Score 0 is **T0, a skip**: no entry. Score 1 is T3, score 2 is T4. **No tier runs above 25% of the book**: the table configures T3 at 75% and T4 at 100%, and both run at 25%. The cap is in the engine's code; no strategy field, table entry or agent answer lifts it, and it also holds across the scale-in tranches of a tiered position. After that every limit you set still applies and the stricter one wins (`maxPctOfBankroll`, `maxUsd`, the profile's max, per-trade loss, exposure, cash, price impact, the drawdown size-down, the rug-proof young-pool cap). The agent can ask for less, never more, and its confidence does not change the tier. One open position at a time unless you add `"oneOpen": false`; an entry still waiting for its fill (the execution latency) or for your approval counts as open, for this and for `maxConcurrent`, and its dollars count against your exposure and cash.
|
|
43
|
+
|
|
44
|
+
A tier also needs, or it is T0: liquidity of $30,000 or more, a token at least 10 minutes old, not young (under 2 h) and vertical (1 h change of 150% or more), a 1 h change at all for a young coin, and a live tick no older than 5 minutes at the moment of the decision. A missing, negative or non-numeric figure never scores a point.
|
|
45
|
+
|
|
46
|
+
Paper only, three times over: `dexterm autotrade validate` refuses the block in mode `real` or `live`, the runner refuses it in a real-signal run, and the engine refuses it outside paper.
|
|
47
|
+
|
|
48
|
+
Where you see it: `dexterm autotrade validate <id>` prints the verdict and every tier with its held-out numbers, `dexterm autotrade list` marks the strategy `EXPERIMENTAL tiers (unproven, paper only)`, every candidate writes a `TIER` line in the run log with its score, size and the verdict, and the ledger's clamp event records the tier.
|
|
49
|
+
|
|
50
|
+
The table's held-out numbers (frozen before the held-out set was scored once, per entry, 95% interval):
|
|
51
|
+
|
|
52
|
+
| tier | when | runs at | held-out |
|
|
53
|
+
|---|---|---|---|
|
|
54
|
+
| T0 | score 0 or a failed gate | skip | 19 entries, mean -17.0% (-35.7% … +3.4%) |
|
|
55
|
+
| T3 | score 1 | 25% | 17 entries, mean -7.6% (-31.8% … +16.8%) |
|
|
56
|
+
| T4 | score 2 | 25% | no entries (too few to say anything) |
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-autotrade-rug-proof-entries-experimental
|
|
3
|
+
title: Autotrade (paper) › Rug-proof entries (experimental)
|
|
4
|
+
kind: docs
|
|
5
|
+
page: autotrade
|
|
6
|
+
page_title: Autotrade (paper)
|
|
7
|
+
heading: Rug-proof entries (experimental)
|
|
8
|
+
anchor: rug-proof-entries-experimental
|
|
9
|
+
url: https://dexterm.xyz/docs/autotrade#rug-proof-entries-experimental
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- autotrade
|
|
13
|
+
- rug-proof
|
|
14
|
+
- entries
|
|
15
|
+
- experimental
|
|
16
|
+
- paper
|
|
17
|
+
confidence: high
|
|
18
|
+
owner: maintainers
|
|
19
|
+
origin: docs-generated
|
|
20
|
+
reviewed_by: generated@2026-10-16
|
|
21
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
22
|
+
sources:
|
|
23
|
+
- site/content/docs/autotrade.md
|
|
24
|
+
date: 2026-10-16
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
Most of the losses in our own paper testing were creator liquidity pulls on hand-made pools: one transaction, no warning, nothing to sell into afterwards. A pull cannot be front-run, so the main defense is to refuse those pools before entering. Turn it on per strategy with `entry.safety.rugproof` (the defaults below are what `{}` gives you):
|
|
28
|
+
|
|
29
|
+
```json
|
|
30
|
+
"entry": { "safety": { "rugproof": {
|
|
31
|
+
"minPoolAgeMin": 10, "requireSafePool": true, "maxHolderLpPct": 10,
|
|
32
|
+
"maxWithdraws": 0, "withdrawScanTx": 25,
|
|
33
|
+
"liquidityRecheck": { "afterSec": 60, "floorX": 2, "maxDropPct": 15 },
|
|
34
|
+
"routeX": 2, "youngPool": { "underMin": 30, "maxSizePct": 50 },
|
|
35
|
+
"drainGuard": { "pollSec": 10, "liqDropPct": 25, "exitOnNoRoute": true, "minReserveSol": 0.5 }
|
|
36
|
+
} } }
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Before an entry, cheapest first, and **fail closed** (a gate that cannot be read refuses the coin as `-unknown` and looks again in 5 minutes):
|
|
40
|
+
|
|
41
|
+
- **pool age**: the pool itself is at least `minPoolAgeMin` minutes old. On our paper record this one gate refused all 8 pools that were later pulled and none of the 5 coins that later ran;
|
|
42
|
+
- **holders**: top-10 and dev shares under the strategy's own safety limits;
|
|
43
|
+
- **a second liquidity read** `afterSec` apart, both well above the exit floor and not falling fast;
|
|
44
|
+
- **pool structure**: a pump.fun migration, or a pool whose LP is verifiably burned or locked; a hand-made pool (wrapped SOL as the base mint) is refused, and so is LP held by its creator or by any one wallet over `maxHolderLpPct`;
|
|
45
|
+
- **withdraw history**: no liquidity `Withdraw` among the pool's newest transactions (a scan that cannot read every transaction refuses);
|
|
46
|
+
- **sell route**: Jupiter returns a token-to-SOL route for `routeX` times the position size.
|
|
47
|
+
|
|
48
|
+
Young or partly verified pools get at most `youngPool.maxSizePct` of the strategy's size. After an entry, the **drain guard** polls the pool every `pollSec` seconds and sells the whole position at once when liquidity falls more than `liqDropPct` from the entry read, the reserve is near zero, or Jupiter finds no route. Every refusal and exit has a named rule (`rugproof:<gate>`) in the run file and the ledger.
|
|
49
|
+
|
|
50
|
+
`execution.stuckWriteOffMin` (paper only, refused in any other mode) closes a paper bag that has been unsellable for that many minutes at what could actually be realized, so a dead coin stops holding a slot. In real mode the bag is still in your wallet and keeps its exit signals.
|
|
51
|
+
|
|
52
|
+
A backtest evaluates only the tick gates (pool age, holders, liquidity) and a pump.fun-mint proxy; the pool, LP, withdraw and route gates need live data. On the history so far, rug-proofing cut the losses a lot and **was still negative per entry**: it loses money more slowly, it does not make a strategy profitable.
|
|
@@ -28,6 +28,8 @@ date: 2026-10-16
|
|
|
28
28
|
|
|
29
29
|
Install it once and the strategies in your `autotrade.json` (https://dexterm.xyz/docs/autotrade#the-autotradejson-file) keep running: they start when you log in, start again after a crash, never run twice, stop at once on any kill switch, and tell you when they cannot run.
|
|
30
30
|
|
|
31
|
+
dexterm autotrade service status: three paper strategies on the always-on service
|
|
32
|
+
|
|
31
33
|
```
|
|
32
34
|
dexterm autotrade service install --dry-run # shows exactly what it would write; writes nothing
|
|
33
35
|
dexterm autotrade service install --load # writes it and loads it
|
|
@@ -38,7 +40,7 @@ dexterm autotrade service logs # the end of its log
|
|
|
38
40
|
dexterm autotrade service uninstall # stop, unload, remove exactly what install wrote
|
|
39
41
|
```
|
|
40
42
|
|
|
41
|
-
- **What install writes.** One small job that runs `dexterm autotrade service ensure` every minute and at login: a LaunchAgent in `~/Library/LaunchAgents/` on macOS (no `KeepAlive`), a systemd user timer in `~/.config/systemd/user/` on Linux
|
|
43
|
+
- **What install writes.** One small job that runs `dexterm autotrade service ensure` every minute and at login: a LaunchAgent in `~/Library/LaunchAgents/` on macOS (no `KeepAlive`), a systemd user timer in `~/.config/systemd/user/` on Linux (Windows is not supported). Install prints every file in full and checks that it parses before writing anything; `--dry-run` stops there, and without `--load` nothing is loaded. It runs while you are logged in (on Linux, `loginctl enable-linger` is your choice for after logout). Each `DEXTERM_HOME` gets its own job, so a test home never replaces your real one.
|
|
42
44
|
- **What a tick does.** `ensure` does nothing while the service's heartbeat is fresh, and otherwise starts it. The service runs `dexterm autotrade run --all --paper` for every strategy you listed, with the same lock, run files, `Q` screen and switches as a run you start by hand. Flags for it go in `~/.dexterm/autotrade/service.json` (`{ "schema": "dexterm-autotrade-service-config/1", "runArgs": ["--model", "sonnet"] }`; only `--model`, `--sol-usd`, `--config`, `--replay`, `--ms-per-tick`, `--max-minutes` and `--stub`).
|
|
43
45
|
- **After a crash or a restart.** A crash costs at most a minute. The new run checks the crashed run's file, takes over the paper positions it left open (their stops, take-profits, trails and maximum hold keep running from the original entry), and never buys a coin the crashed run already took. An order that had not filled never happened, and it is never sent again.
|
|
44
46
|
- **A crash loop gives up.** Restarts after a crash wait 0, 0, 1, 2 and 4 minutes; the sixth crash within an hour leaves the service down with one notification. `dexterm autotrade service status --clear` lets it start again once you have read the log.
|
package/dist/packages/mcp/assets/kb/docs/docs-autotrade-the-strategy-dashboard-dexterm-dash.md
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-autotrade-the-strategy-dashboard-dexterm-dash
|
|
3
|
+
title: Autotrade (paper) › Several strategies at once › The strategy dashboard (dexterm dash)
|
|
4
|
+
kind: docs
|
|
5
|
+
page: autotrade
|
|
6
|
+
page_title: Autotrade (paper)
|
|
7
|
+
heading: The strategy dashboard (dexterm dash)
|
|
8
|
+
anchor: the-strategy-dashboard-dexterm-dash
|
|
9
|
+
url: https://dexterm.xyz/docs/autotrade#the-strategy-dashboard-dexterm-dash
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- autotrade
|
|
13
|
+
- strategy
|
|
14
|
+
- dashboard
|
|
15
|
+
- dexterm
|
|
16
|
+
- dash
|
|
17
|
+
- several
|
|
18
|
+
- strategies
|
|
19
|
+
- once
|
|
20
|
+
- paper
|
|
21
|
+
confidence: high
|
|
22
|
+
owner: maintainers
|
|
23
|
+
origin: docs-generated
|
|
24
|
+
reviewed_by: generated@2026-10-16
|
|
25
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
26
|
+
sources:
|
|
27
|
+
- site/content/docs/autotrade.md
|
|
28
|
+
date: 2026-10-16
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
dexterm dash # http://127.0.0.1:4317/ until Ctrl-C
|
|
33
|
+
dexterm dash --json # the same numbers, printed
|
|
34
|
+
dexterm dash --export DIR --redact-mints # a static read-only snapshot (the page + data.json)
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
The same run files, in a browser: an overview of every strategy, one strategy in detail (its book over time, drawdown, closed trades), rugs and stuck bags, a comparison against a baseline strategy you pick (`--baseline ID`) with a 95% interval, and live status, refreshed every 30 seconds. `--home DIR` reads another dexterm home (repeat it for several), `--books FILE` adds books your own scripts wrote (`dexterm-dash-books/1`). The server listens on 127.0.0.1 only, makes no network request, loads nothing from the internet and changes nothing; `--allow-host NAME` lets a private proxy you run in front of it answer. Paper results are simulated.
|
|
@@ -19,4 +19,6 @@ sources:
|
|
|
19
19
|
date: 2026-10-16
|
|
20
20
|
---
|
|
21
21
|
|
|
22
|
-
Strategies you write or copy from presets, validated in one file, and backtests on your own recorded history with a held-out check. Paper
|
|
22
|
+
Strategies you write or copy from presets, validated in one file, and backtests on your own recorded history with a held-out check. Paper by default, self-directed, not financial advice.
|
|
23
|
+
|
|
24
|
+
a backtest and its held-out sweep on the Q screen (PAPER, a small recorded fixture tape)
|
|
@@ -28,6 +28,6 @@ sources:
|
|
|
28
28
|
date: 2026-10-16
|
|
29
29
|
---
|
|
30
30
|
|
|
31
|
-
Stop here until you are comfortable reading the app. Trading in dexterm is PAPER simulation, which uses pretend funds, and the keypress gate (a required physical key press) is on by default. dexterm signs nothing and sends no transaction;
|
|
31
|
+
Stop here until you are comfortable reading the app. Trading in dexterm is PAPER simulation by default, which uses pretend funds, and the keypress gate (a required physical key press) is on by default. dexterm signs nothing and sends no transaction. Real mode is experimental; signals to your own executor; dexterm never holds a key; not financial advice. No analyst, voice, or connected program can trade or turn real mode on.
|
|
32
32
|
|
|
33
|
-
Never enter a seed phrase, private key, password, API key, or authentication token. Read the paper trading guide (https://dexterm.xyz/docs/paper-trading) and live trading (https://dexterm.xyz/docs/live-trading) before considering anything beyond the read-only walkthrough.
|
|
33
|
+
Never enter a seed phrase, private key, password, API key, or authentication token. Read the paper trading guide (https://dexterm.xyz/docs/paper-trading), real mode (https://dexterm.xyz/docs/real-mode) and live trading (https://dexterm.xyz/docs/live-trading) before considering anything beyond the read-only walkthrough.
|
|
@@ -34,6 +34,5 @@ Copy only the text inside a code box. Do not copy a leading `$`; it represents t
|
|
|
34
34
|
|---|---|---|
|
|
35
35
|
| macOS Terminal | Command-C | Command-V |
|
|
36
36
|
| Linux terminal | Ctrl-Shift-C | Ctrl-Shift-V |
|
|
37
|
-
| Windows Terminal | Ctrl-Shift-C | Ctrl-Shift-V |
|
|
38
37
|
|
|
39
38
|
Right-click and choose **Paste** if the shortcut does not work. A multi-line paste can run several commands, so this guide uses one command per box. Never paste a command you do not understand; read the sentence above it first.
|
package/dist/packages/mcp/assets/kb/docs/docs-beginners-if-dexterm-says-command-not-found.md
CHANGED
|
@@ -31,6 +31,6 @@ sources:
|
|
|
31
31
|
date: 2026-10-16
|
|
32
32
|
---
|
|
33
33
|
|
|
34
|
-
Close and reopen the terminal first. Then run `npm prefix -g` to see npm's global install folder. On macOS/Linux, npm's executable folder must be on your PATH; the installer output normally tells you the exact line for your setup. Do not paste a PATH fix from a stranger.
|
|
34
|
+
Close and reopen the terminal first. Then run `npm prefix -g` to see npm's global install folder. On macOS/Linux, npm's executable folder must be on your PATH; the installer output normally tells you the exact line for your setup. Do not paste a PATH fix from a stranger.
|
|
35
35
|
|
|
36
|
-
You can confirm whether the shell can find dexterm with `command -v dexterm
|
|
36
|
+
You can confirm whether the shell can find dexterm with `command -v dexterm`.
|
|
@@ -30,8 +30,8 @@ sources:
|
|
|
30
30
|
date: 2026-10-16
|
|
31
31
|
---
|
|
32
32
|
|
|
33
|
-
- A **terminal** is a text window for giving your computer instructions. macOS calls its built-in app Terminal.
|
|
34
|
-
- A **shell** is the program inside that window that reads what you type.
|
|
33
|
+
- A **terminal** is a text window for giving your computer instructions. macOS calls its built-in app Terminal. Linux includes a terminal app with the desktop. dexterm runs on macOS and Linux; Windows is not supported.
|
|
34
|
+
- A **shell** is the program inside that window that reads what you type. `zsh` and `bash` are common macOS and Linux shells. You do not need to learn which one you have.
|
|
35
35
|
- A **prompt** is the short text, often ending in `$` or `>`, that means the shell is ready. Do not type the prompt itself.
|
|
36
36
|
- A **command** is one line you type after the prompt, such as `dexterm doctor`.
|
|
37
37
|
- **Output** is the text the computer prints after a command. Output is an answer, not another command to copy blindly.
|
|
@@ -26,4 +26,4 @@ sources:
|
|
|
26
26
|
date: 2026-10-16
|
|
27
27
|
---
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
dexterm supports macOS and Linux. Windows is not supported: private files rely on macOS and Linux file permissions, voice has no Windows engine, browser-opening actions and `doctor`'s repair commands assume macOS or Linux, and the npm-installed `claude.cmd` is not detected as a usable analyst binary. The supported platforms (https://dexterm.xyz/docs/getting-started#supported-platforms) table has the details.
|
|
@@ -27,4 +27,4 @@ sources:
|
|
|
27
27
|
date: 2026-10-16
|
|
28
28
|
---
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
Windows is not supported. See Windows expectations (https://dexterm.xyz/docs/beginners#windows-expectations).
|
|
@@ -37,3 +37,5 @@ A strategy you build climbs one ladder, one rung at a time:
|
|
|
37
37
|
| real | real mode armed on your own terminal, with caps you set, above the evidence floor: a completed forward test with at least 10 closed paper trades and a backtest | only you, with a typed phrase (real mode (https://dexterm.xyz/docs/real-mode)) |
|
|
38
38
|
|
|
39
39
|
Every rung counts evidence measured on the strategy's **exact rules**. Renaming it, rewording its description or arming it for real keeps its evidence; changing any rule (an entry filter, a size, an exit, a limit) starts the ladder again from draft. No rung can be skipped, and `dexterm autotrade journey <id>` (or `J` on the `Q` screen) always shows where a strategy stands and what the next rung needs.
|
|
40
|
+
|
|
41
|
+
the journey view (J on the Q screen): one rung at a time, the forward test set beside its backtest (PAPER)
|
|
@@ -22,3 +22,5 @@ date: 2026-10-16
|
|
|
22
22
|
---
|
|
23
23
|
|
|
24
24
|
Ask the analyst for a strategy, then back-test it on your recorded history, forward-test it on live data on paper, and promote it one step at a time to the always-on service and, only if you choose, to real mode. Every step needs evidence; nothing is promoted by the model. Paper by default, not financial advice.
|
|
25
|
+
|
|
26
|
+
a strategy the analyst proposed in chat, as a diff you apply with a key (PAPER)
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-classifier-hosted-jev-with-your-own-key
|
|
3
|
+
title: Classification models › Hosted Jev with your own key
|
|
4
|
+
kind: docs
|
|
5
|
+
page: classifier
|
|
6
|
+
page_title: Classification models
|
|
7
|
+
heading: Hosted Jev with your own key
|
|
8
|
+
anchor: hosted-jev-with-your-own-key
|
|
9
|
+
url: https://dexterm.xyz/docs/classifier#hosted-jev-with-your-own-key
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- classifier
|
|
13
|
+
- hosted
|
|
14
|
+
- jev
|
|
15
|
+
- own
|
|
16
|
+
- key
|
|
17
|
+
- classification
|
|
18
|
+
- models
|
|
19
|
+
confidence: high
|
|
20
|
+
owner: maintainers
|
|
21
|
+
origin: docs-generated
|
|
22
|
+
reviewed_by: generated@2026-10-16
|
|
23
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
24
|
+
sources:
|
|
25
|
+
- site/content/docs/classifier.md
|
|
26
|
+
date: 2026-10-16
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
dexterm classifier key set paste your TypeSafe API key (hidden input; stored owner-only under ~/.dexterm/keys)
|
|
31
|
+
dexterm classifier pick jev-hosted
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
dexterm never ships or shares a key. The key is sent only to `https://api.typesafe.ai`, never printed, and never stored in `classifier.json`. `TYPESAFE_API_KEY` in the environment works too. Each call counts tokens. Set your price per million input tokens in `~/.dexterm/classifier.json` (`jev.pricePerMTokUsd`) to see a cost in dollars; until you do, the cost shows as *unpriced*, never as $0. A daily call cap (`jev.maxCallsPerDay`, default 1,000) stops calls before they reach the network. A rate limit from the API is reported with its retry time.
|
|
35
|
+
|
|
36
|
+
The key file must be readable by your account only: on macOS and Linux it is saved with mode 0600, and a file other users can read is refused. On Windows (not supported, see Windows expectations (https://dexterm.xyz/docs/beginners#windows-expectations)) file modes mean nothing, so `key set` locks the file to your Windows account with `icacls` and every read checks its access list; a file other accounts can read, or one whose access list cannot be checked, is refused. `dexterm classifier key status` says why a file is refused. If `icacls` or PowerShell is blocked on your machine, set `TYPESAFE_API_KEY` in your environment instead.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-classifier-how-they-measured-on-dexterm-s-own-history
|
|
3
|
+
title: Classification models › How they measured on dexterm's own history
|
|
4
|
+
kind: docs
|
|
5
|
+
page: classifier
|
|
6
|
+
page_title: Classification models
|
|
7
|
+
heading: How they measured on dexterm's own history
|
|
8
|
+
anchor: how-they-measured-on-dexterm-s-own-history
|
|
9
|
+
url: https://dexterm.xyz/docs/classifier#how-they-measured-on-dexterm-s-own-history
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- classifier
|
|
13
|
+
- they
|
|
14
|
+
- measured
|
|
15
|
+
- dexterm
|
|
16
|
+
- own
|
|
17
|
+
- history
|
|
18
|
+
- classification
|
|
19
|
+
- models
|
|
20
|
+
confidence: high
|
|
21
|
+
owner: maintainers
|
|
22
|
+
origin: docs-generated
|
|
23
|
+
reviewed_by: generated@2026-10-16
|
|
24
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
25
|
+
sources:
|
|
26
|
+
- site/content/docs/classifier.md
|
|
27
|
+
date: 2026-10-16
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
dexterm's benchmark (October 2026) asked each model about coins whose outcome we already know: 1,054 coins from the LARP eval set (rugged or dead within 72 hours?) and 1,800 coins from the recorder's history (drained within 6 hours?). The rules and the pick were fixed before the final held-out coins were scored, and those were scored once. AUROC says how well a model ranks the coins that went bad above the ones that did not: 0.5 is a coin flip, 1.0 is perfect.
|
|
31
|
+
|
|
32
|
+
| model | where it ran | drained within 6 h (held-out) | bad within 72 h (held-out) | time per coin | cost |
|
|
33
|
+
|---|---|---|---|---|---|
|
|
34
|
+
| Built-in scores (default) | anywhere | 0.50 | 0.71 | under 1 ms | free |
|
|
35
|
+
| Kev 0.8B (Q8) | Intel Mac mini CPU | 0.54 | 0.46 | 3-7 s | free |
|
|
36
|
+
| Kev 4B (Q4) | desktop and Mac mini CPUs | 0.52 | 0.73 | 5-14 s | free |
|
|
37
|
+
| Kev 9B (Q4) | RTX 4080 GPU | 0.53 | 0.79 | 0.06-0.2 s | free |
|
|
38
|
+
| Claude haiku (comparison only) | Claude CLI | 0.62 | 0.86 | about 5 s | about $0.0009 |
|
|
39
|
+
| Kev 27B, hosted Jev, open JEV | not measured | | | | |
|
|
40
|
+
|
|
41
|
+
What this means:
|
|
42
|
+
|
|
43
|
+
- **No model is good at this yet.** Predicting a coin's next six hours from what is known now is hard for everything we tried, including the built-in scores. Treat every estimate as one weak input, never as a verdict.
|
|
44
|
+
- **Kev 0.8B ranks coins no better than chance** and gives almost the same number for every coin, so dexterm never suggests it.
|
|
45
|
+
- **Kev 4B** is the model `dexterm classifier pull` suggests if you want a local model: it was the best Kev on the development coins. On the held-out coins it tied the built-in scores (no better, no worse), so the built-in scores stay the default.
|
|
46
|
+
- **Claude (zero-shot) ranked best** on both questions, but it needs your Claude login, the network and a small cost per coin, so it is a comparison point, not a default.
|
|
47
|
+
- **Kev 9B** (measured later, on a GPU) is fast, a fraction of a second per coin, but no better. On the development coins it trailed Kev 4B on the drain question. On the held-out coins it tied both the built-in scores and Kev 4B: its 0.79 on the LARP question and 0.53 on drain are within chance variation of theirs. So `kev-4b-q4` stays the suggestion, and the 9B model is there if you want to try it.
|
|
48
|
+
- **Kev 27B and the open JEV models were not measured** (no file llama.cpp can run, or a GPU larger than 16 GB needed). They may do better; we do not know.
|
|
49
|
+
- **Hosted Jev was not measured**: it needs a TypeSafe key, and dexterm's own tests run against a stand-in server only.
|
|
50
|
+
- Kev was trained on general text decisions (intents, reviews, policies), not on memecoins. Its authors' accuracy figures are about those tasks, not this one.
|
|
51
|
+
|
|
52
|
+
`dexterm classifier bench` times the model you picked on your own machine (seconds per coin and per 1,000 coins).
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-classifier-set-up-kev-on-your-own-machine
|
|
3
|
+
title: Classification models › Set up Kev on your own machine
|
|
4
|
+
kind: docs
|
|
5
|
+
page: classifier
|
|
6
|
+
page_title: Classification models
|
|
7
|
+
heading: Set up Kev on your own machine
|
|
8
|
+
anchor: set-up-kev-on-your-own-machine
|
|
9
|
+
url: https://dexterm.xyz/docs/classifier#set-up-kev-on-your-own-machine
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- classifier
|
|
13
|
+
- set
|
|
14
|
+
- kev
|
|
15
|
+
- own
|
|
16
|
+
- machine
|
|
17
|
+
- classification
|
|
18
|
+
- models
|
|
19
|
+
confidence: high
|
|
20
|
+
owner: maintainers
|
|
21
|
+
origin: docs-generated
|
|
22
|
+
reviewed_by: generated@2026-10-16
|
|
23
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
24
|
+
sources:
|
|
25
|
+
- site/content/docs/classifier.md
|
|
26
|
+
date: 2026-10-16
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
1. dexterm classifier doctor your RAM, CPU and GPU, and the model tier it recommends
|
|
31
|
+
2. dexterm classifier pull kev-4b-q4 shows the size and the source, asks, checks the disk, verifies the sha256
|
|
32
|
+
3. dexterm classifier pick kev-local kev-4b-q4
|
|
33
|
+
4. dexterm classifier serve runs llama-server on 127.0.0.1 (leave it open)
|
|
34
|
+
5. dexterm classifier try one labelled estimate, to see it work
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
You need llama.cpp's `llama-server` from a build released on 2026-10-02 or later: that is when it gained the `/v1/systemone` endpoint decision models use. Put it on your `PATH`, or point `DEXTERM_LLAMA_SERVER` at it. Downloads come from the pinned revision of the model's Hugging Face repo and are checked against a sha256 before use. Once a model is downloaded, it works fully offline.
|
|
38
|
+
|
|
39
|
+
If the picked model is not running, the built-in scores answer instead, and the answer says it is a fallback.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-classifier-settings
|
|
3
|
+
title: Classification models › Settings
|
|
4
|
+
kind: docs
|
|
5
|
+
page: classifier
|
|
6
|
+
page_title: Classification models
|
|
7
|
+
heading: Settings
|
|
8
|
+
anchor: settings
|
|
9
|
+
url: https://dexterm.xyz/docs/classifier#settings
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- classifier
|
|
13
|
+
- settings
|
|
14
|
+
- classification
|
|
15
|
+
- models
|
|
16
|
+
confidence: high
|
|
17
|
+
owner: maintainers
|
|
18
|
+
origin: docs-generated
|
|
19
|
+
reviewed_by: generated@2026-10-16
|
|
20
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
21
|
+
sources:
|
|
22
|
+
- site/content/docs/classifier.md
|
|
23
|
+
date: 2026-10-16
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
`~/.dexterm/classifier.json` (0600). Only `dexterm classifier` writes it.
|
|
27
|
+
|
|
28
|
+
| key | what it does |
|
|
29
|
+
|---|---|
|
|
30
|
+
| `provider` | `heuristic` (default), `kev-local`, `jev-hosted`, `jev-open`, `claude`, `ollama-llm` |
|
|
31
|
+
| `default` | the shipped recommendation for a local model |
|
|
32
|
+
| `kev.endpoint`, `kev.model`, `kev.threads` | the local server (loopback only) and the model id |
|
|
33
|
+
| `jev.endpoint`, `jev.model`, `jev.pricePerMTokUsd`, `jev.maxCallsPerDay` | hosted Jev |
|
|
34
|
+
| `calibration` | optional Platt maps per model and question, fitted on labelled rows |
|
|
35
|
+
| `fallback` | answer with the built-in scores when the provider is unreachable (default `true`) |
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-classifier-the-choices
|
|
3
|
+
title: Classification models › The choices
|
|
4
|
+
kind: docs
|
|
5
|
+
page: classifier
|
|
6
|
+
page_title: Classification models
|
|
7
|
+
heading: The choices
|
|
8
|
+
anchor: the-choices
|
|
9
|
+
url: https://dexterm.xyz/docs/classifier#the-choices
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- classifier
|
|
13
|
+
- choices
|
|
14
|
+
- classification
|
|
15
|
+
- models
|
|
16
|
+
confidence: high
|
|
17
|
+
owner: maintainers
|
|
18
|
+
origin: docs-generated
|
|
19
|
+
reviewed_by: generated@2026-10-16
|
|
20
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
21
|
+
sources:
|
|
22
|
+
- site/content/docs/classifier.md
|
|
23
|
+
date: 2026-10-16
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
| provider | what it is | runs where | cost |
|
|
27
|
+
|---|---|---|---|
|
|
28
|
+
| `heuristic` | the built-in scores: the H1 rug score and the LARP link score | inside dexterm | $0, instant |
|
|
29
|
+
| `kev-local` | Kev, an open decision model (Apache-2.0), run by llama.cpp | your machine | $0 per call after the download |
|
|
30
|
+
| `jev-hosted` | Jev, TypeSafe's hosted flagship decision model | TypeSafe's API, with **your own** key | per call, on your TypeSafe account |
|
|
31
|
+
| `jev-open` | the open JEV students (`autotrust/JEV-*`, Apache-2.0) on a vLLM server | your GPU server (24 GB or more) | $0 per call |
|
|
32
|
+
| `claude`, `ollama-llm` | a chat model asked for probabilities (a comparison baseline) | your Claude CLI / your Ollama | your plan / $0 |
|
|
33
|
+
|
|
34
|
+
A decision model reads the coin's facts once and scores every answer in one pass, without writing text. That is why it can be fast enough to score a whole screener.
|
|
35
|
+
|
|
36
|
+
The default is `heuristic`: dexterm downloads nothing and calls nothing on first run.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-classifier-where-it-plugs-in
|
|
3
|
+
title: Classification models › Where it plugs in
|
|
4
|
+
kind: docs
|
|
5
|
+
page: classifier
|
|
6
|
+
page_title: Classification models
|
|
7
|
+
heading: Where it plugs in
|
|
8
|
+
anchor: where-it-plugs-in
|
|
9
|
+
url: https://dexterm.xyz/docs/classifier#where-it-plugs-in
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- classifier
|
|
13
|
+
- where
|
|
14
|
+
- plugs
|
|
15
|
+
- classification
|
|
16
|
+
- models
|
|
17
|
+
confidence: high
|
|
18
|
+
owner: maintainers
|
|
19
|
+
origin: docs-generated
|
|
20
|
+
reviewed_by: generated@2026-10-16
|
|
21
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
22
|
+
sources:
|
|
23
|
+
- site/content/docs/classifier.md
|
|
24
|
+
date: 2026-10-16
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
- **Agents (MCP)**: `classify_coin` (one coin), `classify_batch` (up to 100 coins, with triage: flag, pass, or escalate the uncertain ones to Claude or to you) and `classifier_status`.
|
|
28
|
+
- **Watch rules**: the `rugp` field is the drain estimate of a coin the classifier has scored, for example `when rugp > 0.8 then alert(warn, "classifier: high drain estimate") scope watchlist`. A coin that has not been scored never matches.
|
|
29
|
+
- **Research**: the benchmark writes each coin's probabilities as columns, so entry-gate research can test them as one more input.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-classifier-which-model-for-which-machine
|
|
3
|
+
title: Classification models › Set up Kev on your own machine › Which model for which machine
|
|
4
|
+
kind: docs
|
|
5
|
+
page: classifier
|
|
6
|
+
page_title: Classification models
|
|
7
|
+
heading: Which model for which machine
|
|
8
|
+
anchor: which-model-for-which-machine
|
|
9
|
+
url: https://dexterm.xyz/docs/classifier#which-model-for-which-machine
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- classifier
|
|
13
|
+
- which
|
|
14
|
+
- model
|
|
15
|
+
- machine
|
|
16
|
+
- set
|
|
17
|
+
- kev
|
|
18
|
+
- own
|
|
19
|
+
- classification
|
|
20
|
+
- models
|
|
21
|
+
confidence: high
|
|
22
|
+
owner: maintainers
|
|
23
|
+
origin: docs-generated
|
|
24
|
+
reviewed_by: generated@2026-10-16
|
|
25
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
26
|
+
sources:
|
|
27
|
+
- site/content/docs/classifier.md
|
|
28
|
+
date: 2026-10-16
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
`dexterm classifier doctor` reads your RAM, CPU and GPU and suggests one of these:
|
|
32
|
+
|
|
33
|
+
| your machine | suggestion | what to expect |
|
|
34
|
+
|---|---|---|
|
|
35
|
+
| NVIDIA GPU with 12 GB or more | `kev-4b-q4` (`kev-9b-q4` also fits) | Kev 9B took about 0.1-0.2 s per coin on an RTX 4080 but scored no better than Kev 4B (see below) |
|
|
36
|
+
| NVIDIA GPU with 6 GB or more | `kev-4b-q4` (3 GB download) | |
|
|
37
|
+
| Apple Silicon with 16 GB or more | `kev-4b-q4` | |
|
|
38
|
+
| A CPU with 16 GB of RAM and 8 threads or more | `kev-4b-q4`, for one coin at a time | 5-20 s per coin measured on shared desktop CPUs: fine for a coin you open, too slow to score a whole screener |
|
|
39
|
+
| Anything smaller | the built-in scores | |
|
|
40
|
+
|
|
41
|
+
`kev-0.8b-q8` is in the list but not suggested: on dexterm's own history it ranked coins no better than chance.
|
|
42
|
+
Serving uses about 2.5 GB of RAM for the 0.8B model and about 5.5 GB for the 4B model; the 9B model used about 6.6 GB of GPU memory.
|