@aotter/mantle 0.2.0-alpha.5 → 0.2.0-alpha.7
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 +152 -45
- package/dist/auth/adapter.d.ts +32 -0
- package/dist/auth/adapter.js +285 -0
- package/dist/auth/admin.d.ts +3 -0
- package/dist/auth/admin.js +21 -0
- package/dist/auth/caller.d.ts +86 -0
- package/dist/auth/caller.js +154 -0
- package/dist/auth/hardening.d.ts +24 -0
- package/dist/auth/hardening.js +40 -0
- package/dist/auth/identity.d.ts +121 -0
- package/dist/auth/identity.js +203 -0
- package/dist/auth/oauth.d.ts +31 -0
- package/dist/auth/oauth.js +124 -0
- package/dist/auth/resource-seeds.js +10 -0
- package/dist/auth/routes.d.ts +32 -0
- package/dist/auth/{createAuthRoutes.js → routes.js} +130 -35
- package/dist/build/compiler.d.ts +790 -0
- package/dist/build/compiler.js +6971 -0
- package/dist/{spec → build/spec}/domain/model/ManifestGrammar.d.ts +28 -42
- package/dist/{spec → build/spec}/domain/model/RuntimePlan.d.ts +77 -3
- package/dist/{spec → build/spec}/domain/model/SqlIr.d.ts +35 -6
- package/dist/build/spec/domain/model/UserFields.d.ts +20 -0
- package/dist/{spec → build/spec}/domain/service/PlanFingerprint.d.ts +2 -1
- package/dist/{spec → build/spec}/kernel/diagnostic.d.ts +1 -30
- package/dist/bun/assets.d.ts +2 -0
- package/dist/bun/assets.js +24 -0
- package/dist/domain/adminOrder.js +24 -0
- package/dist/domain/columns.js +55 -0
- package/dist/domain/describe/chunk-ZIQVLA7X.js +363 -0
- package/dist/domain/describe/index.d.ts +58 -0
- package/dist/domain/describe/index.js +115 -0
- package/dist/domain/describe/target-hash.d.ts +8 -0
- package/dist/domain/describe/target-hash.js +12 -0
- package/dist/domain/describe/targets.d.ts +40 -0
- package/dist/domain/entry.js +33 -0
- package/dist/domain/generated-tools.js +17 -0
- package/dist/domain/generation.d.ts +16 -0
- package/dist/domain/generation.js +1 -0
- package/dist/domain/input.js +17 -0
- package/dist/domain/model.js +1 -0
- package/dist/domain/paging.js +204 -0
- package/dist/domain/recipes.js +19 -0
- package/dist/domain/userReferences.js +5 -0
- package/dist/domain/wireScalars.js +47 -0
- package/dist/infrastructure/adminEntries.js +153 -0
- package/dist/infrastructure/adminPaging.js +72 -0
- package/dist/infrastructure/artifacts.js +71 -0
- package/dist/infrastructure/authSchema.js +83 -0
- package/dist/infrastructure/bundle.js +84 -0
- package/dist/infrastructure/cli.js +101 -0
- package/dist/infrastructure/generate.d.ts +14 -0
- package/dist/infrastructure/generate.js +174 -0
- package/dist/infrastructure/generateAuth.d.ts +8 -0
- package/dist/infrastructure/generateAuth.js +17 -0
- package/dist/infrastructure/inputs.js +36 -0
- package/dist/infrastructure/wrangler.js +71 -0
- package/dist/kernel/authorization.d.ts +4 -0
- package/dist/kernel/authorization.js +16 -0
- package/dist/kernel/binds.d.ts +51 -0
- package/dist/kernel/binds.js +45 -0
- package/dist/kernel/caller-identity.d.ts +24 -0
- package/dist/kernel/caller-identity.js +22 -0
- package/dist/kernel/contract-error.d.ts +12 -0
- package/dist/kernel/contract-error.js +14 -0
- package/dist/kernel/contracts.d.ts +139 -0
- package/dist/kernel/contracts.js +92 -0
- package/dist/{spec/domain/service/CloudflareCron.d.ts → kernel/cron.d.ts} +0 -1
- package/dist/{spec/domain/service/CloudflareCron.js → kernel/cron.js} +1 -6
- package/dist/kernel/dialect/common.d.ts +39 -0
- package/dist/kernel/dialect/common.js +6 -0
- package/dist/kernel/dialect/postgres.d.ts +16 -0
- package/dist/kernel/dialect/postgres.js +18 -0
- package/dist/kernel/dialect/sqlite.d.ts +20 -0
- package/dist/kernel/dialect/sqlite.js +34 -0
- package/dist/kernel/driver/bun-sqlite.d.ts +19 -0
- package/dist/kernel/driver/bun-sqlite.js +77 -0
- package/dist/kernel/driver/d1.d.ts +24 -0
- package/dist/kernel/driver/d1.js +22 -0
- package/dist/kernel/driver/postgres.d.ts +25 -0
- package/dist/kernel/driver/postgres.js +95 -0
- package/dist/kernel/driver/transaction-context.d.ts +10 -0
- package/dist/kernel/driver/transaction-context.js +29 -0
- package/dist/kernel/email.d.ts +28 -0
- package/dist/{auth/emailTemplates.js → kernel/email.js} +13 -2
- package/dist/kernel/host-access.d.ts +10 -0
- package/dist/kernel/host-access.js +65 -0
- package/dist/kernel/host-caller.d.ts +38 -0
- package/dist/kernel/host-caller.js +55 -0
- package/dist/kernel/json-body.d.ts +4 -0
- package/dist/kernel/json-body.js +44 -0
- package/dist/kernel/mcp-apps.d.ts +49 -0
- package/dist/kernel/mcp-apps.js +40 -0
- package/dist/kernel/mcp-call.d.ts +5 -0
- package/dist/kernel/mcp-call.js +25 -0
- package/dist/kernel/mcp-handler.js +288 -0
- package/dist/kernel/mcp.d.ts +101 -0
- package/dist/kernel/mcp.js +25 -0
- package/dist/kernel/media.d.ts +27 -0
- package/dist/kernel/media.js +216 -0
- package/dist/kernel/paging.d.ts +55 -0
- package/dist/kernel/paging.js +95 -0
- package/dist/kernel/publishing.d.ts +4 -0
- package/dist/kernel/publishing.js +16 -0
- package/dist/{cloudflare/r2Media.d.ts → kernel/r2-media.d.ts} +4 -5
- package/dist/kernel/r2-media.js +78 -0
- package/dist/kernel/rest-dispatch.js +38 -0
- package/dist/kernel/rest-router.js +63 -0
- package/dist/kernel/rest.d.ts +58 -0
- package/dist/kernel/rest.js +41 -0
- package/dist/kernel/scalars.d.ts +6 -0
- package/dist/kernel/scalars.js +43 -0
- package/dist/kernel/search.js +5 -0
- package/dist/{core/site.d.ts → kernel/site-types.d.ts} +38 -9
- package/dist/kernel/site-types.js +1 -0
- package/dist/kernel/site.d.ts +41 -0
- package/dist/kernel/site.js +32 -0
- package/dist/kernel/store.d.ts +165 -0
- package/dist/kernel/store.js +257 -0
- package/dist/kernel/surface.d.ts +10 -0
- package/dist/kernel/surface.js +19 -0
- package/dist/kernel/sweep.d.ts +17 -0
- package/dist/kernel/sweep.js +27 -0
- package/dist/kernel/translations.d.ts +1 -0
- package/dist/kernel/translations.js +13 -0
- package/dist/kernel/user-caller.d.ts +31 -0
- package/dist/kernel/user-caller.js +67 -0
- package/dist/kernel/user-field-name.js +3 -0
- package/dist/kernel/user-fields.d.ts +34 -0
- package/dist/kernel/user-fields.js +71 -0
- package/dist/kernel/validation.d.ts +15 -0
- package/dist/kernel/validation.js +54 -0
- package/dist/kernel/web-gateway.js +68 -0
- package/dist/kernel/web-head.js +15 -0
- package/dist/kernel/web-response.js +8 -0
- package/dist/kernel/web.d.ts +75 -0
- package/dist/kernel/web.js +155 -0
- package/dist/kernel/where.js +27 -0
- package/dist/testing/index.d.ts +1 -37
- package/dist/testing/index.js +1 -43
- package/dist/usecase/adminBindings.js +142 -0
- package/dist/usecase/adminDescriptors.js +153 -0
- package/dist/usecase/generate.js +164 -0
- package/dist/usecase/handlers.js +21 -0
- package/dist/usecase/mcp-media.js +17 -0
- package/dist/usecase/mcp.js +96 -0
- package/dist/usecase/paging.js +72 -0
- package/dist/usecase/publishing.js +63 -0
- package/dist/usecase/refusals.js +27 -0
- package/dist/usecase/rest.js +54 -0
- package/dist/usecase/search.js +7 -0
- package/dist/usecase/site.js +40 -0
- package/dist/usecase/stores.js +62 -0
- package/dist/usecase/translations.js +78 -0
- package/dist/usecase/ttl.js +20 -0
- package/dist/usecase/validation.js +132 -0
- package/dist/usecase/web.js +22 -0
- package/docs/examples/README.md +31 -16
- package/docs/examples/app-shell/README.md +48 -0
- package/docs/examples/app-shell/package.json +34 -0
- package/docs/examples/app-shell/pnpm-workspace.yaml +8 -0
- package/docs/examples/app-shell/smoke-kit.mjs +100 -0
- package/docs/examples/app-shell/src/admin.ts +10 -0
- package/docs/examples/app-shell/src/auth.ts +55 -0
- package/docs/examples/app-shell/src/handlers.ts +5 -0
- package/docs/examples/app-shell/src/index.ts +4 -0
- package/docs/examples/app-shell/src/routes.ts +13 -0
- package/docs/examples/app-shell/src/schedule.ts +8 -0
- package/docs/examples/app-shell/src/service.ts +70 -0
- package/docs/examples/app-shell/src/sign-in.ts +41 -0
- package/docs/examples/app-shell/src/signup.ts +8 -0
- package/docs/examples/{reference-service → app-shell}/tsconfig.json +2 -1
- package/docs/examples/app-shell/worker-configuration.d.ts +22 -0
- package/docs/examples/app-shell/wrangler.jsonc +61 -0
- package/docs/examples/club-events/README.md +60 -0
- package/docs/examples/club-events/manifests/club-events.yaml +225 -0
- package/docs/examples/club-events/smoke.mjs +121 -0
- package/docs/examples/club-events/src/handlers.ts +25 -0
- package/docs/examples/club-events/src/signup.ts +9 -0
- package/docs/examples/generated-web/README.md +74 -0
- package/docs/examples/generated-web/posts.yaml +38 -0
- package/docs/examples/generated-web/seed.sql +6 -0
- package/docs/examples/generated-web/src/worker.ts +43 -0
- package/docs/examples/generated-web/tsconfig.json +8 -0
- package/docs/examples/generated-web/wrangler.jsonc +7 -0
- package/docs/examples/purchasing/.dev.vars.example +6 -0
- package/docs/examples/purchasing/README.md +90 -0
- package/docs/examples/purchasing/manifests/purchasing.yaml +341 -0
- package/docs/examples/purchasing/seed.sql +4 -0
- package/docs/examples/purchasing/smoke.mjs +171 -0
- package/docs/examples/purchasing/src/admin.ts +12 -0
- package/docs/examples/purchasing/src/handlers.ts +33 -0
- package/docs/examples/purchasing/src/notify.ts +29 -0
- package/docs/examples/purchasing/src/requests-page.ts +57 -0
- package/docs/examples/purchasing/src/routes.ts +53 -0
- package/docs/examples/purchasing/src/schedule.ts +31 -0
- package/docs/examples/purchasing/src/signup.ts +5 -0
- package/docs/examples/purchasing/src/supplier.ts +32 -0
- package/docs/examples/purchasing/wrangler.jsonc +68 -0
- package/docs/examples/recipes/README.md +58 -0
- package/docs/examples/recipes/manifests/recipes.yaml +75 -0
- package/docs/examples/recipes/smoke.mjs +102 -0
- package/docs/examples/recipes/src/media.ts +13 -0
- package/docs/examples/recipes/src/pages.ts +99 -0
- package/docs/examples/recipes/src/routes.ts +71 -0
- package/docs/examples/recipes/src/site-config.ts +12 -0
- package/docs/examples/recipes/wrangler.jsonc +73 -0
- package/docs/handbook/cloudflare/authentication.md +142 -212
- package/docs/handbook/cloudflare/chatgpt-sites.md +4 -113
- package/docs/handbook/cloudflare/deploy-and-operate.md +20 -103
- package/docs/handbook/cloudflare/media-r2.md +62 -133
- package/docs/handbook/cloudflare/service-entry.md +180 -116
- package/docs/handbook/concepts/authorization.md +10 -123
- package/docs/handbook/concepts/four-atoms.md +9 -92
- package/docs/handbook/concepts/lifecycle-and-locales.md +9 -80
- package/docs/handbook/concepts/mcp-and-agents.md +10 -141
- package/docs/handbook/concepts/procedures-and-triggers.md +5 -162
- package/docs/handbook/concepts/runtime-and-adapters.md +15 -183
- package/docs/handbook/concepts/views.md +10 -109
- package/docs/handbook/examples/hub.md +2 -18
- package/docs/handbook/guides/adapter-guide.md +11 -0
- package/docs/handbook/guides/admin-extensions.md +20 -0
- package/docs/handbook/guides/admin-ui.md +5 -163
- package/docs/handbook/guides/agent-setup.md +5 -18
- package/docs/handbook/guides/email.md +86 -0
- package/docs/handbook/guides/mcp-apps.md +44 -0
- package/docs/handbook/guides/native-admin.md +298 -0
- package/docs/handbook/guides/native-execution.md +132 -0
- package/docs/handbook/guides/oauth.md +105 -0
- package/docs/handbook/guides/postgres-adapters.md +56 -0
- package/docs/handbook/guides/public-pages.md +53 -0
- package/docs/handbook/guides/size-and-startup.md +9 -0
- package/docs/handbook/guides/typed-queries.md +39 -102
- package/docs/handbook/navigation.json +164 -30
- package/docs/handbook/reference/admin-descriptors.md +88 -0
- package/docs/handbook/reference/authorization.md +44 -52
- package/docs/handbook/reference/describe.md +56 -0
- package/docs/handbook/reference/diagnostics.md +15 -78
- package/docs/handbook/reference/features.md +45 -53
- package/docs/handbook/reference/manifest.md +6 -69
- package/docs/handbook/reference/procedure.md +9 -117
- package/docs/handbook/reference/schema.md +65 -172
- package/docs/handbook/reference/site-config.md +5 -65
- package/docs/handbook/reference/surface.md +279 -93
- package/docs/handbook/reference/trigger.md +24 -93
- package/docs/handbook/reference/view.md +32 -158
- package/docs/handbook/releases/index.md +124 -15
- package/docs/handbook/start/overview.md +9 -56
- package/docs/handbook/start/project-and-cli.md +40 -141
- package/docs/handbook/start/quickstart-worker.md +38 -116
- package/docs/skills/develop/SKILL.md +34 -117
- package/docs/skills/develop/mcp-app.md +37 -77
- package/docs/skills/integrate/SKILL.md +42 -84
- package/docs/skills/media-gc/SKILL.md +14 -3
- package/docs/skills/provision/SKILL.md +25 -88
- package/docs/skills/update/SKILL.md +19 -40
- package/docs/source/scripts/postgres-adapter.ts +101 -0
- package/docs/upgrade-0.1-to-0.2.md +26 -10
- package/package.json +97 -112
- package/skills/.keep +0 -0
- package/skills/README.md +72 -0
- package/skills/mantle/SKILL.md +135 -0
- package/skills/mantle/references/local-testing.md +11 -0
- package/skills/mantle/references/web.md +41 -0
- package/skills/mantle/references/website.md +47 -0
- package/dist/admin/consent.d.ts +0 -17
- package/dist/admin/consent.d.ts.map +0 -1
- package/dist/admin/consent.js +0 -17
- package/dist/admin/consent.js.map +0 -1
- package/dist/admin/createAdminSurface.d.ts +0 -22
- package/dist/admin/createAdminSurface.d.ts.map +0 -1
- package/dist/admin/createAdminSurface.js +0 -592
- package/dist/admin/createAdminSurface.js.map +0 -1
- package/dist/admin/design.d.ts +0 -7
- package/dist/admin/design.d.ts.map +0 -1
- package/dist/admin/design.js +0 -18
- package/dist/admin/design.js.map +0 -1
- package/dist/admin/developerConsole.d.ts +0 -267
- package/dist/admin/developerConsole.d.ts.map +0 -1
- package/dist/admin/developerConsole.js +0 -136
- package/dist/admin/developerConsole.js.map +0 -1
- package/dist/admin/identity.d.ts +0 -62
- package/dist/admin/identity.d.ts.map +0 -1
- package/dist/admin/identity.js +0 -7
- package/dist/admin/identity.js.map +0 -1
- package/dist/admin/index.d.ts +0 -6
- package/dist/admin/index.d.ts.map +0 -1
- package/dist/admin/index.js +0 -6
- package/dist/admin/index.js.map +0 -1
- package/dist/admin/procedureFlow.d.ts +0 -38
- package/dist/admin/procedureFlow.d.ts.map +0 -1
- package/dist/admin/procedureFlow.js +0 -188
- package/dist/admin/procedureFlow.js.map +0 -1
- package/dist/auth/ConsoleEmailSender.d.ts +0 -15
- package/dist/auth/ConsoleEmailSender.d.ts.map +0 -1
- package/dist/auth/ConsoleEmailSender.js +0 -19
- package/dist/auth/ConsoleEmailSender.js.map +0 -1
- package/dist/auth/appleClientSecret.d.ts +0 -75
- package/dist/auth/appleClientSecret.d.ts.map +0 -1
- package/dist/auth/appleClientSecret.js +0 -116
- package/dist/auth/appleClientSecret.js.map +0 -1
- package/dist/auth/buildAuth.d.ts +0 -4566
- package/dist/auth/buildAuth.d.ts.map +0 -1
- package/dist/auth/buildAuth.js +0 -311
- package/dist/auth/buildAuth.js.map +0 -1
- package/dist/auth/callerResolver.d.ts +0 -48
- package/dist/auth/callerResolver.d.ts.map +0 -1
- package/dist/auth/callerResolver.js +0 -49
- package/dist/auth/callerResolver.js.map +0 -1
- package/dist/auth/createAuthRoutes.d.ts +0 -22
- package/dist/auth/createAuthRoutes.d.ts.map +0 -1
- package/dist/auth/createAuthRoutes.js.map +0 -1
- package/dist/auth/createMantleAuth.d.ts +0 -3
- package/dist/auth/createMantleAuth.d.ts.map +0 -1
- package/dist/auth/createMantleAuth.js +0 -503
- package/dist/auth/createMantleAuth.js.map +0 -1
- package/dist/auth/db.d.ts +0 -17
- package/dist/auth/db.d.ts.map +0 -1
- package/dist/auth/db.js +0 -24
- package/dist/auth/db.js.map +0 -1
- package/dist/auth/emailTemplates.d.ts +0 -7
- package/dist/auth/emailTemplates.d.ts.map +0 -1
- package/dist/auth/emailTemplates.js.map +0 -1
- package/dist/auth/index.d.ts +0 -9
- package/dist/auth/index.d.ts.map +0 -1
- package/dist/auth/index.js +0 -7
- package/dist/auth/index.js.map +0 -1
- package/dist/auth/methods.d.ts +0 -717
- package/dist/auth/methods.d.ts.map +0 -1
- package/dist/auth/methods.js +0 -321
- package/dist/auth/methods.js.map +0 -1
- package/dist/auth/oauthTokens.d.ts +0 -24
- package/dist/auth/oauthTokens.d.ts.map +0 -1
- package/dist/auth/oauthTokens.js +0 -146
- package/dist/auth/oauthTokens.js.map +0 -1
- package/dist/auth/setupIncomplete.d.ts +0 -16
- package/dist/auth/setupIncomplete.d.ts.map +0 -1
- package/dist/auth/setupIncomplete.js +0 -50
- package/dist/auth/setupIncomplete.js.map +0 -1
- package/dist/auth/types.d.ts +0 -440
- package/dist/auth/types.d.ts.map +0 -1
- package/dist/auth/types.js +0 -10
- package/dist/auth/types.js.map +0 -1
- package/dist/bun/index.d.ts +0 -65
- package/dist/bun/index.d.ts.map +0 -1
- package/dist/bun/index.js +0 -130
- package/dist/bun/index.js.map +0 -1
- package/dist/cli/emitModule.d.ts +0 -7
- package/dist/cli/emitModule.d.ts.map +0 -1
- package/dist/cli/emitModule.js +0 -127
- package/dist/cli/emitModule.js.map +0 -1
- package/dist/cli/generate.d.ts +0 -8
- package/dist/cli/generate.d.ts.map +0 -1
- package/dist/cli/generate.js +0 -391
- package/dist/cli/generate.js.map +0 -1
- package/dist/cli/main.d.ts +0 -3
- package/dist/cli/main.d.ts.map +0 -1
- package/dist/cli/main.js +0 -21
- package/dist/cli/main.js.map +0 -1
- package/dist/cli/preset.d.ts +0 -18
- package/dist/cli/preset.d.ts.map +0 -1
- package/dist/cli/preset.js +0 -353
- package/dist/cli/preset.js.map +0 -1
- package/dist/cloudflare/index.d.ts +0 -21
- package/dist/cloudflare/index.d.ts.map +0 -1
- package/dist/cloudflare/index.js +0 -14
- package/dist/cloudflare/index.js.map +0 -1
- package/dist/cloudflare/r2Media.d.ts.map +0 -1
- package/dist/cloudflare/r2Media.js +0 -69
- package/dist/cloudflare/r2Media.js.map +0 -1
- package/dist/core/caller.d.ts +0 -35
- package/dist/core/caller.d.ts.map +0 -1
- package/dist/core/caller.js +0 -3
- package/dist/core/caller.js.map +0 -1
- package/dist/core/createMantle.d.ts +0 -22
- package/dist/core/createMantle.d.ts.map +0 -1
- package/dist/core/createMantle.js +0 -117
- package/dist/core/createMantle.js.map +0 -1
- package/dist/core/dialect.d.ts +0 -41
- package/dist/core/dialect.d.ts.map +0 -1
- package/dist/core/dialect.js +0 -7
- package/dist/core/dialect.js.map +0 -1
- package/dist/core/driver.d.ts +0 -17
- package/dist/core/driver.d.ts.map +0 -1
- package/dist/core/driver.js +0 -2
- package/dist/core/driver.js.map +0 -1
- package/dist/core/email.d.ts +0 -17
- package/dist/core/email.d.ts.map +0 -1
- package/dist/core/email.js +0 -2
- package/dist/core/email.js.map +0 -1
- package/dist/core/index.d.ts +0 -16
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -16
- package/dist/core/index.js.map +0 -1
- package/dist/core/invocation.d.ts +0 -66
- package/dist/core/invocation.d.ts.map +0 -1
- package/dist/core/invocation.js +0 -3
- package/dist/core/invocation.js.map +0 -1
- package/dist/core/observation.d.ts +0 -3
- package/dist/core/observation.d.ts.map +0 -1
- package/dist/core/observation.js +0 -10
- package/dist/core/observation.js.map +0 -1
- package/dist/core/runtime/auth.d.ts +0 -9
- package/dist/core/runtime/auth.d.ts.map +0 -1
- package/dist/core/runtime/auth.js +0 -39
- package/dist/core/runtime/auth.js.map +0 -1
- package/dist/core/runtime/createRuntime.d.ts +0 -23
- package/dist/core/runtime/createRuntime.d.ts.map +0 -1
- package/dist/core/runtime/createRuntime.js +0 -214
- package/dist/core/runtime/createRuntime.js.map +0 -1
- package/dist/core/runtime/verifyPlan.d.ts +0 -34
- package/dist/core/runtime/verifyPlan.d.ts.map +0 -1
- package/dist/core/runtime/verifyPlan.js +0 -301
- package/dist/core/runtime/verifyPlan.js.map +0 -1
- package/dist/core/service.d.ts +0 -45
- package/dist/core/service.d.ts.map +0 -1
- package/dist/core/service.js +0 -2
- package/dist/core/service.js.map +0 -1
- package/dist/core/site.d.ts.map +0 -1
- package/dist/core/site.js +0 -2
- package/dist/core/site.js.map +0 -1
- package/dist/core/siteConfig.d.ts +0 -5
- package/dist/core/siteConfig.d.ts.map +0 -1
- package/dist/core/siteConfig.js +0 -24
- package/dist/core/siteConfig.js.map +0 -1
- package/dist/core/sql/allowlist.d.ts +0 -65
- package/dist/core/sql/allowlist.d.ts.map +0 -1
- package/dist/core/sql/allowlist.js +0 -705
- package/dist/core/sql/allowlist.js.map +0 -1
- package/dist/core/sql/ast.d.ts +0 -24
- package/dist/core/sql/ast.d.ts.map +0 -1
- package/dist/core/sql/ast.js +0 -32
- package/dist/core/sql/ast.js.map +0 -1
- package/dist/core/sql/compile.d.ts +0 -50
- package/dist/core/sql/compile.d.ts.map +0 -1
- package/dist/core/sql/compile.js +0 -48
- package/dist/core/sql/compile.js.map +0 -1
- package/dist/core/sql/policy.d.ts +0 -121
- package/dist/core/sql/policy.d.ts.map +0 -1
- package/dist/core/sql/policy.js +0 -379
- package/dist/core/sql/policy.js.map +0 -1
- package/dist/core/sql/positions.d.ts +0 -30
- package/dist/core/sql/positions.d.ts.map +0 -1
- package/dist/core/sql/positions.js +0 -22
- package/dist/core/sql/positions.js.map +0 -1
- package/dist/core/sql/run.d.ts +0 -76
- package/dist/core/sql/run.d.ts.map +0 -1
- package/dist/core/sql/run.js +0 -267
- package/dist/core/sql/run.js.map +0 -1
- package/dist/core/store/createStore.d.ts +0 -49
- package/dist/core/store/createStore.d.ts.map +0 -1
- package/dist/core/store/createStore.js +0 -227
- package/dist/core/store/createStore.js.map +0 -1
- package/dist/core/store/cursor.d.ts +0 -4
- package/dist/core/store/cursor.d.ts.map +0 -1
- package/dist/core/store/cursor.js +0 -22
- package/dist/core/store/cursor.js.map +0 -1
- package/dist/core/store/json.d.ts +0 -80
- package/dist/core/store/json.d.ts.map +0 -1
- package/dist/core/store/json.js +0 -342
- package/dist/core/store/json.js.map +0 -1
- package/dist/core/store.d.ts +0 -160
- package/dist/core/store.d.ts.map +0 -1
- package/dist/core/store.js +0 -2
- package/dist/core/store.js.map +0 -1
- package/dist/core/wire.d.ts +0 -20
- package/dist/core/wire.d.ts.map +0 -1
- package/dist/core/wire.js +0 -84
- package/dist/core/wire.js.map +0 -1
- package/dist/core/withCaller.d.ts +0 -24
- package/dist/core/withCaller.d.ts.map +0 -1
- package/dist/core/withCaller.js +0 -35
- package/dist/core/withCaller.js.map +0 -1
- package/dist/d1/adapter.d.ts +0 -12
- package/dist/d1/adapter.d.ts.map +0 -1
- package/dist/d1/adapter.js +0 -23
- package/dist/d1/adapter.js.map +0 -1
- package/dist/d1/codec.d.ts +0 -14
- package/dist/d1/codec.d.ts.map +0 -1
- package/dist/d1/codec.js +0 -136
- package/dist/d1/codec.js.map +0 -1
- package/dist/d1/compile/index.d.ts +0 -9
- package/dist/d1/compile/index.d.ts.map +0 -1
- package/dist/d1/compile/index.js +0 -9
- package/dist/d1/compile/index.js.map +0 -1
- package/dist/d1/dialect.d.ts +0 -4
- package/dist/d1/dialect.d.ts.map +0 -1
- package/dist/d1/dialect.js +0 -13
- package/dist/d1/dialect.js.map +0 -1
- package/dist/d1/executor.d.ts +0 -13
- package/dist/d1/executor.d.ts.map +0 -1
- package/dist/d1/executor.js +0 -91
- package/dist/d1/executor.js.map +0 -1
- package/dist/d1/index.d.ts +0 -6
- package/dist/d1/index.d.ts.map +0 -1
- package/dist/d1/index.js +0 -6
- package/dist/d1/index.js.map +0 -1
- package/dist/d1/lower.d.ts +0 -8
- package/dist/d1/lower.d.ts.map +0 -1
- package/dist/d1/lower.js +0 -167
- package/dist/d1/lower.js.map +0 -1
- package/dist/d1/media.d.ts +0 -5
- package/dist/d1/media.d.ts.map +0 -1
- package/dist/d1/media.js +0 -157
- package/dist/d1/media.js.map +0 -1
- package/dist/d1/migrations.d.ts +0 -12
- package/dist/d1/migrations.d.ts.map +0 -1
- package/dist/d1/migrations.js +0 -111
- package/dist/d1/migrations.js.map +0 -1
- package/dist/d1/print.d.ts +0 -28
- package/dist/d1/print.d.ts.map +0 -1
- package/dist/d1/print.js +0 -54
- package/dist/d1/print.js.map +0 -1
- package/dist/d1/site.d.ts +0 -17
- package/dist/d1/site.d.ts.map +0 -1
- package/dist/d1/site.js +0 -63
- package/dist/d1/site.js.map +0 -1
- package/dist/d1/storage.d.ts +0 -34
- package/dist/d1/storage.d.ts.map +0 -1
- package/dist/d1/storage.js +0 -288
- package/dist/d1/storage.js.map +0 -1
- package/dist/d1/tz.d.ts +0 -21
- package/dist/d1/tz.d.ts.map +0 -1
- package/dist/d1/tz.js +0 -54
- package/dist/d1/tz.js.map +0 -1
- package/dist/d1/validator.d.ts +0 -10
- package/dist/d1/validator.d.ts.map +0 -1
- package/dist/d1/validator.js +0 -33
- package/dist/d1/validator.js.map +0 -1
- package/dist/mcp/apps.d.ts +0 -43
- package/dist/mcp/apps.d.ts.map +0 -1
- package/dist/mcp/apps.js +0 -57
- package/dist/mcp/apps.js.map +0 -1
- package/dist/mcp/catalog.d.ts +0 -55
- package/dist/mcp/catalog.d.ts.map +0 -1
- package/dist/mcp/catalog.js +0 -81
- package/dist/mcp/catalog.js.map +0 -1
- package/dist/mcp/createMcpSurface.d.ts +0 -60
- package/dist/mcp/createMcpSurface.d.ts.map +0 -1
- package/dist/mcp/createMcpSurface.js +0 -182
- package/dist/mcp/createMcpSurface.js.map +0 -1
- package/dist/mcp/index.d.ts +0 -4
- package/dist/mcp/index.d.ts.map +0 -1
- package/dist/mcp/index.js +0 -4
- package/dist/mcp/index.js.map +0 -1
- package/dist/mcp/media.d.ts +0 -9
- package/dist/mcp/media.d.ts.map +0 -1
- package/dist/mcp/media.js +0 -33
- package/dist/mcp/media.js.map +0 -1
- package/dist/postgres/adapter.d.ts +0 -20
- package/dist/postgres/adapter.d.ts.map +0 -1
- package/dist/postgres/adapter.js +0 -44
- package/dist/postgres/adapter.js.map +0 -1
- package/dist/postgres/codec.d.ts +0 -13
- package/dist/postgres/codec.d.ts.map +0 -1
- package/dist/postgres/codec.js +0 -110
- package/dist/postgres/codec.js.map +0 -1
- package/dist/postgres/compile/index.d.ts +0 -9
- package/dist/postgres/compile/index.d.ts.map +0 -1
- package/dist/postgres/compile/index.js +0 -9
- package/dist/postgres/compile/index.js.map +0 -1
- package/dist/postgres/driver.d.ts +0 -92
- package/dist/postgres/driver.d.ts.map +0 -1
- package/dist/postgres/driver.js +0 -110
- package/dist/postgres/driver.js.map +0 -1
- package/dist/postgres/executor.d.ts +0 -20
- package/dist/postgres/executor.d.ts.map +0 -1
- package/dist/postgres/executor.js +0 -69
- package/dist/postgres/executor.js.map +0 -1
- package/dist/postgres/index.d.ts +0 -7
- package/dist/postgres/index.d.ts.map +0 -1
- package/dist/postgres/index.js +0 -7
- package/dist/postgres/index.js.map +0 -1
- package/dist/postgres/lower.d.ts +0 -6
- package/dist/postgres/lower.d.ts.map +0 -1
- package/dist/postgres/lower.js +0 -157
- package/dist/postgres/lower.js.map +0 -1
- package/dist/postgres/print.d.ts +0 -11
- package/dist/postgres/print.d.ts.map +0 -1
- package/dist/postgres/print.js +0 -121
- package/dist/postgres/print.js.map +0 -1
- package/dist/postgres/storage.d.ts +0 -19
- package/dist/postgres/storage.d.ts.map +0 -1
- package/dist/postgres/storage.js +0 -201
- package/dist/postgres/storage.js.map +0 -1
- package/dist/postgres/textRows.d.ts +0 -10
- package/dist/postgres/textRows.d.ts.map +0 -1
- package/dist/postgres/textRows.js +0 -44
- package/dist/postgres/textRows.js.map +0 -1
- package/dist/postgres/validator.d.ts +0 -12
- package/dist/postgres/validator.d.ts.map +0 -1
- package/dist/postgres/validator.js +0 -46
- package/dist/postgres/validator.js.map +0 -1
- package/dist/spec/domain/index.d.ts +0 -3
- package/dist/spec/domain/index.d.ts.map +0 -1
- package/dist/spec/domain/index.js +0 -3
- package/dist/spec/domain/index.js.map +0 -1
- package/dist/spec/domain/model/ContentState.d.ts +0 -8
- package/dist/spec/domain/model/ContentState.d.ts.map +0 -1
- package/dist/spec/domain/model/ContentState.js +0 -7
- package/dist/spec/domain/model/ContentState.js.map +0 -1
- package/dist/spec/domain/model/Entry.d.ts +0 -29
- package/dist/spec/domain/model/Entry.d.ts.map +0 -1
- package/dist/spec/domain/model/Entry.js +0 -16
- package/dist/spec/domain/model/Entry.js.map +0 -1
- package/dist/spec/domain/model/Locale.d.ts +0 -30
- package/dist/spec/domain/model/Locale.d.ts.map +0 -1
- package/dist/spec/domain/model/Locale.js +0 -33
- package/dist/spec/domain/model/Locale.js.map +0 -1
- package/dist/spec/domain/model/ManifestGrammar.d.ts.map +0 -1
- package/dist/spec/domain/model/ManifestGrammar.js +0 -149
- package/dist/spec/domain/model/ManifestGrammar.js.map +0 -1
- package/dist/spec/domain/model/MediaMimeAccept.d.ts +0 -55
- package/dist/spec/domain/model/MediaMimeAccept.d.ts.map +0 -1
- package/dist/spec/domain/model/MediaMimeAccept.js +0 -90
- package/dist/spec/domain/model/MediaMimeAccept.js.map +0 -1
- package/dist/spec/domain/model/RuntimePlan.d.ts.map +0 -1
- package/dist/spec/domain/model/RuntimePlan.js +0 -4
- package/dist/spec/domain/model/RuntimePlan.js.map +0 -1
- package/dist/spec/domain/model/SiteConfig.d.ts +0 -173
- package/dist/spec/domain/model/SiteConfig.d.ts.map +0 -1
- package/dist/spec/domain/model/SiteConfig.js +0 -13
- package/dist/spec/domain/model/SiteConfig.js.map +0 -1
- package/dist/spec/domain/model/SqlIr.d.ts.map +0 -1
- package/dist/spec/domain/model/SqlIr.js +0 -95
- package/dist/spec/domain/model/SqlIr.js.map +0 -1
- package/dist/spec/domain/model/index.d.ts +0 -14
- package/dist/spec/domain/model/index.d.ts.map +0 -1
- package/dist/spec/domain/model/index.js +0 -14
- package/dist/spec/domain/model/index.js.map +0 -1
- package/dist/spec/domain/service/CloudflareCron.d.ts.map +0 -1
- package/dist/spec/domain/service/CloudflareCron.js.map +0 -1
- package/dist/spec/domain/service/CrossSchemaChecker.d.ts +0 -34
- package/dist/spec/domain/service/CrossSchemaChecker.d.ts.map +0 -1
- package/dist/spec/domain/service/CrossSchemaChecker.js +0 -114
- package/dist/spec/domain/service/CrossSchemaChecker.js.map +0 -1
- package/dist/spec/domain/service/EntryDataValidator.d.ts +0 -56
- package/dist/spec/domain/service/EntryDataValidator.d.ts.map +0 -1
- package/dist/spec/domain/service/EntryDataValidator.js +0 -88
- package/dist/spec/domain/service/EntryDataValidator.js.map +0 -1
- package/dist/spec/domain/service/JsonSchemaToZod.d.ts +0 -29
- package/dist/spec/domain/service/JsonSchemaToZod.d.ts.map +0 -1
- package/dist/spec/domain/service/JsonSchemaToZod.js +0 -156
- package/dist/spec/domain/service/JsonSchemaToZod.js.map +0 -1
- package/dist/spec/domain/service/LifecycleStateMachine.d.ts +0 -75
- package/dist/spec/domain/service/LifecycleStateMachine.d.ts.map +0 -1
- package/dist/spec/domain/service/LifecycleStateMachine.js +0 -76
- package/dist/spec/domain/service/LifecycleStateMachine.js.map +0 -1
- package/dist/spec/domain/service/LocaleCanonicalizer.d.ts +0 -29
- package/dist/spec/domain/service/LocaleCanonicalizer.d.ts.map +0 -1
- package/dist/spec/domain/service/LocaleCanonicalizer.js +0 -96
- package/dist/spec/domain/service/LocaleCanonicalizer.js.map +0 -1
- package/dist/spec/domain/service/ManifestFieldChecks.d.ts +0 -60
- package/dist/spec/domain/service/ManifestFieldChecks.d.ts.map +0 -1
- package/dist/spec/domain/service/ManifestFieldChecks.js +0 -116
- package/dist/spec/domain/service/ManifestFieldChecks.js.map +0 -1
- package/dist/spec/domain/service/ManifestGraphValidator.d.ts +0 -15
- package/dist/spec/domain/service/ManifestGraphValidator.d.ts.map +0 -1
- package/dist/spec/domain/service/ManifestGraphValidator.js +0 -225
- package/dist/spec/domain/service/ManifestGraphValidator.js.map +0 -1
- package/dist/spec/domain/service/ManifestLinker.d.ts +0 -45
- package/dist/spec/domain/service/ManifestLinker.d.ts.map +0 -1
- package/dist/spec/domain/service/ManifestLinker.js +0 -92
- package/dist/spec/domain/service/ManifestLinker.js.map +0 -1
- package/dist/spec/domain/service/ManifestLocaleTrimmer.d.ts +0 -16
- package/dist/spec/domain/service/ManifestLocaleTrimmer.d.ts.map +0 -1
- package/dist/spec/domain/service/ManifestLocaleTrimmer.js +0 -76
- package/dist/spec/domain/service/ManifestLocaleTrimmer.js.map +0 -1
- package/dist/spec/domain/service/ManifestParser.d.ts +0 -49
- package/dist/spec/domain/service/ManifestParser.d.ts.map +0 -1
- package/dist/spec/domain/service/ManifestParser.js +0 -203
- package/dist/spec/domain/service/ManifestParser.js.map +0 -1
- package/dist/spec/domain/service/ManifestPartition.d.ts +0 -9
- package/dist/spec/domain/service/ManifestPartition.d.ts.map +0 -1
- package/dist/spec/domain/service/ManifestPartition.js +0 -19
- package/dist/spec/domain/service/ManifestPartition.js.map +0 -1
- package/dist/spec/domain/service/ManifestPathDiagnoser.d.ts +0 -33
- package/dist/spec/domain/service/ManifestPathDiagnoser.d.ts.map +0 -1
- package/dist/spec/domain/service/ManifestPathDiagnoser.js +0 -43
- package/dist/spec/domain/service/ManifestPathDiagnoser.js.map +0 -1
- package/dist/spec/domain/service/ManifestSourceSpans.d.ts +0 -10
- package/dist/spec/domain/service/ManifestSourceSpans.d.ts.map +0 -1
- package/dist/spec/domain/service/ManifestSourceSpans.js +0 -76
- package/dist/spec/domain/service/ManifestSourceSpans.js.map +0 -1
- package/dist/spec/domain/service/McpToolNaming.d.ts +0 -25
- package/dist/spec/domain/service/McpToolNaming.d.ts.map +0 -1
- package/dist/spec/domain/service/McpToolNaming.js +0 -50
- package/dist/spec/domain/service/McpToolNaming.js.map +0 -1
- package/dist/spec/domain/service/PlanFingerprint.d.ts.map +0 -1
- package/dist/spec/domain/service/PlanFingerprint.js +0 -14
- package/dist/spec/domain/service/PlanFingerprint.js.map +0 -1
- package/dist/spec/domain/service/ProcedureViewSpecChecks.d.ts +0 -4
- package/dist/spec/domain/service/ProcedureViewSpecChecks.d.ts.map +0 -1
- package/dist/spec/domain/service/ProcedureViewSpecChecks.js +0 -211
- package/dist/spec/domain/service/ProcedureViewSpecChecks.js.map +0 -1
- package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts +0 -42
- package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts.map +0 -1
- package/dist/spec/domain/service/SchemaAdminUiChecker.js +0 -289
- package/dist/spec/domain/service/SchemaAdminUiChecker.js.map +0 -1
- package/dist/spec/domain/service/SchemaIndexChecker.d.ts +0 -33
- package/dist/spec/domain/service/SchemaIndexChecker.d.ts.map +0 -1
- package/dist/spec/domain/service/SchemaIndexChecker.js +0 -256
- package/dist/spec/domain/service/SchemaIndexChecker.js.map +0 -1
- package/dist/spec/domain/service/SchemaSearchChecker.d.ts +0 -11
- package/dist/spec/domain/service/SchemaSearchChecker.d.ts.map +0 -1
- package/dist/spec/domain/service/SchemaSearchChecker.js +0 -78
- package/dist/spec/domain/service/SchemaSearchChecker.js.map +0 -1
- package/dist/spec/domain/service/SchemaSpecChecks.d.ts +0 -31
- package/dist/spec/domain/service/SchemaSpecChecks.d.ts.map +0 -1
- package/dist/spec/domain/service/SchemaSpecChecks.js +0 -445
- package/dist/spec/domain/service/SchemaSpecChecks.js.map +0 -1
- package/dist/spec/domain/service/SiteDefaultsValidator.d.ts +0 -39
- package/dist/spec/domain/service/SiteDefaultsValidator.d.ts.map +0 -1
- package/dist/spec/domain/service/SiteDefaultsValidator.js +0 -194
- package/dist/spec/domain/service/SiteDefaultsValidator.js.map +0 -1
- package/dist/spec/domain/service/SqlClassify.d.ts +0 -19
- package/dist/spec/domain/service/SqlClassify.d.ts.map +0 -1
- package/dist/spec/domain/service/SqlClassify.js +0 -42
- package/dist/spec/domain/service/SqlClassify.js.map +0 -1
- package/dist/spec/domain/service/SqlRefusal.d.ts +0 -16
- package/dist/spec/domain/service/SqlRefusal.d.ts.map +0 -1
- package/dist/spec/domain/service/SqlRefusal.js +0 -20
- package/dist/spec/domain/service/SqlRefusal.js.map +0 -1
- package/dist/spec/domain/service/SqlTypes.d.ts +0 -40
- package/dist/spec/domain/service/SqlTypes.d.ts.map +0 -1
- package/dist/spec/domain/service/SqlTypes.js +0 -110
- package/dist/spec/domain/service/SqlTypes.js.map +0 -1
- package/dist/spec/domain/service/StaffRoleHierarchy.d.ts +0 -3
- package/dist/spec/domain/service/StaffRoleHierarchy.d.ts.map +0 -1
- package/dist/spec/domain/service/StaffRoleHierarchy.js +0 -19
- package/dist/spec/domain/service/StaffRoleHierarchy.js.map +0 -1
- package/dist/spec/domain/service/TriggerGraphChecks.d.ts +0 -16
- package/dist/spec/domain/service/TriggerGraphChecks.d.ts.map +0 -1
- package/dist/spec/domain/service/TriggerGraphChecks.js +0 -337
- package/dist/spec/domain/service/TriggerGraphChecks.js.map +0 -1
- package/dist/spec/domain/service/TriggerSpecChecks.d.ts +0 -4
- package/dist/spec/domain/service/TriggerSpecChecks.d.ts.map +0 -1
- package/dist/spec/domain/service/TriggerSpecChecks.js +0 -89
- package/dist/spec/domain/service/TriggerSpecChecks.js.map +0 -1
- package/dist/spec/domain/service/ValidatedAdminUiProjection.d.ts +0 -11
- package/dist/spec/domain/service/ValidatedAdminUiProjection.d.ts.map +0 -1
- package/dist/spec/domain/service/ValidatedAdminUiProjection.js +0 -26
- package/dist/spec/domain/service/ValidatedAdminUiProjection.js.map +0 -1
- package/dist/spec/domain/service/ViewAdminUiChecker.d.ts +0 -14
- package/dist/spec/domain/service/ViewAdminUiChecker.d.ts.map +0 -1
- package/dist/spec/domain/service/ViewAdminUiChecker.js +0 -53
- package/dist/spec/domain/service/ViewAdminUiChecker.js.map +0 -1
- package/dist/spec/domain/service/index.d.ts +0 -24
- package/dist/spec/domain/service/index.d.ts.map +0 -1
- package/dist/spec/domain/service/index.js +0 -24
- package/dist/spec/domain/service/index.js.map +0 -1
- package/dist/spec/index.d.ts +0 -10
- package/dist/spec/index.d.ts.map +0 -1
- package/dist/spec/index.js +0 -12
- package/dist/spec/index.js.map +0 -1
- package/dist/spec/infrastructure/cli/parseArgsError.d.ts +0 -16
- package/dist/spec/infrastructure/cli/parseArgsError.d.ts.map +0 -1
- package/dist/spec/infrastructure/cli/parseArgsError.js +0 -34
- package/dist/spec/infrastructure/cli/parseArgsError.js.map +0 -1
- package/dist/spec/infrastructure/index.d.ts +0 -2
- package/dist/spec/infrastructure/index.d.ts.map +0 -1
- package/dist/spec/infrastructure/index.js +0 -2
- package/dist/spec/infrastructure/index.js.map +0 -1
- package/dist/spec/infrastructure/sql/PgQueryParser.d.ts +0 -18
- package/dist/spec/infrastructure/sql/PgQueryParser.d.ts.map +0 -1
- package/dist/spec/infrastructure/sql/PgQueryParser.js +0 -17
- package/dist/spec/infrastructure/sql/PgQueryParser.js.map +0 -1
- package/dist/spec/infrastructure/sql/compilePlan.d.ts +0 -37
- package/dist/spec/infrastructure/sql/compilePlan.d.ts.map +0 -1
- package/dist/spec/infrastructure/sql/compilePlan.js +0 -282
- package/dist/spec/infrastructure/sql/compilePlan.js.map +0 -1
- package/dist/spec/infrastructure/sql/compileSql.d.ts +0 -35
- package/dist/spec/infrastructure/sql/compileSql.d.ts.map +0 -1
- package/dist/spec/infrastructure/sql/compileSql.js +0 -92
- package/dist/spec/infrastructure/sql/compileSql.js.map +0 -1
- package/dist/spec/infrastructure/sql/frontEnd.d.ts +0 -8
- package/dist/spec/infrastructure/sql/frontEnd.d.ts.map +0 -1
- package/dist/spec/infrastructure/sql/frontEnd.js +0 -100
- package/dist/spec/infrastructure/sql/frontEnd.js.map +0 -1
- package/dist/spec/infrastructure/sql/index.d.ts +0 -4
- package/dist/spec/infrastructure/sql/index.d.ts.map +0 -1
- package/dist/spec/infrastructure/sql/index.js +0 -4
- package/dist/spec/infrastructure/sql/index.js.map +0 -1
- package/dist/spec/kernel/diagnostic.d.ts.map +0 -1
- package/dist/spec/kernel/diagnostic.js +0 -296
- package/dist/spec/kernel/diagnostic.js.map +0 -1
- package/dist/spec/kernel/index.d.ts +0 -8
- package/dist/spec/kernel/index.d.ts.map +0 -1
- package/dist/spec/kernel/index.js +0 -8
- package/dist/spec/kernel/index.js.map +0 -1
- package/dist/spec/usecase/EmitTypes.d.ts +0 -22
- package/dist/spec/usecase/EmitTypes.d.ts.map +0 -1
- package/dist/spec/usecase/EmitTypes.js +0 -182
- package/dist/spec/usecase/EmitTypes.js.map +0 -1
- package/dist/spec/usecase/ValidateManifestsUseCase.d.ts +0 -8
- package/dist/spec/usecase/ValidateManifestsUseCase.d.ts.map +0 -1
- package/dist/spec/usecase/ValidateManifestsUseCase.js +0 -101
- package/dist/spec/usecase/ValidateManifestsUseCase.js.map +0 -1
- package/dist/spec/usecase/dto/ValidateManifestsRequest.d.ts +0 -27
- package/dist/spec/usecase/dto/ValidateManifestsRequest.d.ts.map +0 -1
- package/dist/spec/usecase/dto/ValidateManifestsRequest.js +0 -2
- package/dist/spec/usecase/dto/ValidateManifestsRequest.js.map +0 -1
- package/dist/spec/usecase/dto/ValidateManifestsResponse.d.ts +0 -14
- package/dist/spec/usecase/dto/ValidateManifestsResponse.d.ts.map +0 -1
- package/dist/spec/usecase/dto/ValidateManifestsResponse.js +0 -2
- package/dist/spec/usecase/dto/ValidateManifestsResponse.js.map +0 -1
- package/dist/spec/usecase/dto/index.d.ts +0 -3
- package/dist/spec/usecase/dto/index.d.ts.map +0 -1
- package/dist/spec/usecase/dto/index.js +0 -3
- package/dist/spec/usecase/dto/index.js.map +0 -1
- package/dist/spec/usecase/index.d.ts +0 -10
- package/dist/spec/usecase/index.d.ts.map +0 -1
- package/dist/spec/usecase/index.js +0 -10
- package/dist/spec/usecase/index.js.map +0 -1
- package/dist/testing/cases/before-hook.d.ts +0 -4
- package/dist/testing/cases/before-hook.d.ts.map +0 -1
- package/dist/testing/cases/before-hook.js +0 -71
- package/dist/testing/cases/before-hook.js.map +0 -1
- package/dist/testing/cases/corpus.d.ts +0 -12
- package/dist/testing/cases/corpus.d.ts.map +0 -1
- package/dist/testing/cases/corpus.js +0 -91
- package/dist/testing/cases/corpus.js.map +0 -1
- package/dist/testing/cases/policy.d.ts +0 -74
- package/dist/testing/cases/policy.d.ts.map +0 -1
- package/dist/testing/cases/policy.js +0 -142
- package/dist/testing/cases/policy.js.map +0 -1
- package/dist/testing/cases/printer.d.ts +0 -4
- package/dist/testing/cases/printer.d.ts.map +0 -1
- package/dist/testing/cases/printer.js +0 -32
- package/dist/testing/cases/printer.js.map +0 -1
- package/dist/testing/cases/report-view.d.ts +0 -5
- package/dist/testing/cases/report-view.d.ts.map +0 -1
- package/dist/testing/cases/report-view.js +0 -33
- package/dist/testing/cases/report-view.js.map +0 -1
- package/dist/testing/cases/requisition.d.ts +0 -4
- package/dist/testing/cases/requisition.d.ts.map +0 -1
- package/dist/testing/cases/requisition.js +0 -38
- package/dist/testing/cases/requisition.js.map +0 -1
- package/dist/testing/cases/search-places.d.ts +0 -4
- package/dist/testing/cases/search-places.d.ts.map +0 -1
- package/dist/testing/cases/search-places.js +0 -60
- package/dist/testing/cases/search-places.js.map +0 -1
- package/dist/testing/cases/stock.d.ts +0 -4
- package/dist/testing/cases/stock.d.ts.map +0 -1
- package/dist/testing/cases/stock.js +0 -35
- package/dist/testing/cases/stock.js.map +0 -1
- package/dist/testing/cases/store.d.ts +0 -4
- package/dist/testing/cases/store.d.ts.map +0 -1
- package/dist/testing/cases/store.js +0 -100
- package/dist/testing/cases/store.js.map +0 -1
- package/dist/testing/harness.d.ts +0 -94
- package/dist/testing/harness.d.ts.map +0 -1
- package/dist/testing/harness.js +0 -168
- package/dist/testing/harness.js.map +0 -1
- package/dist/testing/index.d.ts.map +0 -1
- package/dist/testing/index.js.map +0 -1
- package/dist/testing/report.d.ts +0 -15
- package/dist/testing/report.d.ts.map +0 -1
- package/dist/testing/report.js +0 -22
- package/dist/testing/report.js.map +0 -1
- package/dist/web/createRestSurface.d.ts +0 -7
- package/dist/web/createRestSurface.d.ts.map +0 -1
- package/dist/web/createRestSurface.js +0 -41
- package/dist/web/createRestSurface.js.map +0 -1
- package/dist/web/index.d.ts +0 -2
- package/dist/web/index.d.ts.map +0 -1
- package/dist/web/index.js +0 -2
- package/dist/web/index.js.map +0 -1
- package/docs/adr/0001-four-atom-manifest-model.md +0 -440
- package/docs/adr/0002-closed-enums-for-bindings.md +0 -253
- package/docs/adr/0007-ai-as-primary-author.md +0 -473
- package/docs/adr/0008-structured-diagnostic-shape.md +0 -338
- package/docs/adr/0009-consumer-supplied-manifests.md +0 -149
- package/docs/adr/0010-locale-and-translates.md +0 -453
- package/docs/adr/0011-adapter-port-spec.md +0 -281
- package/docs/adr/0012-views-as-public-rest.md +0 -161
- package/docs/adr/0013-agent-provisioned-consumer-projects.md +0 -154
- package/docs/adr/0014-auth-better-auth-and-multi-tenant-mcp.md +0 -939
- package/docs/adr/0016-site-semantic-layer.md +0 -70
- package/docs/adr/0017-media-multi-variant-agent-side-optimization.md +0 -181
- package/docs/adr/0018-core-starters-repository-boundary.md +0 -179
- package/docs/adr/0019-sealed-manifest-runtime-pipeline.md +0 -244
- package/docs/adr/0020-builtin-handler-contracts-and-matched-upsert.md +0 -199
- package/docs/adr/0021-retire-starter-scaffolding.md +0 -30
- package/docs/adr/0022-caller-observed-version-occ.md +0 -212
- package/docs/adr/0023-port-failure-contract.md +0 -69
- package/docs/adr/0024-manifest-native-schema-tables.md +0 -264
- package/docs/adr/0025-reserved-native-columns-and-published-only-public-views.md +0 -105
- package/docs/adr/0026-progressive-generate.md +0 -36
- package/docs/adr/0027-scheduled-procedure-triggers.md +0 -31
- package/docs/adr/0028-schema-ttl-expiry.md +0 -33
- package/docs/adr/0029-mcp-apps-interaction-contracts.md +0 -324
- package/docs/adr/0030-store.md +0 -40
- package/docs/adr/0031-host-cloud-core-contract.md +0 -102
- package/docs/adr/0032-store-centric-core-and-service-contract.md +0 -384
- package/docs/adr/0033-storage-converges-to-the-plan.md +0 -92
- package/docs/adr/0034-store-is-authored-as-sql.md +0 -192
- package/docs/adr/0035-sql-dialects.md +0 -154
- package/docs/adr/0036-host-and-dialect.md +0 -65
- package/docs/adr/0037-postgresql-is-the-reference-dialect.md +0 -124
- package/docs/adr/0038-bun-native-host.md +0 -63
- package/docs/adr/README.md +0 -96
- package/docs/adr/adr-lite-803-request-diagnostics.md +0 -38
- package/docs/adr/adr-lite-808-route-readiness.md +0 -47
- package/docs/adr/adr-lite-809-bounded-public-content.md +0 -71
- package/docs/adr/adr-lite-812-native-parity.md +0 -150
- package/docs/adr/adr-lite-823-home-statistics.md +0 -64
- package/docs/adr/adr-lite-842-mcp-authoring.md +0 -30
- package/docs/adr/adr-lite-845-frontend-client.md +0 -38
- package/docs/adr/adr-lite-861-admin-webmcp.md +0 -48
- package/docs/adr/adr-lite-909-admin-ui-kit.md +0 -37
- package/docs/examples/commerce-inventory.md +0 -481
- package/docs/examples/commerce.md +0 -254
- package/docs/examples/guarded-api.md +0 -238
- package/docs/examples/intake-hooks.md +0 -237
- package/docs/examples/intake.md +0 -127
- package/docs/examples/legal-documents.md +0 -218
- package/docs/examples/procurement.md +0 -226
- package/docs/examples/publication.md +0 -211
- package/docs/examples/reference-service/.mantle/generated/mantle.ts +0 -174
- package/docs/examples/reference-service/.mantle/generated/plan.json +0 -1936
- package/docs/examples/reference-service/README.md +0 -33
- package/docs/examples/reference-service/manifests/catalog.yaml +0 -103
- package/docs/examples/reference-service/manifests/orders.yaml +0 -120
- package/docs/examples/reference-service/mantle.config.json +0 -1
- package/docs/examples/reference-service/package.json +0 -27
- package/docs/examples/reference-service/smoke.mjs +0 -160
- package/docs/examples/reference-service/src/handlers.ts +0 -36
- package/docs/examples/reference-service/src/index.ts +0 -33
- package/docs/examples/reference-service/src/service.ts +0 -78
- package/docs/examples/reference-service/wrangler.jsonc +0 -26
- package/docs/examples/reservation.md +0 -142
- /package/docs/examples/{reference-service → app-shell}/.dev.vars.example +0 -0
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
# ADR-0038: Bun is a native host
|
|
2
|
-
|
|
3
|
-
**Status:** Accepted for 0.2.0. Amends ADR-0036's reserved Bun host.
|
|
4
|
-
|
|
5
|
-
## Decision
|
|
6
|
-
|
|
7
|
-
`@aotter/mantle/bun` owns native drivers and Admin files. Core remains host-neutral;
|
|
8
|
-
PostgreSQL retains policy, convergence, SQL printing, SERIALIZABLE retries, timeout
|
|
9
|
-
and error mapping. `host: bun` defaults to `dialect: postgres` on first selection.
|
|
10
|
-
The CLI writes an application-owned Bun.serve entry and service once. Both native
|
|
11
|
-
PostgreSQL and bun:sqlite presets exist; neither imports Cloudflare or pg.
|
|
12
|
-
|
|
13
|
-
The PostgreSQL host takes a Bun.SQL pool configured with `prepare: false`.
|
|
14
|
-
Bun's prepared JSON parameter encoding serializes an already encoded JSON string
|
|
15
|
-
again. Refuse another configuration rather than silently changing stored values.
|
|
16
|
-
Pool reserve/release binds every operation to one connection. The host closes
|
|
17
|
-
its pool after the server and retained background work stop.
|
|
18
|
-
|
|
19
|
-
Bun exposes raw results without OIDs/typmods. Obtain exact result metadata from
|
|
20
|
-
`CREATE TEMP TABLE ... AS <query> WITH NO DATA`, read pg_attribute and drop the
|
|
21
|
-
temporary table, then execute the original statement once with raw text results.
|
|
22
|
-
A DML description is a data-modifying CTE under WITH NO DATA, which does not
|
|
23
|
-
execute its body. PostgreSQL owns all type inference, including numeric scale,
|
|
24
|
-
CASE, COALESCE and CTEs. Each descriptor runs in the statement's existing pinned
|
|
25
|
-
transaction. Views use a regular transaction because temporary DDL is forbidden
|
|
26
|
-
in READ ONLY: a read describes first, then runs `SET TRANSACTION READ ONLY` before
|
|
27
|
-
the statement, so the engine still refuses a write as it does on every other
|
|
28
|
-
PostgreSQL host. Creating the temporary table needs the TEMPORARY privilege on the
|
|
29
|
-
database (`GRANT TEMPORARY ON DATABASE ... TO <role>`); without it every read fails
|
|
30
|
-
with 42501 naming this requirement, and a read replica cannot serve this host.
|
|
31
|
-
Every transaction appends `pg_temp` to its search_path, on every PostgreSQL host,
|
|
32
|
-
so a temporary table on a pooled session never stands in for a Schema table (unless
|
|
33
|
-
the role's own search_path already names pg_temp earlier, which it should not).
|
|
34
|
-
A connection whose ROLLBACK failed is closed, never released to the pool.
|
|
35
|
-
This costs three metadata round trips per result. Replace it only when Bun
|
|
36
|
-
provides public RowDescription metadata; do not approximate money or time values.
|
|
37
|
-
|
|
38
|
-
The entry overwrites the trusted IP header from the socket; behind a reverse proxy
|
|
39
|
-
listed in TRUSTED_PROXIES, the client is the address that proxy appended last to
|
|
40
|
-
X-Forwarded-For (one trusted hop; an IPv4-mapped socket address is matched as
|
|
41
|
-
IPv4), so each client keeps its own sign-in rate limit. Bun.serve runs
|
|
42
|
-
with `development: false` and an error handler that answers Core's 500 envelope: Bun's
|
|
43
|
-
development page would show the exception, stack and paths. Admin assets reject
|
|
44
|
-
traversal, control characters and symlinks outside the installed bundle.
|
|
45
|
-
bun:sqlite runs with foreign keys on, as D1 does, and a Mantle batch waits for a
|
|
46
|
-
Better Auth transaction open on the same handle instead of becoming its savepoint.
|
|
47
|
-
Local OTP requires an explicit loopback PUBLIC_ORIGIN, a secret and bootstrap
|
|
48
|
-
email, as Cloudflare does.
|
|
49
|
-
|
|
50
|
-
Bun has no built-in cron scheduler in this preset. Enabled schedule Triggers are
|
|
51
|
-
refused before files are written; an application that supplies a scheduler uses
|
|
52
|
-
host none and invokes Mantle's schedule ingress explicitly. No polling scheduler,
|
|
53
|
-
workflow engine or new manifest grammar is introduced.
|
|
54
|
-
|
|
55
|
-
## Verification
|
|
56
|
-
|
|
57
|
-
Native PostgreSQL and SQLite run the same storage conformance suite. Native
|
|
58
|
-
regressions cover result names, JSON scalar/array values, exact numeric typmods,
|
|
59
|
-
microsecond timestamps, CTE/comment queries, star targets, connection
|
|
60
|
-
reservation, read-only reads, statement_timeout, pg_temp ordering, foreign keys,
|
|
61
|
-
transactions on a shared bun:sqlite handle and actual Better Auth
|
|
62
|
-
OTP/bootstrap-owner login on both engines. Both generated presets typecheck
|
|
63
|
-
against bun-types. CI installs pinned Bun and runs these on every PR.
|
package/docs/adr/README.md
DELETED
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
# Architecture Decision Records
|
|
2
|
-
|
|
3
|
-
Records of *why* mantle ended up shaped this way. The numbering preserves POC ADR numbers where carried over (so cross-references in code comments and external docs stay valid); new ADRs continue from the highest used number.
|
|
4
|
-
|
|
5
|
-
## ADRs
|
|
6
|
-
|
|
7
|
-
| # | Title | Status |
|
|
8
|
-
|---|---|---|
|
|
9
|
-
| [0001](0001-four-atom-manifest-model.md) | Four-atom manifest model (Schema / View / Procedure / Trigger). Folds POC ADR-0005 (grammar discipline) and POC ADR-0006 (multi-doc YAML). | Accepted; fixed-file contract superseded |
|
|
10
|
-
| [0002](0002-closed-enums-for-bindings.md) | Closed enums for `x-mantle-bind` and `ctx.*` predicates. | Accepted (refreshed) |
|
|
11
|
-
| [0007](0007-ai-as-primary-author.md) | AI is the primary author of consumer projects; SDK contract is three pre-serve feedback loops, runtime diagnostics, and coder/operator role surfaces. | Accepted + amended |
|
|
12
|
-
| [0008](0008-structured-diagnostic-shape.md) | Diagnostic shape for validate/boot/runtime failures, with a reserved consumer-test phase; measured harnesses keep purpose-shaped reports. | Accepted + amended |
|
|
13
|
-
| [0009](0009-consumer-supplied-manifests.md) | Historical generated-array workflow; consumer source ownership continues in ADR-0019. | Superseded by 0019 |
|
|
14
|
-
| [0010](0010-locale-and-translates.md) | Locale 3-layer (manifest / D1 site_config / data field) + translates pattern. Boot decoupled from `site_config` (issue #60 fix). | Accepted (refreshed) |
|
|
15
|
-
| [0011](0011-adapter-port-spec.md) | Adapter port spec. Required runtime ports plus optional feature ports. | Superseded by 0019 (Core storage, Admin composition) and 0024 (SQLite/D1 storage); retained as the alpha.7 Cloudflare adapter record |
|
|
16
|
-
| [0012](0012-views-as-public-rest.md) | Views auto-expose matching REST and `query_view_*` MCP reads on their declared `public` or `staff` surface. Schemas never get a public REST endpoint. | Accepted + amended |
|
|
17
|
-
| [0013](0013-agent-provisioned-consumer-projects.md) | Historical agent-provisioned consumer projects path. | Superseded by 0021 |
|
|
18
|
-
| [0014](0014-auth-better-auth-and-multi-tenant-mcp.md) | The Cloudflare adapter owns one Better Auth 1.7 identity/OAuth/MCP authority with native method options and CIMD discovery. Verified callers are normalized into runtime context; mutable staff role and target authorization are re-evaluated per call. | Accepted + amended; auth ownership amended by 0032 |
|
|
19
|
-
| [0016](0016-site-semantic-layer.md) | Historical Starter/Landing `AGENTS.md` and launch-state contract. | Superseded by 0021 |
|
|
20
|
-
| [0017](0017-media-multi-variant-agent-side-optimization.md) | Multi-variant media assets with agent-side optimization and asset-id entry references. | Accepted |
|
|
21
|
-
| [0018](0018-core-starters-repository-boundary.md) | Core produces published SDK artifacts; the separate starters repository validates them as an external consumer. Revisit after release-contract simplification. | Superseded by 0021 |
|
|
22
|
-
| [0019](0019-sealed-manifest-runtime-pipeline.md) | One sealed source-to-runtime pipeline, semantic storage seam, and optional Web/Admin/platform dependency direction. | Accepted; optional boundaries become subpaths of two packages per 0032 |
|
|
23
|
-
| [0020](0020-builtin-handler-contracts-and-matched-upsert.md) | Static builtin handler contracts and natural-key matched upsert (`handler.match`). | Accepted + amended by 0022 |
|
|
24
|
-
| [0021](0021-retire-starter-scaffolding.md) | Direct authoring; retire Starter scaffolding. | Accepted; no-initialization clause superseded by 0026 |
|
|
25
|
-
| [0022](0022-caller-observed-version-occ.md) | Caller-observed `expectedVersion` for Admin bind and builtin upsert OCC. | Accepted; Admin binding rules superseded by 0029 |
|
|
26
|
-
| [0023](0023-port-failure-contract.md) | Storage and service failure contracts: resource, rate, outcome-unknown, partial-failure and precondition diagnostics with safe `failure` facts. | Accepted for alpha.17 (#857); amends 0008 |
|
|
27
|
-
| [0024](0024-manifest-native-schema-tables.md) | Materialize each Schema as a native storage table and deploy reviewed migration artifacts. | Accepted; authored-native-name clauses superseded by 0025; migration workflow superseded by 0033 |
|
|
28
|
-
| [0025](0025-reserved-native-columns-and-published-only-public-views.md) | Reserve the six native column names, let `indexes` reference them, and compile public publishing Views published-only. | Accepted |
|
|
29
|
-
| [0026](0026-progressive-generate.md) | Progressive `mantle generate` with a full default, positive features, saved host selection, and user-owned source. | Accepted; supersedes part of 0021; dependency closure, identity and `--host` amended by 0032 |
|
|
30
|
-
| [0027](0027-scheduled-procedure-triggers.md) | Schedule Triggers in the sealed plan with Cloudflare-hosted invocation and system identity. | Accepted for 0.1.5; cron dialect and host requirement amended by 0032 |
|
|
31
|
-
| [0028](0028-schema-ttl-expiry.md) | Logical TTL on Schema reads with preview-first, explicit bounded cleanup. | Accepted for 0.1.5 |
|
|
32
|
-
| [0029](0029-mcp-apps-interaction-contracts.md) | Official MCP SDK for all MCP wire handling; transport-neutral capability catalog with validate-once invocation; `@aotter/mantle-mcp` and `@aotter/mantle-ui`; Manifest-declared interaction contracts and MCP Apps (#1110). | Accepted; amends ADR-lite 909 |
|
|
33
|
-
| [0030](0030-store.md) | Store: one persistence object (`ctx.store` / `runtime.store`) over one relational JSON query AST compiled by each adapter; first slice `select`, `view`, `id`, then `write`, then manifest grammar (#1151). | Accepted; completed for 0.2.0 by 0032; authoring amended by 0034 |
|
|
34
|
-
| [0031](0031-host-cloud-core-contract.md) | Cloud supplies the Core pin before host artifact hashing; protocol 2 checks the pin through grants/kit; protocol 4 requires a verified source receipt before save. | Accepted |
|
|
35
|
-
| [0032](0032-store-centric-core-and-service-contract.md) | 0.2.0: Store is the only entry persistence path; an application-owned service behind one host-neutral `createMantle`; one `Caller` identity and no Core-owned user or auth; `_mantle_` marks system tables only; two npm packages and one plugin. | Accepted for 0.2.0; decisions 1–5, 10 and 13 amended by 0034; decisions 6 and 12 by 0035 |
|
|
36
|
-
| [0033](0033-storage-converges-to-the-plan.md) | Schema storage converges to the plan by introspection: Mantle applies safe additions, blocks the rest, and verifies author-made changes; no Mantle-written migration files. | Accepted for 0.2.0; amended by 0034 and 0035 |
|
|
37
|
-
| [0034](0034-store-is-authored-as-sql.md) | Store is authored as SQL in the D1 dialect and compiled to IR by the CLI with `libpg-query`; no Worker parses SQL. The IR is the parser's AST under an exact allowlist, printed by `pgsql-deparser`; a chosen SQL subset with policy wrapped around every Schema reference; FTS5 search and R*Tree places; after hooks take row arrays; one SQLite executor; exact encodings for time and decimals. | Accepted for 0.2.0 (spike #1203); amended by 0035 and 0037 |
|
|
38
|
-
| [0035](0035-sql-dialects.md) | Mantle SQL is PostgreSQL syntax and meaning; a dialect module runs it on one engine. D1 and PostgreSQL ship built in, and both pass the compliance suite. | Accepted for 0.2.0; amended by the PostgreSQL dialect (#1293), 0036 and 0037 |
|
|
39
|
-
| [0036](0036-host-and-dialect.md) | A project picks a host (`cloudflare`, `none`) and a dialect (`sqlite`, `postgres`, a package) once; `mantle generate` writes the pair's preset; the host never enters the plan. | Accepted for 0.2.0; reserved Bun host amended by 0038 |
|
|
40
|
-
| [0037](0037-postgresql-is-the-reference-dialect.md) | PostgreSQL is the reference dialect: one closed allowlist in Core (base and reference profiles), D1 runs the base subset; a View reads an internal View; `restrict` narrows at runtime; a statement timeout on PostgreSQL; Cloud's PostgreSQL connection stays with the platform. | Accepted for 0.2.0 |
|
|
41
|
-
| [0038](0038-bun-native-host.md) | Bun is a native host: `@aotter/mantle/bun` owns the native SQLite and PostgreSQL drivers and Admin files; `host: bun` defaults to `dialect: postgres`; the CLI writes a `Bun.serve` entry once. | Accepted for 0.2.0 |
|
|
42
|
-
|
|
43
|
-
## Reading order
|
|
44
|
-
|
|
45
|
-
If you're new to the codebase:
|
|
46
|
-
|
|
47
|
-
1. **0001** — what the 4 atoms are.
|
|
48
|
-
2. **0019** — the sealed source-to-runtime pipeline and optional product boundaries.
|
|
49
|
-
3. **0009** — historical context for consumer-owned manifests.
|
|
50
|
-
4. **0007** — what running the SDK feels like as an AI author (and as the operator agent).
|
|
51
|
-
5. **0011** — the boundary between the runtime and the adapter.
|
|
52
|
-
6. **0010** — how locale flows through the system.
|
|
53
|
-
7. **0026** — current progressive generation boundary; **0021** retains the direct-authoring history and **0013** is historical install-session context.
|
|
54
|
-
8. **0002, 0008** — the two ADRs that touch every diagnostic and every binding.
|
|
55
|
-
|
|
56
|
-
## What's NOT here (and why)
|
|
57
|
-
|
|
58
|
-
POC had 16 ADRs. The rebuild ports the durable ones, writes fresh ADRs
|
|
59
|
-
for new v0.1.0 boundaries, and folds / drops the rest:
|
|
60
|
-
|
|
61
|
-
- **POC ADR-0003** OpenAPI emission → folded into `mantle-spec` README (the *what* is implementation; the *why* was already captured by ADR-0001's grammar lock).
|
|
62
|
-
- **POC ADR-0004** D1 today, Hyperdrive PG tomorrow → folded into `mantle-cloudflare` README (now a v0.2 roadmap item, not an architectural decision).
|
|
63
|
-
- **POC ADR-0005** v0.1 minimum grammar → folded into ADR-0001's fail-closed grammar policy.
|
|
64
|
-
- **POC ADR-0006** multi-doc YAML → folded into ADR-0001 §"Authoring shape: multi-doc YAML."
|
|
65
|
-
- **POC ADR-0011** lifecycle binary opt-in → distilled to a §"Lifecycle" subsection in `docs/design-atoms.md`. v0.1.0 ships `publishing` and `operational`.
|
|
66
|
-
- **POC ADR-0012** strategic posture vs adjacent CMS designs → strategic / marketing material, lives in `README.md` if anywhere.
|
|
67
|
-
- **POC ADR-0013** role-split surfaces (coder agent vs operator agent) → folded into ADR-0007 (Part B).
|
|
68
|
-
- **POC ADR-0014** builtin handlers and lifecycle Triggers → promoted to v0.1.0 and implemented in the rebuild via `LifecycleHookingEntryRepository` and `InvokeBuiltinUseCase`. Full shape spec lives in `docs/design-atoms.md`.
|
|
69
|
-
- **POC ADR-0015** cms-astro internal seam discipline → POC-specific to a package that no longer exists; replaced by ADR-0011 (adapter port spec).
|
|
70
|
-
- **POC ADR-0029** drop Astro from cms-cloudflare → POC-specific historical record; the rebuild starts post-Astro.
|
|
71
|
-
|
|
72
|
-
The rebuild's ADR-0011 (new) is the most load-bearing addition — the POC accumulated multiple *aspirational* boundaries (POC ADR-0015 was one; references in CLAUDE.md were another) without a single normative spec. ADR-0011 makes the boundary explicit and reviewable. ADR-0012 and ADR-0013 capture newer v0.1.0 product/runtime seams that were not present in the POC.
|
|
73
|
-
|
|
74
|
-
## Contributing a new ADR
|
|
75
|
-
|
|
76
|
-
1. Pick the next unused number after the highest existing ADR.
|
|
77
|
-
2. File: `docs/adr/<NNNN>-<kebab-title>.md`.
|
|
78
|
-
3. Sections: Status, Date, Context, Decision, Consequences, Alternatives, How to apply, Implementation status.
|
|
79
|
-
4. Link from this README's table.
|
|
80
|
-
5. Land it in a PR alongside (or before) the implementation it documents — ADR-as-design-artifact, not ADR-as-archaeology.
|
|
81
|
-
|
|
82
|
-
## ADR-lite records
|
|
83
|
-
|
|
84
|
-
These retain their issue-based filenames and original decision status.
|
|
85
|
-
|
|
86
|
-
| Record | Status |
|
|
87
|
-
|---|---|
|
|
88
|
-
| [#803 Request diagnostics](adr-lite-803-request-diagnostics.md) | Implemented |
|
|
89
|
-
| [#808 Route readiness](adr-lite-808-route-readiness.md) | Accepted |
|
|
90
|
-
| [#809 Bounded public content](adr-lite-809-bounded-public-content.md) | Implemented |
|
|
91
|
-
| [#812 Native parity](adr-lite-812-native-parity.md) | Implemented; deployment evidence linked in record |
|
|
92
|
-
| [#823 Home statistics](adr-lite-823-home-statistics.md) | Proposed; unmerged demo |
|
|
93
|
-
| [#842 MCP authoring](adr-lite-842-mcp-authoring.md) | Accepted |
|
|
94
|
-
| [#845 Frontend client](adr-lite-845-frontend-client.md) | Accepted |
|
|
95
|
-
| [#861 Admin WebMCP](adr-lite-861-admin-webmcp.md) | Accepted |
|
|
96
|
-
| [909 Admin UI kit](adr-lite-909-admin-ui-kit.md) | Accepted; amended by 0029 |
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# ADR-lite: request-scoped Cloudflare diagnostics
|
|
2
|
-
|
|
3
|
-
Status: implemented diagnostic record for #803; real-auth controls and measured
|
|
4
|
-
comparison acceptance belong to the #812 harness. This does not close the
|
|
5
|
-
separate starter provisioning/Smart Placement portion of #803.
|
|
6
|
-
|
|
7
|
-
Use native AsyncLocalStorage and a small versioned testing entry point instead of
|
|
8
|
-
a global current-request counter or a configurable production telemetry system.
|
|
9
|
-
Production mounts only check for an existing test context. With none, there are
|
|
10
|
-
no diagnostic clock reads, binding wrappers, records, observers or response headers.
|
|
11
|
-
Runtime, auth, role, catalog, dispatcher-build and dispatch retain their ownership
|
|
12
|
-
and authorization order. The ordinary runtime-ready promise keeps its identity.
|
|
13
|
-
|
|
14
|
-
Native D1 instrumentation sits beneath both Auth and Runtime and is idempotent.
|
|
15
|
-
It preserves receivers, bind chains, first-column behavior and native objects in
|
|
16
|
-
batches; no second driver observer is added for counting. Provider failures and
|
|
17
|
-
unknown metadata remain visible. Request context is captured when an operation
|
|
18
|
-
starts, so shared work belongs to its initiator. Catalog waiters inherit source
|
|
19
|
-
classification and wait time without inheriting the owner's binding counts.
|
|
20
|
-
|
|
21
|
-
The record freezes at response creation. Inclusive spans can overlap, and partial
|
|
22
|
-
metadata or deferred work must not be presented as a full total. A test-only cloned
|
|
23
|
-
MCP response supplies the JSON-RPC outcome without exposing its content; that
|
|
24
|
-
inspection is outside totalMs but remains instrumentation overhead for HTTP timing.
|
|
25
|
-
Observer errors never replace application results. D1/KV/R2 operations emit only
|
|
26
|
-
counts, sizes with their source/coverage, and durations; object keys, SQL, caller
|
|
27
|
-
identities and credentials never enter the record.
|
|
28
|
-
|
|
29
|
-
R2 GET bodies stay native. Successful direct stream-to-PUT completion confirms
|
|
30
|
-
payload bytes; canceled, incomplete and unconsumed reads remain unknown. This
|
|
31
|
-
avoids losing R2's known-length stream property or hiding buffering overhead.
|
|
32
|
-
|
|
33
|
-
Checks deliberately overlap MCP requests and share KV hit/failure loads, then
|
|
34
|
-
retry after failure. Native I/O is counted once per owner, and denied requests
|
|
35
|
-
leave unreached phases null. Additional checks preserve native D1 private receiver
|
|
36
|
-
and batch semantics, sync/async observer failure, immutable deferred snapshots,
|
|
37
|
-
R2 stream identity and partial-transfer uncertainty. The collector fixture labels
|
|
38
|
-
its deterministic auth explicitly; it is not evidence of native-auth parity.
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
# Route-owned Cloudflare readiness (#808)
|
|
2
|
-
|
|
3
|
-
Status: accepted for the unreleased #806–812 implementation. Follows ADR-0019
|
|
4
|
-
(preparation owns migrations) and amends ADR-0014's unconditional HTTP boot rule.
|
|
5
|
-
|
|
6
|
-
The facade assembles immutable route projections once, then prepares only for
|
|
7
|
-
routes that consume canonical storage. It retains one retryable preparation
|
|
8
|
-
promise, the sealed plan and Better Auth's existing global AsyncLocalStorage,
|
|
9
|
-
`ready` observation, failed-assembly eviction and HTTP `waitUntil` ownership.
|
|
10
|
-
|
|
11
|
-
| Surface | Readiness, including an empty database |
|
|
12
|
-
| --- | --- |
|
|
13
|
-
| Consumer constant health, `/api/views` catalog | No content preparation. |
|
|
14
|
-
| Static Admin shell and assets | No content preparation; incomplete Auth still fails closed as before. |
|
|
15
|
-
| Manifest View/Trigger | Prepare before credential resolution, then use the same runtime invocation. |
|
|
16
|
-
| Admin API, configured Auth base path, OAuth UI/discovery | Prepare before session/provider work. Auth tables share canonical migrations. |
|
|
17
|
-
| MCP, including missing-token challenge | Prepare before the selected Auth verifier. A custom Auth implementation may require D1 even for a denied request; the facade cannot assume otherwise. |
|
|
18
|
-
| Public page/list/discovery and favicon fallback | Their existing `ref.get()` starts preparation when content is needed. |
|
|
19
|
-
| Consumer extension handlers | Call the supplied `getRuntime()` or `ref.get()` before using Mantle content or database-backed Auth. Pure handlers need neither. |
|
|
20
|
-
| Queue/scheduled `getRuntime(env)` | Await both runtime preparation and Auth initialization, unchanged. |
|
|
21
|
-
|
|
22
|
-
No deployment-time migration flag or KV readiness authority is introduced. A
|
|
23
|
-
current database's first protected route needs one fingerprint SELECT; an empty
|
|
24
|
-
or changed database performs canonical setup there. Concurrent first uses share
|
|
25
|
-
that work. A failed preparation returns the facade's redacted 500, and later
|
|
26
|
-
requests retry. Static availability is not a promise that data is ready.
|
|
27
|
-
|
|
28
|
-
The pre-change full-facade fixture recorded 106 SQL operations for its empty-DB
|
|
29
|
-
health request (its four Schemas include indexes), then 1 fingerprint operation
|
|
30
|
-
for each new-state health/catalog/shell/challenge. These are statement counts,
|
|
31
|
-
not network round trips. Its dry-run bundle was 3,921.40 KiB / 690.43 KiB gzip
|
|
32
|
-
with Wrangler 4.124.0 and compatibility date 2026-07-08. Esbuild attributed
|
|
33
|
-
1,342,428 emitted bytes to Better Auth, 76,078 to Admin, 24,624 to Web and
|
|
34
|
-
203,130 to Runtime; the rest includes transitive libraries and adapter code.
|
|
35
|
-
Byte attribution does not measure startup CPU. We retain static imports and
|
|
36
|
-
immutable mount-time projections: deferring those modules has not yet been
|
|
37
|
-
justified by a startup profile. The final #812 report owns the separate startup,
|
|
38
|
-
preparation-wall and warm-dispatch measurements.
|
|
39
|
-
|
|
40
|
-
Post-change full-facade workerd checks pass all 13 operation gates: empty-DB
|
|
41
|
-
health and fresh-state health/catalog/shell perform zero **content** queries;
|
|
42
|
-
the challenge retains its one fingerprint query. The fixture Auth is a stated
|
|
43
|
-
stub. A separate real Better Auth regression records one eager oauthResource
|
|
44
|
-
lookup while `ready` initializes; Better Auth 1.7.2 defers missing-table resource
|
|
45
|
-
seeding to first access. Subsequent static requests perform no additional Auth
|
|
46
|
-
queries. This background initialization is retained, not counted as eliminated
|
|
47
|
-
content preparation or hidden behind a zero-total-SQL claim.
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
# ADR-lite: bounded public content and complete discovery
|
|
2
|
-
|
|
3
|
-
Status: implemented for #809; combined deployment measurements tracked in #812.
|
|
4
|
-
Context: ADR-0010 translation joins, ADR-0019 sealed semantic storage, #792 Web
|
|
5
|
-
transport/cache ownership. No manifest keys or remote Web SDK are introduced.
|
|
6
|
-
|
|
7
|
-
## Decision
|
|
8
|
-
|
|
9
|
-
Add the semantic `EntryReader.readPublishedPage` operation instead of silently
|
|
10
|
-
capping generic `readPublished`. Forward pages sort by updatedAt and id descending,
|
|
11
|
-
with default 50 / maximum 2,000 rows and a 1-MiB data-JSON budget. A single larger
|
|
12
|
-
entry remains readable and advances the cursor. This budget covers the selected
|
|
13
|
-
canonical data, excluding envelope bytes, joined parents, media and consumer HTML.
|
|
14
|
-
SQLite uses indexed, bounded candidates, a running byte sum and lookahead before
|
|
15
|
-
transfer to Worker memory. Exact locale plus shared entries are merged in SQL.
|
|
16
|
-
Selected data fields retain JSON types and use one bound JSON field list, including
|
|
17
|
-
for projections larger than D1's ordinary bind or SQL-function argument limits.
|
|
18
|
-
|
|
19
|
-
The optional Web use cases return an explicit page object. Cloudflare mounts
|
|
20
|
-
publish `Link: rel="next"` and map cursors to URLs. Web passes `nextPageUrl` to
|
|
21
|
-
the list template; the host renders accessible navigation with its own language
|
|
22
|
-
and design. The adapter does not rewrite template HTML. Existing templates must
|
|
23
|
-
adopt this field to retain visible continuation. Web-owned llms composition
|
|
24
|
-
retains its body link. An empty intermediate/final llms page remains traversable.
|
|
25
|
-
Root llms reads each canonical page once and expands shared entries per locale
|
|
26
|
-
without repeated canonical reads. Unknown/unmapped/no-content rows consume their
|
|
27
|
-
place in the page; they do not prevent reaching later eligible rows.
|
|
28
|
-
|
|
29
|
-
Sitemap parts project path metadata and default to 2,000 entries, expanding shared
|
|
30
|
-
routes per locale. The index walks the same metadata-page boundaries as the parts,
|
|
31
|
-
so a byte-limited part cannot cause skipped URLs. Small sites keep a single urlset.
|
|
32
|
-
Additional routes appear only in the first part. A custom path resolver must declare
|
|
33
|
-
its required data fields to obtain projection; otherwise full bounded data remains
|
|
34
|
-
available. Protocol limits fail explicitly instead of silently truncating URLs.
|
|
35
|
-
|
|
36
|
-
Translation lists request only the newest published parent per join value. Storage
|
|
37
|
-
ranks matching IDs before loading their bodies, preventing duplicate historical
|
|
38
|
-
parents from multiplying transferred rows. Missing/draft parents leave the child
|
|
39
|
-
unchanged. Child data still wins and media resolution remains one batch per page.
|
|
40
|
-
|
|
41
|
-
## Limits and alternatives
|
|
42
|
-
|
|
43
|
-
Sitemap index generation is O(N) metadata work on an origin MISS. It retains one
|
|
44
|
-
page and the index's URL list rather than all entry bodies; the protocol permits
|
|
45
|
-
at most 50,000 parts. Persisted generation/part boundaries would require an explicit
|
|
46
|
-
publication/invalidation owner and are deferred until index traffic justifies it.
|
|
47
|
-
A hard `LIMIT 500` would lose discovery URLs and is rejected. Offset pages would
|
|
48
|
-
make deep traversal grow with depth and are rejected. Entry caching would leave
|
|
49
|
-
the cold materialization spike and stale-state questions unresolved.
|
|
50
|
-
|
|
51
|
-
Pages reflect live canonical state, not a cross-request snapshot: publishing or
|
|
52
|
-
changing sort keys during a crawl can move entries between pages. Browser-local
|
|
53
|
-
IndexedDB shares the semantic cursor and output budget but still scans a local
|
|
54
|
-
collection. Parent/media data and consumer template expansion have separate costs;
|
|
55
|
-
there is no promise that arbitrary consumer rendering fits 1 MiB.
|
|
56
|
-
|
|
57
|
-
## Verification
|
|
58
|
-
|
|
59
|
-
Real SQLite tests walk the 18 combinations of 100/10,000/50,000 rows, 64 B/4 KiB
|
|
60
|
-
body and 1/3/10 locales, comparing complete llms/sitemap URL sets. List transfer is
|
|
61
|
-
21 rows at limit 20 in every case; 50,000 mixed rows and 10 locales retain all
|
|
62
|
-
275,000 URLs. Tests cover tied sort keys, >1-MiB entries, JSON projection types,
|
|
63
|
-
missing projected keys, parent duplicates/missing/drafts, child overrides, media
|
|
64
|
-
batching and persistence-field privacy. HTTP tests walk visible continuations,
|
|
65
|
-
empty final pages, sitemap indexes and staff-only preview behavior. The portable
|
|
66
|
-
storage conformance suite checks new semantics across adapters.
|
|
67
|
-
|
|
68
|
-
Wrangler-local records native D1 query/row work for list, llms and sitemap alongside
|
|
69
|
-
existing readiness, View, Procedure and Admin gates. Node traversal CPU/RSS includes
|
|
70
|
-
fixture/assertion costs and is not reported as Worker CPU. Combined #812 evidence
|
|
71
|
-
will supply Worker CPU, heap, cache HIT/MISS, remote controls and placement results.
|
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
# ADR-lite: native and full-facade performance evidence (#812)
|
|
2
|
-
|
|
3
|
-
Status: implemented; local gates passed. The deployment report and per-block
|
|
4
|
-
budget verdicts are maintained in [PR #821](https://github.com/aotter/mantle/pull/821).
|
|
5
|
-
|
|
6
|
-
The existing HTTP harness now records TTFB and full-body timing separately,
|
|
7
|
-
response bytes, and bounded concurrent arrivals. `pnpm bench:wrangler` keeps the
|
|
8
|
-
old row/query regressions and adds a native smoke matrix. `pnpm bench:parity`
|
|
9
|
-
runs the larger matrix, real Better Auth PKCE/OTP/consent/JWT/DPoP issuance,
|
|
10
|
-
revocation/role/replay denials, prepared D1 across fresh workerd processes, and
|
|
11
|
-
R2 transfers. No token, cookie, proof, user ID, SQL, argument or object key enters
|
|
12
|
-
the diagnostic record. Only the secret-protected synthetic fixture has control
|
|
13
|
-
endpoints; never bind it to a consumer database or bucket.
|
|
14
|
-
|
|
15
|
-
## Controls and boundaries
|
|
16
|
-
|
|
17
|
-
| Layer | Work |
|
|
18
|
-
|---|---|
|
|
19
|
-
| F0 | Fixed fetch response; standalone `floor-worker.ts` measures module/bundle floor. R2 F0 performs HEAD only. |
|
|
20
|
-
| F1 | Hono + native SQL and the same public payload; no authentication. |
|
|
21
|
-
| F2 | Native Worker, shared real Auth/session/consent/fresh-role/DPoP checks, SQL compiler and validators, response envelope. MCP shares protocol dispatch and View execution; unmeasured mutations fail closed. |
|
|
22
|
-
| M | Full `createMantleWorker`, same sealed plan, bindings, data and security policy. R2 uses the production storage commit adapter directly. |
|
|
23
|
-
|
|
24
|
-
Protected parity is F2/M. The View and catalog response bodies must match, drafts
|
|
25
|
-
stay private, and auth/protocol errors must fail correctly. Procedure input errors
|
|
26
|
-
compare status/code, not complete diagnostic wording. Admin/Web are facade coverage,
|
|
27
|
-
not a matched-native claim. R2 measures native stream metadata commits and failure/
|
|
28
|
-
retry; D1 MediaAsset publication is covered by the separate #810 integration test.
|
|
29
|
-
The shared comparison bundle intentionally keeps dependencies/configuration equal;
|
|
30
|
-
it cannot measure the difference between standalone application bundle sizes.
|
|
31
|
-
|
|
32
|
-
The planner runs outside workerd. Route/Schema/View axes each use 1/10/100/1,000;
|
|
33
|
-
extra Schemas are unindexed to keep the index-count axis fixed. Each Schema is a
|
|
34
|
-
native table, so the axis is not a claim that 1,000 simultaneous Schema tables
|
|
35
|
-
are an advisable production design. Body/row axes use 64 B/4 KiB and
|
|
36
|
-
100/10,000/50,000;
|
|
37
|
-
locales use 1/3/10, MCP client concurrency uses 1/4/8, R2 uses 1/3/12 variants at
|
|
38
|
-
1/64/256 KiB. Actual simultaneous arrivals can be below client concurrency. The remote fleet
|
|
39
|
-
can add isolates during a batch. A request is repeat-in-isolate only after that
|
|
40
|
-
exact workload previously completed there; overlapping first arrivals stay in
|
|
41
|
-
the first-for-workload cohort. Two global warmups alone cannot prove a warm fleet.
|
|
42
|
-
First requests retain their raw records and a bounded extra-six-statement setup
|
|
43
|
-
allowance; repeat MCP requests must meet the exact two/three/four-statement gate.
|
|
44
|
-
Parity summaries use repeat cohorts; first-for-workload does not necessarily mean
|
|
45
|
-
cold module startup (another workload may already have used that isolate).
|
|
46
|
-
|
|
47
|
-
## Stable gates and measured signals
|
|
48
|
-
|
|
49
|
-
- Indexed public View: one statement and at most 100 available rows read at every
|
|
50
|
-
tested data size. MCP catalog: two statements (grant + fresh role), one KV GET;
|
|
51
|
-
View: three statements with Bearer, four with native DPoP replay reservation.
|
|
52
|
-
- Selected Trigger: four segment lookups at every route count in the portable
|
|
53
|
-
regression; native last-route requests retain one statement at 1,000 routes.
|
|
54
|
-
- Public HTML/llms: two warm statements and less than 1 MiB selected JSON. Sitemap
|
|
55
|
-
index remains explicit O(N) metadata work to enumerate complete part links.
|
|
56
|
-
- R2: exactly N GET + N PUT, known full-body bytes, at most three transfers in
|
|
57
|
-
flight; a first-batch failure starts no later batch and a retry succeeds.
|
|
58
|
-
- Fixture HTTP bodies at most 2 MiB; inspector heap after each batch at most
|
|
59
|
-
96 MiB. This is an observed JS heap ceiling, not instantaneous peak memory or
|
|
60
|
-
retained-after-GC heap. Custom application templates retain their own limits.
|
|
61
|
-
|
|
62
|
-
The default fixture bundle gate is 4,500 KiB raw / 800 KiB gzip (measured
|
|
63
|
-
3,699.93 / 647.98 KiB). The standalone F0 is 0.52 / 0.34 KiB; a 1,000-route
|
|
64
|
-
fixture is 4,051.18 / 668.60 KiB. Larger manifest-axis builds are reported
|
|
65
|
-
separately. Module startup profiles are a local diagnostic; actual deployed
|
|
66
|
-
startup must remain below the provider limit and is recorded during acceptance.
|
|
67
|
-
|
|
68
|
-
No cross-machine latency gate is used. CDP batch samples estimate local active JS
|
|
69
|
-
(including warmup); they are not per-request or billing CPU. Native Tail CPU/wall
|
|
70
|
-
are correlated by random request ID only in remote runs; unavailable timing stays
|
|
71
|
-
null. D1 metadata sums cover only `metadataStatements`; native Auth `.first()` does
|
|
72
|
-
not return rows/duration, and zero cannot substitute for that missing coverage.
|
|
73
|
-
|
|
74
|
-
The 2026-09-08 full local run contained 2,697 measured requests / 144 cases, no
|
|
75
|
-
unexpected HTTP status, max response 84,185 B, and max observed heap 67,103,480 B.
|
|
76
|
-
The observed F2/M p50 full-body delta for the 50k-row/4KiB View was -0.347 ms
|
|
77
|
-
(95% within-run bootstrap interval [-0.727, 0.128]); MCP catalog +0.903 ms
|
|
78
|
-
[0.470, 1.070]; Bearer MCP View -0.578 ms [-1.235, 0.329]. These are localhost
|
|
79
|
-
measurements, not a remote parity conclusion. Ten orthogonal route/Schema/View
|
|
80
|
-
runs and both extra locale runs also passed. Self-review corrected a fixture that
|
|
81
|
-
accidentally scaled indexes with Schemas, an English-only page assertion in the
|
|
82
|
-
multilingual fixture, and missing D1 metadata incorrectly summarized as zero.
|
|
83
|
-
|
|
84
|
-
## Remote difference budget (calibrated 2026-09-08)
|
|
85
|
-
|
|
86
|
-
The first complete off-a block (05:44:20–05:57:16 UTC, SDK 1798e78) contains
|
|
87
|
-
1,385 requests with 100% native CPU coverage, 46 first-for-workload arrivals and
|
|
88
|
-
no unexpected status failures. Public cache returned MISS then HIT; the HIT
|
|
89
|
-
had no invocation record. Warm F2/M CPU medians match at 0 ms health, 2 ms View,
|
|
90
|
-
1 ms Procedure, 2 ms MCP catalog and 3 ms Bearer MCP View. DPoP medians differ
|
|
91
|
-
by 0–1 ms; the largest within-run CPU delta upper interval is 2 ms. One hundred
|
|
92
|
-
requests per layer/diagnostics mode measure roughly +1 ms median CPU for the
|
|
93
|
-
collector itself on both layers. This is native millisecond-resolution telemetry.
|
|
94
|
-
|
|
95
|
-
Freeze this initial budget before evaluating the on-a/off-b/on-b blocks:
|
|
96
|
-
|
|
97
|
-
- At least 20 repeat-in-isolate samples per layer, equivalent successful payloads
|
|
98
|
-
and current authorization checks; expected denial cases are functional gates.
|
|
99
|
-
- Upper 95% bootstrap interval for M minus F2 median platform CPU: at most 2 ms.
|
|
100
|
-
- Upper 95% bootstrap interval for M minus F2 median full-body latency: at most
|
|
101
|
-
max(15 ms, 5% of the paired F2 median). Compare consistent placement contexts;
|
|
102
|
-
report changes in ingress/execution placement separately.
|
|
103
|
-
- Exact warm statement/binding budgets and zero unexpected outcomes still apply.
|
|
104
|
-
Latency/CPU differences are a matched deployment acceptance budget, not an
|
|
105
|
-
absolute cross-machine CI timer gate. First-for-workload records stay visible;
|
|
106
|
-
the budget makes no blanket claim about cold setup or all native workloads.
|
|
107
|
-
|
|
108
|
-
## Reproduction and remote acceptance
|
|
109
|
-
|
|
110
|
-
Run from the repository root with built workspace dependencies:
|
|
111
|
-
|
|
112
|
-
```sh
|
|
113
|
-
pnpm bench:wrangler
|
|
114
|
-
pnpm bench:parity
|
|
115
|
-
BENCH_ROUTES=1000 BENCH_CASES=scaling pnpm bench:parity
|
|
116
|
-
BENCH_SCHEMAS=1000 BENCH_CASES=scaling pnpm bench:parity
|
|
117
|
-
BENCH_VIEWS=1000 BENCH_CASES=scaling pnpm bench:parity
|
|
118
|
-
BENCH_LOCALES=en,fr,de BENCH_QUICK=1 pnpm bench:parity
|
|
119
|
-
node scripts/summarize-wrangler-parity.mjs /path/to/report.json
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
For remote acceptance, provision dedicated synthetic D1/KV (R2 when enabled),
|
|
123
|
-
put a random 32+ character BENCHMARK_KEY secret, and deploy the fixture with
|
|
124
|
-
BENCH_REMOTE_RECORDS=1. Run with BENCH_ORIGIN, BENCHMARK_KEY, BENCH_ACCOUNT_ID,
|
|
125
|
-
BENCH_PROFILE_NAME, BENCH_BLOCK and BENCH_PLACEMENT in the process environment.
|
|
126
|
-
The runner uses Wrangler's existing named-profile authentication to open the
|
|
127
|
-
same native trace-v1 API used by `wrangler tail`. It retains only the nonce-
|
|
128
|
-
correlated diagnostic fields and native CPU/wall timing in memory, never request
|
|
129
|
-
headers/body/URL, credentials or unrelated logs. The tail session is deleted at
|
|
130
|
-
completion. No paid Tail Worker, sink database writes or elevated log API token
|
|
131
|
-
is needed. Off-mode records also correlate platform CPU to measure overhead.
|
|
132
|
-
|
|
133
|
-
PHSU has no R2 subscription; its remote run uses BENCH_SKIP_R2=1. R2 coverage
|
|
134
|
-
comes from native workerd, with no remote R2 latency claim. A paid Tail Worker
|
|
135
|
-
attempt was rejected by the provider, then replaced by the verified real-time API.
|
|
136
|
-
|
|
137
|
-
Alternate off/on/off/on deployment blocks and BENCH_ORDER=reverse for the second
|
|
138
|
-
pair. Record actual placement status, request `cf-placement` when supplied,
|
|
139
|
-
ingress colo, deployment version, SDK/Wrangler/compatibility date, sampling window
|
|
140
|
-
and errors. Origin timings force private/no-store; a separate probe requires a
|
|
141
|
-
real public MISS followed by HIT with no invocation record. Local runs never
|
|
142
|
-
invent HITs. A deployed Worker with existing D1 is labeled deployment-first.
|
|
143
|
-
|
|
144
|
-
Use `wrangler deploy --dry-run --outfile <bundle>` followed by
|
|
145
|
-
`wrangler check startup --worker <bundle> --outfile <profile>` for module startup.
|
|
146
|
-
Record standalone F0, the full fixture and the actual packed consumer separately.
|
|
147
|
-
Set the remote F2/M CPU/latency difference budget after collecting the baseline,
|
|
148
|
-
then evaluate repeated blocks with bootstrap intervals, explaining shared-host
|
|
149
|
-
and cross-request correlation. Smart Placement provisioning belongs to #803;
|
|
150
|
-
INSUFFICIENT_INVOCATIONS is not evidence of a placement latency improvement.
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
# ADR-lite: collection creation statistics on Admin home
|
|
2
|
-
|
|
3
|
-
Status: proposed with #823; implementation stays in an unmerged demo PR.
|
|
4
|
-
Context: ADR-0019 semantic storage and optional Admin composition.
|
|
5
|
-
|
|
6
|
-
Add one optional `EntryReader.readCreationStatistics` read. SQLite/D1 implements
|
|
7
|
-
it; custom adapters without it return an explicit unavailable state in Admin.
|
|
8
|
-
The staff guard runs before storage access, and successful responses are private,
|
|
9
|
-
no-store. The endpoint accepts only primary, visible collections and four range
|
|
10
|
-
presets. No manifest keys, generic aggregation language or new cache port.
|
|
11
|
-
|
|
12
|
-
Each card independently persists its range and interval/cumulative mode in
|
|
13
|
-
`cms.preference.collection-statistics.<collection>`. Only preferences enter
|
|
14
|
-
localStorage. The chart and CSV describe current retained rows by native
|
|
15
|
-
`createdAt`, all statuses, with current `uiSchema.list.filterField` classification.
|
|
16
|
-
Unknown values share an Other series. Deleted rows are absent: these are creation
|
|
17
|
-
cohorts of retained rows, not an event log or historical inventory. Cumulative
|
|
18
|
-
means a prefix sum inside the selected range, starting from zero.
|
|
19
|
-
|
|
20
|
-
Ranges are 1h/5m, 24h/1h, 7d/6h and 20d/1d. Every interval is half-open; the last
|
|
21
|
-
ends at the observation time. CSV uses ISO UTC bounds while chart labels use the
|
|
22
|
-
browser's timezone. SVG steps preserve exact bucket extents without interpolation.
|
|
23
|
-
The toolbar download exports the current card's mode, current total and series;
|
|
24
|
-
CSV cells are quoted and formula-shaped headers are neutralized.
|
|
25
|
-
|
|
26
|
-
## Aggregation and freshness
|
|
27
|
-
|
|
28
|
-
A single SQL statement returns a total and sparse grouped counts from one SQLite
|
|
29
|
-
snapshot. Each native Schema table carries `_mantle_created_at` and its own
|
|
30
|
-
creation index. The range branch searches that index, and the total branch
|
|
31
|
-
counts index entries. Other field columns stay in the database; only count rows
|
|
32
|
-
reach the Worker.
|
|
33
|
-
|
|
34
|
-
The existing Cloudflare KV decorator caches MCP site configuration, not entry
|
|
35
|
-
queries. Reusing that key/projection would mix unrelated data and mutation
|
|
36
|
-
ownership. Direct aggregation is sufficient for this demo: Wrangler-local with
|
|
37
|
-
10,000 rows returned 897 bytes with one statement, 30,002 engine rows read and
|
|
38
|
-
p50/p95 of 4.26/5.80 ms (10 samples). A real SQLite test also aggregates 50,000
|
|
39
|
-
4-KiB rows into at most 40 count rows / 4 KiB and verifies immediate updates and
|
|
40
|
-
deletes. These are local measurements, not remote latency guarantees.
|
|
41
|
-
|
|
42
|
-
There is no server statistics cache to evict or repopulate after a racing write.
|
|
43
|
-
Every Admin/MCP/Procedure committed write is visible on the next read, including
|
|
44
|
-
subtype updates and deletes. React Query data stays in memory, becomes stale
|
|
45
|
-
immediately, and refetches on mount/focus and every 60 seconds while the home is
|
|
46
|
-
active. Successful UI mutations invalidate its common statistics query prefix.
|
|
47
|
-
Changing only cumulative mode reuses the same count data without another query.
|
|
48
|
-
|
|
49
|
-
`ponytail:` exact totals still take O(N) index work and filtered time ranges may
|
|
50
|
-
read JSON for subtype grouping; returned bytes are bounded by bucket/enum count,
|
|
51
|
-
not row count. If measured production read volume makes this expensive, add a
|
|
52
|
-
transactionally maintained collection revision/projection and revision-keyed KV
|
|
53
|
-
snapshots. Plain KV delete-after-write is insufficient because eventual
|
|
54
|
-
consistency and racing miss fills can serve old aggregates. No cron, event store,
|
|
55
|
-
generic cache framework or eager write-through aggregate is justified here.
|
|
56
|
-
|
|
57
|
-
## Verification
|
|
58
|
-
|
|
59
|
-
Runtime SQLite tests cover lower/upper edges, unknown subtype, collection
|
|
60
|
-
isolation, zero rows, edits/deletes, invalid windows, range index use and 50k rows.
|
|
61
|
-
Admin tests cover 401/403 before storage, invalid collection/range (including
|
|
62
|
-
prototype names), all presets, no-store, and unsupported adapters. UI tests cover
|
|
63
|
-
all preference combinations, zero filling, stacking, prefix sums and CSV safety.
|
|
64
|
-
Browser QA covers independent per-card preferences, reload, both themes and CSV.
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
# ADR-lite #842: Applicable generic MCP authoring
|
|
2
|
-
|
|
3
|
-
Status: Accepted for implementation following maintainer approval.
|
|
4
|
-
|
|
5
|
-
The staff catalog and dispatcher remain shared by remote MCP and Admin
|
|
6
|
-
WebMCP (ADR-0014, ADR-0019, ADR-lite-861). No new manifest switch or tool
|
|
7
|
-
registry is introduced. Adapters retain current staff-role verification;
|
|
8
|
-
declared Procedures and Views retain their own authorization and guards.
|
|
9
|
-
|
|
10
|
-
Generic lifecycle tools are offered only when at least one writable content
|
|
11
|
-
Schema exists. Delete is offered only when a writable Schema exists. Read
|
|
12
|
-
tools list actual collection names, lifecycle, searchable and sortable fields.
|
|
13
|
-
Root readOnly remains the existing way to require Procedure-owned writes;
|
|
14
|
-
declaring a Procedure alone does not disable normal authoring.
|
|
15
|
-
|
|
16
|
-
Discovery is not enforcement: the dispatcher rejects absent catalog names,
|
|
17
|
-
checks the target row for readOnly and lifecycle suitability, and binds
|
|
18
|
-
per-collection updates to their declared collection before mutation. Unsupported
|
|
19
|
-
lifecycle calls return CONFLICT with an explicit reason; wrong-collection IDs
|
|
20
|
-
return NOT_FOUND. Existing status/OCC checks remain in the use cases.
|
|
21
|
-
Generic staff tools also apply Admin's rank table at `tools/call`:
|
|
22
|
-
contributor may create/update drafts; editor+ is required for lifecycle,
|
|
23
|
-
delete, media, and operational record tools. Declared Procedures keep their
|
|
24
|
-
own `requires` predicates. `tools/list` may still show editor tools to
|
|
25
|
-
contributors; a guessed call is `AUTH_DENIED`.
|
|
26
|
-
|
|
27
|
-
Compatibility: operational-only and read-only sites lose unusable generic
|
|
28
|
-
tools. Clients must rediscover tools rather than retaining a global tool list.
|
|
29
|
-
Mixed sites must choose a collection listed in the tool description. Public
|
|
30
|
-
catalogs remain only declared capabilities and gain no collection metadata.
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# ADR-lite #845: frontend calls use the existing HTTP Trigger contract
|
|
2
|
-
|
|
3
|
-
Status: Accepted for implementation under #845 and mantle-home #86.
|
|
4
|
-
|
|
5
|
-
`mantle-web/client` is a browser-safe fetch client for declared public Views and
|
|
6
|
-
HTTP Triggers. `mantle-web/client-runtime` projects that contract from the sealed
|
|
7
|
-
RuntimePlan and binds the same client to `createMantleRequestHandler`, with a
|
|
8
|
-
request-local principal. Local SSR makes no network call and invokes no internal
|
|
9
|
-
EntryReader. Calls retain Trigger identity. No manifest grammar changes.
|
|
10
|
-
|
|
11
|
-
The public contract uses wire names, input/output schemas and the plan fingerprint.
|
|
12
|
-
View rows remain records: the existing View API does not promise a generated row
|
|
13
|
-
schema. The generic response shape includes rows/page/show/hasMore. This is not a
|
|
14
|
-
new generator or validation engine; Runtime still validates and authorizes.
|
|
15
|
-
|
|
16
|
-
Remote callers inject fetch and a request-local token resolver. Clients never
|
|
17
|
-
retry a mutation or follow redirects with credentials. Business diagnostics and
|
|
18
|
-
OAuth challenge remain available in MantleClientError; network and abort errors
|
|
19
|
-
remain native errors. The browser export imports no runtime or storage module.
|
|
20
|
-
|
|
21
|
-
Cloudflare's opt-in frontendOrigins accepts exact origins for API CORS, exposes
|
|
22
|
-
WWW-Authenticate and permits Authorization/Content-Type preflights. Cross-origin
|
|
23
|
-
responses use no-store and do not enable cookie credentials. Cookie CSRF checks
|
|
24
|
-
and configured bearer issuer/audience/scope checks remain the same. Host-owned
|
|
25
|
-
OAuth/connection policy is independent of application revision. Existing Better
|
|
26
|
-
Auth PKCE registration, consent and revocation remain the authority.
|
|
27
|
-
|
|
28
|
-
In a provider composed with MCP, user grants for additional configured resources
|
|
29
|
-
carry the same consent lineage and session binding as MCP grants. Verification
|
|
30
|
-
reuses the current-consent/session check for those resources too; API JWTs cannot
|
|
31
|
-
outlive revocation or become valid again on reconnect. OAuth discovery responses
|
|
32
|
-
also receive the configured exact-origin CORS policy for public browser clients.
|
|
33
|
-
|
|
34
|
-
Existing native public cache tags and purge handle same-Worker invalidation.
|
|
35
|
-
External consumers start with private/no-store, or explicitly bound TTL; durable
|
|
36
|
-
remote invalidation delivery remains the parent #792 contract and must be proven
|
|
37
|
-
before advertising a stronger freshness guarantee. Cloud's integration includes
|
|
38
|
-
the actual external consumer and browser evidence, not only this package change.
|