@aphexcms/cms-core 9.6.0 → 9.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (491) hide show
  1. package/dist/agent-chat-state.svelte.d.ts +38 -0
  2. package/dist/agent-chat-state.svelte.d.ts.map +1 -0
  3. package/dist/agent-chat-state.svelte.js +86 -0
  4. package/dist/ai/content-workspace-tools.d.ts +3 -0
  5. package/dist/ai/content-workspace-tools.d.ts.map +1 -0
  6. package/dist/ai/content-workspace-tools.js +50 -0
  7. package/dist/ai/default-system-prompt.d.ts +2 -0
  8. package/dist/ai/default-system-prompt.d.ts.map +1 -0
  9. package/dist/ai/default-system-prompt.js +15 -0
  10. package/dist/ai/index.d.ts +2 -0
  11. package/dist/ai/index.d.ts.map +1 -0
  12. package/dist/ai/index.js +4 -0
  13. package/dist/ai/interfaces/ai-provider.d.ts +67 -0
  14. package/dist/ai/interfaces/ai-provider.d.ts.map +1 -0
  15. package/dist/ai/interfaces/ai-provider.js +16 -0
  16. package/dist/ai/run-agent-turn.d.ts +29 -0
  17. package/dist/ai/run-agent-turn.d.ts.map +1 -0
  18. package/dist/ai/run-agent-turn.js +166 -0
  19. package/dist/api/agent-chat.d.ts +27 -0
  20. package/dist/api/agent-chat.d.ts.map +1 -0
  21. package/dist/api/agent-chat.js +64 -0
  22. package/dist/api/documents.d.ts +36 -3
  23. package/dist/api/documents.d.ts.map +1 -1
  24. package/dist/api/documents.js +24 -6
  25. package/dist/api/schemas/agent-chat.d.ts +45 -0
  26. package/dist/api/schemas/agent-chat.d.ts.map +1 -0
  27. package/dist/api/schemas/agent-chat.js +35 -0
  28. package/dist/api/schemas/agent-operations.d.ts +13 -0
  29. package/dist/api/schemas/agent-operations.d.ts.map +1 -0
  30. package/dist/api/schemas/agent-operations.js +15 -0
  31. package/dist/api/schemas/documents.d.ts +41 -0
  32. package/dist/api/schemas/documents.d.ts.map +1 -1
  33. package/dist/api/schemas/documents.js +38 -2
  34. package/dist/chunk-recovery.d.ts +33 -0
  35. package/dist/chunk-recovery.d.ts.map +1 -0
  36. package/dist/chunk-recovery.js +131 -0
  37. package/dist/client/index.d.ts +1 -0
  38. package/dist/client/index.d.ts.map +1 -1
  39. package/dist/client/index.js +1 -0
  40. package/dist/client/ui.d.ts +2 -0
  41. package/dist/client/ui.d.ts.map +1 -1
  42. package/dist/client/ui.js +3 -0
  43. package/dist/components/AdminApp.svelte +37 -3
  44. package/dist/components/AdminApp.svelte.d.ts.map +1 -1
  45. package/dist/components/admin/ActivityView.svelte +436 -0
  46. package/dist/components/admin/ActivityView.svelte.d.ts +4 -0
  47. package/dist/components/admin/ActivityView.svelte.d.ts.map +1 -0
  48. package/dist/components/admin/AgentChat.svelte +977 -0
  49. package/dist/components/admin/AgentChat.svelte.d.ts +17 -0
  50. package/dist/components/admin/AgentChat.svelte.d.ts.map +1 -0
  51. package/dist/components/admin/DocumentEditor.svelte +469 -70
  52. package/dist/components/admin/DocumentEditor.svelte.d.ts +6 -0
  53. package/dist/components/admin/DocumentEditor.svelte.d.ts.map +1 -1
  54. package/dist/components/admin/ObjectModal.svelte +4 -2
  55. package/dist/components/admin/ScheduleDialog.svelte +174 -0
  56. package/dist/components/admin/ScheduleDialog.svelte.d.ts +20 -0
  57. package/dist/components/admin/ScheduleDialog.svelte.d.ts.map +1 -0
  58. package/dist/components/admin/fields/ArrayField.svelte +4 -1
  59. package/dist/components/admin/fields/ReferenceField.svelte +12 -1
  60. package/dist/components/admin/fields/ReferenceField.svelte.d.ts.map +1 -1
  61. package/dist/components/index.d.ts +1 -0
  62. package/dist/components/index.d.ts.map +1 -1
  63. package/dist/components/index.js +1 -0
  64. package/dist/components/layout/OrganizationSwitcher.svelte +3 -3
  65. package/dist/components/layout/Sidebar.svelte +26 -2
  66. package/dist/components/layout/Sidebar.svelte.d.ts +1 -0
  67. package/dist/components/layout/Sidebar.svelte.d.ts.map +1 -1
  68. package/dist/components/layout/sidebar/NavUser.svelte +5 -5
  69. package/dist/db/interfaces/agent-change-sets.d.ts +17 -0
  70. package/dist/db/interfaces/agent-change-sets.d.ts.map +1 -0
  71. package/dist/db/interfaces/agent-change-sets.js +1 -0
  72. package/dist/db/interfaces/document.d.ts +25 -3
  73. package/dist/db/interfaces/document.d.ts.map +1 -1
  74. package/dist/db/interfaces/document.js +19 -1
  75. package/dist/db/interfaces/events.d.ts +55 -0
  76. package/dist/db/interfaces/events.d.ts.map +1 -0
  77. package/dist/db/interfaces/events.js +1 -0
  78. package/dist/db/interfaces/index.d.ts +13 -2
  79. package/dist/db/interfaces/index.d.ts.map +1 -1
  80. package/dist/db/interfaces/index.js +1 -1
  81. package/dist/db/interfaces/plugin-storage.d.ts +39 -0
  82. package/dist/db/interfaces/plugin-storage.d.ts.map +1 -0
  83. package/dist/db/interfaces/plugin-storage.js +1 -0
  84. package/dist/document-refresh.svelte.d.ts +2 -0
  85. package/dist/document-refresh.svelte.d.ts.map +1 -1
  86. package/dist/document-refresh.svelte.js +15 -0
  87. package/dist/document-workspace-registry.svelte.d.ts +15 -0
  88. package/dist/document-workspace-registry.svelte.d.ts.map +1 -0
  89. package/dist/document-workspace-registry.svelte.js +30 -0
  90. package/dist/events/catalog.d.ts +8 -0
  91. package/dist/events/catalog.d.ts.map +1 -0
  92. package/dist/events/catalog.js +11 -0
  93. package/dist/events/consumer.d.ts +79 -0
  94. package/dist/events/consumer.d.ts.map +1 -0
  95. package/dist/events/consumer.js +76 -0
  96. package/dist/events/define-event.d.ts +17 -0
  97. package/dist/events/define-event.d.ts.map +1 -0
  98. package/dist/events/define-event.js +7 -0
  99. package/dist/events/emit.d.ts +11 -0
  100. package/dist/events/emit.d.ts.map +1 -0
  101. package/dist/events/emit.js +20 -0
  102. package/dist/events/index.d.ts +4 -0
  103. package/dist/events/index.d.ts.map +1 -0
  104. package/dist/events/index.js +3 -0
  105. package/dist/field-validation/rule.d.ts.map +1 -1
  106. package/dist/field-validation/rule.js +15 -0
  107. package/dist/field-validation/utils.d.ts.map +1 -1
  108. package/dist/field-validation/utils.js +211 -29
  109. package/dist/forms/define-form.d.ts +25 -0
  110. package/dist/forms/define-form.d.ts.map +1 -0
  111. package/dist/forms/define-form.js +22 -0
  112. package/dist/forms/index.d.ts +4 -0
  113. package/dist/forms/index.d.ts.map +1 -0
  114. package/dist/forms/index.js +5 -0
  115. package/dist/forms/types.d.ts +49 -0
  116. package/dist/forms/types.d.ts.map +1 -0
  117. package/dist/forms/types.js +1 -0
  118. package/dist/forms/validate.d.ts +9 -0
  119. package/dist/forms/validate.d.ts.map +1 -0
  120. package/dist/forms/validate.js +18 -0
  121. package/dist/hooks.d.ts +2 -0
  122. package/dist/hooks.d.ts.map +1 -1
  123. package/dist/hooks.js +17 -0
  124. package/dist/index.d.ts +2 -0
  125. package/dist/index.d.ts.map +1 -1
  126. package/dist/index.js +6 -0
  127. package/dist/jobs/document-jobs.d.ts +27 -0
  128. package/dist/jobs/document-jobs.d.ts.map +1 -0
  129. package/dist/jobs/document-jobs.js +42 -0
  130. package/dist/jobs/embedded-runner.d.ts +25 -0
  131. package/dist/jobs/embedded-runner.d.ts.map +1 -0
  132. package/dist/jobs/embedded-runner.js +46 -0
  133. package/dist/jobs/index.d.ts +7 -0
  134. package/dist/jobs/index.d.ts.map +1 -0
  135. package/dist/jobs/index.js +8 -0
  136. package/dist/jobs/relay.d.ts +27 -0
  137. package/dist/jobs/relay.d.ts.map +1 -0
  138. package/dist/jobs/relay.js +60 -0
  139. package/dist/jobs/run-batch.d.ts +52 -0
  140. package/dist/jobs/run-batch.d.ts.map +1 -0
  141. package/dist/jobs/run-batch.js +61 -0
  142. package/dist/jobs/run-due-jobs.d.ts +30 -0
  143. package/dist/jobs/run-due-jobs.d.ts.map +1 -0
  144. package/dist/jobs/run-due-jobs.js +69 -0
  145. package/dist/jobs/types.d.ts +18 -0
  146. package/dist/jobs/types.d.ts.map +1 -0
  147. package/dist/jobs/types.js +1 -0
  148. package/dist/lib/agent-chat-state.svelte.d.ts +38 -0
  149. package/dist/lib/agent-chat-state.svelte.d.ts.map +1 -0
  150. package/dist/lib/agent-chat-state.svelte.js +87 -0
  151. package/dist/lib/agent-chat-state.svelte.js.map +1 -0
  152. package/dist/lib/ai/content-workspace-tools.d.ts +3 -0
  153. package/dist/lib/ai/content-workspace-tools.d.ts.map +1 -0
  154. package/dist/lib/ai/content-workspace-tools.js +51 -0
  155. package/dist/lib/ai/content-workspace-tools.js.map +1 -0
  156. package/dist/lib/ai/default-system-prompt.d.ts +2 -0
  157. package/dist/lib/ai/default-system-prompt.d.ts.map +1 -0
  158. package/dist/lib/ai/default-system-prompt.js +16 -0
  159. package/dist/lib/ai/default-system-prompt.js.map +1 -0
  160. package/dist/lib/ai/index.d.ts +2 -0
  161. package/dist/lib/ai/index.d.ts.map +1 -0
  162. package/dist/lib/ai/index.js +5 -0
  163. package/dist/lib/ai/index.js.map +1 -0
  164. package/dist/lib/ai/interfaces/ai-provider.d.ts +67 -0
  165. package/dist/lib/ai/interfaces/ai-provider.d.ts.map +1 -0
  166. package/dist/lib/ai/interfaces/ai-provider.js +17 -0
  167. package/dist/lib/ai/interfaces/ai-provider.js.map +1 -0
  168. package/dist/lib/ai/run-agent-turn.d.ts +29 -0
  169. package/dist/lib/ai/run-agent-turn.d.ts.map +1 -0
  170. package/dist/lib/ai/run-agent-turn.js +167 -0
  171. package/dist/lib/ai/run-agent-turn.js.map +1 -0
  172. package/dist/lib/api/agent-chat.d.ts +27 -0
  173. package/dist/lib/api/agent-chat.d.ts.map +1 -0
  174. package/dist/lib/api/agent-chat.js +65 -0
  175. package/dist/lib/api/agent-chat.js.map +1 -0
  176. package/dist/lib/api/documents.d.ts +36 -3
  177. package/dist/lib/api/documents.d.ts.map +1 -1
  178. package/dist/lib/api/documents.js +24 -6
  179. package/dist/lib/api/documents.js.map +1 -1
  180. package/dist/lib/api/schemas/agent-chat.d.ts +45 -0
  181. package/dist/lib/api/schemas/agent-chat.d.ts.map +1 -0
  182. package/dist/lib/api/schemas/agent-chat.js +36 -0
  183. package/dist/lib/api/schemas/agent-chat.js.map +1 -0
  184. package/dist/lib/api/schemas/agent-operations.d.ts +13 -0
  185. package/dist/lib/api/schemas/agent-operations.d.ts.map +1 -0
  186. package/dist/lib/api/schemas/agent-operations.js +16 -0
  187. package/dist/lib/api/schemas/agent-operations.js.map +1 -0
  188. package/dist/lib/api/schemas/documents.d.ts +41 -0
  189. package/dist/lib/api/schemas/documents.d.ts.map +1 -1
  190. package/dist/lib/api/schemas/documents.js +38 -2
  191. package/dist/lib/api/schemas/documents.js.map +1 -1
  192. package/dist/lib/chunk-recovery.d.ts +33 -0
  193. package/dist/lib/chunk-recovery.d.ts.map +1 -0
  194. package/dist/lib/chunk-recovery.js +132 -0
  195. package/dist/lib/chunk-recovery.js.map +1 -0
  196. package/dist/lib/client/index.d.ts +1 -0
  197. package/dist/lib/client/index.d.ts.map +1 -1
  198. package/dist/lib/client/index.js +1 -0
  199. package/dist/lib/client/index.js.map +1 -1
  200. package/dist/lib/client/ui.d.ts +2 -0
  201. package/dist/lib/client/ui.d.ts.map +1 -1
  202. package/dist/lib/client/ui.js +3 -0
  203. package/dist/lib/client/ui.js.map +1 -1
  204. package/dist/lib/components/index.d.ts +1 -0
  205. package/dist/lib/components/index.d.ts.map +1 -1
  206. package/dist/lib/components/index.js +1 -0
  207. package/dist/lib/components/index.js.map +1 -1
  208. package/dist/lib/db/interfaces/agent-change-sets.d.ts +17 -0
  209. package/dist/lib/db/interfaces/agent-change-sets.d.ts.map +1 -0
  210. package/dist/lib/db/interfaces/agent-change-sets.js +2 -0
  211. package/dist/lib/db/interfaces/agent-change-sets.js.map +1 -0
  212. package/dist/lib/db/interfaces/document.d.ts +25 -3
  213. package/dist/lib/db/interfaces/document.d.ts.map +1 -1
  214. package/dist/lib/db/interfaces/document.js +19 -1
  215. package/dist/lib/db/interfaces/document.js.map +1 -1
  216. package/dist/lib/db/interfaces/events.d.ts +55 -0
  217. package/dist/lib/db/interfaces/events.d.ts.map +1 -0
  218. package/dist/lib/db/interfaces/events.js +2 -0
  219. package/dist/lib/db/interfaces/events.js.map +1 -0
  220. package/dist/lib/db/interfaces/index.d.ts +13 -2
  221. package/dist/lib/db/interfaces/index.d.ts.map +1 -1
  222. package/dist/lib/db/interfaces/index.js +1 -1
  223. package/dist/lib/db/interfaces/index.js.map +1 -1
  224. package/dist/lib/db/interfaces/plugin-storage.d.ts +39 -0
  225. package/dist/lib/db/interfaces/plugin-storage.d.ts.map +1 -0
  226. package/dist/lib/db/interfaces/plugin-storage.js +2 -0
  227. package/dist/lib/db/interfaces/plugin-storage.js.map +1 -0
  228. package/dist/lib/document-refresh.svelte.d.ts +2 -0
  229. package/dist/lib/document-refresh.svelte.d.ts.map +1 -1
  230. package/dist/lib/document-refresh.svelte.js +15 -0
  231. package/dist/lib/document-refresh.svelte.js.map +1 -1
  232. package/dist/lib/document-workspace-registry.svelte.d.ts +15 -0
  233. package/dist/lib/document-workspace-registry.svelte.d.ts.map +1 -0
  234. package/dist/lib/document-workspace-registry.svelte.js +31 -0
  235. package/dist/lib/document-workspace-registry.svelte.js.map +1 -0
  236. package/dist/lib/events/catalog.d.ts +8 -0
  237. package/dist/lib/events/catalog.d.ts.map +1 -0
  238. package/dist/lib/events/catalog.js +12 -0
  239. package/dist/lib/events/catalog.js.map +1 -0
  240. package/dist/lib/events/consumer.d.ts +79 -0
  241. package/dist/lib/events/consumer.d.ts.map +1 -0
  242. package/dist/lib/events/consumer.js +77 -0
  243. package/dist/lib/events/consumer.js.map +1 -0
  244. package/dist/lib/events/define-event.d.ts +17 -0
  245. package/dist/lib/events/define-event.d.ts.map +1 -0
  246. package/dist/lib/events/define-event.js +8 -0
  247. package/dist/lib/events/define-event.js.map +1 -0
  248. package/dist/lib/events/emit.d.ts +11 -0
  249. package/dist/lib/events/emit.d.ts.map +1 -0
  250. package/dist/lib/events/emit.js +21 -0
  251. package/dist/lib/events/emit.js.map +1 -0
  252. package/dist/lib/events/index.d.ts +4 -0
  253. package/dist/lib/events/index.d.ts.map +1 -0
  254. package/dist/lib/events/index.js +4 -0
  255. package/dist/lib/events/index.js.map +1 -0
  256. package/dist/lib/field-validation/rule.d.ts.map +1 -1
  257. package/dist/lib/field-validation/rule.js +15 -0
  258. package/dist/lib/field-validation/rule.js.map +1 -1
  259. package/dist/lib/field-validation/utils.d.ts.map +1 -1
  260. package/dist/lib/field-validation/utils.js +211 -29
  261. package/dist/lib/field-validation/utils.js.map +1 -1
  262. package/dist/lib/forms/define-form.d.ts +25 -0
  263. package/dist/lib/forms/define-form.d.ts.map +1 -0
  264. package/dist/lib/forms/define-form.js +23 -0
  265. package/dist/lib/forms/define-form.js.map +1 -0
  266. package/dist/lib/forms/index.d.ts +4 -0
  267. package/dist/lib/forms/index.d.ts.map +1 -0
  268. package/dist/lib/forms/index.js +6 -0
  269. package/dist/lib/forms/index.js.map +1 -0
  270. package/dist/lib/forms/types.d.ts +49 -0
  271. package/dist/lib/forms/types.d.ts.map +1 -0
  272. package/dist/lib/forms/types.js +2 -0
  273. package/dist/lib/forms/types.js.map +1 -0
  274. package/dist/lib/forms/validate.d.ts +9 -0
  275. package/dist/lib/forms/validate.d.ts.map +1 -0
  276. package/dist/lib/forms/validate.js +19 -0
  277. package/dist/lib/forms/validate.js.map +1 -0
  278. package/dist/lib/hooks.d.ts +2 -0
  279. package/dist/lib/hooks.d.ts.map +1 -1
  280. package/dist/lib/hooks.js +17 -0
  281. package/dist/lib/hooks.js.map +1 -1
  282. package/dist/lib/index.d.ts +2 -0
  283. package/dist/lib/index.d.ts.map +1 -1
  284. package/dist/lib/index.js +6 -0
  285. package/dist/lib/index.js.map +1 -1
  286. package/dist/lib/jobs/document-jobs.d.ts +27 -0
  287. package/dist/lib/jobs/document-jobs.d.ts.map +1 -0
  288. package/dist/lib/jobs/document-jobs.js +43 -0
  289. package/dist/lib/jobs/document-jobs.js.map +1 -0
  290. package/dist/lib/jobs/embedded-runner.d.ts +25 -0
  291. package/dist/lib/jobs/embedded-runner.d.ts.map +1 -0
  292. package/dist/lib/jobs/embedded-runner.js +47 -0
  293. package/dist/lib/jobs/embedded-runner.js.map +1 -0
  294. package/dist/lib/jobs/index.d.ts +7 -0
  295. package/dist/lib/jobs/index.d.ts.map +1 -0
  296. package/dist/lib/jobs/index.js +9 -0
  297. package/dist/lib/jobs/index.js.map +1 -0
  298. package/dist/lib/jobs/relay.d.ts +27 -0
  299. package/dist/lib/jobs/relay.d.ts.map +1 -0
  300. package/dist/lib/jobs/relay.js +61 -0
  301. package/dist/lib/jobs/relay.js.map +1 -0
  302. package/dist/lib/jobs/run-batch.d.ts +52 -0
  303. package/dist/lib/jobs/run-batch.d.ts.map +1 -0
  304. package/dist/lib/jobs/run-batch.js +62 -0
  305. package/dist/lib/jobs/run-batch.js.map +1 -0
  306. package/dist/lib/jobs/run-due-jobs.d.ts +30 -0
  307. package/dist/lib/jobs/run-due-jobs.d.ts.map +1 -0
  308. package/dist/lib/jobs/run-due-jobs.js +70 -0
  309. package/dist/lib/jobs/run-due-jobs.js.map +1 -0
  310. package/dist/lib/jobs/types.d.ts +18 -0
  311. package/dist/lib/jobs/types.d.ts.map +1 -0
  312. package/dist/lib/jobs/types.js +2 -0
  313. package/dist/lib/jobs/types.js.map +1 -0
  314. package/dist/lib/local-api/collection-api.d.ts +49 -2
  315. package/dist/lib/local-api/collection-api.d.ts.map +1 -1
  316. package/dist/lib/local-api/collection-api.js +193 -27
  317. package/dist/lib/local-api/collection-api.js.map +1 -1
  318. package/dist/lib/mcp/tools.d.ts +39 -4
  319. package/dist/lib/mcp/tools.d.ts.map +1 -1
  320. package/dist/lib/mcp/tools.js +546 -362
  321. package/dist/lib/mcp/tools.js.map +1 -1
  322. package/dist/lib/plugins/resolver.d.ts +19 -1
  323. package/dist/lib/plugins/resolver.d.ts.map +1 -1
  324. package/dist/lib/plugins/resolver.js +17 -1
  325. package/dist/lib/plugins/resolver.js.map +1 -1
  326. package/dist/lib/plugins/types.d.ts +68 -2
  327. package/dist/lib/plugins/types.d.ts.map +1 -1
  328. package/dist/lib/plugins/types.js.map +1 -1
  329. package/dist/lib/preview/stega.d.ts +2 -2
  330. package/dist/lib/preview/stega.d.ts.map +1 -1
  331. package/dist/lib/preview/stega.js +52 -29
  332. package/dist/lib/preview/stega.js.map +1 -1
  333. package/dist/lib/schema-utils/validator.d.ts.map +1 -1
  334. package/dist/lib/schema-utils/validator.js +5 -2
  335. package/dist/lib/schema-utils/validator.js.map +1 -1
  336. package/dist/lib/server/api/index.d.ts.map +1 -1
  337. package/dist/lib/server/api/index.js +16 -0
  338. package/dist/lib/server/api/index.js.map +1 -1
  339. package/dist/lib/server/api/routes/agent-change-sets.d.ts +4 -0
  340. package/dist/lib/server/api/routes/agent-change-sets.d.ts.map +1 -0
  341. package/dist/lib/server/api/routes/agent-change-sets.js +132 -0
  342. package/dist/lib/server/api/routes/agent-change-sets.js.map +1 -0
  343. package/dist/lib/server/api/routes/agent-chat.d.ts +14 -0
  344. package/dist/lib/server/api/routes/agent-chat.d.ts.map +1 -0
  345. package/dist/lib/server/api/routes/agent-chat.js +224 -0
  346. package/dist/lib/server/api/routes/agent-chat.js.map +1 -0
  347. package/dist/lib/server/api/routes/document-versions.d.ts.map +1 -1
  348. package/dist/lib/server/api/routes/document-versions.js +16 -2
  349. package/dist/lib/server/api/routes/document-versions.js.map +1 -1
  350. package/dist/lib/server/api/routes/documents-by-id.d.ts.map +1 -1
  351. package/dist/lib/server/api/routes/documents-by-id.js +11 -1
  352. package/dist/lib/server/api/routes/documents-by-id.js.map +1 -1
  353. package/dist/lib/server/api/routes/documents-publish.d.ts.map +1 -1
  354. package/dist/lib/server/api/routes/documents-publish.js +145 -2
  355. package/dist/lib/server/api/routes/documents-publish.js.map +1 -1
  356. package/dist/lib/server/api/routes/jobs.d.ts +4 -0
  357. package/dist/lib/server/api/routes/jobs.d.ts.map +1 -0
  358. package/dist/lib/server/api/routes/jobs.js +95 -0
  359. package/dist/lib/server/api/routes/jobs.js.map +1 -0
  360. package/dist/lib/server/api/routes/resolve-created-by.d.ts +13 -0
  361. package/dist/lib/server/api/routes/resolve-created-by.d.ts.map +1 -0
  362. package/dist/lib/server/api/routes/resolve-created-by.js +31 -0
  363. package/dist/lib/server/api/routes/resolve-created-by.js.map +1 -0
  364. package/dist/lib/server/api/routes/workers-run.d.ts +4 -0
  365. package/dist/lib/server/api/routes/workers-run.d.ts.map +1 -0
  366. package/dist/lib/server/api/routes/workers-run.js +41 -0
  367. package/dist/lib/server/api/routes/workers-run.js.map +1 -0
  368. package/dist/lib/server/index.d.ts +2 -0
  369. package/dist/lib/server/index.d.ts.map +1 -1
  370. package/dist/lib/server/index.js +3 -0
  371. package/dist/lib/server/index.js.map +1 -1
  372. package/dist/lib/services/version-service.d.ts +19 -3
  373. package/dist/lib/services/version-service.d.ts.map +1 -1
  374. package/dist/lib/services/version-service.js +75 -69
  375. package/dist/lib/services/version-service.js.map +1 -1
  376. package/dist/lib/type-gen.d.ts.map +1 -1
  377. package/dist/lib/type-gen.js +11 -0
  378. package/dist/lib/type-gen.js.map +1 -1
  379. package/dist/lib/types/agent-change-sets.d.ts +70 -0
  380. package/dist/lib/types/agent-change-sets.d.ts.map +1 -0
  381. package/dist/lib/types/agent-change-sets.js +7 -0
  382. package/dist/lib/types/agent-change-sets.js.map +1 -0
  383. package/dist/lib/types/agent-stream.d.ts +60 -0
  384. package/dist/lib/types/agent-stream.d.ts.map +1 -0
  385. package/dist/lib/types/agent-stream.js +12 -0
  386. package/dist/lib/types/agent-stream.js.map +1 -0
  387. package/dist/lib/types/agent-tools.d.ts +65 -0
  388. package/dist/lib/types/agent-tools.d.ts.map +1 -0
  389. package/dist/lib/types/agent-tools.js +2 -0
  390. package/dist/lib/types/agent-tools.js.map +1 -0
  391. package/dist/lib/types/config.d.ts +62 -0
  392. package/dist/lib/types/config.d.ts.map +1 -1
  393. package/dist/lib/types/document-workspace.d.ts +53 -0
  394. package/dist/lib/types/document-workspace.d.ts.map +1 -0
  395. package/dist/lib/types/document-workspace.js +15 -0
  396. package/dist/lib/types/document-workspace.js.map +1 -0
  397. package/dist/lib/types/document.d.ts +5 -0
  398. package/dist/lib/types/document.d.ts.map +1 -1
  399. package/dist/lib/types/events.d.ts +134 -0
  400. package/dist/lib/types/events.d.ts.map +1 -0
  401. package/dist/lib/types/events.js +4 -0
  402. package/dist/lib/types/events.js.map +1 -0
  403. package/dist/lib/types/index.d.ts +3 -0
  404. package/dist/lib/types/index.d.ts.map +1 -1
  405. package/dist/lib/types/index.js +3 -0
  406. package/dist/lib/types/index.js.map +1 -1
  407. package/dist/lib/types/schemas.js +1 -1
  408. package/dist/lib/types/schemas.js.map +1 -1
  409. package/dist/lib/utils/fetch-remote-file.d.ts +11 -0
  410. package/dist/lib/utils/fetch-remote-file.d.ts.map +1 -0
  411. package/dist/lib/utils/fetch-remote-file.js +169 -0
  412. package/dist/lib/utils/fetch-remote-file.js.map +1 -0
  413. package/dist/lib/utils/index.d.ts +1 -1
  414. package/dist/lib/utils/index.d.ts.map +1 -1
  415. package/dist/lib/utils/index.js.map +1 -1
  416. package/dist/local-api/collection-api.d.ts +49 -2
  417. package/dist/local-api/collection-api.d.ts.map +1 -1
  418. package/dist/local-api/collection-api.js +193 -27
  419. package/dist/mcp/tools.d.ts +39 -4
  420. package/dist/mcp/tools.d.ts.map +1 -1
  421. package/dist/mcp/tools.js +546 -362
  422. package/dist/plugins/resolver.d.ts +19 -1
  423. package/dist/plugins/resolver.d.ts.map +1 -1
  424. package/dist/plugins/resolver.js +17 -1
  425. package/dist/plugins/types.d.ts +68 -2
  426. package/dist/plugins/types.d.ts.map +1 -1
  427. package/dist/preview/stega.d.ts +2 -2
  428. package/dist/preview/stega.d.ts.map +1 -1
  429. package/dist/preview/stega.js +52 -29
  430. package/dist/schema-utils/validator.d.ts.map +1 -1
  431. package/dist/schema-utils/validator.js +5 -2
  432. package/dist/server/api/index.d.ts.map +1 -1
  433. package/dist/server/api/index.js +16 -0
  434. package/dist/server/api/routes/agent-change-sets.d.ts +4 -0
  435. package/dist/server/api/routes/agent-change-sets.d.ts.map +1 -0
  436. package/dist/server/api/routes/agent-change-sets.js +131 -0
  437. package/dist/server/api/routes/agent-chat.d.ts +14 -0
  438. package/dist/server/api/routes/agent-chat.d.ts.map +1 -0
  439. package/dist/server/api/routes/agent-chat.js +223 -0
  440. package/dist/server/api/routes/document-versions.d.ts.map +1 -1
  441. package/dist/server/api/routes/document-versions.js +16 -2
  442. package/dist/server/api/routes/documents-by-id.d.ts.map +1 -1
  443. package/dist/server/api/routes/documents-by-id.js +11 -1
  444. package/dist/server/api/routes/documents-publish.d.ts.map +1 -1
  445. package/dist/server/api/routes/documents-publish.js +145 -2
  446. package/dist/server/api/routes/jobs.d.ts +4 -0
  447. package/dist/server/api/routes/jobs.d.ts.map +1 -0
  448. package/dist/server/api/routes/jobs.js +94 -0
  449. package/dist/server/api/routes/resolve-created-by.d.ts +13 -0
  450. package/dist/server/api/routes/resolve-created-by.d.ts.map +1 -0
  451. package/dist/server/api/routes/resolve-created-by.js +30 -0
  452. package/dist/server/api/routes/workers-run.d.ts +4 -0
  453. package/dist/server/api/routes/workers-run.d.ts.map +1 -0
  454. package/dist/server/api/routes/workers-run.js +40 -0
  455. package/dist/server/index.d.ts +2 -0
  456. package/dist/server/index.d.ts.map +1 -1
  457. package/dist/server/index.js +3 -0
  458. package/dist/services/version-service.d.ts +19 -3
  459. package/dist/services/version-service.d.ts.map +1 -1
  460. package/dist/services/version-service.js +75 -69
  461. package/dist/type-gen.d.ts.map +1 -1
  462. package/dist/type-gen.js +11 -0
  463. package/dist/types/agent-change-sets.d.ts +70 -0
  464. package/dist/types/agent-change-sets.d.ts.map +1 -0
  465. package/dist/types/agent-change-sets.js +6 -0
  466. package/dist/types/agent-stream.d.ts +60 -0
  467. package/dist/types/agent-stream.d.ts.map +1 -0
  468. package/dist/types/agent-stream.js +11 -0
  469. package/dist/types/agent-tools.d.ts +65 -0
  470. package/dist/types/agent-tools.d.ts.map +1 -0
  471. package/dist/types/agent-tools.js +1 -0
  472. package/dist/types/config.d.ts +62 -0
  473. package/dist/types/config.d.ts.map +1 -1
  474. package/dist/types/document-workspace.d.ts +53 -0
  475. package/dist/types/document-workspace.d.ts.map +1 -0
  476. package/dist/types/document-workspace.js +14 -0
  477. package/dist/types/document.d.ts +5 -0
  478. package/dist/types/document.d.ts.map +1 -1
  479. package/dist/types/events.d.ts +134 -0
  480. package/dist/types/events.d.ts.map +1 -0
  481. package/dist/types/events.js +3 -0
  482. package/dist/types/index.d.ts +3 -0
  483. package/dist/types/index.d.ts.map +1 -1
  484. package/dist/types/index.js +3 -0
  485. package/dist/types/schemas.js +1 -1
  486. package/dist/utils/fetch-remote-file.d.ts +11 -0
  487. package/dist/utils/fetch-remote-file.d.ts.map +1 -0
  488. package/dist/utils/fetch-remote-file.js +168 -0
  489. package/dist/utils/index.d.ts +1 -1
  490. package/dist/utils/index.d.ts.map +1 -1
  491. package/package.json +5 -1
