Skip to content

RaterNegotiationRound

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

[[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. A verdict also carries §4.4’s suggestedTool, which is advice about the rating that produced it and not part of the history §5.1 admits; a renderer handed a three-field object that renders two of them 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.

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:915

[[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:895

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:897

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:899

The rater’s own outcome for that round.


reason: string

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

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