+
+
+ {(axis) => (
+ controlStore.state[axis.key]}
+ onChange={(v) => controlStore.setAxis(axis.key, v)}
+ preset={() => controlStore.state.presetId}
+ onDoubleTap={() => controlStore.clearOffsets(axis.key)}
+ />
+ )}
+
+
+
+ props.runtime.trainOnCurrent()}
+ onRandomize={() => props.runtime.randomize()}
+ onThumbsUp={() => props.runtime.thumbsUp()}
+ onThumbsDown={() => props.runtime.thumbsDown()}
+ onUndo={() => {
+ // Stream 9 ships without undo wiring — no-op until session-store
+ // gets a snapshot/pop method exposed via the runtime. Stubbed
+ // so the button still appears.
+ }}
+ exampleCount={() => props.runtime.training.examples()}
+ lastLoss={() => props.runtime.training.lastLoss()}
+ busy={() => props.runtime.training.busy()}
+ canUndo={() => false}
+ />
+
+
+
+