@aotter/mantle 0.1.5-alpha.1 → 0.2.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (870) 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 +592 -0
  9. package/dist/admin/createAdminSurface.js.map +1 -0
  10. package/dist/admin/developerConsole.d.ts +266 -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 +38 -0
  23. package/dist/admin/procedureFlow.d.ts.map +1 -0
  24. package/dist/admin/procedureFlow.js +188 -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 +129 -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 +508 -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 +318 -262
  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 +353 -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/0022-caller-observed-version-occ.md +1 -1
  611. package/docs/adr/0024-manifest-native-schema-tables.md +2 -2
  612. package/docs/adr/0027-scheduled-procedure-triggers.md +1 -1
  613. package/docs/adr/0028-schema-ttl-expiry.md +3 -3
  614. package/docs/adr/0029-mcp-apps-interaction-contracts.md +324 -0
  615. package/docs/adr/0030-store.md +40 -0
  616. package/docs/adr/0031-host-cloud-core-contract.md +25 -0
  617. package/docs/adr/0032-store-centric-core-and-service-contract.md +361 -0
  618. package/docs/adr/0033-storage-converges-to-the-plan.md +92 -0
  619. package/docs/adr/0034-store-is-authored-as-sql.md +192 -0
  620. package/docs/adr/0035-sql-dialects.md +154 -0
  621. package/docs/adr/0036-host-and-dialect.md +65 -0
  622. package/docs/adr/0037-postgresql-is-the-reference-dialect.md +124 -0
  623. package/docs/adr/0038-bun-native-host.md +63 -0
  624. package/docs/adr/README.md +23 -8
  625. package/docs/adr/adr-lite-861-admin-webmcp.md +6 -0
  626. package/docs/adr/adr-lite-909-admin-ui-kit.md +1 -1
  627. package/docs/examples/README.md +16 -18
  628. package/docs/examples/commerce-inventory.md +481 -0
  629. package/docs/examples/commerce.md +254 -0
  630. package/docs/examples/guarded-api.md +238 -0
  631. package/docs/examples/intake-hooks.md +237 -0
  632. package/docs/examples/intake.md +127 -0
  633. package/docs/examples/legal-documents.md +218 -0
  634. package/docs/examples/procurement.md +215 -0
  635. package/docs/examples/publication.md +211 -0
  636. package/docs/examples/reference-service/.dev.vars.example +4 -0
  637. package/docs/examples/reference-service/.mantle/generated/mantle.ts +174 -0
  638. package/docs/examples/reference-service/.mantle/generated/plan.json +1936 -0
  639. package/docs/examples/reference-service/README.md +33 -0
  640. package/docs/examples/reference-service/manifests/catalog.yaml +103 -0
  641. package/docs/examples/reference-service/manifests/orders.yaml +120 -0
  642. package/docs/examples/reference-service/mantle.config.json +1 -0
  643. package/docs/examples/reference-service/package.json +27 -0
  644. package/docs/examples/reference-service/smoke.mjs +156 -0
  645. package/docs/examples/reference-service/src/handlers.ts +36 -0
  646. package/docs/examples/reference-service/src/index.ts +33 -0
  647. package/docs/examples/reference-service/src/service.ts +78 -0
  648. package/docs/examples/{host-minimal-worker → reference-service}/tsconfig.json +7 -2
  649. package/docs/examples/reference-service/wrangler.jsonc +26 -0
  650. package/docs/examples/reservation.md +142 -0
  651. package/docs/handbook/cloudflare/authentication.md +119 -311
  652. package/docs/handbook/cloudflare/chatgpt-sites.md +104 -15
  653. package/docs/handbook/cloudflare/deploy-and-operate.md +77 -71
  654. package/docs/handbook/cloudflare/media-r2.md +64 -187
  655. package/docs/handbook/cloudflare/service-entry.md +138 -0
  656. package/docs/handbook/concepts/authorization.md +104 -94
  657. package/docs/handbook/concepts/four-atoms.md +68 -144
  658. package/docs/handbook/concepts/lifecycle-and-locales.md +62 -114
  659. package/docs/handbook/concepts/mcp-and-agents.md +112 -117
  660. package/docs/handbook/concepts/procedures-and-triggers.md +126 -181
  661. package/docs/handbook/concepts/runtime-and-adapters.md +177 -163
  662. package/docs/handbook/concepts/views.md +97 -173
  663. package/docs/handbook/examples/hub.md +17 -6
  664. package/docs/handbook/guides/admin-ui.md +101 -96
  665. package/docs/handbook/guides/agent-setup.md +56 -71
  666. package/docs/handbook/guides/typed-queries.md +105 -111
  667. package/docs/handbook/navigation.json +8 -33
  668. package/docs/handbook/reference/authorization.md +52 -271
  669. package/docs/handbook/reference/diagnostics.md +69 -178
  670. package/docs/handbook/reference/features.md +48 -50
  671. package/docs/handbook/reference/manifest.md +56 -116
  672. package/docs/handbook/reference/procedure.md +91 -279
  673. package/docs/handbook/reference/schema.md +154 -239
  674. package/docs/handbook/reference/site-config.md +58 -211
  675. package/docs/handbook/reference/surface.md +69 -181
  676. package/docs/handbook/reference/trigger.md +72 -181
  677. package/docs/handbook/reference/view.md +140 -241
  678. package/docs/handbook/releases/index.md +58 -77
  679. package/docs/handbook/start/overview.md +59 -51
  680. package/docs/handbook/start/project-and-cli.md +132 -105
  681. package/docs/handbook/start/quickstart-worker.md +102 -160
  682. package/docs/skills/develop/SKILL.md +114 -240
  683. package/docs/skills/develop/mcp-app.md +79 -0
  684. package/docs/skills/integrate/SKILL.md +83 -47
  685. package/docs/skills/media-gc/SKILL.md +21 -10
  686. package/docs/skills/provision/SKILL.md +68 -162
  687. package/docs/skills/update/SKILL.md +33 -34
  688. package/docs/upgrade-0.1-to-0.2.md +211 -0
  689. package/package.json +87 -106
  690. package/dist/admin-ui.d.ts +0 -2
  691. package/dist/admin-ui.d.ts.map +0 -1
  692. package/dist/admin-ui.js +0 -2
  693. package/dist/admin-ui.js.map +0 -1
  694. package/dist/admin.d.ts +0 -2
  695. package/dist/admin.d.ts.map +0 -1
  696. package/dist/admin.js +0 -2
  697. package/dist/admin.js.map +0 -1
  698. package/dist/auth.d.ts +0 -2
  699. package/dist/auth.d.ts.map +0 -1
  700. package/dist/auth.js +0 -2
  701. package/dist/auth.js.map +0 -1
  702. package/dist/bun.d.ts +0 -2
  703. package/dist/bun.d.ts.map +0 -1
  704. package/dist/bun.js +0 -2
  705. package/dist/bun.js.map +0 -1
  706. package/dist/cli/generate-cloudflare.d.ts +0 -7
  707. package/dist/cli/generate-cloudflare.d.ts.map +0 -1
  708. package/dist/cli/generate-cloudflare.js +0 -123
  709. package/dist/cli/generate-cloudflare.js.map +0 -1
  710. package/dist/cli/generate-project.d.ts +0 -25
  711. package/dist/cli/generate-project.d.ts.map +0 -1
  712. package/dist/cli/generate-project.js +0 -282
  713. package/dist/cli/generate-project.js.map +0 -1
  714. package/dist/cli/generate-sites.d.ts +0 -8
  715. package/dist/cli/generate-sites.d.ts.map +0 -1
  716. package/dist/cli/generate-sites.js +0 -273
  717. package/dist/cli/generate-sites.js.map +0 -1
  718. package/dist/cli/harness.d.ts +0 -3
  719. package/dist/cli/harness.d.ts.map +0 -1
  720. package/dist/cli/harness.js +0 -214
  721. package/dist/cli/harness.js.map +0 -1
  722. package/dist/cli/skills.d.ts +0 -3
  723. package/dist/cli/skills.d.ts.map +0 -1
  724. package/dist/cli/skills.js +0 -128
  725. package/dist/cli/skills.js.map +0 -1
  726. package/dist/cloudflare.d.ts +0 -2
  727. package/dist/cloudflare.d.ts.map +0 -1
  728. package/dist/cloudflare.js +0 -2
  729. package/dist/cloudflare.js.map +0 -1
  730. package/dist/codegen/emitMantleModule.d.ts +0 -22
  731. package/dist/codegen/emitMantleModule.d.ts.map +0 -1
  732. package/dist/codegen/emitMantleModule.js +0 -291
  733. package/dist/codegen/emitMantleModule.js.map +0 -1
  734. package/dist/codegen.d.ts +0 -2
  735. package/dist/codegen.d.ts.map +0 -1
  736. package/dist/codegen.js +0 -2
  737. package/dist/codegen.js.map +0 -1
  738. package/dist/runtime-testing.d.ts +0 -2
  739. package/dist/runtime-testing.d.ts.map +0 -1
  740. package/dist/runtime-testing.js +0 -2
  741. package/dist/runtime-testing.js.map +0 -1
  742. package/dist/runtime.d.ts +0 -2
  743. package/dist/runtime.d.ts.map +0 -1
  744. package/dist/runtime.js +0 -2
  745. package/dist/runtime.js.map +0 -1
  746. package/dist/spec.d.ts +0 -2
  747. package/dist/spec.d.ts.map +0 -1
  748. package/dist/spec.js +0 -2
  749. package/dist/spec.js.map +0 -1
  750. package/dist/vercel-libsql.d.ts +0 -2
  751. package/dist/vercel-libsql.d.ts.map +0 -1
  752. package/dist/vercel-libsql.js +0 -2
  753. package/dist/vercel-libsql.js.map +0 -1
  754. package/dist/vercel.d.ts +0 -2
  755. package/dist/vercel.d.ts.map +0 -1
  756. package/dist/vercel.js +0 -2
  757. package/dist/vercel.js.map +0 -1
  758. package/dist/web.d.ts +0 -2
  759. package/dist/web.d.ts.map +0 -1
  760. package/dist/web.js +0 -2
  761. package/dist/web.js.map +0 -1
  762. package/docs/adapter-guide.md +0 -222
  763. package/docs/agent-prompts.md +0 -64
  764. package/docs/api-mcp-authorization.md +0 -5
  765. package/docs/assets/mantle-admin-developer.png +0 -0
  766. package/docs/assets/mantle-admin-operations.png +0 -0
  767. package/docs/assets/mantle-hero.jpg +0 -0
  768. package/docs/auth-hosting-model.md +0 -166
  769. package/docs/cloudflare-low-level-composition.md +0 -5
  770. package/docs/consumer-onboarding-audit.md +0 -65
  771. package/docs/deferred-lifecycle-queues.md +0 -5
  772. package/docs/design-atoms.md +0 -16
  773. package/docs/design-references/editorial-blog-2026-05-05.md +0 -218
  774. package/docs/direct-authoring.md +0 -5
  775. package/docs/examples/builtin-commerce.md +0 -269
  776. package/docs/examples/builtin-intake.md +0 -143
  777. package/docs/examples/builtin-legal-documents.md +0 -189
  778. package/docs/examples/builtin-procurement.md +0 -241
  779. package/docs/examples/builtin-publication.md +0 -241
  780. package/docs/examples/builtin-reservation.md +0 -149
  781. package/docs/examples/cf-primitives-commerce-inventory.md +0 -809
  782. package/docs/examples/cf-primitives-guarded-api.md +0 -429
  783. package/docs/examples/cf-primitives-intake-hooks.md +0 -319
  784. package/docs/examples/host-chatgpt-sites/.openai/hosting.json +0 -1
  785. package/docs/examples/host-chatgpt-sites/README.md +0 -70
  786. package/docs/examples/host-chatgpt-sites/drizzle/0000_sites_users.sql +0 -8
  787. package/docs/examples/host-chatgpt-sites/drizzle/0001_mantle.sql +0 -294
  788. package/docs/examples/host-chatgpt-sites/drizzle/0002_article_cover.sql +0 -5
  789. package/docs/examples/host-chatgpt-sites/drizzle/0003_store_instance_id.sql +0 -1
  790. package/docs/examples/host-chatgpt-sites/drizzle/0004_mantle.sql +0 -10
  791. package/docs/examples/host-chatgpt-sites/drizzle/0005_mantle.sql +0 -24
  792. package/docs/examples/host-chatgpt-sites/drizzle/meta/_journal.json +0 -1
  793. package/docs/examples/host-chatgpt-sites/drizzle/meta/mantle-state.json +0 -60
  794. package/docs/examples/host-chatgpt-sites/manifests/site.yaml +0 -27
  795. package/docs/examples/host-chatgpt-sites/package.json +0 -1
  796. package/docs/examples/host-chatgpt-sites/public/site.css +0 -1
  797. package/docs/examples/host-chatgpt-sites/scripts/build.mjs +0 -13
  798. package/docs/examples/host-chatgpt-sites/scripts/check.mjs +0 -101
  799. package/docs/examples/host-chatgpt-sites/scripts/migration.mjs +0 -43
  800. package/docs/examples/host-chatgpt-sites/src/chatgpt-auth.ts +0 -66
  801. package/docs/examples/host-chatgpt-sites/src/index.ts +0 -46
  802. package/docs/examples/host-chatgpt-sites/src/mcp.ts +0 -49
  803. package/docs/examples/host-chatgpt-sites/src/media.ts +0 -109
  804. package/docs/examples/host-chatgpt-sites/src/r2-lab.ts +0 -38
  805. package/docs/examples/host-chatgpt-sites/src/storage-fingerprint.json +0 -1
  806. package/docs/examples/host-chatgpt-sites/src/web.ts +0 -35
  807. package/docs/examples/host-chatgpt-sites/tsconfig.json +0 -1
  808. package/docs/examples/host-chatgpt-sites/wrangler.jsonc +0 -10
  809. package/docs/examples/host-local-admin-otp/.dev.vars.example +0 -3
  810. package/docs/examples/host-local-admin-otp/README.md +0 -80
  811. package/docs/examples/host-local-admin-otp/ensure-dev-vars.mjs +0 -5
  812. package/docs/examples/host-local-admin-otp/manifests/site.yaml +0 -25
  813. package/docs/examples/host-local-admin-otp/package.json +0 -29
  814. package/docs/examples/host-local-admin-otp/public/.gitkeep +0 -1
  815. package/docs/examples/host-local-admin-otp/smoke.mjs +0 -141
  816. package/docs/examples/host-local-admin-otp/src/index.ts +0 -54
  817. package/docs/examples/host-local-admin-otp/tsconfig.json +0 -17
  818. package/docs/examples/host-local-admin-otp/wrangler.jsonc +0 -23
  819. package/docs/examples/host-minimal-worker/README.md +0 -41
  820. package/docs/examples/host-minimal-worker/manifests/site.yaml +0 -25
  821. package/docs/examples/host-minimal-worker/package.json +0 -26
  822. package/docs/examples/host-minimal-worker/smoke.mjs +0 -23
  823. package/docs/examples/host-minimal-worker/src/index.ts +0 -4
  824. package/docs/examples/host-minimal-worker/wrangler.jsonc +0 -22
  825. package/docs/handbook/chatgpt-sites/equipment-checkout.md +0 -231
  826. package/docs/handbook/chatgpt-sites/generated-app.md +0 -84
  827. package/docs/handbook/chatgpt-sites/host-reference.md +0 -113
  828. package/docs/handbook/chatgpt-sites/index.md +0 -133
  829. package/docs/handbook/cloudflare/bindings.md +0 -291
  830. package/docs/handbook/cloudflare/conventional-worker.md +0 -166
  831. package/docs/handbook/cloudflare/deferred-hooks-queues.md +0 -170
  832. package/docs/handbook/cloudflare/low-level-composition.md +0 -169
  833. package/docs/handbook/cloudflare/public-web.md +0 -144
  834. package/docs/handbook/cloudflare/site-chrome.md +0 -75
  835. package/docs/handbook/examples/commerce-transaction.md +0 -11
  836. package/docs/handbook/examples/commerce.md +0 -11
  837. package/docs/handbook/examples/guarded-api.md +0 -10
  838. package/docs/handbook/examples/intake-form.md +0 -12
  839. package/docs/handbook/examples/intake-hooks.md +0 -11
  840. package/docs/handbook/examples/legal-documents.md +0 -10
  841. package/docs/handbook/examples/procurement-approvals.md +0 -10
  842. package/docs/handbook/examples/publication.md +0 -10
  843. package/docs/handbook/examples/reservation.md +0 -10
  844. package/docs/handbook/start/quickstart-admin.md +0 -52
  845. package/docs/labels.md +0 -71
  846. package/docs/media-uploads.md +0 -5
  847. package/docs/migration-0.1.2.md +0 -13
  848. package/docs/performance-harness.md +0 -228
  849. package/docs/release-process.md +0 -244
  850. package/docs/schema-indexes.md +0 -5
  851. package/docs/sealed-pipeline-ownership.md +0 -101
  852. package/docs/skills/plugin/SKILL.md +0 -132
  853. package/docs/skills/theme/SKILL.md +0 -77
  854. package/docs/spec-only-host-adoption.md +0 -157
  855. package/docs/transaction-patterns.md +0 -5
  856. package/skills/README.md +0 -127
  857. package/skills/develop/SKILL.md +0 -258
  858. package/skills/install/SKILL.md +0 -112
  859. package/skills/integrate/SKILL.md +0 -60
  860. package/skills/media-gc/SKILL.md +0 -85
  861. package/skills/plugin/SKILL.md +0 -132
  862. package/skills/provision/SKILL.md +0 -194
  863. package/skills/theme/SKILL.md +0 -77
  864. package/skills/update/SKILL.md +0 -51
  865. package/templates/chatgpt-sites/auth.ts +0 -66
  866. package/templates/chatgpt-sites/build.mjs +0 -14
  867. package/templates/chatgpt-sites/env.ts +0 -1
  868. package/templates/chatgpt-sites/mcp.ts +0 -48
  869. package/templates/chatgpt-sites/public-mcp.ts +0 -29
  870. package/templates/chatgpt-sites/smoke-local.mjs +0 -20
