diff --git a/k8s/deployment.yaml b/k8s/deployment.yaml index 7cc47b2..3712502 100644 --- a/k8s/deployment.yaml +++ b/k8s/deployment.yaml @@ -28,7 +28,7 @@ spec: # gitea's own registry: the image sits beside the source it was built # from and inherits the repo's public visibility, so the pull needs no # credentials at all. - image: gitea.sttlab.eu/stt/classic-models-agent-assistant:v0.1.0 + image: gitea.sttlab.eu/stt/classic-models-agent-assistant:v0.2.0 ports: - name: http containerPort: 8080 diff --git a/pyproject.toml b/pyproject.toml index f8b7a4c..4ae0577 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "assistant-agent" -version = "0.1.0" +version = "0.2.0" description = "Assistant — the orchestrating agent for the classic-models estate" readme = "README.md" requires-python = ">=3.12" diff --git a/src/assistant_agent/__pycache__/specialists.cpython-312.pyc b/src/assistant_agent/__pycache__/specialists.cpython-312.pyc index 208c012..0db629b 100644 Binary files a/src/assistant_agent/__pycache__/specialists.cpython-312.pyc and b/src/assistant_agent/__pycache__/specialists.cpython-312.pyc differ diff --git a/src/assistant_agent/specialists.py b/src/assistant_agent/specialists.py index b92cac5..386c588 100644 --- a/src/assistant_agent/specialists.py +++ b/src/assistant_agent/specialists.py @@ -50,10 +50,26 @@ CATALOGUE = Specialist( ) -#: Everything the design foresees, minus what is not built. Ventes, Support, -#: Approvisionnement and Recouvrement belong here as they arrive; the graph -#: needs no change for them, only this list and a realm grant. -SPECIALISTS: tuple[Specialist, ...] = (CATALOGUE,) +APPROVISIONNEMENT = Specialist( + name="approvisionnement", + url="http://approvisionnement-agent.agents.svc.cluster.local:8080/", + audience_scope="classic-models-agent-approvisionnement-audience", + serves="supply: whether a reference can be promised, from stock on hand", + decides=( + "whether a product can be promised to a customer, and why not when it cannot", + "whether a reference is close to needing a reorder", + ), +) + + +#: Everything the design foresees, minus what is not built. Ventes, Support and +#: Recouvrement belong here as they arrive; the graph needs no change for them, +#: only this list and a realm grant. +#: +#: Note what these two have in common from here: nothing. One is PydanticAI over +#: MCP, the other n8n behind an adapter. The orchestrator cannot tell, and that +#: is the point of the protocol. +SPECIALISTS: tuple[Specialist, ...] = (CATALOGUE, APPROVISIONNEMENT) def by_name(name: str) -> Specialist | None: