@aotter/mantle 0.2.0-alpha.1 → 0.2.0-alpha.11

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 (936) hide show
  1. package/README.md +180 -45
  2. package/dist/auth/adapter.d.ts +32 -0
  3. package/dist/auth/adapter.js +261 -0
  4. package/dist/auth/admin.d.ts +3 -0
  5. package/dist/auth/admin.js +18 -0
  6. package/dist/auth/caller.d.ts +86 -0
  7. package/dist/auth/caller.js +128 -0
  8. package/dist/auth/{createAuthRoutes.js → consent.js} +26 -54
  9. package/dist/auth/hardening.d.ts +24 -0
  10. package/dist/auth/hardening.js +33 -0
  11. package/dist/auth/identity.d.ts +121 -0
  12. package/dist/auth/identity.js +192 -0
  13. package/dist/auth/oauth.d.ts +63 -0
  14. package/dist/auth/oauth.js +185 -0
  15. package/dist/auth/resource-seeds.js +8 -0
  16. package/dist/auth/route-http.js +33 -0
  17. package/dist/auth/routes.d.ts +32 -0
  18. package/dist/auth/routes.js +80 -0
  19. package/dist/build/compiler.d.ts +122 -0
  20. package/dist/build/compiler.js +3 -0
  21. package/dist/{spec → build/spec}/domain/model/ManifestGrammar.d.ts +30 -43
  22. package/dist/{spec → build/spec}/domain/model/RuntimePlan.d.ts +77 -3
  23. package/dist/{spec → build/spec}/domain/model/SqlIr.d.ts +39 -6
  24. package/dist/build/spec/domain/model/UserFields.d.ts +21 -0
  25. package/dist/{spec → build/spec}/domain/service/PlanFingerprint.d.ts +4 -1
  26. package/dist/{spec → build/spec}/kernel/diagnostic.d.ts +1 -30
  27. package/dist/bun/assets.d.ts +2 -0
  28. package/dist/bun/assets.js +22 -0
  29. package/dist/domain/adminOrder.js +22 -0
  30. package/dist/domain/columns.js +42 -0
  31. package/dist/domain/describe/chunk-SGMRVDGE.js +1 -0
  32. package/dist/domain/describe/index.d.ts +58 -0
  33. package/dist/domain/describe/index.js +1 -0
  34. package/dist/domain/describe/target-hash.d.ts +8 -0
  35. package/dist/domain/describe/target-hash.js +1 -0
  36. package/dist/domain/describe/targets.d.ts +40 -0
  37. package/dist/domain/entry.js +19 -0
  38. package/dist/domain/generated-tools.js +18 -0
  39. package/dist/domain/generation.d.ts +16 -0
  40. package/dist/domain/generation.js +1 -0
  41. package/dist/domain/input.js +15 -0
  42. package/dist/domain/model.js +1 -0
  43. package/dist/domain/paging.js +213 -0
  44. package/dist/domain/recipes.js +22 -0
  45. package/dist/domain/userReferences.js +4 -0
  46. package/dist/domain/wireScalars.js +41 -0
  47. package/dist/infrastructure/adminEntries.js +156 -0
  48. package/dist/infrastructure/adminPaging.js +70 -0
  49. package/dist/infrastructure/artifacts.js +67 -0
  50. package/dist/infrastructure/authSchema.js +74 -0
  51. package/dist/infrastructure/bundle.js +159 -0
  52. package/dist/infrastructure/cli.js +111 -0
  53. package/dist/infrastructure/generate.d.ts +12 -0
  54. package/dist/infrastructure/generate.js +175 -0
  55. package/dist/infrastructure/generateAuth.d.ts +8 -0
  56. package/dist/infrastructure/generateAuth.js +66 -0
  57. package/dist/infrastructure/help.js +55 -0
  58. package/dist/infrastructure/init.js +50 -0
  59. package/dist/infrastructure/inputs.js +32 -0
  60. package/dist/infrastructure/mounts.js +22 -0
  61. package/dist/infrastructure/wrangler.js +103 -0
  62. package/dist/kernel/authorization.d.ts +4 -0
  63. package/dist/kernel/authorization.js +15 -0
  64. package/dist/kernel/binds.d.ts +60 -0
  65. package/dist/kernel/binds.js +39 -0
  66. package/dist/kernel/caller-identity.d.ts +21 -0
  67. package/dist/kernel/caller-identity.js +7 -0
  68. package/dist/kernel/caller-mode.d.ts +4 -0
  69. package/dist/kernel/caller-mode.js +14 -0
  70. package/dist/kernel/contract-error.d.ts +12 -0
  71. package/dist/kernel/contract-error.js +14 -0
  72. package/dist/kernel/contracts.d.ts +135 -0
  73. package/dist/kernel/contracts.js +56 -0
  74. package/dist/{spec/domain/service/CloudflareCron.d.ts → kernel/cron.d.ts} +0 -1
  75. package/dist/{spec/domain/service/CloudflareCron.js → kernel/cron.js} +0 -9
  76. package/dist/kernel/dialect/common.d.ts +38 -0
  77. package/dist/kernel/dialect/common.js +3 -0
  78. package/dist/kernel/dialect/postgres.d.ts +16 -0
  79. package/dist/kernel/dialect/postgres.js +16 -0
  80. package/dist/kernel/dialect/sqlite.d.ts +20 -0
  81. package/dist/kernel/dialect/sqlite.js +29 -0
  82. package/dist/kernel/drain.d.ts +5 -0
  83. package/dist/kernel/drain.js +29 -0
  84. package/dist/kernel/driver/bun-sqlite.d.ts +19 -0
  85. package/dist/kernel/driver/bun-sqlite.js +73 -0
  86. package/dist/kernel/driver/d1.d.ts +24 -0
  87. package/dist/kernel/driver/d1.js +21 -0
  88. package/dist/kernel/driver/postgres.d.ts +25 -0
  89. package/dist/kernel/driver/postgres.js +84 -0
  90. package/dist/kernel/driver/transaction-context.d.ts +10 -0
  91. package/dist/kernel/driver/transaction-context.js +28 -0
  92. package/dist/kernel/email.d.ts +28 -0
  93. package/dist/{auth/emailTemplates.js → kernel/email.js} +9 -2
  94. package/dist/kernel/host-access.d.ts +10 -0
  95. package/dist/kernel/host-access.js +64 -0
  96. package/dist/kernel/host-caller.d.ts +39 -0
  97. package/dist/kernel/host-caller.js +53 -0
  98. package/dist/kernel/json-body.d.ts +4 -0
  99. package/dist/kernel/json-body.js +42 -0
  100. package/dist/kernel/mcp-apps.d.ts +69 -0
  101. package/dist/kernel/mcp-apps.js +35 -0
  102. package/dist/kernel/mcp-call.d.ts +5 -0
  103. package/dist/kernel/mcp-call.js +24 -0
  104. package/dist/kernel/mcp-handler.js +347 -0
  105. package/dist/kernel/mcp.d.ts +110 -0
  106. package/dist/kernel/mcp.js +45 -0
  107. package/dist/kernel/media.d.ts +27 -0
  108. package/dist/kernel/media.js +198 -0
  109. package/dist/kernel/paging.d.ts +55 -0
  110. package/dist/kernel/paging.js +87 -0
  111. package/dist/kernel/publishing.d.ts +4 -0
  112. package/dist/kernel/publishing.js +15 -0
  113. package/dist/{cloudflare/r2Media.d.ts → kernel/r2-media.d.ts} +4 -5
  114. package/dist/kernel/r2-media.js +71 -0
  115. package/dist/kernel/rest-dispatch.js +37 -0
  116. package/dist/kernel/rest-router.js +63 -0
  117. package/dist/kernel/rest.d.ts +58 -0
  118. package/dist/kernel/rest.js +38 -0
  119. package/dist/kernel/scalars.d.ts +6 -0
  120. package/dist/kernel/scalars.js +36 -0
  121. package/dist/kernel/search.js +4 -0
  122. package/dist/{core/site.d.ts → kernel/site-types.d.ts} +38 -9
  123. package/dist/kernel/site-types.js +1 -0
  124. package/dist/kernel/site.d.ts +39 -0
  125. package/dist/kernel/site.js +30 -0
  126. package/dist/kernel/store.d.ts +175 -0
  127. package/dist/kernel/store.js +244 -0
  128. package/dist/kernel/surface-failure.d.ts +10 -0
  129. package/dist/kernel/surface-failure.js +29 -0
  130. package/dist/kernel/surface.d.ts +10 -0
  131. package/dist/kernel/surface.js +16 -0
  132. package/dist/kernel/sweep.d.ts +17 -0
  133. package/dist/kernel/sweep.js +26 -0
  134. package/dist/kernel/translations.d.ts +1 -0
  135. package/dist/kernel/translations.js +12 -0
  136. package/dist/kernel/user-caller.d.ts +31 -0
  137. package/dist/kernel/user-caller.js +61 -0
  138. package/dist/kernel/user-field-name.js +3 -0
  139. package/dist/kernel/user-fields.d.ts +35 -0
  140. package/dist/kernel/user-fields.js +71 -0
  141. package/dist/kernel/validation.d.ts +15 -0
  142. package/dist/kernel/validation.js +46 -0
  143. package/dist/kernel/web-gateway.js +66 -0
  144. package/dist/kernel/web-head.js +14 -0
  145. package/dist/kernel/web-index.js +39 -0
  146. package/dist/kernel/web-response.js +7 -0
  147. package/dist/kernel/web-serve.js +97 -0
  148. package/dist/kernel/web.d.ts +77 -0
  149. package/dist/kernel/web.js +43 -0
  150. package/dist/kernel/where.js +21 -0
  151. package/dist/testing/index.d.ts +1 -37
  152. package/dist/testing/index.js +1 -43
  153. package/dist/usecase/adminBindings.js +150 -0
  154. package/dist/usecase/adminClient.js +66 -0
  155. package/dist/usecase/adminDescriptors.js +100 -0
  156. package/dist/usecase/generate.js +160 -0
  157. package/dist/usecase/handlers.js +18 -0
  158. package/dist/usecase/mcp-media.js +16 -0
  159. package/dist/usecase/mcp.js +96 -0
  160. package/dist/usecase/paging.js +69 -0
  161. package/dist/usecase/publishing.js +59 -0
  162. package/dist/usecase/refusals.js +27 -0
  163. package/dist/usecase/rest.js +53 -0
  164. package/dist/usecase/search.js +7 -0
  165. package/dist/usecase/site.js +38 -0
  166. package/dist/usecase/stores.js +52 -0
  167. package/dist/usecase/tool-version.js +6 -0
  168. package/dist/usecase/translations.js +76 -0
  169. package/dist/usecase/ttl.js +20 -0
  170. package/dist/usecase/validation.js +221 -0
  171. package/dist/usecase/web.js +23 -0
  172. package/docs/examples/README.md +39 -16
  173. package/docs/examples/app-shell/README.md +121 -0
  174. package/docs/examples/app-shell/accept.mjs +91 -0
  175. package/docs/examples/app-shell/gitignore +7 -0
  176. package/docs/examples/app-shell/package.json +43 -0
  177. package/docs/examples/app-shell/pnpm-workspace.yaml +8 -0
  178. package/docs/examples/app-shell/smoke-kit.mjs +168 -0
  179. package/docs/examples/app-shell/src/auth.ts +58 -0
  180. package/docs/examples/app-shell/src/handlers.ts +5 -0
  181. package/docs/examples/app-shell/src/index.ts +4 -0
  182. package/docs/examples/app-shell/src/routes.ts +16 -0
  183. package/docs/examples/app-shell/src/schedule.ts +8 -0
  184. package/docs/examples/app-shell/src/service.ts +71 -0
  185. package/docs/examples/app-shell/src/sign-in.ts +41 -0
  186. package/docs/examples/app-shell/src/signup.ts +8 -0
  187. package/docs/examples/{reference-service → app-shell}/tsconfig.json +6 -2
  188. package/docs/examples/app-shell/worker-configuration.d.ts +22 -0
  189. package/docs/examples/app-shell/wrangler.jsonc +62 -0
  190. package/docs/examples/club-events/README.md +65 -0
  191. package/docs/examples/club-events/manifests/club-events.yaml +247 -0
  192. package/docs/examples/club-events/smoke.mjs +127 -0
  193. package/docs/examples/club-events/src/handlers.ts +25 -0
  194. package/docs/examples/club-events/src/signup.ts +9 -0
  195. package/docs/examples/generated-web/README.md +78 -0
  196. package/docs/examples/generated-web/posts.yaml +38 -0
  197. package/docs/examples/generated-web/seed.sql +6 -0
  198. package/docs/examples/generated-web/src/worker.ts +43 -0
  199. package/docs/examples/generated-web/tsconfig.json +8 -0
  200. package/docs/examples/generated-web/wrangler.jsonc +8 -0
  201. package/docs/examples/purchasing/.dev.vars.example +6 -0
  202. package/docs/examples/purchasing/README.md +99 -0
  203. package/docs/examples/purchasing/manifests/purchasing.yaml +374 -0
  204. package/docs/examples/purchasing/seed.sql +4 -0
  205. package/docs/examples/purchasing/smoke.mjs +191 -0
  206. package/docs/examples/purchasing/src/admin.tsx +13 -0
  207. package/docs/examples/purchasing/src/handlers.ts +33 -0
  208. package/docs/examples/purchasing/src/notify.ts +29 -0
  209. package/docs/examples/purchasing/src/requests-page.ts +57 -0
  210. package/docs/examples/purchasing/src/routes.ts +53 -0
  211. package/docs/examples/purchasing/src/schedule.ts +31 -0
  212. package/docs/examples/purchasing/src/signup.ts +5 -0
  213. package/docs/examples/purchasing/src/supplier.ts +32 -0
  214. package/docs/examples/purchasing/wrangler.jsonc +69 -0
  215. package/docs/examples/recipes/README.md +60 -0
  216. package/docs/examples/recipes/manifests/recipes.yaml +75 -0
  217. package/docs/examples/recipes/smoke.mjs +102 -0
  218. package/docs/examples/recipes/src/media.ts +13 -0
  219. package/docs/examples/recipes/src/pages.ts +99 -0
  220. package/docs/examples/recipes/src/routes.ts +71 -0
  221. package/docs/examples/recipes/src/site-config.ts +12 -0
  222. package/docs/examples/recipes/wrangler.jsonc +74 -0
  223. package/docs/handbook/cloudflare/authentication.md +186 -108
  224. package/docs/handbook/cloudflare/chatgpt-sites.md +5 -112
  225. package/docs/handbook/cloudflare/deploy-and-operate.md +59 -87
  226. package/docs/handbook/cloudflare/media-r2.md +61 -82
  227. package/docs/handbook/cloudflare/service-entry.md +223 -119
  228. package/docs/handbook/concepts/authorization.md +10 -117
  229. package/docs/handbook/concepts/four-atoms.md +9 -92
  230. package/docs/handbook/concepts/lifecycle-and-locales.md +9 -80
  231. package/docs/handbook/concepts/mcp-and-agents.md +24 -116
  232. package/docs/handbook/concepts/procedures-and-triggers.md +5 -162
  233. package/docs/handbook/concepts/runtime-and-adapters.md +15 -183
  234. package/docs/handbook/concepts/views.md +10 -109
  235. package/docs/handbook/examples/hub.md +2 -18
  236. package/docs/handbook/guides/adapter-guide.md +11 -0
  237. package/docs/handbook/guides/admin-ui.md +113 -136
  238. package/docs/handbook/guides/agent-setup.md +32 -27
  239. package/docs/handbook/guides/agent-workflow-acceptance.md +232 -0
  240. package/docs/handbook/guides/email.md +86 -0
  241. package/docs/handbook/guides/local-testing.md +40 -0
  242. package/docs/handbook/guides/mcp-apps.md +560 -0
  243. package/docs/handbook/guides/native-admin.md +566 -0
  244. package/docs/handbook/guides/native-execution.md +133 -0
  245. package/docs/handbook/guides/oauth.md +219 -0
  246. package/docs/handbook/guides/postgres-adapters.md +56 -0
  247. package/docs/handbook/guides/public-pages.md +93 -0
  248. package/docs/handbook/guides/size-and-startup.md +9 -0
  249. package/docs/handbook/guides/sql-patterns.md +266 -0
  250. package/docs/handbook/guides/typed-queries.md +210 -100
  251. package/docs/handbook/navigation.json +176 -30
  252. package/docs/handbook/reference/admin-descriptors.md +56 -0
  253. package/docs/handbook/reference/authorization.md +44 -52
  254. package/docs/handbook/reference/describe.md +56 -0
  255. package/docs/handbook/reference/diagnostics.md +19 -77
  256. package/docs/handbook/reference/features.md +45 -53
  257. package/docs/handbook/reference/manifest.md +6 -69
  258. package/docs/handbook/reference/procedure.md +11 -115
  259. package/docs/handbook/reference/schema.md +81 -172
  260. package/docs/handbook/reference/site-config.md +5 -65
  261. package/docs/handbook/reference/sql.md +64 -0
  262. package/docs/handbook/reference/surface.md +396 -93
  263. package/docs/handbook/reference/trigger.md +62 -89
  264. package/docs/handbook/reference/view.md +40 -158
  265. package/docs/handbook/releases/index.md +198 -12
  266. package/docs/handbook/start/agents.md +45 -0
  267. package/docs/handbook/start/overview.md +9 -56
  268. package/docs/handbook/start/project-and-cli.md +51 -131
  269. package/docs/handbook/start/quickstart-worker.md +38 -115
  270. package/docs/skills/develop/SKILL.md +77 -121
  271. package/docs/skills/integrate/SKILL.md +37 -84
  272. package/docs/skills/media-gc/SKILL.md +21 -8
  273. package/docs/skills/provision/SKILL.md +31 -87
  274. package/docs/skills/update/SKILL.md +20 -34
  275. package/docs/source/scripts/postgres-adapter.ts +101 -0
  276. package/docs/upgrade-0.1-to-0.2.md +26 -10
  277. package/package.json +120 -112
  278. package/skills/README.md +67 -0
  279. package/skills/mantle/SKILL.md +76 -0
  280. package/dist/admin/consent.d.ts +0 -17
  281. package/dist/admin/consent.d.ts.map +0 -1
  282. package/dist/admin/consent.js +0 -17
  283. package/dist/admin/consent.js.map +0 -1
  284. package/dist/admin/createAdminSurface.d.ts +0 -22
  285. package/dist/admin/createAdminSurface.d.ts.map +0 -1
  286. package/dist/admin/createAdminSurface.js +0 -589
  287. package/dist/admin/createAdminSurface.js.map +0 -1
  288. package/dist/admin/developerConsole.d.ts +0 -264
  289. package/dist/admin/developerConsole.d.ts.map +0 -1
  290. package/dist/admin/developerConsole.js +0 -136
  291. package/dist/admin/developerConsole.js.map +0 -1
  292. package/dist/admin/identity.d.ts +0 -62
  293. package/dist/admin/identity.d.ts.map +0 -1
  294. package/dist/admin/identity.js +0 -7
  295. package/dist/admin/identity.js.map +0 -1
  296. package/dist/admin/index.d.ts +0 -4
  297. package/dist/admin/index.d.ts.map +0 -1
  298. package/dist/admin/index.js +0 -4
  299. package/dist/admin/index.js.map +0 -1
  300. package/dist/admin/procedureFlow.d.ts +0 -25
  301. package/dist/admin/procedureFlow.d.ts.map +0 -1
  302. package/dist/admin/procedureFlow.js +0 -154
  303. package/dist/admin/procedureFlow.js.map +0 -1
  304. package/dist/auth/ConsoleEmailSender.d.ts +0 -15
  305. package/dist/auth/ConsoleEmailSender.d.ts.map +0 -1
  306. package/dist/auth/ConsoleEmailSender.js +0 -19
  307. package/dist/auth/ConsoleEmailSender.js.map +0 -1
  308. package/dist/auth/appleClientSecret.d.ts +0 -75
  309. package/dist/auth/appleClientSecret.d.ts.map +0 -1
  310. package/dist/auth/appleClientSecret.js +0 -116
  311. package/dist/auth/appleClientSecret.js.map +0 -1
  312. package/dist/auth/buildAuth.d.ts +0 -4565
  313. package/dist/auth/buildAuth.d.ts.map +0 -1
  314. package/dist/auth/buildAuth.js +0 -307
  315. package/dist/auth/buildAuth.js.map +0 -1
  316. package/dist/auth/callerResolver.d.ts +0 -48
  317. package/dist/auth/callerResolver.d.ts.map +0 -1
  318. package/dist/auth/callerResolver.js +0 -49
  319. package/dist/auth/callerResolver.js.map +0 -1
  320. package/dist/auth/createAuthRoutes.d.ts +0 -22
  321. package/dist/auth/createAuthRoutes.d.ts.map +0 -1
  322. package/dist/auth/createAuthRoutes.js.map +0 -1
  323. package/dist/auth/createMantleAuth.d.ts +0 -3
  324. package/dist/auth/createMantleAuth.d.ts.map +0 -1
  325. package/dist/auth/createMantleAuth.js +0 -483
  326. package/dist/auth/createMantleAuth.js.map +0 -1
  327. package/dist/auth/db.d.ts +0 -17
  328. package/dist/auth/db.d.ts.map +0 -1
  329. package/dist/auth/db.js +0 -24
  330. package/dist/auth/db.js.map +0 -1
  331. package/dist/auth/emailTemplates.d.ts +0 -7
  332. package/dist/auth/emailTemplates.d.ts.map +0 -1
  333. package/dist/auth/emailTemplates.js.map +0 -1
  334. package/dist/auth/index.d.ts +0 -9
  335. package/dist/auth/index.d.ts.map +0 -1
  336. package/dist/auth/index.js +0 -7
  337. package/dist/auth/index.js.map +0 -1
  338. package/dist/auth/methods.d.ts +0 -717
  339. package/dist/auth/methods.d.ts.map +0 -1
  340. package/dist/auth/methods.js +0 -321
  341. package/dist/auth/methods.js.map +0 -1
  342. package/dist/auth/oauthTokens.d.ts +0 -24
  343. package/dist/auth/oauthTokens.d.ts.map +0 -1
  344. package/dist/auth/oauthTokens.js +0 -146
  345. package/dist/auth/oauthTokens.js.map +0 -1
  346. package/dist/auth/setupIncomplete.d.ts +0 -16
  347. package/dist/auth/setupIncomplete.d.ts.map +0 -1
  348. package/dist/auth/setupIncomplete.js +0 -50
  349. package/dist/auth/setupIncomplete.js.map +0 -1
  350. package/dist/auth/types.d.ts +0 -440
  351. package/dist/auth/types.d.ts.map +0 -1
  352. package/dist/auth/types.js +0 -10
  353. package/dist/auth/types.js.map +0 -1
  354. package/dist/bun/index.d.ts +0 -65
  355. package/dist/bun/index.d.ts.map +0 -1
  356. package/dist/bun/index.js +0 -130
  357. package/dist/bun/index.js.map +0 -1
  358. package/dist/cli/emitModule.d.ts +0 -7
  359. package/dist/cli/emitModule.d.ts.map +0 -1
  360. package/dist/cli/emitModule.js +0 -127
  361. package/dist/cli/emitModule.js.map +0 -1
  362. package/dist/cli/generate.d.ts +0 -8
  363. package/dist/cli/generate.d.ts.map +0 -1
  364. package/dist/cli/generate.js +0 -355
  365. package/dist/cli/generate.js.map +0 -1
  366. package/dist/cli/main.d.ts +0 -3
  367. package/dist/cli/main.d.ts.map +0 -1
  368. package/dist/cli/main.js +0 -21
  369. package/dist/cli/main.js.map +0 -1
  370. package/dist/cli/preset.d.ts +0 -18
  371. package/dist/cli/preset.d.ts.map +0 -1
  372. package/dist/cli/preset.js +0 -352
  373. package/dist/cli/preset.js.map +0 -1
  374. package/dist/cloudflare/index.d.ts +0 -21
  375. package/dist/cloudflare/index.d.ts.map +0 -1
  376. package/dist/cloudflare/index.js +0 -14
  377. package/dist/cloudflare/index.js.map +0 -1
  378. package/dist/cloudflare/r2Media.d.ts.map +0 -1
  379. package/dist/cloudflare/r2Media.js +0 -69
  380. package/dist/cloudflare/r2Media.js.map +0 -1
  381. package/dist/core/caller.d.ts +0 -35
  382. package/dist/core/caller.d.ts.map +0 -1
  383. package/dist/core/caller.js +0 -3
  384. package/dist/core/caller.js.map +0 -1
  385. package/dist/core/createMantle.d.ts +0 -22
  386. package/dist/core/createMantle.d.ts.map +0 -1
  387. package/dist/core/createMantle.js +0 -117
  388. package/dist/core/createMantle.js.map +0 -1
  389. package/dist/core/dialect.d.ts +0 -41
  390. package/dist/core/dialect.d.ts.map +0 -1
  391. package/dist/core/dialect.js +0 -7
  392. package/dist/core/dialect.js.map +0 -1
  393. package/dist/core/driver.d.ts +0 -17
  394. package/dist/core/driver.d.ts.map +0 -1
  395. package/dist/core/driver.js +0 -2
  396. package/dist/core/driver.js.map +0 -1
  397. package/dist/core/email.d.ts +0 -17
  398. package/dist/core/email.d.ts.map +0 -1
  399. package/dist/core/email.js +0 -2
  400. package/dist/core/email.js.map +0 -1
  401. package/dist/core/index.d.ts +0 -16
  402. package/dist/core/index.d.ts.map +0 -1
  403. package/dist/core/index.js +0 -16
  404. package/dist/core/index.js.map +0 -1
  405. package/dist/core/invocation.d.ts +0 -66
  406. package/dist/core/invocation.d.ts.map +0 -1
  407. package/dist/core/invocation.js +0 -3
  408. package/dist/core/invocation.js.map +0 -1
  409. package/dist/core/runtime/auth.d.ts +0 -9
  410. package/dist/core/runtime/auth.d.ts.map +0 -1
  411. package/dist/core/runtime/auth.js +0 -39
  412. package/dist/core/runtime/auth.js.map +0 -1
  413. package/dist/core/runtime/createRuntime.d.ts +0 -23
  414. package/dist/core/runtime/createRuntime.d.ts.map +0 -1
  415. package/dist/core/runtime/createRuntime.js +0 -214
  416. package/dist/core/runtime/createRuntime.js.map +0 -1
  417. package/dist/core/runtime/verifyPlan.d.ts +0 -34
  418. package/dist/core/runtime/verifyPlan.d.ts.map +0 -1
  419. package/dist/core/runtime/verifyPlan.js +0 -301
  420. package/dist/core/runtime/verifyPlan.js.map +0 -1
  421. package/dist/core/service.d.ts +0 -45
  422. package/dist/core/service.d.ts.map +0 -1
  423. package/dist/core/service.js +0 -2
  424. package/dist/core/service.js.map +0 -1
  425. package/dist/core/site.d.ts.map +0 -1
  426. package/dist/core/site.js +0 -2
  427. package/dist/core/site.js.map +0 -1
  428. package/dist/core/siteConfig.d.ts +0 -5
  429. package/dist/core/siteConfig.d.ts.map +0 -1
  430. package/dist/core/siteConfig.js +0 -24
  431. package/dist/core/siteConfig.js.map +0 -1
  432. package/dist/core/sql/allowlist.d.ts +0 -65
  433. package/dist/core/sql/allowlist.d.ts.map +0 -1
  434. package/dist/core/sql/allowlist.js +0 -705
  435. package/dist/core/sql/allowlist.js.map +0 -1
  436. package/dist/core/sql/ast.d.ts +0 -24
  437. package/dist/core/sql/ast.d.ts.map +0 -1
  438. package/dist/core/sql/ast.js +0 -32
  439. package/dist/core/sql/ast.js.map +0 -1
  440. package/dist/core/sql/compile.d.ts +0 -50
  441. package/dist/core/sql/compile.d.ts.map +0 -1
  442. package/dist/core/sql/compile.js +0 -48
  443. package/dist/core/sql/compile.js.map +0 -1
  444. package/dist/core/sql/policy.d.ts +0 -121
  445. package/dist/core/sql/policy.d.ts.map +0 -1
  446. package/dist/core/sql/policy.js +0 -379
  447. package/dist/core/sql/policy.js.map +0 -1
  448. package/dist/core/sql/positions.d.ts +0 -30
  449. package/dist/core/sql/positions.d.ts.map +0 -1
  450. package/dist/core/sql/positions.js +0 -22
  451. package/dist/core/sql/positions.js.map +0 -1
  452. package/dist/core/sql/run.d.ts +0 -76
  453. package/dist/core/sql/run.d.ts.map +0 -1
  454. package/dist/core/sql/run.js +0 -267
  455. package/dist/core/sql/run.js.map +0 -1
  456. package/dist/core/store/createStore.d.ts +0 -49
  457. package/dist/core/store/createStore.d.ts.map +0 -1
  458. package/dist/core/store/createStore.js +0 -227
  459. package/dist/core/store/createStore.js.map +0 -1
  460. package/dist/core/store/cursor.d.ts +0 -4
  461. package/dist/core/store/cursor.d.ts.map +0 -1
  462. package/dist/core/store/cursor.js +0 -22
  463. package/dist/core/store/cursor.js.map +0 -1
  464. package/dist/core/store/json.d.ts +0 -80
  465. package/dist/core/store/json.d.ts.map +0 -1
  466. package/dist/core/store/json.js +0 -342
  467. package/dist/core/store/json.js.map +0 -1
  468. package/dist/core/store.d.ts +0 -160
  469. package/dist/core/store.d.ts.map +0 -1
  470. package/dist/core/store.js +0 -2
  471. package/dist/core/store.js.map +0 -1
  472. package/dist/core/wire.d.ts +0 -20
  473. package/dist/core/wire.d.ts.map +0 -1
  474. package/dist/core/wire.js +0 -84
  475. package/dist/core/wire.js.map +0 -1
  476. package/dist/core/withCaller.d.ts +0 -16
  477. package/dist/core/withCaller.d.ts.map +0 -1
  478. package/dist/core/withCaller.js +0 -29
  479. package/dist/core/withCaller.js.map +0 -1
  480. package/dist/d1/adapter.d.ts +0 -12
  481. package/dist/d1/adapter.d.ts.map +0 -1
  482. package/dist/d1/adapter.js +0 -23
  483. package/dist/d1/adapter.js.map +0 -1
  484. package/dist/d1/codec.d.ts +0 -14
  485. package/dist/d1/codec.d.ts.map +0 -1
  486. package/dist/d1/codec.js +0 -136
  487. package/dist/d1/codec.js.map +0 -1
  488. package/dist/d1/compile/index.d.ts +0 -9
  489. package/dist/d1/compile/index.d.ts.map +0 -1
  490. package/dist/d1/compile/index.js +0 -9
  491. package/dist/d1/compile/index.js.map +0 -1
  492. package/dist/d1/dialect.d.ts +0 -4
  493. package/dist/d1/dialect.d.ts.map +0 -1
  494. package/dist/d1/dialect.js +0 -13
  495. package/dist/d1/dialect.js.map +0 -1
  496. package/dist/d1/executor.d.ts +0 -13
  497. package/dist/d1/executor.d.ts.map +0 -1
  498. package/dist/d1/executor.js +0 -91
  499. package/dist/d1/executor.js.map +0 -1
  500. package/dist/d1/index.d.ts +0 -6
  501. package/dist/d1/index.d.ts.map +0 -1
  502. package/dist/d1/index.js +0 -6
  503. package/dist/d1/index.js.map +0 -1
  504. package/dist/d1/lower.d.ts +0 -8
  505. package/dist/d1/lower.d.ts.map +0 -1
  506. package/dist/d1/lower.js +0 -167
  507. package/dist/d1/lower.js.map +0 -1
  508. package/dist/d1/media.d.ts +0 -5
  509. package/dist/d1/media.d.ts.map +0 -1
  510. package/dist/d1/media.js +0 -157
  511. package/dist/d1/media.js.map +0 -1
  512. package/dist/d1/migrations.d.ts +0 -12
  513. package/dist/d1/migrations.d.ts.map +0 -1
  514. package/dist/d1/migrations.js +0 -111
  515. package/dist/d1/migrations.js.map +0 -1
  516. package/dist/d1/print.d.ts +0 -28
  517. package/dist/d1/print.d.ts.map +0 -1
  518. package/dist/d1/print.js +0 -54
  519. package/dist/d1/print.js.map +0 -1
  520. package/dist/d1/site.d.ts +0 -17
  521. package/dist/d1/site.d.ts.map +0 -1
  522. package/dist/d1/site.js +0 -63
  523. package/dist/d1/site.js.map +0 -1
  524. package/dist/d1/storage.d.ts +0 -34
  525. package/dist/d1/storage.d.ts.map +0 -1
  526. package/dist/d1/storage.js +0 -288
  527. package/dist/d1/storage.js.map +0 -1
  528. package/dist/d1/tz.d.ts +0 -21
  529. package/dist/d1/tz.d.ts.map +0 -1
  530. package/dist/d1/tz.js +0 -54
  531. package/dist/d1/tz.js.map +0 -1
  532. package/dist/d1/validator.d.ts +0 -10
  533. package/dist/d1/validator.d.ts.map +0 -1
  534. package/dist/d1/validator.js +0 -33
  535. package/dist/d1/validator.js.map +0 -1
  536. package/dist/mcp/apps.d.ts +0 -43
  537. package/dist/mcp/apps.d.ts.map +0 -1
  538. package/dist/mcp/apps.js +0 -57
  539. package/dist/mcp/apps.js.map +0 -1
  540. package/dist/mcp/catalog.d.ts +0 -55
  541. package/dist/mcp/catalog.d.ts.map +0 -1
  542. package/dist/mcp/catalog.js +0 -81
  543. package/dist/mcp/catalog.js.map +0 -1
  544. package/dist/mcp/createMcpSurface.d.ts +0 -34
  545. package/dist/mcp/createMcpSurface.d.ts.map +0 -1
  546. package/dist/mcp/createMcpSurface.js +0 -150
  547. package/dist/mcp/createMcpSurface.js.map +0 -1
  548. package/dist/mcp/index.d.ts +0 -4
  549. package/dist/mcp/index.d.ts.map +0 -1
  550. package/dist/mcp/index.js +0 -4
  551. package/dist/mcp/index.js.map +0 -1
  552. package/dist/postgres/adapter.d.ts +0 -20
  553. package/dist/postgres/adapter.d.ts.map +0 -1
  554. package/dist/postgres/adapter.js +0 -44
  555. package/dist/postgres/adapter.js.map +0 -1
  556. package/dist/postgres/codec.d.ts +0 -13
  557. package/dist/postgres/codec.d.ts.map +0 -1
  558. package/dist/postgres/codec.js +0 -110
  559. package/dist/postgres/codec.js.map +0 -1
  560. package/dist/postgres/compile/index.d.ts +0 -9
  561. package/dist/postgres/compile/index.d.ts.map +0 -1
  562. package/dist/postgres/compile/index.js +0 -9
  563. package/dist/postgres/compile/index.js.map +0 -1
  564. package/dist/postgres/driver.d.ts +0 -92
  565. package/dist/postgres/driver.d.ts.map +0 -1
  566. package/dist/postgres/driver.js +0 -110
  567. package/dist/postgres/driver.js.map +0 -1
  568. package/dist/postgres/executor.d.ts +0 -20
  569. package/dist/postgres/executor.d.ts.map +0 -1
  570. package/dist/postgres/executor.js +0 -69
  571. package/dist/postgres/executor.js.map +0 -1
  572. package/dist/postgres/index.d.ts +0 -7
  573. package/dist/postgres/index.d.ts.map +0 -1
  574. package/dist/postgres/index.js +0 -7
  575. package/dist/postgres/index.js.map +0 -1
  576. package/dist/postgres/lower.d.ts +0 -6
  577. package/dist/postgres/lower.d.ts.map +0 -1
  578. package/dist/postgres/lower.js +0 -157
  579. package/dist/postgres/lower.js.map +0 -1
  580. package/dist/postgres/print.d.ts +0 -11
  581. package/dist/postgres/print.d.ts.map +0 -1
  582. package/dist/postgres/print.js +0 -121
  583. package/dist/postgres/print.js.map +0 -1
  584. package/dist/postgres/storage.d.ts +0 -19
  585. package/dist/postgres/storage.d.ts.map +0 -1
  586. package/dist/postgres/storage.js +0 -201
  587. package/dist/postgres/storage.js.map +0 -1
  588. package/dist/postgres/textRows.d.ts +0 -10
  589. package/dist/postgres/textRows.d.ts.map +0 -1
  590. package/dist/postgres/textRows.js +0 -44
  591. package/dist/postgres/textRows.js.map +0 -1
  592. package/dist/postgres/validator.d.ts +0 -12
  593. package/dist/postgres/validator.d.ts.map +0 -1
  594. package/dist/postgres/validator.js +0 -46
  595. package/dist/postgres/validator.js.map +0 -1
  596. package/dist/spec/domain/index.d.ts +0 -3
  597. package/dist/spec/domain/index.d.ts.map +0 -1
  598. package/dist/spec/domain/index.js +0 -3
  599. package/dist/spec/domain/index.js.map +0 -1
  600. package/dist/spec/domain/model/ContentState.d.ts +0 -8
  601. package/dist/spec/domain/model/ContentState.d.ts.map +0 -1
  602. package/dist/spec/domain/model/ContentState.js +0 -7
  603. package/dist/spec/domain/model/ContentState.js.map +0 -1
  604. package/dist/spec/domain/model/Entry.d.ts +0 -29
  605. package/dist/spec/domain/model/Entry.d.ts.map +0 -1
  606. package/dist/spec/domain/model/Entry.js +0 -16
  607. package/dist/spec/domain/model/Entry.js.map +0 -1
  608. package/dist/spec/domain/model/Locale.d.ts +0 -30
  609. package/dist/spec/domain/model/Locale.d.ts.map +0 -1
  610. package/dist/spec/domain/model/Locale.js +0 -33
  611. package/dist/spec/domain/model/Locale.js.map +0 -1
  612. package/dist/spec/domain/model/ManifestGrammar.d.ts.map +0 -1
  613. package/dist/spec/domain/model/ManifestGrammar.js +0 -149
  614. package/dist/spec/domain/model/ManifestGrammar.js.map +0 -1
  615. package/dist/spec/domain/model/MediaMimeAccept.d.ts +0 -55
  616. package/dist/spec/domain/model/MediaMimeAccept.d.ts.map +0 -1
  617. package/dist/spec/domain/model/MediaMimeAccept.js +0 -90
  618. package/dist/spec/domain/model/MediaMimeAccept.js.map +0 -1
  619. package/dist/spec/domain/model/RuntimePlan.d.ts.map +0 -1
  620. package/dist/spec/domain/model/RuntimePlan.js +0 -4
  621. package/dist/spec/domain/model/RuntimePlan.js.map +0 -1
  622. package/dist/spec/domain/model/SiteConfig.d.ts +0 -173
  623. package/dist/spec/domain/model/SiteConfig.d.ts.map +0 -1
  624. package/dist/spec/domain/model/SiteConfig.js +0 -13
  625. package/dist/spec/domain/model/SiteConfig.js.map +0 -1
  626. package/dist/spec/domain/model/SqlIr.d.ts.map +0 -1
  627. package/dist/spec/domain/model/SqlIr.js +0 -95
  628. package/dist/spec/domain/model/SqlIr.js.map +0 -1
  629. package/dist/spec/domain/model/index.d.ts +0 -14
  630. package/dist/spec/domain/model/index.d.ts.map +0 -1
  631. package/dist/spec/domain/model/index.js +0 -14
  632. package/dist/spec/domain/model/index.js.map +0 -1
  633. package/dist/spec/domain/service/CloudflareCron.d.ts.map +0 -1
  634. package/dist/spec/domain/service/CloudflareCron.js.map +0 -1
  635. package/dist/spec/domain/service/CrossSchemaChecker.d.ts +0 -34
  636. package/dist/spec/domain/service/CrossSchemaChecker.d.ts.map +0 -1
  637. package/dist/spec/domain/service/CrossSchemaChecker.js +0 -114
  638. package/dist/spec/domain/service/CrossSchemaChecker.js.map +0 -1
  639. package/dist/spec/domain/service/EntryDataValidator.d.ts +0 -56
  640. package/dist/spec/domain/service/EntryDataValidator.d.ts.map +0 -1
  641. package/dist/spec/domain/service/EntryDataValidator.js +0 -88
  642. package/dist/spec/domain/service/EntryDataValidator.js.map +0 -1
  643. package/dist/spec/domain/service/JsonSchemaToZod.d.ts +0 -29
  644. package/dist/spec/domain/service/JsonSchemaToZod.d.ts.map +0 -1
  645. package/dist/spec/domain/service/JsonSchemaToZod.js +0 -156
  646. package/dist/spec/domain/service/JsonSchemaToZod.js.map +0 -1
  647. package/dist/spec/domain/service/LifecycleStateMachine.d.ts +0 -75
  648. package/dist/spec/domain/service/LifecycleStateMachine.d.ts.map +0 -1
  649. package/dist/spec/domain/service/LifecycleStateMachine.js +0 -76
  650. package/dist/spec/domain/service/LifecycleStateMachine.js.map +0 -1
  651. package/dist/spec/domain/service/LocaleCanonicalizer.d.ts +0 -29
  652. package/dist/spec/domain/service/LocaleCanonicalizer.d.ts.map +0 -1
  653. package/dist/spec/domain/service/LocaleCanonicalizer.js +0 -96
  654. package/dist/spec/domain/service/LocaleCanonicalizer.js.map +0 -1
  655. package/dist/spec/domain/service/ManifestFieldChecks.d.ts +0 -60
  656. package/dist/spec/domain/service/ManifestFieldChecks.d.ts.map +0 -1
  657. package/dist/spec/domain/service/ManifestFieldChecks.js +0 -116
  658. package/dist/spec/domain/service/ManifestFieldChecks.js.map +0 -1
  659. package/dist/spec/domain/service/ManifestGraphValidator.d.ts +0 -15
  660. package/dist/spec/domain/service/ManifestGraphValidator.d.ts.map +0 -1
  661. package/dist/spec/domain/service/ManifestGraphValidator.js +0 -225
  662. package/dist/spec/domain/service/ManifestGraphValidator.js.map +0 -1
  663. package/dist/spec/domain/service/ManifestLinker.d.ts +0 -45
  664. package/dist/spec/domain/service/ManifestLinker.d.ts.map +0 -1
  665. package/dist/spec/domain/service/ManifestLinker.js +0 -92
  666. package/dist/spec/domain/service/ManifestLinker.js.map +0 -1
  667. package/dist/spec/domain/service/ManifestLocaleTrimmer.d.ts +0 -16
  668. package/dist/spec/domain/service/ManifestLocaleTrimmer.d.ts.map +0 -1
  669. package/dist/spec/domain/service/ManifestLocaleTrimmer.js +0 -76
  670. package/dist/spec/domain/service/ManifestLocaleTrimmer.js.map +0 -1
  671. package/dist/spec/domain/service/ManifestParser.d.ts +0 -49
  672. package/dist/spec/domain/service/ManifestParser.d.ts.map +0 -1
  673. package/dist/spec/domain/service/ManifestParser.js +0 -203
  674. package/dist/spec/domain/service/ManifestParser.js.map +0 -1
  675. package/dist/spec/domain/service/ManifestPartition.d.ts +0 -9
  676. package/dist/spec/domain/service/ManifestPartition.d.ts.map +0 -1
  677. package/dist/spec/domain/service/ManifestPartition.js +0 -19
  678. package/dist/spec/domain/service/ManifestPartition.js.map +0 -1
  679. package/dist/spec/domain/service/ManifestPathDiagnoser.d.ts +0 -33
  680. package/dist/spec/domain/service/ManifestPathDiagnoser.d.ts.map +0 -1
  681. package/dist/spec/domain/service/ManifestPathDiagnoser.js +0 -43
  682. package/dist/spec/domain/service/ManifestPathDiagnoser.js.map +0 -1
  683. package/dist/spec/domain/service/ManifestSourceSpans.d.ts +0 -10
  684. package/dist/spec/domain/service/ManifestSourceSpans.d.ts.map +0 -1
  685. package/dist/spec/domain/service/ManifestSourceSpans.js +0 -76
  686. package/dist/spec/domain/service/ManifestSourceSpans.js.map +0 -1
  687. package/dist/spec/domain/service/McpToolNaming.d.ts +0 -25
  688. package/dist/spec/domain/service/McpToolNaming.d.ts.map +0 -1
  689. package/dist/spec/domain/service/McpToolNaming.js +0 -50
  690. package/dist/spec/domain/service/McpToolNaming.js.map +0 -1
  691. package/dist/spec/domain/service/PlanFingerprint.d.ts.map +0 -1
  692. package/dist/spec/domain/service/PlanFingerprint.js +0 -14
  693. package/dist/spec/domain/service/PlanFingerprint.js.map +0 -1
  694. package/dist/spec/domain/service/ProcedureViewSpecChecks.d.ts +0 -4
  695. package/dist/spec/domain/service/ProcedureViewSpecChecks.d.ts.map +0 -1
  696. package/dist/spec/domain/service/ProcedureViewSpecChecks.js +0 -211
  697. package/dist/spec/domain/service/ProcedureViewSpecChecks.js.map +0 -1
  698. package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts +0 -42
  699. package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts.map +0 -1
  700. package/dist/spec/domain/service/SchemaAdminUiChecker.js +0 -289
  701. package/dist/spec/domain/service/SchemaAdminUiChecker.js.map +0 -1
  702. package/dist/spec/domain/service/SchemaIndexChecker.d.ts +0 -33
  703. package/dist/spec/domain/service/SchemaIndexChecker.d.ts.map +0 -1
  704. package/dist/spec/domain/service/SchemaIndexChecker.js +0 -256
  705. package/dist/spec/domain/service/SchemaIndexChecker.js.map +0 -1
  706. package/dist/spec/domain/service/SchemaSearchChecker.d.ts +0 -11
  707. package/dist/spec/domain/service/SchemaSearchChecker.d.ts.map +0 -1
  708. package/dist/spec/domain/service/SchemaSearchChecker.js +0 -78
  709. package/dist/spec/domain/service/SchemaSearchChecker.js.map +0 -1
  710. package/dist/spec/domain/service/SchemaSpecChecks.d.ts +0 -31
  711. package/dist/spec/domain/service/SchemaSpecChecks.d.ts.map +0 -1
  712. package/dist/spec/domain/service/SchemaSpecChecks.js +0 -445
  713. package/dist/spec/domain/service/SchemaSpecChecks.js.map +0 -1
  714. package/dist/spec/domain/service/SiteDefaultsValidator.d.ts +0 -39
  715. package/dist/spec/domain/service/SiteDefaultsValidator.d.ts.map +0 -1
  716. package/dist/spec/domain/service/SiteDefaultsValidator.js +0 -194
  717. package/dist/spec/domain/service/SiteDefaultsValidator.js.map +0 -1
  718. package/dist/spec/domain/service/SqlClassify.d.ts +0 -19
  719. package/dist/spec/domain/service/SqlClassify.d.ts.map +0 -1
  720. package/dist/spec/domain/service/SqlClassify.js +0 -42
  721. package/dist/spec/domain/service/SqlClassify.js.map +0 -1
  722. package/dist/spec/domain/service/SqlRefusal.d.ts +0 -16
  723. package/dist/spec/domain/service/SqlRefusal.d.ts.map +0 -1
  724. package/dist/spec/domain/service/SqlRefusal.js +0 -20
  725. package/dist/spec/domain/service/SqlRefusal.js.map +0 -1
  726. package/dist/spec/domain/service/SqlTypes.d.ts +0 -40
  727. package/dist/spec/domain/service/SqlTypes.d.ts.map +0 -1
  728. package/dist/spec/domain/service/SqlTypes.js +0 -110
  729. package/dist/spec/domain/service/SqlTypes.js.map +0 -1
  730. package/dist/spec/domain/service/StaffRoleHierarchy.d.ts +0 -3
  731. package/dist/spec/domain/service/StaffRoleHierarchy.d.ts.map +0 -1
  732. package/dist/spec/domain/service/StaffRoleHierarchy.js +0 -19
  733. package/dist/spec/domain/service/StaffRoleHierarchy.js.map +0 -1
  734. package/dist/spec/domain/service/TriggerGraphChecks.d.ts +0 -16
  735. package/dist/spec/domain/service/TriggerGraphChecks.d.ts.map +0 -1
  736. package/dist/spec/domain/service/TriggerGraphChecks.js +0 -337
  737. package/dist/spec/domain/service/TriggerGraphChecks.js.map +0 -1
  738. package/dist/spec/domain/service/TriggerSpecChecks.d.ts +0 -4
  739. package/dist/spec/domain/service/TriggerSpecChecks.d.ts.map +0 -1
  740. package/dist/spec/domain/service/TriggerSpecChecks.js +0 -89
  741. package/dist/spec/domain/service/TriggerSpecChecks.js.map +0 -1
  742. package/dist/spec/domain/service/ValidatedAdminUiProjection.d.ts +0 -11
  743. package/dist/spec/domain/service/ValidatedAdminUiProjection.d.ts.map +0 -1
  744. package/dist/spec/domain/service/ValidatedAdminUiProjection.js +0 -26
  745. package/dist/spec/domain/service/ValidatedAdminUiProjection.js.map +0 -1
  746. package/dist/spec/domain/service/ViewAdminUiChecker.d.ts +0 -14
  747. package/dist/spec/domain/service/ViewAdminUiChecker.d.ts.map +0 -1
  748. package/dist/spec/domain/service/ViewAdminUiChecker.js +0 -53
  749. package/dist/spec/domain/service/ViewAdminUiChecker.js.map +0 -1
  750. package/dist/spec/domain/service/index.d.ts +0 -24
  751. package/dist/spec/domain/service/index.d.ts.map +0 -1
  752. package/dist/spec/domain/service/index.js +0 -24
  753. package/dist/spec/domain/service/index.js.map +0 -1
  754. package/dist/spec/index.d.ts +0 -10
  755. package/dist/spec/index.d.ts.map +0 -1
  756. package/dist/spec/index.js +0 -12
  757. package/dist/spec/index.js.map +0 -1
  758. package/dist/spec/infrastructure/cli/parseArgsError.d.ts +0 -16
  759. package/dist/spec/infrastructure/cli/parseArgsError.d.ts.map +0 -1
  760. package/dist/spec/infrastructure/cli/parseArgsError.js +0 -34
  761. package/dist/spec/infrastructure/cli/parseArgsError.js.map +0 -1
  762. package/dist/spec/infrastructure/index.d.ts +0 -2
  763. package/dist/spec/infrastructure/index.d.ts.map +0 -1
  764. package/dist/spec/infrastructure/index.js +0 -2
  765. package/dist/spec/infrastructure/index.js.map +0 -1
  766. package/dist/spec/infrastructure/sql/PgQueryParser.d.ts +0 -18
  767. package/dist/spec/infrastructure/sql/PgQueryParser.d.ts.map +0 -1
  768. package/dist/spec/infrastructure/sql/PgQueryParser.js +0 -17
  769. package/dist/spec/infrastructure/sql/PgQueryParser.js.map +0 -1
  770. package/dist/spec/infrastructure/sql/compilePlan.d.ts +0 -37
  771. package/dist/spec/infrastructure/sql/compilePlan.d.ts.map +0 -1
  772. package/dist/spec/infrastructure/sql/compilePlan.js +0 -282
  773. package/dist/spec/infrastructure/sql/compilePlan.js.map +0 -1
  774. package/dist/spec/infrastructure/sql/compileSql.d.ts +0 -35
  775. package/dist/spec/infrastructure/sql/compileSql.d.ts.map +0 -1
  776. package/dist/spec/infrastructure/sql/compileSql.js +0 -92
  777. package/dist/spec/infrastructure/sql/compileSql.js.map +0 -1
  778. package/dist/spec/infrastructure/sql/frontEnd.d.ts +0 -8
  779. package/dist/spec/infrastructure/sql/frontEnd.d.ts.map +0 -1
  780. package/dist/spec/infrastructure/sql/frontEnd.js +0 -100
  781. package/dist/spec/infrastructure/sql/frontEnd.js.map +0 -1
  782. package/dist/spec/infrastructure/sql/index.d.ts +0 -4
  783. package/dist/spec/infrastructure/sql/index.d.ts.map +0 -1
  784. package/dist/spec/infrastructure/sql/index.js +0 -4
  785. package/dist/spec/infrastructure/sql/index.js.map +0 -1
  786. package/dist/spec/kernel/diagnostic.d.ts.map +0 -1
  787. package/dist/spec/kernel/diagnostic.js +0 -296
  788. package/dist/spec/kernel/diagnostic.js.map +0 -1
  789. package/dist/spec/kernel/index.d.ts +0 -8
  790. package/dist/spec/kernel/index.d.ts.map +0 -1
  791. package/dist/spec/kernel/index.js +0 -8
  792. package/dist/spec/kernel/index.js.map +0 -1
  793. package/dist/spec/usecase/EmitTypes.d.ts +0 -22
  794. package/dist/spec/usecase/EmitTypes.d.ts.map +0 -1
  795. package/dist/spec/usecase/EmitTypes.js +0 -182
  796. package/dist/spec/usecase/EmitTypes.js.map +0 -1
  797. package/dist/spec/usecase/ValidateManifestsUseCase.d.ts +0 -8
  798. package/dist/spec/usecase/ValidateManifestsUseCase.d.ts.map +0 -1
  799. package/dist/spec/usecase/ValidateManifestsUseCase.js +0 -101
  800. package/dist/spec/usecase/ValidateManifestsUseCase.js.map +0 -1
  801. package/dist/spec/usecase/dto/ValidateManifestsRequest.d.ts +0 -27
  802. package/dist/spec/usecase/dto/ValidateManifestsRequest.d.ts.map +0 -1
  803. package/dist/spec/usecase/dto/ValidateManifestsRequest.js +0 -2
  804. package/dist/spec/usecase/dto/ValidateManifestsRequest.js.map +0 -1
  805. package/dist/spec/usecase/dto/ValidateManifestsResponse.d.ts +0 -14
  806. package/dist/spec/usecase/dto/ValidateManifestsResponse.d.ts.map +0 -1
  807. package/dist/spec/usecase/dto/ValidateManifestsResponse.js +0 -2
  808. package/dist/spec/usecase/dto/ValidateManifestsResponse.js.map +0 -1
  809. package/dist/spec/usecase/dto/index.d.ts +0 -3
  810. package/dist/spec/usecase/dto/index.d.ts.map +0 -1
  811. package/dist/spec/usecase/dto/index.js +0 -3
  812. package/dist/spec/usecase/dto/index.js.map +0 -1
  813. package/dist/spec/usecase/index.d.ts +0 -10
  814. package/dist/spec/usecase/index.d.ts.map +0 -1
  815. package/dist/spec/usecase/index.js +0 -10
  816. package/dist/spec/usecase/index.js.map +0 -1
  817. package/dist/testing/cases/before-hook.d.ts +0 -4
  818. package/dist/testing/cases/before-hook.d.ts.map +0 -1
  819. package/dist/testing/cases/before-hook.js +0 -71
  820. package/dist/testing/cases/before-hook.js.map +0 -1
  821. package/dist/testing/cases/corpus.d.ts +0 -12
  822. package/dist/testing/cases/corpus.d.ts.map +0 -1
  823. package/dist/testing/cases/corpus.js +0 -91
  824. package/dist/testing/cases/corpus.js.map +0 -1
  825. package/dist/testing/cases/policy.d.ts +0 -74
  826. package/dist/testing/cases/policy.d.ts.map +0 -1
  827. package/dist/testing/cases/policy.js +0 -142
  828. package/dist/testing/cases/policy.js.map +0 -1
  829. package/dist/testing/cases/printer.d.ts +0 -4
  830. package/dist/testing/cases/printer.d.ts.map +0 -1
  831. package/dist/testing/cases/printer.js +0 -32
  832. package/dist/testing/cases/printer.js.map +0 -1
  833. package/dist/testing/cases/report-view.d.ts +0 -5
  834. package/dist/testing/cases/report-view.d.ts.map +0 -1
  835. package/dist/testing/cases/report-view.js +0 -33
  836. package/dist/testing/cases/report-view.js.map +0 -1
  837. package/dist/testing/cases/requisition.d.ts +0 -4
  838. package/dist/testing/cases/requisition.d.ts.map +0 -1
  839. package/dist/testing/cases/requisition.js +0 -38
  840. package/dist/testing/cases/requisition.js.map +0 -1
  841. package/dist/testing/cases/search-places.d.ts +0 -4
  842. package/dist/testing/cases/search-places.d.ts.map +0 -1
  843. package/dist/testing/cases/search-places.js +0 -60
  844. package/dist/testing/cases/search-places.js.map +0 -1
  845. package/dist/testing/cases/stock.d.ts +0 -4
  846. package/dist/testing/cases/stock.d.ts.map +0 -1
  847. package/dist/testing/cases/stock.js +0 -35
  848. package/dist/testing/cases/stock.js.map +0 -1
  849. package/dist/testing/cases/store.d.ts +0 -4
  850. package/dist/testing/cases/store.d.ts.map +0 -1
  851. package/dist/testing/cases/store.js +0 -100
  852. package/dist/testing/cases/store.js.map +0 -1
  853. package/dist/testing/harness.d.ts +0 -94
  854. package/dist/testing/harness.d.ts.map +0 -1
  855. package/dist/testing/harness.js +0 -168
  856. package/dist/testing/harness.js.map +0 -1
  857. package/dist/testing/index.d.ts.map +0 -1
  858. package/dist/testing/index.js.map +0 -1
  859. package/dist/testing/report.d.ts +0 -15
  860. package/dist/testing/report.d.ts.map +0 -1
  861. package/dist/testing/report.js +0 -22
  862. package/dist/testing/report.js.map +0 -1
  863. package/dist/web/createRestSurface.d.ts +0 -7
  864. package/dist/web/createRestSurface.d.ts.map +0 -1
  865. package/dist/web/createRestSurface.js +0 -39
  866. package/dist/web/createRestSurface.js.map +0 -1
  867. package/dist/web/index.d.ts +0 -2
  868. package/dist/web/index.d.ts.map +0 -1
  869. package/dist/web/index.js +0 -2
  870. package/dist/web/index.js.map +0 -1
  871. package/docs/adr/0001-four-atom-manifest-model.md +0 -440
  872. package/docs/adr/0002-closed-enums-for-bindings.md +0 -253
  873. package/docs/adr/0007-ai-as-primary-author.md +0 -473
  874. package/docs/adr/0008-structured-diagnostic-shape.md +0 -338
  875. package/docs/adr/0009-consumer-supplied-manifests.md +0 -149
  876. package/docs/adr/0010-locale-and-translates.md +0 -453
  877. package/docs/adr/0011-adapter-port-spec.md +0 -281
  878. package/docs/adr/0012-views-as-public-rest.md +0 -161
  879. package/docs/adr/0013-agent-provisioned-consumer-projects.md +0 -154
  880. package/docs/adr/0014-auth-better-auth-and-multi-tenant-mcp.md +0 -919
  881. package/docs/adr/0016-site-semantic-layer.md +0 -70
  882. package/docs/adr/0017-media-multi-variant-agent-side-optimization.md +0 -181
  883. package/docs/adr/0018-core-starters-repository-boundary.md +0 -179
  884. package/docs/adr/0019-sealed-manifest-runtime-pipeline.md +0 -244
  885. package/docs/adr/0020-builtin-handler-contracts-and-matched-upsert.md +0 -199
  886. package/docs/adr/0021-retire-starter-scaffolding.md +0 -30
  887. package/docs/adr/0022-caller-observed-version-occ.md +0 -212
  888. package/docs/adr/0023-port-failure-contract.md +0 -69
  889. package/docs/adr/0024-manifest-native-schema-tables.md +0 -264
  890. package/docs/adr/0025-reserved-native-columns-and-published-only-public-views.md +0 -105
  891. package/docs/adr/0026-progressive-generate.md +0 -36
  892. package/docs/adr/0027-scheduled-procedure-triggers.md +0 -31
  893. package/docs/adr/0028-schema-ttl-expiry.md +0 -33
  894. package/docs/adr/0029-mcp-apps-interaction-contracts.md +0 -324
  895. package/docs/adr/0030-store.md +0 -40
  896. package/docs/adr/0031-host-cloud-core-contract.md +0 -25
  897. package/docs/adr/0032-store-centric-core-and-service-contract.md +0 -361
  898. package/docs/adr/0033-storage-converges-to-the-plan.md +0 -92
  899. package/docs/adr/0034-store-is-authored-as-sql.md +0 -192
  900. package/docs/adr/0035-sql-dialects.md +0 -154
  901. package/docs/adr/0036-host-and-dialect.md +0 -65
  902. package/docs/adr/0037-postgresql-is-the-reference-dialect.md +0 -124
  903. package/docs/adr/0038-bun-native-host.md +0 -63
  904. package/docs/adr/README.md +0 -96
  905. package/docs/adr/adr-lite-803-request-diagnostics.md +0 -38
  906. package/docs/adr/adr-lite-808-route-readiness.md +0 -47
  907. package/docs/adr/adr-lite-809-bounded-public-content.md +0 -71
  908. package/docs/adr/adr-lite-812-native-parity.md +0 -150
  909. package/docs/adr/adr-lite-823-home-statistics.md +0 -64
  910. package/docs/adr/adr-lite-842-mcp-authoring.md +0 -30
  911. package/docs/adr/adr-lite-845-frontend-client.md +0 -38
  912. package/docs/adr/adr-lite-861-admin-webmcp.md +0 -48
  913. package/docs/adr/adr-lite-909-admin-ui-kit.md +0 -37
  914. package/docs/examples/commerce-inventory.md +0 -481
  915. package/docs/examples/commerce.md +0 -254
  916. package/docs/examples/guarded-api.md +0 -238
  917. package/docs/examples/intake-hooks.md +0 -237
  918. package/docs/examples/intake.md +0 -127
  919. package/docs/examples/legal-documents.md +0 -218
  920. package/docs/examples/procurement.md +0 -215
  921. package/docs/examples/publication.md +0 -211
  922. package/docs/examples/reference-service/.mantle/generated/mantle.ts +0 -174
  923. package/docs/examples/reference-service/.mantle/generated/plan.json +0 -1936
  924. package/docs/examples/reference-service/README.md +0 -33
  925. package/docs/examples/reference-service/manifests/catalog.yaml +0 -103
  926. package/docs/examples/reference-service/manifests/orders.yaml +0 -120
  927. package/docs/examples/reference-service/mantle.config.json +0 -1
  928. package/docs/examples/reference-service/package.json +0 -27
  929. package/docs/examples/reference-service/smoke.mjs +0 -156
  930. package/docs/examples/reference-service/src/handlers.ts +0 -36
  931. package/docs/examples/reference-service/src/index.ts +0 -33
  932. package/docs/examples/reference-service/src/service.ts +0 -78
  933. package/docs/examples/reference-service/wrangler.jsonc +0 -26
  934. package/docs/examples/reservation.md +0 -142
  935. package/docs/skills/develop/mcp-app.md +0 -79
  936. /package/docs/examples/{reference-service → app-shell}/.dev.vars.example +0 -0
