@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
@@ -1,1227 +0,0 @@
1
- # assistant
2
-
3
- [Thinking] The user is asking me to continue researching and provide a comprehensive step-by-step implementation plan for their sandbox platform. They want to use:
4
-
5
- Free infrastructure from repositories (GitHub, GitLab, Forgejo, Gitea, Codeberg)
6
- Free GPU platforms (HuggingFace, Kaggle, ModelScope)
7
- Memory conversion (storage → RAM) using zram, tmpfs, etc.
8
- ORMs and databases (Prisma, Drizzle, MySQL2, SQLite)
9
- Open source projects and libraries
10
- Publish as npm package and open source repo
11
- Use CDN (jsdelivr/esm) for execution
12
-
13
- They specifically mention:
14
-
15
- Using the storage from these repos/buckets to convert to RAM
16
- Using their infrastructure for storage
17
- npm packages with CDN availability
18
- Two fronts: own library + third-party libraries
19
-
20
- I'm in plan mode, so I can only read, search, and plan - no edits. Let me search for more specific information about:
21
-
22
- jsdelivr/esm CDN for npm packages
23
- More specific implementation details
24
- How to use repo storage as memory
25
-
26
- [Thinking] Now I have comprehensive information about:
27
-
28
- jsdelivr/esm CDN for npm packages
29
- GitHub as filesystem storage (git-fs, github-filesystem)
30
- Cloudflare R2 for storage
31
- Virtual filesystems (memfs, @platformatic/vfs)
32
-
33
- Let me now create a comprehensive plan that covers all the user's requirements. The user wants:
34
-
35
- A sandbox platform using free infrastructure
36
- Memory conversion (storage → RAM)
37
- Using repo storage as memory
38
- npm package with CDN availability
39
- Two fronts: own library + third-party
40
-
41
- Let me create the final comprehensive plan.
42
-
43
- [Thinking] Now let me create the comprehensive final plan.
44
-
45
- [Thinking] I've provided a comprehensive plan. Let me now ask the user if they want me to implement any specific part.
46
-
47
- PLANO FINAL COMPLETO: Plataforma Sandbox + Memória Virtual Contínua
48
-
49
- VISÃO GERAL: O QUE VOCÊ QUER FAZER
50
- ┌─────────────────────────────────────────────────────────────────────────────┐
51
- │ SANDBOX PLATFORM - VISÃO GERAL │
52
- │ │
53
- │ USUÁRIO cria sandbox → SISTEMA cria repositório → PIPELINE roda → │
54
- │ RUNNER executa Linux/Docker → MEMÓRIA converte storage→RAM → │
55
- │ SNAPSHOT persiste estado → CDN disponibiliza pacotes │
56
- │ │
57
- │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
58
- │ │ Repositórios │ │ Pipelines │ │ Memória │ │ CDN/Edge │ │
59
- │ │ (GitHub, │ │ (GitHub │ │ Virtual │ │ (jsdelivr, │ │
60
- │ │ GitLab, │ │ Actions, │ │ (zram, │ │ esm.sh, │ │
61
- │ │ Forgejo) │ │ GitLab CI) │ │ tmpfs, │ │ Cloudflare) │ │
62
- │ └──────────────┘ └──────────────┘ │ overlay) │ └──────────────┘ │
63
- │ └──────────────┘ │
64
- └─────────────────────────────────────────────────────────────────────────────┘
65
-
66
- PARTE 1: MAPA COMPLETO DE INFRAESTRUTURA GRATUITA
67
- 1.1 Repositórios + CI/CD
68
-
69
-
70
-
71
- Plataforma
72
- RAM
73
- CPU
74
- Storage
75
- GPU
76
- Minutos
77
- URL
78
-
79
-
80
-
81
- GitHub (público)
82
- 16 GB
83
- 4 vCPU
84
- 14 GB
85
- Não
86
- Ilimitado
87
- github.com
88
-
89
-
90
- GitHub (privado)
91
- 16 GB
92
- 4 vCPU
93
- 14 GB
94
- Não
95
- 2.000/mês
96
- github.com
97
-
98
-
99
- GitLab Free
100
- 8 GB
101
- 2 vCPU
102
- 30 GB
103
- Não
104
- 400/mês
105
- gitlab.com
106
-
107
-
108
- Codeberg (Forgejo)
109
- 8 GB
110
- 4 vCPU
111
- -
112
- Não
113
- -
114
- codeberg.org
115
-
116
-
117
- Forgejo self-hosted
118
- Ilimitado
119
- Ilimitado
120
- Ilimitado
121
- Não
122
- Ilimitado
123
- Auto-hospedado
124
-
125
-
126
- 1.2 Plataformas GPU Gratuita
127
-
128
-
129
-
130
- Plataforma
131
- RAM
132
- GPU
133
- VRAM
134
- Limite
135
- Preço
136
-
137
-
138
-
139
- HuggingFace (free)
140
- 16 GB
141
- Não
142
- -
143
- 2 dias inativo
144
- $0
145
-
146
-
147
- HuggingFace (T4)
148
- 15 GB
149
- T4
150
- 16 GB
151
- Ilimitado
152
- $0.40/h
153
-
154
-
155
- Kaggle
156
- 29 GB
157
- T4 x2
158
- 16 GB
159
- 30h/semana
160
- $0
161
-
162
-
163
- ModelScope
164
- Variável
165
- Variável
166
- Variável
167
- Free tier
168
- $0
169
-
170
-
171
- 1.3 Storage Gratuito
172
-
173
-
174
-
175
- Plataforma
176
- Storage
177
- Bandwidth
178
- Uso
179
-
180
-
181
-
182
- GitHub LFS
183
- 1 GB
184
- 1 GB/mês
185
- Repositórios
186
-
187
-
188
- Cloudflare R2
189
- 10 GB
190
- Ilimitado
191
- Buckets
192
-
193
-
194
- Cloudflare Workers
195
- 100K req/dia
196
- Ilimitado
197
- API
198
-
199
-
200
- jsdelivr CDN
201
- Ilimitado
202
- Ilimitado
203
- Pacotes npm
204
-
205
-
206
- HuggingFace Hub
207
- Ilimitado
208
- Ilimitado
209
- Modelos/Dados
210
-
211
-
212
-
213
- PARTE 2: BIBLIOTECAS DE MEMÓRIA VIRTUAL
214
- 2.1 Conversão Storage → RAM
215
-
216
-
217
-
218
- Biblioteca
219
- npm/pip
220
- O que faz
221
- RAM
222
-
223
-
224
-
225
- memfs
226
- npm i memfs
227
- Filesystem em RAM com API fs
228
- Voluntário
229
-
230
-
231
- @platformatic/vfs
232
- npm i @platformatic/vfs
233
- VFS com SQLite provider
234
- Voluntário
235
-
236
-
237
- chuk-virtual-fs
238
- pip install chuk-virtual-fs
239
- Virtual FS multi-backend
240
- Voluntário
241
-
242
-
243
- mirage
244
- pip install mirage-ai
245
- 50+ backends (RAM, Redis, S3)
246
- Voluntário
247
-
248
-
249
- ems
250
- npm i ems
251
- Memória compartilhada cross-process
252
- Voluntário
253
-
254
-
255
- node-shared-mem
256
- npm i node-shared-mem
257
- Shared memory via N-API
258
- Voluntário
259
-
260
-
261
- 2.2 GitHub como Storage (converte repo → RAM)
262
-
263
-
264
-
265
- Biblioteca
266
- npm
267
- O que faz
268
-
269
-
270
-
271
- github-filesystem
272
- npm i github-filesystem
273
- GitHub como filesystem (commit/instant mode)
274
-
275
-
276
- git-fs
277
- npm i git-fs
278
- Virtual FS hidratado da GitHub API
279
-
280
-
281
- github-storage
282
- npm i github-storage
283
- GitHub como file database
284
-
285
-
286
- @platformatic/vfs
287
- npm i @platformatic/vfs
288
- VFS com mount de GitHub
289
-
290
-
291
- 2.3 Bancos em Memória
292
-
293
-
294
-
295
- Biblioteca
296
- npm/pip
297
- Backend
298
- Uso
299
-
300
-
301
-
302
- Drizzle ORM
303
- npm i drizzle-orm
304
- SQLite/MySQL/PostgreSQL
305
- ORM TypeScript
306
-
307
-
308
- Prisma
309
- npm i prisma
310
- SQLite/MySQL/PostgreSQL
311
- ORM TypeScript
312
-
313
-
314
- better-sqlite3
315
- npm i better-sqlite3
316
- SQLite
317
- Driver nativo
318
-
319
-
320
- mysql2
321
- npm i mysql2
322
- MySQL
323
- Driver MySQL
324
-
325
-
326
- SQLite in-memory
327
- Nativo
328
- :memory:
329
- Banco efêmero
330
-
331
-
332
- 2.4 Bridges Node.js ↔ Python
333
-
334
-
335
-
336
- Biblioteca
337
- npm
338
- O que faz
339
-
340
-
341
-
342
- pythonia
343
- npm i pythonia
344
- Chama Python de Node.js
345
-
346
-
347
- pymport
348
- npm i pymport
349
- Bibliotecas Python nativas
350
-
351
-
352
- nodepyx
353
- npm i nodepyx
354
- CPython embutido
355
-
356
-
357
-
358
- PARTE 3: ARQUITETURA DA PLATAFORMA
359
- ┌─────────────────────────────────────────────────────────────────────────────┐
360
- │ PLATAFORMA SANDBOX.IO │
361
- │ │
362
- │ ┌─────────────────────────────────────────────────────────────────────┐ │
363
- │ │ CDN LAYER (jsdelivr + esm.sh) │ │
364
- │ │ import { Sandbox } from 'https://esm.run/@sandbox-platform/core' │ │
365
- │ └─────────────────────────────────────────────────────────────────────┘ │
366
- │ │ │
367
- │ ┌─────────────────────────────────┴─────────────────────────────────┐ │
368
- │ │ API LAYER (Cloudflare Workers) │ │
369
- │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
370
- │ │ │ POST │ │ GET │ │ WS │ │ Cron │ │ │
371
- │ │ │ /sandbox │ │ /status │ │ /exec │ │ /cleanup │ │ │
372
- │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │
373
- │ └───────────────────────────────────────────────────────────────────┘ │
374
- │ │ │
375
- │ ┌─────────────────────────────────┴─────────────────────────────────┐ │
376
- │ │ ORQUESTRADOR (Node.js + Drizzle) │ │
377
- │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
378
- │ │ │ GitHub │ │ GitLab │ │ Forgejo │ │ Hugging │ │ │
379
- │ │ │ Actions │ │ CI │ │ Actions │ │ Face │ │ │
380
- │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │
381
- │ └───────────────────────────────────────────────────────────────────┘ │
382
- │ │ │
383
- │ ┌─────────────────────────────────┴─────────────────────────────────┐ │
384
- │ │ MEMÓRIA VIRTUAL CONTÍNUA │ │
385
- │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
386
- │ │ │ zram │ │ tmpfs │ │ overlay │ │ SQLite │ │ │
387
- │ │ │ (swap │ │ (/tmp │ │ (CoW │ │ in- │ │ │
388
- │ │ │ compr.) │ │ em RAM) │ │ RAM) │ │ memory │ │ │
389
- │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │
390
- │ └───────────────────────────────────────────────────────────────────┘ │
391
- │ │ │
392
- │ ┌─────────────────────────────────┴─────────────────────────────────┐ │
393
- │ │ SANDBOX RUNNERS │ │
394
- │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
395
- │ │ │ Docker │ │ kern │ │ QEMU │ │ Fire- │ │ │
396
- │ │ │ Engine │ │ rootless │ │ microVM │ │ cracker │ │ │
397
- │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │
398
- │ └───────────────────────────────────────────────────────────────────┘ │
399
- └─────────────────────────────────────────────────────────────────────────────┘
400
-
401
- PARTE 4: SCRIPTS DE IMPLEMENTAÇÃO
402
- 4.1 Estrutura do Projeto
403
- sandbox-platform/
404
- ├── package.json
405
- ├── tsconfig.json
406
- ├── wrangler.toml # Cloudflare Workers config
407
- ├── src/
408
- │ ├── index.ts # Entry point (Worker)
409
- │ ├── api/
410
- │ │ ├── sandbox.ts # CRUD de sandboxes
411
- │ │ ├── memory.ts # Gerenciamento de memória
412
- │ │ └── webhook.ts # Webhooks de pipeline
413
- │ ├── orchestrator/
414
- │ │ ├── index.ts # Orquestrador principal
415
- │ │ ├── github.ts # GitHub Actions
416
- │ │ ├── gitlab.ts # GitLab CI
417
- │ │ ├── forgejo.ts # Forgejo/Gitea
418
- │ │ └── huggingface.ts # HuggingFace Spaces
419
- │ ├── memory/
420
- │ │ ├── virtual-memory.ts # Memória virtual (memfs)
421
- │ │ ├── memory-bridge.ts # Bridge storage→RAM
422
- │ │ ├── zram-manager.ts # zram setup
423
- │ │ └── github-fs.ts # GitHub como filesystem
424
- │ ├── db/
425
- │ │ ├── schema.ts # Drizzle schema
426
- │ │ └── index.ts # Database (SQLite :memory:)
427
- │ └── utils/
428
- │ ├── crypto.ts
429
- │ └── logger.ts
430
- ├── workflows/ # Templates de workflow
431
- │ ├── github-sandbox.yml
432
- │ ├── gitlab-sandbox.yml
433
- │ ├── forgejo-sandbox.yml
434
- │ └── huggingface-dockerfile
435
- ├── packages/
436
- │ └── core/ # Pacote npm principal
437
- │ ├── package.json
438
- │ └── src/
439
- │ └── index.ts
440
- └── README.md
441
- 4.2 package.json
442
- {
443
- "name": "@sandbox-platform/core",
444
- "version": "1.0.0",
445
- "description": "Plataforma de sandbox com memória virtual contínua",
446
- "type": "module",
447
- "main": "dist/index.js",
448
- "types": "dist/index.d.ts",
449
- "exports": {
450
- ".": {
451
- "import": "./dist/index.js",
452
- "types": "./dist/index.d.ts"
453
- },
454
- "./memory": {
455
- "import": "./dist/memory/index.js",
456
- "types": "./dist/memory/index.d.ts"
457
- },
458
- "./orchestrator": {
459
- "import": "./dist/orchestrator/index.js",
460
- "types": "./dist/orchestrator/index.d.ts"
461
- }
462
- },
463
- "scripts": {
464
- "build": "tsc",
465
- "dev": "tsx watch src/index.ts",
466
- "test": "vitest",
467
- "deploy": "wrangler deploy",
468
- "prepublishOnly": "npm run build"
469
- },
470
- "dependencies": {
471
- "drizzle-orm": "^0.30.0",
472
- "better-sqlite3": "^11.0.0",
473
- "memfs": "^4.6.0",
474
- "hono": "^4.0.0",
475
- "@hono/node-server": "^1.0.0",
476
- "zod": "^3.23.0"
477
- },
478
- "peerDependencies": {
479
- "typescript": "^5.0.0"
480
- },
481
- "keywords": [
482
- "sandbox",
483
- "virtual-memory",
484
- "github-actions",
485
- "gitlab-ci",
486
- "forgejo",
487
- "huggingface",
488
- "zram",
489
- "tmpfs",
490
- "memfs"
491
- ],
492
- "license": "MIT",
493
- "repository": {
494
- "type": "git",
495
- "url": "https://github.com/your-org/sandbox-platform"
496
- },
497
- "files": [
498
- "dist",
499
- "README.md"
500
- ]
501
- }
502
- 4.3 Drizzle Schema (banco em memória)
503
- // src/db/schema.ts
504
- import { sqliteTable, text, integer, blob } from 'drizzle-orm/sqlite-core';
505
-
506
- export const sandboxes = sqliteTable('sandboxes', {
507
- id: text('id').primaryKey(),
508
- userId: text('user_id').notNull(),
509
- platform: text('platform').notNull(), // github|gitlab|forgejo|huggingface
510
- status: text('status').notNull(), // creating|running|stopped|destroyed
511
- ramLimit: integer('ram_limit').notNull(), // MB
512
- cpuLimit: integer('cpu_limit').notNull(),
513
- gpuEnabled: integer('gpu_enabled', { mode: 'boolean' }).default(false),
514
- repoUrl: text('repo_url'),
515
- workflowId: text('workflow_id'),
516
- memorySnapshot: blob('memory_snapshot'), // Snapshot da memória
517
- createdAt: text('created_at').notNull(),
518
- expiresAt: text('expires_at'),
519
- });
520
-
521
- export const memoryRegions = sqliteTable('memory_regions', {
522
- id: text('id').primaryKey(),
523
- sandboxId: text('sandbox_id').references(() => sandboxes.id),
524
- type: text('type').notNull(), // zram|tmpfs|overlay|sqlite|github
525
- mountPoint: text('mount_point').notNull(),
526
- sizeBytes: integer('size_bytes').notNull(),
527
- usedBytes: integer('used_bytes').default(0),
528
- compressedSize: integer('compressed_size'),
529
- data: blob('data'), // Dados em RAM
530
- storagePath: text('storage_path'), // Path no storage externo
531
- createdAt: text('created_at').notNull(),
532
- });
533
-
534
- export const packages = sqliteTable('packages', {
535
- id: text('id').primaryKey(),
536
- name: text('name').notNull(),
537
- version: text('version').notNull(),
538
- registry: text('registry').notNull(), // npm|pypi|crates
539
- cdnUrl: text('cdn_url'), // jsdelivr/esm.sh URL
540
- storageUrl: text('storage_url'), // GitHub/R2 URL
541
- sizeBytes: integer('size_bytes').notNull(),
542
- cachedInRam: integer('cached_in_ram', { mode: 'boolean' }).default(false),
543
- });
544
- 4.4 Database Index (SQLite in-memory)
545
- // src/db/index.ts
546
- import { drizzle } from 'drizzle-orm/better-sqlite3';
547
- import Database from 'better-sqlite3';
548
- import * as schema from './schema';
549
-
550
- // SQLite EM MEMÓRIA - zero I/O disco
551
- const sqlite = new Database(':memory:');
552
-
553
- // Criar tabelas
554
- sqlite.exec(`
555
- CREATE TABLE IF NOT EXISTS sandboxes (
556
- id TEXT PRIMARY KEY,
557
- user_id TEXT NOT NULL,
558
- platform TEXT NOT NULL,
559
- status TEXT NOT NULL,
560
- ram_limit INTEGER NOT NULL,
561
- cpu_limit INTEGER NOT NULL,
562
- gpu_enabled INTEGER DEFAULT 0,
563
- repo_url TEXT,
564
- workflow_id TEXT,
565
- memory_snapshot BLOB,
566
- created_at TEXT NOT NULL,
567
- expires_at TEXT
568
- );
569
-
570
- CREATE TABLE IF NOT EXISTS memory_regions (
571
- id TEXT PRIMARY KEY,
572
- sandbox_id TEXT REFERENCES sandboxes(id),
573
- type TEXT NOT NULL,
574
- mount_point TEXT NOT NULL,
575
- size_bytes INTEGER NOT NULL,
576
- used_bytes INTEGER DEFAULT 0,
577
- compressed_size INTEGER,
578
- data BLOB,
579
- storage_path TEXT,
580
- created_at TEXT NOT NULL
581
- );
582
-
583
- CREATE TABLE IF NOT EXISTS packages (
584
- id TEXT PRIMARY KEY,
585
- name TEXT NOT NULL,
586
- version TEXT NOT NULL,
587
- registry TEXT NOT NULL,
588
- cdn_url TEXT,
589
- storage_url TEXT,
590
- size_bytes INTEGER NOT NULL,
591
- cached_in_ram INTEGER DEFAULT 0
592
- );
593
- `);
594
-
595
- export const db = drizzle(sqlite, { schema });
596
- 4.5 Orquestrador Principal
597
- // src/orchestrator/index.ts
598
- import { db } from '../db';
599
- import { sandboxes, memoryRegions } from '../db/schema';
600
-
601
- interface SandboxConfig {
602
- userId: string;
603
- ramLimit: number; // MB
604
- cpuLimit: number;
605
- gpuEnabled?: boolean;
606
- packages?: string[];
607
- platform?: 'github' | 'gitlab' | 'forgejo' | 'huggingface';
608
- autoSnapshot?: boolean;
609
- ttl?: number; // horas
610
- }
611
-
612
- export class SandboxOrchestrator {
613
-
614
- async createSandbox(config: SandboxConfig): Promise<string> {
615
- const sandboxId = `sbx-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
616
-
617
- // Auto-escolher plataforma
618
- const platform = config.platform || this.selectPlatform(config);
619
-
620
- // Criar registro no banco (em memória)
621
- await db.insert(sandboxes).values({
622
- id: sandboxId,
623
- userId: config.userId,
624
- platform,
625
- status: 'creating',
626
- ramLimit: config.ramLimit,
627
- cpuLimit: config.cpuLimit,
628
- gpuEnabled: config.gpuEnabled || false,
629
- createdAt: new Date().toISOString(),
630
- expiresAt: config.ttl
631
- ? new Date(Date.now() + config.ttl * 3600000).toISOString()
632
- : null,
633
- });
634
-
635
- // Criar regiões de memória
636
- await this.createMemoryRegions(sandboxId, config);
637
-
638
- // Disparar workflow na plataforma
639
- await this.triggerWorkflow(sandboxId, platform, config);
640
-
641
- return sandboxId;
642
- }
643
-
644
- private selectPlatform(config: SandboxConfig): string {
645
- if (config.gpuEnabled) return 'huggingface';
646
- if (config.ramLimit > 16384) return 'gitlab';
647
- return 'github'; // Padrão: ilimitado para públicos
648
- }
649
-
650
- private async createMemoryRegions(sandboxId: string, config: SandboxConfig) {
651
- const regions = [
652
- { type: 'zram', mountPoint: '/swap', sizeBytes: config.ramLimit * 1024 * 1024 },
653
- { type: 'tmpfs', mountPoint: '/tmp', sizeBytes: 4 * 1024 * 1024 * 1024 },
654
- { type: 'tmpfs', mountPoint: '/workspace', sizeBytes: 4 * 1024 * 1024 * 1024 },
655
- { type: 'overlay', mountPoint: '/overlay', sizeBytes: 2 * 1024 * 1024 * 1024 },
656
- { type: 'sqlite', mountPoint: ':memory:', sizeBytes: 512 * 1024 * 1024 },
657
- ];
658
-
659
- for (const region of regions) {
660
- await db.insert(memoryRegions).values({
661
- id: `${sandboxId}-${region.type}`,
662
- sandboxId,
663
- type: region.type,
664
- mountPoint: region.mountPoint,
665
- sizeBytes: region.sizeBytes,
666
- createdAt: new Date().toISOString(),
667
- });
668
- }
669
- }
670
-
671
- private async triggerWorkflow(sandboxId: string, platform: string, config: SandboxConfig) {
672
- switch (platform) {
673
- case 'github':
674
- await this.triggerGitHubWorkflow(sandboxId, config);
675
- break;
676
- case 'gitlab':
677
- await this.triggerGitLabPipeline(sandboxId, config);
678
- break;
679
- case 'forgejo':
680
- await this.triggerForgejoWorkflow(sandboxId, config);
681
- break;
682
- case 'huggingface':
683
- await this.triggerHuggingFaceSpace(sandboxId, config);
684
- break;
685
- }
686
- }
687
-
688
- private async triggerGitHubWorkflow(sandboxId: string, config: SandboxConfig) {
689
- const workflow = this.generateGitHubWorkflow(sandboxId, config);
690
-
691
- // Criar repositório
692
- await fetch(`https://api.github.com/orgs/${process.env.GITHUB_ORG}/repos`, {
693
- method: 'POST',
694
- headers: {
695
- 'Authorization': `token ${process.env.GITHUB_TOKEN}`,
696
- 'Content-Type': 'application/json',
697
- },
698
- body: JSON.stringify({
699
- name: `sandbox-${sandboxId}`,
700
- private: true,
701
- auto_init: true,
702
- }),
703
- });
704
-
705
- // Criar workflow
706
- await fetch(
707
- `https://api.github.com/repos/${process.env.GITHUB_ORG}/sandbox-${sandboxId}/contents/.github/workflows/sandbox.yml`,
708
- {
709
- method: 'PUT',
710
- headers: {
711
- 'Authorization': `token ${process.env.GITHUB_TOKEN}`,
712
- 'Content-Type': 'application/json',
713
- },
714
- body: JSON.stringify({
715
- message: 'Create sandbox workflow',
716
- content: Buffer.from(workflow).toString('base64'),
717
- }),
718
- }
719
- );
720
-
721
- // Disparar workflow
722
- await fetch(
723
- `https://api.github.com/repos/${process.env.GITHUB_ORG}/sandbox-${sandboxId}/actions/workflows/sandbox.yml/dispatches`,
724
- {
725
- method: 'POST',
726
- headers: {
727
- 'Authorization': `token ${process.env.GITHUB_TOKEN}`,
728
- 'Content-Type': 'application/json',
729
- },
730
- body: JSON.stringify({
731
- ref: 'main',
732
- inputs: {
733
- ram_limit: `${config.ramLimit}M`,
734
- cpu_limit: config.cpuLimit.toString(),
735
- packages: config.packages?.join(' ') || '',
736
- },
737
- }),
738
- }
739
- );
740
- }
741
-
742
- private generateGitHubWorkflow(sandboxId: string, config: SandboxConfig): string {
743
- return `
744
- name: Sandbox ${sandboxId}
745
-
746
- on:
747
- workflow_dispatch:
748
- inputs:
749
- ram_limit:
750
- default: '${config.ramLimit}M'
751
- cpu_limit:
752
- default: '${config.cpuLimit}'
753
- packages:
754
- default: '${config.packages?.join(' ') || ''}'
755
-
756
- jobs:
757
- sandbox:
758
- runs-on: ubuntu-latest
759
-
760
- container:
761
- image: ubuntu:22.04
762
- options: >-
763
- --memory \${{ github.event.inputs.ram_limit }}
764
- --cpus \${{ github.event.inputs.cpu_limit }}
765
- --tmpfs /tmp:size=4G
766
- --tmpfs /run:size=2G
767
- --tmpfs /workspace:size=4G
768
-
769
- steps:
770
- - name: Setup zram (storage → RAM comprimida)
771
- run: |
772
- modprobe zram
773
- echo lz4 > /sys/block/zram0/comp_algorithm
774
- echo 8G > /sys/block/zram0/disksize
775
- mkswap /dev/zram0
776
- swapon /dev/zram0
777
- echo "=== zram configurado ==="
778
- zramctl
779
-
780
- - name: Setup tmpfs (storage → RAM puro)
781
- run: |
782
- mount -t tmpfs -o size=4G tmpfs /workspace
783
- mount -t tmpfs -o size=2G tmpfs /tmp
784
- echo "=== tmpfs configurado ==="
785
- df -h /workspace /tmp
786
-
787
- - name: Setup overlay (CoW em RAM)
788
- run: |
789
- mkdir -p /overlay-upper /overlay-work /merged
790
- mount -t overlay overlay \\
791
- -o lowerdir=/lower,upperdir=/overlay-upper,workdir=/overlay-work \\
792
- /merged
793
- echo "=== overlay configurado ==="
794
-
795
- - name: Install packages
796
- run: |
797
- apt-get update
798
- apt-get install -y \${{ github.event.inputs.packages }}
799
-
800
- - name: Setup SQLite in-memory
801
- run: |
802
- echo "=== SQLite in-memory configurado ==="
803
- echo "Banco de dados em RAM, zero I/O disco"
804
-
805
- - name: Verify resources
806
- run: |
807
- echo "=== RAM ==="
808
- free -h
809
- echo "=== zram ==="
810
- zramctl
811
- echo "=== tmpfs ==="
812
- df -h /workspace /tmp
813
- echo "=== Disk ==="
814
- df -h /
815
- echo "=== CPU ==="
816
- nproc
817
-
818
- - name: Run sandbox
819
- working-directory: /workspace
820
- run: |
821
- echo "Sandbox ${sandboxId} is running!"
822
- echo "RAM total: \$(free -h | grep Mem | awk '{print \$2}')"
823
- echo "RAM comprimida (zram): \$(zramctl | tail -1 | awk '{print \$4}')"
824
- echo "tmpfs /workspace: \$(df -h /workspace | tail -1 | awk '{print \$2}')"
825
-
826
- # Manter sandbox vivo
827
- sleep 3600
828
- `;
829
- }
830
- }
831
- 4.6 Memória Virtual (memfs + Bridge)
832
- // src/memory/virtual-memory.ts
833
- import { fs, Volume } from 'memfs';
834
-
835
- export class VirtualMemory {
836
- private volumes: Map<string, ReturnType<typeof Volume.create>> = new Map();
837
-
838
- constructor() {
839
- // Criar volumes em RAM
840
- this.createVolume('system', 8 * 1024 * 1024 * 1024); // 8 GB
841
- this.createVolume('workspace', 4 * 1024 * 1024 * 1024); // 4 GB
842
- this.createVolume('packages', 2 * 1024 * 1024 * 1024); // 2 GB
843
- }
844
-
845
- private createVolume(name: string, sizeBytes: number) {
846
- const vol = Volume.create({ size: sizeBytes });
847
- this.volumes.set(name, vol);
848
- fs.mountVol(`/${name}`, vol);
849
- }
850
-
851
- // Ler arquivo da memória virtual
852
- async read(path: string): Promise<Buffer> {
853
- return new Promise((resolve, reject) => {
854
- fs.readFile(path, (err, data) => {
855
- if (err) reject(err);
856
- else resolve(data as Buffer);
857
- });
858
- });
859
- }
860
-
861
- // Escrever arquivo na memória virtual
862
- async write(path: string, data: Buffer): Promise<void> {
863
- return new Promise((resolve, reject) => {
864
- fs.writeFile(path, data, (err) => {
865
- if (err) reject(err);
866
- else resolve();
867
- });
868
- });
869
- }
870
-
871
- // Cache de pacotes npm em RAM
872
- async cachePackage(name: string, version: string, data: Buffer): Promise<string> {
873
- const path = `/packages/${name}@${version}.js`;
874
- await this.write(path, data);
875
- return path;
876
- }
877
-
878
- // Ler pacote do cache
879
- async getCachedPackage(name: string, version: string): Promise<Buffer | null> {
880
- const path = `/packages/${name}@${version}.js`;
881
- try {
882
- return await this.read(path);
883
- } catch {
884
- return null;
885
- }
886
- }
887
- }
888
- 4.7 GitHub como Storage (converte repo → RAM)
889
- // src/memory/github-fs.ts
890
- export class GitHubFileSystem {
891
- private token: string;
892
- private cache: Map<string, Buffer> = new Map();
893
-
894
- constructor(token: string) {
895
- this.token = token;
896
- }
897
-
898
- // Ler arquivo do GitHub e cachear em RAM
899
- async readFile(owner: string, repo: string, path: string): Promise<Buffer> {
900
- const cacheKey = `${owner}/${repo}/${path}`;
901
-
902
- // Verificar cache
903
- if (this.cache.has(cacheKey)) {
904
- return this.cache.get(cacheKey)!;
905
- }
906
-
907
- // Buscar do GitHub
908
- const response = await fetch(
909
- `https://api.github.com/repos/${owner}/${repo}/contents/${path}`,
910
- {
911
- headers: {
912
- 'Authorization': `token ${this.token}`,
913
- 'Accept': 'application/vnd.github.v3.raw',
914
- },
915
- }
916
- );
917
-
918
- const data = Buffer.from(await response.arrayBuffer());
919
-
920
- // Cachear em RAM
921
- this.cache.set(cacheKey, data);
922
-
923
- return data;
924
- }
925
-
926
- // Listar arquivos do repositório
927
- async listFiles(owner: string, repo: string, path: string = ''): Promise<string[]> {
928
- const response = await fetch(
929
- `https://api.github.com/repos/${owner}/${repo}/contents/${path}`,
930
- {
931
- headers: {
932
- 'Authorization': `token ${this.token}`,
933
- },
934
- }
935
- );
936
-
937
- const files = await response.json();
938
- return files.map((f: any) => f.path);
939
- }
940
-
941
- // Hidratar filesystem inteiro em RAM
942
- async hydrateRepo(owner: string, repo: string): Promise<Map<string, Buffer>> {
943
- const files = await this.listFiles(owner, repo);
944
-
945
- for (const file of files) {
946
- await this.readFile(owner, repo, file);
947
- }
948
-
949
- return this.cache;
950
- }
951
-
952
- // Obter estatísticas do cache
953
- getStats(): { files: number; totalSize: number } {
954
- let totalSize = 0;
955
- for (const buffer of this.cache.values()) {
956
- totalSize += buffer.length;
957
- }
958
- return {
959
- files: this.cache.size,
960
- totalSize,
961
- };
962
- }
963
- }
964
- 4.8 API Principal (Cloudflare Workers)
965
- // src/index.ts
966
- import { Hono } from 'hono';
967
- import { SandboxOrchestrator } from './orchestrator';
968
- import { VirtualMemory } from './memory/virtual-memory';
969
- import { GitHubFileSystem } from './memory/github-fs';
970
-
971
- const app = new Hono();
972
- const orchestrator = new SandboxOrchestrator();
973
- const memory = new VirtualMemory();
974
-
975
- // Criar sandbox
976
- app.post('/api/sandbox', async (c) => {
977
- const body = await c.req.json();
978
-
979
- const sandboxId = await orchestrator.createSandbox({
980
- userId: body.userId,
981
- ramLimit: body.ramLimit || 8192,
982
- cpuLimit: body.cpuLimit || 4,
983
- gpuEnabled: body.gpuEnabled || false,
984
- packages: body.packages || [],
985
- platform: body.platform,
986
- ttl: body.ttl || 24,
987
- });
988
-
989
- return c.json({ sandboxId, status: 'creating' });
990
- });
991
-
992
- // Status da sandbox
993
- app.get('/api/sandbox/:id', async (c) => {
994
- const id = c.req.param('id');
995
- // Buscar do banco em memória
996
- return c.json({ id, status: 'running' });
997
- });
998
-
999
- // Memória virtual
1000
- app.get('/api/memory/stats', async (c) => {
1001
- return c.json({
1002
- zram: '8GB comprimida',
1003
- tmpfs: '4GB /workspace + 2GB /tmp',
1004
- overlay: '2GB CoW',
1005
- sqlite: '512MB in-memory',
1006
- github: 'Cache de repositórios',
1007
- });
1008
- });
1009
-
1010
- // GitHub como storage
1011
- app.post('/api/github/hydrate', async (c) => {
1012
- const { owner, repo } = await c.req.json();
1013
-
1014
- const githubFs = new GitHubFileSystem(process.env.GITHUB_TOKEN!);
1015
- const files = await githubFs.hydrateRepo(owner, repo);
1016
-
1017
- return c.json({
1018
- files: files.size,
1019
- status: 'hydrated in RAM',
1020
- });
1021
- });
1022
-
1023
- // CDN endpoint
1024
- app.get('/cdn/:package/:version', async (c) => {
1025
- const { package: pkg, version } = c.req.param();
1026
-
1027
- // Buscar do cache em RAM
1028
- const cached = await memory.getCachedPackage(pkg, version);
1029
- if (cached) {
1030
- return new Response(cached, {
1031
- headers: { 'Content-Type': 'application/javascript' },
1032
- });
1033
- }
1034
-
1035
- // Buscar do jsdelivr
1036
- const response = await fetch(
1037
- `https://cdn.jsdelivr.net/npm/${pkg}@${version}/+esm`
1038
- );
1039
-
1040
- const data = Buffer.from(await response.arrayBuffer());
1041
- await memory.cachePackage(pkg, version, data);
1042
-
1043
- return new Response(data, {
1044
- headers: { 'Content-Type': 'application/javascript' },
1045
- });
1046
- });
1047
-
1048
- export default app;
1049
- 4.9 Wrangler Config (Cloudflare Workers)
1050
- # wrangler.toml
1051
- name = "sandbox-platform"
1052
- main = "src/index.ts"
1053
- compatibility_date = "2024-01-01"
1054
-
1055
- [vars]
1056
- GITHUB_ORG = "your-org"
1057
- GITLAB_TOKEN = ""
1058
- FORGEJO_TOKEN = ""
1059
- HF_TOKEN = ""
1060
-
1061
- # R2 Bucket para storage persistente
1062
- [[r2_buckets]]
1063
- binding = "STORAGE"
1064
- bucket_name = "sandbox-storage"
1065
-
1066
- # Durable Objects para estado
1067
- [[durable_objects.bindings]]
1068
- name = "SANDBOX_STATE"
1069
- class_name = "SandboxState"
1070
-
1071
- PARTE 5: CDN + EXECUÇÃO GLOBAL
1072
- 5.1 Uso via CDN (jsdelivr/esm.sh)
1073
- // Qualquer pessoa pode usar em qualquer lugar:
1074
- import { SandboxOrchestrator } from 'https://esm.run/@sandbox-platform/core';
1075
-
1076
- const orchestrator = new SandboxOrchestrator();
1077
-
1078
- // Criar sandbox
1079
- const sandbox = await orchestrator.createSandbox({
1080
- userId: 'user123',
1081
- ramLimit: 8192,
1082
- packages: ['nodejs', 'python3'],
1083
- });
1084
-
1085
- // Usar GitHub como storage
1086
- import { GitHubFileSystem } from 'https://esm.run/@sandbox-platform/core/memory';
1087
-
1088
- const githubFs = new GitHubFileSystem(token);
1089
- const files = await githubFs.hydrateRepo('owner', 'repo');
1090
-
1091
- // Usar memória virtual
1092
- import { VirtualMemory } from 'https://esm.run/@sandbox-platform/core/memory';
1093
-
1094
- const memory = new VirtualMemory();
1095
- await memory.write('/workspace/code.js', Buffer.from('console.log("hello")'));
1096
- 5.2 Uso via npm
1097
- npm install @sandbox-platform/core
1098
- import { SandboxOrchestrator } from '@sandbox-platform/core';
1099
- import { VirtualMemory, GitHubFileSystem } from '@sandbox-platform/core/memory';
1100
-
1101
- PARTE 6: RESUMO DOS RECURSOS
1102
- Infraestrutura Gratuita Disponível:
1103
-
1104
-
1105
-
1106
- Componente
1107
- Fonte Gratuita
1108
- RAM/CPU
1109
-
1110
-
1111
-
1112
- CI/CD
1113
- GitHub Actions (público)
1114
- 16 GB RAM, 4 vCPU
1115
-
1116
-
1117
- GPU
1118
- Kaggle Notebooks
1119
- 29 GB RAM, T4 x2
1120
-
1121
-
1122
- Storage
1123
- Cloudflare R2
1124
- 10 GB grátis
1125
-
1126
-
1127
- CDN
1128
- jsdelivr/esm.sh
1129
- Ilimitado
1130
-
1131
-
1132
- Database
1133
- SQLite in-memory
1134
- Voluntário
1135
-
1136
-
1137
- Orquestrador
1138
- Cloudflare Workers
1139
- 100K req/dia
1140
-
1141
-
1142
- Filesystem
1143
- memfs (RAM)
1144
- Voluntário
1145
-
1146
-
1147
- GitHub como DB
1148
- github-storage
1149
- 5000 req/hora
1150
-
1151
-
1152
- Conversão Storage → RAM:
1153
-
1154
-
1155
-
1156
- Método
1157
- Comando
1158
- Resultado
1159
-
1160
-
1161
-
1162
- zram
1163
- modprobe zram && echo lz4 > /sys/block/zram0/comp_algorithm
1164
- 4 GB storage → ~12 GB RAM comprimida
1165
-
1166
-
1167
- tmpfs
1168
- mount -t tmpfs -o size=4G tmpfs /workspace
1169
- 4 GB storage → 4 GB RAM
1170
-
1171
-
1172
- overlay
1173
- mount -t overlay overlay -o lowerdir=/lower,upperdir=/upper
1174
- CoW em RAM
1175
-
1176
-
1177
- SQLite
1178
- new Database(':memory:')
1179
- Banco relacional em RAM
1180
-
1181
-
1182
- memfs
1183
- Volume.create({ size: 8*1024*1024*1024 })
1184
- Filesystem em RAM
1185
-
1186
-
1187
- GitHub cache
1188
- githubFs.readFile() → cache.set()
1189
- Repo inteiro em RAM
1190
-
1191
- PLANO COMPLETO FINAL
1192
- O que você pode fazer AGORA:
1193
- Opção 1: Criar o projeto completo
1194
-
1195
- Criar a estrutura de pastas
1196
- Configurar package.json com todas as dependências
1197
- Implementar Drizzle ORM com SQLite em memória
1198
- Implementar memória virtual (memfs)
1199
- Implementar GitHub como storage
1200
- Configurar Cloudflare Workers
1201
- Criar workflows de CI/CD
1202
-
1203
- Opção 2: Focar em uma parte específica
1204
-
1205
- Apenas a memória virtual (zram + tmpfs + memfs)
1206
- Apenas o orquestrador (GitHub + GitLab + Forgejo)
1207
- Apenas o CDN (jsdelivr + esm.sh)
1208
- Apenas o banco em memória (Drizzle + SQLite)
1209
-
1210
- Opção 3: Criar o pacote npm primeiro
1211
-
1212
- Criar @sandbox-platform/core
1213
- Publicar no npm
1214
- Disponibilizar via CDN
1215
- Criar documentação
1216
-
1217
- Recursos 100% Gratuitos:
1218
-
1219
- ✅ GitHub Actions (público): 16 GB RAM, ilimitado
1220
- ✅ Kaggle: 29 GB RAM, GPU T4 x2
1221
- ✅ Cloudflare Workers: 100K req/dia
1222
- ✅ Cloudflare R2: 10 GB storage
1223
- ✅ jsdelivr CDN: ilimitado
1224
- ✅ SQLite in-memory: zero custo
1225
- ✅ memfs: filesystem em RAM
1226
-
1227
- O que você quer implementar primeiro?