@aotter/mantle 0.2.0-alpha.6 → 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 +24 -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 -106
- 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 -224
- 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 +12 -183
- package/docs/handbook/guides/admin-ui.md +5 -164
- 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 -31
- 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 -79
- package/docs/handbook/reference/features.md +45 -53
- package/docs/handbook/reference/manifest.md +6 -69
- package/docs/handbook/reference/procedure.md +9 -118
- package/docs/handbook/reference/schema.md +75 -185
- package/docs/handbook/reference/site-config.md +5 -65
- package/docs/handbook/reference/surface.md +279 -97
- package/docs/handbook/reference/trigger.md +24 -93
- package/docs/handbook/reference/view.md +32 -160
- package/docs/handbook/releases/index.md +48 -13
- package/docs/handbook/start/overview.md +9 -56
- package/docs/handbook/start/project-and-cli.md +40 -149
- package/docs/handbook/start/quickstart-worker.md +38 -116
- package/docs/skills/develop/SKILL.md +34 -123
- 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 -91
- package/docs/skills/update/SKILL.md +19 -43
- package/docs/source/scripts/postgres-adapter.ts +101 -0
- package/docs/upgrade-0.1-to-0.2.md +25 -9
- package/package.json +96 -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 -25
- package/dist/admin/createAdminSurface.d.ts.map +0 -1
- package/dist/admin/createAdminSurface.js +0 -635
- 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/extensions.d.ts +0 -290
- package/dist/admin/extensions.d.ts.map +0 -1
- package/dist/admin/extensions.js +0 -532
- package/dist/admin/extensions.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 -7
- package/dist/admin/index.d.ts.map +0 -1
- package/dist/admin/index.js +0 -7
- 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 -4568
- package/dist/auth/buildAuth.d.ts.map +0 -1
- package/dist/auth/buildAuth.js +0 -312
- package/dist/auth/buildAuth.js.map +0 -1
- package/dist/auth/callerResolver.d.ts +0 -52
- package/dist/auth/callerResolver.d.ts.map +0 -1
- package/dist/auth/callerResolver.js +0 -52
- 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 -504
- package/dist/auth/createMantleAuth.js.map +0 -1
- package/dist/auth/db.d.ts +0 -18
- package/dist/auth/db.d.ts.map +0 -1
- package/dist/auth/db.js +0 -27
- 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 -21
- package/dist/bun/index.d.ts.map +0 -1
- package/dist/bun/index.js +0 -46
- 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 -405
- package/dist/cli/preset.js.map +0 -1
- package/dist/cloudflare/index.d.ts +0 -25
- package/dist/cloudflare/index.d.ts.map +0 -1
- package/dist/cloudflare/index.js +0 -16
- 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 -53
- 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 -24
- 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/sessionUser.d.ts +0 -14
- package/dist/core/sessionUser.d.ts.map +0 -1
- package/dist/core/sessionUser.js +0 -4
- package/dist/core/sessionUser.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 -67
- package/dist/core/sql/allowlist.d.ts.map +0 -1
- package/dist/core/sql/allowlist.js +0 -737
- 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 -123
- package/dist/core/sql/policy.d.ts.map +0 -1
- package/dist/core/sql/policy.js +0 -398
- 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 -68
- package/dist/core/sql/run.d.ts.map +0 -1
- package/dist/core/sql/run.js +0 -384
- 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 -15
- package/dist/d1/executor.d.ts.map +0 -1
- package/dist/d1/executor.js +0 -96
- 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 -23
- package/dist/postgres/adapter.d.ts.map +0 -1
- package/dist/postgres/adapter.js +0 -50
- 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 -109
- package/dist/postgres/driver.d.ts.map +0 -1
- package/dist/postgres/driver.js +0 -186
- package/dist/postgres/driver.js.map +0 -1
- package/dist/postgres/executor.d.ts +0 -28
- package/dist/postgres/executor.d.ts.map +0 -1
- package/dist/postgres/executor.js +0 -96
- package/dist/postgres/executor.js.map +0 -1
- package/dist/postgres/index.d.ts +0 -8
- package/dist/postgres/index.d.ts.map +0 -1
- package/dist/postgres/index.js +0 -8
- 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 -152
- 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 -108
- package/dist/postgres/print.js.map +0 -1
- package/dist/postgres/session.d.ts +0 -9
- package/dist/postgres/session.d.ts.map +0 -1
- package/dist/postgres/session.js +0 -111
- package/dist/postgres/session.js.map +0 -1
- package/dist/postgres/storage.d.ts +0 -32
- package/dist/postgres/storage.d.ts.map +0 -1
- package/dist/postgres/storage.js +0 -283
- package/dist/postgres/storage.js.map +0 -1
- package/dist/postgres/validator.d.ts +0 -13
- package/dist/postgres/validator.d.ts.map +0 -1
- package/dist/postgres/validator.js +0 -53
- 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 -153
- 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 -44
- package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts.map +0 -1
- package/dist/spec/domain/service/SchemaAdminUiChecker.js +0 -333
- 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 -58
- 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 -287
- 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 -301
- 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 -14
- package/dist/testing/cases/corpus.d.ts.map +0 -1
- package/dist/testing/cases/corpus.js +0 -93
- package/dist/testing/cases/corpus.js.map +0 -1
- package/dist/testing/cases/policy.d.ts +0 -87
- package/dist/testing/cases/policy.d.ts.map +0 -1
- package/dist/testing/cases/policy.js +0 -143
- 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 -34
- 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 -51
- 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 -125
- package/docs/adr/0038-bun-native-host.md +0 -63
- package/docs/adr/0039-postgresql-is-native.md +0 -130
- package/docs/adr/README.md +0 -98
- package/docs/adr/adr-lite-1376-admin-extensions.md +0 -330
- 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 -498
- 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,146 +1,68 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Generate a small native D1 service and mount an application-owned Worker.
|
|
3
3
|
---
|
|
4
|
-
# Quickstart: a service on
|
|
4
|
+
# Quickstart: a service on Workers
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
You need Node 22 or later and a package manager (pnpm is used below).
|
|
6
|
+
Create an application outside the SDK checkout. Install an exact released `@aotter/mantle` version, TypeScript, Wrangler and Cloudflare Worker types. Read that installed version's handbook; this page describes the native 0.2.0 contract.
|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
```sh
|
|
12
|
-
mkdir notes && cd notes
|
|
13
|
-
pnpm init
|
|
14
|
-
npm pkg set type=module
|
|
15
|
-
npm view @aotter/mantle dist-tags
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
Pick a `0.2.x` version from the output. While 0.2.0 is in prerelease it is
|
|
19
|
-
on the `alpha` tag, and `latest` still names 0.1.x. Install it with an exact
|
|
20
|
-
version:
|
|
21
|
-
|
|
22
|
-
```sh
|
|
23
|
-
pnpm add --save-exact @aotter/mantle@<0.2.x version>
|
|
24
|
-
pnpm add -D wrangler @cloudflare/workers-types @types/node typescript
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
## 2. Write a manifest
|
|
28
|
-
|
|
29
|
-
`manifests/notes.yaml`:
|
|
8
|
+
Save `manifests/tickets.yaml`:
|
|
30
9
|
|
|
31
10
|
```yaml
|
|
32
11
|
apiVersion: cms.mantle.aotter.net/v2
|
|
33
12
|
kind: Schema
|
|
34
|
-
metadata: { name:
|
|
13
|
+
metadata: { name: tickets }
|
|
35
14
|
spec:
|
|
36
|
-
title:
|
|
15
|
+
title: Tickets
|
|
37
16
|
lifecycle: operational
|
|
17
|
+
indexes: [[ticketState]]
|
|
38
18
|
schema:
|
|
39
19
|
type: object
|
|
40
|
-
|
|
20
|
+
additionalProperties: false
|
|
21
|
+
required: [subject, ticketState]
|
|
41
22
|
properties:
|
|
42
|
-
|
|
23
|
+
subject: { type: string }
|
|
24
|
+
ticketState: { type: string, enum: [open, closed] }
|
|
43
25
|
---
|
|
44
26
|
apiVersion: cms.mantle.aotter.net/v2
|
|
45
27
|
kind: View
|
|
46
|
-
metadata: { name:
|
|
28
|
+
metadata: { name: tickets-by-state }
|
|
47
29
|
spec:
|
|
48
30
|
surface: public
|
|
49
|
-
sql: SELECT id, text, created_at FROM notes ORDER BY created_at DESC LIMIT 20
|
|
50
|
-
---
|
|
51
|
-
apiVersion: cms.mantle.aotter.net/v2
|
|
52
|
-
kind: Procedure
|
|
53
|
-
metadata: { name: add-note }
|
|
54
|
-
spec:
|
|
55
31
|
input:
|
|
56
32
|
type: object
|
|
57
|
-
|
|
33
|
+
additionalProperties: false
|
|
34
|
+
required: [ticketState]
|
|
58
35
|
properties:
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
apiVersion: cms.mantle.aotter.net/v2
|
|
65
|
-
kind: Trigger
|
|
66
|
-
metadata: { name: add-note-http }
|
|
67
|
-
spec:
|
|
68
|
-
source: { kind: http, method: POST, path: /api/notes }
|
|
69
|
-
target: { procedure: add-note }
|
|
36
|
+
ticketState: { type: string, enum: [open, closed] }
|
|
37
|
+
sql: |
|
|
38
|
+
SELECT id, subject, ticketState AS "ticketState" FROM tickets
|
|
39
|
+
WHERE ticketState = input.ticketState
|
|
40
|
+
ORDER BY id ASC
|
|
70
41
|
```
|
|
71
42
|
|
|
72
|
-
## 3. Generate
|
|
73
|
-
|
|
74
|
-
Start with the smallest selection: no identity (every caller is anonymous)
|
|
75
|
-
and only the REST surface.
|
|
76
|
-
|
|
77
43
|
```sh
|
|
78
|
-
pnpm exec mantle generate
|
|
44
|
+
pnpm exec mantle generate cloudflare-d1 generated manifests/tickets.yaml
|
|
45
|
+
pnpm exec mantle generate cloudflare-d1 generated manifests/tickets.yaml --check
|
|
79
46
|
```
|
|
80
47
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
48
|
+
Write `src/worker.ts`:
|
|
49
|
+
|
|
50
|
+
```ts
|
|
51
|
+
import { rest } from '../generated/rest.js';
|
|
52
|
+
interface Env { DB: D1Database }
|
|
53
|
+
const api = rest<Env>({
|
|
54
|
+
db: env => env.DB,
|
|
55
|
+
caller: () => ({ kind: 'anonymous' }),
|
|
56
|
+
});
|
|
57
|
+
export default {
|
|
58
|
+
async fetch(request: Request, env: Env): Promise<Response> {
|
|
59
|
+
return await api(request, env) ?? new Response('Not found', { status: 404 });
|
|
60
|
+
},
|
|
61
|
+
};
|
|
90
62
|
```
|
|
91
63
|
|
|
92
|
-
|
|
93
|
-
Then:
|
|
94
|
-
|
|
95
|
-
```sh
|
|
96
|
-
curl -sS -X POST http://127.0.0.1:8787/api/notes -H 'content-type: application/json' -d '{"text":"hello"}'
|
|
97
|
-
curl -sS http://127.0.0.1:8787/api/views/latest-notes
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
The write answers `{ "results": [[{ "id": "…" }]] }` and the View
|
|
101
|
-
`{ "rows": [{ "id": "…", "text": "hello", "created_at": … }] }`.
|
|
102
|
-
|
|
103
|
-
## 5. Add sign-in, Admin and MCP
|
|
104
|
-
|
|
105
|
-
The full selection is identity `mantle` (Better Auth sign-in, staff roles,
|
|
106
|
-
OAuth for MCP) and the features `mcp`, `admin` and `web`. A rerun cannot
|
|
107
|
-
switch identity, and the preset is never rewritten, so start a project that
|
|
108
|
-
needs them with the full selection instead:
|
|
109
|
-
|
|
110
|
-
```sh
|
|
111
|
-
pnpm exec mantle generate
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
With no flags the selection is identity `mantle` and every feature. The first
|
|
115
|
-
run names the packages it needs, with versioned install commands from the
|
|
116
|
-
installed Core's `peerDependencies`, and writes nothing until they are installed
|
|
117
|
-
at compatible versions. Copy those commands rather than installing registry
|
|
118
|
-
latest; `@aotter/mantle-ui` must match Core's exact version:
|
|
119
|
-
|
|
120
|
-
```sh
|
|
121
|
-
# Run each versioned pnpm add command printed above first.
|
|
122
|
-
pnpm exec mantle generate
|
|
123
|
-
cp .dev.vars.example .dev.vars # set ADMIN_EMAIL and a random BETTER_AUTH_SECRET
|
|
124
|
-
pnpm exec wrangler dev --local
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
Request a code for `ADMIN_EMAIL` (`POST /api/auth/email-otp/send-verification-otp`
|
|
128
|
-
with `{ "email": …, "type": "sign-in" }`). The code is printed to the wrangler
|
|
129
|
-
log, and that email becomes the owner. Codes in the log are for local
|
|
130
|
-
development only; [Authentication](../cloudflare/authentication.md) covers
|
|
131
|
-
production sign-in.
|
|
132
|
-
|
|
133
|
-
Or open `/admin/sign-in` in a browser: the console is served at `/admin` from
|
|
134
|
-
`@aotter/mantle-ui/admin`, which the generated `wrangler.jsonc` binds as the
|
|
135
|
-
Worker's `ASSETS`. Admin's API answers at `/admin/api/*`, the public MCP
|
|
136
|
-
surface at `/mcp`, and the staff MCP surface at `/mcp/staff`. The
|
|
137
|
-
[reference service](../../examples/reference-service/README.md) is this
|
|
138
|
-
selection with a smoke test that signs in and drives every surface.
|
|
64
|
+
Set the database binding `DB`, Worker name and compatibility date in `wrangler.jsonc`. Generation adds the split build configuration. Apply `generated/schema.sql` explicitly to an empty local database, for example `pnpm exec wrangler d1 execute <database> --local --file generated/schema.sql`. The first request creates nothing.
|
|
139
65
|
|
|
140
|
-
|
|
66
|
+
Typecheck, then run `pnpm exec wrangler dev --local`. Query `/api/views/tickets-by-state?ticketState=open`; the response is `{ rows, nextCursor? }`. The empty database returns no rows. Use Store or a declared Procedure for writes.
|
|
141
67
|
|
|
142
|
-
|
|
143
|
-
and `mantle generate --check`.
|
|
144
|
-
- [Writes: Procedures, Triggers and hooks](../concepts/procedures-and-triggers.md)
|
|
145
|
-
and [Reads: Views, REST and MCP](../concepts/views.md).
|
|
146
|
-
- [Deploy and operate](../cloudflare/deploy-and-operate.md).
|
|
68
|
+
Commit generated files and Wrangler edits; keep bundle `dist/` untracked. Follow [service composition](../cloudflare/service-entry.md) to add auth, Admin or MCP and [deploy and operate](../cloudflare/deploy-and-operate.md) before changing schema or deploying.
|
|
@@ -10,139 +10,50 @@ metadata:
|
|
|
10
10
|
|
|
11
11
|
# Mantle Develop
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
govern behavior: `node_modules/@aotter/mantle/docs/`.
|
|
13
|
+
## Workflow
|
|
15
14
|
|
|
16
|
-
|
|
15
|
+
Read the installed SDK README and version-matched handbook before editing.
|
|
17
16
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
`postgres`); absent host and dialect mean Cloudflare over D1. A
|
|
24
|
-
`version: 1` config or `cms.mantle.aotter.net/v1` manifests mean 0.1.x:
|
|
25
|
-
switch to `docs/skills/update/SKILL.md`.
|
|
26
|
-
3. `manifests/*.yaml`, `src/service.ts`, `src/handlers.ts`, `src/index.ts`
|
|
27
|
-
(and `src/identity.ts` for `custom`), `wrangler.jsonc` (not on Bun).
|
|
28
|
-
4. Installed docs: `docs/handbook/reference/features.md` to map the request to
|
|
29
|
-
manifest features, then the field references it links to.
|
|
30
|
-
`docs/examples/` holds whole services in the v2 grammar.
|
|
17
|
+
Follow the installed [native generation and service workflow](../../handbook/cloudflare/service-entry.md)
|
|
18
|
+
with its [native contract](../../handbook/guides/native-execution.md) and [supported declarations](../../handbook/reference/features.md). Commit
|
|
19
|
+
all generated output, run the same generation command with `--check`, and keep
|
|
20
|
+
bundle `dist/` untracked. The app owns its verified Caller, handlers and native
|
|
21
|
+
resources; Better Auth’s admin plugin `adminRoles` defines the admin layer (default `["admin"]`); `ctx.admin` accepts open role names.
|
|
31
22
|
|
|
32
|
-
|
|
23
|
+
Use the native Store/query/surface entries and app-owned fetch from the service composition guide.
|
|
24
|
+
Keep optional modules out of unused entry imports and auth dynamically loaded.
|
|
25
|
+
Run actual public/member/admin HTTP, MCP and UI scenarios; verify stored state,
|
|
26
|
+
visibility, OCC and restart persistence, not just a 200 response.
|
|
33
27
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
28
|
+
For native Admin, read the [current guide](../../handbook/guides/native-admin.md).
|
|
29
|
+
Select `--admin` / `admin: true`; mount `entries(bindings.schemas, bindings.adapter)`
|
|
30
|
+
from the optional Admin package. Keep one Core SDK, the Admin product and shared
|
|
31
|
+
UI kit at matching versions. Generate → typecheck → implement listed handlers →
|
|
32
|
+
typecheck. Ref handlers retain caller-bound `ctx.store`; generic Admin reads
|
|
33
|
+
use shared generated View templates and writes use native Procedure fragments.
|
|
34
|
+
Check actual member/Admin OTP, private scope/TTL/translation visibility, paging,
|
|
35
|
+
statistics, safe/exact OCC and no automatic retry after unknown 503 outcomes.
|
|
37
36
|
|
|
38
|
-
Choose in this order, stopping at the first that works:
|
|
39
37
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
38
|
+
Place admin MCP Procedures in Admin deliberately: `spec.uiSchema.collectionAction:
|
|
39
|
+
<schema-name>` adds a collection-header action; `spec.target: { schema, id,
|
|
40
|
+
version? }` selects row actions and binds the row id / reviewed OCC version to
|
|
41
|
+
the named inputs. Other admin operations appear under Operations in the sidebar.
|
|
42
|
+
Keep state conditions in the SQL WHERE: simple AND equality/IN literals become
|
|
43
|
+
row-menu hints, while the Procedure remains the authority. Required-ref child
|
|
44
|
+
collections fold under their parent's sidebar group; use Schema
|
|
45
|
+
`uiSchema.nav.standalone: true` for a top-level entry.
|
|
47
46
|
|
|
48
|
-
##
|
|
47
|
+
## Database changes
|
|
49
48
|
|
|
50
|
-
|
|
51
|
-
syntax on PostgreSQL, a SQLite subset on D1. Each dialect is its own target:
|
|
52
|
-
a manifest need not compile for the other, and a SQLite spelling such as
|
|
53
|
-
`json_each` or `->> '$.a'` is refused on PostgreSQL with the PostgreSQL one
|
|
54
|
-
(rewrite table: `docs/handbook/concepts/runtime-and-adapters.md`). References: `input.<name>`,
|
|
55
|
-
`auth.uid()`, `auth.role()`, `now()`; search is `mantle.search(t, q)`.
|
|
56
|
-
- Native columns are snake_case in SQL (`created_at`, `author_id`) and
|
|
57
|
-
camelCase in `ctx.store` JSON and in `indexes`.
|
|
58
|
-
- A write never names the scope field, `id` (on update), `version`, `status`,
|
|
59
|
-
`created_at`, `updated_at` or `author_id`. Set an owner with `auth.uid()` and
|
|
60
|
-
a time with `now()`, never from input.
|
|
61
|
-
- Optimistic lock: `WHERE id = input.id AND version = input.expectedVersion`.
|
|
62
|
-
Writing no row is `CONFLICT`. Keep omitted optional fields with
|
|
63
|
-
`COALESCE(input.x, x)`.
|
|
64
|
-
- `LIMIT` needs `ORDER BY`. No `OFFSET`, `RIGHT JOIN` or `CURRENT_TIMESTAMP`
|
|
65
|
-
on any dialect. On SQLite (D1) also no `WITH`, `UNION`, `ILIKE` or jsonb
|
|
66
|
-
operators, and `CAST(x AS int)` only on an integer literal: use `round(x)`.
|
|
67
|
-
PostgreSQL accepts these (`docs/handbook/reference/view.md`). On PostgreSQL
|
|
68
|
-
unnest with `jsonb_array_elements_text(t.col) WITH ORDINALITY AS j(value, n)`,
|
|
69
|
-
not `json_each`; unstated `NULLS` follow PostgreSQL (last ascending).
|
|
70
|
-
- Unquoted aliases fold to lower case: `AS "orderCount"` keeps the case.
|
|
71
|
-
- The runtime injects scope and TTL into every Schema reference, and
|
|
72
|
-
published-only into public Views. Never repeat them.
|
|
73
|
-
- `scope` hides rows from staff too. When staff must see every row, store
|
|
74
|
-
`auth.uid()` in a field and filter on it instead.
|
|
75
|
-
- That filter protects the View, not generic Admin Schema reads. Root
|
|
76
|
-
`schema.readOnly: true` blocks generic writes only. If a contributor must
|
|
77
|
-
not read other users' rows, restrict the application-owned Admin surface
|
|
78
|
-
inside its existing `withCaller` boundary; see
|
|
79
|
-
`docs/handbook/guides/admin-ui.md` (Roles). Keep business transitions in SQL.
|
|
49
|
+
The runtime never creates, alters or checks tables. Boot and requests run no DDL, introspection or schema checks.
|
|
80
50
|
|
|
81
|
-
|
|
51
|
+
For the first install, apply generated `schema.sql`, including selected auth/site DDL, to an empty database. Apply selected seed SQL explicitly.
|
|
82
52
|
|
|
83
|
-
|
|
84
|
-
types `ctx.env`); the generated type
|
|
85
|
-
lists exactly the plan's refs. Read and write only through `ctx.store`.
|
|
86
|
-
- After hooks: loop over `ctx.cause.rows`; never read only `rows[0]`.
|
|
87
|
-
- Before hooks and guards are read-only and reject by throwing
|
|
88
|
-
`DiagnosticError` (from `@aotter/mantle`); any other throw is a 500.
|
|
89
|
-
- `ctx.caller.kind === "user"` means signed in; a schedule runs as `system`.
|
|
90
|
-
Never test `!== "anonymous"`.
|
|
91
|
-
- `ctx.invoke(name, input)` calls another Procedure with the same caller.
|
|
53
|
+
For every later schema change, the application's coding agent diffs the regenerated `schema.sql`, writes a migration with the host's native tool (`wrangler d1 migrations` or the app's PostgreSQL migration tool), rehearses it on a copy, and applies it before deploying the new code. Cloud executes migrations at deploy time.
|
|
92
54
|
|
|
93
|
-
|
|
55
|
+
Destructive changes and type changes need explicit data migration. Mantle drops nothing. Initial `schema.sql` is not an upgrade script.
|
|
94
56
|
|
|
95
|
-
|
|
96
|
-
application after the first `mantle generate`; it never rewrites them. Add
|
|
97
|
-
routes, bindings and env there (`docs/handbook/cloudflare/service-entry.md`).
|
|
98
|
-
Reach data from service code through `runtime.store.as(caller)` or
|
|
99
|
-
`runtime.invokeProcedure`; `runtime.store` alone is unscoped. A signed webhook
|
|
100
|
-
is a route in the service's `fetch` that verifies the raw body, then invokes
|
|
101
|
-
a Procedure as `systemCaller(...)`.
|
|
57
|
+
## Data paths
|
|
102
58
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
With feature `mcp`, the preset mounts `/mcp` (public tools) and, with an
|
|
106
|
-
identity, `/mcp/staff` (staff tools for a staff role; with identity `mantle`,
|
|
107
|
-
the same OAuth token as `/mcp`). `/mcp/staff` serves
|
|
108
|
-
Mantle's MCP App: a host that renders MCP Apps shows each staff View's rows and
|
|
109
|
-
the operations on one row. A member-facing App on `/mcp` is the application's
|
|
110
|
-
to build when the product asks for one: follow [the recipe](mcp-app.md).
|
|
111
|
-
|
|
112
|
-
## Loop
|
|
113
|
-
|
|
114
|
-
```bash
|
|
115
|
-
pnpm exec mantle generate
|
|
116
|
-
pnpm exec mantle generate --check
|
|
117
|
-
pnpm exec tsc --noEmit
|
|
118
|
-
pnpm exec wrangler dev --local # on Bun: bun src/index.ts
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
Then exercise what changed over HTTP: the REST View or Trigger, `/mcp`
|
|
122
|
-
`tools/list` and a call, and with identity `mantle` a console email-OTP
|
|
123
|
-
sign-in and the Admin route (`docs/handbook/cloudflare/authentication.md`).
|
|
124
|
-
Check the stored rows, not only a 200. Before deploying a Schema change on
|
|
125
|
-
SQLite, run `mantle generate --check --database <file>` to see the storage SQL.
|
|
126
|
-
For a workflow, verify valid and invalid state transitions, ownership on every
|
|
127
|
-
mounted surface (including generic Admin reads and writes), concurrent writes
|
|
128
|
-
with one expected version, and persisted data and sessions after a restart.
|
|
129
|
-
Exercise the actual UI when the product includes one; serving HTML alone does
|
|
130
|
-
not verify its forms or operations.
|
|
131
|
-
|
|
132
|
-
## Rules
|
|
133
|
-
|
|
134
|
-
- Never edit `.mantle/generated/`. Commit it.
|
|
135
|
-
- Never write a Schema's table with `env.DB`, KV or SQL from outside Store;
|
|
136
|
-
never touch `_mantle_*` tables. The application's own tables are its own.
|
|
137
|
-
- A blocked storage change (`STORAGE_CHANGE_BLOCKED`) is the author's to make
|
|
138
|
-
by hand, then rerun; Mantle never drops a column or index.
|
|
139
|
-
- Do not commit secrets (`.dev.vars`, provider keys).
|
|
140
|
-
- Every 0.1.x term is gone: builtin handlers, `from`/`filter`, `params`,
|
|
141
|
-
`$ctx`, `x-mantle-bind`, `mantle validate`, `mantle skills`,
|
|
142
|
-
`createMantleWorker`.
|
|
143
|
-
|
|
144
|
-
## When you are done
|
|
145
|
-
|
|
146
|
-
Report the manifests and code you changed, the `generate --check` and
|
|
147
|
-
typecheck results, the HTTP calls you made and what they returned, and any
|
|
148
|
-
access you made stricter or could not express.
|
|
59
|
+
Writes use Store `insert` / `update` / `delete`, `batch`, `transaction`, or declared Procedures. Never use raw SQL writes: they bypass scope, TTL, publishing and system-column rules. For reads beyond an id lookup or simple AND filter (joins, aggregates, OR, reuse), declare an internal View so the SQL is reviewable and typed. Store `findById`, `find` and `first` remain suitable for handler lookups and embedding in an existing app. Ref handlers receive `ctx.store` bound to the same Caller and transaction.
|
|
@@ -1,79 +1,39 @@
|
|
|
1
1
|
# Recipe: an MCP App for members
|
|
2
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
|
-
`resourceMetadata`; with `custom`, pass the surface to your own `guard`):
|
|
41
|
-
|
|
42
|
-
```ts
|
|
43
|
-
import memberHtml from "../app/dist/member.html";
|
|
44
|
-
import { appCatalog, withCatalog } from "@aotter/mantle/mcp";
|
|
45
|
-
|
|
46
|
-
const html = withCatalog(memberHtml, appCatalog(runtime.plan, "public"));
|
|
47
|
-
const mcp = guard(createMcpSurface(runtime, { basePath: "/mcp", surface: "public", resourceMetadata,
|
|
48
|
-
apps: { resources: [{ uri: "ui://shop/my-orders", name: "my-orders", html, renders: ["my_orders"] }] } }), { resourceMetadata });
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
4. In the App, `readCatalog()` once; in `ontoolresult`, `toolOf(result)` names
|
|
52
|
-
the tool and `outputOf(result)` (or `rowsOf` for a View) is its data. A
|
|
53
|
-
success is `structuredContent` when the output is an object and the JSON
|
|
54
|
-
text otherwise; a failure of a tool with an output schema is the text
|
|
55
|
-
alone, which `outputOf` reads either way. Call tools through
|
|
56
|
-
`invokeTool(app.callServerTool…)`: a refusal is `{ ok: false, diagnostics }`
|
|
57
|
-
(`AUTH_DENIED`, `CONFLICT`, ...), and a thrown call (a 401 or 403 from a
|
|
58
|
-
missing scope or sign-in, a lost connection) is an unknown outcome to
|
|
59
|
-
re-read, never to retry blindly.
|
|
60
|
-
|
|
61
|
-
## Rules
|
|
62
|
-
|
|
63
|
-
- The HTML is a static asset: no caller data, no secrets, the same for every
|
|
64
|
-
member. Caller data arrives only in tool results.
|
|
65
|
-
- Every read and write is a tool call under the member's own token; `requires`
|
|
66
|
-
and `scope` apply exactly as they do to the model's calls.
|
|
67
|
-
- `appOnly` hides a read from the model; only a View can be app-only, never a
|
|
68
|
-
write.
|
|
69
|
-
- A public View over a `publishing` Schema shows published rows only; over a
|
|
70
|
-
`scope`d Schema it shows the caller's own rows, without a `WHERE` of yours.
|
|
71
|
-
|
|
72
|
-
## Verify
|
|
73
|
-
|
|
74
|
-
Add the App's build to the develop loop, then: `tools/list` from a client that
|
|
75
|
-
declares the MCP Apps extension shows the rendered tool with
|
|
76
|
-
`_meta.ui.resourceUri`; `resources/read` of that URI returns your HTML with
|
|
77
|
-
`#mantle-catalog`; a call to the tool returns its result with
|
|
78
|
-
`_meta["net.aotter.mantle/tool"]`. Then open it in a host that renders MCP
|
|
79
|
-
Apps, signed in as a member.
|
|
3
|
+
## Native applications
|
|
4
|
+
|
|
5
|
+
Read the installed MCP App contract. The SDK's generic hook attaches only the resources the app selects;
|
|
6
|
+
only selected modules enter the service.
|
|
7
|
+
|
|
8
|
+
```ts
|
|
9
|
+
import type { McpApps } from '@aotter/mantle/mcp';
|
|
10
|
+
import { mcp } from '../generated/mcp.js';
|
|
11
|
+
const memberApp: McpApps = { resources: [{
|
|
12
|
+
uri: 'ui://shop/my-orders',
|
|
13
|
+
name: 'my-orders-app',
|
|
14
|
+
renders: ['my_orders'], // the tool for the declared public View my-orders
|
|
15
|
+
html: async () => (await import('./member-app.js')).memberHtml,
|
|
16
|
+
}] };
|
|
17
|
+
const tools = mcp({ db, caller, handlers, apps: { public: memberApp } });
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Each endpoint accepts one contributor or an array. The separate
|
|
21
|
+
`@aotter/mantle-admin` package contributes its admin App through this same
|
|
22
|
+
`apps.admin` hook; it owns `ui://mantle-admin/…`. App resources use their own
|
|
23
|
+
`ui://<app>/…` namespace. Duplicate resource URI/name, conflicting `renders`,
|
|
24
|
+
or `renders`/`appOnly` naming an unavailable endpoint tool (or a Procedure for
|
|
25
|
+
`appOnly`) fail when `mcp(...)` is built; with a request-bound tool table, the
|
|
26
|
+
tool names are checked on the first matching request. Only clients that
|
|
27
|
+
declare no MCP Apps support see no UI resources; a request that advertises no
|
|
28
|
+
capabilities at all is treated as supported.
|
|
29
|
+
|
|
30
|
+
Use `renders` for a declared tool; `appOnly` optionally hides it from non-UI
|
|
31
|
+
clients. Import HTML lazily; it carries no secrets or caller data. Tool results
|
|
32
|
+
use the caller's SQL policy, and an App cannot authorize a hidden admin tool.
|
|
33
|
+
Generic interaction components and controllers remain in `@aotter/mantle-ui`;
|
|
34
|
+
Admin-specific controllers/catalogues belong to `@aotter/mantle-admin`.
|
|
35
|
+
|
|
36
|
+
Verify tools/list metadata, resources/read, actual tool calls and a host-rendered
|
|
37
|
+
member App. Test anonymous/member isolation and resource conflicts. Never retry
|
|
38
|
+
unknown writes blindly; retain OCC and re-read state after an uncertain outcome.
|
|
39
|
+
Commit generated output and run generation with `--check` before deployment.
|
|
@@ -10,87 +10,45 @@ metadata:
|
|
|
10
10
|
|
|
11
11
|
# Integrate Mantle into an existing application
|
|
12
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
|
-
exist; `--host none` writes no preset at all, only the plan and its types.
|
|
56
|
-
For an application with its own entry, generate in a scratch
|
|
57
|
-
directory with the same manifests and config, then copy the composition you
|
|
58
|
-
need from the generated `src/service.ts` into the application's own entry:
|
|
59
|
-
|
|
60
|
-
- the `createMantle(service, { plan, storage: (env) => d1Storage(env.DB), schedules: true })` call;
|
|
61
|
-
- `withCaller(resolver, createRestSurface(runtime, { basePath: "/api" }))`
|
|
62
|
-
and any other surface, mounted on paths the application does not use;
|
|
63
|
-
- the `scheduled` mapping from `src/index.ts`, if the plan has schedules.
|
|
64
|
-
|
|
65
|
-
Put that composition in the application's `src/service.ts` before the first
|
|
66
|
-
`mantle generate` inside the application: while `src/service.ts` is missing,
|
|
67
|
-
generate writes every missing preset file (`src/service.ts`, `src/index.ts`,
|
|
68
|
-
`src/handlers.ts`, `src/identity.ts` for `custom`, `tsconfig.json`,
|
|
69
|
-
`.gitignore`, `.dev.vars.example` for `mantle`, and `wrangler.jsonc` unless a
|
|
70
|
-
`wrangler.*` exists; on Bun `.env.example` and no `wrangler.jsonc`) beside the
|
|
71
|
-
application's own.
|
|
72
|
-
Commit `.mantle/generated/` and run `mantle generate --check` in CI.
|
|
73
|
-
|
|
74
|
-
## Moving data into a Schema
|
|
75
|
-
|
|
76
|
-
- Mantle never reads or writes a table it did not create. A table with a
|
|
77
|
-
Schema's name that Mantle does not own stops boot
|
|
78
|
-
(`STORAGE_TABLE_NOT_OWNED`); give the Schema a new name.
|
|
79
|
-
- Import through `runtime.store` in trusted code. A scoped row goes through
|
|
80
|
-
`runtime.store.as(<its owner's caller>)`, so the owner field is right.
|
|
81
|
-
`status`, timestamps and `author_id` cannot be imported: publish with a
|
|
82
|
-
second update that sets `status`.
|
|
83
|
-
- Rehearse on a copy, compare row counts, and keep the old table until the
|
|
84
|
-
owner confirms. Never touch live data before the cutover is agreed.
|
|
85
|
-
|
|
86
|
-
## Verify
|
|
87
|
-
|
|
88
|
-
Run the application's own build and tests, then `mantle generate --check`,
|
|
89
|
-
the typecheck, and real requests against the routes Mantle now serves, as the
|
|
90
|
-
right callers (owner, member, anonymous). `--check` proves the generated files;
|
|
91
|
-
it does not prove the integration.
|
|
92
|
-
|
|
93
|
-
## When you are done
|
|
94
|
-
|
|
95
|
-
Report which capabilities Mantle now owns, the identity mapping, what moved and
|
|
96
|
-
how it was verified, and what remains for cutover or deployment.
|
|
13
|
+
## Workflow
|
|
14
|
+
|
|
15
|
+
Read the installed SDK README and version-matched handbook before editing.
|
|
16
|
+
|
|
17
|
+
Follow the installed [native generation and service workflow](../../handbook/cloudflare/service-entry.md)
|
|
18
|
+
with its [native contract](../../handbook/guides/native-execution.md) and [supported declarations](../../handbook/reference/features.md). Commit
|
|
19
|
+
all generated output, run the same generation command with `--check`, and keep
|
|
20
|
+
bundle `dist/` untracked. The app owns its verified Caller, handlers and native
|
|
21
|
+
resources; Better Auth’s admin plugin `adminRoles` defines the admin layer (default `["admin"]`); `ctx.admin` accepts open role names.
|
|
22
|
+
|
|
23
|
+
Keep the application router, database/pool, identity and frontend. Replace
|
|
24
|
+
Core consumers explicitly and compose only selected generated entries. Resolve
|
|
25
|
+
one Caller per request with the shared cookie-session origin check. Rehearse
|
|
26
|
+
data-preserving schema/auth/role migrations on a copy and retain rollback artifacts.
|
|
27
|
+
Initial schema.sql is for an empty database, not an in-place upgrade. Requests run
|
|
28
|
+
no DDL or storage checks; the only request-time write outside app operations is
|
|
29
|
+
the configured OAuth resource row (see [OAuth](../../handbook/guides/oauth.md)).
|
|
30
|
+
Verify cutover with actual app tests.
|
|
31
|
+
|
|
32
|
+
Preserve the app router, verified identity and native resources. For selected
|
|
33
|
+
Admin use the [native guide](../../handbook/guides/native-admin.md): three matching
|
|
34
|
+
packages, generated checks and `entries(bindings.schemas, bindings.adapter)`.
|
|
35
|
+
Do not import old `/spec`, `/core` or runtime surface APIs. Review data/role
|
|
36
|
+
migrations explicitly; full cross-target int64 parity and automated transfer
|
|
37
|
+
are not this release's upgrade contract.
|
|
38
|
+
|
|
39
|
+
## Partial adoption in TypeScript/Node
|
|
40
|
+
|
|
41
|
+
Keep the app's router, pool/handle, identity and frontend. Declare only the Schemas and operations being adopted; import selected `views/<encoded-name>.ts` or `procedures/<encoded-name>.ts`, then call `(appHandle, verifiedCaller, validatedInput)`. Bun.SQL and postgres.js fit directly; [node-postgres can adapt](../../handbook/guides/postgres-adapters.md). No Admin/auth/surface module is required for direct queries.
|
|
42
|
+
|
|
43
|
+
Existing tables need explicit migration into the declared storage shape, including system columns and constraints. Initial schema.sql must not be applied over an occupied database. Rehearse on a copy and test scope, TTL, publication, OCC and persisted state with the app's own identity.
|
|
44
|
+
|
|
45
|
+
Writes use Store or declared Procedures; never raw SQL writes to adopted collections. Use internal Views for joins, aggregates, OR and reusable reads. Store findById/find/first remain useful for simple AND lookups in existing handlers.
|
|
46
|
+
|
|
47
|
+
Direct declared Schema-column outputs in Views and SQL Procedure `RETURNING`
|
|
48
|
+
keep their authored field names; explicit aliases keep SQL casing rules. Store
|
|
49
|
+
rows and nested SQL relations use storage names. Boundary validators support a
|
|
50
|
+
permissive `format: email` check (one `@`, non-empty parts, no whitespace). For
|
|
51
|
+
LEFT JOIN paging, join on the joined Schema's id or single-field unique key and
|
|
52
|
+
keep the base indexed, non-null order/id tuple. Generation always emits `Handlers`
|
|
53
|
+
(empty without ref Procedures); pass `handlers` at `adminBindings()`, generated REST/MCP options and
|
|
54
|
+
`webmcpRoutes(catalogue, tools, handlers)`, as the app shell does.
|