@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.
Files changed (467) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/dist/actions.d.ts.map +1 -1
  3. package/dist/actions.js +5 -15
  4. package/dist/actions.js.map +1 -1
  5. package/dist/ai/brand-voice-analyze.d.ts +1 -4
  6. package/dist/ai/brand-voice-analyze.d.ts.map +1 -1
  7. package/dist/ai/brand-voice-analyze.js +1 -2
  8. package/dist/ai/brand-voice-analyze.js.map +1 -1
  9. package/dist/ai/brand-voice-sources.d.ts +0 -2
  10. package/dist/ai/brand-voice-sources.d.ts.map +1 -1
  11. package/dist/ai/brand-voice-sources.js +2 -2
  12. package/dist/ai/brand-voice-sources.js.map +1 -1
  13. package/dist/ai/brand-voice-structured.d.ts +6 -6
  14. package/dist/ai/brand-voice-structured.d.ts.map +1 -1
  15. package/dist/ai/catalog.d.ts +8 -0
  16. package/dist/ai/catalog.d.ts.map +1 -1
  17. package/dist/ai/catalog.js +22 -0
  18. package/dist/ai/catalog.js.map +1 -1
  19. package/dist/ai/config-store.d.ts +18 -4
  20. package/dist/ai/config-store.d.ts.map +1 -1
  21. package/dist/ai/config-store.js +115 -20
  22. package/dist/ai/config-store.js.map +1 -1
  23. package/dist/ai/content-writing-generate.d.ts +10 -8
  24. package/dist/ai/content-writing-generate.d.ts.map +1 -1
  25. package/dist/ai/content-writing-generate.js +24 -59
  26. package/dist/ai/content-writing-generate.js.map +1 -1
  27. package/dist/ai/embeddings.d.ts +28 -0
  28. package/dist/ai/embeddings.d.ts.map +1 -0
  29. package/dist/ai/embeddings.js +36 -0
  30. package/dist/ai/embeddings.js.map +1 -0
  31. package/dist/ai/feature-defaults.d.ts +3 -3
  32. package/dist/ai/feature-defaults.d.ts.map +1 -1
  33. package/dist/ai/feature-defaults.js +24 -14
  34. package/dist/ai/feature-defaults.js.map +1 -1
  35. package/dist/ai/index.d.ts +15 -16
  36. package/dist/ai/index.d.ts.map +1 -1
  37. package/dist/ai/index.js +14 -15
  38. package/dist/ai/index.js.map +1 -1
  39. package/dist/ai/models.d.ts +7 -3
  40. package/dist/ai/models.d.ts.map +1 -1
  41. package/dist/ai/models.js +10 -5
  42. package/dist/ai/models.js.map +1 -1
  43. package/dist/ai/plugin-errors.d.ts +9 -3
  44. package/dist/ai/plugin-errors.d.ts.map +1 -1
  45. package/dist/ai/plugin-errors.js +9 -3
  46. package/dist/ai/plugin-errors.js.map +1 -1
  47. package/dist/ai/plugin-import.d.ts +20 -0
  48. package/dist/ai/plugin-import.d.ts.map +1 -0
  49. package/dist/ai/plugin-import.js +24 -0
  50. package/dist/ai/plugin-import.js.map +1 -0
  51. package/dist/ai/prompt-safety.d.ts +23 -0
  52. package/dist/ai/prompt-safety.d.ts.map +1 -0
  53. package/dist/ai/prompt-safety.js +34 -0
  54. package/dist/ai/prompt-safety.js.map +1 -0
  55. package/dist/ai/providers/anthropic.d.ts.map +1 -1
  56. package/dist/ai/providers/anthropic.js +16 -1
  57. package/dist/ai/providers/anthropic.js.map +1 -1
  58. package/dist/ai/providers/http.d.ts +7 -2
  59. package/dist/ai/providers/http.d.ts.map +1 -1
  60. package/dist/ai/providers/http.js +13 -2
  61. package/dist/ai/providers/http.js.map +1 -1
  62. package/dist/ai/providers/index.d.ts +0 -7
  63. package/dist/ai/providers/index.d.ts.map +1 -1
  64. package/dist/ai/providers/index.js +1 -1
  65. package/dist/ai/providers/index.js.map +1 -1
  66. package/dist/ai/resolve.d.ts +7 -1
  67. package/dist/ai/resolve.d.ts.map +1 -1
  68. package/dist/ai/resolve.js +36 -3
  69. package/dist/ai/resolve.js.map +1 -1
  70. package/dist/ai/runtime-response.d.ts +27 -0
  71. package/dist/ai/runtime-response.d.ts.map +1 -0
  72. package/dist/ai/runtime-response.js +75 -0
  73. package/dist/ai/runtime-response.js.map +1 -0
  74. package/dist/ai/runtime.d.ts +9 -7
  75. package/dist/ai/runtime.d.ts.map +1 -1
  76. package/dist/ai/runtime.js +14 -19
  77. package/dist/ai/runtime.js.map +1 -1
  78. package/dist/ai/tasks/alt-text.d.ts +82 -0
  79. package/dist/ai/tasks/alt-text.d.ts.map +1 -0
  80. package/dist/ai/tasks/alt-text.js +171 -0
  81. package/dist/ai/tasks/alt-text.js.map +1 -0
  82. package/dist/ai/tasks/document-generation.d.ts +102 -0
  83. package/dist/ai/tasks/document-generation.d.ts.map +1 -0
  84. package/dist/ai/tasks/document-generation.js +321 -0
  85. package/dist/ai/tasks/document-generation.js.map +1 -0
  86. package/dist/ai/tasks/link-embeddings.d.ts +55 -0
  87. package/dist/ai/tasks/link-embeddings.d.ts.map +1 -0
  88. package/dist/ai/tasks/link-embeddings.js +160 -0
  89. package/dist/ai/tasks/link-embeddings.js.map +1 -0
  90. package/dist/ai/types.d.ts +15 -19
  91. package/dist/ai/types.d.ts.map +1 -1
  92. package/dist/ai/types.js +6 -7
  93. package/dist/ai/types.js.map +1 -1
  94. package/dist/ai/usage.d.ts +6 -4
  95. package/dist/ai/usage.d.ts.map +1 -1
  96. package/dist/ai/usage.js +6 -4
  97. package/dist/ai/usage.js.map +1 -1
  98. package/dist/ai/vector.d.ts +8 -0
  99. package/dist/ai/vector.d.ts.map +1 -0
  100. package/dist/ai/vector.js +24 -0
  101. package/dist/ai/vector.js.map +1 -0
  102. package/dist/api/responses.d.ts +1 -1
  103. package/dist/api/responses.d.ts.map +1 -1
  104. package/dist/api/responses.js +1 -1
  105. package/dist/api/responses.js.map +1 -1
  106. package/dist/api/route-helpers.d.ts +3 -20
  107. package/dist/api/route-helpers.d.ts.map +1 -1
  108. package/dist/api/route-helpers.js +12 -26
  109. package/dist/api/route-helpers.js.map +1 -1
  110. package/dist/api/routes/ai-authoring.d.ts.map +1 -1
  111. package/dist/api/routes/ai-authoring.js +132 -144
  112. package/dist/api/routes/ai-authoring.js.map +1 -1
  113. package/dist/api/routes/ai-seo.d.ts.map +1 -1
  114. package/dist/api/routes/ai-seo.js +44 -120
  115. package/dist/api/routes/ai-seo.js.map +1 -1
  116. package/dist/api/routes/ai-settings.d.ts.map +1 -1
  117. package/dist/api/routes/ai-settings.js +76 -28
  118. package/dist/api/routes/ai-settings.js.map +1 -1
  119. package/dist/api/routes/security-center.d.ts.map +1 -1
  120. package/dist/api/routes/security-center.js +5 -39
  121. package/dist/api/routes/security-center.js.map +1 -1
  122. package/dist/api/routes/seo-public.d.ts +0 -5
  123. package/dist/api/routes/seo-public.d.ts.map +1 -1
  124. package/dist/api/routes/seo-public.js +1 -1
  125. package/dist/api/routes/seo-public.js.map +1 -1
  126. package/dist/api/routes/seo.d.ts.map +1 -1
  127. package/dist/api/routes/seo.js +21 -48
  128. package/dist/api/routes/seo.js.map +1 -1
  129. package/dist/api/security-headers.d.ts +8 -0
  130. package/dist/api/security-headers.d.ts.map +1 -0
  131. package/dist/api/security-headers.js +13 -0
  132. package/dist/api/security-headers.js.map +1 -0
  133. package/dist/appearance/favicon-icon.d.ts +1 -1
  134. package/dist/appearance/favicon-icon.d.ts.map +1 -1
  135. package/dist/appearance/favicon-icon.js +1 -1
  136. package/dist/appearance/favicon-icon.js.map +1 -1
  137. package/dist/auth/index.d.ts +0 -6
  138. package/dist/auth/index.d.ts.map +1 -1
  139. package/dist/auth/index.js +0 -3
  140. package/dist/auth/index.js.map +1 -1
  141. package/dist/auth/invites.d.ts +0 -5
  142. package/dist/auth/invites.d.ts.map +1 -1
  143. package/dist/auth/invites.js +3 -3
  144. package/dist/auth/invites.js.map +1 -1
  145. package/dist/auth/team.d.ts +4 -3
  146. package/dist/auth/team.d.ts.map +1 -1
  147. package/dist/auth/user-admin.d.ts +2 -1
  148. package/dist/auth/user-admin.d.ts.map +1 -1
  149. package/dist/billing/stripe-meter.d.ts +2 -1
  150. package/dist/billing/stripe-meter.d.ts.map +1 -1
  151. package/dist/cache/http.d.ts +0 -11
  152. package/dist/cache/http.d.ts.map +1 -1
  153. package/dist/cache/http.js +1 -1
  154. package/dist/cache/http.js.map +1 -1
  155. package/dist/cache/index.d.ts +0 -5
  156. package/dist/cache/index.d.ts.map +1 -1
  157. package/dist/config/types.d.ts +19 -19
  158. package/dist/config/types.d.ts.map +1 -1
  159. package/dist/content/index.d.ts +2 -5
  160. package/dist/content/index.d.ts.map +1 -1
  161. package/dist/content/index.js +1 -3
  162. package/dist/content/index.js.map +1 -1
  163. package/dist/content/structured-data.d.ts +0 -14
  164. package/dist/content/structured-data.d.ts.map +1 -1
  165. package/dist/content/structured-data.js +3 -14
  166. package/dist/content/structured-data.js.map +1 -1
  167. package/dist/cron/index.d.ts +2 -3
  168. package/dist/cron/index.d.ts.map +1 -1
  169. package/dist/cron/index.js +0 -2
  170. package/dist/cron/index.js.map +1 -1
  171. package/dist/db/client-types.d.ts +2 -1
  172. package/dist/db/client-types.d.ts.map +1 -1
  173. package/dist/db/model-types.d.ts +0 -1
  174. package/dist/db/model-types.d.ts.map +1 -1
  175. package/dist/db.d.ts +0 -2
  176. package/dist/db.d.ts.map +1 -1
  177. package/dist/db.js +0 -1
  178. package/dist/db.js.map +1 -1
  179. package/dist/diagnostics/env.d.ts +1 -1
  180. package/dist/diagnostics/env.d.ts.map +1 -1
  181. package/dist/diagnostics/logger.d.ts +0 -24
  182. package/dist/diagnostics/logger.d.ts.map +1 -1
  183. package/dist/forms/entries.d.ts +0 -7
  184. package/dist/forms/entries.d.ts.map +1 -1
  185. package/dist/forms/entries.js +1 -19
  186. package/dist/forms/entries.js.map +1 -1
  187. package/dist/forms/files.d.ts +1 -1
  188. package/dist/forms/files.d.ts.map +1 -1
  189. package/dist/forms/index.d.ts +4 -6
  190. package/dist/forms/index.d.ts.map +1 -1
  191. package/dist/forms/index.js +3 -5
  192. package/dist/forms/index.js.map +1 -1
  193. package/dist/forms/prefetch.d.ts +0 -6
  194. package/dist/forms/prefetch.d.ts.map +1 -1
  195. package/dist/forms/service.d.ts +0 -4
  196. package/dist/forms/service.d.ts.map +1 -1
  197. package/dist/forms/service.js +2 -8
  198. package/dist/forms/service.js.map +1 -1
  199. package/dist/forms/webmcp.d.ts +0 -2
  200. package/dist/forms/webmcp.d.ts.map +1 -1
  201. package/dist/forms/webmcp.js +1 -1
  202. package/dist/forms/webmcp.js.map +1 -1
  203. package/dist/generated/internal/class.js +4 -4
  204. package/dist/generated/internal/prismaNamespace.d.ts +0 -1
  205. package/dist/generated/internal/prismaNamespace.js +0 -1
  206. package/dist/generated/internal/prismaNamespaceBrowser.d.ts +0 -1
  207. package/dist/generated/internal/prismaNamespaceBrowser.js +0 -1
  208. package/dist/generated/models/Document.d.ts +1 -58
  209. package/dist/index.d.ts +2 -2
  210. package/dist/index.d.ts.map +1 -1
  211. package/dist/index.js +1 -1
  212. package/dist/index.js.map +1 -1
  213. package/dist/media/denormalize.d.ts +0 -7
  214. package/dist/media/denormalize.d.ts.map +1 -1
  215. package/dist/media/index.d.ts +0 -8
  216. package/dist/media/index.d.ts.map +1 -1
  217. package/dist/media/index.js +0 -5
  218. package/dist/media/index.js.map +1 -1
  219. package/dist/media/optimize.d.ts +0 -4
  220. package/dist/media/optimize.d.ts.map +1 -1
  221. package/dist/media/optimize.js +4 -4
  222. package/dist/media/optimize.js.map +1 -1
  223. package/dist/media/reoptimize.d.ts +2 -3
  224. package/dist/media/reoptimize.d.ts.map +1 -1
  225. package/dist/media/reoptimize.js +2 -2
  226. package/dist/media/reoptimize.js.map +1 -1
  227. package/dist/media/seo.d.ts +3 -8
  228. package/dist/media/seo.d.ts.map +1 -1
  229. package/dist/media/seo.js +1 -1
  230. package/dist/media/seo.js.map +1 -1
  231. package/dist/plan/features.d.ts +0 -1
  232. package/dist/plan/features.d.ts.map +1 -1
  233. package/dist/plan/features.js +0 -16
  234. package/dist/plan/features.js.map +1 -1
  235. package/dist/preview/event-bus.d.ts +2 -1
  236. package/dist/preview/event-bus.d.ts.map +1 -1
  237. package/dist/preview/index.d.ts +2 -1
  238. package/dist/preview/index.d.ts.map +1 -1
  239. package/dist/preview/sse-stream.d.ts +0 -13
  240. package/dist/preview/sse-stream.d.ts.map +1 -1
  241. package/dist/preview/sse-stream.js +2 -2
  242. package/dist/preview/sse-stream.js.map +1 -1
  243. package/dist/realtime/notifications.d.ts +4 -3
  244. package/dist/realtime/notifications.d.ts.map +1 -1
  245. package/dist/redirects/index.d.ts +4 -16
  246. package/dist/redirects/index.d.ts.map +1 -1
  247. package/dist/redirects/index.js +2 -9
  248. package/dist/redirects/index.js.map +1 -1
  249. package/dist/redirects/match.d.ts +0 -2
  250. package/dist/redirects/match.d.ts.map +1 -1
  251. package/dist/redirects/match.js +1 -1
  252. package/dist/redirects/match.js.map +1 -1
  253. package/dist/redirects/recovery.d.ts +0 -2
  254. package/dist/redirects/recovery.d.ts.map +1 -1
  255. package/dist/redirects/recovery.js +1 -1
  256. package/dist/redirects/recovery.js.map +1 -1
  257. package/dist/redirects/rerank.d.ts +4 -3
  258. package/dist/redirects/rerank.d.ts.map +1 -1
  259. package/dist/redirects/rerank.js +3 -18
  260. package/dist/redirects/rerank.js.map +1 -1
  261. package/dist/sections/validate.d.ts +0 -2
  262. package/dist/sections/validate.d.ts.map +1 -1
  263. package/dist/sections/validate.js +1 -1
  264. package/dist/sections/validate.js.map +1 -1
  265. package/dist/security/access.d.ts +0 -9
  266. package/dist/security/access.d.ts.map +1 -1
  267. package/dist/security/access.js +1 -3
  268. package/dist/security/access.js.map +1 -1
  269. package/dist/security/audit.d.ts +0 -20
  270. package/dist/security/audit.d.ts.map +1 -1
  271. package/dist/security/audit.js.map +1 -1
  272. package/dist/security/index.d.ts +2 -20
  273. package/dist/security/index.d.ts.map +1 -1
  274. package/dist/security/index.js +2 -7
  275. package/dist/security/index.js.map +1 -1
  276. package/dist/security/internal-keys.d.ts +0 -12
  277. package/dist/security/internal-keys.d.ts.map +1 -1
  278. package/dist/security/internal-keys.js +10 -12
  279. package/dist/security/internal-keys.js.map +1 -1
  280. package/dist/security/rate-limit-policy.d.ts +0 -2
  281. package/dist/security/rate-limit-policy.d.ts.map +1 -1
  282. package/dist/security/rate-limit-policy.js +1 -1
  283. package/dist/security/rate-limit-policy.js.map +1 -1
  284. package/dist/security/rate-limit.d.ts +2 -5
  285. package/dist/security/rate-limit.d.ts.map +1 -1
  286. package/dist/security/rate-limit.js +2 -2
  287. package/dist/security/rate-limit.js.map +1 -1
  288. package/dist/security/sanitize.d.ts +0 -3
  289. package/dist/security/sanitize.d.ts.map +1 -1
  290. package/dist/security/sanitize.js +0 -1
  291. package/dist/security/sanitize.js.map +1 -1
  292. package/dist/security/upload.d.ts +0 -3
  293. package/dist/security/upload.d.ts.map +1 -1
  294. package/dist/security/upload.js +0 -1
  295. package/dist/security/upload.js.map +1 -1
  296. package/dist/seo/ai-crawler-log.d.ts +0 -2
  297. package/dist/seo/ai-crawler-log.d.ts.map +1 -1
  298. package/dist/seo/ai-crawler-log.js +1 -1
  299. package/dist/seo/ai-crawler-log.js.map +1 -1
  300. package/dist/seo/audit-engine.d.ts +5 -5
  301. package/dist/seo/audit-engine.d.ts.map +1 -1
  302. package/dist/seo/audit-engine.js +1 -2
  303. package/dist/seo/audit-engine.js.map +1 -1
  304. package/dist/seo/audit-runner.d.ts +0 -7
  305. package/dist/seo/audit-runner.d.ts.map +1 -1
  306. package/dist/seo/audit-runner.js +1 -1
  307. package/dist/seo/audit-runner.js.map +1 -1
  308. package/dist/seo/audit-signals.d.ts +0 -2
  309. package/dist/seo/audit-signals.d.ts.map +1 -1
  310. package/dist/seo/audit-signals.js +1 -1
  311. package/dist/seo/audit-signals.js.map +1 -1
  312. package/dist/seo/autopilot-gate.d.ts +0 -1
  313. package/dist/seo/autopilot-gate.d.ts.map +1 -1
  314. package/dist/seo/autopilot-gate.js +1 -1
  315. package/dist/seo/autopilot-gate.js.map +1 -1
  316. package/dist/seo/autopilot-ledger.d.ts +2 -1
  317. package/dist/seo/autopilot-ledger.d.ts.map +1 -1
  318. package/dist/seo/autopilot-outcome.d.ts +0 -2
  319. package/dist/seo/autopilot-outcome.d.ts.map +1 -1
  320. package/dist/seo/autopilot-outcome.js +1 -1
  321. package/dist/seo/autopilot-outcome.js.map +1 -1
  322. package/dist/seo/autopilot-policy.d.ts +3 -38
  323. package/dist/seo/autopilot-policy.d.ts.map +1 -1
  324. package/dist/seo/autopilot-policy.js +3 -3
  325. package/dist/seo/autopilot-policy.js.map +1 -1
  326. package/dist/seo/autopilot.d.ts +4 -12
  327. package/dist/seo/autopilot.d.ts.map +1 -1
  328. package/dist/seo/autopilot.js +3 -3
  329. package/dist/seo/autopilot.js.map +1 -1
  330. package/dist/seo/config-store.d.ts +0 -2
  331. package/dist/seo/config-store.d.ts.map +1 -1
  332. package/dist/seo/config-store.js +1 -1
  333. package/dist/seo/config-store.js.map +1 -1
  334. package/dist/seo/digest.d.ts +8 -7
  335. package/dist/seo/digest.d.ts.map +1 -1
  336. package/dist/seo/faq-signals.d.ts +0 -4
  337. package/dist/seo/faq-signals.d.ts.map +1 -1
  338. package/dist/seo/faq-signals.js +4 -4
  339. package/dist/seo/faq-signals.js.map +1 -1
  340. package/dist/seo/fix-brief-export.d.ts +0 -2
  341. package/dist/seo/fix-brief-export.d.ts.map +1 -1
  342. package/dist/seo/fix-brief-export.js +1 -1
  343. package/dist/seo/fix-brief-export.js.map +1 -1
  344. package/dist/seo/geo-record.d.ts +0 -4
  345. package/dist/seo/geo-record.d.ts.map +1 -1
  346. package/dist/seo/geo-record.js +2 -2
  347. package/dist/seo/geo-record.js.map +1 -1
  348. package/dist/seo/geo-report.d.ts +4 -3
  349. package/dist/seo/geo-report.d.ts.map +1 -1
  350. package/dist/seo/geo-report.js +1 -1
  351. package/dist/seo/geo-report.js.map +1 -1
  352. package/dist/seo/index-status.d.ts +6 -5
  353. package/dist/seo/index-status.d.ts.map +1 -1
  354. package/dist/seo/index-status.js.map +1 -1
  355. package/dist/seo/index.d.ts +15 -90
  356. package/dist/seo/index.d.ts.map +1 -1
  357. package/dist/seo/index.js +10 -49
  358. package/dist/seo/index.js.map +1 -1
  359. package/dist/seo/issue-batch-briefs.d.ts +2 -3
  360. package/dist/seo/issue-batch-briefs.d.ts.map +1 -1
  361. package/dist/seo/issue-batch-briefs.js +2 -2
  362. package/dist/seo/issue-batch-briefs.js.map +1 -1
  363. package/dist/seo/issue-content-brief.d.ts +2 -1
  364. package/dist/seo/issue-content-brief.d.ts.map +1 -1
  365. package/dist/seo/issue-content-research.d.ts +2 -2
  366. package/dist/seo/issue-content-research.d.ts.map +1 -1
  367. package/dist/seo/issue-content-research.js +1 -1
  368. package/dist/seo/issue-content-research.js.map +1 -1
  369. package/dist/seo/issue-fix-ai.d.ts +5 -4
  370. package/dist/seo/issue-fix-ai.d.ts.map +1 -1
  371. package/dist/seo/issue-fix-ai.js +4 -19
  372. package/dist/seo/issue-fix-ai.js.map +1 -1
  373. package/dist/seo/issue-fix-apply.d.ts +2 -11
  374. package/dist/seo/issue-fix-apply.d.ts.map +1 -1
  375. package/dist/seo/issue-fix-apply.js +4 -4
  376. package/dist/seo/issue-fix-apply.js.map +1 -1
  377. package/dist/seo/issue-fix-faq.d.ts +4 -7
  378. package/dist/seo/issue-fix-faq.d.ts.map +1 -1
  379. package/dist/seo/issue-fix-faq.js +4 -4
  380. package/dist/seo/issue-fix-faq.js.map +1 -1
  381. package/dist/seo/issue-fix-link-insert.d.ts +4 -14
  382. package/dist/seo/issue-fix-link-insert.d.ts.map +1 -1
  383. package/dist/seo/issue-fix-link-insert.js +5 -4
  384. package/dist/seo/issue-fix-link-insert.js.map +1 -1
  385. package/dist/seo/issue-fix-redirect.d.ts +0 -1
  386. package/dist/seo/issue-fix-redirect.d.ts.map +1 -1
  387. package/dist/seo/issue-fix.d.ts.map +1 -1
  388. package/dist/seo/issue-fix.js +1 -0
  389. package/dist/seo/issue-fix.js.map +1 -1
  390. package/dist/seo/link-graph.d.ts +2 -3
  391. package/dist/seo/link-graph.d.ts.map +1 -1
  392. package/dist/seo/link-graph.js +0 -0
  393. package/dist/seo/link-graph.js.map +1 -1
  394. package/dist/seo/link-suggest.d.ts +8 -2
  395. package/dist/seo/link-suggest.d.ts.map +1 -1
  396. package/dist/seo/link-suggest.js +38 -53
  397. package/dist/seo/link-suggest.js.map +1 -1
  398. package/dist/seo/page-meta.d.ts +1 -10
  399. package/dist/seo/page-meta.d.ts.map +1 -1
  400. package/dist/seo/page-meta.js +1 -1
  401. package/dist/seo/page-meta.js.map +1 -1
  402. package/dist/seo/proposals-bulk-apply.d.ts +3 -2
  403. package/dist/seo/proposals-bulk-apply.d.ts.map +1 -1
  404. package/dist/seo/proposals.d.ts +2 -2
  405. package/dist/seo/proposals.d.ts.map +1 -1
  406. package/dist/seo/rendered-fetch.d.ts +2 -1
  407. package/dist/seo/rendered-fetch.d.ts.map +1 -1
  408. package/dist/seo/score.d.ts +3 -7
  409. package/dist/seo/score.d.ts.map +1 -1
  410. package/dist/seo/score.js.map +1 -1
  411. package/dist/seo/search-console/client.d.ts +0 -4
  412. package/dist/seo/search-console/client.d.ts.map +1 -1
  413. package/dist/seo/search-console/client.js +2 -2
  414. package/dist/seo/search-console/client.js.map +1 -1
  415. package/dist/seo/search-console/sync.d.ts +0 -4
  416. package/dist/seo/search-console/sync.d.ts.map +1 -1
  417. package/dist/seo/search-console/sync.js +2 -2
  418. package/dist/seo/search-console/sync.js.map +1 -1
  419. package/dist/seo/search-console/types.d.ts +2 -1
  420. package/dist/seo/search-console/types.d.ts.map +1 -1
  421. package/dist/seo/sitemap-notify.d.ts +0 -8
  422. package/dist/seo/sitemap-notify.d.ts.map +1 -1
  423. package/dist/seo/sitemap-notify.js +1 -1
  424. package/dist/seo/sitemap-notify.js.map +1 -1
  425. package/dist/seo/title-templates.d.ts +2 -5
  426. package/dist/seo/title-templates.d.ts.map +1 -1
  427. package/dist/seo/title-templates.js +2 -2
  428. package/dist/seo/title-templates.js.map +1 -1
  429. package/dist/server-site.d.ts +0 -1
  430. package/dist/server-site.d.ts.map +1 -1
  431. package/dist/server-site.js +0 -1
  432. package/dist/server-site.js.map +1 -1
  433. package/dist/storage/index.d.ts +0 -2
  434. package/dist/storage/index.d.ts.map +1 -1
  435. package/dist/storage/index.js +0 -4
  436. package/dist/storage/index.js.map +1 -1
  437. package/dist/upgrade/version-check.d.ts +0 -2
  438. package/dist/upgrade/version-check.d.ts.map +1 -1
  439. package/dist/upgrade/version-check.js +1 -1
  440. package/dist/upgrade/version-check.js.map +1 -1
  441. package/dist/webhooks/index.d.ts +0 -8
  442. package/dist/webhooks/index.d.ts.map +1 -1
  443. package/dist/webhooks/index.js +1 -16
  444. package/dist/webhooks/index.js.map +1 -1
  445. package/package.json +1 -1
  446. package/prisma/migrations/0019_drop_content_graph/migration.sql +4 -0
  447. package/prisma/schema.prisma +0 -1
  448. package/dist/api/auth-context.d.ts +0 -3
  449. package/dist/api/auth-context.d.ts.map +0 -1
  450. package/dist/api/auth-context.js +0 -3
  451. package/dist/api/auth-context.js.map +0 -1
  452. package/dist/api/limiters.d.ts +0 -3
  453. package/dist/api/limiters.d.ts.map +0 -1
  454. package/dist/api/limiters.js +0 -3
  455. package/dist/api/limiters.js.map +0 -1
  456. package/dist/content/content-graph.d.ts +0 -25
  457. package/dist/content/content-graph.d.ts.map +0 -1
  458. package/dist/content/content-graph.js +0 -40
  459. package/dist/content/content-graph.js.map +0 -1
  460. package/dist/db/index.d.ts +0 -9
  461. package/dist/db/index.d.ts.map +0 -1
  462. package/dist/db/index.js +0 -5
  463. package/dist/db/index.js.map +0 -1
  464. package/dist/next/preview.d.ts +0 -10
  465. package/dist/next/preview.d.ts.map +0 -1
  466. package/dist/next/preview.js +0 -17
  467. package/dist/next/preview.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/ai/catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/ai/catalog.ts"],"names":[],"mappings":"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"}