@@ -9,6 +9,7 @@ import type { LocalAPIContext } from './types.js';
9
9
  import type { SchemaType } from '../types/schemas.js';
10
10
  import { PermissionChecker } from './permissions.js';
11
11
  import { type DocumentValidationResult } from '../field-validation/utils.js';
12
+ import type { Job } from '../types/events.js';
12
13
  /**
13
14
  * Result from create/update operations that includes validation
14
15
  */
@@ -158,6 +159,7 @@ export declare class CollectionAPI<T = Document> {
158
159
  update(context: LocalAPIContext, id: string, data: Partial<Omit<T, 'id' | '_meta'>>, options?: {
159
160
  publish?: boolean;
160
161
  skipVersioning?: boolean;
162
+ expectedRevision?: number;
161
163
  }): Promise<DocumentResult<T> | null>;
162
164
  /**
163
165
  * Delete a document
@@ -182,7 +184,16 @@ export declare class CollectionAPI<T = Document> {
182
184
  * );
183
185
  * ```
184
186
  */
185
- publish(context: LocalAPIContext, id: string): Promise<T | null>;
187
+ /**
188
+ * Publish without a version snapshot — the branch taken when there's no version service or
189
+ * the caller passed `skipVersioning`. Still emits `document.published` (and its outbox row)
190
+ * atomically with the publish, so the domain fact fires on EVERY publish path, not only the
191
+ * versioned one. The versioned branch emits the same event from `versionService.publishTx`.
192
+ */
193
+ private publishWithoutVersion;
194
+ publish(context: LocalAPIContext, id: string, options?: {
195
+ expectedRevision?: number;
196
+ }): Promise<T | null>;
186
197
  /**
187
198
  * Unpublish a document
188
199
  *
@@ -194,6 +205,42 @@ export declare class CollectionAPI<T = Document> {
194
205
  * );
195
206
  * ```
196
207
  */
197
- unpublish(context: LocalAPIContext, id: string): Promise<T | null>;
208
+ unpublish(context: LocalAPIContext, id: string, options?: {
209
+ expectedRevision?: number;
210
+ }): Promise<T | null>;
211
+ /**
212
+ * Pending scheduled publish/unpublish jobs for one document. Scheduled jobs are few
213
+ * and `pending` is a small set, so filtering the org's pending jobs by documentId in
214
+ * memory is cheap and avoids a dialect-specific JSON query on the hot editor path.
215
+ */
216
+ private pendingScheduledFor;
217
+ /**
218
+ * Cancel any pending schedule of ONE direction for a document — used when a manual
219
+ * publish/unpublish supersedes a schedule of the same kind. Only same-direction is
220
+ * cancelled on purpose: "publish now, auto-unpublish Friday" and "unpublish now,
221
+ * republish Monday" are legitimate future transitions, so a manual publish leaves a
222
+ * pending unpublish (and vice versa) alone. Without this, the queued job would fire at
223
+ * `runAt` and re-run the same transition — re-emitting `document.published`/`unpublished`
224
+ * and firing every consumer a second time (duplicate notifications, webhooks, cache busts).
225
+ */
226
+ private cancelPendingScheduleOfType;
227
+ /**
228
+ * Schedule a publish for a future `runAt`. Enqueues a `document.publish` job; the
229
+ * worker runs `publish()` at that time (re-validating, guarding references, emitting
230
+ * `document.published`). The permission check happens NOW — you must be able to publish
231
+ * to schedule one — so an unauthorized caller can't queue work to run later as the system.
232
+ * Actual publish-time validation still runs then, so a doc that goes invalid before
233
+ * `runAt` simply fails/retries rather than publishing bad content.
234
+ *
235
+ * Replace semantics: any existing pending schedule for this document is cancelled first,
236
+ * so a document has at most one pending schedule (rescheduling can't double-publish).
237
+ */
238
+ schedulePublish(context: LocalAPIContext, id: string, runAt: Date): Promise<Job>;
239
+ /** Schedule an unpublish for a future `runAt`. Permission-checked now; replaces any existing pending schedule. */
240
+ scheduleUnpublish(context: LocalAPIContext, id: string, runAt: Date): Promise<Job>;
241
+ /** Pending scheduled publish/unpublish jobs for a document (read-gated) — for the editor's schedule indicator. */
242
+ getScheduled(context: LocalAPIContext, id: string): Promise<Job[]>;
243
+ /** Cancel all pending scheduled publish/unpublish jobs for a document. Returns how many were cancelled. */
244
+ cancelScheduled(context: LocalAPIContext, id: string): Promise<number>;
198
245
  }
