ConsoleConfigOptions
Defined in: console-sdk/src/config/types.ts:76
Options accepted by createConsoleConfig() (SDK_PLAN.md §3.1.3). Every
field is optional; zero config IS the config — no keys, no auth, no
backend. Cross-cutting host concerns (telemetry, error reporting) enter
once here, never through hook arguments.
Properties
Section titled “Properties”athlete?
Section titled “athlete?”
optionalathlete?:object
Defined in: console-sdk/src/config/types.ts:133
Athlete parameters the firmware uses (SDK_PLAN.md row 78’s console-facing remnant): weight feeds calorie computation; units feed display defaults. Pushed to consoles on connect and changeable per session — profile MANAGEMENT (forms, persistence, server) is the app’s. No defaults: when absent, nothing is pushed.
heightCm?
Section titled “heightCm?”
optionalheightCm?:number
Athlete height in centimeters.
optionalsex?:"male"|"female"
Athlete sex as consumed by the firmware’s calorie model.
units?
Section titled “units?”
optionalunits?:DisplayUnits
Default display units pushed during connection setup.
weightKg?
Section titled “weightKg?”
optionalweightKg?:number
Athlete weight in kilograms (drives console calorie computation).
capture?
Section titled “capture?”
optionalcapture?:object
Defined in: console-sdk/src/config/types.ts:126
Workout capture defaults. sampleRateSeconds default: 0.5.
sampleRateSeconds?
Section titled “sampleRateSeconds?”
optionalsampleRateSeconds?:number
diagnostics?
Section titled “diagnostics?”
optionaldiagnostics?:object
Defined in: console-sdk/src/config/types.ts:169
Dev diagnostics (replaces PayloadLogger — SDK_PLAN.md rows 84–85).
Never writes files. rawPackets default: false; when enabled, a
bounded in-memory ring backs useDiagnostics() and each packet is
also handed to the optional onRawPacket log sink.
onRawPacket?
Section titled “onRawPacket?”
optionalonRawPacket?: (packet) =>void
Parameters
Section titled “Parameters”packet
Section titled “packet”Returns
Section titled “Returns”void
rawPackets?
Section titled “rawPackets?”
optionalrawPackets?:boolean
firmware?
Section titled “firmware?”
optionalfirmware?:object
Defined in: console-sdk/src/config/types.ts:149
Firmware environment (replaces the unreturned setEnvironment setter —
SDK_PLAN.md row 71). The manifestUrl fetch is the SDK’s ONLY network
touch: unauthenticated, via global fetch (override with fetch for
tests/proxies). channel default: 'prod'; manifestUrl defaults to
the channel’s production CDN root.
channel?
Section titled “channel?”
optionalchannel?:"prod"|"dev"
fetch?
Section titled “fetch?”
optionalfetch?: (input,init?) =>Promise<Response>
Parameters
Section titled “Parameters”RequestInfo
RequestInit
Returns
Section titled “Returns”Promise<Response>
manifestUrl?
Section titled “manifestUrl?”
optionalmanifestUrl?:string
fleet?
Section titled “fleet?”
optionalfleet?:object
Defined in: console-sdk/src/config/types.ts:94
Fleet policy — declarative replacement for the MDM flag/blocklist choreography (SDK_PLAN.md rows 7–10).
autoReconnect?
Section titled “autoReconnect?”
optionalautoReconnect?:object
Automatic reconnection policy for saved devices.
autoReconnect.duringWorkout?
Section titled “autoReconnect.duringWorkout?”
optionalduringWorkout?:boolean
Reconnect even mid-workout for devices in the active session.
Default: true.
autoReconnect.enabled?
Section titled “autoReconnect.enabled?”
optionalenabled?:boolean
Master switch. Default: true.
autoScan?
Section titled “autoScan?”
optionalautoScan?:object
Background scan scheduling (needed by auto-reconnect).
autoScan.cooldownMs?
Section titled “autoScan.cooldownMs?”
optionalcooldownMs?:number
Minimum pause between background scans in milliseconds.
Default: 15_000.
autoScan.enabled?
Section titled “autoScan.enabled?”
optionalenabled?:boolean
Master switch. Default: true.
autoScan.inWorkoutCooldownMultiplier?
Section titled “autoScan.inWorkoutCooldownMultiplier?”
optionalinWorkoutCooldownMultiplier?:number
Divisor applied to the cooldown during a workout (cooldown ÷ N).
Default: 3.
autoScan.postDisconnectDebounceMs?
Section titled “autoScan.postDisconnectDebounceMs?”
optionalpostDisconnectDebounceMs?:number
Debounce before the post-disconnect immediate scan, in
milliseconds. Default: 3_000 (field-proven timing).
connectTimeoutMs?
Section titled “connectTimeoutMs?”
optionalconnectTimeoutMs?:number
Per-attempt connect timeout in milliseconds. Default: 15_000.
maxDevices?
Section titled “maxDevices?”
optionalmaxDevices?:number
Maximum simultaneously connected devices. Default: 4.
onePerModality?
Section titled “onePerModality?”
optionalonePerModality?:boolean
Enforce the one-machine-per-type constraint. Default: true.
onError?
Section titled “onError?”
optionalonError?: (error,context) =>void
Defined in: console-sdk/src/config/types.ts:163
Fired once per failure for cross-cutting toasts/reporting (TanStack QueryCache precedent). Cancellations are documented non-failures and are excluded.
Parameters
Section titled “Parameters”context
Section titled “context”Returns
Section titled “Returns”void
storage?
Section titled “storage?”
optionalstorage?:StorageAdapter
Defined in: console-sdk/src/config/types.ts:90
Persistence for saved devices (the SDK’s only durable state — workout
results are values the consumer owns, §3.6.6). Default: auto-detects
@react-native-async-storage/async-storage (optional peer); if absent,
falls back to memoryStorage() with a one-time dev warning that saved
devices won’t persist. Explicit adapters:
'@rogue/console-sdk/storage/async-storage' and (testing)
memoryStorage().
telemetry?
Section titled “telemetry?”
optionaltelemetry?:TelemetrySink
Defined in: console-sdk/src/config/types.ts:158
Cross-cutting host integration (replaces VaderSDKInstance threading &
setRemoteLogger — SDK_PLAN.md row 86). Construction-time dependency
injection: a host-owned sink the SDK calls out to.
transport?
Section titled “transport?”
optionaltransport?:ConsoleTransport
Defined in: console-sdk/src/config/types.ts:81
Device I/O boundary. Default: createBleTransport() (wraps ble-plx;
SDK_PLAN.md §3.10, §4.3) — applied lazily inside the provider runtime,
never constructed by the inert config factory.
Tests/demos: createSimulatedTransport() (§3.11).