.flake8
.gitattributes
.gitignore
.pre-commit-config.yaml
LICENSE
README.md
build.sh
pyproject.toml
.github/FUNDING.yml
.github/dependabot.yml
.github/release.yml
.github/ISSUE_TEMPLATE/✨-request-a-feature.md
.github/ISSUE_TEMPLATE/🐛-report-a-bug.md
.github/workflows/auto-labeler.yml
.github/workflows/backend-contract.yml
.github/workflows/build-test.yml
.github/workflows/publish.yml
frontend/.gitignore
frontend/README.md
frontend/eslint.config.js
frontend/index.html
frontend/package-lock.json
frontend/package.json
frontend/playwright.config.js
frontend/prettier.config.js
frontend/vite.config.js
frontend/e2e/application.spec.js
frontend/public/assets/site.webmanifest
frontend/public/assets/css/themes/black.css
frontend/public/assets/css/themes/blue.css
frontend/public/assets/css/themes/default.css
frontend/public/assets/css/themes/gradient.css
frontend/public/assets/css/themes/green.css
frontend/public/assets/css/themes/light.css
frontend/public/assets/css/themes/pink.css
frontend/public/assets/css/themes/red.css
frontend/public/assets/css/themes/yellow.css
frontend/public/image/panorama.png
frontend/public/image/icon/apple-touch-icon.png
frontend/public/image/icon/favicon-96x96.png
frontend/public/image/icon/favicon.ico
frontend/public/image/icon/favicon.svg
frontend/public/image/icon/web-app-manifest-192x192.png
frontend/public/image/icon/web-app-manifest-512x512.png
frontend/src/App.jsx
frontend/src/App.test.jsx
frontend/src/main.jsx
frontend/src/api/contract-check.ts
frontend/src/api/operationRegistry.js
frontend/src/api/operations.d.ts
frontend/src/api/operations.js
frontend/src/api/operations.test.js
frontend/src/api/transport.js
frontend/src/api/transport.test.js
frontend/src/api/generated/contract.d.ts
frontend/src/api/generated/openapi.json
frontend/src/api/generated/operations.json
frontend/src/app/applicationMetrics.js
frontend/src/app/applicationMetrics.test.js
frontend/src/app/applicationState.js
frontend/src/app/applicationState.test.js
frontend/src/app/backendIdentity.js
frontend/src/app/backendIdentity.test.js
frontend/src/app/coreEvents.js
frontend/src/app/diagnostics.js
frontend/src/app/diagnostics.test.js
frontend/src/app/draftRegistry.js
frontend/src/app/operationCoordinator.js
frontend/src/app/operationCoordinator.test.js
frontend/src/app/operationRecovery.js
frontend/src/app/operationRecovery.test.js
frontend/src/app/preferenceStore.js
frontend/src/app/preferenceStore.test.js
frontend/src/app/publicRequests.js
frontend/src/app/publicRequests.test.jsx
frontend/src/app/queryClient.js
frontend/src/app/queryKeys.js
frontend/src/app/resourceQueries.js
frontend/src/app/resourceQueries.test.jsx
frontend/src/app/sessionBoundary.js
frontend/src/app/sessionBoundary.test.js
frontend/src/app/sessionRuntime.js
frontend/src/app/sessionRuntime.test.js
frontend/src/app/stateReconciler.js
frontend/src/app/stateReconciler.test.js
frontend/src/app/useApplicationMetrics.js
frontend/src/app/useApplicationMetrics.test.jsx
frontend/src/app/useEditableDraft.js
frontend/src/app/useEditableDraft.test.jsx
frontend/src/app/useMetricFormat.js
frontend/src/app/useOperations.js
frontend/src/app/usePreference.js
frontend/src/app/usePreference.test.jsx
frontend/src/app/webSocketManager.js
frontend/src/app/webSocketManager.test.js
frontend/src/components/AuthBrand.jsx
frontend/src/components/DraftConflictNotice.jsx
frontend/src/components/DraftNavigationGuard.jsx
frontend/src/components/DraftNavigationGuard.test.jsx
frontend/src/components/DraggableList.jsx
frontend/src/components/ErrorBoundary.jsx
frontend/src/components/Footer.css
frontend/src/components/Footer.jsx
frontend/src/components/Footer.test.jsx
frontend/src/components/LogViewer.jsx
frontend/src/components/LogViewer.test.jsx
frontend/src/components/Modal.jsx
frontend/src/components/NotificationHistory.jsx
frontend/src/components/NotificationHistory.test.jsx
frontend/src/components/OperationsStatus.jsx
frontend/src/components/OperationsStatus.test.jsx
frontend/src/components/PaletteEditor.jsx
frontend/src/components/PaletteEditor.test.jsx
frontend/src/components/QueryStatus.jsx
frontend/src/components/RemoteConfigModal.jsx
frontend/src/components/SettingsField.jsx
frontend/src/components/SettingsField.test.jsx
frontend/src/components/SettingsGroups.jsx
frontend/src/components/Sidebar.jsx
frontend/src/components/Sidebar.test.jsx
frontend/src/components/SidebarLabel.jsx
frontend/src/components/SidebarLabel.test.jsx
frontend/src/components/TaskOutcome.jsx
frontend/src/components/TaskOutcome.test.jsx
frontend/src/components/appearance/PanoramaSettings.jsx
frontend/src/components/appearance/PanoramaSettings.test.jsx
frontend/src/components/diagnostics/ApplicationDiagnostics.jsx
frontend/src/components/diagnostics/ApplicationDiagnostics.test.jsx
frontend/src/components/diagnostics/DiagnosticDetails.jsx
frontend/src/components/diagnostics/DiagnosticHistory.jsx
frontend/src/components/diagnostics/DiagnosticSubsystem.jsx
frontend/src/components/diagnostics/DiagnosticSubsystem.test.jsx
frontend/src/components/diagnostics/PluginDiagnostics.jsx
frontend/src/components/diagnostics/Status.jsx
frontend/src/components/diagnostics/format.js
frontend/src/components/diagnostics/subsystems.js
frontend/src/components/metrics/ApplicationHealth.jsx
frontend/src/components/metrics/ApplicationHealth.test.jsx
frontend/src/components/metrics/ApplicationMetrics.jsx
frontend/src/components/metrics/ApplicationMetricsSummary.jsx
frontend/src/components/metrics/MetricUnitSettings.jsx
frontend/src/components/metrics/MetricUnitSettings.test.jsx
frontend/src/components/metrics/MetricsChart.jsx
frontend/src/components/metrics/MonitorNavigation.jsx
frontend/src/components/metrics/format.js
frontend/src/components/server/ServerCard.jsx
frontend/src/components/server/ServerCard.test.jsx
frontend/src/components/server/ServerCardMenu.jsx
frontend/src/contexts/AuthContext.jsx
frontend/src/contexts/AuthContext.test.jsx
frontend/src/contexts/DialogContext.jsx
frontend/src/contexts/DialogContext.test.jsx
frontend/src/contexts/ServerContext.jsx
frontend/src/contexts/ServerContext.test.jsx
frontend/src/contexts/ThemeContext.jsx
frontend/src/contexts/ThemeContext.test.jsx
frontend/src/contexts/ToastContext.jsx
frontend/src/contexts/WebSocketContext.jsx
frontend/src/contexts/WebSocketContext.test.jsx
frontend/src/features/plugins/PluginRenderer.jsx
frontend/src/features/plugins/PluginSettingsFields.jsx
frontend/src/features/plugins/StreamComponents.jsx
frontend/src/features/plugins/componentRegistry.js
frontend/src/features/plugins/usePluginActions.js
frontend/src/features/plugins/usePluginPage.js
frontend/src/features/plugins/components/charts.jsx
frontend/src/features/plugins/components/display.jsx
frontend/src/features/plugins/components/forms.jsx
frontend/src/features/plugins/components/icons.jsx
frontend/src/features/plugins/components/layout.jsx
frontend/src/features/servers/useServerInstallation.js
frontend/src/layouts/Layout.jsx
frontend/src/layouts/Layout.test.jsx
frontend/src/pages/AccessControl.jsx
frontend/src/pages/AccessControl.test.jsx
frontend/src/pages/Account.jsx
frontend/src/pages/Account.test.jsx
frontend/src/pages/ApplicationMonitor.jsx
frontend/src/pages/ApplicationMonitor.test.jsx
frontend/src/pages/AuditLog.jsx
frontend/src/pages/AuditLog.test.jsx
frontend/src/pages/BSMSettings.jsx
frontend/src/pages/BSMSettings.test.jsx
frontend/src/pages/Backups.jsx
frontend/src/pages/Backups.test.jsx
frontend/src/pages/Content.jsx
frontend/src/pages/Content.test.jsx
frontend/src/pages/DynamicPage.jsx
frontend/src/pages/DynamicPage.test.jsx
frontend/src/pages/GlobalPlayers.jsx
frontend/src/pages/GlobalPlayers.test.jsx
frontend/src/pages/Login.jsx
frontend/src/pages/Login.test.jsx
frontend/src/pages/Monitor.jsx
frontend/src/pages/Monitor.test.jsx
frontend/src/pages/OnlinePlayers.jsx
frontend/src/pages/OnlinePlayers.test.jsx
frontend/src/pages/Overview.css
frontend/src/pages/Overview.jsx
frontend/src/pages/Overview.test.jsx
frontend/src/pages/OverviewFleetMetrics.jsx
frontend/src/pages/Playground.jsx
frontend/src/pages/Playground.test.jsx
frontend/src/pages/PluginSettings.jsx
frontend/src/pages/PluginSettings.test.jsx
frontend/src/pages/Plugins.jsx
frontend/src/pages/Plugins.test.jsx
frontend/src/pages/Register.jsx
frontend/src/pages/Register.test.jsx
frontend/src/pages/ServerConfig.jsx
frontend/src/pages/ServerConfig.test.jsx
frontend/src/pages/ServerInstall.jsx
frontend/src/pages/ServerInstall.test.jsx
frontend/src/pages/ServerProperties.jsx
frontend/src/pages/ServerProperties.test.jsx
frontend/src/pages/Setup.jsx
frontend/src/pages/Setup.test.jsx
frontend/src/pages/Users.jsx
frontend/src/pages/Users.test.jsx
frontend/src/styles/animations.css
frontend/src/styles/appearance.css
frontend/src/styles/application-monitor.css
frontend/src/styles/base.css
frontend/src/styles/buttons.css
frontend/src/styles/controls.css
frontend/src/styles/density.css
frontend/src/styles/diagnostics.css
frontend/src/styles/forms.css
frontend/src/styles/index.css
frontend/src/styles/layout.css
frontend/src/styles/messages.css
frontend/src/styles/monitor.css
frontend/src/styles/operations.css
frontend/src/styles/plugin-page.css
frontend/src/styles/plugins.css
frontend/src/styles/server-card.css
frontend/src/styles/sidebar.css
frontend/src/styles/tables.css
frontend/src/styles/tabs.css
frontend/src/styles/task-outcome.css
frontend/src/styles/tokens.css
frontend/src/styles/v2-global.css
frontend/src/styles/workspace.css
frontend/src/test/accessibility.test.jsx
frontend/src/test/apiContract.js
frontend/src/test/apiContract.test.js
frontend/src/test/fixtures.js
frontend/src/test/httpFixtures.js
frontend/src/test/setup.js
frontend/src/test/utils.jsx
frontend/src/utils/assetBase.test.js
frontend/src/utils/basePath.js
frontend/src/utils/basePath.test.js
frontend/src/utils/fleetStatus.js
frontend/src/utils/fleetStatus.test.js
frontend/src/utils/logger.js
frontend/src/utils/logger.test.js
frontend/src/utils/metricUnits.js
frontend/src/utils/metricUnits.test.js
frontend/src/utils/navigation.js
frontend/src/utils/notificationHistory.js
frontend/src/utils/notificationHistory.test.js
frontend/src/utils/palettes.js
frontend/src/utils/palettes.test.js
frontend/src/utils/serverSort.js
frontend/src/utils/serverSort.test.js
frontend/src/utils/settings.js
frontend/src/utils/settings.test.js
frontend/src/utils/settingsFields.js
frontend/src/utils/theme.js
frontend/src/utils/theme.test.js
frontend/src/utils/themeContrast.test.js
frontend/src/utils/themePreviews.json
frontend/src/utils/themePreviews.test.js
frontend/src/utils/urlValidation.js
frontend/src/utils/urlValidation.test.js
frontend/src/utils/useFocusTrap.js
scripts/check-api-calls.mjs
scripts/check-backend-contract.py
scripts/export-openapi.py
scripts/generate-contract.mjs
src/bsm_frontend/__init__.py
src/bsm_frontend.egg-info/PKG-INFO
src/bsm_frontend.egg-info/SOURCES.txt
src/bsm_frontend.egg-info/dependency_links.txt
src/bsm_frontend.egg-info/requires.txt
src/bsm_frontend.egg-info/scm_file_list.json
src/bsm_frontend.egg-info/top_level.txt
src/bsm_frontend/static/index.html
src/bsm_frontend/static/assets/AccessControl-DDmt6XpP.js
src/bsm_frontend/static/assets/Account-Cn-LumZm.css
src/bsm_frontend/static/assets/Account-s46SoPSG.js
src/bsm_frontend/static/assets/ApplicationMonitor-CjikasdJ.css
src/bsm_frontend/static/assets/ApplicationMonitor-D6k0fBak.js
src/bsm_frontend/static/assets/AreaChart-nDtF1t4o.js
src/bsm_frontend/static/assets/AuditLog-By9iWCGN.js
src/bsm_frontend/static/assets/AuthContext-Bs7UboDd.js
src/bsm_frontend/static/assets/BSMSettings-DONxUtOu.js
src/bsm_frontend/static/assets/Backups-DzFwR-xx.js
src/bsm_frontend/static/assets/CartesianChart-U_yA6_DG.js
src/bsm_frontend/static/assets/Content-0HJ33WOO.js
src/bsm_frontend/static/assets/DraggableList-kfRV5BPr.js
src/bsm_frontend/static/assets/DynamicPage-D2aCLNmS.js
src/bsm_frontend/static/assets/DynamicPage-DLQpf5kO.css
src/bsm_frontend/static/assets/GlobalPlayers-DDALXTrL.js
src/bsm_frontend/static/assets/LineChart-CvTwYlHo.js
src/bsm_frontend/static/assets/LogViewer-BCP4yKXi.js
src/bsm_frontend/static/assets/Monitor-BcaFYHTO.js
src/bsm_frontend/static/assets/Monitor-Di_4XN9e.css
src/bsm_frontend/static/assets/OnlinePlayers-BBkzifGw.js
src/bsm_frontend/static/assets/Overview-DqxBBwL_.css
src/bsm_frontend/static/assets/Overview-DvhMHxYt.js
src/bsm_frontend/static/assets/Playground-5frfIy87.js
src/bsm_frontend/static/assets/PluginSettings-D4QKDulx.js
src/bsm_frontend/static/assets/Plugins-BnIHllW4.js
src/bsm_frontend/static/assets/QueryStatus-A1s232Xq.js
src/bsm_frontend/static/assets/ServerConfig-DsPZrCs6.js
src/bsm_frontend/static/assets/ServerInstall-04ZbMCn7.js
src/bsm_frontend/static/assets/ServerProperties-CTBhxaTC.js
src/bsm_frontend/static/assets/SettingsGroups-DjGAFcLX.js
src/bsm_frontend/static/assets/ToastContext-BaFV2LW0.js
src/bsm_frontend/static/assets/Users-Bfsx-wgJ.js
src/bsm_frontend/static/assets/application-monitor-BkRnv_MB.css
src/bsm_frontend/static/assets/application-monitor-yfyYm8uH.js
src/bsm_frontend/static/assets/arrow-right-Do3itwS0.js
src/bsm_frontend/static/assets/chevron-up-C06ixisS.js
src/bsm_frontend/static/assets/copy-DSexpO5B.js
src/bsm_frontend/static/assets/download-BoK40pbw.js
src/bsm_frontend/static/assets/file-text-CQJoPRA0.js
src/bsm_frontend/static/assets/index-BOrQhMZY.js
src/bsm_frontend/static/assets/index-D9DWNXpl.css
src/bsm_frontend/static/assets/layers-CWkGGbfX.js
src/bsm_frontend/static/assets/play-DwsZSRFI.js
src/bsm_frontend/static/assets/plus-DtnR_yNN.js
src/bsm_frontend/static/assets/react-dom-DZc4AhAu.js
src/bsm_frontend/static/assets/rotate-ccw-LZvWNODd.js
src/bsm_frontend/static/assets/save-CMuuQeWf.js
src/bsm_frontend/static/assets/scan-ROfO8f0e.js
src/bsm_frontend/static/assets/settings-DeZjUds-.js
src/bsm_frontend/static/assets/site.webmanifest
src/bsm_frontend/static/assets/terminal-CLD9kln1.js
src/bsm_frontend/static/assets/trash-BKANOUE5.js
src/bsm_frontend/static/assets/useEditableDraft-Cpb7HdoH.js
src/bsm_frontend/static/assets/useMetricFormat-Dmnvh7jM.js
src/bsm_frontend/static/assets/css/themes/black.css
src/bsm_frontend/static/assets/css/themes/blue.css
src/bsm_frontend/static/assets/css/themes/default.css
src/bsm_frontend/static/assets/css/themes/gradient.css
src/bsm_frontend/static/assets/css/themes/green.css
src/bsm_frontend/static/assets/css/themes/light.css
src/bsm_frontend/static/assets/css/themes/pink.css
src/bsm_frontend/static/assets/css/themes/red.css
src/bsm_frontend/static/assets/css/themes/yellow.css
src/bsm_frontend/static/image/panorama.png
src/bsm_frontend/static/image/icon/apple-touch-icon.png
src/bsm_frontend/static/image/icon/favicon-96x96.png
src/bsm_frontend/static/image/icon/favicon.ico
src/bsm_frontend/static/image/icon/favicon.svg
src/bsm_frontend/static/image/icon/web-app-manifest-192x192.png
src/bsm_frontend/static/image/icon/web-app-manifest-512x512.png
tests/test_bsm_ui.py