Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ jobs:
external/metaclass-registry/docs/source
external/PolyStore/README.md
external/PolyStore/docs/source
external/formbridge/README.md
external/pyqt-reactive/README.md
external/pyqt-reactive/docs
external/python-introspect/README.md
Expand Down
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,7 @@
path = external/pyqt-reactive
url = https://github.com/OpenHCSDev/PyQT-reactive.git
branch = main
[submodule "external/formbridge"]
path = external/formbridge
url = https://github.com/OpenHCSDev/formbridge.git
branch = main
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,9 @@ graph TD
OH --> AB["ArrayBridge<br/>(arrays)"]
OH --> PS["PolyStore<br/>(I/O + streaming)"]
OH --> ZR["ZMQRuntime<br/>(exec)"]
OH --> QR["PyQT-reactive<br/>(forms)"]
OH --> QR["PyQT-reactive<br/>(Qt forms)"]
OH --> FB["formbridge<br/>(form model + UI bridge)"]
QR --> FB

OS --> PI["python-introspect<br/>(signatures)"]
OH --> MR["metaclass-registry<br/>(plugins)"]
Expand All @@ -197,6 +199,7 @@ graph TD
| [**PolyStore**](https://github.com/OpenHCSDev/PolyStore) | Unified I/O & stream payloads | Generic storage and streaming payload primitives, backend lifecycle, virtual workspaces, atomic writes, format detection, and ROI extraction |
| [**ZMQRuntime**](https://github.com/OpenHCSDev/ZMQRuntime) | Process & transport runtime | Generic request, status, progress, cancellation, process-lifecycle, and viewer-control transport protocols |
| [**PyQT-reactive**](https://github.com/OpenHCSDev/PyQT-reactive) | UI form generation | React-style reactive forms from dataclasses with cross-window sync and flash animations |
| [**formbridge**](https://github.com/OpenHCSDev/formbridge) | Toolkit-neutral forms and UI bridge | The form model, help and code documents, and the running-UI bridge contracts, client and server; imports no GUI toolkit, so headless MCP uses it without Qt |
| [**pycodify**](https://github.com/OpenHCSDev/pycodify) | Code ↔ object conversion | Python source as serialization format — type-preserving, diffable, editable, with collision handling |
| [**python-introspect**](https://github.com/OpenHCSDev/python-introspect) | Signature analysis | Pure-Python function/dataclass introspection for automatic UI generation and contract analysis |
| [**metaclass-registry**](https://github.com/OpenHCSDev/metaclass-registry) | Plugin discovery | Zero-boilerplate registry system powering microscope handler and storage backend auto-discovery |
Expand Down
2 changes: 1 addition & 1 deletion benchmark/agent_validation/mcp_attempt_recorder.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
CustomFunctionRegistrationResult,
FunctionDetail,
)
from openhcs.agent.dto.ui_bridge import UiCodeDocument
from formbridge.bridge.dto import UiCodeDocument
from openhcs.core.function_patterns import normalize_function_pattern
from openhcs.core.function_reference import FunctionReference
from openhcs.core.pipeline_document import PipelineDocument, PipelineDocumentCodec
Expand Down
102 changes: 102 additions & 0 deletions docs/refactor/consolidation-20261009/U4-formbridge.md

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions external/formbridge
Submodule formbridge added at b4d155
2 changes: 1 addition & 1 deletion external/pyqt-reactive
Submodule pyqt-reactive updated 168 files
18 changes: 8 additions & 10 deletions openhcs/agent/capabilities.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,8 @@
AuthoringContext,
AuthoringContextRequest,
)
from openhcs.agent.dto.common import (
AGENT_PARAMETER_DESCRIPTION_METADATA_KEY,
SCHEMA_VERSION,
AgentDataclassCliRequest,
RenderedSource,
)
from formbridge.contracts import AGENT_PARAMETER_DESCRIPTION_METADATA_KEY, AgentDataclassCliRequest
from openhcs.agent.dto.common import SCHEMA_VERSION, RenderedSource
from openhcs.agent.dto.config import (
ConfigPatch,
ConfigRef,
Expand Down Expand Up @@ -81,7 +77,7 @@
)
from openhcs.authoring.session.operations import HeadlessOperation, SessionOperation
from openhcs.authoring.session.views import DatasetListView, PipelineStepsView
from openhcs.agent.services.ui_bridge_service import (
from formbridge.bridge.service import (
UiBridgeApplyDocumentOperation,
UiBridgeCloseWindowOperation,
UiBridgeFocusWindowOperation,
Expand All @@ -103,8 +99,6 @@
UiBridgeOperation,
UiBridgeRequestlessOperation,
UiBridgeRestoreSnapshotOperation,
UiBridgeSelectedPlateWorkflowOperation,
UiBridgeSessionEventsOperation,
UiBridgeSnapshotWindowOperation,
UiBridgeStatusOperation,
UiBridgeSwitchBranchOperation,
Expand All @@ -113,6 +107,10 @@
UiBridgeWaitForOperationReceiptOperation,
UiBridgeWidgetTreeOperation,
)
from openhcs.agent.services.ui_bridge_service import (
UiBridgeSelectedPlateWorkflowOperation,
UiBridgeSessionEventsOperation,
)
from openhcs.agent.dto.functions import (
CustomFunctionRegistrationRequest,
CustomFunctionRegistrationResult,
Expand Down Expand Up @@ -162,7 +160,7 @@
SyntheticPlateGenerationRequest,
SyntheticPlateGenerationResult,
)
from openhcs.agent.dto.ui_bridge import (
from formbridge.bridge.dto import (
UiBridgeCatalog,
UiObjectStateFieldHelpQuery,
UiObjectStateFieldHelpResult,
Expand Down
112 changes: 0 additions & 112 deletions openhcs/agent/dto/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,11 @@
{
"openhcs.agent.dto.common": (
"SCHEMA_VERSION",
"AgentError",
"AgentResourceRef",
"AgentWarning",
"RenderedSource",
),
"openhcs.agent.dto.mcp": (
"McpServerHealthResult",
),
"pyqt_reactive.services.window_snapshot": (
"WindowSnapshotCaptureScope",
"WindowSnapshotCaptureSpec",
),
"openhcs.agent.dto.authoring": (
"AuthoringContext",
"AuthoringContextRequest",
Expand Down Expand Up @@ -178,115 +171,10 @@
"ViewerWindowValidationSummaryResult",
),
"openhcs.agent.dto.ui_bridge": (
"UiActionCatalog",
"UiActionIdentity",
"UiActionInvocationStatus",
"UiActionInvokeRequest",
"UiActionInvokeResult",
"UiActionSummary",
"UiBranchCatalog",
"UiBranchRef",
"UiBranchSwitchRequest",
"UiBridgeConfirmationRequirement",
"UiBridgeConfirmationRequirementCarrier",
"UiBridgeConnectionSpec",
"UiBridgeCatalog",
"UiBridgeDescriptorEnvelope",
"UiBridgeDescriptorFile",
"UiBridgeDescriptorSummary",
"UiBridgeDescriptorWirePayload",
"UiBridgeOperationIdentity",
"UiBridgeOperationRef",
"UiBridgeOperationStatusRequest",
"UiBridgeOperationWaitRequest",
"UiBridgeRequestEnvelope",
"UiBridgeResponseEnvelope",
"UiBridgeStatus",
"UiCodeDocument",
"UiCodeDocumentApplyRequest",
"UiCodeDocumentApplyResult",
"UiCodeDocumentCatalog",
"UiCodeDocumentBaseRevision",
"UiCodeDocumentCurrentRevision",
"UiCodeDocumentId",
"UiCodeDocumentOptionalBaseRevision",
"UiCodeDocumentRequest",
"UiCodeDocumentSummary",
"UiCodeDocumentValidationRequest",
"UiCodeDocumentValidationResult",
"UiMutationReceipt",
"UiMutationRequestToken",
"UiMutationRequestTokenCarrier",
"UiLiveOverviewItem",
"UiLiveOverviewMetric",
"UiLiveOverviewSection",
"UiLiveOverviewSeverity",
"UiLiveOverviewState",
"UiObjectStateFieldListQuery",
"UiObjectStateFieldListOptions",
"UiObjectStateFieldListResult",
"UiObjectStateFieldPathIndex",
"UiObjectStateFieldProjection",
"UiObjectStateFieldProvenance",
"UiObjectStateFieldScopeProjection",
"UiObjectStateFieldHelpQuery",
"UiObjectStateFieldHelpRequest",
"UiObjectStateFieldHelpResult",
"UiObjectStateFieldMutationRequest",
"UiObjectStateFieldMutationResult",
"UiObjectStateFieldSummary",
"UiObjectStateValuePreview",
"UiObjectStateScopeCatalog",
"UiObjectStateScopeIdentity",
"UiObjectStateScopeListRequest",
"UiObjectStateScopeSummary",
"UiObjectStateScopeVisibility",
"UiPlateManagerState",
"UiSelectedPlateWorkflowKind",
"UiSelectedPlateWorkflowRequest",
"UiSelectedPlateWorkflowResult",
"UiStateSurfaceDocument",
"UiStateSurfaceEnvelope",
"UiStateSurfaceCatalog",
"UiStateSurfaceId",
"UiStateSurfaceIdentity",
"UiStateSurfaceRequest",
"UiStateSurfaceSummary",
"UiSemanticAddress",
"UiSnapshotCatalog",
"UiSnapshotListRequest",
"UiSnapshotRef",
"UiSnapshotRestoreRequest",
"UiSnapshotRestoreResult",
"UiTimeTravelRuntimeState",
"UiTimeTravelHeadRequest",
"UiWidgetIdentity",
"UiWidgetActionInvokeRequest",
"UiWidgetActionInvokeResult",
"UiWidgetActionIssueCode",
"UiWidgetActionSummary",
"UiWidgetRect",
"UiWidgetTreeNode",
"UiWidgetTreeRequest",
"UiWidgetTreeResult",
"UiWindowCatalog",
"UiWindowCloseRequest",
"UiWindowCloseResult",
"UiWindowFocusRequest",
"UiWindowFocusResult",
"UiWindowIdentity",
"UiWindowManagerScope",
"UiWindowNavigateRequest",
"UiWindowNavigateResult",
"UiWindowOpenPolicy",
"UiWindowOperationRequest",
"UiWindowSnapshotRequest",
"UiWindowSnapshotResult",
"UiWindowSummary",
),
"openhcs.agent.ui_bridge_identities": (
"MainWindowWidgetIdentity",
"ManagedWindowWidgetIdentity",
),
},
)
Loading
Loading