@aotter/mantle 0.2.0-alpha.1 → 0.2.0-alpha.11
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 +180 -45
- package/dist/auth/adapter.d.ts +32 -0
- package/dist/auth/adapter.js +261 -0
- package/dist/auth/admin.d.ts +3 -0
- package/dist/auth/admin.js +18 -0
- package/dist/auth/caller.d.ts +86 -0
- package/dist/auth/caller.js +128 -0
- package/dist/auth/{createAuthRoutes.js → consent.js} +26 -54
- package/dist/auth/hardening.d.ts +24 -0
- package/dist/auth/hardening.js +33 -0
- package/dist/auth/identity.d.ts +121 -0
- package/dist/auth/identity.js +192 -0
- package/dist/auth/oauth.d.ts +63 -0
- package/dist/auth/oauth.js +185 -0
- package/dist/auth/resource-seeds.js +8 -0
- package/dist/auth/route-http.js +33 -0
- package/dist/auth/routes.d.ts +32 -0
- package/dist/auth/routes.js +80 -0
- package/dist/build/compiler.d.ts +122 -0
- package/dist/build/compiler.js +3 -0
- package/dist/{spec → build/spec}/domain/model/ManifestGrammar.d.ts +30 -43
- package/dist/{spec → build/spec}/domain/model/RuntimePlan.d.ts +77 -3
- package/dist/{spec → build/spec}/domain/model/SqlIr.d.ts +39 -6
- package/dist/build/spec/domain/model/UserFields.d.ts +21 -0
- package/dist/{spec → build/spec}/domain/service/PlanFingerprint.d.ts +4 -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 +22 -0
- package/dist/domain/adminOrder.js +22 -0
- package/dist/domain/columns.js +42 -0
- package/dist/domain/describe/chunk-SGMRVDGE.js +1 -0
- package/dist/domain/describe/index.d.ts +58 -0
- package/dist/domain/describe/index.js +1 -0
- package/dist/domain/describe/target-hash.d.ts +8 -0
- package/dist/domain/describe/target-hash.js +1 -0
- package/dist/domain/describe/targets.d.ts +40 -0
- package/dist/domain/entry.js +19 -0
- package/dist/domain/generated-tools.js +18 -0
- package/dist/domain/generation.d.ts +16 -0
- package/dist/domain/generation.js +1 -0
- package/dist/domain/input.js +15 -0
- package/dist/domain/model.js +1 -0
- package/dist/domain/paging.js +213 -0
- package/dist/domain/recipes.js +22 -0
- package/dist/domain/userReferences.js +4 -0
- package/dist/domain/wireScalars.js +41 -0
- package/dist/infrastructure/adminEntries.js +156 -0
- package/dist/infrastructure/adminPaging.js +70 -0
- package/dist/infrastructure/artifacts.js +67 -0
- package/dist/infrastructure/authSchema.js +74 -0
- package/dist/infrastructure/bundle.js +159 -0
- package/dist/infrastructure/cli.js +111 -0
- package/dist/infrastructure/generate.d.ts +12 -0
- package/dist/infrastructure/generate.js +175 -0
- package/dist/infrastructure/generateAuth.d.ts +8 -0
- package/dist/infrastructure/generateAuth.js +66 -0
- package/dist/infrastructure/help.js +55 -0
- package/dist/infrastructure/init.js +50 -0
- package/dist/infrastructure/inputs.js +32 -0
- package/dist/infrastructure/mounts.js +22 -0
- package/dist/infrastructure/wrangler.js +103 -0
- package/dist/kernel/authorization.d.ts +4 -0
- package/dist/kernel/authorization.js +15 -0
- package/dist/kernel/binds.d.ts +60 -0
- package/dist/kernel/binds.js +39 -0
- package/dist/kernel/caller-identity.d.ts +21 -0
- package/dist/kernel/caller-identity.js +7 -0
- package/dist/kernel/caller-mode.d.ts +4 -0
- package/dist/kernel/caller-mode.js +14 -0
- package/dist/kernel/contract-error.d.ts +12 -0
- package/dist/kernel/contract-error.js +14 -0
- package/dist/kernel/contracts.d.ts +135 -0
- package/dist/kernel/contracts.js +56 -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} +0 -9
- package/dist/kernel/dialect/common.d.ts +38 -0
- package/dist/kernel/dialect/common.js +3 -0
- package/dist/kernel/dialect/postgres.d.ts +16 -0
- package/dist/kernel/dialect/postgres.js +16 -0
- package/dist/kernel/dialect/sqlite.d.ts +20 -0
- package/dist/kernel/dialect/sqlite.js +29 -0
- package/dist/kernel/drain.d.ts +5 -0
- package/dist/kernel/drain.js +29 -0
- package/dist/kernel/driver/bun-sqlite.d.ts +19 -0
- package/dist/kernel/driver/bun-sqlite.js +73 -0
- package/dist/kernel/driver/d1.d.ts +24 -0
- package/dist/kernel/driver/d1.js +21 -0
- package/dist/kernel/driver/postgres.d.ts +25 -0
- package/dist/kernel/driver/postgres.js +84 -0
- package/dist/kernel/driver/transaction-context.d.ts +10 -0
- package/dist/kernel/driver/transaction-context.js +28 -0
- package/dist/kernel/email.d.ts +28 -0
- package/dist/{auth/emailTemplates.js → kernel/email.js} +9 -2
- package/dist/kernel/host-access.d.ts +10 -0
- package/dist/kernel/host-access.js +64 -0
- package/dist/kernel/host-caller.d.ts +39 -0
- package/dist/kernel/host-caller.js +53 -0
- package/dist/kernel/json-body.d.ts +4 -0
- package/dist/kernel/json-body.js +42 -0
- package/dist/kernel/mcp-apps.d.ts +69 -0
- package/dist/kernel/mcp-apps.js +35 -0
- package/dist/kernel/mcp-call.d.ts +5 -0
- package/dist/kernel/mcp-call.js +24 -0
- package/dist/kernel/mcp-handler.js +347 -0
- package/dist/kernel/mcp.d.ts +110 -0
- package/dist/kernel/mcp.js +45 -0
- package/dist/kernel/media.d.ts +27 -0
- package/dist/kernel/media.js +198 -0
- package/dist/kernel/paging.d.ts +55 -0
- package/dist/kernel/paging.js +87 -0
- package/dist/kernel/publishing.d.ts +4 -0
- package/dist/kernel/publishing.js +15 -0
- package/dist/{cloudflare/r2Media.d.ts → kernel/r2-media.d.ts} +4 -5
- package/dist/kernel/r2-media.js +71 -0
- package/dist/kernel/rest-dispatch.js +37 -0
- package/dist/kernel/rest-router.js +63 -0
- package/dist/kernel/rest.d.ts +58 -0
- package/dist/kernel/rest.js +38 -0
- package/dist/kernel/scalars.d.ts +6 -0
- package/dist/kernel/scalars.js +36 -0
- package/dist/kernel/search.js +4 -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 +39 -0
- package/dist/kernel/site.js +30 -0
- package/dist/kernel/store.d.ts +175 -0
- package/dist/kernel/store.js +244 -0
- package/dist/kernel/surface-failure.d.ts +10 -0
- package/dist/kernel/surface-failure.js +29 -0
- package/dist/kernel/surface.d.ts +10 -0
- package/dist/kernel/surface.js +16 -0
- package/dist/kernel/sweep.d.ts +17 -0
- package/dist/kernel/sweep.js +26 -0
- package/dist/kernel/translations.d.ts +1 -0
- package/dist/kernel/translations.js +12 -0
- package/dist/kernel/user-caller.d.ts +31 -0
- package/dist/kernel/user-caller.js +61 -0
- package/dist/kernel/user-field-name.js +3 -0
- package/dist/kernel/user-fields.d.ts +35 -0
- package/dist/kernel/user-fields.js +71 -0
- package/dist/kernel/validation.d.ts +15 -0
- package/dist/kernel/validation.js +46 -0
- package/dist/kernel/web-gateway.js +66 -0
- package/dist/kernel/web-head.js +14 -0
- package/dist/kernel/web-index.js +39 -0
- package/dist/kernel/web-response.js +7 -0
- package/dist/kernel/web-serve.js +97 -0
- package/dist/kernel/web.d.ts +77 -0
- package/dist/kernel/web.js +43 -0
- package/dist/kernel/where.js +21 -0
- package/dist/testing/index.d.ts +1 -37
- package/dist/testing/index.js +1 -43
- package/dist/usecase/adminBindings.js +150 -0
- package/dist/usecase/adminClient.js +66 -0
- package/dist/usecase/adminDescriptors.js +100 -0
- package/dist/usecase/generate.js +160 -0
- package/dist/usecase/handlers.js +18 -0
- package/dist/usecase/mcp-media.js +16 -0
- package/dist/usecase/mcp.js +96 -0
- package/dist/usecase/paging.js +69 -0
- package/dist/usecase/publishing.js +59 -0
- package/dist/usecase/refusals.js +27 -0
- package/dist/usecase/rest.js +53 -0
- package/dist/usecase/search.js +7 -0
- package/dist/usecase/site.js +38 -0
- package/dist/usecase/stores.js +52 -0
- package/dist/usecase/tool-version.js +6 -0
- package/dist/usecase/translations.js +76 -0
- package/dist/usecase/ttl.js +20 -0
- package/dist/usecase/validation.js +221 -0
- package/dist/usecase/web.js +23 -0
- package/docs/examples/README.md +39 -16
- package/docs/examples/app-shell/README.md +121 -0
- package/docs/examples/app-shell/accept.mjs +91 -0
- package/docs/examples/app-shell/gitignore +7 -0
- package/docs/examples/app-shell/package.json +43 -0
- package/docs/examples/app-shell/pnpm-workspace.yaml +8 -0
- package/docs/examples/app-shell/smoke-kit.mjs +168 -0
- package/docs/examples/app-shell/src/auth.ts +58 -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 +16 -0
- package/docs/examples/app-shell/src/schedule.ts +8 -0
- package/docs/examples/app-shell/src/service.ts +71 -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 +6 -2
- package/docs/examples/app-shell/worker-configuration.d.ts +22 -0
- package/docs/examples/app-shell/wrangler.jsonc +62 -0
- package/docs/examples/club-events/README.md +65 -0
- package/docs/examples/club-events/manifests/club-events.yaml +247 -0
- package/docs/examples/club-events/smoke.mjs +127 -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 +78 -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 +8 -0
- package/docs/examples/purchasing/.dev.vars.example +6 -0
- package/docs/examples/purchasing/README.md +99 -0
- package/docs/examples/purchasing/manifests/purchasing.yaml +374 -0
- package/docs/examples/purchasing/seed.sql +4 -0
- package/docs/examples/purchasing/smoke.mjs +191 -0
- package/docs/examples/purchasing/src/admin.tsx +13 -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 +69 -0
- package/docs/examples/recipes/README.md +60 -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 +74 -0
- package/docs/handbook/cloudflare/authentication.md +186 -108
- package/docs/handbook/cloudflare/chatgpt-sites.md +5 -112
- package/docs/handbook/cloudflare/deploy-and-operate.md +59 -87
- package/docs/handbook/cloudflare/media-r2.md +61 -82
- package/docs/handbook/cloudflare/service-entry.md +223 -119
- package/docs/handbook/concepts/authorization.md +10 -117
- 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 +24 -116
- 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-ui.md +113 -136
- package/docs/handbook/guides/agent-setup.md +32 -27
- package/docs/handbook/guides/agent-workflow-acceptance.md +232 -0
- package/docs/handbook/guides/email.md +86 -0
- package/docs/handbook/guides/local-testing.md +40 -0
- package/docs/handbook/guides/mcp-apps.md +560 -0
- package/docs/handbook/guides/native-admin.md +566 -0
- package/docs/handbook/guides/native-execution.md +133 -0
- package/docs/handbook/guides/oauth.md +219 -0
- package/docs/handbook/guides/postgres-adapters.md +56 -0
- package/docs/handbook/guides/public-pages.md +93 -0
- package/docs/handbook/guides/size-and-startup.md +9 -0
- package/docs/handbook/guides/sql-patterns.md +266 -0
- package/docs/handbook/guides/typed-queries.md +210 -100
- package/docs/handbook/navigation.json +176 -30
- package/docs/handbook/reference/admin-descriptors.md +56 -0
- package/docs/handbook/reference/authorization.md +44 -52
- package/docs/handbook/reference/describe.md +56 -0
- package/docs/handbook/reference/diagnostics.md +19 -77
- package/docs/handbook/reference/features.md +45 -53
- package/docs/handbook/reference/manifest.md +6 -69
- package/docs/handbook/reference/procedure.md +11 -115
- package/docs/handbook/reference/schema.md +81 -172
- package/docs/handbook/reference/site-config.md +5 -65
- package/docs/handbook/reference/sql.md +64 -0
- package/docs/handbook/reference/surface.md +396 -93
- package/docs/handbook/reference/trigger.md +62 -89
- package/docs/handbook/reference/view.md +40 -158
- package/docs/handbook/releases/index.md +198 -12
- package/docs/handbook/start/agents.md +45 -0
- package/docs/handbook/start/overview.md +9 -56
- package/docs/handbook/start/project-and-cli.md +51 -131
- package/docs/handbook/start/quickstart-worker.md +38 -115
- package/docs/skills/develop/SKILL.md +77 -121
- package/docs/skills/integrate/SKILL.md +37 -84
- package/docs/skills/media-gc/SKILL.md +21 -8
- package/docs/skills/provision/SKILL.md +31 -87
- package/docs/skills/update/SKILL.md +20 -34
- package/docs/source/scripts/postgres-adapter.ts +101 -0
- package/docs/upgrade-0.1-to-0.2.md +26 -10
- package/package.json +120 -112
- package/skills/README.md +67 -0
- package/skills/mantle/SKILL.md +76 -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 -589
- package/dist/admin/createAdminSurface.js.map +0 -1
- package/dist/admin/developerConsole.d.ts +0 -264
- 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 -4
- package/dist/admin/index.d.ts.map +0 -1
- package/dist/admin/index.js +0 -4
- package/dist/admin/index.js.map +0 -1
- package/dist/admin/procedureFlow.d.ts +0 -25
- package/dist/admin/procedureFlow.d.ts.map +0 -1
- package/dist/admin/procedureFlow.js +0 -154
- 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 -4565
- package/dist/auth/buildAuth.d.ts.map +0 -1
- package/dist/auth/buildAuth.js +0 -307
- 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 -483
- 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 -355
- 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 -352
- 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/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 -16
- package/dist/core/withCaller.d.ts.map +0 -1
- package/dist/core/withCaller.js +0 -29
- 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 -34
- package/dist/mcp/createMcpSurface.d.ts.map +0 -1
- package/dist/mcp/createMcpSurface.js +0 -150
- 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/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 -39
- 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 -919
- 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 -25
- package/docs/adr/0032-store-centric-core-and-service-contract.md +0 -361
- 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 -215
- 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 -156
- 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/skills/develop/mcp-app.md +0 -79
- /package/docs/examples/{reference-service → app-shell}/.dev.vars.example +0 -0
|
@@ -1,93 +1,396 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
A
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
1
|
+
# Generated surfaces
|
|
2
|
+
|
|
3
|
+
- The app mounts generated modules and passes `{ db, caller }`; `caller(request, env, { readOnly })`
|
|
4
|
+
is the app's own `resolveCaller(...)` call. There is no generated `service.ts`,
|
|
5
|
+
routing framework or Better Auth wrapper.
|
|
6
|
+
- REST retains public `GET /api/views/<name>` (and bodyless HEAD) with declared query input plus
|
|
7
|
+
`limit` and `cursor`, answering `{ rows, nextCursor? }`. HTTP Triggers retain
|
|
8
|
+
their own method/path; JSON bodies and path parameters form the Procedure
|
|
9
|
+
input and responses contain its result. Errors remain
|
|
10
|
+
`{ error: { code, message, path } }` with the 0.2 status. Cookie sessions cannot
|
|
11
|
+
mutate across origins.
|
|
12
|
+
- MCP retains public `POST /mcp`, admin `POST /mcp/admin`,
|
|
13
|
+
snake-cased View names on each declared surface, and snake-cased Procedure
|
|
14
|
+
names per MCP Trigger. Its SDK loads only through a request-time dynamic import.
|
|
15
|
+
- HTTP/MCP Triggers declare exposure only. `mantle generate` refuses schedule
|
|
16
|
+
and lifecycle Triggers; host scheduling is a separate capability.
|
|
17
|
+
- Native Admin retains selected 0.2 paths and the console contracts; see
|
|
18
|
+
[Native Admin](../guides/native-admin.md) for app-mounted
|
|
19
|
+
`adminBindings()` and `entries(bindings.schemas, bindings.adapter)`.
|
|
20
|
+
|
|
21
|
+
Generated `rest.ts`, `mcp.ts`, `web.ts`, `paged/views/*` and `validation/*` hold
|
|
22
|
+
only the app's tables: routes, tools, pages, operation bindings, compiled input
|
|
23
|
+
checks and types. Request handling (matching, body and query decoding, dispatch,
|
|
24
|
+
challenges, JSON-RPC, web rendering, keyset paging) lives in the package's
|
|
25
|
+
`rest`, `mcp`, `web`, `paging` and `validation` kernel modules, so a runtime fix
|
|
26
|
+
ships as a package update instead of a regeneration.
|
|
27
|
+
|
|
28
|
+
Procedure surface selection follows the [HTTP/MCP pairing default and deliberate asymmetry exception](trigger.md); no surface is implied.
|
|
29
|
+
|
|
30
|
+
The generated `validation/views/<name>.ts` and
|
|
31
|
+
`validation/procedures/<name>.ts` export `validate(unknown)`. View validators
|
|
32
|
+
also export `query(URLSearchParams)` returning `{ input, limit?, cursor? }`.
|
|
33
|
+
REST and MCP use the same generated checks, with no runtime schema interpreter.
|
|
34
|
+
Supported checks are types/unions and nullable, required/properties/additionalProperties,
|
|
35
|
+
arrays/items and length bounds, enum, `const`, local `$defs`/`$ref`, string length/pattern,
|
|
36
|
+
numeric bounds/`multipleOf`, and the formats `date`, `date-time`, `email` and `uri`. The deliberately permissive
|
|
37
|
+
email check requires exactly one `@`, non-empty local and domain parts, and no
|
|
38
|
+
whitespace; it does not require a dot, verify deliverability, or implement full
|
|
39
|
+
RFC mailbox syntax. `uri` means an absolute `http:` or `https:` URL, stricter than
|
|
40
|
+
JSON Schema's any-scheme URI, so `javascript:` and `data:` links fail. Integers must be safe; fractional
|
|
41
|
+
`multipleOf` uses a 1e-9 quotient tolerance. Defaults remain
|
|
42
|
+
annotations and are not inserted into request input.
|
|
43
|
+
|
|
44
|
+
View and Procedure input objects (not Schemas or outputs) also take three rules
|
|
45
|
+
between their declared properties, each failing with one `INPUT_VALIDATION_FAILED`
|
|
46
|
+
error whose message names the rule:
|
|
47
|
+
|
|
48
|
+
- `dependentRequired: { weight: [unit] }`: "'unit' is required when 'weight' is
|
|
49
|
+
present.", at the missing field.
|
|
50
|
+
- `anyOf` whose every branch is exactly `{ required: [...] }`: "At least one of
|
|
51
|
+
'weight', 'heightCm' is required.", at the object.
|
|
52
|
+
- `if: { properties: { undo: { const: true } }, required: [undo] }` with `then`
|
|
53
|
+
and/or `else` each exactly `{ required: [...] }`: "'item' is required unless
|
|
54
|
+
'undo' is true.", at the missing field. `if` must list its field in `required`:
|
|
55
|
+
otherwise an absent field would satisfy it.
|
|
56
|
+
|
|
57
|
+
Any other `anyOf`/`if`/`then`/`else`, `oneOf`, `uniqueItems`, object property-count
|
|
58
|
+
bounds and other keywords and formats are refused at generation. The rules only
|
|
59
|
+
validate: types, SQL binds and Admin forms keep the declared fields, and Admin
|
|
60
|
+
shows the server's error at its field. `describe` keeps them as written; MCP and
|
|
61
|
+
WebMCP tools advertise the schema without them and append each rule's sentence to
|
|
62
|
+
the tool description, since some model APIs refuse these keywords in a tool's
|
|
63
|
+
input schema. [Trigger](trigger.md#input-rules) has an example.
|
|
64
|
+
|
|
65
|
+
Native `paged/views/<name>.ts` has a default export, callable as
|
|
66
|
+
`page(db, caller, input, { limit?, cursor? })` after importing it as `page`,
|
|
67
|
+
answering `{ rows, nextCursor? }`.
|
|
68
|
+
Bare `views/<name>.ts` retains native row arrays and accepts app-validated input;
|
|
69
|
+
selecting neither boundary adds no validation or paging work to that query.
|
|
70
|
+
Selected REST/MCP/Admin responses convert declared integer columns on every target
|
|
71
|
+
to safe numbers or exact decimal strings. Their SQL reads integers as text before
|
|
72
|
+
driver conversion; integer cursor keys retain that precision without changing native
|
|
73
|
+
sort order. `views/<name>.ts` also exports `WireRow` for selected transport
|
|
74
|
+
boundaries; declared wire fields agree across targets. Declared SQLite/D1
|
|
75
|
+
JSON/boolean columns become JSON values and booleans. Aliases follow generated
|
|
76
|
+
source-column lineage; computed values and Procedure/ref results retain
|
|
77
|
+
their contracts. Native integer bigint cursor keys are serialized separately.
|
|
78
|
+
REST/MCP use separate `paged/wire/views/<name>.ts` SQL when declared integers
|
|
79
|
+
require exact transport projections. Web pages and internal paged Views keep
|
|
80
|
+
driver-native rows. Internal paging creates no public route/tool.
|
|
81
|
+
Authored SQL `LIMIT` bounds the complete ordered row set, including across cursor pages.
|
|
82
|
+
Use `limit` in the paging options to choose each page size (up to 500); it does not expand the View's declared result set.
|
|
83
|
+
An MCP View page keeps the `limit` of 1 to 500 but holds only as many of those rows
|
|
84
|
+
as fit 60,000 characters of JSON, so a result stays under host truncation limits. It
|
|
85
|
+
is cut before the first row that overflows and its next cursor resumes at that row.
|
|
86
|
+
A single row over the budget is returned alone with the cursor, and a View without an
|
|
87
|
+
order stays one whole page; a page still over the budget carries a notice that hosts
|
|
88
|
+
may truncate it.
|
|
89
|
+
A pageable Schema View has a complete NOT NULL scalar tuple ending in the
|
|
90
|
+
compiler's `id` tiebreak. Its ordered columns must match an index after fixed
|
|
91
|
+
equality prefixes; a user-field `IN` scope or restrict is not one (see
|
|
92
|
+
[index prefixes](schema.md#index-prefixes-for-paged-views)); multiple columns and mixed directions
|
|
93
|
+
retain the authored order. CTE projections preserve the proof; joins must have a
|
|
94
|
+
proved singleton side, or equality on the joined Schema's `id` or single-field
|
|
95
|
+
unique key, so the base id cannot fan out. LEFT JOIN accepts nullable or missing
|
|
96
|
+
base references while preserving the base order/key tuple; joined fields remain
|
|
97
|
+
nullable cursor keys. Refusals identify the nullable key, missing ORDER BY index,
|
|
98
|
+
or fanning join and state a remedy. Relation aliases and nested CTE
|
|
99
|
+
bindings keep their own identity; same-Schema aliases are not interchangeable.
|
|
100
|
+
|
|
101
|
+
Grouped Views use every GROUP BY key as the tiebreak, with known non-null scalar
|
|
102
|
+
keys; unfiltered, non-windowed `min`/`max` of a non-null column retain its native cursor type. Paging a
|
|
103
|
+
grouped result does not avoid the native grouping/source scan. Authors own source
|
|
104
|
+
predicate indexes and should inspect EXPLAIN for their workload. Nullable,
|
|
105
|
+
unknown and JSON order expressions and unproved fanout remain refused.
|
|
106
|
+
Trusted system reads retain their all-scope SQL: without an actual scope
|
|
107
|
+
predicate, a scope-first index is not a proved range scan and native sorting or
|
|
108
|
+
scanning may be needed. Caller equality-prefix proofs do not claim otherwise.
|
|
109
|
+
|
|
110
|
+
Proved singletons (scalar/aggregate queries, unique-id lookups and singleton
|
|
111
|
+
sources) run bounded first-page SQL, reject cursors and refuse overflow.
|
|
112
|
+
Internal Views receive directly imported paged modules only when the same proofs
|
|
113
|
+
hold; they gain no public route or tool. Their bare modules remain available for
|
|
114
|
+
other native SQL and return full authored-query arrays.
|
|
115
|
+
|
|
116
|
+
Cursors reuse the Store's percent-encoded JSON keyset codec. Selected View
|
|
117
|
+
cursors include operation provenance; malformed, foreign and
|
|
118
|
+
null-key cursors fail with `INPUT_VALIDATION_FAILED`. Each generated key has a
|
|
119
|
+
scalar check; temporal keys keep database microseconds. Existing one/two-key
|
|
120
|
+
formats and Store cursors are preserved; larger View tuples contain their full
|
|
121
|
+
key list followed by operation provenance. They are opaque navigation
|
|
122
|
+
values, not credentials; authorization and row predicates run on every page.
|
|
123
|
+
|
|
124
|
+
## Mounting REST
|
|
125
|
+
|
|
126
|
+
`rest.ts` exports `rest({ db, caller })`, returning an async
|
|
127
|
+
`(request, env) => Response | undefined`. The app supplies its native handle and
|
|
128
|
+
verified Caller; requests outside `/api` fall through to the app. Public Views
|
|
129
|
+
use `/api/views/<name>`; HTTP Triggers keep their declared method and path.
|
|
130
|
+
Known paths with another method return 405 with an `Allow` header. All responses use
|
|
131
|
+
`cache-control: private, no-store`. JSON bodies and decoded path parameters
|
|
132
|
+
are validated together, with path parameters taking precedence. Bodies larger
|
|
133
|
+
than 1,000,000 bytes are refused; `content-length` is checked before reading.
|
|
134
|
+
A resolver's `ContractError` keeps its status (an expired token is 401 with its challenge); any other resolver exception returns a redacted 500. Cookie-origin refusals retain
|
|
135
|
+
`path: "request:origin"`; REST and MCP share the kernel check.
|
|
136
|
+
|
|
137
|
+
When the manifest declares ref Procedures, pass the generated `Handlers` as
|
|
138
|
+
`rest({ db, caller, handlers })`; the option is type-required. Handler dispatch
|
|
139
|
+
uses the generated Store, preserving the Procedure's authorization contract.
|
|
140
|
+
Publishing visibility belongs to generated SQL; the REST module adds no status
|
|
141
|
+
filter. The app retains ownership of authentication and its other routes.
|
|
142
|
+
|
|
143
|
+
## Optional web output
|
|
144
|
+
|
|
145
|
+
`web.ts` exports `web({ db, caller, origin, title, description, locales?, pages,
|
|
146
|
+
cacheControl? })`. `db` is the application-owned native handle, including callable
|
|
147
|
+
PostgreSQL handles. `caller` is a verified Caller or the app's
|
|
148
|
+
`(request, env, { readOnly }) => Caller | Promise<Caller>` resolver, evaluated once per request.
|
|
149
|
+
Generated REST/MCP/web callbacks classify reads; forward the third argument to
|
|
150
|
+
`resolveCaller` to permit an enabled cookie cache, as documented in
|
|
151
|
+
[authentication](../cloudflare/authentication.md#explicit-read-only-cookie-snapshots).
|
|
152
|
+
The module dispatches public Views only; it never invokes Procedures or needs handlers.
|
|
153
|
+
|
|
154
|
+
```ts
|
|
155
|
+
import { web } from './generated/web.js';
|
|
156
|
+
const site = web({ db, caller, origin: 'https://example.com', title: 'Blog',
|
|
157
|
+
description: 'Articles', locales: ['en'],
|
|
158
|
+
pages: { '/posts/{slug}': { view: 'post-by-slug', list: 'posts', markdown: 'body' } }
|
|
159
|
+
});
|
|
160
|
+
const response = await site.fetch(request, env); // Response | undefined
|
|
161
|
+
const tags = await site.head(request, env); // HTML string, empty for unknown/missing pages
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Page parameter names must exactly match the View's declared input properties.
|
|
165
|
+
Page and list Views must return the page parameters; list Views must accept empty input: no
|
|
166
|
+
`required`, no root `anyOf`, `enum` or `const`, no `else` rule, and a root `type`, when given, that includes `object`.
|
|
167
|
+
These conditions also apply to each schema a root `$ref` chain reaches, and an unresolved or cyclic chain fails them.
|
|
168
|
+
`web()` throws a `TypeError` for any other list View. Markdown
|
|
169
|
+
must name a textual output column. HTML remains application-owned.
|
|
170
|
+
|
|
171
|
+
`/llms.txt` and `/sitemap.xml` traverse each list's `nextCursor`; `.md` and head
|
|
172
|
+
read the current page View. SQL alone controls visibility, including publication.
|
|
173
|
+
GET/HEAD responses include content-derived SHA-256 ETags. Anonymous responses use
|
|
174
|
+
`cacheControl` or `public, max-age=60`; authenticated responses use
|
|
175
|
+
`private, no-store`. `If-None-Match` returns 304 only after current content is read.
|
|
176
|
+
Canonical URLs use the configured origin, independently of the request host.
|
|
177
|
+
The current implementation adds hreflang only for `locales[0]`; translation-aware
|
|
178
|
+
indexes and head tags are a follow-up below. Importing another generated entry
|
|
179
|
+
does not import web output.
|
|
180
|
+
|
|
181
|
+
Web indexes scan at most 50,000 rows for one sitemap and 5,000 for `llms.txt`,
|
|
182
|
+
across all configured lists. Skipped `.`/`..` path segments consume the scan
|
|
183
|
+
budget too. Output stops before exceeding 50 MiB of UTF-8 sitemap XML (including
|
|
184
|
+
its closing tag) or 1 MiB of `llms.txt`; a sitemap index can be added separately.
|
|
185
|
+
Each request also stops after 100 sitemap queries or 10 `llms.txt` queries,
|
|
186
|
+
across all templates. Small authored SQL LIMITs or many templates can truncate
|
|
187
|
+
output sooner. A sitemap index remains separate future work.
|
|
188
|
+
|
|
189
|
+
`head` normalizes URLs from the queried row's page parameters, matching sitemap
|
|
190
|
+
URLs; malformed paths, failed validation and unavailable rows return an empty
|
|
191
|
+
string. A NULL Markdown field answers 404. Errors and missing Markdown responses
|
|
192
|
+
use `cache-control: no-store`. A matching HTML page takes precedence over a `.md`
|
|
193
|
+
alternate, including slugs ending in `.md`; a Markdown alternate may read the
|
|
194
|
+
exact HTML candidate first and therefore performs at most two View queries.
|
|
195
|
+
|
|
196
|
+
## Mounting MCP
|
|
197
|
+
|
|
198
|
+
Mount the generated `mcp({ db: env => env.DB, caller })` handler in the app's
|
|
199
|
+
Fetch entry. It returns `undefined` outside `/mcp` and `/mcp/admin`. Install the
|
|
200
|
+
optional official `@modelcontextprotocol/server` peer when selecting MCP; its
|
|
201
|
+
transport loads on the first matching request. Pass `handlers` when ref
|
|
202
|
+
Procedures are declared, as for REST. Admin tools are listed only on the admin
|
|
203
|
+
endpoint, and publishing visibility belongs to the generated SQL.
|
|
204
|
+
|
|
205
|
+
`apps.public` and `apps.admin` accept a `McpAppsSource` or an array mixing static
|
|
206
|
+
contributors with async `({ env, request }) => McpApps` factories. Static resources
|
|
207
|
+
are checked once at construction; factories resolve only after the endpoint's
|
|
208
|
+
origin and caller gates, and their resource identities and ownership are checked
|
|
209
|
+
on each request even when the tool names are unchanged.
|
|
210
|
+
|
|
211
|
+
Discovery is caller-independent by default (ADR-0014); listing a tool grants no
|
|
212
|
+
execution authority. Configure `authorize` to filter `tools/list` and the tool
|
|
213
|
+
names supplied to resource HTML loaders: that mode also excludes tools refused
|
|
214
|
+
by declared identity, scope and `check` requirements. Without `authorize`, the
|
|
215
|
+
complete endpoint catalogue is not a permission-filtered catalogue. Operation
|
|
216
|
+
validation, guards and credential checks still apply to calls.
|
|
217
|
+
|
|
218
|
+
The app resolves bearer tokens with `resolveCaller(request, auth, { audience:
|
|
219
|
+
new URL('/mcp', request.url).href })` (both surfaces use `<origin>/mcp`). The app
|
|
220
|
+
must also mount Better Auth's `/.well-known/oauth-protected-resource/mcp`
|
|
221
|
+
metadata route. Auth challenges point to that route. Presented bearer credentials
|
|
222
|
+
need the `mcp` scope; cookie sessions use the same-origin mutation checks.
|
|
223
|
+
|
|
224
|
+
Generation emits `mcp.ts` only for a non-internal View or MCP Trigger. Omitting
|
|
225
|
+
MCP remains a deliberate asymmetric choice; an HTTP-only Procedure still generates
|
|
226
|
+
successfully with the warning described in [Trigger](trigger.md). These
|
|
227
|
+
surfaces typecheck without the optional `@modelcontextprotocol/server` peer;
|
|
228
|
+
install the exact version declared in the installed SDK's `peerDependencies`.
|
|
229
|
+
The peer loads by dynamic import on the first matching `/mcp` request; if
|
|
230
|
+
missing, that request fails at runtime. Publishing alone does not select MCP;
|
|
231
|
+
on a selected
|
|
232
|
+
surface its generated `publish_<schema>`, `unpublish_<schema>` and
|
|
233
|
+
`archive_<schema>` tools use the same snake-case naming rule, are admin-only
|
|
234
|
+
and take `{ id, expectedVersion }` through the shared generated validation.
|
|
235
|
+
|
|
236
|
+
`/mcp/admin` admits only admins: `isAdmin(caller)` must hold. It lists only admin-surface tools; public Views and Procedures stay on `/mcp`, and generation never copies them across. An admin's AI that changes records also needs admin Views to find them and read back the committed row and its version (search, detail), declared by the app; the [acceptance design audit](../guides/agent-workflow-acceptance.md#audit-mcp-tool-design-before-implementation) checks this. Better Auth’s admin plugin `adminRoles` defines this layer (default `["admin"]`); the application supplies its verified Caller. MCP bodies are limited
|
|
237
|
+
to 1 MiB (1,048,576 bytes). Resource metadata challenges use the origin of
|
|
238
|
+
`request.url`; behind a proxy, the app must pass a Request with its public
|
|
239
|
+
origin so the audience and metadata URL point to the client-visible service.
|
|
240
|
+
|
|
241
|
+
Selected integer cursor keys may be exact canonical decimal strings on either dialect; SQLite cursor binds are cast to INTEGER so grouped expressions and native columns compare the same value; they are bounded to the declared integer range. This applies to cursor metadata only and does not change bare query or Store integer outputs, or recover integers already rounded by a native driver. `validCursor` is shared with selected boundary adapters.
|
|
242
|
+
|
|
243
|
+
Cursor casts target only proved AST bind nodes, preserving authored SQL literals. Paging proofs respect the compiler's lexical table/CTE identity. Explicit CTE or relation column renaming is currently refused for paging because uniqueness has not been proved through those aliases; internal bare queries remain available.
|
|
244
|
+
|
|
245
|
+
A paged View's output names must not collide with its actual hidden cursor keys (`_k0` through `_kN-1`); SQLite compares aliases without case sensitivity. Such internal Views keep their bare entry but receive no paged entry. Other output names remain available.
|
|
246
|
+
|
|
247
|
+
## Selected Admin bindings
|
|
248
|
+
|
|
249
|
+
See [Native Admin](../guides/native-admin.md) for the single
|
|
250
|
+
current contract: three packages, explicit generation and app mounting, shared
|
|
251
|
+
whitelisted get/page/statistics templates, native Procedure fragments, generated
|
|
252
|
+
input checks, exact OCC and optional capabilities. These features are implemented
|
|
253
|
+
as an explicit option.
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
### MCP catalogue and callbacks
|
|
257
|
+
|
|
258
|
+
`mcp({ db, caller, handlers?, locale?, instructions?, serverInfo?, requiredScopes?,
|
|
259
|
+
resourceMetadata?, allowedOrigins?, onObservation?, onRefusal? })` keeps the SDK behind its first
|
|
260
|
+
request. Locale defaults to `en`; localized titles/descriptions fall back to
|
|
261
|
+
English, then their first entry. Tools carry the [tool hints](procedure.md#mcp-tool-hints). `instructions` is returned by initialize.
|
|
262
|
+
The scope floor defaults to `["mcp"]` for every credential except cookie sessions;
|
|
263
|
+
`requiredScopes: []` disables that floor. An anonymous closed surface challenges
|
|
264
|
+
from initialize, and every call in a batch is checked before any call runs.
|
|
265
|
+
`resourceMetadata` overrides the challenge URL for reverse proxies.
|
|
266
|
+
|
|
267
|
+
Both endpoints answer a request without `Origin`, which is what server-side MCP
|
|
268
|
+
clients send; a bearer credential needs none. A cookie session is ambient authority, so
|
|
269
|
+
`checkOrigin` also guards it: on a request that is not GET, HEAD or OPTIONS, at least one of
|
|
270
|
+
`Origin` and `Sec-Fetch-Site` must be present and every present one must agree (`Origin` equal
|
|
271
|
+
to the request's own origin; `Sec-Fetch-Site` `same-origin` or `none`), else `AUTH_DENIED` at
|
|
272
|
+
`request:origin`. On MCP it runs only for a tool call that executes (not a read-only call from an
|
|
273
|
+
App host), not for initialize or `tools/list`; `allowedOrigins` does not lift it. A present `Origin` marks a browser: it must name a loopback host
|
|
274
|
+
(`localhost`, `127.0.0.1`, `[::1]`, any port) or an `allowedOrigins` entry, else
|
|
275
|
+
403 before authentication on every credential; `Origin: null` is refused. The
|
|
276
|
+
site's own origin is not implied, because a DNS-rebinding page sends an `Origin`
|
|
277
|
+
equal to the `Host` it rebound, so a browser client served from your deployed
|
|
278
|
+
site lists that origin: `allowedOrigins: ["https://app.example"]`. Entries are
|
|
279
|
+
compared by hostname as the official SDK does (not scheme or port); each is a
|
|
280
|
+
full origin (`https://console.example`) or the SDK's bare host
|
|
281
|
+
(`console.example`, `localhost:8787`), and anything else, such as a path, throws
|
|
282
|
+
when `mcp(...)` is configured; so does a wildcard such as `*` or
|
|
283
|
+
`https://*.example.com`, since entries are matched by exact hostname. `Host` is
|
|
284
|
+
not checked. Cookie writes also need the full same-origin check.
|
|
285
|
+
|
|
286
|
+
`/mcp` sends no CORS headers. `allowedOrigins` therefore serves pages on the
|
|
287
|
+
same origin as the endpoint, or clients behind a proxy that forwards their
|
|
288
|
+
`Origin`; a browser client on another origin also needs the app to answer
|
|
289
|
+
preflight and add CORS headers itself. Under `wrangler dev` with `routes` or
|
|
290
|
+
`dev.host`, Miniflare rewrites an `Origin` equal to the request's own origin to
|
|
291
|
+
the route or `dev.host` origin, and a DNS-rebinding request always has that
|
|
292
|
+
shape. Listing that host would admit rebinding against the local server, so keep
|
|
293
|
+
the route and `dev.host` hosts out of `allowedOrigins` in local development.
|
|
294
|
+
|
|
295
|
+
`onObservation` receives request refusals and invocation attempt/completion
|
|
296
|
+
metadata, including duration and outcome. Its Caller and scopes are frozen copies.
|
|
297
|
+
`onRefusal` receives credential/origin refusals. Neither callback receives request
|
|
298
|
+
headers, bodies or tokens; delivery failures never change the business response
|
|
299
|
+
and promises are not awaited. The application owns callback delivery.
|
|
300
|
+
|
|
301
|
+
**Procedure output:** SQL Procedures retain the native `{ results }`
|
|
302
|
+
contract rather than 0.2's authored output projection/validation; MCP advertises
|
|
303
|
+
that object envelope, not the incompatible authored schema. Ref Procedures expose
|
|
304
|
+
the application's typed return value and advertise their authored object output
|
|
305
|
+
schema. The application owns ref output validation. MCP does not decode or
|
|
306
|
+
revalidate native database rows. Business failures carry diagnostics in text;
|
|
307
|
+
with an output schema they omit `structuredContent` to avoid validating an error
|
|
308
|
+
against a success schema. Without one they also expose diagnostic structured
|
|
309
|
+
content. MCP adds no prompts or non-UI resources.
|
|
310
|
+
|
|
311
|
+
### Tool versions
|
|
312
|
+
|
|
313
|
+
Each generated tool (MCP, media, publishing and WebMCP) carries `version`, a
|
|
314
|
+
short hash computed by `mantle generate` of the definition as listed: name,
|
|
315
|
+
title, description without the marker, input schema (a View tool's with its
|
|
316
|
+
`limit` and `cursor` paging properties), output schema and annotations. A
|
|
317
|
+
localized title or description is hashed with all its locales. The description
|
|
318
|
+
ends with `(tool version <version>)`, so an unchanged tool keeps a
|
|
319
|
+
byte-identical description across deploys.
|
|
320
|
+
|
|
321
|
+
MCP results of a call that reaches the tool add a second text block,
|
|
322
|
+
`tool version <version>`; failures other than authorization refusals append
|
|
323
|
+
`; input schema <JSON>`, the input schema the tool is listed with.
|
|
324
|
+
`structuredContent` is unchanged. A `tools/call` naming a tool the endpoint
|
|
325
|
+
serves but the caller may not use is answered by the authentication or
|
|
326
|
+
authorization challenge (HTTP 401 or 403) before the SDK's transport and
|
|
327
|
+
request checks, even though that caller's `tools/list` omits the tool. A
|
|
328
|
+
`tools/call` naming a tool not in the endpoint's catalogue, in a batch or not
|
|
329
|
+
and from a host caller too, is answered with JSON-RPC error `-32602` and the
|
|
330
|
+
message
|
|
331
|
+
`No tool named "<name>" exists in the current catalogue (catalogue version <serverInfo.version>).`
|
|
332
|
+
For such a name the SDK's transport and request checks (headers, protocol
|
|
333
|
+
version, JSON-RPC shape) answer first, so a malformed request gets the same
|
|
334
|
+
refusal as one naming a served tool the caller may use.
|
|
335
|
+
Unless `serverInfo.version` is given, the kernel's `mcp()` sets it to
|
|
336
|
+
a hash of the `surface:name:version` of every tool the endpoint serves, before
|
|
337
|
+
per-caller filtering, so `/mcp` and `/mcp/admin` each report their own catalogue
|
|
338
|
+
version, and it changes when a generated tool's definition changes or a tool is
|
|
339
|
+
added or removed, however the tools are wired.
|
|
340
|
+
|
|
341
|
+
`POST /admin/api/webmcp/{tool}` returns `{ output, version }`. A refusal's
|
|
342
|
+
diagnostic adds `toolVersion`, and `inputSchema` unless it is an authorization
|
|
343
|
+
refusal; internal errors and refusals before the call carry neither. Admin's
|
|
344
|
+
WebMCP results repeat these as the same text block MCP adds. The navigation
|
|
345
|
+
tools `admin_get_context` and `admin_navigate` have no version. Tools an
|
|
346
|
+
application adds itself carry a version only if it sets one. Why: [MCP and
|
|
347
|
+
agents](../concepts/mcp-and-agents.md#when-a-host-shows-old-tools).
|
|
348
|
+
|
|
349
|
+
### Declared View scalars on the wire
|
|
350
|
+
|
|
351
|
+
REST and MCP View pages expose declared JSON columns as JSON values and declared
|
|
352
|
+
boolean columns as booleans, including explicitly authored SQL aliases. SQLite
|
|
353
|
+
and D1 conversions are compiled into only the selected boundary pages;
|
|
354
|
+
PostgreSQL already-native JSON/boolean values pass through. SQL NULL stays null and absent
|
|
355
|
+
fields stay absent. A computed output that is a JSON document by construction
|
|
356
|
+
(`json_group_array`, `json_set`, `jsonb_agg`, `jsonb_build_object` and the like, a scalar
|
|
357
|
+
subquery of one, or a `COALESCE` of those) is converted like a declared JSON column, so it
|
|
358
|
+
is a JSON value on every target. Other expressions without declared column lineage stay native.
|
|
359
|
+
Malformed persisted JSON becomes a redacted internal failure. The conversion
|
|
360
|
+
adds no database operations and does not mutate native query rows.
|
|
361
|
+
|
|
362
|
+
Bare Views, Store rows, native SQL Procedure `{ results }` and application-owned
|
|
363
|
+
ref outputs retain their native contracts. Use the generated `rest()` / `mcp()`
|
|
364
|
+
module for this client wire contract; do not duplicate JSON/boolean decoding in
|
|
365
|
+
application route handlers or decode PostgreSQL JSON strings a second time.
|
|
366
|
+
|
|
367
|
+
Declared integer columns (including a selected system `version`) on every target
|
|
368
|
+
use the wire form: safe integers become JSON numbers; unsafe values remain exact
|
|
369
|
+
decimal text. Selected-boundary SQL casts integers to text before driver conversion,
|
|
370
|
+
preserving stored int64 values on D1 too. Values already rounded when written
|
|
371
|
+
(e.g. by a JavaScript number) cannot be recovered. Computed outputs and native
|
|
372
|
+
SQL Procedure/ref results retain their native values.
|
|
373
|
+
Unexpected surface failures log only a stable wire classification.
|
|
374
|
+
|
|
375
|
+
MCP locale fallback reads only own locale entries, then English, then the first
|
|
376
|
+
own entry; inherited property names never become titles or descriptions.
|
|
377
|
+
|
|
378
|
+
### Admin media MCP tools
|
|
379
|
+
|
|
380
|
+
With generated site configuration, `mcp({ db, caller, media: env => storage })`
|
|
381
|
+
loads the media module only on a configured admin MCP request and
|
|
382
|
+
adds `get_media_upload_policy`, `create_media_upload`, `commit_media_upload`,
|
|
383
|
+
`list_media_assets`, `get_media_asset`, `update_media_asset` and
|
|
384
|
+
`delete_media_asset` to `/mcp/admin` only. `storage` is the same `MediaStorage`
|
|
385
|
+
used by the Admin media library. Omitting `media` omits all seven tools.
|
|
386
|
+
Admins can invoke them; cookie writes retain the origin check.
|
|
387
|
+
Generated boundary code checks each input and advertises the 0.2 schemas and
|
|
388
|
+
read-only/destructive/open-world hints. Image bytes are PUT directly to the
|
|
389
|
+
returned short-lived URLs with their required headers, then committed; bytes
|
|
390
|
+
never enter MCP. Store permanent asset ids, never upload URLs.
|
|
391
|
+
|
|
392
|
+
Generation always emits a `Handlers` type (empty when no Procedure uses `handler: { ref }`), so every app wires the
|
|
393
|
+
same way: `const handlers: Handlers = {...}`, then `store(db, caller, { handlers })`, `adminBindings({ handlers })`,
|
|
394
|
+
`rest({ ...options, handlers })`, `mcp({ ...options, handlers })` and `webmcpRoutes(catalogue, tools, handlers)`.
|
|
395
|
+
Type extra hand-written tools as `Tool<Handle, Handlers>` with the generated `Handlers` before combining them with
|
|
396
|
+
the generated `tools`. Handler-less apps may still omit `{ handlers }` at `store()` and `adminBindings()`.
|