@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,340 +0,0 @@
|
|
|
1
|
-
# Saddle Computational Memory System
|
|
2
|
-
|
|
3
|
-
> Transform storage memory into computational memory (RAM, GPU).
|
|
4
|
-
> Unlimited memory through repository buckets and external storage.
|
|
5
|
-
|
|
6
|
-
## Overview
|
|
7
|
-
|
|
8
|
-
The saddle robot implements a unique computational memory
|
|
9
|
-
architecture that transforms storage memory (files, blobs,
|
|
10
|
-
assets in repositories) into computational memory (RAM, GPU
|
|
11
|
-
VRAM) for processing. This enables effectively unlimited
|
|
12
|
-
memory for AI agent operations.
|
|
13
|
-
|
|
14
|
-
## Memory Architecture
|
|
15
|
-
|
|
16
|
-
### Layer Diagram
|
|
17
|
-
|
|
18
|
-
```
|
|
19
|
-
┌─────────────────────────────────────────────────────┐
|
|
20
|
-
│ Computation Layer │
|
|
21
|
-
│ (RAM / GPU) │
|
|
22
|
-
│ │
|
|
23
|
-
│ Processing │ Inference │ Cache │
|
|
24
|
-
│ │ (ML Models) │ │
|
|
25
|
-
├─────────────────────────────────────────────────────┤
|
|
26
|
-
│ Memory Engine (Bridge) │
|
|
27
|
-
│ │
|
|
28
|
-
│ Load │ Transform │ Process │ Persist │
|
|
29
|
-
├─────────────────────────────────────────────────────┤
|
|
30
|
-
│ Storage Layer │
|
|
31
|
-
│ │
|
|
32
|
-
│ Repositories │ HF Buckets │ Kaggle │ S3 │
|
|
33
|
-
└─────────────────────────────────────────────────────┘
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
### Memory Transformation Flow
|
|
37
|
-
|
|
38
|
-
```
|
|
39
|
-
1. Storage Object (file/blob in repo)
|
|
40
|
-
│
|
|
41
|
-
▼
|
|
42
|
-
2. Memory Engine loads object
|
|
43
|
-
│
|
|
44
|
-
▼
|
|
45
|
-
3. Object parsed into memory buffer
|
|
46
|
-
│
|
|
47
|
-
▼
|
|
48
|
-
4. Memory buffer mapped to virtual RAM
|
|
49
|
-
│
|
|
50
|
-
▼
|
|
51
|
-
5. Computation performed on virtual RAM
|
|
52
|
-
│
|
|
53
|
-
▼
|
|
54
|
-
6. Results written back to storage
|
|
55
|
-
│
|
|
56
|
-
▼
|
|
57
|
-
7. Storage object updated
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
## Storage Targets
|
|
61
|
-
|
|
62
|
-
### Repository Storage (Primary)
|
|
63
|
-
|
|
64
|
-
GitHub/GitLab/Forgejo/Gitea repositories serve as the
|
|
65
|
-
primary storage buckets. Files, assets, and releases are
|
|
66
|
-
used as memory objects.
|
|
67
|
-
|
|
68
|
-
```typescript
|
|
69
|
-
interface RepoStorageTarget {
|
|
70
|
-
platform: 'github' | 'gitlab' | 'forgejo' | 'gitea'
|
|
71
|
-
owner: string
|
|
72
|
-
repo: string
|
|
73
|
-
branch: string
|
|
74
|
-
path: string
|
|
75
|
-
token: string
|
|
76
|
-
}
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
### Hugging Face Storage
|
|
80
|
-
|
|
81
|
-
Hugging Face Spaces and Repositories as memory backends.
|
|
82
|
-
|
|
83
|
-
```typescript
|
|
84
|
-
interface HFStorageTarget {
|
|
85
|
-
type: 'huggingface'
|
|
86
|
-
space: string
|
|
87
|
-
token: string
|
|
88
|
-
revision: string
|
|
89
|
-
}
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
### Kaggle Storage
|
|
93
|
-
|
|
94
|
-
Kaggle datasets and notebooks as memory storage targets.
|
|
95
|
-
|
|
96
|
-
```typescript
|
|
97
|
-
interface KaggleStorageTarget {
|
|
98
|
-
type: 'kaggle'
|
|
99
|
-
dataset: string
|
|
100
|
-
token: string
|
|
101
|
-
ssl_verification: boolean
|
|
102
|
-
}
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
### ModelScope Storage
|
|
106
|
-
|
|
107
|
-
ModelScope repositories for ML model memory storage.
|
|
108
|
-
|
|
109
|
-
```typescript
|
|
110
|
-
interface ModelScopeStorageTarget {
|
|
111
|
-
type: 'modelscope'
|
|
112
|
-
namespace: string
|
|
113
|
-
repo: string
|
|
114
|
-
token: string
|
|
115
|
-
}
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
### Terabox and File Hostings
|
|
119
|
-
|
|
120
|
-
Generic file hosting as storage backend for raw memory data.
|
|
121
|
-
|
|
122
|
-
```typescript
|
|
123
|
-
interface FileHostingStorageTarget {
|
|
124
|
-
type: 'filehosting'
|
|
125
|
-
host: string
|
|
126
|
-
path: string
|
|
127
|
-
token: string
|
|
128
|
-
method: 'upload' | 's3compatible' | 'webdav'
|
|
129
|
-
}
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
## Memory Engine Implementation
|
|
133
|
-
|
|
134
|
-
### Core Class
|
|
135
|
-
|
|
136
|
-
```typescript
|
|
137
|
-
class MemoryEngine {
|
|
138
|
-
private storage: Map<string, MemoryObject>
|
|
139
|
-
private backends: StorageBackend[]
|
|
140
|
-
|
|
141
|
-
constructor(config: MemoryEngineConfig) {
|
|
142
|
-
this.backends = config.backends.map(
|
|
143
|
-
(backend) => StorageBackendFactory.create(backend)
|
|
144
|
-
)
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
async load(key: string): Promise<MemoryObject | null> {
|
|
148
|
-
try {
|
|
149
|
-
for (const backend of this.backends) {
|
|
150
|
-
const object = await backend.load(key)
|
|
151
|
-
if (object !== null) {
|
|
152
|
-
return this.transformToCompute(object)
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
return null
|
|
156
|
-
} catch (error) {
|
|
157
|
-
throw new Error(
|
|
158
|
-
`MemoryEngine.load failed for key "${key}": ${error.message}`
|
|
159
|
-
)
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
async persist(
|
|
164
|
-
key: string,
|
|
165
|
-
data: ComputeResult
|
|
166
|
-
): Promise<boolean> {
|
|
167
|
-
try {
|
|
168
|
-
const storageObject = this.transformToStorage(data)
|
|
169
|
-
for (const backend of this.backends) {
|
|
170
|
-
await backend.save(key, storageObject)
|
|
171
|
-
}
|
|
172
|
-
return true
|
|
173
|
-
} catch (error) {
|
|
174
|
-
throw new Error(
|
|
175
|
-
`MemoryEngine.persist failed for key "${key}": ${error.message}`
|
|
176
|
-
)
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
private transformToCompute(
|
|
181
|
-
object: StorageObject
|
|
182
|
-
): MemoryObject {
|
|
183
|
-
const buffer = Buffer.from(object.data)
|
|
184
|
-
|
|
185
|
-
return {
|
|
186
|
-
id: object.key,
|
|
187
|
-
buffer: buffer,
|
|
188
|
-
size: buffer.byteLength,
|
|
189
|
-
type: object.mimeType,
|
|
190
|
-
createdAt: new Date(),
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
private transformToStorage(
|
|
195
|
-
result: ComputeResult
|
|
196
|
-
): StorageObject {
|
|
197
|
-
return {
|
|
198
|
-
key: result.id,
|
|
199
|
-
data: result.payload,
|
|
200
|
-
mimeType: result.mimeType ?? 'application/octet-stream',
|
|
201
|
-
metadata: result.metadata,
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
release(key: string): Promise<void> {
|
|
206
|
-
this.storage.delete(key)
|
|
207
|
-
return Promise.resolve()
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
### Memory Object Interface
|
|
213
|
-
|
|
214
|
-
```typescript
|
|
215
|
-
interface MemoryObject {
|
|
216
|
-
id: string
|
|
217
|
-
buffer: Buffer
|
|
218
|
-
size: number
|
|
219
|
-
type: string
|
|
220
|
-
createdAt: Date
|
|
221
|
-
metadata?: Record<string, unknown>
|
|
222
|
-
}
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
### Compute Result Interface
|
|
226
|
-
|
|
227
|
-
```typescript
|
|
228
|
-
interface ComputeResult {
|
|
229
|
-
id: string
|
|
230
|
-
payload: string | Buffer | object
|
|
231
|
-
mimeType?: string
|
|
232
|
-
metadata?: Record<string, unknown>
|
|
233
|
-
processingTimeMs: number
|
|
234
|
-
memoryUsedBytes: number
|
|
235
|
-
}
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
## Computational Memory Use Cases
|
|
239
|
-
|
|
240
|
-
### Use Case 1: Large File Processing
|
|
241
|
-
|
|
242
|
-
Load a large file from repository storage into virtual RAM,
|
|
243
|
-
process it, and write results back.
|
|
244
|
-
|
|
245
|
-
```
|
|
246
|
-
repo://my-repo/large-file.bin
|
|
247
|
-
→ Memory Engine loads into buffer (virtual RAM)
|
|
248
|
-
→ Processing pipeline transforms buffer
|
|
249
|
-
→ Results written back to repo
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
### Use Case 2: ML Model Inference
|
|
253
|
-
|
|
254
|
-
Store ML model weights in repository storage, load into
|
|
255
|
-
GPU VRAM for inference, persist results.
|
|
256
|
-
|
|
257
|
-
```
|
|
258
|
-
repo://models/my-model/weights.bin
|
|
259
|
-
→ Memory Engine loads into GPU buffer
|
|
260
|
-
→ Inference engine processes
|
|
261
|
-
→ Results stored as repo artifacts
|
|
262
|
-
```
|
|
263
|
-
|
|
264
|
-
### Use Case 3: Browser Session Memory
|
|
265
|
-
|
|
266
|
-
Capture browser sessions as JSON, store in repo, replay
|
|
267
|
-
on another machine with full session memory.
|
|
268
|
-
|
|
269
|
-
```
|
|
270
|
-
repo://saddle/sessions/session-001.json
|
|
271
|
-
→ Memory Engine loads session log
|
|
272
|
-
→ Browser engine replays movements
|
|
273
|
-
→ Execution results stored back
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
## Performance Characteristics
|
|
277
|
-
|
|
278
|
-
| Aspect | Metric | Notes |
|
|
279
|
-
|--------|--------|-------|
|
|
280
|
-
| Load latency | Depends on storage backend | Local storage fastest |
|
|
281
|
-
| Process throughput | Depends on compute layer | RAM fastest, storage limited |
|
|
282
|
-
| Persist latency | Depends on storage backend | Batch writes preferred |
|
|
283
|
-
| Memory overhead | ~2x storage size | Buffer + metadata |
|
|
284
|
-
| Max capacity | Effectively unlimited | Bounded by storage targets |
|
|
285
|
-
|
|
286
|
-
## Error Handling
|
|
287
|
-
|
|
288
|
-
The memory engine implements try-catch around all storage
|
|
289
|
-
operations with contextual error logging for later tracing.
|
|
290
|
-
|
|
291
|
-
```typescript
|
|
292
|
-
async safeLoad<T>(
|
|
293
|
-
key: string
|
|
294
|
-
): Promise<{ success: boolean; data?: T; error?: string }> {
|
|
295
|
-
try {
|
|
296
|
-
const result = await this.load(key)
|
|
297
|
-
return { success: true, data: result as T }
|
|
298
|
-
} catch (error) {
|
|
299
|
-
return {
|
|
300
|
-
success: false,
|
|
301
|
-
error: error instanceof Error ? error.message : 'Unknown error',
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
```
|
|
306
|
-
|
|
307
|
-
## Storage Backend Factory
|
|
308
|
-
|
|
309
|
-
```typescript
|
|
310
|
-
class StorageBackendFactory {
|
|
311
|
-
static create(config: StorageConfig): StorageBackend {
|
|
312
|
-
switch (config.type) {
|
|
313
|
-
case 'github':
|
|
314
|
-
return new GitHubStorageBackend(config)
|
|
315
|
-
case 'gitlab':
|
|
316
|
-
return new GitLabStorageBackend(config)
|
|
317
|
-
case 'forgejo':
|
|
318
|
-
return new ForgejoStorageBackend(config)
|
|
319
|
-
case 'gitea':
|
|
320
|
-
return new GiteaStorageBackend(config)
|
|
321
|
-
case 'huggingface':
|
|
322
|
-
return new HFStorageBackend(config)
|
|
323
|
-
case 'kaggle':
|
|
324
|
-
return new KaggleStorageBackend(config)
|
|
325
|
-
case 'modelscope':
|
|
326
|
-
return new ModelScopeStorageBackend(config)
|
|
327
|
-
case 'filehosting':
|
|
328
|
-
return new FileHostingStorageBackend(config)
|
|
329
|
-
default:
|
|
330
|
-
throw new Error(
|
|
331
|
-
`Unknown storage type "${config.type}"`
|
|
332
|
-
)
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
```
|
|
337
|
-
|
|
338
|
-
## License
|
|
339
|
-
|
|
340
|
-
MIT
|
|
@@ -1,394 +0,0 @@
|
|
|
1
|
-
# Saddle Deploy Strategy
|
|
2
|
-
|
|
3
|
-
> Deploy strategies for the saddle robot across Netlify, Vercel,
|
|
4
|
-
> GitHub Actions, GitLab CI, Forgejo, and self-hosted infrastructure.
|
|
5
|
-
|
|
6
|
-
## Overview
|
|
7
|
-
|
|
8
|
-
Saddle robot supports multiple deployment strategies to make the bot
|
|
9
|
-
available across platforms. Each strategy uses HTTPS communication
|
|
10
|
-
between deployed sites for coordination and data transfer.
|
|
11
|
-
|
|
12
|
-
## Strategy 1: Netlify
|
|
13
|
-
|
|
14
|
-
Netlify provides serverless functions and static hosting for the
|
|
15
|
-
saddle robot web interface.
|
|
16
|
-
|
|
17
|
-
### Configuration
|
|
18
|
-
|
|
19
|
-
```toml
|
|
20
|
-
# netlify.toml
|
|
21
|
-
[build]
|
|
22
|
-
publish = "dist"
|
|
23
|
-
command = "npm run build"
|
|
24
|
-
|
|
25
|
-
[[redirects]]
|
|
26
|
-
from = "/api/*"
|
|
27
|
-
to = "/.netlify/functions/:splat"
|
|
28
|
-
status = 200
|
|
29
|
-
|
|
30
|
-
[[headers]]
|
|
31
|
-
for = "/*"
|
|
32
|
-
[headers.values]
|
|
33
|
-
X-Frame-Options = "DENY"
|
|
34
|
-
X-Content-Type-Options = "nosniff"
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
### Environment Variables
|
|
38
|
-
|
|
39
|
-
| Variable | Description | Required |
|
|
40
|
-
|----------|-------------|----------|
|
|
41
|
-
| `SBOT_TOKEN` | GitHub/GitLab bot token | Yes |
|
|
42
|
-
| `SBOT_PLATFORM` | Target platform (github, gitlab, forgejo, gitea) | Yes |
|
|
43
|
-
| `SBOT_MEMORY_BUCKET` | Storage bucket for memory persistence | Yes |
|
|
44
|
-
| `SBOT_WEBHOOK_SECRET` | Webhook signature secret | Yes |
|
|
45
|
-
| `SBOT_CDN_URL` | SCDN endpoint for static assets | No |
|
|
46
|
-
|
|
47
|
-
### Deploy Command
|
|
48
|
-
|
|
49
|
-
```bash
|
|
50
|
-
# Deploy to Netlify
|
|
51
|
-
netlify deploy --prod
|
|
52
|
-
# Deploy to Netlify staging
|
|
53
|
-
netlify deploy --context deploy-preview
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
## Strategy 2: Vercel
|
|
57
|
-
|
|
58
|
-
Vercel provides edge functions and instant deployment for the
|
|
59
|
-
saddle robot backend.
|
|
60
|
-
|
|
61
|
-
### Configuration
|
|
62
|
-
|
|
63
|
-
```json
|
|
64
|
-
// vercel.json
|
|
65
|
-
{
|
|
66
|
-
"version": 2,
|
|
67
|
-
"builds": [
|
|
68
|
-
{
|
|
69
|
-
"src": "web/index.js",
|
|
70
|
-
"use": "@vercel/node"
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
"src": "web/api/*.js",
|
|
74
|
-
"use": "@vercel/node"
|
|
75
|
-
}
|
|
76
|
-
],
|
|
77
|
-
"routes": [
|
|
78
|
-
{
|
|
79
|
-
"src": "/api/(.*)",
|
|
80
|
-
"dest": "/web/api/$1"
|
|
81
|
-
}
|
|
82
|
-
]
|
|
83
|
-
}
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
### Environment Variables
|
|
87
|
-
|
|
88
|
-
Same as Netlify strategy. Add Vercel-specific:
|
|
89
|
-
|
|
90
|
-
| Variable | Description |
|
|
91
|
-
|----------|-------------|
|
|
92
|
-
| `VERCEL_REGION` | Edge region for deployment |
|
|
93
|
-
| `SBOT_MEMORY_ENGINE` | Memory engine type (ram, storage, bucket) |
|
|
94
|
-
|
|
95
|
-
## Strategy 3: GitHub Actions Pipeline
|
|
96
|
-
|
|
97
|
-
Use GitHub Actions to deploy and run the saddle robot as a
|
|
98
|
-
scheduled or triggered workflow.
|
|
99
|
-
|
|
100
|
-
### Workflow File
|
|
101
|
-
|
|
102
|
-
```yaml
|
|
103
|
-
# .github/workflows/saddle-robot.yml
|
|
104
|
-
name: Saddle Robot Automation
|
|
105
|
-
|
|
106
|
-
on:
|
|
107
|
-
schedule:
|
|
108
|
-
- cron: '*/15 * * * *'
|
|
109
|
-
workflow_dispatch:
|
|
110
|
-
push:
|
|
111
|
-
paths:
|
|
112
|
-
- 'saddle-robot/**'
|
|
113
|
-
- '.saddle/config.yml'
|
|
114
|
-
|
|
115
|
-
permissions:
|
|
116
|
-
contents: read
|
|
117
|
-
pull-requests: write
|
|
118
|
-
issues: write
|
|
119
|
-
actions: write
|
|
120
|
-
|
|
121
|
-
env:
|
|
122
|
-
SBOT_PLATFORM: github
|
|
123
|
-
SBOT_MEMORY_BUCKET: ${{ secrets.MEMORY_BUCKET }}
|
|
124
|
-
SBOT_WEBHOOK_SECRET: ${{ secrets.WEBHOOK_SECRET }}
|
|
125
|
-
|
|
126
|
-
jobs:
|
|
127
|
-
deploy:
|
|
128
|
-
runs-on: ubuntu-latest
|
|
129
|
-
steps:
|
|
130
|
-
- uses: actions/checkout@v4
|
|
131
|
-
|
|
132
|
-
- name: Setup Node.js
|
|
133
|
-
uses: actions/setup-node@v4
|
|
134
|
-
with:
|
|
135
|
-
node-version: '20'
|
|
136
|
-
cache: 'npm'
|
|
137
|
-
|
|
138
|
-
- name: Install dependencies
|
|
139
|
-
run: npm ci --production
|
|
140
|
-
|
|
141
|
-
- name: Run saddle robot
|
|
142
|
-
run: node saddle-robot/index.js
|
|
143
|
-
env:
|
|
144
|
-
SBOT_API_TOKEN: ${{ secrets.SBOT_TOKEN }}
|
|
145
|
-
SBOT_MEMORY_ENGINE: storage
|
|
146
|
-
|
|
147
|
-
- name: Upload memory artifacts
|
|
148
|
-
uses: actions/upload-artifact@v4
|
|
149
|
-
with:
|
|
150
|
-
name: memory-logs
|
|
151
|
-
path: |
|
|
152
|
-
.saddle/logs/*.json
|
|
153
|
-
retention-days: 30
|
|
154
|
-
|
|
155
|
-
deploy-to-netlify:
|
|
156
|
-
needs: [deploy]
|
|
157
|
-
runs-on: ubuntu-latest
|
|
158
|
-
if: github.ref == 'refs/heads/main'
|
|
159
|
-
steps:
|
|
160
|
-
- uses: jsmrcaga/action-netlify-deploy@v2.5.1
|
|
161
|
-
with:
|
|
162
|
-
netlify_auth_token: ${{ secrets.NETLIFY_TOKEN }}
|
|
163
|
-
netlify_site_id: ${{ secrets.NETLIFY_SITE_ID }}
|
|
164
|
-
deploy_message: 'Saddle robot auto-deploy'
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
### GitHub App Configuration
|
|
168
|
-
|
|
169
|
-
Create a GitHub App for the saddle robot with these permissions:
|
|
170
|
-
|
|
171
|
-
| Permission | Access |
|
|
172
|
-
|------------|--------|
|
|
173
|
-
| Contents | Read/Write |
|
|
174
|
-
| Pull Requests | Read/Write |
|
|
175
|
-
| Issues | Read/Write |
|
|
176
|
-
| Actions | Read/Write |
|
|
177
|
-
| Metadata | Read |
|
|
178
|
-
| Webhooks | Manage |
|
|
179
|
-
|
|
180
|
-
## Strategy 4: GitLab CI/CD
|
|
181
|
-
|
|
182
|
-
Use GitLab CI/CD pipelines for the saddle robot on GitLab
|
|
183
|
-
instances (self-hosted or GitLab.com).
|
|
184
|
-
|
|
185
|
-
### GitLab CI Configuration
|
|
186
|
-
|
|
187
|
-
```yaml
|
|
188
|
-
# .gitlab-ci.yml
|
|
189
|
-
stages:
|
|
190
|
-
- deploy
|
|
191
|
-
- execute
|
|
192
|
-
- store
|
|
193
|
-
|
|
194
|
-
deploy-saddle:
|
|
195
|
-
stage: deploy
|
|
196
|
-
script:
|
|
197
|
-
- npm ci --production
|
|
198
|
-
- npm run build
|
|
199
|
-
artifacts:
|
|
200
|
-
paths:
|
|
201
|
-
- dist/
|
|
202
|
-
expire_in: 1 hour
|
|
203
|
-
|
|
204
|
-
execute-saddle-robot:
|
|
205
|
-
stage: execute
|
|
206
|
-
script:
|
|
207
|
-
- node saddle-robot/index.js
|
|
208
|
-
- cat .saddle/logs/*.json
|
|
209
|
-
artifacts:
|
|
210
|
-
paths:
|
|
211
|
-
- .saddle/logs/
|
|
212
|
-
expire_in: 7 days
|
|
213
|
-
variables:
|
|
214
|
-
SBOT_PLATFORM: gitlab
|
|
215
|
-
SBOT_MEMORY_ENGINE: storage
|
|
216
|
-
|
|
217
|
-
store-memory-results:
|
|
218
|
-
stage: store
|
|
219
|
-
script:
|
|
220
|
-
- |
|
|
221
|
-
# Upload results to storage backend
|
|
222
|
-
curl -X POST "${SBOT_MEMORY_BUCKET_URL}/upload" \
|
|
223
|
-
-H "Authorization: Bearer ${MEMORY_BUCKET_TOKEN}" \
|
|
224
|
-
-F "file=@.saddle/logs/results.json"
|
|
225
|
-
when: always
|
|
226
|
-
```
|
|
227
|
-
|
|
228
|
-
## Strategy 5: Forgejo Actions
|
|
229
|
-
|
|
230
|
-
Forgejo supports GitHub-compatible workflows. Use the same
|
|
231
|
-
configuration as GitHub Actions with Forgejo-specific adjustments.
|
|
232
|
-
|
|
233
|
-
### Forgejo Workflow
|
|
234
|
-
|
|
235
|
-
```yaml
|
|
236
|
-
# .forgejo/workflows/saddle.yaml
|
|
237
|
-
name: Saddle Robot
|
|
238
|
-
|
|
239
|
-
on:
|
|
240
|
-
schedule:
|
|
241
|
-
- cron: '*/15 * * * *'
|
|
242
|
-
push:
|
|
243
|
-
branches: [main]
|
|
244
|
-
|
|
245
|
-
jobs:
|
|
246
|
-
run-saddle:
|
|
247
|
-
runs-on: ubuntu-latest
|
|
248
|
-
steps:
|
|
249
|
-
- uses: forgejo/actions/checkout@v1
|
|
250
|
-
- uses: forgejo/actions/setup-node@v1
|
|
251
|
-
with:
|
|
252
|
-
node-version: '20'
|
|
253
|
-
- run: npm ci --production
|
|
254
|
-
- run: node saddle-robot/index.js
|
|
255
|
-
```
|
|
256
|
-
|
|
257
|
-
## Strategy 6: Gitea Actions
|
|
258
|
-
|
|
259
|
-
Gitea supports webhook-based workflows. Configure Gitea Actions
|
|
260
|
-
for the saddle robot.
|
|
261
|
-
|
|
262
|
-
### Gitea Configuration
|
|
263
|
-
|
|
264
|
-
```yaml
|
|
265
|
-
# .gitea/workflows/saddle.yml
|
|
266
|
-
name: saddle-robot
|
|
267
|
-
|
|
268
|
-
on:
|
|
269
|
-
schedule:
|
|
270
|
-
- cron: '*/15 * * * *'
|
|
271
|
-
push:
|
|
272
|
-
branches: ['main']
|
|
273
|
-
|
|
274
|
-
jobs:
|
|
275
|
-
execute:
|
|
276
|
-
runs-on: ubuntu-latest
|
|
277
|
-
steps:
|
|
278
|
-
- uses: gitea/actions/setup-node@v1
|
|
279
|
-
with:
|
|
280
|
-
node-version: '20'
|
|
281
|
-
- run: npm ci --production
|
|
282
|
-
- run: node saddle-robot/index.js
|
|
283
|
-
```
|
|
284
|
-
|
|
285
|
-
## Strategy 7: Docker/VM Self-Hosted
|
|
286
|
-
|
|
287
|
-
Full containerized deployment for maximum control and resource access.
|
|
288
|
-
|
|
289
|
-
### Docker Compose
|
|
290
|
-
|
|
291
|
-
```yaml
|
|
292
|
-
# docker-compose.yml
|
|
293
|
-
version: '3.8'
|
|
294
|
-
|
|
295
|
-
services:
|
|
296
|
-
saddle-robot:
|
|
297
|
-
build:
|
|
298
|
-
context: .
|
|
299
|
-
dockerfile: Dockerfile.saddle
|
|
300
|
-
container_name: saddle-robot
|
|
301
|
-
ports:
|
|
302
|
-
- "3000:3000"
|
|
303
|
-
environment:
|
|
304
|
-
- SBOT_PLATFORM=auto
|
|
305
|
-
- SBOT_MEMORY_ENGINE=storage
|
|
306
|
-
- SBOT_MEMORY_BUCKET_URL=${MEMORY_BUCKET_URL}
|
|
307
|
-
- SBOT_API_TOKEN=${SBOT_TOKEN}
|
|
308
|
-
- SBOT_WEBHOOK_SECRET=${WEBHOOK_SECRET}
|
|
309
|
-
volumes:
|
|
310
|
-
- ./saddle-data:/app/data
|
|
311
|
-
- ./saddle-logs:/app/logs
|
|
312
|
-
restart: unless-stopped
|
|
313
|
-
depends_on:
|
|
314
|
-
- saddle-db
|
|
315
|
-
|
|
316
|
-
saddle-db:
|
|
317
|
-
image: mysql:8.0
|
|
318
|
-
container_name: saddle-db
|
|
319
|
-
environment:
|
|
320
|
-
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
|
|
321
|
-
MYSQL_DATABASE: saddle
|
|
322
|
-
MYSQL_USER: saddle_user
|
|
323
|
-
MYSQL_PASSWORD: ${DB_USER_PASSWORD}
|
|
324
|
-
volumes:
|
|
325
|
-
- saddle-db-data:/var/lib/mysql
|
|
326
|
-
ports:
|
|
327
|
-
- "3306:3306"
|
|
328
|
-
|
|
329
|
-
volumes:
|
|
330
|
-
saddle-db-data:
|
|
331
|
-
```
|
|
332
|
-
|
|
333
|
-
### Dockerfile
|
|
334
|
-
|
|
335
|
-
```dockerfile
|
|
336
|
-
FROM node:20-slim
|
|
337
|
-
|
|
338
|
-
RUN apt-get update && apt-get install -y \
|
|
339
|
-
chromium \
|
|
340
|
-
&& rm -rf /var/lib/apt/lists/*
|
|
341
|
-
|
|
342
|
-
WORKDIR /app
|
|
343
|
-
|
|
344
|
-
COPY package*.json ./
|
|
345
|
-
RUN npm ci --production
|
|
346
|
-
|
|
347
|
-
COPY . .
|
|
348
|
-
|
|
349
|
-
EXPOSE 3000
|
|
350
|
-
|
|
351
|
-
HEALTHCHECK --interval=30s --timeout=10s --retries=3 \
|
|
352
|
-
CMD curl -f http://localhost:3000/health || exit 1
|
|
353
|
-
|
|
354
|
-
CMD ["node", "saddle-robot/index.js"]
|
|
355
|
-
```
|
|
356
|
-
|
|
357
|
-
## HTTPS Communication Between Sites
|
|
358
|
-
|
|
359
|
-
All cross-site communication uses HTTPS with proper certificate
|
|
360
|
-
validation. The saddle robot uses HTTPS for:
|
|
361
|
-
|
|
362
|
-
1. Webhook endpoints between deployed sites
|
|
363
|
-
2. API calls to GitHub/GitLab/Forgejo/Gitea
|
|
364
|
-
3. Storage bucket communication (HF/Kaggle/ModelScope/Terabox)
|
|
365
|
-
4. SCDN asset delivery
|
|
366
|
-
5. Internal service mesh communication
|
|
367
|
-
|
|
368
|
-
### Certificate Management
|
|
369
|
-
|
|
370
|
-
```typescript
|
|
371
|
-
interface SSLOptions {
|
|
372
|
-
cert: string
|
|
373
|
-
key: string
|
|
374
|
-
ca?: string
|
|
375
|
-
rejectUnauthorized: boolean
|
|
376
|
-
minVersion: 'TLSv1.2' | 'TLSv1.3'
|
|
377
|
-
}
|
|
378
|
-
```
|
|
379
|
-
|
|
380
|
-
## Decision Matrix
|
|
381
|
-
|
|
382
|
-
| Strategy | Use Case | Pros | Cons |
|
|
383
|
-
|----------|----------|------|------|
|
|
384
|
-
| Netlify | Static web + edge functions | Fast, free tier | Limited runtime |
|
|
385
|
-
| Vercel | Serverless edge runtime | Global edge | Vendor lock-in |
|
|
386
|
-
| GitHub Actions | CI/CD integrated bot | Native GitHub | Time limits |
|
|
387
|
-
| GitLab CI | Self-hosted or cloud CI | Full control | Self-hosted needs infra |
|
|
388
|
-
| Forgejo | Self-hosted lightweight | Minimal footprint | Smaller ecosystem |
|
|
389
|
-
| Gitea | Self-hosted minimal | Very lightweight | Limited integrations |
|
|
390
|
-
| Docker/VM | Full control deployment | All resources | Requires infra management |
|
|
391
|
-
|
|
392
|
-
## License
|
|
393
|
-
|
|
394
|
-
MIT
|