ProviderDescriptor
A provider’s static capability declaration.
Declared here rather than imported, because — unlike TaskRequest, StreamEvent and
the rest — this shape is not a generated contract. There is no schema for it in
@independo/inderun-contracts and no validator; each SDK declares it independently
(core/provider.d.ts in @independo/inderun-web, IndeRunCore/Provider.swift,
core/Provider.kt), and this is the fourth copy. Importing it from
@independo/inderun-web is not an option either: that would make the native
platforms’ plugin contract depend on the web SDK.
The drift guard is in web.ts, which returns the web SDK’s value into this type
uncast — so tsc proves the shapes still match on every build, the same way the
StreamRun mirror below is checked. See the upstream follow-up asking for a schema.
Properties
Section titled “Properties”cancel
Section titled “cancel”cancel:
"none"|"hard"|"soft"
id:
string
limits?
Section titled “limits?”
optionallimits?:object
maxAudioSeconds?
Section titled “maxAudioSeconds?”
optionalmaxAudioSeconds?:number
maxImageBytes?
Section titled “maxImageBytes?”
optionalmaxImageBytes?:number
maxInputTokens?
Section titled “maxInputTokens?”
optionalmaxInputTokens?:number
maxOutputTokens?
Section titled “maxOutputTokens?”
optionalmaxOutputTokens?:number
model?
Section titled “model?”
optionalmodel?:string
The model this target is bound to, as the provider names it. Absent when the provider cannot name one — a platform-managed on-device model reports nothing rather than a guessed weight name.
privacy?
Section titled “privacy?”
optionalprivacy?:object
dataLeavesDevice
Section titled “dataLeavesDevice”dataLeavesDevice:
boolean
regions?
Section titled “regions?”
optionalregions?:string[]
streamingStyle?
Section titled “streamingStyle?”
optionalstreamingStyle?:"tokens"|"chunks"|"snapshots"
supports
Section titled “supports”supports:
object
multimodal
Section titled “multimodal”multimodal:
boolean
realtime
Section titled “realtime”realtime:
boolean
reasoningEvents
Section titled “reasoningEvents”reasoningEvents:
boolean
run:
boolean
streaming
Section titled “streaming”streaming:
boolean
structuredOutput
Section titled “structuredOutput”structuredOutput:
boolean
tools:
boolean
tasks:
string[]
transport
Section titled “transport”transport:
"in_process"|"system_service"|"http"|"sse"|"realtime"
type:
"local"|"edge"|"cloud"
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