@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,63 +0,0 @@
1
- # ADR-0038: Bun is a native host
2
-
3
- **Status:** Accepted for 0.2.0. Amends ADR-0036's reserved Bun host.
4
-
5
- ## Decision
6
-
7
- `@aotter/mantle/bun` owns native drivers and Admin files. Core remains host-neutral;
8
- PostgreSQL retains policy, convergence, SQL printing, SERIALIZABLE retries, timeout
9
- and error mapping. `host: bun` defaults to `dialect: postgres` on first selection.
10
- The CLI writes an application-owned Bun.serve entry and service once. Both native
11
- PostgreSQL and bun:sqlite presets exist; neither imports Cloudflare or pg.
12
-
13
- The PostgreSQL host takes a Bun.SQL pool configured with `prepare: false`.
14
- Bun's prepared JSON parameter encoding serializes an already encoded JSON string
15
- again. Refuse another configuration rather than silently changing stored values.
16
- Pool reserve/release binds every operation to one connection. The host closes
17
- its pool after the server and retained background work stop.
18
-
19
- Bun exposes raw results without OIDs/typmods. Obtain exact result metadata from
20
- `CREATE TEMP TABLE ... AS <query> WITH NO DATA`, read pg_attribute and drop the
21
- temporary table, then execute the original statement once with raw text results.
22
- A DML description is a data-modifying CTE under WITH NO DATA, which does not
23
- execute its body. PostgreSQL owns all type inference, including numeric scale,
24
- CASE, COALESCE and CTEs. Each descriptor runs in the statement's existing pinned
25
- transaction. Views use a regular transaction because temporary DDL is forbidden
26
- in READ ONLY: a read describes first, then runs `SET TRANSACTION READ ONLY` before
27
- the statement, so the engine still refuses a write as it does on every other
28
- PostgreSQL host. Creating the temporary table needs the TEMPORARY privilege on the
29
- database (`GRANT TEMPORARY ON DATABASE ... TO <role>`); without it every read fails
30
- with 42501 naming this requirement, and a read replica cannot serve this host.
31
- Every transaction appends `pg_temp` to its search_path, on every PostgreSQL host,
32
- so a temporary table on a pooled session never stands in for a Schema table (unless
33
- the role's own search_path already names pg_temp earlier, which it should not).
34
- A connection whose ROLLBACK failed is closed, never released to the pool.
35
- This costs three metadata round trips per result. Replace it only when Bun
36
- provides public RowDescription metadata; do not approximate money or time values.
37
-
38
- The entry overwrites the trusted IP header from the socket; behind a reverse proxy
39
- listed in TRUSTED_PROXIES, the client is the address that proxy appended last to
40
- X-Forwarded-For (one trusted hop; an IPv4-mapped socket address is matched as
41
- IPv4), so each client keeps its own sign-in rate limit. Bun.serve runs
42
- with `development: false` and an error handler that answers Core's 500 envelope: Bun's
43
- development page would show the exception, stack and paths. Admin assets reject
44
- traversal, control characters and symlinks outside the installed bundle.
45
- bun:sqlite runs with foreign keys on, as D1 does, and a Mantle batch waits for a
46
- Better Auth transaction open on the same handle instead of becoming its savepoint.
47
- Local OTP requires an explicit loopback PUBLIC_ORIGIN, a secret and bootstrap
48
- email, as Cloudflare does.
49
-
50
- Bun has no built-in cron scheduler in this preset. Enabled schedule Triggers are
51
- refused before files are written; an application that supplies a scheduler uses
52
- host none and invokes Mantle's schedule ingress explicitly. No polling scheduler,
53
- workflow engine or new manifest grammar is introduced.
54
-
55
- ## Verification
56
-
57
- Native PostgreSQL and SQLite run the same storage conformance suite. Native
58
- regressions cover result names, JSON scalar/array values, exact numeric typmods,
59
- microsecond timestamps, CTE/comment queries, star targets, connection
60
- reservation, read-only reads, statement_timeout, pg_temp ordering, foreign keys,
61
- transactions on a shared bun:sqlite handle and actual Better Auth
62
- OTP/bootstrap-owner login on both engines. Both generated presets typecheck
63
- against bun-types. CI installs pinned Bun and runs these on every PR.
@@ -1,96 +0,0 @@
1
- # Architecture Decision Records
2
-
3
- Records of *why* mantle ended up shaped this way. The numbering preserves POC ADR numbers where carried over (so cross-references in code comments and external docs stay valid); new ADRs continue from the highest used number.
4
-
5
- ## ADRs
6
-
7
- | # | Title | Status |
8
- |---|---|---|
9
- | [0001](0001-four-atom-manifest-model.md) | Four-atom manifest model (Schema / View / Procedure / Trigger). Folds POC ADR-0005 (grammar discipline) and POC ADR-0006 (multi-doc YAML). | Accepted; fixed-file contract superseded |
10
- | [0002](0002-closed-enums-for-bindings.md) | Closed enums for `x-mantle-bind` and `ctx.*` predicates. | Accepted (refreshed) |
11
- | [0007](0007-ai-as-primary-author.md) | AI is the primary author of consumer projects; SDK contract is three pre-serve feedback loops, runtime diagnostics, and coder/operator role surfaces. | Accepted + amended |
12
- | [0008](0008-structured-diagnostic-shape.md) | Diagnostic shape for validate/boot/runtime failures, with a reserved consumer-test phase; measured harnesses keep purpose-shaped reports. | Accepted + amended |
13
- | [0009](0009-consumer-supplied-manifests.md) | Historical generated-array workflow; consumer source ownership continues in ADR-0019. | Superseded by 0019 |
14
- | [0010](0010-locale-and-translates.md) | Locale 3-layer (manifest / D1 site_config / data field) + translates pattern. Boot decoupled from `site_config` (issue #60 fix). | Accepted (refreshed) |
15
- | [0011](0011-adapter-port-spec.md) | Adapter port spec. Required runtime ports plus optional feature ports. | Superseded by 0019 (Core storage, Admin composition) and 0024 (SQLite/D1 storage); retained as the alpha.7 Cloudflare adapter record |
16
- | [0012](0012-views-as-public-rest.md) | Views auto-expose matching REST and `query_view_*` MCP reads on their declared `public` or `staff` surface. Schemas never get a public REST endpoint. | Accepted + amended |
17
- | [0013](0013-agent-provisioned-consumer-projects.md) | Historical agent-provisioned consumer projects path. | Superseded by 0021 |
18
- | [0014](0014-auth-better-auth-and-multi-tenant-mcp.md) | The Cloudflare adapter owns one Better Auth 1.7 identity/OAuth/MCP authority with native method options and CIMD discovery. Verified callers are normalized into runtime context; mutable staff role and target authorization are re-evaluated per call. | Accepted + amended; auth ownership amended by 0032 |
19
- | [0016](0016-site-semantic-layer.md) | Historical Starter/Landing `AGENTS.md` and launch-state contract. | Superseded by 0021 |
20
- | [0017](0017-media-multi-variant-agent-side-optimization.md) | Multi-variant media assets with agent-side optimization and asset-id entry references. | Accepted |
21
- | [0018](0018-core-starters-repository-boundary.md) | Core produces published SDK artifacts; the separate starters repository validates them as an external consumer. Revisit after release-contract simplification. | Superseded by 0021 |
22
- | [0019](0019-sealed-manifest-runtime-pipeline.md) | One sealed source-to-runtime pipeline, semantic storage seam, and optional Web/Admin/platform dependency direction. | Accepted; optional boundaries become subpaths of two packages per 0032 |
23
- | [0020](0020-builtin-handler-contracts-and-matched-upsert.md) | Static builtin handler contracts and natural-key matched upsert (`handler.match`). | Accepted + amended by 0022 |
24
- | [0021](0021-retire-starter-scaffolding.md) | Direct authoring; retire Starter scaffolding. | Accepted; no-initialization clause superseded by 0026 |
25
- | [0022](0022-caller-observed-version-occ.md) | Caller-observed `expectedVersion` for Admin bind and builtin upsert OCC. | Accepted; Admin binding rules superseded by 0029 |
26
- | [0023](0023-port-failure-contract.md) | Storage and service failure contracts: resource, rate, outcome-unknown, partial-failure and precondition diagnostics with safe `failure` facts. | Accepted for alpha.17 (#857); amends 0008 |
27
- | [0024](0024-manifest-native-schema-tables.md) | Materialize each Schema as a native storage table and deploy reviewed migration artifacts. | Accepted; authored-native-name clauses superseded by 0025; migration workflow superseded by 0033 |
28
- | [0025](0025-reserved-native-columns-and-published-only-public-views.md) | Reserve the six native column names, let `indexes` reference them, and compile public publishing Views published-only. | Accepted |
29
- | [0026](0026-progressive-generate.md) | Progressive `mantle generate` with a full default, positive features, saved host selection, and user-owned source. | Accepted; supersedes part of 0021; dependency closure, identity and `--host` amended by 0032 |
30
- | [0027](0027-scheduled-procedure-triggers.md) | Schedule Triggers in the sealed plan with Cloudflare-hosted invocation and system identity. | Accepted for 0.1.5; cron dialect and host requirement amended by 0032 |
31
- | [0028](0028-schema-ttl-expiry.md) | Logical TTL on Schema reads with preview-first, explicit bounded cleanup. | Accepted for 0.1.5 |
32
- | [0029](0029-mcp-apps-interaction-contracts.md) | Official MCP SDK for all MCP wire handling; transport-neutral capability catalog with validate-once invocation; `@aotter/mantle-mcp` and `@aotter/mantle-ui`; Manifest-declared interaction contracts and MCP Apps (#1110). | Accepted; amends ADR-lite 909 |
33
- | [0030](0030-store.md) | Store: one persistence object (`ctx.store` / `runtime.store`) over one relational JSON query AST compiled by each adapter; first slice `select`, `view`, `id`, then `write`, then manifest grammar (#1151). | Accepted; completed for 0.2.0 by 0032; authoring amended by 0034 |
34
- | [0031](0031-host-cloud-core-contract.md) | Cloud supplies the Core pin before host artifact hashing; protocol 2 checks the pin through grants/kit; protocol 4 requires a verified source receipt before save. | Accepted |
35
- | [0032](0032-store-centric-core-and-service-contract.md) | 0.2.0: Store is the only entry persistence path; an application-owned service behind one host-neutral `createMantle`; one `Caller` identity and no Core-owned user or auth; `_mantle_` marks system tables only; two npm packages and one plugin. | Accepted for 0.2.0; decisions 1–5, 10 and 13 amended by 0034; decisions 6 and 12 by 0035 |
36
- | [0033](0033-storage-converges-to-the-plan.md) | Schema storage converges to the plan by introspection: Mantle applies safe additions, blocks the rest, and verifies author-made changes; no Mantle-written migration files. | Accepted for 0.2.0; amended by 0034 and 0035 |
37
- | [0034](0034-store-is-authored-as-sql.md) | Store is authored as SQL in the D1 dialect and compiled to IR by the CLI with `libpg-query`; no Worker parses SQL. The IR is the parser's AST under an exact allowlist, printed by `pgsql-deparser`; a chosen SQL subset with policy wrapped around every Schema reference; FTS5 search and R*Tree places; after hooks take row arrays; one SQLite executor; exact encodings for time and decimals. | Accepted for 0.2.0 (spike #1203); amended by 0035 and 0037 |
38
- | [0035](0035-sql-dialects.md) | Mantle SQL is PostgreSQL syntax and meaning; a dialect module runs it on one engine. D1 and PostgreSQL ship built in, and both pass the compliance suite. | Accepted for 0.2.0; amended by the PostgreSQL dialect (#1293), 0036 and 0037 |
39
- | [0036](0036-host-and-dialect.md) | A project picks a host (`cloudflare`, `none`) and a dialect (`sqlite`, `postgres`, a package) once; `mantle generate` writes the pair's preset; the host never enters the plan. | Accepted for 0.2.0; reserved Bun host amended by 0038 |
40
- | [0037](0037-postgresql-is-the-reference-dialect.md) | PostgreSQL is the reference dialect: one closed allowlist in Core (base and reference profiles), D1 runs the base subset; a View reads an internal View; `restrict` narrows at runtime; a statement timeout on PostgreSQL; Cloud's PostgreSQL connection stays with the platform. | Accepted for 0.2.0 |
41
- | [0038](0038-bun-native-host.md) | Bun is a native host: `@aotter/mantle/bun` owns the native SQLite and PostgreSQL drivers and Admin files; `host: bun` defaults to `dialect: postgres`; the CLI writes a `Bun.serve` entry once. | Accepted for 0.2.0 |
42
-
43
- ## Reading order
44
-
45
- If you're new to the codebase:
46
-
47
- 1. **0001** — what the 4 atoms are.
48
- 2. **0019** — the sealed source-to-runtime pipeline and optional product boundaries.
49
- 3. **0009** — historical context for consumer-owned manifests.
50
- 4. **0007** — what running the SDK feels like as an AI author (and as the operator agent).
51
- 5. **0011** — the boundary between the runtime and the adapter.
52
- 6. **0010** — how locale flows through the system.
53
- 7. **0026** — current progressive generation boundary; **0021** retains the direct-authoring history and **0013** is historical install-session context.
54
- 8. **0002, 0008** — the two ADRs that touch every diagnostic and every binding.
55
-
56
- ## What's NOT here (and why)
57
-
58
- POC had 16 ADRs. The rebuild ports the durable ones, writes fresh ADRs
59
- for new v0.1.0 boundaries, and folds / drops the rest:
60
-
61
- - **POC ADR-0003** OpenAPI emission → folded into `mantle-spec` README (the *what* is implementation; the *why* was already captured by ADR-0001's grammar lock).
62
- - **POC ADR-0004** D1 today, Hyperdrive PG tomorrow → folded into `mantle-cloudflare` README (now a v0.2 roadmap item, not an architectural decision).
63
- - **POC ADR-0005** v0.1 minimum grammar → folded into ADR-0001's fail-closed grammar policy.
64
- - **POC ADR-0006** multi-doc YAML → folded into ADR-0001 §"Authoring shape: multi-doc YAML."
65
- - **POC ADR-0011** lifecycle binary opt-in → distilled to a §"Lifecycle" subsection in `docs/design-atoms.md`. v0.1.0 ships `publishing` and `operational`.
66
- - **POC ADR-0012** strategic posture vs adjacent CMS designs → strategic / marketing material, lives in `README.md` if anywhere.
67
- - **POC ADR-0013** role-split surfaces (coder agent vs operator agent) → folded into ADR-0007 (Part B).
68
- - **POC ADR-0014** builtin handlers and lifecycle Triggers → promoted to v0.1.0 and implemented in the rebuild via `LifecycleHookingEntryRepository` and `InvokeBuiltinUseCase`. Full shape spec lives in `docs/design-atoms.md`.
69
- - **POC ADR-0015** cms-astro internal seam discipline → POC-specific to a package that no longer exists; replaced by ADR-0011 (adapter port spec).
70
- - **POC ADR-0029** drop Astro from cms-cloudflare → POC-specific historical record; the rebuild starts post-Astro.
71
-
72
- The rebuild's ADR-0011 (new) is the most load-bearing addition — the POC accumulated multiple *aspirational* boundaries (POC ADR-0015 was one; references in CLAUDE.md were another) without a single normative spec. ADR-0011 makes the boundary explicit and reviewable. ADR-0012 and ADR-0013 capture newer v0.1.0 product/runtime seams that were not present in the POC.
73
-
74
- ## Contributing a new ADR
75
-
76
- 1. Pick the next unused number after the highest existing ADR.
77
- 2. File: `docs/adr/<NNNN>-<kebab-title>.md`.
78
- 3. Sections: Status, Date, Context, Decision, Consequences, Alternatives, How to apply, Implementation status.
79
- 4. Link from this README's table.
80
- 5. Land it in a PR alongside (or before) the implementation it documents — ADR-as-design-artifact, not ADR-as-archaeology.
81
-
82
- ## ADR-lite records
83
-
84
- These retain their issue-based filenames and original decision status.
85
-
86
- | Record | Status |
87
- |---|---|
88
- | [#803 Request diagnostics](adr-lite-803-request-diagnostics.md) | Implemented |
89
- | [#808 Route readiness](adr-lite-808-route-readiness.md) | Accepted |
90
- | [#809 Bounded public content](adr-lite-809-bounded-public-content.md) | Implemented |
91
- | [#812 Native parity](adr-lite-812-native-parity.md) | Implemented; deployment evidence linked in record |
92
- | [#823 Home statistics](adr-lite-823-home-statistics.md) | Proposed; unmerged demo |
93
- | [#842 MCP authoring](adr-lite-842-mcp-authoring.md) | Accepted |
94
- | [#845 Frontend client](adr-lite-845-frontend-client.md) | Accepted |
95
- | [#861 Admin WebMCP](adr-lite-861-admin-webmcp.md) | Accepted |
96
- | [909 Admin UI kit](adr-lite-909-admin-ui-kit.md) | Accepted; amended by 0029 |
@@ -1,38 +0,0 @@
1
- # ADR-lite: request-scoped Cloudflare diagnostics
2
-
3
- Status: implemented diagnostic record for #803; real-auth controls and measured
4
- comparison acceptance belong to the #812 harness. This does not close the
5
- separate starter provisioning/Smart Placement portion of #803.
6
-
7
- Use native AsyncLocalStorage and a small versioned testing entry point instead of
8
- a global current-request counter or a configurable production telemetry system.
9
- Production mounts only check for an existing test context. With none, there are
10
- no diagnostic clock reads, binding wrappers, records, observers or response headers.
11
- Runtime, auth, role, catalog, dispatcher-build and dispatch retain their ownership
12
- and authorization order. The ordinary runtime-ready promise keeps its identity.
13
-
14
- Native D1 instrumentation sits beneath both Auth and Runtime and is idempotent.
15
- It preserves receivers, bind chains, first-column behavior and native objects in
16
- batches; no second driver observer is added for counting. Provider failures and
17
- unknown metadata remain visible. Request context is captured when an operation
18
- starts, so shared work belongs to its initiator. Catalog waiters inherit source
19
- classification and wait time without inheriting the owner's binding counts.
20
-
21
- The record freezes at response creation. Inclusive spans can overlap, and partial
22
- metadata or deferred work must not be presented as a full total. A test-only cloned
23
- MCP response supplies the JSON-RPC outcome without exposing its content; that
24
- inspection is outside totalMs but remains instrumentation overhead for HTTP timing.
25
- Observer errors never replace application results. D1/KV/R2 operations emit only
26
- counts, sizes with their source/coverage, and durations; object keys, SQL, caller
27
- identities and credentials never enter the record.
28
-
29
- R2 GET bodies stay native. Successful direct stream-to-PUT completion confirms
30
- payload bytes; canceled, incomplete and unconsumed reads remain unknown. This
31
- avoids losing R2's known-length stream property or hiding buffering overhead.
32
-
33
- Checks deliberately overlap MCP requests and share KV hit/failure loads, then
34
- retry after failure. Native I/O is counted once per owner, and denied requests
35
- leave unreached phases null. Additional checks preserve native D1 private receiver
36
- and batch semantics, sync/async observer failure, immutable deferred snapshots,
37
- R2 stream identity and partial-transfer uncertainty. The collector fixture labels
38
- its deterministic auth explicitly; it is not evidence of native-auth parity.
@@ -1,47 +0,0 @@
1
- # Route-owned Cloudflare readiness (#808)
2
-
3
- Status: accepted for the unreleased #806–812 implementation. Follows ADR-0019
4
- (preparation owns migrations) and amends ADR-0014's unconditional HTTP boot rule.
5
-
6
- The facade assembles immutable route projections once, then prepares only for
7
- routes that consume canonical storage. It retains one retryable preparation
8
- promise, the sealed plan and Better Auth's existing global AsyncLocalStorage,
9
- `ready` observation, failed-assembly eviction and HTTP `waitUntil` ownership.
10
-
11
- | Surface | Readiness, including an empty database |
12
- | --- | --- |
13
- | Consumer constant health, `/api/views` catalog | No content preparation. |
14
- | Static Admin shell and assets | No content preparation; incomplete Auth still fails closed as before. |
15
- | Manifest View/Trigger | Prepare before credential resolution, then use the same runtime invocation. |
16
- | Admin API, configured Auth base path, OAuth UI/discovery | Prepare before session/provider work. Auth tables share canonical migrations. |
17
- | MCP, including missing-token challenge | Prepare before the selected Auth verifier. A custom Auth implementation may require D1 even for a denied request; the facade cannot assume otherwise. |
18
- | Public page/list/discovery and favicon fallback | Their existing `ref.get()` starts preparation when content is needed. |
19
- | Consumer extension handlers | Call the supplied `getRuntime()` or `ref.get()` before using Mantle content or database-backed Auth. Pure handlers need neither. |
20
- | Queue/scheduled `getRuntime(env)` | Await both runtime preparation and Auth initialization, unchanged. |
21
-
22
- No deployment-time migration flag or KV readiness authority is introduced. A
23
- current database's first protected route needs one fingerprint SELECT; an empty
24
- or changed database performs canonical setup there. Concurrent first uses share
25
- that work. A failed preparation returns the facade's redacted 500, and later
26
- requests retry. Static availability is not a promise that data is ready.
27
-
28
- The pre-change full-facade fixture recorded 106 SQL operations for its empty-DB
29
- health request (its four Schemas include indexes), then 1 fingerprint operation
30
- for each new-state health/catalog/shell/challenge. These are statement counts,
31
- not network round trips. Its dry-run bundle was 3,921.40 KiB / 690.43 KiB gzip
32
- with Wrangler 4.124.0 and compatibility date 2026-07-08. Esbuild attributed
33
- 1,342,428 emitted bytes to Better Auth, 76,078 to Admin, 24,624 to Web and
34
- 203,130 to Runtime; the rest includes transitive libraries and adapter code.
35
- Byte attribution does not measure startup CPU. We retain static imports and
36
- immutable mount-time projections: deferring those modules has not yet been
37
- justified by a startup profile. The final #812 report owns the separate startup,
38
- preparation-wall and warm-dispatch measurements.
39
-
40
- Post-change full-facade workerd checks pass all 13 operation gates: empty-DB
41
- health and fresh-state health/catalog/shell perform zero **content** queries;
42
- the challenge retains its one fingerprint query. The fixture Auth is a stated
43
- stub. A separate real Better Auth regression records one eager oauthResource
44
- lookup while `ready` initializes; Better Auth 1.7.2 defers missing-table resource
45
- seeding to first access. Subsequent static requests perform no additional Auth
46
- queries. This background initialization is retained, not counted as eliminated
47
- content preparation or hidden behind a zero-total-SQL claim.
@@ -1,71 +0,0 @@
1
- # ADR-lite: bounded public content and complete discovery
2
-
3
- Status: implemented for #809; combined deployment measurements tracked in #812.
4
- Context: ADR-0010 translation joins, ADR-0019 sealed semantic storage, #792 Web
5
- transport/cache ownership. No manifest keys or remote Web SDK are introduced.
6
-
7
- ## Decision
8
-
9
- Add the semantic `EntryReader.readPublishedPage` operation instead of silently
10
- capping generic `readPublished`. Forward pages sort by updatedAt and id descending,
11
- with default 50 / maximum 2,000 rows and a 1-MiB data-JSON budget. A single larger
12
- entry remains readable and advances the cursor. This budget covers the selected
13
- canonical data, excluding envelope bytes, joined parents, media and consumer HTML.
14
- SQLite uses indexed, bounded candidates, a running byte sum and lookahead before
15
- transfer to Worker memory. Exact locale plus shared entries are merged in SQL.
16
- Selected data fields retain JSON types and use one bound JSON field list, including
17
- for projections larger than D1's ordinary bind or SQL-function argument limits.
18
-
19
- The optional Web use cases return an explicit page object. Cloudflare mounts
20
- publish `Link: rel="next"` and map cursors to URLs. Web passes `nextPageUrl` to
21
- the list template; the host renders accessible navigation with its own language
22
- and design. The adapter does not rewrite template HTML. Existing templates must
23
- adopt this field to retain visible continuation. Web-owned llms composition
24
- retains its body link. An empty intermediate/final llms page remains traversable.
25
- Root llms reads each canonical page once and expands shared entries per locale
26
- without repeated canonical reads. Unknown/unmapped/no-content rows consume their
27
- place in the page; they do not prevent reaching later eligible rows.
28
-
29
- Sitemap parts project path metadata and default to 2,000 entries, expanding shared
30
- routes per locale. The index walks the same metadata-page boundaries as the parts,
31
- so a byte-limited part cannot cause skipped URLs. Small sites keep a single urlset.
32
- Additional routes appear only in the first part. A custom path resolver must declare
33
- its required data fields to obtain projection; otherwise full bounded data remains
34
- available. Protocol limits fail explicitly instead of silently truncating URLs.
35
-
36
- Translation lists request only the newest published parent per join value. Storage
37
- ranks matching IDs before loading their bodies, preventing duplicate historical
38
- parents from multiplying transferred rows. Missing/draft parents leave the child
39
- unchanged. Child data still wins and media resolution remains one batch per page.
40
-
41
- ## Limits and alternatives
42
-
43
- Sitemap index generation is O(N) metadata work on an origin MISS. It retains one
44
- page and the index's URL list rather than all entry bodies; the protocol permits
45
- at most 50,000 parts. Persisted generation/part boundaries would require an explicit
46
- publication/invalidation owner and are deferred until index traffic justifies it.
47
- A hard `LIMIT 500` would lose discovery URLs and is rejected. Offset pages would
48
- make deep traversal grow with depth and are rejected. Entry caching would leave
49
- the cold materialization spike and stale-state questions unresolved.
50
-
51
- Pages reflect live canonical state, not a cross-request snapshot: publishing or
52
- changing sort keys during a crawl can move entries between pages. Browser-local
53
- IndexedDB shares the semantic cursor and output budget but still scans a local
54
- collection. Parent/media data and consumer template expansion have separate costs;
55
- there is no promise that arbitrary consumer rendering fits 1 MiB.
56
-
57
- ## Verification
58
-
59
- Real SQLite tests walk the 18 combinations of 100/10,000/50,000 rows, 64 B/4 KiB
60
- body and 1/3/10 locales, comparing complete llms/sitemap URL sets. List transfer is
61
- 21 rows at limit 20 in every case; 50,000 mixed rows and 10 locales retain all
62
- 275,000 URLs. Tests cover tied sort keys, >1-MiB entries, JSON projection types,
63
- missing projected keys, parent duplicates/missing/drafts, child overrides, media
64
- batching and persistence-field privacy. HTTP tests walk visible continuations,
65
- empty final pages, sitemap indexes and staff-only preview behavior. The portable
66
- storage conformance suite checks new semantics across adapters.
67
-
68
- Wrangler-local records native D1 query/row work for list, llms and sitemap alongside
69
- existing readiness, View, Procedure and Admin gates. Node traversal CPU/RSS includes
70
- fixture/assertion costs and is not reported as Worker CPU. Combined #812 evidence
71
- will supply Worker CPU, heap, cache HIT/MISS, remote controls and placement results.
@@ -1,150 +0,0 @@
1
- # ADR-lite: native and full-facade performance evidence (#812)
2
-
3
- Status: implemented; local gates passed. The deployment report and per-block
4
- budget verdicts are maintained in [PR #821](https://github.com/aotter/mantle/pull/821).
5
-
6
- The existing HTTP harness now records TTFB and full-body timing separately,
7
- response bytes, and bounded concurrent arrivals. `pnpm bench:wrangler` keeps the
8
- old row/query regressions and adds a native smoke matrix. `pnpm bench:parity`
9
- runs the larger matrix, real Better Auth PKCE/OTP/consent/JWT/DPoP issuance,
10
- revocation/role/replay denials, prepared D1 across fresh workerd processes, and
11
- R2 transfers. No token, cookie, proof, user ID, SQL, argument or object key enters
12
- the diagnostic record. Only the secret-protected synthetic fixture has control
13
- endpoints; never bind it to a consumer database or bucket.
14
-
15
- ## Controls and boundaries
16
-
17
- | Layer | Work |
18
- |---|---|
19
- | F0 | Fixed fetch response; standalone `floor-worker.ts` measures module/bundle floor. R2 F0 performs HEAD only. |
20
- | F1 | Hono + native SQL and the same public payload; no authentication. |
21
- | F2 | Native Worker, shared real Auth/session/consent/fresh-role/DPoP checks, SQL compiler and validators, response envelope. MCP shares protocol dispatch and View execution; unmeasured mutations fail closed. |
22
- | M | Full `createMantleWorker`, same sealed plan, bindings, data and security policy. R2 uses the production storage commit adapter directly. |
23
-
24
- Protected parity is F2/M. The View and catalog response bodies must match, drafts
25
- stay private, and auth/protocol errors must fail correctly. Procedure input errors
26
- compare status/code, not complete diagnostic wording. Admin/Web are facade coverage,
27
- not a matched-native claim. R2 measures native stream metadata commits and failure/
28
- retry; D1 MediaAsset publication is covered by the separate #810 integration test.
29
- The shared comparison bundle intentionally keeps dependencies/configuration equal;
30
- it cannot measure the difference between standalone application bundle sizes.
31
-
32
- The planner runs outside workerd. Route/Schema/View axes each use 1/10/100/1,000;
33
- extra Schemas are unindexed to keep the index-count axis fixed. Each Schema is a
34
- native table, so the axis is not a claim that 1,000 simultaneous Schema tables
35
- are an advisable production design. Body/row axes use 64 B/4 KiB and
36
- 100/10,000/50,000;
37
- locales use 1/3/10, MCP client concurrency uses 1/4/8, R2 uses 1/3/12 variants at
38
- 1/64/256 KiB. Actual simultaneous arrivals can be below client concurrency. The remote fleet
39
- can add isolates during a batch. A request is repeat-in-isolate only after that
40
- exact workload previously completed there; overlapping first arrivals stay in
41
- the first-for-workload cohort. Two global warmups alone cannot prove a warm fleet.
42
- First requests retain their raw records and a bounded extra-six-statement setup
43
- allowance; repeat MCP requests must meet the exact two/three/four-statement gate.
44
- Parity summaries use repeat cohorts; first-for-workload does not necessarily mean
45
- cold module startup (another workload may already have used that isolate).
46
-
47
- ## Stable gates and measured signals
48
-
49
- - Indexed public View: one statement and at most 100 available rows read at every
50
- tested data size. MCP catalog: two statements (grant + fresh role), one KV GET;
51
- View: three statements with Bearer, four with native DPoP replay reservation.
52
- - Selected Trigger: four segment lookups at every route count in the portable
53
- regression; native last-route requests retain one statement at 1,000 routes.
54
- - Public HTML/llms: two warm statements and less than 1 MiB selected JSON. Sitemap
55
- index remains explicit O(N) metadata work to enumerate complete part links.
56
- - R2: exactly N GET + N PUT, known full-body bytes, at most three transfers in
57
- flight; a first-batch failure starts no later batch and a retry succeeds.
58
- - Fixture HTTP bodies at most 2 MiB; inspector heap after each batch at most
59
- 96 MiB. This is an observed JS heap ceiling, not instantaneous peak memory or
60
- retained-after-GC heap. Custom application templates retain their own limits.
61
-
62
- The default fixture bundle gate is 4,500 KiB raw / 800 KiB gzip (measured
63
- 3,699.93 / 647.98 KiB). The standalone F0 is 0.52 / 0.34 KiB; a 1,000-route
64
- fixture is 4,051.18 / 668.60 KiB. Larger manifest-axis builds are reported
65
- separately. Module startup profiles are a local diagnostic; actual deployed
66
- startup must remain below the provider limit and is recorded during acceptance.
67
-
68
- No cross-machine latency gate is used. CDP batch samples estimate local active JS
69
- (including warmup); they are not per-request or billing CPU. Native Tail CPU/wall
70
- are correlated by random request ID only in remote runs; unavailable timing stays
71
- null. D1 metadata sums cover only `metadataStatements`; native Auth `.first()` does
72
- not return rows/duration, and zero cannot substitute for that missing coverage.
73
-
74
- The 2026-09-08 full local run contained 2,697 measured requests / 144 cases, no
75
- unexpected HTTP status, max response 84,185 B, and max observed heap 67,103,480 B.
76
- The observed F2/M p50 full-body delta for the 50k-row/4KiB View was -0.347 ms
77
- (95% within-run bootstrap interval [-0.727, 0.128]); MCP catalog +0.903 ms
78
- [0.470, 1.070]; Bearer MCP View -0.578 ms [-1.235, 0.329]. These are localhost
79
- measurements, not a remote parity conclusion. Ten orthogonal route/Schema/View
80
- runs and both extra locale runs also passed. Self-review corrected a fixture that
81
- accidentally scaled indexes with Schemas, an English-only page assertion in the
82
- multilingual fixture, and missing D1 metadata incorrectly summarized as zero.
83
-
84
- ## Remote difference budget (calibrated 2026-09-08)
85
-
86
- The first complete off-a block (05:44:20–05:57:16 UTC, SDK 1798e78) contains
87
- 1,385 requests with 100% native CPU coverage, 46 first-for-workload arrivals and
88
- no unexpected status failures. Public cache returned MISS then HIT; the HIT
89
- had no invocation record. Warm F2/M CPU medians match at 0 ms health, 2 ms View,
90
- 1 ms Procedure, 2 ms MCP catalog and 3 ms Bearer MCP View. DPoP medians differ
91
- by 0–1 ms; the largest within-run CPU delta upper interval is 2 ms. One hundred
92
- requests per layer/diagnostics mode measure roughly +1 ms median CPU for the
93
- collector itself on both layers. This is native millisecond-resolution telemetry.
94
-
95
- Freeze this initial budget before evaluating the on-a/off-b/on-b blocks:
96
-
97
- - At least 20 repeat-in-isolate samples per layer, equivalent successful payloads
98
- and current authorization checks; expected denial cases are functional gates.
99
- - Upper 95% bootstrap interval for M minus F2 median platform CPU: at most 2 ms.
100
- - Upper 95% bootstrap interval for M minus F2 median full-body latency: at most
101
- max(15 ms, 5% of the paired F2 median). Compare consistent placement contexts;
102
- report changes in ingress/execution placement separately.
103
- - Exact warm statement/binding budgets and zero unexpected outcomes still apply.
104
- Latency/CPU differences are a matched deployment acceptance budget, not an
105
- absolute cross-machine CI timer gate. First-for-workload records stay visible;
106
- the budget makes no blanket claim about cold setup or all native workloads.
107
-
108
- ## Reproduction and remote acceptance
109
-
110
- Run from the repository root with built workspace dependencies:
111
-
112
- ```sh
113
- pnpm bench:wrangler
114
- pnpm bench:parity
115
- BENCH_ROUTES=1000 BENCH_CASES=scaling pnpm bench:parity
116
- BENCH_SCHEMAS=1000 BENCH_CASES=scaling pnpm bench:parity
117
- BENCH_VIEWS=1000 BENCH_CASES=scaling pnpm bench:parity
118
- BENCH_LOCALES=en,fr,de BENCH_QUICK=1 pnpm bench:parity
119
- node scripts/summarize-wrangler-parity.mjs /path/to/report.json
120
- ```
121
-
122
- For remote acceptance, provision dedicated synthetic D1/KV (R2 when enabled),
123
- put a random 32+ character BENCHMARK_KEY secret, and deploy the fixture with
124
- BENCH_REMOTE_RECORDS=1. Run with BENCH_ORIGIN, BENCHMARK_KEY, BENCH_ACCOUNT_ID,
125
- BENCH_PROFILE_NAME, BENCH_BLOCK and BENCH_PLACEMENT in the process environment.
126
- The runner uses Wrangler's existing named-profile authentication to open the
127
- same native trace-v1 API used by `wrangler tail`. It retains only the nonce-
128
- correlated diagnostic fields and native CPU/wall timing in memory, never request
129
- headers/body/URL, credentials or unrelated logs. The tail session is deleted at
130
- completion. No paid Tail Worker, sink database writes or elevated log API token
131
- is needed. Off-mode records also correlate platform CPU to measure overhead.
132
-
133
- PHSU has no R2 subscription; its remote run uses BENCH_SKIP_R2=1. R2 coverage
134
- comes from native workerd, with no remote R2 latency claim. A paid Tail Worker
135
- attempt was rejected by the provider, then replaced by the verified real-time API.
136
-
137
- Alternate off/on/off/on deployment blocks and BENCH_ORDER=reverse for the second
138
- pair. Record actual placement status, request `cf-placement` when supplied,
139
- ingress colo, deployment version, SDK/Wrangler/compatibility date, sampling window
140
- and errors. Origin timings force private/no-store; a separate probe requires a
141
- real public MISS followed by HIT with no invocation record. Local runs never
142
- invent HITs. A deployed Worker with existing D1 is labeled deployment-first.
143
-
144
- Use `wrangler deploy --dry-run --outfile <bundle>` followed by
145
- `wrangler check startup --worker <bundle> --outfile <profile>` for module startup.
146
- Record standalone F0, the full fixture and the actual packed consumer separately.
147
- Set the remote F2/M CPU/latency difference budget after collecting the baseline,
148
- then evaluate repeated blocks with bootstrap intervals, explaining shared-host
149
- and cross-request correlation. Smart Placement provisioning belongs to #803;
150
- INSUFFICIENT_INVOCATIONS is not evidence of a placement latency improvement.
@@ -1,64 +0,0 @@
1
- # ADR-lite: collection creation statistics on Admin home
2
-
3
- Status: proposed with #823; implementation stays in an unmerged demo PR.
4
- Context: ADR-0019 semantic storage and optional Admin composition.
5
-
6
- Add one optional `EntryReader.readCreationStatistics` read. SQLite/D1 implements
7
- it; custom adapters without it return an explicit unavailable state in Admin.
8
- The staff guard runs before storage access, and successful responses are private,
9
- no-store. The endpoint accepts only primary, visible collections and four range
10
- presets. No manifest keys, generic aggregation language or new cache port.
11
-
12
- Each card independently persists its range and interval/cumulative mode in
13
- `cms.preference.collection-statistics.<collection>`. Only preferences enter
14
- localStorage. The chart and CSV describe current retained rows by native
15
- `createdAt`, all statuses, with current `uiSchema.list.filterField` classification.
16
- Unknown values share an Other series. Deleted rows are absent: these are creation
17
- cohorts of retained rows, not an event log or historical inventory. Cumulative
18
- means a prefix sum inside the selected range, starting from zero.
19
-
20
- Ranges are 1h/5m, 24h/1h, 7d/6h and 20d/1d. Every interval is half-open; the last
21
- ends at the observation time. CSV uses ISO UTC bounds while chart labels use the
22
- browser's timezone. SVG steps preserve exact bucket extents without interpolation.
23
- The toolbar download exports the current card's mode, current total and series;
24
- CSV cells are quoted and formula-shaped headers are neutralized.
25
-
26
- ## Aggregation and freshness
27
-
28
- A single SQL statement returns a total and sparse grouped counts from one SQLite
29
- snapshot. Each native Schema table carries `_mantle_created_at` and its own
30
- creation index. The range branch searches that index, and the total branch
31
- counts index entries. Other field columns stay in the database; only count rows
32
- reach the Worker.
33
-
34
- The existing Cloudflare KV decorator caches MCP site configuration, not entry
35
- queries. Reusing that key/projection would mix unrelated data and mutation
36
- ownership. Direct aggregation is sufficient for this demo: Wrangler-local with
37
- 10,000 rows returned 897 bytes with one statement, 30,002 engine rows read and
38
- p50/p95 of 4.26/5.80 ms (10 samples). A real SQLite test also aggregates 50,000
39
- 4-KiB rows into at most 40 count rows / 4 KiB and verifies immediate updates and
40
- deletes. These are local measurements, not remote latency guarantees.
41
-
42
- There is no server statistics cache to evict or repopulate after a racing write.
43
- Every Admin/MCP/Procedure committed write is visible on the next read, including
44
- subtype updates and deletes. React Query data stays in memory, becomes stale
45
- immediately, and refetches on mount/focus and every 60 seconds while the home is
46
- active. Successful UI mutations invalidate its common statistics query prefix.
47
- Changing only cumulative mode reuses the same count data without another query.
48
-
49
- `ponytail:` exact totals still take O(N) index work and filtered time ranges may
50
- read JSON for subtype grouping; returned bytes are bounded by bucket/enum count,
51
- not row count. If measured production read volume makes this expensive, add a
52
- transactionally maintained collection revision/projection and revision-keyed KV
53
- snapshots. Plain KV delete-after-write is insufficient because eventual
54
- consistency and racing miss fills can serve old aggregates. No cron, event store,
55
- generic cache framework or eager write-through aggregate is justified here.
56
-
57
- ## Verification
58
-
59
- Runtime SQLite tests cover lower/upper edges, unknown subtype, collection
60
- isolation, zero rows, edits/deletes, invalid windows, range index use and 50k rows.
61
- Admin tests cover 401/403 before storage, invalid collection/range (including
62
- prototype names), all presets, no-store, and unsupported adapters. UI tests cover
63
- all preference combinations, zero filling, stacking, prefix sums and CSV safety.
64
- Browser QA covers independent per-card preferences, reload, both themes and CSV.
@@ -1,30 +0,0 @@
1
- # ADR-lite #842: Applicable generic MCP authoring
2
-
3
- Status: Accepted for implementation following maintainer approval.
4
-
5
- The staff catalog and dispatcher remain shared by remote MCP and Admin
6
- WebMCP (ADR-0014, ADR-0019, ADR-lite-861). No new manifest switch or tool
7
- registry is introduced. Adapters retain current staff-role verification;
8
- declared Procedures and Views retain their own authorization and guards.
9
-
10
- Generic lifecycle tools are offered only when at least one writable content
11
- Schema exists. Delete is offered only when a writable Schema exists. Read
12
- tools list actual collection names, lifecycle, searchable and sortable fields.
13
- Root readOnly remains the existing way to require Procedure-owned writes;
14
- declaring a Procedure alone does not disable normal authoring.
15
-
16
- Discovery is not enforcement: the dispatcher rejects absent catalog names,
17
- checks the target row for readOnly and lifecycle suitability, and binds
18
- per-collection updates to their declared collection before mutation. Unsupported
19
- lifecycle calls return CONFLICT with an explicit reason; wrong-collection IDs
20
- return NOT_FOUND. Existing status/OCC checks remain in the use cases.
21
- Generic staff tools also apply Admin's rank table at `tools/call`:
22
- contributor may create/update drafts; editor+ is required for lifecycle,
23
- delete, media, and operational record tools. Declared Procedures keep their
24
- own `requires` predicates. `tools/list` may still show editor tools to
25
- contributors; a guessed call is `AUTH_DENIED`.
26
-
27
- Compatibility: operational-only and read-only sites lose unusable generic
28
- tools. Clients must rediscover tools rather than retaining a global tool list.
29
- Mixed sites must choose a collection listed in the tool description. Public
30
- catalogs remain only declared capabilities and gain no collection metadata.
@@ -1,38 +0,0 @@
1
- # ADR-lite #845: frontend calls use the existing HTTP Trigger contract
2
-
3
- Status: Accepted for implementation under #845 and mantle-home #86.
4
-
5
- `mantle-web/client` is a browser-safe fetch client for declared public Views and
6
- HTTP Triggers. `mantle-web/client-runtime` projects that contract from the sealed
7
- RuntimePlan and binds the same client to `createMantleRequestHandler`, with a
8
- request-local principal. Local SSR makes no network call and invokes no internal
9
- EntryReader. Calls retain Trigger identity. No manifest grammar changes.
10
-
11
- The public contract uses wire names, input/output schemas and the plan fingerprint.
12
- View rows remain records: the existing View API does not promise a generated row
13
- schema. The generic response shape includes rows/page/show/hasMore. This is not a
14
- new generator or validation engine; Runtime still validates and authorizes.
15
-
16
- Remote callers inject fetch and a request-local token resolver. Clients never
17
- retry a mutation or follow redirects with credentials. Business diagnostics and
18
- OAuth challenge remain available in MantleClientError; network and abort errors
19
- remain native errors. The browser export imports no runtime or storage module.
20
-
21
- Cloudflare's opt-in frontendOrigins accepts exact origins for API CORS, exposes
22
- WWW-Authenticate and permits Authorization/Content-Type preflights. Cross-origin
23
- responses use no-store and do not enable cookie credentials. Cookie CSRF checks
24
- and configured bearer issuer/audience/scope checks remain the same. Host-owned
25
- OAuth/connection policy is independent of application revision. Existing Better
26
- Auth PKCE registration, consent and revocation remain the authority.
27
-
28
- In a provider composed with MCP, user grants for additional configured resources
29
- carry the same consent lineage and session binding as MCP grants. Verification
30
- reuses the current-consent/session check for those resources too; API JWTs cannot
31
- outlive revocation or become valid again on reconnect. OAuth discovery responses
32
- also receive the configured exact-origin CORS policy for public browser clients.
33
-
34
- Existing native public cache tags and purge handle same-Worker invalidation.
35
- External consumers start with private/no-store, or explicitly bound TTL; durable
36
- remote invalidation delivery remains the parent #792 contract and must be proven
37
- before advertising a stronger freshness guarantee. Cloud's integration includes
38
- the actual external consumer and browser evidence, not only this package change.