feat: add multi-device concurrency, server lifecycle CLI, and unified execution stream
- Implement DevicePool and DeviceExecutionLock concurrency modes (per-device FIFO vs global serialization) - Extend ArtemisClient SDK and CLI with explicit device targeting and concurrency strategy configuration - Add server lifecycle management (artemis restart, stop, status) with cross-platform PID discovery - Update MCP server tools to support multi-device dispatch, trace tagging, and per-device execution - Enhance Showcase UI with step-by-step visual replay, playback speed controls, and device serial badges - Add comprehensive unit test coverage and edge-case verification scripts
This commit is contained in:
1 parent
a36a66ce6d
commit
c2c90a6378
84 files changed
+5612
-645
No files matched your search
@@ -50,7 +50,7 @@ class GraphRunner(BaseRunner):
|
||||
artemis_ctx = ArtemisContext(
|
||||
device=DeviceContext(
|
||||
host_platform=platform.os_type.name,
|
||||
device_serial=self.driver.device_id,
|
||||
device_id=self.driver.device_id,
|
||||
)
|
||||
)
|
||||
graph = await get_graph(artemis_ctx)
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import os
|
||||
from typing import Literal
|
||||
|
||||
from artemis.config import OutputConfig, load_agent_config
|
||||
@@ -50,13 +51,16 @@ class Pipeline:
|
||||
device_id: str = "default-device",
|
||||
output_config: OutputConfig | None = None,
|
||||
enable_outputter: bool | None = None,
|
||||
locked_package: str | None = None,
|
||||
**kwargs: Any,
|
||||
) -> ExecutionContextState:
|
||||
ctx = ExecutionContext(task_goal=goal, device_id=device_id)
|
||||
if not driver:
|
||||
driver = MockDeviceDriver(device_id=device_id)
|
||||
|
||||
max_turns = kwargs.get("max_turns", 5)
|
||||
runner = cls.create_runner(profile=profile, ctx=ctx, driver=driver)
|
||||
state = await runner.run()
|
||||
state = await runner.run(max_turns=max_turns)
|
||||
|
||||
# Check Outputter configuration
|
||||
try:
|
||||
|
||||
@@ -59,7 +59,7 @@ class ReactiveRunner(BaseRunner):
|
||||
artemis_ctx = ArtemisContext(
|
||||
device=DeviceContext(
|
||||
host_platform=platform.os_type.name,
|
||||
device_serial=self.driver.device_id,
|
||||
device_id=self.driver.device_id,
|
||||
)
|
||||
)
|
||||
flash_runner = FlashRunner(
|
||||
|
||||
Reference in new issue
Block a user