LICENCE
README.md
pyproject.toml
src/topicgate/__init__.py
src/topicgate/__main__.py
src/topicgate/paths.py
src/topicgate.egg-info/PKG-INFO
src/topicgate.egg-info/SOURCES.txt
src/topicgate.egg-info/dependency_links.txt
src/topicgate.egg-info/entry_points.txt
src/topicgate.egg-info/requires.txt
src/topicgate.egg-info/top_level.txt
src/topicgate/app/__init__.py
src/topicgate/app/app_dependencies.py
src/topicgate/app/broker_runtime_state.py
src/topicgate/app/integration_dependencies.py
src/topicgate/app/topicgate_runtime.py
src/topicgate/app/models/__init__.py
src/topicgate/app/models/broker_inspection.py
src/topicgate/app/models/broker_snapshot.py
src/topicgate/app/models/expectation_health_report.py
src/topicgate/app/models/integration.py
src/topicgate/app/models/mcp_setup.py
src/topicgate/app/models/support_bundle_export.py
src/topicgate/app/models/topic_history.py
src/topicgate/app/ports/__init__.py
src/topicgate/app/ports/integration_platform.py
src/topicgate/app/services/__init__.py
src/topicgate/app/services/broker_health_monitor.py
src/topicgate/app/services/broker_health_wait_service.py
src/topicgate/app/services/broker_inspection_service.py
src/topicgate/app/services/broker_profile_service.py
src/topicgate/app/services/broker_resolver.py
src/topicgate/app/services/broker_snapshot_service.py
src/topicgate/app/services/control_operation_service.py
src/topicgate/app/services/diagnostic_profile_editor.py
src/topicgate/app/services/diagnostic_profile_preview.py
src/topicgate/app/services/diagnostic_profile_service.py
src/topicgate/app/services/expectation_management_service.py
src/topicgate/app/services/failure_history_service.py
src/topicgate/app/services/finding_delta_service.py
src/topicgate/app/services/health_expectation_service.py
src/topicgate/app/services/health_query_service.py
src/topicgate/app/services/health_report_service.py
src/topicgate/app/services/history_recording_service.py
src/topicgate/app/services/history_retention_service.py
src/topicgate/app/services/integration_service.py
src/topicgate/app/services/mcp_setup_service.py
src/topicgate/app/services/observation_cache_service.py
src/topicgate/app/services/observation_query_service.py
src/topicgate/app/services/observation_recorder.py
src/topicgate/app/services/observation_retention_policy_service.py
src/topicgate/app/services/persistence_lifecycle.py
src/topicgate/app/services/service_container.py
src/topicgate/app/services/service_item.py
src/topicgate/app/services/support_bundle_export_service.py
src/topicgate/app/services/support_bundle_service.py
src/topicgate/app/services/topic_history_service.py
src/topicgate/assets/icon.png
src/topicgate/assets/icon.svg
src/topicgate/assets/icons/broker.svg
src/topicgate/assets/icons/close.svg
src/topicgate/assets/icons/create.svg
src/topicgate/assets/icons/delete.svg
src/topicgate/assets/icons/edit.svg
src/topicgate/assets/icons/help.svg
src/topicgate/assets/icons/observer-tree.svg
src/topicgate/assets/icons/settings.svg
src/topicgate/cli/_common.py
src/topicgate/cli/integration_commands.py
src/topicgate/cli/profile_commands.py
src/topicgate/cli/subscription_commands.py
src/topicgate/cli/topicgate_cli.py
src/topicgate/cli/platform_commands/__init__.py
src/topicgate/cli/platform_commands/integration.py
src/topicgate/core/__init__.py
src/topicgate/core/mqtt_topics.py
src/topicgate/core/observer_limits.py
src/topicgate/core/payload_limits.py
src/topicgate/core/config/__init__.py
src/topicgate/core/config/app_config.py
src/topicgate/core/config/mqtt_config.py
src/topicgate/core/interfaces/__init__.py
src/topicgate/core/interfaces/broker_profile_store.py
src/topicgate/core/interfaces/current_topic_reader.py
src/topicgate/core/interfaces/diagnostic_pack.py
src/topicgate/core/interfaces/diagnostic_profile_repositories.py
src/topicgate/core/interfaces/health_action.py
src/topicgate/core/interfaces/health_observation_sink.py
src/topicgate/core/interfaces/health_repositories.py
src/topicgate/core/interfaces/history_recording_store.py
src/topicgate/core/interfaces/history_retention_store.py
src/topicgate/core/interfaces/mqtt_message_processor.py
src/topicgate/core/interfaces/observation_history.py
src/topicgate/core/interfaces/observer_repo_metadata.py
src/topicgate/core/interfaces/observer_repository.py
src/topicgate/core/interfaces/stored_observation_administrator.py
src/topicgate/core/interfaces/stored_observation_reader.py
src/topicgate/core/interfaces/topic_message_recorder.py
src/topicgate/core/models/__init__.py
src/topicgate/core/models/broker_profile.py
src/topicgate/core/models/broker_profile_identity.py
src/topicgate/core/models/broker_profile_summary.py
src/topicgate/core/models/broker_summary.py
src/topicgate/core/models/connection_status.py
src/topicgate/core/models/current_topic.py
src/topicgate/core/models/diagnostic_profile.py
src/topicgate/core/models/history_recording.py
src/topicgate/core/models/history_retention.py
src/topicgate/core/models/message_filter.py
src/topicgate/core/models/mqtt_message.py
src/topicgate/core/models/mqtt_observation.py
src/topicgate/core/models/mqtt_state.py
src/topicgate/core/models/observation_cache_administration.py
src/topicgate/core/models/observation_deletion_preview.py
src/topicgate/core/models/observation_event.py
src/topicgate/core/models/observation_retention_policy.py
src/topicgate/core/models/observation_status.py
src/topicgate/core/models/observer_workspace.py
src/topicgate/core/models/subscription.py
src/topicgate/core/models/support_bundle.py
src/topicgate/core/models/topic_message.py
src/topicgate/core/models/health/__init__.py
src/topicgate/core/models/health/condition.py
src/topicgate/core/models/health/condition_kind.py
src/topicgate/core/models/health/condition_result.py
src/topicgate/core/models/health/diagnostic_report.py
src/topicgate/core/models/health/expectation_evaluation.py
src/topicgate/core/models/health/expectation_failure.py
src/topicgate/core/models/health/expectation_state.py
src/topicgate/core/models/health/expectation_target.py
src/topicgate/core/models/health/health_action_context.py
src/topicgate/core/models/health/health_enums.py
src/topicgate/core/models/health/health_expectation.py
src/topicgate/core/models/health/health_transition.py
src/topicgate/gui/__init__.py
src/topicgate/gui/app.py
src/topicgate/gui/broker_state_reader.py
src/topicgate/gui/gui.py
src/topicgate/gui/icons.py
src/topicgate/gui/main_view_model.py
src/topicgate/gui/main_window.py
src/topicgate/gui/observer_state_reader.py
src/topicgate/gui/settings_migration.py
src/topicgate/gui/theme.py
src/topicgate/gui/components/about_dialog.py
src/topicgate/gui/components/add_subscription_dialog.py
src/topicgate/gui/components/broker_connection.py
src/topicgate/gui/components/broker_settings_dialog.py
src/topicgate/gui/components/connection_controls.py
src/topicgate/gui/components/diagnostic_profile_editor.py
src/topicgate/gui/components/event_history_widget.py
src/topicgate/gui/components/expectation_editor.py
src/topicgate/gui/components/health_inspector.py
src/topicgate/gui/components/history_settings_widget.py
src/topicgate/gui/components/log_console.py
src/topicgate/gui/components/mcp_setup_dialog.py
src/topicgate/gui/components/observer_tree.py
src/topicgate/gui/components/onboarding_panel.py
src/topicgate/gui/components/publish_pane.py
src/topicgate/gui/components/quantity_editor.py
src/topicgate/gui/components/snapshot_panel.py
src/topicgate/gui/components/stored_observations_dialog.py
src/topicgate/gui/components/subscription_settings.py
src/topicgate/gui/components/support_bundle_export_dialog.py
src/topicgate/gui/components/topic_details.py
src/topicgate/gui/components/topic_metadata.py
src/topicgate/gui/components/workspace_pane.py
src/topicgate/infrastructure/__init__.py
src/topicgate/infrastructure/support_bundle_archive.py
src/topicgate/infrastructure/credentials/__init__.py
src/topicgate/infrastructure/credentials/credential_store.py
src/topicgate/infrastructure/credentials/os_credential_store.py
src/topicgate/infrastructure/database/__init__.py
src/topicgate/infrastructure/database/alembic.ini
src/topicgate/infrastructure/database/base.py
src/topicgate/infrastructure/database/database_context.py
src/topicgate/infrastructure/database/migrations.py
src/topicgate/infrastructure/database/alembic/README
src/topicgate/infrastructure/database/alembic/env.py
src/topicgate/infrastructure/database/alembic/script.py.mako
src/topicgate/infrastructure/database/alembic/versions/7c3e9f1a2b4d_add_observation_retention_policy.py
src/topicgate/infrastructure/database/alembic/versions/93fa5748f4b5_initial_revision.py
src/topicgate/infrastructure/database/alembic/versions/a91e5c7d4b20_add_health_expectation_pipeline.py
src/topicgate/infrastructure/database/alembic/versions/b3e7d2c9f610_complete_expectation_lifecycle.py
src/topicgate/infrastructure/database/alembic/versions/b84d61a9c2e7_rename_retention_database_bytes.py
src/topicgate/infrastructure/database/alembic/versions/c4d8a7e1f302_add_diagnostic_profiles.py
src/topicgate/infrastructure/database/alembic/versions/d2a4c6e8f010_add_control_operation_lease.py
src/topicgate/infrastructure/database/alembic/versions/d5e9b8f20314_add_observation_history.py
src/topicgate/infrastructure/database/alembic/versions/e6fa09131425_add_history_recording.py
src/topicgate/infrastructure/database/alembic/versions/f1490ca3b908_persist_latest_observed_mqtt_state.py
src/topicgate/infrastructure/database/alembic/versions/f70b1a242536_add_history_retention.py
src/topicgate/infrastructure/database/mappers/broker_profile_mapper.py
src/topicgate/infrastructure/database/mappers/config_mapper.py
src/topicgate/infrastructure/database/mappers/diagnostic_profile_mapper.py
src/topicgate/infrastructure/database/mappers/expectation_failure_mapper.py
src/topicgate/infrastructure/database/mappers/expectation_state_mapper.py
src/topicgate/infrastructure/database/mappers/health_expectation_mapper.py
src/topicgate/infrastructure/database/mappers/mapper_helper.py
src/topicgate/infrastructure/database/mappers/observation_event_mapper.py
src/topicgate/infrastructure/database/mappers/observation_retention_policy_mapper.py
src/topicgate/infrastructure/database/mappers/observer_workspace_mapper.py
src/topicgate/infrastructure/database/mappers/subscription_mapper.py
src/topicgate/infrastructure/database/mappers/topic_message_mapper.py
src/topicgate/infrastructure/database/models/__init__.py
src/topicgate/infrastructure/database/models/app_config_row.py
src/topicgate/infrastructure/database/models/broker_profile_row.py
src/topicgate/infrastructure/database/models/diagnostic_profile_row.py
src/topicgate/infrastructure/database/models/expectation_failure_row.py
src/topicgate/infrastructure/database/models/expectation_state_row.py
src/topicgate/infrastructure/database/models/health_expectation_row.py
src/topicgate/infrastructure/database/models/history_recording_row.py
src/topicgate/infrastructure/database/models/history_retention_row.py
src/topicgate/infrastructure/database/models/mqtt_config_row.py
src/topicgate/infrastructure/database/models/mqtt_message_row.py
src/topicgate/infrastructure/database/models/observation_event_row.py
src/topicgate/infrastructure/database/models/observation_retention_policy_row.py
src/topicgate/infrastructure/database/models/observer_workspace_row.py
src/topicgate/infrastructure/database/models/subscription_row.py
src/topicgate/infrastructure/diagnostic_packs/__init__.py
src/topicgate/infrastructure/diagnostic_packs/registry.py
src/topicgate/infrastructure/diagnostic_packs/zigbee2mqtt/__init__.py
src/topicgate/infrastructure/diagnostic_packs/zigbee2mqtt/diagnostic_pack.py
src/topicgate/infrastructure/diagnostic_packs/zigbee2mqtt/json_condition.py
src/topicgate/infrastructure/diagnostic_packs/zigbee2mqtt/loader.py
src/topicgate/infrastructure/diagnostic_packs/zigbee2mqtt/v1/pack.json
src/topicgate/infrastructure/health_actions/log_health_action.py
src/topicgate/infrastructure/health_actions/persist_failure_action.py
src/topicgate/infrastructure/integrations/__init__.py
src/topicgate/infrastructure/integrations/_plugin_cli.py
src/topicgate/infrastructure/integrations/claude.py
src/topicgate/infrastructure/integrations/codex.py
src/topicgate/infrastructure/integrations/copilot.py
src/topicgate/infrastructure/integrations/cursor.py
src/topicgate/infrastructure/mqtt/__init__.py
src/topicgate/infrastructure/mqtt/async_callback_bridge.py
src/topicgate/infrastructure/mqtt/mqtt_callbacks.py
src/topicgate/infrastructure/mqtt/mqtt_client.py
src/topicgate/infrastructure/mqtt/mqtt_gate.py
src/topicgate/infrastructure/mqtt/callbacks/__init__.py
src/topicgate/infrastructure/mqtt/callbacks/basic_callbacks.py
src/topicgate/infrastructure/mqtt/callbacks/observer_repository_callbacks.py
src/topicgate/infrastructure/repository/__init__.py
src/topicgate/infrastructure/repository/broker_config_repository.py
src/topicgate/infrastructure/repository/broker_repository.py
src/topicgate/infrastructure/repository/diagnostic_profile_repository.py
src/topicgate/infrastructure/repository/expectation_failure_repository.py
src/topicgate/infrastructure/repository/expectation_state_repository.py
src/topicgate/infrastructure/repository/health_expectation_repository.py
src/topicgate/infrastructure/repository/history_recording_repository.py
src/topicgate/infrastructure/repository/history_retention_repository.py
src/topicgate/infrastructure/repository/observation_history_repository.py
src/topicgate/infrastructure/repository/observation_retention_policy_repository.py
src/topicgate/infrastructure/repository/observer_mqtt_repository.py
src/topicgate/infrastructure/repository/subscription_repository.py
src/topicgate/infrastructure/repository/topic_message_repository.py
src/topicgate/mcp/__init__.py
src/topicgate/mcp/capabilities.py
src/topicgate/mcp/instructions.py
src/topicgate/mcp/models.py
src/topicgate/mcp/server.py
src/topicgate/mcp/api/broker_api.py
src/topicgate/mcp/api/connection_api.py
src/topicgate/mcp/api/dashboard_api.py
src/topicgate/mcp/api/dashboard_snapshot.py
src/topicgate/mcp/api/expectation_api.py
src/topicgate/mcp/api/health_api.py
src/topicgate/mcp/api/mcp_api.py
src/topicgate/mcp/api/publish_api.py
src/topicgate/mcp/api/snapshot_api.py
src/topicgate/mcp/api/subscription_api.py
src/topicgate/mcp/api/support_bundle_api.py
src/topicgate/mcp/api/topic_api.py
src/topicgate/mcp/api/preview/dashboard_preview.py
src/topicgate/mcp/middleware/__init__.py
src/topicgate/mcp/middleware/error_handling_middleware.py
src/topicgate/mcp/middleware/logging_middleware.py
src/topicgate/mcp/requests/__init__.py
src/topicgate/mcp/requests/broker_creation.py
src/topicgate/mcp/requests/expectation_requests.py
src/topicgate/presentation/__init__.py
src/topicgate/presentation/health_presentation.py
src/topicgate/presentation/retention_presentation.py
src/topicgate/presentation/snapshot_presentation.py
src/topicgate/presentation/support_bundle_representation.py
src/topicgate/presentation/topic_presentation.py
src/topicgate/processors/__init__.py
src/topicgate/processors/action_dispatcher.py
src/topicgate/processors/condition_factory.py
src/topicgate/processors/health_action_registry.py
src/topicgate/processors/observation_retention_processor.py
src/topicgate/processors/subscription_manager.py
src/topicgate/processors/transition_tracker.py
tests/test_app.py
tests/test_app_dependencies.py
tests/test_async_callback_bridge.py
tests/test_broker_config_repository.py
tests/test_broker_health_evaluation.py
tests/test_broker_inspection_service.py
tests/test_broker_repository_persistence.py
tests/test_broker_resolver.py
tests/test_broker_snapshot_service.py
tests/test_claude_integration.py
tests/test_codex_integration.py
tests/test_control_operation_service.py
tests/test_copilot_integration.py
tests/test_cursor_integration.py
tests/test_dashboard_api.py
tests/test_dashboard_dependencies.py
tests/test_dashboard_preview.py
tests/test_database_migrations.py
tests/test_desktop_snapshot_states.py
tests/test_diagnostic_profiles.py
tests/test_event_history_gui.py
tests/test_expectation_management.py
tests/test_failure_history_service.py
tests/test_finding_delta_service.py
tests/test_github_workflows.py
tests/test_gui.py
tests/test_health_database_models.py
tests/test_health_expectation.py
tests/test_health_mappers.py
tests/test_health_mcp_api.py
tests/test_health_pipeline.py
tests/test_health_presentation.py
tests/test_health_provisioning.py
tests/test_health_query_service.py
tests/test_health_report_service.py
tests/test_health_repositories.py
tests/test_health_wait_wire.py
tests/test_history_recording_service.py
tests/test_history_retention.py
tests/test_integration_dependencies.py
tests/test_integration_service.py
tests/test_main_view_model.py
tests/test_mcp_apis.py
tests/test_mcp_disconnected_startup.py
tests/test_mcp_middleware.py
tests/test_mcp_server_instructions.py
tests/test_mcp_setup_service.py
tests/test_migrate_app_versions.py
tests/test_mqtt_callbacks.py
tests/test_mqtt_client.py
tests/test_mqtt_message_row.py
tests/test_observation_cache_service.py
tests/test_observation_history_repository.py
tests/test_observation_query_service.py
tests/test_observation_retention_policy.py
tests/test_observation_retention_policy_repository.py
tests/test_observation_retention_policy_service.py
tests/test_observer_model_hydration.py
tests/test_observer_repository.py
tests/test_observer_workspace_mapper.py
tests/test_os_credential_store.py
tests/test_paths.py
tests/test_persistence_lifecycle.py
tests/test_plugin_bundle.py
tests/test_plugin_cli_integration.py
tests/test_retention_administration.py
tests/test_service_container.py
tests/test_settings_migration.py
tests/test_snapshot_mcp_api.py
tests/test_snapshot_presentation.py
tests/test_subscription.py
tests/test_subscription_manager.py
tests/test_subscription_mapper.py
tests/test_subscription_repository.py
tests/test_support_bundle.py
tests/test_support_bundle_mcp_api.py
tests/test_topic_history_service.py
tests/test_topic_message_repository.py
tests/test_topic_presentation.py
tests/test_topicgate_cli.py
tests/test_topicgate_runtime.py
tests/test_verify_distribution.py
tests/test_zigbee2mqtt_diagnostic_pack.py
tests/test_zigbee2mqtt_scenario.py