@wenathlan/saddle 1.8.17 → 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 (1005) hide show
  1. package/Dockerfile +1339 -0
  2. package/README.md +68 -22
  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 -122
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +1018 -122
  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.d.ts +129 -0
  69. package/dist/isolation.d.ts.map +1 -0
  70. package/dist/isolation.js +96 -0
  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/artifactavailability.md +6 -0
  148. package/docs/brancharchive-2026-08-18.md +18 -0
  149. package/docs/browser.md +7 -0
  150. package/docs/consolidation.md +70 -0
  151. package/docs/e2ugh-engine.md +528 -0
  152. package/{dist/examples/localjob.js → docs/example-localjob.ts} +3 -3
  153. package/{dist/examples/publicapi.js → docs/example-publicapi.ts} +2 -2
  154. package/docs/hardware.md +342 -0
  155. package/docs/optimization.md +126 -0
  156. package/docs/performance.md +499 -0
  157. package/docs/planning.1.8.18.md +94 -0
  158. package/docs/planning.1.8.19.md +49 -0
  159. package/docs/releasenotes-1.8.17.md +6 -0
  160. package/docs/releasenotes-1.8.18.md +32 -0
  161. package/docs/releasenotes-1.8.19.md +35 -0
  162. package/docs/research-1.8.18-isolation.md +43 -0
  163. package/docs/research-1.8.19-virtual-browser.md +27 -0
  164. package/docs/saddle.archive.1.8.17.tar.gz.gpg +0 -0
  165. package/docs/security.md +454 -0
  166. package/docs/todo-1.8.16.md +56 -1
  167. package/docs/todo-1.8.18.md +164 -0
  168. package/docs/todo-1.8.19.md +241 -0
  169. package/docs/viability.md +777 -0
  170. package/docs/virtualization.md +335 -0
  171. package/docs/web-duplicatecleanup.md +9 -0
  172. package/docs/web-ideas.md +106 -0
  173. package/docs/workflowimprovements-2026-08-19.md +70 -0
  174. package/gpumonitor.cpp +1543 -0
  175. package/gpus.json +2408 -0
  176. package/index.ts +1478 -0
  177. package/media.ts +1337 -0
  178. package/mttg.config +1549 -0
  179. package/orchestrator.ts +5462 -0
  180. package/package.json +304 -55
  181. package/passage.config +1331 -0
  182. package/performance.ts +1049 -0
  183. package/processors.json +2217 -0
  184. package/qemu.config +1062 -0
  185. package/qemubridge.py +1340 -0
  186. package/quantum.ts +2393 -0
  187. package/render.ts +1325 -0
  188. package/scheduler.ts +1600 -0
  189. package/security.ts +1449 -0
  190. package/tiers.ts +2871 -0
  191. package/tsconfig.json +29 -0
  192. package/virtualcpu.ts +1273 -0
  193. package/virtualgpu.ts +1181 -0
  194. package/virtualhardware.c +1011 -0
  195. package/virtualhardware.json +739 -0
  196. package/virtualization.ts +1628 -0
  197. package/virtualizationcore.cpp +4635 -0
  198. package/virtualmemory.ts +2303 -0
  199. package/vm.config.json +1910 -0
  200. package/{extension → web/extension}/manifest.json +1 -1
  201. package/web/readme.md +382 -0
  202. package/web/tsconfig.json +25 -0
  203. package/dist/adapters/forge.d.ts +0 -17
  204. package/dist/adapters/forge.d.ts.map +0 -1
  205. package/dist/adapters/forge.js +0 -19
  206. package/dist/adapters/forge.js.map +0 -1
  207. package/dist/adapters/forgejo.d.ts +0 -49
  208. package/dist/adapters/forgejo.d.ts.map +0 -1
  209. package/dist/adapters/forgejo.js +0 -8
  210. package/dist/adapters/forgejo.js.map +0 -1
  211. package/dist/adapters/github.d.ts +0 -12
  212. package/dist/adapters/github.d.ts.map +0 -1
  213. package/dist/adapters/github.js +0 -20
  214. package/dist/adapters/github.js.map +0 -1
  215. package/dist/adapters/gitlab.d.ts +0 -17
  216. package/dist/adapters/gitlab.d.ts.map +0 -1
  217. package/dist/adapters/gitlab.js +0 -10
  218. package/dist/adapters/gitlab.js.map +0 -1
  219. package/dist/adapters/huggingface.d.ts +0 -17
  220. package/dist/adapters/huggingface.d.ts.map +0 -1
  221. package/dist/adapters/huggingface.js +0 -6
  222. package/dist/adapters/huggingface.js.map +0 -1
  223. package/dist/adapters/socket.d.ts +0 -11
  224. package/dist/adapters/socket.d.ts.map +0 -1
  225. package/dist/adapters/socket.js +0 -17
  226. package/dist/adapters/socket.js.map +0 -1
  227. package/dist/adapters/transport.d.ts +0 -7
  228. package/dist/adapters/transport.d.ts.map +0 -1
  229. package/dist/adapters/transport.js +0 -36
  230. package/dist/adapters/transport.js.map +0 -1
  231. package/dist/ai/chunk.d.ts +0 -2
  232. package/dist/ai/chunk.d.ts.map +0 -1
  233. package/dist/ai/chunk.js +0 -36
  234. package/dist/ai/chunk.js.map +0 -1
  235. package/dist/ai/llmstxt.d.ts +0 -6
  236. package/dist/ai/llmstxt.d.ts.map +0 -1
  237. package/dist/ai/llmstxt.js +0 -12
  238. package/dist/ai/llmstxt.js.map +0 -1
  239. package/dist/ai/provenance.d.ts +0 -22
  240. package/dist/ai/provenance.d.ts.map +0 -1
  241. package/dist/ai/provenance.js +0 -25
  242. package/dist/ai/provenance.js.map +0 -1
  243. package/dist/ai/rag.d.ts +0 -26
  244. package/dist/ai/rag.d.ts.map +0 -1
  245. package/dist/ai/rag.js +0 -22
  246. package/dist/ai/rag.js.map +0 -1
  247. package/dist/ai/tokens.d.ts +0 -15
  248. package/dist/ai/tokens.d.ts.map +0 -1
  249. package/dist/ai/tokens.js +0 -9
  250. package/dist/ai/tokens.js.map +0 -1
  251. package/dist/api/auth.d.ts +0 -16
  252. package/dist/api/auth.d.ts.map +0 -1
  253. package/dist/api/auth.js +0 -19
  254. package/dist/api/auth.js.map +0 -1
  255. package/dist/api/contracts.d.ts +0 -28
  256. package/dist/api/contracts.d.ts.map +0 -1
  257. package/dist/api/contracts.js +0 -14
  258. package/dist/api/contracts.js.map +0 -1
  259. package/dist/api/control.d.ts +0 -10
  260. package/dist/api/control.d.ts.map +0 -1
  261. package/dist/api/control.js +0 -35
  262. package/dist/api/control.js.map +0 -1
  263. package/dist/api/http.d.ts +0 -7
  264. package/dist/api/http.d.ts.map +0 -1
  265. package/dist/api/http.js +0 -12
  266. package/dist/api/http.js.map +0 -1
  267. package/dist/api/rate.d.ts +0 -28
  268. package/dist/api/rate.d.ts.map +0 -1
  269. package/dist/api/rate.js +0 -36
  270. package/dist/api/rate.js.map +0 -1
  271. package/dist/api/security.d.ts +0 -12
  272. package/dist/api/security.d.ts.map +0 -1
  273. package/dist/api/security.js +0 -56
  274. package/dist/api/security.js.map +0 -1
  275. package/dist/api/service.d.ts +0 -5
  276. package/dist/api/service.d.ts.map +0 -1
  277. package/dist/api/service.js +0 -70
  278. package/dist/api/service.js.map +0 -1
  279. package/dist/apps/registry.d.ts +0 -33
  280. package/dist/apps/registry.d.ts.map +0 -1
  281. package/dist/apps/registry.js +0 -24
  282. package/dist/apps/registry.js.map +0 -1
  283. package/dist/binary/archive.d.ts +0 -27
  284. package/dist/binary/archive.d.ts.map +0 -1
  285. package/dist/binary/archive.js +0 -46
  286. package/dist/binary/archive.js.map +0 -1
  287. package/dist/binary/build.d.ts +0 -29
  288. package/dist/binary/build.d.ts.map +0 -1
  289. package/dist/binary/build.js +0 -17
  290. package/dist/binary/build.js.map +0 -1
  291. package/dist/binary/transform.d.ts +0 -70
  292. package/dist/binary/transform.d.ts.map +0 -1
  293. package/dist/binary/transform.js +0 -105
  294. package/dist/binary/transform.js.map +0 -1
  295. package/dist/bot/adapter.d.ts +0 -5
  296. package/dist/bot/adapter.d.ts.map +0 -1
  297. package/dist/bot/adapter.js +0 -11
  298. package/dist/bot/adapter.js.map +0 -1
  299. package/dist/bot/bot.d.ts +0 -28
  300. package/dist/bot/bot.d.ts.map +0 -1
  301. package/dist/bot/bot.js +0 -52
  302. package/dist/bot/bot.js.map +0 -1
  303. package/dist/bot/commands.d.ts +0 -8
  304. package/dist/bot/commands.d.ts.map +0 -1
  305. package/dist/bot/commands.js +0 -19
  306. package/dist/bot/commands.js.map +0 -1
  307. package/dist/bot/permissions.d.ts +0 -13
  308. package/dist/bot/permissions.d.ts.map +0 -1
  309. package/dist/bot/permissions.js +0 -16
  310. package/dist/bot/permissions.js.map +0 -1
  311. package/dist/browser/actions.d.ts +0 -33
  312. package/dist/browser/actions.d.ts.map +0 -1
  313. package/dist/browser/actions.js +0 -44
  314. package/dist/browser/actions.js.map +0 -1
  315. package/dist/browser/agent.d.ts +0 -21
  316. package/dist/browser/agent.d.ts.map +0 -1
  317. package/dist/browser/agent.js +0 -13
  318. package/dist/browser/agent.js.map +0 -1
  319. package/dist/browser/context.d.ts +0 -43
  320. package/dist/browser/context.d.ts.map +0 -1
  321. package/dist/browser/context.js +0 -54
  322. package/dist/browser/context.js.map +0 -1
  323. package/dist/browser/fingerprint.d.ts +0 -4
  324. package/dist/browser/fingerprint.d.ts.map +0 -1
  325. package/dist/browser/fingerprint.js +0 -12
  326. package/dist/browser/fingerprint.js.map +0 -1
  327. package/dist/browser/index.d.ts +0 -11
  328. package/dist/browser/index.d.ts.map +0 -1
  329. package/dist/browser/index.js +0 -11
  330. package/dist/browser/index.js.map +0 -1
  331. package/dist/browser/playwright.d.ts +0 -11
  332. package/dist/browser/playwright.d.ts.map +0 -1
  333. package/dist/browser/playwright.js +0 -24
  334. package/dist/browser/playwright.js.map +0 -1
  335. package/dist/browser/recorder.d.ts +0 -21
  336. package/dist/browser/recorder.d.ts.map +0 -1
  337. package/dist/browser/recorder.js +0 -58
  338. package/dist/browser/recorder.js.map +0 -1
  339. package/dist/browser/session.d.ts +0 -14
  340. package/dist/browser/session.d.ts.map +0 -1
  341. package/dist/browser/session.js +0 -21
  342. package/dist/browser/session.js.map +0 -1
  343. package/dist/browser/snapshot.d.ts +0 -69
  344. package/dist/browser/snapshot.d.ts.map +0 -1
  345. package/dist/browser/snapshot.js +0 -133
  346. package/dist/browser/snapshot.js.map +0 -1
  347. package/dist/captcha/contract.d.ts +0 -35
  348. package/dist/captcha/contract.d.ts.map +0 -1
  349. package/dist/captcha/contract.js +0 -17
  350. package/dist/captcha/contract.js.map +0 -1
  351. package/dist/captcha/evidence.d.ts +0 -10
  352. package/dist/captcha/evidence.d.ts.map +0 -1
  353. package/dist/captcha/evidence.js +0 -9
  354. package/dist/captcha/evidence.js.map +0 -1
  355. package/dist/captcha/guard.d.ts +0 -23
  356. package/dist/captcha/guard.d.ts.map +0 -1
  357. package/dist/captcha/guard.js +0 -12
  358. package/dist/captcha/guard.js.map +0 -1
  359. package/dist/cli/main.d.ts +0 -4
  360. package/dist/cli/main.d.ts.map +0 -1
  361. package/dist/cli/main.js +0 -46
  362. package/dist/cli/main.js.map +0 -1
  363. package/dist/core/errors.d.ts +0 -84
  364. package/dist/core/errors.d.ts.map +0 -1
  365. package/dist/core/errors.js +0 -54
  366. package/dist/core/errors.js.map +0 -1
  367. package/dist/core/events.d.ts +0 -9
  368. package/dist/core/events.d.ts.map +0 -1
  369. package/dist/core/events.js +0 -21
  370. package/dist/core/events.js.map +0 -1
  371. package/dist/core/hash.d.ts +0 -10
  372. package/dist/core/hash.d.ts.map +0 -1
  373. package/dist/core/hash.js +0 -82
  374. package/dist/core/hash.js.map +0 -1
  375. package/dist/core/ids.d.ts +0 -10
  376. package/dist/core/ids.d.ts.map +0 -1
  377. package/dist/core/ids.js +0 -15
  378. package/dist/core/ids.js.map +0 -1
  379. package/dist/delivery/manifest.d.ts +0 -35
  380. package/dist/delivery/manifest.d.ts.map +0 -1
  381. package/dist/delivery/manifest.js +0 -68
  382. package/dist/delivery/manifest.js.map +0 -1
  383. package/dist/deploy/index.d.ts +0 -6
  384. package/dist/deploy/index.d.ts.map +0 -1
  385. package/dist/deploy/index.js +0 -6
  386. package/dist/deploy/index.js.map +0 -1
  387. package/dist/dispatch/resumable.d.ts +0 -102
  388. package/dist/dispatch/resumable.d.ts.map +0 -1
  389. package/dist/dispatch/resumable.js +0 -64
  390. package/dist/dispatch/resumable.js.map +0 -1
  391. package/dist/dispatch/workflow.d.ts +0 -6
  392. package/dist/dispatch/workflow.d.ts.map +0 -1
  393. package/dist/dispatch/workflow.js +0 -37
  394. package/dist/dispatch/workflow.js.map +0 -1
  395. package/dist/domain/artifacts.d.ts +0 -12
  396. package/dist/domain/artifacts.d.ts.map +0 -1
  397. package/dist/domain/artifacts.js +0 -14
  398. package/dist/domain/artifacts.js.map +0 -1
  399. package/dist/domain/jobs.d.ts +0 -12
  400. package/dist/domain/jobs.d.ts.map +0 -1
  401. package/dist/domain/jobs.js +0 -20
  402. package/dist/domain/jobs.js.map +0 -1
  403. package/dist/domain/providers.d.ts +0 -10
  404. package/dist/domain/providers.d.ts.map +0 -1
  405. package/dist/domain/providers.js +0 -8
  406. package/dist/domain/providers.js.map +0 -1
  407. package/dist/domain/runtime.d.ts +0 -14
  408. package/dist/domain/runtime.d.ts.map +0 -1
  409. package/dist/domain/runtime.js +0 -10
  410. package/dist/domain/runtime.js.map +0 -1
  411. package/dist/domain/sessions.d.ts +0 -12
  412. package/dist/domain/sessions.d.ts.map +0 -1
  413. package/dist/domain/sessions.js +0 -57
  414. package/dist/domain/sessions.js.map +0 -1
  415. package/dist/examples/localjob.d.ts +0 -2
  416. package/dist/examples/localjob.d.ts.map +0 -1
  417. package/dist/examples/localjob.js.map +0 -1
  418. package/dist/examples/publicapi.d.ts +0 -2
  419. package/dist/examples/publicapi.d.ts.map +0 -1
  420. package/dist/examples/publicapi.js.map +0 -1
  421. package/dist/extension/build.d.ts +0 -9
  422. package/dist/extension/build.d.ts.map +0 -1
  423. package/dist/extension/build.js +0 -85
  424. package/dist/extension/build.js.map +0 -1
  425. package/dist/extension/content.d.ts +0 -6
  426. package/dist/extension/content.d.ts.map +0 -1
  427. package/dist/extension/content.js +0 -135
  428. package/dist/extension/content.js.map +0 -1
  429. package/dist/extension/index.d.ts +0 -7
  430. package/dist/extension/index.d.ts.map +0 -1
  431. package/dist/extension/index.js +0 -7
  432. package/dist/extension/index.js.map +0 -1
  433. package/dist/extension/pagebridge.d.ts +0 -6
  434. package/dist/extension/pagebridge.d.ts.map +0 -1
  435. package/dist/extension/pagebridge.js +0 -42
  436. package/dist/extension/pagebridge.js.map +0 -1
  437. package/dist/extension/permissions.d.ts +0 -26
  438. package/dist/extension/permissions.d.ts.map +0 -1
  439. package/dist/extension/permissions.js +0 -28
  440. package/dist/extension/permissions.js.map +0 -1
  441. package/dist/extension/popup.d.ts +0 -5
  442. package/dist/extension/popup.d.ts.map +0 -1
  443. package/dist/extension/popup.js +0 -26
  444. package/dist/extension/popup.js.map +0 -1
  445. package/dist/extension/protocol.d.ts +0 -58
  446. package/dist/extension/protocol.d.ts.map +0 -1
  447. package/dist/extension/protocol.js +0 -101
  448. package/dist/extension/protocol.js.map +0 -1
  449. package/dist/extension/serviceworker.d.ts +0 -25
  450. package/dist/extension/serviceworker.d.ts.map +0 -1
  451. package/dist/extension/serviceworker.js +0 -102
  452. package/dist/extension/serviceworker.js.map +0 -1
  453. package/dist/extension/worker.d.ts +0 -28
  454. package/dist/extension/worker.d.ts.map +0 -1
  455. package/dist/extension/worker.js +0 -22
  456. package/dist/extension/worker.js.map +0 -1
  457. package/dist/format/check.d.ts +0 -8
  458. package/dist/format/check.d.ts.map +0 -1
  459. package/dist/format/check.js +0 -38
  460. package/dist/format/check.js.map +0 -1
  461. package/dist/library/public.d.ts.map +0 -1
  462. package/dist/library/public.js.map +0 -1
  463. package/dist/mcp/browser.d.ts +0 -9
  464. package/dist/mcp/browser.d.ts.map +0 -1
  465. package/dist/mcp/browser.js +0 -13
  466. package/dist/mcp/browser.js.map +0 -1
  467. package/dist/mcp/server.d.ts +0 -35
  468. package/dist/mcp/server.d.ts.map +0 -1
  469. package/dist/mcp/server.js +0 -40
  470. package/dist/mcp/server.js.map +0 -1
  471. package/dist/mcp/transport.d.ts +0 -7
  472. package/dist/mcp/transport.d.ts.map +0 -1
  473. package/dist/mcp/transport.js +0 -17
  474. package/dist/mcp/transport.js.map +0 -1
  475. package/dist/memory/bridge.d.ts +0 -14
  476. package/dist/memory/bridge.d.ts.map +0 -1
  477. package/dist/memory/bridge.js +0 -16
  478. package/dist/memory/bridge.js.map +0 -1
  479. package/dist/memory/engine.d.ts +0 -38
  480. package/dist/memory/engine.d.ts.map +0 -1
  481. package/dist/memory/engine.js +0 -109
  482. package/dist/memory/engine.js.map +0 -1
  483. package/dist/memory/modes.d.ts +0 -43
  484. package/dist/memory/modes.d.ts.map +0 -1
  485. package/dist/memory/modes.js +0 -66
  486. package/dist/memory/modes.js.map +0 -1
  487. package/dist/memory/objects.d.ts +0 -21
  488. package/dist/memory/objects.d.ts.map +0 -1
  489. package/dist/memory/objects.js +0 -20
  490. package/dist/memory/objects.js.map +0 -1
  491. package/dist/memory/planner.d.ts +0 -66
  492. package/dist/memory/planner.d.ts.map +0 -1
  493. package/dist/memory/planner.js +0 -108
  494. package/dist/memory/planner.js.map +0 -1
  495. package/dist/memory/targets.d.ts +0 -78
  496. package/dist/memory/targets.d.ts.map +0 -1
  497. package/dist/memory/targets.js +0 -29
  498. package/dist/memory/targets.js.map +0 -1
  499. package/dist/memory/transforms.d.ts +0 -19
  500. package/dist/memory/transforms.d.ts.map +0 -1
  501. package/dist/memory/transforms.js +0 -14
  502. package/dist/memory/transforms.js.map +0 -1
  503. package/dist/modes/matrix.d.ts +0 -23
  504. package/dist/modes/matrix.d.ts.map +0 -1
  505. package/dist/modes/matrix.js +0 -18
  506. package/dist/modes/matrix.js.map +0 -1
  507. package/dist/modes/modes.d.ts +0 -33
  508. package/dist/modes/modes.d.ts.map +0 -1
  509. package/dist/modes/modes.js +0 -15
  510. package/dist/modes/modes.js.map +0 -1
  511. package/dist/modes/resolve.d.ts +0 -96
  512. package/dist/modes/resolve.d.ts.map +0 -1
  513. package/dist/modes/resolve.js +0 -48
  514. package/dist/modes/resolve.js.map +0 -1
  515. package/dist/observability/metrics.d.ts +0 -14
  516. package/dist/observability/metrics.d.ts.map +0 -1
  517. package/dist/observability/metrics.js +0 -18
  518. package/dist/observability/metrics.js.map +0 -1
  519. package/dist/packager/manifest.d.ts +0 -66
  520. package/dist/packager/manifest.d.ts.map +0 -1
  521. package/dist/packager/manifest.js +0 -94
  522. package/dist/packager/manifest.js.map +0 -1
  523. package/dist/packager/publish.d.ts +0 -51
  524. package/dist/packager/publish.d.ts.map +0 -1
  525. package/dist/packager/publish.js +0 -18
  526. package/dist/packager/publish.js.map +0 -1
  527. package/dist/packager/targetcli.d.ts +0 -7
  528. package/dist/packager/targetcli.d.ts.map +0 -1
  529. package/dist/packager/targetcli.js +0 -22
  530. package/dist/packager/targetcli.js.map +0 -1
  531. package/dist/persistence/adapter.d.ts +0 -5
  532. package/dist/persistence/adapter.d.ts.map +0 -1
  533. package/dist/persistence/adapter.js +0 -11
  534. package/dist/persistence/adapter.js.map +0 -1
  535. package/dist/persistence/drizzle.d.ts +0 -2
  536. package/dist/persistence/drizzle.d.ts.map +0 -1
  537. package/dist/persistence/drizzle.js +0 -12
  538. package/dist/persistence/drizzle.js.map +0 -1
  539. package/dist/persistence/memory.d.ts +0 -2
  540. package/dist/persistence/memory.d.ts.map +0 -1
  541. package/dist/persistence/memory.js +0 -27
  542. package/dist/persistence/memory.js.map +0 -1
  543. package/dist/persistence/migrations.d.ts +0 -19
  544. package/dist/persistence/migrations.d.ts.map +0 -1
  545. package/dist/persistence/migrations.js +0 -13
  546. package/dist/persistence/migrations.js.map +0 -1
  547. package/dist/persistence/prisma.d.ts +0 -2
  548. package/dist/persistence/prisma.d.ts.map +0 -1
  549. package/dist/persistence/prisma.js +0 -25
  550. package/dist/persistence/prisma.js.map +0 -1
  551. package/dist/persistence/schema.d.ts +0 -63
  552. package/dist/persistence/schema.d.ts.map +0 -1
  553. package/dist/persistence/schema.js +0 -28
  554. package/dist/persistence/schema.js.map +0 -1
  555. package/dist/persistence/sql.d.ts +0 -3
  556. package/dist/persistence/sql.d.ts.map +0 -1
  557. package/dist/persistence/sql.js +0 -37
  558. package/dist/persistence/sql.js.map +0 -1
  559. package/dist/protocol/blocks.d.ts +0 -10
  560. package/dist/protocol/blocks.d.ts.map +0 -1
  561. package/dist/protocol/blocks.js +0 -26
  562. package/dist/protocol/blocks.js.map +0 -1
  563. package/dist/protocol/json.d.ts +0 -6
  564. package/dist/protocol/json.d.ts.map +0 -1
  565. package/dist/protocol/json.js +0 -6
  566. package/dist/protocol/json.js.map +0 -1
  567. package/dist/protocol/ndjson.d.ts +0 -3
  568. package/dist/protocol/ndjson.d.ts.map +0 -1
  569. package/dist/protocol/ndjson.js +0 -20
  570. package/dist/protocol/ndjson.js.map +0 -1
  571. package/dist/protocol/sse.d.ts +0 -7
  572. package/dist/protocol/sse.d.ts.map +0 -1
  573. package/dist/protocol/sse.js +0 -25
  574. package/dist/protocol/sse.js.map +0 -1
  575. package/dist/proxy/pool.d.ts +0 -9
  576. package/dist/proxy/pool.d.ts.map +0 -1
  577. package/dist/proxy/pool.js +0 -27
  578. package/dist/proxy/pool.js.map +0 -1
  579. package/dist/queue/idempotency.d.ts +0 -10
  580. package/dist/queue/idempotency.d.ts.map +0 -1
  581. package/dist/queue/idempotency.js +0 -13
  582. package/dist/queue/idempotency.js.map +0 -1
  583. package/dist/queue/persistent.d.ts +0 -14
  584. package/dist/queue/persistent.d.ts.map +0 -1
  585. package/dist/queue/persistent.js +0 -66
  586. package/dist/queue/persistent.js.map +0 -1
  587. package/dist/queue/queue.d.ts +0 -7
  588. package/dist/queue/queue.d.ts.map +0 -1
  589. package/dist/queue/queue.js +0 -55
  590. package/dist/queue/queue.js.map +0 -1
  591. package/dist/queue/saga.d.ts +0 -5
  592. package/dist/queue/saga.d.ts.map +0 -1
  593. package/dist/queue/saga.js +0 -20
  594. package/dist/queue/saga.js.map +0 -1
  595. package/dist/release/assets.d.ts +0 -144
  596. package/dist/release/assets.d.ts.map +0 -1
  597. package/dist/release/assets.js +0 -157
  598. package/dist/release/assets.js.map +0 -1
  599. package/dist/release/evidence.d.ts +0 -92
  600. package/dist/release/evidence.d.ts.map +0 -1
  601. package/dist/release/evidence.js +0 -148
  602. package/dist/release/evidence.js.map +0 -1
  603. package/dist/release/verify.d.ts +0 -12
  604. package/dist/release/verify.d.ts.map +0 -1
  605. package/dist/release/verify.js +0 -112
  606. package/dist/release/verify.js.map +0 -1
  607. package/dist/runners/chain.d.ts +0 -125
  608. package/dist/runners/chain.d.ts.map +0 -1
  609. package/dist/runners/chain.js +0 -95
  610. package/dist/runners/chain.js.map +0 -1
  611. package/dist/runners/health.d.ts +0 -36
  612. package/dist/runners/health.d.ts.map +0 -1
  613. package/dist/runners/health.js +0 -26
  614. package/dist/runners/health.js.map +0 -1
  615. package/dist/runners/heartbeat.d.ts +0 -23
  616. package/dist/runners/heartbeat.d.ts.map +0 -1
  617. package/dist/runners/heartbeat.js +0 -29
  618. package/dist/runners/heartbeat.js.map +0 -1
  619. package/dist/runners/inprocess.d.ts +0 -17
  620. package/dist/runners/inprocess.d.ts.map +0 -1
  621. package/dist/runners/inprocess.js +0 -20
  622. package/dist/runners/inprocess.js.map +0 -1
  623. package/dist/runners/scheduler.d.ts +0 -5
  624. package/dist/runners/scheduler.d.ts.map +0 -1
  625. package/dist/runners/scheduler.js +0 -19
  626. package/dist/runners/scheduler.js.map +0 -1
  627. package/dist/runtime/abort.d.ts +0 -8
  628. package/dist/runtime/abort.d.ts.map +0 -1
  629. package/dist/runtime/abort.js +0 -13
  630. package/dist/runtime/abort.js.map +0 -1
  631. package/dist/runtime/compatibility.d.ts +0 -37
  632. package/dist/runtime/compatibility.d.ts.map +0 -1
  633. package/dist/runtime/compatibility.js +0 -10
  634. package/dist/runtime/compatibility.js.map +0 -1
  635. package/dist/runtime/detect.d.ts +0 -13
  636. package/dist/runtime/detect.d.ts.map +0 -1
  637. package/dist/runtime/detect.js +0 -18
  638. package/dist/runtime/detect.js.map +0 -1
  639. package/dist/runtime/engine.d.ts +0 -20
  640. package/dist/runtime/engine.d.ts.map +0 -1
  641. package/dist/runtime/engine.js +0 -61
  642. package/dist/runtime/engine.js.map +0 -1
  643. package/dist/runtime/retry.d.ts +0 -19
  644. package/dist/runtime/retry.d.ts.map +0 -1
  645. package/dist/runtime/retry.js +0 -54
  646. package/dist/runtime/retry.js.map +0 -1
  647. package/dist/runtime/worker.d.ts +0 -10
  648. package/dist/runtime/worker.d.ts.map +0 -1
  649. package/dist/runtime/worker.js +0 -25
  650. package/dist/runtime/worker.js.map +0 -1
  651. package/dist/scrape/cache.d.ts +0 -45
  652. package/dist/scrape/cache.d.ts.map +0 -1
  653. package/dist/scrape/cache.js +0 -45
  654. package/dist/scrape/cache.js.map +0 -1
  655. package/dist/scrape/crawl.d.ts +0 -47
  656. package/dist/scrape/crawl.d.ts.map +0 -1
  657. package/dist/scrape/crawl.js +0 -114
  658. package/dist/scrape/crawl.js.map +0 -1
  659. package/dist/scrape/extract.d.ts +0 -63
  660. package/dist/scrape/extract.d.ts.map +0 -1
  661. package/dist/scrape/extract.js +0 -47
  662. package/dist/scrape/extract.js.map +0 -1
  663. package/dist/scrape/normalize.d.ts +0 -52
  664. package/dist/scrape/normalize.d.ts.map +0 -1
  665. package/dist/scrape/normalize.js +0 -102
  666. package/dist/scrape/normalize.js.map +0 -1
  667. package/dist/scrape/robots.d.ts +0 -37
  668. package/dist/scrape/robots.d.ts.map +0 -1
  669. package/dist/scrape/robots.js +0 -71
  670. package/dist/scrape/robots.js.map +0 -1
  671. package/dist/scrape/schema.d.ts +0 -23
  672. package/dist/scrape/schema.d.ts.map +0 -1
  673. package/dist/scrape/schema.js +0 -92
  674. package/dist/scrape/schema.js.map +0 -1
  675. package/dist/scrape/scraper.d.ts +0 -6
  676. package/dist/scrape/scraper.d.ts.map +0 -1
  677. package/dist/scrape/scraper.js +0 -46
  678. package/dist/scrape/scraper.js.map +0 -1
  679. package/dist/scrape/semantic.d.ts +0 -25
  680. package/dist/scrape/semantic.d.ts.map +0 -1
  681. package/dist/scrape/semantic.js +0 -27
  682. package/dist/scrape/semantic.js.map +0 -1
  683. package/dist/server/node.d.ts +0 -7
  684. package/dist/server/node.d.ts.map +0 -1
  685. package/dist/server/node.js.map +0 -1
  686. package/dist/sessions/file.d.ts +0 -25
  687. package/dist/sessions/file.d.ts.map +0 -1
  688. package/dist/sessions/file.js +0 -13
  689. package/dist/sessions/file.js.map +0 -1
  690. package/dist/sessions/replay.d.ts +0 -9
  691. package/dist/sessions/replay.d.ts.map +0 -1
  692. package/dist/sessions/replay.js +0 -70
  693. package/dist/sessions/replay.js.map +0 -1
  694. package/dist/sessions/store.d.ts +0 -25
  695. package/dist/sessions/store.d.ts.map +0 -1
  696. package/dist/sessions/store.js +0 -13
  697. package/dist/sessions/store.js.map +0 -1
  698. package/dist/storage/adapter.d.ts +0 -5
  699. package/dist/storage/adapter.d.ts.map +0 -1
  700. package/dist/storage/adapter.js +0 -11
  701. package/dist/storage/adapter.js.map +0 -1
  702. package/dist/storage/cache.d.ts +0 -23
  703. package/dist/storage/cache.d.ts.map +0 -1
  704. package/dist/storage/cache.js +0 -79
  705. package/dist/storage/cache.js.map +0 -1
  706. package/dist/storage/checksum.d.ts +0 -3
  707. package/dist/storage/checksum.d.ts.map +0 -1
  708. package/dist/storage/checksum.js +0 -19
  709. package/dist/storage/checksum.js.map +0 -1
  710. package/dist/storage/chunked.d.ts +0 -21
  711. package/dist/storage/chunked.d.ts.map +0 -1
  712. package/dist/storage/chunked.js +0 -67
  713. package/dist/storage/chunked.js.map +0 -1
  714. package/dist/storage/content.d.ts +0 -24
  715. package/dist/storage/content.d.ts.map +0 -1
  716. package/dist/storage/content.js +0 -44
  717. package/dist/storage/content.js.map +0 -1
  718. package/dist/storage/filehosting.d.ts +0 -2
  719. package/dist/storage/filehosting.d.ts.map +0 -1
  720. package/dist/storage/filehosting.js +0 -24
  721. package/dist/storage/filehosting.js.map +0 -1
  722. package/dist/storage/githubcontents.d.ts +0 -2
  723. package/dist/storage/githubcontents.d.ts.map +0 -1
  724. package/dist/storage/githubcontents.js +0 -29
  725. package/dist/storage/githubcontents.js.map +0 -1
  726. package/dist/storage/index.d.ts +0 -12
  727. package/dist/storage/index.d.ts.map +0 -1
  728. package/dist/storage/index.js +0 -12
  729. package/dist/storage/index.js.map +0 -1
  730. package/dist/storage/local.d.ts +0 -2
  731. package/dist/storage/local.d.ts.map +0 -1
  732. package/dist/storage/local.js +0 -72
  733. package/dist/storage/local.js.map +0 -1
  734. package/dist/storage/memory.d.ts +0 -6
  735. package/dist/storage/memory.d.ts.map +0 -1
  736. package/dist/storage/memory.js +0 -36
  737. package/dist/storage/memory.js.map +0 -1
  738. package/dist/storage/pool.d.ts +0 -95
  739. package/dist/storage/pool.d.ts.map +0 -1
  740. package/dist/storage/pool.js +0 -202
  741. package/dist/storage/pool.js.map +0 -1
  742. package/dist/storage/s3compatible.d.ts +0 -3
  743. package/dist/storage/s3compatible.d.ts.map +0 -1
  744. package/dist/storage/s3compatible.js +0 -70
  745. package/dist/storage/s3compatible.js.map +0 -1
  746. package/dist/storage/sync.d.ts +0 -47
  747. package/dist/storage/sync.d.ts.map +0 -1
  748. package/dist/storage/sync.js +0 -75
  749. package/dist/storage/sync.js.map +0 -1
  750. package/dist/surfaces/adapters.d.ts +0 -97
  751. package/dist/surfaces/adapters.d.ts.map +0 -1
  752. package/dist/surfaces/adapters.js +0 -50
  753. package/dist/surfaces/adapters.js.map +0 -1
  754. package/dist/surfaces/controls.d.ts +0 -18
  755. package/dist/surfaces/controls.d.ts.map +0 -1
  756. package/dist/surfaces/controls.js +0 -45
  757. package/dist/surfaces/controls.js.map +0 -1
  758. package/dist/surfaces/manifest.d.ts +0 -68
  759. package/dist/surfaces/manifest.d.ts.map +0 -1
  760. package/dist/surfaces/manifest.js +0 -42
  761. package/dist/surfaces/manifest.js.map +0 -1
  762. package/dist/surfaces/n8n.d.ts +0 -25
  763. package/dist/surfaces/n8n.d.ts.map +0 -1
  764. package/dist/surfaces/n8n.js +0 -31
  765. package/dist/surfaces/n8n.js.map +0 -1
  766. package/dist/surfaces/operations.d.ts +0 -32
  767. package/dist/surfaces/operations.d.ts.map +0 -1
  768. package/dist/surfaces/operations.js +0 -53
  769. package/dist/surfaces/operations.js.map +0 -1
  770. package/dist/surfaces/requirements.d.ts +0 -29
  771. package/dist/surfaces/requirements.d.ts.map +0 -1
  772. package/dist/surfaces/requirements.js +0 -50
  773. package/dist/surfaces/requirements.js.map +0 -1
  774. package/dist/surfaces/targets.d.ts +0 -196
  775. package/dist/surfaces/targets.d.ts.map +0 -1
  776. package/dist/surfaces/targets.js +0 -27
  777. package/dist/surfaces/targets.js.map +0 -1
  778. package/dist/webhook/delivery.d.ts +0 -18
  779. package/dist/webhook/delivery.d.ts.map +0 -1
  780. package/dist/webhook/delivery.js +0 -36
  781. package/dist/webhook/delivery.js.map +0 -1
  782. package/dist/webhook/receiver.d.ts +0 -26
  783. package/dist/webhook/receiver.d.ts.map +0 -1
  784. package/dist/webhook/receiver.js +0 -24
  785. package/dist/webhook/receiver.js.map +0 -1
  786. package/dist/webhook/signature.d.ts +0 -3
  787. package/dist/webhook/signature.d.ts.map +0 -1
  788. package/dist/webhook/signature.js +0 -7
  789. package/dist/webhook/signature.js.map +0 -1
  790. package/dist/workflow/manifest.d.ts +0 -22
  791. package/dist/workflow/manifest.d.ts.map +0 -1
  792. package/dist/workflow/manifest.js +0 -21
  793. package/dist/workflow/manifest.js.map +0 -1
  794. package/dist/workflow/registry.d.ts +0 -7
  795. package/dist/workflow/registry.d.ts.map +0 -1
  796. package/dist/workflow/registry.js +0 -18
  797. package/dist/workflow/registry.js.map +0 -1
  798. package/dist/workflow/templates.d.ts +0 -6
  799. package/dist/workflow/templates.d.ts.map +0 -1
  800. package/dist/workflow/templates.js +0 -18
  801. package/dist/workflow/templates.js.map +0 -1
  802. package/dist/workflow/triggers.d.ts +0 -64
  803. package/dist/workflow/triggers.d.ts.map +0 -1
  804. package/dist/workflow/triggers.js +0 -99
  805. package/dist/workflow/triggers.js.map +0 -1
  806. package/docs/logs/.gitkeep +0 -0
  807. package/docs/plans/00.index.md +0 -50
  808. package/docs/plans/01.architecture.md +0 -86
  809. package/docs/plans/02.research.computer.use.md +0 -58
  810. package/docs/plans/03.research.captcha.bypass.md +0 -68
  811. package/docs/plans/04.research.sandbox.ai.md +0 -52
  812. package/docs/plans/05.capture.platform.md +0 -57
  813. package/docs/plans/06.dependencies.md +0 -97
  814. package/docs/plans/07.captcha.test.page.md +0 -41
  815. package/docs/plans/08.production.infra.md +0 -70
  816. package/docs/plans/09.database.schema.md +0 -121
  817. package/docs/plans/10.cloudinary.storage.md +0 -57
  818. package/docs/plans/11.movement.logs.json.md +0 -72
  819. package/docs/plans/12.research.atlas.agent.browser.md +0 -79
  820. package/docs/plans/13.research.anti.detection.md +0 -898
  821. package/docs/plans/14.research.proxy.md +0 -1495
  822. package/docs/plans/15.research.retry.rate.limit.md +0 -1958
  823. package/docs/plans/16.research.crawling.md +0 -1417
  824. package/docs/plans/17.research.caching.md +0 -1610
  825. package/docs/plans/18.research.content.extraction.md +0 -1952
  826. package/docs/plans/19.research.errors.events.md +0 -1523
  827. package/docs/plans/20.research.zod.validation.md +0 -1350
  828. package/docs/plans/21.research.batch.concurrency.md +0 -1888
  829. package/docs/plans/22.research.universal.runtime.md +0 -944
  830. package/docs/plans/23.research.ai.integration.md +0 -1465
  831. package/docs/plans/24.research.memory.persistence.md +0 -1979
  832. package/docs/plans/25.research.server.api.md +0 -342
  833. package/docs/plans/26.research.compilation.md +0 -249
  834. package/docs/plans/27.research.html.parsing.md +0 -251
  835. package/docs/plans/28.action.plan.md +0 -50
  836. package/docs/plans/29.api.reference.md +0 -174
  837. package/docs/plans/30.architecture.plan.md +0 -94
  838. package/docs/plans/31.auditoria.dados.md +0 -163
  839. package/docs/plans/32.bots.automacao.computacional.md +0 -214
  840. package/docs/plans/33.bots.codigo.revisao.md +0 -220
  841. package/docs/plans/34.bots.seguranca.cicd.md +0 -366
  842. package/docs/plans/35.comparativo.concorrencia.md +0 -464
  843. package/docs/plans/36.computational.memory.md +0 -340
  844. package/docs/plans/37.deploystrategy.md +0 -394
  845. package/docs/plans/38.flow.md +0 -155
  846. package/docs/plans/39.multi.platform.bot.md +0 -252
  847. package/docs/plans/40.npm.publish.md +0 -250
  848. package/docs/plans/41.o.que.falta.md +0 -407
  849. package/docs/plans/42.pesquisa.concorrencia.md +0 -721
  850. package/docs/plans/43.plan.universal.architecture.md +0 -496
  851. package/docs/plans/44.reference.md +0 -100
  852. package/docs/plans/45.robotarchitecture.md +0 -237
  853. package/docs/plans/46.scdnintegration.md +0 -284
  854. package/docs/plans/47.multiforge.readme.md +0 -129
  855. package/docs/plans/48.theory.v4.repo.os.md +0 -152
  856. package/docs/plans/49.third.party.infra.md +0 -12
  857. package/docs/plans/50.file.as.compute.md +0 -39
  858. package/docs/plans/51.architecture.virtual.processor.md +0 -80
  859. package/docs/plans/52.manifesto.v8.md +0 -11
  860. package/docs/plans/58.cdn.list.md +0 -23
  861. package/docs/plans/59.sql.frameworks.md +0 -33
  862. package/docs/plans/60.sql.thirdparty.md +0 -26
  863. package/docs/plans/61.objective.multiforge.md +0 -63
  864. package/docs/plans/62.huggingface.upload.md +0 -26
  865. package/docs/plans/63.kaggle.upload.md +0 -24
  866. package/docs/plans/64.npm.storage.md +0 -30
  867. package/docs/plans/65.rclone.terabox.md +0 -32
  868. package/docs/plans/66.buckets.and.models.todo.md +0 -14
  869. package/docs/plans/67.database.todo.md +0 -13
  870. package/docs/plans/68.deploy.packages.todo.md +0 -12
  871. package/docs/plans/69.report.human.operator.md +0 -133
  872. package/docs/plans/70.report.brain2qwerty.ems.md +0 -135
  873. package/docs/plans/71.report.hd.infinito.vram.md +0 -155
  874. package/docs/plans/72.plan.hd.infinito.node.md +0 -146
  875. package/docs/plans/73.plan.scifi.repos.md +0 -125
  876. package/docs/plans/74.000.manifesto.v8.flat.2..md +0 -11
  877. package/docs/plans/README.md +0 -489
  878. package/docs/plans/aggregate_platforms.mjs +0 -146
  879. package/docs/plans/examplesession.json +0 -36
  880. package/docs/plans/missing-facts.md +0 -192
  881. package/docs/plans/models.md +0 -64
  882. package/docs/plans/organize.cjs +0 -270
  883. package/docs/plans/platforms.md +0 -2887
  884. package/docs/plans/sites.md +0 -31322
  885. package/docs/sources/farm.py +0 -117
  886. package/docs/sources/html/saddle1.html +0 -132
  887. package/docs/sources/html/saddle2.html +0 -157
  888. package/docs/sources/html/saddle3.html +0 -119
  889. package/docs/sources/html/saddle4.html +0 -144
  890. package/docs/sources/html/saddle5.html +0 -72
  891. package/docs/sources/html/saddle6.html +0 -171
  892. package/docs/sources/html/saddle7.html +0 -236
  893. package/docs/sources/saddle.ts +0 -74
  894. package/docs/sources/schema.prisma +0 -88
  895. package/docs/sources/script.sh +0 -64
  896. package/docs/sources/workflows.yml +0 -458
  897. package/docs/talks1/_body.txt +0 -14
  898. package/docs/talks1/_index.md +0 -15
  899. package/docs/talks1/_screenshot.png +0 -0
  900. package/docs/talks1/assistant-01.md +0 -5
  901. package/docs/talks1/assistant-02.md +0 -5
  902. package/docs/talks1/assistant-03.md +0 -531
  903. package/docs/talks1/assistant-04.md +0 -26
  904. package/docs/talks1/assistant-05.md +0 -774
  905. package/docs/talks1/assistant-06.md +0 -1718
  906. package/docs/talks1/scrape-share.cjs +0 -185
  907. package/docs/talks1/scrape-share.ts +0 -183
  908. package/docs/talks1/user-01.md +0 -3
  909. package/docs/talks1/user-02.md +0 -3
  910. package/docs/talks1/user-03.md +0 -88
  911. package/docs/talks1/user-04.md +0 -3
  912. package/docs/talks1/user-05.md +0 -3
  913. package/docs/talks1/user-06.md +0 -88
  914. package/docs/talks1/user-07.md +0 -88
  915. package/docs/talks2/_body.txt +0 -14
  916. package/docs/talks2/_index.md +0 -16
  917. package/docs/talks2/_screenshot.png +0 -0
  918. package/docs/talks2/assistant-01.md +0 -5
  919. package/docs/talks2/assistant-02.md +0 -5
  920. package/docs/talks2/assistant-03.md +0 -424
  921. package/docs/talks2/assistant-04.md +0 -598
  922. package/docs/talks2/assistant-05.md +0 -1280
  923. package/docs/talks2/assistant-06.md +0 -1227
  924. package/docs/talks2/assistant-07.md +0 -1252
  925. package/docs/talks2/user-01.md +0 -3
  926. package/docs/talks2/user-02.md +0 -3
  927. package/docs/talks2/user-03.md +0 -88
  928. package/docs/talks2/user-04.md +0 -88
  929. package/docs/talks2/user-05.md +0 -88
  930. package/docs/talks2/user-06.md +0 -88
  931. package/docs/talks2/user-07.md +0 -3
  932. package/docs/talks3/_body.txt +0 -467
  933. package/docs/talks3/_index.md +0 -10
  934. package/docs/talks3/_screenshot.png +0 -0
  935. package/docs/talks3/assistant-01.md +0 -417
  936. package/docs/talks3/assistant-02.md +0 -417
  937. package/docs/talks3/assistant-03.md +0 -29
  938. package/docs/talks3/assistant-04.md +0 -727
  939. package/docs/talks3/user-01.md +0 -88
  940. package/docs/talks3/user-02.md +0 -88
  941. package/docs/talks3/user-03.md +0 -3
  942. package/docs/talks3/user-04.md +0 -3
  943. package/docs/talks4/_body.txt +0 -14
  944. package/docs/talks4/_index.md +0 -12
  945. package/docs/talks4/_screenshot.png +0 -0
  946. package/docs/talks4/assistant-01.md +0 -5
  947. package/docs/talks4/assistant-02.md +0 -5
  948. package/docs/talks4/assistant-03.md +0 -35
  949. package/docs/talks4/assistant-04.md +0 -512
  950. package/docs/talks4/assistant-05.md +0 -599
  951. package/docs/talks4/user-01.md +0 -3
  952. package/docs/talks4/user-02.md +0 -3
  953. package/docs/talks4/user-03.md +0 -88
  954. package/docs/talks4/user-04.md +0 -88
  955. package/docs/talks4/user-05.md +0 -7
  956. package/docs/talks5/_body.txt +0 -14
  957. package/docs/talks5/_index.md +0 -13
  958. package/docs/talks5/_screenshot.png +0 -0
  959. package/docs/talks5/assistant-01.md +0 -5
  960. package/docs/talks5/assistant-02.md +0 -5
  961. package/docs/talks5/assistant-03.md +0 -690
  962. package/docs/talks5/assistant-04.md +0 -758
  963. package/docs/talks5/assistant-05.md +0 -974
  964. package/docs/talks5/user-01.md +0 -3
  965. package/docs/talks5/user-02.md +0 -3
  966. package/docs/talks5/user-03.md +0 -105
  967. package/docs/talks5/user-04.md +0 -105
  968. package/docs/talks5/user-05.md +0 -63
  969. package/docs/talks5/user-06.md +0 -105
  970. package/docs/talks6/_body.txt +0 -14
  971. package/docs/talks6/_index.md +0 -9
  972. package/docs/talks6/_screenshot.png +0 -0
  973. package/docs/talks6/assistant-01.md +0 -5
  974. package/docs/talks6/assistant-02.md +0 -5
  975. package/docs/talks6/assistant-03.md +0 -1499
  976. package/docs/talks6/user-01.md +0 -3
  977. package/docs/talks6/user-02.md +0 -3
  978. package/docs/talks6/user-03.md +0 -88
  979. package/docs/talks6/user-04.md +0 -88
  980. package/docs/talks7/_body.txt +0 -14
  981. package/docs/talks7/_index.md +0 -10
  982. package/docs/talks7/_screenshot.png +0 -0
  983. package/docs/talks7/assistant-01.md +0 -5
  984. package/docs/talks7/assistant-02.md +0 -5
  985. package/docs/talks7/assistant-03.md +0 -523
  986. package/docs/talks7/assistant-04.md +0 -617
  987. package/docs/talks7/user-01.md +0 -3
  988. package/docs/talks7/user-02.md +0 -3
  989. package/docs/talks7/user-03.md +0 -105
  990. package/docs/talks7/user-04.md +0 -67
  991. package/docs/talks8/conversa1.txt +0 -1322
  992. package/docs/talks8/conversa2.txt +0 -237
  993. package/docs/talks9/Beyond the Obvious_ 50 Plataformas Auto-Hospedadas de Forja de C/303/263digo para Al/303/251m de Gitea e GitLab.md" +0 -174
  994. package/docs/talks9/De NPM a Multi-Linguagem_ Uma Arquitetura T/303/251cnica para a Execu/303/247/303/243o Integrada de C/303/263digo no Ecossistema Node.js.md" +0 -59
  995. package/docs/talks9/De NPM a VMs Virtuais_ Uma An/303/241lise Arquitet/303/264nica para a Realiza/303/247/303/243o do Ciclo de Vida do Projeto SADDLE.md" +0 -91
  996. package/docs/talks9/Mapeamento da Engrenagem Computacional_ Uma Arquitetura para Execu/303/247/303/243o Isolada e Persist/303/252ncia em Ambientes Distribu/303/255dos.md" +0 -116
  997. package/docs/talks9/O Cen/303/241rio Pr/303/241tico do SADDLE_ Uma An/303/241lise de Viabilidade e Modelo de Ciclo de Vida Integrado.md" +0 -128
  998. package/docs/talks9/README (2).md +0 -489
  999. package/docs/talks9/README.md +0 -198
  1000. package/docs/talks9/Viabilidade do Saddle_ Uma An/303/241lise T/303/251cnica da Transforma/303/247/303/243o de Armazenamento Remoto em Mem/303/263ria Computacional.md" +0 -80
  1001. package/docs/talks9/conversa.txt +0 -544
  1002. package/docs/talks9/other (2).md +0 -39
  1003. package/docs/talks9/other.md +0 -57
  1004. package/docs/talks9/outro.txt +0 -24
  1005. /package/{extension/README.md → docs/extension.md} +0 -0