199
246
  //# sourceMappingURL=collection-api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"collection-api.d.ts","sourceRoot":"","sources":["../../src/lib/local-api/collection-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collection-api.d.ts","sourceRoot":"","sources":["../../src/lib/local-api/collection-api.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@ import { singletonId } from '../schema-utils/singleton.js';
5
5
  import { validateDocumentData } from '../field-validation/utils.js';
6
6
  import { runDocumentHooks } from './hooks.js';
7
7
  import { collectReferenceIds } from '../utils/reference-walk.js';
8
+ import { emitDocumentPublished } from '../events/emit.js';
9
+ import { DOCUMENT_PUBLISH_JOB, DOCUMENT_UNPUBLISH_JOB } from '../jobs/document-jobs.js';
8
10
  import { hiddenReadFields, hiddenWriteFields, dropLockedWrites, stripHiddenFields } from '../field-access.js';
9
11
  const EMPTY_SET = new Set();
10
12
  /**
@@ -54,7 +56,11 @@ function transformDocument(doc, perspective = 'draft', hiddenFields) {
54
56
  createdBy: doc.createdBy,
55
57
  updatedBy: doc.updatedBy,
56
58
  publishedAt: doc.publishedAt,
57
- publishedHash: doc.publishedHash
59
+ publishedHash: doc.publishedHash,
60
+ // CAS guard — callers echo this back as `expectedRevision` on their next
61
+ // write so a stale save (second tab, an agent) surfaces as a conflict
62
+ // instead of silently overwriting a change made after this read.
63
+ revision: doc.revision
58
64
  }
59
65
  };
60
66
  }
@@ -346,24 +352,45 @@ export class CollectionAPI {
346
352
  throw new Error(`Cannot publish: validation errors - ${errorMessage}`);
347
353
  }
348
354
  }
349
- // Create document with normalized data (dates in ISO format)
350
- const document = await this.databaseAdapter.createDocument({
351
- organizationId: context.organizationId,
352
- type: this.collectionName,
353
- draftData: validationResult.normalizedData,
354
- createdBy: context.user?.id,
355
- id: options?.id
356
- });
357
- await this.syncReferences(context.organizationId, document.id, validationResult.normalizedData);
358
- // Create initial draft version
359
- if (this.versionService && !options?.skipVersioning) {
360
- await this.versionService.createVersion(this.databaseAdapter, context.organizationId, document.id, 'draft', validationResult.normalizedData, context.user?.id);
361
- }
362
- // Publish immediately if requested (validation already done above)
355
+ // versionService present unless the caller opted out of versioning; capturing it
356
+ // here narrows the type so the tx callbacks don't need non-null assertions.
357
+ const versionService = options?.skipVersioning ? undefined : this.versionService;
358
+ // Publish path: create + draft-version + publish + publish-version must commit
359
+ // together, or a crash between them leaves an inconsistent document (a draft that
360
+ // was meant to be published, or a published doc with no version row). Run all of
361
+ // it in one transaction. Validation already passed the block-check above, so we
362
+ // never enter the tx with invalid data.
363
363
  if (options?.publish) {
364
- const published = this.versionService && !options?.skipVersioning
365
- ? await this.versionService.publishWithVersion(this.databaseAdapter, context.organizationId, document.id)
366
- : await this.databaseAdapter.publishDoc(context.organizationId, document.id);
364
+ const { document, published } = await this.databaseAdapter.withTransaction(async (tx) => {
365
+ const document = await tx.createDocument({
366
+ organizationId: context.organizationId,
367
+ type: this.collectionName,
368
+ draftData: validationResult.normalizedData,
369
+ createdBy: context.user?.id,
370
+ id: options?.id
371
+ });
372
+ if (versionService) {
373
+ await versionService.snapshotTx(tx, context.organizationId, document.id, 'draft', validationResult.normalizedData, context.user?.id);
374
+ }
375
+ // Either branch emits `document.published` in this same tx: the versioned path
376
+ // from publishTx, the non-versioned path via emitDocumentPublished here.
377
+ let published;
378
+ if (versionService) {
379
+ published = await versionService.publishTx(tx, context.organizationId, document.id);
380
+ }
381
+ else {
382
+ published = await tx.publishDoc(context.organizationId, document.id);
383
+ if (published)
384
+ await emitDocumentPublished(tx, context.organizationId, published);
385
+ }
386
+ return { document, published };
387
+ });
388
+ // Post-commit side effects: ref index is best-effort, retention is one pass
389
+ // covering both the draft and publish snapshots written inside the tx.
390
+ await this.syncReferences(context.organizationId, document.id, validationResult.normalizedData);
391
+ if (versionService) {
392
+ await versionService.enforceRetentionFor(this.databaseAdapter, context.organizationId, document.id);
393
+ }
367
394
  if (published) {
368
395
  if (this.documentCache) {
369
396
  await this.documentCache.invalidateDocument(context.organizationId, document.id);
@@ -374,6 +401,27 @@ export class CollectionAPI {
374
401
  validation: validationResult
375
402
  };
376
403
  }
404
+ // publishDoc returned null (unexpected): fall back to returning the draft.
405
+ if (this.documentCache) {
406
+ await this.documentCache.invalidateCollection(context.organizationId, this.collectionName);
407
+ }
408
+ return {
409
+ document: transformDocument(document, 'draft'),
410
+ validation: validationResult
411
+ };
412
+ }
413
+ // Draft-only path.
414
+ const document = await this.databaseAdapter.createDocument({
415
+ organizationId: context.organizationId,
416
+ type: this.collectionName,
417
+ draftData: validationResult.normalizedData,
418
+ createdBy: context.user?.id,
419
+ id: options?.id
420
+ });
421
+ await this.syncReferences(context.organizationId, document.id, validationResult.normalizedData);
422
+ // Create initial draft version
423
+ if (versionService) {
424
+ await versionService.createVersion(this.databaseAdapter, context.organizationId, document.id, 'draft', validationResult.normalizedData, context.user?.id);
377
425
  }
378
426
  if (this.documentCache) {
379
427
  await this.documentCache.invalidateCollection(context.organizationId, this.collectionName);
@@ -436,9 +484,12 @@ export class CollectionAPI {
436
484
  const validationResult = await validateDocumentData(this._schema, hookedData);
437
485
  // Update draft with normalized data (dates in ISO format)
438
486
  // Use VersionService for atomic save + version creation if available
487
+ // RevisionConflictError propagates un-swallowed — a stale caller (a second
488
+ // tab, an agent that read the doc seconds ago) gets a surfaced conflict
489
+ // instead of silently overwriting a change made after it read the document.
439
490
  const document = this.versionService && !options?.skipVersioning
440
- ? await this.versionService.saveWithVersion(this.databaseAdapter, context.organizationId, id, validationResult.normalizedData, context.user?.id)
441
- : await this.databaseAdapter.updateDocDraft(context.organizationId, id, validationResult.normalizedData, context.user?.id);
491
+ ? await this.versionService.saveWithVersion(this.databaseAdapter, context.organizationId, id, validationResult.normalizedData, context.user?.id, options?.expectedRevision)
492
+ : await this.databaseAdapter.updateDocDraft(context.organizationId, id, validationResult.normalizedData, context.user?.id, options?.expectedRevision);
442
493
  if (!document) {
443
494
  return null;
444
495
  }
@@ -454,7 +505,7 @@ export class CollectionAPI {
454
505
  }
455
506
  const published = this.versionService && !options?.skipVersioning
456
507
  ? await this.versionService.publishWithVersion(this.databaseAdapter, context.organizationId, document.id)
457
- : await this.databaseAdapter.publishDoc(context.organizationId, document.id);
508
+ : await this.publishWithoutVersion(context.organizationId, document.id);
458
509
  if (published) {
459
510
  // Invalidate cache
460
511
  if (this.documentCache) {
@@ -516,7 +567,21 @@ export class CollectionAPI {
516
567
  * );
517
568
  * ```
518
569
  */
