android-midscene-automation 0.2.3 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -1
- package/README.md +63 -1
- package/artemis-main/.dockerignore +15 -0
- package/artemis-main/.env.example +34 -0
- package/artemis-main/CONTRIBUTING.md +35 -0
- package/artemis-main/Dockerfile +68 -0
- package/artemis-main/LICENSE +202 -0
- package/artemis-main/Makefile +115 -0
- package/artemis-main/README.md +322 -0
- package/artemis-main/README_CN.md +320 -0
- package/artemis-main/apps/__init__.py +15 -0
- package/artemis-main/apps/admin_console/__init__.py +19 -0
- package/artemis-main/apps/admin_console/core/__init__.py +13 -0
- package/artemis-main/apps/admin_console/core/config.py +43 -0
- package/artemis-main/apps/admin_console/core/security.py +178 -0
- package/artemis-main/apps/admin_console/core/state.py +243 -0
- package/artemis-main/apps/admin_console/database/__init__.py +13 -0
- package/artemis-main/apps/admin_console/database/connection.py +60 -0
- package/artemis-main/apps/admin_console/database/repositories/__init__.py +13 -0
- package/artemis-main/apps/admin_console/database/repositories/session_repository.py +564 -0
- package/artemis-main/apps/admin_console/database/repositories/step_repository.py +512 -0
- package/artemis-main/apps/admin_console/database/repositories/trace_repository.py +133 -0
- package/artemis-main/apps/admin_console/index.html +3787 -0
- package/artemis-main/apps/admin_console/replay_manager.py +2585 -0
- package/artemis-main/apps/admin_console/routers/__init__.py +13 -0
- package/artemis-main/apps/admin_console/routers/media.py +198 -0
- package/artemis-main/apps/admin_console/routers/replay.py +91 -0
- package/artemis-main/apps/admin_console/routers/sessions.py +239 -0
- package/artemis-main/apps/admin_console/routers/steps.py +109 -0
- package/artemis-main/apps/admin_console/routers/stream.py +56 -0
- package/artemis-main/apps/admin_console/routers/system.py +761 -0
- package/artemis-main/apps/admin_console/routers/tasks.py +517 -0
- package/artemis-main/apps/admin_console/schemas/__init__.py +13 -0
- package/artemis-main/apps/admin_console/schemas/task_schema.py +47 -0
- package/artemis-main/apps/admin_console/server.py +508 -0
- package/artemis-main/apps/admin_console/services/__init__.py +13 -0
- package/artemis-main/apps/admin_console/services/device_stream_service.py +137 -0
- package/artemis-main/apps/admin_console/services/ipc_service.py +262 -0
- package/artemis-main/apps/admin_console/services/media_service.py +623 -0
- package/artemis-main/apps/admin_console/services/model_service.py +148 -0
- package/artemis-main/apps/admin_console/services/task_preset_catalog.py +514 -0
- package/artemis-main/apps/admin_console/services/task_queue_service.py +1719 -0
- package/artemis-main/apps/admin_console/services/worker_process_io.py +144 -0
- package/artemis-main/apps/showcase_ui/README.md +31 -0
- package/artemis-main/apps/showcase_ui/angular.json +132 -0
- package/artemis-main/apps/showcase_ui/package-lock.json +9472 -0
- package/artemis-main/apps/showcase_ui/package.json +39 -0
- package/artemis-main/apps/showcase_ui/proxy.conf.json +23 -0
- package/artemis-main/apps/showcase_ui/public/favicon.ico +0 -0
- package/artemis-main/apps/showcase_ui/public/logo.png +0 -0
- package/artemis-main/apps/showcase_ui/public/logo.svg +56 -0
- package/artemis-main/apps/showcase_ui/src/app/app.component.html +24 -0
- package/artemis-main/apps/showcase_ui/src/app/app.component.scss +49 -0
- package/artemis-main/apps/showcase_ui/src/app/app.component.spec.ts +42 -0
- package/artemis-main/apps/showcase_ui/src/app/app.component.ts +32 -0
- package/artemis-main/apps/showcase_ui/src/app/app.config.ts +29 -0
- package/artemis-main/apps/showcase_ui/src/app/app.routes.ts +27 -0
- package/artemis-main/apps/showcase_ui/src/app/components/agent-stream/agent-stream-startup.spec.ts +108 -0
- package/artemis-main/apps/showcase_ui/src/app/components/agent-stream/agent-stream.component.html +1436 -0
- package/artemis-main/apps/showcase_ui/src/app/components/agent-stream/agent-stream.component.scss +3973 -0
- package/artemis-main/apps/showcase_ui/src/app/components/agent-stream/agent-stream.component.ts +2235 -0
- package/artemis-main/apps/showcase_ui/src/app/components/chat-interface/chat-interface.component.html +380 -0
- package/artemis-main/apps/showcase_ui/src/app/components/chat-interface/chat-interface.component.scss +1171 -0
- package/artemis-main/apps/showcase_ui/src/app/components/chat-interface/chat-interface.component.ts +270 -0
- package/artemis-main/apps/showcase_ui/src/app/components/floating-video-player/floating-video-player.component.html +433 -0
- package/artemis-main/apps/showcase_ui/src/app/components/floating-video-player/floating-video-player.component.scss +987 -0
- package/artemis-main/apps/showcase_ui/src/app/components/floating-video-player/floating-video-player.component.ts +632 -0
- package/artemis-main/apps/showcase_ui/src/app/components/legacy-agent-stream/legacy-agent-stream.component.html +130 -0
- package/artemis-main/apps/showcase_ui/src/app/components/legacy-agent-stream/legacy-agent-stream.component.scss +406 -0
- package/artemis-main/apps/showcase_ui/src/app/components/legacy-agent-stream/legacy-agent-stream.component.ts +74 -0
- package/artemis-main/apps/showcase_ui/src/app/components/nav-switcher/nav-switcher.component.scss +115 -0
- package/artemis-main/apps/showcase_ui/src/app/components/nav-switcher/nav-switcher.component.ts +52 -0
- package/artemis-main/apps/showcase_ui/src/app/core/data/smart-tasks.data.ts +334 -0
- package/artemis-main/apps/showcase_ui/src/app/core/i18n/language.service.spec.ts +55 -0
- package/artemis-main/apps/showcase_ui/src/app/core/i18n/language.service.ts +61 -0
- package/artemis-main/apps/showcase_ui/src/app/core/i18n/translate.pipe.ts +11 -0
- package/artemis-main/apps/showcase_ui/src/app/core/i18n/zh-cn.ts +651 -0
- package/artemis-main/apps/showcase_ui/src/app/core/models/markdown.model.ts +43 -0
- package/artemis-main/apps/showcase_ui/src/app/core/models/pro-tuning.model.spec.ts +47 -0
- package/artemis-main/apps/showcase_ui/src/app/core/models/pro-tuning.model.ts +165 -0
- package/artemis-main/apps/showcase_ui/src/app/core/models/session.model.ts +85 -0
- package/artemis-main/apps/showcase_ui/src/app/core/models/stream.model.ts +246 -0
- package/artemis-main/apps/showcase_ui/src/app/core/models/system.model.ts +118 -0
- package/artemis-main/apps/showcase_ui/src/app/core/services/task-recommendation.service.ts +111 -0
- package/artemis-main/apps/showcase_ui/src/app/pages/home/home.component.html +2130 -0
- package/artemis-main/apps/showcase_ui/src/app/pages/home/home.component.scss +5204 -0
- package/artemis-main/apps/showcase_ui/src/app/pages/home/home.component.ts +1189 -0
- package/artemis-main/apps/showcase_ui/src/app/pages/legacy-workspace/legacy-workspace.component.html +39 -0
- package/artemis-main/apps/showcase_ui/src/app/pages/legacy-workspace/legacy-workspace.component.scss +151 -0
- package/artemis-main/apps/showcase_ui/src/app/pages/legacy-workspace/legacy-workspace.component.ts +58 -0
- package/artemis-main/apps/showcase_ui/src/app/pages/workspace/workspace.component.html +201 -0
- package/artemis-main/apps/showcase_ui/src/app/pages/workspace/workspace.component.scss +886 -0
- package/artemis-main/apps/showcase_ui/src/app/pages/workspace/workspace.component.ts +324 -0
- package/artemis-main/apps/showcase_ui/src/app/services/agent.service.spec.ts +418 -0
- package/artemis-main/apps/showcase_ui/src/app/services/agent.service.ts +2012 -0
- package/artemis-main/apps/showcase_ui/src/app/services/system.service.spec.ts +173 -0
- package/artemis-main/apps/showcase_ui/src/app/services/system.service.ts +620 -0
- package/artemis-main/apps/showcase_ui/src/app/utils/action-formatter.util.spec.ts +513 -0
- package/artemis-main/apps/showcase_ui/src/app/utils/action-formatter.util.ts +1015 -0
- package/artemis-main/apps/showcase_ui/src/app/utils/image-overlay.util.spec.ts +85 -0
- package/artemis-main/apps/showcase_ui/src/app/utils/image-overlay.util.ts +662 -0
- package/artemis-main/apps/showcase_ui/src/app/utils/markdown-parser.util.spec.ts +70 -0
- package/artemis-main/apps/showcase_ui/src/app/utils/markdown-parser.util.ts +383 -0
- package/artemis-main/apps/showcase_ui/src/app/utils/recording-timeline.util.spec.ts +107 -0
- package/artemis-main/apps/showcase_ui/src/app/utils/recording-timeline.util.ts +123 -0
- package/artemis-main/apps/showcase_ui/src/app/utils/run-info.util.spec.ts +92 -0
- package/artemis-main/apps/showcase_ui/src/app/utils/run-info.util.ts +116 -0
- package/artemis-main/apps/showcase_ui/src/app/utils/stream-aggregator.util.spec.ts +640 -0
- package/artemis-main/apps/showcase_ui/src/app/utils/stream-aggregator.util.ts +1021 -0
- package/artemis-main/apps/showcase_ui/src/app/utils/tool-formatter.util.spec.ts +375 -0
- package/artemis-main/apps/showcase_ui/src/app/utils/tool-formatter.util.ts +1419 -0
- package/artemis-main/apps/showcase_ui/src/index.html +37 -0
- package/artemis-main/apps/showcase_ui/src/main.ts +22 -0
- package/artemis-main/apps/showcase_ui/src/styles.scss +60 -0
- package/artemis-main/apps/showcase_ui/tsconfig.app.json +23 -0
- package/artemis-main/apps/showcase_ui/tsconfig.json +27 -0
- package/artemis-main/apps/showcase_ui/tsconfig.spec.json +23 -0
- package/artemis-main/artemis/__init__.py +44 -0
- package/artemis-main/artemis/__main__.py +18 -0
- package/artemis-main/artemis/_legacy_imports.py +94 -0
- package/artemis-main/artemis/_version.py +30 -0
- package/artemis-main/artemis/agents/__init__.py +17 -0
- package/artemis-main/artemis/agents/checker/checker.json +9 -0
- package/artemis-main/artemis/agents/checker/checker.py +859 -0
- package/artemis-main/artemis/agents/diagnoser/diagnoser.json +23 -0
- package/artemis-main/artemis/agents/diagnoser/diagnoser.py +608 -0
- package/artemis-main/artemis/agents/explorer/constants.py +52 -0
- package/artemis-main/artemis/agents/explorer/explorer.json +57 -0
- package/artemis-main/artemis/agents/explorer/explorer.py +473 -0
- package/artemis-main/artemis/agents/explorer/geometry.py +73 -0
- package/artemis-main/artemis/agents/explorer/native_runner.py +878 -0
- package/artemis-main/artemis/agents/explorer/perception_tools.py +632 -0
- package/artemis-main/artemis/agents/explorer/run_setup.py +403 -0
- package/artemis-main/artemis/agents/explorer/screen_index.py +266 -0
- package/artemis-main/artemis/agents/explorer/tiers.py +110 -0
- package/artemis-main/artemis/agents/explorer/tool_declarations.py +394 -0
- package/artemis-main/artemis/agents/explorer/universal_runner.py +317 -0
- package/artemis-main/artemis/agents/flash/context_compressor.py +452 -0
- package/artemis-main/artemis/agents/flash/flash_runner.md +51 -0
- package/artemis-main/artemis/agents/flash/flash_summarizer.md +53 -0
- package/artemis-main/artemis/agents/flash/flash_summarizer_single.md +54 -0
- package/artemis-main/artemis/agents/flash/runner.py +1167 -0
- package/artemis-main/artemis/agents/flash/summarizer.py +511 -0
- package/artemis-main/artemis/agents/history_analyzer/history_analyzer.md +8 -0
- package/artemis-main/artemis/agents/history_analyzer/history_analyzer.py +182 -0
- package/artemis-main/artemis/agents/image_processor/image_processor.md +74 -0
- package/artemis-main/artemis/agents/image_processor/image_processor.py +322 -0
- package/artemis-main/artemis/agents/log_analyzer/log_analyzer.md +15 -0
- package/artemis-main/artemis/agents/log_analyzer/log_analyzer.py +403 -0
- package/artemis-main/artemis/agents/log_analyzer/log_reader_sub_agent.md +8 -0
- package/artemis-main/artemis/agents/log_analyzer/output_analyzer.md +11 -0
- package/artemis-main/artemis/agents/log_analyzer/output_analyzer.py +163 -0
- package/artemis-main/artemis/agents/object_detector/object_detector.json +9 -0
- package/artemis-main/artemis/agents/object_detector/object_detector.py +211 -0
- package/artemis-main/artemis/agents/operator/operator.json +3 -0
- package/artemis-main/artemis/agents/operator/operator.py +1394 -0
- package/artemis-main/artemis/agents/operator/prompts.py +1064 -0
- package/artemis-main/artemis/agents/outputter/outputter.md +36 -0
- package/artemis-main/artemis/agents/outputter/outputter.py +552 -0
- package/artemis-main/artemis/agents/planner/planner.json +32 -0
- package/artemis-main/artemis/agents/planner/planner.py +436 -0
- package/artemis-main/artemis/agents/prompt_assembly.py +79 -0
- package/artemis-main/artemis/agents/summarizer/summarizer.py +190 -0
- package/artemis-main/artemis/agents/validator/action_execution.py +98 -0
- package/artemis-main/artemis/agents/validator/categories.py +33 -0
- package/artemis-main/artemis/agents/validator/execution_loop.py +488 -0
- package/artemis-main/artemis/agents/validator/incidents.py +120 -0
- package/artemis-main/artemis/agents/validator/pixel_safety_net.md +15 -0
- package/artemis-main/artemis/agents/validator/precondition_pixel.py +320 -0
- package/artemis-main/artemis/agents/validator/precondition_xml.py +672 -0
- package/artemis-main/artemis/agents/validator/tool_declarations.py +332 -0
- package/artemis-main/artemis/agents/validator/validator.py +188 -0
- package/artemis-main/artemis/agents/video_analyzer/__init__.py +15 -0
- package/artemis-main/artemis/agents/video_analyzer/audio_native.py +543 -0
- package/artemis-main/artemis/agents/video_analyzer/blackboard.py +821 -0
- package/artemis-main/artemis/agents/video_analyzer/chunk_agentic.py +455 -0
- package/artemis-main/artemis/agents/video_analyzer/chunk_conversation.py +491 -0
- package/artemis-main/artemis/agents/video_analyzer/chunk_native.py +437 -0
- package/artemis-main/artemis/agents/video_analyzer/conflict_resolution.py +137 -0
- package/artemis-main/artemis/agents/video_analyzer/gemini_files.py +162 -0
- package/artemis-main/artemis/agents/video_analyzer/native_coordinator.py +541 -0
- package/artemis-main/artemis/agents/video_analyzer/reliability.py +128 -0
- package/artemis-main/artemis/agents/video_analyzer/universal_engine.py +487 -0
- package/artemis-main/artemis/agents/video_analyzer/universal_tools.py +323 -0
- package/artemis-main/artemis/agents/video_analyzer/video_analyzer.md +51 -0
- package/artemis-main/artemis/agents/video_analyzer/video_analyzer.py +875 -0
- package/artemis-main/artemis/agents/video_analyzer/video_sub_agent.md +15 -0
- package/artemis-main/artemis/agents/video_analyzer/video_sub_agent_audio.md +12 -0
- package/artemis-main/artemis/clients/accessibility_client.py +438 -0
- package/artemis-main/artemis/clients/screen_client_factory.py +403 -0
- package/artemis-main/artemis/config/__init__.py +309 -0
- package/artemis-main/artemis/config/agent.py +1098 -0
- package/artemis-main/artemis/config/constants.py +151 -0
- package/artemis-main/artemis/config/core/__init__.py +24 -0
- package/artemis-main/artemis/config/core/engine.py +118 -0
- package/artemis-main/artemis/config/core/interpolator.py +78 -0
- package/artemis-main/artemis/config/llm.py +267 -0
- package/artemis-main/artemis/config/paths.py +244 -0
- package/artemis-main/artemis/config/runtime.py +197 -0
- package/artemis-main/artemis/config/settings.py +315 -0
- package/artemis-main/artemis/constants.py +47 -0
- package/artemis-main/artemis/context.py +289 -0
- package/artemis-main/artemis/controllers/__init__.py +41 -0
- package/artemis-main/artemis/controllers/controller_factory.py +41 -0
- package/artemis-main/artemis/controllers/device_controller.py +29 -0
- package/artemis-main/artemis/controllers/types.py +37 -0
- package/artemis-main/artemis/controllers/unified_controller.py +649 -0
- package/artemis-main/artemis/core/__init__.py +21 -0
- package/artemis-main/artemis/core/diagnostics/__init__.py +90 -0
- package/artemis-main/artemis/core/diagnostics/adb_keys.py +270 -0
- package/artemis-main/artemis/core/diagnostics/adb_server_connection.py +330 -0
- package/artemis-main/artemis/core/diagnostics/device_smoke.py +364 -0
- package/artemis-main/artemis/core/diagnostics/emulator_manager.py +501 -0
- package/artemis-main/artemis/core/diagnostics/engine.py +438 -0
- package/artemis-main/artemis/core/diagnostics/hierarchy_parity.py +216 -0
- package/artemis-main/artemis/core/diagnostics/probes/adb_probe.py +887 -0
- package/artemis-main/artemis/core/diagnostics/probes/base.py +45 -0
- package/artemis-main/artemis/core/diagnostics/probes/credentials_probe.py +296 -0
- package/artemis-main/artemis/core/diagnostics/probes/host_probe.py +427 -0
- package/artemis-main/artemis/core/diagnostics/probes/runtime_probe.py +169 -0
- package/artemis-main/artemis/core/diagnostics/probes/toolchain_probe.py +139 -0
- package/artemis-main/artemis/core/diagnostics/readiness.py +83 -0
- package/artemis-main/artemis/core/diagnostics/schema.py +118 -0
- package/artemis-main/artemis/core/tool_declaration.py +43 -0
- package/artemis-main/artemis/core/tool_failure.py +56 -0
- package/artemis-main/artemis/data_engine/context_vars.py +24 -0
- package/artemis-main/artemis/data_engine/engine.py +1615 -0
- package/artemis-main/artemis/data_engine/history_reader.py +142 -0
- package/artemis-main/artemis/data_engine/models.py +131 -0
- package/artemis-main/artemis/data_engine/storage.py +1245 -0
- package/artemis-main/artemis/data_engine/trace.py +727 -0
- package/artemis-main/artemis/drivers/__init__.py +48 -0
- package/artemis-main/artemis/drivers/android/adb_driver.py +507 -0
- package/artemis-main/artemis/drivers/android/hierarchy.py +64 -0
- package/artemis-main/artemis/drivers/android/input_ime.py +120 -0
- package/artemis-main/artemis/drivers/android/recorder.py +57 -0
- package/artemis-main/artemis/drivers/base.py +290 -0
- package/artemis-main/artemis/drivers/cloud/cloud_driver.py +117 -0
- package/artemis-main/artemis/drivers/factory.py +80 -0
- package/artemis-main/artemis/drivers/mock/mock_driver.py +198 -0
- package/artemis-main/artemis/drivers/types.py +67 -0
- package/artemis-main/artemis/graph/checkpoints.py +1243 -0
- package/artemis-main/artemis/graph/graph.py +1055 -0
- package/artemis-main/artemis/graph/perception.py +234 -0
- package/artemis-main/artemis/graph/state.py +151 -0
- package/artemis-main/artemis/graph/visibility.py +238 -0
- package/artemis-main/artemis/interfaces/cli/__init__.py +19 -0
- package/artemis-main/artemis/interfaces/cli/commands/__init__.py +15 -0
- package/artemis-main/artemis/interfaces/cli/commands/batch.py +278 -0
- package/artemis-main/artemis/interfaces/cli/commands/doctor.py +468 -0
- package/artemis-main/artemis/interfaces/cli/commands/helper.py +226 -0
- package/artemis-main/artemis/interfaces/cli/commands/init.py +193 -0
- package/artemis-main/artemis/interfaces/cli/commands/mcp.py +862 -0
- package/artemis-main/artemis/interfaces/cli/commands/run.py +463 -0
- package/artemis-main/artemis/interfaces/cli/commands/server.py +151 -0
- package/artemis-main/artemis/interfaces/cli/commands/server_lifecycle.py +328 -0
- package/artemis-main/artemis/interfaces/cli/commands/trace.py +111 -0
- package/artemis-main/artemis/interfaces/cli/commands/ui.py +404 -0
- package/artemis-main/artemis/interfaces/cli/main.py +109 -0
- package/artemis-main/artemis/interfaces/sdk/__init__.py +31 -0
- package/artemis-main/artemis/interfaces/sdk/client.py +19 -0
- package/artemis-main/artemis/interfaces/sdk/task.py +72 -0
- package/artemis-main/artemis/llm/__init__.py +25 -0
- package/artemis-main/artemis/llm/fake_model.py +179 -0
- package/artemis-main/artemis/llm/google/__init__.py +57 -0
- package/artemis-main/artemis/llm/google/provider.py +185 -0
- package/artemis-main/artemis/llm/google/usage.py +148 -0
- package/artemis-main/artemis/llm/parser.py +32 -0
- package/artemis-main/artemis/llm/reliability.py +267 -0
- package/artemis-main/artemis/llm/router.py +389 -0
- package/artemis-main/artemis/llm/schemas.py +36 -0
- package/artemis-main/artemis/llm/structured.py +196 -0
- package/artemis-main/artemis/main.py +58 -0
- package/artemis-main/artemis/mcp/__init__.py +20 -0
- package/artemis-main/artemis/mcp/action_executor.py +760 -0
- package/artemis-main/artemis/mcp/action_manifest.py +320 -0
- package/artemis-main/artemis/mcp/action_names.py +172 -0
- package/artemis-main/artemis/mcp/action_server.py +202 -0
- package/artemis-main/artemis/mcp/action_session.py +245 -0
- package/artemis-main/artemis/mcp/action_specs.py +868 -0
- package/artemis-main/artemis/mcp/action_types.py +86 -0
- package/artemis-main/artemis/mcp/actuators/__init__.py +21 -0
- package/artemis-main/artemis/mcp/actuators/adb.py +414 -0
- package/artemis-main/artemis/mcp/actuators/base.py +113 -0
- package/artemis-main/artemis/mcp/actuators/mock.py +70 -0
- package/artemis-main/artemis/mcp/adb_server.py +490 -0
- package/artemis-main/artemis/mcp/observation.py +133 -0
- package/artemis-main/artemis/mcp/xml_search_server.py +297 -0
- package/artemis-main/artemis/memory/__init__.py +90 -0
- package/artemis-main/artemis/memory/chunking.py +1843 -0
- package/artemis-main/artemis/memory/context_policy.py +226 -0
- package/artemis-main/artemis/memory/step_capsule.md +73 -0
- package/artemis-main/artemis/memory/step_memory.py +281 -0
- package/artemis-main/artemis/memory/transcript.py +798 -0
- package/artemis-main/artemis/platform/__init__.py +61 -0
- package/artemis-main/artemis/platform/base.py +104 -0
- package/artemis-main/artemis/platform/darwin.py +184 -0
- package/artemis-main/artemis/platform/linux.py +207 -0
- package/artemis-main/artemis/platform/windows.py +193 -0
- package/artemis-main/artemis/resources/__init__.py +46 -0
- package/artemis-main/artemis/runtime/__init__.py +108 -0
- package/artemis-main/artemis/runtime/adb_endpoint.py +173 -0
- package/artemis-main/artemis/runtime/awake_lease.py +283 -0
- package/artemis-main/artemis/runtime/awake_service.py +343 -0
- package/artemis-main/artemis/runtime/cancel_requests.py +254 -0
- package/artemis-main/artemis/runtime/daemon_client.py +422 -0
- package/artemis-main/artemis/runtime/device_lock.py +1013 -0
- package/artemis-main/artemis/runtime/device_pool.py +478 -0
- package/artemis-main/artemis/runtime/helper_manager.py +1030 -0
- package/artemis-main/artemis/runtime/process_probe.py +98 -0
- package/artemis-main/artemis/runtime/server_lifecycle.py +435 -0
- package/artemis-main/artemis/runtime/supervisor.py +121 -0
- package/artemis-main/artemis/runtime/trace_store.py +375 -0
- package/artemis-main/artemis/sdk/__init__.py +26 -0
- package/artemis-main/artemis/sdk/agent.py +485 -0
- package/artemis-main/artemis/sdk/builders/__init__.py +29 -0
- package/artemis-main/artemis/sdk/builders/agent_config_builder.py +474 -0
- package/artemis-main/artemis/sdk/constants.py +15 -0
- package/artemis-main/artemis/sdk/run_outcome.py +58 -0
- package/artemis-main/artemis/sdk/types/__init__.py +61 -0
- package/artemis-main/artemis/sdk/types/agent.py +89 -0
- package/artemis-main/artemis/sdk/utils.py +28 -0
- package/artemis-main/artemis/services/llm.py +1040 -0
- package/artemis-main/artemis/services/token_meter.py +267 -0
- package/artemis-main/artemis/telemetry/__init__.py +35 -0
- package/artemis-main/artemis/telemetry/models.py +64 -0
- package/artemis-main/artemis/telemetry/replay.py +34 -0
- package/artemis-main/artemis/telemetry/storage/json_storage.py +47 -0
- package/artemis-main/artemis/telemetry/tracer.py +85 -0
- package/artemis-main/artemis/toolchain/__init__.py +52 -0
- package/artemis-main/artemis/toolchain/descriptors.py +92 -0
- package/artemis-main/artemis/toolchain/resolver.py +185 -0
- package/artemis-main/artemis/tools/base.py +232 -0
- package/artemis-main/artemis/tools/command_tool.py +1240 -0
- package/artemis-main/artemis/tools/committee_prompts.json +5 -0
- package/artemis-main/artemis/tools/committee_tool.py +422 -0
- package/artemis-main/artemis/tools/diagnoser_submit_answer_tool.py +87 -0
- package/artemis-main/artemis/tools/diagnostic_tool.py +120 -0
- package/artemis-main/artemis/tools/explorer_tool.py +581 -0
- package/artemis-main/artemis/tools/history/__init__.py +398 -0
- package/artemis-main/artemis/tools/history/replay.py +120 -0
- package/artemis-main/artemis/tools/history/screenshot.py +139 -0
- package/artemis-main/artemis/tools/history/search.py +563 -0
- package/artemis-main/artemis/tools/image_processor_tool.py +124 -0
- package/artemis-main/artemis/tools/index.py +47 -0
- package/artemis-main/artemis/tools/log_tool.py +108 -0
- package/artemis-main/artemis/tools/mobile/launch_app.py +132 -0
- package/artemis-main/artemis/tools/mobile/log_utils.py +138 -0
- package/artemis-main/artemis/tools/mobile/ocr.py +202 -0
- package/artemis-main/artemis/tools/mobile/read_hierarchy.py +108 -0
- package/artemis-main/artemis/tools/mobile/read_logs.py +116 -0
- package/artemis-main/artemis/tools/mobile/search_logs.py +260 -0
- package/artemis-main/artemis/tools/object_detection_tool.py +244 -0
- package/artemis-main/artemis/tools/scratchpad.py +819 -0
- package/artemis-main/artemis/tools/system/adb_shell.py +31 -0
- package/artemis-main/artemis/tools/tool_wrapper.py +270 -0
- package/artemis-main/artemis/tools/video_tool.py +261 -0
- package/artemis-main/artemis/tools/wait_tool.py +97 -0
- package/artemis-main/artemis/utils/app_launch_utils.py +207 -0
- package/artemis-main/artemis/utils/coordinates.py +606 -0
- package/artemis-main/artemis/utils/credentials_validator.py +201 -0
- package/artemis-main/artemis/utils/cv_canvas.py +189 -0
- package/artemis-main/artemis/utils/cython_compat.py +45 -0
- package/artemis-main/artemis/utils/element_hit_test.py +80 -0
- package/artemis-main/artemis/utils/image_diff.py +335 -0
- package/artemis-main/artemis/utils/image_hash.py +80 -0
- package/artemis-main/artemis/utils/notes.py +470 -0
- package/artemis-main/artemis/utils/ocr_api.py +105 -0
- package/artemis-main/artemis/utils/ocr_xml_fusion.py +318 -0
- package/artemis-main/artemis/utils/plan_grammar.py +513 -0
- package/artemis-main/artemis/utils/python_executor.py +213 -0
- package/artemis-main/artemis/utils/startup_progress.py +60 -0
- package/artemis-main/artemis/utils/task_tree.py +1174 -0
- package/artemis-main/artemis/utils/text.py +37 -0
- package/artemis-main/artemis/utils/ui_filter.py +651 -0
- package/artemis-main/artemis/utils/video.py +685 -0
- package/artemis-main/artemis/utils/visualization.py +802 -0
- package/artemis-main/config/artemis.example.jsonc +12 -0
- package/artemis-main/mcp_server/README.md +111 -0
- package/artemis-main/mcp_server/__init__.py +21 -0
- package/artemis-main/mcp_server/__main__.py +20 -0
- package/artemis-main/mcp_server/background/__init__.py +15 -0
- package/artemis-main/mcp_server/background/task_runner.py +453 -0
- package/artemis-main/mcp_server/base.py +49 -0
- package/artemis-main/mcp_server/notifiers/__init__.py +74 -0
- package/artemis-main/mcp_server/notifiers/agentapi.py +289 -0
- package/artemis-main/mcp_server/notifiers/base.py +45 -0
- package/artemis-main/mcp_server/notifiers/composite.py +87 -0
- package/artemis-main/mcp_server/notifiers/desktop.py +108 -0
- package/artemis-main/mcp_server/notifiers/file.py +69 -0
- package/artemis-main/mcp_server/notifiers/script.py +90 -0
- package/artemis-main/mcp_server/notifiers/webhook.py +87 -0
- package/artemis-main/mcp_server/rules.md +68 -0
- package/artemis-main/mcp_server/server.py +106 -0
- package/artemis-main/mcp_server/tools/__init__.py +29 -0
- package/artemis-main/mcp_server/tools/device_state.py +107 -0
- package/artemis-main/mcp_server/tools/diagnose.py +1249 -0
- package/artemis-main/mcp_server/tools/inspect_trace.py +394 -0
- package/artemis-main/mcp_server/tools/task_manager.py +627 -0
- package/artemis-main/mcp_server/tools/task_runner.py +548 -0
- package/artemis-main/mcp_server/utils/__init__.py +15 -0
- package/artemis-main/mcp_server/utils/device_utils.py +180 -0
- package/artemis-main/mcp_server/utils/env_utils.py +65 -0
- package/artemis-main/packages/artemis-accessibility-helper/ArtemisAccessibilityHelper.apk +0 -0
- package/artemis-main/packages/artemis-accessibility-helper/app/build.gradle.kts +35 -0
- package/artemis-main/packages/artemis-accessibility-helper/app/src/main/AndroidManifest.xml +49 -0
- package/artemis-main/packages/artemis-accessibility-helper/app/src/main/java/com/artemis/helper/A11yNode.java +274 -0
- package/artemis-main/packages/artemis-accessibility-helper/app/src/main/java/com/artemis/helper/ArtemisAccessibilityService.java +227 -0
- package/artemis-main/packages/artemis-accessibility-helper/app/src/main/java/com/artemis/helper/CommandServer.java +463 -0
- package/artemis-main/packages/artemis-accessibility-helper/app/src/main/java/com/artemis/helper/DisplayUtils.java +111 -0
- package/artemis-main/packages/artemis-accessibility-helper/app/src/main/java/com/artemis/helper/GestureController.java +232 -0
- package/artemis-main/packages/artemis-accessibility-helper/app/src/main/java/com/artemis/helper/HierarchyDumper.java +832 -0
- package/artemis-main/packages/artemis-accessibility-helper/app/src/main/java/com/artemis/helper/TokenReceiver.java +36 -0
- package/artemis-main/packages/artemis-accessibility-helper/app/src/main/java/com/artemis/helper/TokenStore.java +38 -0
- package/artemis-main/packages/artemis-accessibility-helper/app/src/main/java/com/artemis/helper/XmlUtils.java +102 -0
- package/artemis-main/packages/artemis-accessibility-helper/app/src/main/res/values/strings.xml +4 -0
- package/artemis-main/packages/artemis-accessibility-helper/app/src/main/res/xml/accessibility_service_config.xml +10 -0
- package/artemis-main/packages/artemis-accessibility-helper/build.gradle.kts +3 -0
- package/artemis-main/packages/artemis-accessibility-helper/build_apk.sh +215 -0
- package/artemis-main/packages/artemis-accessibility-helper/debug.keystore +0 -0
- package/artemis-main/packages/artemis-accessibility-helper/gradle.properties +2 -0
- package/artemis-main/packages/artemis-accessibility-helper/helper_manifest.json +7 -0
- package/artemis-main/packages/artemis-accessibility-helper/settings.gradle.kts +17 -0
- package/artemis-main/packages/artemis-client/DESIGN.md +89 -0
- package/artemis-main/packages/artemis-client/README.md +112 -0
- package/artemis-main/packages/artemis-client/examples/basic.py +30 -0
- package/artemis-main/packages/artemis-client/pyproject.toml +36 -0
- package/artemis-main/packages/artemis-client/src/artemis_client/__init__.py +45 -0
- package/artemis-main/packages/artemis-client/src/artemis_client/client.py +401 -0
- package/artemis-main/packages/artemis-client/src/artemis_client/errors.py +66 -0
- package/artemis-main/packages/artemis-client/src/artemis_client/models.py +212 -0
- package/artemis-main/packages/artemis-client/src/artemis_client/py.typed +1 -0
- package/artemis-main/packages/artemis-client/src/artemis_client/transport.py +134 -0
- package/artemis-main/packages/artemis-client/tests/test_client.py +289 -0
- package/artemis-main/packages/artemis-client/tests/test_transport.py +85 -0
- package/artemis-main/pyproject.toml +259 -0
- package/artemis-main/pyright-core.json +17 -0
- package/artemis-main/scripts/check_dependency_sources.py +68 -0
- package/artemis-main/scripts/install_deps.ps1 +520 -0
- package/artemis-main/scripts/install_deps.sh +533 -0
- package/artemis-main/scripts/quality_ratchet.py +97 -0
- package/artemis-main/scripts/real_device_video_acceptance.py +483 -0
- package/artemis-main/scripts/run_edge_case_part.py +327 -0
- package/artemis-main/scripts/run_ui.py +242 -0
- package/artemis-main/scripts/start.ps1 +500 -0
- package/artemis-main/scripts/test_all_edge_cases.py +269 -0
- package/artemis-main/scripts/verify_concurrency_and_devices.py +385 -0
- package/artemis-main/setup.py +164 -0
- package/artemis-main/start.bat +35 -0
- package/artemis-main/start.sh +423 -0
- package/artemis-main/third_party/mobile_use/LICENSE +190 -0
- package/artemis-main/third_party/mobile_use/METADATA +27 -0
- package/artemis-main/third_party/mobile_use/NOTICE +12 -0
- package/artemis-main/third_party/mobile_use/__init__.py +19 -0
- package/artemis-main/third_party/mobile_use/agents/__init__.py +13 -0
- package/artemis-main/third_party/mobile_use/agents/hopper/__init__.py +13 -0
- package/artemis-main/third_party/mobile_use/agents/hopper/hopper.md +22 -0
- package/artemis-main/third_party/mobile_use/agents/hopper/hopper.py +80 -0
- package/artemis-main/third_party/mobile_use/clients/__init__.py +13 -0
- package/artemis-main/third_party/mobile_use/clients/ui_automator_client.py +482 -0
- package/artemis-main/third_party/mobile_use/config/__init__.py +13 -0
- package/artemis-main/third_party/mobile_use/config/llm.py +183 -0
- package/artemis-main/third_party/mobile_use/config/output.py +184 -0
- package/artemis-main/third_party/mobile_use/context.py +119 -0
- package/artemis-main/third_party/mobile_use/controllers/__init__.py +13 -0
- package/artemis-main/third_party/mobile_use/controllers/platform_specific_commands_controller.py +151 -0
- package/artemis-main/third_party/mobile_use/controllers/types.py +92 -0
- package/artemis-main/third_party/mobile_use/controllers/unified_controller.py +183 -0
- package/artemis-main/third_party/mobile_use/graph.py +54 -0
- package/artemis-main/third_party/mobile_use/llm_service.py +193 -0
- package/artemis-main/third_party/mobile_use/main.py +130 -0
- package/artemis-main/third_party/mobile_use/sdk/__init__.py +13 -0
- package/artemis-main/third_party/mobile_use/sdk/agent.py +1060 -0
- package/artemis-main/third_party/mobile_use/sdk/builders/__init__.py +13 -0
- package/artemis-main/third_party/mobile_use/sdk/builders/agent_config_builder.py +225 -0
- package/artemis-main/third_party/mobile_use/sdk/builders/index.py +33 -0
- package/artemis-main/third_party/mobile_use/sdk/builders/task_request_builder.py +243 -0
- package/artemis-main/third_party/mobile_use/sdk/types/__init__.py +13 -0
- package/artemis-main/third_party/mobile_use/sdk/types/agent.py +98 -0
- package/artemis-main/third_party/mobile_use/sdk/types/exceptions.py +109 -0
- package/artemis-main/third_party/mobile_use/sdk/types/task.py +234 -0
- package/artemis-main/third_party/mobile_use/testing.py +59 -0
- package/artemis-main/third_party/mobile_use/tools/__init__.py +13 -0
- package/artemis-main/third_party/mobile_use/tools/index.py +44 -0
- package/artemis-main/third_party/mobile_use/tools/mobile/__init__.py +13 -0
- package/artemis-main/third_party/mobile_use/tools/mobile/launch_app.py +89 -0
- package/artemis-main/third_party/mobile_use/tools/tool_wrapper.py +52 -0
- package/artemis-main/third_party/mobile_use/utils/__init__.py +13 -0
- package/artemis-main/third_party/mobile_use/utils/app_launch_utils.py +217 -0
- package/artemis-main/third_party/mobile_use/utils/cli_helpers.py +60 -0
- package/artemis-main/third_party/mobile_use/utils/decorators.py +158 -0
- package/artemis-main/third_party/mobile_use/utils/file.py +31 -0
- package/artemis-main/third_party/mobile_use/utils/logger.py +216 -0
- package/artemis-main/third_party/mobile_use/utils/media.py +213 -0
- package/artemis-main/third_party/mobile_use/utils/shell_utils.py +39 -0
- package/artemis-main/third_party/mobile_use/utils/video.py +398 -0
- package/artemis-main/uv.lock +4908 -0
- package/bin/android-midscene-automation.js +1 -5
- package/bin/artemis-config.mjs +15 -0
- package/bin/artemis-embedded.py +56 -0
- package/bin/start-artemis.mjs +30 -0
- package/bin/start-dev.mjs +112 -0
- package/bin/test_artemis_embedded.py +44 -0
- package/package.json +10 -8
- package/server/artemis.ts +34 -0
- package/server/http-api.ts +13 -1
- package/src/App.vue +72 -23
- package/src/api.ts +5 -0
- package/src/appium-recorder/AppiumPage.vue +1 -1
- package/src/appium-recorder/components/ComponentInspector.vue +1 -1
- package/src/appium-recorder/components/FlowNodeSearch.vue +3 -3
- package/src/appium-recorder/components/ImageCheckDialog.vue +3 -3
- package/src/appium-recorder/components/RecorderWorkspace.vue +4 -4
- package/src/appium-recorder/flow-appearance.ts +4 -4
- package/src/components/AppSidebar.vue +8 -7
- package/src/components/MidsceneMaintenanceNotice.vue +17 -0
- package/src/components/analytics/AnalysisCharts.vue +4 -4
- package/src/components/analytics/ReportAnalysis.vue +1 -1
- package/src/components/generator/TestCaseFileUpload.vue +1 -1
- package/src/components/help/HelpCenter.vue +56 -37
- package/src/pages/AiGeneratorPage.vue +1 -1
- package/src/pages/ArtemisPage.vue +72 -0
- package/src/pages/ConfigPage.vue +18 -19
- package/src/style.css +369 -186
- package/src/types.ts +1 -1
|
@@ -0,0 +1,651 @@
|
|
|
1
|
+
// Central UI dictionary. Unrecognized server messages retain their original text.
|
|
2
|
+
export const ZH_CN: Readonly<Record<string, string>> = {
|
|
3
|
+
"Refresh Configuration": "刷新配置",
|
|
4
|
+
"Invalid model environment configuration.": "模型环境配置无效,请检查 .env。",
|
|
5
|
+
"Refreshing Configuration...": "正在刷新配置…",
|
|
6
|
+
"Reload and validate JSONC and model settings from .env": "重新读取并校验 JSONC 和 .env 中的模型配置",
|
|
7
|
+
"Configuration refreshed and validated. Model credentials and endpoint settings have been reloaded; no API request was made.": "配置已刷新并校验,已重新加载模型密钥和接口地址;未发起模型 API 请求。",
|
|
8
|
+
"Failed to read configuration files.": "无法读取配置文件,请检查文件是否存在及读取权限。",
|
|
9
|
+
"Invalid OPENAI_BASE_URL. Use an HTTP or HTTPS URL.": "OPENAI_BASE_URL 无效,请填写 HTTP 或 HTTPS 地址。",
|
|
10
|
+
"Copy failed. Please select the text and copy it manually.": "复制失败,请选中文字后手动复制。",
|
|
11
|
+
"Task Queue": "任务队列",
|
|
12
|
+
"Notes & Plans": "笔记与计划",
|
|
13
|
+
"No active or queued tasks": "暂无运行中或排队中的任务",
|
|
14
|
+
"Stop this task": "停止此任务",
|
|
15
|
+
"Delete this task": "删除此任务",
|
|
16
|
+
"No past task history": "暂无历史任务",
|
|
17
|
+
"No notes available for this session.": "此会话暂无笔记。",
|
|
18
|
+
"Architecture:": "架构:",
|
|
19
|
+
"Run info": "运行信息",
|
|
20
|
+
"Elapsed": "耗时",
|
|
21
|
+
"Tokens": "token",
|
|
22
|
+
"Context": "上下文",
|
|
23
|
+
"Result check": "结果验证",
|
|
24
|
+
"Screen reading": "屏幕识别",
|
|
25
|
+
"No extra settings for Flash.": "Flash 无额外设置。",
|
|
26
|
+
"Recording...": "正在录制…",
|
|
27
|
+
"Preparing...": "正在准备…",
|
|
28
|
+
"Play Recording": "播放录像",
|
|
29
|
+
"Step Replay": "逐步回放",
|
|
30
|
+
"Recording Failed": "录制失败",
|
|
31
|
+
"Screen Recording": "屏幕录像",
|
|
32
|
+
"Loading run history...": "正在加载运行历史…",
|
|
33
|
+
"No Stream Activity Selected": "尚未选择任务",
|
|
34
|
+
"Please select a session from the Task List on the right to view its real-time log payloads.": "请从右侧任务列表选择一个会话,查看实时运行日志。",
|
|
35
|
+
"Task startup progress": "任务启动进度",
|
|
36
|
+
"Work": "执行",
|
|
37
|
+
"Thought": "思考",
|
|
38
|
+
"Summary:": "摘要:",
|
|
39
|
+
"Report & Findings": "报告与发现",
|
|
40
|
+
"Final Verified State": "最终验证状态",
|
|
41
|
+
"Final Screen Screenshot": "最终屏幕截图",
|
|
42
|
+
"Post Verification": "执行后验证",
|
|
43
|
+
"Post Screenshot": "执行后截图",
|
|
44
|
+
"Failed": "失败",
|
|
45
|
+
"Target:": "目标:",
|
|
46
|
+
"Coordinates:": "坐标:",
|
|
47
|
+
"Target": "目标",
|
|
48
|
+
"Coordinates": "坐标",
|
|
49
|
+
"Target Bounds": "目标边界",
|
|
50
|
+
"Target Class": "目标类型",
|
|
51
|
+
"Action": "操作",
|
|
52
|
+
"Pre-Action (Before)": "操作前",
|
|
53
|
+
"Pre-Action Screenshot": "操作前截图",
|
|
54
|
+
"Post-Action (After)": "操作后",
|
|
55
|
+
"Post-Action Screenshot": "操作后截图",
|
|
56
|
+
"LLM temporarily unavailable": "模型暂时不可用",
|
|
57
|
+
"Frequent retries may indicate a low API rate limit. Consider increasing the limit or reducing request concurrency.": "频繁重试可能是 API 速率限制较低所致。请提高限额或减少并发请求。",
|
|
58
|
+
"LLM Request Failed": "模型请求失败",
|
|
59
|
+
"Paused": "已暂停",
|
|
60
|
+
"What happened:": "发生了什么:",
|
|
61
|
+
"The AI request could not be completed after automatic retries.": "自动重试后,AI 请求仍未能完成。",
|
|
62
|
+
"Failure reason:": "失败原因:",
|
|
63
|
+
"Waited:": "已等待:",
|
|
64
|
+
"Retry details": "重试详情",
|
|
65
|
+
"Continue the paused task": "继续已暂停的任务",
|
|
66
|
+
"Continue task": "继续任务",
|
|
67
|
+
"Task paused · no steps are running": "任务已暂停 · 当前没有执行任何步骤",
|
|
68
|
+
"Click to view note content": "点击查看笔记内容",
|
|
69
|
+
"Command:": "命令:",
|
|
70
|
+
"Cwd:": "工作目录:",
|
|
71
|
+
"Terminal ID:": "终端 ID:",
|
|
72
|
+
"Analysis:": "分析:",
|
|
73
|
+
"Details:": "详情:",
|
|
74
|
+
"Command": "命令",
|
|
75
|
+
"Working Directory": "工作目录",
|
|
76
|
+
"Terminal ID": "终端 ID",
|
|
77
|
+
"Analysis": "分析",
|
|
78
|
+
"Details": "详情",
|
|
79
|
+
"Task Report": "任务报告",
|
|
80
|
+
"View in Notes": "在笔记中查看",
|
|
81
|
+
"finding": "发现",
|
|
82
|
+
"Close image preview": "关闭图片预览",
|
|
83
|
+
"Zoomed Screenshot": "放大的截图",
|
|
84
|
+
"Clear all tasks and history": "清空所有任务与历史记录",
|
|
85
|
+
"No active or queued tasks.": "暂无运行中或排队中的任务。",
|
|
86
|
+
"No past tasks.": "暂无历史任务。",
|
|
87
|
+
"No Notes & Plans": "暂无笔记与计划",
|
|
88
|
+
"No notes or structured plans were recorded for this session.": "此会话未记录笔记或结构化计划。",
|
|
89
|
+
"Video Recording": "视频录像",
|
|
90
|
+
"Video": "视频",
|
|
91
|
+
"Step Screenshot Replay": "步骤截图回放",
|
|
92
|
+
"Steps": "步骤",
|
|
93
|
+
"Minimize": "最小化",
|
|
94
|
+
"Theater": "剧场模式",
|
|
95
|
+
"Close": "关闭",
|
|
96
|
+
"Live Device Screen": "设备实时画面",
|
|
97
|
+
"LIVE": "实时",
|
|
98
|
+
"Refresh Live Stream": "刷新实时画面",
|
|
99
|
+
"Device Stream Connecting": "正在连接设备画面",
|
|
100
|
+
"Waiting for ADB device screen stream...": "正在等待 ADB 设备画面…",
|
|
101
|
+
"Reconnect": "重新连接",
|
|
102
|
+
"Screen recording unavailable. Replaying step-by-step screenshots.": "屏幕录像不可用,正在逐步回放截图。",
|
|
103
|
+
"Loading screenshot...": "正在加载截图…",
|
|
104
|
+
"Screenshot preview unavailable for this step": "此步骤的截图预览不可用",
|
|
105
|
+
"Click to view image in new tab": "点击在新标签页查看图片",
|
|
106
|
+
"View screen before action (with touch coordinates)": "查看操作前屏幕(含点击坐标)",
|
|
107
|
+
"Pre": "操作前",
|
|
108
|
+
"View resulting screen after action executed": "查看操作执行后的屏幕",
|
|
109
|
+
"Post": "操作后",
|
|
110
|
+
"Previous Step": "上一步",
|
|
111
|
+
"Next Step": "下一步",
|
|
112
|
+
"Replay from start": "从头回放",
|
|
113
|
+
"Open image in new tab": "在新标签页打开图片",
|
|
114
|
+
"Open video in new tab": "在新标签页打开视频",
|
|
115
|
+
"Retry": "重试",
|
|
116
|
+
"👣 Real-time Agent Stream (Legacy Card View)": "👣 智能体实时活动(旧版卡片视图)",
|
|
117
|
+
"Select a session to monitor raw agent activity": "选择会话以查看智能体原始活动",
|
|
118
|
+
"Active Session:": "当前会话:",
|
|
119
|
+
"-- Select a Session --": "-- 请选择会话 --",
|
|
120
|
+
"🔄 Refresh": "🔄 刷新",
|
|
121
|
+
"Please select a running session from the dropdown above to view real-time log payloads.": "请从上方下拉框选择正在运行的会话,查看实时日志。",
|
|
122
|
+
"💬 Message to User / Summary:": "💬 用户消息 / 摘要:",
|
|
123
|
+
"🧠 Model Thinking Process (Click to expand)": "🧠 模型思考过程(点击展开)",
|
|
124
|
+
"📝 Raw Plan / Thoughts (Click to expand)": "📝 原始计划 / 思路(点击展开)",
|
|
125
|
+
"🛠️ Tool Call Details (Click to expand)": "🛠️ 工具调用详情(点击展开)",
|
|
126
|
+
"✓ Execution Result (Click to expand)": "✓ 执行结果(点击展开)",
|
|
127
|
+
"📄 Raw Payload Data (Click to expand)": "📄 原始数据(点击展开)",
|
|
128
|
+
"Main Navigation": "主导航",
|
|
129
|
+
"Return to Home Launcher to start a new task": "返回首页并开始新任务",
|
|
130
|
+
"New / Home": "新建 / 首页",
|
|
131
|
+
"Open Workspace": "打开工作区",
|
|
132
|
+
"Workspace": "工作区",
|
|
133
|
+
"What would you like to do on your phone?": "你想在手机上做什么?",
|
|
134
|
+
"System Setup & Prerequisites": "系统设置与运行准备",
|
|
135
|
+
"Launch Autonomous Task": "启动自动化任务",
|
|
136
|
+
"System & Environment": "系统与环境",
|
|
137
|
+
"Core tools, Android debug bridge, and video recording runtime": "核心工具、Android 调试桥及视频录制环境",
|
|
138
|
+
"Re-check all system dependencies": "重新检查所有系统依赖",
|
|
139
|
+
"Automated Dependency Setup": "自动安装依赖",
|
|
140
|
+
"Linux": "Linux",
|
|
141
|
+
"macOS": "macOS",
|
|
142
|
+
"Windows": "Windows",
|
|
143
|
+
"Run in terminal to install ADB, FFmpeg, scrcpy, and project dependencies:": "在终端运行以下命令,安装 ADB、FFmpeg、scrcpy 和项目依赖:",
|
|
144
|
+
"Python Runtime": "Python 运行环境",
|
|
145
|
+
"Android Platform-Tools": "Android 平台工具",
|
|
146
|
+
"System Configuration": "系统配置",
|
|
147
|
+
"Video Toolchain": "视频工具链",
|
|
148
|
+
"AI Model Setup": "AI 模型设置",
|
|
149
|
+
"Google Gemini or custom LLM providers (OpenAI, Claude, Ollama)": "Google Gemini 或自定义模型服务(OpenAI、Claude、Ollama)",
|
|
150
|
+
"Google Gemini": "Google Gemini",
|
|
151
|
+
"Recommended": "推荐",
|
|
152
|
+
"Fast multimodal reasoning with free API key from Google AI Studio.": "通过 Google AI Studio 获取免费 API 密钥,使用快速多模态推理。",
|
|
153
|
+
"Custom Configuration": "自定义配置",
|
|
154
|
+
"Define models in": "模型配置文件:",
|
|
155
|
+
"& keys in": ",密钥文件:",
|
|
156
|
+
"(OpenAI, Claude, Ollama).": "(OpenAI、Claude、Ollama)。",
|
|
157
|
+
"Enter Gemini API Key:": "输入 Gemini API 密钥:",
|
|
158
|
+
"Get Free API Key (Google AI Studio)": "获取免费 API 密钥(Google AI Studio)",
|
|
159
|
+
"Enter Gemini API Key (e.g. AIzaSy...)": "输入 Gemini API 密钥(例如 AIzaSy…)",
|
|
160
|
+
"Copy API Key": "复制 API 密钥",
|
|
161
|
+
"Test if Gemini API key is valid": "测试 Gemini API 密钥是否有效",
|
|
162
|
+
"Testing...": "正在测试…",
|
|
163
|
+
"Test Key": "测试密钥",
|
|
164
|
+
"Optional: Google Cloud Vision OCR": "可选:Google Cloud Vision OCR",
|
|
165
|
+
"OCR Configured": "OCR 已配置",
|
|
166
|
+
"Provides screen text coordinate grounding to improve element detection and interaction accuracy on text-heavy apps.": "提供屏幕文字坐标定位,提高文字密集型应用中的元素识别与交互精度。",
|
|
167
|
+
"Cloud Vision API Key:": "Cloud Vision API 密钥:",
|
|
168
|
+
"Enter Vision OCR API Key (e.g. AIzaSy...)": "输入 Vision OCR API 密钥(例如 AIzaSy…)",
|
|
169
|
+
"Test if Vision OCR key is valid": "测试 Vision OCR 密钥是否有效",
|
|
170
|
+
"Active Model Configuration": "当前模型配置",
|
|
171
|
+
"Defined in": "配置文件:",
|
|
172
|
+
"Copy file path": "复制文件路径",
|
|
173
|
+
"Copy Path": "复制路径",
|
|
174
|
+
"Default Model": "默认模型",
|
|
175
|
+
"Fallback Model": "备用模型",
|
|
176
|
+
"Environment Variables & API Keys": "环境变量与 API 密钥",
|
|
177
|
+
"Loaded from": "加载自",
|
|
178
|
+
"Configured": "已配置",
|
|
179
|
+
"Not Set": "未设置",
|
|
180
|
+
"Android Device & Emulator Connection": "Android 设备与模拟器连接",
|
|
181
|
+
"Local emulator, attached phone, wireless device, or another ADB server": "本地模拟器、已连接手机、无线设备或其他 ADB 服务器",
|
|
182
|
+
"Restarting...": "正在重启…",
|
|
183
|
+
"Virtual Device": "虚拟设备",
|
|
184
|
+
"Connected": "已连接",
|
|
185
|
+
"Select Active Device:": "选择当前设备:",
|
|
186
|
+
"✓ Active": "✓ 当前设备",
|
|
187
|
+
"Launching Android Emulator:": "正在启动 Android 模拟器:",
|
|
188
|
+
"Terminate emulator process": "终止模拟器进程",
|
|
189
|
+
"Stop": "停止",
|
|
190
|
+
"1. Process Start": "1. 启动进程",
|
|
191
|
+
"2. ADB Handshake": "2. ADB 握手",
|
|
192
|
+
"3. Android OS Boot": "3. Android 系统启动",
|
|
193
|
+
"4. Ready": "4. 就绪",
|
|
194
|
+
"Android virtualization cold boot usually takes 20-45 seconds. Live progress is actively tracked above—please do not click launch repeatedly.": "Android 模拟器冷启动通常需要 20–45 秒。上方会实时显示进度,请勿重复点击启动。",
|
|
195
|
+
"Emulator Console Stream (stdout / stderr)": "模拟器控制台输出(stdout / stderr)",
|
|
196
|
+
"Emulator Launch Failed": "模拟器启动失败",
|
|
197
|
+
"Dismiss error": "关闭错误提示",
|
|
198
|
+
"Process Output / Failure Logs:": "进程输出 / 失败日志:",
|
|
199
|
+
"Restart ADB Server": "重启 ADB 服务器",
|
|
200
|
+
"Dismiss": "关闭提示",
|
|
201
|
+
"Android Emulator": "Android 模拟器",
|
|
202
|
+
"Launch a local Android Virtual Device": "启动本地 Android 虚拟设备",
|
|
203
|
+
"USB Cable": "USB 数据线",
|
|
204
|
+
"Connect physical phone via USB": "通过 USB 连接实体手机",
|
|
205
|
+
"Wireless ADB": "无线 ADB",
|
|
206
|
+
"Connect over local Wi-Fi": "通过局域网 Wi-Fi 连接",
|
|
207
|
+
"Remote Computer": "远程电脑",
|
|
208
|
+
"Phone connected to another computer": "连接到另一台电脑上的手机",
|
|
209
|
+
"Artemis is currently using": "Artemis 当前使用",
|
|
210
|
+
". Switch to local ADB before using a local emulator, USB cable, or Wireless ADB.": "。使用本地模拟器、USB 或无线 ADB 前,请先切换到本地 ADB。",
|
|
211
|
+
"Installed Virtual Devices (AVD)": "已安装的虚拟设备(AVD)",
|
|
212
|
+
"Launch": "启动",
|
|
213
|
+
"No Android Virtual Devices (AVD) Detected": "未检测到 Android 虚拟设备(AVD)",
|
|
214
|
+
"Follow the step-by-step instructions below to install and start an emulator:": "请按以下步骤安装并启动模拟器:",
|
|
215
|
+
"Android Studio (GUI)": "Android Studio(图形界面)",
|
|
216
|
+
"Command Line (CLI)": "命令行(CLI)",
|
|
217
|
+
"Install Android Studio": "安装 Android Studio",
|
|
218
|
+
"developer.android.com/studio": "developer.android.com/studio",
|
|
219
|
+
"and install.": "并安装。",
|
|
220
|
+
"Open Device Manager": "打开设备管理器",
|
|
221
|
+
"On Studio welcome screen, open": "在 Studio 欢迎界面,打开",
|
|
222
|
+
"More Actions > Virtual Device Manager": "More Actions > Virtual Device Manager(更多操作 > 虚拟设备管理器)",
|
|
223
|
+
"(or": "(或",
|
|
224
|
+
"Tools > Device Manager": "Tools > Device Manager(工具 > 设备管理器)",
|
|
225
|
+
"Create Virtual Device": "创建虚拟设备",
|
|
226
|
+
"Click": "点击",
|
|
227
|
+
"Create Device": "Create Device(创建设备)",
|
|
228
|
+
", choose": ",选择",
|
|
229
|
+
"Pixel 8": "Pixel 8",
|
|
230
|
+
", select": ",选择",
|
|
231
|
+
"Android 14 (API 34)": "Android 14(API 34)",
|
|
232
|
+
", and click": ",然后点击",
|
|
233
|
+
"Finish": "Finish(完成)",
|
|
234
|
+
"Launch Emulator": "启动模拟器",
|
|
235
|
+
"Click ▶": "点击 ▶",
|
|
236
|
+
"Play": "Play(运行)",
|
|
237
|
+
"in Device Manager. Artemis will detect and connect to it automatically!": "(位于设备管理器中)。Artemis 将自动检测并连接!",
|
|
238
|
+
"Download Emulator & System Image (API 34)": "下载模拟器与系统镜像(API 34)",
|
|
239
|
+
"Install Android 14 Google APIs system image using SDK Manager:": "使用 SDK Manager 安装 Android 14 Google APIs 系统镜像:",
|
|
240
|
+
"Create Virtual Device (Pixel 8 AVD)": "创建虚拟设备(Pixel 8 AVD)",
|
|
241
|
+
"Initialize a new Android Virtual Device named": "初始化一个 Android 虚拟设备,命名为",
|
|
242
|
+
"Start the Emulator": "启动模拟器",
|
|
243
|
+
"Launch the virtual device (or add": "启动虚拟设备(也可添加",
|
|
244
|
+
"for headless execution):": "以无界面模式运行):",
|
|
245
|
+
"Connect your Android phone via USB cable and enable USB Debugging:": "通过 USB 数据线连接 Android 手机,并启用 USB 调试:",
|
|
246
|
+
"Connect USB Cable": "连接 USB 数据线",
|
|
247
|
+
"Plug your Android phone into this computer with a data cable.": "使用支持数据传输的数据线将 Android 手机连接到此电脑。",
|
|
248
|
+
"Enable Developer Options": "启用开发者选项",
|
|
249
|
+
"In phone": "在手机中进入",
|
|
250
|
+
"Settings > About Phone": "设置 > 关于手机",
|
|
251
|
+
", tap": ",连续点击",
|
|
252
|
+
"Build Number": "版本号",
|
|
253
|
+
"7 times.": "7 次。",
|
|
254
|
+
"Enable USB Debugging": "启用 USB 调试",
|
|
255
|
+
"In": "进入",
|
|
256
|
+
"Settings > Developer Options": "设置 > 开发者选项",
|
|
257
|
+
", turn": ",将",
|
|
258
|
+
"USB Debugging": "USB 调试",
|
|
259
|
+
"ON.": "开启。",
|
|
260
|
+
"Authorize Computer": "授权电脑",
|
|
261
|
+
"Check": "验证",
|
|
262
|
+
"\"Always allow\"": "“始终允许”",
|
|
263
|
+
"and tap": ",然后点击",
|
|
264
|
+
"Allow": "允许",
|
|
265
|
+
"on the phone prompt.": "(在手机弹窗中)。",
|
|
266
|
+
"Connect your phone and computer on the same Wi-Fi network:": "将手机和电脑连接到同一个 Wi-Fi 网络:",
|
|
267
|
+
"Device IP Address": "设备 IP 地址",
|
|
268
|
+
"e.g. 192.168.1.108": "例如 192.168.1.108",
|
|
269
|
+
"Port": "端口",
|
|
270
|
+
"Connecting...": "正在连接…",
|
|
271
|
+
"Connect": "连接",
|
|
272
|
+
"Find IP & port in phone": "在手机中查看 IP 与端口:",
|
|
273
|
+
"Settings > Developer Options > Wireless Debugging": "设置 > 开发者选项 > 无线调试",
|
|
274
|
+
"Enter the host and port of an ADB server endpoint that this computer can access, so Artemis can discover and control a phone physically connected to another computer.": "输入此电脑可访问的 ADB 服务器地址和端口,让 Artemis 发现并控制连接到另一台电脑上的手机。",
|
|
275
|
+
"ADB Server Host": "ADB 服务器地址",
|
|
276
|
+
"ADB Server Port": "ADB 服务器端口",
|
|
277
|
+
"Checking...": "正在检查…",
|
|
278
|
+
"Test Connection": "测试连接",
|
|
279
|
+
"Remember this endpoint for future Artemis launches": "记住此地址,用于下次启动 Artemis",
|
|
280
|
+
"Artemis sends all ADB commands to this server instead of the default local server. Any phone visible to that server becomes available to Artemis.": "Artemis 会将所有 ADB 命令发送到此服务器。该服务器可见的手机都可供 Artemis 使用。",
|
|
281
|
+
"USB Debugging Authorization Pending": "等待 USB 调试授权",
|
|
282
|
+
"Your Android device was detected, but it requires authorization. Please unlock your phone screen and tap": "已检测到 Android 设备,但尚未授权。请解锁手机屏幕并点击",
|
|
283
|
+
"\"Allow USB Debugging\"": "“允许 USB 调试”",
|
|
284
|
+
"Android Platform Tools (adb) not found.": "未找到 Android 平台工具(adb)。",
|
|
285
|
+
"Please install ADB on your operating system:": "请在操作系统中安装 ADB:",
|
|
286
|
+
"Linux (Ubuntu / Debian)": "Linux(Ubuntu / Debian)",
|
|
287
|
+
"Detected": "已检测到",
|
|
288
|
+
"macOS (Homebrew)": "macOS(Homebrew)",
|
|
289
|
+
"Windows (WinGet)": "Windows(WinGet)",
|
|
290
|
+
"System Ready for Autonomous Tasks": "系统已就绪,可以运行自动化任务",
|
|
291
|
+
"All dependencies, AI model credentials, and Android device are verified and ready to run.": "所有依赖、AI 模型凭据和 Android 设备均已验证,可以开始运行。",
|
|
292
|
+
"Continuous monitoring or complex task detected. Recommended:": "检测到持续监控或复杂任务,建议使用:",
|
|
293
|
+
"Pro Mode": "Pro 模式",
|
|
294
|
+
"Switch to Pro": "切换到 Pro",
|
|
295
|
+
"Describe what you want to achieve on your phone (e.g. Open Gmail and search for latest emails)...": "描述你想在手机上完成的操作(例如:打开 Gmail 并查找最新邮件)…",
|
|
296
|
+
"Flash": "Flash",
|
|
297
|
+
"Token-efficient, rapid": "节省 token,快速决策,约",
|
|
298
|
+
"3–5s/step": "3–5 秒/步",
|
|
299
|
+
"decisions straight from the live screen. Best for everyday tasks with a clear path, however long they run.": ",直接根据实时画面执行。适合操作路径明确的日常任务,无论持续多久。",
|
|
300
|
+
"(No plan, no result check, no ADB commands)": "(无规划、无结果验证、不执行 ADB 命令)",
|
|
301
|
+
"Pro": "Pro",
|
|
302
|
+
"Plans first, checks its results and recovers when a tap is blocked. Handles": "先规划,验证执行结果,并在点击受阻时恢复。支持",
|
|
303
|
+
"100+ step": "100 步以上",
|
|
304
|
+
"workflows and live phone monitoring (": "的工作流和手机实时监控(",
|
|
305
|
+
"15–40s": "15–40 秒",
|
|
306
|
+
"/ step).": "/步)。",
|
|
307
|
+
"Flash: fast single-look loop for everyday app tasks (3–5s/step)": "Flash:适合日常应用任务的快速单次观察循环(3–5 秒/步)",
|
|
308
|
+
"Pro: plans first, checks results and recovers from blocked steps. For long or complex tasks (15–40s/step)": "Pro:先规划、验证结果并从受阻步骤恢复,适合长流程或复杂任务(15–40 秒/步)",
|
|
309
|
+
"Starting...": "正在启动…",
|
|
310
|
+
"Run Task": "运行任务",
|
|
311
|
+
"Expected Output": "预期输出",
|
|
312
|
+
"(Optional)": "(可选)",
|
|
313
|
+
"Specify expected output or schema (e.g. 'Extract SMS verification code as JSON' or 'Summary of discounts and total price')...": "指定预期输出或格式(例如“以 JSON 提取短信验证码”或“汇总优惠与总价”)…",
|
|
314
|
+
"Clear expected output": "清空预期输出",
|
|
315
|
+
"Pro settings": "Pro 设置",
|
|
316
|
+
"Back to the defaults": "恢复默认设置",
|
|
317
|
+
"Reset": "重置",
|
|
318
|
+
"What happens": "执行内容",
|
|
319
|
+
"Not included": "不包含",
|
|
320
|
+
"Use it for": "适用场景",
|
|
321
|
+
"Recommended Tasks": "推荐任务",
|
|
322
|
+
"All": "全部",
|
|
323
|
+
"Multi-App": "跨应用",
|
|
324
|
+
"Monitor": "监控",
|
|
325
|
+
"Discover more tasks": "发现更多任务",
|
|
326
|
+
"Shuffle": "换一组",
|
|
327
|
+
"Use": "使用",
|
|
328
|
+
"Close error message": "关闭错误提示",
|
|
329
|
+
"Start a new task...": "开始新任务…",
|
|
330
|
+
"Clear input text": "清空输入",
|
|
331
|
+
"Start task": "启动任务",
|
|
332
|
+
"Select Agent Architecture": "选择智能体架构",
|
|
333
|
+
"Active Queue (": "当前队列 (",
|
|
334
|
+
"Device:": "设备:",
|
|
335
|
+
"Unnamed Task": "未命名任务",
|
|
336
|
+
"ID:": "ID:",
|
|
337
|
+
"Past Runs & History (": "历史任务 (",
|
|
338
|
+
"@end": "结束时",
|
|
339
|
+
"in ·": "输入 ·",
|
|
340
|
+
"out": "输出",
|
|
341
|
+
"of": "总量",
|
|
342
|
+
"Worked for": "已执行",
|
|
343
|
+
"s": "秒",
|
|
344
|
+
"Waiting": "正在等待",
|
|
345
|
+
"Waited": "已等待",
|
|
346
|
+
"Checked": "已验证",
|
|
347
|
+
"Worked": "已执行",
|
|
348
|
+
"for": "耗时",
|
|
349
|
+
"Task Execution Failed": "任务执行失败",
|
|
350
|
+
"Task Completed": "任务已完成",
|
|
351
|
+
"Completed": "已完成",
|
|
352
|
+
"· Retrying in": "· 将在以下时间后重试",
|
|
353
|
+
"Retrying LLM request · Waited": "正在重试模型请求 · 已等待",
|
|
354
|
+
"Planned": "计划等待",
|
|
355
|
+
"· Waited": "· 已等待",
|
|
356
|
+
"Open recording at": "打开录像并跳转至",
|
|
357
|
+
"Step Replay (": "步骤回放 (",
|
|
358
|
+
"Preparing Recording": "正在准备录像",
|
|
359
|
+
"Restore": "还原",
|
|
360
|
+
"Exit Theater": "退出剧场模式",
|
|
361
|
+
"Theater Mode": "剧场模式",
|
|
362
|
+
"Preparing screen recording...": "正在准备屏幕录像…",
|
|
363
|
+
"Step": "步骤",
|
|
364
|
+
"Unpin details card (auto-hide on mouse leave)": "取消固定详情卡片(移出鼠标时自动隐藏)",
|
|
365
|
+
"Pin details card (keep always visible)": "固定详情卡片(始终显示)",
|
|
366
|
+
":": ":",
|
|
367
|
+
"Pause": "暂停",
|
|
368
|
+
"Play Slideshow": "播放幻灯片",
|
|
369
|
+
"Speed:": "速度:",
|
|
370
|
+
"x (Click to cycle)": "倍(点击切换)",
|
|
371
|
+
"x": "倍",
|
|
372
|
+
"Loop enabled": "已启用循环",
|
|
373
|
+
"Enable loop": "启用循环",
|
|
374
|
+
"Unmute": "取消静音",
|
|
375
|
+
"Mute": "静音",
|
|
376
|
+
"Recording Playback Failed": "录像播放失败",
|
|
377
|
+
"No Video Recording Available": "暂无录像",
|
|
378
|
+
"The finalized recording could not be played.": "无法播放已完成的录像。",
|
|
379
|
+
"No screen recording was found for this task.": "未找到此任务的屏幕录像。",
|
|
380
|
+
"Unnamed Goal": "未命名目标",
|
|
381
|
+
"·": " · ",
|
|
382
|
+
"Tools > Device Manager": "Tools > Device Manager(工具 > 设备管理器)",
|
|
383
|
+
"More Actions > Virtual Device Manager": "More Actions > Virtual Device Manager(更多操作 > 虚拟设备管理器)",
|
|
384
|
+
"Re-check": "重新检查",
|
|
385
|
+
"Copied!": "已复制!",
|
|
386
|
+
"Copy": "复制",
|
|
387
|
+
"Checking…": "正在检查…",
|
|
388
|
+
"ADB Installed": "ADB 已安装",
|
|
389
|
+
"ADB Missing": "缺少 ADB",
|
|
390
|
+
"Config Valid": "配置有效",
|
|
391
|
+
"FFmpeg & scrcpy": "FFmpeg 与 scrcpy",
|
|
392
|
+
"Mask Key": "隐藏密钥",
|
|
393
|
+
"Show Plaintext": "显示明文",
|
|
394
|
+
"Verifying & Saving...": "正在验证并保存…",
|
|
395
|
+
"Clearing...": "正在清除…",
|
|
396
|
+
"Clear Key": "清除密钥",
|
|
397
|
+
"Save & Apply": "保存并应用",
|
|
398
|
+
"Save Key": "保存密钥",
|
|
399
|
+
"Hide JSONC": "隐藏 JSONC",
|
|
400
|
+
"View JSONC": "查看 JSONC",
|
|
401
|
+
"Hide Options": "隐藏选项",
|
|
402
|
+
"Change Connection": "更改连接方式",
|
|
403
|
+
"Refresh devices without stopping the remote ADB server": "刷新设备,不停止远程 ADB 服务器",
|
|
404
|
+
"Restart local ADB daemon": "重启本地 ADB 服务",
|
|
405
|
+
"Refresh Devices": "刷新设备",
|
|
406
|
+
"Restart ADB": "重启 ADB",
|
|
407
|
+
"Android": "Android",
|
|
408
|
+
"Remote via": "远程连接至",
|
|
409
|
+
"OS Booting": "系统启动中",
|
|
410
|
+
"Starting": "正在启动",
|
|
411
|
+
"Initializing Android Virtual Device...": "正在初始化 Android 虚拟设备…",
|
|
412
|
+
"Hide Logs": "隐藏日志",
|
|
413
|
+
"View Boot Logs": "查看启动日志",
|
|
414
|
+
"% Complete": "% 已完成",
|
|
415
|
+
"Elapsed:": "已耗时:",
|
|
416
|
+
"Copied": "已复制",
|
|
417
|
+
"Copy Logs": "复制日志",
|
|
418
|
+
"The Android emulator process failed to start or crashed during initialization.": "Android 模拟器进程启动失败,或在初始化时崩溃。",
|
|
419
|
+
"Retry Launch (": "重新启动 (",
|
|
420
|
+
"local virtual device": "个本地虚拟设备",
|
|
421
|
+
"available": "可用",
|
|
422
|
+
"Switching...": "正在切换…",
|
|
423
|
+
"Use Local ADB": "使用本地 ADB",
|
|
424
|
+
"Available": "可用",
|
|
425
|
+
"An emulator is currently launching...": "已有模拟器正在启动…",
|
|
426
|
+
"Booting OS": "系统启动中",
|
|
427
|
+
"s)": "秒)",
|
|
428
|
+
"Download for": "下载适用于",
|
|
429
|
+
"from": "的版本,来源:",
|
|
430
|
+
"PS>": "PS>",
|
|
431
|
+
"Ready": "就绪",
|
|
432
|
+
"Use Connection": "使用此连接",
|
|
433
|
+
"Use Anyway": "仍然使用",
|
|
434
|
+
"Device Is Locked": "设备已锁屏",
|
|
435
|
+
"Unable to Verify Lock State": "无法确认锁屏状态",
|
|
436
|
+
"Check Again": "再次检查",
|
|
437
|
+
"Restart ADB & Check": "重启 ADB 并检查",
|
|
438
|
+
"Android device is locked. Unlock it and enter the home screen before running a task.": "Android 设备已锁屏,请解锁并进入主屏幕后再运行任务。",
|
|
439
|
+
"Prerequisites incomplete: runtime, credentials, or Android device is not ready. Click here to open Setup Guide.": "运行条件未满足:运行环境、模型凭据或 Android 设备尚未就绪。点击打开设置指南。",
|
|
440
|
+
"chars": "字符",
|
|
441
|
+
"Unlock the Android device before running": "请先解锁 Android 设备再运行",
|
|
442
|
+
"Complete System Setup before running": "请先完成系统设置再运行",
|
|
443
|
+
"Run task": "运行任务",
|
|
444
|
+
"Uses ARTEMIS Pro (Multi-Agent Cognitive State Graph)": "使用 ARTEMIS Pro(多智能体认知状态图)",
|
|
445
|
+
"Uses ARTEMIS Flash (Reactive Fast Loop)": "使用 ARTEMIS Flash(快速响应循环)",
|
|
446
|
+
"Pro: plans first, checks results and recovers from blocked steps. For long or complex tasks": "Pro:先规划、验证结果并从受阻步骤恢复,适合长流程或复杂任务",
|
|
447
|
+
"Flash: fast single-look loop for everyday app tasks": "Flash:适合日常应用任务的快速单次观察循环",
|
|
448
|
+
"Starting task...": "正在启动任务…",
|
|
449
|
+
"Start task (Enter)": "启动任务(Enter)",
|
|
450
|
+
"Maps": "地图",
|
|
451
|
+
"Gmail": "Gmail",
|
|
452
|
+
"Chrome": "Chrome",
|
|
453
|
+
"YouTube": "YouTube",
|
|
454
|
+
"Settings": "设置",
|
|
455
|
+
"Clock": "时钟",
|
|
456
|
+
"Calculator": "计算器",
|
|
457
|
+
"Photos": "相册",
|
|
458
|
+
"Calendar": "日历",
|
|
459
|
+
"Keep Notes": "Keep 笔记",
|
|
460
|
+
"Play Store": "Play 商店",
|
|
461
|
+
"Messages": "短信",
|
|
462
|
+
"WeChat": "微信",
|
|
463
|
+
"Xiaohongshu": "小红书",
|
|
464
|
+
"Meituan": "美团",
|
|
465
|
+
"Dianping": "大众点评",
|
|
466
|
+
"Bilibili": "哔哩哔哩",
|
|
467
|
+
"Alipay": "支付宝",
|
|
468
|
+
"NetEase Music": "网易云音乐",
|
|
469
|
+
"Spotify": "Spotify",
|
|
470
|
+
"Find Specialty Coffee": "寻找精品咖啡",
|
|
471
|
+
"Search nearby top-rated cafes in Google Maps": "在 Google 地图中查找附近的高评分咖啡馆",
|
|
472
|
+
"Commute ETA & Message Draft": "通勤时间与到达短信草稿",
|
|
473
|
+
"Check transit time on Maps and draft arrival ETA in Messages": "在地图中查看交通时间,并在短信中起草预计到达时间",
|
|
474
|
+
"Maps + Messages": "地图 + 短信",
|
|
475
|
+
"Search Order Receipts": "查找订单凭证",
|
|
476
|
+
"Find recent flight or delivery confirmation emails in Gmail": "在 Gmail 中查找近期航班或配送确认邮件",
|
|
477
|
+
"Email Itinerary to Calendar": "将邮件行程添加到日历",
|
|
478
|
+
"Extract flight or event dates from Gmail and schedule in Calendar": "从 Gmail 提取航班或活动日期,并添加到日历",
|
|
479
|
+
"Gmail + Calendar": "Gmail + 日历",
|
|
480
|
+
"Search AI News Breakthroughs": "搜索 AI 最新进展",
|
|
481
|
+
"Search latest multimodal AI developments in Chrome browser": "在 Chrome 中搜索多模态 AI 的最新进展",
|
|
482
|
+
"Product Research & Notes Note": "商品调研与笔记",
|
|
483
|
+
"Compare top 3 headphones on Chrome and record comparison in Keep": "在 Chrome 中比较三款热门耳机,并将结果记录到 Keep",
|
|
484
|
+
"Chrome + Keep": "Chrome + Keep",
|
|
485
|
+
"Play Lo-Fi Music Radio": "播放 Lo-Fi 音乐电台",
|
|
486
|
+
"Search and play a Lo-Fi hip hop live stream on YouTube": "在 YouTube 中查找并播放 Lo-Fi 嘻哈音乐直播",
|
|
487
|
+
"Dark Mode & Wi-Fi Check": "深色模式与 Wi-Fi 检查",
|
|
488
|
+
"Toggle dark theme and verify network connection in Settings": "在设置中切换深色主题,并检查网络连接",
|
|
489
|
+
"Subsystem Health & Crash Probe": "系统设置检查与崩溃检测",
|
|
490
|
+
"Traverse Settings submenus to verify screens and check for crash dialogs": "遍历设置子菜单,验证页面并检查崩溃弹窗",
|
|
491
|
+
"Settings QA": "设置测试",
|
|
492
|
+
"25-Min Pomodoro Timer": "25 分钟番茄钟",
|
|
493
|
+
"Start a 25-minute focus countdown timer in Clock app": "在时钟应用中启动 25 分钟专注倒计时",
|
|
494
|
+
"Split Bill & Calculate Tip": "分摊账单与计算小费",
|
|
495
|
+
"Calculate 18% gratuity on $186.40 for 3 people in Calculator": "用计算器为 186.40 美元账单计算 18% 小费,并由三人平摊",
|
|
496
|
+
"Inspect Recent Screenshot": "查看最近截图",
|
|
497
|
+
"Open Google Photos and review the latest screenshot taken": "打开 Google 相册,查看最新的屏幕截图",
|
|
498
|
+
"Check WeChat Messages": "查看微信消息",
|
|
499
|
+
"Open WeChat and view top recent chat conversations": "打开微信,查看最近的聊天会话",
|
|
500
|
+
"WeChat Notice to Calendar": "将微信通知添加到日历",
|
|
501
|
+
"Extract meeting notice from WeChat chat and add to Calendar": "从微信聊天中提取会议通知,并添加到日历",
|
|
502
|
+
"WeChat + Calendar": "微信 + 日历",
|
|
503
|
+
"RED Cafe Guide Search": "搜索小红书咖啡攻略",
|
|
504
|
+
"Search trending specialty cafe reviews on Xiaohongshu": "在小红书中搜索热门精品咖啡馆评价",
|
|
505
|
+
"Meituan Food Search": "美团美食搜索",
|
|
506
|
+
"Search top-rated Ramen nearby on Meituan or Dianping": "在美团或大众点评中搜索附近高评分拉面店",
|
|
507
|
+
"Bilibili Tech Video": "哔哩哔哩科技视频",
|
|
508
|
+
"Search and play an AI Agent tutorial video on Bilibili": "在哔哩哔哩中查找并播放 AI 智能体教程视频",
|
|
509
|
+
"Play Store App Review Study": "Play 商店应用评价调研",
|
|
510
|
+
"Compare top task management apps and ratings on Google Play": "在 Google Play 中比较热门任务管理应用及其评分",
|
|
511
|
+
"Quick glance": "快速查看",
|
|
512
|
+
"Finds buttons and text on the screen in a single look.": "通过一次观察定位屏幕上的按钮和文字。",
|
|
513
|
+
"1 look per search": "每次搜索观察 1 次",
|
|
514
|
+
"Something on screen is asked for by name, icon or colour and its position comes back straight away.": "根据名称、图标或颜色查找屏幕元素,并立即返回位置。",
|
|
515
|
+
"Several things can be looked up at once.": "可以同时查找多个元素。",
|
|
516
|
+
"No zooming in and no second try.": "不放大查看,也不进行第二次尝试。",
|
|
517
|
+
"Ordinary apps with clearly labelled buttons, icons and text.": "按钮、图标和文字标注清晰的常见应用。",
|
|
518
|
+
"Second look": "再次确认",
|
|
519
|
+
"Takes up to 3 looks, thinking in between, before answering.": "最多观察 3 次,在观察之间思考后给出结果。",
|
|
520
|
+
"up to 3 looks per search": "每次搜索最多观察 3 次",
|
|
521
|
+
"The screen layout is read first, then the picture is searched.": "先识别屏幕布局,再搜索画面。",
|
|
522
|
+
"If the first try misses, a different approach is tried within the 3 looks.": "首次未找到时,会在 3 次观察内尝试其他方法。",
|
|
523
|
+
"Still no zooming into small areas, to keep searches short.": "不放大小区域,以缩短搜索时间。",
|
|
524
|
+
"Things described by where they are (\"the switch next to Wi-Fi\") or with unclear labels.": "通过相对位置描述的元素(如“Wi-Fi 旁的开关”)或标注不清的元素。",
|
|
525
|
+
"Close-up": "放大细查",
|
|
526
|
+
"Zooms into parts of the screen and takes up to 8 looks.": "放大屏幕局部区域,最多观察 8 次。",
|
|
527
|
+
"up to 8 looks per search (slowest)": "每次搜索最多观察 8 次(最慢)",
|
|
528
|
+
"Parts of the screen can be cropped and magnified to read tiny text and crowded layouts piece by piece.": "可裁剪并放大屏幕局部,逐一识别细小文字和密集布局。",
|
|
529
|
+
"Later looks reuse the earlier ones, so they cost less time than they sound.": "后续观察会复用之前的结果,因此实际耗时可能更少。",
|
|
530
|
+
"Crowded screens, tiny targets, charts and drawings, and checks where exact placement matters.": "密集页面、微小目标、图表,以及对位置精度要求较高的验证。",
|
|
531
|
+
"Off": "关闭",
|
|
532
|
+
"No checking. The run ends as soon as the task looks done.": "不进行验证,任务看起来完成时即结束。",
|
|
533
|
+
"no extra time": "无额外耗时",
|
|
534
|
+
"Each step is treated as finished the moment it is carried out.": "每一步执行后即视为完成。",
|
|
535
|
+
"You get the full action trace, but no pass / fail verdict.": "提供完整操作记录,但不给出通过或失败判定。",
|
|
536
|
+
"Nothing is double-checked and nothing is retried.": "不进行复核或重试。",
|
|
537
|
+
"Quick tries and demos, when you only want to watch what happens.": "快速尝试和演示,只需观察执行过程时使用。",
|
|
538
|
+
"At the end": "结束时验证",
|
|
539
|
+
"One check of the finished result against your goal. This is the default.": "将最终结果与目标对比验证一次。这是默认设置。",
|
|
540
|
+
"adds about 20–60 s at the end": "结束时额外增加约 20–60 秒",
|
|
541
|
+
"When the task finishes, the final screen, the step history and the device state are compared with what you asked for.": "任务结束时,将最终画面、步骤历史和设备状态与目标进行对比。",
|
|
542
|
+
"If the result does not match, the task goes back and tries to fix it, up to 3 times.": "结果不符时,会返回并尝试修复,最多 3 次。",
|
|
543
|
+
"Nothing is checked while the task is still running.": "任务运行过程中不进行验证。",
|
|
544
|
+
"Everyday tasks: an honest pass / fail without slowing the run down.": "日常任务:在不拖慢执行过程的情况下,给出可靠的通过或失败判定。",
|
|
545
|
+
"Every step": "逐步验证",
|
|
546
|
+
"Each step is checked as soon as it is done, plus the final check.": "每步完成后立即验证,结束时再进行最终验证。",
|
|
547
|
+
"a short check after each step, done in the background": "每步之后在后台进行简短验证",
|
|
548
|
+
"Every step is checked right after it completes, using the screenshots from that moment.": "使用当时的截图,在每一步完成后立即验证。",
|
|
549
|
+
"If a step went wrong, it gets fixed before moving on (up to 2 tries per step).": "步骤出错时,先尝试修复再继续,每步最多 2 次。",
|
|
550
|
+
"A failed test condition is written down and the task keeps going.": "测试条件失败时记录问题,并继续执行。",
|
|
551
|
+
"The final check still runs at the end.": "结束时仍会进行最终验证。",
|
|
552
|
+
"Long tasks where one early mistake would spoil everything after it.": "早期错误会影响后续流程的长任务。",
|
|
553
|
+
"Strict": "严格验证",
|
|
554
|
+
"Every step is checked, with more retries. The first failed test stops the run.": "验证每一步并增加重试次数,首次测试失败即停止。",
|
|
555
|
+
"slowest: more checks and more retries": "最慢:更多验证与重试",
|
|
556
|
+
"Each check takes longer and gets more attempts: 4 fixes per step and 5 at the end.": "每次验证更充分,重试更多:每步最多修复 4 次,结束时最多 5 次。",
|
|
557
|
+
"The first failed test condition stops the run immediately, with the evidence attached.": "首个测试条件失败后立即停止运行,并附上证据。",
|
|
558
|
+
"Release checks and regression runs, where a wrong pass is never acceptable.": "发布检查和回归测试等不能接受误判通过的场景。",
|
|
559
|
+
"Faster": "更快",
|
|
560
|
+
"Sharper": "更精细",
|
|
561
|
+
"Config Error": "配置错误",
|
|
562
|
+
"Ready (FFmpeg + scrcpy)": "已就绪(FFmpeg + scrcpy)",
|
|
563
|
+
"Missing scrcpy": "缺少 scrcpy",
|
|
564
|
+
"Missing FFmpeg": "缺少 FFmpeg",
|
|
565
|
+
"Missing FFmpeg, scrcpy": "缺少 FFmpeg、scrcpy",
|
|
566
|
+
"Enable Windows Hypervisor Platform (WHPX)": "启用 Windows 虚拟机监控程序平台(WHPX)",
|
|
567
|
+
"Verify macOS Hypervisor / Install Tools": "检查 macOS 虚拟化支持 / 安装工具",
|
|
568
|
+
"Enable KVM Hardware Acceleration (Linux)": "启用 KVM 硬件加速(Linux)",
|
|
569
|
+
"Enable Windows Hypervisor Platform in PowerShell (Run as Administrator):": "以管理员身份运行 PowerShell,启用 Windows 虚拟机监控程序平台:",
|
|
570
|
+
"macOS uses native Hypervisor.framework. Install SDK tools via Homebrew (or Studio):": "macOS 使用原生 Hypervisor.framework。通过 Homebrew(或 Studio)安装 SDK 工具:",
|
|
571
|
+
"Ensure virtualization permissions are granted to your user account:": "确保你的用户账户具有虚拟化权限:",
|
|
572
|
+
"Restart Failed": "重启失败",
|
|
573
|
+
"Devices Refreshed ✓": "设备已刷新 ✓",
|
|
574
|
+
"ADB Refreshed ✓": "ADB 已刷新 ✓",
|
|
575
|
+
"Switch to local ADB before connecting a Wireless ADB device.": "请先切换到本地 ADB,再连接无线 ADB 设备。",
|
|
576
|
+
"Please enter a valid IP address.": "请输入有效的 IP 地址。",
|
|
577
|
+
"Enter the host name or IP address of the ADB server.": "请输入 ADB 服务器的主机名或 IP 地址。",
|
|
578
|
+
"Enter a port between 1 and 65535.": "请输入 1 到 65535 之间的端口。",
|
|
579
|
+
"Test the endpoint before using it.": "请先测试此地址再使用。",
|
|
580
|
+
"Please enter a task goal before running.": "请先输入任务目标再运行。",
|
|
581
|
+
"System prerequisites are not satisfied. Please review System Setup first.": "运行条件尚未满足,请先检查系统设置。",
|
|
582
|
+
"RUNNING": "运行中",
|
|
583
|
+
"COMPLETED": "已完成",
|
|
584
|
+
"FAILED": "失败",
|
|
585
|
+
"QUEUED": "排队中",
|
|
586
|
+
"PENDING": "等待中",
|
|
587
|
+
"PAUSED": "已暂停",
|
|
588
|
+
"STOPPED": "已停止",
|
|
589
|
+
"CANCELLED": "已取消",
|
|
590
|
+
"IDLE": "空闲",
|
|
591
|
+
"OFFLINE": "离线",
|
|
592
|
+
"STOPPING": "正在停止",
|
|
593
|
+
"Final check": "最终验证",
|
|
594
|
+
"Result": "结果",
|
|
595
|
+
"Passed": "已通过",
|
|
596
|
+
"Could not be confirmed": "无法确认",
|
|
597
|
+
"Superseded by a newer check": "已被更新的验证替代",
|
|
598
|
+
"Not checked": "未验证",
|
|
599
|
+
"Superseded": "已替代",
|
|
600
|
+
"No verdict": "暂无结论",
|
|
601
|
+
"Inconclusive": "无法确定",
|
|
602
|
+
"Done": "已完成",
|
|
603
|
+
"Test assertion": "测试断言",
|
|
604
|
+
"Must pass": "必须通过",
|
|
605
|
+
"Test assertion · at the end": "测试断言 · 结束时",
|
|
606
|
+
"Must pass · at the end": "必须通过 · 结束时",
|
|
607
|
+
"Task is currently running (Recording screen)": "任务正在运行(录屏中)",
|
|
608
|
+
"Play Screen Recording Video": "播放屏幕录像",
|
|
609
|
+
"Screen recording generation failed": "屏幕录像生成失败",
|
|
610
|
+
"Stop current running task": "停止当前运行的任务",
|
|
611
|
+
"Waiting for process output...": "正在等待进程输出…",
|
|
612
|
+
"Input": "输入",
|
|
613
|
+
"Text": "文本",
|
|
614
|
+
"Direction": "方向",
|
|
615
|
+
"Key": "按键",
|
|
616
|
+
"Duration": "持续时间",
|
|
617
|
+
"Thinking...": "正在思考…",
|
|
618
|
+
"Planning...": "正在规划…",
|
|
619
|
+
"Executing...": "正在执行…",
|
|
620
|
+
"Waiting...": "正在等待…",
|
|
621
|
+
"verify": "验证",
|
|
622
|
+
"assert": "断言",
|
|
623
|
+
"✓ Gemini API key cleared.": "✓ Gemini API 密钥已清除。",
|
|
624
|
+
"✓ Gemini API key verified & saved.": "✓ Gemini API 密钥已验证并保存。",
|
|
625
|
+
"✓ Gemini API key is valid!": "✓ Gemini API 密钥有效!",
|
|
626
|
+
"✓ Vision OCR API key cleared.": "✓ Vision OCR API 密钥已清除。",
|
|
627
|
+
"✓ Vision OCR API key verified & saved.": "✓ Vision OCR API 密钥已验证并保存。",
|
|
628
|
+
"✓ Vision OCR API key is valid!": "✓ Vision OCR API 密钥有效!",
|
|
629
|
+
"Failed to clear Gemini API key.": "清除 Gemini API 密钥失败。",
|
|
630
|
+
"Failed to update Gemini key.": "更新 Gemini 密钥失败。",
|
|
631
|
+
"Failed to update Vision OCR key.": "更新 Vision OCR 密钥失败。",
|
|
632
|
+
"Failed to clear Vision OCR key.": "清除 Vision OCR 密钥失败。",
|
|
633
|
+
"Gemini API key verification failed.": "Gemini API 密钥验证失败。",
|
|
634
|
+
"Gemini API key test failed.": "Gemini API 密钥测试失败。",
|
|
635
|
+
"Vision OCR key verification failed.": "Vision OCR 密钥验证失败。",
|
|
636
|
+
"Vision OCR key test failed.": "Vision OCR 密钥测试失败。",
|
|
637
|
+
"Edit JSONC": "编辑 JSONC",
|
|
638
|
+
"Saving...": "正在保存…",
|
|
639
|
+
"Cancel Editing": "取消编辑",
|
|
640
|
+
"Save Configuration": "保存配置",
|
|
641
|
+
"JSONC Configuration": "JSONC 配置",
|
|
642
|
+
"Edit models and node settings here. API keys and endpoint URLs remain in .env.": "在此编辑模型与节点配置。API Key 和接口地址仍在 .env 中配置。",
|
|
643
|
+
"Configuration saved. New tasks use the updated configuration; running tasks keep their current settings.": "配置已保存。新任务使用更新后的配置,运行中的任务保持当前设置。",
|
|
644
|
+
"Failed to save configuration. Please retry.": "保存配置失败,请重试。",
|
|
645
|
+
"Failed to reload configuration. Please retry.": "重新加载配置失败,请重试。",
|
|
646
|
+
"Invalid JSONC. Please check the syntax.": "JSONC 格式错误,请检查语法。",
|
|
647
|
+
"Configuration must contain a default model.": "配置必须包含默认模型。",
|
|
648
|
+
"Invalid model or agent configuration. Please check provider, model and fallback.": "模型或智能体配置无效,请检查 provider、model、fallback 及智能体字段。",
|
|
649
|
+
"Configuration changed on disk. Cancel editing and reload before saving.": "文件已被其他操作修改。请先复制当前修改,再取消编辑并重新加载后保存。",
|
|
650
|
+
"Unable to save configuration. Check file permissions.": "无法保存配置,请检查文件权限。"
|
|
651
|
+
};
|