@wenathlan/saddle 2.0.165 → 2.0.166

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 CHANGED
@@ -1,4 +1,4 @@
1
- # saddle 2.0.165 — THE ENGINE CONTAINER FILE
1
+ # saddle 2.0.166 — 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
@@ -62,15 +62,26 @@
62
62
  # distribution this container installs.
63
63
  #
64
64
  # THE OS DISTRIBUTION SEATS the saddle container carries (the osdistrib
65
- # law, saddle/containerarch.ts — the owner's sentence: "iniciar
65
+ # law, saddle/containerarch.ts — the owner's sentences: "iniciar
66
66
  # distribuição do container saddle com por exemplo, grapheneos, omarchy
67
- # e outros sistemas dentro do saddle"): the container starts its
68
- # distribution catalog with the seven system seats the OSDISTRIBUTIONS
69
- # registry pins — grapheneos (a privacy and security hardened version of
70
- # android), omarchy (the arch linux-based distribution created by dhh),
71
- # vanilla os (based on ubuntu), maru os (firmware, not an application),
72
- # the v seat (the vlang platform the dependency catalog pins at 0.5.2,
73
- # never a guest distribution), the normal linux baseline and android —
67
+ # e outros sistemas dentro do saddle" and "o saddle nao ta com mais de
68
+ # 15 devido as disvbriçoe s com sistem aoperacional como graphene os e
69
+ # etc" — the more-than-fifteen directive): the container carries the
70
+ # sixteen system seats the OSDISTRIBUTIONS
71
+ # registry pins — the seven named law seats (grapheneos a privacy and
72
+ # security hardened version of android, omarchy the arch linux-based
73
+ # distribution created by dhh, vanilla os based on ubuntu, maru os
74
+ # firmware not an application, the v seat the vlang platform the
75
+ # dependency catalog pins at 0.5.2 never a guest distribution, the
76
+ # normal linux baseline and android) beside the nine honest additions —
77
+ # postmarketos (the alpine-based mobile distribution), lineageos (the
78
+ # community android continuation), calyxos (the privacy-focused android
79
+ # distribution), archlinux (the rolling-release distribution omarchy
80
+ # builds on), alpine (the musl-based lightweight distribution), debian
81
+ # (the universal operating system), fedora (the red-hat-upstream
82
+ # community distribution), nixos (the declarative distribution the nix
83
+ # package manager builds) and void (the independent source-rolling
84
+ # distribution) —
74
85
  # every seat paired with the architecture legs the eleven-architecture
75
86
  # standard already carries (the mobile and firmware seats ride the arm64
76
87
  # legs, the desktop and baseline seats ride amd64 and arm64) and bound
@@ -143,7 +154,7 @@ ARG NODE_BASE_DIGEST
143
154
  # ===== stage: solbuild — the locked npm tree and the console spa =====
144
155
  FROM --platform=$BUILDPLATFORM ${NODE_BASE_TAG}@sha256:${NODE_BASE_DIGEST} AS solbuild
145
156
 
146
- ARG SADDLE_VERSION=2.0.165
157
+ ARG SADDLE_VERSION=2.0.166
147
158
 
148
159
  WORKDIR /app
149
160
 
@@ -171,7 +182,7 @@ RUN npm run web:build:pages \
171
182
  # ===== stage: base — the hardened runtime floor every profile shares =====
172
183
  FROM ${NODE_BASE_TAG}@sha256:${NODE_BASE_DIGEST} AS base
173
184
 
174
- ARG SADDLE_VERSION=2.0.165
185
+ ARG SADDLE_VERSION=2.0.166
175
186
  # the revision stamp the devthink container carries (DEVTHINK_REVISION
176
187
  # there): the publish legs pass the release sha at build time and the
177
188
  # revision label below declares the default-unknown local shape.
@@ -411,3 +422,107 @@ ENV SADDLE_PROFILE=balanced \
411
422
  SADDLE_PROFILE_RAM_GB=${VHE_PROFILE_RAM_GB} \
412
423
  SADDLE_PROFILE_GPU=${VHE_PROFILE_GPU} \
