dexterm-cli 0.1.3 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/packages/cli/assets/claude/analyst-system.md +2 -1
- package/dist/packages/cli/src/agent-paper.js +60 -0
- package/dist/packages/cli/src/analyst/backend.js +183 -0
- package/dist/packages/cli/src/analyst/codex.js +301 -0
- package/dist/packages/cli/src/analyst/session.js +9 -2
- package/dist/packages/cli/src/app-help-gen.js +18 -9
- package/dist/packages/cli/src/docs-kb-gen.js +228 -0
- package/dist/packages/cli/src/doctor.js +80 -9
- package/dist/packages/cli/src/index.js +1 -1
- package/dist/packages/cli/src/kb-skill-cmd.js +3 -0
- package/dist/packages/cli/src/larp-detected.js +209 -0
- package/dist/packages/cli/src/live/dev-history.js +99 -0
- package/dist/packages/cli/src/live/newpairs.js +12 -0
- package/dist/packages/cli/src/live/screens/token-live.js +11 -1
- package/dist/packages/cli/src/live/token.js +39 -1
- package/dist/packages/cli/src/main.js +260 -7
- package/dist/packages/cli/src/mcp-follow.js +255 -0
- package/dist/packages/cli/src/record-cmd.js +2 -0
- package/dist/packages/cli/src/rules.js +25 -2
- package/dist/packages/cli/src/screens/analyst-session.js +5 -3
- package/dist/packages/cli/src/screens/analyst.js +4 -3
- package/dist/packages/cli/src/spectate-cmd.js +14 -3
- package/dist/packages/cli/src/version.js +1 -1
- package/dist/packages/cli/src/x-cmd.js +11 -5
- package/dist/packages/custom/src/rules.js +2 -2
- package/dist/packages/custom/src/schema.js +5 -1
- package/dist/packages/data/src/fixtures.js +28 -6
- package/dist/packages/data/src/index.js +3 -0
- package/dist/packages/data/src/sources/jupiter.js +1 -0
- package/dist/packages/data/src/trade/agent/paper-desk.js +336 -0
- package/dist/packages/data/src/trade/agent/rendezvous.js +161 -0
- package/dist/packages/mcp/assets/kb/app-help/agent-paper-trade.md +38 -0
- package/dist/packages/mcp/assets/kb/app-help/ask-the-analyst.md +1 -1
- package/dist/packages/mcp/assets/kb/app-help/connect-an-agent.md +1 -1
- package/dist/packages/mcp/assets/kb/app-help/dev-history.md +32 -0
- package/dist/packages/mcp/assets/kb/app-help/paper-trade.md +1 -1
- package/dist/packages/mcp/assets/kb/app-help/screen-positions.md +4 -1
- package/dist/packages/mcp/assets/kb/app-help/screen-token.md +1 -0
- package/dist/packages/mcp/assets/kb/app-help/spectate-an-agent.md +4 -1
- package/dist/packages/mcp/assets/kb/app-help/use-codex-analyst.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-agent-paper-trading.md +50 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-capability-tiers-enforced-server-side.md +38 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-directory-metadata-prepared-not-submitted.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-install-in-one-command.md +51 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-per-agent-mandates.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-recipes.md +43 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-red-team-coverage.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-two-ways-to-connect.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-untrusted-by-default.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-watch-an-agent-work-spectator-view.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-answer-style.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-if-claude-is-missing.md +25 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-it-knows-the-app.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-mcp-tools.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-plain-language-filters.md +25 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-skills.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-starting-a-run.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-use-codex-instead-of-claude.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-what-it-can-change-three-tiers.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-what-it-sees.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-what-the-analyst-can-never-do.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst.md +23 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-1-start-dexterm.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-2-open-a-real-coin-by-contract-address.md +43 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-3-read-the-safety-panel.md +40 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-4-read-the-holder-panel.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-5-optionally-ask-the-analyst.md +39 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-6-export-or-share-what-you-see.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-7-quit-safely.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-before-any-experimental-trading.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-check-the-installation-with-doctor.md +38 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-choose-a-setup-path.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-common-mistakes-and-recovery.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-copy-and-paste-without-surprises.md +39 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-if-data-says-unavailable-stale-or-rate-limited.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-if-dexterm-says-command-not-found.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-if-optional-help-is-unavailable.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-if-paste-does-nothing-or-pastes-twice.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-if-the-screen-looks-broken.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-if-you-typed-the-wrong-thing.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-install-node-js-first.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-linux.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-macos-homebrew.md +46 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-macos-or-linux-npm.md +39 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-macos.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-open-the-terminal.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-reopen-dexterm-later.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-ten-minute-first-win.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-terminal-shell-prompt-command-output-and-path.md +40 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-where-to-go-next.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-windows-expectations.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-windows-powershell-experimental.md +39 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-windows.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-cli-dexterm-help.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-cli-filter-grammar.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-cli-flags.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-cli-invocations.md +43 -0
- package/dist/packages/mcp/assets/kb/docs/docs-cli-presets.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-cli-scan-commands.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-cli-sort-keys.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-cli-subcommands.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-cli.md +25 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-environment-variables.md +47 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-files-on-disk.md +41 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-headless-recorder-dexterm-record.md +44 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-history-recorder.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-packs.md +38 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-price-display-mode.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-push-alerts-and-dexterm-watch.md +45 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-rules-engine.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-the-analyst-s-launch.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-the-optional-free-rpc-key.md +42 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-themes-and-keymaps.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-themes-and-look.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-widgets.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-workspaces.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration.md +25 -0
- package/dist/packages/mcp/assets/kb/docs/docs-copy-trading-stage-1-follow-a-wallet-see-what-it-does.md +51 -0
- package/dist/packages/mcp/assets/kb/docs/docs-copy-trading-stage-2-the-one-key-mirror-ticket-a-proposal.md +56 -0
- package/dist/packages/mcp/assets/kb/docs/docs-copy-trading-stage-3-capped-auto-mirror-default-off-less.md +47 -0
- package/dist/packages/mcp/assets/kb/docs/docs-copy-trading-what-is-proven-what-is-not.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-copy-trading.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-data-sources-cache.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-data-sources-health-registry.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-data-sources-rate-limits-and-pacing.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-data-sources-request-budget-meter.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-data-sources-sources.md +47 -0
- package/dist/packages/mcp/assets/kb/docs/docs-data-sources-the-helius-credit-meter.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-data-sources.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-dexterm-doctor.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-first-run.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-install.md +81 -0
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-next.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-requirements.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-running-the-tests.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-supported-platforms.md +44 -0
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-updating.md +28 -0
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-keyboard-global-keys.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-keyboard-keys-handled-by-the-loop.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-keyboard-per-screen-keys.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-keyboard-what-shows.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-keyboard.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-larp-measured-accuracy.md +53 -0
- package/dist/packages/mcp/assets/kb/docs/docs-larp-open-link-keys.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-larp-paste-a-coin-on-the-web.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-larp-the-verdict.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-larp-timestamped-follow-up-drafts.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-larp-what-it-looks-at.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-larp.md +24 -0
- package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-degraded-states-you-will-see.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-free-vs-paid-x-api-tiers-your-bill-your-limits.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-kol-lists-and-the-per-handle-filter.md +28 -0
- package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-tests.md +25 -0
- package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-what-is-read-and-when.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-what-you-set-up-once.md +40 -0
- package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-where-the-tokens-live.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-login-with-x.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-a-live-ticket.md +42 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-before-you-press-size-vs-caps.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-devnet-signer-mainnet-token.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-jupiter-rate-limits.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-letting-an-agent-paper-trade-experimental.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-link-a-wallet.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-live-trading-devnet-first.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-mainnet.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-order-plans-and-standing-mandates.md +44 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-panic.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-pnl-cards.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-live-fire-path-devnet-the-fast-wallet.md +41 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-signer-process.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-ticket.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-wallet.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-trade-moments.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-what-the-live-path-keeps.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-your-first-live-trade.md +41 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-bubble-map-popup.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-build-the-native-window.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-config-dexterm-popup-json.md +38 -0
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-docking-macos.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-keys-in-the-popup.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-market-cap-axis.md +28 -0
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-security-model.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-token-and-feeds-popups.md +38 -0
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-what-it-shows.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scan-cost-control.md +28 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scan-keys-flag-command.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scan-safety-four-layers.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scan-states.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scan-the-read.md +25 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scan-triggers-and-score.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scan.md +24 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scorecard-frozen-canary.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scorecard-frozen-task-1401-evaluation.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scorecard-latest-skill-care-run.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scorecard-links-only-larp-baseline-where-it-is-weak.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scorecard-not-measured.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scorecard-rug-verdict-rules.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scorecard-source-and-rebuild.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scorecard.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-1-screener.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-2-new-pairs.md +28 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-3-watchlist.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-4-analyst-tab.md +28 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-bubble-map.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-coin-images.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-dev-history.md +44 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-how-well-it-predicts-measured-held-out.md +46 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-live-holder-and-rug-signals.md +51 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-order-plans.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-paper-ticket-and-positions.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-the-look.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-token-screen.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-trending-social-and-kol-lists.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-1-the-agent-activity-window-follow-mode.md +56 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-2-the-read-only-stream-spectate.md +42 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-3-save-and-replay-record-file-dexterm-spectate.md +41 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-follow-over-mcp-in-the-running-terminal.md +39 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-limits.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-quick-start.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-security-model.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-see-also.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-streaming-it.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-the-three-surfaces.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-what-is-redacted.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-troubleshooting-common-questions.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-troubleshooting-doctor-lines.md +38 -0
- package/dist/packages/mcp/assets/kb/docs/docs-troubleshooting-in-app-messages.md +42 -0
- package/dist/packages/mcp/assets/kb/docs/docs-troubleshooting-reporting-a-problem.md +25 -0
- package/dist/packages/mcp/assets/kb/docs/docs-troubleshooting.md +23 -0
- package/dist/packages/mcp/assets/kb/docs/docs-voice-doctor.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-voice-it-clarifies-it-never-guesses.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-voice-latency.md +38 -0
- package/dist/packages/mcp/assets/kb/docs/docs-voice-linux-and-windows.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-voice-privacy.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-voice-still-unverified.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-voice-the-voice-neural-by-default.md +48 -0
- package/dist/packages/mcp/assets/kb/docs/docs-voice-what-it-can-never-do.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-voice-what-you-can-say.md +38 -0
- package/dist/packages/mcp/assets/kb/docs/docs-voice.md +25 -0
- package/dist/packages/mcp/src/app-help.js +123 -0
- package/dist/packages/mcp/src/firewall.js +2 -2
- package/dist/packages/mcp/src/index.js +8 -4
- package/dist/packages/mcp/src/paper-agent.js +92 -0
- package/dist/packages/mcp/src/server.js +261 -29
- package/dist/packages/mcp/src/spectator-sink.js +146 -5
- package/dist/packages/mcp/src/user-content.js +1 -0
- package/dist/packages/recorder/src/dev-history.js +129 -0
- package/dist/packages/recorder/src/index.js +1 -0
- package/dist/packages/recorder/src/recorder.js +23 -0
- package/dist/packages/recorder/src/schema.js +11 -0
- package/dist/packages/voice/src/stt/whisper.js +4 -2
- package/package.json +6 -5
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-cli-dexterm-help
|
|
3
|
+
title: CLI flags and commands › dexterm --help
|
|
4
|
+
kind: docs
|
|
5
|
+
page: cli
|
|
6
|
+
page_title: CLI flags and commands
|
|
7
|
+
heading: dexterm --help
|
|
8
|
+
anchor: dexterm-help
|
|
9
|
+
url: https://dexterm.xyz/docs/cli#dexterm-help
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- cli
|
|
13
|
+
- dexterm
|
|
14
|
+
- help
|
|
15
|
+
- flags
|
|
16
|
+
- commands
|
|
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/cli.md
|
|
24
|
+
date: 2026-10-16
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
The built-in help, verbatim from the app at `(generated from the app: see https://dexterm.xyz/docs/cli#dexterm-help; app-help has the exact keys and commands)`:
|
|
28
|
+
|
|
29
|
+
```text
|
|
30
|
+
(generated from the app: see https://dexterm.xyz/docs/cli#dexterm-help; app-help has the exact keys and commands)
|
|
31
|
+
```
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-cli-filter-grammar
|
|
3
|
+
title: CLI flags and commands › Filter grammar
|
|
4
|
+
kind: docs
|
|
5
|
+
page: cli
|
|
6
|
+
page_title: CLI flags and commands
|
|
7
|
+
heading: Filter grammar
|
|
8
|
+
anchor: filter-grammar
|
|
9
|
+
url: https://dexterm.xyz/docs/cli#filter-grammar
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- cli
|
|
13
|
+
- filter
|
|
14
|
+
- grammar
|
|
15
|
+
- flags
|
|
16
|
+
- commands
|
|
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/cli.md
|
|
24
|
+
date: 2026-10-16
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
Used by `--filter`, the `/` line, and the analyst's `show_in_screener` tool. Space-separated clauses are ANDed. A clause is `field op value`, a tag, or a bare word (symbol or name substring).
|
|
28
|
+
|
|
29
|
+
- Operators: `>` `>=` `<` `<=` `=` `==` `!=`.
|
|
30
|
+
- Money takes `K` / `M` / `B` (`5M`, `100K`). Percents are plain or `%`. Ages need a unit: `s` `m` `h` `d` `w` `mo` (`6h`, `30m`).
|
|
31
|
+
- Tags: `launchpad:` (alias `lp:`) one of `pump dbc raydium meteora bonk` · `flag:` one of `mint freeze top10 dev bundle lp clean` · `verified:yes|no` · `sus:yes|no` · `chain:solana`. Negate with a leading `!` (`!flag:mint`).
|
|
32
|
+
|
|
33
|
+
(generated from the app: see https://dexterm.xyz/docs/cli#filter-grammar; app-help has the exact keys and commands)
|
|
34
|
+
|
|
35
|
+
Aliases: (generated from the app: see https://dexterm.xyz/docs/cli#filter-grammar; app-help has the exact keys and commands)
|
|
36
|
+
|
|
37
|
+
Example: `vol24 > 250K liq > 50K age < 30d org >= 60 launchpad:pump !flag:mint cat`.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-cli-flags
|
|
3
|
+
title: CLI flags and commands › Flags
|
|
4
|
+
kind: docs
|
|
5
|
+
page: cli
|
|
6
|
+
page_title: CLI flags and commands
|
|
7
|
+
heading: Flags
|
|
8
|
+
anchor: flags
|
|
9
|
+
url: https://dexterm.xyz/docs/cli#flags
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- cli
|
|
13
|
+
- flags
|
|
14
|
+
- commands
|
|
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/cli.md
|
|
22
|
+
date: 2026-10-16
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
(generated from the app: see https://dexterm.xyz/docs/cli#flags; app-help has the exact keys and commands)
|
|
26
|
+
|
|
27
|
+
Exclusive combinations parseArgs rejects: `--fixtures` with `--replay`; `--record` with either; `--mint` or `--event` without the data they need (`--mint` needs live or replay data, `--event` needs `--fixtures`); `--scan` with `--fixtures` or with `--screen`.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-cli-invocations
|
|
3
|
+
title: CLI flags and commands › Invocations
|
|
4
|
+
kind: docs
|
|
5
|
+
page: cli
|
|
6
|
+
page_title: CLI flags and commands
|
|
7
|
+
heading: Invocations
|
|
8
|
+
anchor: invocations
|
|
9
|
+
url: https://dexterm.xyz/docs/cli#invocations
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- cli
|
|
13
|
+
- invocations
|
|
14
|
+
- flags
|
|
15
|
+
- commands
|
|
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/cli.md
|
|
23
|
+
date: 2026-10-16
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
```sh
|
|
27
|
+
$ dexterm # interactive, live keyless data (needs a TTY)
|
|
28
|
+
$ dexterm doctor # pre-flight checks with the exact fix per line
|
|
29
|
+
$ dexterm --fixtures # interactive demo on seeded fixtures
|
|
30
|
+
$ dexterm --calm # effects off
|
|
31
|
+
$ dexterm --scan # live, with AI scan mode on from the start
|
|
32
|
+
$ dexterm --screen screener --width 176 --height 48 # one live frame to stdout
|
|
33
|
+
$ dexterm --screen token --mint <MINT> --interval 5m # one live token frame
|
|
34
|
+
$ dexterm --screen screener --record /tmp/rec.json # live frame, saved for replay
|
|
35
|
+
$ dexterm --screen screener --replay /tmp/rec.json # the same frame, no network
|
|
36
|
+
$ dexterm mcp # the read-only MCP server on stdio
|
|
37
|
+
$ dexterm popup --self-test # chart popup self-test
|
|
38
|
+
$ dexterm x login # Login with X (your own X app; read scopes only)
|
|
39
|
+
$ dexterm --workspace morning-hud # start in a workspace (task-1358)
|
|
40
|
+
$ dexterm pack verify ./some-pack # the install card for a shareable pack
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Exit codes: 0 ok · 1 interactive mode without a TTY, or a doctor failure · 2 bad arguments (the message names the flag).
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-cli-presets
|
|
3
|
+
title: CLI flags and commands › Presets
|
|
4
|
+
kind: docs
|
|
5
|
+
page: cli
|
|
6
|
+
page_title: CLI flags and commands
|
|
7
|
+
heading: Presets
|
|
8
|
+
anchor: presets
|
|
9
|
+
url: https://dexterm.xyz/docs/cli#presets
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- cli
|
|
13
|
+
- presets
|
|
14
|
+
- flags
|
|
15
|
+
- commands
|
|
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/cli.md
|
|
23
|
+
date: 2026-10-16
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
(generated from the app: see https://dexterm.xyz/docs/cli#presets; app-help has the exact keys and commands)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-cli-scan-commands
|
|
3
|
+
title: CLI flags and commands › /scan commands
|
|
4
|
+
kind: docs
|
|
5
|
+
page: cli
|
|
6
|
+
page_title: CLI flags and commands
|
|
7
|
+
heading: /scan commands
|
|
8
|
+
anchor: scan-commands
|
|
9
|
+
url: https://dexterm.xyz/docs/cli#scan-commands
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- cli
|
|
13
|
+
- scan
|
|
14
|
+
- commands
|
|
15
|
+
- flags
|
|
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/cli.md
|
|
23
|
+
date: 2026-10-16
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
Typed on the screener's `/` line or in the chat input; the leading slash is optional on the `/` line. (generated from the app: see https://dexterm.xyz/docs/cli#scan-commands; app-help has the exact keys and commands)
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-cli-sort-keys
|
|
3
|
+
title: CLI flags and commands › Sort keys
|
|
4
|
+
kind: docs
|
|
5
|
+
page: cli
|
|
6
|
+
page_title: CLI flags and commands
|
|
7
|
+
heading: Sort keys
|
|
8
|
+
anchor: sort-keys
|
|
9
|
+
url: https://dexterm.xyz/docs/cli#sort-keys
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- cli
|
|
13
|
+
- sort
|
|
14
|
+
- keys
|
|
15
|
+
- flags
|
|
16
|
+
- commands
|
|
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/cli.md
|
|
24
|
+
date: 2026-10-16
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
(generated from the app: see https://dexterm.xyz/docs/cli#sort-keys; app-help has the exact keys and commands)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-cli-subcommands
|
|
3
|
+
title: CLI flags and commands › Subcommands
|
|
4
|
+
kind: docs
|
|
5
|
+
page: cli
|
|
6
|
+
page_title: CLI flags and commands
|
|
7
|
+
heading: Subcommands
|
|
8
|
+
anchor: subcommands
|
|
9
|
+
url: https://dexterm.xyz/docs/cli#subcommands
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- cli
|
|
13
|
+
- subcommands
|
|
14
|
+
- flags
|
|
15
|
+
- commands
|
|
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/cli.md
|
|
23
|
+
date: 2026-10-16
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
(generated from the app: see https://dexterm.xyz/docs/cli#subcommands; app-help has the exact keys and commands)
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-cli
|
|
3
|
+
title: CLI flags and commands
|
|
4
|
+
kind: docs
|
|
5
|
+
page: cli
|
|
6
|
+
page_title: CLI flags and commands
|
|
7
|
+
url: https://dexterm.xyz/docs/cli
|
|
8
|
+
tags:
|
|
9
|
+
- docs
|
|
10
|
+
- cli
|
|
11
|
+
- flags
|
|
12
|
+
- commands
|
|
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/cli.md
|
|
20
|
+
date: 2026-10-16
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
Every flag parseArgs accepts, the subcommands, the filter grammar, sort keys and presets.
|
|
24
|
+
|
|
25
|
+
Generated from `packages/cli/src/main.ts` (`parseArgs`, the subcommand dispatch and `dexterm --help`), `scan/command.ts` (the `--scan-*` table), `screener/filter.ts`, `screener/sort.ts` and `screener/presets.ts` at commit `(generated from the app: see https://dexterm.xyz/docs/cli; app-help has the exact keys and commands)`. `npm run docs:check` fails if a flag here does not exist or an accepted flag is undocumented.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-configuration-environment-variables
|
|
3
|
+
title: Configuration and files on disk › Environment variables
|
|
4
|
+
kind: docs
|
|
5
|
+
page: configuration
|
|
6
|
+
page_title: Configuration and files on disk
|
|
7
|
+
heading: Environment variables
|
|
8
|
+
anchor: environment-variables
|
|
9
|
+
url: https://dexterm.xyz/docs/configuration#environment-variables
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- configuration
|
|
13
|
+
- environment
|
|
14
|
+
- variables
|
|
15
|
+
- files
|
|
16
|
+
- disk
|
|
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/configuration.md
|
|
24
|
+
date: 2026-10-16
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
| variable | effect |
|
|
28
|
+
|---|---|
|
|
29
|
+
| `DEXTERM_HOME` | the directory for `state.json`, `helius.key`, `popup.json`, `config.json`, workspaces, themes and packs (default `~/.dexterm`) |
|
|
30
|
+
| `DEXTERM_DB_PATH` | set by the app for its analyst MCP child so it shares the same cache file; you normally use `--db` |
|
|
31
|
+
| `DEXTERM_RPC_URL` · `DEXTERM_RPC_URLS` | read-only RPC endpoints (see above) |
|
|
32
|
+
| `DEXTERM_CALM=1` | effects off (same as `--calm`) |
|
|
33
|
+
| `DEXTERM_INTENSITY` | `off` · `normal` · `fever` |
|
|
34
|
+
| `DEXTERM_OFFLINE=1` | refuse live data; `--fixtures` or `--replay` only (tests and CI) |
|
|
35
|
+
| `DEXTERM_ANALYST_MODEL` | the Claude model for analyst turns (default `(generated from the app: see https://dexterm.xyz/docs/configuration#environment-variables; app-help has the exact keys and commands)`) |
|
|
36
|
+
| `DEXTERM_ANALYST_ENGINE` | `auto` (default) · `claude` · `codex`: which of your CLIs runs the analyst (since 0.1.5; also `--analyst-engine` and `analyst.engine` in `config.json`) |
|
|
37
|
+
| `DEXTERM_CODEX_MODEL` | pin the Codex model for analyst turns (default: your Codex default) |
|
|
38
|
+
| `DEXTERM_POPUP_SHELL` | path to a prebuilt native chart window |
|
|
39
|
+
| `DEXTERM_POPUP_HOTKEY` · `DEXTERM_POPUP_HOTKEY_CLOSE` | override the popup chords without a config file |
|
|
40
|
+
| `DEXTERM_RECORDER=0` | history recorder off (same as `--no-recorder`; `off`, `false` and `no` work too) |
|
|
41
|
+
| `DEXTERM_TRACE` | write first-frame and first-rows milestones to a file (boot measurements) |
|
|
42
|
+
| `DEXTERM_VOICE_STT` · `DEXTERM_VOICE_TTS` | pick the voice (https://dexterm.xyz/docs/voice) engines: `auto` (default) · `apple` · `whisper` · `none`, and `auto` · `say` · `none` |
|
|
43
|
+
| `DEXTERM_VOICE_RECORD=1` | keep the whisper path's temporary WAV instead of deleting it after transcription |
|
|
44
|
+
| `DEXTERM_WHISPER_MODEL` · `DEXTERM_VOICE_HELPER_DIR` · `DEXTERM_SWIFTC` | the whisper model file (default `~/.dexterm/models/ggml-base.en.bin`), the compiled Apple Speech helper's cache dir (default `~/.dexterm/voice-helper`), the Swift compiler |
|
|
45
|
+
| `DEXTERM_SCREEN_STATE` | set by the app for its MCP child (the current screen context); not for you |
|
|
46
|
+
| `NO_COLOR` · `FORCE_COLOR` · `COLORTERM` · `TERM` | colour depth detection; `NO_COLOR` also implies calm |
|
|
47
|
+
| `LANG` / `LC_ALL` | a non-UTF-8 locale switches the rain to hex glyphs (`--ascii-rain` forces it) |
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-configuration-files-on-disk
|
|
3
|
+
title: Configuration and files on disk › Files on disk
|
|
4
|
+
kind: docs
|
|
5
|
+
page: configuration
|
|
6
|
+
page_title: Configuration and files on disk
|
|
7
|
+
heading: Files on disk
|
|
8
|
+
anchor: files-on-disk
|
|
9
|
+
url: https://dexterm.xyz/docs/configuration#files-on-disk
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- configuration
|
|
13
|
+
- files
|
|
14
|
+
- disk
|
|
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/configuration.md
|
|
22
|
+
date: 2026-10-16
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
| path | what | notes |
|
|
26
|
+
|---|---|---|
|
|
27
|
+
| `~/.local/share/dexterm/dexterm.db` | SQLite: the data cache, your watchlist and alerts, the feed snapshot, the request and credit meters, the PAPER wallet (balance, positions, trades), your KOL lists and mutes, and the history recorder (https://dexterm.xyz/docs/configuration#history-recorder)'s tables | `--db PATH` moves it, `--db :memory:` skips it. `$XDG_DATA_HOME/dexterm/dexterm.db` when set; `%APPDATA%\dexterm\dexterm.db` on Windows. |
|
|
28
|
+
| `~/.dexterm/state.json` | how many times dexterm has booted (the first launch gets the full boot and the welcome card) | `DEXTERM_HOME` moves the directory |
|
|
29
|
+
| `~/.dexterm/helius.key` | your optional free Helius key, mode 600 | read in code, URL built in memory, never printed. Optional. |
|
|
30
|
+
| `~/.dexterm/popup.json` | chart popup hotkeys, docking, rain, fps cap | optional; see popup chart (https://dexterm.xyz/docs/popup-chart#config-dexterm-popup-json) |
|
|
31
|
+
| `~/.dexterm/config.json` · `config.journal.jsonl` | the customization config (v4: theme overrides, keymap, rules, installed packs, widget consent, the price display mode (https://dexterm.xyz/docs/configuration#price-display-mode)) and its journal of applied changes with their inverses | machine-written, mode 600; `ctrl+z` in the app undoes the last change. Holds no secrets by construction: the schema has no key field, and an older config that carried one gets it moved out to `<name>.key`. See workspaces (https://dexterm.xyz/docs/configuration#workspaces), rules (https://dexterm.xyz/docs/configuration#rules-engine), packs (https://dexterm.xyz/docs/configuration#packs) |
|
|
32
|
+
| `~/.dexterm/workspaces/<name>.json` · `themes/<name>.json` | your workspaces and themes, one file each | `dexterm workspace`, `dexterm theme` |
|
|
33
|
+
| `~/.dexterm/packs/<name>@<version>/` · `allowed_signers` · `reviewed-packs.json` | installed packs (exactly the files their lock names), the publisher keys you pinned, pack hashes you marked reviewed | `dexterm pack` |
|
|
34
|
+
| `~/.dexterm/voice-helper/` | the Apple Speech helper (`recognize.swift`, its compiled binary and a source hash), built once by `swiftc` on the first voice use | optional; see voice (https://dexterm.xyz/docs/voice). No audio or transcript is ever written here |
|
|
35
|
+
| `~/.dexterm/piper/` · `~/.dexterm/models/` | the neural voice: a private Python environment with Piper (macOS, written by `dexterm voice setup`), and the downloaded voice models (`en_GB-alan-medium`, whisper `base.en`) | optional; `dexterm voice uninstall` removes the runtime, `--purge-model` the Piper voice too. See voice (https://dexterm.xyz/docs/voice#the-voice-neural-by-default) |
|
|
36
|
+
| `~/.dexterm/exports/` | PNG and text files from `E` (export a view) and `H` (PnL cards (https://dexterm.xyz/docs/paper-trading#pnl-cards)) | directory 700, files 600; local only, nothing is uploaded |
|
|
37
|
+
| `~/.dexterm/spectator.json` | the spectator stream (https://dexterm.xyz/docs/spectator#2-the-read-only-stream-spectate)'s loopback port and per-session token, while `dexterm agent serve --spectate` runs | mode 600; never printed or passed as an argument |
|
|
38
|
+
| `~/.local/bin/dexterm` | the launcher `install.sh` writes | user-level |
|
|
39
|
+
| `packages/popup/shell/wry/target/release/dexterm-shell-wry` | the native chart window, if built | `DEXTERM_POPUP_SHELL` points elsewhere |
|
|
40
|
+
|
|
41
|
+
Delete the first three and dexterm forgets everything.
|
package/dist/packages/mcp/assets/kb/docs/docs-configuration-headless-recorder-dexterm-record.md
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-configuration-headless-recorder-dexterm-record
|
|
3
|
+
title: Configuration and files on disk › History recorder › Headless recorder (dexterm record)
|
|
4
|
+
kind: docs
|
|
5
|
+
page: configuration
|
|
6
|
+
page_title: Configuration and files on disk
|
|
7
|
+
heading: Headless recorder (dexterm record)
|
|
8
|
+
anchor: headless-recorder-dexterm-record
|
|
9
|
+
url: https://dexterm.xyz/docs/configuration#headless-recorder-dexterm-record
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- configuration
|
|
13
|
+
- headless
|
|
14
|
+
- recorder
|
|
15
|
+
- dexterm
|
|
16
|
+
- record
|
|
17
|
+
- history
|
|
18
|
+
- files
|
|
19
|
+
- disk
|
|
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/configuration.md
|
|
27
|
+
date: 2026-10-16
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
The recorder above only grows while the terminal is open. `dexterm record` is **opt-in**. It runs the same recorder jobs with no terminal UI: snapshots and feed membership, the new-pairs stream, the 1 h to 72 h outcome sweeps, labels and retention. Your local history keeps growing for backtests while dexterm is closed.
|
|
31
|
+
|
|
32
|
+
```sh
|
|
33
|
+
$ dexterm record run --once --verbose # one observation pass + one maintenance pass, then exit
|
|
34
|
+
$ dexterm record run # keep going: a feed refresh every 60 s (--interval S)
|
|
35
|
+
$ dexterm record status # db size, snapshots, outcomes, today's sweep calls, LaunchAgent state
|
|
36
|
+
$ dexterm record install --dry-run # print the macOS LaunchAgent it would write; writes nothing
|
|
37
|
+
$ dexterm record install --load # write it to ~/Library/LaunchAgents (no sudo) and load it
|
|
38
|
+
$ dexterm record uninstall --unload # stop and remove it
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
- **Nothing turns itself on.** The collector runs only when you start it. `install` writes a user-level LaunchAgent and loads it only with `--load`. A LaunchAgent does not start before you log in.
|
|
42
|
+
- **Same budgets as the app.** Every request goes through the data layer's rate limiter and health gate, and the outcome sweeps keep their own per-sweep and per-day caps. It never builds a signer, never trades and never prints an RPC key.
|
|
43
|
+
- **A disk cap.** Above `--max-db-mb` (1024 by default) it pauses new observations, while labels and retention keep running, so the database cannot grow without bound.
|
|
44
|
+
- **Recurring backtests.** 0.1.3 also ships the logic behind recurring skill backtests: a rolling held-out window, a frozen comparison set, and a gate that only *proposes* a tuning when it beats the noise. Nothing changes a skill on your machine. A tuning reaches you only through a normal release, with its measured numbers, including weak ones (see LARP detector (https://dexterm.xyz/docs/larp)).
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-configuration-history-recorder
|
|
3
|
+
title: Configuration and files on disk › History recorder
|
|
4
|
+
kind: docs
|
|
5
|
+
page: configuration
|
|
6
|
+
page_title: Configuration and files on disk
|
|
7
|
+
heading: History recorder
|
|
8
|
+
anchor: history-recorder
|
|
9
|
+
url: https://dexterm.xyz/docs/configuration#history-recorder
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- configuration
|
|
13
|
+
- history
|
|
14
|
+
- recorder
|
|
15
|
+
- files
|
|
16
|
+
- disk
|
|
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/configuration.md
|
|
24
|
+
date: 2026-10-16
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
In live mode dexterm keeps a local history of what it saw, for the rug model and backtests on the roadmap (https://dexterm.xyz/roadmap/): a row per coin when its price, liquidity, holders or volume changed materially (plus an hourly anchor), which feeds listed it, and a code-only outcome label per anchor at 1 h, 2 h, 6 h, 24 h and 72 h (no model is involved). It lives in the same `--db` file; nothing is uploaded.
|
|
28
|
+
|
|
29
|
+
- **Requests:** recording reuses data the screens already fetched. Outcome checks re-ask DexScreener about coins whose window is due, at the lowest priority inside the app's own limiter: at most 6 calls a minute and 1,500 a day, skipped while DexScreener is rate-limiting.
|
|
30
|
+
- **When it runs:** the first maintenance pass (outcome check, labels, retention) runs 5 seconds after launch and then once a minute, and quitting labels whatever is due before the database closes. Until 2026-10-12 the first pass waited a full minute and nothing ran at quit, so two days of short runs on the development machine left 1,676 anchors and 0 outcomes; `dexterm recorder label` labels an older database's backlog in one go.
|
|
31
|
+
- **Size:** measured at about 100 MB per 8-hour live day with the current rules. Raw JSON is dropped after 7 days, rows are thinned to one per coin per minute after 24 hours, and columns expire after 90 days; outcome labels are kept. `dexterm recorder stats` shows the size, `dexterm recorder prune` runs retention now.
|
|
32
|
+
- **Off:** `--no-recorder` or `DEXTERM_RECORDER=0`. It never runs with `--fixtures`, `--replay` or `--db :memory:`.
|
|
33
|
+
- **Export:** `dexterm recorder export` writes one record per anchor with its later outcomes (see the CLI reference (https://dexterm.xyz/docs/cli#subcommands)).
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-configuration-packs
|
|
3
|
+
title: Configuration and files on disk › Packs
|
|
4
|
+
kind: docs
|
|
5
|
+
page: configuration
|
|
6
|
+
page_title: Configuration and files on disk
|
|
7
|
+
heading: Packs
|
|
8
|
+
anchor: packs
|
|
9
|
+
url: https://dexterm.xyz/docs/configuration#packs
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- configuration
|
|
13
|
+
- packs
|
|
14
|
+
- files
|
|
15
|
+
- disk
|
|
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/configuration.md
|
|
23
|
+
date: 2026-10-16
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
A pack is a directory you can share: `pack.json` (name, version, publisher, what it contains), then `workspaces/*.json`, `themes/*.json`, `rules/*.rules`, `keymap.json` and `widgets/<name>/` (see widgets (https://dexterm.xyz/docs/configuration#widgets)), plus a generated `pack.lock` (sha256 per file and a pack hash) and an optional `pack.lock.sig` from `ssh-keygen -Y sign` (no new dependency; the key everyone already has).
|
|
27
|
+
|
|
28
|
+
```sh
|
|
29
|
+
$ dexterm pack verify ./trenches # the install card: integrity, signature, trust, contents, refusals
|
|
30
|
+
$ dexterm pack add ./trenches --accept-unsigned # install into ~/.dexterm/packs/trenches@1.0.0
|
|
31
|
+
$ dexterm pack export ./mine --name mine --workspace hud --theme amber --rules --keymap
|
|
32
|
+
$ dexterm pack sign ./mine --key ~/.ssh/id_ed25519 ; dexterm pack trust alice "ssh-ed25519 AAAA…"
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
- **Trust tiers decide defaults, never powers.** `reviewed` (the pack hash is on the list dexterm ships or in your `reviewed-packs.json`) > `signed` (a publisher key you pinned with `dexterm pack trust`) > `unsigned` (needs `--accept-unsigned`: the risk card). Rules from a reviewed or signed pack load enabled; from an unsigned pack they load disabled and you enable each one on the rules screen (that makes your own copy). A pack keymap is shown and merged only by `dexterm pack keymap <name> --merge`, through the same reserved-key checks as your own. Widgets install disabled.
|
|
36
|
+
- **A pack never runs code.** It is plain files; there is no entry script, no dependency, no network. Refused outright, not skipped: paths with `..` or an absolute root, symlinks anywhere, hidden files, `node_modules`, more than 200 files or 2 MB, a `__proto__` key in any JSON, a capability or enabled field on a widget, a rule that tries to arm or oversize, a keymap that rebinds a reserved key. The hash is pinned at install and re-checked on every load: a pack edited after install is skipped and reported, and a directory copied into `packs/` without a record is not an install.
|
|
37
|
+
- **Export refuses secrets.** Anything in your exported files that looks like a base58 private key, a Helius token, a 32-byte hex string or a high-entropy blob stops the export before a file is written.
|
|
38
|
+
- **Not built yet:** `pack add` from a git URL or a zip (install is from a directory you already have), and a shipped reviewed list (empty until a first-party pack is reviewed). The example pack is `packs/example-widgets` in the repo.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-configuration-price-display-mode
|
|
3
|
+
title: Configuration and files on disk › Price display mode
|
|
4
|
+
kind: docs
|
|
5
|
+
page: configuration
|
|
6
|
+
page_title: Configuration and files on disk
|
|
7
|
+
heading: Price display mode
|
|
8
|
+
anchor: price-display-mode
|
|
9
|
+
url: https://dexterm.xyz/docs/configuration#price-display-mode
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- configuration
|
|
13
|
+
- price
|
|
14
|
+
- display
|
|
15
|
+
- mode
|
|
16
|
+
- files
|
|
17
|
+
- disk
|
|
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/configuration.md
|
|
25
|
+
date: 2026-10-16
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
Memecoin traders think in market cap, so every token price can be shown as **market cap** instead of the USD price per token. It is a display mode only: the same data underneath, no extra requests, and nothing that trades (signer, caps, tickets, plans, the confirm gate) reads it.
|
|
29
|
+
|
|
30
|
+
- `$` flips price ⇄ market cap on every screen and both charts, and saves it to `config.json` as `"display": { "priceMode": "mcap" }` (or `"price"`, the default) through the journal, so `ctrl+z` undoes it. `dexterm display [price|mcap]` shows or sets it from the command line; `--price-mode price|mcap` overrides it for one run; a workspace may carry `"priceMode"` and switches to it while active.
|
|
31
|
+
- Market cap = price × supply, where the supply is what the data sources already report (the row's market cap ÷ its price at the latest tick). The screener, watchlist and new pairs lead with **MCAP** (the PRICE column moves to MCAP's old place, every sort key works as before, `mcap` still sorts by market cap); the watchlist's entry becomes **ENTRY MC**; spotlights and the token header lead with the market cap and keep the price beside it.
|
|
32
|
+
- Charts: the terminal chart and the popup chart (https://dexterm.xyz/docs/popup-chart#market-cap-axis) label the Y axis in K / M / B (`300K`, `1.2M`). Historical candles are scaled by the **current** supply, and the chart title says `mcap (current supply)` so nobody reads it as the exact market cap at that time (a burn or a mint since then is not reflected).
|
|
33
|
+
- Order plans already trigger on market cap: the `O` screen and the plans popup show each level with both numbers (`entry mc ≤ $300K ($0.0₃3)`), the price taken from the plan's own supply snapshot. Position rows read **AVG MC** / **MCAP**; profit and loss stay in USD (or SOL on the paper screen).
|
|
34
|
+
- A token without a known supply falls back to its price and says so: `ᵖ` after the number in a table (the panel caption counts them), `supply unknown · showing price` on the spotlight, the header and the chart title. Nothing is estimated.
|
|
35
|
+
- `config.json` moved to **v4** for this: an older file is migrated on load (`display.priceMode = price` added, a backup kept as `config.json.bak-v3`), nothing else changes.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-configuration-push-alerts-and-dexterm-watch
|
|
3
|
+
title: Configuration and files on disk › Push alerts and dexterm watch
|
|
4
|
+
kind: docs
|
|
5
|
+
page: configuration
|
|
6
|
+
page_title: Configuration and files on disk
|
|
7
|
+
heading: Push alerts and dexterm watch
|
|
8
|
+
anchor: push-alerts-and-dexterm-watch
|
|
9
|
+
url: https://dexterm.xyz/docs/configuration#push-alerts-and-dexterm-watch
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- configuration
|
|
13
|
+
- push
|
|
14
|
+
- alerts
|
|
15
|
+
- dexterm
|
|
16
|
+
- watch
|
|
17
|
+
- files
|
|
18
|
+
- disk
|
|
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/configuration.md
|
|
26
|
+
date: 2026-10-16
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
Rules (above) already alert inside the running terminal. To hear about a match when the terminal is closed, pick where alerts go and run your rules headless.
|
|
30
|
+
|
|
31
|
+
```sh
|
|
32
|
+
dexterm alerts status # which channels are on
|
|
33
|
+
dexterm alerts set-telegram # your own Telegram bot (token + chat id read from the environment or stdin, never argv)
|
|
34
|
+
dexterm alerts set-discord # your own Discord webhook URL
|
|
35
|
+
dexterm alerts enable desktop # a desktop notification (macOS, Linux)
|
|
36
|
+
dexterm alerts test # send one test alert to every enabled channel
|
|
37
|
+
dexterm watch # run your rules with no terminal UI and deliver alerts
|
|
38
|
+
dexterm watch --once # one pass, then exit (good for cron)
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
- **Off by default.** Nothing is sent anywhere until you configure and enable a channel. `dexterm alerts disable` turns a channel off again.
|
|
42
|
+
- **Your credentials, stored locally.** A Telegram bot token or a Discord webhook lives in your home folder with mode 0600 and is never logged or printed. dexterm ships no bot and no webhook of its own.
|
|
43
|
+
- **Triggers are plain rules.** A price level, a holder-concentration change, a LARP grade change, or a new pair that matches a filter are all rule lines (see the rules section); the LARP grade is a numeric field, so "downgraded" is `when larp.delta < 0`.
|
|
44
|
+
- **Proposals only.** A rule can raise an alert, open a ticket proposal or ask the analyst. There is no path from a rule, or from `dexterm watch`, to signing, arming or raising a cap.
|
|
45
|
+
- **Untrusted text is cleaned.** Token names and symbols pass the prompt firewall before they reach any channel.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-configuration-rules-engine
|
|
3
|
+
title: Configuration and files on disk › Rules engine
|
|
4
|
+
kind: docs
|
|
5
|
+
page: configuration
|
|
6
|
+
page_title: Configuration and files on disk
|
|
7
|
+
heading: Rules engine
|
|
8
|
+
anchor: rules-engine
|
|
9
|
+
url: https://dexterm.xyz/docs/configuration#rules-engine
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- configuration
|
|
13
|
+
- rules
|
|
14
|
+
- engine
|
|
15
|
+
- files
|
|
16
|
+
- disk
|
|
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/configuration.md
|
|
24
|
+
date: 2026-10-16
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
A rule is one line: `when <cond> [for <n> ticks | <n>s | <n>m] then <action>+ [cooldown <dur>] [max <n>/h] [scope screener | watchlist | newpairs | positions | mint:<addr>] [window <dur>] [name "<s>"]`. Conditions use the filter grammar (https://dexterm.xyz/docs/cli#filter-grammar)'s fields and tags with `and` / `or` / `not` and parentheses, plus two derived signals over a per-coin history the engine keeps itself: `<field>.velocity` (current ÷ the mean of the earlier samples in the window) and `<field>.delta` (current − oldest in the window); both are false until two earlier samples exist, so a rule never fires on a coin's first paint. Actions: `alert(level, "text")`, `ticket(buy | sell, size ≤ 50, sol | usd | pct)`, `ask(skill)`, `popup(chart | token | bubbles | narrative | plans | feeds)`, `tag("label")`, `sound(name)`, `watch`.
|
|
28
|
+
|
|
29
|
+
```text
|
|
30
|
+
vol5m.velocity > 3 and cluster < 20 and liq > 25K for 2 ticks then alert(up, "surge") ask(token-dossier) popup(chart) cooldown 15m max 6/h name "surge-clean"
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
- The open token's live holder and rug signals (https://dexterm.xyz/docs/screens#live-holder-and-rug-signals) are rule fields too: `top10`, `dev`, `bundled`, `snipers`, `fresh`, `cluster`, `lplocked`, `bonding`, `mintable`, `freezable`, with `.delta` and `.velocity` (`dexterm rules fields` lists them all).
|
|
34
|
+
- Since 0.1.5: `devrugs` is the coin's creator's labelled prior rugs from the local record (dev history (https://dexterm.xyz/docs/screens#dev-history); unknown = no match), e.g. `when devrugs >= 2 then alert(warn, "new coin from a wallet that rugged before") scope newpairs`.
|
|
35
|
+
- The text is parsed, never evaluated as code. Every rule has a cooldown (default 10 m) and a max per hour (default 12, hard cap 120), so a bad rule is annoying, not dangerous.
|
|
36
|
+
- Rules can **alert**, annotate your own watchlist (`tag`, `watch`), open the read-only windows and ring the bell, or **propose**. `ticket` and `ask` do not act: each fire becomes a proposal card on the rules screen (status proposal, your keypress required, armed by nobody); acting on it opens the PAPER ticket in its editing phase, where you size and confirm, or asks the analyst. Nothing a rule does reaches an order plan, a mandate, the signer or the gate, and a rule argument named like money (`arm`, `auto`, `confirm`, `execute`, `sign`, `send`) is refused at parse time, in text and in JSON.
|
|
37
|
+
- `ctrl+r` opens the RULES screen: the list with enabled / last fired / source, `i` types a new rule with a live "would match N of M rows right now" dry-run, `tab` the proposals pane, `space` toggles, `d` removes. `dexterm rules list | add "<rule>" | remove | enable | disable <id> | check "<rule>" | dry-run "<rule>" | fields`. Rules live in `config.json`, every change through the journal.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-configuration-the-analyst-s-launch
|
|
3
|
+
title: Configuration and files on disk › The analyst's launch
|
|
4
|
+
kind: docs
|
|
5
|
+
page: configuration
|
|
6
|
+
page_title: Configuration and files on disk
|
|
7
|
+
heading: The analyst's launch
|
|
8
|
+
anchor: the-analyst-s-launch
|
|
9
|
+
url: https://dexterm.xyz/docs/configuration#the-analyst-s-launch
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- configuration
|
|
13
|
+
- analyst
|
|
14
|
+
- launch
|
|
15
|
+
- files
|
|
16
|
+
- disk
|
|
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/configuration.md
|
|
24
|
+
date: 2026-10-16
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
For the record, the analyst is spawned as `claude -p` with `--output-format stream-json`, `--tools ''` (no built-in tools), `--strict-mcp-config` pointing at the dexterm server only, `--allowedTools mcp__dexterm__*`, `--permission-mode dontAsk`, `--setting-sources ''` (none of your Claude Code settings or other plugins), the dexterm plugin directory for the skills, the analyst system prompt appended, a JSON schema for structured skills, and `--disallowedTools` for the action tools in scan mode. It cannot read files, run commands or reach any other MCP server from inside dexterm.
|
|
28
|
+
|
|
29
|
+
On Codex (since 0.1.5) it is spawned as `codex exec --json` with `--ignore-user-config` and `--ignore-rules`, `--disable` for `shell_tool`, `unified_exec`, `apps`, `plugins`, `hooks`, `multi_agent`, `browser_use` and `computer_use` (an unknown name fails the run), `sandbox_mode="read-only"`, `approval_policy="never"`, `web_search="disabled"`, the system prompt as `developer_instructions`, one `dexterm` MCP server with an `enabled_tools` allow-list and its environment forwarded by name (no value on the command line), and `--output-schema` for structured skills. The same lock is repeated on every resumed turn. `analyst.engine` in `config.json` is yours alone: a model or agent proposal that touches it is refused.
|