519
- async publish(context, id) {
570
+ /**
571
+ * Publish without a version snapshot — the branch taken when there's no version service or
572
+ * the caller passed `skipVersioning`. Still emits `document.published` (and its outbox row)
573
+ * atomically with the publish, so the domain fact fires on EVERY publish path, not only the
574
+ * versioned one. The versioned branch emits the same event from `versionService.publishTx`.
575
+ */
576
+ async publishWithoutVersion(organizationId, id, expectedRevision) {
577
+ return this.databaseAdapter.withTransaction(async (tx) => {
578
+ const published = await tx.publishDoc(organizationId, id, expectedRevision);
579
+ if (published)
580
+ await emitDocumentPublished(tx, organizationId, published);
581
+ return published;
582
+ });
583
+ }
584
+ async publish(context, id, options) {
520
585
  // Fetch first so policies can inspect the target. Order matters here:
521
586
  // 404s beat 403s for missing docs.
522
587
  const document = await this.databaseAdapter.findByDocIdAdvanced(context.organizationId, id);
@@ -549,10 +614,12 @@ export class CollectionAPI {
549
614
  throw new Error(`Cannot publish — ${unpublished.length} referenced document(s) are not published: ${names}`);
550
615
  }
551
616
  }
552
- // Validation passed - proceed with publish (with version if service available)
617
+ // Validation passed - proceed with publish (with version if service available). Either
618
+ // branch emits `document.published`: the versioned path from publishTx, the non-versioned
619
+ // path from publishWithoutVersion.
553
620
  const publishedDocument = this.versionService
554
- ? await this.versionService.publishWithVersion(this.databaseAdapter, context.organizationId, id)
555
- : await this.databaseAdapter.publishDoc(context.organizationId, id);
621
+ ? await this.versionService.publishWithVersion(this.databaseAdapter, context.organizationId, id, options?.expectedRevision)
622
+ : await this.publishWithoutVersion(context.organizationId, id, options?.expectedRevision);
556
623
  if (!publishedDocument) {
557
624
  return null;
558
625
  }
@@ -561,6 +628,9 @@ export class CollectionAPI {
561
628
  await this.documentCache.invalidateDocument(context.organizationId, id);
562
629
  await this.documentCache.invalidateCollection(context.organizationId, this.collectionName);
563
630
  }
631
+ // This manual publish supersedes any pending scheduled publish — cancel it so the queued
632
+ // job doesn't fire later and re-emit `document.published` (a pending unpublish is left as-is).
633
+ await this.cancelPendingScheduleOfType(context.organizationId, id, DOCUMENT_PUBLISH_JOB);
564
634
  return transformDocument(publishedDocument, 'published');
565
635
  }
