@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,531 +0,0 @@
|
|
|
1
|
-
# assistant
|
|
2
|
-
|
|
3
|
-
[Thinking] The user is asking me to research how to create a platform with container sandboxes using free infrastructure from Git hosting services (GitHub, GitLab, Forgejo, Gitea, Codeberg, etc.) and also mentioning Hugging Face, Kaggle, ModelScope, etc. They want to understand:
|
|
4
|
-
|
|
5
|
-
How to use free CI/CD pipelines from these platforms to run sandboxes with Linux, Docker, RAM, etc.
|
|
6
|
-
Whether it's possible to set up cron jobs, timelines, and pipelines that create sandboxes
|
|
7
|
-
How to leverage free compute resources (RAM, CPU) from these platforms
|
|
8
|
-
The technical implementation details
|
|
9
|
-
|
|
10
|
-
They also mention wanting to replicate something like "Zai" infrastructure with memory (RAM) and system resources.
|
|
11
|
-
Let me research this topic to provide comprehensive information. Since I'm in read-only mode, I can search the web and gather information to create a plan.
|
|
12
|
-
Let me search for information about:
|
|
13
|
-
|
|
14
|
-
Using GitHub Actions/GitLab CI/Forgejo Actions for running Docker containers with resource limits
|
|
15
|
-
Free tier limitations for CI/CD on these platforms
|
|
16
|
-
Alternative approaches for creating sandboxes using free infrastructure
|
|
17
|
-
Tools like Act (for running GitHub Actions locally), Woodpecker CI, etc.
|
|
18
|
-
|
|
19
|
-
[Thinking] Let me search for more specific information about the platforms mentioned and how to use them for sandbox/container execution.
|
|
20
|
-
|
|
21
|
-
[Thinking] Now let me search for more information about self-hosted runners and alternatives, as well as how to use these platforms for sandbox execution.
|
|
22
|
-
|
|
23
|
-
[Thinking] Now I have a good understanding of the landscape. Let me also search for information about ModelScope and other platforms to give a complete picture.
|
|
24
|
-
|
|
25
|
-
[Thinking] Now I have a comprehensive understanding of the landscape. Let me create a detailed plan for the user. The user wants to build a platform with container sandboxes using free infrastructure from various hosting services.
|
|
26
|
-
Let me organize the information and create a comprehensive plan.
|
|
27
|
-
|
|
28
|
-
Based on my research, here's a comprehensive plan for building a sandbox platform using free infrastructure from these services:
|
|
29
|
-
|
|
30
|
-
Plataforma de Sandbox com Infraestrutura Gratuita
|
|
31
|
-
1. Visão Geral das Opções
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
Plataforma
|
|
36
|
-
RAM Gratuita
|
|
37
|
-
CPU
|
|
38
|
-
Disk
|
|
39
|
-
Tempo Limite
|
|
40
|
-
Melhor Para
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
GitHub Actions
|
|
45
|
-
7GB
|
|
46
|
-
2 cores
|
|
47
|
-
14GB
|
|
48
|
-
6h/job
|
|
49
|
-
Pipelines CI/CD
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
GitLab CI
|
|
53
|
-
8GB
|
|
54
|
-
2 cores
|
|
55
|
-
30GB
|
|
56
|
-
50min/job
|
|
57
|
-
Pipelines completos
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
Codeberg (Woodpecker)
|
|
61
|
-
2-4GB
|
|
62
|
-
2-4 cores
|
|
63
|
-
-
|
|
64
|
-
2-4min
|
|
65
|
-
Builds leves
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
Hugging Face Spaces
|
|
69
|
-
16GB
|
|
70
|
-
2 cores
|
|
71
|
-
50GB
|
|
72
|
-
Sem limite*
|
|
73
|
-
Apps Docker
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
Kaggle Notebooks
|
|
77
|
-
29-30GB
|
|
78
|
-
4 cores
|
|
79
|
-
20GB
|
|
80
|
-
12h/session
|
|
81
|
-
ML/AI
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
Forgejo/Gitea (self-hosted)
|
|
85
|
-
Ilimitado**
|
|
86
|
-
Ilimitado**
|
|
87
|
-
Ilimitado**
|
|
88
|
-
Sem limite
|
|
89
|
-
Infraestrutura própria
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
*HF Free dorme após 48h de inatividade
|
|
93
|
-
**Depende do hardware do host
|
|
94
|
-
|
|
95
|
-
2. Arquitetura Recomendada
|
|
96
|
-
┌─────────────────────────────────────────────────────────┐
|
|
97
|
-
│ SEU FRONTEND │
|
|
98
|
-
│ (Web UI / API / CLI) │
|
|
99
|
-
└──────────────────────┬──────────────────────────────────┘
|
|
100
|
-
│
|
|
101
|
-
┌──────────────┼──────────────┐
|
|
102
|
-
▼ ▼ ▼
|
|
103
|
-
┌───────────────┐ ┌──────────┐ ┌───────────────────┐
|
|
104
|
-
│ GitHub │ │ GitLab │ │ Gitea/Forgejo │
|
|
105
|
-
│ Actions │ │ CI/CD │ │ Actions (self) │
|
|
106
|
-
│ (2000min/mês)│ │(400min/m)│ │ (ilimitado) │
|
|
107
|
-
└───────┬───────┘ └────┬─────┘ └─────────┬─────────┘
|
|
108
|
-
│ │ │
|
|
109
|
-
▼ ▼ ▼
|
|
110
|
-
┌─────────────────────────────────────────────────────────┐
|
|
111
|
-
│ DOCKER SANDBOX CONTAINERS │
|
|
112
|
-
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
|
|
113
|
-
│ │ User A │ │ User B │ │ User C │ │ User D │ │
|
|
114
|
-
│ │ 8GB RAM │ │ 4GB RAM │ │ 8GB RAM │ │ 2GB RAM │ │
|
|
115
|
-
│ │ Linux │ │ Linux │ │ Linux │ │ Linux │ │
|
|
116
|
-
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
|
|
117
|
-
└─────────────────────────────────────────────────────────┘
|
|
118
|
-
|
|
119
|
-
3. Implementação Passo a Passo
|
|
120
|
-
Opção A: Self-Hosted (Mais Poderoso)
|
|
121
|
-
Stack:
|
|
122
|
-
|
|
123
|
-
Gitea ou Forgejo (Git hosting + CI/CD)
|
|
124
|
-
Woodpecker CI ou Gitea Actions (pipelines)
|
|
125
|
-
Docker (sandboxes)
|
|
126
|
-
SQLite/PostgreSQL/MySQL (banco de dados via Drizzle ORM ou Prisma)
|
|
127
|
-
|
|
128
|
-
Estrutura de Scripts:
|
|
129
|
-
sandbox-platform/
|
|
130
|
-
├── docker-compose.yml # Orquestração principal
|
|
131
|
-
├── gitea/
|
|
132
|
-
│ ├── app.ini # Config do Gitea
|
|
133
|
-
│ └── Dockerfile
|
|
134
|
-
├── runner/
|
|
135
|
-
│ ├── config.yaml # Config do runner (limits de RAM/CPU)
|
|
136
|
-
│ ├── Dockerfile
|
|
137
|
-
│ └── setup.sh
|
|
138
|
-
├── sandbox/
|
|
139
|
-
│ ├── Dockerfile # Imagem base das sandboxes
|
|
140
|
-
│ ├── docker-entrypoint.sh # Script de inicialização
|
|
141
|
-
│ └── sandbox-manager.js # Gerencia criação/remoção
|
|
142
|
-
├── api/
|
|
143
|
-
│ ├── server.js # API Node.js
|
|
144
|
-
│ ├── routes/
|
|
145
|
-
│ │ ├── sandbox.js # CRUD de sandboxes
|
|
146
|
-
│ │ ├── pipeline.js # Gerenciamento de pipelines
|
|
147
|
-
│ │ └── cron.js # Cron jobs
|
|
148
|
-
│ └── db/
|
|
149
|
-
│ ├── schema.ts # Drizzle ORM schema
|
|
150
|
-
│ └── index.ts
|
|
151
|
-
├── workflows/
|
|
152
|
-
│ ├── .gitea/workflows/
|
|
153
|
-
│ │ ├── create-sandbox.yml # Workflow de criação
|
|
154
|
-
│ │ ├── destroy-sandbox.yml # Workflow de destruição
|
|
155
|
-
│ │ └── cron-cleanup.yml # Limpeza periódica
|
|
156
|
-
│ └── .woodpecker/
|
|
157
|
-
│ └── sandbox.yml
|
|
158
|
-
└── package.json
|
|
159
|
-
docker-compose.yml:
|
|
160
|
-
version: '3.8'
|
|
161
|
-
|
|
162
|
-
services:
|
|
163
|
-
gitea:
|
|
164
|
-
image: gitea/gitea:latest
|
|
165
|
-
container_name: gitea
|
|
166
|
-
ports:
|
|
167
|
-
- "3000:3000"
|
|
168
|
-
- "2222:22"
|
|
169
|
-
volumes:
|
|
170
|
-
- gitea_data:/data
|
|
171
|
-
- ./gitea/app.ini:/data/gitea/conf/app.ini:ro
|
|
172
|
-
environment:
|
|
173
|
-
- USER_UID=1000
|
|
174
|
-
- USER_GID=1000
|
|
175
|
-
restart: unless-stopped
|
|
176
|
-
|
|
177
|
-
woodpecker-server:
|
|
178
|
-
image: woodpeckerci/woodpecker-server:latest
|
|
179
|
-
container_name: woodpecker-server
|
|
180
|
-
ports:
|
|
181
|
-
- "8000:8000"
|
|
182
|
-
volumes:
|
|
183
|
-
- woodpecker_data:/var/lib/woodpecker
|
|
184
|
-
environment:
|
|
185
|
-
- WOODPECKER_OPEN=true
|
|
186
|
-
- WOODPECKER_AGENT_SECRET=${AGENT_SECRET}
|
|
187
|
-
- WOODPECKER_GITEA=true
|
|
188
|
-
- WOODPECKER_GITEA_URL=http://gitea:3000
|
|
189
|
-
depends_on:
|
|
190
|
-
- gitea
|
|
191
|
-
restart: unless-stopped
|
|
192
|
-
|
|
193
|
-
woodpecker-agent:
|
|
194
|
-
image: woodpeckerci/woodpecker-agent:latest
|
|
195
|
-
container_name: woodpecker-agent
|
|
196
|
-
volumes:
|
|
197
|
-
- /var/run/docker.sock:/var/run/docker.sock
|
|
198
|
-
environment:
|
|
199
|
-
- WOODPECKER_SERVER=woodpecker-server:9000
|
|
200
|
-
- WOODPECKER_AGENT_SECRET=${AGENT_SECRET}
|
|
201
|
-
depends_on:
|
|
202
|
-
- woodpecker-server
|
|
203
|
-
restart: unless-stopped
|
|
204
|
-
|
|
205
|
-
api:
|
|
206
|
-
build: ./api
|
|
207
|
-
container_name: api
|
|
208
|
-
ports:
|
|
209
|
-
- "4000:4000"
|
|
210
|
-
volumes:
|
|
211
|
-
- ./api:/app
|
|
212
|
-
- /var/run/docker.sock:/var/run/docker.sock
|
|
213
|
-
environment:
|
|
214
|
-
- DATABASE_URL=sqlite:///data/sandboxes.db
|
|
215
|
-
- GITEA_URL=http://gitea:3000
|
|
216
|
-
- GITEA_TOKEN=${GITEA_TOKEN}
|
|
217
|
-
depends_on:
|
|
218
|
-
- gitea
|
|
219
|
-
restart: unless-stopped
|
|
220
|
-
|
|
221
|
-
volumes:
|
|
222
|
-
gitea_data:
|
|
223
|
-
woodpecker_data:
|
|
224
|
-
Runner Config (config.yaml) - Limites de RAM/CPU:
|
|
225
|
-
runner:
|
|
226
|
-
capacity: 2 # Jobs simultâneos
|
|
227
|
-
labels:
|
|
228
|
-
- "sandbox-8gb:docker://sandbox-image:latest"
|
|
229
|
-
- "sandbox-4gb:docker://sandbox-image:latest"
|
|
230
|
-
- "sandbox-2gb:docker://sandbox-image:latest"
|
|
231
|
-
|
|
232
|
-
container:
|
|
233
|
-
# Limites globais por job
|
|
234
|
-
options: "--memory=8g --cpus=4 --pids-limit=512"
|
|
235
|
-
docker_host: "-"
|
|
236
|
-
valid_volumes:
|
|
237
|
-
- '**'
|
|
238
|
-
|
|
239
|
-
cache:
|
|
240
|
-
enabled: true
|
|
241
|
-
dir: '/tmp/cache'
|
|
242
|
-
host: ''
|
|
243
|
-
port: 0
|
|
244
|
-
Sandbox Dockerfile:
|
|
245
|
-
FROM ubuntu:22.04
|
|
246
|
-
|
|
247
|
-
RUN apt-get update && apt-get install -y \
|
|
248
|
-
curl wget git vim nano htop \
|
|
249
|
-
nodejs npm python3 python3-pip \
|
|
250
|
-
docker.io \
|
|
251
|
-
&& rm -rf /var/lib/apt/lists/*
|
|
252
|
-
|
|
253
|
-
# Cria usuário non-root
|
|
254
|
-
RUN useradd -m -s /bin/bash sandbox
|
|
255
|
-
USER sandbox
|
|
256
|
-
WORKDIR /home/sandbox
|
|
257
|
-
|
|
258
|
-
# Script de inicialização
|
|
259
|
-
COPY docker-entrypoint.sh /usr/local/bin/
|
|
260
|
-
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
|
|
261
|
-
|
|
262
|
-
ENTRYPOINT ["docker-entrypoint.sh"]
|
|
263
|
-
docker-entrypoint.sh:
|
|
264
|
-
#!/bin/bash
|
|
265
|
-
set -e
|
|
266
|
-
|
|
267
|
-
# Configura limites de memória se definidos
|
|
268
|
-
if [ -n "$SANDBOX_MEMORY_LIMIT" ]; then
|
|
269
|
-
echo "Memory limit: $SANDBOX_MEMORY_LIMIT"
|
|
270
|
-
fi
|
|
271
|
-
|
|
272
|
-
# Inicia o shell interativo ou comando customizado
|
|
273
|
-
if [ $# -eq 0 ]; then
|
|
274
|
-
exec /bin/bash
|
|
275
|
-
else
|
|
276
|
-
exec "$@"
|
|
277
|
-
fi
|
|
278
|
-
API - sandbox-manager.js:
|
|
279
|
-
const Docker = require('dockerode');
|
|
280
|
-
const docker = new Docker({ socketPath: '/var/run/docker.sock' });
|
|
281
|
-
|
|
282
|
-
class SandboxManager {
|
|
283
|
-
async create(userId, options = {}) {
|
|
284
|
-
const {
|
|
285
|
-
memory = '4g',
|
|
286
|
-
cpus = 2,
|
|
287
|
-
disk = '10g',
|
|
288
|
-
image = 'sandbox-image:latest'
|
|
289
|
-
} = options;
|
|
290
|
-
|
|
291
|
-
const container = await docker.createContainer({
|
|
292
|
-
Image: image,
|
|
293
|
-
HostConfig: {
|
|
294
|
-
Memory: this.parseMemory(memory),
|
|
295
|
-
NanoCpus: cpus * 1e9,
|
|
296
|
-
PidsLimit: 512,
|
|
297
|
-
Privileged: false,
|
|
298
|
-
SecurityOpt: ['no-new-privileges'],
|
|
299
|
-
Binds: [`/data/sandboxes/${userId}:/home/sandbox/data`]
|
|
300
|
-
},
|
|
301
|
-
Env: [
|
|
302
|
-
`SANDBOX_MEMORY_LIMIT=${memory}`,
|
|
303
|
-
`SANDBOX_USER=${userId}`
|
|
304
|
-
],
|
|
305
|
-
Labels: {
|
|
306
|
-
'sandbox.user': userId,
|
|
307
|
-
'sandbox.created': new Date().toISOString()
|
|
308
|
-
}
|
|
309
|
-
});
|
|
310
|
-
|
|
311
|
-
await container.start();
|
|
312
|
-
return { id: container.id, status: 'running' };
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
async destroy(containerId) {
|
|
316
|
-
const container = docker.getContainer(containerId);
|
|
317
|
-
await container.stop();
|
|
318
|
-
await container.remove();
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
async list(userId) {
|
|
322
|
-
const containers = await docker.listContainers({
|
|
323
|
-
filters: { label: [`sandbox.user=${userId}`] }
|
|
324
|
-
});
|
|
325
|
-
return containers;
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
parseMemory(mem) {
|
|
329
|
-
const units = { 'b': 1, 'k': 1024, 'm': 1024**2, 'g': 1024**3 };
|
|
330
|
-
const match = mem.match(/^(\d+)([bkmg])$/i);
|
|
331
|
-
return parseInt(match[1]) * (units[match[2].toLowerCase()] || 1);
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
module.exports = new SandboxManager();
|
|
336
|
-
Cron Job - Cleanup (workflows/cron-cleanup.yml):
|
|
337
|
-
name: Cleanup Old Sandboxes
|
|
338
|
-
|
|
339
|
-
on:
|
|
340
|
-
schedule:
|
|
341
|
-
- cron: '0 */6 * * *' # A cada 6 horas
|
|
342
|
-
|
|
343
|
-
jobs:
|
|
344
|
-
cleanup:
|
|
345
|
-
runs-on: sandbox-2gb
|
|
346
|
-
steps:
|
|
347
|
-
- name: Remove sandboxes antigas
|
|
348
|
-
run: |
|
|
349
|
-
docker ps -a --filter "label=sandbox" --format "{{.ID}} {{.CreatedAt}}" | \
|
|
350
|
-
while read id created; do
|
|
351
|
-
# Remove sandboxes com mais de 24h
|
|
352
|
-
docker rm -f $id
|
|
353
|
-
done
|
|
354
|
-
|
|
355
|
-
- name: Limpa imagens não usadas
|
|
356
|
-
run: docker image prune -f
|
|
357
|
-
|
|
358
|
-
Opção B: Usando Infraestrutura Gratuita (Sem Self-Host)
|
|
359
|
-
Estratégia: GitHub/GitLab como "orquestrador"
|
|
360
|
-
# .github/workflows/create-sandbox.yml
|
|
361
|
-
name: Create Sandbox
|
|
362
|
-
|
|
363
|
-
on:
|
|
364
|
-
workflow_dispatch:
|
|
365
|
-
inputs:
|
|
366
|
-
user_id:
|
|
367
|
-
description: 'User ID'
|
|
368
|
-
required: true
|
|
369
|
-
memory:
|
|
370
|
-
description: 'Memory (2g, 4g, 8g)'
|
|
371
|
-
default: '4g'
|
|
372
|
-
cpu:
|
|
373
|
-
description: 'CPU cores'
|
|
374
|
-
default: '2'
|
|
375
|
-
|
|
376
|
-
jobs:
|
|
377
|
-
create-sandbox:
|
|
378
|
-
runs-on: ubuntu-latest
|
|
379
|
-
container:
|
|
380
|
-
image: docker:latest
|
|
381
|
-
options: --privileged
|
|
382
|
-
steps:
|
|
383
|
-
- name: Setup Docker
|
|
384
|
-
uses: docker/setup-buildx-action@v3
|
|
385
|
-
|
|
386
|
-
- name: Create Sandbox Container
|
|
387
|
-
run: |
|
|
388
|
-
docker run -d \
|
|
389
|
-
--name sandbox-${{ inputs.user_id }} \
|
|
390
|
-
--memory ${{ inputs.memory }} \
|
|
391
|
-
--cpus ${{ inputs.cpu }} \
|
|
392
|
-
--label "user=${{ inputs.user_id }}" \
|
|
393
|
-
--label "created=$(date -Iseconds)" \
|
|
394
|
-
-v /data/${{ inputs.user_id }}:/home/sandbox/data \
|
|
395
|
-
sandbox-image:latest
|
|
396
|
-
|
|
397
|
-
- name: Expose SSH (opcional)
|
|
398
|
-
run: |
|
|
399
|
-
# Configura SSH tunnel via cloudflared ou ngrok
|
|
400
|
-
docker exec sandbox-${{ inputs.user_id }} bash -c \
|
|
401
|
-
"curl -s https://cloudflared.com/cloudflared-linux-amd64 -o /usr/local/bin/cloudflared && \
|
|
402
|
-
cloudflared tunnel --url ssh://localhost:22"
|
|
403
|
-
|
|
404
|
-
- name: Output Connection Info
|
|
405
|
-
run: |
|
|
406
|
-
echo "### Sandbox Created" >> $GITHUB_STEP_SUMMARY
|
|
407
|
-
echo "- Container: sandbox-${{ inputs.user_id }}" | >> $GITHUB_STEP_SUMMARY
|
|
408
|
-
echo "- Memory: ${{ inputs.memory }}" >> $GITHUB_STEP_SUMMARY
|
|
409
|
-
echo "- CPU: ${{ inputs.cpu }}" >> $GITHUB_STEP_SUMMARY
|
|
410
|
-
Hugging Face Spaces (Docker Sandbox):
|
|
411
|
-
# HF Spaces aceitam Dockerfile diretamente
|
|
412
|
-
FROM ubuntu:22.04
|
|
413
|
-
|
|
414
|
-
RUN apt-get update && apt-get install -y \
|
|
415
|
-
curl wget git vim \
|
|
416
|
-
nodejs npm python3 python3-pip
|
|
417
|
-
|
|
418
|
-
# Expõe porta para web terminal
|
|
419
|
-
EXPOSE 7860
|
|
420
|
-
|
|
421
|
-
# Instala code-server (VS Code na web)
|
|
422
|
-
RUN curl -fsSL https://code-server.dev/install.sh | sh
|
|
423
|
-
CMD ["code-server", "--bind-agg", "0.0.0.0", "--port", "7860"]
|
|
424
|
-
|
|
425
|
-
4. Limites e Macetes
|
|
426
|
-
GitHub Actions (2000 min/mês grátis):
|
|
427
|
-
# Para maximizar minutos:
|
|
428
|
-
runs-on: ubuntu-latest # Não use macos/windows (10x mais caro)
|
|
429
|
-
# Public repos = ilimitado grátis
|
|
430
|
-
# Private repos = 2000 min/mês
|
|
431
|
-
GitLab CI (400 compute minutes grátis):
|
|
432
|
-
# Usar runner small (1x cost factor):
|
|
433
|
-
tags:
|
|
434
|
-
- saas-linux-small-amd64
|
|
435
|
-
# Evitar medium/large (2x-3x cost factor)
|
|
436
|
-
Codeberg Woodpecker (grátis para projetos públicos):
|
|
437
|
-
# Limites por job:
|
|
438
|
-
# tiny: 2 CPU, 2GB RAM, 2min runtime
|
|
439
|
-
# small: 4 CPU, 4GB RAM, 4min runtime
|
|
440
|
-
# Usar "lazy" runners para economizar
|
|
441
|
-
runs-on: codeberg-small
|
|
442
|
-
Hugging Face Spaces (16GB RAM grátis):
|
|
443
|
-
# CPU Basic: 2 vCPU, 16GB RAM, 50GB disk
|
|
444
|
-
# Dorme após 48h de inatividade
|
|
445
|
-
# Para manter vivo: cron job a cada 47h
|
|
446
|
-
Kaggle (29-30GB RAM grátis):
|
|
447
|
-
# 4 CPU cores, 30GB RAM
|
|
448
|
-
# Limite: 12h por sessão, 30h/semana (GPU)
|
|
449
|
-
# Usar kgz para controle via terminal
|
|
450
|
-
|
|
451
|
-
5. Database Schema (Drizzle ORM)
|
|
452
|
-
// db/schema.ts
|
|
453
|
-
import { sqliteTable, text, integer } from 'drizzle-orm/sqlite-core';
|
|
454
|
-
|
|
455
|
-
export const sandboxes = sqliteTable('sandboxes', {
|
|
456
|
-
id: text('id').primaryKey(),
|
|
457
|
-
userId: text('user_id').notNull(),
|
|
458
|
-
status: text('status').notNull(), // running, stopped, destroyed
|
|
459
|
-
containerId: text('container_id'),
|
|
460
|
-
memory: text('memory').default('4g'),
|
|
461
|
-
cpu: integer('cpu').default(2),
|
|
462
|
-
platform: text('platform'), // github, gitlab, gitea, hf
|
|
463
|
-
createdAt: integer('created_at', { mode: 'timestamp' }).notNull(),
|
|
464
|
-
expiresAt: integer('expires_at', { mode: 'timestamp' }),
|
|
465
|
-
});
|
|
466
|
-
|
|
467
|
-
export const pipelines = sqliteTable('pipelines', {
|
|
468
|
-
id: text('id').primaryKey(),
|
|
469
|
-
sandboxId: text('sandbox_id').references(() => sandboxes.id),
|
|
470
|
-
trigger: text('trigger').notNull(), // manual, cron, webhook
|
|
471
|
-
status: text('status').notNull(),
|
|
472
|
-
output: text('output'),
|
|
473
|
-
createdAt: integer('created_at', { mode: 'timestamp' }).notNull(),
|
|
474
|
-
});
|
|
475
|
-
|
|
476
|
-
6. Resumo das Possibilidades
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
Cenário
|
|
481
|
-
Viável?
|
|
482
|
-
Recomendação
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
Sandbox temporário (build/test)
|
|
487
|
-
Sim
|
|
488
|
-
GitHub/GitLab Actions
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
Sandbox persistente (desenvolvimento)
|
|
492
|
-
Parcial
|
|
493
|
-
HF Spaces + cron keep-alive
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
Sandbox com muita RAM (8GB+)
|
|
497
|
-
Sim
|
|
498
|
-
Kaggle (30GB) ou self-hosted
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
Sandbox com GPU
|
|
502
|
-
Sim
|
|
503
|
-
Kaggle (P100/T4 grátis) ou HF ZeroGPU
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
Sandbox ilimitado
|
|
507
|
-
Sim
|
|
508
|
-
Self-hosted Gitea/Forgejo
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
Pipeline automática
|
|
512
|
-
Sim
|
|
513
|
-
Todas suportam cron/webhooks
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
7. Próximos Passos Recomendados
|
|
518
|
-
|
|
519
|
-
Comece com Gitea + Woodpecker self-hosted (mais controle)
|
|
520
|
-
Use GitHub Actions para builds temporários (2000 min/mês grátis)
|
|
521
|
-
Hugging Face Spaces para apps web (16GB RAM grátis)
|
|
522
|
-
Kaggle para workloads pesados (30GB RAM + GPU grátis)
|
|
523
|
-
Implemente Drizzle ORM para gerenciar estado das sandboxes
|
|
524
|
-
Adicione cron jobs para cleanup automático
|
|
525
|
-
|
|
526
|
-
Quer que eu implemente alguma parte específica? Por exemplo:
|
|
527
|
-
|
|
528
|
-
O docker-compose.yml completo?
|
|
529
|
-
A API Node.js com Drizzle ORM?
|
|
530
|
-
Os workflows de CI/CD?
|
|
531
|
-
O gerenciador de sandboxes?
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
# assistant
|
|
2
|
-
|
|
3
|
-
[Thinking] The user wants me to research all the options mentioned and create a comprehensive todo list of research. They want me to look into:
|
|
4
|
-
|
|
5
|
-
Git hosting platforms: GitHub, GitLab, Forgejo, Gitea, Codeberg
|
|
6
|
-
ML/AI platforms: Hugging Face, Kaggle, ModelScope
|
|
7
|
-
Databases: Drizzle ORM, Prisma, MySQL2
|
|
8
|
-
Node.js, Python, Rust frameworks
|
|
9
|
-
Memory emulation/bridging (storage converted to RAM)
|
|
10
|
-
GPU emulation
|
|
11
|
-
Docker sandboxes
|
|
12
|
-
Pipelines, cron jobs, etc.
|
|
13
|
-
|
|
14
|
-
They also shared a link: https://opncd.ai/share/WUiQOiSM - let me fetch that first to understand what they're referencing.
|
|
15
|
-
Let me search for all these topics comprehensively.
|
|
16
|
-
|
|
17
|
-
[Thinking] The user shared a link to opncd.ai which appears to be an OpenCode instance. Let me search for more specific topics they mentioned:
|
|
18
|
-
|
|
19
|
-
Memory emulation/bridging (storage to RAM conversion)
|
|
20
|
-
GPU emulation
|
|
21
|
-
All the specific platforms mentioned
|
|
22
|
-
All the specific tools (Drizzle, Prisma, etc.)
|
|
23
|
-
|
|
24
|
-
Let me do comprehensive searches on each topic.
|
|
25
|
-
|
|
26
|
-
Vou pesquisar todas as opções citadas. Primeiro, vou acessar o link compartilhado e depois fazer buscas detalhadas de cada plataforma e tecnologia.
|