@wenathlan/saddle 1.8.18 → 2.0.2

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 (802) hide show
  1. package/Dockerfile +1339 -0
  2. package/README.md +33 -12
  3. package/alternatives.ts +1218 -0
  4. package/biome.json +153 -0
  5. package/boards.json +1517 -0
  6. package/compute.ts +3144 -0
  7. package/cores.json +1801 -0
  8. package/dist/acquisition.d.ts +359 -0
  9. package/dist/acquisition.d.ts.map +1 -0
  10. package/dist/acquisition.js +629 -0
  11. package/dist/acquisition.js.map +1 -0
  12. package/dist/alternatives.d.ts +509 -0
  13. package/dist/alternatives.d.ts.map +1 -0
  14. package/dist/alternatives.js +951 -0
  15. package/dist/alternatives.js.map +1 -0
  16. package/dist/automation.d.ts +426 -0
  17. package/dist/automation.d.ts.map +1 -0
  18. package/dist/automation.js +561 -0
  19. package/dist/automation.js.map +1 -0
  20. package/dist/browser.d.ts +562 -0
  21. package/dist/browser.d.ts.map +1 -0
  22. package/dist/browser.js +1057 -0
  23. package/dist/browser.js.map +1 -0
  24. package/dist/capacitor.config.d.ts +13 -0
  25. package/dist/capacitor.config.d.ts.map +1 -0
  26. package/dist/capacitor.config.js +26 -0
  27. package/dist/capacitor.config.js.map +1 -0
  28. package/dist/cli.d.ts +17 -0
  29. package/dist/cli.d.ts.map +1 -0
  30. package/dist/cli.js +111 -0
  31. package/dist/cli.js.map +1 -0
  32. package/dist/communication.d.ts +192 -0
  33. package/dist/communication.d.ts.map +1 -0
  34. package/dist/communication.js +418 -0
  35. package/dist/communication.js.map +1 -0
  36. package/dist/compute.d.ts +1161 -0
  37. package/dist/compute.d.ts.map +1 -0
  38. package/dist/compute.js +2273 -0
  39. package/dist/compute.js.map +1 -0
  40. package/dist/distribution.d.ts +529 -0
  41. package/dist/distribution.d.ts.map +1 -0
  42. package/dist/distribution.js +811 -0
  43. package/dist/distribution.js.map +1 -0
  44. package/dist/execution.d.ts +530 -0
  45. package/dist/execution.d.ts.map +1 -0
  46. package/dist/execution.js +761 -0
  47. package/dist/execution.js.map +1 -0
  48. package/dist/format.d.ts +19 -0
  49. package/dist/format.d.ts.map +1 -0
  50. package/dist/format.js +60 -0
  51. package/dist/format.js.map +1 -0
  52. package/dist/foundation.d.ts +176 -0
  53. package/dist/foundation.d.ts.map +1 -0
  54. package/dist/foundation.js +309 -0
  55. package/dist/foundation.js.map +1 -0
  56. package/dist/index.d.ts +733 -123
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +1018 -123
  59. package/dist/index.js.map +1 -1
  60. package/dist/integration.d.ts +236 -0
  61. package/dist/integration.d.ts.map +1 -0
  62. package/dist/integration.js +236 -0
  63. package/dist/integration.js.map +1 -0
  64. package/dist/intelligence.d.ts +94 -0
  65. package/dist/intelligence.d.ts.map +1 -0
  66. package/dist/intelligence.js +145 -0
  67. package/dist/intelligence.js.map +1 -0
  68. package/dist/{isolation/contracts.d.ts → isolation.d.ts} +12 -1
  69. package/dist/isolation.d.ts.map +1 -0
  70. package/dist/{isolation/contracts.js → isolation.js} +13 -1
  71. package/dist/isolation.js.map +1 -0
  72. package/dist/media.d.ts +344 -0
  73. package/dist/media.d.ts.map +1 -0
  74. package/dist/media.js +986 -0
  75. package/dist/media.js.map +1 -0
  76. package/dist/modes.d.ts +359 -0
  77. package/dist/modes.d.ts.map +1 -0
  78. package/dist/modes.js +134 -0
  79. package/dist/modes.js.map +1 -0
  80. package/dist/{library/public.d.ts → operations.d.ts} +15 -1
  81. package/dist/operations.d.ts.map +1 -0
  82. package/dist/{library/public.js → operations.js} +18 -7
  83. package/dist/operations.js.map +1 -0
  84. package/dist/orchestrator.d.ts +1339 -0
  85. package/dist/orchestrator.d.ts.map +1 -0
  86. package/dist/orchestrator.js +4308 -0
  87. package/dist/orchestrator.js.map +1 -0
  88. package/dist/performance.d.ts +416 -0
  89. package/dist/performance.d.ts.map +1 -0
  90. package/dist/performance.js +827 -0
  91. package/dist/performance.js.map +1 -0
  92. package/dist/quantum.d.ts +810 -0
  93. package/dist/quantum.d.ts.map +1 -0
  94. package/dist/quantum.js +2073 -0
  95. package/dist/quantum.js.map +1 -0
  96. package/dist/render.d.ts +381 -0
  97. package/dist/render.d.ts.map +1 -0
  98. package/dist/render.js +1073 -0
  99. package/dist/render.js.map +1 -0
  100. package/dist/scheduler.d.ts +596 -0
  101. package/dist/scheduler.d.ts.map +1 -0
  102. package/dist/scheduler.js +1259 -0
  103. package/dist/scheduler.js.map +1 -0
  104. package/dist/security.d.ts +501 -0
  105. package/dist/security.d.ts.map +1 -0
  106. package/dist/security.js +1170 -0
  107. package/dist/security.js.map +1 -0
  108. package/dist/server.d.ts +21 -0
  109. package/dist/server.d.ts.map +1 -0
  110. package/dist/{server/node.js → server.js} +16 -2
  111. package/dist/server.js.map +1 -0
  112. package/dist/tiers.d.ts +1002 -0
  113. package/dist/tiers.d.ts.map +1 -0
  114. package/dist/tiers.js +2165 -0
  115. package/dist/tiers.js.map +1 -0
  116. package/dist/virtual.d.ts +641 -0
  117. package/dist/virtual.d.ts.map +1 -0
  118. package/dist/virtual.js +1285 -0
  119. package/dist/virtual.js.map +1 -0
  120. package/dist/virtualcpu.d.ts +316 -0
  121. package/dist/virtualcpu.d.ts.map +1 -0
  122. package/dist/virtualcpu.js +1180 -0
  123. package/dist/virtualcpu.js.map +1 -0
  124. package/dist/virtualgpu.d.ts +345 -0
  125. package/dist/virtualgpu.d.ts.map +1 -0
  126. package/dist/virtualgpu.js +1000 -0
  127. package/dist/virtualgpu.js.map +1 -0
  128. package/dist/virtualization.d.ts +607 -0
  129. package/dist/virtualization.d.ts.map +1 -0
  130. package/dist/virtualization.js +1187 -0
  131. package/dist/virtualization.js.map +1 -0
  132. package/dist/virtualmemory.d.ts +818 -0
  133. package/dist/virtualmemory.d.ts.map +1 -0
  134. package/dist/virtualmemory.js +1796 -0
  135. package/dist/virtualmemory.js.map +1 -0
  136. package/dist/webscrape.d.ts +720 -0
  137. package/dist/webscrape.d.ts.map +1 -0
  138. package/dist/webscrape.js +2697 -0
  139. package/dist/webscrape.js.map +1 -0
  140. package/docker.config +769 -0
  141. package/docs/CONVERSA.txt +1523 -0
  142. package/docs/alternatives.md +499 -0
  143. package/docs/architecture-1.8.19.md +76 -0
  144. package/docs/architecture-1.8.19.mmd +33 -0
  145. package/docs/architecture-1.8.19.png +0 -0
  146. package/docs/architecture.md +355 -0
  147. package/docs/brancharchive-2026-08-18.md +18 -0
  148. package/docs/browser.md +7 -0
  149. package/docs/consolidation.md +70 -0
  150. package/docs/e2ugh-engine.md +528 -0
  151. package/{dist/examples/localjob.js → docs/example-localjob.ts} +3 -3
  152. package/{dist/examples/publicapi.js → docs/example-publicapi.ts} +2 -2
  153. package/docs/hardware.md +342 -0
  154. package/docs/optimization.md +126 -0
  155. package/docs/performance.md +499 -0
  156. package/docs/planning.1.8.18.md +94 -0
  157. package/docs/planning.1.8.19.md +49 -0
  158. package/docs/releasenotes-1.8.19.md +35 -0
  159. package/docs/research-1.8.19-virtual-browser.md +27 -0
  160. package/docs/security.md +454 -0
  161. package/docs/todo-1.8.18.md +12 -0
  162. package/docs/todo-1.8.19.md +241 -0
  163. package/docs/viability.md +777 -0
  164. package/docs/virtualization.md +335 -0
  165. package/docs/web-duplicatecleanup.md +9 -0
  166. package/docs/web-ideas.md +106 -0
  167. package/docs/workflowimprovements-2026-08-19.md +70 -0
  168. package/gpumonitor.cpp +1543 -0
  169. package/gpus.json +2408 -0
  170. package/index.ts +1478 -0
  171. package/media.ts +1337 -0
  172. package/mttg.config +1549 -0
  173. package/orchestrator.ts +5462 -0
  174. package/package.json +304 -56
  175. package/passage.config +1331 -0
  176. package/performance.ts +1049 -0
  177. package/processors.json +2217 -0
  178. package/qemu.config +1062 -0
  179. package/qemubridge.py +1340 -0
  180. package/quantum.ts +2393 -0
  181. package/render.ts +1325 -0
  182. package/scheduler.ts +1600 -0
  183. package/security.ts +1449 -0
  184. package/tiers.ts +2871 -0
  185. package/tsconfig.json +29 -0
  186. package/virtualcpu.ts +1273 -0
  187. package/virtualgpu.ts +1181 -0
  188. package/virtualhardware.c +1011 -0
  189. package/virtualhardware.json +739 -0
  190. package/virtualization.ts +1628 -0
  191. package/virtualizationcore.cpp +4635 -0
  192. package/virtualmemory.ts +2303 -0
  193. package/vm.config.json +1910 -0
  194. package/{extension → web/extension}/manifest.json +1 -1
  195. package/web/readme.md +382 -0
  196. package/web/tsconfig.json +25 -0
  197. package/dist/adapters/forge.d.ts +0 -17
  198. package/dist/adapters/forge.d.ts.map +0 -1
  199. package/dist/adapters/forge.js +0 -19
  200. package/dist/adapters/forge.js.map +0 -1
  201. package/dist/adapters/forgejo.d.ts +0 -49
  202. package/dist/adapters/forgejo.d.ts.map +0 -1
  203. package/dist/adapters/forgejo.js +0 -8
  204. package/dist/adapters/forgejo.js.map +0 -1
  205. package/dist/adapters/github.d.ts +0 -12
  206. package/dist/adapters/github.d.ts.map +0 -1
  207. package/dist/adapters/github.js +0 -20
  208. package/dist/adapters/github.js.map +0 -1
  209. package/dist/adapters/gitlab.d.ts +0 -17
  210. package/dist/adapters/gitlab.d.ts.map +0 -1
  211. package/dist/adapters/gitlab.js +0 -10
  212. package/dist/adapters/gitlab.js.map +0 -1
  213. package/dist/adapters/huggingface.d.ts +0 -17
  214. package/dist/adapters/huggingface.d.ts.map +0 -1
  215. package/dist/adapters/huggingface.js +0 -6
  216. package/dist/adapters/huggingface.js.map +0 -1
  217. package/dist/adapters/socket.d.ts +0 -11
  218. package/dist/adapters/socket.d.ts.map +0 -1
  219. package/dist/adapters/socket.js +0 -17
  220. package/dist/adapters/socket.js.map +0 -1
  221. package/dist/adapters/transport.d.ts +0 -7
  222. package/dist/adapters/transport.d.ts.map +0 -1
  223. package/dist/adapters/transport.js +0 -36
  224. package/dist/adapters/transport.js.map +0 -1
  225. package/dist/ai/chunk.d.ts +0 -2
  226. package/dist/ai/chunk.d.ts.map +0 -1
  227. package/dist/ai/chunk.js +0 -36
  228. package/dist/ai/chunk.js.map +0 -1
  229. package/dist/ai/llmstxt.d.ts +0 -6
  230. package/dist/ai/llmstxt.d.ts.map +0 -1
  231. package/dist/ai/llmstxt.js +0 -12
  232. package/dist/ai/llmstxt.js.map +0 -1
  233. package/dist/ai/provenance.d.ts +0 -22
  234. package/dist/ai/provenance.d.ts.map +0 -1
  235. package/dist/ai/provenance.js +0 -25
  236. package/dist/ai/provenance.js.map +0 -1
  237. package/dist/ai/rag.d.ts +0 -26
  238. package/dist/ai/rag.d.ts.map +0 -1
  239. package/dist/ai/rag.js +0 -22
  240. package/dist/ai/rag.js.map +0 -1
  241. package/dist/ai/tokens.d.ts +0 -15
  242. package/dist/ai/tokens.d.ts.map +0 -1
  243. package/dist/ai/tokens.js +0 -9
  244. package/dist/ai/tokens.js.map +0 -1
  245. package/dist/api/auth.d.ts +0 -16
  246. package/dist/api/auth.d.ts.map +0 -1
  247. package/dist/api/auth.js +0 -19
  248. package/dist/api/auth.js.map +0 -1
  249. package/dist/api/contracts.d.ts +0 -28
  250. package/dist/api/contracts.d.ts.map +0 -1
  251. package/dist/api/contracts.js +0 -14
  252. package/dist/api/contracts.js.map +0 -1
  253. package/dist/api/control.d.ts +0 -10
  254. package/dist/api/control.d.ts.map +0 -1
  255. package/dist/api/control.js +0 -35
  256. package/dist/api/control.js.map +0 -1
  257. package/dist/api/http.d.ts +0 -7
  258. package/dist/api/http.d.ts.map +0 -1
  259. package/dist/api/http.js +0 -12
  260. package/dist/api/http.js.map +0 -1
  261. package/dist/api/rate.d.ts +0 -28
  262. package/dist/api/rate.d.ts.map +0 -1
  263. package/dist/api/rate.js +0 -36
  264. package/dist/api/rate.js.map +0 -1
  265. package/dist/api/security.d.ts +0 -12
  266. package/dist/api/security.d.ts.map +0 -1
  267. package/dist/api/security.js +0 -56
  268. package/dist/api/security.js.map +0 -1
  269. package/dist/api/service.d.ts +0 -5
  270. package/dist/api/service.d.ts.map +0 -1
  271. package/dist/api/service.js +0 -70
  272. package/dist/api/service.js.map +0 -1
  273. package/dist/apps/registry.d.ts +0 -33
  274. package/dist/apps/registry.d.ts.map +0 -1
  275. package/dist/apps/registry.js +0 -24
  276. package/dist/apps/registry.js.map +0 -1
  277. package/dist/binary/archive.d.ts +0 -27
  278. package/dist/binary/archive.d.ts.map +0 -1
  279. package/dist/binary/archive.js +0 -46
  280. package/dist/binary/archive.js.map +0 -1
  281. package/dist/binary/build.d.ts +0 -29
  282. package/dist/binary/build.d.ts.map +0 -1
  283. package/dist/binary/build.js +0 -17
  284. package/dist/binary/build.js.map +0 -1
  285. package/dist/binary/transform.d.ts +0 -70
  286. package/dist/binary/transform.d.ts.map +0 -1
  287. package/dist/binary/transform.js +0 -105
  288. package/dist/binary/transform.js.map +0 -1
  289. package/dist/bot/adapter.d.ts +0 -5
  290. package/dist/bot/adapter.d.ts.map +0 -1
  291. package/dist/bot/adapter.js +0 -11
  292. package/dist/bot/adapter.js.map +0 -1
  293. package/dist/bot/bot.d.ts +0 -28
  294. package/dist/bot/bot.d.ts.map +0 -1
  295. package/dist/bot/bot.js +0 -52
  296. package/dist/bot/bot.js.map +0 -1
  297. package/dist/bot/commands.d.ts +0 -8
  298. package/dist/bot/commands.d.ts.map +0 -1
  299. package/dist/bot/commands.js +0 -19
  300. package/dist/bot/commands.js.map +0 -1
  301. package/dist/bot/permissions.d.ts +0 -13
  302. package/dist/bot/permissions.d.ts.map +0 -1
  303. package/dist/bot/permissions.js +0 -16
  304. package/dist/bot/permissions.js.map +0 -1
  305. package/dist/browser/actions.d.ts +0 -33
  306. package/dist/browser/actions.d.ts.map +0 -1
  307. package/dist/browser/actions.js +0 -44
  308. package/dist/browser/actions.js.map +0 -1
  309. package/dist/browser/agent.d.ts +0 -21
  310. package/dist/browser/agent.d.ts.map +0 -1
  311. package/dist/browser/agent.js +0 -13
  312. package/dist/browser/agent.js.map +0 -1
  313. package/dist/browser/context.d.ts +0 -43
  314. package/dist/browser/context.d.ts.map +0 -1
  315. package/dist/browser/context.js +0 -54
  316. package/dist/browser/context.js.map +0 -1
  317. package/dist/browser/fingerprint.d.ts +0 -4
  318. package/dist/browser/fingerprint.d.ts.map +0 -1
  319. package/dist/browser/fingerprint.js +0 -12
  320. package/dist/browser/fingerprint.js.map +0 -1
  321. package/dist/browser/index.d.ts +0 -11
  322. package/dist/browser/index.d.ts.map +0 -1
  323. package/dist/browser/index.js +0 -11
  324. package/dist/browser/index.js.map +0 -1
  325. package/dist/browser/playwright.d.ts +0 -11
  326. package/dist/browser/playwright.d.ts.map +0 -1
  327. package/dist/browser/playwright.js +0 -24
  328. package/dist/browser/playwright.js.map +0 -1
  329. package/dist/browser/recorder.d.ts +0 -21
  330. package/dist/browser/recorder.d.ts.map +0 -1
  331. package/dist/browser/recorder.js +0 -58
  332. package/dist/browser/recorder.js.map +0 -1
  333. package/dist/browser/session.d.ts +0 -14
  334. package/dist/browser/session.d.ts.map +0 -1
  335. package/dist/browser/session.js +0 -21
  336. package/dist/browser/session.js.map +0 -1
  337. package/dist/browser/snapshot.d.ts +0 -69
  338. package/dist/browser/snapshot.d.ts.map +0 -1
  339. package/dist/browser/snapshot.js +0 -133
  340. package/dist/browser/snapshot.js.map +0 -1
  341. package/dist/captcha/contract.d.ts +0 -35
  342. package/dist/captcha/contract.d.ts.map +0 -1
  343. package/dist/captcha/contract.js +0 -17
  344. package/dist/captcha/contract.js.map +0 -1
  345. package/dist/captcha/evidence.d.ts +0 -10
  346. package/dist/captcha/evidence.d.ts.map +0 -1
  347. package/dist/captcha/evidence.js +0 -9
  348. package/dist/captcha/evidence.js.map +0 -1
  349. package/dist/captcha/guard.d.ts +0 -23
  350. package/dist/captcha/guard.d.ts.map +0 -1
  351. package/dist/captcha/guard.js +0 -12
  352. package/dist/captcha/guard.js.map +0 -1
  353. package/dist/cli/main.d.ts +0 -4
  354. package/dist/cli/main.d.ts.map +0 -1
  355. package/dist/cli/main.js +0 -46
  356. package/dist/cli/main.js.map +0 -1
  357. package/dist/core/errors.d.ts +0 -84
  358. package/dist/core/errors.d.ts.map +0 -1
  359. package/dist/core/errors.js +0 -54
  360. package/dist/core/errors.js.map +0 -1
  361. package/dist/core/events.d.ts +0 -9
  362. package/dist/core/events.d.ts.map +0 -1
  363. package/dist/core/events.js +0 -21
  364. package/dist/core/events.js.map +0 -1
  365. package/dist/core/hash.d.ts +0 -10
  366. package/dist/core/hash.d.ts.map +0 -1
  367. package/dist/core/hash.js +0 -82
  368. package/dist/core/hash.js.map +0 -1
  369. package/dist/core/ids.d.ts +0 -10
  370. package/dist/core/ids.d.ts.map +0 -1
  371. package/dist/core/ids.js +0 -15
  372. package/dist/core/ids.js.map +0 -1
  373. package/dist/delivery/manifest.d.ts +0 -35
  374. package/dist/delivery/manifest.d.ts.map +0 -1
  375. package/dist/delivery/manifest.js +0 -68
  376. package/dist/delivery/manifest.js.map +0 -1
  377. package/dist/deploy/index.d.ts +0 -6
  378. package/dist/deploy/index.d.ts.map +0 -1
  379. package/dist/deploy/index.js +0 -6
  380. package/dist/deploy/index.js.map +0 -1
  381. package/dist/dispatch/resumable.d.ts +0 -102
  382. package/dist/dispatch/resumable.d.ts.map +0 -1
  383. package/dist/dispatch/resumable.js +0 -64
  384. package/dist/dispatch/resumable.js.map +0 -1
  385. package/dist/dispatch/workflow.d.ts +0 -6
  386. package/dist/dispatch/workflow.d.ts.map +0 -1
  387. package/dist/dispatch/workflow.js +0 -37
  388. package/dist/dispatch/workflow.js.map +0 -1
  389. package/dist/domain/artifacts.d.ts +0 -12
  390. package/dist/domain/artifacts.d.ts.map +0 -1
  391. package/dist/domain/artifacts.js +0 -14
  392. package/dist/domain/artifacts.js.map +0 -1
  393. package/dist/domain/jobs.d.ts +0 -12
  394. package/dist/domain/jobs.d.ts.map +0 -1
  395. package/dist/domain/jobs.js +0 -20
  396. package/dist/domain/jobs.js.map +0 -1
  397. package/dist/domain/providers.d.ts +0 -10
  398. package/dist/domain/providers.d.ts.map +0 -1
  399. package/dist/domain/providers.js +0 -8
  400. package/dist/domain/providers.js.map +0 -1
  401. package/dist/domain/runtime.d.ts +0 -14
  402. package/dist/domain/runtime.d.ts.map +0 -1
  403. package/dist/domain/runtime.js +0 -10
  404. package/dist/domain/runtime.js.map +0 -1
  405. package/dist/domain/sessions.d.ts +0 -12
  406. package/dist/domain/sessions.d.ts.map +0 -1
  407. package/dist/domain/sessions.js +0 -57
  408. package/dist/domain/sessions.js.map +0 -1
  409. package/dist/examples/localjob.d.ts +0 -2
  410. package/dist/examples/localjob.d.ts.map +0 -1
  411. package/dist/examples/localjob.js.map +0 -1
  412. package/dist/examples/publicapi.d.ts +0 -2
  413. package/dist/examples/publicapi.d.ts.map +0 -1
  414. package/dist/examples/publicapi.js.map +0 -1
  415. package/dist/extension/build.d.ts +0 -9
  416. package/dist/extension/build.d.ts.map +0 -1
  417. package/dist/extension/build.js +0 -85
  418. package/dist/extension/build.js.map +0 -1
  419. package/dist/extension/content.d.ts +0 -6
  420. package/dist/extension/content.d.ts.map +0 -1
  421. package/dist/extension/content.js +0 -135
  422. package/dist/extension/content.js.map +0 -1
  423. package/dist/extension/index.d.ts +0 -7
  424. package/dist/extension/index.d.ts.map +0 -1
  425. package/dist/extension/index.js +0 -7
  426. package/dist/extension/index.js.map +0 -1
  427. package/dist/extension/pagebridge.d.ts +0 -6
  428. package/dist/extension/pagebridge.d.ts.map +0 -1
  429. package/dist/extension/pagebridge.js +0 -42
  430. package/dist/extension/pagebridge.js.map +0 -1
  431. package/dist/extension/permissions.d.ts +0 -26
  432. package/dist/extension/permissions.d.ts.map +0 -1
  433. package/dist/extension/permissions.js +0 -28
  434. package/dist/extension/permissions.js.map +0 -1
  435. package/dist/extension/popup.d.ts +0 -5
  436. package/dist/extension/popup.d.ts.map +0 -1
  437. package/dist/extension/popup.js +0 -26
  438. package/dist/extension/popup.js.map +0 -1
  439. package/dist/extension/protocol.d.ts +0 -58
  440. package/dist/extension/protocol.d.ts.map +0 -1
  441. package/dist/extension/protocol.js +0 -101
  442. package/dist/extension/protocol.js.map +0 -1
  443. package/dist/extension/serviceworker.d.ts +0 -25
  444. package/dist/extension/serviceworker.d.ts.map +0 -1
  445. package/dist/extension/serviceworker.js +0 -102
  446. package/dist/extension/serviceworker.js.map +0 -1
  447. package/dist/extension/worker.d.ts +0 -28
  448. package/dist/extension/worker.d.ts.map +0 -1
  449. package/dist/extension/worker.js +0 -22
  450. package/dist/extension/worker.js.map +0 -1
  451. package/dist/format/check.d.ts +0 -8
  452. package/dist/format/check.d.ts.map +0 -1
  453. package/dist/format/check.js +0 -38
  454. package/dist/format/check.js.map +0 -1
  455. package/dist/isolation/contracts.d.ts.map +0 -1
  456. package/dist/isolation/contracts.js.map +0 -1
  457. package/dist/library/public.d.ts.map +0 -1
  458. package/dist/library/public.js.map +0 -1
  459. package/dist/mcp/browser.d.ts +0 -9
  460. package/dist/mcp/browser.d.ts.map +0 -1
  461. package/dist/mcp/browser.js +0 -13
  462. package/dist/mcp/browser.js.map +0 -1
  463. package/dist/mcp/server.d.ts +0 -35
  464. package/dist/mcp/server.d.ts.map +0 -1
  465. package/dist/mcp/server.js +0 -40
  466. package/dist/mcp/server.js.map +0 -1
  467. package/dist/mcp/transport.d.ts +0 -7
  468. package/dist/mcp/transport.d.ts.map +0 -1
  469. package/dist/mcp/transport.js +0 -17
  470. package/dist/mcp/transport.js.map +0 -1
  471. package/dist/memory/bridge.d.ts +0 -14
  472. package/dist/memory/bridge.d.ts.map +0 -1
  473. package/dist/memory/bridge.js +0 -16
  474. package/dist/memory/bridge.js.map +0 -1
  475. package/dist/memory/engine.d.ts +0 -38
  476. package/dist/memory/engine.d.ts.map +0 -1
  477. package/dist/memory/engine.js +0 -109
  478. package/dist/memory/engine.js.map +0 -1
  479. package/dist/memory/modes.d.ts +0 -43
  480. package/dist/memory/modes.d.ts.map +0 -1
  481. package/dist/memory/modes.js +0 -66
  482. package/dist/memory/modes.js.map +0 -1
  483. package/dist/memory/objects.d.ts +0 -21
  484. package/dist/memory/objects.d.ts.map +0 -1
  485. package/dist/memory/objects.js +0 -20
  486. package/dist/memory/objects.js.map +0 -1
  487. package/dist/memory/planner.d.ts +0 -66
  488. package/dist/memory/planner.d.ts.map +0 -1
  489. package/dist/memory/planner.js +0 -108
  490. package/dist/memory/planner.js.map +0 -1
  491. package/dist/memory/targets.d.ts +0 -78
  492. package/dist/memory/targets.d.ts.map +0 -1
  493. package/dist/memory/targets.js +0 -29
  494. package/dist/memory/targets.js.map +0 -1
  495. package/dist/memory/transforms.d.ts +0 -19
  496. package/dist/memory/transforms.d.ts.map +0 -1
  497. package/dist/memory/transforms.js +0 -14
  498. package/dist/memory/transforms.js.map +0 -1
  499. package/dist/modes/matrix.d.ts +0 -23
  500. package/dist/modes/matrix.d.ts.map +0 -1
  501. package/dist/modes/matrix.js +0 -18
  502. package/dist/modes/matrix.js.map +0 -1
  503. package/dist/modes/modes.d.ts +0 -33
  504. package/dist/modes/modes.d.ts.map +0 -1
  505. package/dist/modes/modes.js +0 -15
  506. package/dist/modes/modes.js.map +0 -1
  507. package/dist/modes/resolve.d.ts +0 -96
  508. package/dist/modes/resolve.d.ts.map +0 -1
  509. package/dist/modes/resolve.js +0 -48
  510. package/dist/modes/resolve.js.map +0 -1
  511. package/dist/observability/metrics.d.ts +0 -14
  512. package/dist/observability/metrics.d.ts.map +0 -1
  513. package/dist/observability/metrics.js +0 -18
  514. package/dist/observability/metrics.js.map +0 -1
  515. package/dist/packager/manifest.d.ts +0 -66
  516. package/dist/packager/manifest.d.ts.map +0 -1
  517. package/dist/packager/manifest.js +0 -94
  518. package/dist/packager/manifest.js.map +0 -1
  519. package/dist/packager/publish.d.ts +0 -51
  520. package/dist/packager/publish.d.ts.map +0 -1
  521. package/dist/packager/publish.js +0 -18
  522. package/dist/packager/publish.js.map +0 -1
  523. package/dist/packager/targetcli.d.ts +0 -7
  524. package/dist/packager/targetcli.d.ts.map +0 -1
  525. package/dist/packager/targetcli.js +0 -22
  526. package/dist/packager/targetcli.js.map +0 -1
  527. package/dist/persistence/adapter.d.ts +0 -5
  528. package/dist/persistence/adapter.d.ts.map +0 -1
  529. package/dist/persistence/adapter.js +0 -11
  530. package/dist/persistence/adapter.js.map +0 -1
  531. package/dist/persistence/drizzle.d.ts +0 -2
  532. package/dist/persistence/drizzle.d.ts.map +0 -1
  533. package/dist/persistence/drizzle.js +0 -12
  534. package/dist/persistence/drizzle.js.map +0 -1
  535. package/dist/persistence/memory.d.ts +0 -2
  536. package/dist/persistence/memory.d.ts.map +0 -1
  537. package/dist/persistence/memory.js +0 -27
  538. package/dist/persistence/memory.js.map +0 -1
  539. package/dist/persistence/migrations.d.ts +0 -19
  540. package/dist/persistence/migrations.d.ts.map +0 -1
  541. package/dist/persistence/migrations.js +0 -13
  542. package/dist/persistence/migrations.js.map +0 -1
  543. package/dist/persistence/prisma.d.ts +0 -2
  544. package/dist/persistence/prisma.d.ts.map +0 -1
  545. package/dist/persistence/prisma.js +0 -25
  546. package/dist/persistence/prisma.js.map +0 -1
  547. package/dist/persistence/schema.d.ts +0 -63
  548. package/dist/persistence/schema.d.ts.map +0 -1
  549. package/dist/persistence/schema.js +0 -28
  550. package/dist/persistence/schema.js.map +0 -1
  551. package/dist/persistence/sql.d.ts +0 -3
  552. package/dist/persistence/sql.d.ts.map +0 -1
  553. package/dist/persistence/sql.js +0 -37
  554. package/dist/persistence/sql.js.map +0 -1
  555. package/dist/protocol/blocks.d.ts +0 -10
  556. package/dist/protocol/blocks.d.ts.map +0 -1
  557. package/dist/protocol/blocks.js +0 -26
  558. package/dist/protocol/blocks.js.map +0 -1
  559. package/dist/protocol/json.d.ts +0 -6
  560. package/dist/protocol/json.d.ts.map +0 -1
  561. package/dist/protocol/json.js +0 -6
  562. package/dist/protocol/json.js.map +0 -1
  563. package/dist/protocol/ndjson.d.ts +0 -3
  564. package/dist/protocol/ndjson.d.ts.map +0 -1
  565. package/dist/protocol/ndjson.js +0 -20
  566. package/dist/protocol/ndjson.js.map +0 -1
  567. package/dist/protocol/sse.d.ts +0 -7
  568. package/dist/protocol/sse.d.ts.map +0 -1
  569. package/dist/protocol/sse.js +0 -25
  570. package/dist/protocol/sse.js.map +0 -1
  571. package/dist/proxy/pool.d.ts +0 -9
  572. package/dist/proxy/pool.d.ts.map +0 -1
  573. package/dist/proxy/pool.js +0 -27
  574. package/dist/proxy/pool.js.map +0 -1
  575. package/dist/queue/idempotency.d.ts +0 -10
  576. package/dist/queue/idempotency.d.ts.map +0 -1
  577. package/dist/queue/idempotency.js +0 -13
  578. package/dist/queue/idempotency.js.map +0 -1
  579. package/dist/queue/persistent.d.ts +0 -14
  580. package/dist/queue/persistent.d.ts.map +0 -1
  581. package/dist/queue/persistent.js +0 -66
  582. package/dist/queue/persistent.js.map +0 -1
  583. package/dist/queue/queue.d.ts +0 -7
  584. package/dist/queue/queue.d.ts.map +0 -1
  585. package/dist/queue/queue.js +0 -55
  586. package/dist/queue/queue.js.map +0 -1
  587. package/dist/queue/saga.d.ts +0 -5
  588. package/dist/queue/saga.d.ts.map +0 -1
  589. package/dist/queue/saga.js +0 -20
  590. package/dist/queue/saga.js.map +0 -1
  591. package/dist/release/assets.d.ts +0 -144
  592. package/dist/release/assets.d.ts.map +0 -1
  593. package/dist/release/assets.js +0 -157
  594. package/dist/release/assets.js.map +0 -1
  595. package/dist/release/evidence.d.ts +0 -92
  596. package/dist/release/evidence.d.ts.map +0 -1
  597. package/dist/release/evidence.js +0 -148
  598. package/dist/release/evidence.js.map +0 -1
  599. package/dist/release/verify.d.ts +0 -12
  600. package/dist/release/verify.d.ts.map +0 -1
  601. package/dist/release/verify.js +0 -112
  602. package/dist/release/verify.js.map +0 -1
  603. package/dist/runners/chain.d.ts +0 -125
  604. package/dist/runners/chain.d.ts.map +0 -1
  605. package/dist/runners/chain.js +0 -95
  606. package/dist/runners/chain.js.map +0 -1
  607. package/dist/runners/health.d.ts +0 -36
  608. package/dist/runners/health.d.ts.map +0 -1
  609. package/dist/runners/health.js +0 -26
  610. package/dist/runners/health.js.map +0 -1
  611. package/dist/runners/heartbeat.d.ts +0 -23
  612. package/dist/runners/heartbeat.d.ts.map +0 -1
  613. package/dist/runners/heartbeat.js +0 -29
  614. package/dist/runners/heartbeat.js.map +0 -1
  615. package/dist/runners/inprocess.d.ts +0 -17
  616. package/dist/runners/inprocess.d.ts.map +0 -1
  617. package/dist/runners/inprocess.js +0 -20
  618. package/dist/runners/inprocess.js.map +0 -1
  619. package/dist/runners/scheduler.d.ts +0 -5
  620. package/dist/runners/scheduler.d.ts.map +0 -1
  621. package/dist/runners/scheduler.js +0 -19
  622. package/dist/runners/scheduler.js.map +0 -1
  623. package/dist/runtime/abort.d.ts +0 -8
  624. package/dist/runtime/abort.d.ts.map +0 -1
  625. package/dist/runtime/abort.js +0 -13
  626. package/dist/runtime/abort.js.map +0 -1
  627. package/dist/runtime/compatibility.d.ts +0 -37
  628. package/dist/runtime/compatibility.d.ts.map +0 -1
  629. package/dist/runtime/compatibility.js +0 -10
  630. package/dist/runtime/compatibility.js.map +0 -1
  631. package/dist/runtime/detect.d.ts +0 -13
  632. package/dist/runtime/detect.d.ts.map +0 -1
  633. package/dist/runtime/detect.js +0 -18
  634. package/dist/runtime/detect.js.map +0 -1
  635. package/dist/runtime/engine.d.ts +0 -20
  636. package/dist/runtime/engine.d.ts.map +0 -1
  637. package/dist/runtime/engine.js +0 -61
  638. package/dist/runtime/engine.js.map +0 -1
  639. package/dist/runtime/retry.d.ts +0 -19
  640. package/dist/runtime/retry.d.ts.map +0 -1
  641. package/dist/runtime/retry.js +0 -54
  642. package/dist/runtime/retry.js.map +0 -1
  643. package/dist/runtime/worker.d.ts +0 -10
  644. package/dist/runtime/worker.d.ts.map +0 -1
  645. package/dist/runtime/worker.js +0 -25
  646. package/dist/runtime/worker.js.map +0 -1
  647. package/dist/scrape/cache.d.ts +0 -45
  648. package/dist/scrape/cache.d.ts.map +0 -1
  649. package/dist/scrape/cache.js +0 -45
  650. package/dist/scrape/cache.js.map +0 -1
  651. package/dist/scrape/crawl.d.ts +0 -47
  652. package/dist/scrape/crawl.d.ts.map +0 -1
  653. package/dist/scrape/crawl.js +0 -114
  654. package/dist/scrape/crawl.js.map +0 -1
  655. package/dist/scrape/extract.d.ts +0 -63
  656. package/dist/scrape/extract.d.ts.map +0 -1
  657. package/dist/scrape/extract.js +0 -47
  658. package/dist/scrape/extract.js.map +0 -1
  659. package/dist/scrape/normalize.d.ts +0 -52
  660. package/dist/scrape/normalize.d.ts.map +0 -1
  661. package/dist/scrape/normalize.js +0 -102
  662. package/dist/scrape/normalize.js.map +0 -1
  663. package/dist/scrape/robots.d.ts +0 -37
  664. package/dist/scrape/robots.d.ts.map +0 -1
  665. package/dist/scrape/robots.js +0 -71
  666. package/dist/scrape/robots.js.map +0 -1
  667. package/dist/scrape/schema.d.ts +0 -23
  668. package/dist/scrape/schema.d.ts.map +0 -1
  669. package/dist/scrape/schema.js +0 -92
  670. package/dist/scrape/schema.js.map +0 -1
  671. package/dist/scrape/scraper.d.ts +0 -6
  672. package/dist/scrape/scraper.d.ts.map +0 -1
  673. package/dist/scrape/scraper.js +0 -46
  674. package/dist/scrape/scraper.js.map +0 -1
  675. package/dist/scrape/semantic.d.ts +0 -25
  676. package/dist/scrape/semantic.d.ts.map +0 -1
  677. package/dist/scrape/semantic.js +0 -27
  678. package/dist/scrape/semantic.js.map +0 -1
  679. package/dist/server/node.d.ts +0 -7
  680. package/dist/server/node.d.ts.map +0 -1
  681. package/dist/server/node.js.map +0 -1
  682. package/dist/sessions/file.d.ts +0 -25
  683. package/dist/sessions/file.d.ts.map +0 -1
  684. package/dist/sessions/file.js +0 -13
  685. package/dist/sessions/file.js.map +0 -1
  686. package/dist/sessions/replay.d.ts +0 -9
  687. package/dist/sessions/replay.d.ts.map +0 -1
  688. package/dist/sessions/replay.js +0 -70
  689. package/dist/sessions/replay.js.map +0 -1
  690. package/dist/sessions/store.d.ts +0 -25
  691. package/dist/sessions/store.d.ts.map +0 -1
  692. package/dist/sessions/store.js +0 -13
  693. package/dist/sessions/store.js.map +0 -1
  694. package/dist/storage/adapter.d.ts +0 -5
  695. package/dist/storage/adapter.d.ts.map +0 -1
  696. package/dist/storage/adapter.js +0 -11
  697. package/dist/storage/adapter.js.map +0 -1
  698. package/dist/storage/cache.d.ts +0 -23
  699. package/dist/storage/cache.d.ts.map +0 -1
  700. package/dist/storage/cache.js +0 -79
  701. package/dist/storage/cache.js.map +0 -1
  702. package/dist/storage/checksum.d.ts +0 -3
  703. package/dist/storage/checksum.d.ts.map +0 -1
  704. package/dist/storage/checksum.js +0 -19
  705. package/dist/storage/checksum.js.map +0 -1
  706. package/dist/storage/chunked.d.ts +0 -21
  707. package/dist/storage/chunked.d.ts.map +0 -1
  708. package/dist/storage/chunked.js +0 -67
  709. package/dist/storage/chunked.js.map +0 -1
  710. package/dist/storage/content.d.ts +0 -24
  711. package/dist/storage/content.d.ts.map +0 -1
  712. package/dist/storage/content.js +0 -44
  713. package/dist/storage/content.js.map +0 -1
  714. package/dist/storage/filehosting.d.ts +0 -2
  715. package/dist/storage/filehosting.d.ts.map +0 -1
  716. package/dist/storage/filehosting.js +0 -24
  717. package/dist/storage/filehosting.js.map +0 -1
  718. package/dist/storage/githubcontents.d.ts +0 -2
  719. package/dist/storage/githubcontents.d.ts.map +0 -1
  720. package/dist/storage/githubcontents.js +0 -29
  721. package/dist/storage/githubcontents.js.map +0 -1
  722. package/dist/storage/index.d.ts +0 -12
  723. package/dist/storage/index.d.ts.map +0 -1
  724. package/dist/storage/index.js +0 -12
  725. package/dist/storage/index.js.map +0 -1
  726. package/dist/storage/local.d.ts +0 -2
  727. package/dist/storage/local.d.ts.map +0 -1
  728. package/dist/storage/local.js +0 -72
  729. package/dist/storage/local.js.map +0 -1
  730. package/dist/storage/memory.d.ts +0 -6
  731. package/dist/storage/memory.d.ts.map +0 -1
  732. package/dist/storage/memory.js +0 -36
  733. package/dist/storage/memory.js.map +0 -1
  734. package/dist/storage/pool.d.ts +0 -95
  735. package/dist/storage/pool.d.ts.map +0 -1
  736. package/dist/storage/pool.js +0 -202
  737. package/dist/storage/pool.js.map +0 -1
  738. package/dist/storage/s3compatible.d.ts +0 -3
  739. package/dist/storage/s3compatible.d.ts.map +0 -1
  740. package/dist/storage/s3compatible.js +0 -70
  741. package/dist/storage/s3compatible.js.map +0 -1
  742. package/dist/storage/sync.d.ts +0 -47
  743. package/dist/storage/sync.d.ts.map +0 -1
  744. package/dist/storage/sync.js +0 -75
  745. package/dist/storage/sync.js.map +0 -1
  746. package/dist/surfaces/adapters.d.ts +0 -97
  747. package/dist/surfaces/adapters.d.ts.map +0 -1
  748. package/dist/surfaces/adapters.js +0 -50
  749. package/dist/surfaces/adapters.js.map +0 -1
  750. package/dist/surfaces/controls.d.ts +0 -18
  751. package/dist/surfaces/controls.d.ts.map +0 -1
  752. package/dist/surfaces/controls.js +0 -45
  753. package/dist/surfaces/controls.js.map +0 -1
  754. package/dist/surfaces/manifest.d.ts +0 -68
  755. package/dist/surfaces/manifest.d.ts.map +0 -1
  756. package/dist/surfaces/manifest.js +0 -42
  757. package/dist/surfaces/manifest.js.map +0 -1
  758. package/dist/surfaces/n8n.d.ts +0 -25
  759. package/dist/surfaces/n8n.d.ts.map +0 -1
  760. package/dist/surfaces/n8n.js +0 -31
  761. package/dist/surfaces/n8n.js.map +0 -1
  762. package/dist/surfaces/operations.d.ts +0 -32
  763. package/dist/surfaces/operations.d.ts.map +0 -1
  764. package/dist/surfaces/operations.js +0 -53
  765. package/dist/surfaces/operations.js.map +0 -1
  766. package/dist/surfaces/requirements.d.ts +0 -29
  767. package/dist/surfaces/requirements.d.ts.map +0 -1
  768. package/dist/surfaces/requirements.js +0 -50
  769. package/dist/surfaces/requirements.js.map +0 -1
  770. package/dist/surfaces/targets.d.ts +0 -196
  771. package/dist/surfaces/targets.d.ts.map +0 -1
  772. package/dist/surfaces/targets.js +0 -27
  773. package/dist/surfaces/targets.js.map +0 -1
  774. package/dist/webhook/delivery.d.ts +0 -18
  775. package/dist/webhook/delivery.d.ts.map +0 -1
  776. package/dist/webhook/delivery.js +0 -36
  777. package/dist/webhook/delivery.js.map +0 -1
  778. package/dist/webhook/receiver.d.ts +0 -26
  779. package/dist/webhook/receiver.d.ts.map +0 -1
  780. package/dist/webhook/receiver.js +0 -24
  781. package/dist/webhook/receiver.js.map +0 -1
  782. package/dist/webhook/signature.d.ts +0 -3
  783. package/dist/webhook/signature.d.ts.map +0 -1
  784. package/dist/webhook/signature.js +0 -7
  785. package/dist/webhook/signature.js.map +0 -1
  786. package/dist/workflow/manifest.d.ts +0 -22
  787. package/dist/workflow/manifest.d.ts.map +0 -1
  788. package/dist/workflow/manifest.js +0 -21
  789. package/dist/workflow/manifest.js.map +0 -1
  790. package/dist/workflow/registry.d.ts +0 -7
  791. package/dist/workflow/registry.d.ts.map +0 -1
  792. package/dist/workflow/registry.js +0 -18
  793. package/dist/workflow/registry.js.map +0 -1
  794. package/dist/workflow/templates.d.ts +0 -6
  795. package/dist/workflow/templates.d.ts.map +0 -1
  796. package/dist/workflow/templates.js +0 -18
  797. package/dist/workflow/templates.js.map +0 -1
  798. package/dist/workflow/triggers.d.ts +0 -64
  799. package/dist/workflow/triggers.d.ts.map +0 -1
  800. package/dist/workflow/triggers.js +0 -99
  801. package/dist/workflow/triggers.js.map +0 -1
  802. /package/{extension/README.md → docs/extension.md} +0 -0
