@wenathlan/saddle 2.0.151 → 2.0.152

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.
Files changed (293) hide show
  1. package/README.md +3 -3
  2. package/biome.jsonc +12 -5
  3. package/dist/App.d.ts +3 -0
  4. package/dist/App.js +50 -0
  5. package/dist/Sol/Sol.d.ts +3 -0
  6. package/dist/Sol/Sol.js +46 -0
  7. package/dist/Sol/agentbrowser/agentbrowser.d.ts +9 -0
  8. package/dist/Sol/agentbrowser/agentbrowser.js +121 -0
  9. package/dist/Sol/architecture/architecture.d.ts +9 -0
  10. package/dist/Sol/architecture/architecture.js +93 -0
  11. package/dist/Sol/compute/compute.d.ts +9 -0
  12. package/dist/Sol/compute/compute.js +22 -0
  13. package/dist/Sol/console/console.d.ts +15 -0
  14. package/dist/Sol/console/console.js +292 -0
  15. package/dist/Sol/dashboard/dashboard.d.ts +10 -0
  16. package/dist/Sol/dashboard/dashboard.js +181 -0
  17. package/dist/Sol/docs/docs.d.ts +9 -0
  18. package/dist/Sol/docs/docs.js +28 -0
  19. package/dist/Sol/home/home.d.ts +35 -0
  20. package/dist/Sol/home/home.js +239 -0
  21. package/dist/Sol/integrations/integrations.d.ts +9 -0
  22. package/dist/Sol/integrations/integrations.js +83 -0
  23. package/dist/Sol/intro/intro.d.ts +7 -0
  24. package/dist/Sol/intro/intro.js +102 -0
  25. package/dist/Sol/login/login.d.ts +16 -0
  26. package/dist/Sol/login/login.js +49 -0
  27. package/dist/Sol/notfound/notfound.d.ts +9 -0
  28. package/dist/Sol/notfound/notfound.js +15 -0
  29. package/dist/Sol/onboarding/onboarding.d.ts +25 -0
  30. package/dist/Sol/onboarding/onboarding.js +60 -0
  31. package/dist/Sol/playground/playground.d.ts +9 -0
  32. package/dist/Sol/playground/playground.js +127 -0
  33. package/dist/Sol/register/register.d.ts +16 -0
  34. package/dist/Sol/register/register.js +193 -0
  35. package/dist/Sol/shell/Shell.d.ts +124 -0
  36. package/dist/Sol/shell/Shell.js +335 -0
  37. package/dist/Sol/wingets/ComputeBootladder.d.ts +6 -0
  38. package/dist/Sol/wingets/ComputeBootladder.js +71 -0
  39. package/dist/Sol/wingets/ComputeModalitycatalog.d.ts +7 -0
  40. package/dist/Sol/wingets/ComputeModalitycatalog.js +71 -0
  41. package/dist/Sol/wingets/ConsoleApibadge.d.ts +7 -0
  42. package/dist/Sol/wingets/ConsoleApibadge.js +5 -0
  43. package/dist/Sol/wingets/ConsoleEdgelaw.d.ts +6 -0
  44. package/dist/Sol/wingets/ConsoleEdgelaw.js +36 -0
  45. package/dist/Sol/wingets/ConsoleEventstimeline.d.ts +19 -0
  46. package/dist/Sol/wingets/ConsoleEventstimeline.js +12 -0
  47. package/dist/Sol/wingets/ConsoleSnapshotcontrols.d.ts +8 -0
  48. package/dist/Sol/wingets/ConsoleSnapshotcontrols.js +8 -0
  49. package/dist/Sol/wingets/ConsoleSpecpanel.d.ts +21 -0
  50. package/dist/Sol/wingets/ConsoleSpecpanel.js +75 -0
  51. package/dist/Sol/wingets/ConsoleTerminal.d.ts +22 -0
  52. package/dist/Sol/wingets/ConsoleTerminal.js +77 -0
  53. package/dist/Sol/wingets/DashboardAccountpanel.d.ts +18 -0
  54. package/dist/Sol/wingets/DashboardAccountpanel.js +65 -0
  55. package/dist/Sol/wingets/DashboardAdminpanel.d.ts +6 -0
  56. package/dist/Sol/wingets/DashboardAdminpanel.js +90 -0
  57. package/dist/Sol/wingets/DashboardAuditlog.d.ts +8 -0
  58. package/dist/Sol/wingets/DashboardAuditlog.js +50 -0
  59. package/dist/Sol/wingets/DashboardCreatesandboxform.d.ts +10 -0
  60. package/dist/Sol/wingets/DashboardCreatesandboxform.js +71 -0
  61. package/dist/Sol/wingets/DashboardEventstimeline.d.ts +8 -0
  62. package/dist/Sol/wingets/DashboardEventstimeline.js +83 -0
  63. package/dist/Sol/wingets/DashboardGlobalsandboxestable.d.ts +8 -0
  64. package/dist/Sol/wingets/DashboardGlobalsandboxestable.js +57 -0
  65. package/dist/Sol/wingets/DashboardMeshnodestable.d.ts +8 -0
  66. package/dist/Sol/wingets/DashboardMeshnodestable.js +103 -0
  67. package/dist/Sol/wingets/DashboardSandboxlist.d.ts +10 -0
  68. package/dist/Sol/wingets/DashboardSandboxlist.js +163 -0
  69. package/dist/Sol/wingets/DashboardUserstable.d.ts +8 -0
  70. package/dist/Sol/wingets/DashboardUserstable.js +78 -0
  71. package/dist/Sol/wingets/HomeEntrygate.d.ts +23 -0
  72. package/dist/Sol/wingets/HomeEntrygate.js +73 -0
  73. package/dist/Sol/wingets/HomeMetricstrip.d.ts +9 -0
  74. package/dist/Sol/wingets/HomeMetricstrip.js +4 -0
  75. package/dist/Sol/wingets/HomeRuntimediagram.d.ts +1 -0
  76. package/dist/Sol/wingets/HomeRuntimediagram.js +22 -0
  77. package/dist/Sol/wingets/LoginForm.d.ts +19 -0
  78. package/dist/Sol/wingets/LoginForm.js +141 -0
  79. package/dist/Sol/wingets/RegisterPasswordconfirm.d.ts +13 -0
  80. package/dist/Sol/wingets/RegisterPasswordconfirm.js +16 -0
  81. package/dist/Sol/wingets/RegisterPasswordmeter.d.ts +19 -0
  82. package/dist/Sol/wingets/RegisterPasswordmeter.js +65 -0
  83. package/dist/Sol/wingets/RegisterUsernamerules.d.ts +11 -0
  84. package/dist/Sol/wingets/RegisterUsernamerules.js +16 -0
  85. package/dist/Sol/wingets/index.d.ts +39 -0
  86. package/dist/Sol/wingets/index.js +39 -0
  87. package/dist/alternatives.d.ts +508 -0
  88. package/dist/alternatives.js +950 -0
  89. package/dist/api.d.ts +154 -0
  90. package/dist/api.js +174 -0
  91. package/dist/auth.d.ts +268 -0
  92. package/dist/auth.js +476 -0
  93. package/dist/automation.d.ts +425 -0
  94. package/dist/automation.js +566 -0
  95. package/dist/browser.d.ts +561 -0
  96. package/dist/browser.js +1058 -0
  97. package/dist/capacitor.config.d.ts +45 -0
  98. package/dist/capacitor.config.js +48 -0
  99. package/dist/catalog.d.ts +43 -0
  100. package/dist/catalog.js +44 -0
  101. package/dist/cli.d.ts +16 -0
  102. package/dist/cli.js +168 -0
  103. package/dist/communication.d.ts +181 -0
  104. package/dist/communication.js +376 -0
  105. package/dist/compute.d.ts +1160 -0
  106. package/dist/compute.js +2272 -0
  107. package/dist/dashboardlib.d.ts +58 -0
  108. package/dist/dashboardlib.js +161 -0
  109. package/dist/db.d.ts +569 -0
  110. package/dist/db.js +1080 -0
  111. package/dist/distribution.d.ts +528 -0
  112. package/dist/distribution.js +810 -0
  113. package/dist/drizzle.config.d.ts +20 -0
  114. package/dist/drizzle.config.js +18 -0
  115. package/dist/edgelandes.d.ts +70 -0
  116. package/dist/edgelandes.host.d.ts +26 -0
  117. package/dist/edgelandes.host.js +1089 -0
  118. package/dist/edgelandes.inproc.d.ts +27 -0
  119. package/dist/edgelandes.inproc.js +952 -0
  120. package/dist/edgelandes.js +1133 -0
  121. package/dist/edgelandes.ninety.d.ts +31 -0
  122. package/dist/edgelandes.ninety.js +174 -0
  123. package/dist/edgelandes.virtual.d.ts +25 -0
  124. package/dist/edgelandes.virtual.js +629 -0
  125. package/dist/edgeplane.d.ts +114 -0
  126. package/dist/edgeplane.js +305 -0
  127. package/dist/examplelocaljob.d.ts +1 -0
  128. package/{docs/example-localjob.ts → dist/examplelocaljob.js} +0 -1
  129. package/dist/execution.d.ts +529 -0
  130. package/dist/execution.js +760 -0
  131. package/dist/family.d.ts +16 -0
  132. package/dist/family.js +42 -0
  133. package/dist/familyurl.d.ts +21 -0
  134. package/dist/familyurl.js +24 -0
  135. package/dist/format.d.ts +18 -0
  136. package/dist/format.js +59 -0
  137. package/dist/foundation.d.ts +172 -0
  138. package/dist/foundation.js +312 -0
  139. package/dist/index.d.ts +735 -0
  140. package/dist/index.js +1020 -0
  141. package/dist/integration.d.ts +235 -0
  142. package/dist/integration.js +228 -0
  143. package/dist/intelligence.d.ts +93 -0
  144. package/dist/intelligence.js +144 -0
  145. package/dist/isolation.d.ts +128 -0
  146. package/dist/isolation.js +95 -0
  147. package/dist/labels.d.ts +665 -0
  148. package/dist/labels.js +751 -0
  149. package/dist/localauth.d.ts +127 -0
  150. package/dist/localauth.js +413 -0
  151. package/dist/media.d.ts +343 -0
  152. package/dist/media.js +985 -0
  153. package/dist/mesh.d.ts +177 -0
  154. package/dist/mesh.js +468 -0
  155. package/dist/modalityregistry.d.ts +109 -0
  156. package/dist/modalityregistry.js +1386 -0
  157. package/dist/modes.d.ts +358 -0
  158. package/dist/modes.js +133 -0
  159. package/dist/onboardingstate.d.ts +79 -0
  160. package/dist/onboardingstate.js +282 -0
  161. package/dist/orchestrator.d.ts +1338 -0
  162. package/dist/orchestrator.js +4310 -0
  163. package/dist/packager/targetcli.js +4 -0
  164. package/dist/paths.d.ts +2 -0
  165. package/dist/paths.js +14 -0
  166. package/dist/performance.d.ts +415 -0
  167. package/dist/performance.js +826 -0
  168. package/dist/quantum.d.ts +809 -0
  169. package/dist/quantum.js +2072 -0
  170. package/dist/render.d.ts +380 -0
  171. package/dist/render.js +1072 -0
  172. package/dist/runall.d.ts +2 -0
  173. package/dist/runall.js +39 -0
  174. package/dist/runtimeprobe.d.ts +4 -0
  175. package/dist/runtimeprobe.js +8 -0
  176. package/dist/sandbox.d.ts +355 -0
  177. package/dist/sandbox.js +1721 -0
  178. package/dist/sandboxenvprofile.d.ts +29 -0
  179. package/dist/sandboxenvprofile.js +89 -0
  180. package/dist/sandboxprofile.d.ts +137 -0
  181. package/dist/sandboxprofile.js +241 -0
  182. package/dist/sandboxqueue.d.ts +108 -0
  183. package/dist/sandboxqueue.js +201 -0
  184. package/dist/sandboxquota.d.ts +121 -0
  185. package/dist/sandboxquota.js +236 -0
  186. package/dist/scheduler.d.ts +595 -0
  187. package/dist/scheduler.js +1258 -0
  188. package/dist/scriptlanes.d.ts +182 -0
  189. package/dist/scriptlanes.js +660 -0
  190. package/dist/scripts.buildengine.d.ts +1 -0
  191. package/dist/scripts.buildengine.js +39 -0
  192. package/dist/scripts.securitygate.d.ts +1 -0
  193. package/dist/scripts.securitygate.js +68 -0
  194. package/dist/scripts.validateflatnative.d.ts +1 -0
  195. package/dist/scripts.validateflatnative.js +72 -0
  196. package/dist/security.d.ts +500 -0
  197. package/dist/security.js +1169 -0
  198. package/dist/seedcatalog.d.ts +13 -0
  199. package/dist/seedcatalog.js +46 -0
  200. package/dist/server.d.ts +20 -0
  201. package/dist/server.js +53 -0
  202. package/dist/speccatalog.d.ts +31 -0
  203. package/dist/speccatalog.js +163 -0
  204. package/dist/tiers.d.ts +1001 -0
  205. package/dist/tiers.js +2169 -0
  206. package/dist/utils.d.ts +2 -0
  207. package/dist/utils.js +5 -0
  208. package/dist/vaulthandoff.d.ts +141 -0
  209. package/dist/vaulthandoff.js +444 -0
  210. package/dist/virtual.d.ts +640 -0
  211. package/dist/virtual.js +1284 -0
  212. package/dist/virtualcpu.d.ts +315 -0
  213. package/dist/virtualcpu.js +1180 -0
  214. package/dist/virtualgpu.d.ts +344 -0
  215. package/dist/virtualgpu.js +1000 -0
  216. package/dist/virtualization.d.ts +606 -0
  217. package/dist/virtualization.js +1186 -0
  218. package/dist/virtualmemory.d.ts +817 -0
  219. package/dist/virtualmemory.js +1795 -0
  220. package/dist/vite.config.d.ts +3 -0
  221. package/dist/vite.config.js +43 -0
  222. package/dist/vitest.config.d.ts +2 -0
  223. package/dist/vitest.config.js +25 -0
  224. package/dist/webserver.d.ts +166 -0
  225. package/dist/webserver.js +2226 -0
  226. package/dist/workloadlaw.d.ts +133 -0
  227. package/dist/workloadlaw.js +193 -0
  228. package/docs/artifactavailability.md +2 -2
  229. package/docs/{containerplatforms-2.1.0.md → containerplatforms.2.1.0.md} +1 -1
  230. package/docs/{documentmap-1.8.12.md → documentmap.1.8.12.md} +1 -1
  231. package/docs/ninety.modalities.md +108 -0
  232. package/docs/planning.ninety.md +391 -0
  233. package/docs/{releasenotes-1.8.13.md → releasenotes.1.8.13.md} +2 -2
  234. package/docs/{releasenotes-1.8.14.md → releasenotes.1.8.14.md} +1 -1
  235. package/docs/{repo-synthesis-1.8.16.md → repo.synthesis.1.8.16.md} +1 -1
  236. package/docs/{todo-1.8.15.md → todo.1.8.15.md} +1 -1
  237. package/docs/{todo-1.8.16.md → todo.1.8.16.md} +5 -5
  238. package/docs/todo.md +2 -2
  239. package/docs/workloadlaw.md +104 -0
  240. package/index.ts +1 -1
  241. package/manifest.json +1 -1
  242. package/modalityregistry.ts +1371 -34
  243. package/orchestrator.ts +1 -1
  244. package/package.json +73 -33
  245. package/docs/CONVERSA.txt +0 -1523
  246. package/docs/architecture-1.8.19.png +0 -0
  247. package/docs/assets/architecture.svg +0 -45
  248. package/docs/assets/saddle-browser-trace.webp +0 -0
  249. package/docs/assets/saddle-hero-bridge.webp +0 -0
  250. package/docs/assets/saddle-mark.webp +0 -0
  251. package/docs/assets/saddle-runtime-map.webp +0 -0
  252. package/docs/assets/saddlemark.svg +0 -13
  253. package/docs/saddle.archive.1.8.17.tar.gz.gpg +0 -0
  254. /package/docs/{architecture-1.8.19.md → architecture.1.8.19.md} +0 -0
  255. /package/docs/{architecture-1.8.19.mmd → architecture.1.8.19.mmd} +0 -0
  256. /package/docs/{artifactresearch-1.8.9.md → artifactresearch.1.8.9.md} +0 -0
  257. /package/docs/{batches-1816-1820.md → batches.1816.to.1820.md} +0 -0
  258. /package/docs/{brancharchive-2026-08-18.md → brancharchive.2026.08.18.md} +0 -0
  259. /package/docs/{containerplatforms-1.8.17.md → containerplatforms.1.8.17.md} +0 -0
  260. /package/docs/{e2ugh-engine.md → e2ugh.engine.md} +0 -0
  261. /package/docs/{flatbuildresearch-1.8.11.md → flatbuildresearch.1.8.11.md} +0 -0
  262. /package/docs/{licenseaudit-1.8.12.md → licenseaudit.1.8.12.md} +0 -0
  263. /package/docs/{mobileconversionresearch-1.8.10.md → mobileconversionresearch.1.8.10.md} +0 -0
  264. /package/docs/{native-wrappers.md → native.wrappers.md} +0 -0
  265. /package/docs/{nativeidentityresearch-1.8.11.md → nativeidentityresearch.1.8.11.md} +0 -0
  266. /package/docs/{releasenotes-1.8.12.md → releasenotes.1.8.12.md} +0 -0
  267. /package/docs/{releasenotes-1.8.15.md → releasenotes.1.8.15.md} +0 -0
  268. /package/docs/{releasenotes-1.8.16.md → releasenotes.1.8.16.md} +0 -0
  269. /package/docs/{releasenotes-1.8.17.md → releasenotes.1.8.17.md} +0 -0
  270. /package/docs/{releasenotes-1.8.18.md → releasenotes.1.8.18.md} +0 -0
  271. /package/docs/{releasenotes-1.8.19.md → releasenotes.1.8.19.md} +0 -0
  272. /package/docs/{reorganization-1.8.8.md → reorganization.1.8.8.md} +0 -0
  273. /package/docs/{reorganization-1.8.9.md → reorganization.1.8.9.md} +0 -0
  274. /package/docs/{repo-analysis-1.8.21.json → repo.analysis.1.8.21.json} +0 -0
  275. /package/docs/{repo-candidates-1.8.21.jsonl → repo.candidates.1.8.21.jsonl} +0 -0
  276. /package/docs/{repo-research-1.8.16.md → repo.research.1.8.16.md} +0 -0
  277. /package/docs/{repo-research-1.8.21.md → repo.research.1.8.21.md} +0 -0
  278. /package/docs/{repo-selected-1.8.21.json → repo.selected.1.8.21.json} +0 -0
  279. /package/docs/{repo-synthesis-1.8.21.md → repo.synthesis.1.8.21.md} +0 -0
  280. /package/docs/{research-1.8.18-isolation.md → research.1.8.18.isolation.md} +0 -0
  281. /package/docs/{research-1.8.19-virtual-browser.md → research.1.8.19.virtual.browser.md} +0 -0
  282. /package/docs/{scanningresearch-1.8.11.md → scanningresearch.1.8.11.md} +0 -0
  283. /package/docs/{securityaudit-1.8.7.md → securityaudit.1.8.7.md} +0 -0
  284. /package/docs/{securityreferences-1.8.11.md → securityreferences.1.8.11.md} +0 -0
  285. /package/docs/{securityresearch-1.8.11.md → securityresearch.1.8.11.md} +0 -0
  286. /package/docs/{signingresearch-1.8.12.md → signingresearch.1.8.12.md} +0 -0
  287. /package/docs/{tauri-glib-risk-1.8.11.md → tauri.glib.risk.1.8.11.md} +0 -0
  288. /package/docs/{todo-1.8.18.md → todo.1.8.18.md} +0 -0
  289. /package/docs/{todo-1.8.19.md → todo.1.8.19.md} +0 -0
  290. /package/docs/{toolchainresearch-1.8.9.md → toolchainresearch.1.8.9.md} +0 -0
  291. /package/docs/{web-duplicatecleanup.md → web.duplicatecleanup.md} +0 -0
  292. /package/docs/{web-ideas.md → web.ideas.md} +0 -0
  293. /package/docs/{workflowimprovements-2026-08-19.md → workflowimprovements.2026.08.19.md} +0 -0
