From 35e47479ccb872b85c13a2ac07987c4192556b8a Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Sun, 23 Aug 2026 01:08:35 +0000 Subject: [PATCH] Add reviewed Hermes WebUI release lane --- ci/Jenkinsfile.hermes-webui-image | 314 +++++++++++++ ci/scripts/hermes_webui_flux_release.py | 207 +++++++++ ci/scripts/hermes_webui_release.py | 374 +++++++++++++++ .../applications/harbor/kustomization.yaml | 4 + dockerfiles/Dockerfile.hermes-webui | 105 ++--- dockerfiles/hermes-webui-assets/SOURCE.md | 18 + .../hermes-webui-assets/hermes-agent-192.png | Bin 0 -> 33808 bytes .../hermes-webui-assets/hermes-agent-512.png | Bin 0 -> 124566 bytes .../hermes-webui-assets/hermes-agent.ico | Bin 0 -> 8482 bytes dockerfiles/hermes-webui-base-patch.py | 76 ++++ dockerfiles/hermes-webui-brand-patch.py | 109 +++++ dockerfiles/hermes-webui-brand.css | 105 +++++ dockerfiles/hermes-webui-manifest.json | 43 ++ docs/hermes_webui_release.md | 39 ++ .../harbor/hermes-webui-immutability-job.yaml | 79 ++++ services/harbor/kustomization.yaml | 4 + ...harbor_hermes_webui_immutability_ensure.py | 222 +++++++++ services/jenkins/configmap-jcasc.yaml | 18 + .../hermes-webui-0.52.181/static/index.html | 19 + .../hermes-webui-0.52.181/static/sw.js | 7 + testing/tests/test_hermes_webui_brand.py | 192 ++++++++ testing/tests/test_hermes_webui_release.py | 425 ++++++++++++++++++ 22 files changed, 2283 insertions(+), 77 deletions(-) create mode 100644 ci/Jenkinsfile.hermes-webui-image create mode 100644 ci/scripts/hermes_webui_flux_release.py create mode 100755 ci/scripts/hermes_webui_release.py create mode 100644 dockerfiles/hermes-webui-assets/SOURCE.md create mode 100644 dockerfiles/hermes-webui-assets/hermes-agent-192.png create mode 100644 dockerfiles/hermes-webui-assets/hermes-agent-512.png create mode 100644 dockerfiles/hermes-webui-assets/hermes-agent.ico create mode 100644 dockerfiles/hermes-webui-base-patch.py create mode 100644 dockerfiles/hermes-webui-brand-patch.py create mode 100644 dockerfiles/hermes-webui-brand.css create mode 100644 dockerfiles/hermes-webui-manifest.json create mode 100644 docs/hermes_webui_release.md create mode 100644 services/harbor/hermes-webui-immutability-job.yaml create mode 100644 services/harbor/scripts/harbor_hermes_webui_immutability_ensure.py create mode 100644 testing/fixtures/hermes-webui-0.52.181/static/sw.js create mode 100644 testing/tests/test_hermes_webui_brand.py create mode 100644 testing/tests/test_hermes_webui_release.py diff --git a/ci/Jenkinsfile.hermes-webui-image b/ci/Jenkinsfile.hermes-webui-image new file mode 100644 index 00000000..859f9809 --- /dev/null +++ b/ci/Jenkinsfile.hermes-webui-image @@ -0,0 +1,314 @@ +pipeline { + agent { + kubernetes { + defaultContainer 'python' + yaml """ +apiVersion: v1 +kind: Pod +metadata: + labels: + atlas.bstein.dev/workload: hermes-webui-image-builder +spec: + serviceAccountName: hermes-image-builder + automountServiceAccountToken: false + enableServiceLinks: false + restartPolicy: Never + securityContext: + fsGroup: 1000 + fsGroupChangePolicy: OnRootMismatch + nodeSelector: + kubernetes.io/arch: arm64 + node-role.kubernetes.io/worker: "true" + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: kubernetes.io/hostname + operator: NotIn + values: + - titan-04 + - titan-14 + - titan-18 + - titan-19 + - titan-22 + - titan-24 + preferredDuringSchedulingIgnoredDuringExecution: + - weight: 100 + preference: + matchExpressions: + - key: hardware + operator: In + values: + - rpi5 + imagePullSecrets: + - name: harbor-bstein-robot + containers: + - name: jnlp + image: jenkins/inbound-agent@sha256:8eda4fe2a66bcf6a5e43436d9918fc14c306204dc8fcd75f4e15e0e6e5dc759a + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: ["ALL"] + runAsNonRoot: true + runAsUser: 1000 + seccompProfile: + type: RuntimeDefault + resources: + requests: + cpu: 25m + memory: 256Mi + limits: + cpu: 500m + memory: 512Mi + - name: python + image: registry.bstein.dev/bstein/python@sha256:269541d3387baae008df4608ead893dba2b5cdaad1a5a380731a88992d34b808 + command: ["sleep"] + args: ["99d"] + tty: true + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: ["ALL"] + runAsNonRoot: true + runAsUser: 1000 + seccompProfile: + type: RuntimeDefault + resources: + requests: + cpu: 25m + memory: 64Mi + limits: + cpu: 250m + memory: 256Mi + - name: kaniko + image: gcr.io/kaniko-project/executor@sha256:c3109d5926a997b100c4343944e06c6b30a6804b2f9abe0994d3de6ef92b028e + command: ["/busybox/sh", "-c"] + args: ["/busybox/sleep 99d"] + tty: true + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: ["ALL"] + add: ["CHOWN", "FOWNER", "DAC_OVERRIDE", "SETGID", "SETUID"] + privileged: false + runAsUser: 0 + seccompProfile: + type: RuntimeDefault + resources: + requests: + cpu: 250m + memory: 1Gi + limits: + cpu: "2" + memory: 4Gi +""" + } + } + parameters { + booleanParam( + name: 'PUBLISH_IMAGE', + defaultValue: false, + description: 'Publish the reviewed main revision to Harbor.' + ) + string( + name: 'EXPECTED_SOURCE_REVISION', + defaultValue: '', + description: 'Exact 40-character commit on atlas/titan-iac main.' + ) + string( + name: 'CONFIRM_PUBLISH', + defaultValue: '', + description: 'Enter PUBLISH HERMES WEBUI to confirm the release.' + ) + } + environment { + HERMES_IMAGE = 'registry.bstein.dev/bstein/hermes-webui' + } + options { + disableConcurrentBuilds() + buildDiscarder(logRotator(daysToKeepStr: '30', numToKeepStr: '100', artifactDaysToKeepStr: '30', artifactNumToKeepStr: '100')) + skipDefaultCheckout(true) + timeout(time: 150, unit: 'MINUTES') + } + stages { + stage('Checkout reviewed source') { + steps { + checkout scm + } + } + stage('Enforce release boundary') { + steps { + container('jnlp') { + sh ''' + set -eu + mkdir -p build + test "${PUBLISH_IMAGE}" = "true" + test "${CONFIRM_PUBLISH}" = "PUBLISH HERMES WEBUI" + case "${EXPECTED_SOURCE_REVISION}" in + *[!0-9a-f]*|'') + echo "EXPECTED_SOURCE_REVISION must be a lowercase full commit" >&2 + exit 2 + ;; + esac + test "${#EXPECTED_SOURCE_REVISION}" -eq 40 + actual_revision="$(git rev-parse HEAD)" + test "${actual_revision}" = "${EXPECTED_SOURCE_REVISION}" + test "${actual_revision}" = "$(git rev-parse origin/main)" + test -z "$(git status --porcelain)" + test -f dockerfiles/Dockerfile.hermes-webui + case "${BUILD_NUMBER}" in + ''|0*|*[!0-9]*) + echo "BUILD_NUMBER must be a positive decimal integer" >&2 + exit 2 + ;; + esac + printf '%s\n' \ + "${HERMES_IMAGE}:git-${actual_revision}-build-${BUILD_NUMBER}" \ + > build/hermes-webui.destination + ''' + } + } + } + stage('Validate reviewed WebUI source') { + steps { + container('python') { + sh ''' + set -eu + python3 -m pip install --disable-pip-version-check --no-cache-dir \ + --target=/tmp/hermes-webui-release-test-deps \ + pytest==8.3.4 PyYAML==6.0.2 + PYTHONPATH=/tmp/hermes-webui-release-test-deps \ + python3 -m pytest -q \ + testing/tests/test_hermes_webui_brand.py \ + testing/tests/test_hermes_webui_release.py + ''' + } + } + } + stage('Reject replay before publish') { + steps { + withCredentials([usernamePassword( + credentialsId: 'harbor-robot', + usernameVariable: 'HARBOR_USER', + passwordVariable: 'HARBOR_PASSWORD' + )]) { + sh ''' + set -eu + set +x + destination="$(cat build/hermes-webui.destination)" + python3 ci/scripts/hermes_webui_release.py assert-absent \ + --source-revision "${EXPECTED_SOURCE_REVISION}" \ + --build-number "${BUILD_NUMBER}" \ + --destination "${destination}" + ''' + } + } + } + stage('Build and publish without a daemon') { + steps { + container('kaniko') { + withCredentials([usernamePassword( + credentialsId: 'harbor-robot', + usernameVariable: 'HARBOR_USER', + passwordVariable: 'HARBOR_PASSWORD' + )]) { + sh '''#!/busybox/sh + set -eu + set +x + config_path=/kaniko/.docker/config.json + destination="$(cat build/hermes-webui.destination)" + umask 077 + auth="$(printf '%s:%s' "${HARBOR_USER}" "${HARBOR_PASSWORD}" | /busybox/base64 | /busybox/tr -d '\n')" + /busybox/mkdir -p /kaniko/.docker + /busybox/printf '{"auths":{"registry.bstein.dev":{"auth":"%s"}}}\n' "${auth}" > "${config_path}" + unset HARBOR_USER HARBOR_PASSWORD auth + trap '/busybox/rm -f "${config_path}"' EXIT HUP INT TERM + umask 022 + /kaniko/executor \ + --registry-mirror=harbor-core.harbor.svc.cluster.local \ + --insecure-registry=harbor-core.harbor.svc.cluster.local \ + --context="dir://${WORKSPACE}" \ + --dockerfile="${WORKSPACE}/dockerfiles/Dockerfile.hermes-webui" \ + --destination="${destination}" \ + --digest-file="${WORKSPACE}/build/hermes-webui.digest" \ + --image-name-tag-with-digest-file="${WORKSPACE}/build/hermes-webui.image" \ + --label="org.opencontainers.image.revision=${EXPECTED_SOURCE_REVISION}" \ + --label="org.opencontainers.image.source=https://scm.bstein.dev/atlas/titan-iac" \ + --label="org.opencontainers.image.title=hermes-webui" \ + --cleanup \ + --push-retry=3 + /busybox/chmod 644 build/hermes-webui.digest build/hermes-webui.image + ''' + } + } + } + } + stage('Render reviewed Flux handoff') { + steps { + withCredentials([usernamePassword( + credentialsId: 'harbor-robot', + usernameVariable: 'HARBOR_USER', + passwordVariable: 'HARBOR_PASSWORD' + )]) { + sh ''' + set -eu + set +x + destination="$(cat build/hermes-webui.destination)" + python3 ci/scripts/hermes_webui_release.py render \ + --digest-file build/hermes-webui.digest \ + --image-file build/hermes-webui.image \ + --source-revision "${EXPECTED_SOURCE_REVISION}" \ + --build-number "${BUILD_NUMBER}" \ + --destination "${destination}" \ + --chat-manifest services/hermes/chat-statefulset.yaml \ + --dashboard-manifest services/hermes/deployment.yaml \ + --output-dir build/hermes-webui-release + test -s build/hermes-webui-release/hermes-webui-image-update.patch + test -s build/hermes-webui-release/hermes-webui-image.json + ''' + } + } + } + } + post { + success { + sh ''' + set -eu + expected_files="$(printf '%s\n' \ + build/hermes-webui.destination \ + build/hermes-webui.digest \ + build/hermes-webui.image \ + build/hermes-webui-release/hermes-chat-statefulset.yaml \ + build/hermes-webui-release/hermes-dashboard-deployment.yaml \ + build/hermes-webui-release/hermes-webui-image.json \ + build/hermes-webui-release/hermes-webui-image-update.patch \ + | LC_ALL=C sort)" + actual_files="$(find build -type f -print | LC_ALL=C sort)" + test "${actual_files}" = "${expected_files}" + destination="$(cat build/hermes-webui.destination)" + python3 ci/scripts/hermes_webui_release.py verify-evidence \ + --digest-file build/hermes-webui.digest \ + --image-file build/hermes-webui.image \ + --source-revision "${EXPECTED_SOURCE_REVISION}" \ + --build-number "${BUILD_NUMBER}" \ + --destination "${destination}" \ + --chat-manifest services/hermes/chat-statefulset.yaml \ + --dashboard-manifest services/hermes/deployment.yaml \ + --output-dir build/hermes-webui-release + ''' + archiveArtifacts( + artifacts: 'build/hermes-webui.destination,build/hermes-webui.digest,build/hermes-webui.image,build/hermes-webui-release/hermes-chat-statefulset.yaml,build/hermes-webui-release/hermes-dashboard-deployment.yaml,build/hermes-webui-release/hermes-webui-image.json,build/hermes-webui-release/hermes-webui-image-update.patch', + allowEmptyArchive: false, + fingerprint: true + ) + } + cleanup { + container('kaniko') { + sh '''#!/busybox/sh + /busybox/rm -f /kaniko/.docker/config.json + ''' + } + } + } +} diff --git a/ci/scripts/hermes_webui_flux_release.py b/ci/scripts/hermes_webui_flux_release.py new file mode 100644 index 00000000..5483b333 --- /dev/null +++ b/ci/scripts/hermes_webui_flux_release.py @@ -0,0 +1,207 @@ +#!/usr/bin/env python3 +"""Render and revalidate the two-workload Hermes WebUI Flux handoff.""" + +from __future__ import annotations + +import difflib +import json +import re +from pathlib import Path +from typing import Any + + +DEFAULT_IMAGE = "registry.bstein.dev/bstein/hermes-webui" +DIGEST_PATTERN = re.compile(r"^sha256:[0-9a-f]{64}$") +REVISION_PATTERN = re.compile(r"^[0-9a-f]{40}$") +BUILD_PATTERN = re.compile(r"^[1-9][0-9]*$") +DESTINATION_PATTERN = re.compile( + r"^registry\.bstein\.dev/bstein/hermes-webui:" + r"git-([0-9a-f]{40})-build-([1-9][0-9]*)$" +) + + +def validated(value: str, pattern: re.Pattern[str], label: str) -> str: + """Return a normalized value when it matches the release contract.""" + normalized = value.strip() + if not pattern.fullmatch(normalized): + raise ValueError(f"invalid {label}: expected {pattern.pattern}") + return normalized + + +def validate_destination( + destination: str, source_revision: str, build_number: str +) -> tuple[str, str]: + """Bind one unique build tag to the reviewed revision and Jenkins build.""" + revision = validated(source_revision, REVISION_PATTERN, "source revision") + build = validated(build_number, BUILD_PATTERN, "build number") + match = DESTINATION_PATTERN.fullmatch(destination.strip()) + if not match or match.groups() != (revision, build): + raise ValueError( + "destination must bind the reviewed revision and unique Jenkins build" + ) + return revision, build + + +def render_workload( + source: str, + digest: str, + *, + kind: str, + name: str, + image: str = DEFAULT_IMAGE, +) -> str: + """Replace one WebUI image in one exact Flux workload without reformatting.""" + digest = validated(digest, DIGEST_PATTERN, "image digest") + identity = re.compile( + rf"\A(?:#[^\n]*\n)*apiVersion: apps/v1\nkind: {re.escape(kind)}\n" + rf"metadata:\n name: {re.escape(name)}\n" + ) + if not identity.search(source): + raise ValueError(f"Flux target identity changed: expected {kind}/{name}") + lines = source.splitlines(keepends=True) + matches: list[int] = [] + for index, line in enumerate(lines): + stripped = line.strip() + if not stripped.startswith(f"image: {image}@"): + continue + current_digest = stripped.removeprefix(f"image: {image}@") + validated(current_digest, DIGEST_PATTERN, "current Flux image digest") + matches.append(index) + if len(matches) != 1: + raise ValueError( + f"expected exactly one {image!r} image in {kind}/{name}; " + f"found {len(matches)}" + ) + index = matches[0] + newline = "\n" if lines[index].endswith("\n") else "" + prefix = lines[index][: len(lines[index]) - len(lines[index].lstrip())] + lines[index] = f"{prefix}image: {image}@{digest}{newline}" + return "".join(lines) + + +def _targets(chat_manifest: Path, dashboard_manifest: Path): + return ( + ( + chat_manifest, + "StatefulSet", + "hermes-chat-tenant", + "hermes-chat-statefulset.yaml", + ), + ( + dashboard_manifest, + "Deployment", + "hermes", + "hermes-dashboard-deployment.yaml", + ), + ) + + +def _metadata( + digest: str, source_revision: str, build_number: str, destination: str +) -> dict[str, Any]: + return { + "build_number": build_number, + "digest": digest, + "flux_image": f"{DEFAULT_IMAGE}@{digest}", + "flux_targets": [ + "apps/StatefulSet/hermes/hermes-chat-tenant", + "apps/Deployment/hermes/hermes", + ], + "image": DEFAULT_IMAGE, + "published_tag": destination, + "source_revision": source_revision, + } + + +def _rendered_and_patch( + digest: str, chat_manifest: Path, dashboard_manifest: Path +) -> tuple[dict[str, str], str]: + rendered_targets: dict[str, str] = {} + patch_parts: list[str] = [] + for path, kind, name, artifact_name in _targets(chat_manifest, dashboard_manifest): + source = path.read_text(encoding="utf-8") + rendered = render_workload(source, digest, kind=kind, name=name) + rendered_targets[artifact_name] = rendered + patch_parts.append( + "".join( + difflib.unified_diff( + source.splitlines(keepends=True), + rendered.splitlines(keepends=True), + fromfile=f"a/services/hermes/{path.name}", + tofile=f"b/services/hermes/{path.name}", + ) + ) + ) + return rendered_targets, "".join(patch_parts) + + +def write_release_artifacts( + *, + digest: str, + source_revision: str, + build_number: str, + destination: str, + chat_manifest: Path, + dashboard_manifest: Path, + output_dir: Path, +) -> dict[str, Any]: + """Write two rendered Flux targets, one patch, and credential-free evidence.""" + digest = validated(digest, DIGEST_PATTERN, "image digest") + source_revision, build_number = validate_destination( + destination, source_revision, build_number + ) + rendered_targets, patch = _rendered_and_patch( + digest, chat_manifest, dashboard_manifest + ) + if not patch: + raise ValueError("published digest already matches every Flux target") + output_dir.mkdir(parents=True, exist_ok=True) + for artifact_name, rendered in rendered_targets.items(): + (output_dir / artifact_name).write_text(rendered, encoding="utf-8") + (output_dir / "hermes-webui-image-update.patch").write_text(patch, encoding="utf-8") + metadata = _metadata(digest, source_revision, build_number, destination) + (output_dir / "hermes-webui-image.json").write_text( + json.dumps(metadata, indent=2, sort_keys=True) + "\n", encoding="utf-8" + ) + return metadata + + +def validate_release_artifacts( + *, + digest: str, + source_revision: str, + build_number: str, + destination: str, + chat_manifest: Path, + dashboard_manifest: Path, + output_dir: Path, +) -> None: + """Revalidate the exact successful-build evidence without rewriting it.""" + digest = validated(digest, DIGEST_PATTERN, "image digest") + source_revision, build_number = validate_destination( + destination, source_revision, build_number + ) + expected_names = { + "hermes-webui-image.json", + "hermes-webui-image-update.patch", + "hermes-chat-statefulset.yaml", + "hermes-dashboard-deployment.yaml", + } + entries = list(output_dir.iterdir()) + if {entry.name for entry in entries} != expected_names or not all( + entry.is_file() and not entry.is_symlink() for entry in entries + ): + raise ValueError("release output must contain exactly four evidence files") + rendered_targets, patch = _rendered_and_patch( + digest, chat_manifest, dashboard_manifest + ) + metadata = _metadata(digest, source_revision, build_number, destination) + expected = { + "hermes-webui-image.json": json.dumps(metadata, indent=2, sort_keys=True) + + "\n", + "hermes-webui-image-update.patch": patch, + **rendered_targets, + } + for name, expected_text in expected.items(): + if (output_dir / name).read_text(encoding="utf-8") != expected_text: + raise ValueError(f"release evidence is incomplete or mismatched: {name}") diff --git a/ci/scripts/hermes_webui_release.py b/ci/scripts/hermes_webui_release.py new file mode 100755 index 00000000..1a744508 --- /dev/null +++ b/ci/scripts/hermes_webui_release.py @@ -0,0 +1,374 @@ +#!/usr/bin/env python3 +"""Verify and render a reviewable Hermes WebUI image release.""" + +from __future__ import annotations + +import argparse +import base64 +import json +import os +import urllib.error +import urllib.parse +import urllib.request +from pathlib import Path +from typing import Any, Callable + +from hermes_webui_flux_release import ( + DEFAULT_IMAGE as DEFAULT_IMAGE, + DESTINATION_PATTERN, + DIGEST_PATTERN, + render_workload as render_workload, + validate_destination, + validate_release_artifacts as validate_flux_release_artifacts, + validated as _validated, + write_release_artifacts, +) + +HARBOR_API_ORIGIN = "https://registry.bstein.dev/api/v2.0" +HARBOR_PROJECT = "bstein" +HARBOR_REPOSITORY = "hermes-webui" +IMMUTABLE_REPOSITORY_PATTERN = "hermes-webui" +IMMUTABLE_TAG_PATTERN = "git-*-build-*" + + +class _NoRedirect(urllib.request.HTTPRedirectHandler): + """Never send registry credentials to a redirect target.""" + + def redirect_request(self, _request, _file, _code, _message, _headers, _url): + return None + + +def validate_kaniko_evidence( + *, digest_text: str, image_text: str, destination: str +) -> str: + """Cross-check both independent Kaniko output files against the destination.""" + digest_lines = digest_text.splitlines() + image_lines = image_text.splitlines() + if len(digest_lines) != 1: + raise ValueError("Kaniko digest evidence must contain exactly one line") + if len(image_lines) != 1: + raise ValueError("Kaniko image evidence must contain exactly one line") + digest = _validated(digest_lines[0], DIGEST_PATTERN, "image digest") + if image_lines[0].strip() != f"{destination}@{digest}": + raise ValueError("Kaniko image evidence does not match destination and digest") + return digest + + +def _registry_request(request: urllib.request.Request, timeout: int) -> Any: + """Make a registry request without following redirects.""" + opener = urllib.request.build_opener(_NoRedirect()) + try: + return opener.open(request, timeout=timeout) + except urllib.error.HTTPError as exc: + return exc + + +def _artifact_response( + destination: str, + *, + username: str, + password: str, + opener: Callable[[urllib.request.Request, int], Any] = _registry_request, +) -> tuple[int, bytes]: + """Read one exact Harbor artifact by tag with bounded response size.""" + match = DESTINATION_PATTERN.fullmatch(destination) + if not match: + raise ValueError("invalid destination") + if not username or not password: + raise RuntimeError("Harbor credentials are empty") + tag = destination.rsplit(":", 1)[1] + encoded_tag = urllib.parse.quote(tag, safe="") + auth = base64.b64encode(f"{username}:{password}".encode()).decode("ascii") + request = urllib.request.Request( + f"{HARBOR_API_ORIGIN}/projects/{HARBOR_PROJECT}/repositories/" + f"{HARBOR_REPOSITORY}/artifacts/{encoded_tag}" + "?with_immutable_status=true", + headers={"Accept": "application/json", "Authorization": f"Basic {auth}"}, + method="GET", + ) + with opener(request, 20) as response: + body = response.read(1_048_577) + if len(body) > 1_048_576: + raise RuntimeError("Harbor artifact response exceeded the size limit") + return int(response.status), body + + +def _immutable_rules_response( + *, + username: str, + password: str, + opener: Callable[[urllib.request.Request, int], Any] = _registry_request, +) -> tuple[int, bytes, dict[str, str]]: + """Read the project policy with the same least-privilege publish identity.""" + if not username or not password: + raise RuntimeError("Harbor credentials are empty") + auth = base64.b64encode(f"{username}:{password}".encode()).decode("ascii") + request = urllib.request.Request( + f"{HARBOR_API_ORIGIN}/projects/{HARBOR_PROJECT}/immutabletagrules" + "?page=1&page_size=100", + headers={"Accept": "application/json", "Authorization": f"Basic {auth}"}, + method="GET", + ) + with opener(request, 20) as response: + body = response.read(1_048_577) + if len(body) > 1_048_576: + raise RuntimeError("Harbor immutable rule response exceeded the size limit") + return int(response.status), body, dict(response.headers) + + +def _require_complete_rule_page( + rules: list[dict[str, Any]], headers: dict[str, str] +) -> None: + """Require proof that the bounded first page contains every rule.""" + raw_total = next( + (value for key, value in headers.items() if key.lower() == "x-total-count"), + None, + ) + if raw_total is None or not str(raw_total).isdecimal(): + raise RuntimeError("Harbor immutable rule list omitted a valid total count") + if int(raw_total) != len(rules): + raise RuntimeError("Harbor immutable rule list was truncated") + + +def _normalized_immutable_rule(rule: dict[str, Any]) -> dict[str, Any]: + """Select only fields that bind the server-side build-tag policy.""" + return { + "disabled": bool(rule.get("disabled", False)), + "action": rule.get("action"), + "template": rule.get("template"), + "tag_selectors": [ + { + "kind": item.get("kind"), + "decoration": item.get("decoration"), + "pattern": item.get("pattern"), + } + for item in rule.get("tag_selectors") or [] + if isinstance(item, dict) + ], + "scope_selectors": { + "repository": [ + { + "kind": item.get("kind"), + "decoration": item.get("decoration"), + "pattern": item.get("pattern"), + } + for item in (rule.get("scope_selectors") or {}).get("repository", []) + if isinstance(item, dict) + ] + }, + } + + +def verify_immutable_policy( + *, + username: str, + password: str, + opener: Callable[[urllib.request.Request, int], Any] = _registry_request, +) -> None: + """Fail closed before build unless the exact Harbor rule is active.""" + status, body, headers = _immutable_rules_response( + username=username, password=password, opener=opener + ) + if status != 200: + raise RuntimeError(f"Harbor immutable policy preflight returned HTTP {status}") + try: + rules = json.loads(body.decode("utf-8")) + except (UnicodeDecodeError, json.JSONDecodeError) as exc: + raise RuntimeError("Harbor returned invalid immutable rule JSON") from exc + if not isinstance(rules, list) or not all(isinstance(item, dict) for item in rules): + raise RuntimeError("Harbor immutable rule list has an invalid shape") + _require_complete_rule_page(rules, headers) + expected = { + "disabled": False, + "action": "immutable", + "template": "immutable_template", + "tag_selectors": [ + { + "kind": "doublestar", + "decoration": "matches", + "pattern": IMMUTABLE_TAG_PATTERN, + } + ], + "scope_selectors": { + "repository": [ + { + "kind": "doublestar", + "decoration": "repoMatches", + "pattern": IMMUTABLE_REPOSITORY_PATTERN, + } + ] + }, + } + matches = [ + _normalized_immutable_rule(item) + for item in rules + if _normalized_immutable_rule(item)["tag_selectors"] + == expected["tag_selectors"] + and _normalized_immutable_rule(item)["scope_selectors"] + == expected["scope_selectors"] + ] + if matches != [expected]: + raise RuntimeError("Harbor immutable build-tag policy is absent or not exact") + + +def assert_tag_absent( + destination: str, + *, + username: str, + password: str, + opener: Callable[[urllib.request.Request, int], Any] = _registry_request, +) -> None: + """Reject replay before Kaniko can push an already-used immutable identity.""" + status, _body = _artifact_response( + destination, username=username, password=password, opener=opener + ) + if status == 404: + return + if status == 200: + raise RuntimeError("Harbor destination tag already exists; refusing overwrite") + raise RuntimeError(f"Harbor destination preflight returned HTTP {status}") + + +def verify_registry_digest( + destination: str, + digest: str, + *, + username: str, + password: str, + opener: Callable[[urllib.request.Request, int], Any] = _registry_request, +) -> None: + """Verify Harbor independently resolves the pushed tag to Kaniko's digest.""" + digest = _validated(digest, DIGEST_PATTERN, "image digest") + status, body = _artifact_response( + destination, username=username, password=password, opener=opener + ) + if status != 200: + raise RuntimeError(f"Harbor manifest verification returned HTTP {status}") + try: + artifact = json.loads(body.decode("utf-8")) + except (UnicodeDecodeError, json.JSONDecodeError) as exc: + raise RuntimeError("Harbor returned invalid artifact JSON") from exc + harbor_digest = str(artifact.get("digest") or "").strip() + if not DIGEST_PATTERN.fullmatch(harbor_digest): + raise RuntimeError("Harbor response omitted a valid artifact digest") + if harbor_digest != digest: + raise RuntimeError("Harbor digest does not match Kaniko evidence") + expected_tag = destination.rsplit(":", 1)[1] + matching_tags = [ + item + for item in artifact.get("tags") or [] + if isinstance(item, dict) and item.get("name") == expected_tag + ] + if len(matching_tags) != 1: + raise RuntimeError("Harbor artifact does not contain the expected tag") + if matching_tags[0].get("immutable") is not True: + raise RuntimeError("Harbor did not enforce the expected tag as immutable") + + +def validate_release_artifacts( + *, + digest_file: Path, + image_file: Path, + source_revision: str, + build_number: str, + destination: str, + chat_manifest: Path, + dashboard_manifest: Path, + output_dir: Path, +) -> None: + """Revalidate the exact successful-build evidence without rewriting it.""" + digest = validate_kaniko_evidence( + digest_text=digest_file.read_text(encoding="utf-8"), + image_text=image_file.read_text(encoding="utf-8"), + destination=destination, + ) + validate_flux_release_artifacts( + digest=digest, + source_revision=source_revision, + build_number=build_number, + destination=destination, + chat_manifest=chat_manifest, + dashboard_manifest=dashboard_manifest, + output_dir=output_dir, + ) + + +def _credentials() -> tuple[str, str]: + """Read the masked, runtime-only Jenkins credential environment.""" + username = os.environ.get("HARBOR_USER", "") + password = os.environ.get("HARBOR_PASSWORD", "") + if not username or not password: + raise RuntimeError("Harbor credentials are unavailable") + return username, password + + +def _common_arguments(parser: argparse.ArgumentParser) -> None: + parser.add_argument("--source-revision", required=True) + parser.add_argument("--build-number", required=True) + parser.add_argument("--destination", required=True) + + +def main() -> int: + """Fail closed around the unique tag, then verify and render after push.""" + parser = argparse.ArgumentParser() + commands = parser.add_subparsers(dest="command", required=True) + absent = commands.add_parser("assert-absent") + _common_arguments(absent) + render = commands.add_parser("render") + _common_arguments(render) + render.add_argument("--digest-file", required=True, type=Path) + render.add_argument("--image-file", required=True, type=Path) + render.add_argument("--chat-manifest", required=True, type=Path) + render.add_argument("--dashboard-manifest", required=True, type=Path) + render.add_argument("--output-dir", required=True, type=Path) + verify = commands.add_parser("verify-evidence") + _common_arguments(verify) + verify.add_argument("--digest-file", required=True, type=Path) + verify.add_argument("--image-file", required=True, type=Path) + verify.add_argument("--chat-manifest", required=True, type=Path) + verify.add_argument("--dashboard-manifest", required=True, type=Path) + verify.add_argument("--output-dir", required=True, type=Path) + args = parser.parse_args() + + validate_destination(args.destination, args.source_revision, args.build_number) + if args.command == "verify-evidence": + validate_release_artifacts( + digest_file=args.digest_file, + image_file=args.image_file, + source_revision=args.source_revision, + build_number=args.build_number, + destination=args.destination, + chat_manifest=args.chat_manifest, + dashboard_manifest=args.dashboard_manifest, + output_dir=args.output_dir, + ) + return 0 + + username, password = _credentials() + if args.command == "assert-absent": + verify_immutable_policy(username=username, password=password) + assert_tag_absent(args.destination, username=username, password=password) + return 0 + + digest = validate_kaniko_evidence( + digest_text=args.digest_file.read_text(encoding="utf-8"), + image_text=args.image_file.read_text(encoding="utf-8"), + destination=args.destination, + ) + verify_registry_digest( + args.destination, digest, username=username, password=password + ) + write_release_artifacts( + digest=digest, + source_revision=args.source_revision, + build_number=args.build_number, + destination=args.destination, + chat_manifest=args.chat_manifest, + dashboard_manifest=args.dashboard_manifest, + output_dir=args.output_dir, + ) + return 0 + + +if __name__ == "__main__": # pragma: no cover - exercised through main() + raise SystemExit(main()) diff --git a/clusters/atlas/flux-system/applications/harbor/kustomization.yaml b/clusters/atlas/flux-system/applications/harbor/kustomization.yaml index 225214fe..a1782f58 100644 --- a/clusters/atlas/flux-system/applications/harbor/kustomization.yaml +++ b/clusters/atlas/flux-system/applications/harbor/kustomization.yaml @@ -22,6 +22,10 @@ spec: kind: Job name: harbor-hermes-agent-immutability-ensure-1 namespace: harbor + - apiVersion: batch/v1 + kind: Job + name: harbor-hermes-webui-immutability-ensure-1 + namespace: harbor dependsOn: - name: core - name: longhorn diff --git a/dockerfiles/Dockerfile.hermes-webui b/dockerfiles/Dockerfile.hermes-webui index d6b83e98..2676844c 100644 --- a/dockerfiles/Dockerfile.hermes-webui +++ b/dockerfiles/Dockerfile.hermes-webui @@ -10,85 +10,9 @@ USER root # while the gateway remains the only process that owns an agent conversation. COPY --from=webui /apptoo /opt/hermes-webui -# The account policy caps user-selected reasoning at xhigh even when a provider -# advertises a newer, more expensive level. -RUN /opt/hermes/.venv/bin/python - <<'PY' -from pathlib import Path - -config = Path("/opt/hermes-webui/api/config.py") -source = config.read_text(encoding="utf-8") -before = 'VALID_REASONING_EFFORTS = ("minimal", "low", "medium", "high", "xhigh", "max")' -after = 'VALID_REASONING_EFFORTS = ("minimal", "low", "medium", "high", "xhigh")' -if before not in source: - raise SystemExit("Hermes WebUI reasoning-effort patch context changed") -config.write_text(source.replace(before, after, 1), encoding="utf-8") - -index = Path("/opt/hermes-webui/static/index.html") -source = index.read_text(encoding="utf-8") -before = '
Max
\n' -if before not in source: - raise SystemExit("Hermes WebUI xhigh UI patch context changed") -index.write_text(source.replace(before, "", 1), encoding="utf-8") - -# oauth2-proxy returns 401 for browser API and health probes when the secure -# session expires. Re-enter OIDC with the complete return path instead of -# presenting an endless, inaccurate "connection lost" loop. -ui = Path("/opt/hermes-webui/static/ui.js") -source = ui.read_text(encoding="utf-8") -before = ''' const res=await fetcher(_offlineHealthUrl(),opts); - return !!(res&&res.ok); -''' -after = ''' const res=await fetcher(_offlineHealthUrl(),opts); - if(res&&(res.status===401||res.status===403)){ - const rd=window.location.pathname+window.location.search+window.location.hash; - window.location.assign('/oauth2/start?rd='+encodeURIComponent(rd)); - return false; - } - return !!(res&&res.ok); -''' -if source.count(before) != 1: - raise SystemExit("Hermes WebUI auth-recovery patch context changed") -ui.write_text(source.replace(before, after, 1), encoding="utf-8") - -# Make delegated session hierarchy obvious and collapsible in the sidebar. -sessions = Path("/opt/hermes-webui/static/sessions.js") -source = sessions.read_text(encoding="utf-8") -before = ''' const childLabel=t('session_meta_children', childCount); - childCountEl.textContent=childLabel; - childCountEl.title=_sessionChildBadgeTooltip(childLabel); -''' -after = ''' const childLabel=t('session_meta_children', childCount); - const childrenExpanded=_expandedChildSessionKeys.has(lineageKey)||!!searchQueryRaw; - childCountEl.textContent=(childrenExpanded?'▾ ':'▸ ')+childLabel; - childCountEl.setAttribute('aria-expanded',childrenExpanded?'true':'false'); - childCountEl.title=_sessionChildBadgeTooltip(childLabel); -''' -if source.count(before) != 1: - raise SystemExit("Hermes WebUI child-session toggle patch context changed") -sessions.write_text(source.replace(before, after, 1), encoding="utf-8") - -# A profile's model is only its default; a session-level selector can override -# it. Label the scope so the dropdown does not contradict the effective model. -panels = Path("/opt/hermes-webui/static/panels.js") -source = panels.read_text(encoding="utf-8") -before = " if (typeof p.model === 'string' && p.model) meta.push(p.model.split('/').pop());\n" -after = ''' if (typeof p.model === 'string' && p.model) { - const routeLabels = { - 'atlas/auto/fast': 'Automatic · Fast', - 'atlas/auto/balanced': 'Automatic · Balanced', - 'atlas/auto/deep': 'Automatic · Deep', - 'atlas/auto/maximum': 'Automatic · Maximum', - }; - meta.push('profile default: ' + (routeLabels[p.model] || p.model.split('/').pop())); - } -''' -if source.count(before) != 2: - raise SystemExit("Hermes WebUI profile-model label patch context changed") -panels.write_text(source.replace(before, after, 2), encoding="utf-8") -PY - # Add the Atlas voice bridge as a narrow integration layer. It activates only # when a tenant's server-side STT capability reports the private Jetson route. +COPY dockerfiles/hermes-webui-base-patch.py /tmp/hermes-webui-base-patch.py COPY dockerfiles/hermes-webui-atlas-patch.py /tmp/hermes-webui-atlas-patch.py COPY dockerfiles/hermes-webui-stt-patch.py /tmp/hermes-webui-stt-patch.py COPY dockerfiles/hermes-webui-telegram-project-patch.py /tmp/hermes-webui-telegram-project-patch.py @@ -96,15 +20,24 @@ COPY dockerfiles/hermes-webui-atlas-voice.js /opt/hermes-webui/static/atlas-voic COPY dockerfiles/hermes-webui-atlas-voice.css /opt/hermes-webui/static/atlas-voice.css COPY dockerfiles/hermes-webui-router-patch.py /tmp/hermes-webui-router-patch.py COPY dockerfiles/hermes-webui-router.js /opt/hermes-webui/static/atlas-router.js +COPY dockerfiles/hermes-webui-brand-patch.py /tmp/hermes-webui-brand-patch.py +COPY dockerfiles/hermes-webui-brand.css /opt/hermes-webui/static/hermes-brand.css +COPY dockerfiles/hermes-webui-manifest.json /opt/hermes-webui/static/manifest.json +COPY dockerfiles/hermes-webui-assets/hermes-agent.ico /opt/hermes-webui/static/hermes-agent.ico +COPY dockerfiles/hermes-webui-assets/hermes-agent-192.png /opt/hermes-webui/static/hermes-agent-192.png +COPY dockerfiles/hermes-webui-assets/hermes-agent-512.png /opt/hermes-webui/static/hermes-agent-512.png +RUN /opt/hermes/.venv/bin/python /tmp/hermes-webui-base-patch.py RUN /opt/hermes/.venv/bin/python /tmp/hermes-webui-atlas-patch.py RUN /opt/hermes/.venv/bin/python /tmp/hermes-webui-stt-patch.py RUN /opt/hermes/.venv/bin/python /tmp/hermes-webui-telegram-project-patch.py RUN /opt/hermes/.venv/bin/python /tmp/hermes-webui-router-patch.py +RUN /opt/hermes/.venv/bin/python /tmp/hermes-webui-brand-patch.py RUN /opt/hermes/.venv/bin/python -c 'import cryptography, yaml' \ && grep -Fq 'VALID_REASONING_EFFORTS = ("minimal", "low", "medium", "high", "xhigh")' \ /opt/hermes-webui/api/config.py \ && ! grep -Fq 'data-effort="max"' /opt/hermes-webui/static/index.html \ + && grep -Fq 'res.status===401||res.status===403' /opt/hermes-webui/static/ui.js \ && grep -Fq "window.location.assign('/oauth2/start?rd='" /opt/hermes-webui/static/ui.js \ && grep -Fq "childrenExpanded?'▾ ':'▸ '" /opt/hermes-webui/static/sessions.js \ && grep -Fq "TELEGRAM_PROJECT_NAME = 'Telegram'" /opt/hermes-webui/api/models.py \ @@ -124,6 +57,24 @@ RUN /opt/hermes/.venv/bin/python -c 'import cryptography, yaml' \ && grep -Fq 'def _atlas_tts_language(body):' /opt/hermes-webui/api/routes.py \ && grep -Fq 'request_payload["language"] = _atlas_language' /opt/hermes-webui/api/routes.py \ && grep -Fq 'takeSttLanguage(token)' /opt/hermes-webui/static/atlas-voice.js \ + && grep -Fq 'Hermes Chat' /opt/hermes-webui/static/index.html \ + && grep -Fq 'id="hermesBrandStyles"' /opt/hermes-webui/static/index.html \ + && grep -Fq 'static/hermes-agent-512.png' /opt/hermes-webui/static/index.html \ + && grep -Fq 'prefers-reduced-motion: reduce' /opt/hermes-webui/static/hermes-brand.css \ + && grep -Fq '"name": "Hermes Chat"' /opt/hermes-webui/static/manifest.json \ + && grep -Fq "'./static/hermes-agent-512.png'" /opt/hermes-webui/static/sw.js \ + && printf '%s %s\n' \ + 'aefe65e6574e6f46d3382588f46c508e1b3f3b3c9ce3dec6d335403a5374add9' \ + '/opt/hermes-webui/static/hermes-agent.ico' \ + | sha256sum -c - \ + && printf '%s %s\n' \ + '0e4102cc715372058dd6ab55e9cde2567e46fee5ab6557b564cdd212ccd2616f' \ + '/opt/hermes-webui/static/hermes-agent-192.png' \ + | sha256sum -c - \ + && printf '%s %s\n' \ + '6661e5ca0ecc690af213b9f85f961541e6d3d0e36946ede9d3c2c97dfbd3c23d' \ + '/opt/hermes-webui/static/hermes-agent-512.png' \ + | sha256sum -c - \ && /opt/hermes/.venv/bin/python -m py_compile \ /opt/hermes-webui/api/routes.py \ /opt/hermes-webui/api/upload.py \ diff --git a/dockerfiles/hermes-webui-assets/SOURCE.md b/dockerfiles/hermes-webui-assets/SOURCE.md new file mode 100644 index 00000000..3d68694f --- /dev/null +++ b/dockerfiles/hermes-webui-assets/SOURCE.md @@ -0,0 +1,18 @@ +# Hermes WebUI persona icon provenance + +`hermes-agent.ico` is a byte-for-byte tracked copy of the canonical Hermes +Agent dashboard icon from `/opt/hermes/web/public/favicon.ico`. The same bytes +were independently present at `/opt/hermes/hermes_cli/web_dist/favicon.ico` on +the Atlas coordinator when this asset was imported on 2026-08-23. + +- Canonical ICO SHA-256: `aefe65e6574e6f46d3382588f46c508e1b3f3b3c9ce3dec6d335403a5374add9` +- ICO payloads: PNG-encoded RGBA variants at 16x16, 32x32, and 48x48 +- `hermes-agent-192.png`: 48px canonical variant resized to 192x192 with + Pillow 12.2.0 LANCZOS resampling; SHA-256 + `0e4102cc715372058dd6ab55e9cde2567e46fee5ab6557b564cdd212ccd2616f` +- `hermes-agent-512.png`: 48px canonical variant resized to 512x512 with + Pillow 12.2.0 LANCZOS resampling; SHA-256 + `6661e5ca0ecc690af213b9f85f961541e6d3d0e36946ede9d3c2c97dfbd3c23d` + +The larger files are faithful format/size derivatives for PWA installation; +they do not redraw or replace the supplied persona. diff --git a/dockerfiles/hermes-webui-assets/hermes-agent-192.png b/dockerfiles/hermes-webui-assets/hermes-agent-192.png new file mode 100644 index 0000000000000000000000000000000000000000..2af942172e0b8eb0782f91ee179ea6688c8ebc53 GIT binary patch literal 33808 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
X4bpi*+RwliW_t;_5-B46EM z;IHo-!SoGQ?fch_{p#rs{RV@n#=%awd~5w_eW)!-HUGnh51AlzKuEp1wOj#fl#F$Y z|Bkl>6~`HLamoiv$Gm^%7&z9(G|=w1Q=^j|SOF}>6T=7(K2DA2V1 zu(Q52chUdgZDU5F;LxQ6fYreBHR^;^NKKEMkD@wT=9`{@kOEPL3FWSi_HX-rdao~} z@r?7V-pq2%jI4R?K+*n!M=$&Ya;#B*!xztFNP?JF2TE{SEr;tOr{R$k=ecG-*?RoW~(Ch?&{rX#IUv#a{OT41Kof7 zY*^!~nRX9d`;tZHjYFEN<{GZpEiqjdKD;;X5(hptZ3r#*X*Xi(S_CvFZi5Ki{ZCl} zpa7OBKb@zpdC#Duvw<3W8_}kuyoO7`7i|B2ZP>8%WG>jzZb+v!M)aR6sgkj~V=@B1 zNJN6s@zp7;z&!SiwzeQb4UW&0{L!%;pJKo21w$aY(TG|Q5la-i`gm;H&dByn((c(a zFAAAs$6tnfAjwun%fE1Td&p*WzJFJa-G&F4-FU~F5%FXF?E6YkSpec=2d=C|bj?|+ zZnGzJvw%AdKUrzEc#LdQ;=Q9GvpGQ9oqu;?S>Oo?1;Kw`sTT|=F6*t-%SqlX=tONh zak3BrqhIdh`0rCh0_f+UB`Z(aE7R@v;W_SH(@!;|4B$qNVHt6LRip^G;~V_>N6>;7 zw4fpvJcAbjkpO6!jOlC=TMeScpnZ2H&F}4B28~hKqF!hFu*o{tjF$!*fjuD^M?Ebk-h1oB*y&9h6 z6oDF2TaFJ0M1e*#?mulv@rF9sne`}1F8j%* zX5A$~f=VmoSgJvCLE!m&1tWNF1LP&;%j9ACok1u#DZL zIdAf8Xz@z-A0|`P9f)+bWHNZ@|Lkl`59x*F@(Vg8KV8^k=N>BfrPJ-F7B(RK!Mkl?2u&D!Dl>{v_*Y~ zbu!24WP7zFe}WkU2i;5%$kwT$@LHgg1JgI`-fC>P!wbA}95kI44V79@;q72s57eF~ z4Q~I8Tx>iO=#!D+f``Q{NrX&+RqDQUPL3enqq!kyK6d{{{eh>y-e|j`;-*`ZE`;v_ zZ^*b2{!MbBrFOT0L!lHP^!|r0*RwRA_>lXc9;?AmP4g3Cy6ZnABB$D27w2C$GLs}G zetRU~9;lC}ves~_{aA`g>lHk%;)DE3IODJu0MKHU-=lH$LVa%np)fcggoZcyUU1km z*JKAwpSc`U(2Kwt@PC@?zI{quX{Am1Jmw)SAZrC}cj$OqgKsF&+l1;-0`w@s)T3Z8 zkG()z*&65JP1UEP_wCw$ZpwoI)K2(FG=+6?!rc-pifAo7_Id>{6BiW6eBmH)l2@$-pE`nUTJvXr6VGk0v`tp1g3lJN^01CJ?dZ>h*A@epj^1 zvTG;B6}A>4)VEb*QWl4t7h~By<@%y{Zd>{3w;bnCnaj!7E8l zO-`2a9{L(uw0NE zxf!);S9tf}4WGc&I-%UY3j_bVU!>oC-Mj4j$!q6r8Ec|tVI6PqLGZHOA|ry2OdoX- zc9#B=pWLqkKuWFIMYAjpUqO3nG-lGpz#{YhVvUl--d)}0?xRLNHL-wSA#$#yC#ijS zIYC!9Pda&)mSzWtvjH)yH?A#gvc^@wmx{# z#K2#TbhGG&`3uw-X);}(9-+*?I6qQy5I6Z^;l>d?RX1d&Y#evuyi}aH z)*jCiU^Rx_N&>QZMhqch-_ak8xM5nf#Ggsg`rupuSp#r7B(2AP`r%LUbkEAmP|e&E z!o;h`PaL%%BuHWebP9?2-w^7%Yy>d|9({)c|d@MElV?cyABajNan~o)O+pt zGOxU5WY=g}Acv*+F+=2~Q9*e0P=!5LH$PuS^`@cCGjv{01{2$H%>=6q0h-8Nz9p@PksghT}^RO{4S zKM(eIOL+vv1bKLd_M(I=VGa|diawDD(uGK9j}pO%xcDMW*?m1v@e+y z@h0+*z1GRg2pJ!{cL50I81UPx^q|tF z{hU=>)5J|*8Zwu+K@Hh25o=oxc|pfV#c@cfpc7aJQmC?QAK^^sIK!G&4)5t+S+e+k zzy0J>k)pZ|N{cPOH*!ftoQh{S(noCmS1CXJvS?t$Uvj-ul>A5KA~iv?%=_DZ(ZlBt zr}W!#ZbVpmn_E2uf>~m*woW@yW3a9~M)z(sK3lVR^y;Nl&R~@qwAf;Su<8eRe)54} zE-y%^6VCR;GyW=C_EGqAta6sdr<>+6dPI>(-M>hCqZEDL-JA{3d8B2hqg2W0jUc%X@8H-4&`*f`lhUmKLY+PZuCrAohI95t`22K*Q>^K5QCJ^pnli0P@S`WMD~#fMIHjFd!FdWoI#3&Q5exA0;>|KxGo zFT(__vGtz^a-{Pcr^;QSrlX2-9Zf&*7Syo0zQ_dr43i0Ly z@Gh~RDNZ-5wLuINfH8S7%^pn)ANE`~DR>~F*lH$-pwmGrtQyMSKL`y)mPAj+t) zPUHKjWiC!P^jk`p*HN}XbuM_@%#zP&hPK$-UgkiC@M|gKyD@oEq=;T%@MtiE$15m- z6m9w+6VSBarY?m@Cb%>uFA*cZuTod&%#Z6Zy)H59m=-unsg;MeEo4|Ef0L|-)NcmQZE!2Qm zQI7KW6??NUKMK5nyo3ByW=gyLj$O*z?|i9q|Fm|AADE!-bgV8a0q_gbm|Y6t;=YZi z#3$#+@SuvfJ1HNB+PeuKsWKB;&p?^K;t;6HrTxtjI-k0P}%Di#5vocP13_AWp+hcDrU%Lfkp zJdL-P>r8#D5ehYWT=UQ+tk89v?xfRXFgQ8vRdQrVS*1L15U|He2RE8*x#(ak&aovU;GJU}VslMgz@Feryq%ciLI#ReO&{|52-W8DXx>A9uJ z2C^s9@=Klok`W-i=HBQ6q18V6OYbw=B`)6;Eo**8P*(Lg;>~}__3fi6jRa=Jv&%Yf zawqclQQJ#poeVkxD~u> zk-;U8C=wHd3R$U+2@WH)=Xshr=+WDBU-r$>3vX2r!G95;+wAPo*+gH5-(tVU$UMu1 zzodxs6BJ;`i(Y(+FQ*DcQPP6BJZP6#%5K(LPoFM0k z(hP;rzc5O{=_kz%ZQcEVn=t`cWCuOx|JWF7eh?(bQcyEja(MDFIPbLttZ5>!b!{m^ zz{N5ewed|kju1e@uHfpExYRkP$bL zZjw3=l@)8vy?(^(rRIYC;_ypucX4$rDsx+_=DDMX{3-iKX-+kV!j4B>nRpdiDm+~s zY@Ez}Uavm*po;S@$*I{gEsq-i22&~p3qF`($10wDP3l*71{xS744TNtTy3KAaK#|F z>dgw1@})%$xZZ^Y(oul>bX!1JBWJ>hE)+uRlcy4h40ap~Bvr7%u&nYpR#IfqHowWf zkB{zSw&qc%`1s@1rV@V{*4ev|JMHCTn;UA8k(I^?Cay~`#*4Eh|1-UodA z{6e~yV_)uFc0_b+8DWK{zWqFIOHT^{bJP}y*ki;Bs9r?5zIoJI@o+b5Gd$Up<)Xew zzunaa^6jS()_N-EikC_L>URcmO9oHG!i)^54xofdz!fdl9eU{x1(6x4kOwGMObVryu-TTSL_r> zFMJ#ZQrQin0!X_l@9s)(U8aBqg+_Iszvu^7VV-3-RQFL57!i^NotyIjDhR~zpe{n8 z7}C+ROjr4ZP}ExfF=Ed|^y;TS9+LgZ*Kh48c2E8xY2e(%qtT)ovYli5M3nV=j-48+ zk$n5v_4F$@R><||8@apC!6YyxFsj|jlwX!aD)QjRh-CM_C-2;e{uZfwx}aU46EE#> z$GNy25GFa))9tgPSeo(l+s`{+iI0HVv#cV%1Lp1LtqONukl@Wx6JmK#u*Po=wU;j8 z`T1x=@XU@kDZoM=vHg7MP&TZRFZg*S;o_H~zAg*9np!e9%7Xtmxz!^-IncVO7@=V| zOtH0W+C`l!&(5?w}1Kp6#rT#CBU@|rl`iO4hC=kX@q_s-DX3)>&{nLJUSAV zmXWD0LY67--wlx?0J@I*Op{i1dW<0^QQYk|KKiJG<4Z zh)e!HQG#pUYE-&C{}PPmAZZ&V$<10pJ?y<%VE_WXnJ^3#zUr@Ue1JQ^%F;x% z8WOk-$(08SZ*RqV{ld`w#4>%V_vd!<$3wp95Hr6{-_v!`KN$}8?q3(uc($#vJ)!qk zZB@RB79LzeoerPp6C)gZ4tja`2}4pTvpD|tro1nKHizZ9{;Y%Z2uDt6?Hg5p6PVTJ z^;OtRw}I61&{I8OqZyF~IEjh<1O}5pB67haO(Vvgp+{THU}u=TF%gy!xCV8}p~#+f z<61fu^SA)gRWb$rj4sxR=`Mkna} zPVUwRhF|>bvf_F}e?hcJ+F0z~D+_4R&T`P4Q&rjX-ejGD7G{>yr=u`+wSKUkZKp{H zj-TXhFsLL+p>FRr4=A8WWz%E-QD=oq^JcS-=jeFlz`EGeQFDL?_HrCOil0FIHH3g; zteulltY+G_Y?wOy6&?tLG9-ZNhC^-JP`enBwISu zixOeBDtJ`P>svyAMj(;^?i)6vFy{~y<$?VBPS;?zcz`l?a4AHTH6TEPj1q*fP8hk= zH}hut>;B$>F)IosE^;DjG^FV`JSfzE!Q^&l%P8R{m5gvBQ{!v$fyEGzN(~Q)(njin z(wuQSclNqa!-kopx97R-fLa%d?56TDLCz2A&)QU3(AcgZhKO&|iVq={k1#UnG@UeP z2ZKE};iKzqnca1*=K15bAfn{uh-?BHmyk$EzA1uj(xu7(!Pn-OppV>P&CEEfZ_uVr z5n~ccGr^OD&itQjpUFovWB{%SEq`A3U03$O6VAi?gjjmO3{{o~sy!)qLIraUfHp4D z5@s%a47fDY0G6?24hrF~`!*2#+U`#auWXxmgquBHI*~&Ms{vs`+ud>8x;`7t&v?4kP>^*B;%}TW}&5gqW{2AHeZCx&Xy1To?AfuSU#_9BT}BZt=i~Mobmy;Kq1WuHfT)JOM#=iYr)2x{)K$VT zrjoLH5f?jvrItO}$r}!g78LC@$H>4?$4x&U+~IWk54ulh!~B?Hd7dwn|xbhy_Sh2mYn)BXhm6d<$>{%ah3LaEg90v>IORb-qa=wG;%+z_CzWDyJ|W*`455Gn^?J6`fAS5pk0Cnd!ygJeh+?|sU# zqD>SvoNuZhDwAOJHp>Z-B0H>q;Kfcl9DWIEYIj_hJca78$roH%C$QOV03F6h z<)ROUl0eDiemmHVt81$?+#PvKjU5Z-*9%avbO4d>j8NPe0YfYX+ z*WBm{leZ`$)dIb8Vzgu-xkObk?(4&_tu6YuZ#2-(8TqV=iih2zqi4(Lp&ZQw0FN}7h+N` zQDT6uV%gMDV8n*55i;Ta)Nx1UEc~5gV186mm`Q>z?dF#7bZ5Bp1jppzH`R{PDIcGQ zC29EhE>$q91xZXucpD?PH&yOsaq+rd2$Nz7Jj?ks0g9FH)CZqafiFqqk!0|4^BHrC zFv+1!yfOZG-fv@V8Xr%j`wnTeo>Cvge~vPm-~~$temDziKf4YL;t9P*ciVk|?!VIq zu6<1#SwH%>7p)iTz|IHjvw;TDmg9z+>V05@ylq|R=Q?fCr z;k0gI_)oK!xi!E|v)>3Y|Ae#0oqJi3#!b*WepPCCC0|)+`i2)BedeehrgV1Xf?~73 zI;&b57-aj0dU0hj{?&Xd3rlpBm3P`mb}N2+MV4Ye+*H=1lHN)}+_#+1-4K5&w?T%3n+9TmpRf7(3BqK( z1ZFdsuYG!QWHku|#1G;$f<*TB&YFM4$ocNbOl#-AQ!WyDy&J{hD@j zoa+1CkdkDoNd`2h*~gu({n`hB1M}L?cJimUcKV*@lK$u&v%`t7{_>jjsQ6TyPytk9 z#jW!}W*w}^8hzeoDiB7*pf3upn2ql^?C69b?DQ-jW?N`qoFyYst_^wjeust2Ya<>y z7(zi-TP_6bAb1e{pqIdgW~% z|NX}{b!of*GaAKs{kkx(;Op*6$yYd7nnMEn+JF9$sDj=mL6D=`pqW3#>|Ix$BMWYj zslkW{LF`Qeq~jv|;miDM9?Dqdno1~6BEzzIce*0<$HDAe`g9S{Q@TlrtOt4=ZAdZo z2e+*iN1Zi`sth;G>G-O8&+??Mr|Mr z7RUP=_Sb%gqUYugj`r8rLd|M`OO-NfPPD%|Fh37DIP&q?{|Ps!0zyFh7^xjA7<^(o z!a2Cw&)c-s=l=erG^l_k7Y6QMGqBJxMs2JV6XA73xxY03u`A}^xtDC}>^UDrzL|wf zpV8Dm-_k9{zl2KNm@nFXjU`a?#xMCVx5Po;=lM;R!ZDOO9_&;dfXaJaNSNl5{ zuE)6&pX(&#b7Nk@%lknwUXOFrSp+8)1lL9^?&7~AI)HXnVaun@Qsh#^nX|qOv7d?XEREj>eVU6uR%#|N2VUI*&QO z6Z*&Ar|Px#hwH&Qw=b7V_!|agn=?C!k);y3v#*Aq{RM%;zzQosc8=SjkJ2HEql%_* z7C(PFG9)JrGkUaMRX^BY?Q7EfSQq*`^6U%ha2IJ6b+cOxfJW>;uc{x%L-*t9f1JUOO+;kYAg!~M*k+L<>!}3@c?EvI z^`Q$j|Eq+e`hh3w6FQhOA~f^#yw3i#GN8;*tgSH?^#4aac{M4n`<|fW?PR#+B7puB z+{pt*1D(9o8r@fuI|nf@bFa#H2|nC8z}S7R zM_UX8IAC!CoM=&boIWh~nmN2uND~!t?6_}nHlO!L?lIb$-7*hkonW!kGHQn;f;FJg zt$@7^X1K68WWZr{acZ*f-#KN#wR~%t7M5B2;BpEj&e$) zrb2z;l;?uHo{Cy!!GJ3m$(!$(BNqZHseb;hm5^E4d;O=6I84)e%;Q+8?=s4Us$=m& zi4ll6>>LjMf2QbiXTsoO?8Pt>L@T3UZUVkhNuzyAIo&?n14OQ9xx(A@uGgOqlQK26 z<0ml5;cWP=jw2Ii^&0sHG99>vz~RDkiW>Yn7gNT9*e21U{pr7N zM~{!?2ohtWLcS=ritM)>vNHAq0lAZy1qe|Rq^R#>JqY?&2?6Y>#f_-ODkIR5c)sUI znVPz4)p_F^FycAb;5$0}GwChOEQ#HgD!u*2VOfj8=Fa!M3Z8R`LsE;z7uQS|>@k$L zSE_GQQ!-Z4e{2PVKq)2MZ?DIdG*l&r=3s3H1Phv5Hv!)@g(w8vLIPF}yxjE^+Dq|7 za+YP!pzo=iNAZS$vUyrLx+JP)rYH3LNPv&??R%OXM%G4fgNq zZQhp4T4z0+%TW>?w_qj8tPwd3zv-k4E1G&-CRq};?VqXRY>uOVxL1yUuzR(rrv{|Y z(b}C(g-_?{;v}w$;~qiCpJ4=GPMfi!L&?C#URJ_!L06Go_%Y_3qRYE$kQEwpeHG(Z z*$6c)k_*O+Yv|GCZVv2V!B zAAg3T`_VldViWKNEj8NYV_>R{s}=-Rq5Rtgc>)mnU3|eyB8JeumGff6{z>O^4|emD z?QZ2_ev==txSwbvv)_lNJE{Q~soSq5IOh(C05J{;zMlxfPyQm_Z0L;zDlekL%lGGZ0SbN?7n zI^$Y|B!tO+0&6jHZ7q!O1LNgz%#IavS2)$`(+E(LHLOvI5E-3j16X4GD+nmlLHt+g zA%Gw8uTJLP902CQn8zYV$~+@jQ(||Sp9BwLwV(=c8wU&zpW@tNnnhc^7A}LV=6)$-O*+#H9_5nbxiHzf#r1lI^pj7gTb?|)eYgFIXni&LIY9iP!BKg8 zN9=H9B?zd)SLO+K02J$VFxqQfv9BVa{zzdrR5Tt_qdB058KJ_f4H{{l8BPjWK2YCOipZkYwHZv$$XS*-u;TPe!s5{`d(M7W@ju>PP;4Oo?a* zi39>t#l&#V4a7LqS;}wVjHNUt=cgI?oIfI>Vb^B5vk0 z@~^n9Al}grWsn0;;S?=^|H3TEq4V`1N>mEG#&he=&sUQ?sfKvssfVOeG$fprr!29o z1Cyt0vwMRoG&{ww06ExnlKhG2O0$>eMJbUW?2_`>#9@vaju6JA7@k6UQOdkjPN?aZ zC!qd97dpppq;wn3S60-!4ZB!BVOntsE>OU4l|PM3nAPR-$L!{Uk8<40Uo%4f`iqAK zOUrI5OlcMb9~s%v2eHxC;@-K2eesDKtOn`ap{c#9I~|8(wM3vozLw&_Ua$~FwSC9O zUn&m3CI|0N`zQcJ@02N3dRxRtnp}fKpp*+;Ic4Fgn~MhnYcPkPK4pWNIRM~U)WBf- z0{CrJyu!5^XS&6sgR&FmzXv}%Y2bqrUw!wwd_1G*_VXwyhh^xaf`yr=*b)-1VwUzE z;#ycuWgiqil`zkbWUruy39(FA7Lfuld)&%w++bn3+XGnx)&P}K_xvtOf^L!Vlt0LB z!Ecmu(bj^5#3NO5<<-C&CIvRdzr2M-#D<&kN_f{s^RD>y0)V-?|FB)Z$7+#0^$Vy) z#OV(m)K7@Aw+#Jwqfw&<`T{pJhg>a{1f6hUgsxJ)ArIrn$Mk?XvOw+kwCwibBJuRWeSBzg>Sr4VqChOw>x$V)$czQg-<7>He`y<- zrAKg2;w(OV__`y*)Ct;_b$eDWc4f2*%vB|OcV*VB;;HXU*4TAM@IG6&BZF0gVwc2- z*noNPTeE-;^E$>@Q4nwZKT#QUYc24e_RZZe2MQa7tS^MPLE!I*?gtkZD<>vFF%bw8 z%@r4IyjzsKakIBuyX^h7fl31h5Dq{~Q4tk3g>OSr;Ws0~c(YLA`}ZSC(O|J_>)!b+ z_=Gu#-kfN+aE5ZpzeteWIND9gY+EiADmfXj6PzZ)J@0f!BnngltKXVAiTJ}+d;e-0 zd@?zGPE*7YnMT9AMhYwx3uP=Ss+?#od zM1S3YGHBeZDt|;zSoCX0Mh%uLE#3TM@9>@&g$;_b>*Qf2pNwOkoG1_WLrHevD*iGw z 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 JPDHLkV1lKhD4GBO literal 0 HcmV?d00001 diff --git a/dockerfiles/hermes-webui-assets/hermes-agent.ico b/dockerfiles/hermes-webui-assets/hermes-agent.ico new file mode 100644 index 0000000000000000000000000000000000000000..7a949324da9d03b448247867439b632a216d884d GIT binary patch literal 8482 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 TN=8UMJ-fVV1sVCj#?*fS3 None: + """Replace one exact upstream fragment and reject pin drift.""" + source = path.read_text(encoding="utf-8") + if source.count(before) != count: + raise SystemExit( + f"Hermes brand patch context changed in {path}: {before[:80]!r}" + ) + path.write_text(source.replace(before, after, count), encoding="utf-8") + + +def replace_between_exact(path: Path, start: str, end: str, after: str) -> None: + """Replace one uniquely bounded upstream region and reject ambiguous input.""" + source = path.read_text(encoding="utf-8") + if source.count(start) != 1 or source.count(end) != 1: + raise SystemExit( + f"Hermes brand patch context changed in {path}: {start[:80]!r}" + ) + start_index = source.index(start) + end_index = source.index(end, start_index) + path.write_text(source[:start_index] + after + source[end_index:], encoding="utf-8") + + +index = ROOT / "static/index.html" +replace_exact(index, "Hermes", "Hermes Chat") +replace_exact( + index, + """ + +""", + """ + +""", +) +replace_exact( + index, + '', + '', +) +replace_exact( + index, + '', + '', +) +replace_exact( + index, + '', + '', +) +replace_exact( + index, + '', + '', +) +replace_exact( + index, + '', + '', +) +replace_exact( + index, + "var c=t==='dark'?'#141425':'#FAF7F0';", + "var c=t==='dark'?'#0D1420':'#E8F1F2';", +) +replace_exact( + index, + '', + '\n' + '', +) +replace_between_exact( + index, + '