@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.
- package/Dockerfile +1339 -0
- package/README.md +68 -22
- package/alternatives.ts +1218 -0
- package/biome.json +153 -0
- package/boards.json +1517 -0
- package/compute.ts +3144 -0
- package/cores.json +1801 -0
- package/dist/acquisition.d.ts +359 -0
- package/dist/acquisition.d.ts.map +1 -0
- package/dist/acquisition.js +629 -0
- package/dist/acquisition.js.map +1 -0
- package/dist/alternatives.d.ts +509 -0
- package/dist/alternatives.d.ts.map +1 -0
- package/dist/alternatives.js +951 -0
- package/dist/alternatives.js.map +1 -0
- package/dist/automation.d.ts +426 -0
- package/dist/automation.d.ts.map +1 -0
- package/dist/automation.js +561 -0
- package/dist/automation.js.map +1 -0
- package/dist/browser.d.ts +562 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +1057 -0
- package/dist/browser.js.map +1 -0
- package/dist/capacitor.config.d.ts +13 -0
- package/dist/capacitor.config.d.ts.map +1 -0
- package/dist/capacitor.config.js +26 -0
- package/dist/capacitor.config.js.map +1 -0
- package/dist/cli.d.ts +17 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +111 -0
- package/dist/cli.js.map +1 -0
- package/dist/communication.d.ts +192 -0
- package/dist/communication.d.ts.map +1 -0
- package/dist/communication.js +418 -0
- package/dist/communication.js.map +1 -0
- package/dist/compute.d.ts +1161 -0
- package/dist/compute.d.ts.map +1 -0
- package/dist/compute.js +2273 -0
- package/dist/compute.js.map +1 -0
- package/dist/distribution.d.ts +529 -0
- package/dist/distribution.d.ts.map +1 -0
- package/dist/distribution.js +811 -0
- package/dist/distribution.js.map +1 -0
- package/dist/execution.d.ts +530 -0
- package/dist/execution.d.ts.map +1 -0
- package/dist/execution.js +761 -0
- package/dist/execution.js.map +1 -0
- package/dist/format.d.ts +19 -0
- package/dist/format.d.ts.map +1 -0
- package/dist/format.js +60 -0
- package/dist/format.js.map +1 -0
- package/dist/foundation.d.ts +176 -0
- package/dist/foundation.d.ts.map +1 -0
- package/dist/foundation.js +309 -0
- package/dist/foundation.js.map +1 -0
- package/dist/index.d.ts +733 -122
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1018 -122
- package/dist/index.js.map +1 -1
- package/dist/integration.d.ts +236 -0
- package/dist/integration.d.ts.map +1 -0
- package/dist/integration.js +236 -0
- package/dist/integration.js.map +1 -0
- package/dist/intelligence.d.ts +94 -0
- package/dist/intelligence.d.ts.map +1 -0
- package/dist/intelligence.js +145 -0
- package/dist/intelligence.js.map +1 -0
- package/dist/isolation.d.ts +129 -0
- package/dist/isolation.d.ts.map +1 -0
- package/dist/isolation.js +96 -0
- package/dist/isolation.js.map +1 -0
- package/dist/media.d.ts +344 -0
- package/dist/media.d.ts.map +1 -0
- package/dist/media.js +986 -0
- package/dist/media.js.map +1 -0
- package/dist/modes.d.ts +359 -0
- package/dist/modes.d.ts.map +1 -0
- package/dist/modes.js +134 -0
- package/dist/modes.js.map +1 -0
- package/dist/{library/public.d.ts → operations.d.ts} +15 -1
- package/dist/operations.d.ts.map +1 -0
- package/dist/{library/public.js → operations.js} +18 -7
- package/dist/operations.js.map +1 -0
- package/dist/orchestrator.d.ts +1339 -0
- package/dist/orchestrator.d.ts.map +1 -0
- package/dist/orchestrator.js +4308 -0
- package/dist/orchestrator.js.map +1 -0
- package/dist/performance.d.ts +416 -0
- package/dist/performance.d.ts.map +1 -0
- package/dist/performance.js +827 -0
- package/dist/performance.js.map +1 -0
- package/dist/quantum.d.ts +810 -0
- package/dist/quantum.d.ts.map +1 -0
- package/dist/quantum.js +2073 -0
- package/dist/quantum.js.map +1 -0
- package/dist/render.d.ts +381 -0
- package/dist/render.d.ts.map +1 -0
- package/dist/render.js +1073 -0
- package/dist/render.js.map +1 -0
- package/dist/scheduler.d.ts +596 -0
- package/dist/scheduler.d.ts.map +1 -0
- package/dist/scheduler.js +1259 -0
- package/dist/scheduler.js.map +1 -0
- package/dist/security.d.ts +501 -0
- package/dist/security.d.ts.map +1 -0
- package/dist/security.js +1170 -0
- package/dist/security.js.map +1 -0
- package/dist/server.d.ts +21 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/{server/node.js → server.js} +16 -2
- package/dist/server.js.map +1 -0
- package/dist/tiers.d.ts +1002 -0
- package/dist/tiers.d.ts.map +1 -0
- package/dist/tiers.js +2165 -0
- package/dist/tiers.js.map +1 -0
- package/dist/virtual.d.ts +641 -0
- package/dist/virtual.d.ts.map +1 -0
- package/dist/virtual.js +1285 -0
- package/dist/virtual.js.map +1 -0
- package/dist/virtualcpu.d.ts +316 -0
- package/dist/virtualcpu.d.ts.map +1 -0
- package/dist/virtualcpu.js +1180 -0
- package/dist/virtualcpu.js.map +1 -0
- package/dist/virtualgpu.d.ts +345 -0
- package/dist/virtualgpu.d.ts.map +1 -0
- package/dist/virtualgpu.js +1000 -0
- package/dist/virtualgpu.js.map +1 -0
- package/dist/virtualization.d.ts +607 -0
- package/dist/virtualization.d.ts.map +1 -0
- package/dist/virtualization.js +1187 -0
- package/dist/virtualization.js.map +1 -0
- package/dist/virtualmemory.d.ts +818 -0
- package/dist/virtualmemory.d.ts.map +1 -0
- package/dist/virtualmemory.js +1796 -0
- package/dist/virtualmemory.js.map +1 -0
- package/dist/webscrape.d.ts +720 -0
- package/dist/webscrape.d.ts.map +1 -0
- package/dist/webscrape.js +2697 -0
- package/dist/webscrape.js.map +1 -0
- package/docker.config +769 -0
- package/docs/CONVERSA.txt +1523 -0
- package/docs/alternatives.md +499 -0
- package/docs/architecture-1.8.19.md +76 -0
- package/docs/architecture-1.8.19.mmd +33 -0
- package/docs/architecture-1.8.19.png +0 -0
- package/docs/architecture.md +355 -0
- package/docs/artifactavailability.md +6 -0
- package/docs/brancharchive-2026-08-18.md +18 -0
- package/docs/browser.md +7 -0
- package/docs/consolidation.md +70 -0
- package/docs/e2ugh-engine.md +528 -0
- package/{dist/examples/localjob.js → docs/example-localjob.ts} +3 -3
- package/{dist/examples/publicapi.js → docs/example-publicapi.ts} +2 -2
- package/docs/hardware.md +342 -0
- package/docs/optimization.md +126 -0
- package/docs/performance.md +499 -0
- package/docs/planning.1.8.18.md +94 -0
- package/docs/planning.1.8.19.md +49 -0
- package/docs/releasenotes-1.8.17.md +6 -0
- package/docs/releasenotes-1.8.18.md +32 -0
- package/docs/releasenotes-1.8.19.md +35 -0
- package/docs/research-1.8.18-isolation.md +43 -0
- package/docs/research-1.8.19-virtual-browser.md +27 -0
- package/docs/saddle.archive.1.8.17.tar.gz.gpg +0 -0
- package/docs/security.md +454 -0
- package/docs/todo-1.8.16.md +56 -1
- package/docs/todo-1.8.18.md +164 -0
- package/docs/todo-1.8.19.md +241 -0
- package/docs/viability.md +777 -0
- package/docs/virtualization.md +335 -0
- package/docs/web-duplicatecleanup.md +9 -0
- package/docs/web-ideas.md +106 -0
- package/docs/workflowimprovements-2026-08-19.md +70 -0
- package/gpumonitor.cpp +1543 -0
- package/gpus.json +2408 -0
- package/index.ts +1478 -0
- package/media.ts +1337 -0
- package/mttg.config +1549 -0
- package/orchestrator.ts +5462 -0
- package/package.json +304 -55
- package/passage.config +1331 -0
- package/performance.ts +1049 -0
- package/processors.json +2217 -0
- package/qemu.config +1062 -0
- package/qemubridge.py +1340 -0
- package/quantum.ts +2393 -0
- package/render.ts +1325 -0
- package/scheduler.ts +1600 -0
- package/security.ts +1449 -0
- package/tiers.ts +2871 -0
- package/tsconfig.json +29 -0
- package/virtualcpu.ts +1273 -0
- package/virtualgpu.ts +1181 -0
- package/virtualhardware.c +1011 -0
- package/virtualhardware.json +739 -0
- package/virtualization.ts +1628 -0
- package/virtualizationcore.cpp +4635 -0
- package/virtualmemory.ts +2303 -0
- package/vm.config.json +1910 -0
- package/{extension → web/extension}/manifest.json +1 -1
- package/web/readme.md +382 -0
- package/web/tsconfig.json +25 -0
- package/dist/adapters/forge.d.ts +0 -17
- package/dist/adapters/forge.d.ts.map +0 -1
- package/dist/adapters/forge.js +0 -19
- package/dist/adapters/forge.js.map +0 -1
- package/dist/adapters/forgejo.d.ts +0 -49
- package/dist/adapters/forgejo.d.ts.map +0 -1
- package/dist/adapters/forgejo.js +0 -8
- package/dist/adapters/forgejo.js.map +0 -1
- package/dist/adapters/github.d.ts +0 -12
- package/dist/adapters/github.d.ts.map +0 -1
- package/dist/adapters/github.js +0 -20
- package/dist/adapters/github.js.map +0 -1
- package/dist/adapters/gitlab.d.ts +0 -17
- package/dist/adapters/gitlab.d.ts.map +0 -1
- package/dist/adapters/gitlab.js +0 -10
- package/dist/adapters/gitlab.js.map +0 -1
- package/dist/adapters/huggingface.d.ts +0 -17
- package/dist/adapters/huggingface.d.ts.map +0 -1
- package/dist/adapters/huggingface.js +0 -6
- package/dist/adapters/huggingface.js.map +0 -1
- package/dist/adapters/socket.d.ts +0 -11
- package/dist/adapters/socket.d.ts.map +0 -1
- package/dist/adapters/socket.js +0 -17
- package/dist/adapters/socket.js.map +0 -1
- package/dist/adapters/transport.d.ts +0 -7
- package/dist/adapters/transport.d.ts.map +0 -1
- package/dist/adapters/transport.js +0 -36
- package/dist/adapters/transport.js.map +0 -1
- package/dist/ai/chunk.d.ts +0 -2
- package/dist/ai/chunk.d.ts.map +0 -1
- package/dist/ai/chunk.js +0 -36
- package/dist/ai/chunk.js.map +0 -1
- package/dist/ai/llmstxt.d.ts +0 -6
- package/dist/ai/llmstxt.d.ts.map +0 -1
- package/dist/ai/llmstxt.js +0 -12
- package/dist/ai/llmstxt.js.map +0 -1
- package/dist/ai/provenance.d.ts +0 -22
- package/dist/ai/provenance.d.ts.map +0 -1
- package/dist/ai/provenance.js +0 -25
- package/dist/ai/provenance.js.map +0 -1
- package/dist/ai/rag.d.ts +0 -26
- package/dist/ai/rag.d.ts.map +0 -1
- package/dist/ai/rag.js +0 -22
- package/dist/ai/rag.js.map +0 -1
- package/dist/ai/tokens.d.ts +0 -15
- package/dist/ai/tokens.d.ts.map +0 -1
- package/dist/ai/tokens.js +0 -9
- package/dist/ai/tokens.js.map +0 -1
- package/dist/api/auth.d.ts +0 -16
- package/dist/api/auth.d.ts.map +0 -1
- package/dist/api/auth.js +0 -19
- package/dist/api/auth.js.map +0 -1
- package/dist/api/contracts.d.ts +0 -28
- package/dist/api/contracts.d.ts.map +0 -1
- package/dist/api/contracts.js +0 -14
- package/dist/api/contracts.js.map +0 -1
- package/dist/api/control.d.ts +0 -10
- package/dist/api/control.d.ts.map +0 -1
- package/dist/api/control.js +0 -35
- package/dist/api/control.js.map +0 -1
- package/dist/api/http.d.ts +0 -7
- package/dist/api/http.d.ts.map +0 -1
- package/dist/api/http.js +0 -12
- package/dist/api/http.js.map +0 -1
- package/dist/api/rate.d.ts +0 -28
- package/dist/api/rate.d.ts.map +0 -1
- package/dist/api/rate.js +0 -36
- package/dist/api/rate.js.map +0 -1
- package/dist/api/security.d.ts +0 -12
- package/dist/api/security.d.ts.map +0 -1
- package/dist/api/security.js +0 -56
- package/dist/api/security.js.map +0 -1
- package/dist/api/service.d.ts +0 -5
- package/dist/api/service.d.ts.map +0 -1
- package/dist/api/service.js +0 -70
- package/dist/api/service.js.map +0 -1
- package/dist/apps/registry.d.ts +0 -33
- package/dist/apps/registry.d.ts.map +0 -1
- package/dist/apps/registry.js +0 -24
- package/dist/apps/registry.js.map +0 -1
- package/dist/binary/archive.d.ts +0 -27
- package/dist/binary/archive.d.ts.map +0 -1
- package/dist/binary/archive.js +0 -46
- package/dist/binary/archive.js.map +0 -1
- package/dist/binary/build.d.ts +0 -29
- package/dist/binary/build.d.ts.map +0 -1
- package/dist/binary/build.js +0 -17
- package/dist/binary/build.js.map +0 -1
- package/dist/binary/transform.d.ts +0 -70
- package/dist/binary/transform.d.ts.map +0 -1
- package/dist/binary/transform.js +0 -105
- package/dist/binary/transform.js.map +0 -1
- package/dist/bot/adapter.d.ts +0 -5
- package/dist/bot/adapter.d.ts.map +0 -1
- package/dist/bot/adapter.js +0 -11
- package/dist/bot/adapter.js.map +0 -1
- package/dist/bot/bot.d.ts +0 -28
- package/dist/bot/bot.d.ts.map +0 -1
- package/dist/bot/bot.js +0 -52
- package/dist/bot/bot.js.map +0 -1
- package/dist/bot/commands.d.ts +0 -8
- package/dist/bot/commands.d.ts.map +0 -1
- package/dist/bot/commands.js +0 -19
- package/dist/bot/commands.js.map +0 -1
- package/dist/bot/permissions.d.ts +0 -13
- package/dist/bot/permissions.d.ts.map +0 -1
- package/dist/bot/permissions.js +0 -16
- package/dist/bot/permissions.js.map +0 -1
- package/dist/browser/actions.d.ts +0 -33
- package/dist/browser/actions.d.ts.map +0 -1
- package/dist/browser/actions.js +0 -44
- package/dist/browser/actions.js.map +0 -1
- package/dist/browser/agent.d.ts +0 -21
- package/dist/browser/agent.d.ts.map +0 -1
- package/dist/browser/agent.js +0 -13
- package/dist/browser/agent.js.map +0 -1
- package/dist/browser/context.d.ts +0 -43
- package/dist/browser/context.d.ts.map +0 -1
- package/dist/browser/context.js +0 -54
- package/dist/browser/context.js.map +0 -1
- package/dist/browser/fingerprint.d.ts +0 -4
- package/dist/browser/fingerprint.d.ts.map +0 -1
- package/dist/browser/fingerprint.js +0 -12
- package/dist/browser/fingerprint.js.map +0 -1
- package/dist/browser/index.d.ts +0 -11
- package/dist/browser/index.d.ts.map +0 -1
- package/dist/browser/index.js +0 -11
- package/dist/browser/index.js.map +0 -1
- package/dist/browser/playwright.d.ts +0 -11
- package/dist/browser/playwright.d.ts.map +0 -1
- package/dist/browser/playwright.js +0 -24
- package/dist/browser/playwright.js.map +0 -1
- package/dist/browser/recorder.d.ts +0 -21
- package/dist/browser/recorder.d.ts.map +0 -1
- package/dist/browser/recorder.js +0 -58
- package/dist/browser/recorder.js.map +0 -1
- package/dist/browser/session.d.ts +0 -14
- package/dist/browser/session.d.ts.map +0 -1
- package/dist/browser/session.js +0 -21
- package/dist/browser/session.js.map +0 -1
- package/dist/browser/snapshot.d.ts +0 -69
- package/dist/browser/snapshot.d.ts.map +0 -1
- package/dist/browser/snapshot.js +0 -133
- package/dist/browser/snapshot.js.map +0 -1
- package/dist/captcha/contract.d.ts +0 -35
- package/dist/captcha/contract.d.ts.map +0 -1
- package/dist/captcha/contract.js +0 -17
- package/dist/captcha/contract.js.map +0 -1
- package/dist/captcha/evidence.d.ts +0 -10
- package/dist/captcha/evidence.d.ts.map +0 -1
- package/dist/captcha/evidence.js +0 -9
- package/dist/captcha/evidence.js.map +0 -1
- package/dist/captcha/guard.d.ts +0 -23
- package/dist/captcha/guard.d.ts.map +0 -1
- package/dist/captcha/guard.js +0 -12
- package/dist/captcha/guard.js.map +0 -1
- package/dist/cli/main.d.ts +0 -4
- package/dist/cli/main.d.ts.map +0 -1
- package/dist/cli/main.js +0 -46
- package/dist/cli/main.js.map +0 -1
- package/dist/core/errors.d.ts +0 -84
- package/dist/core/errors.d.ts.map +0 -1
- package/dist/core/errors.js +0 -54
- package/dist/core/errors.js.map +0 -1
- package/dist/core/events.d.ts +0 -9
- package/dist/core/events.d.ts.map +0 -1
- package/dist/core/events.js +0 -21
- package/dist/core/events.js.map +0 -1
- package/dist/core/hash.d.ts +0 -10
- package/dist/core/hash.d.ts.map +0 -1
- package/dist/core/hash.js +0 -82
- package/dist/core/hash.js.map +0 -1
- package/dist/core/ids.d.ts +0 -10
- package/dist/core/ids.d.ts.map +0 -1
- package/dist/core/ids.js +0 -15
- package/dist/core/ids.js.map +0 -1
- package/dist/delivery/manifest.d.ts +0 -35
- package/dist/delivery/manifest.d.ts.map +0 -1
- package/dist/delivery/manifest.js +0 -68
- package/dist/delivery/manifest.js.map +0 -1
- package/dist/deploy/index.d.ts +0 -6
- package/dist/deploy/index.d.ts.map +0 -1
- package/dist/deploy/index.js +0 -6
- package/dist/deploy/index.js.map +0 -1
- package/dist/dispatch/resumable.d.ts +0 -102
- package/dist/dispatch/resumable.d.ts.map +0 -1
- package/dist/dispatch/resumable.js +0 -64
- package/dist/dispatch/resumable.js.map +0 -1
- package/dist/dispatch/workflow.d.ts +0 -6
- package/dist/dispatch/workflow.d.ts.map +0 -1
- package/dist/dispatch/workflow.js +0 -37
- package/dist/dispatch/workflow.js.map +0 -1
- package/dist/domain/artifacts.d.ts +0 -12
- package/dist/domain/artifacts.d.ts.map +0 -1
- package/dist/domain/artifacts.js +0 -14
- package/dist/domain/artifacts.js.map +0 -1
- package/dist/domain/jobs.d.ts +0 -12
- package/dist/domain/jobs.d.ts.map +0 -1
- package/dist/domain/jobs.js +0 -20
- package/dist/domain/jobs.js.map +0 -1
- package/dist/domain/providers.d.ts +0 -10
- package/dist/domain/providers.d.ts.map +0 -1
- package/dist/domain/providers.js +0 -8
- package/dist/domain/providers.js.map +0 -1
- package/dist/domain/runtime.d.ts +0 -14
- package/dist/domain/runtime.d.ts.map +0 -1
- package/dist/domain/runtime.js +0 -10
- package/dist/domain/runtime.js.map +0 -1
- package/dist/domain/sessions.d.ts +0 -12
- package/dist/domain/sessions.d.ts.map +0 -1
- package/dist/domain/sessions.js +0 -57
- package/dist/domain/sessions.js.map +0 -1
- package/dist/examples/localjob.d.ts +0 -2
- package/dist/examples/localjob.d.ts.map +0 -1
- package/dist/examples/localjob.js.map +0 -1
- package/dist/examples/publicapi.d.ts +0 -2
- package/dist/examples/publicapi.d.ts.map +0 -1
- package/dist/examples/publicapi.js.map +0 -1
- package/dist/extension/build.d.ts +0 -9
- package/dist/extension/build.d.ts.map +0 -1
- package/dist/extension/build.js +0 -85
- package/dist/extension/build.js.map +0 -1
- package/dist/extension/content.d.ts +0 -6
- package/dist/extension/content.d.ts.map +0 -1
- package/dist/extension/content.js +0 -135
- package/dist/extension/content.js.map +0 -1
- package/dist/extension/index.d.ts +0 -7
- package/dist/extension/index.d.ts.map +0 -1
- package/dist/extension/index.js +0 -7
- package/dist/extension/index.js.map +0 -1
- package/dist/extension/pagebridge.d.ts +0 -6
- package/dist/extension/pagebridge.d.ts.map +0 -1
- package/dist/extension/pagebridge.js +0 -42
- package/dist/extension/pagebridge.js.map +0 -1
- package/dist/extension/permissions.d.ts +0 -26
- package/dist/extension/permissions.d.ts.map +0 -1
- package/dist/extension/permissions.js +0 -28
- package/dist/extension/permissions.js.map +0 -1
- package/dist/extension/popup.d.ts +0 -5
- package/dist/extension/popup.d.ts.map +0 -1
- package/dist/extension/popup.js +0 -26
- package/dist/extension/popup.js.map +0 -1
- package/dist/extension/protocol.d.ts +0 -58
- package/dist/extension/protocol.d.ts.map +0 -1
- package/dist/extension/protocol.js +0 -101
- package/dist/extension/protocol.js.map +0 -1
- package/dist/extension/serviceworker.d.ts +0 -25
- package/dist/extension/serviceworker.d.ts.map +0 -1
- package/dist/extension/serviceworker.js +0 -102
- package/dist/extension/serviceworker.js.map +0 -1
- package/dist/extension/worker.d.ts +0 -28
- package/dist/extension/worker.d.ts.map +0 -1
- package/dist/extension/worker.js +0 -22
- package/dist/extension/worker.js.map +0 -1
- package/dist/format/check.d.ts +0 -8
- package/dist/format/check.d.ts.map +0 -1
- package/dist/format/check.js +0 -38
- package/dist/format/check.js.map +0 -1
- package/dist/library/public.d.ts.map +0 -1
- package/dist/library/public.js.map +0 -1
- package/dist/mcp/browser.d.ts +0 -9
- package/dist/mcp/browser.d.ts.map +0 -1
- package/dist/mcp/browser.js +0 -13
- package/dist/mcp/browser.js.map +0 -1
- package/dist/mcp/server.d.ts +0 -35
- package/dist/mcp/server.d.ts.map +0 -1
- package/dist/mcp/server.js +0 -40
- package/dist/mcp/server.js.map +0 -1
- package/dist/mcp/transport.d.ts +0 -7
- package/dist/mcp/transport.d.ts.map +0 -1
- package/dist/mcp/transport.js +0 -17
- package/dist/mcp/transport.js.map +0 -1
- package/dist/memory/bridge.d.ts +0 -14
- package/dist/memory/bridge.d.ts.map +0 -1
- package/dist/memory/bridge.js +0 -16
- package/dist/memory/bridge.js.map +0 -1
- package/dist/memory/engine.d.ts +0 -38
- package/dist/memory/engine.d.ts.map +0 -1
- package/dist/memory/engine.js +0 -109
- package/dist/memory/engine.js.map +0 -1
- package/dist/memory/modes.d.ts +0 -43
- package/dist/memory/modes.d.ts.map +0 -1
- package/dist/memory/modes.js +0 -66
- package/dist/memory/modes.js.map +0 -1
- package/dist/memory/objects.d.ts +0 -21
- package/dist/memory/objects.d.ts.map +0 -1
- package/dist/memory/objects.js +0 -20
- package/dist/memory/objects.js.map +0 -1
- package/dist/memory/planner.d.ts +0 -66
- package/dist/memory/planner.d.ts.map +0 -1
- package/dist/memory/planner.js +0 -108
- package/dist/memory/planner.js.map +0 -1
- package/dist/memory/targets.d.ts +0 -78
- package/dist/memory/targets.d.ts.map +0 -1
- package/dist/memory/targets.js +0 -29
- package/dist/memory/targets.js.map +0 -1
- package/dist/memory/transforms.d.ts +0 -19
- package/dist/memory/transforms.d.ts.map +0 -1
- package/dist/memory/transforms.js +0 -14
- package/dist/memory/transforms.js.map +0 -1
- package/dist/modes/matrix.d.ts +0 -23
- package/dist/modes/matrix.d.ts.map +0 -1
- package/dist/modes/matrix.js +0 -18
- package/dist/modes/matrix.js.map +0 -1
- package/dist/modes/modes.d.ts +0 -33
- package/dist/modes/modes.d.ts.map +0 -1
- package/dist/modes/modes.js +0 -15
- package/dist/modes/modes.js.map +0 -1
- package/dist/modes/resolve.d.ts +0 -96
- package/dist/modes/resolve.d.ts.map +0 -1
- package/dist/modes/resolve.js +0 -48
- package/dist/modes/resolve.js.map +0 -1
- package/dist/observability/metrics.d.ts +0 -14
- package/dist/observability/metrics.d.ts.map +0 -1
- package/dist/observability/metrics.js +0 -18
- package/dist/observability/metrics.js.map +0 -1
- package/dist/packager/manifest.d.ts +0 -66
- package/dist/packager/manifest.d.ts.map +0 -1
- package/dist/packager/manifest.js +0 -94
- package/dist/packager/manifest.js.map +0 -1
- package/dist/packager/publish.d.ts +0 -51
- package/dist/packager/publish.d.ts.map +0 -1
- package/dist/packager/publish.js +0 -18
- package/dist/packager/publish.js.map +0 -1
- package/dist/packager/targetcli.d.ts +0 -7
- package/dist/packager/targetcli.d.ts.map +0 -1
- package/dist/packager/targetcli.js +0 -22
- package/dist/packager/targetcli.js.map +0 -1
- package/dist/persistence/adapter.d.ts +0 -5
- package/dist/persistence/adapter.d.ts.map +0 -1
- package/dist/persistence/adapter.js +0 -11
- package/dist/persistence/adapter.js.map +0 -1
- package/dist/persistence/drizzle.d.ts +0 -2
- package/dist/persistence/drizzle.d.ts.map +0 -1
- package/dist/persistence/drizzle.js +0 -12
- package/dist/persistence/drizzle.js.map +0 -1
- package/dist/persistence/memory.d.ts +0 -2
- package/dist/persistence/memory.d.ts.map +0 -1
- package/dist/persistence/memory.js +0 -27
- package/dist/persistence/memory.js.map +0 -1
- package/dist/persistence/migrations.d.ts +0 -19
- package/dist/persistence/migrations.d.ts.map +0 -1
- package/dist/persistence/migrations.js +0 -13
- package/dist/persistence/migrations.js.map +0 -1
- package/dist/persistence/prisma.d.ts +0 -2
- package/dist/persistence/prisma.d.ts.map +0 -1
- package/dist/persistence/prisma.js +0 -25
- package/dist/persistence/prisma.js.map +0 -1
- package/dist/persistence/schema.d.ts +0 -63
- package/dist/persistence/schema.d.ts.map +0 -1
- package/dist/persistence/schema.js +0 -28
- package/dist/persistence/schema.js.map +0 -1
- package/dist/persistence/sql.d.ts +0 -3
- package/dist/persistence/sql.d.ts.map +0 -1
- package/dist/persistence/sql.js +0 -37
- package/dist/persistence/sql.js.map +0 -1
- package/dist/protocol/blocks.d.ts +0 -10
- package/dist/protocol/blocks.d.ts.map +0 -1
- package/dist/protocol/blocks.js +0 -26
- package/dist/protocol/blocks.js.map +0 -1
- package/dist/protocol/json.d.ts +0 -6
- package/dist/protocol/json.d.ts.map +0 -1
- package/dist/protocol/json.js +0 -6
- package/dist/protocol/json.js.map +0 -1
- package/dist/protocol/ndjson.d.ts +0 -3
- package/dist/protocol/ndjson.d.ts.map +0 -1
- package/dist/protocol/ndjson.js +0 -20
- package/dist/protocol/ndjson.js.map +0 -1
- package/dist/protocol/sse.d.ts +0 -7
- package/dist/protocol/sse.d.ts.map +0 -1
- package/dist/protocol/sse.js +0 -25
- package/dist/protocol/sse.js.map +0 -1
- package/dist/proxy/pool.d.ts +0 -9
- package/dist/proxy/pool.d.ts.map +0 -1
- package/dist/proxy/pool.js +0 -27
- package/dist/proxy/pool.js.map +0 -1
- package/dist/queue/idempotency.d.ts +0 -10
- package/dist/queue/idempotency.d.ts.map +0 -1
- package/dist/queue/idempotency.js +0 -13
- package/dist/queue/idempotency.js.map +0 -1
- package/dist/queue/persistent.d.ts +0 -14
- package/dist/queue/persistent.d.ts.map +0 -1
- package/dist/queue/persistent.js +0 -66
- package/dist/queue/persistent.js.map +0 -1
- package/dist/queue/queue.d.ts +0 -7
- package/dist/queue/queue.d.ts.map +0 -1
- package/dist/queue/queue.js +0 -55
- package/dist/queue/queue.js.map +0 -1
- package/dist/queue/saga.d.ts +0 -5
- package/dist/queue/saga.d.ts.map +0 -1
- package/dist/queue/saga.js +0 -20
- package/dist/queue/saga.js.map +0 -1
- package/dist/release/assets.d.ts +0 -144
- package/dist/release/assets.d.ts.map +0 -1
- package/dist/release/assets.js +0 -157
- package/dist/release/assets.js.map +0 -1
- package/dist/release/evidence.d.ts +0 -92
- package/dist/release/evidence.d.ts.map +0 -1
- package/dist/release/evidence.js +0 -148
- package/dist/release/evidence.js.map +0 -1
- package/dist/release/verify.d.ts +0 -12
- package/dist/release/verify.d.ts.map +0 -1
- package/dist/release/verify.js +0 -112
- package/dist/release/verify.js.map +0 -1
- package/dist/runners/chain.d.ts +0 -125
- package/dist/runners/chain.d.ts.map +0 -1
- package/dist/runners/chain.js +0 -95
- package/dist/runners/chain.js.map +0 -1
- package/dist/runners/health.d.ts +0 -36
- package/dist/runners/health.d.ts.map +0 -1
- package/dist/runners/health.js +0 -26
- package/dist/runners/health.js.map +0 -1
- package/dist/runners/heartbeat.d.ts +0 -23
- package/dist/runners/heartbeat.d.ts.map +0 -1
- package/dist/runners/heartbeat.js +0 -29
- package/dist/runners/heartbeat.js.map +0 -1
- package/dist/runners/inprocess.d.ts +0 -17
- package/dist/runners/inprocess.d.ts.map +0 -1
- package/dist/runners/inprocess.js +0 -20
- package/dist/runners/inprocess.js.map +0 -1
- package/dist/runners/scheduler.d.ts +0 -5
- package/dist/runners/scheduler.d.ts.map +0 -1
- package/dist/runners/scheduler.js +0 -19
- package/dist/runners/scheduler.js.map +0 -1
- package/dist/runtime/abort.d.ts +0 -8
- package/dist/runtime/abort.d.ts.map +0 -1
- package/dist/runtime/abort.js +0 -13
- package/dist/runtime/abort.js.map +0 -1
- package/dist/runtime/compatibility.d.ts +0 -37
- package/dist/runtime/compatibility.d.ts.map +0 -1
- package/dist/runtime/compatibility.js +0 -10
- package/dist/runtime/compatibility.js.map +0 -1
- package/dist/runtime/detect.d.ts +0 -13
- package/dist/runtime/detect.d.ts.map +0 -1
- package/dist/runtime/detect.js +0 -18
- package/dist/runtime/detect.js.map +0 -1
- package/dist/runtime/engine.d.ts +0 -20
- package/dist/runtime/engine.d.ts.map +0 -1
- package/dist/runtime/engine.js +0 -61
- package/dist/runtime/engine.js.map +0 -1
- package/dist/runtime/retry.d.ts +0 -19
- package/dist/runtime/retry.d.ts.map +0 -1
- package/dist/runtime/retry.js +0 -54
- package/dist/runtime/retry.js.map +0 -1
- package/dist/runtime/worker.d.ts +0 -10
- package/dist/runtime/worker.d.ts.map +0 -1
- package/dist/runtime/worker.js +0 -25
- package/dist/runtime/worker.js.map +0 -1
- package/dist/scrape/cache.d.ts +0 -45
- package/dist/scrape/cache.d.ts.map +0 -1
- package/dist/scrape/cache.js +0 -45
- package/dist/scrape/cache.js.map +0 -1
- package/dist/scrape/crawl.d.ts +0 -47
- package/dist/scrape/crawl.d.ts.map +0 -1
- package/dist/scrape/crawl.js +0 -114
- package/dist/scrape/crawl.js.map +0 -1
- package/dist/scrape/extract.d.ts +0 -63
- package/dist/scrape/extract.d.ts.map +0 -1
- package/dist/scrape/extract.js +0 -47
- package/dist/scrape/extract.js.map +0 -1
- package/dist/scrape/normalize.d.ts +0 -52
- package/dist/scrape/normalize.d.ts.map +0 -1
- package/dist/scrape/normalize.js +0 -102
- package/dist/scrape/normalize.js.map +0 -1
- package/dist/scrape/robots.d.ts +0 -37
- package/dist/scrape/robots.d.ts.map +0 -1
- package/dist/scrape/robots.js +0 -71
- package/dist/scrape/robots.js.map +0 -1
- package/dist/scrape/schema.d.ts +0 -23
- package/dist/scrape/schema.d.ts.map +0 -1
- package/dist/scrape/schema.js +0 -92
- package/dist/scrape/schema.js.map +0 -1
- package/dist/scrape/scraper.d.ts +0 -6
- package/dist/scrape/scraper.d.ts.map +0 -1
- package/dist/scrape/scraper.js +0 -46
- package/dist/scrape/scraper.js.map +0 -1
- package/dist/scrape/semantic.d.ts +0 -25
- package/dist/scrape/semantic.d.ts.map +0 -1
- package/dist/scrape/semantic.js +0 -27
- package/dist/scrape/semantic.js.map +0 -1
- package/dist/server/node.d.ts +0 -7
- package/dist/server/node.d.ts.map +0 -1
- package/dist/server/node.js.map +0 -1
- package/dist/sessions/file.d.ts +0 -25
- package/dist/sessions/file.d.ts.map +0 -1
- package/dist/sessions/file.js +0 -13
- package/dist/sessions/file.js.map +0 -1
- package/dist/sessions/replay.d.ts +0 -9
- package/dist/sessions/replay.d.ts.map +0 -1
- package/dist/sessions/replay.js +0 -70
- package/dist/sessions/replay.js.map +0 -1
- package/dist/sessions/store.d.ts +0 -25
- package/dist/sessions/store.d.ts.map +0 -1
- package/dist/sessions/store.js +0 -13
- package/dist/sessions/store.js.map +0 -1
- package/dist/storage/adapter.d.ts +0 -5
- package/dist/storage/adapter.d.ts.map +0 -1
- package/dist/storage/adapter.js +0 -11
- package/dist/storage/adapter.js.map +0 -1
- package/dist/storage/cache.d.ts +0 -23
- package/dist/storage/cache.d.ts.map +0 -1
- package/dist/storage/cache.js +0 -79
- package/dist/storage/cache.js.map +0 -1
- package/dist/storage/checksum.d.ts +0 -3
- package/dist/storage/checksum.d.ts.map +0 -1
- package/dist/storage/checksum.js +0 -19
- package/dist/storage/checksum.js.map +0 -1
- package/dist/storage/chunked.d.ts +0 -21
- package/dist/storage/chunked.d.ts.map +0 -1
- package/dist/storage/chunked.js +0 -67
- package/dist/storage/chunked.js.map +0 -1
- package/dist/storage/content.d.ts +0 -24
- package/dist/storage/content.d.ts.map +0 -1
- package/dist/storage/content.js +0 -44
- package/dist/storage/content.js.map +0 -1
- package/dist/storage/filehosting.d.ts +0 -2
- package/dist/storage/filehosting.d.ts.map +0 -1
- package/dist/storage/filehosting.js +0 -24
- package/dist/storage/filehosting.js.map +0 -1
- package/dist/storage/githubcontents.d.ts +0 -2
- package/dist/storage/githubcontents.d.ts.map +0 -1
- package/dist/storage/githubcontents.js +0 -29
- package/dist/storage/githubcontents.js.map +0 -1
- package/dist/storage/index.d.ts +0 -12
- package/dist/storage/index.d.ts.map +0 -1
- package/dist/storage/index.js +0 -12
- package/dist/storage/index.js.map +0 -1
- package/dist/storage/local.d.ts +0 -2
- package/dist/storage/local.d.ts.map +0 -1
- package/dist/storage/local.js +0 -72
- package/dist/storage/local.js.map +0 -1
- package/dist/storage/memory.d.ts +0 -6
- package/dist/storage/memory.d.ts.map +0 -1
- package/dist/storage/memory.js +0 -36
- package/dist/storage/memory.js.map +0 -1
- package/dist/storage/pool.d.ts +0 -95
- package/dist/storage/pool.d.ts.map +0 -1
- package/dist/storage/pool.js +0 -202
- package/dist/storage/pool.js.map +0 -1
- package/dist/storage/s3compatible.d.ts +0 -3
- package/dist/storage/s3compatible.d.ts.map +0 -1
- package/dist/storage/s3compatible.js +0 -70
- package/dist/storage/s3compatible.js.map +0 -1
- package/dist/storage/sync.d.ts +0 -47
- package/dist/storage/sync.d.ts.map +0 -1
- package/dist/storage/sync.js +0 -75
- package/dist/storage/sync.js.map +0 -1
- package/dist/surfaces/adapters.d.ts +0 -97
- package/dist/surfaces/adapters.d.ts.map +0 -1
- package/dist/surfaces/adapters.js +0 -50
- package/dist/surfaces/adapters.js.map +0 -1
- package/dist/surfaces/controls.d.ts +0 -18
- package/dist/surfaces/controls.d.ts.map +0 -1
- package/dist/surfaces/controls.js +0 -45
- package/dist/surfaces/controls.js.map +0 -1
- package/dist/surfaces/manifest.d.ts +0 -68
- package/dist/surfaces/manifest.d.ts.map +0 -1
- package/dist/surfaces/manifest.js +0 -42
- package/dist/surfaces/manifest.js.map +0 -1
- package/dist/surfaces/n8n.d.ts +0 -25
- package/dist/surfaces/n8n.d.ts.map +0 -1
- package/dist/surfaces/n8n.js +0 -31
- package/dist/surfaces/n8n.js.map +0 -1
- package/dist/surfaces/operations.d.ts +0 -32
- package/dist/surfaces/operations.d.ts.map +0 -1
- package/dist/surfaces/operations.js +0 -53
- package/dist/surfaces/operations.js.map +0 -1
- package/dist/surfaces/requirements.d.ts +0 -29
- package/dist/surfaces/requirements.d.ts.map +0 -1
- package/dist/surfaces/requirements.js +0 -50
- package/dist/surfaces/requirements.js.map +0 -1
- package/dist/surfaces/targets.d.ts +0 -196
- package/dist/surfaces/targets.d.ts.map +0 -1
- package/dist/surfaces/targets.js +0 -27
- package/dist/surfaces/targets.js.map +0 -1
- package/dist/webhook/delivery.d.ts +0 -18
- package/dist/webhook/delivery.d.ts.map +0 -1
- package/dist/webhook/delivery.js +0 -36
- package/dist/webhook/delivery.js.map +0 -1
- package/dist/webhook/receiver.d.ts +0 -26
- package/dist/webhook/receiver.d.ts.map +0 -1
- package/dist/webhook/receiver.js +0 -24
- package/dist/webhook/receiver.js.map +0 -1
- package/dist/webhook/signature.d.ts +0 -3
- package/dist/webhook/signature.d.ts.map +0 -1
- package/dist/webhook/signature.js +0 -7
- package/dist/webhook/signature.js.map +0 -1
- package/dist/workflow/manifest.d.ts +0 -22
- package/dist/workflow/manifest.d.ts.map +0 -1
- package/dist/workflow/manifest.js +0 -21
- package/dist/workflow/manifest.js.map +0 -1
- package/dist/workflow/registry.d.ts +0 -7
- package/dist/workflow/registry.d.ts.map +0 -1
- package/dist/workflow/registry.js +0 -18
- package/dist/workflow/registry.js.map +0 -1
- package/dist/workflow/templates.d.ts +0 -6
- package/dist/workflow/templates.d.ts.map +0 -1
- package/dist/workflow/templates.js +0 -18
- package/dist/workflow/templates.js.map +0 -1
- package/dist/workflow/triggers.d.ts +0 -64
- package/dist/workflow/triggers.d.ts.map +0 -1
- package/dist/workflow/triggers.js +0 -99
- package/dist/workflow/triggers.js.map +0 -1
- package/docs/logs/.gitkeep +0 -0
- package/docs/plans/00.index.md +0 -50
- package/docs/plans/01.architecture.md +0 -86
- package/docs/plans/02.research.computer.use.md +0 -58
- package/docs/plans/03.research.captcha.bypass.md +0 -68
- package/docs/plans/04.research.sandbox.ai.md +0 -52
- package/docs/plans/05.capture.platform.md +0 -57
- package/docs/plans/06.dependencies.md +0 -97
- package/docs/plans/07.captcha.test.page.md +0 -41
- package/docs/plans/08.production.infra.md +0 -70
- package/docs/plans/09.database.schema.md +0 -121
- package/docs/plans/10.cloudinary.storage.md +0 -57
- package/docs/plans/11.movement.logs.json.md +0 -72
- package/docs/plans/12.research.atlas.agent.browser.md +0 -79
- package/docs/plans/13.research.anti.detection.md +0 -898
- package/docs/plans/14.research.proxy.md +0 -1495
- package/docs/plans/15.research.retry.rate.limit.md +0 -1958
- package/docs/plans/16.research.crawling.md +0 -1417
- package/docs/plans/17.research.caching.md +0 -1610
- package/docs/plans/18.research.content.extraction.md +0 -1952
- package/docs/plans/19.research.errors.events.md +0 -1523
- package/docs/plans/20.research.zod.validation.md +0 -1350
- package/docs/plans/21.research.batch.concurrency.md +0 -1888
- package/docs/plans/22.research.universal.runtime.md +0 -944
- package/docs/plans/23.research.ai.integration.md +0 -1465
- package/docs/plans/24.research.memory.persistence.md +0 -1979
- package/docs/plans/25.research.server.api.md +0 -342
- package/docs/plans/26.research.compilation.md +0 -249
- package/docs/plans/27.research.html.parsing.md +0 -251
- package/docs/plans/28.action.plan.md +0 -50
- package/docs/plans/29.api.reference.md +0 -174
- package/docs/plans/30.architecture.plan.md +0 -94
- package/docs/plans/31.auditoria.dados.md +0 -163
- package/docs/plans/32.bots.automacao.computacional.md +0 -214
- package/docs/plans/33.bots.codigo.revisao.md +0 -220
- package/docs/plans/34.bots.seguranca.cicd.md +0 -366
- package/docs/plans/35.comparativo.concorrencia.md +0 -464
- package/docs/plans/36.computational.memory.md +0 -340
- package/docs/plans/37.deploystrategy.md +0 -394
- package/docs/plans/38.flow.md +0 -155
- package/docs/plans/39.multi.platform.bot.md +0 -252
- package/docs/plans/40.npm.publish.md +0 -250
- package/docs/plans/41.o.que.falta.md +0 -407
- package/docs/plans/42.pesquisa.concorrencia.md +0 -721
- package/docs/plans/43.plan.universal.architecture.md +0 -496
- package/docs/plans/44.reference.md +0 -100
- package/docs/plans/45.robotarchitecture.md +0 -237
- package/docs/plans/46.scdnintegration.md +0 -284
- package/docs/plans/47.multiforge.readme.md +0 -129
- package/docs/plans/48.theory.v4.repo.os.md +0 -152
- package/docs/plans/49.third.party.infra.md +0 -12
- package/docs/plans/50.file.as.compute.md +0 -39
- package/docs/plans/51.architecture.virtual.processor.md +0 -80
- package/docs/plans/52.manifesto.v8.md +0 -11
- package/docs/plans/58.cdn.list.md +0 -23
- package/docs/plans/59.sql.frameworks.md +0 -33
- package/docs/plans/60.sql.thirdparty.md +0 -26
- package/docs/plans/61.objective.multiforge.md +0 -63
- package/docs/plans/62.huggingface.upload.md +0 -26
- package/docs/plans/63.kaggle.upload.md +0 -24
- package/docs/plans/64.npm.storage.md +0 -30
- package/docs/plans/65.rclone.terabox.md +0 -32
- package/docs/plans/66.buckets.and.models.todo.md +0 -14
- package/docs/plans/67.database.todo.md +0 -13
- package/docs/plans/68.deploy.packages.todo.md +0 -12
- package/docs/plans/69.report.human.operator.md +0 -133
- package/docs/plans/70.report.brain2qwerty.ems.md +0 -135
- package/docs/plans/71.report.hd.infinito.vram.md +0 -155
- package/docs/plans/72.plan.hd.infinito.node.md +0 -146
- package/docs/plans/73.plan.scifi.repos.md +0 -125
- package/docs/plans/74.000.manifesto.v8.flat.2..md +0 -11
- package/docs/plans/README.md +0 -489
- package/docs/plans/aggregate_platforms.mjs +0 -146
- package/docs/plans/examplesession.json +0 -36
- package/docs/plans/missing-facts.md +0 -192
- package/docs/plans/models.md +0 -64
- package/docs/plans/organize.cjs +0 -270
- package/docs/plans/platforms.md +0 -2887
- package/docs/plans/sites.md +0 -31322
- package/docs/sources/farm.py +0 -117
- package/docs/sources/html/saddle1.html +0 -132
- package/docs/sources/html/saddle2.html +0 -157
- package/docs/sources/html/saddle3.html +0 -119
- package/docs/sources/html/saddle4.html +0 -144
- package/docs/sources/html/saddle5.html +0 -72
- package/docs/sources/html/saddle6.html +0 -171
- package/docs/sources/html/saddle7.html +0 -236
- package/docs/sources/saddle.ts +0 -74
- package/docs/sources/schema.prisma +0 -88
- package/docs/sources/script.sh +0 -64
- package/docs/sources/workflows.yml +0 -458
- package/docs/talks1/_body.txt +0 -14
- package/docs/talks1/_index.md +0 -15
- package/docs/talks1/_screenshot.png +0 -0
- package/docs/talks1/assistant-01.md +0 -5
- package/docs/talks1/assistant-02.md +0 -5
- package/docs/talks1/assistant-03.md +0 -531
- package/docs/talks1/assistant-04.md +0 -26
- package/docs/talks1/assistant-05.md +0 -774
- package/docs/talks1/assistant-06.md +0 -1718
- package/docs/talks1/scrape-share.cjs +0 -185
- package/docs/talks1/scrape-share.ts +0 -183
- package/docs/talks1/user-01.md +0 -3
- package/docs/talks1/user-02.md +0 -3
- package/docs/talks1/user-03.md +0 -88
- package/docs/talks1/user-04.md +0 -3
- package/docs/talks1/user-05.md +0 -3
- package/docs/talks1/user-06.md +0 -88
- package/docs/talks1/user-07.md +0 -88
- package/docs/talks2/_body.txt +0 -14
- package/docs/talks2/_index.md +0 -16
- package/docs/talks2/_screenshot.png +0 -0
- package/docs/talks2/assistant-01.md +0 -5
- package/docs/talks2/assistant-02.md +0 -5
- package/docs/talks2/assistant-03.md +0 -424
- package/docs/talks2/assistant-04.md +0 -598
- package/docs/talks2/assistant-05.md +0 -1280
- package/docs/talks2/assistant-06.md +0 -1227
- package/docs/talks2/assistant-07.md +0 -1252
- package/docs/talks2/user-01.md +0 -3
- package/docs/talks2/user-02.md +0 -3
- package/docs/talks2/user-03.md +0 -88
- package/docs/talks2/user-04.md +0 -88
- package/docs/talks2/user-05.md +0 -88
- package/docs/talks2/user-06.md +0 -88
- package/docs/talks2/user-07.md +0 -3
- package/docs/talks3/_body.txt +0 -467
- package/docs/talks3/_index.md +0 -10
- package/docs/talks3/_screenshot.png +0 -0
- package/docs/talks3/assistant-01.md +0 -417
- package/docs/talks3/assistant-02.md +0 -417
- package/docs/talks3/assistant-03.md +0 -29
- package/docs/talks3/assistant-04.md +0 -727
- package/docs/talks3/user-01.md +0 -88
- package/docs/talks3/user-02.md +0 -88
- package/docs/talks3/user-03.md +0 -3
- package/docs/talks3/user-04.md +0 -3
- package/docs/talks4/_body.txt +0 -14
- package/docs/talks4/_index.md +0 -12
- package/docs/talks4/_screenshot.png +0 -0
- package/docs/talks4/assistant-01.md +0 -5
- package/docs/talks4/assistant-02.md +0 -5
- package/docs/talks4/assistant-03.md +0 -35
- package/docs/talks4/assistant-04.md +0 -512
- package/docs/talks4/assistant-05.md +0 -599
- package/docs/talks4/user-01.md +0 -3
- package/docs/talks4/user-02.md +0 -3
- package/docs/talks4/user-03.md +0 -88
- package/docs/talks4/user-04.md +0 -88
- package/docs/talks4/user-05.md +0 -7
- package/docs/talks5/_body.txt +0 -14
- package/docs/talks5/_index.md +0 -13
- package/docs/talks5/_screenshot.png +0 -0
- package/docs/talks5/assistant-01.md +0 -5
- package/docs/talks5/assistant-02.md +0 -5
- package/docs/talks5/assistant-03.md +0 -690
- package/docs/talks5/assistant-04.md +0 -758
- package/docs/talks5/assistant-05.md +0 -974
- package/docs/talks5/user-01.md +0 -3
- package/docs/talks5/user-02.md +0 -3
- package/docs/talks5/user-03.md +0 -105
- package/docs/talks5/user-04.md +0 -105
- package/docs/talks5/user-05.md +0 -63
- package/docs/talks5/user-06.md +0 -105
- package/docs/talks6/_body.txt +0 -14
- package/docs/talks6/_index.md +0 -9
- package/docs/talks6/_screenshot.png +0 -0
- package/docs/talks6/assistant-01.md +0 -5
- package/docs/talks6/assistant-02.md +0 -5
- package/docs/talks6/assistant-03.md +0 -1499
- package/docs/talks6/user-01.md +0 -3
- package/docs/talks6/user-02.md +0 -3
- package/docs/talks6/user-03.md +0 -88
- package/docs/talks6/user-04.md +0 -88
- package/docs/talks7/_body.txt +0 -14
- package/docs/talks7/_index.md +0 -10
- package/docs/talks7/_screenshot.png +0 -0
- package/docs/talks7/assistant-01.md +0 -5
- package/docs/talks7/assistant-02.md +0 -5
- package/docs/talks7/assistant-03.md +0 -523
- package/docs/talks7/assistant-04.md +0 -617
- package/docs/talks7/user-01.md +0 -3
- package/docs/talks7/user-02.md +0 -3
- package/docs/talks7/user-03.md +0 -105
- package/docs/talks7/user-04.md +0 -67
- package/docs/talks8/conversa1.txt +0 -1322
- package/docs/talks8/conversa2.txt +0 -237
- 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
- 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
- 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
- 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
- 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
- package/docs/talks9/README (2).md +0 -489
- package/docs/talks9/README.md +0 -198
- 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
- package/docs/talks9/conversa.txt +0 -544
- package/docs/talks9/other (2).md +0 -39
- package/docs/talks9/other.md +0 -57
- package/docs/talks9/outro.txt +0 -24
- /package/{extension/README.md → docs/extension.md} +0 -0
|
@@ -1,342 +0,0 @@
|
|
|
1
|
-
# Pesquisa: Server, API e Distribuição (2026)
|
|
2
|
-
|
|
3
|
-
## 1. Framework Comparison
|
|
4
|
-
|
|
5
|
-
### Performance Benchmarks (2026)
|
|
6
|
-
|
|
7
|
-
| Framework | Runtime | req/s (Node.js) | req/s (Bun) | Bundle Size | TypeScript | GitHub Stars | npm Weekly Downloads |
|
|
8
|
-
|-----------|---------|-----------------|-------------|-------------|------------|--------------|---------------------|
|
|
9
|
-
| **Elysia** | Bun-native | N/A | ~184K (peak) | ~30 KB | Native (best) | ~12K | ~300K-700K |
|
|
10
|
-
| **Hono** | Multi-runtime | ~45K-78K | ~55K-62K | ~12-15 KB | First-class | ~22-28K | ~1.2-9.3M |
|
|
11
|
-
| **Fastify** | Node.js | ~42K-114K | ~85K | ~50 KB+ | First-class | ~33-36K | ~4-11M |
|
|
12
|
-
| **Express** | Node.js | ~8K-21K | ~15-21K | ~200 KB+ | Via @types | ~65-69K | ~30-35M |
|
|
13
|
-
|
|
14
|
-
### Recommendation Matrix for Scraping APIs
|
|
15
|
-
|
|
16
|
-
| Use Case | Top Pick | Runner-up | Reason |
|
|
17
|
-
|----------|----------|-----------|--------|
|
|
18
|
-
| **Cloudflare Workers / Edge API** | Hono | — | Native support, 14 KB bundle, runs everywhere |
|
|
19
|
-
| **New Node.js REST API** | Fastify / Hono | Fastify | 3-10x faster than Express, schema validation |
|
|
20
|
-
| **Bun production API** | Elysia | Hono | Peak Bun throughput, end-to-end type safety |
|
|
21
|
-
| **Existing Express codebase** | Express | Fastify | Lowest migration cost, largest ecosystem |
|
|
22
|
-
| **Multi-runtime / portable** | Hono | — | Same code on Node, Bun, Deno, CF Workers, Lambda |
|
|
23
|
-
| **Enterprise large-scale** | Fastify | Express | Plugin system, stability, 300+ plugins |
|
|
24
|
-
|
|
25
|
-
### Framework-Specific Middleware
|
|
26
|
-
|
|
27
|
-
| Capability | Express | Fastify | Hono | Elysia |
|
|
28
|
-
|-----------|---------|---------|------|--------|
|
|
29
|
-
| CORS | `cors` (npm) | `@fastify/cors` | Built-in `hono/cors` | `@elysiajs/cors` |
|
|
30
|
-
| Rate limiting | `express-rate-limit` | `@fastify/rate-limit` | `hono-rate-limiter` | Custom |
|
|
31
|
-
| JWT Auth | `passport`, `jsonwebtoken` | `@fastify/jwt` | `hono/jwt` | `@elysiajs/jwt` |
|
|
32
|
-
| WebSocket | `ws` (standalone) | `@fastify/websocket` | `hono/ws` | Native |
|
|
33
|
-
| OpenAPI/Swagger | `swagger-jsdoc` | `@fastify/swagger` | `@hono/swagger-ui` | `@elysiajs/swagger` |
|
|
34
|
-
|
|
35
|
-
## 2. Rate Limiting on the API Layer
|
|
36
|
-
|
|
37
|
-
### Packages by Framework
|
|
38
|
-
|
|
39
|
-
| Package | Framework | Algorithm |
|
|
40
|
-
|---------|-----------|-----------|
|
|
41
|
-
| `express-rate-limit` 8.5.x | Express | Fixed window, pluggable stores |
|
|
42
|
-
| `@fastify/rate-limit` | Fastify | Fixed window, Redis-backed |
|
|
43
|
-
| `hono-rate-limiter` 0.5.x | Hono | Fixed window, Redis/CF KV |
|
|
44
|
-
| `universal-rate-limit` | All | Fixed/sliding window, token bucket |
|
|
45
|
-
|
|
46
|
-
### Hono Rate Limiting Example
|
|
47
|
-
|
|
48
|
-
```typescript
|
|
49
|
-
import { rateLimiter } from 'hono-rate-limiter';
|
|
50
|
-
import { RedisStore } from '@hono-rate-limiter/redis';
|
|
51
|
-
import { Redis } from '@upstash/redis';
|
|
52
|
-
|
|
53
|
-
const client = new Redis({ url: REDIS_URL, token: REDIS_TOKEN });
|
|
54
|
-
|
|
55
|
-
app.use('/api/*', rateLimiter({
|
|
56
|
-
windowMs: 60_000,
|
|
57
|
-
limit: 100,
|
|
58
|
-
store: new RedisStore({ client }),
|
|
59
|
-
keyGenerator: (c) => c.var.accountId,
|
|
60
|
-
standardHeaders: 'draft-7',
|
|
61
|
-
}));
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
### Tiered Rate Limiting
|
|
65
|
-
|
|
66
|
-
```typescript
|
|
67
|
-
// Global limit
|
|
68
|
-
app.use(rateLimiter({ windowMs: 60_000, limit: 1000 }));
|
|
69
|
-
|
|
70
|
-
// Per-endpoint for expensive operations
|
|
71
|
-
app.post('/v1/scrape', rateLimiter({
|
|
72
|
-
windowMs: 60_000,
|
|
73
|
-
limit: 10,
|
|
74
|
-
keyGenerator: (c) => c.var.userId,
|
|
75
|
-
}));
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
## 3. Streaming Responses
|
|
79
|
-
|
|
80
|
-
### Chunked Transfer Encoding
|
|
81
|
-
|
|
82
|
-
```typescript
|
|
83
|
-
app.get('/api/export', async (req, res) => {
|
|
84
|
-
res.writeHead(200, {
|
|
85
|
-
'Content-Type': 'application/json',
|
|
86
|
-
'Transfer-Encoding': 'chunked',
|
|
87
|
-
});
|
|
88
|
-
res.write('[\n');
|
|
89
|
-
let first = true;
|
|
90
|
-
for await (const batch of scraper.streamResults(url)) {
|
|
91
|
-
for (const row of batch) {
|
|
92
|
-
res.write(first ? '' : ',\n');
|
|
93
|
-
res.write(JSON.stringify(row));
|
|
94
|
-
first = false;
|
|
95
|
-
}
|
|
96
|
-
await new Promise(resolve => setImmediate(resolve));
|
|
97
|
-
}
|
|
98
|
-
res.write('\n]');
|
|
99
|
-
res.end();
|
|
100
|
-
});
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
### Server-Sent Events (SSE)
|
|
104
|
-
|
|
105
|
-
```typescript
|
|
106
|
-
app.get('/api/scrape/stream', async (req, res) => {
|
|
107
|
-
res.setHeader('Content-Type', 'text/event-stream');
|
|
108
|
-
res.setHeader('Cache-Control', 'no-cache');
|
|
109
|
-
res.setHeader('Connection', 'keep-alive');
|
|
110
|
-
res.setHeader('X-Accel-Buffering', 'no');
|
|
111
|
-
res.flushHeaders();
|
|
112
|
-
|
|
113
|
-
const scraper = scrapeWithProgress(url);
|
|
114
|
-
let eventId = 0;
|
|
115
|
-
|
|
116
|
-
for await (const event of scraper) {
|
|
117
|
-
res.write(`id: ${++eventId}\n`);
|
|
118
|
-
res.write(`event: ${event.type}\n`);
|
|
119
|
-
res.write(`data: ${JSON.stringify(event.data)}\n\n`);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
res.write('event: done\ndata: {"status":"complete"}\n\n');
|
|
123
|
-
res.end();
|
|
124
|
-
req.on('close', () => scraper.abort());
|
|
125
|
-
});
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
### SSE Gotchas
|
|
129
|
-
- Nginx buffers by default — add `proxy_buffering off;` and `X-Accel-Buffering: no`
|
|
130
|
-
- Cloudflare free tier has 100s idle timeout — send `: keepalive\n\n` every 30s
|
|
131
|
-
- Browsers limit 6 concurrent SSE connections per origin (HTTP/1.1)
|
|
132
|
-
- Skip streaming for responses under 50KB
|
|
133
|
-
|
|
134
|
-
## 4. WebSocket for Real-Time Progress
|
|
135
|
-
|
|
136
|
-
```typescript
|
|
137
|
-
import { WebSocketServer } from 'ws';
|
|
138
|
-
|
|
139
|
-
const wss = new WebSocketServer({ port: 3001 });
|
|
140
|
-
|
|
141
|
-
wss.on('connection', (ws) => {
|
|
142
|
-
ws.isAlive = true;
|
|
143
|
-
ws.on('pong', () => { ws.isAlive = true; });
|
|
144
|
-
ws.on('message', (data) => {
|
|
145
|
-
const msg = JSON.parse(data);
|
|
146
|
-
if (msg.type === 'subscribe') ws.jobId = msg.jobId;
|
|
147
|
-
});
|
|
148
|
-
});
|
|
149
|
-
|
|
150
|
-
// Heartbeat
|
|
151
|
-
setInterval(() => {
|
|
152
|
-
wss.clients.forEach(ws => {
|
|
153
|
-
if (!ws.isAlive) return ws.terminate();
|
|
154
|
-
ws.isAlive = false;
|
|
155
|
-
ws.ping();
|
|
156
|
-
});
|
|
157
|
-
}, 30_000);
|
|
158
|
-
|
|
159
|
-
function broadcastJobUpdate(jobId: string, data: unknown) {
|
|
160
|
-
wss.clients.forEach(ws => {
|
|
161
|
-
if (ws.jobId === jobId && ws.readyState === 1) {
|
|
162
|
-
ws.send(JSON.stringify({ type: 'job_update', ...data }));
|
|
163
|
-
}
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
## 5. Authentication
|
|
169
|
-
|
|
170
|
-
### API Key Pattern
|
|
171
|
-
|
|
172
|
-
```typescript
|
|
173
|
-
async function verifyApiKey(request: any, reply: any) {
|
|
174
|
-
const apiKey = request.headers['x-api-key'];
|
|
175
|
-
if (!apiKey) return reply.code(401).send({ error: 'API key required' });
|
|
176
|
-
const user = await redis.hgetall(`apikey:${apiKey}`);
|
|
177
|
-
if (!user.user_id) return reply.code(403).send({ error: 'Invalid API key' });
|
|
178
|
-
request.user = { userId: user.user_id };
|
|
179
|
-
}
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
### JWT Pattern
|
|
183
|
-
|
|
184
|
-
```typescript
|
|
185
|
-
import jwt from 'jsonwebtoken';
|
|
186
|
-
|
|
187
|
-
function validateJwt(request: any, reply: any) {
|
|
188
|
-
const token = request.headers.authorization?.replace('Bearer ', '');
|
|
189
|
-
if (!token) return reply.code(401).send({ error: 'Token required' });
|
|
190
|
-
try {
|
|
191
|
-
request.user = jwt.verify(token, SECRET, { algorithms: ['HS256'] });
|
|
192
|
-
} catch (e) {
|
|
193
|
-
return reply.code(401).send({ error: 'Invalid token' });
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
## 6. REST API Design
|
|
199
|
-
|
|
200
|
-
### Standard Endpoints
|
|
201
|
-
|
|
202
|
-
```
|
|
203
|
-
POST /v1/scrape # Sync scrape
|
|
204
|
-
POST /v1/scrape/async # Async scrape (returns task ID)
|
|
205
|
-
GET /v1/scrape/:taskId # Get async job result
|
|
206
|
-
POST /v1/batch # Batch scrape multiple URLs
|
|
207
|
-
POST /v1/crawl # Start recursive crawl
|
|
208
|
-
GET /v1/crawl/:crawlId # Get crawl status/results
|
|
209
|
-
GET /health # Health check
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
### Request/Response Schema
|
|
213
|
-
|
|
214
|
-
```json
|
|
215
|
-
// POST /v1/scrape
|
|
216
|
-
{
|
|
217
|
-
"url": "https://example.com",
|
|
218
|
-
"useBrowser": false,
|
|
219
|
-
"format": "markdown",
|
|
220
|
-
"waitFor": "h1",
|
|
221
|
-
"timeout": 30,
|
|
222
|
-
"proxy": "http://user:pass@proxy:port"
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
// Response
|
|
226
|
-
{
|
|
227
|
-
"status": "ok",
|
|
228
|
-
"data": {
|
|
229
|
-
"url": "https://example.com",
|
|
230
|
-
"markdown": "# Content...",
|
|
231
|
-
"metadata": { "title": "...", "description": "..." },
|
|
232
|
-
"links": [...],
|
|
233
|
-
"images": [...]
|
|
234
|
-
},
|
|
235
|
-
"timing": { "duration_ms": 1234 }
|
|
236
|
-
}
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
### Error Response Format
|
|
240
|
-
|
|
241
|
-
```json
|
|
242
|
-
{
|
|
243
|
-
"error": {
|
|
244
|
-
"code": "RATE_LIMIT_EXCEEDED",
|
|
245
|
-
"message": "Rate limit exceeded. Try again in 60 seconds.",
|
|
246
|
-
"retry_after": 60,
|
|
247
|
-
"request_id": "req_abc123"
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
## 7. Docker Deployment
|
|
253
|
-
|
|
254
|
-
### Multi-Stage Dockerfile
|
|
255
|
-
|
|
256
|
-
```dockerfile
|
|
257
|
-
# syntax=docker/dockerfile:1.4
|
|
258
|
-
FROM node:22-alpine AS deps
|
|
259
|
-
WORKDIR /app
|
|
260
|
-
COPY package.json package-lock.json ./
|
|
261
|
-
RUN npm ci --frozen-lockfile
|
|
262
|
-
|
|
263
|
-
FROM node:22-alpine AS builder
|
|
264
|
-
WORKDIR /app
|
|
265
|
-
COPY --from=deps /app/node_modules ./node_modules
|
|
266
|
-
COPY . .
|
|
267
|
-
RUN npm run build
|
|
268
|
-
|
|
269
|
-
FROM node:22-alpine AS runner
|
|
270
|
-
WORKDIR /app
|
|
271
|
-
RUN addgroup --system --gid 1001 nodejs && adduser --system --uid 1001 appuser
|
|
272
|
-
ENV NODE_ENV=production
|
|
273
|
-
COPY package.json package-lock.json ./
|
|
274
|
-
RUN npm ci --frozen-lockfile --omit=dev && npm cache clean --force
|
|
275
|
-
COPY --from=builder /app/dist ./dist
|
|
276
|
-
RUN chown -R appuser:nodejs /app
|
|
277
|
-
USER appuser
|
|
278
|
-
EXPOSE 3000
|
|
279
|
-
HEALTHCHECK --interval=30s --timeout=5s --start-period=30s --retries=3 \
|
|
280
|
-
CMD node -e "require('http').get('http://localhost:3000/health', (r) => process.exit(r.statusCode === 200 ? 0 : 1)).on('error', () => process.exit(1))"
|
|
281
|
-
CMD ["node", "--enable-source-maps", "dist/index.js"]
|
|
282
|
-
```
|
|
283
|
-
|
|
284
|
-
### Docker Compose
|
|
285
|
-
|
|
286
|
-
```yaml
|
|
287
|
-
services:
|
|
288
|
-
api:
|
|
289
|
-
build: .
|
|
290
|
-
ports: ["3000:3000"]
|
|
291
|
-
environment:
|
|
292
|
-
- DATABASE_URL=postgresql://user:pass@postgres:5432/scraper
|
|
293
|
-
- REDIS_URL=redis://redis:6379
|
|
294
|
-
depends_on: [postgres, redis]
|
|
295
|
-
|
|
296
|
-
postgres:
|
|
297
|
-
image: postgres:16-alpine
|
|
298
|
-
volumes: [pgdata:/var/lib/postgresql/data]
|
|
299
|
-
environment:
|
|
300
|
-
POSTGRES_DB: scraper
|
|
301
|
-
POSTGRES_USER: user
|
|
302
|
-
POSTGRES_PASSWORD: pass
|
|
303
|
-
|
|
304
|
-
redis:
|
|
305
|
-
image: redis:7-alpine
|
|
306
|
-
volumes: [redis_data:/data]
|
|
307
|
-
|
|
308
|
-
volumes:
|
|
309
|
-
pgdata:
|
|
310
|
-
redis_data:
|
|
311
|
-
```
|
|
312
|
-
|
|
313
|
-
## 8. Serverless Deployment
|
|
314
|
-
|
|
315
|
-
| Platform | Best For | Notes |
|
|
316
|
-
|----------|----------|-------|
|
|
317
|
-
| AWS Lambda (container) | Event-driven scraping | Up to 15 min timeout |
|
|
318
|
-
| Google Cloud Run | Serverless pipeline | Separate scraper + API services |
|
|
319
|
-
| Cloudflare Workers | Edge scraping API | Hono is best choice, 14 KB bundle |
|
|
320
|
-
| Fly.io | Persistent containers | Good for browser-based scraping |
|
|
321
|
-
| Render | Full-stack | Postgres + Redis included |
|
|
322
|
-
|
|
323
|
-
## 9. Observability
|
|
324
|
-
|
|
325
|
-
- Structured JSON logging (Pino for Fastify, built-in for Hono)
|
|
326
|
-
- OpenTelemetry for distributed tracing
|
|
327
|
-
- Metrics: request count, latency p50/p95/p99, scrape success rate
|
|
328
|
-
- Per-user usage dashboards
|
|
329
|
-
- Alerting on anomalous patterns
|
|
330
|
-
|
|
331
|
-
## 10. Security Checklist
|
|
332
|
-
|
|
333
|
-
- [ ] HTTPS everywhere
|
|
334
|
-
- [ ] API key or JWT authentication
|
|
335
|
-
- [ ] Rate limiting per user/API key
|
|
336
|
-
- [ ] Input validation on all endpoints
|
|
337
|
-
- [ ] SSRF protection (prevent scraping internal networks)
|
|
338
|
-
- [ ] CORS configured properly
|
|
339
|
-
- [ ] No secrets in Docker images
|
|
340
|
-
- [ ] Request ID tracking for audit trails
|
|
341
|
-
- [ ] Respect robots.txt
|
|
342
|
-
- [ ] Data retention limits and deletion schedules
|
|
@@ -1,249 +0,0 @@
|
|
|
1
|
-
# Pesquisa: Compilação e Build de Bibliotecas (2026)
|
|
2
|
-
|
|
3
|
-
## 1. Bun `--compile` — Standalone Executables
|
|
4
|
-
|
|
5
|
-
Bun's bundler has a mature `--compile` flag that generates standalone binaries with the Bun runtime embedded.
|
|
6
|
-
|
|
7
|
-
### Basic Usage
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
bun build ./cli.ts --compile --outfile mycli
|
|
11
|
-
./mycli
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
### Cross-Compilation Targets
|
|
15
|
-
|
|
16
|
-
| Target | OS | Arch |
|
|
17
|
-
|--------|-----|------|
|
|
18
|
-
| `bun-linux-x64` | Linux | x64 (glibc) |
|
|
19
|
-
| `bun-linux-arm64` | Linux | arm64 |
|
|
20
|
-
| `bun-windows-x64` | Windows | x64 (.exe) |
|
|
21
|
-
| `bun-windows-arm64` | Windows | arm64 |
|
|
22
|
-
| `bun-darwin-x64` | macOS | x64 |
|
|
23
|
-
| `bun-darwin-arm64` | macOS | arm64 |
|
|
24
|
-
| `bun-linux-x64-musl` | Linux | x64 (Alpine) |
|
|
25
|
-
| `bun-linux-arm64-musl` | Linux | arm64 (musl) |
|
|
26
|
-
|
|
27
|
-
### Advanced Features
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
# Bytecode compilation (2x faster startup)
|
|
31
|
-
bun build --compile --bytecode ./app.ts --outfile myapp
|
|
32
|
-
|
|
33
|
-
# Cross-compile
|
|
34
|
-
bun build --compile --target=bun-linux-x64 ./src/cli.ts --outfile myapp-linux
|
|
35
|
-
|
|
36
|
-
# Embed files
|
|
37
|
-
bun build --compile ./index.ts ./public/**/*.png
|
|
38
|
-
|
|
39
|
-
# Build-time constants
|
|
40
|
-
bun build --compile --define BUILD_VERSION='"1.2.3"' ./app.ts --outfile myapp
|
|
41
|
-
|
|
42
|
-
# Minification + sourcemaps
|
|
43
|
-
bun build --compile --minify --sourcemap ./app.ts --outfile myapp
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
### Key Features (2026)
|
|
47
|
-
- Build-time constants via `--define`
|
|
48
|
-
- Bytecode compilation for fast startup
|
|
49
|
-
- Embed files/assets with `with { type: "file" }` import attributes
|
|
50
|
-
- Embed SQLite databases with `with { type: "sqlite", embed: "true" }`
|
|
51
|
-
- Embed N-API addons (`.node` files) directly
|
|
52
|
-
- Full-stack executables (v1.2.17+): embed HTML/CSS/JS frontend
|
|
53
|
-
- Windows metadata (icon, hideConsole, title)
|
|
54
|
-
- macOS codesigning support
|
|
55
|
-
|
|
56
|
-
## 2. tsup vs tsdown
|
|
57
|
-
|
|
58
|
-
### tsup (legacy, v8.5.1 — no longer actively maintained)
|
|
59
|
-
|
|
60
|
-
```typescript
|
|
61
|
-
// tsup.config.ts
|
|
62
|
-
import { defineConfig } from 'tsup'
|
|
63
|
-
export default defineConfig({
|
|
64
|
-
entry: ['src/index.ts', 'src/cli.ts'],
|
|
65
|
-
format: ['cjs', 'esm'],
|
|
66
|
-
dts: true,
|
|
67
|
-
splitting: true,
|
|
68
|
-
clean: true,
|
|
69
|
-
minify: true,
|
|
70
|
-
})
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
### tsdown (recommended successor, Rolldown-based)
|
|
74
|
-
|
|
75
|
-
```bash
|
|
76
|
-
npm i tsdown -D
|
|
77
|
-
npx tsdown-migrate # migrate from tsup
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
| Option | tsup | tsdown |
|
|
81
|
-
|--------|------|--------|
|
|
82
|
-
| Default format | `'cjs'` | `'esm'` |
|
|
83
|
-
| Clean | `false` | `true` |
|
|
84
|
-
| DTS | `false` | Auto-enabled |
|
|
85
|
-
| Target | none | Auto-reads from `engines.node` |
|
|
86
|
-
| Backend | esbuild | Rolldown (Rust) |
|
|
87
|
-
|
|
88
|
-
### tsdown Unique Features
|
|
89
|
-
- **`exe: true`** — bundle as Node.js SEA
|
|
90
|
-
- **`exports: true`** — auto-generate `package.json` exports
|
|
91
|
-
- **`publint`/`attw`** — validate package
|
|
92
|
-
- **`devtools`** — Vite DevTools integration
|
|
93
|
-
- **Full CSS pipeline** with preprocessors
|
|
94
|
-
- **Lifecycle hooks**: `build:prepare`, `build:before`, `build:done`
|
|
95
|
-
|
|
96
|
-
```typescript
|
|
97
|
-
// tsdown.config.ts
|
|
98
|
-
import { defineConfig } from 'tsdown'
|
|
99
|
-
export default defineConfig({
|
|
100
|
-
entry: ['src/index.ts', 'src/cli.ts'],
|
|
101
|
-
format: ['cjs', 'esm'],
|
|
102
|
-
dts: true,
|
|
103
|
-
exe: false,
|
|
104
|
-
minify: true,
|
|
105
|
-
exports: true,
|
|
106
|
-
publint: true,
|
|
107
|
-
})
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
## 3. Node.js SEA (Single Executable Applications)
|
|
111
|
-
|
|
112
|
-
### Step-by-Step Process
|
|
113
|
-
|
|
114
|
-
```bash
|
|
115
|
-
# 1. Write your app
|
|
116
|
-
echo 'console.log("Hello!");' > hello.js
|
|
117
|
-
|
|
118
|
-
# 2. Bundle to single CJS file (esbuild/ncc/webpack)
|
|
119
|
-
npx esbuild hello.ts --bundle --platform=node --outfile=hello.js --format=cjs
|
|
120
|
-
|
|
121
|
-
# 3. Create sea-config.json
|
|
122
|
-
echo '{"main":"hello.js","output":"sea-prep.blob","disableExperimentalSEAWarning":true}' > sea-config.json
|
|
123
|
-
|
|
124
|
-
# 4. Generate the blob
|
|
125
|
-
node --experimental-sea-config sea-config.json
|
|
126
|
-
|
|
127
|
-
# 5. Copy node binary
|
|
128
|
-
cp $(command -v node) hello
|
|
129
|
-
|
|
130
|
-
# 6. Remove signature (macOS)
|
|
131
|
-
codesign --remove-signature hello
|
|
132
|
-
|
|
133
|
-
# 7. Inject blob with postject
|
|
134
|
-
npx postject hello NODE_SEA_BLOB sea-prep.blob \
|
|
135
|
-
--sentinel-fuse NODE_SEA_FUSE_fce680ab2cc467b6e072b8b5df1996b2
|
|
136
|
-
|
|
137
|
-
# 8. Re-sign (macOS)
|
|
138
|
-
codesign --sign - hello
|
|
139
|
-
|
|
140
|
-
# 9. Run
|
|
141
|
-
./hello
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
### SEA v22+ Features
|
|
145
|
-
- **Assets** — embed files via `"assets"` config field
|
|
146
|
-
- **Startup snapshots** — `"useSnapshot": true`
|
|
147
|
-
- **V8 code cache** — `"useCodeCache": true`
|
|
148
|
-
- **Embedded `execArgv`** — `"execArgv": ["--no-warnings"]`
|
|
149
|
-
|
|
150
|
-
**Key limitation:** SEA only supports CommonJS. Must bundle everything into a single JS file first.
|
|
151
|
-
|
|
152
|
-
## 4. esbuild for Fast Bundling
|
|
153
|
-
|
|
154
|
-
```bash
|
|
155
|
-
# Browser bundle
|
|
156
|
-
esbuild app.jsx --bundle --minify --sourcemap --target=chrome58 --outfile=out.js
|
|
157
|
-
|
|
158
|
-
# Node.js bundle
|
|
159
|
-
esbuild app.js --bundle --platform=node --target=node18 --outfile=out.js
|
|
160
|
-
|
|
161
|
-
# Leave dependencies external (for libraries)
|
|
162
|
-
esbuild app.jsx --bundle --platform=node --packages=external --outfile=out.js
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
### Key Features
|
|
166
|
-
- Extremely fast (written in Go, parallelized)
|
|
167
|
-
- TypeScript/JSX/TSX out of the box
|
|
168
|
-
- CSS bundling support
|
|
169
|
-
- Plugin system (`onResolve`, `onLoad`, `onStart`, `onEnd`)
|
|
170
|
-
- WASM version available (`esbuild-wasm`)
|
|
171
|
-
|
|
172
|
-
## 5. Creating CLI Tools Without Node.js
|
|
173
|
-
|
|
174
|
-
### Options Ranked
|
|
175
|
-
|
|
176
|
-
1. **Bun `--compile`** (recommended): True cross-compilation, supports Bun + Node.js APIs
|
|
177
|
-
2. **Node.js SEA**: Embeds full Node.js runtime, CJS only
|
|
178
|
-
3. **Deno compile**: Alternative, good for Deno-first projects
|
|
179
|
-
|
|
180
|
-
## 6. Native Dependencies in Compiled Binaries
|
|
181
|
-
|
|
182
|
-
### Strategies
|
|
183
|
-
|
|
184
|
-
1. **Replace with pure-JS alternatives:**
|
|
185
|
-
- `better-sqlite3` → `bun:sqlite` (Bun) or `sql.js` (WASM)
|
|
186
|
-
- `bcrypt` → `bcryptjs`
|
|
187
|
-
- `sharp` → pure-JS image libs
|
|
188
|
-
|
|
189
|
-
2. **Use WASM-based alternatives** — Many native libs now have WASM builds
|
|
190
|
-
|
|
191
|
-
3. **Bundle with `ncc` and mark as external:**
|
|
192
|
-
```bash
|
|
193
|
-
ncc build src/index.ts -o dist --external better-sqlite3
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
4. **With Bun compile**, embed `.node` file directly if you control the require path
|
|
197
|
-
|
|
198
|
-
## 7. WASM Builds
|
|
199
|
-
|
|
200
|
-
### Using tsdown with rolldown-plugin-wasm
|
|
201
|
-
|
|
202
|
-
```typescript
|
|
203
|
-
// tsdown.config.ts
|
|
204
|
-
import { wasm } from 'rolldown-plugin-wasm'
|
|
205
|
-
import { defineConfig } from 'tsdown'
|
|
206
|
-
|
|
207
|
-
export default defineConfig({
|
|
208
|
-
entry: ['./src/index.ts'],
|
|
209
|
-
plugins: [wasm({
|
|
210
|
-
maxFileSize: 14 * 1024,
|
|
211
|
-
targetEnv: 'auto',
|
|
212
|
-
})],
|
|
213
|
-
})
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
### Importing WASM Modules
|
|
217
|
-
|
|
218
|
-
```typescript
|
|
219
|
-
// Direct import
|
|
220
|
-
import { add } from './add.wasm'
|
|
221
|
-
add(1, 2)
|
|
222
|
-
|
|
223
|
-
// Async init
|
|
224
|
-
import init from './add.wasm?init'
|
|
225
|
-
const instance = await init()
|
|
226
|
-
instance.exports.add(1, 2)
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
## 8. Distribution Strategy Matrix
|
|
230
|
-
|
|
231
|
-
| Target | Tool | Output | Needs Runtime? |
|
|
232
|
-
|--------|------|--------|----------------|
|
|
233
|
-
| npm package | tsdown | ESM + CJS + DTS | Yes (consumer's bundler) |
|
|
234
|
-
| npm CLI tool | tsdown + bin field | JS + bin script | Yes (Node.js) |
|
|
235
|
-
| Standalone binary | Bun compile | Native executable | No |
|
|
236
|
-
| Node.js SEA | esbuild + postject | Modified node binary | Embedded Node.js |
|
|
237
|
-
| Browser bundle | esbuild/tsdown | ESM/IIFE JS | No (browser) |
|
|
238
|
-
| Edge/Workers | tsdown + WASM plugin | JS + .wasm | No (edge runtime) |
|
|
239
|
-
| Serverless | @vercel/ncc | Single JS file | Yes (Node.js Lambda) |
|
|
240
|
-
| Deno | deno compile | Native executable | No |
|
|
241
|
-
|
|
242
|
-
## 9. Recommended 2026 Toolchain
|
|
243
|
-
|
|
244
|
-
1. **tsdown** for library building (replaces tsup, uses Rolldown)
|
|
245
|
-
2. **esbuild** for fast development bundling
|
|
246
|
-
3. **Bun `--compile`** for standalone executables
|
|
247
|
-
4. **Node.js SEA** when Node.js-based standalone is needed
|
|
248
|
-
5. **rolldown-plugin-wasm** for WASM builds via tsdown
|
|
249
|
-
6. **@vercel/ncc** for single-file Node.js deployments
|