gitextract_4l6r5una/ ├── .github/ │ └── workflows/ │ └── document_deploy.yml ├── .gitignore ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── DISCLAIMER.md ├── LICENSE ├── README.md ├── README_ZH.md ├── SECURITY.md ├── aip/ │ ├── __init__.py │ ├── endpoints/ │ │ ├── __init__.py │ │ ├── base.py │ │ ├── client_endpoint.py │ │ ├── constellation_endpoint.py │ │ └── server_endpoint.py │ ├── extensions/ │ │ ├── __init__.py │ │ ├── base.py │ │ └── middleware.py │ ├── messages.py │ ├── protocol/ │ │ ├── __init__.py │ │ ├── base.py │ │ ├── command.py │ │ ├── device_info.py │ │ ├── heartbeat.py │ │ ├── registration.py │ │ └── task_execution.py │ ├── resilience/ │ │ ├── __init__.py │ │ ├── heartbeat_manager.py │ │ ├── reconnection.py │ │ └── timeout.py │ └── transport/ │ ├── __init__.py │ ├── adapters.py │ ├── base.py │ └── websocket.py ├── config/ │ ├── __init__.py │ ├── config_loader.py │ ├── config_schemas.py │ ├── galaxy/ │ │ ├── agent.yaml.template │ │ ├── constellation.yaml │ │ └── devices.yaml │ └── ufo/ │ ├── agents.yaml.template │ ├── mcp.yaml │ ├── prices.yaml │ ├── rag.yaml │ ├── system.yaml │ └── third_party.yaml ├── dataflow/ │ ├── .gitignore │ ├── README.md │ ├── __main__.py │ ├── config/ │ │ ├── config.py │ │ ├── config.yaml.template │ │ └── config_dev.yaml │ ├── data_flow_controller.py │ ├── dataflow.py │ ├── env/ │ │ └── env_manager.py │ ├── execution/ │ │ ├── agent/ │ │ │ ├── __init__.py │ │ │ ├── execute_agent.py │ │ │ └── execute_eval_agent.py │ │ └── workflow/ │ │ ├── __init__.py │ │ └── execute_flow.py │ ├── instantiation/ │ │ ├── __init__.py │ │ ├── agent/ │ │ │ ├── __init__.py │ │ │ ├── filter_agent.py │ │ │ ├── prefill_agent.py │ │ │ └── template_agent.py │ │ └── workflow/ │ │ ├── __init__.py │ │ ├── choose_template_flow.py │ │ ├── filter_flow.py │ │ └── prefill_flow.py │ ├── prompter/ │ │ ├── __init__.py │ │ ├── execution/ │ │ │ ├── __init__.py │ │ │ └── execute_eval_prompter.py │ │ └── instantiation/ │ │ ├── __init__.py │ │ ├── filter_prompter.py │ │ ├── prefill_prompter.py │ │ └── template_prompter.py │ ├── prompts/ │ │ └── instantiation/ │ │ └── visual/ │ │ ├── filter.yaml │ │ ├── prefill.yaml │ │ ├── prefill_example.yaml │ │ └── template.yaml │ ├── schema/ │ │ ├── execution_schema.json │ │ └── instantiation_schema.json │ └── templates/ │ └── word/ │ ├── 1.docx │ ├── 2.docx │ ├── 3.docx │ ├── 4.docx │ ├── 5.docx │ ├── 6.docx │ ├── 7.docx │ ├── description.json │ ├── template1.docx │ └── template2.docx ├── documents/ │ ├── docs/ │ │ ├── about/ │ │ │ ├── CODE_OF_CONDUCT.md │ │ │ ├── CONTRIBUTING.md │ │ │ ├── DISCLAIMER.md │ │ │ ├── LICENSE.md │ │ │ └── SUPPORT.md │ │ ├── aip/ │ │ │ ├── endpoints.md │ │ │ ├── messages.md │ │ │ ├── overview.md │ │ │ ├── protocols.md │ │ │ ├── resilience.md │ │ │ └── transport.md │ │ ├── choose_path.md │ │ ├── client/ │ │ │ ├── computer.md │ │ │ ├── computer_manager.md │ │ │ ├── device_info.md │ │ │ ├── mcp_integration.md │ │ │ ├── overview.md │ │ │ ├── quick_start.md │ │ │ ├── ufo_client.md │ │ │ └── websocket_client.md │ │ ├── configuration/ │ │ │ ├── models/ │ │ │ │ ├── azure_openai.md │ │ │ │ ├── claude.md │ │ │ │ ├── custom_model.md │ │ │ │ ├── deepseek.md │ │ │ │ ├── gemini.md │ │ │ │ ├── ollama.md │ │ │ │ ├── openai.md │ │ │ │ ├── operator.md │ │ │ │ ├── overview.md │ │ │ │ └── qwen.md │ │ │ └── system/ │ │ │ ├── agents_config.md │ │ │ ├── extending.md │ │ │ ├── galaxy_agent.md │ │ │ ├── galaxy_constellation.md │ │ │ ├── galaxy_devices.md │ │ │ ├── mcp_reference.md │ │ │ ├── migration.md │ │ │ ├── overview.md │ │ │ ├── prices_config.md │ │ │ ├── rag_config.md │ │ │ ├── system_config.md │ │ │ └── third_party_config.md │ │ ├── faq.md │ │ ├── galaxy/ │ │ │ ├── agent_registration/ │ │ │ │ ├── agent_profile.md │ │ │ │ ├── device_registry.md │ │ │ │ ├── overview.md │ │ │ │ └── registration_flow.md │ │ │ ├── client/ │ │ │ │ ├── aip_integration.md │ │ │ │ ├── components.md │ │ │ │ ├── constellation_client.md │ │ │ │ ├── device_manager.md │ │ │ │ ├── galaxy_client.md │ │ │ │ └── overview.md │ │ │ ├── constellation/ │ │ │ │ ├── constellation_editor.md │ │ │ │ ├── overview.md │ │ │ │ ├── task_constellation.md │ │ │ │ ├── task_star.md │ │ │ │ └── task_star_line.md │ │ │ ├── constellation_agent/ │ │ │ │ ├── command.md │ │ │ │ ├── overview.md │ │ │ │ ├── state.md │ │ │ │ └── strategy.md │ │ │ ├── constellation_orchestrator/ │ │ │ │ ├── api_reference.md │ │ │ │ ├── asynchronous_scheduling.md │ │ │ │ ├── batched_editing.md │ │ │ │ ├── consistency_guarantees.md │ │ │ │ ├── constellation_manager.md │ │ │ │ ├── event_driven_coordination.md │ │ │ │ ├── overview.md │ │ │ │ └── safe_assignment_locking.md │ │ │ ├── evaluation/ │ │ │ │ ├── performance_metrics.md │ │ │ │ ├── result_json.md │ │ │ │ └── trajectory_report.md │ │ │ ├── observer/ │ │ │ │ ├── agent_output_observer.md │ │ │ │ ├── event_system.md │ │ │ │ ├── metrics_observer.md │ │ │ │ ├── overview.md │ │ │ │ ├── progress_observer.md │ │ │ │ ├── synchronizer.md │ │ │ │ └── visualization_observer.md │ │ │ ├── overview.md │ │ │ └── webui.md │ │ ├── getting_started/ │ │ │ ├── migration_ufo2_to_galaxy.md │ │ │ ├── more_guidance.md │ │ │ ├── quick_start_galaxy.md │ │ │ ├── quick_start_linux.md │ │ │ ├── quick_start_mobile.md │ │ │ └── quick_start_ufo2.md │ │ ├── index.md │ │ ├── infrastructure/ │ │ │ ├── agents/ │ │ │ │ ├── agent_types.md │ │ │ │ ├── design/ │ │ │ │ │ ├── blackboard.md │ │ │ │ │ ├── command.md │ │ │ │ │ ├── memory.md │ │ │ │ │ ├── processor.md │ │ │ │ │ ├── prompter.md │ │ │ │ │ ├── state.md │ │ │ │ │ └── strategy.md │ │ │ │ ├── overview.md │ │ │ │ └── server_client_architecture.md │ │ │ └── modules/ │ │ │ ├── context.md │ │ │ ├── dispatcher.md │ │ │ ├── overview.md │ │ │ ├── platform_sessions.md │ │ │ ├── round.md │ │ │ ├── session.md │ │ │ └── session_pool.md │ │ ├── javascripts/ │ │ │ └── mermaid-init.js │ │ ├── linux/ │ │ │ ├── as_galaxy_device.md │ │ │ ├── commands.md │ │ │ ├── overview.md │ │ │ ├── state.md │ │ │ └── strategy.md │ │ ├── mcp/ │ │ │ ├── action.md │ │ │ ├── configuration.md │ │ │ ├── data_collection.md │ │ │ ├── local_servers.md │ │ │ ├── overview.md │ │ │ ├── remote_servers.md │ │ │ └── servers/ │ │ │ ├── app_ui_executor.md │ │ │ ├── bash_executor.md │ │ │ ├── command_line_executor.md │ │ │ ├── constellation_editor.md │ │ │ ├── excel_com_executor.md │ │ │ ├── hardware_executor.md │ │ │ ├── host_ui_executor.md │ │ │ ├── mobile_executor.md │ │ │ ├── pdf_reader_executor.md │ │ │ ├── ppt_com_executor.md │ │ │ ├── ui_collector.md │ │ │ └── word_com_executor.md │ │ ├── mobile/ │ │ │ ├── as_galaxy_device.md │ │ │ ├── commands.md │ │ │ ├── overview.md │ │ │ ├── state.md │ │ │ └── strategy.md │ │ ├── project_directory_structure.md │ │ ├── server/ │ │ │ ├── api.md │ │ │ ├── client_connection_manager.md │ │ │ ├── monitoring.md │ │ │ ├── overview.md │ │ │ ├── quick_start.md │ │ │ ├── session_manager.md │ │ │ └── websocket_handler.md │ │ ├── tutorials/ │ │ │ ├── creating_app_agent/ │ │ │ │ ├── demonstration_provision.md │ │ │ │ ├── help_document_provision.md │ │ │ │ ├── overview.md │ │ │ │ └── warpping_app_native_api.md │ │ │ ├── creating_device_agent/ │ │ │ │ ├── client_setup.md │ │ │ │ ├── configuration.md │ │ │ │ ├── core_components.md │ │ │ │ ├── example_mobile_agent.md │ │ │ │ ├── index.md │ │ │ │ ├── mcp_server.md │ │ │ │ ├── overview.md │ │ │ │ └── testing.md │ │ │ ├── creating_mcp_servers.md │ │ │ └── creating_third_party_agents.md │ │ └── ufo2/ │ │ ├── advanced_usage/ │ │ │ ├── batch_mode.md │ │ │ ├── customization.md │ │ │ ├── follower_mode.md │ │ │ └── operator_as_app_agent.md │ │ ├── app_agent/ │ │ │ ├── commands.md │ │ │ ├── overview.md │ │ │ ├── state.md │ │ │ └── strategy.md │ │ ├── as_galaxy_device.md │ │ ├── core_features/ │ │ │ ├── control_detection/ │ │ │ │ ├── hybrid_detection.md │ │ │ │ ├── overview.md │ │ │ │ ├── uia_detection.md │ │ │ │ └── visual_detection.md │ │ │ ├── hybrid_actions.md │ │ │ ├── knowledge_substrate/ │ │ │ │ ├── experience_learning.md │ │ │ │ ├── learning_from_bing_search.md │ │ │ │ ├── learning_from_demonstration.md │ │ │ │ ├── learning_from_help_document.md │ │ │ │ └── overview.md │ │ │ └── multi_action.md │ │ ├── dataflow/ │ │ │ ├── execution.md │ │ │ ├── instantiation.md │ │ │ ├── overview.md │ │ │ ├── result.md │ │ │ └── windows_app_env.md │ │ ├── evaluation/ │ │ │ ├── benchmark/ │ │ │ │ ├── osworld.md │ │ │ │ ├── overview.md │ │ │ │ └── windows_agent_arena.md │ │ │ ├── evaluation_agent.md │ │ │ └── logs/ │ │ │ ├── evaluation_logs.md │ │ │ ├── markdown_log_viewer.md │ │ │ ├── overview.md │ │ │ ├── request_logs.md │ │ │ ├── screenshots_logs.md │ │ │ ├── step_logs.md │ │ │ └── ui_tree_logs.md │ │ ├── host_agent/ │ │ │ ├── commands.md │ │ │ ├── overview.md │ │ │ ├── state.md │ │ │ └── strategy.md │ │ ├── overview.md │ │ └── prompts/ │ │ ├── basic_template.md │ │ ├── examples_prompts.md │ │ └── overview.md │ └── mkdocs.yml ├── galaxy/ │ ├── README.md │ ├── README_ZH.md │ ├── __init__.py │ ├── __main__.py │ ├── agents/ │ │ ├── __init__.py │ │ ├── constellation_agent.py │ │ ├── constellation_agent_states.py │ │ ├── processors/ │ │ │ ├── processor.py │ │ │ ├── processor_context.py │ │ │ └── strategies/ │ │ │ ├── __init__.py │ │ │ ├── base_constellation_strategy.py │ │ │ ├── constellation_creation_strategy.py │ │ │ ├── constellation_editing_strategy.py │ │ │ └── constellation_factory.py │ │ ├── prompters/ │ │ │ ├── __init__.py │ │ │ ├── base_constellation_prompter.py │ │ │ ├── constellation_creation_prompter.py │ │ │ └── constellation_editing_prompter.py │ │ └── schema.py │ ├── client/ │ │ ├── __init__.py │ │ ├── components/ │ │ │ ├── __init__.py │ │ │ ├── connection_manager.py │ │ │ ├── device_registry.py │ │ │ ├── heartbeat_manager.py │ │ │ ├── message_processor.py │ │ │ ├── task_queue_manager.py │ │ │ └── types.py │ │ ├── config_loader.py │ │ ├── constellation_client.py │ │ ├── demo_device_events.py │ │ ├── device_manager.py │ │ └── support/ │ │ ├── __init__.py │ │ ├── client_config_manager.py │ │ └── status_manager.py │ ├── constellation/ │ │ ├── __init__.py │ │ ├── editor/ │ │ │ ├── __init__.py │ │ │ ├── command_history.py │ │ │ ├── command_interface.py │ │ │ ├── command_invoker.py │ │ │ ├── command_registry.py │ │ │ ├── commands.py │ │ │ └── constellation_editor.py │ │ ├── enums.py │ │ ├── orchestrator/ │ │ │ ├── constellation_manager.py │ │ │ └── orchestrator.py │ │ ├── task_constellation.py │ │ ├── task_star.py │ │ └── task_star_line.py │ ├── core/ │ │ ├── __init__.py │ │ ├── di_container.py │ │ ├── events.py │ │ ├── interfaces.py │ │ └── types.py │ ├── galaxy.py │ ├── galaxy_client.py │ ├── prompts/ │ │ └── constellation/ │ │ ├── examples/ │ │ │ ├── constellation_creation_example.yaml │ │ │ └── constellation_editing_example.yaml │ │ └── share/ │ │ ├── constellation_creation.yaml │ │ └── constellation_editing.yaml │ ├── session/ │ │ ├── __init__.py │ │ ├── galaxy_session.py │ │ └── observers/ │ │ ├── __init__.py │ │ ├── agent_output_observer.py │ │ ├── base_observer.py │ │ ├── constellation_sync_observer.py │ │ ├── constellation_visualization_handler.py │ │ ├── dag_visualization_observer.py │ │ └── task_visualization_handler.py │ ├── trajectory/ │ │ ├── __init__.py │ │ ├── galaxy_parser.py │ │ └── generate_report.py │ ├── visualization/ │ │ ├── __init__.py │ │ ├── change_detector.py │ │ ├── client_display.py │ │ ├── constellation_display.py │ │ ├── constellation_formatter.py │ │ ├── dag_visualizer.py │ │ └── task_display.py │ └── webui/ │ ├── README.md │ ├── __init__.py │ ├── dependencies.py │ ├── frontend/ │ │ ├── .vite/ │ │ │ └── deps_temp_3b00ab27/ │ │ │ └── package.json │ │ ├── README.md │ │ ├── dist/ │ │ │ ├── assets/ │ │ │ │ ├── index-Bthiy-Xd.js │ │ │ │ └── index-DixfhFjw.css │ │ │ └── index.html │ │ ├── index.html │ │ ├── package.json │ │ ├── postcss.config.cjs │ │ ├── src/ │ │ │ ├── App.tsx │ │ │ ├── components/ │ │ │ │ ├── AgentOutput.tsx │ │ │ │ ├── ControlPanel.tsx │ │ │ │ ├── DAGVisualization.tsx │ │ │ │ ├── EventLog.tsx │ │ │ │ ├── SessionView.tsx │ │ │ │ ├── Welcome.tsx │ │ │ │ ├── chat/ │ │ │ │ │ ├── ChatWindow.tsx │ │ │ │ │ ├── Composer.tsx │ │ │ │ │ └── MessageBubble.tsx │ │ │ │ ├── common/ │ │ │ │ │ └── SearchFilterBar.tsx │ │ │ │ ├── constellation/ │ │ │ │ │ ├── ConstellationBlock.tsx │ │ │ │ │ ├── ConstellationStats.tsx │ │ │ │ │ └── DagPreview.tsx │ │ │ │ ├── devices/ │ │ │ │ │ ├── AddDeviceModal.tsx │ │ │ │ │ └── DevicePanel.tsx │ │ │ │ ├── layout/ │ │ │ │ │ ├── LeftSidebar.tsx │ │ │ │ │ ├── NotificationCenter.tsx │ │ │ │ │ ├── RightPanel.tsx │ │ │ │ │ └── StarfieldOverlay.tsx │ │ │ │ ├── session/ │ │ │ │ │ └── SessionControlBar.tsx │ │ │ │ └── tasks/ │ │ │ │ ├── TaskDetailPanel.tsx │ │ │ │ └── TaskList.tsx │ │ │ ├── config/ │ │ │ │ └── api.ts │ │ │ ├── index.css │ │ │ ├── main.tsx │ │ │ ├── services/ │ │ │ │ └── websocket.ts │ │ │ ├── store/ │ │ │ │ ├── galaxyStore.ts │ │ │ │ └── mockData.ts │ │ │ └── vite-env.d.ts │ │ ├── tailwind.config.js │ │ ├── tsconfig.json │ │ ├── tsconfig.node.json │ │ └── vite.config.ts │ ├── handlers/ │ │ ├── __init__.py │ │ └── websocket_handlers.py │ ├── models/ │ │ ├── __init__.py │ │ ├── enums.py │ │ ├── requests.py │ │ └── responses.py │ ├── py.typed │ ├── routers/ │ │ ├── __init__.py │ │ ├── devices.py │ │ ├── health.py │ │ └── websocket.py │ ├── server.py │ ├── services/ │ │ ├── __init__.py │ │ ├── config_service.py │ │ ├── device_service.py │ │ └── galaxy_service.py │ ├── templates/ │ │ └── index.html │ └── websocket_observer.py ├── learner/ │ ├── README.md │ ├── __init__.py │ ├── __main__.py │ ├── basic.py │ ├── doc_example/ │ │ ├── ppt-copilot.xml │ │ └── ppt-copilot.xml.meta │ ├── indexer.py │ ├── json_loader.py │ ├── learner.py │ ├── utils.py │ └── xml_loader.py ├── model_worker/ │ ├── README.md │ └── custom_worker.py ├── record_processor/ │ ├── README.md │ ├── __init__.py │ ├── __main__.py │ ├── parser/ │ │ ├── demonstration_record.py │ │ └── psr_record_parser.py │ ├── record_processor.py │ ├── summarizer/ │ │ └── summarizer.py │ └── utils/ │ └── __init__.py ├── requirements.txt ├── tests/ │ ├── BUG_REPORT_REAL_SESSION_TEST.md │ ├── README.md │ ├── README_log_collection_test.md │ ├── __init__.py │ ├── aip/ │ │ ├── __init__.py │ │ ├── test_binary_transfer.py │ │ ├── test_endpoints.py │ │ ├── test_integration.py │ │ ├── test_messages.py │ │ ├── test_protocol.py │ │ ├── test_resilience.py │ │ └── test_transport.py │ ├── bug_summary_report.py │ ├── clients/ │ │ ├── test_comprehensive_client_types.py │ │ ├── test_constellation_client.py │ │ ├── test_constellation_validation.py │ │ ├── test_device_validation.py │ │ ├── test_handler_refactoring.py │ │ ├── test_server_client_recognition.py │ │ └── test_ws_client_types.py │ ├── config/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── test_attribute_access_validation.py │ │ ├── test_config_loader.py │ │ ├── test_galaxy_config.py │ │ ├── test_migration.py │ │ ├── test_migration_validation.py │ │ └── test_validation.py │ ├── confirm_old_handlers_restored.py │ ├── debug_observer_output.py │ ├── demo_device_info.py │ ├── demo_galaxy_client_log_collection.py │ ├── editors/ │ │ ├── CONSTELLATION_EDITOR_UPDATES.md │ │ ├── comprehensive_demo.py │ │ ├── constellation_editor_example.py │ │ ├── debug_undo.py │ │ ├── direct_json_test.py │ │ ├── minimal_json_test.py │ │ ├── simple_json_test.py │ │ ├── test_constellation_editor.py │ │ ├── test_constellation_json.py │ │ ├── test_constellation_mcp.py │ │ ├── test_constellation_mcp_simplified.py │ │ ├── test_json_serialization.py │ │ ├── test_mcp_basic.py │ │ ├── test_only_undo.py │ │ └── test_updated_editor.py │ ├── examples/ │ │ ├── __init__.py │ │ ├── auto_id_constellation.json │ │ ├── auto_id_example.py │ │ ├── basemodel_example.py │ │ ├── dict_format_example.json │ │ ├── example_constellation.json │ │ ├── list_dict_compatibility_example.py │ │ └── list_format_example.json │ ├── galaxy/ │ │ ├── __init__.py │ │ ├── client/ │ │ │ ├── README_disconnection_tests.md │ │ │ ├── run_disconnection_tests.py │ │ │ ├── test_device_disconnection_reconnection.py │ │ │ ├── test_device_disconnection_task_handling.py │ │ │ ├── test_device_events.py │ │ │ ├── test_device_manager_assign_task.py │ │ │ ├── test_device_manager_info_update.py │ │ │ ├── test_galaxy_client.py │ │ │ ├── test_galaxy_client_cancellation.py │ │ │ ├── test_mock_and_visualization.py │ │ │ ├── test_mock_functionality.py │ │ │ ├── test_pending_task_cancellation.py │ │ │ ├── test_server_restart_reconnection.py │ │ │ ├── test_simple_mock.py │ │ │ ├── test_target_device_not_registered.py │ │ │ └── test_task_response_mechanism.py │ │ ├── constellation/ │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── run_all_tests.py │ │ │ ├── test_constellation_parsing.py │ │ │ ├── test_constellation_parsing_debug.py │ │ │ ├── test_constellation_summary.py │ │ │ ├── test_constellation_tasks_debug.py │ │ │ └── test_orchestrator_cancellation.py │ │ ├── mocks.py │ │ ├── run_cancellation_tests.py │ │ ├── session/ │ │ │ ├── README.md │ │ │ ├── logs/ │ │ │ │ └── galaxy/ │ │ │ │ └── Test task analyze data and generate insights/ │ │ │ │ ├── evaluation.log │ │ │ │ ├── request.log │ │ │ │ └── response.log │ │ │ ├── test_galaxy_session.py │ │ │ ├── test_galaxy_session_final.py │ │ │ ├── test_galaxy_session_integration.py │ │ │ ├── test_galaxy_session_proper_mock.py │ │ │ └── test_session_cancellation.py │ │ ├── trajectory/ │ │ │ ├── __init__.py │ │ │ └── test_topology_visualization.py │ │ ├── visualization/ │ │ │ └── test_constellation_formatter.py │ │ └── webui/ │ │ ├── test_websocket_server.py │ │ └── test_webui_stop_integration.py │ ├── integration/ │ │ ├── galaxy/ │ │ │ ├── test_galaxy_state_machine_integration.py │ │ │ └── test_galaxy_state_machine_simple.py │ │ ├── test_constellation_aip_communication.py │ │ ├── test_constellation_aip_simple.py │ │ ├── test_constellation_server_compatibility.py │ │ ├── test_device_communication.py │ │ ├── test_device_info_flow.py │ │ ├── test_e2e_galaxy.py │ │ ├── test_e2e_simplified.py │ │ ├── test_galaxy_state_machine_integration.py │ │ ├── test_mobile_mcp_server.py │ │ ├── test_mobile_mcp_standalone.py │ │ ├── test_presenter_integration.py │ │ └── verify_mobile_setup.py │ ├── logs/ │ │ └── galaxy/ │ │ └── Test task analyze data and generate insights/ │ │ ├── evaluation.log │ │ ├── request.log │ │ └── response.log │ ├── run_dag_tests.py │ ├── run_device_info_tests.py │ ├── run_galaxy_session_tests.py │ ├── run_galaxy_state_machine_tests.py │ ├── run_galaxy_tests.py │ ├── run_sync_tests.py │ ├── test_agents_config_migration.py │ ├── test_base_constellation_prompter.py │ ├── test_color_fix.py │ ├── test_constellation_continuation.py │ ├── test_constellation_manager.py │ ├── test_constellation_observer_logger.py │ ├── test_constellation_parser.py │ ├── test_constellation_parser_refactored.py │ ├── test_constellation_serializer.py │ ├── test_constellation_sync_integration.py │ ├── test_constellation_sync_observer.py │ ├── test_constellation_sync_observer_simple.py │ ├── test_constellation_update_lock.py │ ├── test_constellation_updater.py │ ├── test_convert_config.py │ ├── test_dag_visualization_observer_events.py │ ├── test_enhanced_continuation.py │ ├── test_galaxy_client_log_collection_session.py │ ├── test_galaxy_framework_summary.py │ ├── test_galaxy_session_proper_mock.py │ ├── test_linux_log_collection_excel_generation.py │ ├── test_logger_namespace_issue.py │ ├── test_misc_config_migration.py │ ├── test_old_handlers_simple.py │ ├── test_orchestrator_refactored.py │ ├── test_prompt_sanitizer.py │ ├── test_race_condition_real.py │ ├── test_real_galaxy_session_integration.py │ ├── test_realistic_constellation_observer.py │ ├── test_server_client_config_migration.py │ ├── test_session_observers.py │ ├── test_session_visualization_integration.py │ ├── unit/ │ │ ├── galaxy/ │ │ │ ├── agents/ │ │ │ │ ├── test_constellation_factory_refactor.py │ │ │ │ ├── test_constellation_simple.py │ │ │ │ └── test_galaxy_agent_states.py │ │ │ └── session/ │ │ │ ├── test_galaxy_round_refactored.py │ │ │ ├── test_modular_observers.py │ │ │ ├── test_observer_modular_structure.py │ │ │ └── test_observers_refactored.py │ │ ├── schema/ │ │ │ ├── __init__.py │ │ │ ├── test_automatic_id_assignment.py │ │ │ ├── test_basemodel_integration.py │ │ │ ├── test_list_dict_compatibility.py │ │ │ └── test_optional_fields.py │ │ ├── test_constellation_aip_migration.py │ │ ├── test_device_info_provider.py │ │ ├── test_event_system.py │ │ ├── test_galaxy_state_machine.py │ │ ├── test_presenters.py │ │ ├── test_refactoring.py │ │ └── test_ws_manager_device_info.py │ └── visualization/ │ ├── debug_constellation_modified.py │ ├── debug_observer_output.py │ ├── debug_visualization.py │ ├── test_comprehensive_changes.py │ ├── test_constellation_agent_events.py │ ├── test_constellation_agent_integration.py │ ├── test_constellation_comparison.py │ ├── test_constellation_events.py │ ├── test_dag_demo.py │ ├── test_dag_mock.py │ ├── test_dag_simple.py │ ├── test_dependency_property_changes.py │ ├── test_enhanced_visualization.py │ ├── test_individual_events.py │ ├── test_manual_constellation_events.py │ └── test_refactored_modules.py ├── ufo/ │ ├── README.md │ ├── README_UFO_V1.md │ ├── README_ZH.md │ ├── __init__.py │ ├── __main__.py │ ├── agents/ │ │ ├── __init__.py │ │ ├── agent/ │ │ │ ├── __init__.py │ │ │ ├── app_agent.py │ │ │ ├── basic.py │ │ │ ├── customized_agent.py │ │ │ ├── evaluation_agent.py │ │ │ └── host_agent.py │ │ ├── memory/ │ │ │ ├── __init__.py │ │ │ ├── blackboard.py │ │ │ └── memory.py │ │ ├── presenters/ │ │ │ ├── __init__.py │ │ │ ├── base_presenter.py │ │ │ ├── presenter_factory.py │ │ │ └── rich_presenter.py │ │ ├── processors/ │ │ │ ├── __init__.py │ │ │ ├── app_agent_processor.py │ │ │ ├── context/ │ │ │ │ ├── __init__.py │ │ │ │ ├── app_agent_processing_context.py │ │ │ │ ├── host_agent_processing_context.py │ │ │ │ └── processing_context.py │ │ │ ├── core/ │ │ │ │ ├── __init__.py │ │ │ │ ├── processing_middleware.py │ │ │ │ ├── processor_framework.py │ │ │ │ └── strategy_dependency.py │ │ │ ├── customized/ │ │ │ │ └── customized_agent_processor.py │ │ │ ├── host_agent_processor.py │ │ │ ├── schemas/ │ │ │ │ ├── __init__.py │ │ │ │ ├── actions.py │ │ │ │ ├── log_schema.py │ │ │ │ ├── response_schema.py │ │ │ │ └── target.py │ │ │ └── strategies/ │ │ │ ├── __init__.py │ │ │ ├── app_agent_processing_strategy.py │ │ │ ├── customized_agent_processing_strategy.py │ │ │ ├── host_agent_processing_strategy.py │ │ │ ├── linux_agent_strategy.py │ │ │ ├── mobile_agent_strategy.py │ │ │ ├── processing_strategy.py │ │ │ └── strategy_dependency.py │ │ └── states/ │ │ ├── __init__.py │ │ ├── app_agent_state.py │ │ ├── basic.py │ │ ├── evaluaton_agent_state.py │ │ ├── host_agent_state.py │ │ ├── linux_agent_state.py │ │ ├── mobile_agent_state.py │ │ └── operator_state.py │ ├── automator/ │ │ ├── __init__.py │ │ ├── action_execution.py │ │ ├── app_apis/ │ │ │ ├── __init__.py │ │ │ ├── basic.py │ │ │ ├── excel/ │ │ │ │ ├── __init__.py │ │ │ │ └── excelclient.py │ │ │ ├── factory.py │ │ │ ├── powerpoint/ │ │ │ │ ├── __init__.py │ │ │ │ └── powerpointclient.py │ │ │ ├── shell/ │ │ │ │ ├── __init__.py │ │ │ │ └── shell_client.py │ │ │ ├── web/ │ │ │ │ ├── __init__.py │ │ │ │ └── webclient.py │ │ │ └── word/ │ │ │ ├── __init__.py │ │ │ └── wordclient.py │ │ ├── basic.py │ │ ├── puppeteer.py │ │ └── ui_control/ │ │ ├── __init__.py │ │ ├── control_filter.py │ │ ├── controller.py │ │ ├── grounding/ │ │ │ ├── __init__.py │ │ │ ├── basic.py │ │ │ └── omniparser.py │ │ ├── inspector.py │ │ ├── screenshot.py │ │ └── ui_tree.py │ ├── client/ │ │ ├── client.py │ │ ├── computer.py │ │ ├── device_info_provider.py │ │ ├── mcp/ │ │ │ ├── http_servers/ │ │ │ │ ├── hardware_mcp_server.py │ │ │ │ ├── linux_mcp_server.py │ │ │ │ └── mobile_mcp_server.py │ │ │ ├── local_servers/ │ │ │ │ ├── __init__.py │ │ │ │ ├── cli_mcp_server.py │ │ │ │ ├── constellation_mcp_server.py │ │ │ │ ├── excel_wincom_mcp_server.py │ │ │ │ ├── pdf_reader_mcp_server.py │ │ │ │ ├── ppt_wincom_mcp_server.py │ │ │ │ ├── ui_mcp_server.py │ │ │ │ └── word_wincom_mcp_server.py │ │ │ ├── mcp_registry.py │ │ │ └── mcp_server_manager.py │ │ ├── ufo_client.py │ │ └── websocket.py │ ├── config/ │ │ └── __init__.py │ ├── experience/ │ │ ├── __init__.py │ │ ├── experience_parser.py │ │ └── summarizer.py │ ├── llm/ │ │ ├── __init__.py │ │ ├── base.py │ │ ├── claude.py │ │ ├── cogagent.py │ │ ├── config_helper.py │ │ ├── deepseek.py │ │ ├── gemini.py │ │ ├── grounding_model/ │ │ │ └── omniparser_service.py │ │ ├── llava.py │ │ ├── llm_call.py │ │ ├── ollama.py │ │ ├── openai.py │ │ ├── placeholder.py │ │ ├── qwen.py │ │ └── response_schema.py │ ├── logging/ │ │ ├── __init__.py │ │ └── setup.py │ ├── module/ │ │ ├── __init__.py │ │ ├── basic.py │ │ ├── context.py │ │ ├── dispatcher.py │ │ ├── interactor.py │ │ ├── session_pool.py │ │ └── sessions/ │ │ ├── __init__.py │ │ ├── linux_session.py │ │ ├── mobile_session.py │ │ ├── plan_reader.py │ │ ├── platform_session.py │ │ ├── service_session.py │ │ └── session.py │ ├── prompter/ │ │ ├── __init__.py │ │ ├── agent_prompter.py │ │ ├── basic.py │ │ ├── customized/ │ │ │ ├── linux_agent_prompter.py │ │ │ └── mobile_agent_prompter.py │ │ ├── demonstration_prompter.py │ │ ├── eva_prompter.py │ │ ├── experience_prompter.py │ │ └── prompt_sanitizer.py │ ├── prompts/ │ │ ├── demonstration/ │ │ │ └── demonstration_summary.yaml │ │ ├── evaluation/ │ │ │ └── evaluate.yaml │ │ ├── examples/ │ │ │ ├── nonvisual/ │ │ │ │ ├── app_agent_example.yaml │ │ │ │ ├── app_agent_example_as.yaml │ │ │ │ └── host_agent_example.yaml │ │ │ └── visual/ │ │ │ ├── app_agent_example.yaml │ │ │ ├── app_agent_example_as.yaml │ │ │ └── host_agent_example.yaml │ │ ├── experience/ │ │ │ └── experience_summary.yaml │ │ ├── share/ │ │ │ └── base/ │ │ │ ├── api.yaml │ │ │ ├── app_agent.yaml │ │ │ └── host_agent.yaml │ │ └── third_party/ │ │ ├── linux_agent.yaml │ │ ├── linux_agent_example.yaml │ │ ├── mobile_agent.yaml │ │ └── mobile_agent_example.yaml │ ├── rag/ │ │ ├── __init__.py │ │ ├── retriever.py │ │ └── web_search.py │ ├── server/ │ │ ├── app.py │ │ ├── services/ │ │ │ ├── api.py │ │ │ ├── client_connection_manager.py │ │ │ └── session_manager.py │ │ └── ws/ │ │ └── handler.py │ ├── tools/ │ │ ├── README_CONFIG.md │ │ ├── convert_config.py │ │ ├── migrate_config.py │ │ ├── test_config.py │ │ └── validate_config.py │ ├── trajectory/ │ │ └── parser.py │ ├── ufo.py │ └── utils/ │ └── __init__.py └── vectordb/ └── demonstration/ └── example.yaml