@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,944 +0,0 @@
1
- # Pesquisa: Universal JavaScript Cross-Runtime (2026)
2
-
3
- > Como escrever código JavaScript/TypeScript que roda em Node.js, Deno, Bun, browsers e edge runtimes sem dependências de runtime específico.
4
-
5
- ---
6
-
7
- ## 1. Fundamento: WinterTC Minimum Common Web Platform API (ECMA-429)
8
-
9
- O **WinterTC** (anteriormente WinterCG) definiu o **Minimum Common Web Platform API** — um conjunto mínimo de APIs que todos os runtimes devem suportar. O objetivo é que o mesmo código funcione em qualquer lugar.
10
-
11
- ### APIs incluídas no mínimo comum
12
-
13
- | API | Descrição | Status |
14
- |-----|-----------|--------|
15
- | `fetch()` | HTTP client | ✅ Universal |
16
- | `Request` | Request object | ✅ Universal |
17
- | `Response` | Response object | ✅ Universal |
18
- | `Headers` | HTTP headers | ✅ Universal |
19
- | `URL` | URL parsing | ✅ Universal |
20
- | `URLPattern` | URL matching | ✅ Universal (quase todos) |
21
- | `crypto.subtle` | Web Crypto API | ✅ Universal |
22
- | `ReadableStream` | Streams | ✅ Universal |
23
- | `WritableStream` | Streams | ✅ Universal |
24
- | `TransformStream` | Streams | ✅ Universal |
25
- | `TextEncoder` | UTF-8 encoding | ✅ Universal |
26
- | `TextDecoder` | UTF-8 decoding | ✅ Universal |
27
- | `structuredClone` | Deep cloning | ✅ Universal |
28
- | `setTimeout` / `setInterval` | Timers | ✅ Universal |
29
- | `queueMicrotask` | Microtasks | ✅ Universal |
30
- | `AbortController` | Abort signals | ✅ Universal |
31
- | `console` | Logging | ✅ Universal |
32
- | `atob` / `btoa` | Base64 | ✅ Universal |
33
- | `performance.now()` | Timing | ✅ Universal |
34
-
35
- ### APIs que NÃO são universais (evitar)
36
-
37
- | API | Disponível em | Evitar se |
38
- |-----|---------------|-----------|
39
- | `fs` | Node/Bun/Deno | Precisa de polyfill ou adapter |
40
- | `process` | Node/Bun/Deno | Não existe em browsers |
41
- | `Buffer` | Node/Bun/Deno | Usar `ArrayBuffer` / `Uint8Array` |
42
- | `path` | Node/Bun/Deno | Usar `URL` para paths |
43
- | `child_process` | Node/Bun/Deno | Não existe em browsers |
44
- | `require()` | Node/Bun | Usar `import` |
45
- | `__dirname` | Node/Bun | Usar `import.meta.url` |
46
-
47
- ---
48
-
49
- ## 2. Tabela de Compliance dos Runtimes (2026)
50
-
51
- | API | Node.js 24+ | Deno 2.x | Bun 1.x+ | Cloudflare Workers | Vercel Edge | Browsers |
52
- |-----|-------------|----------|----------|-------------------|-------------|----------|
53
- | `fetch` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
54
- | `Request/Response/Headers` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
55
- | `URL` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
56
- | `URLPattern` | ✅ (v24) | ✅ | ✅ | ✅ | ✅ | ⚠️ Chrome/Edge |
57
- | `crypto.subtle` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
58
- | `ReadableStream` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
59
- | `WritableStream` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
60
- | `TransformStream` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
61
- | `TextEncoder/Decoder` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
62
- | `structuredClone` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
63
- | `AbortController` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
64
- | `atob/btoa` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
65
- | `performance.now()` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
66
- | `WebSocket` | ✅ | ✅ | ✅ | ✅ | ⚠️ | ✅ |
67
- | `navigator` | ⚠️ parcial | ✅ | ⚠️ | ⚠️ | ⚠️ | ✅ |
68
-
69
- > **Regra de ouro:** Se está na tabela do WinterTC, pode usar. Caso contrário, precisa de adapter.
70
-
71
- ---
72
-
73
- ## 3. Padrão Universal JavaScript
74
-
75
- A ideia central: **escreva para a API mínima comum, use adapters para o resto.**
76
-
77
- ```
78
- src/
79
- ├── core/ # Lógica universal (100% WinterTC)
80
- │ ├── scraper.ts # usa fetch, Response, TextEncoder
81
- │ ├── parser.ts # usa URL, URLPattern
82
- │ ├── crypto.ts # usa crypto.subtle
83
- │ ├── streams.ts # usa ReadableStream, TransformStream
84
- │ └── encoding.ts # usa TextEncoder, TextDecoder
85
- ├── adapters/ # Plataforma específica
86
- │ ├── node.ts # node:fs, node:path
87
- │ ├── deno.ts # Deno.open, Deno.stat
88
- │ ├── bun.ts # Bun.file, Bun.write
89
- │ ├── browser.ts # DOM APIs
90
- │ └── cloudflare.ts # KV, Durable Objects
91
- ├── index.ts # Entry point universal
92
- └── index.node.ts # Entry point com Node adapter
93
- ```
94
-
95
- ### Exemplo: Scraper universal
96
-
97
- ```typescript
98
- // src/core/scraper.ts — 100% WinterTC compliant
99
- import type { ScrapeResult } from './types.ts';
100
-
101
- export async function scrape(url: string): Promise<ScrapeResult> {
102
- // fetch, Request, Response, Headers — todos universais
103
- const response = await fetch(url, {
104
- headers: { 'User-Agent': 'UniversalScraper/1.0' },
105
- signal: AbortSignal.timeout(30_000),
106
- });
107
-
108
- if (!response.ok) {
109
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
110
- }
111
-
112
- const html = await response.text(); // Response.text() universal
113
- return { url, html, status: response.status };
114
- }
115
- ```
116
-
117
- ```typescript
118
- // src/adapters/node.ts — Node.js específico
119
- import { readFile, writeFile, mkdir } from 'node:fs/promises';
120
- import { join, dirname } from 'node:path';
121
-
122
- export async function saveToFile(path: string, content: string): Promise<void> {
123
- await mkdir(dirname(path), { recursive: true });
124
- await writeFile(path, content, 'utf-8');
125
- }
126
-
127
- export async function loadFromFile(path: string): Promise<string> {
128
- return readFile(path, 'utf-8');
129
- }
130
- ```
131
-
132
- ```typescript
133
- // src/adapters/deno.ts — Deno específico
134
- import { ensureDir } from 'https://deno.land/std@0.224.0/fs/mod.ts';
135
-
136
- export async function saveToFile(path: string, content: string): Promise<void> {
137
- await ensureDir(dirname(path));
138
- await Deno.writeTextFile(path, content);
139
- }
140
-
141
- export async function loadFromFile(path: string): Promise<string> {
142
- return Deno.readTextFile(path);
143
- }
144
- ```
145
-
146
- ```typescript
147
- // src/adapters/browser.ts — Browser específico
148
- export async function saveToFile(path: string, content: string): Promise<void> {
149
- // IndexedDB, localStorage, ou download
150
- const blob = new Blob([content], { type: 'text/plain' });
151
- const a = document.createElement('a');
152
- a.href = URL.createObjectURL(blob);
153
- a.download = path;
154
- a.click();
155
- }
156
-
157
- export async function loadFromFile(path: string): Promise<string> {
158
- // Via fetch local ou FileReader
159
- const response = await fetch(path);
160
- return response.text();
161
- }
162
- ```
163
-
164
- ---
165
-
166
- ## 4. Imports Condicionais
167
-
168
- ### 4.1. dynamic import com try-catch (funcional, não preferido)
169
-
170
- ```typescript
171
- let fs: typeof import('node:fs/promises');
172
-
173
- try {
174
- fs = await import('node:fs/promises');
175
- } catch {
176
- // Fallback para runtime sem node:fs
177
- fs = null;
178
- }
179
-
180
- export async function readFile(path: string): Promise<string | null> {
181
- if (!fs) return null;
182
- return fs.readFile(path, 'utf-8');
183
- }
184
- ```
185
-
186
- **Problema:** Não funciona bem com tree-shaking. O bundle inclui o polyfill mesmo que não necessário.
187
-
188
- ### 4.2. Conditional exports no package.json (recomendado)
189
-
190
- ```json
191
- {
192
- "name": "@wenathlan/webscrape",
193
- "exports": {
194
- ".": {
195
- "types": "./dist/index.d.ts",
196
- "import": "./dist/index.js",
197
- "default": "./dist/index.js"
198
- },
199
- "./node": {
200
- "types": "./dist/node.d.ts",
201
- "import": "./dist/node.js"
202
- },
203
- "./browser": {
204
- "types": "./dist/browser.d.ts",
205
- "import": "./dist/browser.js"
206
- },
207
- "./deno": {
208
- "types": "./dist/deno.d.ts",
209
- "import": "./dist/deno.js"
210
- }
211
- }
212
- }
213
- ```
214
-
215
- **O consumidor importa:**
216
-
217
- ```typescript
218
- // Node.js
219
- import { scrape } from '@wenathlan/webscrape/node';
220
-
221
- // Browser
222
- import { scrape } from '@wenathlan/webscrape/browser';
223
-
224
- // Deno
225
- import { scrape } from '@wenathlan/webscrape/deno';
226
-
227
- // Universal (só APIs comuns)
228
- import { scrape } from '@wenathlan/webscrape';
229
- ```
230
-
231
- ### 4.3. unenv polyfills
232
-
233
- O [unenv](https://github.com/unjs/unenv) mapeia APIs de Node para implementações universais:
234
-
235
- ```typescript
236
- // unenv transforma:
237
- import { readFile } from 'node:fs/promises';
238
- // Em:
239
- import { readFile } from 'unenv/node/fs';
240
- // Que usa implementations in-memory ou fetch-based
241
- ```
242
-
243
- **Uso com build tools:**
244
-
245
- ```typescript
246
- // vite.config.ts
247
- import { nodePolyfills } from 'unenv';
248
-
249
- export default {
250
- resolve: {
251
- alias: nodePolyfills(),
252
- },
253
- };
254
- ```
255
-
256
- ```typescript
257
- // tsup.config.ts
258
- import { defineConfig } from 'tsup';
259
-
260
- export default defineConfig({
261
- // unenv automaticamente polyfills node: imports
262
- noExternal: [],
263
- // ou usar unenv manualmente
264
- });
265
- ```
266
-
267
- ---
268
-
269
- ## 5. node: Protocol Imports e Runtime Detection
270
-
271
- ### 5.1. Por que usar `node:` protocol?
272
-
273
- ```typescript
274
- // ❌ Antes (ambíguo, pode colidir com packages npm)
275
- import { readFile } from 'fs';
276
-
277
- // ✅ Depois (explícito, sempre o built-in do Node)
278
- import { readFile } from 'node:fs/promises';
279
- ```
280
-
281
- ### 5.2. Ordem de detecção de runtime
282
-
283
- ```typescript
284
- type Runtime = 'deno' | 'bun' | 'node' | 'browser' | 'unknown';
285
-
286
- function detectRuntime(): Runtime {
287
- // Deno primeiro (tem globalThis.Deno)
288
- if (typeof globalThis.Deno !== 'undefined') return 'deno';
289
-
290
- // Bun segundo (tem globalThis.Bun)
291
- if (typeof globalThis.Bun !== 'undefined') return 'bun';
292
-
293
- // Node terceiro (tem globalThis.process com versions.node)
294
- if (
295
- typeof globalThis.process !== 'undefined' &&
296
- typeof globalThis.process.versions?.node !== 'undefined'
297
- ) {
298
- return 'node';
299
- }
300
-
301
- // Browser quarto (tem window, document)
302
- if (typeof window !== 'undefined' && typeof document !== 'undefined') {
303
- return 'browser';
304
- }
305
-
306
- return 'unknown';
307
- }
308
-
309
- // Factory pattern baseado no runtime
310
- function createStorage(runtime: Runtime) {
311
- switch (runtime) {
312
- case 'deno':
313
- return import('./adapters/deno.ts');
314
- case 'bun':
315
- return import('./adapters/bun.ts');
316
- case 'node':
317
- return import('./adapters/node.ts');
318
- case 'browser':
319
- return import('./adapters/browser.ts');
320
- default:
321
- return import('./adapters/memory.ts');
322
- }
323
- }
324
-
325
- // Uso
326
- const runtime = detectRuntime();
327
- const storage = await createStorage(runtime);
328
- ```
329
-
330
- ### 5.3. Detecção granular com versões
331
-
332
- ```typescript
333
- function getRuntimeInfo() {
334
- const runtime = detectRuntime();
335
-
336
- if (runtime === 'deno') {
337
- return {
338
- name: 'deno',
339
- version: globalThis.Deno.version.deno,
340
- v8: globalThis.Deno.version.v8,
341
- };
342
- }
343
-
344
- if (runtime === 'bun') {
345
- return {
346
- name: 'bun',
347
- version: globalThis.Bun.version,
348
- };
349
- }
350
-
351
- if (runtime === 'node') {
352
- return {
353
- name: 'node',
354
- version: globalThis.process.version,
355
- v8: globalThis.process.versions.v8,
356
- };
357
- }
358
-
359
- return { name: runtime, version: 'unknown' };
360
- }
361
- ```
362
-
363
- ---
364
-
365
- ## 6. APIs por Runtime: Quais Usar Onde
366
-
367
- ### APIs universais (pode usar em qualquer lugar)
368
-
369
- ```typescript
370
- // fetch + Request + Response + Headers
371
- const res = await fetch('https://api.example.com/data');
372
- const data = await res.json();
373
-
374
- // URL
375
- const url = new URL('https://example.com/path?q=1');
376
- url.searchParams.get('q');
377
-
378
- // URLPattern
379
- const pattern = new URLPattern({ pathname: '/users/:id' });
380
- pattern.test('https://example.com/users/123');
381
-
382
- // crypto.subtle
383
- const hash = await crypto.subtle.digest(
384
- 'SHA-256',
385
- new TextEncoder().encode('hello')
386
- );
387
-
388
- // Streams
389
- const stream = new ReadableStream({
390
- start(controller) {
391
- controller.enqueue(new TextEncoder().encode('data'));
392
- controller.close();
393
- },
394
- });
395
-
396
- // TextEncoder/Decoder
397
- const encoded = new TextEncoder().encode('utf-8 text');
398
- const decoded = new TextDecoder().decode(encoded);
399
-
400
- // AbortController
401
- const controller = new AbortController();
402
- setTimeout(() => controller.abort(), 5000);
403
- await fetch(url, { signal: controller.signal });
404
-
405
- // structuredClone
406
- const clone = structuredClone(complexObject);
407
-
408
- // performance.now()
409
- const start = performance.now();
410
- // ... operation
411
- console.log(`Took ${performance.now() - start}ms`);
412
- ```
413
-
414
- ### APIs só em runtimes server (Node/Bun/Deno)
415
-
416
- ```typescript
417
- // Node.js
418
- import { readFile } from 'node:fs/promises';
419
- import { join } from 'node:path';
420
- import { createHash } from 'node:crypto';
421
- import { fileURLToPath } from 'node:url';
422
-
423
- // Deno
424
- const text = await Deno.readTextFile('./config.json');
425
- const info = await Deno.stat('./file.txt');
426
- const proc = await Deno.run({ cmd: ['ls', '-la'] });
427
-
428
- // Bun
429
- const file = Bun.file('./data.json');
430
- const content = await file.text();
431
- await Bun.write('./output.txt', 'hello');
432
- ```
433
-
434
- ### APIs só em browsers
435
-
436
- ```typescript
437
- // DOM
438
- document.querySelector('.content');
439
- window.localStorage.setItem('key', 'value');
440
- window.open('https://example.com');
441
-
442
- // IndexedDB
443
- const db = await indexeddb.open('MyDB', 1);
444
-
445
- // Service Workers
446
- navigator.serviceWorker.register('/sw.js');
447
-
448
- // Web Workers
449
- const worker = new Worker('/worker.js');
450
- ```
451
-
452
- ---
453
-
454
- ## 7. Build Targets
455
-
456
- ### 7.1. tsup/tsdown
457
-
458
- ```typescript
459
- // tsup.config.ts
460
- import { defineConfig } from 'tsup';
461
-
462
- export default defineConfig({
463
- entry: {
464
- index: 'src/index.ts',
465
- node: 'src/node.ts',
466
- browser: 'src/browser.ts',
467
- deno: 'src/deno.ts',
468
- },
469
- format: ['esm'],
470
- target: 'es2022',
471
- dts: true,
472
- splitting: true,
473
- clean: true,
474
- // Não polyfill APIs universais
475
- noExternal: [],
476
- // Manter node: imports como external
477
- external: [/^node:/],
478
- });
479
- ```
480
-
481
- ```typescript
482
- // tsdown.config.ts (sucessor moderno do tsup)
483
- import { defineConfig } from 'tsdown';
484
-
485
- export default defineConfig({
486
- entry: ['src/index.ts', 'src/node.ts', 'src/browser.ts'],
487
- format: ['esm'],
488
- dts: true,
489
- // Auto-detecta platform
490
- platform: 'neutral',
491
- });
492
- ```
493
-
494
- ### 7.2. unbuild
495
-
496
- ```typescript
497
- // build.config.ts
498
- import { defineBuildConfig } from 'unbuild';
499
-
500
- export default defineBuildConfig({
501
- entries: [
502
- 'src/index',
503
- 'src/node',
504
- 'src/browser',
505
- ],
506
- declaration: true,
507
- rollup: {
508
- emitCJS: false,
509
- },
510
- // unbuild usa mkdist ou rollup baseado no target
511
- });
512
- ```
513
-
514
- ### 7.3. Rollup
515
-
516
- ```typescript
517
- // rollup.config.js
518
- export default {
519
- input: {
520
- index: 'src/index.ts',
521
- node: 'src/node.ts',
522
- browser: 'src/browser.ts',
523
- },
524
- output: {
525
- dir: 'dist',
526
- format: 'esm',
527
- preserveModules: true,
528
- },
529
- external: [/^node:/, /^bun:/, /^https?:\/\//],
530
- };
531
- ```
532
-
533
- ---
534
-
535
- ## 8. Package.json Conditional Exports (Types First)
536
-
537
- ### Padrão correto (types sempre primeiro)
538
-
539
- ```json
540
- {
541
- "exports": {
542
- ".": {
543
- "types": "./dist/index.d.ts",
544
- "import": "./dist/index.js",
545
- "default": "./dist/index.js"
546
- },
547
- "./node": {
548
- "types": "./dist/node.d.ts",
549
- "import": "./dist/node.js",
550
- "default": "./dist/node.js"
551
- },
552
- "./browser": {
553
- "types": "./dist/browser.d.ts",
554
- "import": "./dist/browser.js",
555
- "default": "./dist/browser.js"
556
- }
557
- }
558
- }
559
- ```
560
-
561
- ### Por que types primeiro?
562
-
563
- 1. **TypeScript resolve `types` antes de `import`** — garante autocomplete correto
564
- 2. **Sem types primeiro, o TypeScript pode pegar o wrong entry** — causa erros de tipo
565
- 3. **`default` é fallback** — para tools que não entendem `import`
566
-
567
- ### Conditional exports para polyfills
568
-
569
- ```json
570
- {
571
- "exports": {
572
- ".": {
573
- "types": "./dist/index.d.ts",
574
- "browser": {
575
- "import": "./dist/browser.js"
576
- },
577
- "node": {
578
- "import": "./dist/node.cjs",
579
- "require": "./dist/node.cjs"
580
- },
581
- "import": "./dist/index.js",
582
- "default": "./dist/index.js"
583
- }
584
- }
585
- }
586
- ```
587
-
588
- > **Nota:** A ordem das chaves importa — browsers resolvem `browser` antes de `import`.
589
-
590
- ---
591
-
592
- ## 9. Validation Tools
593
-
594
- ### 9.1. publint
595
-
596
- Verifica se o package está publicado corretamente:
597
-
598
- ```bash
599
- npx publint
600
- ```
601
-
602
- **O que verifica:**
603
- - Exports estão corretos
604
- - Types estão incluídos
605
- - Module resolution funciona
606
- - Não há warnings de package.json
607
-
608
- ### 9.2. @arethetypeswrong/cli (attw)
609
-
610
- Verifica se os tipos estão corretos para cada consumer:
611
-
612
- ```bash
613
- npx @arethetypeswrong/cli
614
- ```
615
-
616
- **Exemplo de output:**
617
- ```
618
- @wenathlan/webscrape
619
-
620
- "import" - ESM
621
- ✅ @wenathlan/webscrape → ./dist/index.js
622
- ✅ Types: ./dist/index.d.ts
623
-
624
- "require" - CJS
625
- ❌ No CJS export found
626
- 💡 Add a "require" condition
627
-
628
- "browser" - Browser ESM
629
- ✅ @wenathlan/webscrape → ./dist/browser.js
630
- ```
631
-
632
- ### 9.3. other tools
633
-
634
- ```bash
635
- # Verificar se exports resolvem corretamente
636
- npx arethetypeswrong --pack
637
-
638
- # Verificar size do bundle
639
- npx bundlephobia @wenathlan/webscrape
640
-
641
- # Verificar dependências circulares
642
- npx madge --circular src/
643
- ```
644
-
645
- ---
646
-
647
- ## 10. Em 2026: Não Use Mais
648
-
649
- | Package | Por quê | Substituto |
650
- |---------|---------|------------|
651
- | `node-fetch` | `fetch` é global desde Node 18 | `fetch()` nativo |
652
- | `cross-fetch` | Mesmo motivo | `fetch()` nativo |
653
- | `isomorphic-fetch` | Deprecated, injeta global | `fetch()` nativo |
654
- | `undici` como polyfill | `fetch` já é nativo | `fetch()` nativo |
655
- | `buffer` package | `Buffer` já é global no Node | `Uint8Array` / `ArrayBuffer` |
656
- | `path-browserify` | Use `new URL()` | `URL` nativo |
657
- | `process` package | Não faça polyfill | Detecte o runtime |
658
- | `stream-browserify` | Streams já são universais | `ReadableStream` nativo |
659
-
660
- **Regra:** Se a API está no WinterTC Minimum Common, não polyfill. Se não está, use adapter.
661
-
662
- ---
663
-
664
- ## 11. Exemplos Completos
665
-
666
- ### 11.1. HTTP Client universal
667
-
668
- ```typescript
669
- // src/core/http.ts
670
- export interface HttpRequest {
671
- url: string;
672
- method?: string;
673
- headers?: Record<string, string>;
674
- body?: unknown;
675
- timeout?: number;
676
- }
677
-
678
- export interface HttpResponse<T = unknown> {
679
- status: number;
680
- headers: Record<string, string>;
681
- data: T;
682
- }
683
-
684
- export async function http<T = unknown>(request: HttpRequest): Promise<HttpResponse<T>> {
685
- const { url, method = 'GET', headers = {}, body, timeout = 30_000 } = request;
686
-
687
- const controller = new AbortController();
688
- const timer = setTimeout(() => controller.abort(), timeout);
689
-
690
- try {
691
- const response = await fetch(url, {
692
- method,
693
- headers: {
694
- 'Content-Type': 'application/json',
695
- ...headers,
696
- },
697
- body: body ? JSON.stringify(body) : undefined,
698
- signal: controller.signal,
699
- });
700
-
701
- const data = await response.json() as T;
702
-
703
- return {
704
- status: response.status,
705
- headers: Object.fromEntries(response.headers.entries()),
706
- data,
707
- };
708
- } finally {
709
- clearTimeout(timer);
710
- }
711
- }
712
- ```
713
-
714
- ### 11.2. Cache com TTL universal
715
-
716
- ```typescript
717
- // src/core/cache.ts
718
- interface CacheEntry<T> {
719
- value: T;
720
- expires: number;
721
- }
722
-
723
- export class UniversalCache<T = unknown> {
724
- private store = new Map<string, CacheEntry<T>>();
725
- private defaultTTL: number;
726
-
727
- constructor(defaultTTL = 60_000) {
728
- this.defaultTTL = defaultTTL;
729
- }
730
-
731
- set(key: string, value: T, ttl = this.defaultTTL): void {
732
- this.store.set(key, {
733
- value,
734
- expires: performance.now() + ttl,
735
- });
736
- }
737
-
738
- get(key: string): T | undefined {
739
- const entry = this.store.get(key);
740
- if (!entry) return undefined;
741
-
742
- if (performance.now() > entry.expires) {
743
- this.store.delete(key);
744
- return undefined;
745
- }
746
-
747
- return entry.value;
748
- }
749
-
750
- has(key: string): boolean {
751
- return this.get(key) !== undefined;
752
- }
753
-
754
- delete(key: string): void {
755
- this.store.delete(key);
756
- }
757
-
758
- clear(): void {
759
- this.store.clear();
760
- }
761
-
762
- get size(): number {
763
- // Limpeza lazy de entradas expiradas
764
- const now = performance.now();
765
- for (const [key, entry] of this.store) {
766
- if (now > entry.expires) {
767
- this.store.delete(key);
768
- }
769
- }
770
- return this.store.size;
771
- }
772
- }
773
- ```
774
-
775
- ### 11.3. HTML Parser universal (Turndown)
776
-
777
- ```typescript
778
- // src/core/parser.ts
779
- import TurndownService from 'turndown';
780
-
781
- // Turndown funciona em qualquer runtime que tenha DOM-like API
782
- // Para runtimes server, usar jsdom (Node/Bun) ou Deno DOM
783
-
784
- export interface ParseOptions {
785
- headingStyle?: 'atx' | 'setext';
786
- codeBlockStyle?: 'fenced' | 'indented';
787
- bulletListMarker?: '-' | '*' | '+';
788
- }
789
-
790
- export function htmlToMarkdown(
791
- html: string,
792
- options: ParseOptions = {}
793
- ): string {
794
- const turndown = new TurndownService({
795
- headingStyle: options.headingStyle ?? 'atx',
796
- codeBlockStyle: options.codeBlockStyle ?? 'fenced',
797
- bulletListMarker: options.bulletListMarker ?? '-',
798
- });
799
-
800
- // Remover scripts e styles
801
- turndown.remove(['script', 'style', 'noscript', 'iframe']);
802
-
803
- return turndown.turndown(html);
804
- }
805
- ```
806
-
807
- ### 11.4. Streaming com Progress
808
-
809
- ```typescript
810
- // src/core/stream.ts
811
- export interface StreamOptions {
812
- url: string;
813
- onProgress?: (loaded: number, total: number) => void;
814
- signal?: AbortSignal;
815
- }
816
-
817
- export async function* streamResponse(options: StreamOptions): AsyncGenerator<Uint8Array> {
818
- const { url, onProgress, signal } = options;
819
-
820
- const response = await fetch(url, { signal });
821
- if (!response.ok) throw new Error(`HTTP ${response.status}`);
822
-
823
- const contentLength = Number(response.headers.get('content-length')) || 0;
824
- const reader = response.body?.getReader();
825
-
826
- if (!reader) throw new Error('No body');
827
-
828
- let loaded = 0;
829
-
830
- try {
831
- while (true) {
832
- const { done, value } = await reader.read();
833
- if (done) break;
834
-
835
- loaded += value.length;
836
- onProgress?.(loaded, contentLength);
837
-
838
- yield value;
839
- }
840
- } finally {
841
- reader.releaseLock();
842
- }
843
- }
844
-
845
- // Uso
846
- const chunks: Uint8Array[] = [];
847
- for await (const chunk of streamResponse({
848
- url: 'https://example.com/large-file.bin',
849
- onProgress: (loaded, total) => {
850
- console.log(`${((loaded / total) * 100).toFixed(1)}%`);
851
- },
852
- })) {
853
- chunks.push(chunk);
854
- }
855
- ```
856
-
857
- ### 11.5. Config file loader universal
858
-
859
- ```typescript
860
- // src/core/config.ts
861
- const CONFIG_NAMES = ['webscrape.config', '.webscrape'];
862
- const CONFIG_EXTENSIONS = ['.ts', '.js', '.json', '.mjs'];
863
-
864
- export interface Config {
865
- urls: string[];
866
- format: string;
867
- output: string;
868
- timeout: number;
869
- }
870
-
871
- export async function loadConfig(root = '.'): Promise<Config | null> {
872
- for (const name of CONFIG_NAMES) {
873
- for (const ext of CONFIG_EXTENSIONS) {
874
- const path = `${root}/${name}${ext}`;
875
- try {
876
- const res = await fetch(new URL(path, import.meta.url).href);
877
- if (res.ok) {
878
- const text = await res.text();
879
- if (ext === '.json') {
880
- return JSON.parse(text) as Config;
881
- }
882
- // Para .ts/.js/.mjs — usar dynamic import em runtimes server
883
- // Em browser, usar eval (com cuidado) ou import map
884
- return JSON.parse(text) as Config;
885
- }
886
- } catch {
887
- continue;
888
- }
889
- }
890
- }
891
- return null;
892
- }
893
- ```
894
-
895
- ### 11.6. Runtime-aware package entry points
896
-
897
- ```json
898
- {
899
- "name": "@wenathlan/webscrape",
900
- "exports": {
901
- ".": {
902
- "types": "./dist/index.d.ts",
903
- "browser": {
904
- "types": "./dist/browser.d.ts",
905
- "import": "./dist/browser.js"
906
- },
907
- "deno": {
908
- "types": "./dist/deno.d.ts",
909
- "import": "./dist/deno.js"
910
- },
911
- "bun": {
912
- "types": "./dist/bun.d.ts",
913
- "import": "./dist/bun.js"
914
- },
915
- "node": {
916
- "types": "./dist/node.d.ts",
917
- "import": "./dist/node.js"
918
- },
919
- "import": "./dist/index.js",
920
- "default": "./dist/index.js"
921
- }
922
- }
923
- }
924
- ```
925
-
926
- ---
927
-
928
- ## 12. Checklist Universal
929
-
930
- - [ ] Usar apenas APIs do WinterTC Minimum Common no core
931
- - [ ] `fetch`, `Request`, `Response`, `Headers` como HTTP client
932
- - [ ] `URL` e `URLPattern` para parsing de URLs
933
- - [ ] `crypto.subtle` para hashing e criptografia
934
- - [ ] `ReadableStream` / `TransformStream` para streaming
935
- - [ ] `TextEncoder` / `TextDecoder` para encoding
936
- - [ ] `performance.now()` para timing
937
- - [ ] `node:` protocol para imports do Node.js
938
- - [ ] Runtime detection: Deno → Bun → Node → Browser
939
- - [ ] Conditional exports com types primeiro
940
- - [ ] Não usar: `node-fetch`, `cross-fetch`, `isomorphic-fetch`
941
- - [ ] Validar com `publint` e `@arethetypeswrong/cli`
942
- - [ ] Build targets: tsup/tsdown com `format: ['esm']`
943
- - [ ] Adapter pattern para APIs não-universais
944
- - [ ] Testar em pelo menos 2 runtimes (Node + um browser)