@aotter/mantle 0.2.0-alpha.5 → 0.2.0-alpha.7

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 (932) hide show
  1. package/README.md +152 -45
  2. package/dist/auth/adapter.d.ts +32 -0
  3. package/dist/auth/adapter.js +285 -0
  4. package/dist/auth/admin.d.ts +3 -0
  5. package/dist/auth/admin.js +21 -0
  6. package/dist/auth/caller.d.ts +86 -0
  7. package/dist/auth/caller.js +154 -0
  8. package/dist/auth/hardening.d.ts +24 -0
  9. package/dist/auth/hardening.js +40 -0
  10. package/dist/auth/identity.d.ts +121 -0
  11. package/dist/auth/identity.js +203 -0
  12. package/dist/auth/oauth.d.ts +31 -0
  13. package/dist/auth/oauth.js +124 -0
  14. package/dist/auth/resource-seeds.js +10 -0
  15. package/dist/auth/routes.d.ts +32 -0
  16. package/dist/auth/{createAuthRoutes.js → routes.js} +130 -35
  17. package/dist/build/compiler.d.ts +790 -0
  18. package/dist/build/compiler.js +6971 -0
  19. package/dist/{spec → build/spec}/domain/model/ManifestGrammar.d.ts +28 -42
  20. package/dist/{spec → build/spec}/domain/model/RuntimePlan.d.ts +77 -3
  21. package/dist/{spec → build/spec}/domain/model/SqlIr.d.ts +35 -6
  22. package/dist/build/spec/domain/model/UserFields.d.ts +20 -0
  23. package/dist/{spec → build/spec}/domain/service/PlanFingerprint.d.ts +2 -1
  24. package/dist/{spec → build/spec}/kernel/diagnostic.d.ts +1 -30
  25. package/dist/bun/assets.d.ts +2 -0
  26. package/dist/bun/assets.js +24 -0
  27. package/dist/domain/adminOrder.js +24 -0
  28. package/dist/domain/columns.js +55 -0
  29. package/dist/domain/describe/chunk-ZIQVLA7X.js +363 -0
  30. package/dist/domain/describe/index.d.ts +58 -0
  31. package/dist/domain/describe/index.js +115 -0
  32. package/dist/domain/describe/target-hash.d.ts +8 -0
  33. package/dist/domain/describe/target-hash.js +12 -0
  34. package/dist/domain/describe/targets.d.ts +40 -0
  35. package/dist/domain/entry.js +33 -0
  36. package/dist/domain/generated-tools.js +17 -0
  37. package/dist/domain/generation.d.ts +16 -0
  38. package/dist/domain/generation.js +1 -0
  39. package/dist/domain/input.js +17 -0
  40. package/dist/domain/model.js +1 -0
  41. package/dist/domain/paging.js +204 -0
  42. package/dist/domain/recipes.js +19 -0
  43. package/dist/domain/userReferences.js +5 -0
  44. package/dist/domain/wireScalars.js +47 -0
  45. package/dist/infrastructure/adminEntries.js +153 -0
  46. package/dist/infrastructure/adminPaging.js +72 -0
  47. package/dist/infrastructure/artifacts.js +71 -0
  48. package/dist/infrastructure/authSchema.js +83 -0
  49. package/dist/infrastructure/bundle.js +84 -0
  50. package/dist/infrastructure/cli.js +101 -0
  51. package/dist/infrastructure/generate.d.ts +14 -0
  52. package/dist/infrastructure/generate.js +174 -0
  53. package/dist/infrastructure/generateAuth.d.ts +8 -0
  54. package/dist/infrastructure/generateAuth.js +17 -0
  55. package/dist/infrastructure/inputs.js +36 -0
  56. package/dist/infrastructure/wrangler.js +71 -0
  57. package/dist/kernel/authorization.d.ts +4 -0
  58. package/dist/kernel/authorization.js +16 -0
  59. package/dist/kernel/binds.d.ts +51 -0
  60. package/dist/kernel/binds.js +45 -0
  61. package/dist/kernel/caller-identity.d.ts +24 -0
  62. package/dist/kernel/caller-identity.js +22 -0
  63. package/dist/kernel/contract-error.d.ts +12 -0
  64. package/dist/kernel/contract-error.js +14 -0
  65. package/dist/kernel/contracts.d.ts +139 -0
  66. package/dist/kernel/contracts.js +92 -0
  67. package/dist/{spec/domain/service/CloudflareCron.d.ts → kernel/cron.d.ts} +0 -1
  68. package/dist/{spec/domain/service/CloudflareCron.js → kernel/cron.js} +1 -6
  69. package/dist/kernel/dialect/common.d.ts +39 -0
  70. package/dist/kernel/dialect/common.js +6 -0
  71. package/dist/kernel/dialect/postgres.d.ts +16 -0
  72. package/dist/kernel/dialect/postgres.js +18 -0
  73. package/dist/kernel/dialect/sqlite.d.ts +20 -0
  74. package/dist/kernel/dialect/sqlite.js +34 -0
  75. package/dist/kernel/driver/bun-sqlite.d.ts +19 -0
  76. package/dist/kernel/driver/bun-sqlite.js +77 -0
  77. package/dist/kernel/driver/d1.d.ts +24 -0
  78. package/dist/kernel/driver/d1.js +22 -0
  79. package/dist/kernel/driver/postgres.d.ts +25 -0
  80. package/dist/kernel/driver/postgres.js +95 -0
  81. package/dist/kernel/driver/transaction-context.d.ts +10 -0
  82. package/dist/kernel/driver/transaction-context.js +29 -0
  83. package/dist/kernel/email.d.ts +28 -0
  84. package/dist/{auth/emailTemplates.js → kernel/email.js} +13 -2
  85. package/dist/kernel/host-access.d.ts +10 -0
  86. package/dist/kernel/host-access.js +65 -0
  87. package/dist/kernel/host-caller.d.ts +38 -0
  88. package/dist/kernel/host-caller.js +55 -0
  89. package/dist/kernel/json-body.d.ts +4 -0
  90. package/dist/kernel/json-body.js +44 -0
  91. package/dist/kernel/mcp-apps.d.ts +49 -0
  92. package/dist/kernel/mcp-apps.js +40 -0
  93. package/dist/kernel/mcp-call.d.ts +5 -0
  94. package/dist/kernel/mcp-call.js +25 -0
  95. package/dist/kernel/mcp-handler.js +288 -0
  96. package/dist/kernel/mcp.d.ts +101 -0
  97. package/dist/kernel/mcp.js +25 -0
  98. package/dist/kernel/media.d.ts +27 -0
  99. package/dist/kernel/media.js +216 -0
  100. package/dist/kernel/paging.d.ts +55 -0
  101. package/dist/kernel/paging.js +95 -0
  102. package/dist/kernel/publishing.d.ts +4 -0
  103. package/dist/kernel/publishing.js +16 -0
  104. package/dist/{cloudflare/r2Media.d.ts → kernel/r2-media.d.ts} +4 -5
  105. package/dist/kernel/r2-media.js +78 -0
  106. package/dist/kernel/rest-dispatch.js +38 -0
  107. package/dist/kernel/rest-router.js +63 -0
  108. package/dist/kernel/rest.d.ts +58 -0
  109. package/dist/kernel/rest.js +41 -0
  110. package/dist/kernel/scalars.d.ts +6 -0
  111. package/dist/kernel/scalars.js +43 -0
  112. package/dist/kernel/search.js +5 -0
  113. package/dist/{core/site.d.ts → kernel/site-types.d.ts} +38 -9
  114. package/dist/kernel/site-types.js +1 -0
  115. package/dist/kernel/site.d.ts +41 -0
  116. package/dist/kernel/site.js +32 -0
  117. package/dist/kernel/store.d.ts +165 -0
  118. package/dist/kernel/store.js +257 -0
  119. package/dist/kernel/surface.d.ts +10 -0
  120. package/dist/kernel/surface.js +19 -0
  121. package/dist/kernel/sweep.d.ts +17 -0
  122. package/dist/kernel/sweep.js +27 -0
  123. package/dist/kernel/translations.d.ts +1 -0
  124. package/dist/kernel/translations.js +13 -0
  125. package/dist/kernel/user-caller.d.ts +31 -0
  126. package/dist/kernel/user-caller.js +67 -0
  127. package/dist/kernel/user-field-name.js +3 -0
  128. package/dist/kernel/user-fields.d.ts +34 -0
  129. package/dist/kernel/user-fields.js +71 -0
  130. package/dist/kernel/validation.d.ts +15 -0
  131. package/dist/kernel/validation.js +54 -0
  132. package/dist/kernel/web-gateway.js +68 -0
  133. package/dist/kernel/web-head.js +15 -0
  134. package/dist/kernel/web-response.js +8 -0
  135. package/dist/kernel/web.d.ts +75 -0
  136. package/dist/kernel/web.js +155 -0
  137. package/dist/kernel/where.js +27 -0
  138. package/dist/testing/index.d.ts +1 -37
  139. package/dist/testing/index.js +1 -43
  140. package/dist/usecase/adminBindings.js +142 -0
  141. package/dist/usecase/adminDescriptors.js +153 -0
  142. package/dist/usecase/generate.js +164 -0
  143. package/dist/usecase/handlers.js +21 -0
  144. package/dist/usecase/mcp-media.js +17 -0
  145. package/dist/usecase/mcp.js +96 -0
  146. package/dist/usecase/paging.js +72 -0
  147. package/dist/usecase/publishing.js +63 -0
  148. package/dist/usecase/refusals.js +27 -0
  149. package/dist/usecase/rest.js +54 -0
  150. package/dist/usecase/search.js +7 -0
  151. package/dist/usecase/site.js +40 -0
  152. package/dist/usecase/stores.js +62 -0
  153. package/dist/usecase/translations.js +78 -0
  154. package/dist/usecase/ttl.js +20 -0
  155. package/dist/usecase/validation.js +132 -0
  156. package/dist/usecase/web.js +22 -0
  157. package/docs/examples/README.md +31 -16
  158. package/docs/examples/app-shell/README.md +48 -0
  159. package/docs/examples/app-shell/package.json +34 -0
  160. package/docs/examples/app-shell/pnpm-workspace.yaml +8 -0
  161. package/docs/examples/app-shell/smoke-kit.mjs +100 -0
  162. package/docs/examples/app-shell/src/admin.ts +10 -0
  163. package/docs/examples/app-shell/src/auth.ts +55 -0
  164. package/docs/examples/app-shell/src/handlers.ts +5 -0
  165. package/docs/examples/app-shell/src/index.ts +4 -0
  166. package/docs/examples/app-shell/src/routes.ts +13 -0
  167. package/docs/examples/app-shell/src/schedule.ts +8 -0
  168. package/docs/examples/app-shell/src/service.ts +70 -0
  169. package/docs/examples/app-shell/src/sign-in.ts +41 -0
  170. package/docs/examples/app-shell/src/signup.ts +8 -0
  171. package/docs/examples/{reference-service → app-shell}/tsconfig.json +2 -1
  172. package/docs/examples/app-shell/worker-configuration.d.ts +22 -0
  173. package/docs/examples/app-shell/wrangler.jsonc +61 -0
  174. package/docs/examples/club-events/README.md +60 -0
  175. package/docs/examples/club-events/manifests/club-events.yaml +225 -0
  176. package/docs/examples/club-events/smoke.mjs +121 -0
  177. package/docs/examples/club-events/src/handlers.ts +25 -0
  178. package/docs/examples/club-events/src/signup.ts +9 -0
  179. package/docs/examples/generated-web/README.md +74 -0
  180. package/docs/examples/generated-web/posts.yaml +38 -0
  181. package/docs/examples/generated-web/seed.sql +6 -0
  182. package/docs/examples/generated-web/src/worker.ts +43 -0
  183. package/docs/examples/generated-web/tsconfig.json +8 -0
  184. package/docs/examples/generated-web/wrangler.jsonc +7 -0
  185. package/docs/examples/purchasing/.dev.vars.example +6 -0
  186. package/docs/examples/purchasing/README.md +90 -0
  187. package/docs/examples/purchasing/manifests/purchasing.yaml +341 -0
  188. package/docs/examples/purchasing/seed.sql +4 -0
  189. package/docs/examples/purchasing/smoke.mjs +171 -0
  190. package/docs/examples/purchasing/src/admin.ts +12 -0
  191. package/docs/examples/purchasing/src/handlers.ts +33 -0
  192. package/docs/examples/purchasing/src/notify.ts +29 -0
  193. package/docs/examples/purchasing/src/requests-page.ts +57 -0
  194. package/docs/examples/purchasing/src/routes.ts +53 -0
  195. package/docs/examples/purchasing/src/schedule.ts +31 -0
  196. package/docs/examples/purchasing/src/signup.ts +5 -0
  197. package/docs/examples/purchasing/src/supplier.ts +32 -0
  198. package/docs/examples/purchasing/wrangler.jsonc +68 -0
  199. package/docs/examples/recipes/README.md +58 -0
  200. package/docs/examples/recipes/manifests/recipes.yaml +75 -0
  201. package/docs/examples/recipes/smoke.mjs +102 -0
  202. package/docs/examples/recipes/src/media.ts +13 -0
  203. package/docs/examples/recipes/src/pages.ts +99 -0
  204. package/docs/examples/recipes/src/routes.ts +71 -0
  205. package/docs/examples/recipes/src/site-config.ts +12 -0
  206. package/docs/examples/recipes/wrangler.jsonc +73 -0
  207. package/docs/handbook/cloudflare/authentication.md +142 -212
  208. package/docs/handbook/cloudflare/chatgpt-sites.md +4 -113
  209. package/docs/handbook/cloudflare/deploy-and-operate.md +20 -103
  210. package/docs/handbook/cloudflare/media-r2.md +62 -133
  211. package/docs/handbook/cloudflare/service-entry.md +180 -116
  212. package/docs/handbook/concepts/authorization.md +10 -123
  213. package/docs/handbook/concepts/four-atoms.md +9 -92
  214. package/docs/handbook/concepts/lifecycle-and-locales.md +9 -80
  215. package/docs/handbook/concepts/mcp-and-agents.md +10 -141
  216. package/docs/handbook/concepts/procedures-and-triggers.md +5 -162
  217. package/docs/handbook/concepts/runtime-and-adapters.md +15 -183
  218. package/docs/handbook/concepts/views.md +10 -109
  219. package/docs/handbook/examples/hub.md +2 -18
  220. package/docs/handbook/guides/adapter-guide.md +11 -0
  221. package/docs/handbook/guides/admin-extensions.md +20 -0
  222. package/docs/handbook/guides/admin-ui.md +5 -163
  223. package/docs/handbook/guides/agent-setup.md +5 -18
  224. package/docs/handbook/guides/email.md +86 -0
  225. package/docs/handbook/guides/mcp-apps.md +44 -0
  226. package/docs/handbook/guides/native-admin.md +298 -0
  227. package/docs/handbook/guides/native-execution.md +132 -0
  228. package/docs/handbook/guides/oauth.md +105 -0
  229. package/docs/handbook/guides/postgres-adapters.md +56 -0
  230. package/docs/handbook/guides/public-pages.md +53 -0
  231. package/docs/handbook/guides/size-and-startup.md +9 -0
  232. package/docs/handbook/guides/typed-queries.md +39 -102
  233. package/docs/handbook/navigation.json +164 -30
  234. package/docs/handbook/reference/admin-descriptors.md +88 -0
  235. package/docs/handbook/reference/authorization.md +44 -52
  236. package/docs/handbook/reference/describe.md +56 -0
  237. package/docs/handbook/reference/diagnostics.md +15 -78
  238. package/docs/handbook/reference/features.md +45 -53
  239. package/docs/handbook/reference/manifest.md +6 -69
  240. package/docs/handbook/reference/procedure.md +9 -117
  241. package/docs/handbook/reference/schema.md +65 -172
  242. package/docs/handbook/reference/site-config.md +5 -65
  243. package/docs/handbook/reference/surface.md +279 -93
  244. package/docs/handbook/reference/trigger.md +24 -93
  245. package/docs/handbook/reference/view.md +32 -158
  246. package/docs/handbook/releases/index.md +124 -15
  247. package/docs/handbook/start/overview.md +9 -56
  248. package/docs/handbook/start/project-and-cli.md +40 -141
  249. package/docs/handbook/start/quickstart-worker.md +38 -116
  250. package/docs/skills/develop/SKILL.md +34 -117
  251. package/docs/skills/develop/mcp-app.md +37 -77
  252. package/docs/skills/integrate/SKILL.md +42 -84
  253. package/docs/skills/media-gc/SKILL.md +14 -3
  254. package/docs/skills/provision/SKILL.md +25 -88
  255. package/docs/skills/update/SKILL.md +19 -40
  256. package/docs/source/scripts/postgres-adapter.ts +101 -0
  257. package/docs/upgrade-0.1-to-0.2.md +26 -10
  258. package/package.json +97 -112
  259. package/skills/.keep +0 -0
  260. package/skills/README.md +72 -0
  261. package/skills/mantle/SKILL.md +135 -0
  262. package/skills/mantle/references/local-testing.md +11 -0
  263. package/skills/mantle/references/web.md +41 -0
  264. package/skills/mantle/references/website.md +47 -0
  265. package/dist/admin/consent.d.ts +0 -17
  266. package/dist/admin/consent.d.ts.map +0 -1
  267. package/dist/admin/consent.js +0 -17
  268. package/dist/admin/consent.js.map +0 -1
  269. package/dist/admin/createAdminSurface.d.ts +0 -22
  270. package/dist/admin/createAdminSurface.d.ts.map +0 -1
  271. package/dist/admin/createAdminSurface.js +0 -592
  272. package/dist/admin/createAdminSurface.js.map +0 -1
  273. package/dist/admin/design.d.ts +0 -7
  274. package/dist/admin/design.d.ts.map +0 -1
  275. package/dist/admin/design.js +0 -18
  276. package/dist/admin/design.js.map +0 -1
  277. package/dist/admin/developerConsole.d.ts +0 -267
  278. package/dist/admin/developerConsole.d.ts.map +0 -1
  279. package/dist/admin/developerConsole.js +0 -136
  280. package/dist/admin/developerConsole.js.map +0 -1
  281. package/dist/admin/identity.d.ts +0 -62
  282. package/dist/admin/identity.d.ts.map +0 -1
  283. package/dist/admin/identity.js +0 -7
  284. package/dist/admin/identity.js.map +0 -1
  285. package/dist/admin/index.d.ts +0 -6
  286. package/dist/admin/index.d.ts.map +0 -1
  287. package/dist/admin/index.js +0 -6
  288. package/dist/admin/index.js.map +0 -1
  289. package/dist/admin/procedureFlow.d.ts +0 -38
  290. package/dist/admin/procedureFlow.d.ts.map +0 -1
  291. package/dist/admin/procedureFlow.js +0 -188
  292. package/dist/admin/procedureFlow.js.map +0 -1
  293. package/dist/auth/ConsoleEmailSender.d.ts +0 -15
  294. package/dist/auth/ConsoleEmailSender.d.ts.map +0 -1
  295. package/dist/auth/ConsoleEmailSender.js +0 -19
  296. package/dist/auth/ConsoleEmailSender.js.map +0 -1
  297. package/dist/auth/appleClientSecret.d.ts +0 -75
  298. package/dist/auth/appleClientSecret.d.ts.map +0 -1
  299. package/dist/auth/appleClientSecret.js +0 -116
  300. package/dist/auth/appleClientSecret.js.map +0 -1
  301. package/dist/auth/buildAuth.d.ts +0 -4566
  302. package/dist/auth/buildAuth.d.ts.map +0 -1
  303. package/dist/auth/buildAuth.js +0 -311
  304. package/dist/auth/buildAuth.js.map +0 -1
  305. package/dist/auth/callerResolver.d.ts +0 -48
  306. package/dist/auth/callerResolver.d.ts.map +0 -1
  307. package/dist/auth/callerResolver.js +0 -49
  308. package/dist/auth/callerResolver.js.map +0 -1
  309. package/dist/auth/createAuthRoutes.d.ts +0 -22
  310. package/dist/auth/createAuthRoutes.d.ts.map +0 -1
  311. package/dist/auth/createAuthRoutes.js.map +0 -1
  312. package/dist/auth/createMantleAuth.d.ts +0 -3
  313. package/dist/auth/createMantleAuth.d.ts.map +0 -1
  314. package/dist/auth/createMantleAuth.js +0 -503
  315. package/dist/auth/createMantleAuth.js.map +0 -1
  316. package/dist/auth/db.d.ts +0 -17
  317. package/dist/auth/db.d.ts.map +0 -1
  318. package/dist/auth/db.js +0 -24
  319. package/dist/auth/db.js.map +0 -1
  320. package/dist/auth/emailTemplates.d.ts +0 -7
  321. package/dist/auth/emailTemplates.d.ts.map +0 -1
  322. package/dist/auth/emailTemplates.js.map +0 -1
  323. package/dist/auth/index.d.ts +0 -9
  324. package/dist/auth/index.d.ts.map +0 -1
  325. package/dist/auth/index.js +0 -7
  326. package/dist/auth/index.js.map +0 -1
  327. package/dist/auth/methods.d.ts +0 -717
  328. package/dist/auth/methods.d.ts.map +0 -1
  329. package/dist/auth/methods.js +0 -321
  330. package/dist/auth/methods.js.map +0 -1
  331. package/dist/auth/oauthTokens.d.ts +0 -24
  332. package/dist/auth/oauthTokens.d.ts.map +0 -1
  333. package/dist/auth/oauthTokens.js +0 -146
  334. package/dist/auth/oauthTokens.js.map +0 -1
  335. package/dist/auth/setupIncomplete.d.ts +0 -16
  336. package/dist/auth/setupIncomplete.d.ts.map +0 -1
  337. package/dist/auth/setupIncomplete.js +0 -50
  338. package/dist/auth/setupIncomplete.js.map +0 -1
  339. package/dist/auth/types.d.ts +0 -440
  340. package/dist/auth/types.d.ts.map +0 -1
  341. package/dist/auth/types.js +0 -10
  342. package/dist/auth/types.js.map +0 -1
  343. package/dist/bun/index.d.ts +0 -65
  344. package/dist/bun/index.d.ts.map +0 -1
  345. package/dist/bun/index.js +0 -130
  346. package/dist/bun/index.js.map +0 -1
  347. package/dist/cli/emitModule.d.ts +0 -7
  348. package/dist/cli/emitModule.d.ts.map +0 -1
  349. package/dist/cli/emitModule.js +0 -127
  350. package/dist/cli/emitModule.js.map +0 -1
  351. package/dist/cli/generate.d.ts +0 -8
  352. package/dist/cli/generate.d.ts.map +0 -1
  353. package/dist/cli/generate.js +0 -391
  354. package/dist/cli/generate.js.map +0 -1
  355. package/dist/cli/main.d.ts +0 -3
  356. package/dist/cli/main.d.ts.map +0 -1
  357. package/dist/cli/main.js +0 -21
  358. package/dist/cli/main.js.map +0 -1
  359. package/dist/cli/preset.d.ts +0 -18
  360. package/dist/cli/preset.d.ts.map +0 -1
  361. package/dist/cli/preset.js +0 -353
  362. package/dist/cli/preset.js.map +0 -1
  363. package/dist/cloudflare/index.d.ts +0 -21
  364. package/dist/cloudflare/index.d.ts.map +0 -1
  365. package/dist/cloudflare/index.js +0 -14
  366. package/dist/cloudflare/index.js.map +0 -1
  367. package/dist/cloudflare/r2Media.d.ts.map +0 -1
  368. package/dist/cloudflare/r2Media.js +0 -69
  369. package/dist/cloudflare/r2Media.js.map +0 -1
  370. package/dist/core/caller.d.ts +0 -35
  371. package/dist/core/caller.d.ts.map +0 -1
  372. package/dist/core/caller.js +0 -3
  373. package/dist/core/caller.js.map +0 -1
  374. package/dist/core/createMantle.d.ts +0 -22
  375. package/dist/core/createMantle.d.ts.map +0 -1
  376. package/dist/core/createMantle.js +0 -117
  377. package/dist/core/createMantle.js.map +0 -1
  378. package/dist/core/dialect.d.ts +0 -41
  379. package/dist/core/dialect.d.ts.map +0 -1
  380. package/dist/core/dialect.js +0 -7
  381. package/dist/core/dialect.js.map +0 -1
  382. package/dist/core/driver.d.ts +0 -17
  383. package/dist/core/driver.d.ts.map +0 -1
  384. package/dist/core/driver.js +0 -2
  385. package/dist/core/driver.js.map +0 -1
  386. package/dist/core/email.d.ts +0 -17
  387. package/dist/core/email.d.ts.map +0 -1
  388. package/dist/core/email.js +0 -2
  389. package/dist/core/email.js.map +0 -1
  390. package/dist/core/index.d.ts +0 -16
  391. package/dist/core/index.d.ts.map +0 -1
  392. package/dist/core/index.js +0 -16
  393. package/dist/core/index.js.map +0 -1
  394. package/dist/core/invocation.d.ts +0 -66
  395. package/dist/core/invocation.d.ts.map +0 -1
  396. package/dist/core/invocation.js +0 -3
  397. package/dist/core/invocation.js.map +0 -1
  398. package/dist/core/observation.d.ts +0 -3
  399. package/dist/core/observation.d.ts.map +0 -1
  400. package/dist/core/observation.js +0 -10
  401. package/dist/core/observation.js.map +0 -1
  402. package/dist/core/runtime/auth.d.ts +0 -9
  403. package/dist/core/runtime/auth.d.ts.map +0 -1
  404. package/dist/core/runtime/auth.js +0 -39
  405. package/dist/core/runtime/auth.js.map +0 -1
  406. package/dist/core/runtime/createRuntime.d.ts +0 -23
  407. package/dist/core/runtime/createRuntime.d.ts.map +0 -1
  408. package/dist/core/runtime/createRuntime.js +0 -214
  409. package/dist/core/runtime/createRuntime.js.map +0 -1
  410. package/dist/core/runtime/verifyPlan.d.ts +0 -34
  411. package/dist/core/runtime/verifyPlan.d.ts.map +0 -1
  412. package/dist/core/runtime/verifyPlan.js +0 -301
  413. package/dist/core/runtime/verifyPlan.js.map +0 -1
  414. package/dist/core/service.d.ts +0 -45
  415. package/dist/core/service.d.ts.map +0 -1
  416. package/dist/core/service.js +0 -2
  417. package/dist/core/service.js.map +0 -1
  418. package/dist/core/site.d.ts.map +0 -1
  419. package/dist/core/site.js +0 -2
  420. package/dist/core/site.js.map +0 -1
  421. package/dist/core/siteConfig.d.ts +0 -5
  422. package/dist/core/siteConfig.d.ts.map +0 -1
  423. package/dist/core/siteConfig.js +0 -24
  424. package/dist/core/siteConfig.js.map +0 -1
  425. package/dist/core/sql/allowlist.d.ts +0 -65
  426. package/dist/core/sql/allowlist.d.ts.map +0 -1
  427. package/dist/core/sql/allowlist.js +0 -705
  428. package/dist/core/sql/allowlist.js.map +0 -1
  429. package/dist/core/sql/ast.d.ts +0 -24
  430. package/dist/core/sql/ast.d.ts.map +0 -1
  431. package/dist/core/sql/ast.js +0 -32
  432. package/dist/core/sql/ast.js.map +0 -1
  433. package/dist/core/sql/compile.d.ts +0 -50
  434. package/dist/core/sql/compile.d.ts.map +0 -1
  435. package/dist/core/sql/compile.js +0 -48
  436. package/dist/core/sql/compile.js.map +0 -1
  437. package/dist/core/sql/policy.d.ts +0 -121
  438. package/dist/core/sql/policy.d.ts.map +0 -1
  439. package/dist/core/sql/policy.js +0 -379
  440. package/dist/core/sql/policy.js.map +0 -1
  441. package/dist/core/sql/positions.d.ts +0 -30
  442. package/dist/core/sql/positions.d.ts.map +0 -1
  443. package/dist/core/sql/positions.js +0 -22
  444. package/dist/core/sql/positions.js.map +0 -1
  445. package/dist/core/sql/run.d.ts +0 -76
  446. package/dist/core/sql/run.d.ts.map +0 -1
  447. package/dist/core/sql/run.js +0 -267
  448. package/dist/core/sql/run.js.map +0 -1
  449. package/dist/core/store/createStore.d.ts +0 -49
  450. package/dist/core/store/createStore.d.ts.map +0 -1
  451. package/dist/core/store/createStore.js +0 -227
  452. package/dist/core/store/createStore.js.map +0 -1
  453. package/dist/core/store/cursor.d.ts +0 -4
  454. package/dist/core/store/cursor.d.ts.map +0 -1
  455. package/dist/core/store/cursor.js +0 -22
  456. package/dist/core/store/cursor.js.map +0 -1
  457. package/dist/core/store/json.d.ts +0 -80
  458. package/dist/core/store/json.d.ts.map +0 -1
  459. package/dist/core/store/json.js +0 -342
  460. package/dist/core/store/json.js.map +0 -1
  461. package/dist/core/store.d.ts +0 -160
  462. package/dist/core/store.d.ts.map +0 -1
  463. package/dist/core/store.js +0 -2
  464. package/dist/core/store.js.map +0 -1
  465. package/dist/core/wire.d.ts +0 -20
  466. package/dist/core/wire.d.ts.map +0 -1
  467. package/dist/core/wire.js +0 -84
  468. package/dist/core/wire.js.map +0 -1
  469. package/dist/core/withCaller.d.ts +0 -24
  470. package/dist/core/withCaller.d.ts.map +0 -1
  471. package/dist/core/withCaller.js +0 -35
  472. package/dist/core/withCaller.js.map +0 -1
  473. package/dist/d1/adapter.d.ts +0 -12
  474. package/dist/d1/adapter.d.ts.map +0 -1
  475. package/dist/d1/adapter.js +0 -23
  476. package/dist/d1/adapter.js.map +0 -1
  477. package/dist/d1/codec.d.ts +0 -14
  478. package/dist/d1/codec.d.ts.map +0 -1
  479. package/dist/d1/codec.js +0 -136
  480. package/dist/d1/codec.js.map +0 -1
  481. package/dist/d1/compile/index.d.ts +0 -9
  482. package/dist/d1/compile/index.d.ts.map +0 -1
  483. package/dist/d1/compile/index.js +0 -9
  484. package/dist/d1/compile/index.js.map +0 -1
  485. package/dist/d1/dialect.d.ts +0 -4
  486. package/dist/d1/dialect.d.ts.map +0 -1
  487. package/dist/d1/dialect.js +0 -13
  488. package/dist/d1/dialect.js.map +0 -1
  489. package/dist/d1/executor.d.ts +0 -13
  490. package/dist/d1/executor.d.ts.map +0 -1
  491. package/dist/d1/executor.js +0 -91
  492. package/dist/d1/executor.js.map +0 -1
  493. package/dist/d1/index.d.ts +0 -6
  494. package/dist/d1/index.d.ts.map +0 -1
  495. package/dist/d1/index.js +0 -6
  496. package/dist/d1/index.js.map +0 -1
  497. package/dist/d1/lower.d.ts +0 -8
  498. package/dist/d1/lower.d.ts.map +0 -1
  499. package/dist/d1/lower.js +0 -167
  500. package/dist/d1/lower.js.map +0 -1
  501. package/dist/d1/media.d.ts +0 -5
  502. package/dist/d1/media.d.ts.map +0 -1
  503. package/dist/d1/media.js +0 -157
  504. package/dist/d1/media.js.map +0 -1
  505. package/dist/d1/migrations.d.ts +0 -12
  506. package/dist/d1/migrations.d.ts.map +0 -1
  507. package/dist/d1/migrations.js +0 -111
  508. package/dist/d1/migrations.js.map +0 -1
  509. package/dist/d1/print.d.ts +0 -28
  510. package/dist/d1/print.d.ts.map +0 -1
  511. package/dist/d1/print.js +0 -54
  512. package/dist/d1/print.js.map +0 -1
  513. package/dist/d1/site.d.ts +0 -17
  514. package/dist/d1/site.d.ts.map +0 -1
  515. package/dist/d1/site.js +0 -63
  516. package/dist/d1/site.js.map +0 -1
  517. package/dist/d1/storage.d.ts +0 -34
  518. package/dist/d1/storage.d.ts.map +0 -1
  519. package/dist/d1/storage.js +0 -288
  520. package/dist/d1/storage.js.map +0 -1
  521. package/dist/d1/tz.d.ts +0 -21
  522. package/dist/d1/tz.d.ts.map +0 -1
  523. package/dist/d1/tz.js +0 -54
  524. package/dist/d1/tz.js.map +0 -1
  525. package/dist/d1/validator.d.ts +0 -10
  526. package/dist/d1/validator.d.ts.map +0 -1
  527. package/dist/d1/validator.js +0 -33
  528. package/dist/d1/validator.js.map +0 -1
  529. package/dist/mcp/apps.d.ts +0 -43
  530. package/dist/mcp/apps.d.ts.map +0 -1
  531. package/dist/mcp/apps.js +0 -57
  532. package/dist/mcp/apps.js.map +0 -1
  533. package/dist/mcp/catalog.d.ts +0 -55
  534. package/dist/mcp/catalog.d.ts.map +0 -1
  535. package/dist/mcp/catalog.js +0 -81
  536. package/dist/mcp/catalog.js.map +0 -1
  537. package/dist/mcp/createMcpSurface.d.ts +0 -60
  538. package/dist/mcp/createMcpSurface.d.ts.map +0 -1
  539. package/dist/mcp/createMcpSurface.js +0 -182
  540. package/dist/mcp/createMcpSurface.js.map +0 -1
  541. package/dist/mcp/index.d.ts +0 -4
  542. package/dist/mcp/index.d.ts.map +0 -1
  543. package/dist/mcp/index.js +0 -4
  544. package/dist/mcp/index.js.map +0 -1
  545. package/dist/mcp/media.d.ts +0 -9
  546. package/dist/mcp/media.d.ts.map +0 -1
  547. package/dist/mcp/media.js +0 -33
  548. package/dist/mcp/media.js.map +0 -1
  549. package/dist/postgres/adapter.d.ts +0 -20
  550. package/dist/postgres/adapter.d.ts.map +0 -1
  551. package/dist/postgres/adapter.js +0 -44
  552. package/dist/postgres/adapter.js.map +0 -1
  553. package/dist/postgres/codec.d.ts +0 -13
  554. package/dist/postgres/codec.d.ts.map +0 -1
  555. package/dist/postgres/codec.js +0 -110
  556. package/dist/postgres/codec.js.map +0 -1
  557. package/dist/postgres/compile/index.d.ts +0 -9
  558. package/dist/postgres/compile/index.d.ts.map +0 -1
  559. package/dist/postgres/compile/index.js +0 -9
  560. package/dist/postgres/compile/index.js.map +0 -1
  561. package/dist/postgres/driver.d.ts +0 -92
  562. package/dist/postgres/driver.d.ts.map +0 -1
  563. package/dist/postgres/driver.js +0 -110
  564. package/dist/postgres/driver.js.map +0 -1
  565. package/dist/postgres/executor.d.ts +0 -20
  566. package/dist/postgres/executor.d.ts.map +0 -1
  567. package/dist/postgres/executor.js +0 -69
  568. package/dist/postgres/executor.js.map +0 -1
  569. package/dist/postgres/index.d.ts +0 -7
  570. package/dist/postgres/index.d.ts.map +0 -1
  571. package/dist/postgres/index.js +0 -7
  572. package/dist/postgres/index.js.map +0 -1
  573. package/dist/postgres/lower.d.ts +0 -6
  574. package/dist/postgres/lower.d.ts.map +0 -1
  575. package/dist/postgres/lower.js +0 -157
  576. package/dist/postgres/lower.js.map +0 -1
  577. package/dist/postgres/print.d.ts +0 -11
  578. package/dist/postgres/print.d.ts.map +0 -1
  579. package/dist/postgres/print.js +0 -121
  580. package/dist/postgres/print.js.map +0 -1
  581. package/dist/postgres/storage.d.ts +0 -19
  582. package/dist/postgres/storage.d.ts.map +0 -1
  583. package/dist/postgres/storage.js +0 -201
  584. package/dist/postgres/storage.js.map +0 -1
  585. package/dist/postgres/textRows.d.ts +0 -10
  586. package/dist/postgres/textRows.d.ts.map +0 -1
  587. package/dist/postgres/textRows.js +0 -44
  588. package/dist/postgres/textRows.js.map +0 -1
  589. package/dist/postgres/validator.d.ts +0 -12
  590. package/dist/postgres/validator.d.ts.map +0 -1
  591. package/dist/postgres/validator.js +0 -46
  592. package/dist/postgres/validator.js.map +0 -1
  593. package/dist/spec/domain/index.d.ts +0 -3
  594. package/dist/spec/domain/index.d.ts.map +0 -1
  595. package/dist/spec/domain/index.js +0 -3
  596. package/dist/spec/domain/index.js.map +0 -1
  597. package/dist/spec/domain/model/ContentState.d.ts +0 -8
  598. package/dist/spec/domain/model/ContentState.d.ts.map +0 -1
  599. package/dist/spec/domain/model/ContentState.js +0 -7
  600. package/dist/spec/domain/model/ContentState.js.map +0 -1
  601. package/dist/spec/domain/model/Entry.d.ts +0 -29
  602. package/dist/spec/domain/model/Entry.d.ts.map +0 -1
  603. package/dist/spec/domain/model/Entry.js +0 -16
  604. package/dist/spec/domain/model/Entry.js.map +0 -1
  605. package/dist/spec/domain/model/Locale.d.ts +0 -30
  606. package/dist/spec/domain/model/Locale.d.ts.map +0 -1
  607. package/dist/spec/domain/model/Locale.js +0 -33
  608. package/dist/spec/domain/model/Locale.js.map +0 -1
  609. package/dist/spec/domain/model/ManifestGrammar.d.ts.map +0 -1
  610. package/dist/spec/domain/model/ManifestGrammar.js +0 -149
  611. package/dist/spec/domain/model/ManifestGrammar.js.map +0 -1
  612. package/dist/spec/domain/model/MediaMimeAccept.d.ts +0 -55
  613. package/dist/spec/domain/model/MediaMimeAccept.d.ts.map +0 -1
  614. package/dist/spec/domain/model/MediaMimeAccept.js +0 -90
  615. package/dist/spec/domain/model/MediaMimeAccept.js.map +0 -1
  616. package/dist/spec/domain/model/RuntimePlan.d.ts.map +0 -1
  617. package/dist/spec/domain/model/RuntimePlan.js +0 -4
  618. package/dist/spec/domain/model/RuntimePlan.js.map +0 -1
  619. package/dist/spec/domain/model/SiteConfig.d.ts +0 -173
  620. package/dist/spec/domain/model/SiteConfig.d.ts.map +0 -1
  621. package/dist/spec/domain/model/SiteConfig.js +0 -13
  622. package/dist/spec/domain/model/SiteConfig.js.map +0 -1
  623. package/dist/spec/domain/model/SqlIr.d.ts.map +0 -1
  624. package/dist/spec/domain/model/SqlIr.js +0 -95
  625. package/dist/spec/domain/model/SqlIr.js.map +0 -1
  626. package/dist/spec/domain/model/index.d.ts +0 -14
  627. package/dist/spec/domain/model/index.d.ts.map +0 -1
  628. package/dist/spec/domain/model/index.js +0 -14
  629. package/dist/spec/domain/model/index.js.map +0 -1
  630. package/dist/spec/domain/service/CloudflareCron.d.ts.map +0 -1
  631. package/dist/spec/domain/service/CloudflareCron.js.map +0 -1
  632. package/dist/spec/domain/service/CrossSchemaChecker.d.ts +0 -34
  633. package/dist/spec/domain/service/CrossSchemaChecker.d.ts.map +0 -1
  634. package/dist/spec/domain/service/CrossSchemaChecker.js +0 -114
  635. package/dist/spec/domain/service/CrossSchemaChecker.js.map +0 -1
  636. package/dist/spec/domain/service/EntryDataValidator.d.ts +0 -56
  637. package/dist/spec/domain/service/EntryDataValidator.d.ts.map +0 -1
  638. package/dist/spec/domain/service/EntryDataValidator.js +0 -88
  639. package/dist/spec/domain/service/EntryDataValidator.js.map +0 -1
  640. package/dist/spec/domain/service/JsonSchemaToZod.d.ts +0 -29
  641. package/dist/spec/domain/service/JsonSchemaToZod.d.ts.map +0 -1
  642. package/dist/spec/domain/service/JsonSchemaToZod.js +0 -156
  643. package/dist/spec/domain/service/JsonSchemaToZod.js.map +0 -1
  644. package/dist/spec/domain/service/LifecycleStateMachine.d.ts +0 -75
  645. package/dist/spec/domain/service/LifecycleStateMachine.d.ts.map +0 -1
  646. package/dist/spec/domain/service/LifecycleStateMachine.js +0 -76
  647. package/dist/spec/domain/service/LifecycleStateMachine.js.map +0 -1
  648. package/dist/spec/domain/service/LocaleCanonicalizer.d.ts +0 -29
  649. package/dist/spec/domain/service/LocaleCanonicalizer.d.ts.map +0 -1
  650. package/dist/spec/domain/service/LocaleCanonicalizer.js +0 -96
  651. package/dist/spec/domain/service/LocaleCanonicalizer.js.map +0 -1
  652. package/dist/spec/domain/service/ManifestFieldChecks.d.ts +0 -60
  653. package/dist/spec/domain/service/ManifestFieldChecks.d.ts.map +0 -1
  654. package/dist/spec/domain/service/ManifestFieldChecks.js +0 -116
  655. package/dist/spec/domain/service/ManifestFieldChecks.js.map +0 -1
  656. package/dist/spec/domain/service/ManifestGraphValidator.d.ts +0 -15
  657. package/dist/spec/domain/service/ManifestGraphValidator.d.ts.map +0 -1
  658. package/dist/spec/domain/service/ManifestGraphValidator.js +0 -225
  659. package/dist/spec/domain/service/ManifestGraphValidator.js.map +0 -1
  660. package/dist/spec/domain/service/ManifestLinker.d.ts +0 -45
  661. package/dist/spec/domain/service/ManifestLinker.d.ts.map +0 -1
  662. package/dist/spec/domain/service/ManifestLinker.js +0 -92
  663. package/dist/spec/domain/service/ManifestLinker.js.map +0 -1
  664. package/dist/spec/domain/service/ManifestLocaleTrimmer.d.ts +0 -16
  665. package/dist/spec/domain/service/ManifestLocaleTrimmer.d.ts.map +0 -1
  666. package/dist/spec/domain/service/ManifestLocaleTrimmer.js +0 -76
  667. package/dist/spec/domain/service/ManifestLocaleTrimmer.js.map +0 -1
  668. package/dist/spec/domain/service/ManifestParser.d.ts +0 -49
  669. package/dist/spec/domain/service/ManifestParser.d.ts.map +0 -1
  670. package/dist/spec/domain/service/ManifestParser.js +0 -203
  671. package/dist/spec/domain/service/ManifestParser.js.map +0 -1
  672. package/dist/spec/domain/service/ManifestPartition.d.ts +0 -9
  673. package/dist/spec/domain/service/ManifestPartition.d.ts.map +0 -1
  674. package/dist/spec/domain/service/ManifestPartition.js +0 -19
  675. package/dist/spec/domain/service/ManifestPartition.js.map +0 -1
  676. package/dist/spec/domain/service/ManifestPathDiagnoser.d.ts +0 -33
  677. package/dist/spec/domain/service/ManifestPathDiagnoser.d.ts.map +0 -1
  678. package/dist/spec/domain/service/ManifestPathDiagnoser.js +0 -43
  679. package/dist/spec/domain/service/ManifestPathDiagnoser.js.map +0 -1
  680. package/dist/spec/domain/service/ManifestSourceSpans.d.ts +0 -10
  681. package/dist/spec/domain/service/ManifestSourceSpans.d.ts.map +0 -1
  682. package/dist/spec/domain/service/ManifestSourceSpans.js +0 -76
  683. package/dist/spec/domain/service/ManifestSourceSpans.js.map +0 -1
  684. package/dist/spec/domain/service/McpToolNaming.d.ts +0 -25
  685. package/dist/spec/domain/service/McpToolNaming.d.ts.map +0 -1
  686. package/dist/spec/domain/service/McpToolNaming.js +0 -50
  687. package/dist/spec/domain/service/McpToolNaming.js.map +0 -1
  688. package/dist/spec/domain/service/PlanFingerprint.d.ts.map +0 -1
  689. package/dist/spec/domain/service/PlanFingerprint.js +0 -14
  690. package/dist/spec/domain/service/PlanFingerprint.js.map +0 -1
  691. package/dist/spec/domain/service/ProcedureViewSpecChecks.d.ts +0 -4
  692. package/dist/spec/domain/service/ProcedureViewSpecChecks.d.ts.map +0 -1
  693. package/dist/spec/domain/service/ProcedureViewSpecChecks.js +0 -211
  694. package/dist/spec/domain/service/ProcedureViewSpecChecks.js.map +0 -1
  695. package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts +0 -42
  696. package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts.map +0 -1
  697. package/dist/spec/domain/service/SchemaAdminUiChecker.js +0 -289
  698. package/dist/spec/domain/service/SchemaAdminUiChecker.js.map +0 -1
  699. package/dist/spec/domain/service/SchemaIndexChecker.d.ts +0 -33
  700. package/dist/spec/domain/service/SchemaIndexChecker.d.ts.map +0 -1
  701. package/dist/spec/domain/service/SchemaIndexChecker.js +0 -256
  702. package/dist/spec/domain/service/SchemaIndexChecker.js.map +0 -1
  703. package/dist/spec/domain/service/SchemaSearchChecker.d.ts +0 -11
  704. package/dist/spec/domain/service/SchemaSearchChecker.d.ts.map +0 -1
  705. package/dist/spec/domain/service/SchemaSearchChecker.js +0 -78
  706. package/dist/spec/domain/service/SchemaSearchChecker.js.map +0 -1
  707. package/dist/spec/domain/service/SchemaSpecChecks.d.ts +0 -31
  708. package/dist/spec/domain/service/SchemaSpecChecks.d.ts.map +0 -1
  709. package/dist/spec/domain/service/SchemaSpecChecks.js +0 -445
  710. package/dist/spec/domain/service/SchemaSpecChecks.js.map +0 -1
  711. package/dist/spec/domain/service/SiteDefaultsValidator.d.ts +0 -39
  712. package/dist/spec/domain/service/SiteDefaultsValidator.d.ts.map +0 -1
  713. package/dist/spec/domain/service/SiteDefaultsValidator.js +0 -194
  714. package/dist/spec/domain/service/SiteDefaultsValidator.js.map +0 -1
  715. package/dist/spec/domain/service/SqlClassify.d.ts +0 -19
  716. package/dist/spec/domain/service/SqlClassify.d.ts.map +0 -1
  717. package/dist/spec/domain/service/SqlClassify.js +0 -42
  718. package/dist/spec/domain/service/SqlClassify.js.map +0 -1
  719. package/dist/spec/domain/service/SqlRefusal.d.ts +0 -16
  720. package/dist/spec/domain/service/SqlRefusal.d.ts.map +0 -1
  721. package/dist/spec/domain/service/SqlRefusal.js +0 -20
  722. package/dist/spec/domain/service/SqlRefusal.js.map +0 -1
  723. package/dist/spec/domain/service/SqlTypes.d.ts +0 -40
  724. package/dist/spec/domain/service/SqlTypes.d.ts.map +0 -1
  725. package/dist/spec/domain/service/SqlTypes.js +0 -110
  726. package/dist/spec/domain/service/SqlTypes.js.map +0 -1
  727. package/dist/spec/domain/service/StaffRoleHierarchy.d.ts +0 -3
  728. package/dist/spec/domain/service/StaffRoleHierarchy.d.ts.map +0 -1
  729. package/dist/spec/domain/service/StaffRoleHierarchy.js +0 -19
  730. package/dist/spec/domain/service/StaffRoleHierarchy.js.map +0 -1
  731. package/dist/spec/domain/service/TriggerGraphChecks.d.ts +0 -16
  732. package/dist/spec/domain/service/TriggerGraphChecks.d.ts.map +0 -1
  733. package/dist/spec/domain/service/TriggerGraphChecks.js +0 -337
  734. package/dist/spec/domain/service/TriggerGraphChecks.js.map +0 -1
  735. package/dist/spec/domain/service/TriggerSpecChecks.d.ts +0 -4
  736. package/dist/spec/domain/service/TriggerSpecChecks.d.ts.map +0 -1
  737. package/dist/spec/domain/service/TriggerSpecChecks.js +0 -89
  738. package/dist/spec/domain/service/TriggerSpecChecks.js.map +0 -1
  739. package/dist/spec/domain/service/ValidatedAdminUiProjection.d.ts +0 -11
  740. package/dist/spec/domain/service/ValidatedAdminUiProjection.d.ts.map +0 -1
  741. package/dist/spec/domain/service/ValidatedAdminUiProjection.js +0 -26
  742. package/dist/spec/domain/service/ValidatedAdminUiProjection.js.map +0 -1
  743. package/dist/spec/domain/service/ViewAdminUiChecker.d.ts +0 -14
  744. package/dist/spec/domain/service/ViewAdminUiChecker.d.ts.map +0 -1
  745. package/dist/spec/domain/service/ViewAdminUiChecker.js +0 -53
  746. package/dist/spec/domain/service/ViewAdminUiChecker.js.map +0 -1
  747. package/dist/spec/domain/service/index.d.ts +0 -24
  748. package/dist/spec/domain/service/index.d.ts.map +0 -1
  749. package/dist/spec/domain/service/index.js +0 -24
  750. package/dist/spec/domain/service/index.js.map +0 -1
  751. package/dist/spec/index.d.ts +0 -10
  752. package/dist/spec/index.d.ts.map +0 -1
  753. package/dist/spec/index.js +0 -12
  754. package/dist/spec/index.js.map +0 -1
  755. package/dist/spec/infrastructure/cli/parseArgsError.d.ts +0 -16
  756. package/dist/spec/infrastructure/cli/parseArgsError.d.ts.map +0 -1
  757. package/dist/spec/infrastructure/cli/parseArgsError.js +0 -34
  758. package/dist/spec/infrastructure/cli/parseArgsError.js.map +0 -1
  759. package/dist/spec/infrastructure/index.d.ts +0 -2
  760. package/dist/spec/infrastructure/index.d.ts.map +0 -1
  761. package/dist/spec/infrastructure/index.js +0 -2
  762. package/dist/spec/infrastructure/index.js.map +0 -1
  763. package/dist/spec/infrastructure/sql/PgQueryParser.d.ts +0 -18
  764. package/dist/spec/infrastructure/sql/PgQueryParser.d.ts.map +0 -1
  765. package/dist/spec/infrastructure/sql/PgQueryParser.js +0 -17
  766. package/dist/spec/infrastructure/sql/PgQueryParser.js.map +0 -1
  767. package/dist/spec/infrastructure/sql/compilePlan.d.ts +0 -37
  768. package/dist/spec/infrastructure/sql/compilePlan.d.ts.map +0 -1
  769. package/dist/spec/infrastructure/sql/compilePlan.js +0 -282
  770. package/dist/spec/infrastructure/sql/compilePlan.js.map +0 -1
  771. package/dist/spec/infrastructure/sql/compileSql.d.ts +0 -35
  772. package/dist/spec/infrastructure/sql/compileSql.d.ts.map +0 -1
  773. package/dist/spec/infrastructure/sql/compileSql.js +0 -92
  774. package/dist/spec/infrastructure/sql/compileSql.js.map +0 -1
  775. package/dist/spec/infrastructure/sql/frontEnd.d.ts +0 -8
  776. package/dist/spec/infrastructure/sql/frontEnd.d.ts.map +0 -1
  777. package/dist/spec/infrastructure/sql/frontEnd.js +0 -100
  778. package/dist/spec/infrastructure/sql/frontEnd.js.map +0 -1
  779. package/dist/spec/infrastructure/sql/index.d.ts +0 -4
  780. package/dist/spec/infrastructure/sql/index.d.ts.map +0 -1
  781. package/dist/spec/infrastructure/sql/index.js +0 -4
  782. package/dist/spec/infrastructure/sql/index.js.map +0 -1
  783. package/dist/spec/kernel/diagnostic.d.ts.map +0 -1
  784. package/dist/spec/kernel/diagnostic.js +0 -296
  785. package/dist/spec/kernel/diagnostic.js.map +0 -1
  786. package/dist/spec/kernel/index.d.ts +0 -8
  787. package/dist/spec/kernel/index.d.ts.map +0 -1
  788. package/dist/spec/kernel/index.js +0 -8
  789. package/dist/spec/kernel/index.js.map +0 -1
  790. package/dist/spec/usecase/EmitTypes.d.ts +0 -22
  791. package/dist/spec/usecase/EmitTypes.d.ts.map +0 -1
  792. package/dist/spec/usecase/EmitTypes.js +0 -182
  793. package/dist/spec/usecase/EmitTypes.js.map +0 -1
  794. package/dist/spec/usecase/ValidateManifestsUseCase.d.ts +0 -8
  795. package/dist/spec/usecase/ValidateManifestsUseCase.d.ts.map +0 -1
  796. package/dist/spec/usecase/ValidateManifestsUseCase.js +0 -101
  797. package/dist/spec/usecase/ValidateManifestsUseCase.js.map +0 -1
  798. package/dist/spec/usecase/dto/ValidateManifestsRequest.d.ts +0 -27
  799. package/dist/spec/usecase/dto/ValidateManifestsRequest.d.ts.map +0 -1
  800. package/dist/spec/usecase/dto/ValidateManifestsRequest.js +0 -2
  801. package/dist/spec/usecase/dto/ValidateManifestsRequest.js.map +0 -1
  802. package/dist/spec/usecase/dto/ValidateManifestsResponse.d.ts +0 -14
  803. package/dist/spec/usecase/dto/ValidateManifestsResponse.d.ts.map +0 -1
  804. package/dist/spec/usecase/dto/ValidateManifestsResponse.js +0 -2
  805. package/dist/spec/usecase/dto/ValidateManifestsResponse.js.map +0 -1
  806. package/dist/spec/usecase/dto/index.d.ts +0 -3
  807. package/dist/spec/usecase/dto/index.d.ts.map +0 -1
  808. package/dist/spec/usecase/dto/index.js +0 -3
  809. package/dist/spec/usecase/dto/index.js.map +0 -1
  810. package/dist/spec/usecase/index.d.ts +0 -10
  811. package/dist/spec/usecase/index.d.ts.map +0 -1
  812. package/dist/spec/usecase/index.js +0 -10
  813. package/dist/spec/usecase/index.js.map +0 -1
  814. package/dist/testing/cases/before-hook.d.ts +0 -4
  815. package/dist/testing/cases/before-hook.d.ts.map +0 -1
  816. package/dist/testing/cases/before-hook.js +0 -71
  817. package/dist/testing/cases/before-hook.js.map +0 -1
  818. package/dist/testing/cases/corpus.d.ts +0 -12
  819. package/dist/testing/cases/corpus.d.ts.map +0 -1
  820. package/dist/testing/cases/corpus.js +0 -91
  821. package/dist/testing/cases/corpus.js.map +0 -1
  822. package/dist/testing/cases/policy.d.ts +0 -74
  823. package/dist/testing/cases/policy.d.ts.map +0 -1
  824. package/dist/testing/cases/policy.js +0 -142
  825. package/dist/testing/cases/policy.js.map +0 -1
  826. package/dist/testing/cases/printer.d.ts +0 -4
  827. package/dist/testing/cases/printer.d.ts.map +0 -1
  828. package/dist/testing/cases/printer.js +0 -32
  829. package/dist/testing/cases/printer.js.map +0 -1
  830. package/dist/testing/cases/report-view.d.ts +0 -5
  831. package/dist/testing/cases/report-view.d.ts.map +0 -1
  832. package/dist/testing/cases/report-view.js +0 -33
  833. package/dist/testing/cases/report-view.js.map +0 -1
  834. package/dist/testing/cases/requisition.d.ts +0 -4
  835. package/dist/testing/cases/requisition.d.ts.map +0 -1
  836. package/dist/testing/cases/requisition.js +0 -38
  837. package/dist/testing/cases/requisition.js.map +0 -1
  838. package/dist/testing/cases/search-places.d.ts +0 -4
  839. package/dist/testing/cases/search-places.d.ts.map +0 -1
  840. package/dist/testing/cases/search-places.js +0 -60
  841. package/dist/testing/cases/search-places.js.map +0 -1
  842. package/dist/testing/cases/stock.d.ts +0 -4
  843. package/dist/testing/cases/stock.d.ts.map +0 -1
  844. package/dist/testing/cases/stock.js +0 -35
  845. package/dist/testing/cases/stock.js.map +0 -1
  846. package/dist/testing/cases/store.d.ts +0 -4
  847. package/dist/testing/cases/store.d.ts.map +0 -1
  848. package/dist/testing/cases/store.js +0 -100
  849. package/dist/testing/cases/store.js.map +0 -1
  850. package/dist/testing/harness.d.ts +0 -94
  851. package/dist/testing/harness.d.ts.map +0 -1
  852. package/dist/testing/harness.js +0 -168
  853. package/dist/testing/harness.js.map +0 -1
  854. package/dist/testing/index.d.ts.map +0 -1
  855. package/dist/testing/index.js.map +0 -1
  856. package/dist/testing/report.d.ts +0 -15
  857. package/dist/testing/report.d.ts.map +0 -1
  858. package/dist/testing/report.js +0 -22
  859. package/dist/testing/report.js.map +0 -1
  860. package/dist/web/createRestSurface.d.ts +0 -7
  861. package/dist/web/createRestSurface.d.ts.map +0 -1
  862. package/dist/web/createRestSurface.js +0 -41
  863. package/dist/web/createRestSurface.js.map +0 -1
  864. package/dist/web/index.d.ts +0 -2
  865. package/dist/web/index.d.ts.map +0 -1
  866. package/dist/web/index.js +0 -2
  867. package/dist/web/index.js.map +0 -1
  868. package/docs/adr/0001-four-atom-manifest-model.md +0 -440
  869. package/docs/adr/0002-closed-enums-for-bindings.md +0 -253
  870. package/docs/adr/0007-ai-as-primary-author.md +0 -473
  871. package/docs/adr/0008-structured-diagnostic-shape.md +0 -338
  872. package/docs/adr/0009-consumer-supplied-manifests.md +0 -149
  873. package/docs/adr/0010-locale-and-translates.md +0 -453
  874. package/docs/adr/0011-adapter-port-spec.md +0 -281
  875. package/docs/adr/0012-views-as-public-rest.md +0 -161
  876. package/docs/adr/0013-agent-provisioned-consumer-projects.md +0 -154
  877. package/docs/adr/0014-auth-better-auth-and-multi-tenant-mcp.md +0 -939
  878. package/docs/adr/0016-site-semantic-layer.md +0 -70
  879. package/docs/adr/0017-media-multi-variant-agent-side-optimization.md +0 -181
  880. package/docs/adr/0018-core-starters-repository-boundary.md +0 -179
  881. package/docs/adr/0019-sealed-manifest-runtime-pipeline.md +0 -244
  882. package/docs/adr/0020-builtin-handler-contracts-and-matched-upsert.md +0 -199
  883. package/docs/adr/0021-retire-starter-scaffolding.md +0 -30
  884. package/docs/adr/0022-caller-observed-version-occ.md +0 -212
  885. package/docs/adr/0023-port-failure-contract.md +0 -69
  886. package/docs/adr/0024-manifest-native-schema-tables.md +0 -264
  887. package/docs/adr/0025-reserved-native-columns-and-published-only-public-views.md +0 -105
  888. package/docs/adr/0026-progressive-generate.md +0 -36
  889. package/docs/adr/0027-scheduled-procedure-triggers.md +0 -31
  890. package/docs/adr/0028-schema-ttl-expiry.md +0 -33
  891. package/docs/adr/0029-mcp-apps-interaction-contracts.md +0 -324
  892. package/docs/adr/0030-store.md +0 -40
  893. package/docs/adr/0031-host-cloud-core-contract.md +0 -102
  894. package/docs/adr/0032-store-centric-core-and-service-contract.md +0 -384
  895. package/docs/adr/0033-storage-converges-to-the-plan.md +0 -92
  896. package/docs/adr/0034-store-is-authored-as-sql.md +0 -192
  897. package/docs/adr/0035-sql-dialects.md +0 -154
  898. package/docs/adr/0036-host-and-dialect.md +0 -65
  899. package/docs/adr/0037-postgresql-is-the-reference-dialect.md +0 -124
  900. package/docs/adr/0038-bun-native-host.md +0 -63
  901. package/docs/adr/README.md +0 -96
  902. package/docs/adr/adr-lite-803-request-diagnostics.md +0 -38
  903. package/docs/adr/adr-lite-808-route-readiness.md +0 -47
  904. package/docs/adr/adr-lite-809-bounded-public-content.md +0 -71
  905. package/docs/adr/adr-lite-812-native-parity.md +0 -150
  906. package/docs/adr/adr-lite-823-home-statistics.md +0 -64
  907. package/docs/adr/adr-lite-842-mcp-authoring.md +0 -30
  908. package/docs/adr/adr-lite-845-frontend-client.md +0 -38
  909. package/docs/adr/adr-lite-861-admin-webmcp.md +0 -48
  910. package/docs/adr/adr-lite-909-admin-ui-kit.md +0 -37
  911. package/docs/examples/commerce-inventory.md +0 -481
  912. package/docs/examples/commerce.md +0 -254
  913. package/docs/examples/guarded-api.md +0 -238
  914. package/docs/examples/intake-hooks.md +0 -237
  915. package/docs/examples/intake.md +0 -127
  916. package/docs/examples/legal-documents.md +0 -218
  917. package/docs/examples/procurement.md +0 -226
  918. package/docs/examples/publication.md +0 -211
  919. package/docs/examples/reference-service/.mantle/generated/mantle.ts +0 -174
  920. package/docs/examples/reference-service/.mantle/generated/plan.json +0 -1936
  921. package/docs/examples/reference-service/README.md +0 -33
  922. package/docs/examples/reference-service/manifests/catalog.yaml +0 -103
  923. package/docs/examples/reference-service/manifests/orders.yaml +0 -120
  924. package/docs/examples/reference-service/mantle.config.json +0 -1
  925. package/docs/examples/reference-service/package.json +0 -27
  926. package/docs/examples/reference-service/smoke.mjs +0 -160
  927. package/docs/examples/reference-service/src/handlers.ts +0 -36
  928. package/docs/examples/reference-service/src/index.ts +0 -33
  929. package/docs/examples/reference-service/src/service.ts +0 -78
  930. package/docs/examples/reference-service/wrangler.jsonc +0 -26
  931. package/docs/examples/reservation.md +0 -142
  932. /package/docs/examples/{reference-service → app-shell}/.dev.vars.example +0 -0
