dexterm-cli 0.1.6 → 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.
Files changed (331) hide show
  1. package/dist/packages/agents/src/schema.js +22 -1
  2. package/dist/packages/agents/src/story.js +11 -2
  3. package/dist/packages/agents/src/tiers.js +27 -2
  4. package/dist/packages/agents/src/tools.js +30 -2
  5. package/dist/packages/autotrade/assets/exit-profile.schema.json +492 -0
  6. package/dist/packages/autotrade/assets/profiles/moonbag.json +46 -0
  7. package/dist/packages/autotrade/assets/profiles/runner.json +88 -0
  8. package/dist/packages/autotrade/assets/profiles/scalp.json +88 -0
  9. package/dist/packages/autotrade/assets/profiles/swing.json +88 -0
  10. package/dist/packages/autotrade/assets/strategies/moonbag.json +101 -0
  11. package/dist/packages/autotrade/assets/strategies/runner.json +101 -0
  12. package/dist/packages/autotrade/assets/strategies/sample-dip-ladder.json +188 -0
  13. package/dist/packages/autotrade/assets/strategies/scalp.json +98 -0
  14. package/dist/packages/autotrade/assets/strategies/swing.json +97 -0
  15. package/dist/packages/autotrade/assets/strategies/yolo.json +157 -0
  16. package/dist/packages/autotrade/assets/tapes/yolo-rehearsal.json +1 -0
  17. package/dist/packages/autotrade/src/account.js +74 -0
  18. package/dist/packages/autotrade/src/backtest.js +357 -0
  19. package/dist/packages/autotrade/src/basis-text.js +32 -0
  20. package/dist/packages/autotrade/src/chat/approvals.js +484 -0
  21. package/dist/packages/autotrade/src/chat/audit.js +140 -0
  22. package/dist/packages/autotrade/src/chat/config.js +93 -0
  23. package/dist/packages/autotrade/src/chat/connector.js +24 -0
  24. package/dist/packages/autotrade/src/chat/control.js +103 -0
  25. package/dist/packages/autotrade/src/chat/fake.js +100 -0
  26. package/dist/packages/autotrade/src/chat/format.js +71 -0
  27. package/dist/packages/autotrade/src/chat/hub.js +187 -0
  28. package/dist/packages/autotrade/src/chat/index.js +18 -0
  29. package/dist/packages/autotrade/src/chat/notify.js +292 -0
  30. package/dist/packages/autotrade/src/chat/pairing.js +46 -0
  31. package/dist/packages/autotrade/src/chat/redact.js +48 -0
  32. package/dist/packages/autotrade/src/chat/secrets.js +99 -0
  33. package/dist/packages/autotrade/src/chat/service.js +248 -0
  34. package/dist/packages/autotrade/src/chat/telegram.js +290 -0
  35. package/dist/packages/autotrade/src/desk-executor.js +188 -0
  36. package/dist/packages/autotrade/src/engine.js +387 -0
  37. package/dist/packages/autotrade/src/execution-port.js +97 -0
  38. package/dist/packages/autotrade/src/fleet-config.js +169 -0
  39. package/dist/packages/autotrade/src/fleet-control.js +276 -0
  40. package/dist/packages/autotrade/src/fleet.js +639 -0
  41. package/dist/packages/autotrade/src/index.js +53 -0
  42. package/dist/packages/autotrade/src/ledger.js +108 -0
  43. package/dist/packages/autotrade/src/live-source.js +182 -0
  44. package/dist/packages/autotrade/src/monitor-daemon.js +715 -0
  45. package/dist/packages/autotrade/src/monitor.js +190 -0
  46. package/dist/packages/autotrade/src/ollama-sessions.js +137 -0
  47. package/dist/packages/autotrade/src/paper-accounts.js +72 -0
  48. package/dist/packages/autotrade/src/replay.js +198 -0
  49. package/dist/packages/autotrade/src/runner-config.js +99 -0
  50. package/dist/packages/autotrade/src/runner.js +872 -0
  51. package/dist/packages/autotrade/src/safety.js +243 -0
  52. package/dist/packages/autotrade/src/session.js +269 -0
  53. package/dist/packages/autotrade/src/sessions.js +503 -0
  54. package/dist/packages/autotrade/src/store.js +250 -0
  55. package/dist/packages/autotrade/src/strategy.js +256 -0
  56. package/dist/packages/autotrade/src/trade-ledger.js +241 -0
  57. package/dist/packages/autotrade/src/yolo.js +140 -0
  58. package/dist/packages/cli/assets/claude/analyst-system.md +4 -4
  59. package/dist/packages/cli/assets/claude/plugin/skills/token-dossier/SKILL.md +1 -1
  60. package/dist/packages/cli/src/ai-cmd.js +412 -0
  61. package/dist/packages/cli/src/analyst/backend.js +82 -15
  62. package/dist/packages/cli/src/analyst/codex.js +14 -9
  63. package/dist/packages/cli/src/analyst/ollama.js +263 -0
  64. package/dist/packages/cli/src/analyst/session.js +5 -2
  65. package/dist/packages/cli/src/app-help-gen.js +44 -8
  66. package/dist/packages/cli/src/autotrade-cmd/audit.js +57 -0
  67. package/dist/packages/cli/src/autotrade-cmd/backtest.js +199 -0
  68. package/dist/packages/cli/src/autotrade-cmd/flatten.js +64 -0
  69. package/dist/packages/cli/src/autotrade-cmd/fleet.js +397 -0
  70. package/dist/packages/cli/src/autotrade-cmd/requests.js +79 -0
  71. package/dist/packages/cli/src/autotrade-cmd/run.js +413 -0
  72. package/dist/packages/cli/src/autotrade-cmd/stop.js +76 -0
  73. package/dist/packages/cli/src/autotrade-cmd/strategies.js +198 -0
  74. package/dist/packages/cli/src/autotrade-cmd/strategy-control.js +174 -0
  75. package/dist/packages/cli/src/autotrade-cmd/telegram-host.js +101 -0
  76. package/dist/packages/cli/src/autotrade-cmd.js +168 -0
  77. package/dist/packages/cli/src/display.js +156 -17
  78. package/dist/packages/cli/src/doctor.js +62 -3
  79. package/dist/packages/cli/src/export.js +10 -2
  80. package/dist/packages/cli/src/index.js +1 -1
  81. package/dist/packages/cli/src/ledger-cmd.js +288 -0
  82. package/dist/packages/cli/src/live/chart-fills.js +46 -0
  83. package/dist/packages/cli/src/live/index.js +23 -89
  84. package/dist/packages/cli/src/live/screens/token-live.js +9 -6
  85. package/dist/packages/cli/src/live/trade.js +12 -457
  86. package/dist/packages/cli/src/live/watchlist.js +1 -1
  87. package/dist/packages/cli/src/main.js +147 -190
  88. package/dist/packages/cli/src/mcp-cmd.js +7 -1
  89. package/dist/packages/cli/src/plan-cmd.js +1 -1
  90. package/dist/packages/cli/src/pnl-app.js +31 -21
  91. package/dist/packages/cli/src/pnl-card.js +158 -21
  92. package/dist/packages/cli/src/popup.js +22 -6
  93. package/dist/packages/cli/src/record-cmd.js +141 -20
  94. package/dist/packages/cli/src/screens/agent-hud.js +34 -2
  95. package/dist/packages/cli/src/screens/analyst-session.js +7 -4
  96. package/dist/packages/cli/src/screens/analyst.js +3 -2
  97. package/dist/packages/cli/src/screens/autotrade-keys.js +169 -0
  98. package/dist/packages/cli/src/screens/autotrade-proposals.js +123 -0
  99. package/dist/packages/cli/src/screens/autotrade-screen.js +725 -0
  100. package/dist/packages/cli/src/screens/autotrade-ui.js +640 -0
  101. package/dist/packages/cli/src/screens/autotrade-worker.js +89 -0
  102. package/dist/packages/cli/src/screens/brain.js +37 -11
  103. package/dist/packages/cli/src/screens/overlay.js +5 -2
  104. package/dist/packages/cli/src/screens/plans.js +5 -17
  105. package/dist/packages/cli/src/screens/pnl-chip.js +9 -8
  106. package/dist/packages/cli/src/screens/positions.js +6 -28
  107. package/dist/packages/cli/src/screens/ticket.js +38 -205
  108. package/dist/packages/cli/src/screens/token.js +3 -3
  109. package/dist/packages/cli/src/state.js +25 -19
  110. package/dist/packages/cli/src/telegram-cmd.js +451 -0
  111. package/dist/packages/cli/src/trade.js +3 -128
  112. package/dist/packages/cli/src/version.js +1 -1
  113. package/dist/packages/cli/src/wallet-cmd.js +39 -340
  114. package/dist/packages/cli/src/wallet-command.js +8 -11
  115. package/dist/packages/cli/src/widgets.js +0 -12
  116. package/dist/packages/custom/src/config.js +20 -2
  117. package/dist/packages/custom/src/schema.js +35 -10
  118. package/dist/packages/custom/src/workspace.js +3 -3
  119. package/dist/packages/data/src/basis.js +191 -0
  120. package/dist/packages/data/src/detail.js +53 -2
  121. package/dist/packages/data/src/index.js +0 -14
  122. package/dist/packages/data/src/store.js +14 -5
  123. package/dist/packages/data/src/trade/agent/paper-desk.js +228 -16
  124. package/dist/packages/data/src/trade/agent/rendezvous.js +3 -2
  125. package/dist/packages/data/src/trade/bridge.js +4 -102
  126. package/dist/packages/data/src/trade/ledger/export.js +101 -0
  127. package/dist/packages/data/src/trade/ledger/file.js +135 -0
  128. package/dist/packages/data/src/trade/ledger/fold.js +191 -0
  129. package/dist/packages/data/src/trade/ledger/index.js +9 -0
  130. package/dist/packages/data/src/trade/ledger/schema.js +83 -0
  131. package/dist/packages/data/src/trade/ledger/sources.js +307 -0
  132. package/dist/packages/data/src/trade/ledger/stats.js +123 -0
  133. package/dist/packages/data/src/trade/ledger/tags.js +116 -0
  134. package/dist/packages/data/src/trade/ledger/view.js +51 -0
  135. package/dist/packages/data/src/trade/plans/index.js +0 -1
  136. package/dist/packages/data/src/trade/plans/service.js +3 -27
  137. package/dist/packages/mcp/assets/kb/app-help/autotrade-chat.md +48 -0
  138. package/dist/packages/mcp/assets/kb/app-help/autotrade-parallel.md +42 -0
  139. package/dist/packages/mcp/assets/kb/app-help/autotrade-runner.md +35 -0
  140. package/dist/packages/mcp/assets/kb/app-help/autotrade-stop.md +37 -0
  141. package/dist/packages/mcp/assets/kb/app-help/autotrade-strategies.md +35 -0
  142. package/dist/packages/mcp/assets/kb/app-help/autotrade-telegram.md +40 -0
  143. package/dist/packages/mcp/assets/kb/app-help/chart-trade-markers.md +42 -0
  144. package/dist/packages/mcp/assets/kb/app-help/link-a-wallet.md +4 -10
  145. package/dist/packages/mcp/assets/kb/app-help/live-trading.md +38 -0
  146. package/dist/packages/mcp/assets/kb/app-help/live-yolo.md +34 -0
  147. package/dist/packages/mcp/assets/kb/app-help/order-plans.md +1 -1
  148. package/dist/packages/mcp/assets/kb/app-help/price-or-marketcap.md +5 -2
  149. package/dist/packages/mcp/assets/kb/app-help/screen-analyst.md +3 -0
  150. package/dist/packages/mcp/assets/kb/app-help/screen-autotrade.md +217 -0
  151. package/dist/packages/mcp/assets/kb/app-help/screen-kol.md +3 -0
  152. package/dist/packages/mcp/assets/kb/app-help/screen-newpairs.md +3 -0
  153. package/dist/packages/mcp/assets/kb/app-help/screen-positions.md +3 -0
  154. package/dist/packages/mcp/assets/kb/app-help/screen-screener.md +3 -0
  155. package/dist/packages/mcp/assets/kb/app-help/screen-token.md +3 -0
  156. package/dist/packages/mcp/assets/kb/app-help/screen-trending.md +3 -0
  157. package/dist/packages/mcp/assets/kb/app-help/screen-watchlist.md +3 -0
  158. package/dist/packages/mcp/assets/kb/app-help/standing-mandates.md +1 -1
  159. package/dist/packages/mcp/assets/kb/app-help/trade-ledger.md +54 -0
  160. package/dist/packages/mcp/assets/kb/app-help/use-local-model.md +38 -0
  161. package/dist/packages/mcp/assets/kb/docs/docs-agents-agent-paper-trading.md +4 -1
  162. package/dist/packages/mcp/assets/kb/docs/docs-agents-reading-your-trade-ledger.md +31 -0
  163. package/dist/packages/mcp/assets/kb/docs/docs-agents-untrusted-by-default.md +1 -1
  164. package/dist/packages/mcp/assets/kb/docs/docs-analyst-if-claude-is-missing.md +1 -1
  165. package/dist/packages/mcp/assets/kb/docs/docs-analyst-use-a-local-model-instead.md +27 -0
  166. package/dist/packages/mcp/assets/kb/docs/docs-analyst-what-it-sees.md +2 -0
  167. package/dist/packages/mcp/assets/kb/docs/docs-autotrade-backtests-and-their-limits.md +56 -0
  168. package/dist/packages/mcp/assets/kb/docs/docs-autotrade-change-a-strategy-by-chat.md +49 -0
  169. package/dist/packages/mcp/assets/kb/docs/docs-autotrade-checking-the-record-of-a-run.md +28 -0
  170. package/dist/packages/mcp/assets/kb/docs/docs-autotrade-comparing-them.md +41 -0
  171. package/dist/packages/mcp/assets/kb/docs/docs-autotrade-exits-and-wakes.md +76 -0
  172. package/dist/packages/mcp/assets/kb/docs/docs-autotrade-how-a-stop-reaches-the-runner.md +32 -0
  173. package/dist/packages/mcp/assets/kb/docs/docs-autotrade-on-the-q-screen.md +37 -0
  174. package/dist/packages/mcp/assets/kb/docs/docs-autotrade-one-strategy-or-all-of-them.md +35 -0
  175. package/dist/packages/mcp/assets/kb/docs/docs-autotrade-paper-accounts.md +50 -0
  176. package/dist/packages/mcp/assets/kb/docs/docs-autotrade-presets.md +37 -0
  177. package/dist/packages/mcp/assets/kb/docs/docs-autotrade-running-it-all-day.md +31 -0
  178. package/dist/packages/mcp/assets/kb/docs/docs-autotrade-sessions-and-their-limits.md +31 -0
  179. package/dist/packages/mcp/assets/kb/docs/docs-autotrade-several-strategies-at-once.md +33 -0
  180. package/dist/packages/mcp/assets/kb/docs/docs-autotrade-stopping-it.md +35 -0
  181. package/dist/packages/mcp/assets/kb/docs/docs-autotrade-strategies-and-presets.md +34 -0
  182. package/dist/packages/mcp/assets/kb/docs/docs-autotrade-the-autotrade-json-file.md +48 -0
  183. package/dist/packages/mcp/assets/kb/docs/docs-autotrade-the-heartbeat.md +27 -0
  184. package/dist/packages/mcp/assets/kb/docs/docs-autotrade-the-run-file-and-the-heartbeat.md +34 -0
  185. package/dist/packages/mcp/assets/kb/docs/docs-autotrade-the-runner-and-candidate-sessions.md +45 -0
  186. package/dist/packages/mcp/assets/kb/docs/docs-autotrade-what-each-session-shows-first.md +31 -0
  187. package/dist/packages/mcp/assets/kb/docs/docs-autotrade-what-it-costs-claude-usage-per-session.md +58 -0
  188. package/dist/packages/mcp/assets/kb/docs/docs-autotrade-what-it-is-paper-self-directed.md +43 -0
  189. package/dist/packages/mcp/assets/kb/docs/docs-autotrade-what-it-will-not-do.md +31 -0
  190. package/dist/packages/mcp/assets/kb/docs/docs-autotrade-which-account-day-caps-and-the-usage-guard.md +44 -0
  191. package/dist/packages/mcp/assets/kb/docs/docs-autotrade-your-strategies.md +37 -0
  192. package/dist/packages/mcp/assets/kb/docs/docs-autotrade.md +22 -0
  193. package/dist/packages/mcp/assets/kb/docs/docs-beginners-before-any-experimental-trading.md +2 -2
  194. package/dist/packages/mcp/assets/kb/docs/docs-beginners.md +1 -1
  195. package/dist/packages/mcp/assets/kb/docs/docs-configuration-chart-markers.md +30 -0
  196. package/dist/packages/mcp/assets/kb/docs/docs-configuration-chart-y-axis.md +1 -1
  197. package/dist/packages/mcp/assets/kb/docs/docs-configuration-environment-variables.md +4 -1
  198. package/dist/packages/mcp/assets/kb/docs/docs-configuration-files-on-disk.md +1 -0
  199. package/dist/packages/mcp/assets/kb/docs/docs-configuration-headless-recorder-dexterm-record.md +3 -1
  200. package/dist/packages/mcp/assets/kb/docs/docs-configuration-price-display-mode.md +8 -6
  201. package/dist/packages/mcp/assets/kb/docs/docs-copy-trading-stage-2-the-one-key-mirror-ticket-a-proposal.md +1 -1
  202. package/dist/packages/mcp/assets/kb/docs/docs-copy-trading-stage-3-capped-auto-mirror-default-off-less.md +1 -1
  203. package/dist/packages/mcp/assets/kb/docs/docs-copy-trading-what-is-proven-what-is-not.md +1 -1
  204. package/dist/packages/mcp/assets/kb/docs/docs-copy-trading.md +1 -1
  205. package/dist/packages/mcp/assets/kb/docs/docs-data-sources-recorded-history-and-retention.md +36 -0
  206. package/dist/packages/mcp/assets/kb/docs/docs-data-sources-sources.md +1 -0
  207. package/dist/packages/mcp/assets/kb/docs/docs-getting-started-first-run.md +1 -1
  208. package/dist/packages/mcp/assets/kb/docs/docs-getting-started-install.md +3 -3
  209. package/dist/packages/mcp/assets/kb/docs/docs-getting-started-requirements.md +1 -1
  210. package/dist/packages/mcp/assets/kb/docs/docs-getting-started.md +1 -1
  211. package/dist/packages/mcp/assets/kb/docs/docs-live-trading-changed-in-0-1-7.md +26 -0
  212. package/dist/packages/mcp/assets/kb/docs/docs-live-trading-stopping.md +28 -0
  213. package/dist/packages/mcp/assets/kb/docs/docs-live-trading-the-short-version.md +34 -0
  214. package/dist/packages/mcp/assets/kb/docs/docs-live-trading-using-a-trading-bot-with-dexterm.md +33 -0
  215. package/dist/packages/mcp/assets/kb/docs/docs-live-trading-what-dexterm-does-not-do.md +30 -0
  216. package/dist/packages/mcp/assets/kb/docs/docs-live-trading-what-dexterm-does.md +29 -0
  217. package/dist/packages/mcp/assets/kb/docs/docs-live-trading.md +23 -0
  218. package/dist/packages/mcp/assets/kb/docs/docs-ollama-another-machine.md +28 -0
  219. package/dist/packages/mcp/assets/kb/docs/docs-ollama-autotrade-on-a-local-model.md +29 -0
  220. package/dist/packages/mcp/assets/kb/docs/docs-ollama-check-your-model-dexterm-ai-probe.md +38 -0
  221. package/dist/packages/mcp/assets/kb/docs/docs-ollama-how-we-checked.md +27 -0
  222. package/dist/packages/mcp/assets/kb/docs/docs-ollama-models-without-tool-calling.md +32 -0
  223. package/dist/packages/mcp/assets/kb/docs/docs-ollama-pick-the-engine-globally-or-per-surface.md +43 -0
  224. package/dist/packages/mcp/assets/kb/docs/docs-ollama-restriction-profiles.md +35 -0
  225. package/dist/packages/mcp/assets/kb/docs/docs-ollama-set-it-up-in-two-minutes.md +39 -0
  226. package/dist/packages/mcp/assets/kb/docs/docs-ollama-troubleshooting.md +35 -0
  227. package/dist/packages/mcp/assets/kb/docs/docs-ollama-what-runs-on-a-local-model.md +39 -0
  228. package/dist/packages/mcp/assets/kb/docs/docs-ollama-what-stays-outside-the-model.md +36 -0
  229. package/dist/packages/mcp/assets/kb/docs/docs-ollama-which-model.md +38 -0
  230. package/dist/packages/mcp/assets/kb/docs/docs-ollama-your-own-agent-on-the-local-model.md +28 -0
  231. package/dist/packages/mcp/assets/kb/docs/docs-ollama.md +28 -0
  232. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-letting-an-agent-paper-trade-experimental.md +3 -4
  233. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-link-a-wallet-read-only.md +30 -0
  234. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-order-plans-and-standing-mandates.md +3 -4
  235. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-panic.md +4 -7
  236. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-paper-only-mandates.md +6 -7
  237. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-pnl-cards.md +7 -7
  238. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-safety-model.md +34 -0
  239. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-ticket.md +3 -4
  240. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-trade-ledger.md +42 -0
  241. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-wallet.md +4 -5
  242. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-trade-moments.md +4 -5
  243. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading.md +4 -5
  244. package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-buy-and-sell-markers.md +37 -0
  245. package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-what-it-shows.md +2 -1
  246. package/dist/packages/mcp/assets/kb/docs/docs-screens-autotrade-paper.md +26 -0
  247. package/dist/packages/mcp/assets/kb/docs/docs-screens-order-plans.md +1 -1
  248. package/dist/packages/mcp/assets/kb/docs/docs-screens-token-screen.md +2 -0
  249. package/dist/packages/mcp/assets/kb/docs/docs-spectator-the-brain-view-and-the-pnl-chip.md +1 -1
  250. package/dist/packages/mcp/assets/kb/docs/docs-telegram-approve-one-tap-entries.md +50 -0
  251. package/dist/packages/mcp/assets/kb/docs/docs-telegram-control-the-commands.md +43 -0
  252. package/dist/packages/mcp/assets/kb/docs/docs-telegram-if-something-goes-wrong.md +30 -0
  253. package/dist/packages/mcp/assets/kb/docs/docs-telegram-notify-what-reaches-your-phone.md +41 -0
  254. package/dist/packages/mcp/assets/kb/docs/docs-telegram-set-it-up.md +47 -0
  255. package/dist/packages/mcp/assets/kb/docs/docs-telegram-the-record.md +26 -0
  256. package/dist/packages/mcp/assets/kb/docs/docs-telegram-what-it-is.md +33 -0
  257. package/dist/packages/mcp/assets/kb/docs/docs-telegram-what-it-will-not-do.md +31 -0
  258. package/dist/packages/mcp/assets/kb/docs/docs-telegram.md +23 -0
  259. package/dist/packages/mcp/assets/kb/docs/docs-troubleshooting-common-questions.md +1 -1
  260. package/dist/packages/mcp/assets/kb/docs/docs-troubleshooting-doctor-lines.md +4 -0
  261. package/dist/packages/mcp/assets/kb/docs/docs-voice-linux-and-windows.md +1 -1
  262. package/dist/packages/mcp/assets/kb/docs/docs-voice.md +1 -1
  263. package/dist/packages/mcp/assets/kb/docs/docs-yolo-1-replay-it-on-your-own-history.md +42 -0
  264. package/dist/packages/mcp/assets/kb/docs/docs-yolo-2-run-it-on-paper.md +34 -0
  265. package/dist/packages/mcp/assets/kb/docs/docs-yolo-3-watch-it-and-stop-it.md +32 -0
  266. package/dist/packages/mcp/assets/kb/docs/docs-yolo-the-rules.md +37 -0
  267. package/dist/packages/mcp/assets/kb/docs/docs-yolo-what-it-is.md +34 -0
  268. package/dist/packages/mcp/assets/kb/docs/docs-yolo-what-it-will-not-do.md +31 -0
  269. package/dist/packages/mcp/assets/kb/docs/docs-yolo.md +26 -0
  270. package/dist/packages/mcp/assets/kb/entries/autotrade.md +38 -0
  271. package/dist/packages/mcp/src/app-help.js +1 -1
  272. package/dist/packages/mcp/src/autotrade-tools.js +944 -0
  273. package/dist/packages/mcp/src/backtest-requests.js +71 -0
  274. package/dist/packages/mcp/src/engine/config.js +159 -0
  275. package/dist/packages/mcp/src/engine/index.js +10 -0
  276. package/dist/packages/mcp/src/engine/loop.js +101 -0
  277. package/dist/packages/mcp/src/engine/mcp-client.js +123 -0
  278. package/dist/packages/mcp/src/engine/ollama.js +258 -0
  279. package/dist/packages/mcp/src/engine/probe.js +110 -0
  280. package/dist/packages/mcp/src/engine/reason.js +35 -0
  281. package/dist/packages/mcp/src/engine/restrictions.js +111 -0
  282. package/dist/packages/mcp/src/index.js +7 -1
  283. package/dist/packages/mcp/src/ledger-tools.js +346 -0
  284. package/dist/packages/mcp/src/paper-agent.js +2 -0
  285. package/dist/packages/mcp/src/server.js +127 -19
  286. package/dist/packages/packs/src/backtest.js +3 -1
  287. package/dist/packages/popup/src/pages/chart-lib.js +134 -21
  288. package/dist/packages/popup/src/pages/chart.css +9 -0
  289. package/dist/packages/popup/src/pages/chart.html +3 -1
  290. package/dist/packages/popup/src/pages/chart.js +104 -7
  291. package/dist/packages/popup/src/protocol.js +2 -0
  292. package/dist/packages/popup/src/server.js +4 -0
  293. package/dist/packages/recorder/src/index.js +2 -0
  294. package/dist/packages/recorder/src/recorder.js +63 -6
  295. package/dist/packages/recorder/src/retention.js +100 -0
  296. package/dist/packages/recorder/src/schema.js +34 -1
  297. package/dist/packages/recorder/src/ticks.js +237 -0
  298. package/dist/packages/tui/src/index.js +1 -0
  299. package/dist/packages/tui/src/keymap.js +21 -1
  300. package/dist/packages/tui/src/markers.js +219 -0
  301. package/dist/packages/tui/src/widgets.js +149 -2
  302. package/package.json +2 -1
  303. package/dist/packages/data/src/trade/caps.js +0 -323
  304. package/dist/packages/data/src/trade/executor.js +0 -933
  305. package/dist/packages/data/src/trade/plans/executor-live.js +0 -220
  306. package/dist/packages/data/src/trade/rpc-exec.js +0 -229
  307. package/dist/packages/data/src/trade/signer/client.js +0 -197
  308. package/dist/packages/data/src/trade/signer/fast-wallet.js +0 -154
  309. package/dist/packages/data/src/trade/signer/host.js +0 -97
  310. package/dist/packages/data/src/trade/signer/main.js +0 -121
  311. package/dist/packages/data/src/trade/signer/probe-builder.js +0 -85
  312. package/dist/packages/data/src/trade/signer/protocol.js +0 -92
  313. package/dist/packages/data/src/trade/signer/service.js +0 -400
  314. package/dist/packages/data/src/trade/signer/sol-usd-feed.js +0 -98
  315. package/dist/packages/data/src/trade/sol-usd.js +0 -86
  316. package/dist/packages/data/src/trade/swap-build.js +0 -108
  317. package/dist/packages/data/src/trade/token-delta.js +0 -201
  318. package/dist/packages/data/vendor/solana-web3/LICENSE +0 -20
  319. package/dist/packages/data/vendor/solana-web3/NOTICE.md +0 -13
  320. package/dist/packages/data/vendor/solana-web3/index.iife.min.js +0 -20
  321. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-a-live-ticket.md +0 -42
  322. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-before-you-press-size-vs-caps.md +0 -34
  323. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-devnet-signer-mainnet-token.md +0 -35
  324. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-jupiter-rate-limits.md +0 -33
  325. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-link-a-wallet.md +0 -32
  326. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-live-trading-devnet-first.md +0 -30
  327. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-mainnet.md +0 -31
  328. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-live-fire-path-devnet-the-fast-wallet.md +0 -41
  329. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-signer-process.md +0 -34
  330. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-what-the-live-path-keeps.md +0 -37
  331. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-your-first-live-trade.md +0 -41
