镜像构建历史
# 2026-10-23 19:31:34 0.00B 设置默认要执行的命令
CMD []
# 2026-10-23 19:31:34 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["/app/bin/start-studio-all.sh"]
# 2026-10-23 19:31:34 0.00B 声明容器运行时监听的端口
EXPOSE [50000/udp 50001/udp 50002/udp 50003/udp 50004/udp 50005/udp 50006/udp 50007/udp 50008/udp 50009/udp 50010/udp 50011/udp 50012/udp 50013/udp 50014/udp 50015/udp 50016/udp 50017/udp 50018/udp 50019/udp 50020/udp 50021/udp 50022/udp 50023/udp 50024/udp 50025/udp 50026/udp 50027/udp 50028/udp 50029/udp 50030/udp 50031/udp 50032/udp 50033/udp 50034/udp 50035/udp 50036/udp 50037/udp 50038/udp 50039/udp 50040/udp 50041/udp 50042/udp 50043/udp 50044/udp 50045/udp 50046/udp 50047/udp 50048/udp 50049/udp 50050/udp 50051/udp 50052/udp 50053/udp 50054/udp 50055/udp 50056/udp 50057/udp 50058/udp 50059/udp 50060/udp 50061/udp 50062/udp 50063/udp 50064/udp 50065/udp 50066/udp 50067/udp 50068/udp 50069/udp 50070/udp 50071/udp 50072/udp 50073/udp 50074/udp 50075/udp 50076/udp 50077/udp 50078/udp 50079/udp 50080/udp 50081/udp 50082/udp 50083/udp 50084/udp 50085/udp 50086/udp 50087/udp 50088/udp 50089/udp 50090/udp 50091/udp 50092/udp 50093/udp 50094/udp 50095/udp 50096/udp 50097/udp 50098/udp 50099/udp 50100/udp 50101/udp 50102/udp 50103/udp 50104/udp 50105/udp 50106/udp 50107/udp 50108/udp 50109/udp 50110/udp 50111/udp 50112/udp 50113/udp 50114/udp 50115/udp 50116/udp 50117/udp 50118/udp 50119/udp 50120/udp 50121/udp 50122/udp 50123/udp 50124/udp 50125/udp 50126/udp 50127/udp]
# 2026-10-23 19:31:34 0.00B 声明容器运行时监听的端口
EXPOSE [6060/tcp]
# 2026-10-23 19:31:34 0.00B 设置环境变量 PATH
ENV PATH=/home/agent/.hermes-web-ui/coding-agent/npm/bin:/opt/hermes/.venv/bin:/opt/hermes/bin:/opt/hermes/.venv/bin:/opt/data/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2026-10-23 19:31:34 0.00B 设置环境变量 NPM_CONFIG_PREFIX
ENV NPM_CONFIG_PREFIX=/home/agent/.hermes-web-ui/coding-agent/npm
# 2026-10-23 19:31:34 0.00B 设置环境变量 STUDIO_P2P_UDP_PORT_RANGE
ENV STUDIO_P2P_UDP_PORT_RANGE=50000-50127
# 2026-10-23 19:31:34 0.00B 设置环境变量 HERMES_WEB_UI_MANAGED_GATEWAY
ENV HERMES_WEB_UI_MANAGED_GATEWAY=1
# 2026-10-23 19:31:34 0.00B 设置环境变量 HERMES_HOME
ENV HERMES_HOME=/home/agent/.hermes
# 2026-10-23 19:31:34 0.00B 设置环境变量 HOME
ENV HOME=/home/agent
# 2026-10-23 19:31:34 0.00B 设置环境变量 NODE_ENV
ENV NODE_ENV=production
# 2026-10-23 19:31:34 706.00B 执行命令并创建新的镜像层
RUN |1 NODE_VERSION=24.22.1 /bin/sh -c npm run verify:sharp-runtime # buildkit
# 2026-10-23 19:31:33 114.72MB 执行命令并创建新的镜像层
RUN |1 NODE_VERSION=24.22.1 /bin/sh -c npm run build && npm prune --omit=dev # buildkit
# 2026-10-23 19:29:56 63.05MB 复制新文件或目录到容器中
COPY . . # buildkit
# 2026-10-23 19:29:55 1.33GB 执行命令并创建新的镜像层
RUN |1 NODE_VERSION=24.22.1 /bin/sh -c npm ci --ignore-scripts && npm rebuild node-pty # buildkit
# 2026-10-23 19:29:25 0.00B 设置环境变量 NODE_OPTIONS
ENV NODE_OPTIONS=--max-old-space-size=4096
# 2026-10-23 19:29:25 491.18KB 复制新文件或目录到容器中
COPY package*.json ./ # buildkit
# 2026-10-23 19:29:25 0.00B 设置工作目录为/app
WORKDIR /app
# 2026-10-23 19:29:25 202.02MB 执行命令并创建新的镜像层
RUN |1 NODE_VERSION=24.22.1 /bin/sh -c ARCH=$(dpkg --print-architecture) && if [ "$ARCH" = "amd64" ]; then NODE_ARCH="x64"; else NODE_ARCH="$ARCH"; fi && echo "Downloading Node.js v${NODE_VERSION} for ${NODE_ARCH}" && curl -fsSL "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-${NODE_ARCH}.tar.gz" -o /tmp/node.tar.gz && rm -rf /usr/local/lib/node_modules/npm /usr/local/lib/node_modules/corepack /usr/local/bin/node /usr/local/bin/npm /usr/local/bin/npx /usr/local/bin/corepack && tar -xzf /tmp/node.tar.gz -C /usr/local --strip-components=1 && rm -f /tmp/node.tar.gz && node --version && npm --version # buildkit
# 2026-10-23 19:29:23 219.46MB 执行命令并创建新的镜像层
RUN |1 NODE_VERSION=24.22.1 /bin/sh -c apt-get update && apt-get install -y --no-install-recommends ca-certificates curl ffmpeg make g++ && rm -rf /var/lib/apt/lists/* # buildkit
# 2026-10-23 19:29:23 0.00B 指定运行容器时使用的用户
USER root
# 2026-10-23 19:29:23 0.00B 定义构建参数
ARG NODE_VERSION=24.22.1
# 2026-10-23 10:28:32 0.00B 设置默认要执行的命令
CMD []
# 2026-10-23 10:28:32 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["/opt/hermes/docker/entrypoint-dispatch.sh"]
# 2026-10-23 10:28:32 0.00B 创建挂载点用于持久化数据或共享数据
VOLUME [/opt/data]
# 2026-10-23 10:28:32 0.00B 设置环境变量 HERMES_PYTHON
ENV HERMES_PYTHON=/opt/hermes/.venv/bin/python
# 2026-10-23 10:28:32 3.18KB 执行命令并创建新的镜像层
RUN |7 HERMES_BOT_DESKTOP=0 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c mkdir -p /opt/data && chmod 0644 /opt/hermes/tools/facts.json && rm -f /opt/hermes/.venv/.lock /opt/hermes/pm-runtime/.lock # buildkit
# 2026-10-23 10:28:32 0.00B 设置环境变量 PATH
ENV PATH=/opt/hermes/bin:/opt/hermes/.venv/bin:/opt/data/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2026-10-23 10:28:32 1.56KB 复制新文件或目录到容器中
COPY --chmod=0755 docker/entrypoint-dispatch.sh /opt/hermes/docker/entrypoint-dispatch.sh # buildkit
# 2026-10-23 10:28:32 3.71KB 复制新文件或目录到容器中
COPY --chmod=0755 docker/hermes-exec-shim.sh /opt/hermes/bin/hermes # buildkit
# 2026-10-23 10:28:32 0.00B 设置环境变量 XDG_RUNTIME_DIR
ENV XDG_RUNTIME_DIR=/tmp/hermes-runtime
# 2026-10-23 10:28:32 0.00B 设置环境变量 HERMES_WRITE_SAFE_ROOT
ENV HERMES_WRITE_SAFE_ROOT=/opt/data
# 2026-10-23 10:28:32 0.00B 设置环境变量 HERMES_HOME
ENV HERMES_HOME=/opt/data
# 2026-10-23 10:28:32 0.00B 设置环境变量 HERMES_TUI_DIR
ENV HERMES_TUI_DIR=/opt/hermes/ui-tui
# 2026-10-23 10:28:32 0.00B 设置环境变量 HERMES_WEB_DIST
ENV HERMES_WEB_DIST=/opt/hermes/hermes_cli/web_dist
# 2026-10-23 10:28:32 2.23KB 复制新文件或目录到容器中
COPY --chmod=0755 docker/cont-init.d/02-reconcile-profiles /etc/cont-init.d/02-reconcile-profiles # buildkit
# 2026-10-23 10:28:32 4.00KB 复制新文件或目录到容器中
COPY --chmod=0755 docker/cont-init.d/015-supervise-perms /etc/cont-init.d/015-supervise-perms # buildkit
# 2026-10-23 10:28:32 66.00B 执行命令并创建新的镜像层
RUN |7 HERMES_BOT_DESKTOP=0 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c mkdir -p /etc/cont-init.d && printf '#!/command/with-contenv sh\nexec /opt/hermes/docker/stage2-hook.sh\n' > /etc/cont-init.d/01-hermes-setup && chmod +x /etc/cont-init.d/01-hermes-setup # buildkit
# 2026-10-23 10:28:32 4.98KB 复制新文件或目录到容器中
COPY docker/s6-rc.d/ /etc/s6-overlay/s6-rc.d/ # buildkit
# 2026-10-23 10:28:32 565.00B 执行命令并创建新的镜像层
RUN |7 HERMES_BOT_DESKTOP=0 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c set -eu; if [ ! -f /opt/hermes/install-stamp.json ]; then printf '{"schemaVersion":2,"commit":"0000000000000000000000000000000000000000","distribution":"docker","source":"fallback","updateMechanism":"external"}\n' > /opt/hermes/install-stamp.json; fi; python3 -c 'import json; from pathlib import Path; path = Path("/opt/hermes/install-stamp.json"); stamp = json.loads(path.read_text()); stamp["pmRuntime"] = "/opt/hermes/pm-runtime"; path.write_text(json.dumps(stamp) + "\n")'; mkdir -p /etc/hermes; python3 -c 'import json, pathlib, tomllib; project = tomllib.loads(pathlib.Path("/opt/hermes/pyproject.toml").read_text(encoding="utf-8"))["project"]; stamp = json.loads(pathlib.Path("/opt/hermes/install-stamp.json").read_text(encoding="utf-8")); commit = stamp.get("commit"); revision = commit if commit and set(commit) != {"0"} else None; marker = pathlib.Path("/etc/hermes/image-provenance.json"); marker.write_text(json.dumps({"schema": 1, "deployment_kind": "image", "manager": "docker", "image": "nousresearch/hermes-agent", "version": project["version"], "revision": revision}, sort_keys=True, separators=(",", ":")) + "\n", encoding="utf-8"); marker.chmod(0o444)' # buildkit
# 2026-10-23 10:28:32 3.72KB 执行命令并创建新的镜像层
RUN |7 HERMES_BOT_DESKTOP=0 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c mkdir -p /opt/hermes/bin && cp /opt/hermes/docker/hermes-exec-shim.sh /opt/hermes/bin/hermes && chmod 0755 /opt/hermes /opt/hermes/bin/hermes && printf 'docker\n' > /opt/hermes/.install_method # buildkit
# 2026-10-23 10:28:32 0.00B 指定运行容器时使用的用户
USER root
# 2026-10-23 10:28:32 4.13MB 执行命令并创建新的镜像层
RUN |7 HERMES_BOT_DESKTOP=0 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c /opt/hermes/.venv/bin/python -m docker.build_agent # buildkit
# 2026-10-23 10:28:31 86.22MB 复制新文件或目录到容器中
COPY --chmod=a+rX,go-w . . # buildkit
# 2026-10-23 10:28:31 0.00B 执行命令并创建新的镜像层
RUN |7 HERMES_BOT_DESKTOP=0 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c mkdir -p /tmp/hermes-runtime && chmod 0700 /tmp/hermes-runtime # buildkit
# 2026-10-23 10:28:31 0.00B 执行命令并创建新的镜像层
RUN |7 HERMES_BOT_DESKTOP=0 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c mkdir -p /tmp/.X11-unix && chmod 1777 /tmp/.X11-unix # buildkit
# 2026-10-23 10:28:31 3.19MB 复制新文件或目录到容器中
COPY /opt/products/web /opt/hermes/hermes_cli/web_dist # buildkit
# 2026-10-23 10:28:31 4.12MB 复制新文件或目录到容器中
COPY /opt/products/tui /opt/hermes/ui-tui # buildkit
# 2026-10-23 10:28:31 88.10MB 执行命令并创建新的镜像层
RUN |7 HERMES_BOT_DESKTOP=0 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c cd plugins/platforms/photon/sidecar && npm ci --no-audit --fetch-retries=5 && npm cache clean --force # buildkit
# 2026-10-23 10:28:30 64.73KB 复制新文件或目录到容器中
COPY plugins/platforms/photon/sidecar/package.json plugins/platforms/photon/sidecar/package-lock.json plugins/platforms/photon/sidecar/patch-spectrum-mixed-attachments.mjs plugins/platforms/photon/sidecar/ # buildkit
# 2026-10-23 10:28:30 21.00B 执行命令并创建新的镜像层
RUN |7 HERMES_BOT_DESKTOP=0 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c mkdir -p /opt/hermes/node_modules/.bin && ln -s ../typescript/bin/tsc /opt/hermes/node_modules/.bin/tsc # buildkit
# 2026-10-23 10:28:30 24.35MB 复制新文件或目录到容器中
COPY /opt/hermes/node_modules/typescript /opt/hermes/node_modules/typescript # buildkit
# 2026-10-23 10:28:18 476.66MB 执行命令并创建新的镜像层
RUN |7 HERMES_BOT_DESKTOP=0 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c python3 -m pm.build_env --source /opt/hermes --python /usr/local/bin/python3 --cache /opt/hermes/uv-cache --out /opt/hermes/.venv --no-install-project --sealed --record-selection --extra all --extra messaging --extra otlp --extra anthropic --extra bedrock --extra azure-identity --extra matrix --extra google-chat # buildkit
# 2026-10-23 10:27:41 0.00B 执行命令并创建新的镜像层
RUN |7 HERMES_BOT_DESKTOP=0 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c touch ./README.md # buildkit
# 2026-10-23 10:27:41 1.27MB 复制新文件或目录到容器中
COPY pyproject.toml uv.lock ./ # buildkit
# 2026-10-23 10:27:41 0.00B 设置环境变量 CC CXX
ENV CC=gcc CXX=g++
# 2026-10-23 10:27:41 0.00B 设置环境变量 HERMES_PYTHON
ENV HERMES_PYTHON=/usr/local/bin/python3
# 2026-10-23 10:27:41 2.11MB 执行命令并创建新的镜像层
RUN |7 HERMES_BOT_DESKTOP=0 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c python3 -c 'from pathlib import Path; from pm import stage_manager_runtime; from scripts.bundles.payload import seal_pm_runtime; root = Path("/opt/hermes"); python = Path("/usr/local/bin/python3").resolve(); stage_manager_runtime(python=python, destination=root / "pm-runtime", project=root / "pm"); seal_pm_runtime(root, python)' # buildkit
# 2026-10-23 10:27:40 1.38GB 执行命令并创建新的镜像层
RUN |7 HERMES_BOT_DESKTOP=0 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c set -eu; python3 -c 'from pm import ensure; [ensure(name, explicit=True) for name in ("uv", "chromium", "npm", "ffmpeg", "ripgrep")]'; python3 -c 'from pathlib import Path; from pm import installed_package; [Path("/usr/local/bin", command).symlink_to(installed_package(package).binary) for command, package in (("python3", "python"), ("node", "node"), ("npm", "npm"), ("ffmpeg", "ffmpeg"), ("rg", "ripgrep"))]; Path("/usr/local/bin/ffprobe").symlink_to(installed_package("ffmpeg").binary.with_name("ffprobe"))'; ffmpeg -version >/dev/null; ffprobe -version >/dev/null; rg --version >/dev/null; python3 -c 'import shutil; from pathlib import Path; from pm import env_for; Path("/usr/local/bin/npx").symlink_to(shutil.which("npx", path=env_for("npm", base_env={})["PATH"]))'; node --version; npm --version; browser_bin="$(python3 -c 'from pm import installed_package; print(installed_package("chromium").binary)')"; test -n "$browser_bin"; "$browser_bin" --version; mkdir -p /etc/hermes; printf '%s' "$browser_bin" > /etc/hermes/agent-browser-executable-path # buildkit
# 2026-10-23 10:27:26 7.97KB 复制新文件或目录到容器中
COPY scripts/bundles/payload.py scripts/bundles/payload.py # buildkit
# 2026-10-23 10:27:26 14.25KB 复制新文件或目录到容器中
COPY hermes_cli/__init__.py hermes_cli/runtime_state.py hermes_cli/ # buildkit
# 2026-10-23 10:27:26 67.77KB 复制新文件或目录到容器中
COPY hermes_constants.py hermes_constants.py # buildkit
# 2026-10-23 10:27:26 671.86KB 复制新文件或目录到容器中
COPY pm/ pm/ # buildkit
# 2026-10-23 06:48:19 0.00B 设置环境变量 HERMES_RUNTIME_DIR
ENV HERMES_RUNTIME_DIR=/opt/hermes/tools
# 2026-10-23 06:48:19 0.00B 设置工作目录为/opt/hermes
WORKDIR /opt/hermes
# 2026-10-23 06:48:19 8.95KB 执行命令并创建新的镜像层
RUN |7 HERMES_BOT_DESKTOP=0 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c useradd -u 10000 -m -d /opt/data hermes # buildkit
# 2026-10-23 06:48:19 2.73KB 复制新文件或目录到容器中
COPY --chmod=0755 docker/tini-shim.sh /usr/bin/tini # buildkit
# 2026-10-23 06:48:19 6.01MB 执行命令并创建新的镜像层
RUN |7 HERMES_BOT_DESKTOP=0 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c set -eu; case "${TARGETARCH:-amd64}" in amd64) s6_arch="x86_64"; s6_arch_sha="${S6_OVERLAY_X86_64_SHA256}" ;; arm64) s6_arch="aarch64"; s6_arch_sha="${S6_OVERLAY_AARCH64_SHA256}" ;; *) echo "Unsupported TARGETARCH=${TARGETARCH} for s6-overlay" >&2; exit 1 ;; esac; base="https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}"; curl -fsSL --retry 3 -o /tmp/s6-overlay-noarch.tar.xz "${base}/s6-overlay-noarch.tar.xz"; curl -fsSL --retry 3 -o /tmp/s6-overlay-symlinks-noarch.tar.xz "${base}/s6-overlay-symlinks-noarch.tar.xz"; curl -fsSL --retry 3 -o /tmp/s6-overlay-arch.tar.xz "${base}/s6-overlay-${s6_arch}.tar.xz"; { printf '%s %s\n' "${S6_OVERLAY_NOARCH_SHA256}" /tmp/s6-overlay-noarch.tar.xz; printf '%s %s\n' "${s6_arch_sha}" /tmp/s6-overlay-arch.tar.xz; printf '%s %s\n' "${S6_OVERLAY_SYMLINKS_SHA256}" /tmp/s6-overlay-symlinks-noarch.tar.xz; } > /tmp/s6-overlay.sha256; sha256sum -c /tmp/s6-overlay.sha256; tar -C / -Jxpf /tmp/s6-overlay-noarch.tar.xz; tar -C / -Jxpf /tmp/s6-overlay-arch.tar.xz; tar -C / -Jxpf /tmp/s6-overlay-symlinks-noarch.tar.xz; rm /tmp/s6-overlay-*.tar.xz /tmp/s6-overlay.sha256 # buildkit
# 2026-10-23 06:48:18 0.00B 定义构建参数
ARG S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e
# 2026-10-23 06:48:18 0.00B 定义构建参数
ARG S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581
# 2026-10-23 06:48:18 0.00B 定义构建参数
ARG S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563
# 2026-10-23 06:48:18 0.00B 定义构建参数
ARG S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf
# 2026-10-23 06:48:18 0.00B 定义构建参数
ARG S6_OVERLAY_VERSION=3.2.3.0
# 2026-10-23 06:48:18 0.00B 定义构建参数
ARG TARGETARCH=amd64
# 2026-10-23 06:48:18 26.71KB 执行命令并创建新的镜像层
RUN |1 HERMES_BOT_DESKTOP=0 /bin/sh -c ln -sf libsqlite3.so.3.53.4 /usr/local/lib/libsqlite3.so.0 && ln -sf libsqlite3.so.3.53.4 /usr/local/lib/libsqlite3.so && printf '/usr/local/lib\n' > /etc/ld.so.conf.d/000-sqlite-fixed.conf && ldconfig && python3 -c "import sqlite3, sys; v = sqlite3.sqlite_version_info; sys.exit(f'linked SQLite {sqlite3.sqlite_version} still has the WAL-reset bug') if v < (3, 51, 3) else None; db = sqlite3.connect(':memory:'); db.execute(\"CREATE VIRTUAL TABLE docs USING fts5(content, tokenize='trigram')\"); db.execute(\"INSERT INTO docs VALUES ('hermes')\"); sys.exit('SQLite FTS5 trigram self-test failed') if db.execute(\"SELECT count(*) FROM docs WHERE docs MATCH 'erm'\").fetchone()[0] != 1 else None; db.close()" # buildkit
# 2026-10-23 06:48:18 1.72MB 复制新文件或目录到容器中
COPY /opt/sqlite-fixed/lib/libsqlite3.so.3.53.4 /usr/local/lib/ # buildkit
# 2026-10-23 06:48:01 0.00B 执行命令并创建新的镜像层
RUN |1 HERMES_BOT_DESKTOP=0 /bin/sh -c if [ "$HERMES_BOT_DESKTOP" = "1" ]; then apt-get -o Acquire::Retries=3 update && DEBIAN_FRONTEND=noninteractive apt-get -o Acquire::Retries=3 install -y --no-install-recommends tigervnc-standalone-server xfce4-panel xfwm4 xfdesktop4 xfce4-settings xfce4-terminal dbus-x11 x11-xserver-utils x11-utils x11-xkb-utils xauth fonts-dejavu-core chromium && rm -rf /var/lib/apt/lists/*; fi # buildkit
# 2026-10-23 06:48:01 0.00B 定义构建参数
ARG HERMES_BOT_DESKTOP=0
# 2026-10-23 06:48:01 815.35MB 执行命令并创建新的镜像层
RUN /bin/sh -c apt-get -o Acquire::Retries=3 update && apt-get -o Acquire::Retries=3 install -y --no-install-recommends ca-certificates curl iputils-ping python3 python-is-python3 gcc g++ make cmake python3-dev python3-venv libffi-dev libolm-dev libatomic1 procps git openssh-client docker-cli xz-utils libasound2t64 libatk-bridge2.0-0t64 libatk1.0-0t64 libatspi2.0-0t64 libcairo2 libcups2t64 libdbus-1-3 libgbm1 libglib2.0-0t64 libnspr4 libnss3 libpango-1.0-0 libx11-6 libxcb1 libxcomposite1 libxdamage1 libxext6 libxfixes3 libxkbcommon0 libxrandr2 && rm -rf /var/lib/apt/lists/* # buildkit
# 2026-10-23 06:48:01 0.00B 设置环境变量 PLAYWRIGHT_BROWSERS_PATH
ENV PLAYWRIGHT_BROWSERS_PATH=/opt/hermes/tools
# 2026-10-23 06:48:01 0.00B 设置环境变量 PYTHONDONTWRITEBYTECODE
ENV PYTHONDONTWRITEBYTECODE=1
# 2026-10-23 06:48:01 0.00B 设置环境变量 PYTHONUNBUFFERED
ENV PYTHONUNBUFFERED=1
# 2026-10-21 05:32:55 120.11MB
# debian.sh --arch 'amd64' out/ 'trixie' '@1792531975'
镜像信息
{
"Id": "sha256:49939129b1468fa4d41749730b35c20ea99993ae34e58a74e79ed0fc20261c44",
"RepoTags": [
"ekkoye8888/hermes-web-ui:v0.7.39",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ekkoye8888/hermes-web-ui:v0.7.39"
],
"RepoDigests": [
"ekkoye8888/hermes-web-ui@sha256:18e38249ec91bed1936323dffcb5f88a755d4654a3edbbc985d3535c575da58e",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ekkoye8888/hermes-web-ui@sha256:96d45eb213317a11ccdaf1fe07b8d0cd0e823257e055f102f4fe56f0cbc6e257"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2026-10-23T11:31:34.177393735Z",
"Container": "",
"ContainerConfig": null,
"DockerVersion": "",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "root",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"50000/udp": {},
"50001/udp": {},
"50002/udp": {},
"50003/udp": {},
"50004/udp": {},
"50005/udp": {},
"50006/udp": {},
"50007/udp": {},
"50008/udp": {},
"50009/udp": {},
"50010/udp": {},
"50011/udp": {},
"50012/udp": {},
"50013/udp": {},
"50014/udp": {},
"50015/udp": {},
"50016/udp": {},
"50017/udp": {},
"50018/udp": {},
"50019/udp": {},
"50020/udp": {},
"50021/udp": {},
"50022/udp": {},
"50023/udp": {},
"50024/udp": {},
"50025/udp": {},
"50026/udp": {},
"50027/udp": {},
"50028/udp": {},
"50029/udp": {},
"50030/udp": {},
"50031/udp": {},
"50032/udp": {},
"50033/udp": {},
"50034/udp": {},
"50035/udp": {},
"50036/udp": {},
"50037/udp": {},
"50038/udp": {},
"50039/udp": {},
"50040/udp": {},
"50041/udp": {},
"50042/udp": {},
"50043/udp": {},
"50044/udp": {},
"50045/udp": {},
"50046/udp": {},
"50047/udp": {},
"50048/udp": {},
"50049/udp": {},
"50050/udp": {},
"50051/udp": {},
"50052/udp": {},
"50053/udp": {},
"50054/udp": {},
"50055/udp": {},
"50056/udp": {},
"50057/udp": {},
"50058/udp": {},
"50059/udp": {},
"50060/udp": {},
"50061/udp": {},
"50062/udp": {},
"50063/udp": {},
"50064/udp": {},
"50065/udp": {},
"50066/udp": {},
"50067/udp": {},
"50068/udp": {},
"50069/udp": {},
"50070/udp": {},
"50071/udp": {},
"50072/udp": {},
"50073/udp": {},
"50074/udp": {},
"50075/udp": {},
"50076/udp": {},
"50077/udp": {},
"50078/udp": {},
"50079/udp": {},
"50080/udp": {},
"50081/udp": {},
"50082/udp": {},
"50083/udp": {},
"50084/udp": {},
"50085/udp": {},
"50086/udp": {},
"50087/udp": {},
"50088/udp": {},
"50089/udp": {},
"50090/udp": {},
"50091/udp": {},
"50092/udp": {},
"50093/udp": {},
"50094/udp": {},
"50095/udp": {},
"50096/udp": {},
"50097/udp": {},
"50098/udp": {},
"50099/udp": {},
"50100/udp": {},
"50101/udp": {},
"50102/udp": {},
"50103/udp": {},
"50104/udp": {},
"50105/udp": {},
"50106/udp": {},
"50107/udp": {},
"50108/udp": {},
"50109/udp": {},
"50110/udp": {},
"50111/udp": {},
"50112/udp": {},
"50113/udp": {},
"50114/udp": {},
"50115/udp": {},
"50116/udp": {},
"50117/udp": {},
"50118/udp": {},
"50119/udp": {},
"50120/udp": {},
"50121/udp": {},
"50122/udp": {},
"50123/udp": {},
"50124/udp": {},
"50125/udp": {},
"50126/udp": {},
"50127/udp": {},
"6060/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/home/agent/.hermes-web-ui/coding-agent/npm/bin:/opt/hermes/.venv/bin:/opt/hermes/bin:/opt/hermes/.venv/bin:/opt/data/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"PYTHONUNBUFFERED=1",
"PYTHONDONTWRITEBYTECODE=1",
"PLAYWRIGHT_BROWSERS_PATH=/opt/hermes/tools",
"HERMES_RUNTIME_DIR=/opt/hermes/tools",
"HERMES_PYTHON=/opt/hermes/.venv/bin/python",
"CC=gcc",
"CXX=g++",
"HERMES_WEB_DIST=/opt/hermes/hermes_cli/web_dist",
"HERMES_TUI_DIR=/opt/hermes/ui-tui",
"HERMES_HOME=/home/agent/.hermes",
"HERMES_WRITE_SAFE_ROOT=/opt/data",
"XDG_RUNTIME_DIR=/tmp/hermes-runtime",
"NODE_OPTIONS=--max-old-space-size=4096",
"NODE_ENV=production",
"HOME=/home/agent",
"HERMES_WEB_UI_MANAGED_GATEWAY=1",
"STUDIO_P2P_UDP_PORT_RANGE=50000-50127",
"NPM_CONFIG_PREFIX=/home/agent/.hermes-web-ui/coding-agent/npm"
],
"Cmd": null,
"ArgsEscaped": true,
"Image": "",
"Volumes": {
"/opt/data": {}
},
"WorkingDir": "/app",
"Entrypoint": [
"/app/bin/start-studio-all.sh"
],
"OnBuild": null,
"Labels": null
},
"Architecture": "amd64",
"Os": "linux",
"Size": 4936329651,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/131a7f70bffc6814dad1593b52cd9435feb95fde9facbf0513ff4cbd24587896/diff:/var/lib/docker/overlay2/97d9edcee0211d95ada46e46d5a58b0b8b10915683fa67d3858624951706c4c8/diff:/var/lib/docker/overlay2/b56a5bb55c223970d12081f57b4faf1294d13736c1c9594644270f448ac75e9d/diff:/var/lib/docker/overlay2/5fbf5fb161d985c28a17684d036127ae3d3db15d1bc353de3c7d803a58633ac7/diff:/var/lib/docker/overlay2/34878d3d9a00ee4d2d167968bc2b7f94c2e4d406cb4eeae6757a054f33c791d3/diff:/var/lib/docker/overlay2/7d7590ebb22505b5066271fe29289e197200ca1fd5aa95f5b3f53d2e3abb5022/diff:/var/lib/docker/overlay2/b7e5aa7daa279322d981990ed10f4e381209d3fe9390fd25faca04bba844dbd9/diff:/var/lib/docker/overlay2/28b6004d31e751a6271ab30d10299aa5257be470bc693ea9b302541400f3153d/diff:/var/lib/docker/overlay2/a300844fe0ffa58de9a4889678dab6b68bf3cf35c7e6b79444dc28d95d5519ac/diff:/var/lib/docker/overlay2/3c6c95f8feda637b987ce945f5ead9eea2060fd95ea930dc58c2a153c1acef3c/diff:/var/lib/docker/overlay2/04c5a2aeb33bf292c448e8bb1dab05d04d4a71b4b11bb8b6c4f422ca88bafc42/diff:/var/lib/docker/overlay2/1a2074d269692e589b7c03f8cb77e728bdd000e23c434e26e0b69bdaabba7573/diff:/var/lib/docker/overlay2/90ae00349e0714cb7948a2f27c013773edf8cb39e2547a36edfeb79f50049649/diff:/var/lib/docker/overlay2/c9f8ece4889e90e851bb3faf0cebdbf0b4325181cc2b2d1e6ce0c36bf94ffff5/diff:/var/lib/docker/overlay2/f235d1175596856e065f30b7177cbc712645bd35dec11b37c710d2daf4101c4f/diff:/var/lib/docker/overlay2/015512dc006dc92fa6e34a9ffef5f5a77a9c4d081b3d8e13a20c3ff305ccde22/diff:/var/lib/docker/overlay2/783908651ce4e8d3c16a319dcccb592007b9234d6444210f554cd9663fc85436/diff:/var/lib/docker/overlay2/2e0beb2fd3752121e11bade193d171a2ee1e0a5f7a34372ab68d81ce789214ad/diff:/var/lib/docker/overlay2/b2ed73c7be317c0e7c830a7cc3d1cd10ac4cb1c8b960a7ed791473e8d6f060d2/diff:/var/lib/docker/overlay2/d9ed235f76e92a0b70e01809d12375283dcdcf885bd4fc88b0866eb54d908c81/diff:/var/lib/docker/overlay2/472e714ac244b62ea9cceb9f8f9da6f3a5e1190649d5209097f7fb7ad575de0d/diff:/var/lib/docker/overlay2/128263ce8016e19751ed67074ac9fe381d7247c281cd31cce162211c866ca2aa/diff:/var/lib/docker/overlay2/010e0932ce2b611a1b60732b5e5f789b38e45b5ea44bcc027dca554be0f1f1b2/diff:/var/lib/docker/overlay2/ec55c6b2014637f00c169a7059696141c37bcccab7ec668ba28d685a011ee566/diff:/var/lib/docker/overlay2/8661216b81dc41fd5d2b67404df02df2988ba8e6736428f342a6aca989b087e7/diff:/var/lib/docker/overlay2/424fcddb727bd09cb32b3386cf8ee0a4446287de3e1ab5998f3cc682bf0b97e4/diff:/var/lib/docker/overlay2/ed7279f22d22cc47c7df3da2296189e9b11c01e1cfd011efef9c34f4188280d3/diff:/var/lib/docker/overlay2/3284efe22f6e47abafd58b948352f6b6106aa7cd04793e079eef98ff0e913f9a/diff:/var/lib/docker/overlay2/c2c0029623ba35817e898bc3e7d995b711ffb0f72e63c6de8379e259e50d020d/diff:/var/lib/docker/overlay2/9f06b0d7ad01ac89886ebbedae03e7b48792d0145d4f8f00a1a15477a3cfb226/diff:/var/lib/docker/overlay2/33452f1aace37b38f2c8ed5483b8468523eb2e15d81019821628a51fd6c5121f/diff:/var/lib/docker/overlay2/8d10b82c4ea68608536f94aeb4b766eed5f6d3723617777ef4cf02090735e1cb/diff:/var/lib/docker/overlay2/7f11d4f425ccb4e35fb366306908c6c859e3fbc73787365b2068b40a0f8de103/diff:/var/lib/docker/overlay2/286f941d8d43fccdbc256e60bbedc931fa4ab43c86791bbfe1311208e8fe9ff6/diff:/var/lib/docker/overlay2/26e472e84e42468f66aa33f76555548b08b6a428e96e2154f211080cdbb551e1/diff:/var/lib/docker/overlay2/7ab0055a4703ced99a378f84d827ec1668b39fff7fa90d5e37671775b4ff24a6/diff:/var/lib/docker/overlay2/b9ecea5c7f5d03fc0f2fe9464ef669826360c533d5e39a68ae23a08b9aa01f2e/diff:/var/lib/docker/overlay2/2d426db7b7855daea134acc6014cdbefe0788bfa7a981513724a7561f65f200a/diff:/var/lib/docker/overlay2/ab97737752e0a8f5c797756ef76075e0701d61841c3f599006e814f64799eb7e/diff:/var/lib/docker/overlay2/bece069212d81b62495412e0cc18b675130f1d00b8b517f1821441a56440fb82/diff:/var/lib/docker/overlay2/60894b0a5715f1f2f62fde514cb8a5a3f9ce55fc8a15809369a99f3a67ce3755/diff:/var/lib/docker/overlay2/527e1aed2b283560bb073ca88e04ce330fbef3e1d9e4fa6b9cd8b933e9efed16/diff:/var/lib/docker/overlay2/285a5cbcfbf0de8c04b23a47b0e31e5c672488c32fc667294ee25d55995db689/diff:/var/lib/docker/overlay2/d903a5838c49ce855420a4b353e659e9c985dc7854c9f4bc8d17782809b13788/diff",
"MergedDir": "/var/lib/docker/overlay2/43b2c27885cb3b6fbfc465c69da67e489faf1abb796e6382b96a987cdd271d6a/merged",
"UpperDir": "/var/lib/docker/overlay2/43b2c27885cb3b6fbfc465c69da67e489faf1abb796e6382b96a987cdd271d6a/diff",
"WorkDir": "/var/lib/docker/overlay2/43b2c27885cb3b6fbfc465c69da67e489faf1abb796e6382b96a987cdd271d6a/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:0fceba70669334d0c2890d8a9c5e8f0a8c153fde2d921de69084f3360e741c08",
"sha256:205ea40b4b05bed04fd028bd24ab21afc3ce77300ae3f192a178946da7386ef4",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:114e53e610c03a512da0bb70a7e42d0fe0c605465571e36f4581ea920ab76ef0",
"sha256:25d5f0a7fb4c6e3d02f569579d0b988aa0c05ae865e0780882437dbb33f3ac10",
"sha256:b342ea4da0c0432382a9c9b54c3572d4f4c7e1b643abd66ed7545ece941680ef",
"sha256:7f782466db5e4f9af8cce6d02fb1ba94f95dad6418e79ad74985d652d3d47fa4",
"sha256:e5f7b287b01d417d1925ef40cbac4cc8f15550cf1d76a7bc2cb74fc4de415656",
"sha256:04c4065227bf39935c63e1f654833468a633341eb37708f625a1c25f0d2e443f",
"sha256:0bde6419363f4d701e248b96454505a8dcdf3ed99ceefec06c6ef7d956f72f91",
"sha256:a7fcb3e131e6d9764ea1ea46b6cc7b62ddbaf32647d30ef271e4170e75e0e6f5",
"sha256:648618369b7d057c983db1760a5d124dbaa38edc51e3f7ec16c6018a89b8a923",
"sha256:0ef98e1c0dba2312c8814044d5a720bd5eb2774a6264b8fe30b20f53768af228",
"sha256:149a883848a740240831b41f028834ad7f6aa7799d18e0db3530ea096992d8a6",
"sha256:6b5bc9905c108eb24f8878957f3b8cf3bed8ecffd7fd2dd6fad17ad2f03cfc34",
"sha256:e37aa565079aa29845070f392257324060c5f86b4d7306766676413264bcb406",
"sha256:edfb730798b0c6a6275c0fe1f0b91d1f90a9042663aa853aa4beb9846bf3799c",
"sha256:e9131a7ff55fd8c041023e6e47e2ddeed26b3a71fff803bedb0255cec2eead4d",
"sha256:8fbcd6eaf32f462c16620e24c61f20b3694dcb14efaac7f9d94e64df439856a6",
"sha256:2b7d6825310d6d7c0e0266174a8f3c2108031ddce38af066375a2dcf628a5a6f",
"sha256:c6200a860f0ce777038bf9e3b8f4f87fdd017602a0277b865e90a68d2ae051a3",
"sha256:0d3f0172b03336dcf4eeae8bdc765becf8ab113b11311237b979a621cf93bcae",
"sha256:a30aeecdcbdacb692e089b826c047ee85513369b35c851393d0efa749ee5b7ca",
"sha256:dc3fd4ab4b8858133ac8c255a0beba534b8486b724d041d4c5f7cc9653a9f7f4",
"sha256:59238994e1052f1d58380c5f5ba2786f90fed29fcaa8bceb010451d663929292",
"sha256:1f05e4e2c8f7a54354df6ea499d9d77a26b30433020fe4e5215f275385b6d91e",
"sha256:2b0671b714945d1c2b9d310153f47465c7de195d71a9de3f476416b607dac866",
"sha256:f1c2513589575d45ec526e0d0a9224af988e9530b7008118ee672a06a82b06be",
"sha256:05da448a4ed1ba23659677322c953c0af410cbeac28210299e6880c28df5575e",
"sha256:1b1b6937f7853811f26d150ce5ac9224a4d561f5f32b91638dabf6f1e21fbd51",
"sha256:1ebbd84c6428dc38d76386e5e619d3eebdaf8c4d98aacb2bf26afde88aa1cfdf",
"sha256:4bf47831eebade92b45dcd36afc3d7951794fd5b429090f34b601ed84489deef",
"sha256:4825ed3190a433f43bc780b8f00644d330eb283ca0f17f2794d3b0c0d6b468fc",
"sha256:9f34e622dc8d754b2e05e63563c7921895634305663e5087eacbc0e234e7f18f",
"sha256:44bd6fcc931307faa1ee990b2c025c79206f86040b4f93220a9d1acf7d934a71",
"sha256:9ef25eef5cf5288837f6e698e0206248dbc361ebc4f310cdb817389bd356a487",
"sha256:5f4c7a0619027650dcac1458ea25e81d22871ce3bb2de58b7cfd5670d45dee49",
"sha256:4564a4a5e796e378e99d4725798e995a50685a16f45673e2a9c4b0979aca4fe9",
"sha256:b54ca0eb512fde7bc5ab15ee6009653fc0ec2b2dc2071a13899567c6924e34d7",
"sha256:3198bf0352da5c4de647858154f875a1cde5f0c2bd003e0eb2492d0e8396038a",
"sha256:3f5bc6a0f0993266cf4309e76978aef6882c9be2e9efbdb44513365a9ffcb69a",
"sha256:35147daf5bf6f3fc1865b8e6aef636707a5cf06ab350746c0f9ef5a0b64eb9de",
"sha256:148bf3222ae1e168b43ecaf21772fd965027bdb397104392281ab362b446d168",
"sha256:d99407d3021a36b8267028adf5189f77c10161656116162be9ab433193438d3b",
"sha256:87a0977bf946064e84e3b245f9eb062f2e02ba2014eb045d3567f7f179e206da"
]
},
"Metadata": {
"LastTagTime": "2026-10-29T11:27:28.635532662+08:00"
}
}