@@ -0,0 +1,49 @@
1
+ /** MCP Apps (ADR-0029 D7): UI resources served beside the tools that render in them. */
2
+ export declare const RESOURCE_MIME_TYPE = "text/html;profile=mcp-app";
3
+ /** One `ui://` resource. The HTML is a reusable asset and never carries caller data: that travels in tool results. */
4
+ export interface McpAppResource {
5
+ readonly uri: string;
6
+ readonly name: string;
7
+ readonly title?: string;
8
+ readonly description?: string;
9
+ readonly html: string | (() => string | Promise<string>);
10
+ readonly csp?: {
11
+ readonly connectDomains?: readonly string[];
12
+ readonly resourceDomains?: readonly string[];
13
+ readonly frameDomains?: readonly string[];
14
+ readonly baseUriDomains?: readonly string[];
15
+ };
16
+ readonly permissions?: {
17
+ readonly camera?: Record<string, never>;
18
+ readonly microphone?: Record<string, never>;
19
+ readonly geolocation?: Record<string, never>;
20
+ readonly clipboardWrite?: Record<string, never>;
21
+ };
22
+ readonly prefersBorder?: boolean;
23
+ /** Tool names whose results this resource renders. */
24
+ readonly renders?: readonly string[];
25
+ /** Views only this App may call (`visibility: ["app"]`); a client without MCP Apps does not see them. A Procedure cannot be hidden from the model. */
26
+ readonly appOnly?: readonly string[];
27
+ }
28
+ export interface McpApps {
29
+ readonly resources: readonly McpAppResource[];
30
+ }
31
+ /** The resources of one endpoint's contributors; a contributor's `resources` may be a getter, so `mcp(...)` reads it once. */
32
+ export declare const resourcesOf: (apps: McpApps | readonly McpApps[]) => McpApps;
33
+ /** Checked when `mcp(...)` is built; without a tool table (a request-bound one) only the configuration itself is checked, the tool links wait for the first request. */
34
+ export declare function linkApps(apps: McpApps | readonly McpApps[], tools?: ReadonlySet<string>, views?: ReadonlySet<string>): {
35
+ resources: McpAppResource[];
36
+ renders: Map<string, string>;
37
+ appOnly: Set<string>;
38
+ };
39
+ /** One endpoint's Apps bound to its tool table; `previous` is reused while the table's names are unchanged. */
40
+ export declare function linkSurface(apps: McpApps | readonly McpApps[], selected: readonly {
41
+ name: string;
42
+ page?: unknown;
43
+ }[], previous?: {
44
+ key: string;
45
+ links: ReturnType<typeof linkApps>;
46
+ }): {
47
+ key: string;
48
+ links: ReturnType<typeof linkApps>;
49
+ };
@@ -0,0 +1,40 @@
1
+ import { ContractError } from "./contracts.js";
2
+ /** MCP Apps (ADR-0029 D7): UI resources served beside the tools that render in them. */
3
+ export const RESOURCE_MIME_TYPE = "text/html;profile=mcp-app";
4
+ /** The resources of one endpoint's contributors; a contributor's `resources` may be a getter, so `mcp(...)` reads it once. */
5
+ export const resourcesOf = (apps) => ({ resources: (Array.isArray(apps) ? apps : [apps]).flatMap(app => app.resources) });
6
+ /** Checked when `mcp(...)` is built; without a tool table (a request-bound one) only the configuration itself is checked, the tool links wait for the first request. */
7
+ export function linkApps(apps, tools, views) {
8
+ const resources = resourcesOf(apps).resources;
9
+ const uris = new Set(), names = new Set(), renders = new Map(), appOnly = new Set();
10
+ const refuse = (message) => { throw new ContractError("MCP_APP_CONFLICT", message, "mcp:apps", { status: 500 }); };
11
+ for (const resource of resources) {
12
+ if (!resource.uri.startsWith("ui://"))
13
+ refuse(`MCP App resource '${resource.name}' must use a ui:// URI.`);
14
+ if (uris.has(resource.uri))
15
+ refuse(`MCP App resource URI '${resource.uri}' is registered twice.`);
16
+ if (names.has(resource.name))
17
+ refuse(`MCP App resource name '${resource.name}' is registered twice.`);
18
+ uris.add(resource.uri);
19
+ names.add(resource.name);
20
+ for (const tool of [...resource.renders ?? [], ...resource.appOnly ?? []]) {
21
+ if (tools && !tools.has(tool))
22
+ refuse(`MCP App resource '${resource.name}' names tool '${tool}', which this endpoint does not serve.`);
23
+ if (renders.has(tool) && renders.get(tool) !== resource.uri)
24
+ refuse(`Tool '${tool}' is claimed by two MCP App resources.`);
25
+ renders.set(tool, resource.uri);
26
+ }
27
+ // an App acts for the user without the model seeing the call, so only a read may be hidden from the model
28
+ for (const tool of resource.appOnly ?? []) {
29
+ if (views && !views.has(tool))
30
+ refuse(`App-only tool '${tool}' must be a View this endpoint serves.`);
31
+ appOnly.add(tool);
32
+ }
33
+ }
34
+ return { resources, renders, appOnly };
35
+ }
36
+ /** One endpoint's Apps bound to its tool table; `previous` is reused while the table's names are unchanged. */
37
+ export function linkSurface(apps, selected, previous) {
38
+ const key = JSON.stringify(selected.map(tool => tool.name).sort());
39
+ return previous?.key === key ? previous : { key, links: linkApps(apps, new Set(selected.map(tool => tool.name)), new Set(selected.filter(tool => tool.page).map(tool => tool.name))) };
40
+ }
@@ -0,0 +1,5 @@
1
+ import type { Caller } from "./contracts.js";
2
+ import type { Tool } from "./mcp.js";
3
+ export declare function callTool<Database, Handlers>(tool: Tool<Database, Handlers>, raw: Record<string, unknown>, db: Database, caller: Caller, handlers: Handlers): Promise<unknown>;
4
+ /** Transport input is checked before acquiring an application-owned native handle. */
5
+ export declare function callToolLazy<Database, Handlers>(tool: Tool<Database, Handlers>, raw: Record<string, unknown>, getDb: () => Database, caller: Caller, handlers: Handlers, dryRun?: () => unknown): Promise<unknown>;
@@ -0,0 +1,25 @@
1
+ import { convert, invalid } from "./surface.js";
2
+ import { checkPageLimit } from "./paging.js";
3
+ export async function callTool(tool, raw, db, caller, handlers) {
4
+ return callToolLazy(tool, raw, () => db, caller, handlers);
5
+ }
6
+ /** Transport input is checked before acquiring an application-owned native handle. */
7
+ export async function callToolLazy(tool, raw, getDb, caller, handlers, dryRun) {
8
+ if (tool.page) {
9
+ const { limit, cursor, ...input } = raw;
10
+ if (limit !== undefined)
11
+ checkPageLimit(limit, tool.path);
12
+ if (cursor !== undefined && typeof cursor !== "string")
13
+ invalid("Invalid paging options.", tool.path);
14
+ await tool.validate(input);
15
+ convert(input, tool.convert);
16
+ if (dryRun)
17
+ return dryRun();
18
+ return tool.page(getDb(), caller, input, { limit: limit, cursor: cursor });
19
+ }
20
+ const input = await tool.validate(raw);
21
+ convert(input, tool.convert);
22
+ if (dryRun)
23
+ return dryRun();
24
+ return tool.run(getDb(), caller, input, handlers);
25
+ }
@@ -0,0 +1,288 @@
1
+ /** Request-only MCP implementation, excluded from Worker startup. */
2
+ import { authorized, authorizeTarget } from "./authorization.js";
3
+ import { forwarded, isAdmin, ContractError, checkOrigin, surfaceCaller, surfaceError, wire } from "./contracts.js";
4
+ import { callToolLazy as callTool } from "./mcp-call.js";
5
+ import { RESOURCE_MIME_TYPE, linkSurface } from "./mcp-apps.js";
6
+ const text = (value, locale) => {
7
+ if (typeof value === "string")
8
+ return value;
9
+ if (!value)
10
+ return;
11
+ return Object.hasOwn(value, locale) ? value[locale] : Object.hasOwn(value, "en") ? value.en : Object.values(value)[0];
12
+ };
13
+ function observe(listener, event) {
14
+ if (listener)
15
+ try {
16
+ void Promise.resolve(listener(event)).catch(() => { });
17
+ }
18
+ catch { }
19
+ }
20
+ const paging = (schema) => ({ ...schema, properties: { ...schema.properties, limit: { type: "integer", minimum: 1, maximum: 500 }, cursor: { type: "string" } } });
21
+ /** The scopes a challenge asks for: the credential's, plus what the request needs. */
22
+ const union = (scopes, extra) => [...new Set([...scopes, ...extra])].join(" ");
23
+ /** The handler for `/mcp` (public tools) and `/mcp/admin` (tools for `admin` roles); other paths are undefined. */
24
+ export function handler(tools, options, apps = {}, reads = []) {
25
+ return async (request, env, ctx) => {
26
+ const access = options.gateway ? (await import("./host-access.js")).accessRequest(ctx, options) : undefined;
27
+ let resolved;
28
+ try {
29
+ const requiredScopes = options.requiredScopes ?? ["mcp"], locale = options.locale ?? "en";
30
+ const url = new URL(request.url), path = url.pathname.replace(/\/+$/, ""), surface = path === "/mcp" ? "public" : path === "/mcp/admin" ? "admin" : undefined;
31
+ if (!surface)
32
+ return;
33
+ const select = async () => (typeof tools === "function" ? await tools(request, env) : tools).filter(tool => tool.surface === surface);
34
+ // Dynamic admin tables stay behind the admin gate; cache classification uses generated metadata only.
35
+ let selected = surface === "public" ? await select() : [];
36
+ let parsedBody, tooLarge = false;
37
+ const cookieOnly = request.headers.has("cookie") && !request.headers.has("authorization");
38
+ const parse = async () => {
39
+ if (options.gateway) {
40
+ try {
41
+ const raw = await (await import("./json-body.js")).bytes(request, 1024 * 1024, () => { tooLarge = true; throw new Error("Body limit"); });
42
+ parsedBody = JSON.parse(new TextDecoder().decode(raw));
43
+ }
44
+ catch { }
45
+ return;
46
+ }
47
+ const { readRequestBody } = await import("@modelcontextprotocol/server");
48
+ try {
49
+ const body = await readRequestBody(request.clone(), 1024 * 1024);
50
+ tooLarge = body.tooLarge;
51
+ if (!body.tooLarge)
52
+ parsedBody = JSON.parse(body.text);
53
+ }
54
+ catch { }
55
+ };
56
+ if (request.method === "POST" && (cookieOnly || options.gateway))
57
+ await parse();
58
+ const messages = Array.isArray(parsedBody) ? parsedBody : [parsedBody];
59
+ const readOnly = request.method === "POST" && messages.length > 0 && messages.every(message => {
60
+ if (!isRecord(message) || message.jsonrpc !== "2.0" || typeof message.method !== "string")
61
+ return false;
62
+ if (["initialize", "tools/list", "resources/list", "resources/read"].includes(message.method))
63
+ return true;
64
+ if (message.method !== "tools/call")
65
+ return false;
66
+ const name = isRecord(message.params) ? message.params.name : undefined;
67
+ return reads.some(tool => tool.surface === surface && tool.name === name);
68
+ });
69
+ const challenge = async (error, scope, bare = false) => {
70
+ access?.finish(error);
71
+ const result = wire(error);
72
+ if (result.status === 401 || result.status === 403) {
73
+ observe(options.onObservation, { kind: "request-refused", at: Date.now(), surface, status: result.status });
74
+ observe(options.onRefusal, { at: Date.now(), status: result.status, reason: "credential" });
75
+ }
76
+ if (result.status === 401)
77
+ scope ??= requiredScopes.join(" ");
78
+ return (await import("./host-caller.js")).hostFailure(error, resolved, `mcp ${path}`, bare ? undefined : 'Bearer ' + (scope ? (result.status === 403 ? 'error="insufficient_scope", ' : '') + 'scope="' + scope + '", ' : '') + 'resource_metadata="' + (options.resourceMetadata ?? url.origin + '/.well-known/oauth-protected-resource/mcp') + '"');
79
+ };
80
+ let caller;
81
+ try {
82
+ const requested = isRecord(parsedBody) && isRecord(parsedBody.params) ? parsedBody.params.name : undefined;
83
+ const requestedTool = selected.find(t => t.name === requested) ?? (typeof tools === "function" ? undefined : tools.find(t => t.surface === surface && t.name === requested));
84
+ await access?.select(requestedTool?.target ? `${requestedTool.target.kind}:${requestedTool.target.name}` : typeof requested === "string" ? `mcp:${requested}` : "mcp");
85
+ caller = resolved = forwarded(ctx, options.gateway)
86
+ ? (await import("./host-caller.js")).gatewayCaller(ctx, options.gateway, options.fields)
87
+ : await surfaceCaller(request, env, options.caller ?? (() => ({ kind: "anonymous" })), readOnly);
88
+ await access?.select(requestedTool?.target ? `${requestedTool.target.kind}:${requestedTool.target.name}` : "target" in caller && caller.target ? caller.target : "mcp", caller);
89
+ if (caller.kind === "anonymous" && (surface === "admin" || selected.length > 0 && selected.every(tool => tool.closed)))
90
+ throw new ContractError("UNAUTHENTICATED", "Authentication is required.", "mcp");
91
+ if (caller.kind === "system")
92
+ return challenge(new ContractError("AUTH_DENIED", "System callers cannot use MCP.", "mcp"), undefined, true);
93
+ if (surface === "admin" && !isAdmin(caller))
94
+ return challenge(new ContractError("AUTH_DENIED", "Admin role is required.", "mcp/admin"), undefined, true);
95
+ if (!options.gateway && caller.kind === "user" && caller.credential !== "session" && requiredScopes.some(scope => !caller.scopes.includes(scope)))
96
+ return challenge(new ContractError("AUTH_DENIED", "The credential needs the required MCP scopes.", "mcp"), union(caller.scopes, requiredScopes));
97
+ }
98
+ catch (error) {
99
+ return challenge(error);
100
+ }
101
+ if (surface === "admin")
102
+ selected = await select();
103
+ const { McpServer, createMcpHandler, fromJsonSchema } = await import("@modelcontextprotocol/server");
104
+ if (request.method === "POST" && !cookieOnly && !options.gateway)
105
+ await parse();
106
+ if (tooLarge && access)
107
+ return challenge(new ContractError("INPUT_VALIDATION_FAILED", "MCP body exceeds its limit.", "mcp"), undefined, true);
108
+ if (tooLarge)
109
+ return Response.json({ jsonrpc: "2.0", id: null, error: { code: -32000, message: "Request body exceeds 1048576 bytes." } }, { status: 413 });
110
+ const host = options.gateway && (await import("./host-caller.js")).isHostCaller(caller);
111
+ if (host) {
112
+ try {
113
+ if (Array.isArray(parsedBody))
114
+ throw new ContractError("INPUT_VALIDATION_FAILED", "Host calls cannot batch MCP messages.", "mcp");
115
+ if (isRecord(parsedBody) && typeof parsedBody.method === "string" && !["initialize", "tools/call"].includes(parsedBody.method))
116
+ throw new ContractError("AUTH_DENIED", "Host callers may only initialize or call a tool.", "mcp", { status: 403 });
117
+ if (isRecord(parsedBody) && parsedBody.method === "initialize") {
118
+ const pinned = "target" in caller ? caller.target : undefined;
119
+ if (pinned && !selected.some(tool => (tool.target ? `${tool.target.kind}:${tool.target.name}` : `admin:tool:${tool.name}`) === pinned))
120
+ throw new ContractError("TARGET_MISMATCH", "Initialize must pin a mounted tool.", pinned, { status: 412 });
121
+ await access?.select(pinned ?? "mcp", caller);
122
+ await access?.check(true);
123
+ }
124
+ else {
125
+ const params = isRecord(parsedBody) && isRecord(parsedBody.params) ? parsedBody.params : undefined;
126
+ const tool = selected.find(t => t.name === params?.name);
127
+ if (tool) {
128
+ await access?.select(tool.target ? `${tool.target.kind}:${tool.target.name}` : `admin:tool:${tool.name}`, caller);
129
+ await access?.check(!!tool.page || tool.readOnly === true);
130
+ }
131
+ }
132
+ }
133
+ catch (error) {
134
+ return challenge(error, undefined, true);
135
+ }
136
+ }
137
+ if (request.method === "POST") {
138
+ for (const message of Array.isArray(parsedBody) ? parsedBody : [parsedBody]) {
139
+ if (!message || message.method !== "tools/call")
140
+ continue;
141
+ const tool = selected.find(tool => tool.name === message.params?.name);
142
+ if (!tool)
143
+ continue;
144
+ const scopes = tool.scopes ?? [];
145
+ if (caller.kind === "anonymous" && tool.closed)
146
+ return challenge(new ContractError("UNAUTHENTICATED", "Authentication is required.", "mcp"), union(requiredScopes, scopes));
147
+ if (!options.gateway && caller.kind === "user" && caller.credential === "oauth" && scopes.some(scope => !caller.scopes.includes(scope)))
148
+ return challenge(new ContractError("AUTH_DENIED", "The credential needs additional scopes.", "mcp"), union(caller.scopes, scopes));
149
+ }
150
+ }
151
+ const app = options.apps?.[surface];
152
+ const links = app ? (apps[surface] = linkSurface(app, selected, apps[surface])).links : undefined;
153
+ if (options.authorize) {
154
+ try {
155
+ for (const message of Array.isArray(parsedBody) ? parsedBody : [parsedBody]) {
156
+ if (message?.method !== "tools/call")
157
+ continue;
158
+ const tool = selected.find(tool => tool.name === message.params?.name);
159
+ if (!tool)
160
+ continue;
161
+ tool.check?.(caller);
162
+ await authorizeTarget(options.authorize, tool.target ?? { kind: tool.page ? "view" : "procedure", name: tool.name }, caller);
163
+ }
164
+ if ((Array.isArray(parsedBody) ? parsedBody : [parsedBody]).some(message => message?.method === "tools/list")) {
165
+ const visible = [];
166
+ for (const tool of selected) {
167
+ if (caller.kind === "anonymous" && tool.closed || !options.gateway && caller.kind === "user" && caller.credential === "oauth" && tool.scopes?.some(scope => !caller.scopes.includes(scope)))
168
+ continue;
169
+ try {
170
+ tool.check?.(caller);
171
+ }
172
+ catch (error) {
173
+ if (error instanceof ContractError && ["AUTH_DENIED", "UNAUTHENTICATED"].includes(error.code))
174
+ continue;
175
+ throw error;
176
+ }
177
+ if (await authorized(options.authorize, tool.target ?? { kind: tool.page ? "view" : "procedure", name: tool.name }, caller))
178
+ visible.push(tool);
179
+ }
180
+ selected = visible;
181
+ }
182
+ }
183
+ catch (error) {
184
+ return challenge(error);
185
+ }
186
+ }
187
+ // Host calls execute in the SDK callback, after transport validation.
188
+ const handler = createMcpHandler(() => {
189
+ const schema = (value) => fromJsonSchema(value, { getValidator() { return (input) => ({ valid: true, data: input, errorMessage: undefined }); } });
190
+ const server = new McpServer({ name: "aotter.mantle", version: "0.2.0", ...options.serverInfo }, { capabilities: { tools: { listChanged: false } }, ...(options.instructions ? { instructions: options.instructions } : {}) });
191
+ if (host)
192
+ server.server.onclose = () => access?.finish(isRecord(parsedBody) && parsedBody.method === "initialize" ? undefined : new ContractError("INPUT_VALIDATION_FAILED", "MCP request refused.", "mcp", { status: 400 }));
193
+ const appMeta = links ? registerApps(server, links, parsedBody) : undefined;
194
+ for (const tool of selected) {
195
+ const meta = appMeta?.(tool.name);
196
+ if (meta === false)
197
+ continue;
198
+ server.registerTool(tool.name, { ...(meta ? { _meta: meta } : {}), ...(tool.title ? { title: text(tool.title, locale) } : {}), description: text(tool.description, locale) ?? text(tool.title, locale) ?? tool.name, inputSchema: schema(tool.page ? paging(tool.inputSchema) : tool.inputSchema), ...(tool.outputSchema ? { outputSchema: schema(tool.outputSchema) } : {}), ...(tool.annotations ? { annotations: tool.annotations } : {}) }, async (raw) => {
199
+ const metadata = options.onObservation ? { kind: "invocation", surface, invocationId: crypto.randomUUID(), tool: tool.name, caller: Object.freeze(caller.kind === "user" ? { ...caller, scopes: Object.freeze([...caller.scopes]) } : { ...caller }) } : undefined;
200
+ const started = metadata ? performance.now() : 0;
201
+ if (metadata)
202
+ observe(options.onObservation, { ...metadata, phase: "attempt", at: Date.now() });
203
+ let outcome = "succeeded", code;
204
+ try {
205
+ if (host)
206
+ tool.check?.(caller);
207
+ if (tool.run && (!host || !tool.readOnly))
208
+ checkOrigin(request, caller);
209
+ const data = await callTool(tool, raw, () => options.db(env), caller, options.handlers, access?.dryRun ? () => ({ dryRun: true, event: access.finish() }) : undefined);
210
+ if (host)
211
+ access?.finish();
212
+ return { ...(meta ? { _meta: { "net.aotter.mantle/tool": tool.name } } : {}), content: [{ type: "text", text: JSON.stringify(data) }], ...(data && typeof data === "object" && !Array.isArray(data) ? { structuredContent: data } : {}) };
213
+ }
214
+ catch (error) {
215
+ if (host)
216
+ access?.finish(error);
217
+ const diagnostic = host ? (await (await import("./host-caller.js")).hostFailure(error, caller, `mcp ${tool.name}`).json()).error : surfaceError(error, `mcp ${tool.name}`).error;
218
+ code = diagnostic.code;
219
+ outcome = code === "AUTH_DENIED" || code === "UNAUTHENTICATED" ? "denied" : "failed";
220
+ if (diagnostic.path === "request:origin")
221
+ observe(options.onRefusal, { at: Date.now(), status: 403, reason: "origin" });
222
+ const payload = { diagnostics: [diagnostic] };
223
+ return { ...(meta ? { _meta: { "net.aotter.mantle/tool": tool.name } } : {}), isError: true, content: [{ type: "text", text: JSON.stringify(payload) }], ...(tool.outputSchema ? {} : { structuredContent: payload }) };
224
+ }
225
+ finally {
226
+ if (metadata)
227
+ observe(options.onObservation, { ...metadata, phase: "completion", at: Date.now(), outcome, durationMs: Math.max(0, performance.now() - started), ...(code ? { code } : {}) });
228
+ }
229
+ });
230
+ }
231
+ return server;
232
+ }, { legacy: "stateless", maxRequestBodySize: 1024 * 1024, onerror: error => console.error("[mantle mcp] request failed", error) });
233
+ const response = await handler.fetch(request, { parsedBody });
234
+ if (host) {
235
+ if (response.status >= 400)
236
+ access?.finish(new ContractError("INPUT_VALIDATION_FAILED", "MCP request refused.", "mcp", { status: response.status }));
237
+ }
238
+ return response;
239
+ }
240
+ catch (error) {
241
+ access?.finish(error);
242
+ return (await import("./host-caller.js")).hostFailure(error, resolved, "mcp");
243
+ }
244
+ };
245
+ }
246
+ const CLIENT_CAPABILITIES_META_KEY = "io.modelcontextprotocol/clientCapabilities";
247
+ const isRecord = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
248
+ /** `unknown`: a stateless request after `initialize` carries no capabilities, so only an explicit refusal hides Apps. */
249
+ function clientUiSupport(message) {
250
+ for (const m of Array.isArray(message) ? message : [message]) {
251
+ if (!isRecord(m) || !isRecord(m.params))
252
+ continue;
253
+ const meta = m.params._meta;
254
+ const declared = isRecord(meta) && isRecord(meta[CLIENT_CAPABILITIES_META_KEY]) ? meta[CLIENT_CAPABILITIES_META_KEY] : m.method === "initialize" && isRecord(m.params.capabilities) ? m.params.capabilities : undefined;
255
+ if (!declared)
256
+ continue;
257
+ const extensions = declared.extensions, ui = isRecord(extensions) ? extensions["io.modelcontextprotocol/ui"] : undefined;
258
+ return isRecord(ui) && Array.isArray(ui.mimeTypes) && ui.mimeTypes.includes(RESOURCE_MIME_TYPE) ? "supported" : "unsupported";
259
+ }
260
+ return "unknown";
261
+ }
262
+ function appMeta(r) {
263
+ const ui = { ...(r.csp ? { csp: r.csp } : {}), ...(r.permissions ? { permissions: r.permissions } : {}), ...(r.prefersBorder !== undefined ? { prefersBorder: r.prefersBorder } : {}) };
264
+ return Object.keys(ui).length > 0 ? { ui } : undefined;
265
+ }
266
+ /** Registration uses the official SDK; HTML loaders run only on resources/read. */
267
+ function registerApps(server, links, message) {
268
+ const enabled = clientUiSupport(message) !== "unsupported";
269
+ if (enabled)
270
+ for (const resource of links.resources) {
271
+ const meta = appMeta(resource);
272
+ server.registerResource(resource.name, resource.uri, { mimeType: RESOURCE_MIME_TYPE, title: resource.title, description: resource.description, ...(meta ? { _meta: meta } : {}) }, async () => {
273
+ try {
274
+ return { contents: [{ uri: resource.uri, mimeType: RESOURCE_MIME_TYPE, text: typeof resource.html === "string" ? resource.html : await resource.html(), ...(meta ? { _meta: meta } : {}) }] };
275
+ }
276
+ catch {
277
+ console.error("[mantle mcp] resource rendering failed");
278
+ throw new Error("Internal error.");
279
+ }
280
+ });
281
+ }
282
+ return (tool) => {
283
+ if (!enabled)
284
+ return links.appOnly.has(tool) ? false : undefined;
285
+ const uri = links.renders.get(tool);
286
+ return uri ? { ui: { resourceUri: uri, ...(links.appOnly.has(tool) ? { visibility: ["app"] } : {}) }, "ui/resourceUri": uri, ...(links.appOnly.has(tool) ? {} : { "openai/outputTemplate": uri }) } : undefined;
287
+ };
288
+ }
@@ -0,0 +1,101 @@
1
+ /** MCP request handling for a generated tool table; the official SDK loads on the first MCP request. */
2
+ import type { Caller, Target, Authorize, Gateway, RequestContext, GatewayOptions } from "./contracts.js";
3
+ import type { Conversions } from "./surface.js";
4
+ export { callTool, callToolLazy } from "./mcp-call.js";
5
+ export type { McpApps, McpAppResource } from "./mcp-apps.js";
6
+ /** Options of a generated `mcp(...)`; it adds required `handlers` when the app declares ref Procedures. */
7
+ export interface Options<Env, Database> extends GatewayOptions {
8
+ apps?: Readonly<Partial<Record<"public" | "admin", import("./mcp-apps.js").McpApps | readonly import("./mcp-apps.js").McpApps[]>>>;
9
+ authorize?: Authorize;
10
+ gateway?: Gateway;
11
+ fields?: import("./user-fields.js").UserFields;
12
+ db: (env: Env) => Database;
13
+ caller?: (request: Request, env: Env, authority: {
14
+ readonly readOnly: boolean;
15
+ }) => Caller | Promise<Caller>;
16
+ locale?: string;
17
+ instructions?: string;
18
+ serverInfo?: {
19
+ name?: string;
20
+ title?: string;
21
+ version?: string;
22
+ icons?: {
23
+ src: string;
24
+ mimeType?: string;
25
+ sizes?: string[];
26
+ theme?: "light" | "dark";
27
+ }[];
28
+ };
29
+ requiredScopes?: readonly string[];
30
+ resourceMetadata?: string;
31
+ onObservation?: (event: McpObservation) => void | Promise<void>;
32
+ onRefusal?: (event: CallerRefusal) => void | Promise<void>;
33
+ }
34
+ export interface CallerRefusal {
35
+ readonly at: number;
36
+ readonly status: 401 | 403;
37
+ readonly reason: "origin" | "credential";
38
+ }
39
+ export type McpObservation = {
40
+ readonly kind: "request-refused";
41
+ readonly at: number;
42
+ readonly surface: "public" | "admin";
43
+ readonly status: 401 | 403;
44
+ } | {
45
+ readonly kind: "invocation";
46
+ readonly at: number;
47
+ readonly surface: "public" | "admin";
48
+ readonly invocationId: string;
49
+ readonly tool: string;
50
+ readonly caller: Caller;
51
+ } & ({
52
+ readonly phase: "attempt";
53
+ } | {
54
+ readonly phase: "completion";
55
+ readonly outcome: "succeeded" | "failed" | "denied";
56
+ readonly durationMs: number;
57
+ readonly code?: string;
58
+ });
59
+ type LocalizedText = string | Readonly<Record<string, string>>;
60
+ type Paging = {
61
+ limit?: number;
62
+ cursor?: string;
63
+ };
64
+ /** One tool: a paged View (`page`) or a Procedure (`run`, a write), on the public or admin surface. */
65
+ export interface Tool<Database, Handlers = never> {
66
+ readonly readOnly?: boolean;
67
+ readonly name: string;
68
+ readonly target?: Target;
69
+ /** Generated requires guard, used before application authorization. */
70
+ readonly check?: (caller: Caller) => void;
71
+ readonly surface: string;
72
+ readonly title?: LocalizedText;
73
+ readonly description: LocalizedText;
74
+ readonly outputSchema?: unknown;
75
+ readonly annotations?: {
76
+ readonly readOnlyHint?: boolean;
77
+ readonly destructiveHint?: boolean;
78
+ readonly openWorldHint?: boolean;
79
+ readonly idempotentHint?: boolean;
80
+ };
81
+ readonly inputSchema: unknown;
82
+ /** Declares an auth requirement: anonymous callers are challenged. */
83
+ readonly closed?: boolean;
84
+ /** OAuth scopes the requirement names. */
85
+ readonly scopes?: readonly string[];
86
+ readonly validate: (raw: unknown) => Record<string, unknown> | Promise<Record<string, unknown>>;
87
+ readonly convert?: Conversions;
88
+ /** A View tool: its operation path and paged boundary. */
89
+ readonly path?: string;
90
+ readonly page?: (db: Database, caller: Caller, input: never, paging: Paging) => Promise<unknown>;
91
+ readonly run?: (db: Database, caller: Caller, input: never, handlers: Handlers) => Promise<unknown>;
92
+ }
93
+ /** Request-bound tool tables keep native environment bindings outside the cached App catalogue. */
94
+ export type Tools<Env, Database, Handlers = never> = readonly Tool<Database, Handlers>[] | ((request: Request, env: Env) => readonly Tool<Database, Handlers>[] | Promise<readonly Tool<Database, Handlers>[]>);
95
+ /** The selected MCP routes; all request work loads only when an MCP request arrives. */
96
+ export declare function mcp<Env, Database, Handlers = never>(tools: Tools<Env, Database, Handlers>, options: Options<Env, Database> & {
97
+ handlers?: Handlers;
98
+ }, reads?: readonly {
99
+ readonly name: string;
100
+ readonly surface: string;
101
+ }[]): (request: Request, env: Env, ctx?: RequestContext) => Promise<Response | undefined>;
@@ -0,0 +1,25 @@
1
+ import { linkApps, linkSurface, resourcesOf } from "./mcp-apps.js";
2
+ export { callTool, callToolLazy } from "./mcp-call.js";
3
+ /** The selected MCP routes; all request work loads only when an MCP request arrives. */
4
+ export function mcp(tools, options, reads = []) {
5
+ let serve;
6
+ // a bad App configuration fails here, not on the first request
7
+ const linked = {};
8
+ const apps = {};
9
+ for (const surface of ["public", "admin"]) {
10
+ const declared = options.apps?.[surface];
11
+ if (declared) {
12
+ const app = resourcesOf(declared);
13
+ apps[surface] = app;
14
+ typeof tools === "function" ? linkApps(app) : linked[surface] = linkSurface(app, tools.filter(tool => tool.surface === surface));
15
+ }
16
+ }
17
+ options = { ...options, apps };
18
+ return async (request, env, ctx) => {
19
+ if (!/^\/mcp(?:\/admin)?\/*$/.test(new URL(request.url).pathname))
20
+ return;
21
+ const { handler } = await import("./mcp-handler.js");
22
+ serve ??= handler(tools, options, linked, reads);
23
+ return serve(request, env, ctx);
24
+ };
25
+ }
@@ -0,0 +1,27 @@
1
+ /** 0.2 media lifecycle over native target drivers. No bytes pass through this module. */
2
+ import { ContractError, type Row } from "./contracts.js";
3
+ import type { Bound } from "./binds.js";
4
+ import type { Dialect } from "./dialect/common.js";
5
+ import type { MediaAsset, MediaLibrary, MediaStorage, MediaPurposePolicy } from "./site-types.js";
6
+ export interface MediaDatabase {
7
+ read(sql: string, binds: unknown[]): Row[] | PromiseLike<Row[]>;
8
+ write(steps: readonly Bound[]): Promise<Row[][]>; /** Positive native evidence that the write rolled back; absence is uncertain. */
9
+ definitive?(error: unknown): boolean;
10
+ }
11
+ /**
12
+ * A media, site or partial-failure error with the HTTP status (and `failure` payload) its code has on the wire. Code
13
+ * outside this module raising these codes uses it: core `statusOf` maps only the core codes.
14
+ */
15
+ export declare const mediaError: (code: string, message: string, path?: string, options?: ErrorOptions) => ContractError;
16
+ export declare function mediaLibrary(driver: MediaDatabase, d: Pick<Dialect, "param" | "escapeLike" | "likeEscape" | "like">, storage: MediaStorage, policies: readonly MediaPurposePolicy[], now?: () => number): MediaLibrary;
17
+ /** The 0.2 Admin library item's convenience fields, without changing the storage DTO. */
18
+ export declare function mediaItem(asset: MediaAsset): {
19
+ id: string;
20
+ variants: readonly import("./site-types.js").MediaVariant[];
21
+ primaryUrl: string | null;
22
+ mime: string | null;
23
+ byteSize: number | null;
24
+ alt: string | null;
25
+ caption: string | null;
26
+ createdAt: number;
27
+ };