flow/run/answers

Source: src/flow/run/answers.ts

A dry run’s script: the answers that stand in for each agent turn, each check’s script run, each commit and each question, checked against the flow before the first one is taken.

A key is a node’s address (gate/ask) or an exact visit path (deliver#2/gate/ask), the path winning. Its value is one answer, which serves every attempt, or a list, consumed attempt by attempt within the enclosing path, so each item of a map has its own list and a loop’s iterations share one. A list is always a list of answers, so a node whose output is a list is answered inside one: [["a", "b"]]. An answer is an output, the verdict call of a verdict: node, a check’s { passed, report }, a commit’s { committed, sha?, branch }, an ask’s output, or { fail: <kind> }. An ask’s nobody and timeout take the node’s real path, its default: or its enough: included, and its stopped is the card declined. A flow node is answered whole with its callee’s output or { fail: "child" }, or walked into by keys under it, never both.

AnswerFault

type

export type AnswerFault = {
	/** Which of {@link ANSWER_CODES}. */
	readonly code: (typeof ANSWER_CODES)[number];
	/** The key of `answers` it is about. */
	readonly at: string;
	/** One sentence saying what is wrong with it. */
	readonly message: string;
};

A script’s mistake: its code, the key (and its place in a list), and one sentence.

Answers

type

export type Answers = Readonly<Record<string, unknown>>;

The answers of a dry run, by node address or visit path.