@@ -0,0 +1,41 @@
1
+ ---
2
+ id: docs-telegram-notify-what-reaches-your-phone
3
+ title: Telegram (your own bot) › Notify: what reaches your phone
4
+ kind: docs
5
+ page: telegram
6
+ page_title: Telegram (your own bot)
7
+ heading: Notify: what reaches your phone
8
+ anchor: notify-what-reaches-your-phone
9
+ url: https://dexterm.xyz/docs/telegram#notify-what-reaches-your-phone
10
+ tags:
11
+ - docs
12
+ - telegram
13
+ - notify
14
+ - reaches
15
+ - phone
16
+ - own
17
+ - bot
18
+ confidence: high
19
+ owner: maintainers
20
+ origin: docs-generated
21
+ reviewed_by: generated@2026-10-16
22
+ generated_from: dexterm/site content/docs (task-1420)
23
+ sources:
24
+ - site/content/docs/telegram.md
25
+ date: 2026-10-16
26
+ ---
27
+
28
+ Every message leads with its badge (**PAPER** today) and is plain text: token names are shown as quoted data, passed through the same prompt firewall the analyst uses, with links, addresses, commands and mentions made inert.
29
+
30
+ | event | default | what it says |
31
+ |---|---|---|
32
+ | candidates found | a digest every 15 minutes | symbol, short mint, the rules that matched |
33
+ | entry and exit | on | size in $ and as % of the book, price, profile, the exit reason, your agent's reason (quoted) |
34
+ | trade closed | on | the PnL card image and one line: P/L in % and $, the exit, how long it was held |
35
+ | halts and guards | on | the state, the reason, and what clears it |
36
+ | spend and usage | on | once a day at 80 % of the day's model spend cap, or of a Claude usage window |
37
+ | daily summary | on, 21:00 | trades, wins and losses, the day's P/L in %, open positions, spend, the runner state, approvals |
38
+
39
+ Shown: the badge, the symbol, a short mint (`abcd…wxyz`), the strategy and its short hash, each trade's size and its share of the book. **Never shown**: keys, the bot token, wallet addresses, wallet balances or the absolute book, file paths. An exit reason or a halt reason that quotes a path, an API key, a long hex value or a keypair shows `[path]`, `[key]` or `[hex]` instead.
40
+
41
+ Change it locally: `dexterm telegram notify candidates digest|each|off`, `dexterm telegram notify entries|closes|halts|spend|daily on|off`, `dexterm telegram set summary-at 21:00` (or `off`), and `dexterm telegram set quiet 23:00-07:00` (quiet hours hold the notify-only lines; halts, proposals and replies still go). Above 20 messages a minute the bot switches to digests on its own.
@@ -0,0 +1,47 @@
1
+ ---
2
+ id: docs-telegram-set-it-up
3
+ title: Telegram (your own bot) › Set it up
4
+ kind: docs
5
+ page: telegram
6
+ page_title: Telegram (your own bot)
7
+ heading: Set it up
8
+ anchor: set-it-up
9
+ url: https://dexterm.xyz/docs/telegram#set-it-up
10
+ tags:
11
+ - docs
12
+ - telegram
13
+ - set
14
+ - own
15
+ - bot
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/telegram.md
23
+ date: 2026-10-16
24
+ ---
25
+
26
+ 1. In Telegram, open **@BotFather**, send `/newbot`, pick a name, and copy the token it gives you.
27
+ 2. On your computer, run:
28
+
29
+ ```
30
+ dexterm telegram setup
31
+ ```
32
+
33
+ Paste the token at the prompt (nothing is shown while you type, and a token passed as an argument is refused, so it never lands in your shell history). dexterm checks it with Telegram and prints the bot's username, then stores the token in your **macOS keychain**, the **system keyring** on Linux (libsecret), or a file only you can read under `~/.dexterm/secrets/` when neither exists. It is never written to a config file, a log, the command line or the environment. Settings live in `~/.dexterm/connectors.json`, which holds no secret.
34
+
35
+ 3. Setup first checks that nobody else is reading your bot (a webhook on it, or another program polling it). If anything is, it refuses to pair. Otherwise it shows a **6-digit pairing code** on your screen, valid for 5 minutes. Open a private chat with your bot from your own account and send `/pair` and the code. Your computer then shows the account the code came from, its **@username and id**, and asks you to confirm it with `y`. Only then is that account in that chat the only one the bot answers. The code travels through Telegram, so this check is what stops someone who has your token: if another program polls the bot while the code is open, pairing stops, and an account you do not recognise gets `n`.
36
+
37
+ Pair again any time with `dexterm telegram pair` (add `--tiers notify,control` to leave approvals out). Check what is set up with `dexterm telegram status`, and send one test message with `dexterm telegram test`.
38
+
39
+ 4. Start the runner as usual. When a chat is paired, the bot comes up with it:
40
+
41
+ ```
42
+ dexterm autotrade run moonbag --paper
43
+ ```
44
+
45
+ `--no-telegram` keeps it off for one run.
46
+
47
+ Turn on Telegram's **two-step verification** for your account. Messages are not end-to-end encrypted: the bot never sends keys, seed phrases, wallet addresses or balances, and it never asks for them. Anything that asks you for those is not dexterm.
@@ -0,0 +1,26 @@
1
+ ---
2
+ id: docs-telegram-the-record
3
+ title: Telegram (your own bot) › The record
4
+ kind: docs
5
+ page: telegram
6
+ page_title: Telegram (your own bot)
7
+ heading: The record
8
+ anchor: the-record
9
+ url: https://dexterm.xyz/docs/telegram#the-record
10
+ tags:
11
+ - docs
12
+ - telegram
13
+ - record
14
+ - own
15
+ - bot
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/telegram.md
23
+ date: 2026-10-16
24
+ ---
25
+
26
+ Every inbound update (the sender, the chat, the command or button; free text only as a length and a hash), every message sent, every proposal state and every check of a tap is written to `~/.dexterm/autotrade/chat/<day>.jsonl`, hash-chained like the run files. The token, raw one-time codes and balances are never written. `dexterm telegram audit --verify` recomputes each day's chain and names the first edited, missing or reordered line. The run file records each approval request, the answer and the fill it led to, and anchors the chat record (its day file, head and length) when a run starts and ends. The check compares every anchor, so a day file that was cut short, deleted or rewritten after a run anchored it does not verify. Lines written after the last run ended are not anchored yet.
@@ -0,0 +1,33 @@
1
+ ---
2
+ id: docs-telegram-what-it-is
3
+ title: Telegram (your own bot) › What it is
4
+ kind: docs
5
+ page: telegram
6
+ page_title: Telegram (your own bot)
7
+ heading: What it is
8
+ anchor: what-it-is
9
+ url: https://dexterm.xyz/docs/telegram#what-it-is
10
+ tags:
11
+ - docs
12
+ - telegram
13
+ - own
14
+ - bot
15
+ confidence: high
16
+ owner: maintainers
17
+ origin: docs-generated
18
+ reviewed_by: generated@2026-10-16
19
+ generated_from: dexterm/site content/docs (task-1420)
20
+ sources:
21
+ - site/content/docs/telegram.md
22
+ date: 2026-10-16
23
+ ---
24
+
25
+ The autotrade runner can talk to **your own Telegram bot**. You create the bot, you give its token to dexterm on your own computer, and the runner polls Telegram from your computer while it runs. There is no dexterm server in between: nothing is hosted by us, nobody else holds your token, and nothing trades for anyone but you.
26
+
27
+ It does three things, each one a tier you grant when you pair:
28
+
29
+ - **Notify** (https://dexterm.xyz/docs/telegram#notify-what-reaches-your-phone): candidates found, entries and exits, a PnL card for every closed trade, halts and guards, spend warnings and a daily summary.
30
+ - **Control** (https://dexterm.xyz/docs/telegram#control-the-commands): `/status`, `/positions`, `/pause`, `/resume`, `/kill`, `/flatten`, `/strategies`, `/use` and `/approvals on`. Chat can always make things **safer** and never less safe.
31
+ - **Approve** (https://dexterm.xyz/docs/telegram#approve-one-tap-entries): every new entry waits for your tap, with [Approve] [Half size] [Skip] buttons. Only a button approves; a typed message never does.
32
+
33
+ It runs on **paper**: an approved entry fills on the paper book, with no key, wallet or signer anywhere. This is also dexterm's part in live trading (https://dexterm.xyz/docs/live-trading): dexterm holds no key, and live trades happen in a separate Telegram trading bot of your choice, which holds its own wallet. dexterm sends the alerts and run control to your chat; in this version it does not place orders in that trading bot for you. Experimental, not financial advice.
@@ -0,0 +1,31 @@
1
+ ---
2
+ id: docs-telegram-what-it-will-not-do
3
+ title: Telegram (your own bot) › What it will not do
4
+ kind: docs
5
+ page: telegram
6
+ page_title: Telegram (your own bot)
7
+ heading: What it will not do
8
+ anchor: what-it-will-not-do
9
+ url: https://dexterm.xyz/docs/telegram#what-it-will-not-do
10
+ tags:
11
+ - docs
12
+ - telegram
13
+ - will
14
+ - own
15
+ - bot
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/telegram.md
23
+ date: 2026-10-16
24
+ ---
25
+
26
+ - Run anywhere but your computer, or on a shared or hosted bot.
27
+ - Post proposals to a group or a channel: approvals work only in your private chat, and relaying AI trade calls to an audience is something we tell you not to do.
28
+ - Read a typed message as a trade, by a parser or by a model.
29
+ - Make anything less safe from chat.
30
+ - Hold or ask for your keys, seed phrase or wallet.
31
+ - Place an order in a trading bot, or sign or send a transaction.
@@ -0,0 +1,23 @@
1
+ ---
2
+ id: docs-telegram
3
+ title: Telegram (your own bot)
4
+ kind: docs
5
+ page: telegram
6
+ page_title: Telegram (your own bot)
7
+ url: https://dexterm.xyz/docs/telegram
8
+ tags:
9
+ - docs
10
+ - telegram
11
+ - own
12
+ - bot
13
+ confidence: high
14
+ owner: maintainers
15
+ origin: docs-generated
16
+ reviewed_by: generated@2026-10-16
17
+ generated_from: dexterm/site content/docs (task-1420)
18
+ sources:
19
+ - site/content/docs/telegram.md
20
+ date: 2026-10-16
21
+ ---
22
+
23
+ Alerts on your phone, pause and stop from anywhere, and one-tap approvals for autotrade entries, through a bot you create. Nothing is hosted by us. Paper first, experimental, not financial advice.
@@ -30,4 +30,4 @@ date: 2026-10-16
30
30
 
31
31
  **Quitting takes long.** It should take under a second. If it does not, report it with `--verbose` output; the shutdown signal cancels every pending wait.
32
32
 
33
- **Something that looks like dexterm asks for a seed phrase or a wallet connection.** It is not dexterm. The app never asks for keys; see security and trust (https://dexterm.xyz/trust/).
33
+ **Something that looks like dexterm asks for a seed phrase or a private key.** It is not dexterm. The app never asks for keys and never asks you to sign a transaction; see security and trust (https://dexterm.xyz/trust/).
@@ -31,6 +31,10 @@ date: 2026-10-16
31
31
  | `! Claude CLI: not found` | `claude` is not on PATH | only the analyst needs it: install Claude Code and run `claude` once to log in. Everything else works. |
32
32
  | `! Codex CLI: … not logged in` | the optional Codex engine is installed but logged out | `codex login`, or keep the analyst on Claude. |
33
33
  | `! Codex CLI: … older than 0.163.0` | the read-only lock needs a newer codex | `npm i -g @openai/codex@latest`. |
34
+ | `! Ollama (local AI): no AI engine on this machine yet` | neither Claude Code, Codex nor a local model is set up | the free local way: install Ollama, `ollama pull qwen3:8b`, `dexterm ai engine ollama` (local model (https://dexterm.xyz/docs/ollama)). |
35
+ | `! Ollama (local AI): not reachable` | you chose the local engine and Ollama is not running | open the Ollama app or run `ollama serve`. |
36
+ | `! Ollama (local AI): … is not pulled` | the chosen model is not on this machine | `ollama pull <model>`. |
37
+ | `! Ollama (local AI): … cannot call tools` / `… context` | the model is below the bar for your profile | `dexterm ai probe --json`; pull a stronger tool-capable model or lower the profile. |
34
38
  | `! Helius RPC: no key` | no key configured | optional. Holders and some safety fields show `needs key`; see configuration (https://dexterm.xyz/docs/configuration#the-optional-free-rpc-key). |
35
39
  | `✗ Data sources: unreachable …` | a required host did not answer | check your connection, VPN or firewall. If only some hosts fail they may be blocked on your network. `--fixtures` or `DEXTERM_OFFLINE=1` browse offline demo data. |
36
40
  | `! Data sources: … PumpPortal …` | only the new-pairs host is down | the rest works; new pairs may be blocked on your network. |
@@ -29,4 +29,4 @@ date: 2026-10-16
29
29
  - **Speech out (Linux).** The neural Piper engine is the default when its prebuilt binary and the `en_GB-alan-medium` voice are installed (`dexterm voice download piper-voice` fetches the voice from Hugging Face, asks first and checks a pinned checksum). `espeak-ng` is the fallback. Both play their WAV through `aplay`, `paplay` or `ffplay`. Synthesis to WAV is verified in Docker on Linux, but real speaker output is not covered by the test suite. `dexterm doctor` names what is missing. Don't use `apt install piper`, which installs an unrelated tool.
30
30
  - **Speech in (Linux).** Apple Speech is macOS-only. The local whisper.cpp engine (`dexterm voice download whisper` fetches its `base.en` model) records with `sox`, `arecord` (alsa-utils) or `ffmpeg -f alsa`. Real microphone capture on Linux is not yet verified on hardware.
31
31
  - **Windows.** Untested. `espeak-ng` or Piper may speak through `ffplay`, but microphone capture has no Windows-specific input (the `ffmpeg` capture uses a macOS or Linux device), so treat push-to-talk on Windows as not built.
32
- - **Unchanged everywhere.** The router, the clarify-never-guess rules and the hard limits above are platform-independent. Another platform adds engines, not powers: voice can never confirm, sign, flip LIVE or raise a cap.
32
+ - **Unchanged everywhere.** The router, the clarify-never-guess rules and the hard limits above are platform-independent. Another platform adds engines, not powers: voice can never confirm, sign or raise a cap.
@@ -20,6 +20,6 @@ sources:
20
20
  date: 2026-10-16
21
21
  ---
22
22
 
23
- Push-to-talk on v, an instant local command path, Claude for analysis, spoken replies, popups. Voice only ever proposes; it can never confirm, sign, flip LIVE or raise a cap.
23
+ Push-to-talk on v, an instant local command path, Claude for analysis, spoken replies, popups. Voice only ever proposes; it can never confirm, sign or raise a cap.
24
24
 
25
25
  `v` is push-to-talk. Press it once and the mic opens (a red `● LISTENING` badge sits on the band under the header the whole time it is live); say what you want; press `v` again to send. The first press enables voice for the run and asks macOS for Microphone and Speech permission. Everything is free and local: speech-out is the neural Piper voice once it is set up (otherwise the built-in `say`), speech-in is on-device Apple Speech (compiled once with `swiftc`) or a local whisper.cpp `base.en` model, and the only model in the loop is your own `claude` login, for analysis questions. No paid speech API exists in the code, no key is read, nothing is recorded to disk.
@@ -0,0 +1,42 @@
1
+ ---
2
+ id: docs-yolo-1-replay-it-on-your-own-history
3
+ title: Full-port yolo strategy (HIGH RISK, paper) › 1. Replay it on your own history
4
+ kind: docs
5
+ page: yolo
6
+ page_title: Full-port yolo strategy (HIGH RISK, paper)
7
+ heading: 1. Replay it on your own history
8
+ anchor: 1-replay-it-on-your-own-history
9
+ url: https://dexterm.xyz/docs/yolo#1-replay-it-on-your-own-history
10
+ tags:
11
+ - docs
12
+ - yolo
13
+ - replay
14
+ - own
15
+ - history
16
+ - full-port
17
+ - strategy
18
+ - high
19
+ - risk
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/yolo.md
28
+ date: 2026-10-16
29
+ ---
30
+
31
+ ```
32
+ dexterm autotrade yolo-replay yolo
33
+ ```
34
+
35
+ This replays the preset over the history your recorder saved (or `--tape FILE`, `--db PATH --days N`), on paper, with modelled fills, no network and no model. Each entry the rules would take is measured once at the same stake. Then a wallet is compounded through those entries in order, with all of it in each one (the full-port view). It prints:
36
+
37
+ - the entries, wins, **rugs** and cost recoveries;
38
+ - the spread of results per entry, from "rug" to "2x or more";
39
+ - the full-port wallet entry after entry, and **the entry where it was zeroed** (at or below 10% of the start);
40
+ - 2,000 random runs of 10 entries: **how often it zeroed the wallet**, halved it or doubled it, with the 10th, 50th and 90th percentile.
41
+
42
+ Every limit of the data prints next to the numbers. Snapshots are not trades, early entries look later than they were, rugs no feed saw are missing (so the rug rate is a floor), the LARP check and the agent are not in a replay, and the random runs assume entries are independent when real ones cluster. A replay is not a forecast. With fewer than 20 entries it says so: read the counts, not the rates.
@@ -0,0 +1,34 @@
1
+ ---
2
+ id: docs-yolo-2-run-it-on-paper
3
+ title: Full-port yolo strategy (HIGH RISK, paper) › 2. Run it on paper
4
+ kind: docs
5
+ page: yolo
6
+ page_title: Full-port yolo strategy (HIGH RISK, paper)
7
+ heading: 2. Run it on paper
8
+ anchor: 2-run-it-on-paper
9
+ url: https://dexterm.xyz/docs/yolo#2-run-it-on-paper
10
+ tags:
11
+ - docs
12
+ - yolo
13
+ - run
14
+ - paper
15
+ - full-port
16
+ - strategy
17
+ - high
18
+ - risk
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/yolo.md
26
+ date: 2026-10-16
27
+ ---
28
+
29
+ ```
30
+ dexterm autotrade run yolo --paper # live data, paper fills
31
+ dexterm autotrade run yolo --paper --replay builtin:yolo-rehearsal # a short shipped tape, no network for market data
32
+ ```
33
+
34
+ To run it next to other strategies, put it in `autotrade.json` and use `dexterm autotrade run --all --paper`, on its own bankroll or on a paper account (https://dexterm.xyz/docs/autotrade#paper-accounts) it shares with others. The LARP check runs there too on live data.
@@ -0,0 +1,32 @@
1
+ ---
2
+ id: docs-yolo-3-watch-it-and-stop-it
3
+ title: Full-port yolo strategy (HIGH RISK, paper) › 3. Watch it and stop it
4
+ kind: docs
5
+ page: yolo
6
+ page_title: Full-port yolo strategy (HIGH RISK, paper)
7
+ heading: 3. Watch it and stop it
8
+ anchor: 3-watch-it-and-stop-it
9
+ url: https://dexterm.xyz/docs/yolo#3-watch-it-and-stop-it
10
+ tags:
11
+ - docs
12
+ - yolo
13
+ - watch
14
+ - stop
15
+ - full-port
16
+ - strategy
17
+ - high
18
+ - risk
19
+ - paper
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/yolo.md
27
+ date: 2026-10-16
28
+ ---
29
+
30
+ - **Watch**: the Q screen in the TUI, `dexterm autotrade status`, and your Telegram bot (https://dexterm.xyz/docs/telegram) (entries, exits with their result, halts, the PnL card, all badged PAPER).
31
+ - **Stop**: `/kill` from your paired chat, `dexterm autotrade stop`, `dexterm autotrade flatten` (sell everything on paper), or Ctrl-C in the runner. `dexterm wallet panic` halts every run until `dexterm wallet resume`.
32
+ - **After**: the run's ledger (`dexterm autotrade audit`) is the record of every candidate, decision and paper fill.
@@ -0,0 +1,37 @@
1
+ ---
2
+ id: docs-yolo-the-rules
3
+ title: Full-port yolo strategy (HIGH RISK, paper) › The rules
4
+ kind: docs
5
+ page: yolo
6
+ page_title: Full-port yolo strategy (HIGH RISK, paper)
7
+ heading: The rules
8
+ anchor: the-rules
9
+ url: https://dexterm.xyz/docs/yolo#the-rules
10
+ tags:
11
+ - docs
12
+ - yolo
13
+ - rules
14
+ - full-port
15
+ - strategy
16
+ - high
17
+ - risk
18
+ - paper
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/yolo.md
26
+ date: 2026-10-16
27
+ ---
28
+
29
+ | part | what the preset does |
30
+ |---|---|
31
+ | entry | pairs 0 to 2 hours old, liquidity $25K or more, 5-minute volume $5K or more, LP 90% or more burned or locked, no mint or freeze authority (`liq >= 25K vol5m >= 5K lplocked >= 90 !flag:mint !flag:freeze`), top-10 at most 30%, dev at most 5%, and a first clean 5-minute push (+3% with buyers 1.3x sellers) |
32
+ | LARP check | on live data, the LARP score (https://dexterm.xyz/docs/larp) runs once per coin before it becomes a candidate: above 49 is refused, and a check that cannot run is refused too |
33
+ | size | one position at a time. On paper an entry is capped at 25% of the paper book, like every strategy |
34
+ | exit | at about +100% sell the slice that pays back the cost; the rest rides on a loose 50% trail. A liquidity pull (30% in 5 minutes), any dev sell, a top holder dumping, dead volume or a market-cap source split exits at once; a -50% stop and a 45-minute time stop (exit if below +20%) end a slow bleed |
35
+ | re-entry | never the same coin twice |
36
+
37
+ A rug or a pulled pool still fills near -100%, whatever the stop says, and a bag that cannot be sold counts as zero.
@@ -0,0 +1,34 @@
1
+ ---
2
+ id: docs-yolo-what-it-is
3
+ title: Full-port yolo strategy (HIGH RISK, paper) › What it is
4
+ kind: docs
5
+ page: yolo
6
+ page_title: Full-port yolo strategy (HIGH RISK, paper)
7
+ heading: What it is
8
+ anchor: what-it-is
9
+ url: https://dexterm.xyz/docs/yolo#what-it-is
10
+ tags:
11
+ - docs
12
+ - yolo
13
+ - full-port
14
+ - strategy
15
+ - high
16
+ - risk
17
+ - paper
18
+ confidence: high
19
+ owner: maintainers
20
+ origin: docs-generated
21
+ reviewed_by: generated@2026-10-16
22
+ generated_from: dexterm/site content/docs (task-1420)
23
+ sources:
24
+ - site/content/docs/yolo.md
25
+ date: 2026-10-16
26
+ ---
27
+
28
+ `yolo` is an autotrade (https://dexterm.xyz/docs/autotrade) preset for one idea: back one early-momentum entry at a time, take the cost back at about 2x, and let a free bag ride.
29
+
30
+ > **HIGH RISK. Experimental. Not financial advice.** Most early entries lose, young pairs rug often, and one rug at full size can zero a wallet in a single trade. The paper numbers show how often that happens on your history.
31
+
32
+ In dexterm, yolo runs on **paper only**. Every fill is simulated on your machine: there is no key, wallet or signer anywhere. If you trade its ideas live, you do it yourself in the Telegram trading bot of your choice (see Live trading (https://dexterm.xyz/docs/live-trading)).
33
+
34
+ The TUI, the `autotrade list` output, the run banner (also under `autotrade run --all`) and every Telegram start message mark a yolo run **⚠ HIGH RISK**.
@@ -0,0 +1,31 @@
1
+ ---
2
+ id: docs-yolo-what-it-will-not-do
3
+ title: Full-port yolo strategy (HIGH RISK, paper) › What it will not do
4
+ kind: docs
5
+ page: yolo
6
+ page_title: Full-port yolo strategy (HIGH RISK, paper)
7
+ heading: What it will not do
8
+ anchor: what-it-will-not-do
9
+ url: https://dexterm.xyz/docs/yolo#what-it-will-not-do
10
+ tags:
11
+ - docs
12
+ - yolo
13
+ - will
14
+ - full-port
15
+ - strategy
16
+ - high
17
+ - risk
18
+ - paper
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/yolo.md
26
+ date: 2026-10-16
27
+ ---
28
+
29
+ - Trade real funds. There is no live mode in dexterm: `--live` and a strategy in live mode are refused.
30
+ - Hold a key, sign a transaction or place an order in a trading bot.
31
+ - Promise anything: the replay numbers are history with stated limits, and the likely result of a full-port memecoin strategy is losing the stake.
@@ -0,0 +1,26 @@
1
+ ---
2
+ id: docs-yolo
3
+ title: Full-port yolo strategy (HIGH RISK, paper)
4
+ kind: docs
5
+ page: yolo
6
+ page_title: Full-port yolo strategy (HIGH RISK, paper)
7
+ url: https://dexterm.xyz/docs/yolo
8
+ tags:
9
+ - docs
10
+ - yolo
11
+ - full-port
12
+ - strategy
13
+ - high
14
+ - risk
15
+ - paper
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/yolo.md
23
+ date: 2026-10-16
24
+ ---
25
+
26
+ The yolo preset backs one early-momentum entry at a time and lets a free bag ride. In dexterm it runs on paper only, on its own bankroll or a paper account. Replay it on your own history first. Experimental, not financial advice.
@@ -0,0 +1,38 @@
1
+ ---
2
+ id: autotrade
3
+ title: Autotrade (paper) strategies, and how to propose a change by chat
4
+ tags:
5
+ - autotrade
6
+ - strategy
7
+ - paper
8
+ - backtest
9
+ - proposal
10
+ date: 2026-10-21
11
+ confidence: high
12
+ owner: maintainers
13
+ origin: primary-doc
14
+ reviewed_by: none
15
+ sources:
16
+ - dexterm AUTOTRADE-SPEC §1 (dexterm-strategy/1, exit profiles 1.0.0-1.2.0), §2a (the chat tools and their rules), §3 (backtests)
17
+ - packages/mcp/src/autotrade-tools.ts (deny-list, risk delta, proposals)
18
+ ---
19
+ **What it is.** Autotrade is PAPER only. A strategy is one `dexterm-strategy/1` file: entry (the screener filter grammar, age, safety gates, triggers), exits (exit profiles: stop, take-profit ladder, trails, time stop, thesis breaks, cost recovery, bag trail), sizing, risk limits, agent spend and the fill model. Presets (scalp, swing, runner, moonbag) are read-only; the user's own copies live in `~/.dexterm/strategies`.
20
+
21
+ **You only propose.** `strategy_propose_edit {id, ops, why}` takes JSON-patch ops (add / replace / remove, at most 20) on a user strategy; `strategy_propose_new {fromPreset, id, name, ops}` makes a paper copy of a preset. Neither applies anything. The user opens the Q screen, presses `o` to see the diff card and `y` to apply. When any risk number gets less safe the proposal is LOOSER and needs a second `y` on the "less safe" popup. Say that plainly; never claim a change is live before the user applied it.
22
+
23
+ **User-only fields.** `/mode`, `/bankroll`, `/agent/budgetUsdPerDay` and `/execution/minExitLiquidityUsd` are refused (also inside a replaced parent object), as are `/id`, `/version`, `/kind` and `/schema`. A model can never switch a strategy to live or raise its own spend: tell the user they can change those themselves.
24
+
25
+ **Paths.** Read `strategy_get` first and address its `document`. Profiles are a list: `/exits/profiles/0` may be `"builtin:swing"`; an op reaching into it (for example `/exits/profiles/0/trailingStop/trailPct`) inlines a copy first, automatically.
26
+
27
+ **Requests into ops (examples).**
28
+ - "exit faster" → replace `/exits/profiles/<i>/trailingStop/trailPct` lower (25 → 15) or its `armAtPct` lower.
29
+ - "take profit sooner" → lower the `tpLadder` `atPct` steps.
30
+ - "add a stop" → replace `hardStop` with `{"enabled": true, "atPct": -25, "why": "…"}`.
31
+ - "smaller size" → lower `/sizing/pct` (or `fixedUsd`, `riskPct`) and `/sizing/maxPctOfBankroll`.
32
+ - "fewer trades" → lower `/risk/maxEntriesPerDay` or `/risk/maxConcurrent`.
33
+ - "stricter coins" → add a screen clause (`top10 <= 25`) or tighten `/entry/safety/*`.
34
+ - "stop after a bad day" → lower `/risk/dailyLossHaltPct` or `/risk/drawdown/haltAtPct`.
35
+
36
+ **Then measure.** `strategy_backtest {proposalId}` runs the current version and the proposal on the same recorded tape (days <= 14, read-only, rate-limited). Quote the trade count and the data limits: small n means little, fills are modelled, and early-entry rugs are often unsellable. A backtest is never a prediction and never financial advice.
37
+
38
+ **Status.** `autotrade_status` shows the paper runner (heartbeat, halt, candidates, sessions and spend, positions) and the proposals waiting for the user.
@@ -6,7 +6,7 @@
6
6
  // MCP tool list / CLI by `packages/cli/src/app-help-gen.ts` (committed, run in tests), so they cannot drift
7
7
  // from the real app. This module only LOADS and SEARCHES them — it is read-only and dependency-free.
8
8
  //
9
- // It is kept out of the main KB store on purpose: the memecoin KB's "exactly 17 bundled entries" invariant
9
+ // It is kept out of the main KB store on purpose: the memecoin KB's "exactly 18 bundled entries" invariant
10
10
  // stays true, and a "how do I …" search hits app-help first without the two sets diluting each other.
11
11
  import path from 'node:path';
12
12
  import { fileURLToPath } from 'node:url';