@aotter/mantle 0.2.0-alpha.5 → 0.2.0-alpha.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +152 -45
- package/dist/auth/adapter.d.ts +32 -0
- package/dist/auth/adapter.js +285 -0
- package/dist/auth/admin.d.ts +3 -0
- package/dist/auth/admin.js +21 -0
- package/dist/auth/caller.d.ts +86 -0
- package/dist/auth/caller.js +154 -0
- package/dist/auth/hardening.d.ts +24 -0
- package/dist/auth/hardening.js +40 -0
- package/dist/auth/identity.d.ts +121 -0
- package/dist/auth/identity.js +203 -0
- package/dist/auth/oauth.d.ts +31 -0
- package/dist/auth/oauth.js +124 -0
- package/dist/auth/resource-seeds.js +10 -0
- package/dist/auth/routes.d.ts +32 -0
- package/dist/auth/{createAuthRoutes.js → routes.js} +130 -35
- package/dist/build/compiler.d.ts +790 -0
- package/dist/build/compiler.js +6971 -0
- package/dist/{spec → build/spec}/domain/model/ManifestGrammar.d.ts +28 -42
- package/dist/{spec → build/spec}/domain/model/RuntimePlan.d.ts +77 -3
- package/dist/{spec → build/spec}/domain/model/SqlIr.d.ts +35 -6
- package/dist/build/spec/domain/model/UserFields.d.ts +20 -0
- package/dist/{spec → build/spec}/domain/service/PlanFingerprint.d.ts +2 -1
- package/dist/{spec → build/spec}/kernel/diagnostic.d.ts +1 -30
- package/dist/bun/assets.d.ts +2 -0
- package/dist/bun/assets.js +24 -0
- package/dist/domain/adminOrder.js +24 -0
- package/dist/domain/columns.js +55 -0
- package/dist/domain/describe/chunk-ZIQVLA7X.js +363 -0
- package/dist/domain/describe/index.d.ts +58 -0
- package/dist/domain/describe/index.js +115 -0
- package/dist/domain/describe/target-hash.d.ts +8 -0
- package/dist/domain/describe/target-hash.js +12 -0
- package/dist/domain/describe/targets.d.ts +40 -0
- package/dist/domain/entry.js +33 -0
- package/dist/domain/generated-tools.js +17 -0
- package/dist/domain/generation.d.ts +16 -0
- package/dist/domain/generation.js +1 -0
- package/dist/domain/input.js +17 -0
- package/dist/domain/model.js +1 -0
- package/dist/domain/paging.js +204 -0
- package/dist/domain/recipes.js +19 -0
- package/dist/domain/userReferences.js +5 -0
- package/dist/domain/wireScalars.js +47 -0
- package/dist/infrastructure/adminEntries.js +153 -0
- package/dist/infrastructure/adminPaging.js +72 -0
- package/dist/infrastructure/artifacts.js +71 -0
- package/dist/infrastructure/authSchema.js +83 -0
- package/dist/infrastructure/bundle.js +84 -0
- package/dist/infrastructure/cli.js +101 -0
- package/dist/infrastructure/generate.d.ts +14 -0
- package/dist/infrastructure/generate.js +174 -0
- package/dist/infrastructure/generateAuth.d.ts +8 -0
- package/dist/infrastructure/generateAuth.js +17 -0
- package/dist/infrastructure/inputs.js +36 -0
- package/dist/infrastructure/wrangler.js +71 -0
- package/dist/kernel/authorization.d.ts +4 -0
- package/dist/kernel/authorization.js +16 -0
- package/dist/kernel/binds.d.ts +51 -0
- package/dist/kernel/binds.js +45 -0
- package/dist/kernel/caller-identity.d.ts +24 -0
- package/dist/kernel/caller-identity.js +22 -0
- package/dist/kernel/contract-error.d.ts +12 -0
- package/dist/kernel/contract-error.js +14 -0
- package/dist/kernel/contracts.d.ts +139 -0
- package/dist/kernel/contracts.js +92 -0
- package/dist/{spec/domain/service/CloudflareCron.d.ts → kernel/cron.d.ts} +0 -1
- package/dist/{spec/domain/service/CloudflareCron.js → kernel/cron.js} +1 -6
- package/dist/kernel/dialect/common.d.ts +39 -0
- package/dist/kernel/dialect/common.js +6 -0
- package/dist/kernel/dialect/postgres.d.ts +16 -0
- package/dist/kernel/dialect/postgres.js +18 -0
- package/dist/kernel/dialect/sqlite.d.ts +20 -0
- package/dist/kernel/dialect/sqlite.js +34 -0
- package/dist/kernel/driver/bun-sqlite.d.ts +19 -0
- package/dist/kernel/driver/bun-sqlite.js +77 -0
- package/dist/kernel/driver/d1.d.ts +24 -0
- package/dist/kernel/driver/d1.js +22 -0
- package/dist/kernel/driver/postgres.d.ts +25 -0
- package/dist/kernel/driver/postgres.js +95 -0
- package/dist/kernel/driver/transaction-context.d.ts +10 -0
- package/dist/kernel/driver/transaction-context.js +29 -0
- package/dist/kernel/email.d.ts +28 -0
- package/dist/{auth/emailTemplates.js → kernel/email.js} +13 -2
- package/dist/kernel/host-access.d.ts +10 -0
- package/dist/kernel/host-access.js +65 -0
- package/dist/kernel/host-caller.d.ts +38 -0
- package/dist/kernel/host-caller.js +55 -0
- package/dist/kernel/json-body.d.ts +4 -0
- package/dist/kernel/json-body.js +44 -0
- package/dist/kernel/mcp-apps.d.ts +49 -0
- package/dist/kernel/mcp-apps.js +40 -0
- package/dist/kernel/mcp-call.d.ts +5 -0
- package/dist/kernel/mcp-call.js +25 -0
- package/dist/kernel/mcp-handler.js +288 -0
- package/dist/kernel/mcp.d.ts +101 -0
- package/dist/kernel/mcp.js +25 -0
- package/dist/kernel/media.d.ts +27 -0
- package/dist/kernel/media.js +216 -0
- package/dist/kernel/paging.d.ts +55 -0
- package/dist/kernel/paging.js +95 -0
- package/dist/kernel/publishing.d.ts +4 -0
- package/dist/kernel/publishing.js +16 -0
- package/dist/{cloudflare/r2Media.d.ts → kernel/r2-media.d.ts} +4 -5
- package/dist/kernel/r2-media.js +78 -0
- package/dist/kernel/rest-dispatch.js +38 -0
- package/dist/kernel/rest-router.js +63 -0
- package/dist/kernel/rest.d.ts +58 -0
- package/dist/kernel/rest.js +41 -0
- package/dist/kernel/scalars.d.ts +6 -0
- package/dist/kernel/scalars.js +43 -0
- package/dist/kernel/search.js +5 -0
- package/dist/{core/site.d.ts → kernel/site-types.d.ts} +38 -9
- package/dist/kernel/site-types.js +1 -0
- package/dist/kernel/site.d.ts +41 -0
- package/dist/kernel/site.js +32 -0
- package/dist/kernel/store.d.ts +165 -0
- package/dist/kernel/store.js +257 -0
- package/dist/kernel/surface.d.ts +10 -0
- package/dist/kernel/surface.js +19 -0
- package/dist/kernel/sweep.d.ts +17 -0
- package/dist/kernel/sweep.js +27 -0
- package/dist/kernel/translations.d.ts +1 -0
- package/dist/kernel/translations.js +13 -0
- package/dist/kernel/user-caller.d.ts +31 -0
- package/dist/kernel/user-caller.js +67 -0
- package/dist/kernel/user-field-name.js +3 -0
- package/dist/kernel/user-fields.d.ts +34 -0
- package/dist/kernel/user-fields.js +71 -0
- package/dist/kernel/validation.d.ts +15 -0
- package/dist/kernel/validation.js +54 -0
- package/dist/kernel/web-gateway.js +68 -0
- package/dist/kernel/web-head.js +15 -0
- package/dist/kernel/web-response.js +8 -0
- package/dist/kernel/web.d.ts +75 -0
- package/dist/kernel/web.js +155 -0
- package/dist/kernel/where.js +27 -0
- package/dist/testing/index.d.ts +1 -37
- package/dist/testing/index.js +1 -43
- package/dist/usecase/adminBindings.js +142 -0
- package/dist/usecase/adminDescriptors.js +153 -0
- package/dist/usecase/generate.js +164 -0
- package/dist/usecase/handlers.js +21 -0
- package/dist/usecase/mcp-media.js +17 -0
- package/dist/usecase/mcp.js +96 -0
- package/dist/usecase/paging.js +72 -0
- package/dist/usecase/publishing.js +63 -0
- package/dist/usecase/refusals.js +27 -0
- package/dist/usecase/rest.js +54 -0
- package/dist/usecase/search.js +7 -0
- package/dist/usecase/site.js +40 -0
- package/dist/usecase/stores.js +62 -0
- package/dist/usecase/translations.js +78 -0
- package/dist/usecase/ttl.js +20 -0
- package/dist/usecase/validation.js +132 -0
- package/dist/usecase/web.js +22 -0
- package/docs/examples/README.md +31 -16
- package/docs/examples/app-shell/README.md +48 -0
- package/docs/examples/app-shell/package.json +34 -0
- package/docs/examples/app-shell/pnpm-workspace.yaml +8 -0
- package/docs/examples/app-shell/smoke-kit.mjs +100 -0
- package/docs/examples/app-shell/src/admin.ts +10 -0
- package/docs/examples/app-shell/src/auth.ts +55 -0
- package/docs/examples/app-shell/src/handlers.ts +5 -0
- package/docs/examples/app-shell/src/index.ts +4 -0
- package/docs/examples/app-shell/src/routes.ts +13 -0
- package/docs/examples/app-shell/src/schedule.ts +8 -0
- package/docs/examples/app-shell/src/service.ts +70 -0
- package/docs/examples/app-shell/src/sign-in.ts +41 -0
- package/docs/examples/app-shell/src/signup.ts +8 -0
- package/docs/examples/{reference-service → app-shell}/tsconfig.json +2 -1
- package/docs/examples/app-shell/worker-configuration.d.ts +22 -0
- package/docs/examples/app-shell/wrangler.jsonc +61 -0
- package/docs/examples/club-events/README.md +60 -0
- package/docs/examples/club-events/manifests/club-events.yaml +225 -0
- package/docs/examples/club-events/smoke.mjs +121 -0
- package/docs/examples/club-events/src/handlers.ts +25 -0
- package/docs/examples/club-events/src/signup.ts +9 -0
- package/docs/examples/generated-web/README.md +74 -0
- package/docs/examples/generated-web/posts.yaml +38 -0
- package/docs/examples/generated-web/seed.sql +6 -0
- package/docs/examples/generated-web/src/worker.ts +43 -0
- package/docs/examples/generated-web/tsconfig.json +8 -0
- package/docs/examples/generated-web/wrangler.jsonc +7 -0
- package/docs/examples/purchasing/.dev.vars.example +6 -0
- package/docs/examples/purchasing/README.md +90 -0
- package/docs/examples/purchasing/manifests/purchasing.yaml +341 -0
- package/docs/examples/purchasing/seed.sql +4 -0
- package/docs/examples/purchasing/smoke.mjs +171 -0
- package/docs/examples/purchasing/src/admin.ts +12 -0
- package/docs/examples/purchasing/src/handlers.ts +33 -0
- package/docs/examples/purchasing/src/notify.ts +29 -0
- package/docs/examples/purchasing/src/requests-page.ts +57 -0
- package/docs/examples/purchasing/src/routes.ts +53 -0
- package/docs/examples/purchasing/src/schedule.ts +31 -0
- package/docs/examples/purchasing/src/signup.ts +5 -0
- package/docs/examples/purchasing/src/supplier.ts +32 -0
- package/docs/examples/purchasing/wrangler.jsonc +68 -0
- package/docs/examples/recipes/README.md +58 -0
- package/docs/examples/recipes/manifests/recipes.yaml +75 -0
- package/docs/examples/recipes/smoke.mjs +102 -0
- package/docs/examples/recipes/src/media.ts +13 -0
- package/docs/examples/recipes/src/pages.ts +99 -0
- package/docs/examples/recipes/src/routes.ts +71 -0
- package/docs/examples/recipes/src/site-config.ts +12 -0
- package/docs/examples/recipes/wrangler.jsonc +73 -0
- package/docs/handbook/cloudflare/authentication.md +142 -212
- package/docs/handbook/cloudflare/chatgpt-sites.md +4 -113
- package/docs/handbook/cloudflare/deploy-and-operate.md +20 -103
- package/docs/handbook/cloudflare/media-r2.md +62 -133
- package/docs/handbook/cloudflare/service-entry.md +180 -116
- package/docs/handbook/concepts/authorization.md +10 -123
- package/docs/handbook/concepts/four-atoms.md +9 -92
- package/docs/handbook/concepts/lifecycle-and-locales.md +9 -80
- package/docs/handbook/concepts/mcp-and-agents.md +10 -141
- package/docs/handbook/concepts/procedures-and-triggers.md +5 -162
- package/docs/handbook/concepts/runtime-and-adapters.md +15 -183
- package/docs/handbook/concepts/views.md +10 -109
- package/docs/handbook/examples/hub.md +2 -18
- package/docs/handbook/guides/adapter-guide.md +11 -0
- package/docs/handbook/guides/admin-extensions.md +20 -0
- package/docs/handbook/guides/admin-ui.md +5 -163
- package/docs/handbook/guides/agent-setup.md +5 -18
- package/docs/handbook/guides/email.md +86 -0
- package/docs/handbook/guides/mcp-apps.md +44 -0
- package/docs/handbook/guides/native-admin.md +298 -0
- package/docs/handbook/guides/native-execution.md +132 -0
- package/docs/handbook/guides/oauth.md +105 -0
- package/docs/handbook/guides/postgres-adapters.md +56 -0
- package/docs/handbook/guides/public-pages.md +53 -0
- package/docs/handbook/guides/size-and-startup.md +9 -0
- package/docs/handbook/guides/typed-queries.md +39 -102
- package/docs/handbook/navigation.json +164 -30
- package/docs/handbook/reference/admin-descriptors.md +88 -0
- package/docs/handbook/reference/authorization.md +44 -52
- package/docs/handbook/reference/describe.md +56 -0
- package/docs/handbook/reference/diagnostics.md +15 -78
- package/docs/handbook/reference/features.md +45 -53
- package/docs/handbook/reference/manifest.md +6 -69
- package/docs/handbook/reference/procedure.md +9 -117
- package/docs/handbook/reference/schema.md +65 -172
- package/docs/handbook/reference/site-config.md +5 -65
- package/docs/handbook/reference/surface.md +279 -93
- package/docs/handbook/reference/trigger.md +24 -93
- package/docs/handbook/reference/view.md +32 -158
- package/docs/handbook/releases/index.md +124 -15
- package/docs/handbook/start/overview.md +9 -56
- package/docs/handbook/start/project-and-cli.md +40 -141
- package/docs/handbook/start/quickstart-worker.md +38 -116
- package/docs/skills/develop/SKILL.md +34 -117
- package/docs/skills/develop/mcp-app.md +37 -77
- package/docs/skills/integrate/SKILL.md +42 -84
- package/docs/skills/media-gc/SKILL.md +14 -3
- package/docs/skills/provision/SKILL.md +25 -88
- package/docs/skills/update/SKILL.md +19 -40
- package/docs/source/scripts/postgres-adapter.ts +101 -0
- package/docs/upgrade-0.1-to-0.2.md +26 -10
- package/package.json +97 -112
- package/skills/.keep +0 -0
- package/skills/README.md +72 -0
- package/skills/mantle/SKILL.md +135 -0
- package/skills/mantle/references/local-testing.md +11 -0
- package/skills/mantle/references/web.md +41 -0
- package/skills/mantle/references/website.md +47 -0
- package/dist/admin/consent.d.ts +0 -17
- package/dist/admin/consent.d.ts.map +0 -1
- package/dist/admin/consent.js +0 -17
- package/dist/admin/consent.js.map +0 -1
- package/dist/admin/createAdminSurface.d.ts +0 -22
- package/dist/admin/createAdminSurface.d.ts.map +0 -1
- package/dist/admin/createAdminSurface.js +0 -592
- package/dist/admin/createAdminSurface.js.map +0 -1
- package/dist/admin/design.d.ts +0 -7
- package/dist/admin/design.d.ts.map +0 -1
- package/dist/admin/design.js +0 -18
- package/dist/admin/design.js.map +0 -1
- package/dist/admin/developerConsole.d.ts +0 -267
- package/dist/admin/developerConsole.d.ts.map +0 -1
- package/dist/admin/developerConsole.js +0 -136
- package/dist/admin/developerConsole.js.map +0 -1
- package/dist/admin/identity.d.ts +0 -62
- package/dist/admin/identity.d.ts.map +0 -1
- package/dist/admin/identity.js +0 -7
- package/dist/admin/identity.js.map +0 -1
- package/dist/admin/index.d.ts +0 -6
- package/dist/admin/index.d.ts.map +0 -1
- package/dist/admin/index.js +0 -6
- package/dist/admin/index.js.map +0 -1
- package/dist/admin/procedureFlow.d.ts +0 -38
- package/dist/admin/procedureFlow.d.ts.map +0 -1
- package/dist/admin/procedureFlow.js +0 -188
- package/dist/admin/procedureFlow.js.map +0 -1
- package/dist/auth/ConsoleEmailSender.d.ts +0 -15
- package/dist/auth/ConsoleEmailSender.d.ts.map +0 -1
- package/dist/auth/ConsoleEmailSender.js +0 -19
- package/dist/auth/ConsoleEmailSender.js.map +0 -1
- package/dist/auth/appleClientSecret.d.ts +0 -75
- package/dist/auth/appleClientSecret.d.ts.map +0 -1
- package/dist/auth/appleClientSecret.js +0 -116
- package/dist/auth/appleClientSecret.js.map +0 -1
- package/dist/auth/buildAuth.d.ts +0 -4566
- package/dist/auth/buildAuth.d.ts.map +0 -1
- package/dist/auth/buildAuth.js +0 -311
- package/dist/auth/buildAuth.js.map +0 -1
- package/dist/auth/callerResolver.d.ts +0 -48
- package/dist/auth/callerResolver.d.ts.map +0 -1
- package/dist/auth/callerResolver.js +0 -49
- package/dist/auth/callerResolver.js.map +0 -1
- package/dist/auth/createAuthRoutes.d.ts +0 -22
- package/dist/auth/createAuthRoutes.d.ts.map +0 -1
- package/dist/auth/createAuthRoutes.js.map +0 -1
- package/dist/auth/createMantleAuth.d.ts +0 -3
- package/dist/auth/createMantleAuth.d.ts.map +0 -1
- package/dist/auth/createMantleAuth.js +0 -503
- package/dist/auth/createMantleAuth.js.map +0 -1
- package/dist/auth/db.d.ts +0 -17
- package/dist/auth/db.d.ts.map +0 -1
- package/dist/auth/db.js +0 -24
- package/dist/auth/db.js.map +0 -1
- package/dist/auth/emailTemplates.d.ts +0 -7
- package/dist/auth/emailTemplates.d.ts.map +0 -1
- package/dist/auth/emailTemplates.js.map +0 -1
- package/dist/auth/index.d.ts +0 -9
- package/dist/auth/index.d.ts.map +0 -1
- package/dist/auth/index.js +0 -7
- package/dist/auth/index.js.map +0 -1
- package/dist/auth/methods.d.ts +0 -717
- package/dist/auth/methods.d.ts.map +0 -1
- package/dist/auth/methods.js +0 -321
- package/dist/auth/methods.js.map +0 -1
- package/dist/auth/oauthTokens.d.ts +0 -24
- package/dist/auth/oauthTokens.d.ts.map +0 -1
- package/dist/auth/oauthTokens.js +0 -146
- package/dist/auth/oauthTokens.js.map +0 -1
- package/dist/auth/setupIncomplete.d.ts +0 -16
- package/dist/auth/setupIncomplete.d.ts.map +0 -1
- package/dist/auth/setupIncomplete.js +0 -50
- package/dist/auth/setupIncomplete.js.map +0 -1
- package/dist/auth/types.d.ts +0 -440
- package/dist/auth/types.d.ts.map +0 -1
- package/dist/auth/types.js +0 -10
- package/dist/auth/types.js.map +0 -1
- package/dist/bun/index.d.ts +0 -65
- package/dist/bun/index.d.ts.map +0 -1
- package/dist/bun/index.js +0 -130
- package/dist/bun/index.js.map +0 -1
- package/dist/cli/emitModule.d.ts +0 -7
- package/dist/cli/emitModule.d.ts.map +0 -1
- package/dist/cli/emitModule.js +0 -127
- package/dist/cli/emitModule.js.map +0 -1
- package/dist/cli/generate.d.ts +0 -8
- package/dist/cli/generate.d.ts.map +0 -1
- package/dist/cli/generate.js +0 -391
- package/dist/cli/generate.js.map +0 -1
- package/dist/cli/main.d.ts +0 -3
- package/dist/cli/main.d.ts.map +0 -1
- package/dist/cli/main.js +0 -21
- package/dist/cli/main.js.map +0 -1
- package/dist/cli/preset.d.ts +0 -18
- package/dist/cli/preset.d.ts.map +0 -1
- package/dist/cli/preset.js +0 -353
- package/dist/cli/preset.js.map +0 -1
- package/dist/cloudflare/index.d.ts +0 -21
- package/dist/cloudflare/index.d.ts.map +0 -1
- package/dist/cloudflare/index.js +0 -14
- package/dist/cloudflare/index.js.map +0 -1
- package/dist/cloudflare/r2Media.d.ts.map +0 -1
- package/dist/cloudflare/r2Media.js +0 -69
- package/dist/cloudflare/r2Media.js.map +0 -1
- package/dist/core/caller.d.ts +0 -35
- package/dist/core/caller.d.ts.map +0 -1
- package/dist/core/caller.js +0 -3
- package/dist/core/caller.js.map +0 -1
- package/dist/core/createMantle.d.ts +0 -22
- package/dist/core/createMantle.d.ts.map +0 -1
- package/dist/core/createMantle.js +0 -117
- package/dist/core/createMantle.js.map +0 -1
- package/dist/core/dialect.d.ts +0 -41
- package/dist/core/dialect.d.ts.map +0 -1
- package/dist/core/dialect.js +0 -7
- package/dist/core/dialect.js.map +0 -1
- package/dist/core/driver.d.ts +0 -17
- package/dist/core/driver.d.ts.map +0 -1
- package/dist/core/driver.js +0 -2
- package/dist/core/driver.js.map +0 -1
- package/dist/core/email.d.ts +0 -17
- package/dist/core/email.d.ts.map +0 -1
- package/dist/core/email.js +0 -2
- package/dist/core/email.js.map +0 -1
- package/dist/core/index.d.ts +0 -16
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -16
- package/dist/core/index.js.map +0 -1
- package/dist/core/invocation.d.ts +0 -66
- package/dist/core/invocation.d.ts.map +0 -1
- package/dist/core/invocation.js +0 -3
- package/dist/core/invocation.js.map +0 -1
- package/dist/core/observation.d.ts +0 -3
- package/dist/core/observation.d.ts.map +0 -1
- package/dist/core/observation.js +0 -10
- package/dist/core/observation.js.map +0 -1
- package/dist/core/runtime/auth.d.ts +0 -9
- package/dist/core/runtime/auth.d.ts.map +0 -1
- package/dist/core/runtime/auth.js +0 -39
- package/dist/core/runtime/auth.js.map +0 -1
- package/dist/core/runtime/createRuntime.d.ts +0 -23
- package/dist/core/runtime/createRuntime.d.ts.map +0 -1
- package/dist/core/runtime/createRuntime.js +0 -214
- package/dist/core/runtime/createRuntime.js.map +0 -1
- package/dist/core/runtime/verifyPlan.d.ts +0 -34
- package/dist/core/runtime/verifyPlan.d.ts.map +0 -1
- package/dist/core/runtime/verifyPlan.js +0 -301
- package/dist/core/runtime/verifyPlan.js.map +0 -1
- package/dist/core/service.d.ts +0 -45
- package/dist/core/service.d.ts.map +0 -1
- package/dist/core/service.js +0 -2
- package/dist/core/service.js.map +0 -1
- package/dist/core/site.d.ts.map +0 -1
- package/dist/core/site.js +0 -2
- package/dist/core/site.js.map +0 -1
- package/dist/core/siteConfig.d.ts +0 -5
- package/dist/core/siteConfig.d.ts.map +0 -1
- package/dist/core/siteConfig.js +0 -24
- package/dist/core/siteConfig.js.map +0 -1
- package/dist/core/sql/allowlist.d.ts +0 -65
- package/dist/core/sql/allowlist.d.ts.map +0 -1
- package/dist/core/sql/allowlist.js +0 -705
- package/dist/core/sql/allowlist.js.map +0 -1
- package/dist/core/sql/ast.d.ts +0 -24
- package/dist/core/sql/ast.d.ts.map +0 -1
- package/dist/core/sql/ast.js +0 -32
- package/dist/core/sql/ast.js.map +0 -1
- package/dist/core/sql/compile.d.ts +0 -50
- package/dist/core/sql/compile.d.ts.map +0 -1
- package/dist/core/sql/compile.js +0 -48
- package/dist/core/sql/compile.js.map +0 -1
- package/dist/core/sql/policy.d.ts +0 -121
- package/dist/core/sql/policy.d.ts.map +0 -1
- package/dist/core/sql/policy.js +0 -379
- package/dist/core/sql/policy.js.map +0 -1
- package/dist/core/sql/positions.d.ts +0 -30
- package/dist/core/sql/positions.d.ts.map +0 -1
- package/dist/core/sql/positions.js +0 -22
- package/dist/core/sql/positions.js.map +0 -1
- package/dist/core/sql/run.d.ts +0 -76
- package/dist/core/sql/run.d.ts.map +0 -1
- package/dist/core/sql/run.js +0 -267
- package/dist/core/sql/run.js.map +0 -1
- package/dist/core/store/createStore.d.ts +0 -49
- package/dist/core/store/createStore.d.ts.map +0 -1
- package/dist/core/store/createStore.js +0 -227
- package/dist/core/store/createStore.js.map +0 -1
- package/dist/core/store/cursor.d.ts +0 -4
- package/dist/core/store/cursor.d.ts.map +0 -1
- package/dist/core/store/cursor.js +0 -22
- package/dist/core/store/cursor.js.map +0 -1
- package/dist/core/store/json.d.ts +0 -80
- package/dist/core/store/json.d.ts.map +0 -1
- package/dist/core/store/json.js +0 -342
- package/dist/core/store/json.js.map +0 -1
- package/dist/core/store.d.ts +0 -160
- package/dist/core/store.d.ts.map +0 -1
- package/dist/core/store.js +0 -2
- package/dist/core/store.js.map +0 -1
- package/dist/core/wire.d.ts +0 -20
- package/dist/core/wire.d.ts.map +0 -1
- package/dist/core/wire.js +0 -84
- package/dist/core/wire.js.map +0 -1
- package/dist/core/withCaller.d.ts +0 -24
- package/dist/core/withCaller.d.ts.map +0 -1
- package/dist/core/withCaller.js +0 -35
- package/dist/core/withCaller.js.map +0 -1
- package/dist/d1/adapter.d.ts +0 -12
- package/dist/d1/adapter.d.ts.map +0 -1
- package/dist/d1/adapter.js +0 -23
- package/dist/d1/adapter.js.map +0 -1
- package/dist/d1/codec.d.ts +0 -14
- package/dist/d1/codec.d.ts.map +0 -1
- package/dist/d1/codec.js +0 -136
- package/dist/d1/codec.js.map +0 -1
- package/dist/d1/compile/index.d.ts +0 -9
- package/dist/d1/compile/index.d.ts.map +0 -1
- package/dist/d1/compile/index.js +0 -9
- package/dist/d1/compile/index.js.map +0 -1
- package/dist/d1/dialect.d.ts +0 -4
- package/dist/d1/dialect.d.ts.map +0 -1
- package/dist/d1/dialect.js +0 -13
- package/dist/d1/dialect.js.map +0 -1
- package/dist/d1/executor.d.ts +0 -13
- package/dist/d1/executor.d.ts.map +0 -1
- package/dist/d1/executor.js +0 -91
- package/dist/d1/executor.js.map +0 -1
- package/dist/d1/index.d.ts +0 -6
- package/dist/d1/index.d.ts.map +0 -1
- package/dist/d1/index.js +0 -6
- package/dist/d1/index.js.map +0 -1
- package/dist/d1/lower.d.ts +0 -8
- package/dist/d1/lower.d.ts.map +0 -1
- package/dist/d1/lower.js +0 -167
- package/dist/d1/lower.js.map +0 -1
- package/dist/d1/media.d.ts +0 -5
- package/dist/d1/media.d.ts.map +0 -1
- package/dist/d1/media.js +0 -157
- package/dist/d1/media.js.map +0 -1
- package/dist/d1/migrations.d.ts +0 -12
- package/dist/d1/migrations.d.ts.map +0 -1
- package/dist/d1/migrations.js +0 -111
- package/dist/d1/migrations.js.map +0 -1
- package/dist/d1/print.d.ts +0 -28
- package/dist/d1/print.d.ts.map +0 -1
- package/dist/d1/print.js +0 -54
- package/dist/d1/print.js.map +0 -1
- package/dist/d1/site.d.ts +0 -17
- package/dist/d1/site.d.ts.map +0 -1
- package/dist/d1/site.js +0 -63
- package/dist/d1/site.js.map +0 -1
- package/dist/d1/storage.d.ts +0 -34
- package/dist/d1/storage.d.ts.map +0 -1
- package/dist/d1/storage.js +0 -288
- package/dist/d1/storage.js.map +0 -1
- package/dist/d1/tz.d.ts +0 -21
- package/dist/d1/tz.d.ts.map +0 -1
- package/dist/d1/tz.js +0 -54
- package/dist/d1/tz.js.map +0 -1
- package/dist/d1/validator.d.ts +0 -10
- package/dist/d1/validator.d.ts.map +0 -1
- package/dist/d1/validator.js +0 -33
- package/dist/d1/validator.js.map +0 -1
- package/dist/mcp/apps.d.ts +0 -43
- package/dist/mcp/apps.d.ts.map +0 -1
- package/dist/mcp/apps.js +0 -57
- package/dist/mcp/apps.js.map +0 -1
- package/dist/mcp/catalog.d.ts +0 -55
- package/dist/mcp/catalog.d.ts.map +0 -1
- package/dist/mcp/catalog.js +0 -81
- package/dist/mcp/catalog.js.map +0 -1
- package/dist/mcp/createMcpSurface.d.ts +0 -60
- package/dist/mcp/createMcpSurface.d.ts.map +0 -1
- package/dist/mcp/createMcpSurface.js +0 -182
- package/dist/mcp/createMcpSurface.js.map +0 -1
- package/dist/mcp/index.d.ts +0 -4
- package/dist/mcp/index.d.ts.map +0 -1
- package/dist/mcp/index.js +0 -4
- package/dist/mcp/index.js.map +0 -1
- package/dist/mcp/media.d.ts +0 -9
- package/dist/mcp/media.d.ts.map +0 -1
- package/dist/mcp/media.js +0 -33
- package/dist/mcp/media.js.map +0 -1
- package/dist/postgres/adapter.d.ts +0 -20
- package/dist/postgres/adapter.d.ts.map +0 -1
- package/dist/postgres/adapter.js +0 -44
- package/dist/postgres/adapter.js.map +0 -1
- package/dist/postgres/codec.d.ts +0 -13
- package/dist/postgres/codec.d.ts.map +0 -1
- package/dist/postgres/codec.js +0 -110
- package/dist/postgres/codec.js.map +0 -1
- package/dist/postgres/compile/index.d.ts +0 -9
- package/dist/postgres/compile/index.d.ts.map +0 -1
- package/dist/postgres/compile/index.js +0 -9
- package/dist/postgres/compile/index.js.map +0 -1
- package/dist/postgres/driver.d.ts +0 -92
- package/dist/postgres/driver.d.ts.map +0 -1
- package/dist/postgres/driver.js +0 -110
- package/dist/postgres/driver.js.map +0 -1
- package/dist/postgres/executor.d.ts +0 -20
- package/dist/postgres/executor.d.ts.map +0 -1
- package/dist/postgres/executor.js +0 -69
- package/dist/postgres/executor.js.map +0 -1
- package/dist/postgres/index.d.ts +0 -7
- package/dist/postgres/index.d.ts.map +0 -1
- package/dist/postgres/index.js +0 -7
- package/dist/postgres/index.js.map +0 -1
- package/dist/postgres/lower.d.ts +0 -6
- package/dist/postgres/lower.d.ts.map +0 -1
- package/dist/postgres/lower.js +0 -157
- package/dist/postgres/lower.js.map +0 -1
- package/dist/postgres/print.d.ts +0 -11
- package/dist/postgres/print.d.ts.map +0 -1
- package/dist/postgres/print.js +0 -121
- package/dist/postgres/print.js.map +0 -1
- package/dist/postgres/storage.d.ts +0 -19
- package/dist/postgres/storage.d.ts.map +0 -1
- package/dist/postgres/storage.js +0 -201
- package/dist/postgres/storage.js.map +0 -1
- package/dist/postgres/textRows.d.ts +0 -10
- package/dist/postgres/textRows.d.ts.map +0 -1
- package/dist/postgres/textRows.js +0 -44
- package/dist/postgres/textRows.js.map +0 -1
- package/dist/postgres/validator.d.ts +0 -12
- package/dist/postgres/validator.d.ts.map +0 -1
- package/dist/postgres/validator.js +0 -46
- package/dist/postgres/validator.js.map +0 -1
- package/dist/spec/domain/index.d.ts +0 -3
- package/dist/spec/domain/index.d.ts.map +0 -1
- package/dist/spec/domain/index.js +0 -3
- package/dist/spec/domain/index.js.map +0 -1
- package/dist/spec/domain/model/ContentState.d.ts +0 -8
- package/dist/spec/domain/model/ContentState.d.ts.map +0 -1
- package/dist/spec/domain/model/ContentState.js +0 -7
- package/dist/spec/domain/model/ContentState.js.map +0 -1
- package/dist/spec/domain/model/Entry.d.ts +0 -29
- package/dist/spec/domain/model/Entry.d.ts.map +0 -1
- package/dist/spec/domain/model/Entry.js +0 -16
- package/dist/spec/domain/model/Entry.js.map +0 -1
- package/dist/spec/domain/model/Locale.d.ts +0 -30
- package/dist/spec/domain/model/Locale.d.ts.map +0 -1
- package/dist/spec/domain/model/Locale.js +0 -33
- package/dist/spec/domain/model/Locale.js.map +0 -1
- package/dist/spec/domain/model/ManifestGrammar.d.ts.map +0 -1
- package/dist/spec/domain/model/ManifestGrammar.js +0 -149
- package/dist/spec/domain/model/ManifestGrammar.js.map +0 -1
- package/dist/spec/domain/model/MediaMimeAccept.d.ts +0 -55
- package/dist/spec/domain/model/MediaMimeAccept.d.ts.map +0 -1
- package/dist/spec/domain/model/MediaMimeAccept.js +0 -90
- package/dist/spec/domain/model/MediaMimeAccept.js.map +0 -1
- package/dist/spec/domain/model/RuntimePlan.d.ts.map +0 -1
- package/dist/spec/domain/model/RuntimePlan.js +0 -4
- package/dist/spec/domain/model/RuntimePlan.js.map +0 -1
- package/dist/spec/domain/model/SiteConfig.d.ts +0 -173
- package/dist/spec/domain/model/SiteConfig.d.ts.map +0 -1
- package/dist/spec/domain/model/SiteConfig.js +0 -13
- package/dist/spec/domain/model/SiteConfig.js.map +0 -1
- package/dist/spec/domain/model/SqlIr.d.ts.map +0 -1
- package/dist/spec/domain/model/SqlIr.js +0 -95
- package/dist/spec/domain/model/SqlIr.js.map +0 -1
- package/dist/spec/domain/model/index.d.ts +0 -14
- package/dist/spec/domain/model/index.d.ts.map +0 -1
- package/dist/spec/domain/model/index.js +0 -14
- package/dist/spec/domain/model/index.js.map +0 -1
- package/dist/spec/domain/service/CloudflareCron.d.ts.map +0 -1
- package/dist/spec/domain/service/CloudflareCron.js.map +0 -1
- package/dist/spec/domain/service/CrossSchemaChecker.d.ts +0 -34
- package/dist/spec/domain/service/CrossSchemaChecker.d.ts.map +0 -1
- package/dist/spec/domain/service/CrossSchemaChecker.js +0 -114
- package/dist/spec/domain/service/CrossSchemaChecker.js.map +0 -1
- package/dist/spec/domain/service/EntryDataValidator.d.ts +0 -56
- package/dist/spec/domain/service/EntryDataValidator.d.ts.map +0 -1
- package/dist/spec/domain/service/EntryDataValidator.js +0 -88
- package/dist/spec/domain/service/EntryDataValidator.js.map +0 -1
- package/dist/spec/domain/service/JsonSchemaToZod.d.ts +0 -29
- package/dist/spec/domain/service/JsonSchemaToZod.d.ts.map +0 -1
- package/dist/spec/domain/service/JsonSchemaToZod.js +0 -156
- package/dist/spec/domain/service/JsonSchemaToZod.js.map +0 -1
- package/dist/spec/domain/service/LifecycleStateMachine.d.ts +0 -75
- package/dist/spec/domain/service/LifecycleStateMachine.d.ts.map +0 -1
- package/dist/spec/domain/service/LifecycleStateMachine.js +0 -76
- package/dist/spec/domain/service/LifecycleStateMachine.js.map +0 -1
- package/dist/spec/domain/service/LocaleCanonicalizer.d.ts +0 -29
- package/dist/spec/domain/service/LocaleCanonicalizer.d.ts.map +0 -1
- package/dist/spec/domain/service/LocaleCanonicalizer.js +0 -96
- package/dist/spec/domain/service/LocaleCanonicalizer.js.map +0 -1
- package/dist/spec/domain/service/ManifestFieldChecks.d.ts +0 -60
- package/dist/spec/domain/service/ManifestFieldChecks.d.ts.map +0 -1
- package/dist/spec/domain/service/ManifestFieldChecks.js +0 -116
- package/dist/spec/domain/service/ManifestFieldChecks.js.map +0 -1
- package/dist/spec/domain/service/ManifestGraphValidator.d.ts +0 -15
- package/dist/spec/domain/service/ManifestGraphValidator.d.ts.map +0 -1
- package/dist/spec/domain/service/ManifestGraphValidator.js +0 -225
- package/dist/spec/domain/service/ManifestGraphValidator.js.map +0 -1
- package/dist/spec/domain/service/ManifestLinker.d.ts +0 -45
- package/dist/spec/domain/service/ManifestLinker.d.ts.map +0 -1
- package/dist/spec/domain/service/ManifestLinker.js +0 -92
- package/dist/spec/domain/service/ManifestLinker.js.map +0 -1
- package/dist/spec/domain/service/ManifestLocaleTrimmer.d.ts +0 -16
- package/dist/spec/domain/service/ManifestLocaleTrimmer.d.ts.map +0 -1
- package/dist/spec/domain/service/ManifestLocaleTrimmer.js +0 -76
- package/dist/spec/domain/service/ManifestLocaleTrimmer.js.map +0 -1
- package/dist/spec/domain/service/ManifestParser.d.ts +0 -49
- package/dist/spec/domain/service/ManifestParser.d.ts.map +0 -1
- package/dist/spec/domain/service/ManifestParser.js +0 -203
- package/dist/spec/domain/service/ManifestParser.js.map +0 -1
- package/dist/spec/domain/service/ManifestPartition.d.ts +0 -9
- package/dist/spec/domain/service/ManifestPartition.d.ts.map +0 -1
- package/dist/spec/domain/service/ManifestPartition.js +0 -19
- package/dist/spec/domain/service/ManifestPartition.js.map +0 -1
- package/dist/spec/domain/service/ManifestPathDiagnoser.d.ts +0 -33
- package/dist/spec/domain/service/ManifestPathDiagnoser.d.ts.map +0 -1
- package/dist/spec/domain/service/ManifestPathDiagnoser.js +0 -43
- package/dist/spec/domain/service/ManifestPathDiagnoser.js.map +0 -1
- package/dist/spec/domain/service/ManifestSourceSpans.d.ts +0 -10
- package/dist/spec/domain/service/ManifestSourceSpans.d.ts.map +0 -1
- package/dist/spec/domain/service/ManifestSourceSpans.js +0 -76
- package/dist/spec/domain/service/ManifestSourceSpans.js.map +0 -1
- package/dist/spec/domain/service/McpToolNaming.d.ts +0 -25
- package/dist/spec/domain/service/McpToolNaming.d.ts.map +0 -1
- package/dist/spec/domain/service/McpToolNaming.js +0 -50
- package/dist/spec/domain/service/McpToolNaming.js.map +0 -1
- package/dist/spec/domain/service/PlanFingerprint.d.ts.map +0 -1
- package/dist/spec/domain/service/PlanFingerprint.js +0 -14
- package/dist/spec/domain/service/PlanFingerprint.js.map +0 -1
- package/dist/spec/domain/service/ProcedureViewSpecChecks.d.ts +0 -4
- package/dist/spec/domain/service/ProcedureViewSpecChecks.d.ts.map +0 -1
- package/dist/spec/domain/service/ProcedureViewSpecChecks.js +0 -211
- package/dist/spec/domain/service/ProcedureViewSpecChecks.js.map +0 -1
- package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts +0 -42
- package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts.map +0 -1
- package/dist/spec/domain/service/SchemaAdminUiChecker.js +0 -289
- package/dist/spec/domain/service/SchemaAdminUiChecker.js.map +0 -1
- package/dist/spec/domain/service/SchemaIndexChecker.d.ts +0 -33
- package/dist/spec/domain/service/SchemaIndexChecker.d.ts.map +0 -1
- package/dist/spec/domain/service/SchemaIndexChecker.js +0 -256
- package/dist/spec/domain/service/SchemaIndexChecker.js.map +0 -1
- package/dist/spec/domain/service/SchemaSearchChecker.d.ts +0 -11
- package/dist/spec/domain/service/SchemaSearchChecker.d.ts.map +0 -1
- package/dist/spec/domain/service/SchemaSearchChecker.js +0 -78
- package/dist/spec/domain/service/SchemaSearchChecker.js.map +0 -1
- package/dist/spec/domain/service/SchemaSpecChecks.d.ts +0 -31
- package/dist/spec/domain/service/SchemaSpecChecks.d.ts.map +0 -1
- package/dist/spec/domain/service/SchemaSpecChecks.js +0 -445
- package/dist/spec/domain/service/SchemaSpecChecks.js.map +0 -1
- package/dist/spec/domain/service/SiteDefaultsValidator.d.ts +0 -39
- package/dist/spec/domain/service/SiteDefaultsValidator.d.ts.map +0 -1
- package/dist/spec/domain/service/SiteDefaultsValidator.js +0 -194
- package/dist/spec/domain/service/SiteDefaultsValidator.js.map +0 -1
- package/dist/spec/domain/service/SqlClassify.d.ts +0 -19
- package/dist/spec/domain/service/SqlClassify.d.ts.map +0 -1
- package/dist/spec/domain/service/SqlClassify.js +0 -42
- package/dist/spec/domain/service/SqlClassify.js.map +0 -1
- package/dist/spec/domain/service/SqlRefusal.d.ts +0 -16
- package/dist/spec/domain/service/SqlRefusal.d.ts.map +0 -1
- package/dist/spec/domain/service/SqlRefusal.js +0 -20
- package/dist/spec/domain/service/SqlRefusal.js.map +0 -1
- package/dist/spec/domain/service/SqlTypes.d.ts +0 -40
- package/dist/spec/domain/service/SqlTypes.d.ts.map +0 -1
- package/dist/spec/domain/service/SqlTypes.js +0 -110
- package/dist/spec/domain/service/SqlTypes.js.map +0 -1
- package/dist/spec/domain/service/StaffRoleHierarchy.d.ts +0 -3
- package/dist/spec/domain/service/StaffRoleHierarchy.d.ts.map +0 -1
- package/dist/spec/domain/service/StaffRoleHierarchy.js +0 -19
- package/dist/spec/domain/service/StaffRoleHierarchy.js.map +0 -1
- package/dist/spec/domain/service/TriggerGraphChecks.d.ts +0 -16
- package/dist/spec/domain/service/TriggerGraphChecks.d.ts.map +0 -1
- package/dist/spec/domain/service/TriggerGraphChecks.js +0 -337
- package/dist/spec/domain/service/TriggerGraphChecks.js.map +0 -1
- package/dist/spec/domain/service/TriggerSpecChecks.d.ts +0 -4
- package/dist/spec/domain/service/TriggerSpecChecks.d.ts.map +0 -1
- package/dist/spec/domain/service/TriggerSpecChecks.js +0 -89
- package/dist/spec/domain/service/TriggerSpecChecks.js.map +0 -1
- package/dist/spec/domain/service/ValidatedAdminUiProjection.d.ts +0 -11
- package/dist/spec/domain/service/ValidatedAdminUiProjection.d.ts.map +0 -1
- package/dist/spec/domain/service/ValidatedAdminUiProjection.js +0 -26
- package/dist/spec/domain/service/ValidatedAdminUiProjection.js.map +0 -1
- package/dist/spec/domain/service/ViewAdminUiChecker.d.ts +0 -14
- package/dist/spec/domain/service/ViewAdminUiChecker.d.ts.map +0 -1
- package/dist/spec/domain/service/ViewAdminUiChecker.js +0 -53
- package/dist/spec/domain/service/ViewAdminUiChecker.js.map +0 -1
- package/dist/spec/domain/service/index.d.ts +0 -24
- package/dist/spec/domain/service/index.d.ts.map +0 -1
- package/dist/spec/domain/service/index.js +0 -24
- package/dist/spec/domain/service/index.js.map +0 -1
- package/dist/spec/index.d.ts +0 -10
- package/dist/spec/index.d.ts.map +0 -1
- package/dist/spec/index.js +0 -12
- package/dist/spec/index.js.map +0 -1
- package/dist/spec/infrastructure/cli/parseArgsError.d.ts +0 -16
- package/dist/spec/infrastructure/cli/parseArgsError.d.ts.map +0 -1
- package/dist/spec/infrastructure/cli/parseArgsError.js +0 -34
- package/dist/spec/infrastructure/cli/parseArgsError.js.map +0 -1
- package/dist/spec/infrastructure/index.d.ts +0 -2
- package/dist/spec/infrastructure/index.d.ts.map +0 -1
- package/dist/spec/infrastructure/index.js +0 -2
- package/dist/spec/infrastructure/index.js.map +0 -1
- package/dist/spec/infrastructure/sql/PgQueryParser.d.ts +0 -18
- package/dist/spec/infrastructure/sql/PgQueryParser.d.ts.map +0 -1
- package/dist/spec/infrastructure/sql/PgQueryParser.js +0 -17
- package/dist/spec/infrastructure/sql/PgQueryParser.js.map +0 -1
- package/dist/spec/infrastructure/sql/compilePlan.d.ts +0 -37
- package/dist/spec/infrastructure/sql/compilePlan.d.ts.map +0 -1
- package/dist/spec/infrastructure/sql/compilePlan.js +0 -282
- package/dist/spec/infrastructure/sql/compilePlan.js.map +0 -1
- package/dist/spec/infrastructure/sql/compileSql.d.ts +0 -35
- package/dist/spec/infrastructure/sql/compileSql.d.ts.map +0 -1
- package/dist/spec/infrastructure/sql/compileSql.js +0 -92
- package/dist/spec/infrastructure/sql/compileSql.js.map +0 -1
- package/dist/spec/infrastructure/sql/frontEnd.d.ts +0 -8
- package/dist/spec/infrastructure/sql/frontEnd.d.ts.map +0 -1
- package/dist/spec/infrastructure/sql/frontEnd.js +0 -100
- package/dist/spec/infrastructure/sql/frontEnd.js.map +0 -1
- package/dist/spec/infrastructure/sql/index.d.ts +0 -4
- package/dist/spec/infrastructure/sql/index.d.ts.map +0 -1
- package/dist/spec/infrastructure/sql/index.js +0 -4
- package/dist/spec/infrastructure/sql/index.js.map +0 -1
- package/dist/spec/kernel/diagnostic.d.ts.map +0 -1
- package/dist/spec/kernel/diagnostic.js +0 -296
- package/dist/spec/kernel/diagnostic.js.map +0 -1
- package/dist/spec/kernel/index.d.ts +0 -8
- package/dist/spec/kernel/index.d.ts.map +0 -1
- package/dist/spec/kernel/index.js +0 -8
- package/dist/spec/kernel/index.js.map +0 -1
- package/dist/spec/usecase/EmitTypes.d.ts +0 -22
- package/dist/spec/usecase/EmitTypes.d.ts.map +0 -1
- package/dist/spec/usecase/EmitTypes.js +0 -182
- package/dist/spec/usecase/EmitTypes.js.map +0 -1
- package/dist/spec/usecase/ValidateManifestsUseCase.d.ts +0 -8
- package/dist/spec/usecase/ValidateManifestsUseCase.d.ts.map +0 -1
- package/dist/spec/usecase/ValidateManifestsUseCase.js +0 -101
- package/dist/spec/usecase/ValidateManifestsUseCase.js.map +0 -1
- package/dist/spec/usecase/dto/ValidateManifestsRequest.d.ts +0 -27
- package/dist/spec/usecase/dto/ValidateManifestsRequest.d.ts.map +0 -1
- package/dist/spec/usecase/dto/ValidateManifestsRequest.js +0 -2
- package/dist/spec/usecase/dto/ValidateManifestsRequest.js.map +0 -1
- package/dist/spec/usecase/dto/ValidateManifestsResponse.d.ts +0 -14
- package/dist/spec/usecase/dto/ValidateManifestsResponse.d.ts.map +0 -1
- package/dist/spec/usecase/dto/ValidateManifestsResponse.js +0 -2
- package/dist/spec/usecase/dto/ValidateManifestsResponse.js.map +0 -1
- package/dist/spec/usecase/dto/index.d.ts +0 -3
- package/dist/spec/usecase/dto/index.d.ts.map +0 -1
- package/dist/spec/usecase/dto/index.js +0 -3
- package/dist/spec/usecase/dto/index.js.map +0 -1
- package/dist/spec/usecase/index.d.ts +0 -10
- package/dist/spec/usecase/index.d.ts.map +0 -1
- package/dist/spec/usecase/index.js +0 -10
- package/dist/spec/usecase/index.js.map +0 -1
- package/dist/testing/cases/before-hook.d.ts +0 -4
- package/dist/testing/cases/before-hook.d.ts.map +0 -1
- package/dist/testing/cases/before-hook.js +0 -71
- package/dist/testing/cases/before-hook.js.map +0 -1
- package/dist/testing/cases/corpus.d.ts +0 -12
- package/dist/testing/cases/corpus.d.ts.map +0 -1
- package/dist/testing/cases/corpus.js +0 -91
- package/dist/testing/cases/corpus.js.map +0 -1
- package/dist/testing/cases/policy.d.ts +0 -74
- package/dist/testing/cases/policy.d.ts.map +0 -1
- package/dist/testing/cases/policy.js +0 -142
- package/dist/testing/cases/policy.js.map +0 -1
- package/dist/testing/cases/printer.d.ts +0 -4
- package/dist/testing/cases/printer.d.ts.map +0 -1
- package/dist/testing/cases/printer.js +0 -32
- package/dist/testing/cases/printer.js.map +0 -1
- package/dist/testing/cases/report-view.d.ts +0 -5
- package/dist/testing/cases/report-view.d.ts.map +0 -1
- package/dist/testing/cases/report-view.js +0 -33
- package/dist/testing/cases/report-view.js.map +0 -1
- package/dist/testing/cases/requisition.d.ts +0 -4
- package/dist/testing/cases/requisition.d.ts.map +0 -1
- package/dist/testing/cases/requisition.js +0 -38
- package/dist/testing/cases/requisition.js.map +0 -1
- package/dist/testing/cases/search-places.d.ts +0 -4
- package/dist/testing/cases/search-places.d.ts.map +0 -1
- package/dist/testing/cases/search-places.js +0 -60
- package/dist/testing/cases/search-places.js.map +0 -1
- package/dist/testing/cases/stock.d.ts +0 -4
- package/dist/testing/cases/stock.d.ts.map +0 -1
- package/dist/testing/cases/stock.js +0 -35
- package/dist/testing/cases/stock.js.map +0 -1
- package/dist/testing/cases/store.d.ts +0 -4
- package/dist/testing/cases/store.d.ts.map +0 -1
- package/dist/testing/cases/store.js +0 -100
- package/dist/testing/cases/store.js.map +0 -1
- package/dist/testing/harness.d.ts +0 -94
- package/dist/testing/harness.d.ts.map +0 -1
- package/dist/testing/harness.js +0 -168
- package/dist/testing/harness.js.map +0 -1
- package/dist/testing/index.d.ts.map +0 -1
- package/dist/testing/index.js.map +0 -1
- package/dist/testing/report.d.ts +0 -15
- package/dist/testing/report.d.ts.map +0 -1
- package/dist/testing/report.js +0 -22
- package/dist/testing/report.js.map +0 -1
- package/dist/web/createRestSurface.d.ts +0 -7
- package/dist/web/createRestSurface.d.ts.map +0 -1
- package/dist/web/createRestSurface.js +0 -41
- package/dist/web/createRestSurface.js.map +0 -1
- package/dist/web/index.d.ts +0 -2
- package/dist/web/index.d.ts.map +0 -1
- package/dist/web/index.js +0 -2
- package/dist/web/index.js.map +0 -1
- package/docs/adr/0001-four-atom-manifest-model.md +0 -440
- package/docs/adr/0002-closed-enums-for-bindings.md +0 -253
- package/docs/adr/0007-ai-as-primary-author.md +0 -473
- package/docs/adr/0008-structured-diagnostic-shape.md +0 -338
- package/docs/adr/0009-consumer-supplied-manifests.md +0 -149
- package/docs/adr/0010-locale-and-translates.md +0 -453
- package/docs/adr/0011-adapter-port-spec.md +0 -281
- package/docs/adr/0012-views-as-public-rest.md +0 -161
- package/docs/adr/0013-agent-provisioned-consumer-projects.md +0 -154
- package/docs/adr/0014-auth-better-auth-and-multi-tenant-mcp.md +0 -939
- package/docs/adr/0016-site-semantic-layer.md +0 -70
- package/docs/adr/0017-media-multi-variant-agent-side-optimization.md +0 -181
- package/docs/adr/0018-core-starters-repository-boundary.md +0 -179
- package/docs/adr/0019-sealed-manifest-runtime-pipeline.md +0 -244
- package/docs/adr/0020-builtin-handler-contracts-and-matched-upsert.md +0 -199
- package/docs/adr/0021-retire-starter-scaffolding.md +0 -30
- package/docs/adr/0022-caller-observed-version-occ.md +0 -212
- package/docs/adr/0023-port-failure-contract.md +0 -69
- package/docs/adr/0024-manifest-native-schema-tables.md +0 -264
- package/docs/adr/0025-reserved-native-columns-and-published-only-public-views.md +0 -105
- package/docs/adr/0026-progressive-generate.md +0 -36
- package/docs/adr/0027-scheduled-procedure-triggers.md +0 -31
- package/docs/adr/0028-schema-ttl-expiry.md +0 -33
- package/docs/adr/0029-mcp-apps-interaction-contracts.md +0 -324
- package/docs/adr/0030-store.md +0 -40
- package/docs/adr/0031-host-cloud-core-contract.md +0 -102
- package/docs/adr/0032-store-centric-core-and-service-contract.md +0 -384
- package/docs/adr/0033-storage-converges-to-the-plan.md +0 -92
- package/docs/adr/0034-store-is-authored-as-sql.md +0 -192
- package/docs/adr/0035-sql-dialects.md +0 -154
- package/docs/adr/0036-host-and-dialect.md +0 -65
- package/docs/adr/0037-postgresql-is-the-reference-dialect.md +0 -124
- package/docs/adr/0038-bun-native-host.md +0 -63
- package/docs/adr/README.md +0 -96
- package/docs/adr/adr-lite-803-request-diagnostics.md +0 -38
- package/docs/adr/adr-lite-808-route-readiness.md +0 -47
- package/docs/adr/adr-lite-809-bounded-public-content.md +0 -71
- package/docs/adr/adr-lite-812-native-parity.md +0 -150
- package/docs/adr/adr-lite-823-home-statistics.md +0 -64
- package/docs/adr/adr-lite-842-mcp-authoring.md +0 -30
- package/docs/adr/adr-lite-845-frontend-client.md +0 -38
- package/docs/adr/adr-lite-861-admin-webmcp.md +0 -48
- package/docs/adr/adr-lite-909-admin-ui-kit.md +0 -37
- package/docs/examples/commerce-inventory.md +0 -481
- package/docs/examples/commerce.md +0 -254
- package/docs/examples/guarded-api.md +0 -238
- package/docs/examples/intake-hooks.md +0 -237
- package/docs/examples/intake.md +0 -127
- package/docs/examples/legal-documents.md +0 -218
- package/docs/examples/procurement.md +0 -226
- package/docs/examples/publication.md +0 -211
- package/docs/examples/reference-service/.mantle/generated/mantle.ts +0 -174
- package/docs/examples/reference-service/.mantle/generated/plan.json +0 -1936
- package/docs/examples/reference-service/README.md +0 -33
- package/docs/examples/reference-service/manifests/catalog.yaml +0 -103
- package/docs/examples/reference-service/manifests/orders.yaml +0 -120
- package/docs/examples/reference-service/mantle.config.json +0 -1
- package/docs/examples/reference-service/package.json +0 -27
- package/docs/examples/reference-service/smoke.mjs +0 -160
- package/docs/examples/reference-service/src/handlers.ts +0 -36
- package/docs/examples/reference-service/src/index.ts +0 -33
- package/docs/examples/reference-service/src/service.ts +0 -78
- package/docs/examples/reference-service/wrangler.jsonc +0 -26
- package/docs/examples/reservation.md +0 -142
- /package/docs/examples/{reference-service → app-shell}/.dev.vars.example +0 -0
|
@@ -1,324 +0,0 @@
|
|
|
1
|
-
# ADR-0029: Official MCP SDK, interaction contracts and MCP Apps
|
|
2
|
-
|
|
3
|
-
**Status:** Accepted
|
|
4
|
-
|
|
5
|
-
**Date:** 2026-09-25
|
|
6
|
-
|
|
7
|
-
**Related:** epic [#1110](https://github.com/aotter/mantle/issues/1110)
|
|
8
|
-
(supersedes #1109); tracked as [#1114](https://github.com/aotter/mantle/issues/1114).
|
|
9
|
-
Builds on [ADR-0012](0012-views-as-public-rest.md),
|
|
10
|
-
[ADR-0014](0014-auth-better-auth-and-multi-tenant-mcp.md),
|
|
11
|
-
[ADR-0019](0019-sealed-manifest-runtime-pipeline.md),
|
|
12
|
-
[ADR-0020](0020-builtin-handler-contracts-and-matched-upsert.md),
|
|
13
|
-
[ADR-0022](0022-caller-observed-version-occ.md),
|
|
14
|
-
[ADR-lite 845](adr-lite-845-frontend-client.md),
|
|
15
|
-
[ADR-lite 861](adr-lite-861-admin-webmcp.md).
|
|
16
|
-
Amends [ADR-lite 909](adr-lite-909-admin-ui-kit.md) (the kit moves to
|
|
17
|
-
`@aotter/mantle-ui`). External: MCP specification 2025-11-25 and 2026-07-28,
|
|
18
|
-
the MCP Apps extension, and the official TypeScript SDK
|
|
19
|
-
(`@modelcontextprotocol/server` 2.1.0, `client` 2.1.0, `ext-apps` 2.0.0).
|
|
20
|
-
|
|
21
|
-
## Context
|
|
22
|
-
|
|
23
|
-
Mantle projects callable capabilities from the sealed RuntimePlan
|
|
24
|
-
(`CallableCapabilityProjector`) and serves them over a hand-written JSON-RPC
|
|
25
|
-
dispatcher in `mantle-runtime/src/infrastructure/mcp`. The #1109 goal (agents
|
|
26
|
-
discover capabilities, find the right record, and open an interaction UI in
|
|
27
|
-
chat) exposed three gaps.
|
|
28
|
-
|
|
29
|
-
**Protocol.** The hand-written dispatcher accepts only protocol `2025-11-25`,
|
|
30
|
-
has no resource layer, and duplicates negotiation, batching and error framing
|
|
31
|
-
that the official SDK already owns. MCP Apps would add `resources/*`,
|
|
32
|
-
`ui://` resources and `_meta.ui` negotiation on top. The repository already
|
|
33
|
-
tests against the official client (#1023), and the official
|
|
34
|
-
`@modelcontextprotocol/ext-apps` 2.0 server helpers target SDK 2.x.
|
|
35
|
-
|
|
36
|
-
**Semantics in the wrong layer.** Tool semantics live in the transport:
|
|
37
|
-
generic-tool role floors, entry mutability checks, argument parsing, media
|
|
38
|
-
tool descriptions and `expected_version` annotation are in `McpToolCatalog`
|
|
39
|
-
and `McpJsonRpcDispatcher.dispatchToolByName`. They must survive a transport
|
|
40
|
-
swap unchanged.
|
|
41
|
-
|
|
42
|
-
**Interaction contracts.** Verified on `develop` @ `35d2c14`:
|
|
43
|
-
|
|
44
|
-
1. Row binding is inferred, and only in Admin. `discoverRowBindings`
|
|
45
|
-
(`mantle-admin/src/mountMantleAdmin.ts`) picks a same-name property, then a
|
|
46
|
-
lone single-field unique index, then `id`. The procurement example omits
|
|
47
|
-
`x-mantle-ref` because the inference would bind `requestNumber` where
|
|
48
|
-
builtin `update` needs the entry id.
|
|
49
|
-
2. Admin's View page has no row operations; bindings are keyed by collection.
|
|
50
|
-
3. SQL Views declare no output (ADR-lite 845).
|
|
51
|
-
4. `lockedCollection()` in `ManifestGraphValidator` infers the collection an
|
|
52
|
-
OCC write locks. It is a diagnostic heuristic, not an execution contract.
|
|
53
|
-
5. Staff MCP has no single-entry read.
|
|
54
|
-
6. Admin binds the version read when the dialog opens
|
|
55
|
-
(`row-operations.tsx`), not the version of the row the user saw.
|
|
56
|
-
7. Business errors are JSON-RPC `-32000` errors with `error.data`.
|
|
57
|
-
8. Website preview (`?preview=1`) is authorized by a staff session cookie,
|
|
58
|
-
which is a third-party cookie inside a host's sandboxed iframe.
|
|
59
|
-
9. Canonical Admin refuses framing (`frame-ancestors 'none'`).
|
|
60
|
-
10. An MCP App's `tools/call` is proxied by the host with the model's client
|
|
61
|
-
credential. The server cannot tell a UI call from a model call.
|
|
62
|
-
|
|
63
|
-
## Decision
|
|
64
|
-
|
|
65
|
-
### 1. Protocol belongs to the official SDK; semantics belong to Mantle
|
|
66
|
-
|
|
67
|
-
All MCP wire handling uses the official TypeScript SDK: JSON-RPC framing,
|
|
68
|
-
version negotiation, transports, `tools/*`, `resources/*` and MCP Apps
|
|
69
|
-
metadata. Mantle keeps authorization, guards, OCC, audit, validation and the
|
|
70
|
-
diagnostic vocabulary. Official packages are pinned to exact versions and
|
|
71
|
-
never forked. No hand-written JSON-RPC handling remains in the repository.
|
|
72
|
-
|
|
73
|
-
Both protocol eras are served: `2026-07-28` and `2025-*` in stateless mode
|
|
74
|
-
(`createMcpHandler(..., { legacy: "stateless" })`).
|
|
75
|
-
|
|
76
|
-
### 2. Runtime is transport-neutral
|
|
77
|
-
|
|
78
|
-
Runtime stops knowing about MCP. It provides:
|
|
79
|
-
|
|
80
|
-
- `CapabilityCatalog` (domain service): one transport-neutral description per
|
|
81
|
-
callable capability on a surface: Views, Procedures, generic authoring and
|
|
82
|
-
lifecycle operations, and media upload. Each carries name, surface, title,
|
|
83
|
-
description, `inputSchema`, declared `outputSchema`, annotations,
|
|
84
|
-
`requiresIdentity` and the argument that identifies the operation for audit.
|
|
85
|
-
- `InvokeCapabilityUseCase` (use case): the single execution entry and the
|
|
86
|
-
single validation point. It returns
|
|
87
|
-
`{ ok: true, data } | { ok: false, diagnostic }`. Missing or ill-typed
|
|
88
|
-
arguments are `VALIDATION_FAILED` diagnostics.
|
|
89
|
-
|
|
90
|
-
Nothing under `domain/` or `usecase/` imports an MCP concept.
|
|
91
|
-
|
|
92
|
-
### 3. Validate once
|
|
93
|
-
|
|
94
|
-
The SDK receives each `inputSchema` through `fromJsonSchema(schema, validator)`
|
|
95
|
-
with a pass-through validator: the schema is advertised unchanged, and the
|
|
96
|
-
SDK does not validate. Runtime validates once, so MCP, HTTP and Admin report
|
|
97
|
-
the same Mantle diagnostic, and the Ajv instance the default validator would
|
|
98
|
-
pull in is not bundled.
|
|
99
|
-
|
|
100
|
-
`outputSchema` is the safe projection from #1127: an allowlist that only
|
|
101
|
-
loosens the declared schema, so a standard client validator accepts every
|
|
102
|
-
value Runtime accepts. Ineligible outputs advertise none. Views advertise none.
|
|
103
|
-
|
|
104
|
-
### 4. Results and errors (D1)
|
|
105
|
-
|
|
106
|
-
- **Success:** `content` is one JSON text block; `structuredContent` carries
|
|
107
|
-
the value when it is a plain object.
|
|
108
|
-
- **Business failure:** `isError: true` with `{ diagnostics: [Diagnostic] }`
|
|
109
|
-
(the ADR-0008 shape) as a JSON text block, repeated as `structuredContent`
|
|
110
|
-
unless the tool advertises an `outputSchema`. Structured results must
|
|
111
|
-
conform to that schema, and 1.x clients validate them even on `isError`.
|
|
112
|
-
This replaces the JSON-RPC `-32000` business error and is a breaking wire
|
|
113
|
-
change, announced with the cutover.
|
|
114
|
-
- **Protocol failure** (malformed request, unknown method, unsupported
|
|
115
|
-
version) stays a JSON-RPC error owned by the SDK.
|
|
116
|
-
- **Authentication:** an anonymous call to a tool whose capability
|
|
117
|
-
`requiresIdentity` (including any member of a 2025-era batch) is answered
|
|
118
|
-
before the SDK with HTTP 401 and a `WWW-Authenticate` challenge built by the
|
|
119
|
-
SDK helper. The SDK's own
|
|
120
|
-
`scopeChallenge` covers scopes only; identity stays outside it.
|
|
121
|
-
|
|
122
|
-
### 5. Identity stays outside the SDK
|
|
123
|
-
|
|
124
|
-
The SDK never verifies tokens. Adapters verify the caller with `mantle-auth`
|
|
125
|
-
(ADR-0014), build the `HandlerContext`, and pass it as `authInfo.extra`. The
|
|
126
|
-
server factory reads it per request. Authorization extensions such as EMA are
|
|
127
|
-
unaffected.
|
|
128
|
-
|
|
129
|
-
### 6. Packages and dependency direction (D7)
|
|
130
|
-
|
|
131
|
-
Two packages are added; no other package is split.
|
|
132
|
-
|
|
133
|
-
| Package | Responsibility |
|
|
134
|
-
|---|---|
|
|
135
|
-
| `@aotter/mantle-mcp` | Optional. Registers the capability catalog on an official `McpServer` per surface (`createMantleMcpServer`), wraps `createMcpHandler` (`createMantleMcpHandler`), writes audit per call, and registers MCP Apps resources and app tools through `@modelcontextprotocol/ext-apps/server`. No UI dependency. |
|
|
136
|
-
| `@aotter/mantle-ui` | Optional. `/controller`: framework-free interaction controller; must not import React. `/` (root): React interaction components. `/kit` (with `kit.css` and `tokens.css`): the ADR-lite 909 kit moved from `@aotter/mantle-admin-ui/kit`, whose libraries are optional peers so `/controller` installs none. `/mcp-app`: a single-file `ui://` HTML build (`vite-plugin-singlefile`) using the official `App` bridge. |
|
|
137
|
-
|
|
138
|
-
```text
|
|
139
|
-
mantle-spec ◄── mantle-runtime ◄── mantle-mcp ◄── adapters, mantle-admin
|
|
140
|
-
▲ │
|
|
141
|
-
│ └──► @modelcontextprotocol/server, ext-apps/server
|
|
142
|
-
│ (types only)
|
|
143
|
-
mantle-ui/controller ◄── mantle-ui ◄── mantle-ui/mcp-app ──► ext-apps (App)
|
|
144
|
-
▲
|
|
145
|
-
mantle-admin-ui
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
- Arrows point from consumer to dependency. Server packages never depend on
|
|
149
|
-
UI packages; `mantle-mcp` receives MCP App HTML as injected bytes.
|
|
150
|
-
|
|
151
|
-
> **Amendment (0.2.0):** results carry no `_meta` interaction description.
|
|
152
|
-
> `planApp(plan, { surface, html })` (`@aotter/mantle/mcp`) embeds the plan's
|
|
153
|
-
> catalog (each View tool's columns as the fields they read, and, for a View
|
|
154
|
-
> that reads one table and outputs its `id`, the Procedure tools whose
|
|
155
|
-
> `target` is that Schema) as a JSON script in the injected HTML, and renders
|
|
156
|
-
> every View tool of the surface. A rendered result names its tool in
|
|
157
|
-
> `_meta["net.aotter.mantle/tool"]`. The App (`mantleAppHtml` from
|
|
158
|
-
> `@aotter/mantle-ui/mcp-app`) reviews a row as listed; a moved version is the
|
|
159
|
-
> server's `CONFLICT`. The preset serves it on `/mcp/staff`; a member-facing
|
|
160
|
-
> App is the application's own.
|
|
161
|
-
- `@aotter/mantle-admin-ui/kit` re-exports from `@aotter/mantle-ui` for one
|
|
162
|
-
minor release, then is removed.
|
|
163
|
-
- No exported UI module depends on Admin's router, global API client, query
|
|
164
|
-
singletons or cookie session.
|
|
165
|
-
|
|
166
|
-
### 7. Interaction contract
|
|
167
|
-
|
|
168
|
-
| Term | Meaning |
|
|
169
|
-
|---|---|
|
|
170
|
-
| **Capability** | A callable View or Procedure on one surface, with its Trigger identity. |
|
|
171
|
-
| **Target** | The entity an interaction is about: collection plus a stable key, never a display label. |
|
|
172
|
-
| **Reference** | A declared relation from a field to a target collection and key. A reference alone does not mean an operation mutates or locks that entity. |
|
|
173
|
-
| **Operation target** | The entity an operation mutates and whose version it locks. |
|
|
174
|
-
| **Snapshot read** | The authorized read that produces what the human sees, including its version. |
|
|
175
|
-
| **Input binding** | An explicit mapping from snapshot fields to operation input. |
|
|
176
|
-
| **Version binding** | The input field carrying the observed version, taken from the snapshot the human saw. |
|
|
177
|
-
| **Renderer** | Presentation of a snapshot, form, review or outcome. Owns no semantics. |
|
|
178
|
-
|
|
179
|
-
Rules:
|
|
180
|
-
|
|
181
|
-
- An interaction is **entity-bound** only when target, snapshot read, input
|
|
182
|
-
binding and (when required) version binding are all established by the
|
|
183
|
-
contract. Otherwise no automatic binding is offered; the operation stays
|
|
184
|
-
usable as an ordinary form.
|
|
185
|
-
- Nothing is guessed from names.
|
|
186
|
-
- **Derivable today:** builtin `update`/`delete`/`archive` and id-based
|
|
187
|
-
`upsert` target `handler.schema` by input `id`, with `expectedVersion` when
|
|
188
|
-
declared; a non-SQL View's rows target its `from` collection when `fields`
|
|
189
|
-
includes `id`, and supply a version only when `fields` includes `version`.
|
|
190
|
-
- **Declared (D4, grammar-revise #1116):**
|
|
191
|
-
- `x-mantle-ref: { schema, field }` on a Schema or View field names the
|
|
192
|
-
target collection and the key field. `field` must be `id` or a
|
|
193
|
-
single-field unique index of `schema`.
|
|
194
|
-
- `Procedure.spec.target: { schema, id, version? }` names a `ref`
|
|
195
|
-
handler's operation target: `id` and `version` are input property names.
|
|
196
|
-
It is rejected on builtin handlers, whose target is already derivable.
|
|
197
|
-
- Queries, notifications and multi-entity Procedures declare no target.
|
|
198
|
-
- `lockedCollection()` stays a diagnostic heuristic.
|
|
199
|
-
- SQL Views are not bound automatically until a validated output contract
|
|
200
|
-
admits them.
|
|
201
|
-
- **View purpose (D5, #1115):** `View.spec.description` is added and projected
|
|
202
|
-
into the View tool description.
|
|
203
|
-
|
|
204
|
-
### 8. Snapshot and version (D2)
|
|
205
|
-
|
|
206
|
-
- Public and member snapshots are read only through declared, parameterized
|
|
207
|
-
Views.
|
|
208
|
-
- Staff snapshots use a bounded single-entry read offered only for
|
|
209
|
-
collections that are the target of a declared interaction. Other staff
|
|
210
|
-
reads go through Views. This limits which records flow into a model
|
|
211
|
-
provider's context.
|
|
212
|
-
- The version bound to an operation is the version the human saw. A newer
|
|
213
|
-
read is shown as "changed since the list" and requires a deliberate re-read
|
|
214
|
-
and review; it never rebinds silently. Background refresh never replaces
|
|
215
|
-
user edits.
|
|
216
|
-
- Conflicts preserve user input. Uncertain writes (timeout, abort) are not
|
|
217
|
-
retried; the controller reconciles first.
|
|
218
|
-
|
|
219
|
-
### 9. Projection ownership (D8)
|
|
220
|
-
|
|
221
|
-
- Spec resolves D4 declarations during link. The RuntimePlan compiler emits
|
|
222
|
-
interaction descriptors (`plan.interactions`); this advances
|
|
223
|
-
`RUNTIME_PLAN_VERSION`.
|
|
224
|
-
- The capability catalog, Admin operations and the web client all read
|
|
225
|
-
`plan.interactions`. HTTP-only staff Procedures never enter an MCP
|
|
226
|
-
projection.
|
|
227
|
-
- Admin's inference is kept for one minor release. When an operation is bound
|
|
228
|
-
only by inference, Admin logs one deprecation warning pointing to
|
|
229
|
-
`Procedure.spec.target`. The next minor removes the inference.
|
|
230
|
-
- Dynamic availability is advisory. No mutating handler runs to infer
|
|
231
|
-
availability.
|
|
232
|
-
|
|
233
|
-
### 10. MCP Apps
|
|
234
|
-
|
|
235
|
-
Implemented the way the official `add-app-to-server` and `create-mcp-app`
|
|
236
|
-
skills describe:
|
|
237
|
-
|
|
238
|
-
- `mantle-mcp` registers `ui://` resources with `registerAppResource` and
|
|
239
|
-
interaction tools with `registerAppTool` and `_meta.ui.resourceUri`.
|
|
240
|
-
App-only helpers use `_meta.ui.visibility: ["app"]` and are read-only.
|
|
241
|
-
- Negotiation uses `getUiCapability`, per request. A 2026-07-28 request, or a
|
|
242
|
-
2025-era `initialize`, that declares no MCP Apps support gets no `_meta.ui`,
|
|
243
|
-
no resources and no app-only tools; everything else is unchanged.
|
|
244
|
-
- A stateless 2025-era request after `initialize` carries no client
|
|
245
|
-
capabilities. It is treated as possibly supporting MCP Apps: it gets the App
|
|
246
|
-
metadata and the app-only tools, so hosts with MCP Apps can call them on
|
|
247
|
-
every request. Hosts without MCP Apps ignore the metadata but may list the
|
|
248
|
-
app-only tools to the model. This is why app-only tools must be declared
|
|
249
|
-
read-only.
|
|
250
|
-
- Each surface is its own `McpServer`; staff resources never appear on public.
|
|
251
|
-
- Resources hold reusable assets only: no caller data, no bearer. Per-call data
|
|
252
|
-
travels in `structuredContent`. Every app tool keeps its text `content`.
|
|
253
|
-
- Opening an interaction is read-only; a mutation is always a separate
|
|
254
|
-
explicit `tools/call`. Canonical Admin keeps refusing framing.
|
|
255
|
-
- **Preview (D10):** a staff-only, read-only, app-only `preview_entry` tool,
|
|
256
|
-
offered only when a Web renderer is mounted, returns the rendered HTML in
|
|
257
|
-
`structuredContent` under bearer authorization. The app shows it in a
|
|
258
|
-
sandboxed `srcdoc` iframe without `allow-same-origin`. The response is
|
|
259
|
-
`no-store` and the HTML never enters a shared resource.
|
|
260
|
-
- **Hosts (D6):** CI runs the official `basic-host` and
|
|
261
|
-
`@modelcontextprotocol/client`; Claude and ChatGPT are verified manually per
|
|
262
|
-
release of this feature. No identical behavior across hosts is assumed.
|
|
263
|
-
|
|
264
|
-
### 11. Human approval (D3)
|
|
265
|
-
|
|
266
|
-
Deferred. UI confirmation and app-only visibility do not prove a human
|
|
267
|
-
decision (Context 10). The handbook documents the pattern that works today: a
|
|
268
|
-
`readOnly: true` Schema blocks generic writes, and an approval Procedure with
|
|
269
|
-
only an HTTP Trigger and a `ctx.staff` requirement appears in Admin but in no
|
|
270
|
-
MCP catalog. A test asserts an MCP-audience token cannot call an HTTP
|
|
271
|
-
Trigger. Any future Core mechanism is enforced at the server boundary and
|
|
272
|
-
binds target, input and version.
|
|
273
|
-
|
|
274
|
-
### 12. Presentation boundary
|
|
275
|
-
|
|
276
|
-
Renderer registries and `uiSchema` carry presentation only. Target, input
|
|
277
|
-
mapping, authorization, side effects and version semantics are never declared
|
|
278
|
-
there.
|
|
279
|
-
|
|
280
|
-
## Consequences
|
|
281
|
-
|
|
282
|
-
- One validated interaction definition drives Admin, application frontends
|
|
283
|
-
and chat hosts. Admin becomes a consumer of binding rules.
|
|
284
|
-
- Applications that do not use MCP no longer carry any MCP code in Runtime.
|
|
285
|
-
Applications that do add `@aotter/mantle-mcp` and its SDK dependency;
|
|
286
|
-
measured on a minimal Worker, SDK plus zod is about 82 KiB gzip without Ajv.
|
|
287
|
-
- MCP business errors change from JSON-RPC errors to `isError` results
|
|
288
|
-
(`breaking-change`), announced when adapters cut over.
|
|
289
|
-
- Manifests that need entity-bound interactions for `ref` handlers or non-id
|
|
290
|
-
references adopt the D4 declarations. The sealed plan version advances, so
|
|
291
|
-
applications rerun `mantle generate`.
|
|
292
|
-
- Hosts without MCP Apps support see only the additive `structuredContent`
|
|
293
|
-
and `outputSchema`.
|
|
294
|
-
|
|
295
|
-
## Alternatives
|
|
296
|
-
|
|
297
|
-
- **Keep the hand-written dispatcher and add MCP Apps to it.** Duplicates
|
|
298
|
-
the SDK, stays on one protocol version, and diverges from the official
|
|
299
|
-
ext-apps helpers.
|
|
300
|
-
- **Validate in both the SDK and Runtime.** Two error shapes for one mistake,
|
|
301
|
-
and Ajv in every Worker.
|
|
302
|
-
- **Put MCP Apps in Runtime with an injected provider.** Makes Runtime own a
|
|
303
|
-
protocol extension; the SDK already owns resources.
|
|
304
|
-
- **More packages** (separate controller, kit, app packages). Three
|
|
305
|
-
versioning surfaces for one feature; subpaths give the same boundaries.
|
|
306
|
-
- **Each surface derives relations itself.** Status quo; inconsistent.
|
|
307
|
-
- **Bindings in `uiSchema` or an SDK-side registry.** A second, unvalidated
|
|
308
|
-
Manifest; rejected by #1109.
|
|
309
|
-
- **Embed canonical Admin.** Requires weakening framing and cookie policy.
|
|
310
|
-
- **Promote `lockedCollection()` to the execution contract.** A reference does
|
|
311
|
-
not prove mutation or locking.
|
|
312
|
-
|
|
313
|
-
## How to apply
|
|
314
|
-
|
|
315
|
-
Work follows epic #1110 as stacked PRs:
|
|
316
|
-
|
|
317
|
-
1. #1126, #1127 — dispatcher factory; `structuredContent` and `outputSchema`.
|
|
318
|
-
2. #1129 — `CapabilityCatalog` and `InvokeCapabilityUseCase`.
|
|
319
|
-
3. #1130 — `@aotter/mantle-mcp`.
|
|
320
|
-
4. #1131 — adapters, Admin and templates cut over; hand-written dispatcher
|
|
321
|
-
deleted.
|
|
322
|
-
5. #1115, #1116 — grammar-revise; then #1120 interaction descriptors.
|
|
323
|
-
6. #1121 — MCP Apps registration; #1122, #1123, #1124 — `@aotter/mantle-ui`;
|
|
324
|
-
#1125 — preview; #1119 — host matrix.
|
package/docs/adr/0030-store.md
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
# ADR-0030: Store — one persistence object over one relational query AST
|
|
2
|
-
|
|
3
|
-
**Status:** Accepted (#1151). Runtime slices shipped in 0.1.5 alphas; the grammar slice, the storage port and the removal of the parallel paths are decided for 0.2.0 by [ADR-0032](0032-store-centric-core-and-service-contract.md). Manifest authoring is amended by [ADR-0034](0034-store-is-authored-as-sql.md).
|
|
4
|
-
|
|
5
|
-
**Date:** 2026-09-26
|
|
6
|
-
|
|
7
|
-
## Context
|
|
8
|
-
|
|
9
|
-
Entry persistence grew parallel paths: builtin-op use cases over `EntryRepository`, `ctx.writeAtomically` over `AtomicEntryWriter`, declarative Views with their own Filter AST, typed-query bindings, `runtime.entries` readers and the TTL sweeper. Each re-implements filters, OCC and SQL for every adapter, and the public vocabulary stops at id-addressed single rows. A consumer deleting one workout (swolhalla/swolhalla-mantle#15) expands it to two statements per row — about 51 queries for a small workout and 615 for a large one — or bypasses Mantle with raw SQL against Mantle-owned tables.
|
|
10
|
-
|
|
11
|
-
## Decision
|
|
12
|
-
|
|
13
|
-
**Store** is the single persistence object: `ctx.store` inside Procedures (bound to the caller) and `runtime.store` for trusted host code.
|
|
14
|
-
|
|
15
|
-
- Queries are a closed **relational AST with a JSON shape**: SQL vocabulary and semantics (`select`/`from`/`where`/`orderBy`, NULL, subqueries), never a SQL string. Adapters compile it; values are always bound and identifiers come only from the linked Schema, so row scope and OCC can be injected structurally later.
|
|
16
|
-
- Where grammar: `{ column: value }` is equality and sibling keys AND; `{ column: { eq, ne, gt, gte, lt, lte, like, in, notIn, isNull } }`; `and`/`or`/`not`; `in`/`notIn` accept a `{ select, from, where }` subquery. Columns are scalar Schema fields plus the native `id`, `status`, `version`, `createdAt`, `updatedAt`, `authorId`. `like` requires a string column, uses SQLite patterns and `\` as its escape character. `ne` follows SQL and excludes NULL.
|
|
17
|
-
- Rows are flat (native columns next to Schema fields; the parser forbids clashes). Pagination is keyset `limit` (1–500) / `cursor` over one scalar `orderBy` column with `id` as tie-breaker. Declared-required fields can still be NULL in storage (publishing drafts validate partially; added columns start NULL), so NULLs sort last in either direction and the cursor carries a NULL value; no row falls between pages. A cursor is bound to its Schema, column and direction. TTL-expired rows stay hidden everywhere, including subqueries (ADR-0028).
|
|
18
|
-
- `select` returns every lifecycle status: it is a trusted-handler read, not a public View. A Procedure exposed to callers must filter `status` itself (ADR-0025 applies to public Views only). `ne` and `not` follow SQL three-valued logic and exclude NULL; subqueries exclude NULL values so `notIn` behaves like its array form (a NULL left-hand value still matches `notIn` only when the list is empty, as in SQL). A `where` nests at most 16 levels and counts at most 256 objects, comparisons and subqueries in total. A Schema field named `and`, `or` or `not` cannot be filtered.
|
|
19
|
-
- Storage support is an optional `StoreReader` capability; absent support is `RESOURCE_UNAVAILABLE`. Invalid queries are `INPUT_VALIDATION_FAILED`. A statement binds at most 100 values (D1's limit) on every adapter.
|
|
20
|
-
- `store.view(name, options)` runs a named View with the caller's context; `store.id()` returns an entry id.
|
|
21
|
-
- Runtime validates and snapshots Store queries before calling a storage adapter, including nested set-delete filters. Storage adapters retain dialect-specific limits and SQL compilation. `sweepExpired` is host maintenance and rejects every caller-bound Procedure Store, including an anonymous caller.
|
|
22
|
-
- A Schema may declare one identity scope as `scope: { ownerId: "$ctx.user.id" }`, where the named field is a required scalar string and starts an index. Caller-bound Store reads and deletes structurally AND this predicate into every touched Schema, including subqueries. Insert fills the field and rejects a conflicting value; id-based update/delete check the row owner before hooks. A missing caller identity fails closed. `expect` counts affected rows after scope. `runtime.store` remains trusted and unscoped. Until declarative Views use Store IR, a declarative View over a scoped Schema must carry the same top-level identity predicate and auth gate. Native SQL Views remain a trusted escape hatch.
|
|
23
|
-
|
|
24
|
-
Delivery order (each a reviewed PR): (1) `select`, `view`, `id` — this ADR's first slice; (2) `store.write(ops)` with `insert`/`update`/`delete`, `lock` and `expect`, set-based deletes over live rows only, rejected on Schemas with per-row delete hooks and on publishing Schemas (published entries are protected), replacing `ctx.writeAtomically`; (3) manifest grammar (handler `ref | store`, View `select`, Schema `scope`) and removal of the parallel read paths, under grammar-revise.
|
|
25
|
-
|
|
26
|
-
## Consequences
|
|
27
|
-
|
|
28
|
-
- One compiler per dialect replaces per-path SQL generators as later slices land; the SQLite family (D1, Bun, libSQL) implements it first, IndexedDB fails closed until it opts in.
|
|
29
|
-
- Handlers get multi-Schema reads without raw SQL; Web and Admin keep `EntryReader` until the grammar slice.
|
|
30
|
-
- Breaking changes are limited to 0.1.5-alpha APIs until the grammar slice, which ships with a `mantle-update` codemod.
|
|
31
|
-
|
|
32
|
-
## Alternatives
|
|
33
|
-
|
|
34
|
-
MongoDB-flavoured operators (`deleteMany`, `$in`) were considered first and rejected: every backend is relational, document semantics (nested paths, missing versus null) mismatch SQLite, and SQL is the vocabulary agents know best. SQL strings cannot carry injected scope and locks without a parser. Extending `writeAtomically` alone would add a fifth path.
|
|
35
|
-
|
|
36
|
-
> **Amendment (ADR-0034):** Manifests now carry SQL, and the CLI's parser lowers it to this AST before it reaches any Worker. The Store API still takes no SQL string. The AST grows to what the SQL dialect needs (expressions, `CASE`, joins, aggregates, window functions, `RETURNING`, `ON CONFLICT`), and native SQL Views are no longer an escape hatch.
|
|
37
|
-
|
|
38
|
-
## New folder rationale
|
|
39
|
-
|
|
40
|
-
`usecase/store/` holds the Store facade that binds storage capability, the View executor and the id generator to one caller context; it has no storage or platform imports.
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
# ADR 0031: Cloud supplies the host Core pin
|
|
2
|
-
|
|
3
|
-
Status: Accepted for mantle-host protocols 2, 4, 5 and 6.
|
|
4
|
-
|
|
5
|
-
The backend artifact includes `sdkVersion` and `sdkRevision` in its hashed
|
|
6
|
-
bytes. The old host bundled a fixed Core revision. Cloud can run the previous
|
|
7
|
-
Core release, so a host built from current Core cannot assume its own revision
|
|
8
|
-
is the revision Cloud accepts. Asking only the backend upload grant is too
|
|
9
|
-
late: that grant requires the artifact hash first.
|
|
10
|
-
|
|
11
|
-
`save` now preflights the project and emits `cloud-host-contract` with the
|
|
12
|
-
project ID. Control returns `{ projectId, core: { version, revision }, protocol }`
|
|
13
|
-
from the deployed Cloud configuration. The script validates the project,
|
|
14
|
-
40-hex revision and protocol minimum before packing. It persists the pin and
|
|
15
|
-
backend hash together. Upload grants, HTTP responses and the frontend kit must
|
|
16
|
-
echo the same pin; a difference fails before another upload and requires a new
|
|
17
|
-
save. No static Core pin is shipped in the plugin. The script contacts only
|
|
18
|
-
the granted Cloud HTTP endpoints; the contract comes through the Cloud MCP
|
|
19
|
-
tool, like upload grants.
|
|
20
|
-
|
|
21
|
-
Protocol 2 changes the MCP save sequence and requires both Core version and
|
|
22
|
-
revision in `kit.json`. Control must provide the contract tool and pin echoes
|
|
23
|
-
before this host script is offered to users. A future change to the MCP
|
|
24
|
-
sequence, artifact bytes or validation meaning requires a protocol bump. A
|
|
25
|
-
new Core release using these same rules changes only the Cloud contract pin.
|
|
26
|
-
|
|
27
|
-
## Protocol 4: verified project Git source
|
|
28
|
-
|
|
29
|
-
Protocol 4 changes the save sequence: an ordinary push and Cloud source receipt
|
|
30
|
-
precede backend reservation. The receipt binds project/version, commit, target
|
|
31
|
-
and Core pin. The helper reads clean committed Git objects, and Cloud checks
|
|
32
|
-
the plan/YAML and retained ZIP against that commit. A changed Cloud pin requires
|
|
33
|
-
a new source receipt before save; an immutable saved release keeps its stored
|
|
34
|
-
bytes for review and rollback. The helper can reopen an existing project with
|
|
35
|
-
an authorized short-lived read credential, without creating a new project.
|
|
36
|
-
|
|
37
|
-
Artifacts repository provisioning, credentials, receipt records, resource
|
|
38
|
-
cleanup and deployment policy belong to the Cloud service. Core vendors its exact
|
|
39
|
-
helper artifact/checksum and documents the MCP workflow; it gains no provider
|
|
40
|
-
adapter, SQL compiler, runtime wiring or new Manifest grammar. Client-built
|
|
41
|
-
handlers/static files are not represented as server build attestation.
|
|
42
|
-
|
|
43
|
-
## Agent orchestration and offline packing (#1368)
|
|
44
|
-
|
|
45
|
-
Cloud MCP remains protocol 4 and owns lifecycle state and permissions. The plugin
|
|
46
|
-
helper no longer mirrors candidate/deploy state or polls Cloud. Its public bundle
|
|
47
|
-
contains safe Git source transport and offline backend/frontend/source packing.
|
|
48
|
-
The agent discovers MCP schemas, records non-secret operation IDs for identical
|
|
49
|
-
retries, and observes server state before publication. Packaging still uses the
|
|
50
|
-
installed Core compiler; this is not a Core runtime/provider adapter change.
|
|
51
|
-
|
|
52
|
-
`pack backend --contract -` validates the project and Cloud pin. `pack frontend`
|
|
53
|
-
requires the backend commit and ready kit candidate, and emits immutable hashes.
|
|
54
|
-
The agent checks these against reservations and uses native HTTP grant transport.
|
|
55
|
-
Cloud admission and plan/archive verification remain unchanged; handler/static
|
|
56
|
-
bundles remain client-built. The source transport also rejects secret-named files
|
|
57
|
-
in reachable history, without claiming to scan source content for credentials.
|
|
58
|
-
|
|
59
|
-
## Protocol 5: mandatory structural website acceptance
|
|
60
|
-
|
|
61
|
-
A shared artifact validator runs in offline frontend packing and host admission,
|
|
62
|
-
and the host repeats it before new publication. The uploader cannot disable it
|
|
63
|
-
with an artifact flag or a self-reported checklist. A permanent canonical origin
|
|
64
|
-
is bound to the immutable static upload receipt and checked against the selected
|
|
65
|
-
site at reservation. Current rule/version and frontend hash bind the report;
|
|
66
|
-
changing a candidate or bytes requires fresh evidence. Existing stored releases
|
|
67
|
-
remain readable and rollback preserves their historical bytes.
|
|
68
|
-
|
|
69
|
-
The plugin packer requires `--origin` and emits structured missing-check
|
|
70
|
-
diagnostics. The upload MCP contract requires `canonicalOrigin`. This changes
|
|
71
|
-
validation meaning and therefore increments the host protocol, not the Manifest
|
|
72
|
-
grammar or Core runtime. The validator checks built HTML AST structure and
|
|
73
|
-
metadata, deterministic sitemap/robots and SPA routing configuration without
|
|
74
|
-
executing untrusted code or launching a browser. The host provides Admin, OTP
|
|
75
|
-
and media wiring; artifact validation does not certify delivery, uploads,
|
|
76
|
-
arbitrary authorization, visual behavior, content truth or dynamic HTML refresh.
|
|
77
|
-
A REST-only host must report dynamic-content SEO unsupported.
|
|
78
|
-
|
|
79
|
-
## Local preparation and additive continuation (#1381)
|
|
80
|
-
|
|
81
|
-
The existing offline helper may run explicit application check/build argv arrays, pack a clean fixed commit and ordinarily push it in a single `prepare` entry. It returns source-admission arguments and deterministic artifact metadata; no Cloud lifecycle state, HTTP upload, polling or publication is added. Commands cannot silently commit source changes; dirty tracked output fails the existing clean-commit checks. Credentials stay in session memory/stdin. Native host responses may add continuation facts derived from their authoritative resource/lease rows; read-only backend status remains read-only. These additions do not change artifact bytes, admission rules or protocol 5 validation meaning.
|
|
82
|
-
|
|
83
|
-
## Protocol 6: durable publication and read-only handoff (#1385)
|
|
84
|
-
|
|
85
|
-
Publication changes the native MCP sequence: one accepted publication operation
|
|
86
|
-
continues durably in Cloud, including recoverable provider waits, without an
|
|
87
|
-
agent repeatedly advancing deployment steps. The agent observes authoritative
|
|
88
|
-
deployment status until terminal; status reads never start or advance work.
|
|
89
|
-
Interrupted acceptance is recovered through the same immutable operation and
|
|
90
|
-
arguments, not a replacement candidate. Permission revocation and deterministic
|
|
91
|
-
refusals remain terminal until their stated correction; background work does not
|
|
92
|
-
retain a credential or turn a previous authorization into permanent authority.
|
|
93
|
-
|
|
94
|
-
This sequence change requires protocol 6. A client must validate that contract
|
|
95
|
-
before relying on autonomous publication; it cannot merely poll a protocol 5
|
|
96
|
-
host and expect progression. Historical source/release artifacts keep their
|
|
97
|
-
identity and rollback rules. The new sequence does not change Manifest grammar
|
|
98
|
-
or claim server build attestation. Local preparation and builds stay in the
|
|
99
|
-
agent environment; the helper gains no deployment scheduler or build container.
|
|
100
|
-
An accepted operation, ready preview or expired preview is not evidence of a
|
|
101
|
-
serving release or completed cleanup. Terminal state, access policy and literal
|
|
102
|
-
publication URL come from Cloud's authoritative status.
|