dexterm-cli 0.1.3 → 0.1.4

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 (221) hide show
  1. package/dist/packages/cli/assets/claude/analyst-system.md +2 -1
  2. package/dist/packages/cli/src/app-help-gen.js +3 -3
  3. package/dist/packages/cli/src/docs-kb-gen.js +228 -0
  4. package/dist/packages/cli/src/doctor.js +22 -7
  5. package/dist/packages/cli/src/index.js +1 -1
  6. package/dist/packages/cli/src/kb-skill-cmd.js +3 -0
  7. package/dist/packages/cli/src/larp-detected.js +209 -0
  8. package/dist/packages/cli/src/live/token.js +38 -1
  9. package/dist/packages/cli/src/main.js +140 -1
  10. package/dist/packages/cli/src/mcp-follow.js +225 -0
  11. package/dist/packages/cli/src/spectate-cmd.js +14 -3
  12. package/dist/packages/cli/src/version.js +1 -1
  13. package/dist/packages/cli/src/x-cmd.js +11 -5
  14. package/dist/packages/mcp/assets/kb/app-help/spectate-an-agent.md +4 -1
  15. package/dist/packages/mcp/assets/kb/docs/docs-agents-capability-tiers-enforced-server-side.md +38 -0
  16. package/dist/packages/mcp/assets/kb/docs/docs-agents-install-in-one-command.md +49 -0
  17. package/dist/packages/mcp/assets/kb/docs/docs-agents-per-agent-mandates.md +35 -0
  18. package/dist/packages/mcp/assets/kb/docs/docs-agents-recipes.md +43 -0
  19. package/dist/packages/mcp/assets/kb/docs/docs-agents-red-team-coverage.md +30 -0
  20. package/dist/packages/mcp/assets/kb/docs/docs-agents-two-ways-to-connect.md +37 -0
  21. package/dist/packages/mcp/assets/kb/docs/docs-agents-untrusted-by-default.md +36 -0
  22. package/dist/packages/mcp/assets/kb/docs/docs-agents-watch-an-agent-work-spectator-view.md +35 -0
  23. package/dist/packages/mcp/assets/kb/docs/docs-agents.md +26 -0
  24. package/dist/packages/mcp/assets/kb/docs/docs-analyst-answer-style.md +35 -0
  25. package/dist/packages/mcp/assets/kb/docs/docs-analyst-if-claude-is-missing.md +25 -0
  26. package/dist/packages/mcp/assets/kb/docs/docs-analyst-it-knows-the-app.md +33 -0
  27. package/dist/packages/mcp/assets/kb/docs/docs-analyst-mcp-tools.md +33 -0
  28. package/dist/packages/mcp/assets/kb/docs/docs-analyst-plain-language-filters.md +25 -0
  29. package/dist/packages/mcp/assets/kb/docs/docs-analyst-skills.md +31 -0
  30. package/dist/packages/mcp/assets/kb/docs/docs-analyst-starting-a-run.md +33 -0
  31. package/dist/packages/mcp/assets/kb/docs/docs-analyst-what-it-can-change-three-tiers.md +33 -0
  32. package/dist/packages/mcp/assets/kb/docs/docs-analyst-what-it-sees.md +26 -0
  33. package/dist/packages/mcp/assets/kb/docs/docs-analyst-what-the-analyst-can-never-do.md +31 -0
  34. package/dist/packages/mcp/assets/kb/docs/docs-analyst.md +23 -0
  35. package/dist/packages/mcp/assets/kb/docs/docs-beginners-1-start-dexterm.md +35 -0
  36. package/dist/packages/mcp/assets/kb/docs/docs-beginners-2-open-a-real-coin-by-contract-address.md +43 -0
  37. package/dist/packages/mcp/assets/kb/docs/docs-beginners-3-read-the-safety-panel.md +40 -0
  38. package/dist/packages/mcp/assets/kb/docs/docs-beginners-4-read-the-holder-panel.md +35 -0
  39. package/dist/packages/mcp/assets/kb/docs/docs-beginners-5-optionally-ask-the-analyst.md +39 -0
  40. package/dist/packages/mcp/assets/kb/docs/docs-beginners-6-export-or-share-what-you-see.md +34 -0
  41. package/dist/packages/mcp/assets/kb/docs/docs-beginners-7-quit-safely.md +34 -0
  42. package/dist/packages/mcp/assets/kb/docs/docs-beginners-before-any-experimental-trading.md +33 -0
  43. package/dist/packages/mcp/assets/kb/docs/docs-beginners-check-the-installation-with-doctor.md +38 -0
  44. package/dist/packages/mcp/assets/kb/docs/docs-beginners-choose-a-setup-path.md +30 -0
  45. package/dist/packages/mcp/assets/kb/docs/docs-beginners-common-mistakes-and-recovery.md +30 -0
  46. package/dist/packages/mcp/assets/kb/docs/docs-beginners-copy-and-paste-without-surprises.md +39 -0
  47. package/dist/packages/mcp/assets/kb/docs/docs-beginners-if-data-says-unavailable-stale-or-rate-limited.md +35 -0
  48. package/dist/packages/mcp/assets/kb/docs/docs-beginners-if-dexterm-says-command-not-found.md +36 -0
  49. package/dist/packages/mcp/assets/kb/docs/docs-beginners-if-optional-help-is-unavailable.md +33 -0
  50. package/dist/packages/mcp/assets/kb/docs/docs-beginners-if-paste-does-nothing-or-pastes-twice.md +35 -0
  51. package/dist/packages/mcp/assets/kb/docs/docs-beginners-if-the-screen-looks-broken.md +33 -0
  52. package/dist/packages/mcp/assets/kb/docs/docs-beginners-if-you-typed-the-wrong-thing.md +33 -0
  53. package/dist/packages/mcp/assets/kb/docs/docs-beginners-install-node-js-first.md +36 -0
  54. package/dist/packages/mcp/assets/kb/docs/docs-beginners-linux.md +30 -0
  55. package/dist/packages/mcp/assets/kb/docs/docs-beginners-macos-homebrew.md +46 -0
  56. package/dist/packages/mcp/assets/kb/docs/docs-beginners-macos-or-linux-npm.md +39 -0
  57. package/dist/packages/mcp/assets/kb/docs/docs-beginners-macos.md +30 -0
  58. package/dist/packages/mcp/assets/kb/docs/docs-beginners-open-the-terminal.md +29 -0
  59. package/dist/packages/mcp/assets/kb/docs/docs-beginners-reopen-dexterm-later.md +36 -0
  60. package/dist/packages/mcp/assets/kb/docs/docs-beginners-ten-minute-first-win.md +30 -0
  61. package/dist/packages/mcp/assets/kb/docs/docs-beginners-terminal-shell-prompt-command-output-and-path.md +40 -0
  62. package/dist/packages/mcp/assets/kb/docs/docs-beginners-where-to-go-next.md +32 -0
  63. package/dist/packages/mcp/assets/kb/docs/docs-beginners-windows-expectations.md +29 -0
  64. package/dist/packages/mcp/assets/kb/docs/docs-beginners-windows-powershell-experimental.md +39 -0
  65. package/dist/packages/mcp/assets/kb/docs/docs-beginners-windows.md +30 -0
  66. package/dist/packages/mcp/assets/kb/docs/docs-beginners.md +29 -0
  67. package/dist/packages/mcp/assets/kb/docs/docs-cli-dexterm-help.md +31 -0
  68. package/dist/packages/mcp/assets/kb/docs/docs-cli-filter-grammar.md +37 -0
  69. package/dist/packages/mcp/assets/kb/docs/docs-cli-flags.md +27 -0
  70. package/dist/packages/mcp/assets/kb/docs/docs-cli-invocations.md +43 -0
  71. package/dist/packages/mcp/assets/kb/docs/docs-cli-presets.md +26 -0
  72. package/dist/packages/mcp/assets/kb/docs/docs-cli-scan-commands.md +26 -0
  73. package/dist/packages/mcp/assets/kb/docs/docs-cli-sort-keys.md +27 -0
  74. package/dist/packages/mcp/assets/kb/docs/docs-cli-subcommands.md +26 -0
  75. package/dist/packages/mcp/assets/kb/docs/docs-cli.md +25 -0
  76. package/dist/packages/mcp/assets/kb/docs/docs-configuration-environment-variables.md +45 -0
  77. package/dist/packages/mcp/assets/kb/docs/docs-configuration-files-on-disk.md +41 -0
  78. package/dist/packages/mcp/assets/kb/docs/docs-configuration-headless-recorder-dexterm-record.md +44 -0
  79. package/dist/packages/mcp/assets/kb/docs/docs-configuration-history-recorder.md +33 -0
  80. package/dist/packages/mcp/assets/kb/docs/docs-configuration-packs.md +38 -0
  81. package/dist/packages/mcp/assets/kb/docs/docs-configuration-price-display-mode.md +35 -0
  82. package/dist/packages/mcp/assets/kb/docs/docs-configuration-push-alerts-and-dexterm-watch.md +45 -0
  83. package/dist/packages/mcp/assets/kb/docs/docs-configuration-rules-engine.md +36 -0
  84. package/dist/packages/mcp/assets/kb/docs/docs-configuration-the-analyst-s-launch.md +27 -0
  85. package/dist/packages/mcp/assets/kb/docs/docs-configuration-the-optional-free-rpc-key.md +42 -0
  86. package/dist/packages/mcp/assets/kb/docs/docs-configuration-themes-and-keymaps.md +29 -0
  87. package/dist/packages/mcp/assets/kb/docs/docs-configuration-themes-and-look.md +27 -0
  88. package/dist/packages/mcp/assets/kb/docs/docs-configuration-widgets.md +31 -0
  89. package/dist/packages/mcp/assets/kb/docs/docs-configuration-workspaces.md +30 -0
  90. package/dist/packages/mcp/assets/kb/docs/docs-configuration.md +25 -0
  91. package/dist/packages/mcp/assets/kb/docs/docs-copy-trading-stage-1-follow-a-wallet-see-what-it-does.md +51 -0
  92. package/dist/packages/mcp/assets/kb/docs/docs-copy-trading-stage-2-the-one-key-mirror-ticket-a-proposal.md +56 -0
  93. package/dist/packages/mcp/assets/kb/docs/docs-copy-trading-stage-3-capped-auto-mirror-default-off-less.md +47 -0
  94. package/dist/packages/mcp/assets/kb/docs/docs-copy-trading-what-is-proven-what-is-not.md +36 -0
  95. package/dist/packages/mcp/assets/kb/docs/docs-copy-trading.md +31 -0
  96. package/dist/packages/mcp/assets/kb/docs/docs-data-sources-cache.md +32 -0
  97. package/dist/packages/mcp/assets/kb/docs/docs-data-sources-health-registry.md +29 -0
  98. package/dist/packages/mcp/assets/kb/docs/docs-data-sources-rate-limits-and-pacing.md +32 -0
  99. package/dist/packages/mcp/assets/kb/docs/docs-data-sources-request-budget-meter.md +30 -0
  100. package/dist/packages/mcp/assets/kb/docs/docs-data-sources-sources.md +47 -0
  101. package/dist/packages/mcp/assets/kb/docs/docs-data-sources-the-helius-credit-meter.md +30 -0
  102. package/dist/packages/mcp/assets/kb/docs/docs-data-sources.md +27 -0
  103. package/dist/packages/mcp/assets/kb/docs/docs-getting-started-dexterm-doctor.md +33 -0
  104. package/dist/packages/mcp/assets/kb/docs/docs-getting-started-first-run.md +34 -0
  105. package/dist/packages/mcp/assets/kb/docs/docs-getting-started-install.md +71 -0
  106. package/dist/packages/mcp/assets/kb/docs/docs-getting-started-next.md +32 -0
  107. package/dist/packages/mcp/assets/kb/docs/docs-getting-started-requirements.md +35 -0
  108. package/dist/packages/mcp/assets/kb/docs/docs-getting-started-running-the-tests.md +34 -0
  109. package/dist/packages/mcp/assets/kb/docs/docs-getting-started-supported-platforms.md +44 -0
  110. package/dist/packages/mcp/assets/kb/docs/docs-getting-started-updating.md +28 -0
  111. package/dist/packages/mcp/assets/kb/docs/docs-getting-started.md +27 -0
  112. package/dist/packages/mcp/assets/kb/docs/docs-keyboard-global-keys.md +26 -0
  113. package/dist/packages/mcp/assets/kb/docs/docs-keyboard-keys-handled-by-the-loop.md +29 -0
  114. package/dist/packages/mcp/assets/kb/docs/docs-keyboard-per-screen-keys.md +26 -0
  115. package/dist/packages/mcp/assets/kb/docs/docs-keyboard-what-shows.md +27 -0
  116. package/dist/packages/mcp/assets/kb/docs/docs-keyboard.md +26 -0
  117. package/dist/packages/mcp/assets/kb/docs/docs-larp-measured-accuracy.md +55 -0
  118. package/dist/packages/mcp/assets/kb/docs/docs-larp-open-link-keys.md +26 -0
  119. package/dist/packages/mcp/assets/kb/docs/docs-larp-paste-a-coin-on-the-web.md +35 -0
  120. package/dist/packages/mcp/assets/kb/docs/docs-larp-the-verdict.md +29 -0
  121. package/dist/packages/mcp/assets/kb/docs/docs-larp-timestamped-follow-up-drafts.md +35 -0
  122. package/dist/packages/mcp/assets/kb/docs/docs-larp-what-it-looks-at.md +33 -0
  123. package/dist/packages/mcp/assets/kb/docs/docs-larp.md +24 -0
  124. package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-degraded-states-you-will-see.md +36 -0
  125. package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-free-vs-paid-x-api-tiers-your-bill-your-limits.md +37 -0
  126. package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-kol-lists-and-the-per-handle-filter.md +28 -0
  127. package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-tests.md +25 -0
  128. package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-what-is-read-and-when.md +35 -0
  129. package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-what-you-set-up-once.md +40 -0
  130. package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-where-the-tokens-live.md +27 -0
  131. package/dist/packages/mcp/assets/kb/docs/docs-login-with-x.md +26 -0
  132. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-a-live-ticket.md +42 -0
  133. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-before-you-press-size-vs-caps.md +34 -0
  134. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-devnet-signer-mainnet-token.md +35 -0
  135. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-jupiter-rate-limits.md +33 -0
  136. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-link-a-wallet.md +32 -0
  137. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-live-trading-devnet-first.md +30 -0
  138. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-mainnet.md +31 -0
  139. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-order-plans-and-standing-mandates.md +44 -0
  140. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-panic.md +31 -0
  141. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-pnl-cards.md +37 -0
  142. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-live-fire-path-devnet-the-fast-wallet.md +41 -0
  143. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-signer-process.md +34 -0
  144. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-ticket.md +31 -0
  145. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-wallet.md +34 -0
  146. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-trade-moments.md +32 -0
  147. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-what-the-live-path-keeps.md +37 -0
  148. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-your-first-live-trade.md +41 -0
  149. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading.md +32 -0
  150. package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-bubble-map-popup.md +27 -0
  151. package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-build-the-native-window.md +33 -0
  152. package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-config-dexterm-popup-json.md +38 -0
  153. package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-docking-macos.md +27 -0
  154. package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-keys-in-the-popup.md +30 -0
  155. package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-market-cap-axis.md +28 -0
  156. package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-security-model.md +33 -0
  157. package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-token-and-feeds-popups.md +38 -0
  158. package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-what-it-shows.md +30 -0
  159. package/dist/packages/mcp/assets/kb/docs/docs-popup-chart.md +27 -0
  160. package/dist/packages/mcp/assets/kb/docs/docs-scan-cost-control.md +28 -0
  161. package/dist/packages/mcp/assets/kb/docs/docs-scan-keys-flag-command.md +34 -0
  162. package/dist/packages/mcp/assets/kb/docs/docs-scan-safety-four-layers.md +32 -0
  163. package/dist/packages/mcp/assets/kb/docs/docs-scan-states.md +27 -0
  164. package/dist/packages/mcp/assets/kb/docs/docs-scan-the-read.md +25 -0
  165. package/dist/packages/mcp/assets/kb/docs/docs-scan-triggers-and-score.md +37 -0
  166. package/dist/packages/mcp/assets/kb/docs/docs-scan.md +24 -0
  167. package/dist/packages/mcp/assets/kb/docs/docs-scorecard-frozen-canary.md +30 -0
  168. package/dist/packages/mcp/assets/kb/docs/docs-scorecard-frozen-task-1401-evaluation.md +35 -0
  169. package/dist/packages/mcp/assets/kb/docs/docs-scorecard-latest-skill-care-run.md +33 -0
  170. package/dist/packages/mcp/assets/kb/docs/docs-scorecard-links-only-larp-baseline-where-it-is-weak.md +35 -0
  171. package/dist/packages/mcp/assets/kb/docs/docs-scorecard-not-measured.md +29 -0
  172. package/dist/packages/mcp/assets/kb/docs/docs-scorecard-rug-verdict-rules.md +33 -0
  173. package/dist/packages/mcp/assets/kb/docs/docs-scorecard-source-and-rebuild.md +31 -0
  174. package/dist/packages/mcp/assets/kb/docs/docs-scorecard.md +27 -0
  175. package/dist/packages/mcp/assets/kb/docs/docs-screens-1-screener.md +35 -0
  176. package/dist/packages/mcp/assets/kb/docs/docs-screens-2-new-pairs.md +28 -0
  177. package/dist/packages/mcp/assets/kb/docs/docs-screens-3-watchlist.md +27 -0
  178. package/dist/packages/mcp/assets/kb/docs/docs-screens-4-analyst-tab.md +28 -0
  179. package/dist/packages/mcp/assets/kb/docs/docs-screens-bubble-map.md +32 -0
  180. package/dist/packages/mcp/assets/kb/docs/docs-screens-coin-images.md +32 -0
  181. package/dist/packages/mcp/assets/kb/docs/docs-screens-live-holder-and-rug-signals.md +51 -0
  182. package/dist/packages/mcp/assets/kb/docs/docs-screens-order-plans.md +26 -0
  183. package/dist/packages/mcp/assets/kb/docs/docs-screens-paper-ticket-and-positions.md +29 -0
  184. package/dist/packages/mcp/assets/kb/docs/docs-screens-the-look.md +29 -0
  185. package/dist/packages/mcp/assets/kb/docs/docs-screens-token-screen.md +36 -0
  186. package/dist/packages/mcp/assets/kb/docs/docs-screens-trending-social-and-kol-lists.md +34 -0
  187. package/dist/packages/mcp/assets/kb/docs/docs-screens.md +26 -0
  188. package/dist/packages/mcp/assets/kb/docs/docs-spectator-1-the-agent-activity-window-follow-mode.md +56 -0
  189. package/dist/packages/mcp/assets/kb/docs/docs-spectator-2-the-read-only-stream-spectate.md +42 -0
  190. package/dist/packages/mcp/assets/kb/docs/docs-spectator-3-save-and-replay-record-file-dexterm-spectate.md +41 -0
  191. package/dist/packages/mcp/assets/kb/docs/docs-spectator-follow-over-mcp-in-the-running-terminal.md +39 -0
  192. package/dist/packages/mcp/assets/kb/docs/docs-spectator-limits.md +36 -0
  193. package/dist/packages/mcp/assets/kb/docs/docs-spectator-quick-start.md +37 -0
  194. package/dist/packages/mcp/assets/kb/docs/docs-spectator-security-model.md +35 -0
  195. package/dist/packages/mcp/assets/kb/docs/docs-spectator-see-also.md +29 -0
  196. package/dist/packages/mcp/assets/kb/docs/docs-spectator-streaming-it.md +32 -0
  197. package/dist/packages/mcp/assets/kb/docs/docs-spectator-the-three-surfaces.md +37 -0
  198. package/dist/packages/mcp/assets/kb/docs/docs-spectator-what-is-redacted.md +35 -0
  199. package/dist/packages/mcp/assets/kb/docs/docs-spectator.md +29 -0
  200. package/dist/packages/mcp/assets/kb/docs/docs-troubleshooting-common-questions.md +33 -0
  201. package/dist/packages/mcp/assets/kb/docs/docs-troubleshooting-doctor-lines.md +36 -0
  202. package/dist/packages/mcp/assets/kb/docs/docs-troubleshooting-in-app-messages.md +42 -0
  203. package/dist/packages/mcp/assets/kb/docs/docs-troubleshooting-reporting-a-problem.md +25 -0
  204. package/dist/packages/mcp/assets/kb/docs/docs-troubleshooting.md +23 -0
  205. package/dist/packages/mcp/assets/kb/docs/docs-voice-doctor.md +26 -0
  206. package/dist/packages/mcp/assets/kb/docs/docs-voice-it-clarifies-it-never-guesses.md +36 -0
  207. package/dist/packages/mcp/assets/kb/docs/docs-voice-latency.md +38 -0
  208. package/dist/packages/mcp/assets/kb/docs/docs-voice-linux-and-windows.md +32 -0
  209. package/dist/packages/mcp/assets/kb/docs/docs-voice-privacy.md +26 -0
  210. package/dist/packages/mcp/assets/kb/docs/docs-voice-still-unverified.md +27 -0
  211. package/dist/packages/mcp/assets/kb/docs/docs-voice-the-voice-neural-by-default.md +48 -0
  212. package/dist/packages/mcp/assets/kb/docs/docs-voice-what-it-can-never-do.md +27 -0
  213. package/dist/packages/mcp/assets/kb/docs/docs-voice-what-you-can-say.md +38 -0
  214. package/dist/packages/mcp/assets/kb/docs/docs-voice.md +25 -0
  215. package/dist/packages/mcp/src/app-help.js +123 -0
  216. package/dist/packages/mcp/src/firewall.js +2 -2
  217. package/dist/packages/mcp/src/index.js +5 -4
  218. package/dist/packages/mcp/src/server.js +56 -18
  219. package/dist/packages/mcp/src/spectator-sink.js +74 -2
  220. package/dist/packages/voice/src/stt/whisper.js +4 -2
  221. package/package.json +6 -5
