dexterm-cli 0.1.5 → 0.1.7
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/index.js +2 -0
- package/dist/packages/agents/src/schema.js +22 -1
- package/dist/packages/agents/src/spectator.js +54 -0
- package/dist/packages/agents/src/story.js +532 -0
- package/dist/packages/agents/src/tiers.js +28 -2
- package/dist/packages/agents/src/tools.js +31 -2
- package/dist/packages/autotrade/assets/exit-profile.schema.json +492 -0
- package/dist/packages/autotrade/assets/profiles/moonbag.json +46 -0
- package/dist/packages/autotrade/assets/profiles/runner.json +88 -0
- package/dist/packages/autotrade/assets/profiles/scalp.json +88 -0
- package/dist/packages/autotrade/assets/profiles/swing.json +88 -0
- package/dist/packages/autotrade/assets/strategies/moonbag.json +101 -0
- package/dist/packages/autotrade/assets/strategies/runner.json +101 -0
- package/dist/packages/autotrade/assets/strategies/sample-dip-ladder.json +188 -0
- package/dist/packages/autotrade/assets/strategies/scalp.json +98 -0
- package/dist/packages/autotrade/assets/strategies/swing.json +97 -0
- package/dist/packages/autotrade/assets/strategies/yolo.json +157 -0
- package/dist/packages/autotrade/assets/tapes/yolo-rehearsal.json +1 -0
- package/dist/packages/autotrade/src/account.js +74 -0
- package/dist/packages/autotrade/src/backtest.js +357 -0
- package/dist/packages/autotrade/src/basis-text.js +32 -0
- package/dist/packages/autotrade/src/chat/approvals.js +484 -0
- package/dist/packages/autotrade/src/chat/audit.js +140 -0
- package/dist/packages/autotrade/src/chat/config.js +93 -0
- package/dist/packages/autotrade/src/chat/connector.js +24 -0
- package/dist/packages/autotrade/src/chat/control.js +103 -0
- package/dist/packages/autotrade/src/chat/fake.js +100 -0
- package/dist/packages/autotrade/src/chat/format.js +71 -0
- package/dist/packages/autotrade/src/chat/hub.js +187 -0
- package/dist/packages/autotrade/src/chat/index.js +18 -0
- package/dist/packages/autotrade/src/chat/notify.js +292 -0
- package/dist/packages/autotrade/src/chat/pairing.js +46 -0
- package/dist/packages/autotrade/src/chat/redact.js +48 -0
- package/dist/packages/autotrade/src/chat/secrets.js +99 -0
- package/dist/packages/autotrade/src/chat/service.js +248 -0
- package/dist/packages/autotrade/src/chat/telegram.js +290 -0
- package/dist/packages/autotrade/src/desk-executor.js +188 -0
- package/dist/packages/autotrade/src/engine.js +387 -0
- package/dist/packages/autotrade/src/execution-port.js +97 -0
- package/dist/packages/autotrade/src/fleet-config.js +169 -0
- package/dist/packages/autotrade/src/fleet-control.js +276 -0
- package/dist/packages/autotrade/src/fleet.js +639 -0
- package/dist/packages/autotrade/src/index.js +53 -0
- package/dist/packages/autotrade/src/ledger.js +108 -0
- package/dist/packages/autotrade/src/live-source.js +182 -0
- package/dist/packages/autotrade/src/monitor-daemon.js +715 -0
- package/dist/packages/autotrade/src/monitor.js +190 -0
- package/dist/packages/autotrade/src/ollama-sessions.js +137 -0
- package/dist/packages/autotrade/src/paper-accounts.js +72 -0
- package/dist/packages/autotrade/src/replay.js +198 -0
- package/dist/packages/autotrade/src/runner-config.js +99 -0
- package/dist/packages/autotrade/src/runner.js +872 -0
- package/dist/packages/autotrade/src/safety.js +243 -0
- package/dist/packages/autotrade/src/session.js +269 -0
- package/dist/packages/autotrade/src/sessions.js +503 -0
- package/dist/packages/autotrade/src/store.js +250 -0
- package/dist/packages/autotrade/src/strategy.js +256 -0
- package/dist/packages/autotrade/src/trade-ledger.js +241 -0
- package/dist/packages/autotrade/src/yolo.js +140 -0
- package/dist/packages/cli/assets/claude/analyst-system.md +4 -4
- package/dist/packages/cli/assets/claude/plugin/skills/REGISTRY.json +1 -1
- package/dist/packages/cli/assets/claude/plugin/skills/larp-check/SKILL.md +15 -8
- package/dist/packages/cli/assets/claude/plugin/skills/token-dossier/SKILL.md +1 -1
- package/dist/packages/cli/src/agent-cmd.js +6 -4
- package/dist/packages/cli/src/agent-spectator.js +17 -1
- package/dist/packages/cli/src/ai-cmd.js +412 -0
- package/dist/packages/cli/src/analyst/backend.js +105 -15
- package/dist/packages/cli/src/analyst/codex.js +14 -9
- package/dist/packages/cli/src/analyst/larp-gauge.js +60 -0
- package/dist/packages/cli/src/analyst/ollama.js +263 -0
- package/dist/packages/cli/src/analyst/session.js +17 -3
- package/dist/packages/cli/src/app-help-gen.js +51 -15
- package/dist/packages/cli/src/autotrade-cmd/audit.js +57 -0
- package/dist/packages/cli/src/autotrade-cmd/backtest.js +199 -0
- package/dist/packages/cli/src/autotrade-cmd/flatten.js +64 -0
- package/dist/packages/cli/src/autotrade-cmd/fleet.js +397 -0
- package/dist/packages/cli/src/autotrade-cmd/requests.js +79 -0
- package/dist/packages/cli/src/autotrade-cmd/run.js +413 -0
- package/dist/packages/cli/src/autotrade-cmd/stop.js +76 -0
- package/dist/packages/cli/src/autotrade-cmd/strategies.js +198 -0
- package/dist/packages/cli/src/autotrade-cmd/strategy-control.js +174 -0
- package/dist/packages/cli/src/autotrade-cmd/telegram-host.js +101 -0
- package/dist/packages/cli/src/autotrade-cmd.js +168 -0
- package/dist/packages/cli/src/backtest-cmd.js +13 -2
- package/dist/packages/cli/src/display.js +208 -23
- package/dist/packages/cli/src/doctor.js +62 -3
- package/dist/packages/cli/src/export.js +10 -2
- package/dist/packages/cli/src/index.js +1 -1
- package/dist/packages/cli/src/ledger-cmd.js +288 -0
- package/dist/packages/cli/src/live/chart-fills.js +46 -0
- package/dist/packages/cli/src/live/dev-history.js +31 -15
- package/dist/packages/cli/src/live/index.js +28 -90
- package/dist/packages/cli/src/live/screens/newpairs-live.js +1 -1
- package/dist/packages/cli/src/live/screens/token-live.js +48 -15
- package/dist/packages/cli/src/live/screens/watchlist-live.js +1 -1
- package/dist/packages/cli/src/live/trade.js +30 -453
- package/dist/packages/cli/src/live/watchlist.js +1 -1
- package/dist/packages/cli/src/main.js +290 -199
- package/dist/packages/cli/src/mcp-cmd.js +7 -1
- package/dist/packages/cli/src/mcp-follow.js +103 -6
- package/dist/packages/cli/src/plan-cmd.js +15 -5
- package/dist/packages/cli/src/pnl-app.js +31 -21
- package/dist/packages/cli/src/pnl-card.js +158 -21
- package/dist/packages/cli/src/popup.js +38 -6
- package/dist/packages/cli/src/record-cmd.js +141 -20
- package/dist/packages/cli/src/scan/ui.js +7 -1
- package/dist/packages/cli/src/screens/agent-hud.js +773 -0
- package/dist/packages/cli/src/screens/analyst-session.js +11 -4
- package/dist/packages/cli/src/screens/analyst.js +3 -2
- package/dist/packages/cli/src/screens/autotrade-keys.js +169 -0
- package/dist/packages/cli/src/screens/autotrade-proposals.js +123 -0
- package/dist/packages/cli/src/screens/autotrade-screen.js +725 -0
- package/dist/packages/cli/src/screens/autotrade-ui.js +640 -0
- package/dist/packages/cli/src/screens/autotrade-worker.js +89 -0
- package/dist/packages/cli/src/screens/brain.js +634 -0
- package/dist/packages/cli/src/screens/newpairs.js +1 -1
- package/dist/packages/cli/src/screens/overlay.js +5 -2
- package/dist/packages/cli/src/screens/plans.js +5 -17
- package/dist/packages/cli/src/screens/pnl-chip.js +144 -0
- package/dist/packages/cli/src/screens/positions.js +6 -28
- package/dist/packages/cli/src/screens/screener.js +1 -0
- package/dist/packages/cli/src/screens/ticket.js +38 -205
- package/dist/packages/cli/src/screens/token.js +18 -9
- package/dist/packages/cli/src/screens/trending.js +1 -1
- package/dist/packages/cli/src/state.js +88 -18
- package/dist/packages/cli/src/telegram-cmd.js +451 -0
- package/dist/packages/cli/src/trade.js +3 -128
- package/dist/packages/cli/src/version.js +1 -1
- package/dist/packages/cli/src/wallet-cmd.js +39 -340
- package/dist/packages/cli/src/wallet-command.js +8 -11
- package/dist/packages/cli/src/widgets.js +0 -12
- package/dist/packages/custom/src/config.js +20 -2
- package/dist/packages/custom/src/schema.js +41 -10
- package/dist/packages/custom/src/workspace.js +3 -3
- package/dist/packages/data/src/basis.js +191 -0
- package/dist/packages/data/src/detail.js +53 -2
- package/dist/packages/data/src/index.js +2 -14
- package/dist/packages/data/src/larp/score.js +220 -0
- package/dist/packages/data/src/larp/x-account.js +316 -0
- package/dist/packages/data/src/store.js +14 -5
- package/dist/packages/data/src/trade/agent/paper-desk.js +300 -23
- package/dist/packages/data/src/trade/agent/rendezvous.js +3 -2
- package/dist/packages/data/src/trade/bridge.js +4 -102
- package/dist/packages/data/src/trade/ledger/export.js +101 -0
- package/dist/packages/data/src/trade/ledger/file.js +135 -0
- package/dist/packages/data/src/trade/ledger/fold.js +191 -0
- package/dist/packages/data/src/trade/ledger/index.js +9 -0
- package/dist/packages/data/src/trade/ledger/schema.js +83 -0
- package/dist/packages/data/src/trade/ledger/sources.js +307 -0
- package/dist/packages/data/src/trade/ledger/stats.js +123 -0
- package/dist/packages/data/src/trade/ledger/tags.js +116 -0
- package/dist/packages/data/src/trade/ledger/view.js +51 -0
- package/dist/packages/data/src/trade/plans/engine.js +7 -0
- package/dist/packages/data/src/trade/plans/index.js +0 -1
- package/dist/packages/data/src/trade/plans/mandate.js +28 -15
- package/dist/packages/data/src/trade/plans/service.js +4 -28
- package/dist/packages/mcp/assets/kb/app-help/autotrade-chat.md +48 -0
- package/dist/packages/mcp/assets/kb/app-help/autotrade-parallel.md +42 -0
- package/dist/packages/mcp/assets/kb/app-help/autotrade-runner.md +35 -0
- package/dist/packages/mcp/assets/kb/app-help/autotrade-stop.md +37 -0
- package/dist/packages/mcp/assets/kb/app-help/autotrade-strategies.md +35 -0
- package/dist/packages/mcp/assets/kb/app-help/autotrade-telegram.md +40 -0
- package/dist/packages/mcp/assets/kb/app-help/chart-trade-markers.md +42 -0
- package/dist/packages/mcp/assets/kb/app-help/dev-history.md +1 -1
- package/dist/packages/mcp/assets/kb/app-help/larp-check.md +5 -1
- package/dist/packages/mcp/assets/kb/app-help/link-a-wallet.md +4 -10
- package/dist/packages/mcp/assets/kb/app-help/live-trading.md +38 -0
- package/dist/packages/mcp/assets/kb/app-help/live-yolo.md +34 -0
- package/dist/packages/mcp/assets/kb/app-help/order-plans.md +1 -1
- package/dist/packages/mcp/assets/kb/app-help/price-or-marketcap.md +5 -2
- package/dist/packages/mcp/assets/kb/app-help/scan-mode.md +1 -1
- package/dist/packages/mcp/assets/kb/app-help/screen-analyst.md +3 -0
- package/dist/packages/mcp/assets/kb/app-help/screen-autotrade.md +217 -0
- package/dist/packages/mcp/assets/kb/app-help/screen-kol.md +3 -0
- package/dist/packages/mcp/assets/kb/app-help/screen-newpairs.md +3 -0
- package/dist/packages/mcp/assets/kb/app-help/screen-positions.md +3 -0
- package/dist/packages/mcp/assets/kb/app-help/screen-screener.md +3 -0
- package/dist/packages/mcp/assets/kb/app-help/screen-token.md +6 -0
- package/dist/packages/mcp/assets/kb/app-help/screen-trending.md +3 -0
- package/dist/packages/mcp/assets/kb/app-help/screen-watchlist.md +3 -0
- package/dist/packages/mcp/assets/kb/app-help/spectate-an-agent.md +2 -1
- package/dist/packages/mcp/assets/kb/app-help/standing-mandates.md +1 -1
- package/dist/packages/mcp/assets/kb/app-help/trade-ledger.md +54 -0
- package/dist/packages/mcp/assets/kb/app-help/use-local-model.md +38 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-agent-paper-trading.md +7 -3
- package/dist/packages/mcp/assets/kb/docs/docs-agents-reading-your-trade-ledger.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-untrusted-by-default.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-if-claude-is-missing.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-starting-a-run.md +2 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-use-a-local-model-instead.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-what-it-sees.md +2 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-backtests-and-their-limits.md +56 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-change-a-strategy-by-chat.md +49 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-checking-the-record-of-a-run.md +28 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-comparing-them.md +41 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-exits-and-wakes.md +76 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-how-a-stop-reaches-the-runner.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-on-the-q-screen.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-one-strategy-or-all-of-them.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-paper-accounts.md +50 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-presets.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-running-it-all-day.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-sessions-and-their-limits.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-several-strategies-at-once.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-stopping-it.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-strategies-and-presets.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-the-autotrade-json-file.md +48 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-the-heartbeat.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-the-run-file-and-the-heartbeat.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-the-runner-and-candidate-sessions.md +45 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-what-each-session-shows-first.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-what-it-costs-claude-usage-per-session.md +58 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-what-it-is-paper-self-directed.md +43 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-what-it-will-not-do.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-which-account-day-caps-and-the-usage-guard.md +44 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-your-strategies.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade.md +22 -0
- 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.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-chart-markers.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-chart-y-axis.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-environment-variables.md +4 -1
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-files-on-disk.md +1 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-headless-recorder-dexterm-record.md +3 -1
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-price-display-mode.md +9 -7
- package/dist/packages/mcp/assets/kb/docs/docs-copy-trading-stage-2-the-one-key-mirror-ticket-a-proposal.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-copy-trading-stage-3-capped-auto-mirror-default-off-less.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-copy-trading-what-is-proven-what-is-not.md +1 -1
- 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 +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-data-sources-sources.md +1 -0
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-first-run.md +1 -1
- 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 +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-running-the-tests.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-larp-measured-accuracy.md +1 -0
- package/dist/packages/mcp/assets/kb/docs/docs-larp-the-larp-score.md +60 -0
- package/dist/packages/mcp/assets/kb/docs/docs-larp-the-verdict.md +0 -2
- package/dist/packages/mcp/assets/kb/docs/docs-larp-what-it-looks-at.md +4 -1
- package/dist/packages/mcp/assets/kb/docs/docs-larp.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-live-trading-changed-in-0-1-7.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-live-trading-stopping.md +28 -0
- package/dist/packages/mcp/assets/kb/docs/docs-live-trading-the-short-version.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-live-trading-using-a-trading-bot-with-dexterm.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-live-trading-what-dexterm-does-not-do.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-live-trading-what-dexterm-does.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-live-trading.md +23 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-another-machine.md +28 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-autotrade-on-a-local-model.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-check-your-model-dexterm-ai-probe.md +38 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-how-we-checked.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-models-without-tool-calling.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-pick-the-engine-globally-or-per-surface.md +43 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-restriction-profiles.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-set-it-up-in-two-minutes.md +39 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-troubleshooting.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-what-runs-on-a-local-model.md +39 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-what-stays-outside-the-model.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-which-model.md +38 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-your-own-agent-on-the-local-model.md +28 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama.md +28 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-letting-an-agent-paper-trade-experimental.md +3 -4
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-link-a-wallet-read-only.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-order-plans-and-standing-mandates.md +4 -13
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-panic.md +4 -7
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-paper-only-mandates.md +40 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-pnl-cards.md +7 -7
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-safety-model.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-ticket.md +3 -4
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-trade-ledger.md +42 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-wallet.md +4 -5
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-trade-moments.md +4 -5
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading.md +4 -5
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-buy-and-sell-markers.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-market-cap-axis.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-what-it-shows.md +3 -1
- package/dist/packages/mcp/assets/kb/docs/docs-scan-the-read.md +2 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-autotrade-paper.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-dev-history.md +10 -7
- package/dist/packages/mcp/assets/kb/docs/docs-screens-order-plans.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-screens-token-screen.md +2 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-follow-over-mcp-in-the-running-terminal.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-limits.md +2 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-the-agent-hud-spectator-v2.md +58 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-the-brain-view-and-the-pnl-chip.md +46 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-the-three-surfaces.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-spectator.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-telegram-approve-one-tap-entries.md +50 -0
- package/dist/packages/mcp/assets/kb/docs/docs-telegram-control-the-commands.md +43 -0
- package/dist/packages/mcp/assets/kb/docs/docs-telegram-if-something-goes-wrong.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-telegram-notify-what-reaches-your-phone.md +41 -0
- package/dist/packages/mcp/assets/kb/docs/docs-telegram-set-it-up.md +47 -0
- package/dist/packages/mcp/assets/kb/docs/docs-telegram-the-record.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-telegram-what-it-is.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-telegram-what-it-will-not-do.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-telegram.md +23 -0
- package/dist/packages/mcp/assets/kb/docs/docs-troubleshooting-common-questions.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-troubleshooting-doctor-lines.md +4 -0
- package/dist/packages/mcp/assets/kb/docs/docs-voice-linux-and-windows.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-voice.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-yolo-1-replay-it-on-your-own-history.md +42 -0
- package/dist/packages/mcp/assets/kb/docs/docs-yolo-2-run-it-on-paper.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-yolo-3-watch-it-and-stop-it.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-yolo-the-rules.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-yolo-what-it-is.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-yolo-what-it-will-not-do.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-yolo.md +26 -0
- package/dist/packages/mcp/assets/kb/entries/autotrade.md +38 -0
- package/dist/packages/mcp/src/app-help.js +1 -1
- package/dist/packages/mcp/src/autotrade-tools.js +944 -0
- package/dist/packages/mcp/src/backtest-requests.js +71 -0
- package/dist/packages/mcp/src/engine/config.js +159 -0
- package/dist/packages/mcp/src/engine/index.js +10 -0
- package/dist/packages/mcp/src/engine/loop.js +101 -0
- package/dist/packages/mcp/src/engine/mcp-client.js +123 -0
- package/dist/packages/mcp/src/engine/ollama.js +258 -0
- package/dist/packages/mcp/src/engine/probe.js +110 -0
- package/dist/packages/mcp/src/engine/reason.js +35 -0
- package/dist/packages/mcp/src/engine/restrictions.js +111 -0
- package/dist/packages/mcp/src/index.js +7 -1
- package/dist/packages/mcp/src/ledger-tools.js +346 -0
- package/dist/packages/mcp/src/paper-agent.js +5 -2
- package/dist/packages/mcp/src/server.js +285 -36
- package/dist/packages/mcp/src/spectator-sink.js +85 -0
- package/dist/packages/packs/src/backtest.js +3 -1
- package/dist/packages/packs/src/index.js +1 -0
- package/dist/packages/packs/src/larp-score-backtest.js +119 -0
- package/dist/packages/popup/src/pages/chart-lib.js +169 -35
- package/dist/packages/popup/src/pages/chart.css +18 -0
- package/dist/packages/popup/src/pages/chart.html +6 -1
- package/dist/packages/popup/src/pages/chart.js +136 -10
- package/dist/packages/popup/src/pages/spectator.css +45 -0
- package/dist/packages/popup/src/pages/spectator.html +1 -0
- package/dist/packages/popup/src/pages/spectator.js +69 -0
- package/dist/packages/popup/src/protocol.js +4 -0
- package/dist/packages/popup/src/server.js +9 -1
- package/dist/packages/recorder/src/dev-history.js +7 -3
- package/dist/packages/recorder/src/index.js +2 -0
- package/dist/packages/recorder/src/recorder.js +63 -6
- package/dist/packages/recorder/src/retention.js +100 -0
- package/dist/packages/recorder/src/schema.js +34 -1
- package/dist/packages/recorder/src/ticks.js +237 -0
- package/dist/packages/tui/src/canvas.js +7 -0
- package/dist/packages/tui/src/fmt.js +53 -0
- package/dist/packages/tui/src/index.js +1 -0
- package/dist/packages/tui/src/keymap.js +25 -1
- package/dist/packages/tui/src/markers.js +219 -0
- package/dist/packages/tui/src/widgets.js +158 -6
- package/package.json +2 -1
- package/dist/packages/data/src/trade/caps.js +0 -323
- package/dist/packages/data/src/trade/executor.js +0 -933
- package/dist/packages/data/src/trade/plans/executor-live.js +0 -220
- package/dist/packages/data/src/trade/rpc-exec.js +0 -229
- package/dist/packages/data/src/trade/signer/client.js +0 -197
- package/dist/packages/data/src/trade/signer/fast-wallet.js +0 -154
- package/dist/packages/data/src/trade/signer/host.js +0 -97
- package/dist/packages/data/src/trade/signer/main.js +0 -121
- package/dist/packages/data/src/trade/signer/probe-builder.js +0 -85
- package/dist/packages/data/src/trade/signer/protocol.js +0 -92
- package/dist/packages/data/src/trade/signer/service.js +0 -400
- package/dist/packages/data/src/trade/signer/sol-usd-feed.js +0 -98
- package/dist/packages/data/src/trade/sol-usd.js +0 -86
- package/dist/packages/data/src/trade/swap-build.js +0 -108
- package/dist/packages/data/src/trade/token-delta.js +0 -201
- package/dist/packages/data/vendor/solana-web3/LICENSE +0 -20
- package/dist/packages/data/vendor/solana-web3/NOTICE.md +0 -13
- package/dist/packages/data/vendor/solana-web3/index.iife.min.js +0 -20
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-a-live-ticket.md +0 -42
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-before-you-press-size-vs-caps.md +0 -34
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-devnet-signer-mainnet-token.md +0 -35
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-jupiter-rate-limits.md +0 -33
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-link-a-wallet.md +0 -32
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-live-trading-devnet-first.md +0 -30
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-mainnet.md +0 -31
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-live-fire-path-devnet-the-fast-wallet.md +0 -41
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-signer-process.md +0 -34
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-what-the-live-path-keeps.md +0 -37
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-your-first-live-trade.md +0 -41
|
@@ -13,6 +13,15 @@ export const HARD = Object.freeze({
|
|
|
13
13
|
tipBudgetLamports: 500_000_000, maxTipLamportsPerTx: 10_000_000, maxPriorityFeeLamportsPerTx: 10_000_000,
|
|
14
14
|
ttlMs: 24 * 3600_000, maxSendsPerSec: 20,
|
|
15
15
|
});
|
|
16
|
+
/**
|
|
17
|
+
* task-1469: ceilings for a PAPER-ONLY mandate (`dexterm mandate draft --paper`). Only the agent paper desk reads
|
|
18
|
+
* one: the plan engine refuses to arm a plan into it, fire under it or copy-trade through it, so these numbers never
|
|
19
|
+
* reach a signer, and HARD (above) stays the ceiling of every mandate a real fill can use. Fills are still priced
|
|
20
|
+
* on a live quote, so a bigger paper size pays its real price impact.
|
|
21
|
+
*/
|
|
22
|
+
export const PAPER_HARD = Object.freeze({
|
|
23
|
+
...HARD, totalUsd: 10_000, perTradeUsd: 2_000, perCoinUsd: 2_000, dailyLossUsd: 10_000, maxPriceImpactPct: 10,
|
|
24
|
+
});
|
|
16
25
|
/** Confirmation tiers and the multiplier they apply to a mandate's per-trade cap for plans confirmed that way. */
|
|
17
26
|
export const TIERS = Object.freeze({
|
|
18
27
|
'keypress': { rank: 0, perTradeMultiplier: 1.0, canArmMandate: true, canArmBatch: true },
|
|
@@ -37,6 +46,8 @@ function clamp(v, dflt, hardMax) {
|
|
|
37
46
|
export function draftMandate(input, ctx) {
|
|
38
47
|
const x = input ?? {};
|
|
39
48
|
const now = ctx.clock.now();
|
|
49
|
+
const paper = x.paperOnly === true;
|
|
50
|
+
const H = paper ? PAPER_HARD : HARD;
|
|
40
51
|
const actions = Array.isArray(x.actions) ? x.actions.filter((a) => a === 'buy' || a === 'sell') : ['buy', 'sell'];
|
|
41
52
|
if (actions.length === 0)
|
|
42
53
|
throw new MandateError('bad-request', 'at least one of buy/sell');
|
|
@@ -45,23 +56,23 @@ export function draftMandate(input, ctx) {
|
|
|
45
56
|
id: ctx.id ?? `mandate_${now.toString(36)}_${Math.random().toString(36).slice(2, 8)}`,
|
|
46
57
|
wallet: 'fast', // the capped fast wallet; the main wallet is never named here
|
|
47
58
|
budget: {
|
|
48
|
-
totalUsd: clamp(x.totalUsd, 100,
|
|
49
|
-
perTradeUsd: clamp(x.perTradeUsd, 20,
|
|
50
|
-
perCoinUsd: clamp(x.perCoinUsd, 40,
|
|
51
|
-
dailyLossUsd: clamp(x.dailyLossUsd, 50,
|
|
59
|
+
totalUsd: clamp(x.totalUsd, 100, H.totalUsd),
|
|
60
|
+
perTradeUsd: clamp(x.perTradeUsd, 20, H.perTradeUsd),
|
|
61
|
+
perCoinUsd: clamp(x.perCoinUsd, 40, H.perCoinUsd),
|
|
62
|
+
dailyLossUsd: clamp(x.dailyLossUsd, 50, H.dailyLossUsd),
|
|
52
63
|
},
|
|
53
64
|
limits: {
|
|
54
|
-
maxArmedPlans: clamp(x.maxArmedPlans, 20,
|
|
55
|
-
maxInFlight: clamp(x.maxInFlight, 5,
|
|
56
|
-
maxOpenPositions: clamp(x.maxOpenPositions, 20,
|
|
57
|
-
maxSlippageBps: clamp(x.maxSlippageBps, 500,
|
|
58
|
-
maxPriceImpactPct: clamp(x.maxPriceImpactPct, 3,
|
|
59
|
-
maxSendsPerSec: clamp(x.maxSendsPerSec, 5,
|
|
65
|
+
maxArmedPlans: clamp(x.maxArmedPlans, 20, H.maxArmedPlans),
|
|
66
|
+
maxInFlight: clamp(x.maxInFlight, 5, H.maxInFlight),
|
|
67
|
+
maxOpenPositions: clamp(x.maxOpenPositions, 20, H.maxOpenPositions),
|
|
68
|
+
maxSlippageBps: clamp(x.maxSlippageBps, 500, H.maxSlippageBps),
|
|
69
|
+
maxPriceImpactPct: clamp(x.maxPriceImpactPct, 3, H.maxPriceImpactPct),
|
|
70
|
+
maxSendsPerSec: clamp(x.maxSendsPerSec, 5, H.maxSendsPerSec),
|
|
60
71
|
},
|
|
61
72
|
fees: {
|
|
62
|
-
tipBudgetLamports: clamp(x.tipBudgetLamports, 50_000_000,
|
|
63
|
-
maxTipLamportsPerTx: clamp(x.maxTipLamportsPerTx, 1_000_000,
|
|
64
|
-
maxPriorityFeeLamportsPerTx: clamp(x.maxPriorityFeeLamportsPerTx, 2_000_000,
|
|
73
|
+
tipBudgetLamports: clamp(x.tipBudgetLamports, 50_000_000, H.tipBudgetLamports),
|
|
74
|
+
maxTipLamportsPerTx: clamp(x.maxTipLamportsPerTx, 1_000_000, H.maxTipLamportsPerTx),
|
|
75
|
+
maxPriorityFeeLamportsPerTx: clamp(x.maxPriorityFeeLamportsPerTx, 2_000_000, H.maxPriorityFeeLamportsPerTx),
|
|
65
76
|
},
|
|
66
77
|
allowed: {
|
|
67
78
|
actions,
|
|
@@ -70,8 +81,9 @@ export function draftMandate(input, ctx) {
|
|
|
70
81
|
},
|
|
71
82
|
maxTier: (typeof x.maxTier === 'string' && x.maxTier in TIERS) ? x.maxTier : 'keypress',
|
|
72
83
|
createdAt: now,
|
|
73
|
-
expiresAt: now + clamp(x.ttlMs, 4 * 3600_000,
|
|
84
|
+
expiresAt: now + clamp(x.ttlMs, 4 * 3600_000, H.ttlMs),
|
|
74
85
|
status: 'draft', armedAt: null, armedBy: null, revokedAt: null, revokedReason: null,
|
|
86
|
+
...(paper ? { paperOnly: true } : {}),
|
|
75
87
|
};
|
|
76
88
|
// perTrade can never exceed total; perCoin never exceeds total.
|
|
77
89
|
m.budget.perTradeUsd = Math.min(m.budget.perTradeUsd, m.budget.totalUsd);
|
|
@@ -117,7 +129,8 @@ export function revokeMandate(m, reason, ctx) {
|
|
|
117
129
|
}
|
|
118
130
|
/** Hash of the caps a gesture arms — the proof binds to these numbers, not to the mandate id alone. */
|
|
119
131
|
export function capsHash(m) {
|
|
120
|
-
|
|
132
|
+
// task-1469: the paper-only flag is part of what a gesture arms; a normal mandate hashes exactly as before.
|
|
133
|
+
return createHash('sha256').update(JSON.stringify({ b: m.budget, l: m.limits, f: m.fees, a: m.allowed, t: m.maxTier, e: m.expiresAt, w: m.wallet, ...(m.paperOnly === true ? { p: 1 } : {}) })).digest('hex').slice(0, 16);
|
|
121
134
|
}
|
|
122
135
|
/** Alive = armed and not expired. Expiry is checked on every call, never cached. */
|
|
123
136
|
export function mandateAlive(m, now) {
|
|
@@ -66,38 +66,14 @@ export class PlanService {
|
|
|
66
66
|
this.gate = new ConfirmGate({ clock: this.clock, journal: this.journal, settings: this.settings, rng: opts.rng });
|
|
67
67
|
this.paper = opts.executor ?? new PaperPlanExecutor({ clock: this.clock, solUsd: opts.solUsd });
|
|
68
68
|
const deps = { clock: this.clock, journal: this.journal, executor: this.paper, gate: this.gate, safety: opts.safety, priceMaxAgeMs: opts.priceMaxAgeMs, debounceTicks: opts.debounceTicks };
|
|
69
|
-
// Recover from an existing journal (replay + settle in-flight) or start fresh. The fire path
|
|
70
|
-
//
|
|
69
|
+
// Recover from an existing journal (replay + settle in-flight) or start fresh. The fire path is PAPER
|
|
70
|
+
// (task-1571: there is no live executor in the build; dexterm holds no key).
|
|
71
71
|
this.engine = path && existsSync(path) ? PlanEngine.recover(deps) : new PlanEngine(deps);
|
|
72
72
|
}
|
|
73
|
-
/** The executor the engine fires through
|
|
73
|
+
/** The executor the engine fires through (the paper executor unless a test injects one). */
|
|
74
74
|
get executor() { return this.engine.executor; }
|
|
75
75
|
/** 'paper' unless a live executor is installed. Surfaces that cannot prove 'paper' must render LIVE. */
|
|
76
76
|
mode() { return this.engine.executor.kind === 'live' ? 'live' : 'paper'; }
|
|
77
|
-
// ── the fire path (task-1363). Switching to LIVE is a physical keypress on the plans screen (never voice,
|
|
78
|
-
// an agent, a pipe or the popup): the gesture is required here AND the signer only fills from a fast wallet
|
|
79
|
-
// that was itself created by a TTY keypress. A switch while plans are armed/filled would strand their legs on
|
|
80
|
-
// the other executor's ledger, so both directions refuse until those plans are cancelled or finished. ──
|
|
81
|
-
useLive(executor, gesture) {
|
|
82
|
-
if (gesture?.gesture !== 'keypress')
|
|
83
|
-
throw new ConfirmError('live-needs-keypress', 'switching plan fills to LIVE needs a physical keypress');
|
|
84
|
-
if (executor.kind !== 'live')
|
|
85
|
-
throw new PlanError('bad-request', 'useLive needs a live executor');
|
|
86
|
-
const open = this.engine.openPlans();
|
|
87
|
-
if (open.length)
|
|
88
|
-
throw new PolicyRefusal('open-plans', `cancel or finish ${open.length} open plan(s) before switching the fire path`);
|
|
89
|
-
this.engine.replaceExecutor(executor);
|
|
90
|
-
this.journal.append('settings.executor', { data: { kind: 'live', network: 'devnet', by: 'keypress', label: executor.describe?.() ?? 'live' } });
|
|
91
|
-
}
|
|
92
|
-
usePaper() {
|
|
93
|
-
if (this.engine.executor === this.paper)
|
|
94
|
-
return;
|
|
95
|
-
const open = this.engine.openPlans();
|
|
96
|
-
if (open.length)
|
|
97
|
-
throw new PolicyRefusal('open-plans', `cancel or finish ${open.length} open plan(s) before switching the fire path`);
|
|
98
|
-
this.engine.replaceExecutor(this.paper);
|
|
99
|
-
this.journal.append('settings.executor', { data: { kind: 'paper' } });
|
|
100
|
-
}
|
|
101
77
|
// ── proposals (voice/claude/user/batch all land here; a proposal is inert until armed) ──
|
|
102
78
|
propose(input, ctx) {
|
|
103
79
|
return this.engine.propose(input, { supply: ctx.supply, by: ctx.by ?? 'user', ref: ctx.ref ?? null });
|
|
@@ -149,7 +125,7 @@ export class PlanService {
|
|
|
149
125
|
return {
|
|
150
126
|
id: x.m.id, status: x.m.status, wallet: x.m.wallet, totalUsd: x.m.budget.totalUsd, perTradeUsd: x.m.budget.perTradeUsd,
|
|
151
127
|
perCoinUsd: x.m.budget.perCoinUsd, maxTier: x.m.maxTier, reservedUsd: L.reservedUsd, spentUsd: L.spentUsd,
|
|
152
|
-
realizedUsd: L.realizedUsd, lossUsd: L.lossUsd, expiresAt: x.m.expiresAt,
|
|
128
|
+
realizedUsd: L.realizedUsd, lossUsd: L.lossUsd, expiresAt: x.m.expiresAt, paperOnly: x.m.paperOnly === true,
|
|
153
129
|
};
|
|
154
130
|
});
|
|
155
131
|
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: autotrade-chat
|
|
3
|
+
title: Change an autotrade strategy by chat (paper)
|
|
4
|
+
kind: app-help
|
|
5
|
+
screen: autotrade
|
|
6
|
+
feature: autotrade-chat
|
|
7
|
+
tags:
|
|
8
|
+
- app-help
|
|
9
|
+
- autotrade
|
|
10
|
+
- strategy
|
|
11
|
+
- chat
|
|
12
|
+
- analyst
|
|
13
|
+
- proposal
|
|
14
|
+
- tune
|
|
15
|
+
- change
|
|
16
|
+
- diff
|
|
17
|
+
- looser
|
|
18
|
+
- less
|
|
19
|
+
- safe
|
|
20
|
+
keys:
|
|
21
|
+
- a
|
|
22
|
+
- o
|
|
23
|
+
actions:
|
|
24
|
+
- analyst.toggle
|
|
25
|
+
- autotrade.proposal
|
|
26
|
+
tools:
|
|
27
|
+
- strategy_list
|
|
28
|
+
- strategy_get
|
|
29
|
+
- strategy_validate
|
|
30
|
+
- strategy_propose_edit
|
|
31
|
+
- strategy_propose_new
|
|
32
|
+
- strategy_backtest
|
|
33
|
+
- autotrade_status
|
|
34
|
+
confidence: high
|
|
35
|
+
owner: maintainers
|
|
36
|
+
origin: app-help-generated
|
|
37
|
+
reviewed_by: generated@2026-10-16
|
|
38
|
+
generated_from: dexterm/app keymap + overlay + mcp tools + cli (task-1413)
|
|
39
|
+
sources:
|
|
40
|
+
- packages/tui/src/keymap.ts
|
|
41
|
+
- packages/cli/src/main.ts
|
|
42
|
+
- packages/mcp/src/server.ts
|
|
43
|
+
date: 2026-10-16
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
Ask the analyst to change one of your strategies ("make my swing exit faster"). It can only PROPOSE: the change arrives as a card on the AUTOTRADE screen (`Q`) with the field lines that change, the validation result and TIGHTER, NEUTRAL or LOOSER. `o` opens the card, `y` applies it as a new version (journaled with who proposed it), `n` dismisses it. When any risk number gets less safe (bigger size or exposure, more loss, a stop or safety gate removed) the edit is LOOSER and needs a second `y` on the less-safe popup. The mode, the book, the daily session budget and the exit-liquidity floor are yours only: the analyst cannot change them. It can backtest a proposal next to the current version on your recorded history (up to 14 days, read-only). Paper only.
|
|
47
|
+
|
|
48
|
+
Keys: `a`, `o` (autotrade).
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: autotrade-parallel
|
|
3
|
+
title: Run several autotrade strategies at once on paper (dexterm autotrade run --all)
|
|
4
|
+
kind: app-help
|
|
5
|
+
screen: all
|
|
6
|
+
feature: autotrade-parallel
|
|
7
|
+
tags:
|
|
8
|
+
- app-help
|
|
9
|
+
- autotrade
|
|
10
|
+
- parallel
|
|
11
|
+
- several
|
|
12
|
+
- multiple
|
|
13
|
+
- strategies
|
|
14
|
+
- compare
|
|
15
|
+
- side
|
|
16
|
+
- forward
|
|
17
|
+
- test
|
|
18
|
+
- bankroll
|
|
19
|
+
- fleet
|
|
20
|
+
- autotrade.json
|
|
21
|
+
commands:
|
|
22
|
+
- autotrade
|
|
23
|
+
tools:
|
|
24
|
+
- autotrade_parallel_list
|
|
25
|
+
- autotrade_parallel_compare
|
|
26
|
+
- autotrade_parallel_start
|
|
27
|
+
- autotrade_parallel_stop
|
|
28
|
+
confidence: high
|
|
29
|
+
owner: maintainers
|
|
30
|
+
origin: app-help-generated
|
|
31
|
+
reviewed_by: generated@2026-10-16
|
|
32
|
+
generated_from: dexterm/app keymap + overlay + mcp tools + cli (task-1413)
|
|
33
|
+
sources:
|
|
34
|
+
- packages/tui/src/keymap.ts
|
|
35
|
+
- packages/cli/src/main.ts
|
|
36
|
+
- packages/mcp/src/server.ts
|
|
37
|
+
date: 2026-10-16
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
`dexterm autotrade run --all --paper` runs every strategy listed in ~/.dexterm/autotrade/autotrade.json at the same time on one data feed, to forward-test several ideas side by side. Each entry has an `id`, a `preset` (a shipped preset or your own strategy) or an absolute `file`, a `bankroll` in USD or SOL, optional `caps` that can only tighten it, and `enabled`. Each strategy gets its own paper book, run file, loss limits and breaker, sessions and model spend budget; a breaker or a stop on one never stops another. The screener fetches once for all of them, and the `global` limits (sessions open at once, model spend and sessions per day, one check of how busy the computer is) count across all of them. `dexterm autotrade status --all` and the runner view on the AUTOTRADE screen (`Q`) compare them: P/L, win rate with the closed count, rug exits and exposure, missed runners, spend per entry. `dexterm autotrade stop|flatten|pause|resume` act on every strategy; add `--strategy ID` to act on one, and `dexterm autotrade start ID` starts a listed one that is not running. An MCP agent can list and compare them and start or stop one listed strategy, never add one or change a size or a cap. Paper only: live is refused. Not financial advice. Full docs: https://dexterm.xyz/docs/autotrade/#several-strategies-at-once
|
|
41
|
+
|
|
42
|
+
CLI: `dexterm autotrade`.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: autotrade-runner
|
|
3
|
+
title: The autotrade paper runner and candidate sessions (dexterm autotrade run)
|
|
4
|
+
kind: app-help
|
|
5
|
+
screen: all
|
|
6
|
+
feature: autotrade-runner
|
|
7
|
+
tags:
|
|
8
|
+
- app-help
|
|
9
|
+
- autotrade
|
|
10
|
+
- runner
|
|
11
|
+
- run
|
|
12
|
+
- candidate
|
|
13
|
+
- session
|
|
14
|
+
- sessions
|
|
15
|
+
- agent
|
|
16
|
+
- replay
|
|
17
|
+
- ledger
|
|
18
|
+
- runner.json
|
|
19
|
+
commands:
|
|
20
|
+
- autotrade
|
|
21
|
+
confidence: high
|
|
22
|
+
owner: maintainers
|
|
23
|
+
origin: app-help-generated
|
|
24
|
+
reviewed_by: generated@2026-10-16
|
|
25
|
+
generated_from: dexterm/app keymap + overlay + mcp tools + cli (task-1413)
|
|
26
|
+
sources:
|
|
27
|
+
- packages/tui/src/keymap.ts
|
|
28
|
+
- packages/cli/src/main.ts
|
|
29
|
+
- packages/mcp/src/server.ts
|
|
30
|
+
date: 2026-10-16
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
`dexterm autotrade run <id|file> --paper` runs one strategy on paper, headless, one runner per machine: the screener feeds it the same live data as the app (every 10 s, candidate and held coins every 5 s), and each coin that matches gets one session on your own Claude login with the full picture first, then only what changed. Your agent answers with a typed decision (enter, wait, skip, hold, exit, tighten, reprofile); every size is clamped by your strategy and the exits run on their own. At most 2 sessions at once, $0.50 per session and the day caps in ~/.dexterm/autotrade/runner.json (which Claude account, sessions and spend per day, a usage guard). Every step goes to ~/.dexterm/autotrade/runs/<run>.jsonl, hash-chained. `--replay FILE` paces a recorded tape instead of live data; `--stub` uses a scripted agent with no Claude cost. Paper only: a run never signs or touches a wallet, and there is no `--live` (dexterm holds no key and places no live order). Not financial advice. Full docs: https://dexterm.xyz/docs/autotrade/#the-runner-and-candidate-sessions
|
|
34
|
+
|
|
35
|
+
CLI: `dexterm autotrade`.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: autotrade-stop
|
|
3
|
+
title: Stop, flatten or audit the autotrade paper runner (dexterm autotrade stop|flatten|audit)
|
|
4
|
+
kind: app-help
|
|
5
|
+
screen: all
|
|
6
|
+
feature: autotrade-runner
|
|
7
|
+
tags:
|
|
8
|
+
- app-help
|
|
9
|
+
- autotrade
|
|
10
|
+
- stop
|
|
11
|
+
- kill
|
|
12
|
+
- halt
|
|
13
|
+
- flatten
|
|
14
|
+
- sell
|
|
15
|
+
- pause
|
|
16
|
+
- panic
|
|
17
|
+
- audit
|
|
18
|
+
- verify
|
|
19
|
+
- ledger
|
|
20
|
+
- resume
|
|
21
|
+
commands:
|
|
22
|
+
- autotrade
|
|
23
|
+
confidence: high
|
|
24
|
+
owner: maintainers
|
|
25
|
+
origin: app-help-generated
|
|
26
|
+
reviewed_by: generated@2026-10-16
|
|
27
|
+
generated_from: dexterm/app keymap + overlay + mcp tools + cli (task-1413)
|
|
28
|
+
sources:
|
|
29
|
+
- packages/tui/src/keymap.ts
|
|
30
|
+
- packages/cli/src/main.ts
|
|
31
|
+
- packages/mcp/src/server.ts
|
|
32
|
+
date: 2026-10-16
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
`dexterm autotrade stop` is a soft stop of the paper runner: no new entries, every session closed, pending orders dropped, and the mechanical exits (stops, take-profits, trails, rug exits) keep running until nothing is held; then the runner ends. `dexterm autotrade flatten` stops it and sells every paper position at its next tick (a coin that cannot sell is retried every tick); it asks for y on a real terminal, or takes --yes. On the AUTOTRADE screen (`Q`): `!` stops, `p` pauses or resumes new entries, `f` then y flattens. A stop is final for that run. `dexterm wallet panic` is the harder switch: the runner reads it every step, a new run will not start while it is on, and only `dexterm wallet resume` on a real terminal lifts it. `dexterm autotrade audit --verify` recomputes the hash chain of every run file in ~/.dexterm/autotrade/runs/ and names the first edited, missing or reordered line. Paper only; your agent cannot stop, resume or flatten anything. Not financial advice. Full docs: https://dexterm.xyz/docs/autotrade/#stopping-it
|
|
36
|
+
|
|
37
|
+
CLI: `dexterm autotrade`.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: autotrade-strategies
|
|
3
|
+
title: Autotrade strategies on paper (dexterm autotrade)
|
|
4
|
+
kind: app-help
|
|
5
|
+
screen: all
|
|
6
|
+
feature: autotrade-strategies
|
|
7
|
+
tags:
|
|
8
|
+
- app-help
|
|
9
|
+
- autotrade
|
|
10
|
+
- strategy
|
|
11
|
+
- strategies
|
|
12
|
+
- preset
|
|
13
|
+
- presets
|
|
14
|
+
- moonbag
|
|
15
|
+
- scalp
|
|
16
|
+
- swing
|
|
17
|
+
- sweep
|
|
18
|
+
- held-out
|
|
19
|
+
commands:
|
|
20
|
+
- autotrade
|
|
21
|
+
confidence: high
|
|
22
|
+
owner: maintainers
|
|
23
|
+
origin: app-help-generated
|
|
24
|
+
reviewed_by: generated@2026-10-16
|
|
25
|
+
generated_from: dexterm/app keymap + overlay + mcp tools + cli (task-1413)
|
|
26
|
+
sources:
|
|
27
|
+
- packages/tui/src/keymap.ts
|
|
28
|
+
- packages/cli/src/main.ts
|
|
29
|
+
- packages/mcp/src/server.ts
|
|
30
|
+
date: 2026-10-16
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
`dexterm autotrade list|validate|new|import|remove|journal` manages strategy files in ~/.dexterm/strategies (one validated JSON file each, every change in an append-only journal); the presets scalp, swing, runner, moonbag, sample-dip-ladder and yolo (HIGH RISK, see the yolo entry) are read-only, copy one with `dexterm autotrade new <id> --from <preset>`. `dexterm autotrade backtest <id>` replays a strategy over your recorded history with modelled fills and always prints the limits of the data (`--every-candidate`, `--recall 5,10` for tail strategies); `dexterm autotrade sweep <id>` tunes on older coins and checks once on the newest 30% it never saw, with no gain wording unless both halves have 20+ trades and the held-out net is positive. Paper only: a strategy cannot hold a key, wallet or signer section, and a copy in mode live does not run (dexterm holds no key and places no live order). Not financial advice. Full docs: https://dexterm.xyz/docs/autotrade/
|
|
34
|
+
|
|
35
|
+
CLI: `dexterm autotrade`.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: autotrade-telegram
|
|
3
|
+
title: Your own Telegram bot for the autotrade runner: notify, control, one-tap approvals (dexterm telegram)
|
|
4
|
+
kind: app-help
|
|
5
|
+
screen: all
|
|
6
|
+
feature: autotrade-telegram
|
|
7
|
+
tags:
|
|
8
|
+
- app-help
|
|
9
|
+
- telegram
|
|
10
|
+
- bot
|
|
11
|
+
- phone
|
|
12
|
+
- mobile
|
|
13
|
+
- notify
|
|
14
|
+
- notifications
|
|
15
|
+
- approve
|
|
16
|
+
- approval
|
|
17
|
+
- approvals
|
|
18
|
+
- pair
|
|
19
|
+
- pairing
|
|
20
|
+
- kill
|
|
21
|
+
- pause
|
|
22
|
+
- remote
|
|
23
|
+
- botfather
|
|
24
|
+
commands:
|
|
25
|
+
- telegram
|
|
26
|
+
confidence: high
|
|
27
|
+
owner: maintainers
|
|
28
|
+
origin: app-help-generated
|
|
29
|
+
reviewed_by: generated@2026-10-16
|
|
30
|
+
generated_from: dexterm/app keymap + overlay + mcp tools + cli (task-1413)
|
|
31
|
+
sources:
|
|
32
|
+
- packages/tui/src/keymap.ts
|
|
33
|
+
- packages/cli/src/main.ts
|
|
34
|
+
- packages/mcp/src/server.ts
|
|
35
|
+
date: 2026-10-16
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
Create a bot with @BotFather, then run `dexterm telegram setup`: paste the token at the hidden prompt (never as an argument), dexterm checks it and keeps it in your keychain (or the system keyring, or a 0600 file), then shows a 6-digit code; send `/pair <code>` to your bot from your own private chat and confirm the account it shows (@username and id) with `y` on your computer. Pairing is refused while a webhook or another program polls the bot. Only that account in that chat is answered. `dexterm autotrade run <id> --paper` then starts the bot by itself (`--no-telegram` keeps it off): entries, exits, PnL cards, halts and a daily summary reach your phone; `/status`, `/positions`, `/pause`, `/resume` (a pause only), `/kill`, `/flatten` and `/use` (each after a confirm button, `/use` only to an equal-or-tighter strategy; a change it cannot rank counts as looser) and `/approvals on` work from chat, which can make things safer and never less safe. With `entry.decide: "agent+approve"` or approvals on, every entry is a card with [Approve] [Half size] [Skip]: only a button approves, once, for that proposal, your account and your private chat; the price and your limits are checked again at the tap; no answer is a skip. Typed messages are never trades. `dexterm telegram status|test|audit --verify|revoke`. Nothing is hosted; paper only; never send keys or seed phrases in chat. Not financial advice. Full docs: https://dexterm.xyz/docs/telegram/
|
|
39
|
+
|
|
40
|
+
CLI: `dexterm telegram`.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: chart-trade-markers
|
|
3
|
+
title: See your buys and sells on the chart (B / S markers)
|
|
4
|
+
kind: app-help
|
|
5
|
+
screen: token
|
|
6
|
+
feature: chart-trade-markers
|
|
7
|
+
tags:
|
|
8
|
+
- app-help
|
|
9
|
+
- markers
|
|
10
|
+
- marker
|
|
11
|
+
- buy
|
|
12
|
+
- sell
|
|
13
|
+
- bought
|
|
14
|
+
- sold
|
|
15
|
+
- fills
|
|
16
|
+
- fill
|
|
17
|
+
- entry
|
|
18
|
+
- exit
|
|
19
|
+
- trades
|
|
20
|
+
- chart
|
|
21
|
+
- avg
|
|
22
|
+
- average
|
|
23
|
+
- paper
|
|
24
|
+
- live
|
|
25
|
+
- arrows
|
|
26
|
+
commands:
|
|
27
|
+
- display
|
|
28
|
+
confidence: high
|
|
29
|
+
owner: maintainers
|
|
30
|
+
origin: app-help-generated
|
|
31
|
+
reviewed_by: generated@2026-10-16
|
|
32
|
+
generated_from: dexterm/app keymap + overlay + mcp tools + cli (task-1413)
|
|
33
|
+
sources:
|
|
34
|
+
- packages/tui/src/keymap.ts
|
|
35
|
+
- packages/cli/src/main.ts
|
|
36
|
+
- packages/mcp/src/server.ts
|
|
37
|
+
date: 2026-10-16
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
Every fill of the open coin from your paper ledger (your own and an agent's PAPER trades) and the live ledger (confirmed real swaps) is marked on the token screen's chart and the chart popup, on every timeframe: `B` for a buy and `S` for a sell, at the fill's time and price. Hollow `△ ▽` = PAPER, solid `▲ ▼` = live, so it reads without colour too. Each partial sell gets its own marker (several in one bar show a count), a dashed `avg` line marks the average entry while the position is open, and a closed round trip gets a faint wash from entry to exit. A fill outside the candles on screen is not moved: the chart says how many are off-chart. In the popup, hover a marker for its time, price, size and ledger; `k` or the **MARKERS** button turns them off or on for both charts (saved as `display.chartMarkers`; also `dexterm display markers on|off`). Display only: no marker can arm, size, sign or confirm anything, and nothing is fetched to draw them.
|
|
41
|
+
|
|
42
|
+
CLI: `dexterm display`.
|
|
@@ -29,4 +29,4 @@ sources:
|
|
|
29
29
|
date: 2026-10-16
|
|
30
30
|
---
|
|
31
31
|
|
|
32
|
-
The token screen's ON-CHAIN panel shows the creator's recorded track record (0.1.5): `Dev rugs
|
|
32
|
+
The token screen's ON-CHAIN panel shows the creator's recorded track record (0.1.5): `Dev rugs` (rugs out of labelled prior launches, e.g. `2/3 · n=3 · rec 7d`), `Dev launches` (`n=3 · rec 2h · dev:jup`: which feed named the creator), `Dev sold bag` (median minutes to the dev's exit, `med 20m · n=3 · rec 1d`), `Dev linked` (funder or cluster from the wallet-intel scan, with the scan's age) and `Linked dev rugs` (rugs by other wallets in that cluster). Every value names its source (`rec` = the recorder, `scan` = the wallet-intel scan), its sample (n=) and the age of its newest datum. It comes from dexterm's own local history recorder (keyless creator links + code-only outcome labels), so it says `unknown` when there is no record; it is a risk flag from observed history, never a certificate. Alert on it with the rule field `devrugs`, e.g. `when devrugs >= 2 then alert(warn, "new coin from a wallet that rugged before") scope newpairs`. Agents and the analyst use the `dev_history` MCP tool.
|
|
@@ -15,12 +15,16 @@ tags:
|
|
|
15
15
|
- domain
|
|
16
16
|
- github
|
|
17
17
|
- vet
|
|
18
|
+
- score
|
|
19
|
+
- x
|
|
20
|
+
- twitter
|
|
18
21
|
tools:
|
|
19
22
|
- larp_check
|
|
20
23
|
- get_links
|
|
21
24
|
- fetch_page
|
|
22
25
|
- check_domain
|
|
23
26
|
- check_github
|
|
27
|
+
- check_x
|
|
24
28
|
confidence: high
|
|
25
29
|
owner: maintainers
|
|
26
30
|
origin: app-help-generated
|
|
@@ -33,4 +37,4 @@ sources:
|
|
|
33
37
|
date: 2026-10-16
|
|
34
38
|
---
|
|
35
39
|
|
|
36
|
-
The LARP check vets whether a real product exists (website, domain age, GitHub) read-only — it is not a price call. Ask the analyst "is <coin> a larp?" (skill `larp-check`), or an agent can call the `larp_check` MCP tool. A
|
|
40
|
+
The LARP check vets whether a real product exists (website, domain age, GitHub, the X account) read-only — it is not a price call. Ask the analyst "is <coin> a larp?" (skill `larp-check`), or an agent can call the `larp_check` MCP tool. It returns a 0-100 LARP score: the sum of named flags with their points (low under 25, medium 25-49, high 50+), plus a list of what could not be read, which widens the range instead of lowering the score. A score is a summary of flags, never a certificate; it never recommends buy/sell.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: link-a-wallet
|
|
3
|
-
title: Link a wallet
|
|
3
|
+
title: Link a wallet to show its public key (dexterm wallet)
|
|
4
4
|
kind: app-help
|
|
5
5
|
screen: all
|
|
6
6
|
feature: trading
|
|
@@ -12,17 +12,11 @@ tags:
|
|
|
12
12
|
- phantom
|
|
13
13
|
- connect
|
|
14
14
|
- pubkey
|
|
15
|
-
-
|
|
16
|
-
-
|
|
15
|
+
- panic
|
|
16
|
+
- resume
|
|
17
17
|
commands:
|
|
18
18
|
- wallet
|
|
19
19
|
flags:
|
|
20
|
-
- --mainnet
|
|
21
|
-
- --max-usd
|
|
22
|
-
- --daily-usd
|
|
23
|
-
- --max-sol-out
|
|
24
|
-
- --max-slippage-bps
|
|
25
|
-
- --trade-rpc
|
|
26
20
|
- --no-live
|
|
27
21
|
confidence: high
|
|
28
22
|
owner: maintainers
|
|
@@ -36,6 +30,6 @@ sources:
|
|
|
36
30
|
date: 2026-10-16
|
|
37
31
|
---
|
|
38
32
|
|
|
39
|
-
`dexterm wallet link|unlink|status` links a Phantom wallet through a loopback bridge
|
|
33
|
+
`dexterm wallet link|unlink|status` links a Phantom wallet through a loopback bridge (Phantom signs a MESSAGE, never a transaction): your keys NEVER enter dexterm, only the public key is stored, for display. dexterm holds no key and never signs or sends a transaction; trading in dexterm is paper, and live trading happens in the Telegram trading bot of your choice. `dexterm wallet panic` halts autotrade runs and the paper agent desk at once; only `dexterm wallet resume`, a keypress on a real terminal, clears it. `--no-live` (0.1.6) is accepted and changes nothing. The analyst can never link, unlink or resume.
|
|
40
34
|
|
|
41
35
|
CLI: `dexterm wallet`.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: live-trading
|
|
3
|
+
title: Live trading: dexterm holds no key; a Telegram trading bot of your choice trades
|
|
4
|
+
kind: app-help
|
|
5
|
+
screen: all
|
|
6
|
+
feature: live-trading
|
|
7
|
+
tags:
|
|
8
|
+
- app-help
|
|
9
|
+
- live
|
|
10
|
+
- trading
|
|
11
|
+
- real
|
|
12
|
+
- money
|
|
13
|
+
- telegram
|
|
14
|
+
- bot
|
|
15
|
+
- key
|
|
16
|
+
- wallet
|
|
17
|
+
- custody
|
|
18
|
+
- signer
|
|
19
|
+
- mainnet
|
|
20
|
+
commands:
|
|
21
|
+
- telegram
|
|
22
|
+
- wallet
|
|
23
|
+
- live
|
|
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 never holds a key and never signs or sends a transaction: there is no trading wallet, no signer and no live order in dexterm. Live trading happens in a Telegram trading bot of your choice, which holds its own wallet; you act in that bot. dexterm's part is the Telegram connector to your OWN bot (`dexterm telegram setup`): alerts, signals and run control for your paper runs. dexterm 0.1.7 does not place orders in a trading bot for you. Paper trading (the ticket, paper accounts, paper autotrade) is local. `dexterm wallet link` keeps a Phantom public key for display only. Not financial advice. Full docs: https://dexterm.xyz/docs/live-trading/
|
|
37
|
+
|
|
38
|
+
CLI: `dexterm telegram`, `dexterm wallet`, `dexterm live`.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: live-yolo
|
|
3
|
+
title: The full-port yolo strategy on paper: replay and a paper run (HIGH RISK)
|
|
4
|
+
kind: app-help
|
|
5
|
+
screen: all
|
|
6
|
+
feature: yolo-preset
|
|
7
|
+
tags:
|
|
8
|
+
- app-help
|
|
9
|
+
- yolo
|
|
10
|
+
- full
|
|
11
|
+
- port
|
|
12
|
+
- all-in
|
|
13
|
+
- high
|
|
14
|
+
- risk
|
|
15
|
+
- preset
|
|
16
|
+
- replay
|
|
17
|
+
- paper
|
|
18
|
+
commands:
|
|
19
|
+
- autotrade
|
|
20
|
+
confidence: high
|
|
21
|
+
owner: maintainers
|
|
22
|
+
origin: app-help-generated
|
|
23
|
+
reviewed_by: generated@2026-10-16
|
|
24
|
+
generated_from: dexterm/app keymap + overlay + mcp tools + cli (task-1413)
|
|
25
|
+
sources:
|
|
26
|
+
- packages/tui/src/keymap.ts
|
|
27
|
+
- packages/cli/src/main.ts
|
|
28
|
+
- packages/mcp/src/server.ts
|
|
29
|
+
date: 2026-10-16
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
HIGH RISK, PAPER only; not financial advice. The `yolo` preset enters one young pair at a time on an early 5-minute push after the holder-safety gates (LP burned or locked, no mint or freeze authority, a LARP score of 49 or less checked live before a coin becomes a candidate, liquidity of $25K or more), takes the cost back at about 2x, lets the rest ride on a loose 50% trail, exits at once on a liquidity pull, a dev sell or dead volume, has a -50% stop and a 45-minute time stop, and never buys the same coin twice. On paper it caps an entry at 25% like every strategy. `dexterm autotrade yolo-replay yolo` measures every entry at full port over your recorded history (rugs, the loss spread, how often it zeroed the wallet); `dexterm autotrade run yolo --paper` runs it on paper (`--replay builtin:yolo-rehearsal --stub` for a short fixture run; next to other strategies, or on a shared paper account, through `autotrade.json` and `dexterm autotrade run --all --paper`). Stop: `dexterm autotrade stop`, /kill in Telegram, Ctrl-C. dexterm places no live order. Full docs: https://dexterm.xyz/docs/yolo/
|
|
33
|
+
|
|
34
|
+
CLI: `dexterm autotrade`.
|
|
@@ -28,6 +28,6 @@ sources:
|
|
|
28
28
|
date: 2026-10-16
|
|
29
29
|
---
|
|
30
30
|
|
|
31
|
-
`dexterm plan list|add|remove|arm|disarm` sets conditional order plans (e.g. take-profit / stop levels). Voice and agents can only PROPOSE a plan; ARMING one needs your physical keypress, and
|
|
31
|
+
`dexterm plan list|add|remove|arm|disarm` sets conditional order plans (e.g. take-profit / stop levels). Voice and agents can only PROPOSE a plan; ARMING one needs your physical keypress, and plans fill on PAPER (dexterm places no live order). Nothing here lets a model sign or raise a cap.
|
|
32
32
|
|
|
33
33
|
CLI: `dexterm plan`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: price-or-marketcap
|
|
3
|
-
title:
|
|
3
|
+
title: Market cap or price (market cap is the default)
|
|
4
4
|
kind: app-help
|
|
5
5
|
screen: all
|
|
6
6
|
feature: price-display-mode
|
|
@@ -13,6 +13,7 @@ tags:
|
|
|
13
13
|
- display
|
|
14
14
|
- usd
|
|
15
15
|
- cap
|
|
16
|
+
- basis
|
|
16
17
|
keys:
|
|
17
18
|
- $
|
|
18
19
|
actions:
|
|
@@ -21,6 +22,8 @@ commands:
|
|
|
21
22
|
- display
|
|
22
23
|
flags:
|
|
23
24
|
- --price-mode
|
|
25
|
+
- --price
|
|
26
|
+
- --mcap
|
|
24
27
|
confidence: high
|
|
25
28
|
owner: maintainers
|
|
26
29
|
origin: app-help-generated
|
|
@@ -33,6 +36,6 @@ sources:
|
|
|
33
36
|
date: 2026-10-16
|
|
34
37
|
---
|
|
35
38
|
|
|
36
|
-
|
|
39
|
+
Market cap is the default basis: every screen, the CLI text, the chat assistant and the autotrade agents show and talk about a coin in market cap (entered at $69.7K, exited at $264.9K, 3.8x). Press `$` (or type `/display price` in the chat box, `/display mcap` to go back) to switch to USD price and back. Saved as `display.priceMode`; also `dexterm display mcap|price`. For one run: `--price` / `--mcap` on any command, `--price-mode`, or `DEXTERM_PRICE_BASIS=price`. Market cap = price × a known supply (the source's cap ÷ price, recorded FDV ÷ price, or pump.fun's 1B); a coin with no known supply shows its price marked ᵖ and says so. JSON keeps both `price` and `mcap`. The charts have their own axis setting (`A`). The analyst can propose this for you.
|
|
37
40
|
|
|
38
41
|
Keys: `$`. CLI: `dexterm display`.
|
|
@@ -32,6 +32,6 @@ sources:
|
|
|
32
32
|
date: 2026-10-16
|
|
33
33
|
---
|
|
34
34
|
|
|
35
|
-
Scan mode is an observe-only AI watcher (off by default, zero extra requests). Toggle it with `Z` (or `/scan on|off` on the screener line, or `--scan` at launch); `R` resumes a paused scan. It can only surface findings, never take a UI action or trade (structurally observe-only). The analyst can turn it on or off for you.
|
|
35
|
+
Scan mode is an observe-only AI watcher (off by default, zero extra requests). Toggle it with `Z` (or `/scan on|off` on the screener line, or `--scan` at launch); `R` resumes a paused scan. It can only surface findings, never take a UI action or trade (structurally observe-only). While it is on, the token screen's analyst panel shows its brain view: the scan log (locks, refreshes, releases, blocked actions) with the read streaming under it, the vetting checklist and the data strip. While it runs and you hold a paper or live position, a PnL chip shows it on the band under the header of every screen and on the chart popup; display only. The analyst can turn it on or off for you.
|
|
36
36
|
|
|
37
37
|
Keys: `Z`, `R`.
|
|
@@ -67,6 +67,7 @@ keys:
|
|
|
67
67
|
- ctrl+w o
|
|
68
68
|
- ctrl+w d
|
|
69
69
|
- ctrl+r
|
|
70
|
+
- Q
|
|
70
71
|
actions:
|
|
71
72
|
- quit
|
|
72
73
|
- screen.screener
|
|
@@ -113,6 +114,7 @@ actions:
|
|
|
113
114
|
- workspace.popups
|
|
114
115
|
- workspace.default
|
|
115
116
|
- screen.rules
|
|
117
|
+
- screen.autotrade
|
|
116
118
|
tools:
|
|
117
119
|
- get_dossier
|
|
118
120
|
- kb_search
|
|
@@ -176,6 +178,7 @@ Keys on this screen:
|
|
|
176
178
|
`^W o` — open workspace popups
|
|
177
179
|
`^W d` — default workspace
|
|
178
180
|
`^R` — rules
|
|
181
|
+
`Q` — autotrade (paper)
|
|
179
182
|
`type` — ask a follow-up · ⏎ send · esc clear/back
|
|
180
183
|
`c` — calm mode (effects off)
|
|
181
184
|
`?` — this help
|