@@ -12,13 +12,17 @@
12
12
  * providers through {@link toPublicProvider}.
13
13
  * - When a provider's env var is set, that key wins and the UI shows it as
14
14
  * env-managed/read-only.
15
+ * - A provider env var with no stored connection yields a read-time
16
+ * `env:<provider>` connection (zero-config bootstrap); it is never
17
+ * persisted and cannot be edited or deleted through the API.
15
18
  */
16
- import type { AIBudgetSettings, AIConfigDocument, AIKeySource, AIProviderConnection, AIProviderConnectionPublic, AIProviderKey, AISettings } from './types.js';
19
+ import type { AIBudgetSettings, AIConfigDocument, AIProviderConnection, AIProviderConnectionPublic, AIProviderKey, AISettings } from './types.js';
17
20
  export declare const AI_CONFIG_COLLECTION = "__ai_config__";
18
21
  export declare const DEFAULT_AI_BUDGET: AIBudgetSettings;
19
22
  export declare function defaultAISettings(): AISettings;
20
23
  /** Read the env-managed key for a provider, if present and non-empty. */
21
24
  export declare function getEnvApiKey(provider: AIProviderKey): string | null;
25
+ export declare function isEnvConnectionId(id: string): boolean;
22
26
  /** Last 4 chars of a key for masked display (never the full value). */
