@aotter/mantle 0.1.5-alpha.1 → 0.2.0-alpha.10
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 +166 -298
- package/dist/auth/adapter.d.ts +32 -0
- package/dist/auth/adapter.js +288 -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 +155 -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 +63 -0
- package/dist/auth/oauth.js +217 -0
- package/dist/auth/resource-seeds.js +10 -0
- package/dist/auth/routes.d.ts +32 -0
- package/dist/auth/routes.js +226 -0
- package/dist/build/compiler.d.ts +721 -0
- package/dist/build/compiler.js +7029 -0
- package/dist/build/spec/domain/model/ManifestGrammar.d.ts +439 -0
- package/dist/build/spec/domain/model/RuntimePlan.d.ts +168 -0
- package/dist/build/spec/domain/model/SqlIr.d.ts +129 -0
- package/dist/build/spec/domain/model/UserFields.d.ts +21 -0
- package/dist/build/spec/domain/service/PlanFingerprint.d.ts +7 -0
- package/dist/build/spec/kernel/diagnostic.d.ts +108 -0
- 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 +57 -0
- package/dist/domain/describe/chunk-ZVXBGP7Y.js +424 -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 +19 -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 +230 -0
- package/dist/domain/recipes.js +24 -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 +188 -0
- package/dist/infrastructure/cli.js +118 -0
- package/dist/infrastructure/generate.d.ts +12 -0
- package/dist/infrastructure/generate.js +189 -0
- package/dist/infrastructure/generateAuth.d.ts +8 -0
- package/dist/infrastructure/generateAuth.js +74 -0
- package/dist/infrastructure/help.js +60 -0
- package/dist/infrastructure/init.js +54 -0
- package/dist/infrastructure/inputs.js +41 -0
- package/dist/infrastructure/mounts.js +25 -0
- package/dist/infrastructure/wrangler.js +109 -0
- package/dist/kernel/authorization.d.ts +4 -0
- package/dist/kernel/authorization.js +16 -0
- package/dist/kernel/binds.d.ts +60 -0
- package/dist/kernel/binds.js +49 -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 +143 -0
- package/dist/kernel/contracts.js +97 -0
- package/dist/kernel/cron.d.ts +1 -0
- package/dist/kernel/cron.js +58 -0
- package/dist/kernel/dialect/common.d.ts +38 -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/drain.d.ts +5 -0
- package/dist/kernel/drain.js +35 -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 +99 -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/kernel/email.js +38 -0
- package/dist/kernel/host-access.d.ts +10 -0
- package/dist/kernel/host-access.js +65 -0
- package/dist/kernel/host-caller.d.ts +39 -0
- package/dist/kernel/host-caller.js +56 -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 +69 -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 +371 -0
- package/dist/kernel/mcp.d.ts +110 -0
- package/dist/kernel/mcp.js +50 -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/kernel/r2-media.d.ts +42 -0
- package/dist/kernel/r2-media.js +78 -0
- package/dist/kernel/rest-dispatch.js +38 -0
- package/dist/kernel/rest-router.js +64 -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 +44 -0
- package/dist/kernel/search.js +5 -0
- package/dist/kernel/site-types.d.ts +146 -0
- package/dist/kernel/site-types.js +1 -0
- package/dist/kernel/site.d.ts +39 -0
- package/dist/kernel/site.js +32 -0
- package/dist/kernel/store.d.ts +175 -0
- package/dist/kernel/store.js +269 -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 +35 -0
- package/dist/kernel/user-fields.js +81 -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-index.js +40 -0
- package/dist/kernel/web-response.js +8 -0
- package/dist/kernel/web.d.ts +77 -0
- package/dist/kernel/web.js +124 -0
- package/dist/kernel/where.js +27 -0
- package/dist/testing/index.d.ts +1 -0
- package/dist/testing/index.js +1 -0
- package/dist/usecase/adminBindings.js +143 -0
- package/dist/usecase/adminClient.js +87 -0
- package/dist/usecase/adminDescriptors.js +107 -0
- package/dist/usecase/generate.js +166 -0
- package/dist/usecase/handlers.js +21 -0
- package/dist/usecase/mcp-media.js +17 -0
- package/dist/usecase/mcp.js +100 -0
- package/dist/usecase/paging.js +71 -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 +39 -0
- package/dist/usecase/stores.js +64 -0
- package/dist/usecase/tool-version.js +9 -0
- package/dist/usecase/translations.js +78 -0
- package/dist/usecase/ttl.js +20 -0
- package/dist/usecase/validation.js +241 -0
- package/dist/usecase/web.js +23 -0
- package/docs/examples/README.md +39 -18
- package/docs/examples/app-shell/.dev.vars.example +4 -0
- package/docs/examples/app-shell/README.md +121 -0
- package/docs/examples/app-shell/accept.mjs +91 -0
- package/docs/examples/app-shell/gitignore +7 -0
- package/docs/examples/app-shell/package.json +43 -0
- package/docs/examples/app-shell/pnpm-workspace.yaml +8 -0
- package/docs/examples/app-shell/smoke-kit.mjs +168 -0
- package/docs/examples/app-shell/src/auth.ts +58 -0
- package/docs/examples/app-shell/src/handlers.ts +5 -0
- package/docs/examples/app-shell/src/index.ts +4 -0
- package/docs/examples/app-shell/src/routes.ts +14 -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/app-shell/tsconfig.json +26 -0
- package/docs/examples/app-shell/worker-configuration.d.ts +22 -0
- package/docs/examples/app-shell/wrangler.jsonc +62 -0
- package/docs/examples/club-events/README.md +65 -0
- package/docs/examples/club-events/manifests/club-events.yaml +247 -0
- package/docs/examples/club-events/smoke.mjs +127 -0
- package/docs/examples/club-events/src/handlers.ts +25 -0
- package/docs/examples/club-events/src/signup.ts +9 -0
- package/docs/examples/generated-web/README.md +78 -0
- package/docs/examples/generated-web/posts.yaml +38 -0
- package/docs/examples/generated-web/seed.sql +6 -0
- package/docs/examples/generated-web/src/worker.ts +43 -0
- package/docs/examples/generated-web/tsconfig.json +8 -0
- package/docs/examples/generated-web/wrangler.jsonc +8 -0
- package/docs/examples/purchasing/.dev.vars.example +6 -0
- package/docs/examples/purchasing/README.md +99 -0
- package/docs/examples/purchasing/manifests/purchasing.yaml +374 -0
- package/docs/examples/purchasing/seed.sql +4 -0
- package/docs/examples/purchasing/smoke.mjs +191 -0
- package/docs/examples/purchasing/src/admin.tsx +13 -0
- package/docs/examples/purchasing/src/handlers.ts +33 -0
- package/docs/examples/purchasing/src/notify.ts +29 -0
- package/docs/examples/purchasing/src/requests-page.ts +57 -0
- package/docs/examples/purchasing/src/routes.ts +53 -0
- package/docs/examples/purchasing/src/schedule.ts +31 -0
- package/docs/examples/purchasing/src/signup.ts +5 -0
- package/docs/examples/purchasing/src/supplier.ts +32 -0
- package/docs/examples/purchasing/wrangler.jsonc +69 -0
- package/docs/examples/recipes/README.md +60 -0
- package/docs/examples/recipes/manifests/recipes.yaml +75 -0
- package/docs/examples/recipes/smoke.mjs +102 -0
- package/docs/examples/recipes/src/media.ts +13 -0
- package/docs/examples/recipes/src/pages.ts +99 -0
- package/docs/examples/recipes/src/routes.ts +71 -0
- package/docs/examples/recipes/src/site-config.ts +12 -0
- package/docs/examples/recipes/wrangler.jsonc +74 -0
- package/docs/handbook/cloudflare/authentication.md +180 -322
- package/docs/handbook/cloudflare/chatgpt-sites.md +5 -23
- package/docs/handbook/cloudflare/deploy-and-operate.md +55 -77
- package/docs/handbook/cloudflare/media-r2.md +61 -205
- package/docs/handbook/cloudflare/service-entry.md +239 -0
- package/docs/handbook/concepts/authorization.md +10 -107
- package/docs/handbook/concepts/four-atoms.md +9 -168
- package/docs/handbook/concepts/lifecycle-and-locales.md +9 -132
- package/docs/handbook/concepts/mcp-and-agents.md +24 -121
- package/docs/handbook/concepts/procedures-and-triggers.md +5 -217
- package/docs/handbook/concepts/runtime-and-adapters.md +15 -169
- package/docs/handbook/concepts/views.md +10 -185
- package/docs/handbook/examples/hub.md +3 -8
- package/docs/handbook/guides/adapter-guide.md +11 -0
- package/docs/handbook/guides/admin-ui.md +115 -133
- package/docs/handbook/guides/agent-setup.md +64 -74
- package/docs/handbook/guides/agent-workflow-acceptance.md +232 -0
- package/docs/handbook/guides/email.md +86 -0
- package/docs/handbook/guides/local-testing.md +40 -0
- package/docs/handbook/guides/mcp-apps.md +560 -0
- package/docs/handbook/guides/native-admin.md +566 -0
- package/docs/handbook/guides/native-execution.md +133 -0
- package/docs/handbook/guides/oauth.md +219 -0
- package/docs/handbook/guides/postgres-adapters.md +56 -0
- package/docs/handbook/guides/public-pages.md +87 -0
- package/docs/handbook/guides/size-and-startup.md +9 -0
- package/docs/handbook/guides/sql-patterns.md +266 -0
- package/docs/handbook/guides/typed-queries.md +211 -107
- package/docs/handbook/navigation.json +176 -55
- package/docs/handbook/reference/admin-descriptors.md +53 -0
- package/docs/handbook/reference/authorization.md +39 -266
- package/docs/handbook/reference/describe.md +56 -0
- package/docs/handbook/reference/diagnostics.md +19 -186
- package/docs/handbook/reference/features.md +45 -55
- package/docs/handbook/reference/manifest.md +6 -129
- package/docs/handbook/reference/procedure.md +11 -303
- package/docs/handbook/reference/schema.md +64 -240
- package/docs/handbook/reference/site-config.md +5 -218
- package/docs/handbook/reference/sql.md +64 -0
- package/docs/handbook/reference/surface.md +392 -201
- package/docs/handbook/reference/trigger.md +56 -192
- package/docs/handbook/reference/view.md +24 -243
- package/docs/handbook/releases/index.md +244 -77
- package/docs/handbook/start/agents.md +45 -0
- package/docs/handbook/start/overview.md +9 -48
- package/docs/handbook/start/project-and-cli.md +51 -104
- package/docs/handbook/start/quickstart-worker.md +43 -178
- package/docs/skills/develop/SKILL.md +79 -249
- package/docs/skills/integrate/SKILL.md +39 -50
- package/docs/skills/media-gc/SKILL.md +34 -10
- package/docs/skills/provision/SKILL.md +36 -186
- package/docs/skills/update/SKILL.md +23 -38
- package/docs/source/scripts/postgres-adapter.ts +101 -0
- package/docs/upgrade-0.1-to-0.2.md +227 -0
- package/package.json +120 -131
- package/skills/README.md +48 -108
- package/skills/mantle/SKILL.md +76 -0
- package/dist/admin-ui.d.ts +0 -2
- package/dist/admin-ui.d.ts.map +0 -1
- package/dist/admin-ui.js +0 -2
- package/dist/admin-ui.js.map +0 -1
- package/dist/admin.d.ts +0 -2
- package/dist/admin.d.ts.map +0 -1
- package/dist/admin.js +0 -2
- package/dist/admin.js.map +0 -1
- package/dist/auth.d.ts +0 -2
- package/dist/auth.d.ts.map +0 -1
- package/dist/auth.js +0 -2
- package/dist/auth.js.map +0 -1
- package/dist/bun.d.ts +0 -2
- package/dist/bun.d.ts.map +0 -1
- package/dist/bun.js +0 -2
- package/dist/bun.js.map +0 -1
- package/dist/cli/generate-cloudflare.d.ts +0 -7
- package/dist/cli/generate-cloudflare.d.ts.map +0 -1
- package/dist/cli/generate-cloudflare.js +0 -123
- package/dist/cli/generate-cloudflare.js.map +0 -1
- package/dist/cli/generate-project.d.ts +0 -25
- package/dist/cli/generate-project.d.ts.map +0 -1
- package/dist/cli/generate-project.js +0 -282
- package/dist/cli/generate-project.js.map +0 -1
- package/dist/cli/generate-sites.d.ts +0 -8
- package/dist/cli/generate-sites.d.ts.map +0 -1
- package/dist/cli/generate-sites.js +0 -273
- package/dist/cli/generate-sites.js.map +0 -1
- package/dist/cli/generate.d.ts +0 -20
- package/dist/cli/generate.d.ts.map +0 -1
- package/dist/cli/generate.js +0 -299
- package/dist/cli/generate.js.map +0 -1
- package/dist/cli/harness.d.ts +0 -3
- package/dist/cli/harness.d.ts.map +0 -1
- package/dist/cli/harness.js +0 -214
- package/dist/cli/harness.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 -77
- package/dist/cli/main.js.map +0 -1
- package/dist/cli/skills.d.ts +0 -3
- package/dist/cli/skills.d.ts.map +0 -1
- package/dist/cli/skills.js +0 -128
- package/dist/cli/skills.js.map +0 -1
- package/dist/cloudflare.d.ts +0 -2
- package/dist/cloudflare.d.ts.map +0 -1
- package/dist/cloudflare.js +0 -2
- package/dist/cloudflare.js.map +0 -1
- package/dist/codegen/emitMantleModule.d.ts +0 -22
- package/dist/codegen/emitMantleModule.d.ts.map +0 -1
- package/dist/codegen/emitMantleModule.js +0 -291
- package/dist/codegen/emitMantleModule.js.map +0 -1
- package/dist/codegen.d.ts +0 -2
- package/dist/codegen.d.ts.map +0 -1
- package/dist/codegen.js +0 -2
- package/dist/codegen.js.map +0 -1
- package/dist/runtime-testing.d.ts +0 -2
- package/dist/runtime-testing.d.ts.map +0 -1
- package/dist/runtime-testing.js +0 -2
- package/dist/runtime-testing.js.map +0 -1
- package/dist/runtime.d.ts +0 -2
- package/dist/runtime.d.ts.map +0 -1
- package/dist/runtime.js +0 -2
- package/dist/runtime.js.map +0 -1
- package/dist/spec.d.ts +0 -2
- package/dist/spec.d.ts.map +0 -1
- package/dist/spec.js +0 -2
- package/dist/spec.js.map +0 -1
- package/dist/vercel-libsql.d.ts +0 -2
- package/dist/vercel-libsql.d.ts.map +0 -1
- package/dist/vercel-libsql.js +0 -2
- package/dist/vercel-libsql.js.map +0 -1
- package/dist/vercel.d.ts +0 -2
- package/dist/vercel.d.ts.map +0 -1
- package/dist/vercel.js +0 -2
- package/dist/vercel.js.map +0 -1
- package/dist/web.d.ts +0 -2
- package/dist/web.d.ts.map +0 -1
- package/dist/web.js +0 -2
- package/dist/web.js.map +0 -1
- package/docs/adapter-guide.md +0 -222
- 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 -900
- 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 -240
- 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/README.md +0 -81
- 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 -42
- package/docs/adr/adr-lite-909-admin-ui-kit.md +0 -37
- package/docs/agent-prompts.md +0 -64
- package/docs/api-mcp-authorization.md +0 -5
- package/docs/assets/mantle-admin-developer.png +0 -0
- package/docs/assets/mantle-admin-operations.png +0 -0
- package/docs/assets/mantle-hero.jpg +0 -0
- package/docs/auth-hosting-model.md +0 -166
- package/docs/cloudflare-low-level-composition.md +0 -5
- package/docs/consumer-onboarding-audit.md +0 -65
- package/docs/deferred-lifecycle-queues.md +0 -5
- package/docs/design-atoms.md +0 -16
- package/docs/design-references/editorial-blog-2026-05-05.md +0 -218
- package/docs/direct-authoring.md +0 -5
- package/docs/examples/builtin-commerce.md +0 -269
- package/docs/examples/builtin-intake.md +0 -143
- package/docs/examples/builtin-legal-documents.md +0 -189
- package/docs/examples/builtin-procurement.md +0 -241
- package/docs/examples/builtin-publication.md +0 -241
- package/docs/examples/builtin-reservation.md +0 -149
- package/docs/examples/cf-primitives-commerce-inventory.md +0 -809
- package/docs/examples/cf-primitives-guarded-api.md +0 -429
- package/docs/examples/cf-primitives-intake-hooks.md +0 -319
- package/docs/examples/host-chatgpt-sites/.openai/hosting.json +0 -1
- package/docs/examples/host-chatgpt-sites/README.md +0 -70
- package/docs/examples/host-chatgpt-sites/drizzle/0000_sites_users.sql +0 -8
- package/docs/examples/host-chatgpt-sites/drizzle/0001_mantle.sql +0 -294
- package/docs/examples/host-chatgpt-sites/drizzle/0002_article_cover.sql +0 -5
- package/docs/examples/host-chatgpt-sites/drizzle/0003_store_instance_id.sql +0 -1
- package/docs/examples/host-chatgpt-sites/drizzle/0004_mantle.sql +0 -10
- package/docs/examples/host-chatgpt-sites/drizzle/0005_mantle.sql +0 -24
- package/docs/examples/host-chatgpt-sites/drizzle/meta/_journal.json +0 -1
- package/docs/examples/host-chatgpt-sites/drizzle/meta/mantle-state.json +0 -60
- package/docs/examples/host-chatgpt-sites/manifests/site.yaml +0 -27
- package/docs/examples/host-chatgpt-sites/package.json +0 -1
- package/docs/examples/host-chatgpt-sites/public/site.css +0 -1
- package/docs/examples/host-chatgpt-sites/scripts/build.mjs +0 -13
- package/docs/examples/host-chatgpt-sites/scripts/check.mjs +0 -101
- package/docs/examples/host-chatgpt-sites/scripts/migration.mjs +0 -43
- package/docs/examples/host-chatgpt-sites/src/chatgpt-auth.ts +0 -66
- package/docs/examples/host-chatgpt-sites/src/index.ts +0 -46
- package/docs/examples/host-chatgpt-sites/src/mcp.ts +0 -49
- package/docs/examples/host-chatgpt-sites/src/media.ts +0 -109
- package/docs/examples/host-chatgpt-sites/src/r2-lab.ts +0 -38
- package/docs/examples/host-chatgpt-sites/src/storage-fingerprint.json +0 -1
- package/docs/examples/host-chatgpt-sites/src/web.ts +0 -35
- package/docs/examples/host-chatgpt-sites/tsconfig.json +0 -1
- package/docs/examples/host-chatgpt-sites/wrangler.jsonc +0 -10
- package/docs/examples/host-local-admin-otp/.dev.vars.example +0 -3
- package/docs/examples/host-local-admin-otp/README.md +0 -80
- package/docs/examples/host-local-admin-otp/ensure-dev-vars.mjs +0 -5
- package/docs/examples/host-local-admin-otp/manifests/site.yaml +0 -25
- package/docs/examples/host-local-admin-otp/package.json +0 -29
- package/docs/examples/host-local-admin-otp/public/.gitkeep +0 -1
- package/docs/examples/host-local-admin-otp/smoke.mjs +0 -141
- package/docs/examples/host-local-admin-otp/src/index.ts +0 -54
- package/docs/examples/host-local-admin-otp/tsconfig.json +0 -17
- package/docs/examples/host-local-admin-otp/wrangler.jsonc +0 -23
- package/docs/examples/host-minimal-worker/README.md +0 -41
- package/docs/examples/host-minimal-worker/manifests/site.yaml +0 -25
- package/docs/examples/host-minimal-worker/package.json +0 -26
- package/docs/examples/host-minimal-worker/smoke.mjs +0 -23
- package/docs/examples/host-minimal-worker/src/index.ts +0 -4
- package/docs/examples/host-minimal-worker/tsconfig.json +0 -17
- package/docs/examples/host-minimal-worker/wrangler.jsonc +0 -22
- package/docs/handbook/chatgpt-sites/equipment-checkout.md +0 -231
- package/docs/handbook/chatgpt-sites/generated-app.md +0 -84
- package/docs/handbook/chatgpt-sites/host-reference.md +0 -113
- package/docs/handbook/chatgpt-sites/index.md +0 -133
- package/docs/handbook/cloudflare/bindings.md +0 -291
- package/docs/handbook/cloudflare/conventional-worker.md +0 -166
- package/docs/handbook/cloudflare/deferred-hooks-queues.md +0 -170
- package/docs/handbook/cloudflare/low-level-composition.md +0 -169
- package/docs/handbook/cloudflare/public-web.md +0 -144
- package/docs/handbook/cloudflare/site-chrome.md +0 -75
- package/docs/handbook/examples/commerce-transaction.md +0 -11
- package/docs/handbook/examples/commerce.md +0 -11
- package/docs/handbook/examples/guarded-api.md +0 -10
- package/docs/handbook/examples/intake-form.md +0 -12
- package/docs/handbook/examples/intake-hooks.md +0 -11
- package/docs/handbook/examples/legal-documents.md +0 -10
- package/docs/handbook/examples/procurement-approvals.md +0 -10
- package/docs/handbook/examples/publication.md +0 -10
- package/docs/handbook/examples/reservation.md +0 -10
- package/docs/handbook/start/quickstart-admin.md +0 -52
- package/docs/labels.md +0 -71
- package/docs/media-uploads.md +0 -5
- package/docs/migration-0.1.2.md +0 -13
- package/docs/performance-harness.md +0 -228
- package/docs/release-process.md +0 -244
- package/docs/schema-indexes.md +0 -5
- package/docs/sealed-pipeline-ownership.md +0 -101
- package/docs/skills/plugin/SKILL.md +0 -132
- package/docs/skills/theme/SKILL.md +0 -77
- package/docs/spec-only-host-adoption.md +0 -157
- package/docs/transaction-patterns.md +0 -5
- package/skills/develop/SKILL.md +0 -258
- package/skills/install/SKILL.md +0 -112
- package/skills/integrate/SKILL.md +0 -60
- package/skills/media-gc/SKILL.md +0 -85
- package/skills/plugin/SKILL.md +0 -132
- package/skills/provision/SKILL.md +0 -194
- package/skills/theme/SKILL.md +0 -77
- package/skills/update/SKILL.md +0 -51
- package/templates/chatgpt-sites/auth.ts +0 -66
- package/templates/chatgpt-sites/build.mjs +0 -14
- package/templates/chatgpt-sites/env.ts +0 -1
- package/templates/chatgpt-sites/mcp.ts +0 -48
- package/templates/chatgpt-sites/public-mcp.ts +0 -29
- package/templates/chatgpt-sites/smoke-local.mjs +0 -20
package/package.json
CHANGED
|
@@ -1,165 +1,154 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aotter/mantle",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Embeddable Mantle Core umbrella with Spec and Runtime; Web, Admin, Auth, Bun, Vercel, Cloudflare, and Admin UI are optional peer packages.",
|
|
5
|
-
"license": "Apache-2.0",
|
|
6
|
-
"homepage": "https://mantle.tools/",
|
|
7
|
-
"repository": {
|
|
8
|
-
"type": "git",
|
|
9
|
-
"url": "git+https://github.com/aotter/mantle.git",
|
|
10
|
-
"directory": "packages/mantle"
|
|
11
|
-
},
|
|
3
|
+
"version": "0.2.0-alpha.10",
|
|
12
4
|
"type": "module",
|
|
13
5
|
"sideEffects": false,
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
"bin": {
|
|
17
|
-
"mantle": "./dist/cli/main.js",
|
|
18
|
-
"mantle-harness": "./dist/cli/harness.js"
|
|
19
|
-
},
|
|
20
|
-
"publishConfig": {
|
|
21
|
-
"access": "public",
|
|
22
|
-
"tag": "alpha",
|
|
23
|
-
"registry": "https://registry.npmjs.org"
|
|
24
|
-
},
|
|
25
|
-
"exports": {
|
|
26
|
-
".": {
|
|
27
|
-
"types": "./dist/spec.d.ts",
|
|
28
|
-
"import": "./dist/spec.js"
|
|
29
|
-
},
|
|
30
|
-
"./spec": {
|
|
31
|
-
"types": "./dist/spec.d.ts",
|
|
32
|
-
"import": "./dist/spec.js"
|
|
33
|
-
},
|
|
34
|
-
"./runtime": {
|
|
35
|
-
"types": "./dist/runtime.d.ts",
|
|
36
|
-
"import": "./dist/runtime.js"
|
|
37
|
-
},
|
|
38
|
-
"./runtime/testing": {
|
|
39
|
-
"types": "./dist/runtime-testing.d.ts",
|
|
40
|
-
"import": "./dist/runtime-testing.js"
|
|
41
|
-
},
|
|
42
|
-
"./codegen": {
|
|
43
|
-
"types": "./dist/codegen.d.ts",
|
|
44
|
-
"import": "./dist/codegen.js"
|
|
45
|
-
},
|
|
46
|
-
"./web": {
|
|
47
|
-
"types": "./dist/web.d.ts",
|
|
48
|
-
"import": "./dist/web.js"
|
|
49
|
-
},
|
|
50
|
-
"./admin": {
|
|
51
|
-
"types": "./dist/admin.d.ts",
|
|
52
|
-
"import": "./dist/admin.js"
|
|
53
|
-
},
|
|
54
|
-
"./auth": {
|
|
55
|
-
"types": "./dist/auth.d.ts",
|
|
56
|
-
"import": "./dist/auth.js"
|
|
57
|
-
},
|
|
58
|
-
"./bun": {
|
|
59
|
-
"types": "./dist/bun.d.ts",
|
|
60
|
-
"import": "./dist/bun.js"
|
|
61
|
-
},
|
|
62
|
-
"./vercel": {
|
|
63
|
-
"types": "./dist/vercel.d.ts",
|
|
64
|
-
"import": "./dist/vercel.js"
|
|
65
|
-
},
|
|
66
|
-
"./vercel/libsql": {
|
|
67
|
-
"types": "./dist/vercel-libsql.d.ts",
|
|
68
|
-
"import": "./dist/vercel-libsql.js"
|
|
69
|
-
},
|
|
70
|
-
"./cloudflare": {
|
|
71
|
-
"types": "./dist/cloudflare.d.ts",
|
|
72
|
-
"import": "./dist/cloudflare.js"
|
|
73
|
-
},
|
|
74
|
-
"./admin-ui": {
|
|
75
|
-
"types": "./dist/admin-ui.d.ts",
|
|
76
|
-
"import": "./dist/admin-ui.js"
|
|
77
|
-
}
|
|
6
|
+
"engines": {
|
|
7
|
+
"node": ">=22.22.0"
|
|
78
8
|
},
|
|
79
9
|
"files": [
|
|
80
10
|
"dist",
|
|
81
11
|
"docs",
|
|
82
12
|
"skills",
|
|
83
|
-
"templates",
|
|
84
13
|
"README.md"
|
|
85
14
|
],
|
|
15
|
+
"bin": {
|
|
16
|
+
"mantle": "./dist/infrastructure/cli.js"
|
|
17
|
+
},
|
|
86
18
|
"dependencies": {
|
|
87
|
-
"
|
|
88
|
-
"
|
|
19
|
+
"esbuild": "0.28.1",
|
|
20
|
+
"jsonc-parser": "3.3.1",
|
|
21
|
+
"@pgsql/types": "18.0.0",
|
|
22
|
+
"libpg-query": "18.1.5",
|
|
23
|
+
"pgsql-deparser": "18.3.8",
|
|
24
|
+
"yaml": "^2.9.1",
|
|
25
|
+
"zod": "^4.6.5"
|
|
26
|
+
},
|
|
27
|
+
"exports": {
|
|
28
|
+
".": "./dist/infrastructure/generate.js",
|
|
29
|
+
"./generate": "./dist/infrastructure/generate.js",
|
|
30
|
+
"./contracts": "./dist/kernel/contracts.js",
|
|
31
|
+
"./authorization": "./dist/kernel/authorization.js",
|
|
32
|
+
"./translations": "./dist/kernel/translations.js",
|
|
33
|
+
"./driver/transaction-context": "./dist/kernel/driver/transaction-context.js",
|
|
34
|
+
"./scalars": "./dist/kernel/scalars.js",
|
|
35
|
+
"./binds": "./dist/kernel/binds.js",
|
|
36
|
+
"./testing": "./dist/testing/index.js",
|
|
37
|
+
"./host-access": "./dist/kernel/host-access.js",
|
|
38
|
+
"./host-caller": "./dist/kernel/host-caller.js",
|
|
39
|
+
"./user-fields": "./dist/kernel/user-fields.js",
|
|
40
|
+
"./sweep": "./dist/kernel/sweep.js",
|
|
41
|
+
"./cron": "./dist/kernel/cron.js",
|
|
42
|
+
"./store": "./dist/kernel/store.js",
|
|
43
|
+
"./dialect/sqlite": "./dist/kernel/dialect/sqlite.js",
|
|
44
|
+
"./dialect/postgres": "./dist/kernel/dialect/postgres.js",
|
|
45
|
+
"./driver/bun-sqlite": "./dist/kernel/driver/bun-sqlite.js",
|
|
46
|
+
"./driver/d1": "./dist/kernel/driver/d1.js",
|
|
47
|
+
"./driver/postgres": "./dist/kernel/driver/postgres.js",
|
|
48
|
+
"./email": "./dist/kernel/email.js",
|
|
49
|
+
"./paging": "./dist/kernel/paging.js",
|
|
50
|
+
"./publishing": "./dist/kernel/publishing.js",
|
|
51
|
+
"./rest": "./dist/kernel/rest.js",
|
|
52
|
+
"./mcp": "./dist/kernel/mcp.js",
|
|
53
|
+
"./mcp-apps": "./dist/kernel/mcp-apps.js",
|
|
54
|
+
"./web": "./dist/kernel/web.js",
|
|
55
|
+
"./validation": "./dist/kernel/validation.js",
|
|
56
|
+
"./site": "./dist/kernel/site.js",
|
|
57
|
+
"./media": "./dist/kernel/media.js",
|
|
58
|
+
"./media/r2": "./dist/kernel/r2-media.js",
|
|
59
|
+
"./auth": "./dist/auth/caller.js",
|
|
60
|
+
"./auth/adapter": "./dist/auth/adapter.js",
|
|
61
|
+
"./auth/oauth": "./dist/auth/oauth.js",
|
|
62
|
+
"./auth/routes": "./dist/auth/routes.js",
|
|
63
|
+
"./auth/identity": "./dist/auth/identity.js",
|
|
64
|
+
"./auth/hardening": "./dist/auth/hardening.js",
|
|
65
|
+
"./auth/admin": "./dist/auth/admin.js",
|
|
66
|
+
"./bun/assets": "./dist/bun/assets.js",
|
|
67
|
+
"./surface": "./dist/kernel/surface.js",
|
|
68
|
+
"./json-body": "./dist/kernel/json-body.js",
|
|
69
|
+
"./generate/auth": "./dist/infrastructure/generateAuth.js",
|
|
70
|
+
"./package.json": "./package.json",
|
|
71
|
+
"./describe": "./dist/domain/describe/index.js",
|
|
72
|
+
"./target-hash": "./dist/domain/describe/target-hash.js"
|
|
89
73
|
},
|
|
90
74
|
"peerDependencies": {
|
|
91
|
-
"
|
|
92
|
-
"better-auth": "1.7.
|
|
93
|
-
"
|
|
94
|
-
"
|
|
95
|
-
"zod": "^4.5.0",
|
|
96
|
-
"@aotter/mantle-admin": "0.1.5-alpha.1",
|
|
97
|
-
"@aotter/mantle-admin-ui": "0.1.5-alpha.1",
|
|
98
|
-
"@aotter/mantle-auth": "0.1.5-alpha.1",
|
|
99
|
-
"@aotter/mantle-bun": "0.1.5-alpha.1",
|
|
100
|
-
"@aotter/mantle-cloudflare": "0.1.5-alpha.1",
|
|
101
|
-
"@aotter/mantle-vercel": "0.1.5-alpha.1",
|
|
102
|
-
"@aotter/mantle-web": "0.1.5-alpha.1"
|
|
75
|
+
"@modelcontextprotocol/server": "2.2.0",
|
|
76
|
+
"@better-auth/core": "1.7.7",
|
|
77
|
+
"@better-auth/oauth-provider": "1.7.7",
|
|
78
|
+
"better-auth": "1.7.7"
|
|
103
79
|
},
|
|
104
80
|
"peerDependenciesMeta": {
|
|
105
|
-
"@
|
|
106
|
-
"optional": true
|
|
107
|
-
},
|
|
108
|
-
"@aotter/mantle-admin-ui": {
|
|
109
|
-
"optional": true
|
|
110
|
-
},
|
|
111
|
-
"@aotter/mantle-auth": {
|
|
112
|
-
"optional": true
|
|
113
|
-
},
|
|
114
|
-
"@aotter/mantle-bun": {
|
|
81
|
+
"@modelcontextprotocol/server": {
|
|
115
82
|
"optional": true
|
|
116
83
|
},
|
|
117
|
-
"@
|
|
84
|
+
"@better-auth/core": {
|
|
118
85
|
"optional": true
|
|
119
86
|
},
|
|
120
|
-
"@
|
|
121
|
-
"optional": true
|
|
122
|
-
},
|
|
123
|
-
"@aotter/mantle-web": {
|
|
124
|
-
"optional": true
|
|
125
|
-
},
|
|
126
|
-
"aws4fetch": {
|
|
87
|
+
"@better-auth/oauth-provider": {
|
|
127
88
|
"optional": true
|
|
128
89
|
},
|
|
129
90
|
"better-auth": {
|
|
130
91
|
"optional": true
|
|
131
|
-
},
|
|
132
|
-
"hono": {
|
|
133
|
-
"optional": true
|
|
134
|
-
},
|
|
135
|
-
"@libsql/client": {
|
|
136
|
-
"optional": true
|
|
137
92
|
}
|
|
138
93
|
},
|
|
139
94
|
"devDependencies": {
|
|
95
|
+
"@modelcontextprotocol/client": "2.2.0",
|
|
96
|
+
"@modelcontextprotocol/server": "2.2.0",
|
|
97
|
+
"@better-auth/core": "1.7.7",
|
|
98
|
+
"@better-auth/oauth-provider": "1.7.7",
|
|
99
|
+
"@better-auth/test-utils": "1.7.7",
|
|
100
|
+
"@cloudflare/workers-types": "^5.20261008.1",
|
|
140
101
|
"@types/node": "^26",
|
|
141
|
-
"
|
|
142
|
-
"
|
|
143
|
-
"
|
|
144
|
-
"@libsql/client": "^0.17.4",
|
|
102
|
+
"better-auth": "1.7.7",
|
|
103
|
+
"bun-types": "1.4.2",
|
|
104
|
+
"postgres": "3.4.9",
|
|
145
105
|
"typescript": "^6.0.3",
|
|
146
|
-
"
|
|
147
|
-
"
|
|
148
|
-
"@aotter/mantle-admin": "0.1.5-alpha.1",
|
|
149
|
-
"@aotter/mantle-admin-ui": "0.1.5-alpha.1",
|
|
150
|
-
"@aotter/mantle-auth": "0.1.5-alpha.1",
|
|
151
|
-
"@aotter/mantle-bun": "0.1.5-alpha.1",
|
|
152
|
-
"@aotter/mantle-cloudflare": "0.1.5-alpha.1",
|
|
153
|
-
"@aotter/mantle-vercel": "0.1.5-alpha.1",
|
|
154
|
-
"@aotter/mantle-web": "0.1.5-alpha.1"
|
|
106
|
+
"wrangler": "4.145.0",
|
|
107
|
+
"vitest": "^5.0.1"
|
|
155
108
|
},
|
|
156
|
-
"
|
|
157
|
-
|
|
109
|
+
"description": "Agent-native app SDK and backend compiler: YAML manifests to native SQL (SQLite, Cloudflare D1, PostgreSQL) and typed TypeScript; optional REST and MCP.",
|
|
110
|
+
"keywords": [
|
|
111
|
+
"mantle",
|
|
112
|
+
"agent-native",
|
|
113
|
+
"sdk",
|
|
114
|
+
"backend",
|
|
115
|
+
"yaml",
|
|
116
|
+
"code-generation",
|
|
117
|
+
"sql",
|
|
118
|
+
"sqlite",
|
|
119
|
+
"postgresql",
|
|
120
|
+
"cloudflare-d1",
|
|
121
|
+
"cloudflare-workers",
|
|
122
|
+
"bun",
|
|
123
|
+
"typescript",
|
|
124
|
+
"mcp",
|
|
125
|
+
"model-context-protocol"
|
|
126
|
+
],
|
|
127
|
+
"license": "Apache-2.0",
|
|
128
|
+
"homepage": "https://mantle.tools/",
|
|
129
|
+
"repository": {
|
|
130
|
+
"type": "git",
|
|
131
|
+
"url": "git+https://github.com/aotter/mantle.git",
|
|
132
|
+
"directory": "packages/mantle"
|
|
133
|
+
},
|
|
134
|
+
"bugs": {
|
|
135
|
+
"url": "https://github.com/aotter/mantle/issues"
|
|
136
|
+
},
|
|
137
|
+
"publishConfig": {
|
|
138
|
+
"access": "public",
|
|
139
|
+
"tag": "alpha",
|
|
140
|
+
"registry": "https://registry.npmjs.org"
|
|
158
141
|
},
|
|
159
142
|
"scripts": {
|
|
160
|
-
"
|
|
161
|
-
"
|
|
162
|
-
"
|
|
163
|
-
"
|
|
143
|
+
"build": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.lib.json && node scripts/bundle-compiler.mjs && node scripts/prune-declarations.mjs",
|
|
144
|
+
"typecheck": "tsc --noEmit -p tsconfig.json",
|
|
145
|
+
"test": "bun test tests/*.test.ts && bun run test:compiler",
|
|
146
|
+
"generate": "bun src/infrastructure/cli.ts",
|
|
147
|
+
"test:native": "bun scripts/verify-native.ts",
|
|
148
|
+
"bench": "bun scripts/verify-native.ts --bench",
|
|
149
|
+
"check:size": "bun run build && bun scripts/check-size.ts",
|
|
150
|
+
"check:package": "bun run build && bun scripts/check-package.ts",
|
|
151
|
+
"test:compiler": "tsc --noEmit -p tsconfig.compiler.json && vitest run --config vitest.compiler.config.ts",
|
|
152
|
+
"check:startup": "bun scripts/check-size.ts --startup-only"
|
|
164
153
|
}
|
|
165
154
|
}
|
package/skills/README.md
CHANGED
|
@@ -1,127 +1,67 @@
|
|
|
1
1
|
# SKILL.md briefs (mantle)
|
|
2
2
|
|
|
3
|
-
Agent-readable
|
|
3
|
+
Agent-readable skills for consumers of `@aotter/mantle` 0.2. There are two
|
|
4
|
+
distributions (ADR-0032 decision 13):
|
|
5
|
+
|
|
6
|
+
- **The plugin** ships one OSS authoring skill, [`mantle`](mantle/SKILL.md),
|
|
7
|
+
without a hosted-service MCP connection or transport.
|
|
8
|
+
- **The npm package** ships the workflow skills under `docs/skills/`. An agent
|
|
9
|
+
reads them from `node_modules/@aotter/mantle/docs/skills/`, matched to the
|
|
10
|
+
installed version. Nothing copies them into a project; 0.2 has no
|
|
11
|
+
`mantle skills` command.
|
|
4
12
|
|
|
5
13
|
| Skill | When to invoke |
|
|
6
14
|
|---|---|
|
|
7
|
-
| [`
|
|
8
|
-
| [`
|
|
9
|
-
| [`
|
|
10
|
-
| [`
|
|
11
|
-
| [`
|
|
12
|
-
| [`
|
|
13
|
-
| [`mantle`](install/SKILL.md) | User wants to author a local Mantle application or continue an existing project. |
|
|
14
|
-
| [`provision`](../docs/skills/provision/SKILL.md) | User wants a local project shipped to Cloudflare with production auth and operator handoff. |
|
|
15
|
-
|
|
16
|
-
The skills target Mantle's v0.1 grammar. The installed package version, not
|
|
17
|
-
duplicated skill prose, selects the exact runtime and embedded docs.
|
|
18
|
-
|
|
19
|
-
## Disclosure audit
|
|
20
|
-
|
|
21
|
-
Every skill ships as one `SKILL.md` with no reference files, scripts, or
|
|
22
|
-
assets, so nothing is deferred behind a second load. Progressive disclosure
|
|
23
|
-
here is section routing inside one file: the agent reads the entry constraints,
|
|
24
|
-
then only the section its selected path names. `scripts/check-skills.mjs`
|
|
25
|
-
enforces the columns below.
|
|
26
|
-
|
|
27
|
-
| Skill | Routes on | Entry-path constraints (read before acting) | Path-gated sections | Projection | Restricted because |
|
|
28
|
-
|---|---|---|---|---|---|
|
|
29
|
-
| `develop` | existing project; manifest, runtime, handler, adapter, or MCP work | four-atom model; adapter neutrality; no direct D1/KV/Postgres writes; no committed secrets | performance harness; local MCP client; locale rules | project | — |
|
|
30
|
-
| `integrate` | independently authored application; add Mantle or rebuild with migration | inspect application before strategy; version-matched SDK; protect live data | embed; incrementally replace; rebuild and migrate | package | Existing-project migration is opt-in; a fresh generated app does not need this brief. |
|
|
31
|
-
| `plugin` | user wants an installable capability | plan before apply; lock entry is the removal manifest; delete only plugin-owned files and atoms | apply; remove | project | — |
|
|
32
|
-
| `theme` | brand or visual direction in a project | repo-owned theme and UI contracts | — | project | — |
|
|
33
|
-
| `update` | SDK upgrade or plugin lock review | never blindly overwrite user-owned code | — | project | — |
|
|
34
|
-
| `mantle` | new application, or opening an existing project | do not use the SDK checkout as the application; no push/deploy/provider config during cold start | author local project; continue existing project | plugin | Creates a new project; nothing to project into an existing one. |
|
|
35
|
-
| `provision` | ship to Cloudflare and finish production auth | secrets never enter source or logs; explicit auth mode | hosted auth; self-managed auth | package | Platform-specific deploy that handles production secrets; opt-in only. |
|
|
36
|
-
| `media-gc` | audit or remove stale uncommitted media objects | audit by default; confirm exact account, bucket, cutoff, and candidate digest; re-audit before applying; never prefix-delete; never print keys | apply | package | Destructive remote object deletion and Cloudflare-specific; opt-in only. |
|
|
37
|
-
|
|
38
|
-
Deliberately monolithic:
|
|
39
|
-
|
|
40
|
-
- `develop` is the widest file, but its adapter, auth, and data-ownership rules
|
|
41
|
-
constrain every path through it. Splitting them behind routing would let an
|
|
42
|
-
agent reach a write path without them, which is the failure this audit
|
|
43
|
-
exists to prevent.
|
|
44
|
-
- `media-gc` keeps its full audit-confirm-reapply sequence inline for the same
|
|
45
|
-
reason: each safeguard is a precondition of the delete that follows it.
|
|
46
|
-
|
|
47
|
-
## Skill authority
|
|
48
|
-
|
|
49
|
-
The `mantle:*` namespace is owned by `@aotter/mantle`. Every skill declares its
|
|
50
|
-
own distribution scope in front matter: `metadata.projection: project` marks a
|
|
51
|
-
skill `mantle skills` should place in a consumer project, and a skill that
|
|
52
|
-
withholds `project` must say why. `plugin` is the bootstrap skill and `package`
|
|
53
|
-
is an opt-in brief in the installed SDK. `scripts/check-skills.mjs` holds that
|
|
54
|
-
declaration and the audit table below to each other.
|
|
15
|
+
| [`mantle`](mantle/SKILL.md) | Create or continue a Mantle application and deploy to a user-owned host. |
|
|
16
|
+
| [`develop`](../docs/skills/develop/SKILL.md) | Change manifests, SQL, handlers, the service entry or surfaces of an existing project. |
|
|
17
|
+
| [`integrate`](../docs/skills/integrate/SKILL.md) | Add Mantle to an application that has its own code, users or data, or rebuild one and migrate. |
|
|
18
|
+
| [`update`](../docs/skills/update/SKILL.md) | Upgrade `@aotter/mantle`, including from 0.1.x. |
|
|
19
|
+
| [`provision`](../docs/skills/provision/SKILL.md) | Ship to Cloudflare Workers or ChatGPT Sites with production sign-in. |
|
|
20
|
+
| [`media-gc`](../docs/skills/media-gc/SKILL.md) | Audit or remove stale, uncommitted R2 uploads. |
|
|
55
21
|
|
|
56
|
-
|
|
57
|
-
use `mantle skills --check` to fail closed on drift. The installed package and
|
|
58
|
-
`node_modules/@aotter/mantle/docs/` are the single version-matched authority.
|
|
59
|
-
Application files and plugin recipes are project context, not competing
|
|
60
|
-
contracts.
|
|
22
|
+
## Install
|
|
61
23
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
The other seven skills live in `docs/skills/` and ship with the npm package.
|
|
67
|
-
`mantle skills` projects the four ongoing workflows after package installation.
|
|
68
|
-
|
|
69
|
-
Other marketplace hosts point to the same entry:
|
|
24
|
+
Use the [agent setup guide](../docs/handbook/guides/agent-setup.md) for Codex,
|
|
25
|
+
Claude Code, Cursor and GitHub Copilot. Pin the plugin checkout to the same
|
|
26
|
+
release tag as the application's SDK; alpha releases on `develop` can be newer
|
|
27
|
+
than the default `main` branch. For a skill-only installation:
|
|
70
28
|
|
|
71
29
|
```sh
|
|
72
|
-
npx skills add aotter/mantle
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
```bash
|
|
76
|
-
# Claude Code — two separate prompts
|
|
77
|
-
/plugin marketplace add aotter/mantle
|
|
78
|
-
/plugin install mantle@mantle
|
|
79
|
-
|
|
80
|
-
# Codex
|
|
81
|
-
codex plugin marketplace add aotter/mantle
|
|
82
|
-
codex plugin add mantle@mantle
|
|
30
|
+
npx skills add https://github.com/aotter/mantle/tree/v0.2.0-alpha.10 --skill mantle
|
|
83
31
|
```
|
|
84
32
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
installed, `mantle skills` projects the installed package's own skills into the
|
|
91
|
-
project, and `mantle skills --check` fails on drift.
|
|
33
|
+
The explicit skill name excludes repository maintainer skills. The manifests
|
|
34
|
+
are generated by `scripts/sync-plugin-manifests.mjs` and checked with `--check`.
|
|
35
|
+
When upgrading, update the marketplace ref or local tagged checkout and refresh
|
|
36
|
+
the plugin. Verify the loaded manifest version; Claude Code's plugin version
|
|
37
|
+
is Core's, so packaged skill changes reach users through the next Core release.
|
|
92
38
|
|
|
93
|
-
|
|
94
|
-
These manifests are not duplicated into the npm package:
|
|
39
|
+
## Disclosure audit
|
|
95
40
|
|
|
96
|
-
|
|
97
|
-
-
|
|
98
|
-
|
|
99
|
-
|
|
41
|
+
Every skill is one `SKILL.md`; the plugin skill carries local acceptance references.
|
|
42
|
+
`scripts/check-skills.mjs` holds this table, the front matter and the links to
|
|
43
|
+
each other: `metadata.projection` is `plugin` for `skills/mantle` and
|
|
44
|
+
`package` for `docs/skills/*`, a reason in the last column must equal
|
|
45
|
+
`metadata.projectionReason`, and a relative link must stay inside what ships
|
|
46
|
+
(the skill's own directory for the plugin, `docs/` for the package).
|
|
47
|
+
|
|
48
|
+
| Skill | Routes on | Entry constraints | Distribution | Restricted because |
|
|
49
|
+
|---|---|---|---|---|
|
|
50
|
+
| `mantle` | new project, existing project, self-host deployment | the installed package's docs win; never use the SDK checkout as the application; no deploy during a cold start | plugin | The plugin's authoring entry skill is installed from the repository; workflow documentation comes from the installed SDK package. |
|
|
51
|
+
| `develop` | manifest, SQL, handler, service or surface work | read the installed version first; never edit generated files; writes through Store/Procedures, richer reads through internal Views | package | — |
|
|
52
|
+
| `integrate` | an application with its own code, users or data | inspect before choosing; the application keeps its users; one writer per table | package | — |
|
|
53
|
+
| `update` | an SDK upgrade | never overwrite application files; 0.1.x moves by the upgrade guide to a new database | package | — |
|
|
54
|
+
| `provision` | ship to production | secrets never in source, chat or logs; a new database for 0.2; self-hosting is always an option | package | Creates remote resources and handles production secrets; opt-in only. |
|
|
55
|
+
| `media-gc` | stale R2 uploads | audit by default; exact keys only, never a prefix delete; re-audit before applying | package | Destructive remote object deletion and Cloudflare-specific; opt-in only. |
|
|
100
56
|
|
|
101
57
|
## Audience
|
|
102
58
|
|
|
103
|
-
These are
|
|
104
|
-
|
|
105
|
-
the repo-root `CONTRIBUTING.md`; it is intentionally not shipped inside the npm
|
|
106
|
-
package. Two audiences, two artifacts.
|
|
107
|
-
|
|
108
|
-
## Discoverability
|
|
109
|
-
|
|
110
|
-
The skills target ADR-0007's "AI as primary author" thesis: agents reach these files by URL when the user invokes them by intent ("install mantle", "develop my Mantle site", "deploy"). Official cold start is `npx skills add aotter/mantle`. Point the agent at the repository or pass the version-matched markdown content directly.
|
|
59
|
+
These are for **AI agents acting for consumers of Mantle**, not for
|
|
60
|
+
contributors to the SDK, who read the repository's `CONTRIBUTING.md`.
|
|
111
61
|
|
|
112
62
|
## Conventions
|
|
113
63
|
|
|
114
|
-
Each SKILL.md
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
external `mantle:` namespace.
|
|
119
|
-
- **Preflight** section — environment + user-confirmation gates.
|
|
120
|
-
- **Step-by-step** — concrete commands (`pnpm validate`, `mantle emit-openapi`, etc.).
|
|
121
|
-
- **Diagnostic recipes** — `Symptom → Cause → Fix` table for the common failure modes.
|
|
122
|
-
- **Don't** — reviewer-style list of patterns the agent must reject (often citing ADRs).
|
|
123
|
-
- **When you're done** — what to report back to the user.
|
|
124
|
-
|
|
125
|
-
If you're writing a new SKILL, follow the same structure. Commands and prose
|
|
126
|
-
must match the package version that carries the skill; later prereleases may
|
|
127
|
-
revise both together.
|
|
64
|
+
Each SKILL.md has front matter (`name`, a trigger-complete `description`,
|
|
65
|
+
`metadata.source`, `sourcePath`, `applies_to`, `projection`), the reads to do
|
|
66
|
+
first, concrete commands, the rules an agent must not break, and what to report
|
|
67
|
+
when done. Commands and prose match the package version that carries the skill.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mantle
|
|
3
|
+
description: Create, continue, test or deploy a Mantle application using installed @aotter/mantle docs, including manifests, SQL Views and Procedures, MCP tools, app-built Admin, mantle generate and Mantle upgrades.
|
|
4
|
+
metadata:
|
|
5
|
+
source: "@aotter/mantle"
|
|
6
|
+
sourcePath: skills/mantle/SKILL.md
|
|
7
|
+
applies_to: mantle 0.2
|
|
8
|
+
projection: plugin
|
|
9
|
+
projectionReason: The plugin's authoring entry skill is installed from the repository; workflow documentation comes from the installed SDK package.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Mantle
|
|
13
|
+
|
|
14
|
+
The Mantle plugin's one skill. It installs no SDK and creates nothing by
|
|
15
|
+
itself. Once a project has `@aotter/mantle`, the installed package is the
|
|
16
|
+
authority: `node_modules/@aotter/mantle/README.md` and
|
|
17
|
+
`node_modules/@aotter/mantle/docs/`. Prefer them over this file, the SDK
|
|
18
|
+
checkout, or any online copy.
|
|
19
|
+
|
|
20
|
+
## Start with `mantle help`
|
|
21
|
+
|
|
22
|
+
Run `mantle help` first (in a project: `npx mantle help`; before one exists:
|
|
23
|
+
`npx @aotter/mantle@<exact version> help`). It prints the installed version's
|
|
24
|
+
entry page and every topic; `mantle help <topic>` prints one page with the next
|
|
25
|
+
and linked topics as commands. Follow it rather than browsing the SDK checkout
|
|
26
|
+
or an online copy.
|
|
27
|
+
|
|
28
|
+
## Find the project and its version
|
|
29
|
+
|
|
30
|
+
Work in the user's application, outside the SDK checkout. Read package.json, the lockfile, installed SDK README and node_modules/@aotter/mantle/docs/. Those files define the exact version's contract. Preserve existing identity, handles, routes and resources.
|
|
31
|
+
For existing older applications, use their installed docs until the user requests an upgrade; if an older version
|
|
32
|
+
lacks a guide named here, record the missing guidance and keep that version's contract.
|
|
33
|
+
|
|
34
|
+
## Choose the installed package skill
|
|
35
|
+
|
|
36
|
+
- Read `node_modules/@aotter/mantle/docs/skills/develop/SKILL.md` to change an existing project's manifests, SQL, handlers, service entry or surfaces.
|
|
37
|
+
- Read `node_modules/@aotter/mantle/docs/skills/integrate/SKILL.md` to add Mantle to an application with existing code, users or data.
|
|
38
|
+
- Read `node_modules/@aotter/mantle/docs/skills/update/SKILL.md` to upgrade Mantle, including from 0.1.x.
|
|
39
|
+
- Read `node_modules/@aotter/mantle/docs/skills/provision/SKILL.md` only for an authorized production deployment.
|
|
40
|
+
- Read `node_modules/@aotter/mantle/docs/skills/media-gc/SKILL.md` only to audit or remove stale uncommitted media uploads.
|
|
41
|
+
|
|
42
|
+
## New application
|
|
43
|
+
|
|
44
|
+
Node must be 22.22 or newer. Create it with `npx @aotter/mantle@<exact version> init <directory>`, then follow
|
|
45
|
+
`mantle help` ("Build from a product brief") and the app's `README.md`. Without the user listing them, a complete app
|
|
46
|
+
includes:
|
|
47
|
+
|
|
48
|
+
- Email OTP sign-in, the two roles `admin` and `user`, Admin for `admin`, MCP for both roles (`/mcp`, `/mcp/admin`)
|
|
49
|
+
and REST: the shell already wires them; keep them.
|
|
50
|
+
- Real business rules in SQL Procedures (`mantle help sql-patterns`), not in handler code around separate writes.
|
|
51
|
+
- For visitor pages, everything in `mantle help public-pages` (SEO, AEO, sitemap, robots, `llms.txt`), styled.
|
|
52
|
+
- Local HTTP checks (`mantle help local-testing`), then independent acceptance with `pnpm accept`
|
|
53
|
+
(`mantle help agent-workflow-acceptance`).
|
|
54
|
+
|
|
55
|
+
Take patterns from `mantle help examples` into the app's own manifests and `src/`; do not copy an example directory
|
|
56
|
+
over the app. Resolve each `AGENT:` or name the ones you left. Generation only, inside an app you already have: skip
|
|
57
|
+
`init` and use `mantle generate` (`mantle help project-and-cli`).
|
|
58
|
+
|
|
59
|
+
## Accept before reporting done
|
|
60
|
+
|
|
61
|
+
Before reporting any new app or feature as done, follow `mantle help agent-workflow-acceptance`: a private rubric,
|
|
62
|
+
then one fresh agent per role given only its role and the URLs `pnpm accept` prints, at most three rounds. If it was
|
|
63
|
+
not run, report the work as UNVERIFIED rather than done; if it could not run, BLOCKED.
|
|
64
|
+
|
|
65
|
+
## Deployment
|
|
66
|
+
|
|
67
|
+
Deploy only when the user requests it, following the installed `docs/skills/provision/SKILL.md` and the selected
|
|
68
|
+
host's native workflow. Local project creation alone is not deployment authorization.
|
|
69
|
+
|
|
70
|
+
## Existing project and handoff
|
|
71
|
+
|
|
72
|
+
Preserve the user's manifests, `src/` files, identity, package versions and provider resources. Run the project's
|
|
73
|
+
generate command with `--check` and its own tests before and after a change.
|
|
74
|
+
|
|
75
|
+
Report the project path, the exact Mantle version, what you changed, the checks you ran with their results, the
|
|
76
|
+
independent acceptance verdict (CONVERGED / BLOCKED / UNVERIFIED), and anything left for the user.
|
package/dist/admin-ui.d.ts
DELETED
package/dist/admin-ui.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admin-ui.d.ts","sourceRoot":"","sources":["../src/admin-ui.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
|
package/dist/admin-ui.js
DELETED
package/dist/admin-ui.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admin-ui.js","sourceRoot":"","sources":["../src/admin-ui.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
|
package/dist/admin.d.ts
DELETED
package/dist/admin.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../src/admin.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
|
package/dist/admin.js
DELETED
package/dist/admin.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../src/admin.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
|
package/dist/auth.d.ts
DELETED
package/dist/auth.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
|
package/dist/auth.js
DELETED
package/dist/auth.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
|
package/dist/bun.d.ts
DELETED
package/dist/bun.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bun.d.ts","sourceRoot":"","sources":["../src/bun.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
|
package/dist/bun.js
DELETED
package/dist/bun.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bun.js","sourceRoot":"","sources":["../src/bun.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { type ProjectSelection } from "./generate-project.js";
|
|
2
|
-
/** Prepare all paths before the caller commits any project files. */
|
|
3
|
-
export declare function prepareCloudflare(root: string, output: string, selection: ProjectSelection, fresh: boolean): Promise<{
|
|
4
|
-
readonly stale: boolean;
|
|
5
|
-
readonly commit: () => Promise<void>;
|
|
6
|
-
}>;
|
|
7
|
-
//# sourceMappingURL=generate-cloudflare.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generate-cloudflare.d.ts","sourceRoot":"","sources":["../../src/cli/generate-cloudflare.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuB,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAInF,qEAAqE;AACrE,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;IAC1H,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC,CAAC,CAuFD"}
|