dexterm-cli 0.1.2 → 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 (327) hide show
  1. package/dist/packages/agents/src/bus.js +37 -1
  2. package/dist/packages/agents/src/follow.js +105 -0
  3. package/dist/packages/agents/src/index.js +5 -0
  4. package/dist/packages/agents/src/spectator-server.js +153 -0
  5. package/dist/packages/agents/src/spectator.js +212 -0
  6. package/dist/packages/cli/assets/claude/analyst-system.md +7 -1
  7. package/dist/packages/cli/src/agent-cmd.js +71 -7
  8. package/dist/packages/cli/src/agent-spectator.js +37 -0
  9. package/dist/packages/cli/src/alerts/format.js +25 -0
  10. package/dist/packages/cli/src/app-help-gen.js +365 -0
  11. package/dist/packages/cli/src/docs-kb-gen.js +228 -0
  12. package/dist/packages/cli/src/doctor.js +28 -12
  13. package/dist/packages/cli/src/follow-cmd.js +107 -1
  14. package/dist/packages/cli/src/help-cmd.js +48 -0
  15. package/dist/packages/cli/src/index.js +1 -1
  16. package/dist/packages/cli/src/kb-skill-cmd.js +3 -0
  17. package/dist/packages/cli/src/larp-detected.js +209 -0
  18. package/dist/packages/cli/src/live/index.js +64 -3
  19. package/dist/packages/cli/src/live/screens/token-live.js +24 -0
  20. package/dist/packages/cli/src/live/signals.js +109 -0
  21. package/dist/packages/cli/src/live/token.js +38 -1
  22. package/dist/packages/cli/src/live/trade.js +24 -1
  23. package/dist/packages/cli/src/main.js +495 -11
  24. package/dist/packages/cli/src/mcp-cmd.js +2 -7
  25. package/dist/packages/cli/src/mcp-follow.js +225 -0
  26. package/dist/packages/cli/src/pnl-app.js +221 -0
  27. package/dist/packages/cli/src/pnl-card.js +615 -0
  28. package/dist/packages/cli/src/record-cmd.js +455 -0
  29. package/dist/packages/cli/src/rules.js +50 -2
  30. package/dist/packages/cli/src/screens/follows.js +91 -2
  31. package/dist/packages/cli/src/screens/overlay.js +3 -0
  32. package/dist/packages/cli/src/screens/positions.js +1 -1
  33. package/dist/packages/cli/src/screens/rules.js +1 -1
  34. package/dist/packages/cli/src/spectate-cmd.js +115 -0
  35. package/dist/packages/cli/src/state.js +1 -1
  36. package/dist/packages/cli/src/version.js +1 -1
  37. package/dist/packages/cli/src/voice-cmd.js +86 -11
  38. package/dist/packages/cli/src/voice-hud.js +1 -1
  39. package/dist/packages/cli/src/x-cmd.js +11 -5
  40. package/dist/packages/custom/src/rules.js +2 -1
  41. package/dist/packages/data/src/analyst-actions.js +130 -3
  42. package/dist/packages/data/src/fast-lane.js +16 -2
  43. package/dist/packages/data/src/index.js +1 -0
  44. package/dist/packages/data/src/intel/live-signals.js +185 -0
  45. package/dist/packages/data/src/trade/copy/index.js +1 -1
  46. package/dist/packages/data/src/trade/copy/stats.js +36 -2
  47. package/dist/packages/data/src/trade/copy/tracker.js +3 -2
  48. package/dist/packages/mcp/assets/kb/app-help/app-help-command.md +35 -0
  49. package/dist/packages/mcp/assets/kb/app-help/ask-the-analyst.md +43 -0
  50. package/dist/packages/mcp/assets/kb/app-help/backtest.md +33 -0
  51. package/dist/packages/mcp/assets/kb/app-help/bubble-map.md +35 -0
  52. package/dist/packages/mcp/assets/kb/app-help/calm-mode.md +31 -0
  53. package/dist/packages/mcp/assets/kb/app-help/change-voice-speed.md +31 -0
  54. package/dist/packages/mcp/assets/kb/app-help/change-voice.md +30 -0
  55. package/dist/packages/mcp/assets/kb/app-help/chart-popup-selftest.md +32 -0
  56. package/dist/packages/mcp/assets/kb/app-help/coin-images.md +29 -0
  57. package/dist/packages/mcp/assets/kb/app-help/configure-rpc-key.md +28 -0
  58. package/dist/packages/mcp/assets/kb/app-help/connect-an-agent-registry.md +35 -0
  59. package/dist/packages/mcp/assets/kb/app-help/connect-an-agent.md +39 -0
  60. package/dist/packages/mcp/assets/kb/app-help/custom-keymap.md +32 -0
  61. package/dist/packages/mcp/assets/kb/app-help/edit-kb-or-skill.md +36 -0
  62. package/dist/packages/mcp/assets/kb/app-help/edit-rules.md +34 -0
  63. package/dist/packages/mcp/assets/kb/app-help/export-a-view.md +36 -0
  64. package/dist/packages/mcp/assets/kb/app-help/follow-a-wallet.md +33 -0
  65. package/dist/packages/mcp/assets/kb/app-help/getting-started.md +37 -0
  66. package/dist/packages/mcp/assets/kb/app-help/kol-lists.md +34 -0
  67. package/dist/packages/mcp/assets/kb/app-help/larp-check.md +36 -0
  68. package/dist/packages/mcp/assets/kb/app-help/link-a-wallet.md +41 -0
  69. package/dist/packages/mcp/assets/kb/app-help/login-with-x.md +33 -0
  70. package/dist/packages/mcp/assets/kb/app-help/narrative-board.md +32 -0
  71. package/dist/packages/mcp/assets/kb/app-help/open-a-coin.md +43 -0
  72. package/dist/packages/mcp/assets/kb/app-help/open-chart-popup.md +33 -0
  73. package/dist/packages/mcp/assets/kb/app-help/order-plans.md +33 -0
  74. package/dist/packages/mcp/assets/kb/app-help/paper-trade.md +36 -0
  75. package/dist/packages/mcp/assets/kb/app-help/price-or-marketcap.md +38 -0
  76. package/dist/packages/mcp/assets/kb/app-help/record-headless.md +34 -0
  77. package/dist/packages/mcp/assets/kb/app-help/recorder-history.md +39 -0
  78. package/dist/packages/mcp/assets/kb/app-help/rug-check.md +39 -0
  79. package/dist/packages/mcp/assets/kb/app-help/run-doctor.md +32 -0
  80. package/dist/packages/mcp/assets/kb/app-help/scan-mode.md +37 -0
  81. package/dist/packages/mcp/assets/kb/app-help/screen-analyst.md +181 -0
  82. package/dist/packages/mcp/assets/kb/app-help/screen-kol.md +190 -0
  83. package/dist/packages/mcp/assets/kb/app-help/screen-newpairs.md +181 -0
  84. package/dist/packages/mcp/assets/kb/app-help/screen-positions.md +180 -0
  85. package/dist/packages/mcp/assets/kb/app-help/screen-screener.md +199 -0
  86. package/dist/packages/mcp/assets/kb/app-help/screen-token.md +240 -0
  87. package/dist/packages/mcp/assets/kb/app-help/screen-trending.md +192 -0
  88. package/dist/packages/mcp/assets/kb/app-help/screen-watchlist.md +181 -0
  89. package/dist/packages/mcp/assets/kb/app-help/set-a-filter.md +36 -0
  90. package/dist/packages/mcp/assets/kb/app-help/setup-neural-voice.md +36 -0
  91. package/dist/packages/mcp/assets/kb/app-help/share-packs.md +34 -0
  92. package/dist/packages/mcp/assets/kb/app-help/sort-the-screener.md +34 -0
  93. package/dist/packages/mcp/assets/kb/app-help/spectate-an-agent.md +39 -0
  94. package/dist/packages/mcp/assets/kb/app-help/standing-mandates.md +33 -0
  95. package/dist/packages/mcp/assets/kb/app-help/switch-theme.md +42 -0
  96. package/dist/packages/mcp/assets/kb/app-help/turn-on-alerts.md +37 -0
  97. package/dist/packages/mcp/assets/kb/app-help/update-dexterm.md +30 -0
  98. package/dist/packages/mcp/assets/kb/app-help/use-presets.md +42 -0
  99. package/dist/packages/mcp/assets/kb/app-help/use-voice-mode.md +36 -0
  100. package/dist/packages/mcp/assets/kb/app-help/watch-a-coin.md +34 -0
  101. package/dist/packages/mcp/assets/kb/app-help/watch-headless.md +35 -0
  102. package/dist/packages/mcp/assets/kb/app-help/what-dexterm-shows-agents.md +31 -0
  103. package/dist/packages/mcp/assets/kb/app-help/workspaces.md +38 -0
  104. package/dist/packages/mcp/assets/kb/docs/docs-agents-capability-tiers-enforced-server-side.md +38 -0
  105. package/dist/packages/mcp/assets/kb/docs/docs-agents-install-in-one-command.md +49 -0
  106. package/dist/packages/mcp/assets/kb/docs/docs-agents-per-agent-mandates.md +35 -0
  107. package/dist/packages/mcp/assets/kb/docs/docs-agents-recipes.md +43 -0
  108. package/dist/packages/mcp/assets/kb/docs/docs-agents-red-team-coverage.md +30 -0
  109. package/dist/packages/mcp/assets/kb/docs/docs-agents-two-ways-to-connect.md +37 -0
  110. package/dist/packages/mcp/assets/kb/docs/docs-agents-untrusted-by-default.md +36 -0
  111. package/dist/packages/mcp/assets/kb/docs/docs-agents-watch-an-agent-work-spectator-view.md +35 -0
  112. package/dist/packages/mcp/assets/kb/docs/docs-agents.md +26 -0
  113. package/dist/packages/mcp/assets/kb/docs/docs-analyst-answer-style.md +35 -0
  114. package/dist/packages/mcp/assets/kb/docs/docs-analyst-if-claude-is-missing.md +25 -0
  115. package/dist/packages/mcp/assets/kb/docs/docs-analyst-it-knows-the-app.md +33 -0
  116. package/dist/packages/mcp/assets/kb/docs/docs-analyst-mcp-tools.md +33 -0
  117. package/dist/packages/mcp/assets/kb/docs/docs-analyst-plain-language-filters.md +25 -0
  118. package/dist/packages/mcp/assets/kb/docs/docs-analyst-skills.md +31 -0
  119. package/dist/packages/mcp/assets/kb/docs/docs-analyst-starting-a-run.md +33 -0
  120. package/dist/packages/mcp/assets/kb/docs/docs-analyst-what-it-can-change-three-tiers.md +33 -0
  121. package/dist/packages/mcp/assets/kb/docs/docs-analyst-what-it-sees.md +26 -0
  122. package/dist/packages/mcp/assets/kb/docs/docs-analyst-what-the-analyst-can-never-do.md +31 -0
  123. package/dist/packages/mcp/assets/kb/docs/docs-analyst.md +23 -0
  124. package/dist/packages/mcp/assets/kb/docs/docs-beginners-1-start-dexterm.md +35 -0
  125. package/dist/packages/mcp/assets/kb/docs/docs-beginners-2-open-a-real-coin-by-contract-address.md +43 -0
  126. package/dist/packages/mcp/assets/kb/docs/docs-beginners-3-read-the-safety-panel.md +40 -0
  127. package/dist/packages/mcp/assets/kb/docs/docs-beginners-4-read-the-holder-panel.md +35 -0
  128. package/dist/packages/mcp/assets/kb/docs/docs-beginners-5-optionally-ask-the-analyst.md +39 -0
  129. package/dist/packages/mcp/assets/kb/docs/docs-beginners-6-export-or-share-what-you-see.md +34 -0
  130. package/dist/packages/mcp/assets/kb/docs/docs-beginners-7-quit-safely.md +34 -0
  131. package/dist/packages/mcp/assets/kb/docs/docs-beginners-before-any-experimental-trading.md +33 -0
  132. package/dist/packages/mcp/assets/kb/docs/docs-beginners-check-the-installation-with-doctor.md +38 -0
  133. package/dist/packages/mcp/assets/kb/docs/docs-beginners-choose-a-setup-path.md +30 -0
  134. package/dist/packages/mcp/assets/kb/docs/docs-beginners-common-mistakes-and-recovery.md +30 -0
  135. package/dist/packages/mcp/assets/kb/docs/docs-beginners-copy-and-paste-without-surprises.md +39 -0
  136. package/dist/packages/mcp/assets/kb/docs/docs-beginners-if-data-says-unavailable-stale-or-rate-limited.md +35 -0
  137. package/dist/packages/mcp/assets/kb/docs/docs-beginners-if-dexterm-says-command-not-found.md +36 -0
  138. package/dist/packages/mcp/assets/kb/docs/docs-beginners-if-optional-help-is-unavailable.md +33 -0
  139. package/dist/packages/mcp/assets/kb/docs/docs-beginners-if-paste-does-nothing-or-pastes-twice.md +35 -0
  140. package/dist/packages/mcp/assets/kb/docs/docs-beginners-if-the-screen-looks-broken.md +33 -0
  141. package/dist/packages/mcp/assets/kb/docs/docs-beginners-if-you-typed-the-wrong-thing.md +33 -0
  142. package/dist/packages/mcp/assets/kb/docs/docs-beginners-install-node-js-first.md +36 -0
  143. package/dist/packages/mcp/assets/kb/docs/docs-beginners-linux.md +30 -0
  144. package/dist/packages/mcp/assets/kb/docs/docs-beginners-macos-homebrew.md +46 -0
  145. package/dist/packages/mcp/assets/kb/docs/docs-beginners-macos-or-linux-npm.md +39 -0
  146. package/dist/packages/mcp/assets/kb/docs/docs-beginners-macos.md +30 -0
  147. package/dist/packages/mcp/assets/kb/docs/docs-beginners-open-the-terminal.md +29 -0
  148. package/dist/packages/mcp/assets/kb/docs/docs-beginners-reopen-dexterm-later.md +36 -0
  149. package/dist/packages/mcp/assets/kb/docs/docs-beginners-ten-minute-first-win.md +30 -0
  150. package/dist/packages/mcp/assets/kb/docs/docs-beginners-terminal-shell-prompt-command-output-and-path.md +40 -0
  151. package/dist/packages/mcp/assets/kb/docs/docs-beginners-where-to-go-next.md +32 -0
  152. package/dist/packages/mcp/assets/kb/docs/docs-beginners-windows-expectations.md +29 -0
  153. package/dist/packages/mcp/assets/kb/docs/docs-beginners-windows-powershell-experimental.md +39 -0
  154. package/dist/packages/mcp/assets/kb/docs/docs-beginners-windows.md +30 -0
  155. package/dist/packages/mcp/assets/kb/docs/docs-beginners.md +29 -0
  156. package/dist/packages/mcp/assets/kb/docs/docs-cli-dexterm-help.md +31 -0
  157. package/dist/packages/mcp/assets/kb/docs/docs-cli-filter-grammar.md +37 -0
  158. package/dist/packages/mcp/assets/kb/docs/docs-cli-flags.md +27 -0
  159. package/dist/packages/mcp/assets/kb/docs/docs-cli-invocations.md +43 -0
  160. package/dist/packages/mcp/assets/kb/docs/docs-cli-presets.md +26 -0
  161. package/dist/packages/mcp/assets/kb/docs/docs-cli-scan-commands.md +26 -0
  162. package/dist/packages/mcp/assets/kb/docs/docs-cli-sort-keys.md +27 -0
  163. package/dist/packages/mcp/assets/kb/docs/docs-cli-subcommands.md +26 -0
  164. package/dist/packages/mcp/assets/kb/docs/docs-cli.md +25 -0
  165. package/dist/packages/mcp/assets/kb/docs/docs-configuration-environment-variables.md +45 -0
  166. package/dist/packages/mcp/assets/kb/docs/docs-configuration-files-on-disk.md +41 -0
  167. package/dist/packages/mcp/assets/kb/docs/docs-configuration-headless-recorder-dexterm-record.md +44 -0
  168. package/dist/packages/mcp/assets/kb/docs/docs-configuration-history-recorder.md +33 -0
  169. package/dist/packages/mcp/assets/kb/docs/docs-configuration-packs.md +38 -0
  170. package/dist/packages/mcp/assets/kb/docs/docs-configuration-price-display-mode.md +35 -0
  171. package/dist/packages/mcp/assets/kb/docs/docs-configuration-push-alerts-and-dexterm-watch.md +45 -0
  172. package/dist/packages/mcp/assets/kb/docs/docs-configuration-rules-engine.md +36 -0
  173. package/dist/packages/mcp/assets/kb/docs/docs-configuration-the-analyst-s-launch.md +27 -0
  174. package/dist/packages/mcp/assets/kb/docs/docs-configuration-the-optional-free-rpc-key.md +42 -0
  175. package/dist/packages/mcp/assets/kb/docs/docs-configuration-themes-and-keymaps.md +29 -0
  176. package/dist/packages/mcp/assets/kb/docs/docs-configuration-themes-and-look.md +27 -0
  177. package/dist/packages/mcp/assets/kb/docs/docs-configuration-widgets.md +31 -0
  178. package/dist/packages/mcp/assets/kb/docs/docs-configuration-workspaces.md +30 -0
  179. package/dist/packages/mcp/assets/kb/docs/docs-configuration.md +25 -0
  180. package/dist/packages/mcp/assets/kb/docs/docs-copy-trading-stage-1-follow-a-wallet-see-what-it-does.md +51 -0
  181. package/dist/packages/mcp/assets/kb/docs/docs-copy-trading-stage-2-the-one-key-mirror-ticket-a-proposal.md +56 -0
  182. package/dist/packages/mcp/assets/kb/docs/docs-copy-trading-stage-3-capped-auto-mirror-default-off-less.md +47 -0
  183. package/dist/packages/mcp/assets/kb/docs/docs-copy-trading-what-is-proven-what-is-not.md +36 -0
  184. package/dist/packages/mcp/assets/kb/docs/docs-copy-trading.md +31 -0
  185. package/dist/packages/mcp/assets/kb/docs/docs-data-sources-cache.md +32 -0
  186. package/dist/packages/mcp/assets/kb/docs/docs-data-sources-health-registry.md +29 -0
  187. package/dist/packages/mcp/assets/kb/docs/docs-data-sources-rate-limits-and-pacing.md +32 -0
  188. package/dist/packages/mcp/assets/kb/docs/docs-data-sources-request-budget-meter.md +30 -0
  189. package/dist/packages/mcp/assets/kb/docs/docs-data-sources-sources.md +47 -0
  190. package/dist/packages/mcp/assets/kb/docs/docs-data-sources-the-helius-credit-meter.md +30 -0
  191. package/dist/packages/mcp/assets/kb/docs/docs-data-sources.md +27 -0
  192. package/dist/packages/mcp/assets/kb/docs/docs-getting-started-dexterm-doctor.md +33 -0
  193. package/dist/packages/mcp/assets/kb/docs/docs-getting-started-first-run.md +34 -0
  194. package/dist/packages/mcp/assets/kb/docs/docs-getting-started-install.md +71 -0
  195. package/dist/packages/mcp/assets/kb/docs/docs-getting-started-next.md +32 -0
  196. package/dist/packages/mcp/assets/kb/docs/docs-getting-started-requirements.md +35 -0
  197. package/dist/packages/mcp/assets/kb/docs/docs-getting-started-running-the-tests.md +34 -0
  198. package/dist/packages/mcp/assets/kb/docs/docs-getting-started-supported-platforms.md +44 -0
  199. package/dist/packages/mcp/assets/kb/docs/docs-getting-started-updating.md +28 -0
  200. package/dist/packages/mcp/assets/kb/docs/docs-getting-started.md +27 -0
  201. package/dist/packages/mcp/assets/kb/docs/docs-keyboard-global-keys.md +26 -0
  202. package/dist/packages/mcp/assets/kb/docs/docs-keyboard-keys-handled-by-the-loop.md +29 -0
  203. package/dist/packages/mcp/assets/kb/docs/docs-keyboard-per-screen-keys.md +26 -0
  204. package/dist/packages/mcp/assets/kb/docs/docs-keyboard-what-shows.md +27 -0
  205. package/dist/packages/mcp/assets/kb/docs/docs-keyboard.md +26 -0
  206. package/dist/packages/mcp/assets/kb/docs/docs-larp-measured-accuracy.md +55 -0
  207. package/dist/packages/mcp/assets/kb/docs/docs-larp-open-link-keys.md +26 -0
  208. package/dist/packages/mcp/assets/kb/docs/docs-larp-paste-a-coin-on-the-web.md +35 -0
  209. package/dist/packages/mcp/assets/kb/docs/docs-larp-the-verdict.md +29 -0
  210. package/dist/packages/mcp/assets/kb/docs/docs-larp-timestamped-follow-up-drafts.md +35 -0
  211. package/dist/packages/mcp/assets/kb/docs/docs-larp-what-it-looks-at.md +33 -0
  212. package/dist/packages/mcp/assets/kb/docs/docs-larp.md +24 -0
  213. package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-degraded-states-you-will-see.md +36 -0
  214. package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-free-vs-paid-x-api-tiers-your-bill-your-limits.md +37 -0
  215. package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-kol-lists-and-the-per-handle-filter.md +28 -0
  216. package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-tests.md +25 -0
  217. package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-what-is-read-and-when.md +35 -0
  218. package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-what-you-set-up-once.md +40 -0
  219. package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-where-the-tokens-live.md +27 -0
  220. package/dist/packages/mcp/assets/kb/docs/docs-login-with-x.md +26 -0
  221. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-a-live-ticket.md +42 -0
  222. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-before-you-press-size-vs-caps.md +34 -0
  223. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-devnet-signer-mainnet-token.md +35 -0
  224. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-jupiter-rate-limits.md +33 -0
  225. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-link-a-wallet.md +32 -0
  226. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-live-trading-devnet-first.md +30 -0
  227. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-mainnet.md +31 -0
  228. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-order-plans-and-standing-mandates.md +44 -0
  229. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-panic.md +31 -0
  230. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-pnl-cards.md +37 -0
  231. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-live-fire-path-devnet-the-fast-wallet.md +41 -0
  232. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-signer-process.md +34 -0
  233. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-ticket.md +31 -0
  234. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-wallet.md +34 -0
  235. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-trade-moments.md +32 -0
  236. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-what-the-live-path-keeps.md +37 -0
  237. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-your-first-live-trade.md +41 -0
  238. package/dist/packages/mcp/assets/kb/docs/docs-paper-trading.md +32 -0
  239. package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-bubble-map-popup.md +27 -0
  240. package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-build-the-native-window.md +33 -0
  241. package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-config-dexterm-popup-json.md +38 -0
  242. package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-docking-macos.md +27 -0
  243. package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-keys-in-the-popup.md +30 -0
  244. package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-market-cap-axis.md +28 -0
  245. package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-security-model.md +33 -0
  246. package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-token-and-feeds-popups.md +38 -0
  247. package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-what-it-shows.md +30 -0
  248. package/dist/packages/mcp/assets/kb/docs/docs-popup-chart.md +27 -0
  249. package/dist/packages/mcp/assets/kb/docs/docs-scan-cost-control.md +28 -0
  250. package/dist/packages/mcp/assets/kb/docs/docs-scan-keys-flag-command.md +34 -0
  251. package/dist/packages/mcp/assets/kb/docs/docs-scan-safety-four-layers.md +32 -0
  252. package/dist/packages/mcp/assets/kb/docs/docs-scan-states.md +27 -0
  253. package/dist/packages/mcp/assets/kb/docs/docs-scan-the-read.md +25 -0
  254. package/dist/packages/mcp/assets/kb/docs/docs-scan-triggers-and-score.md +37 -0
  255. package/dist/packages/mcp/assets/kb/docs/docs-scan.md +24 -0
  256. package/dist/packages/mcp/assets/kb/docs/docs-scorecard-frozen-canary.md +30 -0
  257. package/dist/packages/mcp/assets/kb/docs/docs-scorecard-frozen-task-1401-evaluation.md +35 -0
  258. package/dist/packages/mcp/assets/kb/docs/docs-scorecard-latest-skill-care-run.md +33 -0
  259. package/dist/packages/mcp/assets/kb/docs/docs-scorecard-links-only-larp-baseline-where-it-is-weak.md +35 -0
  260. package/dist/packages/mcp/assets/kb/docs/docs-scorecard-not-measured.md +29 -0
  261. package/dist/packages/mcp/assets/kb/docs/docs-scorecard-rug-verdict-rules.md +33 -0
  262. package/dist/packages/mcp/assets/kb/docs/docs-scorecard-source-and-rebuild.md +31 -0
  263. package/dist/packages/mcp/assets/kb/docs/docs-scorecard.md +27 -0
  264. package/dist/packages/mcp/assets/kb/docs/docs-screens-1-screener.md +35 -0
  265. package/dist/packages/mcp/assets/kb/docs/docs-screens-2-new-pairs.md +28 -0
  266. package/dist/packages/mcp/assets/kb/docs/docs-screens-3-watchlist.md +27 -0
  267. package/dist/packages/mcp/assets/kb/docs/docs-screens-4-analyst-tab.md +28 -0
  268. package/dist/packages/mcp/assets/kb/docs/docs-screens-bubble-map.md +32 -0
  269. package/dist/packages/mcp/assets/kb/docs/docs-screens-coin-images.md +32 -0
  270. package/dist/packages/mcp/assets/kb/docs/docs-screens-live-holder-and-rug-signals.md +51 -0
  271. package/dist/packages/mcp/assets/kb/docs/docs-screens-order-plans.md +26 -0
  272. package/dist/packages/mcp/assets/kb/docs/docs-screens-paper-ticket-and-positions.md +29 -0
  273. package/dist/packages/mcp/assets/kb/docs/docs-screens-the-look.md +29 -0
  274. package/dist/packages/mcp/assets/kb/docs/docs-screens-token-screen.md +36 -0
  275. package/dist/packages/mcp/assets/kb/docs/docs-screens-trending-social-and-kol-lists.md +34 -0
  276. package/dist/packages/mcp/assets/kb/docs/docs-screens.md +26 -0
  277. package/dist/packages/mcp/assets/kb/docs/docs-spectator-1-the-agent-activity-window-follow-mode.md +56 -0
  278. package/dist/packages/mcp/assets/kb/docs/docs-spectator-2-the-read-only-stream-spectate.md +42 -0
  279. package/dist/packages/mcp/assets/kb/docs/docs-spectator-3-save-and-replay-record-file-dexterm-spectate.md +41 -0
  280. package/dist/packages/mcp/assets/kb/docs/docs-spectator-follow-over-mcp-in-the-running-terminal.md +39 -0
  281. package/dist/packages/mcp/assets/kb/docs/docs-spectator-limits.md +36 -0
  282. package/dist/packages/mcp/assets/kb/docs/docs-spectator-quick-start.md +37 -0
  283. package/dist/packages/mcp/assets/kb/docs/docs-spectator-security-model.md +35 -0
  284. package/dist/packages/mcp/assets/kb/docs/docs-spectator-see-also.md +29 -0
  285. package/dist/packages/mcp/assets/kb/docs/docs-spectator-streaming-it.md +32 -0
  286. package/dist/packages/mcp/assets/kb/docs/docs-spectator-the-three-surfaces.md +37 -0
  287. package/dist/packages/mcp/assets/kb/docs/docs-spectator-what-is-redacted.md +35 -0
  288. package/dist/packages/mcp/assets/kb/docs/docs-spectator.md +29 -0
  289. package/dist/packages/mcp/assets/kb/docs/docs-troubleshooting-common-questions.md +33 -0
  290. package/dist/packages/mcp/assets/kb/docs/docs-troubleshooting-doctor-lines.md +36 -0
  291. package/dist/packages/mcp/assets/kb/docs/docs-troubleshooting-in-app-messages.md +42 -0
  292. package/dist/packages/mcp/assets/kb/docs/docs-troubleshooting-reporting-a-problem.md +25 -0
  293. package/dist/packages/mcp/assets/kb/docs/docs-troubleshooting.md +23 -0
  294. package/dist/packages/mcp/assets/kb/docs/docs-voice-doctor.md +26 -0
  295. package/dist/packages/mcp/assets/kb/docs/docs-voice-it-clarifies-it-never-guesses.md +36 -0
  296. package/dist/packages/mcp/assets/kb/docs/docs-voice-latency.md +38 -0
  297. package/dist/packages/mcp/assets/kb/docs/docs-voice-linux-and-windows.md +32 -0
  298. package/dist/packages/mcp/assets/kb/docs/docs-voice-privacy.md +26 -0
  299. package/dist/packages/mcp/assets/kb/docs/docs-voice-still-unverified.md +27 -0
  300. package/dist/packages/mcp/assets/kb/docs/docs-voice-the-voice-neural-by-default.md +48 -0
  301. package/dist/packages/mcp/assets/kb/docs/docs-voice-what-it-can-never-do.md +27 -0
  302. package/dist/packages/mcp/assets/kb/docs/docs-voice-what-you-can-say.md +38 -0
  303. package/dist/packages/mcp/assets/kb/docs/docs-voice.md +25 -0
  304. package/dist/packages/mcp/src/app-help.js +258 -0
  305. package/dist/packages/mcp/src/firewall.js +2 -2
  306. package/dist/packages/mcp/src/index.js +5 -1
  307. package/dist/packages/mcp/src/server.js +129 -4
  308. package/dist/packages/mcp/src/spectator-sink.js +144 -0
  309. package/dist/packages/packs/src/index.js +2 -0
  310. package/dist/packages/packs/src/skill-care.js +206 -0
  311. package/dist/packages/popup/src/pages/spectator.css +45 -0
  312. package/dist/packages/popup/src/pages/spectator.html +25 -0
  313. package/dist/packages/popup/src/pages/spectator.js +74 -0
  314. package/dist/packages/popup/src/selftest.js +19 -0
  315. package/dist/packages/popup/src/server.js +7 -1
  316. package/dist/packages/tui/src/keymap.js +10 -0
  317. package/dist/packages/voice/src/controller.js +42 -1
  318. package/dist/packages/voice/src/doctor.js +25 -8
  319. package/dist/packages/voice/src/engines.js +8 -1
  320. package/dist/packages/voice/src/index.js +3 -1
  321. package/dist/packages/voice/src/speakable.js +111 -0
  322. package/dist/packages/voice/src/stt/whisper.js +4 -2
  323. package/dist/packages/voice/src/tts/piper-setup.js +229 -0
  324. package/dist/packages/voice/src/tts/piper.js +309 -66
  325. package/dist/packages/voice/src/tts/say.js +3 -2
  326. package/dist/packages/voice/src/tts/voices.js +8 -5
  327. package/package.json +6 -5
