pub struct PtyScript {
pub command: String,
pub steps: Vec<PtyStep>,
pub timeout_secs: Option<u64>,
}Expand description
One scripted terminal session against an interactive target — the
contract-side declaration a pty-script assertion carries (ticket
pty-functional-validation). This is VALIDATOR tooling: the script
judges what the delivered software DOES on a terminal, it never feeds
work back into the mission (positioning ADR’s retained list).
WHY inline in the assertion (not a referenced script file): the validation contract is drafted and approved as ONE self-contained plan.json, committed on the mission branch — a script living at a repo path could be edited by the very worker the validation judges, while the contract itself is approval-locked.
Fields§
§command: StringThe interactive target, as a shell command line. Executed exactly like a contract command: the cleared contract env, the resolved gate-sandbox wrap, and the gate tree as cwd — a pty session never widens the posture the validator’s other evidence runs under.
steps: Vec<PtyStep>The steps to drive, in order. Every expect is one assertion
verdict; the script FAILS at the first unmatched expect.
timeout_secs: Option<u64>Overall session cap in seconds (default
crate::pty_harness::DEFAULT_SESSION_TIMEOUT_SECS): the
whole-script wall-clock bound regardless of per-step timeouts, so
a script of generous expects still cannot hang the round.