@zlooks.cn/blog-server 1.0.6 → 1.0.7

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 (546) hide show
  1. package/dist/blog/blog-application.d.ts +14 -0
  2. package/dist/blog/blog-application.d.ts.map +1 -1
  3. package/dist/blog/blog-application.js +5 -3
  4. package/dist/blog/blog-application.js.map +1 -1
  5. package/dist/blog/comment-client-metadata.d.ts +6 -3
  6. package/dist/blog/comment-client-metadata.d.ts.map +1 -1
  7. package/dist/blog/comment-client-metadata.js +13 -3
  8. package/dist/blog/comment-client-metadata.js.map +1 -1
  9. package/dist/blog/errors.d.ts +6 -0
  10. package/dist/blog/errors.d.ts.map +1 -1
  11. package/dist/blog/errors.js +42 -2
  12. package/dist/blog/errors.js.map +1 -1
  13. package/dist/blog/post-content-audit.d.ts.map +1 -1
  14. package/dist/blog/post-content-audit.js +48 -11
  15. package/dist/blog/post-content-audit.js.map +1 -1
  16. package/dist/blog/public-blog-service.d.ts +47 -18
  17. package/dist/blog/public-blog-service.d.ts.map +1 -1
  18. package/dist/blog/public-blog-service.js +132 -91
  19. package/dist/blog/public-blog-service.js.map +1 -1
  20. package/dist/browser-api/http-message.d.ts +53 -0
  21. package/dist/browser-api/http-message.d.ts.map +1 -0
  22. package/dist/browser-api/http-message.js +157 -0
  23. package/dist/browser-api/http-message.js.map +1 -0
  24. package/dist/config/schema.d.ts.map +1 -1
  25. package/dist/config/schema.js +10 -3
  26. package/dist/config/schema.js.map +1 -1
  27. package/dist/contracts/public-api.d.ts +1 -1
  28. package/dist/contracts/public-api.d.ts.map +1 -1
  29. package/dist/contracts/public-api.js +1 -1
  30. package/dist/contracts/public-api.js.map +1 -1
  31. package/dist/events/blog-domain-events.d.ts.map +1 -1
  32. package/dist/events/blog-domain-events.js +54 -21
  33. package/dist/events/blog-domain-events.js.map +1 -1
  34. package/dist/mcp/blog-provider.d.ts +2 -3
  35. package/dist/mcp/blog-provider.d.ts.map +1 -1
  36. package/dist/mcp/blog-provider.js +3 -3
  37. package/dist/mcp/blog-provider.js.map +1 -1
  38. package/dist/mcp/blog-resources.d.ts +2 -1
  39. package/dist/mcp/blog-resources.d.ts.map +1 -1
  40. package/dist/mcp/blog-resources.js +25 -63
  41. package/dist/mcp/blog-resources.js.map +1 -1
  42. package/dist/mcp/category-tools.d.ts +2 -2
  43. package/dist/mcp/category-tools.d.ts.map +1 -1
  44. package/dist/mcp/category-tools.js +17 -7
  45. package/dist/mcp/category-tools.js.map +1 -1
  46. package/dist/mcp/comment-tools.d.ts +2 -2
  47. package/dist/mcp/comment-tools.d.ts.map +1 -1
  48. package/dist/mcp/comment-tools.js +23 -9
  49. package/dist/mcp/comment-tools.js.map +1 -1
  50. package/dist/mcp/friend-link-tools.d.ts +2 -2
  51. package/dist/mcp/friend-link-tools.d.ts.map +1 -1
  52. package/dist/mcp/friend-link-tools.js +22 -10
  53. package/dist/mcp/friend-link-tools.js.map +1 -1
  54. package/dist/mcp/page-tools.d.ts +2 -2
  55. package/dist/mcp/page-tools.d.ts.map +1 -1
  56. package/dist/mcp/page-tools.js +13 -14
  57. package/dist/mcp/page-tools.js.map +1 -1
  58. package/dist/mcp/post-tools.d.ts +2 -2
  59. package/dist/mcp/post-tools.d.ts.map +1 -1
  60. package/dist/mcp/post-tools.js +104 -70
  61. package/dist/mcp/post-tools.js.map +1 -1
  62. package/dist/mcp/tag-tools.d.ts +2 -2
  63. package/dist/mcp/tag-tools.d.ts.map +1 -1
  64. package/dist/mcp/tag-tools.js +15 -7
  65. package/dist/mcp/tag-tools.js.map +1 -1
  66. package/dist/mcp/theme-tools.d.ts +2 -2
  67. package/dist/mcp/theme-tools.d.ts.map +1 -1
  68. package/dist/mcp/theme-tools.js +69 -40
  69. package/dist/mcp/theme-tools.js.map +1 -1
  70. package/dist/mcp/tool-support.d.ts +16 -111
  71. package/dist/mcp/tool-support.d.ts.map +1 -1
  72. package/dist/mcp/tool-support.js +84 -93
  73. package/dist/mcp/tool-support.js.map +1 -1
  74. package/dist/messages/api/blog/[path+]/index.msg.d.ts +3 -0
  75. package/dist/messages/api/blog/[path+]/index.msg.d.ts.map +1 -0
  76. package/dist/messages/api/blog/[path+]/index.msg.js +7 -0
  77. package/dist/messages/api/blog/[path+]/index.msg.js.map +1 -0
  78. package/dist/messages/api/blog/categories/index.msg.d.ts +3 -0
  79. package/dist/messages/api/blog/categories/index.msg.d.ts.map +1 -0
  80. package/dist/messages/api/blog/categories/index.msg.js +9 -0
  81. package/dist/messages/api/blog/categories/index.msg.js.map +1 -0
  82. package/dist/messages/api/blog/friend-links/index.msg.d.ts +3 -0
  83. package/dist/messages/api/blog/friend-links/index.msg.d.ts.map +1 -0
  84. package/dist/messages/api/blog/friend-links/index.msg.js +9 -0
  85. package/dist/messages/api/blog/friend-links/index.msg.js.map +1 -0
  86. package/dist/messages/api/blog/likes/[slug]/index.msg.d.ts +3 -0
  87. package/dist/messages/api/blog/likes/[slug]/index.msg.d.ts.map +1 -0
  88. package/dist/messages/api/blog/likes/[slug]/index.msg.js +17 -0
  89. package/dist/messages/api/blog/likes/[slug]/index.msg.js.map +1 -0
  90. package/dist/messages/api/blog/posts/[slug]/comments/index.msg.d.ts +3 -0
  91. package/dist/messages/api/blog/posts/[slug]/comments/index.msg.d.ts.map +1 -0
  92. package/dist/messages/api/blog/posts/[slug]/comments/index.msg.js +21 -0
  93. package/dist/messages/api/blog/posts/[slug]/comments/index.msg.js.map +1 -0
  94. package/dist/messages/api/blog/posts/[slug]/index.msg.d.ts +3 -0
  95. package/dist/messages/api/blog/posts/[slug]/index.msg.d.ts.map +1 -0
  96. package/dist/messages/api/blog/posts/[slug]/index.msg.js +14 -0
  97. package/dist/messages/api/blog/posts/[slug]/index.msg.js.map +1 -0
  98. package/dist/messages/api/blog/posts/index.msg.d.ts +3 -0
  99. package/dist/messages/api/blog/posts/index.msg.d.ts.map +1 -0
  100. package/dist/messages/api/blog/posts/index.msg.js +15 -0
  101. package/dist/messages/api/blog/posts/index.msg.js.map +1 -0
  102. package/dist/messages/api/blog/search/index.msg.d.ts +3 -0
  103. package/dist/messages/api/blog/search/index.msg.d.ts.map +1 -0
  104. package/dist/messages/api/blog/search/index.msg.js +12 -0
  105. package/dist/messages/api/blog/search/index.msg.js.map +1 -0
  106. package/dist/messages/api/blog/tags/index.msg.d.ts +3 -0
  107. package/dist/messages/api/blog/tags/index.msg.d.ts.map +1 -0
  108. package/dist/messages/api/blog/tags/index.msg.js +9 -0
  109. package/dist/messages/api/blog/tags/index.msg.js.map +1 -0
  110. package/dist/messages/management/categories.msg.d.ts +3 -0
  111. package/dist/messages/management/categories.msg.d.ts.map +1 -0
  112. package/dist/messages/management/categories.msg.js +21 -0
  113. package/dist/messages/management/categories.msg.js.map +1 -0
  114. package/dist/messages/{browser/dispatch.msg.d.ts → management/comments.msg.d.ts} +1 -1
  115. package/dist/messages/management/comments.msg.d.ts.map +1 -0
  116. package/dist/messages/management/comments.msg.js +24 -0
  117. package/dist/messages/management/comments.msg.js.map +1 -0
  118. package/dist/messages/management/friend-links.msg.d.ts +3 -0
  119. package/dist/messages/management/friend-links.msg.d.ts.map +1 -0
  120. package/dist/messages/management/friend-links.msg.js +27 -0
  121. package/dist/messages/management/friend-links.msg.js.map +1 -0
  122. package/dist/messages/management/pages.msg.d.ts +3 -0
  123. package/dist/messages/management/pages.msg.d.ts.map +1 -0
  124. package/dist/messages/management/pages.msg.js +27 -0
  125. package/dist/messages/management/pages.msg.js.map +1 -0
  126. package/dist/messages/management/posts.msg.d.ts +3 -0
  127. package/dist/messages/management/posts.msg.d.ts.map +1 -0
  128. package/dist/messages/management/posts.msg.js +48 -0
  129. package/dist/messages/management/posts.msg.js.map +1 -0
  130. package/dist/messages/management/tags.msg.d.ts +3 -0
  131. package/dist/messages/management/tags.msg.d.ts.map +1 -0
  132. package/dist/messages/management/tags.msg.js +21 -0
  133. package/dist/messages/management/tags.msg.js.map +1 -0
  134. package/dist/messages/management/themes.msg.d.ts +3 -0
  135. package/dist/messages/management/themes.msg.d.ts.map +1 -0
  136. package/dist/messages/management/themes.msg.js +18 -0
  137. package/dist/messages/management/themes.msg.js.map +1 -0
  138. package/dist/messages/model-message.d.ts +5 -0
  139. package/dist/messages/model-message.d.ts.map +1 -0
  140. package/dist/messages/model-message.js +9 -0
  141. package/dist/messages/model-message.js.map +1 -0
  142. package/dist/messages/public/categories/list.msg.js +3 -7
  143. package/dist/messages/public/categories/list.msg.js.map +1 -1
  144. package/dist/messages/public/comments/create.msg.d.ts +3 -0
  145. package/dist/messages/public/comments/create.msg.d.ts.map +1 -0
  146. package/dist/messages/public/comments/create.msg.js +38 -0
  147. package/dist/messages/public/comments/create.msg.js.map +1 -0
  148. package/dist/messages/public/comments/list.msg.js +20 -4
  149. package/dist/messages/public/comments/list.msg.js.map +1 -1
  150. package/dist/messages/public/comments/recent.msg.js +12 -4
  151. package/dist/messages/public/comments/recent.msg.js.map +1 -1
  152. package/dist/messages/public/friend-links/list.msg.js +3 -7
  153. package/dist/messages/public/friend-links/list.msg.js.map +1 -1
  154. package/dist/messages/public/pages/list.msg.js +3 -7
  155. package/dist/messages/public/pages/list.msg.js.map +1 -1
  156. package/dist/messages/public/pages/read.msg.js +3 -7
  157. package/dist/messages/public/pages/read.msg.js.map +1 -1
  158. package/dist/messages/public/posts/archive.msg.js +3 -7
  159. package/dist/messages/public/posts/archive.msg.js.map +1 -1
  160. package/dist/messages/public/posts/connections.msg.js +3 -7
  161. package/dist/messages/public/posts/connections.msg.js.map +1 -1
  162. package/dist/messages/public/posts/list.msg.js +20 -4
  163. package/dist/messages/public/posts/list.msg.js.map +1 -1
  164. package/dist/messages/public/posts/open.msg.js +12 -4
  165. package/dist/messages/public/posts/open.msg.js.map +1 -1
  166. package/dist/messages/public/posts/read.msg.js +3 -7
  167. package/dist/messages/public/posts/read.msg.js.map +1 -1
  168. package/dist/messages/public/posts/search.msg.d.ts +3 -0
  169. package/dist/messages/public/posts/search.msg.d.ts.map +1 -0
  170. package/dist/messages/public/posts/search.msg.js +4 -0
  171. package/dist/messages/public/posts/search.msg.js.map +1 -0
  172. package/dist/messages/public/posts/set-liked.msg.d.ts +3 -0
  173. package/dist/messages/public/posts/set-liked.msg.d.ts.map +1 -0
  174. package/dist/messages/public/posts/set-liked.msg.js +36 -0
  175. package/dist/messages/public/posts/set-liked.msg.js.map +1 -0
  176. package/dist/messages/public/tags/list.msg.js +3 -7
  177. package/dist/messages/public/tags/list.msg.js.map +1 -1
  178. package/dist/messages/resources/event-catalog.msg.d.ts +3 -0
  179. package/dist/messages/resources/event-catalog.msg.d.ts.map +1 -0
  180. package/dist/messages/resources/event-catalog.msg.js +4 -0
  181. package/dist/messages/resources/event-catalog.msg.js.map +1 -0
  182. package/dist/messages/resources/theme-authoring-contract.msg.d.ts +3 -0
  183. package/dist/messages/resources/theme-authoring-contract.msg.d.ts.map +1 -0
  184. package/dist/messages/resources/theme-authoring-contract.msg.js +4 -0
  185. package/dist/messages/resources/theme-authoring-contract.msg.js.map +1 -0
  186. package/dist/messages/sitemap/entries.msg.d.ts +3 -0
  187. package/dist/messages/sitemap/entries.msg.d.ts.map +1 -0
  188. package/dist/messages/sitemap/entries.msg.js +9 -0
  189. package/dist/messages/sitemap/entries.msg.js.map +1 -0
  190. package/dist/messages/user-context.d.ts +21 -0
  191. package/dist/messages/user-context.d.ts.map +1 -0
  192. package/dist/messages/user-context.js +47 -0
  193. package/dist/messages/user-context.js.map +1 -0
  194. package/dist/migrations/index.d.ts +2 -0
  195. package/dist/migrations/index.d.ts.map +1 -1
  196. package/dist/migrations/index.js +6 -0
  197. package/dist/migrations/index.js.map +1 -1
  198. package/dist/models/blog-resource-documents.d.ts +33 -0
  199. package/dist/models/blog-resource-documents.d.ts.map +1 -0
  200. package/dist/models/blog-resource-documents.js +60 -0
  201. package/dist/models/blog-resource-documents.js.map +1 -0
  202. package/dist/models/management/approve-comment.model.d.ts +23 -0
  203. package/dist/models/management/approve-comment.model.d.ts.map +1 -0
  204. package/dist/models/management/approve-comment.model.js +14 -0
  205. package/dist/models/management/approve-comment.model.js.map +1 -0
  206. package/dist/models/management/archive-page.model.d.ts +21 -0
  207. package/dist/models/management/archive-page.model.d.ts.map +1 -0
  208. package/dist/models/management/archive-page.model.js +14 -0
  209. package/dist/models/management/archive-page.model.js.map +1 -0
  210. package/dist/models/management/archive-post.model.d.ts +28 -0
  211. package/dist/models/management/archive-post.model.d.ts.map +1 -0
  212. package/dist/models/management/archive-post.model.js +14 -0
  213. package/dist/models/management/archive-post.model.js.map +1 -0
  214. package/dist/models/management/audit-post-content.model.d.ts +21 -0
  215. package/dist/models/management/audit-post-content.model.d.ts.map +1 -0
  216. package/dist/models/management/audit-post-content.model.js +12 -0
  217. package/dist/models/management/audit-post-content.model.js.map +1 -0
  218. package/dist/models/management/create-category.model.d.ts +17 -0
  219. package/dist/models/management/create-category.model.d.ts.map +1 -0
  220. package/dist/models/management/create-category.model.js +14 -0
  221. package/dist/models/management/create-category.model.js.map +1 -0
  222. package/dist/models/management/create-friend-link.model.d.ts +19 -0
  223. package/dist/models/management/create-friend-link.model.d.ts.map +1 -0
  224. package/dist/models/management/create-friend-link.model.js +14 -0
  225. package/dist/models/management/create-friend-link.model.js.map +1 -0
  226. package/dist/models/management/create-page.model.d.ts +21 -0
  227. package/dist/models/management/create-page.model.d.ts.map +1 -0
  228. package/dist/models/management/create-page.model.js +14 -0
  229. package/dist/models/management/create-page.model.js.map +1 -0
  230. package/dist/models/management/create-post.model.d.ts +28 -0
  231. package/dist/models/management/create-post.model.d.ts.map +1 -0
  232. package/dist/models/management/create-post.model.js +14 -0
  233. package/dist/models/management/create-post.model.js.map +1 -0
  234. package/dist/models/management/create-tag.model.d.ts +15 -0
  235. package/dist/models/management/create-tag.model.d.ts.map +1 -0
  236. package/dist/models/management/create-tag.model.js +14 -0
  237. package/dist/models/management/create-tag.model.js.map +1 -0
  238. package/dist/models/management/delete-category.model.d.ts +10 -0
  239. package/dist/models/management/delete-category.model.d.ts.map +1 -0
  240. package/dist/models/management/delete-category.model.js +12 -0
  241. package/dist/models/management/delete-category.model.js.map +1 -0
  242. package/dist/models/management/delete-comment.model.d.ts +10 -0
  243. package/dist/models/management/delete-comment.model.d.ts.map +1 -0
  244. package/dist/models/management/delete-comment.model.js +12 -0
  245. package/dist/models/management/delete-comment.model.js.map +1 -0
  246. package/dist/models/management/delete-friend-link.model.d.ts +10 -0
  247. package/dist/models/management/delete-friend-link.model.d.ts.map +1 -0
  248. package/dist/models/management/delete-friend-link.model.js +12 -0
  249. package/dist/models/management/delete-friend-link.model.js.map +1 -0
  250. package/dist/models/management/delete-page.model.d.ts +10 -0
  251. package/dist/models/management/delete-page.model.d.ts.map +1 -0
  252. package/dist/models/management/delete-page.model.js +12 -0
  253. package/dist/models/management/delete-page.model.js.map +1 -0
  254. package/dist/models/management/delete-post.model.d.ts +10 -0
  255. package/dist/models/management/delete-post.model.d.ts.map +1 -0
  256. package/dist/models/management/delete-post.model.js +12 -0
  257. package/dist/models/management/delete-post.model.js.map +1 -0
  258. package/dist/models/management/delete-tag.model.d.ts +10 -0
  259. package/dist/models/management/delete-tag.model.d.ts.map +1 -0
  260. package/dist/models/management/delete-tag.model.js +12 -0
  261. package/dist/models/management/delete-tag.model.js.map +1 -0
  262. package/dist/models/management/disable-friend-link.model.d.ts +19 -0
  263. package/dist/models/management/disable-friend-link.model.d.ts.map +1 -0
  264. package/dist/models/management/disable-friend-link.model.js +14 -0
  265. package/dist/models/management/disable-friend-link.model.js.map +1 -0
  266. package/dist/models/management/enable-friend-link.model.d.ts +19 -0
  267. package/dist/models/management/enable-friend-link.model.d.ts.map +1 -0
  268. package/dist/models/management/enable-friend-link.model.js +14 -0
  269. package/dist/models/management/enable-friend-link.model.js.map +1 -0
  270. package/dist/models/management/list-category.model.d.ts +18 -0
  271. package/dist/models/management/list-category.model.d.ts.map +1 -0
  272. package/dist/models/management/list-category.model.js +13 -0
  273. package/dist/models/management/list-category.model.js.map +1 -0
  274. package/dist/models/management/list-comment.model.d.ts +24 -0
  275. package/dist/models/management/list-comment.model.d.ts.map +1 -0
  276. package/dist/models/management/list-comment.model.js +13 -0
  277. package/dist/models/management/list-comment.model.js.map +1 -0
  278. package/dist/models/management/list-friend-link.model.d.ts +20 -0
  279. package/dist/models/management/list-friend-link.model.d.ts.map +1 -0
  280. package/dist/models/management/list-friend-link.model.js +16 -0
  281. package/dist/models/management/list-friend-link.model.js.map +1 -0
  282. package/dist/models/management/list-page.model.d.ts +22 -0
  283. package/dist/models/management/list-page.model.d.ts.map +1 -0
  284. package/dist/models/management/list-page.model.js +13 -0
  285. package/dist/models/management/list-page.model.js.map +1 -0
  286. package/dist/models/management/list-post-archive.model.d.ts +30 -0
  287. package/dist/models/management/list-post-archive.model.d.ts.map +1 -0
  288. package/dist/models/management/list-post-archive.model.js +32 -0
  289. package/dist/models/management/list-post-archive.model.js.map +1 -0
  290. package/dist/models/management/list-post.model.d.ts +29 -0
  291. package/dist/models/management/list-post.model.d.ts.map +1 -0
  292. package/dist/models/management/list-post.model.js +13 -0
  293. package/dist/models/management/list-post.model.js.map +1 -0
  294. package/dist/models/management/list-tag.model.d.ts +16 -0
  295. package/dist/models/management/list-tag.model.d.ts.map +1 -0
  296. package/dist/models/management/list-tag.model.js +13 -0
  297. package/dist/models/management/list-tag.model.js.map +1 -0
  298. package/dist/models/management/list-theme.model.d.ts +3 -0
  299. package/dist/models/management/list-theme.model.d.ts.map +1 -0
  300. package/dist/models/management/list-theme.model.js +12 -0
  301. package/dist/models/management/list-theme.model.js.map +1 -0
  302. package/dist/models/management/publish-page.model.d.ts +21 -0
  303. package/dist/models/management/publish-page.model.d.ts.map +1 -0
  304. package/dist/models/management/publish-page.model.js +14 -0
  305. package/dist/models/management/publish-page.model.js.map +1 -0
  306. package/dist/models/management/publish-post.model.d.ts +28 -0
  307. package/dist/models/management/publish-post.model.d.ts.map +1 -0
  308. package/dist/models/management/publish-post.model.js +14 -0
  309. package/dist/models/management/publish-post.model.js.map +1 -0
  310. package/dist/models/management/read-category.model.d.ts +17 -0
  311. package/dist/models/management/read-category.model.d.ts.map +1 -0
  312. package/dist/models/management/read-category.model.js +14 -0
  313. package/dist/models/management/read-category.model.js.map +1 -0
  314. package/dist/models/management/read-comment.model.d.ts +23 -0
  315. package/dist/models/management/read-comment.model.d.ts.map +1 -0
  316. package/dist/models/management/read-comment.model.js +14 -0
  317. package/dist/models/management/read-comment.model.js.map +1 -0
  318. package/dist/models/management/read-friend-link.model.d.ts +19 -0
  319. package/dist/models/management/read-friend-link.model.d.ts.map +1 -0
  320. package/dist/models/management/read-friend-link.model.js +14 -0
  321. package/dist/models/management/read-friend-link.model.js.map +1 -0
  322. package/dist/models/management/read-page.model.d.ts +21 -0
  323. package/dist/models/management/read-page.model.d.ts.map +1 -0
  324. package/dist/models/management/read-page.model.js +14 -0
  325. package/dist/models/management/read-page.model.js.map +1 -0
  326. package/dist/models/management/read-post.model.d.ts +28 -0
  327. package/dist/models/management/read-post.model.d.ts.map +1 -0
  328. package/dist/models/management/read-post.model.js +14 -0
  329. package/dist/models/management/read-post.model.js.map +1 -0
  330. package/dist/models/management/read-tag.model.d.ts +15 -0
  331. package/dist/models/management/read-tag.model.d.ts.map +1 -0
  332. package/dist/models/management/read-tag.model.js +14 -0
  333. package/dist/models/management/read-tag.model.js.map +1 -0
  334. package/dist/models/management/read-theme-selection.model.d.ts +8 -0
  335. package/dist/models/management/read-theme-selection.model.d.ts.map +1 -0
  336. package/dist/models/management/read-theme-selection.model.js +12 -0
  337. package/dist/models/management/read-theme-selection.model.js.map +1 -0
  338. package/dist/models/management/read-theme-status.model.d.ts +3 -0
  339. package/dist/models/management/read-theme-status.model.d.ts.map +1 -0
  340. package/dist/models/management/read-theme-status.model.js +14 -0
  341. package/dist/models/management/read-theme-status.model.js.map +1 -0
  342. package/dist/models/management/reject-comment.model.d.ts +23 -0
  343. package/dist/models/management/reject-comment.model.d.ts.map +1 -0
  344. package/dist/models/management/reject-comment.model.js +14 -0
  345. package/dist/models/management/reject-comment.model.js.map +1 -0
  346. package/dist/models/management/reply-comment.model.d.ts +23 -0
  347. package/dist/models/management/reply-comment.model.d.ts.map +1 -0
  348. package/dist/models/management/reply-comment.model.js +18 -0
  349. package/dist/models/management/reply-comment.model.js.map +1 -0
  350. package/dist/models/management/search-post.model.d.ts +27 -0
  351. package/dist/models/management/search-post.model.d.ts.map +1 -0
  352. package/dist/models/management/search-post.model.js +18 -0
  353. package/dist/models/management/search-post.model.js.map +1 -0
  354. package/dist/models/management/select-theme.model.d.ts +3 -0
  355. package/dist/models/management/select-theme.model.d.ts.map +1 -0
  356. package/dist/models/management/select-theme.model.js +16 -0
  357. package/dist/models/management/select-theme.model.js.map +1 -0
  358. package/dist/models/management/update-category.model.d.ts +17 -0
  359. package/dist/models/management/update-category.model.d.ts.map +1 -0
  360. package/dist/models/management/update-category.model.js +16 -0
  361. package/dist/models/management/update-category.model.js.map +1 -0
  362. package/dist/models/management/update-friend-link.model.d.ts +19 -0
  363. package/dist/models/management/update-friend-link.model.d.ts.map +1 -0
  364. package/dist/models/management/update-friend-link.model.js +16 -0
  365. package/dist/models/management/update-friend-link.model.js.map +1 -0
  366. package/dist/models/management/update-page.model.d.ts +21 -0
  367. package/dist/models/management/update-page.model.d.ts.map +1 -0
  368. package/dist/models/management/update-page.model.js +16 -0
  369. package/dist/models/management/update-page.model.js.map +1 -0
  370. package/dist/models/management/update-post.model.d.ts +28 -0
  371. package/dist/models/management/update-post.model.d.ts.map +1 -0
  372. package/dist/models/management/update-post.model.js +16 -0
  373. package/dist/models/management/update-post.model.js.map +1 -0
  374. package/dist/models/management/update-tag.model.d.ts +15 -0
  375. package/dist/models/management/update-tag.model.d.ts.map +1 -0
  376. package/dist/models/management/update-tag.model.js +16 -0
  377. package/dist/models/management/update-tag.model.js.map +1 -0
  378. package/dist/models/management-projection.d.ts +97 -0
  379. package/dist/models/management-projection.d.ts.map +1 -0
  380. package/dist/models/management-projection.js +76 -0
  381. package/dist/models/management-projection.js.map +1 -0
  382. package/dist/models/public/create-comment.model.d.ts +24 -0
  383. package/dist/models/public/create-comment.model.d.ts.map +1 -0
  384. package/dist/models/public/create-comment.model.js +12 -0
  385. package/dist/models/public/create-comment.model.js.map +1 -0
  386. package/dist/models/public/list-categories.model.d.ts +14 -0
  387. package/dist/models/public/list-categories.model.d.ts.map +1 -0
  388. package/dist/models/public/list-categories.model.js +11 -0
  389. package/dist/models/public/list-categories.model.js.map +1 -0
  390. package/dist/models/public/list-comments.model.d.ts +13 -0
  391. package/dist/models/public/list-comments.model.d.ts.map +1 -0
  392. package/dist/models/public/list-comments.model.js +16 -0
  393. package/dist/models/public/list-comments.model.js.map +1 -0
  394. package/dist/models/public/list-friend-links.model.d.ts +14 -0
  395. package/dist/models/public/list-friend-links.model.d.ts.map +1 -0
  396. package/dist/models/public/list-friend-links.model.js +11 -0
  397. package/dist/models/public/list-friend-links.model.js.map +1 -0
  398. package/dist/models/public/list-pages.model.d.ts +16 -0
  399. package/dist/models/public/list-pages.model.d.ts.map +1 -0
  400. package/dist/models/public/list-pages.model.js +11 -0
  401. package/dist/models/public/list-pages.model.js.map +1 -0
  402. package/dist/models/public/list-post-archive.model.d.ts +36 -0
  403. package/dist/models/public/list-post-archive.model.d.ts.map +1 -0
  404. package/dist/models/public/list-post-archive.model.js +11 -0
  405. package/dist/models/public/list-post-archive.model.js.map +1 -0
  406. package/dist/models/public/list-posts.model.d.ts +31 -0
  407. package/dist/models/public/list-posts.model.d.ts.map +1 -0
  408. package/dist/models/public/list-posts.model.js +17 -0
  409. package/dist/models/public/list-posts.model.js.map +1 -0
  410. package/dist/models/public/list-recent-comments.model.d.ts +10 -0
  411. package/dist/models/public/list-recent-comments.model.d.ts.map +1 -0
  412. package/dist/models/public/list-recent-comments.model.js +15 -0
  413. package/dist/models/public/list-recent-comments.model.js.map +1 -0
  414. package/dist/models/public/list-tags.model.d.ts +11 -0
  415. package/dist/models/public/list-tags.model.d.ts.map +1 -0
  416. package/dist/models/public/list-tags.model.js +11 -0
  417. package/dist/models/public/list-tags.model.js.map +1 -0
  418. package/dist/models/public/open-post.model.d.ts +38 -0
  419. package/dist/models/public/open-post.model.d.ts.map +1 -0
  420. package/dist/models/public/open-post.model.js +13 -0
  421. package/dist/models/public/open-post.model.js.map +1 -0
  422. package/dist/models/public/project-comments.model.d.ts +27 -0
  423. package/dist/models/public/project-comments.model.d.ts.map +1 -0
  424. package/dist/models/public/project-comments.model.js +12 -0
  425. package/dist/models/public/project-comments.model.js.map +1 -0
  426. package/dist/models/public/project-recent-comments.model.d.ts +31 -0
  427. package/dist/models/public/project-recent-comments.model.d.ts.map +1 -0
  428. package/dist/models/public/project-recent-comments.model.js +12 -0
  429. package/dist/models/public/project-recent-comments.model.js.map +1 -0
  430. package/dist/models/public/public-model-inputs.d.ts +99 -0
  431. package/dist/models/public/public-model-inputs.d.ts.map +1 -0
  432. package/dist/models/public/public-model-inputs.js +102 -0
  433. package/dist/models/public/public-model-inputs.js.map +1 -0
  434. package/dist/models/public/read-page.model.d.ts +22 -0
  435. package/dist/models/public/read-page.model.d.ts.map +1 -0
  436. package/dist/models/public/read-page.model.js +12 -0
  437. package/dist/models/public/read-page.model.js.map +1 -0
  438. package/dist/models/public/read-post-connections.model.d.ts +76 -0
  439. package/dist/models/public/read-post-connections.model.d.ts.map +1 -0
  440. package/dist/models/public/read-post-connections.model.js +12 -0
  441. package/dist/models/public/read-post-connections.model.js.map +1 -0
  442. package/dist/models/public/read-post.model.d.ts +33 -0
  443. package/dist/models/public/read-post.model.d.ts.map +1 -0
  444. package/dist/models/public/read-post.model.js +12 -0
  445. package/dist/models/public/read-post.model.js.map +1 -0
  446. package/dist/models/public/search-posts.model.d.ts +29 -0
  447. package/dist/models/public/search-posts.model.d.ts.map +1 -0
  448. package/dist/models/public/search-posts.model.js +11 -0
  449. package/dist/models/public/search-posts.model.js.map +1 -0
  450. package/dist/models/public/set-post-liked.model.d.ts +10 -0
  451. package/dist/models/public/set-post-liked.model.d.ts.map +1 -0
  452. package/dist/models/public/set-post-liked.model.js +12 -0
  453. package/dist/models/public/set-post-liked.model.js.map +1 -0
  454. package/dist/models/read-event-catalog.model.d.ts +3 -0
  455. package/dist/models/read-event-catalog.model.d.ts.map +1 -0
  456. package/dist/models/read-event-catalog.model.js +9 -0
  457. package/dist/models/read-event-catalog.model.js.map +1 -0
  458. package/dist/models/read-theme-authoring-contract.model.d.ts +33 -0
  459. package/dist/models/read-theme-authoring-contract.model.d.ts.map +1 -0
  460. package/dist/models/read-theme-authoring-contract.model.js +9 -0
  461. package/dist/models/read-theme-authoring-contract.model.js.map +1 -0
  462. package/dist/persistence/category-store.d.ts.map +1 -1
  463. package/dist/persistence/category-store.js +28 -11
  464. package/dist/persistence/category-store.js.map +1 -1
  465. package/dist/persistence/comment-store.d.ts.map +1 -1
  466. package/dist/persistence/comment-store.js +61 -20
  467. package/dist/persistence/comment-store.js.map +1 -1
  468. package/dist/persistence/entities.d.ts.map +1 -1
  469. package/dist/persistence/entities.js +15 -3
  470. package/dist/persistence/entities.js.map +1 -1
  471. package/dist/persistence/friend-link-store.d.ts.map +1 -1
  472. package/dist/persistence/friend-link-store.js +24 -7
  473. package/dist/persistence/friend-link-store.js.map +1 -1
  474. package/dist/persistence/page-store.d.ts +12 -0
  475. package/dist/persistence/page-store.d.ts.map +1 -1
  476. package/dist/persistence/page-store.js +33 -0
  477. package/dist/persistence/page-store.js.map +1 -1
  478. package/dist/persistence/post-store.d.ts +12 -0
  479. package/dist/persistence/post-store.d.ts.map +1 -1
  480. package/dist/persistence/post-store.js +240 -62
  481. package/dist/persistence/post-store.js.map +1 -1
  482. package/dist/persistence/tag-store.d.ts.map +1 -1
  483. package/dist/persistence/tag-store.js +23 -8
  484. package/dist/persistence/tag-store.js.map +1 -1
  485. package/dist/services/blog-runtime.service.d.ts +4 -4
  486. package/dist/services/blog-runtime.service.d.ts.map +1 -1
  487. package/dist/services/blog-runtime.service.js +10 -15
  488. package/dist/services/blog-runtime.service.js.map +1 -1
  489. package/dist/services/blog.boot.d.ts +1 -1
  490. package/dist/services/blog.boot.js +4 -4
  491. package/dist/services/blog.boot.js.map +1 -1
  492. package/dist/services/database.service.js +18 -3
  493. package/dist/services/database.service.js.map +1 -1
  494. package/dist/services/mcp-provider.service.js +3 -6
  495. package/dist/services/mcp-provider.service.js.map +1 -1
  496. package/dist/services/sitemap-provider.service.d.ts +4 -0
  497. package/dist/services/sitemap-provider.service.d.ts.map +1 -0
  498. package/dist/services/sitemap-provider.service.js +25 -0
  499. package/dist/services/sitemap-provider.service.js.map +1 -0
  500. package/dist/sitemap/blog-sitemap-provider.d.ts +34 -0
  501. package/dist/sitemap/blog-sitemap-provider.d.ts.map +1 -0
  502. package/dist/sitemap/blog-sitemap-provider.js +116 -0
  503. package/dist/sitemap/blog-sitemap-provider.js.map +1 -0
  504. package/dist/themes/theme-catalog.d.ts.map +1 -1
  505. package/dist/themes/theme-catalog.js +43 -26
  506. package/dist/themes/theme-catalog.js.map +1 -1
  507. package/dist/themes/theme-control.d.ts.map +1 -1
  508. package/dist/themes/theme-control.js +17 -7
  509. package/dist/themes/theme-control.js.map +1 -1
  510. package/dist/themes/theme-discovery-runtime.d.ts.map +1 -1
  511. package/dist/themes/theme-discovery-runtime.js +17 -7
  512. package/dist/themes/theme-discovery-runtime.js.map +1 -1
  513. package/dist/themes/theme-generation-store.d.ts.map +1 -1
  514. package/dist/themes/theme-generation-store.js +10 -5
  515. package/dist/themes/theme-generation-store.js.map +1 -1
  516. package/dist/themes/theme-selection-publisher.d.ts.map +1 -1
  517. package/dist/themes/theme-selection-publisher.js +11 -5
  518. package/dist/themes/theme-selection-publisher.js.map +1 -1
  519. package/package.json +23 -20
  520. package/dist/blog/micro-user-directory.d.ts +0 -11
  521. package/dist/blog/micro-user-directory.d.ts.map +0 -1
  522. package/dist/blog/micro-user-directory.js +0 -18
  523. package/dist/blog/micro-user-directory.js.map +0 -1
  524. package/dist/blog/public-blog-micro.d.ts +0 -291
  525. package/dist/blog/public-blog-micro.d.ts.map +0 -1
  526. package/dist/blog/public-blog-micro.js +0 -71
  527. package/dist/blog/public-blog-micro.js.map +0 -1
  528. package/dist/browser-api/dispatch-stream.d.ts +0 -5
  529. package/dist/browser-api/dispatch-stream.d.ts.map +0 -1
  530. package/dist/browser-api/dispatch-stream.js +0 -4
  531. package/dist/browser-api/dispatch-stream.js.map +0 -1
  532. package/dist/browser-api/dispatcher.d.ts +0 -15
  533. package/dist/browser-api/dispatcher.d.ts.map +0 -1
  534. package/dist/browser-api/dispatcher.js +0 -145
  535. package/dist/browser-api/dispatcher.js.map +0 -1
  536. package/dist/browser-api/provider-publisher.d.ts +0 -24
  537. package/dist/browser-api/provider-publisher.d.ts.map +0 -1
  538. package/dist/browser-api/provider-publisher.js +0 -107
  539. package/dist/browser-api/provider-publisher.js.map +0 -1
  540. package/dist/messages/browser/dispatch.msg.d.ts.map +0 -1
  541. package/dist/messages/browser/dispatch.msg.js +0 -9
  542. package/dist/messages/browser/dispatch.msg.js.map +0 -1
  543. package/dist/services/browser-api-provider.service.d.ts +0 -4
  544. package/dist/services/browser-api-provider.service.d.ts.map +0 -1
  545. package/dist/services/browser-api-provider.service.js +0 -25
  546. package/dist/services/browser-api-provider.service.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"blog-resources.js","sourceRoot":"","sources":["../../src/mcp/blog-resources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blog-resources.js","sourceRoot":"","sources":["../../src/mcp/blog-resources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9E,MAAM,CAAC,MAAM,iCAAiC,GAC5C,sCAAsC,CAAC;AACzC,MAAM,CAAC,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AAE3D,MAAM,UAAU,mBAAmB,CAAC,IAAqB;IACvD,OAAO;QACL,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,EAAE,iBAAiB,CAC5D;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,kBAAkB,CAAC,sBAAsB;YAC/C,GAAG,EAAE,iCAAiC;YACtC,QAAQ,EAAE,kBAAkB;YAC5B,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,mBAAmB,CAAC,EAAE;SAC1C,EACD,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;YACrB,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC;gBACrD,OAAO,EAAE,OAAO,CAAC,gBAAgB;gBACjC,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;YACH,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAChC,OAAO;gBACL,QAAQ,EAAE;oBACR;wBACE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;wBACnB,QAAQ,EAAE,kBAAkB;wBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;qBAC/B;iBACF;aACF,CAAC;QACJ,CAAC,CACF;QACD,CAAC,kBAAkB,CAAC,YAAY,CAAC,EAAE,iBAAiB,CAClD;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,kBAAkB,CAAC,YAAY;YACrC,GAAG,EAAE,sBAAsB;YAC3B,KAAK,EAAE,UAAU;YACjB,WAAW,EACT,sCAAsC;YACxC,QAAQ,EAAE,kBAAkB;YAC5B,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,mBAAmB,CAAC,EAAE;SAC1C,EACD,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;YACrB,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC;gBAC3C,OAAO,EAAE,OAAO,CAAC,gBAAgB;gBACjC,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;YACH,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAChC,OAAO;gBACL,QAAQ,EAAE;oBACR;wBACE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;wBACnB,QAAQ,EAAE,kBAAkB;wBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;qBAC/B;iBACF;aACF,CAAC;QACJ,CAAC,CACF;KACF,CAAC;AACJ,CAAC"}
@@ -1,5 +1,5 @@
1
- import type { BlogApplication } from '../blog/blog-application.js';
2
- export declare function createCategoryTools(blog: BlogApplication): {
1
+ import type { BlogManagementMicroClient } from '@zlooks.cn/blog-shared';
2
+ export declare function createCategoryTools(blog: BlogManagementMicroClient): {
3
3
  "list-category": import("@hile/mcp").McpToolDefinition<{
4
4
  limit?: number | undefined;
5
5
  cursor?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"category-tools.d.ts","sourceRoot":"","sources":["../../src/mcp/category-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAInE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMrD"}
1
+ {"version":3,"file":"category-tools.d.ts","sourceRoot":"","sources":["../../src/mcp/category-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAwBxE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2ClE"}
@@ -1,14 +1,24 @@
1
1
  import { BLOG_MCP_TOOLS } from '../contracts/mcp.js';
2
2
  import { z } from 'zod';
3
- import { categorySchema, categoryView, databaseInteger, deletedSchema, idInput, listInput, nullableText, readTool, slug, writeTool } from './tool-support.js';
4
- const input = z.strictObject({ name: z.string().trim().min(1).max(100), slug: slug(120), description: nullableText(500), sortOrder: databaseInteger });
3
+ import { categorySchema, databaseInteger, deletedSchema, idInput, listInput, nullableText, readTool, slug, writeTool, } from './tool-support.js';
4
+ const input = z.strictObject({
5
+ name: z.string().trim().min(1).max(100),
6
+ slug: slug(120),
7
+ description: nullableText(500),
8
+ sortOrder: databaseInteger,
9
+ });
10
+ const pageOutput = z.strictObject({
11
+ items: z.array(categorySchema).max(100),
12
+ nextCursor: z.uuid().nullable(),
13
+ });
14
+ const itemOutput = z.strictObject({ item: categorySchema });
5
15
  export function createCategoryTools(blog) {
6
16
  return {
7
- [BLOG_MCP_TOOLS.listCategories]: readTool(BLOG_MCP_TOOLS.listCategories, '分页列出博客分类', listInput, z.strictObject({ items: z.array(categorySchema).max(100), nextCursor: z.uuid().nullable() }), async ({ limit, cursor }, signal) => { const page = await blog.listCategoryPage(limit, cursor, signal); return { items: page.items.map(categoryView), nextCursor: page.nextCursor }; }),
8
- [BLOG_MCP_TOOLS.readCategory]: readTool(BLOG_MCP_TOOLS.readCategory, '读取博客分类', idInput, z.strictObject({ item: categorySchema }), async ({ id }, signal) => ({ item: categoryView(await blog.readCategory(id, signal)) })),
9
- [BLOG_MCP_TOOLS.createCategory]: writeTool(BLOG_MCP_TOOLS.createCategory, '创建博客分类', input, z.strictObject({ item: categorySchema }), async (value, signal) => ({ item: categoryView(await blog.createCategory(value, signal)) })),
10
- [BLOG_MCP_TOOLS.updateCategory]: writeTool(BLOG_MCP_TOOLS.updateCategory, '修改博客分类', input.extend({ id: z.uuid() }), z.strictObject({ item: categorySchema }), async ({ id, ...value }, signal) => ({ item: categoryView(await blog.updateCategory(id, value, signal)) })),
11
- [BLOG_MCP_TOOLS.deleteCategory]: writeTool(BLOG_MCP_TOOLS.deleteCategory, '删除博客分类', idInput, deletedSchema, async ({ id }, signal) => { await blog.deleteCategory(id, signal); return { deleted: true, id }; }, true),
17
+ [BLOG_MCP_TOOLS.listCategories]: readTool(BLOG_MCP_TOOLS.listCategories, '分页列出博客分类', listInput, pageOutput, async (value, options) => pageOutput.parse(await blog.listCategories(value, options))),
18
+ [BLOG_MCP_TOOLS.readCategory]: readTool(BLOG_MCP_TOOLS.readCategory, '读取博客分类', idInput, itemOutput, async (value, options) => itemOutput.parse(await blog.readCategory(value, options))),
19
+ [BLOG_MCP_TOOLS.createCategory]: writeTool(BLOG_MCP_TOOLS.createCategory, '创建博客分类', input, itemOutput, async (value, options) => itemOutput.parse(await blog.createCategory(value, options))),
20
+ [BLOG_MCP_TOOLS.updateCategory]: writeTool(BLOG_MCP_TOOLS.updateCategory, '修改博客分类', input.extend({ id: z.uuid() }), itemOutput, async (value, options) => itemOutput.parse(await blog.updateCategory(value, options))),
21
+ [BLOG_MCP_TOOLS.deleteCategory]: writeTool(BLOG_MCP_TOOLS.deleteCategory, '删除博客分类', idInput, deletedSchema, (value, options) => blog.deleteCategory(value, options), true),
12
22
  };
13
23
  }
14
24
  //# sourceMappingURL=category-tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"category-tools.js","sourceRoot":"","sources":["../../src/mcp/category-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"category-tools.js","sourceRoot":"","sources":["../../src/mcp/category-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,cAAc,EACd,eAAe,EACf,aAAa,EACb,OAAO,EACP,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,IAAI,EACJ,SAAS,GACV,MAAM,mBAAmB,CAAC;AAE3B,MAAM,KAAK,GAAG,CAAC,CAAC,YAAY,CAAC;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACvC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;IACf,WAAW,EAAE,YAAY,CAAC,GAAG,CAAC;IAC9B,SAAS,EAAE,eAAe;CAC3B,CAAC,CAAC;AACH,MAAM,UAAU,GAAG,CAAC,CAAC,YAAY,CAAC;IAChC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACvC,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC;AACH,MAAM,UAAU,GAAG,CAAC,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;AAC5D,MAAM,UAAU,mBAAmB,CAAC,IAA+B;IACjE,OAAO;QACL,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,QAAQ,CACvC,cAAc,CAAC,cAAc,EAC7B,UAAU,EACV,SAAS,EACT,UAAU,EACV,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CACvB,UAAU,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAC9D;QACD,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,QAAQ,CACrC,cAAc,CAAC,YAAY,EAC3B,QAAQ,EACR,OAAO,EACP,UAAU,EACV,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CACvB,UAAU,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAC5D;QACD,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,SAAS,CACxC,cAAc,CAAC,cAAc,EAC7B,QAAQ,EACR,KAAK,EACL,UAAU,EACV,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CACvB,UAAU,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAC9D;QACD,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,SAAS,CACxC,cAAc,CAAC,cAAc,EAC7B,QAAQ,EACR,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAC9B,UAAU,EACV,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CACvB,UAAU,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAC9D;QACD,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,SAAS,CACxC,cAAc,CAAC,cAAc,EAC7B,QAAQ,EACR,OAAO,EACP,aAAa,EACb,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,EACvD,IAAI,CACL;KACF,CAAC;AACJ,CAAC"}
@@ -1,5 +1,5 @@
1
- import type { BlogApplication } from '../blog/blog-application.js';
2
- export declare function createCommentTools(blog: BlogApplication): {
1
+ import type { BlogManagementMicroClient } from '@zlooks.cn/blog-shared';
2
+ export declare function createCommentTools(blog: BlogManagementMicroClient): {
3
3
  "list-comment": import("@hile/mcp").McpToolDefinition<{
4
4
  limit?: number | undefined;
5
5
  cursor?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"comment-tools.d.ts","sourceRoot":"","sources":["../../src/mcp/comment-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAInE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOpD"}
1
+ {"version":3,"file":"comment-tools.d.ts","sourceRoot":"","sources":["../../src/mcp/comment-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAuBxE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwDjE"}
@@ -1,15 +1,29 @@
1
- import { BLOG_MCP_MODERATE_SCOPE, BLOG_MCP_TOOLS } from '../contracts/mcp.js';
2
1
  import { z } from 'zod';
3
- import { commentSchema, commentView, deletedSchema, idInput, moderateTool, readTool } from './tool-support.js';
4
- const listInput = z.strictObject({ limit: z.number().int().min(1).max(100).default(50), cursor: z.uuid().optional(), status: z.enum(['pending', 'approved', 'rejected']).optional(), postId: z.uuid().optional(), order: z.enum(['desc', 'asc']).default('desc') });
2
+ import { BLOG_MCP_MODERATE_SCOPE, BLOG_MCP_TOOLS } from '../contracts/mcp.js';
3
+ import { commentSchema, deletedSchema, idInput, moderateTool, readTool, } from './tool-support.js';
4
+ const listInput = z.strictObject({
5
+ limit: z.number().int().min(1).max(100).default(50),
6
+ cursor: z.uuid().optional(),
7
+ status: z.enum(['pending', 'approved', 'rejected']).optional(),
8
+ postId: z.uuid().optional(),
9
+ order: z.enum(['desc', 'asc']).default('desc'),
10
+ });
11
+ const pageOutput = z.strictObject({
12
+ items: z.array(commentSchema).max(100),
13
+ nextCursor: z.uuid().nullable(),
14
+ });
15
+ const itemOutput = z.strictObject({ item: commentSchema });
5
16
  export function createCommentTools(blog) {
6
17
  return {
7
- [BLOG_MCP_TOOLS.listComments]: readTool(BLOG_MCP_TOOLS.listComments, '筛选并分页列出博客评论', listInput, z.strictObject({ items: z.array(commentSchema).max(100), nextCursor: z.uuid().nullable() }), async (value, signal) => { const page = await blog.listComments({ ...value, order: value.order ?? 'desc' }, signal); return { items: page.items.map(commentView), nextCursor: page.nextCursor }; }, BLOG_MCP_MODERATE_SCOPE),
8
- [BLOG_MCP_TOOLS.readComment]: readTool(BLOG_MCP_TOOLS.readComment, '读取博客评论', idInput, z.strictObject({ item: commentSchema }), async ({ id }, signal) => ({ item: commentView(await blog.readComment(id, signal)) }), BLOG_MCP_MODERATE_SCOPE),
9
- [BLOG_MCP_TOOLS.approveComment]: moderateTool(BLOG_MCP_TOOLS.approveComment, '通过博客评论', idInput, z.strictObject({ item: commentSchema }), async ({ id }, signal) => ({ item: commentView(await blog.updateCommentStatus(id, 'approved', signal)) })),
10
- [BLOG_MCP_TOOLS.rejectComment]: moderateTool(BLOG_MCP_TOOLS.rejectComment, '拒绝博客评论', idInput, z.strictObject({ item: commentSchema }), async ({ id }, signal) => ({ item: commentView(await blog.updateCommentStatus(id, 'rejected', signal)) })),
11
- [BLOG_MCP_TOOLS.replyComment]: moderateTool(BLOG_MCP_TOOLS.replyComment, '设置或清除博客评论回复', z.strictObject({ id: z.uuid(), replyContent: z.string().trim().min(1).max(2_000).nullable() }), z.strictObject({ item: commentSchema }), async ({ id, replyContent }, signal) => ({ item: commentView(await blog.replyComment(id, replyContent, signal)) })),
12
- [BLOG_MCP_TOOLS.deleteComment]: moderateTool(BLOG_MCP_TOOLS.deleteComment, '删除博客评论', idInput, deletedSchema, async ({ id }, signal) => { await blog.deleteComment(id, signal); return { deleted: true, id }; }, true),
18
+ [BLOG_MCP_TOOLS.listComments]: readTool(BLOG_MCP_TOOLS.listComments, '筛选并分页列出博客评论', listInput, pageOutput, async (value, options) => pageOutput.parse(await blog.listComments(value, options)), BLOG_MCP_MODERATE_SCOPE),
19
+ [BLOG_MCP_TOOLS.readComment]: readTool(BLOG_MCP_TOOLS.readComment, '读取博客评论', idInput, itemOutput, async (value, options) => itemOutput.parse(await blog.readComment(value, options)), BLOG_MCP_MODERATE_SCOPE),
20
+ [BLOG_MCP_TOOLS.approveComment]: moderateTool(BLOG_MCP_TOOLS.approveComment, '通过博客评论', idInput, itemOutput, async (value, options) => itemOutput.parse(await blog.approveComment(value, options))),
21
+ [BLOG_MCP_TOOLS.rejectComment]: moderateTool(BLOG_MCP_TOOLS.rejectComment, '拒绝博客评论', idInput, itemOutput, async (value, options) => itemOutput.parse(await blog.rejectComment(value, options))),
22
+ [BLOG_MCP_TOOLS.replyComment]: moderateTool(BLOG_MCP_TOOLS.replyComment, '设置或清除博客评论回复', z.strictObject({
23
+ id: z.uuid(),
24
+ replyContent: z.string().trim().min(1).max(2_000).nullable(),
25
+ }), itemOutput, async (value, options) => itemOutput.parse(await blog.replyComment(value, options))),
26
+ [BLOG_MCP_TOOLS.deleteComment]: moderateTool(BLOG_MCP_TOOLS.deleteComment, '删除博客评论', idInput, deletedSchema, (value, options) => blog.deleteComment(value, options), true),
13
27
  };
14
28
  }
15
29
  //# sourceMappingURL=comment-tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"comment-tools.js","sourceRoot":"","sources":["../../src/mcp/comment-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"comment-tools.js","sourceRoot":"","sources":["../../src/mcp/comment-tools.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { BlogApplication } from '../blog/blog-application.js';
2
- export declare function createFriendLinkTools(blog: BlogApplication): {
1
+ import type { BlogManagementMicroClient } from '@zlooks.cn/blog-shared';
2
+ export declare function createFriendLinkTools(blog: BlogManagementMicroClient): {
3
3
  "list-friend-link": import("@hile/mcp").McpToolDefinition<{
4
4
  limit?: number | undefined;
5
5
  cursor?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"friend-link-tools.d.ts","sourceRoot":"","sources":["../../src/mcp/friend-link-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAInE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQvD"}
1
+ {"version":3,"file":"friend-link-tools.d.ts","sourceRoot":"","sources":["../../src/mcp/friend-link-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AA4BxE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2DpE"}
@@ -1,16 +1,28 @@
1
- import { BLOG_MCP_TOOLS } from '../contracts/mcp.js';
2
1
  import { z } from 'zod';
3
- import { assetUrl, databaseInteger, deletedSchema, externalUrl, friendLinkSchema, friendLinkView, idInput, listInput, nullableText, readTool, writeTool } from './tool-support.js';
4
- const input = z.strictObject({ name: z.string().trim().min(1).max(100), url: externalUrl, description: nullableText(500), logoUrl: assetUrl.nullable(), enabled: z.boolean(), sortOrder: databaseInteger });
2
+ import { BLOG_MCP_TOOLS } from '../contracts/mcp.js';
3
+ import { assetUrl, databaseInteger, deletedSchema, externalUrl, friendLinkSchema, idInput, listInput, nullableText, readTool, writeTool, } from './tool-support.js';
4
+ const input = z.strictObject({
5
+ name: z.string().trim().min(1).max(100),
6
+ url: externalUrl,
7
+ description: nullableText(500),
8
+ logoUrl: assetUrl.nullable(),
9
+ enabled: z.boolean(),
10
+ sortOrder: databaseInteger,
11
+ });
12
+ const pageOutput = z.strictObject({
13
+ items: z.array(friendLinkSchema).max(100),
14
+ nextCursor: z.uuid().nullable(),
15
+ });
16
+ const itemOutput = z.strictObject({ item: friendLinkSchema });
5
17
  export function createFriendLinkTools(blog) {
6
18
  return {
7
- [BLOG_MCP_TOOLS.listFriendLinks]: readTool(BLOG_MCP_TOOLS.listFriendLinks, '分页列出友情链接', listInput, z.strictObject({ items: z.array(friendLinkSchema).max(100), nextCursor: z.uuid().nullable() }), async ({ limit, cursor }, signal) => { const page = await blog.listFriendLinkPage(limit, cursor, signal); return { items: page.items.map(friendLinkView), nextCursor: page.nextCursor }; }),
8
- [BLOG_MCP_TOOLS.readFriendLink]: readTool(BLOG_MCP_TOOLS.readFriendLink, '读取友情链接', idInput, z.strictObject({ item: friendLinkSchema }), async ({ id }, signal) => ({ item: friendLinkView(await blog.readFriendLink(id, signal)) })),
9
- [BLOG_MCP_TOOLS.createFriendLink]: writeTool(BLOG_MCP_TOOLS.createFriendLink, '创建友情链接', input, z.strictObject({ item: friendLinkSchema }), async (value, signal) => ({ item: friendLinkView(await blog.createFriendLink(value, signal)) })),
10
- [BLOG_MCP_TOOLS.updateFriendLink]: writeTool(BLOG_MCP_TOOLS.updateFriendLink, '修改友情链接', input.extend({ id: z.uuid() }), z.strictObject({ item: friendLinkSchema }), async ({ id, ...value }, signal) => ({ item: friendLinkView(await blog.updateFriendLink(id, value, signal)) })),
11
- [BLOG_MCP_TOOLS.enableFriendLink]: writeTool(BLOG_MCP_TOOLS.enableFriendLink, '启用友情链接', idInput, z.strictObject({ item: friendLinkSchema }), async ({ id }, signal) => ({ item: friendLinkView(await blog.setFriendLinkEnabled(id, true, signal)) })),
12
- [BLOG_MCP_TOOLS.disableFriendLink]: writeTool(BLOG_MCP_TOOLS.disableFriendLink, '停用友情链接', idInput, z.strictObject({ item: friendLinkSchema }), async ({ id }, signal) => ({ item: friendLinkView(await blog.setFriendLinkEnabled(id, false, signal)) })),
13
- [BLOG_MCP_TOOLS.deleteFriendLink]: writeTool(BLOG_MCP_TOOLS.deleteFriendLink, '删除友情链接', idInput, deletedSchema, async ({ id }, signal) => { await blog.deleteFriendLink(id, signal); return { deleted: true, id }; }, true),
19
+ [BLOG_MCP_TOOLS.listFriendLinks]: readTool(BLOG_MCP_TOOLS.listFriendLinks, '分页列出友情链接', listInput, pageOutput, async (value, options) => pageOutput.parse(await blog.listFriendLinks(value, options))),
20
+ [BLOG_MCP_TOOLS.readFriendLink]: readTool(BLOG_MCP_TOOLS.readFriendLink, '读取友情链接', idInput, itemOutput, async (value, options) => itemOutput.parse(await blog.readFriendLink(value, options))),
21
+ [BLOG_MCP_TOOLS.createFriendLink]: writeTool(BLOG_MCP_TOOLS.createFriendLink, '创建友情链接', input, itemOutput, async (value, options) => itemOutput.parse(await blog.createFriendLink(value, options))),
22
+ [BLOG_MCP_TOOLS.updateFriendLink]: writeTool(BLOG_MCP_TOOLS.updateFriendLink, '修改友情链接', input.extend({ id: z.uuid() }), itemOutput, async (value, options) => itemOutput.parse(await blog.updateFriendLink(value, options))),
23
+ [BLOG_MCP_TOOLS.enableFriendLink]: writeTool(BLOG_MCP_TOOLS.enableFriendLink, '启用友情链接', idInput, itemOutput, async (value, options) => itemOutput.parse(await blog.enableFriendLink(value, options))),
24
+ [BLOG_MCP_TOOLS.disableFriendLink]: writeTool(BLOG_MCP_TOOLS.disableFriendLink, '停用友情链接', idInput, itemOutput, async (value, options) => itemOutput.parse(await blog.disableFriendLink(value, options))),
25
+ [BLOG_MCP_TOOLS.deleteFriendLink]: writeTool(BLOG_MCP_TOOLS.deleteFriendLink, '删除友情链接', idInput, deletedSchema, (value, options) => blog.deleteFriendLink(value, options), true),
14
26
  };
15
27
  }
16
28
  //# sourceMappingURL=friend-link-tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"friend-link-tools.js","sourceRoot":"","sources":["../../src/mcp/friend-link-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"friend-link-tools.js","sourceRoot":"","sources":["../../src/mcp/friend-link-tools.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { BlogApplication } from '../blog/blog-application.js';
2
- export declare function createPageTools(blog: BlogApplication): {
1
+ import type { BlogManagementMicroClient } from '@zlooks.cn/blog-shared';
2
+ export declare function createPageTools(blog: BlogManagementMicroClient): {
3
3
  "list-page": import("@hile/mcp").McpToolDefinition<{
4
4
  limit?: number | undefined;
5
5
  cursor?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"page-tools.d.ts","sourceRoot":"","sources":["../../src/mcp/page-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAsBnE,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcjD"}
1
+ {"version":3,"file":"page-tools.d.ts","sourceRoot":"","sources":["../../src/mcp/page-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAiCxE,wBAAgB,eAAe,CAAC,IAAI,EAAE,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2D9D"}
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { BLOG_MCP_TOOLS } from '../contracts/mcp.js';
3
- import { databaseInteger, deletedSchema, idInput, pageSchema, pageView, readTool, slug, writeTool, } from './tool-support.js';
3
+ import { databaseInteger, deletedSchema, idInput, pageSchema, readTool, slug, writeTool, } from './tool-support.js';
4
4
  const position = z.enum(['navigation', 'sidebar']).nullable();
5
5
  const input = z.strictObject({
6
6
  title: z.string().trim().min(1).max(200),
@@ -16,21 +16,20 @@ const listInput = z.strictObject({
16
16
  status: z.enum(['draft', 'published', 'archived']).optional(),
17
17
  position: position.optional(),
18
18
  });
19
+ const pageOutput = z.strictObject({
20
+ items: z.array(pageSchema).max(100),
21
+ nextCursor: z.uuid().nullable(),
22
+ });
23
+ const itemOutput = z.strictObject({ item: pageSchema });
19
24
  export function createPageTools(blog) {
20
25
  return {
21
- [BLOG_MCP_TOOLS.listPages]: readTool(BLOG_MCP_TOOLS.listPages, '筛选并分页列出博客单页', listInput, z.strictObject({ items: z.array(pageSchema).max(100), nextCursor: z.uuid().nullable() }), async (value, signal) => {
22
- const page = await blog.listPages(value, signal);
23
- return { items: page.items.map(pageView), nextCursor: page.nextCursor };
24
- }),
25
- [BLOG_MCP_TOOLS.readPage]: readTool(BLOG_MCP_TOOLS.readPage, '读取博客单页', idInput, z.strictObject({ item: pageSchema }), async ({ id }, signal) => ({ item: pageView(await blog.readPage(id, signal)) })),
26
- [BLOG_MCP_TOOLS.createPage]: writeTool(BLOG_MCP_TOOLS.createPage, '创建博客单页草稿', input, z.strictObject({ item: pageSchema }), async (value, signal) => ({ item: pageView(await blog.createPage(value, signal)) })),
27
- [BLOG_MCP_TOOLS.updatePage]: writeTool(BLOG_MCP_TOOLS.updatePage, '修改博客单页', input.extend({ id: z.uuid() }), z.strictObject({ item: pageSchema }), async ({ id, ...value }, signal) => ({ item: pageView(await blog.updatePage(id, value, signal)) })),
28
- [BLOG_MCP_TOOLS.publishPage]: writeTool(BLOG_MCP_TOOLS.publishPage, '发布博客单页', idInput, z.strictObject({ item: pageSchema }), async ({ id }, signal) => ({ item: pageView(await blog.publishPage(id, signal)) })),
29
- [BLOG_MCP_TOOLS.archivePage]: writeTool(BLOG_MCP_TOOLS.archivePage, '归档博客单页', idInput, z.strictObject({ item: pageSchema }), async ({ id }, signal) => ({ item: pageView(await blog.archivePage(id, signal)) })),
30
- [BLOG_MCP_TOOLS.deletePage]: writeTool(BLOG_MCP_TOOLS.deletePage, '删除博客单页', idInput, deletedSchema, async ({ id }, signal) => {
31
- await blog.deletePage(id, signal);
32
- return { deleted: true, id };
33
- }, true),
26
+ [BLOG_MCP_TOOLS.listPages]: readTool(BLOG_MCP_TOOLS.listPages, '筛选并分页列出博客单页', listInput, pageOutput, async (value, options) => pageOutput.parse(await blog.listPages(value, options))),
27
+ [BLOG_MCP_TOOLS.readPage]: readTool(BLOG_MCP_TOOLS.readPage, '读取博客单页', idInput, itemOutput, async (value, options) => itemOutput.parse(await blog.readPage(value, options))),
28
+ [BLOG_MCP_TOOLS.createPage]: writeTool(BLOG_MCP_TOOLS.createPage, '创建博客单页草稿', input, itemOutput, async (value, options) => itemOutput.parse(await blog.createPage(value, options))),
29
+ [BLOG_MCP_TOOLS.updatePage]: writeTool(BLOG_MCP_TOOLS.updatePage, '修改博客单页', input.extend({ id: z.uuid() }), itemOutput, async (value, options) => itemOutput.parse(await blog.updatePage(value, options))),
30
+ [BLOG_MCP_TOOLS.publishPage]: writeTool(BLOG_MCP_TOOLS.publishPage, '发布博客单页', idInput, itemOutput, async (value, options) => itemOutput.parse(await blog.publishPage(value, options))),
31
+ [BLOG_MCP_TOOLS.archivePage]: writeTool(BLOG_MCP_TOOLS.archivePage, '归档博客单页', idInput, itemOutput, async (value, options) => itemOutput.parse(await blog.archivePage(value, options))),
32
+ [BLOG_MCP_TOOLS.deletePage]: writeTool(BLOG_MCP_TOOLS.deletePage, '删除博客单页', idInput, deletedSchema, (value, options) => blog.deletePage(value, options), true),
34
33
  };
35
34
  }
36
35
  //# sourceMappingURL=page-tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"page-tools.js","sourceRoot":"","sources":["../../src/mcp/page-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"page-tools.js","sourceRoot":"","sources":["../../src/mcp/page-tools.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { BlogApplication } from '../blog/blog-application.js';
2
- export declare function createPostTools(blog: BlogApplication): {
1
+ import { type BlogManagementMicroClient } from '@zlooks.cn/blog-shared';
2
+ export declare function createPostTools(blog: BlogManagementMicroClient): {
3
3
  "list-post": import("@hile/mcp").McpToolDefinition<{
4
4
  limit?: number | undefined;
5
5
  cursor?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"post-tools.d.ts","sourceRoot":"","sources":["../../src/mcp/post-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAuEnE,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuDjD"}
1
+ {"version":3,"file":"post-tools.d.ts","sourceRoot":"","sources":["../../src/mcp/post-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,wBAAwB,CAAC;AAiJhC,wBAAgB,eAAe,CAAC,IAAI,EAAE,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwG9D"}
@@ -1,24 +1,41 @@
1
- import { BLOG_MCP_TOOLS } from '../contracts/mcp.js';
2
1
  import { z } from 'zod';
3
- import { PostContentBlockedError } from '../blog/errors.js';
2
+ import { BlogPostContentBlockedError, } from '@zlooks.cn/blog-shared';
3
+ import { BLOG_MCP_TOOLS } from '../contracts/mcp.js';
4
4
  import { POST_CONTENT_AUDIT_FINDING_LIMIT } from '../blog/post-content-audit.js';
5
- import { assetUrl, deletedSchema, idInput, nullableText, postSchema, postSearchSchema, postSearchView, postView, readTool, slug, writeTool } from './tool-support.js';
5
+ import { assetUrl, deletedSchema, idInput, nullableText, postSchema, postSearchSchema, readTool, slug, writeTool, } from './tool-support.js';
6
6
  const input = z.strictObject({
7
- categoryId: z.uuid(), title: z.string().trim().min(1).max(200), slug: slug(200),
7
+ categoryId: z.uuid(),
8
+ title: z.string().trim().min(1).max(200),
9
+ slug: slug(200),
8
10
  summary: nullableText(500).describe('文章摘要。发布前应尽可能填写;无法从文章可靠概括时使用 null,不得编造信息。'),
9
- coverUrl: assetUrl.nullable().describe('文章封面图 URL。发布前应尽可能填写;只能使用用户提供或经验证可用的 HTTP(S) 资源,不得编造 URL,无法可靠获取时使用 null。'),
11
+ coverUrl: assetUrl
12
+ .nullable()
13
+ .describe('文章封面图 URL。发布前应尽可能填写;只能使用用户提供或经验证可用的 HTTP(S) 资源,不得编造 URL,无法可靠获取时使用 null。'),
10
14
  content: z.string().min(1).max(1_000_000),
11
- tagIds: z.array(z.uuid()).max(20)
15
+ tagIds: z
16
+ .array(z.uuid())
17
+ .max(20)
12
18
  .refine((ids) => new Set(ids).size === ids.length, 'Tag IDs must be unique')
13
19
  .describe('文章关联的标签 ID。发布前建议从 blog.list-tag 的现有标签中选择 1 至 5 个准确标签;硬上限为 20,不得重复或编造 ID。'),
14
20
  });
15
- const listInput = z.strictObject({ limit: z.number().int().min(1).max(100).default(50), cursor: z.uuid().optional(), status: z.enum(['draft', 'published', 'archived']).optional(), categoryId: z.uuid().optional() });
21
+ const listInput = z.strictObject({
22
+ limit: z.number().int().min(1).max(100).default(50),
23
+ cursor: z.uuid().optional(),
24
+ status: z.enum(['draft', 'published', 'archived']).optional(),
25
+ categoryId: z.uuid().optional(),
26
+ });
16
27
  const searchInput = z.strictObject({
17
28
  query: z.string().trim().min(2).max(100),
18
29
  limit: z.number().int().min(1).max(20).default(10),
19
30
  status: z.enum(['draft', 'published', 'archived']).optional(),
20
31
  });
21
- const auditInput = input.pick({ categoryId: true, title: true, summary: true, content: true, tagIds: true });
32
+ const auditInput = input.pick({
33
+ categoryId: true,
34
+ title: true,
35
+ summary: true,
36
+ content: true,
37
+ tagIds: true,
38
+ });
22
39
  const auditFindingSchema = z.strictObject({
23
40
  ruleId: z.string().min(1).max(100),
24
41
  severity: z.enum(['block', 'warning', 'info']),
@@ -26,13 +43,19 @@ const auditFindingSchema = z.strictObject({
26
43
  field: z.enum(['title', 'summary', 'content', 'category', 'tags']),
27
44
  message: z.string().min(1).max(500),
28
45
  suggestion: z.string().min(1).max(500),
29
- location: z.strictObject({ line: z.number().int().min(1), column: z.number().int().min(1) }).optional(),
46
+ location: z
47
+ .strictObject({
48
+ line: z.number().int().min(1),
49
+ column: z.number().int().min(1),
50
+ })
51
+ .optional(),
30
52
  });
31
53
  const auditOutput = z.strictObject({
32
54
  publishable: z.boolean(),
33
55
  findings: z.array(auditFindingSchema).max(POST_CONTENT_AUDIT_FINDING_LIMIT),
34
56
  });
35
- const archiveInput = z.strictObject({
57
+ const archiveInput = z
58
+ .strictObject({
36
59
  limit: z.number().int().min(1).max(100).default(50),
37
60
  monthLimit: z.number().int().min(1).max(120).default(12),
38
61
  cursor: z.uuid().optional(),
@@ -42,81 +65,92 @@ const archiveInput = z.strictObject({
42
65
  startMonth: z.number().int().min(1).max(12).optional(),
43
66
  endYear: z.number().int().min(1970).max(9_999).optional(),
44
67
  endMonth: z.number().int().min(1).max(12).optional(),
45
- }).superRefine((value, context) => {
46
- if (value.month !== undefined && value.year === undefined) {
47
- context.addIssue({ code: 'custom', message: 'Month requires a year', path: ['year'] });
48
- }
49
- const range = [value.startYear, value.startMonth, value.endYear, value.endMonth];
68
+ })
69
+ .superRefine((value, context) => {
70
+ if (value.month !== undefined && value.year === undefined)
71
+ context.addIssue({
72
+ code: 'custom',
73
+ message: 'Month requires a year',
74
+ path: ['year'],
75
+ });
76
+ const range = [
77
+ value.startYear,
78
+ value.startMonth,
79
+ value.endYear,
80
+ value.endMonth,
81
+ ];
50
82
  const count = range.filter((item) => item !== undefined).length;
51
- if (count > 0 && count < 4) {
52
- context.addIssue({ code: 'custom', message: 'Range requires complete start and end months', path: ['startYear'] });
53
- }
54
- if (count > 0 && (value.year !== undefined || value.month !== undefined)) {
55
- context.addIssue({ code: 'custom', message: 'Single selection and range are mutually exclusive', path: ['startYear'] });
56
- }
57
- if (count === 4 && value.startYear * 12 + value.startMonth
58
- > value.endYear * 12 + value.endMonth) {
59
- context.addIssue({ code: 'custom', message: 'Range start must not follow its end', path: ['endYear'] });
83
+ if (count > 0 && count < 4)
84
+ context.addIssue({
85
+ code: 'custom',
86
+ message: 'Range requires complete start and end months',
87
+ path: ['startYear'],
88
+ });
89
+ if (count > 0 && (value.year !== undefined || value.month !== undefined))
90
+ context.addIssue({
91
+ code: 'custom',
92
+ message: 'Single selection and range are mutually exclusive',
93
+ path: ['startYear'],
94
+ });
95
+ if (count === 4 &&
96
+ value.startYear * 12 + value.startMonth >
97
+ value.endYear * 12 + value.endMonth) {
98
+ context.addIssue({
99
+ code: 'custom',
100
+ message: 'Range start must not follow its end',
101
+ path: ['endYear'],
102
+ });
60
103
  }
61
104
  });
62
105
  const archiveOutput = z.strictObject({
63
106
  items: z.array(postSearchSchema).max(100),
64
- months: z.array(z.strictObject({
107
+ months: z
108
+ .array(z.strictObject({
65
109
  year: z.number().int().min(1970).max(9_999),
66
110
  month: z.number().int().min(1).max(12),
67
111
  count: z.number().int().min(1),
68
- })).max(120),
112
+ }))
113
+ .max(120),
69
114
  nextCursor: z.uuid().nullable(),
70
115
  total: z.number().int().min(0),
71
116
  });
117
+ const postPageOutput = z.strictObject({
118
+ items: z.array(postSchema).max(100),
119
+ nextCursor: z.uuid().nullable(),
120
+ });
121
+ const postSearchOutput = z.strictObject({
122
+ items: z.array(postSearchSchema).max(20),
123
+ });
124
+ const postItemOutput = z.strictObject({ item: postSchema });
72
125
  export function createPostTools(blog) {
73
126
  return {
74
- [BLOG_MCP_TOOLS.listPosts]: readTool(BLOG_MCP_TOOLS.listPosts, '筛选并分页列出博客文章', listInput, z.strictObject({ items: z.array(postSchema).max(100), nextCursor: z.uuid().nullable() }), async (value, signal) => { const page = await blog.listPosts(value, signal); return { items: page.items.map(postView), nextCursor: page.nextCursor }; }),
75
- [BLOG_MCP_TOOLS.listPostArchive]: readTool(BLOG_MCP_TOOLS.listPostArchive, '按年月分页读取已发布文章归档', archiveInput, archiveOutput, async (value, signal) => {
76
- const archive = await blog.listPublicPostArchive({
77
- limit: value.limit ?? 50,
78
- monthLimit: value.monthLimit ?? 12,
79
- ...(value.cursor ? { cursor: value.cursor } : {}),
80
- ...(value.year !== undefined ? { year: value.year } : {}),
81
- ...(value.month !== undefined ? { month: value.month } : {}),
82
- ...(value.startYear !== undefined ? { startYear: value.startYear } : {}),
83
- ...(value.startMonth !== undefined ? { startMonth: value.startMonth } : {}),
84
- ...(value.endYear !== undefined ? { endYear: value.endYear } : {}),
85
- ...(value.endMonth !== undefined ? { endMonth: value.endMonth } : {}),
86
- }, signal);
87
- return {
88
- items: archive.items.map(postSearchView),
89
- months: [...archive.months],
90
- nextCursor: archive.nextCursor,
91
- total: archive.total,
92
- };
93
- }),
94
- [BLOG_MCP_TOOLS.searchPosts]: readTool(BLOG_MCP_TOOLS.searchPosts, '按标题、摘要或正文搜索博客文章', searchInput, z.strictObject({ items: z.array(postSearchSchema).max(20) }), async (value, signal) => ({ items: (await blog.searchPosts({ query: value.query, limit: value.limit ?? 10, ...(value.status ? { status: value.status } : {}) }, signal)).map(postSearchView) })),
95
- [BLOG_MCP_TOOLS.readPost]: readTool(BLOG_MCP_TOOLS.readPost, '读取博客文章', idInput, z.strictObject({ item: postSchema }), async ({ id }, signal) => ({ item: postView(await blog.readPost(id, signal)) })),
96
- [BLOG_MCP_TOOLS.auditPostContent]: readTool(BLOG_MCP_TOOLS.auditPostContent, '检查博客文章内容与分类标签是否满足发布规范', auditInput, auditOutput, async (value, signal) => {
97
- const report = await blog.auditPostContent(value, signal);
98
- return { publishable: report.publishable, findings: [...report.findings] };
99
- }),
100
- [BLOG_MCP_TOOLS.createPost]: writeTool(BLOG_MCP_TOOLS.createPost, '创建博客文章草稿', input, z.strictObject({ item: postSchema }), async (value, signal) => ({ item: postView(await blog.createPost(value, signal)) })),
101
- [BLOG_MCP_TOOLS.updatePost]: writeTool(BLOG_MCP_TOOLS.updatePost, '修改博客文章', input.extend({ id: z.uuid() }), z.strictObject({ item: postSchema }), async ({ id, ...value }, signal) => ({ item: postView(await blog.updatePost(id, value, signal)) })),
102
- [BLOG_MCP_TOOLS.publishPost]: writeTool(BLOG_MCP_TOOLS.publishPost, '发布博客文章', idInput, z.strictObject({ item: postSchema }), async ({ id }, signal) => ({ item: postView(await blog.publishPost(id, signal)) }), false, {
103
- recover: (error, { id }) => error instanceof PostContentBlockedError ? {
104
- message: '文章未通过发布审查;请读取最新文章,只修复 block 项,更新并重新审查后重试发布',
105
- structuredContent: {
106
- code: 'POST_CONTENT_BLOCKED',
107
- retryable: true,
108
- postId: id,
109
- nextAction: 'audit-update-retry',
110
- maxAutomaticAttempts: 3,
111
- audit: {
112
- publishable: error.report.publishable,
113
- findings: [...error.report.findings],
127
+ [BLOG_MCP_TOOLS.listPosts]: readTool(BLOG_MCP_TOOLS.listPosts, '筛选并分页列出博客文章', listInput, postPageOutput, async (value, options) => postPageOutput.parse(await blog.listPosts(value, options))),
128
+ [BLOG_MCP_TOOLS.listPostArchive]: readTool(BLOG_MCP_TOOLS.listPostArchive, '按年月分页读取已发布文章归档', archiveInput, archiveOutput, async (value, options) => archiveOutput.parse(await blog.listPostArchive(value, options))),
129
+ [BLOG_MCP_TOOLS.searchPosts]: readTool(BLOG_MCP_TOOLS.searchPosts, '按标题、摘要或正文搜索博客文章', searchInput, postSearchOutput, async (value, options) => postSearchOutput.parse(await blog.searchPosts(value, options))),
130
+ [BLOG_MCP_TOOLS.readPost]: readTool(BLOG_MCP_TOOLS.readPost, '读取博客文章', idInput, postItemOutput, async (value, options) => postItemOutput.parse(await blog.readPost(value, options))),
131
+ [BLOG_MCP_TOOLS.auditPostContent]: readTool(BLOG_MCP_TOOLS.auditPostContent, '检查博客文章内容与分类标签是否满足发布规范', auditInput, auditOutput, async (value, options) => auditOutput.parse(await blog.auditPostContent(value, options))),
132
+ [BLOG_MCP_TOOLS.createPost]: writeTool(BLOG_MCP_TOOLS.createPost, '创建博客文章草稿', input, postItemOutput, async (value, options) => postItemOutput.parse(await blog.createPost(value, options))),
133
+ [BLOG_MCP_TOOLS.updatePost]: writeTool(BLOG_MCP_TOOLS.updatePost, '修改博客文章', input.extend({ id: z.uuid() }), postItemOutput, async (value, options) => postItemOutput.parse(await blog.updatePost(value, options))),
134
+ [BLOG_MCP_TOOLS.publishPost]: writeTool(BLOG_MCP_TOOLS.publishPost, '发布博客文章', idInput, postItemOutput, async (value, options) => postItemOutput.parse(await blog.publishPost(value, options)), false, {
135
+ recover: (error, { id }) => error instanceof BlogPostContentBlockedError
136
+ ? {
137
+ message: '文章未通过发布审查;请读取最新文章,只修复 block 项,更新并重新审查后重试发布',
138
+ structuredContent: {
139
+ code: 'POST_CONTENT_BLOCKED',
140
+ retryable: true,
141
+ postId: id,
142
+ nextAction: 'audit-update-retry',
143
+ maxAutomaticAttempts: 3,
144
+ audit: {
145
+ publishable: error.report.publishable,
146
+ findings: [...error.report.findings],
147
+ },
114
148
  },
115
- },
116
- } : undefined,
149
+ }
150
+ : undefined,
117
151
  }),
118
- [BLOG_MCP_TOOLS.archivePost]: writeTool(BLOG_MCP_TOOLS.archivePost, '归档博客文章', idInput, z.strictObject({ item: postSchema }), async ({ id }, signal) => ({ item: postView(await blog.archivePost(id, signal)) })),
119
- [BLOG_MCP_TOOLS.deletePost]: writeTool(BLOG_MCP_TOOLS.deletePost, '删除博客文章', idInput, deletedSchema, async ({ id }, signal) => { await blog.deletePost(id, signal); return { deleted: true, id }; }, true),
152
+ [BLOG_MCP_TOOLS.archivePost]: writeTool(BLOG_MCP_TOOLS.archivePost, '归档博客文章', idInput, postItemOutput, async (value, options) => postItemOutput.parse(await blog.archivePost(value, options))),
153
+ [BLOG_MCP_TOOLS.deletePost]: writeTool(BLOG_MCP_TOOLS.deletePost, '删除博客文章', idInput, deletedSchema, (value, options) => blog.deletePost(value, options), true),
120
154
  };
121
155
  }
122
156
  //# sourceMappingURL=post-tools.js.map