Prompt template; {role} and {body} are replaced per dispatch.
profile → this runner's model spelling (the manifest's model_map).
role → spelling overrides (how copilot-cli implements the P5 pins).
spelling → vendor, for the dispatch-time avoid_vendor_of check.
Optionalresumeargv fragment that makes this harness continue a prior session, with
{session} replaced by the recorded id. Absent → this runner never
resumes, and a retry is simply a fresh dispatch.
OptionalsessionDotted path to the harness's own session id in its output (#181). The seam records whatever it finds there on the dispatch's ledger entry; a runner whose manifest omits this never reports a session.
OptionalerrorField?: stringOptionalfields?: { cost_usd?: string; tokens_in?: string; tokens_out?: string }Dotted paths into the harness's JSON output. For json-stdout, read
from the one parsed object. For ndjson-sum, summed across every
line matching lineFilter (a harness that streams one JSON event per
agent turn — e.g. opencode's step_finish — reports cost/tokens
per turn, not as a single running total).
OptionallineFilter?: Record<string, string>ndjson-sum only: a line is summed iff every dotted-path field here matches (as a string).
OptionalresultField?: string
argv template;
{prompt}is replaced with the rendered dispatch prompt.