@@ -0,0 +1,34 @@
1
+ ---
2
+ id: docs-paper-trading-the-wallet
3
+ title: Paper trading, live trading and the safety model › The wallet
4
+ kind: docs
5
+ page: paper-trading
6
+ page_title: Paper trading, live trading and the safety model
7
+ heading: The wallet
8
+ anchor: the-wallet
9
+ url: https://dexterm.xyz/docs/paper-trading#the-wallet
10
+ tags:
11
+ - docs
12
+ - paper-trading
13
+ - wallet
14
+ - paper
15
+ - trading
16
+ - live
17
+ - safety
18
+ - model
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/paper-trading.md
26
+ date: 2026-10-16
27
+ ---
28
+
29
+ - starts at (generated from the app: see https://dexterm.xyz/docs/paper-trading#the-wallet; app-help has the exact keys and commands) SOL (configurable), persisted in the same SQLite file as the cache and watchlist (`--db`; `:memory:` for a throwaway session);
30
+ - books every fill append-only with the simulated fee (5 000 lamports per fill, labelled as a simulation);
31
+ - marks positions from DexScreener's USD price over the live SOL price every (generated from the app: see https://dexterm.xyz/docs/paper-trading#the-wallet; app-help has the exact keys and commands) s on the positions screen;
32
+ - shows a `◈ POSITION · PAPER` row under the chart on any token you hold, and the same row plus entry line and fill markers in the chart popup (https://dexterm.xyz/docs/popup-chart). A confirmed LIVE fill shows the same way, marked live, read from the signer's own ledger.
33
+
34
+ The analyst can open a PAPER ticket for you (`open_ticket`, pre-filled, editing phase) when you ask it to buy or sell. It cannot size it past what you typed, arm it, confirm it, or flip it LIVE; it tells you to confirm yourself.
@@ -0,0 +1,32 @@
1
+ ---
2
+ id: docs-paper-trading-trade-moments
3
+ title: Paper trading, live trading and the safety model › Trade moments
4
+ kind: docs
5
+ page: paper-trading
6
+ page_title: Paper trading, live trading and the safety model
7
+ heading: Trade moments
8
+ anchor: trade-moments
9
+ url: https://dexterm.xyz/docs/paper-trading#trade-moments
10
+ tags:
11
+ - docs
12
+ - paper-trading
13
+ - trade
14
+ - moments
15
+ - paper
16
+ - trading
17
+ - live
18
+ - safety
19
+ - model
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/paper-trading.md
27
+ date: 2026-10-16
28
+ ---
29
+
30
+ The cyberspace look reacts to a trade, but only to its **result**. A confirmed buy fires a green shockwave from the ticket with coins streaming up; a profitable sell a gold burst and gold rain; a loss red static that collapses down the screen (no shake, no mockery); a signer refusal or a failed send a red lockout flicker in the bands; and while a send is in flight a neutral cyan scanning sweep that is never a verdict. Normal and fever tiers differ in length and density; `--calm` shows none of it and the result card still lands at once; any key skips a running moment.
31
+
32
+ Two things are mechanical, not conventions. **Only a settled outcome can fire a moment:** the ticket reports exactly one outcome per booked paper fill, confirmed live fill, signer refusal or send failure, and the effects engine refuses anything without a confirmed-or-failed status; a quote, a PLAN, an armed order or a `send-unknown` (the chain may still confirm it) fires nothing, and a test checks the one call site. **The ticket is shielded:** every cell of the ticket and the PAPER / LIVE banner is marked off-limits on the cell buffer, so rain, glitch, datamosh, scanlines and the moments cannot write a glyph, a colour or a background into it in any phase (tested byte-identical against a calm render at 176, 120 and 90 columns). `--sound` (or `DEXTERM_SOUND=1`) adds short synthesized cues after the same outcome: a buy chirp, a sell sweep then a chime or a thud, a buzz on a failure. Muted by default; the WAVs are written once to `~/.dexterm/sounds` and played detached so the render loop never waits.
@@ -0,0 +1,37 @@
1
+ ---
2
+ id: docs-paper-trading-what-the-live-path-keeps
3
+ title: Paper trading, live trading and the safety model › What the live path keeps
4
+ kind: docs
5
+ page: paper-trading
6
+ page_title: Paper trading, live trading and the safety model
7
+ heading: What the live path keeps
8
+ anchor: what-the-live-path-keeps
9
+ url: https://dexterm.xyz/docs/paper-trading#what-the-live-path-keeps
10
+ tags:
11
+ - docs
12
+ - paper-trading
13
+ - live
14
+ - path
15
+ - keeps
16
+ - paper
17
+ - trading
18
+ - safety
19
+ - model
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/paper-trading.md
27
+ date: 2026-10-16
28
+ ---
29
+
30
+ These are the invariants from the spec; hold us to them:
31
+
32
+ 1. **Non-custodial.** You hold the keys. dexterm builds, simulates and hands off; your wallet signs. The Phantom bridge stores only your public key.
33
+ 2. **Keypress gate on by default.** Models and voice create proposals; arming needs a physical keypress or a wallet approval. Opting out, if ever offered, needs an explicit "this is less safe" confirmation, is local, logged and reversible, and the signer caps still apply.
34
+ 3. **Caps live in the signer, not the UI.** The signer re-simulates and re-checks every transaction (per-trade and daily USD caps, price-impact and slippage ceilings, the SOL-out cap, the token-balance diff, a positive description of what a Jupiter swap looks like: exactly one route instruction bound to your order, no token transfers, burns or approvals to anyone) and refuses out of policy even if the UI, the model or a popup is compromised.
35
+ 4. **The AI has no interface to the signer.** No build, sign or send tool exists for the model; its only write-shaped tool opens a PAPER ticket, and a test proves that even on a live-capable context it yields a paper ticket and the signer is never called. The scan mode and the MCP server import nothing signer-shaped.
36
+
37
+ > warn: paper results are not predictive, and live results are real. Paper fills take the quote at its word; a real fill pays real slippage, priority fees and failed transactions, and most memecoins go to zero. Nothing here is financial advice.
@@ -0,0 +1,41 @@
1
+ ---
2
+ id: docs-paper-trading-your-first-live-trade
3
+ title: Paper trading, live trading and the safety model › Live trading (devnet first) › Your first live trade
4
+ kind: docs
5
+ page: paper-trading
6
+ page_title: Paper trading, live trading and the safety model
7
+ heading: Your first live trade
8
+ anchor: your-first-live-trade
9
+ url: https://dexterm.xyz/docs/paper-trading#your-first-live-trade
10
+ tags:
11
+ - docs
12
+ - paper-trading
13
+ - first
14
+ - live
15
+ - trade
16
+ - trading
17
+ - devnet
18
+ - paper
19
+ - safety
20
+ - model
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/paper-trading.md
28
+ date: 2026-10-16
29
+ ---
30
+
31
+ A walkthrough for one small, real swap inside the default caps. It is the path the verifier follows with a devnet signer (every step up to the confirm behaves the same, and the devnet wall above is where it stops) and on fixtures; nobody has yet run it to a mainnet fill, and nothing here is advice to.
32
+
33
+ 1. **Link your wallet.** `dexterm wallet link` opens Phantom on a loopback page; connect and sign the nonce. `dexterm wallet status` shows the public key. dexterm never sees a key.
34
+ 2. **Fund a small mainnet wallet.** Use a wallet that holds only what you are willing to lose plus fees: for a $5 trade at SOL $108 that is about 0.06 SOL (0.046 for the swap, the rest for the token-account rent of 0.00204 SOL, network and priority fees and a reserve). The per-trade cap is $5 and the daily cap $20 by default; the hard ceilings are $500 and $2000 and only `--mainnet` can raise anything.
35
+ 3. **Start on mainnet with the caps you mean.** `dexterm --mainnet --max-usd 5` (add `--daily-usd 20`, `--max-sol-out 1`, `--max-slippage-bps 500` to be explicit). The ticket header turns red: `⚠ LIVE · MAINNET — REAL FUNDS · caps $5/trade $20/day`. The signer process starts on the first LIVE action with exactly these flags, classifies the network from the RPC it talks to, and needs two independent SOL/USD sources within 3% before it will price anything.
36
+ 4. **Open a ticket and size it under the cap.** `B` on a token, `L` to flip LIVE, type a size; watch the cap line and press `f` if it is red (it sets the largest size that fits, fees and rent included). Slippage stays at 50 bps unless you change it; impact over 3% is refused.
37
+ 5. **Build the plan.** `⏎`. If Jupiter rate-limits, the ticket waits and retries by itself (`r` now, `esc` cancels). The PLAN lists what will be signed, what you pay and receive, the minimum received, the fee, the route, the simulation result (how much SOL leaves your wallet), the SOL/USD price and its sources, and the caps verdict; `within caps` means the signer will not refuse it at this moment.
38
+ 6. **Confirm.** `Y`. The signer re-checks the caps, reserves the USD on the daily ledger, opens the sign page. The page **connects first** (a Connect prompt the first time on this origin, silent after that), shows the connected account and refuses one that is not the linked wallet (`Phantom is on account … but dexterm linked …`), then asks Phantom to sign; approve in Phantom. If Phantom answers 4100 ("not authorized") the page says so and what to do: press Approve again and accept the Connect prompt, or allow `127.0.0.1:41291` under Phantom's Trusted apps, then confirm the trade again in dexterm; nothing was signed. The signed bytes must be the same message with your signature (a Lighthouse tail appended by Phantom is the one tolerated change); they are decoded, policy-checked, bound and re-simulated with fresh balances, then submitted and confirmed.
39
+ 7. **Expected outcome.** `✓ LIVE MAINNET BUY confirmed — 0.0144 AVGOx @ 2.778 SOL · sig …` with the signature; the position appears under the chart marked live and on the positions screen under LIVE POSITIONS; the daily ledger shows the spend (`Caps … spent $4.32`). A refusal (`✗ REFUSED by the signer — per-trade-cap: …`) means nothing was signed or sent. `send-unknown` with a signature means the transaction may have been broadcast: check the explorer, do not resend.
40
+ 8. **Panic key.** `/wallet panic` in the app or `dexterm wallet panic` from any shell disables live signing everywhere at once (kill-switch file, locked ledger, plans forgotten). `dexterm wallet resume` on a real TTY is the only way back.
41
+ 9. **Read the journal.** `dexterm wallet status` shows the linked key, the signer's network and caps, today's spend and the panic state. Confirmed real fills live in `~/.dexterm/live-trades.sqlite` (the signer's own ledger, read by the positions screen); the daily USD reservations in the shared cap ledger `~/.dexterm/caps.sqlite`; the signer's log lines (including the full text of any failed simulation) go to the app log. Order plans, if you use them, append to `~/.dexterm/plans.journal`, which `dexterm plan journal --verify` recomputes.
@@ -0,0 +1,32 @@
1
+ ---
2
+ id: docs-paper-trading
3
+ title: Paper trading, live trading and the safety model
4
+ kind: docs
5
+ page: paper-trading
6
+ page_title: Paper trading, live trading and the safety model
7
+ url: https://dexterm.xyz/docs/paper-trading
8
+ tags:
9
+ - docs
10
+ - paper-trading
11
+ - paper
12
+ - trading
13
+ - live
14
+ - safety
15
+ - model
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/paper-trading.md
23
+ date: 2026-10-16
24
+ ---
25
+
26
+ The PAPER ticket, the simulated wallet, the confirm gate; the LIVE path behind a separate signer process (devnet first), and the invariants it keeps.
27
+
28
+ Trading in dexterm is **PAPER by default**: a simulated wallet priced from live, keyless Jupiter quotes. Nothing is signed, no key is held, no transaction is sent, and the paper code imports no wallet or signing library of any kind. Every ticket and positions frame says so in a banner that is never hidden.
29
+
30
+ A **LIVE** path exists on main, devnet first and labelled in progress: your own Phantom signs, a separate signer process holds the caps, and a Jupiter swap (a mainnet transaction) is refused unless you start dexterm with `--mainnet`. It is described in Live trading (devnet first) (https://dexterm.xyz/docs/paper-trading#live-trading-devnet-first) below.
31
+
32
+ PAPER positions on sample data
@@ -0,0 +1,27 @@
1
+ ---
2
+ id: docs-popup-chart-bubble-map-popup
3
+ title: Popup chart › Bubble map popup
4
+ kind: docs
5
+ page: popup-chart
6
+ page_title: Popup chart
7
+ heading: Bubble map popup
8
+ anchor: bubble-map-popup
9
+ url: https://dexterm.xyz/docs/popup-chart#bubble-map-popup
10
+ tags:
11
+ - docs
12
+ - popup-chart
13
+ - bubble
14
+ - map
15
+ - popup
16
+ - chart
17
+ confidence: high
18
+ owner: maintainers
19
+ origin: docs-generated
20
+ reviewed_by: generated@2026-10-16
21
+ generated_from: dexterm/site content/docs (task-1420)
22
+ sources:
23
+ - site/content/docs/popup-chart.md
24
+ date: 2026-10-16
25
+ ---
26
+
27
+ `M` on the bubble map screen (https://dexterm.xyz/docs/screens#bubble-map) opens the same holder graph as real circles in a second HUD window (the chart can stay open). Hover a bubble for the rule behind its colour; click to select it, and the terminal selects the same holder; `m` flips to a treemap, `z` zooms the selected cluster, `esc` closes. The strip under the map carries the sample-captioned insights (top-10 raw and ex-pool, and the main-risk line when a counted owner holds more than 30 %) and a WHY THIS LABEL panel that leads with the selected holder's class (POOL, CURVE, VAULT, LOCK, CEX, BURN, DEV, LINKED or UNLABELLED) and its on-chain reason, then every rule, confidence and evidence line. The page receives a **text-only view model** over the local WebSocket (addresses, shares, rule text, numbers): no keys, no URLs, no fetches of its own; an unavailable or degraded scan shows a banner and never a fake map. Same server, ticket, CSP and event allow-list as the chart; the only event the page may send back is the validated address of a clicked holder.
@@ -0,0 +1,33 @@
1
+ ---
2
+ id: docs-popup-chart-build-the-native-window
3
+ title: Popup chart › Build the native window
4
+ kind: docs
5
+ page: popup-chart
6
+ page_title: Popup chart
7
+ heading: Build the native window
8
+ anchor: build-the-native-window
9
+ url: https://dexterm.xyz/docs/popup-chart#build-the-native-window
10
+ tags:
11
+ - docs
12
+ - popup-chart
13
+ - build
14
+ - native
15
+ - window
16
+ - popup
17
+ - chart
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/popup-chart.md
25
+ date: 2026-10-16
26
+ ---
27
+
28
+ ```sh
29
+ $ cd packages/popup && npm run build:shell # cargo build --release, about a minute the first time
30
+ $ dexterm popup --self-test # which path is active, hotkey registration, measured fps
31
+ ```
32
+
33
+ `install.sh` builds it when `cargo` is present (`DEXTERM_SKIP_SHELL=1` skips); `dexterm doctor` has a "Chart window" line that says ready or prints the command. `DEXTERM_POPUP_SHELL` points at a prebuilt binary. Without the shell every feature works in the browser; the native window is an enhancement, never a requirement.
@@ -0,0 +1,38 @@
1
+ ---
2
+ id: docs-popup-chart-config-dexterm-popup-json
3
+ title: Popup chart › Config: ~/.dexterm/popup.json
4
+ kind: docs
5
+ page: popup-chart
6
+ page_title: Popup chart
7
+ heading: Config: ~/.dexterm/popup.json
8
+ anchor: config-dexterm-popup-json
9
+ url: https://dexterm.xyz/docs/popup-chart#config-dexterm-popup-json
10
+ tags:
11
+ - docs
12
+ - popup-chart
13
+ - config
14
+ - dexterm
15
+ - popup
16
+ - json
17
+ - chart
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/popup-chart.md
25
+ date: 2026-10-16
26
+ ---
27
+
28
+ ```json
29
+ {
30
+ "hotkey": "(generated from the app: see https://dexterm.xyz/docs/popup-chart#config-dexterm-popup-json; app-help has the exact keys and commands)",
31
+ "hotkeyClose": "(generated from the app: see https://dexterm.xyz/docs/popup-chart#config-dexterm-popup-json; app-help has the exact keys and commands)",
32
+ "dock": { "enabled": true, "width": (generated from the app: see https://dexterm.xyz/docs/popup-chart#config-dexterm-popup-json; app-help has the exact keys and commands), "follow": true, "followEvery": (generated from the app: see https://dexterm.xyz/docs/popup-chart#config-dexterm-popup-json; app-help has the exact keys and commands) },
33
+ "rain": { "enabled": true, "speedScale": 1, "density": (generated from the app: see https://dexterm.xyz/docs/popup-chart#config-dexterm-popup-json; app-help has the exact keys and commands) },
34
+ "fpsCap": (generated from the app: see https://dexterm.xyz/docs/popup-chart#config-dexterm-popup-json; app-help has the exact keys and commands)
35
+ }
36
+ ```
37
+
38
+ Everything is optional; a missing or malformed file falls back to these defaults and never stops a popup from opening. An empty hotkey string disables that chord. `DEXTERM_HOME` moves the directory.
@@ -0,0 +1,27 @@
1
+ ---
2
+ id: docs-popup-chart-docking-macos
3
+ title: Popup chart › Docking (macOS)
4
+ kind: docs
5
+ page: popup-chart
6
+ page_title: Popup chart
7
+ heading: Docking (macOS)
8
+ anchor: docking-macos
9
+ url: https://dexterm.xyz/docs/popup-chart#docking-macos
10
+ tags:
11
+ - docs
12
+ - popup-chart
13
+ - docking
14
+ - macos
15
+ - popup
16
+ - chart
17
+ confidence: high
18
+ owner: maintainers
19
+ origin: docs-generated
20
+ reviewed_by: generated@2026-10-16
21
+ generated_from: dexterm/site content/docs (task-1420)
22
+ sources:
23
+ - site/content/docs/popup-chart.md
24
+ date: 2026-10-16
25
+ ---
26
+
27
+ The window opens flush right of your terminal window with the same top and height; left of it when the right has no room; pinned at the screen edge (on top) when neither side fits; at the main screen's right edge when the terminal is not Terminal.app or iTerm2. It follows the terminal while open (one lightweight loop, about 0.3% CPU) until you drag the chart's title strip. It has no Dock icon. The terminal may ask once for Automation permission to read its own window bounds; if you deny, the chart opens at the screen edge instead of docked.
@@ -0,0 +1,30 @@
1
+ ---
2
+ id: docs-popup-chart-keys-in-the-popup
3
+ title: Popup chart › Keys in the popup
4
+ kind: docs
5
+ page: popup-chart
6
+ page_title: Popup chart
7
+ heading: Keys in the popup
8
+ anchor: keys-in-the-popup
9
+ url: https://dexterm.xyz/docs/popup-chart#keys-in-the-popup
10
+ tags:
11
+ - docs
12
+ - popup-chart
13
+ - keys
14
+ - popup
15
+ - chart
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/popup-chart.md
23
+ date: 2026-10-16
24
+ ---
25
+
26
+ Click the window first: it opens unfocused so it never steals the terminal's keyboard. (generated from the app: see https://dexterm.xyz/docs/popup-chart#keys-in-the-popup; app-help has the exact keys and commands)
27
+
28
+ (generated from the app: see https://dexterm.xyz/docs/popup-chart#keys-in-the-popup; app-help has the exact keys and commands)
29
+
30
+ Global hotkeys (configurable in `popup.json`): `(generated from the app: see https://dexterm.xyz/docs/popup-chart#keys-in-the-popup; app-help has the exact keys and commands)` shows or hides every popup, `(generated from the app: see https://dexterm.xyz/docs/popup-chart#keys-in-the-popup; app-help has the exact keys and commands)` closes them all.
@@ -0,0 +1,28 @@
1
+ ---
2
+ id: docs-popup-chart-market-cap-axis
3
+ title: Popup chart › Market cap axis
4
+ kind: docs
5
+ page: popup-chart
6
+ page_title: Popup chart
7
+ heading: Market cap axis
8
+ anchor: market-cap-axis
9
+ url: https://dexterm.xyz/docs/popup-chart#market-cap-axis
10
+ tags:
11
+ - docs
12
+ - popup-chart
13
+ - market
14
+ - cap
15
+ - axis
16
+ - popup
17
+ - chart
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/popup-chart.md
25
+ date: 2026-10-16
26
+ ---
27
+
28
+ When the terminal is in market cap mode (https://dexterm.xyz/docs/configuration#price-display-mode) (`$`), the popup follows it within a tick: the Y axis, the last-value and position-line labels, the EMA / VWAP values and the header read **market cap** in K / M / B (`300K`, `1.2M`), and the crosshair legend shows the market cap with the price in parentheses (`C 1.2M ($0.0₃12)`). The window title says `mcap (current supply)`: every bar is scaled by today's supply (market cap ÷ price at the latest tick, as the terminal knows it), so older bars are not the exact market cap of their time. The bars themselves stay USD prices, so the entry, stop and target lines and the fill markers keep their meaning; only the labels change. When the coin has no known supply the popup keeps prices and the title says `supply unknown · showing price`. The position row reads AVG MC / MCAP; profit and loss stay in USD.
@@ -0,0 +1,33 @@
1
+ ---
2
+ id: docs-popup-chart-security-model
3
+ title: Popup chart › Security model
4
+ kind: docs
5
+ page: popup-chart
6
+ page_title: Popup chart
7
+ heading: Security model
8
+ anchor: security-model
9
+ url: https://dexterm.xyz/docs/popup-chart#security-model
10
+ tags:
11
+ - docs
12
+ - popup-chart
13
+ - security
14
+ - model
15
+ - popup
16
+ - chart
17
+ confidence: high
18
+ owner: maintainers
19
+ origin: docs-generated
20
+ reviewed_by: generated@2026-10-16
21
+ generated_from: dexterm/site content/docs (task-1420)
22
+ sources:
23
+ - site/content/docs/popup-chart.md
24
+ date: 2026-10-16
25
+ ---
26
+
27
+ - The server binds **127.0.0.1 only** on a random port. LAN, Tailscale and `::1` are refused; a strict `Host` check guards against DNS rebinding and a strict `Origin` check guards the WebSocket; no CORS header is ever sent.
28
+ - Every popup opens with a **single-use ticket** (32 random bytes, 30 s). The page it buys embeds a one-time WebSocket token. The native shell receives the URL over stdin, never argv. The browser fallback necessarily passes the URL to `open`, so it is briefly visible in `ps` to another local user; the worst case there is a failed window, never a key or a trade.
29
+ - All script and style on the page is inlined under a CSP nonce; the vendored chart library is the one static file the server answers (exact path, from memory); `img-src` is none; the shell denies new-window requests and pins every navigation to the exact loopback origin (parsed, not string-prefixed).
30
+ - Popups receive **view models and theme tokens only**: never keys, signer state or trade capability. Messages from the popup are checked against a closed set of UI event names and payload values (the six intervals, known indicator ids); anything else is dropped, reported to the terminal as `popup.dropped`, and never echoed.
31
+ - Untrusted strings (token name, symbol, address) are rendered with `textContent` only; a hostile token name never reaches the page HTML.
32
+
33
+ A ported attack suite (50 probes: traversal, wrong Host, other methods, WebSocket abuse, bad payloads) runs against the in-app server in the test suite.
@@ -0,0 +1,38 @@
1
+ ---
2
+ id: docs-popup-chart-token-and-feeds-popups
3
+ title: Popup chart › Token and feeds popups
4
+ kind: docs
5
+ page: popup-chart
6
+ page_title: Popup chart
7
+ heading: Token and feeds popups
8
+ anchor: token-and-feeds-popups
9
+ url: https://dexterm.xyz/docs/popup-chart#token-and-feeds-popups
10
+ tags:
11
+ - docs
12
+ - popup-chart
13
+ - token
14
+ - feeds
15
+ - popups
16
+ - popup
17
+ - chart
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/popup-chart.md
25
+ date: 2026-10-16
26
+ ---
27
+
28
+ `I` on the token screen opens the **token-detail** HUD: identity, price and changes, market cap, liquidity, holders, top-10 and dev share, authorities, the RugCheck score and risks, and the Snipers and Bundled cells from the wallet-intel scan (https://dexterm.xyz/docs/screens#bubble-map). A cell that has not been measured shows its reason: `needs Helius key` only without a key, otherwise for example `Helius paused · r` or `history failed · r`. The window follows the terminal on every token or scan update.
29
+
30
+ `M` on the trending screen opens the **feeds** HUD: the posts behind the board, filtered and hidden exactly as the SOCIAL panel does it, plus the official news headlines, newest first. Instruction-like posts are withheld. Each row names its source. `↑`/`↓` select, and `⏎` asks the terminal to open that coin.
31
+
32
+ Both are read-only text views on the same server, ticket, CSP and event allow-list as the chart:
33
+
34
+ - The page gets text only. Post text is the stored firewalled text, drawn with `textContent`.
35
+ - The feeds page never holds a coin address. It sends back an index into the terminal's own list, and the terminal resolves the coin.
36
+ - Neither page can trade, sign or fetch.
37
+
38
+ `I` and `M` toggle the windows, and `esc` in a window closes it.
@@ -0,0 +1,30 @@
1
+ ---
2
+ id: docs-popup-chart-what-it-shows
3
+ title: Popup chart › What it shows
4
+ kind: docs
5
+ page: popup-chart
6
+ page_title: Popup chart
7
+ heading: What it shows
8
+ anchor: what-it-shows
9
+ url: https://dexterm.xyz/docs/popup-chart#what-it-shows
10
+ tags:
11
+ - docs
12
+ - popup-chart
13
+ - shows
14
+ - popup
15
+ - chart
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/popup-chart.md
23
+ date: 2026-10-16
24
+ ---
25
+
26
+ - candles, line or area; a volume pane; crosshair with the OHLCV, change and indicator values of the bar under it; wheel and pinch zoom, drag pan; auto, log or percent scale; local-time axis.
27
+ - the last-price line, and a dotted **LIVE** price line while the terminal's fast lane is streaming the coin; a `◌ STALE Ns` badge when no tick has arrived for 20 s.
28
+ - buy and sell markers from the trade tape, EMA 9/21, VWAP (anchored to the UTC day), a volume 20-MA, horizontal and trend lines you draw (page memory only; they go when the popup closes).
29
+ - when you hold a PAPER position in the coin: an ENTRY line labelled with size and PnL %, BUY and SELL fill markers for the current position, STOP and TARGET lines when a ledger sets them, and the same position row the terminal shows under its chart.
30
+ - the six timeframes are the popup's own. 5m and 15m are derived from the cached 1m base, 4h and 1d from the cached 1h base, so switching costs no fetch; a base the terminal has not fetched yet shows an honest "warming … no extra requests" banner until it lands. **1s is not offered:** the only trade source is a ≤60-trade tape refreshed at most every 20 s, so 1-second bars would be sparse and stale.
@@ -0,0 +1,27 @@
1
+ ---
2
+ id: docs-popup-chart
3
+ title: Popup chart
4
+ kind: docs
5
+ page: popup-chart
6
+ page_title: Popup chart
7
+ url: https://dexterm.xyz/docs/popup-chart
8
+ tags:
9
+ - docs
10
+ - popup-chart
11
+ - popup
12
+ - chart
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/popup-chart.md
20
+ date: 2026-10-16
21
+ ---
22
+
23
+ A docked native chart window for the open coin, fed only by the terminal, with the browser as the fallback.
24
+
25
+ `C` on a token opens a chart window for that coin beside the terminal. The chart is TradingView's open-source Lightweight Charts™ (Apache-2.0), vendored into the app and served by a loopback-only server inside dexterm; the window is a 1.2 MB native shell (Rust, wry) when it is built, otherwise your default browser. Either way the page loads **nothing from the network**: candles, the trade tape, the live price and your paper position all come from the terminal's own caches over one local WebSocket.
26
+
27
+ the chart popup on sample data (headless render of the real page)
@@ -0,0 +1,28 @@
1
+ ---
2
+ id: docs-scan-cost-control
3
+ title: AI scan mode › Cost control
4
+ kind: docs
5
+ page: scan
6
+ page_title: AI scan mode
7
+ heading: Cost control
8
+ anchor: cost-control
9
+ url: https://dexterm.xyz/docs/scan#cost-control
10
+ tags:
11
+ - docs
12
+ - scan
13
+ - cost
14
+ - control
15
+ - mode
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/scan.md
23
+ date: 2026-10-16
24
+ ---
25
+
26
+ Every analyst turn the scan starts counts against two caps: (generated from the app: see https://dexterm.xyz/docs/scan#cost-control; app-help has the exact keys and commands) per rolling hour and (generated from the app: see https://dexterm.xyz/docs/scan#cost-control; app-help has the exact keys and commands) per coin per hour; a lock needs budget for one turn. A refresh of the locked coin happens only when ≥ (generated from the app: see https://dexterm.xyz/docs/scan#cost-control; app-help has the exact keys and commands) s have passed since the last read, the analyst is idle, **and** the data materially moved (price ≥ (generated from the app: see https://dexterm.xyz/docs/scan#cost-control; app-help has the exact keys and commands)%, 5m buy share ≥ 10 points, 5m volume up or down 1.5×, or a new trigger). After a lock ends the same coin is barred for (generated from the app: see https://dexterm.xyz/docs/scan#cost-control; app-help has the exact keys and commands) min and no new lock happens for (generated from the app: see https://dexterm.xyz/docs/scan#cost-control; app-help has the exact keys and commands) s. The header meter shows `ai used/cap per h · coin n/4`.
27
+
28
+ In calm mode the scan adds no draws; measured idle CPU with the scan on was the same 2% median as off.
@@ -0,0 +1,34 @@
1
+ ---
2
+ id: docs-scan-keys-flag-command
3
+ title: AI scan mode › Keys, flag, command
4
+ kind: docs
5
+ page: scan
6
+ page_title: AI scan mode
7
+ heading: Keys, flag, command
8
+ anchor: keys-flag-command
9
+ url: https://dexterm.xyz/docs/scan#keys-flag-command
10
+ tags:
11
+ - docs
12
+ - scan
13
+ - keys
14
+ - flag
15
+ - command
16
+ - mode
17
+ confidence: high
18
+ owner: maintainers
19
+ origin: docs-generated
20
+ reviewed_by: generated@2026-10-16
21
+ generated_from: dexterm/site content/docs (task-1420)
22
+ sources:
23
+ - site/content/docs/scan.md
24
+ date: 2026-10-16
25
+ ---
26
+
27
+ - `Z` toggles the scan from any screen. `R` resumes scanning after a lock (releases the coin).
28
+ - `esc` on the locked coin cancels the analysis but keeps the coin (state PAUSED); a second `esc` navigates as usual. `esc` on the screener table while SCANNING stops the scan.
29
+ - `--scan` starts it with the run; `--scan-*` flags set thresholds and caps (full list in the CLI reference (https://dexterm.xyz/docs/cli#flags)).
30
+ - `/scan` on the screener's `/` line or in the chat input: (generated from the app: see https://dexterm.xyz/docs/scan#keys-flag-command; app-help has the exact keys and commands)
31
+
32
+ The header shows `◉ AI SCAN SCANNING · ai 1/8 per h` while it is on. Row 1 of every list screen carries the ticker: state, coins scanned, the top scores with the triggers that fired. On the locked coin's screen the same row reads **WHY IT TRIGGERED**: the reasons with their numbers, the score, when, how many reads, and the keys.
33
+
34
+ the scan ticker on sample data (synthetic scores)
@@ -0,0 +1,32 @@
1
+ ---
2
+ id: docs-scan-safety-four-layers
3
+ title: AI scan mode › Safety: four layers
4
+ kind: docs
5
+ page: scan
6
+ page_title: AI scan mode
7
+ heading: Safety: four layers
8
+ anchor: safety-four-layers
9
+ url: https://dexterm.xyz/docs/scan#safety-four-layers
10
+ tags:
11
+ - docs
12
+ - scan
13
+ - safety
14
+ - four
15
+ - layers
16
+ - mode
17
+ confidence: high
18
+ owner: maintainers
19
+ origin: docs-generated
20
+ reviewed_by: generated@2026-10-16
21
+ generated_from: dexterm/site content/docs (task-1420)
22
+ sources:
23
+ - site/content/docs/scan.md
24
+ date: 2026-10-16
25
+ ---
26
+
27
+ 1. The scan session is created with an **empty action-type list**. The shared validator that every analyst action passes through refuses all five UI actions for it.
28
+ 2. The screen state the MCP server sees carries `actions.types = []`, so every action tool errors inside the server and writes nothing to the action channel.
29
+ 3. The `claude` launch adds `--disallowedTools` for `open_ticket`, `open_token`, `show_in_screener`, `add_to_watchlist` and `switch_feed`.
30
+ 4. The app's scan handler re-validates with the same empty list and toasts `AI scan blocked analyst action "…" · observe-only` so you see any attempt.
31
+
32
+ Statically, the scan code imports nothing from the trade, paper, executor, bridge or wallet modules; a test resolves its whole import closure and fails if a trade import is planted. A compromised-model test feeds a fake `claude` that emits `open_ticket` during a scan and asserts nothing happens, while the same fake opens the PAPER ticket in a normal session.
@@ -0,0 +1,27 @@
1
+ ---
2
+ id: docs-scan-states
3
+ title: AI scan mode › States
4
+ kind: docs
5
+ page: scan
6
+ page_title: AI scan mode
7
+ heading: States
8
+ anchor: states
9
+ url: https://dexterm.xyz/docs/scan#states
10
+ tags:
11
+ - docs
12
+ - scan
13
+ - states
14
+ - mode
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/scan.md
22
+ date: 2026-10-16
23
+ ---
24
+
25
+ `off` → `scanning` (a (generated from the app: see https://dexterm.xyz/docs/scan#states; app-help has the exact keys and commands) s warm-up builds the rolling samples; the ticker shows the top five) → `locked` (one coin: its token screen opens, the analyst starts, refreshes follow) → `paused` (`esc`: analysis cancelled, coin held) → `scanning` again only on `R`.
26
+
27
+ **No-hop rule:** while locked or paused the engine never returns a new lock, even if a higher-scoring coin appears (proven by a test feeding one for 300 ticks). A lock also waits while a PAPER ticket, an overlay, the filter or sort editor, or a half-typed question has the keys, so you are never yanked out of something.