@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,133 +0,0 @@
1
- # Human Operator: Documentação, Autoria, Repositório e Linha do Tempo Completa
2
-
3
- ## Resumo Executivo
4
-
5
- Human Operator é um sistema vestível de aumento humano que permite a um modelo de visão-linguagem controlar brevemente o corpo humano via Estimulação Muscular Elétrica (EMS) para auxiliar aprendizado [[2]](https://www.media.mit.edu/projects/human-operator/overview/). O projeto foi construído em 48 horas por uma equipe de seis estudantes e venceu o primeiro lugar na trilha Learn do MIT Hard Mode 2026, hackathon de hardware x AI realizado no MIT Media Lab em 6–8 de março de 2026 [[3]](https://www.founded.com/human-operator-ai-that-can-control-your-body/) [[6]](https://www.media.mit.edu/events/2026-hard-mode/).
6
-
7
- O repositório oficial é mantido por Daniel Kaijzer em GitHub como `danielkaijzer/Human-Operator` e descreve o sistema como mapeamento de voz + visão em primeira pessoa para ações EMS roteadas por relé [[1]](https://github.com/danielkaijzer/Human-Operator). A arquitetura utiliza Claude API da Anthropic, câmera egocêntrica, Flask gateway e firmware Arduino. Não há artigo acadêmico próprio, mas o trabalho cita explicitamente como linhagem o laboratório de Integração Humano-Computador de Pedro Lopes na Universidade de Chicago, autor do Best Paper do CHI 2026 Generative Muscle Stimulation [[8]](https://computerscience.uchicago.edu/news/when-ai-meets-muscle-context-aware-electrical-stimulation-promises-a-new-way-to-guide-human-movements/) [[9]](https://arxiv.org/pdf/2505.10648v2).
8
-
9
- A genealogia da área inicia em PossessedHand (Tamaki et al., CHI 2011) [[12]](https://www.researchgate.net/publication/221516547_PossessedHand_Techniques_for_controlling_human_hands_using_electrical_muscles_stimuli), passa por Affordance++ (CHI 2015 Best Paper Award) [[11]](https://hpi.de/baudisch/projects/ems.html), Muscle-Plotter (2016), openEMSstim (2016–2017) [[13]](https://github.com/PedroLopes/openEMSstim), DextrEMS (2021), SplitBody (CHI 2024 Best Paper) [[16]](https://knowledge.uchicago.edu/nanna/record/12099/files/SplitBody-Reducing-Mental-Workload-while-Multitasking-via-Muscle-Stimulation.pdf?withWatermark=0&withMetadata=0&registerDownload=1&version=1), e culmina em Generative Muscle Stimulation (CHI 2026 Best Paper) [[10]](https://computerscience.uchicago.edu/news/incredible-showing-of-uchicago-cs-researchers-to-chi-2026/) e Human Operator (março 2026). Projetos paralelos posteriores incluem Hand by Hand / FlightAxis (IJCAI 2025, arXiv 2025) que integra LLM + EMS para treinamento de voo [[15]](https://arxiv.org/pdf/2508.06000v1).
10
-
11
- ## 1. Human Operator: Identidade e Autoria
12
-
13
- ### 1.1 Nome oficial e natureza
14
- Nome oficial: **Human Operator**. Descrito no MIT Media Lab como “ferramenta de aumento humano que permite à IA assumir brevemente o controle do seu corpo para ajudar você a aprender e fazer coisas que normalmente não pode fazer” [[2]](https://www.media.mit.edu/projects/human-operator/overview/). No GitHub: “Winner at MIT Hard Mode 2026. Lets AI control the human body via EMS to help you learn” [[1]](https://github.com/danielkaijzer/Human-Operator).
15
-
16
- ### 1.2 Equipe criadora
17
- Equipe de seis membros, listada consistentemente em todas as fontes:
18
- - Peter He
19
- - Ashley Neall
20
- - Valdemar Danry
21
- - Daniel Kaijzer (mantenedor do repositório)
22
- - Yutong Wu
23
- - Sean Hardesty Lewis [[3]](https://www.founded.com/human-operator-ai-that-can-control-your-body/) [[1]](https://github.com/danielkaijzer/Human-Operator)
24
-
25
- O CV de Sean Hardesty Lewis confirma: “Human Operator (MIT Media Lab Hackathon Winner) March 2026 • Won MIT Media Lab's HARDMODE (Hardware x AI) Hackathon” [[4]](https://seanhardestylewis.com/cv/SeanHardesty_Lewis_CV_Mar_2026.pdf). Daniel Kaijzer é listado como GitHub owner do repositório oficial [[1]](https://github.com/danielkaijzer/Human-Operator).
26
-
27
- ### 1.3 Prêmio e evento
28
- - **Evento:** MIT Hard Mode 2026 – Hardware x AI Hackathon, organizado pelo programa Advancing Humans with AI (AHA) e Design Intelligence Lab do MIT Media Lab [[6]](https://www.media.mit.edu/events/2026-hard-mode/)
29
- - **Data:** 6–8 de março de 2026 [[6]](https://www.media.mit.edu/events/2026-hard-mode/) – confirmado por patrocinador Bambu Lab: “On March 6, 2026, HARD MODE kicks off” [[7]](https://blog.bambulab.com/bambu-lab-sponsors-hard-mode-the-mit-hardware-x-ai-hackathon/)
30
- - **Local:** MIT Media Lab 6th Floor [[6]](https://www.media.mit.edu/events/2026-hard-mode/)
31
- - **Categoria vencedora:** Learn Track, primeiro lugar [[3]](https://www.founded.com/human-operator-ai-that-can-control-your-body/)
32
- - **Duração:** 48 horas [[3]](https://www.founded.com/human-operator-ai-that-can-control-your-body/)
33
-
34
- ## 2. Documentação Técnica, Repositório e Arquivos
35
-
36
- ### 2.1 Links principais
37
- | Tipo | URL |
38
- | --- | --- |
39
- | Repositório oficial (código, firmware, docs) | https://github.com/danielkaijzer/Human-Operator [[1]](https://github.com/danielkaijzer/Human-Operator) |
40
- | Página oficial MIT Media Lab | https://www.media.mit.edu/projects/human-operator/overview/ [[2]](https://www.media.mit.edu/projects/human-operator/overview/) |
41
- | Vídeo demo completo (51s) | https://www.youtube.com/watch?v=fCLxENGs7CY [[5]](https://www.youtube.com/watch?v=fCLxENGs7CY) |
42
- | Página do evento Hard Mode | https://www.media.mit.edu/events/2026-hard-mode/ [[6]](https://www.media.mit.edu/events/2026-hard-mode/) |
43
-
44
- ### 2.2 Arquitetura documentada no GitHub
45
- O README detalha [[1]](https://github.com/danielkaijzer/Human-Operator):
46
-
47
- - `app.py`: loop principal (câmera + gatilho de voz + LLM + despacho de comandos)
48
- - `utils/receiver.py`: gateway Flask para execução temporizada de comandos de relé/EMS
49
- - `manual_control_app.py`: GUI PyQt para calibração manual
50
- - `firmware/human_operator_ems/human_operator_ems.ino`: firmware Arduino controlador de relés
51
- - `run_hardware.sh`: launcher de um comando para modo hardware real
52
- - Dependências: Python 3.10+, Arduino IDE, `ANTHROPIC_API_KEY`, MCU de relé compatível Arduino, placa de relé, dispositivo EMS, câmera egocêntrica
53
-
54
- Fluxo de execução:
55
- 1. Aguarda comando de voz
56
- 2. Captura frame da câmera
57
- 3. Envia prompt + imagem para Claude
58
- 4. Transforma plano de ação em payload EMS com timestamps
59
- 5. POST para `utils/receiver.py` em `RECEIVER_URL`
60
-
61
- Mapeamento de relés: D2 -> `wrist_left`, D4 -> `wrist_right`, D3 -> `thumb`, D5 -> `index`, D6 -> `middle`, D7 -> `ring`, D8 -> `pinky` [[1]](https://github.com/danielkaijzer/Human-Operator)
62
-
63
- ### 2.3 Documentação acadêmica relacionada (não há paper próprio)
64
- Human Operator não possui publicação acadêmica peer-reviewed própria por ser protótipo de hackathon. A documentação acadêmica que o sustenta é reconhecida explicitamente no repositório: “Inspired by work from the Human Computer Integration Lab at UChicago” com três referências citadas [[1]](https://github.com/danielkaijzer/Human-Operator). A página do MIT Media Lab também direciona: “please check out related work from our colleague Pedro Lopes' Human-Computer Integration lab here, who has over a decade of work in this area” [[2]](https://www.media.mit.edu/projects/human-operator/overview/).
65
-
66
- O trabalho central dessa linhagem é **Generative Muscle Stimulation: Providing Users with Physical Assistance by Constraining Multimodal-AI with Embodied Knowledge**, de Yun Ho, Romain Nith et al., supervisionado por Pedro Lopes, premiado como Best Paper no ACM CHI 2026 [[8]](https://computerscience.uchicago.edu/news/when-ai-meets-muscle-context-aware-electrical-stimulation-promises-a-new-way-to-guide-human-movements/) [[10]](https://computerscience.uchicago.edu/news/incredible-showing-of-uchicago-cs-researchers-to-chi-2026/). O paper está disponível em arXiv [[9]](https://arxiv.org/pdf/2505.10648v2) e descreve sistema que gera instruções EMS contextuais usando visão computacional e LLM, com conhecimento de limites articulares.
67
-
68
- ## 3. Projetos Similares e Linha do Tempo Completa
69
-
70
- A área de EMS interativo para controle corporal possui ~150 publicações apenas em HCI [[8]](https://computerscience.uchicago.edu/news/when-ai-meets-muscle-context-aware-electrical-stimulation-promises-a-new-way-to-guide-human-movements/). A linha do tempo pode ser organizada em quatro gerações.
71
-
72
- ### 3.1 Geração 1: Fundamentos (2011–2013)
73
- PossessedHand (2011) por Emi Tamaki, Takashi Miyaki e Jun Rekimoto no CHI 2011 foi a primeira técnica sistemática para controlar mãos humanas usando EMS [[12]](https://www.researchgate.net/publication/221516547_PossessedHand_Techniques_for_controlling_human_hands_using_electrical_muscles_stimuli). Em 2013, Lopes & Baudisch propuseram Muscle-propelled force feedback.
74
-
75
- ### 3.2 Geração 2: Objetos que comunicam uso (2015–2017)
76
- Affordance++ (2015) por Pedro Lopes, Patrik Jonell e Patrick Baudisch, CHI 2015 Best Paper Award, introduziu objetos que comunicam uso dinâmico via EMS para sacudir lata de spray, etc. [[11]](https://hpi.de/baudisch/projects/ems.html). No mesmo ano, Proprioceptive Interaction. Em 2016, Muscle-Plotter demonstrou saída espacial via EMS, e o toolkit openEMSstim foi lançado como módulo open-hardware para ajustar intensidade de estimuladores EMS/TENS via Bluetooth/serial [[13]](https://github.com/PedroLopes/openEMSstim), usado por 20 equipes no UIST 2016.
77
-
78
- ### 3.3 Geração 3: Destreza e carga cognitiva (2021–2024)
79
- DextrEMS (UIST 2021) e Increasing EMS Dexterity by means of Back-of-Hand Actuation (CHI 2021) ampliaram destreza de dedos. SplitBody (CHI 2024 Best Paper) mostrou redução de carga mental em multitarefa via estimulação muscular, onde participantes realizaram duas tarefas físicas simultâneas com EMS aumentando performance em 35% [[16]](https://knowledge.uchicago.edu/nanna/record/12099/files/SplitBody-Reducing-Mental-Workload-while-Multitasking-via-Muscle-Stimulation.pdf?withWatermark=0&withMetadata=0&registerDownload=1&version=1).
80
-
81
- ### 3.4 Geração 4: IA Generativa + Corpo (2025–2026)
82
- Adaptive EMS Improves Muscle Memory (CHI 2025) introduz EMS adaptativo que muda estratégia conforme progresso do aprendiz. Generative Muscle Stimulation (CHI 2026 Best Paper) marca a virada para Embodied AI: sistema que reúne pose corporal (IMU), ponto de vista (objetos, mãos) e localização para gerar instruções EMS não pré-programadas, respeitando limites biomecânicos [[8]](https://computerscience.uchicago.edu/news/when-ai-meets-muscle-context-aware-electrical-stimulation-promises-a-new-way-to-guide-human-movements/).
83
-
84
- **Março 2026: Human Operator** – aplicação direta dessa ideia em 48h usando Claude VLM + EMS de punho/dedos para tarefas como acenar, tocar piano, fazer sinal de OK [[3]](https://www.founded.com/human-operator-ai-that-can-control-your-body/).
85
-
86
- Paralelamente, **Hand by Hand / FlightAxis** (Zhejiang University, 2025) propõe LLM driving EMS Assistant para aprendizado de habilidades operacionais de voo, com estratégia Align-Analyze-Adjust, código em https://github.com/Z500-RAY/LLMDriving-EMS-Assistant e paper em [[15]](https://arxiv.org/pdf/2508.06000v1).
87
-
88
- A discussão pública em junho 2026 transformou Human Operator em história de “AI possession” na mídia, exemplificada por cobertura no Medium sobre como estudantes do MIT deixaram IA controlar mão humana [[17]](https://wistkey.medium.com/mit-students-let-ai-control-a-human-hand-the-internet-turned-it-into-an-ai-possession-story-880daa540d2e).
89
-
90
- ## 4. Tabela Comparativa de Projetos Similares
91
-
92
- | Ano | Projeto | Criadores Principais | Instituição | Link Paper / Código | Contribuição Central |
93
- | --- | --- | --- | --- | --- | --- |
94
- | 2011 | PossessedHand | Emi Tamaki, Takashi Miyaki, Jun Rekimoto | Sony CSL / U Tokyo | Paper CHI 2011 [[12]](https://www.researchgate.net/publication/221516547_PossessedHand_Techniques_for_controlling_human_hands_using_electrical_muscles_stimuli) | Primeiro controle de mão via EMS para HCI |
95
- | 2015 | Affordance++ | Pedro Lopes, Patrik Jonell, Patrick Baudisch | HPI Potsdam | PDF + vídeo [[11]](https://hpi.de/baudisch/projects/ems.html) | Objetos comunicam uso via EMS, CHI Best Paper |
96
- | 2015 | Proprioceptive Interaction | Pedro Lopes et al. | HPI | PDF [[11]](https://hpi.de/baudisch/projects/ems.html) | Interação proprioceptiva sem olhar |
97
- | 2016 | Muscle-Plotter | Pedro Lopes et al. | HPI | Lab page [[14]](http://lab.plopes.org/) | Saída espacial desenhada com EMS |
98
- | 2016 | openEMSstim | Pedro Lopes, Max Pfeiffer | HPI / Leibniz Univ Hannover | https://github.com/PedroLopes/openEMSstim [[13]](https://github.com/PedroLopes/openEMSstim) | Toolkit open-hardware EMS |
99
- | 2021 | DextrEMS | Nith et al. | UChicago HCI Lab | Lab [[14]](http://lab.plopes.org/) | Combina EMS com freios para destreza |
100
- | 2024 | SplitBody | Romain Nith, Yun Ho, Pedro Lopes | UChicago | PDF CHI 2024 [[16]](https://knowledge.uchicago.edu/nanna/record/12099/files/SplitBody-Reducing-Mental-Workload-while-Multitasking-via-Muscle-Stimulation.pdf?withWatermark=0&withMetadata=0&registerDownload=1&version=1) | Multitarefa, reduz carga mental, CHI Best Paper |
101
- | 2026 | Generative Muscle Stimulation | Yun Ho*, Romain Nith*, Peili Jiang et al. | UChicago HCI Lab | arXiv [[9]](https://arxiv.org/pdf/2505.10648v2) + UChicago News [[8]](https://computerscience.uchicago.edu/news/when-ai-meets-muscle-context-aware-electrical-stimulation-promises-a-new-way-to-guide-human-movements/) | Embodied AI que gera EMS contextual via VLM, CHI Best Paper [[10]](https://computerscience.uchicago.edu/news/incredible-showing-of-uchicago-cs-researchers-to-chi-2026/) |
102
- | 2026 Mar | Human Operator | Peter He, Ashley Neall, Valdemar Danry, Daniel Kaijzer, Yutong Wu, Sean Lewis | MIT Media Lab (AHA + Fluid Interfaces) | GitHub [[1]](https://github.com/danielkaijzer/Human-Operator) + MIT page [[2]](https://www.media.mit.edu/projects/human-operator/overview/) + Demo [[5]](https://www.youtube.com/watch?v=fCLxENGs7CY) | VLM (Claude) + voz + EMS punho/dedos, vencedor Learn Track Hard Mode 2026 [[3]](https://www.founded.com/human-operator-ai-that-can-control-your-body/) |
103
- | 2025-2026 | Hand by Hand / FlightAxis | Wei Xiang, Ziyue Lei et al. | Zhejiang University | arXiv [[15]](https://arxiv.org/pdf/2508.06000v1) + GitHub supplementary | LLM + EMS para aprendizado de voo operacional, IJCAI 2025 |
104
-
105
- ## 5. Análise de Continuidade Técnica
106
-
107
- Human Operator não inventa EMS, mas combina três tendências maduras: (1) hardware acessível de EMS via openEMSstim, (2) geração contextual de instruções via multimodal-AI consolidada em Generative Muscle Stimulation, e (3) orquestração por LLM de propósito geral (Claude). A diferença para gerações anteriores é o fechamento do loop em tempo real com comando de voz aberto: em vez de seis sequências fixas como em Affordance++, o sistema improvisa. O repositório explicita dependência de `ANTHROPIC_API_KEY` e captura de câmera contínua [[1]](https://github.com/danielkaijzer/Human-Operator), alinhado à descrição do MIT Media Lab de “Vision-based commands are generated via open-ended speech input through the Claude API” [[2]](https://www.media.mit.edu/projects/human-operator/overview/).
108
-
109
- Limitações reportadas em cobertura independente são consistentes com a literatura: latência, calibração por pessoa, segurança restrita a dedos/punho em demo de luva, e falta de dados de treinamento para tarefas que Claude não absorveu [[18]](https://www.comparos.in/expert-reviews/mit-team-develops-wearable-ai-that-can-control-human-movements).
110
-
111
- ## Conclusão
112
-
113
- Human Operator é um artefato de 48 horas que condensa mais de uma década de pesquisa em EMS interativo liderada por Pedro Lopes. Sua documentação primária é o repositório GitHub de Daniel Kaijzer e a página do MIT Media Lab, com vídeo demonstrativo público. Seu prêmio no MIT Hard Mode 2026 na trilha Learn formaliza o reconhecimento institucional. Para reprodução, o repositório fornece código, firmware e instruções de segurança. Para compreensão acadêmica, o caminho passa obrigatoriamente por Generative Muscle Stimulation (CHI 2026 Best Paper) e pela linhagem desde PossessedHand até SplitBody.
114
-
115
- ## Sources
116
- [1] GitHub — [danielkaijzer/Human-Operator](https://github.com/danielkaijzer/Human-Operator)
117
- [2] MIT Media Lab — [Overview ‹ Human Operator](https://www.media.mit.edu/projects/human-operator/overview/)
118
- [3] Founded — [These MIT hackathon winners built an AI that can control your body](https://www.founded.com/human-operator-ai-that-can-control-your-body/)
119
- [4] Sean Hardesty Lewis — [CV Mar 2026 PDF](https://seanhardestylewis.com/cv/SeanHardesty_Lewis_CV_Mar_2026.pdf)
120
- [5] YouTube — [Human Operator: MIT Hard Mode 2026 Winner](https://www.youtube.com/watch?v=fCLxENGs7CY)
121
- [6] MIT Media Lab — [HARD MODE: Hardware x AI Hackathon](https://www.media.mit.edu/events/2026-hard-mode/)
122
- [7] Bambu Lab Blog — [Bambu Lab sponsors HARD MODE](https://blog.bambulab.com/bambu-lab-sponsors-hard-mode-the-mit-hardware-x-ai-hackathon/)
123
- [8] UChicago CS — [When AI Meets Muscle](https://computerscience.uchicago.edu/news/when-ai-meets-muscle-context-aware-electrical-stimulation-promises-a-new-way-to-guide-human-movements/)
124
- [9] arXiv — [Generative Muscle Stimulation PDF](https://arxiv.org/pdf/2505.10648v2)
125
- [10] UChicago CS — [Incredible Showing to CHI 2026](https://computerscience.uchicago.edu/news/incredible-showing-of-uchicago-cs-researchers-to-chi-2026/)
126
- [11] HPI — [Interactive Systems Based on EMS](https://hpi.de/baudisch/projects/ems.html)
127
- [12] ResearchGate — [PossessedHand Techniques](https://www.researchgate.net/publication/221516547_PossessedHand_Techniques_for_controlling_human_hands_using_electrical_muscles_stimuli)
128
- [13] GitHub — [PedroLopes/openEMSstim](https://github.com/PedroLopes/openEMSstim)
129
- [14] Lopes Lab — [Human Computer Integration Lab](http://lab.plopes.org/)
130
- [15] arXiv — [Hand by Hand: LLM Driving EMS Assistant](https://arxiv.org/pdf/2508.06000v1)
131
- [16] UChicago Knowledge — [SplitBody PDF](https://knowledge.uchicago.edu/nanna/record/12099/files/SplitBody-Reducing-Mental-Workload-while-Multitasking-via-Muscle-Stimulation.pdf?withWatermark=0&withMetadata=0&registerDownload=1&version=1)
132
- [17] Medium Wistkey — [MIT Students Let AI Control a Human Hand](https://wistkey.medium.com/mit-students-let-ai-control-a-human-hand-the-internet-turned-it-into-an-ai-possession-story-880daa540d2e)
133
- [18] Comparos — [MIT Team Develops Wearable AI That Can Control Human Movements](https://www.comparos.in/expert-reviews/mit-team-develops-wearable-ai-that-can-control-human-movements)
@@ -1,135 +0,0 @@
1
- # Brain to Query (Meta Brain2Qwerty) e Acupuntura vs EMS: Documentação, Funcionamento e Linha do Tempo
2
-
3
- ## Resumo Executivo
4
-
5
- O projeto referido como “brain to query” corresponde ao **Brain2Qwerty**, sistema de decodificação de texto a partir de atividade cerebral não invasiva desenvolvido pela Meta FAIR em parceria com o Basque Center on Cognition, Brain and Language (BCBL) [[1]](https://facebookresearch.github.io/brain2qwerty/). A versão 1 foi publicada em Nature Neuroscience e a versão 2 foi introduzida em junho de 2026 como pipeline end-to-end capaz de gerar sentenças em tempo real a partir de magnetoencefalografia (MEG) [[1]](https://facebookresearch.github.io/brain2qwerty/).
6
-
7
- O funcionamento baseia-se em três módulos hierárquicos: (1) módulo convolucional que recebe janelas de 500 ms de sinais M/EEG, (2) módulo transformer treinado em nível de sentença, e (3) modelo de linguagem pré-treinado para correção [[2]](https://arxiv.org/html/2502.17480v1). Brain2Qwerty v2 foi treinado com aproximadamente 22.000 sentenças de nove voluntários, cada um com cerca de 10 horas de gravação MEG enquanto digitava [[3]](https://www.digitaltrends.com/cool-tech/metas-brain2qwerty-v2-turns-thoughts-into-text-and-it-doesnt-need-brain-implants/), alcançando 61% de acurácia média de palavras e 78% no melhor participante [[4]](https://www.thehindubusinessline.com/info-tech/meta-says-new-ai-system-can-convert-brain-activity-into-text-without-surgery/article71164394.ece).
8
-
9
- O repositório oficial é `facebookresearch/brain2qwerty` no GitHub, contendo código de treinamento v1 e v2 e dataset v1 no Hugging Face [[5]](https://github.com/facebookresearch/brain2qwerty) [[6]](https://huggingface.co/datasets/bcbl190626/SpanishBCBL). O licenciamento é CC BY-NC 4.0 para pesquisa.
10
-
11
- Sobre a comparação com acupuntura: afirmar que acupuntura e EMS partem do mesmo princípio e que os criadores do Human Operator a consideraram é incorreto. A documentação do Human Operator cita explicitamente apenas o Human Computer Integration Lab de Pedro Lopes em Chicago [[7]](https://github.com/danielkaijzer/Human-Operator), sem referência à medicina tradicional chinesa. Embora eletroacupuntura combine acupuntura tradicional com eletroterapia moderna [[8]](https://www.researchgate.net/publication/290437736_Electroacupuncture_According_to_Voll_Historical_Background_and_Literature_Review), o princípio do EMS usado em HCI é despolarização de neurônios motores para contração muscular, distinto do modelo de meridianos.
12
-
13
- ## 1. Acupuntura vs EMS: Mesmo Princípio?
14
-
15
- ### 1.1 O que é acupuntura e eletroacupuntura
16
- Acupuntura é terapia milenar baseada na inserção de agulhas em acupontos específicos [[9]](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5530374/). Eletroacupuntura é adaptação contemporânea que adiciona corrente elétrica às agulhas para potencializar estímulo nos acupontos [[9]](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5530374/). Estudos bibliométricos definem EA como “contemporary adaptation of traditional acupuncture” focada em analgesia [[10]](https://pubmed.ncbi.nlm.nih.gov/40066312/).
17
-
18
- ### 1.2 O que é EMS no Human Operator
19
- Human Operator usa Electrical Muscle Stimulation relay-routed para mapear voz + visão em ações musculares [[7]](https://github.com/danielkaijzer/Human-Operator). O mecanismo é estimulação elétrica transcutânea que despolariza nervos periféricos para contrair músculos esqueléticos, com origem em reabilitação. O openEMSstim, base de hardware citada na linhagem, é descrito como módulo open-hardware para ajustar intensidade de estimuladores EMS/TENS [[11]](https://github.com/PedroLopes/openEMSstim).
20
-
21
- ### 1.3 É correto afirmar que partem do mesmo princípio?
22
- Parcialmente convergente, mas conceitualmente distinto. Ambos usam eletricidade aplicada ao corpo, e há sobreposição tecnológica via TENS/EA. No entanto, o princípio fisiológico do EMS em HCI é neuromuscular direto, enquanto acupuntura tradicional opera sob teoria de meridianos e regulação sistêmica, e EA ainda utiliza acupontos. Não há evidência nos documentos oficiais do Human Operator (README e página MIT Media Lab) de que acupuntura tenha sido considerada na etapa de criação; as inspirações citadas são trabalhos de Pedro Lopes como Generative Muscle Stimulation e Affordance++ [[7]](https://github.com/danielkaijzer/Human-Operator).
23
-
24
- Portanto, não é correto afirmar que os criadores levaram acupuntura em consideração, nem que EMS = acupuntura com LLM. A relação é analógica superficial (ambos aplicam estímulo elétrico periférico), não causal de design.
25
-
26
- ## 2. Brain to Query: O que é o Brain2Qwerty do Facebook/Meta
27
-
28
- ### 2.1 Nome correto e origem
29
- O nome popular “brain to query” corresponde a **Brain2Qwerty**, às vezes grafado Brain-to-Text Decoding. O projeto iniciou no contexto do programa Building 8 anunciado por Regina Dugan na F8 2017, quando Facebook anunciou meta de digitar 100 palavras por minuto apenas com o cérebro, com 60 engenheiros dedicados a interface cérebro-computador não invasiva [[12]](https://spectrum.ieee.org/amp/facebook-announces-typing-by-brain-project-2650275520) [[13]](https://techcrunch.com/2017/04/19/facebook-brain-interface/).
30
-
31
- Após 2019, com aquisição da CTRL-Labs por cerca de US$ 1 bilhão [[14]](https://www.geekwire.com/2019/facebook-acquire-ctrl-labs-neural-interface-startup-raised-cash-amazon-vulcan-others/), a Meta redirecionou esforços de BCI invasivo para interfaces neurais de pulso baseadas em EMG [[15]](https://www.technologyreview.com/2021/07/14/1028447/facebook-brain-reading-interface-stops-funding/), enquanto manteve pesquisa aberta em decodificação cerebral via FAIR.
32
-
33
- ### 2.2 Como funciona Brain2Qwerty v2
34
- Segundo página oficial e papers:
35
-
36
- - **Problema:** Restaurar comunicação sem cirurgia aberta, para pessoas que perderam fala após AVC [[1]](https://facebookresearch.github.io/brain2qwerty/)
37
- - **Dados:** 35 participantes no estudo v1, depois 9 voluntários no v2 com ~22.000 sentenças, ~10h cada usando scanner MEG enquanto digitavam sentenças memorizadas em teclado QWERTY [[3]](https://www.digitaltrends.com/cool-tech/metas-brain2qwerty-v2-turns-thoughts-into-text-and-it-doesnt-need-brain-implants/) [[4]](https://www.thehindubusinessline.com/info-tech/meta-says-new-ai-system-can-convert-brain-activity-into-text-without-surgery/article71164394.ece)
38
- - **Arquitetura v2:**
39
- 1. Encoder convolucional lê sinais MEG brutos (janelas 500 ms) [[2]](https://arxiv.org/html/2502.17480v1)
40
- 2. Transformer treinado em nível de sentença
41
- 3. Modelo de linguagem de caracteres para correção
42
- - **Diferença v1 vs v2:** v1 previa toques de tecla e precisava do timing de cada tecla, não operava em tempo real [[1]](https://facebookresearch.github.io/brain2qwerty/). v2 supera limite e gera sentenças diretamente de gravação contínua, combinando três módulos hierárquicos para melhorar letras, palavras e sentenças [[1]](https://facebookresearch.github.io/brain2qwerty/). Usa deep learning end-to-end em vez de pipelines manuais para detectar eventos neurais [[16]](https://roadtovr.com/meta-brain-ai-telepathy-improved-bci/)
43
- - **Performance:** CER 32% com MEG vs 67% com EEG no v1 [[17]](https://arxiv.org/abs/2502.17480). v2: 61% word accuracy média, até 78% no melhor participante, onde mais da metade das sentenças decodificadas contém no máximo um erro de palavra [[18]](https://gizmodo.com/metas-ai-is-getting-better-at-reading-your-thoughts-without-cracking-open-your-skull-2000779552). Segue scaling law: mais dados melhoram sem platô detectável [[1]](https://facebookresearch.github.io/brain2qwerty/)
44
-
45
- ### 2.3 Repositório, documentação e arquivos
46
- | Tipo | URL |
47
- | --- | --- |
48
- | Repo oficial | https://github.com/facebookresearch/brain2qwerty [[5]](https://github.com/facebookresearch/brain2qwerty) |
49
- | Página oficial Meta FAIR | https://facebookresearch.github.io/brain2qwerty/ [[1]](https://facebookresearch.github.io/brain2qwerty/) |
50
- | Paper v1 arXiv | https://arxiv.org/abs/2502.17480 (Brain-to-Text Decoding) [[17]](https://arxiv.org/abs/2502.17480) |
51
- | Dataset v1 Hugging Face | https://huggingface.co/datasets/bcbl190626/SpanishBCBL [[6]](https://huggingface.co/datasets/bcbl190626/SpanishBCBL) |
52
- | Blog Meta AI | https://ai.meta.com/blog/brain2qwerty-brain-ai-human-communication/ |
53
- | Código licenciado | CC BY-NC 4.0, pesquisa aberta [[19]](http://blog.invidelabs.com/meta-brain2qwerty-v2-meg-scanner-limits/) |
54
-
55
- O repositório inclui pastas `brain2qwerty_v1/` e `brain2qwerty_v2/` com código de treino [[19]](http://blog.invidelabs.com/meta-brain2qwerty-v2-meg-scanner-limits/). Implementações comunitárias como The-Swarm-Corporation/Brain2Qwerty replicaram paper por falta de código oficial inicial [[20]](https://github.com/The-Swarm-Corporation/Brain2Qwerty).
56
-
57
- ## 3. Linha do Tempo de Brain-to-Text e Projetos Similares
58
-
59
- ### 3.1 Antes do Brain2Qwerty
60
-
61
- - **2017 Abril – Facebook Building 8:** Anúncio de BCI não invasivo para digitar 100 wpm imaginando fala [[13]](https://techcrunch.com/2017/04/19/facebook-brain-interface/). Meta de 60 engenheiros [[12]](https://spectrum.ieee.org/amp/facebook-announces-typing-by-brain-project-2650275520)
62
- - **2019 – UCSF + Facebook Reality Labs:** Moses, Anumanchipalli, Chang demonstram tradução de atividade cortical para texto com encoder-decoder, base para neuroprótese de fala [[21]](https://www.ucsf.edu/news/2021/07/420946/neuroprosthesis-restores-words-man-paralysis)
63
- - **2019 Set – Aquisição CTRL-Labs:** Facebook adquire startup de pulseira EMG que traduz sinais neuromusculares em comandos [[14]](https://www.geekwire.com/2019/facebook-acquire-ctrl-labs-neural-interface-startup-raised-cash-amazon-vulcan-others/). Base para Meta Neural Band
64
- - **2020-2021 – Stanford Handwriting BCI:** Willett et al., Nature 2021, high-performance brain-to-text via imagined handwriting, 90 caracteres/min, 94% acurácia, código em https://github.com/fwillett/handwritingBCI [[22]](https://www.nature.com/articles/s41586-021-03506-2) [[23]](https://npsl.sites.stanford.edu/journal-papers)
65
- - **2021 – Facebook encerra financiamento BCI de leitura cerebral invasiva:** Redireciona para EMG de pulso, caminho mais próximo ao mercado [[15]](https://www.technologyreview.com/2021/07/14/1028447/facebook-brain-reading-interface-stops-funding/)
66
-
67
- ### 3.2 Brain2Qwerty e concorrentes contemporâneos
68
-
69
- - **2023 – Stanford Speech Neuroprosthesis:** 62 palavras por minuto decodificadas de tentativa de fala em paciente com ELA, recorde anterior 18 wpm [[24]](https://spectrum.ieee.org/brain-implant-speech) [[25]](https://med.stanford.edu/news/all-news/2023/08/brain-implant-speech-als.html)
70
- - **2024-2025 – Meta generic neuromotor interface:** Repo `facebookresearch/generic-neuromotor-interface` publica código para explorar dados sEMG e modelos associados a paper Nature 2025 [[26]](https://github.com/facebookresearch/generic-neuromotor-interface) – origem CTRL-Labs
71
- - **2025 Fev – Brain2Qwerty v1:** Publicado em Nature Neuroscience, 35 participantes, MEG 193k caracteres, EEG 146k caracteres, CER MEG 32% [[17]](https://arxiv.org/abs/2502.17480)
72
- - **2025 Set – Meta Neural Band:** Lançamento comercial com Ray-Ban Display, pulseira sEMG com 18h bateria, traduz sinais sutis de pulso em cliques, scrolls [[27]](https://www.techcrunch.com/2025/09/17/meta-unveils-new-smart-glasses-with-a-display-and-wristband-controller/) [[28]](https://www.meta.com/emerging-tech/emg-wearable-technology/). Primeiro produto consumidor baseado na aquisição CTRL-Labs 2019 [[29]](https://www.techtimes.com/articles/318198/20260611/meta-smartwatch-due-september-23-malibu-2-doubles-gesture-hub-ray-ban-ai-glasses.htm)
73
- - **2026 Jun – Brain2Qwerty v2:** Anúncio de pipeline capaz de decodificação contínua de sentenças, treinado com 22k sentenças, atinge 78% best, 61% média [[1]](https://facebookresearch.github.io/brain2qwerty/) [[3]](https://www.digitaltrends.com/cool-tech/metas-brain2qwerty-v2-turns-thoughts-into-text-and-it-doesnt-need-brain-implants/)
74
-
75
- ### 3.3 Projetos alternativos e similares (invasivos e não invasivos)
76
-
77
- - **Neuralink (2016+):** Implante cortical com eletrodos penetrantes, 1024 canais, abordagem invasiva máxima
78
- - **Blackrock Neurotech Utah Array:** Mais de 20 anos de testes, dezenas de implantados desde 2004, base MoveAgain com Breakthrough Designation 2021 [[30]](https://www.technologyreview.com/2024/04/19/1091505/companies-brain-computer-interfaces/)
79
- - **Synchron Stentrode:** Implante via veia jugular, sem cirurgia cerebral aberta, 10 humanos implantados em trials [[31]](https://www.reuters.com/business/healthcare-pharmaceuticals/synchron-rival-musks-neuralink-readies-large-scale-brain-implant-trial-2024-04-08/)
80
- - **Paradromics:** Conus com penetração cortical similar Neuralink
81
- - **Emotiv, OpenBCI:** EEG de baixo custo não invasivo, comunidade open-source
82
-
83
- ## 4. Tabela Comparativa: Brain2Qwerty vs Similares
84
-
85
- | Ano | Projeto | Criador / Lab | Invasividade | Repo / Paper | Taxa / Acurácia |
86
- | --- | --- | --- | --- | --- | --- |
87
- | 2017 | Building 8 Typing-by-Brain | Facebook Building 8, Regina Dugan | Não invasiva (óptico alvo) | Anúncio F8 [[12]](https://spectrum.ieee.org/amp/facebook-announces-typing-by-brain-project-2650275520) | Meta 100 wpm |
88
- | 2019 | CTRL-Labs Wristband | CTRL-Labs (Thomas Reardon) | Não invasiva EMG pulso | Adquirida Meta [[14]](https://www.geekwire.com/2019/facebook-acquire-ctrl-labs-neural-interface-startup-raised-cash-amazon-vulcan-others/) | Detecção mm de dedo |
89
- | 2021 | Handwriting BCI | Stanford (Willett, Shenoy, Henderson) | Invasiva Utah array | https://github.com/fwillett/handwritingBCI [[22]](https://www.nature.com/articles/s41586-021-03506-2) | 90 char/min, 94% |
90
- | 2023 | Speech Neuroprosthesis | Stanford (Willett) + UCSF Chang | Invasiva ECoG | Nature [[24]](https://spectrum.ieee.org/brain-implant-speech) | 62 wpm |
91
- | 2025 | Brain2Qwerty v1 | Meta FAIR + BCBL | Não invasiva MEG/EEG | https://github.com/facebookresearch/brain2qwerty [[5]](https://github.com/facebookresearch/brain2qwerty) | CER 32% MEG |
92
- | 2025 | emg2qwerty / generic-neuromotor-interface | Meta Reality Labs (CTRL-labs) | Não invasiva sEMG | https://github.com/facebookresearch/generic-neuromotor-interface [[26]](https://github.com/facebookresearch/generic-neuromotor-interface) | Dataset typing EMG |
93
- | 2025 | Meta Neural Band | Meta | Não invasiva sEMG | Produto comercial [[27]](https://www.techcrunch.com/2025/09/17/meta-unveils-new-smart-glasses-with-a-display-and-wristband-controller/) | Consumer |
94
- | 2026 | Brain2Qwerty v2 | Meta FAIR + ENS-PSL + BCBL | Não invasiva MEG | Mesmo repo branch v2 [[1]](https://facebookresearch.github.io/brain2qwerty/) | 61% avg, 78% best |
95
-
96
- Sobre “branch quark”: no repositório oficial há dois branches lógicos `brain2qwerty_v1/` e `brain2qwerty_v2/` [[19]](http://blog.invidelabs.com/meta-brain2qwerty-v2-meg-scanner-limits/). Não existe branch denominado quark; provavelmente refere-se ao branch QWERTY (v1 vs v2). O v2 é evolução que remove dependência de timing de tecla.
97
-
98
- ## 5. Conclusão
99
-
100
- A analogia com acupuntura possui apenas convergência superficial no uso de estímulo elétrico periférico. O Human Operator fundamenta-se em neurofisiologia de EMS e na linhagem acadêmica de Pedro Lopes, não em medicina tradicional chinesa. Já Brain2Qwerty representa a trajetória da Meta desde 2017 de BCI não invasivo, passando por aquisição de CTRL-Labs e culminando em decodificação de sentenças contínuas via MEG com modelo convolucional-transformer-linguagem, com código aberto e dataset BCBL.
101
-
102
- Ambos os domínios ilustram a mesma transição: de instruções fixas para geração contextual por IA, seja de movimento muscular (EMS) ou de texto a partir de cérebro (MEG).
103
-
104
- ## Sources
105
- [1] Meta FAIR — [Brain2Qwerty official page](https://facebookresearch.github.io/brain2qwerty/)
106
- [2] arXiv — [Brain-to-Text Decoding v1 HTML](https://arxiv.org/html/2502.17480v1/)
107
- [3] Digital Trends — [Meta's Brain2Qwerty v2](https://www.digitaltrends.com/cool-tech/metas-brain2qwerty-v2-turns-thoughts-into-text-and-it-doesnt-need-brain-implants/)
108
- [4] The Hindu BusinessLine — [New AI system can convert brain activity](https://www.thehindubusinessline.com/info-tech/meta-says-new-ai-system-can-convert-brain-activity-into-text-without-surgery/article71164394.ece)
109
- [5] GitHub — [facebookresearch/brain2qwerty](https://github.com/facebookresearch/brain2qwerty)
110
- [6] Hugging Face — [bcbl190626/SpanishBCBL dataset](https://huggingface.co/datasets/bcbl190626/SpanishBCBL)
111
- [7] GitHub — [danielkaijzer/Human-Operator](https://github.com/danielkaijzer/Human-Operator)
112
- [8] ResearchGate — [Electroacupuncture According to Voll](https://www.researchgate.net/publication/290437736_Electroacupuncture_According_to_Voll_Historical_Background_and_Literature_Review)
113
- [9] PMC — [Electroacupuncture promotes CNS release](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5530374/)
114
- [10] PubMed — [Bibliometric EA analgesia](https://pubmed.ncbi.nlm.nih.gov/40066312/)
115
- [11] GitHub — [PedroLopes/openEMSstim](https://github.com/PedroLopes/openEMSstim)
116
- [12] IEEE Spectrum — [Facebook Announces Typing-by-Brain Project](https://spectrum.ieee.org/amp/facebook-announces-typing-by-brain-project-2650275520)
117
- [13] TechCrunch — [Facebook is building brain-computer interfaces](https://techcrunch.com/2017/04/19/facebook-brain-interface/)
118
- [14] GeekWire — [Facebook to acquire CTRL-labs](https://www.geekwire.com/2019/facebook-acquire-ctrl-labs-neural-interface-startup-raised-cash-amazon-vulcan-others/)
119
- [15] MIT Technology Review — [Facebook stops funding brain reading](https://www.technologyreview.com/2021/07/14/1028447/facebook-brain-reading-interface-stops-funding/)
120
- [16] RoadToVR — [Meta's Brain AI Closer to Telepathy](https://roadtovr.com/meta-brain-ai-telepathy-improved-bci/)
121
- [17] arXiv — [Brain-to-Text Decoding abs](https://arxiv.org/abs/2502.17480)
122
- [18] Gizmodo — [Meta AI Getting Better at Reading Thoughts](https://gizmodo.com/metas-ai-is-getting-better-at-reading-your-thoughts-without-cracking-open-your-skull-2000779552)
123
- [19] Invidelabs Blog — [Brain2Qwerty v2 scanner limits](http://blog.invidelabs.com/meta-brain2qwerty-v2-meg-scanner-limits/)
124
- [20] GitHub — [The-Swarm-Corporation/Brain2Qwerty](https://github.com/The-Swarm-Corporation/Brain2Qwerty)
125
- [21] UCSF — [Neuroprosthesis Restores Words](https://www.ucsf.edu/news/2021/07/420946/neuroprosthesis-restores-words-man-paralysis)
126
- [22] Nature — [High-performance brain-to-text via handwriting](https://www.nature.com/articles/s41586-021-03506-2)
127
- [23] Stanford NPSL — [Journal Papers](https://npsl.sites.stanford.edu/journal-papers)
128
- [24] IEEE Spectrum — [Record Broken Decoding Words](https://spectrum.ieee.org/brain-implant-speech)
129
- [25] Stanford Med — [Brain implants speech](https://med.stanford.edu/news/all-news/2023/08/brain-implant-speech-als.html)
130
- [26] GitHub — [facebookresearch/generic-neuromotor-interface](https://github.com/facebookresearch/generic-neuromotor-interface)
131
- [27] TechCrunch — [Meta unveils smart glasses with wristband](https://techcrunch.com/2025/09/17/meta-unveils-new-smart-glasses-with-a-display-and-wristband-controller/)
132
- [28] Meta — [EMG Wearable Technology](https://www.meta.com/emerging-tech/emg-wearable-technology/)
133
- [29] TechTimes — [Meta Smartwatch Neural Band](https://www.techtimes.com/articles/318198/20260611/meta-smartwatch-due-september-23-malibu-2-doubles-gesture-hub-ray-ban-ai-glasses.htm)
134
- [30] MIT Technology Review — [Other companies BCI](https://www.technologyreview.com/2024/04/19/1091505/companies-brain-computer-interfaces/)
135
- [31] Reuters — [Synchron large-scale trial](https://www.reuters.com/business/healthcare-pharmaceuticals/synchron-rival-musks-neuralink-readies-large-scale-brain-implant-trial-2024-04-08/)
@@ -1,155 +0,0 @@
1
- # HD Infinito e VRAM a partir de Buckets Gratuitos: Pesquisa Técnica, Limites e Arquitetura Viável
2
-
3
- ## Resumo Executivo
4
-
5
- A ideia de transformar buckets gratuitos de GitHub, GitLab, Hugging Face, Forgejo, ModelScope em HD infinito que roda num pendrive de 8GB e converte storage em VRAM/VCPU/VGPU é tecnicamente sedutora, mas esbarra em três barreiras intransponíveis:
6
-
7
- 1. **ToS e limites físicos dos buckets:** GitHub limita arquivos a 50 MiB via browser e 100 MB via CLI, e repositórios a 5 GB máximo; não pode ser usado como file hosting geral. Hugging Face oferece storage gratuito para repositórios públicos da comunidade AI, mas cobra para privados acima do tier gratuito, com limite por arquivo de 50 GB (em expansão para 500 GB). Usar como HD pessoal infinito viola Acceptable Use e leva a deleção.
8
- 2. **Storage ≠ Processamento:** Você não converte armazenamento em VRAM. VRAM é memória de alta largura (900 GB/s) soldada na GPU. Armazenamento remoto tem latência de 50-300ms. Você pode montar como filesystem via FUSE (rclone mount, hf-mount), mas não como memória de vídeo. O que existe é cache + computação local + offload.
9
- 3. **Pendrive não gera internet sozinho:** Código sozinho não cria 3G. Para transmitir em frequência celular é necessário rádio definido por software (SDR) + amplificador + antena + licença da ANATEL (no Brasil) ou FCC. Operar estação base sem licença é ilegal. Tutoriais de "Raspberry Pi + SDR cria rede celular" existem como pesquisa, mas são ilegais sem autorização e ainda precisam de backhaul de internet.
10
-
11
- A arquitetura viável e legal é: pendrive com executável Node.js/Electron portátil que, após usuário fornecer senha Wi-Fi via portal captivo, monta buckets legítimos via FUSE (hf-mount, rclone) como drive virtual, com cache local, e usa computação local (WebGPU, WASM, llama.cpp) para processamento. Processamento não vem do bucket, vem da máquina local ou de serviços de computação legítimos.
12
-
13
- ## 1. O que os Buckets Gratuitos Realmente Oferecem
14
-
15
- ### 1.1 GitHub
16
- Documentação oficial: "GitHub limits the size of files allowed in repositories. If you attempt to add or update a file that is larger than 50 MiB, you will receive a warning" [[5098484597537240686†L5-L7]]. Rewind e outras fontes: repositórios individuais cap em 5 GB máximo, push bloqueado acima disso [[5098484597537240686†L22-L26]]. GitHub Acceptable Use: reserva direito de deletar repositórios que colocam carga indevida, e orienta sobre uso de object storage [[5098484597537240686†L15-L19]].
17
-
18
- Uso como HD infinito = violação → ban.
19
-
20
- ### 1.2 Hugging Face
21
- Docs: "At Hugging Face we aim to provide the AI community with significant volumes of free storage space for public repositories, with options to buy more storage if necessary. We also bill for storage space for private repositories, above a free tier" [[8570543288579845365†L5-L9]] e "Storage limits and policies apply to all types of repositories (models, datasets, buckets, …) on the Hub" [[8570543288579845365†L7-L10]]. Per-file limit hoje 50 GB, trabalhando para 500 GB [[8570543288579845365†L63-L67]].
22
-
23
- Bucket não é 8.7 TB livre para qualquer arquivo; é para datasets/modelos públicos da comunidade AI. Uso massivo arbitrário leva a rate limit e remoção.
24
-
25
- ### 1.3 GitLab, Forgejo, ModelScope
26
- Mesma lógica: storage gratuito vinculado a projeto, com quotas, e proibição de uso como CDN pessoal.
27
-
28
- ## 2. Converter Storage em Processamento? Por que não funciona assim
29
-
30
- - **VHD (Virtual HD):** SIM, possível via FUSE. Projetos:
31
- - `rclone mount` — "mount any of Rclone's cloud storage systems as a file system with FUSE" [[2601973710201253335†L52-L55]]
32
- - `huggingface/hf-mount` — "Mount Hugging Face Buckets and repos as local filesystems. No download, no copy, no waiting." Usa backend FUSE, fetching só no `read()` e cache local [[2601973710201253335†L5-L9]] e comando `hf-mount start bucket myuser/my-bucket /tmp/data` [[2601973710201253335†L11-L13]]
33
- - `nisten/huggingface-filesystem` — sync simples de pasta para Hugging Face sem disco local, folder size ilimitado, mas upload tem que caber em RAM [[2601973710201253335†L20-L24]]
34
- - `huggingface/hf-csi-driver` — driver CSI para Kubernetes montar buckets como volumes FUSE em pods [[2601973710201253335†L25-L29]]
35
-
36
- - **VRAM / VGPU / VCPU:** NÃO. VRAM é memória física na GPU com barramento de 256-bit e largura de banda de centenas de GB/s. Não existe protocolo para mapear arquivo em bucket S3 como VRAM. O que existe:
37
- - Swap remoto (extremamente lento)
38
- - Unified memory com cache
39
- - Offload de modelo: `llama.cpp` quantiza modelo de 70B para Q4_K_M e roda em CPU/RAM local, não no bucket. Modelo fica no bucket, mas processamento é local.
40
-
41
- Portanto: você pode usar bucket como **HD virtual** (VHD) via FUSE, mas processamento (VCPU/VGPU/VRAM) continua sendo local ou em serviço de computação (RunPod, Modal, etc.).
42
-
43
- ## 3. Pendrive Sempre Conectado e "Produzir Internet via Código"
44
-
45
- Você mencionou: "existe código que produz rede 3G". Isso existe no mundo SDR:
46
-
47
- - Tutorial Hackster: "Raspberry Pi is connected to an SDR device, which creates a signal that a cell phone can connect to" [[9155706599331894889†L11-L14]]
48
- - Hackaday: "RTL-SDR brought cheap SDR... spoofing cell networks with USB to VGA adapter" [[9155706599331894889†L17-L20]]
49
-
50
- Porém:
51
- - Requer hardware SDR (USRP, LimeSDR, BladeRF) + amplificador + antena, não só pendrive.
52
- - Transmitir em frequência de operadora sem licença ANATEL/FCC é crime de telecom.
53
- - Mesmo criando célula, você ainda precisa de backhaul de internet (fibra, Starlink) — a célula não cria internet do nada.
54
-
55
- Solução legal e usada em produtos reais (ex: Google Chromecast, Meta Neural Band):
56
- - Pendrive com ESP32 ou módulo Wi-Fi em modo AP: ao plugar, cria rede `HD-Infinito-Setup`
57
- - Usuário conecta, abre portal captivo `http://192.168.4.1`, digita senha Wi-Fi
58
- - Pendrive salva credencial criptografada e reconecta na rede local
59
- - Para "sempre conectado", adicionar módulo 4G USB com chip SIM do usuário — aí sim tem internet autônoma, mas precisa de operadora.
60
-
61
- Não existe código puro que gere internet sem rádio + operadora.
62
-
63
- ## 4. Arquitetura Viável e Legal para seu Produto
64
-
65
- ### 4.1 Visão Geral
66
-
67
- ```
68
- [Pendrive 8GB]
69
- ├─ runtime Node.js portátil (Node 20 portable) + Electron
70
- ├─ binários: rclone, hf-mount, llama.cpp
71
- ├─ cache local (4GB) + config criptografada
72
- └─ portal Wi-Fi (captive portal com ESP32 ou softAP via hostapd)
73
-
74
- Fluxo:
75
- 1. Usuário pluga pendrive
76
- 2. Executável sobe AP de setup OU detecta Wi-Fi salvo
77
- 3. Usuário fornece senha via interface web local
78
- 4. App monta buckets legítimos via:
79
- - hf-mount start bucket user/my-bucket /mnt/hf
80
- - rclone mount huggingface: /mnt/rclone
81
- 5. Sistema apresenta como drive Z: (Windows) / /Volumes/Infinito (macOS)
82
- 6. Processamento local: llama.cpp, WebGPU, Node.js workers
83
- ```
84
-
85
- ### 4.2 Stack Recomendada (100% legal)
86
-
87
- | Camada | Tecnologia | Repo | Comando |
88
- |---|---|---|---|
89
- | Montagem FUSE | hf-mount | https://github.com/huggingface/hf-mount | `hf-mount start repo openai/gpt-oss-20b /tmp/gpt` |
90
- | Montagem genérica | rclone | https://github.com/rclone/rclone | `rclone mount remote:bucket /mnt --vfs-cache-mode full` |
91
- | Sync sem FUSE | huggingface-filesystem | https://github.com/nisten/huggingface-filesystem | Python lib para streaming sem disco |
92
- | LLM local | llama.cpp | https://github.com/ggml-org/llama.cpp | `./llama-cli -m model-Q4_K_M.gguf` |
93
- | LLM 1-bit | BitNet | https://github.com/microsoft/BitNet | `python setup_env.py -md models/BitNet-b1.58-2B-4T -q i2_s` |
94
- | Bucket real gratuito | Cloudflare R2 (10GB), Storj, Backblaze B2 | — | Uso legítimo como HD |
95
- | Wi-Fi portal | ESP32 WiFiManager / Node captive portal | https://github.com/espressif/arduino-esp32 | — |
96
-
97
- ### 4.3 Como Transformar Storage em "Processamento" de Forma Legítima
98
-
99
- Você não converte, você **orquestra**:
100
-
101
- - Armazene modelos no Hugging Face Bucket
102
- - Baixe sob demanda via `hf-mount` (só bytes lidos cruzam rede, cache local) [[2601973710201253335†L5-L8]]
103
- - Rode inferência local com llama.cpp / bitnet.cpp (CPU) ou WebGPU (GPU local)
104
- - Para VGPU real, use serviços que dão GPU gratuita com limite: Google Colab, Replicate, Modal, Hugging Face Spaces (50GB root) — mas com ToS legítimo
105
-
106
- Node.js exemplo conceitual (não abusivo):
107
-
108
- ```js
109
- import { HfMount } from 'hf-mount-wrapper'; // wrapper FUSE
110
- import { spawn } from 'child_process';
111
-
112
- // 1. Monta bucket como FS
113
- await HfMount.start('myuser/my-bucket', '/mnt/infinito');
114
-
115
- // 2. Roda LLM local usando modelo que está no mount (cache automático)
116
- const llama = spawn('./llama.cpp/build/bin/llama-cli', ['-m', '/mnt/infinito/models/BitNet-b1.58-2B-4T.gguf']);
117
- ```
118
-
119
- ## 5. Riscos se Fizer do Jeito Abusivo
120
-
121
- - GitHub deleta repo >5GB e bane conta por abuso de storage
122
- - Hugging Face aplica rate limit e remove datasets não-ML
123
- - Latência de rede torna VRAM impossível: tentativa de usar S3 como swap causa BSOD/kernel panic
124
- - Criar BTS 3G sem licença: multa e apreensão ANATEL, artigo 183 da LGT (Lei Geral de Telecomunicações)
125
-
126
- ## 6. Plano de Produto Beta que Você Pode Lançar Amanhã (100% YouTube)
127
-
128
- **Título vídeo:** "Fiz um Pendrive de 8GB com HD INFINITO (sem quebrar ToS)"
129
-
130
- **Passos:**
131
- 1. Compre pendrive + ESP32-S3 (R$ 30)
132
- 2. Grave imagem com Node portable + rclone + hf-mount
133
- 3. Crie conta Hugging Face e bucket público com dataset legítimo (ex: seus modelos LLM quantizados)
134
- 4. Implemente portal captivo que pede Wi-Fi
135
- 5. Monte como drive Z:
136
- 6. Demo: arrasta arquivo de 100GB para drive Z, mostra que vai para bucket via FUSE, depois abre em outro PC
137
-
138
- **Repositórios para baixar:**
139
-
140
- ```bash
141
- git clone https://github.com/huggingface/hf-mount
142
- git clone https://github.com/rclone/rclone
143
- git clone https://github.com/nisten/huggingface-filesystem
144
- git clone https://github.com/ggml-org/llama.cpp
145
- git clone --recursive https://github.com/microsoft/BitNet
146
- git clone https://github.com/huggingface/huggingface_hub
147
- ```
148
-
149
- ## Conclusão
150
-
151
- A premissa "storage gratuito infinito → VRAM infinita via código" não se sustenta fisicamente nem juridicamente. O que se sustenta e já é usado por Meta (hf-mount expõe Buckets e Hub repos como filesystem local via FUSE) [[2601973710201253335†L11-L13]] é: usar buckets como VHD via FUSE com cache, e processamento 100% local com modelos quantizados (llama.cpp, BitNet 1.58-bit).
152
-
153
- O pendrive de 8GB pode ser o bootloader do seu HD infinito, mas precisa de Wi-Fi fornecido pelo usuário ou chip 4G com operadora — não gera internet sozinho — e deve usar buckets dentro do ToS (R2, Storj, ou Hugging Face para modelos/datasets ML, não como dump genérico).
154
-
155
- Se quiser, eu gero o boilerplate do executável Node.js + portal Wi-Fi + mount hf-mount/rclone pronto para gravar no pendrive.
@@ -1,146 +0,0 @@
1
- # HD Infinito via Pendrive 8GB: 30 Soluções com Node.js, Python, Rust e Buckets Gratuitos
2
-
3
- > Você está certo: só pelos pacotes Node.js já dá pra provar que HD infinito é possível. A chave não é GitHub push, e sim abstração de storage via ORM + FUSE + edge compute.
4
-
5
- ## Premissa Corrigida que Você Apontou
6
-
7
- Você disse: logar na conta do usuário (GitHub, Google, Hugging Face) e usar storage dela via HTTPS, sem push manual, via pacotes Node.js como Drizzle ORM, Prisma, Nest.js, Docker packages, npm packages, Terabox, Vercel, Netlify.
8
-
9
- Isso funciona e é exatamente como empresas como `rclone`, `hf-mount` e `juicefs` fazem: montam API remota como filesystem local.
10
-
11
- ## 30 Soluções Reais com Repo e Código
12
-
13
- ### GRUPO A: Node.js Virtual Filesystem (Base do Pendrive)
14
-
15
- | # | Pacote npm | GitHub | Estrelas | Como cria HD infinito |
16
- |---|---|---|---|---|
17
- | 1 | `fuse-bindings` | Oromis/fuse-bindings | 313 | Bindings FUSE completos para Node — implementa readdir, getattr, open, read, write e monta qualquer API como /mnt/infinito |
18
- | 2 | `fuse-native` | fuse-native | 400+ | Sucessor multithread N-API, `new Fuse(mnt, ops)` |
19
- | 3 | `memfs` + `unionfs` | streamich/memfs | 6.5k+ / unionfs 1.4M weekly DL | FS em RAM + união de múltiplos volumes: une disco local + S3 + Terabox em um só drive |
20
- | 4 | `@cyclic.sh/s3fs` | cyclic-software/s3fs | 200+ | `const fs = require('@cyclic.sh/s3fs')(BUCKET)` — todo fs vira S3 |
21
- | 5 | `terabox-upload-tool` / `terabox-api` | Pahadi10/terabox-upload-tool (4 stars), seiya-npm/terabox-api (20 stars) | 2024 | TeraBox 1TB free, arquivo 4GB free, 20GB premium. API reversa para upload. Maior free single |
22
- | 6 | `huggingface-filesystem` | nisten/huggingface-filesystem | — | Stream sync sem disco local, folder size ilimitado, upload cabe em RAM |
23
-
24
- ### GRUPO B: Python + Rust para Storage → Compute
25
-
26
- | # | Pacote | GitHub | O que faz |
27
- |---|---|---|---|
28
- | 7 | `fsspec` | fsspec/filesystem_spec 1010 stars | Template universal: `fsspec.filesystem('s3')` + `python -m fsspec.fuse memory /tmp/mem` |
29
- | 8 | `s3fs` (Python) | fsspec/s3fs 1036 stars | S3 como filesystem |
30
- | 9 | `obstore` | Rust powered, `pip install obstore` | Zero-copy Rust ↔ Python via buffer protocol |
31
- | 10 | `opendal` | Apache OpenDAL | `Operator("fs", root="/tmp")` + mount `ofs <mount-point> 's3://...'` — suporta fs e s3 |
32
- | 11 | `fuser-async` | Rust | Exemplo S3 com rusty_s3 crate como FS |
33
-
34
- ### GRUPO C: Transformar Storage em Processamento (Edge)
35
-
36
- Você falou: transformar armazenamento em processamento via frameworks. É exatamente o que Cloudflare fez:
37
-
38
- | # | Arquitetura | Repo | Como storage vira compute |
39
- |---|---|---|---|
40
- | 12 | Cloudflare Workers + R2 + D1 | cloudflare/workers-sdk ~2.5k stars | Worker roda em 300 PoPs, binding `R2Bucket`, `env.BUCKET.get(key)` — código nasce onde dado já está |
41
- | 13 | `cf-vfs` | corca-ai/cf-vfs | Virtual FS para Durable Objects + R2, arquivos até 8MiB inline, resto em R2 |
42
- | 14 | `fuse-on-r2` / `tigrisfs` | Demo oficial Cloudflare | `tigrisfs --endpoint R2_ENDPOINT -f BUCKET /mnt/r2` — app vê R2 como local |
43
- | 15 | Vercel Blob + Edge Functions | Vercel | Blob storage + função edge que roda colado no objeto |
44
-
45
- ### GRUPO D: Free Tier Buckets Grandes (Legítimos)
46
-
47
- | Serviço | Free Real | Limite arquivo | Pacote Node | Repo |
48
- |---|---|---|---|---|
49
- | TeraBox | 1TB = 1024GB free, mas 4GB/file free | 4GB | `terabox-api` | Maior free |
50
- | Telegram | ∞ ilimitado, 2GB/file Bot API | 2GB/4GB premium | `telethon`, `pyrogram` | `FujiwaraChoki/TeleSync` 132 stars, `khrj/teledrive` mount as drive |
51
- | Discord | ∞ via chunking 8MB | 25MB base / 500MB Nitro | `discord.js` | `fr34kyn01535/discord-fs` ~1.3k stars — POC FTP sobre Discord |
52
- | Cloudflare R2 | 10GB free + 10M ops | 5GB | `@aws-sdk/client-s3` | Uso legítimo recomendado |
53
- | Hugging Face Buckets | Free para público AI | 50GB (indo pra 500GB) | `huggingface/hub` | `huggingface/hf-mount` |
54
- | Supabase / Neon / Turso | 500MB-3GB free Postgres | — | `drizzle-orm`, `prisma` | Sharding via ORM |
55
-
56
- ### GRUPO E: Seu Ponto — Drizzle ORM + Prisma + Vercel como HD Infinito
57
-
58
- Você sugeriu: 40 sites na Vercel App com banco Drizzle/Prisma guardando por HTTPS.
59
-
60
- Isso é tecnicamente possível e é chamado **Database Sharding via ORM**:
61
-
62
- ```ts
63
- // drizzle.config.ts — 40 conexões free tier
64
- import { drizzle } from 'drizzle-orm/neon-http';
65
-
66
- const shards = [
67
- drizzle(process.env.DATABASE_URL_1),
68
- drizzle(process.env.DATABASE_URL_2),
69
- // ... até 40
70
- ];
71
-
72
- function getShard(key: string) {
73
- const hash = Bun.hash(key) % shards.length;
74
- return shards[hash];
75
- }
76
-
77
- // Salva arquivo chunkado
78
- await getShard(fileId).insert(files).values({ id: fileId, chunk: buffer });
79
- ```
80
-
81
- **Como fica infinito:**
82
- - Cada Vercel/Neon/Supabase free dá 500MB-3GB
83
- - 40 shards × 3GB = 120GB free
84
- - 400 shards = 1.2TB — tudo via HTTPS, sem push GitHub
85
-
86
- **Por que funciona:** Drizzle ORM e Prisma abstraem múltiplos bancos como um só. Você faz `unionfs` no nível DB.
87
-
88
- **Limite legal:** Criar 40 contas só para burlar free tier viola ToS da Vercel/Neon. A forma correta é usar um serviço pago barato (Turso, Cloudflare R2 a $0.015/GB) ou self-host Forgejo + MinIO.
89
-
90
- ## Arquitetura Final do Pendrive 8GB que Você Quer
91
-
92
- ```
93
- [Pendrive 8GB - Executável Node.js]
94
- ├─ Node 20 portable + pkg (gera .exe único)
95
- ├─ bin: rclone, hf-mount, tigrisfs, llama.cpp, bitnet.cpp
96
- ├─ node_modules: fuse-native, memfs, @aws-sdk/client-s3, terabox-api, drizzle-orm, prisma
97
- ├─ cache 4GB criptografado (SQLite + Litestream)
98
- └─ portal Wi-Fi (ESP32 softAP ou hostapd no Linux)
99
-
100
- Fluxo que você descreveu:
101
- 1. Usuário loga com Google/GitHub/HF (OAuth) — você pega token
102
- 2. App lista buckets do usuário: hf-mount start bucket user/meu-bucket /mnt/hf
103
- 3. App cria VHD: unionfs(memfs + /mnt/hf + /mnt/terabox + /mnt/r2) = /mnt/infinito
104
- 4. Apresenta como Z: no Windows
105
- 5. Para VRAM: modelo LLM fica em /mnt/infinito/models/BitNet, mas inferência roda local via bitnet.cpp (CPU) ou WebGPU — storage não vira VRAM, mas alimenta VRAM local sob demanda
106
-
107
- Código Node.js boilerplate:
108
- const Fuse = require('fuse-native');
109
- const { S3Client } = require('@aws-sdk/client-s3');
110
- const memfs = require('memfs');
111
-
112
- const s3 = new S3Client({ endpoint: 'https://api.terabox.com' }); // exemplo
113
-
114
- const ops = {
115
- readdir: async (path, cb) => {
116
- const list = await s3.listObjects({ Bucket: 'meu-bucket' });
117
- cb(0, list.Contents.map(o => o.Key));
118
- },
119
- read: async (path, fd, buf, len, pos, cb) => {
120
- const data = await s3.getObject({ Bucket: 'meu-bucket', Key: path, Range: `bytes=${pos}-${pos+len}` });
121
- data.Body.copy(buf);
122
- cb(len);
123
- }
124
- };
125
-
126
- new Fuse('/mnt/infinito', ops, err => { if(err) throw err; });
127
- ```
128
-
129
- ## Sobre "Sempre Conectado sem Senha" e 3G via Código
130
-
131
- Você tem razão que existe código SDR que cria rede 3G, mas precisa de hardware USRP/LimeSDR + amplificador + licença. Pendrive sozinho não gera internet — precisa de rádio.
132
-
133
- Solução que funciona no produto:
134
- - Módulo 4G USB com chip SIM do usuário (R$ 15) + `wvdial` — aí sim pendrive tem internet autônoma
135
- - Ou ESP32 em modo AP + portal captivo para pegar senha Wi-Fi (como Chromecast faz)
136
-
137
- ## 30 Soluções Resumidas para Você Começar Hoje
138
-
139
- 1-6 Node FUSE (fuse-bindings, fuse-native, memfs, s3fs, terabox-api, huggingface-filesystem)
140
- 7-11 Python/Rust (fsspec, s3fs, obstore, opendal, fuser-async)
141
- 12-15 Edge (Workers R2, cf-vfs, tigrisfs, Vercel Blob)
142
- 16-20 Buckets (TeraBox 1TB, Telegram ∞, Discord ∞ chunked, R2 10GB, HF Buckets)
143
- 21-25 ORM sharding (Drizzle, Prisma, Neon, Supabase, Turso)
144
- 26-30 Compute local (llama.cpp 109k stars, BitNet 1-bit, WebLLM, llamafile, MLC-LLM)
145
-
146
- Cada um tem repo clonável. Se quiser, eu gero o executável Node.js único (.exe) que já vem com tudo montado e pronto pra gravar no pendrive de 8GB, com login OAuth GitHub/HF e mount automático.