From 91cc8b228b3b60224ddbeea8786c69c575281f69 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Wed, 1 Apr 2026 10:18:08 +0200 Subject: [PATCH 1/2] feat: embed SVG icons as base64 data URIs in registry.json Adds icon_data field to each registry entry containing the icon.svg content as a data:image/svg+xml;base64 URI, making the registry self-contained without requiring separate CDN fetches for icons. Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/build_registry.py | 4 ++++ agent.schema.json | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/.github/workflows/build_registry.py b/.github/workflows/build_registry.py index 4d595bc0..52656377 100644 --- a/.github/workflows/build_registry.py +++ b/.github/workflows/build_registry.py @@ -2,6 +2,7 @@ """Build aggregated registry.json from individual agent directories.""" import argparse +import base64 import copy import json import os @@ -513,6 +514,9 @@ def process_entry( f" - {e}" for e in icon_errors ] entry["icon"] = f"{base_url}/{entry_id}.svg" + entry["icon_data"] = "data:image/svg+xml;base64," + base64.b64encode( + icon_path.read_bytes() + ).decode() return entry, [] diff --git a/agent.schema.json b/agent.schema.json index 3f2303f4..0bb56bd0 100644 --- a/agent.schema.json +++ b/agent.schema.json @@ -51,6 +51,10 @@ "type": "string", "description": "Icon URL (set automatically by the build from the required icon.svg file)" }, + "icon_data": { + "type": "string", + "description": "Icon as a base64-encoded data URI (set automatically by the build from the required icon.svg file)" + }, "distribution": { "type": "object", "minProperties": 1, From 4cb5cfffe08d7d1d501de11c9dc7c9b628c64550 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Wed, 1 Apr 2026 10:19:23 +0200 Subject: [PATCH 2/2] style: apply ruff formatting to build_registry.py Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/build_registry.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build_registry.py b/.github/workflows/build_registry.py index 52656377..404443eb 100644 --- a/.github/workflows/build_registry.py +++ b/.github/workflows/build_registry.py @@ -514,9 +514,9 @@ def process_entry( f" - {e}" for e in icon_errors ] entry["icon"] = f"{base_url}/{entry_id}.svg" - entry["icon_data"] = "data:image/svg+xml;base64," + base64.b64encode( - icon_path.read_bytes() - ).decode() + entry["icon_data"] = ( + "data:image/svg+xml;base64," + base64.b64encode(icon_path.read_bytes()).decode() + ) return entry, []