Interface: IdentifierUniquenessRule
Defined in: src/batteries/validation/types.ts:327
Requires uniqueness of identifiers across the selected primitive timeline.
Properties
| Property | Type | Description | Defined in |
|---|---|---|---|
id | string | Stable identifier used in findings. | src/batteries/validation/types.ts:331 |
kind | OrderingPrimitiveKind | Primitive whose identifiers must be unique. | src/batteries/validation/types.ts:333 |
renameStrategy? | (previousId: string, memberIndex: number) => string | Produces a replacement identifier when mutate mode repairs a collision. Remarks Every member of a collision group shares ONE id — that is what makes it a collision — so previousId alone cannot distinguish them. memberIndex (0-based, ordered by timeline seq) is what a deterministic strategy varies on: without it a pure strategy would return the same replacement for every member, and the materialiser would reject its own repair. The strategy must be pure and total in BOTH arguments, and may not return an id already held elsewhere in the timeline; the materialiser verifies that and fails the repair rather than trusting it. | src/batteries/validation/types.ts:345 |
severity? | "blocking" | "advisory" | See OrderRule.severity. Omitted means advisory, as on every other rule type. Opt into blocking — as the shipped tool_call_id_uniqueness profile does — when a collision makes the dispatch unsafe to assemble; an advisory finding is never repaired, so renameStrategy and the renumber-colliding-ids repair only take effect under blocking. | src/batteries/validation/types.ts:352 |
surface? | "dispatch" | "turn" | "both" | Whether this rule applies on the dispatch surface, turn surface, or both. Omitted means the rule applies on both surfaces. | src/batteries/validation/types.ts:354 |
type | "identifierUniqueness" | Discriminator selecting the cross-entry uniqueness evaluator. | src/batteries/validation/types.ts:329 |