@wenathlan/saddle 2.0.164 → 2.0.165
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/Dockerfile +21 -17
- package/README.md +1 -1
- package/docker.config +55 -0
- package/package.json +4 -4
package/Dockerfile
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# saddle 2.0.
|
|
1
|
+
# saddle 2.0.165 — THE ENGINE CONTAINER FILE
|
|
2
2
|
#
|
|
3
3
|
# THE FAMILY CONTAINER DOCTRINE, THE SADDLE SHAPE: one versioned container
|
|
4
4
|
# per engine, built like the site homes (argan, cadria) build theirs — a
|
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
# THE THREE VARIANT PROFILES (the saddle-exclusive law: the only app of
|
|
17
17
|
# the family that ships three) — select with the target flag:
|
|
18
18
|
#
|
|
19
|
-
# docker build --target max -t saddle:2.0.
|
|
20
|
-
# docker build --target balanced -t saddle:2.0.
|
|
21
|
-
# docker build --target lite -t saddle:2.0.
|
|
19
|
+
# docker build --target max -t saddle:2.0.164 .
|
|
20
|
+
# docker build --target balanced -t saddle:2.0.164-balanced .
|
|
21
|
+
# docker build --target lite -t saddle:2.0.164-lite .
|
|
22
22
|
#
|
|
23
23
|
# max — the full profile catalog: the epyc 9965 class, 192 vcpu,
|
|
24
24
|
# 384 threads, 1024 gib ram plan, the b200 gpu plan x8.
|
|
@@ -89,11 +89,13 @@
|
|
|
89
89
|
# names — the CONTAINERARCHIDS of saddle/containerarch.ts (linux-x64,
|
|
90
90
|
# darwin-arm64, windows-x64, linux-arm64, darwin-x64, windows-arm64,
|
|
91
91
|
# linux-x64-musl, linux-riscv64, wasm32, darwin-arm64-v8,
|
|
92
|
-
# windows-x64-gnu). The build legs follow the
|
|
93
|
-
# the pinned node base honestly answers
|
|
94
|
-
#
|
|
95
|
-
# leg serves the darwin-arm64-v8 abi seat
|
|
96
|
-
#
|
|
92
|
+
# windows-x64-gnu). The build legs follow the four base-carried legs
|
|
93
|
+
# the pinned node base honestly answers (the go-style build index of
|
|
94
|
+
# containerarch.ts): the amd64 leg serves linux-x64 and linux-x64-musl,
|
|
95
|
+
# the arm64 leg serves linux-arm64 and the darwin-arm64-v8 abi seat
|
|
96
|
+
# through its v8 variant, and the ppc64le and s390x legs ride the
|
|
97
|
+
# go-style build index under qemu emulation in the publish workflow.
|
|
98
|
+
# The linux-riscv64 seat the
|
|
97
99
|
# containerarch standard carries on the bash:5 driver base answers the
|
|
98
100
|
# honest coded absence on this node engine base (the pinned base ships
|
|
99
101
|
# no riscv64 manifest), and the six target seats (the darwin and
|
|
@@ -141,7 +143,7 @@ ARG NODE_BASE_DIGEST
|
|
|
141
143
|
# ===== stage: solbuild — the locked npm tree and the console spa =====
|
|
142
144
|
FROM --platform=$BUILDPLATFORM ${NODE_BASE_TAG}@sha256:${NODE_BASE_DIGEST} AS solbuild
|
|
143
145
|
|
|
144
|
-
ARG SADDLE_VERSION=2.0.
|
|
146
|
+
ARG SADDLE_VERSION=2.0.165
|
|
145
147
|
|
|
146
148
|
WORKDIR /app
|
|
147
149
|
|
|
@@ -169,7 +171,7 @@ RUN npm run web:build:pages \
|
|
|
169
171
|
# ===== stage: base — the hardened runtime floor every profile shares =====
|
|
170
172
|
FROM ${NODE_BASE_TAG}@sha256:${NODE_BASE_DIGEST} AS base
|
|
171
173
|
|
|
172
|
-
ARG SADDLE_VERSION=2.0.
|
|
174
|
+
ARG SADDLE_VERSION=2.0.165
|
|
173
175
|
# the revision stamp the devthink container carries (DEVTHINK_REVISION
|
|
174
176
|
# there): the publish legs pass the release sha at build time and the
|
|
175
177
|
# revision label below declares the default-unknown local shape.
|
|
@@ -217,17 +219,19 @@ ENV NODE_ENV=production \
|
|
|
217
219
|
|
|
218
220
|
# the arch-leg guard of the eleven-architecture standard: the pinned
|
|
219
221
|
# node base resolves the platform of every leg buildx names, and this
|
|
220
|
-
# echo layer stamps the honesty law into the build log — the
|
|
221
|
-
# the base carries answer their leg line (the amd64 leg serves
|
|
222
|
-
# linux-x64 and linux-x64-musl seats, the arm64 leg serves the
|
|
222
|
+
# echo layer stamps the honesty law into the build log — the four
|
|
223
|
+
# arches the base carries answer their leg line (the amd64 leg serves
|
|
224
|
+
# the linux-x64 and linux-x64-musl seats, the arm64 leg serves the
|
|
223
225
|
# linux-arm64 seat and the darwin-arm64-v8 abi seat through its v8
|
|
224
|
-
# variant
|
|
226
|
+
# variant, the ppc64le and s390x legs ride the go-style build index of
|
|
227
|
+
# the containerarch table under qemu emulation), the legacy builder
|
|
228
|
+
# (no platform axis) answers its documented
|
|
225
229
|
# note, and any other arch answers the coded refusal before the heavy
|
|
226
230
|
# steps below could run (buildx itself fails such a leg at base
|
|
227
231
|
# resolution first; the guard keeps the law loud on every builder).
|
|
228
232
|
RUN case "${TARGETARCH:-}" in \
|
|
229
|
-
amd64|arm64) \
|
|
230
|
-
echo "arch leg ${TARGETARCH} of ${TARGETPLATFORM:-<unresolved>}: one of the
|
|
233
|
+
amd64|arm64|ppc64le|s390x) \
|
|
234
|
+
echo "arch leg ${TARGETARCH} of ${TARGETPLATFORM:-<unresolved>}: one of the four arches the pinned node base carries — the build legs of the eleven-architecture standard (linux-x64 and linux-x64-musl on amd64, linux-arm64 and the darwin-arm64-v8 abi seat on arm64, the ppc64le and s390x go-style build-index legs under qemu emulation)" ;; \
|
|
231
235
|
"") \
|
|
232
236
|
echo "arch leg unresolved: the legacy builder carries no platform axis; buildkit answers TARGETARCH per leg" ;; \
|
|
233
237
|
*) \
|
package/README.md
CHANGED
|
@@ -31,7 +31,7 @@ domain modules land beside the saddle domains:
|
|
|
31
31
|
| `media.ts`, `render.ts`, `quantum.ts`, `tiers.ts` | media pipeline, GPU registry, quantum simulation, tier policy |
|
|
32
32
|
| `security.ts`, `alternatives.ts` | hardening gates and the alternative-stack catalog |
|
|
33
33
|
| `index.html`, `App.tsx`, `sol/` | the single SPA shell and the Sol theme (one tsx app with one stylesheet per theme) |
|
|
34
|
-
| `server.ts`, `sandbox.ts` | the zero-dependency self-hosted API of the 2.0.
|
|
34
|
+
| `server.ts`, `sandbox.ts` | the zero-dependency self-hosted API of the 2.0.165 grand-merge envelope (`node server.ts`; the api answers its version at `/api/v1/health`) and the browser-pure engine port |
|
|
35
35
|
| `vercel.json`, `netlify.toml` | the platform deploy adapters beside the surface they publish (the caddy ghost stays out of the tree) |
|
|
36
36
|
| `specs/*` package exports | processors, gpus, cores, boards and the qemu/mttg/passage/docker envelopes |
|
|
37
37
|
|
package/docker.config
CHANGED
|
@@ -122,6 +122,61 @@
|
|
|
122
122
|
"nativeBuild": true,
|
|
123
123
|
"note": "the eleven-arch family standard (PR15b: amd64, amd64/v2, arm64, arm/v7, arm/v6, ppc64le, s390x, riscv64, 386, mips64le, loong64 - the complete linux platform surface docker/buildx carries, the owner's law: eleven OS architectures for every container of every application) the one container file and the publish lanes carry; amd64 and amd64/v2 build native, the other nine legs ride QEMU emulation; unknown/* stays rejected as not runnable"
|
|
124
124
|
},
|
|
125
|
+
"profiles": {
|
|
126
|
+
"law": "the saddle-exclusive trio (the pr15 exotic law): the only app of the family that ships three container profiles - every profile rides the same engine graph (the same ninety modalities, the same console, the same health surface); only the declared virtual hardware plan differs, and the values mirror the engineplans table the publish matrix stamps",
|
|
127
|
+
"defaultProfile": "balanced",
|
|
128
|
+
"variants": [
|
|
129
|
+
{
|
|
130
|
+
"id": "max",
|
|
131
|
+
"target": "max",
|
|
132
|
+
"tagSuffix": "",
|
|
133
|
+
"cpu": "epyc9965",
|
|
134
|
+
"cpuName": "EPYC 9965",
|
|
135
|
+
"vcpus": 192,
|
|
136
|
+
"threads": 384,
|
|
137
|
+
"ramGb": 1024,
|
|
138
|
+
"gpu": "b200",
|
|
139
|
+
"gpus": 8,
|
|
140
|
+
"note": "the full profile catalog: the bare version tag the registry lane answers"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"id": "balanced",
|
|
144
|
+
"target": "balanced",
|
|
145
|
+
"tagSuffix": "-balanced",
|
|
146
|
+
"cpu": "threadripperpro9995wx",
|
|
147
|
+
"cpuName": "ThreadRipper PRO 9995WX",
|
|
148
|
+
"vcpus": 96,
|
|
149
|
+
"threads": 192,
|
|
150
|
+
"ramGb": 512,
|
|
151
|
+
"gpu": "b200",
|
|
152
|
+
"gpus": 2,
|
|
153
|
+
"note": "the default target: the last stage of the one container file answers the balanced profile when no --target rides the build"
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"id": "lite",
|
|
157
|
+
"target": "lite",
|
|
158
|
+
"tagSuffix": "-lite",
|
|
159
|
+
"cpu": "ryzen9950x3d",
|
|
160
|
+
"cpuName": "Ryzen 9950X3D",
|
|
161
|
+
"vcpus": 16,
|
|
162
|
+
"threads": 32,
|
|
163
|
+
"ramGb": 128,
|
|
164
|
+
"gpu": "rtx5090",
|
|
165
|
+
"gpus": 1,
|
|
166
|
+
"note": "the lightest plan: a quarter of the max envelope, the -lite suffix tag the registry lane answers"
|
|
167
|
+
}
|
|
168
|
+
],
|
|
169
|
+
"envStamp": [
|
|
170
|
+
"SADDLE_PROFILE",
|
|
171
|
+
"SADDLE_PROFILE_CPU",
|
|
172
|
+
"SADDLE_PROFILE_VCPUS",
|
|
173
|
+
"SADDLE_PROFILE_THREADS",
|
|
174
|
+
"SADDLE_PROFILE_RAM_GB",
|
|
175
|
+
"SADDLE_PROFILE_GPU",
|
|
176
|
+
"SADDLE_PROFILE_GPUS"
|
|
177
|
+
],
|
|
178
|
+
"sourceOfTruth": "saddle/engineplans.ts (the plan values), saddle/Dockerfile (the variant targets), the saddle-vhe publish matrix of .github/workflows/publish.yml (the registry legs)"
|
|
179
|
+
},
|
|
125
180
|
"runtimeBase": {
|
|
126
181
|
"nodeImage": "node:26.7.0-alpine",
|
|
127
182
|
"nodeAlt": "node:24.19.0-alpine",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wenathlan/saddle",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.165",
|
|
4
4
|
"description": "binary computing engine that turns distributed storage into a publishable working set carrying the merged virtual-hardware engine (the saddle + e2ugh grand merge)",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"distributed computing",
|
|
@@ -220,9 +220,9 @@
|
|
|
220
220
|
"vm:create": "node --import tsx ./cli.ts vm",
|
|
221
221
|
"vm:validate": "node --import tsx ./cli.ts vmlint",
|
|
222
222
|
"gpu:list": "node --import tsx ./cli.ts gpus",
|
|
223
|
-
"docker:build": "docker build -f Dockerfile -t saddle:2.0.
|
|
224
|
-
"docker:run": "docker run --rm --memory-swap=-1 --shm-size=2g saddle:2.0.
|
|
225
|
-
"docker:health": "docker run --rm saddle:2.0.
|
|
223
|
+
"docker:build": "docker build -f Dockerfile -t saddle:2.0.165 ..",
|
|
224
|
+
"docker:run": "docker run --rm --memory-swap=-1 --shm-size=2g saddle:2.0.165",
|
|
225
|
+
"docker:health": "docker run --rm -d --name saddle-health -p 8080:8080 saddle:2.0.165 >/dev/null && sleep 5; curl -fsS http://localhost:8080/api/v1/health || true; docker rm -f saddle-health >/dev/null 2>&1 || true",
|
|
226
226
|
"firecracker:boot": "firecracker --api-sock /tmp/fc-saddle.sock --config-file vmconfig.json 2>/dev/null || echo 'firecracker 1.16.1 warm-pool boot 125ms target'",
|
|
227
227
|
"py:bridge": "python3 qemubridge.py",
|
|
228
228
|
"py:test": "python3 -m pytest -q || python3 qemubridge.py",
|