#include "cli.h" #include "version.hpp" #include #include namespace detz::cli { std::string Parser::helpText() { return std::string("usage: tai [options] [prompt...]\n\noptions:\n" " --profile P --yes --yolo --auto --continue --debug [SINK] --debug-format FORMAT\n" " --env E --no-opencode --update-models --eval-retrieval --stats-rag --version\n" " --cap-manifest --cap-speak --cap-cwd DIR --cap-model MODEL\n" " --cap-permission-mode MODE --cap-max-turns N --cap COMMAND...\n" " --serve-mcp KEY --mcp-port PORT --mcp-bind HOST\n" " --telegram --scheduler --install --install-telegram --uninstall-telegram\n" " --plexer-wrap --mplex COMMAND... --demo --demo-shot --tui --tui-local --theme NAME\n" " --help (-h)\n version ") + std::string(kVersion) + "\n"; } Options Parser::parseOpts(int argc, char** argv) { Options o; for (int i = 1; i < argc; ++i) { std::string a = argv[i]; auto nxt = [&](std::optional& f) { if (i+1 < argc) f = argv[++i]; }; if (a=="--profile") nxt(o.profile); else if (a=="--yes") o.yes = true; else if (a=="--yolo") o.yolo = true; else if (a=="--auto") o.auto_ = true; else if (a=="--continue") o.resume = true; else if (a=="--debug") { o.debug = (i+1{}; while (++ipush_back(argv[i]); break; } else if (a=="--serve-mcp") nxt(o.serve_mcp); else if (a=="--mcp-port") { if (i+1{}; while (++ipush_back(argv[i]); break; } else if (a=="--demo") o.demo = true; else if (a=="--demo-shot") o.demo_shot = true; else if (a=="--model") { if(i+1