package/orchestrator.ts CHANGED
@@ -94,7 +94,7 @@ const stackcatalog = {
94
94
  /* walks with the .nvmrc pin the maintenance rung stamps — the 2.0.133
95
95
  publish regression answered the engine advertising a node the repository
96
96
  retired, so the anchor rides the pin lane now (never ahead of it) */
97
- nodecurrent: '26.12.1',
97
+ nodecurrent: '26.13.0',
98
98
  nodelts: '24.19.0',
99
99
  typescript: '7.0.2',
100
100
  qemu: runtimecatalog.qemu,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wenathlan/saddle",
3
- "version": "2.0.151",
3
+ "version": "2.0.152",
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,
@@ -16,14 +16,12 @@
16
16
  "access": "public"
17
17
  },
18
18
  "overrides": {
19
- "xcode": {
20
- "uuid": "11.1.1"
21
- },
22
19
  "uuid": "^11.1.1",
23
- "@grpc/grpc-js": "1.14.5",
24
20
  "deepmerge-ts": "^8.0.0",
25
21
  "esbuild": "^0.28.2",
26
- "follow-redirects": "^1.16.1",
22
+ "follow-redirects": "^1.16.2",
23
+ "minimatch": "^11.0.3",
24
+ "glob": "^14.0.3",
27
25
  "mysql2": "^3.24.6",
28
26
  "postcss-selector-parser": "^7.1.6",
29
27
  "source-map-js": "1.2.2",
@@ -31,7 +29,13 @@
31
29
  "body-parser": "^2.4.0",
32
30
  "fast-uri": "^3.1.9",
33
31
  "zod": "^4.6.7",
34
- "undici": "^7.30.1"
32
+ "undici": "^7.30.1",
33
+ "katex": "^0.18.2",
34
+ "shell-quote": "^1.11.0",
35
+ "xcode": {
36
+ "uuid": "11.1.1"
37
+ },
38
+ "@grpc/grpc-js": "1.14.5"
35
39
  },
