@prenta/core 5.10.0 → 7.0.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/CHANGELOG.md +43 -0
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +5 -15
- package/dist/actions.js.map +1 -1
- package/dist/ai/brand-voice-analyze.d.ts +1 -4
- package/dist/ai/brand-voice-analyze.d.ts.map +1 -1
- package/dist/ai/brand-voice-analyze.js +1 -2
- package/dist/ai/brand-voice-analyze.js.map +1 -1
- package/dist/ai/brand-voice-sources.d.ts +0 -2
- package/dist/ai/brand-voice-sources.d.ts.map +1 -1
- package/dist/ai/brand-voice-sources.js +2 -2
- package/dist/ai/brand-voice-sources.js.map +1 -1
- package/dist/ai/brand-voice-structured.d.ts +6 -6
- package/dist/ai/brand-voice-structured.d.ts.map +1 -1
- package/dist/ai/catalog.d.ts +8 -0
- package/dist/ai/catalog.d.ts.map +1 -1
- package/dist/ai/catalog.js +22 -0
- package/dist/ai/catalog.js.map +1 -1
- package/dist/ai/config-store.d.ts +18 -4
- package/dist/ai/config-store.d.ts.map +1 -1
- package/dist/ai/config-store.js +115 -20
- package/dist/ai/config-store.js.map +1 -1
- package/dist/ai/content-writing-generate.d.ts +10 -8
- package/dist/ai/content-writing-generate.d.ts.map +1 -1
- package/dist/ai/content-writing-generate.js +24 -59
- package/dist/ai/content-writing-generate.js.map +1 -1
- package/dist/ai/embeddings.d.ts +28 -0
- package/dist/ai/embeddings.d.ts.map +1 -0
- package/dist/ai/embeddings.js +36 -0
- package/dist/ai/embeddings.js.map +1 -0
- package/dist/ai/feature-defaults.d.ts +3 -3
- package/dist/ai/feature-defaults.d.ts.map +1 -1
- package/dist/ai/feature-defaults.js +24 -14
- package/dist/ai/feature-defaults.js.map +1 -1
- package/dist/ai/index.d.ts +15 -16
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +14 -15
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/models.d.ts +7 -3
- package/dist/ai/models.d.ts.map +1 -1
- package/dist/ai/models.js +10 -5
- package/dist/ai/models.js.map +1 -1
- package/dist/ai/plugin-errors.d.ts +9 -3
- package/dist/ai/plugin-errors.d.ts.map +1 -1
- package/dist/ai/plugin-errors.js +9 -3
- package/dist/ai/plugin-errors.js.map +1 -1
- package/dist/ai/plugin-import.d.ts +20 -0
- package/dist/ai/plugin-import.d.ts.map +1 -0
- package/dist/ai/plugin-import.js +24 -0
- package/dist/ai/plugin-import.js.map +1 -0
- package/dist/ai/prompt-safety.d.ts +23 -0
- package/dist/ai/prompt-safety.d.ts.map +1 -0
- package/dist/ai/prompt-safety.js +34 -0
- package/dist/ai/prompt-safety.js.map +1 -0
- package/dist/ai/providers/anthropic.d.ts.map +1 -1
- package/dist/ai/providers/anthropic.js +16 -1
- package/dist/ai/providers/anthropic.js.map +1 -1
- package/dist/ai/providers/http.d.ts +7 -2
- package/dist/ai/providers/http.d.ts.map +1 -1
- package/dist/ai/providers/http.js +13 -2
- package/dist/ai/providers/http.js.map +1 -1
- package/dist/ai/providers/index.d.ts +0 -7
- package/dist/ai/providers/index.d.ts.map +1 -1
- package/dist/ai/providers/index.js +1 -1
- package/dist/ai/providers/index.js.map +1 -1
- package/dist/ai/resolve.d.ts +7 -1
- package/dist/ai/resolve.d.ts.map +1 -1
- package/dist/ai/resolve.js +36 -3
- package/dist/ai/resolve.js.map +1 -1
- package/dist/ai/runtime-response.d.ts +27 -0
- package/dist/ai/runtime-response.d.ts.map +1 -0
- package/dist/ai/runtime-response.js +75 -0
- package/dist/ai/runtime-response.js.map +1 -0
- package/dist/ai/runtime.d.ts +9 -7
- package/dist/ai/runtime.d.ts.map +1 -1
- package/dist/ai/runtime.js +14 -19
- package/dist/ai/runtime.js.map +1 -1
- package/dist/ai/tasks/alt-text.d.ts +82 -0
- package/dist/ai/tasks/alt-text.d.ts.map +1 -0
- package/dist/ai/tasks/alt-text.js +171 -0
- package/dist/ai/tasks/alt-text.js.map +1 -0
- package/dist/ai/tasks/document-generation.d.ts +102 -0
- package/dist/ai/tasks/document-generation.d.ts.map +1 -0
- package/dist/ai/tasks/document-generation.js +321 -0
- package/dist/ai/tasks/document-generation.js.map +1 -0
- package/dist/ai/tasks/link-embeddings.d.ts +55 -0
- package/dist/ai/tasks/link-embeddings.d.ts.map +1 -0
- package/dist/ai/tasks/link-embeddings.js +160 -0
- package/dist/ai/tasks/link-embeddings.js.map +1 -0
- package/dist/ai/types.d.ts +15 -19
- package/dist/ai/types.d.ts.map +1 -1
- package/dist/ai/types.js +6 -7
- package/dist/ai/types.js.map +1 -1
- package/dist/ai/usage.d.ts +6 -4
- package/dist/ai/usage.d.ts.map +1 -1
- package/dist/ai/usage.js +6 -4
- package/dist/ai/usage.js.map +1 -1
- package/dist/ai/vector.d.ts +8 -0
- package/dist/ai/vector.d.ts.map +1 -0
- package/dist/ai/vector.js +24 -0
- package/dist/ai/vector.js.map +1 -0
- package/dist/api/responses.d.ts +1 -1
- package/dist/api/responses.d.ts.map +1 -1
- package/dist/api/responses.js +1 -1
- package/dist/api/responses.js.map +1 -1
- package/dist/api/route-helpers.d.ts +3 -20
- package/dist/api/route-helpers.d.ts.map +1 -1
- package/dist/api/route-helpers.js +12 -26
- package/dist/api/route-helpers.js.map +1 -1
- package/dist/api/routes/ai-authoring.d.ts.map +1 -1
- package/dist/api/routes/ai-authoring.js +132 -144
- package/dist/api/routes/ai-authoring.js.map +1 -1
- package/dist/api/routes/ai-seo.d.ts.map +1 -1
- package/dist/api/routes/ai-seo.js +44 -120
- package/dist/api/routes/ai-seo.js.map +1 -1
- package/dist/api/routes/ai-settings.d.ts.map +1 -1
- package/dist/api/routes/ai-settings.js +76 -28
- package/dist/api/routes/ai-settings.js.map +1 -1
- package/dist/api/routes/security-center.d.ts.map +1 -1
- package/dist/api/routes/security-center.js +5 -39
- package/dist/api/routes/security-center.js.map +1 -1
- package/dist/api/routes/seo-public.d.ts +0 -5
- package/dist/api/routes/seo-public.d.ts.map +1 -1
- package/dist/api/routes/seo-public.js +1 -1
- package/dist/api/routes/seo-public.js.map +1 -1
- package/dist/api/routes/seo.d.ts.map +1 -1
- package/dist/api/routes/seo.js +21 -48
- package/dist/api/routes/seo.js.map +1 -1
- package/dist/api/security-headers.d.ts +8 -0
- package/dist/api/security-headers.d.ts.map +1 -0
- package/dist/api/security-headers.js +13 -0
- package/dist/api/security-headers.js.map +1 -0
- package/dist/appearance/favicon-icon.d.ts +1 -1
- package/dist/appearance/favicon-icon.d.ts.map +1 -1
- package/dist/appearance/favicon-icon.js +1 -1
- package/dist/appearance/favicon-icon.js.map +1 -1
- package/dist/auth/index.d.ts +0 -6
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +0 -3
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/invites.d.ts +0 -5
- package/dist/auth/invites.d.ts.map +1 -1
- package/dist/auth/invites.js +3 -3
- package/dist/auth/invites.js.map +1 -1
- package/dist/auth/team.d.ts +4 -3
- package/dist/auth/team.d.ts.map +1 -1
- package/dist/auth/user-admin.d.ts +2 -1
- package/dist/auth/user-admin.d.ts.map +1 -1
- package/dist/billing/stripe-meter.d.ts +2 -1
- package/dist/billing/stripe-meter.d.ts.map +1 -1
- package/dist/cache/http.d.ts +0 -11
- package/dist/cache/http.d.ts.map +1 -1
- package/dist/cache/http.js +1 -1
- package/dist/cache/http.js.map +1 -1
- package/dist/cache/index.d.ts +0 -5
- package/dist/cache/index.d.ts.map +1 -1
- package/dist/config/types.d.ts +19 -19
- package/dist/config/types.d.ts.map +1 -1
- package/dist/content/index.d.ts +2 -5
- package/dist/content/index.d.ts.map +1 -1
- package/dist/content/index.js +1 -3
- package/dist/content/index.js.map +1 -1
- package/dist/content/structured-data.d.ts +0 -14
- package/dist/content/structured-data.d.ts.map +1 -1
- package/dist/content/structured-data.js +3 -14
- package/dist/content/structured-data.js.map +1 -1
- package/dist/cron/index.d.ts +2 -3
- package/dist/cron/index.d.ts.map +1 -1
- package/dist/cron/index.js +0 -2
- package/dist/cron/index.js.map +1 -1
- package/dist/db/client-types.d.ts +2 -1
- package/dist/db/client-types.d.ts.map +1 -1
- package/dist/db/model-types.d.ts +0 -1
- package/dist/db/model-types.d.ts.map +1 -1
- package/dist/db.d.ts +0 -2
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +0 -1
- package/dist/db.js.map +1 -1
- package/dist/diagnostics/env.d.ts +1 -1
- package/dist/diagnostics/env.d.ts.map +1 -1
- package/dist/diagnostics/logger.d.ts +0 -24
- package/dist/diagnostics/logger.d.ts.map +1 -1
- package/dist/forms/entries.d.ts +0 -7
- package/dist/forms/entries.d.ts.map +1 -1
- package/dist/forms/entries.js +1 -19
- package/dist/forms/entries.js.map +1 -1
- package/dist/forms/files.d.ts +1 -1
- package/dist/forms/files.d.ts.map +1 -1
- package/dist/forms/index.d.ts +4 -6
- package/dist/forms/index.d.ts.map +1 -1
- package/dist/forms/index.js +3 -5
- package/dist/forms/index.js.map +1 -1
- package/dist/forms/prefetch.d.ts +0 -6
- package/dist/forms/prefetch.d.ts.map +1 -1
- package/dist/forms/service.d.ts +0 -4
- package/dist/forms/service.d.ts.map +1 -1
- package/dist/forms/service.js +2 -8
- package/dist/forms/service.js.map +1 -1
- package/dist/forms/webmcp.d.ts +0 -2
- package/dist/forms/webmcp.d.ts.map +1 -1
- package/dist/forms/webmcp.js +1 -1
- package/dist/forms/webmcp.js.map +1 -1
- package/dist/generated/internal/class.js +4 -4
- package/dist/generated/internal/prismaNamespace.d.ts +0 -1
- package/dist/generated/internal/prismaNamespace.js +0 -1
- package/dist/generated/internal/prismaNamespaceBrowser.d.ts +0 -1
- package/dist/generated/internal/prismaNamespaceBrowser.js +0 -1
- package/dist/generated/models/Document.d.ts +1 -58
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/media/denormalize.d.ts +0 -7
- package/dist/media/denormalize.d.ts.map +1 -1
- package/dist/media/index.d.ts +0 -8
- package/dist/media/index.d.ts.map +1 -1
- package/dist/media/index.js +0 -5
- package/dist/media/index.js.map +1 -1
- package/dist/media/optimize.d.ts +0 -4
- package/dist/media/optimize.d.ts.map +1 -1
- package/dist/media/optimize.js +4 -4
- package/dist/media/optimize.js.map +1 -1
- package/dist/media/reoptimize.d.ts +2 -3
- package/dist/media/reoptimize.d.ts.map +1 -1
- package/dist/media/reoptimize.js +2 -2
- package/dist/media/reoptimize.js.map +1 -1
- package/dist/media/seo.d.ts +3 -8
- package/dist/media/seo.d.ts.map +1 -1
- package/dist/media/seo.js +1 -1
- package/dist/media/seo.js.map +1 -1
- package/dist/plan/features.d.ts +0 -1
- package/dist/plan/features.d.ts.map +1 -1
- package/dist/plan/features.js +0 -16
- package/dist/plan/features.js.map +1 -1
- package/dist/preview/event-bus.d.ts +2 -1
- package/dist/preview/event-bus.d.ts.map +1 -1
- package/dist/preview/index.d.ts +2 -1
- package/dist/preview/index.d.ts.map +1 -1
- package/dist/preview/sse-stream.d.ts +0 -13
- package/dist/preview/sse-stream.d.ts.map +1 -1
- package/dist/preview/sse-stream.js +2 -2
- package/dist/preview/sse-stream.js.map +1 -1
- package/dist/realtime/notifications.d.ts +4 -3
- package/dist/realtime/notifications.d.ts.map +1 -1
- package/dist/redirects/index.d.ts +4 -16
- package/dist/redirects/index.d.ts.map +1 -1
- package/dist/redirects/index.js +2 -9
- package/dist/redirects/index.js.map +1 -1
- package/dist/redirects/match.d.ts +0 -2
- package/dist/redirects/match.d.ts.map +1 -1
- package/dist/redirects/match.js +1 -1
- package/dist/redirects/match.js.map +1 -1
- package/dist/redirects/recovery.d.ts +0 -2
- package/dist/redirects/recovery.d.ts.map +1 -1
- package/dist/redirects/recovery.js +1 -1
- package/dist/redirects/recovery.js.map +1 -1
- package/dist/redirects/rerank.d.ts +4 -3
- package/dist/redirects/rerank.d.ts.map +1 -1
- package/dist/redirects/rerank.js +3 -18
- package/dist/redirects/rerank.js.map +1 -1
- package/dist/sections/validate.d.ts +0 -2
- package/dist/sections/validate.d.ts.map +1 -1
- package/dist/sections/validate.js +1 -1
- package/dist/sections/validate.js.map +1 -1
- package/dist/security/access.d.ts +0 -9
- package/dist/security/access.d.ts.map +1 -1
- package/dist/security/access.js +1 -3
- package/dist/security/access.js.map +1 -1
- package/dist/security/audit.d.ts +0 -20
- package/dist/security/audit.d.ts.map +1 -1
- package/dist/security/audit.js.map +1 -1
- package/dist/security/index.d.ts +2 -20
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/index.js +2 -7
- package/dist/security/index.js.map +1 -1
- package/dist/security/internal-keys.d.ts +0 -12
- package/dist/security/internal-keys.d.ts.map +1 -1
- package/dist/security/internal-keys.js +10 -12
- package/dist/security/internal-keys.js.map +1 -1
- package/dist/security/rate-limit-policy.d.ts +0 -2
- package/dist/security/rate-limit-policy.d.ts.map +1 -1
- package/dist/security/rate-limit-policy.js +1 -1
- package/dist/security/rate-limit-policy.js.map +1 -1
- package/dist/security/rate-limit.d.ts +2 -5
- package/dist/security/rate-limit.d.ts.map +1 -1
- package/dist/security/rate-limit.js +2 -2
- package/dist/security/rate-limit.js.map +1 -1
- package/dist/security/sanitize.d.ts +0 -3
- package/dist/security/sanitize.d.ts.map +1 -1
- package/dist/security/sanitize.js +0 -1
- package/dist/security/sanitize.js.map +1 -1
- package/dist/security/upload.d.ts +0 -3
- package/dist/security/upload.d.ts.map +1 -1
- package/dist/security/upload.js +0 -1
- package/dist/security/upload.js.map +1 -1
- package/dist/seo/ai-crawler-log.d.ts +0 -2
- package/dist/seo/ai-crawler-log.d.ts.map +1 -1
- package/dist/seo/ai-crawler-log.js +1 -1
- package/dist/seo/ai-crawler-log.js.map +1 -1
- package/dist/seo/audit-engine.d.ts +5 -5
- package/dist/seo/audit-engine.d.ts.map +1 -1
- package/dist/seo/audit-engine.js +1 -2
- package/dist/seo/audit-engine.js.map +1 -1
- package/dist/seo/audit-runner.d.ts +0 -7
- package/dist/seo/audit-runner.d.ts.map +1 -1
- package/dist/seo/audit-runner.js +1 -1
- package/dist/seo/audit-runner.js.map +1 -1
- package/dist/seo/audit-signals.d.ts +0 -2
- package/dist/seo/audit-signals.d.ts.map +1 -1
- package/dist/seo/audit-signals.js +1 -1
- package/dist/seo/audit-signals.js.map +1 -1
- package/dist/seo/autopilot-gate.d.ts +0 -1
- package/dist/seo/autopilot-gate.d.ts.map +1 -1
- package/dist/seo/autopilot-gate.js +1 -1
- package/dist/seo/autopilot-gate.js.map +1 -1
- package/dist/seo/autopilot-ledger.d.ts +2 -1
- package/dist/seo/autopilot-ledger.d.ts.map +1 -1
- package/dist/seo/autopilot-outcome.d.ts +0 -2
- package/dist/seo/autopilot-outcome.d.ts.map +1 -1
- package/dist/seo/autopilot-outcome.js +1 -1
- package/dist/seo/autopilot-outcome.js.map +1 -1
- package/dist/seo/autopilot-policy.d.ts +3 -38
- package/dist/seo/autopilot-policy.d.ts.map +1 -1
- package/dist/seo/autopilot-policy.js +3 -3
- package/dist/seo/autopilot-policy.js.map +1 -1
- package/dist/seo/autopilot.d.ts +4 -12
- package/dist/seo/autopilot.d.ts.map +1 -1
- package/dist/seo/autopilot.js +3 -3
- package/dist/seo/autopilot.js.map +1 -1
- package/dist/seo/config-store.d.ts +0 -2
- package/dist/seo/config-store.d.ts.map +1 -1
- package/dist/seo/config-store.js +1 -1
- package/dist/seo/config-store.js.map +1 -1
- package/dist/seo/digest.d.ts +8 -7
- package/dist/seo/digest.d.ts.map +1 -1
- package/dist/seo/faq-signals.d.ts +0 -4
- package/dist/seo/faq-signals.d.ts.map +1 -1
- package/dist/seo/faq-signals.js +4 -4
- package/dist/seo/faq-signals.js.map +1 -1
- package/dist/seo/fix-brief-export.d.ts +0 -2
- package/dist/seo/fix-brief-export.d.ts.map +1 -1
- package/dist/seo/fix-brief-export.js +1 -1
- package/dist/seo/fix-brief-export.js.map +1 -1
- package/dist/seo/geo-record.d.ts +0 -4
- package/dist/seo/geo-record.d.ts.map +1 -1
- package/dist/seo/geo-record.js +2 -2
- package/dist/seo/geo-record.js.map +1 -1
- package/dist/seo/geo-report.d.ts +4 -3
- package/dist/seo/geo-report.d.ts.map +1 -1
- package/dist/seo/geo-report.js +1 -1
- package/dist/seo/geo-report.js.map +1 -1
- package/dist/seo/index-status.d.ts +6 -5
- package/dist/seo/index-status.d.ts.map +1 -1
- package/dist/seo/index-status.js.map +1 -1
- package/dist/seo/index.d.ts +15 -90
- package/dist/seo/index.d.ts.map +1 -1
- package/dist/seo/index.js +10 -49
- package/dist/seo/index.js.map +1 -1
- package/dist/seo/issue-batch-briefs.d.ts +2 -3
- package/dist/seo/issue-batch-briefs.d.ts.map +1 -1
- package/dist/seo/issue-batch-briefs.js +2 -2
- package/dist/seo/issue-batch-briefs.js.map +1 -1
- package/dist/seo/issue-content-brief.d.ts +2 -1
- package/dist/seo/issue-content-brief.d.ts.map +1 -1
- package/dist/seo/issue-content-research.d.ts +2 -2
- package/dist/seo/issue-content-research.d.ts.map +1 -1
- package/dist/seo/issue-content-research.js +1 -1
- package/dist/seo/issue-content-research.js.map +1 -1
- package/dist/seo/issue-fix-ai.d.ts +5 -4
- package/dist/seo/issue-fix-ai.d.ts.map +1 -1
- package/dist/seo/issue-fix-ai.js +4 -19
- package/dist/seo/issue-fix-ai.js.map +1 -1
- package/dist/seo/issue-fix-apply.d.ts +2 -11
- package/dist/seo/issue-fix-apply.d.ts.map +1 -1
- package/dist/seo/issue-fix-apply.js +4 -4
- package/dist/seo/issue-fix-apply.js.map +1 -1
- package/dist/seo/issue-fix-faq.d.ts +4 -7
- package/dist/seo/issue-fix-faq.d.ts.map +1 -1
- package/dist/seo/issue-fix-faq.js +4 -4
- package/dist/seo/issue-fix-faq.js.map +1 -1
- package/dist/seo/issue-fix-link-insert.d.ts +4 -14
- package/dist/seo/issue-fix-link-insert.d.ts.map +1 -1
- package/dist/seo/issue-fix-link-insert.js +5 -4
- package/dist/seo/issue-fix-link-insert.js.map +1 -1
- package/dist/seo/issue-fix-redirect.d.ts +0 -1
- package/dist/seo/issue-fix-redirect.d.ts.map +1 -1
- package/dist/seo/issue-fix.d.ts.map +1 -1
- package/dist/seo/issue-fix.js +1 -0
- package/dist/seo/issue-fix.js.map +1 -1
- package/dist/seo/link-graph.d.ts +2 -3
- package/dist/seo/link-graph.d.ts.map +1 -1
- package/dist/seo/link-graph.js +0 -0
- package/dist/seo/link-graph.js.map +1 -1
- package/dist/seo/link-suggest.d.ts +8 -2
- package/dist/seo/link-suggest.d.ts.map +1 -1
- package/dist/seo/link-suggest.js +38 -53
- package/dist/seo/link-suggest.js.map +1 -1
- package/dist/seo/page-meta.d.ts +1 -10
- package/dist/seo/page-meta.d.ts.map +1 -1
- package/dist/seo/page-meta.js +1 -1
- package/dist/seo/page-meta.js.map +1 -1
- package/dist/seo/proposals-bulk-apply.d.ts +3 -2
- package/dist/seo/proposals-bulk-apply.d.ts.map +1 -1
- package/dist/seo/proposals.d.ts +2 -2
- package/dist/seo/proposals.d.ts.map +1 -1
- package/dist/seo/rendered-fetch.d.ts +2 -1
- package/dist/seo/rendered-fetch.d.ts.map +1 -1
- package/dist/seo/score.d.ts +3 -7
- package/dist/seo/score.d.ts.map +1 -1
- package/dist/seo/score.js.map +1 -1
- package/dist/seo/search-console/client.d.ts +0 -4
- package/dist/seo/search-console/client.d.ts.map +1 -1
- package/dist/seo/search-console/client.js +2 -2
- package/dist/seo/search-console/client.js.map +1 -1
- package/dist/seo/search-console/sync.d.ts +0 -4
- package/dist/seo/search-console/sync.d.ts.map +1 -1
- package/dist/seo/search-console/sync.js +2 -2
- package/dist/seo/search-console/sync.js.map +1 -1
- package/dist/seo/search-console/types.d.ts +2 -1
- package/dist/seo/search-console/types.d.ts.map +1 -1
- package/dist/seo/sitemap-notify.d.ts +0 -8
- package/dist/seo/sitemap-notify.d.ts.map +1 -1
- package/dist/seo/sitemap-notify.js +1 -1
- package/dist/seo/sitemap-notify.js.map +1 -1
- package/dist/seo/title-templates.d.ts +2 -5
- package/dist/seo/title-templates.d.ts.map +1 -1
- package/dist/seo/title-templates.js +2 -2
- package/dist/seo/title-templates.js.map +1 -1
- package/dist/server-site.d.ts +0 -1
- package/dist/server-site.d.ts.map +1 -1
- package/dist/server-site.js +0 -1
- package/dist/server-site.js.map +1 -1
- package/dist/storage/index.d.ts +0 -2
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +0 -4
- package/dist/storage/index.js.map +1 -1
- package/dist/upgrade/version-check.d.ts +0 -2
- package/dist/upgrade/version-check.d.ts.map +1 -1
- package/dist/upgrade/version-check.js +1 -1
- package/dist/upgrade/version-check.js.map +1 -1
- package/dist/webhooks/index.d.ts +0 -8
- package/dist/webhooks/index.d.ts.map +1 -1
- package/dist/webhooks/index.js +1 -16
- package/dist/webhooks/index.js.map +1 -1
- package/package.json +1 -1
- package/prisma/migrations/0019_drop_content_graph/migration.sql +4 -0
- package/prisma/schema.prisma +0 -1
- package/dist/api/auth-context.d.ts +0 -3
- package/dist/api/auth-context.d.ts.map +0 -1
- package/dist/api/auth-context.js +0 -3
- package/dist/api/auth-context.js.map +0 -1
- package/dist/api/limiters.d.ts +0 -3
- package/dist/api/limiters.d.ts.map +0 -1
- package/dist/api/limiters.js +0 -3
- package/dist/api/limiters.js.map +0 -1
- package/dist/content/content-graph.d.ts +0 -25
- package/dist/content/content-graph.d.ts.map +0 -1
- package/dist/content/content-graph.js +0 -40
- package/dist/content/content-graph.js.map +0 -1
- package/dist/db/index.d.ts +0 -9
- package/dist/db/index.d.ts.map +0 -1
- package/dist/db/index.js +0 -5
- package/dist/db/index.js.map +0 -1
- package/dist/next/preview.d.ts +0 -10
- package/dist/next/preview.d.ts.map +0 -1
- package/dist/next/preview.js +0 -17
- package/dist/next/preview.js.map +0 -1
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Embedding-ranked internal-link candidates. The query and the corpus are
|
|
3
|
+
* embedded through governed `embedForFeature` calls in batches of
|
|
4
|
+
* {@link EMBED_BATCH_SIZE} inputs (plugin-ai's `semanticSearch` made N+1
|
|
5
|
+
* ungoverned calls; a single request for a 5000-page site blew the provider's
|
|
6
|
+
* per-request input limit). Returns `null` when the runtime refuses so callers
|
|
7
|
+
* fall back to {@link phraseMatchLinks}.
|
|
8
|
+
*/
|
|
9
|
+
export declare const LINK_SUGGEST_FEATURE = "ai.features.seoInternalLinks";
|
|
10
|
+
export declare const LINK_SIMILARITY_THRESHOLD = 0.35;
|
|
11
|
+
/** Per-item content cap before embedding — enough context, bounded token cost. */
|
|
12
|
+
export declare const CONTENT_MAX_CHARS = 2000;
|
|
13
|
+
/** Max inputs per embeddings request (the first request also carries the query). */
|
|
14
|
+
export declare const EMBED_BATCH_SIZE = 256;
|
|
15
|
+
/** Largest corpus we embed; bigger ones are pre-trimmed by {@link trimCorpusForEmbedding}. */
|
|
16
|
+
export declare const MAX_CORPUS_ITEMS = 1000;
|
|
17
|
+
export interface LinkCorpusItem {
|
|
18
|
+
id: string;
|
|
19
|
+
title: string;
|
|
20
|
+
content: string;
|
|
21
|
+
/** Recency tie-breaker for the pre-trim; optional for callers without it. */
|
|
22
|
+
updatedAt?: string | Date;
|
|
23
|
+
}
|
|
24
|
+
export interface RankedLink {
|
|
25
|
+
id: string;
|
|
26
|
+
title: string;
|
|
27
|
+
score: number;
|
|
28
|
+
excerpt: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Deterministic pre-trim for corpora above the embedding cap: items whose
|
|
32
|
+
* title/content share the most query tokens come first (a `phraseMatchLinks`-
|
|
33
|
+
* style overlap), then the most recently updated. Stable for ties so the
|
|
34
|
+
* result is reproducible. Returns the input untouched when it already fits.
|
|
35
|
+
*/
|
|
36
|
+
export declare function trimCorpusForEmbedding(query: string, corpus: LinkCorpusItem[], max?: number): LinkCorpusItem[];
|
|
37
|
+
/**
|
|
38
|
+
* Rank `corpus` against `query` by embedding cosine similarity. Everything
|
|
39
|
+
* (toggle, budget, daily cap, key resolution, metering) is enforced inside
|
|
40
|
+
* `embedForFeature`; any refusal or provider failure yields `null`. Corpora
|
|
41
|
+
* above {@link MAX_CORPUS_ITEMS} are pre-trimmed deterministically, every item
|
|
42
|
+
* is clamped to {@link CONTENT_MAX_CHARS}, and requests are chunked.
|
|
43
|
+
*/
|
|
44
|
+
export declare function rankByEmbedding(db: unknown, query: string, corpus: LinkCorpusItem[], opts?: {
|
|
45
|
+
limit?: number;
|
|
46
|
+
userId?: string;
|
|
47
|
+
fetchImpl?: typeof fetch;
|
|
48
|
+
}): Promise<RankedLink[] | null>;
|
|
49
|
+
/**
|
|
50
|
+
* Deterministic fallback: a source qualifies when its content contains the
|
|
51
|
+
* target title or one of its keywords. Score 0.6 for a title hit, 0.4 for a
|
|
52
|
+
* keyword-only hit (both clear the 40% wrappable floor in link-suggest).
|
|
53
|
+
*/
|
|
54
|
+
export declare function phraseMatchLinks(targetTitle: string, keywords: string[], corpus: LinkCorpusItem[], limit: number): RankedLink[];
|
|
55
|
+
//# sourceMappingURL=link-embeddings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link-embeddings.d.ts","sourceRoot":"","sources":["../../../src/ai/tasks/link-embeddings.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,eAAO,MAAM,oBAAoB,iCAAiC,CAAA;AAClE,eAAO,MAAM,yBAAyB,OAAO,CAAA;AAC7C,kFAAkF;AAClF,eAAO,MAAM,iBAAiB,OAAO,CAAA;AACrC,oFAAoF;AACpF,eAAO,MAAM,gBAAgB,MAAM,CAAA;AACnC,8FAA8F;AAC9F,eAAO,MAAM,gBAAgB,OAAO,CAAA;AAMpC,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAChB;AAwBD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,cAAc,EAAE,EACxB,GAAG,SAAmB,GACrB,cAAc,EAAE,CAkBlB;AA+BD;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,EAAE,EAAE,OAAO,EACX,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,cAAc,EAAE,EACxB,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CAAO,GACvE,OAAO,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,CA2B9B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAAE,EAClB,MAAM,EAAE,cAAc,EAAE,EACxB,KAAK,EAAE,MAAM,GACZ,UAAU,EAAE,CAmBd"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Embedding-ranked internal-link candidates. The query and the corpus are
|
|
3
|
+
* embedded through governed `embedForFeature` calls in batches of
|
|
4
|
+
* {@link EMBED_BATCH_SIZE} inputs (plugin-ai's `semanticSearch` made N+1
|
|
5
|
+
* ungoverned calls; a single request for a 5000-page site blew the provider's
|
|
6
|
+
* per-request input limit). Returns `null` when the runtime refuses so callers
|
|
7
|
+
* fall back to {@link phraseMatchLinks}.
|
|
8
|
+
*/
|
|
9
|
+
import { embedForFeature } from '../runtime.js';
|
|
10
|
+
import { cosineSimilarity } from '../vector.js';
|
|
11
|
+
export const LINK_SUGGEST_FEATURE = 'ai.features.seoInternalLinks';
|
|
12
|
+
export const LINK_SIMILARITY_THRESHOLD = 0.35;
|
|
13
|
+
/** Per-item content cap before embedding — enough context, bounded token cost. */
|
|
14
|
+
export const CONTENT_MAX_CHARS = 2000;
|
|
15
|
+
/** Max inputs per embeddings request (the first request also carries the query). */
|
|
16
|
+
export const EMBED_BATCH_SIZE = 256;
|
|
17
|
+
/** Largest corpus we embed; bigger ones are pre-trimmed by {@link trimCorpusForEmbedding}. */
|
|
18
|
+
export const MAX_CORPUS_ITEMS = 1000;
|
|
19
|
+
const EXCERPT_CHARS = 200;
|
|
20
|
+
const DEFAULT_LIMIT = 10;
|
|
21
|
+
/** Query tokens shorter than this carry no signal for the pre-trim. */
|
|
22
|
+
const MIN_TOKEN_CHARS = 3;
|
|
23
|
+
function excerptAround(content, terms) {
|
|
24
|
+
const lower = content.toLowerCase();
|
|
25
|
+
let start = 0;
|
|
26
|
+
for (const term of terms) {
|
|
27
|
+
const idx = lower.indexOf(term);
|
|
28
|
+
if (idx >= 0) {
|
|
29
|
+
start = Math.max(0, idx - 50);
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return content.slice(start, start + EXCERPT_CHARS);
|
|
34
|
+
}
|
|
35
|
+
function updatedAtMs(item) {
|
|
36
|
+
if (item.updatedAt instanceof Date)
|
|
37
|
+
return item.updatedAt.getTime();
|
|
38
|
+
if (typeof item.updatedAt === 'string') {
|
|
39
|
+
const t = Date.parse(item.updatedAt);
|
|
40
|
+
return Number.isNaN(t) ? 0 : t;
|
|
41
|
+
}
|
|
42
|
+
return 0;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Deterministic pre-trim for corpora above the embedding cap: items whose
|
|
46
|
+
* title/content share the most query tokens come first (a `phraseMatchLinks`-
|
|
47
|
+
* style overlap), then the most recently updated. Stable for ties so the
|
|
48
|
+
* result is reproducible. Returns the input untouched when it already fits.
|
|
49
|
+
*/
|
|
50
|
+
export function trimCorpusForEmbedding(query, corpus, max = MAX_CORPUS_ITEMS) {
|
|
51
|
+
if (corpus.length <= max)
|
|
52
|
+
return corpus;
|
|
53
|
+
const tokens = [
|
|
54
|
+
...new Set(query
|
|
55
|
+
.toLowerCase()
|
|
56
|
+
.split(/[^\p{L}\p{N}]+/u)
|
|
57
|
+
.filter((t) => t.length >= MIN_TOKEN_CHARS)),
|
|
58
|
+
];
|
|
59
|
+
const scored = corpus.map((item, index) => {
|
|
60
|
+
const hay = `${item.title} ${item.content}`.toLowerCase();
|
|
61
|
+
let overlap = 0;
|
|
62
|
+
for (const t of tokens)
|
|
63
|
+
if (hay.includes(t))
|
|
64
|
+
overlap++;
|
|
65
|
+
return { item, index, overlap, recency: updatedAtMs(item) };
|
|
66
|
+
});
|
|
67
|
+
scored.sort((a, b) => b.overlap - a.overlap || b.recency - a.recency || a.index - b.index);
|
|
68
|
+
return scored.slice(0, max).map((s) => s.item);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Embed `texts` in sequential batches of {@link EMBED_BATCH_SIZE}. The first
|
|
72
|
+
* batch also carries the query (so it has one extra input). Stops at the first
|
|
73
|
+
* refusal and returns `null` — a partially embedded corpus is not rankable.
|
|
74
|
+
*/
|
|
75
|
+
async function embedInBatches(db, query, contents, opts) {
|
|
76
|
+
let queryVec;
|
|
77
|
+
const vecs = [];
|
|
78
|
+
for (let start = 0; start < contents.length; start += EMBED_BATCH_SIZE) {
|
|
79
|
+
const chunk = contents.slice(start, start + EMBED_BATCH_SIZE);
|
|
80
|
+
const texts = start === 0 ? [query, ...chunk] : chunk;
|
|
81
|
+
const res = await embedForFeature(db, LINK_SUGGEST_FEATURE, texts, {
|
|
82
|
+
userId: opts.userId,
|
|
83
|
+
fetchImpl: opts.fetchImpl,
|
|
84
|
+
});
|
|
85
|
+
if (!res.ok)
|
|
86
|
+
return null;
|
|
87
|
+
const out = start === 0 ? res.vectors.slice(1) : res.vectors;
|
|
88
|
+
if (start === 0)
|
|
89
|
+
queryVec = res.vectors[0];
|
|
90
|
+
vecs.push(...out);
|
|
91
|
+
}
|
|
92
|
+
if (!queryVec)
|
|
93
|
+
return null;
|
|
94
|
+
return { queryVec, vecs };
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Rank `corpus` against `query` by embedding cosine similarity. Everything
|
|
98
|
+
* (toggle, budget, daily cap, key resolution, metering) is enforced inside
|
|
99
|
+
* `embedForFeature`; any refusal or provider failure yields `null`. Corpora
|
|
100
|
+
* above {@link MAX_CORPUS_ITEMS} are pre-trimmed deterministically, every item
|
|
101
|
+
* is clamped to {@link CONTENT_MAX_CHARS}, and requests are chunked.
|
|
102
|
+
*/
|
|
103
|
+
export async function rankByEmbedding(db, query, corpus, opts = {}) {
|
|
104
|
+
if (corpus.length === 0)
|
|
105
|
+
return [];
|
|
106
|
+
const trimmed = trimCorpusForEmbedding(query, corpus);
|
|
107
|
+
const contents = trimmed.map((c) => c.content.slice(0, CONTENT_MAX_CHARS));
|
|
108
|
+
const embedded = await embedInBatches(db, query.slice(0, CONTENT_MAX_CHARS), contents, {
|
|
109
|
+
userId: opts.userId,
|
|
110
|
+
fetchImpl: opts.fetchImpl,
|
|
111
|
+
});
|
|
112
|
+
if (!embedded)
|
|
113
|
+
return null;
|
|
114
|
+
const { queryVec, vecs } = embedded;
|
|
115
|
+
const terms = query.toLowerCase().split(/\s+/).filter(Boolean);
|
|
116
|
+
const ranked = [];
|
|
117
|
+
trimmed.forEach((item, i) => {
|
|
118
|
+
const vec = vecs[i];
|
|
119
|
+
if (!vec)
|
|
120
|
+
return;
|
|
121
|
+
const score = cosineSimilarity(queryVec, vec);
|
|
122
|
+
if (score >= LINK_SIMILARITY_THRESHOLD) {
|
|
123
|
+
ranked.push({
|
|
124
|
+
id: item.id,
|
|
125
|
+
title: item.title,
|
|
126
|
+
score,
|
|
127
|
+
excerpt: excerptAround(item.content, terms),
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
ranked.sort((a, b) => b.score - a.score);
|
|
132
|
+
return ranked.slice(0, opts.limit ?? DEFAULT_LIMIT);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Deterministic fallback: a source qualifies when its content contains the
|
|
136
|
+
* target title or one of its keywords. Score 0.6 for a title hit, 0.4 for a
|
|
137
|
+
* keyword-only hit (both clear the 40% wrappable floor in link-suggest).
|
|
138
|
+
*/
|
|
139
|
+
export function phraseMatchLinks(targetTitle, keywords, corpus, limit) {
|
|
140
|
+
const title = targetTitle.trim().toLowerCase();
|
|
141
|
+
const kws = keywords.map((k) => k.trim().toLowerCase()).filter(Boolean);
|
|
142
|
+
const out = [];
|
|
143
|
+
for (const item of corpus) {
|
|
144
|
+
const lower = item.content.toLowerCase();
|
|
145
|
+
const titleHit = title.length > 0 && lower.includes(title);
|
|
146
|
+
const kwHit = kws.find((k) => lower.includes(k));
|
|
147
|
+
if (!titleHit && !kwHit)
|
|
148
|
+
continue;
|
|
149
|
+
const term = titleHit ? title : kwHit;
|
|
150
|
+
out.push({
|
|
151
|
+
id: item.id,
|
|
152
|
+
title: item.title,
|
|
153
|
+
score: titleHit ? 0.6 : 0.4,
|
|
154
|
+
excerpt: excerptAround(item.content, term ? [term] : []),
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
out.sort((a, b) => b.score - a.score);
|
|
158
|
+
return out.slice(0, limit);
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=link-embeddings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link-embeddings.js","sourceRoot":"","sources":["../../../src/ai/tasks/link-embeddings.ts"],"names":[],"mappings":"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"}
|
package/dist/ai/types.d.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Shared types for the Settings > AI governance layer
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* phases
|
|
8
|
-
* wired into the UI for now.
|
|
2
|
+
* Shared types for the Settings > AI governance layer: provider connections
|
|
3
|
+
* (encrypted or env-managed keys), the normalized model catalog, per-feature
|
|
4
|
+
* toggles / routing / approval / daily caps, the monthly token budget, and the
|
|
5
|
+
* brand voice profile. Everything declared here is read by the governed
|
|
6
|
+
* runtime (`runtime.ts`) or the admin UI — fields that were once reserved for
|
|
7
|
+
* future phases were removed in Spec B rather than left as silent no-ops.
|
|
9
8
|
*/
|
|
10
9
|
/** Provider keys are stable code identifiers. `openai` covers OpenAI/ChatGPT. */
|
|
11
10
|
export type AIProviderKey = 'openai' | 'anthropic' | 'xai' | 'custom';
|
|
@@ -82,7 +81,7 @@ export type AIProviderConnectionPublic = Omit<AIProviderConnection, 'apiKeyEncry
|
|
|
82
81
|
keyManagedExternally: boolean;
|
|
83
82
|
hasKey: boolean;
|
|
84
83
|
};
|
|
85
|
-
|
|
84
|
+
type AIFeatureCategory = 'seo' | 'media' | 'content' | 'forms' | 'security' | 'developer' | 'search';
|
|
86
85
|
export interface AIFeatureConfig {
|
|
87
86
|
key: string;
|
|
88
87
|
label: string;
|
|
@@ -95,19 +94,11 @@ export interface AIFeatureConfig {
|
|
|
95
94
|
fallbackModelIds?: string[];
|
|
96
95
|
approvalRequired: boolean;
|
|
97
96
|
allowBulkApply: boolean;
|
|
98
|
-
maxMonthlyTokens?: number;
|
|
99
97
|
maxRequestsPerDay?: number;
|
|
100
|
-
rolesAllowed: string[];
|
|
101
|
-
permissionsRequired: string[];
|
|
102
|
-
dataPolicyKey?: string;
|
|
103
98
|
}
|
|
104
99
|
export interface AIBudgetSettings {
|
|
105
100
|
monthlyTokenLimit?: number;
|
|
106
|
-
monthlyCostLimit?: number;
|
|
107
|
-
alertAtPercentages: number[];
|
|
108
101
|
disableWhenExceeded: boolean;
|
|
109
|
-
perFeatureLimits?: Record<string, number>;
|
|
110
|
-
perUserLimits?: Record<string, number>;
|
|
111
102
|
}
|
|
112
103
|
/**
|
|
113
104
|
* Brand voice profile. A reusable description of how generated copy should
|
|
@@ -145,11 +136,9 @@ export interface AISettings {
|
|
|
145
136
|
defaultTextModelId?: string;
|
|
146
137
|
defaultReasoningModelId?: string;
|
|
147
138
|
defaultVisionModelId?: string;
|
|
148
|
-
defaultEmbeddingModelId?: string;
|
|
149
139
|
defaultImageGenerationModelId?: string;
|
|
150
140
|
features: AIFeatureConfig[];
|
|
151
141
|
budget: AIBudgetSettings;
|
|
152
|
-
logsRetentionDays: number;
|
|
153
142
|
/** Active brand voice. Absent until an admin configures it. */
|
|
154
143
|
brandVoice?: BrandVoiceProfile;
|
|
155
144
|
}
|
|
@@ -171,7 +160,13 @@ export interface AIConfigDocument {
|
|
|
171
160
|
updatedAt?: string;
|
|
172
161
|
updatedBy?: string;
|
|
173
162
|
}
|
|
174
|
-
/**
|
|
163
|
+
/**
|
|
164
|
+
* Monthly usage summary for the budget meter. Sums the token fields the
|
|
165
|
+
* governed runtime writes to `prenta_audit_logs` (`ai_usage` rows:
|
|
166
|
+
* `promptTokens` / `completionTokens` / `totalTokens`) plus legacy
|
|
167
|
+
* `tokensUsed` / `totalTokensUsed` rows from older handlers. Real counts —
|
|
168
|
+
* 0 when nothing has run in the period, never a fabricated number.
|
|
169
|
+
*/
|
|
175
170
|
export interface AIUsageSummary {
|
|
176
171
|
totalTokens: number;
|
|
177
172
|
promptTokens: number;
|
|
@@ -190,4 +185,5 @@ export interface AIConnectionTestResult {
|
|
|
190
185
|
message: string;
|
|
191
186
|
testedAt: string;
|
|
192
187
|
}
|
|
188
|
+
export {};
|
|
193
189
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/ai/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ai/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ai/types.ts"],"names":[],"mappings":"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"}
|
package/dist/ai/types.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Shared types for the Settings > AI governance layer
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* phases
|
|
8
|
-
* wired into the UI for now.
|
|
2
|
+
* Shared types for the Settings > AI governance layer: provider connections
|
|
3
|
+
* (encrypted or env-managed keys), the normalized model catalog, per-feature
|
|
4
|
+
* toggles / routing / approval / daily caps, the monthly token budget, and the
|
|
5
|
+
* brand voice profile. Everything declared here is read by the governed
|
|
6
|
+
* runtime (`runtime.ts`) or the admin UI — fields that were once reserved for
|
|
7
|
+
* future phases were removed in Spec B rather than left as silent no-ops.
|
|
9
8
|
*/
|
|
10
9
|
export {};
|
|
11
10
|
//# sourceMappingURL=types.js.map
|
package/dist/ai/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ai/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ai/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
package/dist/ai/usage.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* AI usage aggregation.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* Usage is derived from `prenta_audit_logs`: the governed runtime writes one
|
|
5
|
+
* `ai_usage` row per model call (`details.promptTokens` / `completionTokens` /
|
|
6
|
+
* `totalTokens`, `details.source === 'ai-runtime'`), and older handlers left
|
|
7
|
+
* `details.tokensUsed` / `details.totalTokensUsed`. Both shapes are summed.
|
|
8
|
+
* This returns REAL counts — it is 0 when nothing has run, never a fabricated
|
|
9
|
+
* number.
|
|
8
10
|
*/
|
|
9
11
|
import type { AIUsageSummary } from './types.js';
|
|
10
12
|
/**
|
package/dist/ai/usage.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/ai/usage.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/ai/usage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAgBhD;;;GAGG;AACH,wBAAsB,eAAe,CACnC,EAAE,EAAE,OAAO,EACX,MAAM,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,IAAI,CAAC;IAAC,GAAG,CAAC,EAAE,IAAI,CAAA;CAAE,GACpC,OAAO,CAAC,cAAc,CAAC,CAiDzB;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAoB5F"}
|
package/dist/ai/usage.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* AI usage aggregation.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* Usage is derived from `prenta_audit_logs`: the governed runtime writes one
|
|
5
|
+
* `ai_usage` row per model call (`details.promptTokens` / `completionTokens` /
|
|
6
|
+
* `totalTokens`, `details.source === 'ai-runtime'`), and older handlers left
|
|
7
|
+
* `details.tokensUsed` / `details.totalTokensUsed`. Both shapes are summed.
|
|
8
|
+
* This returns REAL counts — it is 0 when nothing has run, never a fabricated
|
|
9
|
+
* number.
|
|
8
10
|
*/
|
|
9
11
|
import { getAIConfig } from './config-store.js';
|
|
10
12
|
/** First instant of the current calendar month (UTC). */
|
package/dist/ai/usage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/ai/usage.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/ai/usage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vector math shared by the embedding-backed features (redirect re-ranking,
|
|
3
|
+
* internal-link ranking). A leaf so `ai/tasks/*` never imports from
|
|
4
|
+
* `redirects/*` for arithmetic.
|
|
5
|
+
*/
|
|
6
|
+
/** Cosine similarity; returns 0 for mismatched dimensions or zero-norm vectors. */
|
|
7
|
+
export declare function cosineSimilarity(a: number[], b: number[]): number;
|
|
8
|
+
//# sourceMappingURL=vector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vector.d.ts","sourceRoot":"","sources":["../../src/ai/vector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,mFAAmF;AACnF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAcjE"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vector math shared by the embedding-backed features (redirect re-ranking,
|
|
3
|
+
* internal-link ranking). A leaf so `ai/tasks/*` never imports from
|
|
4
|
+
* `redirects/*` for arithmetic.
|
|
5
|
+
*/
|
|
6
|
+
/** Cosine similarity; returns 0 for mismatched dimensions or zero-norm vectors. */
|
|
7
|
+
export function cosineSimilarity(a, b) {
|
|
8
|
+
if (a.length !== b.length || a.length === 0)
|
|
9
|
+
return 0;
|
|
10
|
+
let dot = 0;
|
|
11
|
+
let normA = 0;
|
|
12
|
+
let normB = 0;
|
|
13
|
+
for (let i = 0; i < a.length; i++) {
|
|
14
|
+
const x = a[i] ?? 0;
|
|
15
|
+
const y = b[i] ?? 0;
|
|
16
|
+
dot += x * y;
|
|
17
|
+
normA += x * x;
|
|
18
|
+
normB += y * y;
|
|
19
|
+
}
|
|
20
|
+
if (normA === 0 || normB === 0)
|
|
21
|
+
return 0;
|
|
22
|
+
return dot / (Math.sqrt(normA) * Math.sqrt(normB));
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=vector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vector.js","sourceRoot":"","sources":["../../src/ai/vector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,mFAAmF;AACnF,MAAM,UAAU,gBAAgB,CAAC,CAAW,EAAE,CAAW;IACvD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAA;IACrD,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACnB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACnB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;QACZ,KAAK,IAAI,CAAC,GAAG,CAAC,CAAA;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,CAAA;IAChB,CAAC;IACD,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,CAAC,CAAA;IACxC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;AACpD,CAAC"}
|
package/dist/api/responses.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/** HTTP response helpers. Re-exported from `route-helpers.ts`. */
|
|
2
|
-
export { json,
|
|
2
|
+
export { json, errorResponse, internalError } from './route-helpers.js';
|
|
3
3
|
//# sourceMappingURL=responses.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../src/api/responses.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../src/api/responses.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA"}
|
package/dist/api/responses.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/** HTTP response helpers. Re-exported from `route-helpers.ts`. */
|
|
2
|
-
export { json,
|
|
2
|
+
export { json, errorResponse, internalError } from './route-helpers.js';
|
|
3
3
|
//# sourceMappingURL=responses.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responses.js","sourceRoot":"","sources":["../../src/api/responses.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"responses.js","sourceRoot":"","sources":["../../src/api/responses.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA"}
|
|
@@ -3,9 +3,10 @@ import { type TeamOptions } from '../auth/team.js';
|
|
|
3
3
|
import type { FetchFormEntriesParams, FetchFormsParams, FormDefinition } from '../forms/types.js';
|
|
4
4
|
import { type IncomingFile } from '../forms/files.js';
|
|
5
5
|
import { type ApiKeyScope } from '../security/api-key-enhanced.js';
|
|
6
|
+
import { SECURITY_HEADERS } from './security-headers.js';
|
|
6
7
|
import type { PrentaDB } from '../db/client-types.js';
|
|
7
8
|
export declare function importBlobStorage(): Promise<any>;
|
|
8
|
-
export
|
|
9
|
+
export { importAIPlugin } from '../ai/plugin-import.js';
|
|
9
10
|
/**
|
|
10
11
|
* Build the system/user prompt for an inline co-author action. Kept
|
|
11
12
|
* deterministic and small so the governed runtime can route it to any
|
|
@@ -36,7 +37,7 @@ export declare function maybePopulate(request: Request, collection: string, doc:
|
|
|
36
37
|
id?: string;
|
|
37
38
|
role?: string;
|
|
38
39
|
}): Promise<Record<string, unknown> | null>;
|
|
39
|
-
export
|
|
40
|
+
export { SECURITY_HEADERS };
|
|
40
41
|
export declare function json(data: unknown, status?: number): Response;
|
|
41
42
|
/**
|
|
42
43
|
* Variant of `json()` that emits the Phase-5.5 public-read
|
|
@@ -82,13 +83,6 @@ export declare function readJsonBody(request: Request): Promise<{
|
|
|
82
83
|
}>;
|
|
83
84
|
export declare function mediaUrl(storageKey: unknown): string;
|
|
84
85
|
export declare function normalizeMediaItem(media: any): any;
|
|
85
|
-
/**
|
|
86
|
-
* Build the admin editor route for a document that references a media asset.
|
|
87
|
-
* Pages own the `/pages/*` namespace; post-type collections use
|
|
88
|
-
* `/posts/:type/:id/edit`; everything else falls back to the generic
|
|
89
|
-
* collection editor. Kept in sync with the route table in `AdminRoot.tsx`.
|
|
90
|
-
*/
|
|
91
|
-
export declare function mediaUsageEditPath(collection: string, id: string): string;
|
|
92
86
|
/**
|
|
93
87
|
* Map the `MediaUsage` join rows (with their related document) into the
|
|
94
88
|
* `{ page, path }[]` shape the admin drawer renders. Soft-deleted documents
|
|
@@ -98,7 +92,6 @@ export declare function buildMediaUsedOn(mediaUsages: unknown): {
|
|
|
98
92
|
page: string;
|
|
99
93
|
path: string;
|
|
100
94
|
}[];
|
|
101
|
-
export declare const MEDIA_TITLE_STOPWORDS: Set<string>;
|
|
102
95
|
/**
|
|
103
96
|
* Derive a concise, Title-Cased title from AI-generated alt text. The alt
|
|
104
97
|
* text is already a model output describing the image, so the title stays
|
|
@@ -122,8 +115,6 @@ export declare function parseEntriesQuery(url: URL): FetchFormEntriesParams;
|
|
|
122
115
|
* server-side origin check in the submit handler.
|
|
123
116
|
*/
|
|
124
117
|
export declare function formCorsHeaders(request: Request, allowedDomains?: string[]): Record<string, string>;
|
|
125
|
-
export declare function normalizeAllowedHost(domain: string): string;
|
|
126
|
-
export declare function isOriginAllowed(origin: string, allowedDomains: string[]): boolean;
|
|
127
118
|
export declare function jsonWithHeaders(data: unknown, status: number, extra: Record<string, string>): Response;
|
|
128
119
|
/**
|
|
129
120
|
* Parse a public submission request into field values, files, and metadata.
|
|
@@ -141,7 +132,6 @@ export declare function parseSubmissionRequest(request: Request): Promise<{
|
|
|
141
132
|
captchaToken: string;
|
|
142
133
|
};
|
|
143
134
|
} | null>;
|
|
144
|
-
export declare function safeJsonObject(value: unknown): Record<string, unknown> | null;
|
|
145
135
|
/**
|
|
146
136
|
* Shared public-submission handler used by both the slug-based public route and
|
|
147
137
|
* the legacy by-id route. Enforces per-IP+form rate limiting, embed-origin
|
|
@@ -231,8 +221,6 @@ export declare function safeFindMany<T>(model: any, args: Record<string, unknown
|
|
|
231
221
|
* does not cover.
|
|
232
222
|
*/
|
|
233
223
|
export declare function isAllowedStorageUrl(url: string): boolean;
|
|
234
|
-
/** Max image size (bytes) we'll pull into memory for vision analysis. */
|
|
235
|
-
export declare const MAX_VISION_IMAGE_BYTES: number;
|
|
236
224
|
/**
|
|
237
225
|
* Fetch image bytes for multimodal (vision) analysis through {@link safeFetch}
|
|
238
226
|
* (SSRF-safe: re-validates the host, DNS-resolves to defeat rebinding, no
|
|
@@ -243,7 +231,6 @@ export declare function fetchImageForVision(url: string, knownMimeType?: string)
|
|
|
243
231
|
base64: string;
|
|
244
232
|
mimeType: string;
|
|
245
233
|
} | null>;
|
|
246
|
-
export declare const ALLOWED_SORT_FIELDS: Set<string>;
|
|
247
234
|
export declare function getSessionSecret(): string;
|
|
248
235
|
export declare function isSecretMissing(): boolean;
|
|
249
236
|
/**
|
|
@@ -309,8 +296,6 @@ export declare function requireRole(role: string, allowedRoles: Set<string>): Re
|
|
|
309
296
|
* cap (config-provided; null = unlimited until billing exists).
|
|
310
297
|
*/
|
|
311
298
|
export declare function teamOptionsFor(session: AuthSession): TeamOptions;
|
|
312
|
-
/** Whether the configured email provider can actually send mail. */
|
|
313
|
-
export declare function isEmailConfigured(): boolean;
|
|
314
299
|
/**
|
|
315
300
|
* DB-aware variant of {@link isEmailConfigured} — also true when a provider
|
|
316
301
|
* is configured through Settings > Email.
|
|
@@ -323,7 +308,6 @@ export declare const loginEmailLimiter: import("../security/rate-limit.js").Rate
|
|
|
323
308
|
export declare const inviteLimiter: import("../security/rate-limit.js").RateLimiter;
|
|
324
309
|
export declare const totpLimiter: import("../security/rate-limit.js").RateLimiter;
|
|
325
310
|
export declare const emailTestLimiter: import("../security/rate-limit.js").RateLimiter;
|
|
326
|
-
export declare const formLimiterGlobal: import("../security/rate-limit.js").RateLimiter;
|
|
327
311
|
export declare const aiGenerateLimiter: import("../security/rate-limit.js").RateLimiter;
|
|
328
312
|
export declare const uploadLimiter: import("../security/rate-limit.js").RateLimiter;
|
|
329
313
|
export declare const aiAnalysisLimiter: import("../security/rate-limit.js").RateLimiter;
|
|
@@ -355,7 +339,6 @@ export declare function diffScalarKeys(previous: Record<string, unknown>, next:
|
|
|
355
339
|
from: unknown;
|
|
356
340
|
to: unknown;
|
|
357
341
|
}>;
|
|
358
|
-
export declare const MAX_CONCURRENT_SESSIONS = 5;
|
|
359
342
|
/**
|
|
360
343
|
* After a successful primary-credential check, prune the user's active sessions
|
|
361
344
|
* down to the configured concurrent maximum (default 5; configurable via
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-helpers.d.ts","sourceRoot":"","sources":["../../src/api/route-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAKlD,OAAO,EAA0B,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAa1E,OAAO,KAAK,EACV,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EAEf,MAAM,mBAAmB,CAAA;AAM1B,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAA;AAY1B,OAAO,EAOL,KAAK,WAAW,EACjB,MAAM,iCAAiC,CAAA;AAExC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAIrD,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,CAGtD;AAED,
|
|
1
|
+
{"version":3,"file":"route-helpers.d.ts","sourceRoot":"","sources":["../../src/api/route-helpers.ts"],"names":[],"mappings":"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"}
|