mplex: client, cli, plexer flow controllers and validators, wiring doc, differential tests

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-25 01:35:12 +02:00
co-authored by Claude Sonnet 5.5
parent 6ba9b89155
commit 6b28c0d80a
10 changed files with 2416 additions and 0 deletions
+30
View File
@@ -0,0 +1,30 @@
// Test artifact: runs the C++ mplex client/server as a standalone binary, mirroring what
// tai.py main does for `--mplex [COMMAND...]` and `--plexer-wrap`. Not part of the detz build.
#include <cstdlib>
#include <cstring>
#include <string>
#include <vector>
#include "mplex_client.h"
int main(int argc, char** argv) {
using namespace detz::mplex;
std::string home;
const char* env_home = std::getenv("TAI_HOME");
if (env_home && *env_home) {
home = env_home;
} else {
const char* user_home = std::getenv("HOME");
home = std::string(user_home ? user_home : "") + "/.tai";
}
if (argc >= 2 && std::strcmp(argv[1], "--mplex") == 0) {
std::vector<std::string> words(argv + 2, argv + argc);
return MplexCli::main(home, words);
}
if (argc >= 2 && std::strcmp(argv[1], "--plexer-wrap") == 0) {
NativePlexerBackend backend(home, "default");
return backend.run();
}
std::fputs("usage: mplex_cli --mplex [COMMAND...] | --plexer-wrap\n", stderr);
return 2;
}