From 4daaf1e619236356469945d957cfa8a0dad94b2b Mon Sep 17 00:00:00 2001 From: Vadelma Date: Sun, 9 Aug 2026 00:41:49 -0700 Subject: [PATCH] fix(acp): preserve colon-bearing custom provider prefixes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Taneli Mielikäinen --- acp_adapter/server.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/acp_adapter/server.py b/acp_adapter/server.py index 717f7562b9..3c9cbf3616 100644 --- a/acp_adapter/server.py +++ b/acp_adapter/server.py @@ -901,11 +901,20 @@ class HermesACPAgent(acp.Agent): def choice_provider(model_id: str) -> str: parts = model_id.split(":") if parts[:1] == ["custom"] and len(parts) > 1: - candidate = f"custom:{parts[1].lower()}" from hermes_cli.models import _configured_custom_provider_ids - if candidate in _configured_custom_provider_ids(): - return candidate + lowered = model_id.lower() + for candidate in sorted( + ( + provider_id + for provider_id in _configured_custom_provider_ids() + if provider_id.startswith("custom:") + ), + key=len, + reverse=True, + ): + if lowered.startswith(candidate + ":"): + return candidate return "custom" return parts[0]