@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
@@ -0,0 +1,50 @@
1
+ import { resolveLocalizedText } from "../model/ManifestGrammar.js";
2
+ /**
3
+ * A View or Procedure name → MCP tool name: lowercase, kebab to snake. The one place the rule lives; the graph validator's
4
+ * collision check and the MCP surface both use it.
5
+ */
6
+ export function mcpToolNameSegment(name) {
7
+ return name.toLowerCase().replace(/-/g, "_");
8
+ }
9
+ /**
10
+ * The tools an MCP surface lists (ADR-0032 decision 9): each Procedure bound by an `mcp` Trigger of the surface and each View of it,
11
+ * never a Schema. `createMcpSurface` registers exactly these, and Admin's `/webmcp` publishes them, so the two cannot disagree.
12
+ */
13
+ export function mcpTools(plan, surface, locale = "en") {
14
+ const text = (t) => resolveLocalizedText(t, locale, "en") ?? undefined;
15
+ const tools = new Map();
16
+ const add = (tool) => {
17
+ const prior = tools.get(tool.name);
18
+ if (prior && (prior.kind !== tool.kind || prior.source !== tool.source))
19
+ throw new TypeError(`MCP tool '${tool.name}' comes from both '${prior.source}' and '${tool.source}'.`);
20
+ tools.set(tool.name, tool);
21
+ };
22
+ for (const t of Object.values(plan.triggers)) {
23
+ if (t.source.kind !== "mcp" || t.source.surface !== surface)
24
+ continue;
25
+ const p = plan.procedures[t.procedure];
26
+ const title = text(p.title);
27
+ add({
28
+ name: mcpToolNameSegment(t.procedure), kind: "procedure", source: t.procedure, ...(title ? { title } : {}),
29
+ description: text(p.description) ?? title ?? t.procedure, inputSchema: p.input,
30
+ // structuredContent must be an object
31
+ ...(p.output.type === "object" ? { outputSchema: p.output } : {}),
32
+ ...(p.mcp ? { annotations: p.mcp } : {}), requires: p.requires,
33
+ });
34
+ }
35
+ for (const [name, v] of Object.entries(plan.views)) {
36
+ if (v.surface !== surface)
37
+ continue;
38
+ const props = (v.input?.properties ?? {});
39
+ if ("limit" in props || "cursor" in props)
40
+ throw new TypeError(`View '${name}' declares an input named limit or cursor; the MCP tool reserves both for paging.`);
41
+ const title = text(v.title);
42
+ add({
43
+ name: mcpToolNameSegment(name), kind: "view", source: name, ...(title ? { title } : {}), description: text(v.description) ?? title ?? name,
44
+ inputSchema: { type: "object", properties: { ...props, limit: { type: "integer", minimum: 1, maximum: 500 }, cursor: { type: "string" } }, ...(v.input?.required ? { required: v.input.required } : {}) },
45
+ annotations: { readOnlyHint: true }, requires: v.requires,
46
+ });
47
+ }
48
+ return [...tools.values()];
49
+ }
50
+ //# sourceMappingURL=McpToolNaming.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"McpToolNaming.js","sourceRoot":"","sources":["../../../../src/spec/domain/service/McpToolNaming.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { RuntimePlan } from "../model/RuntimePlan.js";
2
+ /** SHA-256 (hex) of the plan without its own fingerprint: it crosses a trust boundary, so it is cryptographic (ADR-0032 decision 10). */
3
+ export declare function planFingerprint(plan: Omit<RuntimePlan, "fingerprint">): Promise<string>;
4
+ //# sourceMappingURL=PlanFingerprint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlanFingerprint.d.ts","sourceRoot":"","sources":["../../../../src/spec/domain/service/PlanFingerprint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAU3D,yIAAyI;AACzI,wBAAsB,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAG7F"}
@@ -0,0 +1,14 @@
1
+ /** JSON with sorted keys, so equal plans serialize to equal text whatever built them. */
2
+ function canonical(v) {
3
+ if (Array.isArray(v))
4
+ return `[${v.map(canonical).join(",")}]`;
5
+ if (v && typeof v === "object")
6
+ return `{${Object.keys(v).sort().filter((k) => v[k] !== undefined).map((k) => `${JSON.stringify(k)}:${canonical(v[k])}`).join(",")}}`;
7
+ return JSON.stringify(v) ?? "null";
8
+ }
9
+ /** SHA-256 (hex) of the plan without its own fingerprint: it crosses a trust boundary, so it is cryptographic (ADR-0032 decision 10). */
10
+ export async function planFingerprint(plan) {
11
+ const digest = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(canonical(plan)));
12
+ return [...new Uint8Array(digest)].map((b) => b.toString(16).padStart(2, "0")).join("");
13
+ }
14
+ //# sourceMappingURL=PlanFingerprint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlanFingerprint.js","sourceRoot":"","sources":["../../../../src/spec/domain/service/PlanFingerprint.ts"],"names":[],"mappings":"AAEA,yFAAyF;AACzF,SAAS,SAAS,CAAC,CAAU;IAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAC/D,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAC5B,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAA6B,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAE,CAA6B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAClM,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;AACrC,CAAC;AAED,yIAAyI;AACzI,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAsC;IAC1E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChG,OAAO,CAAC,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1F,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type ProcedureManifest, type ViewManifest } from "../model/ManifestGrammar.js";
2
+ export declare function validateViewSpec(m: ViewManifest, idx: number): ViewManifest;
3
+ export declare function validateProcedureSpec(m: ProcedureManifest, idx: number): ProcedureManifest;
4
+ //# sourceMappingURL=ProcedureViewSpecChecks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProcedureViewSpecChecks.d.ts","sourceRoot":"","sources":["../../../../src/spec/domain/service/ProcedureViewSpecChecks.ts"],"names":[],"mappings":"AAEA,OAAO,EAA4I,KAAK,iBAAiB,EAAE,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAKlO,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,YAAY,CAmC3E;AAuDD,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM,GAAG,iBAAiB,CA6D1F"}
@@ -0,0 +1,211 @@
1
+ import { PROCEDURE_MCP_ANNOTATION_KEYS, PROCEDURE_TARGET_KEYS, STAFF_ROLES, VIEW_INPUT_RESERVED, isStaffRole } from "../model/ManifestGrammar.js";
2
+ import { ManifestParseError, V01_VIEW_SURFACES, rejectUnknownKeys, validateLocalizedText } from "./ManifestFieldChecks.js";
3
+ import { checkFormUiSchema, checkViewAdminUi } from "./SchemaAdminUiChecker.js";
4
+ import { validateJsonSchema } from "./SchemaSpecChecks.js";
5
+ export function validateViewSpec(m, idx) {
6
+ const s = m.spec;
7
+ rejectUnknownKeys(s, ["title", "description", "uiSchema", "sql", "surface", "cache", "requires", "input"], idx, "/spec");
8
+ validateLocalizedText(s["title"], idx, "/spec/title", "View.spec.title", false);
9
+ validateLocalizedText(s["description"], idx, "/spec/description", "View.spec.description", false);
10
+ // Only the SQL compiler (compilePlan) reads the statement; here it just has to be present.
11
+ if (typeof s["sql"] !== "string" || s["sql"].trim().length === 0) {
12
+ throw new ManifestParseError("View.spec.sql is required (one SELECT statement)", idx, "/spec/sql");
13
+ }
14
+ const surface = s["surface"];
15
+ if (typeof surface !== "string" || !V01_VIEW_SURFACES.has(surface)) {
16
+ throw new ManifestParseError(`View.spec.surface is required and must be one of ${[...V01_VIEW_SURFACES].join(", ")}; got ${JSON.stringify(surface)}`, idx, "/spec/surface");
17
+ }
18
+ if ("cache" in s)
19
+ validateViewCache(s["cache"], m, idx);
20
+ if ("requires" in s && s["requires"] != null) {
21
+ validateRequires(s["requires"], idx, "View");
22
+ }
23
+ const adminUiProblem = checkViewAdminUi(m).problems[0];
24
+ if (adminUiProblem) {
25
+ throw new ManifestParseError(adminUiProblem.message, idx, adminUiProblem.pointer, "VIEW_UI_INVALID");
26
+ }
27
+ if ("input" in s && s["input"] != null) {
28
+ validateViewInput(s["input"], idx);
29
+ validateJsonSchema(s["input"], idx, "View", m.metadata.name, "/spec/input");
30
+ }
31
+ return m;
32
+ }
33
+ function validateViewCache(raw, view, idx) {
34
+ if (typeof raw !== "object" || raw === null || Array.isArray(raw)) {
35
+ throw new ManifestParseError("View.spec.cache must be an object", idx, "/spec/cache", "VIEW_CACHE_INVALID");
36
+ }
37
+ const cache = raw;
38
+ rejectUnknownKeys(cache, ["sharedMaxAge"], idx, "/spec/cache");
39
+ const maxAge = cache["sharedMaxAge"];
40
+ if (!Number.isInteger(maxAge) || maxAge < 1 || maxAge > 86_400) {
41
+ throw new ManifestParseError("View.spec.cache.sharedMaxAge must be an integer from 1 to 86400", idx, "/spec/cache/sharedMaxAge", "VIEW_CACHE_INVALID");
42
+ }
43
+ // A shared cache must not hold a caller- or time-dependent answer. A match inside a
44
+ // literal over-rejects, which is the safe direction.
45
+ if (view.spec.surface !== "public" || view.spec.requires || /\bauth\s*\.|\bnow\s*\(/i.test(view.spec.sql)) {
46
+ throw new ManifestParseError("View.spec.cache requires an unguarded public View whose sql reads neither auth.* nor now()", idx, "/spec/cache", "VIEW_CACHE_INVALID");
47
+ }
48
+ }
49
+ function validateViewInput(raw, idx) {
50
+ const invalid = (message, pointer, code = "VIEW_INPUT_INVALID_SHAPE") => {
51
+ throw new ManifestParseError(message, idx, pointer, code);
52
+ };
53
+ if (typeof raw !== "object" || raw === null || Array.isArray(raw)) {
54
+ invalid("View.spec.input must be a JSON Schema object", "/spec/input");
55
+ }
56
+ const p = raw;
57
+ if (p["type"] !== "object") {
58
+ invalid(`View.spec.input.type must be "object"; got ${JSON.stringify(p["type"])}`, "/spec/input/type");
59
+ }
60
+ const props = p["properties"];
61
+ if (typeof props !== "object" || props === null || Array.isArray(props)) {
62
+ invalid("View.spec.input.properties is required (declare each accepted parameter)", "/spec/input/properties");
63
+ }
64
+ for (const reserved of VIEW_INPUT_RESERVED) {
65
+ if (Object.hasOwn(props, reserved)) {
66
+ invalid(`View.spec.input.properties.${reserved} is reserved (the runtime owns ${VIEW_INPUT_RESERVED.join(", ")} for pagination); rename it.`, `/spec/input/properties/${reserved}`, "VIEW_INPUT_RESERVED_NAME");
67
+ }
68
+ }
69
+ }
70
+ export function validateProcedureSpec(m, idx) {
71
+ const s = m.spec;
72
+ rejectUnknownKeys(s, ["title", "description", "requires", "input", "uiSchema", "output", "handler", "mcp", "target"], idx, "/spec");
73
+ if (s["mcp"] !== undefined) {
74
+ const mcp = s["mcp"];
75
+ if (typeof mcp !== "object" || mcp === null || Array.isArray(mcp)) {
76
+ throw new ManifestParseError("Procedure.spec.mcp must be an object of boolean tool annotations", idx, "/spec/mcp");
77
+ }
78
+ rejectUnknownKeys(mcp, [...PROCEDURE_MCP_ANNOTATION_KEYS], idx, "/spec/mcp");
79
+ for (const key of PROCEDURE_MCP_ANNOTATION_KEYS) {
80
+ const value = mcp[key];
81
+ if (value !== undefined && typeof value !== "boolean") {
82
+ throw new ManifestParseError(`Procedure.spec.mcp.${key} must be a boolean`, idx, `/spec/mcp/${key}`);
83
+ }
84
+ }
85
+ const hints = mcp;
86
+ if (hints.readOnlyHint === true && hints.destructiveHint === true) {
87
+ throw new ManifestParseError("Procedure.spec.mcp cannot be both readOnlyHint: true and destructiveHint: true", idx, "/spec/mcp");
88
+ }
89
+ }
90
+ if (s["target"] !== undefined)
91
+ validateProcedureTargetShape(s["target"], idx);
92
+ validateLocalizedText(s["title"], idx, "/spec/title", "Procedure.spec.title", false);
93
+ validateLocalizedText(s["description"], idx, "/spec/description", "Procedure.spec.description", false);
94
+ if (typeof s["input"] !== "object" || s["input"] === null) {
95
+ throw new ManifestParseError("Procedure.spec.input is required (JSON Schema)", idx, "/spec/input");
96
+ }
97
+ validateJsonSchema(s["input"], idx, "Procedure", m.metadata.name, "/spec/input");
98
+ const uiProblem = checkFormUiSchema(s["input"], s["uiSchema"], "Procedure")[0];
99
+ if (uiProblem) {
100
+ throw new ManifestParseError(uiProblem.message, idx, uiProblem.pointer, "SCHEMA_UI_INVALID");
101
+ }
102
+ if (typeof s["output"] !== "object" || s["output"] === null) {
103
+ throw new ManifestParseError("Procedure.spec.output is required (JSON Schema)", idx, "/spec/output");
104
+ }
105
+ validateJsonSchema(s["output"], idx, "Procedure", m.metadata.name, "/spec/output");
106
+ const handler = s["handler"];
107
+ if (!handler) {
108
+ throw new ManifestParseError("Procedure.spec.handler is required", idx, "/spec/handler");
109
+ }
110
+ validateHandlerBinding(handler, idx);
111
+ if ("requires" in s && s["requires"] != null) {
112
+ validateRequires(s["requires"], idx, "Procedure");
113
+ }
114
+ return m;
115
+ }
116
+ /** Shape only; graph validation checks the Schema and input properties. */
117
+ function validateProcedureTargetShape(target, idx) {
118
+ if (typeof target !== "object" || target === null || Array.isArray(target)) {
119
+ throw new ManifestParseError("Procedure.spec.target must be an object { schema, id, version? }", idx, "/spec/target", "PROCEDURE_TARGET_INVALID");
120
+ }
121
+ rejectUnknownKeys(target, [...PROCEDURE_TARGET_KEYS], idx, "/spec/target");
122
+ for (const key of PROCEDURE_TARGET_KEYS) {
123
+ const value = target[key];
124
+ if (value === undefined && key === "version")
125
+ continue;
126
+ if (typeof value !== "string" || value.length === 0) {
127
+ throw new ManifestParseError(`Procedure.spec.target.${key} must be a non-empty string`, idx, `/spec/target/${key}`, "PROCEDURE_TARGET_INVALID");
128
+ }
129
+ }
130
+ }
131
+ function validateHandlerBinding(h, idx) {
132
+ const keys = Object.keys(h);
133
+ const key = keys.length === 1 ? keys[0] : undefined;
134
+ if (key !== "ref" && key !== "sql") {
135
+ throw new ManifestParseError(`Procedure.spec.handler must have exactly one key, \`ref\` or \`sql\`; got ${JSON.stringify(keys)}`, idx, "/spec/handler");
136
+ }
137
+ // For `sql` only the SQL compiler (compilePlan) reads the statements; here it just has to be present.
138
+ if (typeof h[key] !== "string" || h[key].trim().length === 0) {
139
+ throw new ManifestParseError(key === "ref"
140
+ ? "Procedure.spec.handler.ref is required (non-empty registration key)"
141
+ : "Procedure.spec.handler.sql is required (one or more write statements)", idx, `/spec/handler/${key}`);
142
+ }
143
+ }
144
+ function validateRequires(req, idx, atom) {
145
+ if (typeof req !== "object" || req === null) {
146
+ throw new ManifestParseError(`${atom}.spec.requires must be an object`, idx);
147
+ }
148
+ const r = req;
149
+ rejectUnknownKeys(r, ["auth", "guard"], idx, "/spec/requires");
150
+ if ("guard" in r) {
151
+ const guard = r["guard"];
152
+ if (typeof guard !== "object" || guard === null || Array.isArray(guard)) {
153
+ throw new ManifestParseError(`${atom}.spec.requires.guard must be an object`, idx);
154
+ }
155
+ const g = guard;
156
+ if (typeof g["procedure"] !== "string" || g["procedure"].length === 0) {
157
+ throw new ManifestParseError(`${atom}.spec.requires.guard.procedure must be a non-empty Procedure name`, idx);
158
+ }
159
+ const extra = Object.keys(g).find((key) => key !== "procedure");
160
+ if (extra !== undefined) {
161
+ throw new ManifestParseError(`${atom}.spec.requires.guard.${extra} is not supported; guard accepts only \`procedure\``, idx);
162
+ }
163
+ }
164
+ if (!("auth" in r) || r["auth"] == null)
165
+ return;
166
+ const auth = r["auth"];
167
+ if (typeof auth !== "object" || auth === null) {
168
+ throw new ManifestParseError(`${atom}.spec.requires.auth must be an object`, idx);
169
+ }
170
+ const a = auth;
171
+ rejectUnknownKeys(a, ["all"], idx, "/spec/requires/auth");
172
+ if (!("all" in a)) {
173
+ throw new ManifestParseError(`${atom}.spec.requires.auth must declare \`all\` (v0.1)`, idx);
174
+ }
175
+ const all = a["all"];
176
+ if (!Array.isArray(all) || all.length === 0) {
177
+ throw new ManifestParseError(`${atom}.spec.requires.auth.all must be a non-empty array`, idx);
178
+ }
179
+ for (let i = 0; i < all.length; i++) {
180
+ validateAuthPredicate(all[i], idx, `${atom}.spec.requires.auth.all[${i}]`, `/spec/requires/auth/all/${i}`);
181
+ }
182
+ }
183
+ function validateAuthPredicate(p, idx, path, pointer) {
184
+ if (p === "ctx.user" || p === "ctx.auth")
185
+ return;
186
+ if (typeof p === "object" && p !== null && !Array.isArray(p)) {
187
+ const o = p;
188
+ if ("ctx.auth.scope" in o) {
189
+ rejectUnknownKeys(o, ["ctx.auth.scope"], idx, pointer);
190
+ const scope = o["ctx.auth.scope"];
191
+ if (typeof scope !== "string" || scope.length === 0) {
192
+ throw new ManifestParseError(`${path}: 'ctx.auth.scope' value must be a non-empty string`, idx);
193
+ }
194
+ return;
195
+ }
196
+ if ("ctx.staff" in o) {
197
+ rejectUnknownKeys(o, ["ctx.staff"], idx, pointer);
198
+ const roles = o["ctx.staff"];
199
+ if (!Array.isArray(roles) || roles.length === 0 || roles.some((r) => typeof r !== "string")) {
200
+ throw new ManifestParseError(`${path}: 'ctx.staff' value must be a non-empty array of role-name strings`, idx);
201
+ }
202
+ const badRole = roles.find((r) => !isStaffRole(r));
203
+ if (badRole !== undefined) {
204
+ throw new ManifestParseError(`${path}: 'ctx.staff' role '${badRole}' is not in STAFF_ROLES (${[...STAFF_ROLES].join(", ")})`, idx, undefined, "AUTH_PREDICATE_NOT_IN_ENUM");
205
+ }
206
+ return;
207
+ }
208
+ }
209
+ throw new ManifestParseError(`${path} must be 'ctx.user', 'ctx.auth', { 'ctx.auth.scope': <scope> }, or { 'ctx.staff': [<role>, ...] }; got ${JSON.stringify(p)}`, idx);
210
+ }
211
+ //# sourceMappingURL=ProcedureViewSpecChecks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProcedureViewSpecChecks.js","sourceRoot":"","sources":["../../../../src/spec/domain/service/ProcedureViewSpecChecks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import type { JsonSchema, SchemaManifest } from "../model/ManifestGrammar.js";
2
+ export { checkViewAdminUi } from "./ViewAdminUiChecker.js";
3
+ export type { ViewListPresentation } from "./ViewAdminUiChecker.js";
4
+ export interface SchemaListFilter {
5
+ readonly field: string;
6
+ readonly values: readonly string[];
7
+ }
8
+ export interface SchemaListPresentation {
9
+ readonly primaryField: string | null;
10
+ readonly columns: readonly string[];
11
+ }
12
+ /** Normalized Admin nav descriptor. Absent/`null` means fold-only. */
13
+ export interface SchemaNavPresentation {
14
+ readonly standalone: true;
15
+ readonly parentField: string;
16
+ readonly parentCollection: string;
17
+ }
18
+ export interface SchemaAdminUiProblem {
19
+ readonly pointer: string;
20
+ readonly value?: unknown;
21
+ readonly expected: string;
22
+ readonly message: string;
23
+ }
24
+ export declare function schemaSortableFields(schema: SchemaManifest): readonly string[];
25
+ export declare function checkSchemaAdminUi(schema: SchemaManifest): {
26
+ readonly filter: SchemaListFilter | null;
27
+ readonly list: SchemaListPresentation;
28
+ readonly nav: SchemaNavPresentation | null;
29
+ readonly problems: readonly SchemaAdminUiProblem[];
30
+ };
31
+ export declare function checkFormUiSchema(schema: JsonSchema, uiSchema: unknown, owner: "Schema" | "Procedure"): readonly SchemaAdminUiProblem[];
32
+ /** Required top-level properties that carry `x-mantle-ref`. Order follows
33
+ * `properties` declaration — callers must not treat that order as a
34
+ * standalone-filter default when more than one field is eligible. */
35
+ export declare function requiredMantleRefFields(schema: SchemaManifest): readonly {
36
+ readonly field: string;
37
+ readonly collection: string;
38
+ }[];
39
+ export declare function isRequiredMantleRefField(schema: SchemaManifest, field: string): boolean;
40
+ /** Graph-time: standalone parent collection must exist and not be a translates child. */
41
+ export declare function checkSchemaNavTargets(schema: SchemaManifest, schemasByName: ReadonlyMap<string, SchemaManifest>): SchemaAdminUiProblem | null;
42
+ //# sourceMappingURL=SchemaAdminUiChecker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaAdminUiChecker.d.ts","sourceRoot":"","sources":["../../../../src/spec/domain/service/SchemaAdminUiChecker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAI9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,sEAAsE;AACtE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAQD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,MAAM,EAAE,CAO9E;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,cAAc,GAAG;IAC1D,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,QAAQ,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,SAAS,oBAAoB,EAAE,CAAC;CACpD,CAqHA;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,QAAQ,GAAG,WAAW,GAC5B,SAAS,oBAAoB,EAAE,CAsFjC;AAmMD;;sEAEsE;AACtE,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,cAAc,GACrB,SAAS;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAAE,CAYpE;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAEvF;AAED,yFAAyF;AACzF,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,cAAc,EACtB,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,GACjD,oBAAoB,GAAG,IAAI,CAoB7B"}