everything-dev 1.53.2 → 2.0.0-rc.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 +2 -11
- package/dist/_virtual/_rolldown/runtime.cjs +17 -2
- package/dist/_virtual/_rolldown/runtime.mjs +36 -0
- package/dist/api/auth-middleware.cjs +161 -0
- package/dist/api/auth-middleware.cjs.map +1 -0
- package/dist/api/auth-middleware.d.cts +69 -0
- package/dist/api/auth-middleware.d.mts +69 -0
- package/dist/api/auth-middleware.mjs +160 -0
- package/dist/api/auth-middleware.mjs.map +1 -0
- package/dist/api-contract.cjs +250 -62
- package/dist/api-contract.cjs.map +1 -1
- package/dist/api-contract.mjs +246 -65
- package/dist/api-contract.mjs.map +1 -1
- package/dist/app.cjs +99 -26
- package/dist/app.cjs.map +1 -1
- package/dist/app.d.cts +3 -0
- package/dist/app.d.mts +3 -0
- package/dist/app.mjs +100 -27
- package/dist/app.mjs.map +1 -1
- package/dist/auth-login.cjs +163 -0
- package/dist/auth-login.cjs.map +1 -0
- package/dist/auth-login.mjs +162 -0
- package/dist/auth-login.mjs.map +1 -0
- package/dist/auth-session.cjs +64 -0
- package/dist/auth-session.cjs.map +1 -0
- package/dist/auth-session.mjs +58 -0
- package/dist/auth-session.mjs.map +1 -0
- package/dist/auth-types-gen.cjs +0 -1
- package/dist/auth-types-gen.cjs.map +1 -1
- package/dist/build.cjs +37 -173
- package/dist/build.cjs.map +1 -1
- package/dist/build.mjs +37 -171
- package/dist/build.mjs.map +1 -1
- package/dist/bundle-cache.cjs +74 -0
- package/dist/bundle-cache.cjs.map +1 -0
- package/dist/bundle-cache.d.cts +27 -0
- package/dist/bundle-cache.d.mts +27 -0
- package/dist/bundle-cache.mjs +68 -0
- package/dist/bundle-cache.mjs.map +1 -0
- package/dist/bundle-fs-resolve.cjs +209 -0
- package/dist/bundle-fs-resolve.cjs.map +1 -0
- package/dist/bundle-fs-resolve.d.cts +76 -0
- package/dist/bundle-fs-resolve.d.mts +76 -0
- package/dist/bundle-fs-resolve.mjs +202 -0
- package/dist/bundle-fs-resolve.mjs.map +1 -0
- package/dist/cdn-deploy.cjs +126 -0
- package/dist/cdn-deploy.cjs.map +1 -0
- package/dist/cdn-deploy.mjs +124 -0
- package/dist/cdn-deploy.mjs.map +1 -0
- package/dist/cli/db-doctor.cjs +19 -19
- package/dist/cli/db-doctor.cjs.map +1 -1
- package/dist/cli/db-doctor.mjs +18 -18
- package/dist/cli/db-doctor.mjs.map +1 -1
- package/dist/cli/db-repair.cjs +9 -32
- package/dist/cli/db-repair.cjs.map +1 -1
- package/dist/cli/db-repair.mjs +9 -32
- package/dist/cli/db-repair.mjs.map +1 -1
- package/dist/cli/framework-version.cjs +7 -3
- package/dist/cli/framework-version.cjs.map +1 -1
- package/dist/cli/framework-version.mjs +7 -3
- package/dist/cli/framework-version.mjs.map +1 -1
- package/dist/cli/infra.cjs +159 -251
- package/dist/cli/infra.cjs.map +1 -1
- package/dist/cli/infra.mjs +154 -242
- package/dist/cli/infra.mjs.map +1 -1
- package/dist/cli/init.cjs +624 -196
- package/dist/cli/init.cjs.map +1 -1
- package/dist/cli/init.d.cts +61 -8
- package/dist/cli/init.d.mts +61 -8
- package/dist/cli/init.mjs +613 -194
- package/dist/cli/init.mjs.map +1 -1
- package/dist/cli/parse.cjs +8 -7
- package/dist/cli/parse.cjs.map +1 -1
- package/dist/cli/parse.mjs +9 -7
- package/dist/cli/parse.mjs.map +1 -1
- package/dist/cli/prompts.cjs +14 -1
- package/dist/cli/prompts.cjs.map +1 -1
- package/dist/cli/prompts.mjs +14 -1
- package/dist/cli/prompts.mjs.map +1 -1
- package/dist/cli/prune.cjs +220 -0
- package/dist/cli/prune.cjs.map +1 -0
- package/dist/cli/prune.mjs +220 -0
- package/dist/cli/prune.mjs.map +1 -0
- package/dist/cli/snapshot.cjs +2 -1
- package/dist/cli/snapshot.cjs.map +1 -1
- package/dist/cli/snapshot.mjs +2 -1
- package/dist/cli/snapshot.mjs.map +1 -1
- package/dist/cli/status.cjs +5 -4
- package/dist/cli/status.cjs.map +1 -1
- package/dist/cli/status.mjs +6 -5
- package/dist/cli/status.mjs.map +1 -1
- package/dist/cli/sync.cjs +156 -58
- package/dist/cli/sync.cjs.map +1 -1
- package/dist/cli/sync.mjs +158 -63
- package/dist/cli/sync.mjs.map +1 -1
- package/dist/cli/timing.cjs +0 -1
- package/dist/cli/timing.cjs.map +1 -1
- package/dist/cli/upgrade.cjs +95 -69
- package/dist/cli/upgrade.cjs.map +1 -1
- package/dist/cli/upgrade.mjs +97 -72
- package/dist/cli/upgrade.mjs.map +1 -1
- package/dist/cli/utils/helpers.cjs.map +1 -1
- package/dist/cli.cjs +320 -72
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.mjs +316 -68
- package/dist/cli.mjs.map +1 -1
- package/dist/code-artifacts.cjs +76 -8
- package/dist/code-artifacts.cjs.map +1 -1
- package/dist/code-artifacts.mjs +76 -10
- package/dist/code-artifacts.mjs.map +1 -1
- package/dist/commands/build.cjs +65 -0
- package/dist/commands/build.cjs.map +1 -0
- package/dist/commands/build.mjs +65 -0
- package/dist/commands/build.mjs.map +1 -0
- package/dist/commands/config.cjs +77 -0
- package/dist/commands/config.cjs.map +1 -0
- package/dist/commands/config.d.cts +8 -0
- package/dist/commands/config.d.mts +8 -0
- package/dist/commands/config.mjs +74 -0
- package/dist/commands/config.mjs.map +1 -0
- package/dist/commands/db.cjs +107 -0
- package/dist/commands/db.cjs.map +1 -0
- package/dist/commands/db.mjs +107 -0
- package/dist/commands/db.mjs.map +1 -0
- package/dist/commands/deploy.cjs +336 -0
- package/dist/commands/deploy.cjs.map +1 -0
- package/dist/commands/deploy.mjs +334 -0
- package/dist/commands/deploy.mjs.map +1 -0
- package/dist/commands/dev.cjs +75 -0
- package/dist/commands/dev.cjs.map +1 -0
- package/dist/commands/dev.mjs +73 -0
- package/dist/commands/dev.mjs.map +1 -0
- package/dist/commands/init.cjs +234 -0
- package/dist/commands/init.cjs.map +1 -0
- package/dist/commands/init.mjs +231 -0
- package/dist/commands/init.mjs.map +1 -0
- package/dist/commands/keys.cjs +255 -0
- package/dist/commands/keys.cjs.map +1 -0
- package/dist/commands/keys.mjs +253 -0
- package/dist/commands/keys.mjs.map +1 -0
- package/dist/commands/ops.cjs +199 -0
- package/dist/commands/ops.cjs.map +1 -0
- package/dist/commands/ops.mjs +197 -0
- package/dist/commands/ops.mjs.map +1 -0
- package/dist/commands/plugins.cjs +211 -0
- package/dist/commands/plugins.cjs.map +1 -0
- package/dist/commands/plugins.mjs +211 -0
- package/dist/commands/plugins.mjs.map +1 -0
- package/dist/commands/shared.cjs +8 -0
- package/dist/commands/shared.cjs.map +1 -0
- package/dist/commands/shared.d.cts +6 -0
- package/dist/commands/shared.d.mts +6 -0
- package/dist/commands/shared.mjs +8 -0
- package/dist/commands/shared.mjs.map +1 -0
- package/dist/commands/upgrade.cjs +325 -0
- package/dist/commands/upgrade.cjs.map +1 -0
- package/dist/commands/upgrade.mjs +323 -0
- package/dist/commands/upgrade.mjs.map +1 -0
- package/dist/components/dev-render.cjs +340 -0
- package/dist/components/dev-render.cjs.map +1 -0
- package/dist/components/dev-render.mjs +332 -0
- package/dist/components/dev-render.mjs.map +1 -0
- package/dist/config.cjs +460 -221
- package/dist/config.cjs.map +1 -1
- package/dist/config.d.cts +491 -48
- package/dist/config.d.mts +491 -48
- package/dist/config.mjs +439 -212
- package/dist/config.mjs.map +1 -1
- package/dist/contract.cjs +327 -50
- package/dist/contract.cjs.map +1 -1
- package/dist/contract.d.cts +1951 -1062
- package/dist/contract.d.mts +1951 -1062
- package/dist/contract.meta.cjs +107 -12
- package/dist/contract.meta.cjs.map +1 -1
- package/dist/contract.meta.d.cts +166 -8
- package/dist/contract.meta.d.mts +166 -8
- package/dist/contract.meta.mjs +107 -11
- package/dist/contract.meta.mjs.map +1 -1
- package/dist/contract.mjs +580 -327
- package/dist/contract.mjs.map +1 -1
- package/dist/dag.cjs +5 -3
- package/dist/dag.cjs.map +1 -1
- package/dist/dag.mjs +6 -3
- package/dist/dag.mjs.map +1 -1
- package/dist/db/binding.cjs +80 -0
- package/dist/db/binding.cjs.map +1 -0
- package/dist/db/binding.d.cts +39 -0
- package/dist/db/binding.d.mts +39 -0
- package/dist/db/binding.mjs +78 -0
- package/dist/db/binding.mjs.map +1 -0
- package/dist/db/bindings.cjs +78 -0
- package/dist/db/bindings.cjs.map +1 -0
- package/dist/db/bindings.d.cts +34 -0
- package/dist/db/bindings.d.mts +34 -0
- package/dist/db/bindings.mjs +76 -0
- package/dist/db/bindings.mjs.map +1 -0
- package/dist/db/core.cjs +204 -0
- package/dist/db/core.cjs.map +1 -0
- package/dist/db/core.d.cts +69 -0
- package/dist/db/core.d.mts +69 -0
- package/dist/db/core.mjs +192 -0
- package/dist/db/core.mjs.map +1 -0
- package/dist/db/driver.cjs +167 -0
- package/dist/db/driver.cjs.map +1 -0
- package/dist/db/driver.d.cts +50 -0
- package/dist/db/driver.d.mts +50 -0
- package/dist/db/driver.mjs +165 -0
- package/dist/db/driver.mjs.map +1 -0
- package/dist/db/drizzle-kit.cjs +177 -0
- package/dist/db/drizzle-kit.cjs.map +1 -0
- package/dist/db/drizzle-kit.d.cts +25 -0
- package/dist/db/drizzle-kit.d.mts +25 -0
- package/dist/db/drizzle-kit.mjs +175 -0
- package/dist/db/drizzle-kit.mjs.map +1 -0
- package/dist/db/errors.cjs +27 -0
- package/dist/db/errors.cjs.map +1 -0
- package/dist/db/errors.d.cts +16 -0
- package/dist/db/errors.d.mts +16 -0
- package/dist/db/errors.mjs +26 -0
- package/dist/db/errors.mjs.map +1 -0
- package/dist/db/identity.cjs +55 -0
- package/dist/db/identity.cjs.map +1 -0
- package/dist/db/identity.d.cts +40 -0
- package/dist/db/identity.d.mts +40 -0
- package/dist/db/identity.mjs +53 -0
- package/dist/db/identity.mjs.map +1 -0
- package/dist/db/index.cjs +43 -0
- package/dist/db/index.d.cts +9 -0
- package/dist/db/index.d.mts +9 -0
- package/dist/db/index.mjs +10 -0
- package/dist/db/run-migrations.cjs +343 -0
- package/dist/db/run-migrations.cjs.map +1 -0
- package/dist/db/run-migrations.d.cts +87 -0
- package/dist/db/run-migrations.d.mts +87 -0
- package/dist/db/run-migrations.mjs +341 -0
- package/dist/db/run-migrations.mjs.map +1 -0
- package/dist/delegate-signer.cjs +85 -0
- package/dist/delegate-signer.cjs.map +1 -0
- package/dist/delegate-signer.mjs +84 -0
- package/dist/delegate-signer.mjs.map +1 -0
- package/dist/deploy-diff.cjs +119 -0
- package/dist/deploy-diff.cjs.map +1 -0
- package/dist/deploy-diff.mjs +109 -0
- package/dist/deploy-diff.mjs.map +1 -0
- package/dist/descriptor/constructors.cjs +49 -0
- package/dist/descriptor/constructors.cjs.map +1 -0
- package/dist/descriptor/constructors.d.cts +27 -0
- package/dist/descriptor/constructors.d.mts +27 -0
- package/dist/descriptor/constructors.mjs +45 -0
- package/dist/descriptor/constructors.mjs.map +1 -0
- package/dist/descriptor/index.cjs +24 -0
- package/dist/descriptor/index.d.cts +5 -0
- package/dist/descriptor/index.d.mts +5 -0
- package/dist/descriptor/index.mjs +6 -0
- package/dist/descriptor/resolve.cjs +258 -0
- package/dist/descriptor/resolve.cjs.map +1 -0
- package/dist/descriptor/resolve.d.cts +50 -0
- package/dist/descriptor/resolve.d.mts +50 -0
- package/dist/descriptor/resolve.mjs +252 -0
- package/dist/descriptor/resolve.mjs.map +1 -0
- package/dist/descriptor/schema.cjs +109 -0
- package/dist/descriptor/schema.cjs.map +1 -0
- package/dist/descriptor/schema.d.cts +217 -0
- package/dist/descriptor/schema.d.mts +217 -0
- package/dist/descriptor/schema.mjs +102 -0
- package/dist/descriptor/schema.mjs.map +1 -0
- package/dist/descriptor/serialize.cjs +45 -0
- package/dist/descriptor/serialize.cjs.map +1 -0
- package/dist/descriptor/serialize.d.cts +7 -0
- package/dist/descriptor/serialize.d.mts +7 -0
- package/dist/descriptor/serialize.mjs +45 -0
- package/dist/descriptor/serialize.mjs.map +1 -0
- package/dist/dev-log-pipeline.cjs +273 -0
- package/dist/dev-log-pipeline.cjs.map +1 -0
- package/dist/dev-log-pipeline.mjs +267 -0
- package/dist/dev-log-pipeline.mjs.map +1 -0
- package/dist/dev-logs.cjs +39 -8
- package/dist/dev-logs.cjs.map +1 -1
- package/dist/dev-logs.mjs +37 -9
- package/dist/dev-logs.mjs.map +1 -1
- package/dist/dev-program.cjs +405 -0
- package/dist/dev-program.cjs.map +1 -0
- package/dist/dev-program.d.cts +10 -0
- package/dist/dev-program.d.mts +10 -0
- package/dist/dev-program.mjs +395 -0
- package/dist/dev-program.mjs.map +1 -0
- package/dist/dev-session-data.d.cts +27 -0
- package/dist/dev-session-data.d.mts +27 -0
- package/dist/dev-session.cjs +178 -105
- package/dist/dev-session.cjs.map +1 -1
- package/dist/dev-session.mjs +180 -105
- package/dist/dev-session.mjs.map +1 -1
- package/dist/env/process-env.cjs +16 -0
- package/dist/env/process-env.cjs.map +1 -0
- package/dist/env/process-env.mjs +13 -0
- package/dist/env/process-env.mjs.map +1 -0
- package/dist/env/project-env.cjs +144 -0
- package/dist/env/project-env.cjs.map +1 -0
- package/dist/env/project-env.d.cts +1 -0
- package/dist/env/project-env.d.mts +1 -0
- package/dist/env/project-env.mjs +132 -0
- package/dist/env/project-env.mjs.map +1 -0
- package/dist/fastkv.cjs +59 -12
- package/dist/fastkv.cjs.map +1 -1
- package/dist/fastkv.d.cts +42 -6
- package/dist/fastkv.d.mts +42 -6
- package/dist/fastkv.mjs +58 -13
- package/dist/fastkv.mjs.map +1 -1
- package/dist/fingerprint.cjs +57 -0
- package/dist/fingerprint.cjs.map +1 -0
- package/dist/fingerprint.d.cts +14 -0
- package/dist/fingerprint.d.mts +14 -0
- package/dist/fingerprint.mjs +55 -0
- package/dist/fingerprint.mjs.map +1 -0
- package/dist/http-client.cjs +17 -17
- package/dist/http-client.cjs.map +1 -1
- package/dist/http-client.mjs +17 -17
- package/dist/http-client.mjs.map +1 -1
- package/dist/image-deploy.cjs +186 -0
- package/dist/image-deploy.cjs.map +1 -0
- package/dist/image-deploy.mjs +182 -0
- package/dist/image-deploy.mjs.map +1 -0
- package/dist/index.cjs +66 -18
- package/dist/index.d.cts +8 -7
- package/dist/index.d.mts +8 -7
- package/dist/index.mjs +6 -5
- package/dist/infra/docker.cjs +77 -0
- package/dist/infra/docker.cjs.map +1 -0
- package/dist/infra/docker.d.cts +10 -0
- package/dist/infra/docker.d.mts +10 -0
- package/dist/infra/docker.mjs +69 -0
- package/dist/infra/docker.mjs.map +1 -0
- package/dist/infra/materializer.cjs +74 -0
- package/dist/infra/materializer.cjs.map +1 -0
- package/dist/infra/materializer.mjs +70 -0
- package/dist/infra/materializer.mjs.map +1 -0
- package/dist/infra/planner.cjs +135 -103
- package/dist/infra/planner.cjs.map +1 -1
- package/dist/infra/planner.mjs +137 -104
- package/dist/infra/planner.mjs.map +1 -1
- package/dist/infra/port-ownership.cjs +57 -0
- package/dist/infra/port-ownership.cjs.map +1 -0
- package/dist/infra/port-ownership.mjs +57 -0
- package/dist/infra/port-ownership.mjs.map +1 -0
- package/dist/infra/preflight.cjs +45 -33
- package/dist/infra/preflight.cjs.map +1 -1
- package/dist/infra/preflight.d.cts +1 -0
- package/dist/infra/preflight.d.mts +1 -0
- package/dist/infra/preflight.mjs +46 -34
- package/dist/infra/preflight.mjs.map +1 -1
- package/dist/infra/types.cjs.map +1 -1
- package/dist/infra/types.d.cts +2 -0
- package/dist/infra/types.d.mts +2 -0
- package/dist/infra/types.mjs.map +1 -1
- package/dist/integrity.cjs +50 -61
- package/dist/integrity.cjs.map +1 -1
- package/dist/integrity.d.cts +16 -10
- package/dist/integrity.d.mts +16 -10
- package/dist/integrity.mjs +50 -59
- package/dist/integrity.mjs.map +1 -1
- package/dist/internal/manifest-normalizer.cjs +8 -2
- package/dist/internal/manifest-normalizer.cjs.map +1 -1
- package/dist/internal/manifest-normalizer.mjs +9 -3
- package/dist/internal/manifest-normalizer.mjs.map +1 -1
- package/dist/merge.cjs +19 -1
- package/dist/merge.cjs.map +1 -1
- package/dist/merge.d.cts +1 -1
- package/dist/merge.d.mts +1 -1
- package/dist/merge.mjs +19 -2
- package/dist/merge.mjs.map +1 -1
- package/dist/mf.cjs +190 -3
- package/dist/mf.cjs.map +1 -1
- package/dist/mf.d.cts +24 -2
- package/dist/mf.d.mts +24 -2
- package/dist/mf.mjs +189 -4
- package/dist/mf.mjs.map +1 -1
- package/dist/near-cli.cjs +59 -91
- package/dist/near-cli.cjs.map +1 -1
- package/dist/near-cli.mjs +58 -90
- package/dist/near-cli.mjs.map +1 -1
- package/dist/near-signer.cjs +73 -0
- package/dist/near-signer.cjs.map +1 -0
- package/dist/near-signer.mjs +70 -0
- package/dist/near-signer.mjs.map +1 -0
- package/dist/network.cjs +0 -1
- package/dist/network.cjs.map +1 -1
- package/dist/orchestrator.cjs +256 -87
- package/dist/orchestrator.cjs.map +1 -1
- package/dist/orchestrator.mjs +248 -87
- package/dist/orchestrator.mjs.map +1 -1
- package/dist/platform-deploy.cjs +81 -0
- package/dist/platform-deploy.cjs.map +1 -0
- package/dist/platform-deploy.mjs +80 -0
- package/dist/platform-deploy.mjs.map +1 -0
- package/dist/plugin.cjs +54 -1389
- package/dist/plugin.cjs.map +1 -1
- package/dist/plugin.d.cts +6 -896
- package/dist/plugin.d.mts +6 -896
- package/dist/plugin.mjs +53 -1387
- package/dist/plugin.mjs.map +1 -1
- package/dist/process-kill.cjs +44 -0
- package/dist/process-kill.cjs.map +1 -0
- package/dist/process-kill.mjs +43 -0
- package/dist/process-kill.mjs.map +1 -0
- package/dist/process-registry.cjs +64 -9
- package/dist/process-registry.cjs.map +1 -1
- package/dist/process-registry.mjs +61 -10
- package/dist/process-registry.mjs.map +1 -1
- package/dist/progress.cjs +45 -0
- package/dist/progress.cjs.map +1 -0
- package/dist/progress.d.cts +13 -0
- package/dist/progress.d.mts +13 -0
- package/dist/progress.mjs +42 -0
- package/dist/progress.mjs.map +1 -0
- package/dist/publish.cjs +513 -79
- package/dist/publish.cjs.map +1 -1
- package/dist/publish.mjs +515 -82
- package/dist/publish.mjs.map +1 -1
- package/dist/registry-use.cjs +41 -0
- package/dist/registry-use.cjs.map +1 -0
- package/dist/registry-use.mjs +40 -0
- package/dist/registry-use.mjs.map +1 -0
- package/dist/resolution/session.cjs +335 -0
- package/dist/resolution/session.cjs.map +1 -0
- package/dist/resolution/session.d.cts +105 -0
- package/dist/resolution/session.d.mts +105 -0
- package/dist/resolution/session.mjs +331 -0
- package/dist/resolution/session.mjs.map +1 -0
- package/dist/rollback.cjs +131 -0
- package/dist/rollback.cjs.map +1 -0
- package/dist/rollback.mjs +128 -0
- package/dist/rollback.mjs.map +1 -0
- package/dist/sdk.cjs +7 -7
- package/dist/sdk.d.cts +3 -3
- package/dist/sdk.d.mts +3 -3
- package/dist/sdk.mjs +2 -2
- package/dist/service-descriptor.cjs +67 -34
- package/dist/service-descriptor.cjs.map +1 -1
- package/dist/service-descriptor.d.cts +4 -1
- package/dist/service-descriptor.d.mts +3 -0
- package/dist/service-descriptor.mjs +63 -35
- package/dist/service-descriptor.mjs.map +1 -1
- package/dist/shared-deps.cjs +17 -16
- package/dist/shared-deps.cjs.map +1 -1
- package/dist/shared-deps.mjs +17 -16
- package/dist/shared-deps.mjs.map +1 -1
- package/dist/start-config-source.cjs +24 -0
- package/dist/start-config-source.cjs.map +1 -0
- package/dist/start-config-source.d.cts +29 -0
- package/dist/start-config-source.d.mts +29 -0
- package/dist/start-config-source.mjs +22 -0
- package/dist/start-config-source.mjs.map +1 -0
- package/dist/storage-upload.cjs +145 -0
- package/dist/storage-upload.cjs.map +1 -0
- package/dist/storage-upload.mjs +143 -0
- package/dist/storage-upload.mjs.map +1 -0
- package/dist/types.cjs +126 -20
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +867 -585
- package/dist/types.d.mts +867 -585
- package/dist/types.mjs +307 -208
- package/dist/types.mjs.map +1 -1
- package/dist/ui/api.cjs +105 -0
- package/dist/ui/api.cjs.map +1 -0
- package/dist/ui/api.d.cts +31 -0
- package/dist/ui/api.d.mts +31 -0
- package/dist/ui/api.mjs +99 -0
- package/dist/ui/api.mjs.map +1 -0
- package/dist/ui/auth-guards.cjs +50 -0
- package/dist/ui/auth-guards.cjs.map +1 -0
- package/dist/ui/auth-guards.d.cts +39 -0
- package/dist/ui/auth-guards.d.mts +39 -0
- package/dist/ui/auth-guards.mjs +48 -0
- package/dist/ui/auth-guards.mjs.map +1 -0
- package/dist/ui/auth.cjs +197 -0
- package/dist/ui/auth.cjs.map +1 -0
- package/dist/ui/auth.d.cts +56 -0
- package/dist/ui/auth.d.mts +56 -0
- package/dist/ui/auth.mjs +179 -0
- package/dist/ui/auth.mjs.map +1 -0
- package/dist/ui/entry.cjs +16 -0
- package/dist/ui/entry.cjs.map +1 -0
- package/dist/ui/entry.d.cts +12 -0
- package/dist/ui/entry.d.mts +12 -0
- package/dist/ui/entry.mjs +15 -0
- package/dist/ui/entry.mjs.map +1 -0
- package/dist/ui/head.cjs +14 -7
- package/dist/ui/head.cjs.map +1 -1
- package/dist/ui/head.mjs +15 -7
- package/dist/ui/head.mjs.map +1 -1
- package/dist/ui/hydrate.cjs +265 -0
- package/dist/ui/hydrate.cjs.map +1 -0
- package/dist/ui/hydrate.d.cts +48 -0
- package/dist/ui/hydrate.d.mts +48 -0
- package/dist/ui/hydrate.mjs +263 -0
- package/dist/ui/hydrate.mjs.map +1 -0
- package/dist/ui/i18n.cjs +153 -0
- package/dist/ui/i18n.cjs.map +1 -0
- package/dist/ui/i18n.d.cts +29 -0
- package/dist/ui/i18n.d.mts +29 -0
- package/dist/ui/i18n.mjs +140 -0
- package/dist/ui/i18n.mjs.map +1 -0
- package/dist/ui/index.cjs +19 -1
- package/dist/ui/index.d.cts +6 -3
- package/dist/ui/index.d.mts +6 -3
- package/dist/ui/index.mjs +5 -2
- package/dist/ui/locale.cjs +53 -0
- package/dist/ui/locale.cjs.map +1 -0
- package/dist/ui/locale.d.cts +18 -0
- package/dist/ui/locale.d.mts +18 -0
- package/dist/ui/locale.mjs +49 -0
- package/dist/ui/locale.mjs.map +1 -0
- package/dist/ui/manifest/index.cjs +25 -0
- package/dist/ui/manifest/index.cjs.map +1 -0
- package/dist/ui/manifest/index.d.cts +9 -0
- package/dist/ui/manifest/index.d.mts +9 -0
- package/dist/ui/manifest/index.mjs +13 -0
- package/dist/ui/manifest/index.mjs.map +1 -0
- package/dist/ui/manifest-generator.cjs +8 -0
- package/dist/ui/manifest-generator.d.cts +1 -0
- package/dist/ui/manifest-generator.d.mts +1 -0
- package/dist/ui/manifest-generator.mjs +3 -0
- package/dist/ui/message-catalogs.cjs +8 -0
- package/dist/ui/message-catalogs.cjs.map +1 -0
- package/dist/ui/message-catalogs.d.cts +5 -0
- package/dist/ui/message-catalogs.d.mts +5 -0
- package/dist/ui/message-catalogs.mjs +8 -0
- package/dist/ui/message-catalogs.mjs.map +1 -0
- package/dist/ui/metadata.cjs +0 -1
- package/dist/ui/metadata.cjs.map +1 -1
- package/dist/ui/metadata.d.cts +1 -1
- package/dist/ui/metadata.d.mts +1 -1
- package/dist/ui/plugin-path.cjs +37 -0
- package/dist/ui/plugin-path.cjs.map +1 -0
- package/dist/ui/plugin-path.d.cts +25 -0
- package/dist/ui/plugin-path.d.mts +25 -0
- package/dist/ui/plugin-path.mjs +35 -0
- package/dist/ui/plugin-path.mjs.map +1 -0
- package/dist/ui/router-client.cjs +61 -0
- package/dist/ui/router-client.cjs.map +1 -0
- package/dist/ui/router-client.d.cts +20 -0
- package/dist/ui/router-client.d.mts +20 -0
- package/dist/ui/router-client.mjs +60 -0
- package/dist/ui/router-client.mjs.map +1 -0
- package/dist/ui/router-defaults.cjs +48 -0
- package/dist/ui/router-defaults.cjs.map +1 -0
- package/dist/ui/router-defaults.d.cts +8 -0
- package/dist/ui/router-defaults.d.mts +8 -0
- package/dist/ui/router-defaults.mjs +45 -0
- package/dist/ui/router-defaults.mjs.map +1 -0
- package/dist/ui/router-error.cjs +70 -0
- package/dist/ui/router-error.cjs.map +1 -0
- package/dist/ui/router-error.d.cts +19 -0
- package/dist/ui/router-error.d.mts +19 -0
- package/dist/ui/router-error.mjs +69 -0
- package/dist/ui/router-error.mjs.map +1 -0
- package/dist/ui/router-server.cjs +153 -0
- package/dist/ui/router-server.cjs.map +1 -0
- package/dist/ui/router-server.d.cts +38 -0
- package/dist/ui/router-server.d.mts +38 -0
- package/dist/ui/router-server.mjs +152 -0
- package/dist/ui/router-server.mjs.map +1 -0
- package/dist/ui/router.cjs +4 -16
- package/dist/ui/router.cjs.map +1 -1
- package/dist/ui/router.mjs +4 -15
- package/dist/ui/router.mjs.map +1 -1
- package/dist/ui/runtime.cjs +5 -1
- package/dist/ui/runtime.cjs.map +1 -1
- package/dist/ui/runtime.d.cts +2 -1
- package/dist/ui/runtime.d.mts +2 -1
- package/dist/ui/runtime.mjs +5 -1
- package/dist/ui/runtime.mjs.map +1 -1
- package/dist/ui/slot.cjs +34 -0
- package/dist/ui/slot.cjs.map +1 -0
- package/dist/ui/slot.d.cts +43 -0
- package/dist/ui/slot.d.mts +43 -0
- package/dist/ui/slot.mjs +34 -0
- package/dist/ui/slot.mjs.map +1 -0
- package/dist/ui/tenant.cjs +300 -0
- package/dist/ui/tenant.cjs.map +1 -0
- package/dist/ui/tenant.d.cts +122 -0
- package/dist/ui/tenant.d.mts +122 -0
- package/dist/ui/tenant.mjs +279 -0
- package/dist/ui/tenant.mjs.map +1 -0
- package/dist/ui/types.d.cts +32 -2
- package/dist/ui/types.d.mts +32 -2
- package/dist/ui/version-check.cjs +47 -0
- package/dist/ui/version-check.cjs.map +1 -0
- package/dist/ui/version-check.d.cts +23 -0
- package/dist/ui/version-check.d.mts +23 -0
- package/dist/ui/version-check.mjs +46 -0
- package/dist/ui/version-check.mjs.map +1 -0
- package/dist/utils/banner.cjs +2 -2
- package/dist/utils/banner.cjs.map +1 -1
- package/dist/utils/banner.mjs +2 -2
- package/dist/utils/banner.mjs.map +1 -1
- package/dist/utils/linkify.cjs +1 -1
- package/dist/utils/linkify.cjs.map +1 -1
- package/dist/utils/linkify.mjs +1 -0
- package/dist/utils/linkify.mjs.map +1 -1
- package/dist/utils/run.cjs +6 -6
- package/dist/utils/run.cjs.map +1 -1
- package/dist/utils/run.mjs +6 -6
- package/dist/utils/run.mjs.map +1 -1
- package/dist/utils/save-config.cjs +12 -0
- package/dist/utils/save-config.cjs.map +1 -1
- package/dist/utils/save-config.mjs +12 -0
- package/dist/utils/save-config.mjs.map +1 -1
- package/dist/utils/snapshot-hash.cjs +10 -0
- package/dist/utils/snapshot-hash.cjs.map +1 -0
- package/dist/utils/snapshot-hash.mjs +10 -0
- package/dist/utils/snapshot-hash.mjs.map +1 -0
- package/dist/utils/string.cjs +0 -1
- package/dist/utils/string.cjs.map +1 -1
- package/dist/utils/theme.cjs +30 -12
- package/dist/utils/theme.cjs.map +1 -1
- package/dist/utils/theme.mjs +30 -11
- package/dist/utils/theme.mjs.map +1 -1
- package/dist/version-manifest-deploy.cjs +50 -0
- package/dist/version-manifest-deploy.cjs.map +1 -0
- package/dist/version-manifest-deploy.mjs +49 -0
- package/dist/version-manifest-deploy.mjs.map +1 -0
- package/dist/version-manifest-resolve.cjs +42 -0
- package/dist/version-manifest-resolve.cjs.map +1 -0
- package/dist/version-manifest-resolve.d.cts +38 -0
- package/dist/version-manifest-resolve.d.mts +38 -0
- package/dist/version-manifest-resolve.mjs +40 -0
- package/dist/version-manifest-resolve.mjs.map +1 -0
- package/dist/version-status.cjs +18 -0
- package/dist/version-status.cjs.map +1 -0
- package/dist/version-status.d.cts +22 -0
- package/dist/version-status.d.mts +22 -0
- package/dist/version-status.mjs +17 -0
- package/dist/version-status.mjs.map +1 -0
- package/dist/workspace-catalog.cjs +53 -0
- package/dist/workspace-catalog.cjs.map +1 -0
- package/dist/workspace-catalog.mjs +51 -0
- package/dist/workspace-catalog.mjs.map +1 -0
- package/dist/workspace.cjs +237 -0
- package/dist/workspace.cjs.map +1 -0
- package/dist/workspace.mjs +233 -0
- package/dist/workspace.mjs.map +1 -0
- package/package.json +179 -27
- package/skills/add-a-route/SKILL.md +132 -0
- package/skills/api-and-auth/SKILL.md +87 -21
- package/skills/api-and-auth/references/middleware.md +1 -1
- package/skills/cli-reference/SKILL.md +48 -21
- package/skills/code-style/SKILL.md +8 -0
- package/skills/dev-workflow/SKILL.md +50 -26
- package/skills/extends-config/SKILL.md +31 -19
- package/skills/init-upgrade/SKILL.md +29 -16
- package/skills/plugin-development/SKILL.md +46 -112
- package/skills/plugin-development/references/database.md +82 -0
- package/skills/plugin-development/references/request-context.md +67 -0
- package/skills/publish-sync/SKILL.md +99 -22
- package/skills/registry/SKILL.md +82 -0
- package/skills/super-app/SKILL.md +25 -15
- package/skills/talk-to-the-app/SKILL.md +138 -0
- package/skills/ui-integration/SKILL.md +93 -11
- package/dist/cli/db-studio.cjs +0 -131
- package/dist/cli/db-studio.cjs.map +0 -1
- package/dist/cli/db-studio.mjs +0 -127
- package/dist/cli/db-studio.mjs.map +0 -1
- package/dist/cli/init.d.cts.map +0 -1
- package/dist/cli/init.d.mts.map +0 -1
- package/dist/components/dev-view.cjs +0 -309
- package/dist/components/dev-view.cjs.map +0 -1
- package/dist/components/dev-view.mjs +0 -309
- package/dist/components/dev-view.mjs.map +0 -1
- package/dist/components/streaming-view.cjs +0 -134
- package/dist/components/streaming-view.cjs.map +0 -1
- package/dist/components/streaming-view.mjs +0 -132
- package/dist/components/streaming-view.mjs.map +0 -1
- package/dist/config.d.cts.map +0 -1
- package/dist/config.d.mts.map +0 -1
- package/dist/contract.d.cts.map +0 -1
- package/dist/contract.d.mts.map +0 -1
- package/dist/contract.meta.d.cts.map +0 -1
- package/dist/contract.meta.d.mts.map +0 -1
- package/dist/dag.d.cts.map +0 -1
- package/dist/dag.d.mts.map +0 -1
- package/dist/db.cjs +0 -81
- package/dist/db.cjs.map +0 -1
- package/dist/db.d.cts +0 -30
- package/dist/db.d.cts.map +0 -1
- package/dist/db.d.mts +0 -30
- package/dist/db.d.mts.map +0 -1
- package/dist/db.mjs +0 -75
- package/dist/db.mjs.map +0 -1
- package/dist/fastkv.d.cts.map +0 -1
- package/dist/fastkv.d.mts.map +0 -1
- package/dist/integrity.d.cts.map +0 -1
- package/dist/integrity.d.mts.map +0 -1
- package/dist/merge.d.cts.map +0 -1
- package/dist/merge.d.mts.map +0 -1
- package/dist/mf.d.cts.map +0 -1
- package/dist/mf.d.mts.map +0 -1
- package/dist/plugin.d.cts.map +0 -1
- package/dist/plugin.d.mts.map +0 -1
- package/dist/service-descriptor.d.cts.map +0 -1
- package/dist/service-descriptor.d.mts.map +0 -1
- package/dist/types.d.cts.map +0 -1
- package/dist/types.d.mts.map +0 -1
- package/dist/ui/head.d.cts.map +0 -1
- package/dist/ui/head.d.mts.map +0 -1
- package/dist/ui/metadata.d.cts.map +0 -1
- package/dist/ui/metadata.d.mts.map +0 -1
- package/dist/ui/router.d.cts.map +0 -1
- package/dist/ui/router.d.mts.map +0 -1
- package/dist/ui/runtime.d.cts.map +0 -1
- package/dist/ui/runtime.d.mts.map +0 -1
- package/dist/ui/types.d.cts.map +0 -1
- package/dist/ui/types.d.mts.map +0 -1
|
@@ -5,6 +5,8 @@ metadata:
|
|
|
5
5
|
sources: "packages/everything-dev/src/contract.ts,packages/everything-dev/src/contract.meta.ts,packages/everything-dev/src/cli.ts,packages/everything-dev/src/cli/catalog.ts"
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
+
> **Config form:** the authored config is `bos.app.ts` (canonical, preferred when both exist). A legacy `bos.config.json` is still supported for older children. Where this doc says `bos.config.json` for the *local authored file*, read "the authored config". The published artifact on FastKV keeps the key name `bos.config.json`.
|
|
9
|
+
|
|
8
10
|
# CLI Command Reference
|
|
9
11
|
|
|
10
12
|
17 `bos` commands organised by workflow category.
|
|
@@ -29,7 +31,7 @@ bos dev --remote-plugins auth,registry # force specific plugins remote
|
|
|
29
31
|
|
|
30
32
|
### `bos start`
|
|
31
33
|
|
|
32
|
-
Start the production host. Loads config
|
|
34
|
+
Start the production host. Loads the authored config (`bos.app.ts`), wires MF remotes, serves SSR.
|
|
33
35
|
|
|
34
36
|
**Flags:** `--env <production|staging>` `--port <n>` `--account <id>` `--domain <domain>` `--no-interactive`
|
|
35
37
|
|
|
@@ -45,15 +47,18 @@ bos start --account myapp.near # tenant override
|
|
|
45
47
|
|
|
46
48
|
Build all workspace packages (or a subset) for production.
|
|
47
49
|
|
|
48
|
-
**Flags:** `--packages <list>` `--force` `--deploy`
|
|
50
|
+
**Flags:** `--packages <list|all|local>` `--force` `--deploy`
|
|
49
51
|
|
|
50
52
|
```bash
|
|
51
|
-
bos build
|
|
52
|
-
bos build --packages ui,api
|
|
53
|
-
bos build --
|
|
54
|
-
bos build --
|
|
53
|
+
bos build # build all workspaces
|
|
54
|
+
bos build --packages ui,api # build specific packages (csv)
|
|
55
|
+
bos build --packages local # build only workspaces whose development starts with local:
|
|
56
|
+
bos build --force # rebuild even if up-to-date
|
|
57
|
+
bos build --deploy # build + write deploy URLs
|
|
55
58
|
```
|
|
56
59
|
|
|
60
|
+
`--packages` accepts a comma-separated key list, `all` (default), or `local`. `local` selects only entries whose `development` field starts with `local:`, so the build set auto-tracks whatever apps and plugins live in this repo. CI deploy now invokes `bos publish --deploy --packages local` instead of a hand-maintained CSV.
|
|
61
|
+
|
|
57
62
|
→ [`publish-sync`](.) skill for full deploy+publish workflow.
|
|
58
63
|
|
|
59
64
|
### `bos config`
|
|
@@ -63,7 +68,7 @@ Print the loaded configuration (plain or fully resolved).
|
|
|
63
68
|
**Flags:** `--full`
|
|
64
69
|
|
|
65
70
|
```bash
|
|
66
|
-
bos config # print
|
|
71
|
+
bos config # print the authored config with env overrides applied
|
|
67
72
|
bos config --full # print fully resolved config (extends + deep merge)
|
|
68
73
|
```
|
|
69
74
|
|
|
@@ -128,29 +133,43 @@ Output includes installed vs latest versions for each workspace package, whether
|
|
|
128
133
|
|
|
129
134
|
### `bos publish`
|
|
130
135
|
|
|
131
|
-
Publish
|
|
136
|
+
Publish the resolved config to the FastKV on-chain registry. Optionally build and deploy workspaces first.
|
|
132
137
|
|
|
133
|
-
**Flags:** `--deploy` `--dry-run` `--network <mainnet|testnet>` `--private-key <key>` `--env <production|staging>` `--packages <list>`
|
|
138
|
+
**Flags:** `--deploy` `--dry-run` `--network <mainnet|testnet>` `--private-key <key>` `--env <production|staging>` `--packages <list|all|local>`
|
|
134
139
|
|
|
135
140
|
```bash
|
|
136
|
-
bos publish
|
|
137
|
-
bos publish --deploy
|
|
138
|
-
bos publish --
|
|
139
|
-
bos publish --
|
|
141
|
+
bos publish # publish current config snapshot
|
|
142
|
+
bos publish --deploy # build all + deploy + publish
|
|
143
|
+
bos publish --deploy --packages local # build/deploy only the workspaces owned by this repo (CI default)
|
|
144
|
+
bos publish --dry-run # preview what would be published
|
|
145
|
+
bos publish --network testnet # publish to testnet registry
|
|
140
146
|
```
|
|
141
147
|
|
|
142
148
|
→ [`publish-sync`](.) skill for config sections, SRI integrity, rollback, and FastKV troubleshooting.
|
|
143
149
|
|
|
150
|
+
### `bos mf check`
|
|
151
|
+
|
|
152
|
+
Verify Module Federation runtime compatibility across the published host + plugin config. Fetches every `<remote>/mf-manifest.json`, asserts `metaData.pluginVersion` matches the host, and confirms each plugin provides the shared dependencies the host requires at compatible versions.
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
bos mf check # exits 0 if compatible, 1 with diagnostic output if not
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
Use after redeploying any plugin to verify federation reachability before the next deploy. CI runs this on every push/PR; do not disable the gate. When it fails, redeploy the lagging plugin via `cd plugins/<key> && pnpm run deploy && bos publish --deploy`.
|
|
159
|
+
|
|
160
|
+
→ [`publish-sync`](.) skill for the federation-compat failure mode and the recovery workflow.
|
|
161
|
+
|
|
144
162
|
### `bos deploy`
|
|
145
163
|
|
|
146
164
|
Publish config and trigger a Railway redeploy. Builds and deploys by default.
|
|
147
165
|
|
|
148
|
-
**Flags:** `--env <production|staging>` `--no-build` `--dry-run` `--network <mainnet|testnet>` `--private-key <key>` `--service <name>` `--packages <list>`
|
|
166
|
+
**Flags:** `--env <production|staging>` `--no-build` `--dry-run` `--network <mainnet|testnet>` `--private-key <key>` `--service <name>` `--packages <list|all|local>`
|
|
149
167
|
|
|
150
168
|
```bash
|
|
151
|
-
bos deploy
|
|
152
|
-
bos deploy --
|
|
153
|
-
bos deploy --
|
|
169
|
+
bos deploy # build + publish + trigger deploy
|
|
170
|
+
bos deploy --packages local # build/deploy only this repo's local workspaces
|
|
171
|
+
bos deploy --no-build # publish only, skip workspace build
|
|
172
|
+
bos deploy --service my-railway # override Railway service name
|
|
154
173
|
```
|
|
155
174
|
|
|
156
175
|
→ [`publish-sync`](.) skill and [`super-app`](.) for tenant-aware deploy considerations.
|
|
@@ -173,7 +192,7 @@ Outputs the public key, private key, and registry contract address. The generate
|
|
|
173
192
|
|
|
174
193
|
### `bos plugin add`
|
|
175
194
|
|
|
176
|
-
Add a plugin attachment to
|
|
195
|
+
Add a plugin attachment to the authored config from a local path, BOS reference, or remote URL.
|
|
177
196
|
|
|
178
197
|
**Flags:** `<source>` (positional) `--as <alias>` `--production <url>`
|
|
179
198
|
|
|
@@ -189,7 +208,7 @@ bos plugin add local:plugins/my-plugin --production <prod-url> # separate prod
|
|
|
189
208
|
|
|
190
209
|
### `bos plugin remove`
|
|
191
210
|
|
|
192
|
-
Remove a plugin attachment from
|
|
211
|
+
Remove a plugin attachment from the authored config (inherited parent plugins cannot be removed locally).
|
|
193
212
|
|
|
194
213
|
**Flags:** `<key>` (positional)
|
|
195
214
|
|
|
@@ -209,7 +228,7 @@ Outputs each plugin's key, development source, production URL, local path, versi
|
|
|
209
228
|
|
|
210
229
|
### `bos plugin publish`
|
|
211
230
|
|
|
212
|
-
Build
|
|
231
|
+
Build a single plugin, then pin its deterministic image-native production URL into the published config (`https://<domain>/bundles/<account>/<gateway>/<key>/`).
|
|
213
232
|
|
|
214
233
|
**Flags:** `<key>` (positional)
|
|
215
234
|
|
|
@@ -223,7 +242,7 @@ bos plugin publish my-plugin
|
|
|
223
242
|
|
|
224
243
|
### `bos types gen`
|
|
225
244
|
|
|
226
|
-
Generate and fetch type definitions from configured API and plugin contracts. Runs automatically on `
|
|
245
|
+
Generate and fetch type definitions from configured API and plugin contracts. Runs automatically on `pnpm install`, `bos dev`, `bos build`, `bos plugin add`, and `bos plugin remove`.
|
|
227
246
|
|
|
228
247
|
**Flags:** `--env <development|production>` `--dry-run`
|
|
229
248
|
|
|
@@ -248,3 +267,11 @@ bos db studio my-plugin # open for a custom plugin
|
|
|
248
267
|
```
|
|
249
268
|
|
|
250
269
|
Requires the `DATABASE_URL` secret to be set on the target plugin. Uses the plugin's drizzle.config.ts for schema discovery.
|
|
270
|
+
|
|
271
|
+
## The tasks you will actually be given
|
|
272
|
+
|
|
273
|
+
**"Regenerate the types."** `bos types gen` — or just `pnpm run typecheck`, which regenerates first and then checks. Never hand-edit `*.gen.ts` files.
|
|
274
|
+
|
|
275
|
+
**"Which command deploys?"** `pnpm run deploy` (the full train: preflight → build → upload → publish → image). Config-only is `bos publish`; one plugin is `bos plugin publish <key>`.
|
|
276
|
+
|
|
277
|
+
**"What is running right now?"** `bos ps` for tracked dev processes, `bos status` for health and versions, `ls .bos/logs/` for per-service logs.
|
|
@@ -60,3 +60,11 @@ metadata:
|
|
|
60
60
|
- If neighboring files use `function Component()`, don't use `const Component: React.FC = () =>`
|
|
61
61
|
- If neighboring files group imports by type (React, third-party, local), do the same
|
|
62
62
|
- Consistent file structure within a directory is more important than personal preference
|
|
63
|
+
|
|
64
|
+
## The tasks you will actually be given
|
|
65
|
+
|
|
66
|
+
**"Review my new component for style."** Check four things: file is kebab-case with a PascalCase named export, classes use semantic tokens (`bg-background`, `text-muted-foreground`) not hardcoded colors, no inline comments, imports use `@/` aliases grouped like the neighbors.
|
|
67
|
+
|
|
68
|
+
**"Where does this shared component go?"** `ui/src/components/ui/<name>.tsx`, named export, added to `ui/src/components/index.ts`. Feature-specific components stay colocated with the route that uses them.
|
|
69
|
+
|
|
70
|
+
**"Is this file name ok?"** Lowercase kebab-case for every file and directory, including routes. PascalCase file names are the only hard violation; route path segments follow TanStack conventions (`_` prefix for layouts).
|
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
name: dev-workflow
|
|
3
3
|
description: Development workflow for everything-dev projects using bos dev, bos start, and the Module Federation runtime. Use when starting dev servers, debugging hot reload, or understanding the service-descriptor architecture.
|
|
4
4
|
metadata:
|
|
5
|
-
sources: "packages/everything-dev/src/service-descriptor.ts,packages/everything-dev/src/orchestrator.ts,packages/everything-dev/src/dev-logs.ts,packages/everything-dev/src/dev-session.ts,packages/everything-dev/src/process-registry.ts,packages/everything-dev/src/app.ts"
|
|
5
|
+
sources: "packages/everything-dev/src/service-descriptor.ts,packages/everything-dev/src/orchestrator.ts,packages/everything-dev/src/dev-logs.ts,packages/everything-dev/src/dev-session.ts,packages/everything-dev/src/process-registry.ts,packages/everything-dev/src/app.ts,packages/everything-dev/src/infra/preflight.ts,packages/everything-dev/src/dev-program.ts"
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
+
> **Config form:** the authored config is `bos.app.ts` (canonical, preferred when both exist). A legacy `bos.config.json` is still supported for older children. Where this doc says `bos.config.json` for the *local authored file*, read "the authored config". The published artifact on FastKV keeps the key name `bos.config.json`.
|
|
9
|
+
|
|
8
10
|
# everything-dev Development Workflow
|
|
9
11
|
|
|
10
12
|
## Starting Development
|
|
@@ -18,22 +20,29 @@ bos dev --api remote # UI only
|
|
|
18
20
|
bos dev --ui remote # API only
|
|
19
21
|
bos dev # Full local (rarely needed)
|
|
20
22
|
|
|
21
|
-
# Pin individual service ports (
|
|
23
|
+
# Pin individual service ports (explicitly-passed flags are pinned; unset services derive from the base)
|
|
22
24
|
bos dev --port 3100 --api-port 3101 --ui-port 3103 --auth-port 3102 --plugin-port-start 3110
|
|
23
25
|
```
|
|
24
26
|
|
|
25
|
-
### Port persistence
|
|
27
|
+
### Port persistence (ADR 0012)
|
|
26
28
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
Port allocation is atomic block allocation: the layout derives deterministically from one base
|
|
30
|
+
(`--port N` → api N+1, auth N+2, ui N+3, plugins N+10+), and the whole block is validated before
|
|
31
|
+
anything spawns. Only explicitly-passed port flags persist to `.bos/infra-state.json` under
|
|
32
|
+
`devPorts` — never drift. If the preferred block is occupied, the session takes the next block
|
|
33
|
+
(+100) with a prominent notice naming the holders (live sibling sessions via registry claims;
|
|
34
|
+
foreign processes via an lsof ownership probe), and restarts re-try the preferred base.
|
|
35
|
+
Explicitly-passed flags are pinned: an occupied explicit port fails loudly instead of silently
|
|
36
|
+
moving. `bos kill` escalates SIGTERM → 5s → SIGKILL, reaps orphaned children of dead sessions,
|
|
37
|
+
and verifies ports actually freed; new sessions adopt-and-reap orphaned children from dead
|
|
38
|
+
same-project sessions at boot. Test-spawned stacks never persist ports (`BOS_NO_PERSIST_PORTS=1`,
|
|
39
|
+
plus `NODE_ENV=test` / `BOS_TEST=1` are honored).
|
|
31
40
|
|
|
32
41
|
### Port budgets (forward-compat for `--workspaces`)
|
|
33
42
|
|
|
34
|
-
|
|
35
|
-
`pickAvailablePort` skips candidates outside the budget and throws `
|
|
36
|
-
is found inside it. The standalone `bos dev` path does not pass a budget today; a future
|
|
43
|
+
The allocator accepts an optional `portBudget: { min, max }`. When set,
|
|
44
|
+
`pickAvailablePort` skips candidates outside the budget and throws `PortAllocationError` if no
|
|
45
|
+
free port is found inside it. The standalone `bos dev` path does not pass a budget today; a future
|
|
37
46
|
`bos dev --workspaces` orchestrator will slice disjoint budgets per child project.
|
|
38
47
|
|
|
39
48
|
## Port Assignments
|
|
@@ -44,12 +53,11 @@ is found inside it. The standalone `bos dev` path does not pass a budget today;
|
|
|
44
53
|
| api | 3001 | http://localhost:3001 |
|
|
45
54
|
| auth | 3002 | http://localhost:3002 |
|
|
46
55
|
| ui | 3003 | http://localhost:3003 |
|
|
47
|
-
| ui-ssr | 3004 | http://localhost:3004 |
|
|
48
56
|
| plugins | 3010+ | http://localhost:3010+ (incremental — one per plugin in config order) |
|
|
49
57
|
|
|
50
58
|
## Service-Descriptor Architecture
|
|
51
59
|
|
|
52
|
-
The orchestrator builds a `ServiceDescriptorMap` from
|
|
60
|
+
The orchestrator builds a `ServiceDescriptorMap` from the resolved config. Each descriptor defines:
|
|
53
61
|
- `key` — service identifier (host, ui, api, auth, plugin:*)
|
|
54
62
|
- `source` — `"local"` or `"remote"` (determines if process is spawned or URL is probed)
|
|
55
63
|
- `port` / `defaultPort` — TCP port for local services
|
|
@@ -57,7 +65,7 @@ The orchestrator builds a `ServiceDescriptorMap` from `bos.config.json`. Each de
|
|
|
57
65
|
- `readyPatterns` / `errorPatterns` — Regexes matched against stdout/stderr
|
|
58
66
|
|
|
59
67
|
The orchestrator:
|
|
60
|
-
1. Spawns local services via `
|
|
68
|
+
1. Spawns local services via `pnpm run dev` in each package directory
|
|
61
69
|
2. Probes remote services via HTTP GET to their readiness path
|
|
62
70
|
3. Tracks process state: pending → starting → ready → error
|
|
63
71
|
4. Writes logs to `.bos/logs/{service}.log`
|
|
@@ -67,20 +75,19 @@ The orchestrator:
|
|
|
67
75
|
- **UI changes**: Rsbuild HMR — instant at :3003, no rebuild
|
|
68
76
|
- **API changes**: Rspack HMR — instant at :3001, no rebuild
|
|
69
77
|
- **Auth / Plugin changes**: No HMR — require full restart (`bos kill && bos dev`)
|
|
70
|
-
- **SSR (
|
|
78
|
+
- **SSR (`bos dev --ssr`)**: source-composed SSR in the host dev process — manifests read from disk; restart not required
|
|
71
79
|
- **Config changes**: Require host restart (`bos kill && bos dev`)
|
|
72
80
|
|
|
73
81
|
## Contract Sync & Type Generation
|
|
74
82
|
|
|
75
|
-
Plugin types are auto-generated from
|
|
83
|
+
Plugin types are auto-generated from the authored config via `bos types gen`:
|
|
76
84
|
|
|
77
85
|
```bash
|
|
78
86
|
bos types gen # Regenerate ui/src/lib/api-types.gen.ts and api/src/lib/plugins-types.gen.ts
|
|
79
87
|
```
|
|
80
88
|
|
|
81
89
|
**When it auto-runs:**
|
|
82
|
-
- `
|
|
83
|
-
- `bun typecheck`
|
|
90
|
+
- `pnpm run typecheck`
|
|
84
91
|
- `bos dev` startup
|
|
85
92
|
- `bos build`, `bos deploy`, `bos publish`
|
|
86
93
|
- `bos pluginAdd` / `bos pluginRemove`
|
|
@@ -90,15 +97,15 @@ bos types gen # Regenerate ui/src/lib/api-types.gen.ts and api/src/lib/plugins
|
|
|
90
97
|
2. Remote URL → fetches contract types from the deployed plugin's manifest
|
|
91
98
|
3. Missing local path with no URL → skipped with a warning
|
|
92
99
|
|
|
93
|
-
**Source of truth:** `bos.
|
|
100
|
+
**Source of truth:** the authored config (`bos.app.ts`). If a plugin is listed there, its routes appear on `ApiContract`. If removed, TypeScript catches stale usage.
|
|
94
101
|
|
|
95
|
-
**After hand-editing
|
|
102
|
+
**After hand-editing the authored config:** Run `bos types gen` or restart `bos dev` to pick up changes.
|
|
96
103
|
|
|
97
104
|
## Runtime Config Loading
|
|
98
105
|
|
|
99
|
-
The host reads `BOS_RUNTIME_CONFIG` at startup (resolved from
|
|
106
|
+
The host reads `BOS_RUNTIME_CONFIG` at startup (resolved from the authored config by the CLI). `ConfigService` is an immutable Effect Layer — every service is built from that one snapshot.
|
|
100
107
|
|
|
101
|
-
**Override for testing**: Set `BOS_RUNTIME_CONFIG` env var to a JSON string or file path to bypass config loading from disk. Useful for testing with different configs without modifying
|
|
108
|
+
**Override for testing**: Set `BOS_RUNTIME_CONFIG` env var to a JSON string or file path to bypass config loading from disk. Useful for testing with different configs without modifying the authored config.
|
|
102
109
|
|
|
103
110
|
On page refresh:
|
|
104
111
|
1. Browser re-fetches HTML shell from host
|
|
@@ -111,9 +118,9 @@ This means a new deployment requires a host restart to pick up new URLs.
|
|
|
111
118
|
|
|
112
119
|
`bos dev` and `bos build` write the fully-merged config to `.bos/bos.resolved-config.json` (gitignored). This file includes `_resolved` metadata with env, timestamp, and extends chain.
|
|
113
120
|
|
|
114
|
-
|
|
121
|
+
**The authored config is NOT modified during dev.** Only `bos publish --deploy`, `bos plugin publish/add/remove`, and `bos sync` write to it (`bos.app.ts` for TS-form projects; legacy JSON children keep their `bos.config.json`).
|
|
115
122
|
|
|
116
|
-
Build configs (rsbuild/rspack) read from `.bos/bos.resolved-config.json` first, falling back to
|
|
123
|
+
Build configs (rsbuild/rspack) read from `.bos/bos.resolved-config.json` first, falling back to the authored config. This allows slim child configs with `extends` to work correctly — the merged parent+child config is what the build sees.
|
|
117
124
|
|
|
118
125
|
## Debugging
|
|
119
126
|
|
|
@@ -156,15 +163,14 @@ bos dev # Start fresh
|
|
|
156
163
|
### UI not loading
|
|
157
164
|
|
|
158
165
|
1. Check browser console for Module Federation errors
|
|
159
|
-
2.
|
|
166
|
+
2. The authored config — is `app.ui.development` correct?
|
|
160
167
|
3. Clear browser cache and hard reload (Cmd+Shift+R)
|
|
161
|
-
4. Verify UI SSR restart if using SSR
|
|
162
168
|
|
|
163
169
|
### Module Federation errors
|
|
164
170
|
|
|
165
171
|
- Verify shared dependency versions match across package.json files
|
|
166
172
|
- Clear browser cache (Cmd+Shift+R)
|
|
167
|
-
- Check
|
|
173
|
+
- Check the config URLs (authored config / FastKV) are accessible
|
|
168
174
|
|
|
169
175
|
## Production Mode
|
|
170
176
|
|
|
@@ -192,3 +198,21 @@ planned `bos dev --workspaces` orchestrator), `ports`, optional `budget`, `start
|
|
|
192
198
|
orchestrator owns registry entries.
|
|
193
199
|
|
|
194
200
|
Process tracking uses `~/.cache/everything-dev/pids.json` (global, atomic writes).
|
|
201
|
+
|
|
202
|
+
## The tasks you will actually be given
|
|
203
|
+
|
|
204
|
+
**"Start dev on my own ports."** `bos dev --port 3100` (api 3101, auth 3102, ui 3103, plugins 3110+ derive from the base). Explicit `--*-port` flags are pinned and persisted; derived ones are not.
|
|
205
|
+
|
|
206
|
+
**"My change didn't show up."** Match the change type to the reload path: UI and API hot-reload instantly; auth/plugins/config changes need `bos kill && bos dev`; stale generated types need `pnpm run typecheck`.
|
|
207
|
+
|
|
208
|
+
**"API is down."** `bos ps` → read `.bos/logs/api.log` → `curl http://localhost:3001/remoteEntry.js` — in that order.
|
|
209
|
+
|
|
210
|
+
## What comes back when it fails
|
|
211
|
+
|
|
212
|
+
| word | do |
|
|
213
|
+
|---|---|
|
|
214
|
+
| `Infra preflight failed: …` | the DB preflight probes localhost ports and auto-runs `docker compose up -d --wait` when every failure is a down local service — if it still fails, start Postgres (`pnpm run dev:postgres`) and read the failure messages |
|
|
215
|
+
| `PortAllocationError` on an explicit port | the pinned port is occupied and allocation fails loudly — free it or pick another; it never silently moves an explicit choice |
|
|
216
|
+
| `+100` port-shift notice at startup | expected drift: the preferred block was busy, holders are named in the notice, nothing is persisted — restarts re-try the preferred base |
|
|
217
|
+
| service stuck in `starting` | probe its readiness path directly (e.g. `curl http://localhost:3003/remoteEntry.js`) and read `.bos/logs/<service>.log` |
|
|
218
|
+
| stale registry entries blocking restart | `bos ps` / `bos kill` prune dead PIDs on read; to wipe manually: `rm ~/.cache/everything-dev/pids.json` |
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: extends-config
|
|
3
|
-
description: How
|
|
3
|
+
description: How the authored config's extends chains work (bos.app.ts preferred; legacy bos.config.json supported), deep merge semantics, resolved config lifecycle, env-specific extends, and canonical field ordering. Use when debugging extends inheritance, configuring per-environment parents, understanding what dev writes vs publish writes, or reasoning about config merging.
|
|
4
4
|
metadata:
|
|
5
5
|
sources: "packages/everything-dev/src/merge.ts,packages/everything-dev/src/config.ts,packages/everything-dev/src/shared-deps.ts,packages/everything-dev/src/types.ts"
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
+
> **Config form:** the authored config is `bos.app.ts` (canonical, preferred when both exist). A legacy `bos.config.json` is still supported for older children. Where this doc says `bos.config.json` for the *local authored file*, read "the authored config". The published artifact on FastKV keeps the key name `bos.config.json`.
|
|
9
|
+
|
|
8
10
|
# extends & Config Merging
|
|
9
11
|
|
|
10
12
|
## extends Field
|
|
11
13
|
|
|
12
|
-
The `extends` field in `bos.config.json` specifies a parent config to inherit from. Supports two forms:
|
|
14
|
+
The `extends` field in the authored config (`bos.app.ts`, or legacy `bos.config.json`) specifies a parent config to inherit from. Supports two forms:
|
|
13
15
|
|
|
14
16
|
### String (all environments use same parent)
|
|
15
17
|
```json
|
|
@@ -73,13 +75,7 @@ Use this mental model:
|
|
|
73
75
|
- `domain` is the public ingress for this runtime
|
|
74
76
|
- a runtime can be a child in lineage and still become a new tenant root on its own domain
|
|
75
77
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
```bash
|
|
79
|
-
ALLOW_OVERRIDE=ui,plugins.*
|
|
80
|
-
TENANT_WHITELIST=pizza.pingpayio.near
|
|
81
|
-
ALLOW_UNTRUSTED_SSR=false
|
|
82
|
-
```
|
|
78
|
+
Tenant permissions come from the DB, not env vars. The host fetches the tenant bindings map from the API's `GET /tenants/bindings` endpoint (cached for 30s), and the tenant record's allow flags gate what may be overridden and whether SSR is permitted.
|
|
83
79
|
|
|
84
80
|
Design target for request mapping:
|
|
85
81
|
- `pizza.com` -> base runtime `bos://pizza.pingpayio.near/pizza.com`
|
|
@@ -101,9 +97,8 @@ The tenant config must extend the base BOS runtime. Tenant API/auth overrides an
|
|
|
101
97
|
### SSR behavior
|
|
102
98
|
|
|
103
99
|
Tenant SSR is gated separately from inheritance:
|
|
104
|
-
-
|
|
105
|
-
-
|
|
106
|
-
- non-whitelisted tenants fall back to client rendering
|
|
100
|
+
- a tenant may SSR only when its record has `allow_ssr` set
|
|
101
|
+
- tenants without `allow_ssr` fall back to client rendering
|
|
107
102
|
|
|
108
103
|
## Resolved Config: `.bos/bos.resolved-config.json`
|
|
109
104
|
|
|
@@ -113,7 +108,7 @@ Tenant SSR is gated separately from inheritance:
|
|
|
113
108
|
When `bos dev` or `bos build` runs:
|
|
114
109
|
1. The full extends chain is resolved in memory
|
|
115
110
|
2. The merged config is written to `.bos/bos.resolved-config.json`
|
|
116
|
-
3.
|
|
111
|
+
3. **The authored config is NOT modified** during dev
|
|
117
112
|
|
|
118
113
|
Structure:
|
|
119
114
|
```json
|
|
@@ -132,13 +127,13 @@ Structure:
|
|
|
132
127
|
|
|
133
128
|
### Build configs read resolved config first
|
|
134
129
|
|
|
135
|
-
All build configs (ui/rsbuild.config.ts, host/rsbuild.config.ts, api/rspack.config.js, plugins/*/rspack.config.js) try `.bos/bos.resolved-config.json` first, falling back to
|
|
130
|
+
All build configs (ui/rsbuild.config.ts, host/rsbuild.config.ts, api/rspack.config.js, plugins/*/rspack.config.js) try `.bos/bos.resolved-config.json` first, falling back to the authored config.
|
|
136
131
|
|
|
137
132
|
The `_resolved` metadata is stripped before use.
|
|
138
133
|
|
|
139
|
-
### When
|
|
134
|
+
### When the authored config IS written
|
|
140
135
|
|
|
141
|
-
| Command | Writes
|
|
136
|
+
| Command | Writes the authored config? | Why |
|
|
142
137
|
|---------|------------------------|-----|
|
|
143
138
|
| `bos dev` | No | Uses resolved config |
|
|
144
139
|
| `bos build` | No | Uses resolved config |
|
|
@@ -149,7 +144,7 @@ The `_resolved` metadata is stripped before use.
|
|
|
149
144
|
|
|
150
145
|
### Remote host mode (bos->catalog)
|
|
151
146
|
|
|
152
|
-
When host is remote, `syncResolvedSharedDeps()` reads versions from
|
|
147
|
+
When host is remote, `syncResolvedSharedDeps()` reads versions from the authored config and writes them into `package.json` catalog. No resolved config is written — the remote host reads the published config directly.
|
|
153
148
|
|
|
154
149
|
### `_resolved.resolvedAt`
|
|
155
150
|
|
|
@@ -184,8 +179,8 @@ Unknown keys go after known keys. `rebuildOrderedConfig()` is applied before eve
|
|
|
184
179
|
From `packages/everything-dev/src/config.ts`:
|
|
185
180
|
- `writeResolvedConfig(configDir, config, env, extendsChain?)` — writes `.bos/bos.resolved-config.json`
|
|
186
181
|
- `loadResolvedConfig(configDir)` — reads resolved config, returns `BosConfig | null`
|
|
187
|
-
- `resolveBosConfigPath(configDir)` — returns resolved config path if exists, else
|
|
188
|
-
- `readBosConfigForBuild(configDir)` — reads resolved config stripping `_resolved`, falls back to
|
|
182
|
+
- `resolveBosConfigPath(configDir)` — returns resolved config path if exists, else the authored config
|
|
183
|
+
- `readBosConfigForBuild(configDir)` — reads resolved config stripping `_resolved`, falls back to the authored config
|
|
189
184
|
|
|
190
185
|
From `packages/everything-dev/src/merge.ts`:
|
|
191
186
|
- `mergeBosConfigWithExtends(parent, child)` — deep merge for extends chain
|
|
@@ -193,3 +188,20 @@ From `packages/everything-dev/src/merge.ts`:
|
|
|
193
188
|
- `resolveExtendsRef(extendsField, env)` — resolve string|object extends for a given env
|
|
194
189
|
- `rebuildOrderedConfig(config)` — enforce canonical ordering
|
|
195
190
|
- `BOS_CONFIG_ORDER` — ordered field names
|
|
191
|
+
|
|
192
|
+
## The tasks you will actually be given
|
|
193
|
+
|
|
194
|
+
**"Remove a plugin I inherited."** Set it to `null` in the authored config's `plugins` — the null sentinel deletes it from the merged result. Deleting the entry entirely just inherits the parent's.
|
|
195
|
+
|
|
196
|
+
**"Different parent for staging."** Object-form `extends` keyed by env (`development` / `staging` / `production`); the fallback chain is requested env → `production` → first defined value.
|
|
197
|
+
|
|
198
|
+
**"Why doesn't the runtime see my config edit?"** Dev reads `.bos/bos.resolved-config.json` (regenerated on every `bos dev`); production reads FastKV. The authored config is only the publish input — `bos publish` is the write.
|
|
199
|
+
|
|
200
|
+
## What comes back when it refuses
|
|
201
|
+
|
|
202
|
+
| word | do |
|
|
203
|
+
|---|---|
|
|
204
|
+
| `CircularExtendsError` — "Circular extends detected: A -> B -> A" | stop — the extends chain loops; restructure so no runtime extends itself transitively |
|
|
205
|
+
| `Circular dependency detected among: … dependsOn` | build-order cycle in the build train — fix the `dependsOn` declarations in the authored config |
|
|
206
|
+
| inherited plugin still present after "removing" it | deep merge keeps parent plugins unless nulled — you need the explicit `null` sentinel, keyed exactly as the parent's plugin key |
|
|
207
|
+
| your section is missing from `.bos/bos.resolved-config.json` | ordering never drops keys — if it's absent, the authored config or its parent didn't define it; check the `extends` chain with `bos config --full` |
|
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
name: init-upgrade
|
|
3
3
|
description: bos init, bos sync, and bos upgrade workflows — template download, snapshot-based conflict detection, package version bumps, and how init/sync select and own files. Use when scaffolding new projects, syncing upstream changes, or upgrading framework packages.
|
|
4
4
|
metadata:
|
|
5
|
-
sources: "packages/everything-dev/src/cli/init.ts,packages/everything-dev/src/cli/sync.ts,packages/everything-dev/src/cli/upgrade.ts,packages/everything-dev/src/cli/snapshot.ts,packages/everything-dev/src/merge.ts"
|
|
5
|
+
sources: "packages/everything-dev/src/cli/init.ts,packages/everything-dev/src/cli/sync.ts,packages/everything-dev/src/cli/upgrade.ts,packages/everything-dev/src/cli/snapshot.ts,packages/everything-dev/src/cli.ts,packages/everything-dev/src/merge.ts"
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
+
> **Config form:** the authored config is `bos.app.ts` (canonical, preferred when both exist). A legacy `bos.config.json` is still supported for older children. Where this doc says `bos.config.json` for the *local authored file*, read "the authored config". The published artifact on FastKV keeps the key name `bos.config.json`.
|
|
9
|
+
|
|
8
10
|
# bos init, sync, upgrade
|
|
9
11
|
|
|
10
12
|
## bos init
|
|
@@ -25,7 +27,7 @@ bos init --overrides ui,api,host # Include host locally
|
|
|
25
27
|
5. `personalizeConfig()` — sets `extends`, `account`, `domain`, removes production URLs
|
|
26
28
|
6. `resolveWorkspaceRefs()` — normalizes each workspace `package.json`: rewrites `file:`/`workspace:*` refs to `catalog:`, ensures all workspace packages are listed in root `workspaces.catalog`, pins framework versions (`everything-dev`, `every-plugin`)
|
|
27
29
|
7. Write initial snapshot (`.bos/sync-snapshot.json`) — records file path → content hash for all template-origin files, used later by `bos sync` for conflict detection
|
|
28
|
-
8. `
|
|
30
|
+
8. `pnpm install` + `bos types gen`
|
|
29
31
|
|
|
30
32
|
## Shared Host + Custom Child App
|
|
31
33
|
|
|
@@ -43,7 +45,7 @@ This base runtime is the app the host boots from.
|
|
|
43
45
|
|
|
44
46
|
### 2. Create the child app from the base runtime
|
|
45
47
|
|
|
46
|
-
Create a second app whose
|
|
48
|
+
Create a second app whose authored config extends the base runtime:
|
|
47
49
|
|
|
48
50
|
```json
|
|
49
51
|
{
|
|
@@ -81,15 +83,9 @@ Child apps can either run as their own base runtime on their own domain, or as r
|
|
|
81
83
|
|
|
82
84
|
Shared-host children must extend the base runtime and do not introduce new server-side plugin IDs dynamically.
|
|
83
85
|
|
|
84
|
-
### 4. Host
|
|
86
|
+
### 4. Host resolution for shared-host mode
|
|
85
87
|
|
|
86
|
-
The shared host
|
|
87
|
-
|
|
88
|
-
```bash
|
|
89
|
-
ALLOW_OVERRIDE=ui,plugins.*
|
|
90
|
-
TENANT_WHITELIST=pizza.pingpayio.near,chicago.pizza.pingpayio.near
|
|
91
|
-
ALLOW_UNTRUSTED_SSR=false
|
|
92
|
-
```
|
|
88
|
+
The shared host resolves descendant requests via a DB-backed binding map. It fetches tenant permissions from the API's `GET /tenants/bindings` endpoint (cached for 30s) — no env vars are needed:
|
|
93
89
|
|
|
94
90
|
Design target, for example:
|
|
95
91
|
- `pingpay.io` -> base runtime `bos://pingpayio.near/pingpay.io`
|
|
@@ -105,7 +101,7 @@ Use the `extends-config` skill when reasoning about how the tenant config merges
|
|
|
105
101
|
### Init File Selection
|
|
106
102
|
|
|
107
103
|
`buildInitPatterns(overrides, plugins)` chooses what init copies from the template source:
|
|
108
|
-
- Scaffold runtime files (bos.
|
|
104
|
+
- Scaffold runtime files (bos.app.ts, bos.dev.ts, package.json, biome.json, rsbuild configs)
|
|
109
105
|
- UI structure (routes/__root.tsx, components/index.ts, providers, hooks, lib)
|
|
110
106
|
- API structure (contract.ts, index.ts, db/, drizzle.config.ts)
|
|
111
107
|
- Selected plugin workspaces (`plugins/<selected-plugin>/**`)
|
|
@@ -152,7 +148,7 @@ Framework-owned files (from `FRAMEWORK_OWNED_SYNC_FILES`) are always updated whe
|
|
|
152
148
|
### What gets synced
|
|
153
149
|
|
|
154
150
|
From parent template → local:
|
|
155
|
-
- `app.*.production` —
|
|
151
|
+
- `app.*.production` — bundle URLs
|
|
156
152
|
- `app.api.shared`, `app.auth.shared`, `plugins.*.shared` — dependency versions
|
|
157
153
|
- Framework-owned files (rsbuild configs, routers, etc.)
|
|
158
154
|
|
|
@@ -177,7 +173,7 @@ bos upgrade --dry-run # Preview without making changes
|
|
|
177
173
|
1. Check npm registry for latest versions of `everything-dev` and `every-plugin`
|
|
178
174
|
2. Update root `package.json` workspaces.catalog
|
|
179
175
|
3. Update all workspace `package.json` to use `catalog:` references
|
|
180
|
-
4. `
|
|
176
|
+
4. `pnpm install` + `bos types gen`
|
|
181
177
|
5. Run `bos sync` to pull template updates matching new version
|
|
182
178
|
6. Rewrite legacy UI imports (e.g., `from "@/auth"` → `from "@/app"`)
|
|
183
179
|
7. Remove obsolete files
|
|
@@ -195,11 +191,28 @@ bos publish # Publish config to FastKV
|
|
|
195
191
|
bos publish --deploy # Build, deploy to CDN, then publish
|
|
196
192
|
```
|
|
197
193
|
|
|
198
|
-
`bos publish --deploy` builds,
|
|
194
|
+
`bos publish --deploy` builds, pins deterministic bundle URLs into the published config, then publishes to FastKV (a legacy JSON child's `bos.config.json` is also updated locally).
|
|
199
195
|
|
|
200
196
|
## Canonical Ordering
|
|
201
197
|
|
|
202
|
-
All writes to
|
|
198
|
+
All writes to the authored config enforce `BOS_CONFIG_ORDER`:
|
|
203
199
|
`extends` → `account` → `domain` → `title` → `description` → `testnet` → `staging` → `repository` → `ci` → `app` → `plugins`
|
|
204
200
|
|
|
205
201
|
Unknown keys go after known keys. See `everything-dev#extends-config` for full ordering details.
|
|
202
|
+
|
|
203
|
+
## The tasks you will actually be given
|
|
204
|
+
|
|
205
|
+
**"Scaffold a child that extends the base runtime."** `bos init --extends bos://<parent-account>/<gateway> --account <you>.near --domain <your.domain> --no-interactive`, then customize `account` / `domain` / `app.ui` in the authored config; init's tail runs `pnpm install` + `bos types gen` (unless `--no-install`).
|
|
206
|
+
|
|
207
|
+
**"Sync reports conflicted files."** Your local edits diverged from the snapshot; upgrade applies the template version and leaves your copy in `.bos/sync-backup/` — diff and merge back, or `bos sync --force` deliberately.
|
|
208
|
+
|
|
209
|
+
**"Upgrade framework packages."** `bos upgrade --dry-run` first, then `bos upgrade` — it bumps the root catalog, rewrites workspace refs to `catalog:`, syncs the template, and rewrites legacy imports.
|
|
210
|
+
|
|
211
|
+
## What comes back when it refuses
|
|
212
|
+
|
|
213
|
+
| word | do |
|
|
214
|
+
|---|---|
|
|
215
|
+
| file listed as `conflicted` in sync results | local file modified since the snapshot AND the template changed — take the template version (your copy is backed up at `.bos/sync-backup/`) or re-apply your change on top |
|
|
216
|
+
| sync keeps skipping my file | app-owned files that diverged from the snapshot are skipped without `--force`; framework-owned files always update when the template changes |
|
|
217
|
+
| `Circular extends detected while resolving upgrade source` | the upgrade source's extends chain loops — resolve from a non-cyclic parent |
|
|
218
|
+
| init copies fewer files than expected | `buildInitPatterns` filters to the selected plugins + their routes; pass `--overrides ui,api,host` to widen the scaffold |
|