@krantho/api 0.0.0-stage → 1.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 (675) hide show
  1. package/LICENSE +21 -0
  2. package/dist/active-locales.d.ts +11 -0
  3. package/dist/active-locales.d.ts.map +1 -0
  4. package/dist/active-locales.js +31 -0
  5. package/dist/active-locales.js.map +1 -0
  6. package/dist/assistant/access.d.ts +25 -0
  7. package/dist/assistant/access.d.ts.map +1 -0
  8. package/dist/assistant/access.js +35 -0
  9. package/dist/assistant/access.js.map +1 -0
  10. package/dist/assistant/agent-loop.d.ts +31 -0
  11. package/dist/assistant/agent-loop.d.ts.map +1 -0
  12. package/dist/assistant/agent-loop.js +183 -0
  13. package/dist/assistant/agent-loop.js.map +1 -0
  14. package/dist/assistant/call-handler.d.ts +15 -0
  15. package/dist/assistant/call-handler.d.ts.map +1 -0
  16. package/dist/assistant/call-handler.js +24 -0
  17. package/dist/assistant/call-handler.js.map +1 -0
  18. package/dist/assistant/chat-handler.d.ts +8 -0
  19. package/dist/assistant/chat-handler.d.ts.map +1 -0
  20. package/dist/assistant/chat-handler.js +79 -0
  21. package/dist/assistant/chat-handler.js.map +1 -0
  22. package/dist/assistant/chat-request.d.ts +16 -0
  23. package/dist/assistant/chat-request.d.ts.map +1 -0
  24. package/dist/assistant/chat-request.js +59 -0
  25. package/dist/assistant/chat-request.js.map +1 -0
  26. package/dist/assistant/confirm-handler.d.ts +3 -0
  27. package/dist/assistant/confirm-handler.d.ts.map +1 -0
  28. package/dist/assistant/confirm-handler.js +39 -0
  29. package/dist/assistant/confirm-handler.js.map +1 -0
  30. package/dist/assistant/document-change.d.ts +22 -0
  31. package/dist/assistant/document-change.d.ts.map +1 -0
  32. package/dist/assistant/document-change.js +74 -0
  33. package/dist/assistant/document-change.js.map +1 -0
  34. package/dist/assistant/document-lock.d.ts +12 -0
  35. package/dist/assistant/document-lock.d.ts.map +1 -0
  36. package/dist/assistant/document-lock.js +14 -0
  37. package/dist/assistant/document-lock.js.map +1 -0
  38. package/dist/assistant/execute-action.d.ts +19 -0
  39. package/dist/assistant/execute-action.d.ts.map +1 -0
  40. package/dist/assistant/execute-action.js +167 -0
  41. package/dist/assistant/execute-action.js.map +1 -0
  42. package/dist/assistant/pending-action.d.ts +86 -0
  43. package/dist/assistant/pending-action.d.ts.map +1 -0
  44. package/dist/assistant/pending-action.js +104 -0
  45. package/dist/assistant/pending-action.js.map +1 -0
  46. package/dist/assistant/protocol.d.ts +120 -0
  47. package/dist/assistant/protocol.d.ts.map +1 -0
  48. package/dist/assistant/protocol.js +2 -0
  49. package/dist/assistant/protocol.js.map +1 -0
  50. package/dist/assistant/routes.d.ts +4 -0
  51. package/dist/assistant/routes.d.ts.map +1 -0
  52. package/dist/assistant/routes.js +10 -0
  53. package/dist/assistant/routes.js.map +1 -0
  54. package/dist/assistant/sse-stream.d.ts +15 -0
  55. package/dist/assistant/sse-stream.d.ts.map +1 -0
  56. package/dist/assistant/sse-stream.js +61 -0
  57. package/dist/assistant/sse-stream.js.map +1 -0
  58. package/dist/assistant/status-handler.d.ts +8 -0
  59. package/dist/assistant/status-handler.d.ts.map +1 -0
  60. package/dist/assistant/status-handler.js +39 -0
  61. package/dist/assistant/status-handler.js.map +1 -0
  62. package/dist/assistant/system-prompt.d.ts +18 -0
  63. package/dist/assistant/system-prompt.d.ts.map +1 -0
  64. package/dist/assistant/system-prompt.js +48 -0
  65. package/dist/assistant/system-prompt.js.map +1 -0
  66. package/dist/assistant/tool-registry.d.ts +19 -0
  67. package/dist/assistant/tool-registry.d.ts.map +1 -0
  68. package/dist/assistant/tool-registry.js +69 -0
  69. package/dist/assistant/tool-registry.js.map +1 -0
  70. package/dist/assistant/tools/action-tools.d.ts +4 -0
  71. package/dist/assistant/tools/action-tools.d.ts.map +1 -0
  72. package/dist/assistant/tools/action-tools.js +132 -0
  73. package/dist/assistant/tools/action-tools.js.map +1 -0
  74. package/dist/assistant/tools/aeo-tools.d.ts +4 -0
  75. package/dist/assistant/tools/aeo-tools.d.ts.map +1 -0
  76. package/dist/assistant/tools/aeo-tools.js +162 -0
  77. package/dist/assistant/tools/aeo-tools.js.map +1 -0
  78. package/dist/assistant/tools/define-tool.d.ts +55 -0
  79. package/dist/assistant/tools/define-tool.d.ts.map +1 -0
  80. package/dist/assistant/tools/define-tool.js +5 -0
  81. package/dist/assistant/tools/define-tool.js.map +1 -0
  82. package/dist/assistant/tools/draft-tools.d.ts +7 -0
  83. package/dist/assistant/tools/draft-tools.d.ts.map +1 -0
  84. package/dist/assistant/tools/draft-tools.js +105 -0
  85. package/dist/assistant/tools/draft-tools.js.map +1 -0
  86. package/dist/assistant/tools/draft-write.d.ts +49 -0
  87. package/dist/assistant/tools/draft-write.d.ts.map +1 -0
  88. package/dist/assistant/tools/draft-write.js +122 -0
  89. package/dist/assistant/tools/draft-write.js.map +1 -0
  90. package/dist/assistant/tools/faq-fit.d.ts +32 -0
  91. package/dist/assistant/tools/faq-fit.d.ts.map +1 -0
  92. package/dist/assistant/tools/faq-fit.js +96 -0
  93. package/dist/assistant/tools/faq-fit.js.map +1 -0
  94. package/dist/assistant/tools/read-tools.d.ts +13 -0
  95. package/dist/assistant/tools/read-tools.d.ts.map +1 -0
  96. package/dist/assistant/tools/read-tools.js +242 -0
  97. package/dist/assistant/tools/read-tools.js.map +1 -0
  98. package/dist/assistant/tools/seo-tools.d.ts +4 -0
  99. package/dist/assistant/tools/seo-tools.d.ts.map +1 -0
  100. package/dist/assistant/tools/seo-tools.js +152 -0
  101. package/dist/assistant/tools/seo-tools.js.map +1 -0
  102. package/dist/assistant/tools/support.d.ts +35 -0
  103. package/dist/assistant/tools/support.d.ts.map +1 -0
  104. package/dist/assistant/tools/support.js +63 -0
  105. package/dist/assistant/tools/support.js.map +1 -0
  106. package/dist/assistant/untrusted.d.ts +15 -0
  107. package/dist/assistant/untrusted.d.ts.map +1 -0
  108. package/dist/assistant/untrusted.js +27 -0
  109. package/dist/assistant/untrusted.js.map +1 -0
  110. package/dist/assistant/write-policy.d.ts +20 -0
  111. package/dist/assistant/write-policy.d.ts.map +1 -0
  112. package/dist/assistant/write-policy.js +32 -0
  113. package/dist/assistant/write-policy.js.map +1 -0
  114. package/dist/auth-tokens.d.ts +31 -0
  115. package/dist/auth-tokens.d.ts.map +1 -0
  116. package/dist/auth-tokens.js +35 -0
  117. package/dist/auth-tokens.js.map +1 -0
  118. package/dist/content-change.d.ts +16 -0
  119. package/dist/content-change.d.ts.map +1 -0
  120. package/dist/content-change.js +34 -0
  121. package/dist/content-change.js.map +1 -0
  122. package/dist/content-locks.d.ts +27 -0
  123. package/dist/content-locks.d.ts.map +1 -0
  124. package/dist/content-locks.js +40 -0
  125. package/dist/content-locks.js.map +1 -0
  126. package/dist/cookies.d.ts +19 -0
  127. package/dist/cookies.d.ts.map +1 -0
  128. package/dist/cookies.js +52 -0
  129. package/dist/cookies.js.map +1 -0
  130. package/dist/create-api-handlers.d.ts +128 -0
  131. package/dist/create-api-handlers.d.ts.map +1 -0
  132. package/dist/create-api-handlers.js +384 -0
  133. package/dist/create-api-handlers.js.map +1 -0
  134. package/dist/document-actions.d.ts +25 -0
  135. package/dist/document-actions.d.ts.map +1 -0
  136. package/dist/document-actions.js +157 -0
  137. package/dist/document-actions.js.map +1 -0
  138. package/dist/document-seo.d.ts +15 -0
  139. package/dist/document-seo.d.ts.map +1 -0
  140. package/dist/document-seo.js +41 -0
  141. package/dist/document-seo.js.map +1 -0
  142. package/dist/group-by-collection.d.ts +6 -0
  143. package/dist/group-by-collection.d.ts.map +1 -0
  144. package/dist/group-by-collection.js +11 -0
  145. package/dist/group-by-collection.js.map +1 -0
  146. package/dist/handlers/apply-metadata-defaults.d.ts +4 -0
  147. package/dist/handlers/apply-metadata-defaults.d.ts.map +1 -0
  148. package/dist/handlers/apply-metadata-defaults.js +108 -0
  149. package/dist/handlers/apply-metadata-defaults.js.map +1 -0
  150. package/dist/handlers/auth-callback.d.ts +4 -0
  151. package/dist/handlers/auth-callback.d.ts.map +1 -0
  152. package/dist/handlers/auth-callback.js +217 -0
  153. package/dist/handlers/auth-callback.js.map +1 -0
  154. package/dist/handlers/auth-capabilities.d.ts +4 -0
  155. package/dist/handlers/auth-capabilities.d.ts.map +1 -0
  156. package/dist/handlers/auth-capabilities.js +19 -0
  157. package/dist/handlers/auth-capabilities.js.map +1 -0
  158. package/dist/handlers/auth-login.d.ts +4 -0
  159. package/dist/handlers/auth-login.d.ts.map +1 -0
  160. package/dist/handlers/auth-login.js +60 -0
  161. package/dist/handlers/auth-login.js.map +1 -0
  162. package/dist/handlers/auth-logout.d.ts +4 -0
  163. package/dist/handlers/auth-logout.d.ts.map +1 -0
  164. package/dist/handlers/auth-logout.js +40 -0
  165. package/dist/handlers/auth-logout.js.map +1 -0
  166. package/dist/handlers/auth-me.d.ts +4 -0
  167. package/dist/handlers/auth-me.d.ts.map +1 -0
  168. package/dist/handlers/auth-me.js +54 -0
  169. package/dist/handlers/auth-me.js.map +1 -0
  170. package/dist/handlers/auth-oidc-login.d.ts +4 -0
  171. package/dist/handlers/auth-oidc-login.d.ts.map +1 -0
  172. package/dist/handlers/auth-oidc-login.js +51 -0
  173. package/dist/handlers/auth-oidc-login.js.map +1 -0
  174. package/dist/handlers/auth-refresh.d.ts +15 -0
  175. package/dist/handlers/auth-refresh.d.ts.map +1 -0
  176. package/dist/handlers/auth-refresh.js +82 -0
  177. package/dist/handlers/auth-refresh.js.map +1 -0
  178. package/dist/handlers/bulk-delete.d.ts +8 -0
  179. package/dist/handlers/bulk-delete.d.ts.map +1 -0
  180. package/dist/handlers/bulk-delete.js +72 -0
  181. package/dist/handlers/bulk-delete.js.map +1 -0
  182. package/dist/handlers/bulk-publish.d.ts +8 -0
  183. package/dist/handlers/bulk-publish.d.ts.map +1 -0
  184. package/dist/handlers/bulk-publish.js +48 -0
  185. package/dist/handlers/bulk-publish.js.map +1 -0
  186. package/dist/handlers/capabilities.d.ts +4 -0
  187. package/dist/handlers/capabilities.d.ts.map +1 -0
  188. package/dist/handlers/capabilities.js +44 -0
  189. package/dist/handlers/capabilities.js.map +1 -0
  190. package/dist/handlers/content-changes.d.ts +28 -0
  191. package/dist/handlers/content-changes.d.ts.map +1 -0
  192. package/dist/handlers/content-changes.js +160 -0
  193. package/dist/handlers/content-changes.js.map +1 -0
  194. package/dist/handlers/content-lock.d.ts +13 -0
  195. package/dist/handlers/content-lock.d.ts.map +1 -0
  196. package/dist/handlers/content-lock.js +109 -0
  197. package/dist/handlers/content-lock.js.map +1 -0
  198. package/dist/handlers/content-tree.d.ts +11 -0
  199. package/dist/handlers/content-tree.d.ts.map +1 -0
  200. package/dist/handlers/content-tree.js +28 -0
  201. package/dist/handlers/content-tree.js.map +1 -0
  202. package/dist/handlers/create-content.d.ts +4 -0
  203. package/dist/handlers/create-content.d.ts.map +1 -0
  204. package/dist/handlers/create-content.js +49 -0
  205. package/dist/handlers/create-content.js.map +1 -0
  206. package/dist/handlers/delete-content.d.ts +4 -0
  207. package/dist/handlers/delete-content.d.ts.map +1 -0
  208. package/dist/handlers/delete-content.js +17 -0
  209. package/dist/handlers/delete-content.js.map +1 -0
  210. package/dist/handlers/delete-runtime-field.d.ts +4 -0
  211. package/dist/handlers/delete-runtime-field.d.ts.map +1 -0
  212. package/dist/handlers/delete-runtime-field.js +43 -0
  213. package/dist/handlers/delete-runtime-field.js.map +1 -0
  214. package/dist/handlers/export-bundle.d.ts +13 -0
  215. package/dist/handlers/export-bundle.d.ts.map +1 -0
  216. package/dist/handlers/export-bundle.js +99 -0
  217. package/dist/handlers/export-bundle.js.map +1 -0
  218. package/dist/handlers/export-content.d.ts +7 -0
  219. package/dist/handlers/export-content.d.ts.map +1 -0
  220. package/dist/handlers/export-content.js +69 -0
  221. package/dist/handlers/export-content.js.map +1 -0
  222. package/dist/handlers/export-schema.d.ts +4 -0
  223. package/dist/handlers/export-schema.d.ts.map +1 -0
  224. package/dist/handlers/export-schema.js +13 -0
  225. package/dist/handlers/export-schema.js.map +1 -0
  226. package/dist/handlers/get-content.d.ts +4 -0
  227. package/dist/handlers/get-content.d.ts.map +1 -0
  228. package/dist/handlers/get-content.js +65 -0
  229. package/dist/handlers/get-content.js.map +1 -0
  230. package/dist/handlers/get-runtime-schema.d.ts +4 -0
  231. package/dist/handlers/get-runtime-schema.d.ts.map +1 -0
  232. package/dist/handlers/get-runtime-schema.js +17 -0
  233. package/dist/handlers/get-runtime-schema.js.map +1 -0
  234. package/dist/handlers/get-schema.d.ts +4 -0
  235. package/dist/handlers/get-schema.d.ts.map +1 -0
  236. package/dist/handlers/get-schema.js +87 -0
  237. package/dist/handlers/get-schema.js.map +1 -0
  238. package/dist/handlers/get-version.d.ts +4 -0
  239. package/dist/handlers/get-version.d.ts.map +1 -0
  240. package/dist/handlers/get-version.js +26 -0
  241. package/dist/handlers/get-version.js.map +1 -0
  242. package/dist/handlers/import-bundle.d.ts +4 -0
  243. package/dist/handlers/import-bundle.d.ts.map +1 -0
  244. package/dist/handlers/import-bundle.js +55 -0
  245. package/dist/handlers/import-bundle.js.map +1 -0
  246. package/dist/handlers/import-content.d.ts +4 -0
  247. package/dist/handlers/import-content.d.ts.map +1 -0
  248. package/dist/handlers/import-content.js +152 -0
  249. package/dist/handlers/import-content.js.map +1 -0
  250. package/dist/handlers/index.d.ts +87 -0
  251. package/dist/handlers/index.d.ts.map +1 -0
  252. package/dist/handlers/index.js +87 -0
  253. package/dist/handlers/index.js.map +1 -0
  254. package/dist/handlers/list-collection.d.ts +8 -0
  255. package/dist/handlers/list-collection.d.ts.map +1 -0
  256. package/dist/handlers/list-collection.js +14 -0
  257. package/dist/handlers/list-collection.js.map +1 -0
  258. package/dist/handlers/list-collections.d.ts +4 -0
  259. package/dist/handlers/list-collections.d.ts.map +1 -0
  260. package/dist/handlers/list-collections.js +17 -0
  261. package/dist/handlers/list-collections.js.map +1 -0
  262. package/dist/handlers/list-content.d.ts +8 -0
  263. package/dist/handlers/list-content.d.ts.map +1 -0
  264. package/dist/handlers/list-content.js +22 -0
  265. package/dist/handlers/list-content.js.map +1 -0
  266. package/dist/handlers/list-query.d.ts +7 -0
  267. package/dist/handlers/list-query.d.ts.map +1 -0
  268. package/dist/handlers/list-query.js +36 -0
  269. package/dist/handlers/list-query.js.map +1 -0
  270. package/dist/handlers/list-versions.d.ts +4 -0
  271. package/dist/handlers/list-versions.d.ts.map +1 -0
  272. package/dist/handlers/list-versions.js +19 -0
  273. package/dist/handlers/list-versions.js.map +1 -0
  274. package/dist/handlers/llm-credential.d.ts +46 -0
  275. package/dist/handlers/llm-credential.d.ts.map +1 -0
  276. package/dist/handlers/llm-credential.js +68 -0
  277. package/dist/handlers/llm-credential.js.map +1 -0
  278. package/dist/handlers/llm-resolve.d.ts +45 -0
  279. package/dist/handlers/llm-resolve.d.ts.map +1 -0
  280. package/dist/handlers/llm-resolve.js +126 -0
  281. package/dist/handlers/llm-resolve.js.map +1 -0
  282. package/dist/handlers/llm-settings.d.ts +19 -0
  283. package/dist/handlers/llm-settings.d.ts.map +1 -0
  284. package/dist/handlers/llm-settings.js +209 -0
  285. package/dist/handlers/llm-settings.js.map +1 -0
  286. package/dist/handlers/media-bulk-delete.d.ts +4 -0
  287. package/dist/handlers/media-bulk-delete.d.ts.map +1 -0
  288. package/dist/handlers/media-bulk-delete.js +19 -0
  289. package/dist/handlers/media-bulk-delete.js.map +1 -0
  290. package/dist/handlers/media-bulk-update.d.ts +4 -0
  291. package/dist/handlers/media-bulk-update.d.ts.map +1 -0
  292. package/dist/handlers/media-bulk-update.js +25 -0
  293. package/dist/handlers/media-bulk-update.js.map +1 -0
  294. package/dist/handlers/media-delete.d.ts +4 -0
  295. package/dist/handlers/media-delete.d.ts.map +1 -0
  296. package/dist/handlers/media-delete.js +27 -0
  297. package/dist/handlers/media-delete.js.map +1 -0
  298. package/dist/handlers/media-duplicate.d.ts +4 -0
  299. package/dist/handlers/media-duplicate.d.ts.map +1 -0
  300. package/dist/handlers/media-duplicate.js +20 -0
  301. package/dist/handlers/media-duplicate.js.map +1 -0
  302. package/dist/handlers/media-folders.d.ts +12 -0
  303. package/dist/handlers/media-folders.d.ts.map +1 -0
  304. package/dist/handlers/media-folders.js +119 -0
  305. package/dist/handlers/media-folders.js.map +1 -0
  306. package/dist/handlers/media-get.d.ts +4 -0
  307. package/dist/handlers/media-get.d.ts.map +1 -0
  308. package/dist/handlers/media-get.js +16 -0
  309. package/dist/handlers/media-get.js.map +1 -0
  310. package/dist/handlers/media-image-info.d.ts +4 -0
  311. package/dist/handlers/media-image-info.d.ts.map +1 -0
  312. package/dist/handlers/media-image-info.js +32 -0
  313. package/dist/handlers/media-image-info.js.map +1 -0
  314. package/dist/handlers/media-image.d.ts +11 -0
  315. package/dist/handlers/media-image.d.ts.map +1 -0
  316. package/dist/handlers/media-image.js +116 -0
  317. package/dist/handlers/media-image.js.map +1 -0
  318. package/dist/handlers/media-info.d.ts +4 -0
  319. package/dist/handlers/media-info.d.ts.map +1 -0
  320. package/dist/handlers/media-info.js +18 -0
  321. package/dist/handlers/media-info.js.map +1 -0
  322. package/dist/handlers/media-list.d.ts +4 -0
  323. package/dist/handlers/media-list.d.ts.map +1 -0
  324. package/dist/handlers/media-list.js +14 -0
  325. package/dist/handlers/media-list.js.map +1 -0
  326. package/dist/handlers/media-register.d.ts +4 -0
  327. package/dist/handlers/media-register.d.ts.map +1 -0
  328. package/dist/handlers/media-register.js +57 -0
  329. package/dist/handlers/media-register.js.map +1 -0
  330. package/dist/handlers/media-replace.d.ts +9 -0
  331. package/dist/handlers/media-replace.d.ts.map +1 -0
  332. package/dist/handlers/media-replace.js +53 -0
  333. package/dist/handlers/media-replace.js.map +1 -0
  334. package/dist/handlers/media-tags.d.ts +4 -0
  335. package/dist/handlers/media-tags.d.ts.map +1 -0
  336. package/dist/handlers/media-tags.js +9 -0
  337. package/dist/handlers/media-tags.js.map +1 -0
  338. package/dist/handlers/media-update.d.ts +4 -0
  339. package/dist/handlers/media-update.d.ts.map +1 -0
  340. package/dist/handlers/media-update.js +64 -0
  341. package/dist/handlers/media-update.js.map +1 -0
  342. package/dist/handlers/media-upload.d.ts +4 -0
  343. package/dist/handlers/media-upload.d.ts.map +1 -0
  344. package/dist/handlers/media-upload.js +26 -0
  345. package/dist/handlers/media-upload.js.map +1 -0
  346. package/dist/handlers/media-usage.d.ts +9 -0
  347. package/dist/handlers/media-usage.d.ts.map +1 -0
  348. package/dist/handlers/media-usage.js +36 -0
  349. package/dist/handlers/media-usage.js.map +1 -0
  350. package/dist/handlers/migration-conflicts.d.ts +13 -0
  351. package/dist/handlers/migration-conflicts.d.ts.map +1 -0
  352. package/dist/handlers/migration-conflicts.js +55 -0
  353. package/dist/handlers/migration-conflicts.js.map +1 -0
  354. package/dist/handlers/migration-status.d.ts +4 -0
  355. package/dist/handlers/migration-status.d.ts.map +1 -0
  356. package/dist/handlers/migration-status.js +34 -0
  357. package/dist/handlers/migration-status.js.map +1 -0
  358. package/dist/handlers/publish-content.d.ts +9 -0
  359. package/dist/handlers/publish-content.d.ts.map +1 -0
  360. package/dist/handlers/publish-content.js +47 -0
  361. package/dist/handlers/publish-content.js.map +1 -0
  362. package/dist/handlers/publish-impact.d.ts +11 -0
  363. package/dist/handlers/publish-impact.d.ts.map +1 -0
  364. package/dist/handlers/publish-impact.js +44 -0
  365. package/dist/handlers/publish-impact.js.map +1 -0
  366. package/dist/handlers/resolve-page.d.ts +9 -0
  367. package/dist/handlers/resolve-page.d.ts.map +1 -0
  368. package/dist/handlers/resolve-page.js +105 -0
  369. package/dist/handlers/resolve-page.js.map +1 -0
  370. package/dist/handlers/restore-version.d.ts +4 -0
  371. package/dist/handlers/restore-version.d.ts.map +1 -0
  372. package/dist/handlers/restore-version.js +69 -0
  373. package/dist/handlers/restore-version.js.map +1 -0
  374. package/dist/handlers/runtime-metadata.d.ts +6 -0
  375. package/dist/handlers/runtime-metadata.d.ts.map +1 -0
  376. package/dist/handlers/runtime-metadata.js +82 -0
  377. package/dist/handlers/runtime-metadata.js.map +1 -0
  378. package/dist/handlers/save-runtime-field.d.ts +4 -0
  379. package/dist/handlers/save-runtime-field.d.ts.map +1 -0
  380. package/dist/handlers/save-runtime-field.js +108 -0
  381. package/dist/handlers/save-runtime-field.js.map +1 -0
  382. package/dist/handlers/search-content.d.ts +9 -0
  383. package/dist/handlers/search-content.d.ts.map +1 -0
  384. package/dist/handlers/search-content.js +40 -0
  385. package/dist/handlers/search-content.js.map +1 -0
  386. package/dist/handlers/seo-config.d.ts +16 -0
  387. package/dist/handlers/seo-config.d.ts.map +1 -0
  388. package/dist/handlers/seo-config.js +250 -0
  389. package/dist/handlers/seo-config.js.map +1 -0
  390. package/dist/handlers/seo-document.d.ts +24 -0
  391. package/dist/handlers/seo-document.d.ts.map +1 -0
  392. package/dist/handlers/seo-document.js +119 -0
  393. package/dist/handlers/seo-document.js.map +1 -0
  394. package/dist/handlers/seo-enrich-archetype.d.ts +71 -0
  395. package/dist/handlers/seo-enrich-archetype.d.ts.map +1 -0
  396. package/dist/handlers/seo-enrich-archetype.js +250 -0
  397. package/dist/handlers/seo-enrich-archetype.js.map +1 -0
  398. package/dist/handlers/seo-enrich-meta.d.ts +40 -0
  399. package/dist/handlers/seo-enrich-meta.d.ts.map +1 -0
  400. package/dist/handlers/seo-enrich-meta.js +121 -0
  401. package/dist/handlers/seo-enrich-meta.js.map +1 -0
  402. package/dist/handlers/seo-enrich-runner.d.ts +65 -0
  403. package/dist/handlers/seo-enrich-runner.d.ts.map +1 -0
  404. package/dist/handlers/seo-enrich-runner.js +192 -0
  405. package/dist/handlers/seo-enrich-runner.js.map +1 -0
  406. package/dist/handlers/seo-enrich.d.ts +10 -0
  407. package/dist/handlers/seo-enrich.d.ts.map +1 -0
  408. package/dist/handlers/seo-enrich.js +166 -0
  409. package/dist/handlers/seo-enrich.js.map +1 -0
  410. package/dist/handlers/seo-generate.d.ts +4 -0
  411. package/dist/handlers/seo-generate.d.ts.map +1 -0
  412. package/dist/handlers/seo-generate.js +31 -0
  413. package/dist/handlers/seo-generate.js.map +1 -0
  414. package/dist/handlers/seo-impact.d.ts +36 -0
  415. package/dist/handlers/seo-impact.d.ts.map +1 -0
  416. package/dist/handlers/seo-impact.js +137 -0
  417. package/dist/handlers/seo-impact.js.map +1 -0
  418. package/dist/handlers/seo-indexnow.d.ts +11 -0
  419. package/dist/handlers/seo-indexnow.d.ts.map +1 -0
  420. package/dist/handlers/seo-indexnow.js +15 -0
  421. package/dist/handlers/seo-indexnow.js.map +1 -0
  422. package/dist/handlers/seo-llms-txt.d.ts +26 -0
  423. package/dist/handlers/seo-llms-txt.d.ts.map +1 -0
  424. package/dist/handlers/seo-llms-txt.js +99 -0
  425. package/dist/handlers/seo-llms-txt.js.map +1 -0
  426. package/dist/handlers/seo-preview.d.ts +8 -0
  427. package/dist/handlers/seo-preview.d.ts.map +1 -0
  428. package/dist/handlers/seo-preview.js +49 -0
  429. package/dist/handlers/seo-preview.js.map +1 -0
  430. package/dist/handlers/seo-robots.d.ts +22 -0
  431. package/dist/handlers/seo-robots.d.ts.map +1 -0
  432. package/dist/handlers/seo-robots.js +48 -0
  433. package/dist/handlers/seo-robots.js.map +1 -0
  434. package/dist/handlers/seo-sitemap.d.ts +68 -0
  435. package/dist/handlers/seo-sitemap.d.ts.map +1 -0
  436. package/dist/handlers/seo-sitemap.js +178 -0
  437. package/dist/handlers/seo-sitemap.js.map +1 -0
  438. package/dist/handlers/seo-status.d.ts +4 -0
  439. package/dist/handlers/seo-status.d.ts.map +1 -0
  440. package/dist/handlers/seo-status.js +61 -0
  441. package/dist/handlers/seo-status.js.map +1 -0
  442. package/dist/handlers/seo-structured-data.d.ts +4 -0
  443. package/dist/handlers/seo-structured-data.d.ts.map +1 -0
  444. package/dist/handlers/seo-structured-data.js +18 -0
  445. package/dist/handlers/seo-structured-data.js.map +1 -0
  446. package/dist/handlers/site-config.d.ts +8 -0
  447. package/dist/handlers/site-config.d.ts.map +1 -0
  448. package/dist/handlers/site-config.js +26 -0
  449. package/dist/handlers/site-config.js.map +1 -0
  450. package/dist/handlers/site-preview.d.ts +10 -0
  451. package/dist/handlers/site-preview.d.ts.map +1 -0
  452. package/dist/handlers/site-preview.js +54 -0
  453. package/dist/handlers/site-preview.js.map +1 -0
  454. package/dist/handlers/site-settings.d.ts +17 -0
  455. package/dist/handlers/site-settings.d.ts.map +1 -0
  456. package/dist/handlers/site-settings.js +75 -0
  457. package/dist/handlers/site-settings.js.map +1 -0
  458. package/dist/handlers/snapshot-create.d.ts +4 -0
  459. package/dist/handlers/snapshot-create.d.ts.map +1 -0
  460. package/dist/handlers/snapshot-create.js +15 -0
  461. package/dist/handlers/snapshot-create.js.map +1 -0
  462. package/dist/handlers/snapshot-delete.d.ts +4 -0
  463. package/dist/handlers/snapshot-delete.d.ts.map +1 -0
  464. package/dist/handlers/snapshot-delete.js +21 -0
  465. package/dist/handlers/snapshot-delete.js.map +1 -0
  466. package/dist/handlers/snapshot-get.d.ts +4 -0
  467. package/dist/handlers/snapshot-get.d.ts.map +1 -0
  468. package/dist/handlers/snapshot-get.js +17 -0
  469. package/dist/handlers/snapshot-get.js.map +1 -0
  470. package/dist/handlers/snapshot-list.d.ts +4 -0
  471. package/dist/handlers/snapshot-list.d.ts.map +1 -0
  472. package/dist/handlers/snapshot-list.js +9 -0
  473. package/dist/handlers/snapshot-list.js.map +1 -0
  474. package/dist/handlers/snapshot-restore.d.ts +4 -0
  475. package/dist/handlers/snapshot-restore.d.ts.map +1 -0
  476. package/dist/handlers/snapshot-restore.js +27 -0
  477. package/dist/handlers/snapshot-restore.js.map +1 -0
  478. package/dist/handlers/translation-status.d.ts +9 -0
  479. package/dist/handlers/translation-status.d.ts.map +1 -0
  480. package/dist/handlers/translation-status.js +68 -0
  481. package/dist/handlers/translation-status.js.map +1 -0
  482. package/dist/handlers/update-content.d.ts +4 -0
  483. package/dist/handlers/update-content.d.ts.map +1 -0
  484. package/dist/handlers/update-content.js +66 -0
  485. package/dist/handlers/update-content.js.map +1 -0
  486. package/dist/handlers/user-create.d.ts +4 -0
  487. package/dist/handlers/user-create.d.ts.map +1 -0
  488. package/dist/handlers/user-create.js +38 -0
  489. package/dist/handlers/user-create.js.map +1 -0
  490. package/dist/handlers/user-delete.d.ts +4 -0
  491. package/dist/handlers/user-delete.d.ts.map +1 -0
  492. package/dist/handlers/user-delete.js +25 -0
  493. package/dist/handlers/user-delete.js.map +1 -0
  494. package/dist/handlers/user-get.d.ts +4 -0
  495. package/dist/handlers/user-get.d.ts.map +1 -0
  496. package/dist/handlers/user-get.js +22 -0
  497. package/dist/handlers/user-get.js.map +1 -0
  498. package/dist/handlers/user-list.d.ts +4 -0
  499. package/dist/handlers/user-list.d.ts.map +1 -0
  500. package/dist/handlers/user-list.js +28 -0
  501. package/dist/handlers/user-list.js.map +1 -0
  502. package/dist/handlers/user-permissions.d.ts +6 -0
  503. package/dist/handlers/user-permissions.d.ts.map +1 -0
  504. package/dist/handlers/user-permissions.js +42 -0
  505. package/dist/handlers/user-permissions.js.map +1 -0
  506. package/dist/handlers/user-update.d.ts +4 -0
  507. package/dist/handlers/user-update.d.ts.map +1 -0
  508. package/dist/handlers/user-update.js +54 -0
  509. package/dist/handlers/user-update.js.map +1 -0
  510. package/dist/handlers/validate-all.d.ts +4 -0
  511. package/dist/handlers/validate-all.d.ts.map +1 -0
  512. package/dist/handlers/validate-all.js +14 -0
  513. package/dist/handlers/validate-all.js.map +1 -0
  514. package/dist/handlers/version-retention.d.ts +6 -0
  515. package/dist/handlers/version-retention.d.ts.map +1 -0
  516. package/dist/handlers/version-retention.js +40 -0
  517. package/dist/handlers/version-retention.js.map +1 -0
  518. package/dist/handlers/webhook-deliveries.d.ts +4 -0
  519. package/dist/handlers/webhook-deliveries.d.ts.map +1 -0
  520. package/dist/handlers/webhook-deliveries.js +24 -0
  521. package/dist/handlers/webhook-deliveries.js.map +1 -0
  522. package/dist/handlers/webhook-retry.d.ts +11 -0
  523. package/dist/handlers/webhook-retry.d.ts.map +1 -0
  524. package/dist/handlers/webhook-retry.js +69 -0
  525. package/dist/handlers/webhook-retry.js.map +1 -0
  526. package/dist/head.d.ts +9 -0
  527. package/dist/head.d.ts.map +1 -0
  528. package/dist/head.js +28 -0
  529. package/dist/head.js.map +1 -0
  530. package/dist/hooks.d.ts +34 -0
  531. package/dist/hooks.d.ts.map +1 -0
  532. package/dist/hooks.js +19 -0
  533. package/dist/hooks.js.map +1 -0
  534. package/dist/image-cache.d.ts +47 -0
  535. package/dist/image-cache.d.ts.map +1 -0
  536. package/dist/image-cache.js +112 -0
  537. package/dist/image-cache.js.map +1 -0
  538. package/dist/image-dimensions.d.ts +12 -0
  539. package/dist/image-dimensions.d.ts.map +1 -0
  540. package/dist/image-dimensions.js +129 -0
  541. package/dist/image-dimensions.js.map +1 -0
  542. package/dist/image-optimizer.d.ts +86 -0
  543. package/dist/image-optimizer.d.ts.map +1 -0
  544. package/dist/image-optimizer.js +206 -0
  545. package/dist/image-optimizer.js.map +1 -0
  546. package/dist/image-presets.d.ts +17 -0
  547. package/dist/image-presets.d.ts.map +1 -0
  548. package/dist/image-presets.js +50 -0
  549. package/dist/image-presets.js.map +1 -0
  550. package/dist/image-url.d.ts +26 -0
  551. package/dist/image-url.d.ts.map +1 -0
  552. package/dist/image-url.js +47 -0
  553. package/dist/image-url.js.map +1 -0
  554. package/dist/index.d.ts +37 -0
  555. package/dist/index.d.ts.map +1 -0
  556. package/dist/index.js +23 -0
  557. package/dist/index.js.map +1 -0
  558. package/dist/jwt.d.ts +54 -0
  559. package/dist/jwt.d.ts.map +1 -0
  560. package/dist/jwt.js +114 -0
  561. package/dist/jwt.js.map +1 -0
  562. package/dist/locale-fallback.d.ts +18 -0
  563. package/dist/locale-fallback.d.ts.map +1 -0
  564. package/dist/locale-fallback.js +42 -0
  565. package/dist/locale-fallback.js.map +1 -0
  566. package/dist/media-library.d.ts +46 -0
  567. package/dist/media-library.d.ts.map +1 -0
  568. package/dist/media-library.js +231 -0
  569. package/dist/media-library.js.map +1 -0
  570. package/dist/media-reference-updater.d.ts +24 -0
  571. package/dist/media-reference-updater.d.ts.map +1 -0
  572. package/dist/media-reference-updater.js +124 -0
  573. package/dist/media-reference-updater.js.map +1 -0
  574. package/dist/media-references.d.ts +14 -0
  575. package/dist/media-references.d.ts.map +1 -0
  576. package/dist/media-references.js +25 -0
  577. package/dist/media-references.js.map +1 -0
  578. package/dist/merged-schema.d.ts +10 -0
  579. package/dist/merged-schema.d.ts.map +1 -0
  580. package/dist/merged-schema.js +21 -0
  581. package/dist/merged-schema.js.map +1 -0
  582. package/dist/middleware/auth.d.ts +21 -0
  583. package/dist/middleware/auth.d.ts.map +1 -0
  584. package/dist/middleware/auth.js +82 -0
  585. package/dist/middleware/auth.js.map +1 -0
  586. package/dist/oidc-state.d.ts +42 -0
  587. package/dist/oidc-state.d.ts.map +1 -0
  588. package/dist/oidc-state.js +72 -0
  589. package/dist/oidc-state.js.map +1 -0
  590. package/dist/oidc.d.ts +83 -0
  591. package/dist/oidc.d.ts.map +1 -0
  592. package/dist/oidc.js +226 -0
  593. package/dist/oidc.js.map +1 -0
  594. package/dist/openapi.d.ts +13 -0
  595. package/dist/openapi.d.ts.map +1 -0
  596. package/dist/openapi.js +133 -0
  597. package/dist/openapi.js.map +1 -0
  598. package/dist/permissions.d.ts +37 -0
  599. package/dist/permissions.d.ts.map +1 -0
  600. package/dist/permissions.js +69 -0
  601. package/dist/permissions.js.map +1 -0
  602. package/dist/plugins.d.ts +64 -0
  603. package/dist/plugins.d.ts.map +1 -0
  604. package/dist/plugins.js +73 -0
  605. package/dist/plugins.js.map +1 -0
  606. package/dist/preview-token.d.ts +13 -0
  607. package/dist/preview-token.d.ts.map +1 -0
  608. package/dist/preview-token.js +45 -0
  609. package/dist/preview-token.js.map +1 -0
  610. package/dist/public-cache.d.ts +8 -0
  611. package/dist/public-cache.d.ts.map +1 -0
  612. package/dist/public-cache.js +8 -0
  613. package/dist/public-cache.js.map +1 -0
  614. package/dist/reference-resolver.d.ts +21 -0
  615. package/dist/reference-resolver.d.ts.map +1 -0
  616. package/dist/reference-resolver.js +128 -0
  617. package/dist/reference-resolver.js.map +1 -0
  618. package/dist/return-to.d.ts +7 -0
  619. package/dist/return-to.d.ts.map +1 -0
  620. package/dist/return-to.js +15 -0
  621. package/dist/return-to.js.map +1 -0
  622. package/dist/router.d.ts +14 -0
  623. package/dist/router.d.ts.map +1 -0
  624. package/dist/router.js +51 -0
  625. package/dist/router.js.map +1 -0
  626. package/dist/runtime-field-checks.d.ts +11 -0
  627. package/dist/runtime-field-checks.d.ts.map +1 -0
  628. package/dist/runtime-field-checks.js +72 -0
  629. package/dist/runtime-field-checks.js.map +1 -0
  630. package/dist/save-document.d.ts +71 -0
  631. package/dist/save-document.d.ts.map +1 -0
  632. package/dist/save-document.js +213 -0
  633. package/dist/save-document.js.map +1 -0
  634. package/dist/seo-compose.d.ts +50 -0
  635. package/dist/seo-compose.d.ts.map +1 -0
  636. package/dist/seo-compose.js +104 -0
  637. package/dist/seo-compose.js.map +1 -0
  638. package/dist/seo-config-snapshot.d.ts +10 -0
  639. package/dist/seo-config-snapshot.d.ts.map +1 -0
  640. package/dist/seo-config-snapshot.js +16 -0
  641. package/dist/seo-config-snapshot.js.map +1 -0
  642. package/dist/seo-loader.d.ts +10 -0
  643. package/dist/seo-loader.d.ts.map +1 -0
  644. package/dist/seo-loader.js +14 -0
  645. package/dist/seo-loader.js.map +1 -0
  646. package/dist/seo-site-findings.d.ts +27 -0
  647. package/dist/seo-site-findings.d.ts.map +1 -0
  648. package/dist/seo-site-findings.js +87 -0
  649. package/dist/seo-site-findings.js.map +1 -0
  650. package/dist/seo-subsystem.d.ts +28 -0
  651. package/dist/seo-subsystem.d.ts.map +1 -0
  652. package/dist/seo-subsystem.js +62 -0
  653. package/dist/seo-subsystem.js.map +1 -0
  654. package/dist/seo-validation.d.ts +20 -0
  655. package/dist/seo-validation.d.ts.map +1 -0
  656. package/dist/seo-validation.js +96 -0
  657. package/dist/seo-validation.js.map +1 -0
  658. package/dist/types.d.ts +126 -0
  659. package/dist/types.d.ts.map +1 -0
  660. package/dist/types.js +6 -0
  661. package/dist/types.js.map +1 -0
  662. package/dist/validators.d.ts +107 -0
  663. package/dist/validators.d.ts.map +1 -0
  664. package/dist/validators.js +199 -0
  665. package/dist/validators.js.map +1 -0
  666. package/dist/webhooks.d.ts +29 -0
  667. package/dist/webhooks.d.ts.map +1 -0
  668. package/dist/webhooks.js +123 -0
  669. package/dist/webhooks.js.map +1 -0
  670. package/dist/workload-identity.d.ts +23 -0
  671. package/dist/workload-identity.d.ts.map +1 -0
  672. package/dist/workload-identity.js +145 -0
  673. package/dist/workload-identity.js.map +1 -0
  674. package/package.json +50 -3
  675. package/README.md +0 -3
