Toolkit-neutral reactive forms and UI bridge contracts, shared by pyqt-reactive and headless servers.
Importing any formbridge module loads no GUI toolkit, so a headless process (an MCP server, a hosted HTTP service) can use the same declarations as the desktop UI it talks to.
- Forms (
formbridge.forms): the parameter model behind generated forms: parameter info, type analysis, value contracts and the form service. - Services (
formbridge.services): help documents and parameter help, function-pattern code documents, scope tokens, the pattern data manager, path cache, log discovery and streaming, system metrics, ZMQ server scanning, window snapshot requests and their observation receipts, andmain_thread_dispatch, which owns work dispatched to one owner thread (QueuedMainThreadDispatcherfor a headless process; pyqt-reactive delivers through the Qt event loop). - Protocols (
formbridge.protocols): registries an application fills: form configuration, code generation, component and function selection, log discovery, preview formatters. - Running-UI bridge (
formbridge.bridge): the DTOs, theUiBridgeOperationfamily, the client service, descriptor discovery, the ZMQ transport and server, the provider registry and the in-process bridge. An application declares itself once by subclassingUiBridgeApplication; pyqt-reactive supplies the Qt window and widget introspection.
Package initializers export nothing; import each name from the module that defines it.
pip install formbridgepip install -e ".[dev]"
pytest
ruff check src tests