36
40
  "repository": {
37
41
  "type": "git",
@@ -68,7 +72,7 @@
68
72
  "ecmascript": "^5.0.0",
69
73
  "firefox": ">=0.8.0",
70
74
  "iojs": "^1.0.0",
71
- "node": ">=26.12.1 <27",
75
+ "node": ">=26.13.0 <27",
72
76
  "npm": "^12.1.0",
73
77
  "pnpm": "^12.6.0",
74
78
  "teleport": ">=0.2.0",
@@ -103,6 +107,7 @@
103
107
  "./mode": "./dist/modes.js",
104
108
  "./sandbox": "./dist/sandbox.js",
105
109
  "./modalities": "./dist/modalityregistry.js",
110
+ "./workloadlaw": "./dist/workloadlaw.js",
106
111
  "./browser": "./dist/browser.js",
107
112
  "./browser-playwright": "./dist/browser.js",
108
113
  "./bot": "./dist/automation.js",
@@ -189,7 +194,7 @@
189
194
  "quantum.ts"
190
195
  ],
191
196
  "scripts": {
192
- "build:engine": "node tests/scripts/buildengine.ts",
197
+ "build:engine": "node scripts.buildengine.ts",
193
198
  "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",
194
199
  "formatcheck": "node --import tsx format.ts",
195
200
  "test": "vitest run",
@@ -203,7 +208,7 @@
203
208
  "tauri": "npx --yes @tauri-apps/cli@2.11.4",
204
209
  "capacitor:sync:android": "npm run web:build:pages && cap sync android",
205
210
  "capacitor:sync:ios": "npm run web:build:pages && cap sync ios",
206
- "native:check:flat": "node tests/scripts/validateflatnative.ts",
211
+ "native:check:flat": "node scripts.validateflatnative.ts",
207
212
  "web:dev": "vite --host",
208
213
  "web:check": "npm run build:engine && tsc --project tsconfig.json --noEmit",
209
214
  "web:build": "vite build",
@@ -225,17 +230,17 @@
225
230
  "format": "biome format --write .",
226
231
  "format:biome": "biome format --write .",
227
232
  "format:check": "biome check .",
228
- "test:watch": "node --test --watch tests/*.test.ts",
229
- "test:coverage": "node --test --experimental-test-coverage tests/*.test.ts",
230
- "test:unit": "node --test tests/*.test.ts",
231
- "test:e2e": "node --test tests/*.test.ts",
233
+ "test:watch": "node --test --watch \"tests/*.test.ts\"",
234
+ "test:coverage": "node --test --experimental-test-coverage \"tests/*.test.ts\"",
235
+ "test:unit": "node --test \"tests/*.test.ts\"",
236
+ "test:e2e": "node --test \"tests/*.test.ts\"",
232
237
  "qemu:version": "qemu-system-x86_64 --version || echo 'qemu 11.1.0 expected 2026-08-22'",
233
238
  "vm:create": "node --import tsx ./cli.ts vm",
234
239
  "vm:validate": "node --import tsx ./cli.ts vmlint",
235
240
  "gpu:list": "node --import tsx ./cli.ts gpus",
236
- "docker:build": "docker build -f Dockerfile -t saddle:2.0.151 .",
237
- "docker:run": "docker run --rm --memory-swap=-1 --shm-size=2g saddle:2.0.151",
238
- "docker:health": "docker run --rm saddle:2.0.151 qemu-system-x86_64 --version && curl -fsS http://localhost:8080/health || true",
241
+ "docker:build": "docker build -f Dockerfile -t saddle:2.0.152 .",
242
+ "docker:run": "docker run --rm --memory-swap=-1 --shm-size=2g saddle:2.0.152",
243
+ "docker:health": "docker run --rm saddle:2.0.152 qemu-system-x86_64 --version && curl -fsS http://localhost:8080/health || true",
239
244
  "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'",
240
245
  "py:bridge": "python3 qemubridge.py",
241
246
  "py:test": "python3 -m pytest -q || python3 qemubridge.py",
@@ -243,15 +248,37 @@
243
248
  "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'",
244
249
  "start:engine": "node --import tsx ./cli.ts plan"
245
250
  },