413
424
  SADDLE_PROFILE_GPUS=${VHE_PROFILE_GPUS}
425
+
426
+ # ===== the os-distribution flavor lanes (the container-lane law) =====
427
+ # THE OS-DISTRIBUTION AXIS BESIDE THE PROFILE AXIS (the owner's
428
+ # container-lane law: the saddle container carries MORE THAN 15 lanes):
429
+ # the four seats of the OSDISTRIBUTIONS catalog that ride the same honest
430
+ # node base legs — linux (the baseline seat), omarchy (the arch
431
+ # linux-based desktop distribution created by dhh), vanilla os (the
432
+ # ubuntu-based atomic distribution) and android (the mobile platform the
433
+ # grapheneos hardening builds on) — answer four flavor targets that stamp
434
+ # the catalog seat into the image config (SADDLE_OS_PROFILE + the OCI
435
+ # labels), binding the max plan the baseline seat rides. the flavor is
436
+ # the GUEST SEAT the engine hosts (the catalog law of
437
+ # saddle/containerarch.ts: the engine presents the profile, it never
438
+ # installs a host distribution) — the same engine graph, the same ninety
439
+ # modalities, the same health surface, one honest seat stamp per lane:
440
+ #
441
+ # docker build --target oslinux -t saddle:2.0.165-linux .
442
+ # docker build --target osomarchy -t saddle:2.0.165-omarchy .
443
+ # docker build --target osvanillaos -t saddle:2.0.165-vanillaos .
444
+ # docker build --target osandroid -t saddle:2.0.165-android .
445
+ FROM max AS oslinux
446
+ ARG SADDLE_OS_PROFILE="linux"
447
+ ENV SADDLE_OS_PROFILE=linux
448
+ LABEL org.opencontainers.image.title="saddle (the linux os-distribution lane)" \
449
+ org.opencontainers.image.description="saddle — the master virtualization engine bound to the linux os-distribution seat of the catalog: the baseline distribution the container itself rides."
450
+
451
+ FROM max AS osomarchy
452
+ ARG SADDLE_OS_PROFILE="omarchy"
453
+ ENV SADDLE_OS_PROFILE=omarchy
454
+ LABEL org.opencontainers.image.title="saddle (the omarchy os-distribution lane)" \
455
+ org.opencontainers.image.description="saddle — the master virtualization engine bound to the omarchy os-distribution seat of the catalog: the arch linux-based distribution created by dhh, hosted as the desktop guest profile."
456
+
457
+ FROM max AS osvanillaos
458
+ ARG SADDLE_OS_PROFILE="vanillaos"
459
+ ENV SADDLE_OS_PROFILE=vanillaos
460
+ LABEL org.opencontainers.image.title="saddle (the vanilla os os-distribution lane)" \
461
+ org.opencontainers.image.description="saddle — the master virtualization engine bound to the vanilla os os-distribution seat of the catalog: the ubuntu-based atomic distribution, hosted as the desktop guest profile."
462
+
463
+ FROM max AS osandroid
464
+ ARG SADDLE_OS_PROFILE="android"
465
+ ENV SADDLE_OS_PROFILE=android
466
+ LABEL org.opencontainers.image.title="saddle (the android os-distribution lane)" \
467
+ org.opencontainers.image.description="saddle — the master virtualization engine bound to the android os-distribution seat of the catalog: the mobile platform the grapheneos hardening builds on, hosted as the mobile guest profile."
468
+
469
+ # ===== the os-distribution catalog lanes (the no-base seats) =====
470
+ # THE EXOTIC HALF OF THE AXIS: the os distribution seats with NO runnable
471
+ # container base — grapheneos (a privacy and security hardened version of
472
+ # android) and maru os (firmware, not an application) are android
473
+ # firmware seats, the v seat is the vlang platform target (never a guest
474
+ # distribution) and the windows seat is the guest vocabulary the exe
475
+ # seats execute — never pretend a runnable image. the catalog lane
476
+ # publishes the profile itself: a scratch-based image (no base at all —
477
+ # the digest law rides trivially) whose config carries the seat stamp and
478
+ # whose single file is the profile row the osprofiles catalog answers,
479
+ # rendered to json beside the build context (osprofiles/<id>.json, the
480
+ # publish lane generates it from the tagged source):
481
+ #
482
+ # docker build --target osgrapheneos -t saddle:2.0.165-grapheneos .
483
+ # docker build --target osmaruos -t saddle:2.0.165-maruos .
484
+ # docker build --target osv -t saddle:2.0.165-v .
485
+ # docker build --target oswindows -t saddle:2.0.165-windows .
486
+ FROM scratch AS osgrapheneos
487
+ ARG SADDLE_VERSION=2.0.166
488
+ ARG SADDLE_OS_PROFILE="grapheneos"
489
+ ENV SADDLE_OS_PROFILE=grapheneos
490
+ LABEL org.opencontainers.image.title="saddle (the grapheneos os-distribution catalog lane)" \
491
+ org.opencontainers.image.description="the grapheneos os-distribution seat as a catalog lane: a privacy and security hardened version of android — no runnable container base exists for an android firmware seat, the lane publishes the profile config the engine reads." \
492
+ org.opencontainers.image.version="${SADDLE_VERSION}" \
493
+ org.opencontainers.image.licenses="GPL-3.0-only" \
494
+ org.opencontainers.image.source="https://github.com/wenathlan/devthink"
495
+ COPY osprofiles/grapheneos.json /saddle/osprofile.json
496
+
497
+ FROM scratch AS osmaruos
498
+ ARG SADDLE_VERSION=2.0.166
499
+ ARG SADDLE_OS_PROFILE="maruos"
500
+ ENV SADDLE_OS_PROFILE=maruos
501
+ LABEL org.opencontainers.image.title="saddle (the maru os os-distribution catalog lane)" \
502
+ org.opencontainers.image.description="the maru os os-distribution seat as a catalog lane: maru os is firmware, not an application — no runnable container base exists for a firmware seat, the lane publishes the profile config the engine reads." \
503
+ org.opencontainers.image.version="${SADDLE_VERSION}" \
504
+ org.opencontainers.image.licenses="GPL-3.0-only" \
505
+ org.opencontainers.image.source="https://github.com/wenathlan/devthink"
506
+ COPY osprofiles/maruos.json /saddle/osprofile.json
507
+
508
+ FROM scratch AS osv
509
+ ARG SADDLE_VERSION=2.0.166
510
+ ARG SADDLE_OS_PROFILE="v"
511
+ ENV SADDLE_OS_PROFILE=v
512
+ LABEL org.opencontainers.image.title="saddle (the v os-distribution catalog lane)" \
513
+ org.opencontainers.image.description="the v os-distribution seat as a catalog lane: the v language platform target the languagev compiler seat of the ninety modalities answers, never a guest distribution — the lane publishes the profile config the engine reads." \
514
+ org.opencontainers.image.version="${SADDLE_VERSION}" \
515
+ org.opencontainers.image.licenses="GPL-3.0-only" \
516
+ org.opencontainers.image.source="https://github.com/wenathlan/devthink"
517
+ COPY osprofiles/v.json /saddle/osprofile.json
518
+
519
+ FROM scratch AS oswindows
520
+ ARG SADDLE_VERSION=2.0.166
521
+ ARG SADDLE_OS_PROFILE="windows"
522
+ ENV SADDLE_OS_PROFILE=windows
523
+ LABEL org.opencontainers.image.title="saddle (the windows os-distribution catalog lane)" \
524
+ org.opencontainers.image.description="the windows os-distribution seat as a catalog lane: the guest vocabulary the exe seats execute — the container standard answers the windows seats as binary targets, the lane publishes the profile config the engine reads." \
525
+ org.opencontainers.image.version="${SADDLE_VERSION}" \
526
+ org.opencontainers.image.licenses="GPL-3.0-only" \
527
+ org.opencontainers.image.source="https://github.com/wenathlan/devthink"
528
+ COPY osprofiles/windows.json /saddle/osprofile.json
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.165 grand-merge envelope (`node server.ts`; the api answers its version at `/api/v1/health`) and the browser-pure engine port |
34
+ | `server.ts`, `sandbox.ts` | the zero-dependency self-hosted API of the 2.0.166 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
 
