Skip to content

RoutePlannerInput

RoutePlannerInput = object

Pure data input contract for deterministic shared-core route planning.

[property: string]: unknown

constraints: Constraints

Hard routing constraints evaluated before provider selection.


optional interactionMode?: InteractionMode

Interaction mode the caller is requesting. Absent means ‘run’ (Mode 1), so planner inputs produced before this field existed keep their exact Mode-1 semantics. The mode filters eligible providers; it never changes candidate ordering.


optional modelProfile?: ModelProfile

The resolved model profile the request routes within. Absent means the built-in ‘auto’ profile: no allow-list, and ordering by placement and preference alone. When present, providers whose id is not in targetIds are rejected with ‘not_in_model_profile’, and the position in targetIds ranks the survivors after placement and before preferences. Ids that name no registered provider are ignored.


preferences: Preferences

Soft route ordering preferences applied after hard filtering.


providers: Provider[]

Static descriptors plus dynamic capability checks for planning. Both shapes are the provider schemas themselves, shared by $ref, so the planner reads exactly what checkCapabilities() reports.


task: Task

Task descriptor for provider task matching: the kind plus the requirements routing can check against declared capabilities. Absent requirement fields are never checked, so a text request carries the kind alone.