@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,727 +0,0 @@
|
|
|
1
|
-
# assistant
|
|
2
|
-
|
|
3
|
-
[Thinking] The user wants me to continue with more searches and provide a detailed step-by-step guide. Let me do more searches on the specific topics they mentioned - ORMs converted to RAM, HuggingFace/Kaggle/ModelScope infrastructure, WASM memory emulators, npm CDN delivery, and more.
|
|
4
|
-
|
|
5
|
-
[Thinking] Now let me do more searches on specific topics the user mentioned - Forgejo/Gitea/Codeberg CI/CD, Kaggle/ModelScope free compute, WASM memory emulation, and the specific use cases.
|
|
6
|
-
|
|
7
|
-
[Thinking] Now I have enough research to compile a comprehensive step-by-step guide. Let me synthesize everything into a detailed implementation plan.
|
|
8
|
-
|
|
9
|
-
[Thinking] Now let me compile the comprehensive guide. I need to be concise but thorough, covering all the aspects the user asked about.
|
|
10
|
-
|
|
11
|
-
Vou fazer mais 10+ pesquisas específicas e compilar tudo em um guia ultra-detallado.
|
|
12
|
-
|
|
13
|
-
Agora vou compilar tudo em um guia ultra-completo com todos os passos.
|
|
14
|
-
|
|
15
|
-
Aqui está o guia completo compilado de 13 pesquisas realizadas:
|
|
16
|
-
|
|
17
|
-
GUIA COMPLETO: Plataforma Sandbox com Infraestrutura Gratuita
|
|
18
|
-
SUMÁRIO RÁPIDO
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
Camada
|
|
23
|
-
Solução
|
|
24
|
-
Custo
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
Storage → RAM
|
|
29
|
-
zRAM + tmpfs + memfs
|
|
30
|
-
Grátis
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
Sandbox isolado
|
|
34
|
-
gVisor (sem KVM) ou Firecracker (com KVM)
|
|
35
|
-
Grátis
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
Runner efêmero
|
|
39
|
-
ephemerd ou ez-gh-actions
|
|
40
|
-
Grátis (MIT)
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
ORM in-memory
|
|
44
|
-
Drizzle + SQLite WASM + PGLite
|
|
45
|
-
Grátis
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
CI/CD
|
|
49
|
-
Forgejo Actions (self-hosted)
|
|
50
|
-
Grátis
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
AI/GPU
|
|
54
|
-
HuggingFace + Kaggle + ModelScope
|
|
55
|
-
Grátis (free tiers)
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
CDN execução
|
|
59
|
-
esm.sh + jsdelivr + use-m
|
|
60
|
-
Grátis
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
npm package
|
|
64
|
-
Publicar lib própria
|
|
65
|
-
Grátis
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
PARTE 1: Memory Bridge (Storage → RAM)
|
|
70
|
-
O que é
|
|
71
|
-
Transformar armazenamento físico (disco) em memória RAM virtual usando zRAM, tmpfs e memfs.
|
|
72
|
-
Passo 1: Setup zRAM no Linux
|
|
73
|
-
#!/bin/bash
|
|
74
|
-
# setup-zram.sh - Converte storage em RAM comprimida
|
|
75
|
-
|
|
76
|
-
# Carregar módulo zRAM
|
|
77
|
-
modprobe zram num_devices=2
|
|
78
|
-
|
|
79
|
-
# Criar swap comprimido (até 2x mais memória)
|
|
80
|
-
echo zstd > /sys/block/zram0/comp_algorithm
|
|
81
|
-
echo $(($(grep -Po 'MemTotal:\s*\K\d+' /proc/meminfo)/2))KiB > /sys/block/zram0/disksize
|
|
82
|
-
mkswap /dev/zram0
|
|
83
|
-
swapon --priority 100 /dev/zram0
|
|
84
|
-
|
|
85
|
-
# Criar filesystem em RAM para workspace
|
|
86
|
-
echo zstd > /sys/block/zram1/comp_algorithm
|
|
87
|
-
echo 4G > /sys/block/zram1/disksize
|
|
88
|
-
mkfs.ext4 /dev/zram1
|
|
89
|
-
mkdir -p /mnt/sandbox-ram
|
|
90
|
-
mount /dev/zram1 /mnt/sandbox-ram
|
|
91
|
-
chmod 1777 /mnt/sandbox-ram
|
|
92
|
-
Passo 2: Setup tmpfs
|
|
93
|
-
# Montar diretórios em RAM
|
|
94
|
-
mount -t tmpfs -o size=4G,mode=1777 tmpfs /tmp/ramdisk
|
|
95
|
-
mount -t tmpfs -o size=2G,mode=1777 tmpfs /var/cache/ram
|
|
96
|
-
|
|
97
|
-
# Verificar
|
|
98
|
-
df -h | grep -E 'tmpfs|zram'
|
|
99
|
-
Passo 3: Biblioteca Node.js - Memory Bridge
|
|
100
|
-
// src/memory-bridge.ts
|
|
101
|
-
import { createFsFromVolume, Volume } from 'memfs';
|
|
102
|
-
import { readFileSync, existsSync } from 'fs';
|
|
103
|
-
import { join, dirname } from 'path';
|
|
104
|
-
|
|
105
|
-
export class MemoryBridge {
|
|
106
|
-
private vol: Volume;
|
|
107
|
-
private fs: ReturnType<typeof createFsFromVolume>;
|
|
108
|
-
|
|
109
|
-
constructor(private maxRAM: string = '4G') {
|
|
110
|
-
this.vol = new Volume();
|
|
111
|
-
this.fs = createFsFromVolume(this.vol as any);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
// Converte arquivo do disco para RAM
|
|
115
|
-
storageToRam(diskPath: string, ramPath: string): void {
|
|
116
|
-
if (!existsSync(diskPath)) throw new Error(`File not found: ${diskPath}`);
|
|
117
|
-
const data = readFileSync(diskPath);
|
|
118
|
-
this.vol.mkdirSync(dirname(ramPath), { recursive: true });
|
|
119
|
-
this.vol.writeFileSync(ramPath, data);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
// Converte diretório inteiro para RAM
|
|
123
|
-
storageDirToRam(diskDir: string, ramDir: string): void {
|
|
124
|
-
const { readdirSync, statSync } = require('fs');
|
|
125
|
-
const files = readdirSync(diskDir);
|
|
126
|
-
for (const file of files) {
|
|
127
|
-
const fullPath = join(diskDir, file);
|
|
128
|
-
const ramPath = join(ramDir, file);
|
|
129
|
-
if (statSync(fullPath).isDirectory()) {
|
|
130
|
-
this.storageDirToRam(fullPath, ramPath);
|
|
131
|
-
} else {
|
|
132
|
-
this.storageToRam(fullPath, ramPath);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
// Cria sandbox em memória
|
|
138
|
-
createSandbox(id: string): SandboxInstance {
|
|
139
|
-
const sandboxPath = `/sandbox/${id}`;
|
|
140
|
-
this.vol.mkdirSync(sandboxPath, { recursive: true });
|
|
141
|
-
return new SandboxInstance(this.vol, this.fs, sandboxPath, id);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
export class SandboxInstance {
|
|
146
|
-
constructor(
|
|
147
|
-
private vol: Volume,
|
|
148
|
-
private fs: ReturnType<typeof createFsFromVolume>,
|
|
149
|
-
public path: string,
|
|
150
|
-
public id: string
|
|
151
|
-
) {}
|
|
152
|
-
|
|
153
|
-
writeFileSync(name: string, content: string): void {
|
|
154
|
-
this.vol.writeFileSync(`${this.path}/${name}`, content);
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
readFileSync(name: string): Buffer {
|
|
158
|
-
return this.vol.readFileSync(`${this.path}/${name}`);
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
execute(code: string): string {
|
|
162
|
-
this.writeFileSync('index.js', code);
|
|
163
|
-
const { execSync } = require('child_process');
|
|
164
|
-
return execSync(`node -e "${code}"`, {
|
|
165
|
-
cwd: this.path,
|
|
166
|
-
timeout: 5000,
|
|
167
|
-
maxBuffer: 1024 * 1024 * 10
|
|
168
|
-
}).toString();
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
PARTE 2: Sandbox Isolado (gVisor / Firecracker)
|
|
173
|
-
Passo 4: Instalar gVisor (sem necessidade de KVM)
|
|
174
|
-
# Instalar gVisor runsc
|
|
175
|
-
curl -fsSL https://gvisor.dev/archive.key | sudo gpg --dearmor -o /usr/share/keyrings/gvisor-archive-keyring.gpg
|
|
176
|
-
echo "deb [signed-by=/usr/share/keyrings/gvisor-archive-keyring.gpg] https://storage.googleapis.com/gvisor/releases release main" | sudo tee /etc/apt/sources.list.d/gvisor.list
|
|
177
|
-
sudo apt update && sudo apt install -y runsc
|
|
178
|
-
|
|
179
|
-
# Configurar Docker para usar gVisor
|
|
180
|
-
cat << EOF | sudo tee /etc/docker/daemon.json
|
|
181
|
-
{
|
|
182
|
-
"runtimes": {
|
|
183
|
-
"runsc": {
|
|
184
|
-
"path": "/usr/bin/runsc"
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
EOF
|
|
189
|
-
sudo systemctl restart docker
|
|
190
|
-
|
|
191
|
-
# Testar sandbox
|
|
192
|
-
docker run --rm --runtime=runsc ubuntu:22.04 cat /etc/os-release
|
|
193
|
-
Passo 5: Script de Sandbox com Cota de Memória
|
|
194
|
-
#!/bin/bash
|
|
195
|
-
# create-sandbox.sh
|
|
196
|
-
SANDBOX_ID=$1
|
|
197
|
-
RAM_LIMIT=${2:-8g}
|
|
198
|
-
CPU_LIMIT=${3:-4}
|
|
199
|
-
|
|
200
|
-
docker run -d \
|
|
201
|
-
--name "sandbox-${SANDBOX_ID}" \
|
|
202
|
-
--runtime=runsc \
|
|
203
|
-
--memory="${RAM_LIMIT}" \
|
|
204
|
-
--cpus="${CPU_LIMIT}" \
|
|
205
|
-
--network=sandbox-net \
|
|
206
|
-
--read-only \
|
|
207
|
-
--tmpfs /tmp:size=2g \
|
|
208
|
-
-v /mnt/sandbox-ram/workspace-${SANDBOX_ID}:/workspace \
|
|
209
|
-
-e SANDBOX_ID="${SANDBOX_ID}" \
|
|
210
|
-
sandbox-base:latest
|
|
211
|
-
|
|
212
|
-
PARTE 3: Runners Efêmeros (GitHub/Forgejo/Gitea)
|
|
213
|
-
Passo 6: ephemerd (Multi-plataforma, MIT)
|
|
214
|
-
# Baixar ephemerd
|
|
215
|
-
# https://github.com/ephpm/ephemerd
|
|
216
|
-
# Suporta: GitHub, Forgejo, Gitea, GitLab, Woodpecker
|
|
217
|
-
|
|
218
|
-
# Configurar para Forgejo
|
|
219
|
-
cat << 'EOF' > ~/.config/ephemerd/config.yaml
|
|
220
|
-
provider: forgejo
|
|
221
|
-
forgejo:
|
|
222
|
-
url: https://codeberg.org
|
|
223
|
-
token: ${FORGEJO_TOKEN}
|
|
224
|
-
|
|
225
|
-
runner:
|
|
226
|
-
labels: ["self-hosted", "linux", "x64", "docker"]
|
|
227
|
-
image: "ghcr.io/actions/actions-runner:latest"
|
|
228
|
-
memory_mb: 8192
|
|
229
|
-
cpus: 4
|
|
230
|
-
count: 2
|
|
231
|
-
|
|
232
|
-
sandbox:
|
|
233
|
-
type: docker
|
|
234
|
-
isolation: gvisor
|
|
235
|
-
EOF
|
|
236
|
-
|
|
237
|
-
# Iniciar
|
|
238
|
-
ephemerd serve
|
|
239
|
-
Passo 7: ez-gh-actions (Rust, VM-first)
|
|
240
|
-
# Instalar
|
|
241
|
-
cargo install --path .
|
|
242
|
-
|
|
243
|
-
# Configurar
|
|
244
|
-
ezgha init --target owner/repo
|
|
245
|
-
ezgha doctor
|
|
246
|
-
|
|
247
|
-
# Iniciar runner efêmero
|
|
248
|
-
ezgha serve
|
|
249
|
-
Passo 8: Forgejo Runner (Self-hosted)
|
|
250
|
-
# Baixar Forgejo Runner
|
|
251
|
-
wget https://code.forgejo.org/forgejo/forgejo-runner/releases/download/v12.10.2/forgejo-runner-12.10.2-linux-amd64
|
|
252
|
-
chmod +x forgejo-runner-12.10.2-linux-amd64
|
|
253
|
-
mv forgejo-runner-12.10.2-linux-amd64 /usr/local/bin/forgejo-runner
|
|
254
|
-
|
|
255
|
-
# Criar config
|
|
256
|
-
mkdir -p /etc/forgejo-runner
|
|
257
|
-
cat << 'EOF' > /etc/forgejo-runner/config.yml
|
|
258
|
-
runners:
|
|
259
|
-
- name: sandbox-runner
|
|
260
|
-
labels:
|
|
261
|
-
- "sandbox:docker://node:20-bookworm"
|
|
262
|
-
- "linux:docker://ubuntu:22.04"
|
|
263
|
-
container:
|
|
264
|
-
image: node:20-bookworm
|
|
265
|
-
options: |
|
|
266
|
-
--memory=8g
|
|
267
|
-
--cpus=4
|
|
268
|
-
--runtime=runsc
|
|
269
|
-
volumes:
|
|
270
|
-
- /mnt/sandbox-ram:/workspace
|
|
271
|
-
EOF
|
|
272
|
-
|
|
273
|
-
# Registrar no Forgejo/Codeberg
|
|
274
|
-
forgejo-runner daemon --config /etc/forgejo-runner/config.yml
|
|
275
|
-
|
|
276
|
-
PARTE 4: ORM In-Memory (Drizzle + SQLite WASM + PGLite)
|
|
277
|
-
Passo 9: Drizzle com SQLite em Memória
|
|
278
|
-
// src/db/memory-db.ts
|
|
279
|
-
import { drizzle } from 'drizzle-orm/better-sqlite3';
|
|
280
|
-
import Database from 'better-sqlite3';
|
|
281
|
-
import { sql } from 'drizzle-orm';
|
|
282
|
-
|
|
283
|
-
// SQLite 100% em memória (zero disco)
|
|
284
|
-
const sqlite = new Database(':memory:');
|
|
285
|
-
export const db = drizzle(sqlite);
|
|
286
|
-
|
|
287
|
-
// Criar tabela
|
|
288
|
-
db.run(sql`
|
|
289
|
-
CREATE TABLE sandboxes (
|
|
290
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
291
|
-
name TEXT NOT NULL,
|
|
292
|
-
status TEXT DEFAULT 'created',
|
|
293
|
-
ram_mb INTEGER DEFAULT 4096,
|
|
294
|
-
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
295
|
-
)
|
|
296
|
-
`);
|
|
297
|
-
|
|
298
|
-
// Drizzle com PGLite (Postgres em WASM)
|
|
299
|
-
import { drizzle } from 'drizzle-orm/pglite';
|
|
300
|
-
import { PGlite } from '@electric-sql/pglite';
|
|
301
|
-
|
|
302
|
-
const client = new PGlite(); // In-memory Postgres
|
|
303
|
-
export const pgDb = drizzle(client);
|
|
304
|
-
|
|
305
|
-
// Drizzle com libSQL (SQLite com sync remoto)
|
|
306
|
-
import { drizzle } from 'drizzle-orm/libsql';
|
|
307
|
-
import { createClient } from '@libsql/client';
|
|
308
|
-
|
|
309
|
-
const libsqlClient = createClient({
|
|
310
|
-
url: 'file:local.db', // Local em memória
|
|
311
|
-
syncUrl: process.env.TURSO_URL, // Sync remoto opcional
|
|
312
|
-
authToken: process.env.TURSO_TOKEN,
|
|
313
|
-
});
|
|
314
|
-
export const libsqlDb = drizzle(libsqlClient);
|
|
315
|
-
Passo 10: MySQL2 In-Memory (via SQLite bridge)
|
|
316
|
-
// src/db/mysql-memory.ts
|
|
317
|
-
import { drizzle } from 'drizzle-orm/mysql2';
|
|
318
|
-
import mysql from 'mysql2/promise';
|
|
319
|
-
import { createClient } from '@libsql/client';
|
|
320
|
-
|
|
321
|
-
// Para MySQL-like queries em memória, usar SQLite como backend
|
|
322
|
-
const sqlite = new (require('better-sqlite3'))(':memory:');
|
|
323
|
-
const db = drizzle(sqlite);
|
|
324
|
-
|
|
325
|
-
// OU: MySQL2 real com Docker container efêmero
|
|
326
|
-
async function createMySQLContainer(id: string) {
|
|
327
|
-
const { execSync } = require('child_process');
|
|
328
|
-
execSync(`
|
|
329
|
-
docker run -d \
|
|
330
|
-
--name mysql-${id} \
|
|
331
|
-
--memory=1g \
|
|
332
|
-
--cpus=1 \
|
|
333
|
-
-e MYSQL_ROOT_PASSWORD=root \
|
|
334
|
-
-e MYSQL_DATABASE=sandbox \
|
|
335
|
-
mysql:8.0
|
|
336
|
-
`);
|
|
337
|
-
|
|
338
|
-
// Aguardar MySQL iniciar
|
|
339
|
-
await new Promise(r => setTimeout(r, 5000));
|
|
340
|
-
|
|
341
|
-
const connection = await mysql.createConnection({
|
|
342
|
-
host: '127.0.0.1',
|
|
343
|
-
user: 'root',
|
|
344
|
-
password: 'root',
|
|
345
|
-
database: 'sandbox'
|
|
346
|
-
});
|
|
347
|
-
|
|
348
|
-
return drizzle(connection);
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
PARTE 5: Pipelines nos Repositórios
|
|
352
|
-
Passo 11: Forgejo/Codeberg Actions
|
|
353
|
-
# .forgejo/workflows/sandbox.yml
|
|
354
|
-
name: Sandbox Pipeline
|
|
355
|
-
on:
|
|
356
|
-
push:
|
|
357
|
-
branches: [main]
|
|
358
|
-
workflow_dispatch:
|
|
359
|
-
inputs:
|
|
360
|
-
sandbox_config:
|
|
361
|
-
description: 'Sandbox config JSON'
|
|
362
|
-
required: true
|
|
363
|
-
|
|
364
|
-
jobs:
|
|
365
|
-
create-sandbox:
|
|
366
|
-
runs-on: docker
|
|
367
|
-
container:
|
|
368
|
-
image: node:20-bookworm
|
|
369
|
-
steps:
|
|
370
|
-
- name: Checkout
|
|
371
|
-
uses: https://data.forgejo.org/actions/checkout@v4
|
|
372
|
-
|
|
373
|
-
- name: Setup Memory Bridge
|
|
374
|
-
run: |
|
|
375
|
-
apt-get update && apt-get install -y zram-tools
|
|
376
|
-
modprobe zram
|
|
377
|
-
zramctl /dev/zram0 --algorithm zstd --size 4G
|
|
378
|
-
mkswap /dev/zram0 && swapon /dev/zram0
|
|
379
|
-
mount -t tmpfs -o size=4G tmpfs /mnt/sandbox-ram
|
|
380
|
-
|
|
381
|
-
- name: Install Dependencies
|
|
382
|
-
run: |
|
|
383
|
-
npm ci
|
|
384
|
-
npm install memfs better-sqlite3 drizzle-orm
|
|
385
|
-
|
|
386
|
-
- name: Create In-Memory DB
|
|
387
|
-
run: |
|
|
388
|
-
node -e "
|
|
389
|
-
const Database = require('better-sqlite3');
|
|
390
|
-
const db = new Database(':memory:');
|
|
391
|
-
db.exec('CREATE TABLE sandboxes (id INTEGER PRIMARY KEY, name TEXT, status TEXT)');
|
|
392
|
-
db.exec(\"INSERT INTO sandboxes (name, status) VALUES ('sandbox-1', 'running')\");
|
|
393
|
-
console.log(db.prepare('SELECT * FROM sandboxes').all());
|
|
394
|
-
"
|
|
395
|
-
|
|
396
|
-
- name: Build Sandbox Image
|
|
397
|
-
run: docker build -t sandbox-${{ github.run_id }}:latest .
|
|
398
|
-
|
|
399
|
-
- name: Deploy Sandbox
|
|
400
|
-
run: |
|
|
401
|
-
docker run -d \
|
|
402
|
-
--name sandbox-${{ github.run_id }} \
|
|
403
|
-
--memory=8g --cpus=4 \
|
|
404
|
-
-v /mnt/sandbox-ram:/workspace \
|
|
405
|
-
sandbox-${{ github.run_id }}:latest
|
|
406
|
-
Passo 12: GitHub Actions (grátis para público)
|
|
407
|
-
# .github/workflows/sandbox-deploy.yml
|
|
408
|
-
name: Deploy Sandbox
|
|
409
|
-
on:
|
|
410
|
-
schedule:
|
|
411
|
-
- cron: '0 */6 * * *' # A cada 6 horas
|
|
412
|
-
workflow_dispatch:
|
|
413
|
-
|
|
414
|
-
jobs:
|
|
415
|
-
deploy:
|
|
416
|
-
runs-on: ubuntu-latest
|
|
417
|
-
steps:
|
|
418
|
-
- uses: actions/checkout@v4
|
|
419
|
-
|
|
420
|
-
- name: Setup zRAM
|
|
421
|
-
run: |
|
|
422
|
-
sudo modprobe zram
|
|
423
|
-
sudo zramctl /dev/zram0 --algorithm zstd --size 4G
|
|
424
|
-
sudo mkswap /dev/zram0 && sudo swapon /dev/zram0
|
|
425
|
-
|
|
426
|
-
- name: Create Memory-Backed Sandbox
|
|
427
|
-
run: |
|
|
428
|
-
sudo mount -t tmpfs -o size=4G tmpfs /mnt/sandbox-ram
|
|
429
|
-
docker run -d \
|
|
430
|
-
--name sandbox-${{ github.run_id }} \
|
|
431
|
-
--memory=8g --cpus=4 \
|
|
432
|
-
-v /mnt/sandbox-ram:/workspace \
|
|
433
|
-
sandbox-base:latest
|
|
434
|
-
|
|
435
|
-
- name: Upload State to Artifacts
|
|
436
|
-
uses: actions/upload-artifact@v4
|
|
437
|
-
with:
|
|
438
|
-
name: sandbox-state
|
|
439
|
-
path: /mnt/sandbox-ram/
|
|
440
|
-
retention-days: 1
|
|
441
|
-
|
|
442
|
-
PARTE 6: CDN para Execução Instantânea
|
|
443
|
-
Passo 13: esm.sh + use-m (Zero Install)
|
|
444
|
-
<!-- index.html - Executar qualquer npm package sem instalar -->
|
|
445
|
-
<script type="module">
|
|
446
|
-
// Carregar memfs do CDN
|
|
447
|
-
const { Volume } = await import('https://esm.sh/memfs@4.0.0');
|
|
448
|
-
const vol = new Volume();
|
|
449
|
-
|
|
450
|
-
// Carregar better-sqlite3 do CDN
|
|
451
|
-
const Database = (await import('https://esm.sh/better-sqlite3@11.0.0')).default;
|
|
452
|
-
const db = new Database(':memory:');
|
|
453
|
-
|
|
454
|
-
// Criar tabela
|
|
455
|
-
db.exec('CREATE TABLE test (id INTEGER PRIMARY KEY, name TEXT)');
|
|
456
|
-
db.exec("INSERT INTO test (name) VALUES ('hello from RAM')");
|
|
457
|
-
console.log(db.prepare('SELECT * FROM test').all());
|
|
458
|
-
</script>
|
|
459
|
-
|
|
460
|
-
<!-- use-m: Dynamic package loader -->
|
|
461
|
-
<script type="module">
|
|
462
|
-
async function loadUse(sources = [
|
|
463
|
-
'https://unpkg.com/use-m/src/use.js',
|
|
464
|
-
'https://cdn.jsdelivr.net/npm/use-m/src/use.js',
|
|
465
|
-
'https://esm.sh/use-m/src/use.js',
|
|
466
|
-
]) {
|
|
467
|
-
for (const url of sources) {
|
|
468
|
-
try {
|
|
469
|
-
const response = await fetch(url);
|
|
470
|
-
if (!response.ok) throw new Error(`HTTP ${response.status}`);
|
|
471
|
-
const source = await response.text();
|
|
472
|
-
const exported = eval(source);
|
|
473
|
-
if (exported?.use) return exported.use;
|
|
474
|
-
} catch (e) { continue; }
|
|
475
|
-
}
|
|
476
|
-
throw new Error('Failed to load use-m');
|
|
477
|
-
}
|
|
478
|
-
|
|
479
|
-
const use = await loadUse();
|
|
480
|
-
const _ = await use('lodash@4.17.21');
|
|
481
|
-
console.log(_.chunk([1,2,3,4,5], 2)); // [[1,2],[3,4],[5]]
|
|
482
|
-
</script>
|
|
483
|
-
|
|
484
|
-
PARTE 7: Infraestrutura AI Gratuita
|
|
485
|
-
Passo 14: HuggingFace Free Inference
|
|
486
|
-
// src/ai/huggingface.ts
|
|
487
|
-
import { InferenceClient } from '@huggingface/inference';
|
|
488
|
-
|
|
489
|
-
const client = new InferenceClient(process.env.HF_TOKEN);
|
|
490
|
-
|
|
491
|
-
// Text generation (grátis, rate-limited)
|
|
492
|
-
const response = await client.textGeneration({
|
|
493
|
-
model: 'gpt2',
|
|
494
|
-
inputs: 'The future of AI is',
|
|
495
|
-
parameters: { max_new_tokens: 100 }
|
|
496
|
-
});
|
|
497
|
-
|
|
498
|
-
// Embeddings (grátis)
|
|
499
|
-
const embeddings = await client.featureExtraction({
|
|
500
|
-
model: 'sentence-transformers/all-MiniLM-L6-v2',
|
|
501
|
-
inputs: 'This is a test sentence'
|
|
502
|
-
});
|
|
503
|
-
Passo 15: Kaggle GPU Gratuito
|
|
504
|
-
// src/ai/kaggle-gpu.ts
|
|
505
|
-
import { execSync } from 'child_process';
|
|
506
|
-
|
|
507
|
-
// Kaggle: 30h/semana GPU T4 grátis, 30h/semana GPU P100
|
|
508
|
-
// Usar via CLI
|
|
509
|
-
const kaggleScript = `
|
|
510
|
-
!pip install -q transformers torch
|
|
511
|
-
from transformers import pipeline
|
|
512
|
-
generator = pipeline('text-generation', model='gpt2', device=0)
|
|
513
|
-
print(generator("Hello", max_length=50))
|
|
514
|
-
`;
|
|
515
|
-
|
|
516
|
-
// Push notebook para Kaggle
|
|
517
|
-
execSync(`
|
|
518
|
-
kaggle kernels push \
|
|
519
|
-
--id myuser/my-kernel \
|
|
520
|
-
--type notebook \
|
|
521
|
-
--enable-gpu \
|
|
522
|
-
--source-file notebook.ipynb
|
|
523
|
-
`);
|
|
524
|
-
Passo 16: ModelScope Free (2000 chamadas/dia)
|
|
525
|
-
// src/ai/modelscope.ts
|
|
526
|
-
// OpenAI-compatible API: https://api-inference.modelscope.cn/v1
|
|
527
|
-
|
|
528
|
-
import OpenAI from 'openai';
|
|
529
|
-
|
|
530
|
-
const client = new OpenAI({
|
|
531
|
-
apiKey: process.env.MODELSCOPE_API_KEY,
|
|
532
|
-
baseURL: 'https://api-inference.modelscope.cn/v1'
|
|
533
|
-
});
|
|
534
|
-
|
|
535
|
-
// Qwen3.5, DeepSeek, GLM - tudo grátis
|
|
536
|
-
const response = await client.chat.completions.create({
|
|
537
|
-
model: 'Qwen/Qwen3.5-27B',
|
|
538
|
-
messages: [{ role: 'user', content: 'Hello!' }]
|
|
539
|
-
});
|
|
540
|
-
|
|
541
|
-
PARTE 8: Projeto Principal (npm package)
|
|
542
|
-
Passo 17: Estrutura do Projeto
|
|
543
|
-
sandbox-memory-platform/
|
|
544
|
-
├── package.json
|
|
545
|
-
├── tsconfig.json
|
|
546
|
-
├── src/
|
|
547
|
-
│ ├── index.ts # Entry point
|
|
548
|
-
│ ├── memory-bridge.ts # Storage → RAM conversion
|
|
549
|
-
│ ├── sandbox-runner.ts # Runner management
|
|
550
|
-
│ ├── orm-memory.ts # Drizzle/Prisma in-memory
|
|
551
|
-
│ ├── pipelines/
|
|
552
|
-
│ │ ├── forgejo.ts # Forgejo Actions integration
|
|
553
|
-
│ │ ├── github.ts # GitHub Actions integration
|
|
554
|
-
│ │ └── gitlab.ts # GitLab CI integration
|
|
555
|
-
│ ├── ai/
|
|
556
|
-
│ │ ├── huggingface.ts # HuggingFace free inference
|
|
557
|
-
│ │ ├── kaggle.ts # Kaggle GPU free tier
|
|
558
|
-
│ │ └── modelscope.ts # ModelScope 2000 req/day
|
|
559
|
-
│ └── cdn-loader.ts # esm.sh/jsdelivr loader
|
|
560
|
-
├── .github/workflows/
|
|
561
|
-
│ └── sandbox.yml # Self CI/CD
|
|
562
|
-
├── .forgejo/workflows/
|
|
563
|
-
│ └── sandbox.yml # Forgejo CI/CD
|
|
564
|
-
└── Dockerfile
|
|
565
|
-
Passo 18: package.json
|
|
566
|
-
{
|
|
567
|
-
"name": "@yourorg/sandbox-memory-platform",
|
|
568
|
-
"version": "1.0.0",
|
|
569
|
-
"type": "module",
|
|
570
|
-
"main": "dist/index.js",
|
|
571
|
-
"types": "dist/index.d.ts",
|
|
572
|
-
"exports": {
|
|
573
|
-
".": "./dist/index.js",
|
|
574
|
-
"./memory-bridge": "./dist/memory-bridge.js",
|
|
575
|
-
"./orm-memory": "./dist/orm-memory.js",
|
|
576
|
-
"./cdn-loader": "./dist/cdn-loader.js"
|
|
577
|
-
},
|
|
578
|
-
"scripts": {
|
|
579
|
-
"build": "tsc",
|
|
580
|
-
"dev": "tsx watch src/index.ts",
|
|
581
|
-
"test": "vitest",
|
|
582
|
-
"sandbox:create": "tsx src/cli.ts create",
|
|
583
|
-
"sandbox:list": "tsx src/cli.ts list",
|
|
584
|
-
"sandbox:destroy": "tsx src/cli.ts destroy"
|
|
585
|
-
},
|
|
586
|
-
"dependencies": {
|
|
587
|
-
"memfs": "^4.0.0",
|
|
588
|
-
"better-sqlite3": "^11.0.0",
|
|
589
|
-
"drizzle-orm": "^0.28.0",
|
|
590
|
-
"@electric-sql/pglite": "^0.2.0",
|
|
591
|
-
"@libsql/client": "^0.6.0",
|
|
592
|
-
"dockerode": "^3.3.0",
|
|
593
|
-
"ws": "^8.16.0",
|
|
594
|
-
"@huggingface/inference": "^3.0.0",
|
|
595
|
-
"openai": "^4.0.0"
|
|
596
|
-
},
|
|
597
|
-
"peerDependencies": {
|
|
598
|
-
"drizzle-orm": "^0.28.0",
|
|
599
|
-
"mysql2": "^3.6.0",
|
|
600
|
-
"@prisma/client": "^5.0.0"
|
|
601
|
-
}
|
|
602
|
-
}
|
|
603
|
-
Passo 19: Dockerfile Multi-stage
|
|
604
|
-
FROM node:20-bookworm AS builder
|
|
605
|
-
WORKDIR /app
|
|
606
|
-
COPY package*.json ./
|
|
607
|
-
RUN npm ci
|
|
608
|
-
COPY . .
|
|
609
|
-
RUN npm run build
|
|
610
|
-
|
|
611
|
-
FROM node:20-bookworm-slim AS runtime
|
|
612
|
-
RUN apt-get update && apt-get install -y \
|
|
613
|
-
zram-tools \
|
|
614
|
-
docker.io \
|
|
615
|
-
&& rm -rf /var/lib/apt/lists/*
|
|
616
|
-
|
|
617
|
-
# Setup zRAM
|
|
618
|
-
RUN modprobe zram && \
|
|
619
|
-
zramctl /dev/zram0 --algorithm zstd --size 4G && \
|
|
620
|
-
mkswap /dev/zram0 && swapon /dev/zram0
|
|
621
|
-
|
|
622
|
-
WORKDIR /app
|
|
623
|
-
COPY --from=builder /app/dist ./dist
|
|
624
|
-
COPY --from=builder /app/node_modules ./node_modules
|
|
625
|
-
COPY --from=builder /app/package.json ./
|
|
626
|
-
|
|
627
|
-
EXPOSE 3000
|
|
628
|
-
CMD ["node", "dist/index.js"]
|
|
629
|
-
|
|
630
|
-
PARTE 9: Deploy Multi-Plataforma
|
|
631
|
-
Passo 20: Deploy no Codeberg + HuggingFace Spaces
|
|
632
|
-
# HuggingFace Spaces (grátis para demos)
|
|
633
|
-
# .github/workflows/deploy-hf.yml
|
|
634
|
-
name: Deploy to HuggingFace Spaces
|
|
635
|
-
on:
|
|
636
|
-
push:
|
|
637
|
-
branches: [main]
|
|
638
|
-
|
|
639
|
-
jobs:
|
|
640
|
-
deploy:
|
|
641
|
-
runs-on: ubuntu-latest
|
|
642
|
-
steps:
|
|
643
|
-
- uses: actions/checkout@v4
|
|
644
|
-
- uses: huggingface/gh-actions-git-lfs-push@v1
|
|
645
|
-
env:
|
|
646
|
-
HF_TOKEN: ${{ secrets.HF_TOKEN }}
|
|
647
|
-
|
|
648
|
-
RESUMO: O que Usar em Cada Cenário
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
Cenário
|
|
653
|
-
Solução
|
|
654
|
-
Infraestrutura
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
Converter disco → RAM
|
|
659
|
-
zRAM + tmpfs + memfs
|
|
660
|
-
Kernel Linux
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
Sandbox isolado (sem KVM)
|
|
664
|
-
gVisor runsc
|
|
665
|
-
Docker
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
Sandbox isolado (com KVM)
|
|
669
|
-
Firecracker microVM
|
|
670
|
-
KVM
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
CI/CD gratuito (self-hosted)
|
|
674
|
-
Forgejo Actions
|
|
675
|
-
Codeberg/Gitea
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
CI/CD gratuito (cloud)
|
|
679
|
-
GitHub Actions (público)
|
|
680
|
-
GitHub
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
ORM em memória
|
|
684
|
-
Drizzle + SQLite WASM
|
|
685
|
-
Browser/Node.js
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
Postgres em memória
|
|
689
|
-
PGLite (WASM)
|
|
690
|
-
Browser/Node.js
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
AI inference grátis
|
|
694
|
-
HuggingFace + ModelScope
|
|
695
|
-
Free tiers
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
GPU grátis
|
|
699
|
-
Kaggle (30h/semana T4)
|
|
700
|
-
Kaggle
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
Execução sem install
|
|
704
|
-
esm.sh + use-m
|
|
705
|
-
CDN
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
Runner efêmero
|
|
709
|
-
ephemerd ou ez-gh-actions
|
|
710
|
-
MIT
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
MACETES IMPORTANTES
|
|
715
|
-
|
|
716
|
-
zRAM: Comprime dados 2-3x, transforma 4GB em 8-12GB efetivos
|
|
717
|
-
tmpfs: Filesystem 100% em RAM, zero I/O de disco
|
|
718
|
-
memfs: Filesystem in-memory do Node.js, compatível com fs API
|
|
719
|
-
SQLite :memory:: Banco de dados 100% em RAM, zero persistência
|
|
720
|
-
PGLite: Postgres compilado para WASM, roda no browser
|
|
721
|
-
esm.sh: Qualquer npm package via URL, sem instalar
|
|
722
|
-
Forgejo: GitHub Actions compatível, self-hosted, sem limites
|
|
723
|
-
Kaggle: 30h/semana GPU T4 grátis via notebook
|
|
724
|
-
ModelScope: 2000 chamadas/dia grátis, API OpenAI-compatible
|
|
725
|
-
HuggingFace: Inference grátis para modelos <10B params
|
|
726
|
-
|
|
727
|
-
Quer que eu aprofunde alguma parte específica ou crie mais scripts?
|