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.
- package/admin-dist/assets/index-CBeq0rRb.js +693 -0
- package/admin-dist/assets/index-Dtg1dTZQ.css +1 -0
- package/admin-dist/assets/rolldown-runtime-BYbx6iT9.js +1 -0
- package/admin-dist/assets/{vendor-primevue-C0Q_YTCb.js → vendor-primevue-CBGHkaXv.js} +183 -39
- package/admin-dist/assets/{vendor-react-BipDVGow.js → vendor-react-BdW_kNCG.js} +2 -2
- package/admin-dist/assets/vendor-rjsf-lN2SztQt.js +33 -0
- package/admin-dist/assets/vendor-tiptap-C36yDquB.js +141 -0
- package/admin-dist/assets/vendor-vue-Bt5uR1VW.js +1 -0
- package/admin-dist/assets/workbox-window.prod.es5-DGMtIXHc.js +2 -0
- package/admin-dist/index.html +8 -8
- package/admin-dist/sw.js +1 -0
- package/dist/admin-api/archived-name-conflict.d.ts +31 -0
- package/dist/admin-api/archived-name-conflict.d.ts.map +1 -0
- package/dist/admin-api/archived-name-conflict.js +226 -0
- package/dist/admin-api/archived-name-conflict.js.map +1 -0
- package/dist/admin-api/cache-stats-logger.d.ts +83 -0
- package/dist/admin-api/cache-stats-logger.d.ts.map +1 -0
- package/dist/admin-api/cache-stats-logger.js +59 -0
- package/dist/admin-api/cache-stats-logger.js.map +1 -0
- package/dist/admin-api/error-response.d.ts +21 -0
- package/dist/admin-api/error-response.d.ts.map +1 -0
- package/dist/admin-api/error-response.js +12 -0
- package/dist/admin-api/error-response.js.map +1 -0
- package/dist/admin-api/hook-audit-emitter.d.ts +38 -0
- package/dist/admin-api/hook-audit-emitter.d.ts.map +1 -0
- package/dist/admin-api/hook-audit-emitter.js +21 -0
- package/dist/admin-api/hook-audit-emitter.js.map +1 -0
- package/dist/admin-api/index.d.ts +84 -2
- package/dist/admin-api/index.d.ts.map +1 -1
- package/dist/admin-api/index.js +257 -32
- package/dist/admin-api/index.js.map +1 -1
- package/dist/admin-api/middleware/audit.d.ts +25 -0
- package/dist/admin-api/middleware/audit.d.ts.map +1 -0
- package/dist/admin-api/middleware/audit.js +65 -0
- package/dist/admin-api/middleware/audit.js.map +1 -0
- package/dist/admin-api/middleware/capability.d.ts +8 -0
- package/dist/admin-api/middleware/capability.d.ts.map +1 -0
- package/dist/admin-api/middleware/capability.js +65 -0
- package/dist/admin-api/middleware/capability.js.map +1 -0
- package/dist/admin-api/middleware/principal.d.ts +18 -0
- package/dist/admin-api/middleware/principal.d.ts.map +1 -0
- package/dist/admin-api/middleware/principal.js +128 -0
- package/dist/admin-api/middleware/principal.js.map +1 -0
- package/dist/admin-api/routes/archive-review.d.ts +80 -0
- package/dist/admin-api/routes/archive-review.d.ts.map +1 -0
- package/dist/admin-api/routes/archive-review.js +70 -0
- package/dist/admin-api/routes/archive-review.js.map +1 -0
- package/dist/admin-api/routes/archive.d.ts +145 -0
- package/dist/admin-api/routes/archive.d.ts.map +1 -0
- package/dist/admin-api/routes/archive.js +540 -0
- package/dist/admin-api/routes/archive.js.map +1 -0
- package/dist/admin-api/routes/assets.d.ts +21 -0
- package/dist/admin-api/routes/assets.d.ts.map +1 -0
- package/dist/admin-api/routes/assets.js +586 -0
- package/dist/admin-api/routes/assets.js.map +1 -0
- package/dist/admin-api/routes/audit.d.ts +71 -0
- package/dist/admin-api/routes/audit.d.ts.map +1 -0
- package/dist/admin-api/routes/audit.js +178 -0
- package/dist/admin-api/routes/audit.js.map +1 -0
- package/dist/admin-api/routes/compare.d.ts.map +1 -1
- package/dist/admin-api/routes/compare.js +3 -2
- package/dist/admin-api/routes/compare.js.map +1 -1
- package/dist/admin-api/routes/fields.d.ts.map +1 -1
- package/dist/admin-api/routes/fields.js +2 -1
- package/dist/admin-api/routes/fields.js.map +1 -1
- package/dist/admin-api/routes/fragments.d.ts +13 -1
- package/dist/admin-api/routes/fragments.d.ts.map +1 -1
- package/dist/admin-api/routes/fragments.js +128 -67
- package/dist/admin-api/routes/fragments.js.map +1 -1
- package/dist/admin-api/routes/health.d.ts +60 -0
- package/dist/admin-api/routes/health.d.ts.map +1 -0
- package/dist/admin-api/routes/health.js +65 -0
- package/dist/admin-api/routes/health.js.map +1 -0
- package/dist/admin-api/routes/history.d.ts +2 -1
- package/dist/admin-api/routes/history.d.ts.map +1 -1
- package/dist/admin-api/routes/history.js +26 -4
- package/dist/admin-api/routes/history.js.map +1 -1
- package/dist/admin-api/routes/pages.d.ts +20 -1
- package/dist/admin-api/routes/pages.d.ts.map +1 -1
- package/dist/admin-api/routes/pages.js +158 -85
- package/dist/admin-api/routes/pages.js.map +1 -1
- package/dist/admin-api/routes/preview.d.ts.map +1 -1
- package/dist/admin-api/routes/preview.js +56 -17
- package/dist/admin-api/routes/preview.js.map +1 -1
- package/dist/admin-api/routes/publish.d.ts +19 -1
- package/dist/admin-api/routes/publish.d.ts.map +1 -1
- package/dist/admin-api/routes/publish.js +548 -99
- package/dist/admin-api/routes/publish.js.map +1 -1
- package/dist/admin-api/routes/rename.d.ts +62 -0
- package/dist/admin-api/routes/rename.d.ts.map +1 -0
- package/dist/admin-api/routes/rename.js +366 -0
- package/dist/admin-api/routes/rename.js.map +1 -0
- package/dist/admin-api/routes/site.d.ts.map +1 -1
- package/dist/admin-api/routes/site.js +6 -18
- package/dist/admin-api/routes/site.js.map +1 -1
- package/dist/admin-api/routes/system.d.ts +23 -0
- package/dist/admin-api/routes/system.d.ts.map +1 -0
- package/dist/admin-api/routes/system.js +115 -0
- package/dist/admin-api/routes/system.js.map +1 -0
- package/dist/admin-api/routes/templates.d.ts +11 -1
- package/dist/admin-api/routes/templates.d.ts.map +1 -1
- package/dist/admin-api/routes/templates.js +36 -3
- package/dist/admin-api/routes/templates.js.map +1 -1
- package/dist/admin-api/routes/validation.d.ts +47 -0
- package/dist/admin-api/routes/validation.d.ts.map +1 -0
- package/dist/admin-api/routes/validation.js +120 -0
- package/dist/admin-api/routes/validation.js.map +1 -0
- package/dist/admin-api/schemas/archive.d.ts +124 -0
- package/dist/admin-api/schemas/archive.d.ts.map +1 -0
- package/dist/admin-api/schemas/archive.js +93 -0
- package/dist/admin-api/schemas/archive.js.map +1 -0
- package/dist/admin-api/schemas/assets.d.ts +64 -0
- package/dist/admin-api/schemas/assets.d.ts.map +1 -0
- package/dist/admin-api/schemas/assets.js +59 -0
- package/dist/admin-api/schemas/assets.js.map +1 -0
- package/dist/admin-api/schemas/audit.d.ts +175 -0
- package/dist/admin-api/schemas/audit.d.ts.map +1 -0
- package/dist/admin-api/schemas/audit.js +91 -0
- package/dist/admin-api/schemas/audit.js.map +1 -0
- package/dist/admin-api/schemas/error.d.ts +94 -0
- package/dist/admin-api/schemas/error.d.ts.map +1 -0
- package/dist/admin-api/schemas/error.js +79 -0
- package/dist/admin-api/schemas/error.js.map +1 -0
- package/dist/admin-api/schemas/fragments.d.ts +2 -0
- package/dist/admin-api/schemas/fragments.d.ts.map +1 -1
- package/dist/admin-api/schemas/fragments.js +4 -0
- package/dist/admin-api/schemas/fragments.js.map +1 -1
- package/dist/admin-api/schemas/index.d.ts +10 -0
- package/dist/admin-api/schemas/index.d.ts.map +1 -1
- package/dist/admin-api/schemas/index.js +10 -0
- package/dist/admin-api/schemas/index.js.map +1 -1
- package/dist/admin-api/schemas/pages.d.ts +2 -0
- package/dist/admin-api/schemas/pages.d.ts.map +1 -1
- package/dist/admin-api/schemas/pages.js +11 -0
- package/dist/admin-api/schemas/pages.js.map +1 -1
- package/dist/admin-api/schemas/rename.d.ts +77 -0
- package/dist/admin-api/schemas/rename.d.ts.map +1 -0
- package/dist/admin-api/schemas/rename.js +75 -0
- package/dist/admin-api/schemas/rename.js.map +1 -0
- package/dist/admin-api/schemas/site.d.ts +3 -2
- package/dist/admin-api/schemas/site.d.ts.map +1 -1
- package/dist/admin-api/schemas/site.js +3 -2
- package/dist/admin-api/schemas/site.js.map +1 -1
- package/dist/admin-api/schemas/system.d.ts +28 -0
- package/dist/admin-api/schemas/system.d.ts.map +1 -0
- package/dist/admin-api/schemas/system.js +35 -0
- package/dist/admin-api/schemas/system.js.map +1 -0
- package/dist/admin-api/schemas/targets.d.ts +55 -0
- package/dist/admin-api/schemas/targets.d.ts.map +1 -1
- package/dist/admin-api/schemas/targets.js +46 -0
- package/dist/admin-api/schemas/targets.js.map +1 -1
- package/dist/admin-api/schemas/templates.d.ts +54 -0
- package/dist/admin-api/schemas/templates.d.ts.map +1 -1
- package/dist/admin-api/schemas/templates.js +21 -0
- package/dist/admin-api/schemas/templates.js.map +1 -1
- package/dist/admin-api/schemas/validation.d.ts +101 -0
- package/dist/admin-api/schemas/validation.d.ts.map +1 -0
- package/dist/admin-api/schemas/validation.js +57 -0
- package/dist/admin-api/schemas/validation.js.map +1 -0
- package/dist/admin-api/source-context.d.ts +66 -17
- package/dist/admin-api/source-context.d.ts.map +1 -1
- package/dist/admin-api/source-context.js +43 -8
- package/dist/admin-api/source-context.js.map +1 -1
- package/dist/ai/adapter-scaffold.d.ts +63 -0
- package/dist/ai/adapter-scaffold.d.ts.map +1 -0
- package/dist/ai/adapter-scaffold.js +89 -0
- package/dist/ai/adapter-scaffold.js.map +1 -0
- package/dist/ai/compose-prompt.d.ts +50 -0
- package/dist/ai/compose-prompt.d.ts.map +1 -0
- package/dist/ai/compose-prompt.js +49 -0
- package/dist/ai/compose-prompt.js.map +1 -0
- package/dist/ai/errors.d.ts +65 -0
- package/dist/ai/errors.d.ts.map +1 -0
- package/dist/ai/errors.js +59 -0
- package/dist/ai/errors.js.map +1 -0
- package/dist/ai/index.d.ts +17 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +16 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/provider.d.ts +76 -0
- package/dist/ai/provider.d.ts.map +1 -0
- package/dist/ai/provider.js +13 -0
- package/dist/ai/provider.js.map +1 -0
- package/dist/ai/refusal.d.ts +50 -0
- package/dist/ai/refusal.d.ts.map +1 -0
- package/dist/ai/refusal.js +100 -0
- package/dist/ai/refusal.js.map +1 -0
- package/dist/ai/vision-prep.d.ts +32 -0
- package/dist/ai/vision-prep.d.ts.map +1 -0
- package/dist/ai/vision-prep.js +113 -0
- package/dist/ai/vision-prep.js.map +1 -0
- package/dist/alt/adapter.d.ts +140 -0
- package/dist/alt/adapter.d.ts.map +1 -0
- package/dist/alt/adapter.js +7 -0
- package/dist/alt/adapter.js.map +1 -0
- package/dist/alt/anthropic.d.ts +63 -0
- package/dist/alt/anthropic.d.ts.map +1 -0
- package/dist/alt/anthropic.js +147 -0
- package/dist/alt/anthropic.js.map +1 -0
- package/dist/alt/config.d.ts +67 -0
- package/dist/alt/config.d.ts.map +1 -0
- package/dist/alt/config.js +41 -0
- package/dist/alt/config.js.map +1 -0
- package/dist/alt/factory.d.ts +19 -0
- package/dist/alt/factory.d.ts.map +1 -0
- package/dist/alt/factory.js +69 -0
- package/dist/alt/factory.js.map +1 -0
- package/dist/alt/null-adapter.d.ts +3 -0
- package/dist/alt/null-adapter.d.ts.map +1 -0
- package/dist/alt/null-adapter.js +43 -0
- package/dist/alt/null-adapter.js.map +1 -0
- package/dist/alt/ollama.d.ts +40 -0
- package/dist/alt/ollama.d.ts.map +1 -0
- package/dist/alt/ollama.js +139 -0
- package/dist/alt/ollama.js.map +1 -0
- package/dist/alt/openai.d.ts +46 -0
- package/dist/alt/openai.d.ts.map +1 -0
- package/dist/alt/openai.js +118 -0
- package/dist/alt/openai.js.map +1 -0
- package/dist/alt/prompt-policies.d.ts +79 -0
- package/dist/alt/prompt-policies.d.ts.map +1 -0
- package/dist/alt/prompt-policies.js +67 -0
- package/dist/alt/prompt-policies.js.map +1 -0
- package/dist/alt/route-handler.d.ts +56 -0
- package/dist/alt/route-handler.d.ts.map +1 -0
- package/dist/alt/route-handler.js +122 -0
- package/dist/alt/route-handler.js.map +1 -0
- package/dist/alt/suggester.d.ts +57 -0
- package/dist/alt/suggester.d.ts.map +1 -0
- package/dist/alt/suggester.js +133 -0
- package/dist/alt/suggester.js.map +1 -0
- package/dist/app.js +1 -1
- package/dist/app.js.map +1 -1
- package/dist/archive-aliases.d.ts +79 -0
- package/dist/archive-aliases.d.ts.map +1 -0
- package/dist/archive-aliases.js +60 -0
- package/dist/archive-aliases.js.map +1 -0
- package/dist/archive-helpers.d.ts +73 -0
- package/dist/archive-helpers.d.ts.map +1 -0
- package/dist/archive-helpers.js +94 -0
- package/dist/archive-helpers.js.map +1 -0
- package/dist/assets/analyze-audio.d.ts +3 -0
- package/dist/assets/analyze-audio.d.ts.map +1 -0
- package/dist/assets/analyze-audio.js +80 -0
- package/dist/assets/analyze-audio.js.map +1 -0
- package/dist/assets/analyze-image.d.ts +19 -0
- package/dist/assets/analyze-image.d.ts.map +1 -0
- package/dist/assets/analyze-image.js +123 -0
- package/dist/assets/analyze-image.js.map +1 -0
- package/dist/assets/analyze.d.ts +94 -0
- package/dist/assets/analyze.d.ts.map +1 -0
- package/dist/assets/analyze.js +45 -0
- package/dist/assets/analyze.js.map +1 -0
- package/dist/assets/asset-deps.d.ts +30 -0
- package/dist/assets/asset-deps.d.ts.map +1 -0
- package/dist/assets/asset-deps.js +42 -0
- package/dist/assets/asset-deps.js.map +1 -0
- package/dist/assets/asset-paths.d.ts +155 -0
- package/dist/assets/asset-paths.d.ts.map +1 -0
- package/dist/assets/asset-paths.js +197 -0
- package/dist/assets/asset-paths.js.map +1 -0
- package/dist/assets/delete.d.ts +75 -0
- package/dist/assets/delete.d.ts.map +1 -0
- package/dist/assets/delete.js +82 -0
- package/dist/assets/delete.js.map +1 -0
- package/dist/assets/errors.d.ts +241 -0
- package/dist/assets/errors.d.ts.map +1 -0
- package/dist/assets/errors.js +300 -0
- package/dist/assets/errors.js.map +1 -0
- package/dist/assets/find-refs.d.ts +37 -0
- package/dist/assets/find-refs.d.ts.map +1 -0
- package/dist/assets/find-refs.js +35 -0
- package/dist/assets/find-refs.js.map +1 -0
- package/dist/assets/hash.d.ts +13 -0
- package/dist/assets/hash.d.ts.map +1 -0
- package/dist/assets/hash.js +43 -0
- package/dist/assets/hash.js.map +1 -0
- package/dist/assets/image-metadata.d.ts +11 -0
- package/dist/assets/image-metadata.d.ts.map +1 -0
- package/dist/assets/image-metadata.js +31 -0
- package/dist/assets/image-metadata.js.map +1 -0
- package/dist/assets/ingest-locale.d.ts +86 -0
- package/dist/assets/ingest-locale.d.ts.map +1 -0
- package/dist/assets/ingest-locale.js +209 -0
- package/dist/assets/ingest-locale.js.map +1 -0
- package/dist/assets/ingest.d.ts +96 -0
- package/dist/assets/ingest.d.ts.map +1 -0
- package/dist/assets/ingest.js +308 -0
- package/dist/assets/ingest.js.map +1 -0
- package/dist/assets/kind-compat.d.ts +34 -0
- package/dist/assets/kind-compat.d.ts.map +1 -0
- package/dist/assets/kind-compat.js +33 -0
- package/dist/assets/kind-compat.js.map +1 -0
- package/dist/assets/list.d.ts +46 -0
- package/dist/assets/list.d.ts.map +1 -0
- package/dist/assets/list.js +102 -0
- package/dist/assets/list.js.map +1 -0
- package/dist/assets/manifest-default.d.ts +56 -0
- package/dist/assets/manifest-default.d.ts.map +1 -0
- package/dist/assets/manifest-default.js +120 -0
- package/dist/assets/manifest-default.js.map +1 -0
- package/dist/assets/manifest-filename.d.ts +52 -0
- package/dist/assets/manifest-filename.d.ts.map +1 -0
- package/dist/assets/manifest-filename.js +104 -0
- package/dist/assets/manifest-filename.js.map +1 -0
- package/dist/assets/manifest-locale.d.ts +60 -0
- package/dist/assets/manifest-locale.d.ts.map +1 -0
- package/dist/assets/manifest-locale.js +206 -0
- package/dist/assets/manifest-locale.js.map +1 -0
- package/dist/assets/manifest-merge.d.ts +66 -0
- package/dist/assets/manifest-merge.d.ts.map +1 -0
- package/dist/assets/manifest-merge.js +82 -0
- package/dist/assets/manifest-merge.js.map +1 -0
- package/dist/assets/manifest.d.ts +83 -0
- package/dist/assets/manifest.d.ts.map +1 -0
- package/dist/assets/manifest.js +93 -0
- package/dist/assets/manifest.js.map +1 -0
- package/dist/assets/mime-sniff.d.ts +18 -0
- package/dist/assets/mime-sniff.d.ts.map +1 -0
- package/dist/assets/mime-sniff.js +84 -0
- package/dist/assets/mime-sniff.js.map +1 -0
- package/dist/assets/preprocess-svg.d.ts +3 -0
- package/dist/assets/preprocess-svg.d.ts.map +1 -0
- package/dist/assets/preprocess-svg.js +49 -0
- package/dist/assets/preprocess-svg.js.map +1 -0
- package/dist/assets/preprocess.d.ts +62 -0
- package/dist/assets/preprocess.d.ts.map +1 -0
- package/dist/assets/preprocess.js +86 -0
- package/dist/assets/preprocess.js.map +1 -0
- package/dist/assets/publish-plan.d.ts +41 -0
- package/dist/assets/publish-plan.d.ts.map +1 -0
- package/dist/assets/publish-plan.js +49 -0
- package/dist/assets/publish-plan.js.map +1 -0
- package/dist/assets/publish.d.ts +33 -0
- package/dist/assets/publish.d.ts.map +1 -0
- package/dist/assets/publish.js +81 -0
- package/dist/assets/publish.js.map +1 -0
- package/dist/assets/refs.d.ts +37 -0
- package/dist/assets/refs.d.ts.map +1 -0
- package/dist/assets/refs.js +33 -0
- package/dist/assets/refs.js.map +1 -0
- package/dist/assets/remove-override.d.ts +42 -0
- package/dist/assets/remove-override.d.ts.map +1 -0
- package/dist/assets/remove-override.js +53 -0
- package/dist/assets/remove-override.js.map +1 -0
- package/dist/assets/rename.d.ts +43 -0
- package/dist/assets/rename.d.ts.map +1 -0
- package/dist/assets/rename.js +271 -0
- package/dist/assets/rename.js.map +1 -0
- package/dist/assets/replace.d.ts +37 -0
- package/dist/assets/replace.d.ts.map +1 -0
- package/dist/assets/replace.js +195 -0
- package/dist/assets/replace.js.map +1 -0
- package/dist/assets/resolve.d.ts +141 -0
- package/dist/assets/resolve.d.ts.map +1 -0
- package/dist/assets/resolve.js +381 -0
- package/dist/assets/resolve.js.map +1 -0
- package/dist/assets/rewrite-manifest-asset-ref.d.ts +44 -0
- package/dist/assets/rewrite-manifest-asset-ref.d.ts.map +1 -0
- package/dist/assets/rewrite-manifest-asset-ref.js +51 -0
- package/dist/assets/rewrite-manifest-asset-ref.js.map +1 -0
- package/dist/assets/scan-manifest-for-asset.d.ts +63 -0
- package/dist/assets/scan-manifest-for-asset.d.ts.map +1 -0
- package/dist/assets/scan-manifest-for-asset.js +105 -0
- package/dist/assets/scan-manifest-for-asset.js.map +1 -0
- package/dist/assets/serve-route.d.ts +45 -0
- package/dist/assets/serve-route.d.ts.map +1 -0
- package/dist/assets/serve-route.js +123 -0
- package/dist/assets/serve-route.js.map +1 -0
- package/dist/assets/svg-sanitize.d.ts +38 -0
- package/dist/assets/svg-sanitize.d.ts.map +1 -0
- package/dist/assets/svg-sanitize.js +209 -0
- package/dist/assets/svg-sanitize.js.map +1 -0
- package/dist/assets/update-metadata.d.ts +61 -0
- package/dist/assets/update-metadata.d.ts.map +1 -0
- package/dist/assets/update-metadata.js +82 -0
- package/dist/assets/update-metadata.js.map +1 -0
- package/dist/assets/url.d.ts +82 -0
- package/dist/assets/url.d.ts.map +1 -0
- package/dist/assets/url.js +103 -0
- package/dist/assets/url.js.map +1 -0
- package/dist/assets/validate.d.ts +74 -0
- package/dist/assets/validate.d.ts.map +1 -0
- package/dist/assets/validate.js +136 -0
- package/dist/assets/validate.js.map +1 -0
- package/dist/assets/variants.d.ts +23 -0
- package/dist/assets/variants.d.ts.map +1 -0
- package/dist/assets/variants.js +74 -0
- package/dist/assets/variants.js.map +1 -0
- package/dist/audit/config.d.ts +75 -0
- package/dist/audit/config.d.ts.map +1 -0
- package/dist/audit/config.js +91 -0
- package/dist/audit/config.js.map +1 -0
- package/dist/audit/context.d.ts +98 -0
- package/dist/audit/context.d.ts.map +1 -0
- package/dist/audit/context.js +51 -0
- package/dist/audit/context.js.map +1 -0
- package/dist/audit/errors.d.ts +73 -0
- package/dist/audit/errors.d.ts.map +1 -0
- package/dist/audit/errors.js +78 -0
- package/dist/audit/errors.js.map +1 -0
- package/dist/audit/index.d.ts +16 -0
- package/dist/audit/index.d.ts.map +1 -0
- package/dist/audit/index.js +10 -0
- package/dist/audit/index.js.map +1 -0
- package/dist/audit/provider.d.ts +73 -0
- package/dist/audit/provider.d.ts.map +1 -0
- package/dist/audit/provider.js +2 -0
- package/dist/audit/provider.js.map +1 -0
- package/dist/audit/providers/history.d.ts +66 -0
- package/dist/audit/providers/history.d.ts.map +1 -0
- package/dist/audit/providers/history.js +102 -0
- package/dist/audit/providers/history.js.map +1 -0
- package/dist/audit/pseudonymize.d.ts +26 -0
- package/dist/audit/pseudonymize.d.ts.map +1 -0
- package/dist/audit/pseudonymize.js +86 -0
- package/dist/audit/pseudonymize.js.map +1 -0
- package/dist/audit/recorder.d.ts +102 -0
- package/dist/audit/recorder.d.ts.map +1 -0
- package/dist/audit/recorder.js +55 -0
- package/dist/audit/recorder.js.map +1 -0
- package/dist/audit/retention.d.ts +83 -0
- package/dist/audit/retention.d.ts.map +1 -0
- package/dist/audit/retention.js +142 -0
- package/dist/audit/retention.js.map +1 -0
- package/dist/audit/source-ip.d.ts +32 -0
- package/dist/audit/source-ip.d.ts.map +1 -0
- package/dist/audit/source-ip.js +164 -0
- package/dist/audit/source-ip.js.map +1 -0
- package/dist/audit/types.d.ts +143 -0
- package/dist/audit/types.d.ts.map +1 -0
- package/dist/audit/types.js +33 -0
- package/dist/audit/types.js.map +1 -0
- package/dist/audit/user-agent.d.ts +28 -0
- package/dist/audit/user-agent.d.ts.map +1 -0
- package/dist/audit/user-agent.js +63 -0
- package/dist/audit/user-agent.js.map +1 -0
- package/dist/auth/capabilities.d.ts +28 -0
- package/dist/auth/capabilities.d.ts.map +1 -0
- package/dist/auth/capabilities.js +101 -0
- package/dist/auth/capabilities.js.map +1 -0
- package/dist/auth/config.d.ts +109 -0
- package/dist/auth/config.d.ts.map +1 -0
- package/dist/auth/config.js +221 -0
- package/dist/auth/config.js.map +1 -0
- package/dist/auth/errors.d.ts +72 -0
- package/dist/auth/errors.d.ts.map +1 -0
- package/dist/auth/errors.js +78 -0
- package/dist/auth/errors.js.map +1 -0
- package/dist/auth/factory.d.ts +43 -0
- package/dist/auth/factory.d.ts.map +1 -0
- package/dist/auth/factory.js +48 -0
- package/dist/auth/factory.js.map +1 -0
- package/dist/auth/index.d.ts +21 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +14 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/ip-match.d.ts +29 -0
- package/dist/auth/ip-match.d.ts.map +1 -0
- package/dist/auth/ip-match.js +162 -0
- package/dist/auth/ip-match.js.map +1 -0
- package/dist/auth/provider.d.ts +76 -0
- package/dist/auth/provider.d.ts.map +1 -0
- package/dist/auth/provider.js +2 -0
- package/dist/auth/provider.js.map +1 -0
- package/dist/auth/providers/aws-cognito.d.ts +55 -0
- package/dist/auth/providers/aws-cognito.d.ts.map +1 -0
- package/dist/auth/providers/aws-cognito.js +114 -0
- package/dist/auth/providers/aws-cognito.js.map +1 -0
- package/dist/auth/providers/azure-easy-auth.d.ts +7 -0
- package/dist/auth/providers/azure-easy-auth.d.ts.map +1 -0
- package/dist/auth/providers/azure-easy-auth.js +48 -0
- package/dist/auth/providers/azure-easy-auth.js.map +1 -0
- package/dist/auth/providers/cloudflare-access.d.ts +71 -0
- package/dist/auth/providers/cloudflare-access.d.ts.map +1 -0
- package/dist/auth/providers/cloudflare-access.js +120 -0
- package/dist/auth/providers/cloudflare-access.js.map +1 -0
- package/dist/auth/providers/forwarded-user.d.ts +31 -0
- package/dist/auth/providers/forwarded-user.d.ts.map +1 -0
- package/dist/auth/providers/forwarded-user.js +72 -0
- package/dist/auth/providers/forwarded-user.js.map +1 -0
- package/dist/auth/providers/none.d.ts +6 -0
- package/dist/auth/providers/none.d.ts.map +1 -0
- package/dist/auth/providers/none.js +19 -0
- package/dist/auth/providers/none.js.map +1 -0
- package/dist/auth/providers/tailscale.d.ts +7 -0
- package/dist/auth/providers/tailscale.d.ts.map +1 -0
- package/dist/auth/providers/tailscale.js +30 -0
- package/dist/auth/providers/tailscale.js.map +1 -0
- package/dist/auth/role-resolver.d.ts +38 -0
- package/dist/auth/role-resolver.d.ts.map +1 -0
- package/dist/auth/role-resolver.js +92 -0
- package/dist/auth/role-resolver.js.map +1 -0
- package/dist/auth/types.d.ts +150 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +60 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/cache/errors.d.ts +41 -0
- package/dist/cache/errors.d.ts.map +1 -0
- package/dist/cache/errors.js +44 -0
- package/dist/cache/errors.js.map +1 -0
- package/dist/cache/factories.d.ts +17 -0
- package/dist/cache/factories.d.ts.map +1 -0
- package/dist/cache/factories.js +17 -0
- package/dist/cache/factories.js.map +1 -0
- package/dist/cache/keys.d.ts +63 -0
- package/dist/cache/keys.d.ts.map +1 -0
- package/dist/cache/keys.js +145 -0
- package/dist/cache/keys.js.map +1 -0
- package/dist/cache/memory.d.ts +51 -0
- package/dist/cache/memory.d.ts.map +1 -0
- package/dist/cache/memory.js +204 -0
- package/dist/cache/memory.js.map +1 -0
- package/dist/cache/per-site.d.ts +22 -0
- package/dist/cache/per-site.d.ts.map +1 -0
- package/dist/cache/per-site.js +114 -0
- package/dist/cache/per-site.js.map +1 -0
- package/dist/cache/types.d.ts +142 -0
- package/dist/cache/types.d.ts.map +1 -0
- package/dist/cache/types.js +33 -0
- package/dist/cache/types.js.map +1 -0
- package/dist/cli/archive.d.ts +44 -0
- package/dist/cli/archive.d.ts.map +1 -0
- package/dist/cli/archive.js +310 -0
- package/dist/cli/archive.js.map +1 -0
- package/dist/cli/assets-cli.d.ts +58 -0
- package/dist/cli/assets-cli.d.ts.map +1 -0
- package/dist/cli/assets-cli.js +233 -0
- package/dist/cli/assets-cli.js.map +1 -0
- package/dist/cli/assets-display.d.ts +112 -0
- package/dist/cli/assets-display.d.ts.map +1 -0
- package/dist/cli/assets-display.js +106 -0
- package/dist/cli/assets-display.js.map +1 -0
- package/dist/cli/bootstrap.d.ts +15 -10
- package/dist/cli/bootstrap.d.ts.map +1 -1
- package/dist/cli/bootstrap.js +59 -24
- package/dist/cli/bootstrap.js.map +1 -1
- package/dist/cli/dev-template-watcher.d.ts +29 -0
- package/dist/cli/dev-template-watcher.d.ts.map +1 -0
- package/dist/cli/dev-template-watcher.js +38 -0
- package/dist/cli/dev-template-watcher.js.map +1 -0
- package/dist/cli/history.d.ts.map +1 -1
- package/dist/cli/history.js +5 -3
- package/dist/cli/history.js.map +1 -1
- package/dist/cli/index.js +737 -374
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/validate-flags.d.ts +29 -0
- package/dist/cli/validate-flags.d.ts.map +1 -0
- package/dist/cli/validate-flags.js +49 -0
- package/dist/cli/validate-flags.js.map +1 -0
- package/dist/compare.d.ts +1 -1
- package/dist/compare.d.ts.map +1 -1
- package/dist/compare.js +40 -35
- package/dist/compare.js.map +1 -1
- package/dist/component-ids.d.ts +25 -0
- package/dist/component-ids.d.ts.map +1 -0
- package/dist/component-ids.js +83 -0
- package/dist/component-ids.js.map +1 -0
- package/dist/config/define.d.ts +61 -0
- package/dist/config/define.d.ts.map +1 -0
- package/dist/config/define.js +64 -0
- package/dist/config/define.js.map +1 -0
- package/dist/config/errors.d.ts +32 -0
- package/dist/config/errors.d.ts.map +1 -0
- package/dist/config/errors.js +40 -0
- package/dist/config/errors.js.map +1 -0
- package/dist/config/index.d.ts +13 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +20 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/loader.d.ts +105 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +265 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/schemas.d.ts +89 -0
- package/dist/config/schemas.d.ts.map +1 -0
- package/dist/config/schemas.js +172 -0
- package/dist/config/schemas.js.map +1 -0
- package/dist/config/types.d.ts +32 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +15 -0
- package/dist/config/types.js.map +1 -0
- package/dist/dep-sidecars.d.ts +127 -0
- package/dist/dep-sidecars.d.ts.map +1 -0
- package/dist/dep-sidecars.js +122 -0
- package/dist/dep-sidecars.js.map +1 -0
- package/dist/deploy/cloudflare-workers.d.ts +46 -0
- package/dist/deploy/cloudflare-workers.d.ts.map +1 -0
- package/dist/deploy/cloudflare-workers.js +213 -0
- package/dist/deploy/cloudflare-workers.js.map +1 -0
- package/dist/deploy/errors.d.ts +66 -0
- package/dist/deploy/errors.d.ts.map +1 -0
- package/dist/deploy/errors.js +82 -0
- package/dist/deploy/errors.js.map +1 -0
- package/dist/deploy/index.d.ts +9 -0
- package/dist/deploy/index.d.ts.map +1 -0
- package/dist/deploy/index.js +3 -0
- package/dist/deploy/index.js.map +1 -0
- package/dist/deploy/types.d.ts +162 -0
- package/dist/deploy/types.d.ts.map +1 -0
- package/dist/deploy/types.js +2 -0
- package/dist/deploy/types.js.map +1 -0
- package/dist/editor/AssetEmbeddedWidget.d.ts +3 -0
- package/dist/editor/AssetEmbeddedWidget.d.ts.map +1 -0
- package/dist/editor/AssetEmbeddedWidget.js +146 -0
- package/dist/editor/AssetEmbeddedWidget.js.map +1 -0
- package/dist/editor/mount.d.ts +12 -1
- package/dist/editor/mount.d.ts.map +1 -1
- package/dist/editor/mount.js +36 -5
- package/dist/editor/mount.js.map +1 -1
- package/dist/format.d.ts +44 -0
- package/dist/format.d.ts.map +1 -0
- package/dist/format.js +65 -0
- package/dist/format.js.map +1 -0
- package/dist/fragment-deps.d.ts +24 -0
- package/dist/fragment-deps.d.ts.map +1 -0
- package/dist/fragment-deps.js +20 -0
- package/dist/fragment-deps.js.map +1 -0
- package/dist/fragments/create.d.ts +70 -0
- package/dist/fragments/create.d.ts.map +1 -0
- package/dist/fragments/create.js +93 -0
- package/dist/fragments/create.js.map +1 -0
- package/dist/fragments/publish.d.ts +37 -0
- package/dist/fragments/publish.d.ts.map +1 -0
- package/dist/fragments/publish.js +52 -0
- package/dist/fragments/publish.js.map +1 -0
- package/dist/fragments/save.d.ts +81 -0
- package/dist/fragments/save.d.ts.map +1 -0
- package/dist/fragments/save.js +105 -0
- package/dist/fragments/save.js.map +1 -0
- package/dist/hash.d.ts +0 -6
- package/dist/hash.d.ts.map +1 -1
- package/dist/hash.js +0 -18
- package/dist/hash.js.map +1 -1
- package/dist/history-provider.d.ts.map +1 -1
- package/dist/history-provider.js +30 -8
- package/dist/history-provider.js.map +1 -1
- package/dist/history-recorder.d.ts +10 -6
- package/dist/history-recorder.d.ts.map +1 -1
- package/dist/history-recorder.js +13 -5
- package/dist/history-recorder.js.map +1 -1
- package/dist/history-restorer.d.ts.map +1 -1
- package/dist/history-restorer.js +34 -2
- package/dist/history-restorer.js.map +1 -1
- package/dist/history.d.ts +26 -8
- package/dist/history.d.ts.map +1 -1
- package/dist/hooks/audit-emitter.d.ts +73 -0
- package/dist/hooks/audit-emitter.d.ts.map +1 -0
- package/dist/hooks/audit-emitter.js +13 -0
- package/dist/hooks/audit-emitter.js.map +1 -0
- package/dist/hooks/context.d.ts +78 -0
- package/dist/hooks/context.d.ts.map +1 -0
- package/dist/hooks/context.js +56 -0
- package/dist/hooks/context.js.map +1 -0
- package/dist/hooks/contribution.d.ts +90 -0
- package/dist/hooks/contribution.d.ts.map +1 -0
- package/dist/hooks/contribution.js +2 -0
- package/dist/hooks/contribution.js.map +1 -0
- package/dist/hooks/dispatch.d.ts +30 -0
- package/dist/hooks/dispatch.d.ts.map +1 -0
- package/dist/hooks/dispatch.js +252 -0
- package/dist/hooks/dispatch.js.map +1 -0
- package/dist/hooks/errors.d.ts +100 -0
- package/dist/hooks/errors.d.ts.map +1 -0
- package/dist/hooks/errors.js +103 -0
- package/dist/hooks/errors.js.map +1 -0
- package/dist/hooks/index.d.ts +15 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +6 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/registry.d.ts +53 -0
- package/dist/hooks/registry.d.ts.map +1 -0
- package/dist/hooks/registry.js +139 -0
- package/dist/hooks/registry.js.map +1 -0
- package/dist/hooks/storage.d.ts +43 -0
- package/dist/hooks/storage.d.ts.map +1 -0
- package/dist/hooks/storage.js +2 -0
- package/dist/hooks/storage.js.map +1 -0
- package/dist/hooks/types.d.ts +324 -0
- package/dist/hooks/types.d.ts.map +1 -0
- package/dist/hooks/types.js +2 -0
- package/dist/hooks/types.js.map +1 -0
- package/dist/index.d.ts +27 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +50 -7
- package/dist/index.js.map +1 -1
- package/dist/locale.d.ts +25 -1
- package/dist/locale.d.ts.map +1 -1
- package/dist/locale.js +44 -2
- package/dist/locale.js.map +1 -1
- package/dist/manifest-save.d.ts +255 -0
- package/dist/manifest-save.d.ts.map +1 -0
- package/dist/manifest-save.js +260 -0
- package/dist/manifest-save.js.map +1 -0
- package/dist/manifest.d.ts +1 -2
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +43 -44
- package/dist/manifest.js.map +1 -1
- package/dist/node-floor.d.ts +3 -0
- package/dist/node-floor.d.ts.map +1 -0
- package/dist/node-floor.js +3 -0
- package/dist/node-floor.js.map +1 -0
- package/dist/pages/create.d.ts +103 -0
- package/dist/pages/create.d.ts.map +1 -0
- package/dist/pages/create.js +117 -0
- package/dist/pages/create.js.map +1 -0
- package/dist/pages/publish.d.ts +59 -0
- package/dist/pages/publish.d.ts.map +1 -0
- package/dist/pages/publish.js +78 -0
- package/dist/pages/publish.js.map +1 -0
- package/dist/pages/save.d.ts +97 -0
- package/dist/pages/save.d.ts.map +1 -0
- package/dist/pages/save.js +138 -0
- package/dist/pages/save.js.map +1 -0
- package/dist/providers/_atomic-write.d.ts +9 -0
- package/dist/providers/_atomic-write.d.ts.map +1 -0
- package/dist/providers/_atomic-write.js +72 -0
- package/dist/providers/_atomic-write.js.map +1 -0
- package/dist/providers/_rm-ignore-missing.d.ts +31 -0
- package/dist/providers/_rm-ignore-missing.d.ts.map +1 -0
- package/dist/providers/_rm-ignore-missing.js +12 -0
- package/dist/providers/_rm-ignore-missing.js.map +1 -0
- package/dist/providers/_stream-interop.d.ts +23 -0
- package/dist/providers/_stream-interop.d.ts.map +1 -0
- package/dist/providers/_stream-interop.js +21 -0
- package/dist/providers/_stream-interop.js.map +1 -0
- package/dist/providers/azure-blob.d.ts.map +1 -1
- package/dist/providers/azure-blob.js +60 -0
- package/dist/providers/azure-blob.js.map +1 -1
- package/dist/providers/factories.d.ts +65 -0
- package/dist/providers/factories.d.ts.map +1 -0
- package/dist/providers/factories.js +189 -0
- package/dist/providers/factories.js.map +1 -0
- package/dist/providers/filesystem.d.ts +4 -0
- package/dist/providers/filesystem.d.ts.map +1 -1
- package/dist/providers/filesystem.js +63 -2
- package/dist/providers/filesystem.js.map +1 -1
- package/dist/providers/s3.d.ts.map +1 -1
- package/dist/providers/s3.js +84 -1
- package/dist/providers/s3.js.map +1 -1
- package/dist/publish-item.d.ts +225 -0
- package/dist/publish-item.d.ts.map +1 -0
- package/dist/publish-item.js +210 -0
- package/dist/publish-item.js.map +1 -0
- package/dist/publish-rendered.d.ts +37 -17
- package/dist/publish-rendered.d.ts.map +1 -1
- package/dist/publish-rendered.js +144 -71
- package/dist/publish-rendered.js.map +1 -1
- package/dist/publish-renderers.d.ts +132 -0
- package/dist/publish-renderers.d.ts.map +1 -0
- package/dist/publish-renderers.js +240 -0
- package/dist/publish-renderers.js.map +1 -0
- package/dist/publish-run.d.ts +223 -0
- package/dist/publish-run.d.ts.map +1 -0
- package/dist/publish-run.js +307 -0
- package/dist/publish-run.js.map +1 -0
- package/dist/publish.d.ts +13 -12
- package/dist/publish.d.ts.map +1 -1
- package/dist/publish.js +24 -57
- package/dist/publish.js.map +1 -1
- package/dist/render-for-analysis.d.ts +24 -0
- package/dist/render-for-analysis.d.ts.map +1 -0
- package/dist/render-for-analysis.js +146 -0
- package/dist/render-for-analysis.js.map +1 -0
- package/dist/resolver.d.ts +12 -2
- package/dist/resolver.d.ts.map +1 -1
- package/dist/resolver.js +101 -32
- package/dist/resolver.js.map +1 -1
- package/dist/runtime/archive-marker.d.ts +62 -0
- package/dist/runtime/archive-marker.d.ts.map +1 -0
- package/dist/runtime/archive-marker.js +88 -0
- package/dist/runtime/archive-marker.js.map +1 -0
- package/dist/runtime/capability-gap-warnings.d.ts +42 -0
- package/dist/runtime/capability-gap-warnings.d.ts.map +1 -0
- package/dist/runtime/capability-gap-warnings.js +28 -0
- package/dist/runtime/capability-gap-warnings.js.map +1 -0
- package/dist/runtime/redirects-emit.d.ts +93 -0
- package/dist/runtime/redirects-emit.d.ts.map +1 -0
- package/dist/runtime/redirects-emit.js +89 -0
- package/dist/runtime/redirects-emit.js.map +1 -0
- package/dist/runtime/runtime-capabilities.d.ts +79 -0
- package/dist/runtime/runtime-capabilities.d.ts.map +1 -0
- package/dist/runtime/runtime-capabilities.js +60 -0
- package/dist/runtime/runtime-capabilities.js.map +1 -0
- package/dist/save-etag.d.ts +69 -0
- package/dist/save-etag.d.ts.map +1 -0
- package/dist/save-etag.js +118 -0
- package/dist/save-etag.js.map +1 -0
- package/dist/schema/dimensions.d.ts +78 -0
- package/dist/schema/dimensions.d.ts.map +1 -0
- package/dist/schema/dimensions.js +97 -0
- package/dist/schema/dimensions.js.map +1 -0
- package/dist/schema/helpers.d.ts +108 -0
- package/dist/schema/helpers.d.ts.map +1 -0
- package/dist/schema/helpers.js +133 -0
- package/dist/schema/helpers.js.map +1 -0
- package/dist/schema/index.d.ts +27 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +25 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/types.d.ts +390 -0
- package/dist/schema/types.d.ts.map +1 -0
- package/dist/schema/types.js +25 -0
- package/dist/schema/types.js.map +1 -0
- package/dist/selector-chain.d.ts +63 -0
- package/dist/selector-chain.d.ts.map +1 -0
- package/dist/selector-chain.js +58 -0
- package/dist/selector-chain.js.map +1 -0
- package/dist/sidecars.d.ts +19 -18
- package/dist/sidecars.d.ts.map +1 -1
- package/dist/sidecars.js +70 -62
- package/dist/sidecars.js.map +1 -1
- package/dist/site-loader.d.ts +42 -4
- package/dist/site-loader.d.ts.map +1 -1
- package/dist/site-loader.js +27 -8
- package/dist/site-loader.js.map +1 -1
- package/dist/targets.d.ts +21 -12
- package/dist/targets.d.ts.map +1 -1
- package/dist/targets.js +27 -117
- package/dist/targets.js.map +1 -1
- package/dist/testing/admin-cache-contract.d.ts +52 -0
- package/dist/testing/admin-cache-contract.d.ts.map +1 -0
- package/dist/testing/admin-cache-contract.js +203 -0
- package/dist/testing/admin-cache-contract.js.map +1 -0
- package/dist/testing/index.d.ts +11 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +11 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/themes.d.ts +69 -0
- package/dist/themes.d.ts.map +1 -0
- package/dist/themes.js +85 -0
- package/dist/themes.js.map +1 -0
- package/dist/transforms/adapter.d.ts +115 -0
- package/dist/transforms/adapter.d.ts.map +1 -0
- package/dist/transforms/adapter.js +2 -0
- package/dist/transforms/adapter.js.map +1 -0
- package/dist/transforms/cloudflare.d.ts +17 -0
- package/dist/transforms/cloudflare.d.ts.map +1 -0
- package/dist/transforms/cloudflare.js +110 -0
- package/dist/transforms/cloudflare.js.map +1 -0
- package/dist/transforms/factories.d.ts +16 -0
- package/dist/transforms/factories.d.ts.map +1 -0
- package/dist/transforms/factories.js +18 -0
- package/dist/transforms/factories.js.map +1 -0
- package/dist/transforms/index.d.ts +17 -0
- package/dist/transforms/index.d.ts.map +1 -0
- package/dist/transforms/index.js +6 -0
- package/dist/transforms/index.js.map +1 -0
- package/dist/transforms/sharp.d.ts +17 -0
- package/dist/transforms/sharp.d.ts.map +1 -0
- package/dist/transforms/sharp.js +57 -0
- package/dist/transforms/sharp.js.map +1 -0
- package/dist/types.d.ts +485 -34
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +20 -1
- package/dist/types.js.map +1 -1
- package/dist/validation/alt-required-walker.d.ts +27 -0
- package/dist/validation/alt-required-walker.d.ts.map +1 -0
- package/dist/validation/alt-required-walker.js +108 -0
- package/dist/validation/alt-required-walker.js.map +1 -0
- package/dist/validation/default-registry.d.ts +12 -0
- package/dist/validation/default-registry.d.ts.map +1 -0
- package/dist/validation/default-registry.js +55 -0
- package/dist/validation/default-registry.js.map +1 -0
- package/dist/validation/publish-audit.d.ts +44 -0
- package/dist/validation/publish-audit.d.ts.map +1 -0
- package/dist/validation/publish-audit.js +64 -0
- package/dist/validation/publish-audit.js.map +1 -0
- package/dist/validation/registry.d.ts +23 -0
- package/dist/validation/registry.d.ts.map +1 -0
- package/dist/validation/registry.js +15 -0
- package/dist/validation/registry.js.map +1 -0
- package/dist/validation/save-delta.d.ts +46 -0
- package/dist/validation/save-delta.d.ts.map +1 -0
- package/dist/validation/save-delta.js +57 -0
- package/dist/validation/save-delta.js.map +1 -0
- package/dist/validation/scanner.d.ts +91 -0
- package/dist/validation/scanner.d.ts.map +1 -0
- package/dist/validation/scanner.js +327 -0
- package/dist/validation/scanner.js.map +1 -0
- package/dist/validation/template-impact.d.ts +52 -0
- package/dist/validation/template-impact.d.ts.map +1 -0
- package/dist/validation/template-impact.js +53 -0
- package/dist/validation/template-impact.js.map +1 -0
- package/dist/validation/types.d.ts +123 -0
- package/dist/validation/types.d.ts.map +1 -0
- package/dist/validation/types.js +7 -0
- package/dist/validation/types.js.map +1 -0
- package/dist/validation/validators/accessibility.d.ts +3 -0
- package/dist/validation/validators/accessibility.d.ts.map +1 -0
- package/dist/validation/validators/accessibility.js +106 -0
- package/dist/validation/validators/accessibility.js.map +1 -0
- package/dist/validation/validators/aliasof-points-to-archived.d.ts +40 -0
- package/dist/validation/validators/aliasof-points-to-archived.d.ts.map +1 -0
- package/dist/validation/validators/aliasof-points-to-archived.js +34 -0
- package/dist/validation/validators/aliasof-points-to-archived.js.map +1 -0
- package/dist/validation/validators/alt-required.d.ts +3 -0
- package/dist/validation/validators/alt-required.d.ts.map +1 -0
- package/dist/validation/validators/alt-required.js +118 -0
- package/dist/validation/validators/alt-required.js.map +1 -0
- package/dist/validation/validators/archive-not-supported-on-target.d.ts +3 -0
- package/dist/validation/validators/archive-not-supported-on-target.d.ts.map +1 -0
- package/dist/validation/validators/archive-not-supported-on-target.js +38 -0
- package/dist/validation/validators/archive-not-supported-on-target.js.map +1 -0
- package/dist/validation/validators/broken-links.d.ts +3 -0
- package/dist/validation/validators/broken-links.d.ts.map +1 -0
- package/dist/validation/validators/broken-links.js +190 -0
- package/dist/validation/validators/broken-links.js.map +1 -0
- package/dist/validation/validators/circular-alias.d.ts +36 -0
- package/dist/validation/validators/circular-alias.d.ts.map +1 -0
- package/dist/validation/validators/circular-alias.js +63 -0
- package/dist/validation/validators/circular-alias.js.map +1 -0
- package/dist/validation/validators/circular-fragment.d.ts +15 -0
- package/dist/validation/validators/circular-fragment.d.ts.map +1 -0
- package/dist/validation/validators/circular-fragment.js +97 -0
- package/dist/validation/validators/circular-fragment.js.map +1 -0
- package/dist/validation/validators/dangling-alias.d.ts +38 -0
- package/dist/validation/validators/dangling-alias.d.ts.map +1 -0
- package/dist/validation/validators/dangling-alias.js +31 -0
- package/dist/validation/validators/dangling-alias.js.map +1 -0
- package/dist/validation/validators/deploy-target-type-supported.d.ts +3 -0
- package/dist/validation/validators/deploy-target-type-supported.d.ts.map +1 -0
- package/dist/validation/validators/deploy-target-type-supported.js +32 -0
- package/dist/validation/validators/deploy-target-type-supported.js.map +1 -0
- package/dist/validation/validators/dynamic-route-conflict.d.ts +18 -0
- package/dist/validation/validators/dynamic-route-conflict.d.ts.map +1 -0
- package/dist/validation/validators/dynamic-route-conflict.js +80 -0
- package/dist/validation/validators/dynamic-route-conflict.js.map +1 -0
- package/dist/validation/validators/html-validity.d.ts +3 -0
- package/dist/validation/validators/html-validity.d.ts.map +1 -0
- package/dist/validation/validators/html-validity.js +89 -0
- package/dist/validation/validators/html-validity.js.map +1 -0
- package/dist/validation/validators/orphaned-locale-file.d.ts +21 -0
- package/dist/validation/validators/orphaned-locale-file.d.ts.map +1 -0
- package/dist/validation/validators/orphaned-locale-file.js +84 -0
- package/dist/validation/validators/orphaned-locale-file.js.map +1 -0
- package/dist/validation/validators/referenced-archived-without-alias.d.ts +3 -0
- package/dist/validation/validators/referenced-archived-without-alias.d.ts.map +1 -0
- package/dist/validation/validators/referenced-archived-without-alias.js +65 -0
- package/dist/validation/validators/referenced-archived-without-alias.js.map +1 -0
- package/dist/validation/validators/referenced-asset-exists.d.ts +13 -0
- package/dist/validation/validators/referenced-asset-exists.d.ts.map +1 -0
- package/dist/validation/validators/referenced-asset-exists.js +80 -0
- package/dist/validation/validators/referenced-asset-exists.js.map +1 -0
- package/dist/validation/validators/referenced-fragment-exists.d.ts +9 -0
- package/dist/validation/validators/referenced-fragment-exists.d.ts.map +1 -0
- package/dist/validation/validators/referenced-fragment-exists.js +52 -0
- package/dist/validation/validators/referenced-fragment-exists.js.map +1 -0
- package/dist/validation/validators/referenced-template-exists.d.ts +10 -0
- package/dist/validation/validators/referenced-template-exists.d.ts.map +1 -0
- package/dist/validation/validators/referenced-template-exists.js +74 -0
- package/dist/validation/validators/referenced-template-exists.js.map +1 -0
- package/dist/validation/validators/schema-conformance.d.ts +17 -0
- package/dist/validation/validators/schema-conformance.d.ts.map +1 -0
- package/dist/validation/validators/schema-conformance.js +94 -0
- package/dist/validation/validators/schema-conformance.js.map +1 -0
- package/dist/validation/validators/target-deploy-coverage.d.ts +3 -0
- package/dist/validation/validators/target-deploy-coverage.d.ts.map +1 -0
- package/dist/validation/validators/target-deploy-coverage.js +37 -0
- package/dist/validation/validators/target-deploy-coverage.js.map +1 -0
- package/dist/validation/validators/unused-fragment.d.ts +16 -0
- package/dist/validation/validators/unused-fragment.d.ts.map +1 -0
- package/dist/validation/validators/unused-fragment.js +86 -0
- package/dist/validation/validators/unused-fragment.js.map +1 -0
- package/package.json +69 -27
- package/admin-dist/assets/index-B6pVot0Y.css +0 -1
- package/admin-dist/assets/index-DniLwxJA.js +0 -609
- package/admin-dist/assets/rolldown-runtime-COnpUsM8.js +0 -1
- package/admin-dist/assets/vendor-rjsf-HKBAjOmQ.js +0 -32
- package/admin-dist/assets/vendor-tiptap-IyO99U4R.js +0 -142
- package/admin-dist/assets/vendor-vue-D3wBSmDf.js +0 -1
- package/dist/providers/r2.d.ts +0 -8
- package/dist/providers/r2.d.ts.map +0 -1
- package/dist/providers/r2.js +0 -86
- package/dist/providers/r2.js.map +0 -1
- package/dist/publish-locale.d.ts +0 -44
- package/dist/publish-locale.d.ts.map +0 -1
- package/dist/publish-locale.js +0 -103
- package/dist/publish-locale.js.map +0 -1
- package/dist/source-sidecars.d.ts +0 -32
- package/dist/source-sidecars.d.ts.map +0 -1
- package/dist/source-sidecars.js +0 -98
- 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 @@
|
|
|
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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"}
|