@mysten-incubation/devstack 0.0.0
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/LICENSE +189 -0
- package/README.md +94 -0
- package/dist/_virtual/_rolldown/runtime.mjs +13 -0
- package/dist/api/define-capabilities.d.mts +25 -0
- package/dist/api/define-capabilities.mjs +19 -0
- package/dist/api/define-capabilities.mjs.map +1 -0
- package/dist/api/define-devstack-with.d.mts +41 -0
- package/dist/api/define-devstack-with.mjs +24 -0
- package/dist/api/define-devstack-with.mjs.map +1 -0
- package/dist/api/define-devstack.d.mts +62 -0
- package/dist/api/define-devstack.mjs +108 -0
- package/dist/api/define-devstack.mjs.map +1 -0
- package/dist/api/define-plugin.d.mts +1 -0
- package/dist/api/inference-network.mjs +122 -0
- package/dist/api/inference-network.mjs.map +1 -0
- package/dist/api/mode-narrowed-factory.d.mts +26 -0
- package/dist/api/mode-narrowed-factory.mjs +8 -0
- package/dist/api/mode-narrowed-factory.mjs.map +1 -0
- package/dist/api/plugin-errors.mjs +10 -0
- package/dist/api/plugin-errors.mjs.map +1 -0
- package/dist/api/run-stack.d.mts +82 -0
- package/dist/api/run-stack.mjs +127 -0
- package/dist/api/run-stack.mjs.map +1 -0
- package/dist/build-integrations/playwright/config.d.mts +92 -0
- package/dist/build-integrations/playwright/config.mjs +71 -0
- package/dist/build-integrations/playwright/config.mjs.map +1 -0
- package/dist/build-integrations/playwright/errors.d.mts +82 -0
- package/dist/build-integrations/playwright/errors.mjs +43 -0
- package/dist/build-integrations/playwright/errors.mjs.map +1 -0
- package/dist/build-integrations/playwright/global-setup.d.mts +64 -0
- package/dist/build-integrations/playwright/global-setup.mjs +44 -0
- package/dist/build-integrations/playwright/global-setup.mjs.map +1 -0
- package/dist/build-integrations/playwright/index.d.mts +6 -0
- package/dist/build-integrations/playwright/index.mjs +6 -0
- package/dist/build-integrations/playwright/stack-context.d.mts +95 -0
- package/dist/build-integrations/playwright/stack-context.mjs +277 -0
- package/dist/build-integrations/playwright/stack-context.mjs.map +1 -0
- package/dist/build-integrations/playwright/wallet-context.d.mts +87 -0
- package/dist/build-integrations/playwright/wallet-context.mjs +148 -0
- package/dist/build-integrations/playwright/wallet-context.mjs.map +1 -0
- package/dist/build-integrations/runtime/cold-start-url.d.mts +67 -0
- package/dist/build-integrations/runtime/cold-start-url.mjs +56 -0
- package/dist/build-integrations/runtime/cold-start-url.mjs.map +1 -0
- package/dist/build-integrations/runtime/dapp-kit-slot.mjs +10 -0
- package/dist/build-integrations/runtime/dapp-kit-slot.mjs.map +1 -0
- package/dist/build-integrations/runtime/discover.d.mts +78 -0
- package/dist/build-integrations/runtime/discover.mjs +124 -0
- package/dist/build-integrations/runtime/discover.mjs.map +1 -0
- package/dist/build-integrations/runtime/endpoint-registry.d.mts +26 -0
- package/dist/build-integrations/runtime/endpoint-registry.mjs +41 -0
- package/dist/build-integrations/runtime/endpoint-registry.mjs.map +1 -0
- package/dist/build-integrations/runtime/errors.d.mts +64 -0
- package/dist/build-integrations/runtime/errors.mjs +51 -0
- package/dist/build-integrations/runtime/errors.mjs.map +1 -0
- package/dist/build-integrations/runtime/index.d.mts +7 -0
- package/dist/build-integrations/runtime/index.mjs +6 -0
- package/dist/build-integrations/runtime/read-stack-context.d.mts +38 -0
- package/dist/build-integrations/runtime/read-stack-context.mjs +130 -0
- package/dist/build-integrations/runtime/read-stack-context.mjs.map +1 -0
- package/dist/build-integrations/runtime/stack-context.d.mts +53 -0
- package/dist/build-integrations/vitest/config.d.mts +62 -0
- package/dist/build-integrations/vitest/config.mjs +80 -0
- package/dist/build-integrations/vitest/config.mjs.map +1 -0
- package/dist/build-integrations/vitest/env.d.mts +48 -0
- package/dist/build-integrations/vitest/env.mjs +50 -0
- package/dist/build-integrations/vitest/env.mjs.map +1 -0
- package/dist/build-integrations/vitest/errors.d.mts +44 -0
- package/dist/build-integrations/vitest/errors.mjs +18 -0
- package/dist/build-integrations/vitest/errors.mjs.map +1 -0
- package/dist/build-integrations/vitest/index.d.mts +6 -0
- package/dist/build-integrations/vitest/index.mjs +6 -0
- package/dist/build-integrations/vitest/setup.d.mts +53 -0
- package/dist/build-integrations/vitest/setup.mjs +56 -0
- package/dist/build-integrations/vitest/setup.mjs.map +1 -0
- package/dist/build-integrations/vitest/stack-context.d.mts +58 -0
- package/dist/build-integrations/vitest/stack-context.mjs +67 -0
- package/dist/build-integrations/vitest/stack-context.mjs.map +1 -0
- package/dist/cli/main.d.mts +5 -0
- package/dist/cli/main.mjs +586 -0
- package/dist/cli/main.mjs.map +1 -0
- package/dist/cli/prune-direct.mjs +216 -0
- package/dist/cli/prune-direct.mjs.map +1 -0
- package/dist/cli/snapshot-reader.mjs +73 -0
- package/dist/cli/snapshot-reader.mjs.map +1 -0
- package/dist/cli/up-lifecycle.mjs +28 -0
- package/dist/cli/up-lifecycle.mjs.map +1 -0
- package/dist/contracts/capability-decl.d.mts +42 -0
- package/dist/contracts/chain-probe.d.mts +26 -0
- package/dist/contracts/chain-probe.mjs +8 -0
- package/dist/contracts/chain-probe.mjs.map +1 -0
- package/dist/contracts/codegenable.d.mts +43 -0
- package/dist/contracts/container-runtime.d.mts +245 -0
- package/dist/contracts/liveness-classifier.d.mts +19 -0
- package/dist/contracts/network-resolver.d.mts +15 -0
- package/dist/contracts/network-resolver.mjs +7 -0
- package/dist/contracts/network-resolver.mjs.map +1 -0
- package/dist/contracts/projection.d.mts +15 -0
- package/dist/contracts/routable.d.mts +53 -0
- package/dist/contracts/snapshotable.d.mts +39 -0
- package/dist/contracts/strategy-contributor.d.mts +26 -0
- package/dist/index.d.mts +89 -0
- package/dist/index.mjs +37 -0
- package/dist/orchestrators/codegen/bindings.d.mts +2 -0
- package/dist/orchestrators/codegen/bindings.mjs +340 -0
- package/dist/orchestrators/codegen/bindings.mjs.map +1 -0
- package/dist/orchestrators/codegen/emit.mjs +56 -0
- package/dist/orchestrators/codegen/emit.mjs.map +1 -0
- package/dist/orchestrators/codegen/errors.d.mts +1 -0
- package/dist/orchestrators/codegen/errors.mjs +66 -0
- package/dist/orchestrators/codegen/errors.mjs.map +1 -0
- package/dist/orchestrators/codegen/extras.mjs +16 -0
- package/dist/orchestrators/codegen/extras.mjs.map +1 -0
- package/dist/orchestrators/codegen/format.mjs +109 -0
- package/dist/orchestrators/codegen/format.mjs.map +1 -0
- package/dist/orchestrators/codegen/gitignore.mjs +67 -0
- package/dist/orchestrators/codegen/gitignore.mjs.map +1 -0
- package/dist/orchestrators/codegen/paths.d.mts +1 -0
- package/dist/orchestrators/codegen/paths.mjs +33 -0
- package/dist/orchestrators/codegen/paths.mjs.map +1 -0
- package/dist/orchestrators/codegen/permissions.mjs +6 -0
- package/dist/orchestrators/codegen/permissions.mjs.map +1 -0
- package/dist/orchestrators/codegen/service.d.mts +1 -0
- package/dist/orchestrators/codegen/service.mjs +276 -0
- package/dist/orchestrators/codegen/service.mjs.map +1 -0
- package/dist/orchestrators/router/cleanup.mjs +58 -0
- package/dist/orchestrators/router/cleanup.mjs.map +1 -0
- package/dist/orchestrators/router/cors.mjs +31 -0
- package/dist/orchestrators/router/cors.mjs.map +1 -0
- package/dist/orchestrators/router/entrypoints.d.mts +1 -0
- package/dist/orchestrators/router/entrypoints.mjs +80 -0
- package/dist/orchestrators/router/entrypoints.mjs.map +1 -0
- package/dist/orchestrators/router/errors.d.mts +1 -0
- package/dist/orchestrators/router/errors.mjs +103 -0
- package/dist/orchestrators/router/errors.mjs.map +1 -0
- package/dist/orchestrators/router/file-provider.d.mts +1 -0
- package/dist/orchestrators/router/file-provider.mjs +320 -0
- package/dist/orchestrators/router/file-provider.mjs.map +1 -0
- package/dist/orchestrators/router/hostname.d.mts +1 -0
- package/dist/orchestrators/router/hostname.mjs +107 -0
- package/dist/orchestrators/router/hostname.mjs.map +1 -0
- package/dist/orchestrators/router/index.d.mts +1 -0
- package/dist/orchestrators/router/profile.d.mts +1 -0
- package/dist/orchestrators/router/profile.mjs +109 -0
- package/dist/orchestrators/router/profile.mjs.map +1 -0
- package/dist/orchestrators/router/service.d.mts +3 -0
- package/dist/orchestrators/router/service.mjs +421 -0
- package/dist/orchestrators/router/service.mjs.map +1 -0
- package/dist/orchestrators/router/traefik-container.d.mts +1 -0
- package/dist/orchestrators/router/traefik-container.mjs +229 -0
- package/dist/orchestrators/router/traefik-container.mjs.map +1 -0
- package/dist/orchestrators/runtime-composition.d.mts +10 -0
- package/dist/orchestrators/runtime-composition.mjs +168 -0
- package/dist/orchestrators/runtime-composition.mjs.map +1 -0
- package/dist/orchestrators/snapshot/capture.d.mts +1 -0
- package/dist/orchestrators/snapshot/capture.mjs +350 -0
- package/dist/orchestrators/snapshot/capture.mjs.map +1 -0
- package/dist/orchestrators/snapshot/descriptor.d.mts +1 -0
- package/dist/orchestrators/snapshot/descriptor.mjs +109 -0
- package/dist/orchestrators/snapshot/descriptor.mjs.map +1 -0
- package/dist/orchestrators/snapshot/identity-guard.d.mts +1 -0
- package/dist/orchestrators/snapshot/identity-guard.mjs +132 -0
- package/dist/orchestrators/snapshot/identity-guard.mjs.map +1 -0
- package/dist/orchestrators/snapshot/image-bundle-tags.mjs +207 -0
- package/dist/orchestrators/snapshot/image-bundle-tags.mjs.map +1 -0
- package/dist/orchestrators/snapshot/index.d.mts +1 -0
- package/dist/orchestrators/snapshot/integrity.d.mts +1 -0
- package/dist/orchestrators/snapshot/integrity.mjs +74 -0
- package/dist/orchestrators/snapshot/integrity.mjs.map +1 -0
- package/dist/orchestrators/snapshot/prune.d.mts +1 -0
- package/dist/orchestrators/snapshot/prune.mjs +110 -0
- package/dist/orchestrators/snapshot/prune.mjs.map +1 -0
- package/dist/orchestrators/snapshot/restore.d.mts +1 -0
- package/dist/orchestrators/snapshot/restore.mjs +404 -0
- package/dist/orchestrators/snapshot/restore.mjs.map +1 -0
- package/dist/orchestrators/snapshot/service.d.mts +1 -0
- package/dist/orchestrators/snapshot/service.mjs +296 -0
- package/dist/orchestrators/snapshot/service.mjs.map +1 -0
- package/dist/orchestrators/snapshot/state-document.mjs +18 -0
- package/dist/orchestrators/snapshot/state-document.mjs.map +1 -0
- package/dist/orchestrators/snapshot/wipe.d.mts +1 -0
- package/dist/orchestrators/snapshot/wipe.mjs +59 -0
- package/dist/orchestrators/snapshot/wipe.mjs.map +1 -0
- package/dist/plugins/account/codegen.d.mts +12 -0
- package/dist/plugins/account/codegen.mjs +22 -0
- package/dist/plugins/account/codegen.mjs.map +1 -0
- package/dist/plugins/account/errors.d.mts +44 -0
- package/dist/plugins/account/errors.mjs +16 -0
- package/dist/plugins/account/errors.mjs.map +1 -0
- package/dist/plugins/account/funding.d.mts +94 -0
- package/dist/plugins/account/funding.mjs +199 -0
- package/dist/plugins/account/funding.mjs.map +1 -0
- package/dist/plugins/account/index.d.mts +54 -0
- package/dist/plugins/account/index.mjs +151 -0
- package/dist/plugins/account/index.mjs.map +1 -0
- package/dist/plugins/account/keypair.d.mts +32 -0
- package/dist/plugins/account/keypair.mjs +99 -0
- package/dist/plugins/account/keypair.mjs.map +1 -0
- package/dist/plugins/account/lease.mjs +21 -0
- package/dist/plugins/account/lease.mjs.map +1 -0
- package/dist/plugins/account/registry.d.mts +33 -0
- package/dist/plugins/account/registry.mjs +36 -0
- package/dist/plugins/account/registry.mjs.map +1 -0
- package/dist/plugins/account/service.d.mts +104 -0
- package/dist/plugins/account/service.mjs +405 -0
- package/dist/plugins/account/service.mjs.map +1 -0
- package/dist/plugins/account/snapshot.mjs +33 -0
- package/dist/plugins/account/snapshot.mjs.map +1 -0
- package/dist/plugins/account/variants/env.mjs +24 -0
- package/dist/plugins/account/variants/env.mjs.map +1 -0
- package/dist/plugins/account/variants/ephemeral.mjs +72 -0
- package/dist/plugins/account/variants/ephemeral.mjs.map +1 -0
- package/dist/plugins/account/variants/impersonate.d.mts +16 -0
- package/dist/plugins/account/variants/impersonate.mjs +48 -0
- package/dist/plugins/account/variants/impersonate.mjs.map +1 -0
- package/dist/plugins/account/variants/inline.mjs +13 -0
- package/dist/plugins/account/variants/inline.mjs.map +1 -0
- package/dist/plugins/account/variants/keystore.mjs +93 -0
- package/dist/plugins/account/variants/keystore.mjs.map +1 -0
- package/dist/plugins/account/variants/signer.mjs +31 -0
- package/dist/plugins/account/variants/signer.mjs.map +1 -0
- package/dist/plugins/action/build-context.d.mts +41 -0
- package/dist/plugins/action/discriminator.d.mts +20 -0
- package/dist/plugins/action/discriminator.mjs +13 -0
- package/dist/plugins/action/discriminator.mjs.map +1 -0
- package/dist/plugins/action/errors.d.mts +31 -0
- package/dist/plugins/action/errors.mjs +13 -0
- package/dist/plugins/action/errors.mjs.map +1 -0
- package/dist/plugins/action/execute.d.mts +2 -0
- package/dist/plugins/action/execute.mjs +145 -0
- package/dist/plugins/action/execute.mjs.map +1 -0
- package/dist/plugins/action/index.d.mts +56 -0
- package/dist/plugins/action/index.mjs +82 -0
- package/dist/plugins/action/index.mjs.map +1 -0
- package/dist/plugins/action/service.d.mts +26 -0
- package/dist/plugins/action/service.mjs +84 -0
- package/dist/plugins/action/service.mjs.map +1 -0
- package/dist/plugins/coin/address-resolution.d.mts +34 -0
- package/dist/plugins/coin/address-resolution.mjs +80 -0
- package/dist/plugins/coin/address-resolution.mjs.map +1 -0
- package/dist/plugins/coin/codegen.d.mts +16 -0
- package/dist/plugins/coin/codegen.mjs +21 -0
- package/dist/plugins/coin/codegen.mjs.map +1 -0
- package/dist/plugins/coin/discovery.d.mts +26 -0
- package/dist/plugins/coin/discovery.mjs +112 -0
- package/dist/plugins/coin/discovery.mjs.map +1 -0
- package/dist/plugins/coin/errors.d.mts +48 -0
- package/dist/plugins/coin/errors.mjs +13 -0
- package/dist/plugins/coin/errors.mjs.map +1 -0
- package/dist/plugins/coin/index.d.mts +95 -0
- package/dist/plugins/coin/index.mjs +172 -0
- package/dist/plugins/coin/index.mjs.map +1 -0
- package/dist/plugins/coin/metadata.d.mts +15 -0
- package/dist/plugins/coin/metadata.mjs +99 -0
- package/dist/plugins/coin/metadata.mjs.map +1 -0
- package/dist/plugins/coin/mint.d.mts +34 -0
- package/dist/plugins/coin/mint.mjs +164 -0
- package/dist/plugins/coin/mint.mjs.map +1 -0
- package/dist/plugins/coin/registry.d.mts +1 -0
- package/dist/plugins/coin/registry.mjs +37 -0
- package/dist/plugins/coin/registry.mjs.map +1 -0
- package/dist/plugins/coin/service.d.mts +47 -0
- package/dist/plugins/coin/service.mjs +51 -0
- package/dist/plugins/coin/service.mjs.map +1 -0
- package/dist/plugins/coin/snapshot.mjs +19 -0
- package/dist/plugins/coin/snapshot.mjs.map +1 -0
- package/dist/plugins/coin/type-strings.mjs +49 -0
- package/dist/plugins/coin/type-strings.mjs.map +1 -0
- package/dist/plugins/deepbook/codegen.d.mts +39 -0
- package/dist/plugins/deepbook/codegen.mjs +15 -0
- package/dist/plugins/deepbook/codegen.mjs.map +1 -0
- package/dist/plugins/deepbook/deploy.mjs +437 -0
- package/dist/plugins/deepbook/deploy.mjs.map +1 -0
- package/dist/plugins/deepbook/errors.d.mts +29 -0
- package/dist/plugins/deepbook/errors.mjs +26 -0
- package/dist/plugins/deepbook/errors.mjs.map +1 -0
- package/dist/plugins/deepbook/faucet-strategy.d.mts +8 -0
- package/dist/plugins/deepbook/faucet-strategy.mjs +81 -0
- package/dist/plugins/deepbook/faucet-strategy.mjs.map +1 -0
- package/dist/plugins/deepbook/index.d.mts +171 -0
- package/dist/plugins/deepbook/index.mjs +359 -0
- package/dist/plugins/deepbook/index.mjs.map +1 -0
- package/dist/plugins/deepbook/plugin-key.mjs +7 -0
- package/dist/plugins/deepbook/plugin-key.mjs.map +1 -0
- package/dist/plugins/deepbook/pyth/index.mjs +226 -0
- package/dist/plugins/deepbook/pyth/index.mjs.map +1 -0
- package/dist/plugins/deepbook/routable.mjs +21 -0
- package/dist/plugins/deepbook/routable.mjs.map +1 -0
- package/dist/plugins/deepbook/snapshot.mjs +49 -0
- package/dist/plugins/deepbook/snapshot.mjs.map +1 -0
- package/dist/plugins/deepbook/types.d.mts +125 -0
- package/dist/plugins/deepbook/types.mjs +12 -0
- package/dist/plugins/deepbook/types.mjs.map +1 -0
- package/dist/plugins/faucet/dispatcher.d.mts +9 -0
- package/dist/plugins/faucet/dispatcher.mjs +13 -0
- package/dist/plugins/faucet/dispatcher.mjs.map +1 -0
- package/dist/plugins/faucet/errors.d.mts +86 -0
- package/dist/plugins/faucet/errors.mjs +19 -0
- package/dist/plugins/faucet/errors.mjs.map +1 -0
- package/dist/plugins/faucet/http.mjs +127 -0
- package/dist/plugins/faucet/http.mjs.map +1 -0
- package/dist/plugins/faucet/index.d.mts +43 -0
- package/dist/plugins/faucet/index.mjs +42 -0
- package/dist/plugins/faucet/index.mjs.map +1 -0
- package/dist/plugins/faucet/service.d.mts +20 -0
- package/dist/plugins/faucet/strategies/sui-local.d.mts +23 -0
- package/dist/plugins/faucet/strategies/sui-local.mjs +29 -0
- package/dist/plugins/faucet/strategies/sui-local.mjs.map +1 -0
- package/dist/plugins/host-service/errors.d.mts +27 -0
- package/dist/plugins/host-service/errors.mjs +14 -0
- package/dist/plugins/host-service/errors.mjs.map +1 -0
- package/dist/plugins/host-service/index.d.mts +10 -0
- package/dist/plugins/host-service/index.mjs +48 -0
- package/dist/plugins/host-service/index.mjs.map +1 -0
- package/dist/plugins/host-service/routable.mjs +24 -0
- package/dist/plugins/host-service/routable.mjs.map +1 -0
- package/dist/plugins/host-service/service.d.mts +49 -0
- package/dist/plugins/host-service/service.mjs +375 -0
- package/dist/plugins/host-service/service.mjs.map +1 -0
- package/dist/plugins/package/build.d.mts +1 -0
- package/dist/plugins/package/build.mjs +24 -0
- package/dist/plugins/package/build.mjs.map +1 -0
- package/dist/plugins/package/codegen.d.mts +19 -0
- package/dist/plugins/package/codegen.mjs +41 -0
- package/dist/plugins/package/codegen.mjs.map +1 -0
- package/dist/plugins/package/dep-resolution.mjs +10 -0
- package/dist/plugins/package/dep-resolution.mjs.map +1 -0
- package/dist/plugins/package/errors.d.mts +34 -0
- package/dist/plugins/package/errors.mjs +13 -0
- package/dist/plugins/package/errors.mjs.map +1 -0
- package/dist/plugins/package/index.d.mts +109 -0
- package/dist/plugins/package/index.mjs +207 -0
- package/dist/plugins/package/index.mjs.map +1 -0
- package/dist/plugins/package/mode-known.mjs +41 -0
- package/dist/plugins/package/mode-known.mjs.map +1 -0
- package/dist/plugins/package/mode-local.d.mts +1 -0
- package/dist/plugins/package/mode-local.mjs +183 -0
- package/dist/plugins/package/mode-local.mjs.map +1 -0
- package/dist/plugins/package/publish-executor.mjs +202 -0
- package/dist/plugins/package/publish-executor.mjs.map +1 -0
- package/dist/plugins/package/publish-output.d.mts +28 -0
- package/dist/plugins/package/publish-output.mjs +45 -0
- package/dist/plugins/package/publish-output.mjs.map +1 -0
- package/dist/plugins/package/registry.d.mts +25 -0
- package/dist/plugins/package/registry.mjs +30 -0
- package/dist/plugins/package/registry.mjs.map +1 -0
- package/dist/plugins/package/service.mjs +20 -0
- package/dist/plugins/package/service.mjs.map +1 -0
- package/dist/plugins/package/snapshot.mjs +25 -0
- package/dist/plugins/package/snapshot.mjs.map +1 -0
- package/dist/plugins/postgres/codegen.mjs +42 -0
- package/dist/plugins/postgres/codegen.mjs.map +1 -0
- package/dist/plugins/postgres/connection.d.mts +33 -0
- package/dist/plugins/postgres/connection.mjs +19 -0
- package/dist/plugins/postgres/connection.mjs.map +1 -0
- package/dist/plugins/postgres/db-ensure.mjs +100 -0
- package/dist/plugins/postgres/db-ensure.mjs.map +1 -0
- package/dist/plugins/postgres/errors.d.mts +55 -0
- package/dist/plugins/postgres/errors.mjs +29 -0
- package/dist/plugins/postgres/errors.mjs.map +1 -0
- package/dist/plugins/postgres/index.d.mts +37 -0
- package/dist/plugins/postgres/index.mjs +75 -0
- package/dist/plugins/postgres/index.mjs.map +1 -0
- package/dist/plugins/postgres/routable.mjs +33 -0
- package/dist/plugins/postgres/routable.mjs.map +1 -0
- package/dist/plugins/postgres/service.d.mts +50 -0
- package/dist/plugins/postgres/service.mjs +145 -0
- package/dist/plugins/postgres/service.mjs.map +1 -0
- package/dist/plugins/postgres/snapshot.d.mts +1 -0
- package/dist/plugins/postgres/snapshot.mjs +32 -0
- package/dist/plugins/postgres/snapshot.mjs.map +1 -0
- package/dist/plugins/router-entrypoints.mjs +21 -0
- package/dist/plugins/router-entrypoints.mjs.map +1 -0
- package/dist/plugins/seal/bootstrap-assets/cargo-image.mjs +59 -0
- package/dist/plugins/seal/bootstrap-assets/cargo-image.mjs.map +1 -0
- package/dist/plugins/seal/bootstrap-assets/source-fetch.mjs +132 -0
- package/dist/plugins/seal/bootstrap-assets/source-fetch.mjs.map +1 -0
- package/dist/plugins/seal/codegen.d.mts +19 -0
- package/dist/plugins/seal/codegen.mjs +16 -0
- package/dist/plugins/seal/codegen.mjs.map +1 -0
- package/dist/plugins/seal/config-render.mjs +82 -0
- package/dist/plugins/seal/config-render.mjs.map +1 -0
- package/dist/plugins/seal/deploy.mjs +198 -0
- package/dist/plugins/seal/deploy.mjs.map +1 -0
- package/dist/plugins/seal/errors.d.mts +52 -0
- package/dist/plugins/seal/errors.mjs +19 -0
- package/dist/plugins/seal/errors.mjs.map +1 -0
- package/dist/plugins/seal/index.d.mts +161 -0
- package/dist/plugins/seal/index.mjs +235 -0
- package/dist/plugins/seal/index.mjs.map +1 -0
- package/dist/plugins/seal/key-manager.d.mts +22 -0
- package/dist/plugins/seal/key-manager.mjs +22 -0
- package/dist/plugins/seal/key-manager.mjs.map +1 -0
- package/dist/plugins/seal/key-server.mjs +175 -0
- package/dist/plugins/seal/key-server.mjs.map +1 -0
- package/dist/plugins/seal/keygen.mjs +96 -0
- package/dist/plugins/seal/keygen.mjs.map +1 -0
- package/dist/plugins/seal/mode/fork-known.d.mts +8 -0
- package/dist/plugins/seal/mode/fork-known.mjs +23 -0
- package/dist/plugins/seal/mode/fork-known.mjs.map +1 -0
- package/dist/plugins/seal/mode/live.d.mts +18 -0
- package/dist/plugins/seal/mode/live.mjs +64 -0
- package/dist/plugins/seal/mode/live.mjs.map +1 -0
- package/dist/plugins/seal/mode/local-keygen.mjs +180 -0
- package/dist/plugins/seal/mode/local-keygen.mjs.map +1 -0
- package/dist/plugins/seal/plugin-key.mjs +7 -0
- package/dist/plugins/seal/plugin-key.mjs.map +1 -0
- package/dist/plugins/seal/registry-publish.d.mts +43 -0
- package/dist/plugins/seal/registry-publish.mjs +9 -0
- package/dist/plugins/seal/registry-publish.mjs.map +1 -0
- package/dist/plugins/seal/routable.mjs +57 -0
- package/dist/plugins/seal/routable.mjs.map +1 -0
- package/dist/plugins/seal/service.mjs +17 -0
- package/dist/plugins/seal/service.mjs.map +1 -0
- package/dist/plugins/seal/snapshot.mjs +51 -0
- package/dist/plugins/seal/snapshot.mjs.map +1 -0
- package/dist/plugins/sui/auto-tick.mjs +45 -0
- package/dist/plugins/sui/auto-tick.mjs.map +1 -0
- package/dist/plugins/sui/chain-build-container.d.mts +1 -0
- package/dist/plugins/sui/chain-probe.d.mts +85 -0
- package/dist/plugins/sui/chain-probe.mjs +104 -0
- package/dist/plugins/sui/chain-probe.mjs.map +1 -0
- package/dist/plugins/sui/codegen.d.mts +14 -0
- package/dist/plugins/sui/codegen.mjs +26 -0
- package/dist/plugins/sui/codegen.mjs.map +1 -0
- package/dist/plugins/sui/errors.d.mts +74 -0
- package/dist/plugins/sui/errors.mjs +28 -0
- package/dist/plugins/sui/errors.mjs.map +1 -0
- package/dist/plugins/sui/fork-orchestration.mjs +24 -0
- package/dist/plugins/sui/fork-orchestration.mjs.map +1 -0
- package/dist/plugins/sui/fork-transaction.mjs +96 -0
- package/dist/plugins/sui/fork-transaction.mjs.map +1 -0
- package/dist/plugins/sui/index.d.mts +318 -0
- package/dist/plugins/sui/index.mjs +182 -0
- package/dist/plugins/sui/index.mjs.map +1 -0
- package/dist/plugins/sui/mode/external.mjs +60 -0
- package/dist/plugins/sui/mode/external.mjs.map +1 -0
- package/dist/plugins/sui/mode/fork.mjs +283 -0
- package/dist/plugins/sui/mode/fork.mjs.map +1 -0
- package/dist/plugins/sui/mode/live.mjs +103 -0
- package/dist/plugins/sui/mode/live.mjs.map +1 -0
- package/dist/plugins/sui/mode/local.mjs +293 -0
- package/dist/plugins/sui/mode/local.mjs.map +1 -0
- package/dist/plugins/sui/mode/shared-boot.mjs +254 -0
- package/dist/plugins/sui/mode/shared-boot.mjs.map +1 -0
- package/dist/plugins/sui/mode/shared.d.mts +103 -0
- package/dist/plugins/sui/mode/shared.mjs +12 -0
- package/dist/plugins/sui/mode/shared.mjs.map +1 -0
- package/dist/plugins/sui/mode/spec.d.mts +94 -0
- package/dist/plugins/sui/network-resolver.d.mts +23 -0
- package/dist/plugins/sui/routable.mjs +88 -0
- package/dist/plugins/sui/routable.mjs.map +1 -0
- package/dist/plugins/sui/seed-objects.d.mts +18 -0
- package/dist/plugins/sui/seed-objects.mjs +25 -0
- package/dist/plugins/sui/seed-objects.mjs.map +1 -0
- package/dist/plugins/sui/service.mjs +38 -0
- package/dist/plugins/sui/service.mjs.map +1 -0
- package/dist/plugins/sui/snapshot.mjs +53 -0
- package/dist/plugins/sui/snapshot.mjs.map +1 -0
- package/dist/plugins/wallet/codegen.d.mts +33 -0
- package/dist/plugins/wallet/codegen.mjs +34 -0
- package/dist/plugins/wallet/codegen.mjs.map +1 -0
- package/dist/plugins/wallet/errors.d.mts +66 -0
- package/dist/plugins/wallet/errors.mjs +16 -0
- package/dist/plugins/wallet/errors.mjs.map +1 -0
- package/dist/plugins/wallet/index.d.mts +63 -0
- package/dist/plugins/wallet/index.mjs +126 -0
- package/dist/plugins/wallet/index.mjs.map +1 -0
- package/dist/plugins/wallet/origin-policy.d.mts +1 -0
- package/dist/plugins/wallet/origin-policy.mjs +65 -0
- package/dist/plugins/wallet/origin-policy.mjs.map +1 -0
- package/dist/plugins/wallet/pairing.d.mts +11 -0
- package/dist/plugins/wallet/pairing.mjs +125 -0
- package/dist/plugins/wallet/pairing.mjs.map +1 -0
- package/dist/plugins/wallet/protocol.d.mts +1 -0
- package/dist/plugins/wallet/protocol.mjs +96 -0
- package/dist/plugins/wallet/protocol.mjs.map +1 -0
- package/dist/plugins/wallet/routable.mjs +32 -0
- package/dist/plugins/wallet/routable.mjs.map +1 -0
- package/dist/plugins/wallet/server.d.mts +12 -0
- package/dist/plugins/wallet/server.mjs +317 -0
- package/dist/plugins/wallet/server.mjs.map +1 -0
- package/dist/plugins/wallet/service.d.mts +68 -0
- package/dist/plugins/wallet/service.mjs +97 -0
- package/dist/plugins/wallet/service.mjs.map +1 -0
- package/dist/plugins/wallet/snapshot.d.mts +1 -0
- package/dist/plugins/wallet/snapshot.mjs +14 -0
- package/dist/plugins/wallet/snapshot.mjs.map +1 -0
- package/dist/plugins/walrus/bootstrap-assets/cargo-image.mjs +42 -0
- package/dist/plugins/walrus/bootstrap-assets/cargo-image.mjs.map +1 -0
- package/dist/plugins/walrus/codegen.d.mts +38 -0
- package/dist/plugins/walrus/codegen.mjs +34 -0
- package/dist/plugins/walrus/codegen.mjs.map +1 -0
- package/dist/plugins/walrus/deploy-paths.mjs +14 -0
- package/dist/plugins/walrus/deploy-paths.mjs.map +1 -0
- package/dist/plugins/walrus/deploy.d.mts +1 -0
- package/dist/plugins/walrus/deploy.mjs +224 -0
- package/dist/plugins/walrus/deploy.mjs.map +1 -0
- package/dist/plugins/walrus/errors.d.mts +38 -0
- package/dist/plugins/walrus/errors.mjs +26 -0
- package/dist/plugins/walrus/errors.mjs.map +1 -0
- package/dist/plugins/walrus/faucet-strategy.d.mts +12 -0
- package/dist/plugins/walrus/faucet-strategy.mjs +62 -0
- package/dist/plugins/walrus/faucet-strategy.mjs.map +1 -0
- package/dist/plugins/walrus/index.d.mts +177 -0
- package/dist/plugins/walrus/index.mjs +284 -0
- package/dist/plugins/walrus/index.mjs.map +1 -0
- package/dist/plugins/walrus/mode/known-deploy.d.mts +25 -0
- package/dist/plugins/walrus/mode/known-deploy.mjs +71 -0
- package/dist/plugins/walrus/mode/known-deploy.mjs.map +1 -0
- package/dist/plugins/walrus/mode/local-cluster.d.mts +34 -0
- package/dist/plugins/walrus/mode/local-cluster.mjs +153 -0
- package/dist/plugins/walrus/mode/local-cluster.mjs.map +1 -0
- package/dist/plugins/walrus/plugin-key.mjs +7 -0
- package/dist/plugins/walrus/plugin-key.mjs.map +1 -0
- package/dist/plugins/walrus/registry-publish.d.mts +24 -0
- package/dist/plugins/walrus/registry-publish.mjs +7 -0
- package/dist/plugins/walrus/registry-publish.mjs.map +1 -0
- package/dist/plugins/walrus/routable.mjs +99 -0
- package/dist/plugins/walrus/routable.mjs.map +1 -0
- package/dist/plugins/walrus/service.mjs +20 -0
- package/dist/plugins/walrus/service.mjs.map +1 -0
- package/dist/plugins/walrus/snapshot.mjs +53 -0
- package/dist/plugins/walrus/snapshot.mjs.map +1 -0
- package/dist/plugins/walrus/storage-nodes.d.mts +15 -0
- package/dist/plugins/walrus/storage-nodes.mjs +154 -0
- package/dist/plugins/walrus/storage-nodes.mjs.map +1 -0
- package/dist/plugins/walrus/wal-swap.d.mts +2 -0
- package/dist/plugins/walrus/wal-swap.mjs +58 -0
- package/dist/plugins/walrus/wal-swap.mjs.map +1 -0
- package/dist/primitives/artifact-publisher.d.mts +12 -0
- package/dist/primitives/cache.d.mts +1 -0
- package/dist/runtime/built-in-plugin-layers.mjs +49 -0
- package/dist/runtime/built-in-plugin-layers.mjs.map +1 -0
- package/dist/runtime/docker/client.d.mts +2 -0
- package/dist/runtime/docker/client.mjs +54 -0
- package/dist/runtime/docker/client.mjs.map +1 -0
- package/dist/runtime/docker/container.d.mts +1 -0
- package/dist/runtime/docker/container.mjs +562 -0
- package/dist/runtime/docker/container.mjs.map +1 -0
- package/dist/runtime/docker/errors.d.mts +1 -0
- package/dist/runtime/docker/errors.mjs +187 -0
- package/dist/runtime/docker/errors.mjs.map +1 -0
- package/dist/runtime/docker/exec.d.mts +1 -0
- package/dist/runtime/docker/exec.mjs +63 -0
- package/dist/runtime/docker/exec.mjs.map +1 -0
- package/dist/runtime/docker/image.d.mts +1 -0
- package/dist/runtime/docker/image.mjs +278 -0
- package/dist/runtime/docker/image.mjs.map +1 -0
- package/dist/runtime/docker/index.d.mts +1 -0
- package/dist/runtime/docker/inventory.d.mts +1 -0
- package/dist/runtime/docker/inventory.mjs +167 -0
- package/dist/runtime/docker/inventory.mjs.map +1 -0
- package/dist/runtime/docker/labels.d.mts +1 -0
- package/dist/runtime/docker/labels.mjs +97 -0
- package/dist/runtime/docker/labels.mjs.map +1 -0
- package/dist/runtime/docker/logs.d.mts +1 -0
- package/dist/runtime/docker/logs.mjs +34 -0
- package/dist/runtime/docker/logs.mjs.map +1 -0
- package/dist/runtime/docker/network.d.mts +1 -0
- package/dist/runtime/docker/network.mjs +168 -0
- package/dist/runtime/docker/network.mjs.map +1 -0
- package/dist/runtime/docker/service.d.mts +9 -0
- package/dist/runtime/docker/service.mjs +266 -0
- package/dist/runtime/docker/service.mjs.map +1 -0
- package/dist/runtime/docker/sweep.d.mts +1 -0
- package/dist/runtime/docker/sweep.mjs +220 -0
- package/dist/runtime/docker/sweep.mjs.map +1 -0
- package/dist/runtime/docker/volume.d.mts +1 -0
- package/dist/runtime/docker/volume.mjs +24 -0
- package/dist/runtime/docker/volume.mjs.map +1 -0
- package/dist/runtime/docker/wrap.d.mts +1 -0
- package/dist/runtime/docker/wrap.mjs +131 -0
- package/dist/runtime/docker/wrap.mjs.map +1 -0
- package/dist/substrate/brand.d.mts +24 -0
- package/dist/substrate/brand.mjs +14 -0
- package/dist/substrate/brand.mjs.map +1 -0
- package/dist/substrate/cross-process.d.mts +1 -0
- package/dist/substrate/cross-process.mjs +28 -0
- package/dist/substrate/cross-process.mjs.map +1 -0
- package/dist/substrate/events.d.mts +117 -0
- package/dist/substrate/identity.d.mts +13 -0
- package/dist/substrate/lifecycle.d.mts +12 -0
- package/dist/substrate/manifest.d.mts +39 -0
- package/dist/substrate/manifest.mjs +33 -0
- package/dist/substrate/manifest.mjs.map +1 -0
- package/dist/substrate/network.d.mts +34 -0
- package/dist/substrate/options.d.mts +23 -0
- package/dist/substrate/plugin.d.mts +101 -0
- package/dist/substrate/plugin.mjs +61 -0
- package/dist/substrate/plugin.mjs.map +1 -0
- package/dist/substrate/projection.d.mts +100 -0
- package/dist/substrate/runtime/artifact-publisher/index.mjs +76 -0
- package/dist/substrate/runtime/artifact-publisher/index.mjs.map +1 -0
- package/dist/substrate/runtime/atomic-write.mjs +106 -0
- package/dist/substrate/runtime/atomic-write.mjs.map +1 -0
- package/dist/substrate/runtime/cache/index.d.mts +1 -0
- package/dist/substrate/runtime/cache/schema.d.mts +1 -0
- package/dist/substrate/runtime/cache/schema.mjs +22 -0
- package/dist/substrate/runtime/cache/schema.mjs.map +1 -0
- package/dist/substrate/runtime/cache/service.d.mts +1 -0
- package/dist/substrate/runtime/cache/service.mjs +89 -0
- package/dist/substrate/runtime/cache/service.mjs.map +1 -0
- package/dist/substrate/runtime/capability-sinks/index.d.mts +1 -0
- package/dist/substrate/runtime/capability-sinks/layer.d.mts +1 -0
- package/dist/substrate/runtime/capability-sinks/layer.mjs +31 -0
- package/dist/substrate/runtime/capability-sinks/layer.mjs.map +1 -0
- package/dist/substrate/runtime/capability-sinks/service.d.mts +36 -0
- package/dist/substrate/runtime/capability-sinks/service.mjs +74 -0
- package/dist/substrate/runtime/capability-sinks/service.mjs.map +1 -0
- package/dist/substrate/runtime/config-validation.d.mts +38 -0
- package/dist/substrate/runtime/config-validation.mjs +137 -0
- package/dist/substrate/runtime/config-validation.mjs.map +1 -0
- package/dist/substrate/runtime/context-helpers.mjs +32 -0
- package/dist/substrate/runtime/context-helpers.mjs.map +1 -0
- package/dist/substrate/runtime/cross-process/command-channel/channel.mjs +128 -0
- package/dist/substrate/runtime/cross-process/command-channel/channel.mjs.map +1 -0
- package/dist/substrate/runtime/cross-process/command-channel/file-channel.mjs +136 -0
- package/dist/substrate/runtime/cross-process/command-channel/file-channel.mjs.map +1 -0
- package/dist/substrate/runtime/cross-process/command-channel/protocol.mjs +49 -0
- package/dist/substrate/runtime/cross-process/command-channel/protocol.mjs.map +1 -0
- package/dist/substrate/runtime/cross-process/command-channel/runtime-control-lock.mjs +9 -0
- package/dist/substrate/runtime/cross-process/command-channel/runtime-control-lock.mjs.map +1 -0
- package/dist/substrate/runtime/cross-process/liveness.mjs +119 -0
- package/dist/substrate/runtime/cross-process/liveness.mjs.map +1 -0
- package/dist/substrate/runtime/cross-process/roster.mjs +275 -0
- package/dist/substrate/runtime/cross-process/roster.mjs.map +1 -0
- package/dist/substrate/runtime/cross-process/snapshot-reservation.d.mts +1 -0
- package/dist/substrate/runtime/cross-process/snapshot-reservation.mjs +117 -0
- package/dist/substrate/runtime/cross-process/snapshot-reservation.mjs.map +1 -0
- package/dist/substrate/runtime/cross-process/stack-lock.d.mts +1 -0
- package/dist/substrate/runtime/cross-process/stack-lock.mjs +142 -0
- package/dist/substrate/runtime/cross-process/stack-lock.mjs.map +1 -0
- package/dist/substrate/runtime/current-plugin.mjs +15 -0
- package/dist/substrate/runtime/current-plugin.mjs.map +1 -0
- package/dist/substrate/runtime/errors.d.mts +1 -0
- package/dist/substrate/runtime/errors.mjs +76 -0
- package/dist/substrate/runtime/errors.mjs.map +1 -0
- package/dist/substrate/runtime/host-tree-tar/index.mjs +364 -0
- package/dist/substrate/runtime/host-tree-tar/index.mjs.map +1 -0
- package/dist/substrate/runtime/http-probe.d.mts +35 -0
- package/dist/substrate/runtime/http-probe.mjs +65 -0
- package/dist/substrate/runtime/http-probe.mjs.map +1 -0
- package/dist/substrate/runtime/lease-broker/index.d.mts +1 -0
- package/dist/substrate/runtime/lease-broker/service.d.mts +64 -0
- package/dist/substrate/runtime/lease-broker/service.mjs +155 -0
- package/dist/substrate/runtime/lease-broker/service.mjs.map +1 -0
- package/dist/substrate/runtime/lifecycle/dep-graph.d.mts +1 -0
- package/dist/substrate/runtime/lifecycle/dep-graph.mjs +138 -0
- package/dist/substrate/runtime/lifecycle/dep-graph.mjs.map +1 -0
- package/dist/substrate/runtime/lifecycle/index.d.mts +1 -0
- package/dist/substrate/runtime/lifecycle/lifecycle-fact.mjs +31 -0
- package/dist/substrate/runtime/lifecycle/lifecycle-fact.mjs.map +1 -0
- package/dist/substrate/runtime/lifecycle/plugin-registry.d.mts +1 -0
- package/dist/substrate/runtime/lifecycle/plugin-registry.mjs +133 -0
- package/dist/substrate/runtime/lifecycle/plugin-registry.mjs.map +1 -0
- package/dist/substrate/runtime/lifecycle/ready-gate.d.mts +1 -0
- package/dist/substrate/runtime/lifecycle/ready-gate.mjs +34 -0
- package/dist/substrate/runtime/lifecycle/ready-gate.mjs.map +1 -0
- package/dist/substrate/runtime/lifecycle/selective-restart.d.mts +1 -0
- package/dist/substrate/runtime/lifecycle/selective-restart.mjs +43 -0
- package/dist/substrate/runtime/lifecycle/selective-restart.mjs.map +1 -0
- package/dist/substrate/runtime/lifecycle/signals.d.mts +1 -0
- package/dist/substrate/runtime/lifecycle/signals.mjs +64 -0
- package/dist/substrate/runtime/lifecycle/signals.mjs.map +1 -0
- package/dist/substrate/runtime/lifecycle/state-machine.d.mts +1 -0
- package/dist/substrate/runtime/lifecycle/state-machine.mjs +38 -0
- package/dist/substrate/runtime/lifecycle/state-machine.mjs.map +1 -0
- package/dist/substrate/runtime/lifecycle/watch-attribution.d.mts +1 -0
- package/dist/substrate/runtime/lifecycle/watch-attribution.mjs +27 -0
- package/dist/substrate/runtime/lifecycle/watch-attribution.mjs.map +1 -0
- package/dist/substrate/runtime/managed-container.d.mts +30 -0
- package/dist/substrate/runtime/managed-container.mjs +32 -0
- package/dist/substrate/runtime/managed-container.mjs.map +1 -0
- package/dist/substrate/runtime/manifest/manifest.mjs +73 -0
- package/dist/substrate/runtime/manifest/manifest.mjs.map +1 -0
- package/dist/substrate/runtime/mode-errors.d.mts +36 -0
- package/dist/substrate/runtime/observability/cascade-formatter.d.mts +1 -0
- package/dist/substrate/runtime/observability/cascade-formatter.mjs +135 -0
- package/dist/substrate/runtime/observability/cascade-formatter.mjs.map +1 -0
- package/dist/substrate/runtime/observability/formatter-registry.d.mts +1 -0
- package/dist/substrate/runtime/observability/formatter-registry.mjs +65 -0
- package/dist/substrate/runtime/observability/formatter-registry.mjs.map +1 -0
- package/dist/substrate/runtime/observability/index.d.mts +3 -0
- package/dist/substrate/runtime/observability/logger.d.mts +58 -0
- package/dist/substrate/runtime/observability/logger.mjs +89 -0
- package/dist/substrate/runtime/observability/logger.mjs.map +1 -0
- package/dist/substrate/runtime/observability/pretty-error.d.mts +1 -0
- package/dist/substrate/runtime/observability/pretty-error.mjs +119 -0
- package/dist/substrate/runtime/observability/pretty-error.mjs.map +1 -0
- package/dist/substrate/runtime/observability/process-lines.d.mts +31 -0
- package/dist/substrate/runtime/observability/process-lines.mjs +40 -0
- package/dist/substrate/runtime/observability/process-lines.mjs.map +1 -0
- package/dist/substrate/runtime/observability/redaction.d.mts +28 -0
- package/dist/substrate/runtime/observability/redaction.mjs +45 -0
- package/dist/substrate/runtime/observability/redaction.mjs.map +1 -0
- package/dist/substrate/runtime/observability/spans.d.mts +1 -0
- package/dist/substrate/runtime/observability/spans.mjs +87 -0
- package/dist/substrate/runtime/observability/spans.mjs.map +1 -0
- package/dist/substrate/runtime/observability/subprocess-capture.d.mts +2 -0
- package/dist/substrate/runtime/observability/subprocess-capture.mjs +82 -0
- package/dist/substrate/runtime/observability/subprocess-capture.mjs.map +1 -0
- package/dist/substrate/runtime/paths.d.mts +17 -0
- package/dist/substrate/runtime/paths.mjs +61 -0
- package/dist/substrate/runtime/paths.mjs.map +1 -0
- package/dist/substrate/runtime/port-broker/index.d.mts +1 -0
- package/dist/substrate/runtime/port-broker/service.d.mts +1 -0
- package/dist/substrate/runtime/port-broker/service.mjs +319 -0
- package/dist/substrate/runtime/port-broker/service.mjs.map +1 -0
- package/dist/substrate/runtime/post-acquire-tasks.d.mts +1 -0
- package/dist/substrate/runtime/post-acquire-tasks.mjs +34 -0
- package/dist/substrate/runtime/post-acquire-tasks.mjs.map +1 -0
- package/dist/substrate/runtime/probes.d.mts +51 -0
- package/dist/substrate/runtime/probes.mjs +84 -0
- package/dist/substrate/runtime/probes.mjs.map +1 -0
- package/dist/substrate/runtime/process-supervisor.d.mts +57 -0
- package/dist/substrate/runtime/process-supervisor.mjs +73 -0
- package/dist/substrate/runtime/process-supervisor.mjs.map +1 -0
- package/dist/substrate/runtime/projection/operational-endpoints.mjs +44 -0
- package/dist/substrate/runtime/projection/operational-endpoints.mjs.map +1 -0
- package/dist/substrate/runtime/projection/persisted.mjs +195 -0
- package/dist/substrate/runtime/projection/persisted.mjs.map +1 -0
- package/dist/substrate/runtime/projection/state-ref.mjs +48 -0
- package/dist/substrate/runtime/projection/state-ref.mjs.map +1 -0
- package/dist/substrate/runtime/projection/update.mjs +200 -0
- package/dist/substrate/runtime/projection/update.mjs.map +1 -0
- package/dist/substrate/runtime/retry-policy.d.mts +18 -0
- package/dist/substrate/runtime/retry-policy.mjs +16 -0
- package/dist/substrate/runtime/retry-policy.mjs.map +1 -0
- package/dist/substrate/runtime/run.mjs +86 -0
- package/dist/substrate/runtime/run.mjs.map +1 -0
- package/dist/substrate/runtime/runtime-decode.d.mts +32 -0
- package/dist/substrate/runtime/runtime-decode.mjs +53 -0
- package/dist/substrate/runtime/runtime-decode.mjs.map +1 -0
- package/dist/substrate/runtime/scoped-http-server.mjs +36 -0
- package/dist/substrate/runtime/scoped-http-server.mjs.map +1 -0
- package/dist/substrate/runtime/scoped-ref-map/service.mjs +83 -0
- package/dist/substrate/runtime/scoped-ref-map/service.mjs.map +1 -0
- package/dist/substrate/runtime/stage-and-swap/index.d.mts +1 -0
- package/dist/substrate/runtime/stage-and-swap/index.mjs +131 -0
- package/dist/substrate/runtime/stage-and-swap/index.mjs.map +1 -0
- package/dist/substrate/runtime/state-store/schema.mjs +36 -0
- package/dist/substrate/runtime/state-store/schema.mjs.map +1 -0
- package/dist/substrate/runtime/strategy-registry/chain-probe-for.d.mts +1 -0
- package/dist/substrate/runtime/strategy-registry/chain-probe-for.mjs +22 -0
- package/dist/substrate/runtime/strategy-registry/chain-probe-for.mjs.map +1 -0
- package/dist/substrate/runtime/strategy-registry/faucet-capability-for.d.mts +1 -0
- package/dist/substrate/runtime/strategy-registry/faucet-capability-for.mjs +30 -0
- package/dist/substrate/runtime/strategy-registry/faucet-capability-for.mjs.map +1 -0
- package/dist/substrate/runtime/strategy-registry/index.d.mts +1 -0
- package/dist/substrate/runtime/strategy-registry/service.d.mts +1 -0
- package/dist/substrate/runtime/strategy-registry/service.mjs +67 -0
- package/dist/substrate/runtime/strategy-registry/service.mjs.map +1 -0
- package/dist/substrate/runtime/sui-execute/index.d.mts +11 -0
- package/dist/substrate/runtime/sui-execute/index.mjs +144 -0
- package/dist/substrate/runtime/sui-execute/index.mjs.map +1 -0
- package/dist/substrate/runtime/sui-move-build/index.d.mts +1 -0
- package/dist/substrate/runtime/sui-move-build/index.mjs +283 -0
- package/dist/substrate/runtime/sui-move-build/index.mjs.map +1 -0
- package/dist/substrate/runtime/supervisor.d.mts +1 -0
- package/dist/substrate/runtime/supervisor.mjs +831 -0
- package/dist/substrate/runtime/supervisor.mjs.map +1 -0
- package/dist/surfaces/cli/command-tree.mjs +276 -0
- package/dist/surfaces/cli/command-tree.mjs.map +1 -0
- package/dist/surfaces/cli/commands/config.mjs +31 -0
- package/dist/surfaces/cli/commands/config.mjs.map +1 -0
- package/dist/surfaces/cli/commands/confirm-node.mjs +26 -0
- package/dist/surfaces/cli/commands/confirm-node.mjs.map +1 -0
- package/dist/surfaces/cli/commands/confirm.mjs +26 -0
- package/dist/surfaces/cli/commands/confirm.mjs.map +1 -0
- package/dist/surfaces/cli/commands/doctor-probes.mjs +452 -0
- package/dist/surfaces/cli/commands/doctor-probes.mjs.map +1 -0
- package/dist/surfaces/cli/commands/doctor.mjs +38 -0
- package/dist/surfaces/cli/commands/doctor.mjs.map +1 -0
- package/dist/surfaces/cli/commands/prune-picker.mjs +347 -0
- package/dist/surfaces/cli/commands/prune-picker.mjs.map +1 -0
- package/dist/surfaces/cli/commands/prune.mjs +178 -0
- package/dist/surfaces/cli/commands/prune.mjs.map +1 -0
- package/dist/surfaces/cli/commands/snapshot.mjs +141 -0
- package/dist/surfaces/cli/commands/snapshot.mjs.map +1 -0
- package/dist/surfaces/cli/commands/status.mjs +95 -0
- package/dist/surfaces/cli/commands/status.mjs.map +1 -0
- package/dist/surfaces/cli/commands/supervisor-presence.mjs +33 -0
- package/dist/surfaces/cli/commands/supervisor-presence.mjs.map +1 -0
- package/dist/surfaces/cli/commands/wipe.mjs +28 -0
- package/dist/surfaces/cli/commands/wipe.mjs.map +1 -0
- package/dist/surfaces/cli/envelope.mjs +43 -0
- package/dist/surfaces/cli/envelope.mjs.map +1 -0
- package/dist/surfaces/cli/errors.mjs +110 -0
- package/dist/surfaces/cli/errors.mjs.map +1 -0
- package/dist/surfaces/cli/flags.mjs +56 -0
- package/dist/surfaces/cli/flags.mjs.map +1 -0
- package/dist/surfaces/cli/index.mjs +418 -0
- package/dist/surfaces/cli/index.mjs.map +1 -0
- package/dist/surfaces/cli/output.mjs +115 -0
- package/dist/surfaces/cli/output.mjs.map +1 -0
- package/dist/surfaces/cli/sysexits.mjs +139 -0
- package/dist/surfaces/cli/sysexits.mjs.map +1 -0
- package/dist/surfaces/tui/app.mjs +104 -0
- package/dist/surfaces/tui/app.mjs.map +1 -0
- package/dist/surfaces/tui/dashboard.mjs +261 -0
- package/dist/surfaces/tui/dashboard.mjs.map +1 -0
- package/dist/surfaces/tui/display-derivation.mjs +395 -0
- package/dist/surfaces/tui/display-derivation.mjs.map +1 -0
- package/dist/surfaces/tui/errors.mjs +11 -0
- package/dist/surfaces/tui/errors.mjs.map +1 -0
- package/dist/surfaces/tui/event-log.mjs +155 -0
- package/dist/surfaces/tui/event-log.mjs.map +1 -0
- package/dist/surfaces/tui/heartbeat.mjs +33 -0
- package/dist/surfaces/tui/heartbeat.mjs.map +1 -0
- package/dist/surfaces/tui/index.mjs +50 -0
- package/dist/surfaces/tui/index.mjs.map +1 -0
- package/dist/surfaces/tui/input.mjs +104 -0
- package/dist/surfaces/tui/input.mjs.map +1 -0
- package/dist/surfaces/tui/mode-detect.mjs +32 -0
- package/dist/surfaces/tui/mode-detect.mjs.map +1 -0
- package/dist/surfaces/tui/mount-ink.mjs +31 -0
- package/dist/surfaces/tui/mount-ink.mjs.map +1 -0
- package/dist/surfaces/tui/plain-renderer.mjs +170 -0
- package/dist/surfaces/tui/plain-renderer.mjs.map +1 -0
- package/dist/surfaces/tui/resource-table.mjs +507 -0
- package/dist/surfaces/tui/resource-table.mjs.map +1 -0
- package/images/_shared/signal-forward.sh +77 -0
- package/images/postgres/Dockerfile +32 -0
- package/images/seal/Dockerfile +68 -0
- package/images/seal/entrypoint.sh +65 -0
- package/images/sui/Dockerfile +73 -0
- package/images/sui/entrypoint.sh +244 -0
- package/images/sui-fork/Dockerfile +53 -0
- package/images/sui-fork/entrypoint.sh +51 -0
- package/images/walrus/Dockerfile +122 -0
- package/images/walrus/deploy-walrus.sh +305 -0
- package/images/walrus/run-walrus.sh +53 -0
- package/package.json +94 -0
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { EndpointKey, PluginKey } from "./brand.mjs";
|
|
2
|
+
import { LifecycleStatus, PhaseNarration } from "./lifecycle.mjs";
|
|
3
|
+
import { AccountProjection, BuildEntry, Endpoint, PackageProjection, StructuredError } from "./projection.mjs";
|
|
4
|
+
|
|
5
|
+
//#region src/substrate/events.d.ts
|
|
6
|
+
type ShutdownSignal = 'SIGINT' | 'SIGTERM';
|
|
7
|
+
type SnapshotCaptureProgressPhase = 'quiescing' | 'pausing' | 'paused' | 'capturing-containers' | 'saving-images' | 'capturing-host-tree' | 'saving-state' | 'saving-contributions' | 'writing-metadata' | 'resuming';
|
|
8
|
+
/** Typed lifecycle event stream. Architecture-enumerated categories. */
|
|
9
|
+
type EngineEvent = {
|
|
10
|
+
readonly tag: 'lifecycle.statusChanged';
|
|
11
|
+
readonly pluginKey: PluginKey;
|
|
12
|
+
readonly from: LifecycleStatus;
|
|
13
|
+
readonly to: LifecycleStatus;
|
|
14
|
+
readonly at: number;
|
|
15
|
+
} | {
|
|
16
|
+
readonly tag: 'lifecycle.phaseSet';
|
|
17
|
+
readonly pluginKey: PluginKey;
|
|
18
|
+
readonly phase: PhaseNarration | null;
|
|
19
|
+
readonly at: number;
|
|
20
|
+
} | {
|
|
21
|
+
readonly tag: 'log.appended';
|
|
22
|
+
readonly pluginKey: PluginKey;
|
|
23
|
+
readonly line: string;
|
|
24
|
+
readonly level: 'info' | 'warn' | 'error';
|
|
25
|
+
readonly at: number;
|
|
26
|
+
} | {
|
|
27
|
+
readonly tag: 'endpoint.registered';
|
|
28
|
+
readonly endpoint: Endpoint;
|
|
29
|
+
} | {
|
|
30
|
+
readonly tag: 'account.updated';
|
|
31
|
+
readonly account: AccountProjection;
|
|
32
|
+
readonly at: number;
|
|
33
|
+
} | {
|
|
34
|
+
readonly tag: 'package.updated';
|
|
35
|
+
readonly package: PackageProjection;
|
|
36
|
+
readonly at: number;
|
|
37
|
+
} | {
|
|
38
|
+
readonly tag: 'endpoint.released';
|
|
39
|
+
readonly endpointKey: EndpointKey;
|
|
40
|
+
readonly at: number;
|
|
41
|
+
} | {
|
|
42
|
+
readonly tag: 'strategy.registered';
|
|
43
|
+
readonly capabilityKey: string;
|
|
44
|
+
readonly autoMounted: boolean;
|
|
45
|
+
readonly at: number;
|
|
46
|
+
} | {
|
|
47
|
+
readonly tag: 'strategy.unregistered';
|
|
48
|
+
readonly capabilityKey: string;
|
|
49
|
+
readonly at: number;
|
|
50
|
+
} | {
|
|
51
|
+
readonly tag: 'manifest.flushed';
|
|
52
|
+
readonly manifestVersion: number;
|
|
53
|
+
readonly at: number;
|
|
54
|
+
} | {
|
|
55
|
+
readonly tag: 'codegen.emitted';
|
|
56
|
+
readonly files: ReadonlyArray<string>;
|
|
57
|
+
readonly at: number;
|
|
58
|
+
} | {
|
|
59
|
+
readonly tag: 'error.reported';
|
|
60
|
+
readonly error: StructuredError;
|
|
61
|
+
} | {
|
|
62
|
+
readonly tag: 'build.statusChanged';
|
|
63
|
+
readonly entry: BuildEntry;
|
|
64
|
+
} | {
|
|
65
|
+
readonly tag: 'restart.requested';
|
|
66
|
+
readonly target: 'stack' | {
|
|
67
|
+
readonly pluginKey: PluginKey;
|
|
68
|
+
};
|
|
69
|
+
readonly at: number;
|
|
70
|
+
} | {
|
|
71
|
+
readonly tag: 'restart.completed';
|
|
72
|
+
readonly target: 'stack' | {
|
|
73
|
+
readonly pluginKey: PluginKey;
|
|
74
|
+
};
|
|
75
|
+
readonly at: number;
|
|
76
|
+
} | {
|
|
77
|
+
readonly tag: 'shutdown.escalated';
|
|
78
|
+
readonly signal: ShutdownSignal;
|
|
79
|
+
readonly exitCode: number;
|
|
80
|
+
readonly at: number;
|
|
81
|
+
} | {
|
|
82
|
+
readonly tag: 'snapshot.captureStarted';
|
|
83
|
+
readonly snapshotId?: string;
|
|
84
|
+
readonly name?: string;
|
|
85
|
+
readonly at: number;
|
|
86
|
+
} | {
|
|
87
|
+
readonly tag: 'snapshot.captureProgress';
|
|
88
|
+
readonly snapshotId?: string;
|
|
89
|
+
readonly name?: string;
|
|
90
|
+
readonly phase: SnapshotCaptureProgressPhase;
|
|
91
|
+
readonly detail?: string;
|
|
92
|
+
readonly pausedContainers?: number;
|
|
93
|
+
readonly totalContainers?: number;
|
|
94
|
+
readonly at: number;
|
|
95
|
+
} | {
|
|
96
|
+
readonly tag: 'snapshot.captureSkipped';
|
|
97
|
+
readonly reason: 'already-running';
|
|
98
|
+
readonly at: number;
|
|
99
|
+
} | {
|
|
100
|
+
readonly tag: 'snapshot.captureFailed';
|
|
101
|
+
readonly snapshotId?: string;
|
|
102
|
+
readonly name?: string;
|
|
103
|
+
readonly summary: string;
|
|
104
|
+
readonly at: number;
|
|
105
|
+
} | {
|
|
106
|
+
readonly tag: 'snapshot.captured';
|
|
107
|
+
readonly snapshotId: string;
|
|
108
|
+
readonly name?: string;
|
|
109
|
+
readonly at: number;
|
|
110
|
+
} | {
|
|
111
|
+
readonly tag: 'snapshot.restored';
|
|
112
|
+
readonly snapshotId: string;
|
|
113
|
+
readonly at: number;
|
|
114
|
+
};
|
|
115
|
+
//#endregion
|
|
116
|
+
export { EngineEvent };
|
|
117
|
+
//# sourceMappingURL=events.d.mts.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AppName, ChainId, StackName } from "./brand.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/substrate/identity.d.ts
|
|
4
|
+
/** Closed identity triple. Architecture § Stack data model. */
|
|
5
|
+
interface Identity {
|
|
6
|
+
readonly app: AppName;
|
|
7
|
+
readonly stack: StackName;
|
|
8
|
+
/** Resolved chain identifier from NetworkResolver. */
|
|
9
|
+
readonly chain: ChainId;
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
export { Identity };
|
|
13
|
+
//# sourceMappingURL=identity.d.mts.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//#region src/substrate/lifecycle.d.ts
|
|
2
|
+
/** Closed state set the scheduler tracks. */
|
|
3
|
+
type LifecycleStatus = 'pending' | 'acquiring' | 'ready' | 'failed' | 'stopping' | 'stopped' | 'done';
|
|
4
|
+
/** Phases on top of statuses. Free-form (architecture Tension 14):
|
|
5
|
+
* the engine treats phase as opaque text; renderers project. */
|
|
6
|
+
type PhaseNarration = string;
|
|
7
|
+
/** Author-facing plugin role. Services own long-lived resources;
|
|
8
|
+
* tasks acquire a value and then complete. */
|
|
9
|
+
type PluginRole = 'service' | 'task';
|
|
10
|
+
//#endregion
|
|
11
|
+
export { LifecycleStatus, PhaseNarration, PluginRole };
|
|
12
|
+
//# sourceMappingURL=lifecycle.d.mts.map
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { EndpointKey, PluginKey } from "./brand.mjs";
|
|
2
|
+
import { Effect, Schema } from "effect";
|
|
3
|
+
|
|
4
|
+
//#region src/substrate/manifest.d.ts
|
|
5
|
+
/** Manifest envelope. The `services` slot is open (`unknown`) at
|
|
6
|
+
* the envelope level; each plugin's Codegenable contribution
|
|
7
|
+
* emits a typed file the consumer imports for the typed shape.
|
|
8
|
+
*/
|
|
9
|
+
interface ManifestEnvelope {
|
|
10
|
+
readonly identity: {
|
|
11
|
+
readonly app: string;
|
|
12
|
+
readonly stack: string;
|
|
13
|
+
readonly chain: string;
|
|
14
|
+
};
|
|
15
|
+
readonly manifestVersion: number;
|
|
16
|
+
readonly services: Readonly<Record<string, unknown>>;
|
|
17
|
+
readonly endpoints: Readonly<Record<string, EndpointEntry>>;
|
|
18
|
+
readonly extras: Readonly<Record<string, unknown>>;
|
|
19
|
+
}
|
|
20
|
+
type ManifestExtras = Readonly<Record<string, unknown>>;
|
|
21
|
+
interface ManifestExtrasContext {
|
|
22
|
+
readonly value: (resource: {
|
|
23
|
+
readonly id: string;
|
|
24
|
+
}) => unknown;
|
|
25
|
+
}
|
|
26
|
+
type ManifestExtrasInput = ManifestExtras | Effect.Effect<ManifestExtras, any, never> | ((ctx: ManifestExtrasContext) => ManifestExtras | Effect.Effect<ManifestExtras, any, never>);
|
|
27
|
+
/** Flat endpoint entry — the manifest's load-bearing surface for
|
|
28
|
+
* build integrations. */
|
|
29
|
+
interface EndpointEntry {
|
|
30
|
+
readonly name: string;
|
|
31
|
+
readonly url: string;
|
|
32
|
+
readonly displayUrl: string | null;
|
|
33
|
+
readonly wireProtocol: 'http' | 'h2c' | string;
|
|
34
|
+
readonly pluginKey: PluginKey;
|
|
35
|
+
readonly endpointKey: EndpointKey;
|
|
36
|
+
}
|
|
37
|
+
//#endregion
|
|
38
|
+
export { EndpointEntry, ManifestEnvelope, ManifestExtras, ManifestExtrasContext, ManifestExtrasInput };
|
|
39
|
+
//# sourceMappingURL=manifest.d.mts.map
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Effect, Schema } from "effect";
|
|
2
|
+
//#region src/substrate/manifest.ts
|
|
3
|
+
const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
4
|
+
const resolveManifestExtras = (input, ctx) => Effect.gen(function* () {
|
|
5
|
+
if (input === void 0) return {};
|
|
6
|
+
const resolved = yield* Effect.isEffect(input) ? input : typeof input === "function" ? Effect.sync(() => input(ctx)).pipe(Effect.flatMap((value) => Effect.isEffect(value) ? value : Effect.succeed(value))) : Effect.succeed(input);
|
|
7
|
+
if (!isRecord(resolved)) return yield* Effect.fail(/* @__PURE__ */ new Error("manifest extras must resolve to a plain record"));
|
|
8
|
+
return resolved;
|
|
9
|
+
});
|
|
10
|
+
/** Schema for runtime validation of an on-disk manifest. Build
|
|
11
|
+
* integrations decode through this on read. */
|
|
12
|
+
const ManifestEnvelopeSchema = Schema.Struct({
|
|
13
|
+
identity: Schema.Struct({
|
|
14
|
+
app: Schema.String,
|
|
15
|
+
stack: Schema.String,
|
|
16
|
+
chain: Schema.String
|
|
17
|
+
}),
|
|
18
|
+
manifestVersion: Schema.Number,
|
|
19
|
+
services: Schema.Record(Schema.String, Schema.Unknown),
|
|
20
|
+
endpoints: Schema.Record(Schema.String, Schema.Struct({
|
|
21
|
+
name: Schema.String,
|
|
22
|
+
url: Schema.String,
|
|
23
|
+
displayUrl: Schema.NullOr(Schema.String),
|
|
24
|
+
wireProtocol: Schema.String,
|
|
25
|
+
pluginKey: Schema.String,
|
|
26
|
+
endpointKey: Schema.String
|
|
27
|
+
})),
|
|
28
|
+
extras: Schema.Record(Schema.String, Schema.Unknown)
|
|
29
|
+
});
|
|
30
|
+
//#endregion
|
|
31
|
+
export { ManifestEnvelopeSchema, resolveManifestExtras };
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=manifest.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.mjs","names":[],"sources":["../../src/substrate/manifest.ts"],"sourcesContent":["// Manifest envelope schema.\n//\n// Architecture § Manifest data model: envelope shape is fixed at L0,\n// per-service projection is each plugin's responsibility (lives in\n// the Codegenable contribution). Build integrations read the\n// envelope; codegen output carries the typed per-service slice.\n//\n// L0 owns:\n// - the envelope (identity tuple, manifestVersion, services slot,\n// endpoints lookup, opaque extras),\n// - the endpoint-declaration shape (decl emitted by Routable; the\n// manifest writer at L3 walks them).\n\nimport { Effect, Schema } from 'effect';\n\nimport type { EndpointKey, PluginKey } from './brand.ts';\n\n/** Manifest envelope. The `services` slot is open (`unknown`) at\n * the envelope level; each plugin's Codegenable contribution\n * emits a typed file the consumer imports for the typed shape.\n */\nexport interface ManifestEnvelope {\n\treadonly identity: {\n\t\treadonly app: string;\n\t\treadonly stack: string;\n\t\treadonly chain: string;\n\t};\n\treadonly manifestVersion: number;\n\treadonly services: Readonly<Record<string, unknown>>;\n\treadonly endpoints: Readonly<Record<string, EndpointEntry>>;\n\treadonly extras: Readonly<Record<string, unknown>>;\n}\n\nexport type ManifestExtras = Readonly<Record<string, unknown>>;\n\nexport interface ManifestExtrasContext {\n\treadonly value: (resource: { readonly id: string }) => unknown;\n}\n\nexport type ManifestExtrasInput =\n\t| ManifestExtras\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t| Effect.Effect<ManifestExtras, any, never>\n\t| ((\n\t\t\tctx: ManifestExtrasContext,\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t ) => ManifestExtras | Effect.Effect<ManifestExtras, any, never>);\n\nconst isRecord = (value: unknown): value is ManifestExtras =>\n\ttypeof value === 'object' && value !== null && !Array.isArray(value);\n\nexport const resolveManifestExtras = (\n\tinput: ManifestExtrasInput | undefined,\n\tctx: ManifestExtrasContext,\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n): Effect.Effect<ManifestExtras, Error, never> =>\n\tEffect.gen(function* () {\n\t\tif (input === undefined) return {};\n\t\tconst resolvedEffect = Effect.isEffect(input)\n\t\t\t? input\n\t\t\t: typeof input === 'function'\n\t\t\t\t? Effect.sync(() => input(ctx)).pipe(\n\t\t\t\t\t\tEffect.flatMap((value) => (Effect.isEffect(value) ? value : Effect.succeed(value))),\n\t\t\t\t\t)\n\t\t\t\t: Effect.succeed(input);\n\t\tconst resolved = yield* resolvedEffect;\n\t\tif (!isRecord(resolved)) {\n\t\t\treturn yield* Effect.fail(new Error('manifest extras must resolve to a plain record'));\n\t\t}\n\t\treturn resolved;\n\t});\n\n/** Flat endpoint entry — the manifest's load-bearing surface for\n * build integrations. */\nexport interface EndpointEntry {\n\treadonly name: string;\n\treadonly url: string;\n\treadonly displayUrl: string | null;\n\treadonly wireProtocol: 'http' | 'h2c' | string;\n\treadonly pluginKey: PluginKey;\n\treadonly endpointKey: EndpointKey;\n}\n\n/** Schema for runtime validation of an on-disk manifest. Build\n * integrations decode through this on read. */\nexport const ManifestEnvelopeSchema = Schema.Struct({\n\tidentity: Schema.Struct({\n\t\tapp: Schema.String,\n\t\tstack: Schema.String,\n\t\tchain: Schema.String,\n\t}),\n\tmanifestVersion: Schema.Number,\n\tservices: Schema.Record(Schema.String, Schema.Unknown),\n\tendpoints: Schema.Record(\n\t\tSchema.String,\n\t\tSchema.Struct({\n\t\t\tname: Schema.String,\n\t\t\turl: Schema.String,\n\t\t\tdisplayUrl: Schema.NullOr(Schema.String),\n\t\t\twireProtocol: Schema.String,\n\t\t\tpluginKey: Schema.String,\n\t\t\tendpointKey: Schema.String,\n\t\t}),\n\t),\n\textras: Schema.Record(Schema.String, Schema.Unknown),\n});\n"],"mappings":";;AAgDA,MAAM,YAAY,UACjB,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,MAAM;AAErE,MAAa,yBACZ,OACA,QAGA,OAAO,IAAI,aAAa;AACvB,KAAI,UAAU,KAAA,EAAW,QAAO,EAAE;CAQlC,MAAM,WAAW,OAPM,OAAO,SAAS,MAAM,GAC1C,QACA,OAAO,UAAU,aAChB,OAAO,WAAW,MAAM,IAAI,CAAC,CAAC,KAC9B,OAAO,SAAS,UAAW,OAAO,SAAS,MAAM,GAAG,QAAQ,OAAO,QAAQ,MAAM,CAAE,CACnF,GACA,OAAO,QAAQ,MAAM;AAEzB,KAAI,CAAC,SAAS,SAAS,CACtB,QAAO,OAAO,OAAO,qBAAK,IAAI,MAAM,iDAAiD,CAAC;AAEvF,QAAO;EACN;;;AAeH,MAAa,yBAAyB,OAAO,OAAO;CACnD,UAAU,OAAO,OAAO;EACvB,KAAK,OAAO;EACZ,OAAO,OAAO;EACd,OAAO,OAAO;EACd,CAAC;CACF,iBAAiB,OAAO;CACxB,UAAU,OAAO,OAAO,OAAO,QAAQ,OAAO,QAAQ;CACtD,WAAW,OAAO,OACjB,OAAO,QACP,OAAO,OAAO;EACb,MAAM,OAAO;EACb,KAAK,OAAO;EACZ,YAAY,OAAO,OAAO,OAAO,OAAO;EACxC,cAAc,OAAO;EACrB,WAAW,OAAO;EAClB,aAAa,OAAO;EACpB,CAAC,CACF;CACD,QAAQ,OAAO,OAAO,OAAO,QAAQ,OAAO,QAAQ;CACpD,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ChainId } from "./brand.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/substrate/network.d.ts
|
|
4
|
+
/** Network mode registry. Architecture: fork is a network mode, not
|
|
5
|
+
* an orchestrator. Module augmentation can add modes without widening
|
|
6
|
+
* every config field. */
|
|
7
|
+
interface DevstackNetworkModeRegistry {
|
|
8
|
+
readonly local: {
|
|
9
|
+
readonly rpc?: string;
|
|
10
|
+
};
|
|
11
|
+
readonly live: {
|
|
12
|
+
readonly rpc?: string;
|
|
13
|
+
};
|
|
14
|
+
readonly fork: {
|
|
15
|
+
readonly rpc?: string;
|
|
16
|
+
readonly checkpoint?: string;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
type NetworkMode = keyof DevstackNetworkModeRegistry & string;
|
|
20
|
+
/** Substrate-level network record. Plugins consult the resolver once
|
|
21
|
+
* per acquire and get this back. */
|
|
22
|
+
type NetworkConfig<Mode extends NetworkMode = NetworkMode> = Readonly<{
|
|
23
|
+
readonly mode: Mode;
|
|
24
|
+
/** Chain identity the plugin uses for cache-key folding, ChainProbe
|
|
25
|
+
* dispatch, etc. Branded so downstream lookups (chain-probe /
|
|
26
|
+
* faucet capability keys) accept it without a re-wrap. */
|
|
27
|
+
readonly chain: ChainId; /** Source provenance for renderer display. */
|
|
28
|
+
readonly source?: 'cli' | 'env' | 'config' | 'default';
|
|
29
|
+
} & DevstackNetworkModeRegistry[Mode]>;
|
|
30
|
+
/** Default network shape used when nothing is pinned. */
|
|
31
|
+
type DefaultNetwork = NetworkConfig<'local'>;
|
|
32
|
+
//#endregion
|
|
33
|
+
export { DefaultNetwork, DevstackNetworkModeRegistry, NetworkConfig, NetworkMode };
|
|
34
|
+
//# sourceMappingURL=network.d.mts.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ManifestExtrasInput } from "./manifest.mjs";
|
|
2
|
+
import { NetworkConfig } from "./network.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/substrate/options.d.ts
|
|
5
|
+
/** Options shape — all fields optional. Renderer choice
|
|
6
|
+
* defaults to `tui`; missing fields fall through to substrate
|
|
7
|
+
* defaults. */
|
|
8
|
+
interface DevstackOptions {
|
|
9
|
+
readonly stackName?: string;
|
|
10
|
+
readonly network?: NetworkConfig;
|
|
11
|
+
readonly watchPaths?: ReadonlyArray<string>;
|
|
12
|
+
readonly stateDir?: string;
|
|
13
|
+
readonly codegen?: {
|
|
14
|
+
readonly outputDir?: string;
|
|
15
|
+
readonly stackSubdir?: string | null;
|
|
16
|
+
};
|
|
17
|
+
readonly hotRestart?: boolean;
|
|
18
|
+
readonly renderer?: 'tui' | 'plain' | 'silent';
|
|
19
|
+
readonly extras?: ManifestExtrasInput;
|
|
20
|
+
}
|
|
21
|
+
//#endregion
|
|
22
|
+
export { DevstackOptions };
|
|
23
|
+
//# sourceMappingURL=options.d.mts.map
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { ChainId, PluginKey } from "./brand.mjs";
|
|
2
|
+
import { PluginRole } from "./lifecycle.mjs";
|
|
3
|
+
import { CapabilityDecl } from "../contracts/capability-decl.mjs";
|
|
4
|
+
import { Identity } from "./identity.mjs";
|
|
5
|
+
import { Effect } from "effect";
|
|
6
|
+
|
|
7
|
+
//#region src/substrate/plugin.d.ts
|
|
8
|
+
declare const resourceBrand: unique symbol;
|
|
9
|
+
declare const pluginBrand: unique symbol;
|
|
10
|
+
declare const resourceValue: unique symbol;
|
|
11
|
+
declare const dependencyInputBrand: unique symbol;
|
|
12
|
+
interface ResourceRef<Id extends string, Value = unknown> {
|
|
13
|
+
readonly id: Id;
|
|
14
|
+
readonly [resourceBrand]: true;
|
|
15
|
+
readonly [resourceValue]?: () => Value;
|
|
16
|
+
}
|
|
17
|
+
type AnyResourceRef = ResourceRef<string, unknown>;
|
|
18
|
+
type ResourceIdOf<R extends AnyResourceRef> = R['id'];
|
|
19
|
+
type ResourceValueOf<R extends AnyResourceRef> = R extends ResourceRef<string, infer Value> ? Value : never;
|
|
20
|
+
declare const defineId: <const Id extends string>(id: Id) => Id;
|
|
21
|
+
declare const resource: <const Id extends string, Value = unknown>(id: Id) => ResourceRef<Id, Value>;
|
|
22
|
+
type DependencyInput = AnyResourceRef | readonly AnyResourceRef[] | Readonly<Record<string, AnyResourceRef>>;
|
|
23
|
+
type DependencyList<Input> = Input extends readonly AnyResourceRef[] ? Input : Input extends AnyResourceRef ? readonly [Input] : Input extends Readonly<Record<string, AnyResourceRef>> ? ReadonlyArray<Input[keyof Input]> : readonly [];
|
|
24
|
+
type ResolvedDependencyList<Dependencies extends readonly AnyResourceRef[]> = readonly [...{ readonly [K in keyof Dependencies]: Dependencies[K] extends AnyResourceRef ? ResourceValueOf<Dependencies[K]> : never }];
|
|
25
|
+
type ResolvedDependencyObject<Dependencies extends Readonly<Record<string, AnyResourceRef>>> = { readonly [K in keyof Dependencies]: Dependencies[K] extends AnyResourceRef ? ResourceValueOf<Dependencies[K]> : never };
|
|
26
|
+
type ResolvedDependencies<Input> = Input extends undefined ? undefined : Input extends readonly AnyResourceRef[] ? ResolvedDependencyList<Input> : Input extends AnyResourceRef ? ResourceValueOf<Input> : Input extends Readonly<Record<string, AnyResourceRef>> ? ResolvedDependencyObject<Input> : never;
|
|
27
|
+
type AnyPluginStart = (...args: any[]) => Effect.Effect<unknown, unknown, unknown>;
|
|
28
|
+
type PluginStart<Deps> = [Deps] extends [undefined] ? () => Effect.Effect<unknown, unknown, unknown> : (deps: Deps) => Effect.Effect<unknown, unknown, unknown>;
|
|
29
|
+
type StartValue<Start> = Start extends ((...args: any[]) => Effect.Effect<infer Value, unknown, unknown>) ? Value : never;
|
|
30
|
+
interface PluginErrorContribution {
|
|
31
|
+
readonly _tag: 'PluginErrorContribution';
|
|
32
|
+
readonly errorTags: ReadonlyArray<string>;
|
|
33
|
+
readonly formatter?: (value: {
|
|
34
|
+
readonly _tag: string;
|
|
35
|
+
} & Readonly<Record<string, unknown>>, recurse: (inner: unknown) => string) => string | null;
|
|
36
|
+
}
|
|
37
|
+
interface WatchDecl {
|
|
38
|
+
readonly paths: ReadonlyArray<string>;
|
|
39
|
+
readonly cascade?: boolean;
|
|
40
|
+
}
|
|
41
|
+
interface AcquireContext {
|
|
42
|
+
readonly identity: Identity;
|
|
43
|
+
readonly chain: ChainId;
|
|
44
|
+
readonly runtimeRoot: string;
|
|
45
|
+
}
|
|
46
|
+
type CapabilitiesFactory<Caps extends ReadonlyArray<CapabilityDecl>, Resolved> = (resolved: Resolved, ctx: AcquireContext) => Caps;
|
|
47
|
+
type CapabilitySource<Value, Caps extends ReadonlyArray<CapabilityDecl>> = Caps | ((ctx: {
|
|
48
|
+
readonly value: Value;
|
|
49
|
+
readonly runtime: AcquireContext;
|
|
50
|
+
}) => Caps);
|
|
51
|
+
interface PluginSpecBase<Id extends string, Start extends AnyPluginStart, Caps extends ReadonlyArray<CapabilityDecl>> {
|
|
52
|
+
readonly id: Id;
|
|
53
|
+
readonly role: PluginRole;
|
|
54
|
+
readonly pluginKey?: PluginKey | string;
|
|
55
|
+
readonly watch?: WatchDecl;
|
|
56
|
+
readonly start: Start;
|
|
57
|
+
readonly capabilities?: CapabilitySource<StartValue<Start>, Caps>;
|
|
58
|
+
readonly errorContributions?: ReadonlyArray<PluginErrorContribution>;
|
|
59
|
+
}
|
|
60
|
+
type PluginSpec<Id extends string, DependsOn extends DependencyInput | undefined, Start extends AnyPluginStart, Caps extends ReadonlyArray<CapabilityDecl>> = PluginSpecBase<Id, Start, Caps> & {
|
|
61
|
+
readonly dependsOn?: DependsOn;
|
|
62
|
+
};
|
|
63
|
+
interface Plugin<Id extends string, Value, Needs extends readonly AnyResourceRef[], Caps extends ReadonlyArray<CapabilityDecl>> extends ResourceRef<Id, Value> {
|
|
64
|
+
readonly [pluginBrand]: true;
|
|
65
|
+
readonly [dependencyInputBrand]: DependencyInput | undefined;
|
|
66
|
+
readonly dependsOn: Needs;
|
|
67
|
+
readonly role: PluginRole;
|
|
68
|
+
readonly pluginKey?: PluginKey | string;
|
|
69
|
+
readonly watch?: WatchDecl;
|
|
70
|
+
readonly start: (deps: ResolvedDependencies<DependencyInput | undefined>) => Effect.Effect<Value, unknown, unknown>;
|
|
71
|
+
readonly capabilities?: Caps | CapabilitiesFactory<Caps, Value>;
|
|
72
|
+
readonly errorContributions?: ReadonlyArray<PluginErrorContribution>;
|
|
73
|
+
}
|
|
74
|
+
type AnyPlugin = Plugin<string, any, readonly AnyResourceRef[], ReadonlyArray<CapabilityDecl>>;
|
|
75
|
+
declare function definePlugin<const Id extends string, const DependsOn extends readonly AnyResourceRef[], const Start extends PluginStart<ResolvedDependencyList<DependsOn>> = PluginStart<ResolvedDependencyList<DependsOn>>, const Caps extends ReadonlyArray<CapabilityDecl> = ReadonlyArray<CapabilityDecl>>(spec: PluginSpecBase<Id, Start, Caps> & {
|
|
76
|
+
readonly dependsOn: DependsOn;
|
|
77
|
+
}): Plugin<Id, StartValue<Start>, DependsOn, Caps>;
|
|
78
|
+
declare function definePlugin<const Id extends string, const DependsOn extends Readonly<Record<string, AnyResourceRef>>, const Start extends PluginStart<ResolvedDependencyObject<DependsOn>> = PluginStart<ResolvedDependencyObject<DependsOn>>, const Caps extends ReadonlyArray<CapabilityDecl> = ReadonlyArray<CapabilityDecl>>(spec: PluginSpecBase<Id, Start, Caps> & {
|
|
79
|
+
readonly dependsOn: DependsOn;
|
|
80
|
+
}): Plugin<Id, StartValue<Start>, DependencyList<DependsOn>, Caps>;
|
|
81
|
+
declare function definePlugin<const Id extends string, const DependsOn extends AnyResourceRef, const Start extends PluginStart<ResourceValueOf<DependsOn>> = PluginStart<ResourceValueOf<DependsOn>>, const Caps extends ReadonlyArray<CapabilityDecl> = ReadonlyArray<CapabilityDecl>>(spec: PluginSpecBase<Id, Start, Caps> & {
|
|
82
|
+
readonly dependsOn: DependsOn;
|
|
83
|
+
}): Plugin<Id, StartValue<Start>, readonly [DependsOn], Caps>;
|
|
84
|
+
declare function definePlugin<const Id extends string, const Start extends PluginStart<undefined> = PluginStart<undefined>, const Caps extends ReadonlyArray<CapabilityDecl> = ReadonlyArray<CapabilityDecl>>(spec: PluginSpecBase<Id, Start, Caps> & {
|
|
85
|
+
readonly dependsOn?: undefined;
|
|
86
|
+
}): Plugin<Id, StartValue<Start>, readonly [], Caps>;
|
|
87
|
+
type ProvidedIdsOf<Members> = Members extends ReadonlyArray<unknown> ? Members[number] extends {
|
|
88
|
+
readonly id: infer Id extends string;
|
|
89
|
+
} ? Id : never : never;
|
|
90
|
+
type ConsumedIdsOf<Members> = Members extends ReadonlyArray<unknown> ? Members[number] extends {
|
|
91
|
+
readonly dependsOn: infer Dependencies;
|
|
92
|
+
} ? Dependencies extends ReadonlyArray<infer Dependency> ? Dependency extends {
|
|
93
|
+
readonly id: infer Id extends string;
|
|
94
|
+
} ? Id : never : never : never : never;
|
|
95
|
+
type MissingProviders<Members> = Exclude<ConsumedIdsOf<Members>, ProvidedIdsOf<Members>>;
|
|
96
|
+
interface __MissingProvidersError<Missing extends string> {
|
|
97
|
+
readonly __missing_providers: Missing;
|
|
98
|
+
}
|
|
99
|
+
//#endregion
|
|
100
|
+
export { AnyPlugin, AnyResourceRef, CapabilitiesFactory, CapabilitySource, DependencyInput, DependencyList, MissingProviders, Plugin, PluginErrorContribution, PluginSpec, ResolvedDependencies, ResolvedDependencyList, ResolvedDependencyObject, ResourceIdOf, ResourceRef, ResourceValueOf, WatchDecl, __MissingProvidersError, defineId, definePlugin, resource };
|
|
101
|
+
//# sourceMappingURL=plugin.d.mts.map
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
//#region src/substrate/plugin.ts
|
|
2
|
+
const resourceBrand = Symbol.for("devstack.resource");
|
|
3
|
+
const pluginBrand = Symbol.for("devstack.plugin");
|
|
4
|
+
const dependencyInputBrand = Symbol.for("devstack.plugin.dependency-input");
|
|
5
|
+
const defineId = (id) => id;
|
|
6
|
+
const resource = (id) => ({
|
|
7
|
+
id,
|
|
8
|
+
[resourceBrand]: true
|
|
9
|
+
});
|
|
10
|
+
const isResourceRef = (value) => typeof value === "object" && value !== null && value[resourceBrand] === true;
|
|
11
|
+
const isPlugin = (value) => typeof value === "object" && value !== null && value[pluginBrand] === true;
|
|
12
|
+
const dependencyList = (dependsOn) => {
|
|
13
|
+
if (dependsOn === void 0) return [];
|
|
14
|
+
if (Array.isArray(dependsOn)) return dependsOn;
|
|
15
|
+
if (isResourceRef(dependsOn)) return [dependsOn];
|
|
16
|
+
return Object.values(dependsOn);
|
|
17
|
+
};
|
|
18
|
+
const uniqueResourceRefs = (refs) => {
|
|
19
|
+
const seen = /* @__PURE__ */ new Set();
|
|
20
|
+
const unique = [];
|
|
21
|
+
for (const ref of refs) {
|
|
22
|
+
if (seen.has(ref.id)) continue;
|
|
23
|
+
seen.add(ref.id);
|
|
24
|
+
unique.push(ref);
|
|
25
|
+
}
|
|
26
|
+
return unique;
|
|
27
|
+
};
|
|
28
|
+
const resolveDependencyValues = (dependsOn, read) => {
|
|
29
|
+
const readAny = (resourceRef) => read(resourceRef);
|
|
30
|
+
if (dependsOn === void 0) return;
|
|
31
|
+
if (Array.isArray(dependsOn)) return dependsOn.map((resourceRef) => readAny(resourceRef));
|
|
32
|
+
if (isResourceRef(dependsOn)) return readAny(dependsOn);
|
|
33
|
+
return Object.fromEntries(Object.entries(dependsOn).map(([key, resourceRef]) => [key, readAny(resourceRef)]));
|
|
34
|
+
};
|
|
35
|
+
const resolvePluginDependencies = (plugin, read) => resolveDependencyValues(plugin[dependencyInputBrand], (resourceRef) => read(resourceRef));
|
|
36
|
+
const pluginDependencyRefs = (plugin) => dependencyList(plugin[dependencyInputBrand]);
|
|
37
|
+
function definePlugin(spec) {
|
|
38
|
+
const dependsOn = uniqueResourceRefs(dependencyList(spec.dependsOn));
|
|
39
|
+
const capabilitiesField = spec.capabilities;
|
|
40
|
+
const capabilities = typeof capabilitiesField === "function" ? (value, runtime) => capabilitiesField({
|
|
41
|
+
value,
|
|
42
|
+
runtime
|
|
43
|
+
}) : capabilitiesField;
|
|
44
|
+
return {
|
|
45
|
+
[resourceBrand]: true,
|
|
46
|
+
[pluginBrand]: true,
|
|
47
|
+
[dependencyInputBrand]: spec.dependsOn,
|
|
48
|
+
id: spec.id,
|
|
49
|
+
dependsOn,
|
|
50
|
+
role: spec.role,
|
|
51
|
+
start: spec.start,
|
|
52
|
+
...spec.pluginKey === void 0 ? {} : { pluginKey: spec.pluginKey },
|
|
53
|
+
...spec.watch === void 0 ? {} : { watch: spec.watch },
|
|
54
|
+
...capabilities === void 0 ? {} : { capabilities },
|
|
55
|
+
...spec.errorContributions === void 0 ? {} : { errorContributions: spec.errorContributions }
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
//#endregion
|
|
59
|
+
export { defineId, definePlugin, dependencyList, isPlugin, pluginDependencyRefs, resolveDependencyValues, resolvePluginDependencies, resource, uniqueResourceRefs };
|
|
60
|
+
|
|
61
|
+
//# sourceMappingURL=plugin.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.mjs","names":[],"sources":["../../src/substrate/plugin.ts"],"sourcesContent":["// Resource-native plugin contract.\n//\n// Public plugin authors use `definePlugin({ id, dependsOn, start })`.\n// The substrate now consumes that same shape directly: resource ids\n// drive scheduling, resolved dependency values are constructed by the\n// supervisor, and plugin bodies run through `start(...)`.\n\nimport type { Effect } from 'effect';\n\nimport type { CapabilityDecl } from '../contracts/capability-decl.ts';\nimport type { ChainId, PluginKey } from './brand.ts';\nimport type { Identity } from './identity.ts';\nimport type { PluginRole } from './lifecycle.ts';\n\nconst resourceBrand: unique symbol = Symbol.for('devstack.resource') as never;\nconst pluginBrand: unique symbol = Symbol.for('devstack.plugin') as never;\nconst resourceValue: unique symbol = Symbol.for('devstack.resource.value') as never;\nconst dependencyInputBrand: unique symbol = Symbol.for('devstack.plugin.dependency-input') as never;\n\nexport interface ResourceRef<Id extends string, Value = unknown> {\n\treadonly id: Id;\n\treadonly [resourceBrand]: true;\n\treadonly [resourceValue]?: () => Value;\n}\n\nexport type AnyResourceRef = ResourceRef<string, unknown>;\n\nexport type ResourceIdOf<R extends AnyResourceRef> = R['id'];\n\nexport type ResourceValueOf<R extends AnyResourceRef> =\n\tR extends ResourceRef<string, infer Value> ? Value : never;\n\nexport const defineId = <const Id extends string>(id: Id): Id => id;\n\nexport const resource = <const Id extends string, Value = unknown>(\n\tid: Id,\n): ResourceRef<Id, Value> =>\n\t({\n\t\tid,\n\t\t[resourceBrand]: true,\n\t}) as ResourceRef<Id, Value>;\n\nexport const isResourceRef = (value: unknown): value is AnyResourceRef =>\n\ttypeof value === 'object' &&\n\tvalue !== null &&\n\t(value as { readonly [resourceBrand]?: true })[resourceBrand] === true;\n\nexport type DependencyInput =\n\t| AnyResourceRef\n\t| readonly AnyResourceRef[]\n\t| Readonly<Record<string, AnyResourceRef>>;\n\nexport type DependencyList<Input> = Input extends readonly AnyResourceRef[]\n\t? Input\n\t: Input extends AnyResourceRef\n\t\t? readonly [Input]\n\t\t: Input extends Readonly<Record<string, AnyResourceRef>>\n\t\t\t? ReadonlyArray<Input[keyof Input]>\n\t\t\t: readonly [];\n\nexport type ResolvedDependencyList<Dependencies extends readonly AnyResourceRef[]> = readonly [\n\t...{\n\t\treadonly [K in keyof Dependencies]: Dependencies[K] extends AnyResourceRef\n\t\t\t? ResourceValueOf<Dependencies[K]>\n\t\t\t: never;\n\t},\n];\n\nexport type ResolvedDependencyObject<\n\tDependencies extends Readonly<Record<string, AnyResourceRef>>,\n> = {\n\treadonly [K in keyof Dependencies]: Dependencies[K] extends AnyResourceRef\n\t\t? ResourceValueOf<Dependencies[K]>\n\t\t: never;\n};\n\nexport type ResolvedDependencies<Input> = Input extends undefined\n\t? undefined\n\t: Input extends readonly AnyResourceRef[]\n\t\t? ResolvedDependencyList<Input>\n\t\t: Input extends AnyResourceRef\n\t\t\t? ResourceValueOf<Input>\n\t\t\t: Input extends Readonly<Record<string, AnyResourceRef>>\n\t\t\t\t? ResolvedDependencyObject<Input>\n\t\t\t\t: never;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyPluginStart = (...args: any[]) => Effect.Effect<unknown, unknown, unknown>;\n\ntype PluginStart<Deps> = [Deps] extends [undefined]\n\t? () => Effect.Effect<unknown, unknown, unknown>\n\t: (deps: Deps) => Effect.Effect<unknown, unknown, unknown>;\n\ntype StartValue<Start> = Start extends (\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t...args: any[]\n) => Effect.Effect<infer Value, unknown, unknown>\n\t? Value\n\t: never;\n\nexport interface PluginErrorContribution {\n\treadonly _tag: 'PluginErrorContribution';\n\treadonly errorTags: ReadonlyArray<string>;\n\treadonly formatter?: (\n\t\tvalue: { readonly _tag: string } & Readonly<Record<string, unknown>>,\n\t\trecurse: (inner: unknown) => string,\n\t) => string | null;\n}\n\nexport interface WatchDecl {\n\treadonly paths: ReadonlyArray<string>;\n\treadonly cascade?: boolean;\n}\n\nexport interface AcquireContext {\n\treadonly identity: Identity;\n\treadonly chain: ChainId;\n\treadonly runtimeRoot: string;\n}\n\nexport type CapabilitiesFactory<Caps extends ReadonlyArray<CapabilityDecl>, Resolved> = (\n\tresolved: Resolved,\n\tctx: AcquireContext,\n) => Caps;\n\nexport type CapabilitySource<Value, Caps extends ReadonlyArray<CapabilityDecl>> =\n\t| Caps\n\t| ((ctx: { readonly value: Value; readonly runtime: AcquireContext }) => Caps);\n\ninterface PluginSpecBase<\n\tId extends string,\n\tStart extends AnyPluginStart,\n\tCaps extends ReadonlyArray<CapabilityDecl>,\n> {\n\treadonly id: Id;\n\treadonly role: PluginRole;\n\treadonly pluginKey?: PluginKey | string;\n\treadonly watch?: WatchDecl;\n\treadonly start: Start;\n\treadonly capabilities?: CapabilitySource<StartValue<Start>, Caps>;\n\treadonly errorContributions?: ReadonlyArray<PluginErrorContribution>;\n}\n\nexport type PluginSpec<\n\tId extends string,\n\tDependsOn extends DependencyInput | undefined,\n\tStart extends AnyPluginStart,\n\tCaps extends ReadonlyArray<CapabilityDecl>,\n> = PluginSpecBase<Id, Start, Caps> & {\n\treadonly dependsOn?: DependsOn;\n};\n\nexport interface Plugin<\n\tId extends string,\n\tValue,\n\tNeeds extends readonly AnyResourceRef[],\n\tCaps extends ReadonlyArray<CapabilityDecl>,\n> extends ResourceRef<Id, Value> {\n\treadonly [pluginBrand]: true;\n\treadonly [dependencyInputBrand]: DependencyInput | undefined;\n\treadonly dependsOn: Needs;\n\treadonly role: PluginRole;\n\treadonly pluginKey?: PluginKey | string;\n\treadonly watch?: WatchDecl;\n\treadonly start: (\n\t\tdeps: ResolvedDependencies<DependencyInput | undefined>,\n\t) => Effect.Effect<Value, unknown, unknown>;\n\treadonly capabilities?: Caps | CapabilitiesFactory<Caps, Value>;\n\treadonly errorContributions?: ReadonlyArray<PluginErrorContribution>;\n}\n\nexport type AnyPlugin = Plugin<\n\tstring,\n\t// Erased runtime plugin values must be `any` rather than `unknown`\n\t// so concrete dynamic capability factories remain assignable under\n\t// strict function parameter variance. Precise value types stay on\n\t// concrete `Plugin<Id, Value, ...>` instances.\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tany,\n\treadonly AnyResourceRef[],\n\tReadonlyArray<CapabilityDecl>\n>;\n\nexport const isPlugin = (value: unknown): value is AnyPlugin =>\n\ttypeof value === 'object' &&\n\tvalue !== null &&\n\t(value as { readonly [pluginBrand]?: true })[pluginBrand] === true;\n\nexport const dependencyList = <Input extends DependencyInput | undefined>(\n\tdependsOn: Input,\n): DependencyList<Input> => {\n\tif (dependsOn === undefined) {\n\t\treturn [] as unknown as DependencyList<Input>;\n\t}\n\tif (Array.isArray(dependsOn)) {\n\t\treturn dependsOn as unknown as DependencyList<Input>;\n\t}\n\tif (isResourceRef(dependsOn)) {\n\t\treturn [dependsOn] as unknown as DependencyList<Input>;\n\t}\n\treturn Object.values(dependsOn) as unknown as DependencyList<Input>;\n};\n\nexport const uniqueResourceRefs = (refs: readonly AnyResourceRef[]): readonly AnyResourceRef[] => {\n\tconst seen = new Set<string>();\n\tconst unique: AnyResourceRef[] = [];\n\tfor (const ref of refs) {\n\t\tif (seen.has(ref.id)) continue;\n\t\tseen.add(ref.id);\n\t\tunique.push(ref);\n\t}\n\treturn unique;\n};\n\nexport const resolveDependencyValues = <Input extends DependencyInput | undefined>(\n\tdependsOn: Input,\n\tread: (resource: DependencyList<Input>[number]) => unknown,\n): ResolvedDependencies<Input> => {\n\tconst readAny = (resourceRef: AnyResourceRef) =>\n\t\tread(resourceRef as DependencyList<Input>[number]);\n\n\tif (dependsOn === undefined) {\n\t\treturn undefined as ResolvedDependencies<Input>;\n\t}\n\tif (Array.isArray(dependsOn)) {\n\t\treturn dependsOn.map((resourceRef) => readAny(resourceRef)) as ResolvedDependencies<Input>;\n\t}\n\tif (isResourceRef(dependsOn)) {\n\t\treturn readAny(dependsOn) as ResolvedDependencies<Input>;\n\t}\n\treturn Object.fromEntries(\n\t\tObject.entries(dependsOn).map(([key, resourceRef]) => [key, readAny(resourceRef)]),\n\t) as ResolvedDependencies<Input>;\n};\n\nexport const resolvePluginDependencies = (\n\tplugin: AnyPlugin,\n\tread: (resource: AnyResourceRef) => unknown,\n): ResolvedDependencies<DependencyInput | undefined> =>\n\tresolveDependencyValues(plugin[dependencyInputBrand], (resourceRef) =>\n\t\tread(resourceRef as AnyResourceRef),\n\t);\n\nexport const pluginDependencyRefs = (plugin: AnyPlugin): readonly AnyResourceRef[] =>\n\tdependencyList(plugin[dependencyInputBrand]) as readonly AnyResourceRef[];\n\nexport function definePlugin<\n\tconst Id extends string,\n\tconst DependsOn extends readonly AnyResourceRef[],\n\tconst Start extends PluginStart<ResolvedDependencyList<DependsOn>> = PluginStart<\n\t\tResolvedDependencyList<DependsOn>\n\t>,\n\tconst Caps extends ReadonlyArray<CapabilityDecl> = ReadonlyArray<CapabilityDecl>,\n>(\n\tspec: PluginSpecBase<Id, Start, Caps> & {\n\t\treadonly dependsOn: DependsOn;\n\t},\n): Plugin<Id, StartValue<Start>, DependsOn, Caps>;\nexport function definePlugin<\n\tconst Id extends string,\n\tconst DependsOn extends Readonly<Record<string, AnyResourceRef>>,\n\tconst Start extends PluginStart<ResolvedDependencyObject<DependsOn>> = PluginStart<\n\t\tResolvedDependencyObject<DependsOn>\n\t>,\n\tconst Caps extends ReadonlyArray<CapabilityDecl> = ReadonlyArray<CapabilityDecl>,\n>(\n\tspec: PluginSpecBase<Id, Start, Caps> & {\n\t\treadonly dependsOn: DependsOn;\n\t},\n): Plugin<Id, StartValue<Start>, DependencyList<DependsOn>, Caps>;\nexport function definePlugin<\n\tconst Id extends string,\n\tconst DependsOn extends AnyResourceRef,\n\tconst Start extends PluginStart<ResourceValueOf<DependsOn>> = PluginStart<\n\t\tResourceValueOf<DependsOn>\n\t>,\n\tconst Caps extends ReadonlyArray<CapabilityDecl> = ReadonlyArray<CapabilityDecl>,\n>(\n\tspec: PluginSpecBase<Id, Start, Caps> & {\n\t\treadonly dependsOn: DependsOn;\n\t},\n): Plugin<Id, StartValue<Start>, readonly [DependsOn], Caps>;\nexport function definePlugin<\n\tconst Id extends string,\n\tconst Start extends PluginStart<undefined> = PluginStart<undefined>,\n\tconst Caps extends ReadonlyArray<CapabilityDecl> = ReadonlyArray<CapabilityDecl>,\n>(\n\tspec: PluginSpecBase<Id, Start, Caps> & {\n\t\treadonly dependsOn?: undefined;\n\t},\n): Plugin<Id, StartValue<Start>, readonly [], Caps>;\nexport function definePlugin(\n\tspec: PluginSpecBase<string, AnyPluginStart, ReadonlyArray<CapabilityDecl>> & {\n\t\treadonly dependsOn?: DependencyInput;\n\t},\n): AnyPlugin {\n\tconst dependsOn = uniqueResourceRefs(dependencyList(spec.dependsOn));\n\tconst capabilitiesField = spec.capabilities;\n\tconst capabilities =\n\t\ttypeof capabilitiesField === 'function'\n\t\t\t? (value: unknown, runtime: AcquireContext) => capabilitiesField({ value, runtime })\n\t\t\t: capabilitiesField;\n\n\treturn {\n\t\t[resourceBrand]: true,\n\t\t[pluginBrand]: true,\n\t\t[dependencyInputBrand]: spec.dependsOn,\n\t\tid: spec.id,\n\t\tdependsOn,\n\t\trole: spec.role,\n\t\tstart: spec.start as AnyPlugin['start'],\n\t\t...(spec.pluginKey === undefined ? {} : { pluginKey: spec.pluginKey }),\n\t\t...(spec.watch === undefined ? {} : { watch: spec.watch }),\n\t\t...(capabilities === undefined ? {} : { capabilities }),\n\t\t...(spec.errorContributions === undefined\n\t\t\t? {}\n\t\t\t: { errorContributions: spec.errorContributions }),\n\t} as AnyPlugin;\n}\n\nexport type ProvidedIdsOf<Members> =\n\tMembers extends ReadonlyArray<unknown>\n\t\t? Members[number] extends { readonly id: infer Id extends string }\n\t\t\t? Id\n\t\t\t: never\n\t\t: never;\n\nexport type ConsumedIdsOf<Members> =\n\tMembers extends ReadonlyArray<unknown>\n\t\t? Members[number] extends { readonly dependsOn: infer Dependencies }\n\t\t\t? Dependencies extends ReadonlyArray<infer Dependency>\n\t\t\t\t? Dependency extends { readonly id: infer Id extends string }\n\t\t\t\t\t? Id\n\t\t\t\t\t: never\n\t\t\t\t: never\n\t\t\t: never\n\t\t: never;\n\nexport type MissingProviders<Members> = Exclude<ConsumedIdsOf<Members>, ProvidedIdsOf<Members>>;\n\nexport interface __MissingProvidersError<Missing extends string> {\n\treadonly __missing_providers: Missing;\n}\n"],"mappings":";AAcA,MAAM,gBAA+B,OAAO,IAAI,oBAAoB;AACpE,MAAM,cAA6B,OAAO,IAAI,kBAAkB;AAEhE,MAAM,uBAAsC,OAAO,IAAI,mCAAmC;AAe1F,MAAa,YAAqC,OAAe;AAEjE,MAAa,YACZ,QAEC;CACA;EACC,gBAAgB;CACjB;AAEF,MAAa,iBAAiB,UAC7B,OAAO,UAAU,YACjB,UAAU,QACT,MAA8C,mBAAmB;AA0InE,MAAa,YAAY,UACxB,OAAO,UAAU,YACjB,UAAU,QACT,MAA4C,iBAAiB;AAE/D,MAAa,kBACZ,cAC2B;AAC3B,KAAI,cAAc,KAAA,EACjB,QAAO,EAAE;AAEV,KAAI,MAAM,QAAQ,UAAU,CAC3B,QAAO;AAER,KAAI,cAAc,UAAU,CAC3B,QAAO,CAAC,UAAU;AAEnB,QAAO,OAAO,OAAO,UAAU;;AAGhC,MAAa,sBAAsB,SAA+D;CACjG,MAAM,uBAAO,IAAI,KAAa;CAC9B,MAAM,SAA2B,EAAE;AACnC,MAAK,MAAM,OAAO,MAAM;AACvB,MAAI,KAAK,IAAI,IAAI,GAAG,CAAE;AACtB,OAAK,IAAI,IAAI,GAAG;AAChB,SAAO,KAAK,IAAI;;AAEjB,QAAO;;AAGR,MAAa,2BACZ,WACA,SACiC;CACjC,MAAM,WAAW,gBAChB,KAAK,YAA6C;AAEnD,KAAI,cAAc,KAAA,EACjB;AAED,KAAI,MAAM,QAAQ,UAAU,CAC3B,QAAO,UAAU,KAAK,gBAAgB,QAAQ,YAAY,CAAC;AAE5D,KAAI,cAAc,UAAU,CAC3B,QAAO,QAAQ,UAAU;AAE1B,QAAO,OAAO,YACb,OAAO,QAAQ,UAAU,CAAC,KAAK,CAAC,KAAK,iBAAiB,CAAC,KAAK,QAAQ,YAAY,CAAC,CAAC,CAClF;;AAGF,MAAa,6BACZ,QACA,SAEA,wBAAwB,OAAO,wBAAwB,gBACtD,KAAK,YAA8B,CACnC;AAEF,MAAa,wBAAwB,WACpC,eAAe,OAAO,sBAAsB;AA+C7C,SAAgB,aACf,MAGY;CACZ,MAAM,YAAY,mBAAmB,eAAe,KAAK,UAAU,CAAC;CACpE,MAAM,oBAAoB,KAAK;CAC/B,MAAM,eACL,OAAO,sBAAsB,cACzB,OAAgB,YAA4B,kBAAkB;EAAE;EAAO;EAAS,CAAC,GAClF;AAEJ,QAAO;GACL,gBAAgB;GAChB,cAAc;GACd,uBAAuB,KAAK;EAC7B,IAAI,KAAK;EACT;EACA,MAAM,KAAK;EACX,OAAO,KAAK;EACZ,GAAI,KAAK,cAAc,KAAA,IAAY,EAAE,GAAG,EAAE,WAAW,KAAK,WAAW;EACrE,GAAI,KAAK,UAAU,KAAA,IAAY,EAAE,GAAG,EAAE,OAAO,KAAK,OAAO;EACzD,GAAI,iBAAiB,KAAA,IAAY,EAAE,GAAG,EAAE,cAAc;EACtD,GAAI,KAAK,uBAAuB,KAAA,IAC7B,EAAE,GACF,EAAE,oBAAoB,KAAK,oBAAoB;EAClD"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { EndpointKey, PluginKey } from "./brand.mjs";
|
|
2
|
+
import { LifecycleStatus, PhaseNarration, PluginRole } from "./lifecycle.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/substrate/projection.d.ts
|
|
5
|
+
/** Top-level subscribable state. Renderers project this. */
|
|
6
|
+
interface SubscribableState {
|
|
7
|
+
readonly identity: {
|
|
8
|
+
readonly app: string;
|
|
9
|
+
readonly stack: string;
|
|
10
|
+
readonly network: string;
|
|
11
|
+
};
|
|
12
|
+
readonly cycle: {
|
|
13
|
+
readonly id: number;
|
|
14
|
+
readonly startedAt: number;
|
|
15
|
+
readonly phase: 'booting' | 'running' | 'restarting' | 'shutting-down';
|
|
16
|
+
};
|
|
17
|
+
readonly rows: ReadonlyArray<Row>;
|
|
18
|
+
readonly endpoints: ReadonlyArray<Endpoint>;
|
|
19
|
+
readonly accounts: ReadonlyArray<AccountProjection>;
|
|
20
|
+
readonly packages: ReadonlyArray<PackageProjection>;
|
|
21
|
+
readonly errors: ReadonlyArray<StructuredError>;
|
|
22
|
+
readonly lastEvent: {
|
|
23
|
+
readonly seq: number;
|
|
24
|
+
readonly at: number;
|
|
25
|
+
};
|
|
26
|
+
readonly stackBuild: ReadonlyArray<BuildEntry>;
|
|
27
|
+
}
|
|
28
|
+
/** One row per visible plugin instance. */
|
|
29
|
+
interface Row {
|
|
30
|
+
readonly key: PluginKey;
|
|
31
|
+
readonly role: PluginRole;
|
|
32
|
+
readonly status: LifecycleStatus;
|
|
33
|
+
readonly phase: PhaseNarration | null;
|
|
34
|
+
readonly lastError: StructuredError | null;
|
|
35
|
+
readonly logTail: LogTail;
|
|
36
|
+
readonly endpoints: ReadonlyArray<EndpointKey>;
|
|
37
|
+
readonly selectiveRestartHighlight: boolean;
|
|
38
|
+
}
|
|
39
|
+
interface LogTail {
|
|
40
|
+
readonly lines: ReadonlyArray<string>;
|
|
41
|
+
readonly level: 'info' | 'warn' | 'error';
|
|
42
|
+
readonly truncated: boolean;
|
|
43
|
+
}
|
|
44
|
+
interface Endpoint {
|
|
45
|
+
readonly endpointKey: EndpointKey;
|
|
46
|
+
readonly name: string;
|
|
47
|
+
readonly url: string;
|
|
48
|
+
readonly displayUrl: string | null;
|
|
49
|
+
readonly wireProtocol: 'http' | 'h2c' | string;
|
|
50
|
+
readonly registeredAt: number;
|
|
51
|
+
}
|
|
52
|
+
interface AccountProjection {
|
|
53
|
+
readonly key: `account/${string}`;
|
|
54
|
+
readonly rowKey: PluginKey | null;
|
|
55
|
+
readonly name: string;
|
|
56
|
+
readonly address: string | null;
|
|
57
|
+
readonly scheme: 'ed25519' | 'secp256k1' | 'secp256r1' | null;
|
|
58
|
+
readonly source: 'real' | 'impersonate' | null;
|
|
59
|
+
readonly funding: {
|
|
60
|
+
readonly status: 'pending' | 'funded' | 'skipped' | 'failed' | 'unknown';
|
|
61
|
+
readonly balanceMist: string | null;
|
|
62
|
+
readonly requestedMist: string | null;
|
|
63
|
+
readonly entries?: ReadonlyArray<{
|
|
64
|
+
readonly coin: string;
|
|
65
|
+
readonly fullCoinType: string;
|
|
66
|
+
readonly amount: string;
|
|
67
|
+
readonly status: 'funded' | 'skipped';
|
|
68
|
+
}>;
|
|
69
|
+
};
|
|
70
|
+
readonly walletVisible: boolean;
|
|
71
|
+
readonly updatedAt: number;
|
|
72
|
+
}
|
|
73
|
+
interface PackageProjection {
|
|
74
|
+
readonly key: `package/${string}`;
|
|
75
|
+
readonly rowKey: PluginKey | null;
|
|
76
|
+
readonly name: string;
|
|
77
|
+
readonly kind: 'local' | 'known';
|
|
78
|
+
readonly packageId: string;
|
|
79
|
+
readonly upgradeCapId: string | null;
|
|
80
|
+
readonly mvrPlaceholder: string;
|
|
81
|
+
readonly sourcePath: string | null;
|
|
82
|
+
readonly updatedAt: number;
|
|
83
|
+
}
|
|
84
|
+
interface StructuredError {
|
|
85
|
+
readonly at: number;
|
|
86
|
+
readonly pluginKey: PluginKey | null;
|
|
87
|
+
readonly tag: string;
|
|
88
|
+
readonly summary: string;
|
|
89
|
+
readonly chain: ReadonlyArray<string>;
|
|
90
|
+
readonly severity: 'warn' | 'error' | 'fatal';
|
|
91
|
+
}
|
|
92
|
+
interface BuildEntry {
|
|
93
|
+
readonly pluginKey: PluginKey | null;
|
|
94
|
+
readonly phase: string;
|
|
95
|
+
readonly progress: string;
|
|
96
|
+
readonly startedAt: number;
|
|
97
|
+
}
|
|
98
|
+
//#endregion
|
|
99
|
+
export { AccountProjection, BuildEntry, Endpoint, PackageProjection, StructuredError, SubscribableState };
|
|
100
|
+
//# sourceMappingURL=projection.d.mts.map
|