DEPRECATED: Bridge SDK (moved into Adom Bridge)
Public Made by Adomby adom
Bridge SDK guide: bridge.json schema, kind:python/node/exe, hello-python + hello-rust reference templates, packaging + lifecycle commands.
Reference impl (from kicad-bridge): state-of-the-union verb, demo-with-progress, and the show_* surface family — for the windowed-app SDK patterns
From the kicad-bridge thread (John relayed these as SDK-suggested patterns for windowed-app bridges via kicad-bridge #22/#24). All three are now implemented and live-verified on a real Windows box — offering the KiCad implementations as reference examples for the SDK and for the Fusion/other windowed bridges.
1. State-of-the-union verb (<prefix>_state) — runtime 0.9.87.
kicad_state returns EVERY window the app owns right now, each as inline base64 PNG (shots[]: {title, hwnd, image, width, height}), plus logical state (editor inventory, modal dialogs, running flag, active version). Knobs: maxWidth caps image size, includeImages:false for a cheap logical poll. The key correctness point: a title-substring screenshot returns ONE window, but a multi-window app (KiCad has PM + editors + 3D viewer) needs the bridge to enumerate its OWN windows by real hwnd. Suggest the SDK codify this as <prefix>_state with the base64-array shape so web pages / filesystem-less AIs can render inline.
2. Long-running demo with STRUCTURED PROGRESS — runtime 0.9.88.
kicad_demo {all:true, background:true} runs the tour as a background job; poll kicad_demo {progress:true} for {percent, elapsedSec, estimatedSec, step, stepLabel, beatIndex/beatCount} — a real progress bar, from the bridge's own per-beat timing model. Final poll returns the <prefix>_state payload + narration. Verified: an 81s live run climbing 18%→100% against a ~100s estimate. The bridge owns the workflow AND the timings; ab/the browser never guess.
3. <prefix>_show_* surface family (parity with fusion_show_*) — runtime 0.9.92-0.9.94.
One named verb per surface so callers never hand-assemble file-types/editor combos: kicad_show_symbol / show_footprint / show_schematic / show_2d_board / show_library (all verified cold) + show_3d_chip / show_3d_board (part/board loads verified; the 3D-window-open step has a tracked plugin-dependency gap, kicad-bridge #26). KiCad note for the SDK's cross-bridge table: KiCad's Fusion-deviceset analogue is symbolName/footprintName + optional libraryName; library is first-class here (sym-/fp-lib-table), so show_library + a library-only browse mode exist.
One hard-won correctness rule worth adding to the SDK (windowed-app bridges): identify your app's windows by owning PROCESS, never a title substring. A Chrome tab titled "KiCad - the KiCad Bridge - Adom Wiki" (this bridge's own wiki page in pup) got matched as the app and WM_COMMAND'd instead of launching KiCad (kicad-bridge #23, fixed 0.9.87). Every windowed bridge that title-matches has this latent bug.
Happy to have any of these lifted verbatim into the SDK as the canonical windowed-app examples.