@@ -6,7 +6,7 @@ The eleven distribution lanes of the PR14 law and the honest status each lane an
6
6
  | --- | --- | --- | --- |
7
7
  | npmjs | package.json — @wenathlan/saddle | live | the family-npmjs lane publishes the engine envelope (the heaviest pass, always last) |
8
8
  | GitHub Packages npm | package.json — @wenathlan/saddle | live | the family-githubnpm lane publishes the same envelope idempotently |
9
- | Maven | pom.xml — io.github.wenathlan:saddle | live | the family-maven lane deploys the one real jar of the family (the Saddle.java adapter) |
9
+ | Maven | pom.xml — com.wenathlan:saddle | live | the family-maven lane deploys the one real jar of the family (the Saddle.java adapter) |
10
10
  | NuGet | saddle.csproj | live | the family-nuget lane packs the engine envelope |
11
11
  | Gradle | build.gradle.kts — com.wenathlan:saddle | live | the family-gradle lane publishes the module beside the maven coordinates |
12
12
  | Ruby Gems | saddle.gemspec | live | the family-rubygems lane pushes the gem carrying the SaddleCli.rb process adapter |
@@ -192,8 +192,12 @@ covers every name the owner used.
192
192
 
193
193
  the container side of the same law rides its own registry: the
194
194
  OSDISTRIBUTIONS catalog of saddle/containerarch.ts (section 1c) carries