@@ -1,60 +0,0 @@
1
- ---
2
- name: integrate
3
- description: Integrate Mantle into an existing application. Use when the application has its own code, routes, storage or deployment and the owner wants to add Mantle, replace part of it, or rebuild with Mantle while migrating frontend and data.
4
- metadata:
5
- source: "@aotter/mantle"
6
- sourcePath: docs/skills/integrate/SKILL.md
7
- applies_to: mantle grammar v0.1
8
- projection: package
9
- projectionReason: Existing-project migration is opt-in; a fresh generated app does not need this brief.
10
- ---
11
-
12
- # Integrate Mantle into an existing application
13
-
14
- Work in the target application. Read its installed `@aotter/mantle` version,
15
- CLI help and package-local docs before editing. If Mantle is absent, inspect
16
- the application first, then install an exact SDK version only after choosing an
17
- integration strategy. Use the installed version's contract; do not copy
18
- `develop` branch examples into an older consumer.
19
-
20
- ## Inspect and decide
21
-
22
- Map the actual entry points, router, frontend, auth, storage, data volume and
23
- relationships, deployment pipeline, URLs, background jobs and existing tests.
24
- Identify which behavior the owner wants Mantle to own and what must remain
25
- stable. Compare three approaches using the application's evidence:
26
-
27
- 1. **Embed selectively:** keep the host and call Mantle's parser, Runtime or
28
- selected surfaces through its documented package APIs. The host owns wiring.
29
- 2. **Replace incrementally:** move one bounded capability at a time. Define
30
- where reads and writes go during coexistence and how each step is checked.
31
- 3. **Rebuild and migrate:** create a separate new Mantle application, port the
32
- frontend and business behavior, and transform/import existing data. Prefer
33
- this when adapting the old structure costs more than rebuilding. Preserve
34
- relevant IDs, relations, URLs and identity semantics; rehearse the data
35
- transfer before a production cutover.
36
-
37
- Explain the chosen path and its concrete tradeoffs to the owner. A small
38
- prototype or read-only inventory may resolve uncertainty. Do not run a generic
39
- project converter or assume the current application's shape matches a
40
- generated Cloudflare or ChatGPT Sites skeleton.
41
-
42
- ## Implement and verify
43
-
44
- - For embedding, retain user-owned entry/config/build files. Use the installed
45
- direct-authoring docs and CLI to validate manifests and emit bindings; wire
46
- the selected Mantle capabilities into the existing host explicitly.
47
- - For incremental replacement, establish a clear owner for each data write
48
- and request route at every stage. Verify old and new behavior together.
49
- - For rebuilding, generate in a **separate directory** with the installed
50
- CLI, move frontend and handlers deliberately, and plan data mapping and
51
- import separately. Review database migrations before application or cutover.
52
- - Run the application's build and representative behavior checks for the
53
- changed routes, auth and data. `mantle generate --check` checks generated
54
- output against its declared selection; it cannot certify host integration.
55
- For live data, record migration counts and a rollback or recovery path
56
- appropriate to the project.
57
-
58
- Leave existing data and deployment untouched until the requested migration
59
- and release steps are ready. Report which capabilities Mantle now owns,
60
- what was verified, and what remains for application deployment or cutover.
@@ -1,85 +0,0 @@
1
- ---
2
- name: media-gc
3
- description: Audit and safely remove stale, uncommitted public media uploads from a Mantle Cloudflare R2 bucket. Use when a Mantle operator asks to inspect or clean orphan media objects left after create_media_upload without commit_media_upload.
4
- metadata:
5
- source: "@aotter/mantle"
6
- sourcePath: docs/skills/media-gc/SKILL.md
7
- applies_to: mantle grammar v0.1
8
- projection: package
9
- projectionReason: Destructive remote object deletion and Cloudflare-specific; opt-in only.
10
- ---
11
-
12
- # Mantle Media GC
13
-
14
- Use the connected Cloudflare API. Audit by default; delete only the exact
15
- objects approved by the user.
16
-
17
- ## Preflight
18
-
19
- 1. Read the project's Wrangler config and Mantle config. Resolve the R2 bucket
20
- binding, bucket name, and declared public media purpose names.
21
- 2. Confirm the exact Cloudflare account and bucket. If either is ambiguous,
22
- ask; never choose by name similarity.
23
- 3. Use the Cloudflare OpenAPI search before execution to resolve the current
24
- R2 List Objects and Delete Objects endpoints. If the connected account lacks
25
- access, stop. Do not create, request, or store credentials.
26
- 4. Stop when the project has no public R2 media binding or no declared purpose.
27
-
28
- ## Audit
29
-
30
- For each declared purpose, list up to 1,000 objects per page under the exact
31
- `<purpose>/` prefix. Use the API cursor until `is_truncated` is false.
32
-
33
- An object is a deletion candidate only when all conditions hold:
34
-
35
- - `last_modified` is more than 24 hours old;
36
- - `custom_metadata.committedAt` is absent or empty;
37
- - the key matches the exact Mantle layout
38
- `<purpose>/<group>/(primary|alternate|fallback).(png|jpg|webp|avif|gif|svg)`,
39
- where `<purpose>` is declared by this project and `<group>` contains only
40
- letters, digits, `_`, or `-`.
41
-
42
- Skip committed, unknown-prefix, unprefixed, malformed, or ambiguous objects.
43
- Delete only an uncommitted variant, never its whole group.
44
-
45
- Report the account, bucket, purpose prefixes, UTC cutoff, candidate object and
46
- group counts, total bytes, skipped count, and a SHA-256 digest of the sorted
47
- `key + etag` candidate set. Do not print object keys, upload group IDs,
48
- filenames, public URLs, signed URLs, or secrets.
49
-
50
- ## Apply
51
-
52
- 1. Show the audit summary and get explicit confirmation for that exact account,
53
- bucket, cutoff, count, byte total, and candidate-set digest.
54
- 2. Re-run the complete audit with the same UTC cutoff. If the candidate count,
55
- bytes, or digest changed, stop and present the new audit for confirmation.
56
- 3. Call Delete Objects with JSON arrays of exact keys, at most 1,000 keys per
57
- request. Never send the `prefix` query parameter: an empty prefix can empty
58
- the bucket.
59
- 4. Do not automatically retry failed keys. Report safe API error codes and
60
- counts; a later invocation can audit and retry what remains.
61
- 5. Re-list every inspected purpose prefix and report the remaining candidate
62
- count and bytes.
63
-
64
- ## Don't
65
-
66
- - Don't create a Worker, Cron Trigger, lifecycle rule, D1 table, or local script.
67
- - Don't use prefix deletion or empty-bucket operations.
68
- - Don't delete private-media buckets or objects outside declared purpose
69
- prefixes.
70
- - Don't treat missing pagination pages, metadata, or permissions as an empty
71
- result.
72
-
73
- ## Diagnostics
74
-
75
- | Symptom | Action |
76
- |---|---|
77
- | Multiple matching accounts or buckets | Stop and ask the user to select the exact target. |
78
- | A page is truncated without a cursor | Stop; do not delete from a partial audit. |
79
- | A candidate has an unexpected key or metadata shape | Skip it and include it only in the aggregate skipped count. |
80
- | A delete request partially fails | Report safe error codes and leave the remaining objects for a later audit. |
81
-
82
- ## When You're Done
83
-
84
- Return whether the run was audit-only or applied, the aggregate before/after
85
- counts and bytes, and any safely redacted failures.
@@ -1,132 +0,0 @@
1
- ---
2
- name: plugin
3
- description: Discover, plan, apply, and verify Mantle marketplace plugins through the Core SDK contract. Use when the user wants to add an installable capability without hand-planning provisioning steps.
4
- metadata:
5
- source: "@aotter/mantle"
6
- sourcePath: docs/skills/plugin/SKILL.md
7
- applies_to: mantle grammar v0.1
8
- projection: project
9
- ---
10
-
11
- # Mantle Plugin
12
-
13
- Mantle plugins are Core SDK capability packages. They are not application
14
- scaffolds (retired in ADR-0021) and they are not provider provisioning scripts.
15
-
16
- A plugin may contribute:
17
-
18
- - manifests: `Schema`, `View`, `Procedure`, `Trigger`;
19
- - handler source or handler registration notes;
20
- - site defaults or media policy additions;
21
- - expected HTTP, admin, and MCP surfaces;
22
- - adapter capability requirements and provider setup notes.
23
-
24
- ## User Install Entry
25
-
26
- The user-facing install path is:
27
-
28
- ```txt
29
- Use repo-local mantle:plugin to install <plugin slug or recipe URL> in this repo.
30
- Use repo-local mantle:plugin to update <plugin id> in this repo.
31
- Use repo-local mantle:plugin to remove <plugin id> from this repo.
32
- ```
33
-
34
- There is no `mantle plugin add` CLI yet. Do not invent one. Install from a
35
- marketplace entry, plugin package, or recipe URL that declares enough data for
36
- an agent to apply the capability deterministically.
37
-
38
- A valid marketplace entry must include:
39
-
40
- - plugin id, title, source, and version;
41
- - supported Mantle version range;
42
- - files, manifests, handlers, routes, MCP tools, and admin surfaces it adds;
43
- - adapter capabilities and provider resources it requires;
44
- - required env vars and secrets, without secret values;
45
- - verification commands and expected surfaces.
46
-
47
- If the marketplace page is only marketing copy or lacks an install recipe,
48
- stop and ask for the recipe instead of guessing.
49
-
50
- ## First Read
51
-
52
- 1. `package.json` for Mantle version and adapter package.
53
- 2. The manifest directory selected by project scripts for current atom names
54
- and route/tool collisions.
55
- 3. The actual host entry and its handler, template and port registrations;
56
- `src/mantle/config.ts` and `src/mantle/handlers/` are conventions, not required paths.
57
- 4. `.mantle/plugins.json` and `.mantle/plugins.lock.json` if present.
58
- 5. `.mantle/launch-state.json` only as context, not as plugin authority.
59
-
60
- Read version-matched contracts under `node_modules/@aotter/mantle/docs/`,
61
- starting with `handbook/reference/features.md`. Plugin recipes cannot override
62
- the installed grammar.
63
-
64
- ## Plan First
65
-
66
- Before applying any plugin, produce a plan:
67
-
68
- - files to add or change;
69
- - atoms to add and their names;
70
- - HTTP routes and MCP tools that will appear;
71
- - required runtime ports;
72
- - adapter-specific resources, env vars, and secrets;
73
- - checks to run.
74
-
75
- If the plugin needs a capability the current adapter does not expose, stop
76
- with the missing capability instead of inventing provider steps.
77
-
78
- ## Apply
79
-
80
- Apply the smallest deterministic diff. Do not run arbitrary install scripts
81
- from a plugin package. Copy declared files, wire declared handlers, update the
82
- plugin ledger, then validate.
83
-
84
- Suggested ledger paths:
85
-
86
- ```txt
87
- .mantle/plugins.json
88
- .mantle/plugins.lock.json
89
- ```
90
-
91
- Keep optional legacy launch files such as `.mantle/features.json` separate from
92
- plugin state. They are not the Core plugin ledger.
93
-
94
- ## Update
95
-
96
- Compare the installed lock entry against the marketplace entry or recipe URL.
97
- Apply only the declared version diff, update `.mantle/plugins.lock.json`, then
98
- run the same verification checks.
99
-
100
- ## Remove
101
-
102
- Use the lock entry as the removal manifest. Delete only files and atoms owned
103
- by that plugin, unwind handler registrations it added, remove its ledger entry,
104
- then validate. If another plugin or local code depends on a removed atom, stop
105
- and report the dependency instead of deleting through it.
106
-
107
- ## Verify
108
-
109
- Use the project's validation and typecheck scripts when present. Regenerate
110
- the plan after manifest changes before probing the running host:
111
-
112
- ```bash
113
- pnpm exec mantle validate
114
- pnpm exec mantle generate
115
- pnpm exec mantle generate --check
116
- # Run the project's TypeScript check and restart its local server.
117
- ```
118
-
119
- Then verify the plugin's declared surfaces:
120
-
121
- - public Views via `GET /api/views/<name>`, staff Views via authenticated
122
- Admin/staff MCP, and internal Views through the host binding;
123
- - HTTP Trigger path for public writes;
124
- - Staff/Public MCP `tools/list` for MCP Trigger or Schema-derived tools;
125
- - adapter resource presence when the plugin requires optional ports.
126
-
127
- ## Don't
128
-
129
- - Don't treat an application template as a plugin.
130
- - Don't assume Cloudflare; inspect the active adapter and capability ports.
131
- - Don't create a second skill namespace for host-specific plugins.
132
- - Don't commit secrets. Provider secrets stay in the platform secret store.
@@ -1,194 +0,0 @@
1
- ---
2
- name: provision
3
- description: Ship a Mantle project through its selected host, routing ChatGPT Sites to its integration guide and conventional Cloudflare Workers to production auth and provisioning.
4
- metadata:
5
- source: "@aotter/mantle"
6
- sourcePath: docs/skills/provision/SKILL.md
7
- applies_to: mantle grammar v0.1
8
- projection: package
9
- projectionReason: Platform-specific deploy that handles production secrets; opt-in only.
10
- ---
11
-
12
- # Provision a Mantle Project
13
-
14
- Local cold start deliberately stops before this skill. Provision only after the
15
- user asks to create remote resources or ship production. This flow is for
16
- consumer-owned Cloudflare Workers. New direct-authored apps do not need Landing
17
- artifacts (`.mantle/launch-state.json`, `.mantle/handoff.md`, or a hosted-auth
18
- allocation). Treat any Landing handoff as **legacy/optional**. For a ChatGPT
19
- Site, use the installed `docs/handbook/chatgpt-sites/index.md` integration guide and
20
- the "Publish with Sites" steps in `docs/examples/host-chatgpt-sites/README.md`:
21
- request D1 and R2 on the Site, set `PUBLIC_ORIGIN` and `OWNER_EMAIL` in Sites
22
- settings, review the migration, then save and deploy a Sites version. Do not
23
- run `wrangler deploy` or require R2 S3 credentials merely because Sites exposes
24
- an R2 binding.
25
-
26
- ## Source of Truth
27
-
28
- 1. Read the actual provider config (`wrangler.jsonc` or `wrangler.toml`),
29
- application entry and git remotes. Read legacy `.mantle/launch-state.json`
30
- and `.mantle/handoff.md` only when present; they are optional leftovers from
31
- Landing and must not be created as prerequisites for a new app.
32
- 2. Read installed `@aotter/mantle*` versions from `package.json`.
33
- 3. Use matching embedded docs under `node_modules/@aotter/mantle/docs/`.
34
- 4. Never infer provider authority from launch state. Confirm the active GitHub
35
- and Cloudflare accounts before changing them.
36
-
37
- Run the local gate first:
38
-
39
- ```bash
40
- pnpm install --frozen-lockfile
41
- pnpm validate
42
- pnpm typecheck
43
- git status --short
44
- ```
45
-
46
- ## Resume From Observed State
47
-
48
- Do not branch on how the project was created. Verify these facts and skip
49
- completed work:
50
-
51
- 1. `git remote get-url origin` confirms the GitHub repo.
52
- 2. An HTTPS `PUBLIC_ORIGIN` that responds confirms the Cloudflare deploy.
53
- 3. `/admin/sign-in` returning `503 setup_incomplete` means auth is not bound.
54
- Use the recorded auth intent only to choose hosted or self-hosted setup;
55
- live behavior is authoritative.
56
-
57
- If there is no remote, confirm the target account, create a private repo,
58
- commit, and push `main`. If there is no live Worker, confirm the Cloudflare
59
- account, prefer an available connector, or use `pnpm exec wrangler login` with
60
- the user's agreement, then run `pnpm deploy`.
61
-
62
- Capture the live URL in `PUBLIC_ORIGIN` and `Public site:` in `AGENTS.md`, then
63
- commit and push non-secret changes. Reuse any repo or Worker already created.
64
- Do not recreate Landing artifacts for a new direct-authored app. Workers Builds
65
- is optional after a direct deploy.
66
-
67
- When the owner later adopts a custom domain, update `PUBLIC_ORIGIN` and the
68
- provider's OAuth callback together, then redeploy. Do not patch `site_config`
69
- directly; boot syncs its canonical origin from `PUBLIC_ORIGIN`.
70
-
71
- ## Choose Auth
72
-
73
- - **Self-hosted email OTP:** use the application's production transactional-email sender. Replace `ConsoleEmailSender`; never deploy it.
74
- - **Self-hosted GitHub OAuth — free fallback:** use when the application has no email provider. Configure the owner's per-site GitHub OAuth App and Worker secrets using the steps below.
75
- - **Mantle hosted auth — paid, legacy/optional:** use only when a **legacy
76
- Landing handoff** already records a hosted allocation and client
77
- configuration. New direct-authored apps do not get this from Core. Mantle
78
- Platform operates the identity provider; do not ask the user for a per-site
79
- GitHub OAuth App.
80
-
81
- Configure only the selected mode. Core deliberately rejects partial or mixed
82
- hosted/self-managed bindings with `503 setup_incomplete`.
83
-
84
- Do not claim that hosted auth can attach to an arbitrary local repo unless a
85
- legacy Landing handoff already supplies that configuration.
86
-
87
- For the exact boundary, read
88
- `node_modules/@aotter/mantle/docs/auth-hosting-model.md`.
89
-
90
- ## Self-hosted email OTP
91
-
92
- Keep the application's custom `createAuth()` factory, replace
93
- `ConsoleEmailSender` with its production `EmailSender`, and retain
94
- `bootstrapOwner: { match: "email", value: <owner email> }`. Store sender
95
- credentials and `BETTER_AUTH_SECRET` as Worker secrets, put `PUBLIC_ORIGIN` in
96
- non-secret vars, deploy, then verify that the owner receives an OTP at
97
- `/admin/sign-in`. If there is no production email provider, use GitHub OAuth
98
- below instead of deploying console delivery.
99
-
100
- ## Self-hosted GitHub OAuth
101
-
102
- 1. Ask the user to create a GitHub OAuth App:
103
-
104
- - Homepage URL: `<worker-url>`
105
- - Authorization callback URL: `<worker-url>/api/auth/callback/github`
106
- - Device Flow: unchecked
107
-
108
- 2. Put non-secret values in `wrangler.toml`:
109
-
110
- - `MANTLE_AUTH_MODE = "self-managed"`
111
- - `PUBLIC_ORIGIN`
112
- - `GITHUB_CLIENT_ID`
113
- - `ADMIN_GITHUB_LOGIN`
114
- - correct Worker `name`
115
-
116
- Remove `MANTLE_HOSTED_AUTH_ISSUER` and `MANTLE_HOSTED_AUTH_CLIENT_ID` if they
117
- were present for a hosted allocation.
118
-
119
- 3. Keep the Client Secret out of chat. Prefer a Cloudflare connector for
120
- secrets; otherwise use hidden shell input:
121
-
122
- ```bash
123
- read -rsp "GitHub OAuth client secret: " MANTLE_GITHUB_CLIENT_SECRET && printf "\n"
124
- printf '%s' "$MANTLE_GITHUB_CLIENT_SECRET" | pnpm exec wrangler secret put GITHUB_CLIENT_SECRET
125
- openssl rand -hex 32 | pnpm exec wrangler secret put BETTER_AUTH_SECRET
126
- unset MANTLE_GITHUB_CLIENT_SECRET
127
- ```
128
-
129
- Set `BETTER_AUTH_SECRET` once and preserve it. Rotating it invalidates existing
130
- sessions.
131
-
132
- 4. Commit and push only non-secret config, then redeploy:
133
-
134
- ```bash
135
- git add wrangler.toml AGENTS.md
136
- git commit -m "mantle: wire production auth"
137
- git push
138
- pnpm deploy
139
- ```
140
-
141
- ## Hosted Auth (legacy Landing)
142
-
143
- Skip this section unless a legacy Landing handoff is already present. New
144
- direct-authored apps use self-hosted email OTP or GitHub OAuth above.
145
-
146
- Follow that handoff and its client configuration. Hosted configuration remains
147
- in landing-managed Cloudflare Worker bindings. Verify:
148
-
149
- - `MANTLE_AUTH_MODE = "hosted"`;
150
- - `MANTLE_HOSTED_AUTH_ISSUER` is the HTTPS root issuer;
151
- - `MANTLE_HOSTED_AUTH_CLIENT_ID` is the same-origin `/clients/<id>` URL;
152
- - `PUBLIC_ORIGIN` and `ADMIN_GITHUB_LOGIN` are set;
153
- - `BETTER_AUTH_SECRET` exists as a Worker secret;
154
- - `GITHUB_CLIENT_ID` and `GITHUB_CLIENT_SECRET` are absent.
155
-
156
- Hosted clients use PKCE and have no client secret. Do not write secrets into
157
- `wrangler.toml`.
158
-
159
- Verify that admin sign-in redirects to Mantle Hosted Auth and Staff MCP
160
- authenticates, then skip the self-hosted flow.
161
-
162
- ## Smoke Test
163
-
164
- - public home route;
165
- - `/admin/sign-in`;
166
- - selected admin sign-in path;
167
- - `/mcp/staff` with an agent client when available;
168
- - one type-specific core workflow.
169
-
170
- Media uploads are optional. Configure R2 only when the owner asks for
171
- staff-managed files; then read
172
- `node_modules/@aotter/mantle/docs/handbook/cloudflare/media-r2.md`.
173
-
174
- ## Handoff
175
-
176
- Return:
177
-
178
- - public URL;
179
- - admin sign-in URL;
180
- - Staff MCP URL;
181
- - operator setup URL:
182
- `https://mantle.tools/connect?site=<url-encoded-worker-url>`;
183
- - remote resources created or reused;
184
- - auth mode and any intentionally deferred setup.
185
-
186
- ## Don't
187
-
188
- - Don't create remote resources before the user asks to ship.
189
- - Don't ask for a Cloudflare API token in the base flow.
190
- - Don't commit provider secrets.
191
- - Don't require R2 for first production.
192
- - Don't invent a second provision orchestrator.
193
- - Don't use `/admin/auth/github/callback`; the callback is
194
- `/api/auth/callback/github`.
@@ -1,77 +0,0 @@
1
- ---
2
- name: theme
3
- description: Apply brand and visual direction in a Mantle application using its repo-owned theme and UI contracts.
4
- metadata:
5
- source: "@aotter/mantle"
6
- sourcePath: docs/skills/theme/SKILL.md
7
- applies_to: mantle grammar v0.1
8
- projection: project
9
- ---
10
-
11
- # Mantle Theme
12
-
13
- Theme work is project-owned source editing. Use the actual frontend and its
14
- tokens/recipes; Core does not install a default home page or UI tree.
15
-
16
- For requests to change the Admin console, first read installed
17
- `node_modules/@aotter/mantle/docs/handbook/guides/admin-ui.md` and use the
18
- develop skill. Labels, widgets, list columns, filters and actions may already
19
- be manifest-driven. Visitor CSS does not style the prebuilt Admin SPA, and
20
- `uiSchema` does not accept arbitrary CSS, components or layout keys.
21
-
22
- ## First Read
23
-
24
- 1. `.mantle/handoff.md` and `.mantle/recipes/` if present.
25
- 2. `styles/`, `components/`, `src/web/`, `src/theme*`, and UI-library config
26
- if present.
27
- 3. A vendored UI palette's manifest and license, if present.
28
- 4. The manifest directory selected by project scripts to understand which
29
- content shape drives the public UI.
30
-
31
- ## Ownership
32
-
33
- - Use the actual token contract (for example `styles/globals.css`) when present.
34
- Check its light/dark values before changing components.
35
- - `components/` is the runtime-facing component surface when present.
36
- `src/web/` is project-owned composition; put new sections there.
37
- - `public/site-icon.svg` and `public/site-icon.png` are one site identity.
38
- Keep both listed in the actual entry/config `siteDefaults.icons`: PNG first as
39
- the 64x64 compatibility rendition, then SVG as the editable `any` size source.
40
- The same list drives browser favicons, Admin chrome, and MCP
41
- `serverInfo.icons`; do not edit generated files under `public/_mantle/`.
42
- - If the project includes a vendored UI reference palette, treat it as
43
- offline source material and provenance, not runtime source. Copy only a
44
- needed primitive or block into the project's runtime directories, or
45
- fork/wrap it under `src/web/sections/`; do not import the palette from
46
- Worker or runtime code.
47
-
48
- ## Work
49
-
50
- - Use existing tokens, CSS, components, and installed dependencies first.
51
- - When replacing the site mark, regenerate PNG from the same SVG artwork so
52
- every surface presents the same identity. Check it at the Admin's 28px slot
53
- in both light and dark themes; a single high-contrast rendition is preferred
54
- over theme-specific variants unless the artwork genuinely needs both.
55
- - For a standard hero image, set the section's `image: { src, alt }`; use
56
- `showImage: false` for text-only hero/content blocks. Put non-image media in
57
- a project-owned section.
58
- - Keep accessibility basics: semantic HTML, focus states, contrast, and
59
- keyboard reachability. Against a non-default background, check
60
- `--foreground-muted` and `--primary`, not only `--foreground`; keep normal
61
- text at 4.5:1 or better.
62
- - Do not require registry access for a project that already vendors UI source.
63
- - Add UI dependencies only when existing source cannot cover the requested
64
- change.
65
-
66
- ## Check
67
-
68
- ```bash
69
- pnpm validate
70
- pnpm typecheck
71
- pnpm dev
72
- ```
73
-
74
- If utility classes changed, rebuild `styles/generated.css` with the project's
75
- `build:styles`, `check`, or `dev` script. Remove routes/imports for replaced
76
- assets or styles, then visually verify light/dark contrast and responsive
77
- behavior before calling the work done.
@@ -1,51 +0,0 @@
1
- ---
2
- name: update
3
- description: Review and upgrade Mantle SDK dependencies and project-local skills while preserving application source, provider identities and plugin lockfiles.
4
- metadata:
5
- source: "@aotter/mantle"
6
- sourcePath: docs/skills/update/SKILL.md
7
- applies_to: mantle grammar v0.1
8
- projection: project
9
- ---
10
-
11
- # Mantle Update
12
-
13
- Upgrade SDK dependencies deliberately; never overwrite application-owned code.
14
- The old Starter bundle comparison command `mantle update` is removed. This
15
- skill remains the version-matched upgrade workflow, not a replacement CLI.
16
-
17
- 1. Inspect git status, package.json, lockfile, actual project scripts and
18
- installed versions. Preserve unrelated local changes. Read plugin locks
19
- and legacy `.mantle` metadata if present; they are context, not required.
20
- 2. Select an explicit target release and read that version's GitHub release
21
- notes. Installed docs live under `node_modules/@aotter/mantle/docs/`;
22
- `handbook/releases/index.md` is a stable-release index, so a prerelease
23
- need not appear there. Do not use the old package's docs as the new API contract.
24
- Do not resolve new Starter refs or compare the project to a baseline
25
- template.
26
- 3. Update only selected `@aotter/mantle*` dependencies to the same exact target
27
- version, preserving dependency sections. Use the package manager to update
28
- the lockfile; inspect the dependency diff and required peer changes.
29
- 4. Remove scripts that invoke retired create/bundle-update commands. Keep all
30
- application manifests, handlers, routes, theme, Worker/D1/KV names, origins,
31
- provider bindings, secrets, and legacy metadata. Apply API migration edits
32
- individually; do not copy the reference consumer over a real application.
33
- 5. Use the upgraded package to regenerate machine-owned bindings and project
34
- its skills, then run the application's validation, types and tests:
35
-
36
- ```sh
37
- pnpm exec mantle generate
38
- pnpm exec mantle generate --check
39
- pnpm exec mantle skills
40
- pnpm exec mantle skills --check
41
- pnpm exec mantle validate
42
- ```
43
-
44
- Read the refreshed `mantle-develop` skill and the upgraded package's embedded
45
- docs before continuing application edits.
46
-
47
- Start the local application and test its actual routes, including configured
48
- auth behavior. Review the final source/lockfile/generated diff; unexpected
49
- provider or user-source changes block completion. Provider credentials must
50
- never enter git or logs. Report exact old/new versions, checks, and remaining
51
- migration work. A dependency update does not authorize a production deploy.
@@ -1,66 +0,0 @@
1
- import type { AdminAuth, AdminStaffUser, StaffRole } from '@aotter/mantle/admin';
2
-
3
- export interface Env { DB: D1Database; ASSETS?: Fetcher; PUBLIC_ORIGIN: string; OWNER_EMAIL?: string }
4
- type UserRow = { id: string; email: string; name: string; role: StaffRole | null; created_at: string; signed_in: number };
5
- const project = (row: UserRow): AdminStaffUser => ({ id:row.id,email:row.email,name:row.name,role:row.role,githubLogin:null,emailVerified:!!row.signed_in,createdAt:new Date(row.created_at) });
6
-
7
- // This adapter must only receive requests through Sites' identity-stripping dispatcher.
8
- // Never expose the Worker independently with caller-controlled oai-* headers.
9
- export function readIdentity(request: Request) {
10
- const sub=request.headers.get('oai-authenticated-user-id');
11
- const email=request.headers.get('oai-authenticated-user-email')?.trim().toLowerCase();
12
- if(!sub || !email || sub.length>512 || email.length>320) return null;
13
- let name=email;
14
- if(request.headers.get('oai-authenticated-user-full-name-encoding')==='percent-encoded-utf-8') {
15
- try { name=decodeURIComponent(request.headers.get('oai-authenticated-user-full-name')||'')||email; } catch {}
16
- }
17
- return {id:`chatgpt:${sub}`,email,name};
18
- }
19
-
20
- export function createChatGPTAuth(env: Env): AdminAuth {
21
- const db=env.DB;
22
- const roleFor=async(id:string)=>(await db.prepare('SELECT role FROM sites_users WHERE id = ?').bind(id).first<{role:StaffRole|null}>())?.role??null;
23
- const auth: AdminAuth = {
24
- basePath:'/api/auth', methods:[],
25
- async getSession(request) {
26
- const who=readIdentity(request); if(!who)return null;
27
- let row=await db.prepare('SELECT * FROM sites_users WHERE id=?').bind(who.id).first<UserRow>();
28
- if(!row){
29
- // Claim an invitation before inserting; a stable identity keeps its existing role if its email later changes.
30
- await db.prepare('UPDATE sites_users SET id=?,name=?,signed_in=1 WHERE email=? AND signed_in=0').bind(who.id,who.name,who.email).run();
31
- await db.prepare('INSERT OR IGNORE INTO sites_users (id,email,name,role,signed_in) VALUES (?,?,?,?,1)')
32
- .bind(who.id,who.email,who.name,who.email===env.OWNER_EMAIL?.trim().toLowerCase()?'owner':null).run();
33
- row=await db.prepare('SELECT * FROM sites_users WHERE id=?').bind(who.id).first<UserRow>();
34
- }
35
- if(!row)return null;
36
- return {session:{id:`sites:${who.id}`},user:{id:row.id,email:row.email,name:row.name,role:row.role,roleCurrent:true}};
37
- },
38
- getUserRole:roleFor,
39
- async handler(request) {
40
- const path=new URL(request.url).pathname;
41
- if(path==='/api/auth/get-session' && request.method==='GET') return Response.json(await auth.getSession(request));
42
- if(path==='/api/auth/sign-out' && request.method==='POST') {
43
- if(request.headers.get('origin')!==env.PUBLIC_ORIGIN)return new Response('Forbidden',{status:403});
44
- // The shipped Admin UI navigates here after its POST; the next top-level request signs out at Sites.
45
- return Response.json({success:true},{headers:{'set-cookie':'mantle-sites-signout=1; Path=/admin/sign-in; HttpOnly; SameSite=Strict; Max-Age=60'+(env.PUBLIC_ORIGIN.startsWith('https:')?'; Secure':'')}});
46
- }
47
- return Response.json({error:'unsupported_auth_route'},{status:404});
48
- },
49
- async listUsers(){const r=await db.prepare('SELECT * FROM sites_users WHERE role IS NOT NULL ORDER BY created_at,id').all<UserRow>();return r.results.map(project);},
50
- async listMembers(args){
51
- // ponytail: one bounded page for this integration lab; add cursor pagination before a large member rollout.
52
- const r=await db.prepare('SELECT * FROM sites_users WHERE role IS NULL AND (email LIKE ? OR name LIKE ?) ORDER BY created_at,id LIMIT ?').bind(`%${args.search||''}%`,`%${args.search||''}%`,Math.min(args.limit,100)).all<UserRow>();
53
- return {items:r.results.map(project),previousCursor:null,nextCursor:null};
54
- },
55
- async setUserRole(id,role){if(role!==null&&!['owner','editor','contributor'].includes(role))throw new Error('Invalid role');return !!(await db.prepare('UPDATE sites_users SET role=? WHERE id=?').bind(role,id).run()).meta.changes;},
56
- async inviteUser(email,role){
57
- const normalized=email.trim().toLowerCase();const id=`invite:${crypto.randomUUID()}`;
58
- const r=await db.prepare('INSERT OR IGNORE INTO sites_users (id,email,name,role,signed_in) VALUES (?,?,?,?,0)').bind(id,normalized,normalized,role).run();
59
- if(r.meta.changes)return {kind:'created',id};
60
- const existing=await db.prepare('SELECT id FROM sites_users WHERE email=?').bind(normalized).first<{id:string}>();
61
- if(!existing)throw new Error('Invitation could not be saved');return {kind:'exists',id:existing.id};
62
- },
63
- async revokeInvite(id){return !!(await db.prepare('DELETE FROM sites_users WHERE id=? AND signed_in=0').bind(id).run()).meta.changes;},
64
- };
65
- return auth;
66
- }