251
+ "dependencies": {
252
+ "@fluentui/react-icons": "^2.0.345",
253
+ "@fontsource-variable/bricolage-grotesque": "^5.3.0",
254
+ "@fontsource-variable/jetbrains-mono": "^5.3.0",
255
+ "@fontsource-variable/outfit": "^5.3.0",
256
+ "@hono/node-server": "^2.1.5",
257
+ "@libsql/client": "^0.18.0",
258
+ "@prisma/adapter-libsql": "^7.10.1",
259
+ "@prisma/client": "^7.10.1",
260
+ "@wenathlan/saddle": "^2.1.6",
261
+ "@wenathlan/vault": "^2.0.151",
262
+ "hono": "^4.13.14",
263
+ "ink": "^7.1.1",
264
+ "lucide-react": "^1.66.0",
265
+ "motion": "^12.43.0",
266
+ "react": "^19.3.1",
267
+ "react-devtools-core": "^8.0.0",
268
+ "react-dom": "^19.3.1",
269
+ "wouter": "^3.13.0",
270
+ "z-ai-web-dev-sdk": "^0.0.18"
271
+ },
246
272
  "devDependencies": {
247
- "@biomejs/biome": "^2.6.2",
248
- "@capacitor/android": "^8.5.3",
249
- "@capacitor/cli": "^8.5.3",
250
- "@capacitor/core": "^8.5.3",
251
- "@capacitor/ios": "^8.5.3",
252
- "@fluentui/react-icons": "^2.0.344",
273
+ "@biomejs/biome": "^2.6.4",
274
+ "@capacitor/android": "^8.6.0",
275
+ "@capacitor/cli": "^8.6.0",
276
+ "@capacitor/core": "^8.6.0",
277
+ "@capacitor/ios": "^8.6.0",
278
+ "@fluentui/react-icons": "^2.0.345",
253
279
  "@hookform/resolvers": "^5.9.2",
254
280
  "@libsql/client": "^0.18.0",
281
+ "@opencode-ai/sdk": "^1.19.5",
255
282
  "@prisma/client": "^7.10.1",
256
283
  "@radix-ui/react-accordion": "^1.3.1",
257
284
  "@radix-ui/react-alert-dialog": "^1.2.1",
@@ -279,17 +306,23 @@
279
306
  "@radix-ui/react-toggle": "^1.2.1",
280
307
  "@radix-ui/react-toggle-group": "^1.2.1",
281
308
  "@radix-ui/react-tooltip": "^1.4.1",
309
+ "@tailwindcss/postcss": "^4.3.3",
282
310
  "@tailwindcss/typography": "^0.5.20",
283
311
  "@tailwindcss/vite": "^4.3.3",
284
- "@types/google.maps": "^3.66.7",
285
- "@types/node": "^26.6.5",
312
+ "@tsconfig/node26": "^26.0.1",
313
+ "@types/better-sqlite3": "^9.6.0",
314
+ "@types/chrome": "^0.3.7",
315
+ "@types/express": "^5.0.6",
316
+ "@types/google.maps": "^3.66.9",
317
+ "@types/node": "^26.6.6",
286
318
  "@types/react": "^19.3.0",
287
319
  "@types/react-dom": "^19.3.0",
288
320
  "@vitejs/plugin-react": "^6.1.2",
289
321
  "add": "^2.0.9",
290
- "autoprefixer": "^10.6.1",
291
- "axios": "^1.20.0",
322
+ "autoprefixer": "^10.6.2",
323
+ "axios": "^1.21.0",
292
324
  "better-sqlite3": "^13.0.3",
325
+ "bun-types": "^1.4.4",
293
326
  "cheerio": "^1.2.0",
294
327
  "class-variance-authority": "^0.7.1",
295
328
  "clsx": "^2.1.1",
@@ -299,39 +332,46 @@
299
332
  "embla-carousel-react": "^8.6.0",
300
333
  "emittery": "^2.2.0",
301
334
  "esbuild": "^0.28.2",
335
+ "express": "^5.3.0",
336
+ "fast-check": "^4.10.2",
302
337
  "framer-motion": "^13.5.1",
303
- "hono": "^4.13.13",
338
+ "hono": "^4.13.14",
304
339
  "input-otp": "^1.5.0",
305
340
  "jsdom": "26.1.0",
306
- "lucide-react": "^1.61.0",
341
+ "lucide-react": "^1.66.0",
307
342
  "mysql2": "^3.24.6",
308
343
  "nanoid": "^6.0.2",
309
344
  "next-themes": "^0.4.6",
310
345
  "p-limit": "^7.3.3",
311
- "playwright": "^1.64.1",
312
346
  "p-retry": "^8.0.1",
313
- "postcss": "^8.5.31",
347
+ "playwright": "^1.64.1",
348
+ "pnpm": "^12.16.1",
349
+ "postcss": "^8.5.32",
314
350
  "prettier": "^3.9.10",
315
351
  "prisma": "^7.10.1",
316
352
  "react": "^19.3.1",
317
353
  "react-day-picker": "^10.0.2",
318
354
  "react-dom": "^19.3.1",
319
355
  "react-hook-form": "^7.91.0",
320
- "react-resizable-panels": "^4.14.8",
356
+ "react-resizable-panels": "^4.15.3",
321
357
  "recharts": "^3.10.1",
322
358
  "sonner": "^2.0.8",
323
359
  "streamdown": "^2.7.1",
324
360
  "tailwind-merge": "^3.7.0",
325
361
  "tailwindcss": "^4.3.3",
326
362
  "tailwindcss-animate": "^1.0.7",
363
+ "tsup": "^8.5.1",
327
364
  "tsx": "^4.23.15",
328
365
  "tw-animate-css": "^1.4.0",
329
- "typescript": "7.0.2",
366
+ "typescript": "^7.0.2",
330
367
  "vaul": "^1.1.2",
331
368
  "vite": "^8.3.5",
332
369
  "vite-plugin-manus-runtime": "^0.0.59",
333
370
  "vitest": "^5.0.5",
371
+ "webpack": "5.112.2",
372
+ "webpack-cli": "6.0.1",
334
373
  "wouter": "^3.13.0",
374
+ "yaml": "^2.9.1",
335
375
  "zod": "^4.6.7"
336
376
  },
337
377
  "optionalDependencies": {