macos: native prompt.mjs runs \u2014 plot binding, richer __theme/system/wifi stubs
Adds the minimum bindings the Linux native prompt.mjs expects so it can
load on the macOS host without modification:
- plot(x, y) \u2014 single-pixel primitive (prompt uses it for cursor detail)
- __theme: full update() returning T with bg[]/fg/fgDim/fgMute/cursor[]/
accent[]/dark (shape matches what the Linux bindings produce)
- __theme.apply(name), ._forceDark, ._lastCheck \u2014 theme commands
- system: listPieces() returns fedac/native/pieces/ .mjs basenames
(populated by a readdir of the piece's parent dir in C); jump()
stashes target in globalThis.__pending_jump; readFile/writeFile,
reboot/poweroff, saveConfig, usbMidi.{enable,disable,refresh} are
safe no-ops; sshStarted/startSSH stubbed
- wifi: advertises connected/online on macOS so the network gate doesn't
block (we have real net via the host OS)
- Top-level globals: jump, kidlisp (no-op), user=null, handle=()=>null
Piece-directory scan runs once in piece_load before the piece evals, so
tab completion works immediately. Relative import normalizer added to
the module loader for any future piece that imports ./x or ../lib/y.
Verified: prompt.mjs boots cleanly, renders dark-mode canvas with the
blinking pink block cursor. Jump handling itself comes in Phase B.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>