@aotter/mantle 0.2.0-alpha.5 → 0.2.0-alpha.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (932) hide show
  1. package/README.md +152 -45
  2. package/dist/auth/adapter.d.ts +32 -0
  3. package/dist/auth/adapter.js +285 -0
  4. package/dist/auth/admin.d.ts +3 -0
  5. package/dist/auth/admin.js +21 -0
  6. package/dist/auth/caller.d.ts +86 -0
  7. package/dist/auth/caller.js +154 -0
  8. package/dist/auth/hardening.d.ts +24 -0
  9. package/dist/auth/hardening.js +40 -0
  10. package/dist/auth/identity.d.ts +121 -0
  11. package/dist/auth/identity.js +203 -0
  12. package/dist/auth/oauth.d.ts +31 -0
  13. package/dist/auth/oauth.js +124 -0
  14. package/dist/auth/resource-seeds.js +10 -0
  15. package/dist/auth/routes.d.ts +32 -0
  16. package/dist/auth/{createAuthRoutes.js → routes.js} +130 -35
  17. package/dist/build/compiler.d.ts +790 -0
  18. package/dist/build/compiler.js +6971 -0
  19. package/dist/{spec → build/spec}/domain/model/ManifestGrammar.d.ts +28 -42
  20. package/dist/{spec → build/spec}/domain/model/RuntimePlan.d.ts +77 -3
  21. package/dist/{spec → build/spec}/domain/model/SqlIr.d.ts +35 -6
  22. package/dist/build/spec/domain/model/UserFields.d.ts +20 -0
  23. package/dist/{spec → build/spec}/domain/service/PlanFingerprint.d.ts +2 -1
  24. package/dist/{spec → build/spec}/kernel/diagnostic.d.ts +1 -30
  25. package/dist/bun/assets.d.ts +2 -0
  26. package/dist/bun/assets.js +24 -0
  27. package/dist/domain/adminOrder.js +24 -0
  28. package/dist/domain/columns.js +55 -0
  29. package/dist/domain/describe/chunk-ZIQVLA7X.js +363 -0
  30. package/dist/domain/describe/index.d.ts +58 -0
  31. package/dist/domain/describe/index.js +115 -0
  32. package/dist/domain/describe/target-hash.d.ts +8 -0
  33. package/dist/domain/describe/target-hash.js +12 -0
  34. package/dist/domain/describe/targets.d.ts +40 -0
  35. package/dist/domain/entry.js +33 -0
  36. package/dist/domain/generated-tools.js +17 -0
  37. package/dist/domain/generation.d.ts +16 -0
  38. package/dist/domain/generation.js +1 -0
  39. package/dist/domain/input.js +17 -0
  40. package/dist/domain/model.js +1 -0
  41. package/dist/domain/paging.js +204 -0
  42. package/dist/domain/recipes.js +19 -0
  43. package/dist/domain/userReferences.js +5 -0
  44. package/dist/domain/wireScalars.js +47 -0
  45. package/dist/infrastructure/adminEntries.js +153 -0
  46. package/dist/infrastructure/adminPaging.js +72 -0
  47. package/dist/infrastructure/artifacts.js +71 -0
  48. package/dist/infrastructure/authSchema.js +83 -0
  49. package/dist/infrastructure/bundle.js +84 -0
  50. package/dist/infrastructure/cli.js +101 -0
  51. package/dist/infrastructure/generate.d.ts +14 -0
  52. package/dist/infrastructure/generate.js +174 -0
  53. package/dist/infrastructure/generateAuth.d.ts +8 -0
  54. package/dist/infrastructure/generateAuth.js +17 -0
  55. package/dist/infrastructure/inputs.js +36 -0
  56. package/dist/infrastructure/wrangler.js +71 -0
  57. package/dist/kernel/authorization.d.ts +4 -0
  58. package/dist/kernel/authorization.js +16 -0
  59. package/dist/kernel/binds.d.ts +51 -0
  60. package/dist/kernel/binds.js +45 -0
  61. package/dist/kernel/caller-identity.d.ts +24 -0
  62. package/dist/kernel/caller-identity.js +22 -0
  63. package/dist/kernel/contract-error.d.ts +12 -0
  64. package/dist/kernel/contract-error.js +14 -0
  65. package/dist/kernel/contracts.d.ts +139 -0
  66. package/dist/kernel/contracts.js +92 -0
  67. package/dist/{spec/domain/service/CloudflareCron.d.ts → kernel/cron.d.ts} +0 -1
  68. package/dist/{spec/domain/service/CloudflareCron.js → kernel/cron.js} +1 -6
  69. package/dist/kernel/dialect/common.d.ts +39 -0
  70. package/dist/kernel/dialect/common.js +6 -0
  71. package/dist/kernel/dialect/postgres.d.ts +16 -0
  72. package/dist/kernel/dialect/postgres.js +18 -0
  73. package/dist/kernel/dialect/sqlite.d.ts +20 -0
  74. package/dist/kernel/dialect/sqlite.js +34 -0
  75. package/dist/kernel/driver/bun-sqlite.d.ts +19 -0
  76. package/dist/kernel/driver/bun-sqlite.js +77 -0
  77. package/dist/kernel/driver/d1.d.ts +24 -0
  78. package/dist/kernel/driver/d1.js +22 -0
  79. package/dist/kernel/driver/postgres.d.ts +25 -0
  80. package/dist/kernel/driver/postgres.js +95 -0
  81. package/dist/kernel/driver/transaction-context.d.ts +10 -0
  82. package/dist/kernel/driver/transaction-context.js +29 -0
  83. package/dist/kernel/email.d.ts +28 -0
  84. package/dist/{auth/emailTemplates.js → kernel/email.js} +13 -2
  85. package/dist/kernel/host-access.d.ts +10 -0
  86. package/dist/kernel/host-access.js +65 -0
  87. package/dist/kernel/host-caller.d.ts +38 -0
  88. package/dist/kernel/host-caller.js +55 -0
  89. package/dist/kernel/json-body.d.ts +4 -0
  90. package/dist/kernel/json-body.js +44 -0
  91. package/dist/kernel/mcp-apps.d.ts +49 -0
  92. package/dist/kernel/mcp-apps.js +40 -0
  93. package/dist/kernel/mcp-call.d.ts +5 -0
  94. package/dist/kernel/mcp-call.js +25 -0
  95. package/dist/kernel/mcp-handler.js +288 -0
  96. package/dist/kernel/mcp.d.ts +101 -0
  97. package/dist/kernel/mcp.js +25 -0
  98. package/dist/kernel/media.d.ts +27 -0
  99. package/dist/kernel/media.js +216 -0
  100. package/dist/kernel/paging.d.ts +55 -0
  101. package/dist/kernel/paging.js +95 -0
  102. package/dist/kernel/publishing.d.ts +4 -0
  103. package/dist/kernel/publishing.js +16 -0
  104. package/dist/{cloudflare/r2Media.d.ts → kernel/r2-media.d.ts} +4 -5
  105. package/dist/kernel/r2-media.js +78 -0
  106. package/dist/kernel/rest-dispatch.js +38 -0
  107. package/dist/kernel/rest-router.js +63 -0
  108. package/dist/kernel/rest.d.ts +58 -0
  109. package/dist/kernel/rest.js +41 -0
  110. package/dist/kernel/scalars.d.ts +6 -0
  111. package/dist/kernel/scalars.js +43 -0
  112. package/dist/kernel/search.js +5 -0
  113. package/dist/{core/site.d.ts → kernel/site-types.d.ts} +38 -9
  114. package/dist/kernel/site-types.js +1 -0
  115. package/dist/kernel/site.d.ts +41 -0
  116. package/dist/kernel/site.js +32 -0
  117. package/dist/kernel/store.d.ts +165 -0
  118. package/dist/kernel/store.js +257 -0
  119. package/dist/kernel/surface.d.ts +10 -0
  120. package/dist/kernel/surface.js +19 -0
  121. package/dist/kernel/sweep.d.ts +17 -0
  122. package/dist/kernel/sweep.js +27 -0
  123. package/dist/kernel/translations.d.ts +1 -0
  124. package/dist/kernel/translations.js +13 -0
  125. package/dist/kernel/user-caller.d.ts +31 -0
  126. package/dist/kernel/user-caller.js +67 -0
  127. package/dist/kernel/user-field-name.js +3 -0
  128. package/dist/kernel/user-fields.d.ts +34 -0
  129. package/dist/kernel/user-fields.js +71 -0
  130. package/dist/kernel/validation.d.ts +15 -0
  131. package/dist/kernel/validation.js +54 -0
  132. package/dist/kernel/web-gateway.js +68 -0
  133. package/dist/kernel/web-head.js +15 -0
  134. package/dist/kernel/web-response.js +8 -0
  135. package/dist/kernel/web.d.ts +75 -0
  136. package/dist/kernel/web.js +155 -0
  137. package/dist/kernel/where.js +27 -0
  138. package/dist/testing/index.d.ts +1 -37
  139. package/dist/testing/index.js +1 -43
  140. package/dist/usecase/adminBindings.js +142 -0
  141. package/dist/usecase/adminDescriptors.js +153 -0
  142. package/dist/usecase/generate.js +164 -0
  143. package/dist/usecase/handlers.js +21 -0
  144. package/dist/usecase/mcp-media.js +17 -0
  145. package/dist/usecase/mcp.js +96 -0
  146. package/dist/usecase/paging.js +72 -0
  147. package/dist/usecase/publishing.js +63 -0
  148. package/dist/usecase/refusals.js +27 -0
  149. package/dist/usecase/rest.js +54 -0
  150. package/dist/usecase/search.js +7 -0
  151. package/dist/usecase/site.js +40 -0
  152. package/dist/usecase/stores.js +62 -0
  153. package/dist/usecase/translations.js +78 -0
  154. package/dist/usecase/ttl.js +20 -0
  155. package/dist/usecase/validation.js +132 -0
  156. package/dist/usecase/web.js +22 -0
  157. package/docs/examples/README.md +31 -16
  158. package/docs/examples/app-shell/README.md +48 -0
  159. package/docs/examples/app-shell/package.json +34 -0
  160. package/docs/examples/app-shell/pnpm-workspace.yaml +8 -0
  161. package/docs/examples/app-shell/smoke-kit.mjs +100 -0
  162. package/docs/examples/app-shell/src/admin.ts +10 -0
  163. package/docs/examples/app-shell/src/auth.ts +55 -0
  164. package/docs/examples/app-shell/src/handlers.ts +5 -0
  165. package/docs/examples/app-shell/src/index.ts +4 -0
  166. package/docs/examples/app-shell/src/routes.ts +13 -0
  167. package/docs/examples/app-shell/src/schedule.ts +8 -0
  168. package/docs/examples/app-shell/src/service.ts +70 -0
  169. package/docs/examples/app-shell/src/sign-in.ts +41 -0
  170. package/docs/examples/app-shell/src/signup.ts +8 -0
  171. package/docs/examples/{reference-service → app-shell}/tsconfig.json +2 -1
  172. package/docs/examples/app-shell/worker-configuration.d.ts +22 -0
  173. package/docs/examples/app-shell/wrangler.jsonc +61 -0
  174. package/docs/examples/club-events/README.md +60 -0
  175. package/docs/examples/club-events/manifests/club-events.yaml +225 -0
  176. package/docs/examples/club-events/smoke.mjs +121 -0
  177. package/docs/examples/club-events/src/handlers.ts +25 -0
  178. package/docs/examples/club-events/src/signup.ts +9 -0
  179. package/docs/examples/generated-web/README.md +74 -0
  180. package/docs/examples/generated-web/posts.yaml +38 -0
  181. package/docs/examples/generated-web/seed.sql +6 -0
  182. package/docs/examples/generated-web/src/worker.ts +43 -0
  183. package/docs/examples/generated-web/tsconfig.json +8 -0
  184. package/docs/examples/generated-web/wrangler.jsonc +7 -0
  185. package/docs/examples/purchasing/.dev.vars.example +6 -0
  186. package/docs/examples/purchasing/README.md +90 -0
  187. package/docs/examples/purchasing/manifests/purchasing.yaml +341 -0
  188. package/docs/examples/purchasing/seed.sql +4 -0
  189. package/docs/examples/purchasing/smoke.mjs +171 -0
  190. package/docs/examples/purchasing/src/admin.ts +12 -0
  191. package/docs/examples/purchasing/src/handlers.ts +33 -0
  192. package/docs/examples/purchasing/src/notify.ts +29 -0
  193. package/docs/examples/purchasing/src/requests-page.ts +57 -0
  194. package/docs/examples/purchasing/src/routes.ts +53 -0
  195. package/docs/examples/purchasing/src/schedule.ts +31 -0
  196. package/docs/examples/purchasing/src/signup.ts +5 -0
  197. package/docs/examples/purchasing/src/supplier.ts +32 -0
  198. package/docs/examples/purchasing/wrangler.jsonc +68 -0
  199. package/docs/examples/recipes/README.md +58 -0
  200. package/docs/examples/recipes/manifests/recipes.yaml +75 -0
  201. package/docs/examples/recipes/smoke.mjs +102 -0
  202. package/docs/examples/recipes/src/media.ts +13 -0
  203. package/docs/examples/recipes/src/pages.ts +99 -0
  204. package/docs/examples/recipes/src/routes.ts +71 -0
  205. package/docs/examples/recipes/src/site-config.ts +12 -0
  206. package/docs/examples/recipes/wrangler.jsonc +73 -0
  207. package/docs/handbook/cloudflare/authentication.md +142 -212
  208. package/docs/handbook/cloudflare/chatgpt-sites.md +4 -113
  209. package/docs/handbook/cloudflare/deploy-and-operate.md +20 -103
  210. package/docs/handbook/cloudflare/media-r2.md +62 -133
  211. package/docs/handbook/cloudflare/service-entry.md +180 -116
  212. package/docs/handbook/concepts/authorization.md +10 -123
  213. package/docs/handbook/concepts/four-atoms.md +9 -92
  214. package/docs/handbook/concepts/lifecycle-and-locales.md +9 -80
  215. package/docs/handbook/concepts/mcp-and-agents.md +10 -141
  216. package/docs/handbook/concepts/procedures-and-triggers.md +5 -162
  217. package/docs/handbook/concepts/runtime-and-adapters.md +15 -183
  218. package/docs/handbook/concepts/views.md +10 -109
  219. package/docs/handbook/examples/hub.md +2 -18
  220. package/docs/handbook/guides/adapter-guide.md +11 -0
  221. package/docs/handbook/guides/admin-extensions.md +20 -0
  222. package/docs/handbook/guides/admin-ui.md +5 -163
  223. package/docs/handbook/guides/agent-setup.md +5 -18
  224. package/docs/handbook/guides/email.md +86 -0
  225. package/docs/handbook/guides/mcp-apps.md +44 -0
  226. package/docs/handbook/guides/native-admin.md +298 -0
  227. package/docs/handbook/guides/native-execution.md +132 -0
  228. package/docs/handbook/guides/oauth.md +105 -0
  229. package/docs/handbook/guides/postgres-adapters.md +56 -0
  230. package/docs/handbook/guides/public-pages.md +53 -0
  231. package/docs/handbook/guides/size-and-startup.md +9 -0
  232. package/docs/handbook/guides/typed-queries.md +39 -102
  233. package/docs/handbook/navigation.json +164 -30
  234. package/docs/handbook/reference/admin-descriptors.md +88 -0
  235. package/docs/handbook/reference/authorization.md +44 -52
  236. package/docs/handbook/reference/describe.md +56 -0
  237. package/docs/handbook/reference/diagnostics.md +15 -78
  238. package/docs/handbook/reference/features.md +45 -53
  239. package/docs/handbook/reference/manifest.md +6 -69
  240. package/docs/handbook/reference/procedure.md +9 -117
  241. package/docs/handbook/reference/schema.md +65 -172
  242. package/docs/handbook/reference/site-config.md +5 -65
  243. package/docs/handbook/reference/surface.md +279 -93
  244. package/docs/handbook/reference/trigger.md +24 -93
  245. package/docs/handbook/reference/view.md +32 -158
  246. package/docs/handbook/releases/index.md +124 -15
  247. package/docs/handbook/start/overview.md +9 -56
  248. package/docs/handbook/start/project-and-cli.md +40 -141
  249. package/docs/handbook/start/quickstart-worker.md +38 -116
  250. package/docs/skills/develop/SKILL.md +34 -117
  251. package/docs/skills/develop/mcp-app.md +37 -77
  252. package/docs/skills/integrate/SKILL.md +42 -84
  253. package/docs/skills/media-gc/SKILL.md +14 -3
  254. package/docs/skills/provision/SKILL.md +25 -88
  255. package/docs/skills/update/SKILL.md +19 -40
  256. package/docs/source/scripts/postgres-adapter.ts +101 -0
  257. package/docs/upgrade-0.1-to-0.2.md +26 -10
  258. package/package.json +97 -112
  259. package/skills/.keep +0 -0
  260. package/skills/README.md +72 -0
  261. package/skills/mantle/SKILL.md +135 -0
  262. package/skills/mantle/references/local-testing.md +11 -0
  263. package/skills/mantle/references/web.md +41 -0
  264. package/skills/mantle/references/website.md +47 -0
  265. package/dist/admin/consent.d.ts +0 -17
  266. package/dist/admin/consent.d.ts.map +0 -1
  267. package/dist/admin/consent.js +0 -17
  268. package/dist/admin/consent.js.map +0 -1
  269. package/dist/admin/createAdminSurface.d.ts +0 -22
  270. package/dist/admin/createAdminSurface.d.ts.map +0 -1
  271. package/dist/admin/createAdminSurface.js +0 -592
  272. package/dist/admin/createAdminSurface.js.map +0 -1
  273. package/dist/admin/design.d.ts +0 -7
  274. package/dist/admin/design.d.ts.map +0 -1
  275. package/dist/admin/design.js +0 -18
  276. package/dist/admin/design.js.map +0 -1
  277. package/dist/admin/developerConsole.d.ts +0 -267
  278. package/dist/admin/developerConsole.d.ts.map +0 -1
  279. package/dist/admin/developerConsole.js +0 -136
  280. package/dist/admin/developerConsole.js.map +0 -1
  281. package/dist/admin/identity.d.ts +0 -62
  282. package/dist/admin/identity.d.ts.map +0 -1
  283. package/dist/admin/identity.js +0 -7
  284. package/dist/admin/identity.js.map +0 -1
  285. package/dist/admin/index.d.ts +0 -6
  286. package/dist/admin/index.d.ts.map +0 -1
  287. package/dist/admin/index.js +0 -6
  288. package/dist/admin/index.js.map +0 -1
  289. package/dist/admin/procedureFlow.d.ts +0 -38
  290. package/dist/admin/procedureFlow.d.ts.map +0 -1
  291. package/dist/admin/procedureFlow.js +0 -188
  292. package/dist/admin/procedureFlow.js.map +0 -1
  293. package/dist/auth/ConsoleEmailSender.d.ts +0 -15
  294. package/dist/auth/ConsoleEmailSender.d.ts.map +0 -1
  295. package/dist/auth/ConsoleEmailSender.js +0 -19
  296. package/dist/auth/ConsoleEmailSender.js.map +0 -1
  297. package/dist/auth/appleClientSecret.d.ts +0 -75
  298. package/dist/auth/appleClientSecret.d.ts.map +0 -1
  299. package/dist/auth/appleClientSecret.js +0 -116
  300. package/dist/auth/appleClientSecret.js.map +0 -1
  301. package/dist/auth/buildAuth.d.ts +0 -4566
  302. package/dist/auth/buildAuth.d.ts.map +0 -1
  303. package/dist/auth/buildAuth.js +0 -311
  304. package/dist/auth/buildAuth.js.map +0 -1
  305. package/dist/auth/callerResolver.d.ts +0 -48
  306. package/dist/auth/callerResolver.d.ts.map +0 -1
  307. package/dist/auth/callerResolver.js +0 -49
  308. package/dist/auth/callerResolver.js.map +0 -1
  309. package/dist/auth/createAuthRoutes.d.ts +0 -22
  310. package/dist/auth/createAuthRoutes.d.ts.map +0 -1
  311. package/dist/auth/createAuthRoutes.js.map +0 -1
  312. package/dist/auth/createMantleAuth.d.ts +0 -3
  313. package/dist/auth/createMantleAuth.d.ts.map +0 -1
  314. package/dist/auth/createMantleAuth.js +0 -503
  315. package/dist/auth/createMantleAuth.js.map +0 -1
  316. package/dist/auth/db.d.ts +0 -17
  317. package/dist/auth/db.d.ts.map +0 -1
  318. package/dist/auth/db.js +0 -24
  319. package/dist/auth/db.js.map +0 -1
  320. package/dist/auth/emailTemplates.d.ts +0 -7
  321. package/dist/auth/emailTemplates.d.ts.map +0 -1
  322. package/dist/auth/emailTemplates.js.map +0 -1
  323. package/dist/auth/index.d.ts +0 -9
  324. package/dist/auth/index.d.ts.map +0 -1
  325. package/dist/auth/index.js +0 -7
  326. package/dist/auth/index.js.map +0 -1
  327. package/dist/auth/methods.d.ts +0 -717
  328. package/dist/auth/methods.d.ts.map +0 -1
  329. package/dist/auth/methods.js +0 -321
  330. package/dist/auth/methods.js.map +0 -1
  331. package/dist/auth/oauthTokens.d.ts +0 -24
  332. package/dist/auth/oauthTokens.d.ts.map +0 -1
  333. package/dist/auth/oauthTokens.js +0 -146
  334. package/dist/auth/oauthTokens.js.map +0 -1
  335. package/dist/auth/setupIncomplete.d.ts +0 -16
  336. package/dist/auth/setupIncomplete.d.ts.map +0 -1
  337. package/dist/auth/setupIncomplete.js +0 -50
  338. package/dist/auth/setupIncomplete.js.map +0 -1
  339. package/dist/auth/types.d.ts +0 -440
  340. package/dist/auth/types.d.ts.map +0 -1
  341. package/dist/auth/types.js +0 -10
  342. package/dist/auth/types.js.map +0 -1
  343. package/dist/bun/index.d.ts +0 -65
  344. package/dist/bun/index.d.ts.map +0 -1
  345. package/dist/bun/index.js +0 -130
  346. package/dist/bun/index.js.map +0 -1
  347. package/dist/cli/emitModule.d.ts +0 -7
  348. package/dist/cli/emitModule.d.ts.map +0 -1
  349. package/dist/cli/emitModule.js +0 -127
  350. package/dist/cli/emitModule.js.map +0 -1
  351. package/dist/cli/generate.d.ts +0 -8
  352. package/dist/cli/generate.d.ts.map +0 -1
  353. package/dist/cli/generate.js +0 -391
  354. package/dist/cli/generate.js.map +0 -1
  355. package/dist/cli/main.d.ts +0 -3
  356. package/dist/cli/main.d.ts.map +0 -1
  357. package/dist/cli/main.js +0 -21
  358. package/dist/cli/main.js.map +0 -1
  359. package/dist/cli/preset.d.ts +0 -18
  360. package/dist/cli/preset.d.ts.map +0 -1
  361. package/dist/cli/preset.js +0 -353
  362. package/dist/cli/preset.js.map +0 -1
  363. package/dist/cloudflare/index.d.ts +0 -21
  364. package/dist/cloudflare/index.d.ts.map +0 -1
  365. package/dist/cloudflare/index.js +0 -14
  366. package/dist/cloudflare/index.js.map +0 -1
  367. package/dist/cloudflare/r2Media.d.ts.map +0 -1
  368. package/dist/cloudflare/r2Media.js +0 -69
  369. package/dist/cloudflare/r2Media.js.map +0 -1
  370. package/dist/core/caller.d.ts +0 -35
  371. package/dist/core/caller.d.ts.map +0 -1
  372. package/dist/core/caller.js +0 -3
  373. package/dist/core/caller.js.map +0 -1
  374. package/dist/core/createMantle.d.ts +0 -22
  375. package/dist/core/createMantle.d.ts.map +0 -1
  376. package/dist/core/createMantle.js +0 -117
  377. package/dist/core/createMantle.js.map +0 -1
  378. package/dist/core/dialect.d.ts +0 -41
  379. package/dist/core/dialect.d.ts.map +0 -1
  380. package/dist/core/dialect.js +0 -7
  381. package/dist/core/dialect.js.map +0 -1
  382. package/dist/core/driver.d.ts +0 -17
  383. package/dist/core/driver.d.ts.map +0 -1
  384. package/dist/core/driver.js +0 -2
  385. package/dist/core/driver.js.map +0 -1
  386. package/dist/core/email.d.ts +0 -17
  387. package/dist/core/email.d.ts.map +0 -1
  388. package/dist/core/email.js +0 -2
  389. package/dist/core/email.js.map +0 -1
  390. package/dist/core/index.d.ts +0 -16
  391. package/dist/core/index.d.ts.map +0 -1
  392. package/dist/core/index.js +0 -16
  393. package/dist/core/index.js.map +0 -1
  394. package/dist/core/invocation.d.ts +0 -66
  395. package/dist/core/invocation.d.ts.map +0 -1
  396. package/dist/core/invocation.js +0 -3
  397. package/dist/core/invocation.js.map +0 -1
  398. package/dist/core/observation.d.ts +0 -3
  399. package/dist/core/observation.d.ts.map +0 -1
  400. package/dist/core/observation.js +0 -10
  401. package/dist/core/observation.js.map +0 -1
  402. package/dist/core/runtime/auth.d.ts +0 -9
  403. package/dist/core/runtime/auth.d.ts.map +0 -1
  404. package/dist/core/runtime/auth.js +0 -39
  405. package/dist/core/runtime/auth.js.map +0 -1
  406. package/dist/core/runtime/createRuntime.d.ts +0 -23
  407. package/dist/core/runtime/createRuntime.d.ts.map +0 -1
  408. package/dist/core/runtime/createRuntime.js +0 -214
  409. package/dist/core/runtime/createRuntime.js.map +0 -1
  410. package/dist/core/runtime/verifyPlan.d.ts +0 -34
  411. package/dist/core/runtime/verifyPlan.d.ts.map +0 -1
  412. package/dist/core/runtime/verifyPlan.js +0 -301
  413. package/dist/core/runtime/verifyPlan.js.map +0 -1
  414. package/dist/core/service.d.ts +0 -45
  415. package/dist/core/service.d.ts.map +0 -1
  416. package/dist/core/service.js +0 -2
  417. package/dist/core/service.js.map +0 -1
  418. package/dist/core/site.d.ts.map +0 -1
  419. package/dist/core/site.js +0 -2
  420. package/dist/core/site.js.map +0 -1
  421. package/dist/core/siteConfig.d.ts +0 -5
  422. package/dist/core/siteConfig.d.ts.map +0 -1
  423. package/dist/core/siteConfig.js +0 -24
  424. package/dist/core/siteConfig.js.map +0 -1
  425. package/dist/core/sql/allowlist.d.ts +0 -65
  426. package/dist/core/sql/allowlist.d.ts.map +0 -1
  427. package/dist/core/sql/allowlist.js +0 -705
  428. package/dist/core/sql/allowlist.js.map +0 -1
  429. package/dist/core/sql/ast.d.ts +0 -24
  430. package/dist/core/sql/ast.d.ts.map +0 -1
  431. package/dist/core/sql/ast.js +0 -32
  432. package/dist/core/sql/ast.js.map +0 -1
  433. package/dist/core/sql/compile.d.ts +0 -50
  434. package/dist/core/sql/compile.d.ts.map +0 -1
  435. package/dist/core/sql/compile.js +0 -48
  436. package/dist/core/sql/compile.js.map +0 -1
  437. package/dist/core/sql/policy.d.ts +0 -121
  438. package/dist/core/sql/policy.d.ts.map +0 -1
  439. package/dist/core/sql/policy.js +0 -379
  440. package/dist/core/sql/policy.js.map +0 -1
  441. package/dist/core/sql/positions.d.ts +0 -30
  442. package/dist/core/sql/positions.d.ts.map +0 -1
  443. package/dist/core/sql/positions.js +0 -22
  444. package/dist/core/sql/positions.js.map +0 -1
  445. package/dist/core/sql/run.d.ts +0 -76
  446. package/dist/core/sql/run.d.ts.map +0 -1
  447. package/dist/core/sql/run.js +0 -267
  448. package/dist/core/sql/run.js.map +0 -1
  449. package/dist/core/store/createStore.d.ts +0 -49
  450. package/dist/core/store/createStore.d.ts.map +0 -1
  451. package/dist/core/store/createStore.js +0 -227
  452. package/dist/core/store/createStore.js.map +0 -1
  453. package/dist/core/store/cursor.d.ts +0 -4
  454. package/dist/core/store/cursor.d.ts.map +0 -1
  455. package/dist/core/store/cursor.js +0 -22
  456. package/dist/core/store/cursor.js.map +0 -1
  457. package/dist/core/store/json.d.ts +0 -80
  458. package/dist/core/store/json.d.ts.map +0 -1
  459. package/dist/core/store/json.js +0 -342
  460. package/dist/core/store/json.js.map +0 -1
  461. package/dist/core/store.d.ts +0 -160
  462. package/dist/core/store.d.ts.map +0 -1
  463. package/dist/core/store.js +0 -2
  464. package/dist/core/store.js.map +0 -1
  465. package/dist/core/wire.d.ts +0 -20
  466. package/dist/core/wire.d.ts.map +0 -1
  467. package/dist/core/wire.js +0 -84
  468. package/dist/core/wire.js.map +0 -1
  469. package/dist/core/withCaller.d.ts +0 -24
  470. package/dist/core/withCaller.d.ts.map +0 -1
  471. package/dist/core/withCaller.js +0 -35
  472. package/dist/core/withCaller.js.map +0 -1
  473. package/dist/d1/adapter.d.ts +0 -12
  474. package/dist/d1/adapter.d.ts.map +0 -1
  475. package/dist/d1/adapter.js +0 -23
  476. package/dist/d1/adapter.js.map +0 -1
  477. package/dist/d1/codec.d.ts +0 -14
  478. package/dist/d1/codec.d.ts.map +0 -1
  479. package/dist/d1/codec.js +0 -136
  480. package/dist/d1/codec.js.map +0 -1
  481. package/dist/d1/compile/index.d.ts +0 -9
  482. package/dist/d1/compile/index.d.ts.map +0 -1
  483. package/dist/d1/compile/index.js +0 -9
  484. package/dist/d1/compile/index.js.map +0 -1
  485. package/dist/d1/dialect.d.ts +0 -4
  486. package/dist/d1/dialect.d.ts.map +0 -1
  487. package/dist/d1/dialect.js +0 -13
  488. package/dist/d1/dialect.js.map +0 -1
  489. package/dist/d1/executor.d.ts +0 -13
  490. package/dist/d1/executor.d.ts.map +0 -1
  491. package/dist/d1/executor.js +0 -91
  492. package/dist/d1/executor.js.map +0 -1
  493. package/dist/d1/index.d.ts +0 -6
  494. package/dist/d1/index.d.ts.map +0 -1
  495. package/dist/d1/index.js +0 -6
  496. package/dist/d1/index.js.map +0 -1
  497. package/dist/d1/lower.d.ts +0 -8
  498. package/dist/d1/lower.d.ts.map +0 -1
  499. package/dist/d1/lower.js +0 -167
  500. package/dist/d1/lower.js.map +0 -1
  501. package/dist/d1/media.d.ts +0 -5
  502. package/dist/d1/media.d.ts.map +0 -1
  503. package/dist/d1/media.js +0 -157
  504. package/dist/d1/media.js.map +0 -1
  505. package/dist/d1/migrations.d.ts +0 -12
  506. package/dist/d1/migrations.d.ts.map +0 -1
  507. package/dist/d1/migrations.js +0 -111
  508. package/dist/d1/migrations.js.map +0 -1
  509. package/dist/d1/print.d.ts +0 -28
  510. package/dist/d1/print.d.ts.map +0 -1
  511. package/dist/d1/print.js +0 -54
  512. package/dist/d1/print.js.map +0 -1
  513. package/dist/d1/site.d.ts +0 -17
  514. package/dist/d1/site.d.ts.map +0 -1
  515. package/dist/d1/site.js +0 -63
  516. package/dist/d1/site.js.map +0 -1
  517. package/dist/d1/storage.d.ts +0 -34
  518. package/dist/d1/storage.d.ts.map +0 -1
  519. package/dist/d1/storage.js +0 -288
  520. package/dist/d1/storage.js.map +0 -1
  521. package/dist/d1/tz.d.ts +0 -21
  522. package/dist/d1/tz.d.ts.map +0 -1
  523. package/dist/d1/tz.js +0 -54
  524. package/dist/d1/tz.js.map +0 -1
  525. package/dist/d1/validator.d.ts +0 -10
  526. package/dist/d1/validator.d.ts.map +0 -1
  527. package/dist/d1/validator.js +0 -33
  528. package/dist/d1/validator.js.map +0 -1
  529. package/dist/mcp/apps.d.ts +0 -43
  530. package/dist/mcp/apps.d.ts.map +0 -1
  531. package/dist/mcp/apps.js +0 -57
  532. package/dist/mcp/apps.js.map +0 -1
  533. package/dist/mcp/catalog.d.ts +0 -55
  534. package/dist/mcp/catalog.d.ts.map +0 -1
  535. package/dist/mcp/catalog.js +0 -81
  536. package/dist/mcp/catalog.js.map +0 -1
  537. package/dist/mcp/createMcpSurface.d.ts +0 -60
  538. package/dist/mcp/createMcpSurface.d.ts.map +0 -1
  539. package/dist/mcp/createMcpSurface.js +0 -182
  540. package/dist/mcp/createMcpSurface.js.map +0 -1
  541. package/dist/mcp/index.d.ts +0 -4
  542. package/dist/mcp/index.d.ts.map +0 -1
  543. package/dist/mcp/index.js +0 -4
  544. package/dist/mcp/index.js.map +0 -1
  545. package/dist/mcp/media.d.ts +0 -9
  546. package/dist/mcp/media.d.ts.map +0 -1
  547. package/dist/mcp/media.js +0 -33
  548. package/dist/mcp/media.js.map +0 -1
  549. package/dist/postgres/adapter.d.ts +0 -20
  550. package/dist/postgres/adapter.d.ts.map +0 -1
  551. package/dist/postgres/adapter.js +0 -44
  552. package/dist/postgres/adapter.js.map +0 -1
  553. package/dist/postgres/codec.d.ts +0 -13
  554. package/dist/postgres/codec.d.ts.map +0 -1
  555. package/dist/postgres/codec.js +0 -110
  556. package/dist/postgres/codec.js.map +0 -1
  557. package/dist/postgres/compile/index.d.ts +0 -9
  558. package/dist/postgres/compile/index.d.ts.map +0 -1
  559. package/dist/postgres/compile/index.js +0 -9
  560. package/dist/postgres/compile/index.js.map +0 -1
  561. package/dist/postgres/driver.d.ts +0 -92
  562. package/dist/postgres/driver.d.ts.map +0 -1
  563. package/dist/postgres/driver.js +0 -110
  564. package/dist/postgres/driver.js.map +0 -1
  565. package/dist/postgres/executor.d.ts +0 -20
  566. package/dist/postgres/executor.d.ts.map +0 -1
  567. package/dist/postgres/executor.js +0 -69
  568. package/dist/postgres/executor.js.map +0 -1
  569. package/dist/postgres/index.d.ts +0 -7
  570. package/dist/postgres/index.d.ts.map +0 -1
  571. package/dist/postgres/index.js +0 -7
  572. package/dist/postgres/index.js.map +0 -1
  573. package/dist/postgres/lower.d.ts +0 -6
  574. package/dist/postgres/lower.d.ts.map +0 -1
  575. package/dist/postgres/lower.js +0 -157
  576. package/dist/postgres/lower.js.map +0 -1
  577. package/dist/postgres/print.d.ts +0 -11
  578. package/dist/postgres/print.d.ts.map +0 -1
  579. package/dist/postgres/print.js +0 -121
  580. package/dist/postgres/print.js.map +0 -1
  581. package/dist/postgres/storage.d.ts +0 -19
  582. package/dist/postgres/storage.d.ts.map +0 -1
  583. package/dist/postgres/storage.js +0 -201
  584. package/dist/postgres/storage.js.map +0 -1
  585. package/dist/postgres/textRows.d.ts +0 -10
  586. package/dist/postgres/textRows.d.ts.map +0 -1
  587. package/dist/postgres/textRows.js +0 -44
  588. package/dist/postgres/textRows.js.map +0 -1
  589. package/dist/postgres/validator.d.ts +0 -12
  590. package/dist/postgres/validator.d.ts.map +0 -1
  591. package/dist/postgres/validator.js +0 -46
  592. package/dist/postgres/validator.js.map +0 -1
  593. package/dist/spec/domain/index.d.ts +0 -3
  594. package/dist/spec/domain/index.d.ts.map +0 -1
  595. package/dist/spec/domain/index.js +0 -3
  596. package/dist/spec/domain/index.js.map +0 -1
  597. package/dist/spec/domain/model/ContentState.d.ts +0 -8
  598. package/dist/spec/domain/model/ContentState.d.ts.map +0 -1
  599. package/dist/spec/domain/model/ContentState.js +0 -7
  600. package/dist/spec/domain/model/ContentState.js.map +0 -1
  601. package/dist/spec/domain/model/Entry.d.ts +0 -29
  602. package/dist/spec/domain/model/Entry.d.ts.map +0 -1
  603. package/dist/spec/domain/model/Entry.js +0 -16
  604. package/dist/spec/domain/model/Entry.js.map +0 -1
  605. package/dist/spec/domain/model/Locale.d.ts +0 -30
  606. package/dist/spec/domain/model/Locale.d.ts.map +0 -1
  607. package/dist/spec/domain/model/Locale.js +0 -33
  608. package/dist/spec/domain/model/Locale.js.map +0 -1
  609. package/dist/spec/domain/model/ManifestGrammar.d.ts.map +0 -1
  610. package/dist/spec/domain/model/ManifestGrammar.js +0 -149
  611. package/dist/spec/domain/model/ManifestGrammar.js.map +0 -1
  612. package/dist/spec/domain/model/MediaMimeAccept.d.ts +0 -55
  613. package/dist/spec/domain/model/MediaMimeAccept.d.ts.map +0 -1
  614. package/dist/spec/domain/model/MediaMimeAccept.js +0 -90
  615. package/dist/spec/domain/model/MediaMimeAccept.js.map +0 -1
  616. package/dist/spec/domain/model/RuntimePlan.d.ts.map +0 -1
  617. package/dist/spec/domain/model/RuntimePlan.js +0 -4
  618. package/dist/spec/domain/model/RuntimePlan.js.map +0 -1
  619. package/dist/spec/domain/model/SiteConfig.d.ts +0 -173
  620. package/dist/spec/domain/model/SiteConfig.d.ts.map +0 -1
  621. package/dist/spec/domain/model/SiteConfig.js +0 -13
  622. package/dist/spec/domain/model/SiteConfig.js.map +0 -1
  623. package/dist/spec/domain/model/SqlIr.d.ts.map +0 -1
  624. package/dist/spec/domain/model/SqlIr.js +0 -95
  625. package/dist/spec/domain/model/SqlIr.js.map +0 -1
  626. package/dist/spec/domain/model/index.d.ts +0 -14
  627. package/dist/spec/domain/model/index.d.ts.map +0 -1
  628. package/dist/spec/domain/model/index.js +0 -14
  629. package/dist/spec/domain/model/index.js.map +0 -1
  630. package/dist/spec/domain/service/CloudflareCron.d.ts.map +0 -1
  631. package/dist/spec/domain/service/CloudflareCron.js.map +0 -1
  632. package/dist/spec/domain/service/CrossSchemaChecker.d.ts +0 -34
  633. package/dist/spec/domain/service/CrossSchemaChecker.d.ts.map +0 -1
  634. package/dist/spec/domain/service/CrossSchemaChecker.js +0 -114
  635. package/dist/spec/domain/service/CrossSchemaChecker.js.map +0 -1
  636. package/dist/spec/domain/service/EntryDataValidator.d.ts +0 -56
  637. package/dist/spec/domain/service/EntryDataValidator.d.ts.map +0 -1
  638. package/dist/spec/domain/service/EntryDataValidator.js +0 -88
  639. package/dist/spec/domain/service/EntryDataValidator.js.map +0 -1
  640. package/dist/spec/domain/service/JsonSchemaToZod.d.ts +0 -29
  641. package/dist/spec/domain/service/JsonSchemaToZod.d.ts.map +0 -1
  642. package/dist/spec/domain/service/JsonSchemaToZod.js +0 -156
  643. package/dist/spec/domain/service/JsonSchemaToZod.js.map +0 -1
  644. package/dist/spec/domain/service/LifecycleStateMachine.d.ts +0 -75
  645. package/dist/spec/domain/service/LifecycleStateMachine.d.ts.map +0 -1
  646. package/dist/spec/domain/service/LifecycleStateMachine.js +0 -76
  647. package/dist/spec/domain/service/LifecycleStateMachine.js.map +0 -1
  648. package/dist/spec/domain/service/LocaleCanonicalizer.d.ts +0 -29
  649. package/dist/spec/domain/service/LocaleCanonicalizer.d.ts.map +0 -1
  650. package/dist/spec/domain/service/LocaleCanonicalizer.js +0 -96
  651. package/dist/spec/domain/service/LocaleCanonicalizer.js.map +0 -1
  652. package/dist/spec/domain/service/ManifestFieldChecks.d.ts +0 -60
  653. package/dist/spec/domain/service/ManifestFieldChecks.d.ts.map +0 -1
  654. package/dist/spec/domain/service/ManifestFieldChecks.js +0 -116
  655. package/dist/spec/domain/service/ManifestFieldChecks.js.map +0 -1
  656. package/dist/spec/domain/service/ManifestGraphValidator.d.ts +0 -15
  657. package/dist/spec/domain/service/ManifestGraphValidator.d.ts.map +0 -1
  658. package/dist/spec/domain/service/ManifestGraphValidator.js +0 -225
  659. package/dist/spec/domain/service/ManifestGraphValidator.js.map +0 -1
  660. package/dist/spec/domain/service/ManifestLinker.d.ts +0 -45
  661. package/dist/spec/domain/service/ManifestLinker.d.ts.map +0 -1
  662. package/dist/spec/domain/service/ManifestLinker.js +0 -92
  663. package/dist/spec/domain/service/ManifestLinker.js.map +0 -1
  664. package/dist/spec/domain/service/ManifestLocaleTrimmer.d.ts +0 -16
  665. package/dist/spec/domain/service/ManifestLocaleTrimmer.d.ts.map +0 -1
  666. package/dist/spec/domain/service/ManifestLocaleTrimmer.js +0 -76
  667. package/dist/spec/domain/service/ManifestLocaleTrimmer.js.map +0 -1
  668. package/dist/spec/domain/service/ManifestParser.d.ts +0 -49
  669. package/dist/spec/domain/service/ManifestParser.d.ts.map +0 -1
  670. package/dist/spec/domain/service/ManifestParser.js +0 -203
  671. package/dist/spec/domain/service/ManifestParser.js.map +0 -1
  672. package/dist/spec/domain/service/ManifestPartition.d.ts +0 -9
  673. package/dist/spec/domain/service/ManifestPartition.d.ts.map +0 -1
  674. package/dist/spec/domain/service/ManifestPartition.js +0 -19
  675. package/dist/spec/domain/service/ManifestPartition.js.map +0 -1
  676. package/dist/spec/domain/service/ManifestPathDiagnoser.d.ts +0 -33
  677. package/dist/spec/domain/service/ManifestPathDiagnoser.d.ts.map +0 -1
  678. package/dist/spec/domain/service/ManifestPathDiagnoser.js +0 -43
  679. package/dist/spec/domain/service/ManifestPathDiagnoser.js.map +0 -1
  680. package/dist/spec/domain/service/ManifestSourceSpans.d.ts +0 -10
  681. package/dist/spec/domain/service/ManifestSourceSpans.d.ts.map +0 -1
  682. package/dist/spec/domain/service/ManifestSourceSpans.js +0 -76
  683. package/dist/spec/domain/service/ManifestSourceSpans.js.map +0 -1
  684. package/dist/spec/domain/service/McpToolNaming.d.ts +0 -25
  685. package/dist/spec/domain/service/McpToolNaming.d.ts.map +0 -1
  686. package/dist/spec/domain/service/McpToolNaming.js +0 -50
  687. package/dist/spec/domain/service/McpToolNaming.js.map +0 -1
  688. package/dist/spec/domain/service/PlanFingerprint.d.ts.map +0 -1
  689. package/dist/spec/domain/service/PlanFingerprint.js +0 -14
  690. package/dist/spec/domain/service/PlanFingerprint.js.map +0 -1
  691. package/dist/spec/domain/service/ProcedureViewSpecChecks.d.ts +0 -4
  692. package/dist/spec/domain/service/ProcedureViewSpecChecks.d.ts.map +0 -1
  693. package/dist/spec/domain/service/ProcedureViewSpecChecks.js +0 -211
  694. package/dist/spec/domain/service/ProcedureViewSpecChecks.js.map +0 -1
  695. package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts +0 -42
  696. package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts.map +0 -1
  697. package/dist/spec/domain/service/SchemaAdminUiChecker.js +0 -289
  698. package/dist/spec/domain/service/SchemaAdminUiChecker.js.map +0 -1
  699. package/dist/spec/domain/service/SchemaIndexChecker.d.ts +0 -33
  700. package/dist/spec/domain/service/SchemaIndexChecker.d.ts.map +0 -1
  701. package/dist/spec/domain/service/SchemaIndexChecker.js +0 -256
  702. package/dist/spec/domain/service/SchemaIndexChecker.js.map +0 -1
  703. package/dist/spec/domain/service/SchemaSearchChecker.d.ts +0 -11
  704. package/dist/spec/domain/service/SchemaSearchChecker.d.ts.map +0 -1
  705. package/dist/spec/domain/service/SchemaSearchChecker.js +0 -78
  706. package/dist/spec/domain/service/SchemaSearchChecker.js.map +0 -1
  707. package/dist/spec/domain/service/SchemaSpecChecks.d.ts +0 -31
  708. package/dist/spec/domain/service/SchemaSpecChecks.d.ts.map +0 -1
  709. package/dist/spec/domain/service/SchemaSpecChecks.js +0 -445
  710. package/dist/spec/domain/service/SchemaSpecChecks.js.map +0 -1
  711. package/dist/spec/domain/service/SiteDefaultsValidator.d.ts +0 -39
  712. package/dist/spec/domain/service/SiteDefaultsValidator.d.ts.map +0 -1
  713. package/dist/spec/domain/service/SiteDefaultsValidator.js +0 -194
  714. package/dist/spec/domain/service/SiteDefaultsValidator.js.map +0 -1
  715. package/dist/spec/domain/service/SqlClassify.d.ts +0 -19
  716. package/dist/spec/domain/service/SqlClassify.d.ts.map +0 -1
  717. package/dist/spec/domain/service/SqlClassify.js +0 -42
  718. package/dist/spec/domain/service/SqlClassify.js.map +0 -1
  719. package/dist/spec/domain/service/SqlRefusal.d.ts +0 -16
  720. package/dist/spec/domain/service/SqlRefusal.d.ts.map +0 -1
  721. package/dist/spec/domain/service/SqlRefusal.js +0 -20
  722. package/dist/spec/domain/service/SqlRefusal.js.map +0 -1
  723. package/dist/spec/domain/service/SqlTypes.d.ts +0 -40
  724. package/dist/spec/domain/service/SqlTypes.d.ts.map +0 -1
  725. package/dist/spec/domain/service/SqlTypes.js +0 -110
  726. package/dist/spec/domain/service/SqlTypes.js.map +0 -1
  727. package/dist/spec/domain/service/StaffRoleHierarchy.d.ts +0 -3
  728. package/dist/spec/domain/service/StaffRoleHierarchy.d.ts.map +0 -1
  729. package/dist/spec/domain/service/StaffRoleHierarchy.js +0 -19
  730. package/dist/spec/domain/service/StaffRoleHierarchy.js.map +0 -1
  731. package/dist/spec/domain/service/TriggerGraphChecks.d.ts +0 -16
  732. package/dist/spec/domain/service/TriggerGraphChecks.d.ts.map +0 -1
  733. package/dist/spec/domain/service/TriggerGraphChecks.js +0 -337
  734. package/dist/spec/domain/service/TriggerGraphChecks.js.map +0 -1
  735. package/dist/spec/domain/service/TriggerSpecChecks.d.ts +0 -4
  736. package/dist/spec/domain/service/TriggerSpecChecks.d.ts.map +0 -1
  737. package/dist/spec/domain/service/TriggerSpecChecks.js +0 -89
  738. package/dist/spec/domain/service/TriggerSpecChecks.js.map +0 -1
  739. package/dist/spec/domain/service/ValidatedAdminUiProjection.d.ts +0 -11
  740. package/dist/spec/domain/service/ValidatedAdminUiProjection.d.ts.map +0 -1
  741. package/dist/spec/domain/service/ValidatedAdminUiProjection.js +0 -26
  742. package/dist/spec/domain/service/ValidatedAdminUiProjection.js.map +0 -1
  743. package/dist/spec/domain/service/ViewAdminUiChecker.d.ts +0 -14
  744. package/dist/spec/domain/service/ViewAdminUiChecker.d.ts.map +0 -1
  745. package/dist/spec/domain/service/ViewAdminUiChecker.js +0 -53
  746. package/dist/spec/domain/service/ViewAdminUiChecker.js.map +0 -1
  747. package/dist/spec/domain/service/index.d.ts +0 -24
  748. package/dist/spec/domain/service/index.d.ts.map +0 -1
  749. package/dist/spec/domain/service/index.js +0 -24
  750. package/dist/spec/domain/service/index.js.map +0 -1
  751. package/dist/spec/index.d.ts +0 -10
  752. package/dist/spec/index.d.ts.map +0 -1
  753. package/dist/spec/index.js +0 -12
  754. package/dist/spec/index.js.map +0 -1
  755. package/dist/spec/infrastructure/cli/parseArgsError.d.ts +0 -16
  756. package/dist/spec/infrastructure/cli/parseArgsError.d.ts.map +0 -1
  757. package/dist/spec/infrastructure/cli/parseArgsError.js +0 -34
  758. package/dist/spec/infrastructure/cli/parseArgsError.js.map +0 -1
  759. package/dist/spec/infrastructure/index.d.ts +0 -2
  760. package/dist/spec/infrastructure/index.d.ts.map +0 -1
  761. package/dist/spec/infrastructure/index.js +0 -2
  762. package/dist/spec/infrastructure/index.js.map +0 -1
  763. package/dist/spec/infrastructure/sql/PgQueryParser.d.ts +0 -18
  764. package/dist/spec/infrastructure/sql/PgQueryParser.d.ts.map +0 -1
  765. package/dist/spec/infrastructure/sql/PgQueryParser.js +0 -17
  766. package/dist/spec/infrastructure/sql/PgQueryParser.js.map +0 -1
  767. package/dist/spec/infrastructure/sql/compilePlan.d.ts +0 -37
  768. package/dist/spec/infrastructure/sql/compilePlan.d.ts.map +0 -1
  769. package/dist/spec/infrastructure/sql/compilePlan.js +0 -282
  770. package/dist/spec/infrastructure/sql/compilePlan.js.map +0 -1
  771. package/dist/spec/infrastructure/sql/compileSql.d.ts +0 -35
  772. package/dist/spec/infrastructure/sql/compileSql.d.ts.map +0 -1
  773. package/dist/spec/infrastructure/sql/compileSql.js +0 -92
  774. package/dist/spec/infrastructure/sql/compileSql.js.map +0 -1
  775. package/dist/spec/infrastructure/sql/frontEnd.d.ts +0 -8
  776. package/dist/spec/infrastructure/sql/frontEnd.d.ts.map +0 -1
  777. package/dist/spec/infrastructure/sql/frontEnd.js +0 -100
  778. package/dist/spec/infrastructure/sql/frontEnd.js.map +0 -1
  779. package/dist/spec/infrastructure/sql/index.d.ts +0 -4
  780. package/dist/spec/infrastructure/sql/index.d.ts.map +0 -1
  781. package/dist/spec/infrastructure/sql/index.js +0 -4
  782. package/dist/spec/infrastructure/sql/index.js.map +0 -1
  783. package/dist/spec/kernel/diagnostic.d.ts.map +0 -1
  784. package/dist/spec/kernel/diagnostic.js +0 -296
  785. package/dist/spec/kernel/diagnostic.js.map +0 -1
  786. package/dist/spec/kernel/index.d.ts +0 -8
  787. package/dist/spec/kernel/index.d.ts.map +0 -1
  788. package/dist/spec/kernel/index.js +0 -8
  789. package/dist/spec/kernel/index.js.map +0 -1
  790. package/dist/spec/usecase/EmitTypes.d.ts +0 -22
  791. package/dist/spec/usecase/EmitTypes.d.ts.map +0 -1
  792. package/dist/spec/usecase/EmitTypes.js +0 -182
  793. package/dist/spec/usecase/EmitTypes.js.map +0 -1
  794. package/dist/spec/usecase/ValidateManifestsUseCase.d.ts +0 -8
  795. package/dist/spec/usecase/ValidateManifestsUseCase.d.ts.map +0 -1
  796. package/dist/spec/usecase/ValidateManifestsUseCase.js +0 -101
  797. package/dist/spec/usecase/ValidateManifestsUseCase.js.map +0 -1
  798. package/dist/spec/usecase/dto/ValidateManifestsRequest.d.ts +0 -27
  799. package/dist/spec/usecase/dto/ValidateManifestsRequest.d.ts.map +0 -1
  800. package/dist/spec/usecase/dto/ValidateManifestsRequest.js +0 -2
  801. package/dist/spec/usecase/dto/ValidateManifestsRequest.js.map +0 -1
  802. package/dist/spec/usecase/dto/ValidateManifestsResponse.d.ts +0 -14
  803. package/dist/spec/usecase/dto/ValidateManifestsResponse.d.ts.map +0 -1
  804. package/dist/spec/usecase/dto/ValidateManifestsResponse.js +0 -2
  805. package/dist/spec/usecase/dto/ValidateManifestsResponse.js.map +0 -1
  806. package/dist/spec/usecase/dto/index.d.ts +0 -3
  807. package/dist/spec/usecase/dto/index.d.ts.map +0 -1
  808. package/dist/spec/usecase/dto/index.js +0 -3
  809. package/dist/spec/usecase/dto/index.js.map +0 -1
  810. package/dist/spec/usecase/index.d.ts +0 -10
  811. package/dist/spec/usecase/index.d.ts.map +0 -1
  812. package/dist/spec/usecase/index.js +0 -10
  813. package/dist/spec/usecase/index.js.map +0 -1
  814. package/dist/testing/cases/before-hook.d.ts +0 -4
  815. package/dist/testing/cases/before-hook.d.ts.map +0 -1
  816. package/dist/testing/cases/before-hook.js +0 -71
  817. package/dist/testing/cases/before-hook.js.map +0 -1
  818. package/dist/testing/cases/corpus.d.ts +0 -12
  819. package/dist/testing/cases/corpus.d.ts.map +0 -1
  820. package/dist/testing/cases/corpus.js +0 -91
  821. package/dist/testing/cases/corpus.js.map +0 -1
  822. package/dist/testing/cases/policy.d.ts +0 -74
  823. package/dist/testing/cases/policy.d.ts.map +0 -1
  824. package/dist/testing/cases/policy.js +0 -142
  825. package/dist/testing/cases/policy.js.map +0 -1
  826. package/dist/testing/cases/printer.d.ts +0 -4
  827. package/dist/testing/cases/printer.d.ts.map +0 -1
  828. package/dist/testing/cases/printer.js +0 -32
  829. package/dist/testing/cases/printer.js.map +0 -1
  830. package/dist/testing/cases/report-view.d.ts +0 -5
  831. package/dist/testing/cases/report-view.d.ts.map +0 -1
  832. package/dist/testing/cases/report-view.js +0 -33
  833. package/dist/testing/cases/report-view.js.map +0 -1
  834. package/dist/testing/cases/requisition.d.ts +0 -4
  835. package/dist/testing/cases/requisition.d.ts.map +0 -1
  836. package/dist/testing/cases/requisition.js +0 -38
  837. package/dist/testing/cases/requisition.js.map +0 -1
  838. package/dist/testing/cases/search-places.d.ts +0 -4
  839. package/dist/testing/cases/search-places.d.ts.map +0 -1
  840. package/dist/testing/cases/search-places.js +0 -60
  841. package/dist/testing/cases/search-places.js.map +0 -1
  842. package/dist/testing/cases/stock.d.ts +0 -4
  843. package/dist/testing/cases/stock.d.ts.map +0 -1
  844. package/dist/testing/cases/stock.js +0 -35
  845. package/dist/testing/cases/stock.js.map +0 -1
  846. package/dist/testing/cases/store.d.ts +0 -4
  847. package/dist/testing/cases/store.d.ts.map +0 -1
  848. package/dist/testing/cases/store.js +0 -100
  849. package/dist/testing/cases/store.js.map +0 -1
  850. package/dist/testing/harness.d.ts +0 -94
  851. package/dist/testing/harness.d.ts.map +0 -1
  852. package/dist/testing/harness.js +0 -168
  853. package/dist/testing/harness.js.map +0 -1
  854. package/dist/testing/index.d.ts.map +0 -1
  855. package/dist/testing/index.js.map +0 -1
  856. package/dist/testing/report.d.ts +0 -15
  857. package/dist/testing/report.d.ts.map +0 -1
  858. package/dist/testing/report.js +0 -22
  859. package/dist/testing/report.js.map +0 -1
  860. package/dist/web/createRestSurface.d.ts +0 -7
  861. package/dist/web/createRestSurface.d.ts.map +0 -1
  862. package/dist/web/createRestSurface.js +0 -41
  863. package/dist/web/createRestSurface.js.map +0 -1
  864. package/dist/web/index.d.ts +0 -2
  865. package/dist/web/index.d.ts.map +0 -1
  866. package/dist/web/index.js +0 -2
  867. package/dist/web/index.js.map +0 -1
  868. package/docs/adr/0001-four-atom-manifest-model.md +0 -440
  869. package/docs/adr/0002-closed-enums-for-bindings.md +0 -253
  870. package/docs/adr/0007-ai-as-primary-author.md +0 -473
  871. package/docs/adr/0008-structured-diagnostic-shape.md +0 -338
  872. package/docs/adr/0009-consumer-supplied-manifests.md +0 -149
  873. package/docs/adr/0010-locale-and-translates.md +0 -453
  874. package/docs/adr/0011-adapter-port-spec.md +0 -281
  875. package/docs/adr/0012-views-as-public-rest.md +0 -161
  876. package/docs/adr/0013-agent-provisioned-consumer-projects.md +0 -154
  877. package/docs/adr/0014-auth-better-auth-and-multi-tenant-mcp.md +0 -939
  878. package/docs/adr/0016-site-semantic-layer.md +0 -70
  879. package/docs/adr/0017-media-multi-variant-agent-side-optimization.md +0 -181
  880. package/docs/adr/0018-core-starters-repository-boundary.md +0 -179
  881. package/docs/adr/0019-sealed-manifest-runtime-pipeline.md +0 -244
  882. package/docs/adr/0020-builtin-handler-contracts-and-matched-upsert.md +0 -199
  883. package/docs/adr/0021-retire-starter-scaffolding.md +0 -30
  884. package/docs/adr/0022-caller-observed-version-occ.md +0 -212
  885. package/docs/adr/0023-port-failure-contract.md +0 -69
  886. package/docs/adr/0024-manifest-native-schema-tables.md +0 -264
  887. package/docs/adr/0025-reserved-native-columns-and-published-only-public-views.md +0 -105
  888. package/docs/adr/0026-progressive-generate.md +0 -36
  889. package/docs/adr/0027-scheduled-procedure-triggers.md +0 -31
  890. package/docs/adr/0028-schema-ttl-expiry.md +0 -33
  891. package/docs/adr/0029-mcp-apps-interaction-contracts.md +0 -324
  892. package/docs/adr/0030-store.md +0 -40
  893. package/docs/adr/0031-host-cloud-core-contract.md +0 -102
  894. package/docs/adr/0032-store-centric-core-and-service-contract.md +0 -384
  895. package/docs/adr/0033-storage-converges-to-the-plan.md +0 -92
  896. package/docs/adr/0034-store-is-authored-as-sql.md +0 -192
  897. package/docs/adr/0035-sql-dialects.md +0 -154
  898. package/docs/adr/0036-host-and-dialect.md +0 -65
  899. package/docs/adr/0037-postgresql-is-the-reference-dialect.md +0 -124
  900. package/docs/adr/0038-bun-native-host.md +0 -63
  901. package/docs/adr/README.md +0 -96
  902. package/docs/adr/adr-lite-803-request-diagnostics.md +0 -38
  903. package/docs/adr/adr-lite-808-route-readiness.md +0 -47
  904. package/docs/adr/adr-lite-809-bounded-public-content.md +0 -71
  905. package/docs/adr/adr-lite-812-native-parity.md +0 -150
  906. package/docs/adr/adr-lite-823-home-statistics.md +0 -64
  907. package/docs/adr/adr-lite-842-mcp-authoring.md +0 -30
  908. package/docs/adr/adr-lite-845-frontend-client.md +0 -38
  909. package/docs/adr/adr-lite-861-admin-webmcp.md +0 -48
  910. package/docs/adr/adr-lite-909-admin-ui-kit.md +0 -37
  911. package/docs/examples/commerce-inventory.md +0 -481
  912. package/docs/examples/commerce.md +0 -254
  913. package/docs/examples/guarded-api.md +0 -238
  914. package/docs/examples/intake-hooks.md +0 -237
  915. package/docs/examples/intake.md +0 -127
  916. package/docs/examples/legal-documents.md +0 -218
  917. package/docs/examples/procurement.md +0 -226
  918. package/docs/examples/publication.md +0 -211
  919. package/docs/examples/reference-service/.mantle/generated/mantle.ts +0 -174
  920. package/docs/examples/reference-service/.mantle/generated/plan.json +0 -1936
  921. package/docs/examples/reference-service/README.md +0 -33
  922. package/docs/examples/reference-service/manifests/catalog.yaml +0 -103
  923. package/docs/examples/reference-service/manifests/orders.yaml +0 -120
  924. package/docs/examples/reference-service/mantle.config.json +0 -1
  925. package/docs/examples/reference-service/package.json +0 -27
  926. package/docs/examples/reference-service/smoke.mjs +0 -160
  927. package/docs/examples/reference-service/src/handlers.ts +0 -36
  928. package/docs/examples/reference-service/src/index.ts +0 -33
  929. package/docs/examples/reference-service/src/service.ts +0 -78
  930. package/docs/examples/reference-service/wrangler.jsonc +0 -26
  931. package/docs/examples/reservation.md +0 -142
  932. /package/docs/examples/{reference-service → app-shell}/.dev.vars.example +0 -0
