@wenathlan/saddle 2.0.6 → 2.0.150
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 +47 -21
- package/LICENSE +0 -0
- package/README.md +19 -3
- package/alternatives.ts +0 -0
- package/boards.json +2 -2
- package/compute.ts +4 -4
- package/cores.json +2 -2
- package/docker.config +3 -3
- package/docs/.gitkeep +0 -0
- package/docs/CONVERSA.txt +0 -0
- package/docs/actionrecorder.md +0 -0
- package/docs/actionsincident.md +0 -0
- package/docs/alternatives.md +0 -0
- package/docs/architecture-1.8.19.md +0 -0
- package/docs/architecture-1.8.19.mmd +0 -0
- package/docs/architecture-1.8.19.png +0 -0
- package/docs/architecture.md +3 -3
- package/docs/artifactavailability.md +0 -0
- package/docs/artifactresearch-1.8.9.md +0 -0
- package/docs/assets/architecture.svg +0 -0
- package/docs/assets/saddle-browser-trace.webp +0 -0
- package/docs/assets/saddle-hero-bridge.webp +0 -0
- package/docs/assets/saddle-mark.webp +0 -0
- package/docs/assets/saddle-runtime-map.webp +0 -0
- package/docs/assets/saddlemark.svg +0 -0
- package/docs/batches-1816-1820.md +0 -0
- package/docs/brancharchive-2026-08-18.md +0 -0
- package/docs/branchaudit.md +0 -0
- package/docs/browser.md +0 -0
- package/docs/capabilityreport.md +0 -0
- package/docs/comparativeaudit.md +0 -0
- package/docs/consolidation.md +0 -0
- package/docs/containerplatforms-1.8.17.md +0 -0
- package/docs/containerplatforms-2.1.0.md +73 -0
- package/docs/documentmap-1.8.12.md +0 -0
- package/docs/e2ugh-engine.md +0 -0
- package/docs/ecosystemplan.md +0 -0
- package/docs/enginearchitecture.md +0 -0
- package/docs/example-localjob.ts +0 -0
- package/docs/example-publicapi.ts +0 -0
- package/docs/extension.md +0 -0
- package/docs/featureaudit.md +0 -0
- package/docs/flatbuildresearch-1.8.11.md +0 -0
- package/docs/gapmatrix.md +0 -0
- package/docs/hardware.md +0 -0
- package/docs/libraryapi.md +0 -0
- package/docs/licenseaudit-1.8.12.md +0 -0
- package/docs/logs/examplesession.json +54 -0
- package/docs/memoryengine.md +0 -0
- package/docs/mobileconversionresearch-1.8.10.md +0 -0
- package/docs/modes.md +0 -0
- package/docs/native-wrappers.md +38 -0
- package/docs/nativeidentityresearch-1.8.11.md +0 -0
- package/docs/optimization.md +0 -0
- package/docs/packageaudit185.md +0 -0
- package/docs/performance.md +0 -0
- package/docs/planning.1.8.18.md +0 -0
- package/docs/planning.1.8.19.md +0 -0
- package/docs/planning.engine.md +186 -0
- package/docs/platformpipelineaudit.md +0 -0
- package/docs/platformpipelines.md +0 -0
- package/docs/productindex.md +0 -0
- package/docs/registryresearch.md +0 -0
- package/docs/release.md +0 -0
- package/docs/release17notes.md +0 -0
- package/docs/release181notes.md +0 -0
- package/docs/release182notes.md +0 -0
- package/docs/release184notes.md +0 -0
- package/docs/release185notes.md +0 -0
- package/docs/release18notes.md +0 -0
- package/docs/releaseassets.md +0 -0
- package/docs/releasenotes-1.8.12.md +0 -0
- package/docs/releasenotes-1.8.13.md +0 -0
- package/docs/releasenotes-1.8.14.md +0 -0
- package/docs/releasenotes-1.8.15.md +0 -0
- package/docs/releasenotes-1.8.16.md +0 -0
- package/docs/releasenotes-1.8.17.md +0 -0
- package/docs/releasenotes-1.8.18.md +0 -0
- package/docs/releasenotes-1.8.19.md +0 -0
- package/docs/reorganization-1.8.8.md +0 -0
- package/docs/reorganization-1.8.9.md +0 -0
- package/docs/repo-analysis-1.8.21.json +0 -0
- package/docs/repo-candidates-1.8.21.jsonl +0 -0
- package/docs/repo-research-1.8.16.md +0 -0
- package/docs/repo-research-1.8.21.md +0 -0
- package/docs/repo-selected-1.8.21.json +0 -0
- package/docs/repo-synthesis-1.8.16.md +0 -0
- package/docs/repo-synthesis-1.8.21.md +0 -0
- package/docs/research-1.8.18-isolation.md +0 -0
- package/docs/research-1.8.19-virtual-browser.md +0 -0
- package/docs/roadmapp2p3.md +0 -0
- package/docs/s3compatible.md +0 -0
- package/docs/saddle.archive.1.8.17.tar.gz.gpg +0 -0
- package/docs/scanningresearch-1.8.11.md +0 -0
- package/docs/security.md +0 -0
- package/docs/securityaudit-1.8.7.md +0 -0
- package/docs/securityreferences-1.8.11.md +0 -0
- package/docs/securityresearch-1.8.11.md +0 -0
- package/docs/signingresearch-1.8.12.md +0 -0
- package/docs/signingwithoutcertificates.md +0 -0
- package/docs/signpathapplication.md +0 -0
- package/docs/sitemap.md +0 -0
- package/docs/tauri-glib-risk-1.8.11.md +0 -0
- package/docs/todo-1.8.15.md +0 -0
- package/docs/todo-1.8.16.md +0 -0
- package/docs/todo-1.8.18.md +0 -0
- package/docs/todo-1.8.19.md +0 -0
- package/docs/todo.md +0 -0
- package/docs/toolchainresearch-1.8.9.md +0 -0
- package/docs/toolchains.md +0 -0
- package/docs/usage.md +0 -0
- package/docs/viability.md +0 -0
- package/docs/virtualization.md +0 -0
- package/docs/web-duplicatecleanup.md +0 -0
- package/docs/web-ideas.md +0 -0
- package/docs/workflowimprovements-2026-08-19.md +0 -0
- package/docs/workflowinputs.md +0 -0
- package/docs/workflowoperations.md +0 -0
- package/gpumonitor.cpp +0 -0
- package/gpus.json +1 -1
- package/index.ts +14 -15
- package/manifest.json +20 -0
- package/media.ts +0 -0
- package/mttg.config +1 -1
- package/orchestrator.ts +5 -2
- package/package.json +142 -91
- package/passage.config +2 -2
- package/performance.ts +0 -0
- package/processors.json +1 -1
- package/qemu.config +2 -2
- package/qemubridge.py +0 -0
- package/quantum.ts +0 -0
- package/render.ts +0 -0
- package/scheduler.ts +0 -0
- package/security.ts +0 -0
- package/tiers.ts +9 -3
- package/tsconfig.json +22 -17
- package/virtualcpu.ts +1 -0
- package/virtualgpu.ts +1 -0
- package/virtualhardware.c +0 -0
- package/virtualhardware.json +2 -2
- package/virtualization.ts +0 -0
- package/virtualizationcore.cpp +0 -0
- package/virtualmemory.ts +0 -0
- package/vm.config.json +3 -3
- package/biome.json +0 -153
- package/dist/acquisition.d.ts +0 -359
- package/dist/acquisition.d.ts.map +0 -1
- package/dist/acquisition.js +0 -629
- package/dist/acquisition.js.map +0 -1
- package/dist/alternatives.d.ts +0 -509
- package/dist/alternatives.d.ts.map +0 -1
- package/dist/alternatives.js +0 -951
- package/dist/alternatives.js.map +0 -1
- package/dist/automation.d.ts +0 -426
- package/dist/automation.d.ts.map +0 -1
- package/dist/automation.js +0 -561
- package/dist/automation.js.map +0 -1
- package/dist/browser.d.ts +0 -562
- package/dist/browser.d.ts.map +0 -1
- package/dist/browser.js +0 -1057
- package/dist/browser.js.map +0 -1
- package/dist/capacitor.config.d.ts +0 -13
- package/dist/capacitor.config.d.ts.map +0 -1
- package/dist/capacitor.config.js +0 -26
- package/dist/capacitor.config.js.map +0 -1
- package/dist/cli.d.ts +0 -17
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -111
- package/dist/cli.js.map +0 -1
- package/dist/communication.d.ts +0 -192
- package/dist/communication.d.ts.map +0 -1
- package/dist/communication.js +0 -418
- package/dist/communication.js.map +0 -1
- package/dist/compute.d.ts +0 -1161
- package/dist/compute.d.ts.map +0 -1
- package/dist/compute.js +0 -2273
- package/dist/compute.js.map +0 -1
- package/dist/distribution.d.ts +0 -529
- package/dist/distribution.d.ts.map +0 -1
- package/dist/distribution.js +0 -811
- package/dist/distribution.js.map +0 -1
- package/dist/execution.d.ts +0 -530
- package/dist/execution.d.ts.map +0 -1
- package/dist/execution.js +0 -761
- package/dist/execution.js.map +0 -1
- package/dist/format.d.ts +0 -19
- package/dist/format.d.ts.map +0 -1
- package/dist/format.js +0 -60
- package/dist/format.js.map +0 -1
- package/dist/foundation.d.ts +0 -176
- package/dist/foundation.d.ts.map +0 -1
- package/dist/foundation.js +0 -309
- package/dist/foundation.js.map +0 -1
- package/dist/index.d.ts +0 -735
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -1020
- package/dist/index.js.map +0 -1
- package/dist/integration.d.ts +0 -236
- package/dist/integration.d.ts.map +0 -1
- package/dist/integration.js +0 -236
- package/dist/integration.js.map +0 -1
- package/dist/intelligence.d.ts +0 -94
- package/dist/intelligence.d.ts.map +0 -1
- package/dist/intelligence.js +0 -145
- package/dist/intelligence.js.map +0 -1
- package/dist/isolation.d.ts +0 -129
- package/dist/isolation.d.ts.map +0 -1
- package/dist/isolation.js +0 -96
- package/dist/isolation.js.map +0 -1
- package/dist/media.d.ts +0 -344
- package/dist/media.d.ts.map +0 -1
- package/dist/media.js +0 -986
- package/dist/media.js.map +0 -1
- package/dist/modes.d.ts +0 -359
- package/dist/modes.d.ts.map +0 -1
- package/dist/modes.js +0 -134
- package/dist/modes.js.map +0 -1
- package/dist/operations.d.ts +0 -67
- package/dist/operations.d.ts.map +0 -1
- package/dist/operations.js +0 -94
- package/dist/operations.js.map +0 -1
- package/dist/orchestrator.d.ts +0 -1339
- package/dist/orchestrator.d.ts.map +0 -1
- package/dist/orchestrator.js +0 -4308
- package/dist/orchestrator.js.map +0 -1
- package/dist/packager/targetcli.js +0 -4
- package/dist/performance.d.ts +0 -416
- package/dist/performance.d.ts.map +0 -1
- package/dist/performance.js +0 -827
- package/dist/performance.js.map +0 -1
- package/dist/quantum.d.ts +0 -810
- package/dist/quantum.d.ts.map +0 -1
- package/dist/quantum.js +0 -2073
- package/dist/quantum.js.map +0 -1
- package/dist/render.d.ts +0 -381
- package/dist/render.d.ts.map +0 -1
- package/dist/render.js +0 -1073
- package/dist/render.js.map +0 -1
- package/dist/scheduler.d.ts +0 -596
- package/dist/scheduler.d.ts.map +0 -1
- package/dist/scheduler.js +0 -1259
- package/dist/scheduler.js.map +0 -1
- package/dist/security.d.ts +0 -501
- package/dist/security.d.ts.map +0 -1
- package/dist/security.js +0 -1170
- package/dist/security.js.map +0 -1
- package/dist/server.d.ts +0 -21
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js +0 -52
- package/dist/server.js.map +0 -1
- package/dist/tiers.d.ts +0 -1002
- package/dist/tiers.d.ts.map +0 -1
- package/dist/tiers.js +0 -2165
- package/dist/tiers.js.map +0 -1
- package/dist/virtual.d.ts +0 -641
- package/dist/virtual.d.ts.map +0 -1
- package/dist/virtual.js +0 -1285
- package/dist/virtual.js.map +0 -1
- package/dist/virtualcpu.d.ts +0 -316
- package/dist/virtualcpu.d.ts.map +0 -1
- package/dist/virtualcpu.js +0 -1180
- package/dist/virtualcpu.js.map +0 -1
- package/dist/virtualgpu.d.ts +0 -345
- package/dist/virtualgpu.d.ts.map +0 -1
- package/dist/virtualgpu.js +0 -1000
- package/dist/virtualgpu.js.map +0 -1
- package/dist/virtualization.d.ts +0 -607
- package/dist/virtualization.d.ts.map +0 -1
- package/dist/virtualization.js +0 -1187
- package/dist/virtualization.js.map +0 -1
- package/dist/virtualmemory.d.ts +0 -818
- package/dist/virtualmemory.d.ts.map +0 -1
- package/dist/virtualmemory.js +0 -1796
- package/dist/virtualmemory.js.map +0 -1
- package/dist/webscrape.d.ts +0 -720
- package/dist/webscrape.d.ts.map +0 -1
- package/dist/webscrape.js +0 -2697
- package/dist/webscrape.js.map +0 -1
- package/web/extension/manifest.json +0 -23
- package/web/readme.md +0 -382
- package/web/tsconfig.json +0 -25
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
# planning.engine — the saddle engine ladder (the sandbox that actually runs)
|
|
2
|
+
|
|
3
|
+
> the owner order: the interface exists, the engine must WORK — the saddle
|
|
4
|
+
> engine planned for real and wired into the whole system, 100% customizable
|
|
5
|
+
> (storage, ram, aliases, drivers, every knob editable through the api), the
|
|
6
|
+
> git storage and the github tree system living in the db, the sandbox
|
|
7
|
+
> modalities opening with their drivers (vgpu, vcpu, memory) running real on
|
|
8
|
+
> the hosts and NEVER touching the person's machine. the flows of the
|
|
9
|
+
> competitors (the telas files: z.ai, grok, manus, bolt, ai studio, vercel,
|
|
10
|
+
> netlify, cloudflare) are the recipe the engine follows; the framework, the
|
|
11
|
+
> library and the package choice stay open as long as node and the engines
|
|
12
|
+
> orchestrate behind. everything rides mime types + https.
|
|
13
|
+
>
|
|
14
|
+
> ## the competitor recipe the engine copies (from telas-sandbox-fluxo)
|
|
15
|
+
>
|
|
16
|
+
> - one sandbox per session, created implicitly at the first send, discovered
|
|
17
|
+
> never hand-built: workspaces/up (z.ai), /api/preview/{id} (grok),
|
|
18
|
+
> preview/resolve (manus).
|
|
19
|
+
> - the sandbox state streams: checking → quota ok → initializing → ready
|
|
20
|
+
> (sse of states with explicit quotas per user), the pod id in the ready
|
|
21
|
+
> payload.
|
|
22
|
+
> - the preview lives in its own subdomain with the port in it:
|
|
23
|
+
> preview-chat-<id>.devthink.pro, <port>-<hash>.<region>.devthink.run.
|
|
24
|
+
> - versioned storage OUTSIDE the sandbox: versions/<uuid> per write
|
|
25
|
+
> (z.ai), codestorage + commitSha (bolt), git repo in s3 (manus) — the
|
|
26
|
+
> saddle form: git objects inside the db (vault, libgit2) with the
|
|
27
|
+
> commitSha pointer the sandbox rootfs commits against.
|
|
28
|
+
> - ephemeral credentials only: jwt 300s per preview session (grok), otp per
|
|
29
|
+
> vnc (manus) — the saddle form: session-scoped tokens minted per sandbox
|
|
30
|
+
> bind, never a long-lived secret at the edge.
|
|
31
|
+
> - capabilities announced as an event (computer.capabilities.updated): the
|
|
32
|
+
> image inventory (node 26, git, ffmpeg, playwright-headless) reaches the
|
|
33
|
+
> front so features toggle by real capacity.
|
|
34
|
+
> - quotas explicit and queryable (x/min, y/4h, z/global) and the 429 typed
|
|
35
|
+
> before the bind.
|
|
36
|
+
> - the runtime daemon inside the sandbox: supervisord + runtime service
|
|
37
|
+
> (manus :8330/:8340 form) → devthink-runtime on its own port with the
|
|
38
|
+
> watcher loop and the upgrade lock, env in two layers (platform + user).
|
|
39
|
+
> - zero captcha anywhere, zero traffic from the person's browser: the code
|
|
40
|
+
> never transits the visitor, the agent's own headless browser runs inside
|
|
41
|
+
> the sandbox.
|
|
42
|
+
|
|
43
|
+
## wave SV0 — what already stands (verified, 411 tests green)
|
|
44
|
+
|
|
45
|
+
- [x] SV0.001 the virtual hardware engine: cpu/gpu banks, topology solver,
|
|
46
|
+
the host inventory probes (meminfo, nvidia-smi, glxinfo, vulkan)
|
|
47
|
+
- [x] SV0.002 the vgpu drivers lane: pci ids, nvml shim env, vfio
|
|
48
|
+
bind/unbind, rom dump, looking glass b7, nvidia vgpu profiles, mig
|
|
49
|
+
layouts (blackwell) with density validation, intel sriov dkms, nvenc
|
|
50
|
+
dual engine
|
|
51
|
+
- [x] SV0.003 the vcpu and memory lanes: topology composition, the mttg and
|
|
52
|
+
passage envelopes, the qemu and docker envelopes, the tier policy
|
|
53
|
+
- [x] SV0.004 the orchestrator with the gitops flux planning, the scheduler,
|
|
54
|
+
the queue and the quota lanes, the isolation and security gates
|
|
55
|
+
- [x] SV0.005 the webserver (health, specs, sandbox lifecycle, exec, spa
|
|
56
|
+
shell) and the browser-pure engine port with the transport-neutral
|
|
57
|
+
bundle set
|
|
58
|
+
- [x] SV0.006 the build engine riding node directly (the windows spawnSync
|
|
59
|
+
EINVAL wall gone), the lockstep version stamp across the envelope
|
|
60
|
+
- [x] SV0.007 the competitor flows captured (the telas files live beside the
|
|
61
|
+
md corpus) and the recipe distilled into this plan
|
|
62
|
+
|
|
63
|
+
## wave SV1 — the modality registry (the fifty, one catalog, the join)
|
|
64
|
+
|
|
65
|
+
- [ ] SV1.001 modalityregistry.ts: every sandbox modality as a record (id,
|
|
66
|
+
family, isolation level, driver requirements, boot cost class, the
|
|
67
|
+
mime contract, the driver modules it mounts) — the catalog grows
|
|
68
|
+
toward the fifty the owner counts, seeded from the rules list
|
|
69
|
+
- [ ] SV1.002 the families: complete virtual (drivers, cpu, gpu, memory, the
|
|
70
|
+
three profiles), universal runner, node packages, docker hardened,
|
|
71
|
+
ghcr immutable, microvm per workflow, browser/webcontainer server side,
|
|
72
|
+
mobile (capacitor, termux, postmarketos), confidential (sev-snp, tdx),
|
|
73
|
+
qemu and firecracker, pod per session, local opt-in, vm+vnc,
|
|
74
|
+
wasm/wasi, vfs, cdn
|
|
75
|
+
- [ ] SV1.003 the join resolver: the workload asks, the engine answers the
|
|
76
|
+
modality set (the nuclear modality — the person chooses none, the
|
|
77
|
+
platform resolves the join of all)
|
|
78
|
+
- [ ] SV1.004 the capability contract per modality: what the workload may
|
|
79
|
+
ask (net off, dropped caps, read-only root, pid limits for the docker
|
|
80
|
+
hardened; the clean rootfs, injected vcpu count, mesa llvmpipe,
|
|
81
|
+
lavapipe, rusticl, xvfb for the microvm)
|
|
82
|
+
- [ ] SV1.005 the boot ladder per modality: cold, warm, hot classes with
|
|
83
|
+
the measured budgets (gvisor without kvm about 200 ms, firecracker
|
|
84
|
+
125 ms boot the sandbox.ts banner already answers, v8 isolates for
|
|
85
|
+
serverless)
|
|
86
|
+
- [ ] SV1.006 tests: the registry determinism, the join resolution on the
|
|
87
|
+
three base profiles (max, balanced, lite), every record complete
|
|
88
|
+
|
|
89
|
+
## wave SV2 — the vfs and the cdn lane (the packages never touch the visitor)
|
|
90
|
+
|
|
91
|
+
- [ ] SV2.001 vfs.ts: the virtual file system born from prisma/git/db —
|
|
92
|
+
read(path) → chunk pointers from the db, write(path, bytes) → chunk
|
|
93
|
+
catalog with sha-256 and compression, automatic reuse of equal chunks
|
|
94
|
+
- [ ] SV2.002 the cdn lane: the ~45 cdns (esm.sh among them) fetched INSIDE
|
|
95
|
+
the sandbox over https through the vfs mirror — the person's browser
|
|
96
|
+
never loads a cdn byte of a sandbox workload
|
|
97
|
+
- [ ] SV2.003 the granular materialization: packages install ten by ten,
|
|
98
|
+
forty by forty inside the sandbox from the catalog (package.10 law) —
|
|
99
|
+
never on the build host
|
|
100
|
+
- [ ] SV2.004 the mime contract: every vfs object answers its mimetype, the
|
|
101
|
+
api serves content-type on every read (the mimetypes file feeds the
|
|
102
|
+
mapping)
|
|
103
|
+
- [ ] SV2.005 tests: chunk dedupe round trip, sha-256 stability, the cdn
|
|
104
|
+
mirror mock, the mime headers on every route
|
|
105
|
+
|
|
106
|
+
## wave SV3 — the git storage and the github tree (the code survives the sandbox)
|
|
107
|
+
|
|
108
|
+
- [ ] SV3.001 gitobjects.ts: git objects and blobs inside the db through
|
|
109
|
+
libgit2 semantics — the tree system the github tree law names: read
|
|
110
|
+
tree(path) → entries, write tree, commit with the parent chain
|
|
111
|
+
- [ ] SV3.002 the versioned write: every sandbox write stamps versions/<uuid>
|
|
112
|
+
with the commitSha — the bolt/z.ai pattern with the vault storage
|
|
113
|
+
- [ ] SV3.003 the github tree lane: read the live tree of a repository over
|
|
114
|
+
the api (authenticated), mirror into the git objects table, the
|
|
115
|
+
sandbox mounts the tree as its rootfs through the vfs
|
|
116
|
+
- [ ] SV3.004 the rollback: checkout any commitSha back into a running
|
|
117
|
+
sandbox (the history the vitrine clicks through)
|
|
118
|
+
- [ ] SV3.005 tests: tree round trip, commit chain integrity, the github
|
|
119
|
+
mirror with a recorded fixture, rollback determinism
|
|
120
|
+
|
|
121
|
+
## wave SV4 — the session sandbox law (pod per session, the states stream)
|
|
122
|
+
|
|
123
|
+
- [ ] SV4.001 sandboxup: one sandbox per session created implicitly at the
|
|
124
|
+
first send, discovered by session id — never a hand-built url
|
|
125
|
+
- [ ] SV4.002 the states stream over sse: checking → quota ok →
|
|
126
|
+
initializing → ready with the sandbox id, quotas per user explicit in
|
|
127
|
+
the handshake
|
|
128
|
+
- [ ] SV4.003 the capabilities event: the image inventory (node 26, git,
|
|
129
|
+
ffmpeg, playwright-headless, ffmpeg) announced when the sandbox turns
|
|
130
|
+
ready
|
|
131
|
+
- [ ] SV4.004 the preview subdomain: preview-<session>.devthink.pro with the
|
|
132
|
+
port binding, the ephemeral jwt 300s per bind (claims sub, session,
|
|
133
|
+
port)
|
|
134
|
+
- [ ] SV4.005 the runtime daemon: devthink-runtime inside the sandbox (the
|
|
135
|
+
supervisord + watcher loop + upgrade lock the manus form proves), env
|
|
136
|
+
in two layers (platform + session)
|
|
137
|
+
- [ ] SV4.006 the sweep: ttl 15 minutes, the sweep period the webserver
|
|
138
|
+
already carries, the workspace quota answering with the sandbox id
|
|
139
|
+
- [ ] SV4.007 tests: the state ladder order, the quota refusal typed 429,
|
|
140
|
+
the jwt expiry, the capabilities payload
|
|
141
|
+
|
|
142
|
+
## wave SV5 — config and aliases (100% customizable through the api)
|
|
143
|
+
|
|
144
|
+
- [ ] SV5.001 sandboxconfig.ts: every knob editable — base (max, balanced,
|
|
145
|
+
lite), os image (android, grapheneos, linux, omarchy, windows,
|
|
146
|
+
distros), arch (arm64, amd64), vcpu count, vram mib, storage quota,
|
|
147
|
+
the modality join, the driver set
|
|
148
|
+
- [ ] SV5.002 the aliases table: user-defined aliases per sandbox (the
|
|
149
|
+
short names the shell and the api resolve), add/rename/remove through
|
|
150
|
+
the api, unique per owner
|
|
151
|
+
- [ ] SV5.003 the config store: rows in sqlite through parameter binding,
|
|
152
|
+
the api serves and accepts the whole surface (the ui edits the same
|
|
153
|
+
rows), defaults from the seed catalog never hardcoded in components
|
|
154
|
+
- [ ] SV5.004 the presets: named profiles (the three bases plus user
|
|
155
|
+
presets) shareable and versioned
|
|
156
|
+
- [ ] SV5.005 tests: config round trip, alias uniqueness, preset apply,
|
|
157
|
+
the api contract with a fake request
|
|
158
|
+
|
|
159
|
+
## wave SV6 — the runners (forge at the frontier, foundry the face)
|
|
160
|
+
|
|
161
|
+
- [ ] SV6.001 the docker hardened runner: no network, dropped caps,
|
|
162
|
+
read-only root, pid limits, runsc option
|
|
163
|
+
- [ ] SV6.002 the microvm runner: clean rootfs, injected vcpu count, the
|
|
164
|
+
cpu id via ld_preload, mesa llvmpipe + lavapipe + rusticl + xvfb for
|
|
165
|
+
the gpu-less render, iso-style and ghcr sources
|
|
166
|
+
- [ ] SV6.003 the wasm/wasi runner: wasmer and wasmedge behind the same
|
|
167
|
+
dispatch contract
|
|
168
|
+
- [ ] SV6.004 the universal runner: any binary of the market through the
|
|
169
|
+
binfmt form, the platform processes included
|
|
170
|
+
- [ ] SV6.005 the dispatch result: the same SandboxState/DispatchResult
|
|
171
|
+
shape every runner answers (the contract the tests already pin)
|
|
172
|
+
- [ ] SV6.006 tests: per-runner dispatch on the recorded fixtures, the
|
|
173
|
+
hardening gates refusing the forbidden flags
|
|
174
|
+
|
|
175
|
+
## wave SV7 — the verification (the owner reads the live proof)
|
|
176
|
+
|
|
177
|
+
- [ ] SV7.001 the full battery green on every wave's modules
|
|
178
|
+
- [ ] SV7.002 the live proof: sandbox up through the api, the states stream
|
|
179
|
+
answering, exec inside, the vfs fetch of a cdn package, the git
|
|
180
|
+
commit with the commitSha, the preview subdomain bound with the
|
|
181
|
+
ephemeral jwt
|
|
182
|
+
- [ ] SV7.003 the live proof: the config edited through the api (ram,
|
|
183
|
+
storage, alias), the next boot honoring it
|
|
184
|
+
- [ ] SV7.004 the debonair bridge: the render jobs of the audio engine run
|
|
185
|
+
inside a saddle sandbox (the no-client-dsp law of the music pipeline)
|
|
186
|
+
- [ ] SV7.005 the worklog and the ladder ticked, the wave committed
|
|
File without changes
|
|
File without changes
|
package/docs/productindex.md
CHANGED
|
File without changes
|
package/docs/registryresearch.md
CHANGED
|
File without changes
|
package/docs/release.md
CHANGED
|
File without changes
|
package/docs/release17notes.md
CHANGED
|
File without changes
|
package/docs/release181notes.md
CHANGED
|
File without changes
|
package/docs/release182notes.md
CHANGED
|
File without changes
|
package/docs/release184notes.md
CHANGED
|
File without changes
|
package/docs/release185notes.md
CHANGED
|
File without changes
|
package/docs/release18notes.md
CHANGED
|
File without changes
|
package/docs/releaseassets.md
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/docs/roadmapp2p3.md
CHANGED
|
File without changes
|
package/docs/s3compatible.md
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/docs/security.md
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/docs/sitemap.md
CHANGED
|
File without changes
|
|
File without changes
|
package/docs/todo-1.8.15.md
CHANGED
|
File without changes
|
package/docs/todo-1.8.16.md
CHANGED
|
File without changes
|
package/docs/todo-1.8.18.md
CHANGED
|
File without changes
|
package/docs/todo-1.8.19.md
CHANGED
|
File without changes
|
package/docs/todo.md
CHANGED
|
File without changes
|
|
File without changes
|
package/docs/toolchains.md
CHANGED
|
File without changes
|
package/docs/usage.md
CHANGED
|
File without changes
|
package/docs/viability.md
CHANGED
|
File without changes
|
package/docs/virtualization.md
CHANGED
|
File without changes
|
|
File without changes
|
package/docs/web-ideas.md
CHANGED
|
File without changes
|
|
File without changes
|
package/docs/workflowinputs.md
CHANGED
|
File without changes
|
|
File without changes
|
package/gpumonitor.cpp
CHANGED
|
File without changes
|
package/gpus.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"meta": {
|
|
4
4
|
"name": "gpus.json",
|
|
5
5
|
"title": "saddle - Unified Virtual GPU Database",
|
|
6
|
-
"version": "2.0.
|
|
6
|
+
"version": "2.0.127",
|
|
7
7
|
"date": "2026-08-22",
|
|
8
8
|
"language": "en",
|
|
9
9
|
"description": "Union of the v5 GPU database (7 virtual identity identities), the S6 registry (RX 8900 XTX + Arc B770 unique), Blackwell architecture specs v5+v6 (B100/GB200/RTX 5070/5070 Ti SKUs), gpu.config TOML SKUs (incl. 5 AMD APU RDNA iGPUs) and the 11-entry vfio profile table. PCI device id for RTX PRO 6000 corrected 2BB5->26B5 per canonical v5.",
|
package/index.ts
CHANGED
|
@@ -40,7 +40,7 @@ export const engineversions = {
|
|
|
40
40
|
npm: '12.0.2',
|
|
41
41
|
/** python stable confirmed 2026-08-23. */
|
|
42
42
|
python: '3.14.7',
|
|
43
|
-
nodecurrent: '26.
|
|
43
|
+
nodecurrent: '26.12.1',
|
|
44
44
|
nodelts: '24.19.0',
|
|
45
45
|
typescript: '7.0.2',
|
|
46
46
|
docker: '29.7.2',
|
|
@@ -1460,19 +1460,18 @@ export type { migprofileid } from './virtualmemory.js';
|
|
|
1460
1460
|
/** Re-exports the memory tier catalog and virtual memory manager. */
|
|
1461
1461
|
export * from './virtualmemory.js';
|
|
1462
1462
|
|
|
1463
|
-
|
|
1464
1463
|
/* ── Section 2: the saddle domain routing barrel ── */
|
|
1465
1464
|
|
|
1466
|
-
export * from
|
|
1467
|
-
export * from
|
|
1468
|
-
export * from
|
|
1469
|
-
export * from
|
|
1470
|
-
export * from
|
|
1471
|
-
export * from
|
|
1472
|
-
export * from
|
|
1473
|
-
export * from
|
|
1474
|
-
export * from
|
|
1475
|
-
export * from
|
|
1476
|
-
export * from
|
|
1477
|
-
export * from
|
|
1478
|
-
export * from
|
|
1465
|
+
export * from './acquisition.js';
|
|
1466
|
+
export * from './automation.js';
|
|
1467
|
+
export * from './browser.js';
|
|
1468
|
+
export * from './communication.js';
|
|
1469
|
+
export * from './distribution.js';
|
|
1470
|
+
export * from './execution.js';
|
|
1471
|
+
export * from './foundation.js';
|
|
1472
|
+
export * from './integration.js';
|
|
1473
|
+
export * from './intelligence.js';
|
|
1474
|
+
export * from './isolation.js';
|
|
1475
|
+
export * from './modes.js';
|
|
1476
|
+
export * from './operations.js';
|
|
1477
|
+
export * from './virtual.js';
|
package/manifest.json
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"manifest_version": 3,
|
|
3
|
+
"name": "Saddle browser bridge",
|
|
4
|
+
"version": "2.0.150",
|
|
5
|
+
"description": "User initiated page snapshots through the Saddle browser contract.",
|
|
6
|
+
"minimum_chrome_version": "110",
|
|
7
|
+
"permissions": [
|
|
8
|
+
"activeTab",
|
|
9
|
+
"scripting",
|
|
10
|
+
"storage"
|
|
11
|
+
],
|
|
12
|
+
"icons": {
|
|
13
|
+
"32": "icon.svg",
|
|
14
|
+
"64": "icon.svg",
|
|
15
|
+
"128": "icon.svg"
|
|
16
|
+
},
|
|
17
|
+
"action": {
|
|
18
|
+
"default_title": "Saddle"
|
|
19
|
+
}
|
|
20
|
+
}
|
package/media.ts
CHANGED
|
File without changes
|
package/mttg.config
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"meta": {
|
|
3
3
|
"name": "mttg.config",
|
|
4
4
|
"title": "saddle - MTTG Multi-Tenant Task Groups (cgroups v2 + tenants + transcode) with MTTCG (QEMU TCG) section",
|
|
5
|
-
"version": "2.0.
|
|
5
|
+
"version": "2.0.127",
|
|
6
6
|
"date": "2026-08-22",
|
|
7
7
|
"language": "en",
|
|
8
8
|
"conceptSeparation": "MTTG = Multi-Tenant Task Groups (cgroup v2 cpu.weight/cpuset/memory/io/pids/hugetlb/rdma + tenants + transcode pipelines). MTTCG = QEMU Multi-Threaded TCG (one host thread per vCPU under TCG). Both live here as DISTINCT sections; MTTCG accel flags also in qemu.config#mttcg.",
|
package/orchestrator.ts
CHANGED
|
@@ -91,7 +91,10 @@ const runtimecatalog = {
|
|
|
91
91
|
|
|
92
92
|
/** toolchain stack reported by dumpstate and the version probe. */
|
|
93
93
|
const stackcatalog = {
|
|
94
|
-
|
|
94
|
+
/* walks with the .nvmrc pin the maintenance rung stamps — the 2.0.133
|
|
95
|
+
publish regression answered the engine advertising a node the repository
|
|
96
|
+
retired, so the anchor rides the pin lane now (never ahead of it) */
|
|
97
|
+
nodecurrent: '26.12.1',
|
|
95
98
|
nodelts: '24.19.0',
|
|
96
99
|
typescript: '7.0.2',
|
|
97
100
|
qemu: runtimecatalog.qemu,
|
|
@@ -4389,7 +4392,7 @@ class orchestrator {
|
|
|
4389
4392
|
/**
|
|
4390
4393
|
* default contents of the flat config files written by start(); the
|
|
4391
4394
|
* version strings carry the v2 anchors (qemu 11.1.0, docker 29.7.2,
|
|
4392
|
-
* node 26.
|
|
4395
|
+
* node 26.12.0), replacing the stale Meta banners.
|
|
4393
4396
|
*/
|
|
4394
4397
|
#defaultconfigcontents(): Record<configfilename, string> {
|
|
4395
4398
|
return {
|