Interface: AdjacencyRule
Defined in: src/batteries/validation/types.ts:180
Requires a first-kind primitive to be immediately followed by a permitted primitive.
Remarks
The ADK's Message has no payload field, and its MessageRole documentation says tool results never appear in persisted message history. Results live on ToolCall itself, so the former field-correlation model could never resolve a tool result. This rule therefore directly forbids selected kinds as the immediate successor.
Properties
| Property | Type | Description | Defined in |
|---|---|---|---|
disallowBetween | OrderingPrimitiveKind[] | Primitive kinds that may not immediately follow a first-kind primitive. | src/batteries/validation/types.ts:188 |
first | OrderingPrimitiveKind | Primitive whose immediate successor is constrained. | src/batteries/validation/types.ts:186 |
id | string | Stable identifier used in violations. | src/batteries/validation/types.ts:184 |
severity? | "blocking" | "advisory" | Whether a violation blocks dispatch. Omitted means advisory. Remarks Advisory is the default because this catalog's rules were derived from vendor DOCUMENTATION, and a live audit against each rule's own native API found that most of them block turn state the vendor accepts (16 of 17 rules measured; only thought-signature-required was confirmed enforced). Documentation describes what a vendor says it requires; only observation shows what it does. Defaulting to advisory keeps the catalog's knowledge — you still learn which primitive broke which vendor's stated contract — without rejecting dispatches the model would have served. Opt into blocking per rule when you have verified the constraint on the surface you dispatch through. See docs/batteries/validation/api-surface-scope.md. | src/batteries/validation/types.ts:202 |
type | "adjacency" | Discriminator selecting the adjacency evaluator. | src/batteries/validation/types.ts:182 |