routePlannerInputSchema
constroutePlannerInputSchema:object
The JSON Schemas those models were generated from, for runtime use.
Type Declaration
Section titled “Type Declaration”
readonly$id:"https://schemas.inderun.dev/1.0/route-planner-input.schema.json"
$schema
Section titled “$schema”
readonly$schema:"https://json-schema.org/draft/2020-12/schema"
additionalProperties
Section titled “additionalProperties”
readonlyadditionalProperties:true
description
Section titled “description”
readonlydescription:"Pure data input contract for deterministic shared-core route planning."
properties
Section titled “properties”
readonlyproperties:object
properties.constraints
Section titled “properties.constraints”
readonlyconstraints:object
properties.constraints.additionalProperties
Section titled “properties.constraints.additionalProperties”
readonlyadditionalProperties:true
properties.constraints.description
Section titled “properties.constraints.description”
readonlydescription:"Hard routing constraints evaluated before provider selection."
properties.constraints.properties
Section titled “properties.constraints.properties”
readonlyproperties:object
properties.constraints.properties.cloud
Section titled “properties.constraints.properties.cloud”
readonlycloud:object
properties.constraints.properties.cloud.description
Section titled “properties.constraints.properties.cloud.description”
readonlydescription:"Cloud execution constraint."
properties.constraints.properties.cloud.enum
Section titled “properties.constraints.properties.cloud.enum”
readonlyenum: readonly ["forbidden","allowed","required"]
properties.constraints.properties.networkOnline
Section titled “properties.constraints.properties.networkOnline”
readonlynetworkOnline:object
properties.constraints.properties.networkOnline.description
Section titled “properties.constraints.properties.networkOnline.description”
readonlydescription:"Current connectivity snapshot used for cloud route planning."
properties.constraints.properties.networkOnline.type
Section titled “properties.constraints.properties.networkOnline.type”
readonlytype:"boolean"
properties.constraints.properties.privacy
Section titled “properties.constraints.properties.privacy”
readonlyprivacy:object
properties.constraints.properties.privacy.description
Section titled “properties.constraints.properties.privacy.description”
readonlydescription:"Privacy requirement or preference for execution placement."
properties.constraints.properties.privacy.enum
Section titled “properties.constraints.properties.privacy.enum”
readonlyenum: readonly ["local_required","local_preferred","cloud_allowed","cloud_required"]
properties.constraints.type
Section titled “properties.constraints.type”
readonlytype:"object"
properties.interactionMode
Section titled “properties.interactionMode”
readonlyinteractionMode:object
properties.interactionMode.description
Section titled “properties.interactionMode.description”
readonlydescription:"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."
properties.interactionMode.enum
Section titled “properties.interactionMode.enum”
readonlyenum: readonly ["run","stream","prepare"]
properties.modelProfile
Section titled “properties.modelProfile”
readonlymodelProfile:object
properties.modelProfile.additionalProperties
Section titled “properties.modelProfile.additionalProperties”
readonlyadditionalProperties:true
properties.modelProfile.description
Section titled “properties.modelProfile.description”
readonlydescription:"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."
properties.modelProfile.properties
Section titled “properties.modelProfile.properties”
readonlyproperties:object
properties.modelProfile.properties.name
Section titled “properties.modelProfile.properties.name”
readonlyname:object
properties.modelProfile.properties.name.description
Section titled “properties.modelProfile.properties.name.description”
readonlydescription:"Profile name, carried for explanations."
properties.modelProfile.properties.name.minLength
Section titled “properties.modelProfile.properties.name.minLength”
readonlyminLength:1
properties.modelProfile.properties.name.type
Section titled “properties.modelProfile.properties.name.type”
readonlytype:"string"
properties.modelProfile.properties.targetIds
Section titled “properties.modelProfile.properties.targetIds”
readonlytargetIds:object
properties.modelProfile.properties.targetIds.description
Section titled “properties.modelProfile.properties.targetIds.description”
readonlydescription:"Provider ids in profile order."
properties.modelProfile.properties.targetIds.items
Section titled “properties.modelProfile.properties.targetIds.items”
readonlyitems:object
properties.modelProfile.properties.targetIds.items.minLength
Section titled “properties.modelProfile.properties.targetIds.items.minLength”
readonlyminLength:1
properties.modelProfile.properties.targetIds.items.type
Section titled “properties.modelProfile.properties.targetIds.items.type”
readonlytype:"string"
properties.modelProfile.properties.targetIds.minItems
Section titled “properties.modelProfile.properties.targetIds.minItems”
readonlyminItems:1
properties.modelProfile.properties.targetIds.type
Section titled “properties.modelProfile.properties.targetIds.type”
readonlytype:"array"
properties.modelProfile.required
Section titled “properties.modelProfile.required”
readonlyrequired: readonly ["name","targetIds"]
properties.modelProfile.type
Section titled “properties.modelProfile.type”
readonlytype:"object"
properties.preferences
Section titled “properties.preferences”
readonlypreferences:object
properties.preferences.additionalProperties
Section titled “properties.preferences.additionalProperties”
readonlyadditionalProperties:true
properties.preferences.description
Section titled “properties.preferences.description”
readonlydescription:"Soft route ordering preferences applied after hard filtering."
properties.preferences.properties
Section titled “properties.preferences.properties”
readonlyproperties:object
properties.preferences.properties.optimizeFor
Section titled “properties.preferences.properties.optimizeFor”
readonlyoptimizeFor:object
properties.preferences.properties.optimizeFor.description
Section titled “properties.preferences.properties.optimizeFor.description”
readonlydescription:"Primary optimization goal when multiple providers remain eligible."
properties.preferences.properties.optimizeFor.enum
Section titled “properties.preferences.properties.optimizeFor.enum”
readonlyenum: readonly ["privacy","latency","cost","balanced"]
properties.preferences.type
Section titled “properties.preferences.type”
readonlytype:"object"
properties.providers
Section titled “properties.providers”
readonlyproviders:object
properties.providers.description
Section titled “properties.providers.description”
readonlydescription:"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."
properties.providers.items
Section titled “properties.providers.items”
readonlyitems:object
properties.providers.items.additionalProperties
Section titled “properties.providers.items.additionalProperties”
readonlyadditionalProperties:true
properties.providers.items.properties
Section titled “properties.providers.items.properties”
readonlyproperties:object
properties.providers.items.properties.capabilities
Section titled “properties.providers.items.properties.capabilities”
readonlycapabilities:object
properties.providers.items.properties.capabilities.$ref
Section titled “properties.providers.items.properties.capabilities.$ref”
readonly$ref:"provider-dynamic-capabilities.schema.json"
properties.providers.items.properties.capabilities.description
Section titled “properties.providers.items.properties.capabilities.description”
readonlydescription:"The provider's live capability check, already folded by the engine (for example, streamingAvailable is false when the provider declares streaming but does not implement it)."
properties.providers.items.properties.descriptor
Section titled “properties.providers.items.properties.descriptor”
readonlydescriptor:object
properties.providers.items.properties.descriptor.$ref
Section titled “properties.providers.items.properties.descriptor.$ref”
readonly$ref:"provider-descriptor.schema.json"
properties.providers.items.properties.descriptor.description
Section titled “properties.providers.items.properties.descriptor.description”
readonlydescription:"The provider's static capability declaration."
properties.providers.items.required
Section titled “properties.providers.items.required”
readonlyrequired: readonly ["descriptor","capabilities"]
properties.providers.items.type
Section titled “properties.providers.items.type”
readonlytype:"object"
properties.providers.type
Section titled “properties.providers.type”
readonlytype:"array"
properties.task
Section titled “properties.task”
readonlytask:object
properties.task.additionalProperties
Section titled “properties.task.additionalProperties”
readonlyadditionalProperties:true
properties.task.description
Section titled “properties.task.description”
readonlydescription:"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."
properties.task.properties
Section titled “properties.task.properties”
readonlyproperties:object
properties.task.properties.delivery
Section titled “properties.task.properties.delivery”
readonlydelivery:object
properties.task.properties.delivery.additionalProperties
Section titled “properties.task.properties.delivery.additionalProperties”
readonlyadditionalProperties:true
properties.task.properties.delivery.description
Section titled “properties.task.properties.delivery.description”
readonlydescription:"The output delivery the request requires. Absent for text, whose delivery is implicitly inline."
properties.task.properties.delivery.properties
Section titled “properties.task.properties.delivery.properties”
readonlyproperties:object
properties.task.properties.delivery.properties.mediaTypes
Section titled “properties.task.properties.delivery.properties.mediaTypes”
readonlymediaTypes:object
properties.task.properties.delivery.properties.mediaTypes.description
Section titled “properties.task.properties.delivery.properties.mediaTypes.description”
readonlydescription:"Acceptable media types; the provider must declare at least one for the requested delivery. Absent means any."
properties.task.properties.delivery.properties.mediaTypes.items
Section titled “properties.task.properties.delivery.properties.mediaTypes.items”
readonlyitems:object
properties.task.properties.delivery.properties.mediaTypes.items.minLength
Section titled “properties.task.properties.delivery.properties.mediaTypes.items.minLength”
readonlyminLength:1
properties.task.properties.delivery.properties.mediaTypes.items.type
Section titled “properties.task.properties.delivery.properties.mediaTypes.items.type”
readonlytype:"string"
properties.task.properties.delivery.properties.mediaTypes.type
Section titled “properties.task.properties.delivery.properties.mediaTypes.type”
readonlytype:"array"
properties.task.properties.delivery.properties.mode
Section titled “properties.task.properties.delivery.properties.mode”
readonlymode:object
properties.task.properties.delivery.properties.mode.$ref
Section titled “properties.task.properties.delivery.properties.mode.$ref”
readonly$ref:"provider-descriptor.schema.json#/$defs/outputDelivery"
properties.task.properties.delivery.required
Section titled “properties.task.properties.delivery.required”
readonlyrequired: readonly ["mode"]
properties.task.properties.delivery.title
Section titled “properties.task.properties.delivery.title”
readonlytitle:"DeliveryRequirement"
properties.task.properties.delivery.type
Section titled “properties.task.properties.delivery.type”
readonlytype:"object"
properties.task.properties.inputs
Section titled “properties.task.properties.inputs”
readonlyinputs:object
properties.task.properties.inputs.description
Section titled “properties.task.properties.inputs.description”
readonlydescription:"Input media kinds the request carries. Every one must be accepted by the provider's task capability. The SDKs send ['text'] for text_to_text."
properties.task.properties.inputs.items
Section titled “properties.task.properties.inputs.items”
readonlyitems:object
properties.task.properties.inputs.items.$ref
Section titled “properties.task.properties.inputs.items.$ref”
readonly$ref:"provider-descriptor.schema.json#/$defs/inputKind"
properties.task.properties.inputs.type
Section titled “properties.task.properties.inputs.type”
readonlytype:"array"
properties.task.properties.kind
Section titled “properties.task.properties.kind”
readonlykind:object
properties.task.properties.kind.description
Section titled “properties.task.properties.kind.description”
readonlydescription:"The task kind, matched against the providers' task capabilities."
properties.task.properties.kind.minLength
Section titled “properties.task.properties.kind.minLength”
readonlyminLength:1
properties.task.properties.kind.type
Section titled “properties.task.properties.kind.type”
readonlytype:"string"
properties.task.properties.locale
Section titled “properties.task.properties.locale”
readonlylocale:object
properties.task.properties.locale.additionalProperties
Section titled “properties.task.properties.locale.additionalProperties”
readonlyadditionalProperties:true
properties.task.properties.locale.description
Section titled “properties.task.properties.locale.description”
readonlydescription:"The locale the request requires. Under 'language' matching the region is a preference: a provider known to offer the exact tag ranks ahead of an otherwise equal one. A provider that cannot enumerate its locales is not rejected on this basis; it must fail before committing instead."
properties.task.properties.locale.properties
Section titled “properties.task.properties.locale.properties”
readonlyproperties:object
properties.task.properties.locale.properties.match
Section titled “properties.task.properties.locale.properties.match”
readonlymatch:object
properties.task.properties.locale.properties.match.description
Section titled “properties.task.properties.locale.properties.match.description”
readonlydescription:"'exact' requires the full tag; 'language' requires only the primary language subtag and treats the region as a preference."
properties.task.properties.locale.properties.match.enum
Section titled “properties.task.properties.locale.properties.match.enum”
readonlyenum: readonly ["exact","language"]
properties.task.properties.locale.properties.match.title
Section titled “properties.task.properties.locale.properties.match.title”
readonlytitle:"LocaleMatch"
properties.task.properties.locale.properties.tag
Section titled “properties.task.properties.locale.properties.tag”
readonlytag:object
properties.task.properties.locale.properties.tag.description
Section titled “properties.task.properties.locale.properties.tag.description”
readonlydescription:"BCP 47 tag."
properties.task.properties.locale.properties.tag.minLength
Section titled “properties.task.properties.locale.properties.tag.minLength”
readonlyminLength:1
properties.task.properties.locale.properties.tag.type
Section titled “properties.task.properties.locale.properties.tag.type”
readonlytype:"string"
properties.task.properties.locale.required
Section titled “properties.task.properties.locale.required”
readonlyrequired: readonly ["tag","match"]
properties.task.properties.locale.title
Section titled “properties.task.properties.locale.title”
readonlytitle:"LocaleRequirement"
properties.task.properties.locale.type
Section titled “properties.task.properties.locale.type”
readonlytype:"object"
properties.task.properties.voice
Section titled “properties.task.properties.voice”
readonlyvoice:object
properties.task.properties.voice.additionalProperties
Section titled “properties.task.properties.voice.additionalProperties”
readonlyadditionalProperties:true
properties.task.properties.voice.dependentRequired
Section titled “properties.task.properties.voice.dependentRequired”
readonlydependentRequired:object
properties.task.properties.voice.dependentRequired.id
Section titled “properties.task.properties.voice.dependentRequired.id”
readonlyid: readonly ["providerId"]
properties.task.properties.voice.description
Section titled “properties.task.properties.voice.description”
readonlydescription:"The voice the request asks for, by providerId and id, or by traits. Only a 'required' voice can reject a provider; a 'preferred' one shapes which listed voice the plan binds a candidate to, always within the request's privacy policy, and a preferred id also ranks the provider that can bind it ahead of others."
properties.task.properties.voice.properties
Section titled “properties.task.properties.voice.properties”
readonlyproperties:object
properties.task.properties.voice.properties.gender
Section titled “properties.task.properties.voice.properties.gender”
readonlygender:object
properties.task.properties.voice.properties.gender.$ref
Section titled “properties.task.properties.voice.properties.gender.$ref”
readonly$ref:"provider-dynamic-capabilities.schema.json#/$defs/voiceGender"
properties.task.properties.voice.properties.id
Section titled “properties.task.properties.voice.properties.id”
readonlyid:object
properties.task.properties.voice.properties.id.description
Section titled “properties.task.properties.voice.properties.id.description”
readonlydescription:"A voice id, compared exactly against the voices of providerId and of no other provider."
properties.task.properties.voice.properties.id.minLength
Section titled “properties.task.properties.voice.properties.id.minLength”
readonlyminLength:1
properties.task.properties.voice.properties.id.type
Section titled “properties.task.properties.voice.properties.id.type”
readonlytype:"string"
properties.task.properties.voice.properties.providerId
Section titled “properties.task.properties.voice.properties.providerId”
readonlyproviderId:object
properties.task.properties.voice.properties.providerId.description
Section titled “properties.task.properties.voice.properties.providerId.description”
readonlydescription:"The provider that id belongs to."
properties.task.properties.voice.properties.providerId.minLength
Section titled “properties.task.properties.voice.properties.providerId.minLength”
readonlyminLength:1
properties.task.properties.voice.properties.providerId.type
Section titled “properties.task.properties.voice.properties.providerId.type”
readonlytype:"string"
properties.task.properties.voice.properties.requirement
Section titled “properties.task.properties.voice.properties.requirement”
readonlyrequirement:object
properties.task.properties.voice.properties.requirement.description
Section titled “properties.task.properties.voice.properties.requirement.description”
readonlydescription:"'required' takes part in routing; 'preferred' does not."
properties.task.properties.voice.properties.requirement.enum
Section titled “properties.task.properties.voice.properties.requirement.enum”
readonlyenum: readonly ["required","preferred"]
properties.task.properties.voice.properties.requirement.title
Section titled “properties.task.properties.voice.properties.requirement.title”
readonlytitle:"RequirementLevel"
properties.task.properties.voice.required
Section titled “properties.task.properties.voice.required”
readonlyrequired: readonly ["requirement"]
properties.task.properties.voice.title
Section titled “properties.task.properties.voice.title”
readonlytitle:"VoiceRequirement"
properties.task.properties.voice.type
Section titled “properties.task.properties.voice.type”
readonlytype:"object"
properties.task.required
Section titled “properties.task.required”
readonlyrequired: readonly ["kind"]
properties.task.type
Section titled “properties.task.type”
readonlytype:"object"
required
Section titled “required”
readonlyrequired: readonly ["task","constraints","preferences","providers"]
readonlytitle:"RoutePlannerInput"
readonlytype:"object"
IndeRun — open-source AI execution for cross-platform apps. Built and maintained by Independo GmbH (opens in new tab), supported by netidee (opens in new tab).
MIT-licensed SDK · No SDK usage telemetry.
© 2025–2026 Independo GmbH