"""SignalMesh core package bootstrap. Migration engines and guards live in core, but the migration browser surface is owned by the Site Builder. editor.build() installs that surface explicitly on its concrete FastAPI app. Core bootstrap must never guess a UI owner by monkey-patching FastAPI construction. """ def _safe(name,label,method="install"): try: m=__import__(f"core.{name}",fromlist=[name]); getattr(m,method)() except Exception as exc: print(f"[{label}] {name} disabled: {type(exc).__name__}: {exc}") try: from . import operator_bootstrap as _operator_bootstrap except Exception as exc: print(f"[operator] bootstrap disabled: {type(exc).__name__}: {exc}") _safe("bighelp_bridge","bighelp","install_when_ready") _safe("dbmesh_policy_patch","dbmesh"); _safe("component_data_guard","dbmesh"); _safe("dbmesh_menu_repair","dbmesh") # Target Joomla schemas differ across generations. Install this after the DB # policy layer so every migration path uses the same target-column-aware tree # repair primitive instead of assuming `level` exists. _safe("schema_tree_guard","dbmesh") _safe("unified_migration","migration") _safe("migration_backend_only","migration") _safe("site_connection_guard","sites"); _safe("site_registry_guard","sites") # Access/session + connect/intake APIs are backend capabilities. This guard also # removes historical source/target auto-inference; it does not own migration UI. _safe("migration_access_guard","migration") _safe("component_extension_plan_guard","migration"); _safe("component_data_blocker_guard","migration"); _safe("component_family_guard","migration") _safe("fleet_compat_guard","migration"); _safe("migration_compat_guard","migration") # Every bridge must preserve the complete source-observed functional contract, # not merely the code paths that happened to require Joomla-version patches. _safe("functional_parity_guard","migration") # Unsupported extension support is an adapter around the proven migrator. The # normal vendor path remains first choice; compatibility forge work only begins # when a selected family still lacks a viable target runtime. _safe("extension_support_guard","migration") # Final authority: extension/software/compatibility work may shape later # rehydration, but can never veto the initial safe Joomla/MySQL data pass. This # must install after every historical migration wrapper so that invariant cannot # be reintroduced by import order. _safe("migration_execution_contract","migration") # Do NOT install migration_lifecycle_suite or migration_scope_suite here. # editor.migration_routes installs the one migration surface on the actual # Site Builder app after editor routes exist, then puts the Joomla preview # catch-all back last. This prevents unrelated FastAPI apps from inheriting it.