@mysten-incubation/devstack 0.1.1 → 0.2.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/README.md +6 -3
- package/dashboard-ui/assets/grpc-a4usE3Nk.js +3 -0
- package/dashboard-ui/assets/index-B82Bh84P.css +1 -0
- package/dashboard-ui/assets/index-CRYJ4pru.js +1277 -0
- package/dashboard-ui/index.html +2 -2
- package/dist/api/define-capabilities.d.mts +1 -20
- package/dist/api/define-capabilities.mjs +15 -22
- package/dist/api/define-capabilities.mjs.map +1 -1
- package/dist/api/define-devstack-with.d.mts +7 -1
- package/dist/api/define-devstack-with.mjs.map +1 -1
- package/dist/api/define-devstack.mjs.map +1 -1
- package/dist/api/define-plugin.d.mts +2 -1
- package/dist/api/inference-network.d.mts +31 -17
- package/dist/api/inference-network.mjs +40 -43
- package/dist/api/inference-network.mjs.map +1 -1
- package/dist/api/load-config.mjs +88 -0
- package/dist/api/load-config.mjs.map +1 -0
- package/dist/api/mode-narrowed-factory.d.mts +1 -1
- package/dist/api/mode-narrowed-factory.mjs.map +1 -1
- package/dist/api/run-stack-internal.mjs +202 -0
- package/dist/api/run-stack-internal.mjs.map +1 -0
- package/dist/api/run-stack.d.mts +82 -31
- package/dist/api/run-stack.mjs +22 -141
- package/dist/api/run-stack.mjs.map +1 -1
- package/dist/build-integrations/dapp-kit/index.d.mts +61 -0
- package/dist/build-integrations/dapp-kit/index.mjs +58 -0
- package/dist/build-integrations/dapp-kit/index.mjs.map +1 -0
- package/dist/build-integrations/playwright/config.d.mts +1 -30
- package/dist/build-integrations/playwright/config.mjs +1 -27
- package/dist/build-integrations/playwright/config.mjs.map +1 -1
- package/dist/build-integrations/playwright/errors.d.mts +4 -7
- package/dist/build-integrations/playwright/errors.mjs.map +1 -1
- package/dist/build-integrations/playwright/global-setup.d.mts +42 -71
- package/dist/build-integrations/playwright/global-setup.mjs +142 -218
- package/dist/build-integrations/playwright/global-setup.mjs.map +1 -1
- package/dist/build-integrations/playwright/index.d.mts +2 -2
- package/dist/build-integrations/playwright/index.mjs +2 -2
- package/dist/build-integrations/playwright/stack-context.d.mts +3 -1
- package/dist/build-integrations/playwright/stack-context.mjs +4 -2
- package/dist/build-integrations/playwright/stack-context.mjs.map +1 -1
- package/dist/build-integrations/playwright/wallet-context.mjs +44 -19
- package/dist/build-integrations/playwright/wallet-context.mjs.map +1 -1
- package/dist/build-integrations/runtime/cold-start-url.mjs.map +1 -1
- package/dist/build-integrations/runtime/conventional-routes.mjs.map +1 -1
- package/dist/build-integrations/runtime/dapp-kit-slot.mjs.map +1 -1
- package/dist/build-integrations/runtime/discover.d.mts +6 -4
- package/dist/build-integrations/runtime/discover.mjs +15 -4
- package/dist/build-integrations/runtime/discover.mjs.map +1 -1
- package/dist/build-integrations/runtime/endpoint-registry.mjs.map +1 -1
- package/dist/build-integrations/runtime/errors.mjs.map +1 -1
- package/dist/build-integrations/runtime/read-stack-context.mjs +3 -3
- package/dist/build-integrations/runtime/read-stack-context.mjs.map +1 -1
- package/dist/build-integrations/runtime/resolve-discovery-env.d.mts +23 -7
- package/dist/build-integrations/runtime/resolve-discovery-env.mjs +25 -12
- package/dist/build-integrations/runtime/resolve-discovery-env.mjs.map +1 -1
- package/dist/build-integrations/runtime/stack-context.d.mts +2 -2
- package/dist/build-integrations/vite/index.d.mts +84 -19
- package/dist/build-integrations/vite/index.mjs +203 -28
- package/dist/build-integrations/vite/index.mjs.map +1 -1
- package/dist/build-integrations/vitest/config.d.mts +20 -2
- package/dist/build-integrations/vitest/config.mjs +16 -4
- package/dist/build-integrations/vitest/config.mjs.map +1 -1
- package/dist/build-integrations/vitest/env.d.mts +18 -10
- package/dist/build-integrations/vitest/env.mjs +11 -10
- package/dist/build-integrations/vitest/env.mjs.map +1 -1
- package/dist/build-integrations/vitest/errors.d.mts +7 -11
- package/dist/build-integrations/vitest/errors.mjs +3 -4
- package/dist/build-integrations/vitest/errors.mjs.map +1 -1
- package/dist/build-integrations/vitest/global-setup.d.mts +35 -0
- package/dist/build-integrations/vitest/global-setup.mjs +156 -0
- package/dist/build-integrations/vitest/global-setup.mjs.map +1 -0
- package/dist/build-integrations/vitest/index.d.mts +3 -2
- package/dist/build-integrations/vitest/index.mjs +3 -2
- package/dist/build-integrations/vitest/setup.mjs +2 -2
- package/dist/build-integrations/vitest/setup.mjs.map +1 -1
- package/dist/build-integrations/vitest/stack-context.d.mts +5 -3
- package/dist/build-integrations/vitest/stack-context.mjs +3 -2
- package/dist/build-integrations/vitest/stack-context.mjs.map +1 -1
- package/dist/cli/bail.mjs.map +1 -1
- package/dist/cli/doctor-probes.mjs +1 -3
- package/dist/cli/doctor-probes.mjs.map +1 -1
- package/dist/cli/main.d.mts +23 -1
- package/dist/cli/main.mjs +63 -8
- package/dist/cli/main.mjs.map +1 -1
- package/dist/cli/prune-direct.mjs.map +1 -1
- package/dist/cli/snapshot-reader.mjs.map +1 -1
- package/dist/cli/up-lifecycle.mjs.map +1 -1
- package/dist/cli/wirings/apply.mjs +28 -21
- package/dist/cli/wirings/apply.mjs.map +1 -1
- package/dist/cli/wirings/codegen.mjs +108 -0
- package/dist/cli/wirings/codegen.mjs.map +1 -0
- package/dist/cli/wirings/config-loader.mjs +12 -62
- package/dist/cli/wirings/config-loader.mjs.map +1 -1
- package/dist/cli/wirings/dump-ids.mjs +86 -0
- package/dist/cli/wirings/dump-ids.mjs.map +1 -0
- package/dist/cli/wirings/engine-command.mjs +1 -1
- package/dist/cli/wirings/engine-command.mjs.map +1 -1
- package/dist/cli/wirings/identity.mjs +2 -2
- package/dist/cli/wirings/identity.mjs.map +1 -1
- package/dist/cli/wirings/provide-file-system.mjs.map +1 -1
- package/dist/cli/wirings/read-devstack-version.mjs +17 -0
- package/dist/cli/wirings/read-devstack-version.mjs.map +1 -0
- package/dist/cli/wirings/snapshot.mjs +27 -34
- package/dist/cli/wirings/snapshot.mjs.map +1 -1
- package/dist/cli/wirings/up-ipc.mjs +147 -0
- package/dist/cli/wirings/up-ipc.mjs.map +1 -0
- package/dist/cli/wirings/up.mjs +218 -198
- package/dist/cli/wirings/up.mjs.map +1 -1
- package/dist/cli/wirings/wipe.mjs +1 -1
- package/dist/cli/wirings/wipe.mjs.map +1 -1
- package/dist/contracts/chain-probe.d.mts +1 -1
- package/dist/contracts/chain-probe.mjs +1 -1
- package/dist/contracts/chain-probe.mjs.map +1 -1
- package/dist/contracts/codegenable.d.mts +60 -6
- package/dist/contracts/codegenable.mjs +28 -0
- package/dist/contracts/codegenable.mjs.map +1 -0
- package/dist/contracts/config-bindings.mjs +162 -0
- package/dist/contracts/config-bindings.mjs.map +1 -0
- package/dist/contracts/container-runtime.d.mts +23 -17
- package/dist/contracts/plugin-expander.mjs.map +1 -1
- package/dist/contracts/snapshotable.d.mts +5 -7
- package/dist/contracts/wallet-protocol.d.mts +2 -5
- package/dist/contracts/wallet-protocol.mjs +2 -5
- package/dist/contracts/wallet-protocol.mjs.map +1 -1
- package/dist/index.d.mts +21 -26
- package/dist/index.mjs +8 -9
- package/dist/orchestrators/boot.d.mts +28 -0
- package/dist/orchestrators/boot.mjs +440 -0
- package/dist/orchestrators/boot.mjs.map +1 -0
- package/dist/orchestrators/codegen/bindings.d.mts +13 -1
- package/dist/orchestrators/codegen/bindings.mjs +23 -9
- package/dist/orchestrators/codegen/bindings.mjs.map +1 -1
- package/dist/orchestrators/codegen/config-runtime.mjs +208 -0
- package/dist/orchestrators/codegen/config-runtime.mjs.map +1 -0
- package/dist/orchestrators/codegen/emit.mjs +1 -1
- package/dist/orchestrators/codegen/emit.mjs.map +1 -1
- package/dist/orchestrators/codegen/errors.mjs +21 -1
- package/dist/orchestrators/codegen/errors.mjs.map +1 -1
- package/dist/orchestrators/codegen/format.mjs +2 -0
- package/dist/orchestrators/codegen/format.mjs.map +1 -1
- package/dist/orchestrators/codegen/gitignore.mjs +30 -11
- package/dist/orchestrators/codegen/gitignore.mjs.map +1 -1
- package/dist/orchestrators/codegen/id-config.mjs +107 -0
- package/dist/orchestrators/codegen/id-config.mjs.map +1 -0
- package/dist/orchestrators/codegen/output-location.mjs +23 -32
- package/dist/orchestrators/codegen/output-location.mjs.map +1 -1
- package/dist/orchestrators/codegen/paths.mjs +8 -1
- package/dist/orchestrators/codegen/paths.mjs.map +1 -1
- package/dist/orchestrators/codegen/permissions.mjs.map +1 -1
- package/dist/orchestrators/codegen/service.mjs +286 -58
- package/dist/orchestrators/codegen/service.mjs.map +1 -1
- package/dist/orchestrators/layers.mjs +31 -0
- package/dist/orchestrators/layers.mjs.map +1 -0
- package/dist/orchestrators/lifecycle-prune/errors.mjs.map +1 -1
- package/dist/orchestrators/lifecycle-prune/index.mjs +8 -10
- package/dist/orchestrators/lifecycle-prune/index.mjs.map +1 -1
- package/dist/orchestrators/network-options.d.mts +52 -0
- package/dist/orchestrators/network-options.mjs +43 -0
- package/dist/orchestrators/network-options.mjs.map +1 -0
- package/dist/orchestrators/router/cleanup.mjs.map +1 -1
- package/dist/orchestrators/router/cors.mjs.map +1 -1
- package/dist/orchestrators/router/entrypoints.mjs.map +1 -1
- package/dist/orchestrators/router/errors.mjs.map +1 -1
- package/dist/orchestrators/router/file-provider.mjs.map +1 -1
- package/dist/orchestrators/router/hostname.mjs.map +1 -1
- package/dist/orchestrators/router/profile.mjs +1 -1
- package/dist/orchestrators/router/profile.mjs.map +1 -1
- package/dist/orchestrators/router/service.d.mts +2 -2
- package/dist/orchestrators/router/service.mjs +12 -27
- package/dist/orchestrators/router/service.mjs.map +1 -1
- package/dist/orchestrators/router/traefik-container.mjs +1 -1
- package/dist/orchestrators/router/traefik-container.mjs.map +1 -1
- package/dist/orchestrators/snapshot/capture.mjs +171 -195
- package/dist/orchestrators/snapshot/capture.mjs.map +1 -1
- package/dist/orchestrators/snapshot/descriptor.d.mts +1 -1
- package/dist/orchestrators/snapshot/descriptor.mjs +53 -11
- package/dist/orchestrators/snapshot/descriptor.mjs.map +1 -1
- package/dist/orchestrators/snapshot/identity-guard.mjs +3 -5
- package/dist/orchestrators/snapshot/identity-guard.mjs.map +1 -1
- package/dist/orchestrators/snapshot/image-bundle-tags.mjs +32 -101
- package/dist/orchestrators/snapshot/image-bundle-tags.mjs.map +1 -1
- package/dist/orchestrators/snapshot/index.mjs +1 -4
- package/dist/orchestrators/snapshot/integrity.mjs.map +1 -1
- package/dist/orchestrators/snapshot/interrupted-restore.mjs +116 -0
- package/dist/orchestrators/snapshot/interrupted-restore.mjs.map +1 -0
- package/dist/orchestrators/snapshot/phase-error.mjs.map +1 -1
- package/dist/orchestrators/snapshot/prune.mjs +40 -31
- package/dist/orchestrators/snapshot/prune.mjs.map +1 -1
- package/dist/orchestrators/snapshot/restore.mjs +221 -196
- package/dist/orchestrators/snapshot/restore.mjs.map +1 -1
- package/dist/orchestrators/snapshot/service.mjs +72 -62
- package/dist/orchestrators/snapshot/service.mjs.map +1 -1
- package/dist/orchestrators/snapshot/wipe.mjs +67 -56
- package/dist/orchestrators/snapshot/wipe.mjs.map +1 -1
- package/dist/plugins/account/codegen.mjs +3 -0
- package/dist/plugins/account/codegen.mjs.map +1 -1
- package/dist/plugins/account/errors.d.mts +2 -2
- package/dist/plugins/account/errors.mjs +1 -4
- package/dist/plugins/account/errors.mjs.map +1 -1
- package/dist/plugins/account/funding.mjs +3 -27
- package/dist/plugins/account/funding.mjs.map +1 -1
- package/dist/plugins/account/index.d.mts +3 -8
- package/dist/plugins/account/index.mjs +71 -35
- package/dist/plugins/account/index.mjs.map +1 -1
- package/dist/plugins/account/keypair.d.mts +8 -7
- package/dist/plugins/account/keypair.mjs +5 -18
- package/dist/plugins/account/keypair.mjs.map +1 -1
- package/dist/plugins/account/lease.mjs.map +1 -1
- package/dist/plugins/account/registry.d.mts +1 -46
- package/dist/plugins/account/registry.mjs.map +1 -1
- package/dist/plugins/account/service.d.mts +43 -34
- package/dist/plugins/account/service.mjs +9 -54
- package/dist/plugins/account/service.mjs.map +1 -1
- package/dist/plugins/account/snapshot.mjs.map +1 -1
- package/dist/plugins/account/variants/ephemeral.mjs.map +1 -1
- package/dist/plugins/account/variants/impersonate.mjs.map +1 -1
- package/dist/plugins/account/variants/signer.mjs.map +1 -1
- package/dist/plugins/action/discriminator.mjs.map +1 -1
- package/dist/plugins/action/errors.mjs +1 -4
- package/dist/plugins/action/errors.mjs.map +1 -1
- package/dist/plugins/action/execute.mjs +3 -4
- package/dist/plugins/action/execute.mjs.map +1 -1
- package/dist/plugins/action/index.d.mts +2 -2
- package/dist/plugins/action/index.mjs +7 -11
- package/dist/plugins/action/index.mjs.map +1 -1
- package/dist/plugins/action/service.d.mts +5 -7
- package/dist/plugins/action/service.mjs +2 -16
- package/dist/plugins/action/service.mjs.map +1 -1
- package/dist/plugins/coin/address-resolution.mjs.map +1 -1
- package/dist/plugins/coin/codegen.mjs +97 -16
- package/dist/plugins/coin/codegen.mjs.map +1 -1
- package/dist/plugins/coin/discovery.mjs.map +1 -1
- package/dist/plugins/coin/errors.mjs +1 -4
- package/dist/plugins/coin/errors.mjs.map +1 -1
- package/dist/plugins/coin/index.d.mts +4 -34
- package/dist/plugins/coin/index.mjs +47 -28
- package/dist/plugins/coin/index.mjs.map +1 -1
- package/dist/plugins/coin/metadata.d.mts +1 -0
- package/dist/plugins/coin/metadata.mjs +8 -9
- package/dist/plugins/coin/metadata.mjs.map +1 -1
- package/dist/plugins/coin/mint.mjs +7 -21
- package/dist/plugins/coin/mint.mjs.map +1 -1
- package/dist/plugins/coin/registry.mjs +33 -20
- package/dist/plugins/coin/registry.mjs.map +1 -1
- package/dist/plugins/coin/service.d.mts +1 -1
- package/dist/plugins/coin/service.mjs +1 -8
- package/dist/plugins/coin/service.mjs.map +1 -1
- package/dist/plugins/coin/snapshot.mjs.map +1 -1
- package/dist/plugins/coin/type-strings.mjs.map +1 -1
- package/dist/plugins/dashboard/domain.mjs +106 -167
- package/dist/plugins/dashboard/domain.mjs.map +1 -1
- package/dist/plugins/dashboard/index.mjs +13 -13
- package/dist/plugins/dashboard/index.mjs.map +1 -1
- package/dist/plugins/dashboard/origin-policy.mjs +3 -3
- package/dist/plugins/dashboard/origin-policy.mjs.map +1 -1
- package/dist/plugins/dashboard/routable.mjs.map +1 -1
- package/dist/plugins/dashboard/schema/builder.mjs.map +1 -1
- package/dist/plugins/dashboard/schema/enums.mjs.map +1 -1
- package/dist/plugins/dashboard/schema/root.mjs +23 -44
- package/dist/plugins/dashboard/schema/root.mjs.map +1 -1
- package/dist/plugins/dashboard/schema/types.mjs +37 -91
- package/dist/plugins/dashboard/schema/types.mjs.map +1 -1
- package/dist/plugins/dashboard/schema.mjs.map +1 -1
- package/dist/plugins/dashboard/server.mjs.map +1 -1
- package/dist/plugins/deepbook/codegen.d.mts +12 -11
- package/dist/plugins/deepbook/codegen.mjs +108 -11
- package/dist/plugins/deepbook/codegen.mjs.map +1 -1
- package/dist/plugins/deepbook/deploy.mjs +7 -14
- package/dist/plugins/deepbook/deploy.mjs.map +1 -1
- package/dist/plugins/deepbook/errors.mjs +4 -2
- package/dist/plugins/deepbook/errors.mjs.map +1 -1
- package/dist/plugins/deepbook/faucet-strategy.mjs +4 -10
- package/dist/plugins/deepbook/faucet-strategy.mjs.map +1 -1
- package/dist/plugins/deepbook/hash.mjs.map +1 -1
- package/dist/plugins/deepbook/index.d.mts +38 -34
- package/dist/plugins/deepbook/index.mjs +133 -64
- package/dist/plugins/deepbook/index.mjs.map +1 -1
- package/dist/plugins/deepbook/plugin-key.mjs.map +1 -1
- package/dist/plugins/deepbook/pyth/index.mjs +4 -8
- package/dist/plugins/deepbook/pyth/index.mjs.map +1 -1
- package/dist/plugins/deepbook/snapshot.mjs +0 -1
- package/dist/plugins/deepbook/snapshot.mjs.map +1 -1
- package/dist/plugins/deepbook/type-strings.mjs.map +1 -1
- package/dist/plugins/deepbook/types.d.mts +2 -1
- package/dist/plugins/deepbook/types.mjs.map +1 -1
- package/dist/plugins/faucet/dispatcher.d.mts +3 -3
- package/dist/plugins/faucet/dispatcher.mjs.map +1 -1
- package/dist/plugins/faucet/errors.mjs.map +1 -1
- package/dist/plugins/faucet/http.mjs +2 -10
- package/dist/plugins/faucet/http.mjs.map +1 -1
- package/dist/plugins/faucet/index.mjs +0 -1
- package/dist/plugins/faucet/index.mjs.map +1 -1
- package/dist/plugins/host-service/errors.d.mts +1 -3
- package/dist/plugins/host-service/errors.mjs +1 -2
- package/dist/plugins/host-service/errors.mjs.map +1 -1
- package/dist/plugins/host-service/index.d.mts +1 -2
- package/dist/plugins/host-service/index.mjs +11 -11
- package/dist/plugins/host-service/index.mjs.map +1 -1
- package/dist/plugins/host-service/routable.mjs.map +1 -1
- package/dist/plugins/host-service/service.mjs +13 -13
- package/dist/plugins/host-service/service.mjs.map +1 -1
- package/dist/plugins/internal/acquire-on-chain-artifact.mjs.map +1 -1
- package/dist/plugins/internal/codegen-helpers.mjs +2 -0
- package/dist/plugins/internal/codegen-helpers.mjs.map +1 -1
- package/dist/plugins/internal/funding-failure-error.mjs.map +1 -1
- package/dist/plugins/{postgres → internal/postgres-sidecar}/connection.mjs +1 -1
- package/dist/plugins/internal/postgres-sidecar/connection.mjs.map +1 -0
- package/dist/plugins/{postgres → internal/postgres-sidecar}/db-ensure.mjs +30 -16
- package/dist/plugins/internal/postgres-sidecar/db-ensure.mjs.map +1 -0
- package/dist/plugins/internal/postgres-sidecar/errors.mjs +21 -0
- package/dist/plugins/internal/postgres-sidecar/errors.mjs.map +1 -0
- package/dist/{substrate/runtime/scoped-multimap → plugins/internal/postgres-sidecar}/index.mjs +1 -0
- package/dist/plugins/internal/postgres-sidecar/service.mjs +121 -0
- package/dist/plugins/internal/postgres-sidecar/service.mjs.map +1 -0
- package/dist/plugins/package/build.mjs +2 -2
- package/dist/plugins/package/build.mjs.map +1 -1
- package/dist/plugins/package/codegen.d.mts +7 -14
- package/dist/plugins/package/codegen.mjs +187 -59
- package/dist/plugins/package/codegen.mjs.map +1 -1
- package/dist/plugins/package/dep-resolution.mjs +51 -3
- package/dist/plugins/package/dep-resolution.mjs.map +1 -1
- package/dist/plugins/package/errors.mjs +1 -4
- package/dist/plugins/package/errors.mjs.map +1 -1
- package/dist/plugins/package/git-source.d.mts +18 -0
- package/dist/plugins/package/git-source.mjs +119 -0
- package/dist/plugins/package/git-source.mjs.map +1 -0
- package/dist/plugins/package/index.d.mts +28 -19
- package/dist/plugins/package/index.mjs +107 -32
- package/dist/plugins/package/index.mjs.map +1 -1
- package/dist/plugins/package/mode-known.mjs +2 -2
- package/dist/plugins/package/mode-known.mjs.map +1 -1
- package/dist/plugins/package/mode-local.mjs +18 -35
- package/dist/plugins/package/mode-local.mjs.map +1 -1
- package/dist/plugins/package/publish-executor.mjs +13 -8
- package/dist/plugins/package/publish-executor.mjs.map +1 -1
- package/dist/plugins/package/publish-output.d.mts +1 -11
- package/dist/plugins/package/publish-output.mjs +1 -9
- package/dist/plugins/package/publish-output.mjs.map +1 -1
- package/dist/plugins/package/registry.d.mts +1 -1
- package/dist/plugins/package/registry.mjs +26 -14
- package/dist/plugins/package/registry.mjs.map +1 -1
- package/dist/plugins/package/service.mjs.map +1 -1
- package/dist/plugins/package/snapshot.mjs.map +1 -1
- package/dist/plugins/router-entrypoints.mjs +1 -3
- package/dist/plugins/router-entrypoints.mjs.map +1 -1
- package/dist/plugins/seal/bootstrap-assets/cargo-image.mjs +1 -2
- package/dist/plugins/seal/bootstrap-assets/cargo-image.mjs.map +1 -1
- package/dist/plugins/seal/bootstrap-assets/source-fetch.mjs +1 -6
- package/dist/plugins/seal/bootstrap-assets/source-fetch.mjs.map +1 -1
- package/dist/plugins/seal/codegen.d.mts +1 -5
- package/dist/plugins/seal/codegen.mjs +83 -12
- package/dist/plugins/seal/codegen.mjs.map +1 -1
- package/dist/plugins/seal/config-render.mjs +2 -6
- package/dist/plugins/seal/config-render.mjs.map +1 -1
- package/dist/plugins/seal/deploy.mjs +18 -29
- package/dist/plugins/seal/deploy.mjs.map +1 -1
- package/dist/plugins/seal/errors.d.mts +4 -5
- package/dist/plugins/seal/errors.mjs +1 -8
- package/dist/plugins/seal/errors.mjs.map +1 -1
- package/dist/plugins/seal/index.d.mts +7 -28
- package/dist/plugins/seal/index.mjs +69 -47
- package/dist/plugins/seal/index.mjs.map +1 -1
- package/dist/plugins/seal/key-manager.mjs.map +1 -1
- package/dist/plugins/seal/key-server.mjs +1 -6
- package/dist/plugins/seal/key-server.mjs.map +1 -1
- package/dist/plugins/seal/keygen.mjs +2 -3
- package/dist/plugins/seal/keygen.mjs.map +1 -1
- package/dist/plugins/seal/mode/fork-known.mjs.map +1 -1
- package/dist/plugins/seal/mode/live.mjs +1 -1
- package/dist/plugins/seal/mode/live.mjs.map +1 -1
- package/dist/plugins/seal/mode/local-keygen.mjs +4 -10
- package/dist/plugins/seal/mode/local-keygen.mjs.map +1 -1
- package/dist/plugins/seal/plugin-key.mjs.map +1 -1
- package/dist/plugins/seal/registry-publish.mjs.map +1 -1
- package/dist/plugins/seal/routable.mjs.map +1 -1
- package/dist/plugins/seal/service.mjs.map +1 -1
- package/dist/plugins/seal/snapshot.mjs +1 -2
- package/dist/plugins/seal/snapshot.mjs.map +1 -1
- package/dist/plugins/sui/auto-tick.mjs +5 -5
- package/dist/plugins/sui/auto-tick.mjs.map +1 -1
- package/dist/plugins/sui/chain-build-container.mjs +2 -2
- package/dist/plugins/sui/chain-build-container.mjs.map +1 -1
- package/dist/plugins/sui/chain-probe.mjs +4 -4
- package/dist/plugins/sui/chain-probe.mjs.map +1 -1
- package/dist/plugins/sui/codegen.d.mts +9 -7
- package/dist/plugins/sui/codegen.mjs +49 -46
- package/dist/plugins/sui/codegen.mjs.map +1 -1
- package/dist/plugins/sui/errors.d.mts +1 -1
- package/dist/plugins/sui/errors.mjs +1 -9
- package/dist/plugins/sui/errors.mjs.map +1 -1
- package/dist/{substrate/runtime/sui-execute → plugins/sui/exec}/index.d.mts +1 -1
- package/dist/{substrate/runtime/sui-execute → plugins/sui/exec}/index.mjs +3 -7
- package/dist/plugins/sui/exec/index.mjs.map +1 -0
- package/dist/{substrate/runtime/sui-execute → plugins/sui/exec}/sign-and-dispatch.mjs +1 -1
- package/dist/plugins/sui/exec/sign-and-dispatch.mjs.map +1 -0
- package/dist/plugins/sui/fork-faucet-strategy.mjs +2 -6
- package/dist/plugins/sui/fork-faucet-strategy.mjs.map +1 -1
- package/dist/plugins/sui/fork-orchestration.mjs +13 -23
- package/dist/plugins/sui/fork-orchestration.mjs.map +1 -1
- package/dist/plugins/sui/fork-transaction.mjs.map +1 -1
- package/dist/plugins/sui/index.d.mts +34 -83
- package/dist/plugins/sui/index.mjs +200 -68
- package/dist/plugins/sui/index.mjs.map +1 -1
- package/dist/{substrate/runtime/sui-ledger → plugins/sui/ledger}/object-ref.mjs +1 -1
- package/dist/plugins/sui/ledger/object-ref.mjs.map +1 -0
- package/dist/plugins/sui/local-faucet-strategy.mjs +1 -5
- package/dist/plugins/sui/local-faucet-strategy.mjs.map +1 -1
- package/dist/plugins/sui/log-attrs.mjs +11 -0
- package/dist/plugins/sui/log-attrs.mjs.map +1 -0
- package/dist/plugins/sui/mode/external.mjs +4 -12
- package/dist/plugins/sui/mode/external.mjs.map +1 -1
- package/dist/plugins/sui/mode/fork.mjs +19 -16
- package/dist/plugins/sui/mode/fork.mjs.map +1 -1
- package/dist/plugins/sui/mode/live.mjs +4 -17
- package/dist/plugins/sui/mode/live.mjs.map +1 -1
- package/dist/plugins/sui/mode/local.d.mts +1 -0
- package/dist/plugins/sui/mode/local.mjs +203 -61
- package/dist/plugins/sui/mode/local.mjs.map +1 -1
- package/dist/plugins/sui/mode/shared-boot.mjs +18 -23
- package/dist/plugins/sui/mode/shared-boot.mjs.map +1 -1
- package/dist/plugins/sui/mode/shared.d.mts +6 -7
- package/dist/plugins/sui/mode/shared.mjs.map +1 -1
- package/dist/plugins/sui/mode/spec.d.mts +23 -6
- package/dist/{substrate/runtime/sui-move-build → plugins/sui/move}/index.mjs +28 -30
- package/dist/plugins/sui/move/index.mjs.map +1 -0
- package/dist/plugins/sui/move-summary-runner.mjs +8 -4
- package/dist/plugins/sui/move-summary-runner.mjs.map +1 -1
- package/dist/{substrate/network.d.mts → plugins/sui/network-config.d.mts} +11 -10
- package/dist/plugins/sui/network-resolver.d.mts +6 -6
- package/dist/plugins/sui/routable.mjs.map +1 -1
- package/dist/plugins/sui/service.mjs +10 -6
- package/dist/plugins/sui/service.mjs.map +1 -1
- package/dist/plugins/sui/snapshot.mjs +10 -5
- package/dist/plugins/sui/snapshot.mjs.map +1 -1
- package/dist/plugins/wallet/codegen.d.mts +8 -6
- package/dist/plugins/wallet/codegen.mjs +4 -10
- package/dist/plugins/wallet/codegen.mjs.map +1 -1
- package/dist/plugins/wallet/errors.mjs +1 -4
- package/dist/plugins/wallet/errors.mjs.map +1 -1
- package/dist/plugins/wallet/index.d.mts +3 -6
- package/dist/plugins/wallet/index.mjs +16 -21
- package/dist/plugins/wallet/index.mjs.map +1 -1
- package/dist/plugins/wallet/origin-policy.mjs +3 -3
- package/dist/plugins/wallet/origin-policy.mjs.map +1 -1
- package/dist/plugins/wallet/pairing.mjs +6 -24
- package/dist/plugins/wallet/pairing.mjs.map +1 -1
- package/dist/plugins/wallet/protocol.mjs.map +1 -1
- package/dist/plugins/wallet/routable.mjs.map +1 -1
- package/dist/plugins/wallet/server.mjs +17 -24
- package/dist/plugins/wallet/server.mjs.map +1 -1
- package/dist/plugins/wallet/service.d.mts +2 -2
- package/dist/plugins/wallet/service.mjs +4 -15
- package/dist/plugins/wallet/service.mjs.map +1 -1
- package/dist/plugins/wallet/snapshot.mjs.map +1 -1
- package/dist/plugins/walrus/bootstrap-assets/cargo-image.mjs +1 -5
- package/dist/plugins/walrus/bootstrap-assets/cargo-image.mjs.map +1 -1
- package/dist/plugins/walrus/codegen.d.mts +2 -13
- package/dist/plugins/walrus/codegen.mjs +93 -28
- package/dist/plugins/walrus/codegen.mjs.map +1 -1
- package/dist/plugins/walrus/deploy-paths.mjs +2 -3
- package/dist/plugins/walrus/deploy-paths.mjs.map +1 -1
- package/dist/plugins/walrus/deploy.mjs +26 -19
- package/dist/plugins/walrus/deploy.mjs.map +1 -1
- package/dist/plugins/walrus/errors.mjs +1 -8
- package/dist/plugins/walrus/errors.mjs.map +1 -1
- package/dist/plugins/walrus/faucet-strategy.mjs +15 -1
- package/dist/plugins/walrus/faucet-strategy.mjs.map +1 -1
- package/dist/plugins/walrus/index.d.mts +13 -44
- package/dist/plugins/walrus/index.mjs +119 -122
- package/dist/plugins/walrus/index.mjs.map +1 -1
- package/dist/plugins/walrus/mode/known-deploy.mjs +6 -6
- package/dist/plugins/walrus/mode/known-deploy.mjs.map +1 -1
- package/dist/plugins/walrus/mode/local-cluster.d.mts +2 -2
- package/dist/plugins/walrus/mode/local-cluster.mjs +2 -10
- package/dist/plugins/walrus/mode/local-cluster.mjs.map +1 -1
- package/dist/plugins/walrus/plugin-key.mjs.map +1 -1
- package/dist/plugins/walrus/registry-publish.mjs.map +1 -1
- package/dist/plugins/walrus/routable.mjs.map +1 -1
- package/dist/plugins/walrus/service.mjs.map +1 -1
- package/dist/plugins/walrus/snapshot.mjs +3 -3
- package/dist/plugins/walrus/snapshot.mjs.map +1 -1
- package/dist/plugins/walrus/storage-nodes.mjs +53 -14
- package/dist/plugins/walrus/storage-nodes.mjs.map +1 -1
- package/dist/plugins/walrus/wal-swap.mjs +4 -8
- package/dist/plugins/walrus/wal-swap.mjs.map +1 -1
- package/dist/primitives/artifact-publisher.mjs.map +1 -1
- package/dist/primitives/cache.d.mts +1 -1
- package/dist/runtime/docker/client.mjs +47 -3
- package/dist/runtime/docker/client.mjs.map +1 -1
- package/dist/runtime/docker/container.mjs +37 -57
- package/dist/runtime/docker/container.mjs.map +1 -1
- package/dist/runtime/docker/errors.mjs.map +1 -1
- package/dist/runtime/docker/exec.mjs +2 -2
- package/dist/runtime/docker/exec.mjs.map +1 -1
- package/dist/runtime/docker/image.mjs +10 -11
- package/dist/runtime/docker/image.mjs.map +1 -1
- package/dist/runtime/docker/index.mjs +0 -1
- package/dist/runtime/docker/inspect-and-decode.mjs.map +1 -1
- package/dist/runtime/docker/inventory.mjs +9 -9
- package/dist/runtime/docker/inventory.mjs.map +1 -1
- package/dist/runtime/docker/labels.mjs +12 -1
- package/dist/runtime/docker/labels.mjs.map +1 -1
- package/dist/runtime/docker/network.mjs +6 -6
- package/dist/runtime/docker/network.mjs.map +1 -1
- package/dist/runtime/docker/render-run-args.mjs.map +1 -1
- package/dist/runtime/docker/service.mjs +31 -45
- package/dist/runtime/docker/service.mjs.map +1 -1
- package/dist/runtime/docker/sweep.mjs +14 -64
- package/dist/runtime/docker/sweep.mjs.map +1 -1
- package/dist/runtime/docker/volume.mjs +1 -1
- package/dist/runtime/docker/volume.mjs.map +1 -1
- package/dist/runtime/docker/wrap.mjs +14 -2
- package/dist/runtime/docker/wrap.mjs.map +1 -1
- package/dist/substrate/brand.d.mts +2 -5
- package/dist/substrate/brand.mjs +3 -2
- package/dist/substrate/brand.mjs.map +1 -1
- package/dist/substrate/cross-process.mjs +2 -16
- package/dist/substrate/cross-process.mjs.map +1 -1
- package/dist/substrate/event-time.mjs +0 -2
- package/dist/substrate/event-time.mjs.map +1 -1
- package/dist/substrate/events.d.mts +46 -16
- package/dist/substrate/identity.d.mts +11 -5
- package/dist/substrate/manifest.d.mts +33 -26
- package/dist/substrate/manifest.mjs +8 -3
- package/dist/substrate/manifest.mjs.map +1 -1
- package/dist/substrate/options.d.mts +33 -4
- package/dist/substrate/plugin-ctx.d.mts +70 -0
- package/dist/substrate/plugin-ctx.mjs +66 -0
- package/dist/substrate/plugin-ctx.mjs.map +1 -0
- package/dist/substrate/plugin.d.mts +46 -38
- package/dist/substrate/plugin.mjs +13 -9
- package/dist/substrate/plugin.mjs.map +1 -1
- package/dist/substrate/projection.d.mts +1 -1
- package/dist/substrate/runtime/atomic-write.mjs +3 -4
- package/dist/substrate/runtime/atomic-write.mjs.map +1 -1
- package/dist/substrate/runtime/cache/schema.mjs.map +1 -1
- package/dist/substrate/runtime/cache/service.mjs +50 -20
- package/dist/substrate/runtime/cache/service.mjs.map +1 -1
- package/dist/substrate/runtime/config-validation.mjs.map +1 -1
- package/dist/substrate/runtime/control-plane/domain.mjs +34 -12
- package/dist/substrate/runtime/control-plane/domain.mjs.map +1 -1
- package/dist/substrate/runtime/control-plane/service.mjs.map +1 -1
- package/dist/substrate/runtime/cross-process/command-channel/channel.mjs +14 -17
- package/dist/substrate/runtime/cross-process/command-channel/channel.mjs.map +1 -1
- package/dist/substrate/runtime/cross-process/command-channel/file-channel.mjs.map +1 -1
- package/dist/substrate/runtime/cross-process/command-channel/protocol.mjs.map +1 -1
- package/dist/substrate/runtime/cross-process/command-channel/runtime-control-lock.mjs.map +1 -1
- package/dist/substrate/runtime/cross-process/index.mjs +0 -2
- package/dist/substrate/runtime/cross-process/live-clock.mjs +1 -1
- package/dist/substrate/runtime/cross-process/live-clock.mjs.map +1 -1
- package/dist/substrate/runtime/cross-process/liveness.mjs +11 -18
- package/dist/substrate/runtime/cross-process/liveness.mjs.map +1 -1
- package/dist/substrate/runtime/cross-process/reclaim-stale-file.mjs +2 -2
- package/dist/substrate/runtime/cross-process/reclaim-stale-file.mjs.map +1 -1
- package/dist/substrate/runtime/cross-process/roster.mjs +17 -127
- package/dist/substrate/runtime/cross-process/roster.mjs.map +1 -1
- package/dist/substrate/runtime/cross-process/self-pid.mjs.map +1 -1
- package/dist/substrate/runtime/cross-process/stack-lock.mjs +29 -28
- package/dist/substrate/runtime/cross-process/stack-lock.mjs.map +1 -1
- package/dist/substrate/runtime/current-plugin.mjs.map +1 -1
- package/dist/substrate/runtime/errors.mjs +1 -13
- package/dist/substrate/runtime/errors.mjs.map +1 -1
- package/dist/substrate/runtime/format-unknown-error.mjs.map +1 -1
- package/dist/substrate/runtime/host-bind-mount-owner.mjs.map +1 -1
- package/dist/substrate/runtime/host-gateway.mjs.map +1 -1
- package/dist/substrate/runtime/host-tree-tar/index.mjs +15 -163
- package/dist/substrate/runtime/host-tree-tar/index.mjs.map +1 -1
- package/dist/substrate/runtime/http-probe.d.mts +1 -3
- package/dist/substrate/runtime/http-probe.mjs.map +1 -1
- package/dist/substrate/runtime/index.mjs +1 -6
- package/dist/substrate/runtime/lease-broker/service.mjs +5 -23
- package/dist/substrate/runtime/lease-broker/service.mjs.map +1 -1
- package/dist/substrate/runtime/lifecycle/dep-graph.mjs +3 -3
- package/dist/substrate/runtime/lifecycle/dep-graph.mjs.map +1 -1
- package/dist/substrate/runtime/lifecycle/graph-input-id.d.mts +1 -0
- package/dist/substrate/runtime/lifecycle/graph-input-id.mjs +133 -0
- package/dist/substrate/runtime/lifecycle/graph-input-id.mjs.map +1 -0
- package/dist/substrate/runtime/lifecycle/index.mjs +2 -2
- package/dist/substrate/runtime/lifecycle/plugin-registry.d.mts +1 -1
- package/dist/substrate/runtime/lifecycle/plugin-registry.mjs +22 -1
- package/dist/substrate/runtime/lifecycle/plugin-registry.mjs.map +1 -1
- package/dist/substrate/runtime/lifecycle/ready-gate.mjs +2 -15
- package/dist/substrate/runtime/lifecycle/ready-gate.mjs.map +1 -1
- package/dist/substrate/runtime/lifecycle/selective-restart.mjs +29 -25
- package/dist/substrate/runtime/lifecycle/selective-restart.mjs.map +1 -1
- package/dist/substrate/runtime/lifecycle/signals.mjs +1 -1
- package/dist/substrate/runtime/lifecycle/signals.mjs.map +1 -1
- package/dist/substrate/runtime/lifecycle/state-machine.mjs.map +1 -1
- package/dist/substrate/runtime/lifecycle/watch-attribution.d.mts +1 -1
- package/dist/substrate/runtime/lifecycle/watch-attribution.mjs +0 -1
- package/dist/substrate/runtime/lifecycle/watch-attribution.mjs.map +1 -1
- package/dist/substrate/runtime/managed-container.d.mts +5 -1
- package/dist/substrate/runtime/managed-container.mjs +8 -10
- package/dist/substrate/runtime/managed-container.mjs.map +1 -1
- package/dist/substrate/runtime/manifest/manifest.mjs +8 -30
- package/dist/substrate/runtime/manifest/manifest.mjs.map +1 -1
- package/dist/substrate/runtime/mode-errors.d.mts +1 -2
- package/dist/substrate/runtime/mode-errors.mjs.map +1 -1
- package/dist/substrate/runtime/observability/cascade-formatter.mjs +1 -11
- package/dist/substrate/runtime/observability/cascade-formatter.mjs.map +1 -1
- package/dist/substrate/runtime/observability/ignore-with-log.mjs.map +1 -1
- package/dist/substrate/runtime/observability/index.d.mts +1 -1
- package/dist/substrate/runtime/observability/index.mjs +4 -6
- package/dist/substrate/runtime/observability/log-attrs.mjs +46 -0
- package/dist/substrate/runtime/observability/log-attrs.mjs.map +1 -0
- package/dist/substrate/runtime/observability/log-store.mjs.map +1 -1
- package/dist/substrate/runtime/observability/logger.mjs +3 -3
- package/dist/substrate/runtime/observability/logger.mjs.map +1 -1
- package/dist/substrate/runtime/observability/output-truncate.mjs.map +1 -1
- package/dist/substrate/runtime/observability/pretty-error.mjs.map +1 -1
- package/dist/substrate/runtime/observability/process-lines.mjs.map +1 -1
- package/dist/substrate/runtime/observability/redaction.mjs.map +1 -1
- package/dist/substrate/runtime/observability/subprocess-capture.mjs +2 -2
- package/dist/substrate/runtime/observability/subprocess-capture.mjs.map +1 -1
- package/dist/substrate/runtime/passthrough-or-wrap.mjs.map +1 -1
- package/dist/substrate/runtime/paths.mjs +27 -9
- package/dist/substrate/runtime/paths.mjs.map +1 -1
- package/dist/substrate/runtime/phase-preserving-produce.mjs.map +1 -1
- package/dist/substrate/runtime/port-broker/service.mjs +10 -27
- package/dist/substrate/runtime/port-broker/service.mjs.map +1 -1
- package/dist/substrate/runtime/post-acquire-tasks.mjs.map +1 -1
- package/dist/substrate/runtime/probes.d.mts +2 -3
- package/dist/substrate/runtime/probes.mjs.map +1 -1
- package/dist/substrate/runtime/process-supervisor.mjs.map +1 -1
- package/dist/substrate/runtime/projection/operational-endpoints.mjs.map +1 -1
- package/dist/substrate/runtime/projection/state-ref.mjs.map +1 -1
- package/dist/substrate/runtime/projection/update.mjs +87 -11
- package/dist/substrate/runtime/projection/update.mjs.map +1 -1
- package/dist/substrate/runtime/random-suffix.mjs.map +1 -1
- package/dist/substrate/runtime/reconcile/fs-plan.mjs +146 -0
- package/dist/substrate/runtime/reconcile/fs-plan.mjs.map +1 -0
- package/dist/substrate/runtime/reconcile/graph.mjs +19 -0
- package/dist/substrate/runtime/reconcile/graph.mjs.map +1 -0
- package/dist/substrate/runtime/reconcile/index.mjs +5 -0
- package/dist/substrate/runtime/reconcile/label.mjs +41 -0
- package/dist/substrate/runtime/reconcile/label.mjs.map +1 -0
- package/dist/substrate/runtime/reconcile/spec.mjs +15 -0
- package/dist/substrate/runtime/reconcile/spec.mjs.map +1 -0
- package/dist/substrate/runtime/retry-policy.d.mts +2 -3
- package/dist/substrate/runtime/retry-policy.mjs.map +1 -1
- package/dist/substrate/runtime/routed-url.mjs.map +1 -1
- package/dist/substrate/runtime/runtime-decode.mjs.map +1 -1
- package/dist/substrate/runtime/scoped-http-server.mjs.map +1 -1
- package/dist/substrate/runtime/stage-and-swap/index.mjs +49 -12
- package/dist/substrate/runtime/stage-and-swap/index.mjs.map +1 -1
- package/dist/substrate/runtime/strategy-registry/chain-keyed-strategy-for.mjs.map +1 -1
- package/dist/substrate/runtime/strategy-registry/chain-probe-for.mjs.map +1 -1
- package/dist/substrate/runtime/strategy-registry/service.mjs +29 -17
- package/dist/substrate/runtime/strategy-registry/service.mjs.map +1 -1
- package/dist/substrate/runtime/subnet-broker.mjs.map +1 -1
- package/dist/substrate/runtime/supervisor/acquire-node.mjs +188 -56
- package/dist/substrate/runtime/supervisor/acquire-node.mjs.map +1 -1
- package/dist/substrate/runtime/supervisor/background-tasks.mjs +79 -65
- package/dist/substrate/runtime/supervisor/background-tasks.mjs.map +1 -1
- package/dist/substrate/runtime/supervisor/command-loop.mjs +82 -23
- package/dist/substrate/runtime/supervisor/command-loop.mjs.map +1 -1
- package/dist/substrate/runtime/supervisor/contribution-dispatcher.mjs +16 -0
- package/dist/substrate/runtime/supervisor/contribution-dispatcher.mjs.map +1 -0
- package/dist/substrate/runtime/supervisor/errors.mjs +11 -2
- package/dist/substrate/runtime/supervisor/errors.mjs.map +1 -1
- package/dist/substrate/runtime/supervisor/index.mjs +2 -0
- package/dist/substrate/runtime/supervisor/shutdown.mjs +6 -6
- package/dist/substrate/runtime/supervisor/shutdown.mjs.map +1 -1
- package/dist/substrate/runtime/supervisor/start-supervisor.mjs +60 -70
- package/dist/substrate/runtime/supervisor/start-supervisor.mjs.map +1 -1
- package/dist/substrate/runtime/supervisor/state.d.mts +1 -1
- package/dist/substrate/runtime/supervisor/state.mjs +1 -1
- package/dist/substrate/runtime/supervisor/state.mjs.map +1 -1
- package/dist/substrate/runtime/supervisor/teardown.mjs +10 -9
- package/dist/substrate/runtime/supervisor/teardown.mjs.map +1 -1
- package/dist/substrate/runtime/supervisor/wiring.mjs +6 -20
- package/dist/substrate/runtime/supervisor/wiring.mjs.map +1 -1
- package/dist/substrate/runtime/tar/reader.mjs +216 -0
- package/dist/substrate/runtime/tar/reader.mjs.map +1 -0
- package/dist/substrate/runtime/typed-env.mjs.map +1 -1
- package/dist/substrate/versioned-doc-schema.mjs.map +1 -1
- package/dist/substrate/versioned-doc-sync.mjs +5 -5
- package/dist/substrate/versioned-doc-sync.mjs.map +1 -1
- package/dist/surfaces/cli/command-tree.mjs +49 -7
- package/dist/surfaces/cli/command-tree.mjs.map +1 -1
- package/dist/surfaces/cli/commands/config.mjs +1 -1
- package/dist/surfaces/cli/commands/config.mjs.map +1 -1
- package/dist/surfaces/cli/commands/confirm-node.mjs.map +1 -1
- package/dist/surfaces/cli/commands/confirm.mjs.map +1 -1
- package/dist/surfaces/cli/commands/doctor.mjs +1 -1
- package/dist/surfaces/cli/commands/doctor.mjs.map +1 -1
- package/dist/surfaces/cli/commands/prune-picker-entry.mjs.map +1 -1
- package/dist/surfaces/cli/commands/prune-picker.mjs.map +1 -1
- package/dist/surfaces/cli/commands/prune.mjs +1 -1
- package/dist/surfaces/cli/commands/prune.mjs.map +1 -1
- package/dist/surfaces/cli/commands/snapshot.mjs +1 -1
- package/dist/surfaces/cli/commands/snapshot.mjs.map +1 -1
- package/dist/surfaces/cli/commands/status.mjs +1 -1
- package/dist/surfaces/cli/commands/status.mjs.map +1 -1
- package/dist/surfaces/cli/commands/supervisor-presence.mjs.map +1 -1
- package/dist/surfaces/cli/commands/wipe.mjs +3 -4
- package/dist/surfaces/cli/commands/wipe.mjs.map +1 -1
- package/dist/surfaces/cli/envelope.mjs.map +1 -1
- package/dist/surfaces/cli/errors.mjs.map +1 -1
- package/dist/surfaces/cli/flags.mjs.map +1 -1
- package/dist/surfaces/cli/index.mjs +45 -14
- package/dist/surfaces/cli/index.mjs.map +1 -1
- package/dist/surfaces/cli/output.mjs.map +1 -1
- package/dist/surfaces/cli/sysexits.mjs.map +1 -1
- package/dist/surfaces/tui/app.mjs +0 -21
- package/dist/surfaces/tui/app.mjs.map +1 -1
- package/dist/surfaces/tui/dashboard.mjs +0 -48
- package/dist/surfaces/tui/dashboard.mjs.map +1 -1
- package/dist/surfaces/tui/display-derivation.mjs +80 -16
- package/dist/surfaces/tui/display-derivation.mjs.map +1 -1
- package/dist/surfaces/tui/errors.mjs.map +1 -1
- package/dist/surfaces/tui/event-log.mjs +0 -9
- package/dist/surfaces/tui/event-log.mjs.map +1 -1
- package/dist/surfaces/tui/heartbeat.mjs.map +1 -1
- package/dist/surfaces/tui/index.mjs +2 -2
- package/dist/surfaces/tui/index.mjs.map +1 -1
- package/dist/surfaces/tui/input.mjs.map +1 -1
- package/dist/surfaces/tui/mode-detect.mjs.map +1 -1
- package/dist/surfaces/tui/mount-ink.mjs.map +1 -1
- package/dist/surfaces/tui/plain-renderer.mjs +26 -19
- package/dist/surfaces/tui/plain-renderer.mjs.map +1 -1
- package/dist/surfaces/tui/resource-table.mjs +8 -10
- package/dist/surfaces/tui/resource-table.mjs.map +1 -1
- package/images/postgres/Dockerfile +0 -1
- package/images/sui/Dockerfile +27 -54
- package/images/sui/entrypoint.sh +17 -179
- package/package.json +23 -15
- package/dashboard-ui/assets/index-Bmi1UtAg.js +0 -1356
- package/dashboard-ui/assets/index-D5EShVt4.js +0 -3
- package/dashboard-ui/assets/index-Deml9drg.css +0 -1
- package/dist/api/plugin-errors.d.mts +0 -7
- package/dist/api/plugin-errors.mjs +0 -10
- package/dist/api/plugin-errors.mjs.map +0 -1
- package/dist/cli/wirings/build-verb-layers.mjs +0 -42
- package/dist/cli/wirings/build-verb-layers.mjs.map +0 -1
- package/dist/contracts/capability-decl.d.mts +0 -40
- package/dist/orchestrators/built-in-plugin-layers.mjs +0 -54
- package/dist/orchestrators/built-in-plugin-layers.mjs.map +0 -1
- package/dist/orchestrators/run.mjs +0 -91
- package/dist/orchestrators/run.mjs.map +0 -1
- package/dist/orchestrators/runtime-composition.d.mts +0 -10
- package/dist/orchestrators/runtime-composition.mjs +0 -252
- package/dist/orchestrators/runtime-composition.mjs.map +0 -1
- package/dist/orchestrators/snapshot/capture-command.d.mts +0 -1
- package/dist/orchestrators/snapshot/capture-command.mjs +0 -25
- package/dist/orchestrators/snapshot/capture-command.mjs.map +0 -1
- package/dist/orchestrators/snapshot/pending-marker.mjs +0 -99
- package/dist/orchestrators/snapshot/pending-marker.mjs.map +0 -1
- package/dist/orchestrators/snapshot/recover-pending.mjs +0 -223
- package/dist/orchestrators/snapshot/recover-pending.mjs.map +0 -1
- package/dist/orchestrators/snapshot/state-document.d.mts +0 -1
- package/dist/orchestrators/snapshot/state-document.mjs +0 -58
- package/dist/orchestrators/snapshot/state-document.mjs.map +0 -1
- package/dist/plugins/account/spans.mjs +0 -16
- package/dist/plugins/account/spans.mjs.map +0 -1
- package/dist/plugins/account/variants/env.mjs +0 -24
- package/dist/plugins/account/variants/env.mjs.map +0 -1
- package/dist/plugins/account/variants/inline.mjs +0 -13
- package/dist/plugins/account/variants/inline.mjs.map +0 -1
- package/dist/plugins/account/variants/keystore.mjs +0 -91
- package/dist/plugins/account/variants/keystore.mjs.map +0 -1
- package/dist/plugins/action/spans.mjs +0 -11
- package/dist/plugins/action/spans.mjs.map +0 -1
- package/dist/plugins/coin/spans.mjs +0 -20
- package/dist/plugins/coin/spans.mjs.map +0 -1
- package/dist/plugins/deepbook/spans.mjs +0 -18
- package/dist/plugins/deepbook/spans.mjs.map +0 -1
- package/dist/plugins/faucet/spans.mjs +0 -12
- package/dist/plugins/faucet/spans.mjs.map +0 -1
- package/dist/plugins/package/spans.mjs +0 -14
- package/dist/plugins/package/spans.mjs.map +0 -1
- package/dist/plugins/postgres/codegen.mjs +0 -42
- package/dist/plugins/postgres/codegen.mjs.map +0 -1
- package/dist/plugins/postgres/connection.d.mts +0 -33
- package/dist/plugins/postgres/connection.mjs.map +0 -1
- package/dist/plugins/postgres/db-ensure.mjs.map +0 -1
- package/dist/plugins/postgres/errors.d.mts +0 -60
- package/dist/plugins/postgres/errors.mjs +0 -29
- package/dist/plugins/postgres/errors.mjs.map +0 -1
- package/dist/plugins/postgres/index.d.mts +0 -37
- package/dist/plugins/postgres/index.mjs +0 -68
- package/dist/plugins/postgres/index.mjs.map +0 -1
- package/dist/plugins/postgres/routable.mjs +0 -33
- package/dist/plugins/postgres/routable.mjs.map +0 -1
- package/dist/plugins/postgres/service.d.mts +0 -50
- package/dist/plugins/postgres/service.mjs +0 -179
- package/dist/plugins/postgres/service.mjs.map +0 -1
- package/dist/plugins/postgres/snapshot.mjs +0 -32
- package/dist/plugins/postgres/snapshot.mjs.map +0 -1
- package/dist/plugins/postgres/spans.mjs +0 -11
- package/dist/plugins/postgres/spans.mjs.map +0 -1
- package/dist/plugins/seal/spans.mjs +0 -18
- package/dist/plugins/seal/spans.mjs.map +0 -1
- package/dist/plugins/sui/spans.mjs +0 -17
- package/dist/plugins/sui/spans.mjs.map +0 -1
- package/dist/plugins/wallet/spans.mjs +0 -22
- package/dist/plugins/wallet/spans.mjs.map +0 -1
- package/dist/plugins/walrus/registry-publish.d.mts +0 -24
- package/dist/plugins/walrus/spans.mjs +0 -18
- package/dist/plugins/walrus/spans.mjs.map +0 -1
- package/dist/runtime/docker/logs.d.mts +0 -1
- package/dist/runtime/docker/logs.mjs +0 -34
- package/dist/runtime/docker/logs.mjs.map +0 -1
- package/dist/substrate/runtime/artifact-publisher/index.mjs +0 -86
- package/dist/substrate/runtime/artifact-publisher/index.mjs.map +0 -1
- package/dist/substrate/runtime/capability-sinks/index.d.mts +0 -1
- package/dist/substrate/runtime/capability-sinks/index.mjs +0 -3
- package/dist/substrate/runtime/capability-sinks/layer.d.mts +0 -1
- package/dist/substrate/runtime/capability-sinks/layer.mjs +0 -31
- package/dist/substrate/runtime/capability-sinks/layer.mjs.map +0 -1
- package/dist/substrate/runtime/capability-sinks/service.d.mts +0 -95
- package/dist/substrate/runtime/capability-sinks/service.mjs +0 -69
- package/dist/substrate/runtime/capability-sinks/service.mjs.map +0 -1
- package/dist/substrate/runtime/cross-process/lock.d.mts +0 -1
- package/dist/substrate/runtime/cross-process/lock.mjs +0 -23
- package/dist/substrate/runtime/cross-process/lock.mjs.map +0 -1
- package/dist/substrate/runtime/cross-process/snapshot-reservation.mjs +0 -113
- package/dist/substrate/runtime/cross-process/snapshot-reservation.mjs.map +0 -1
- package/dist/substrate/runtime/lifecycle/lifecycle-fact.mjs +0 -31
- package/dist/substrate/runtime/lifecycle/lifecycle-fact.mjs.map +0 -1
- package/dist/substrate/runtime/observability/formatter-registry.d.mts +0 -1
- package/dist/substrate/runtime/observability/formatter-registry.mjs +0 -48
- package/dist/substrate/runtime/observability/formatter-registry.mjs.map +0 -1
- package/dist/substrate/runtime/observability/span-store.d.mts +0 -1
- package/dist/substrate/runtime/observability/span-store.mjs +0 -110
- package/dist/substrate/runtime/observability/span-store.mjs.map +0 -1
- package/dist/substrate/runtime/observability/spans.d.mts +0 -1
- package/dist/substrate/runtime/observability/spans.mjs +0 -87
- package/dist/substrate/runtime/observability/spans.mjs.map +0 -1
- package/dist/substrate/runtime/projection/index.mjs +0 -4
- package/dist/substrate/runtime/projection/persisted.mjs +0 -213
- package/dist/substrate/runtime/projection/persisted.mjs.map +0 -1
- package/dist/substrate/runtime/scoped-multimap/service.mjs +0 -52
- package/dist/substrate/runtime/scoped-multimap/service.mjs.map +0 -1
- package/dist/substrate/runtime/scoped-ref-map/index.mjs +0 -2
- package/dist/substrate/runtime/scoped-ref-map/service.mjs +0 -83
- package/dist/substrate/runtime/scoped-ref-map/service.mjs.map +0 -1
- package/dist/substrate/runtime/state-store/index.mjs +0 -3
- package/dist/substrate/runtime/state-store/schema.d.mts +0 -1
- package/dist/substrate/runtime/state-store/schema.mjs +0 -41
- package/dist/substrate/runtime/state-store/schema.mjs.map +0 -1
- package/dist/substrate/runtime/state-store/service.d.mts +0 -1
- package/dist/substrate/runtime/state-store/service.mjs +0 -145
- package/dist/substrate/runtime/state-store/service.mjs.map +0 -1
- package/dist/substrate/runtime/sui-execute/index.mjs.map +0 -1
- package/dist/substrate/runtime/sui-execute/sign-and-dispatch.mjs.map +0 -1
- package/dist/substrate/runtime/sui-ledger/object-ref.mjs.map +0 -1
- package/dist/substrate/runtime/sui-move-build/index.mjs.map +0 -1
- package/dist/substrate/runtime/supervisor/dispatch-contributions.mjs +0 -151
- package/dist/substrate/runtime/supervisor/dispatch-contributions.mjs.map +0 -1
- package/dist/substrate/state-store.d.mts +0 -1
- /package/dist/orchestrators/{snapshot/pending-marker.d.mts → codegen/id-config.d.mts} +0 -0
- /package/dist/orchestrators/snapshot/{recover-pending.d.mts → interrupted-restore.d.mts} +0 -0
- /package/dist/{substrate/runtime/sui-execute → plugins/sui/exec}/sign-and-dispatch.d.mts +0 -0
- /package/dist/plugins/{postgres/snapshot.d.mts → sui/ledger/object-ref.d.mts} +0 -0
- /package/dist/{substrate/runtime/sui-move-build → plugins/sui/move}/index.d.mts +0 -0
- /package/dist/substrate/runtime/{state-store/index.d.mts → reconcile/graph.d.mts} +0 -0
- /package/dist/substrate/runtime/{cross-process/snapshot-reservation.d.mts → supervisor/contribution-dispatcher.d.mts} +0 -0
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { Effect, Schema } from "effect";
|
|
2
|
-
import * as _$effect_Cause0 from "effect/Cause";
|
|
3
2
|
|
|
4
3
|
//#region src/substrate/manifest.d.ts
|
|
5
4
|
declare const ManifestExtrasInvalid_base: Schema.Class<ManifestExtrasInvalid, Schema.TaggedStruct<"ManifestExtrasInvalid", {
|
|
6
5
|
readonly detail: Schema.String;
|
|
7
|
-
}>,
|
|
6
|
+
}>, import("effect/Cause").YieldableError>;
|
|
8
7
|
/** Tagged failure when a plugin's manifest-extras contribution does
|
|
9
8
|
* not resolve to a plain record. STYLE_GUIDE §2.2 — substrate (L0)
|
|
10
9
|
* errors use `Schema.TaggedErrorClass`; downstream classifiers
|
|
@@ -14,7 +13,7 @@ declare class ManifestExtrasInvalid extends ManifestExtrasInvalid_base {}
|
|
|
14
13
|
declare const ManifestExtrasLookupError_base: Schema.Class<ManifestExtrasLookupError, Schema.TaggedStruct<"ManifestExtrasLookupError", {
|
|
15
14
|
readonly kind: Schema.Literals<readonly ["unknown-resource", "unresolved-resource"]>;
|
|
16
15
|
readonly resourceId: Schema.String;
|
|
17
|
-
}>,
|
|
16
|
+
}>, import("effect/Cause").YieldableError>;
|
|
18
17
|
/** Tagged failure when a plugin's `extras` factory references a
|
|
19
18
|
* resource the host cannot resolve — either the resource id is not
|
|
20
19
|
* registered with the supervisor, or it has not produced a value
|
|
@@ -25,36 +24,41 @@ declare const ManifestExtrasLookupError_base: Schema.Class<ManifestExtrasLookupE
|
|
|
25
24
|
* than die-cause inspection. */
|
|
26
25
|
declare class ManifestExtrasLookupError extends ManifestExtrasLookupError_base {}
|
|
27
26
|
/** Codegen metadata recorded per stack. The supervisor writes the
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
27
|
+
* dev-only `extrasDir` (the `@devstack-dev` overlay) and the live
|
|
28
|
+
* `idsFile` (the gitignored `devstack-ids.json` injected as
|
|
29
|
+
* `__DEVSTACK_IDS__`) here at manifest-flush time so the read-side
|
|
30
|
+
* build integrations (the Vite plugin) consult the exact locations the
|
|
31
|
+
* boot wrote — read and write share one decision. Bindings themselves
|
|
32
|
+
* are NOT recorded here: the `@generated` alias always resolves to the
|
|
33
|
+
* committed `src/generated` tree written by the stack-free `codegen`
|
|
34
|
+
* verb. Optional + additive: manifests written before these fields
|
|
35
|
+
* existed still decode; consumers fall back to their cold-start paths. */
|
|
36
36
|
interface ManifestCodegen {
|
|
37
|
-
/** Absolute path to the
|
|
38
|
-
* stack (
|
|
39
|
-
*
|
|
40
|
-
|
|
37
|
+
/** Absolute path to the dev-only + secret `generated-extras` tree
|
|
38
|
+
* for this stack (`<appRoot>/.devstack/stacks/<stack>/generated-extras`).
|
|
39
|
+
* The `@devstack-dev` Vite alias resolves here. Optional +
|
|
40
|
+
* additive — older manifests omit it; the reader falls back to
|
|
41
|
+
* `.devstack/stacks/<stack>/generated-extras`. */
|
|
42
|
+
readonly extrasDir?: string;
|
|
43
|
+
/** Absolute path to the gitignored `devstack-ids.json` the boot wrote
|
|
44
|
+
* for this stack (the live on-chain ids). The Vite plugin reads it to
|
|
45
|
+
* inject `__DEVSTACK_IDS__` in dev. Optional + additive. */
|
|
46
|
+
readonly idsFile?: string;
|
|
41
47
|
}
|
|
42
|
-
/** Manifest envelope.
|
|
43
|
-
* the envelope level; each plugin's Codegenable contribution
|
|
44
|
-
* emits a typed file the consumer imports for the typed shape.
|
|
45
|
-
*/
|
|
48
|
+
/** Manifest envelope. */
|
|
46
49
|
interface ManifestEnvelope {
|
|
47
50
|
readonly identity: {
|
|
48
51
|
readonly app: string;
|
|
49
52
|
readonly stack: string;
|
|
50
|
-
readonly
|
|
53
|
+
readonly network: string;
|
|
51
54
|
};
|
|
52
55
|
readonly manifestVersion: number;
|
|
53
|
-
|
|
56
|
+
/** Optional per-plugin service slot. The read-side build-integration API
|
|
57
|
+
* surfaces `{}` when absent. */
|
|
58
|
+
readonly services?: Readonly<Record<string, unknown>>;
|
|
54
59
|
readonly endpoints: Readonly<Record<string, EndpointEntry>>;
|
|
55
60
|
readonly extras: Readonly<Record<string, unknown>>;
|
|
56
|
-
/** Per-stack codegen metadata.
|
|
57
|
-
* manifests; the reader falls back to `src/generated/`. */
|
|
61
|
+
/** Per-stack codegen metadata. When absent, readers use `src/generated/`. */
|
|
58
62
|
readonly codegen?: ManifestCodegen;
|
|
59
63
|
}
|
|
60
64
|
type ManifestExtras = Readonly<Record<string, unknown>>;
|
|
@@ -80,10 +84,10 @@ declare const ManifestEnvelopeSchema: Schema.Struct<{
|
|
|
80
84
|
readonly identity: Schema.Struct<{
|
|
81
85
|
readonly app: Schema.String;
|
|
82
86
|
readonly stack: Schema.String;
|
|
83
|
-
readonly
|
|
87
|
+
readonly network: Schema.String;
|
|
84
88
|
}>;
|
|
85
89
|
readonly manifestVersion: Schema.Number;
|
|
86
|
-
readonly services: Schema.$Record<Schema.String, Schema.Unknown
|
|
90
|
+
readonly services: Schema.optional<Schema.$Record<Schema.String, Schema.Unknown>>;
|
|
87
91
|
readonly endpoints: Schema.$Record<Schema.String, Schema.Struct<{
|
|
88
92
|
readonly name: Schema.String;
|
|
89
93
|
readonly url: Schema.String;
|
|
@@ -94,7 +98,10 @@ declare const ManifestEnvelopeSchema: Schema.Struct<{
|
|
|
94
98
|
}>>;
|
|
95
99
|
readonly extras: Schema.$Record<Schema.String, Schema.Unknown>;
|
|
96
100
|
readonly codegen: Schema.optional<Schema.Struct<{
|
|
97
|
-
readonly
|
|
101
|
+
readonly extrasDir: Schema.optional<Schema.String>;
|
|
102
|
+
/** Absolute path to the gitignored `devstack-ids.json` the boot
|
|
103
|
+
* wrote for this stack. The Vite plugin reads it in dev. */
|
|
104
|
+
readonly idsFile: Schema.optional<Schema.String>;
|
|
98
105
|
}>>;
|
|
99
106
|
}>;
|
|
100
107
|
//#endregion
|
|
@@ -37,10 +37,10 @@ const ManifestEnvelopeSchema = Schema.Struct({
|
|
|
37
37
|
identity: Schema.Struct({
|
|
38
38
|
app: Schema.String,
|
|
39
39
|
stack: Schema.String,
|
|
40
|
-
|
|
40
|
+
network: Schema.String
|
|
41
41
|
}),
|
|
42
42
|
manifestVersion: Schema.Number,
|
|
43
|
-
services: Schema.Record(Schema.String, Schema.Unknown),
|
|
43
|
+
services: Schema.optional(Schema.Record(Schema.String, Schema.Unknown)),
|
|
44
44
|
endpoints: Schema.Record(Schema.String, Schema.Struct({
|
|
45
45
|
name: Schema.String,
|
|
46
46
|
url: Schema.String,
|
|
@@ -54,7 +54,12 @@ const ManifestEnvelopeSchema = Schema.Struct({
|
|
|
54
54
|
endpointKey: Schema.String
|
|
55
55
|
})),
|
|
56
56
|
extras: Schema.Record(Schema.String, Schema.Unknown),
|
|
57
|
-
codegen: Schema.optional(Schema.Struct({
|
|
57
|
+
codegen: Schema.optional(Schema.Struct({
|
|
58
|
+
extrasDir: Schema.optional(Schema.String),
|
|
59
|
+
/** Absolute path to the gitignored `devstack-ids.json` the boot
|
|
60
|
+
* wrote for this stack. The Vite plugin reads it in dev. */
|
|
61
|
+
idsFile: Schema.optional(Schema.String)
|
|
62
|
+
}))
|
|
58
63
|
});
|
|
59
64
|
//#endregion
|
|
60
65
|
export { ManifestEnvelopeSchema, ManifestExtrasInvalid, ManifestExtrasLookupError, resolveManifestExtras };
|
|
@@ -1 +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,
|
|
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, endpoints lookup,\n// 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\n/** Tagged failure when a plugin's manifest-extras contribution does\n * not resolve to a plain record. STYLE_GUIDE §2.2 — substrate (L0)\n * errors use `Schema.TaggedErrorClass`; downstream classifiers\n * `catchTag('ManifestExtrasInvalid', ...)` instead of sniffing the\n * message. */\nexport class ManifestExtrasInvalid extends Schema.TaggedErrorClass<ManifestExtrasInvalid>()(\n\t'ManifestExtrasInvalid',\n\t{\n\t\tdetail: Schema.String,\n\t},\n) {}\n\n/** Tagged failure when a plugin's `extras` factory references a\n * resource the host cannot resolve — either the resource id is not\n * registered with the supervisor, or it has not produced a value\n * yet at the point the factory ran. Thrown synchronously from the\n * user-supplied `ctx.value(...)` closure; `resolveManifestExtras`\n * catches the throw and surfaces it as a typed failure so callers\n * classify via `catchTag('ManifestExtrasLookupError', ...)` rather\n * than die-cause inspection. */\nexport class ManifestExtrasLookupError extends Schema.TaggedErrorClass<ManifestExtrasLookupError>()(\n\t'ManifestExtrasLookupError',\n\t{\n\t\tkind: Schema.Literals(['unknown-resource', 'unresolved-resource']),\n\t\tresourceId: Schema.String,\n\t},\n) {}\n\n/** Codegen metadata recorded per stack. The supervisor writes the\n * dev-only `extrasDir` (the `@devstack-dev` overlay) and the live\n * `idsFile` (the gitignored `devstack-ids.json` injected as\n * `__DEVSTACK_IDS__`) here at manifest-flush time so the read-side\n * build integrations (the Vite plugin) consult the exact locations the\n * boot wrote — read and write share one decision. Bindings themselves\n * are NOT recorded here: the `@generated` alias always resolves to the\n * committed `src/generated` tree written by the stack-free `codegen`\n * verb. Optional + additive: manifests written before these fields\n * existed still decode; consumers fall back to their cold-start paths. */\nexport interface ManifestCodegen {\n\t/** Absolute path to the dev-only + secret `generated-extras` tree\n\t * for this stack (`<appRoot>/.devstack/stacks/<stack>/generated-extras`).\n\t * The `@devstack-dev` Vite alias resolves here. Optional +\n\t * additive — older manifests omit it; the reader falls back to\n\t * `.devstack/stacks/<stack>/generated-extras`. */\n\treadonly extrasDir?: string;\n\t/** Absolute path to the gitignored `devstack-ids.json` the boot wrote\n\t * for this stack (the live on-chain ids). The Vite plugin reads it to\n\t * inject `__DEVSTACK_IDS__` in dev. Optional + additive. */\n\treadonly idsFile?: string;\n}\n\n/** Manifest envelope. */\nexport interface ManifestEnvelope {\n\treadonly identity: {\n\t\treadonly app: string;\n\t\treadonly stack: string;\n\t\treadonly network: string;\n\t};\n\treadonly manifestVersion: number;\n\t/** Optional per-plugin service slot. The read-side build-integration API\n\t * surfaces `{}` when absent. */\n\treadonly services?: Readonly<Record<string, unknown>>;\n\treadonly endpoints: Readonly<Record<string, EndpointEntry>>;\n\treadonly extras: Readonly<Record<string, unknown>>;\n\t/** Per-stack codegen metadata. When absent, readers use `src/generated/`. */\n\treadonly codegen?: ManifestCodegen;\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): Effect.Effect<ManifestExtras, ManifestExtrasInvalid | ManifestExtrasLookupError, never> =>\n\tEffect.gen(function* () {\n\t\tif (input === undefined) return {};\n\t\t// The user-supplied `extras` factory invokes `ctx.value(...)`\n\t\t// synchronously; a missing/unresolved resource throws a\n\t\t// `ManifestExtrasLookupError`. `Effect.try` with a typed\n\t\t// `catch` mapper promotes that throw into the typed failure\n\t\t// channel so callers `catchTag` it instead of having to inspect\n\t\t// the die-cause. Any non-tagged throw is rethrown to preserve\n\t\t// the existing defect semantics for genuine programmer errors\n\t\t// inside the factory body.\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.try({\n\t\t\t\t\t\ttry: () => input(ctx),\n\t\t\t\t\t\tcatch: (cause) => {\n\t\t\t\t\t\t\tif (cause instanceof ManifestExtrasLookupError) return cause;\n\t\t\t\t\t\t\tthrow cause;\n\t\t\t\t\t\t},\n\t\t\t\t\t}).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(\n\t\t\t\tnew ManifestExtrasInvalid({\n\t\t\t\t\tdetail: 'manifest extras must resolve to a plain record',\n\t\t\t\t}),\n\t\t\t);\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' | 'tcp';\n\treadonly pluginKey: string;\n\treadonly endpointKey: string;\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\tnetwork: Schema.String,\n\t}),\n\tmanifestVersion: Schema.Number,\n\t// Optional service map for read-side integrations.\n\tservices: Schema.optional(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.Literals(['http', 'h2c', 'tcp']),\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\t// Optional codegen metadata. The Vite plugin reads\n\t// `codegen.extrasDir` to point its `@devstack-dev` overlay alias and\n\t// `codegen.idsFile` to inject the live on-chain ids via\n\t// `__DEVSTACK_IDS__`; on a miss it falls back to the cold-start\n\t// `generated-extras` path and `__DEVSTACK_IDS__ = null`. Bindings are\n\t// not recorded here — `@generated` always resolves to the committed\n\t// `src/generated` tree.\n\tcodegen: Schema.optional(\n\t\tSchema.Struct({\n\t\t\textrasDir: Schema.optional(Schema.String),\n\t\t\t/** Absolute path to the gitignored `devstack-ids.json` the boot\n\t\t\t * wrote for this stack. The Vite plugin reads it in dev. */\n\t\t\tidsFile: Schema.optional(Schema.String),\n\t\t}),\n\t),\n});\n"],"mappings":";;;;;;;AAoBA,IAAa,wBAAb,cAA2C,OAAO,iBAAwC,CAAC,CAC1F,yBACA,EACC,QAAQ,OAAO,OAChB,CACD,CAAC,CAAC,CAAC;;;;;;;;;AAUH,IAAa,4BAAb,cAA+C,OAAO,iBAA4C,CAAC,CAClG,6BACA;CACC,MAAM,OAAO,SAAS,CAAC,oBAAoB,qBAAqB,CAAC;CACjE,YAAY,OAAO;AACpB,CACD,CAAC,CAAC,CAAC;AAyDH,MAAM,YAAY,UACjB,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAEpE,MAAa,yBACZ,OACA,QAEA,OAAO,IAAI,aAAa;CACvB,IAAI,UAAU,KAAA,GAAW,OAAO,CAAC;CAsBjC,MAAM,WAAW,OAbM,OAAO,SAAS,KAAK,IACzC,QACA,OAAO,UAAU,aAChB,OAAO,IAAI;EACX,WAAW,MAAM,GAAG;EACpB,QAAQ,UAAU;GACjB,IAAI,iBAAiB,2BAA2B,OAAO;GACvD,MAAM;EACP;CACD,CAAC,CAAC,CAAC,KACF,OAAO,SAAS,UAAW,OAAO,SAAS,KAAK,IAAI,QAAQ,OAAO,QAAQ,KAAK,CAAE,CACnF,IACC,OAAO,QAAQ,KAAK;CAExB,IAAI,CAAC,SAAS,QAAQ,GACrB,OAAO,OAAO,OAAO,KACpB,IAAI,sBAAsB,EACzB,QAAQ,iDACT,CAAC,CACF;CAED,OAAO;AACR,CAAC;;;AAeF,MAAa,yBAAyB,OAAO,OAAO;CACnD,UAAU,OAAO,OAAO;EACvB,KAAK,OAAO;EACZ,OAAO,OAAO;EACd,SAAS,OAAO;CACjB,CAAC;CACD,iBAAiB,OAAO;CAExB,UAAU,OAAO,SAAS,OAAO,OAAO,OAAO,QAAQ,OAAO,OAAO,CAAC;CACtE,WAAW,OAAO,OACjB,OAAO,QACP,OAAO,OAAO;EACb,MAAM,OAAO;EACb,KAAK,OAAO;EACZ,YAAY,OAAO,OAAO,OAAO,MAAM;EACvC,cAAc,OAAO,SAAS;GAAC;GAAQ;GAAO;EAAK,CAAC;EACpD,WAAW,OAAO;EAClB,aAAa,OAAO;CACrB,CAAC,CACF;CACA,QAAQ,OAAO,OAAO,OAAO,QAAQ,OAAO,OAAO;CAQnD,SAAS,OAAO,SACf,OAAO,OAAO;EACb,WAAW,OAAO,SAAS,OAAO,MAAM;;;EAGxC,SAAS,OAAO,SAAS,OAAO,MAAM;CACvC,CAAC,CACF;AACD,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { ManifestExtrasInput } from "./manifest.mjs";
|
|
2
|
-
import { NetworkConfig } from "./network.mjs";
|
|
3
2
|
|
|
4
3
|
//#region src/substrate/options.d.ts
|
|
5
4
|
/** Options shape — all fields optional. Renderer choice
|
|
@@ -7,14 +6,44 @@ import { NetworkConfig } from "./network.mjs";
|
|
|
7
6
|
* defaults. */
|
|
8
7
|
interface DevstackOptions {
|
|
9
8
|
readonly stackName?: string;
|
|
10
|
-
|
|
9
|
+
/** Substrate-opaque network pass-through. The substrate is name-blind
|
|
10
|
+
* and never reads `.mode`/`.chain` off this — it forwards the value to
|
|
11
|
+
* `engine.options.network` verbatim. The sui-plugin authoring surface
|
|
12
|
+
* (`DevstackOptionsWith<Mode>` in `api/define-devstack-with.ts`)
|
|
13
|
+
* narrows this to the sui-plugin `NetworkConfig<Mode>` for typed
|
|
14
|
+
* mode-narrowing; the flat form accepts any value. */
|
|
15
|
+
readonly network?: unknown;
|
|
11
16
|
readonly stateDir?: string;
|
|
12
17
|
readonly codegen?: {
|
|
13
|
-
|
|
14
|
-
|
|
18
|
+
/** Forwarded verbatim to `@mysten/codegen`'s
|
|
19
|
+
* `generateFromPackageSummary({ includePhantomTypeParameters })`.
|
|
20
|
+
* Default `false` — `@mysten/codegen`'s own default.
|
|
21
|
+
*
|
|
22
|
+
* Off, a struct whose type parameters are ALL phantom renders as a
|
|
23
|
+
* plain `const X = new MoveStruct({ name: '...::X<phantom T>' })` —
|
|
24
|
+
* the phantom placeholder is baked into `.name`, so the instance is
|
|
25
|
+
* unusable as a concrete type tag. On, such structs render as
|
|
26
|
+
* factory functions
|
|
27
|
+
* (`export function X<T extends BcsType<any>>(...typeParameters: [T])`)
|
|
28
|
+
* whose returned MoveStruct's `.name` interpolates the arguments'
|
|
29
|
+
* names — phantom parameters become REQUIRED, and the instance's
|
|
30
|
+
* `.name` is a fully-qualified, composable type tag
|
|
31
|
+
* (`Pool(DBTC, DUSDC).name`).
|
|
32
|
+
*
|
|
33
|
+
* NOTE: flipping this reshapes the generated code for phantom-only
|
|
34
|
+
* structs from consts to factories, so call sites consuming those
|
|
35
|
+
* bindings change. */
|
|
36
|
+
readonly includePhantomTypeParameters?: boolean;
|
|
15
37
|
};
|
|
16
38
|
readonly renderer?: 'tui' | 'plain' | 'silent';
|
|
17
39
|
readonly extras?: ManifestExtrasInput;
|
|
40
|
+
/** Per-network options, keyed by the resolved network name. The
|
|
41
|
+
* name-blind substrate forwards this verbatim — it never reads the
|
|
42
|
+
* shape. The authoring surface (`api/define-devstack-with.ts`) narrows
|
|
43
|
+
* it to typed per-network toggles, and the plugin-aware orchestrator
|
|
44
|
+
* interprets it (`orchestrators/network-options.ts`
|
|
45
|
+
* `resolveNetworkOptions`). Mirrors the opaque `network` field. */
|
|
46
|
+
readonly networkOptions?: Readonly<Record<string, unknown>>;
|
|
18
47
|
}
|
|
19
48
|
//#endregion
|
|
20
49
|
export { DevstackOptions };
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { CodegenableDecl } from "../contracts/codegenable.mjs";
|
|
2
|
+
import { SnapshotableDecl } from "../contracts/snapshotable.mjs";
|
|
3
|
+
import { RoutableDecl } from "../contracts/routable.mjs";
|
|
4
|
+
import { StrategyContributorDecl } from "../contracts/strategy-contributor.mjs";
|
|
5
|
+
import { ProjectionDecl } from "../contracts/projection.mjs";
|
|
6
|
+
import { Context } from "effect";
|
|
7
|
+
|
|
8
|
+
//#region src/substrate/plugin-ctx.d.ts
|
|
9
|
+
/**
|
|
10
|
+
* The minimal typed plugin-authoring context. A plugin reaches it from
|
|
11
|
+
* `start` with `const ctx = yield* PluginContext` (the service tag
|
|
12
|
+
* below); the supervisor provides a per-plugin instance into `start`'s
|
|
13
|
+
* requirement channel.
|
|
14
|
+
*
|
|
15
|
+
* EXACTLY 5 keys (INV-5 — see file header). Do not add a 6th.
|
|
16
|
+
*/
|
|
17
|
+
interface PluginCtx {
|
|
18
|
+
/** Buffered: contribute the plugin's LIVE codegen decl to the codegen
|
|
19
|
+
* orchestrator. Replayed in the supervisor frame after a successful
|
|
20
|
+
* `start` (it carries post-acquire runtime state — resolved ids, rpc —
|
|
21
|
+
* so it cannot be a static spec field; that is exactly why it is a
|
|
22
|
+
* buffered verb). Since codegen was decoupled from boot this is the
|
|
23
|
+
* LIVE half ONLY: at boot the orchestrator projects the decl into the
|
|
24
|
+
* loadable id-config (`assembleIdConfig`) and, for dev-only decls,
|
|
25
|
+
* writes the `generated-extras` tree (`emitExtras`) — it does NOT write
|
|
26
|
+
* the committed `src/generated` tree. That committed, stack-free tree is
|
|
27
|
+
* emitted separately by the `devstack codegen` verb from the plugin
|
|
28
|
+
* spec's `staticCodegen` hook, derived from the SAME `ConfigBindingSet`.
|
|
29
|
+
* Returns void (the orchestrator owns rendering). */
|
|
30
|
+
readonly codegen: <E extends string>(decl: CodegenableDecl<E>) => void;
|
|
31
|
+
/** Buffered: declare a routable endpoint for the router orchestrator.
|
|
32
|
+
* Replayed in the supervisor frame after a successful `start`.
|
|
33
|
+
* Returns VOID — no URL is echoed back to the plugin (the router
|
|
34
|
+
* mints and publishes the endpoint event itself). */
|
|
35
|
+
readonly endpoint: (decl: RoutableDecl) => void;
|
|
36
|
+
/** Buffered: declare extra snapshot subtrees / managed containers /
|
|
37
|
+
* identity-guard hooks for the snapshot orchestrator. Replayed in
|
|
38
|
+
* the supervisor frame after a successful `start`. */
|
|
39
|
+
readonly snapshotExtra: (decl: SnapshotableDecl) => void;
|
|
40
|
+
/** Buffered: publish a name-blind projection event through the
|
|
41
|
+
* projection sink. Replayed in the supervisor frame after a
|
|
42
|
+
* successful `start`. */
|
|
43
|
+
readonly publish: (decl: ProjectionDecl) => void;
|
|
44
|
+
/** Strategy bus (write): contribute a strategy under a capability
|
|
45
|
+
* key for a sibling to read via `StrategyRegistryService`. Registers
|
|
46
|
+
* on the scope-local StrategyRegistry, publishes `strategy.registered`,
|
|
47
|
+
* and arms a finalizer publishing `strategy.unregistered`. */
|
|
48
|
+
readonly provides: <K extends string, S>(decl: StrategyContributorDecl<K, S>) => void;
|
|
49
|
+
}
|
|
50
|
+
declare const PluginContext_base: Context.ServiceClass<PluginContext, "@devstack/substrate/PluginContext", PluginCtx>;
|
|
51
|
+
/**
|
|
52
|
+
* Effect service tag carrying the per-plugin {@link PluginCtx}.
|
|
53
|
+
*
|
|
54
|
+
* A plugin's `start` body reaches its ctx with `const ctx = yield*
|
|
55
|
+
* PluginContext`. The supervisor builds a fresh per-plugin ctx (+ its
|
|
56
|
+
* replay buffer) in `runtime/supervisor/acquire-node.ts` and PROVIDES it
|
|
57
|
+
* into `start`'s requirement channel
|
|
58
|
+
* (`Effect.provideService(start(deps), PluginContext, ctx)`), so the tag
|
|
59
|
+
* is always satisfied for code the supervisor runs.
|
|
60
|
+
*
|
|
61
|
+
* This ambient requirement lives only in `start`'s R-channel; it does NOT
|
|
62
|
+
* surface in the public `Plugin<Id, Value, Needs>` contract (`Needs` is
|
|
63
|
+
* `dependsOn` only — see `plugin.ts`). Declaring it as a service rather
|
|
64
|
+
* than a `start` argument is what keeps `start` single-arg, restoring
|
|
65
|
+
* automatic `deps` inference.
|
|
66
|
+
*/
|
|
67
|
+
declare class PluginContext extends PluginContext_base {}
|
|
68
|
+
//#endregion
|
|
69
|
+
export { PluginContext, PluginCtx };
|
|
70
|
+
//# sourceMappingURL=plugin-ctx.d.mts.map
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { Context } from "effect";
|
|
2
|
+
//#region src/substrate/plugin-ctx.ts
|
|
3
|
+
/**
|
|
4
|
+
* The ONE shared contribution router. A plugin's `start` builds an ordered
|
|
5
|
+
* (possibly conditional/variadic) list of {@link Contribution} decls and
|
|
6
|
+
* feeds it here; this routes each decl to its matching `ctx` verb by its
|
|
7
|
+
* `kind` discriminant, IN LIST ORDER:
|
|
8
|
+
*
|
|
9
|
+
* snapshotable → `ctx.snapshotExtra`
|
|
10
|
+
* codegenable → `ctx.codegen`
|
|
11
|
+
* routable → `ctx.endpoint`
|
|
12
|
+
* projection → `ctx.publish`
|
|
13
|
+
* strategy-contributor → `ctx.provides`
|
|
14
|
+
*
|
|
15
|
+
* This is the single exhaustive `switch` over the closed `Contribution`
|
|
16
|
+
* union — replacing the per-plugin `build*`/`emit*` wrapper pairs that each
|
|
17
|
+
* re-implemented this same routing. The supervisor mirrors this dispatch
|
|
18
|
+
* when it REPLAYS the buffered decls (`acquire-node.ts`); the verbs simply
|
|
19
|
+
* buffer here. For a fixed, unconditional set of decls a plugin may prefer
|
|
20
|
+
* direct `ctx.*` calls — but any conditional or variadic emission should
|
|
21
|
+
* route through this helper so the routing lives in exactly one place.
|
|
22
|
+
*
|
|
23
|
+
* Exhaustive: the `default` arm narrows `decl` to `never`, so adding a
|
|
24
|
+
* sixth `Contribution` kind is a compile error here until handled.
|
|
25
|
+
*/
|
|
26
|
+
const emitContributions = (ctx, decls) => {
|
|
27
|
+
for (const decl of decls) switch (decl.kind) {
|
|
28
|
+
case "snapshotable":
|
|
29
|
+
ctx.snapshotExtra(decl);
|
|
30
|
+
break;
|
|
31
|
+
case "codegenable":
|
|
32
|
+
ctx.codegen(decl);
|
|
33
|
+
break;
|
|
34
|
+
case "routable":
|
|
35
|
+
ctx.endpoint(decl);
|
|
36
|
+
break;
|
|
37
|
+
case "projection":
|
|
38
|
+
ctx.publish(decl);
|
|
39
|
+
break;
|
|
40
|
+
case "strategy-contributor":
|
|
41
|
+
ctx.provides(decl);
|
|
42
|
+
break;
|
|
43
|
+
default:
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Effect service tag carrying the per-plugin {@link PluginCtx}.
|
|
48
|
+
*
|
|
49
|
+
* A plugin's `start` body reaches its ctx with `const ctx = yield*
|
|
50
|
+
* PluginContext`. The supervisor builds a fresh per-plugin ctx (+ its
|
|
51
|
+
* replay buffer) in `runtime/supervisor/acquire-node.ts` and PROVIDES it
|
|
52
|
+
* into `start`'s requirement channel
|
|
53
|
+
* (`Effect.provideService(start(deps), PluginContext, ctx)`), so the tag
|
|
54
|
+
* is always satisfied for code the supervisor runs.
|
|
55
|
+
*
|
|
56
|
+
* This ambient requirement lives only in `start`'s R-channel; it does NOT
|
|
57
|
+
* surface in the public `Plugin<Id, Value, Needs>` contract (`Needs` is
|
|
58
|
+
* `dependsOn` only — see `plugin.ts`). Declaring it as a service rather
|
|
59
|
+
* than a `start` argument is what keeps `start` single-arg, restoring
|
|
60
|
+
* automatic `deps` inference.
|
|
61
|
+
*/
|
|
62
|
+
var PluginContext = class extends Context.Service()("@devstack/substrate/PluginContext") {};
|
|
63
|
+
//#endregion
|
|
64
|
+
export { PluginContext, emitContributions };
|
|
65
|
+
|
|
66
|
+
//# sourceMappingURL=plugin-ctx.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-ctx.mjs","names":[],"sources":["../../src/substrate/plugin-ctx.ts"],"sourcesContent":["// PluginCtx — the minimal, closed, typed plugin-authoring surface.\n//\n// A plugin contributes to the stack through inline typed verbs it calls\n// from `start`. The plugin reaches this `ctx` by `yield* PluginContext` (an Effect\n// service tag, declared at the bottom of this file) — exactly like any\n// other substrate service it `yield*`s (`ContainerRuntimeService`,\n// `IdentityContext`, …). The supervisor PROVIDES a freshly-built\n// per-plugin ctx into `start`'s requirement (R) channel via\n// `Effect.provideService(start(deps), PluginContext, ctx)`. Delivering\n// ctx through the requirement channel — rather than as a 2nd positional\n// `start` argument — keeps `start` SINGLE-arg, which restores automatic\n// contextual typing of `deps` (no per-plugin `deps:` annotations), while\n// `ctx` stays always-present (the supervisor never omits it).\n//\n// -----------------------------------------------------------------------------\n// INV-5 — the closed 5-key set\n// -----------------------------------------------------------------------------\n//\n// `PluginCtx` has EXACTLY these 5 readonly keys and no more:\n//\n// codegen · endpoint · snapshotExtra · publish · provides\n//\n// This is a HARD invariant (pinned by `plugin-ctx-keyset.test-d.ts`).\n// Growing the set re-builds a god-object surface. The rule for what may\n// live here:\n//\n// - `codegen` / `endpoint` / `snapshotExtra` / `publish` are the four\n// BUFFERED declarative verbs. Their backing services\n// (CodegenOrchestratorService, RouterService +\n// ManifestEndpointRegistryService, SnapshotOrchestratorService, the\n// projection sink) are SUPERVISOR-FRAME-ONLY — they are absent from\n// plugin scope. A verb call therefore cannot run its backing\n// service inline; it pushes a typed buffer entry that the supervisor\n// REPLAYS in its own frame after the plugin's `start` succeeds.\n// - `provides` is the strategy bus writer (the faucet pattern\n// generalized): a plugin contributes to a sibling's\n// capability-keyed registry without a dep-graph edge. Siblings READ\n// it with `yield* StrategyRegistryService` directly (no ctx verb).\n//\n// What stays OUT of `ctx`, and WHY: every other substrate service a\n// plugin needs is already in plugin scope and is reached with\n// `yield* Service` directly — `CacheService` (whose `.publish` is the\n// folded-in artifact-publisher cycle),\n// `ContainerRuntimeService`, `IdentityContext`,\n// `PortBrokerService`, `LeaseBrokerService`, etc. The infra\n// orchestrators that are NOT in plugin scope\n// (Snapshot/Codegen/Router/ManifestEndpoint) are precisely the four\n// buffered verbs above — and infra contributions stay `yield*`-shaped\n// declarations, NEVER imperative `ctx.tx`-style Sui leaks. Adding a\n// service to `ctx` that a plugin could already `yield*` is the drift\n// INV-5 forbids.\n\nimport { Context } from 'effect';\n\nimport type { CodegenableDecl } from '../contracts/codegenable.ts';\nimport type { ProjectionDecl } from '../contracts/projection.ts';\nimport type { RoutableDecl } from '../contracts/routable.ts';\nimport type { SnapshotableDecl } from '../contracts/snapshotable.ts';\nimport type { StrategyContributorDecl } from '../contracts/strategy-contributor.ts';\n\n/**\n * The CLOSED union of contribution decls a plugin emits via the four\n * buffered verbs + `provides`. Discriminated by `kind`. A plugin's `start`\n * emits these inline — either by direct `ctx.*` verb calls or, for a\n * conditional/variadic set, through the shared {@link emitContributions}\n * router below. The supervisor's static dispatch switches over exactly\n * these five kinds.\n */\nexport type Contribution =\n\t| CodegenableDecl<string>\n\t| RoutableDecl\n\t| SnapshotableDecl\n\t| ProjectionDecl\n\t| StrategyContributorDecl<string, unknown>;\n\n/**\n * The ONE shared contribution router. A plugin's `start` builds an ordered\n * (possibly conditional/variadic) list of {@link Contribution} decls and\n * feeds it here; this routes each decl to its matching `ctx` verb by its\n * `kind` discriminant, IN LIST ORDER:\n *\n * snapshotable → `ctx.snapshotExtra`\n * codegenable → `ctx.codegen`\n * routable → `ctx.endpoint`\n * projection → `ctx.publish`\n * strategy-contributor → `ctx.provides`\n *\n * This is the single exhaustive `switch` over the closed `Contribution`\n * union — replacing the per-plugin `build*`/`emit*` wrapper pairs that each\n * re-implemented this same routing. The supervisor mirrors this dispatch\n * when it REPLAYS the buffered decls (`acquire-node.ts`); the verbs simply\n * buffer here. For a fixed, unconditional set of decls a plugin may prefer\n * direct `ctx.*` calls — but any conditional or variadic emission should\n * route through this helper so the routing lives in exactly one place.\n *\n * Exhaustive: the `default` arm narrows `decl` to `never`, so adding a\n * sixth `Contribution` kind is a compile error here until handled.\n */\nexport const emitContributions = (ctx: PluginCtx, decls: ReadonlyArray<Contribution>): void => {\n\tfor (const decl of decls) {\n\t\tswitch (decl.kind) {\n\t\t\tcase 'snapshotable':\n\t\t\t\tctx.snapshotExtra(decl);\n\t\t\t\tbreak;\n\t\t\tcase 'codegenable':\n\t\t\t\tctx.codegen(decl);\n\t\t\t\tbreak;\n\t\t\tcase 'routable':\n\t\t\t\tctx.endpoint(decl);\n\t\t\t\tbreak;\n\t\t\tcase 'projection':\n\t\t\t\tctx.publish(decl);\n\t\t\t\tbreak;\n\t\t\tcase 'strategy-contributor':\n\t\t\t\tctx.provides(decl);\n\t\t\t\tbreak;\n\t\t\tdefault: {\n\t\t\t\tconst _exhaustive: never = decl;\n\t\t\t\tvoid _exhaustive;\n\t\t\t}\n\t\t}\n\t}\n};\n\n/**\n * The minimal typed plugin-authoring context. A plugin reaches it from\n * `start` with `const ctx = yield* PluginContext` (the service tag\n * below); the supervisor provides a per-plugin instance into `start`'s\n * requirement channel.\n *\n * EXACTLY 5 keys (INV-5 — see file header). Do not add a 6th.\n */\nexport interface PluginCtx {\n\t/** Buffered: contribute the plugin's LIVE codegen decl to the codegen\n\t * orchestrator. Replayed in the supervisor frame after a successful\n\t * `start` (it carries post-acquire runtime state — resolved ids, rpc —\n\t * so it cannot be a static spec field; that is exactly why it is a\n\t * buffered verb). Since codegen was decoupled from boot this is the\n\t * LIVE half ONLY: at boot the orchestrator projects the decl into the\n\t * loadable id-config (`assembleIdConfig`) and, for dev-only decls,\n\t * writes the `generated-extras` tree (`emitExtras`) — it does NOT write\n\t * the committed `src/generated` tree. That committed, stack-free tree is\n\t * emitted separately by the `devstack codegen` verb from the plugin\n\t * spec's `staticCodegen` hook, derived from the SAME `ConfigBindingSet`.\n\t * Returns void (the orchestrator owns rendering). */\n\treadonly codegen: <E extends string>(decl: CodegenableDecl<E>) => void;\n\t/** Buffered: declare a routable endpoint for the router orchestrator.\n\t * Replayed in the supervisor frame after a successful `start`.\n\t * Returns VOID — no URL is echoed back to the plugin (the router\n\t * mints and publishes the endpoint event itself). */\n\treadonly endpoint: (decl: RoutableDecl) => void;\n\t/** Buffered: declare extra snapshot subtrees / managed containers /\n\t * identity-guard hooks for the snapshot orchestrator. Replayed in\n\t * the supervisor frame after a successful `start`. */\n\treadonly snapshotExtra: (decl: SnapshotableDecl) => void;\n\t/** Buffered: publish a name-blind projection event through the\n\t * projection sink. Replayed in the supervisor frame after a\n\t * successful `start`. */\n\treadonly publish: (decl: ProjectionDecl) => void;\n\t/** Strategy bus (write): contribute a strategy under a capability\n\t * key for a sibling to read via `StrategyRegistryService`. Registers\n\t * on the scope-local StrategyRegistry, publishes `strategy.registered`,\n\t * and arms a finalizer publishing `strategy.unregistered`. */\n\treadonly provides: <K extends string, S>(decl: StrategyContributorDecl<K, S>) => void;\n}\n\n/**\n * Effect service tag carrying the per-plugin {@link PluginCtx}.\n *\n * A plugin's `start` body reaches its ctx with `const ctx = yield*\n * PluginContext`. The supervisor builds a fresh per-plugin ctx (+ its\n * replay buffer) in `runtime/supervisor/acquire-node.ts` and PROVIDES it\n * into `start`'s requirement channel\n * (`Effect.provideService(start(deps), PluginContext, ctx)`), so the tag\n * is always satisfied for code the supervisor runs.\n *\n * This ambient requirement lives only in `start`'s R-channel; it does NOT\n * surface in the public `Plugin<Id, Value, Needs>` contract (`Needs` is\n * `dependsOn` only — see `plugin.ts`). Declaring it as a service rather\n * than a `start` argument is what keeps `start` single-arg, restoring\n * automatic `deps` inference.\n */\nexport class PluginContext extends Context.Service<PluginContext, PluginCtx>()(\n\t'@devstack/substrate/PluginContext',\n) {}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAkGA,MAAa,qBAAqB,KAAgB,UAA6C;CAC9F,KAAK,MAAM,QAAQ,OAClB,QAAQ,KAAK,MAAb;EACC,KAAK;GACJ,IAAI,cAAc,IAAI;GACtB;EACD,KAAK;GACJ,IAAI,QAAQ,IAAI;GAChB;EACD,KAAK;GACJ,IAAI,SAAS,IAAI;GACjB;EACD,KAAK;GACJ,IAAI,QAAQ,IAAI;GAChB;EACD,KAAK;GACJ,IAAI,SAAS,IAAI;GACjB;EACD;CAID;AAEF;;;;;;;;;;;;;;;;;AA4DA,IAAa,gBAAb,cAAmC,QAAQ,QAAkC,CAAC,CAC7E,mCACD,CAAC,CAAC,CAAC"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PluginKey } from "./brand.mjs";
|
|
2
2
|
import { PluginRole } from "./lifecycle.mjs";
|
|
3
3
|
import { RowSection } from "./projection.mjs";
|
|
4
|
-
import {
|
|
5
|
-
import { Identity } from "./identity.mjs";
|
|
4
|
+
import { StaticCodegenSource } from "../contracts/codegenable.mjs";
|
|
6
5
|
import { Effect } from "effect";
|
|
7
6
|
|
|
8
7
|
//#region src/substrate/plugin.d.ts
|
|
@@ -25,38 +24,28 @@ type DependencyList<Input> = Input extends readonly AnyResourceRef[] ? Input : I
|
|
|
25
24
|
type ResolvedDependencyList<Dependencies extends readonly AnyResourceRef[]> = readonly [...{ readonly [K in keyof Dependencies]: Dependencies[K] extends AnyResourceRef ? ResourceValueOf<Dependencies[K]> : never }];
|
|
26
25
|
type ResolvedDependencyObject<Dependencies extends Readonly<Record<string, AnyResourceRef>>> = { readonly [K in keyof Dependencies]: Dependencies[K] extends AnyResourceRef ? ResourceValueOf<Dependencies[K]> : never };
|
|
27
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;
|
|
28
|
-
type AnyPluginStart = (
|
|
27
|
+
type AnyPluginStart = (deps: never) => Effect.Effect<unknown, unknown, unknown>;
|
|
29
28
|
type PluginStart<Deps> = [Deps] extends [undefined] ? () => Effect.Effect<unknown, unknown, unknown> : (deps: Deps) => Effect.Effect<unknown, unknown, unknown>;
|
|
30
|
-
type StartValue<Start> = Start extends ((
|
|
31
|
-
interface PluginErrorContribution {
|
|
32
|
-
readonly _tag: 'PluginErrorContribution';
|
|
33
|
-
readonly errorTags: ReadonlyArray<string>;
|
|
34
|
-
readonly formatter?: (value: {
|
|
35
|
-
readonly _tag: string;
|
|
36
|
-
} & Readonly<Record<string, unknown>>, recurse: (inner: unknown) => string) => string | null;
|
|
37
|
-
}
|
|
29
|
+
type StartValue<Start> = Start extends ((deps: any) => Effect.Effect<infer Value, unknown, unknown>) ? Value : never;
|
|
38
30
|
interface WatchDecl {
|
|
39
31
|
readonly paths: ReadonlyArray<string>;
|
|
40
32
|
readonly cascade?: boolean;
|
|
41
33
|
}
|
|
42
|
-
interface
|
|
43
|
-
readonly
|
|
44
|
-
readonly
|
|
45
|
-
|
|
34
|
+
interface StaticNodeInputContribution {
|
|
35
|
+
readonly kind: 'static';
|
|
36
|
+
readonly value: unknown;
|
|
37
|
+
}
|
|
38
|
+
interface ComputedNodeInputContribution {
|
|
39
|
+
readonly kind: 'computed';
|
|
40
|
+
readonly compute: () => Effect.Effect<unknown, unknown, never>;
|
|
46
41
|
}
|
|
47
|
-
type
|
|
48
|
-
|
|
49
|
-
readonly value: Value;
|
|
50
|
-
readonly runtime: AcquireContext;
|
|
51
|
-
}) => Caps);
|
|
52
|
-
interface PluginSpecBase<Id extends string, Start extends AnyPluginStart, Caps extends ReadonlyArray<CapabilityDecl>> {
|
|
42
|
+
type NodeInputContribution = StaticNodeInputContribution | ComputedNodeInputContribution;
|
|
43
|
+
interface PluginSpecBase<Id extends string, Start extends AnyPluginStart> {
|
|
53
44
|
readonly id: Id;
|
|
54
45
|
readonly role: PluginRole;
|
|
55
46
|
readonly pluginKey?: PluginKey | string;
|
|
56
47
|
readonly watch?: WatchDecl;
|
|
57
48
|
readonly start: Start;
|
|
58
|
-
readonly capabilities?: CapabilitySource<StartValue<Start>, Caps>;
|
|
59
|
-
readonly errorContributions?: ReadonlyArray<PluginErrorContribution>;
|
|
60
49
|
/** Dashboard section bucket the plugin's rows belong to. Required so
|
|
61
50
|
* the renderer never has to pattern-match on plugin name substrings
|
|
62
51
|
* to compute it. The supervisor stamps this onto every row at
|
|
@@ -67,11 +56,29 @@ interface PluginSpecBase<Id extends string, Start extends AnyPluginStart, Caps e
|
|
|
67
56
|
* `endpointSection` instead of `section`. Use sparingly — the
|
|
68
57
|
* default is for the plugin's normal `section` to apply uniformly. */
|
|
69
58
|
readonly endpointSection?: RowSection;
|
|
59
|
+
/** When `true`, a live snapshot-restore re-acquire leaves this plugin
|
|
60
|
+
* running instead of draining it. Reserved for operator-transport
|
|
61
|
+
* plugins that carry no restorable chain state and would tear down the
|
|
62
|
+
* very connection a restore is answering on if drained. Substrate's
|
|
63
|
+
* restore planner filters on this flag with NO knowledge of which
|
|
64
|
+
* plugins set it. Full restart (`stack.restart` / CLI) drains
|
|
65
|
+
* everything regardless. */
|
|
66
|
+
readonly keepAliveOnRestore?: true;
|
|
67
|
+
/** Desired-state inputs folded into this node's substrate input id.
|
|
68
|
+
* Dependencies' node input ids are included automatically; this field is
|
|
69
|
+
* for inputs owned by the node itself, including file hashes. */
|
|
70
|
+
readonly inputIdentity?: NodeInputContribution;
|
|
71
|
+
/** Stack-free codegen-decl source. When present, the `codegen` verb can
|
|
72
|
+
* emit this plugin's committed-projection contributions from config
|
|
73
|
+
* alone (no live acquire), drawing on-chain ids from the supplied
|
|
74
|
+
* resolver. Plugins whose contributions need live resolution — or which
|
|
75
|
+
* only land in the gitignored dev tree — omit it. */
|
|
76
|
+
readonly staticCodegen?: StaticCodegenSource;
|
|
70
77
|
}
|
|
71
|
-
type PluginSpec<Id extends string, DependsOn extends DependencyInput | undefined, Start extends AnyPluginStart
|
|
78
|
+
type PluginSpec<Id extends string, DependsOn extends DependencyInput | undefined, Start extends AnyPluginStart> = PluginSpecBase<Id, Start> & {
|
|
72
79
|
readonly dependsOn?: DependsOn;
|
|
73
80
|
};
|
|
74
|
-
interface Plugin<Id extends string, Value, Needs extends readonly AnyResourceRef[]
|
|
81
|
+
interface Plugin<Id extends string, Value, Needs extends readonly AnyResourceRef[]> extends ResourceRef<Id, Value> {
|
|
75
82
|
readonly [pluginBrand]: true;
|
|
76
83
|
readonly [dependencyInputBrand]: DependencyInput | undefined;
|
|
77
84
|
readonly dependsOn: Needs;
|
|
@@ -79,24 +86,25 @@ interface Plugin<Id extends string, Value, Needs extends readonly AnyResourceRef
|
|
|
79
86
|
readonly pluginKey?: PluginKey | string;
|
|
80
87
|
readonly watch?: WatchDecl;
|
|
81
88
|
readonly start: (deps: ResolvedDependencies<DependencyInput | undefined>) => Effect.Effect<Value, unknown, unknown>;
|
|
82
|
-
readonly capabilities?: Caps | CapabilitiesFactory<Caps, Value>;
|
|
83
|
-
readonly errorContributions?: ReadonlyArray<PluginErrorContribution>;
|
|
84
89
|
readonly section: RowSection;
|
|
85
90
|
readonly endpointSection?: RowSection;
|
|
91
|
+
readonly keepAliveOnRestore?: true;
|
|
92
|
+
readonly inputIdentity?: NodeInputContribution;
|
|
93
|
+
readonly staticCodegen?: StaticCodegenSource;
|
|
86
94
|
}
|
|
87
|
-
type AnyPlugin = Plugin<string, any, readonly AnyResourceRef[]
|
|
88
|
-
declare function definePlugin<const Id extends string, const DependsOn extends readonly AnyResourceRef[], const Start extends
|
|
95
|
+
type AnyPlugin = Plugin<string, any, readonly AnyResourceRef[]>;
|
|
96
|
+
declare function definePlugin<const Id extends string, const DependsOn extends readonly AnyResourceRef[], const Start extends AnyPluginStart = PluginStart<ResolvedDependencyList<DependsOn>>>(spec: PluginSpecBase<Id, Start> & {
|
|
89
97
|
readonly dependsOn: DependsOn;
|
|
90
|
-
}): Plugin<Id, StartValue<Start>, DependsOn
|
|
91
|
-
declare function definePlugin<const Id extends string, const DependsOn extends Readonly<Record<string, AnyResourceRef>>, const Start extends
|
|
98
|
+
}): Plugin<Id, StartValue<Start>, DependsOn>;
|
|
99
|
+
declare function definePlugin<const Id extends string, const DependsOn extends Readonly<Record<string, AnyResourceRef>>, const Start extends AnyPluginStart = PluginStart<ResolvedDependencyObject<DependsOn>>>(spec: PluginSpecBase<Id, Start> & {
|
|
92
100
|
readonly dependsOn: DependsOn;
|
|
93
|
-
}): Plugin<Id, StartValue<Start>, DependencyList<DependsOn
|
|
94
|
-
declare function definePlugin<const Id extends string, const DependsOn extends AnyResourceRef, const Start extends
|
|
101
|
+
}): Plugin<Id, StartValue<Start>, DependencyList<DependsOn>>;
|
|
102
|
+
declare function definePlugin<const Id extends string, const DependsOn extends AnyResourceRef, const Start extends AnyPluginStart = PluginStart<ResourceValueOf<DependsOn>>>(spec: PluginSpecBase<Id, Start> & {
|
|
95
103
|
readonly dependsOn: DependsOn;
|
|
96
|
-
}): Plugin<Id, StartValue<Start>, readonly [DependsOn]
|
|
97
|
-
declare function definePlugin<const Id extends string, const Start extends
|
|
104
|
+
}): Plugin<Id, StartValue<Start>, readonly [DependsOn]>;
|
|
105
|
+
declare function definePlugin<const Id extends string, const Start extends AnyPluginStart = PluginStart<undefined>>(spec: PluginSpecBase<Id, Start> & {
|
|
98
106
|
readonly dependsOn?: undefined;
|
|
99
|
-
}): Plugin<Id, StartValue<Start>, readonly []
|
|
107
|
+
}): Plugin<Id, StartValue<Start>, readonly []>;
|
|
100
108
|
type ProvidedIdsOf<Members> = Members extends ReadonlyArray<unknown> ? Members[number] extends {
|
|
101
109
|
readonly id: infer Id extends string;
|
|
102
110
|
} ? Id : never : never;
|
|
@@ -110,5 +118,5 @@ interface __MissingProvidersError<Missing extends string> {
|
|
|
110
118
|
readonly __missing_providers: Missing;
|
|
111
119
|
}
|
|
112
120
|
//#endregion
|
|
113
|
-
export { AnyPlugin, AnyResourceRef,
|
|
121
|
+
export { AnyPlugin, AnyResourceRef, DependencyInput, DependencyList, MissingProviders, NodeInputContribution, Plugin, PluginSpec, ResolvedDependencies, ResolvedDependencyList, ResolvedDependencyObject, ResourceIdOf, ResourceRef, ResourceValueOf, WatchDecl, __MissingProvidersError, defineId, definePlugin, resource };
|
|
114
122
|
//# sourceMappingURL=plugin.d.mts.map
|
|
@@ -8,6 +8,14 @@ const resource = (id) => ({
|
|
|
8
8
|
[resourceBrand]: true
|
|
9
9
|
});
|
|
10
10
|
const isResourceRef = (value) => typeof value === "object" && value !== null && value[resourceBrand] === true;
|
|
11
|
+
const staticInputIdentity = (value) => ({
|
|
12
|
+
kind: "static",
|
|
13
|
+
value
|
|
14
|
+
});
|
|
15
|
+
const computedInputIdentity = (compute) => ({
|
|
16
|
+
kind: "computed",
|
|
17
|
+
compute
|
|
18
|
+
});
|
|
11
19
|
const isPlugin = (value) => typeof value === "object" && value !== null && value[pluginBrand] === true;
|
|
12
20
|
const dependencyList = (dependsOn) => {
|
|
13
21
|
if (dependsOn === void 0) return [];
|
|
@@ -36,11 +44,6 @@ const resolvePluginDependencies = (plugin, read) => resolveDependencyValues(plug
|
|
|
36
44
|
const pluginDependencyRefs = (plugin) => dependencyList(plugin[dependencyInputBrand]);
|
|
37
45
|
function definePlugin(spec) {
|
|
38
46
|
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
47
|
return {
|
|
45
48
|
[resourceBrand]: true,
|
|
46
49
|
[pluginBrand]: true,
|
|
@@ -52,12 +55,13 @@ function definePlugin(spec) {
|
|
|
52
55
|
start: spec.start,
|
|
53
56
|
...spec.pluginKey === void 0 ? {} : { pluginKey: spec.pluginKey },
|
|
54
57
|
...spec.watch === void 0 ? {} : { watch: spec.watch },
|
|
55
|
-
...
|
|
56
|
-
...spec.
|
|
57
|
-
...spec.
|
|
58
|
+
...spec.endpointSection === void 0 ? {} : { endpointSection: spec.endpointSection },
|
|
59
|
+
...spec.keepAliveOnRestore === void 0 ? {} : { keepAliveOnRestore: spec.keepAliveOnRestore },
|
|
60
|
+
...spec.inputIdentity === void 0 ? {} : { inputIdentity: spec.inputIdentity },
|
|
61
|
+
...spec.staticCodegen === void 0 ? {} : { staticCodegen: spec.staticCodegen }
|
|
58
62
|
};
|
|
59
63
|
}
|
|
60
64
|
//#endregion
|
|
61
|
-
export { defineId, definePlugin, dependencyList, isPlugin, isResourceRef, pluginDependencyRefs, resolveDependencyValues, resolvePluginDependencies, resource, uniqueResourceRefs };
|
|
65
|
+
export { computedInputIdentity, defineId, definePlugin, dependencyList, isPlugin, isResourceRef, pluginDependencyRefs, resolveDependencyValues, resolvePluginDependencies, resource, staticInputIdentity, uniqueResourceRefs };
|
|
62
66
|
|
|
63
67
|
//# sourceMappingURL=plugin.mjs.map
|