gazetta 0.6.0 → 0.8.0

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 (983) hide show
  1. package/admin-dist/assets/index-CBeq0rRb.js +693 -0
  2. package/admin-dist/assets/index-Dtg1dTZQ.css +1 -0
  3. package/admin-dist/assets/rolldown-runtime-BYbx6iT9.js +1 -0
  4. package/admin-dist/assets/{vendor-primevue-C0Q_YTCb.js → vendor-primevue-CBGHkaXv.js} +183 -39
  5. package/admin-dist/assets/{vendor-react-BipDVGow.js → vendor-react-BdW_kNCG.js} +2 -2
  6. package/admin-dist/assets/vendor-rjsf-lN2SztQt.js +33 -0
  7. package/admin-dist/assets/vendor-tiptap-C36yDquB.js +141 -0
  8. package/admin-dist/assets/vendor-vue-Bt5uR1VW.js +1 -0
  9. package/admin-dist/assets/workbox-window.prod.es5-DGMtIXHc.js +2 -0
  10. package/admin-dist/index.html +8 -8
  11. package/admin-dist/sw.js +1 -0
  12. package/dist/admin-api/archived-name-conflict.d.ts +31 -0
  13. package/dist/admin-api/archived-name-conflict.d.ts.map +1 -0
  14. package/dist/admin-api/archived-name-conflict.js +226 -0
  15. package/dist/admin-api/archived-name-conflict.js.map +1 -0
  16. package/dist/admin-api/cache-stats-logger.d.ts +83 -0
  17. package/dist/admin-api/cache-stats-logger.d.ts.map +1 -0
  18. package/dist/admin-api/cache-stats-logger.js +59 -0
  19. package/dist/admin-api/cache-stats-logger.js.map +1 -0
  20. package/dist/admin-api/error-response.d.ts +21 -0
  21. package/dist/admin-api/error-response.d.ts.map +1 -0
  22. package/dist/admin-api/error-response.js +12 -0
  23. package/dist/admin-api/error-response.js.map +1 -0
  24. package/dist/admin-api/hook-audit-emitter.d.ts +38 -0
  25. package/dist/admin-api/hook-audit-emitter.d.ts.map +1 -0
  26. package/dist/admin-api/hook-audit-emitter.js +21 -0
  27. package/dist/admin-api/hook-audit-emitter.js.map +1 -0
  28. package/dist/admin-api/index.d.ts +84 -2
  29. package/dist/admin-api/index.d.ts.map +1 -1
  30. package/dist/admin-api/index.js +257 -32
  31. package/dist/admin-api/index.js.map +1 -1
  32. package/dist/admin-api/middleware/audit.d.ts +25 -0
  33. package/dist/admin-api/middleware/audit.d.ts.map +1 -0
  34. package/dist/admin-api/middleware/audit.js +65 -0
  35. package/dist/admin-api/middleware/audit.js.map +1 -0
  36. package/dist/admin-api/middleware/capability.d.ts +8 -0
  37. package/dist/admin-api/middleware/capability.d.ts.map +1 -0
  38. package/dist/admin-api/middleware/capability.js +65 -0
  39. package/dist/admin-api/middleware/capability.js.map +1 -0
  40. package/dist/admin-api/middleware/principal.d.ts +18 -0
  41. package/dist/admin-api/middleware/principal.d.ts.map +1 -0
  42. package/dist/admin-api/middleware/principal.js +128 -0
  43. package/dist/admin-api/middleware/principal.js.map +1 -0
  44. package/dist/admin-api/routes/archive-review.d.ts +80 -0
  45. package/dist/admin-api/routes/archive-review.d.ts.map +1 -0
  46. package/dist/admin-api/routes/archive-review.js +70 -0
  47. package/dist/admin-api/routes/archive-review.js.map +1 -0
  48. package/dist/admin-api/routes/archive.d.ts +145 -0
  49. package/dist/admin-api/routes/archive.d.ts.map +1 -0
  50. package/dist/admin-api/routes/archive.js +540 -0
  51. package/dist/admin-api/routes/archive.js.map +1 -0
  52. package/dist/admin-api/routes/assets.d.ts +21 -0
  53. package/dist/admin-api/routes/assets.d.ts.map +1 -0
  54. package/dist/admin-api/routes/assets.js +586 -0
  55. package/dist/admin-api/routes/assets.js.map +1 -0
  56. package/dist/admin-api/routes/audit.d.ts +71 -0
  57. package/dist/admin-api/routes/audit.d.ts.map +1 -0
  58. package/dist/admin-api/routes/audit.js +178 -0
  59. package/dist/admin-api/routes/audit.js.map +1 -0
  60. package/dist/admin-api/routes/compare.d.ts.map +1 -1
  61. package/dist/admin-api/routes/compare.js +3 -2
  62. package/dist/admin-api/routes/compare.js.map +1 -1
  63. package/dist/admin-api/routes/fields.d.ts.map +1 -1
  64. package/dist/admin-api/routes/fields.js +2 -1
  65. package/dist/admin-api/routes/fields.js.map +1 -1
  66. package/dist/admin-api/routes/fragments.d.ts +13 -1
  67. package/dist/admin-api/routes/fragments.d.ts.map +1 -1
  68. package/dist/admin-api/routes/fragments.js +128 -67
  69. package/dist/admin-api/routes/fragments.js.map +1 -1
  70. package/dist/admin-api/routes/health.d.ts +60 -0
  71. package/dist/admin-api/routes/health.d.ts.map +1 -0
  72. package/dist/admin-api/routes/health.js +65 -0
  73. package/dist/admin-api/routes/health.js.map +1 -0
  74. package/dist/admin-api/routes/history.d.ts +2 -1
  75. package/dist/admin-api/routes/history.d.ts.map +1 -1
  76. package/dist/admin-api/routes/history.js +26 -4
  77. package/dist/admin-api/routes/history.js.map +1 -1
  78. package/dist/admin-api/routes/pages.d.ts +20 -1
  79. package/dist/admin-api/routes/pages.d.ts.map +1 -1
  80. package/dist/admin-api/routes/pages.js +158 -85
  81. package/dist/admin-api/routes/pages.js.map +1 -1
  82. package/dist/admin-api/routes/preview.d.ts.map +1 -1
  83. package/dist/admin-api/routes/preview.js +56 -17
  84. package/dist/admin-api/routes/preview.js.map +1 -1
  85. package/dist/admin-api/routes/publish.d.ts +19 -1
  86. package/dist/admin-api/routes/publish.d.ts.map +1 -1
  87. package/dist/admin-api/routes/publish.js +548 -99
  88. package/dist/admin-api/routes/publish.js.map +1 -1
  89. package/dist/admin-api/routes/rename.d.ts +62 -0
  90. package/dist/admin-api/routes/rename.d.ts.map +1 -0
  91. package/dist/admin-api/routes/rename.js +366 -0
  92. package/dist/admin-api/routes/rename.js.map +1 -0
  93. package/dist/admin-api/routes/site.d.ts.map +1 -1
  94. package/dist/admin-api/routes/site.js +6 -18
  95. package/dist/admin-api/routes/site.js.map +1 -1
  96. package/dist/admin-api/routes/system.d.ts +23 -0
  97. package/dist/admin-api/routes/system.d.ts.map +1 -0
  98. package/dist/admin-api/routes/system.js +115 -0
  99. package/dist/admin-api/routes/system.js.map +1 -0
  100. package/dist/admin-api/routes/templates.d.ts +11 -1
  101. package/dist/admin-api/routes/templates.d.ts.map +1 -1
  102. package/dist/admin-api/routes/templates.js +36 -3
  103. package/dist/admin-api/routes/templates.js.map +1 -1
  104. package/dist/admin-api/routes/validation.d.ts +47 -0
  105. package/dist/admin-api/routes/validation.d.ts.map +1 -0
  106. package/dist/admin-api/routes/validation.js +120 -0
  107. package/dist/admin-api/routes/validation.js.map +1 -0
  108. package/dist/admin-api/schemas/archive.d.ts +124 -0
  109. package/dist/admin-api/schemas/archive.d.ts.map +1 -0
  110. package/dist/admin-api/schemas/archive.js +93 -0
  111. package/dist/admin-api/schemas/archive.js.map +1 -0
  112. package/dist/admin-api/schemas/assets.d.ts +64 -0
  113. package/dist/admin-api/schemas/assets.d.ts.map +1 -0
  114. package/dist/admin-api/schemas/assets.js +59 -0
  115. package/dist/admin-api/schemas/assets.js.map +1 -0
  116. package/dist/admin-api/schemas/audit.d.ts +175 -0
  117. package/dist/admin-api/schemas/audit.d.ts.map +1 -0
  118. package/dist/admin-api/schemas/audit.js +91 -0
  119. package/dist/admin-api/schemas/audit.js.map +1 -0
  120. package/dist/admin-api/schemas/error.d.ts +94 -0
  121. package/dist/admin-api/schemas/error.d.ts.map +1 -0
  122. package/dist/admin-api/schemas/error.js +79 -0
  123. package/dist/admin-api/schemas/error.js.map +1 -0
  124. package/dist/admin-api/schemas/fragments.d.ts +2 -0
  125. package/dist/admin-api/schemas/fragments.d.ts.map +1 -1
  126. package/dist/admin-api/schemas/fragments.js +4 -0
  127. package/dist/admin-api/schemas/fragments.js.map +1 -1
  128. package/dist/admin-api/schemas/index.d.ts +10 -0
  129. package/dist/admin-api/schemas/index.d.ts.map +1 -1
  130. package/dist/admin-api/schemas/index.js +10 -0
  131. package/dist/admin-api/schemas/index.js.map +1 -1
  132. package/dist/admin-api/schemas/pages.d.ts +2 -0
  133. package/dist/admin-api/schemas/pages.d.ts.map +1 -1
  134. package/dist/admin-api/schemas/pages.js +11 -0
  135. package/dist/admin-api/schemas/pages.js.map +1 -1
  136. package/dist/admin-api/schemas/rename.d.ts +77 -0
  137. package/dist/admin-api/schemas/rename.d.ts.map +1 -0
  138. package/dist/admin-api/schemas/rename.js +75 -0
  139. package/dist/admin-api/schemas/rename.js.map +1 -0
  140. package/dist/admin-api/schemas/site.d.ts +3 -2
  141. package/dist/admin-api/schemas/site.d.ts.map +1 -1
  142. package/dist/admin-api/schemas/site.js +3 -2
  143. package/dist/admin-api/schemas/site.js.map +1 -1
  144. package/dist/admin-api/schemas/system.d.ts +28 -0
  145. package/dist/admin-api/schemas/system.d.ts.map +1 -0
  146. package/dist/admin-api/schemas/system.js +35 -0
  147. package/dist/admin-api/schemas/system.js.map +1 -0
  148. package/dist/admin-api/schemas/targets.d.ts +55 -0
  149. package/dist/admin-api/schemas/targets.d.ts.map +1 -1
  150. package/dist/admin-api/schemas/targets.js +46 -0
  151. package/dist/admin-api/schemas/targets.js.map +1 -1
  152. package/dist/admin-api/schemas/templates.d.ts +54 -0
  153. package/dist/admin-api/schemas/templates.d.ts.map +1 -1
  154. package/dist/admin-api/schemas/templates.js +21 -0
  155. package/dist/admin-api/schemas/templates.js.map +1 -1
  156. package/dist/admin-api/schemas/validation.d.ts +101 -0
  157. package/dist/admin-api/schemas/validation.d.ts.map +1 -0
  158. package/dist/admin-api/schemas/validation.js +57 -0
  159. package/dist/admin-api/schemas/validation.js.map +1 -0
  160. package/dist/admin-api/source-context.d.ts +66 -17
  161. package/dist/admin-api/source-context.d.ts.map +1 -1
  162. package/dist/admin-api/source-context.js +43 -8
  163. package/dist/admin-api/source-context.js.map +1 -1
  164. package/dist/ai/adapter-scaffold.d.ts +63 -0
  165. package/dist/ai/adapter-scaffold.d.ts.map +1 -0
  166. package/dist/ai/adapter-scaffold.js +89 -0
  167. package/dist/ai/adapter-scaffold.js.map +1 -0
  168. package/dist/ai/compose-prompt.d.ts +50 -0
  169. package/dist/ai/compose-prompt.d.ts.map +1 -0
  170. package/dist/ai/compose-prompt.js +49 -0
  171. package/dist/ai/compose-prompt.js.map +1 -0
  172. package/dist/ai/errors.d.ts +65 -0
  173. package/dist/ai/errors.d.ts.map +1 -0
  174. package/dist/ai/errors.js +59 -0
  175. package/dist/ai/errors.js.map +1 -0
  176. package/dist/ai/index.d.ts +17 -0
  177. package/dist/ai/index.d.ts.map +1 -0
  178. package/dist/ai/index.js +16 -0
  179. package/dist/ai/index.js.map +1 -0
  180. package/dist/ai/provider.d.ts +76 -0
  181. package/dist/ai/provider.d.ts.map +1 -0
  182. package/dist/ai/provider.js +13 -0
  183. package/dist/ai/provider.js.map +1 -0
  184. package/dist/ai/refusal.d.ts +50 -0
  185. package/dist/ai/refusal.d.ts.map +1 -0
  186. package/dist/ai/refusal.js +100 -0
  187. package/dist/ai/refusal.js.map +1 -0
  188. package/dist/ai/vision-prep.d.ts +32 -0
  189. package/dist/ai/vision-prep.d.ts.map +1 -0
  190. package/dist/ai/vision-prep.js +113 -0
  191. package/dist/ai/vision-prep.js.map +1 -0
  192. package/dist/alt/adapter.d.ts +140 -0
  193. package/dist/alt/adapter.d.ts.map +1 -0
  194. package/dist/alt/adapter.js +7 -0
  195. package/dist/alt/adapter.js.map +1 -0
  196. package/dist/alt/anthropic.d.ts +63 -0
  197. package/dist/alt/anthropic.d.ts.map +1 -0
  198. package/dist/alt/anthropic.js +147 -0
  199. package/dist/alt/anthropic.js.map +1 -0
  200. package/dist/alt/config.d.ts +67 -0
  201. package/dist/alt/config.d.ts.map +1 -0
  202. package/dist/alt/config.js +41 -0
  203. package/dist/alt/config.js.map +1 -0
  204. package/dist/alt/factory.d.ts +19 -0
  205. package/dist/alt/factory.d.ts.map +1 -0
  206. package/dist/alt/factory.js +69 -0
  207. package/dist/alt/factory.js.map +1 -0
  208. package/dist/alt/null-adapter.d.ts +3 -0
  209. package/dist/alt/null-adapter.d.ts.map +1 -0
  210. package/dist/alt/null-adapter.js +43 -0
  211. package/dist/alt/null-adapter.js.map +1 -0
  212. package/dist/alt/ollama.d.ts +40 -0
  213. package/dist/alt/ollama.d.ts.map +1 -0
  214. package/dist/alt/ollama.js +139 -0
  215. package/dist/alt/ollama.js.map +1 -0
  216. package/dist/alt/openai.d.ts +46 -0
  217. package/dist/alt/openai.d.ts.map +1 -0
  218. package/dist/alt/openai.js +118 -0
  219. package/dist/alt/openai.js.map +1 -0
  220. package/dist/alt/prompt-policies.d.ts +79 -0
  221. package/dist/alt/prompt-policies.d.ts.map +1 -0
  222. package/dist/alt/prompt-policies.js +67 -0
  223. package/dist/alt/prompt-policies.js.map +1 -0
  224. package/dist/alt/route-handler.d.ts +56 -0
  225. package/dist/alt/route-handler.d.ts.map +1 -0
  226. package/dist/alt/route-handler.js +122 -0
  227. package/dist/alt/route-handler.js.map +1 -0
  228. package/dist/alt/suggester.d.ts +57 -0
  229. package/dist/alt/suggester.d.ts.map +1 -0
  230. package/dist/alt/suggester.js +133 -0
  231. package/dist/alt/suggester.js.map +1 -0
  232. package/dist/app.js +1 -1
  233. package/dist/app.js.map +1 -1
  234. package/dist/archive-aliases.d.ts +79 -0
  235. package/dist/archive-aliases.d.ts.map +1 -0
  236. package/dist/archive-aliases.js +60 -0
  237. package/dist/archive-aliases.js.map +1 -0
  238. package/dist/archive-helpers.d.ts +73 -0
  239. package/dist/archive-helpers.d.ts.map +1 -0
  240. package/dist/archive-helpers.js +94 -0
  241. package/dist/archive-helpers.js.map +1 -0
  242. package/dist/assets/analyze-audio.d.ts +3 -0
  243. package/dist/assets/analyze-audio.d.ts.map +1 -0
  244. package/dist/assets/analyze-audio.js +80 -0
  245. package/dist/assets/analyze-audio.js.map +1 -0
  246. package/dist/assets/analyze-image.d.ts +19 -0
  247. package/dist/assets/analyze-image.d.ts.map +1 -0
  248. package/dist/assets/analyze-image.js +123 -0
  249. package/dist/assets/analyze-image.js.map +1 -0
  250. package/dist/assets/analyze.d.ts +94 -0
  251. package/dist/assets/analyze.d.ts.map +1 -0
  252. package/dist/assets/analyze.js +45 -0
  253. package/dist/assets/analyze.js.map +1 -0
  254. package/dist/assets/asset-deps.d.ts +30 -0
  255. package/dist/assets/asset-deps.d.ts.map +1 -0
  256. package/dist/assets/asset-deps.js +42 -0
  257. package/dist/assets/asset-deps.js.map +1 -0
  258. package/dist/assets/asset-paths.d.ts +155 -0
  259. package/dist/assets/asset-paths.d.ts.map +1 -0
  260. package/dist/assets/asset-paths.js +197 -0
  261. package/dist/assets/asset-paths.js.map +1 -0
  262. package/dist/assets/delete.d.ts +75 -0
  263. package/dist/assets/delete.d.ts.map +1 -0
  264. package/dist/assets/delete.js +82 -0
  265. package/dist/assets/delete.js.map +1 -0
  266. package/dist/assets/errors.d.ts +241 -0
  267. package/dist/assets/errors.d.ts.map +1 -0
  268. package/dist/assets/errors.js +300 -0
  269. package/dist/assets/errors.js.map +1 -0
  270. package/dist/assets/find-refs.d.ts +37 -0
  271. package/dist/assets/find-refs.d.ts.map +1 -0
  272. package/dist/assets/find-refs.js +35 -0
  273. package/dist/assets/find-refs.js.map +1 -0
  274. package/dist/assets/hash.d.ts +13 -0
  275. package/dist/assets/hash.d.ts.map +1 -0
  276. package/dist/assets/hash.js +43 -0
  277. package/dist/assets/hash.js.map +1 -0
  278. package/dist/assets/image-metadata.d.ts +11 -0
  279. package/dist/assets/image-metadata.d.ts.map +1 -0
  280. package/dist/assets/image-metadata.js +31 -0
  281. package/dist/assets/image-metadata.js.map +1 -0
  282. package/dist/assets/ingest-locale.d.ts +86 -0
  283. package/dist/assets/ingest-locale.d.ts.map +1 -0
  284. package/dist/assets/ingest-locale.js +209 -0
  285. package/dist/assets/ingest-locale.js.map +1 -0
  286. package/dist/assets/ingest.d.ts +96 -0
  287. package/dist/assets/ingest.d.ts.map +1 -0
  288. package/dist/assets/ingest.js +308 -0
  289. package/dist/assets/ingest.js.map +1 -0
  290. package/dist/assets/kind-compat.d.ts +34 -0
  291. package/dist/assets/kind-compat.d.ts.map +1 -0
  292. package/dist/assets/kind-compat.js +33 -0
  293. package/dist/assets/kind-compat.js.map +1 -0
  294. package/dist/assets/list.d.ts +46 -0
  295. package/dist/assets/list.d.ts.map +1 -0
  296. package/dist/assets/list.js +102 -0
  297. package/dist/assets/list.js.map +1 -0
  298. package/dist/assets/manifest-default.d.ts +56 -0
  299. package/dist/assets/manifest-default.d.ts.map +1 -0
  300. package/dist/assets/manifest-default.js +120 -0
  301. package/dist/assets/manifest-default.js.map +1 -0
  302. package/dist/assets/manifest-filename.d.ts +52 -0
  303. package/dist/assets/manifest-filename.d.ts.map +1 -0
  304. package/dist/assets/manifest-filename.js +104 -0
  305. package/dist/assets/manifest-filename.js.map +1 -0
  306. package/dist/assets/manifest-locale.d.ts +60 -0
  307. package/dist/assets/manifest-locale.d.ts.map +1 -0
  308. package/dist/assets/manifest-locale.js +206 -0
  309. package/dist/assets/manifest-locale.js.map +1 -0
  310. package/dist/assets/manifest-merge.d.ts +66 -0
  311. package/dist/assets/manifest-merge.d.ts.map +1 -0
  312. package/dist/assets/manifest-merge.js +82 -0
  313. package/dist/assets/manifest-merge.js.map +1 -0
  314. package/dist/assets/manifest.d.ts +83 -0
  315. package/dist/assets/manifest.d.ts.map +1 -0
  316. package/dist/assets/manifest.js +93 -0
  317. package/dist/assets/manifest.js.map +1 -0
  318. package/dist/assets/mime-sniff.d.ts +18 -0
  319. package/dist/assets/mime-sniff.d.ts.map +1 -0
  320. package/dist/assets/mime-sniff.js +84 -0
  321. package/dist/assets/mime-sniff.js.map +1 -0
  322. package/dist/assets/preprocess-svg.d.ts +3 -0
  323. package/dist/assets/preprocess-svg.d.ts.map +1 -0
  324. package/dist/assets/preprocess-svg.js +49 -0
  325. package/dist/assets/preprocess-svg.js.map +1 -0
  326. package/dist/assets/preprocess.d.ts +62 -0
  327. package/dist/assets/preprocess.d.ts.map +1 -0
  328. package/dist/assets/preprocess.js +86 -0
  329. package/dist/assets/preprocess.js.map +1 -0
  330. package/dist/assets/publish-plan.d.ts +41 -0
  331. package/dist/assets/publish-plan.d.ts.map +1 -0
  332. package/dist/assets/publish-plan.js +49 -0
  333. package/dist/assets/publish-plan.js.map +1 -0
  334. package/dist/assets/publish.d.ts +33 -0
  335. package/dist/assets/publish.d.ts.map +1 -0
  336. package/dist/assets/publish.js +81 -0
  337. package/dist/assets/publish.js.map +1 -0
  338. package/dist/assets/refs.d.ts +37 -0
  339. package/dist/assets/refs.d.ts.map +1 -0
  340. package/dist/assets/refs.js +33 -0
  341. package/dist/assets/refs.js.map +1 -0
  342. package/dist/assets/remove-override.d.ts +42 -0
  343. package/dist/assets/remove-override.d.ts.map +1 -0
  344. package/dist/assets/remove-override.js +53 -0
  345. package/dist/assets/remove-override.js.map +1 -0
  346. package/dist/assets/rename.d.ts +43 -0
  347. package/dist/assets/rename.d.ts.map +1 -0
  348. package/dist/assets/rename.js +271 -0
  349. package/dist/assets/rename.js.map +1 -0
  350. package/dist/assets/replace.d.ts +37 -0
  351. package/dist/assets/replace.d.ts.map +1 -0
  352. package/dist/assets/replace.js +195 -0
  353. package/dist/assets/replace.js.map +1 -0
  354. package/dist/assets/resolve.d.ts +141 -0
  355. package/dist/assets/resolve.d.ts.map +1 -0
  356. package/dist/assets/resolve.js +381 -0
  357. package/dist/assets/resolve.js.map +1 -0
  358. package/dist/assets/rewrite-manifest-asset-ref.d.ts +44 -0
  359. package/dist/assets/rewrite-manifest-asset-ref.d.ts.map +1 -0
  360. package/dist/assets/rewrite-manifest-asset-ref.js +51 -0
  361. package/dist/assets/rewrite-manifest-asset-ref.js.map +1 -0
  362. package/dist/assets/scan-manifest-for-asset.d.ts +63 -0
  363. package/dist/assets/scan-manifest-for-asset.d.ts.map +1 -0
  364. package/dist/assets/scan-manifest-for-asset.js +105 -0
  365. package/dist/assets/scan-manifest-for-asset.js.map +1 -0
  366. package/dist/assets/serve-route.d.ts +45 -0
  367. package/dist/assets/serve-route.d.ts.map +1 -0
  368. package/dist/assets/serve-route.js +123 -0
  369. package/dist/assets/serve-route.js.map +1 -0
  370. package/dist/assets/svg-sanitize.d.ts +38 -0
  371. package/dist/assets/svg-sanitize.d.ts.map +1 -0
  372. package/dist/assets/svg-sanitize.js +209 -0
  373. package/dist/assets/svg-sanitize.js.map +1 -0
  374. package/dist/assets/update-metadata.d.ts +61 -0
  375. package/dist/assets/update-metadata.d.ts.map +1 -0
  376. package/dist/assets/update-metadata.js +82 -0
  377. package/dist/assets/update-metadata.js.map +1 -0
  378. package/dist/assets/url.d.ts +82 -0
  379. package/dist/assets/url.d.ts.map +1 -0
  380. package/dist/assets/url.js +103 -0
  381. package/dist/assets/url.js.map +1 -0
  382. package/dist/assets/validate.d.ts +74 -0
  383. package/dist/assets/validate.d.ts.map +1 -0
  384. package/dist/assets/validate.js +136 -0
  385. package/dist/assets/validate.js.map +1 -0
  386. package/dist/assets/variants.d.ts +23 -0
  387. package/dist/assets/variants.d.ts.map +1 -0
  388. package/dist/assets/variants.js +74 -0
  389. package/dist/assets/variants.js.map +1 -0
  390. package/dist/audit/config.d.ts +75 -0
  391. package/dist/audit/config.d.ts.map +1 -0
  392. package/dist/audit/config.js +91 -0
  393. package/dist/audit/config.js.map +1 -0
  394. package/dist/audit/context.d.ts +98 -0
  395. package/dist/audit/context.d.ts.map +1 -0
  396. package/dist/audit/context.js +51 -0
  397. package/dist/audit/context.js.map +1 -0
  398. package/dist/audit/errors.d.ts +73 -0
  399. package/dist/audit/errors.d.ts.map +1 -0
  400. package/dist/audit/errors.js +78 -0
  401. package/dist/audit/errors.js.map +1 -0
  402. package/dist/audit/index.d.ts +16 -0
  403. package/dist/audit/index.d.ts.map +1 -0
  404. package/dist/audit/index.js +10 -0
  405. package/dist/audit/index.js.map +1 -0
  406. package/dist/audit/provider.d.ts +73 -0
  407. package/dist/audit/provider.d.ts.map +1 -0
  408. package/dist/audit/provider.js +2 -0
  409. package/dist/audit/provider.js.map +1 -0
  410. package/dist/audit/providers/history.d.ts +66 -0
  411. package/dist/audit/providers/history.d.ts.map +1 -0
  412. package/dist/audit/providers/history.js +102 -0
  413. package/dist/audit/providers/history.js.map +1 -0
  414. package/dist/audit/pseudonymize.d.ts +26 -0
  415. package/dist/audit/pseudonymize.d.ts.map +1 -0
  416. package/dist/audit/pseudonymize.js +86 -0
  417. package/dist/audit/pseudonymize.js.map +1 -0
  418. package/dist/audit/recorder.d.ts +102 -0
  419. package/dist/audit/recorder.d.ts.map +1 -0
  420. package/dist/audit/recorder.js +55 -0
  421. package/dist/audit/recorder.js.map +1 -0
  422. package/dist/audit/retention.d.ts +83 -0
  423. package/dist/audit/retention.d.ts.map +1 -0
  424. package/dist/audit/retention.js +142 -0
  425. package/dist/audit/retention.js.map +1 -0
  426. package/dist/audit/source-ip.d.ts +32 -0
  427. package/dist/audit/source-ip.d.ts.map +1 -0
  428. package/dist/audit/source-ip.js +164 -0
  429. package/dist/audit/source-ip.js.map +1 -0
  430. package/dist/audit/types.d.ts +143 -0
  431. package/dist/audit/types.d.ts.map +1 -0
  432. package/dist/audit/types.js +33 -0
  433. package/dist/audit/types.js.map +1 -0
  434. package/dist/audit/user-agent.d.ts +28 -0
  435. package/dist/audit/user-agent.d.ts.map +1 -0
  436. package/dist/audit/user-agent.js +63 -0
  437. package/dist/audit/user-agent.js.map +1 -0
  438. package/dist/auth/capabilities.d.ts +28 -0
  439. package/dist/auth/capabilities.d.ts.map +1 -0
  440. package/dist/auth/capabilities.js +101 -0
  441. package/dist/auth/capabilities.js.map +1 -0
  442. package/dist/auth/config.d.ts +109 -0
  443. package/dist/auth/config.d.ts.map +1 -0
  444. package/dist/auth/config.js +221 -0
  445. package/dist/auth/config.js.map +1 -0
  446. package/dist/auth/errors.d.ts +72 -0
  447. package/dist/auth/errors.d.ts.map +1 -0
  448. package/dist/auth/errors.js +78 -0
  449. package/dist/auth/errors.js.map +1 -0
  450. package/dist/auth/factory.d.ts +43 -0
  451. package/dist/auth/factory.d.ts.map +1 -0
  452. package/dist/auth/factory.js +48 -0
  453. package/dist/auth/factory.js.map +1 -0
  454. package/dist/auth/index.d.ts +21 -0
  455. package/dist/auth/index.d.ts.map +1 -0
  456. package/dist/auth/index.js +14 -0
  457. package/dist/auth/index.js.map +1 -0
  458. package/dist/auth/ip-match.d.ts +29 -0
  459. package/dist/auth/ip-match.d.ts.map +1 -0
  460. package/dist/auth/ip-match.js +162 -0
  461. package/dist/auth/ip-match.js.map +1 -0
  462. package/dist/auth/provider.d.ts +76 -0
  463. package/dist/auth/provider.d.ts.map +1 -0
  464. package/dist/auth/provider.js +2 -0
  465. package/dist/auth/provider.js.map +1 -0
  466. package/dist/auth/providers/aws-cognito.d.ts +55 -0
  467. package/dist/auth/providers/aws-cognito.d.ts.map +1 -0
  468. package/dist/auth/providers/aws-cognito.js +114 -0
  469. package/dist/auth/providers/aws-cognito.js.map +1 -0
  470. package/dist/auth/providers/azure-easy-auth.d.ts +7 -0
  471. package/dist/auth/providers/azure-easy-auth.d.ts.map +1 -0
  472. package/dist/auth/providers/azure-easy-auth.js +48 -0
  473. package/dist/auth/providers/azure-easy-auth.js.map +1 -0
  474. package/dist/auth/providers/cloudflare-access.d.ts +71 -0
  475. package/dist/auth/providers/cloudflare-access.d.ts.map +1 -0
  476. package/dist/auth/providers/cloudflare-access.js +120 -0
  477. package/dist/auth/providers/cloudflare-access.js.map +1 -0
  478. package/dist/auth/providers/forwarded-user.d.ts +31 -0
  479. package/dist/auth/providers/forwarded-user.d.ts.map +1 -0
  480. package/dist/auth/providers/forwarded-user.js +72 -0
  481. package/dist/auth/providers/forwarded-user.js.map +1 -0
  482. package/dist/auth/providers/none.d.ts +6 -0
  483. package/dist/auth/providers/none.d.ts.map +1 -0
  484. package/dist/auth/providers/none.js +19 -0
  485. package/dist/auth/providers/none.js.map +1 -0
  486. package/dist/auth/providers/tailscale.d.ts +7 -0
  487. package/dist/auth/providers/tailscale.d.ts.map +1 -0
  488. package/dist/auth/providers/tailscale.js +30 -0
  489. package/dist/auth/providers/tailscale.js.map +1 -0
  490. package/dist/auth/role-resolver.d.ts +38 -0
  491. package/dist/auth/role-resolver.d.ts.map +1 -0
  492. package/dist/auth/role-resolver.js +92 -0
  493. package/dist/auth/role-resolver.js.map +1 -0
  494. package/dist/auth/types.d.ts +150 -0
  495. package/dist/auth/types.d.ts.map +1 -0
  496. package/dist/auth/types.js +60 -0
  497. package/dist/auth/types.js.map +1 -0
  498. package/dist/cache/errors.d.ts +41 -0
  499. package/dist/cache/errors.d.ts.map +1 -0
  500. package/dist/cache/errors.js +44 -0
  501. package/dist/cache/errors.js.map +1 -0
  502. package/dist/cache/factories.d.ts +17 -0
  503. package/dist/cache/factories.d.ts.map +1 -0
  504. package/dist/cache/factories.js +17 -0
  505. package/dist/cache/factories.js.map +1 -0
  506. package/dist/cache/keys.d.ts +63 -0
  507. package/dist/cache/keys.d.ts.map +1 -0
  508. package/dist/cache/keys.js +145 -0
  509. package/dist/cache/keys.js.map +1 -0
  510. package/dist/cache/memory.d.ts +51 -0
  511. package/dist/cache/memory.d.ts.map +1 -0
  512. package/dist/cache/memory.js +204 -0
  513. package/dist/cache/memory.js.map +1 -0
  514. package/dist/cache/per-site.d.ts +22 -0
  515. package/dist/cache/per-site.d.ts.map +1 -0
  516. package/dist/cache/per-site.js +114 -0
  517. package/dist/cache/per-site.js.map +1 -0
  518. package/dist/cache/types.d.ts +142 -0
  519. package/dist/cache/types.d.ts.map +1 -0
  520. package/dist/cache/types.js +33 -0
  521. package/dist/cache/types.js.map +1 -0
  522. package/dist/cli/archive.d.ts +44 -0
  523. package/dist/cli/archive.d.ts.map +1 -0
  524. package/dist/cli/archive.js +310 -0
  525. package/dist/cli/archive.js.map +1 -0
  526. package/dist/cli/assets-cli.d.ts +58 -0
  527. package/dist/cli/assets-cli.d.ts.map +1 -0
  528. package/dist/cli/assets-cli.js +233 -0
  529. package/dist/cli/assets-cli.js.map +1 -0
  530. package/dist/cli/assets-display.d.ts +112 -0
  531. package/dist/cli/assets-display.d.ts.map +1 -0
  532. package/dist/cli/assets-display.js +106 -0
  533. package/dist/cli/assets-display.js.map +1 -0
  534. package/dist/cli/bootstrap.d.ts +15 -10
  535. package/dist/cli/bootstrap.d.ts.map +1 -1
  536. package/dist/cli/bootstrap.js +59 -24
  537. package/dist/cli/bootstrap.js.map +1 -1
  538. package/dist/cli/dev-template-watcher.d.ts +29 -0
  539. package/dist/cli/dev-template-watcher.d.ts.map +1 -0
  540. package/dist/cli/dev-template-watcher.js +38 -0
  541. package/dist/cli/dev-template-watcher.js.map +1 -0
  542. package/dist/cli/history.d.ts.map +1 -1
  543. package/dist/cli/history.js +5 -3
  544. package/dist/cli/history.js.map +1 -1
  545. package/dist/cli/index.js +737 -374
  546. package/dist/cli/index.js.map +1 -1
  547. package/dist/cli/validate-flags.d.ts +29 -0
  548. package/dist/cli/validate-flags.d.ts.map +1 -0
  549. package/dist/cli/validate-flags.js +49 -0
  550. package/dist/cli/validate-flags.js.map +1 -0
  551. package/dist/compare.d.ts +1 -1
  552. package/dist/compare.d.ts.map +1 -1
  553. package/dist/compare.js +40 -35
  554. package/dist/compare.js.map +1 -1
  555. package/dist/component-ids.d.ts +25 -0
  556. package/dist/component-ids.d.ts.map +1 -0
  557. package/dist/component-ids.js +83 -0
  558. package/dist/component-ids.js.map +1 -0
  559. package/dist/config/define.d.ts +61 -0
  560. package/dist/config/define.d.ts.map +1 -0
  561. package/dist/config/define.js +64 -0
  562. package/dist/config/define.js.map +1 -0
  563. package/dist/config/errors.d.ts +32 -0
  564. package/dist/config/errors.d.ts.map +1 -0
  565. package/dist/config/errors.js +40 -0
  566. package/dist/config/errors.js.map +1 -0
  567. package/dist/config/index.d.ts +13 -0
  568. package/dist/config/index.d.ts.map +1 -0
  569. package/dist/config/index.js +20 -0
  570. package/dist/config/index.js.map +1 -0
  571. package/dist/config/loader.d.ts +105 -0
  572. package/dist/config/loader.d.ts.map +1 -0
  573. package/dist/config/loader.js +265 -0
  574. package/dist/config/loader.js.map +1 -0
  575. package/dist/config/schemas.d.ts +89 -0
  576. package/dist/config/schemas.d.ts.map +1 -0
  577. package/dist/config/schemas.js +172 -0
  578. package/dist/config/schemas.js.map +1 -0
  579. package/dist/config/types.d.ts +32 -0
  580. package/dist/config/types.d.ts.map +1 -0
  581. package/dist/config/types.js +15 -0
  582. package/dist/config/types.js.map +1 -0
  583. package/dist/dep-sidecars.d.ts +127 -0
  584. package/dist/dep-sidecars.d.ts.map +1 -0
  585. package/dist/dep-sidecars.js +122 -0
  586. package/dist/dep-sidecars.js.map +1 -0
  587. package/dist/deploy/cloudflare-workers.d.ts +46 -0
  588. package/dist/deploy/cloudflare-workers.d.ts.map +1 -0
  589. package/dist/deploy/cloudflare-workers.js +213 -0
  590. package/dist/deploy/cloudflare-workers.js.map +1 -0
  591. package/dist/deploy/errors.d.ts +66 -0
  592. package/dist/deploy/errors.d.ts.map +1 -0
  593. package/dist/deploy/errors.js +82 -0
  594. package/dist/deploy/errors.js.map +1 -0
  595. package/dist/deploy/index.d.ts +9 -0
  596. package/dist/deploy/index.d.ts.map +1 -0
  597. package/dist/deploy/index.js +3 -0
  598. package/dist/deploy/index.js.map +1 -0
  599. package/dist/deploy/types.d.ts +162 -0
  600. package/dist/deploy/types.d.ts.map +1 -0
  601. package/dist/deploy/types.js +2 -0
  602. package/dist/deploy/types.js.map +1 -0
  603. package/dist/editor/AssetEmbeddedWidget.d.ts +3 -0
  604. package/dist/editor/AssetEmbeddedWidget.d.ts.map +1 -0
  605. package/dist/editor/AssetEmbeddedWidget.js +146 -0
  606. package/dist/editor/AssetEmbeddedWidget.js.map +1 -0
  607. package/dist/editor/mount.d.ts +12 -1
  608. package/dist/editor/mount.d.ts.map +1 -1
  609. package/dist/editor/mount.js +36 -5
  610. package/dist/editor/mount.js.map +1 -1
  611. package/dist/format.d.ts +44 -0
  612. package/dist/format.d.ts.map +1 -0
  613. package/dist/format.js +65 -0
  614. package/dist/format.js.map +1 -0
  615. package/dist/fragment-deps.d.ts +24 -0
  616. package/dist/fragment-deps.d.ts.map +1 -0
  617. package/dist/fragment-deps.js +20 -0
  618. package/dist/fragment-deps.js.map +1 -0
  619. package/dist/fragments/create.d.ts +70 -0
  620. package/dist/fragments/create.d.ts.map +1 -0
  621. package/dist/fragments/create.js +93 -0
  622. package/dist/fragments/create.js.map +1 -0
  623. package/dist/fragments/publish.d.ts +37 -0
  624. package/dist/fragments/publish.d.ts.map +1 -0
  625. package/dist/fragments/publish.js +52 -0
  626. package/dist/fragments/publish.js.map +1 -0
  627. package/dist/fragments/save.d.ts +81 -0
  628. package/dist/fragments/save.d.ts.map +1 -0
  629. package/dist/fragments/save.js +105 -0
  630. package/dist/fragments/save.js.map +1 -0
  631. package/dist/hash.d.ts +0 -6
  632. package/dist/hash.d.ts.map +1 -1
  633. package/dist/hash.js +0 -18
  634. package/dist/hash.js.map +1 -1
  635. package/dist/history-provider.d.ts.map +1 -1
  636. package/dist/history-provider.js +30 -8
  637. package/dist/history-provider.js.map +1 -1
  638. package/dist/history-recorder.d.ts +10 -6
  639. package/dist/history-recorder.d.ts.map +1 -1
  640. package/dist/history-recorder.js +13 -5
  641. package/dist/history-recorder.js.map +1 -1
  642. package/dist/history-restorer.d.ts.map +1 -1
  643. package/dist/history-restorer.js +34 -2
  644. package/dist/history-restorer.js.map +1 -1
  645. package/dist/history.d.ts +26 -8
  646. package/dist/history.d.ts.map +1 -1
  647. package/dist/hooks/audit-emitter.d.ts +73 -0
  648. package/dist/hooks/audit-emitter.d.ts.map +1 -0
  649. package/dist/hooks/audit-emitter.js +13 -0
  650. package/dist/hooks/audit-emitter.js.map +1 -0
  651. package/dist/hooks/context.d.ts +78 -0
  652. package/dist/hooks/context.d.ts.map +1 -0
  653. package/dist/hooks/context.js +56 -0
  654. package/dist/hooks/context.js.map +1 -0
  655. package/dist/hooks/contribution.d.ts +90 -0
  656. package/dist/hooks/contribution.d.ts.map +1 -0
  657. package/dist/hooks/contribution.js +2 -0
  658. package/dist/hooks/contribution.js.map +1 -0
  659. package/dist/hooks/dispatch.d.ts +30 -0
  660. package/dist/hooks/dispatch.d.ts.map +1 -0
  661. package/dist/hooks/dispatch.js +252 -0
  662. package/dist/hooks/dispatch.js.map +1 -0
  663. package/dist/hooks/errors.d.ts +100 -0
  664. package/dist/hooks/errors.d.ts.map +1 -0
  665. package/dist/hooks/errors.js +103 -0
  666. package/dist/hooks/errors.js.map +1 -0
  667. package/dist/hooks/index.d.ts +15 -0
  668. package/dist/hooks/index.d.ts.map +1 -0
  669. package/dist/hooks/index.js +6 -0
  670. package/dist/hooks/index.js.map +1 -0
  671. package/dist/hooks/registry.d.ts +53 -0
  672. package/dist/hooks/registry.d.ts.map +1 -0
  673. package/dist/hooks/registry.js +139 -0
  674. package/dist/hooks/registry.js.map +1 -0
  675. package/dist/hooks/storage.d.ts +43 -0
  676. package/dist/hooks/storage.d.ts.map +1 -0
  677. package/dist/hooks/storage.js +2 -0
  678. package/dist/hooks/storage.js.map +1 -0
  679. package/dist/hooks/types.d.ts +324 -0
  680. package/dist/hooks/types.d.ts.map +1 -0
  681. package/dist/hooks/types.js +2 -0
  682. package/dist/hooks/types.js.map +1 -0
  683. package/dist/index.d.ts +27 -9
  684. package/dist/index.d.ts.map +1 -1
  685. package/dist/index.js +50 -7
  686. package/dist/index.js.map +1 -1
  687. package/dist/locale.d.ts +25 -1
  688. package/dist/locale.d.ts.map +1 -1
  689. package/dist/locale.js +44 -2
  690. package/dist/locale.js.map +1 -1
  691. package/dist/manifest-save.d.ts +255 -0
  692. package/dist/manifest-save.d.ts.map +1 -0
  693. package/dist/manifest-save.js +260 -0
  694. package/dist/manifest-save.js.map +1 -0
  695. package/dist/manifest.d.ts +1 -2
  696. package/dist/manifest.d.ts.map +1 -1
  697. package/dist/manifest.js +43 -44
  698. package/dist/manifest.js.map +1 -1
  699. package/dist/node-floor.d.ts +3 -0
  700. package/dist/node-floor.d.ts.map +1 -0
  701. package/dist/node-floor.js +3 -0
  702. package/dist/node-floor.js.map +1 -0
  703. package/dist/pages/create.d.ts +103 -0
  704. package/dist/pages/create.d.ts.map +1 -0
  705. package/dist/pages/create.js +117 -0
  706. package/dist/pages/create.js.map +1 -0
  707. package/dist/pages/publish.d.ts +59 -0
  708. package/dist/pages/publish.d.ts.map +1 -0
  709. package/dist/pages/publish.js +78 -0
  710. package/dist/pages/publish.js.map +1 -0
  711. package/dist/pages/save.d.ts +97 -0
  712. package/dist/pages/save.d.ts.map +1 -0
  713. package/dist/pages/save.js +138 -0
  714. package/dist/pages/save.js.map +1 -0
  715. package/dist/providers/_atomic-write.d.ts +9 -0
  716. package/dist/providers/_atomic-write.d.ts.map +1 -0
  717. package/dist/providers/_atomic-write.js +72 -0
  718. package/dist/providers/_atomic-write.js.map +1 -0
  719. package/dist/providers/_rm-ignore-missing.d.ts +31 -0
  720. package/dist/providers/_rm-ignore-missing.d.ts.map +1 -0
  721. package/dist/providers/_rm-ignore-missing.js +12 -0
  722. package/dist/providers/_rm-ignore-missing.js.map +1 -0
  723. package/dist/providers/_stream-interop.d.ts +23 -0
  724. package/dist/providers/_stream-interop.d.ts.map +1 -0
  725. package/dist/providers/_stream-interop.js +21 -0
  726. package/dist/providers/_stream-interop.js.map +1 -0
  727. package/dist/providers/azure-blob.d.ts.map +1 -1
  728. package/dist/providers/azure-blob.js +60 -0
  729. package/dist/providers/azure-blob.js.map +1 -1
  730. package/dist/providers/factories.d.ts +65 -0
  731. package/dist/providers/factories.d.ts.map +1 -0
  732. package/dist/providers/factories.js +189 -0
  733. package/dist/providers/factories.js.map +1 -0
  734. package/dist/providers/filesystem.d.ts +4 -0
  735. package/dist/providers/filesystem.d.ts.map +1 -1
  736. package/dist/providers/filesystem.js +63 -2
  737. package/dist/providers/filesystem.js.map +1 -1
  738. package/dist/providers/s3.d.ts.map +1 -1
  739. package/dist/providers/s3.js +84 -1
  740. package/dist/providers/s3.js.map +1 -1
  741. package/dist/publish-item.d.ts +225 -0
  742. package/dist/publish-item.d.ts.map +1 -0
  743. package/dist/publish-item.js +210 -0
  744. package/dist/publish-item.js.map +1 -0
  745. package/dist/publish-rendered.d.ts +37 -17
  746. package/dist/publish-rendered.d.ts.map +1 -1
  747. package/dist/publish-rendered.js +144 -71
  748. package/dist/publish-rendered.js.map +1 -1
  749. package/dist/publish-renderers.d.ts +132 -0
  750. package/dist/publish-renderers.d.ts.map +1 -0
  751. package/dist/publish-renderers.js +240 -0
  752. package/dist/publish-renderers.js.map +1 -0
  753. package/dist/publish-run.d.ts +223 -0
  754. package/dist/publish-run.d.ts.map +1 -0
  755. package/dist/publish-run.js +307 -0
  756. package/dist/publish-run.js.map +1 -0
  757. package/dist/publish.d.ts +13 -12
  758. package/dist/publish.d.ts.map +1 -1
  759. package/dist/publish.js +24 -57
  760. package/dist/publish.js.map +1 -1
  761. package/dist/render-for-analysis.d.ts +24 -0
  762. package/dist/render-for-analysis.d.ts.map +1 -0
  763. package/dist/render-for-analysis.js +146 -0
  764. package/dist/render-for-analysis.js.map +1 -0
  765. package/dist/resolver.d.ts +12 -2
  766. package/dist/resolver.d.ts.map +1 -1
  767. package/dist/resolver.js +101 -32
  768. package/dist/resolver.js.map +1 -1
  769. package/dist/runtime/archive-marker.d.ts +62 -0
  770. package/dist/runtime/archive-marker.d.ts.map +1 -0
  771. package/dist/runtime/archive-marker.js +88 -0
  772. package/dist/runtime/archive-marker.js.map +1 -0
  773. package/dist/runtime/capability-gap-warnings.d.ts +42 -0
  774. package/dist/runtime/capability-gap-warnings.d.ts.map +1 -0
  775. package/dist/runtime/capability-gap-warnings.js +28 -0
  776. package/dist/runtime/capability-gap-warnings.js.map +1 -0
  777. package/dist/runtime/redirects-emit.d.ts +93 -0
  778. package/dist/runtime/redirects-emit.d.ts.map +1 -0
  779. package/dist/runtime/redirects-emit.js +89 -0
  780. package/dist/runtime/redirects-emit.js.map +1 -0
  781. package/dist/runtime/runtime-capabilities.d.ts +79 -0
  782. package/dist/runtime/runtime-capabilities.d.ts.map +1 -0
  783. package/dist/runtime/runtime-capabilities.js +60 -0
  784. package/dist/runtime/runtime-capabilities.js.map +1 -0
  785. package/dist/save-etag.d.ts +69 -0
  786. package/dist/save-etag.d.ts.map +1 -0
  787. package/dist/save-etag.js +118 -0
  788. package/dist/save-etag.js.map +1 -0
  789. package/dist/schema/dimensions.d.ts +78 -0
  790. package/dist/schema/dimensions.d.ts.map +1 -0
  791. package/dist/schema/dimensions.js +97 -0
  792. package/dist/schema/dimensions.js.map +1 -0
  793. package/dist/schema/helpers.d.ts +108 -0
  794. package/dist/schema/helpers.d.ts.map +1 -0
  795. package/dist/schema/helpers.js +133 -0
  796. package/dist/schema/helpers.js.map +1 -0
  797. package/dist/schema/index.d.ts +27 -0
  798. package/dist/schema/index.d.ts.map +1 -0
  799. package/dist/schema/index.js +25 -0
  800. package/dist/schema/index.js.map +1 -0
  801. package/dist/schema/types.d.ts +390 -0
  802. package/dist/schema/types.d.ts.map +1 -0
  803. package/dist/schema/types.js +25 -0
  804. package/dist/schema/types.js.map +1 -0
  805. package/dist/selector-chain.d.ts +63 -0
  806. package/dist/selector-chain.d.ts.map +1 -0
  807. package/dist/selector-chain.js +58 -0
  808. package/dist/selector-chain.js.map +1 -0
  809. package/dist/sidecars.d.ts +19 -18
  810. package/dist/sidecars.d.ts.map +1 -1
  811. package/dist/sidecars.js +70 -62
  812. package/dist/sidecars.js.map +1 -1
  813. package/dist/site-loader.d.ts +42 -4
  814. package/dist/site-loader.d.ts.map +1 -1
  815. package/dist/site-loader.js +27 -8
  816. package/dist/site-loader.js.map +1 -1
  817. package/dist/targets.d.ts +21 -12
  818. package/dist/targets.d.ts.map +1 -1
  819. package/dist/targets.js +27 -117
  820. package/dist/targets.js.map +1 -1
  821. package/dist/testing/admin-cache-contract.d.ts +52 -0
  822. package/dist/testing/admin-cache-contract.d.ts.map +1 -0
  823. package/dist/testing/admin-cache-contract.js +203 -0
  824. package/dist/testing/admin-cache-contract.js.map +1 -0
  825. package/dist/testing/index.d.ts +11 -0
  826. package/dist/testing/index.d.ts.map +1 -0
  827. package/dist/testing/index.js +11 -0
  828. package/dist/testing/index.js.map +1 -0
  829. package/dist/themes.d.ts +69 -0
  830. package/dist/themes.d.ts.map +1 -0
  831. package/dist/themes.js +85 -0
  832. package/dist/themes.js.map +1 -0
  833. package/dist/transforms/adapter.d.ts +115 -0
  834. package/dist/transforms/adapter.d.ts.map +1 -0
  835. package/dist/transforms/adapter.js +2 -0
  836. package/dist/transforms/adapter.js.map +1 -0
  837. package/dist/transforms/cloudflare.d.ts +17 -0
  838. package/dist/transforms/cloudflare.d.ts.map +1 -0
  839. package/dist/transforms/cloudflare.js +110 -0
  840. package/dist/transforms/cloudflare.js.map +1 -0
  841. package/dist/transforms/factories.d.ts +16 -0
  842. package/dist/transforms/factories.d.ts.map +1 -0
  843. package/dist/transforms/factories.js +18 -0
  844. package/dist/transforms/factories.js.map +1 -0
  845. package/dist/transforms/index.d.ts +17 -0
  846. package/dist/transforms/index.d.ts.map +1 -0
  847. package/dist/transforms/index.js +6 -0
  848. package/dist/transforms/index.js.map +1 -0
  849. package/dist/transforms/sharp.d.ts +17 -0
  850. package/dist/transforms/sharp.d.ts.map +1 -0
  851. package/dist/transforms/sharp.js +57 -0
  852. package/dist/transforms/sharp.js.map +1 -0
  853. package/dist/types.d.ts +485 -34
  854. package/dist/types.d.ts.map +1 -1
  855. package/dist/types.js +20 -1
  856. package/dist/types.js.map +1 -1
  857. package/dist/validation/alt-required-walker.d.ts +27 -0
  858. package/dist/validation/alt-required-walker.d.ts.map +1 -0
  859. package/dist/validation/alt-required-walker.js +108 -0
  860. package/dist/validation/alt-required-walker.js.map +1 -0
  861. package/dist/validation/default-registry.d.ts +12 -0
  862. package/dist/validation/default-registry.d.ts.map +1 -0
  863. package/dist/validation/default-registry.js +55 -0
  864. package/dist/validation/default-registry.js.map +1 -0
  865. package/dist/validation/publish-audit.d.ts +44 -0
  866. package/dist/validation/publish-audit.d.ts.map +1 -0
  867. package/dist/validation/publish-audit.js +64 -0
  868. package/dist/validation/publish-audit.js.map +1 -0
  869. package/dist/validation/registry.d.ts +23 -0
  870. package/dist/validation/registry.d.ts.map +1 -0
  871. package/dist/validation/registry.js +15 -0
  872. package/dist/validation/registry.js.map +1 -0
  873. package/dist/validation/save-delta.d.ts +46 -0
  874. package/dist/validation/save-delta.d.ts.map +1 -0
  875. package/dist/validation/save-delta.js +57 -0
  876. package/dist/validation/save-delta.js.map +1 -0
  877. package/dist/validation/scanner.d.ts +91 -0
  878. package/dist/validation/scanner.d.ts.map +1 -0
  879. package/dist/validation/scanner.js +327 -0
  880. package/dist/validation/scanner.js.map +1 -0
  881. package/dist/validation/template-impact.d.ts +52 -0
  882. package/dist/validation/template-impact.d.ts.map +1 -0
  883. package/dist/validation/template-impact.js +53 -0
  884. package/dist/validation/template-impact.js.map +1 -0
  885. package/dist/validation/types.d.ts +123 -0
  886. package/dist/validation/types.d.ts.map +1 -0
  887. package/dist/validation/types.js +7 -0
  888. package/dist/validation/types.js.map +1 -0
  889. package/dist/validation/validators/accessibility.d.ts +3 -0
  890. package/dist/validation/validators/accessibility.d.ts.map +1 -0
  891. package/dist/validation/validators/accessibility.js +106 -0
  892. package/dist/validation/validators/accessibility.js.map +1 -0
  893. package/dist/validation/validators/aliasof-points-to-archived.d.ts +40 -0
  894. package/dist/validation/validators/aliasof-points-to-archived.d.ts.map +1 -0
  895. package/dist/validation/validators/aliasof-points-to-archived.js +34 -0
  896. package/dist/validation/validators/aliasof-points-to-archived.js.map +1 -0
  897. package/dist/validation/validators/alt-required.d.ts +3 -0
  898. package/dist/validation/validators/alt-required.d.ts.map +1 -0
  899. package/dist/validation/validators/alt-required.js +118 -0
  900. package/dist/validation/validators/alt-required.js.map +1 -0
  901. package/dist/validation/validators/archive-not-supported-on-target.d.ts +3 -0
  902. package/dist/validation/validators/archive-not-supported-on-target.d.ts.map +1 -0
  903. package/dist/validation/validators/archive-not-supported-on-target.js +38 -0
  904. package/dist/validation/validators/archive-not-supported-on-target.js.map +1 -0
  905. package/dist/validation/validators/broken-links.d.ts +3 -0
  906. package/dist/validation/validators/broken-links.d.ts.map +1 -0
  907. package/dist/validation/validators/broken-links.js +190 -0
  908. package/dist/validation/validators/broken-links.js.map +1 -0
  909. package/dist/validation/validators/circular-alias.d.ts +36 -0
  910. package/dist/validation/validators/circular-alias.d.ts.map +1 -0
  911. package/dist/validation/validators/circular-alias.js +63 -0
  912. package/dist/validation/validators/circular-alias.js.map +1 -0
  913. package/dist/validation/validators/circular-fragment.d.ts +15 -0
  914. package/dist/validation/validators/circular-fragment.d.ts.map +1 -0
  915. package/dist/validation/validators/circular-fragment.js +97 -0
  916. package/dist/validation/validators/circular-fragment.js.map +1 -0
  917. package/dist/validation/validators/dangling-alias.d.ts +38 -0
  918. package/dist/validation/validators/dangling-alias.d.ts.map +1 -0
  919. package/dist/validation/validators/dangling-alias.js +31 -0
  920. package/dist/validation/validators/dangling-alias.js.map +1 -0
  921. package/dist/validation/validators/deploy-target-type-supported.d.ts +3 -0
  922. package/dist/validation/validators/deploy-target-type-supported.d.ts.map +1 -0
  923. package/dist/validation/validators/deploy-target-type-supported.js +32 -0
  924. package/dist/validation/validators/deploy-target-type-supported.js.map +1 -0
  925. package/dist/validation/validators/dynamic-route-conflict.d.ts +18 -0
  926. package/dist/validation/validators/dynamic-route-conflict.d.ts.map +1 -0
  927. package/dist/validation/validators/dynamic-route-conflict.js +80 -0
  928. package/dist/validation/validators/dynamic-route-conflict.js.map +1 -0
  929. package/dist/validation/validators/html-validity.d.ts +3 -0
  930. package/dist/validation/validators/html-validity.d.ts.map +1 -0
  931. package/dist/validation/validators/html-validity.js +89 -0
  932. package/dist/validation/validators/html-validity.js.map +1 -0
  933. package/dist/validation/validators/orphaned-locale-file.d.ts +21 -0
  934. package/dist/validation/validators/orphaned-locale-file.d.ts.map +1 -0
  935. package/dist/validation/validators/orphaned-locale-file.js +84 -0
  936. package/dist/validation/validators/orphaned-locale-file.js.map +1 -0
  937. package/dist/validation/validators/referenced-archived-without-alias.d.ts +3 -0
  938. package/dist/validation/validators/referenced-archived-without-alias.d.ts.map +1 -0
  939. package/dist/validation/validators/referenced-archived-without-alias.js +65 -0
  940. package/dist/validation/validators/referenced-archived-without-alias.js.map +1 -0
  941. package/dist/validation/validators/referenced-asset-exists.d.ts +13 -0
  942. package/dist/validation/validators/referenced-asset-exists.d.ts.map +1 -0
  943. package/dist/validation/validators/referenced-asset-exists.js +80 -0
  944. package/dist/validation/validators/referenced-asset-exists.js.map +1 -0
  945. package/dist/validation/validators/referenced-fragment-exists.d.ts +9 -0
  946. package/dist/validation/validators/referenced-fragment-exists.d.ts.map +1 -0
  947. package/dist/validation/validators/referenced-fragment-exists.js +52 -0
  948. package/dist/validation/validators/referenced-fragment-exists.js.map +1 -0
  949. package/dist/validation/validators/referenced-template-exists.d.ts +10 -0
  950. package/dist/validation/validators/referenced-template-exists.d.ts.map +1 -0
  951. package/dist/validation/validators/referenced-template-exists.js +74 -0
  952. package/dist/validation/validators/referenced-template-exists.js.map +1 -0
  953. package/dist/validation/validators/schema-conformance.d.ts +17 -0
  954. package/dist/validation/validators/schema-conformance.d.ts.map +1 -0
  955. package/dist/validation/validators/schema-conformance.js +94 -0
  956. package/dist/validation/validators/schema-conformance.js.map +1 -0
  957. package/dist/validation/validators/target-deploy-coverage.d.ts +3 -0
  958. package/dist/validation/validators/target-deploy-coverage.d.ts.map +1 -0
  959. package/dist/validation/validators/target-deploy-coverage.js +37 -0
  960. package/dist/validation/validators/target-deploy-coverage.js.map +1 -0
  961. package/dist/validation/validators/unused-fragment.d.ts +16 -0
  962. package/dist/validation/validators/unused-fragment.d.ts.map +1 -0
  963. package/dist/validation/validators/unused-fragment.js +86 -0
  964. package/dist/validation/validators/unused-fragment.js.map +1 -0
  965. package/package.json +69 -27
  966. package/admin-dist/assets/index-B6pVot0Y.css +0 -1
  967. package/admin-dist/assets/index-DniLwxJA.js +0 -609
  968. package/admin-dist/assets/rolldown-runtime-COnpUsM8.js +0 -1
  969. package/admin-dist/assets/vendor-rjsf-HKBAjOmQ.js +0 -32
  970. package/admin-dist/assets/vendor-tiptap-IyO99U4R.js +0 -142
  971. package/admin-dist/assets/vendor-vue-D3wBSmDf.js +0 -1
  972. package/dist/providers/r2.d.ts +0 -8
  973. package/dist/providers/r2.d.ts.map +0 -1
  974. package/dist/providers/r2.js +0 -86
  975. package/dist/providers/r2.js.map +0 -1
  976. package/dist/publish-locale.d.ts +0 -44
  977. package/dist/publish-locale.d.ts.map +0 -1
  978. package/dist/publish-locale.js +0 -103
  979. package/dist/publish-locale.js.map +0 -1
  980. package/dist/source-sidecars.d.ts +0 -32
  981. package/dist/source-sidecars.d.ts.map +0 -1
  982. package/dist/source-sidecars.js +0 -98
  983. package/dist/source-sidecars.js.map +0 -1
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Alt-text prompt policies — five `AltPromptPolicy` modules that each
3
+ * own one dimension of prompt content.
4
+ *
5
+ * # Why split into five
6
+ *
7
+ * Per [team-preferences rule 18], "structurally correct from the
8
+ * start". A single mega-string would be a god-string with five
9
+ * reasons to change (task framing, style, length, locale, output
10
+ * discipline). Splitting at the SOLID seam means:
11
+ *
12
+ * - WCAG guidance update → edit `styleGuidancePolicy` only
13
+ * - Locale strategy change → edit `localePolicy` only
14
+ * - Length convention change → edit `lengthPolicy` only
15
+ *
16
+ * Each policy is independently testable. The composer assembles them
17
+ * via `composePrompt(req, DEFAULT_POLICIES)`.
18
+ *
19
+ * # Adding a new style
20
+ *
21
+ * Future styles like `'marketing'` or `'technical'` extend the
22
+ * `AltStyle` enum + add a switch arm in `styleGuidancePolicy`. Other
23
+ * policies untouched (OCP).
24
+ *
25
+ * # Locale handling
26
+ *
27
+ * Direct generation: when locale ≠ default, ask the model to write in
28
+ * that locale. Modern vision models are competently multilingual at
29
+ * description tasks. Translation as a separate pipeline was rejected
30
+ * — would require a parallel `TranslationAdapter` system before its
31
+ * second consumer exists.
32
+ */
33
+ import type { AltPromptPolicy } from './adapter.js';
34
+ /**
35
+ * Policy 1 — frame the task. Sets the model's frame: this is alt
36
+ * text generation following web-accessibility conventions, not
37
+ * caption generation.
38
+ */
39
+ export declare const taskFramingPolicy: AltPromptPolicy;
40
+ /**
41
+ * Policy 2 — style guidance per `request.style`. Currently only
42
+ * `'descriptive'`; extending the enum adds a switch arm here.
43
+ *
44
+ * The descriptive guidance steers the model away from common
45
+ * caption-style patterns ("Image of...", "A photograph of...") and
46
+ * toward direct description.
47
+ */
48
+ export declare const styleGuidancePolicy: AltPromptPolicy;
49
+ /**
50
+ * Policy 3 — length cap as model guidance. Soft instruction; the
51
+ * suggester doesn't enforce truncation. WAI-ARIA convention is 125
52
+ * chars; per-call override via `request.maxChars`.
53
+ */
54
+ export declare const lengthPolicy: AltPromptPolicy;
55
+ /**
56
+ * Policy 4 — locale instruction. Empty string when locale is the
57
+ * default (composer drops empty-string policies; the prompt has one
58
+ * fewer paragraph), non-empty otherwise.
59
+ *
60
+ * When locale ≠ 'en', the model writes the description in that
61
+ * language directly. No translation step.
62
+ */
63
+ export declare const localePolicy: AltPromptPolicy;
64
+ /**
65
+ * Policy 5 — output discipline. Clamp the model's tendency to add
66
+ * preamble or wrapper quotes around its answer. Last in the order
67
+ * because it's the closing instruction.
68
+ */
69
+ export declare const outputDisciplinePolicy: AltPromptPolicy;
70
+ /**
71
+ * Default policy set, in composition order. Most prompt-tuning lives
72
+ * in editing the policies above; the order here changes only when
73
+ * paragraph priority changes (rare).
74
+ *
75
+ * Callers can pass a custom array for one-off requests, but the
76
+ * default is what every alt-text generation uses in production.
77
+ */
78
+ export declare const DEFAULT_ALT_PROMPT_POLICIES: readonly AltPromptPolicy[];
79
+ //# sourceMappingURL=prompt-policies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-policies.d.ts","sourceRoot":"","sources":["../../src/alt/prompt-policies.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,KAAK,EAAE,eAAe,EAAY,MAAM,cAAc,CAAA;AAQ7D;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,eACgD,CAAA;AAEhF;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,EAAE,eAMjC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,eAA8D,CAAA;AAEzF;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,EAAE,eAG1B,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,eAA6E,CAAA;AAElH;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,EAAE,SAAS,eAAe,EAMjE,CAAA"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * The default locale for which `localePolicy` doesn't add anything.
3
+ * Aligned with the WCAG-grounded prompts being written in English.
4
+ */
5
+ const DEFAULT_LOCALE = 'en';
6
+ /**
7
+ * Policy 1 — frame the task. Sets the model's frame: this is alt
8
+ * text generation following web-accessibility conventions, not
9
+ * caption generation.
10
+ */
11
+ export const taskFramingPolicy = () => `You are writing alt text for a webpage image, following WCAG 2.1 guidelines.`;
12
+ /**
13
+ * Policy 2 — style guidance per `request.style`. Currently only
14
+ * `'descriptive'`; extending the enum adds a switch arm here.
15
+ *
16
+ * The descriptive guidance steers the model away from common
17
+ * caption-style patterns ("Image of...", "A photograph of...") and
18
+ * toward direct description.
19
+ */
20
+ export const styleGuidancePolicy = req => {
21
+ const style = req.style;
22
+ switch (style) {
23
+ case 'descriptive':
24
+ return `Describe what's visually present and meaningful. Be specific and concrete. Don't start with "image of" or "picture of" — write the description directly.`;
25
+ }
26
+ };
27
+ /**
28
+ * Policy 3 — length cap as model guidance. Soft instruction; the
29
+ * suggester doesn't enforce truncation. WAI-ARIA convention is 125
30
+ * chars; per-call override via `request.maxChars`.
31
+ */
32
+ export const lengthPolicy = req => `Maximum ${req.maxChars} characters.`;
33
+ /**
34
+ * Policy 4 — locale instruction. Empty string when locale is the
35
+ * default (composer drops empty-string policies; the prompt has one
36
+ * fewer paragraph), non-empty otherwise.
37
+ *
38
+ * When locale ≠ 'en', the model writes the description in that
39
+ * language directly. No translation step.
40
+ */
41
+ export const localePolicy = req => {
42
+ if (req.locale === DEFAULT_LOCALE)
43
+ return '';
44
+ return `Write the description in ${req.locale}.`;
45
+ };
46
+ /**
47
+ * Policy 5 — output discipline. Clamp the model's tendency to add
48
+ * preamble or wrapper quotes around its answer. Last in the order
49
+ * because it's the closing instruction.
50
+ */
51
+ export const outputDisciplinePolicy = () => `Output the description only, no preamble or quotes.`;
52
+ /**
53
+ * Default policy set, in composition order. Most prompt-tuning lives
54
+ * in editing the policies above; the order here changes only when
55
+ * paragraph priority changes (rare).
56
+ *
57
+ * Callers can pass a custom array for one-off requests, but the
58
+ * default is what every alt-text generation uses in production.
59
+ */
60
+ export const DEFAULT_ALT_PROMPT_POLICIES = [
61
+ taskFramingPolicy,
62
+ styleGuidancePolicy,
63
+ lengthPolicy,
64
+ localePolicy,
65
+ outputDisciplinePolicy,
66
+ ];
67
+ //# sourceMappingURL=prompt-policies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-policies.js","sourceRoot":"","sources":["../../src/alt/prompt-policies.ts"],"names":[],"mappings":"AAkCA;;;GAGG;AACH,MAAM,cAAc,GAAG,IAAI,CAAA;AAE3B;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAoB,GAAG,EAAE,CACrD,8EAA8E,CAAA;AAEhF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAoB,GAAG,CAAC,EAAE;IACxD,MAAM,KAAK,GAAa,GAAG,CAAC,KAAK,CAAA;IACjC,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,aAAa;YAChB,OAAO,0JAA0J,CAAA;IACrK,CAAC;AACH,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAoB,GAAG,CAAC,EAAE,CAAC,WAAW,GAAG,CAAC,QAAQ,cAAc,CAAA;AAEzF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAoB,GAAG,CAAC,EAAE;IACjD,IAAI,GAAG,CAAC,MAAM,KAAK,cAAc;QAAE,OAAO,EAAE,CAAA;IAC5C,OAAO,4BAA4B,GAAG,CAAC,MAAM,GAAG,CAAA;AAClD,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAoB,GAAG,EAAE,CAAC,qDAAqD,CAAA;AAElH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAA+B;IACrE,iBAAiB;IACjB,mBAAmB;IACnB,YAAY;IACZ,YAAY;IACZ,sBAAsB;CACvB,CAAA"}
@@ -0,0 +1,56 @@
1
+ import type { GazettaManifest, SiteManifest, StorageProvider, TargetConfig } from '../types.js';
2
+ /**
3
+ * Result of orchestration. The route handler maps these to HTTP
4
+ * responses uniformly:
5
+ *
6
+ * - `'unavailable'` → 503 (no adapter / unsupported MIME)
7
+ * - `'failed'` → 502 (adapter threw)
8
+ * - `'not-found'` → 404 (asset doesn't exist)
9
+ * - `'ok'` → 200 (with body, including possible refused: true)
10
+ *
11
+ * `provider` is exposed on `ok` so the route handler can include it
12
+ * in the audit event (per testing-plan.md gap #4 — refusal forensics).
13
+ */
14
+ export type SuggestAltResult = {
15
+ kind: 'ok';
16
+ suggestion: {
17
+ text: string;
18
+ refused: boolean;
19
+ refusalReason: string | null;
20
+ };
21
+ provider: string;
22
+ } | {
23
+ kind: 'unavailable';
24
+ message: string;
25
+ } | {
26
+ kind: 'failed';
27
+ message: string;
28
+ } | {
29
+ kind: 'not-found';
30
+ message: string;
31
+ };
32
+ export interface SuggestAltOptions {
33
+ /** Asset name (from `:name` URL param). */
34
+ name: string;
35
+ /** Where assets live in storage (typically `'assets'`). */
36
+ assetsRoot: string;
37
+ /** Storage provider for the resolved target. */
38
+ storage: StorageProvider;
39
+ /** Site manifest carrying `ai:` and `altText:` blocks. */
40
+ site: Pick<SiteManifest, 'ai' | 'altText'>;
41
+ /** Resolved target config (target-level overrides applied via factory). */
42
+ target: Pick<TargetConfig, 'altText'> | undefined;
43
+ /** Optional gazetta-level manifest; first rung of the three-rung chain. */
44
+ gazetta?: Pick<GazettaManifest, 'ai' | 'altText'>;
45
+ /** Locale to generate alt in. Defaults to 'en' upstream. */
46
+ locale: string;
47
+ /** Optional AbortSignal forwarded to the adapter. */
48
+ signal?: AbortSignal;
49
+ }
50
+ /**
51
+ * Run an alt-text suggestion for an existing asset. Pure orchestration
52
+ * — no HTTP, no logging, no streaming. Returns a structured result
53
+ * that the route handler maps to HTTP.
54
+ */
55
+ export declare function suggestAltForAsset(opts: SuggestAltOptions): Promise<SuggestAltResult>;
56
+ //# sourceMappingURL=route-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-handler.d.ts","sourceRoot":"","sources":["../../src/alt/route-handler.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAK/F;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,gBAAgB,GACxB;IACE,IAAI,EAAE,IAAI,CAAA;IACV,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;IAC5E,QAAQ,EAAE,MAAM,CAAA;CACjB,GACD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAE1C,MAAM,WAAW,iBAAiB;IAChC,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAA;IACZ,2DAA2D;IAC3D,UAAU,EAAE,MAAM,CAAA;IAClB,gDAAgD;IAChD,OAAO,EAAE,eAAe,CAAA;IACxB,0DAA0D;IAC1D,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,SAAS,CAAC,CAAA;IAC1C,2EAA2E;IAC3E,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,GAAG,SAAS,CAAA;IACjD,2EAA2E;IAC3E,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,GAAG,SAAS,CAAC,CAAA;IACjD,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAA;IACd,qDAAqD;IACrD,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAgG3F"}
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Route-level orchestration for `POST /api/assets/:name/suggest-alt`.
3
+ *
4
+ * This module owns the wiring between the admin-api HTTP layer and the
5
+ * alt-text task: loads the asset manifest, reads bytes from storage,
6
+ * builds the suggester, runs it, returns the response body.
7
+ *
8
+ * Lives outside `admin-api/routes/assets.ts` so route handlers stay
9
+ * thin (HTTP concerns only) and the orchestration is unit-testable
10
+ * without spinning up Hono.
11
+ *
12
+ * # SOLID
13
+ *
14
+ * - SRP: this module owns "given a name + locale + storage + site,
15
+ * return a suggestion or a typed error". No HTTP concerns; no
16
+ * adapter construction (delegates to `buildAltAdapter`).
17
+ * - DIP: depends on `StorageProvider` + `SiteManifest` + factory
18
+ * functions, never on a specific provider. Tests substitute via
19
+ * the same abstractions.
20
+ * - OCP: adding response fields (e.g., locale fallback used) is one
21
+ * additional field on the returned shape; no changes to the route.
22
+ */
23
+ import { readManifest } from '../assets/manifest.js';
24
+ import { assetStoragePaths } from '../assets/asset-paths.js';
25
+ import { AssetManifestNotFoundError } from '../assets/errors.js';
26
+ import { buildAltAdapter } from './factory.js';
27
+ import { resolveAltConfig } from './config.js';
28
+ import { createAltSuggester } from './suggester.js';
29
+ /**
30
+ * Run an alt-text suggestion for an existing asset. Pure orchestration
31
+ * — no HTTP, no logging, no streaming. Returns a structured result
32
+ * that the route handler maps to HTTP.
33
+ */
34
+ export async function suggestAltForAsset(opts) {
35
+ // Resolve config first to validate the feature is configured for
36
+ // this site/target. No adapter construction yet — cheap.
37
+ const resolved = resolveAltConfig(opts.site, opts.target, opts.gazetta);
38
+ if (!resolved) {
39
+ return {
40
+ kind: 'unavailable',
41
+ message: 'AI alt-text is not configured for this site. Add an `altText:` block to site.config.ts.',
42
+ };
43
+ }
44
+ // Load the asset manifest. Wrapped in try/catch so we surface
45
+ // missing-asset as a typed result rather than letting the asset
46
+ // domain's typed error escape into the route handler's
47
+ // pattern-match list.
48
+ let manifest;
49
+ try {
50
+ manifest = await readManifest(opts.storage, opts.assetsRoot, opts.name);
51
+ }
52
+ catch (err) {
53
+ if (err instanceof AssetManifestNotFoundError) {
54
+ return { kind: 'not-found', message: `Asset '${opts.name}' not found` };
55
+ }
56
+ // Other asset-domain errors bubble — they indicate misconfiguration
57
+ // (e.g., corrupt manifest), which the route handler maps via
58
+ // `respondWithAssetError`.
59
+ throw err;
60
+ }
61
+ // Build the adapter via the factory. Returns nullAltAdapter when no
62
+ // provider is configured — the suggester's `available()` check
63
+ // surfaces this as `false` and we map to 503.
64
+ const adapter = buildAltAdapter(opts.site, opts.target, opts.gazetta);
65
+ const suggester = createAltSuggester({ adapter });
66
+ if (!suggester.available(manifest.mime)) {
67
+ return {
68
+ kind: 'unavailable',
69
+ message: `AI alt-text adapter unavailable. Check that '${resolved.provider.name}' credentials are valid and that the asset MIME (${manifest.mime}) is supported.`,
70
+ };
71
+ }
72
+ // Resolve the bytes path for the default-locale variant. v1.5
73
+ // suggests against the asset's default bytes regardless of the
74
+ // requested locale — locale only affects the prompt language. Future
75
+ // locale-specific bytes (e.g., a French-text-overlay version) could
76
+ // route through the override slices; deferred until a real consumer
77
+ // requests it.
78
+ const paths = assetStoragePaths(opts.assetsRoot, manifest);
79
+ let bytes;
80
+ try {
81
+ bytes = await opts.storage.readBytes(paths.defaultBytes);
82
+ }
83
+ catch (err) {
84
+ return {
85
+ kind: 'failed',
86
+ message: `Could not read asset bytes for '${opts.name}': ${err instanceof Error ? err.message : 'unknown error'}`,
87
+ };
88
+ }
89
+ // Optional poster bytes for animated images — the analyzer extracts
90
+ // them at upload time and writes a manifest path; we forward to the
91
+ // suggester so vision-prep skips re-rasterization.
92
+ let posterBytes;
93
+ if (manifest.poster) {
94
+ try {
95
+ posterBytes = await opts.storage.readBytes(`${opts.assetsRoot}/${manifest.poster}`);
96
+ }
97
+ catch {
98
+ // Poster missing or unreadable — fall through to source bytes.
99
+ // Vision-prep handles the rasterize-source path.
100
+ posterBytes = undefined;
101
+ }
102
+ }
103
+ const suggestion = await suggester.suggest({
104
+ bytes,
105
+ mime: manifest.mime,
106
+ hash: manifest.hash,
107
+ locale: opts.locale,
108
+ maxImageEdge: resolved.maxImageEdge,
109
+ posterBytes,
110
+ }, opts.signal);
111
+ if (suggestion === null) {
112
+ // The suggester returns null on capability miss, abort, or any
113
+ // typed AI error. We've already verified availability above, so
114
+ // here the cause is most likely a transport failure.
115
+ return {
116
+ kind: 'failed',
117
+ message: `Alt-text generation failed. Check ${resolved.provider} status and retry.`,
118
+ };
119
+ }
120
+ return { kind: 'ok', suggestion, provider: resolved.provider.name };
121
+ }
122
+ //# sourceMappingURL=route-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-handler.js","sourceRoot":"","sources":["../../src/alt/route-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAA;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AA2CnD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAuB;IAC9D,iEAAiE;IACjE,yDAAyD;IACzD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IACvE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;YACL,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,yFAAyF;SACnG,CAAA;IACH,CAAC;IAED,8DAA8D;IAC9D,gEAAgE;IAChE,uDAAuD;IACvD,sBAAsB;IACtB,IAAI,QAAkD,CAAA;IACtD,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;IACzE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,0BAA0B,EAAE,CAAC;YAC9C,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,IAAI,CAAC,IAAI,aAAa,EAAE,CAAA;QACzE,CAAC;QACD,oEAAoE;QACpE,6DAA6D;QAC7D,2BAA2B;QAC3B,MAAM,GAAG,CAAA;IACX,CAAC;IAED,oEAAoE;IACpE,+DAA+D;IAC/D,8CAA8C;IAC9C,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IACrE,MAAM,SAAS,GAAG,kBAAkB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;IAEjD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,OAAO;YACL,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,gDAAgD,QAAQ,CAAC,QAAQ,CAAC,IAAI,oDAAoD,QAAQ,CAAC,IAAI,iBAAiB;SAClK,CAAA;IACH,CAAC;IAED,8DAA8D;IAC9D,+DAA+D;IAC/D,qEAAqE;IACrE,oEAAoE;IACpE,oEAAoE;IACpE,eAAe;IACf,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IAE1D,IAAI,KAAiB,CAAA;IACrB,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IAC1D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,mCAAmC,IAAI,CAAC,IAAI,MAAM,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;SAClH,CAAA;IACH,CAAC;IAED,oEAAoE;IACpE,oEAAoE;IACpE,mDAAmD;IACnD,IAAI,WAAmC,CAAA;IACvC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;QACrF,CAAC;QAAC,MAAM,CAAC;YACP,+DAA+D;YAC/D,iDAAiD;YACjD,WAAW,GAAG,SAAS,CAAA;QACzB,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,OAAO,CACxC;QACE,KAAK;QACL,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,WAAW;KACZ,EACD,IAAI,CAAC,MAAM,CACZ,CAAA;IAED,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,+DAA+D;QAC/D,gEAAgE;QAChE,qDAAqD;QACrD,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,qCAAqC,QAAQ,CAAC,QAAQ,oBAAoB;SACpF,CAAA;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;AACrE,CAAC"}
@@ -0,0 +1,57 @@
1
+ import { AIAdapterFailedError, AIAdapterUnavailableError, AIInvalidResponseError } from '../ai/errors.js';
2
+ import { type AltSuggestion, type AltTextAdapter } from './adapter.js';
3
+ export interface SuggestInput {
4
+ /** Source asset bytes. */
5
+ bytes: Uint8Array;
6
+ /** Source MIME from manifest. */
7
+ mime: string;
8
+ /** For diagnostics (logging); not used for memoization in v1.5. */
9
+ hash: string;
10
+ /** Target locale for the description. Default 'en'. */
11
+ locale?: string;
12
+ /**
13
+ * For animated images: the analyzer-extracted first-frame poster
14
+ * bytes. The suggester forwards to `prepareForVision` which uses
15
+ * them directly (no re-rasterization).
16
+ */
17
+ posterBytes?: Uint8Array;
18
+ /**
19
+ * Per-call max-edge override for vision-prep. Defaults to the
20
+ * `prepareForVision` default (768).
21
+ */
22
+ maxImageEdge?: number;
23
+ /** Soft length cap; default 125. */
24
+ maxChars?: number;
25
+ }
26
+ /**
27
+ * The orchestration interface. UI components and route handlers
28
+ * depend on this; the concrete `createAltSuggester` builds an
29
+ * implementation backed by an adapter.
30
+ */
31
+ export interface AltSuggester {
32
+ /**
33
+ * True when the wrapped adapter is configured AND supports the
34
+ * given MIME. UI uses this to decide whether to render AI affordances.
35
+ */
36
+ available(mime: string): boolean;
37
+ /**
38
+ * Run the alt-text suggestion. Returns the structured result from
39
+ * the adapter (which may have `refused: true`), or null when the
40
+ * call couldn't complete (unavailable, transport error, abort).
41
+ */
42
+ suggest(input: SuggestInput, signal?: AbortSignal): Promise<AltSuggestion | null>;
43
+ }
44
+ export interface CreateAltSuggesterOptions {
45
+ adapter: AltTextAdapter;
46
+ }
47
+ /**
48
+ * Build a suggester wrapping the given adapter. Pure factory — no I/O,
49
+ * no env-var reads. Caller (the route handler or test setup) supplies
50
+ * a fully-constructed adapter.
51
+ *
52
+ * Tests substitute by passing `nullAltAdapter`, a recording mock, or
53
+ * a real adapter with an msw-mocked transport.
54
+ */
55
+ export declare function createAltSuggester(opts: CreateAltSuggesterOptions): AltSuggester;
56
+ export { AIAdapterFailedError, AIAdapterUnavailableError, AIInvalidResponseError };
57
+ //# sourceMappingURL=suggester.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suggester.d.ts","sourceRoot":"","sources":["../../src/alt/suggester.ts"],"names":[],"mappings":"AAiDA,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAW,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAElH,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,cAAc,EAEpB,MAAM,cAAc,CAAA;AAGrB,MAAM,WAAW,YAAY;IAC3B,0BAA0B;IAC1B,KAAK,EAAE,UAAU,CAAA;IACjB,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAA;IACZ,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;OAIG;IACH,WAAW,CAAC,EAAE,UAAU,CAAA;IACxB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IAChC;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;CAClF;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,cAAc,CAAA;CACxB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,yBAAyB,GAAG,YAAY,CAoEhF;AAOD,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,CAAA"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * `AltSuggester` — orchestration between callers and adapters.
3
+ *
4
+ * The suggester is **stateless**. No memoization, no per-replica cache.
5
+ * Multi-replica admin correctness > per-replica optimization. If
6
+ * caching ever earns its keep operationally, it lands as a decorator
7
+ * (`CachedAltSuggester`) wrapping this base — additive, multi-replica
8
+ * correct via shared storage.
9
+ *
10
+ * # What the suggester owns
11
+ *
12
+ * - Build typed `AltRequest` from caller input + defaults
13
+ * - Compose the prompt via `composePrompt(request, policies)`
14
+ * - Call `prepareForVision` to resize bytes before adapter call
15
+ * - Forward `AbortSignal` to adapter
16
+ * - Return `AltSuggestion | null` — null = call failed (adapter
17
+ * unavailable, error, etc.)
18
+ *
19
+ * # What it doesn't own
20
+ *
21
+ * - HTTP / SDK transport (adapter)
22
+ * - Provider-specific request shape (adapter)
23
+ * - Refusal detection (adapter calls `detectRefusal` and constructs
24
+ * the structured `AltSuggestion`; suggester forwards the result)
25
+ * - Cache (none; future decorator)
26
+ * - UI concerns (consumer)
27
+ *
28
+ * # Returning null vs. throwing
29
+ *
30
+ * The suggester's contract: returns `AltSuggestion | null`. Null
31
+ * means "call couldn't complete" — the adapter doesn't support the
32
+ * MIME, or threw a transport error, or was canceled. Consumers treat
33
+ * null uniformly (don't auto-fill).
34
+ *
35
+ * Refusals (model said no but we got a response) come back as
36
+ * `AltSuggestion` with `refused: true`. Different from null — the
37
+ * suggester DID complete, the model just declined. Consumers can
38
+ * surface `refusalReason` to the author.
39
+ *
40
+ * # SOLID
41
+ *
42
+ * - SRP: this module owns one concern (orchestration of the
43
+ * adapter call from caller input to result/null)
44
+ * - OCP: caching, retry, throttling all land as decorators wrapping
45
+ * `AltSuggester` — none requires changing this module
46
+ * - DIP: depends on `AltTextAdapter` (abstract), uses `prepareForVision`
47
+ * and `composePrompt` (utilities); no knowledge of any provider
48
+ */
49
+ import { composePrompt } from '../ai/compose-prompt.js';
50
+ import { AIAdapterFailedError, AIAdapterUnavailableError, AIError, AIInvalidResponseError } from '../ai/errors.js';
51
+ import { prepareForVision } from '../ai/vision-prep.js';
52
+ import { DEFAULT_ALT_REQUEST, } from './adapter.js';
53
+ import { DEFAULT_ALT_PROMPT_POLICIES } from './prompt-policies.js';
54
+ /**
55
+ * Build a suggester wrapping the given adapter. Pure factory — no I/O,
56
+ * no env-var reads. Caller (the route handler or test setup) supplies
57
+ * a fully-constructed adapter.
58
+ *
59
+ * Tests substitute by passing `nullAltAdapter`, a recording mock, or
60
+ * a real adapter with an msw-mocked transport.
61
+ */
62
+ export function createAltSuggester(opts) {
63
+ const { adapter } = opts;
64
+ return {
65
+ available(mime) {
66
+ return adapter.supports(mime);
67
+ },
68
+ async suggest(input, signal) {
69
+ // Capability check first — adapter may be null-adapter or may
70
+ // not support this MIME. Either way: nothing to attempt.
71
+ if (!adapter.supports(input.mime))
72
+ return null;
73
+ // Bail on already-aborted signals before doing any work.
74
+ if (signal?.aborted)
75
+ return null;
76
+ // Build the typed request from input + defaults.
77
+ const request = {
78
+ ...DEFAULT_ALT_REQUEST,
79
+ locale: input.locale ?? DEFAULT_ALT_REQUEST.locale,
80
+ maxChars: input.maxChars ?? DEFAULT_ALT_REQUEST.maxChars,
81
+ };
82
+ // Compose prompt and prepare bytes — both pure, both idempotent.
83
+ const prompt = composePrompt(request, DEFAULT_ALT_PROMPT_POLICIES);
84
+ let prepared;
85
+ try {
86
+ prepared = await prepareForVision({
87
+ bytes: input.bytes,
88
+ mime: input.mime,
89
+ posterBytes: input.posterBytes,
90
+ maxEdge: input.maxImageEdge,
91
+ });
92
+ }
93
+ catch {
94
+ // Vision-prep failure (sharp couldn't decode): treat as
95
+ // unavailable. The asset's bytes are presumably corrupt or
96
+ // an unexpected format — not worth calling the model on
97
+ // garbage.
98
+ return null;
99
+ }
100
+ const generateInput = {
101
+ bytes: prepared.bytes,
102
+ mime: prepared.mime,
103
+ request,
104
+ prompt,
105
+ };
106
+ try {
107
+ return await adapter.generate(generateInput, signal);
108
+ }
109
+ catch (err) {
110
+ // AbortSignal-induced rejection: surface as null (call canceled).
111
+ if (signal?.aborted)
112
+ return null;
113
+ // AI errors are expected failure modes — caller maps null →
114
+ // user-facing toast. Re-throwing would force every caller to
115
+ // try/catch around `suggest`, which is exactly what the
116
+ // suggester contract abstracts away.
117
+ if (err instanceof AIError)
118
+ return null;
119
+ // Non-AI errors (programmer bugs, unexpected exceptions)
120
+ // bubble — the suggester doesn't swallow these, since they
121
+ // indicate a real problem worth surfacing.
122
+ throw err;
123
+ }
124
+ },
125
+ };
126
+ }
127
+ // Re-export AI error types so callers/tests can pattern-match without
128
+ // importing from `ai/`. Useful during the brief window where adapter
129
+ // implementations distinguish unavailable vs. failed vs. invalid-
130
+ // response; in practice route handlers only need the suggester's
131
+ // null/non-null result.
132
+ export { AIAdapterFailedError, AIAdapterUnavailableError, AIInvalidResponseError };
133
+ //# sourceMappingURL=suggester.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suggester.js","sourceRoot":"","sources":["../../src/alt/suggester.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAClH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAKL,mBAAmB,GACpB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAA;AAiDlE;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAA+B;IAChE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IAExB,OAAO;QACL,SAAS,CAAC,IAAY;YACpB,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC/B,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,KAAmB,EAAE,MAAoB;YACrD,8DAA8D;YAC9D,yDAAyD;YACzD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAA;YAE9C,yDAAyD;YACzD,IAAI,MAAM,EAAE,OAAO;gBAAE,OAAO,IAAI,CAAA;YAEhC,iDAAiD;YACjD,MAAM,OAAO,GAAe;gBAC1B,GAAG,mBAAmB;gBACtB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,mBAAmB,CAAC,MAAM;gBAClD,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,mBAAmB,CAAC,QAAQ;aACzD,CAAA;YAED,iEAAiE;YACjE,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAA;YAElE,IAAI,QAA6C,CAAA;YACjD,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,gBAAgB,CAAC;oBAChC,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,OAAO,EAAE,KAAK,CAAC,YAAY;iBAC5B,CAAC,CAAA;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,wDAAwD;gBACxD,2DAA2D;gBAC3D,wDAAwD;gBACxD,WAAW;gBACX,OAAO,IAAI,CAAA;YACb,CAAC;YAED,MAAM,aAAa,GAAqB;gBACtC,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,OAAO;gBACP,MAAM;aACP,CAAA;YAED,IAAI,CAAC;gBACH,OAAO,MAAM,OAAO,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;YACtD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,kEAAkE;gBAClE,IAAI,MAAM,EAAE,OAAO;oBAAE,OAAO,IAAI,CAAA;gBAEhC,4DAA4D;gBAC5D,6DAA6D;gBAC7D,wDAAwD;gBACxD,qCAAqC;gBACrC,IAAI,GAAG,YAAY,OAAO;oBAAE,OAAO,IAAI,CAAA;gBAEvC,yDAAyD;gBACzD,2DAA2D;gBAC3D,2CAA2C;gBAC3C,MAAM,GAAG,CAAA;YACX,CAAC;QACH,CAAC;KACF,CAAA;AACH,CAAC;AAED,sEAAsE;AACtE,qEAAqE;AACrE,kEAAkE;AAClE,iEAAiE;AACjE,wBAAwB;AACxB,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,CAAA"}
package/dist/app.js CHANGED
@@ -4,7 +4,7 @@ import { resolvePage } from './resolver.js';
4
4
  import { renderPage } from './renderer.js';
5
5
  export async function createApp(siteDir, storage) {
6
6
  const app = new Hono();
7
- const site = await loadSite({ siteDir, storage });
7
+ const site = await loadSite({ siteDir, storage, manifest: { name: '(app)' } });
8
8
  for (const [pageName, page] of site.pages) {
9
9
  app.get(page.route, async (c) => {
10
10
  const resolved = await resolvePage(pageName, site);
package/dist/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1C,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAe,EAAE,OAAwB;IACvE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;IAEjD,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC1C,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;YAC5B,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;YAClD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAA;YACtD,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1C,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAe,EAAE,OAAwB;IACvE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;IAE9E,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC1C,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;YAC5B,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;YAClD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAA;YACtD,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Archive-alias-targets sidecar binding for the generic dep-sidecars
3
+ * module.
4
+ *
5
+ * Answers "which archived items have `aliasOf === X`?" via the same
6
+ * per-edge sidecar shape as `asset-refs` and `fragment-deps`:
7
+ *
8
+ * `{root}/.gazetta/alias-targets/{X}/{encoded-source-item}`
9
+ *
10
+ * Without this index, the purge handler (Cut 5) would have to walk
11
+ * every page + fragment manifest on every purge attempt to find
12
+ * aliases pointing at the target. At the 5K-page envelope per
13
+ * `design-scale.md`, that's a ~30s walk on real cloud storage —
14
+ * unacceptable for an interactive admin operation. The sidecar
15
+ * makes it a single `readDir` (~5ms).
16
+ *
17
+ * Per `team-preferences.md` rule 24: "Validate every primitive
18
+ * against the 5K-page envelope" — the sidecar IS the perf design.
19
+ *
20
+ * # Lifecycle
21
+ *
22
+ * - Save handler: when an item is archived with `aliasOf` set,
23
+ * `rebuildArchiveAliases` writes the sidecar at
24
+ * `.gazetta/alias-targets/{aliasTarget}/{item}`.
25
+ * - Save handler: when the same item is unarchived OR has its
26
+ * `aliasOf` field changed, the diff drops the old target's
27
+ * sidecar and adds the new target's sidecar.
28
+ * - Delete/purge handler: pass `newManifest = null` to tear down
29
+ * the sidecar for the item being purged.
30
+ * - Cross-target: source-and-target consistent (same shape on
31
+ * both); the publish flow propagates the `.gazetta/` namespace.
32
+ *
33
+ * Per Q3's flatten-on-rename lock: aliases never form chains.
34
+ * `aliasOf` always points at a live item (or at a missing item,
35
+ * which the `dangling-alias` validator surfaces). The sidecar
36
+ * stores ONE target per archive — the relation's `extract`
37
+ * returns either `{aliasOf}` or `∅`.
38
+ */
39
+ import type { ContentRoot } from './content-root.js';
40
+ import { type DepRelation, type ItemRef, type ManifestLike } from './dep-sidecars.js';
41
+ /**
42
+ * The archive-aliases relation.
43
+ *
44
+ * Extracts the alias target from a manifest. The set is at most
45
+ * one element — Q3 flatten guarantees one-hop aliases. A live
46
+ * manifest (or an archived-without-alias manifest) yields the
47
+ * empty set, which means no sidecars are written for it.
48
+ */
49
+ export declare const ARCHIVE_ALIASES: DepRelation;
50
+ /**
51
+ * Read every archived item that aliases this target. Returns
52
+ * `ItemRef[]`; the caller maps to `(kind, name)` for error bodies
53
+ * (e.g. the purge-blocked 409 response from `design-soft-delete.md`
54
+ * Q4).
55
+ */
56
+ export declare function readArchivesAliasing(contentRoot: ContentRoot, targetName: string): Promise<ItemRef[]>;
57
+ /**
58
+ * Apply the alias-targets diff for one item's manifest change.
59
+ *
60
+ * Pass the pre-save manifest as `oldManifest` and the post-save
61
+ * manifest as `newManifest`. The diff drops sidecars for any
62
+ * removed alias targets and writes sidecars for any added targets.
63
+ *
64
+ * Cases:
65
+ * - Live → archive(aliasOf=X) : write `.gazetta/alias-targets/X/{item}`
66
+ * - Live → archive(no aliasOf) : no I/O
67
+ * - Archive(X) → archive(Y) : remove X's sidecar, write Y's
68
+ * - Archive(X) → archive(no aliasOf) : remove X's sidecar
69
+ * - Archive(X) → live : remove X's sidecar
70
+ * - Archive(X) → null (purge) : remove X's sidecar
71
+ * - Live → null (purge) : no I/O
72
+ */
73
+ export declare function rebuildArchiveAliases(contentRoot: ContentRoot, item: ItemRef, oldManifest: ManifestLike | null, newManifest: ManifestLike | null): Promise<void>;
74
+ /**
75
+ * Apply a pre-computed diff (used in tests + cases where the
76
+ * caller has the alias names already).
77
+ */
78
+ export declare function applyArchiveAliasesDiff(contentRoot: ContentRoot, item: ItemRef, oldTargets: ReadonlySet<string>, newTargets: ReadonlySet<string>): Promise<void>;
79
+ //# sourceMappingURL=archive-aliases.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archive-aliases.d.ts","sourceRoot":"","sources":["../src/archive-aliases.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,YAAY,EAIlB,MAAM,mBAAmB,CAAA;AAE1B;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,EAAE,WAY7B,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAErG;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,YAAY,GAAG,IAAI,EAChC,WAAW,EAAE,YAAY,GAAG,IAAI,GAC/B,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,EAC/B,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC,CAEf"}