@@ -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.
@@ -0,0 +1,25 @@
1
+ ---
2
+ id: docs-scan-the-read
3
+ title: AI scan mode › The read
4
+ kind: docs
5
+ page: scan
6
+ page_title: AI scan mode
7
+ heading: The read
8
+ anchor: the-read
9
+ url: https://dexterm.xyz/docs/scan#the-read
10
+ tags:
11
+ - docs
12
+ - scan
13
+ - read
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
+ A lock opens the coin exactly as `⏎` would (the same loader, the same fetches that token costs anyway) and starts a chat turn asking for the short read, with the WHY reasons passed as **numbers only, never token text**. Refreshes ask the same warm session what changed. Answers follow the short style (https://dexterm.xyz/docs/analyst#answer-style): call, why, levels, size, one risk.
@@ -0,0 +1,37 @@
1
+ ---
2
+ id: docs-scan-triggers-and-score
3
+ title: AI scan mode › Triggers and score
4
+ kind: docs
5
+ page: scan
6
+ page_title: AI scan mode
7
+ heading: Triggers and score
8
+ anchor: triggers-and-score
9
+ url: https://dexterm.xyz/docs/scan#triggers-and-score
10
+ tags:
11
+ - docs
12
+ - scan
13
+ - triggers
14
+ - score
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
+ Inputs come from memory and the local SQLite cache only: the screener rows, the DexScreener pair already cached for the flow panel, the open token's loaded view, and LARP verdicts that already exist. A unit test wraps the HTTP client and asserts zero calls over fifty scan ticks; measured live, requests per minute with the scan on and off were the same.
27
+
28
+ | trigger | fires when (defaults) | weight |
29
+ |---|---|---|
30
+ | `vol` | 5m volume ≥ (generated from the app: see https://dexterm.xyz/docs/scan#triggers-and-score; app-help has the exact keys and commands)× the coin's own average 5-minute pace (6h, falling back to 1h/24h), at least $(generated from the app: see https://dexterm.xyz/docs/scan#triggers-and-score; app-help has the exact keys and commands); full strength at (generated from the app: see https://dexterm.xyz/docs/scan#triggers-and-score; app-help has the exact keys and commands)× | 30 |
31
+ | `flow` | buy/sell flip: 5m buy share ≥ (generated from the app: see https://dexterm.xyz/docs/scan#triggers-and-score; app-help has the exact keys and commands) while the 1h share ≤ (generated from the app: see https://dexterm.xyz/docs/scan#triggers-and-score; app-help has the exact keys and commands), at least (generated from the app: see https://dexterm.xyz/docs/scan#triggers-and-score; app-help has the exact keys and commands) 5m transactions | 25 |
32
+ | `fresh` | age ≤ (generated from the app: see https://dexterm.xyz/docs/scan#triggers-and-score; app-help has the exact keys and commands) min, ≥ (generated from the app: see https://dexterm.xyz/docs/scan#triggers-and-score; app-help has the exact keys and commands) 5m transactions, 5m buy share ≥ (generated from the app: see https://dexterm.xyz/docs/scan#triggers-and-score; app-help has the exact keys and commands), 5m volume ≥ $(generated from the app: see https://dexterm.xyz/docs/scan#triggers-and-score; app-help has the exact keys and commands) | 20 |
33
+ | `breakout` | last close above the prior (generated from the app: see https://dexterm.xyz/docs/scan#triggers-and-score; app-help has the exact keys and commands) cached candles' high by ≥ (generated from the app: see https://dexterm.xyz/docs/scan#triggers-and-score; app-help has the exact keys and commands)% (only coins whose candles are already loaded, in practice the open one) | 20 |
34
+ | `liq` | liquidity ≥ +(generated from the app: see https://dexterm.xyz/docs/scan#triggers-and-score; app-help has the exact keys and commands)% vs the coin's own 10-minute minimum | 15 |
35
+ | `holders` | holders ≥ +(generated from the app: see https://dexterm.xyz/docs/scan#triggers-and-score; app-help has the exact keys and commands)% and ≥ +(generated from the app: see https://dexterm.xyz/docs/scan#triggers-and-score; app-help has the exact keys and commands) vs the oldest 10-minute sample | 15 |
36
+
37
+ Points per fired trigger = weight × (0.5 + 0.5 × strength); the score is the sum, capped at 100. A coin is **exciting** at score ≥ (generated from the app: see https://dexterm.xyz/docs/scan#triggers-and-score; app-help has the exact keys and commands) with ≥ (generated from the app: see https://dexterm.xyz/docs/scan#triggers-and-score; app-help has the exact keys and commands) triggers. Gate: liquidity ≥ $(generated from the app: see https://dexterm.xyz/docs/scan#triggers-and-score; app-help has the exact keys and commands). Vetoes set the score to zero and say why: an existing `LARP` verdict (the detector is never invoked by the scan), or a mint or freeze authority that is still enabled.
@@ -0,0 +1,24 @@
1
+ ---
2
+ id: docs-scan
3
+ title: AI scan mode
4
+ kind: docs
5
+ page: scan
6
+ page_title: AI scan mode
7
+ url: https://dexterm.xyz/docs/scan
8
+ tags:
9
+ - docs
10
+ - scan
11
+ - mode
12
+ confidence: high
13
+ owner: maintainers
14
+ origin: docs-generated
15
+ reviewed_by: generated@2026-10-16
16
+ generated_from: dexterm/site content/docs (task-1420)
17
+ sources:
18
+ - site/content/docs/scan.md
19
+ date: 2026-10-16
20
+ ---
21
+
22
+ An observe-only watcher that scores every coin on screen, pulls up the one that lights up, and keeps analysing it.
23
+
24
+ AI scan mode watches the screener for you: it scores every coin from data the app already holds, and when one crosses the line it opens that coin's token screen and starts a short analyst read. It is **off by default**, it adds **no network requests**, and it is **observe-only**: a scan session can never open a ticket, sign, confirm or trade. Four structural layers enforce that, not a prompt.
@@ -0,0 +1,30 @@
1
+ ---
2
+ id: docs-scorecard-frozen-canary
3
+ title: Public measurement scorecard › Latest skill-care run › Frozen canary
4
+ kind: docs
5
+ page: scorecard
6
+ page_title: Public measurement scorecard
7
+ heading: Frozen canary
8
+ anchor: frozen-canary
9
+ url: https://dexterm.xyz/docs/scorecard#frozen-canary
10
+ tags:
11
+ - docs
12
+ - scorecard
13
+ - frozen
14
+ - canary
15
+ - latest
16
+ - skill-care
17
+ - run
18
+ - public
19
+ - measurement
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/scorecard.md
27
+ date: 2026-10-16
28
+ ---
29
+
30
+ The fixed task-1401 test split is the canary. Shipped LARP MCC is **0.054** against a frozen baseline of **0.054**; the candidate scored **0.053**. Shipped rug-rule MCC is **0.159**, the same as its frozen baseline and candidate. The gate reported that the canary held, but it still rejected the candidate because the held-out improvement test failed.
@@ -0,0 +1,35 @@
1
+ ---
2
+ id: docs-scorecard-frozen-task-1401-evaluation
3
+ title: Public measurement scorecard › Frozen task-1401 evaluation
4
+ kind: docs
5
+ page: scorecard
6
+ page_title: Public measurement scorecard
7
+ heading: Frozen task-1401 evaluation
8
+ anchor: frozen-task-1401-evaluation
9
+ url: https://dexterm.xyz/docs/scorecard#frozen-task-1401-evaluation
10
+ tags:
11
+ - docs
12
+ - scorecard
13
+ - frozen
14
+ - task-1401
15
+ - evaluation
16
+ - public
17
+ - measurement
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/scorecard.md
25
+ date: 2026-10-16
26
+ ---
27
+
28
+ **Dataset:** 1054 coins observed from 2026-10-10 through 2026-10-13, with a 3-day outcome horizon. The earlier 726 rows were the train split; the later **328 rows were held out**, including 61 bad outcomes. Tuning used train rows only and the code refuses test rows. Rates use 95% Wilson intervals; fewer than 20 rows gets counts only.
29
+
30
+ Evidence was restricted to a point-in-time token record fetched no more than one hour after t0. Later records were excluded. Labels are keyless recorder proxies, not chain-adjudicated facts.
31
+
32
+ | Held-out result | Before | Shipped | Reading |
33
+ |---|---:|---:|---|
34
+ | Links-only LARP MCC | 0.039 | **0.054** | **Weak.** Link shape alone barely separated bad coins from the rest. |
35
+ | Rug-rule MCC | 0.043 | **0.159** | Better, but still modest and dataset-specific. |
@@ -0,0 +1,33 @@
1
+ ---
2
+ id: docs-scorecard-latest-skill-care-run
3
+ title: Public measurement scorecard › Latest skill-care run
4
+ kind: docs
5
+ page: scorecard
6
+ page_title: Public measurement scorecard
7
+ heading: Latest skill-care run
8
+ anchor: latest-skill-care-run
9
+ url: https://dexterm.xyz/docs/scorecard#latest-skill-care-run
10
+ tags:
11
+ - docs
12
+ - scorecard
13
+ - latest
14
+ - skill-care
15
+ - run
16
+ - public
17
+ - measurement
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/scorecard.md
25
+ date: 2026-10-16
26
+ ---
27
+
28
+ This rolling check was generated **2026-10-16** from 1000 labelled coins: 670 train and **330 held out**. It proposed **no change**. There were 0 new labelled coins since the last accepted tuning; the gate requires 150. The recorded reason also says no subject cleared noise on the held-out window.
29
+
30
+ | Held-out check | Current | Candidate | What happened |
31
+ |---|---:|---:|---|
32
+ | Links-only LARP MCC | 0.084 | 0.058 | Candidate was worse. Candidate precision was 27.3% (95% CI 13.2%–48.2%); recall was 9.7% (95% CI 4.5%–19.5%). |
33
+ | Rug-rule MCC | 0.142 | 0.142 | No change. Precision was 28.2% (95% CI 19.8%–38.6%); recall was 38.7% (95% CI 27.6%–51.2%). |
@@ -0,0 +1,35 @@
1
+ ---
2
+ id: docs-scorecard-links-only-larp-baseline-where-it-is-weak
3
+ title: Public measurement scorecard › Frozen task-1401 evaluation › Links-only LARP baseline: where it is weak
4
+ kind: docs
5
+ page: scorecard
6
+ page_title: Public measurement scorecard
7
+ heading: Links-only LARP baseline: where it is weak
8
+ anchor: links-only-larp-baseline-where-it-is-weak
9
+ url: https://dexterm.xyz/docs/scorecard#links-only-larp-baseline-where-it-is-weak
10
+ tags:
11
+ - docs
12
+ - scorecard
13
+ - links-only
14
+ - larp
15
+ - baseline
16
+ - where
17
+ - weak
18
+ - frozen
19
+ - task-1401
20
+ - evaluation
21
+ - public
22
+ - measurement
23
+ confidence: high
24
+ owner: maintainers
25
+ origin: docs-generated
26
+ reviewed_by: generated@2026-10-16
27
+ generated_from: dexterm/site content/docs (task-1420)
28
+ sources:
29
+ - site/content/docs/scorecard.md
30
+ date: 2026-10-16
31
+ ---
32
+
33
+ The shipped held-out MCC is **0.054**. The `LARP` grade appeared only 14 times and 4 later had a bad outcome. Because that is fewer than 20 rows, the harness withholds precision and the grade-level confidence interval; it is **too small to rate**. The raw confusion matrix is 4 true positives, 10 false positives, 57 false negatives and 257 true negatives.
34
+
35
+ The `EARLY_BUT_REAL` grade had 19/184 bad outcomes: 10.3% (95% CI 6.7%–15.6%). The whole held-out set had 61/328 bad outcomes: 18.6% (95% CI 14.8%–23.2%). This is a links-only prior. It cannot score the fetched-page, domain, GitHub or model-judgement stage.
@@ -0,0 +1,29 @@
1
+ ---
2
+ id: docs-scorecard-not-measured
3
+ title: Public measurement scorecard › Not measured
4
+ kind: docs
5
+ page: scorecard
6
+ page_title: Public measurement scorecard
7
+ heading: Not measured
8
+ anchor: not-measured
9
+ url: https://dexterm.xyz/docs/scorecard#not-measured
10
+ tags:
11
+ - docs
12
+ - scorecard
13
+ - measured
14
+ - public
15
+ - measurement
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/scorecard.md
23
+ date: 2026-10-16
24
+ ---
25
+
26
+ - **Full LARP judgement:** fetched pages, domain history, GitHub evidence and the model stage cannot be reconstructed as they appeared in the past. Forward scoring waits for at least 50 recorded verdicts matched to later outcomes.
27
+ - **Rug model output:** probability and bias are measured forward from recorded pack verdicts, not by this replay.
28
+ - **Trench scan:** there is no per-token labelled outcome.
29
+ - **Dev-history backtest:** No checked-in dev-history backtest result exists yet. This section deliberately shows no metric.
@@ -0,0 +1,33 @@
1
+ ---
2
+ id: docs-scorecard-rug-verdict-rules
3
+ title: Public measurement scorecard › Frozen task-1401 evaluation › Rug verdict rules
4
+ kind: docs
5
+ page: scorecard
6
+ page_title: Public measurement scorecard
7
+ heading: Rug verdict rules
8
+ anchor: rug-verdict-rules
9
+ url: https://dexterm.xyz/docs/scorecard#rug-verdict-rules
10
+ tags:
11
+ - docs
12
+ - scorecard
13
+ - rug
14
+ - verdict
15
+ - rules
16
+ - frozen
17
+ - task-1401
18
+ - evaluation
19
+ - public
20
+ - measurement
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/scorecard.md
28
+ date: 2026-10-16
29
+ ---
30
+
31
+ For the shipped rules, warning grades had precision **28.6% (95% CI 20.3%–38.6%)** and recall **42.6% (95% CI 31.0%–55.1%)** on the held-out split. The confusion matrix is 26 true positives, 65 false positives, 35 false negatives and 202 true negatives.
32
+
33
+ The strongest measured split was low liquidity: `SPECULATIVE` had 23/42 bad outcomes, **54.8% (95% CI 39.9%–68.8%)**. `WATCH` had 34/236, **14.4% (95% CI 10.5%–19.5%)**. Dev percentage, organic score and top-10 concentration did not predict a worse 72-hour outcome in this dataset; they now lower confidence instead of setting the verdict.
@@ -0,0 +1,31 @@
1
+ ---
2
+ id: docs-scorecard-source-and-rebuild
3
+ title: Public measurement scorecard › Source and rebuild
4
+ kind: docs
5
+ page: scorecard
6
+ page_title: Public measurement scorecard
7
+ heading: Source and rebuild
8
+ anchor: source-and-rebuild
9
+ url: https://dexterm.xyz/docs/scorecard#source-and-rebuild
10
+ tags:
11
+ - docs
12
+ - scorecard
13
+ - source
14
+ - rebuild
15
+ - public
16
+ - measurement
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/scorecard.md
24
+ date: 2026-10-16
25
+ ---
26
+
27
+ - Frozen data and report: `packages/packs/eval/skills-eval.json` and `packages/packs/eval/skills-backtest.json`.
28
+ - Rolling skill care: `packages/packs/eval/skill-care-latest.json`.
29
+ - Method details: LARP and skill evaluation (https://dexterm.xyz/docs/larp#measured-accuracy).
30
+
31
+ `dexterm/scripts/docs-sync.sh` regenerates this page before rebuilding the analyst docs knowledge base. `npm run docs:check` compares this file byte-for-byte with the generator output, so edited claims or favorable rounding fail the check.
@@ -0,0 +1,27 @@
1
+ ---
2
+ id: docs-scorecard
3
+ title: Public measurement scorecard
4
+ kind: docs
5
+ page: scorecard
6
+ page_title: Public measurement scorecard
7
+ url: https://dexterm.xyz/docs/scorecard
8
+ tags:
9
+ - docs
10
+ - scorecard
11
+ - public
12
+ - measurement
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/scorecard.md
20
+ date: 2026-10-16
21
+ ---
22
+
23
+ Held-out results, confidence intervals, frozen canaries, and the weak spots—generated from checked-in research outputs.
24
+
25
+ This page is generated from the checked-in backtest JSON. It reports the weak results with the same prominence as the stronger ones and does not turn a small or missing sample into a claim. These metrics measure agreement with a later **bad price outcome** (rug or dead under the recorder label), not whether a product is real, safe, or worth trading.
26
+
27
+ > warn: this is model evaluation, not trading performance. A grade is a risk flag, not a certificate. Nothing here predicts returns.