maesttro 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -9
- package/dist/maesttro.js +2048 -640
- package/docker/Dockerfile +4 -8
- package/docker/entrypoint.sh +6 -3
- package/package.json +1 -1
package/docker/Dockerfile
CHANGED
|
@@ -65,8 +65,8 @@ RUN UV_PYTHON_INSTALL_DIR=/usr/local/share/uv/python UV_PYTHON_BIN_DIR=/usr/loca
|
|
|
65
65
|
&& ln -s "$(dirname "$(readlink -f /usr/local/bin/python3)")/pip3" /usr/local/bin/pip3 \
|
|
66
66
|
&& ln -s pip3 /usr/local/bin/pip
|
|
67
67
|
|
|
68
|
-
# System-level, not ~/.gitconfig:
|
|
69
|
-
# shadows anything baked into
|
|
68
|
+
# System-level, not ~/.gitconfig: the per-session home mounted at /home/agent
|
|
69
|
+
# shadows anything baked into the image's home
|
|
70
70
|
COPY gitconfig /etc/gitconfig
|
|
71
71
|
COPY runner-marker /etc/maesttro/runner
|
|
72
72
|
|
|
@@ -82,13 +82,10 @@ ENV DISABLE_AUTOUPDATER=1
|
|
|
82
82
|
|
|
83
83
|
RUN useradd -m -s /bin/bash agent
|
|
84
84
|
USER agent
|
|
85
|
-
# Created as agent so a fresh volume inherits them; otherwise Docker creates
|
|
86
|
-
# ~/.config and ~/.claude as root when it sets up the nested read-only mounts
|
|
87
|
-
RUN mkdir -p /home/agent/.config/opencode /home/agent/.claude
|
|
88
85
|
WORKDIR /workspace
|
|
89
86
|
|
|
90
87
|
# Everything the agent installs lands on the container's writable layer, never
|
|
91
|
-
# the
|
|
88
|
+
# the session's home, so it is gone when the session's container exits
|
|
92
89
|
ENV AGENT_TOOLS=/opt/agent-tools
|
|
93
90
|
ENV NPM_CONFIG_PREFIX=${AGENT_TOOLS} \
|
|
94
91
|
NPM_CONFIG_CACHE=${AGENT_TOOLS}/cache/npm \
|
|
@@ -109,8 +106,7 @@ ENV NPM_CONFIG_PREFIX=${AGENT_TOOLS} \
|
|
|
109
106
|
ENV PATH=${AGENT_TOOLS}/bin:${AGENT_TOOLS}/bun/bin:${AGENT_TOOLS}/dotnet/.dotnet/tools:${PATH}
|
|
110
107
|
|
|
111
108
|
# Client configs are applied at container start by `maesttro configure`
|
|
112
|
-
# (mounted from the host's install): /home/agent
|
|
113
|
-
# anything baked here would only ever reach brand-new volumes.
|
|
109
|
+
# (mounted from the host's install): the session home shadows /home/agent
|
|
114
110
|
|
|
115
111
|
# Starts as root only to remap agent to the host user's uid/gid (bind mounts
|
|
116
112
|
# keep host ownership on Linux), then drops to agent before running anything
|
package/docker/entrypoint.sh
CHANGED
|
@@ -9,11 +9,14 @@ if [ -n "$uid" ] && [ "$uid" != "$(id -u agent)" ]; then
|
|
|
9
9
|
usermod --non-unique --uid "$uid" --gid "$gid" agent
|
|
10
10
|
fi
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
if [
|
|
14
|
-
find /
|
|
12
|
+
# cp -a onto the directory itself would copy /etc/skel's own mode, clobbering the 0700 the host set
|
|
13
|
+
if [ ! -e /home/agent/.profile ]; then
|
|
14
|
+
find /etc/skel -mindepth 1 -maxdepth 1 -exec cp -a {} /home/agent/ \;
|
|
15
15
|
fi
|
|
16
16
|
|
|
17
|
+
owner="$(id -u agent):$(id -g agent)"
|
|
18
|
+
find /home/agent /home/agent/.claude -xdev \! -user agent -exec chown -h "$owner" {} + 2>/dev/null || true
|
|
19
|
+
|
|
17
20
|
mkdir -p "$AGENT_TOOLS"
|
|
18
21
|
chown "$owner" "$AGENT_TOOLS"
|
|
19
22
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "maesttro",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "Isolated Docker runner for local coding agents (opencode, claude, ...) under a dedicated bot GitHub identity, with curated configs baked in per client.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|