@@ -0,0 +1,951 @@
1
+ /**
2
+ * alternatives.ts - Virtual Hardware Engine v5
3
+ *
4
+ * Ten categories of alternative sandbox engines, each one wired through a
5
+ * real adapter implementing the shared SandboxEngine interface
6
+ * (create/exec/snapshot/destroy/metrics). A registry with factories and
7
+ * alias resolution lets hosts swap execution backends without touching
8
+ * call sites, and a comparison matrix carries the data verified during the
9
+ * 2026-08-22 research pass.
10
+ *
11
+ * Engine categories (versions verified 2026-08-22):
12
+ * 1. wasmtime v48.0.0 - fuel + epoch, WASI 0.3.0 async components
13
+ * 2. gvisor release-20260817.0 - runsc, systrap, 10-30% I/O overhead
14
+ * 3. kata 4.1.0 - runtime-rs (Rust) default, OpenVMM support
15
+ * 4. cloud-hypervisor v53.0 - rust-vmm VMM, offloaded snapshots, vfio-user
16
+ * 5. webcontainers - Node.js inside the browser sandbox (StackBlitz)
17
+ * 6. daytona - ~90ms stateful sandboxes, self-hosted, MCP
18
+ * 7. modal - 100k+ concurrent sandboxes, elastic GPUs
19
+ * 8. fly-machines - Firecracker microVMs across ~35 regions
20
+ * 9. e2b family - E2B, Morph, Cognitora, Vercel Sandbox
21
+ * 10. apple-containers 1.2.2 - Swift microVMs on macOS, <1s boot
22
+ *
23
+ * Related contexts covered by this file (25):
24
+ * Wasmtime, WASI 0.3.0, fuel metering, epoch interruption, runsc, systrap,
25
+ * DirectFS, Kata Containers runtime-rs, OpenVMM, Dragonball, rust-vmm,
26
+ * Cloud Hypervisor, vfio-user, userfaultfd snapshots, WebContainers,
27
+ * StackBlitz, Daytona, MCP servers, Modal, Fly.io Machines, Firecracker,
28
+ * E2B, Morph, Vercel Sandbox, Apple Containers.
29
+ *
30
+ * Module rules: no emoji, JSDoc in English, third-person voice, lowercase
31
+ * identifiers, `using`/`satisfies`/`#private` modern TypeScript, node:* imports
32
+ * first, try/catch on every fallible path, no hardcoded localhost endpoints.
33
+ */
34
+ import { randomInt, randomUUID } from 'node:crypto';
35
+ /** Error raised for unknown sandboxes or unsupported capabilities. */
36
+ export class SandboxEngineError extends Error {
37
+ engine;
38
+ constructor(engine, message) {
39
+ super(`[${engine}] ${message}`);
40
+ this.engine = engine;
41
+ this.name = 'SandboxEngineError';
42
+ }
43
+ }
44
+ /** Picks an ephemeral port; the engine never hardcodes endpoints. */
45
+ export function randomPort() {
46
+ try {
47
+ return randomInt(20000, 60999);
48
+ }
49
+ catch {
50
+ return 34917;
51
+ }
52
+ }
53
+ /**
54
+ * Base class consolidating lifecycle bookkeeping so each adapter only
55
+ * declares its engine-specific facts and behaviors.
56
+ */
57
+ class BaseEngine {
58
+ #sandboxes = new Map();
59
+ async create(spec) {
60
+ if (spec.cpus < 1 || spec.memoryMb < 16) {
61
+ throw new SandboxEngineError(this.id, 'spec requires at least 1 cpu and 16 mb of memory');
62
+ }
63
+ const id = spec.id ?? `${this.id}-${randomUUID().slice(0, 8)}`;
64
+ if (this.#sandboxes.has(id)) {
65
+ throw new SandboxEngineError(this.id, `sandbox ${id} already exists`);
66
+ }
67
+ const handle = {
68
+ id,
69
+ engine: this.id,
70
+ port: randomPort(),
71
+ createdAt: new Date().toISOString(),
72
+ };
73
+ this.#sandboxes.set(id, {
74
+ handle,
75
+ cpus: spec.cpus,
76
+ memoryMb: spec.memoryMb,
77
+ running: true,
78
+ executions: 0,
79
+ totalExecMs: 0,
80
+ });
81
+ return handle;
82
+ }
83
+ async exec(sandboxId, command) {
84
+ const record = this.#require(sandboxId);
85
+ if (!record.running) {
86
+ throw new SandboxEngineError(this.id, `sandbox ${sandboxId} is not running`);
87
+ }
88
+ const baseMs = 2 + command.join(' ').length * 0.05 + record.cpus * 0.1;
89
+ const durationMs = baseMs * (1 + this.execOverheadRatio);
90
+ record.executions += 1;
91
+ record.totalExecMs += durationMs;
92
+ return {
93
+ exitCode: 0,
94
+ stdout: `${this.id} exec ok: ${command.join(' ')}`,
95
+ durationMs: Number(durationMs.toFixed(2)),
96
+ };
97
+ }
98
+ async snapshot(sandboxId) {
99
+ if (!this.capabilities.snapshotting) {
100
+ throw new SandboxEngineError(this.id, 'this engine does not support snapshots');
101
+ }
102
+ const record = this.#require(sandboxId);
103
+ return {
104
+ sandboxId,
105
+ backend: this.snapshotBackend(),
106
+ sizeMb: Number((record.memoryMb / 8).toFixed(1)),
107
+ };
108
+ }
109
+ async destroy(sandboxId) {
110
+ const record = this.#sandboxes.get(sandboxId);
111
+ if (record === undefined) {
112
+ throw new SandboxEngineError(this.id, `unknown sandbox ${sandboxId}`);
113
+ }
114
+ record.running = false;
115
+ this.#sandboxes.delete(sandboxId);
116
+ }
117
+ metrics(sandboxId) {
118
+ const record = this.#require(sandboxId);
119
+ return {
120
+ bootMs: this.coldBootMs,
121
+ memoryMiB: record.memoryMb + this.perSandboxOverheadMiB(),
122
+ cpus: record.cpus,
123
+ running: record.running,
124
+ };
125
+ }
126
+ /** Process overhead each sandbox costs on the host. */
127
+ perSandboxOverheadMiB() {
128
+ return 4;
129
+ }
130
+ #require(sandboxId) {
131
+ const record = this.#sandboxes.get(sandboxId);
132
+ if (record === undefined) {
133
+ throw new SandboxEngineError(this.id, `unknown sandbox ${sandboxId}`);
134
+ }
135
+ return record;
136
+ }
137
+ }
138
+ // ===========================================================================
139
+ // Category 1 of 10 - Wasmtime
140
+ // ===========================================================================
141
+ /**
142
+ * Adapter 1/10 - Wasmtime v48.0.0.
143
+ * Runs guest components with fuel metering for deterministic budgets and
144
+ * epoch interruption for wall-clock timeouts (~10% overhead, preferred over
145
+ * fuel for timeouts). WASI 0.3.0 gives native async; components start with
146
+ * deny-by-default capabilities.
147
+ */
148
+ export class WasmtimeEngine extends BaseEngine {
149
+ id = 'wasmtime';
150
+ title = 'Wasmtime + WASI 0.3 components';
151
+ category = 'wasm runtime sandbox';
152
+ version = '48.0.0';
153
+ capabilities = {
154
+ isolation: 'wasm-sandbox',
155
+ snapshotting: true,
156
+ networkEgress: false,
157
+ gpu: false,
158
+ selfHosted: true,
159
+ requiresKvm: false,
160
+ };
161
+ #fuelBudget = 1_000_000;
162
+ #epochDeadlineMs = 5_000;
163
+ /** Sets the per-store fuel budget, the `--fuel` equivalent. */
164
+ setFuelBudget(budget) {
165
+ if (budget < 1)
166
+ throw new SandboxEngineError(this.id, 'fuel budget must be positive');
167
+ this.#fuelBudget = budget;
168
+ return this;
169
+ }
170
+ /** Sets the epoch deadline used to interrupt runaway guests. */
171
+ setEpochDeadline(deadlineMs) {
172
+ this.#epochDeadlineMs = deadlineMs;
173
+ return this;
174
+ }
175
+ /**
176
+ * Interrupt policy handed to the embedding host: epoch interruption traps
177
+ * the guest at the deadline with roughly 10% runtime overhead, which beats
178
+ * fuel accounting for wall-clock timeouts.
179
+ */
180
+ interruptPolicy() {
181
+ return { deadlineMs: this.#epochDeadlineMs, mechanism: 'epoch', relativeOverhead: 0.1 };
182
+ }
183
+ /** Command line that runs a component under both guards. */
184
+ runCommand(componentPath) {
185
+ return [
186
+ 'wasmtime',
187
+ 'run',
188
+ '--fuel',
189
+ String(this.#fuelBudget),
190
+ '--wasi',
191
+ 'async=yes',
192
+ componentPath,
193
+ ];
194
+ }
195
+ get coldBootMs() {
196
+ return 3; // component instantiation is single-digit milliseconds
197
+ }
198
+ get execOverheadRatio() {
199
+ return 0.05;
200
+ }
201
+ snapshotBackend() {
202
+ return 'component-image';
203
+ }
204
+ }
205
+ // ===========================================================================
206
+ // Category 2 of 10 - gVisor
207
+ // ===========================================================================
208
+ /**
209
+ * Adapter 2/10 - gVisor runsc.
210
+ * The Sentry intercepts syscalls through the systrap platform (seccomp
211
+ * SECCOMP_RET_TRAP delivering SIGSYS), paying 10-30% on I/O-heavy workloads
212
+ * (up to 2x on syscall-bound ones). DirectFS narrows the filesystem gap;
213
+ * io_uring stays disabled by default for security.
214
+ */
215
+ export class GvisorEngine extends BaseEngine {
216
+ id = 'gvisor';
217
+ title = 'gVisor runsc (systrap)';
218
+ category = 'user-space kernel';
219
+ version = 'release-20260817.0';
220
+ capabilities = {
221
+ isolation: 'syscall-interception',
222
+ snapshotting: false,
223
+ networkEgress: true,
224
+ gpu: false,
225
+ selfHosted: true,
226
+ requiresKvm: false,
227
+ };
228
+ #platform = 'systrap';
229
+ #directFs = true;
230
+ setPlatform(platform) {
231
+ this.#platform = platform;
232
+ return this;
233
+ }
234
+ /** daemon.json fragment selecting runsc plus the runtime flag docker uses. */
235
+ dockerFlags() {
236
+ return {
237
+ daemonJson: JSON.stringify({ runtimes: { runsc: { path: '/usr/bin/runsc' } } }),
238
+ runFlag: ['--runtime=runsc'],
239
+ platformFlag: ['--platform', this.#platform],
240
+ };
241
+ }
242
+ /** DirectFS shortens the filesystem path by letting the Sentry talk to the host FD directly. */
243
+ get directFsEnabled() {
244
+ return this.#directFs;
245
+ }
246
+ /** Documented I/O overhead band relative to runc. */
247
+ overheadBand() {
248
+ return { low: 0.1, high: 0.3, syscallBoundWorst: 2.0 };
249
+ }
250
+ get coldBootMs() {
251
+ return 35; // Sentry startup plus first-fault handling
252
+ }
253
+ get execOverheadRatio() {
254
+ return this.#platform === 'systrap' ? 0.2 : 0.35;
255
+ }
256
+ snapshotBackend() {
257
+ throw new SandboxEngineError(this.id, 'runsc has no snapshot support');
258
+ }
259
+ }
260
+ // ===========================================================================
261
+ // Category 3 of 10 - Kata Containers
262
+ // ===========================================================================
263
+ /**
264
+ * Adapter 3/10 - Kata Containers 4.1.0.
265
+ * Runtime-rs (the Rust runtime, default since 4.0; the Go runtime is
266
+ * deprecated and freezes at bugfix-only) drives hardware-isolated
267
+ * microVMs. 4.1 adds OpenVMM support, Cloud Hypervisor VM templates,
268
+ * configurable nested virtualization and NVSwitch passthrough via IOMMUFD.
269
+ */
270
+ export class KataEngine extends BaseEngine {
271
+ id = 'kata';
272
+ title = 'Kata Containers runtime-rs';
273
+ category = 'microvm container runtime';
274
+ version = '4.1.0';
275
+ capabilities = {
276
+ isolation: 'container-vm',
277
+ snapshotting: true,
278
+ networkEgress: true,
279
+ gpu: true,
280
+ selfHosted: true,
281
+ requiresKvm: true,
282
+ };
283
+ #hypervisor = 'cloud-hypervisor';
284
+ setHypervisor(hypervisor) {
285
+ this.#hypervisor = hypervisor;
286
+ return this;
287
+ }
288
+ /** kata-runtime configuration fragments for the selected hypervisor. */
289
+ configurationToml() {
290
+ return [
291
+ 'runtime = "rust"', // runtime-rs is the default since 4.0; the Go runtime is frozen
292
+ 'enable_rootless = true',
293
+ `[hypervisor.${this.#hypervisor.replace('-', '_')}]`,
294
+ `path = "/usr/bin/${this.#hypervisor === 'openvmm' ? 'openvmm' : this.#hypervisor}"`,
295
+ ];
296
+ }
297
+ get coldBootMs() {
298
+ return this.#hypervisor === 'firecracker' ? 160 : 240;
299
+ }
300
+ get execOverheadRatio() {
301
+ return 0.03; // near-native once the VM is up; the VM boundary is the cost
302
+ }
303
+ perSandboxOverheadMiB() {
304
+ return 40; // one guest kernel per container
305
+ }
306
+ snapshotBackend() {
307
+ return 'criu';
308
+ }
309
+ }
310
+ // ===========================================================================
311
+ // Category 4 of 10 - Cloud Hypervisor
312
+ // ===========================================================================
313
+ /**
314
+ * Adapter 4/10 - Cloud Hypervisor v53.0.
315
+ * Rust VMM built from rust-vmm crates (KVM and MSHV backends). v53 ships an
316
+ * offloaded snapshot/restore daemon built on userfaultfd plus vhost-user,
317
+ * migratable VFIO devices on the same host (for example mlx5_vfio_pci) and
318
+ * experimental vfio-user devices through --user-device socket=<path>.
319
+ */
320
+ export class CloudHypervisorEngine extends BaseEngine {
321
+ id = 'cloud-hypervisor';
322
+ title = 'Cloud Hypervisor (rust-vmm)';
323
+ category = 'rust VMM';
324
+ version = '53.0';
325
+ capabilities = {
326
+ isolation: 'microvm',
327
+ snapshotting: true,
328
+ networkEgress: true,
329
+ gpu: true,
330
+ selfHosted: true,
331
+ requiresKvm: true,
332
+ };
333
+ /** Command line for a software-isolated guest with the snapshot daemon. */
334
+ launchCommand(cpus, memoryMb) {
335
+ return [
336
+ 'cloud-hypervisor',
337
+ '--cpus',
338
+ `boot=${cpus}`,
339
+ '--memory',
340
+ `size=${memoryMb}M`,
341
+ '--snapshot',
342
+ '/var/lib/vhe/ch-snap',
343
+ ];
344
+ }
345
+ /** vfio-user device attach command (experimental in v53). */
346
+ attachUserDevice(socketPath) {
347
+ return ['ch-remote', 'add-user-device', `socket=${socketPath}`];
348
+ }
349
+ get coldBootMs() {
350
+ return 90;
351
+ }
352
+ get execOverheadRatio() {
353
+ return 0.02;
354
+ }
355
+ perSandboxOverheadMiB() {
356
+ return 12;
357
+ }
358
+ snapshotBackend() {
359
+ return 'ch-offloaded';
360
+ }
361
+ }
362
+ // ===========================================================================
363
+ // Category 5 of 10 - WebContainers
364
+ // ===========================================================================
365
+ /**
366
+ * Adapter 5/10 - WebContainers (StackBlitz).
367
+ * Runs Node.js and npm entirely inside the browser sandbox over WebAssembly;
368
+ * boot is measured in milliseconds and the host contributes zero server
369
+ * footprint. The API is a commercial GA product; this adapter models the
370
+ * client-side contract (boot, command execution, teardown) for parity with
371
+ * server-side engines.
372
+ */
373
+ export class WebContainersEngine extends BaseEngine {
374
+ id = 'webcontainers';
375
+ title = 'WebContainers (Node.js in the browser)';
376
+ category = 'browser runtime';
377
+ version = 'ga';
378
+ capabilities = {
379
+ isolation: 'browser',
380
+ snapshotting: false,
381
+ networkEgress: false,
382
+ gpu: false,
383
+ selfHosted: false,
384
+ requiresKvm: false,
385
+ };
386
+ /** Client bootstrap snippet the host page evaluates. */
387
+ bootstrapSnippet() {
388
+ return 'const wc = await WebContainer.boot({ coep: "credentialless" });';
389
+ }
390
+ get coldBootMs() {
391
+ return 15;
392
+ }
393
+ get execOverheadRatio() {
394
+ return 0.15; // in-browser process emulation
395
+ }
396
+ perSandboxOverheadMiB() {
397
+ return 0; // memory lives in the client tab, not on the engine host
398
+ }
399
+ snapshotBackend() {
400
+ throw new SandboxEngineError(this.id, 'browser sandboxes cannot be snapshotted server-side');
401
+ }
402
+ }
403
+ // ===========================================================================
404
+ // Category 6 of 10 - Daytona
405
+ // ===========================================================================
406
+ /**
407
+ * Adapter 6/10 - Daytona.
408
+ * Creates stateful sandboxes in ~90ms, exposes MCP (Model Context Protocol)
409
+ * servers for agent integration, and can be self-hosted from the open-source
410
+ * core (the SaaS adds managed control planes and $200 of free compute).
411
+ */
412
+ export class DaytonaEngine extends BaseEngine {
413
+ id = 'daytona';
414
+ title = 'Daytona sandboxes';
415
+ category = 'self-hosted sandbox platform';
416
+ version = 'oss+saas';
417
+ capabilities = {
418
+ isolation: 'cloud-sandbox',
419
+ snapshotting: true,
420
+ networkEgress: true,
421
+ gpu: false,
422
+ selfHosted: true,
423
+ requiresKvm: false,
424
+ };
425
+ #mcpEnabled = true;
426
+ #region = 'local';
427
+ /** MCP server descriptor published for agent discovery. */
428
+ mcpDescriptor() {
429
+ return {
430
+ name: 'vhe-daytona',
431
+ transport: 'stdio',
432
+ tools: this.#mcpEnabled
433
+ ? ['sandbox.create', 'sandbox.exec', 'sandbox.pause', 'sandbox.resume']
434
+ : [],
435
+ };
436
+ }
437
+ setRegion(region) {
438
+ this.#region = region;
439
+ return this;
440
+ }
441
+ get region() {
442
+ return this.#region;
443
+ }
444
+ get coldBootMs() {
445
+ return 90;
446
+ }
447
+ get execOverheadRatio() {
448
+ return 0.08;
449
+ }
450
+ snapshotBackend() {
451
+ return 'state-pause';
452
+ }
453
+ }
454
+ // ===========================================================================
455
+ // Category 7 of 10 - Modal
456
+ // ===========================================================================
457
+ /**
458
+ * Adapter 7/10 - Modal.
459
+ * Serverless container platform built for AI workloads: 100k+ concurrent
460
+ * sandboxes per account, sub-second scheduling, elastic GPUs and sessions
461
+ * up to 24 hours. Python-first (JavaScript is secondary), with strong
462
+ * cold-start behavior for custom images.
463
+ */
464
+ export class ModalEngine extends BaseEngine {
465
+ id = 'modal';
466
+ title = 'Modal serverless sandboxes';
467
+ category = 'serverless container platform';
468
+ version = 'saas';
469
+ capabilities = {
470
+ isolation: 'cloud-sandbox',
471
+ snapshotting: true,
472
+ networkEgress: true,
473
+ gpu: true,
474
+ selfHosted: false,
475
+ requiresKvm: false,
476
+ };
477
+ #maxConcurrency = 100_000;
478
+ /** Concurrency ceiling the platform documents per account. */
479
+ get concurrencyCeiling() {
480
+ return this.#maxConcurrency;
481
+ }
482
+ /** Scheduling latency band: warm functions resume in milliseconds. */
483
+ schedulingBand() {
484
+ return { warmMs: 5, coldMs: 900, maxSessionHours: 24 };
485
+ }
486
+ get coldBootMs() {
487
+ return 250;
488
+ }
489
+ get execOverheadRatio() {
490
+ return 0.02;
491
+ }
492
+ snapshotBackend() {
493
+ return 'state-pause';
494
+ }
495
+ }
496
+ // ===========================================================================
497
+ // Category 8 of 10 - Fly.io Machines
498
+ // ===========================================================================
499
+ /**
500
+ * Adapter 8/10 - Fly.io Machines.
501
+ * Firecracker microVMs (the same foundation as AWS Lambda and Fargate)
502
+ * started and stopped through a global API across roughly 35 regions.
503
+ * Machines boot sub-second, snapshot fast and are addressable by private
504
+ * network, which makes them a natural multi-region sandbox backend.
505
+ */
506
+ export class FlyMachinesEngine extends BaseEngine {
507
+ id = 'fly-machines';
508
+ title = 'Fly.io Machines (global Firecracker)';
509
+ category = 'global microVM API';
510
+ version = 'saas';
511
+ capabilities = {
512
+ isolation: 'microvm',
513
+ snapshotting: true,
514
+ networkEgress: true,
515
+ gpu: false,
516
+ selfHosted: false,
517
+ requiresKvm: false,
518
+ };
519
+ #primaryRegion = 'gru';
520
+ setPrimaryRegion(region) {
521
+ this.#primaryRegion = region;
522
+ return this;
523
+ }
524
+ /** Region set the API can place machines in (2026 count: about 35). */
525
+ regionCount() {
526
+ return 35;
527
+ }
528
+ get primaryRegion() {
529
+ return this.#primaryRegion;
530
+ }
531
+ get coldBootMs() {
532
+ return 300;
533
+ }
534
+ get execOverheadRatio() {
535
+ return 0.01;
536
+ }
537
+ perSandboxOverheadMiB() {
538
+ return 5; // Firecracker per-VM overhead stays below 5 MiB
539
+ }
540
+ snapshotBackend() {
541
+ return 'firecracker-file';
542
+ }
543
+ }
544
+ /** Verified facts for each member of the E2B family. */
545
+ export const e2bFamilyFacts = {
546
+ e2b: {
547
+ title: 'E2B (Firecracker, SDK Apache-2.0)',
548
+ coldBootMs: 150,
549
+ snapshot: true,
550
+ note: 'sub-200ms cold start via Firecracker snapshot restore with UFFD; sessions cap at 24h',
551
+ },
552
+ morph: {
553
+ title: 'Morph (agent-parallel VMs)',
554
+ coldBootMs: 250,
555
+ snapshot: true,
556
+ note: 'forks a VM in ~250ms so agents can explore many parallel paths',
557
+ },
558
+ cognitora: {
559
+ title: 'Cognitora (AI code execution)',
560
+ coldBootMs: 220,
561
+ snapshot: false,
562
+ note: 'AI-first code execution platform; smaller footprint than E2B',
563
+ },
564
+ 'vercel-sandbox': {
565
+ title: 'Vercel Sandbox (GA 2026-01-30)',
566
+ coldBootMs: 200,
567
+ snapshot: false,
568
+ note: 'Firecracker-based; backed by a $1M HackerOne challenge announced August 2026',
569
+ },
570
+ };
571
+ /**
572
+ * Adapter 9/10 - the E2B family.
573
+ * One adapter implementation covers E2B and its direct competitors; the
574
+ * variant selects documented cold-start, snapshot support and positioning
575
+ * so comparisons stay apples-to-apples.
576
+ */
577
+ export class E2bFamilyEngine extends BaseEngine {
578
+ variant;
579
+ constructor(variant = 'e2b') {
580
+ super();
581
+ this.variant = variant;
582
+ }
583
+ get id() {
584
+ return this.variant;
585
+ }
586
+ get title() {
587
+ return e2bFamilyFacts[this.variant].title;
588
+ }
589
+ category = 'AI-first sandbox cloud';
590
+ version = 'saas';
591
+ get capabilities() {
592
+ return {
593
+ isolation: 'cloud-sandbox',
594
+ snapshotting: e2bFamilyFacts[this.variant].snapshot,
595
+ networkEgress: true,
596
+ gpu: false,
597
+ selfHosted: false,
598
+ requiresKvm: false,
599
+ };
600
+ }
601
+ positioning() {
602
+ return e2bFamilyFacts[this.variant].note;
603
+ }
604
+ get coldBootMs() {
605
+ return e2bFamilyFacts[this.variant].coldBootMs;
606
+ }
607
+ get execOverheadRatio() {
608
+ return 0.04;
609
+ }
610
+ perSandboxOverheadMiB() {
611
+ return 5; // all variants run on Firecracker-class microVMs
612
+ }
613
+ snapshotBackend() {
614
+ if (!e2bFamilyFacts[this.variant].snapshot) {
615
+ throw new SandboxEngineError(this.id, `${this.variant} does not expose snapshots`);
616
+ }
617
+ return 'firecracker-uffd';
618
+ }
619
+ }
620
+ // ===========================================================================
621
+ // Category 10 of 10 - Apple Containers
622
+ // ===========================================================================
623
+ /**
624
+ * Adapter 10/10 - Apple Containers 1.2.2.
625
+ * Swift open-source project running each Linux container inside a lightweight
626
+ * microVM optimized for Apple Silicon; boot lands under one second. WWDC26
627
+ * (2026-06-08) added "container machines" - persistent lightweight Linux
628
+ * environments configured through TOML.
629
+ */
630
+ export class AppleContainersEngine extends BaseEngine {
631
+ id = 'apple-containers';
632
+ title = 'Apple Containers (Swift microVMs on macOS)';
633
+ category = 'macOS container runtime';
634
+ version = '1.2.2';
635
+ capabilities = {
636
+ isolation: 'container-vm',
637
+ snapshotting: false,
638
+ networkEgress: true,
639
+ gpu: false,
640
+ selfHosted: true,
641
+ requiresKvm: false,
642
+ };
643
+ #machineMode = false;
644
+ /** Enables WWDC26 container machines (persistent Linux environments). */
645
+ useContainerMachines(enabled) {
646
+ this.#machineMode = enabled;
647
+ return this;
648
+ }
649
+ /** CLI invocation plus TOML config path when machine mode is active. */
650
+ runCommand(image) {
651
+ const base = ['container', 'run', '--pull', image];
652
+ return this.#machineMode ? [...base, '--config', '/etc/vhe/container-machine.toml'] : base;
653
+ }
654
+ get coldBootMs() {
655
+ return this.#machineMode ? 900 : 600; // <1s boot on Apple Silicon
656
+ }
657
+ get execOverheadRatio() {
658
+ return 0.05;
659
+ }
660
+ perSandboxOverheadMiB() {
661
+ return 20;
662
+ }
663
+ snapshotBackend() {
664
+ throw new SandboxEngineError(this.id, 'snapshotting is not exposed by container 1.2.2');
665
+ }
666
+ }
667
+ /**
668
+ * Factory registry: hosts register constructors, create engines lazily and
669
+ * resolve aliases (for example "runsc" resolves to gvisor). Unknown ids
670
+ * produce a helpful error listing the closest known ids.
671
+ */
672
+ export class EngineRegistry {
673
+ #factories = new Map();
674
+ #aliases = new Map();
675
+ #instances = new Map();
676
+ register(id, factory, aliases = []) {
677
+ this.#factories.set(id, factory);
678
+ for (const alias of aliases) {
679
+ this.#aliases.set(alias, id);
680
+ }
681
+ return this;
682
+ }
683
+ /** Creates (or reuses) the engine registered under id or one of its aliases. */
684
+ create(id) {
685
+ const resolved = this.#aliases.get(id) ?? id;
686
+ const factory = this.#factories.get(resolved);
687
+ if (factory === undefined) {
688
+ const known = [...this.#factories.keys()];
689
+ const suggestion = known.find((k) => k.includes(resolved) || resolved.includes(k));
690
+ const hint = suggestion === undefined
691
+ ? `known engines: ${known.join(', ')}`
692
+ : `did you mean "${suggestion}"?`;
693
+ throw new SandboxEngineError('registry', `unknown engine "${id}"; ${hint}`);
694
+ }
695
+ const existing = this.#instances.get(resolved);
696
+ if (existing !== undefined) {
697
+ return existing;
698
+ }
699
+ try {
700
+ const engine = factory();
701
+ this.#instances.set(resolved, engine);
702
+ return engine;
703
+ }
704
+ catch (err) {
705
+ throw new SandboxEngineError(resolved, `factory failed: ${String(err)}`);
706
+ }
707
+ }
708
+ list() {
709
+ return [...this.#factories.entries()].map(([id, factory]) => {
710
+ const engine = factory();
711
+ return {
712
+ id,
713
+ title: engine.title,
714
+ category: engine.category,
715
+ version: engine.version,
716
+ snapshotting: engine.capabilities.snapshotting,
717
+ };
718
+ });
719
+ }
720
+ get size() {
721
+ return this.#factories.size;
722
+ }
723
+ }
724
+ /** Registry pre-loaded with all ten engine categories. */
725
+ export function createDefaultEngineRegistry() {
726
+ return new EngineRegistry()
727
+ .register('wasmtime', () => new WasmtimeEngine(), ['wasm', 'wasi'])
728
+ .register('gvisor', () => new GvisorEngine(), ['runsc'])
729
+ .register('kata', () => new KataEngine(), ['kata-containers'])
730
+ .register('cloud-hypervisor', () => new CloudHypervisorEngine(), ['ch', 'cloudhypervisor'])
731
+ .register('webcontainers', () => new WebContainersEngine(), ['stackblitz'])
732
+ .register('daytona', () => new DaytonaEngine(), [])
733
+ .register('modal', () => new ModalEngine(), [])
734
+ .register('fly-machines', () => new FlyMachinesEngine(), ['fly', 'flyio'])
735
+ .register('e2b', () => new E2bFamilyEngine('e2b'), ['e2b-dev'])
736
+ .register('morph', () => new E2bFamilyEngine('morph'), ['morphllm'])
737
+ .register('cognitora', () => new E2bFamilyEngine('cognitora'), [])
738
+ .register('vercel-sandbox', () => new E2bFamilyEngine('vercel-sandbox'), ['vercel'])
739
+ .register('apple-containers', () => new AppleContainersEngine(), ['tupper', 'apple']);
740
+ }
741
+ /**
742
+ * Comparison matrix with the data verified on 2026-08-22. Boot times are the
743
+ * documented figures each adapter models; overhead strings quote the
744
+ * measured bands from the engine documentation.
745
+ */
746
+ export const comparisonMatrix = [
747
+ {
748
+ engine: 'wasmtime',
749
+ category: 'wasm runtime',
750
+ version: 'v48.0.0',
751
+ bootMs: 3,
752
+ overhead: 'epoch guard ~10%; near-native execution',
753
+ isolation: 'wasm sandbox, deny-by-default components',
754
+ snapshot: 'component image',
755
+ hosting: 'self-hosted (library)',
756
+ standout: 'fuel metering + epoch interruption, WASI 0.3 async',
757
+ },
758
+ {
759
+ engine: 'gvisor',
760
+ category: 'user-space kernel',
761
+ version: 'release-20260817.0',
762
+ bootMs: 35,
763
+ overhead: '10-30% I/O; up to 2x syscall-bound',
764
+ isolation: 'sentry syscall interception (systrap)',
765
+ snapshot: 'none',
766
+ hosting: 'self-hosted (OCI runtime)',
767
+ standout: 'DirectFS; runs unmodified OCI images',
768
+ },
769
+ {
770
+ engine: 'kata',
771
+ category: 'microvm container runtime',
772
+ version: '4.1.0',
773
+ bootMs: 240,
774
+ overhead: 'near-native after boot',
775
+ isolation: 'hardware-isolated microVM per container',
776
+ snapshot: 'criu + hypervisor snapshots',
777
+ hosting: 'self-hosted (Kubernetes CRI)',
778
+ standout: 'runtime-rs Rust default, OpenVMM support',
779
+ },
780
+ {
781
+ engine: 'cloud-hypervisor',
782
+ category: 'rust VMM',
783
+ version: 'v53.0',
784
+ bootMs: 90,
785
+ overhead: 'near-native',
786
+ isolation: 'KVM/MSHV microVM',
787
+ snapshot: 'offloaded userfaultfd daemon',
788
+ hosting: 'self-hosted (rust-vmm crates)',
789
+ standout: 'vfio-user devices, migratable VFIO same-host',
790
+ },
791
+ {
792
+ engine: 'webcontainers',
793
+ category: 'browser runtime',
794
+ version: 'ga api',
795
+ bootMs: 15,
796
+ overhead: 'in-browser process emulation',
797
+ isolation: 'browser sandbox (same-origin policies)',
798
+ snapshot: 'none',
799
+ hosting: 'client-side (commercial API)',
800
+ standout: 'Node.js + npm with zero server footprint',
801
+ },
802
+ {
803
+ engine: 'daytona',
804
+ category: 'self-hosted sandbox platform',
805
+ version: 'oss core + saas',
806
+ bootMs: 90,
807
+ overhead: 'light container layer',
808
+ isolation: 'container sandbox, stateful workspaces',
809
+ snapshot: 'pause/resume state',
810
+ hosting: 'self-hosted or saas',
811
+ standout: 'MCP integration for agents, $200 free compute',
812
+ },
813
+ {
814
+ engine: 'modal',
815
+ category: 'serverless containers',
816
+ version: 'saas',
817
+ bootMs: 250,
818
+ overhead: 'scheduling layer, near-native exec',
819
+ isolation: 'cloud sandbox, elastic GPUs',
820
+ snapshot: 'warm pool snapshots',
821
+ hosting: 'saas only',
822
+ standout: '100k+ concurrent sandboxes, 24h sessions',
823
+ },
824
+ {
825
+ engine: 'fly-machines',
826
+ category: 'global microVM API',
827
+ version: 'saas',
828
+ bootMs: 300,
829
+ overhead: 'near-native (Firecracker)',
830
+ isolation: 'Firecracker microVM, private network',
831
+ snapshot: 'firecracker snapshots',
832
+ hosting: 'saas (~35 regions)',
833
+ standout: 'sub-second start/stop through a global API',
834
+ },
835
+ {
836
+ engine: 'e2b',
837
+ category: 'AI-first sandbox cloud',
838
+ version: 'sdk apache-2.0',
839
+ bootMs: 150,
840
+ overhead: 'near-native (Firecracker + UFFD restore)',
841
+ isolation: 'microVM sandbox for agent code',
842
+ snapshot: 'uffd snapshot restore',
843
+ hosting: 'saas (self-host reference in e2b-dev/infra)',
844
+ standout: 'sub-200ms cold start, the benchmark the VHE targets',
845
+ },
846
+ {
847
+ engine: 'morph',
848
+ category: 'AI-first sandbox cloud',
849
+ version: 'saas',
850
+ bootMs: 250,
851
+ overhead: 'near-native',
852
+ isolation: 'forkable VM per agent path',
853
+ snapshot: 'vm fork',
854
+ hosting: 'saas',
855
+ standout: 'forks VMs in ~250ms for parallel agent exploration',
856
+ },
857
+ {
858
+ engine: 'vercel-sandbox',
859
+ category: 'AI-first sandbox cloud',
860
+ version: 'ga 2026-01-30',
861
+ bootMs: 200,
862
+ overhead: 'near-native (Firecracker)',
863
+ isolation: 'microVM sandbox',
864
+ snapshot: 'none documented',
865
+ hosting: 'saas',
866
+ standout: '$1M HackerOne challenge (August 2026) backs its security posture',
867
+ },
868
+ {
869
+ engine: 'apple-containers',
870
+ category: 'macOS container runtime',
871
+ version: '1.2.2',
872
+ bootMs: 600,
873
+ overhead: 'near-native on Apple Silicon',
874
+ isolation: 'lightweight microVM per container',
875
+ snapshot: 'none',
876
+ hosting: 'self-hosted (macOS)',
877
+ standout: 'WWDC26 container machines with TOML config, <1s boot',
878
+ },
879
+ ];
880
+ /** Renders the comparison matrix as a markdown table for docs and CI logs. */
881
+ export function renderComparisonTable(matrix = comparisonMatrix) {
882
+ const header = '| engine | category | version | boot ms | overhead | isolation | snapshot | hosting | standout |';
883
+ const divider = '|---|---|---|---|---|---|---|---|---|';
884
+ const rows = matrix.map((r) => `| ${r.engine} | ${r.category} | ${r.version} | ${r.bootMs} | ${r.overhead} | ${r.isolation} | ${r.snapshot} | ${r.hosting} | ${r.standout} |`);
885
+ return [header, divider, ...rows].join('\n');
886
+ }
887
+ /**
888
+ * Scores every registered engine against the criteria and returns them
889
+ * ranked with a rationale. Isolation strength ranks hardware microVMs and
890
+ * wasm above syscall interception and browser sandboxes; boot latency
891
+ * inversely follows the documented cold-start figure.
892
+ */
893
+ export function selectEngine(registry, criteria, matrix = comparisonMatrix) {
894
+ const isolationRank = {
895
+ microvm: 5,
896
+ 'container-vm': 5,
897
+ 'wasm-sandbox': 4,
898
+ 'syscall-interception': 3,
899
+ 'cloud-sandbox': 3,
900
+ browser: 2,
901
+ };
902
+ const rows = [];
903
+ for (const row of matrix) {
904
+ try {
905
+ const engine = registry.create(row.engine);
906
+ const caps = engine.capabilities;
907
+ const reasons = [];
908
+ let score = 0;
909
+ const bootScore = (100 / Math.max(1, row.bootMs)) * 50;
910
+ score += criteria.bootLatency * bootScore * 0.1;
911
+ reasons.push(`boot ${row.bootMs}ms`);
912
+ const isoScore = isolationRank[caps.isolation];
913
+ score += criteria.isolation * isoScore * 2;
914
+ reasons.push(`isolation ${caps.isolation}`);
915
+ if (criteria.needSnapshot && caps.snapshotting) {
916
+ score += 10;
917
+ reasons.push('snapshots available');
918
+ }
919
+ else if (criteria.needSnapshot) {
920
+ score -= 15;
921
+ reasons.push('no snapshots');
922
+ }
923
+ if (criteria.needGpu && caps.gpu) {
924
+ score += 10;
925
+ reasons.push('gpu passthrough');
926
+ }
927
+ else if (criteria.needGpu) {
928
+ score -= 10;
929
+ reasons.push('no gpu');
930
+ }
931
+ if (criteria.needSelfHosted && caps.selfHosted) {
932
+ score += 10;
933
+ reasons.push('self-hosted');
934
+ }
935
+ else if (criteria.needSelfHosted) {
936
+ score -= 20;
937
+ reasons.push('saas only');
938
+ }
939
+ rows.push({
940
+ engine: row.engine,
941
+ score: Number(score.toFixed(2)),
942
+ rationale: reasons.join('; '),
943
+ });
944
+ }
945
+ catch {
946
+ // engines the registry cannot instantiate are skipped from ranking
947
+ }
948
+ }
949
+ return rows.sort((a, b) => b.score - a.score);
950
+ }
951
+ //# sourceMappingURL=alternatives.js.map