195
- the seven system seats the saddle container starts its distribution with
196
- — grapheneos, omarchy, vanilla os, maru os, the v seat, the normal linux
197
- baseline and android — with the arch pairings, the engine plan trio
195
+ the sixteen system seats the saddle container holds (the owner's
196
+ more-than-fifteen directive: "o saddle nao ta com mais de 15 devido as
197
+ disvbriçoe s com sistem aoperacional como graphene os e etc") — the
198
+ seven named seats (grapheneos, omarchy, vanilla os, maru os, the v
199
+ seat, the normal linux baseline and android) beside the nine honest
200
+ additions (postmarketos, lineageos, calyxos, archlinux, alpine, debian,
201
+ fedora, nixos and void) — with the arch pairings, the engine plan trio
198
202
  binding and the plan-resource law. see
199
203
  [osdistributions.md](osdistributions.md) for the record.
@@ -1,4 +1,4 @@
1
- # os.distributions — the seven system seats the saddle container carries
1
+ # os.distributions — the sixteen system seats the saddle container carries
2
2
 
3
3
  > the owner order (pr15, verbatim): "iniciar distribuição do container
4
4
  > saddle com por exemplo, grapheneos, omarchy e outros sistemas dentro do
@@ -10,7 +10,10 @@
10
10
  > distribution created by dhh / grapheneos is a privacy and security
11
11
  > hardened version of android / linux normal / max / lite / balanced /
12
12
  > android / arm64 / amd64 / vgpu / vcpu / por exemplo, 50gb por plano
13
- > via config."
13
+ > via config." and the more-than-fifteen directive: "o saddle nao ta
14
+ > com mais de 15 devido as disvbriçoe s com sistem aoperacional como
15
+ > graphene os e etc" — the saddle container carries more than fifteen
16
+ > system seats.
14
17
 
15
18
  ## the registry
16
19
 
@@ -30,6 +33,21 @@ import it takes — `engineplans.ts` — is itself pure data).
30
33
  | v | languageos | the v language platform (vlang, the 0.5.2 catalog seat) | vpm | linux-x64, linux-arm64, darwin-arm64, darwin-x64, windows-x64, wasm32 | amd64+arm64 | max/balanced/lite |
31
34
  | linux | distribution | the plain linux baseline the engine container rides | apt | linux-x64, linux-x64-musl, linux-arm64, linux-riscv64 | amd64+arm64+riscv64 | max/balanced/lite |
