From aace433d7eba4c00f7de8fc7678561d8c732d104 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Tailland?= Date: Sat, 29 Aug 2026 07:41:36 +0200 Subject: [PATCH] refactor: request the neutrally-named token-exchange broker The broker client was renamed in Keycloak so that the contract an agent has to honour no longer names the middleware serving it. This is the last consumer to move; the gateways and LibreChat went first. Co-Authored-By: Claude Opus 5 --- CLAUDE.md | 5 ++++- k8s/deployment.yaml | 2 +- pyproject.toml | 2 +- src/catalogue_agent/config.py | 4 ++-- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 6f0ee28..9d5528f 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -20,7 +20,10 @@ pricing or discontinuation decision. Read only — this agent never touches orde **Calls** — `Approvisionnement.check_availability`, to know remaining stock and open orders before discontinuing a reference. -**Exposes** — nothing yet. Add skills only when another agent needs them. +**Exposes** — one read-only skill, `describe_catalog`: what exists in the +catalog, how it is priced and positioned, and whether it sells. Skills are +decision-shaped, never a generic `query` — add one when another agent has a +specific question, not in advance. ## Why PydanticAI here diff --git a/k8s/deployment.yaml b/k8s/deployment.yaml index af48be0..856a766 100644 --- a/k8s/deployment.yaml +++ b/k8s/deployment.yaml @@ -30,7 +30,7 @@ spec: # repo is public, so the pull needs no credentials — which removes an # imagePullSecret that would otherwise have to be created by hand in # this namespace and kept in step with a GitHub token. - image: gitea.sttlab.eu/stt/classic-models-agent-catalogue:v0.1.0 + image: gitea.sttlab.eu/stt/classic-models-agent-catalogue:v0.1.1 ports: - name: http containerPort: 8080 diff --git a/pyproject.toml b/pyproject.toml index a1ad7cc..b80e48d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "classic-models-agent-catalogue" -version = "0.1.0" +version = "0.1.1" description = "Product management agent for the Classic Models catalog domain" requires-python = ">=3.12" diff --git a/src/catalogue_agent/config.py b/src/catalogue_agent/config.py index 1af805e..89dfa3f 100644 --- a/src/catalogue_agent/config.py +++ b/src/catalogue_agent/config.py @@ -32,9 +32,9 @@ class Settings(BaseSettings): # design — if the middleware serving these URLs is replaced by something # that does not re-exchange, the second scope simply becomes unnecessary. mcp_catalog_url: str = "https://catalog-dev.sttlab.local/catalog-mcp" - mcp_catalog_scope: str = "mcp-catalog-audience kong-token-exchange-broker-audience" + mcp_catalog_scope: str = "mcp-catalog-audience token-exchange-broker-audience" mcp_sales_url: str = "https://sales-dev.sttlab.local/sales-mcp" - mcp_sales_scope: str = "mcp-sales-audience kong-token-exchange-broker-audience" + mcp_sales_scope: str = "mcp-sales-audience token-exchange-broker-audience" # --- inference ---------------------------------------------------------- # Always the estate's LLM endpoint, never a provider directly: it carries