diff --git a/app/src/main/java/com/m57/hermescontrol/ui/chat/tool/ToolViewBuilder.kt b/app/src/main/java/com/m57/hermescontrol/ui/chat/tool/ToolViewBuilder.kt index a95d672b..b70a26ff 100644 --- a/app/src/main/java/com/m57/hermescontrol/ui/chat/tool/ToolViewBuilder.kt +++ b/app/src/main/java/com/m57/hermescontrol/ui/chat/tool/ToolViewBuilder.kt @@ -154,7 +154,7 @@ object ToolViewBuilder { ): String? { val candidate = ToolJson - .firstString(result, listOf("image_url", "url", "path", "image_path")) + .firstString(result, listOf("image_url", "image", "url", "path", "image_path")) .ifEmpty { ToolJson.firstString(args, listOf("image_url", "url", "path")) } if (candidate.isEmpty()) { diff --git a/app/src/test/java/com/m57/hermescontrol/ui/chat/tool/ToolViewCharacterizationTest.kt b/app/src/test/java/com/m57/hermescontrol/ui/chat/tool/ToolViewCharacterizationTest.kt index aeb33d05..8e05020d 100644 --- a/app/src/test/java/com/m57/hermescontrol/ui/chat/tool/ToolViewCharacterizationTest.kt +++ b/app/src/test/java/com/m57/hermescontrol/ui/chat/tool/ToolViewCharacterizationTest.kt @@ -592,8 +592,27 @@ class ToolViewCharacterizationTest { assertEquals("https://img.example/cat.png (image)", view.subtitle) assertEquals("šŸ–¼ļø a cat\n\nšŸ”— https://img.example/cat.png", view.detail) - // Pinned: imageUrlFor does not read the "image" key, so no thumbnail. - assertNull(view.imageUrl) + assertEquals("https://img.example/cat.png", view.imageUrl) + } + + @Test + fun `image_generate data image reaches inline image view`() { + val view = build("image_generate", """{"prompt":"a cat"}""", """{"image":"data:image/png;base64,AAA"}""") + + assertEquals("data:image/png;base64,AAA", view.imageUrl) + } + + @Test + fun `image_generate http image reaches inline image view`() { + val view = build("image_generate", "{}", """{"image":"http://img.example/cat.webp"}""") + + assertEquals("http://img.example/cat.webp", view.imageUrl) + } + + @Test + fun `image_generate local path and non-image url do not reach inline image view`() { + assertNull(build("image_generate", "{}", """{"image":"/tmp/cat.png"}""").imageUrl) + assertNull(build("image_generate", "{}", """{"image":"https://img.example/page"}""").imageUrl) } @Test