@@ -1,93 +1,279 @@
1
- ---
2
- description: Every HTTP route the generated Mantle 0.2.0 service mounts (REST, auth, MCP, Admin), the package subpaths and their exports, and the CLI.
3
- ---
4
- # HTTP, MCP, CLI and packages
5
-
6
- ## Routes of the generated service
7
-
8
- `src/service.ts` mounts, in this order. Each surface runs behind
9
- `withCaller(resolver, …)`; with identity `none`, every caller is anonymous.
10
-
11
- | Path | Surface | Mounted when |
12
- |---|---|---|
13
- | `/api/auth/*`, `/.well-known/oauth-authorization-server/*`, `/.well-known/oauth-protected-resource[/*]`, `/oauth/consent[/data]`, `/oauth/consents[/data\|/revoke]` | `createAuthRoutes` | identity `mantle` |
14
- | `/admin/*` | `createAdminSurface`: the console (from `ASSETS`) and `/admin/api/*` | feature `admin` |
15
- | `/mcp/staff` | `createMcpSurface`, `surface: staff`, with `planApp`'s MCP App | feature `mcp` and an identity |
16
- | `/mcp` | `createMcpSurface`, `surface: public` | feature `mcp` |
17
- | everything else | `createRestSurface` at `/api` | always |
18
-
19
- ### REST
20
-
21
- | Route | |
22
- |---|---|
23
- | `GET /api/views/<name>` | a `public` View; query parameters are its `input` plus `limit` and `cursor`. Answers `{ rows, nextCursor? }` |
24
- | `<METHOD> <path>` | each `http` Trigger; the JSON body and path parameters are the input. Answers the Procedure's output |
25
-
26
- A failure is `{ "error": <diagnostic> }` with the code's status
27
- ([Diagnostics](./diagnostics.md)). A cookie session cannot mutate across
28
- origins.
29
-
30
- ### Auth (identity `mantle`)
31
-
32
- | Route | |
33
- |---|---|
34
- | `GET /api/auth/methods` | the sign-in methods this service offers |
35
- | `/api/auth/*` | Better Auth: email OTP (`/email-otp/send-verification-otp`, `/sign-in/email-otp`), magic link, social and generic OAuth sign-in, sessions, sign-out, the OAuth provider |
36
- | `/.well-known/oauth-authorization-server/*`, `/.well-known/oauth-protected-resource[/mcp]` | OAuth metadata, served by Better Auth |
37
- | `/oauth/consent`, `/oauth/consents` | consent and connected apps, session only; with Admin, consent renders at `/admin/oauth/consent` and posts here |
38
-
39
- ### MCP
40
-
41
- | Route | |
42
- |---|---|
43
- | `POST /mcp` | the public surface (Streamable HTTP, JSON-RPC) |
44
- | `POST /mcp/staff` | the staff surface: staff only, the same token as `/mcp`; see [MCP and agents](../concepts/mcp-and-agents.md) |
45
-
46
- ### Admin API
47
-
48
- Every route needs a staff caller; the column names the least role.
49
-
50
- | Route | Role | |
51
- |---|---|---|
52
- | `GET /admin/api/me`, `GET /admin/api/bootstrap` | contributor | the caller; the console's first load |
53
- | `GET /admin/api/collections`, `GET …/collections/{name}/statistics` | contributor | Schemas; statistics answer 501 in 0.2.0 |
54
- | `GET /admin/api/entries?collection=`, `GET …/entries/export`, `GET …/entries/{id}` | contributor | list (with `search`, `limit`, `cursor`), CSV, one row |
55
- | `POST /admin/api/entries`, `PATCH …/entries/{id}` (with `expectedVersion`) | contributor | create, edit (contributors: drafts only) |
56
- | `POST …/entries/{id}/publish`, `…/unpublish`, `DELETE …/entries/{id}` | editor | |
57
- | `GET /admin/api/views-manifest`, `GET …/views/{name}`, `GET …/views/{name}/export` | contributor | staff Views (`{ name, title, description, input, list: { columns, searchFields, filterFields }, columns }`); rows by `limit`/`cursor` with `search` and `filter.<output>`; CSV |
58
- | `GET /admin/api/operations`, `POST …/operations/{name}` | contributor | Procedures bound to the staff MCP surface |
59
- | `GET /admin/api/site` | contributor | site metadata, `mcpEndpoints`, and `capabilities: { siteSettings, media, invitationEmail, statistics }` (what this deployment turned on; the console hides what is off) |
60
- | `GET`, `PATCH /admin/api/site-settings` | owner | 501 `SITE_NOT_CONFIGURED` without `runtime.site` |
61
- | `POST /admin/api/media/uploads`, `POST …/media/uploads/{groupId}/commit`, `GET …/media`, `GET`, `PATCH`, `DELETE …/media/{id}` | editor | with `media` and `runtime.site` |
62
- | `GET /admin/api/webmcp`, `POST …/webmcp/{tool}` | contributor | the staff tools for a browser agent (`{ tools, routes }`); a call runs one as `/mcp/staff` does and answers `{ output }` |
63
- | `GET /admin/api/staff`, `PATCH …/staff/{id}/role`, `POST …/staff/invitations`, `DELETE …/staff/invitations/{id}` | owner | with an `AdminIdentity` that has `directory` / `roles` |
64
- | `GET /admin/api/members` | editor | with `directory` |
65
- | `GET /admin/api/developer-console` | owner | the plan's data model, logic and schedules |
66
-
67
- ## Packages
68
-
69
- Two npm packages, always published together at one version.
70
-
71
- | Import | Exports |
72
- |---|---|
73
- | `@aotter/mantle` | `createMantle`, `createMantleRuntime`, `verifyPlan` and its `PLAN_LIMITS`, `withCaller`, `systemCaller`, the `Caller`, `CallerResolver`, `MantleService`, `HandlerContext`, `Invocation` and Store types, `EmailSender`, `DiagnosticError`, `makeDiagnostic`, `runtimeDiagnostic`, `STAFF_ROLES`, `isStaffRole` |
74
- | `@aotter/mantle/spec` | the grammar types, `compilePlan`, `mcpTools` (the CLI side; it bundles the SQL parser, so a Worker or handler imports `DiagnosticError` from the root) |
75
- | `@aotter/mantle/d1`, `/d1/compile` | the `sqlite` dialect: `sqliteStorage` over any `DatabaseDriver`; its compile side |
76
- | `@aotter/mantle/postgres`, `/postgres/compile` | the `postgres` dialect: `postgresStorage`, `postgresDialect`, `pgDatabaseDriver`, `pgPool`, the `PgClient` and `PgConnect` types; its compile side |
77
- | `@aotter/mantle/cloudflare` | `d1Storage`, `d1Driver`, `r2MediaStorage`, `toCloudflareCron` |
78
- | `@aotter/mantle/auth` | `createMantleAuth`, `createSetupIncompleteAuth`, `createCallerResolver`, `createAuthRoutes`, `ConsoleEmailSender`, `appleClientSecret` |
79
- | `@aotter/mantle/admin` | `createAdminSurface`, `AdminIdentity` |
80
- | `@aotter/mantle/mcp` | `createMcpSurface`, `planApp` and `appCatalog` (the MCP App's catalog) |
81
- | `@aotter/mantle/web` | `createRestSurface` |
82
- | `@aotter/mantle/bun` | `bunPostgresStorage`, `bunSqliteStorage`, `bunPgConnect`, `bunDatabaseDriver`, `bunSqliteDriver`, `bunAuthDatabase`, `bunAdminAssets` |
83
- | `@aotter/mantle/testing` | `runStorageConformance`, the dialect compliance suite |
84
- | `@aotter/mantle-ui` | the root (React operation components and the controller), `/controller`, `/kit`, `/kit.css`, `/tokens.css`, `/mcp-app` (`mantleAppHtml`, the App `planApp` serves), and the prebuilt Admin console in `dist/admin` (exported as `./admin/index.html`), which the preset serves at `/admin` |
85
-
86
- A subpath that is not imported is never loaded: a service with identity
87
- `none` bundles no Better Auth, and no Worker bundles the SQL parser.
88
-
89
- ## CLI
90
-
91
- `mantle generate [--manifests <dir>] [--features <list>] [--identity <kind>] [--host <host>] [--dialect <name>]`
92
- and `mantle generate --check [--database <file>]`. See
93
- [Project layout and CLI](../start/project-and-cli.md).
1
+ # Generated surfaces
2
+
3
+ - The app mounts generated modules and passes `{ db, caller }`; `caller(request, env, { readOnly })`
4
+ is the app's own `resolveCaller(...)` call. There is no generated `service.ts`,
5
+ routing framework or Better Auth wrapper.
6
+ - REST retains public `GET /api/views/<name>` (and bodyless HEAD) with declared query input plus
7
+ `limit` and `cursor`, answering `{ rows, nextCursor? }`. HTTP Triggers retain
8
+ their own method/path; JSON bodies and path parameters form the Procedure
9
+ input and responses contain its result. Errors remain
10
+ `{ error: { code, message, path } }` with the 0.2 status. Cookie sessions cannot
11
+ mutate across origins.
12
+ - MCP retains public `POST /mcp`, admin `POST /mcp/admin`,
13
+ snake-cased View names on each declared surface, and snake-cased Procedure
14
+ names per MCP Trigger. Its SDK loads only through a request-time dynamic import.
15
+ - HTTP/MCP Triggers declare exposure only. `mantle generate` refuses schedule
16
+ and lifecycle Triggers; Cloud scheduling is a separate capability.
17
+ - Native Admin retains selected 0.2 paths and the console contracts; see
18
+ [Native Admin](../guides/native-admin.md) for app-mounted
19
+ `adminBindings()` and `entries(bindings.schemas, bindings.adapter)`.
20
+
21
+ Generated `rest.ts`, `mcp.ts`, `web.ts`, `paged/views/*` and `validation/*` hold
22
+ only the app's tables: routes, tools, pages, operation bindings, compiled input
23
+ checks and types. Request handling (matching, body and query decoding, dispatch,
24
+ challenges, JSON-RPC, web rendering, keyset paging) lives in the package's
25
+ `rest`, `mcp`, `web`, `paging` and `validation` kernel modules, so a runtime fix
26
+ ships as a package update instead of a regeneration.
27
+
28
+ The generated `validation/views/<name>.ts` and
29
+ `validation/procedures/<name>.ts` export `validate(unknown)`. View validators
30
+ also export `query(URLSearchParams)` returning `{ input, limit?, cursor? }`.
31
+ REST and MCP use the same generated checks, with no runtime schema interpreter.
32
+ Supported checks are types/unions and nullable, required/properties/additionalProperties,
33
+ arrays/items and length bounds, enum, local `$defs`/`$ref`, string length/pattern,
34
+ numeric bounds/`multipleOf`, and date/date-time/email. The deliberately permissive
35
+ email check requires exactly one `@`, non-empty local and domain parts, and no
36
+ whitespace; it does not require a dot, verify deliverability, or implement full
37
+ RFC mailbox syntax. Integers must be safe; fractional
38
+ `multipleOf` uses a 1e-9 quotient tolerance. `const`, `oneOf`, `uniqueItems` and
39
+ object property-count bounds are refused, alongside other unsupported keywords
40
+ and formats. Defaults remain
41
+ annotations and are not inserted into request input.
42
+
43
+ Native `paged/views/<name>.ts` has a default export, callable as
44
+ `page(db, caller, input, { limit?, cursor? })` after importing it as `page`,
45
+ answering `{ rows, nextCursor? }`.
46
+ Bare `views/<name>.ts` retains native row arrays and accepts app-validated input;
47
+ selecting neither boundary adds no validation or paging work to that query.
48
+ Selected REST/MCP/Admin responses convert declared integer columns on every target
49
+ to safe numbers or exact decimal strings. Their SQL reads integers as text before
50
+ driver conversion; integer cursor keys retain that precision without changing native
51
+ sort order. `views/<name>.ts` also exports `WireRow` for selected transport
52
+ boundaries; declared wire fields agree across targets. Declared SQLite/D1
53
+ JSON/boolean columns become JSON values and booleans. Aliases follow generated
54
+ source-column lineage; computed values and Procedure/ref results retain
55
+ their contracts. Native integer bigint cursor keys are serialized separately.
56
+ REST/MCP use separate `paged/wire/views/<name>.ts` SQL when declared integers
57
+ require exact transport projections. Web pages and internal paged Views keep
58
+ driver-native rows. Internal paging creates no public route/tool.
59
+ Authored SQL `LIMIT` caps each page, up to 500, rather than the whole cursor walk.
60
+ A pageable Schema View has a complete NOT NULL scalar tuple ending in the
61
+ compiler's `id` tiebreak. Its ordered columns must match an index after fixed
62
+ equality prefixes (including caller scope); multiple columns and mixed directions
63
+ retain the authored order. CTE projections preserve the proof; joins must have a
64
+ proved singleton side, or equality on the joined Schema's `id` or single-field
65
+ unique key, so the base id cannot fan out. LEFT JOIN accepts nullable or missing
66
+ base references while preserving the base order/key tuple; joined fields remain
67
+ nullable cursor keys. Refusals identify the nullable key, missing ORDER BY index,
68
+ or fanning join and state a remedy. Relation aliases and nested CTE
69
+ bindings keep their own identity; same-Schema aliases are not interchangeable.
70
+
71
+ Grouped Views use every GROUP BY key as the tiebreak, with known non-null scalar
72
+ keys; unfiltered, non-windowed `min`/`max` of a non-null column retain its native cursor type. Paging a
73
+ grouped result does not avoid the native grouping/source scan. Authors own source
74
+ predicate indexes and should inspect EXPLAIN for their workload. Nullable,
75
+ unknown and JSON order expressions and unproved fanout remain refused.
76
+ Trusted system reads retain their all-scope SQL: without an actual scope
77
+ predicate, a scope-first index is not a proved range scan and native sorting or
78
+ scanning may be needed. Caller equality-prefix proofs do not claim otherwise.
79
+
80
+ Proved singletons (scalar/aggregate queries, unique-id lookups and singleton
81
+ sources) run bounded first-page SQL, reject cursors and refuse overflow.
82
+ Internal Views receive directly imported paged modules only when the same proofs
83
+ hold; they gain no public route or tool. Their bare modules remain available for
84
+ other native SQL and return full authored-query arrays.
85
+
86
+ Cursors reuse the Store's percent-encoded JSON keyset codec. Selected View
87
+ cursors include operation provenance; malformed, foreign and
88
+ null-key cursors fail with `INPUT_VALIDATION_FAILED`. Each generated key has a
89
+ scalar check; temporal keys keep database microseconds. Existing one/two-key
90
+ formats and Store cursors are preserved; larger View tuples contain their full
91
+ key list followed by operation provenance. They are opaque navigation
92
+ values, not credentials; authorization and row predicates run on every page.
93
+
94
+ ## Mounting REST
95
+
96
+ `rest.ts` exports `rest({ db, caller })`, returning an async
97
+ `(request, env) => Response | undefined`. The app supplies its native handle and
98
+ verified Caller; requests outside `/api` fall through to the app. Public Views
99
+ use `/api/views/<name>`; HTTP Triggers keep their declared method and path.
100
+ Known paths with another method return 405 with an `Allow` header. All responses use
101
+ `cache-control: private, no-store`. JSON bodies and decoded path parameters
102
+ are validated together, with path parameters taking precedence. Bodies larger
103
+ than 1,000,000 bytes are refused; `content-length` is checked before reading.
104
+ A resolver's `ContractError` keeps its status (an expired token is 401 with its challenge); any other resolver exception returns a redacted 500. Cookie-origin refusals retain
105
+ `path: "request:origin"`; REST and MCP share the kernel check.
106
+
107
+ When the manifest declares ref Procedures, pass the generated `Handlers` as
108
+ `rest({ db, caller, handlers })`; the option is type-required. Handler dispatch
109
+ uses the generated Store, preserving the Procedure's authorization contract.
110
+ Publishing visibility belongs to generated SQL; the REST module adds no status
111
+ filter. The app retains ownership of authentication and its other routes.
112
+
113
+ ## Optional web output
114
+
115
+ `web.ts` exports `web({ db, caller, origin, title, description, locales?, pages,
116
+ cacheControl? })`. `db` is the application-owned native handle, including callable
117
+ PostgreSQL handles. `caller` is a verified Caller or the app's
118
+ `(request, env, { readOnly }) => Caller | Promise<Caller>` resolver, evaluated once per request.
119
+ Generated REST/MCP/web callbacks classify reads; forward the third argument to
120
+ `resolveCaller` to permit an enabled cookie cache, as documented in
121
+ [authentication](../cloudflare/authentication.md#explicit-read-only-cookie-snapshots).
122
+ The module dispatches public Views only; it never invokes Procedures or needs handlers.
123
+
124
+ ```ts
125
+ import { web } from './generated/web.js';
126
+ const site = web({ db, caller, origin: 'https://example.com', title: 'Blog',
127
+ description: 'Articles', locales: ['en'],
128
+ pages: { '/posts/{slug}': { view: 'post-by-slug', list: 'posts', markdown: 'body' } }
129
+ });
130
+ const response = await site.fetch(request, env); // Response | undefined
131
+ const tags = await site.head(request, env); // HTML string, empty for unknown/missing pages
132
+ ```
133
+
134
+ Page parameter names must exactly match the View's declared input properties.
135
+ Page and list Views must return the page parameters; list Views must accept empty input. Markdown
136
+ must name a textual output column. HTML remains application-owned.
137
+
138
+ `/llms.txt` and `/sitemap.xml` traverse each list's `nextCursor`; `.md` and head
139
+ read the current page View. SQL alone controls visibility, including publication.
140
+ GET/HEAD responses include content-derived SHA-256 ETags. Anonymous responses use
141
+ `cacheControl` or `public, max-age=60`; authenticated responses use
142
+ `private, no-store`. `If-None-Match` returns 304 only after current content is read.
143
+ Canonical URLs use the configured origin, independently of the request host.
144
+ The current implementation adds hreflang only for `locales[0]`; translation-aware
145
+ indexes and head tags are a follow-up below. Importing another generated entry
146
+ does not import web output.
147
+
148
+ Web indexes scan at most 50,000 rows for one sitemap and 5,000 for `llms.txt`,
149
+ across all configured lists. Skipped `.`/`..` path segments consume the scan
150
+ budget too. Output stops before exceeding 50 MiB of UTF-8 sitemap XML (including
151
+ its closing tag) or 1 MiB of `llms.txt`; a sitemap index can be added separately.
152
+ Each request also stops after 100 sitemap queries or 10 `llms.txt` queries,
153
+ across all templates. Small authored SQL LIMITs or many templates can truncate
154
+ output sooner. A sitemap index remains separate future work.
155
+
156
+ `head` normalizes URLs from the queried row's page parameters, matching sitemap
157
+ URLs; malformed paths, failed validation and unavailable rows return an empty
158
+ string. A NULL Markdown field answers 404. Errors and missing Markdown responses
159
+ use `cache-control: no-store`. A matching HTML page takes precedence over a `.md`
160
+ alternate, including slugs ending in `.md`; a Markdown alternate may read the
161
+ exact HTML candidate first and therefore performs at most two View queries.
162
+
163
+ ## Mounting MCP
164
+
165
+ Mount the generated `mcp({ db: env => env.DB, caller })` handler in the app's
166
+ Fetch entry. It returns `undefined` outside `/mcp` and `/mcp/admin`. Install the
167
+ optional official `@modelcontextprotocol/server` peer when selecting MCP; its
168
+ transport loads on the first matching request. Pass `handlers` when ref
169
+ Procedures are declared, as for REST. Admin tools are listed only on the admin
170
+ endpoint, and publishing visibility belongs to the generated SQL.
171
+
172
+ The app resolves bearer tokens with `resolveCaller(request, auth, { audience:
173
+ new URL('/mcp', request.url).href })` (both surfaces use `<origin>/mcp`). The app
174
+ must also mount Better Auth's `/.well-known/oauth-protected-resource/mcp`
175
+ metadata route. Auth challenges point to that route. Presented bearer credentials
176
+ need the `mcp` scope; cookie sessions use the same-origin mutation checks.
177
+
178
+ Generation emits `mcp.ts` only for a non-internal View or MCP Trigger. These
179
+ surfaces typecheck without the `@modelcontextprotocol/server` 2.1.0 peer.
180
+ The peer loads by dynamic import on the first matching `/mcp` request; if
181
+ missing, that request fails at runtime. Publishing alone does not select MCP;
182
+ on a selected
183
+ surface its generated `publish_<schema>`, `unpublish_<schema>` and
184
+ `archive_<schema>` tools use the same snake-case naming rule, are admin-only
185
+ and take `{ id, expectedVersion }` through the shared generated validation.
186
+
187
+ `/mcp/admin` admits only admins: `isAdmin(caller)` must hold. Better Auth’s admin plugin `adminRoles` defines this layer (default `["admin"]`); the application supplies its verified Caller. MCP bodies are limited
188
+ to 1 MiB (1,048,576 bytes). Resource metadata challenges use the origin of
189
+ `request.url`; behind a proxy, the app must pass a Request with its public
190
+ origin so the audience and metadata URL point to the client-visible service.
191
+
192
+ Selected integer cursor keys may be exact canonical decimal strings on either dialect; SQLite cursor binds are cast to INTEGER so grouped expressions and native columns compare the same value; they are bounded to the declared integer range. This applies to cursor metadata only and does not change bare query or Store integer outputs, or recover integers already rounded by a native driver. `validCursor` is shared with selected boundary adapters.
193
+
194
+ Cursor casts target only proved AST bind nodes, preserving authored SQL literals. Paging proofs respect the compiler's lexical table/CTE identity. Explicit CTE or relation column renaming is currently refused for paging because uniqueness has not been proved through those aliases; internal bare queries remain available.
195
+
196
+ A paged View's output names must not collide with its actual hidden cursor keys (`_k0` through `_kN-1`); SQLite compares aliases without case sensitivity. Such internal Views keep their bare entry but receive no paged entry. Other output names remain available.
197
+
198
+ ## Selected Admin bindings
199
+
200
+ See [Native Admin](../guides/native-admin.md) for the single
201
+ current contract: three packages, explicit generation and app mounting, shared
202
+ whitelisted get/page/statistics templates, native Procedure fragments, generated
203
+ input checks, exact OCC and optional capabilities. These features are implemented
204
+ as an explicit option.
205
+
206
+
207
+ ### MCP catalogue and callbacks
208
+
209
+ `mcp({ db, caller, handlers?, locale?, instructions?, serverInfo?, requiredScopes?,
210
+ resourceMetadata?, onObservation?, onRefusal? })` keeps the SDK behind its first
211
+ request. Locale defaults to `en`; localized titles/descriptions fall back to
212
+ English, then their first entry. Views advertise `readOnlyHint`; Procedures use
213
+ their declared MCP annotations. `instructions` is returned by initialize.
214
+ The scope floor defaults to `["mcp"]` for every credential except cookie sessions;
215
+ `requiredScopes: []` disables that floor. An anonymous closed surface challenges
216
+ from initialize, and every call in a batch is checked before any call runs.
217
+ `resourceMetadata` overrides the challenge URL for reverse proxies.
218
+
219
+ `onObservation` receives request refusals and invocation attempt/completion
220
+ metadata, including duration and outcome. Its Caller and scopes are frozen copies.
221
+ `onRefusal` receives credential/origin refusals. Neither callback receives request
222
+ headers, bodies or tokens; delivery failures never change the business response
223
+ and promises are not awaited. The application owns callback delivery.
224
+
225
+ **Procedure output:** SQL Procedures retain the native `{ results }`
226
+ contract rather than 0.2's authored output projection/validation; MCP advertises
227
+ that object envelope, not the incompatible authored schema. Ref Procedures expose
228
+ the application's typed return value and advertise their authored object output
229
+ schema. The application owns ref output validation. MCP does not decode or
230
+ revalidate native database rows. Business failures carry diagnostics in text;
231
+ with an output schema they omit `structuredContent` to avoid validating an error
232
+ against a success schema. Without one they also expose diagnostic structured
233
+ content. MCP adds no prompts or non-UI resources.
234
+
235
+ ### Declared View scalars on the wire
236
+
237
+ REST and MCP View pages expose declared JSON columns as JSON values and declared
238
+ boolean columns as booleans, including explicitly authored SQL aliases. SQLite
239
+ and D1 conversions are compiled into only the selected boundary pages;
240
+ PostgreSQL already-native JSON/boolean values pass through. SQL NULL stays null and absent
241
+ fields stay absent. Expressions without declared column lineage stay native.
242
+ Malformed persisted JSON becomes a redacted internal failure. The conversion
243
+ adds no database operations and does not mutate native query rows.
244
+
245
+ Bare Views, Store rows, native SQL Procedure `{ results }` and application-owned
246
+ ref outputs retain their native contracts. Use the generated `rest()` / `mcp()`
247
+ module for this client wire contract; do not duplicate JSON/boolean decoding in
248
+ application route handlers or decode PostgreSQL JSON strings a second time.
249
+
250
+ Declared integer columns (including a selected system `version`) on every target
251
+ use the wire form: safe integers become JSON numbers; unsafe values remain exact
252
+ decimal text. Selected-boundary SQL casts integers to text before driver conversion,
253
+ preserving stored int64 values on D1 too. Values already rounded when written
254
+ (e.g. by a JavaScript number) cannot be recovered. Computed outputs and native
255
+ SQL Procedure/ref results retain their native values.
256
+ Unexpected surface failures log only a stable wire classification.
257
+
258
+ MCP locale fallback reads only own locale entries, then English, then the first
259
+ own entry; inherited property names never become titles or descriptions.
260
+
261
+ ### Admin media MCP tools
262
+
263
+ With generated site configuration, `mcp({ db, caller, media: env => storage })`
264
+ loads the media module only on a configured admin MCP request and
265
+ adds `get_media_upload_policy`, `create_media_upload`, `commit_media_upload`,
266
+ `list_media_assets`, `get_media_asset`, `update_media_asset` and
267
+ `delete_media_asset` to `/mcp/admin` only. `storage` is the same `MediaStorage`
268
+ used by the Admin media library. Omitting `media` omits all seven tools.
269
+ Admins can invoke them; cookie writes retain the origin check.
270
+ Generated boundary code checks each input and advertises the 0.2 schemas and
271
+ read-only/destructive/open-world hints. Image bytes are PUT directly to the
272
+ returned short-lived URLs with their required headers, then committed; bytes
273
+ never enter MCP. Store permanent asset ids, never upload URLs.
274
+
275
+ Generation always emits a `Handlers` type (empty when no Procedure uses `handler: { ref }`), so every app wires the
276
+ same way: `const handlers: Handlers = {...}`, then `store(db, caller, { handlers })`, `adminBindings({ handlers })`,
277
+ `rest({ ...options, handlers })`, `mcp({ ...options, handlers })` and `webmcpRoutes(catalogue, tools, handlers)`.
278
+ Type extra hand-written tools as `Tool<Handle, Handlers>` with the generated `Handlers` before combining them with
279
+ the generated `tools`. Handler-less apps may still omit `{ handlers }` at `store()` and `adminBindings()`.
@@ -1,104 +1,35 @@
1
- ---
2
- description: Trigger field reference for Mantle 0.2.0 — http, mcp, lifecycle and schedule sources, POSIX cron and its Cloudflare translation, and the diagnostics each raises.
3
- ---
4
1
  # Trigger
5
2
 
6
3
  ```yaml
7
4
  apiVersion: cms.mantle.aotter.net/v2
5
+ kind: Schema
6
+ metadata: { name: tickets }
7
+ spec:
8
+ title: Tickets
9
+ lifecycle: operational
10
+ schema: { type: object, required: [closed], properties: { closed: { type: boolean } } }
11
+ ---
12
+ apiVersion: cms.mantle.aotter.net/v2
13
+ kind: Procedure
14
+ metadata: { name: close-ticket }
15
+ spec:
16
+ requires: { auth: { all: [ctx.admin] } }
17
+ input: { type: object, required: [id, version], properties: { id: { type: string }, version: { type: integer } }, additionalProperties: false }
18
+ output: { type: object }
19
+ handler: { sql: 'UPDATE tickets SET closed=true WHERE id=input.id AND version=input.version RETURNING id,closed' }
20
+ ---
21
+ apiVersion: cms.mantle.aotter.net/v2
8
22
  kind: Trigger
9
- metadata: { name: place-order-http }
23
+ metadata: { name: close-ticket-http }
10
24
  spec:
11
- source: { kind: http, method: POST, path: /api/orders }
12
- target: { procedure: place-order }
25
+ source: { kind: http, method: POST, path: '/api/tickets/{id}/close' }
26
+ target: { procedure: close-ticket }
13
27
  ```
14
28
 
15
- `target.procedure` names a declared Procedure
16
- (`TRIGGER_TARGET_PROCEDURE_UNKNOWN`). Several Triggers may target one
17
- Procedure; each source runs it as an `Invocation` with the same `requires`,
18
- guard and validation.
19
-
20
- ## `http`
21
-
22
- | Field | Values |
23
- |---|---|
24
- | `method` | `POST`, `PUT`, `PATCH`, `DELETE` (reads are Views) |
25
- | `path` | starts with `/api/` (`TRIGGER_PATH_INVALID`); `{param}` segments bind to inputs of the same name, coerced to their declared types |
26
-
27
- The REST surface answers it. The JSON body and the path parameters merge into
28
- the input (a path parameter wins). A `(method, path)` pair is unique
29
- (`TRIGGER_PATH_COLLISION`); a route with fewer parameters is tried first, so
30
- `/api/items/search` is not shadowed by `/api/items/{id}`. The answer is the
31
- Procedure's output, or `{ "error": … }`. `ctx.cause.kind` is `http`.
32
-
33
- The body is parsed JSON. For a signed webhook, verify the raw body in the
34
- service's own `fetch` and call `runtime.invokeProcedure`.
35
-
36
- ## `mcp`
37
-
38
- | Field | Values |
39
- |---|---|
40
- | `surface` | `public` (`/mcp`) or `staff` (the staff MCP surface; also an Admin operation) |
41
-
42
- The tool is named after the Procedure, kebab to snake case
43
- (`MCP_TOOL_NAME_COLLISION` when two names meet). Give the Procedure a
44
- `description` (`MCP_TOOL_DESCRIPTION_MISSING` warns). `ctx.cause.kind` is
45
- `mcp`.
46
-
47
- ## `lifecycle`
48
-
49
- | Field | Values |
50
- |---|---|
51
- | `schema` | the Schema watched (`LIFECYCLE_SCHEMA_UNKNOWN`) |
52
- | `on` | non-empty: `before_create`, `after_create`, `before_update`, `after_update`, `before_delete`, `after_delete`, `before_publish`, `after_publish` |
53
-
54
- The target is a `ref` Procedure (`LIFECYCLE_TARGET_NOT_REF`). `ctx.cause` is
55
- `{ kind: "lifecycle", trigger, hook, schema, rows, id }`.
56
-
57
- - A **before** hook runs before the batch, receives the one row (for an insert,
58
- the row about to be written), reads only, and rejects by throwing; nothing is
59
- applied. The write then locks the version the hook saw. Before hooks on one
60
- operation run in Trigger-name order.
61
- - An **after** hook runs after the commit, once per statement and Trigger, with
62
- every written row in `rows` (each with `id` and `version`). A failure is
63
- logged and never undoes the write. `id` is stable for a replay.
64
-
65
- A hook sees the originating caller. Any path that writes the Schema fires its
66
- hooks: SQL Procedures, `ctx.store`, Admin. A set op on a Schema with a before
67
- hook for that operation is refused.
68
-
69
- ## `schedule`
70
-
71
- | Field | Values |
72
- |---|---|
73
- | `cron` | five-field POSIX cron in UTC; weekday 0 = Sunday |
74
- | `enabled` | optional, default `true` |
75
-
76
- The target runs as the system caller with input `{}`. It may not declare
77
- `requires.auth` predicates (`SCHEDULE_AUTH_INVALID`), and its input must
78
- accept an empty object (`SCHEDULE_INPUT_INVALID`). `ctx.cause` is
79
- `{ kind: "schedule", trigger, cron, scheduledTime, id: "<trigger>:<scheduledTime>" }`.
80
-
81
- The service passes `schedules: true` to `createMantle`; without it boot
82
- refuses an enabled schedule (`SCHEDULE_NOT_WIRED`). The Cloudflare preset
83
- passes it. The Bun preset has no scheduler, so `mantle generate --host bun`
84
- refuses an enabled schedule; use host `none` with your own scheduler calling
85
- `invokeSchedule(cron, scheduledTime, env)` on what `createMantle` returns.
86
-
87
- ### Cloudflare
29
+ The target names a declared Procedure. `http` sources use POST/PUT/PATCH/DELETE and an `/api/` path. Path parameters bind to corresponding declared input fields and override JSON-body values. The generated REST module retains the Procedure's authorization and validates boundary input.
88
30
 
89
- Cloudflare numbers weekdays 1 (Sunday) to 7. `toCloudflareCron` from
90
- `@aotter/mantle/cloudflare` adds one to every explicit weekday number and
91
- leaves `*`, names and the other fields alone:
31
+ An MCP source is `{ kind: mcp, surface: public }` or admin. The selected MCP module exposes the Procedure as a snake-case tool with its declared description/annotations and requires checks.
92
32
 
93
- | POSIX (manifest) | Cloudflare (`wrangler.jsonc`) |
94
- |---|---|
95
- | `0 3 * * 0` | `0 3 * * 1` |
96
- | `0 9 * * 1-5` | `0 9 * * 2-6` |
97
- | `*/5 * * * *` | `*/5 * * * *` |
33
+ Lifecycle and schedule sources are rejected at generation with `GENERATE_UNSUPPORTED`, including disabled schedules. Use an app-owned handler or scheduler. For signed webhooks, verify the original raw Request in the app and call a generated Procedure with validated input; do not route it through a JSON boundary before signature verification.
98
34
 
99
- It refuses what it cannot translate faithfully: `?`, `L`, `W`, `#`, weekday
100
- `7`, numbers with a leading zero, a backwards range, a name with a step, and a
101
- day of month together with a weekday. `mantle generate` runs it on every
102
- enabled schedule and fails before writing on a refusal. The generated
103
- `src/index.ts` maps Cloudflare's cron back to every POSIX expression that
104
- shares it.
35
+ See [surfaces](surface.md) for mounted paths, error mapping and origin checks.