@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,101 @@
1
+ import { validateDiagnostic, } from "../kernel/diagnostic.js";
2
+ import { checkSiteLocales } from "../domain/service/CrossSchemaChecker.js";
3
+ import { linkManifestSet, } from "../domain/service/ManifestLinker.js";
4
+ /** Link one parser-owned value and apply optional authoring checks. */
5
+ export class ValidateManifestsUseCase {
6
+ execute(request) {
7
+ const linked = linkManifestSet(request.parsed);
8
+ const diagnostics = [...linked.diagnostics];
9
+ if (linked.ok && request.siteLocales !== undefined) {
10
+ diagnostics.push(...checkSiteLocales({
11
+ schemas: linked.value.schemas.map((schema) => schema.manifest),
12
+ phase: "validate",
13
+ siteLocales: request.siteLocales,
14
+ }));
15
+ }
16
+ if (linked.ok && request.mcpInput !== false) {
17
+ diagnostics.push(...checkMcpToolInputShapes(linked.value, request.mcpInput ?? {}));
18
+ }
19
+ const errorCount = diagnostics.filter((diagnostic) => diagnostic.severity === "error").length;
20
+ return {
21
+ diagnostics,
22
+ errorCount,
23
+ warningCount: diagnostics.length - errorCount,
24
+ ...(linked.ok ? { linked: linked.value } : {}),
25
+ };
26
+ }
27
+ static run(request) {
28
+ return new ValidateManifestsUseCase().execute(request);
29
+ }
30
+ }
31
+ /**
32
+ * A Procedure's HTTP input schema is reused verbatim as its MCP tool schema,
33
+ * so shapes that are fine for a typed client can strand a cold agent (#971).
34
+ * Advisory only, and only for Procedures reachable from an MCP Trigger.
35
+ */
36
+ function checkMcpToolInputShapes(linked, options) {
37
+ const out = [];
38
+ const unionAmbiguity = options.unionAmbiguity ?? true;
39
+ const maxArrayItems = options.maxArrayItems === undefined ? 100 : options.maxArrayItems;
40
+ const exposed = new Set(linked.triggers
41
+ .filter((trigger) => trigger.manifest.spec.source.kind === "mcp")
42
+ .map((trigger) => trigger.manifest.spec.target.procedure));
43
+ for (const procedure of linked.procedures) {
44
+ const name = procedure.manifest.metadata.name;
45
+ if (!exposed.has(name))
46
+ continue;
47
+ const input = procedure.manifest.spec.input;
48
+ const diagnostic = (code, path, value, expected, message) => validateDiagnostic({
49
+ code,
50
+ severity: "warning",
51
+ path,
52
+ source: { ...procedure.source, path },
53
+ value,
54
+ expected,
55
+ message,
56
+ });
57
+ // The v0.1 grammar accepts `oneOf` only (`anyOf` is rejected at parse), so
58
+ // that is the one union keyword to inspect.
59
+ if (unionAmbiguity && Array.isArray(input.oneOf) && input.oneOf.length > 0) {
60
+ const advertised = new Set(input.required ?? []);
61
+ const hidden = new Set();
62
+ for (const branch of input.oneOf) {
63
+ for (const field of branch.required ?? [])
64
+ if (!advertised.has(field))
65
+ hidden.add(field);
66
+ }
67
+ const path = "/spec/input/oneOf";
68
+ const advertisedText = `[${[...advertised].sort().join(", ")}]`;
69
+ out.push(diagnostic("MCP_TOOL_INPUT_UNION_AMBIGUOUS", path, [...hidden].sort(), "one MCP tool per branch, or a top-level required set that is true for every branch", hidden.size
70
+ ? `Procedure '${name}' is an MCP tool whose input is a top-level oneOf; its advertised required set ` +
71
+ `${advertisedText} hides [${[...hidden].sort().join(", ")}], which some branch needs, so a caller satisfying ` +
72
+ `the schema can still be rejected. MCP clients render oneOf poorly; prefer separate tools (e.g. create/update).`
73
+ : `Procedure '${name}' is an MCP tool whose input is a top-level oneOf. MCP clients render oneOf poorly and ` +
74
+ `cannot tell an agent which branch it is filling; prefer separate tools (e.g. create/update).`));
75
+ }
76
+ if (maxArrayItems !== null) {
77
+ for (const [field, property] of Object.entries(input.properties ?? {})) {
78
+ const schema = property;
79
+ const path = `/spec/input/properties/${field}`;
80
+ const types = new Set(Array.isArray(schema.type) ? schema.type : schema.type ? [schema.type] : []);
81
+ if (types.has("array")) {
82
+ const bound = typeof schema.maxItems === "number" ? schema.maxItems : undefined;
83
+ if (bound === undefined || bound > maxArrayItems) {
84
+ out.push(diagnostic("MCP_TOOL_INPUT_UNBOUNDED", path, bound ?? null, `maxItems <= ${maxArrayItems} on an MCP tool array input`, `Procedure '${name}' is an MCP tool with array input '${field}' ${bound === undefined ? "without maxItems" : `allowing ${bound} items`}; ` +
85
+ `an agent must serialise the whole array into one tools/call.`));
86
+ }
87
+ }
88
+ else if (types.has("object")
89
+ // Free-form means no declared shape at all: a typed map
90
+ // (`additionalProperties: { type: string }`) declares its values.
91
+ && (schema.additionalProperties === undefined || schema.additionalProperties === true)
92
+ && Object.keys(schema.properties ?? {}).length === 0) {
93
+ out.push(diagnostic("MCP_TOOL_INPUT_UNBOUNDED", path, null, "declared properties, or a narrower tool that does not take a free-form document", `Procedure '${name}' is an MCP tool with free-form object input '${field}' (no declared properties); ` +
94
+ `its size is unbounded and an agent gets no shape to fill.`));
95
+ }
96
+ }
97
+ }
98
+ }
99
+ return out;
100
+ }
101
+ //# sourceMappingURL=ValidateManifestsUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ValidateManifestsUseCase.js","sourceRoot":"","sources":["../../../src/spec/usecase/ValidateManifestsUseCase.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { ParsedManifestSet } from "../../domain/service/ManifestParser.js";
2
+ /**
3
+ * Input to the manifest validation use case (Loop 1 of the SDK
4
+ * authoring contract — ADR-0007). Loose primitives stay out per the
5
+ * clean-arch DTO rule; everything the use case needs is named here.
6
+ */
7
+ export interface ValidateManifestsRequest {
8
+ readonly parsed: ParsedManifestSet;
9
+ /** Optional site config locales for the locale-vs-Schema consistency
10
+ * check (ADR-0010). Validate-from-CLI flows leave this absent
11
+ * (CLI can't reach the runtime DB); boot always passes it. */
12
+ readonly siteLocales?: ReadonlyArray<string>;
13
+ /** Advisory checks on MCP-surfaced Procedure inputs (#971). Core ships
14
+ * the defaults; a downstream decides its own thresholds. `false`
15
+ * disables the whole group. */
16
+ readonly mcpInput?: false | McpInputCheckOptions;
17
+ }
18
+ export interface McpInputCheckOptions {
19
+ /** Warn on a top-level `oneOf` input; the message names any branch-only
20
+ * required fields hidden behind the advertised `required` (default `true`). */
21
+ readonly unionAmbiguity?: boolean;
22
+ /** Warn on array inputs whose `maxItems` exceeds this bound or is
23
+ * undeclared, and on free-form object inputs (default `100`;
24
+ * `null` disables the size check). */
25
+ readonly maxArrayItems?: number | null;
26
+ }
27
+ //# sourceMappingURL=ValidateManifestsRequest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ValidateManifestsRequest.d.ts","sourceRoot":"","sources":["../../../../src/spec/usecase/dto/ValidateManifestsRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAEhF;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC;;mEAE+D;IAC/D,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7C;;oCAEgC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,GAAG,oBAAoB,CAAC;CAClD;AAED,MAAM,WAAW,oBAAoB;IACnC;oFACgF;IAChF,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC;;2CAEuC;IACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ValidateManifestsRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ValidateManifestsRequest.js","sourceRoot":"","sources":["../../../../src/spec/usecase/dto/ValidateManifestsRequest.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import type { Diagnostic } from "../../kernel/diagnostic.js";
2
+ import type { LinkedManifestSet } from "../../domain/service/ManifestLinker.js";
3
+ /**
4
+ * Output of the manifest validation use case. `errorCount` and
5
+ * `warningCount` are pre-computed for adapters that need exit-code
6
+ * decisions or summary lines; `diagnostics` is the full list.
7
+ */
8
+ export interface ValidateManifestsResponse {
9
+ readonly diagnostics: ReadonlyArray<Diagnostic>;
10
+ readonly errorCount: number;
11
+ readonly warningCount: number;
12
+ readonly linked?: LinkedManifestSet;
13
+ }
14
+ //# sourceMappingURL=ValidateManifestsResponse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ValidateManifestsResponse.d.ts","sourceRoot":"","sources":["../../../../src/spec/usecase/dto/ValidateManifestsResponse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAEhF;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAChD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC;CACrC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ValidateManifestsResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ValidateManifestsResponse.js","sourceRoot":"","sources":["../../../../src/spec/usecase/dto/ValidateManifestsResponse.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export * from "./ValidateManifestsRequest.js";
2
+ export * from "./ValidateManifestsResponse.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/spec/usecase/dto/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./ValidateManifestsRequest.js";
2
+ export * from "./ValidateManifestsResponse.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/spec/usecase/dto/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * `usecase/` — application services orchestrating domain logic. Each
3
+ * use case accepts a request DTO, returns a response DTO. No
4
+ * infrastructure dependencies (no I/O, no DB, no FS) — those live in
5
+ * `infrastructure/`.
6
+ */
7
+ export * from "./dto/index.js";
8
+ export * from "./ValidateManifestsUseCase.js";
9
+ export * from "./EmitTypes.js";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/spec/usecase/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * `usecase/` — application services orchestrating domain logic. Each
3
+ * use case accepts a request DTO, returns a response DTO. No
4
+ * infrastructure dependencies (no I/O, no DB, no FS) — those live in
5
+ * `infrastructure/`.
6
+ */
7
+ export * from "./dto/index.js";
8
+ export * from "./ValidateManifestsUseCase.js";
9
+ export * from "./EmitTypes.js";
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/spec/usecase/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Report } from '../report.js';
2
+ import type { Engine } from '../harness.js';
3
+ export declare function run(r: Report, engine: Engine): Promise<void>;
4
+ //# sourceMappingURL=before-hook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"before-hook.d.ts","sourceRoot":"","sources":["../../../src/testing/cases/before-hook.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAM5C,wBAAsB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAyDlD"}
@@ -0,0 +1,71 @@
1
+ import { boot, caller, program, site } from '../harness.js';
2
+ import { isConflict, opIndexOf, isRefusal, runProcedure } from '../harness.js';
3
+ export async function run(r, engine) {
4
+ r.section('Case 4: before hooks');
5
+ const b = await boot(engine);
6
+ const seen = [];
7
+ let concurrent;
8
+ let veto = false;
9
+ const hooks = { before: { items: { update: async ({ row }) => {
10
+ seen.push(row);
11
+ if (veto)
12
+ throw new Error('hook says no');
13
+ await concurrent?.();
14
+ } } } };
15
+ const s = site(b, hooks);
16
+ const set = await program('procedure', 'UPDATE items SET stock = input.s WHERE id = input.id RETURNING id, stock, version', { id: 'text', s: 'int8' });
17
+ const fails = async (input) => { try {
18
+ await runProcedure(s, set, caller(input));
19
+ return undefined;
20
+ }
21
+ catch (e) {
22
+ return e;
23
+ } };
24
+ const item = async (id) => (await b.d1.all('SELECT stock, version FROM items WHERE id = ?1', [id]))[0];
25
+ // the hook reads the one visible row, then the statement carries the version the hook saw: `version = <bind>`, bound to it
26
+ const versionBound = ({ ir, binds }) => {
27
+ const n = JSON.stringify(ir.UpdateStmt.whereClause).match(/"sval":"version"\}\}\]\}\},"rexpr":\{"ParamRef":\{"number":(\d+)\}/)?.[1];
28
+ return n === undefined ? undefined : binds[Number(n) - 1];
29
+ };
30
+ const ok = await runProcedure(s, set, caller({ id: 'a', s: 9 }));
31
+ r.check('no concurrent write: commits and bumps version; the hook saw the one row before the change; the statement carries the version it saw', JSON.stringify(ok.rows) === '[[{"id":"a","stock":9,"version":2}]]' && seen.length === 1 && seen[0].id === 'a' && seen[0].stock === 5 && seen[0].version === 1 && versionBound(ok.batch[0]) === 1, seen[0]);
32
+ // the row changes between the hook and the commit: CONFLICT, and the concurrent write survives
33
+ concurrent = async () => { await b.d1.exec(["UPDATE items SET stock = 99, version = version + 1 WHERE id = 'b'"]); };
34
+ const e1 = await fails({ id: 'b', s: 1 });
35
+ r.check('row changed between the hook and the commit: CONFLICT op=0, the concurrent write is not overwritten', isConflict(e1) && opIndexOf(e1) === 0 && JSON.stringify(await item('b')) === '{"stock":99,"version":2}', String(e1?.message));
36
+ concurrent = undefined;
37
+ // a hook that throws vetoes the write: fail closed
38
+ veto = true;
39
+ const e2 = await fails({ id: 'd', s: 1 });
40
+ r.check('a throwing hook stops the statement and nothing is written', e2?.message === 'hook says no' && (await item('d')).stock === 7, String(e2?.message));
41
+ veto = false;
42
+ // no visible row (another owner's, expired): CONFLICT without calling the hook
43
+ const calls = seen.length;
44
+ const e3 = await fails({ id: 'X_z1', s: 1 });
45
+ r.check("another owner's row: CONFLICT, and the hook was never called (it cannot probe for the row)", isConflict(e3) && seen.length === calls, String(e3?.message));
46
+ // a set op on a Schema with a before hook is refused at compile time
47
+ let refused;
48
+ try {
49
+ await runProcedure(s, await program('procedure', "UPDATE items SET stock = 0 WHERE cat = 'x'"), caller());
50
+ }
51
+ catch (e) {
52
+ refused = e;
53
+ }
54
+ r.check('a set op on items (before update hook) is refused', isRefusal(refused, 'SQL_SHAPE') && /before hooks take row ops only/.test(refused.message), refused?.message);
55
+ // a Schema without a hook keeps its set ops; a before-update hook does not run for insert
56
+ const other = await runProcedure(s, await program('procedure', "UPDATE requisitions SET state = 'x' WHERE state = 'pending' RETURNING id"), caller());
57
+ const ins = await runProcedure(s, await program('procedure', "INSERT INTO items (name, cat, stock) VALUES ('n', 'x', 1) RETURNING name"), caller());
58
+ r.check('set ops stay legal where no before hook exists; the update hook does not run for insert', other.rows[0].length === 2 && seen.length === calls && ins.rows.length === 1);
59
+ // a before create hook reads the VALUES in a read of its own, so they may not depend on data that can change before the commit
60
+ const own = { ...s, hooks: { before: { orders: { insert: () => undefined } } } };
61
+ let subq;
62
+ try {
63
+ await runProcedure(own, await program('procedure', "INSERT INTO orders (item_id, qty) VALUES ('a', (SELECT stock FROM items WHERE id = 'a'))"), caller());
64
+ }
65
+ catch (e) {
66
+ subq = e;
67
+ }
68
+ const plain = await runProcedure(own, await program('procedure', "INSERT INTO orders (item_id, qty) VALUES ('a', 1) RETURNING qty"), caller());
69
+ r.check('an insert with a before create hook may not read data in its VALUES, and constant values are fine', isRefusal(subq, 'SQL_SHAPE') && plain.rows[0].length === 1, subq?.message);
70
+ }
71
+ //# sourceMappingURL=before-hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"before-hook.js","sourceRoot":"","sources":["../../../src/testing/cases/before-hook.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export type Item = {
2
+ id: string;
3
+ kind: 'view' | 'procedure';
4
+ sql: string;
5
+ inputs?: Record<string, string>;
6
+ input?: Record<string, unknown>;
7
+ /** rows per statement */
8
+ expect: unknown[][];
9
+ };
10
+ export declare const corpus: Item[];
11
+ export declare const typedRows: Readonly<Record<string, unknown[][]>>;
12
+ //# sourceMappingURL=corpus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"corpus.d.ts","sourceRoot":"","sources":["../../../src/testing/cases/corpus.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,IAAI,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,yBAAyB;IACzB,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC;CACrB,CAAC;AAMF,eAAO,MAAM,MAAM,EAAE,IAAI,EA+ExB,CAAC;AAQF,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAQ3D,CAAC"}
@@ -0,0 +1,91 @@
1
+ // @ts-nocheck test code over loosely typed IR and rows
2
+ // The printer corpus (spike task 1). Every node type and enum value in the validate.ts allowlist appears
3
+ // in at least one item; each item runs on local D1 through the whole pipeline, and its rows are checked
4
+ // against the result PostgreSQL semantics give. Data: see src/fixtures.ts (owner o1 sees items a b c d).
5
+ import { NOW } from '../harness.js';
6
+ const us = (y, mo, d, h = 0) => Date.UTC(y, mo - 1, d, h) * 1000;
7
+ const v = (id, sql, expect, inputs, input) => ({ id, kind: 'view', sql, expect: [expect], inputs, input });
8
+ const w = (id, sql, expect, inputs, input) => ({ id, kind: 'procedure', sql, expect, inputs, input });
9
+ const ids = (...x) => x.map((id) => ({ id }));
10
+ export const corpus = [
11
+ // ---- expressions --------------------------------------------------------------------------------------
12
+ v('arith', "SELECT name, stock + 1 AS s, stock * 2 - 1 AS t, stock / 2 AS h, stock % 3 AS m, -stock AS neg, name || '!' AS shout FROM items WHERE id = 'a'", [{ name: 'apple', s: 6, t: 9, h: 2, m: 2, neg: -5, shout: 'apple!' }]),
13
+ // PostgreSQL: `*` binds tighter than `||`, `+` tighter than `||`; SQLite: `||` binds tighter than both
14
+ v('precedence-concat', "SELECT 2 * 3 || 4 AS a, 1 + 2 || 3 AS b, 'x' || 1 + 1 AS c, 10 - 2 - 3 AS d, 10 - (2 - 3) AS e, -(1 + 2) * 3 AS f, (2 + 3) * 4 AS g FROM items WHERE id = 'a'", [{ a: '64', b: '33', c: 'x2', d: 5, e: 11, f: -9, g: 20 }]),
15
+ v('precedence-bool', "SELECT id FROM items WHERE (stock > 4 AND NOT cat = 'y' OR stock < 3) AND NOT (stock = 7) ORDER BY id", ids('a', 'b')),
16
+ v('case', "SELECT id, CASE WHEN stock > 6 THEN 'hi' WHEN stock > 3 THEN 'mid' ELSE 'lo' END AS lvl, CASE cat WHEN 'x' THEN 1 ELSE 0 END AS isx, COALESCE(NULL, stock) AS cs, NULLIF(stock, 5) AS ns FROM items WHERE id IN ('a', 'c') ORDER BY id", [{ id: 'a', lvl: 'mid', isx: 1, cs: 5, ns: null }, { id: 'c', lvl: 'hi', isx: 0, cs: 9, ns: 9 }]),
17
+ v('literals', "SELECT 'it''s a \\ back\\slash' AS s, -7 AS n, 1.5 AS f, true AS t, false AS x, NULL AS z, 1772928000000000 AS big FROM items WHERE id = 'a'", [{ s: "it's a \\ back\\slash", n: -7, f: 1.5, t: 1, x: 0, z: null, big: 1772928000000000 }]),
18
+ v('quoting', 'SELECT id AS "Group", name AS "select", stock AS "Total Count" FROM items WHERE id = \'a\'', [{ Group: 'a', select: 'apple', 'Total Count': 5 }]),
19
+ // ---- conditions ----------------------------------------------------------------------------------------
20
+ v('between', 'SELECT id FROM items WHERE stock BETWEEN 5 AND 7 ORDER BY id', ids('a', 'd')),
21
+ v('not-between', 'SELECT id FROM items WHERE stock NOT BETWEEN 3 AND 8 ORDER BY id', ids('b', 'c')),
22
+ v('like', "SELECT id FROM items WHERE name LIKE 'a%' OR name LIKE '%y' ORDER BY id", ids('a', 'b', 'c')),
23
+ v('not-like', "SELECT id FROM items WHERE name NOT LIKE '%rr%' ORDER BY id", ids('a', 'd')),
24
+ v('like-escape', "SELECT id FROM items WHERE 'a%b' LIKE 'a!%b' ESCAPE '!' AND 'axb' NOT LIKE 'a!%b' ESCAPE '!' AND id = 'a'", ids('a')),
25
+ // a condition as an operand: the printers parenthesize it, or SQLite would group it left to right and PostgreSQL refuse it
26
+ v('condition-in', 'SELECT id FROM items WHERE (stock > 4) IN (true) ORDER BY id', ids('a', 'c', 'd')),
27
+ v('condition-between', 'SELECT id FROM items WHERE (stock > 4) BETWEEN false AND (stock < 8) ORDER BY id', ids('a', 'b', 'd')),
28
+ v('condition-compare', "SELECT id FROM items WHERE (name LIKE 'a%') = (stock > 4) ORDER BY id", ids('a', 'b')),
29
+ v('condition-in-subquery', "SELECT id FROM items WHERE (stock IN (SELECT stock FROM items WHERE id = 'a')) = (stock > 4) ORDER BY id", ids('a', 'b')),
30
+ v('null-tests', "SELECT id FROM items WHERE cat IS NOT DISTINCT FROM 'x' AND tags IS NOT NULL AND NOT (stock IS NULL) AND cat IS DISTINCT FROM 'q' ORDER BY id", ids('a', 'b', 'd')),
31
+ v('in-list', "SELECT id FROM items WHERE id IN ('a', 'b') AND stock NOT IN (2) ORDER BY id", ids('a')),
32
+ v('any-subquery', 'SELECT id FROM items WHERE id = ANY (SELECT item_id FROM orders) ORDER BY id', ids('a')),
33
+ v('in-subquery', 'SELECT id FROM items WHERE id IN (SELECT item_id FROM orders) ORDER BY id', ids('a')),
34
+ v('exists', 'SELECT id FROM items WHERE EXISTS (SELECT 1 FROM orders o WHERE o.item_id = items.id) ORDER BY id', ids('a')),
35
+ v('not-exists', 'SELECT id FROM items WHERE NOT EXISTS (SELECT 1 FROM orders o WHERE o.item_id = items.id) ORDER BY id', ids('b', 'c', 'd')),
36
+ v('scalar-subquery', 'SELECT id, (SELECT count(*) FROM orders o WHERE o.item_id = i.id) AS n FROM items i ORDER BY id', [{ id: 'a', n: 2 }, { id: 'b', n: 0 }, { id: 'c', n: 0 }, { id: 'd', n: 0 }]),
37
+ v('input-param', 'SELECT id FROM items WHERE stock > input.min AND cat = input.cat ORDER BY id', ids('a', 'd'), { min: 'int8', cat: 'text' }, { min: 4, cat: 'x' }),
38
+ // ---- aggregates, windows, order, paging -------------------------------------------------------------------
39
+ v('aggregates', 'SELECT cat, count(*) AS n, count(DISTINCT stock) AS d, sum(stock) AS s, min(stock) AS lo, max(stock) AS hi, avg(stock) AS av, json_group_array(name) AS names, json_group_array(DISTINCT cat) AS cats, json_group_object(id, stock) AS obj FROM items GROUP BY cat HAVING count(*) > 0 ORDER BY cat', [{ cat: 'x', n: 3, d: 3, s: 14, lo: 2, hi: 7, av: 14 / 3, names: '["apple","berry","date"]', cats: '["x"]', obj: '{"a":5,"b":2,"d":7}' },
40
+ { cat: 'y', n: 1, d: 1, s: 9, lo: 9, hi: 9, av: 9, names: '["cherry"]', cats: '["y"]', obj: '{"c":9}' }]),
41
+ v('windows', 'SELECT r.cat, r.name, r.rn, r.rk, r.run, r.cnt FROM (SELECT cat, name, row_number() OVER (PARTITION BY cat ORDER BY stock DESC) AS rn, rank() OVER (PARTITION BY cat ORDER BY stock DESC) AS rk, sum(stock) OVER (PARTITION BY cat ORDER BY stock DESC) AS run, count(*) OVER (PARTITION BY cat) AS cnt, id FROM items) r ORDER BY r.cat, r.rn', [{ cat: 'x', name: 'date', rn: 1, rk: 1, run: 7, cnt: 3 }, { cat: 'x', name: 'apple', rn: 2, rk: 2, run: 12, cnt: 3 }, { cat: 'x', name: 'berry', rn: 3, rk: 3, run: 14, cnt: 3 }, { cat: 'y', name: 'cherry', rn: 1, rk: 1, run: 9, cnt: 1 }]),
42
+ v('order-nulls', 'SELECT id FROM items ORDER BY note DESC NULLS LAST, id ASC LIMIT 3', ids('d', 'c', 'a')),
43
+ v('order-nulls-first', 'SELECT id FROM items ORDER BY note ASC NULLS FIRST, id DESC LIMIT 3', ids('b', 'a', 'c')),
44
+ // PostgreSQL semantics: peers rank alike and a running sum includes all peers. An appended id key would break both.
45
+ v('window-ties', 'SELECT r.id, r.rk, r.run FROM (SELECT id, rank() OVER (ORDER BY cat) AS rk, sum(stock) OVER (ORDER BY cat) AS run FROM items) r ORDER BY r.id', [{ id: 'a', rk: 1, run: 14 }, { id: 'b', rk: 1, run: 14 }, { id: 'c', rk: 4, run: 23 }, { id: 'd', rk: 1, run: 14 }]),
46
+ v('distinct', 'SELECT DISTINCT cat FROM items', [{ cat: 'x' }, { cat: 'y' }]),
47
+ v('limit-input', 'SELECT id FROM items ORDER BY id LIMIT input.n', ids('a', 'b'), { n: 'int8' }, { n: 2 }),
48
+ // ---- relations ---------------------------------------------------------------------------------------------
49
+ v('inner-join', 'SELECT i.id, o.id AS oid FROM items i JOIN orders o ON o.item_id = i.id ORDER BY i.id, o.id', [{ id: 'a', oid: 'oa' }, { id: 'a', oid: 'ob' }]),
50
+ v('left-join', 'SELECT i.id, o.id AS oid FROM items i LEFT JOIN orders o ON o.item_id = i.id WHERE i.stock < 8 ORDER BY i.id, o.id', [{ id: 'a', oid: 'oa' }, { id: 'a', oid: 'ob' }, { id: 'b', oid: null }, { id: 'd', oid: null }]),
51
+ v('self-join', 'SELECT a.id AS a, b.id AS b FROM items a JOIN items b ON a.cat = b.cat AND a.id < b.id ORDER BY a.id, b.id', [{ a: 'a', b: 'b' }, { a: 'a', b: 'd' }, { a: 'b', b: 'd' }]),
52
+ v('from-subquery', 'SELECT s.id, s.stock FROM (SELECT id, stock FROM items WHERE cat = \'x\') s WHERE s.stock > 4 ORDER BY s.id', [{ id: 'a', stock: 5 }, { id: 'd', stock: 7 }]),
53
+ v('json-each', 'SELECT i.id, j.value AS tag FROM items i, json_each(i.tags) j WHERE j.value = input.tag ORDER BY i.id', [{ id: 'a', tag: 'red' }, { id: 'c', tag: 'red' }, { id: 'd', tag: 'red' }], { tag: 'text' }, { tag: 'red' }),
54
+ v('json-exists', 'SELECT i.id, i.tags ->> \'$[0]\' AS first FROM items i WHERE EXISTS (SELECT 1 FROM json_each(i.tags) j WHERE j.value = \'big\') ORDER BY i.id', [{ id: 'a', first: 'red' }]),
55
+ // ---- functions -----------------------------------------------------------------------------------------------
56
+ v('scalar-functions', "SELECT lower('AbC') AS lo, upper('AbC') AS up, length('héllo') AS len, abs(-3) AS ab, round(2.567, 2) AS r, substr('abcdef', 2, 3) AS sub, replace('a-b', '-', '+') AS rep, trim(' x ') AS t, ltrim(' x') AS lt, rtrim('x ') AS rt, instr('abc', 'c') AS ins, typeof(1) AS ty, hex('A') AS hx FROM items WHERE id = 'a'", [{ lo: 'abc', up: 'ABC', len: 5, ab: 3, r: 2.57, sub: 'bcd', rep: 'a+b', t: 'x', lt: 'x', rt: 'x', ins: 3, ty: 'integer', hx: '41' }]),
57
+ v('json-functions', "SELECT json_extract(tags, '$[0]') AS e, json_array_length(tags) AS n, json_set(tags, '$[0]', 'z') AS s, json_insert(tags, '$[#]', 'w') AS i, json_remove(tags, '$[0]') AS r FROM items WHERE id = 'a'", [{ e: 'red', n: 2, s: '["z","big"]', i: '["red","big","w"]', r: '["big"]' }]),
58
+ v('casts', "SELECT CAST(stock AS text) AS t, round(stock) AS i, CAST(stock AS float8) AS f, CAST(stock AS bool) AS b, CAST('false' AS bool) AS bf, CAST('yes' AS bool) AS bt, stock::text || 'x' AS c FROM items WHERE id = 'a'", [{ t: '5', i: 5, f: 5, b: 1, bf: 0, bt: 1, c: '5x' }]),
59
+ v('literal-casts', "SELECT '2026-03-08 10:00:00+00'::timestamptz AS ts, date '2026-03-08' AS d, interval '36 hours' AS iv, interval '90 minutes' AS im, '12.34'::numeric(12, 2) AS n, CAST('2026-03-08T10:00:00.123456Z' AS timestamptz) AS us FROM items WHERE id = 'a'", [{ ts: us(2026, 3, 8, 10), d: Date.UTC(2026, 2, 8) / 86_400_000, iv: 129_600_000_000, im: 5_400_000_000, n: 1234, us: us(2026, 3, 8, 10) + 123456 }]),
60
+ v('mantle-refs', 'SELECT auth.uid() AS uid, auth.role() AS role, now() AS now, input.x AS x FROM items WHERE id = \'a\'', [{ uid: 'o1', role: 'staff', now: NOW, x: 3 }], { x: 'int8' }, { x: 3 }),
61
+ v('date-trunc', "SELECT date_trunc('hour', now()) AS h, date_trunc('day', now()) AS d, date_trunc('week', now()) AS w, date_trunc('month', now()) AS m, date_trunc('year', now()) AS y FROM items WHERE id = 'a'", [{ h: NOW, d: NOW, w: us(2026, 9, 28), m: us(2026, 9, 1), y: us(2026, 1, 1) }]), // site time zone UTC here; DST cases are in cases/types.ts
62
+ v('extract', "SELECT extract(year FROM now()) AS y, extract(month FROM now()) AS mo, extract(day FROM now()) AS d, extract(dow FROM now()) AS dow, extract(hour FROM now()) AS h FROM items WHERE id = 'a'", [{ y: 2026, mo: 9, d: 29, dow: new Date(NOW / 1000).getUTCDay(), h: 0 }]),
63
+ // ---- writes (the database is reset before each) -------------------------------------------------------------------
64
+ w('insert-values', "INSERT INTO settings (key, value) VALUES ('a', '1') RETURNING key, value", [[{ key: 'a', value: '1' }]]),
65
+ w('insert-string-escapes', "INSERT INTO settings (key, value) VALUES ('q', 'it''s a \\ back\\slash') RETURNING value", [[{ value: "it's a \\ back\\slash" }]]),
66
+ // params first appear out of numeric order here (?1, ?3, then ?2): `$n` would silently mis-bind on D1
67
+ w('insert-select-input', "INSERT INTO orders (item_id, qty) SELECT r.item_id, r.qty FROM requisitions r WHERE r.id = input.id RETURNING item_id, qty", [[{ item_id: 'a', qty: 2 }]], { id: 'text' }, { id: 'r1' }),
68
+ w('insert-select', "INSERT INTO orders (item_id, qty) SELECT id, stock FROM items WHERE cat = 'x' RETURNING item_id, qty", [[{ item_id: 'a', qty: 5 }, { item_id: 'b', qty: 2 }, { item_id: 'd', qty: 7 }]]),
69
+ w('insert-returning-star', "INSERT INTO requisitions (item_id, qty, state) VALUES ('a', 1, 'new') RETURNING *", [[{ item_id: 'a', qty: 1, state: 'new' }]]),
70
+ w('update-set', 'UPDATE items SET stock = stock + 1, name = upper(name) WHERE cat = \'x\' RETURNING id, name, stock', [[{ id: 'a', name: 'APPLE', stock: 6 }, { id: 'b', name: 'BERRY', stock: 3 }, { id: 'd', name: 'DATE', stock: 8 }]]),
71
+ w('update-row', "UPDATE items SET stock = input.s WHERE id = input.id RETURNING id, stock", [[{ id: 'a', stock: 9 }]], { id: 'text', s: 'int8' }, { id: 'a', s: 9 }),
72
+ w('delete', "DELETE FROM requisitions WHERE state = 'pending' RETURNING id", [[{ id: 'r1' }, { id: 'r2' }]]),
73
+ w('upsert-nothing', "INSERT INTO settings (key, value) VALUES ('theme', 'light') ON CONFLICT (key) DO NOTHING RETURNING key", [[]]),
74
+ w('upsert-update', "INSERT INTO settings (key, value) VALUES ('theme', 'light') ON CONFLICT (key) DO UPDATE SET value = excluded.value WHERE settings.value IS DISTINCT FROM excluded.value RETURNING key, value", [[{ key: 'theme', value: 'light' }]]),
75
+ ];
76
+ /**
77
+ * The same results as the Store's wire values (ADR-0034 decision 5), for the items whose expectation above is D1's storage
78
+ * encoding of a computed output (ADR-0035, "computed outputs"). A dialect that decodes computed outputs by type (PostgreSQL
79
+ * does, by each column's type OID) gives these; an item passes with either.
80
+ */
81
+ const iso = (y, mo, d, h = 0, us6 = '000000') => `${new Date(Date.UTC(y, mo - 1, d, h)).toISOString().slice(0, 19)}.${us6}Z`;
82
+ export const typedRows = {
83
+ literals: [[{ s: "it's a \\ back\\slash", n: -7, f: 1.5, t: true, x: false, z: null, big: 1772928000000000 }]],
84
+ aggregates: [[{ cat: 'x', n: 3, d: 3, s: 14, lo: 2, hi: 7, av: 14 / 3, names: ['apple', 'berry', 'date'], cats: ['x'], obj: { a: 5, b: 2, d: 7 } },
85
+ { cat: 'y', n: 1, d: 1, s: 9, lo: 9, hi: 9, av: 9, names: ['cherry'], cats: ['y'], obj: { c: 9 } }]],
86
+ casts: [[{ t: '5', i: 5, f: 5, b: true, bf: false, bt: true, c: '5x' }]],
87
+ 'literal-casts': [[{ ts: iso(2026, 3, 8, 10), d: '2026-03-08', iv: 129_600_000_000, im: 5_400_000_000, n: '12.34', us: iso(2026, 3, 8, 10, '123456') }]],
88
+ 'mantle-refs': [[{ uid: 'o1', role: 'staff', now: iso(2026, 9, 29), x: 3 }]],
89
+ 'date-trunc': [[{ h: iso(2026, 9, 29), d: iso(2026, 9, 29), w: iso(2026, 9, 28), m: iso(2026, 9, 1), y: iso(2026, 1, 1) }]],
90
+ };
91
+ //# sourceMappingURL=corpus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"corpus.js","sourceRoot":"","sources":["../../../src/testing/cases/corpus.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ import type { Report } from '../report.js';
2
+ import type { Engine } from '../harness.js';
3
+ import type { Mode } from '../../core/sql/policy.js';
4
+ type Step = {
5
+ kind: 'view' | 'procedure';
6
+ sql: string;
7
+ inputs?: Record<string, string>;
8
+ input?: Record<string, unknown>;
9
+ mode?: Mode;
10
+ /** what the caller is entitled to see: the exact rows of every statement, as JSON */
11
+ rows?: unknown[][];
12
+ /** or: the statement must fail with a CONFLICT (an invisible row is a missing row) */
13
+ conflict?: true;
14
+ };
15
+ export type Probe = {
16
+ steps: Step[];
17
+ };
18
+ /** One entry per RelationPosition. A missing or extra key does not typecheck. */
19
+ export declare const PROBES: {
20
+ from: {
21
+ steps: Step[];
22
+ };
23
+ 'join.left': {
24
+ steps: Step[];
25
+ };
26
+ 'join.right': {
27
+ steps: Step[];
28
+ };
29
+ 'from-subquery': {
30
+ steps: Step[];
31
+ };
32
+ cte: {
33
+ steps: Step[];
34
+ };
35
+ 'setop.left': {
36
+ steps: Step[];
37
+ };
38
+ 'setop.right': {
39
+ steps: Step[];
40
+ };
41
+ sublink: {
42
+ steps: Step[];
43
+ };
44
+ json_each: {
45
+ steps: Step[];
46
+ };
47
+ window: {
48
+ steps: Step[];
49
+ };
50
+ 'insert-target': {
51
+ steps: Step[];
52
+ };
53
+ 'insert-select': {
54
+ steps: Step[];
55
+ };
56
+ 'update-target': {
57
+ steps: Step[];
58
+ };
59
+ 'delete-target': {
60
+ steps: Step[];
61
+ };
62
+ 'conflict-update': {
63
+ steps: Step[];
64
+ };
65
+ search: {
66
+ steps: Step[];
67
+ };
68
+ near: {
69
+ steps: Step[];
70
+ };
71
+ };
72
+ export declare function run(r: Report, engine: Engine): Promise<void>;
73
+ export {};
74
+ //# sourceMappingURL=policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../src/testing/cases/policy.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAI5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAIrD,KAAK,IAAI,GAAG;IACV,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,qFAAqF;IACrF,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;IACnB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,IAAI,CAAC;CACjB,CAAC;AACF,MAAM,MAAM,KAAK,GAAG;IAAE,KAAK,EAAE,IAAI,EAAE,CAAA;CAAE,CAAC;AAOtC,iFAAiF;AACjF,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CwB,CAAC;AAS5C,wBAAsB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAiElD"}