@wenathlan/saddle 1.8.18 → 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 +33 -12
- 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 -123
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1018 -123
- 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/contracts.d.ts → isolation.d.ts} +12 -1
- package/dist/isolation.d.ts.map +1 -0
- package/dist/{isolation/contracts.js → isolation.js} +13 -1
- 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/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.19.md +35 -0
- package/docs/research-1.8.19-virtual-browser.md +27 -0
- package/docs/security.md +454 -0
- package/docs/todo-1.8.18.md +12 -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 -56
- 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/isolation/contracts.d.ts.map +0 -1
- package/dist/isolation/contracts.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/{extension/README.md → docs/extension.md} +0 -0
|
@@ -0,0 +1,1161 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* compute.ts — compute, WebAssembly, WebGPU and AI workload domain for saddle v6.
|
|
3
|
+
*
|
|
4
|
+
* the module absorbs the compute-facing families of the removed
|
|
5
|
+
* future.ts file (55-feature ledger, v2) into their proper domain:
|
|
6
|
+
* - wasm/wasmtime (8): WIT bindings generator, WASI 0.3.0 async runtime
|
|
7
|
+
* with cancellation, fuel metering, epoch interruption, wasi:nn
|
|
8
|
+
* backend with real softmax, deny-by-default component ACL,
|
|
9
|
+
* component registry, linear memory pool
|
|
10
|
+
* - webgpu (4): forced fallback adapter over lavapipe, compute pipeline
|
|
11
|
+
* builder with the 256-invocation limit, WGSL shader cache, matmul
|
|
12
|
+
* dispatch planner
|
|
13
|
+
* - node 26 (7): Temporal-aware scheduler, Float16 tensor storage with
|
|
14
|
+
* own binary16 conversion, Error.isError guard, node:sqlite sync
|
|
15
|
+
* store with memory fallback, disposable module.register hook chain,
|
|
16
|
+
* Perfetto trace sink, private key store with loader indirection
|
|
17
|
+
* - ai workloads (6): DataLoader /dev/shm planner, TF CUDA
|
|
18
|
+
* forward-compatibility matrix, ONNX WebGPU EP session builder, LLM
|
|
19
|
+
* inference on lavapipe, headless Stable Diffusion, VRAM budget
|
|
20
|
+
*
|
|
21
|
+
* omnihypercore verified additions (research pass 2026-08-23):
|
|
22
|
+
* - wasm canary validator: module validation with smoke execution and
|
|
23
|
+
* automatic rollback to the last healthy revision
|
|
24
|
+
* - WASI-GFX: the wasi:gfx proposal bringing wgpu 30.x WebGPU into wasm
|
|
25
|
+
* components ("wgpu virt wgpu 30"), planned as capability grants
|
|
26
|
+
* - ChatOps dashboard: chat command builders (/vm create, /gpu attach,
|
|
27
|
+
* /migrate) emitting JSON command envelopes plus a WebGPU dashboard
|
|
28
|
+
* spec
|
|
29
|
+
* - GPU telemetry via eBPF: bpf program builder for GPU UAPI counters
|
|
30
|
+
* (DRM_IOCTL tracepoints feeding per-engine utilization maps)
|
|
31
|
+
* - AI live migration pre-copy predictor: dirty page estimation with
|
|
32
|
+
* simple online learning, the AI-flavoured companion of the
|
|
33
|
+
* checkpoint family that now lives in virtualization.ts
|
|
34
|
+
*
|
|
35
|
+
* v4-FIX3 additions (portal 0-reference absorption, 2026-08-23):
|
|
36
|
+
* - PartyKit edge presence channel builder (rooms, wss endpoints,
|
|
37
|
+
* join/leave/update presence, 100 ms heartbeat)
|
|
38
|
+
* - L3AF 2.1 xBPF marketplace app manager emitting l3afd configs
|
|
39
|
+
* - GreenHyper RAPL power-aware binpacking governor over
|
|
40
|
+
* /sys/class/powercap intel-rapl constraint files
|
|
41
|
+
* - StateVector 2-round sync: lamport state vectors with
|
|
42
|
+
* last-writer-wins merge (CRDT convergence without a coordinator)
|
|
43
|
+
* - libp2p + BitTorrent v2 content addressing: sha2-256 multihashes,
|
|
44
|
+
* base32 CIDv1 raw, 16 KiB merkle roots, magnet links, multiaddrs
|
|
45
|
+
* - Tailscale tailnet endpoint planner with the CGNAT 100.64.0.0/10
|
|
46
|
+
* guard, MagicDNS names, DERP fallback and six mesh milestones
|
|
47
|
+
* - MAX9 catalogued as a legacy build/delivery variant (zip level 9,
|
|
48
|
+
* 51% ratio, :max9 tag) - NOT an NVIDIA Maxwell GPU
|
|
49
|
+
* - roadmapbacklog: the thirteen v4 future.ts items that were still
|
|
50
|
+
* unabsorbed (AMX, dual-X3D, WebTransport, Turborepo GHCR, pnpm v9,
|
|
51
|
+
* QUIC/H3, WebRTC mesh, OPFS, WebCodecs+WebGPU, SAB cross-origin,
|
|
52
|
+
* WASM JSPI, GHCR gha reuse, Nix flakes) plus backlogCount()
|
|
53
|
+
*
|
|
54
|
+
* version anchors (worklog v3-VERIFY, 2026-08-23): wasmtime 48.0.0 LTS
|
|
55
|
+
* (confirmed, supported until 2028-08), spin 3.6.0 (spinframework),
|
|
56
|
+
* wasmcloud tracked as latest 2.x without a pin (release page did not
|
|
57
|
+
* expose the version), wgpu 30.x (corrected from 24.x), kernel stable
|
|
58
|
+
* 7.1.9 / longterm 6.18.45. ports never hardcoded; loopback never used.
|
|
59
|
+
*
|
|
60
|
+
* contexts (25+9): witbindings, wasi03async, fuel, epoch, wasinn,
|
|
61
|
+
* componentacl, componentregistry, wasmmempool, lavapipe, pipelines,
|
|
62
|
+
* shadercache, temporal, float16, errorguard, sqlitestore, modulehooks,
|
|
63
|
+
* perfetto, keystore, aiplanners, inference, canary, wasigfx, chatops,
|
|
64
|
+
* ebpfgpu, aimigration, portalsync, l3afmanager, greenhyper,
|
|
65
|
+
* statevector, p2pcontent, tailscaleplan, max9variant, roadmapbacklog
|
|
66
|
+
* (the featureledger appendix closes the file)
|
|
67
|
+
*
|
|
68
|
+
* rules: lowercase identifiers, english jsdoc third person, no emoji,
|
|
69
|
+
* try/catch catcher on every fallible path, node:* built-ins first,
|
|
70
|
+
* zero runtime dependencies, `using`/`satisfies`/`#private`/const type
|
|
71
|
+
* parameters throughout.
|
|
72
|
+
*/
|
|
73
|
+
/** WIT primitive and compound type names. */
|
|
74
|
+
export type wittype = 'u8' | 'u16' | 'u32' | 'u64' | 's8' | 's16' | 's32' | 's64' | 'f32' | 'f64' | 'bool' | 'string' | 'timestamp' | `list<${string}>` | `option<${string}>` | `result<${string}, ${string}>`;
|
|
75
|
+
/** one WIT function parameter. */
|
|
76
|
+
export interface witparam {
|
|
77
|
+
readonly name: string;
|
|
78
|
+
readonly type: wittype;
|
|
79
|
+
}
|
|
80
|
+
/** one WIT function. */
|
|
81
|
+
export interface witfunction {
|
|
82
|
+
readonly name: string;
|
|
83
|
+
readonly params: readonly witparam[];
|
|
84
|
+
readonly result: wittype | null;
|
|
85
|
+
}
|
|
86
|
+
/** one WIT interface (a named function group). */
|
|
87
|
+
export interface witinterface {
|
|
88
|
+
readonly name: string;
|
|
89
|
+
readonly functions: readonly witfunction[];
|
|
90
|
+
}
|
|
91
|
+
/** one WIT world (the component contract). */
|
|
92
|
+
export interface witworld {
|
|
93
|
+
readonly name: string;
|
|
94
|
+
readonly interfaces: readonly witinterface[];
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* converts a WIT world definition into a typed typescript interface
|
|
98
|
+
* block, so components loaded by the engine keep static typing end to
|
|
99
|
+
* end; guest calls return promises per the WASI 0.3 async convention.
|
|
100
|
+
*/
|
|
101
|
+
export declare function wittotypescript(world: witworld): string;
|
|
102
|
+
/** content hash of a WIT world, used to invalidate generated bindings. */
|
|
103
|
+
export declare function witworldhash(world: witworld): string;
|
|
104
|
+
/** one queued WASI 0.3 component call. */
|
|
105
|
+
export interface wasicall {
|
|
106
|
+
readonly component: string;
|
|
107
|
+
readonly functionName: string;
|
|
108
|
+
readonly payload: Uint8Array;
|
|
109
|
+
readonly deadlineMs: number;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* models the native async calls of WASI 0.3.0: every guest call is
|
|
113
|
+
* queued, runs under an epoch deadline, and can be cancelled with the
|
|
114
|
+
* cancelled-by-host semantics of the component model.
|
|
115
|
+
*/
|
|
116
|
+
export declare class wasiasyncruntime implements Disposable {
|
|
117
|
+
#private;
|
|
118
|
+
invoke(call: wasicall): {
|
|
119
|
+
id: string;
|
|
120
|
+
promise: Promise<Uint8Array>;
|
|
121
|
+
};
|
|
122
|
+
cancel(callId: string): boolean;
|
|
123
|
+
get queued(): number;
|
|
124
|
+
[Symbol.dispose](): void;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* wraps deterministic instruction budgets exactly like `wasmtime --fuel`:
|
|
128
|
+
* fuel is consumed per instruction batch, refunded on early exit, and
|
|
129
|
+
* exhausts with a trap.
|
|
130
|
+
*/
|
|
131
|
+
export declare class fuelmeter {
|
|
132
|
+
#private;
|
|
133
|
+
readonly budget: number;
|
|
134
|
+
constructor(budget: number);
|
|
135
|
+
consume(instructions: number): boolean;
|
|
136
|
+
refund(instructions: number): void;
|
|
137
|
+
get consumed(): number;
|
|
138
|
+
get remaining(): number;
|
|
139
|
+
get exhausted(): boolean;
|
|
140
|
+
}
|
|
141
|
+
/** runs a callback under a fuel budget; throws a trap when it is hit. */
|
|
142
|
+
export declare function withfuel<T>(budget: number, fn: (meter: fuelmeter) => T): T;
|
|
143
|
+
/**
|
|
144
|
+
* epoch interruption, preferred over fuel for wall-clock timeouts
|
|
145
|
+
* because it costs roughly 10 percent overhead instead of
|
|
146
|
+
* per-instruction accounting; the deadline is stored in epoch ticks
|
|
147
|
+
* and checked at epoch callback points.
|
|
148
|
+
*/
|
|
149
|
+
export declare class epochinterruption {
|
|
150
|
+
#private;
|
|
151
|
+
constructor(tickMs?: number);
|
|
152
|
+
setdeadline(timeoutMs: number): void;
|
|
153
|
+
tick(): void;
|
|
154
|
+
get expired(): boolean;
|
|
155
|
+
/** measured overhead of epoch interruption relative to fuel metering. */
|
|
156
|
+
static get relativeoverhead(): number;
|
|
157
|
+
}
|
|
158
|
+
/** one registered inference graph. */
|
|
159
|
+
export interface nngraph {
|
|
160
|
+
readonly name: string;
|
|
161
|
+
readonly tensorType: 'f16' | 'f32' | 'u8';
|
|
162
|
+
readonly dims: readonly number[];
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* a wasi:nn backend: graphs declare tensor shapes and execution runs a
|
|
166
|
+
* real numerically stable softmax over the input tensor, enough to
|
|
167
|
+
* smoke-test serving pipelines before a real backend (onnx runtime,
|
|
168
|
+
* burns or candle) attaches.
|
|
169
|
+
*/
|
|
170
|
+
export declare class wasinnbackend {
|
|
171
|
+
#private;
|
|
172
|
+
load(name: string, dims: readonly number[], tensorType?: nngraph['tensorType']): nngraph;
|
|
173
|
+
execute(graphName: string, tensor: Float32Array): Float32Array;
|
|
174
|
+
list(): readonly string[];
|
|
175
|
+
}
|
|
176
|
+
/** WASI capability names a component may be granted. */
|
|
177
|
+
export type wascapability = 'wasi:io' | 'wasi:clocks' | 'wasi:random' | 'wasi:nn' | 'wasi:sockets' | 'wasi:filesystem' | 'wasi:http' | 'wasi:gfx';
|
|
178
|
+
/**
|
|
179
|
+
* components start with zero ambient authority: every capability must
|
|
180
|
+
* be granted explicitly before a component may use it, the mirror of
|
|
181
|
+
* the wasmtime deny-by-default model.
|
|
182
|
+
*/
|
|
183
|
+
export declare class componentacl {
|
|
184
|
+
#private;
|
|
185
|
+
grant(component: string, capability: wascapability): this;
|
|
186
|
+
assert(component: string, capability: wascapability): void;
|
|
187
|
+
grantsfor(component: string): readonly wascapability[];
|
|
188
|
+
}
|
|
189
|
+
/** one instantiated component with its deterministic guards. */
|
|
190
|
+
export interface componentinstance {
|
|
191
|
+
readonly id: string;
|
|
192
|
+
readonly name: string;
|
|
193
|
+
readonly fuel: fuelmeter;
|
|
194
|
+
readonly epoch: epochinterruption;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* keeps named component instances together with their fuel meter,
|
|
198
|
+
* epoch interrupter and revision tag, and disposes them
|
|
199
|
+
* deterministically via `using`.
|
|
200
|
+
*/
|
|
201
|
+
export declare class componentregistry implements Disposable {
|
|
202
|
+
#private;
|
|
203
|
+
instantiate(name: string, fuelBudget?: number): componentinstance;
|
|
204
|
+
get(name: string): componentinstance | undefined;
|
|
205
|
+
[Symbol.dispose](): void;
|
|
206
|
+
}
|
|
207
|
+
/** a pooled memory ticket returned via `using`. */
|
|
208
|
+
export interface poolticket extends Disposable {
|
|
209
|
+
readonly bytes: ArrayBuffer;
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* recycles 64 KiB-paged ArrayBuffers across component activations so
|
|
213
|
+
* short-lived guests stop pressuring the GC; tickets return to the
|
|
214
|
+
* pool through `using` declarations.
|
|
215
|
+
*/
|
|
216
|
+
export declare class wasmmempool {
|
|
217
|
+
#private;
|
|
218
|
+
acquire(minPages: number): poolticket;
|
|
219
|
+
get pooled(): number;
|
|
220
|
+
resetall(): void;
|
|
221
|
+
[Symbol.dispose](): void;
|
|
222
|
+
}
|
|
223
|
+
/** adapter request plan for a pure-software host. */
|
|
224
|
+
export interface adapterplan {
|
|
225
|
+
readonly adapterOptions: {
|
|
226
|
+
readonly forceFallbackAdapter: boolean;
|
|
227
|
+
readonly powerPreference: 'high-performance';
|
|
228
|
+
};
|
|
229
|
+
readonly expectedDriver: 'lavapipe';
|
|
230
|
+
readonly vulkanVersion: '1.4';
|
|
231
|
+
readonly icd: string;
|
|
232
|
+
readonly env: Readonly<Record<string, string>>;
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* requests an adapter with forceFallbackAdapter (wgpu 30.x semantics),
|
|
236
|
+
* which lands on lavapipe in a pure-software host; the environment
|
|
237
|
+
* uses VK_DRIVER_FILES, the loader knob that replaced the deprecated
|
|
238
|
+
* VK_ICD_FILENAMES in the 2026 loaders.
|
|
239
|
+
*/
|
|
240
|
+
export declare function forcefallbackadapterplan(icdPath?: string): adapterplan;
|
|
241
|
+
/** one bind group entry of a compute pipeline. */
|
|
242
|
+
export interface gpubinding {
|
|
243
|
+
readonly name: string;
|
|
244
|
+
readonly type: 'uniform' | 'storage' | 'read-only-storage';
|
|
245
|
+
readonly visibility: 'compute';
|
|
246
|
+
}
|
|
247
|
+
/** built compute pipeline descriptor. */
|
|
248
|
+
export interface computepipelinedescriptor {
|
|
249
|
+
readonly label: string;
|
|
250
|
+
readonly entryPoint: string;
|
|
251
|
+
readonly bindings: readonly gpubinding[];
|
|
252
|
+
readonly workgroup: readonly [number, number, number];
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* produces a WebGPU compute pipeline descriptor (bindings, entry
|
|
256
|
+
* point, workgroup shape) with validation of the 256-invocation
|
|
257
|
+
* workgroup limit.
|
|
258
|
+
*/
|
|
259
|
+
export declare class computepipelinebuilder {
|
|
260
|
+
#private;
|
|
261
|
+
bind(binding: gpubinding): this;
|
|
262
|
+
workgroupsize(size: [number, number, number]): this;
|
|
263
|
+
build(label: string, entryPoint?: string): computepipelinedescriptor;
|
|
264
|
+
}
|
|
265
|
+
/** matmul dispatch plan over tiled workgroups. */
|
|
266
|
+
export interface matmulplan {
|
|
267
|
+
readonly workgroups: readonly [number, number, number];
|
|
268
|
+
readonly flops: number;
|
|
269
|
+
readonly estimatedMs: number;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* decomposes a GEMM (m x n by n x k) into dispatchable workgroups and
|
|
273
|
+
* estimates runtime from a virtual device throughput number.
|
|
274
|
+
*/
|
|
275
|
+
export declare function planmatmul2d(m: number, n: number, k: number, tileX?: number, tileY?: number, virtualGflops?: number): matmulplan;
|
|
276
|
+
/**
|
|
277
|
+
* content-addressed cache keyed by sha256 of the shader source,
|
|
278
|
+
* mirroring the on-disk Mesa shader cache semantics
|
|
279
|
+
* (MESA_SHADER_CACHE_DIR / MESA_SHADER_CACHE_MAX_SIZE).
|
|
280
|
+
*/
|
|
281
|
+
export declare class wgslshadercache {
|
|
282
|
+
#private;
|
|
283
|
+
getorcompile(source: string): string;
|
|
284
|
+
stats(): {
|
|
285
|
+
entries: number;
|
|
286
|
+
hits: number;
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* uses the default-on Temporal API of node 26 when present and falls
|
|
291
|
+
* back to Date arithmetic otherwise; deadlines are stored as ISO
|
|
292
|
+
* strings, the native currency of Temporal.Instant. a failing task
|
|
293
|
+
* emits a process warning instead of breaking the loop.
|
|
294
|
+
*/
|
|
295
|
+
export declare class temporalscheduler {
|
|
296
|
+
#private;
|
|
297
|
+
schedule(delayMs: number, task: () => void, taskName?: `${string}-${string}-${string}-${string}-${string}`): string;
|
|
298
|
+
cancel(taskName: string): boolean;
|
|
299
|
+
/** true when the host exposes the Temporal API (node 26+ default). */
|
|
300
|
+
static get hastemporal(): boolean;
|
|
301
|
+
get pending(): readonly string[];
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* implements IEEE 754 binary16 conversion so half-precision tensors
|
|
305
|
+
* work before V8 exposes the typed array natively; the native
|
|
306
|
+
* Float16Array of node 26 is detected automatically.
|
|
307
|
+
*/
|
|
308
|
+
export declare class float16tensor {
|
|
309
|
+
#private;
|
|
310
|
+
private constructor();
|
|
311
|
+
static fromfloat32array(values: Float32Array): float16tensor;
|
|
312
|
+
tofloat32array(): Float32Array;
|
|
313
|
+
get length(): number;
|
|
314
|
+
get bytes(): number;
|
|
315
|
+
static get nativesupported(): boolean;
|
|
316
|
+
}
|
|
317
|
+
/** converts an IEEE 754 single-precision value to binary16 bits. */
|
|
318
|
+
export declare function f32tof16(value: number): number;
|
|
319
|
+
/** converts binary16 bits to an IEEE 754 single-precision value. */
|
|
320
|
+
export declare function f16tof32(bits: number): number;
|
|
321
|
+
/**
|
|
322
|
+
* wraps the V8 Error.isError builtin (node 26) with a structured
|
|
323
|
+
* fallback, then validates error payloads crossing sandbox boundaries.
|
|
324
|
+
*/
|
|
325
|
+
export declare function iserrorvalue(value: unknown): boolean;
|
|
326
|
+
/** asserts that a value is a real Error inside a boundary context. */
|
|
327
|
+
export declare function asserterrorvalue(value: unknown, context: string): asserts value is Error;
|
|
328
|
+
/**
|
|
329
|
+
* persistent key-value store over DatabaseSync (node:sqlite, node 26);
|
|
330
|
+
* degrades to an in-memory map when the module is unavailable so the
|
|
331
|
+
* same code runs on node 24 LTS and inside restricted runtimes.
|
|
332
|
+
*/
|
|
333
|
+
export declare class sqlitesyncstore implements Disposable {
|
|
334
|
+
#private;
|
|
335
|
+
constructor(path?: string);
|
|
336
|
+
open(): Promise<'sqlite' | 'memory-fallback'>;
|
|
337
|
+
set(key: string, value: string): void;
|
|
338
|
+
get(key: string): string | undefined;
|
|
339
|
+
delete(key: string): void;
|
|
340
|
+
[Symbol.dispose](): void;
|
|
341
|
+
}
|
|
342
|
+
/** one loader hook, disposable like node 26 registrations. */
|
|
343
|
+
export interface loaderhook {
|
|
344
|
+
readonly name: string;
|
|
345
|
+
resolve(specifier: string, parentURL: string | undefined): string;
|
|
346
|
+
[Symbol.dispose](): void;
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* reproduces the node 26 pattern where module.register() hooks are
|
|
350
|
+
* disposable: disposing the registration unloads the hook. specifiers
|
|
351
|
+
* resolve through the chain in registration order.
|
|
352
|
+
*/
|
|
353
|
+
export declare class modulehookchain implements Disposable {
|
|
354
|
+
#private;
|
|
355
|
+
register(hook: loaderhook): this;
|
|
356
|
+
resolve(specifier: string, parentURL?: string): string;
|
|
357
|
+
[Symbol.dispose](): void;
|
|
358
|
+
}
|
|
359
|
+
/** a hook that rewrites specifiers with a prefix, disposable via using. */
|
|
360
|
+
export declare function createprefixhook(prefix: string): loaderhook;
|
|
361
|
+
/** one chrome/perfetto trace event. */
|
|
362
|
+
export interface traceevent {
|
|
363
|
+
readonly name: string;
|
|
364
|
+
readonly ph: 'B' | 'E' | 'C' | 'i';
|
|
365
|
+
readonly ts: number;
|
|
366
|
+
readonly pid: number;
|
|
367
|
+
readonly tid: number;
|
|
368
|
+
readonly args?: Readonly<Record<string, number | string>>;
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* emits Perfetto trace packets (JSON tp httpd dialect) for counters,
|
|
372
|
+
* slices and instant events, matching the Perfetto support shipped in
|
|
373
|
+
* node 26.7.0.
|
|
374
|
+
*/
|
|
375
|
+
export declare class perfettotracesink {
|
|
376
|
+
#private;
|
|
377
|
+
begin(name: string, args?: Record<string, number | string>): void;
|
|
378
|
+
end(name: string): void;
|
|
379
|
+
counter(name: string, value: number): void;
|
|
380
|
+
/** serializes the collected packets in Perfetto JSON trace format. */
|
|
381
|
+
flush(): string;
|
|
382
|
+
get eventcount(): number;
|
|
383
|
+
}
|
|
384
|
+
/** one key loader registered with the store. */
|
|
385
|
+
export interface keyloader {
|
|
386
|
+
readonly name: string;
|
|
387
|
+
load(keyId: string): Uint8Array | undefined;
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* follows the node 26 STORE loaders for private keys: material never
|
|
391
|
+
* crosses the API boundary directly; callers hold opaque ids and the
|
|
392
|
+
* store resolves them through registered loaders only when an
|
|
393
|
+
* operation requires it.
|
|
394
|
+
*/
|
|
395
|
+
export declare class privatekeystore {
|
|
396
|
+
#private;
|
|
397
|
+
registerloader(loader: keyloader): this;
|
|
398
|
+
registerkey(keyId: string, alg: 'ML-DSA-65' | 'Ed25519' | 'ML-KEM-768'): this;
|
|
399
|
+
/** returns a redacted descriptor; material is never included. */
|
|
400
|
+
describe(keyId: string): {
|
|
401
|
+
keyId: string;
|
|
402
|
+
alg: string;
|
|
403
|
+
createdAt: string;
|
|
404
|
+
} | undefined;
|
|
405
|
+
sign(keyId: string, message: Uint8Array): Uint8Array;
|
|
406
|
+
}
|
|
407
|
+
/** dataloader plan: workers, shm and docker arguments. */
|
|
408
|
+
export interface dataloaderplan {
|
|
409
|
+
readonly workers: number;
|
|
410
|
+
readonly shmBytes: number;
|
|
411
|
+
readonly dockerArgs: readonly string[];
|
|
412
|
+
readonly pinMemory: boolean;
|
|
413
|
+
}
|
|
414
|
+
/**
|
|
415
|
+
* sizes /dev/shm and the worker fleet so DataLoader workers never hit
|
|
416
|
+
* the bus error undersized shm causes; the engine passes --shm-size 2g
|
|
417
|
+
* by default and grows it from this planner when needed.
|
|
418
|
+
*/
|
|
419
|
+
export declare function plandataloader(opts: {
|
|
420
|
+
gpus: number;
|
|
421
|
+
batchSize: number;
|
|
422
|
+
sampleBytes: number;
|
|
423
|
+
maxShmBytes?: number;
|
|
424
|
+
}): dataloaderplan;
|
|
425
|
+
/** tf/cuda compatibility verdict with notes. */
|
|
426
|
+
export interface tfcudacheck {
|
|
427
|
+
readonly compatible: boolean;
|
|
428
|
+
readonly notes: readonly string[];
|
|
429
|
+
}
|
|
430
|
+
/**
|
|
431
|
+
* answers whether a tensorflow build runs on a given cuda/driver pair,
|
|
432
|
+
* including the forward-compatibility packages nvidia ships for
|
|
433
|
+
* blackwell (sm_120).
|
|
434
|
+
*/
|
|
435
|
+
export declare function checktfcuda(tfVersion: string, cudaVersion: number, arch: string): tfcudacheck;
|
|
436
|
+
/** onnx session options with execution providers and env. */
|
|
437
|
+
export interface onnxsessionoptions {
|
|
438
|
+
readonly executionProviders: readonly {
|
|
439
|
+
name: string;
|
|
440
|
+
options?: Readonly<Record<string, string>>;
|
|
441
|
+
}[];
|
|
442
|
+
readonly env: Readonly<Record<string, string>>;
|
|
443
|
+
}
|
|
444
|
+
/**
|
|
445
|
+
* produces the session options for the WebGPU execution provider,
|
|
446
|
+
* including the lavapipe fallback path for pure-software hosts.
|
|
447
|
+
*/
|
|
448
|
+
export declare function buildonnxwebgpusession(softwareFallback: boolean): onnxsessionoptions;
|
|
449
|
+
/** llm serving plan: weights, kv cache, throughput. */
|
|
450
|
+
export interface llmplan {
|
|
451
|
+
readonly weightsGb: number;
|
|
452
|
+
readonly kvCacheGb: number;
|
|
453
|
+
readonly totalGb: number;
|
|
454
|
+
readonly estimatedTokensPerSec: number;
|
|
455
|
+
}
|
|
456
|
+
/**
|
|
457
|
+
* plans token-generation workloads for vulkan-served models on the
|
|
458
|
+
* software pipeline: weight footprint by quantization, KV-cache
|
|
459
|
+
* sizing and a throughput estimate from virtual FLOPS.
|
|
460
|
+
*/
|
|
461
|
+
export declare function planllminference(opts: {
|
|
462
|
+
paramsBillions: number;
|
|
463
|
+
quantBytesPerWeight: number;
|
|
464
|
+
contextTokens: number;
|
|
465
|
+
layers: number;
|
|
466
|
+
kvBytesPerTokenPerLayer: number;
|
|
467
|
+
virtualGflops: number;
|
|
468
|
+
}): llmplan;
|
|
469
|
+
/** headless txt2img pipeline plan. */
|
|
470
|
+
export interface stablediffusionplan {
|
|
471
|
+
readonly env: Readonly<Record<string, string>>;
|
|
472
|
+
readonly vramEstimateGb: number;
|
|
473
|
+
readonly pipeline: 'txt2img';
|
|
474
|
+
}
|
|
475
|
+
/**
|
|
476
|
+
* configures a text-to-image pipeline that needs no X server: vulkan
|
|
477
|
+
* runs headless through the WSI headless swapchain and the lavapipe
|
|
478
|
+
* ICD.
|
|
479
|
+
*/
|
|
480
|
+
export declare function planstablediffusion(opts: {
|
|
481
|
+
resolution: 512 | 768 | 1024;
|
|
482
|
+
steps: number;
|
|
483
|
+
}): stablediffusionplan;
|
|
484
|
+
/** one vram allocation request. */
|
|
485
|
+
export interface vramallocation {
|
|
486
|
+
readonly weightsGb: number;
|
|
487
|
+
readonly kvCacheGb: number;
|
|
488
|
+
readonly activationsGb: number;
|
|
489
|
+
readonly workspaceGb: number;
|
|
490
|
+
}
|
|
491
|
+
/**
|
|
492
|
+
* accounts for weights, KV cache, activations and workspace against
|
|
493
|
+
* the spoofed or physical VRAM ceiling, warning before OOM instead of
|
|
494
|
+
* after.
|
|
495
|
+
*/
|
|
496
|
+
export declare class vrambudgetplanner {
|
|
497
|
+
#private;
|
|
498
|
+
constructor(totalGb: number);
|
|
499
|
+
fits(allocation: vramallocation): {
|
|
500
|
+
fits: boolean;
|
|
501
|
+
usedGb: number;
|
|
502
|
+
freeGb: number;
|
|
503
|
+
warning?: string;
|
|
504
|
+
};
|
|
505
|
+
}
|
|
506
|
+
/** verdict of one canary validation run. */
|
|
507
|
+
export interface canaryverdict {
|
|
508
|
+
readonly component: string;
|
|
509
|
+
readonly revision: string;
|
|
510
|
+
readonly passed: boolean;
|
|
511
|
+
readonly checks: readonly string[];
|
|
512
|
+
readonly rolledBackTo: string | null;
|
|
513
|
+
}
|
|
514
|
+
/**
|
|
515
|
+
* validates a new wasm component revision before it replaces the
|
|
516
|
+
* healthy one: structural validation (magic header, known world hash),
|
|
517
|
+
* a smoke execution under a fuel budget and epoch deadline, and
|
|
518
|
+
* automatic rollback to the last healthy revision when any check
|
|
519
|
+
* fails. the validator is the deployment safety net of the component
|
|
520
|
+
* registry above.
|
|
521
|
+
*/
|
|
522
|
+
export declare class wasmcanaryvalidator {
|
|
523
|
+
#private;
|
|
524
|
+
/** registers the currently healthy revision of a component. */
|
|
525
|
+
markhealthy(component: string, revision: string, worldHash: string): void;
|
|
526
|
+
validate(opts: {
|
|
527
|
+
component: string;
|
|
528
|
+
revision: string;
|
|
529
|
+
bytes: Uint8Array;
|
|
530
|
+
worldHash: string;
|
|
531
|
+
fuelBudget?: number;
|
|
532
|
+
smoke?: () => void;
|
|
533
|
+
}): canaryverdict;
|
|
534
|
+
healthyrevision(component: string): string | undefined;
|
|
535
|
+
}
|
|
536
|
+
/** one wasi:gfx capability request for a component. */
|
|
537
|
+
export interface wasigfxgrant {
|
|
538
|
+
readonly component: string;
|
|
539
|
+
readonly adapter: 'fallback-lavapipe' | 'native';
|
|
540
|
+
readonly maxTextureDimension2d: number;
|
|
541
|
+
readonly features: readonly ('shader-f16' | 'timestamp-query' | 'indirect-first-instance')[];
|
|
542
|
+
}
|
|
543
|
+
/** compiled wasi:gfx import plan. */
|
|
544
|
+
export interface wasigfxplan {
|
|
545
|
+
readonly grants: readonly wasigfxgrant[];
|
|
546
|
+
readonly runtime: {
|
|
547
|
+
readonly wgpu: string;
|
|
548
|
+
readonly witWorld: string;
|
|
549
|
+
readonly notes: readonly string[];
|
|
550
|
+
};
|
|
551
|
+
}
|
|
552
|
+
/**
|
|
553
|
+
* plans the wasi:gfx interface (the WebGPU-in-wasm proposal riding on
|
|
554
|
+
* wgpu 30.x — "wgpu virt wgpu 30" in the omnihypercore notes): each
|
|
555
|
+
* component receives a capability grant bound to an adapter choice
|
|
556
|
+
* (lavapipe fallback for software hosts, native otherwise) and the
|
|
557
|
+
* feature set compiled into the import namespace wasi:gfx/graphics.
|
|
558
|
+
*/
|
|
559
|
+
export declare function planwasigfx(grants: readonly wasigfxgrant[]): wasigfxplan;
|
|
560
|
+
/** one chat command envelope. */
|
|
561
|
+
export interface chatcommand {
|
|
562
|
+
readonly command: '/vm' | '/gpu' | '/migrate';
|
|
563
|
+
readonly action: string;
|
|
564
|
+
readonly args: Readonly<Record<string, string | number>>;
|
|
565
|
+
readonly confirmRequired: boolean;
|
|
566
|
+
}
|
|
567
|
+
/** webgpu dashboard specification rendered by the chat frontend. */
|
|
568
|
+
export interface dashboardspec {
|
|
569
|
+
readonly panels: readonly {
|
|
570
|
+
kind: 'gauge' | 'chart' | 'tensor';
|
|
571
|
+
readonly metric: string;
|
|
572
|
+
}[];
|
|
573
|
+
readonly renderer: 'webgpu-lavapipe';
|
|
574
|
+
readonly fpsTarget: number;
|
|
575
|
+
}
|
|
576
|
+
/**
|
|
577
|
+
* builds ChatOps command envelopes for the infrastructure chat: /vm
|
|
578
|
+
* create|start|stop, /gpu attach|detach and /migrate begin|cancel;
|
|
579
|
+
* destructive actions always require confirmation. the companion
|
|
580
|
+
* dashboard spec renders engine telemetry through WebGPU on the
|
|
581
|
+
* lavapipe fallback adapter, reusing the compute surface above.
|
|
582
|
+
*/
|
|
583
|
+
export declare class chatopsdashboard {
|
|
584
|
+
vmcreate(name: string, vcpus: number, ramGb: number): chatcommand;
|
|
585
|
+
vmstop(name: string): chatcommand;
|
|
586
|
+
gpuattach(vm: string, gpuId: string, migProfile?: string): chatcommand;
|
|
587
|
+
migratebegin(vm: string, targetHost: string): chatcommand;
|
|
588
|
+
/** renders the telemetry dashboard spec for the chat frontend. */
|
|
589
|
+
dashboardspec(): dashboardspec;
|
|
590
|
+
}
|
|
591
|
+
/** one generated bpf telemetry program. */
|
|
592
|
+
export interface bpfprogram {
|
|
593
|
+
readonly name: string;
|
|
594
|
+
readonly section: string;
|
|
595
|
+
readonly source: string;
|
|
596
|
+
readonly counters: readonly string[];
|
|
597
|
+
}
|
|
598
|
+
/**
|
|
599
|
+
* builds eBPF programs that count GPU UAPI activity: DRM ioctl
|
|
600
|
+
* tracepoints (drm_ioctl enter/exit with the ioctl nr argument) feed
|
|
601
|
+
* per-file utilization counters, and the vendor UAPI ioctls the engine
|
|
602
|
+
* spoofs map onto named counters. the programs attach with the libbpf
|
|
603
|
+
* 1.6.0 toolchain already used by the passage stack in
|
|
604
|
+
* virtualization.ts (ebpfprogram), so GPU telemetry joins the same
|
|
605
|
+
* loader.
|
|
606
|
+
*/
|
|
607
|
+
export declare class ebpfgputelemetry {
|
|
608
|
+
#private;
|
|
609
|
+
/** registers a vendor UAPI ioctl number under a counter name. */
|
|
610
|
+
registercounter(name: string, ioctlNr: number): this;
|
|
611
|
+
/** builds the tracepoint program counting the registered ioctls. */
|
|
612
|
+
build(): bpfprogram;
|
|
613
|
+
listcounters(): readonly string[];
|
|
614
|
+
}
|
|
615
|
+
/** prediction for one migration window. */
|
|
616
|
+
export interface dirtyprediction {
|
|
617
|
+
readonly predictedMb: number;
|
|
618
|
+
readonly transferMs: number;
|
|
619
|
+
readonly readyToCutover: boolean;
|
|
620
|
+
}
|
|
621
|
+
/**
|
|
622
|
+
* predicts the dirty-page volume of the next pre-copy round for AI
|
|
623
|
+
* workloads (large KV caches, sustained gradient writes): an online
|
|
624
|
+
* linear model maps [dirtyMb observed, writeRate mbps, elapsedMs] to
|
|
625
|
+
* the next round's dirty set, with a least-mean-squares update on
|
|
626
|
+
* every completed round. when the predicted transfer time drops below
|
|
627
|
+
* the downtime budget, the migration is ready to cutover. the state
|
|
628
|
+
* machine it feeds lives in virtualization.ts (checkpoint family).
|
|
629
|
+
*/
|
|
630
|
+
export declare class aimigrationpredictor {
|
|
631
|
+
#private;
|
|
632
|
+
constructor(budgetMs?: number, bandwidthMbps?: number);
|
|
633
|
+
/** predicts the next round from the last observation. */
|
|
634
|
+
predict(observedDirtyMb: number, writeRateMbps: number, elapsedMs: number): dirtyprediction;
|
|
635
|
+
/** least-mean-squares step after a completed round. */
|
|
636
|
+
learn(observedDirtyMb: number, actualNextDirtyMb: number, writeRateMbps: number, elapsedMs: number): number;
|
|
637
|
+
get rounds(): number;
|
|
638
|
+
}
|
|
639
|
+
/** one PartyKit realtime channel contract for the engine dashboard. */
|
|
640
|
+
export interface partykitchannel {
|
|
641
|
+
readonly appid: string;
|
|
642
|
+
readonly room: string;
|
|
643
|
+
readonly protocol: 'wss';
|
|
644
|
+
readonly url: string;
|
|
645
|
+
readonly presence: readonly ('join' | 'leave' | 'update')[];
|
|
646
|
+
readonly heartbeatms: 100;
|
|
647
|
+
readonly maxconnections: 256;
|
|
648
|
+
}
|
|
649
|
+
/**
|
|
650
|
+
* builds PartyKit edge-presence realtime channels: one room per
|
|
651
|
+
* sandbox or GPU monitor, the wss endpoint rooted at the edge host
|
|
652
|
+
* (never a loopback), presence events join/leave/update and a 100 ms
|
|
653
|
+
* heartbeat. room names are normalized to lowercase without spaces so
|
|
654
|
+
* they can travel in URL segments. the builder emits connection
|
|
655
|
+
* descriptors only; the websocket itself stays with the caller.
|
|
656
|
+
*/
|
|
657
|
+
export declare class partykitchannelbuilder {
|
|
658
|
+
#private;
|
|
659
|
+
constructor(host?: string);
|
|
660
|
+
/** builds one channel for a room such as "sandbox-42-gpu-0". */
|
|
661
|
+
room(rawroom: string): partykitchannel;
|
|
662
|
+
}
|
|
663
|
+
/** one L3AF 2.1 marketplace application (an xBPF kernel package). */
|
|
664
|
+
export interface l3afapp {
|
|
665
|
+
readonly name: string;
|
|
666
|
+
readonly version: '2.1';
|
|
667
|
+
readonly artifacturl: string;
|
|
668
|
+
readonly config: Readonly<Record<string, string | number>>;
|
|
669
|
+
readonly command: 'start' | 'stop' | 'update';
|
|
670
|
+
readonly monitoringport: number;
|
|
671
|
+
}
|
|
672
|
+
/** l3afd-style config document emitted by the manager. */
|
|
673
|
+
export interface l3afdconfig {
|
|
674
|
+
readonly ebpftype: 'xdp' | 'tc' | 'kprobe';
|
|
675
|
+
readonly kernels: readonly l3afapp[];
|
|
676
|
+
}
|
|
677
|
+
/**
|
|
678
|
+
* manages L3AF 2.1 xBPF marketplace applications: each app is an
|
|
679
|
+
* eBPF kernel package fetched from a marketplace artifact URL with a
|
|
680
|
+
* flat config map, started and stopped through l3afd with a per-app
|
|
681
|
+
* monitoring port. the manager validates names (lowercase, no dots)
|
|
682
|
+
* and keeps an ordered kernel chain per interface type so the emitted
|
|
683
|
+
* l3afd config drops straight into /etc/l3af/l3afd.cfg.
|
|
684
|
+
*/
|
|
685
|
+
export declare class l3afappmanager {
|
|
686
|
+
#private;
|
|
687
|
+
/** registers one marketplace app for deployment. */
|
|
688
|
+
deploy(app: Omit<l3afapp, 'version' | 'command'>): l3afapp;
|
|
689
|
+
/** marks every deployed kernel for stop (chain teardown). */
|
|
690
|
+
stopall(): readonly l3afapp[];
|
|
691
|
+
/** emits the l3afd config document for one interface type. */
|
|
692
|
+
config(ebpftype: l3afdconfig['ebpftype']): l3afdconfig;
|
|
693
|
+
get count(): number;
|
|
694
|
+
}
|
|
695
|
+
/** one RAPL power domain exposed by the host. */
|
|
696
|
+
export interface raplzone {
|
|
697
|
+
readonly name: string;
|
|
698
|
+
readonly package: number;
|
|
699
|
+
readonly budgetw: number;
|
|
700
|
+
readonly usedw: number;
|
|
701
|
+
}
|
|
702
|
+
/** one greenhyper placement decision. */
|
|
703
|
+
export interface greenhyperplacement {
|
|
704
|
+
readonly zone: string;
|
|
705
|
+
readonly vmwatts: number;
|
|
706
|
+
readonly raplfile: string;
|
|
707
|
+
readonly headroomw: number;
|
|
708
|
+
readonly reason: string;
|
|
709
|
+
}
|
|
710
|
+
/**
|
|
711
|
+
* greenhyper power governor: binpacks VM placements into RAPL zones
|
|
712
|
+
* while respecting the package power budget. the governor reads the
|
|
713
|
+
* intel-rapl constraint files (/sys/class/powercap), picks the zone
|
|
714
|
+
* with the smallest headroom that still fits the VM (best-fit
|
|
715
|
+
* decreasing) and lowers the constraint when the fleet is idle. pure
|
|
716
|
+
* planning: the caller applies the microvolts decision.
|
|
717
|
+
*/
|
|
718
|
+
export declare class greenhyperpowergovernor {
|
|
719
|
+
#private;
|
|
720
|
+
constructor(zones: readonly raplzone[]);
|
|
721
|
+
/** best-fit placement of one VM with a watt draw estimate. */
|
|
722
|
+
place(vmwatts: number, vmname: string): greenhyperplacement;
|
|
723
|
+
/** releases the watts of one VM back to the zone pool. */
|
|
724
|
+
release(zonename: string, vmwatts: number): void;
|
|
725
|
+
/** fleet idle check: every zone under 10% draw. */
|
|
726
|
+
idle(): boolean;
|
|
727
|
+
}
|
|
728
|
+
/** one replicated key with its lamport clock. */
|
|
729
|
+
export interface statevectorentry {
|
|
730
|
+
readonly key: string;
|
|
731
|
+
readonly value: string;
|
|
732
|
+
readonly clock: number;
|
|
733
|
+
}
|
|
734
|
+
/** the outcome of a two-round exchange. */
|
|
735
|
+
export interface statevectorroundtrip {
|
|
736
|
+
readonly round1keys: readonly string[];
|
|
737
|
+
readonly round2deltas: readonly statevectorentry[];
|
|
738
|
+
readonly converged: boolean;
|
|
739
|
+
}
|
|
740
|
+
/**
|
|
741
|
+
* statevector 2-round sync, the CRDT companion of the Automerge/Yjs
|
|
742
|
+
* rows already absorbed: round 1 exchanges bare state vectors (key to
|
|
743
|
+
* clock) so each peer learns which keys it is missing or stale on;
|
|
744
|
+
* round 2 ships only those deltas. concurrent writes win on the higher
|
|
745
|
+
* lamport clock, ties break lexicographically on the value, so the
|
|
746
|
+
* merge is commutative, associative and idempotent (convergence holds
|
|
747
|
+
* without a coordinator).
|
|
748
|
+
*/
|
|
749
|
+
export declare class statevectorsync {
|
|
750
|
+
#private;
|
|
751
|
+
/** writes one key and advances its lamport clock. */
|
|
752
|
+
set(key: string, value: string): statevectorentry;
|
|
753
|
+
/** bare state vector: key to clock, no payloads. */
|
|
754
|
+
statevector(): ReadonlyMap<string, number>;
|
|
755
|
+
/** keys this peer must send to a remote holding the given vector. */
|
|
756
|
+
diff(remote: ReadonlyMap<string, number>): readonly string[];
|
|
757
|
+
/** applies remote deltas with last-writer-wins semantics. */
|
|
758
|
+
merge(deltas: readonly statevectorentry[]): number;
|
|
759
|
+
/** runs the full two-round exchange against a remote peer. */
|
|
760
|
+
roundtrip(remote: statevectorsync): statevectorroundtrip;
|
|
761
|
+
/** full entry snapshot used by the reverse leg of the exchange. */
|
|
762
|
+
snapshot(): readonly statevectorentry[];
|
|
763
|
+
get size(): number;
|
|
764
|
+
}
|
|
765
|
+
/** block size of the BitTorrent v2 merkle tree. */
|
|
766
|
+
export declare const bittorrentv2blockbytes = 16384;
|
|
767
|
+
/** one p2p artifact address in both ecosystems. */
|
|
768
|
+
export interface p2partifact {
|
|
769
|
+
readonly multihashhex: string;
|
|
770
|
+
readonly cidv1raw: string;
|
|
771
|
+
readonly bittorrentv2roothex: string;
|
|
772
|
+
readonly magnet: string;
|
|
773
|
+
readonly multiaddr: string;
|
|
774
|
+
readonly pieceleaves: number;
|
|
775
|
+
}
|
|
776
|
+
/**
|
|
777
|
+
* content addressing across libp2p and BitTorrent v2: the same bytes
|
|
778
|
+
* are hashed into a sha2-256 multihash (base32 CIDv1 raw for libp2p
|
|
779
|
+
* /ipfs/ addressing) and into the BitTorrent v2 merkle root built
|
|
780
|
+
* over 16 KiB block leaves (the v2 spec fixed the leaf size), yielding
|
|
781
|
+
* the magnet link and a libp2p multiaddr for the seed peer.
|
|
782
|
+
*/
|
|
783
|
+
export declare function p2pcontentaddress(payload: Uint8Array, peerid?: string): p2partifact;
|
|
784
|
+
/** one planned tailnet endpoint. */
|
|
785
|
+
export interface tailnetendpoint {
|
|
786
|
+
readonly hostname: string;
|
|
787
|
+
readonly magicdns: string;
|
|
788
|
+
readonly ip: string;
|
|
789
|
+
readonly isCgnat: boolean;
|
|
790
|
+
readonly derpFallback: string;
|
|
791
|
+
readonly milestones: readonly string[];
|
|
792
|
+
}
|
|
793
|
+
/**
|
|
794
|
+
* plans tailnet endpoints for engine nodes: every node gets a
|
|
795
|
+
* CGNAT-range address (100.64.0.0/10), a MagicDNS name, a DERP relay
|
|
796
|
+
* fallback for the no-direct-path case and the six-mesh-milestone
|
|
797
|
+
* checklist (subnet routes, acls, derp regions, magicdns, key expiry,
|
|
798
|
+
* tailscale ssh). the planner rejects addresses outside the CGNAT
|
|
799
|
+
* range so a tailnet identity can never leak onto public space.
|
|
800
|
+
*/
|
|
801
|
+
export declare class tailscaleendpointplanner {
|
|
802
|
+
#private;
|
|
803
|
+
constructor(tailnet?: string, derp?: string);
|
|
804
|
+
/** plans one endpoint from a CGNAT octet quad. */
|
|
805
|
+
plan(hostname: string, ip: string): tailnetendpoint;
|
|
806
|
+
/** checks one ipv4 address against the CGNAT range. */
|
|
807
|
+
iscgnat(ip: string): boolean;
|
|
808
|
+
}
|
|
809
|
+
/** the six tailscale mesh milestones of the portal sheet. */
|
|
810
|
+
export declare const tailscalemeshmilestones: readonly string[];
|
|
811
|
+
/**
|
|
812
|
+
* the MAX9 delivery variant of the saddle v5 portal: a hardened
|
|
813
|
+
* build flavor using zip compression level 9 with a measured 51%
|
|
814
|
+
* archive ratio, the docker tag :max9, the max9 branch and the
|
|
815
|
+
* omni-hypercore-v5-FINAL-...-MAX9.zip artifact. the name is NOT an
|
|
816
|
+
* NVIDIA Maxwell generation despite the gpu-like sound; it is pure
|
|
817
|
+
* build/delivery branding and is catalogued here as legacy provenance
|
|
818
|
+
* of the delivery pipeline (374 contexts claim of the portal).
|
|
819
|
+
*/
|
|
820
|
+
export declare const max9buildvariant: {
|
|
821
|
+
readonly kind: 'build/delivery variant';
|
|
822
|
+
readonly compressionlevel: 9;
|
|
823
|
+
readonly measuredratio: '51%';
|
|
824
|
+
readonly dockertag: ':max9';
|
|
825
|
+
readonly branch: 'max9';
|
|
826
|
+
readonly artifact: 'omni-hypercore-v5-FINAL-...-MAX9.zip';
|
|
827
|
+
readonly note: 'not a GPU generation; legacy portal branding for the level-9 hardened zip';
|
|
828
|
+
};
|
|
829
|
+
/** one roadmap backlog row. */
|
|
830
|
+
export interface roadmapbacklogitem {
|
|
831
|
+
readonly id: string;
|
|
832
|
+
readonly title: string;
|
|
833
|
+
readonly origin: 'future.ts v4';
|
|
834
|
+
}
|
|
835
|
+
/**
|
|
836
|
+
* the thirteen roadmap backlog items of the v4 future.ts ledger that
|
|
837
|
+
* no v3 module had absorbed (grep-verified zero matches before this
|
|
838
|
+
* merge): AMX tile real support, dual-X3D detection, WebTransport
|
|
839
|
+
* datagram relay, Turborepo remote cache on GHCR, pnpm v9
|
|
840
|
+
* content-addressable store, QUIC + HTTP/3 control plane, P2P WebRTC
|
|
841
|
+
* mesh, OPFS browser sandboxes, WebCodecs + WebGPU encode,
|
|
842
|
+
* SharedArrayBuffer cross-origin isolation, WASM JSPI scheduling,
|
|
843
|
+
* GHCR gha layer reuse and Nix flakes hermetic builds.
|
|
844
|
+
*/
|
|
845
|
+
export declare const roadmapbacklog: readonly roadmapbacklogitem[];
|
|
846
|
+
/** returns the roadmap backlog size (thirteen items). */
|
|
847
|
+
export declare function backlogCount(): number;
|
|
848
|
+
/** origin of one feature: the v2 future.ts ledger or the v3 additions. */
|
|
849
|
+
export type computefeatureorigin = 'future.ts' | 'omnihypercore-v3' | 'portal-v5' | 'v4fix3';
|
|
850
|
+
/** one ledger row: id, origin, name and export name. */
|
|
851
|
+
export interface computefeaturemeta {
|
|
852
|
+
readonly id: string;
|
|
853
|
+
readonly origin: computefeatureorigin;
|
|
854
|
+
readonly name: string;
|
|
855
|
+
readonly exportname: string;
|
|
856
|
+
}
|
|
857
|
+
/**
|
|
858
|
+
* the compute-domain ledger: twenty-five features absorbed from the
|
|
859
|
+
* removed future.ts (wasm 001-008, webgpu 009-012, node26 013-019,
|
|
860
|
+
* ai-workloads 045-050) plus five omnihypercore additions. the full
|
|
861
|
+
* 55-feature redistribution map lives in the worklog (task v3-B1).
|
|
862
|
+
*/
|
|
863
|
+
export declare const computefeatureindex: readonly computefeaturemeta[];
|
|
864
|
+
/** returns the ledger count split by origin. */
|
|
865
|
+
export declare function computefeaturecount(): {
|
|
866
|
+
total: number;
|
|
867
|
+
absorbed: number;
|
|
868
|
+
added: number;
|
|
869
|
+
};
|
|
870
|
+
/** version anchors of the compute domain (worklog v3-VERIFY). */
|
|
871
|
+
export declare const computerversions: {
|
|
872
|
+
readonly wasmtime: '48.0.0';
|
|
873
|
+
readonly wasmtimeSupport: 'LTS until 2028-08';
|
|
874
|
+
readonly wasi: '0.2.8 / 0.3.0';
|
|
875
|
+
readonly spin: '3.6.0';
|
|
876
|
+
readonly spinrepo: 'spinframework/spin';
|
|
877
|
+
readonly wasmcloud: 'latest 2.x';
|
|
878
|
+
readonly wasmcloudNote: 'release page did not expose the version; left unpinned on purpose';
|
|
879
|
+
readonly wgpu: '30.x';
|
|
880
|
+
readonly kernelstable: '7.1.9';
|
|
881
|
+
readonly kernellongterm: '6.18.45';
|
|
882
|
+
};
|
|
883
|
+
/** one tile partition handed to a guest queue. */
|
|
884
|
+
export interface nputilepartition {
|
|
885
|
+
readonly guest: string;
|
|
886
|
+
readonly tiles: number;
|
|
887
|
+
readonly opspersec: number;
|
|
888
|
+
readonly kind: 'amxtmul' | 'xdnaaie';
|
|
889
|
+
}
|
|
890
|
+
/** the planned NPU surface: tiles, partitions, flags and loadout math. */
|
|
891
|
+
export interface nputileplan {
|
|
892
|
+
readonly vendor: 'intel' | 'amd';
|
|
893
|
+
readonly totaltiles: number;
|
|
894
|
+
readonly partitions: readonly nputilepartition[];
|
|
895
|
+
readonly qemuflags: readonly string[];
|
|
896
|
+
readonly xdnaenv: readonly string[];
|
|
897
|
+
readonly utilization: number;
|
|
898
|
+
}
|
|
899
|
+
/**
|
|
900
|
+
* plans Intel AMX and AMD XDNA NPU tile partitioning (ledger F-016):
|
|
901
|
+
* Intel Sapphire Rapids exposes 8 TMUL tiles (each computing one 16x64
|
|
902
|
+
* by 64x16 int8/bf16 product per instruction via +amx-tile,+amx-int8,
|
|
903
|
+
* +amx-bf16 cpu flags), AMD Strix Halo exposes 32 XDNA2 AI-engine tiles
|
|
904
|
+
* routed through the xdna driver environment. the planner validates
|
|
905
|
+
* that guest partitions never double-book a tile, computes honest peak
|
|
906
|
+
* ops per partition and emits the QEMU cpu flags (Intel) or the xdna
|
|
907
|
+
* device environment (AMD) the guest needs to see the accelerator.
|
|
908
|
+
*/
|
|
909
|
+
export declare function plannputiles(opts: {
|
|
910
|
+
vendor: 'intel' | 'amd';
|
|
911
|
+
guests: readonly {
|
|
912
|
+
guest: string;
|
|
913
|
+
tiles: number;
|
|
914
|
+
share?: number;
|
|
915
|
+
}[];
|
|
916
|
+
}): nputileplan;
|
|
917
|
+
/** one node of the planned Ray + vLLM inference cluster. */
|
|
918
|
+
export interface rayvllmnode {
|
|
919
|
+
readonly role: 'head' | 'worker';
|
|
920
|
+
readonly gpus: number;
|
|
921
|
+
readonly cpus: number;
|
|
922
|
+
readonly memorygb: number;
|
|
923
|
+
readonly rayargv: readonly string[];
|
|
924
|
+
readonly vllmargv: readonly string[];
|
|
925
|
+
}
|
|
926
|
+
/** the distributed inference plan across head and workers. */
|
|
927
|
+
export interface rayvllmplan {
|
|
928
|
+
readonly model: string;
|
|
929
|
+
readonly tensorparallel: number;
|
|
930
|
+
readonly pipelineparallel: number;
|
|
931
|
+
readonly totalgpus: number;
|
|
932
|
+
readonly nodes: readonly rayvllmnode[];
|
|
933
|
+
readonly headaddress: string;
|
|
934
|
+
}
|
|
935
|
+
/**
|
|
936
|
+
* plans a Ray + vLLM distributed inference cluster (ledger F-061): ray
|
|
937
|
+
* start argv for head (with the dashboard port and object-store size)
|
|
938
|
+
* and workers (joining via the head address), vllm serve argv with
|
|
939
|
+
* tensor/pipeline parallelism derived from the per-node GPU count, fp8
|
|
940
|
+
* kv-cache, chunked prefill and gpu-memory-utilization budgeting. the
|
|
941
|
+
* planner validates that tensor parallelism divides every worker GPU
|
|
942
|
+
* count and that the cluster-wide GPU total matches the shard geometry.
|
|
943
|
+
*/
|
|
944
|
+
export declare function planrayvllmcluster(opts: {
|
|
945
|
+
model: string;
|
|
946
|
+
nodes: readonly {
|
|
947
|
+
role: 'head' | 'worker';
|
|
948
|
+
gpus: number;
|
|
949
|
+
cpus: number;
|
|
950
|
+
memorygb: number;
|
|
951
|
+
}[];
|
|
952
|
+
tensorparallel?: number;
|
|
953
|
+
pipelineparallel?: number;
|
|
954
|
+
}): rayvllmplan;
|
|
955
|
+
/** the generated VirtualMachine CRD plus one sample custom resource. */
|
|
956
|
+
export interface crdmanifestplan {
|
|
957
|
+
readonly crd: string;
|
|
958
|
+
readonly sample: string;
|
|
959
|
+
readonly group: string;
|
|
960
|
+
readonly version: string;
|
|
961
|
+
readonly kind: string;
|
|
962
|
+
readonly shortnames: readonly string[];
|
|
963
|
+
}
|
|
964
|
+
/**
|
|
965
|
+
* builds the Kubernetes CRD manifest for SADDLE VirtualMachine custom
|
|
966
|
+
* resources (ledger F-062): a complete apiextensions.k8s.io/v1
|
|
967
|
+
* CustomResourceDefinition yaml string — group, names with short
|
|
968
|
+
* aliases, scope, one served/storage version, printer columns and an
|
|
969
|
+
* OpenAPI v3 schema for the vm spec (cpus, memorymb, gpu profile,
|
|
970
|
+
* runtime, migration mode) — plus a ready-to-apply sample custom
|
|
971
|
+
* resource. the string is generated, not fetched, so the engine stays
|
|
972
|
+
* dependency-free; `kubectl apply -f` is the only external step.
|
|
973
|
+
*/
|
|
974
|
+
export declare function buildvmcrdmanifest(opts?: {
|
|
975
|
+
group?: string;
|
|
976
|
+
version?: string;
|
|
977
|
+
kind?: string;
|
|
978
|
+
}): crdmanifestplan;
|
|
979
|
+
/** one cell of the federated hierarchy with its quota vector. */
|
|
980
|
+
export interface federatedcell {
|
|
981
|
+
readonly name: string;
|
|
982
|
+
readonly nodes: number;
|
|
983
|
+
readonly vcpu: number;
|
|
984
|
+
readonly vramgb: number;
|
|
985
|
+
readonly gpus: number;
|
|
986
|
+
}
|
|
987
|
+
/** the federated quota plan for up to 10k nodes. */
|
|
988
|
+
export interface federatedquotaplan {
|
|
989
|
+
readonly clusters: readonly federatedcell[];
|
|
990
|
+
readonly cells: readonly federatedcell[];
|
|
991
|
+
readonly totalnodes: number;
|
|
992
|
+
readonly totals: {
|
|
993
|
+
vcpu: number;
|
|
994
|
+
vramgb: number;
|
|
995
|
+
gpus: number;
|
|
996
|
+
};
|
|
997
|
+
readonly headroom: {
|
|
998
|
+
vcpu: number;
|
|
999
|
+
vramgb: number;
|
|
1000
|
+
gpus: number;
|
|
1001
|
+
};
|
|
1002
|
+
readonly placementhints: readonly string[];
|
|
1003
|
+
}
|
|
1004
|
+
/**
|
|
1005
|
+
* plans federated cluster quotas for global scheduling at 10k-node
|
|
1006
|
+
* scale (ledger F-065): the fleet folds into two levels — clusters
|
|
1007
|
+
* (about 250 nodes each, matching the etcd object budget) and cells
|
|
1008
|
+
* (about 2500 nodes each, one scheduling domain) — the planner
|
|
1009
|
+
* validates node counts, sums the vcpu/vram/gpu vectors, reserves a 10%
|
|
1010
|
+
* headroom per resource for drains and migrations, and emits placement
|
|
1011
|
+
* hints so the global scheduler prefers the cell with the highest
|
|
1012
|
+
* headroom ratio instead of a raw bin-pack.
|
|
1013
|
+
*/
|
|
1014
|
+
export declare function planfederatedquota(clusters: readonly {
|
|
1015
|
+
name: string;
|
|
1016
|
+
nodes: number;
|
|
1017
|
+
vcpusPerNode: number;
|
|
1018
|
+
vramgbPerNode: number;
|
|
1019
|
+
}[], gpusPerCell?: number): federatedquotaplan;
|
|
1020
|
+
/** the planned browser-facing WebTransport passage endpoint. */
|
|
1021
|
+
export interface webtransportplan {
|
|
1022
|
+
readonly url: string;
|
|
1023
|
+
readonly port: number;
|
|
1024
|
+
readonly datagramflow: 'unreliable' | 'partial-reliable';
|
|
1025
|
+
readonly quicparams: readonly string[];
|
|
1026
|
+
readonly headers: readonly string[];
|
|
1027
|
+
readonly browserapi: readonly string[];
|
|
1028
|
+
}
|
|
1029
|
+
/**
|
|
1030
|
+
* plans the WebTransport datagram relay endpoint (backlog rb-03): the
|
|
1031
|
+
* browser-facing twin of the QUIC passage gateway. the planner emits the
|
|
1032
|
+
* wt:// (with https fallback) URL, the QUIC transport parameters a
|
|
1033
|
+
* browser requires for datagrams (max_datagram_frame_size, the
|
|
1034
|
+
* datagram receive queue window), the connection headers (including the
|
|
1035
|
+
* COOP/COEP pair cross-origin isolation needs) and the exact
|
|
1036
|
+
* WebTransportBrowser API calls the sandbox tier uses to open a
|
|
1037
|
+
* bidirectional stream plus an unreliable datagram lane.
|
|
1038
|
+
*/
|
|
1039
|
+
export declare function planwebtransportendpoint(opts?: {
|
|
1040
|
+
host?: string;
|
|
1041
|
+
port?: number;
|
|
1042
|
+
flow?: 'unreliable' | 'partial-reliable';
|
|
1043
|
+
}): webtransportplan;
|
|
1044
|
+
/** one guest disk image kept inside the browser OPFS bucket. */
|
|
1045
|
+
export interface opfsbucket {
|
|
1046
|
+
readonly guest: string;
|
|
1047
|
+
readonly sizemb: number;
|
|
1048
|
+
readonly handle: string;
|
|
1049
|
+
readonly seed: 'empty' | 'alpine' | 'custom';
|
|
1050
|
+
}
|
|
1051
|
+
/** the OPFS-backed browser sandbox storage plan. */
|
|
1052
|
+
export interface opfsstorageplan {
|
|
1053
|
+
readonly root: string;
|
|
1054
|
+
readonly buckets: readonly opfsbucket[];
|
|
1055
|
+
readonly totalsizemb: number;
|
|
1056
|
+
readonly quotamb: number;
|
|
1057
|
+
readonly fits: boolean;
|
|
1058
|
+
readonly browserapi: readonly string[];
|
|
1059
|
+
readonly eviction: readonly string[];
|
|
1060
|
+
}
|
|
1061
|
+
/**
|
|
1062
|
+
* plans Origin Private File System guest disks (backlog rb-08): each
|
|
1063
|
+
* sandbox gets one OPFS bucket holding its sparse disk image plus a
|
|
1064
|
+
* metadata sidecar; the planner validates sizes against the browser
|
|
1065
|
+
* storage quota (navigator.storage.estimate), lays out the directory
|
|
1066
|
+
* tree, and defines the least-recently-booted eviction order used when a
|
|
1067
|
+
* new bucket would overflow the quota. the browserapi lines are the
|
|
1068
|
+
* exact calls the sandbox tier performs (getDirectory, createSyncAccess
|
|
1069
|
+
* handle, persistence request).
|
|
1070
|
+
*/
|
|
1071
|
+
export declare function planopfsstorage(guests: readonly {
|
|
1072
|
+
guest: string;
|
|
1073
|
+
sizemb: number;
|
|
1074
|
+
seed?: 'empty' | 'alpine' | 'custom';
|
|
1075
|
+
}[], quotamb?: number): opfsstorageplan;
|
|
1076
|
+
/** one encode stage of the planned browser pipeline. */
|
|
1077
|
+
export interface webcodecsstage {
|
|
1078
|
+
readonly name: 'capture' | 'encode' | 'decode' | 'render';
|
|
1079
|
+
readonly api: string;
|
|
1080
|
+
readonly config: readonly string[];
|
|
1081
|
+
}
|
|
1082
|
+
/** the WebCodecs + WebGPU hardware-free encode pipeline plan. */
|
|
1083
|
+
export interface webcodecspipelineplan {
|
|
1084
|
+
readonly codec: string;
|
|
1085
|
+
readonly width: number;
|
|
1086
|
+
readonly height: number;
|
|
1087
|
+
readonly fps: number;
|
|
1088
|
+
readonly bitratembps: number;
|
|
1089
|
+
readonly gpucanvas: boolean;
|
|
1090
|
+
readonly stages: readonly webcodecsstage[];
|
|
1091
|
+
readonly videoencoderinit: string;
|
|
1092
|
+
}
|
|
1093
|
+
/**
|
|
1094
|
+
* plans the WebCodecs + WebGPU encode pipeline (backlog rb-09): a
|
|
1095
|
+
* hardware-free encode lane that runs entirely inside the browser tier
|
|
1096
|
+
* over the lavapipe-backed adapter. VideoFrame capture comes from a
|
|
1097
|
+
* WebGPU canvas (or an OffscreenCanvas fallback), the VideoEncoder is
|
|
1098
|
+
* configured with avc1/hevc/vp09/av01 at the requested geometry, and
|
|
1099
|
+
* the decode side feeds a VideoFrameRenderer that draws into the
|
|
1100
|
+
* configured GPU device. the planner validates codec/geometry pairs
|
|
1101
|
+
* against the level tables the encode presets in media.ts already
|
|
1102
|
+
* carry and falls back to vp09 when a codec level cannot carry the
|
|
1103
|
+
* requested framerate.
|
|
1104
|
+
*/
|
|
1105
|
+
export declare function planwebcodecspipeline(opts?: {
|
|
1106
|
+
codec?: 'avc' | 'hevc' | 'vp9' | 'av1';
|
|
1107
|
+
width?: number;
|
|
1108
|
+
height?: number;
|
|
1109
|
+
fps?: number;
|
|
1110
|
+
gpucanvas?: boolean;
|
|
1111
|
+
}): webcodecspipelineplan;
|
|
1112
|
+
/**
|
|
1113
|
+
* shape of one streaming layer: a self-contained slice of a workload that
|
|
1114
|
+
* can be loaded, processed and evicted independently. models, datasets
|
|
1115
|
+
* and checkpoints decompose this way (gguf tensors, safetensors shards,
|
|
1116
|
+
* csv/parquet row groups, video segments).
|
|
1117
|
+
*/
|
|
1118
|
+
export interface streaminglayer {
|
|
1119
|
+
readonly id: string;
|
|
1120
|
+
readonly bytes: number;
|
|
1121
|
+
readonly dependencies: readonly string[];
|
|
1122
|
+
}
|
|
1123
|
+
/**
|
|
1124
|
+
* plans a streaming execution for a workload larger than any single host:
|
|
1125
|
+
* layers are grouped into batches that fit the execution window (host ram
|
|
1126
|
+
* reserved for the hot set), loaded on demand (mmap semantics: the page
|
|
1127
|
+
* cache pages them in as touched), evicted after the last consumer, so a
|
|
1128
|
+
* 1.5 tb workload runs on an 8 gb host with the disk as the source of
|
|
1129
|
+
* truth. this is the technique production inference engines use for
|
|
1130
|
+
* models bigger than ram - nothing about it touches new hardware.
|
|
1131
|
+
*
|
|
1132
|
+
* @param layers the decomposed workload slices.
|
|
1133
|
+
* @param windowbytes the hot-set budget (defaults to a conservative 4 GiB).
|
|
1134
|
+
* @param eviction 'lru' | 'layerdone' - page cache style or strict.
|
|
1135
|
+
* @returns the ordered execution plan with loads, evictions and peak.
|
|
1136
|
+
*/
|
|
1137
|
+
export declare function planstreamingexecution(layers: readonly streaminglayer[], windowbytes?: number, eviction?: 'lru' | 'layerdone'): {
|
|
1138
|
+
readonly batches: readonly {
|
|
1139
|
+
readonly load: readonly string[];
|
|
1140
|
+
readonly run: readonly string[];
|
|
1141
|
+
readonly evict: readonly string[];
|
|
1142
|
+
readonly windowpeak: number;
|
|
1143
|
+
}[];
|
|
1144
|
+
readonly totalbytes: number;
|
|
1145
|
+
readonly hostwindow: number;
|
|
1146
|
+
readonly peakhostusage: number;
|
|
1147
|
+
readonly passes: number;
|
|
1148
|
+
readonly summary: string;
|
|
1149
|
+
};
|
|
1150
|
+
/**
|
|
1151
|
+
* convenience planner for a large model checkpoint: splits the weights
|
|
1152
|
+
* file into virtual layers of a chosen size and plans the streaming run
|
|
1153
|
+
* (the exact pattern an inference engine uses when the model is larger
|
|
1154
|
+
* than ram; mmap + madvise willneed per batch).
|
|
1155
|
+
*
|
|
1156
|
+
* @param totalbytes the checkpoint size.
|
|
1157
|
+
* @param layerbytes the per-layer slice (default 512 MiB).
|
|
1158
|
+
* @param windowbytes the hot-set budget (default 4 GiB).
|
|
1159
|
+
*/
|
|
1160
|
+
export declare function planmodelstreaming(totalbytes: number, layerbytes?: number, windowbytes?: number): ReturnType<typeof planstreamingexecution>;
|
|
1161
|
+
//# sourceMappingURL=compute.d.ts.map
|