566
636
  /**
@@ -574,13 +644,13 @@ export class CollectionAPI {
574
644
  * );
575
645
  * ```
576
646
  */
577
- async unpublish(context, id) {
647
+ async unpublish(context, id, options) {
578
648
  // Fetch target for policy inspection before mutating.
579
649
  const existing = await this.databaseAdapter.findByDocIdAdvanced(context.organizationId, id);
580
650
  if (!existing)
581
651
  return null;
582
652
  await this.permissions.canUnpublish(context, this.collectionName, existing);
583
- const document = await this.databaseAdapter.unpublishDoc(context.organizationId, id);
653
+ const document = await this.databaseAdapter.unpublishDoc(context.organizationId, id, options?.expectedRevision);
584
654
  if (!document) {
585
655
  return null;
586
656
  }
@@ -589,6 +659,102 @@ export class CollectionAPI {
589
659
  await this.documentCache.invalidateDocument(context.organizationId, id);
590
660
  await this.documentCache.invalidateCollection(context.organizationId, this.collectionName);
591
661
  }
662
+ // This manual unpublish supersedes any pending scheduled unpublish — cancel it so the
663
+ // queued job doesn't fire later (a pending publish is left as-is: "unpublish now,
664
+ // republish Monday" is a legitimate transition).
665
+ await this.cancelPendingScheduleOfType(context.organizationId, id, DOCUMENT_UNPUBLISH_JOB);
592
666
  return transformDocument(document, 'draft');
593
667
  }
668
+ /**
669
+ * Pending scheduled publish/unpublish jobs for one document. Scheduled jobs are few
670
+ * and `pending` is a small set, so filtering the org's pending jobs by documentId in
671
+ * memory is cheap and avoids a dialect-specific JSON query on the hot editor path.
672
+ */
673
+ async pendingScheduledFor(organizationId, documentId) {
674
+ const page = await this.databaseAdapter.listJobs({
675
+ organizationId,
676
+ status: 'pending',
677
+ limit: 200
678
+ });
679
+ return page.items.filter((j) => (j.type === DOCUMENT_PUBLISH_JOB || j.type === DOCUMENT_UNPUBLISH_JOB) &&
680
+ j.payload.documentId === documentId);
681
+ }
682
+ /**
683
+ * Cancel any pending schedule of ONE direction for a document — used when a manual
684
+ * publish/unpublish supersedes a schedule of the same kind. Only same-direction is
685
+ * cancelled on purpose: "publish now, auto-unpublish Friday" and "unpublish now,
686
+ * republish Monday" are legitimate future transitions, so a manual publish leaves a
687
+ * pending unpublish (and vice versa) alone. Without this, the queued job would fire at
688
+ * `runAt` and re-run the same transition — re-emitting `document.published`/`unpublished`
689
+ * and firing every consumer a second time (duplicate notifications, webhooks, cache busts).
690
+ */
691
+ async cancelPendingScheduleOfType(organizationId, documentId, jobType) {
692
+ const pending = await this.pendingScheduledFor(organizationId, documentId);
693
+ for (const job of pending) {
694
+ if (job.type === jobType) {
695
+ await this.databaseAdapter.cancelJob(organizationId, job.id);
696
+ }
697
+ }
698
+ }
699
+ /**
700
+ * Schedule a publish for a future `runAt`. Enqueues a `document.publish` job; the
701
+ * worker runs `publish()` at that time (re-validating, guarding references, emitting
702
+ * `document.published`). The permission check happens NOW — you must be able to publish
703
+ * to schedule one — so an unauthorized caller can't queue work to run later as the system.
704
+ * Actual publish-time validation still runs then, so a doc that goes invalid before
705
+ * `runAt` simply fails/retries rather than publishing bad content.
706
+ *
707
+ * Replace semantics: any existing pending schedule for this document is cancelled first,
708
+ * so a document has at most one pending schedule (rescheduling can't double-publish).
709
+ */
710
+ async schedulePublish(context, id, runAt) {
711
+ const document = await this.databaseAdapter.findByDocIdAdvanced(context.organizationId, id);
712
+ if (!document)
713
+ throw new Error('Document not found');
714
+ await this.permissions.canPublish(context, this.collectionName, document);
715
+ for (const existing of await this.pendingScheduledFor(context.organizationId, id)) {
716
+ await this.databaseAdapter.cancelJob(context.organizationId, existing.id);
717
+ }
718
+ return this.databaseAdapter.scheduleJob({
719
+ organizationId: context.organizationId,
720
+ type: DOCUMENT_PUBLISH_JOB,
721
+ payload: { documentId: id, documentType: this.collectionName },
722
+ runAt,
723
+ createdBy: context.user?.id ?? null
724
+ });
725
+ }
726
+ /** Schedule an unpublish for a future `runAt`. Permission-checked now; replaces any existing pending schedule. */
727
+ async scheduleUnpublish(context, id, runAt) {
728
+ const document = await this.databaseAdapter.findByDocIdAdvanced(context.organizationId, id);
729
+ if (!document)
730
+ throw new Error('Document not found');
731
+ await this.permissions.canUnpublish(context, this.collectionName, document);
732
+ for (const existing of await this.pendingScheduledFor(context.organizationId, id)) {
733
+ await this.databaseAdapter.cancelJob(context.organizationId, existing.id);
734
+ }
735
+ return this.databaseAdapter.scheduleJob({
736
+ organizationId: context.organizationId,
737
+ type: DOCUMENT_UNPUBLISH_JOB,
738
+ payload: { documentId: id, documentType: this.collectionName },
739
+ runAt,
740
+ createdBy: context.user?.id ?? null
741
+ });
742
+ }
743
+ /** Pending scheduled publish/unpublish jobs for a document (read-gated) — for the editor's schedule indicator. */
744
+ async getScheduled(context, id) {
745
+ await this.permissions.canRead(context, this.collectionName);
746
+ return this.pendingScheduledFor(context.organizationId, id);
747
+ }
748
+ /** Cancel all pending scheduled publish/unpublish jobs for a document. Returns how many were cancelled. */
749
+ async cancelScheduled(context, id) {
750
+ const document = await this.databaseAdapter.findByDocIdAdvanced(context.organizationId, id);
751
+ if (!document)
752
+ throw new Error('Document not found');
753
+ await this.permissions.canPublish(context, this.collectionName, document);
754
+ const pending = await this.pendingScheduledFor(context.organizationId, id);
755
+ for (const job of pending) {
756
+ await this.databaseAdapter.cancelJob(context.organizationId, job.id);
757
+ }
758
+ return pending.length;
759
+ }
594
760
  }
