diff --git a/agent-templates/providers/anthropic/adapter.py b/agent-templates/providers/anthropic/adapter.py index 76e011b..4e2ec5f 100644 --- a/agent-templates/providers/anthropic/adapter.py +++ b/agent-templates/providers/anthropic/adapter.py @@ -97,8 +97,17 @@ def ensure_vault(self, manifest): continue if key in have: continue - common.request("POST", f"/v1/vaults/{vid}/credentials", - body={"display_name": cred["display_name"], "auth": auth}) + try: + common.request("POST", f"/v1/vaults/{vid}/credentials", + body={"display_name": cred["display_name"], "auth": auth}) + except SystemExit as exc: + # The Anthropic API omits auth fields from credential list responses, so + # the duplicate-check above (have = {mcp_server_url or secret_name}) always + # misses existing credentials and re-POSTs them. 409 means the credential + # is already registered — treat as idempotent success. Any other HTTP error + # still propagates (common.request raises SystemExit with the status code). + if "HTTP 409" not in str(exc): + raise return {"name": name, "id": vid} def ensure_memory(self, manifest): diff --git a/deploy/contabo/sealed/fuzefront-registration.yaml b/deploy/contabo/sealed/fuzefront-registration.yaml new file mode 100644 index 0000000..8ae8b98 --- /dev/null +++ b/deploy/contabo/sealed/fuzefront-registration.yaml @@ -0,0 +1,16 @@ +--- +apiVersion: bitnami.com/v1alpha1 +kind: SealedSecret +metadata: + creationTimestamp: null + name: fuzefront-registration + namespace: fuzeagent +spec: + encryptedData: + token: AgDBUEw+YmWBFVpsMwwGGo0faCT1J3+LAdaxjMKmAqqRBqa4FTwnQAOrLMEM2eAfS507/jKL0UzkRbcxnFPb+T2YhpLWI4ZqqQlMrOH0a/nIXd25apSFsGzEO9K0y8kuL/2xGRbFxDNPMTWzI0UHjSouJ7UPMqFPLK2y5U+B6G0WeX85GM2SOMduDtZhcHEv80Wkce5DR6B5zku21liTzRGv1QuAuQZJ6Zo/d6xeIRa7O2lzQvCw+r+i42R7e1OZ80dXePR4CHhmlSdfoR+oVXAx87tazgRwmsBPlLQC3oMk84xQvQBS0O7fyXCKbnl5ukCAjCFqGPY7SRzMSwMikoYV46Cqo6kM8s+t/yN2YsuxStKhve9Er/AzkDlwgRLDKCGyTercj2DLMdlDj/0zyH9oFJF8UgmwUQyOGQZgXwAMEDOqkuAWaCBXUhtGeE1X1Qsnul+DMMh9nqt1/NRi3Q8cwbrvQq6Bk2iDeLF3BlDfGBlTVKWA2yViIZuNyg1XZQDV4F0z+a14AWU4o+FF24CBOeWMa3C0Lsy5JWtjUHGdkrxvgEIC5hhp2ZwnFSJMfEhlJUJTzLaAKtl4br9DjuLttqE21jXvUvPEEQ9RW8rRjcLh+8LfB3/qHx9hFWhl3GHWCBEDLoCxGcCSZyiLfHl4wEWtmeoUojnVl2F5WOSiYKdxTaIT7yi6OIpMerv0IHDWwnorXAiSrlG+/7SK0G2ygAmQ+8RE+ZawH7HR7hJFMSJ7Zq07FJf10vLGC2vwzU8NEaiBnoz0DLJyaM1XniJD + template: + metadata: + creationTimestamp: null + name: fuzefront-registration + namespace: fuzeagent + type: Opaque