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,67 @@
1
+ /**
2
+ * Alt-text config resolver — composes gazetta-level + site-level + per-target
3
+ * config into a single `ResolvedAltConfig` per [`design-ai.md`](../../../.claude/rules/design-ai.md)
4
+ * "Three-rung inheritance" + Path X Exception A.
5
+ *
6
+ * Three-rung chain (target → site → gazetta), per field:
7
+ *
8
+ * - `provider` (transport): target.altText.ai.provider ?? site.ai.provider ?? gazetta.ai.provider
9
+ * - `model`: target.altText.ai.model ?? site.ai.model ?? gazetta.ai.model
10
+ * ?? PROVIDER_DEFAULT_MODELS[provider.name]
11
+ * - `systemPrompt`: target.altText.ai.systemPrompt ?? site.altText.systemPrompt
12
+ * ?? gazetta.altText.systemPrompt ?? null
13
+ * - `maxTokens`: target.altText.ai.maxTokens ?? site.altText.maxTokens
14
+ * ?? gazetta.altText.maxTokens ?? undefined
15
+ * - `auto` (behavior): target.altText.auto ?? site.altText.auto ?? gazetta.altText.auto
16
+ * ?? DEFAULT_AUTO
17
+ * - `maxImageEdge` (behavior): target.altText.maxImageEdge ?? site.altText.maxImageEdge
18
+ * ?? gazetta.altText.maxImageEdge ?? MAX_EDGE
19
+ *
20
+ * Behavior fields (`auto`, `maxImageEdge`) live at the root of `altText:`
21
+ * (Exception B); AI fields (provider, model, systemPrompt, maxTokens)
22
+ * live under `altText.ai` at target level (Exception A's third rung).
23
+ *
24
+ * Pure function — no I/O, no env reads, no SDK construction. The factory
25
+ * in `alt/factory.ts` consumes the resolved config + calls
26
+ * `provider.altText({...})` to build the adapter.
27
+ *
28
+ * # SOLID
29
+ *
30
+ * - SRP: this module owns "merge config layers into one resolved value."
31
+ * Doesn't read env, doesn't construct adapters.
32
+ * - DIP: factory depends on this resolved shape, never on raw
33
+ * `SiteManifest`/`TargetConfig`.
34
+ * - LSP: resolver is total — every input shape produces either a
35
+ * `ResolvedAltConfig` or `null`.
36
+ */
37
+ import type { AIProvider } from '../ai/provider.js';
38
+ import type { GazettaManifest, SiteManifest, TargetConfig } from '../types.js';
39
+ /**
40
+ * Fully-resolved alt-text config — what the factory needs to construct
41
+ * an adapter and what the suggester needs to invoke it. No optional
42
+ * fields after this point; defaults applied (except `systemPrompt` and
43
+ * `maxTokens` which are legitimately absent when no operator override
44
+ * is configured anywhere in the chain).
45
+ */
46
+ export interface ResolvedAltConfig {
47
+ provider: AIProvider;
48
+ /** Concrete model ID. Either explicitly configured or per-provider default. */
49
+ model: string;
50
+ /** Operator-supplied system prompt; null = use system default only. */
51
+ systemPrompt: string | null;
52
+ /** Generation token cap; undefined = provider default. */
53
+ maxTokens: number | undefined;
54
+ /** Whether upload flows auto-fire suggest after upload. */
55
+ auto: boolean;
56
+ /** Long-edge cap for vision-call image bytes. */
57
+ maxImageEdge: number;
58
+ }
59
+ /**
60
+ * Resolve alt-text config from gazetta + site + target. Returns null
61
+ * when no provider is configured at any layer.
62
+ *
63
+ * `gazetta` is optional — sites without a project-level `gazetta.config.ts`
64
+ * pass `undefined` (or omit the argument).
65
+ */
66
+ export declare function resolveAltConfig(site: Pick<SiteManifest, 'ai' | 'altText'>, target: Pick<TargetConfig, 'altText'> | undefined, gazetta?: Pick<GazettaManifest, 'ai' | 'altText'>): ResolvedAltConfig | null;
67
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/alt/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAGnD,OAAO,KAAK,EAA0C,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAKtH;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,UAAU,CAAA;IACpB,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAA;IACb,uEAAuE;IACvE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,0DAA0D;IAC1D,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,2DAA2D;IAC3D,IAAI,EAAE,OAAO,CAAA;IACb,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,SAAS,CAAC,EAC1C,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,GAAG,SAAS,EACjD,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,GAAG,SAAS,CAAC,GAChD,iBAAiB,GAAG,IAAI,CAkC1B"}
@@ -0,0 +1,41 @@
1
+ import { PROVIDER_DEFAULT_MODELS } from '../ai/provider.js';
2
+ import { MAX_EDGE } from '../ai/vision-prep.js';
3
+ /** Hardcoded default for the `auto` flag. */
4
+ const DEFAULT_AUTO = true;
5
+ /**
6
+ * Resolve alt-text config from gazetta + site + target. Returns null
7
+ * when no provider is configured at any layer.
8
+ *
9
+ * `gazetta` is optional — sites without a project-level `gazetta.config.ts`
10
+ * pass `undefined` (or omit the argument).
11
+ */
12
+ export function resolveAltConfig(site, target, gazetta) {
13
+ const siteAi = site.ai;
14
+ const siteAlt = site.altText;
15
+ const targetAlt = target?.altText;
16
+ const gazettaAi = gazetta?.ai;
17
+ const gazettaAlt = gazetta?.altText;
18
+ // Provider: target → site → gazetta. If nothing configured anywhere,
19
+ // the feature is off.
20
+ const provider = targetAlt?.ai?.provider ?? siteAi?.provider ?? gazettaAi?.provider;
21
+ if (!provider)
22
+ return null;
23
+ // Model: target → site → gazetta → per-provider default.
24
+ const model = targetAlt?.ai?.model ?? siteAi?.model ?? gazettaAi?.model ?? PROVIDER_DEFAULT_MODELS[provider.name] ?? null;
25
+ if (model === null) {
26
+ // Plugin-supplied provider with no default-model registration AND
27
+ // no operator-supplied model anywhere in the chain. Surface as
28
+ // "feature off" rather than constructing an adapter that will fail
29
+ // at first SDK call.
30
+ return null;
31
+ }
32
+ // systemPrompt: target → site → gazetta → null (use system default).
33
+ const systemPrompt = targetAlt?.ai?.systemPrompt ?? siteAlt?.systemPrompt ?? gazettaAlt?.systemPrompt ?? null;
34
+ // maxTokens: target → site → gazetta → undefined (provider derives from maxChars).
35
+ const maxTokens = targetAlt?.ai?.maxTokens ?? siteAlt?.maxTokens ?? gazettaAlt?.maxTokens;
36
+ // Behavior fields (auto, maxImageEdge): target → site → gazetta → hardcoded defaults.
37
+ const auto = targetAlt?.auto ?? siteAlt?.auto ?? gazettaAlt?.auto ?? DEFAULT_AUTO;
38
+ const maxImageEdge = targetAlt?.maxImageEdge ?? siteAlt?.maxImageEdge ?? gazettaAlt?.maxImageEdge ?? MAX_EDGE;
39
+ return { provider, model, systemPrompt, maxTokens, auto, maxImageEdge };
40
+ }
41
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/alt/config.ts"],"names":[],"mappings":"AAqCA,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAG/C,6CAA6C;AAC7C,MAAM,YAAY,GAAG,IAAI,CAAA;AAuBzB;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAA0C,EAC1C,MAAiD,EACjD,OAAiD;IAEjD,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAA;IACtB,MAAM,OAAO,GAAkC,IAAI,CAAC,OAAO,CAAA;IAC3D,MAAM,SAAS,GAAoC,MAAM,EAAE,OAAO,CAAA;IAClE,MAAM,SAAS,GAAG,OAAO,EAAE,EAAE,CAAA;IAC7B,MAAM,UAAU,GAAG,OAAO,EAAE,OAAO,CAAA;IAEnC,qEAAqE;IACrE,sBAAsB;IACtB,MAAM,QAAQ,GAAG,SAAS,EAAE,EAAE,EAAE,QAAQ,IAAI,MAAM,EAAE,QAAQ,IAAI,SAAS,EAAE,QAAQ,CAAA;IACnF,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAA;IAE1B,yDAAyD;IACzD,MAAM,KAAK,GACT,SAAS,EAAE,EAAE,EAAE,KAAK,IAAI,MAAM,EAAE,KAAK,IAAI,SAAS,EAAE,KAAK,IAAI,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAA;IAC7G,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,kEAAkE;QAClE,+DAA+D;QAC/D,mEAAmE;QACnE,qBAAqB;QACrB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,qEAAqE;IACrE,MAAM,YAAY,GAAG,SAAS,EAAE,EAAE,EAAE,YAAY,IAAI,OAAO,EAAE,YAAY,IAAI,UAAU,EAAE,YAAY,IAAI,IAAI,CAAA;IAE7G,mFAAmF;IACnF,MAAM,SAAS,GAAG,SAAS,EAAE,EAAE,EAAE,SAAS,IAAI,OAAO,EAAE,SAAS,IAAI,UAAU,EAAE,SAAS,CAAA;IAEzF,sFAAsF;IACtF,MAAM,IAAI,GAAG,SAAS,EAAE,IAAI,IAAI,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,IAAI,IAAI,YAAY,CAAA;IACjF,MAAM,YAAY,GAAG,SAAS,EAAE,YAAY,IAAI,OAAO,EAAE,YAAY,IAAI,UAAU,EAAE,YAAY,IAAI,QAAQ,CAAA;IAE7G,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA;AACzE,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { AltTextAdapter } from './adapter.js';
2
+ import type { GazettaManifest, SiteManifest, TargetConfig } from '../types.js';
3
+ /**
4
+ * True when the resolved alt-text config has all required pieces.
5
+ * Pure: returns the structural state — does NOT verify the credential
6
+ * works (no network call). Verification surfaces at first use of the route.
7
+ */
8
+ export declare function isAltAdapterConfigured(site: Pick<SiteManifest, 'ai' | 'altText'>, target: Pick<TargetConfig, 'altText'> | undefined, gazetta?: Pick<GazettaManifest, 'ai' | 'altText'>): boolean;
9
+ /**
10
+ * Construct the alt-text adapter for the resolved config. Returns the
11
+ * null adapter when no provider is configured at any layer.
12
+ *
13
+ * Always returns an `AltTextAdapter` — consumers never null-check the
14
+ * factory's return value. The null adapter throws if `generate()` is
15
+ * called, but that only happens if a consumer skips the
16
+ * `supports()` / `available()` capability check.
17
+ */
18
+ export declare function buildAltAdapter(site: Pick<SiteManifest, 'ai' | 'altText'>, target: Pick<TargetConfig, 'altText'> | undefined, gazetta?: Pick<GazettaManifest, 'ai' | 'altText'>): AltTextAdapter;
19
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/alt/factory.ts"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE9E;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,SAAS,CAAC,EAC1C,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,GAAG,SAAS,EACjD,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,GAAG,SAAS,CAAC,GAChD,OAAO,CAET;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,SAAS,CAAC,EAC1C,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,GAAG,SAAS,EACjD,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,GAAG,SAAS,CAAC,GAChD,cAAc,CAahB"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Alt-text adapter factory — the single seam between configuration
3
+ * (gazetta + site + target manifests) and adapter construction.
4
+ *
5
+ * Per Phase 4 of the Path X migration: operator constructs the
6
+ * `AIProvider` instance via a factory call (`anthropicProvider({...})`)
7
+ * inside `defineSite({...})` or `defineGazetta({...})`. The resolver
8
+ * walks the three-rung chain (target → site → gazetta) and the factory
9
+ * delegates to `provider.altText(taskConfig)` to build the adapter.
10
+ *
11
+ * No env-var reads in this module — operators pass `process.env.X!` to
12
+ * the provider factory at config-eval. No SDK side effects at boot:
13
+ * provider authors document construction-time semantics; convention is
14
+ * that providers build SDK config objects at construction and defer
15
+ * network/auth to first method call.
16
+ *
17
+ * Two functions:
18
+ *
19
+ * - `buildAltAdapter(site, target, gazetta?)` — returns a fully-
20
+ * constructed `AltTextAdapter`. Returns `nullAltAdapter` when no
21
+ * adapter is configured anywhere in the chain.
22
+ *
23
+ * - `isAltAdapterConfigured(site, target, gazetta?)` — pure
24
+ * introspection for the capability check exposed via `/api/targets`.
25
+ * Doesn't construct an adapter.
26
+ *
27
+ * # Why split into two functions
28
+ *
29
+ * The factory and the capability check answer different questions:
30
+ * - Factory: "give me an adapter to call right now"
31
+ * - Capability: "should the UI render AI affordances on this target?"
32
+ *
33
+ * The capability check shouldn't allocate SDK clients (every call to
34
+ * `/api/targets` would). Splitting at this seam is SRP.
35
+ */
36
+ import { resolveAltConfig } from './config.js';
37
+ import { nullAltAdapter } from './null-adapter.js';
38
+ /**
39
+ * True when the resolved alt-text config has all required pieces.
40
+ * Pure: returns the structural state — does NOT verify the credential
41
+ * works (no network call). Verification surfaces at first use of the route.
42
+ */
43
+ export function isAltAdapterConfigured(site, target, gazetta) {
44
+ return resolveAltConfig(site, target, gazetta) !== null;
45
+ }
46
+ /**
47
+ * Construct the alt-text adapter for the resolved config. Returns the
48
+ * null adapter when no provider is configured at any layer.
49
+ *
50
+ * Always returns an `AltTextAdapter` — consumers never null-check the
51
+ * factory's return value. The null adapter throws if `generate()` is
52
+ * called, but that only happens if a consumer skips the
53
+ * `supports()` / `available()` capability check.
54
+ */
55
+ export function buildAltAdapter(site, target, gazetta) {
56
+ const resolved = resolveAltConfig(site, target, gazetta);
57
+ if (!resolved)
58
+ return nullAltAdapter;
59
+ // Build the per-task adapter via the provider's `.altText()` builder.
60
+ // Provider supplies transport (apiKey, baseUrl, etc.) from its
61
+ // construction; we supply per-task config (model, systemPrompt,
62
+ // maxTokens) from the resolver chain.
63
+ return resolved.provider.altText({
64
+ model: resolved.model,
65
+ systemPrompt: resolved.systemPrompt ?? undefined,
66
+ maxTokens: resolved.maxTokens,
67
+ });
68
+ }
69
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/alt/factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAIlD;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAA0C,EAC1C,MAAiD,EACjD,OAAiD;IAEjD,OAAO,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;AACzD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAC7B,IAA0C,EAC1C,MAAiD,EACjD,OAAiD;IAEjD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IACxD,IAAI,CAAC,QAAQ;QAAE,OAAO,cAAc,CAAA;IAEpC,sEAAsE;IACtE,+DAA+D;IAC/D,gEAAgE;IAChE,sCAAsC;IACtC,OAAO,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC/B,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,YAAY,EAAE,QAAQ,CAAC,YAAY,IAAI,SAAS;QAChD,SAAS,EAAE,QAAQ,CAAC,SAAS;KAC9B,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AltTextAdapter } from './adapter.js';
2
+ export declare const nullAltAdapter: AltTextAdapter;
3
+ //# sourceMappingURL=null-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"null-adapter.d.ts","sourceRoot":"","sources":["../../src/alt/null-adapter.ts"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAElD,eAAO,MAAM,cAAc,EAAE,cAU5B,CAAA"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * `nullAltAdapter` — the safe default returned by the factory when no
3
+ * adapter is configured for a target.
4
+ *
5
+ * # Why this exists (vs. the factory returning null)
6
+ *
7
+ * The factory `buildAltAdapter(target)` could return `AltTextAdapter |
8
+ * null`, forcing every consumer to null-check. That would be the
9
+ * stub-on-the-interface anti-pattern in disguise — every caller
10
+ * writes `if (adapter) { ... }`, which is dead code in 99% of cases
11
+ * (the suggester wraps the adapter and handles the unconfigured case
12
+ * via `available()` returning false).
13
+ *
14
+ * Instead, the factory always returns an `AltTextAdapter`. When
15
+ * unconfigured, it returns this null implementation: `supports()`
16
+ * always false, `generate()` throws `AIAdapterUnavailableError` if
17
+ * ever called. The suggester's `available(mime)` checks `supports`
18
+ * first and returns false — so `generate` is never reached on the
19
+ * null adapter in practice. The throw is a defense-in-depth signal
20
+ * that something has gone wrong if it IS reached.
21
+ *
22
+ * This is the LSP validation seam: a real adapter, full contract
23
+ * surface, no nulls in the type system. Tests can substitute it for
24
+ * any consumer and verify the consumer handles "unavailable" correctly
25
+ * via `supports`-returns-false rather than via null-checks.
26
+ *
27
+ * # SOLID
28
+ *
29
+ * - LSP: full contract; `supports`/`generate` return real values
30
+ * - SRP: single concern — represent "no adapter configured"
31
+ * - OCP: not relevant (no extension point here)
32
+ */
33
+ import { AIAdapterUnavailableError } from '../ai/errors.js';
34
+ export const nullAltAdapter = {
35
+ name: 'null',
36
+ supports() {
37
+ return false;
38
+ },
39
+ async generate() {
40
+ throw new AIAdapterUnavailableError('No AI alt-text adapter is configured. Add `altText:` to site.config.ts or set provider credentials in .env.local.');
41
+ },
42
+ };
43
+ //# sourceMappingURL=null-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"null-adapter.js","sourceRoot":"","sources":["../../src/alt/null-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AAG3D,MAAM,CAAC,MAAM,cAAc,GAAmB;IAC5C,IAAI,EAAE,MAAM;IACZ,QAAQ;QACN,OAAO,KAAK,CAAA;IACd,CAAC;IACD,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,yBAAyB,CACjC,mHAAmH,CACpH,CAAA;IACH,CAAC;CACF,CAAA"}
@@ -0,0 +1,40 @@
1
+ import type { AIProvider } from '../ai/provider.js';
2
+ import type { AltTextAdapter } from './adapter.js';
3
+ /** Default base URL when running Ollama locally with default settings. */
4
+ export declare const OLLAMA_DEFAULT_BASE_URL = "http://localhost:11434";
5
+ /** Default model. Ollama Library publishes 11B and 90B variants of llama3.2-vision. */
6
+ export declare const OLLAMA_DEFAULT_MODEL = "llama3.2-vision:11b";
7
+ /**
8
+ * Ollama transport-only options. Per Path X (transport-vs-task split).
9
+ * Ollama needs no API key; baseUrl is the only transport knob.
10
+ */
11
+ export interface OllamaTransportOptions {
12
+ /** Base URL of the Ollama server. Defaults to {@link OLLAMA_DEFAULT_BASE_URL}. */
13
+ baseUrl?: string;
14
+ }
15
+ /**
16
+ * Internal type for `createOllamaAltAdapter` callers (tests). Combines
17
+ * transport with per-task config; new code goes through
18
+ * `ollamaProvider(transport).altText(taskConfig)`.
19
+ */
20
+ export interface OllamaAltAdapterOptions extends OllamaTransportOptions {
21
+ /** Model ID. Defaults to {@link OLLAMA_DEFAULT_MODEL}. */
22
+ model?: string;
23
+ /** Operator-supplied system prompt; prepended to system-composed prompt. */
24
+ systemPrompt?: string;
25
+ /** Generation token cap. Ollama doesn't expose it directly, but the
26
+ * scaffold passes it through to keep the contract uniform. */
27
+ maxTokens?: number;
28
+ }
29
+ /**
30
+ * Construct the Ollama alt-text adapter. Internal factory — kept public
31
+ * for tests + advanced wiring. Operator-facing config goes through
32
+ * `ollamaProvider(transport).altText(taskConfig)` (Path X).
33
+ */
34
+ export declare function createOllamaAltAdapter(opts?: OllamaAltAdapterOptions): AltTextAdapter;
35
+ /**
36
+ * Operator-facing Ollama provider. See `anthropicProvider` for the full
37
+ * Path X rationale. Ollama needs no API key; transport is just baseUrl.
38
+ */
39
+ export declare function ollamaProvider(transport?: OllamaTransportOptions): AIProvider;
40
+ //# sourceMappingURL=ollama.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../src/alt/ollama.ts"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EAAE,UAAU,EAAqB,MAAM,mBAAmB,CAAA;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAUlD,0EAA0E;AAC1E,eAAO,MAAM,uBAAuB,2BAA2B,CAAA;AAE/D,uFAAuF;AACvF,eAAO,MAAM,oBAAoB,wBAAwB,CAAA;AAIzD;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAwB,SAAQ,sBAAsB;IACrE,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;mEAC+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAQD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,GAAE,uBAA4B,GAAG,cAAc,CAqEzF;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,SAAS,GAAE,sBAA2B,GAAG,UAAU,CAYjF"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * Ollama adapter — alt-text via the local `/api/chat` endpoint.
3
+ *
4
+ * # Why no SDK
5
+ *
6
+ * Ollama's API is a single endpoint, no auth, no streaming negotiation,
7
+ * no schema beyond simple JSON. The official `ollama` npm SDK exists
8
+ * but adds little value over raw `fetch` for this single-call use case.
9
+ * Skipping the SDK keeps adapter dependencies minimal.
10
+ *
11
+ * # Defaults
12
+ *
13
+ * - Base URL: `http://localhost:11434` (Ollama's documented default).
14
+ * Operators running Ollama on a different host configure via
15
+ * `baseUrl` on the transport.
16
+ * - Model: `llama3.2-vision:11b`. The 11B variant is the entry-level
17
+ * size; `:90b` is also available for operators who want better
18
+ * description quality at higher GPU/RAM cost.
19
+ *
20
+ * # API contract details (verified against Ollama API docs)
21
+ *
22
+ * - Endpoint: `POST /api/chat` (chat-style fits the system+user pattern).
23
+ * - Images are base64 strings in the per-message `images` array.
24
+ * Different from Anthropic and OpenAI shapes — same adapter
25
+ * abstraction holds via the scaffold.
26
+ * - Response: `{ message: { content: "..." }, done: true, ... }`
27
+ * - Auth: none for local install
28
+ * - AbortSignal: standard fetch — `fetch(url, { signal })`. Errors
29
+ * surface as `Error` with `name: 'AbortError'`.
30
+ *
31
+ * # SOLID
32
+ *
33
+ * - Same lenses as Anthropic / OpenAI — orchestration via
34
+ * `ai/adapter-scaffold.ts`, Ollama-specific request/response/error
35
+ * shape here only.
36
+ */
37
+ import { AIAdapterFailedError, AIInvalidResponseError } from '../ai/errors.js';
38
+ import { buildAltAdapterFromScaffold } from '../ai/adapter-scaffold.js';
39
+ const OLLAMA_REFUSAL_MARKERS = [
40
+ // llama3.2-vision tends to refuse with these patterns more than
41
+ // saas providers; markers maintained per [refusal.ts] convention.
42
+ "i'm not able to process this image",
43
+ 'i am not able to process this image',
44
+ 'sorry, i cannot',
45
+ ];
46
+ /** Default base URL when running Ollama locally with default settings. */
47
+ export const OLLAMA_DEFAULT_BASE_URL = 'http://localhost:11434';
48
+ /** Default model. Ollama Library publishes 11B and 90B variants of llama3.2-vision. */
49
+ export const OLLAMA_DEFAULT_MODEL = 'llama3.2-vision:11b';
50
+ const OLLAMA_SUPPORTED_MIMES = new Set(['image/jpeg', 'image/png']);
51
+ /**
52
+ * Construct the Ollama alt-text adapter. Internal factory — kept public
53
+ * for tests + advanced wiring. Operator-facing config goes through
54
+ * `ollamaProvider(transport).altText(taskConfig)` (Path X).
55
+ */
56
+ export function createOllamaAltAdapter(opts = {}) {
57
+ const baseUrl = (opts.baseUrl ?? OLLAMA_DEFAULT_BASE_URL).replace(/\/+$/, '');
58
+ const model = opts.model ?? OLLAMA_DEFAULT_MODEL;
59
+ const endpoint = `${baseUrl}/api/chat`;
60
+ return buildAltAdapterFromScaffold({
61
+ name: 'ollama',
62
+ supportedMimes: OLLAMA_SUPPORTED_MIMES,
63
+ operatorSystemPrompt: opts.systemPrompt,
64
+ operatorMaxTokens: opts.maxTokens,
65
+ refusalMarkers: OLLAMA_REFUSAL_MARKERS,
66
+ isAbortError: err => err instanceof Error && err.name === 'AbortError',
67
+ errorContextSuffix: `Is Ollama running at ${baseUrl}?`,
68
+ async callProvider({ bytes, mime: _mime, systemPrompt, signal }) {
69
+ const imageB64 = Buffer.from(bytes).toString('base64');
70
+ const body = {
71
+ model,
72
+ messages: [
73
+ { role: 'system', content: systemPrompt },
74
+ {
75
+ role: 'user',
76
+ content: 'Describe this image for use as alt text.',
77
+ images: [imageB64],
78
+ },
79
+ ],
80
+ stream: false,
81
+ };
82
+ const res = await fetch(endpoint, {
83
+ method: 'POST',
84
+ headers: { 'Content-Type': 'application/json' },
85
+ body: JSON.stringify(body),
86
+ signal,
87
+ });
88
+ if (!res.ok) {
89
+ // Ollama returns plain-text errors for connection-level issues
90
+ // and JSON `{ error: "..." }` for model-level issues. Surface
91
+ // both as AIAdapterFailedError; the message includes status
92
+ // code so logs can disambiguate (404 → model not pulled, 400
93
+ // → malformed request, etc.).
94
+ let detail = `HTTP ${res.status}`;
95
+ try {
96
+ const errorBody = await res.text();
97
+ if (errorBody)
98
+ detail += `: ${errorBody.slice(0, 200)}`;
99
+ }
100
+ catch {
101
+ // Body unreadable; status code alone is the diagnostic.
102
+ }
103
+ throw new AIAdapterFailedError(`Ollama HTTP error: ${detail}`);
104
+ }
105
+ let parsed;
106
+ try {
107
+ parsed = (await res.json());
108
+ }
109
+ catch (err) {
110
+ throw new AIInvalidResponseError(`Ollama returned non-JSON response: ${err instanceof Error ? err.message : 'unknown'}`);
111
+ }
112
+ if (parsed.error) {
113
+ throw new AIAdapterFailedError(`Ollama: ${parsed.error}`);
114
+ }
115
+ if (typeof parsed.message?.content !== 'string') {
116
+ throw new AIInvalidResponseError('Ollama response had no message.content');
117
+ }
118
+ return parsed.message.content;
119
+ },
120
+ });
121
+ }
122
+ /**
123
+ * Operator-facing Ollama provider. See `anthropicProvider` for the full
124
+ * Path X rationale. Ollama needs no API key; transport is just baseUrl.
125
+ */
126
+ export function ollamaProvider(transport = {}) {
127
+ return {
128
+ name: 'ollama',
129
+ altText(taskConfig) {
130
+ return createOllamaAltAdapter({
131
+ ...transport,
132
+ model: taskConfig.model,
133
+ systemPrompt: taskConfig.systemPrompt,
134
+ maxTokens: taskConfig.maxTokens,
135
+ });
136
+ },
137
+ };
138
+ }
139
+ //# sourceMappingURL=ollama.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../src/alt/ollama.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import type { AIProvider } from '../ai/provider.js';
2
+ import type { AltTextAdapter } from './adapter.js';
3
+ /**
4
+ * Default model. Vision-capable across OpenAI's gpt-4o family. Sites
5
+ * with high-volume asset libraries should benchmark cost against
6
+ * actual workload.
7
+ */
8
+ export declare const OPENAI_DEFAULT_MODEL = "gpt-4o-mini";
9
+ /**
10
+ * OpenAI transport-only options. Per Path X (transport-vs-task split).
11
+ */
12
+ export interface OpenAITransportOptions {
13
+ apiKey: string;
14
+ /** Optional override of the SDK base URL — for tests pointing at msw or proxy setups. */
15
+ baseURL?: string;
16
+ /**
17
+ * Override the SDK's retry count (default 2). Tests pass 0 to keep
18
+ * runs deterministic and fast.
19
+ */
20
+ maxRetries?: number;
21
+ }
22
+ /**
23
+ * Internal type for `createOpenAIAltAdapter` callers (tests). Combines
24
+ * transport with per-task config; new code goes through
25
+ * `openaiProvider(transport).altText(taskConfig)`.
26
+ */
27
+ export interface OpenAIAltAdapterOptions extends OpenAITransportOptions {
28
+ /** Model ID; defaults to {@link OPENAI_DEFAULT_MODEL}. */
29
+ model?: string;
30
+ /** Operator-supplied system prompt; prepended to system-composed prompt. */
31
+ systemPrompt?: string;
32
+ /** Generation token cap; provider derives from maxChars when absent. */
33
+ maxTokens?: number;
34
+ }
35
+ /**
36
+ * Construct the OpenAI alt-text adapter. Internal factory — kept public
37
+ * for tests + advanced wiring. Operator-facing config goes through
38
+ * `openaiProvider(transport).altText(taskConfig)` (Path X).
39
+ */
40
+ export declare function createOpenAIAltAdapter(opts: OpenAIAltAdapterOptions): AltTextAdapter;
41
+ /**
42
+ * Operator-facing OpenAI provider. See `anthropicProvider` for the full
43
+ * Path X rationale.
44
+ */
45
+ export declare function openaiProvider(transport: OpenAITransportOptions): AIProvider;
46
+ //# sourceMappingURL=openai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/alt/openai.ts"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EAAE,UAAU,EAAqB,MAAM,mBAAmB,CAAA;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAYlD;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,gBAAgB,CAAA;AAIjD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAA;IACd,yFAAyF;IACzF,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAwB,SAAQ,sBAAsB;IACrE,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAMD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,uBAAuB,GAAG,cAAc,CAwCpF;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,sBAAsB,GAAG,UAAU,CAe5E"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * OpenAI adapter — alt-text via the `chat.completions.create` vision API.
3
+ *
4
+ * # Defaults
5
+ *
6
+ * - Model: `gpt-4o-mini` — vision-capable, well-supported. Note that
7
+ * OpenAI's vision pricing is non-trivial: while gpt-4o-mini is
8
+ * cheaper per text token than gpt-4o, vision token cost differs
9
+ * and the math is workload-dependent. Sites comparing costs
10
+ * should benchmark against their actual asset library.
11
+ *
12
+ * # API contract details (verified against `openai` SDK v6+)
13
+ *
14
+ * - Image content uses `{ type: 'image_url', image_url: { url } }`.
15
+ * The URL is a base64 data URL: `data:{mime};base64,{data}`.
16
+ * - Accepted MIMEs: JPEG, PNG, GIF, WebP. After `prepareForVision`
17
+ * our bytes are JPEG or PNG.
18
+ * - System prompt is a `role: 'system'` message (not a top-level
19
+ * parameter like Anthropic). User message contains the image.
20
+ * - `max_tokens` is optional but the scaffold sets it (operator
21
+ * override OR derived from maxChars).
22
+ *
23
+ * # AbortSignal
24
+ *
25
+ * - Passed via `chat.completions.create(body, { signal })`. SDK throws
26
+ * `APIUserAbortError` on abort; scaffold's `isAbortError` recognizes
27
+ * it so the suggester can return null on cancellation.
28
+ *
29
+ * # SOLID
30
+ *
31
+ * - Same lenses as Anthropic adapter — orchestration via
32
+ * `ai/adapter-scaffold.ts`, OpenAI-specific request/response
33
+ * shape here only.
34
+ */
35
+ import OpenAI from 'openai';
36
+ import { AIInvalidResponseError } from '../ai/errors.js';
37
+ import { buildAltAdapterFromScaffold } from '../ai/adapter-scaffold.js';
38
+ /**
39
+ * OpenAI-specific refusal phrases. Layered on top of the shared list
40
+ * in `ai/refusal.ts`.
41
+ */
42
+ const OPENAI_REFUSAL_MARKERS = [
43
+ "i'm sorry, i can't assist",
44
+ "i can't assist with that",
45
+ 'i am unable to assist',
46
+ ];
47
+ /**
48
+ * Default model. Vision-capable across OpenAI's gpt-4o family. Sites
49
+ * with high-volume asset libraries should benchmark cost against
50
+ * actual workload.
51
+ */
52
+ export const OPENAI_DEFAULT_MODEL = 'gpt-4o-mini';
53
+ const OPENAI_SUPPORTED_MIMES = new Set(['image/jpeg', 'image/png', 'image/gif', 'image/webp']);
54
+ function toBase64DataUrl(bytes, mime) {
55
+ return `data:${mime};base64,${Buffer.from(bytes).toString('base64')}`;
56
+ }
57
+ /**
58
+ * Construct the OpenAI alt-text adapter. Internal factory — kept public
59
+ * for tests + advanced wiring. Operator-facing config goes through
60
+ * `openaiProvider(transport).altText(taskConfig)` (Path X).
61
+ */
62
+ export function createOpenAIAltAdapter(opts) {
63
+ const client = new OpenAI({
64
+ apiKey: opts.apiKey,
65
+ baseURL: opts.baseURL,
66
+ maxRetries: opts.maxRetries,
67
+ });
68
+ const model = opts.model ?? OPENAI_DEFAULT_MODEL;
69
+ return buildAltAdapterFromScaffold({
70
+ name: 'openai',
71
+ supportedMimes: OPENAI_SUPPORTED_MIMES,
72
+ operatorSystemPrompt: opts.systemPrompt,
73
+ operatorMaxTokens: opts.maxTokens,
74
+ refusalMarkers: OPENAI_REFUSAL_MARKERS,
75
+ isAbortError: err => err instanceof OpenAI.APIUserAbortError,
76
+ async callProvider({ bytes, mime, systemPrompt, maxTokens, signal }) {
77
+ const response = await client.chat.completions.create({
78
+ model,
79
+ max_tokens: maxTokens,
80
+ messages: [
81
+ { role: 'system', content: systemPrompt },
82
+ {
83
+ role: 'user',
84
+ content: [{ type: 'image_url', image_url: { url: toBase64DataUrl(bytes, mime) } }],
85
+ },
86
+ ],
87
+ }, { signal });
88
+ // Response shape: choices[0].message.content. May be null when
89
+ // the model returns a tool-call instead — defensive against that.
90
+ const content = response.choices[0]?.message.content;
91
+ if (typeof content !== 'string') {
92
+ throw new AIInvalidResponseError('OpenAI response had no text content');
93
+ }
94
+ return content;
95
+ },
96
+ });
97
+ }
98
+ /**
99
+ * Operator-facing OpenAI provider. See `anthropicProvider` for the full
100
+ * Path X rationale.
101
+ */
102
+ export function openaiProvider(transport) {
103
+ if (!transport.apiKey) {
104
+ throw new Error('openaiProvider: "apiKey" is required (typically `process.env.OPENAI_API_KEY!`)');
105
+ }
106
+ return {
107
+ name: 'openai',
108
+ altText(taskConfig) {
109
+ return createOpenAIAltAdapter({
110
+ ...transport,
111
+ model: taskConfig.model,
112
+ systemPrompt: taskConfig.systemPrompt,
113
+ maxTokens: taskConfig.maxTokens,
114
+ });
115
+ },
116
+ };
117
+ }
118
+ //# sourceMappingURL=openai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/alt/openai.ts"],"names":[],"mappings":"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"}