feat(cli): add MiniMax CLI (mmx) adapter - #1300
Conversation
Add a `minimax` CLI adapter bridging MiniMax's official CLI (`mmx`, package `mmx-cli`). Its interactive multi-turn surface is `mmx text repl`, a readline-style chat REPL that requires a TTY — provided by the PTY/tmux backend. The repl is a pure chat/generation loop with no shell or file-tool surface, so like mira/riff it relays via quiescence + screen capture rather than the `botmux send` wrapper: no skillsDir, empty systemHints, altScreen=false (it redraws its input line in place, not via the alternate screen buffer). Auth resolves from `mmx auth login` (~/.mmx/config.json); the whole ~/.mmx dir is the authPath so a sandboxed first login persists. Registered per src/adapters/cli/CLAUDE.md checklist: - src/adapters/cli/minimax.ts (new) - CliId union (types.ts) - registry.ts: RAW_CLI_EXECUTABLES + import + export + switch case - worker.ts CLI_DISPLAY_NAMES - im/lark/card-builder.ts cliDisplayNames - setup/bot-config-editor.ts CLI_ID_CHOICES (deepcoldy#30, appended) + CLI_DISPLAY_LABELS Verified: tsc --noEmit clean; cli-adapters + cli-availability unit suites pass (449); end-to-end PTY harness drove a real MiniMax-M3 reply through buildArgs -> spawn -> writeInput -> output.
Region is resolved by mmx itself (--base-url > --region > ~/.mmx config, default global); the adapter does not pass --region, so a bot follows the region chosen at `mmx auth login`. Document how to run CN and global bots on the same host via per-bot env MMX_CONFIG_DIR (separate credential dirs), and note the sandbox authPaths caveat. Docs/comments only — no behavior change. Also add minimax to the README adapter list.
0e7ce82 to
fbe0e3d
Compare
|
Thanks for a genuinely careful adapter — the 1. A registration point outside the checklist makes the unit suite red
The fix is one line next to the other no-skill CLIs: // Tool-less chat REPL (`mmx text repl`) — no skills dir of its own.
minimax: 'none',Baseline check: the same file is 6/6 green on clean 2. The comment says hints are omitted "same as mira / riff / mojo", but those three additionally set const hints = adapter.injectsSessionContext ? [] : buildBotmuxShellHints(...)
So a tool-less chat REPL currently receives the full 2b. Compounding this: the first prompt is multi-line, and delivery splits it per line
One caveat on the fix, which we checked before suggesting it: switching to Suggested scope to unblock:
For transparency: everything above was verified on a local rebase onto latest |
Add a
minimaxCLI adapter bridging MiniMax's official CLI (mmx, packagemmx-cli). Its interactive multi-turn surface ismmx text repl, a readline-style chat REPL that requires a TTY — provided by the PTY/tmux backend.The repl is a pure chat/generation loop with no shell or file-tool surface, so like mira/riff it relays via quiescence + screen capture rather than the
botmux sendwrapper: no skillsDir, empty systemHints, altScreen=false (it redraws its input line in place, not via the alternate screen buffer). Auth resolves frommmx auth login(~/.mmx/config.json); the whole ~/.mmx dir is the authPath so a sandboxed first login persists.Registered per src/adapters/cli/CLAUDE.md checklist:
Verified: tsc --noEmit clean; cli-adapters + cli-availability unit suites pass (449); end-to-end PTY harness drove a real MiniMax-M3 reply through buildArgs -> spawn -> writeInput -> output.