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,36 @@
1
+ ---
2
+ id: docs-spectator-limits
3
+ title: Spectator view (watch the agent cook) › Limits
4
+ kind: docs
5
+ page: spectator
6
+ page_title: Spectator view (watch the agent cook)
7
+ heading: Limits
8
+ anchor: limits
9
+ url: https://dexterm.xyz/docs/spectator#limits
10
+ tags:
11
+ - docs
12
+ - spectator
13
+ - limits
14
+ - view
15
+ - watch
16
+ - agent
17
+ - cook
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/spectator.md
25
+ date: 2026-10-16
26
+ ---
27
+
28
+ Stated plainly, as of `(generated from the app: see https://dexterm.xyz/docs/spectator#limits; app-help has the exact keys and commands)`:
29
+
30
+ - **The AGENT ACTIVITY window is a separate window with its own screen model.** Its `screen` line shows the screen the agent *asked for*, built from its navigation events, and the bus runs in its own process (`dexterm agent serve`), so that window is not a mirror of your terminal. The running terminal itself **does** move when you follow with `dexterm --spectate-mcp` (follow mode) — that is a different surface from the popup window.
31
+ - **MCP agents are shown in follow mode, which you turn on.** Agents connected through `dexterm mcp` (Claude Code, Claude Desktop, Cursor or Codex, set up with `dexterm mcp install`) appear once you run the app with `dexterm --spectate-mcp`; the terminal then follows them and a read-only stream opens. Without the flag the MCP server emits nothing. The built-in analyst drives the terminal through its own action channel and shows `analyst did X`.
32
+ - **Replay is text.** `dexterm spectate --replay` prints the session in the terminal. It does not reopen the window.
33
+ - **No stream viewer ships.** The raw stream is for your own tooling.
34
+ - **Redaction matches patterns.** It masks anything shaped like an address or a key. Other text, such as a token symbol, a filter or a number, is shown as it is.
35
+ - **The window keeps the last 200 events** and shows 80.
36
+ - **The native window is macOS-only** and needs the native shell built. Everywhere else the window opens in your browser on loopback.
@@ -0,0 +1,37 @@
1
+ ---
2
+ id: docs-spectator-quick-start
3
+ title: Spectator view (watch the agent cook) › Quick start
4
+ kind: docs
5
+ page: spectator
6
+ page_title: Spectator view (watch the agent cook)
7
+ heading: Quick start
8
+ anchor: quick-start
9
+ url: https://dexterm.xyz/docs/spectator#quick-start
10
+ tags:
11
+ - docs
12
+ - spectator
13
+ - quick
14
+ - start
15
+ - view
16
+ - watch
17
+ - agent
18
+ - cook
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/spectator.md
26
+ date: 2026-10-16
27
+ ---
28
+
29
+ ```sh
30
+ $ dexterm agent add scanbot --tier observe # once: register the agent, prints a one-time token
31
+ $ export DEXTERM_AGENT_TOKEN=dxa_… # in the agent's environment, never on a command line
32
+ $ dexterm agent serve --spectator-popup --record session.jsonl
33
+ $ # now start your agent; it connects to the bus with its name and token
34
+ $ dexterm spectate --replay session.jsonl # later: replay what it did
35
+ ```
36
+
37
+ `dexterm agent serve` runs on **fixtures** (canned data, no network) unless you pass `--live` for keyless live reads. Fixtures are the right choice for a first try and for any recording you plan to show.
@@ -0,0 +1,35 @@
1
+ ---
2
+ id: docs-spectator-security-model
3
+ title: Spectator view (watch the agent cook) › Security model
4
+ kind: docs
5
+ page: spectator
6
+ page_title: Spectator view (watch the agent cook)
7
+ heading: Security model
8
+ anchor: security-model
9
+ url: https://dexterm.xyz/docs/spectator#security-model
10
+ tags:
11
+ - docs
12
+ - spectator
13
+ - security
14
+ - model
15
+ - view
16
+ - watch
17
+ - agent
18
+ - cook
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/spectator.md
26
+ date: 2026-10-16
27
+ ---
28
+
29
+ - **Loopback only.** The stream binds `127.0.0.1` on a random port and refuses any connection whose remote address is not loopback. It never binds a LAN address or `::`.
30
+ - **Per-session token.** 32 random bytes, generated when the stream starts, compared in constant time, stored in `~/.dexterm/spectator.json` (0600) and never passed as an argument. A connection without the token in its first 10 seconds is closed.
31
+ - **No inbound command path.** The stream server holds only the event hub. It has no reference to the bus, the agent registry, the tool executor or any control, so no code path leads from the socket to anything that can change state. A test sends `tools/call`, `pause` and `roster.kick` at it and checks that the bus is untouched and the socket only ever sent events.
32
+ - **The window uses the popup host's security unchanged**: a single-use ticket and a one-time WebSocket token per window, loopback bind, strict Host and Origin checks, a nonce CSP, and an allow-list that admits only the four `spectator.*` control events. Every string is drawn as text, never as HTML.
33
+ - **Agents stay untrusted and cannot sign.** The spectator view only observes calls the gate already allowed or refused. No agent at any tier has a tool that can arm, sign, confirm, send, raise a cap, change the gate or touch a wallet, a mandate or the signer, and the spectator view adds no event or control that could. Watching an agent never gives it more power.
34
+
35
+ The trust page (https://dexterm.xyz/trust/#spectator) has the short version.
@@ -0,0 +1,29 @@
1
+ ---
2
+ id: docs-spectator-see-also
3
+ title: Spectator view (watch the agent cook) › See also
4
+ kind: docs
5
+ page: spectator
6
+ page_title: Spectator view (watch the agent cook)
7
+ heading: See also
8
+ anchor: see-also
9
+ url: https://dexterm.xyz/docs/spectator#see-also
10
+ tags:
11
+ - docs
12
+ - spectator
13
+ - view
14
+ - watch
15
+ - agent
16
+ - cook
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/spectator.md
24
+ date: 2026-10-16
25
+ ---
26
+
27
+ - Bring your own agent (https://dexterm.xyz/docs/agents): connecting an agent, tiers, mandates and the untrusted-by-default model.
28
+ - Trust (https://dexterm.xyz/trust/#agents): what any connected agent can never do.
29
+ - `dexterm help spectate`: the same topic from the command line, offline.
@@ -0,0 +1,32 @@
1
+ ---
2
+ id: docs-spectator-streaming-it
3
+ title: Spectator view (watch the agent cook) › Streaming it
4
+ kind: docs
5
+ page: spectator
6
+ page_title: Spectator view (watch the agent cook)
7
+ heading: Streaming it
8
+ anchor: streaming-it
9
+ url: https://dexterm.xyz/docs/spectator#streaming-it
10
+ tags:
11
+ - docs
12
+ - spectator
13
+ - streaming
14
+ - view
15
+ - watch
16
+ - agent
17
+ - cook
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/spectator.md
25
+ date: 2026-10-16
26
+ ---
27
+
28
+ - **Capture the window**, not a port. Point your capture tool's window capture at the "watch the agent cook" window, or at the browser window if you're on the browser fallback. "Shareable" here means you capture a window on your own screen. Nothing binds a public address, and you shouldn't forward or tunnel the stream port.
29
+ - **Keep secrets off screen.** Don't show `~/.dexterm/spectator.json`, the `DEXTERM_AGENT_TOKEN` line or `dexterm agent add` output (it prints the agent's token once). `agent serve` prints the token's file path, never the token.
30
+ - **Use fixtures for a show.** `agent serve` without `--live` uses canned data, so no real coin names or market numbers appear. With `--live`, a capture shows whatever real coins the agent looks at.
31
+ - **Record and replay.** Add `--record FILE` so you can share the session afterwards. The file is redacted, so you can attach it to a bug report.
32
+ - The window and the stream show model and agent activity, not advice. Whatever an agent concludes is its own reading of tool results.
@@ -0,0 +1,37 @@
1
+ ---
2
+ id: docs-spectator-the-three-surfaces
3
+ title: Spectator view (watch the agent cook) › The three surfaces
4
+ kind: docs
5
+ page: spectator
6
+ page_title: Spectator view (watch the agent cook)
7
+ heading: The three surfaces
8
+ anchor: the-three-surfaces
9
+ url: https://dexterm.xyz/docs/spectator#the-three-surfaces
10
+ tags:
11
+ - docs
12
+ - spectator
13
+ - three
14
+ - surfaces
15
+ - view
16
+ - watch
17
+ - agent
18
+ - cook
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/spectator.md
26
+ date: 2026-10-16
27
+ ---
28
+
29
+ All three read the same events from one in-memory hub, which `agent serve` creates only when you ask for one of them. Each surface redacts its own copy (see what is redacted (https://dexterm.xyz/docs/spectator#what-is-redacted)). The hub keeps the original events, and they never leave the process.
30
+
31
+ | surface | start it with | what you get |
32
+ | --- | --- | --- |
33
+ | AGENT ACTIVITY window | `dexterm agent serve --spectator-popup` | a window titled "watch the agent cook" with live activity and the pause, take over and kill controls |
34
+ | read-only stream | `dexterm agent serve --spectate` | a loopback WebSocket that sends events out and accepts no commands |
35
+ | save and replay | `dexterm agent serve --record FILE`, then `dexterm spectate --replay FILE` | a redacted JSONL file of the session that you can replay offline |
36
+
37
+ The flags combine: `--spectator-popup --spectate --record FILE` runs all three at once, and `--roster` adds the agent roster (https://dexterm.xyz/docs/agents#untrusted-by-default) popup.
@@ -0,0 +1,35 @@
1
+ ---
2
+ id: docs-spectator-what-is-redacted
3
+ title: Spectator view (watch the agent cook) › What is redacted
4
+ kind: docs
5
+ page: spectator
6
+ page_title: Spectator view (watch the agent cook)
7
+ heading: What is redacted
8
+ anchor: what-is-redacted
9
+ url: https://dexterm.xyz/docs/spectator#what-is-redacted
10
+ tags:
11
+ - docs
12
+ - spectator
13
+ - redacted
14
+ - view
15
+ - watch
16
+ - agent
17
+ - cook
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/spectator.md
25
+ date: 2026-10-16
26
+ ---
27
+
28
+ Redaction runs on every copy that leaves the hub: the stream, the saved file and the AGENT ACTIVITY window.
29
+
30
+ - **Wallet and token addresses**: any base58 run of 32 to 44 characters becomes `head4…tail4` (`7xKX…gAsU`), the same short form the app uses elsewhere. A full address never appears.
31
+ - **Key material**: any base58 run of 45 or more characters, or a hex run of 64 or more, becomes `[key]` with nothing kept. The gate already refuses every key and signer tool, so key material should never reach an event, and this rule covers it anyway.
32
+ - **Every string field, not just the summary.** The tool name, the refusal reason, the agent's name and every navigation field (screen, token, feed, filter, highlight, side) are scrubbed too. An untrusted agent might put an address or a key in an unknown tool name to smuggle it into the stream. The bus cuts a refused tool name to 64 characters and redaction masks what is left. A test drives that exact attack through the real bus and checks the stream and the saved file.
33
+ - **Sensitive events**: an event marked sensitive keeps only `[sensitive]` as its summary.
34
+
35
+ What stays readable: phases, tool names, tiers, timings, data ages, refusal codes and verdict labels, which is what makes the stream worth watching. A token symbol, a filter or a number in a summary is shown as it is. If you don't want real coin names in a capture, run on fixtures (the default).
@@ -0,0 +1,29 @@
1
+ ---
2
+ id: docs-spectator
3
+ title: Spectator view (watch the agent cook)
4
+ kind: docs
5
+ page: spectator
6
+ page_title: Spectator view (watch the agent cook)
7
+ url: https://dexterm.xyz/docs/spectator
8
+ tags:
9
+ - docs
10
+ - spectator
11
+ - view
12
+ - watch
13
+ - agent
14
+ - cook
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/spectator.md
22
+ date: 2026-10-16
23
+ ---
24
+
25
+ Watch a connected agent work in real time. An AGENT ACTIVITY window with pause, take over and kill, a read-only loopback stream, and redacted save and replay. Covers what is redacted, the security model, how to capture it for a stream, and its limits.
26
+
27
+ The spectator view lets you watch an agent work: each time a connected agent calls a tool (opens a token, runs a LARP check, scans new pairs, reads a bubble map, makes a proposal, gets refused), the call shows up with its result, how long it took and how old its data was. It is for watching and for demos ("watch the agent cook"). It adds no new power: agents stay untrusted (https://dexterm.xyz/docs/agents#untrusted-by-default), and nothing in the spectator view can arm, sign, confirm or send anything.
28
+
29
+ It works with agents connected to the **loopback agent bus** that `dexterm agent serve` runs (see bring your own agent (https://dexterm.xyz/docs/agents#two-ways-to-connect)), and — since 0.1.4 — with agents connected over **MCP** (`dexterm mcp install`): run the app with `dexterm --spectate-mcp` and the **running terminal follows the agent** as it works (see follow an MCP agent (https://dexterm.xyz/docs/spectator#follow-over-mcp-in-the-running-terminal)). Read limits (https://dexterm.xyz/docs/spectator#limits) before you rely on it.
@@ -0,0 +1,33 @@
1
+ ---
2
+ id: docs-troubleshooting-common-questions
3
+ title: Troubleshooting › Common questions
4
+ kind: docs
5
+ page: troubleshooting
6
+ page_title: Troubleshooting
7
+ heading: Common questions
8
+ anchor: common-questions
9
+ url: https://dexterm.xyz/docs/troubleshooting#common-questions
10
+ tags:
11
+ - docs
12
+ - troubleshooting
13
+ - common
14
+ - questions
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/troubleshooting.md
22
+ date: 2026-10-16
23
+ ---
24
+
25
+ **The screener is empty on first launch.** It should paint cached or skeleton rows within a second. If it stays empty for more than a few seconds, run `dexterm doctor`: the Jupiter bucket allows one call every ~3 s keyless, and a 429 pauses it for 30 s.
26
+
27
+ **Candles load slowly after switching timeframe.** 5m/15m derive from 1m and 4h/1d from 1h locally, so a switch costs at most one fetch, and the chart goes ahead of background work. GeckoTerminal allows about 10 calls a minute per IP; several dexterm instances on one IP share that.
28
+
29
+ **The chart popup did not dock.** macOS Automation permission was denied, or the terminal is not Terminal.app or iTerm2; the window opens at the screen edge instead. Drag it where you want it.
30
+
31
+ **Quitting takes long.** It should take under a second. If it does not, report it with `--verbose` output; the shutdown signal cancels every pending wait.
32
+
33
+ **Something that looks like dexterm asks for a seed phrase or a wallet connection.** It is not dexterm. The app never asks for keys; see security and trust (https://dexterm.xyz/trust/).
@@ -0,0 +1,36 @@
1
+ ---
2
+ id: docs-troubleshooting-doctor-lines
3
+ title: Troubleshooting › Doctor lines
4
+ kind: docs
5
+ page: troubleshooting
6
+ page_title: Troubleshooting
7
+ heading: Doctor lines
8
+ anchor: doctor-lines
9
+ url: https://dexterm.xyz/docs/troubleshooting#doctor-lines
10
+ tags:
11
+ - docs
12
+ - troubleshooting
13
+ - doctor
14
+ - lines
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/troubleshooting.md
22
+ date: 2026-10-16
23
+ ---
24
+
25
+ | line | meaning | fix |
26
+ |---|---|---|
27
+ | `✗ Node … too old` | Node is below 22.18 (needed to run the TypeScript entry) | `nvm install 22` or `brew install node`, then re-run. `./install.sh` can fetch a verified Node for you. |
28
+ | `! Terminal: not a TTY` | output is piped or the shell is not interactive | run `dexterm` in a terminal window. One-shot frames still work with `--screen`. |
29
+ | `! Terminal colour: 256-colour only` | the terminal cannot do 24-bit colour | use a truecolor terminal (iTerm2, WezTerm, Ghostty, Kitty, Alacritty, Windows Terminal) or set `COLORTERM=truecolor`. The app runs, flattened. |
30
+ | `! Terminal colour: no colour` | `NO_COLOR` is set, or a monochrome terminal | unset `NO_COLOR` for the full look; dexterm works in monochrome. |
31
+ | `! Claude CLI: not found` | `claude` is not on PATH | only the analyst needs it: install Claude Code and run `claude` once to log in. Everything else works. |
32
+ | `! Helius RPC: no key` | no key configured | optional. Holders and some safety fields show `needs key`; see configuration (https://dexterm.xyz/docs/configuration#the-optional-free-rpc-key). |
33
+ | `✗ Data sources: unreachable …` | a required host did not answer | check your connection, VPN or firewall. If only some hosts fail they may be blocked on your network. `--fixtures` or `DEXTERM_OFFLINE=1` browse offline demo data. |
34
+ | `! Data sources: … PumpPortal …` | only the new-pairs host is down | the rest works; new pairs may be blocked on your network. |
35
+ | `! Chart window: not built` | no native shell | the chart popup opens in your browser. For the docked window install Rust and run `npm run build:shell` in `packages/popup`. |
36
+ | `✗ Data directory: cannot write …` | the data dir is not writable | fix the permissions the line names, or run with `--db :memory:`. |
@@ -0,0 +1,42 @@
1
+ ---
2
+ id: docs-troubleshooting-in-app-messages
3
+ title: Troubleshooting › In-app messages
4
+ kind: docs
5
+ page: troubleshooting
6
+ page_title: Troubleshooting
7
+ heading: In-app messages
8
+ anchor: in-app-messages
9
+ url: https://dexterm.xyz/docs/troubleshooting#in-app-messages
10
+ tags:
11
+ - docs
12
+ - troubleshooting
13
+ - in-app
14
+ - messages
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/troubleshooting.md
22
+ date: 2026-10-16
23
+ ---
24
+
25
+ | message | meaning |
26
+ |---|---|
27
+ | `connecting to the live feed…` | the first DexScreener list has not landed yet; skeleton rows show in the meantime |
28
+ | `offline — can't reach the data feed` | no source answered; run `dexterm doctor`. `r` retries. |
29
+ | `rate-limited — backing off` | a source returned 429; the limiter pauses it (30 s, doubling to 10 min) and other sources keep going |
30
+ | `unavailable: <reason>` / `needs key` in a panel | that panel's source is down or needs a key; nothing is fabricated |
31
+ | `cached Nm old · refreshing` | the screener painted its last snapshot while fresh rows load |
32
+ | `claude is not logged in` in the analyst panel | run `claude login` and retry |
33
+ | `analyst busy; Esc to interrupt before vetting` | one run per conversation at a time; `esc` interrupts it |
34
+ | `open links needs live mode` / `paper trading needs live mode` | fixtures and one-shot frames have no real links or quotes |
35
+ | `AI scan needs live data (or --replay FILE)` | the scan has nothing real to watch on fixtures |
36
+ | `AI scan blocked analyst action "…" · observe-only` | the model tried an action during a scan and the app refused it; this is the safety layer working |
37
+ | `rate limited by Jupiter — retrying…` on a ticket | the keyless quote bucket is paused; the confirm retries for up to 8 s, then lets you retry or cancel |
38
+ | `chart opened in browser (<reason>)` | the native shell is not built or has no display; the page says why too |
39
+ | `voice-in unavailable — type your question instead` | no speech-to-text engine on this Mac (no `swiftc`, or no whisper-cli + model + sox/ffmpeg); replies are still spoken. `dexterm doctor` prints the 2-minute fix |
40
+ | `mic/STT could not start: …` | the Apple Speech helper could not be spawned or macOS denied Microphone / Speech permission; voice stays idle and the keyboard works. Allow the permissions in System Settings › Privacy & Security, or set `DEXTERM_VOICE_STT=whisper` |
41
+ | `mic timed out — press v to talk again` | the mic was live for 15 s with no second `v`; it closed itself |
42
+ | `I don't see a token called X` / `I see 2 tokens called X` | voice never guesses a coin: open the exact token first, then say buy or sell |
@@ -0,0 +1,25 @@
1
+ ---
2
+ id: docs-troubleshooting-reporting-a-problem
3
+ title: Troubleshooting › Reporting a problem
4
+ kind: docs
5
+ page: troubleshooting
6
+ page_title: Troubleshooting
7
+ heading: Reporting a problem
8
+ anchor: reporting-a-problem
9
+ url: https://dexterm.xyz/docs/troubleshooting#reporting-a-problem
10
+ tags:
11
+ - docs
12
+ - troubleshooting
13
+ - reporting
14
+ - problem
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/troubleshooting.md
22
+ date: 2026-10-16
23
+ ---
24
+
25
+ Include `dexterm --version`, the `dexterm doctor` output (it contains no secrets), your terminal, and if possible a `--record` file of the one-shot frame that misbehaves (keys are redacted at capture). Where to send it is on the trust page (https://dexterm.xyz/trust/#report).
@@ -0,0 +1,23 @@
1
+ ---
2
+ id: docs-troubleshooting
3
+ title: Troubleshooting
4
+ kind: docs
5
+ page: troubleshooting
6
+ page_title: Troubleshooting
7
+ url: https://dexterm.xyz/docs/troubleshooting
8
+ tags:
9
+ - docs
10
+ - troubleshooting
11
+ confidence: high
12
+ owner: maintainers
13
+ origin: docs-generated
14
+ reviewed_by: generated@2026-10-16
15
+ generated_from: dexterm/site content/docs (task-1420)
16
+ sources:
17
+ - site/content/docs/troubleshooting.md
18
+ date: 2026-10-16
19
+ ---
20
+
21
+ What each doctor line and in-app message means, and the fix.
22
+
23
+ `dexterm doctor` is the first stop. It exits 0 when the app will run (warnings are optional) and 1 when something must be fixed, and every non-pass line prints the exact fix.
@@ -0,0 +1,26 @@
1
+ ---
2
+ id: docs-voice-doctor
3
+ title: Jarvis voice mode › Doctor
4
+ kind: docs
5
+ page: voice
6
+ page_title: Jarvis voice mode
7
+ heading: Doctor
8
+ anchor: doctor
9
+ url: https://dexterm.xyz/docs/voice#doctor
10
+ tags:
11
+ - docs
12
+ - voice
13
+ - doctor
14
+ - jarvis
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/voice.md
23
+ date: 2026-10-16
24
+ ---
25
+
26
+ `dexterm doctor` has a voice section. When the neural voice is set up it shows `Voice out (Piper)` as the default with `Voice out (say, fallback)` beneath it; when it is not, it shows `Voice out (say)` plus a `Neural voice (Piper)` hint whose fix is `dexterm voice setup`. It also shows `Voice in (Apple Speech)` or `Voice in (whisper)` and a mic-capture note. Every line is a warning at worst and voice degrades to text; the doctor never fails because of voice. `dexterm voice status` shows the same engine summary and which models are installed.
@@ -0,0 +1,36 @@
1
+ ---
2
+ id: docs-voice-it-clarifies-it-never-guesses
3
+ title: Jarvis voice mode › It clarifies; it never guesses
4
+ kind: docs
5
+ page: voice
6
+ page_title: Jarvis voice mode
7
+ heading: It clarifies; it never guesses
8
+ anchor: it-clarifies-it-never-guesses
9
+ url: https://dexterm.xyz/docs/voice#it-clarifies-it-never-guesses
10
+ tags:
11
+ - docs
12
+ - voice
13
+ - clarifies
14
+ - never
15
+ - guesses
16
+ - jarvis
17
+ - mode
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/voice.md
25
+ date: 2026-10-16
26
+ ---
27
+
28
+ - A ticker it cannot see on screen gets "I don't see a token called X — open it first". There is no fuzzy match: "buy bonks" does not become BONK.
29
+ - A ticker that resolves to **more than one mint** (a copycat) gets "I see 2 tokens called X. Open the exact one first, then say buy" and no ticket opens.
30
+ - A pronoun ("buy it") means the row actually highlighted on the current screen. On an empty list it asks instead of acting on a coin you cannot see.
31
+ - "cell wif" / "by bonk" (homophones) ask "did you mean sell?". A screen command and a trade in one breath ("show runners and sell all my bonk") ask you to say just one. A bare "close" or "exit" asks what to close.
32
+ - A named ticker beats a pronoun: "buy BONK, confirm it" with WIF selected opens a BONK ticket, never WIF.
33
+ - A spoken ticker that is **also a command word** and is visible on screen — "buy live" with a token called LIVE in the list — is not assumed to be the highlighted row: it asks which token you mean rather than silently buying the selected coin.
34
+ - **More than one ticker in a breath** ("buy wif and bonk") asks which one; it never quietly drops one and trades the other.
35
+ - A **spoken size, amount or slippage** ("buy 10 sol of bonk", "buy bonk with max size", "buy bonk 50 percent slippage") is not applied by voice: it says it does not set size or slippage by voice, and asks you to open the ticket and set it there. No size spoken aloud ever reaches a ticket.
36
+ - An **order plan** needs every market cap to carry its scale: "dips to 300k" is a plan, "dips to 300" asks "300k or 300m?" instead of guessing, and "1.2m" keeps its decimal point rather than collapsing to 12m. An unclear fraction ("sell some at 600k") asks what fraction; a plan with no named or highlighted coin asks which coin. "… and confirm it" at the end of a plan drafts the same inert proposal and arms nothing.
@@ -0,0 +1,38 @@
1
+ ---
2
+ id: docs-voice-latency
3
+ title: Jarvis voice mode › Latency
4
+ kind: docs
5
+ page: voice
6
+ page_title: Jarvis voice mode
7
+ heading: Latency
8
+ anchor: latency
9
+ url: https://dexterm.xyz/docs/voice#latency
10
+ tags:
11
+ - docs
12
+ - voice
13
+ - latency
14
+ - jarvis
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/voice.md
23
+ date: 2026-10-16
24
+ ---
25
+
26
+ Measured on the development Mac (Intel i7-8700B, 2026-10-10), key-release to first spoken word, excluding speech-to-text:
27
+
28
+ | stage | measured |
29
+ |---|---|
30
+ | router (intent, clarify, provenance gate) | 0.01 ms median |
31
+ | `say` first audio | 0.8 ms median |
32
+ | Piper neural first audio, model pre-warmed (voice on) | ~0.18 s (cold, first-ever reply: ~1.7 s) |
33
+ | instant command path (router + say) | under 1 ms |
34
+ | Claude first token (warm `claude -p`, model only) | 3.1 s |
35
+ | Apple Speech helper, cached lookup | 0.2 ms; a one-time 4.1 s `swiftc` compile on first use |
36
+ | whisper `base.en` on a 2.3 s clip (CPU batch) | 3.0 to 3.3 s |
37
+
38
+ Apple Speech streams partial transcripts while you speak, so the perceived speech-to-text delay is well under a second; whisper is a batch fallback and feels like three seconds. Real analyst turns add tool round-trips on top of the first token.
@@ -0,0 +1,32 @@
1
+ ---
2
+ id: docs-voice-linux-and-windows
3
+ title: Jarvis voice mode › Linux and Windows
4
+ kind: docs
5
+ page: voice
6
+ page_title: Jarvis voice mode
7
+ heading: Linux and Windows
8
+ anchor: linux-and-windows
9
+ url: https://dexterm.xyz/docs/voice#linux-and-windows
10
+ tags:
11
+ - docs
12
+ - voice
13
+ - linux
14
+ - windows
15
+ - jarvis
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/voice.md
24
+ date: 2026-10-16
25
+ ---
26
+
27
+ **Linux is beta (since 0.1.2); Windows voice input is not built.** macOS is the platform voice mode was built and measured on. Off macOS the engines below exist on main, but no person has yet verified real speaker or microphone I/O on Linux hardware. Treat Linux voice as beta. Every voice action has a keyboard equivalent.
28
+
29
+ - **Speech out (Linux).** The neural Piper engine is the default when its prebuilt binary and the `en_GB-alan-medium` voice are installed (`dexterm voice download piper-voice` fetches the voice from Hugging Face, asks first and checks a pinned checksum). `espeak-ng` is the fallback. Both play their WAV through `aplay`, `paplay` or `ffplay`. Synthesis to WAV is verified in Docker on Linux, but real speaker output is not covered by the test suite. `dexterm doctor` names what is missing. Don't use `apt install piper`, which installs an unrelated tool.
30
+ - **Speech in (Linux).** Apple Speech is macOS-only. The local whisper.cpp engine (`dexterm voice download whisper` fetches its `base.en` model) records with `sox`, `arecord` (alsa-utils) or `ffmpeg -f alsa`. Real microphone capture on Linux is not yet verified on hardware.
31
+ - **Windows.** Untested. `espeak-ng` or Piper may speak through `ffplay`, but microphone capture has no Windows-specific input (the `ffmpeg` capture uses a macOS or Linux device), so treat push-to-talk on Windows as not built.
32
+ - **Unchanged everywhere.** The router, the clarify-never-guess rules and the hard limits above are platform-independent. Another platform adds engines, not powers: voice can never confirm, sign, flip LIVE or raise a cap.
@@ -0,0 +1,26 @@
1
+ ---
2
+ id: docs-voice-privacy
3
+ title: Jarvis voice mode › Privacy
4
+ kind: docs
5
+ page: voice
6
+ page_title: Jarvis voice mode
7
+ heading: Privacy
8
+ anchor: privacy
9
+ url: https://dexterm.xyz/docs/voice#privacy
10
+ tags:
11
+ - docs
12
+ - voice
13
+ - privacy
14
+ - jarvis
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/voice.md
23
+ date: 2026-10-16
24
+ ---
25
+
26
+ The Apple path keeps no audio file; the whisper path writes a temporary WAV and deletes it after transcription unless `DEXTERM_VOICE_RECORD=1`. Transcripts are treated as untrusted text: control characters are stripped before anything is drawn, and a voice question is capped at 400 characters like a typed one. Questions sent to the analyst land in your own Claude Code session store, the same as typed questions.
@@ -0,0 +1,27 @@
1
+ ---
2
+ id: docs-voice-still-unverified
3
+ title: Jarvis voice mode › Still unverified
4
+ kind: docs
5
+ page: voice
6
+ page_title: Jarvis voice mode
7
+ heading: Still unverified
8
+ anchor: still-unverified
9
+ url: https://dexterm.xyz/docs/voice#still-unverified
10
+ tags:
11
+ - docs
12
+ - voice
13
+ - still
14
+ - unverified
15
+ - jarvis
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/voice.md
24
+ date: 2026-10-16
25
+ ---
26
+
27
+ The real-microphone path has been exercised headlessly (scripted speech engines, the real key loop) and the engines have been measured on synthetic audio. A person has not yet run the first-launch Microphone and Speech prompts and spoken to it end to end; see the changelog (https://dexterm.xyz/changelog/).