@deployfoundation/foundation-deploy 0.2.9 → 0.2.11
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/agent-image/Dockerfile +38 -0
- package/agent-image/bin/export_deck +5 -0
- package/agent-image/open-slide/bun.lock +914 -0
- package/agent-image/open-slide/package.json +12 -0
- package/dist/bin/app.js +1 -1
- package/dist/{chunk-4z1tsy0m.js → chunk-sxvts8bf.js} +7 -2
- package/dist/src/index.js +1 -1
- package/package.json +1 -1
- package/src/stacks/newsletter-stack.ts +19 -2
package/agent-image/Dockerfile
CHANGED
|
@@ -16,6 +16,10 @@
|
|
|
16
16
|
# packages/agent/package.json, and the frozen lockfile pins the version itself)
|
|
17
17
|
# - Python 3.10+ for the omp `eval` tool (the bun base is trixie: 3.13)
|
|
18
18
|
# - gh 2.97.0, built from source with Go (see the gh-build stage)
|
|
19
|
+
# - open-slide toolchain for the `slides` skill: @open-slide/core 2.0.1 and
|
|
20
|
+
# playwright-core 1.63.0 (exact pins + frozen lockfile in
|
|
21
|
+
# packages/infra/agent-image/open-slide/), whose Chrome Headless Shell
|
|
22
|
+
# build is pinned by the playwright-core version
|
|
19
23
|
#
|
|
20
24
|
# Secrets bootstrap: the container receives ONE pointer env var,
|
|
21
25
|
# RUNTIME_SECRET_ID. At start, server.ts fetches that JSON secret from Secrets
|
|
@@ -102,6 +106,25 @@ RUN export DEBIAN_FRONTEND=noninteractive \
|
|
|
102
106
|
&& /tmp/aws/install --install-dir /opt/aws-cli --bin-dir /opt/aws-cli/bin \
|
|
103
107
|
&& rm -rf /tmp/aws /tmp/awscliv2.zip /var/lib/apt/lists/*
|
|
104
108
|
|
|
109
|
+
# --- open-slide toolchain (skills/slides) -----------------------------------
|
|
110
|
+
# Slide decks are React pages built and exported by open-slide. Its PDF/PPTX
|
|
111
|
+
# export runs in a browser, so `export_deck` drives it in Chrome Headless
|
|
112
|
+
# Shell. Everything is installed HERE, once, so a deck never npm-installs per
|
|
113
|
+
# turn: the deck is copied into a throwaway workspace whose node_modules is a
|
|
114
|
+
# symlink to /opt/open-slide/node_modules. The headless shell is the build
|
|
115
|
+
# playwright-core 1.63.0 names (downloaded from Playwright's CDN), so the
|
|
116
|
+
# browser moves only when that pin does. Own stage: bun's install cache and
|
|
117
|
+
# the download zip never reach the runtime layer.
|
|
118
|
+
FROM ${BUN_IMAGE} AS open-slide-build
|
|
119
|
+
ENV PLAYWRIGHT_BROWSERS_PATH=/opt/open-slide/browsers
|
|
120
|
+
WORKDIR /opt/open-slide
|
|
121
|
+
COPY packages/infra/agent-image/open-slide/package.json \
|
|
122
|
+
packages/infra/agent-image/open-slide/bun.lock ./
|
|
123
|
+
RUN bun install --frozen-lockfile --production \
|
|
124
|
+
&& bun node_modules/playwright-core/cli.js install chromium-headless-shell \
|
|
125
|
+
&& rm -rf /root/.bun/install/cache
|
|
126
|
+
COPY skills/slides/export_deck.mjs skills/slides/starter.tsx ./
|
|
127
|
+
|
|
105
128
|
# Resolve whichever of the two GH_IMAGE names. `COPY --from=gh-provider`
|
|
106
129
|
# below is what makes the choice load-bearing.
|
|
107
130
|
FROM ${GH_IMAGE} AS gh-provider
|
|
@@ -153,6 +176,11 @@ RUN export DEBIAN_FRONTEND=noninteractive \
|
|
|
153
176
|
&& apt-get install -y --no-install-recommends \
|
|
154
177
|
python3 python3-venv python3-pip ca-certificates git curl \
|
|
155
178
|
poppler-utils \
|
|
179
|
+
libasound2t64 libatk-bridge2.0-0t64 libatk1.0-0t64 libatspi2.0-0t64 \
|
|
180
|
+
libcairo2 libcups2t64 libdbus-1-3 libdrm2 libgbm1 libglib2.0-0t64 \
|
|
181
|
+
libnspr4 libnss3 libpango-1.0-0 libx11-6 libxcb1 libxcomposite1 \
|
|
182
|
+
libxdamage1 libxext6 libxfixes3 libxkbcommon0 libxrandr2 \
|
|
183
|
+
fontconfig fonts-inter fonts-liberation fonts-noto-color-emoji \
|
|
156
184
|
&& ln -sf /usr/bin/python3 /usr/local/bin/python \
|
|
157
185
|
&& rm -rf /var/lib/apt/lists/*
|
|
158
186
|
|
|
@@ -186,6 +214,16 @@ RUN ln -s /opt/aws-cli/v2/current/bin/aws /opt/sky/bin/aws-real \
|
|
|
186
214
|
&& /opt/sky/bin/aws-real --version \
|
|
187
215
|
&& mkdir -p /opt/sky/aws
|
|
188
216
|
|
|
217
|
+
# --- Slides (skills/slides) -------------------------------------------------
|
|
218
|
+
# The pinned open-slide toolchain and headless browser from the
|
|
219
|
+
# open-slide-build stage, plus `export_deck` on PATH. Root-owned and read-only
|
|
220
|
+
# at runtime: builds happen in a temp workspace, never under /opt.
|
|
221
|
+
COPY --from=open-slide-build /opt/open-slide /opt/open-slide
|
|
222
|
+
COPY packages/infra/agent-image/bin/export_deck /opt/sky/bin/export_deck
|
|
223
|
+
RUN chmod 0755 /opt/sky/bin/export_deck
|
|
224
|
+
ENV OPEN_SLIDE_HOME=/opt/open-slide \
|
|
225
|
+
PLAYWRIGHT_BROWSERS_PATH=/opt/open-slide/browsers
|
|
226
|
+
|
|
189
227
|
# /opt/sky/bin FIRST so `gh` and `aws` resolve to the wrappers, never the real
|
|
190
228
|
# binaries.
|
|
191
229
|
ENV PATH="/opt/sky/bin:${PATH}"
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# export_deck: build an open-slide deck and export PDF, PPTX and per-slide PNGs
|
|
3
|
+
# headlessly (skills/slides). The script and its pinned toolchain live in
|
|
4
|
+
# $OPEN_SLIDE_HOME (the agent image bakes /opt/open-slide). `export_deck --help`.
|
|
5
|
+
exec bun "${OPEN_SLIDE_HOME:-/opt/open-slide}/export_deck.mjs" "$@"
|