feat: add official Codex skill and harden task execution
Install and update artemis-use with task diagnostics and plugin guidance. Preserve cross-device file receipts, review canonical reports, guard stage transitions and reduce small history summaries. Improve exploration lifecycle, request recovery and browser live connections.
This commit is contained in:
1 parent
2328a4df0c
commit
e1ea099592
128 files changed
+4944
-700
No files matched your search
@@ -99,6 +99,26 @@ def test_video_analyzer_bound_only_when_recording_tools_enabled(mock_context):
|
||||
HISTORY_TOOLS = {"search_history", "replay_steps", "get_step_screenshot"}
|
||||
|
||||
|
||||
@pytest.mark.parametrize("target", ["android", "computer"])
|
||||
def test_flash_binds_task_text_delivery_only_when_trace_available(mock_context, tmp_path, target):
|
||||
from types import SimpleNamespace
|
||||
|
||||
mock_context.execution_target = target
|
||||
with patch("artemis.controllers.unified_controller.get_driver"):
|
||||
runner = FlashRunner(mock_context, goal="写报告")
|
||||
tools = runner._get_tools()
|
||||
assert "save_note" not in {t.name for t in tools}
|
||||
assert "`save_note`" not in runner._render_system_prompt(tools)
|
||||
mock_context.data_engine = SimpleNamespace(base_dir=tmp_path)
|
||||
tools = runner._get_tools()
|
||||
names = {t.name for t in tools}
|
||||
assert {"save_note", "read_note", "list_notes"} <= names
|
||||
save = next(t for t in tools if t.name == "save_note")
|
||||
assert save.parameters["required"] == ["key", "content"]
|
||||
prompt = runner._render_system_prompt(tools)
|
||||
assert "notes/output.md" in prompt and "`save_note`" in prompt
|
||||
|
||||
|
||||
def test_history_tools_bound_only_with_a_data_engine_session(mock_context):
|
||||
with patch("artemis.controllers.unified_controller.get_driver"):
|
||||
# No DataEngine: nothing to read, the tools stay out (as in Pro).
|
||||
|
||||
Reference in new issue
Block a user