@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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wenathlan/saddle",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.150",
|
|
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
|
"type": "module",
|
|
6
6
|
"private": false,
|
|
@@ -19,11 +19,23 @@
|
|
|
19
19
|
"xcode": {
|
|
20
20
|
"uuid": "11.1.1"
|
|
21
21
|
},
|
|
22
|
-
"uuid": "^11.1.1"
|
|
22
|
+
"uuid": "^11.1.1",
|
|
23
|
+
"@grpc/grpc-js": "1.14.5",
|
|
24
|
+
"deepmerge-ts": "^8.0.0",
|
|
25
|
+
"esbuild": "^0.28.2",
|
|
26
|
+
"follow-redirects": "^1.16.1",
|
|
27
|
+
"mysql2": "^3.24.6",
|
|
28
|
+
"postcss-selector-parser": "^7.1.6",
|
|
29
|
+
"source-map-js": "1.2.2",
|
|
30
|
+
"proxy-addr": "2.0.8",
|
|
31
|
+
"body-parser": "^2.4.0",
|
|
32
|
+
"fast-uri": "^3.1.9",
|
|
33
|
+
"zod": "^4.6.7",
|
|
34
|
+
"undici": "^7.30.1"
|
|
23
35
|
},
|
|
24
36
|
"repository": {
|
|
25
37
|
"type": "git",
|
|
26
|
-
"url": "https://github.com/wenathlan/
|
|
38
|
+
"url": "https://github.com/wenathlan/devthink"
|
|
27
39
|
},
|
|
28
40
|
"bugs": {
|
|
29
41
|
"url": "https://github.com/wenathlan/saddle/issues"
|
|
@@ -32,16 +44,40 @@
|
|
|
32
44
|
"keywords": [
|
|
33
45
|
"distributed computing",
|
|
34
46
|
"virtual memory",
|
|
47
|
+
"virtual machine",
|
|
48
|
+
"virtual cpu",
|
|
49
|
+
"virtual gpu",
|
|
35
50
|
"runner",
|
|
36
51
|
"storage",
|
|
37
|
-
"automation"
|
|
52
|
+
"automation",
|
|
53
|
+
"llvmpipe",
|
|
54
|
+
"lavapipe",
|
|
55
|
+
"rusticl",
|
|
56
|
+
"qemu",
|
|
57
|
+
"firecracker",
|
|
58
|
+
"mesa",
|
|
59
|
+
"ghcr"
|
|
38
60
|
],
|
|
39
61
|
"engines": {
|
|
40
|
-
"
|
|
41
|
-
"
|
|
62
|
+
"bare": "^1.18.0",
|
|
63
|
+
"bun": "^1.4.2",
|
|
64
|
+
"chrome": "^16.0.912",
|
|
65
|
+
"cnpm": "^9.4.0",
|
|
66
|
+
"corepack": "^0.35.0",
|
|
67
|
+
"deno": "^2.9.5",
|
|
68
|
+
"ecmascript": "^5.0.0",
|
|
69
|
+
"firefox": ">=0.8.0",
|
|
70
|
+
"iojs": "^1.0.0",
|
|
71
|
+
"node": ">=26.12.1 <27",
|
|
72
|
+
"npm": "^12.1.0",
|
|
73
|
+
"pnpm": "^12.6.0",
|
|
74
|
+
"teleport": ">=0.2.0",
|
|
75
|
+
"typescript": "^5.8.0",
|
|
76
|
+
"vscode": "^1.118.0",
|
|
77
|
+
"yarn": "^4.17.1"
|
|
42
78
|
},
|
|
43
79
|
"peerDependencies": {
|
|
44
|
-
"playwright": "^1.
|
|
80
|
+
"playwright": "^1.63.0"
|
|
45
81
|
},
|
|
46
82
|
"peerDependenciesMeta": {
|
|
47
83
|
"playwright": {
|
|
@@ -65,6 +101,7 @@
|
|
|
65
101
|
"./sessions": "./dist/foundation.js",
|
|
66
102
|
"./modes": "./dist/modes.js",
|
|
67
103
|
"./mode": "./dist/modes.js",
|
|
104
|
+
"./sandbox": "./dist/sandbox.js",
|
|
68
105
|
"./browser": "./dist/browser.js",
|
|
69
106
|
"./browser-playwright": "./dist/browser.js",
|
|
70
107
|
"./bot": "./dist/automation.js",
|
|
@@ -114,7 +151,7 @@
|
|
|
114
151
|
},
|
|
115
152
|
"files": [
|
|
116
153
|
"dist",
|
|
117
|
-
"
|
|
154
|
+
"manifest.json",
|
|
118
155
|
"docs",
|
|
119
156
|
"README.md",
|
|
120
157
|
"LICENSE",
|
|
@@ -155,7 +192,7 @@
|
|
|
155
192
|
"build:engine": "node tests/scripts/buildengine.mjs",
|
|
156
193
|
"check": "npm run build:engine && node --check dist/index.js && node --check dist/execution.js && node --check dist/cli.js && node --check dist/browser.js && node --check dist/distribution.js",
|
|
157
194
|
"formatcheck": "node --import tsx format.ts",
|
|
158
|
-
"test": "
|
|
195
|
+
"test": "vitest run",
|
|
159
196
|
"test:legacy": "vitest run tests/agent-utils.test.ts tests/cache.test.ts tests/chunking.test.ts tests/core.test.ts tests/errors.test.ts tests/llms-txt.test.ts tests/middleware.test.ts tests/proxy.test.ts tests/tokens.test.ts",
|
|
160
197
|
"run": "npm run build:engine && node dist/cli.js",
|
|
161
198
|
"extension:build": "npm run build:engine && node dist/browser.js",
|
|
@@ -166,18 +203,18 @@
|
|
|
166
203
|
"prepublishOnly": "npm run pack:check",
|
|
167
204
|
"tauri": "npx --yes @tauri-apps/cli@2.11.4",
|
|
168
205
|
"capacitor:sync:android": "npm run web:build:pages && cap sync android",
|
|
169
|
-
"capacitor:flatten:android": "node tests/scripts/flattenandroid.mjs",
|
|
170
206
|
"capacitor:sync:ios": "npm run web:build:pages && cap sync ios",
|
|
171
207
|
"native:check:flat": "node tests/scripts/validateflatnative.mjs",
|
|
172
|
-
"web:dev": "vite --
|
|
173
|
-
"web:check": "npm run build:engine && tsc --project
|
|
174
|
-
"web:build": "vite build
|
|
175
|
-
"web:build:pages": "vite build
|
|
208
|
+
"web:dev": "vite --host",
|
|
209
|
+
"web:check": "npm run build:engine && tsc --project tsconfig.json --noEmit",
|
|
210
|
+
"web:build": "vite build",
|
|
211
|
+
"web:build:pages": "vite build",
|
|
212
|
+
"web:preview": "vite preview --host",
|
|
176
213
|
"build": "npm run build:engine",
|
|
177
214
|
"build:tsc": "tsc -p tsconfig.json --noEmitOnError false",
|
|
178
215
|
"start": "node --import tsx ./cli.ts plan",
|
|
179
216
|
"dev": "node --import tsx --watch ./cli.ts",
|
|
180
|
-
"web": "node
|
|
217
|
+
"web": "node webserver.ts",
|
|
181
218
|
"qemu:bridge": "node ./orchestrator.ts --qemu-bridge",
|
|
182
219
|
"toolchain:verify": "node --version && npx tsc --version && python3 --version && qemu-system-x86_64 --version || true && docker --version",
|
|
183
220
|
"dev:tsx": "node --import tsx --watch ./cli.ts",
|
|
@@ -194,100 +231,114 @@
|
|
|
194
231
|
"test:unit": "node --test tests/*.test.ts",
|
|
195
232
|
"test:e2e": "node --test tests/*.test.ts",
|
|
196
233
|
"qemu:version": "qemu-system-x86_64 --version || echo 'qemu 11.1.0 expected 2026-08-22'",
|
|
197
|
-
"vm:create": "node ./
|
|
198
|
-
"vm:validate": "node ./
|
|
199
|
-
"gpu:list": "node ./
|
|
200
|
-
"docker:build": "docker build -f Dockerfile -t saddle:2.0.
|
|
201
|
-
"docker:run": "docker run --rm --memory-swap=-1 --shm-size=2g saddle:2.0.
|
|
202
|
-
"docker:health": "docker run --rm saddle:2.0.
|
|
234
|
+
"vm:create": "node --import tsx ./cli.ts vm",
|
|
235
|
+
"vm:validate": "node --import tsx ./cli.ts vmlint",
|
|
236
|
+
"gpu:list": "node --import tsx ./cli.ts gpus",
|
|
237
|
+
"docker:build": "docker build -f Dockerfile -t saddle:2.0.150 .",
|
|
238
|
+
"docker:run": "docker run --rm --memory-swap=-1 --shm-size=2g saddle:2.0.150",
|
|
239
|
+
"docker:health": "docker run --rm saddle:2.0.150 qemu-system-x86_64 --version && curl -fsS http://localhost:8080/health || true",
|
|
203
240
|
"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'",
|
|
204
241
|
"py:bridge": "python3 qemubridge.py",
|
|
205
242
|
"py:test": "python3 -m pytest -q || python3 qemubridge.py",
|
|
206
243
|
"clean": "rm -rf dist coverage .biome __pycache__",
|
|
207
|
-
"prepare": "echo 'saddle grand-merge toolchain 2026-08-23: Node 26.
|
|
244
|
+
"prepare": "echo 'saddle grand-merge toolchain 2026-08-23: Node 26.12.0 Current / 24.19.0 LTS, npm 12.0.2, TS 7.0.2, Python 3.14.7, Docker 29.7.2, QEMU 11.1.0, Mesa 26.2.1, LLVM 22.1.8, Firecracker 1.16.1'",
|
|
208
245
|
"start:engine": "node --import tsx ./cli.ts plan"
|
|
209
246
|
},
|
|
210
247
|
"devDependencies": {
|
|
211
|
-
"@biomejs/biome": "^2.
|
|
212
|
-
"@capacitor/android": "^8.5.
|
|
213
|
-
"@capacitor/cli": "^8.5.
|
|
214
|
-
"@capacitor/core": "^8.5.
|
|
215
|
-
"@capacitor/ios": "^8.5.
|
|
216
|
-
"@
|
|
217
|
-
"@
|
|
218
|
-
"@
|
|
219
|
-
"@
|
|
220
|
-
"@radix-ui/react-
|
|
221
|
-
"@radix-ui/react-
|
|
222
|
-
"@radix-ui/react-
|
|
223
|
-
"@radix-ui/react-
|
|
224
|
-
"@radix-ui/react-
|
|
225
|
-
"@radix-ui/react-
|
|
226
|
-
"@radix-ui/react-
|
|
227
|
-
"@radix-ui/react-
|
|
228
|
-
"@radix-ui/react-
|
|
229
|
-
"@radix-ui/react-
|
|
230
|
-
"@radix-ui/react-
|
|
231
|
-
"@radix-ui/react-
|
|
232
|
-
"@radix-ui/react-
|
|
233
|
-
"@radix-ui/react-
|
|
234
|
-
"@radix-ui/react-
|
|
235
|
-
"@radix-ui/react-
|
|
236
|
-
"@radix-ui/react-
|
|
237
|
-
"@radix-ui/react-
|
|
238
|
-
"@radix-ui/react-
|
|
239
|
-
"@radix-ui/react-
|
|
240
|
-
"@radix-ui/react-
|
|
241
|
-
"@radix-ui/react-
|
|
242
|
-
"@radix-ui/react-
|
|
243
|
-
"@
|
|
244
|
-
"@
|
|
245
|
-
"@
|
|
246
|
-
"@
|
|
247
|
-
"@
|
|
248
|
-
"@types/
|
|
249
|
-
"@
|
|
250
|
-
"
|
|
251
|
-
"
|
|
252
|
-
"
|
|
248
|
+
"@biomejs/biome": "^2.6.2",
|
|
249
|
+
"@capacitor/android": "^8.5.3",
|
|
250
|
+
"@capacitor/cli": "^8.5.3",
|
|
251
|
+
"@capacitor/core": "^8.5.3",
|
|
252
|
+
"@capacitor/ios": "^8.5.3",
|
|
253
|
+
"@fluentui/react-icons": "^2.0.344",
|
|
254
|
+
"@hookform/resolvers": "^5.9.2",
|
|
255
|
+
"@libsql/client": "^0.18.0",
|
|
256
|
+
"@prisma/client": "^7.10.1",
|
|
257
|
+
"@radix-ui/react-accordion": "^1.3.1",
|
|
258
|
+
"@radix-ui/react-alert-dialog": "^1.2.1",
|
|
259
|
+
"@radix-ui/react-aspect-ratio": "^1.2.0",
|
|
260
|
+
"@radix-ui/react-avatar": "^1.3.1",
|
|
261
|
+
"@radix-ui/react-checkbox": "^1.4.1",
|
|
262
|
+
"@radix-ui/react-collapsible": "^1.2.1",
|
|
263
|
+
"@radix-ui/react-context-menu": "^2.4.1",
|
|
264
|
+
"@radix-ui/react-dialog": "^1.3.1",
|
|
265
|
+
"@radix-ui/react-dropdown-menu": "^2.2.1",
|
|
266
|
+
"@radix-ui/react-hover-card": "^1.2.1",
|
|
267
|
+
"@radix-ui/react-label": "^2.1.17",
|
|
268
|
+
"@radix-ui/react-menubar": "^1.2.1",
|
|
269
|
+
"@radix-ui/react-navigation-menu": "^1.4.1",
|
|
270
|
+
"@radix-ui/react-popover": "^1.3.1",
|
|
271
|
+
"@radix-ui/react-progress": "^1.2.1",
|
|
272
|
+
"@radix-ui/react-radio-group": "^1.5.1",
|
|
273
|
+
"@radix-ui/react-scroll-area": "^1.4.0",
|
|
274
|
+
"@radix-ui/react-select": "^2.4.1",
|
|
275
|
+
"@radix-ui/react-separator": "^1.2.0",
|
|
276
|
+
"@radix-ui/react-slider": "^1.6.1",
|
|
277
|
+
"@radix-ui/react-slot": "^1.5.0",
|
|
278
|
+
"@radix-ui/react-switch": "^1.4.1",
|
|
279
|
+
"@radix-ui/react-tabs": "^1.2.1",
|
|
280
|
+
"@radix-ui/react-toggle": "^1.2.1",
|
|
281
|
+
"@radix-ui/react-toggle-group": "^1.2.1",
|
|
282
|
+
"@radix-ui/react-tooltip": "^1.4.1",
|
|
283
|
+
"@tailwindcss/typography": "^0.5.20",
|
|
284
|
+
"@tailwindcss/vite": "^4.3.3",
|
|
285
|
+
"@types/google.maps": "^3.66.7",
|
|
286
|
+
"@types/node": "^26.6.5",
|
|
287
|
+
"@types/react": "^19.3.0",
|
|
288
|
+
"@types/react-dom": "^19.3.0",
|
|
289
|
+
"@vitejs/plugin-react": "^6.1.2",
|
|
290
|
+
"add": "^2.0.9",
|
|
291
|
+
"autoprefixer": "^10.6.1",
|
|
292
|
+
"axios": "^1.20.0",
|
|
293
|
+
"better-sqlite3": "^13.0.3",
|
|
294
|
+
"cheerio": "^1.2.0",
|
|
253
295
|
"class-variance-authority": "^0.7.1",
|
|
254
296
|
"clsx": "^2.1.1",
|
|
255
297
|
"cmdk": "^1.1.1",
|
|
298
|
+
"drizzle-kit": "^0.31.11",
|
|
299
|
+
"drizzle-orm": "^0.45.4",
|
|
256
300
|
"embla-carousel-react": "^8.6.0",
|
|
257
|
-
"
|
|
258
|
-
"
|
|
259
|
-
"
|
|
301
|
+
"emittery": "^2.2.0",
|
|
302
|
+
"esbuild": "^0.28.2",
|
|
303
|
+
"framer-motion": "^13.5.1",
|
|
304
|
+
"hono": "^4.13.13",
|
|
305
|
+
"input-otp": "^1.5.0",
|
|
260
306
|
"jsdom": "26.1.0",
|
|
261
|
-
"lucide-react": "^
|
|
262
|
-
"
|
|
307
|
+
"lucide-react": "^1.61.0",
|
|
308
|
+
"mysql2": "^3.24.6",
|
|
309
|
+
"nanoid": "^6.0.2",
|
|
263
310
|
"next-themes": "^0.4.6",
|
|
264
|
-
"
|
|
265
|
-
"
|
|
266
|
-
"
|
|
267
|
-
"
|
|
268
|
-
"
|
|
269
|
-
"
|
|
270
|
-
"react
|
|
271
|
-
"
|
|
272
|
-
"
|
|
273
|
-
"
|
|
274
|
-
"
|
|
275
|
-
"
|
|
311
|
+
"p-limit": "^7.3.3",
|
|
312
|
+
"playwright": "^1.64.1",
|
|
313
|
+
"p-retry": "^8.0.1",
|
|
314
|
+
"postcss": "^8.5.31",
|
|
315
|
+
"prettier": "^3.9.10",
|
|
316
|
+
"prisma": "^7.10.1",
|
|
317
|
+
"react": "^19.3.1",
|
|
318
|
+
"react-day-picker": "^10.0.2",
|
|
319
|
+
"react-dom": "^19.3.1",
|
|
320
|
+
"react-hook-form": "^7.91.0",
|
|
321
|
+
"react-resizable-panels": "^4.14.8",
|
|
322
|
+
"recharts": "^3.10.1",
|
|
323
|
+
"sonner": "^2.0.8",
|
|
324
|
+
"streamdown": "^2.7.1",
|
|
325
|
+
"tailwind-merge": "^3.7.0",
|
|
326
|
+
"tailwindcss": "^4.3.3",
|
|
276
327
|
"tailwindcss-animate": "^1.0.7",
|
|
277
|
-
"tsx": "^4.
|
|
328
|
+
"tsx": "^4.23.15",
|
|
278
329
|
"tw-animate-css": "^1.4.0",
|
|
279
330
|
"typescript": "7.0.2",
|
|
280
331
|
"vaul": "^1.1.2",
|
|
281
|
-
"vite": "^8.
|
|
282
|
-
"vite-plugin-manus-runtime": "^0.0.
|
|
283
|
-
"vitest": "^
|
|
284
|
-
"wouter": "^3.
|
|
285
|
-
"zod": "^4.
|
|
332
|
+
"vite": "^8.3.5",
|
|
333
|
+
"vite-plugin-manus-runtime": "^0.0.59",
|
|
334
|
+
"vitest": "^5.0.5",
|
|
335
|
+
"wouter": "^3.13.0",
|
|
336
|
+
"zod": "^4.6.7"
|
|
286
337
|
},
|
|
287
338
|
"optionalDependencies": {
|
|
288
|
-
"commander": "^
|
|
339
|
+
"commander": "^15.0.0",
|
|
289
340
|
"dockerode": "^5.0.1",
|
|
290
|
-
"express": "^5.
|
|
341
|
+
"express": "^5.3.0"
|
|
291
342
|
},
|
|
292
343
|
"systemLibraries": {
|
|
293
344
|
"note": "system libraries, not npm packages (declared by nested_package.json v3 as dependencies; kept here as build-time system requirements only)",
|
|
@@ -301,9 +352,9 @@
|
|
|
301
352
|
"saddle": {
|
|
302
353
|
"date": "2026-08-23",
|
|
303
354
|
"toolchain": {
|
|
304
|
-
"node": "26.
|
|
355
|
+
"node": "26.12.0",
|
|
305
356
|
"nodeLts": "24.19.0",
|
|
306
|
-
"nodeCurrent": "26.
|
|
357
|
+
"nodeCurrent": "26.12.0",
|
|
307
358
|
"npm": "12.0.2",
|
|
308
359
|
"typescript": "7.0.2",
|
|
309
360
|
"python": "3.14.7",
|
package/passage.config
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"meta": {
|
|
3
3
|
"name": "passage.config",
|
|
4
4
|
"title": "saddle - Passage Configuration (3 homonym domains kept separate + host playbook)",
|
|
5
|
-
"version": "2.
|
|
5
|
+
"version": "2.1.6",
|
|
6
6
|
"date": "2026-08-22",
|
|
7
7
|
"language": "en",
|
|
8
8
|
"conceptSeparation": "'passage' has 3 distinct domains in the pool: (1) gateway - L7 Pingora reverse proxy (routes/upstreams/TLS 1.3); (2) passthrough - PCI device passthrough modes (VFIO/MDEV/MIG/vGPU/SR-IOV/vfio-user/hotplug/KVM/none); (3) network_binding - VM network bridge modes + host port binding (never localhost). A 4th section carries the AetherForge host-side VFIO playbook. Sections are NEVER merged.",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"gateway": {
|
|
57
57
|
"meta": {
|
|
58
58
|
"project": "saddle (grand merge)",
|
|
59
|
-
"version": "2.
|
|
59
|
+
"version": "2.1.6",
|
|
60
60
|
"schema": "passage.config",
|
|
61
61
|
"schemaversion": "2026.08.22",
|
|
62
62
|
"engine": "passage gateway v6",
|
package/performance.ts
CHANGED
|
File without changes
|
package/processors.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"meta": {
|
|
4
4
|
"name": "processors.json",
|
|
5
5
|
"title": "saddle - Unified Virtual Processor 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 canonical CPU database (6 x86_64 identities), the e2ugh processor catalog (55 SKUs incl. ARM/Apple/Xeon; lineage kept), Zen5/X3D microarchitecture specs and pool minis. Field conflicts resolved V5-first (model_name/max_boost_ghz/tdp_watts canonical); OMNI complementary fields (arch, core_type, topology, memory_support, release_date) merged in place. Versions re-pinned date-first 2026-08-22.",
|
package/qemu.config
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"meta": {
|
|
3
3
|
"name": "qemu.config",
|
|
4
4
|
"title": "saddle - QEMU Configuration (canonical JSON; sources: S6 TOML + v5 spec 11.1.0 + libvirt overlay)",
|
|
5
|
-
"version": "2.0.
|
|
5
|
+
"version": "2.0.127",
|
|
6
6
|
"date": "2026-08-22",
|
|
7
7
|
"language": "en",
|
|
8
8
|
"format": "JSON (canonical v2 schema; sources were S6 TOML + V5 JSON schema + libvirt conf overlay)",
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
"githubSetupPython": "actions/setup-python@v5.4.0",
|
|
91
91
|
"platformKernel": "6.11.0+"
|
|
92
92
|
},
|
|
93
|
-
"version": "2.0.
|
|
93
|
+
"version": "2.0.127",
|
|
94
94
|
"title": "saddle - QEMU Configuration (canonical JSON; sources: S6 TOML + v5 spec 11.1.0 + libvirt overlay)",
|
|
95
95
|
"project": "e2ugh v6",
|
|
96
96
|
"toolchainV5": {
|
package/qemubridge.py
CHANGED
|
File without changes
|
package/quantum.ts
CHANGED
|
File without changes
|
package/render.ts
CHANGED
|
File without changes
|
package/scheduler.ts
CHANGED
|
File without changes
|
package/security.ts
CHANGED
|
File without changes
|
package/tiers.ts
CHANGED
|
@@ -337,6 +337,10 @@ export class sqlitekv implements Disposable {
|
|
|
337
337
|
/** Absolute path of the database file. */
|
|
338
338
|
readonly path: string;
|
|
339
339
|
|
|
340
|
+
/** the shared sqlite now cast (one literal, every statement reuses it) */
|
|
341
|
+
// biome-ignore lint/security/noSecrets: a sqlite strftime cast literal, not a credential
|
|
342
|
+
#nowsql = "CAST(strftime('%s','now') AS INTEGER)";
|
|
343
|
+
|
|
340
344
|
#db: DatabaseSync;
|
|
341
345
|
#closed = false;
|
|
342
346
|
#getstmt: StatementSync | null = null;
|
|
@@ -373,8 +377,7 @@ export class sqlitekv implements Disposable {
|
|
|
373
377
|
throw new tierserror(`invalid kvstore key length ${key?.length ?? 0}`);
|
|
374
378
|
}
|
|
375
379
|
this.#getstmt ??= this.#db.prepare(
|
|
376
|
-
|
|
377
|
-
'WHERE key = ? RETURNING value',
|
|
380
|
+
`UPDATE kvstore SET accessedat = ${this.#nowsql} WHERE key = ? RETURNING value`,
|
|
378
381
|
);
|
|
379
382
|
const row = this.#getstmt.get(key) as { value: Uint8Array } | undefined;
|
|
380
383
|
return row === undefined ? null : Buffer.from(row.value);
|
|
@@ -393,7 +396,10 @@ export class sqlitekv implements Disposable {
|
|
|
393
396
|
}
|
|
394
397
|
this.#setstmt ??= this.#db.prepare(
|
|
395
398
|
'INSERT INTO kvstore (key, value, createdat, accessedat) VALUES (?, ?, ' +
|
|
396
|
-
|
|
399
|
+
this.#nowsql +
|
|
400
|
+
', ' +
|
|
401
|
+
this.#nowsql +
|
|
402
|
+
') ' +
|
|
397
403
|
'ON CONFLICT(key) DO UPDATE SET value = excluded.value, accessedat = excluded.accessedat',
|
|
398
404
|
);
|
|
399
405
|
this.#setstmt.run(key, value);
|
package/tsconfig.json
CHANGED
|
@@ -1,29 +1,34 @@
|
|
|
1
|
+
// the saddle typescript baseline (the engine emission contract over the
|
|
2
|
+
// app root and the Sol theme: one project covers both).
|
|
3
|
+
// the grand-merge engine sources carry the loose typing baseline the
|
|
4
|
+
// upstream saddle authored them under (strict: false with noCheck: true),
|
|
5
|
+
// and the build engine emits the dist tree through this project — the
|
|
6
|
+
// upstream options answer verbatim (outDir dist, NodeNext, declaration),
|
|
7
|
+
// with the theme options (jsx, the vite client types) riding beside them
|
|
8
|
+
// so the one project keeps covering the Sol surface.
|
|
1
9
|
{
|
|
2
10
|
"compilerOptions": {
|
|
3
|
-
"target": "ES2024",
|
|
4
11
|
"module": "NodeNext",
|
|
5
12
|
"moduleResolution": "NodeNext",
|
|
6
|
-
"
|
|
13
|
+
"target": "ES2024",
|
|
14
|
+
"lib": ["ES2024", "dom", "dom.iterable"],
|
|
15
|
+
"jsx": "react-jsx",
|
|
7
16
|
"outDir": "dist",
|
|
17
|
+
"rootDir": ".",
|
|
8
18
|
"declaration": true,
|
|
9
|
-
"declarationMap": true,
|
|
10
|
-
"sourceMap": true,
|
|
11
19
|
"strict": false,
|
|
12
20
|
"noCheck": true,
|
|
13
|
-
"
|
|
21
|
+
"esModuleInterop": true,
|
|
22
|
+
"skipLibCheck": true,
|
|
14
23
|
"isolatedModules": true,
|
|
15
|
-
"verbatimModuleSyntax": false,
|
|
16
24
|
"allowSyntheticDefaultImports": true,
|
|
17
25
|
"forceConsistentCasingInFileNames": true,
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
|
|
26
|
+
"types": ["node", "vite/client"],
|
|
27
|
+
"paths": {
|
|
28
|
+
"@/*": ["./Sol/*", "./*"],
|
|
29
|
+
"@saddle/isolation": ["./isolation.ts"]
|
|
30
|
+
}
|
|
21
31
|
},
|
|
22
|
-
"include": [
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
"examples/**/*.ts",
|
|
26
|
-
"jsdom.d.ts"
|
|
27
|
-
],
|
|
28
|
-
"exclude": ["node_modules", "dist", "coverage", "docs", "web", "tests", "android", "ios", "desktop"]
|
|
29
|
-
}
|
|
32
|
+
"include": ["*.ts", "*.tsx", "Sol/**/*.ts", "Sol/**/*.tsx", "docs/example-*.ts", "jsdom.d.ts"],
|
|
33
|
+
"exclude": ["node_modules", "dist", "**/*.test.ts", "coverage", "web", "tests", "build"]
|
|
34
|
+
}
|
package/virtualcpu.ts
CHANGED
package/virtualgpu.ts
CHANGED
|
@@ -462,6 +462,7 @@ export function nvidiaVgpuProfiles(): {
|
|
|
462
462
|
return { profileSize, fbReservation, fb: profileSize - fbReservation };
|
|
463
463
|
};
|
|
464
464
|
return {
|
|
465
|
+
// biome-ignore lint/security/noSecrets: a memory layout formula string, not a credential
|
|
465
466
|
formula: 'profileSize=X*0x40000000, fbReservation=0x8000000+(profileSize-0x40000000)/0x10',
|
|
466
467
|
min: '384 MiB',
|
|
467
468
|
example: calc(2),
|
package/virtualhardware.c
CHANGED
|
File without changes
|
package/virtualhardware.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"meta": {
|
|
4
4
|
"name": "e2ugh",
|
|
5
5
|
"title": "e2ugh v6 - Master Schema, Cross-References and Compatibility Matrix",
|
|
6
|
-
"version": "2.0.
|
|
6
|
+
"version": "2.0.127",
|
|
7
7
|
"date": "2026-08-22",
|
|
8
8
|
"language": "en",
|
|
9
9
|
"description": "Master schema of the e2ugh v6 virtual hardware engine: binds the 10 specification files (cpu, cores, boards, gpu, vm.config, passage, docker, qemu, mttcg, mesa), defines the modularity ranges (vCPU 1-192, RAM 1-1024 GB, vRAM 8-96 GB via MIG), defaults, validation rules and the pinned 2026-08-22 compatibility matrix.",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"llvm": "19.1.7",
|
|
42
42
|
"dockerode": "4.0.8",
|
|
43
43
|
"express": "5.1.0",
|
|
44
|
-
"commander": "
|
|
44
|
+
"commander": "15.0.0",
|
|
45
45
|
"zod": "4.0.5",
|
|
46
46
|
"ws": "8.18.1"
|
|
47
47
|
},
|
package/virtualization.ts
CHANGED
|
File without changes
|
package/virtualizationcore.cpp
CHANGED
|
File without changes
|
package/virtualmemory.ts
CHANGED
|
File without changes
|
package/vm.config.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"meta": {
|
|
4
4
|
"name": "vm.config.json",
|
|
5
5
|
"title": "e2ugh v6 - VM Profiles and Orchestrator Configuration (canonical schema)",
|
|
6
|
-
"version": "2.
|
|
6
|
+
"version": "2.1.6",
|
|
7
7
|
"date": "2026-08-22",
|
|
8
8
|
"language": "en",
|
|
9
9
|
"description": "22 VM profiles consumed by the VHE orchestrator. Each profile binds a CPU identity (cpu.json), core count (cores.json), board (boards.json), GPU profile (gpu.json) and runtime (qemu.json, docker.json, mesa.json). Accel policy: KVM preferred when /dev/kvm exists, TCG multi-thread fallback on GitHub-hosted runners (see passage.json).",
|
|
@@ -1218,7 +1218,7 @@
|
|
|
1218
1218
|
"kernelLts": "6.18.45",
|
|
1219
1219
|
"libvirtVersion": "12.5.0",
|
|
1220
1220
|
"nodeLts": "24.19.0",
|
|
1221
|
-
"nodeCurrent": "26.
|
|
1221
|
+
"nodeCurrent": "26.12.0",
|
|
1222
1222
|
"typescript": "7.0.2",
|
|
1223
1223
|
"runnerVersion": "2.336.0",
|
|
1224
1224
|
"checkoutAction": "v6",
|
|
@@ -1613,7 +1613,7 @@
|
|
|
1613
1613
|
},
|
|
1614
1614
|
"toolchain": {
|
|
1615
1615
|
"nodeLts": "24.19.0",
|
|
1616
|
-
"nodeCurrent": "26.
|
|
1616
|
+
"nodeCurrent": "26.12.0",
|
|
1617
1617
|
"typescript": "7.0.2",
|
|
1618
1618
|
"checkout": "v6",
|
|
1619
1619
|
"setupNode": "v6",
|