hermes: normalize image edit references
All checks were successful
Tests / Declarative: Post Actions passed: 246
All checks were successful
Tests / Declarative: Post Actions passed: 246
This commit is contained in:
parent
edcb2935e4
commit
216f567e0f
@ -29,7 +29,7 @@ spec:
|
|||||||
ai.bstein.dev/router-wire-contract: ollama-numeric-keepalive
|
ai.bstein.dev/router-wire-contract: ollama-numeric-keepalive
|
||||||
ai.bstein.dev/isolation: one Hermes process and PVC per Keycloak subject
|
ai.bstein.dev/isolation: one Hermes process and PVC per Keycloak subject
|
||||||
ai.bstein.dev/model-policy: uniform automatic policy with per-user overrides
|
ai.bstein.dev/model-policy: uniform automatic policy with per-user overrides
|
||||||
ai.bstein.dev/config-rev: "20260812-keycloak-image-continuation"
|
ai.bstein.dev/config-rev: "20260812-image-reference-normalization"
|
||||||
vault.hashicorp.com/agent-inject: "true"
|
vault.hashicorp.com/agent-inject: "true"
|
||||||
vault.hashicorp.com/role: hermes-chat
|
vault.hashicorp.com/role: hermes-chat
|
||||||
vault.hashicorp.com/agent-inject-secret-anthropic-token: kv/data/atlas/hermes/agent-tokens
|
vault.hashicorp.com/agent-inject-secret-anthropic-token: kv/data/atlas/hermes/agent-tokens
|
||||||
|
|||||||
@ -151,6 +151,11 @@ def _request(
|
|||||||
def _local_image_data_url(value: str) -> str:
|
def _local_image_data_url(value: str) -> str:
|
||||||
"""Convert a private uploaded image to a data URL for broker transport."""
|
"""Convert a private uploaded image to a data URL for broker transport."""
|
||||||
candidate = value.strip()
|
candidate = value.strip()
|
||||||
|
# Hermes presents generated artifacts to the model as ``MEDIA:<path>``.
|
||||||
|
# Most models pass only the path back to an edit tool, but accepting the
|
||||||
|
# marked form makes natural follow-up edits provider-independent.
|
||||||
|
if candidate.upper().startswith("MEDIA:"):
|
||||||
|
candidate = candidate[6:].strip()
|
||||||
lowered = candidate.lower()
|
lowered = candidate.lower()
|
||||||
if lowered.startswith(("http://", "https://", "data:image/")):
|
if lowered.startswith(("http://", "https://", "data:image/")):
|
||||||
return candidate
|
return candidate
|
||||||
|
|||||||
@ -379,6 +379,7 @@ def test_chat_image_generation_uses_private_owner_broker():
|
|||||||
assert 'name="image_generate_local"' in plugin
|
assert 'name="image_generate_local"' in plugin
|
||||||
assert 'name="image_generate_hosted"' in plugin
|
assert 'name="image_generate_hosted"' in plugin
|
||||||
assert "newest MEDIA: path from the conversation" in plugin
|
assert "newest MEDIA: path from the conversation" in plugin
|
||||||
|
assert 'candidate.upper().startswith("MEDIA:")' in plugin
|
||||||
assert "override=True" not in plugin
|
assert "override=True" not in plugin
|
||||||
|
|
||||||
agent = _documents(HERMES / "agent-deployment.yaml")[0]
|
agent = _documents(HERMES / "agent-deployment.yaml")[0]
|
||||||
@ -484,7 +485,7 @@ def test_chat_reasoning_uses_switchyard_without_owner_credentials():
|
|||||||
statefulset = _documents(HERMES / "chat-statefulset.yaml")[0]
|
statefulset = _documents(HERMES / "chat-statefulset.yaml")[0]
|
||||||
assert statefulset["spec"]["template"]["metadata"]["annotations"][
|
assert statefulset["spec"]["template"]["metadata"]["annotations"][
|
||||||
"ai.bstein.dev/config-rev"
|
"ai.bstein.dev/config-rev"
|
||||||
] == "20260812-keycloak-image-continuation"
|
] == "20260812-image-reference-normalization"
|
||||||
hermes = next(
|
hermes = next(
|
||||||
item
|
item
|
||||||
for item in statefulset["spec"]["template"]["spec"]["containers"]
|
for item in statefulset["spec"]["template"]["spec"]["containers"]
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user