9#include <nlohmann/json.hpp>
25ProcessResult run_process(
const std::string& command,
const std::string& input,
double timeout_s, std::size_t max_out = std::size_t{1} << 20,
26 std::size_t max_err = std::size_t{1} << 16);
The advice file (design doc 17, issue #26): typed hints for the router, written by a person,...
Consulted consult_advisor(const AdvisorOptions &opt, const nlohmann::json &report, const AliasMap &aliases, const std::string &advice_name)
Sends report to the advisor and reads its advice.
ProcessResult run_process(const std::string &command, const std::string &input, double timeout_s, std::size_t max_out=std::size_t{1}<< 20, std::size_t max_err=std::size_t{1}<< 16)
Runs command with /bin/sh -c in its own process group, feeds it input on stdin, and collects stdout (...
Aliases for net names and part references (a redacted stuck report): the advice an advisor writes use...
nlohmann::json summary
{"program", "seconds", "exit_code", "timed_out", "bytes_in", "bytes_out", "ok", "error"?...
Advice advice
aliases undone; names are not yet checked against the board
std::string text
exactly what the advisor wrote (the file saved beside the output)
std::string error
why there is no advice
bool out_truncated
more output than the limit
int exit_code
-1: killed by a signal or never started