from deerflow.agents.thread_state import ( ARTIFACTS_REPLACE_SENTINEL, merge_artifacts, ) def test_merge_artifacts_default_merge_dedup(): existing = ["/mnt/user-data/outputs/a.md", "/mnt/user-data/outputs/b.md"] new = ["/mnt/user-data/outputs/b.md", "/mnt/user-data/outputs/c.md"] result = merge_artifacts(existing, new) assert result == [ "/mnt/user-data/outputs/a.md", "/mnt/user-data/outputs/b.md", "/mnt/user-data/outputs/c.md", ] def test_merge_artifacts_supports_replace_sentinel(): existing = ["/mnt/user-data/outputs/a.md", "/mnt/user-data/outputs/b.md"] new = [ ARTIFACTS_REPLACE_SENTINEL, "/mnt/user-data/outputs/b.md", "/mnt/user-data/outputs/c.md", "/mnt/user-data/outputs/c.md", ] result = merge_artifacts(existing, new) assert result == [ "/mnt/user-data/outputs/b.md", "/mnt/user-data/outputs/c.md", ]