@aotter/mantle 0.1.5-alpha.1 → 0.2.0-alpha.2
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 +39 -306
- package/dist/admin/consent.d.ts +17 -0
- package/dist/admin/consent.d.ts.map +1 -0
- package/dist/admin/consent.js +17 -0
- package/dist/admin/consent.js.map +1 -0
- package/dist/admin/createAdminSurface.d.ts +22 -0
- package/dist/admin/createAdminSurface.d.ts.map +1 -0
- package/dist/admin/createAdminSurface.js +592 -0
- package/dist/admin/createAdminSurface.js.map +1 -0
- package/dist/admin/developerConsole.d.ts +266 -0
- package/dist/admin/developerConsole.d.ts.map +1 -0
- package/dist/admin/developerConsole.js +136 -0
- package/dist/admin/developerConsole.js.map +1 -0
- package/dist/admin/identity.d.ts +62 -0
- package/dist/admin/identity.d.ts.map +1 -0
- package/dist/admin/identity.js +7 -0
- package/dist/admin/identity.js.map +1 -0
- package/dist/admin/index.d.ts +4 -0
- package/dist/admin/index.d.ts.map +1 -0
- package/dist/admin/index.js +4 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/admin/procedureFlow.d.ts +38 -0
- package/dist/admin/procedureFlow.d.ts.map +1 -0
- package/dist/admin/procedureFlow.js +188 -0
- package/dist/admin/procedureFlow.js.map +1 -0
- package/dist/auth/ConsoleEmailSender.d.ts +15 -0
- package/dist/auth/ConsoleEmailSender.d.ts.map +1 -0
- package/dist/auth/ConsoleEmailSender.js +19 -0
- package/dist/auth/ConsoleEmailSender.js.map +1 -0
- package/dist/auth/appleClientSecret.d.ts +75 -0
- package/dist/auth/appleClientSecret.d.ts.map +1 -0
- package/dist/auth/appleClientSecret.js +116 -0
- package/dist/auth/appleClientSecret.js.map +1 -0
- package/dist/auth/buildAuth.d.ts +4565 -0
- package/dist/auth/buildAuth.d.ts.map +1 -0
- package/dist/auth/buildAuth.js +307 -0
- package/dist/auth/buildAuth.js.map +1 -0
- package/dist/auth/callerResolver.d.ts +48 -0
- package/dist/auth/callerResolver.d.ts.map +1 -0
- package/dist/auth/callerResolver.js +49 -0
- package/dist/auth/callerResolver.js.map +1 -0
- package/dist/auth/createAuthRoutes.d.ts +22 -0
- package/dist/auth/createAuthRoutes.d.ts.map +1 -0
- package/dist/auth/createAuthRoutes.js +129 -0
- package/dist/auth/createAuthRoutes.js.map +1 -0
- package/dist/auth/createMantleAuth.d.ts +3 -0
- package/dist/auth/createMantleAuth.d.ts.map +1 -0
- package/dist/auth/createMantleAuth.js +508 -0
- package/dist/auth/createMantleAuth.js.map +1 -0
- package/dist/auth/db.d.ts +17 -0
- package/dist/auth/db.d.ts.map +1 -0
- package/dist/auth/db.js +24 -0
- package/dist/auth/db.js.map +1 -0
- package/dist/auth/emailTemplates.d.ts +7 -0
- package/dist/auth/emailTemplates.d.ts.map +1 -0
- package/dist/auth/emailTemplates.js +27 -0
- package/dist/auth/emailTemplates.js.map +1 -0
- package/dist/auth/index.d.ts +9 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +7 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/methods.d.ts +717 -0
- package/dist/auth/methods.d.ts.map +1 -0
- package/dist/auth/methods.js +321 -0
- package/dist/auth/methods.js.map +1 -0
- package/dist/auth/oauthTokens.d.ts +24 -0
- package/dist/auth/oauthTokens.d.ts.map +1 -0
- package/dist/auth/oauthTokens.js +146 -0
- package/dist/auth/oauthTokens.js.map +1 -0
- package/dist/auth/setupIncomplete.d.ts +16 -0
- package/dist/auth/setupIncomplete.d.ts.map +1 -0
- package/dist/auth/setupIncomplete.js +50 -0
- package/dist/auth/setupIncomplete.js.map +1 -0
- package/dist/auth/types.d.ts +440 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +10 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/bun/index.d.ts +65 -0
- package/dist/bun/index.d.ts.map +1 -0
- package/dist/bun/index.js +130 -0
- package/dist/bun/index.js.map +1 -0
- package/dist/cli/emitModule.d.ts +7 -0
- package/dist/cli/emitModule.d.ts.map +1 -0
- package/dist/cli/emitModule.js +127 -0
- package/dist/cli/emitModule.js.map +1 -0
- package/dist/cli/generate.d.ts +4 -16
- package/dist/cli/generate.d.ts.map +1 -1
- package/dist/cli/generate.js +318 -262
- package/dist/cli/generate.js.map +1 -1
- package/dist/cli/main.d.ts +1 -1
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +15 -71
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/preset.d.ts +18 -0
- package/dist/cli/preset.d.ts.map +1 -0
- package/dist/cli/preset.js +353 -0
- package/dist/cli/preset.js.map +1 -0
- package/dist/cloudflare/index.d.ts +21 -0
- package/dist/cloudflare/index.d.ts.map +1 -0
- package/dist/cloudflare/index.js +14 -0
- package/dist/cloudflare/index.js.map +1 -0
- package/dist/cloudflare/r2Media.d.ts +43 -0
- package/dist/cloudflare/r2Media.d.ts.map +1 -0
- package/dist/cloudflare/r2Media.js +69 -0
- package/dist/cloudflare/r2Media.js.map +1 -0
- package/dist/core/caller.d.ts +35 -0
- package/dist/core/caller.d.ts.map +1 -0
- package/dist/core/caller.js +3 -0
- package/dist/core/caller.js.map +1 -0
- package/dist/core/createMantle.d.ts +22 -0
- package/dist/core/createMantle.d.ts.map +1 -0
- package/dist/core/createMantle.js +117 -0
- package/dist/core/createMantle.js.map +1 -0
- package/dist/core/dialect.d.ts +41 -0
- package/dist/core/dialect.d.ts.map +1 -0
- package/dist/core/dialect.js +7 -0
- package/dist/core/dialect.js.map +1 -0
- package/dist/core/driver.d.ts +17 -0
- package/dist/core/driver.d.ts.map +1 -0
- package/dist/core/driver.js +2 -0
- package/dist/core/driver.js.map +1 -0
- package/dist/core/email.d.ts +17 -0
- package/dist/core/email.d.ts.map +1 -0
- package/dist/core/email.js +2 -0
- package/dist/core/email.js.map +1 -0
- package/dist/core/index.d.ts +16 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +16 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/invocation.d.ts +66 -0
- package/dist/core/invocation.d.ts.map +1 -0
- package/dist/core/invocation.js +3 -0
- package/dist/core/invocation.js.map +1 -0
- package/dist/core/runtime/auth.d.ts +9 -0
- package/dist/core/runtime/auth.d.ts.map +1 -0
- package/dist/core/runtime/auth.js +39 -0
- package/dist/core/runtime/auth.js.map +1 -0
- package/dist/core/runtime/createRuntime.d.ts +23 -0
- package/dist/core/runtime/createRuntime.d.ts.map +1 -0
- package/dist/core/runtime/createRuntime.js +214 -0
- package/dist/core/runtime/createRuntime.js.map +1 -0
- package/dist/core/runtime/verifyPlan.d.ts +34 -0
- package/dist/core/runtime/verifyPlan.d.ts.map +1 -0
- package/dist/core/runtime/verifyPlan.js +301 -0
- package/dist/core/runtime/verifyPlan.js.map +1 -0
- package/dist/core/service.d.ts +45 -0
- package/dist/core/service.d.ts.map +1 -0
- package/dist/core/service.js +2 -0
- package/dist/core/service.js.map +1 -0
- package/dist/core/site.d.ts +117 -0
- package/dist/core/site.d.ts.map +1 -0
- package/dist/core/site.js +2 -0
- package/dist/core/site.js.map +1 -0
- package/dist/core/siteConfig.d.ts +5 -0
- package/dist/core/siteConfig.d.ts.map +1 -0
- package/dist/core/siteConfig.js +24 -0
- package/dist/core/siteConfig.js.map +1 -0
- package/dist/core/sql/allowlist.d.ts +65 -0
- package/dist/core/sql/allowlist.d.ts.map +1 -0
- package/dist/core/sql/allowlist.js +705 -0
- package/dist/core/sql/allowlist.js.map +1 -0
- package/dist/core/sql/ast.d.ts +24 -0
- package/dist/core/sql/ast.d.ts.map +1 -0
- package/dist/core/sql/ast.js +32 -0
- package/dist/core/sql/ast.js.map +1 -0
- package/dist/core/sql/compile.d.ts +50 -0
- package/dist/core/sql/compile.d.ts.map +1 -0
- package/dist/core/sql/compile.js +48 -0
- package/dist/core/sql/compile.js.map +1 -0
- package/dist/core/sql/policy.d.ts +121 -0
- package/dist/core/sql/policy.d.ts.map +1 -0
- package/dist/core/sql/policy.js +379 -0
- package/dist/core/sql/policy.js.map +1 -0
- package/dist/core/sql/positions.d.ts +30 -0
- package/dist/core/sql/positions.d.ts.map +1 -0
- package/dist/core/sql/positions.js +22 -0
- package/dist/core/sql/positions.js.map +1 -0
- package/dist/core/sql/run.d.ts +76 -0
- package/dist/core/sql/run.d.ts.map +1 -0
- package/dist/core/sql/run.js +267 -0
- package/dist/core/sql/run.js.map +1 -0
- package/dist/core/store/createStore.d.ts +49 -0
- package/dist/core/store/createStore.d.ts.map +1 -0
- package/dist/core/store/createStore.js +227 -0
- package/dist/core/store/createStore.js.map +1 -0
- package/dist/core/store/cursor.d.ts +4 -0
- package/dist/core/store/cursor.d.ts.map +1 -0
- package/dist/core/store/cursor.js +22 -0
- package/dist/core/store/cursor.js.map +1 -0
- package/dist/core/store/json.d.ts +80 -0
- package/dist/core/store/json.d.ts.map +1 -0
- package/dist/core/store/json.js +342 -0
- package/dist/core/store/json.js.map +1 -0
- package/dist/core/store.d.ts +160 -0
- package/dist/core/store.d.ts.map +1 -0
- package/dist/core/store.js +2 -0
- package/dist/core/store.js.map +1 -0
- package/dist/core/wire.d.ts +20 -0
- package/dist/core/wire.d.ts.map +1 -0
- package/dist/core/wire.js +84 -0
- package/dist/core/wire.js.map +1 -0
- package/dist/core/withCaller.d.ts +16 -0
- package/dist/core/withCaller.d.ts.map +1 -0
- package/dist/core/withCaller.js +29 -0
- package/dist/core/withCaller.js.map +1 -0
- package/dist/d1/adapter.d.ts +12 -0
- package/dist/d1/adapter.d.ts.map +1 -0
- package/dist/d1/adapter.js +23 -0
- package/dist/d1/adapter.js.map +1 -0
- package/dist/d1/codec.d.ts +14 -0
- package/dist/d1/codec.d.ts.map +1 -0
- package/dist/d1/codec.js +136 -0
- package/dist/d1/codec.js.map +1 -0
- package/dist/d1/compile/index.d.ts +9 -0
- package/dist/d1/compile/index.d.ts.map +1 -0
- package/dist/d1/compile/index.js +9 -0
- package/dist/d1/compile/index.js.map +1 -0
- package/dist/d1/dialect.d.ts +4 -0
- package/dist/d1/dialect.d.ts.map +1 -0
- package/dist/d1/dialect.js +13 -0
- package/dist/d1/dialect.js.map +1 -0
- package/dist/d1/executor.d.ts +13 -0
- package/dist/d1/executor.d.ts.map +1 -0
- package/dist/d1/executor.js +91 -0
- package/dist/d1/executor.js.map +1 -0
- package/dist/d1/index.d.ts +6 -0
- package/dist/d1/index.d.ts.map +1 -0
- package/dist/d1/index.js +6 -0
- package/dist/d1/index.js.map +1 -0
- package/dist/d1/lower.d.ts +8 -0
- package/dist/d1/lower.d.ts.map +1 -0
- package/dist/d1/lower.js +167 -0
- package/dist/d1/lower.js.map +1 -0
- package/dist/d1/media.d.ts +5 -0
- package/dist/d1/media.d.ts.map +1 -0
- package/dist/d1/media.js +157 -0
- package/dist/d1/media.js.map +1 -0
- package/dist/d1/migrations.d.ts +12 -0
- package/dist/d1/migrations.d.ts.map +1 -0
- package/dist/d1/migrations.js +111 -0
- package/dist/d1/migrations.js.map +1 -0
- package/dist/d1/print.d.ts +28 -0
- package/dist/d1/print.d.ts.map +1 -0
- package/dist/d1/print.js +54 -0
- package/dist/d1/print.js.map +1 -0
- package/dist/d1/site.d.ts +17 -0
- package/dist/d1/site.d.ts.map +1 -0
- package/dist/d1/site.js +63 -0
- package/dist/d1/site.js.map +1 -0
- package/dist/d1/storage.d.ts +34 -0
- package/dist/d1/storage.d.ts.map +1 -0
- package/dist/d1/storage.js +288 -0
- package/dist/d1/storage.js.map +1 -0
- package/dist/d1/tz.d.ts +21 -0
- package/dist/d1/tz.d.ts.map +1 -0
- package/dist/d1/tz.js +54 -0
- package/dist/d1/tz.js.map +1 -0
- package/dist/d1/validator.d.ts +10 -0
- package/dist/d1/validator.d.ts.map +1 -0
- package/dist/d1/validator.js +33 -0
- package/dist/d1/validator.js.map +1 -0
- package/dist/mcp/apps.d.ts +43 -0
- package/dist/mcp/apps.d.ts.map +1 -0
- package/dist/mcp/apps.js +57 -0
- package/dist/mcp/apps.js.map +1 -0
- package/dist/mcp/catalog.d.ts +55 -0
- package/dist/mcp/catalog.d.ts.map +1 -0
- package/dist/mcp/catalog.js +81 -0
- package/dist/mcp/catalog.js.map +1 -0
- package/dist/mcp/createMcpSurface.d.ts +34 -0
- package/dist/mcp/createMcpSurface.d.ts.map +1 -0
- package/dist/mcp/createMcpSurface.js +150 -0
- package/dist/mcp/createMcpSurface.js.map +1 -0
- package/dist/mcp/index.d.ts +4 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +4 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/postgres/adapter.d.ts +20 -0
- package/dist/postgres/adapter.d.ts.map +1 -0
- package/dist/postgres/adapter.js +44 -0
- package/dist/postgres/adapter.js.map +1 -0
- package/dist/postgres/codec.d.ts +13 -0
- package/dist/postgres/codec.d.ts.map +1 -0
- package/dist/postgres/codec.js +110 -0
- package/dist/postgres/codec.js.map +1 -0
- package/dist/postgres/compile/index.d.ts +9 -0
- package/dist/postgres/compile/index.d.ts.map +1 -0
- package/dist/postgres/compile/index.js +9 -0
- package/dist/postgres/compile/index.js.map +1 -0
- package/dist/postgres/driver.d.ts +92 -0
- package/dist/postgres/driver.d.ts.map +1 -0
- package/dist/postgres/driver.js +110 -0
- package/dist/postgres/driver.js.map +1 -0
- package/dist/postgres/executor.d.ts +20 -0
- package/dist/postgres/executor.d.ts.map +1 -0
- package/dist/postgres/executor.js +69 -0
- package/dist/postgres/executor.js.map +1 -0
- package/dist/postgres/index.d.ts +7 -0
- package/dist/postgres/index.d.ts.map +1 -0
- package/dist/postgres/index.js +7 -0
- package/dist/postgres/index.js.map +1 -0
- package/dist/postgres/lower.d.ts +6 -0
- package/dist/postgres/lower.d.ts.map +1 -0
- package/dist/postgres/lower.js +157 -0
- package/dist/postgres/lower.js.map +1 -0
- package/dist/postgres/print.d.ts +11 -0
- package/dist/postgres/print.d.ts.map +1 -0
- package/dist/postgres/print.js +121 -0
- package/dist/postgres/print.js.map +1 -0
- package/dist/postgres/storage.d.ts +19 -0
- package/dist/postgres/storage.d.ts.map +1 -0
- package/dist/postgres/storage.js +201 -0
- package/dist/postgres/storage.js.map +1 -0
- package/dist/postgres/textRows.d.ts +10 -0
- package/dist/postgres/textRows.d.ts.map +1 -0
- package/dist/postgres/textRows.js +44 -0
- package/dist/postgres/textRows.js.map +1 -0
- package/dist/postgres/validator.d.ts +12 -0
- package/dist/postgres/validator.d.ts.map +1 -0
- package/dist/postgres/validator.js +46 -0
- package/dist/postgres/validator.js.map +1 -0
- package/dist/spec/domain/index.d.ts +3 -0
- package/dist/spec/domain/index.d.ts.map +1 -0
- package/dist/spec/domain/index.js +3 -0
- package/dist/spec/domain/index.js.map +1 -0
- package/dist/spec/domain/model/ContentState.d.ts +8 -0
- package/dist/spec/domain/model/ContentState.d.ts.map +1 -0
- package/dist/spec/domain/model/ContentState.js +7 -0
- package/dist/spec/domain/model/ContentState.js.map +1 -0
- package/dist/spec/domain/model/Entry.d.ts +29 -0
- package/dist/spec/domain/model/Entry.d.ts.map +1 -0
- package/dist/spec/domain/model/Entry.js +16 -0
- package/dist/spec/domain/model/Entry.js.map +1 -0
- package/dist/spec/domain/model/Locale.d.ts +30 -0
- package/dist/spec/domain/model/Locale.d.ts.map +1 -0
- package/dist/spec/domain/model/Locale.js +33 -0
- package/dist/spec/domain/model/Locale.js.map +1 -0
- package/dist/spec/domain/model/ManifestGrammar.d.ts +452 -0
- package/dist/spec/domain/model/ManifestGrammar.d.ts.map +1 -0
- package/dist/spec/domain/model/ManifestGrammar.js +149 -0
- package/dist/spec/domain/model/ManifestGrammar.js.map +1 -0
- package/dist/spec/domain/model/MediaMimeAccept.d.ts +55 -0
- package/dist/spec/domain/model/MediaMimeAccept.d.ts.map +1 -0
- package/dist/spec/domain/model/MediaMimeAccept.js +90 -0
- package/dist/spec/domain/model/MediaMimeAccept.js.map +1 -0
- package/dist/spec/domain/model/RuntimePlan.d.ts +94 -0
- package/dist/spec/domain/model/RuntimePlan.d.ts.map +1 -0
- package/dist/spec/domain/model/RuntimePlan.js +4 -0
- package/dist/spec/domain/model/RuntimePlan.js.map +1 -0
- package/dist/spec/domain/model/SiteConfig.d.ts +173 -0
- package/dist/spec/domain/model/SiteConfig.d.ts.map +1 -0
- package/dist/spec/domain/model/SiteConfig.js +13 -0
- package/dist/spec/domain/model/SiteConfig.js.map +1 -0
- package/dist/spec/domain/model/SqlIr.d.ts +96 -0
- package/dist/spec/domain/model/SqlIr.d.ts.map +1 -0
- package/dist/spec/domain/model/SqlIr.js +95 -0
- package/dist/spec/domain/model/SqlIr.js.map +1 -0
- package/dist/spec/domain/model/index.d.ts +14 -0
- package/dist/spec/domain/model/index.d.ts.map +1 -0
- package/dist/spec/domain/model/index.js +14 -0
- package/dist/spec/domain/model/index.js.map +1 -0
- package/dist/spec/domain/service/CloudflareCron.d.ts +2 -0
- package/dist/spec/domain/service/CloudflareCron.d.ts.map +1 -0
- package/dist/spec/domain/service/CloudflareCron.js +63 -0
- package/dist/spec/domain/service/CloudflareCron.js.map +1 -0
- package/dist/spec/domain/service/CrossSchemaChecker.d.ts +34 -0
- package/dist/spec/domain/service/CrossSchemaChecker.d.ts.map +1 -0
- package/dist/spec/domain/service/CrossSchemaChecker.js +114 -0
- package/dist/spec/domain/service/CrossSchemaChecker.js.map +1 -0
- package/dist/spec/domain/service/EntryDataValidator.d.ts +56 -0
- package/dist/spec/domain/service/EntryDataValidator.d.ts.map +1 -0
- package/dist/spec/domain/service/EntryDataValidator.js +88 -0
- package/dist/spec/domain/service/EntryDataValidator.js.map +1 -0
- package/dist/spec/domain/service/JsonSchemaToZod.d.ts +29 -0
- package/dist/spec/domain/service/JsonSchemaToZod.d.ts.map +1 -0
- package/dist/spec/domain/service/JsonSchemaToZod.js +156 -0
- package/dist/spec/domain/service/JsonSchemaToZod.js.map +1 -0
- package/dist/spec/domain/service/LifecycleStateMachine.d.ts +75 -0
- package/dist/spec/domain/service/LifecycleStateMachine.d.ts.map +1 -0
- package/dist/spec/domain/service/LifecycleStateMachine.js +76 -0
- package/dist/spec/domain/service/LifecycleStateMachine.js.map +1 -0
- package/dist/spec/domain/service/LocaleCanonicalizer.d.ts +29 -0
- package/dist/spec/domain/service/LocaleCanonicalizer.d.ts.map +1 -0
- package/dist/spec/domain/service/LocaleCanonicalizer.js +96 -0
- package/dist/spec/domain/service/LocaleCanonicalizer.js.map +1 -0
- package/dist/spec/domain/service/ManifestFieldChecks.d.ts +60 -0
- package/dist/spec/domain/service/ManifestFieldChecks.d.ts.map +1 -0
- package/dist/spec/domain/service/ManifestFieldChecks.js +116 -0
- package/dist/spec/domain/service/ManifestFieldChecks.js.map +1 -0
- package/dist/spec/domain/service/ManifestGraphValidator.d.ts +15 -0
- package/dist/spec/domain/service/ManifestGraphValidator.d.ts.map +1 -0
- package/dist/spec/domain/service/ManifestGraphValidator.js +225 -0
- package/dist/spec/domain/service/ManifestGraphValidator.js.map +1 -0
- package/dist/spec/domain/service/ManifestLinker.d.ts +45 -0
- package/dist/spec/domain/service/ManifestLinker.d.ts.map +1 -0
- package/dist/spec/domain/service/ManifestLinker.js +92 -0
- package/dist/spec/domain/service/ManifestLinker.js.map +1 -0
- package/dist/spec/domain/service/ManifestLocaleTrimmer.d.ts +16 -0
- package/dist/spec/domain/service/ManifestLocaleTrimmer.d.ts.map +1 -0
- package/dist/spec/domain/service/ManifestLocaleTrimmer.js +76 -0
- package/dist/spec/domain/service/ManifestLocaleTrimmer.js.map +1 -0
- package/dist/spec/domain/service/ManifestParser.d.ts +49 -0
- package/dist/spec/domain/service/ManifestParser.d.ts.map +1 -0
- package/dist/spec/domain/service/ManifestParser.js +203 -0
- package/dist/spec/domain/service/ManifestParser.js.map +1 -0
- package/dist/spec/domain/service/ManifestPartition.d.ts +9 -0
- package/dist/spec/domain/service/ManifestPartition.d.ts.map +1 -0
- package/dist/spec/domain/service/ManifestPartition.js +19 -0
- package/dist/spec/domain/service/ManifestPartition.js.map +1 -0
- package/dist/spec/domain/service/ManifestPathDiagnoser.d.ts +33 -0
- package/dist/spec/domain/service/ManifestPathDiagnoser.d.ts.map +1 -0
- package/dist/spec/domain/service/ManifestPathDiagnoser.js +43 -0
- package/dist/spec/domain/service/ManifestPathDiagnoser.js.map +1 -0
- package/dist/spec/domain/service/ManifestSourceSpans.d.ts +10 -0
- package/dist/spec/domain/service/ManifestSourceSpans.d.ts.map +1 -0
- package/dist/spec/domain/service/ManifestSourceSpans.js +76 -0
- package/dist/spec/domain/service/ManifestSourceSpans.js.map +1 -0
- package/dist/spec/domain/service/McpToolNaming.d.ts +25 -0
- package/dist/spec/domain/service/McpToolNaming.d.ts.map +1 -0
- package/dist/spec/domain/service/McpToolNaming.js +50 -0
- package/dist/spec/domain/service/McpToolNaming.js.map +1 -0
- package/dist/spec/domain/service/PlanFingerprint.d.ts +4 -0
- package/dist/spec/domain/service/PlanFingerprint.d.ts.map +1 -0
- package/dist/spec/domain/service/PlanFingerprint.js +14 -0
- package/dist/spec/domain/service/PlanFingerprint.js.map +1 -0
- package/dist/spec/domain/service/ProcedureViewSpecChecks.d.ts +4 -0
- package/dist/spec/domain/service/ProcedureViewSpecChecks.d.ts.map +1 -0
- package/dist/spec/domain/service/ProcedureViewSpecChecks.js +211 -0
- package/dist/spec/domain/service/ProcedureViewSpecChecks.js.map +1 -0
- package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts +42 -0
- package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts.map +1 -0
- package/dist/spec/domain/service/SchemaAdminUiChecker.js +289 -0
- package/dist/spec/domain/service/SchemaAdminUiChecker.js.map +1 -0
- package/dist/spec/domain/service/SchemaIndexChecker.d.ts +33 -0
- package/dist/spec/domain/service/SchemaIndexChecker.d.ts.map +1 -0
- package/dist/spec/domain/service/SchemaIndexChecker.js +256 -0
- package/dist/spec/domain/service/SchemaIndexChecker.js.map +1 -0
- package/dist/spec/domain/service/SchemaSearchChecker.d.ts +11 -0
- package/dist/spec/domain/service/SchemaSearchChecker.d.ts.map +1 -0
- package/dist/spec/domain/service/SchemaSearchChecker.js +78 -0
- package/dist/spec/domain/service/SchemaSearchChecker.js.map +1 -0
- package/dist/spec/domain/service/SchemaSpecChecks.d.ts +31 -0
- package/dist/spec/domain/service/SchemaSpecChecks.d.ts.map +1 -0
- package/dist/spec/domain/service/SchemaSpecChecks.js +445 -0
- package/dist/spec/domain/service/SchemaSpecChecks.js.map +1 -0
- package/dist/spec/domain/service/SiteDefaultsValidator.d.ts +39 -0
- package/dist/spec/domain/service/SiteDefaultsValidator.d.ts.map +1 -0
- package/dist/spec/domain/service/SiteDefaultsValidator.js +194 -0
- package/dist/spec/domain/service/SiteDefaultsValidator.js.map +1 -0
- package/dist/spec/domain/service/SqlClassify.d.ts +19 -0
- package/dist/spec/domain/service/SqlClassify.d.ts.map +1 -0
- package/dist/spec/domain/service/SqlClassify.js +42 -0
- package/dist/spec/domain/service/SqlClassify.js.map +1 -0
- package/dist/spec/domain/service/SqlRefusal.d.ts +16 -0
- package/dist/spec/domain/service/SqlRefusal.d.ts.map +1 -0
- package/dist/spec/domain/service/SqlRefusal.js +20 -0
- package/dist/spec/domain/service/SqlRefusal.js.map +1 -0
- package/dist/spec/domain/service/SqlTypes.d.ts +40 -0
- package/dist/spec/domain/service/SqlTypes.d.ts.map +1 -0
- package/dist/spec/domain/service/SqlTypes.js +110 -0
- package/dist/spec/domain/service/SqlTypes.js.map +1 -0
- package/dist/spec/domain/service/StaffRoleHierarchy.d.ts +3 -0
- package/dist/spec/domain/service/StaffRoleHierarchy.d.ts.map +1 -0
- package/dist/spec/domain/service/StaffRoleHierarchy.js +19 -0
- package/dist/spec/domain/service/StaffRoleHierarchy.js.map +1 -0
- package/dist/spec/domain/service/TriggerGraphChecks.d.ts +16 -0
- package/dist/spec/domain/service/TriggerGraphChecks.d.ts.map +1 -0
- package/dist/spec/domain/service/TriggerGraphChecks.js +337 -0
- package/dist/spec/domain/service/TriggerGraphChecks.js.map +1 -0
- package/dist/spec/domain/service/TriggerSpecChecks.d.ts +4 -0
- package/dist/spec/domain/service/TriggerSpecChecks.d.ts.map +1 -0
- package/dist/spec/domain/service/TriggerSpecChecks.js +89 -0
- package/dist/spec/domain/service/TriggerSpecChecks.js.map +1 -0
- package/dist/spec/domain/service/ValidatedAdminUiProjection.d.ts +11 -0
- package/dist/spec/domain/service/ValidatedAdminUiProjection.d.ts.map +1 -0
- package/dist/spec/domain/service/ValidatedAdminUiProjection.js +26 -0
- package/dist/spec/domain/service/ValidatedAdminUiProjection.js.map +1 -0
- package/dist/spec/domain/service/ViewAdminUiChecker.d.ts +14 -0
- package/dist/spec/domain/service/ViewAdminUiChecker.d.ts.map +1 -0
- package/dist/spec/domain/service/ViewAdminUiChecker.js +53 -0
- package/dist/spec/domain/service/ViewAdminUiChecker.js.map +1 -0
- package/dist/spec/domain/service/index.d.ts +24 -0
- package/dist/spec/domain/service/index.d.ts.map +1 -0
- package/dist/spec/domain/service/index.js +24 -0
- package/dist/spec/domain/service/index.js.map +1 -0
- package/dist/spec/index.d.ts +10 -0
- package/dist/spec/index.d.ts.map +1 -0
- package/dist/spec/index.js +12 -0
- package/dist/spec/index.js.map +1 -0
- package/dist/spec/infrastructure/cli/parseArgsError.d.ts +16 -0
- package/dist/spec/infrastructure/cli/parseArgsError.d.ts.map +1 -0
- package/dist/spec/infrastructure/cli/parseArgsError.js +34 -0
- package/dist/spec/infrastructure/cli/parseArgsError.js.map +1 -0
- package/dist/spec/infrastructure/index.d.ts +2 -0
- package/dist/spec/infrastructure/index.d.ts.map +1 -0
- package/dist/spec/infrastructure/index.js +2 -0
- package/dist/spec/infrastructure/index.js.map +1 -0
- package/dist/spec/infrastructure/sql/PgQueryParser.d.ts +18 -0
- package/dist/spec/infrastructure/sql/PgQueryParser.d.ts.map +1 -0
- package/dist/spec/infrastructure/sql/PgQueryParser.js +17 -0
- package/dist/spec/infrastructure/sql/PgQueryParser.js.map +1 -0
- package/dist/spec/infrastructure/sql/compilePlan.d.ts +37 -0
- package/dist/spec/infrastructure/sql/compilePlan.d.ts.map +1 -0
- package/dist/spec/infrastructure/sql/compilePlan.js +282 -0
- package/dist/spec/infrastructure/sql/compilePlan.js.map +1 -0
- package/dist/spec/infrastructure/sql/compileSql.d.ts +35 -0
- package/dist/spec/infrastructure/sql/compileSql.d.ts.map +1 -0
- package/dist/spec/infrastructure/sql/compileSql.js +92 -0
- package/dist/spec/infrastructure/sql/compileSql.js.map +1 -0
- package/dist/spec/infrastructure/sql/frontEnd.d.ts +8 -0
- package/dist/spec/infrastructure/sql/frontEnd.d.ts.map +1 -0
- package/dist/spec/infrastructure/sql/frontEnd.js +100 -0
- package/dist/spec/infrastructure/sql/frontEnd.js.map +1 -0
- package/dist/spec/infrastructure/sql/index.d.ts +4 -0
- package/dist/spec/infrastructure/sql/index.d.ts.map +1 -0
- package/dist/spec/infrastructure/sql/index.js +4 -0
- package/dist/spec/infrastructure/sql/index.js.map +1 -0
- package/dist/spec/kernel/diagnostic.d.ts +137 -0
- package/dist/spec/kernel/diagnostic.d.ts.map +1 -0
- package/dist/spec/kernel/diagnostic.js +296 -0
- package/dist/spec/kernel/diagnostic.js.map +1 -0
- package/dist/spec/kernel/index.d.ts +8 -0
- package/dist/spec/kernel/index.d.ts.map +1 -0
- package/dist/spec/kernel/index.js +8 -0
- package/dist/spec/kernel/index.js.map +1 -0
- package/dist/spec/usecase/EmitTypes.d.ts +22 -0
- package/dist/spec/usecase/EmitTypes.d.ts.map +1 -0
- package/dist/spec/usecase/EmitTypes.js +182 -0
- package/dist/spec/usecase/EmitTypes.js.map +1 -0
- package/dist/spec/usecase/ValidateManifestsUseCase.d.ts +8 -0
- package/dist/spec/usecase/ValidateManifestsUseCase.d.ts.map +1 -0
- package/dist/spec/usecase/ValidateManifestsUseCase.js +101 -0
- package/dist/spec/usecase/ValidateManifestsUseCase.js.map +1 -0
- package/dist/spec/usecase/dto/ValidateManifestsRequest.d.ts +27 -0
- package/dist/spec/usecase/dto/ValidateManifestsRequest.d.ts.map +1 -0
- package/dist/spec/usecase/dto/ValidateManifestsRequest.js +2 -0
- package/dist/spec/usecase/dto/ValidateManifestsRequest.js.map +1 -0
- package/dist/spec/usecase/dto/ValidateManifestsResponse.d.ts +14 -0
- package/dist/spec/usecase/dto/ValidateManifestsResponse.d.ts.map +1 -0
- package/dist/spec/usecase/dto/ValidateManifestsResponse.js +2 -0
- package/dist/spec/usecase/dto/ValidateManifestsResponse.js.map +1 -0
- package/dist/spec/usecase/dto/index.d.ts +3 -0
- package/dist/spec/usecase/dto/index.d.ts.map +1 -0
- package/dist/spec/usecase/dto/index.js +3 -0
- package/dist/spec/usecase/dto/index.js.map +1 -0
- package/dist/spec/usecase/index.d.ts +10 -0
- package/dist/spec/usecase/index.d.ts.map +1 -0
- package/dist/spec/usecase/index.js +10 -0
- package/dist/spec/usecase/index.js.map +1 -0
- package/dist/testing/cases/before-hook.d.ts +4 -0
- package/dist/testing/cases/before-hook.d.ts.map +1 -0
- package/dist/testing/cases/before-hook.js +71 -0
- package/dist/testing/cases/before-hook.js.map +1 -0
- package/dist/testing/cases/corpus.d.ts +12 -0
- package/dist/testing/cases/corpus.d.ts.map +1 -0
- package/dist/testing/cases/corpus.js +91 -0
- package/dist/testing/cases/corpus.js.map +1 -0
- package/dist/testing/cases/policy.d.ts +74 -0
- package/dist/testing/cases/policy.d.ts.map +1 -0
- package/dist/testing/cases/policy.js +142 -0
- package/dist/testing/cases/policy.js.map +1 -0
- package/dist/testing/cases/printer.d.ts +4 -0
- package/dist/testing/cases/printer.d.ts.map +1 -0
- package/dist/testing/cases/printer.js +32 -0
- package/dist/testing/cases/printer.js.map +1 -0
- package/dist/testing/cases/report-view.d.ts +5 -0
- package/dist/testing/cases/report-view.d.ts.map +1 -0
- package/dist/testing/cases/report-view.js +33 -0
- package/dist/testing/cases/report-view.js.map +1 -0
- package/dist/testing/cases/requisition.d.ts +4 -0
- package/dist/testing/cases/requisition.d.ts.map +1 -0
- package/dist/testing/cases/requisition.js +38 -0
- package/dist/testing/cases/requisition.js.map +1 -0
- package/dist/testing/cases/search-places.d.ts +4 -0
- package/dist/testing/cases/search-places.d.ts.map +1 -0
- package/dist/testing/cases/search-places.js +60 -0
- package/dist/testing/cases/search-places.js.map +1 -0
- package/dist/testing/cases/stock.d.ts +4 -0
- package/dist/testing/cases/stock.d.ts.map +1 -0
- package/dist/testing/cases/stock.js +35 -0
- package/dist/testing/cases/stock.js.map +1 -0
- package/dist/testing/cases/store.d.ts +4 -0
- package/dist/testing/cases/store.d.ts.map +1 -0
- package/dist/testing/cases/store.js +100 -0
- package/dist/testing/cases/store.js.map +1 -0
- package/dist/testing/harness.d.ts +94 -0
- package/dist/testing/harness.d.ts.map +1 -0
- package/dist/testing/harness.js +168 -0
- package/dist/testing/harness.js.map +1 -0
- package/dist/testing/index.d.ts +37 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +43 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/report.d.ts +15 -0
- package/dist/testing/report.d.ts.map +1 -0
- package/dist/testing/report.js +22 -0
- package/dist/testing/report.js.map +1 -0
- package/dist/web/createRestSurface.d.ts +7 -0
- package/dist/web/createRestSurface.d.ts.map +1 -0
- package/dist/web/createRestSurface.js +39 -0
- package/dist/web/createRestSurface.js.map +1 -0
- package/dist/web/index.d.ts +2 -0
- package/dist/web/index.d.ts.map +1 -0
- package/dist/web/index.js +2 -0
- package/dist/web/index.js.map +1 -0
- package/docs/adr/0008-structured-diagnostic-shape.md +2 -2
- package/docs/adr/0011-adapter-port-spec.md +2 -2
- package/docs/adr/0014-auth-better-auth-and-multi-tenant-mcp.md +21 -2
- package/docs/adr/0019-sealed-manifest-runtime-pipeline.md +5 -1
- package/docs/adr/0022-caller-observed-version-occ.md +1 -1
- package/docs/adr/0024-manifest-native-schema-tables.md +2 -2
- package/docs/adr/0027-scheduled-procedure-triggers.md +1 -1
- package/docs/adr/0028-schema-ttl-expiry.md +3 -3
- package/docs/adr/0029-mcp-apps-interaction-contracts.md +324 -0
- package/docs/adr/0030-store.md +40 -0
- package/docs/adr/0031-host-cloud-core-contract.md +25 -0
- package/docs/adr/0032-store-centric-core-and-service-contract.md +361 -0
- package/docs/adr/0033-storage-converges-to-the-plan.md +92 -0
- package/docs/adr/0034-store-is-authored-as-sql.md +192 -0
- package/docs/adr/0035-sql-dialects.md +154 -0
- package/docs/adr/0036-host-and-dialect.md +65 -0
- package/docs/adr/0037-postgresql-is-the-reference-dialect.md +124 -0
- package/docs/adr/0038-bun-native-host.md +63 -0
- package/docs/adr/README.md +23 -8
- package/docs/adr/adr-lite-861-admin-webmcp.md +6 -0
- package/docs/adr/adr-lite-909-admin-ui-kit.md +1 -1
- package/docs/examples/README.md +16 -18
- package/docs/examples/commerce-inventory.md +481 -0
- package/docs/examples/commerce.md +254 -0
- package/docs/examples/guarded-api.md +238 -0
- package/docs/examples/intake-hooks.md +237 -0
- package/docs/examples/intake.md +127 -0
- package/docs/examples/legal-documents.md +218 -0
- package/docs/examples/procurement.md +215 -0
- package/docs/examples/publication.md +211 -0
- package/docs/examples/reference-service/.dev.vars.example +4 -0
- package/docs/examples/reference-service/.mantle/generated/mantle.ts +174 -0
- package/docs/examples/reference-service/.mantle/generated/plan.json +1936 -0
- package/docs/examples/reference-service/README.md +33 -0
- package/docs/examples/reference-service/manifests/catalog.yaml +103 -0
- package/docs/examples/reference-service/manifests/orders.yaml +120 -0
- package/docs/examples/reference-service/mantle.config.json +1 -0
- package/docs/examples/reference-service/package.json +27 -0
- package/docs/examples/reference-service/smoke.mjs +156 -0
- package/docs/examples/reference-service/src/handlers.ts +36 -0
- package/docs/examples/reference-service/src/index.ts +33 -0
- package/docs/examples/reference-service/src/service.ts +78 -0
- package/docs/examples/{host-minimal-worker → reference-service}/tsconfig.json +7 -2
- package/docs/examples/reference-service/wrangler.jsonc +26 -0
- package/docs/examples/reservation.md +142 -0
- package/docs/handbook/cloudflare/authentication.md +119 -311
- package/docs/handbook/cloudflare/chatgpt-sites.md +104 -15
- package/docs/handbook/cloudflare/deploy-and-operate.md +77 -71
- package/docs/handbook/cloudflare/media-r2.md +64 -187
- package/docs/handbook/cloudflare/service-entry.md +138 -0
- package/docs/handbook/concepts/authorization.md +104 -94
- package/docs/handbook/concepts/four-atoms.md +68 -144
- package/docs/handbook/concepts/lifecycle-and-locales.md +62 -114
- package/docs/handbook/concepts/mcp-and-agents.md +112 -117
- package/docs/handbook/concepts/procedures-and-triggers.md +126 -181
- package/docs/handbook/concepts/runtime-and-adapters.md +177 -163
- package/docs/handbook/concepts/views.md +97 -173
- package/docs/handbook/examples/hub.md +17 -6
- package/docs/handbook/guides/admin-ui.md +101 -96
- package/docs/handbook/guides/agent-setup.md +56 -71
- package/docs/handbook/guides/typed-queries.md +105 -111
- package/docs/handbook/navigation.json +8 -33
- package/docs/handbook/reference/authorization.md +52 -271
- package/docs/handbook/reference/diagnostics.md +69 -178
- package/docs/handbook/reference/features.md +48 -50
- package/docs/handbook/reference/manifest.md +56 -116
- package/docs/handbook/reference/procedure.md +91 -279
- package/docs/handbook/reference/schema.md +154 -239
- package/docs/handbook/reference/site-config.md +58 -211
- package/docs/handbook/reference/surface.md +69 -181
- package/docs/handbook/reference/trigger.md +72 -181
- package/docs/handbook/reference/view.md +140 -241
- package/docs/handbook/releases/index.md +58 -77
- package/docs/handbook/start/overview.md +59 -51
- package/docs/handbook/start/project-and-cli.md +132 -105
- package/docs/handbook/start/quickstart-worker.md +102 -160
- package/docs/skills/develop/SKILL.md +114 -240
- package/docs/skills/develop/mcp-app.md +79 -0
- package/docs/skills/integrate/SKILL.md +83 -47
- package/docs/skills/media-gc/SKILL.md +21 -10
- package/docs/skills/provision/SKILL.md +68 -162
- package/docs/skills/update/SKILL.md +33 -34
- package/docs/upgrade-0.1-to-0.2.md +211 -0
- package/package.json +87 -106
- 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/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/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/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/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/README.md +0 -127
- 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
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
# Spec-only adoption in an existing host
|
|
2
|
-
|
|
3
|
-
An existing application can reuse Mantle's Schema grammar and validation by
|
|
4
|
-
consuming the published `@aotter/mantle-spec` package, without running Mantle
|
|
5
|
-
Runtime. This Spec-only path is allowed by
|
|
6
|
-
[ADR-0019](adr/0019-sealed-manifest-runtime-pipeline.md), not a new adapter,
|
|
7
|
-
manifest grammar, or fork of Core.
|
|
8
|
-
|
|
9
|
-
This recipe targets `0.1.4`. Pin the package, record the tested version, and
|
|
10
|
-
rerun compatibility checks when upgrading.
|
|
11
|
-
|
|
12
|
-
## What stays with the host
|
|
13
|
-
|
|
14
|
-
| Concern | Spec reuse | Host responsibility |
|
|
15
|
-
|---|---|---|
|
|
16
|
-
| Model definitions | Schema grammar, parse/link diagnostics | Project existing definitions into supported JSON Schema |
|
|
17
|
-
| Input | `EntryDataValidator` and structured errors | Authentication, authorization, normalization, write orchestration |
|
|
18
|
-
| Model browser | Parsed/linked Schema metadata | UI, metadata visibility, field display, graph layout |
|
|
19
|
-
| Relationships | Translation declaration/link validation | Existing slug joins, record integrity, locale policy |
|
|
20
|
-
| Storage and publishing | None in this recipe | Files, database, transactions, revisions, release/recovery |
|
|
21
|
-
| Operations and tools | None in this recipe | No automatic View, Procedure, Trigger, REST or MCP execution |
|
|
22
|
-
|
|
23
|
-
Mantle's Web, Admin UI and platform adapters remain optional. A Vue host does
|
|
24
|
-
not have to embed the React Admin SPA to reuse Spec. Avoid importing SDK
|
|
25
|
-
internals or maintaining a second manifest interpreter.
|
|
26
|
-
|
|
27
|
-
## One definition, several projections
|
|
28
|
-
|
|
29
|
-
The motivating Aotter official-website implementation keeps its existing
|
|
30
|
-
Nuxt/Nitro host and Git/D1 storage. Shared content definitions drive the site's
|
|
31
|
-
content layer, admin write validation, a responsive model/ER browser, and
|
|
32
|
-
Schema export. That website implementation was validated locally; this SDK
|
|
33
|
-
contribution does not deploy it or claim a production rollout.
|
|
34
|
-
|
|
35
|
-
```text
|
|
36
|
-
Host-owned content definitions
|
|
37
|
-
├─ existing CMS/content queries
|
|
38
|
-
└─ JSON Schema in Mantle Schema manifests
|
|
39
|
-
├─ parse + link → model browser / metadata export
|
|
40
|
-
└─ EntryDataValidator → host-authorized write path
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
Use the existing definitions as the source of truth. If the host starts with
|
|
44
|
-
Zod or another schema language, conversion is a host concern: verify that the
|
|
45
|
-
result uses supported JSON Schema keywords and preserves the intended
|
|
46
|
-
validation semantics. Do not hand-maintain a second field list for the graph.
|
|
47
|
-
|
|
48
|
-
## Minimal public-API recipe
|
|
49
|
-
|
|
50
|
-
Install the exact Spec package and its supported peer, without Runtime:
|
|
51
|
-
|
|
52
|
-
```sh
|
|
53
|
-
npm install --save-exact @aotter/mantle-spec zod@4.5.4
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
The [synthetic fixture](../packages/mantle-spec/test/fixtures/spec-only-host.yaml)
|
|
57
|
-
contains categories, articles and article translations. It contains no real
|
|
58
|
-
website records, account configuration or credentials. Given that fixture as
|
|
59
|
-
`manifestYaml`, the application can prepare its validated model once:
|
|
60
|
-
|
|
61
|
-
```ts
|
|
62
|
-
import {
|
|
63
|
-
EntryDataValidator,
|
|
64
|
-
parseManifestSources,
|
|
65
|
-
ValidateManifestsUseCase,
|
|
66
|
-
} from "@aotter/mantle-spec";
|
|
67
|
-
|
|
68
|
-
const parsed = parseManifestSources({
|
|
69
|
-
sources: [{ sourceId: "host:content-model", text: manifestYaml }],
|
|
70
|
-
});
|
|
71
|
-
if (!parsed.ok) throw new Error(JSON.stringify(parsed.diagnostics));
|
|
72
|
-
|
|
73
|
-
const checked = ValidateManifestsUseCase.run({
|
|
74
|
-
parsed: parsed.value,
|
|
75
|
-
siteLocales: ["zh-TW", "en-US"],
|
|
76
|
-
});
|
|
77
|
-
if (checked.errorCount || !checked.linked) {
|
|
78
|
-
throw new Error(JSON.stringify(checked.diagnostics));
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
const article = checked.linked.schemas.find(
|
|
82
|
-
({ manifest }) => manifest.metadata.name === "articles",
|
|
83
|
-
)!.manifest;
|
|
84
|
-
const validator = new EntryDataValidator();
|
|
85
|
-
const diagnostics = validator.validate(article, { category: 42 }, { partial: true });
|
|
86
|
-
// INPUT_VALIDATION_FAILED at /category. The host must reject the write.
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
The non-null assertion is specific to this known fixture. A dynamic host must
|
|
90
|
-
handle an unknown collection explicitly and fail closed. Do not fabricate
|
|
91
|
-
sealed parser/linker values or re-parse the same revision in each request.
|
|
92
|
-
|
|
93
|
-
`EntryDataValidator` returns diagnostics, not a sanitized payload. It does not
|
|
94
|
-
persist, authorize, coerce the original object, or enforce storage integrity.
|
|
95
|
-
Normalize explicitly in the host before validation and write only after
|
|
96
|
-
successful validation and authorization. An `additionalProperties: true`
|
|
97
|
-
compatibility policy accepts legacy fields; it is not a reason to expose those
|
|
98
|
-
fields publicly.
|
|
99
|
-
|
|
100
|
-
`partial: true` relaxes top-level required fields for drafts, while still
|
|
101
|
-
checking supplied types and nested required fields. Validate without `partial`
|
|
102
|
-
when the host needs a complete record, alongside its own publication rules.
|
|
103
|
-
Create a fresh validator for each model revision: its compiled cache is keyed
|
|
104
|
-
by manifest name (and partial/full mode), not by a changing schema body.
|
|
105
|
-
|
|
106
|
-
## Honest ER diagrams and metadata export
|
|
107
|
-
|
|
108
|
-
- Derive model nodes and field details from Schema properties. Use a small
|
|
109
|
-
host-owned relationship registry for relations not represented by Mantle
|
|
110
|
-
grammar; show logical joins distinctly from actual database foreign keys.
|
|
111
|
-
- The fixture's `x-example-source` and `x-example-relations` live inside JSON
|
|
112
|
-
Schema. They are illustrative vendor annotations, **not new Mantle keys or
|
|
113
|
-
executable relationship definitions**. Core may preserve them without
|
|
114
|
-
interpreting them. The host must validate their shape and endpoint fields.
|
|
115
|
-
- Do not label a filename/slug join as `x-mantle-ref`: that keyword represents
|
|
116
|
-
Mantle entry-ID references. A category slug matching a key inside a YAML
|
|
117
|
-
array remains a host-specific relation, not a generated SQL foreign key.
|
|
118
|
-
- `translates` validates the parent and join-field declarations, not whether
|
|
119
|
-
actual translation records exist. A Spec-only host still owns allowed
|
|
120
|
-
locales, uniqueness, fallback, and orphan handling. See
|
|
121
|
-
[ADR-0010](adr/0010-locale-and-translates.md); Runtime locale/storage gates
|
|
122
|
-
are not installed by this recipe.
|
|
123
|
-
- A read-only inventory can add derived fields such as filename `slug` or
|
|
124
|
-
directory `locale` without changing stored files. Document that projection;
|
|
125
|
-
it is not evidence that existing data is ready for Runtime import.
|
|
126
|
-
- The fixture uses JSON Schema `readOnly` as an inventory annotation. It is
|
|
127
|
-
not a security boundary: entry validation does not enforce host write
|
|
128
|
-
permissions. Export only after applying the host's metadata access policy.
|
|
129
|
-
- Exclude credential/account models and private data. Export schemas, not
|
|
130
|
-
records. Where appropriate, require an administrator and use
|
|
131
|
-
`Cache-Control: private, no-store` for model and export endpoints.
|
|
132
|
-
- Keep the graph usable on narrow screens: searchable model selection,
|
|
133
|
-
focused relationships, zoom/scroll, keyboard controls and a field-table
|
|
134
|
-
alternative. A graph must not be the only accessible representation.
|
|
135
|
-
|
|
136
|
-
## Reproducible evidence
|
|
137
|
-
|
|
138
|
-
From this SDK checkout:
|
|
139
|
-
|
|
140
|
-
```sh
|
|
141
|
-
pnpm --filter @aotter/mantle-spec test -- test/spec-only-host.test.ts
|
|
142
|
-
pnpm --filter @aotter/mantle-spec typecheck
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
The [regression test](../packages/mantle-spec/test/spec-only-host.test.ts)
|
|
146
|
-
exercises the public export surface, manifest round trips, translation linking,
|
|
147
|
-
and strict/partial entry validation without Runtime. It is an SDK regression
|
|
148
|
-
fixture, not a new Starter workspace or a certification test suite.
|
|
149
|
-
|
|
150
|
-
An adopting host must also test its own installed package, real content
|
|
151
|
-
compatibility, HTTP authorization/invalid-input paths, metadata exclusions and
|
|
152
|
-
responsive UI. Existing data need not be published or uploaded to prove this.
|
|
153
|
-
Keep sensitive evidence internal and expose only an agreed verification report.
|
|
154
|
-
|
|
155
|
-
Spec validation against an exact SDK version is not official certification or
|
|
156
|
-
proof of Runtime compatibility, data migration, or security. Recognition policy
|
|
157
|
-
is tracked separately in [#840](https://github.com/aotter/mantle/issues/840).
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
# Transaction patterns
|
|
2
|
-
|
|
3
|
-
This guide lives in the Examples hub: [`docs/examples/cf-primitives-commerce-inventory.md`](examples/cf-primitives-commerce-inventory.md). The Builder-safe catalog is [`docs/examples/builtin-commerce.md`](examples/builtin-commerce.md).
|
|
4
|
-
|
|
5
|
-
The handbook and examples hub ship inside the `@aotter/mantle` package under `node_modules/@aotter/mantle/docs/` and describe the installed release.
|
package/skills/README.md
DELETED
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
# SKILL.md briefs (mantle)
|
|
2
|
-
|
|
3
|
-
Agent-readable skill briefs for consumers of `@aotter/mantle-*`. Discoverable by URL — no plugin install needed.
|
|
4
|
-
|
|
5
|
-
| Skill | When to invoke |
|
|
6
|
-
|---|---|
|
|
7
|
-
| [`develop`](../docs/skills/develop/SKILL.md) | `mantle:develop`: Core-owned workflow for manifest, runtime, handler, adapter, validation, and MCP work in any Mantle project. |
|
|
8
|
-
| [`integrate`](../docs/skills/integrate/SKILL.md) | `mantle:integrate`: choose and carry out an existing application's Mantle integration or rebuild and data migration. |
|
|
9
|
-
| [`media-gc`](../docs/skills/media-gc/SKILL.md) | `mantle:media-gc`: audit or remove stale uncommitted public media objects with the connected Cloudflare API. |
|
|
10
|
-
| [`plugin`](../docs/skills/plugin/SKILL.md) | `mantle:plugin`: Core-owned marketplace workflow for plan-first capability installs across applications and adapters. |
|
|
11
|
-
| [`theme`](../docs/skills/theme/SKILL.md) | `mantle:theme`: Core-owned visual workflow. Reads project-owned theme and UI contracts. |
|
|
12
|
-
| [`update`](../docs/skills/update/SKILL.md) | `mantle:update`: Core-owned drift check workflow for SDK dependencies, local skills, and plugin lockfiles. |
|
|
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.
|
|
55
|
-
|
|
56
|
-
Run `mantle skills` to project the installed package's skills into a project;
|
|
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.
|
|
61
|
-
|
|
62
|
-
## Source-repository marketplace install
|
|
63
|
-
|
|
64
|
-
`skills/install/SKILL.md` declares `name: mantle`. It is the only repository
|
|
65
|
-
skill discovered by the no-flag command and copied as a small directory.
|
|
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:
|
|
70
|
-
|
|
71
|
-
```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
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
Read the path printed by the installer (for project-local Codex,
|
|
86
|
-
`.agents/skills/mantle/SKILL.md`). Only the selected brief is installed, not
|
|
87
|
-
the SDK or handbook. After choosing and installing an exact SDK version, read
|
|
88
|
-
`node_modules/@aotter/mantle/skills/install/SKILL.md` and its embedded docs;
|
|
89
|
-
that package supersedes the bootstrap Git-ref instructions. After packages are
|
|
90
|
-
installed, `mantle skills` projects the installed package's own skills into the
|
|
91
|
-
project, and `mantle skills --check` fails on drift.
|
|
92
|
-
|
|
93
|
-
Cursor and GitHub Copilot read their manifests from the repository directly.
|
|
94
|
-
These manifests are not duplicated into the npm package:
|
|
95
|
-
|
|
96
|
-
- Claude Code: `.claude-plugin/plugin.json` plus `.claude-plugin/marketplace.json`.
|
|
97
|
-
- Codex: `.codex-plugin/plugin.json` plus `.agents/plugins/marketplace.json`.
|
|
98
|
-
- Cursor: `.cursor-plugin/plugin.json`.
|
|
99
|
-
- VS Code + GitHub Copilot: `.copilot-plugin/plugin.json`.
|
|
100
|
-
|
|
101
|
-
## Audience
|
|
102
|
-
|
|
103
|
-
These are written for **AI agents acting on behalf of consumers of mantle**,
|
|
104
|
-
not for contributors maintaining the Mantle SDK itself. SDK contributors use
|
|
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.
|
|
111
|
-
|
|
112
|
-
## Conventions
|
|
113
|
-
|
|
114
|
-
Each SKILL.md ships:
|
|
115
|
-
|
|
116
|
-
- **Front-matter** with a stable `name`, trigger-complete
|
|
117
|
-
`description`, and optional source/version `metadata`. Plugin hosts add the
|
|
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.
|
package/skills/develop/SKILL.md
DELETED
|
@@ -1,258 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: develop
|
|
3
|
-
description: Work on any Mantle project using the Core SDK contract. Use for manifest, runtime, content model, handler, adapter, validation, and MCP work after a project already exists.
|
|
4
|
-
metadata:
|
|
5
|
-
source: "@aotter/mantle"
|
|
6
|
-
sourcePath: docs/skills/develop/SKILL.md
|
|
7
|
-
applies_to: mantle grammar v0.1
|
|
8
|
-
projection: project
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Mantle Develop
|
|
12
|
-
|
|
13
|
-
This is the Core workflow skill for an existing Mantle project. Repo-local
|
|
14
|
-
copies are byte-for-byte projections from the installed package; its embedded
|
|
15
|
-
docs govern runtime/API behavior.
|
|
16
|
-
|
|
17
|
-
## First Read
|
|
18
|
-
|
|
19
|
-
1. `package.json` for the installed `@aotter/mantle*` versions.
|
|
20
|
-
2. The manifest directory selected by the project scripts, the actual host
|
|
21
|
-
entry and adapter config (for example `wrangler.jsonc` on Cloudflare).
|
|
22
|
-
Read custom Auth construction there when present.
|
|
23
|
-
3. Optional local context: `.mantle/plugins.json`, `.mantle/plugins.lock.json`,
|
|
24
|
-
and `.mantle/recipes/`. Legacy launch/handoff files are context only.
|
|
25
|
-
4. Installed Core docs in `node_modules/@aotter/mantle/docs/`.
|
|
26
|
-
|
|
27
|
-
If `node_modules/` is missing, run `pnpm install --frozen-lockfile` before
|
|
28
|
-
falling back to remote docs. Remote docs must use a tag matching the installed
|
|
29
|
-
version; never use `develop` branch docs for a versioned consumer project.
|
|
30
|
-
|
|
31
|
-
## Existing Examples
|
|
32
|
-
|
|
33
|
-
Read installed `docs/handbook/start/project-and-cli.md` and
|
|
34
|
-
`docs/examples/README.md`. Use `docs/examples/host-minimal-worker/` for Spec +
|
|
35
|
-
adapter without Admin. Read `docs/examples/host-local-admin-otp/` only when the
|
|
36
|
-
project already has Admin or the human asked for Dev UI — that path is opt-in.
|
|
37
|
-
Ingest only `docs/examples/builtin-*.md` Manifests as grammar for new domains.
|
|
38
|
-
Read `docs/examples/cf-primitives-*.md` before inventing Durable Object, Queue,
|
|
39
|
-
cron, or `ref` handler patterns.
|
|
40
|
-
References are test/documentation, not a Starter or a fixed application shape.
|
|
41
|
-
|
|
42
|
-
Public rendering is opt-in consumer wiring: `mountPublicRoutes`, a
|
|
43
|
-
`TemplateRegistry`, and a matching `publicPathResolver` must agree on the
|
|
44
|
-
exposed collections. Do not auto-publish every Schema. Applications document their mounted URL surface in their own README.
|
|
45
|
-
Import the registry and resolver from `@aotter/mantle/web`; Core runtime does
|
|
46
|
-
not install public rendering by itself.
|
|
47
|
-
|
|
48
|
-
## Authoring CLI
|
|
49
|
-
|
|
50
|
-
Use the project's scripts first; applications use the shipping
|
|
51
|
-
`mantle` authoring CLI from `@aotter/mantle`. Ask the installed CLI for its
|
|
52
|
-
command list instead of trusting one copied into prose — the surface is
|
|
53
|
-
version-matched and changes between releases:
|
|
54
|
-
|
|
55
|
-
```bash
|
|
56
|
-
pnpm exec mantle --help
|
|
57
|
-
pnpm validate
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
On 0.1.5 and newer, `generate --host cf|chatgpt-sites` assembles a new blank
|
|
61
|
-
app; no `--features` selects Spec, Runtime, API, MCP, Admin and Web. Explicit
|
|
62
|
-
`--features` selects a smaller composition. It never invents a business
|
|
63
|
-
Schema. Existing authored apps keep compile mode, and older installed CLIs
|
|
64
|
-
may not support project generation. Check this project's CLI help first.
|
|
65
|
-
|
|
66
|
-
## Core Model
|
|
67
|
-
|
|
68
|
-
Mantle exposes exactly four declarative atoms:
|
|
69
|
-
|
|
70
|
-
| Atom | Purpose |
|
|
71
|
-
|---|---|
|
|
72
|
-
| `Schema` | Stored entity/table shape. |
|
|
73
|
-
| `View` | Read/query surface. |
|
|
74
|
-
| `Procedure` | Typed mutation or operation. |
|
|
75
|
-
| `Trigger` | HTTP/lifecycle/MCP invocation binding. |
|
|
76
|
-
|
|
77
|
-
Do not invent manifest kinds such as `Form`, `Feature`, `Workflow`, or
|
|
78
|
-
`Membership`. Compose those from the four atoms plus TypeScript only where
|
|
79
|
-
the atoms cannot express the behavior.
|
|
80
|
-
|
|
81
|
-
## Choose the manifest feature first
|
|
82
|
-
|
|
83
|
-
Read installed `docs/handbook/reference/features.md` to map the requested
|
|
84
|
-
behavior to fields before adding handlers or a custom UI. For host-only reads,
|
|
85
|
-
`surface: internal` keeps a View out of REST/MCP/Admin while preserving its
|
|
86
|
-
`requires` checks. Read `docs/handbook/guides/typed-queries.md` for generated
|
|
87
|
-
View params/results, indexed entry reads, and their authorization boundary.
|
|
88
|
-
Use `from` for portable typed projections; SQL is for queries needing native
|
|
89
|
-
SQLite and produces `unknown` row types.
|
|
90
|
-
|
|
91
|
-
For Admin labels, inputs, collection columns/tabs, reports or action buttons,
|
|
92
|
-
read `docs/handbook/guides/admin-ui.md`. Prefer supported Schema/Procedure/View
|
|
93
|
-
metadata and `uiSchema` before custom frontend code. These control the Admin
|
|
94
|
-
console, not the visitor frontend. Regenerate and verify the actual console;
|
|
95
|
-
never edit generated `public/_mantle/admin/` assets.
|
|
96
|
-
|
|
97
|
-
## Content Edits
|
|
98
|
-
|
|
99
|
-
- Follow the actual frontend content source. Use Admin or Staff MCP for
|
|
100
|
-
runtime-backed content. Do not invent an overlay/seed homepage.
|
|
101
|
-
- For a new submitted field, update the stored `Schema` and the public
|
|
102
|
-
`Procedure.spec.input` before any form UI. Keep public mutation inputs
|
|
103
|
-
`additionalProperties: false`; otherwise JSON Schema's default may strip an
|
|
104
|
-
undeclared field while returning success.
|
|
105
|
-
- Use `lifecycle: operational` for submissions, inquiries, orders, and other
|
|
106
|
-
Procedure-created operational records that staff inspect or correct. Reserve
|
|
107
|
-
`publishing` for content a person stages and publishes.
|
|
108
|
-
- Lifecycle `before_update` / `after_update` hooks also fire for unpublish,
|
|
109
|
-
archive, and every other status transition whose target is not `published`;
|
|
110
|
-
do not use them for edit-only work.
|
|
111
|
-
- When a form's fixed option values change, update the stored Schema and public
|
|
112
|
-
Procedure input `enum` together. Keep translated labels in the frontend content source;
|
|
113
|
-
Admin and Staff MCP derive their typed controls from the manifest values.
|
|
114
|
-
- If the application has a `page` Schema with sections, update its declared
|
|
115
|
-
section properties when adding display fields; an undeclared property has no
|
|
116
|
-
runtime-backed Admin or Staff MCP path.
|
|
117
|
-
- Update notification handlers when they need the new field. Test the stored
|
|
118
|
-
entry, not only the HTTP `{ "ok": true }` response.
|
|
119
|
-
|
|
120
|
-
## Locales
|
|
121
|
-
|
|
122
|
-
- `data.locale` is reserved for `localized: true` Schemas. A non-localized
|
|
123
|
-
Schema must use a domain field such as `replyLocale`.
|
|
124
|
-
- Use a standalone localized Schema only for independent locale rows. For
|
|
125
|
-
versions of one entity, use a non-localized parent plus a localized child
|
|
126
|
-
with `translates: { parent, on }`. The child must own at least one field
|
|
127
|
-
besides `locale` and the join field.
|
|
128
|
-
- Parallel locale blocks must keep field names, option values, step IDs, and
|
|
129
|
-
result keys identical; translate display strings only.
|
|
130
|
-
- `siteDefaults.origin`, `siteDefaults.locales`, and `siteDefaults.icons` are
|
|
131
|
-
code-owned and boot-synced. The icon list is shared by browser favicons,
|
|
132
|
-
Admin chrome, and MCP `serverInfo.icons`; keep its static files under
|
|
133
|
-
`public/`. Brand, title, and description seed once, then change through site
|
|
134
|
-
settings.
|
|
135
|
-
- When changing an existing collection from `[slug]` to `[slug, locale]`,
|
|
136
|
-
boot with a Mantle version that reconciles obsolete unique indexes and test
|
|
137
|
-
the same slug in two locales. Do not patch D1 manually.
|
|
138
|
-
|
|
139
|
-
## Adapter Boundary
|
|
140
|
-
|
|
141
|
-
The runtime is adapter-neutral. A `MantleStorageAdapter` prepares the compiled
|
|
142
|
-
plan into semantic storage ports; `createMantleRuntime` binds that prepared
|
|
143
|
-
storage and selected capabilities. Database drivers and asset serving belong
|
|
144
|
-
to the host/optional composition. Follow the installed adapter guide.
|
|
145
|
-
|
|
146
|
-
Do not assume Cloudflare unless the project imports `@aotter/mantle/cloudflare`
|
|
147
|
-
or its adapter config is visible. A future Netlify adapter should satisfy the
|
|
148
|
-
same Core workflow through its own ports and provider setup.
|
|
149
|
-
|
|
150
|
-
Site code is a consumer of this abstraction. Use Manifests, runtime use cases,
|
|
151
|
-
`runtime.entries`, and optional `runtime.siteConfig`; do not query Mantle-owned `entries` or
|
|
152
|
-
`site_config`, reach through deprecated `runtime.db`, copy generated-column
|
|
153
|
-
names, or construct SDK KV keys. Cloudflare bindings belong only at the
|
|
154
|
-
composition root. If a normal feature cannot be expressed through a
|
|
155
|
-
purpose-shaped surface, treat that as a Core abstraction gap instead of
|
|
156
|
-
teaching the project Mantle internals.
|
|
157
|
-
|
|
158
|
-
## Auth Composition
|
|
159
|
-
|
|
160
|
-
Generated full apps select Admin by default; smaller selections can omit it.
|
|
161
|
-
A project without `@aotter/mantle-admin-ui` is complete when Admin was not
|
|
162
|
-
selected. If Admin was selected but its package is missing, install the
|
|
163
|
-
CLI-declared exact version and rerun generation.
|
|
164
|
-
When Admin is installed, `createMantleWorker({ auth })` with `email-otp`
|
|
165
|
-
and `ConsoleEmailSender` is the local human path (OTP in wrangler logs).
|
|
166
|
-
That override owns Auth construction; Core still owns `/admin` and
|
|
167
|
-
`/api/auth/*`. Admin also requires wrangler `assets.directory=./public`
|
|
168
|
-
and an `ASSETS` binding. A white screen at `/admin` with HTML 200 and
|
|
169
|
-
`/_mantle/admin/assets/*` 404 is a missing assets binding, not a missing
|
|
170
|
-
frontend build.
|
|
171
|
-
|
|
172
|
-
Generated Cloudflare apps use `MANTLE_AUTH_MODE=local-otp` on loopback after
|
|
173
|
-
copying `.dev.vars.example` to `.dev.vars` and setting a real owner email and
|
|
174
|
-
random secret. Production uses `hosted` or `self-managed` with provider
|
|
175
|
-
credentials and `ADMIN_GITHUB_LOGIN`. Conventional Cloudflare projects that
|
|
176
|
-
do not replace Auth use those two production modes; Core owns that standard
|
|
177
|
-
composition and rejects partial or mixed bindings. Preserve the explicit
|
|
178
|
-
mode recorded in Worker config, keep provider secrets out of source, and
|
|
179
|
-
do not infer a mode from whichever credentials happen to be present.
|
|
180
|
-
|
|
181
|
-
## Performance Loop
|
|
182
|
-
|
|
183
|
-
After changing a Schema index, View filter/order, public API, or rendered page,
|
|
184
|
-
run the project's index check when present. Otherwise run the installed
|
|
185
|
-
harness directly:
|
|
186
|
-
|
|
187
|
-
```bash
|
|
188
|
-
pnpm exec mantle-harness indexes --require-public --format text
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
The check uses crowded real SQLite and the shipped compiler. It complements
|
|
192
|
-
`pnpm validate`; it does not replace correctness validation. Declare the
|
|
193
|
-
smallest ordered index justified by the measured path and respect SQLite's
|
|
194
|
-
leftmost-prefix rule; which columns an index may name and how a public View's
|
|
195
|
-
status predicate shapes it is in the handbook (`reference/schema.md#indexes`).
|
|
196
|
-
Do not change user-visible filter or ordering semantics
|
|
197
|
-
just to make the gate pass. Do not add every permutation or cache every read.
|
|
198
|
-
|
|
199
|
-
For relevant Cloudflare serving changes, start the project and sample the
|
|
200
|
-
actual routes:
|
|
201
|
-
|
|
202
|
-
```bash
|
|
203
|
-
pnpm exec mantle-harness http \
|
|
204
|
-
--base-url http://127.0.0.1:8787 \
|
|
205
|
-
--route page=/en/example \
|
|
206
|
-
--rounds 20 --warmup 2 --format text
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
Prefer query plan, query count, `rows_read` scaling, and cache MISS/HIT
|
|
210
|
-
evidence. Do not create CI gates from absolute local milliseconds.
|
|
211
|
-
|
|
212
|
-
## Loop
|
|
213
|
-
|
|
214
|
-
```bash
|
|
215
|
-
pnpm install --frozen-lockfile
|
|
216
|
-
pnpm validate
|
|
217
|
-
pnpm check:indexes # when the project provides it
|
|
218
|
-
pnpm typecheck
|
|
219
|
-
pnpm check
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
Use `pnpm dev` for local preview when the project provides it.
|
|
223
|
-
|
|
224
|
-
## Connect a Local MCP Client
|
|
225
|
-
|
|
226
|
-
Start the project with `pnpm dev`, then use the exact local origin it prints.
|
|
227
|
-
The conventional Cloudflare adapter exposes:
|
|
228
|
-
|
|
229
|
-
- `http://localhost:8787/mcp` for public tools;
|
|
230
|
-
- `http://localhost:8787/mcp/staff` for authenticated authoring tools.
|
|
231
|
-
|
|
232
|
-
Prefer the client's native remote HTTP + OAuth support. Use a standard
|
|
233
|
-
HTTP-to-stdio bridge such as `npx -y mcp-remote <url>` only when the client
|
|
234
|
-
accepts stdio MCP servers but cannot connect to remote HTTP directly. Mantle
|
|
235
|
-
does not own a separate local proxy or an auth-bypass mode.
|
|
236
|
-
|
|
237
|
-
Before changing client config, confirm the Worker is reachable:
|
|
238
|
-
|
|
239
|
-
```bash
|
|
240
|
-
curl -i http://localhost:8787/mcp
|
|
241
|
-
```
|
|
242
|
-
|
|
243
|
-
An OAuth-protected endpoint should respond with `401` and a
|
|
244
|
-
`WWW-Authenticate` resource-metadata challenge before sign-in. After
|
|
245
|
-
connecting, inspect `tools/list`; make one read-only `query_view_*` call when
|
|
246
|
-
available before invoking any mutation. Use project-scoped client config when
|
|
247
|
-
the client offers it, and never commit OAuth tokens or the bridge's token
|
|
248
|
-
cache.
|
|
249
|
-
|
|
250
|
-
## Rules
|
|
251
|
-
|
|
252
|
-
- Keep content models in the configured manifest directory; its immediate
|
|
253
|
-
`.yaml` and `.yml` files are loaded together.
|
|
254
|
-
- Add TypeScript only for handlers, rendering, adapter wiring, or real behavior.
|
|
255
|
-
- Do not write directly to D1, KV, Postgres, or object storage for content
|
|
256
|
-
authoring. Use runtime use cases, admin APIs, or Staff MCP.
|
|
257
|
-
- Do not commit provider secrets.
|
|
258
|
-
- If the work is an installable capability, switch to `mantle:plugin`.
|
package/skills/install/SKILL.md
DELETED
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: mantle
|
|
3
|
-
description: Set up a new Mantle application or continue an existing one using the installed SDK's matching instructions.
|
|
4
|
-
metadata:
|
|
5
|
-
source: "@aotter/mantle"
|
|
6
|
-
sourcePath: skills/install/SKILL.md
|
|
7
|
-
applies_to: mantle grammar v0.1
|
|
8
|
-
projection: plugin
|
|
9
|
-
projectionReason: Creates a new project; nothing to project into an existing one.
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# Mantle
|
|
13
|
-
|
|
14
|
-
`npx skills add aotter/mantle` installs this small bootstrap skill. It does not
|
|
15
|
-
install the SDK or create a project. The skill name is `mantle`; the source
|
|
16
|
-
folder remains `skills/install/` so installation does not copy the repository.
|
|
17
|
-
|
|
18
|
-
## Find the application and its version
|
|
19
|
-
|
|
20
|
-
First locate the user's target project. If it already has `@aotter/mantle`,
|
|
21
|
-
read that project's `package.json`, lockfile, and
|
|
22
|
-
`node_modules/@aotter/mantle/package.json`. Follow the CLI and docs shipped in
|
|
23
|
-
that exact installed package. Never use another project's dependencies, the
|
|
24
|
-
SDK checkout, a floating GitHub handbook, or an old alpha/Starter fallback.
|
|
25
|
-
An older installed SDK may only support direct authoring; its own
|
|
26
|
-
`mantle generate --help` decides which flags exist. Upgrade only when requested.
|
|
27
|
-
|
|
28
|
-
For a new project, choose `cf` or `chatgpt-sites` from the request; ask only if
|
|
29
|
-
it remains ambiguous. A host-free Spec-only project needs no host. Resolve the
|
|
30
|
-
latest **published stable** `@aotter/mantle` version from npm once, confirm it
|
|
31
|
-
is not a prerelease, and install it with an exact version in the new project.
|
|
32
|
-
For example, run `npm view @aotter/mantle@latest version`, inspect the returned
|
|
33
|
-
plain `X.Y.Z`, then `npm install --save-exact @aotter/mantle@X.Y.Z` with that
|
|
34
|
-
actual version substituted. Set `type=module` in `package.json` first; npm's
|
|
35
|
-
default project type may be CommonJS.
|
|
36
|
-
When testing a release candidate, use the explicitly supplied exact version
|
|
37
|
-
or local tarball instead of npm latest. Pin every selected `@aotter/mantle*`
|
|
38
|
-
package to the running CLI's exact version; `generate` writes the required
|
|
39
|
-
package declarations. Do not let npm's default `^` range remain. If the
|
|
40
|
-
project registry overrides public npmjs, set `@aotter:registry=https://registry.npmjs.org/`
|
|
41
|
-
in a project-owned `.npmrc`.
|
|
42
|
-
|
|
43
|
-
## New project sequence
|
|
44
|
-
|
|
45
|
-
1. Create a separate application directory with Node 22+ and a project
|
|
46
|
-
`package.json` containing `"type":"module"`. Install the exact chosen
|
|
47
|
-
`@aotter/mantle` version locally. Read its
|
|
48
|
-
`node_modules/@aotter/mantle/skills/install/SKILL.md` and version-matched
|
|
49
|
-
`docs/handbook/start/overview.md` before continuing. These installed
|
|
50
|
-
instructions take precedence over this GitHub bootstrap copy. Check
|
|
51
|
-
`npx mantle generate --help`: if it does not list `--host`, follow the
|
|
52
|
-
installed version's direct-authoring path instead of the steps below.
|
|
53
|
-
2. On a CLI that supports it, run with an explicit host, for example
|
|
54
|
-
`npx mantle generate --host cf` or `npx mantle generate --host chatgpt-sites`.
|
|
55
|
-
No `--features` means Spec, Runtime, API, MCP, Admin and a blank editable
|
|
56
|
-
home. For a smaller app, positively list the modules with `--features`
|
|
57
|
-
(for example `spec,api`); use `--features spec` for a host-free compiler.
|
|
58
|
-
Do not remove Admin merely because its package is not installed yet.
|
|
59
|
-
3. The first run may declare selected dependencies and exit asking for an
|
|
60
|
-
install. Install them using the project's package manager, then rerun
|
|
61
|
-
`mantle generate` to finish. Read `docs/handbook/start/project-and-cli.md`
|
|
62
|
-
from the same installed package for saved selections, owned files,
|
|
63
|
-
`--check`.
|
|
64
|
-
4. Before adding a Schema on ChatGPT Sites, review and apply its initial local
|
|
65
|
-
D1 migration as the installed Sites guide says. Then add only the user's
|
|
66
|
-
Schema, View, Procedure and Trigger manifests. Keep the blank home editable;
|
|
67
|
-
do not invent business data or media bindings. Run `mantle generate` to
|
|
68
|
-
append any new migration, review and apply it, then run `generate --check`,
|
|
69
|
-
`validate`, `skills`, build/typecheck and local smoke.
|
|
70
|
-
5. For Cloudflare, follow installed `docs/handbook/start/project-and-cli.md`
|
|
71
|
-
and `docs/handbook/cloudflare/authentication.md`. Copy `.dev.vars.example`
|
|
72
|
-
to `.dev.vars`, set `ADMIN_EMAIL` and `BETTER_AUTH_SECRET`, and match
|
|
73
|
-
`PUBLIC_ORIGIN` to the loopback URL printed by `wrangler dev`. Open
|
|
74
|
-
`/admin/sign-in` with that email; read the OTP from wrangler logs. Check
|
|
75
|
-
Admin assets and an owner-only Admin API before claiming Admin works. For
|
|
76
|
-
ChatGPT Sites, follow installed
|
|
77
|
-
`docs/handbook/chatgpt-sites/generated-app.md`: review and apply local D1
|
|
78
|
-
migrations, set `OWNER_EMAIL` and `PUBLIC_ORIGIN`, then test the blank home,
|
|
79
|
-
unauthorized Admin, owner Admin, public MCP and staff MCP. Local owner
|
|
80
|
-
identity is simulated by the loopback-only smoke; it does not create a
|
|
81
|
-
browser ChatGPT session. Sites owns
|
|
82
|
-
production identity and deployment; do not deploy its Worker directly.
|
|
83
|
-
Browser Admin WebMCP and Sites-session `/api/mcp/staff` do not provide
|
|
84
|
-
remote staff OAuth MCP. The owner can maintain content through Admin and
|
|
85
|
-
the applicable authenticated MCP surface.
|
|
86
|
-
|
|
87
|
-
Use installed `docs/handbook/reference/features.md` for Manifest choices and
|
|
88
|
-
`docs/examples/` for optional examples. The generated project is the starting
|
|
89
|
-
point; a domain example is not a template to copy wholesale. Do not use a
|
|
90
|
-
`mantle-starters` tag or `mantle create`.
|
|
91
|
-
|
|
92
|
-
## Existing project and handoff
|
|
93
|
-
|
|
94
|
-
For an application that already uses Mantle, preserve selected features,
|
|
95
|
-
user-authored files, migrations, package versions, identity settings and
|
|
96
|
-
provider resources. Use its installed CLI's `--help` and package-local docs.
|
|
97
|
-
Run `generate --check` without writing, then the project's normal tests.
|
|
98
|
-
|
|
99
|
-
When the request is to add Mantle to an independently authored application,
|
|
100
|
-
inspect its host, code and data first. Use the exact installed package's
|
|
101
|
-
`docs/skills/integrate/SKILL.md` if available. If Mantle is not installed,
|
|
102
|
-
choose between selective embedding, incremental replacement and creating a
|
|
103
|
-
separate Mantle app followed by frontend/data migration before installing an
|
|
104
|
-
exact SDK version. The existing application does not need to adopt the
|
|
105
|
-
generated project's entry or directory layout. An older SDK's own docs and
|
|
106
|
-
CLI govern its behavior; upgrade deliberately if the selected strategy needs
|
|
107
|
-
newer capabilities.
|
|
108
|
-
|
|
109
|
-
When deployment is requested, read the installed version's
|
|
110
|
-
`skills/provision/SKILL.md`. Report the target path, exact SDK version, local
|
|
111
|
-
HTTP results, Admin/MCP identity evidence, and any missing provider setup.
|
|
112
|
-
Local simulated Sites headers do not prove deployed ChatGPT sign-in.
|