32
35
  | android | mobile | the android application platform | apk | linux-arm64, darwin-arm64-v8 | arm64 | max/balanced/lite |
36
+ | postmarketos | mobile | alpine linux | apk | linux-arm64, darwin-arm64-v8 | arm64 | max/balanced/lite |
37
+ | lineageos | mobile | android | apk | linux-arm64, darwin-arm64-v8 | arm64 | max/balanced/lite |
38
+ | calyxos | mobile | android | apk | linux-arm64, darwin-arm64-v8 | arm64 | max/balanced/lite |
39
+ | archlinux | desktop | arch linux | pacman | linux-x64, linux-arm64 | amd64+arm64 | max/balanced/lite |
40
+ | alpine | distribution | musl libc busybox | apk | linux-x64, linux-arm64, linux-x64-musl, linux-riscv64 | amd64+arm64+riscv64 | max/balanced/lite |
41
+ | debian | desktop | the debian project | apt | linux-x64, linux-arm64 | amd64+arm64 | max/balanced/lite |
42
+ | fedora | desktop | red hat linux upstream | rpm | linux-x64, linux-arm64 | amd64+arm64 | max/balanced/lite |
43
+ | nixos | distribution | the nix package manager | nix | linux-x64, linux-arm64 | amd64+arm64 | max/balanced/lite |
44
+ | void | distribution | xbps | xbps | linux-x64, linux-arm64, linux-x64-musl | amd64+arm64 | max/balanced/lite |
45
+
46
+ the seven named law seats ride first (the order the owner's sentence
47
+ rides them), then the nine honest additions the more-than-fifteen
48
+ directive rides: postmarketos, lineageos, calyxos, archlinux, alpine,
49
+ debian, fedora, nixos and void — every one a real distribution with
50
+ its true upstream fact.
33
51
 
34
52
  the true facts the owner's law pins, verbatim in the rows' notes:
35
53
 
@@ -52,6 +70,27 @@ the true facts the owner's law pins, verbatim in the rows' notes:
52
70
  standard carries answers it.
53
71
  - **android** is the mobile platform the grapheneos hardening builds on.
54
72
 
73
+ the true facts of the nine additions, verbatim in the rows' notes:
74
+
75
+ - **postmarketos** is the alpine-based mobile distribution real devices
76
+ boot (the community mobile seat, the apk grammar, the arm64 legs).
77
+ - **lineageos** is the community android continuation (the aftermarket
78
+ mobile seat on the arm64 legs).
79
+ - **calyxos** is the privacy-focused android distribution (the hardened
80
+ mobile seat beside grapheneos).
81
+ - **archlinux** is the rolling-release distribution omarchy builds on
82
+ (the pacman desktop seat on the amd64 and arm64 legs).
83
+ - **alpine** is the musl-based lightweight distribution (the
84
+ small-footprint seat the musl legs answer).
85
+ - **debian** is the universal operating system (the apt desktop seat the
86
+ widest hardware matrix answers).
87
+ - **fedora** is the red-hat-upstream community distribution (the rpm
88
+ desktop seat beside the apt rows).
89
+ - **nixos** is the declarative distribution the nix package manager
90
+ builds (the reproducible-system seat).
91
+ - **void** is the independent source-rolling distribution (the xbps seat
92
+ the musl legs answer beside alpine).
93
+
55
94
  ## the pairings (real joins, never duplicated lists)
56
95
 
57
96
  - the **arch pairing**: every `archs` entry of every row is a real seat
@@ -106,7 +145,7 @@ arch standard:
106
145
  - `getosdistribution`, `resolveosdistribution`, `osdistributionerror`
107
146
  — the resolver (undefined/null answers the linux row, a known id
108
147
  answers its row, anything else throws the coded
109
- `OS_DISTRIBUTION_UNKNOWN` refusal naming the seven seats);
148
+ `OS_DISTRIBUTION_UNKNOWN` refusal naming the sixteen seats);
110
149
  - `osdistributionsforarch`, `osdistributionsforprofile` — the joins the
