@aotter/mantle 0.1.4 → 0.2.0-alpha.1

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 (849) hide show
  1. package/README.md +39 -306
  2. package/dist/admin/consent.d.ts +17 -0
  3. package/dist/admin/consent.d.ts.map +1 -0
  4. package/dist/admin/consent.js +17 -0
  5. package/dist/admin/consent.js.map +1 -0
  6. package/dist/admin/createAdminSurface.d.ts +22 -0
  7. package/dist/admin/createAdminSurface.d.ts.map +1 -0
  8. package/dist/admin/createAdminSurface.js +589 -0
  9. package/dist/admin/createAdminSurface.js.map +1 -0
  10. package/dist/admin/developerConsole.d.ts +264 -0
  11. package/dist/admin/developerConsole.d.ts.map +1 -0
  12. package/dist/admin/developerConsole.js +136 -0
  13. package/dist/admin/developerConsole.js.map +1 -0
  14. package/dist/admin/identity.d.ts +62 -0
  15. package/dist/admin/identity.d.ts.map +1 -0
  16. package/dist/admin/identity.js +7 -0
  17. package/dist/admin/identity.js.map +1 -0
  18. package/dist/admin/index.d.ts +4 -0
  19. package/dist/admin/index.d.ts.map +1 -0
  20. package/dist/admin/index.js +4 -0
  21. package/dist/admin/index.js.map +1 -0
  22. package/dist/admin/procedureFlow.d.ts +25 -0
  23. package/dist/admin/procedureFlow.d.ts.map +1 -0
  24. package/dist/admin/procedureFlow.js +154 -0
  25. package/dist/admin/procedureFlow.js.map +1 -0
  26. package/dist/auth/ConsoleEmailSender.d.ts +15 -0
  27. package/dist/auth/ConsoleEmailSender.d.ts.map +1 -0
  28. package/dist/auth/ConsoleEmailSender.js +19 -0
  29. package/dist/auth/ConsoleEmailSender.js.map +1 -0
  30. package/dist/auth/appleClientSecret.d.ts +75 -0
  31. package/dist/auth/appleClientSecret.d.ts.map +1 -0
  32. package/dist/auth/appleClientSecret.js +116 -0
  33. package/dist/auth/appleClientSecret.js.map +1 -0
  34. package/dist/auth/buildAuth.d.ts +4565 -0
  35. package/dist/auth/buildAuth.d.ts.map +1 -0
  36. package/dist/auth/buildAuth.js +307 -0
  37. package/dist/auth/buildAuth.js.map +1 -0
  38. package/dist/auth/callerResolver.d.ts +48 -0
  39. package/dist/auth/callerResolver.d.ts.map +1 -0
  40. package/dist/auth/callerResolver.js +49 -0
  41. package/dist/auth/callerResolver.js.map +1 -0
  42. package/dist/auth/createAuthRoutes.d.ts +22 -0
  43. package/dist/auth/createAuthRoutes.d.ts.map +1 -0
  44. package/dist/auth/createAuthRoutes.js +128 -0
  45. package/dist/auth/createAuthRoutes.js.map +1 -0
  46. package/dist/auth/createMantleAuth.d.ts +3 -0
  47. package/dist/auth/createMantleAuth.d.ts.map +1 -0
  48. package/dist/auth/createMantleAuth.js +483 -0
  49. package/dist/auth/createMantleAuth.js.map +1 -0
  50. package/dist/auth/db.d.ts +17 -0
  51. package/dist/auth/db.d.ts.map +1 -0
  52. package/dist/auth/db.js +24 -0
  53. package/dist/auth/db.js.map +1 -0
  54. package/dist/auth/emailTemplates.d.ts +7 -0
  55. package/dist/auth/emailTemplates.d.ts.map +1 -0
  56. package/dist/auth/emailTemplates.js +27 -0
  57. package/dist/auth/emailTemplates.js.map +1 -0
  58. package/dist/auth/index.d.ts +9 -0
  59. package/dist/auth/index.d.ts.map +1 -0
  60. package/dist/auth/index.js +7 -0
  61. package/dist/auth/index.js.map +1 -0
  62. package/dist/auth/methods.d.ts +717 -0
  63. package/dist/auth/methods.d.ts.map +1 -0
  64. package/dist/auth/methods.js +321 -0
  65. package/dist/auth/methods.js.map +1 -0
  66. package/dist/auth/oauthTokens.d.ts +24 -0
  67. package/dist/auth/oauthTokens.d.ts.map +1 -0
  68. package/dist/auth/oauthTokens.js +146 -0
  69. package/dist/auth/oauthTokens.js.map +1 -0
  70. package/dist/auth/setupIncomplete.d.ts +16 -0
  71. package/dist/auth/setupIncomplete.d.ts.map +1 -0
  72. package/dist/auth/setupIncomplete.js +50 -0
  73. package/dist/auth/setupIncomplete.js.map +1 -0
  74. package/dist/auth/types.d.ts +440 -0
  75. package/dist/auth/types.d.ts.map +1 -0
  76. package/dist/auth/types.js +10 -0
  77. package/dist/auth/types.js.map +1 -0
  78. package/dist/bun/index.d.ts +65 -0
  79. package/dist/bun/index.d.ts.map +1 -0
  80. package/dist/bun/index.js +130 -0
  81. package/dist/bun/index.js.map +1 -0
  82. package/dist/cli/emitModule.d.ts +7 -0
  83. package/dist/cli/emitModule.d.ts.map +1 -0
  84. package/dist/cli/emitModule.js +127 -0
  85. package/dist/cli/emitModule.js.map +1 -0
  86. package/dist/cli/generate.d.ts +4 -16
  87. package/dist/cli/generate.d.ts.map +1 -1
  88. package/dist/cli/generate.js +332 -165
  89. package/dist/cli/generate.js.map +1 -1
  90. package/dist/cli/main.d.ts +1 -1
  91. package/dist/cli/main.d.ts.map +1 -1
  92. package/dist/cli/main.js +15 -71
  93. package/dist/cli/main.js.map +1 -1
  94. package/dist/cli/preset.d.ts +18 -0
  95. package/dist/cli/preset.d.ts.map +1 -0
  96. package/dist/cli/preset.js +352 -0
  97. package/dist/cli/preset.js.map +1 -0
  98. package/dist/cloudflare/index.d.ts +21 -0
  99. package/dist/cloudflare/index.d.ts.map +1 -0
  100. package/dist/cloudflare/index.js +14 -0
  101. package/dist/cloudflare/index.js.map +1 -0
  102. package/dist/cloudflare/r2Media.d.ts +43 -0
  103. package/dist/cloudflare/r2Media.d.ts.map +1 -0
  104. package/dist/cloudflare/r2Media.js +69 -0
  105. package/dist/cloudflare/r2Media.js.map +1 -0
  106. package/dist/core/caller.d.ts +35 -0
  107. package/dist/core/caller.d.ts.map +1 -0
  108. package/dist/core/caller.js +3 -0
  109. package/dist/core/caller.js.map +1 -0
  110. package/dist/core/createMantle.d.ts +22 -0
  111. package/dist/core/createMantle.d.ts.map +1 -0
  112. package/dist/core/createMantle.js +117 -0
  113. package/dist/core/createMantle.js.map +1 -0
  114. package/dist/core/dialect.d.ts +41 -0
  115. package/dist/core/dialect.d.ts.map +1 -0
  116. package/dist/core/dialect.js +7 -0
  117. package/dist/core/dialect.js.map +1 -0
  118. package/dist/core/driver.d.ts +17 -0
  119. package/dist/core/driver.d.ts.map +1 -0
  120. package/dist/core/driver.js +2 -0
  121. package/dist/core/driver.js.map +1 -0
  122. package/dist/core/email.d.ts +17 -0
  123. package/dist/core/email.d.ts.map +1 -0
  124. package/dist/core/email.js +2 -0
  125. package/dist/core/email.js.map +1 -0
  126. package/dist/core/index.d.ts +16 -0
  127. package/dist/core/index.d.ts.map +1 -0
  128. package/dist/core/index.js +16 -0
  129. package/dist/core/index.js.map +1 -0
  130. package/dist/core/invocation.d.ts +66 -0
  131. package/dist/core/invocation.d.ts.map +1 -0
  132. package/dist/core/invocation.js +3 -0
  133. package/dist/core/invocation.js.map +1 -0
  134. package/dist/core/runtime/auth.d.ts +9 -0
  135. package/dist/core/runtime/auth.d.ts.map +1 -0
  136. package/dist/core/runtime/auth.js +39 -0
  137. package/dist/core/runtime/auth.js.map +1 -0
  138. package/dist/core/runtime/createRuntime.d.ts +23 -0
  139. package/dist/core/runtime/createRuntime.d.ts.map +1 -0
  140. package/dist/core/runtime/createRuntime.js +214 -0
  141. package/dist/core/runtime/createRuntime.js.map +1 -0
  142. package/dist/core/runtime/verifyPlan.d.ts +34 -0
  143. package/dist/core/runtime/verifyPlan.d.ts.map +1 -0
  144. package/dist/core/runtime/verifyPlan.js +301 -0
  145. package/dist/core/runtime/verifyPlan.js.map +1 -0
  146. package/dist/core/service.d.ts +45 -0
  147. package/dist/core/service.d.ts.map +1 -0
  148. package/dist/core/service.js +2 -0
  149. package/dist/core/service.js.map +1 -0
  150. package/dist/core/site.d.ts +117 -0
  151. package/dist/core/site.d.ts.map +1 -0
  152. package/dist/core/site.js +2 -0
  153. package/dist/core/site.js.map +1 -0
  154. package/dist/core/siteConfig.d.ts +5 -0
  155. package/dist/core/siteConfig.d.ts.map +1 -0
  156. package/dist/core/siteConfig.js +24 -0
  157. package/dist/core/siteConfig.js.map +1 -0
  158. package/dist/core/sql/allowlist.d.ts +65 -0
  159. package/dist/core/sql/allowlist.d.ts.map +1 -0
  160. package/dist/core/sql/allowlist.js +705 -0
  161. package/dist/core/sql/allowlist.js.map +1 -0
  162. package/dist/core/sql/ast.d.ts +24 -0
  163. package/dist/core/sql/ast.d.ts.map +1 -0
  164. package/dist/core/sql/ast.js +32 -0
  165. package/dist/core/sql/ast.js.map +1 -0
  166. package/dist/core/sql/compile.d.ts +50 -0
  167. package/dist/core/sql/compile.d.ts.map +1 -0
  168. package/dist/core/sql/compile.js +48 -0
  169. package/dist/core/sql/compile.js.map +1 -0
  170. package/dist/core/sql/policy.d.ts +121 -0
  171. package/dist/core/sql/policy.d.ts.map +1 -0
  172. package/dist/core/sql/policy.js +379 -0
  173. package/dist/core/sql/policy.js.map +1 -0
  174. package/dist/core/sql/positions.d.ts +30 -0
  175. package/dist/core/sql/positions.d.ts.map +1 -0
  176. package/dist/core/sql/positions.js +22 -0
  177. package/dist/core/sql/positions.js.map +1 -0
  178. package/dist/core/sql/run.d.ts +76 -0
  179. package/dist/core/sql/run.d.ts.map +1 -0
  180. package/dist/core/sql/run.js +267 -0
  181. package/dist/core/sql/run.js.map +1 -0
  182. package/dist/core/store/createStore.d.ts +49 -0
  183. package/dist/core/store/createStore.d.ts.map +1 -0
  184. package/dist/core/store/createStore.js +227 -0
  185. package/dist/core/store/createStore.js.map +1 -0
  186. package/dist/core/store/cursor.d.ts +4 -0
  187. package/dist/core/store/cursor.d.ts.map +1 -0
  188. package/dist/core/store/cursor.js +22 -0
  189. package/dist/core/store/cursor.js.map +1 -0
  190. package/dist/core/store/json.d.ts +80 -0
  191. package/dist/core/store/json.d.ts.map +1 -0
  192. package/dist/core/store/json.js +342 -0
  193. package/dist/core/store/json.js.map +1 -0
  194. package/dist/core/store.d.ts +160 -0
  195. package/dist/core/store.d.ts.map +1 -0
  196. package/dist/core/store.js +2 -0
  197. package/dist/core/store.js.map +1 -0
  198. package/dist/core/wire.d.ts +20 -0
  199. package/dist/core/wire.d.ts.map +1 -0
  200. package/dist/core/wire.js +84 -0
  201. package/dist/core/wire.js.map +1 -0
  202. package/dist/core/withCaller.d.ts +16 -0
  203. package/dist/core/withCaller.d.ts.map +1 -0
  204. package/dist/core/withCaller.js +29 -0
  205. package/dist/core/withCaller.js.map +1 -0
  206. package/dist/d1/adapter.d.ts +12 -0
  207. package/dist/d1/adapter.d.ts.map +1 -0
  208. package/dist/d1/adapter.js +23 -0
  209. package/dist/d1/adapter.js.map +1 -0
  210. package/dist/d1/codec.d.ts +14 -0
  211. package/dist/d1/codec.d.ts.map +1 -0
  212. package/dist/d1/codec.js +136 -0
  213. package/dist/d1/codec.js.map +1 -0
  214. package/dist/d1/compile/index.d.ts +9 -0
  215. package/dist/d1/compile/index.d.ts.map +1 -0
  216. package/dist/d1/compile/index.js +9 -0
  217. package/dist/d1/compile/index.js.map +1 -0
  218. package/dist/d1/dialect.d.ts +4 -0
  219. package/dist/d1/dialect.d.ts.map +1 -0
  220. package/dist/d1/dialect.js +13 -0
  221. package/dist/d1/dialect.js.map +1 -0
  222. package/dist/d1/executor.d.ts +13 -0
  223. package/dist/d1/executor.d.ts.map +1 -0
  224. package/dist/d1/executor.js +91 -0
  225. package/dist/d1/executor.js.map +1 -0
  226. package/dist/d1/index.d.ts +6 -0
  227. package/dist/d1/index.d.ts.map +1 -0
  228. package/dist/d1/index.js +6 -0
  229. package/dist/d1/index.js.map +1 -0
  230. package/dist/d1/lower.d.ts +8 -0
  231. package/dist/d1/lower.d.ts.map +1 -0
  232. package/dist/d1/lower.js +167 -0
  233. package/dist/d1/lower.js.map +1 -0
  234. package/dist/d1/media.d.ts +5 -0
  235. package/dist/d1/media.d.ts.map +1 -0
  236. package/dist/d1/media.js +157 -0
  237. package/dist/d1/media.js.map +1 -0
  238. package/dist/d1/migrations.d.ts +12 -0
  239. package/dist/d1/migrations.d.ts.map +1 -0
  240. package/dist/d1/migrations.js +111 -0
  241. package/dist/d1/migrations.js.map +1 -0
  242. package/dist/d1/print.d.ts +28 -0
  243. package/dist/d1/print.d.ts.map +1 -0
  244. package/dist/d1/print.js +54 -0
  245. package/dist/d1/print.js.map +1 -0
  246. package/dist/d1/site.d.ts +17 -0
  247. package/dist/d1/site.d.ts.map +1 -0
  248. package/dist/d1/site.js +63 -0
  249. package/dist/d1/site.js.map +1 -0
  250. package/dist/d1/storage.d.ts +34 -0
  251. package/dist/d1/storage.d.ts.map +1 -0
  252. package/dist/d1/storage.js +288 -0
  253. package/dist/d1/storage.js.map +1 -0
  254. package/dist/d1/tz.d.ts +21 -0
  255. package/dist/d1/tz.d.ts.map +1 -0
  256. package/dist/d1/tz.js +54 -0
  257. package/dist/d1/tz.js.map +1 -0
  258. package/dist/d1/validator.d.ts +10 -0
  259. package/dist/d1/validator.d.ts.map +1 -0
  260. package/dist/d1/validator.js +33 -0
  261. package/dist/d1/validator.js.map +1 -0
  262. package/dist/mcp/apps.d.ts +43 -0
  263. package/dist/mcp/apps.d.ts.map +1 -0
  264. package/dist/mcp/apps.js +57 -0
  265. package/dist/mcp/apps.js.map +1 -0
  266. package/dist/mcp/catalog.d.ts +55 -0
  267. package/dist/mcp/catalog.d.ts.map +1 -0
  268. package/dist/mcp/catalog.js +81 -0
  269. package/dist/mcp/catalog.js.map +1 -0
  270. package/dist/mcp/createMcpSurface.d.ts +34 -0
  271. package/dist/mcp/createMcpSurface.d.ts.map +1 -0
  272. package/dist/mcp/createMcpSurface.js +150 -0
  273. package/dist/mcp/createMcpSurface.js.map +1 -0
  274. package/dist/mcp/index.d.ts +4 -0
  275. package/dist/mcp/index.d.ts.map +1 -0
  276. package/dist/mcp/index.js +4 -0
  277. package/dist/mcp/index.js.map +1 -0
  278. package/dist/postgres/adapter.d.ts +20 -0
  279. package/dist/postgres/adapter.d.ts.map +1 -0
  280. package/dist/postgres/adapter.js +44 -0
  281. package/dist/postgres/adapter.js.map +1 -0
  282. package/dist/postgres/codec.d.ts +13 -0
  283. package/dist/postgres/codec.d.ts.map +1 -0
  284. package/dist/postgres/codec.js +110 -0
  285. package/dist/postgres/codec.js.map +1 -0
  286. package/dist/postgres/compile/index.d.ts +9 -0
  287. package/dist/postgres/compile/index.d.ts.map +1 -0
  288. package/dist/postgres/compile/index.js +9 -0
  289. package/dist/postgres/compile/index.js.map +1 -0
  290. package/dist/postgres/driver.d.ts +92 -0
  291. package/dist/postgres/driver.d.ts.map +1 -0
  292. package/dist/postgres/driver.js +110 -0
  293. package/dist/postgres/driver.js.map +1 -0
  294. package/dist/postgres/executor.d.ts +20 -0
  295. package/dist/postgres/executor.d.ts.map +1 -0
  296. package/dist/postgres/executor.js +69 -0
  297. package/dist/postgres/executor.js.map +1 -0
  298. package/dist/postgres/index.d.ts +7 -0
  299. package/dist/postgres/index.d.ts.map +1 -0
  300. package/dist/postgres/index.js +7 -0
  301. package/dist/postgres/index.js.map +1 -0
  302. package/dist/postgres/lower.d.ts +6 -0
  303. package/dist/postgres/lower.d.ts.map +1 -0
  304. package/dist/postgres/lower.js +157 -0
  305. package/dist/postgres/lower.js.map +1 -0
  306. package/dist/postgres/print.d.ts +11 -0
  307. package/dist/postgres/print.d.ts.map +1 -0
  308. package/dist/postgres/print.js +121 -0
  309. package/dist/postgres/print.js.map +1 -0
  310. package/dist/postgres/storage.d.ts +19 -0
  311. package/dist/postgres/storage.d.ts.map +1 -0
  312. package/dist/postgres/storage.js +201 -0
  313. package/dist/postgres/storage.js.map +1 -0
  314. package/dist/postgres/textRows.d.ts +10 -0
  315. package/dist/postgres/textRows.d.ts.map +1 -0
  316. package/dist/postgres/textRows.js +44 -0
  317. package/dist/postgres/textRows.js.map +1 -0
  318. package/dist/postgres/validator.d.ts +12 -0
  319. package/dist/postgres/validator.d.ts.map +1 -0
  320. package/dist/postgres/validator.js +46 -0
  321. package/dist/postgres/validator.js.map +1 -0
  322. package/dist/spec/domain/index.d.ts +3 -0
  323. package/dist/spec/domain/index.d.ts.map +1 -0
  324. package/dist/spec/domain/index.js +3 -0
  325. package/dist/spec/domain/index.js.map +1 -0
  326. package/dist/spec/domain/model/ContentState.d.ts +8 -0
  327. package/dist/spec/domain/model/ContentState.d.ts.map +1 -0
  328. package/dist/spec/domain/model/ContentState.js +7 -0
  329. package/dist/spec/domain/model/ContentState.js.map +1 -0
  330. package/dist/spec/domain/model/Entry.d.ts +29 -0
  331. package/dist/spec/domain/model/Entry.d.ts.map +1 -0
  332. package/dist/spec/domain/model/Entry.js +16 -0
  333. package/dist/spec/domain/model/Entry.js.map +1 -0
  334. package/dist/spec/domain/model/Locale.d.ts +30 -0
  335. package/dist/spec/domain/model/Locale.d.ts.map +1 -0
  336. package/dist/spec/domain/model/Locale.js +33 -0
  337. package/dist/spec/domain/model/Locale.js.map +1 -0
  338. package/dist/spec/domain/model/ManifestGrammar.d.ts +452 -0
  339. package/dist/spec/domain/model/ManifestGrammar.d.ts.map +1 -0
  340. package/dist/spec/domain/model/ManifestGrammar.js +149 -0
  341. package/dist/spec/domain/model/ManifestGrammar.js.map +1 -0
  342. package/dist/spec/domain/model/MediaMimeAccept.d.ts +55 -0
  343. package/dist/spec/domain/model/MediaMimeAccept.d.ts.map +1 -0
  344. package/dist/spec/domain/model/MediaMimeAccept.js +90 -0
  345. package/dist/spec/domain/model/MediaMimeAccept.js.map +1 -0
  346. package/dist/spec/domain/model/RuntimePlan.d.ts +94 -0
  347. package/dist/spec/domain/model/RuntimePlan.d.ts.map +1 -0
  348. package/dist/spec/domain/model/RuntimePlan.js +4 -0
  349. package/dist/spec/domain/model/RuntimePlan.js.map +1 -0
  350. package/dist/spec/domain/model/SiteConfig.d.ts +173 -0
  351. package/dist/spec/domain/model/SiteConfig.d.ts.map +1 -0
  352. package/dist/spec/domain/model/SiteConfig.js +13 -0
  353. package/dist/spec/domain/model/SiteConfig.js.map +1 -0
  354. package/dist/spec/domain/model/SqlIr.d.ts +96 -0
  355. package/dist/spec/domain/model/SqlIr.d.ts.map +1 -0
  356. package/dist/spec/domain/model/SqlIr.js +95 -0
  357. package/dist/spec/domain/model/SqlIr.js.map +1 -0
  358. package/dist/spec/domain/model/index.d.ts +14 -0
  359. package/dist/spec/domain/model/index.d.ts.map +1 -0
  360. package/dist/spec/domain/model/index.js +14 -0
  361. package/dist/spec/domain/model/index.js.map +1 -0
  362. package/dist/spec/domain/service/CloudflareCron.d.ts +2 -0
  363. package/dist/spec/domain/service/CloudflareCron.d.ts.map +1 -0
  364. package/dist/spec/domain/service/CloudflareCron.js +63 -0
  365. package/dist/spec/domain/service/CloudflareCron.js.map +1 -0
  366. package/dist/spec/domain/service/CrossSchemaChecker.d.ts +34 -0
  367. package/dist/spec/domain/service/CrossSchemaChecker.d.ts.map +1 -0
  368. package/dist/spec/domain/service/CrossSchemaChecker.js +114 -0
  369. package/dist/spec/domain/service/CrossSchemaChecker.js.map +1 -0
  370. package/dist/spec/domain/service/EntryDataValidator.d.ts +56 -0
  371. package/dist/spec/domain/service/EntryDataValidator.d.ts.map +1 -0
  372. package/dist/spec/domain/service/EntryDataValidator.js +88 -0
  373. package/dist/spec/domain/service/EntryDataValidator.js.map +1 -0
  374. package/dist/spec/domain/service/JsonSchemaToZod.d.ts +29 -0
  375. package/dist/spec/domain/service/JsonSchemaToZod.d.ts.map +1 -0
  376. package/dist/spec/domain/service/JsonSchemaToZod.js +156 -0
  377. package/dist/spec/domain/service/JsonSchemaToZod.js.map +1 -0
  378. package/dist/spec/domain/service/LifecycleStateMachine.d.ts +75 -0
  379. package/dist/spec/domain/service/LifecycleStateMachine.d.ts.map +1 -0
  380. package/dist/spec/domain/service/LifecycleStateMachine.js +76 -0
  381. package/dist/spec/domain/service/LifecycleStateMachine.js.map +1 -0
  382. package/dist/spec/domain/service/LocaleCanonicalizer.d.ts +29 -0
  383. package/dist/spec/domain/service/LocaleCanonicalizer.d.ts.map +1 -0
  384. package/dist/spec/domain/service/LocaleCanonicalizer.js +96 -0
  385. package/dist/spec/domain/service/LocaleCanonicalizer.js.map +1 -0
  386. package/dist/spec/domain/service/ManifestFieldChecks.d.ts +60 -0
  387. package/dist/spec/domain/service/ManifestFieldChecks.d.ts.map +1 -0
  388. package/dist/spec/domain/service/ManifestFieldChecks.js +116 -0
  389. package/dist/spec/domain/service/ManifestFieldChecks.js.map +1 -0
  390. package/dist/spec/domain/service/ManifestGraphValidator.d.ts +15 -0
  391. package/dist/spec/domain/service/ManifestGraphValidator.d.ts.map +1 -0
  392. package/dist/spec/domain/service/ManifestGraphValidator.js +225 -0
  393. package/dist/spec/domain/service/ManifestGraphValidator.js.map +1 -0
  394. package/dist/spec/domain/service/ManifestLinker.d.ts +45 -0
  395. package/dist/spec/domain/service/ManifestLinker.d.ts.map +1 -0
  396. package/dist/spec/domain/service/ManifestLinker.js +92 -0
  397. package/dist/spec/domain/service/ManifestLinker.js.map +1 -0
  398. package/dist/spec/domain/service/ManifestLocaleTrimmer.d.ts +16 -0
  399. package/dist/spec/domain/service/ManifestLocaleTrimmer.d.ts.map +1 -0
  400. package/dist/spec/domain/service/ManifestLocaleTrimmer.js +76 -0
  401. package/dist/spec/domain/service/ManifestLocaleTrimmer.js.map +1 -0
  402. package/dist/spec/domain/service/ManifestParser.d.ts +49 -0
  403. package/dist/spec/domain/service/ManifestParser.d.ts.map +1 -0
  404. package/dist/spec/domain/service/ManifestParser.js +203 -0
  405. package/dist/spec/domain/service/ManifestParser.js.map +1 -0
  406. package/dist/spec/domain/service/ManifestPartition.d.ts +9 -0
  407. package/dist/spec/domain/service/ManifestPartition.d.ts.map +1 -0
  408. package/dist/spec/domain/service/ManifestPartition.js +19 -0
  409. package/dist/spec/domain/service/ManifestPartition.js.map +1 -0
  410. package/dist/spec/domain/service/ManifestPathDiagnoser.d.ts +33 -0
  411. package/dist/spec/domain/service/ManifestPathDiagnoser.d.ts.map +1 -0
  412. package/dist/spec/domain/service/ManifestPathDiagnoser.js +43 -0
  413. package/dist/spec/domain/service/ManifestPathDiagnoser.js.map +1 -0
  414. package/dist/spec/domain/service/ManifestSourceSpans.d.ts +10 -0
  415. package/dist/spec/domain/service/ManifestSourceSpans.d.ts.map +1 -0
  416. package/dist/spec/domain/service/ManifestSourceSpans.js +76 -0
  417. package/dist/spec/domain/service/ManifestSourceSpans.js.map +1 -0
  418. package/dist/spec/domain/service/McpToolNaming.d.ts +25 -0
  419. package/dist/spec/domain/service/McpToolNaming.d.ts.map +1 -0
  420. package/dist/spec/domain/service/McpToolNaming.js +50 -0
  421. package/dist/spec/domain/service/McpToolNaming.js.map +1 -0
  422. package/dist/spec/domain/service/PlanFingerprint.d.ts +4 -0
  423. package/dist/spec/domain/service/PlanFingerprint.d.ts.map +1 -0
  424. package/dist/spec/domain/service/PlanFingerprint.js +14 -0
  425. package/dist/spec/domain/service/PlanFingerprint.js.map +1 -0
  426. package/dist/spec/domain/service/ProcedureViewSpecChecks.d.ts +4 -0
  427. package/dist/spec/domain/service/ProcedureViewSpecChecks.d.ts.map +1 -0
  428. package/dist/spec/domain/service/ProcedureViewSpecChecks.js +211 -0
  429. package/dist/spec/domain/service/ProcedureViewSpecChecks.js.map +1 -0
  430. package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts +42 -0
  431. package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts.map +1 -0
  432. package/dist/spec/domain/service/SchemaAdminUiChecker.js +289 -0
  433. package/dist/spec/domain/service/SchemaAdminUiChecker.js.map +1 -0
  434. package/dist/spec/domain/service/SchemaIndexChecker.d.ts +33 -0
  435. package/dist/spec/domain/service/SchemaIndexChecker.d.ts.map +1 -0
  436. package/dist/spec/domain/service/SchemaIndexChecker.js +256 -0
  437. package/dist/spec/domain/service/SchemaIndexChecker.js.map +1 -0
  438. package/dist/spec/domain/service/SchemaSearchChecker.d.ts +11 -0
  439. package/dist/spec/domain/service/SchemaSearchChecker.d.ts.map +1 -0
  440. package/dist/spec/domain/service/SchemaSearchChecker.js +78 -0
  441. package/dist/spec/domain/service/SchemaSearchChecker.js.map +1 -0
  442. package/dist/spec/domain/service/SchemaSpecChecks.d.ts +31 -0
  443. package/dist/spec/domain/service/SchemaSpecChecks.d.ts.map +1 -0
  444. package/dist/spec/domain/service/SchemaSpecChecks.js +445 -0
  445. package/dist/spec/domain/service/SchemaSpecChecks.js.map +1 -0
  446. package/dist/spec/domain/service/SiteDefaultsValidator.d.ts +39 -0
  447. package/dist/spec/domain/service/SiteDefaultsValidator.d.ts.map +1 -0
  448. package/dist/spec/domain/service/SiteDefaultsValidator.js +194 -0
  449. package/dist/spec/domain/service/SiteDefaultsValidator.js.map +1 -0
  450. package/dist/spec/domain/service/SqlClassify.d.ts +19 -0
  451. package/dist/spec/domain/service/SqlClassify.d.ts.map +1 -0
  452. package/dist/spec/domain/service/SqlClassify.js +42 -0
  453. package/dist/spec/domain/service/SqlClassify.js.map +1 -0
  454. package/dist/spec/domain/service/SqlRefusal.d.ts +16 -0
  455. package/dist/spec/domain/service/SqlRefusal.d.ts.map +1 -0
  456. package/dist/spec/domain/service/SqlRefusal.js +20 -0
  457. package/dist/spec/domain/service/SqlRefusal.js.map +1 -0
  458. package/dist/spec/domain/service/SqlTypes.d.ts +40 -0
  459. package/dist/spec/domain/service/SqlTypes.d.ts.map +1 -0
  460. package/dist/spec/domain/service/SqlTypes.js +110 -0
  461. package/dist/spec/domain/service/SqlTypes.js.map +1 -0
  462. package/dist/spec/domain/service/StaffRoleHierarchy.d.ts +3 -0
  463. package/dist/spec/domain/service/StaffRoleHierarchy.d.ts.map +1 -0
  464. package/dist/spec/domain/service/StaffRoleHierarchy.js +19 -0
  465. package/dist/spec/domain/service/StaffRoleHierarchy.js.map +1 -0
  466. package/dist/spec/domain/service/TriggerGraphChecks.d.ts +16 -0
  467. package/dist/spec/domain/service/TriggerGraphChecks.d.ts.map +1 -0
  468. package/dist/spec/domain/service/TriggerGraphChecks.js +337 -0
  469. package/dist/spec/domain/service/TriggerGraphChecks.js.map +1 -0
  470. package/dist/spec/domain/service/TriggerSpecChecks.d.ts +4 -0
  471. package/dist/spec/domain/service/TriggerSpecChecks.d.ts.map +1 -0
  472. package/dist/spec/domain/service/TriggerSpecChecks.js +89 -0
  473. package/dist/spec/domain/service/TriggerSpecChecks.js.map +1 -0
  474. package/dist/spec/domain/service/ValidatedAdminUiProjection.d.ts +11 -0
  475. package/dist/spec/domain/service/ValidatedAdminUiProjection.d.ts.map +1 -0
  476. package/dist/spec/domain/service/ValidatedAdminUiProjection.js +26 -0
  477. package/dist/spec/domain/service/ValidatedAdminUiProjection.js.map +1 -0
  478. package/dist/spec/domain/service/ViewAdminUiChecker.d.ts +14 -0
  479. package/dist/spec/domain/service/ViewAdminUiChecker.d.ts.map +1 -0
  480. package/dist/spec/domain/service/ViewAdminUiChecker.js +53 -0
  481. package/dist/spec/domain/service/ViewAdminUiChecker.js.map +1 -0
  482. package/dist/spec/domain/service/index.d.ts +24 -0
  483. package/dist/spec/domain/service/index.d.ts.map +1 -0
  484. package/dist/spec/domain/service/index.js +24 -0
  485. package/dist/spec/domain/service/index.js.map +1 -0
  486. package/dist/spec/index.d.ts +10 -0
  487. package/dist/spec/index.d.ts.map +1 -0
  488. package/dist/spec/index.js +12 -0
  489. package/dist/spec/index.js.map +1 -0
  490. package/dist/spec/infrastructure/cli/parseArgsError.d.ts +16 -0
  491. package/dist/spec/infrastructure/cli/parseArgsError.d.ts.map +1 -0
  492. package/dist/spec/infrastructure/cli/parseArgsError.js +34 -0
  493. package/dist/spec/infrastructure/cli/parseArgsError.js.map +1 -0
  494. package/dist/spec/infrastructure/index.d.ts +2 -0
  495. package/dist/spec/infrastructure/index.d.ts.map +1 -0
  496. package/dist/spec/infrastructure/index.js +2 -0
  497. package/dist/spec/infrastructure/index.js.map +1 -0
  498. package/dist/spec/infrastructure/sql/PgQueryParser.d.ts +18 -0
  499. package/dist/spec/infrastructure/sql/PgQueryParser.d.ts.map +1 -0
  500. package/dist/spec/infrastructure/sql/PgQueryParser.js +17 -0
  501. package/dist/spec/infrastructure/sql/PgQueryParser.js.map +1 -0
  502. package/dist/spec/infrastructure/sql/compilePlan.d.ts +37 -0
  503. package/dist/spec/infrastructure/sql/compilePlan.d.ts.map +1 -0
  504. package/dist/spec/infrastructure/sql/compilePlan.js +282 -0
  505. package/dist/spec/infrastructure/sql/compilePlan.js.map +1 -0
  506. package/dist/spec/infrastructure/sql/compileSql.d.ts +35 -0
  507. package/dist/spec/infrastructure/sql/compileSql.d.ts.map +1 -0
  508. package/dist/spec/infrastructure/sql/compileSql.js +92 -0
  509. package/dist/spec/infrastructure/sql/compileSql.js.map +1 -0
  510. package/dist/spec/infrastructure/sql/frontEnd.d.ts +8 -0
  511. package/dist/spec/infrastructure/sql/frontEnd.d.ts.map +1 -0
  512. package/dist/spec/infrastructure/sql/frontEnd.js +100 -0
  513. package/dist/spec/infrastructure/sql/frontEnd.js.map +1 -0
  514. package/dist/spec/infrastructure/sql/index.d.ts +4 -0
  515. package/dist/spec/infrastructure/sql/index.d.ts.map +1 -0
  516. package/dist/spec/infrastructure/sql/index.js +4 -0
  517. package/dist/spec/infrastructure/sql/index.js.map +1 -0
  518. package/dist/spec/kernel/diagnostic.d.ts +137 -0
  519. package/dist/spec/kernel/diagnostic.d.ts.map +1 -0
  520. package/dist/spec/kernel/diagnostic.js +296 -0
  521. package/dist/spec/kernel/diagnostic.js.map +1 -0
  522. package/dist/spec/kernel/index.d.ts +8 -0
  523. package/dist/spec/kernel/index.d.ts.map +1 -0
  524. package/dist/spec/kernel/index.js +8 -0
  525. package/dist/spec/kernel/index.js.map +1 -0
  526. package/dist/spec/usecase/EmitTypes.d.ts +22 -0
  527. package/dist/spec/usecase/EmitTypes.d.ts.map +1 -0
  528. package/dist/spec/usecase/EmitTypes.js +182 -0
  529. package/dist/spec/usecase/EmitTypes.js.map +1 -0
  530. package/dist/spec/usecase/ValidateManifestsUseCase.d.ts +8 -0
  531. package/dist/spec/usecase/ValidateManifestsUseCase.d.ts.map +1 -0
  532. package/dist/spec/usecase/ValidateManifestsUseCase.js +101 -0
  533. package/dist/spec/usecase/ValidateManifestsUseCase.js.map +1 -0
  534. package/dist/spec/usecase/dto/ValidateManifestsRequest.d.ts +27 -0
  535. package/dist/spec/usecase/dto/ValidateManifestsRequest.d.ts.map +1 -0
  536. package/dist/spec/usecase/dto/ValidateManifestsRequest.js +2 -0
  537. package/dist/spec/usecase/dto/ValidateManifestsRequest.js.map +1 -0
  538. package/dist/spec/usecase/dto/ValidateManifestsResponse.d.ts +14 -0
  539. package/dist/spec/usecase/dto/ValidateManifestsResponse.d.ts.map +1 -0
  540. package/dist/spec/usecase/dto/ValidateManifestsResponse.js +2 -0
  541. package/dist/spec/usecase/dto/ValidateManifestsResponse.js.map +1 -0
  542. package/dist/spec/usecase/dto/index.d.ts +3 -0
  543. package/dist/spec/usecase/dto/index.d.ts.map +1 -0
  544. package/dist/spec/usecase/dto/index.js +3 -0
  545. package/dist/spec/usecase/dto/index.js.map +1 -0
  546. package/dist/spec/usecase/index.d.ts +10 -0
  547. package/dist/spec/usecase/index.d.ts.map +1 -0
  548. package/dist/spec/usecase/index.js +10 -0
  549. package/dist/spec/usecase/index.js.map +1 -0
  550. package/dist/testing/cases/before-hook.d.ts +4 -0
  551. package/dist/testing/cases/before-hook.d.ts.map +1 -0
  552. package/dist/testing/cases/before-hook.js +71 -0
  553. package/dist/testing/cases/before-hook.js.map +1 -0
  554. package/dist/testing/cases/corpus.d.ts +12 -0
  555. package/dist/testing/cases/corpus.d.ts.map +1 -0
  556. package/dist/testing/cases/corpus.js +91 -0
  557. package/dist/testing/cases/corpus.js.map +1 -0
  558. package/dist/testing/cases/policy.d.ts +74 -0
  559. package/dist/testing/cases/policy.d.ts.map +1 -0
  560. package/dist/testing/cases/policy.js +142 -0
  561. package/dist/testing/cases/policy.js.map +1 -0
  562. package/dist/testing/cases/printer.d.ts +4 -0
  563. package/dist/testing/cases/printer.d.ts.map +1 -0
  564. package/dist/testing/cases/printer.js +32 -0
  565. package/dist/testing/cases/printer.js.map +1 -0
  566. package/dist/testing/cases/report-view.d.ts +5 -0
  567. package/dist/testing/cases/report-view.d.ts.map +1 -0
  568. package/dist/testing/cases/report-view.js +33 -0
  569. package/dist/testing/cases/report-view.js.map +1 -0
  570. package/dist/testing/cases/requisition.d.ts +4 -0
  571. package/dist/testing/cases/requisition.d.ts.map +1 -0
  572. package/dist/testing/cases/requisition.js +38 -0
  573. package/dist/testing/cases/requisition.js.map +1 -0
  574. package/dist/testing/cases/search-places.d.ts +4 -0
  575. package/dist/testing/cases/search-places.d.ts.map +1 -0
  576. package/dist/testing/cases/search-places.js +60 -0
  577. package/dist/testing/cases/search-places.js.map +1 -0
  578. package/dist/testing/cases/stock.d.ts +4 -0
  579. package/dist/testing/cases/stock.d.ts.map +1 -0
  580. package/dist/testing/cases/stock.js +35 -0
  581. package/dist/testing/cases/stock.js.map +1 -0
  582. package/dist/testing/cases/store.d.ts +4 -0
  583. package/dist/testing/cases/store.d.ts.map +1 -0
  584. package/dist/testing/cases/store.js +100 -0
  585. package/dist/testing/cases/store.js.map +1 -0
  586. package/dist/testing/harness.d.ts +94 -0
  587. package/dist/testing/harness.d.ts.map +1 -0
  588. package/dist/testing/harness.js +168 -0
  589. package/dist/testing/harness.js.map +1 -0
  590. package/dist/testing/index.d.ts +37 -0
  591. package/dist/testing/index.d.ts.map +1 -0
  592. package/dist/testing/index.js +43 -0
  593. package/dist/testing/index.js.map +1 -0
  594. package/dist/testing/report.d.ts +15 -0
  595. package/dist/testing/report.d.ts.map +1 -0
  596. package/dist/testing/report.js +22 -0
  597. package/dist/testing/report.js.map +1 -0
  598. package/dist/web/createRestSurface.d.ts +7 -0
  599. package/dist/web/createRestSurface.d.ts.map +1 -0
  600. package/dist/web/createRestSurface.js +39 -0
  601. package/dist/web/createRestSurface.js.map +1 -0
  602. package/dist/web/index.d.ts +2 -0
  603. package/dist/web/index.d.ts.map +1 -0
  604. package/dist/web/index.js +2 -0
  605. package/dist/web/index.js.map +1 -0
  606. package/docs/adr/0008-structured-diagnostic-shape.md +2 -2
  607. package/docs/adr/0011-adapter-port-spec.md +2 -2
  608. package/docs/adr/0014-auth-better-auth-and-multi-tenant-mcp.md +21 -2
  609. package/docs/adr/0019-sealed-manifest-runtime-pipeline.md +5 -1
  610. package/docs/adr/0021-retire-starter-scaffolding.md +1 -1
  611. package/docs/adr/0022-caller-observed-version-occ.md +1 -1
  612. package/docs/adr/0024-manifest-native-schema-tables.md +2 -2
  613. package/docs/adr/0026-progressive-generate.md +36 -0
  614. package/docs/adr/0027-scheduled-procedure-triggers.md +31 -0
  615. package/docs/adr/0028-schema-ttl-expiry.md +33 -0
  616. package/docs/adr/0029-mcp-apps-interaction-contracts.md +324 -0
  617. package/docs/adr/0030-store.md +40 -0
  618. package/docs/adr/0031-host-cloud-core-contract.md +25 -0
  619. package/docs/adr/0032-store-centric-core-and-service-contract.md +361 -0
  620. package/docs/adr/0033-storage-converges-to-the-plan.md +92 -0
  621. package/docs/adr/0034-store-is-authored-as-sql.md +192 -0
  622. package/docs/adr/0035-sql-dialects.md +154 -0
  623. package/docs/adr/0036-host-and-dialect.md +65 -0
  624. package/docs/adr/0037-postgresql-is-the-reference-dialect.md +124 -0
  625. package/docs/adr/0038-bun-native-host.md +63 -0
  626. package/docs/adr/README.md +26 -8
  627. package/docs/adr/adr-lite-861-admin-webmcp.md +6 -0
  628. package/docs/adr/adr-lite-909-admin-ui-kit.md +1 -1
  629. package/docs/examples/README.md +16 -18
  630. package/docs/examples/commerce-inventory.md +481 -0
  631. package/docs/examples/commerce.md +254 -0
  632. package/docs/examples/guarded-api.md +238 -0
  633. package/docs/examples/intake-hooks.md +237 -0
  634. package/docs/examples/intake.md +127 -0
  635. package/docs/examples/legal-documents.md +218 -0
  636. package/docs/examples/procurement.md +215 -0
  637. package/docs/examples/publication.md +211 -0
  638. package/docs/examples/reference-service/.dev.vars.example +4 -0
  639. package/docs/examples/reference-service/.mantle/generated/mantle.ts +174 -0
  640. package/docs/examples/reference-service/.mantle/generated/plan.json +1936 -0
  641. package/docs/examples/reference-service/README.md +33 -0
  642. package/docs/examples/reference-service/manifests/catalog.yaml +103 -0
  643. package/docs/examples/reference-service/manifests/orders.yaml +120 -0
  644. package/docs/examples/reference-service/mantle.config.json +1 -0
  645. package/docs/examples/reference-service/package.json +27 -0
  646. package/docs/examples/reference-service/smoke.mjs +156 -0
  647. package/docs/examples/reference-service/src/handlers.ts +36 -0
  648. package/docs/examples/reference-service/src/index.ts +33 -0
  649. package/docs/examples/reference-service/src/service.ts +78 -0
  650. package/docs/examples/{host-minimal-worker → reference-service}/tsconfig.json +7 -2
  651. package/docs/examples/reference-service/wrangler.jsonc +26 -0
  652. package/docs/examples/reservation.md +142 -0
  653. package/docs/handbook/cloudflare/authentication.md +96 -299
  654. package/docs/handbook/cloudflare/chatgpt-sites.md +104 -15
  655. package/docs/handbook/cloudflare/deploy-and-operate.md +77 -71
  656. package/docs/handbook/cloudflare/media-r2.md +64 -187
  657. package/docs/handbook/cloudflare/service-entry.md +138 -0
  658. package/docs/handbook/concepts/authorization.md +104 -94
  659. package/docs/handbook/concepts/four-atoms.md +68 -144
  660. package/docs/handbook/concepts/lifecycle-and-locales.md +62 -114
  661. package/docs/handbook/concepts/mcp-and-agents.md +112 -117
  662. package/docs/handbook/concepts/procedures-and-triggers.md +126 -181
  663. package/docs/handbook/concepts/runtime-and-adapters.md +177 -156
  664. package/docs/handbook/concepts/views.md +97 -173
  665. package/docs/handbook/examples/hub.md +17 -6
  666. package/docs/handbook/guides/admin-ui.md +101 -96
  667. package/docs/handbook/guides/agent-setup.md +56 -71
  668. package/docs/handbook/guides/typed-queries.md +105 -111
  669. package/docs/handbook/navigation.json +8 -32
  670. package/docs/handbook/reference/authorization.md +52 -271
  671. package/docs/handbook/reference/diagnostics.md +69 -173
  672. package/docs/handbook/reference/features.md +48 -50
  673. package/docs/handbook/reference/manifest.md +56 -116
  674. package/docs/handbook/reference/procedure.md +92 -229
  675. package/docs/handbook/reference/schema.md +156 -215
  676. package/docs/handbook/reference/site-config.md +58 -211
  677. package/docs/handbook/reference/surface.md +69 -181
  678. package/docs/handbook/reference/trigger.md +73 -162
  679. package/docs/handbook/reference/view.md +140 -241
  680. package/docs/handbook/releases/index.md +58 -22
  681. package/docs/handbook/start/overview.md +59 -48
  682. package/docs/handbook/start/project-and-cli.md +127 -116
  683. package/docs/handbook/start/quickstart-worker.md +102 -151
  684. package/docs/skills/develop/SKILL.md +114 -232
  685. package/docs/skills/develop/mcp-app.md +79 -0
  686. package/docs/skills/integrate/SKILL.md +96 -0
  687. package/docs/skills/media-gc/SKILL.md +21 -10
  688. package/docs/skills/provision/SKILL.md +68 -162
  689. package/docs/skills/update/SKILL.md +33 -34
  690. package/docs/upgrade-0.1-to-0.2.md +211 -0
  691. package/package.json +87 -105
  692. package/dist/admin-ui.d.ts +0 -2
  693. package/dist/admin-ui.d.ts.map +0 -1
  694. package/dist/admin-ui.js +0 -2
  695. package/dist/admin-ui.js.map +0 -1
  696. package/dist/admin.d.ts +0 -2
  697. package/dist/admin.d.ts.map +0 -1
  698. package/dist/admin.js +0 -2
  699. package/dist/admin.js.map +0 -1
  700. package/dist/auth.d.ts +0 -2
  701. package/dist/auth.d.ts.map +0 -1
  702. package/dist/auth.js +0 -2
  703. package/dist/auth.js.map +0 -1
  704. package/dist/bun.d.ts +0 -2
  705. package/dist/bun.d.ts.map +0 -1
  706. package/dist/bun.js +0 -2
  707. package/dist/bun.js.map +0 -1
  708. package/dist/cli/harness.d.ts +0 -3
  709. package/dist/cli/harness.d.ts.map +0 -1
  710. package/dist/cli/harness.js +0 -214
  711. package/dist/cli/harness.js.map +0 -1
  712. package/dist/cli/skills.d.ts +0 -3
  713. package/dist/cli/skills.d.ts.map +0 -1
  714. package/dist/cli/skills.js +0 -128
  715. package/dist/cli/skills.js.map +0 -1
  716. package/dist/cloudflare.d.ts +0 -2
  717. package/dist/cloudflare.d.ts.map +0 -1
  718. package/dist/cloudflare.js +0 -2
  719. package/dist/cloudflare.js.map +0 -1
  720. package/dist/codegen/emitMantleModule.d.ts +0 -22
  721. package/dist/codegen/emitMantleModule.d.ts.map +0 -1
  722. package/dist/codegen/emitMantleModule.js +0 -291
  723. package/dist/codegen/emitMantleModule.js.map +0 -1
  724. package/dist/codegen.d.ts +0 -2
  725. package/dist/codegen.d.ts.map +0 -1
  726. package/dist/codegen.js +0 -2
  727. package/dist/codegen.js.map +0 -1
  728. package/dist/runtime-testing.d.ts +0 -2
  729. package/dist/runtime-testing.d.ts.map +0 -1
  730. package/dist/runtime-testing.js +0 -2
  731. package/dist/runtime-testing.js.map +0 -1
  732. package/dist/runtime.d.ts +0 -2
  733. package/dist/runtime.d.ts.map +0 -1
  734. package/dist/runtime.js +0 -2
  735. package/dist/runtime.js.map +0 -1
  736. package/dist/spec.d.ts +0 -2
  737. package/dist/spec.d.ts.map +0 -1
  738. package/dist/spec.js +0 -2
  739. package/dist/spec.js.map +0 -1
  740. package/dist/vercel-libsql.d.ts +0 -2
  741. package/dist/vercel-libsql.d.ts.map +0 -1
  742. package/dist/vercel-libsql.js +0 -2
  743. package/dist/vercel-libsql.js.map +0 -1
  744. package/dist/vercel.d.ts +0 -2
  745. package/dist/vercel.d.ts.map +0 -1
  746. package/dist/vercel.js +0 -2
  747. package/dist/vercel.js.map +0 -1
  748. package/dist/web.d.ts +0 -2
  749. package/dist/web.d.ts.map +0 -1
  750. package/dist/web.js +0 -2
  751. package/dist/web.js.map +0 -1
  752. package/docs/adapter-guide.md +0 -222
  753. package/docs/agent-prompts.md +0 -102
  754. package/docs/api-mcp-authorization.md +0 -5
  755. package/docs/assets/mantle-admin-developer.png +0 -0
  756. package/docs/assets/mantle-admin-operations.png +0 -0
  757. package/docs/assets/mantle-hero.jpg +0 -0
  758. package/docs/auth-hosting-model.md +0 -166
  759. package/docs/cloudflare-low-level-composition.md +0 -5
  760. package/docs/consumer-onboarding-audit.md +0 -65
  761. package/docs/deferred-lifecycle-queues.md +0 -5
  762. package/docs/design-atoms.md +0 -16
  763. package/docs/design-references/editorial-blog-2026-05-05.md +0 -218
  764. package/docs/direct-authoring.md +0 -5
  765. package/docs/examples/builtin-commerce.md +0 -269
  766. package/docs/examples/builtin-intake.md +0 -143
  767. package/docs/examples/builtin-legal-documents.md +0 -189
  768. package/docs/examples/builtin-procurement.md +0 -241
  769. package/docs/examples/builtin-publication.md +0 -241
  770. package/docs/examples/builtin-reservation.md +0 -149
  771. package/docs/examples/cf-primitives-commerce-inventory.md +0 -809
  772. package/docs/examples/cf-primitives-guarded-api.md +0 -429
  773. package/docs/examples/cf-primitives-intake-hooks.md +0 -319
  774. package/docs/examples/host-chatgpt-sites/.openai/hosting.json +0 -1
  775. package/docs/examples/host-chatgpt-sites/README.md +0 -70
  776. package/docs/examples/host-chatgpt-sites/drizzle/0000_sites_users.sql +0 -8
  777. package/docs/examples/host-chatgpt-sites/drizzle/0001_mantle.sql +0 -294
  778. package/docs/examples/host-chatgpt-sites/drizzle/0002_article_cover.sql +0 -5
  779. package/docs/examples/host-chatgpt-sites/drizzle/0003_store_instance_id.sql +0 -1
  780. package/docs/examples/host-chatgpt-sites/drizzle/meta/_journal.json +0 -1
  781. package/docs/examples/host-chatgpt-sites/manifests/site.yaml +0 -27
  782. package/docs/examples/host-chatgpt-sites/package.json +0 -1
  783. package/docs/examples/host-chatgpt-sites/public/site.css +0 -1
  784. package/docs/examples/host-chatgpt-sites/scripts/build.mjs +0 -13
  785. package/docs/examples/host-chatgpt-sites/scripts/check.mjs +0 -101
  786. package/docs/examples/host-chatgpt-sites/scripts/migration.mjs +0 -9
  787. package/docs/examples/host-chatgpt-sites/src/chatgpt-auth.ts +0 -63
  788. package/docs/examples/host-chatgpt-sites/src/index.ts +0 -46
  789. package/docs/examples/host-chatgpt-sites/src/mcp.ts +0 -49
  790. package/docs/examples/host-chatgpt-sites/src/media.ts +0 -109
  791. package/docs/examples/host-chatgpt-sites/src/r2-lab.ts +0 -38
  792. package/docs/examples/host-chatgpt-sites/src/storage-fingerprint.json +0 -1
  793. package/docs/examples/host-chatgpt-sites/src/web.ts +0 -35
  794. package/docs/examples/host-chatgpt-sites/tsconfig.json +0 -1
  795. package/docs/examples/host-chatgpt-sites/wrangler.jsonc +0 -10
  796. package/docs/examples/host-local-admin-otp/.dev.vars.example +0 -3
  797. package/docs/examples/host-local-admin-otp/README.md +0 -80
  798. package/docs/examples/host-local-admin-otp/ensure-dev-vars.mjs +0 -5
  799. package/docs/examples/host-local-admin-otp/manifests/site.yaml +0 -25
  800. package/docs/examples/host-local-admin-otp/package.json +0 -29
  801. package/docs/examples/host-local-admin-otp/public/.gitkeep +0 -1
  802. package/docs/examples/host-local-admin-otp/smoke.mjs +0 -141
  803. package/docs/examples/host-local-admin-otp/src/index.ts +0 -54
  804. package/docs/examples/host-local-admin-otp/tsconfig.json +0 -17
  805. package/docs/examples/host-local-admin-otp/wrangler.jsonc +0 -23
  806. package/docs/examples/host-minimal-worker/README.md +0 -41
  807. package/docs/examples/host-minimal-worker/manifests/site.yaml +0 -25
  808. package/docs/examples/host-minimal-worker/package.json +0 -26
  809. package/docs/examples/host-minimal-worker/smoke.mjs +0 -23
  810. package/docs/examples/host-minimal-worker/src/index.ts +0 -4
  811. package/docs/examples/host-minimal-worker/wrangler.jsonc +0 -22
  812. package/docs/handbook/chatgpt-sites/equipment-checkout.md +0 -231
  813. package/docs/handbook/chatgpt-sites/host-reference.md +0 -113
  814. package/docs/handbook/chatgpt-sites/index.md +0 -123
  815. package/docs/handbook/cloudflare/bindings.md +0 -298
  816. package/docs/handbook/cloudflare/conventional-worker.md +0 -162
  817. package/docs/handbook/cloudflare/deferred-hooks-queues.md +0 -170
  818. package/docs/handbook/cloudflare/low-level-composition.md +0 -169
  819. package/docs/handbook/cloudflare/public-web.md +0 -144
  820. package/docs/handbook/cloudflare/site-chrome.md +0 -75
  821. package/docs/handbook/examples/commerce-transaction.md +0 -11
  822. package/docs/handbook/examples/commerce.md +0 -11
  823. package/docs/handbook/examples/guarded-api.md +0 -10
  824. package/docs/handbook/examples/intake-form.md +0 -12
  825. package/docs/handbook/examples/intake-hooks.md +0 -11
  826. package/docs/handbook/examples/legal-documents.md +0 -10
  827. package/docs/handbook/examples/procurement-approvals.md +0 -10
  828. package/docs/handbook/examples/publication.md +0 -10
  829. package/docs/handbook/examples/reservation.md +0 -10
  830. package/docs/handbook/start/quickstart-admin.md +0 -50
  831. package/docs/labels.md +0 -71
  832. package/docs/media-uploads.md +0 -5
  833. package/docs/migration-0.1.2.md +0 -13
  834. package/docs/performance-harness.md +0 -228
  835. package/docs/release-process.md +0 -244
  836. package/docs/schema-indexes.md +0 -5
  837. package/docs/sealed-pipeline-ownership.md +0 -101
  838. package/docs/skills/plugin/SKILL.md +0 -132
  839. package/docs/skills/theme/SKILL.md +0 -77
  840. package/docs/spec-only-host-adoption.md +0 -157
  841. package/docs/transaction-patterns.md +0 -5
  842. package/skills/README.md +0 -125
  843. package/skills/develop/SKILL.md +0 -250
  844. package/skills/install/SKILL.md +0 -149
  845. package/skills/media-gc/SKILL.md +0 -85
  846. package/skills/plugin/SKILL.md +0 -132
  847. package/skills/provision/SKILL.md +0 -194
  848. package/skills/theme/SKILL.md +0 -77
  849. package/skills/update/SKILL.md +0 -51
