Skip to content

RaterNegotiationRound

Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/core/shell/rater.ts:841

[[EXT-29]] (spec §5.1) — one COMPLETED round of a negotiation, as the next round’s rater sees it.

It carries exactly what §5.1’s third bullet admits and nothing else: the command the agent proposed, the justification it attached (when it attached one), and the rater’s own outcome and explanation for that round — “the rater reasons from its earlier positions rather than re-deriving them.”

The rater’s half is two flat fields rather than an embedded ShellSafetyVerdict, and that is deliberate. §5.1 admits the outcome and the explanation and nothing else, while a verdict is free to grow a field that is advice about the rating rather than part of the history; a renderer handed an object that renders only some of its fields is a silent drop waiting to be read as a bug. Flat fields mean the builder renders everything it is given, and the type states the admitted set by construction — so do not embed the verdict here to save two lines.

command is the RAW command as the agent proposed it. Every renderer normalizes and home-folds it with the same functions the live command goes through, so a past round appears in the form that round was actually rated in.

[[EXT-127]] — this type outlived the block it was written for, and deliberately keeps its name. It is the transcript’s element: what the escalation prompt and the live panel render (§5.4, §6), and what the alignment checker replays as its own earlier rounds. Nothing about §5’s vocabulary moves, because a runtime selector renamed is one that fails loud-but-late when a spelling is missed.

optional alignment?: AlignmentDecision

Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/core/shell/rater.ts:866

[[EXT-127]] — what the ALIGNMENT CHECKER decided about this round, when one was consulted.

Absent for every round the checker never saw: an assisted rating, a round the classifier halted, and every round before the split’s own state exists. It is on the round rather than in a second array because the two facts answer one question — what happened in round N? — and two parallel arrays are how a transcript and a decision log come to disagree about their own length.

The display renderers do not read it, deliberately: what a row says about who is speaking is a separate decision from what the checker decided, and adding a field must not silently change a string the PTY suite asserts on.


command: string

Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/core/shell/rater.ts:846

The command the agent proposed in that round, RAW. The builder normalizes, home-folds and one-lines it; a caller that pre-processes it is doing the work twice and differently.


optional justification?: string

Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/core/shell/rater.ts:848

The justification the agent attached to it, if any. Omitted when it argued nothing.


outcome: "safe" | "destructive" | "catastrophic" | "attack"

Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/core/shell/rater.ts:850

The rater’s own outcome for that round.


reason: string

Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/core/shell/rater.ts:852

The rater’s own one-sentence explanation for that round.