111
150
  modality system reads (which seats ride one arch seat; which seats
112
151
  ride one tier — an unknown tier throws
@@ -126,7 +165,7 @@ legs the eleven-architecture standard carries. the dockerfile documents
126
165
  the law (the `THE OS DISTRIBUTION SEATS` paragraph) and the publish
127
166
  lanes stay untouched: no per-os build matrix exists or is needed, the
128
167
  container itself keeps riding the normal linux baseline (the container
129
- lane law) and the seven seats are the catalog the modality system hosts
168
+ lane law) and the sixteen seats are the catalog the modality system hosts
130
169
  inside the engine, never host distributions the container installs.
131
170
 
132
171
  ## the visitor law (the critical law)
@@ -139,8 +178,10 @@ owns every cycle it spends through saddle and vault edge processing.
139
178
 
140
179
  ## the pinning battery
141
180
 
142
- `saddle/tests/osdistrib.test.ts` (eight tests, green): the seven seats
143
- in law order, the true facts verbatim, the arch pairing honesty (every
181
+ `saddle/tests/osdistrib.test.ts` (nine tests, green): the sixteen seats
182
+ in law order (the seven named seats plus the nine honest additions,
183
+ more than fifteen), the true facts verbatim per named seat and per
184
+ addition seat, the arch pairing honesty (every
144
185
  pairing a real seat of the standard, the derived legs per seat), the
145
186
  tier binding reused from engineplans (the deep-equality against
146
187
  `ENGINEPLANS.map`), the plan-resource law (50 as plan config, the
package/docs/saddle.md ADDED
@@ -0,0 +1,35 @@
1
+ # saddle — the dossier
2
+
3
+ The master virtualization engine of the family: the VM, the sandbox, the microVM, the runner and the virtual hardware — the engine every app rides.
4
+
5
+ ## Identity
6
+
7
+ - Category: virtualization engine.
8
+ - The ninety modalities: from the first (the complete virtual machine) to the ninetieth, every one a real executable seat.
9
+ - Competitor space: the edge processing engines (the infrastructure the family owns).
10
+
11
+ ## Objective
12
+
13
+ Execute every workload of the family on the house infrastructure — never the visitor machine: not the browser, not the GPU, not the CPU, not the local storage. The engine runs 24h on the internet edge.
14
+
15
+ ## Features
16
+
17
+ - The ninety modalities across four lanes: vm (the machine seats), hardware (the virtual hardware presentation), runner (the program execution), sandbox (the isolation, ports, files, storage, network, delivery).
18
+ - Real executors on every seat: qemu argv builders, docker flag arrays, firecracker seats, the language runtimes (node, bun, deno, go, python), the wasm instantiation, the babel compilation bridge, the yaml interpreter, the virtual file system, the wire packet builders and the sigv4 signing chain.
19
+ - The visitor guard: the dispatch gate refuses any request that asks for a visitor scope before one instruction rides.
20
+ - The eleven-architecture standard: linux-x64, darwin-arm64, windows-x64, linux-arm64, darwin-x64, windows-arm64, linux-x64-musl, linux-riscv64, wasm32, darwin-arm64-v8, windows-x64-gnu.
21
+ - The OS host profiles catalog: linux, grapheneos, omarchy, maruos, vanillaos, v, windows, android.
22
+ - The container trio: max, balanced, lite — the exotic seat only saddle carries.
23
+ - The OS distribution flavor lanes: linux, omarchy, vanillaos, android flavors with the grapheneos, maruos, v and windows catalog lanes.
24
+ - The queue orchestration: express, normal, batch.
25
+ - The engine plans seam: plan limits (for example the storage quota) arrive from outside and scope one run only — the engines themselves are unlimited.
26
+
27
+ ## Interactions
28
+
29
+ - The engine CLI with the family chat design beside the functional commands.
30
+ - The modalities endpoint the family surfaces consume.
31
+
32
+ ## Doctrine
33
+
34
+ - The critical law: the engine never touches the person's machine.
35
+ - Saddle first, vault second: the storage engine leans on saddle when it needs edge processing.