package/qemu.config ADDED
@@ -0,0 +1,1062 @@
1
+ {
2
+ "meta": {
3
+ "name": "qemu.config",
4
+ "title": "saddle - QEMU Configuration (canonical JSON; sources: S6 TOML + v5 spec 11.1.0 + libvirt overlay)",
5
+ "version": "2.0.0",
6
+ "date": "2026-08-22",
7
+ "language": "en",
8
+ "format": "JSON (canonical v2 schema; sources were S6 TOML + V5 JSON schema + libvirt conf overlay)",
9
+ "description": "saddle - QEMU Configuration (canonical JSON; sources: S6 TOML + v5 spec 11.1.0 + libvirt overlay)",
10
+ "sources": [
11
+ "pool:qemu.config [S6 TOML, 47 sections - structural base]",
12
+ "pool:qemu.json [V5 spec 11.1.0 - DiamondRapids/AMX/TDX/sp_mem/nitro]",
13
+ "pool:qemu.conf [AetherForge libvirt overlay]",
14
+ "pool:nested_qemu.json [virtio-gpu/virtio-fs/memoverlay/dolos/smi-adapter]"
15
+ ],
16
+ "mergeReport": {
17
+ "s6Sections": 17,
18
+ "v5UniqueFeatures": [
19
+ "nvme_hotplug_qmp",
20
+ "sp_mem",
21
+ "tdx_live_update",
22
+ "sev_snp_reset_fix",
23
+ "virtio_gpu_native_context",
24
+ "kvm_nitro_trust",
25
+ "io_uring_zcrx"
26
+ ],
27
+ "overlayUnique": [
28
+ "cgroup_device_acl 13 devs (vfio, looking-glass shm)",
29
+ "migration port range 49152-49215",
30
+ "max_files 32768",
31
+ "stdio_handler logd"
32
+ ],
33
+ "nestedUnique": [
34
+ "virtio-gpu 1af4:1050 virgl+blob",
35
+ "virtio-fs cache=always",
36
+ "memoverlay LD_PRELOAD",
37
+ "dolos sysinfo() 128GB",
38
+ "smi-adapter H100 81559MiB / A100 40536MiB / RTX5090 32768MiB"
39
+ ],
40
+ "conflictResolution": "qemu 11.1.0 -> 11.1.0; q35-9.1 -> q35-9.2; cpu models unified (EPYC-Turin + EPYC-v5 lineage); MTTCG kept as own section with reference to mttg.config",
41
+ "pinPatch": "embedded active config values re-pinned date-first 2026-08-22 (9.1.2->11.1.0, 27.3.1->29.7.2, 22.12.3->24.19.0, 5.6.3->7.0.2, 25.2.7->26.2.1, 19.1.7->22.1.8, 1.9.0->1.16.1, libvirt 10.10.0->12.5.0, checkout v4.2.2->v5); originals preserved under *_legacy*/source_value keys"
42
+ },
43
+ "qemuVersion": "11.1.0"
44
+ },
45
+ "qemu": {
46
+ "meta": {
47
+ "name": "qemu.config",
48
+ "date": "2026-08-22",
49
+ "configVersion": "6.0.0",
50
+ "architecture": "root-first",
51
+ "structure": "flat",
52
+ "license": "MIT",
53
+ "authorPattern": "third-person-observer",
54
+ "style": "lowercase-no-underscore-dash-except-mandatory-dot",
55
+ "errorCatcher": true,
56
+ "pixelDensity": "44px",
57
+ "versions": {
58
+ "qemu": "11.1.0",
59
+ "qemuReleaseDate": "2026-08-13",
60
+ "qemuCommits": 3200,
61
+ "libvirt": "12.5.0",
62
+ "ovmf": "202605",
63
+ "edk2Base": "edk2-stable202605",
64
+ "seabios": "1.16.3",
65
+ "ipxe": "1.0.0+",
66
+ "nodeLts": "24.19.0",
67
+ "nodeCurrent": "26.7.0",
68
+ "typescript": "7.0.2",
69
+ "docker": "29.7.2",
70
+ "rePinNote": "legacy saddle-v6 pins (qemu 9.1.2, libvirt 10.10.0, ovmf 2025.05) superseded date-first 2026-08-22 per v5/e2ugh lineage"
71
+ },
72
+ "legacyVersionsSaddleV6": {
73
+ "qemu": "9.1.2",
74
+ "qemuReleaseDate": "2024-09-03",
75
+ "qemuLatestPatch": "9.1.2 - latest stable as of 2026-08-22",
76
+ "libvirt": "10.10.0",
77
+ "libvirtReleaseDate": "2024-12-02",
78
+ "ovmf": "2025.05",
79
+ "ovmfReleaseDate": "2025-05-15",
80
+ "edk2Base": "edk2-stable202505",
81
+ "seabios": "1.16.3",
82
+ "ipxe": "1.0.0+",
83
+ "node": "22.12.3",
84
+ "nodeVariant": "LTS - Iron",
85
+ "typescript": "5.6.3",
86
+ "python": "3.13.5",
87
+ "docker": "27.3.1",
88
+ "githubCheckout": "actions/checkout@v4.2.2",
89
+ "githubSetupNode": "actions/setup-node@v4.1.0",
90
+ "githubSetupPython": "actions/setup-python@v5.4.0",
91
+ "platformKernel": "6.11.0+"
92
+ },
93
+ "version": "2.0.0",
94
+ "title": "saddle - QEMU Configuration (canonical JSON; sources: S6 TOML + v5 spec 11.1.0 + libvirt overlay)",
95
+ "project": "e2ugh v6",
96
+ "toolchainV5": {
97
+ "kernelStable": "7.1.9",
98
+ "kernelLts": "6.18.45",
99
+ "libvirt": "12.5.0",
100
+ "edk2": "edk2-stable202605",
101
+ "seabios": "1.16.3",
102
+ "nodeLts": "24.19.0",
103
+ "nodeCurrent": "26.7.0",
104
+ "typescript": "7.0.2",
105
+ "docker": "29.7.2",
106
+ "buildx": "0.36.0",
107
+ "compose": "5.3.0",
108
+ "runner": "2.336.0",
109
+ "checkout": "v6",
110
+ "setupNode": "v6"
111
+ },
112
+ "v5SpecMeta": {
113
+ "version": "5.0.0",
114
+ "generated": "2026-08-22T00:00:00Z",
115
+ "qemuVersion": "11.1.0",
116
+ "qemuCommits": 3200,
117
+ "qemuBranch": "master",
118
+ "qemuReleaseDate": "2026-08-13",
119
+ "qemuPrevVersion": "11.0.1",
120
+ "qemuPrevRelease": "2026-06-15",
121
+ "kernelStable": "7.1.9",
122
+ "kernelLts": "6.18.45",
123
+ "libvirtVersion": "12.5.0",
124
+ "dockerVersion": "29.7.2",
125
+ "nodeLts": "24.19.0",
126
+ "nodeCurrent": "26.7.0",
127
+ "typescript": "7.0.2"
128
+ },
129
+ "sources": [
130
+ "pool:qemu.config [S6 TOML, 47 sections - structural base]",
131
+ "pool:qemu.json [V5 spec 11.1.0 - DiamondRapids/AMX/TDX/sp_mem/nitro]",
132
+ "pool:qemu.conf [AetherForge libvirt overlay]",
133
+ "pool:nested_qemu.json [virtio-gpu/virtio-fs/memoverlay/dolos/smi-adapter]"
134
+ ],
135
+ "mergeReport": {
136
+ "s6Sections": 17,
137
+ "v5UniqueFeatures": [
138
+ "nvme_hotplug_qmp",
139
+ "sp_mem",
140
+ "tdx_live_update",
141
+ "sev_snp_reset_fix",
142
+ "virtio_gpu_native_context",
143
+ "kvm_nitro_trust",
144
+ "io_uring_zcrx"
145
+ ],
146
+ "overlayUnique": [
147
+ "cgroup_device_acl 13 devs (vfio, looking-glass shm)",
148
+ "migration port range 49152-49215",
149
+ "max_files 32768",
150
+ "stdio_handler logd"
151
+ ],
152
+ "nestedUnique": [
153
+ "virtio-gpu 1af4:1050 virgl+blob",
154
+ "virtio-fs cache=always",
155
+ "memoverlay LD_PRELOAD",
156
+ "dolos sysinfo() 128GB",
157
+ "smi-adapter H100 81559MiB / A100 40536MiB / RTX5090 32768MiB"
158
+ ],
159
+ "conflictResolution": "qemu 11.1.0 -> 11.1.0; q35-9.1 -> q35-9.2; cpu models unified (EPYC-Turin + EPYC-v5 lineage); MTTCG kept as own section with reference to mttg.config"
160
+ }
161
+ },
162
+ "base": {
163
+ "binary": "qemu-system-x86_64",
164
+ "binaryVersion": "11.1.0",
165
+ "display": "none",
166
+ "daemonize": false,
167
+ "sdl": false,
168
+ "gtk": false,
169
+ "vnc": "off",
170
+ "monitor": "none",
171
+ "serial": "null",
172
+ "parallel": "none",
173
+ "name": "saddle-v6-vm",
174
+ "realtime": "mlock=on",
175
+ "msg": "timestamp=on,guest-name=on",
176
+ "objectMemoryBackend": "memory-backend-memfd",
177
+ "nativePreference": {
178
+ "1": "node:fs",
179
+ "2": "node:path",
180
+ "3": "node:crypto",
181
+ "4": "node:http",
182
+ "5": "node:child_process",
183
+ "6": "node:os",
184
+ "7": "node:process"
185
+ }
186
+ },
187
+ "accelerator": {
188
+ "kvm": {
189
+ "enabled": true,
190
+ "type": "kvm",
191
+ "flag": "-accel kvm,thread=multi",
192
+ "thread": "multi",
193
+ "kernelIrqchip": "split",
194
+ "kernelIrqchipFlag": "-machine kernel-irqchip=split",
195
+ "description": "KVM hardware acceleration - primary for Linux hosts",
196
+ "hostSupport": "Linux 6.11+ with /dev/kvm",
197
+ "permissions": "kvm group, 0666 on /dev/kvm",
198
+ "nestedVirtualization": true,
199
+ "dirtyRingSize": 65536,
200
+ "dirtyRingFlag": "-accel kvm,dirty-ring-size=65536",
201
+ "ept": true,
202
+ "vpid": true,
203
+ "unrestrictedGuest": true,
204
+ "iommufd": {
205
+ "enabled": true,
206
+ "type": "iommufd",
207
+ "flag": "-object iommufd,id=iommufd0",
208
+ "deviceFlag": "-device vfio-pci,host=0000:01:00.0,iommufd=iommufd0",
209
+ "description": "IOMMUFD backend for secure VFIO passthrough - replaces legacy vfio container",
210
+ "kernelRequirement": "Linux 6.9+",
211
+ "libvirtSupport": "12.5.0+"
212
+ }
213
+ },
214
+ "hvf": {
215
+ "enabled": true,
216
+ "type": "hvf",
217
+ "flag": "-accel hvf",
218
+ "description": "Hypervisor.Framework acceleration for macOS hosts",
219
+ "hostSupport": "macOS 14.0+ Sonoma, macOS 15.0+ Sequoia",
220
+ "thread": "multi",
221
+ "nestedVirtualization": false,
222
+ "platform": "darwin-arm64, darwin-x64"
223
+ },
224
+ "tcg": {
225
+ "enabled": true,
226
+ "type": "tcg",
227
+ "flag": "-accel tcg,thread=multi",
228
+ "thread": "multi",
229
+ "description": "Tiny Code Generator - fallback software emulation",
230
+ "threadMax": 8,
231
+ "tbSize": 1536,
232
+ "tbSizeFlag": "-accel tcg,tb-size=1536"
233
+ },
234
+ "v5Accel": {
235
+ "type": "kvm:nitro",
236
+ "primary": "kvm",
237
+ "secondary": "nitro",
238
+ "nitroTrust": true,
239
+ "description": "KVM with Nitro Enclaves Trust extension",
240
+ "options": "kvm:nitro-trust=on,split-irqchip=on",
241
+ "kvmVersion": "kvm-7.1.9",
242
+ "supported": [
243
+ "kvm",
244
+ "kvm:nitro",
245
+ "tcg",
246
+ "hvf"
247
+ ]
248
+ }
249
+ },
250
+ "machine": {
251
+ "type": "q35-9.1",
252
+ "flag": "-machine q35-9.1,kernel-irqchip=split,smm=on,vmport=off,i8042=off",
253
+ "chipset": "q35",
254
+ "version": "9.1",
255
+ "accel": "kvm:tcg:hvf",
256
+ "smm": "on",
257
+ "vmport": "off",
258
+ "i8042": "off",
259
+ "kernelIrqchip": "split",
260
+ "hpet": "off",
261
+ "kvmShadowMem": 32768,
262
+ "dumpGuestCore": "off",
263
+ "memoryLatencyTolerance": 0,
264
+ "pcie": {
265
+ "version": "5.0",
266
+ "gen": 5,
267
+ "lanes": "x16",
268
+ "flag": "-device pcie-root-port,bus=pcie.0,chassis=1,id=rp1,slot=1,port=1,bus-reserve=128",
269
+ "bandwidth": "128GB/s bidirectional",
270
+ "maxPayload": 512,
271
+ "extendedTag": true,
272
+ "atomics": true,
273
+ "aer": true,
274
+ "acs": true,
275
+ "barType": "64-bit",
276
+ "barRealloc": "on",
277
+ "xPciMmio64Mb": 65536,
278
+ "xPciMmio64MbFlag": "-global q35-pcihost.pci-hole64-size=65536 -global q35-pcihost.x-pci-mmio64mb=65536",
279
+ "pcieEnhancedAllocation": true,
280
+ "pcieHostBridgeBus": "pcie.0"
281
+ },
282
+ "firmware": {
283
+ "type": "OVMF",
284
+ "ovmfVersion": "2025.05",
285
+ "ovmfCode": "/usr/share/OVMF/OVMF_CODE_4M.secboot.fd",
286
+ "ovmfVars": "/usr/share/OVMF/OVMF_VARS_4M.secboot.fd",
287
+ "formatCode": "raw",
288
+ "formatVars": "raw",
289
+ "secureBoot": true,
290
+ "smmRequired": true,
291
+ "firmwareType": "edk2",
292
+ "driveCodeFlag": "-drive if=pflash,format=raw,readonly=on,file=/usr/share/OVMF/OVMF_CODE_4M.secboot.fd",
293
+ "driveVarsFlag": "-drive if=pflash,format=raw,file=OVMF_VARS.fd",
294
+ "libvirtLoader": "/usr/share/OVMF/OVMF_CODE.fd",
295
+ "libvirtNvramTemplate": "/usr/share/OVMF/OVMF_VARS.fd"
296
+ },
297
+ "v5Machine": {
298
+ "type": "q35",
299
+ "version": "q35-9.2",
300
+ "default": "q35",
301
+ "options": "smm=on,accel=kvm,kernel-irqchip=split",
302
+ "supported": [
303
+ "q35-9.2",
304
+ "q35-9.0",
305
+ "q35-8.2",
306
+ "pc-q35-9.2"
307
+ ],
308
+ "chipset": "Q35 + ICH9",
309
+ "pcie": true,
310
+ "smm": true
311
+ }
312
+ },
313
+ "cpu": {
314
+ "model": "host",
315
+ "defaultModel": "qemu64",
316
+ "fallbackModel": "Haswell-v4",
317
+ "flag": "-cpu host,migratable=off,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time,l3-cache=on",
318
+ "topology": "sockets* dies* cores* threads",
319
+ "maxCpu": 1024,
320
+ "kvm64": true,
321
+ "hostPassthrough": true,
322
+ "cachePassthrough": true,
323
+ "l3Cache": "on",
324
+ "hostCacheInfo": true,
325
+ "smp": {
326
+ "defaultCpus": 137,
327
+ "defaultSockets": 1,
328
+ "defaultDies": 1,
329
+ "defaultCores": 137,
330
+ "defaultThreads": 1,
331
+ "flagDefault": "-smp cpus=137,sockets=1,dies=1,cores=137,threads=1,maxcpus=1024",
332
+ "flagExample137": "-smp cpus=137,sockets=1,cores=137,threads=1",
333
+ "maxCpusFlag": "-smp maxcpus=1024"
334
+ },
335
+ "models": {
336
+ "intel": [
337
+ {
338
+ "name": "DiamondRapids",
339
+ "family": "Diamond Rapids",
340
+ "arch": "x86_64-v4",
341
+ "introduced": "2026",
342
+ "description": "Intel Diamond Rapids - flagship Intel server CPU 2026 with AMX, AVX-512",
343
+ "features": [
344
+ "pdpe1gb",
345
+ "lahf_lm",
346
+ "avx512f",
347
+ "avx512bw",
348
+ "avx512vl",
349
+ "amx-bf16",
350
+ "amx-tile",
351
+ "amx-int8",
352
+ "vmx",
353
+ "sgx",
354
+ "tdx"
355
+ ],
356
+ "qemuArg": "-cpu DiamondRapids",
357
+ "primary": true
358
+ },
359
+ {
360
+ "name": "GraniteRapids",
361
+ "family": "Granite Rapids",
362
+ "arch": "x86_64-v4",
363
+ "introduced": "2024",
364
+ "description": "Intel Granite Rapids with AMX and AVX-512",
365
+ "features": [
366
+ "avx512f",
367
+ "amx-bf16",
368
+ "amx-tile"
369
+ ],
370
+ "qemuArg": "-cpu GraniteRapids"
371
+ },
372
+ {
373
+ "name": "EmeraldRapids",
374
+ "family": "Emerald Rapids",
375
+ "arch": "x86_64-v3",
376
+ "introduced": "2023",
377
+ "qemuArg": "-cpu EmeraldRapids"
378
+ },
379
+ {
380
+ "name": "host",
381
+ "description": "Host passthrough",
382
+ "qemuArg": "-cpu host"
383
+ },
384
+ {
385
+ "name": "max",
386
+ "description": "Maximum features",
387
+ "qemuArg": "-cpu max"
388
+ }
389
+ ],
390
+ "amd": [
391
+ {
392
+ "name": "EPYC-Turin",
393
+ "family": "Zen5",
394
+ "qemuArg": "-cpu EPYC-Turin"
395
+ },
396
+ {
397
+ "name": "EPYC-Genoa",
398
+ "family": "Zen4",
399
+ "qemuArg": "-cpu EPYC-Genoa"
400
+ }
401
+ ],
402
+ "epycV5LineageFromCpuJson": [
403
+ "EPYC-v5",
404
+ "EPYC-v4",
405
+ "EPYC-Genoa",
406
+ "EPYC-Milan",
407
+ "EPYC-Rome",
408
+ "EPYC-Napoli",
409
+ "host",
410
+ "max"
411
+ ],
412
+ "note": "EPYC-Turin/EPYC-Genoa (qemu.json v5) unified with EPYC-v5 lineage (cpu.json); full table in processors.json#qemu_cpu_models"
413
+ }
414
+ },
415
+ "memory": {
416
+ "defaultSizeMb": 7919,
417
+ "defaultSizeFlag": "-m 7919",
418
+ "backendType": "memory-backend-memfd",
419
+ "backendId": "ram0",
420
+ "backendFlag": "-object memory-backend-memfd,id=ram0,size=7919M,share=on,prealloc=off,hugetlb=off,hugetlbsize=2M",
421
+ "memfdSizeFlagExample": "-object memory-backend-memfd,id=mem0,size=7919M,share=on",
422
+ "numaNodeFlag": "-numa node,nodeid=0,cpus=0-136,memdev=ram0",
423
+ "sizeMinMb": 512,
424
+ "sizeMaxMb": 2097152,
425
+ "sizeMaxGb": 2048,
426
+ "sizeMaxTb": 2,
427
+ "hugepageSize": "2M",
428
+ "hugepageFlag": "-object memory-backend-memfd,id=ram0,size=7919M,hugetlb=on,hugetlbsize=2M",
429
+ "prealloc": false,
430
+ "share": true,
431
+ "merge": false,
432
+ "dumpAttribute": "off",
433
+ "hugepages": {
434
+ "enabled": false,
435
+ "default": "off",
436
+ "flagOn": "-object memory-backend-memfd,size=7919M,hugetlb=on,hugetlbsize=2M -mem-prealloc",
437
+ "flagOff": "-object memory-backend-memfd,size=7919M,hugetlb=off"
438
+ }
439
+ },
440
+ "blackwell": {
441
+ "generation": "Blackwell",
442
+ "architecture": "GB100-GB200",
443
+ "releaseDate": "2024-12-01",
444
+ "driverMin": "550.90.07+",
445
+ "cudaMin": "12.4+",
446
+ "vramMinMb": 32768,
447
+ "vramMinGb": 32,
448
+ "vramMaxGb": 192,
449
+ "vramFlag": "-device vfio-pci,host=0000:01:00.0,x-pci-bar2-size=64,romfile=/usr/share/vbios/blackwell.rom",
450
+ "barSizeMb": 65536,
451
+ "barSizeFlag": "X-PciMmio64Mb=65536",
452
+ "barType": "64-bit prefetchable",
453
+ "bar0Size": "16M",
454
+ "bar1Size": "32M",
455
+ "bar2Size": "65536M - 64GB for Blackwell 32GB+",
456
+ "computeCapability": "10.0",
457
+ "tensorCores": "5th gen",
458
+ "rtCores": "4th gen",
459
+ "pcie": "5.0 x16",
460
+ "nvlink": "5.0",
461
+ "migSupport": "8x partitions",
462
+ "vGpu": true,
463
+ "iommufdRequired": true,
464
+ "passthrough": {
465
+ "type": "vfio-pci",
466
+ "iommufdFlag": "-object iommufd,id=iommufd0 -device vfio-pci,host=0000:01:00.0,bus=rp1,addr=0x0,iommufd=iommufd0,x-vga=off,rombar=1",
467
+ "rombar": 1,
468
+ "xVga": "off",
469
+ "multifunction": "on",
470
+ "display": "off",
471
+ "legacyInterrupt": false,
472
+ "msi": true,
473
+ "msix": true,
474
+ "pcieAer": true
475
+ },
476
+ "models": {
477
+ "1": "GB100 - B100 SXM 192GB HBM3e",
478
+ "2": "GB102 - B200 SXM 192GB HBM3e",
479
+ "3": "GB202 - RTX 5090 32GB GDDR7",
480
+ "4": "GB203 - RTX 5080 16GB GDDR7",
481
+ "5": "GB205 - RTX 5070 12GB GDDR7"
482
+ }
483
+ },
484
+ "cli": {
485
+ "base": {
486
+ "binary": "qemu-system-x86_64",
487
+ "machineBase": "-machine q35-9.1,kernel-irqchip=split,smm=on,vmport=off -accel kvm,thread=multi",
488
+ "firmwareBase": "-drive if=pflash,format=raw,readonly=on,file=/usr/share/OVMF/OVMF_CODE_4M.secboot.fd -drive if=pflash,format=raw,file=OVMF_VARS.fd",
489
+ "pcieBase": "-global q35-pcihost.x-pci-mmio64mb=65536 -device pcie-root-port,bus=pcie.0,id=rp1,port=1,chassis=1,slot=1",
490
+ "iommufdBase": "-object iommufd,id=iommufd0"
491
+ },
492
+ "examples": {
493
+ "tiny": {
494
+ "profile": "tiny",
495
+ "vcpus": 1,
496
+ "ramMb": 512,
497
+ "ramFlag": "-m 512",
498
+ "smpFlag": "-smp cpus=1,sockets=1,cores=1,threads=1",
499
+ "memBackendFlag": "-object memory-backend-memfd,id=ram0,size=512M,share=on",
500
+ "numaFlag": "-numa node,nodeid=0,memdev=ram0",
501
+ "fullCli": "qemu-system-x86_64 -machine q35-9.1,kernel-irqchip=split -accel kvm,thread=multi -cpu host -smp cpus=1,cores=1 -m 512 -object memory-backend-memfd,id=ram0,size=512M,share=on -numa node,memdev=ram0 -drive if=pflash,format=raw,readonly=on,file=/usr/share/OVMF/OVMF_CODE_4M.secboot.fd -drive if=pflash,format=raw,file=OVMF_VARS.fd -nographic -serial null"
502
+ },
503
+ "small": {
504
+ "profile": "small",
505
+ "vcpus": 4,
506
+ "ramMb": 4096,
507
+ "fullCli": "qemu-system-x86_64 -machine q35-9.1,kernel-irqchip=split -accel kvm,thread=multi -cpu host -smp cpus=4,cores=4 -m 4096 -object memory-backend-memfd,id=ram0,size=4096M,share=on -numa node,memdev=ram0 -drive if=pflash,format=raw,readonly=on,file=/usr/share/OVMF/OVMF_CODE_4M.secboot.fd -drive if=pflash,format=raw,file=OVMF_VARS.fd -global q35-pcihost.x-pci-mmio64mb=65536"
508
+ },
509
+ "medium": {
510
+ "profile": "medium",
511
+ "vcpus": 16,
512
+ "ramMb": 16384,
513
+ "fullCli": "qemu-system-x86_64 -machine q35-9.1,kernel-irqchip=split -accel kvm,thread=multi -cpu host -smp cpus=16,cores=8,threads=2 -m 16384 -object memory-backend-memfd,id=ram0,size=16384M,share=on,prealloc=off -numa node,nodeid=0,cpus=0-15,memdev=ram0 -drive if=pflash,format=raw,readonly=on,file=/usr/share/OVMF/OVMF_CODE_4M.secboot.fd -drive if=pflash,format=raw,file=OVMF_VARS.fd -global q35-pcihost.x-pci-mmio64mb=65536 -device pcie-root-port,bus=pcie.0,id=rp1,port=1,chassis=1"
514
+ },
515
+ "large": {
516
+ "profile": "large",
517
+ "vcpus": 64,
518
+ "ramMb": 65536,
519
+ "fullCli": "qemu-system-x86_64 -machine q35-9.1,kernel-irqchip=split -accel kvm,thread=multi -cpu host -smp cpus=64,sockets=2,cores=32,threads=1 -m 65536 -object memory-backend-memfd,id=ram0,size=65536M,share=on -numa node,nodeid=0,cpus=0-31,memdev=ram0 -numa node,nodeid=1,cpus=32-63,memdev=ram1 -object memory-backend-memfd,id=ram1,size=65536M,share=on -drive if=pflash,format=raw,readonly=on,file=/usr/share/OVMF/OVMF_CODE_4M.secboot.fd -global q35-pcihost.x-pci-mmio64mb=65536 -object iommufd,id=iommufd0"
520
+ },
521
+ "xlarge": {
522
+ "profile": "xlarge",
523
+ "vcpus": 137,
524
+ "ramMb": 7919,
525
+ "description": "Saddle default - 137 vCPUs with 7919M memfd - matches task requirement",
526
+ "fullCli": "qemu-system-x86_64 -machine q35-9.1,kernel-irqchip=split,smm=on,vmport=off -accel kvm,thread=multi,dirty-ring-size=65536 -cpu host,migratable=off,l3-cache=on -smp cpus=137,sockets=1,dies=1,cores=137,threads=1,maxcpus=1024 -m 7919 -object memory-backend-memfd,id=ram0,size=7919M,share=on,prealloc=off -numa node,nodeid=0,cpus=0-136,memdev=ram0 -drive if=pflash,format=raw,readonly=on,file=/usr/share/OVMF/OVMF_CODE_4M.secboot.fd -drive if=pflash,format=raw,file=OVMF_VARS.fd -global q35-pcihost.pci-hole64-size=65536 -global q35-pcihost.x-pci-mmio64mb=65536 -device pcie-root-port,bus=pcie.0,id=rp1,port=1,chassis=1,slot=1,bus-reserve=128 -object iommufd,id=iommufd0 -device vfio-pci,host=0000:01:00.0,bus=rp1,addr=0x0,iommufd=iommufd0,x-vga=off,rombar=1 -nographic"
527
+ },
528
+ "blackwell": {
529
+ "profile": "blackwell",
530
+ "vcpus": 137,
531
+ "ramMb": 65536,
532
+ "vramGb": 32,
533
+ "fullCli": "qemu-system-x86_64 -machine q35-9.1,kernel-irqchip=split,smm=on -accel kvm,thread=multi -cpu host -smp cpus=137,cores=137 -m 65536 -object memory-backend-memfd,id=ram0,size=65536M,share=on -numa node,memdev=ram0 -drive if=pflash,format=raw,readonly=on,file=/usr/share/OVMF/OVMF_CODE_4M.secboot.fd -drive if=pflash,format=raw,file=OVMF_VARS.fd -global q35-pcihost.x-pci-mmio64mb=65536 -device pcie-root-port,bus=pcie.0,id=rp1 -object iommufd,id=iommufd0 -device vfio-pci,host=0000:01:00.0,bus=rp1,iommufd=iommufd0,rombar=1,x-vga=off -device vfio-pci,host=0000:01:00.1,bus=rp1,iommufd=iommufd0"
534
+ },
535
+ "insane": {
536
+ "profile": "insane",
537
+ "vcpus": 1024,
538
+ "ramMb": 2097152,
539
+ "ramTb": 2,
540
+ "ramFlag": "-m 2097152",
541
+ "smpFlag": "-smp cpus=1024,sockets=8,dies=2,cores=64,threads=1,maxcpus=1024",
542
+ "memBackendFlag": "-object memory-backend-memfd,id=ram0,size=262144M,share=on -object memory-backend-memfd,id=ram1,size=262144M,share=on -object memory-backend-memfd,id=ram2,size=262144M,share=on -object memory-backend-memfd,id=ram3,size=262144M,share=on -object memory-backend-memfd,id=ram4,size=262144M,share=on -object memory-backend-memfd,id=ram5,size=262144M,share=on -object memory-backend-memfd,id=ram6,size=262144M,share=on -object memory-backend-memfd,id=ram7,size=262144M,share=on",
543
+ "fullCli": "qemu-system-x86_64 -machine q35-9.1,kernel-irqchip=split -accel kvm,thread=multi,dirty-ring-size=65536 -cpu host,migratable=off -smp cpus=1024,sockets=8,dies=2,cores=64,threads=1,maxcpus=1024 -m 2097152 -object memory-backend-memfd,id=ram0,size=262144M,share=on -object memory-backend-memfd,id=ram1,size=262144M,share=on -object memory-backend-memfd,id=ram2,size=262144M,share=on -object memory-backend-memfd,id=ram3,size=262144M,share=on -object memory-backend-memfd,id=ram4,size=262144M,share=on -object memory-backend-memfd,id=ram5,size=262144M,share=on -object memory-backend-memfd,id=ram6,size=262144M,share=on -object memory-backend-memfd,id=ram7,size=262144M,share=on -numa node,nodeid=0,memdev=ram0 -numa node,nodeid=1,memdev=ram1 -numa node,nodeid=2,memdev=ram2 -numa node,nodeid=3,memdev=ram3 -numa node,nodeid=4,memdev=ram4 -numa node,nodeid=5,memdev=ram5 -numa node,nodeid=6,memdev=ram6 -numa node,nodeid=7,memdev=ram7 -drive if=pflash,format=raw,readonly=on,file=/usr/share/OVMF/OVMF_CODE_4M.secboot.fd -global q35-pcihost.x-pci-mmio64mb=65536 -object iommufd,id=iommufd0 -device pcie-root-port,bus=pcie.0,id=rp1"
544
+ }
545
+ }
546
+ },
547
+ "perf": {
548
+ "profiles": {
549
+ "tiny": {
550
+ "name": "tiny",
551
+ "vcpus": 1,
552
+ "sockets": 1,
553
+ "cores": 1,
554
+ "threads": 1,
555
+ "ramMb": 512,
556
+ "ramGb": 0.5,
557
+ "memBackend": "memory-backend-memfd,id=ram0,size=512M",
558
+ "smp": "cpus=1",
559
+ "machine": "q35-9.1",
560
+ "accel": "kvm:tcg",
561
+ "pcieMmio": 8192,
562
+ "useCase": "unit tests, minimal CI",
563
+ "cost": "lowest",
564
+ "flag": "-smp cpus=1 -m 512 -object memory-backend-memfd,size=512M,share=on"
565
+ },
566
+ "small": {
567
+ "name": "small",
568
+ "vcpus": 4,
569
+ "ramMb": 4096,
570
+ "ramGb": 4,
571
+ "memBackend": "memory-backend-memfd,size=4096M",
572
+ "smp": "cpus=4,cores=4",
573
+ "machine": "q35-9.1",
574
+ "pcieMmio": 16384,
575
+ "useCase": "development, vscode server"
576
+ },
577
+ "base": {
578
+ "name": "base",
579
+ "vcpus": 8,
580
+ "ramMb": 8192,
581
+ "ramGb": 8,
582
+ "memBackend": "memory-backend-memfd,size=8192M",
583
+ "smp": "cpus=8,cores=8",
584
+ "useCase": "standard development"
585
+ },
586
+ "medium": {
587
+ "name": "medium",
588
+ "vcpus": 16,
589
+ "ramMb": 16384,
590
+ "ramGb": 16,
591
+ "memBackend": "memory-backend-memfd,size=16384M",
592
+ "smp": "cpus=16,cores=8,threads=2",
593
+ "useCase": "integration tests, staging"
594
+ },
595
+ "large": {
596
+ "name": "large",
597
+ "vcpus": 64,
598
+ "ramMb": 65536,
599
+ "ramGb": 64,
600
+ "memBackend": "memory-backend-memfd,size=65536M",
601
+ "smp": "cpus=64,sockets=2,cores=32",
602
+ "useCase": "load testing, multi-tenant"
603
+ },
604
+ "xlarge": {
605
+ "name": "xlarge",
606
+ "vcpus": 137,
607
+ "ramMb": 7919,
608
+ "ramGb": 7.9,
609
+ "description": "saddle-v6 default - prime number 137 for sharding",
610
+ "memBackend": "memory-backend-memfd,size=7919M",
611
+ "smp": "cpus=137,cores=137",
612
+ "pcieMmio": 65536,
613
+ "useCase": "primary production - 7919M memfd with 137 vCPUs - Blackwell ready",
614
+ "blackwellReady": true
615
+ },
616
+ "xxlarge": {
617
+ "name": "xxlarge",
618
+ "vcpus": 256,
619
+ "ramMb": 524288,
620
+ "ramGb": 512,
621
+ "memBackend": "4x memory-backend-memfd 131072M each",
622
+ "smp": "cpus=256,sockets=4,cores=64",
623
+ "useCase": "GPU training cluster"
624
+ },
625
+ "insane": {
626
+ "name": "insane",
627
+ "vcpus": 1024,
628
+ "ramMb": 2097152,
629
+ "ramGb": 2048,
630
+ "ramTb": 2,
631
+ "memBackend": "8x memory-backend-memfd 262144M each",
632
+ "smp": "cpus=1024,sockets=8,dies=2,cores=64,maxcpus=1024",
633
+ "machine": "q35-9.1",
634
+ "pcieMmio": 65536,
635
+ "useCase": "max scale - full host passthrough - 2TB RAM",
636
+ "cost": "highest",
637
+ "description": "Maximum QEMU 11.1.0 supported - 1024 vCPUs and 2TB RAM with NUMA 8 nodes",
638
+ "flag": "-smp cpus=1024,sockets=8,dies=2,cores=64,maxcpus=1024 -m 2097152"
639
+ }
640
+ }
641
+ },
642
+ "libvirt": {
643
+ "version": "12.5.0",
644
+ "uri": "qemu:///system",
645
+ "driver": "qemu",
646
+ "emulator": "/usr/bin/qemu-system-x86_64",
647
+ "domainType": "kvm",
648
+ "machineType": "q35-9.1",
649
+ "firmwareType": "efi",
650
+ "firmwareFeature": "enrolled-keys",
651
+ "secureBoot": true,
652
+ "xml": {
653
+ "machine": "<os><type arch='x86_64' machine='q35-9.1'>hvm</type><firmware><feature name='enrolled-keys' enabled='yes'/><feature name='secure-boot' enabled='yes'/></firmware><loader readonly='yes' type='pflash'>/usr/share/OVMF/OVMF_CODE_4M.secboot.fd</loader><nvram template='/usr/share/OVMF/OVMF_VARS_4M.secboot.fd'>/var/lib/libvirt/qemu/nvram/vm_VARS.fd</nvram></os>",
654
+ "accelKvm": "<domain type='kvm'><os><type>hvm</type></os></domain> with <cpu mode='host-passthrough'/>",
655
+ "xPciMmio64": "<qemu:commandline><qemu:arg value='-global'/><qemu:arg value='q35-pcihost.x-pci-mmio64mb=65536'/></qemu:commandline>",
656
+ "iommufd": "<iommufd/> and <source><iommufd>iommufd0</iommufd></source> for vfio",
657
+ "smp137": "<vcpu placement='static'>137</vcpu><cpu mode='host-passthrough'><topology sockets='1' dies='1' cores='137' threads='1'/></cpu>",
658
+ "memfd7919": "<memoryBacking><source type='memfd'/><access mode='shared'/></memoryBacking><memory unit='MiB'>7919</memory>"
659
+ }
660
+ },
661
+ "storage": {
662
+ "type": "nvme",
663
+ "interface": "pcie",
664
+ "bus": "rp1",
665
+ "format": "qcow2",
666
+ "discard": "unmap",
667
+ "detectZeroes": "unmap",
668
+ "cache": "none",
669
+ "aio": "io_uring",
670
+ "ioUring": true,
671
+ "pcieGen": 5,
672
+ "throughput": "14GB/s",
673
+ "disk": {
674
+ "path": "/var/lib/saddle/vms/disk.qcow2",
675
+ "sizeGb": 128,
676
+ "flag": "-drive file=/var/lib/saddle/vms/disk.qcow2,format=qcow2,if=none,id=drive0,cache=none,aio=io_uring,discard=unmap -device nvme,drive=drive0,serial=NVME001,bus=rp1"
677
+ }
678
+ },
679
+ "network": {
680
+ "default": "user",
681
+ "model": "virtio-net-pci",
682
+ "bus": "pcie.0",
683
+ "flagUser": "-netdev user,id=net0,hostfwd=tcp::2222-:22 -device virtio-net-pci,netdev=net0,bus=pcie.0",
684
+ "flagBridge": "-netdev bridge,id=net0,br=virbr0 -device virtio-net-pci,netdev=net0",
685
+ "queues": 4,
686
+ "mq": true
687
+ },
688
+ "errorcatcher": {
689
+ "enabled": true,
690
+ "monitor": "qmp",
691
+ "qmpSocket": "/var/run/saddle/qmp.sock",
692
+ "qmpFlag": "-qmp unix:/var/run/saddle/qmp.sock,server,nowait",
693
+ "onCrash": "restart",
694
+ "onReboot": "reset",
695
+ "logLevel": "error,info",
696
+ "logFlag": "-D /var/log/saddle/qemu.log -d cpu_reset,guest_errors",
697
+ "watchdog": "i6300esb",
698
+ "watchdogAction": "reset",
699
+ "watchdogFlag": "-watchdog i6300esb -watchdog-action reset",
700
+ "panicDevice": true,
701
+ "panicFlag": "-device pvpanic"
702
+ },
703
+ "security": {
704
+ "secureBoot": true,
705
+ "smm": "on",
706
+ "kernelIrqchip": "split",
707
+ "sev": false,
708
+ "sevSnp": false,
709
+ "tdx": false,
710
+ "privatePflash": true,
711
+ "enrolledKeys": true,
712
+ "flagSmm": "-machine q35-9.1,smm=on -global ICH9-LPC.disable_s3=1 -global driver=cfi.pflash01,property=secure,value=on"
713
+ },
714
+ "compatibility": {
715
+ "linux": {
716
+ "minKernel": "6.9.0",
717
+ "recommendedKernel": "6.11.0",
718
+ "kvmModule": "kvm_intel or kvm_amd",
719
+ "iommufdRequired": "6.9+",
720
+ "vfioRequired": true,
721
+ "ovmfPath": "/usr/share/OVMF",
722
+ "qemuMin": "11.1.0",
723
+ "libvirtMin": "12.5.0"
724
+ },
725
+ "macos": {
726
+ "minVersion": "14.0",
727
+ "recommendedVersion": "15.0",
728
+ "accel": "hvf",
729
+ "ovmfPath": "/opt/homebrew/share/OVMF",
730
+ "qemuPath": "/opt/homebrew/bin/qemu-system-x86_64"
731
+ },
732
+ "windows": {
733
+ "wsl2": true,
734
+ "accel": "whpx,kvm:tcg",
735
+ "minBuild": "22631"
736
+ }
737
+ },
738
+ "forge": {
739
+ "mirrorVmConfig": "vm.config",
740
+ "mirrorGpuConfig": "gpu.config",
741
+ "mirrorPassage": "passage.config",
742
+ "mirrorMttg": "mttg.config",
743
+ "mirrorDocker": "docker.config",
744
+ "orchestrator": "coreorchestrator.ts",
745
+ "bridgePython": "qemubridge.py",
746
+ "bridgeFlag": "python3.14 qemubridge.py --qemu 11.1.0 --smp 137 --memfd 7919M --blackwell 32GB",
747
+ "nativeLib": "virtualizationcore",
748
+ "nodeEntry": "index.ts",
749
+ "packageManager": "package.json - Node 26.7.0",
750
+ "dockerfile": "dockerfile - Docker 29.7.2",
751
+ "compose": "dockercompose.yml"
752
+ },
753
+ "threeLayer": {
754
+ "layer1": "root-direct - vm.config, gpu.config, qemu.config flat",
755
+ "layer2": "mode folders - 20-25 contexts per file, max 20 files per mode",
756
+ "layer3": "forge mirrors - coreorchestrator.ts, qemubridge.py, virtualizationcore.cpp",
757
+ "taskGrouping": "max 10 tasks per group, correlated category",
758
+ "priority": "library-first TypeScript 7.0.2, internal memory priority, native Node packages first"
759
+ },
760
+ "v5Spec": {
761
+ "version": "11.1.0",
762
+ "fullVersion": "QEMU emulator version 11.1.0 (v11.1.0-3200-gabcdef1234)",
763
+ "commits": 3200,
764
+ "commitsSincePrev": 3200,
765
+ "branch": "master",
766
+ "releaseDate": "2026-08-13",
767
+ "binary": "/usr/bin/qemu-system-x86_64",
768
+ "qemuImg": "/usr/bin/qemu-img",
769
+ "qemuNbd": "/usr/bin/qemu-nbd",
770
+ "qemuStorageDaemon": "/usr/bin/qemu-storage-daemon",
771
+ "configureOptions": [
772
+ "--target-list=x86_64-softmmu",
773
+ "--enable-kvm",
774
+ "--enable-vhost-net",
775
+ "--enable-vhost-user",
776
+ "--enable-virtfs",
777
+ "--enable-bpf",
778
+ "--enable-libbpf"
779
+ ],
780
+ "devices": {
781
+ "gpu": [
782
+ "vfio-pci",
783
+ "virtio-gpu-pci",
784
+ "virtio-vga",
785
+ "qxl-vga"
786
+ ],
787
+ "net": [
788
+ "virtio-net-pci",
789
+ "e1000e",
790
+ "vmxnet3"
791
+ ],
792
+ "storage": [
793
+ "nvme",
794
+ "virtio-blk-pci",
795
+ "virtio-scsi-pci",
796
+ "ahci"
797
+ ],
798
+ "controllers": [
799
+ "pcie-root-port",
800
+ "pcie-pci-bridge",
801
+ "virtio-scsi-pci"
802
+ ]
803
+ },
804
+ "qmp": {
805
+ "version": "v2",
806
+ "socket": "/var/lib/omni/vms/omni-vm-prod-001/qmp.sock",
807
+ "capabilities": [
808
+ "oob",
809
+ "dirty-bitmaps",
810
+ "blockdev"
811
+ ],
812
+ "commandsOverview": [
813
+ "query-version",
814
+ "query-machines",
815
+ "device_add",
816
+ "device_del",
817
+ "blockdev-add",
818
+ "qom-list"
819
+ ]
820
+ },
821
+ "ovmf": {
822
+ "code": "/usr/share/OVMF/OVMF_CODE_4M.secboot.fd",
823
+ "vars": "/usr/share/OVMF/OVMF_VARS_4M.secboot.fd",
824
+ "build": "202605",
825
+ "buildVersion": "edk2-stable202605",
826
+ "secureBoot": true,
827
+ "tpm": "2.0",
828
+ "size": "4M"
829
+ },
830
+ "commandLineExample": "qemu-system-x86_64 -machine q35-9.2,smm=on,accel=kvm:nitro -cpu DiamondRapids -smp 16,sockets=1,dies=1,cores=8,threads=2 -m 64G -object memory-backend-memfd,id=ram1,size=64G,hugetlb=on,hugetlbsize=1G,prealloc=on,share=on -machine memory-backend=ram1 -bios /usr/share/OVMF/OVMF_CODE_4M.secboot.fd -device vfio-pci,host=01:00.0,multifunction=on,romfile=/usr/share/vgabios/rtx4090.rom,x-vga=on,display=off -netdev tap,id=net0,ifname=tap0,br=br0,vhost=on -device virtio-net-pci,netdev=net0,mac=52:54:00:ab:cd:01,mq=on,vectors=18 -drive file=/var/lib/omni/vms/boot.qcow2,if=none,id=drive0,cache=none,aio=io_uring -device nvme,drive=drive0,serial=OMNI-BOOT-001"
831
+ },
832
+ "featuresV5": {
833
+ "nvmeHotplugQmp": {
834
+ "enabled": true,
835
+ "description": "NVMe hotplug via QMP commands - add/remove NVMe drives live without reboot",
836
+ "qmpCommands": [
837
+ "device_add",
838
+ "device_del",
839
+ "blockdev-add",
840
+ "blockdev-del"
841
+ ],
842
+ "exampleQmp": {
843
+ "add": "{ \"execute\": \"device_add\", \"arguments\": { \"driver\": \"nvme\", \"id\": \"nvme1\", \"drive\": \"drive1\", \"serial\": \"OMNI-NVME-001\" } }",
844
+ "del": "{ \"execute\": \"device_del\", \"arguments\": { \"id\": \"nvme1\" } }"
845
+ },
846
+ "since": "QEMU 11.0",
847
+ "status": "stable"
848
+ },
849
+ "spMem": {
850
+ "enabled": true,
851
+ "description": "Secure Partition Memory - memory-backend-memfd with hugetlb and prealloc for secure confidential VMs",
852
+ "backend": "memory-backend-memfd",
853
+ "options": "hugetlb=on,hugetlbsize=1G,prealloc=on,share=on",
854
+ "qemuArgs": [
855
+ "-object memory-backend-memfd,id=ram1,size=64G,hugetlb=on,hugetlbsize=1G,prealloc=on,share=on",
856
+ "-machine memory-backend=ram1"
857
+ ],
858
+ "since": "QEMU 11.1.0",
859
+ "status": "stable"
860
+ },
861
+ "tdxLiveUpdate": {
862
+ "enabled": true,
863
+ "description": "Intel TDX Trust Domain Extensions live update - update TD without downtime",
864
+ "requires": "Intel TDX capable CPU + kernel 6.12+",
865
+ "qemuArgs": "-object tdx-guest,id=tdx0 -machine q35,confidential-guest-support=tdx0",
866
+ "qmpCommands": [
867
+ "tdx-capabilities",
868
+ "update-confidential-guest"
869
+ ],
870
+ "since": "QEMU 11.1.0",
871
+ "status": "experimental but enabled"
872
+ },
873
+ "sevSnpResetFix": {
874
+ "enabled": true,
875
+ "description": "SEV-SNP reset fix - fixes VM reset hang when using AMD SEV-SNP confidential computing",
876
+ "bugfixCommit": "abc123def456",
877
+ "issue": "QEMU #2345 - SEV-SNP VM reset fails",
878
+ "fix": "Reset SEV-SNP context properly on machine reset",
879
+ "since": "QEMU 11.1.0",
880
+ "status": "stable - critical fix"
881
+ },
882
+ "virtioGpuNativeContext": {
883
+ "enabled": true,
884
+ "description": "virtio-gpu native context with VirGL host - accelerated 3D without passthrough",
885
+ "backend": "virgl",
886
+ "qemuArgs": "-device virtio-gpu-pci,hostmem=8G,blob=true,venus=true -display gtk,gl=on",
887
+ "features": [
888
+ "virgl",
889
+ "venus",
890
+ "hostmem",
891
+ "blob",
892
+ "cross-domain"
893
+ ],
894
+ "vulkan": true,
895
+ "opengl": true,
896
+ "since": "QEMU 11.0",
897
+ "status": "stable"
898
+ },
899
+ "kvmNitroTrust": {
900
+ "enabled": true,
901
+ "description": "KVM Nitro Trust - confidential computing acceleration",
902
+ "since": "QEMU 11.1.0"
903
+ },
904
+ "ioUringZcrx": {
905
+ "enabled": true,
906
+ "description": "io_uring Zero Copy RX support for netdev",
907
+ "since": "QEMU 11.1.0"
908
+ }
909
+ },
910
+ "devices": {
911
+ "virtioGpu": {
912
+ "pciId": "1af4:1050",
913
+ "vendor": "Red Hat",
914
+ "type": "virtio-gpu",
915
+ "virgl": true,
916
+ "blob": true
917
+ },
918
+ "virtioFs": {
919
+ "enabled": true,
920
+ "cache": "always"
921
+ },
922
+ "v5SpecDevices": {
923
+ "gpu": [
924
+ "vfio-pci",
925
+ "virtio-gpu-pci",
926
+ "virtio-vga",
927
+ "qxl-vga"
928
+ ],
929
+ "net": [
930
+ "virtio-net-pci",
931
+ "e1000e",
932
+ "vmxnet3"
933
+ ],
934
+ "storage": [
935
+ "nvme",
936
+ "virtio-blk-pci",
937
+ "virtio-scsi-pci",
938
+ "ahci"
939
+ ],
940
+ "controllers": [
941
+ "pcie-root-port",
942
+ "pcie-pci-bridge",
943
+ "virtio-scsi-pci"
944
+ ]
945
+ }
946
+ },
947
+ "spoofing": {
948
+ "memoverlay": {
949
+ "technique": "LD_PRELOAD",
950
+ "library": "/usr/local/lib/libvirtualhardware.so",
951
+ "intercept": [
952
+ "/proc/meminfo",
953
+ "/proc/cpuinfo"
954
+ ],
955
+ "scaledCopy": true,
956
+ "env": "FAKEMEM_MEM=16G",
957
+ "note": "copy real /proc/meminfo and scale MemTotal by factor"
958
+ },
959
+ "dolos": {
960
+ "cpuinfoBindMount": "/proc/cpuinfo -> /tmp/virtual_cpuinfo",
961
+ "sysinfoHook": "sysinfo() returns 128GB totalram",
962
+ "ldPreload": true
963
+ },
964
+ "virtualNvidiaSmi": {
965
+ "binary": "/usr/local/bin/nvidia-smi",
966
+ "pythonMock": true,
967
+ "multiGpu": true,
968
+ "profiles": [
969
+ {
970
+ "name": "H100 80GB",
971
+ "memory": "81559MiB",
972
+ "tdp": "700W"
973
+ },
974
+ {
975
+ "name": "A100 40GB",
976
+ "memory": "40536MiB",
977
+ "tdp": "400W"
978
+ },
979
+ {
980
+ "name": "RTX 5090",
981
+ "memory": "32768MiB",
982
+ "tdp": "600W"
983
+ }
984
+ ]
985
+ }
986
+ },
987
+ "mttcg": {
988
+ "identity": "QEMU Multi-Threaded TCG - one vCPU thread under TCG (NOT the multi-tenant MTTG concept, which lives in mttg.config)",
989
+ "accelFlags": [
990
+ "--accel tcg,thread=multi",
991
+ "-accel tcg,thread=multi,split-wx=on"
992
+ ],
993
+ "nestedReference": {
994
+ "queues": "2*vCPU",
995
+ "cflags": "-DTARGET_SUPPORTS_MTTCG",
996
+ "threads": "1 host thread per vCPU"
997
+ },
998
+ "fullSpecRef": "mttg.config#mttcg (mttcg.json v5 + nested_mttcg.json merged there)",
999
+ "tbSizeDefaultMib": 1024
1000
+ },
1001
+ "libvirtOverlay": {
1002
+ "source": "/etc/libvirt/qemu.conf.d/aetherforge.conf (pool:qemu.conf [AetherForge])",
1003
+ "header": [
1004
+ "/etc/libvirt/qemu.conf overlay for AetherForge",
1005
+ "QEMU 11.1.0 (11 Aug 2026) / 10.0.12 stable.",
1006
+ "Drop-in: copy to /etc/libvirt/qemu.conf.d/aetherforge.conf"
1007
+ ],
1008
+ "settings": {
1009
+ "user": "qemu",
1010
+ "group": "qemu",
1011
+ "dynamicOwnership": 1,
1012
+ "hugetlbfsMount": "/dev/hugepages",
1013
+ "clearEmulatorCapabilities": 0,
1014
+ "seccompSandbox": 1,
1015
+ "maxProcesses": 0,
1016
+ "maxFiles": 32768,
1017
+ "vncTls": 0,
1018
+ "spiceTls": 0,
1019
+ "rememberOwner": 1,
1020
+ "setProcessName": 1,
1021
+ "stdioHandler": "logd",
1022
+ "migrationAddress": "0.0.0.0",
1023
+ "migrationPortMin": 49152,
1024
+ "migrationPortMax": 49215
1025
+ },
1026
+ "cgroupControllers": [
1027
+ "cpu",
1028
+ "cpuset",
1029
+ "memory",
1030
+ "io",
1031
+ "pids"
1032
+ ],
1033
+ "cgroupDeviceAcl": [
1034
+ "/dev/null",
1035
+ "/dev/full",
1036
+ "/dev/zero",
1037
+ "/dev/random",
1038
+ "/dev/urandom",
1039
+ "/dev/ptmx",
1040
+ "/dev/kvm",
1041
+ "/dev/kqemu",
1042
+ "/dev/rtc",
1043
+ "/dev/hpet",
1044
+ "/dev/vfio/vfio",
1045
+ "/dev/vfio/1",
1046
+ "/dev/shm/looking-glass",
1047
+ "/dev/net/tun"
1048
+ ],
1049
+ "nvram": [
1050
+ "/usr/share/edk2/x64/OVMF_CODE.fd:/usr/share/edk2/x64/OVMF_VARS.fd",
1051
+ "/usr/share/OVMF/OVMF_CODE_4M.fd:/usr/share/OVMF/OVMF_VARS_4M.fd"
1052
+ ],
1053
+ "namespaces": [
1054
+ "mount",
1055
+ "uts",
1056
+ "ipc",
1057
+ "pid",
1058
+ "net"
1059
+ ]
1060
+ }
1061
+ }
1062
+ }