@@ -1,13 +0,0 @@
1
- # Upgrading to 0.1.2
2
-
3
- 0.1.2 is the first stable release and the first public one. There is no earlier
4
- stable to upgrade from and no migration to perform.
5
-
6
- What it contains, what it requires and what it does not yet cover is in
7
- [Releases](handbook/releases/index.md).
8
-
9
- Every version before 0.1.2 was an internal prerelease. If you are holding a
10
- database created by one of those, `LEGACY_STORAGE_RESET_REQUIRED` means it
11
- predates native Schema tables: rebuild it rather than migrating it. Move any
12
- data you need out of Mantle by hand first — there is no product migration for
13
- that unreleased storage format.
@@ -1,228 +0,0 @@
1
- # Data access, cache policy, and performance harness
2
-
3
- Mantle site code declares intent; Core owns the shared storage layout and the
4
- Cloudflare adapter owns provider bindings. A site-building agent should not
5
- need Mantle table names, generated-column names, KV prefixes, or D1 APIs to
6
- make a normal content/API/page change.
7
-
8
- ## Ownership
9
-
10
- | Read or state | Owner | Notes |
11
- |---|---|---|
12
- | Entry get/list and public slug/data-field/published reads | `DatabaseEntryRepository` through `EntryRepository` / `EntryReader` | Schema-aware field resolution is shared here. |
13
- | Manifest View execution | `ExecuteViewUseCase` + prepared `ViewQueryExecutor` | Core owns authorization and request validation; selected storage lowers queries once and resolves declared Schema indexes. |
14
- | Editable settings and code-owned locale/media policy | `DatabaseSiteConfigRepository` | Editable values and dynamic media tool policy are read fresh; boot-seeded locale policy may be memoized within the runtime instance. |
15
- | Pending media uploads | `DatabasePendingUploadRepository` | Canonical, read-after-write D1 state; never publish-cache state. |
16
- | Rendered HTML, Markdown, and `llms.txt` | Request-time render use cases plus the Cloudflare public-route cache policy | D1 is canonical; version-local Workers Cache stores anonymous HTTP responses. |
17
- | D1 transport and optional query metrics | Cloudflare bindings | Bindings stay thin. Query/cache policy does not belong in a generic provider `BaseRepository`. |
18
-
19
- The runtime exposes no raw database handle. Application and adapter code uses
20
- the sealed plan, runtime use cases, `entries`, and `siteConfig`. An application may own
21
- additional tables behind its own repository at the composition root, but it
22
- must not query Mantle-owned tables outside the selected storage adapter.
23
-
24
- ## Cache contract
25
-
26
- - D1 is canonical for entries, site settings, media metadata, and pending
27
- uploads. Core stores no rendered artifact copies.
28
- - Public routes render canonical state and return
29
- `Cache-Control: public, max-age=0, s-maxage=300`.
30
- - Cloudflare Workers Cache checks eligible anonymous responses before invoking
31
- the Worker. Cache keys are version-local, so a deploy starts with no stale
32
- response from the previous Worker version.
33
- - Successful publishing-content and site-setting writes purge the shared
34
- deployment-scoped public Cache-Tag through Cloudflare's native cache API. Operational
35
- records and immutable assets stay outside that invalidation boundary.
36
- - Do not cache every repository read. Cross-isolate correctness for editable
37
- data wins unless a read has a measured hot-path contract and explicit
38
- invalidation.
39
-
40
- ## Index coverage
41
-
42
- The Node harness uses the real canonical migrations, generated Schema DDL,
43
- real View compiler, deterministic skewed rows, and SQLite
44
- `EXPLAIN QUERY PLAN`:
45
-
46
- ```bash
47
- pnpm exec mantle-harness indexes --manifests ./manifests --format text
48
- pnpm exec mantle-harness indexes --require-public --format json
49
- pnpm exec mantle-harness indexes --require account-members --format json
50
- ```
51
-
52
- Without `--require-public` or `--require`, findings are advisory. A required
53
- path fails on a required Schema-table scan, a temporary ORDER BY B-tree, or a
54
- data-field predicate/order that does not use a declared Schema index.
55
- Projection alone does not require an index. `mantle validate` remains a pure
56
- correctness check; no performance grammar or manifest atom was added.
57
-
58
- The fixture follows each Schema lifecycle: operational rows are immediately
59
- published, while publishing Schemas contain both draft and published rows. The
60
- harness deliberately does not run `ANALYZE` or `PRAGMA optimize`, so it cannot
61
- turn an unprepared production plan into a local pass. This is a conservative
62
- SQLite preflight, not proof of D1 rows-read, Worker CPU, or IndexedDB behavior;
63
- measure those on the target backend before making a performance claim.
64
-
65
- Use the machine report in CI. It includes the compiled SQL and parameters,
66
- query-plan details, named indexes, scan/sort flags, result count, SQLite
67
- version, fixture row count, and required-failure summary.
68
-
69
- ## Worker/API/page sampling
70
-
71
- Sample any running environment with the public HTTP helper:
72
-
73
- ```bash
74
- pnpm exec mantle-harness http \
75
- --base-url http://127.0.0.1:8787 \
76
- --route recent=/api/views/recent-posts \
77
- --route page=/en/posts/hello \
78
- --rounds 20 --warmup 2 --format json
79
- ```
80
-
81
- Timing always reports p50/p95/max. A test-only Worker wrapper may also return
82
- `x-mantle-query-count` and `x-mantle-rows-read`; those become distributions in
83
- the same report. Do not expose these diagnostic headers in production.
84
-
85
- The path-scoped Cloudflare benchmark workflow runs `pnpm bench:wrangler`
86
- against real Wrangler-local D1, Worker HTTP routing, View execution, and origin
87
- page rendering. It compares 100 and 10,000 row fixtures and gates row-read
88
- scaling plus endpoint query budgets, not absolute milliseconds. It is separate
89
- from the required repository checks so an unrelated dependency or docs PR does
90
- not fail on the platform harness. Wrangler-local does not emulate the new
91
- entrypoint Workers Cache, so cache hits are a deployment-level smoke check
92
- rather than a fabricated local metric.
93
-
94
- ## Seven findings: measured disposition
95
-
96
- Measured on the deterministic 2026-08-01 Wrangler-local fixture; timings are
97
- diagnostic, while query/row counts are the stable assertions.
98
-
99
- | Finding | Disposition |
100
- |---|---|
101
- | Public cache hits read D1 first | Removed from Worker code. Cloudflare's entrypoint Workers Cache runs before the Worker; Core has no inner render cache. |
102
- | Slug/locale reads bypass Schema indexes | Fixed by the shared schema-aware entry-read boundary over native columns. A 10,000-row page MISS measured 2 queries / 5 rows read. |
103
- | OFFSET pagination | Retained only where the View/Admin contract explicitly uses it, with a 500-row response cap. Public content lists and discovery now use forward keyset pages; they are not covered by the old 500-row claim. |
104
- | Admin substring search scans | Accepted only for the authenticated Admin collection browser, with a 500-row response cap. Large/search-heavy sites should add a purpose-shaped indexed View or dedicated search service; do not expose this scan publicly. |
105
- | Published list/sitemap/llms paths lack system indexes | Fixed with measured partial indexes for published global, locale, collection, and collection+locale ordering. The 100-row and 10,000-row API runs both measured 1 query / 20 rows read. |
106
- | Page MISS waits for cache write-back | Removed. Origin rendering returns directly; Workers Cache owns response storage outside the Worker. |
107
- | Benchmark stops at fake in-process dispatch | Fixed by the Node planner and Wrangler-local Worker/API/page layers. The old dispatch microbenchmark remains a narrow CPU signal only. |
108
-
109
- The retained OFFSET and substring-search trade-offs are visible exceptions,
110
- not patterns for new public APIs. Re-measure before widening either scope.
111
-
112
- See also [Schema indexes](./schema-indexes.md) and the official Cloudflare
113
- [D1 index guidance](https://developers.cloudflare.com/d1/best-practices/use-indexes/).
114
-
115
- ### Prepared database, new Worker state
116
-
117
- The Wrangler fixture resets its in-isolate runtime after seeding while retaining
118
- D1. The first public page has a four-statement budget (fingerprint, lazy locale,
119
- site settings, entry); subsequent origin pages have a two-statement budget.
120
- This is a new application state in the same workerd isolate, not a measurement
121
- of module startup CPU or an entrypoint cache HIT. Locale caching is enabled by
122
- a successful preparation fingerprint; editable settings and media policy still
123
- read the canonical database on every call.
124
-
125
- ### HTTP Trigger routing
126
-
127
- The portable request handler indexes Trigger paths by method and segments once.
128
- Literal and wildcard branches retain sealed-plan order, including encoded literal
129
- collisions that an outer router may select differently. Each request decodes its
130
- segments once and invokes the original Trigger identity through the same runtime.
131
- The 1/10/100/1,000-route regression uses four segment lookups at every size;
132
- overlapping wildcard shapes can visit multiple branches, pruned by route rank.
133
- The HTTP microbench and workerd harness include the same route-count axis.
134
- Workerd wall times include I/O and are not CPU measurements or a fixed-ms CI gate.
135
-
136
- ### Public content pages and discovery (#809)
137
-
138
- | Surface | Canonical read / continuation |
139
- |---|---|
140
- | Collection HTML and collection Markdown | 50 entries by default, forward `cursor`; visible Next link plus HTTP `Link: rel="next"`. |
141
- | Locale and root llms.txt | One canonical page, default 50 entries; root expands that page across configured locales in memory. Shared entries are not reread once per locale. Follow the body/HTTP continuation link. |
142
- | Sitemap part | Up to 2,000 entries, with only declared path fields (built-in resolver: `slug`). A small site returns a urlset directly; a larger site returns a sitemap index linking every part. |
143
- | Sitemap index | Walks metadata pages to derive exact part cursors; O(N) metadata work on an index MISS, with one page resident at a time. It is not a constant-work list endpoint. |
144
-
145
- `EntryReader.readPublishedPage` caps returned data JSON at 1 MiB and 2,000 rows.
146
- One oversized entry is returned alone to make progress. SQLite applies the byte
147
- budget before transferring/parsing JSON in the Worker; one extra candidate
148
- identifies continuation. A localized + shared page merges two indexed ranges
149
- inside the same statement. The original `readPublished` remains an explicit
150
- unbounded read unless its caller supplies a limit.
151
-
152
- Translation lists resolve at most one newest published parent per join value,
153
- then resolve media once for the bounded list. Parent payloads and media metadata
154
- are additional input; the 1 MiB budget describes the canonical child page, not
155
- arbitrary template output or total Worker heap. Custom renderers own their output
156
- size. IndexedDB keeps identical page semantics but currently scans its local
157
- collection; this is not a claim of bounded IndexedDB storage I/O.
158
-
159
- The real SQLite fixture matrix covers 100/10,000/50,000 published rows, 64 B/4 KiB
160
- bodies, and 1/3/10 locales. At limit 20, every case transfers 21 candidate rows;
161
- 4 KiB body data occupies 87,003–87,129 bytes, independent of collection size.
162
- Complete llms traversal uses 2/200/1,000 statements at the default 50-row page
163
- size, independent of locale count. Sitemap and llms URL sets match, including
164
- 275,000 URLs for 50,000 mixed localized/shared rows across 10 locales.
165
-
166
- Run `pnpm --filter @aotter/mantle-cloudflare exec vitest run
167
- test/public-content-scaling.test.ts` to emit JSON transfer sizes and traversal
168
- CPU/wall/RSS diagnostics. These are Node + SQLite + assertions, including the
169
- fixture database and URL-validation set; RSS is a process high-water mark, not
170
- per-request Worker peak memory. Worker CPU, true cache HIT/MISS and placement
171
- measurements belong to the matched native/full-stack harness (#812).
172
-
173
- The workerd smoke also measures public list, llms and sitemap. The first two
174
- use two warm statements (settings + page) and bounded D1 work. Sitemap index
175
- queries and rows-read scale with the number of metadata parts; this explicit
176
- cost preserves complete discovery instead of silently dropping URLs.
177
-
178
- ### Request diagnostics (version 1, test/performance only)
179
-
180
- Import `runWithRequestDiagnostics`, `instrumentD1`, `instrumentKv` and
181
- `instrumentR2` from `@aotter/mantle-cloudflare/testing`. Wrap native bindings once
182
- before handing the same D1 object to Auth and Runtime. Open the request context
183
- outside the complete facade fetch, and pass binding-presence flags matching the
184
- instrumented fixture. The observer receives one response-time record; it never
185
- receives request headers, tokens, proofs, user IDs, SQL, parameters, tool arguments,
186
- object keys or response content. Sync/async observer failure cannot change the
187
- original response or exception. The library emits no diagnostic headers or logs.
188
-
189
- Records distinguish HTTP outcome from JSON-RPC result/error/tool-error. They
190
- include actual in-isolate arrivals, inclusive OAuth/DPoP, role, runtime, catalog,
191
- dispatcher construction and dispatch wall spans. Unreached phases are null.
192
- Shared KV loads charge native I/O once to the initiating request; waiters record
193
- wait duration and the same hit/miss/repair/error source. Boot publication has a
194
- separate counter. The original rejected shared load remains retryable.
195
-
196
- D1 statements and binding calls are separate: a batch is one call and N attempted
197
- statements. Failed attempts count. `exec` uses the provider's count; unavailable
198
- counts stay in `unknownStatementCalls`, never a semicolon parser. `first(column)`
199
- and `raw` preserve native behavior and do not silently execute `all` to manufacture
200
- metadata. Their absent metadata is null. Rows/duration are sums of available
201
- metadata, and `metadataStatements` identifies coverage; incomplete coverage is
202
- not a full-workload total. Serialized binding results are measured bytes, not a
203
- claim about bytes on the provider's wire. Existing D1DatabaseDriver observers can
204
- request metadata for first-row reads when a fixture explicitly chooses that mode.
205
-
206
- KV bytes identify UTF-8, buffer or reserialized JSON sources. R2 payload bytes
207
- remain unknown for an unconsumed/partly consumed GET. A successful PUT of that exact
208
- native GET stream confirms the transferred body size on both operations. Streams
209
- are never wrapped or buffered for diagnostics, preserving R2's native known-length
210
- contract. `byteSamples` distinguishes known payload samples from the operation
211
- count. Metadata/list response serialization is labeled separately from object
212
- payload. R2 coverage is head/get/put/delete/list, not multipart-upload instrumentation.
213
-
214
- Snapshots freeze at response creation; outstanding/deferred operations remain
215
- visible through `inFlight` and metadata coverage and cannot rewrite a published
216
- record. `totalMs` excludes the subsequent test-only JSON-RPC response inspection,
217
- delivery and deferred work. CPU, TTFB, full-body duration and heap must be measured
218
- separately. Worker wall clocks advance on I/O and are not a CPU timer; use the
219
- [official CPU profiler](https://developers.cloudflare.com/workers/observability/dev-tools/cpu-usage/).
220
- Measure diagnostics off/on overhead with the same workload before interpreting
221
- small latency differences.
222
-
223
- ### Matched native facade controls (#812)
224
-
225
- `pnpm bench:wrangler` now also runs the native parity smoke. The full
226
- `pnpm bench:parity` matrix adds real Auth/MCP, cold workerd processes, R2,
227
- TTFB/full-body timing and CPU/heap evidence. See
228
- [the controls, gates and reproducible commands](./adr/adr-lite-812-native-parity.md).
@@ -1,244 +0,0 @@
1
- # Release process
2
-
3
- How a version reaches npm. What each shipped stable contains is
4
- [Releases](handbook/releases/index.md); this document is the procedure only.
5
- A release has no Starter/Landing checkout, tag, dispatch, credential or
6
- deployment dependency.
7
-
8
- ## Authority and state transitions
9
-
10
- `.github/workflows/release.yml` is the only release controller. Humans merge
11
- a reviewed same-repository release PR, then explicitly dispatch that merge.
12
- No task implicitly authorizes publication; no manual package/tag writer exists.
13
-
14
- | State | Sole next writer | Retry / invariant |
15
- |---|---|---|
16
- | Reviewed source; unused version | Core source/packed-consumer gates, then immutable Core tag | Exact canonical merged PR SHA and version required |
17
- | Tag exists; registry candidates partial | Existing npm/GPR publication steps | Verify existing artifact identity; publish missing versions only |
18
- | Tag exists and all eleven npmjs packages already exist | Metadata verify, then channel promote and the GitHub release | Skip pack and immutable tarball compare. The controller tip must not rebuild published artifact identity. npm integrity metadata still has to be `sha512`. The public-registry Worker gate stays skipped |
19
- | Tag exists on an ancestor of the dispatched tip; tip package versions still match | Resolve binds release identity to the tag SHA; later steps stay the existing writers | Controller-only recovery. Do not retag. The canonical merged-PR check uses the tag SHA. Fail when the tip version differs or the tag commit is not an ancestor |
20
- | Registry candidates verified | Public-registry reference consumer gate | No mutation; failure leaves public channels and `mantle-release` unchanged |
21
- | Consumer passes | That registry's promote step: monotonic channel add for every package | Same version is a no-op; older runs cannot move a channel backward. Public channels are only `alpha`, `beta`, `rc`, and `latest`. `mantle-release` is never removed |
22
- | Channels promoted or preserved | GitHub release step | Existing release identity or fail. Leftover `mantle-release` pointing at the last published candidate is expected |
23
-
24
- The public-registry gate uses a disposable copy of the directly authored
25
- `docs/examples/host-minimal-worker` reference, installs the exact candidate, then
26
- checks generation, skill projection, TypeScript and real Worker HTTP behavior.
27
- The same reference is gated against exact tarballs before Core tagging. It is
28
- a test/example, not a scaffold product or another repository release.
29
-
30
- ## Changing release automation
31
-
32
- Before editing a release workflow, put a finite state table plus its
33
- invariants and non-goals in a Draft PR. Name the single mutation boundary for
34
- each external resource; recovery must return through that boundary rather than
35
- introduce a second writer.
36
-
37
- Freeze one commit SHA for review. Every finding must name the affected state
38
- row, a concrete event interleaving, and the wrong mutation it permits. A clean
39
- verdict expires when that SHA changes. After two patch rounds, a new
40
- foundational blocker returns to the state table and the user for a scope
41
- decision instead of starting another local redesign loop.
42
-
43
- Invariants: immutable versions/tags retain their identity; registry integrity
44
- and the published-consumer gate precede public channel promotion; retries
45
- cannot move channels backward. No downstream mutation, unpublish, dist-tag
46
- removal, or rollback is introduced. The runnable release-order check guards
47
- these transitions.
48
-
49
- Mutation boundaries during a release: `Publish to npmjs` and `Mirror to
50
- GitHub Packages` attach the internal candidate dist-tag `mantle-release`
51
- while publishing a version. `Promote npmjs channel tags` is the only
52
- release step that moves npmjs public channels. `Promote GitHub Packages
53
- channel tags` is the only release step that moves GitHub Packages public
54
- channels. Neither step removes `mantle-release`. Recovery of a partial
55
- release reruns that same controller and version.
56
-
57
- `mantle-release` is not a public channel. It stays forever as an internal
58
- candidate tag pointing at the last published candidate. Official channels
59
- are only `alpha`, `beta`, `rc`, and `latest`. Consumers must not install
60
- `mantle-release`. Deleting it after promotion is not part of the release:
61
- dist-tag DELETE only added failure and re-run state, and Actions
62
- `NPM_TOKEN` 403s on that DELETE.
63
-
64
- ## Branches and channels
65
-
66
- | Version | Source branch | npm dist-tag | GitHub release |
67
- |---|---|---|---|
68
- | `X.Y.Z-alpha.N` | `develop` | `alpha` | prerelease |
69
- | `X.Y.Z-beta.N` | `main` | `beta` | prerelease |
70
- | `X.Y.Z-rc.N` | `main` | `rc` | prerelease |
71
- | `X.Y.Z` | `main` | `latest` | release |
72
-
73
- - The controller derives the source branch from the version: `-alpha` means
74
- `develop`, anything else means `main`. An untagged dispatch must be that
75
- branch's tip and the merge commit of exactly one PR into that branch.
76
- When the version tag already exists on an ancestor of the tip, Resolve
77
- recovers from that tag SHA; see Recovery.
78
- `scripts/release-tag-order.mjs` rejects any other prerelease identifier.
79
- - `develop` is where every change integrates first, so it is the base for all
80
- work despite `main` being the repository's default branch on GitHub. `main`
81
- changes only through promotion PRs and hotfix PRs (below); it is never pushed
82
- directly, rebased or force-updated. Both branches share one ruleset: PR, one
83
- approval, resolved threads and a current-base `Typecheck + tests` check.
84
- - Stable is the only release that moves `latest`. A prerelease channel keeps
85
- its last version when a later stable publishes.
86
- - Publish uses `--tag mantle-release`. `mantle-release` is an internal
87
- candidate dist-tag, not a public channel. Consumers must not install it.
88
- Official channels are only `alpha`, `beta`, `rc`, and `latest`.
89
- Publication does not move those channels. After the public-registry
90
- consumer gate, each registry's promote step moves every package's real
91
- channel and leaves `mantle-release` pointing at the last published
92
- candidate.
93
-
94
- ## Prepare and run
95
-
96
- 1. Fetch Core refs, prove the version and tag unused. Preview GitHub generated
97
- notes since the previous tag; correct PR metadata and label release-only
98
- PRs skip-release-notes. Do not duplicate release entries in CHANGELOG.md.
99
- 2. Align every workspace package, plugin and marketplace ref to the version.
100
- The controller checks package.json files and plugin manifests only; docs
101
- pins and the admin-ui registry dependency are hand-edited, so grep for the
102
- old version until only lockfiles and registry-pinned examples remain:
103
-
104
- ```sh
105
- OLD=<previous version> NEW=<version>
106
- git grep -l "\"version\": \"$OLD\"" -- '*.json' ':!**/package-lock.json' \
107
- | xargs perl -pi -e "s/\"version\": \"\Q$OLD\E\"/\"version\": \"$NEW\"/"
108
- node scripts/sync-plugin-manifests.mjs
109
- git grep -n "$OLD" -- ':!pnpm-lock.yaml' ':!**/package-lock.json'
110
- ```
111
-
112
- Leave the consumer cold-start entry **untagged**: `npx skills add
113
- aotter/mantle`, `/plugin marketplace add aotter/mantle`,
114
- `codex plugin marketplace add aotter/mantle` and the plugin-manifest
115
- descriptions carry no `@v…` / `--ref`. Untagged resolves to `main`, which
116
- normally moves at a release but may contain a source-only hotfix; the
117
- installed npm package remains the version authority
118
- (#995, #998). Only "installed version" statements such as
119
- `(currently \`X.Y.Z\`)` are bumped.
120
-
121
- 3. Review API compatibility and migration instructions for actual consumers.
122
- Frozen legacy consumers stay on their pinned version; do not make them
123
- follow new Core.
124
- 4. Run `pnpm check`, including exact packed Worker, optional products, Bun,
125
- Vercel, skills, release invariants, types and tests. Inspect the umbrella
126
- docs/skills payload: no workspace dependencies, secrets or local state.
127
- 5. Freeze the PR head for self review; CI must pass before merge. Merge into
128
- `develop` with a merge commit for every version. For an alpha, dispatch
129
- release.yml from that merge with `version` (without v). For beta, RC and
130
- stable, continue with the promotion below. The controller refuses an
131
- untagged source that is no longer the expected branch tip.
132
-
133
- The eleven public packages remain in dependency order:
134
-
135
- 1. @aotter/mantle-spec
136
- 2. @aotter/mantle-admin-ui
137
- 3. @aotter/mantle-runtime
138
- 4. @aotter/mantle-indexeddb
139
- 5. @aotter/mantle-web
140
- 6. @aotter/mantle-admin
141
- 7. @aotter/mantle-auth
142
- 8. @aotter/mantle-bun
143
- 9. @aotter/mantle-vercel
144
- 10. @aotter/mantle-cloudflare
145
- 11. @aotter/mantle
146
-
147
- ## Promote to main (beta, RC, stable)
148
-
149
- Every non-alpha release is the version PR above, one promotion PR and one
150
- dispatch. The version PR still merges into `develop`, so `develop` always
151
- contains what `main` publishes and promotions never conflict.
152
-
153
- 1. Stable only: the version's release-gate issue records owner acceptance.
154
- Every gate item passes with linked evidence or is explicitly deferred
155
- there, and no `release-gate` issue stays open against the version.
156
- Beta and RC need the gate defined, not passed.
157
- 2. Merge the version PR into `develop` with a merge commit; note its SHA.
158
- 3. Pin the promotion head at that SHA so later `develop` merges cannot ride
159
- along, then open the promotion PR against `main`:
160
-
161
- ```sh
162
- git fetch origin
163
- git push origin <develop merge SHA>:refs/heads/promote/<version>
164
- gh pr create --base main --head promote/<version> \
165
- --title "release: promote <version> to main" --label skip-release-notes
166
- ```
167
-
168
- The body names the version PR, the pinned SHA and the gate evidence. The
169
- usual review and checks apply. An organization-admin bypass merge must be
170
- recorded on the PR (see CONTRIBUTING).
171
- 4. Merge with a merge commit, never rebase: the controller needs `main`'s tip
172
- to be the PR's merge commit. `main`'s tree now equals the pinned commit.
173
- 5. Dispatch from `main` and watch every gate exactly as for an alpha:
174
-
175
- ```sh
176
- gh workflow run release.yml --ref main -f version=<version>
177
- ```
178
-
179
- 6. RC to stable repeats 2–5 with the next version. `rc` keeps pointing at
180
- the last RC; stable moves only `latest`.
181
-
182
- Hotfix on `main` is for a published non-alpha version that cannot wait for
183
- the next promotion. Branch from `main`, include the version bump, PR into
184
- `main`, dispatch as in step 5, then immediately PR `main` back into `develop`
185
- and resolve version files in favour of `develop`. Until that lands, the next
186
- promotion conflicts on the version files.
187
-
188
- GitHub generates notes from the immediately previous tag, which for a stable
189
- is usually its own last RC. To cover the whole line instead, regenerate from
190
- the previous stable and edit the release body after the run. The body is not
191
- an immutable artifact; the tag and packages are.
192
-
193
- ```sh
194
- gh api repos/aotter/mantle/releases/generate-notes \
195
- -f tag_name=v<version> -f previous_tag_name=v<previous stable> --jq .body > notes.md
196
- gh release edit v<version> --notes-file notes.md
197
- ```
198
-
199
- Add the version's entry to [Releases](handbook/releases/index.md) in the same
200
- pass, so the handbook and the GitHub release describe the same thing.
201
-
202
- After publication, move docs/examples that were pinned to a packed checkout
203
- back to registry installation with an updated lockfile, and close the gate
204
- issue with the run link and completion evidence.
205
-
206
- ## Credentials and verification
207
-
208
- Core needs NPM_TOKEN for npmjs. Its job-scoped GITHUB_TOKEN creates the Core
209
- tag/release and mirrors GitHub Packages. No cross-repository fanout token is
210
- needed. Before tagging, verify credentials and new-version absence on both
211
- registries. Existing artifacts on retry must have matching integrity.
212
-
213
- Completion requires the Core tag SHA, all eleven npmjs/GPR packages, exact
214
- integrity, no workspace dependencies, a passing public-registry Worker gate,
215
- correct channel tags, and the GitHub release. Leftover `mantle-release`
216
- pointing at the last published candidate is expected. Retain run links and
217
- gate evidence.
218
- This does not prove stable production soak or upgrade safety; the version's
219
- release-gate issue owns those acceptance requirements. An agent acceptance run
220
- uses only the version-matched authoring instructions, not an SDK checkout or
221
- generated site.
222
-
223
- ## Recovery
224
-
225
- Rerun the same controller commit/version for a transient or verified partial
226
- transition. Existing tags/artifacts must match; newer channels stay put. Fail
227
- on identity disagreement instead of guessing. A wrong public artifact needs
228
- a new version; never force-retag, overwrite or reuse a published version.
229
-
230
- After a controller-only fix lands on the tip, re-dispatch the same version
231
- from the source branch. Resolve recovers using the existing tag SHA when
232
- that commit is an ancestor of the tip and package versions on the tip still
233
- match. The tag owns the release SHA; the tip only carries controller fixes.
234
- Tagged recovery skips the Core source check because that tree was already
235
- released from the immutable tag. When `tag_exists` and all eleven npmjs
236
- packages already exist at that version, that same existence check skips
237
- packing, immutable tarball comparison, and the public-registry Worker gate.
238
- The controller tip must not rebuild an artifact whose identity is already
239
- published. Verify npm metadata still runs. The Worker gate stays skipped
240
- because the first run already passed it before promotion.
241
-
242
- Unpublish is reserved for actual secret/private-file exposure, never routine
243
- fixes. Infrastructure renames require their explicit config diff and live
244
- smoke; CI alone cannot prove provider identity.
@@ -1,5 +0,0 @@
1
- # Schema indexes
2
-
3
- This guide moved into the handbook: [`docs/handbook/reference/schema.md`](handbook/reference/schema.md).
4
-
5
- The handbook ships inside the `@aotter/mantle` package under `node_modules/@aotter/mantle/docs/handbook/` and describes the installed release.
@@ -1,101 +0,0 @@
1
- # Sealed pipeline ownership ledger
2
-
3
- This is the migration evidence for ADR-0019 and epic #656. It records the
4
- `v0.1.0-alpha.7` owners before code moves, the single target owner, and the
5
- issue that must delete or delegate the old path.
6
-
7
- ## Rule ownership
8
-
9
- | Behavior | Current owner(s) | Target owner | Migration |
10
- |---|---|---|---|
11
- | YAML document decode, empty documents, syntax errors, alias cap | `ManifestParser.parseOneStream` | Parse/decode in `mantle-spec` | #663 |
12
- | Four-atom discrimination, envelope keys, primitive/enum shape | `ManifestParser` | Parse/normalize | #663 |
13
- | Source identity and document location | Synthetic parser doc index plus `loadManifests`/`ManifestPathDiagnoser` reconstruction | `ManifestSourceSet` authored metadata | #663 |
14
- | Schema atom-local shape, index/search/UI shape | Parser plus `ValidateManifestsUseCase` checkers | Parse/normalize | #663; old checks deleted in #673 |
15
- | Defaults for localized/lifecycle/indexes/search/order | `IntrospectManifestsUseCase`, runtime lifecycle checks, and callers using `??` | Parse/normalize exactly once | #663, #667 |
16
- | Duplicate names | `ValidateManifestsUseCase` | Link | #664 |
17
- | Schema/View/Procedure/Trigger cross-references | `ValidateManifestsUseCase` and repeated boot checks | Link | #664 |
18
- | Guard existence, self-reference, builtin/chain rules | Validate plus `ValidateBootUseCase` | Link | #664 |
19
- | Locale/translates graph | `checkLocaleAndTranslates` in validate and boot | Link for manifest graph; Prepare for selected deployment locales | #664, #666 |
20
- | Manifest-owned HTTP/MCP collisions | Validate plus boot | Link | #664 |
21
- | Handler source/registry availability | Optional CLI source scan plus boot registry scan | Prepare | #666 |
22
- | Optional Web/Admin/Auth path reservations | Fixed boot/Cloudflare prefix lists | Prepare selected capabilities only | #666, #669, #670 |
23
- | Kind/name lookup maps | `ValidateManifestsUseCase`, `ValidateBootUseCase`, `createCmsRuntime`, adapters | Compile once into `RuntimePlan` | #665 |
24
- | Authorization/guard descriptors | Raw manifests interpreted by validators, runtime use cases, and mounts | Compile plan; evaluate in Core invocation | #665, #667 |
25
- | Trigger indices and Procedure descriptors | Runtime construction/use cases | Compile plan | #665 |
26
- | Semantic fingerprint | Runtime boot from raw manifests | Compile plan | #665 |
27
- | Declarative View resolution | `ViewSqlCompiler` during each `ExecuteViewUseCase` call | Compile logical plan once | #665 |
28
- | SQLite/JSON1 View lowering and native `spec.sql` | `ViewSqlCompiler` plus `DatabaseDriver` invocation | Selected storage preparation | #666 |
29
- | Canonical SQL migrations, native Schema tables/indexes, readiness | `createCmsRuntime.bootInit` and runtime infrastructure | Prepare | #666 |
30
- | Entry/media/site repositories | Runtime constructs `Database*Repository` from `DatabaseDriver` | Prepared semantic storage ports; media/config move with final owner | #666, #669, #670 |
31
- | Content, View, Procedure, Trigger, lifecycle invocation | Runtime use cases over raw maps/driver | `MantleRuntime` over plan + semantic ports | #667 |
32
- | Target authorization/admin bypass | Runtime plus adapter entry points | One Core invocation policy; adapter resolves caller only | #667 |
33
- | Generated manifest module and TypeScript names | `packages/mantle/src/cli/generate.ts` + `EmitTypesUseCase` | Pure linked/plan projection and `bindMantle` | #668 |
34
- | Admin asset copy during generation | `packages/mantle/src/cli/generate.ts` | Removed; Admin install/composition owns assets | #668, #670 |
35
- | HTML/templates/public paths/Markdown/SEO/preview/`llms.txt`/sitemap | Runtime render services plus Cloudflare public routes | Optional `mantle-web` | #669 |
36
- | Public request mapping and cache policy | `mountPublicRoutes` | Platform adapter using selected Web projection | #669 |
37
- | Admin API/application/static assets | Optional `mantle-admin`; Cloudflare only binds auth/request context/assets | Optional `mantle-admin` + existing UI artifact | #670 |
38
- | View/HTTP Trigger route transport | Combined Cloudflare mounts | Platform adapters over the same Core descriptors | #669–#672 |
39
- | Bun SQLite/process lifecycle | `mantle-bun`; host owns server/database | `mantle-bun`; host owns server/database | #671 |
40
- | Vercel function/durable-storage lifecycle | `mantle-vercel`; host owns handler/client | `mantle-vercel`; host owns handler/client | #672 |
41
- | Legacy overloads, aliases, combined mounts, duplicate tests | Current public API plus temporary migration delegates | Deleted | #673 |
42
- | Contributor/agent/release guidance | `AGENTS.md`, `CLAUDE.md`, `CONTRIBUTING.md`, two release skill copies | One tool-neutral authority and one release skill | #674 |
43
-
44
- ## Deletion evidence
45
-
46
- All baseline production callers now consume `ParsedManifestSet`,
47
- `LinkedManifestSet`, or `RuntimePlan` according to their pipeline stage.
48
- `scripts/check-boundaries.mjs` fails if the removed runtime facade, generated
49
- site API, raw parser facade, or combined Cloudflare route owner returns.
50
- Parser-focused tests may inspect parser output, but runtime and platform tests
51
- must compile and prepare the same sealed plan used by production.
52
-
53
- ## Consumer manifest corpus
54
-
55
- The Core repository does not vendor every downstream manifest. That would
56
- create a second source of truth. The reusable golden fixture under
57
- `packages/mantle-spec/test/fixtures/pipeline-v0.1/` covers every shipped atom,
58
- auth/guard references, all Trigger surfaces, multi-document YAML, empty
59
- documents, aliases, unknown keys, malformed YAML, and deterministic
60
- diagnostics.
61
-
62
- The following pins record the historical sealed-pipeline migration gates.
63
- ADR-0021 supersedes the Starter/Landing release coupling: current Core CI and
64
- release use `docs/examples/host-minimal-worker` from the same reviewed commit.
65
- Private consumers can still run the exact-tarball checker in their own repos;
66
- public Core PRs receive no cross-repository credentials:
67
-
68
- | Historical consumer | Revision | Gate at the time | Manifest paths |
69
- |---|---|---|---|
70
- | `aotter/mantle-starters` | `157e8f49e1e25ae1c52c0115f0dd9e8b6017ef0e` | Core CI + release | `blank/manifests/site.yaml`; `overlays/{community,intake,presence,publication,reservation,transaction}/manifests/site.yaml`; `recipes/typed-web/manifests/site.yaml` |
71
- | `aotter/mantle-landing` | `4381354dd25d5d94f4096cf3e55a4cb9eecbf3ad` | Landing CI + Core release | `manifests/site.yaml` |
72
- | `aotter/mantle-platform` (Remote Mantle/control plane) | `3cc0d9ad6ee47b15f06c915c12f56fc4b9143f32` | Platform `exact-packed-core` | `manifests/platform.yaml` |
73
- | Core i18n fixture | this repository | Core CI | `packages/mantle-spec/test/fixtures/i18n-parent-child/manifests/site.yaml` |
74
-
75
- ## Baseline gates
76
-
77
- The alpha.7 baseline was captured from tag `v0.1.0-alpha.7` on 2026-08-16
78
- with Node 22, pnpm 9, Wrangler local mode, and datasets of 100/10,000 rows:
79
-
80
- | Route | p95 queries | p95 rows read | local p95 timing |
81
- |---|---:|---:|---:|
82
- | public View, 10k rows | 1 | 20 | 3.01 ms |
83
- | public page miss, 10k rows | 2 | 5 | 3.92 ms |
84
- | Admin list, 10k rows | 1 | 21–22 | 2.49–3.24 ms |
85
- | Admin related detail, dense | 4 | 151 | 5.23 ms |
86
- | public builtin create | 1 | 0 | 2.55 ms |
87
-
88
- Wall-clock values are evidence, not a cross-machine budget. The normative
89
- baseline is the existing `pnpm bench:wrangler` query/row gate: every gate must
90
- remain true, unchanged revisions must perform no repeated preparation, and any
91
- intentional budget change needs its own reviewed evidence.
92
-
93
- Existing full-facade behavior is covered by Cloudflare authorization, Admin,
94
- public-route/cache, View REST, HTTP Trigger, media, form, and facade tests.
95
- Issues #669–#673 move those assertions to selected modules and exact packed
96
- consumers; they do not duplicate the suite under new names.
97
-
98
- Issue #674 leaves `CONTRIBUTING.md` plus accepted ADRs as the contributor
99
- authority. `AGENTS.md`, `CLAUDE.md`, and the Claude release-skill entry are
100
- small routers; `.agents/skills/mantle-release/SKILL.md` is the only maintainer
101
- release procedure. Shipped `skills/*` remain separate consumer artifacts.