@@ -1,214 +0,0 @@
1
- /**
2
- * `createMantleRuntime`: boots one sealed plan into a running runtime (ADR-0032 decisions 3, 7 and 10).
3
- * Boot checks the plan, the handlers and the storage; `invokeProcedure` is the one path every source runs through.
4
- */
5
- import { DiagnosticError, makeDiagnostic, readJsonPointer } from "../../spec/kernel/index.js";
6
- import { RUNTIME_PLAN_VERSION, SqlRefusal, firstZodIssueAsJsonPointer, jsonSchemaToZod, planFingerprint, safeParseJson, ManifestParseError } from "../../spec/domain/index.js";
7
- import { validateTriggerSpec } from "../../spec/domain/service/TriggerSpecChecks.js";
8
- import { systemCaller } from "../caller.js";
9
- import { MAX_INVOCATION_DEPTH } from "../invocation.js";
10
- import { sqlInput } from "../sql/compile.js";
11
- import { runProcedure } from "../sql/run.js";
12
- import { bindFor, createStore } from "../store/createStore.js";
13
- import { evaluateAuthAll } from "./auth.js";
14
- export const CORE_VERSION = "0.2.0";
15
- /** A staff View's `uiSchema.list.searchFields` and `filterFields`, which Store's `search` and `filters` match (ADR-0032 decision 5). */
16
- function listFields(uiSchema) {
17
- const list = (uiSchema?.["list"] ?? {});
18
- return { ...(list.searchFields?.length ? { searchFields: list.searchFields } : {}), ...(list.filterFields?.length ? { filterFields: list.filterFields } : {}) };
19
- }
20
- const fail = (code, path, message, phase = "boot", extra = {}) => new DiagnosticError(makeDiagnostic({ code, phase, severity: "error", path, message, ...extra }));
21
- const VERB = { create: "insert", update: "update", delete: "delete", publish: "publish" };
22
- const depthOf = (c) => {
23
- let depth = 0;
24
- for (; c && depth <= MAX_INVOCATION_DEPTH; c = c.parent)
25
- depth++;
26
- return depth;
27
- };
28
- const child = (parent, procedure) => ({ kind: "internal", id: `${parent.id}>${procedure}`, parent });
29
- /** The key of the Schema a lifecycle Trigger names, as the dispatcher keys its hooks: the name in lower case, an own key. */
30
- const lifecycleKey = (plan, schema) => (Object.hasOwn(plan.schemas, schema.toLowerCase()) ? schema.toLowerCase() : undefined);
31
- export async function createMantleRuntime(args) {
32
- const { plan } = args;
33
- const at = "plan";
34
- // ---- boot: the plan is what was sealed, and what was expected ---------------------------------------------------------
35
- if (plan.version !== RUNTIME_PLAN_VERSION)
36
- throw fail("PLAN_FINGERPRINT_MISMATCH", at, `plan version ${plan.version} is not the version this Core runs (${RUNTIME_PLAN_VERSION})`);
37
- const { fingerprint, ...body } = plan;
38
- if ((await planFingerprint(body)) !== fingerprint)
39
- throw fail("PLAN_FINGERPRINT_MISMATCH", at, "the plan does not match its fingerprint: it changed after it was sealed");
40
- if (args.expectedFingerprint !== undefined && args.expectedFingerprint !== fingerprint)
41
- throw fail("PLAN_FINGERPRINT_MISMATCH", at, `the plan's fingerprint is ${fingerprint}, expected ${args.expectedFingerprint}`);
42
- // handlers and plan agree in both directions
43
- const refs = new Set(Object.values(plan.procedures).flatMap((p) => ("ref" in p.handler ? [p.handler.ref] : [])));
44
- for (const ref of refs)
45
- if (!Object.hasOwn(args.handlers, ref))
46
- throw fail("HANDLER_NOT_REGISTERED", `${at}#/handler/${ref}`, `the plan names handler '${ref}' and none is registered`, "boot", { candidates: Object.keys(args.handlers) });
47
- for (const name of Object.keys(args.handlers))
48
- if (!refs.has(name))
49
- throw fail("HANDLER_NOT_DECLARED", `${at}#/handlers/${name}`, `handler '${name}' is registered and no Procedure of the plan declares it`);
50
- const triggers = Object.entries(plan.triggers).sort(([a], [b]) => (a < b ? -1 : 1));
51
- // a Trigger is checked as the CLI checks its manifest (a lifecycle hook that is not one would bind nothing), and it targets a
52
- // Procedure and a Schema of this plan: a surface that cannot find one fails on every request instead
53
- for (const [name, t] of triggers) {
54
- const path = `${at}#/triggers/${name}`;
55
- try {
56
- validateTriggerSpec({ spec: { source: t.source, target: { procedure: t.procedure } } }, undefined); // no document index: the path names the Trigger
57
- }
58
- catch (e) {
59
- if (e instanceof ManifestParseError)
60
- throw fail(e.code, `${path}${e.pointer?.replace(/^\/spec/, "") ?? ""}`, e.message);
61
- throw e;
62
- }
63
- if (!Object.hasOwn(plan.procedures, t.procedure))
64
- throw fail("TRIGGER_TARGET_PROCEDURE_UNKNOWN", path, `Trigger '${name}' targets '${t.procedure}', which is not a Procedure of the plan`);
65
- // the dispatcher keys hooks by the Schema's key (its name in lower case) and a deferred after hook is honoured only for the
66
- // Schema's name as declared (`runDeferredHook`), so the Trigger names a Schema exactly as the CLI's linker requires
67
- const key = t.source.kind === "lifecycle" ? lifecycleKey(plan, t.source.schema) : undefined;
68
- if (t.source.kind === "lifecycle" && (key === undefined || plan.schemas[key].name !== t.source.schema))
69
- throw fail("LIFECYCLE_SCHEMA_UNKNOWN", path, `lifecycle Trigger '${name}' watches '${t.source.schema}', which is not the name of a Schema of the plan`);
70
- }
71
- if (!args.schedules && triggers.some(([, t]) => t.source.kind === "schedule" && t.source.enabled !== false))
72
- throw fail("SCHEDULE_NOT_WIRED", at, "the plan has an enabled schedule Trigger and this entry does not wire schedules (pass schedules: true)");
73
- // hook targets and guards are consumer code: an inline program would write inside a before hook or a guard, which fails open
74
- const inline = (name) => !("ref" in (plan.procedures[name]?.handler ?? { ref: "" }));
75
- for (const [name, t] of triggers)
76
- if (t.source.kind === "lifecycle" && inline(t.procedure))
77
- throw fail("LIFECYCLE_TARGET_NOT_REF", `${at}#/triggers/${name}`, `lifecycle Trigger '${name}' targets '${t.procedure}', which is an inline program`);
78
- for (const [name, p] of Object.entries(plan.procedures)) {
79
- const g = p.requires?.guard?.procedure;
80
- if (g && inline(g))
81
- throw fail("GUARD_PROCEDURE_NOT_REF", `${at}#/procedures/${name}`, `'${name}' is guarded by '${g}', which is an inline program`);
82
- }
83
- for (const [name, v] of Object.entries(plan.views)) {
84
- const g = v.requires?.guard?.procedure;
85
- if (g && inline(g))
86
- throw fail("GUARD_PROCEDURE_NOT_REF", `${at}#/views/${name}`, `View '${name}' is guarded by '${g}', which is an inline program`);
87
- }
88
- // a plan is dialect-specific: checked before storage converges to it
89
- const { dialect } = args.storage;
90
- if (plan.dialect?.name !== dialect.name || plan.dialect.version !== dialect.version)
91
- throw fail("PLAN_FINGERPRINT_MISMATCH", at, `the plan was compiled for dialect ${plan.dialect?.name}@${plan.dialect?.version}; this storage runs ${dialect.name}@${dialect.version}`);
92
- const { executor, site } = await args.storage.prepare(plan);
93
- // ---- lifecycle: Store hands mutations to this dispatcher; Procedures are only reached through invokeProcedure ---------------
94
- const byHook = new Map();
95
- const before = new Set();
96
- const after = new Set();
97
- for (const [name, t] of triggers) {
98
- if (t.source.kind !== "lifecycle")
99
- continue;
100
- for (const hook of t.source.on) {
101
- const [stage, op] = hook.split("_");
102
- // a statement names its table the way SQL folds it, so hooks are keyed by the lower-cased Schema name
103
- const schema = lifecycleKey(plan, t.source.schema);
104
- (stage === "before" ? before : after).add(`${schema}.${VERB[op]}`);
105
- const key = `${schema}|${hook}`;
106
- byHook.set(key, [...(byHook.get(key) ?? []), [name, t.procedure]]);
107
- }
108
- }
109
- const fire = (e, [trigger, procedure]) => invoke({ procedure, input: {}, caller: e.caller, cause: { kind: "lifecycle", id: `${e.id}:${trigger}`, ...(e.parent ? { parent: e.parent } : {}), trigger, hook: e.hook, schema: plan.schemas[e.schema]?.name ?? e.schema, rows: e.rows } });
110
- const dispatcher = {
111
- // a before hook that throws rejects the mutation: it fails closed
112
- async before(events) {
113
- for (const e of events)
114
- for (const t of byHook.get(`${e.schema}|${e.hook}`) ?? [])
115
- await fire(e, t);
116
- },
117
- // an after hook never changes a committed result; the cause id is stable so a handler can deduplicate a replay
118
- async after(events) {
119
- for (const e of events)
120
- for (const t of byHook.get(`${e.schema}|${e.hook}`) ?? []) {
121
- try {
122
- await fire(e, t);
123
- }
124
- catch (error) {
125
- console.error("[mantle lifecycle] after hook failed", { trigger: t[0], hook: e.hook, schema: e.schema, error });
126
- }
127
- }
128
- },
129
- };
130
- const lifecycle = before.size || after.size ? { dispatcher, before, after } : undefined;
131
- const now = args.now ?? (() => Date.now() * 1000);
132
- const store = createStore({
133
- executor, dialect, schemas: plan.schemas, lifecycle, now,
134
- newId: args.newId ?? (() => crypto.randomUUID().replaceAll("-", "")),
135
- views: Object.fromEntries(Object.entries(plan.views).map(([name, v]) => [name, { ir: v.stmts, inputs: v.inputs, ...(v.input ? { input: v.input } : {}), ...(v.columns ? { columns: v.columns } : {}), public: v.surface === "public", ...(v.requires ? { requires: v.requires } : {}), ...(v.requires?.guard ? { guard: v.requires.guard.procedure } : {}), ...listFields(v.uiSchema) }])),
136
- guardView: async (procedure, caller, input, cause) => { await invoke({ procedure, input, caller, cause: child(cause, procedure) }, true); },
137
- });
138
- // ---- invocation ---------------------------------------------------------------------------------------------------------------
139
- const zod = new Map();
140
- const schemaOf = (key, schema) => zod.get(key) ?? (zod.set(key, jsonSchemaToZod(schema)), zod.get(key));
141
- const check = (kind, name, path, value, schema) => {
142
- const r = safeParseJson(schemaOf(`${name}#${kind}`, schema), value);
143
- if (r.success)
144
- return r.data;
145
- const { instancePath, message } = firstZodIssueAsJsonPointer(r.error);
146
- throw new DiagnosticError(makeDiagnostic({
147
- code: kind === "input" ? "INPUT_VALIDATION_FAILED" : "OUTPUT_VALIDATION_FAILED", phase: "runtime", severity: "error", path: `${path}#/${kind}${instancePath}`,
148
- // an output value is handler data the schema did not expect: it may hold what the schema meant to exclude, so it never reaches a wire
149
- ...(kind === "input" ? { value: readJsonPointer(value, instancePath) } : {}), expected: message,
150
- ...(kind === "output" ? { message: `Procedure '${name}' returned a value that does not match its declared output schema. This is a handler bug.` } : {}),
151
- }));
152
- };
153
- const readOnly = (s) => ({
154
- ...s, write: () => Promise.reject(fail("AUTH_DENIED", "store", "a guard or a before hook may not write", "runtime")),
155
- });
156
- async function invoke(inv, guard = false) {
157
- if (depthOf(inv.cause) > MAX_INVOCATION_DEPTH)
158
- throw fail("INVOCATION_DEPTH_EXCEEDED", `manifest:Procedure/${inv.procedure}`, `Procedures invoked more than ${MAX_INVOCATION_DEPTH} deep (hooks and ctx.invoke count)`, "runtime");
159
- const proc = Object.hasOwn(plan.procedures, inv.procedure) ? plan.procedures[inv.procedure] : undefined;
160
- const path = `manifest:Procedure/${inv.procedure}`;
161
- if (!proc)
162
- throw fail("PROCEDURE_NOT_FOUND", path, `unknown Procedure '${inv.procedure}'`, "runtime");
163
- const denial = evaluateAuthAll(proc.requires, inv.caller, path);
164
- if (denial)
165
- throw new DiagnosticError(denial);
166
- const input = check("input", inv.procedure, path, inv.input, proc.input);
167
- // a dynamic guard sees the validated input and the same caller, reads only, and may not itself be guarded
168
- const guardName = proc.requires?.guard?.procedure;
169
- if (guardName && !guard)
170
- await invoke({ procedure: guardName, input, caller: inv.caller, cause: child(inv.cause, guardName) }, true);
171
- const isBefore = inv.cause.kind === "lifecycle" && inv.cause.hook.startsWith("before_");
172
- const ro = guard || isBefore;
173
- if (ro && "sql" in proc.handler)
174
- throw fail("LIFECYCLE_TARGET_NOT_REF", path, "a guard or a before hook may not be an inline program", "runtime");
175
- let result;
176
- try {
177
- if ("ref" in proc.handler) {
178
- const bound = store.as(inv.caller, inv.cause); // writes chain to this invocation, so hooks they fire count toward the depth limit
179
- // only the system caller reaches TTL maintenance: no request can produce one (ADR-0032 decision 8)
180
- const scoped = inv.caller.kind === "system" && !ro ? { ...bound, sweepExpired: store.sweepExpired } : bound;
181
- const ctx = {
182
- caller: inv.caller, cause: inv.cause, env: args.env, waitUntil: (promise) => args.waitUntil?.(promise, inv.cause),
183
- store: ro ? readOnly(scoped) : scoped,
184
- invoke: (procedure, i) => (ro ? Promise.reject(fail("AUTH_DENIED", path, "a guard or a before hook may not invoke a Procedure", "runtime")) : invoke({ procedure, input: i, caller: inv.caller, cause: child(inv.cause, procedure) })),
185
- };
186
- result = await args.handlers[proc.handler.ref](input, ctx);
187
- }
188
- else {
189
- const { mode, bind } = bindFor(now(), inv.caller);
190
- const env = { executor, dialect, schemas: plan.schemas, mode, lifecycle };
191
- const ran = await runProcedure(env, { kind: "procedure", inputs: proc.inputs, ir: proc.handler.sql.stmts }, { caller: inv.caller, cause: inv.cause, bind: { ...bind, input: sqlInput(proc.input, input) } });
192
- result = { results: ran.rows };
193
- }
194
- }
195
- catch (e) {
196
- if (e instanceof DiagnosticError)
197
- throw e;
198
- if (e instanceof SqlRefusal)
199
- throw fail("INPUT_VALIDATION_FAILED", path, e.message, "runtime");
200
- console.error(`[mantle procedure ${inv.procedure}] unhandled failure`, e);
201
- throw fail("INTERNAL_ERROR", path, "An internal error occurred.", "runtime");
202
- }
203
- return check("output", inv.procedure, path, result, proc.output);
204
- }
205
- return {
206
- plan,
207
- store,
208
- invokeProcedure: (invocation) => invoke(invocation),
209
- bootReport: () => ({ fingerprint, coreVersion: CORE_VERSION }),
210
- ...(site ? { site } : {}),
211
- };
212
- }
213
- export { systemCaller };
214
- //# sourceMappingURL=createRuntime.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createRuntime.js","sourceRoot":"","sources":["../../../src/core/runtime/createRuntime.ts"],"names":[],"mappings":"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"}
@@ -1,34 +0,0 @@
1
- /**
2
- * `verifyPlan`: everything boot checks about an uploaded plan, plus every program through the storage's dialect, without a
3
- * database or the handlers (ADR-0034 decision 7: Cloud validates the IR and never parses SQL). Worker-safe: no SQL parser.
4
- */
5
- import { type Diagnostic } from "../../spec/kernel/index.js";
6
- import { type RuntimePlan } from "../../spec/domain/index.js";
7
- import type { MantleStorageAdapter } from "../service.js";
8
- /**
9
- * The most a plan `verifyPlan` checks may hold, checked before anything else: every check below is linear in these. Each is many
10
- * times what a real app declares (Mantle Cloud's Control plan: 8 Schemas of at most 8 fields, 10 Views, 59 Procedures, 79 Triggers).
11
- */
12
- export declare const PLAN_LIMITS: {
13
- readonly schemas: 256;
14
- readonly fieldsPerSchema: 256;
15
- readonly checksPerSchema: 32;
16
- readonly views: 1024;
17
- readonly procedures: 1024;
18
- readonly triggers: 2048;
19
- /** JSON objects and arrays in one program's IR (a check, a View, an inline Procedure): the allowlist walks at most `MAX_NODES` nodes, each a few of these */
20
- readonly programIrValues: number;
21
- };
22
- /**
23
- * The plan's diagnostics: a plan past `PLAN_LIMITS` (checked first, and alone), what boot refuses before storage (version,
24
- * fingerprint, dialect, Triggers, guard and hook targets), what the CLI's own validators refuse of the manifests the plan stands
25
- * for (`planShape`: its JSON Schemas, fields, TTL, graph checks), and every
26
- * Schema check, View and inline Procedure through the storage's dialect (with its `restrict`) and the policy rewrite. Empty
27
- * means every program reads and writes only through the policy rewrite, in the shapes the dialect allows. It does not type-check
28
- * the SQL: a statement the database refuses (a function's argument count or type, an operand type) fails that call, or boot for
29
- * a check, with the database's error, never past the policy. Only `storage.dialect` is read, so storage's own refusals (a
30
- * reserved table name, a column type it cannot store) still surface where the plan first boots against its database.
31
- * Handlers are not checked (the host binds them); enabled schedule Triggers are allowed (the host decides whether it wires them).
32
- */
33
- export declare function verifyPlan(plan: RuntimePlan, storage: Pick<MantleStorageAdapter, "dialect">): Promise<readonly Diagnostic[]>;
34
- //# sourceMappingURL=verifyPlan.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verifyPlan.d.ts","sourceRoot":"","sources":["../../../src/core/runtime/verifyPlan.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAmC,KAAK,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC9F,OAAO,EAA6P,KAAK,WAAW,EAA8E,MAAM,4BAA4B,CAAC;AAMrY,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAG1D;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;;IAOtB,6JAA6J;;CAErJ,CAAC;AAMX;;;;;;;;;;GAUG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC,CAQlI"}
@@ -1,301 +0,0 @@
1
- /**
2
- * `verifyPlan`: everything boot checks about an uploaded plan, plus every program through the storage's dialect, without a
3
- * database or the handlers (ADR-0034 decision 7: Cloud validates the IR and never parses SQL). Worker-safe: no SQL parser.
4
- */
5
- import { DiagnosticError, makeDiagnostic } from "../../spec/kernel/index.js";
6
- import { MAX_TTL_SECONDS, ManifestParseError, NATIVE_OUTPUT_TYPES, SqlRefusal, checkViewAdminUi, checkShapeProblem, fieldTypes, storageColumnClash, storageColumns, isFieldType, isTtlSeconds, mcpTools, sideTableClashes } from "../../spec/domain/index.js";
7
- import { validateJsonSchema } from "../../spec/domain/service/SchemaSpecChecks.js";
8
- import { checkGuards, checkProcedureTarget, checkTriggerRefs } from "../../spec/domain/service/TriggerGraphChecks.js";
9
- import { MAX_NODES, schemaColumns } from "../sql/allowlist.js";
10
- import { compileProgram } from "../sql/compile.js";
11
- import { outName } from "../sql/run.js";
12
- import { createMantleRuntime } from "./createRuntime.js";
13
- /**
14
- * The most a plan `verifyPlan` checks may hold, checked before anything else: every check below is linear in these. Each is many
15
- * times what a real app declares (Mantle Cloud's Control plan: 8 Schemas of at most 8 fields, 10 Views, 59 Procedures, 79 Triggers).
16
- */
17
- export const PLAN_LIMITS = {
18
- schemas: 256,
19
- fieldsPerSchema: 256,
20
- checksPerSchema: 32,
21
- views: 1024,
22
- procedures: 1024,
23
- triggers: 2048,
24
- /** JSON objects and arrays in one program's IR (a check, a View, an inline Procedure): the allowlist walks at most `MAX_NODES` nodes, each a few of these */
25
- programIrValues: 8 * MAX_NODES,
26
- };
27
- const BOOTED = Symbol("booted");
28
- const refused = (path, message) => makeDiagnostic({ code: "INPUT_VALIDATION_FAILED", phase: "boot", severity: "error", path, message });
29
- /**
30
- * The plan's diagnostics: a plan past `PLAN_LIMITS` (checked first, and alone), what boot refuses before storage (version,
31
- * fingerprint, dialect, Triggers, guard and hook targets), what the CLI's own validators refuse of the manifests the plan stands
32
- * for (`planShape`: its JSON Schemas, fields, TTL, graph checks), and every
33
- * Schema check, View and inline Procedure through the storage's dialect (with its `restrict`) and the policy rewrite. Empty
34
- * means every program reads and writes only through the policy rewrite, in the shapes the dialect allows. It does not type-check
35
- * the SQL: a statement the database refuses (a function's argument count or type, an operand type) fails that call, or boot for
36
- * a check, with the database's error, never past the policy. Only `storage.dialect` is read, so storage's own refusals (a
37
- * reserved table name, a column type it cannot store) still surface where the plan first boots against its database.
38
- * Handlers are not checked (the host binds them); enabled schedule Triggers are allowed (the host decides whether it wires them).
39
- */
40
- export async function verifyPlan(plan, storage) {
41
- // the plan is untrusted input: a shape Core does not expect is a refusal, never an exception
42
- try {
43
- return await verify(plan, storage);
44
- }
45
- catch (e) {
46
- if (e instanceof DiagnosticError)
47
- return e.diagnostics;
48
- return [makeDiagnostic({ code: "INVALID_MANIFEST_ENVELOPE", phase: "boot", severity: "error", path: "plan", message: `the plan is malformed: ${e instanceof Error ? e.message : String(e)}` })];
49
- }
50
- }
51
- async function verify(plan, storage) {
52
- const tooLarge = bounds(plan);
53
- if (tooLarge.length)
54
- return tooLarge;
55
- const refs = Object.values(plan.procedures).flatMap((p) => ("ref" in p.handler ? [p.handler.ref] : []));
56
- try {
57
- // boot's own checks, stopped where storage would be prepared
58
- await createMantleRuntime({ plan, handlers: Object.fromEntries(refs.map((r) => [r, () => undefined])), schedules: true, storage: { dialect: storage.dialect, prepare: () => Promise.reject(BOOTED) } });
59
- }
60
- catch (e) {
61
- if (e !== BOOTED)
62
- throw e;
63
- }
64
- const out = [...planShape(plan)];
65
- // what the allowlist reads off every Schema, once for the plan rather than once per program
66
- const columns = schemaColumns(plan.schemas);
67
- const check = (path, stmts, inputs, kind, mode) => {
68
- try {
69
- return compileProgram(stmts, { dialect: storage.dialect, schemas: plan.schemas, columns, inputs, kind, mode });
70
- }
71
- catch (e) {
72
- // the dialect's refusals arrive as a DiagnosticError, the policy rewrite's as a SqlRefusal; the runtime refuses both
73
- if (e instanceof DiagnosticError)
74
- out.push(...e.diagnostics.map((d) => ({ ...d, path })));
75
- else if (e instanceof SqlRefusal)
76
- out.push(refused(path, `${e.code}: ${e.message}`));
77
- else
78
- throw e;
79
- return undefined;
80
- }
81
- };
82
- // a check is printed into the table's DDL and runs on every write: checked as the CLI compiles it, the WHERE of a read of its own Schema
83
- for (const [name, schema] of Object.entries(plan.schemas))
84
- for (const [i, where] of (schema.checks ?? []).entries()) {
85
- const path = `plan#/schemas/${name}/checks/${i}`;
86
- const problem = checkShapeProblem(where, storageColumns(schema));
87
- if (problem)
88
- out.push(refused(path, `SQL_SHAPE: ${problem}`));
89
- else
90
- check(path, [{ SelectStmt: { targetList: [{ ResTarget: { val: { A_Const: { ival: { ival: 1 } } } } }], fromClause: [{ RangeVar: { relname: name.toLowerCase(), inh: true, relpersistence: "p", mantle: "table" } }], whereClause: where, limitOption: "LIMIT_OPTION_DEFAULT", op: "SETOP_NONE" } }], {}, "view", "caller");
91
- }
92
- for (const [name, v] of Object.entries(plan.views)) {
93
- const compiled = check(`plan#/views/${name}`, v.stmts, v.inputs, "view", v.surface === "public" ? "public" : "caller");
94
- // searchFields and filterFields are matched against the outputs of the statement the policy wrote, by runView's rule
95
- const outputs = (compiled?.[0]?.ast.SelectStmt?.targetList ?? []).map(outName);
96
- const list = listOf(v.uiSchema);
97
- if (compiled)
98
- for (const key of ["searchFields", "filterFields"])
99
- for (const f of Array.isArray(list?.[key]) ? list[key] : [])
100
- if (typeof f === "string" && !outputs.includes(f) && !outputs.includes(f.toLowerCase()))
101
- out.push(refused(`plan#/views/${name}/uiSchema/list/${key}`, `VIEW_UI_INVALID: ${JSON.stringify(f)} is not an output of the View`));
102
- }
103
- for (const [name, p] of Object.entries(plan.procedures))
104
- if ("sql" in p.handler)
105
- check(`plan#/procedures/${name}`, p.handler.sql.stmts, p.inputs, "procedure", "caller");
106
- return out;
107
- }
108
- /** JSON objects and arrays in `value`, counted up to `cap` (past it the count stops): iterative, so any depth is safe. */
109
- function jsonValues(value, cap) {
110
- let n = 0;
111
- const stack = [value];
112
- while (stack.length && n <= cap) {
113
- const v = stack.pop();
114
- if (v === null || typeof v !== "object")
115
- continue;
116
- n++;
117
- for (const c of Array.isArray(v) ? v : Object.values(v))
118
- if (c !== null && typeof c === "object")
119
- stack.push(c);
120
- }
121
- return n;
122
- }
123
- /** The plan within `PLAN_LIMITS`: one diagnostic per limit passed, before any check reads more of the plan. */
124
- function bounds(plan) {
125
- const out = [];
126
- const over = (path, what, limit) => out.push(makeDiagnostic({ code: "RESOURCE_EXHAUSTED", phase: "boot", severity: "error", path, message: `the plan has more than ${limit} ${what}` }));
127
- const count = (x) => (x && typeof x === "object" ? Object.keys(x).length : 0);
128
- const L = PLAN_LIMITS;
129
- if (count(plan.schemas) > L.schemas)
130
- over("plan#/schemas", "Schemas", L.schemas);
131
- if (count(plan.views) > L.views)
132
- over("plan#/views", "Views", L.views);
133
- if (count(plan.procedures) > L.procedures)
134
- over("plan#/procedures", "Procedures", L.procedures);
135
- if (count(plan.triggers) > L.triggers)
136
- over("plan#/triggers", "Triggers", L.triggers);
137
- if (out.length)
138
- return out;
139
- const program = (path, ir) => { if (jsonValues(ir, L.programIrValues) > L.programIrValues)
140
- over(path, "IR values in one program", L.programIrValues); };
141
- for (const [name, s] of Object.entries(plan.schemas)) {
142
- if (count(s?.fields) > L.fieldsPerSchema)
143
- over(`plan#/schemas/${name}/fields`, "fields in one Schema", L.fieldsPerSchema);
144
- const checks = Array.isArray(s?.checks) ? s.checks : [];
145
- if (checks.length > L.checksPerSchema)
146
- over(`plan#/schemas/${name}/checks`, "checks in one Schema", L.checksPerSchema);
147
- else
148
- checks.forEach((c, i) => program(`plan#/schemas/${name}/checks/${i}`, c));
149
- }
150
- for (const [name, v] of Object.entries(plan.views))
151
- program(`plan#/views/${name}`, v?.stmts);
152
- for (const [name, p] of Object.entries(plan.procedures))
153
- if (p?.handler && "sql" in p.handler)
154
- program(`plan#/procedures/${name}`, p.handler.sql?.stmts);
155
- return out;
156
- }
157
- /** The CLI's own JSON Schema check (depth, size, `$ref`, `pattern`, `enum`) on one of the plan's: its refusal, or undefined. */
158
- function jsonSchemaProblem(schema, path, kind, name) {
159
- try {
160
- validateJsonSchema(schema, undefined, kind, name, ""); // no document index: the path names the schema
161
- return undefined;
162
- }
163
- catch (e) {
164
- if (!(e instanceof ManifestParseError))
165
- throw e;
166
- return refused(`${path}${e.pointer ?? ""}`, `${e.code}: ${e.message}`);
167
- }
168
- }
169
- /** Whether two string maps hold the same entries. */
170
- const sameMap = (a, b) => !!a && typeof a === "object" && Object.keys(a).length === Object.keys(b).length && Object.entries(b).every(([k, v]) => Object.hasOwn(a, k) && a[k] === v);
171
- /**
172
- * The CLI's graph checks (the linker's), run on the plan's equivalents of the manifests they read: http Trigger paths under
173
- * `/api/` and unique per method, lifecycle Triggers that name a Schema as declared, schedule targets a system caller can call,
174
- * guards, and Procedure targets. Only errors: a warning is the author's to see.
175
- */
176
- function graphChecks(plan) {
177
- const procedures = new Map(Object.entries(plan.procedures).map(([name, p]) => [name, { kind: "Procedure", metadata: { name }, spec: { ...p, handler: "ref" in p.handler ? { ref: p.handler.ref } : { sql: p.handler.source } } }]));
178
- const views = Object.entries(plan.views).map(([name, v]) => ({ kind: "View", metadata: { name }, spec: v }));
179
- const triggers = Object.entries(plan.triggers).map(([name, t]) => ({ kind: "Trigger", metadata: { name }, spec: { source: t.source, target: { procedure: t.procedure } } }));
180
- const schemas = new Map(Object.values(plan.schemas).map((s) => [s.name, { kind: "Schema", metadata: { name: s.name }, spec: { schema: s.schema } }]));
181
- const PLURAL = { Trigger: "triggers", Procedure: "procedures", View: "views", Schema: "schemas" };
182
- return [
183
- ...[...procedures.values()].flatMap((p) => checkProcedureTarget(p, schemas)),
184
- ...checkGuards([...procedures.values(), ...views], procedures),
185
- ...checkTriggerRefs(triggers, procedures, undefined, schemas),
186
- ].filter((d) => d.severity === "error").map((d) => {
187
- // `manifest:Kind/name#/spec/...` names the plan's entry
188
- const m = /^manifest:(\w+)\/(.*)#(?:\/spec)?(.*)$/s.exec(d.path);
189
- return m && PLURAL[m[1]] ? { ...d, path: `plan#/${PLURAL[m[1]]}/${m[2]}${m[3]}` } : d;
190
- });
191
- }
192
- const NATIVE = new Set(["id", "version", "status", "author_id", "created_at", "updated_at"]);
193
- const listOf = (uiSchema) => uiSchema?.list;
194
- /**
195
- * What the CLI guarantees about the plan's other fields, checked in one pass: a Schema's names as the CLI writes them (its key,
196
- * fields, scope, ttl, search, unique and index columns lower case, each a declared field or a native column; SQL folds names, the
197
- * checks compare folded names and storage quotes them, so a plan whose `Items` and `items`, or scope `Owner` and field `owner`, are
198
- * two things to one layer and one to another is refused), its field types and TTL as storage takes them, search and geo tables that
199
- * name one object each; a View's `columns` and Admin list as Store and Admin read them; and MCP tools that do not collide.
200
- */
201
- function planShape(plan) {
202
- const out = [];
203
- const isName = (x) => typeof x === "string" && x.length > 0 && x === x.toLowerCase();
204
- // every JSON Schema as the CLI checks a manifest's: Store and invocation validate values against them, and a `$ref` cycle or an
205
- // exponential `pattern` there would throw or stall on every call
206
- let schemasOk = true;
207
- const jsonSchema = (schema, path, kind, name) => {
208
- const problem = jsonSchemaProblem(schema, path, kind, name);
209
- if (problem)
210
- (out.push(problem), (schemasOk = false));
211
- return !problem;
212
- };
213
- // a program's `inputs` are its input's properties typed as the CLI types them: the allowlist and binds read one, Store the other
214
- const inputs = (path, input, declared) => {
215
- if (!sameMap(declared, fieldTypes(input)))
216
- out.push(refused(`${path}/inputs`, "SQL_SHAPE: inputs are the input's properties, typed as the CLI types them"));
217
- };
218
- for (const [name, v] of Object.entries(plan.views)) {
219
- const path = `plan#/views/${name}`;
220
- if (v.input === undefined || jsonSchema(v.input, `${path}/input`, "View", name))
221
- inputs(path, v.input, v.inputs);
222
- }
223
- for (const [name, p] of Object.entries(plan.procedures)) {
224
- const path = `plan#/procedures/${name}`;
225
- if (jsonSchema(p.input, `${path}/input`, "Procedure", name))
226
- inputs(path, p.input, p.inputs);
227
- jsonSchema(p.output, `${path}/output`, "Procedure", name);
228
- }
229
- for (const [key, s] of Object.entries(plan.schemas)) {
230
- const bad = (what) => out.push(refused(`plan#/schemas/${key}`, `SQL_SHAPE: ${what}`));
231
- const fields = s.fields ?? {};
232
- // the columns are the JSON Schema's properties, typed and named as the CLI writes them (no two that fold to one name)
233
- if (jsonSchema(s.schema, `plan#/schemas/${key}/schema`, "Schema", typeof s.name === "string" ? s.name : key)) {
234
- const props = Object.keys(s.schema.properties ?? {});
235
- if (!sameMap(fields, fieldTypes(s.schema)) || Object.keys(fields).length !== props.length)
236
- bad("fields are the JSON Schema's properties, typed as the CLI types them");
237
- if (!sameMap(s.names, Object.fromEntries(props.map((n) => [n.toLowerCase(), n]))))
238
- bad("names map each field to its property's name");
239
- }
240
- // a column storage creates: a declared field that is one column (a geo field is two), or a native one (`status` only when publishing)
241
- const column = (x) => isName(x) && (Object.hasOwn(fields, x) ? fields[x] !== "geo" : NATIVE.has(x) && (x !== "status" || !!s.publishing));
242
- if (!isName(key) || typeof s.name !== "string" || s.name.toLowerCase() !== key)
243
- bad("a Schema's key is its name in lower case");
244
- for (const [f, t] of Object.entries(fields))
245
- if (!isName(f) || NATIVE.has(f) || !isFieldType(t))
246
- bad(`field ${JSON.stringify(f)} is a lower-case name with a Mantle type`);
247
- const clash = storageColumnClash(fields);
248
- if (clash)
249
- bad(`field ${JSON.stringify(clash)} is a column storage creates for another purpose`);
250
- for (const [f, n] of Object.entries(s.names ?? {}))
251
- if (!Object.hasOwn(fields, f) || typeof n !== "string" || n.toLowerCase() !== f)
252
- bad(`names[${JSON.stringify(f)}] names a field`);
253
- if (s.scope !== undefined && !(isName(s.scope) && Object.hasOwn(fields, s.scope)))
254
- bad("scope is a declared field");
255
- if ((s.ttl === undefined) !== (s.ttlSeconds === undefined))
256
- bad("ttl and ttlSeconds go together");
257
- // as the CLI requires: a declared date-time field. A native column (`version`, `created_at`) would expire every row at once
258
- if (s.ttl !== undefined && !(isName(s.ttl) && Object.hasOwn(fields, s.ttl) && fields[s.ttl] === "timestamptz"))
259
- bad("ttl is a declared date-time (timestamptz) field");
260
- if (s.ttlSeconds !== undefined && !isTtlSeconds(s.ttlSeconds))
261
- bad(`ttlSeconds is a whole number of seconds from 0 to ${MAX_TTL_SECONDS}`);
262
- // as the CLI requires: search columns are declared text fields, unique and index columns scalar columns storage creates
263
- if (s.search !== undefined && !(Array.isArray(s.search) && s.search.length && s.search.every((x) => isName(x) && fields[x] === "text")))
264
- bad("search columns are declared text fields");
265
- for (const cols of [...(s.unique ?? []), ...(s.indexes ?? [])])
266
- if (!Array.isArray(cols) || !cols.length || !cols.every((x) => column(x) && fields[x] !== "json"))
267
- bad("unique and index columns are scalar columns storage creates (no geo or json field, status only when publishing)");
268
- }
269
- for (const c of sideTableClashes(plan.schemas))
270
- out.push(refused(`plan#/schemas/${c.schema}`, `SQL_SHAPE: ${c.message}`));
271
- for (const [name, v] of Object.entries(plan.views)) {
272
- const path = `plan#/views/${name}`;
273
- // an output Store decodes and Admin labels as a Schema field: the Schema and the field (or a native timestamp) exist
274
- for (const [k, c] of Object.entries(v.columns ?? {})) {
275
- const s = c && typeof c.schema === "string" && Object.hasOwn(plan.schemas, c.schema) ? plan.schemas[c.schema] : undefined;
276
- if (!s || typeof c.field !== "string" || !(Object.hasOwn(s.fields ?? {}, c.field) || Object.hasOwn(NATIVE_OUTPUT_TYPES, c.field)))
277
- out.push(refused(`${path}/columns`, `SQL_SHAPE: columns[${JSON.stringify(k)}] names a Schema and one of its fields`));
278
- }
279
- // Admin's list, as the CLI checks it: an object of name lists, on a staff View
280
- if (v.uiSchema !== undefined) {
281
- const problem = checkViewAdminUi({ spec: { surface: v.surface, uiSchema: v.uiSchema } }).problems[0];
282
- if (problem)
283
- out.push(refused(`${path}${problem.pointer.replace(/^\/spec/, "")}`, `VIEW_UI_INVALID: ${problem.message}`));
284
- }
285
- }
286
- if (schemasOk)
287
- out.push(...graphChecks(plan));
288
- // the tools an MCP surface registers: a name two of them fold to, or a View input the tool reserves, fails the surface's build
289
- for (const surface of ["public", "staff"]) {
290
- try {
291
- mcpTools(plan, surface);
292
- }
293
- catch (e) {
294
- if (!(e instanceof TypeError))
295
- throw e;
296
- out.push(refused(`plan#/mcp/${surface}`, `MCP_TOOL_INVALID: ${e.message}`));
297
- }
298
- }
299
- return out;
300
- }
301
- //# sourceMappingURL=verifyPlan.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verifyPlan.js","sourceRoot":"","sources":["../../../src/core/runtime/verifyPlan.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,eAAe,EAAE,cAAc,EAAmB,MAAM,4BAA4B,CAAC;AAC9F,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,UAAU,EAAE,kBAAkB,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAyI,MAAM,4BAA4B,CAAC;AACrY,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,iDAAiD,CAAC;AACtH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAa,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,OAAO,EAAE,GAAG;IACZ,eAAe,EAAE,GAAG;IACpB,eAAe,EAAE,EAAE;IACnB,KAAK,EAAE,IAAI;IACX,UAAU,EAAE,IAAI;IAChB,QAAQ,EAAE,IAAI;IACd,6JAA6J;IAC7J,eAAe,EAAE,CAAC,GAAG,SAAS;CACtB,CAAC;AAEX,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAEhC,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,OAAe,EAAc,EAAE,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AAEpK;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAiB,EAAE,OAA8C;IAChG,6FAA6F;IAC7F,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,eAAe;YAAE,OAAO,CAAC,CAAC,WAAW,CAAC;QACvD,OAAO,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,2BAA2B,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,0BAA0B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAClM,CAAC;AACH,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,IAAiB,EAAE,OAA8C;IACrF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,QAAQ,CAAC,MAAM;QAAE,OAAO,QAAQ,CAAC;IACrC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxG,IAAI,CAAC;QACH,6DAA6D;QAC7D,MAAM,mBAAmB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1M,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,KAAK,MAAM;YAAE,MAAM,CAAC,CAAC;IAC5B,CAAC;IACD,MAAM,GAAG,GAAiB,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,4FAA4F;IAC5F,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,KAAyB,EAAE,MAAwC,EAAE,IAA0B,EAAE,IAAU,EAAE,EAAE;QAC1I,IAAI,CAAC;YACH,OAAO,cAAc,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACjH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,qHAAqH;YACrH,IAAI,CAAC,YAAY,eAAe;gBAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;iBACrF,IAAI,CAAC,YAAY,UAAU;gBAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;;gBAChF,MAAM,CAAC,CAAC;YACb,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC,CAAC;IACF,yIAAyI;IACzI,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;QACvD,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YACzD,MAAM,IAAI,GAAG,iBAAiB,IAAI,WAAW,CAAC,EAAE,CAAC;YACjD,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;YACjE,IAAI,OAAO;gBAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,OAAO,EAAE,CAAC,CAAC,CAAC;;gBACzD,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,sBAAsB,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAClU,CAAC;IACH,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,eAAe,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACvH,qHAAqH;QACrH,MAAM,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,UAAU,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC/E,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,QAAQ;YAAE,KAAK,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,cAAc,CAAU;gBACvE,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,GAAG,CAAe,CAAC,CAAC,CAAC,EAAE;oBAAE,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;wBAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,kBAAkB,GAAG,EAAE,EAAE,oBAAoB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAC7S,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,IAAI,KAAK,IAAI,CAAC,CAAC,OAAO;YAAE,KAAK,CAAC,oBAAoB,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IACzK,OAAO,GAAG,CAAC;AACb,CAAC;AAED,0HAA0H;AAC1H,SAAS,UAAU,CAAC,KAAc,EAAE,GAAW;IAC7C,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,MAAM,KAAK,GAAc,CAAC,KAAK,CAAC,CAAC;IACjC,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,SAAS;QAClD,CAAC,EAAE,CAAC;QACJ,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAAE,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClH,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,+GAA+G;AAC/G,SAAS,MAAM,CAAC,IAAiB;IAC/B,MAAM,GAAG,GAAiB,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,IAAY,EAAE,KAAa,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,0BAA0B,KAAK,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IACjN,MAAM,KAAK,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvF,MAAM,CAAC,GAAG,WAAW,CAAC;IACtB,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO;QAAE,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IACjF,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK;QAAE,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACvE,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,UAAU;QAAE,IAAI,CAAC,kBAAkB,EAAE,YAAY,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;IAChG,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ;QAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;IACtF,IAAI,GAAG,CAAC,MAAM;QAAE,OAAO,GAAG,CAAC;IAC3B,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAW,EAAE,EAAE,GAAG,IAAI,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,eAAe;QAAE,IAAI,CAAC,IAAI,EAAE,0BAA0B,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IACzK,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACrD,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,eAAe;YAAE,IAAI,CAAC,iBAAiB,IAAI,SAAS,EAAE,sBAAsB,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC;QAC1H,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,eAAe;YAAE,IAAI,CAAC,iBAAiB,IAAI,SAAS,EAAE,sBAAsB,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC;;YAClH,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,iBAAiB,IAAI,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACjF,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,eAAe,IAAI,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7F,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,IAAI,CAAC,EAAE,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,OAAO;YAAE,OAAO,CAAC,oBAAoB,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACzJ,OAAO,GAAG,CAAC;AACb,CAAC;AAED,gIAAgI;AAChI,SAAS,iBAAiB,CAAC,MAAe,EAAE,IAAY,EAAE,IAAqC,EAAE,IAAY;IAC3G,IAAI,CAAC;QACH,kBAAkB,CAAC,MAAM,EAAE,SAA8B,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,+CAA+C;QAC3H,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,CAAC,CAAC,YAAY,kBAAkB,CAAC;YAAE,MAAM,CAAC,CAAC;QAChD,OAAO,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACzE,CAAC;AACH,CAAC;AAED,qDAAqD;AACrD,MAAM,OAAO,GAAG,CAAC,CAAU,EAAE,CAAmC,EAAE,EAAE,CAClE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAK,CAA6B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAEzL;;;;GAIG;AACH,SAAS,WAAW,CAAC,IAAiB;IACpC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,EAAkC,CAAC,CAAC,CAAC,CAAC;IACpQ,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAA4B,CAAC,CAAC;IACxI,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,EAAE,EAAE,CAA+B,CAAC,CAAC;IAC3M,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAA+B,CAAC,CAAC,CAAC,CAAC;IACnL,MAAM,MAAM,GAA2B,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC1H,OAAO;QACL,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC5E,GAAG,WAAW,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC,EAAE,UAAU,CAAC;QAC9D,GAAG,gBAAgB,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC;KAC9D,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAChD,wDAAwD;QACxD,MAAM,CAAC,GAAG,yCAAyC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1F,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC;AAC7F,MAAM,MAAM,GAAG,CAAC,QAAiB,EAAE,EAAE,CAAE,QAA2D,EAAE,IAAI,CAAC;AAEzG;;;;;;GAMG;AACH,SAAS,SAAS,CAAC,IAAiB;IAClC,MAAM,GAAG,GAAiB,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,CAAC,CAAU,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IAC3G,gIAAgI;IAChI,iEAAiE;IACjE,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,MAAM,UAAU,GAAG,CAAC,MAAe,EAAE,IAAY,EAAE,IAAqC,EAAE,IAAY,EAAE,EAAE;QACxG,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5D,IAAI,OAAO;YAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,OAAO,CAAC;IAClB,CAAC,CAAC;IACF,iIAAiI;IACjI,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,KAA6B,EAAE,QAAiB,EAAE,EAAE;QAChF,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,SAAS,EAAE,2EAA2E,CAAC,CAAC,CAAC;IAC9J,CAAC,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,GAAG,eAAe,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,IAAI,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC;YAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IACnH,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,GAAG,oBAAoB,IAAI,EAAE,CAAC;QACxC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,IAAI,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC;YAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QAC7F,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,EAAE,EAAE,cAAc,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9F,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;QAC9B,sHAAsH;QACtH,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,iBAAiB,GAAG,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7G,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;YACrD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;gBAAE,GAAG,CAAC,sEAAsE,CAAC,CAAC;YACvK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAE,GAAG,CAAC,6CAA6C,CAAC,CAAC;QACxI,CAAC;QACD,sIAAsI;QACtI,MAAM,MAAM,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QACnJ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,GAAG;YAAE,GAAG,CAAC,0CAA0C,CAAC,CAAC;QAChI,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;gBAAE,GAAG,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,0CAA0C,CAAC,CAAC;QAC3K,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,KAAK;YAAE,GAAG,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACjG,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC;gBAAE,GAAG,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;QACtL,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YAAE,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACpH,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC;YAAE,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAClG,4HAA4H;QAC5H,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,aAAa,CAAC;YAAE,GAAG,CAAC,iDAAiD,CAAC,CAAC;QACvK,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC;YAAE,GAAG,CAAC,qDAAqD,eAAe,EAAE,CAAC,CAAC;QAC3I,wHAAwH;QACxH,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;YAAE,GAAG,CAAC,yCAAyC,CAAC,CAAC;QACxL,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAW,CAAC,KAAK,MAAM,CAAC;gBAAE,GAAG,CAAC,iHAAiH,CAAC,CAAC;IACtS,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAE1H,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,GAAG,eAAe,IAAI,EAAE,CAAC;QACnC,qHAAqH;QACrH,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;YACnD,MAAM,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3H,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC/H,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,UAAU,EAAE,sBAAsB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC;QAC1H,CAAC;QACH,+EAA+E;QAC/E,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,EAA6B,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAChI,IAAI,OAAO;gBAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,oBAAoB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC5H,CAAC;IACH,CAAC;IAED,IAAI,SAAS;QAAE,GAAG,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAE9C,+HAA+H;IAC/H,KAAK,MAAM,OAAO,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAU,EAAE,CAAC;QACnD,IAAI,CAAC;YACH,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,CAAC,CAAC,YAAY,SAAS,CAAC;gBAAE,MAAM,CAAC,CAAC;YACvC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,OAAO,EAAE,EAAE,qBAAqB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}