@@ -0,0 +1,63 @@
1
+ import { canGetContent } from '@krantho/persistence';
2
+ import { changedByFromAuth } from '../../permissions.js';
3
+ import { signPendingAction } from '../pending-action.js';
4
+ /** `changedBy` of an assistant write: the user's own, marked as made through the assistant */
5
+ export function assistantChangedBy(user) {
6
+ return `${changedByFromAuth(user)} via assistant`;
7
+ }
8
+ /** The locale a tool acts on: the one asked for, else the site's default */
9
+ export function localeOf(ctx, locale) {
10
+ return locale ?? ctx.config.site.defaultLocale;
11
+ }
12
+ /** The current version of exactly this document in exactly this locale — never a fallback */
13
+ export async function exactDocument(ctx, collection, slug, locale) {
14
+ if (!canGetContent(ctx.adapter))
15
+ return null;
16
+ return ctx.adapter.getContent(collection, slug, locale);
17
+ }
18
+ /** A document's reference, with its version */
19
+ export function refOf(doc) {
20
+ const { collection, slug, locale, version } = doc.meta;
21
+ return { collection, slug, locale, version };
22
+ }
23
+ /** `collection/slug` */
24
+ export function pathOf(ref) {
25
+ return `${ref.collection}/${ref.slug}`;
26
+ }
27
+ /** A failed tool call: the error for the model, and what Studio shows */
28
+ export function failure(error, activity = {}) {
29
+ return {
30
+ result: { ok: false, error },
31
+ activity: {
32
+ status: 'failed',
33
+ summary: activity.summary ?? error,
34
+ documents: activity.documents ?? [],
35
+ },
36
+ };
37
+ }
38
+ /**
39
+ * A pending action: the signed token and what it does go to Studio in the
40
+ * activity only; the model is told a proposal awaits the user, without the token.
41
+ */
42
+ export function proposal(run, action, view, activity) {
43
+ const { ctx } = run;
44
+ const secret = ctx.config.auth.jwtSecret;
45
+ if (!secret || !ctx.auth)
46
+ throw new Error('Proposals need a signed-in user and a signing secret');
47
+ const signed = signPendingAction(action, ctx.auth.id, secret, ctx.config.assistant.confirmTtlSec);
48
+ return {
49
+ result: {
50
+ ok: true,
51
+ pending: true,
52
+ awaiting: 'user confirmation in the chat',
53
+ note: 'Nothing is written, saved or published until the user confirms.',
54
+ what: view.title,
55
+ },
56
+ activity: {
57
+ ...activity,
58
+ status: 'pending',
59
+ pending: { token: signed.token, kind: action.kind, ...view, expiresAt: signed.expiresAt },
60
+ },
61
+ };
62
+ }
63
+ //# sourceMappingURL=support.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"support.js","sourceRoot":"","sources":["../../../src/assistant/tools/support.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAExD,OAAO,EAAsB,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAI5E,8FAA8F;AAC9F,MAAM,UAAU,kBAAkB,CAAC,IAAmC;IACpE,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAA;AACnD,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,QAAQ,CAAC,GAAe,EAAE,MAA0B;IAClE,OAAO,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAA;AAChD,CAAC;AAED,6FAA6F;AAC7F,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAe,EACf,UAAkB,EAClB,IAAY,EACZ,MAAc;IAEd,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAA;IAC5C,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;AACzD,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,KAAK,CAAC,GAAoB;IACxC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAI,CAAA;IACtD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;AAC9C,CAAC;AAED,wBAAwB;AACxB,MAAM,UAAU,MAAM,CAAC,GAAyC;IAC9D,OAAO,GAAG,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,IAAI,EAAE,CAAA;AACxC,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,OAAO,CACrB,KAAa,EACb,WAAoF,EAAE;IAEtF,OAAO;QACL,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC5B,QAAQ,EAAE;YACR,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,KAAK;YAClC,SAAS,EAAE,QAAQ,CAAC,SAAS,IAAI,EAAE;SACpC;KACF,CAAA;AACH,CAAC;AASD;;;GAGG;AACH,MAAM,UAAU,QAAQ,CACtB,GAAmB,EACnB,MAAqB,EACrB,IAAkB,EAClB,QAAuE;IAEvE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,CAAA;IACnB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAA;IACxC,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;IACjG,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;IACjG,OAAO;QACL,MAAM,EAAE;YACN,EAAE,EAAE,IAAI;YACR,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,+BAA+B;YACzC,IAAI,EAAE,iEAAiE;YACvE,IAAI,EAAE,IAAI,CAAC,KAAK;SACjB;QACD,QAAQ,EAAE;YACR,GAAG,QAAQ;YACX,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE;SAC1F;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,15 @@
1
+ /** Frames document text for the model */
2
+ export interface Framer {
3
+ /** `text` inside an `<untrusted-content>` frame that names where it came from */
4
+ frame(source: string, text: string): string;
5
+ }
6
+ /**
7
+ * A framer for one chat request. Its frames carry a random nonce the model has
8
+ * never seen in document text, so a document cannot close its own frame; the
9
+ * tag name is also rewritten wherever it appears inside the text. `source` is
10
+ * built by the server (collection, slug, version), never from document text.
11
+ */
12
+ export declare function createFramer(): Framer;
13
+ /** The first `max` characters of `text`, never splitting a surrogate pair */
14
+ export declare function truncate(text: string, max: number): string;
15
+ //# sourceMappingURL=untrusted.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"untrusted.d.ts","sourceRoot":"","sources":["../../src/assistant/untrusted.ts"],"names":[],"mappings":"AAEA,yCAAyC;AACzC,MAAM,WAAW,MAAM;IACrB,iFAAiF;IACjF,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CAC5C;AAKD;;;;;GAKG;AACH,wBAAgB,YAAY,IAAI,MAAM,CASrC;AAED,6EAA6E;AAC7E,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAI1D"}
@@ -0,0 +1,27 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ /** Any spelling of the frame's tag name; rewritten inside framed text */
3
+ const TAG_NAME = /untrusted-content/gi;
4
+ /**
5
+ * A framer for one chat request. Its frames carry a random nonce the model has
6
+ * never seen in document text, so a document cannot close its own frame; the
7
+ * tag name is also rewritten wherever it appears inside the text. `source` is
8
+ * built by the server (collection, slug, version), never from document text.
9
+ */
10
+ export function createFramer() {
11
+ const nonce = randomUUID().replace(/-/g, '').slice(0, 16);
12
+ return {
13
+ frame(source, text) {
14
+ const safeSource = source.replace(TAG_NAME, 'untrusted_content').replace(/["<>\r\n]/g, ' ');
15
+ const safeText = text.replace(TAG_NAME, 'untrusted_content');
16
+ return `<untrusted-content id="${nonce}" source="${safeSource}">\n${safeText}\n</untrusted-content id="${nonce}">`;
17
+ },
18
+ };
19
+ }
20
+ /** The first `max` characters of `text`, never splitting a surrogate pair */
21
+ export function truncate(text, max) {
22
+ if (text.length <= max)
23
+ return text;
24
+ const end = /[\uD800-\uDBFF]/.test(text.charAt(max - 1)) ? max - 1 : max;
25
+ return text.slice(0, Math.max(0, end));
26
+ }
27
+ //# sourceMappingURL=untrusted.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"untrusted.js","sourceRoot":"","sources":["../../src/assistant/untrusted.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAQxC,yEAAyE;AACzE,MAAM,QAAQ,GAAG,qBAAqB,CAAA;AAEtC;;;;;GAKG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACzD,OAAO;QACL,KAAK,CAAC,MAAM,EAAE,IAAI;YAChB,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,CAAA;YAC3F,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAA;YAC5D,OAAO,0BAA0B,KAAK,aAAa,UAAU,OAAO,QAAQ,6BAA6B,KAAK,IAAI,CAAA;QACpH,CAAC;KACF,CAAA;AACH,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,GAAW;IAChD,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,IAAI,CAAA;IACnC,MAAM,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IACxE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;AACxC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { DocumentChange, DocumentRef } from './protocol.js';
2
+ /** Whether a write happens now or waits for the user's confirmation */
3
+ export type WriteDecision = 'write' | 'confirm';
4
+ /** `collection/slug@locale` */
5
+ export declare function documentKey(ref: DocumentRef): string;
6
+ /**
7
+ * The write policy of one chat request: one document may be written at once —
8
+ * a new one, or empty values filled in an existing one — and a document created
9
+ * in this request may be written again. Everything else is shown first: text
10
+ * that replaces or removes a value, and any further document.
11
+ */
12
+ export declare class WritePolicy {
13
+ private readonly written;
14
+ private readonly created;
15
+ /** Decide for one document's change in this request */
16
+ decide(change: DocumentChange): WriteDecision;
17
+ /** Record an immediate write */
18
+ recordWrite(change: DocumentChange): void;
19
+ }
20
+ //# sourceMappingURL=write-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-policy.d.ts","sourceRoot":"","sources":["../../src/assistant/write-policy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhE,uEAAuE;AACvE,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,CAAA;AAE/C,+BAA+B;AAC/B,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CAEpD;AAED;;;;;GAKG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAE5C,uDAAuD;IACvD,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,aAAa;IAO7C,gCAAgC;IAChC,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;CAK1C"}
@@ -0,0 +1,32 @@
1
+ import { isOverwrite } from './document-change.js';
2
+ /** `collection/slug@locale` */
3
+ export function documentKey(ref) {
4
+ return `${ref.collection}/${ref.slug}@${ref.locale}`;
5
+ }
6
+ /**
7
+ * The write policy of one chat request: one document may be written at once —
8
+ * a new one, or empty values filled in an existing one — and a document created
9
+ * in this request may be written again. Everything else is shown first: text
10
+ * that replaces or removes a value, and any further document.
11
+ */
12
+ export class WritePolicy {
13
+ written = new Set();
14
+ created = new Set();
15
+ /** Decide for one document's change in this request */
16
+ decide(change) {
17
+ const key = documentKey(change.ref);
18
+ if (this.created.has(key))
19
+ return 'write';
20
+ if (this.written.size > 0 && !this.written.has(key))
21
+ return 'confirm';
22
+ return isOverwrite(change) ? 'confirm' : 'write';
23
+ }
24
+ /** Record an immediate write */
25
+ recordWrite(change) {
26
+ const key = documentKey(change.ref);
27
+ this.written.add(key);
28
+ if (change.baseVersion === 0)
29
+ this.created.add(key);
30
+ }
31
+ }
32
+ //# sourceMappingURL=write-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-policy.js","sourceRoot":"","sources":["../../src/assistant/write-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAMlD,+BAA+B;AAC/B,MAAM,UAAU,WAAW,CAAC,GAAgB;IAC1C,OAAO,GAAG,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,MAAM,EAAE,CAAA;AACtD,CAAC;AAED;;;;;GAKG;AACH,MAAM,OAAO,WAAW;IACL,OAAO,GAAG,IAAI,GAAG,EAAU,CAAA;IAC3B,OAAO,GAAG,IAAI,GAAG,EAAU,CAAA;IAE5C,uDAAuD;IACvD,MAAM,CAAC,MAAsB;QAC3B,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACnC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,OAAO,CAAA;QACzC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,SAAS,CAAA;QACrE,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAA;IAClD,CAAC;IAED,gCAAgC;IAChC,WAAW,CAAC,MAAsB;QAChC,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACnC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACrB,IAAI,MAAM,CAAC,WAAW,KAAK,CAAC;YAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACrD,CAAC;CACF"}
@@ -0,0 +1,31 @@
1
+ import type { AuthSection } from '@krantho/config';
2
+ import type { IAuthAdapter, Role } from '@krantho/persistence';
3
+ interface TokenUser {
4
+ id: string;
5
+ email: string;
6
+ name: string;
7
+ roles: Role[];
8
+ }
9
+ interface IssueTokenPairOptions {
10
+ user: TokenUser;
11
+ /** The effective signing secret (`config.auth.jwtSecret`) */
12
+ jwtSecret: string;
13
+ /** The resolved auth section — session TTLs, cookie names and flags */
14
+ auth: AuthSection;
15
+ headers: Record<string, string> | undefined;
16
+ authAdapter: IAuthAdapter | undefined;
17
+ }
18
+ interface IssuedTokens {
19
+ /** Set-Cookie values — access + optional refresh, one entry per cookie (RFC 6265). */
20
+ cookies: string[];
21
+ }
22
+ /**
23
+ * Issue JWT access token + refresh token pair, returning one Set-Cookie value
24
+ * per cookie (access + optional refresh). Shared by auth-login, auth-callback,
25
+ * and auth-refresh handlers.
26
+ */
27
+ export declare function issueTokenPair(options: IssueTokenPairOptions): Promise<IssuedTokens>;
28
+ /** Set-Cookie values that clear both session cookies */
29
+ export declare function clearSessionCookies(auth: AuthSection, headers: Record<string, string> | undefined): string[];
30
+ export {};
31
+ //# sourceMappingURL=auth-tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-tokens.d.ts","sourceRoot":"","sources":["../src/auth-tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAI9D,UAAU,SAAS;IACjB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,IAAI,EAAE,CAAA;CACd;AAED,UAAU,qBAAqB;IAC7B,IAAI,EAAE,SAAS,CAAA;IACf,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAA;IACjB,uEAAuE;IACvE,IAAI,EAAE,WAAW,CAAA;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;IAC3C,WAAW,EAAE,YAAY,GAAG,SAAS,CAAA;CACtC;AAED,UAAU,YAAY;IACpB,sFAAsF;IACtF,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,YAAY,CAAC,CAqC1F;AAED,wDAAwD;AACxD,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAC1C,MAAM,EAAE,CAOV"}
@@ -0,0 +1,35 @@
1
+ import { accessCookieName, buildCookie, isSecureRequest, refreshCookieName } from './cookies.js';
2
+ import { generateRefreshToken, hashRefreshToken, signJwt } from './jwt.js';
3
+ /**
4
+ * Issue JWT access token + refresh token pair, returning one Set-Cookie value
5
+ * per cookie (access + optional refresh). Shared by auth-login, auth-callback,
6
+ * and auth-refresh handlers.
7
+ */
8
+ export async function issueTokenPair(options) {
9
+ const { user, jwtSecret, auth, headers, authAdapter } = options;
10
+ const { accessTtlSec, refreshTtlSec, sameSite } = auth.session;
11
+ const accessToken = signJwt({ sub: user.id, email: user.email, name: user.name, roles: user.roles }, jwtSecret, accessTtlSec);
12
+ const isSecure = isSecureRequest(headers, auth);
13
+ const accessCookie = buildCookie(accessCookieName(auth.session), accessToken, accessTtlSec, isSecure, sameSite);
14
+ let refreshCookie = '';
15
+ if (authAdapter) {
16
+ const refreshToken = generateRefreshToken();
17
+ const refreshHash = hashRefreshToken(refreshToken, jwtSecret);
18
+ const expiresAt = new Date(Date.now() + refreshTtlSec * 1000).toISOString();
19
+ await authAdapter.createRefreshToken(user.id, refreshHash, expiresAt);
20
+ refreshCookie = buildCookie(refreshCookieName(auth.session), refreshToken, refreshTtlSec, isSecure, sameSite);
21
+ }
22
+ return {
23
+ cookies: refreshCookie ? [accessCookie, refreshCookie] : [accessCookie],
24
+ };
25
+ }
26
+ /** Set-Cookie values that clear both session cookies */
27
+ export function clearSessionCookies(auth, headers) {
28
+ const isSecure = isSecureRequest(headers, auth);
29
+ const { sameSite } = auth.session;
30
+ return [
31
+ buildCookie(accessCookieName(auth.session), '', 0, isSecure, sameSite),
32
+ buildCookie(refreshCookieName(auth.session), '', 0, isSecure, sameSite),
33
+ ];
34
+ }
35
+ //# sourceMappingURL=auth-tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-tokens.js","sourceRoot":"","sources":["../src/auth-tokens.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChG,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAwB1E;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAA8B;IACjE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,CAAA;IAC/D,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,CAAA;IAE9D,MAAM,WAAW,GAAG,OAAO,CACzB,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EACvE,SAAS,EACT,YAAY,CACb,CAAA;IAED,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAC/C,MAAM,YAAY,GAAG,WAAW,CAC9B,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,EAC9B,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,QAAQ,CACT,CAAA;IAED,IAAI,aAAa,GAAG,EAAE,CAAA;IACtB,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,YAAY,GAAG,oBAAoB,EAAE,CAAA;QAC3C,MAAM,WAAW,GAAG,gBAAgB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;QAC7D,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;QAC3E,MAAM,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,CAAA;QACrE,aAAa,GAAG,WAAW,CACzB,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAC/B,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,QAAQ,CACT,CAAA;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;KACxE,CAAA;AACH,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,mBAAmB,CACjC,IAAiB,EACjB,OAA2C;IAE3C,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAC/C,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,CAAA;IACjC,OAAO;QACL,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC;QACtE,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC;KACxE,CAAA;AACH,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { ContentChange, ContentChangeListener, IContentEngine } from '@krantho/core';
2
+ import type { ApiContext } from './types.js';
3
+ /**
4
+ * Deliver committed writes' changes: clear the content engine's cache once, so
5
+ * no later read in this process sees data from before the writes, then run
6
+ * every listener for each change, awaited. A failing listener is logged and
7
+ * never fails the write.
8
+ */
9
+ export declare function deliverChanges(engine: IContentEngine, listeners: readonly ContentChangeListener[] | undefined, changes: readonly ContentChange[]): Promise<void>;
10
+ /** Deliver one committed write's change (see {@link deliverChanges}) */
11
+ export declare function deliverChange(engine: IContentEngine, listeners: readonly ContentChangeListener[] | undefined, change: ContentChange): Promise<void>;
12
+ /** Announce committed writes from a handler, inside the request that made them */
13
+ export declare function announceChanges(ctx: ApiContext, changes: readonly ContentChange[]): Promise<void>;
14
+ /** Announce one committed write from a handler, inside the request that made it */
15
+ export declare function announceChange(ctx: ApiContext, change: ContentChange): Promise<void>;
16
+ //# sourceMappingURL=content-change.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-change.d.ts","sourceRoot":"","sources":["../src/content-change.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AACzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5C;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,SAAS,qBAAqB,EAAE,GAAG,SAAS,EACvD,OAAO,EAAE,SAAS,aAAa,EAAE,GAChC,OAAO,CAAC,IAAI,CAAC,CAYf;AAED,wEAAwE;AACxE,wBAAgB,aAAa,CAC3B,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,SAAS,qBAAqB,EAAE,GAAG,SAAS,EACvD,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,kFAAkF;AAClF,wBAAgB,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjG;AAED,mFAAmF;AACnF,wBAAgB,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpF"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Deliver committed writes' changes: clear the content engine's cache once, so
3
+ * no later read in this process sees data from before the writes, then run
4
+ * every listener for each change, awaited. A failing listener is logged and
5
+ * never fails the write.
6
+ */
7
+ export async function deliverChanges(engine, listeners, changes) {
8
+ if (changes.length === 0)
9
+ return;
10
+ engine.clearCache();
11
+ for (const change of changes) {
12
+ for (const listener of listeners ?? []) {
13
+ try {
14
+ await listener(change);
15
+ }
16
+ catch (err) {
17
+ console.warn('[krantho] content change listener failed:', err);
18
+ }
19
+ }
20
+ }
21
+ }
22
+ /** Deliver one committed write's change (see {@link deliverChanges}) */
23
+ export function deliverChange(engine, listeners, change) {
24
+ return deliverChanges(engine, listeners, [change]);
25
+ }
26
+ /** Announce committed writes from a handler, inside the request that made them */
27
+ export function announceChanges(ctx, changes) {
28
+ return deliverChanges(ctx.engine, ctx.changeListeners, changes);
29
+ }
30
+ /** Announce one committed write from a handler, inside the request that made it */
31
+ export function announceChange(ctx, change) {
32
+ return announceChanges(ctx, [change]);
33
+ }
34
+ //# sourceMappingURL=content-change.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-change.js","sourceRoot":"","sources":["../src/content-change.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAsB,EACtB,SAAuD,EACvD,OAAiC;IAEjC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IAChC,MAAM,CAAC,UAAU,EAAE,CAAA;IACnB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,KAAK,MAAM,QAAQ,IAAI,SAAS,IAAI,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC;gBACH,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAA;YACxB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,2CAA2C,EAAE,GAAG,CAAC,CAAA;YAChE,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,aAAa,CAC3B,MAAsB,EACtB,SAAuD,EACvD,MAAqB;IAErB,OAAO,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;AACpD,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,eAAe,CAAC,GAAe,EAAE,OAAiC;IAChF,OAAO,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,CAAA;AACjE,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,cAAc,CAAC,GAAe,EAAE,MAAqB;IACnE,OAAO,eAAe,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;AACvC,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { ApiContext, ApiResponse } from './types.js';
2
+ /** An edit lock someone else holds on a document */
3
+ export interface HeldLock {
4
+ lockedBy: string;
5
+ expiresAt: string;
6
+ }
7
+ /** One document, addressed by collection, slug and locale (the site's default locale when absent) */
8
+ export interface LockTarget {
9
+ collection: string;
10
+ slug: string;
11
+ locale?: string | undefined;
12
+ }
13
+ /** Who the signed-in caller is to the lock table */
14
+ export declare function lockOwner(ctx: ApiContext): string;
15
+ /**
16
+ * The unexpired edit lock on a document held by someone other than the
17
+ * signed-in user, or null when the document is free or the lock is theirs.
18
+ */
19
+ export declare function lockHolder(ctx: ApiContext, target: LockTarget): Promise<HeldLock | null>;
20
+ /**
21
+ * 423 when someone else holds the document's edit lock, else null: saving,
22
+ * publishing, unpublishing, restoring and deleting wait until the lock is
23
+ * released or expires. The holder is named in `lockedBy`, never in `error` —
24
+ * the assistant passes an error's text on to its model provider.
25
+ */
26
+ export declare function lockedByOther(ctx: ApiContext, target: LockTarget): Promise<ApiResponse | null>;
27
+ //# sourceMappingURL=content-locks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-locks.d.ts","sourceRoot":"","sources":["../src/content-locks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAEzD,oDAAoD;AACpD,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,qGAAqG;AACrG,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC5B;AAED,oDAAoD;AACpD,wBAAgB,SAAS,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAEjD;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAO9F;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,UAAU,EACf,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAW7B"}
@@ -0,0 +1,40 @@
1
+ import { changedByFromAuth } from './permissions.js';
2
+ /** Who the signed-in caller is to the lock table */
3
+ export function lockOwner(ctx) {
4
+ return changedByFromAuth(ctx.auth);
5
+ }
6
+ /**
7
+ * The unexpired edit lock on a document held by someone other than the
8
+ * signed-in user, or null when the document is free or the lock is theirs.
9
+ */
10
+ export async function lockHolder(ctx, target) {
11
+ const locale = target.locale ?? ctx.config.site.defaultLocale;
12
+ const lock = await ctx.lockAdapter?.getLock(target.collection, target.slug, locale);
13
+ if (!lock)
14
+ return null;
15
+ if (new Date(lock.expiresAt).getTime() <= Date.now())
16
+ return null;
17
+ if (lock.lockedBy === lockOwner(ctx))
18
+ return null;
19
+ return { lockedBy: lock.lockedBy, expiresAt: lock.expiresAt };
20
+ }
21
+ /**
22
+ * 423 when someone else holds the document's edit lock, else null: saving,
23
+ * publishing, unpublishing, restoring and deleting wait until the lock is
24
+ * released or expires. The holder is named in `lockedBy`, never in `error` —
25
+ * the assistant passes an error's text on to its model provider.
26
+ */
27
+ export async function lockedByOther(ctx, target) {
28
+ const held = await lockHolder(ctx, target);
29
+ if (!held)
30
+ return null;
31
+ return {
32
+ status: 423,
33
+ body: {
34
+ error: `${target.collection}/${target.slug} is being edited by another user`,
35
+ lockedBy: held.lockedBy,
36
+ expiresAt: held.expiresAt,
37
+ },
38
+ };
39
+ }
40
+ //# sourceMappingURL=content-locks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-locks.js","sourceRoot":"","sources":["../src/content-locks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAgBpD,oDAAoD;AACpD,MAAM,UAAU,SAAS,CAAC,GAAe;IACvC,OAAO,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AACpC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAe,EAAE,MAAkB;IAClE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAA;IAC7D,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACnF,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAA;IACtB,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,IAAI,CAAA;IACjE,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IACjD,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAA;AAC/D,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAe,EACf,MAAkB;IAElB,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IAC1C,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAA;IACtB,OAAO;QACL,MAAM,EAAE,GAAG;QACX,IAAI,EAAE;YACJ,KAAK,EAAE,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,kCAAkC;YAC5E,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { AuthSection } from '@krantho/config';
2
+ type SessionConfig = AuthSection['session'];
3
+ /** Name of the cookie carrying the access token */
4
+ export declare function accessCookieName(session: SessionConfig): string;
5
+ /** Name of the cookie carrying the refresh token */
6
+ export declare function refreshCookieName(session: SessionConfig): string;
7
+ /** Build a HttpOnly session cookie string */
8
+ export declare function buildCookie(name: string, value: string, maxAge: number, secure: boolean, sameSite: SessionConfig['sameSite']): string;
9
+ /**
10
+ * Decide whether session cookies carry `Secure`.
11
+ *
12
+ * `always` and `never` force the flag. `auto` infers it from the request: a
13
+ * verbatim `x-forwarded-proto: https` always counts, and `auth.trustProxy`
14
+ * widens that to the other headers a terminating proxy may send instead — a
15
+ * proxy-chain list, `x-forwarded-ssl`, and RFC 7239 `Forwarded`.
16
+ */
17
+ export declare function isSecureRequest(headers: Record<string, string> | undefined, auth: AuthSection): boolean;
18
+ export {};
19
+ //# sourceMappingURL=cookies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookies.d.ts","sourceRoot":"","sources":["../src/cookies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAElD,KAAK,aAAa,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;AAE3C,mDAAmD;AACnD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAE/D;AAED,oDAAoD;AACpD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAEhE;AAQD,6CAA6C;AAC7C,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,GAClC,MAAM,CAWR;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EAC3C,IAAI,EAAE,WAAW,GAChB,OAAO,CAaT"}
@@ -0,0 +1,52 @@
1
+ /** Name of the cookie carrying the access token */
2
+ export function accessCookieName(session) {
3
+ return `${session.cookiePrefix}_access`;
4
+ }
5
+ /** Name of the cookie carrying the refresh token */
6
+ export function refreshCookieName(session) {
7
+ return `${session.cookiePrefix}_refresh`;
8
+ }
9
+ const SAME_SITE_ATTRIBUTE = {
10
+ lax: 'Lax',
11
+ strict: 'Strict',
12
+ none: 'None',
13
+ };
14
+ /** Build a HttpOnly session cookie string */
15
+ export function buildCookie(name, value, maxAge, secure, sameSite) {
16
+ return [
17
+ `${name}=${value}`,
18
+ 'HttpOnly',
19
+ `SameSite=${SAME_SITE_ATTRIBUTE[sameSite]}`,
20
+ 'Path=/',
21
+ secure ? 'Secure' : '',
22
+ `Max-Age=${maxAge}`,
23
+ ]
24
+ .filter(Boolean)
25
+ .join('; ');
26
+ }
27
+ /**
28
+ * Decide whether session cookies carry `Secure`.
29
+ *
30
+ * `always` and `never` force the flag. `auto` infers it from the request: a
31
+ * verbatim `x-forwarded-proto: https` always counts, and `auth.trustProxy`
32
+ * widens that to the other headers a terminating proxy may send instead — a
33
+ * proxy-chain list, `x-forwarded-ssl`, and RFC 7239 `Forwarded`.
34
+ */
35
+ export function isSecureRequest(headers, auth) {
36
+ if (auth.session.secure === 'always')
37
+ return true;
38
+ if (auth.session.secure === 'never')
39
+ return false;
40
+ const forwardedProto = headers?.['x-forwarded-proto'];
41
+ if (forwardedProto === 'https')
42
+ return true;
43
+ if (!auth.trustProxy)
44
+ return false;
45
+ if (forwardedProto?.split(',')[0]?.trim().toLowerCase() === 'https')
46
+ return true;
47
+ if (headers?.['x-forwarded-ssl']?.toLowerCase() === 'on')
48
+ return true;
49
+ const forwarded = headers?.['forwarded'];
50
+ return forwarded !== undefined && /(?:^|[;,\s])proto="?https"?(?:$|[;,\s])/i.test(forwarded);
51
+ }
52
+ //# sourceMappingURL=cookies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookies.js","sourceRoot":"","sources":["../src/cookies.ts"],"names":[],"mappings":"AAIA,mDAAmD;AACnD,MAAM,UAAU,gBAAgB,CAAC,OAAsB;IACrD,OAAO,GAAG,OAAO,CAAC,YAAY,SAAS,CAAA;AACzC,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,iBAAiB,CAAC,OAAsB;IACtD,OAAO,GAAG,OAAO,CAAC,YAAY,UAAU,CAAA;AAC1C,CAAC;AAED,MAAM,mBAAmB,GAA8C;IACrE,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;CACb,CAAA;AAED,6CAA6C;AAC7C,MAAM,UAAU,WAAW,CACzB,IAAY,EACZ,KAAa,EACb,MAAc,EACd,MAAe,EACf,QAAmC;IAEnC,OAAO;QACL,GAAG,IAAI,IAAI,KAAK,EAAE;QAClB,UAAU;QACV,YAAY,mBAAmB,CAAC,QAAQ,CAAC,EAAE;QAC3C,QAAQ;QACR,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;QACtB,WAAW,MAAM,EAAE;KACpB;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAC7B,OAA2C,EAC3C,IAAiB;IAEjB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IACjD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,OAAO;QAAE,OAAO,KAAK,CAAA;IAEjD,MAAM,cAAc,GAAG,OAAO,EAAE,CAAC,mBAAmB,CAAC,CAAA;IACrD,IAAI,cAAc,KAAK,OAAO;QAAE,OAAO,IAAI,CAAA;IAC3C,IAAI,CAAC,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAA;IAElC,IAAI,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,OAAO;QAAE,OAAO,IAAI,CAAA;IAChF,IAAI,OAAO,EAAE,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAErE,MAAM,SAAS,GAAG,OAAO,EAAE,CAAC,WAAW,CAAC,CAAA;IACxC,OAAO,SAAS,KAAK,SAAS,IAAI,0CAA0C,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAC9F,CAAC"}
@@ -0,0 +1,128 @@
1
+ import type { KranthoConfig } from '@krantho/config';
2
+ import type { ContentChangeListener, IContentEngine } from '@krantho/core';
3
+ import type { IAuthAdapter, ICheckpointAdapter, IContentMigrationAdapter, ILockAdapter, IPageCacheStore, IPersistenceAdapter, IRetentionAdapter, ISecretVault, ISiteSettingsAdapter, IWebhookDeliveryAdapter } from '@krantho/persistence';
4
+ import type { ContentConfig, PageDefinition } from '@krantho/schema';
5
+ import { acquireLock, bulkDelete, bulkPublish, capabilities, checkLock, contentChanges, createContent, deleteContent, deleteRuntimeField, exportBundle, exportContent, exportSchema, getContent, getRuntimeSchema, getSchema, getVersion, importBundle, importContent, listCollection, listCollections, listContent, listContentTree, listLocks, listVersions, mediaDelete, mediaGet, mediaImage, mediaImageInfo, mediaInfo, mediaList, mediaRegister, mediaUpdate, mediaUpload, migrationConflicts, migrationStatus, publishContent, publishImpact, releaseLock, resolveConflict, resolvePageRoute, restoreVersion, saveRuntimeField, searchContent, seoGenerate, seoPreview, seoRobots, seoSitemap, seoStatus, seoStructuredData, siteConfigHandler, snapshotCreate, snapshotDelete, snapshotGet, snapshotList, snapshotRestore, updateContent, validateAll, webhookDeliveries, webhookRetry } from './handlers/index.js';
6
+ import type { ContentHooks } from './hooks.js';
7
+ import type { KranthoPlugin } from './plugins.js';
8
+ import { type SaveDocumentInput, type SaveDocumentResult } from './save-document.js';
9
+ import type { ApiRequest, ApiResponse, MediaConfig, ServerFramework, SitePreviewMode, WebhookConfig } from './types.js';
10
+ export interface CreateApiHandlersConfig {
11
+ contentConfig: ContentConfig;
12
+ /** The resolved configuration tree */
13
+ config: KranthoConfig;
14
+ adapter: IPersistenceAdapter;
15
+ engine: IContentEngine;
16
+ pages?: readonly PageDefinition[] | undefined;
17
+ webhooks?: readonly WebhookConfig[] | undefined;
18
+ hooks?: ContentHooks | undefined;
19
+ /** Told about every committed write, inside the request that made it */
20
+ onContentChange?: ContentChangeListener | undefined;
21
+ /**
22
+ * Keep work that outlives a request — a background job — running until it
23
+ * settles, on hosts that end a request's work with its response
24
+ */
25
+ waitUntil?: ((work: Promise<unknown>) => void) | undefined;
26
+ plugins?: KranthoPlugin[] | undefined;
27
+ /** Media metadata, folders and file store — enables the media routes */
28
+ media?: MediaConfig | undefined;
29
+ /** Checkpoint adapter for backup/restore */
30
+ checkpoints?: ICheckpointAdapter | undefined;
31
+ /** Content migration adapter for conflict resolution */
32
+ contentMigration?: IContentMigrationAdapter | undefined;
33
+ /** Auth adapter for user/token operations */
34
+ authAdapter?: IAuthAdapter | undefined;
35
+ /** Current schema version from migration runner */
36
+ schemaVersion?: number | undefined;
37
+ /** Persistence adapter type for capabilities reporting */
38
+ persistenceType?: 'filesystem' | 'sqlite' | 'postgres' | undefined;
39
+ /**
40
+ * The host renders drafts for editors on the site itself: registers
41
+ * `GET /api/preview`, answered as the mode says
42
+ */
43
+ sitePreview?: SitePreviewMode | undefined;
44
+ /** The server package hosting the API, reported by `GET /api/capabilities`; each server package sets it */
45
+ framework?: ServerFramework | undefined;
46
+ /** Advisory lock adapter */
47
+ lockAdapter?: ILockAdapter | undefined;
48
+ /** The page cache the site's instances share, when `cache.shared` is `database` */
49
+ pageCacheStore?: IPageCacheStore | undefined;
50
+ /** Webhook delivery log adapter */
51
+ webhookDeliveryAdapter?: IWebhookDeliveryAdapter | undefined;
52
+ /** Version retention adapter */
53
+ retentionAdapter?: IRetentionAdapter | undefined;
54
+ /** Site settings adapter */
55
+ siteSettingsAdapter?: ISiteSettingsAdapter | undefined;
56
+ /** Vault that seals the secrets stored in site settings; none means a site stores none */
57
+ secrets?: ISecretVault | undefined;
58
+ /** SEO configuration adapter */
59
+ seoConfigAdapter?: import('@krantho/persistence').ISeoConfigAdapter | undefined;
60
+ }
61
+ export interface ApiHandlers {
62
+ /** Trusted repository edits share validation, hooks, locks and draft publication with REST saves. */
63
+ saveRepositoryDocument(input: Omit<SaveDocumentInput, 'changedBy'>): Promise<SaveDocumentResult>;
64
+ /** Handle any API request via route matching */
65
+ handle(req: ApiRequest): Promise<ApiResponse>;
66
+ /** Direct access to individual handlers */
67
+ listCollections: typeof listCollections;
68
+ listCollection: typeof listCollection;
69
+ listContent: typeof listContent;
70
+ listContentTree: typeof listContentTree;
71
+ getContent: typeof getContent;
72
+ createContent: typeof createContent;
73
+ updateContent: typeof updateContent;
74
+ deleteContent: typeof deleteContent;
75
+ publishContent: typeof publishContent;
76
+ getSchema: typeof getSchema;
77
+ listVersions: typeof listVersions;
78
+ getVersion: typeof getVersion;
79
+ restoreVersion: typeof restoreVersion;
80
+ validateAll: typeof validateAll;
81
+ resolvePageRoute: typeof resolvePageRoute;
82
+ searchContent: typeof searchContent;
83
+ bulkDelete: typeof bulkDelete;
84
+ bulkPublish: typeof bulkPublish;
85
+ siteConfigHandler: typeof siteConfigHandler;
86
+ seoStatus: typeof seoStatus;
87
+ seoStructuredData: typeof seoStructuredData;
88
+ seoPreview: typeof seoPreview;
89
+ seoSitemap: typeof seoSitemap;
90
+ seoRobots: typeof seoRobots;
91
+ seoGenerate: typeof seoGenerate;
92
+ getRuntimeSchema: typeof getRuntimeSchema;
93
+ saveRuntimeField: typeof saveRuntimeField;
94
+ deleteRuntimeField: typeof deleteRuntimeField;
95
+ exportSchema: typeof exportSchema;
96
+ exportContent: typeof exportContent;
97
+ importContent: typeof importContent;
98
+ mediaList: typeof mediaList;
99
+ mediaGet: typeof mediaGet;
100
+ mediaUpload: typeof mediaUpload;
101
+ mediaRegister: typeof mediaRegister;
102
+ mediaUpdate: typeof mediaUpdate;
103
+ mediaDelete: typeof mediaDelete;
104
+ mediaImage: typeof mediaImage;
105
+ mediaInfo: typeof mediaInfo;
106
+ mediaImageInfo: typeof mediaImageInfo;
107
+ snapshotList: typeof snapshotList;
108
+ snapshotCreate: typeof snapshotCreate;
109
+ snapshotGet: typeof snapshotGet;
110
+ snapshotRestore: typeof snapshotRestore;
111
+ snapshotDelete: typeof snapshotDelete;
112
+ migrationStatus: typeof migrationStatus;
113
+ migrationConflicts: typeof migrationConflicts;
114
+ resolveConflict: typeof resolveConflict;
115
+ capabilities: typeof capabilities;
116
+ acquireLock: typeof acquireLock;
117
+ releaseLock: typeof releaseLock;
118
+ checkLock: typeof checkLock;
119
+ listLocks: typeof listLocks;
120
+ publishImpact: typeof publishImpact;
121
+ contentChanges: typeof contentChanges;
122
+ exportBundle: typeof exportBundle;
123
+ importBundle: typeof importBundle;
124
+ webhookDeliveries: typeof webhookDeliveries;
125
+ webhookRetry: typeof webhookRetry;
126
+ }
127
+ export declare function createApiHandlers(config: CreateApiHandlersConfig): ApiHandlers;
128
+ //# sourceMappingURL=create-api-handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-api-handlers.d.ts","sourceRoot":"","sources":["../src/create-api-handlers.ts"],"names":[],"mappings":"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"}