From a1602458f2feaae3c321781ade2ce3d9284377e9 Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Fri, 29 May 2026 01:40:10 +0800 Subject: [PATCH] fix: support Windows paths in media extraction --- gateway/platforms/base.py | 6 +++--- tests/gateway/test_extract_local_files.py | 18 +++++++++++++++--- tests/gateway/test_platform_base.py | 13 +++++++++++++ 3 files changed, 31 insertions(+), 6 deletions(-) diff --git a/gateway/platforms/base.py b/gateway/platforms/base.py index d396015468862..ff43c03dadb16 100644 --- a/gateway/platforms/base.py +++ b/gateway/platforms/base.py @@ -2413,7 +2413,7 @@ def extract_media(content: str) -> Tuple[List[Tuple[str, bool]], str]: # Extract MEDIA: tags, allowing optional whitespace after the colon # and quoted/backticked paths for LLM-formatted outputs. media_pattern = re.compile( - r'''[`"']?MEDIA:\s*(?P`[^`\n]+`|"[^"\n]+"|'[^'\n]+'|(?:~/|/)\S+(?:[^\S\n]+\S+)*?\.(?:png|jpe?g|gif|webp|mp4|mov|avi|mkv|webm|ogg|opus|mp3|wav|m4a|flac|epub|pdf|zip|rar|7z|docx?|xlsx?|pptx?|txt|csv|apk|ipa)(?=[\s`"',;:)\]}]|$))[`"']?''' + r'''[`"']?MEDIA:\s*(?P`[^`\n]+`|"[^"\n]+"|'[^'\n]+'|(?:~/|/|[A-Za-z]:[\\/])\S+(?:[^\S\n]+\S+)*?\.(?:png|jpe?g|gif|webp|mp4|mov|avi|mkv|webm|ogg|opus|mp3|wav|m4a|flac|epub|pdf|zip|rar|7z|docx?|xlsx?|pptx?|txt|csv|apk|ipa)(?=[\s`"',;:)\]}]|$))[`"']?''' ) for match in media_pattern.finditer(content): path = match.group("path").strip() @@ -2477,9 +2477,9 @@ def extract_local_files(content: str) -> Tuple[List[str], str]: # (?