23
27
  export declare function last4(key: string | undefined | null): string | undefined;
24
28
  /**
@@ -27,8 +31,6 @@ export declare function last4(key: string | undefined | null): string | undefine
27
31
  * Returns null when neither exists.
28
32
  */
29
33
  export declare function resolveProviderKey(conn: Pick<AIProviderConnection, 'provider' | 'apiKeyEncrypted'>): Promise<string | null>;
30
- /** Determine where a connection's key comes from for UI display. */
31
- export declare function resolveKeySource(conn: AIProviderConnection): AIKeySource;
32
34
  /** Strip key material and add UI-facing source metadata. */
33
35
  export declare function toPublicProvider(conn: AIProviderConnection): AIProviderConnectionPublic;
34
36
  /** Encrypt a plaintext key for storage and compute its masked suffix. */
@@ -40,11 +42,23 @@ export declare function encryptProviderKey(plaintext: string): Promise<{
40
42
  * Read the AI config document. Returns a fully-populated object (defaults +
41
43
  * merged feature flags) even when no row exists yet, so callers never special-
42
44
  * case the empty state.
45
+ *
46
+ * Fail closed: env connections are bootstrapped only when the read succeeded
47
+ * (a row was found, or the store genuinely has none). When the read throws —
48
+ * or the client has no `document` model at all — the stored governance
49
+ * (feature toggles, caps, budget, brand voice) is unknown, so returning
50
+ * default settings *plus* an env-bootstrapped provider would let a transient
51
+ * DB failure run governed features ungoverned. Instead the result carries no
52
+ * providers, and the runtime refuses with `no_model`.
43
53
  */
44
54
  export declare function getAIConfig(db: unknown): Promise<AIConfigDocument>;
45
55
  /**
46
56
  * Upsert the AI config document. Caller is responsible for auth/role checks.
47
- * Stamps `updatedAt`/`updatedBy`.
57
+ * Stamps `updatedAt`/`updatedBy`. Env-synthesized connections (`env:*`) are
58
+ * stripped before the write so the zero-config bootstrap never leaks into
59
+ * storage; the returned document re-applies them so it matches what
60
+ * {@link getAIConfig} would read back. Catalog entries keyed by a connection
61
+ * id that is neither stored nor env-visible are pruned in the same write.
48
62
  */
49
63
  export declare function putAIConfig(db: unknown, next: AIConfigDocument, userId: string): Promise<AIConfigDocument>;
50
64
  /** Serialize a full config doc for the client (providers masked). */
@@ -1 +1 @@
1
- {"version":3,"file":"config-store.d.ts","sourceRoot":"","sources":["../../src/ai/config-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,oBAAoB,EACpB,0BAA0B,EAC1B,aAAa,EACb,UAAU,EACX,MAAM,YAAY,CAAA;AAEnB,eAAO,MAAM,oBAAoB,kBAAkB,CAAA;AAUnD,eAAO,MAAM,iBAAiB,EAAE,gBAG/B,CAAA;AAED,wBAAgB,iBAAiB,IAAI,UAAU,CAM9C;AAED,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAKnE;AAED,uEAAuE;AACvE,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAIxE;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,IAAI,CAAC,oBAAoB,EAAE,UAAU,GAAG,iBAAiB,CAAC,GAC/D,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAWxB;AAED,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,WAAW,CAIxE;AAED,4DAA4D;AAC5D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,0BAA0B,CAcvF;AAED,yEAAyE;AACzE,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAG3D;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA4BxE;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,EAAE,EAAE,OAAO,EACX,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,gBAAgB,CAAC,CA2B3B;AAED,qEAAqE;AACrE,wBAAgB,cAAc,CAAC,GAAG,EAAE,gBAAgB,GAAG;IACrD,SAAS,EAAE,0BAA0B,EAAE,CAAA;IACvC,QAAQ,EAAE,UAAU,CAAA;CACrB,CAKA"}
1
+ {"version":3,"file":"config-store.d.ts","sourceRoot":"","sources":["../../src/ai/config-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAEhB,oBAAoB,EACpB,0BAA0B,EAC1B,aAAa,EACb,UAAU,EACX,MAAM,YAAY,CAAA;AAEnB,eAAO,MAAM,oBAAoB,kBAAkB,CAAA;AAUnD,eAAO,MAAM,iBAAiB,EAAE,gBAE/B,CAAA;AAED,wBAAgB,iBAAiB,IAAI,UAAU,CAK9C;AAED,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAKnE;AAKD,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAErD;AAmCD,uEAAuE;AACvE,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAIxE;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,IAAI,CAAC,oBAAoB,EAAE,UAAU,GAAG,iBAAiB,CAAC,GAC/D,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAWxB;AASD,4DAA4D;AAC5D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,0BAA0B,CAcvF;AAED,yEAAyE;AACzE,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAG3D;AAkCD;;;;;;;;;;;;GAYG;AACH,wBAAsB,WAAW,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA0BxE;AAiBD;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAC/B,EAAE,EAAE,OAAO,EACX,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,gBAAgB,CAAC,CA+B3B;AAED,qEAAqE;AACrE,wBAAgB,cAAc,CAAC,GAAG,EAAE,gBAAgB,GAAG;IACrD,SAAS,EAAE,0BAA0B,EAAE,CAAA;IACvC,QAAQ,EAAE,UAAU,CAAA;CACrB,CAKA"}
@@ -12,6 +12,9 @@
12
12
  * providers through {@link toPublicProvider}.
13
13
  * - When a provider's env var is set, that key wins and the UI shows it as
14
14
  * env-managed/read-only.
15
+ * - A provider env var with no stored connection yields a read-time
16
+ * `env:<provider>` connection (zero-config bootstrap); it is never
17
+ * persisted and cannot be edited or deleted through the API.
15
18
  */
16
19
  import { decryptSecret, encryptSecret } from '../security/secret-storage.js';
17
20
  import { cloneFeatureDefaults, mergeFeatures } from './feature-defaults.js';
@@ -24,14 +27,12 @@ const ENV_KEY_BY_PROVIDER = {
24
27
  custom: null,
25
28
  };
26
29
  export const DEFAULT_AI_BUDGET = {
27
- alertAtPercentages: [50, 80, 100],
28
30
  disableWhenExceeded: false,
29
31
  };
30
32
  export function defaultAISettings() {
31
33
  return {
32
34
  features: cloneFeatureDefaults(),
33
- budget: { ...DEFAULT_AI_BUDGET, alertAtPercentages: [...DEFAULT_AI_BUDGET.alertAtPercentages] },
34
- logsRetentionDays: 30,
35
+ budget: { ...DEFAULT_AI_BUDGET },
35
36
  };
36
37
  }
37
38
  /** Read the env-managed key for a provider, if present and non-empty. */
@@ -42,6 +43,43 @@ export function getEnvApiKey(provider) {
42
43
  const val = process.env[envVar];
43
44
  return val && val.trim() ? val.trim() : null;
44
45
  }
46
+ /** Id prefix for connections synthesized from a provider env var at read time. */
47
+ const ENV_CONNECTION_PREFIX = 'env:';
48
+ export function isEnvConnectionId(id) {
49
+ return id.startsWith(ENV_CONNECTION_PREFIX);
50
+ }
51
+ const ENV_DISPLAY_NAME = {
52
+ openai: 'OpenAI (environment)',
53
+ anthropic: 'Anthropic (environment)',
54
+ xai: 'xAI (environment)',
55
+ };
56
+ /**
57
+ * Zero-config path: a host that only set `OPENAI_API_KEY` (or Anthropic / xAI)
58
+ * gets an enabled, env-managed connection without visiting Settings > AI.
59
+ * Synthesized at read time only — {@link putAIConfig} strips these so they are
60
+ * never persisted, and a stored connection for the same provider suppresses
61
+ * the synthetic one.
62
+ */
63
+ function withEnvConnections(stored) {
64
+ const present = new Set(stored.map((p) => p.provider));
65
+ const out = [...stored];
66
+ for (const provider of ['openai', 'anthropic', 'xai']) {
67
+ if (present.has(provider) || !getEnvApiKey(provider))
68
+ continue;
69
+ const now = '1970-01-01T00:00:00.000Z';
70
+ out.push({
71
+ id: `${ENV_CONNECTION_PREFIX}${provider}`,
72
+ provider,
73
+ displayName: ENV_DISPLAY_NAME[provider],
74
+ enabled: true,
75
+ status: 'unknown',
76
+ createdAt: now,
77
+ updatedAt: now,
78
+ updatedBy: 'system',
79
+ });
80
+ }
81
+ return out;
82
+ }
45
83
  /** Last 4 chars of a key for masked display (never the full value). */
46
84
  export function last4(key) {
47
85
  if (!key)
@@ -69,7 +107,7 @@ export async function resolveProviderKey(conn) {
69
107
  return null;
70
108
  }
71
109
  /** Determine where a connection's key comes from for UI display. */
72
- export function resolveKeySource(conn) {
110
+ function resolveKeySource(conn) {
73
111
  if (getEnvApiKey(conn.provider))
74
112
  return 'environment';
75
113
  if (conn.apiKeyEncrypted)
@@ -97,51 +135,108 @@ export async function encryptProviderKey(plaintext) {
97
135
  const apiKeyEncrypted = await encryptSecret(plaintext);
98
136
  return { apiKeyEncrypted, apiKeyLast4: last4(plaintext) ?? '' };
99
137
  }
138
+ /**
139
+ * Hydrate `settings` field by field from the stored partial. Explicit on
140
+ * purpose: a stored document that predates Spec B may still carry removed keys
141
+ * (`logsRetentionDays`, `defaultEmbeddingModelId`, `budget.alertAtPercentages`,
142
+ * …); spreading it would leak them back into the runtime object.
143
+ */
144
+ function hydrateSettings(stored) {
145
+ const budget = (stored.budget ?? {});
146
+ const settings = {
147
+ features: mergeFeatures(stored.features),
148
+ budget: {
149
+ ...DEFAULT_AI_BUDGET,
150
+ ...(typeof budget.monthlyTokenLimit === 'number'
151
+ ? { monthlyTokenLimit: budget.monthlyTokenLimit }
152
+ : {}),
153
+ disableWhenExceeded: budget.disableWhenExceeded ?? DEFAULT_AI_BUDGET.disableWhenExceeded,
154
+ },
155
+ };
156
+ if (stored.defaultProviderId !== undefined)
157
+ settings.defaultProviderId = stored.defaultProviderId;
158
+ if (stored.defaultModelId !== undefined)
159
+ settings.defaultModelId = stored.defaultModelId;
160
+ if (stored.defaultTextModelId !== undefined)
161
+ settings.defaultTextModelId = stored.defaultTextModelId;
162
+ if (stored.defaultReasoningModelId !== undefined)
163
+ settings.defaultReasoningModelId = stored.defaultReasoningModelId;
164
+ if (stored.defaultVisionModelId !== undefined)
165
+ settings.defaultVisionModelId = stored.defaultVisionModelId;
166
+ if (stored.defaultImageGenerationModelId !== undefined)
167
+ settings.defaultImageGenerationModelId = stored.defaultImageGenerationModelId;
168
+ if (stored.brandVoice !== undefined)
169
+ settings.brandVoice = stored.brandVoice;
170
+ return settings;
171
+ }
100
172
  /**
101
173
  * Read the AI config document. Returns a fully-populated object (defaults +
102
174
  * merged feature flags) even when no row exists yet, so callers never special-
103
175
  * case the empty state.
176
+ *
177
+ * Fail closed: env connections are bootstrapped only when the read succeeded
178
+ * (a row was found, or the store genuinely has none). When the read throws —
179
+ * or the client has no `document` model at all — the stored governance
180
+ * (feature toggles, caps, budget, brand voice) is unknown, so returning
181
+ * default settings *plus* an env-bootstrapped provider would let a transient
182
+ * DB failure run governed features ungoverned. Instead the result carries no
183
+ * providers, and the runtime refuses with `no_model`.
104
184
  */
105
185
  export async function getAIConfig(db) {
106
186
  const d = db;
107
- const empty = { providers: [], settings: defaultAISettings() };
187
+ const closed = () => ({ providers: [], settings: defaultAISettings() });
108
188
  if (!d?.document?.findFirst)
109
- return empty;
189
+ return closed();
110
190
  try {
111
191
  const doc = await d.document.findFirst({
112
192
  where: { collection: AI_CONFIG_COLLECTION, deletedAt: null },
113
193
  select: { data: true },
114
194
  });
115
- if (!doc?.data || typeof doc.data !== 'object')
116
- return empty;
195
+ if (!doc?.data || typeof doc.data !== 'object') {
196
+ // Read succeeded and no config row exists yet: zero-config bootstrap.
197
+ return { providers: withEnvConnections([]), settings: defaultAISettings() };
198
+ }
117
199
  const data = doc.data;
118
- const settings = (data.settings ?? {});
119
200
  return {
120
- providers: Array.isArray(data.providers) ? data.providers : [],
121
- settings: {
122
- ...defaultAISettings(),
123
- ...settings,
124
- features: mergeFeatures(settings.features),
125
- budget: { ...DEFAULT_AI_BUDGET, ...(settings.budget ?? {}) },
126
- logsRetentionDays: settings.logsRetentionDays ?? 30,
127
- },
201
+ providers: withEnvConnections(Array.isArray(data.providers) ? data.providers : []),
202
+ settings: hydrateSettings((data.settings ?? {})),
128
203
  catalog: data.catalog,
129
204
  updatedAt: data.updatedAt,
130
205
  updatedBy: data.updatedBy,
131
206
  };
132
207
  }
133
208
  catch {
134
- return empty;
209
+ return closed();
135
210
  }
136
211
  }
212
+ /**
213
+ * Drop catalog entries for connections that are no longer visible. `visible`
214
+ * is what {@link getAIConfig} would return for the persisted providers — so
215
+ * `catalog['env:openai']` survives while the env row is the only OpenAI
216
+ * connection and is pruned once a stored OpenAI connection suppresses it.
217
+ */
218
+ function pruneCatalog(catalog, visible) {
219
+ if (!catalog)
220
+ return catalog;
221
+ const ids = new Set(visible.map((p) => p.id));
222
+ return Object.fromEntries(Object.entries(catalog).filter(([id]) => ids.has(id)));
223
+ }
137
224
  /**
138
225
  * Upsert the AI config document. Caller is responsible for auth/role checks.
139
- * Stamps `updatedAt`/`updatedBy`.
226
+ * Stamps `updatedAt`/`updatedBy`. Env-synthesized connections (`env:*`) are
227
+ * stripped before the write so the zero-config bootstrap never leaks into
228
+ * storage; the returned document re-applies them so it matches what
229
+ * {@link getAIConfig} would read back. Catalog entries keyed by a connection
230
+ * id that is neither stored nor env-visible are pruned in the same write.
140
231
  */
141
232
  export async function putAIConfig(db, next, userId) {
142
233
  const d = db;
234
+ const providers = next.providers.filter((p) => !isEnvConnectionId(p.id));
235
+ const visible = withEnvConnections(providers);
143
236
  const data = {
144
237
  ...next,
238
+ providers,
239
+ catalog: pruneCatalog(next.catalog, visible),
145
240
  updatedAt: new Date().toISOString(),
146
241
  updatedBy: userId,
147
242
  };
@@ -165,7 +260,7 @@ export async function putAIConfig(db, next, userId) {
165
260
  },
166
261
  });
167
262
  }
168
- return data;
263
+ return { ...data, providers: visible };
169
264
  }
170
265
  /** Serialize a full config doc for the client (providers masked). */
171
266
  export function toPublicConfig(doc) {
@@ -1 +1 @@
1
- {"version":3,"file":"config-store.js","sourceRoot":"","sources":["../../src/ai/config-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-store.js","sourceRoot":"","sources":["../../src/ai/config-store.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,11 @@
1
1
  /**
2
- * Content-writing generation with legacy plugin-ai fallback.
3
- *
4
- * Brand voice analyze/fix and co-author share the governed Settings > AI path
5
- * first. When that path is not fully configured (no default model, missing key,
6
- * etc.) we fall back to @prenta/plugin-ai so existing installs keep
7
- * working.
2
+ * Content-writing generation through the governed Settings > AI path. Brand
3
+ * voice analyze/fix share this helper; it maps runtime refusals to the same
4
+ * `{ status, message, code, hint }` contract `runtimeErrorToResponse` uses (via
5
+ * `describeRuntimeError`), so routes can emit `{ error, code, hint }` bodies
6
+ * identical to every other AI route.
8
7
  */
9
- import { type GenerateForFeatureInput } from './runtime.js';
8
+ import { type GenerateForFeatureInput, type RuntimeErrorCode } from './runtime.js';
10
9
  export type ContentWritingGenerateResult = {
11
10
  ok: true;
12
11
  text: string;
@@ -14,6 +13,9 @@ export type ContentWritingGenerateResult = {
14
13
  ok: false;
15
14
  httpStatus: number;
16
15
  message: string;
16
+ code: RuntimeErrorCode;
17
+ /** Operator-facing next step; present only for the 503 "not configured" codes. */
18
+ hint?: string;
17
19
  };
18
- export declare function generateContentWritingWithFallback(db: unknown, input: GenerateForFeatureInput): Promise<ContentWritingGenerateResult>;
20
+ export declare function generateContentWriting(db: unknown, input: GenerateForFeatureInput): Promise<ContentWritingGenerateResult>;
19
21
  //# sourceMappingURL=content-writing-generate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"content-writing-generate.d.ts","sourceRoot":"","sources":["../../src/ai/content-writing-generate.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAEL,KAAK,uBAAuB,EAE7B,MAAM,cAAc,CAAA;AAErB,MAAM,MAAM,4BAA4B,GACpC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC1B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAkCtD,wBAAsB,kCAAkC,CACtD,EAAE,EAAE,OAAO,EACX,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,4BAA4B,CAAC,CAuCvC"}
1
+ {"version":3,"file":"content-writing-generate.d.ts","sourceRoot":"","sources":["../../src/ai/content-writing-generate.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACtB,MAAM,cAAc,CAAA;AAGrB,MAAM,MAAM,4BAA4B,GACpC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC1B;IACE,EAAE,EAAE,KAAK,CAAA;IACT,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,gBAAgB,CAAA;IACtB,kFAAkF;IAClF,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAEL,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,OAAO,EACX,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,4BAA4B,CAAC,CAqBvC"}
@@ -1,67 +1,32 @@
1
1
  /**
2
- * Content-writing generation with legacy plugin-ai fallback.
3
- *
4
- * Brand voice analyze/fix and co-author share the governed Settings > AI path
5
- * first. When that path is not fully configured (no default model, missing key,
6
- * etc.) we fall back to @prenta/plugin-ai so existing installs keep
7
- * working.
2
+ * Content-writing generation through the governed Settings > AI path. Brand
3
+ * voice analyze/fix share this helper; it maps runtime refusals to the same
4
+ * `{ status, message, code, hint }` contract `runtimeErrorToResponse` uses (via
5
+ * `describeRuntimeError`), so routes can emit `{ error, code, hint }` bodies
6
+ * identical to every other AI route.
8
7
  */
9
8
  import { generateTextForFeature, } from './runtime.js';
10
- async function importAIPlugin() {
11
- const mod = '@prenta/' + 'plugin-ai';
12
- return import(/* webpackIgnore: true */ /* turbopackIgnore: true */ /* @vite-ignore */ mod);
13
- }
14
- function setupHint(code) {
15
- switch (code) {
16
- case 'no_model':
17
- return ('No default AI model is selected. In Settings > AI, choose a default model ' +
18
- 'in the AI Assistant card and click Save changes.');
19
- case 'no_key':
20
- return ('No API key is available for the connected provider. Add a key under ' +
21
- 'Provider connections or set the provider API key env var on your host.');
22
- case 'no_provider':
23
- return ('No AI provider can serve the selected model. Check Provider connections, ' +
24
- 'refresh models, and save your default model.');
25
- default:
26
- return ('AI is not fully configured for content writing. Open Settings > AI, connect ' +
27
- 'a provider, choose a default model, and click Save changes.');
28
- }
29
- }
30
- export async function generateContentWritingWithFallback(db, input) {
31
- const FEATURE = 'ai.features.contentWriting';
32
- const result = await generateTextForFeature(db, FEATURE, input);
9
+ import { describeRuntimeError } from './runtime-response.js';
10
+ export async function generateContentWriting(db, input) {
11
+ const result = await generateTextForFeature(db, 'ai.features.contentWriting', input);
33
12
  if (result.ok) {
34
- return { ok: true, text: result.text };
35
- }
36
- if (result.code === 'feature_disabled') {
37
- return { ok: false, httpStatus: 403, message: result.message };
38
- }
39
- if (result.code === 'budget_exceeded') {
40
- return { ok: false, httpStatus: 429, message: result.message };
41
- }
42
- if (result.code === 'rate_limited') {
43
- return { ok: false, httpStatus: 429, message: result.message };
44
- }
45
- if (result.code === 'provider_error') {
46
- return { ok: false, httpStatus: 502, message: `AI provider error: ${result.message}` };
47
- }
48
- if (result.code === 'no_provider' || result.code === 'no_model' || result.code === 'no_key') {
49
- try {
50
- const aiModule = await importAIPlugin();
51
- if (typeof aiModule.generate !== 'function') {
52
- return { ok: false, httpStatus: 501, message: setupHint(result.code) };
53
- }
54
- const parts = [input.system?.trim(), input.prompt.trim()].filter(Boolean);
55
- const text = await aiModule.generate(parts.join('\n\n'));
56
- if (!text?.trim()) {
57
- return { ok: false, httpStatus: 502, message: 'AI returned an empty response.' };
58
- }
59
- return { ok: true, text: text.trim() };
60
- }
61
- catch {
62
- return { ok: false, httpStatus: 503, message: setupHint(result.code) };
13
+ if (!result.text.trim()) {
14
+ return {
15
+ ok: false,
16
+ httpStatus: 502,
17
+ code: 'invalid_output',
18
+ message: 'AI returned an empty response.',
19
+ };
63
20
  }
21
+ return { ok: true, text: result.text.trim() };
64
22
  }
65
- return { ok: false, httpStatus: 502, message: result.message };
23
+ const { status, message, hint } = describeRuntimeError(result);
24
+ return {
25
+ ok: false,
26
+ httpStatus: status,
27
+ code: result.code,
28
+ message,
29
+ ...(hint !== undefined ? { hint } : {}),
30
+ };
66
31
  }
67
32
  //# sourceMappingURL=content-writing-generate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"content-writing-generate.js","sourceRoot":"","sources":["../../src/ai/content-writing-generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content-writing-generate.js","sourceRoot":"","sources":["../../src/ai/content-writing-generate.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,sBAAsB,GAGvB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAa5D,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,EAAW,EACX,KAA8B;IAE9B,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,EAAE,EAAE,4BAA4B,EAAE,KAAK,CAAC,CAAA;IACpF,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACxB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,UAAU,EAAE,GAAG;gBACf,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,gCAAgC;aAC1C,CAAA;QACH,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAA;IAC/C,CAAC;IACD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAA;IAC9D,OAAO;QACL,EAAE,EAAE,KAAK;QACT,UAAU,EAAE,MAAM;QAClB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO;QACP,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxC,CAAA;AACH,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Embedding capability facts shared by the resolver and the runtime. A leaf
3
+ * (imports only the provider adapters) so `resolve.ts` can consult it without
4
+ * a `resolve → runtime → resolve` cycle.
5
+ */
6
+ import type { AIProviderKey } from './types.js';
7
+ /**
8
+ * Default embedding model per provider. Providers absent from this map have no
9
+ * embeddings API — `embedForFeature` returns a typed `no_model` error for them
10
+ * and callers fall back to their non-AI behavior.
11
+ */
12
+ export declare const EMBEDDING_MODELS: Partial<Record<AIProviderKey, string>>;
13
+ /**
14
+ * Features whose model call is `embedForFeature`, not text generation. They
15
+ * declare `requiredCapabilities: ['text']` (the embedding model is provider-
16
+ * fixed, see `EMBEDDING_MODELS`), so the resolver uses this set to prefer a
17
+ * connection that can actually embed when picking a provider default.
18
+ */
19
+ export declare const EMBEDDING_FEATURES: ReadonlySet<string>;
20
+ /**
21
+ * Whether `embedForFeature` can serve a provider at all: the adapter must
22
+ * implement embeddings AND the runtime must know which model to send.
23
+ * Availability probes (e.g. `/seo/links/ai-index`) combine this with
24
+ * `resolveFeatureRuntime` so a text-resolvable Anthropic/xAI site is not
25
+ * advertised as having semantic link suggestions it will never produce.
26
+ */
27
+ export declare function embeddingsAvailableForProvider(provider: AIProviderKey): boolean;
28
+ //# sourceMappingURL=embeddings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["../../src/ai/embeddings.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAGnE,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAGjD,CAAA;AAEF;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAE/E"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Embedding capability facts shared by the resolver and the runtime. A leaf
3
+ * (imports only the provider adapters) so `resolve.ts` can consult it without
4
+ * a `resolve → runtime → resolve` cycle.
5
+ */
6
+ import { providerSupportsEmbeddings } from './providers/index.js';
7
+ /**
8
+ * Default embedding model per provider. Providers absent from this map have no
9
+ * embeddings API — `embedForFeature` returns a typed `no_model` error for them
10
+ * and callers fall back to their non-AI behavior.
11
+ */
12
+ export const EMBEDDING_MODELS = {
13
+ openai: 'text-embedding-3-small',
14
+ custom: 'text-embedding-3-small',
15
+ };
16
+ /**
17
+ * Features whose model call is `embedForFeature`, not text generation. They
18
+ * declare `requiredCapabilities: ['text']` (the embedding model is provider-
19
+ * fixed, see `EMBEDDING_MODELS`), so the resolver uses this set to prefer a
20
+ * connection that can actually embed when picking a provider default.
21
+ */
22
+ export const EMBEDDING_FEATURES = new Set([
23
+ 'ai.features.seoInternalLinks',
24
+ 'ai.features.seo404Recovery',
25
+ ]);
26
+ /**
27
+ * Whether `embedForFeature` can serve a provider at all: the adapter must
28
+ * implement embeddings AND the runtime must know which model to send.
29
+ * Availability probes (e.g. `/seo/links/ai-index`) combine this with
30
+ * `resolveFeatureRuntime` so a text-resolvable Anthropic/xAI site is not
31
+ * advertised as having semantic link suggestions it will never produce.
32
+ */
33
+ export function embeddingsAvailableForProvider(provider) {
34
+ return providerSupportsEmbeddings(provider) && EMBEDDING_MODELS[provider] !== undefined;
35
+ }
36
+ //# sourceMappingURL=embeddings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddings.js","sourceRoot":"","sources":["../../src/ai/embeddings.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAA;AAGjE;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA2C;IACtE,MAAM,EAAE,wBAAwB;IAChC,MAAM,EAAE,wBAAwB;CACjC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAwB,IAAI,GAAG,CAAC;IAC7D,8BAA8B;IAC9B,4BAA4B;CAC7B,CAAC,CAAA;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,8BAA8B,CAAC,QAAuB;IACpE,OAAO,0BAA0B,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAA;AACzF,CAAC"}
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Default AI feature catalog. These are the global feature flags surfaced in
3
- * Settings > AI and (from Phase 3) enforced across CMS modules via
4
- * `isAiFeatureEnabled(key)`. Seeded into the `__ai_config__` document on first
5
- * write; admins toggle `enabled` per feature.
3
+ * Settings > AI and enforced across CMS modules by the governed runtime
4
+ * (`resolveFeatureRuntime` enforces the toggle). Seeded into the
5
+ * `__ai_config__` document on first write; admins toggle `enabled` per feature.
6
6
  *
7
7
  * Keys follow the `ai.features.*` convention so a single shared service governs
8
8
  * every module instead of per-module flags.
@@ -1 +1 @@
1
- {"version":3,"file":"feature-defaults.d.ts","sourceRoot":"","sources":["../../src/ai/feature-defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,eAAO,MAAM,mBAAmB,EAAE,eAAe,EAiDhD,CAAA;AAED,mEAAmE;AACnE,wBAAgB,oBAAoB,IAAI,eAAe,EAAE,CAQxD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,SAAS,GAAG,eAAe,EAAE,CAmBtF"}
1
+ {"version":3,"file":"feature-defaults.d.ts","sourceRoot":"","sources":["../../src/ai/feature-defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,eAAO,MAAM,mBAAmB,EAAE,eAAe,EAgEhD,CAAA;AAED,mEAAmE;AACnE,wBAAgB,oBAAoB,IAAI,eAAe,EAAE,CAMxD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,SAAS,GAAG,eAAe,EAAE,CAkBtF"}