@@ -1,6 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  import type { CMSInstances } from '../hooks.js';
3
3
  import type { LocalAPIContext } from '../local-api/index.js';
4
+ import type { AgentToolDefinition, AgentToolExecutor } from '../types/agent-tools.js';
4
5
  export interface McpToolResult {
5
6
  content: Array<{
6
7
  type: 'text';
@@ -19,10 +20,44 @@ export interface McpToolDeps {
19
20
  aphexCMS: CMSInstances;
20
21
  context: LocalAPIContext;
21
22
  }
23
+ /** One content tool: its serializable definition plus the function that runs it. */
24
+ export interface ContentAgentTool {
25
+ definition: AgentToolDefinition<any>;
26
+ execute: AgentToolExecutor<any>;
27
+ }
28
+ /**
29
+ * The content-plane tools, safe to expose against a live instance: all writes go through
30
+ * LocalAPI, so a read-only API key is rejected by the permission layer, not by this
31
+ * registry. `requiredCapabilities` here is the advertisement/execution gate for the new
32
+ * agent-tool contract; document tools additionally get real enforcement downstream from
33
+ * `CollectionAPI`'s own `PermissionChecker` (unchanged) — `asset.read`/`asset.upload` have no
34
+ * such downstream check, so `list_assets`/`upload_asset` enforce it directly in `execute`.
35
+ */
36
+ export declare const contentAgentTools: ContentAgentTool[];
37
+ export interface ResolveAgentToolsOptions {
38
+ /** Set when the caller has a live document editor tab to bridge into — see
39
+ * `document-workspace-registry.svelte.ts` and `types/document-workspace.ts`. Only when
40
+ * this is present are the `execution: 'workspace'` tools (`content-workspace-tools.ts`)
41
+ * advertised at all; MCP and any request with no matching open document never see them,
42
+ * since there's no live draft on the other end to round-trip into. */
43
+ documentContext?: {
44
+ collection: string;
45
+ id: string;
46
+ };
47
+ }
48
+ /**
49
+ * The full set of tools this caller can see: core built-ins plus any
50
+ * plugin-contributed `aphex/agent/tool` parts their capabilities unlock
51
+ * (`partResolver.agentToolsForCapabilities`), plus the workspace-bridge tools when
52
+ * `documentContext` is given — the one shared list MCP, the in-admin agent runtime
53
+ * (`ai/run-agent-turn.ts`), and any other future tool-calling transport all resolve from.
54
+ * Core built-ins always win a name collision, since they're the platform's own contract.
55
+ */
56
+ export declare function resolveAgentTools({ aphexCMS, context }: McpToolDeps, opts?: ResolveAgentToolsOptions): ContentAgentTool[];
22
57
  /**
23
- * Build the content-plane tools for one authenticated request.
24
- * Safe to expose against a live instance: all writes go through LocalAPI, so a
25
- * read-only API key is rejected by the permission layer, not by this registry.
58
+ * Adapt `resolveAgentTools` into the MCP SDK's expected shape for one authenticated
59
+ * request. All the actual tool logic lives in `contentAgentTools`/plugin parts above
60
+ * this is purely a transport-shape + result-shape conversion.
26
61
  */
27
- export declare function buildContentTools({ aphexCMS, context }: McpToolDeps): McpTool[];
62
+ export declare function buildContentTools(deps: McpToolDeps): McpTool[];
28
63
  //# sourceMappingURL=tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/lib/mcp/tools.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAiB1D,MAAM,WAAW,aAAa;IAC7B,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,OAAO;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC;IAC3B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;CACnE;AAED,MAAM,WAAW,WAAW;IAC3B,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,eAAe,CAAC;CACzB;AAkID;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,WAAW,GAAG,OAAO,EAAE,CA6a/E"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/lib/mcp/tools.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EACX,mBAAmB,EACnB,iBAAiB,EAGjB,MAAM,sBAAsB,CAAC;AAoB9B,MAAM,WAAW,aAAa;IAC7B,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,OAAO;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC;IAC3B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;CACnE;AAED,MAAM,WAAW,WAAW;IAC3B,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,eAAe,CAAC;CACzB;AAED,oFAAoF;AACpF,MAAM,WAAW,gBAAgB;IAChC,UAAU,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACrC,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC;CAChC;AA6HD;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,EAAE,gBAAgB,EA0kB/C,CAAC;AASF,MAAM,WAAW,wBAAwB;IACxC;;;;0EAIsE;IACtE,eAAe,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CACrD;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAChC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,WAAW,EAClC,IAAI,CAAC,EAAE,wBAAwB,GAC7B,gBAAgB,EAAE,CAuBpB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,EAAE,CAS9D"}