@mx-space/cli 0.14.2 → 0.15.1

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 (617) hide show
  1. package/README.md +36 -12
  2. package/dist/{Lexical.dev-CtGmYDoh.mjs → Lexical.dev-BSvx45_E.mjs} +350 -402
  3. package/dist/{Lexical.node-8sRFmq2X.mjs → Lexical.node-kAh5GM2n.mjs} +2 -2
  4. package/dist/{Lexical.prod-D-VfeKDz.mjs → Lexical.prod-Bqwgb3ez.mjs} +1757 -1785
  5. package/dist/{LexicalClipboard.dev-CzQ15z6E.mjs → LexicalClipboard.dev-BWU3KXIa.mjs} +19 -15
  6. package/dist/{LexicalClipboard.node-D4gMGws6.mjs → LexicalClipboard.node-BygAdNdF.mjs} +2 -2
  7. package/dist/{LexicalClipboard.prod-CltkQpzS.mjs → LexicalClipboard.prod-BtMuKNyT.mjs} +11 -11
  8. package/dist/{LexicalCodeCore.dev-DkYBZRGB.mjs → LexicalCodeCore.dev-CD2xgvDs.mjs} +95 -89
  9. package/dist/{LexicalCodeCore.prod-COc3_QL8.mjs → LexicalCodeCore.prod-Bl6FFMc7.mjs} +146 -158
  10. package/dist/{LexicalDragon.dev-Dv5_WUae.mjs → LexicalDragon.dev-BwdYhm4K.mjs} +3 -3
  11. package/dist/{LexicalDragon.node-DgjrmWkd.mjs → LexicalDragon.node-CpJhkCVV.mjs} +2 -2
  12. package/dist/{LexicalDragon.prod-DnpbDe-_.mjs → LexicalDragon.prod-CvXmWwo1.mjs} +3 -3
  13. package/dist/{LexicalExtension.dev-JMH_6-OZ.mjs → LexicalExtension.dev-LcRLXI5Z.mjs} +33 -30
  14. package/dist/{LexicalExtension.node-BUozzx4t.mjs → LexicalExtension.node-BwJt2LXV.mjs} +2 -2
  15. package/dist/{LexicalExtension.prod-UiyDgmou.mjs → LexicalExtension.prod-lg8_33-H.mjs} +87 -93
  16. package/dist/{LexicalHeadless.dev-BfLGciiX.mjs → LexicalHeadless.dev-BeUbKBes.mjs} +2 -2
  17. package/dist/{LexicalHeadless.prod-CWF7edmQ.mjs → LexicalHeadless.prod-4gbIA8HM.mjs} +2 -2
  18. package/dist/{LexicalHtml.dev-D5EF5PGW.mjs → LexicalHtml.dev-BLdZWTCJ.mjs} +22 -16
  19. package/dist/{LexicalHtml.node-BYbzHNVe.mjs → LexicalHtml.node-BeuJMvvt.mjs} +2 -2
  20. package/dist/{LexicalHtml.prod-D_FfkvVD.mjs → LexicalHtml.prod-CHUyCocN.mjs} +6 -6
  21. package/dist/{LexicalLink.dev-D3Pgh6ik.mjs → LexicalLink.dev-DgsFRqw0.mjs} +41 -58
  22. package/dist/{LexicalLink.prod-XZoAYVYD.mjs → LexicalLink.prod-CkXkeKY2.mjs} +115 -138
  23. package/dist/{LexicalList.dev-B5d3ObhB.mjs → LexicalList.dev-OOms3kQi.mjs} +15 -47
  24. package/dist/{LexicalList.prod-OQDpVAEb.mjs → LexicalList.prod-DzMBeqHn.mjs} +208 -224
  25. package/dist/{LexicalMarkdown.dev-BkM8G3DG.mjs → LexicalMarkdown.dev-DJLKbZtD.mjs} +42 -30
  26. package/dist/{LexicalMarkdown.prod-DcVXCex6.mjs → LexicalMarkdown.prod-Cp21kDCU.mjs} +12 -8
  27. package/dist/{LexicalRichText.dev-DppD7IrA.mjs → LexicalRichText.dev-0rkAGjUf.mjs} +84 -86
  28. package/dist/{LexicalRichText.node-CPSn7dkg.mjs → LexicalRichText.node-Cd-BySPE.mjs} +8 -8
  29. package/dist/{LexicalRichText.prod-h7JPxFNp.mjs → LexicalRichText.prod-DTQiEr8C.mjs} +96 -100
  30. package/dist/{LexicalSelection.dev-CD0SLbxP.mjs → LexicalSelection.dev-Bi0VlUEv.mjs} +29 -25
  31. package/dist/{LexicalSelection.node-CGlJgUlZ.mjs → LexicalSelection.node-t2U46EF_.mjs} +2 -2
  32. package/dist/{LexicalSelection.prod-DbVZN5AV.mjs → LexicalSelection.prod-CrFG111g.mjs} +3 -3
  33. package/dist/{LexicalTable.dev-D0HU14UV.mjs → LexicalTable.dev-D-sFhO-o.mjs} +288 -154
  34. package/dist/{LexicalTable.prod-BcPNSrxP.mjs → LexicalTable.prod-DwYaa_dN.mjs} +689 -632
  35. package/dist/{LexicalUtils.dev-iKy_TrRT.mjs → LexicalUtils.dev-Q2q3-UDM.mjs} +9 -6
  36. package/dist/{LexicalUtils.node-CIgMS8cG.mjs → LexicalUtils.node-Dl7OvqJV.mjs} +2 -2
  37. package/dist/{LexicalUtils.prod-DIAsKJzu.mjs → LexicalUtils.prod-CBnq_iEV.mjs} +8 -7
  38. package/dist/bin/mxs.mjs +1 -1
  39. package/dist/esm-CNZ7kdTg.mjs +2 -0
  40. package/dist/{esm-CwXl1N0a.mjs → esm-ZXjJmLEC.mjs} +422 -391
  41. package/dist/index.d.mts +16 -16
  42. package/dist/index.mjs +1 -1
  43. package/dist/{mxs-iW9DgqSZ.mjs → mxs-DC9zR3f2.mjs} +2203 -2782
  44. package/dist/{rolldown-runtime-JspESFgx.mjs → rolldown-runtime-B4iAMlE-.mjs} +1 -1
  45. package/dist/src/bin/mxs.d.ts +2 -0
  46. package/dist/src/bin/mxs.js +310 -0
  47. package/dist/src/cli/ai/_poll.d.ts +12 -0
  48. package/dist/src/cli/ai/_poll.js +38 -0
  49. package/dist/src/cli/ai/_resolve.d.ts +8 -0
  50. package/dist/src/cli/ai/_resolve.js +27 -0
  51. package/dist/src/cli/ai/index.d.ts +127 -0
  52. package/dist/src/cli/ai/index.js +46 -0
  53. package/dist/src/cli/ai/insights/by-article.d.ts +10 -0
  54. package/dist/src/cli/ai/insights/by-article.js +21 -0
  55. package/dist/src/cli/ai/insights/delete.d.ts +7 -0
  56. package/dist/src/cli/ai/insights/delete.js +18 -0
  57. package/dist/src/cli/ai/insights/edit.d.ts +8 -0
  58. package/dist/src/cli/ai/insights/edit.js +54 -0
  59. package/dist/src/cli/ai/insights/get.d.ts +6 -0
  60. package/dist/src/cli/ai/insights/get.js +11 -0
  61. package/dist/src/cli/ai/insights/index.d.ts +30 -0
  62. package/dist/src/cli/ai/insights/index.js +17 -0
  63. package/dist/src/cli/ai/insights/list.d.ts +10 -0
  64. package/dist/src/cli/ai/insights/list.js +20 -0
  65. package/dist/src/cli/ai/insights/refresh.d.ts +10 -0
  66. package/dist/src/cli/ai/insights/refresh.js +25 -0
  67. package/dist/src/cli/ai/insights/translate.d.ts +10 -0
  68. package/dist/src/cli/ai/insights/translate.js +25 -0
  69. package/dist/src/cli/ai/overview/by-article.d.ts +7 -0
  70. package/dist/src/cli/ai/overview/by-article.js +15 -0
  71. package/dist/src/cli/ai/overview/index.d.ts +11 -0
  72. package/dist/src/cli/ai/overview/index.js +4 -0
  73. package/dist/src/cli/ai/overview/list.d.ts +10 -0
  74. package/dist/src/cli/ai/overview/list.js +20 -0
  75. package/dist/src/cli/ai/summary/by-article.d.ts +10 -0
  76. package/dist/src/cli/ai/summary/by-article.js +21 -0
  77. package/dist/src/cli/ai/summary/delete.d.ts +7 -0
  78. package/dist/src/cli/ai/summary/delete.js +18 -0
  79. package/dist/src/cli/ai/summary/edit.d.ts +8 -0
  80. package/dist/src/cli/ai/summary/edit.js +54 -0
  81. package/dist/src/cli/ai/summary/get.d.ts +6 -0
  82. package/dist/src/cli/ai/summary/get.js +11 -0
  83. package/dist/src/cli/ai/summary/index.d.ts +30 -0
  84. package/dist/src/cli/ai/summary/index.js +9 -0
  85. package/dist/src/cli/ai/summary/list.d.ts +10 -0
  86. package/dist/src/cli/ai/summary/list.js +20 -0
  87. package/dist/src/cli/ai/summary/regen.d.ts +10 -0
  88. package/dist/src/cli/ai/summary/regen.js +25 -0
  89. package/dist/src/cli/ai/summary/translate.d.ts +10 -0
  90. package/dist/src/cli/ai/summary/translate.js +25 -0
  91. package/dist/src/cli/ai/translate/by-article.d.ts +9 -0
  92. package/dist/src/cli/ai/translate/by-article.js +19 -0
  93. package/dist/src/cli/ai/translate/delete.d.ts +7 -0
  94. package/dist/src/cli/ai/translate/delete.js +18 -0
  95. package/dist/src/cli/ai/translate/edit.d.ts +8 -0
  96. package/dist/src/cli/ai/translate/edit.js +97 -0
  97. package/dist/src/cli/ai/translate/entries/delete.d.ts +7 -0
  98. package/dist/src/cli/ai/translate/entries/delete.js +18 -0
  99. package/dist/src/cli/ai/translate/entries/edit.d.ts +8 -0
  100. package/dist/src/cli/ai/translate/entries/edit.js +73 -0
  101. package/dist/src/cli/ai/translate/entries/generate.d.ts +7 -0
  102. package/dist/src/cli/ai/translate/entries/generate.js +15 -0
  103. package/dist/src/cli/ai/translate/entries/index.d.ts +17 -0
  104. package/dist/src/cli/ai/translate/entries/index.js +6 -0
  105. package/dist/src/cli/ai/translate/entries/list.d.ts +10 -0
  106. package/dist/src/cli/ai/translate/entries/list.js +20 -0
  107. package/dist/src/cli/ai/translate/get.d.ts +6 -0
  108. package/dist/src/cli/ai/translate/get.js +11 -0
  109. package/dist/src/cli/ai/translate/index.d.ts +40 -0
  110. package/dist/src/cli/ai/translate/index.js +19 -0
  111. package/dist/src/cli/ai/translate/languages.d.ts +7 -0
  112. package/dist/src/cli/ai/translate/languages.js +15 -0
  113. package/dist/src/cli/ai/translate/list.d.ts +9 -0
  114. package/dist/src/cli/ai/translate/list.js +19 -0
  115. package/dist/src/cli/ai/translate/run.d.ts +10 -0
  116. package/dist/src/cli/ai/translate/run.js +31 -0
  117. package/dist/src/cli/ai/tts/by-article.d.ts +7 -0
  118. package/dist/src/cli/ai/tts/by-article.js +15 -0
  119. package/dist/src/cli/ai/tts/delete.d.ts +7 -0
  120. package/dist/src/cli/ai/tts/delete.js +18 -0
  121. package/dist/src/cli/ai/tts/index.d.ts +22 -0
  122. package/dist/src/cli/ai/tts/index.js +7 -0
  123. package/dist/src/cli/ai/tts/list.d.ts +10 -0
  124. package/dist/src/cli/ai/tts/list.js +20 -0
  125. package/dist/src/cli/ai/tts/run.d.ts +10 -0
  126. package/dist/src/cli/ai/tts/run.js +25 -0
  127. package/dist/src/cli/ai/tts/voices.d.ts +7 -0
  128. package/dist/src/cli/ai/tts/voices.js +12 -0
  129. package/dist/src/cli/ai/views.d.ts +3 -0
  130. package/dist/src/cli/ai/views.js +45 -0
  131. package/dist/src/cli/auth/index.d.ts +6 -0
  132. package/dist/src/cli/auth/index.js +22 -0
  133. package/dist/src/cli/auth/login.d.ts +11 -0
  134. package/dist/src/cli/auth/login.js +168 -0
  135. package/dist/src/cli/auth/logout.d.ts +6 -0
  136. package/dist/src/cli/auth/logout.js +21 -0
  137. package/dist/src/cli/auth/status.d.ts +4 -0
  138. package/dist/src/cli/auth/status.js +31 -0
  139. package/dist/src/cli/auth/view.d.ts +25 -0
  140. package/dist/src/cli/auth/view.js +46 -0
  141. package/dist/src/cli/auth/whoami.d.ts +7 -0
  142. package/dist/src/cli/auth/whoami.js +44 -0
  143. package/dist/src/cli/category/create.d.ts +10 -0
  144. package/dist/src/cli/category/create.js +24 -0
  145. package/dist/src/cli/category/delete.d.ts +8 -0
  146. package/dist/src/cli/category/delete.js +21 -0
  147. package/dist/src/cli/category/get.d.ts +6 -0
  148. package/dist/src/cli/category/get.js +11 -0
  149. package/dist/src/cli/category/index.d.ts +20 -0
  150. package/dist/src/cli/category/index.js +41 -0
  151. package/dist/src/cli/category/list.d.ts +4 -0
  152. package/dist/src/cli/category/list.js +10 -0
  153. package/dist/src/cli/category/update.d.ts +12 -0
  154. package/dist/src/cli/category/update.js +34 -0
  155. package/dist/src/cli/comment/_flags.d.ts +28 -0
  156. package/dist/src/cli/comment/_flags.js +48 -0
  157. package/dist/src/cli/comment/approve.d.ts +9 -0
  158. package/dist/src/cli/comment/approve.js +23 -0
  159. package/dist/src/cli/comment/delete.d.ts +9 -0
  160. package/dist/src/cli/comment/delete.js +24 -0
  161. package/dist/src/cli/comment/get.d.ts +6 -0
  162. package/dist/src/cli/comment/get.js +12 -0
  163. package/dist/src/cli/comment/index.d.ts +34 -0
  164. package/dist/src/cli/comment/index.js +53 -0
  165. package/dist/src/cli/comment/list.d.ts +9 -0
  166. package/dist/src/cli/comment/list.js +20 -0
  167. package/dist/src/cli/comment/reject.d.ts +9 -0
  168. package/dist/src/cli/comment/reject.js +23 -0
  169. package/dist/src/cli/comment/reply.d.ts +9 -0
  170. package/dist/src/cli/comment/reply.js +31 -0
  171. package/dist/src/cli/comment/unread.d.ts +7 -0
  172. package/dist/src/cli/comment/unread.js +21 -0
  173. package/dist/src/cli/comment/view.d.ts +3 -0
  174. package/dist/src/cli/comment/view.js +197 -0
  175. package/dist/src/cli/config/edit.d.ts +5 -0
  176. package/dist/src/cli/config/edit.js +36 -0
  177. package/dist/src/cli/config/get.d.ts +6 -0
  178. package/dist/src/cli/config/get.js +11 -0
  179. package/dist/src/cli/config/index.d.ts +10 -0
  180. package/dist/src/cli/config/index.js +22 -0
  181. package/dist/src/cli/config/list.d.ts +4 -0
  182. package/dist/src/cli/config/list.js +10 -0
  183. package/dist/src/cli/config/set.d.ts +9 -0
  184. package/dist/src/cli/config/set.js +48 -0
  185. package/dist/src/cli/draft/_shared.d.ts +27 -0
  186. package/dist/src/cli/draft/_shared.js +85 -0
  187. package/dist/src/cli/draft/create.d.ts +21 -0
  188. package/dist/src/cli/draft/create.js +34 -0
  189. package/dist/src/cli/draft/delete.d.ts +7 -0
  190. package/dist/src/cli/draft/delete.js +20 -0
  191. package/dist/src/cli/draft/get.d.ts +6 -0
  192. package/dist/src/cli/draft/get.js +11 -0
  193. package/dist/src/cli/draft/index.d.ts +54 -0
  194. package/dist/src/cli/draft/index.js +42 -0
  195. package/dist/src/cli/draft/list.d.ts +11 -0
  196. package/dist/src/cli/draft/list.js +23 -0
  197. package/dist/src/cli/draft/publish.d.ts +8 -0
  198. package/dist/src/cli/draft/publish.js +64 -0
  199. package/dist/src/cli/draft/update.d.ts +22 -0
  200. package/dist/src/cli/draft/update.js +29 -0
  201. package/dist/src/cli/file/_shared.d.ts +6 -0
  202. package/dist/src/cli/file/_shared.js +5 -0
  203. package/dist/src/cli/file/delete.d.ts +8 -0
  204. package/dist/src/cli/file/delete.js +21 -0
  205. package/dist/src/cli/file/index.d.ts +19 -0
  206. package/dist/src/cli/file/index.js +33 -0
  207. package/dist/src/cli/file/list.d.ts +6 -0
  208. package/dist/src/cli/file/list.js +11 -0
  209. package/dist/src/cli/file/rename.d.ts +8 -0
  210. package/dist/src/cli/file/rename.js +16 -0
  211. package/dist/src/cli/file/upload.d.ts +9 -0
  212. package/dist/src/cli/file/upload.js +32 -0
  213. package/dist/src/cli/help/index.d.ts +62 -0
  214. package/dist/src/cli/help/index.js +276 -0
  215. package/dist/src/cli/help/registry.d.ts +28 -0
  216. package/dist/src/cli/help/registry.js +29 -0
  217. package/dist/src/cli/note/_flags.d.ts +66 -0
  218. package/dist/src/cli/note/_flags.js +73 -0
  219. package/dist/src/cli/note/create.d.ts +23 -0
  220. package/dist/src/cli/note/create.js +25 -0
  221. package/dist/src/cli/note/delete.d.ts +8 -0
  222. package/dist/src/cli/note/delete.js +21 -0
  223. package/dist/src/cli/note/edit.d.ts +28 -0
  224. package/dist/src/cli/note/edit.js +114 -0
  225. package/dist/src/cli/note/get.d.ts +6 -0
  226. package/dist/src/cli/note/get.js +29 -0
  227. package/dist/src/cli/note/index.d.ts +77 -0
  228. package/dist/src/cli/note/index.js +63 -0
  229. package/dist/src/cli/note/list.d.ts +10 -0
  230. package/dist/src/cli/note/list.js +22 -0
  231. package/dist/src/cli/note/publish.d.ts +7 -0
  232. package/dist/src/cli/note/publish.js +17 -0
  233. package/dist/src/cli/note/unpublish.d.ts +7 -0
  234. package/dist/src/cli/note/unpublish.js +17 -0
  235. package/dist/src/cli/note/update.d.ts +25 -0
  236. package/dist/src/cli/note/update.js +36 -0
  237. package/dist/src/cli/note/view.d.ts +3 -0
  238. package/dist/src/cli/note/view.js +162 -0
  239. package/dist/src/cli/page/create.d.ts +41 -0
  240. package/dist/src/cli/page/create.js +56 -0
  241. package/dist/src/cli/page/delete.d.ts +7 -0
  242. package/dist/src/cli/page/delete.js +37 -0
  243. package/dist/src/cli/page/edit.d.ts +19 -0
  244. package/dist/src/cli/page/edit.js +117 -0
  245. package/dist/src/cli/page/get.d.ts +6 -0
  246. package/dist/src/cli/page/get.js +16 -0
  247. package/dist/src/cli/page/index.d.ts +44 -0
  248. package/dist/src/cli/page/index.js +38 -0
  249. package/dist/src/cli/page/list.d.ts +4 -0
  250. package/dist/src/cli/page/list.js +10 -0
  251. package/dist/src/cli/page/update.d.ts +16 -0
  252. package/dist/src/cli/page/update.js +48 -0
  253. package/dist/src/cli/page/view.d.ts +2 -0
  254. package/dist/src/cli/page/view.js +79 -0
  255. package/dist/src/cli/post/_flags.d.ts +66 -0
  256. package/dist/src/cli/post/_flags.js +96 -0
  257. package/dist/src/cli/post/apply.d.ts +7 -0
  258. package/dist/src/cli/post/apply.js +70 -0
  259. package/dist/src/cli/post/create.d.ts +21 -0
  260. package/dist/src/cli/post/create.js +24 -0
  261. package/dist/src/cli/post/delete.d.ts +8 -0
  262. package/dist/src/cli/post/delete.js +21 -0
  263. package/dist/src/cli/post/edit.d.ts +26 -0
  264. package/dist/src/cli/post/edit.js +115 -0
  265. package/dist/src/cli/post/get.d.ts +7 -0
  266. package/dist/src/cli/post/get.js +15 -0
  267. package/dist/src/cli/post/index.d.ts +91 -0
  268. package/dist/src/cli/post/index.js +73 -0
  269. package/dist/src/cli/post/list.d.ts +10 -0
  270. package/dist/src/cli/post/list.js +23 -0
  271. package/dist/src/cli/post/publish.d.ts +7 -0
  272. package/dist/src/cli/post/publish.js +17 -0
  273. package/dist/src/cli/post/stage.d.ts +23 -0
  274. package/dist/src/cli/post/stage.js +55 -0
  275. package/dist/src/cli/post/unpublish.d.ts +7 -0
  276. package/dist/src/cli/post/unpublish.js +17 -0
  277. package/dist/src/cli/post/update.d.ts +23 -0
  278. package/dist/src/cli/post/update.js +38 -0
  279. package/dist/src/cli/post/view.d.ts +3 -0
  280. package/dist/src/cli/post/view.js +150 -0
  281. package/dist/src/cli/preview/index.d.ts +13 -0
  282. package/dist/src/cli/preview/index.js +226 -0
  283. package/dist/src/cli/profile/index.d.ts +14 -0
  284. package/dist/src/cli/profile/index.js +36 -0
  285. package/dist/src/cli/profile/ls.d.ts +5 -0
  286. package/dist/src/cli/profile/ls.js +26 -0
  287. package/dist/src/cli/profile/mark.d.ts +9 -0
  288. package/dist/src/cli/profile/mark.js +23 -0
  289. package/dist/src/cli/profile/rm.d.ts +12 -0
  290. package/dist/src/cli/profile/rm.js +50 -0
  291. package/dist/src/cli/profile/show.d.ts +9 -0
  292. package/dist/src/cli/profile/show.js +40 -0
  293. package/dist/src/cli/profile/use.d.ts +6 -0
  294. package/dist/src/cli/profile/use.js +11 -0
  295. package/dist/src/cli/profile/view.d.ts +8 -0
  296. package/dist/src/cli/profile/view.js +21 -0
  297. package/dist/src/cli/project/_flags.d.ts +56 -0
  298. package/dist/src/cli/project/_flags.js +130 -0
  299. package/dist/src/cli/project/create.d.ts +17 -0
  300. package/dist/src/cli/project/create.js +25 -0
  301. package/dist/src/cli/project/delete.d.ts +8 -0
  302. package/dist/src/cli/project/delete.js +22 -0
  303. package/dist/src/cli/project/edit.d.ts +11 -0
  304. package/dist/src/cli/project/edit.js +61 -0
  305. package/dist/src/cli/project/get.d.ts +7 -0
  306. package/dist/src/cli/project/get.js +14 -0
  307. package/dist/src/cli/project/index.d.ts +43 -0
  308. package/dist/src/cli/project/index.js +52 -0
  309. package/dist/src/cli/project/list.d.ts +8 -0
  310. package/dist/src/cli/project/list.js +19 -0
  311. package/dist/src/cli/project/update.d.ts +18 -0
  312. package/dist/src/cli/project/update.js +24 -0
  313. package/dist/src/cli/project/view-cmd.d.ts +7 -0
  314. package/dist/src/cli/project/view-cmd.js +15 -0
  315. package/dist/src/cli/project/view.d.ts +3 -0
  316. package/dist/src/cli/project/view.js +102 -0
  317. package/dist/src/cli/render/codehighlight.d.ts +8 -0
  318. package/dist/src/cli/render/codehighlight.js +264 -0
  319. package/dist/src/cli/render/envelope.d.ts +7 -0
  320. package/dist/src/cli/render/envelope.js +23 -0
  321. package/dist/src/cli/render/frontmatter.d.ts +8 -0
  322. package/dist/src/cli/render/frontmatter.js +50 -0
  323. package/dist/src/cli/render/helpers.d.ts +2 -0
  324. package/dist/src/cli/render/helpers.js +11 -0
  325. package/dist/src/cli/render/index.d.ts +7 -0
  326. package/dist/src/cli/render/index.js +10 -0
  327. package/dist/src/cli/render/lexical/blocks.d.ts +19 -0
  328. package/dist/src/cli/render/lexical/blocks.js +208 -0
  329. package/dist/src/cli/render/lexical/code.d.ts +2 -0
  330. package/dist/src/cli/render/lexical/code.js +22 -0
  331. package/dist/src/cli/render/lexical/embeds.d.ts +6 -0
  332. package/dist/src/cli/render/lexical/embeds.js +51 -0
  333. package/dist/src/cli/render/lexical/index.d.ts +9 -0
  334. package/dist/src/cli/render/lexical/index.js +25 -0
  335. package/dist/src/cli/render/lexical/inlines.d.ts +17 -0
  336. package/dist/src/cli/render/lexical/inlines.js +76 -0
  337. package/dist/src/cli/render/lexical/parser.d.ts +10 -0
  338. package/dist/src/cli/render/lexical/parser.js +64 -0
  339. package/dist/src/cli/render/lexical/walker.d.ts +21 -0
  340. package/dist/src/cli/render/lexical/walker.js +51 -0
  341. package/dist/src/cli/render/markdown.d.ts +18 -0
  342. package/dist/src/cli/render/markdown.js +196 -0
  343. package/dist/src/cli/render/metadata-block.d.ts +14 -0
  344. package/dist/src/cli/render/metadata-block.js +50 -0
  345. package/dist/src/cli/skill/all.d.ts +4 -0
  346. package/dist/src/cli/skill/all.js +11 -0
  347. package/dist/src/cli/skill/get.d.ts +6 -0
  348. package/dist/src/cli/skill/get.js +12 -0
  349. package/dist/src/cli/skill/index.d.ts +10 -0
  350. package/dist/src/cli/skill/index.js +34 -0
  351. package/dist/src/cli/skill/list.d.ts +4 -0
  352. package/dist/src/cli/skill/list.js +11 -0
  353. package/dist/src/cli/skill/search.d.ts +6 -0
  354. package/dist/src/cli/skill/search.js +12 -0
  355. package/dist/src/cli/skill/views.d.ts +6 -0
  356. package/dist/src/cli/skill/views.js +90 -0
  357. package/dist/src/cli/snippet/_flags.d.ts +57 -0
  358. package/dist/src/cli/snippet/_flags.js +123 -0
  359. package/dist/src/cli/snippet/_resolve.d.ts +4 -0
  360. package/dist/src/cli/snippet/_resolve.js +32 -0
  361. package/dist/src/cli/snippet/_sync.d.ts +5 -0
  362. package/dist/src/cli/snippet/_sync.js +54 -0
  363. package/dist/src/cli/snippet/create.d.ts +19 -0
  364. package/dist/src/cli/snippet/create.js +35 -0
  365. package/dist/src/cli/snippet/delete.d.ts +8 -0
  366. package/dist/src/cli/snippet/delete.js +28 -0
  367. package/dist/src/cli/snippet/edit.d.ts +7 -0
  368. package/dist/src/cli/snippet/edit.js +29 -0
  369. package/dist/src/cli/snippet/get.d.ts +6 -0
  370. package/dist/src/cli/snippet/get.js +12 -0
  371. package/dist/src/cli/snippet/index.d.ts +43 -0
  372. package/dist/src/cli/snippet/index.js +58 -0
  373. package/dist/src/cli/snippet/list.d.ts +9 -0
  374. package/dist/src/cli/snippet/list.js +20 -0
  375. package/dist/src/cli/snippet/pull.d.ts +8 -0
  376. package/dist/src/cli/snippet/pull.js +33 -0
  377. package/dist/src/cli/snippet/push.d.ts +10 -0
  378. package/dist/src/cli/snippet/push.js +31 -0
  379. package/dist/src/cli/snippet/update.d.ts +8 -0
  380. package/dist/src/cli/snippet/update.js +16 -0
  381. package/dist/src/cli/topic/create.d.ts +10 -0
  382. package/dist/src/cli/topic/create.js +24 -0
  383. package/dist/src/cli/topic/delete.d.ts +7 -0
  384. package/dist/src/cli/topic/delete.js +37 -0
  385. package/dist/src/cli/topic/get.d.ts +6 -0
  386. package/dist/src/cli/topic/get.js +15 -0
  387. package/dist/src/cli/topic/index.d.ts +20 -0
  388. package/dist/src/cli/topic/index.js +32 -0
  389. package/dist/src/cli/topic/list.d.ts +4 -0
  390. package/dist/src/cli/topic/list.js +10 -0
  391. package/dist/src/cli/topic/update.d.ts +11 -0
  392. package/dist/src/cli/topic/update.js +51 -0
  393. package/dist/src/cli/ui/index.d.ts +24 -0
  394. package/dist/src/cli/ui/index.js +83 -0
  395. package/dist/src/cli/update/index.d.ts +10 -0
  396. package/dist/src/cli/update/index.js +142 -0
  397. package/dist/src/domain/admin-link.d.ts +12 -0
  398. package/dist/src/domain/admin-link.js +45 -0
  399. package/dist/src/domain/content-spec.d.ts +20 -0
  400. package/dist/src/domain/content-spec.js +78 -0
  401. package/dist/src/domain/envelope-compat.d.ts +68 -0
  402. package/dist/src/domain/envelope-compat.js +121 -0
  403. package/dist/src/domain/envelope.d.ts +34 -0
  404. package/dist/src/domain/envelope.js +355 -0
  405. package/dist/src/domain/errors.d.ts +336 -0
  406. package/dist/src/domain/errors.js +239 -0
  407. package/dist/src/domain/gate.d.ts +14 -0
  408. package/dist/src/domain/gate.js +18 -0
  409. package/dist/src/domain/payload.d.ts +64 -0
  410. package/dist/src/domain/payload.js +237 -0
  411. package/dist/src/domain/preflight-guards.d.ts +54 -0
  412. package/dist/src/domain/preflight-guards.js +130 -0
  413. package/dist/src/domain/runtime-flags.d.ts +33 -0
  414. package/dist/src/domain/runtime-flags.js +166 -0
  415. package/dist/src/domain/schema/api-envelope.d.ts +67 -0
  416. package/dist/src/domain/schema/api-envelope.js +65 -0
  417. package/dist/src/domain/schema/category.d.ts +23 -0
  418. package/dist/src/domain/schema/category.js +19 -0
  419. package/dist/src/domain/schema/config.d.ts +13 -0
  420. package/dist/src/domain/schema/config.js +18 -0
  421. package/dist/src/domain/schema/note.d.ts +76 -0
  422. package/dist/src/domain/schema/note.js +35 -0
  423. package/dist/src/domain/schema/page.d.ts +40 -0
  424. package/dist/src/domain/schema/page.js +22 -0
  425. package/dist/src/domain/schema/post.d.ts +68 -0
  426. package/dist/src/domain/schema/post.js +35 -0
  427. package/dist/src/domain/schema/profile.d.ts +14 -0
  428. package/dist/src/domain/schema/profile.js +22 -0
  429. package/dist/src/domain/schema/topic.d.ts +24 -0
  430. package/dist/src/domain/schema/topic.js +16 -0
  431. package/dist/src/domain/version.d.ts +15 -0
  432. package/dist/src/domain/version.js +43 -0
  433. package/dist/src/index.d.ts +4 -0
  434. package/dist/src/index.js +8 -0
  435. package/dist/src/layers/App.d.ts +30 -0
  436. package/dist/src/layers/App.js +39 -0
  437. package/dist/src/services/Ai/index.d.ts +13 -0
  438. package/dist/src/services/Ai/index.js +127 -0
  439. package/dist/src/services/Ai/overview.d.ts +7 -0
  440. package/dist/src/services/Ai/overview.js +11 -0
  441. package/dist/src/services/Ai/resources.d.ts +7 -0
  442. package/dist/src/services/Ai/resources.js +59 -0
  443. package/dist/src/services/Ai/shared.d.ts +2 -0
  444. package/dist/src/services/Ai/shared.js +11 -0
  445. package/dist/src/services/Ai/tasks.d.ts +8 -0
  446. package/dist/src/services/Ai/tasks.js +144 -0
  447. package/dist/src/services/Ai/types.d.ts +130 -0
  448. package/dist/src/services/Ai/types.js +1 -0
  449. package/dist/src/services/Api.d.ts +67 -0
  450. package/dist/src/services/Api.js +348 -0
  451. package/dist/src/services/Auth.d.ts +101 -0
  452. package/dist/src/services/Auth.js +402 -0
  453. package/dist/src/services/Backup.d.ts +8 -0
  454. package/dist/src/services/Backup.js +4 -0
  455. package/dist/src/services/Cache.d.ts +8 -0
  456. package/dist/src/services/Cache.js +4 -0
  457. package/dist/src/services/Comment.d.ts +48 -0
  458. package/dist/src/services/Comment.js +102 -0
  459. package/dist/src/services/Config.d.ts +95 -0
  460. package/dist/src/services/Config.js +359 -0
  461. package/dist/src/services/Editor.d.ts +28 -0
  462. package/dist/src/services/Editor.js +95 -0
  463. package/dist/src/services/Lexical.d.ts +27 -0
  464. package/dist/src/services/Lexical.js +56 -0
  465. package/dist/src/services/Migration.d.ts +31 -0
  466. package/dist/src/services/Migration.js +177 -0
  467. package/dist/src/services/Profile.d.ts +29 -0
  468. package/dist/src/services/Profile.js +115 -0
  469. package/dist/src/services/Renderer/content.d.ts +16 -0
  470. package/dist/src/services/Renderer/content.js +110 -0
  471. package/dist/src/services/Renderer/datetime.d.ts +38 -0
  472. package/dist/src/services/Renderer/datetime.js +147 -0
  473. package/dist/src/services/Renderer/errors.d.ts +3 -0
  474. package/dist/src/services/Renderer/errors.js +59 -0
  475. package/dist/src/services/Renderer/index.d.ts +13 -0
  476. package/dist/src/services/Renderer/index.js +11 -0
  477. package/dist/src/services/Renderer/lists.d.ts +1 -0
  478. package/dist/src/services/Renderer/lists.js +101 -0
  479. package/dist/src/services/Renderer/options.d.ts +10 -0
  480. package/dist/src/services/Renderer/options.js +13 -0
  481. package/dist/src/services/Renderer/primitives.d.ts +4 -0
  482. package/dist/src/services/Renderer/primitives.js +12 -0
  483. package/dist/src/services/Renderer/service.d.ts +35 -0
  484. package/dist/src/services/Renderer/service.js +123 -0
  485. package/dist/src/services/Renderer/view.d.ts +16 -0
  486. package/dist/src/services/Renderer/view.js +1 -0
  487. package/dist/src/services/Resolver.d.ts +47 -0
  488. package/dist/src/services/Resolver.js +269 -0
  489. package/dist/src/services/Skill.d.ts +29 -0
  490. package/dist/src/services/Skill.js +421 -0
  491. package/dist/src/services/UpdateNotifier.d.ts +162 -0
  492. package/dist/src/services/UpdateNotifier.js +572 -0
  493. package/dist/test/cli/ai/ai.test.d.ts +1 -0
  494. package/dist/test/cli/ai/ai.test.js +507 -0
  495. package/dist/test/cli/ai/verbs.test.d.ts +1 -0
  496. package/dist/test/cli/ai/verbs.test.js +235 -0
  497. package/dist/test/cli/auth/login.test.d.ts +1 -0
  498. package/dist/test/cli/auth/login.test.js +236 -0
  499. package/dist/test/cli/auth/logout-whoami.test.d.ts +1 -0
  500. package/dist/test/cli/auth/logout-whoami.test.js +124 -0
  501. package/dist/test/cli/auth/status.test.d.ts +1 -0
  502. package/dist/test/cli/auth/status.test.js +90 -0
  503. package/dist/test/cli/category/category.test.d.ts +1 -0
  504. package/dist/test/cli/category/category.test.js +175 -0
  505. package/dist/test/cli/comment/comment.test.d.ts +1 -0
  506. package/dist/test/cli/comment/comment.test.js +445 -0
  507. package/dist/test/cli/config/config.test.d.ts +1 -0
  508. package/dist/test/cli/config/config.test.js +281 -0
  509. package/dist/test/cli/edit-roundtrip.test.d.ts +1 -0
  510. package/dist/test/cli/edit-roundtrip.test.js +259 -0
  511. package/dist/test/cli/file/file.test.d.ts +1 -0
  512. package/dist/test/cli/file/file.test.js +185 -0
  513. package/dist/test/cli/help.test.d.ts +1 -0
  514. package/dist/test/cli/help.test.js +289 -0
  515. package/dist/test/cli/note/create.test.d.ts +1 -0
  516. package/dist/test/cli/note/create.test.js +155 -0
  517. package/dist/test/cli/note/list.test.d.ts +1 -0
  518. package/dist/test/cli/note/list.test.js +115 -0
  519. package/dist/test/cli/note/publish.test.d.ts +1 -0
  520. package/dist/test/cli/note/publish.test.js +123 -0
  521. package/dist/test/cli/page/page.test.d.ts +1 -0
  522. package/dist/test/cli/page/page.test.js +185 -0
  523. package/dist/test/cli/post/create.test.d.ts +1 -0
  524. package/dist/test/cli/post/create.test.js +172 -0
  525. package/dist/test/cli/post/list.test.d.ts +1 -0
  526. package/dist/test/cli/post/list.test.js +133 -0
  527. package/dist/test/cli/post/publish.test.d.ts +1 -0
  528. package/dist/test/cli/post/publish.test.js +139 -0
  529. package/dist/test/cli/post/stage-apply.test.d.ts +1 -0
  530. package/dist/test/cli/post/stage-apply.test.js +215 -0
  531. package/dist/test/cli/post/update.test.d.ts +1 -0
  532. package/dist/test/cli/post/update.test.js +160 -0
  533. package/dist/test/cli/post-note-crud.test.d.ts +1 -0
  534. package/dist/test/cli/post-note-crud.test.js +362 -0
  535. package/dist/test/cli/profile/ls.test.d.ts +1 -0
  536. package/dist/test/cli/profile/ls.test.js +93 -0
  537. package/dist/test/cli/profile/mark-use.test.d.ts +1 -0
  538. package/dist/test/cli/profile/mark-use.test.js +216 -0
  539. package/dist/test/cli/project-crud.test.d.ts +1 -0
  540. package/dist/test/cli/project-crud.test.js +315 -0
  541. package/dist/test/cli/render/lexical.test.d.ts +1 -0
  542. package/dist/test/cli/render/lexical.test.js +216 -0
  543. package/dist/test/cli/render/markdown.test.d.ts +1 -0
  544. package/dist/test/cli/render/markdown.test.js +39 -0
  545. package/dist/test/cli/snippet-crud.test.d.ts +1 -0
  546. package/dist/test/cli/snippet-crud.test.js +293 -0
  547. package/dist/test/cli/topic/topic.test.d.ts +1 -0
  548. package/dist/test/cli/topic/topic.test.js +181 -0
  549. package/dist/test/cli/update.test.d.ts +1 -0
  550. package/dist/test/cli/update.test.js +395 -0
  551. package/dist/test/domain/content-spec.test.d.ts +1 -0
  552. package/dist/test/domain/content-spec.test.js +126 -0
  553. package/dist/test/domain/envelope-compat.test.d.ts +1 -0
  554. package/dist/test/domain/envelope-compat.test.js +126 -0
  555. package/dist/test/domain/envelope.test.d.ts +1 -0
  556. package/dist/test/domain/envelope.test.js +149 -0
  557. package/dist/test/domain/errors.test.d.ts +1 -0
  558. package/dist/test/domain/errors.test.js +127 -0
  559. package/dist/test/domain/gate.test.d.ts +1 -0
  560. package/dist/test/domain/gate.test.js +128 -0
  561. package/dist/test/domain/payload.test.d.ts +1 -0
  562. package/dist/test/domain/payload.test.js +259 -0
  563. package/dist/test/helper/test-fs.d.ts +24 -0
  564. package/dist/test/helper/test-fs.js +161 -0
  565. package/dist/test/helper/test-http.d.ts +31 -0
  566. package/dist/test/helper/test-http.js +66 -0
  567. package/dist/test/integration/_helpers.d.ts +5 -0
  568. package/dist/test/integration/_helpers.js +24 -0
  569. package/dist/test/integration/cli-error-envelope.test.d.ts +1 -0
  570. package/dist/test/integration/cli-error-envelope.test.js +137 -0
  571. package/dist/test/integration/cli-help-render.test.d.ts +1 -0
  572. package/dist/test/integration/cli-help-render.test.js +149 -0
  573. package/dist/test/integration/cli-help.test.d.ts +1 -0
  574. package/dist/test/integration/cli-help.test.js +67 -0
  575. package/dist/test/integration/cli-post-list.test.d.ts +1 -0
  576. package/dist/test/integration/cli-post-list.test.js +140 -0
  577. package/dist/test/integration/cli-skill.test.d.ts +1 -0
  578. package/dist/test/integration/cli-skill.test.js +74 -0
  579. package/dist/test/integration/cli-version.test.d.ts +1 -0
  580. package/dist/test/integration/cli-version.test.js +37 -0
  581. package/dist/test/services/Api.test.d.ts +1 -0
  582. package/dist/test/services/Api.test.js +553 -0
  583. package/dist/test/services/Auth.test.d.ts +1 -0
  584. package/dist/test/services/Auth.test.js +650 -0
  585. package/dist/test/services/Config.test.d.ts +1 -0
  586. package/dist/test/services/Config.test.js +510 -0
  587. package/dist/test/services/Datetime.test.d.ts +1 -0
  588. package/dist/test/services/Datetime.test.js +113 -0
  589. package/dist/test/services/Editor.test.d.ts +1 -0
  590. package/dist/test/services/Editor.test.js +205 -0
  591. package/dist/test/services/Lexical.errors.test.d.ts +1 -0
  592. package/dist/test/services/Lexical.errors.test.js +60 -0
  593. package/dist/test/services/Lexical.test.d.ts +1 -0
  594. package/dist/test/services/Lexical.test.js +68 -0
  595. package/dist/test/services/Migration.test.d.ts +1 -0
  596. package/dist/test/services/Migration.test.js +376 -0
  597. package/dist/test/services/Profile.test.d.ts +1 -0
  598. package/dist/test/services/Profile.test.js +277 -0
  599. package/dist/test/services/Renderer.test.d.ts +1 -0
  600. package/dist/test/services/Renderer.test.js +538 -0
  601. package/dist/test/services/Resolver.test.d.ts +1 -0
  602. package/dist/test/services/Resolver.test.js +320 -0
  603. package/dist/test/services/Skill.test.d.ts +1 -0
  604. package/dist/test/services/Skill.test.js +261 -0
  605. package/dist/test/services/UpdateNotifier.spawn.test.d.ts +1 -0
  606. package/dist/test/services/UpdateNotifier.spawn.test.js +73 -0
  607. package/dist/test/services/UpdateNotifier.test.d.ts +1 -0
  608. package/dist/test/services/UpdateNotifier.test.js +912 -0
  609. package/dist/vendor/litexml/cli.mjs +2481 -2561
  610. package/dist/vendor/litexml/litexml-html-preview-client.css +178 -60
  611. package/dist/vendor/litexml/litexml-html-preview-client.js +9950 -8762
  612. package/dist/vendor/litexml/style.css +11 -7
  613. package/package.json +23 -21
  614. package/skills/commands-ai.md +45 -12
  615. package/skills/overview.md +1 -1
  616. package/skills/safety.md +1 -1
  617. package/dist/esm-CH7CrOvh.mjs +0 -2
@@ -0,0 +1,65 @@
1
+ import { Schema } from 'effect';
2
+ /**
3
+ * Wire-format error envelope emitted by `Renderer.emitError` (and consumed
4
+ * by tests as a regression oracle). Mirrors `MxsError.toJSON()` from the
5
+ * v0.2.x core, plus the `tagToCode` table in `domain/errors.ts`.
6
+ */
7
+ export const ErrorEnvelopeSchema = Schema.Struct({
8
+ ok: Schema.Literal(false),
9
+ code: Schema.String,
10
+ message: Schema.String,
11
+ details: Schema.optional(Schema.Unknown),
12
+ hint: Schema.optional(Schema.String),
13
+ });
14
+ /**
15
+ * Server-side pagination block. mx-core servers emit `page/size/total` —
16
+ * the CLI also accepts the legacy aliases (`currentPage`/`pageSize`/
17
+ * `totalCount`) for back-compat with old fixtures.
18
+ */
19
+ export const PaginationSchema = Schema.Struct({
20
+ page: Schema.optional(Schema.Number),
21
+ size: Schema.optional(Schema.Number),
22
+ total: Schema.optional(Schema.Number),
23
+ totalPage: Schema.optional(Schema.Number),
24
+ currentPage: Schema.optional(Schema.Number),
25
+ pageSize: Schema.optional(Schema.Number),
26
+ totalCount: Schema.optional(Schema.Number),
27
+ });
28
+ /**
29
+ * `{ data, pagination }` envelope — produced by paginator-decorated
30
+ * controllers in mx-core (`ResponseInterceptor`).
31
+ */
32
+ export const paginatedEnvelopeSchema = (item) => Schema.Struct({
33
+ data: Schema.Array(item),
34
+ pagination: Schema.optional(PaginationSchema),
35
+ });
36
+ /**
37
+ * `{ data: [...] }` envelope — produced by array responses without
38
+ * paginator decoration.
39
+ */
40
+ export const dataArrayEnvelopeSchema = (item) => Schema.Struct({
41
+ data: Schema.Array(item),
42
+ });
43
+ /**
44
+ * Common server error body shape — used to extract the human `message`
45
+ * when mapping non-2xx responses to `TaggedError`s.
46
+ */
47
+ export const ServerErrorBodySchema = Schema.Struct({
48
+ message: Schema.optional(Schema.Union(Schema.String, Schema.Array(Schema.String))),
49
+ code: Schema.optional(Schema.String),
50
+ details: Schema.optional(Schema.Unknown),
51
+ });
52
+ /**
53
+ * Extract a flattened `message` string from an arbitrary error body,
54
+ * matching the legacy `extractMessage` helper in `api-client.ts`.
55
+ */
56
+ export const extractServerMessage = (body) => {
57
+ if (!body || typeof body !== 'object')
58
+ return null;
59
+ const msg = body.message;
60
+ if (typeof msg === 'string')
61
+ return msg;
62
+ if (Array.isArray(msg) && typeof msg[0] === 'string')
63
+ return msg.join('; ');
64
+ return null;
65
+ };
@@ -0,0 +1,23 @@
1
+ import { Schema } from 'effect';
2
+ export declare const CategoryTypeSchema: Schema.Union<[Schema.Literal<[0, 1]>, Schema.Literal<["0", "1"]>]>;
3
+ export declare const CategorySchema: Schema.Struct<{
4
+ id: typeof Schema.String;
5
+ slug: typeof Schema.String;
6
+ name: typeof Schema.String;
7
+ createdAt: Schema.optional<typeof Schema.Any>;
8
+ type: Schema.optional<typeof Schema.Any>;
9
+ count: Schema.optional<typeof Schema.Any>;
10
+ }>;
11
+ export type Category = Schema.Schema.Type<typeof CategorySchema>;
12
+ export declare const CategoryListResponse: Schema.Struct<{
13
+ data: Schema.Array$<Schema.Struct<{
14
+ id: typeof Schema.String;
15
+ slug: typeof Schema.String;
16
+ name: typeof Schema.String;
17
+ createdAt: Schema.optional<typeof Schema.Any>;
18
+ type: Schema.optional<typeof Schema.Any>;
19
+ count: Schema.optional<typeof Schema.Any>;
20
+ }>>;
21
+ pagination: Schema.optional<typeof Schema.Any>;
22
+ }>;
23
+ export type CategoryListResponse = Schema.Schema.Type<typeof CategoryListResponse>;
@@ -0,0 +1,19 @@
1
+ import { Schema } from 'effect';
2
+ // CategoryType enum mirrors `@mx-space/api-client` `CategoryType` (0 = category, 1 = tag).
3
+ // We accept either numeric or string forms because legacy responses occasionally
4
+ // stringify the value.
5
+ export const CategoryTypeSchema = Schema.Union(Schema.Literal(0, 1), Schema.Literal('0', '1'));
6
+ export const CategorySchema = Schema.Struct({
7
+ id: Schema.String,
8
+ slug: Schema.String,
9
+ name: Schema.String,
10
+ // Unknown / loosely typed fields — kept as `Any` so server-side additions
11
+ // don't break decoding. Critical fields above are strictly typed.
12
+ createdAt: Schema.optional(Schema.Any),
13
+ type: Schema.optional(Schema.Any),
14
+ count: Schema.optional(Schema.Any),
15
+ });
16
+ export const CategoryListResponse = Schema.Struct({
17
+ data: Schema.Array(CategorySchema),
18
+ pagination: Schema.optional(Schema.Any),
19
+ });
@@ -0,0 +1,13 @@
1
+ import { Schema } from 'effect';
2
+ export declare const ProfileConfigSchema: Schema.Struct<{
3
+ api_url: Schema.optional<typeof Schema.String>;
4
+ api_version: Schema.optional<typeof Schema.Number>;
5
+ production: Schema.optional<typeof Schema.Boolean>;
6
+ }>;
7
+ export type ProfileConfig = Schema.Schema.Type<typeof ProfileConfigSchema>;
8
+ export declare const LegacyConfigSchema: Schema.Struct<{
9
+ api_url: Schema.optional<typeof Schema.String>;
10
+ api_version: Schema.optional<typeof Schema.Number>;
11
+ production: Schema.optional<typeof Schema.Boolean>;
12
+ }>;
13
+ export type LegacyConfig = ProfileConfig;
@@ -0,0 +1,18 @@
1
+ import { Schema } from 'effect';
2
+ // ---------------------------------------------------------------------------
3
+ // Profile config schema — matches `~/.config/mxs/profiles/<name>/config.json`.
4
+ //
5
+ // `production` is optional and only present when explicitly marked. Legacy
6
+ // fields (`api_base`, `auth_base`, `client_id`) are tolerated on read by
7
+ // stripping them before decoding — see `stripLegacyConfigFields` in
8
+ // `services/Config.ts`.
9
+ // ---------------------------------------------------------------------------
10
+ export const ProfileConfigSchema = Schema.Struct({
11
+ api_url: Schema.optional(Schema.String),
12
+ api_version: Schema.optional(Schema.Number),
13
+ production: Schema.optional(Schema.Boolean),
14
+ });
15
+ // Top-level `~/.config/mxs/config.json` is identical in shape today (it only
16
+ // exists in the legacy single-profile layout). We re-export the same schema
17
+ // under a distinct name to keep call sites self-documenting.
18
+ export const LegacyConfigSchema = ProfileConfigSchema;
@@ -0,0 +1,76 @@
1
+ import { Schema } from 'effect';
2
+ export declare const NoteSchema: Schema.Struct<{
3
+ id: typeof Schema.String;
4
+ title: typeof Schema.String;
5
+ nid: Schema.optional<typeof Schema.Any>;
6
+ slug: Schema.optional<typeof Schema.Any>;
7
+ text: Schema.optional<typeof Schema.Any>;
8
+ content: Schema.optional<typeof Schema.Any>;
9
+ contentFormat: Schema.optional<typeof Schema.Any>;
10
+ isPublished: Schema.optional<typeof Schema.Any>;
11
+ hasPassword: Schema.optional<typeof Schema.Any>;
12
+ publicAt: Schema.optional<typeof Schema.Any>;
13
+ mood: Schema.optional<typeof Schema.Any>;
14
+ weather: Schema.optional<typeof Schema.Any>;
15
+ bookmark: Schema.optional<typeof Schema.Any>;
16
+ location: Schema.optional<typeof Schema.Any>;
17
+ coordinates: Schema.optional<typeof Schema.Any>;
18
+ topicId: Schema.optional<typeof Schema.Any>;
19
+ topic: Schema.optional<Schema.Union<[Schema.Struct<{
20
+ id: typeof Schema.String;
21
+ name: typeof Schema.String;
22
+ slug: typeof Schema.String;
23
+ description: Schema.optional<typeof Schema.Any>;
24
+ introduce: Schema.optional<typeof Schema.Any>;
25
+ icon: Schema.optional<typeof Schema.Any>;
26
+ createdAt: Schema.optional<typeof Schema.Any>;
27
+ }>, typeof Schema.Null]>>;
28
+ summary: Schema.optional<typeof Schema.Any>;
29
+ meta: Schema.optional<typeof Schema.Any>;
30
+ images: Schema.optional<typeof Schema.Any>;
31
+ readCount: Schema.optional<typeof Schema.Any>;
32
+ likeCount: Schema.optional<typeof Schema.Any>;
33
+ createdAt: Schema.optional<typeof Schema.Any>;
34
+ modifiedAt: Schema.optional<typeof Schema.Any>;
35
+ enrichments: Schema.optional<typeof Schema.Any>;
36
+ }>;
37
+ export type Note = Schema.Schema.Type<typeof NoteSchema>;
38
+ export declare const NoteListResponse: Schema.Struct<{
39
+ data: Schema.Array$<Schema.Struct<{
40
+ id: typeof Schema.String;
41
+ title: typeof Schema.String;
42
+ nid: Schema.optional<typeof Schema.Any>;
43
+ slug: Schema.optional<typeof Schema.Any>;
44
+ text: Schema.optional<typeof Schema.Any>;
45
+ content: Schema.optional<typeof Schema.Any>;
46
+ contentFormat: Schema.optional<typeof Schema.Any>;
47
+ isPublished: Schema.optional<typeof Schema.Any>;
48
+ hasPassword: Schema.optional<typeof Schema.Any>;
49
+ publicAt: Schema.optional<typeof Schema.Any>;
50
+ mood: Schema.optional<typeof Schema.Any>;
51
+ weather: Schema.optional<typeof Schema.Any>;
52
+ bookmark: Schema.optional<typeof Schema.Any>;
53
+ location: Schema.optional<typeof Schema.Any>;
54
+ coordinates: Schema.optional<typeof Schema.Any>;
55
+ topicId: Schema.optional<typeof Schema.Any>;
56
+ topic: Schema.optional<Schema.Union<[Schema.Struct<{
57
+ id: typeof Schema.String;
58
+ name: typeof Schema.String;
59
+ slug: typeof Schema.String;
60
+ description: Schema.optional<typeof Schema.Any>;
61
+ introduce: Schema.optional<typeof Schema.Any>;
62
+ icon: Schema.optional<typeof Schema.Any>;
63
+ createdAt: Schema.optional<typeof Schema.Any>;
64
+ }>, typeof Schema.Null]>>;
65
+ summary: Schema.optional<typeof Schema.Any>;
66
+ meta: Schema.optional<typeof Schema.Any>;
67
+ images: Schema.optional<typeof Schema.Any>;
68
+ readCount: Schema.optional<typeof Schema.Any>;
69
+ likeCount: Schema.optional<typeof Schema.Any>;
70
+ createdAt: Schema.optional<typeof Schema.Any>;
71
+ modifiedAt: Schema.optional<typeof Schema.Any>;
72
+ enrichments: Schema.optional<typeof Schema.Any>;
73
+ }>>;
74
+ pagination: Schema.optional<typeof Schema.Any>;
75
+ }>;
76
+ export type NoteListResponse = Schema.Schema.Type<typeof NoteListResponse>;
@@ -0,0 +1,35 @@
1
+ import { Schema } from 'effect';
2
+ import { TopicSchema } from './topic';
3
+ export const NoteSchema = Schema.Struct({
4
+ id: Schema.String,
5
+ title: Schema.String,
6
+ // `nid` is required by api-client but stays loose so legacy / older
7
+ // payloads decode cleanly.
8
+ nid: Schema.optional(Schema.Any),
9
+ slug: Schema.optional(Schema.Any),
10
+ text: Schema.optional(Schema.Any),
11
+ content: Schema.optional(Schema.Any),
12
+ contentFormat: Schema.optional(Schema.Any),
13
+ isPublished: Schema.optional(Schema.Any),
14
+ hasPassword: Schema.optional(Schema.Any),
15
+ publicAt: Schema.optional(Schema.Any),
16
+ mood: Schema.optional(Schema.Any),
17
+ weather: Schema.optional(Schema.Any),
18
+ bookmark: Schema.optional(Schema.Any),
19
+ location: Schema.optional(Schema.Any),
20
+ coordinates: Schema.optional(Schema.Any),
21
+ topicId: Schema.optional(Schema.Any),
22
+ topic: Schema.optional(Schema.Union(TopicSchema, Schema.Null)),
23
+ summary: Schema.optional(Schema.Any),
24
+ meta: Schema.optional(Schema.Any),
25
+ images: Schema.optional(Schema.Any),
26
+ readCount: Schema.optional(Schema.Any),
27
+ likeCount: Schema.optional(Schema.Any),
28
+ createdAt: Schema.optional(Schema.Any),
29
+ modifiedAt: Schema.optional(Schema.Any),
30
+ enrichments: Schema.optional(Schema.Any),
31
+ });
32
+ export const NoteListResponse = Schema.Struct({
33
+ data: Schema.Array(NoteSchema),
34
+ pagination: Schema.optional(Schema.Any),
35
+ });
@@ -0,0 +1,40 @@
1
+ import { Schema } from 'effect';
2
+ export declare const PageSchema: Schema.Struct<{
3
+ id: typeof Schema.String;
4
+ title: typeof Schema.String;
5
+ slug: typeof Schema.String;
6
+ subtitle: Schema.optional<typeof Schema.Any>;
7
+ text: Schema.optional<typeof Schema.Any>;
8
+ content: Schema.optional<typeof Schema.Any>;
9
+ contentFormat: Schema.optional<typeof Schema.Any>;
10
+ order: Schema.optional<typeof Schema.Any>;
11
+ type: Schema.optional<typeof Schema.Any>;
12
+ options: Schema.optional<typeof Schema.Any>;
13
+ meta: Schema.optional<typeof Schema.Any>;
14
+ images: Schema.optional<typeof Schema.Any>;
15
+ createdAt: Schema.optional<typeof Schema.Any>;
16
+ modifiedAt: Schema.optional<typeof Schema.Any>;
17
+ enrichments: Schema.optional<typeof Schema.Any>;
18
+ }>;
19
+ export type Page = Schema.Schema.Type<typeof PageSchema>;
20
+ export declare const PageListResponse: Schema.Struct<{
21
+ data: Schema.Array$<Schema.Struct<{
22
+ id: typeof Schema.String;
23
+ title: typeof Schema.String;
24
+ slug: typeof Schema.String;
25
+ subtitle: Schema.optional<typeof Schema.Any>;
26
+ text: Schema.optional<typeof Schema.Any>;
27
+ content: Schema.optional<typeof Schema.Any>;
28
+ contentFormat: Schema.optional<typeof Schema.Any>;
29
+ order: Schema.optional<typeof Schema.Any>;
30
+ type: Schema.optional<typeof Schema.Any>;
31
+ options: Schema.optional<typeof Schema.Any>;
32
+ meta: Schema.optional<typeof Schema.Any>;
33
+ images: Schema.optional<typeof Schema.Any>;
34
+ createdAt: Schema.optional<typeof Schema.Any>;
35
+ modifiedAt: Schema.optional<typeof Schema.Any>;
36
+ enrichments: Schema.optional<typeof Schema.Any>;
37
+ }>>;
38
+ pagination: Schema.optional<typeof Schema.Any>;
39
+ }>;
40
+ export type PageListResponse = Schema.Schema.Type<typeof PageListResponse>;
@@ -0,0 +1,22 @@
1
+ import { Schema } from 'effect';
2
+ export const PageSchema = Schema.Struct({
3
+ id: Schema.String,
4
+ title: Schema.String,
5
+ slug: Schema.String,
6
+ subtitle: Schema.optional(Schema.Any),
7
+ text: Schema.optional(Schema.Any),
8
+ content: Schema.optional(Schema.Any),
9
+ contentFormat: Schema.optional(Schema.Any),
10
+ order: Schema.optional(Schema.Any),
11
+ type: Schema.optional(Schema.Any),
12
+ options: Schema.optional(Schema.Any),
13
+ meta: Schema.optional(Schema.Any),
14
+ images: Schema.optional(Schema.Any),
15
+ createdAt: Schema.optional(Schema.Any),
16
+ modifiedAt: Schema.optional(Schema.Any),
17
+ enrichments: Schema.optional(Schema.Any),
18
+ });
19
+ export const PageListResponse = Schema.Struct({
20
+ data: Schema.Array(PageSchema),
21
+ pagination: Schema.optional(Schema.Any),
22
+ });
@@ -0,0 +1,68 @@
1
+ import { Schema } from 'effect';
2
+ export declare const PostSchema: Schema.Struct<{
3
+ id: typeof Schema.String;
4
+ title: typeof Schema.String;
5
+ slug: typeof Schema.String;
6
+ text: Schema.optional<typeof Schema.Any>;
7
+ content: Schema.optional<typeof Schema.Any>;
8
+ contentFormat: Schema.optional<typeof Schema.Any>;
9
+ summary: Schema.optional<typeof Schema.Any>;
10
+ copyright: Schema.optional<typeof Schema.Any>;
11
+ tags: Schema.optional<typeof Schema.Any>;
12
+ isPublished: Schema.optional<typeof Schema.Any>;
13
+ pinAt: Schema.optional<typeof Schema.Any>;
14
+ pinOrder: Schema.optional<typeof Schema.Any>;
15
+ categoryId: Schema.optional<typeof Schema.Any>;
16
+ category: Schema.optional<Schema.Struct<{
17
+ id: typeof Schema.String;
18
+ slug: typeof Schema.String;
19
+ name: typeof Schema.String;
20
+ createdAt: Schema.optional<typeof Schema.Any>;
21
+ type: Schema.optional<typeof Schema.Any>;
22
+ count: Schema.optional<typeof Schema.Any>;
23
+ }>>;
24
+ meta: Schema.optional<typeof Schema.Any>;
25
+ images: Schema.optional<typeof Schema.Any>;
26
+ readCount: Schema.optional<typeof Schema.Any>;
27
+ likeCount: Schema.optional<typeof Schema.Any>;
28
+ createdAt: Schema.optional<typeof Schema.Any>;
29
+ modifiedAt: Schema.optional<typeof Schema.Any>;
30
+ related: Schema.optional<typeof Schema.Any>;
31
+ enrichments: Schema.optional<typeof Schema.Any>;
32
+ }>;
33
+ export type Post = Schema.Schema.Type<typeof PostSchema>;
34
+ export declare const PostListResponse: Schema.Struct<{
35
+ data: Schema.Array$<Schema.Struct<{
36
+ id: typeof Schema.String;
37
+ title: typeof Schema.String;
38
+ slug: typeof Schema.String;
39
+ text: Schema.optional<typeof Schema.Any>;
40
+ content: Schema.optional<typeof Schema.Any>;
41
+ contentFormat: Schema.optional<typeof Schema.Any>;
42
+ summary: Schema.optional<typeof Schema.Any>;
43
+ copyright: Schema.optional<typeof Schema.Any>;
44
+ tags: Schema.optional<typeof Schema.Any>;
45
+ isPublished: Schema.optional<typeof Schema.Any>;
46
+ pinAt: Schema.optional<typeof Schema.Any>;
47
+ pinOrder: Schema.optional<typeof Schema.Any>;
48
+ categoryId: Schema.optional<typeof Schema.Any>;
49
+ category: Schema.optional<Schema.Struct<{
50
+ id: typeof Schema.String;
51
+ slug: typeof Schema.String;
52
+ name: typeof Schema.String;
53
+ createdAt: Schema.optional<typeof Schema.Any>;
54
+ type: Schema.optional<typeof Schema.Any>;
55
+ count: Schema.optional<typeof Schema.Any>;
56
+ }>>;
57
+ meta: Schema.optional<typeof Schema.Any>;
58
+ images: Schema.optional<typeof Schema.Any>;
59
+ readCount: Schema.optional<typeof Schema.Any>;
60
+ likeCount: Schema.optional<typeof Schema.Any>;
61
+ createdAt: Schema.optional<typeof Schema.Any>;
62
+ modifiedAt: Schema.optional<typeof Schema.Any>;
63
+ related: Schema.optional<typeof Schema.Any>;
64
+ enrichments: Schema.optional<typeof Schema.Any>;
65
+ }>>;
66
+ pagination: Schema.optional<typeof Schema.Any>;
67
+ }>;
68
+ export type PostListResponse = Schema.Schema.Type<typeof PostListResponse>;
@@ -0,0 +1,35 @@
1
+ import { Schema } from 'effect';
2
+ import { CategorySchema } from './category';
3
+ // Strictly typed: `id`, `title`, `slug` are the fields the CLI surfaces in
4
+ // every output mode (`readable`, `llm`, `envelope`). Everything else is left
5
+ // as `Schema.Any` so server-side additions (new flags, enrichments, etc.) do
6
+ // not break decoding.
7
+ export const PostSchema = Schema.Struct({
8
+ id: Schema.String,
9
+ title: Schema.String,
10
+ slug: Schema.String,
11
+ // Optional / loose typed fields
12
+ text: Schema.optional(Schema.Any),
13
+ content: Schema.optional(Schema.Any),
14
+ contentFormat: Schema.optional(Schema.Any),
15
+ summary: Schema.optional(Schema.Any),
16
+ copyright: Schema.optional(Schema.Any),
17
+ tags: Schema.optional(Schema.Any),
18
+ isPublished: Schema.optional(Schema.Any),
19
+ pinAt: Schema.optional(Schema.Any),
20
+ pinOrder: Schema.optional(Schema.Any),
21
+ categoryId: Schema.optional(Schema.Any),
22
+ category: Schema.optional(CategorySchema),
23
+ meta: Schema.optional(Schema.Any),
24
+ images: Schema.optional(Schema.Any),
25
+ readCount: Schema.optional(Schema.Any),
26
+ likeCount: Schema.optional(Schema.Any),
27
+ createdAt: Schema.optional(Schema.Any),
28
+ modifiedAt: Schema.optional(Schema.Any),
29
+ related: Schema.optional(Schema.Any),
30
+ enrichments: Schema.optional(Schema.Any),
31
+ });
32
+ export const PostListResponse = Schema.Struct({
33
+ data: Schema.Array(PostSchema),
34
+ pagination: Schema.optional(Schema.Any),
35
+ });
@@ -0,0 +1,14 @@
1
+ import { Schema } from 'effect';
2
+ export declare const ProfileCredentialsSchema: Schema.Struct<{
3
+ access_token: typeof Schema.String;
4
+ refresh_token: Schema.optional<typeof Schema.String>;
5
+ expires_at: typeof Schema.Number;
6
+ user: Schema.optional<Schema.Struct<{
7
+ id: Schema.optional<typeof Schema.String>;
8
+ email: Schema.optional<typeof Schema.String>;
9
+ name: Schema.optional<typeof Schema.String>;
10
+ }>>;
11
+ }>;
12
+ export type ProfileCredentials = Schema.Schema.Type<typeof ProfileCredentialsSchema>;
13
+ export declare const ProfileNameSchema: Schema.filter<Schema.filter<typeof Schema.String>>;
14
+ export type ProfileName = Schema.Schema.Type<typeof ProfileNameSchema>;
@@ -0,0 +1,22 @@
1
+ import { Schema } from 'effect';
2
+ // ---------------------------------------------------------------------------
3
+ // Profile credentials schema — matches
4
+ // `~/.config/mxs/profiles/<name>/credentials.json`.
5
+ // ---------------------------------------------------------------------------
6
+ const ProfileUserSchema = Schema.Struct({
7
+ id: Schema.optional(Schema.String),
8
+ email: Schema.optional(Schema.String),
9
+ name: Schema.optional(Schema.String),
10
+ });
11
+ export const ProfileCredentialsSchema = Schema.Struct({
12
+ access_token: Schema.String,
13
+ refresh_token: Schema.optional(Schema.String),
14
+ expires_at: Schema.Number,
15
+ user: Schema.optional(ProfileUserSchema),
16
+ });
17
+ // ---------------------------------------------------------------------------
18
+ // Profile name — `^[a-z0-9_-]{1,32}$`, excluding the reserved word `current`.
19
+ // ---------------------------------------------------------------------------
20
+ export const ProfileNameSchema = Schema.String.pipe(Schema.pattern(/^[\d_a-z-]{1,32}$/, {
21
+ message: () => 'profile name must match ^[a-z0-9_-]{1,32}$ and is case-sensitive',
22
+ }), Schema.filter((s) => (s === 'current' ? "'current' is reserved" : true)));
@@ -0,0 +1,24 @@
1
+ import { Schema } from 'effect';
2
+ export declare const TopicSchema: Schema.Struct<{
3
+ id: typeof Schema.String;
4
+ name: typeof Schema.String;
5
+ slug: typeof Schema.String;
6
+ description: Schema.optional<typeof Schema.Any>;
7
+ introduce: Schema.optional<typeof Schema.Any>;
8
+ icon: Schema.optional<typeof Schema.Any>;
9
+ createdAt: Schema.optional<typeof Schema.Any>;
10
+ }>;
11
+ export type Topic = Schema.Schema.Type<typeof TopicSchema>;
12
+ export declare const TopicListResponse: Schema.Struct<{
13
+ data: Schema.Array$<Schema.Struct<{
14
+ id: typeof Schema.String;
15
+ name: typeof Schema.String;
16
+ slug: typeof Schema.String;
17
+ description: Schema.optional<typeof Schema.Any>;
18
+ introduce: Schema.optional<typeof Schema.Any>;
19
+ icon: Schema.optional<typeof Schema.Any>;
20
+ createdAt: Schema.optional<typeof Schema.Any>;
21
+ }>>;
22
+ pagination: Schema.optional<typeof Schema.Any>;
23
+ }>;
24
+ export type TopicListResponse = Schema.Schema.Type<typeof TopicListResponse>;
@@ -0,0 +1,16 @@
1
+ import { Schema } from 'effect';
2
+ export const TopicSchema = Schema.Struct({
3
+ id: Schema.String,
4
+ name: Schema.String,
5
+ slug: Schema.String,
6
+ // Loose fields — mirror api-client `TopicModel` without forcing nullability
7
+ // shape since the wire payload occasionally omits them.
8
+ description: Schema.optional(Schema.Any),
9
+ introduce: Schema.optional(Schema.Any),
10
+ icon: Schema.optional(Schema.Any),
11
+ createdAt: Schema.optional(Schema.Any),
12
+ });
13
+ export const TopicListResponse = Schema.Struct({
14
+ data: Schema.Array(TopicSchema),
15
+ pagination: Schema.optional(Schema.Any),
16
+ });
@@ -0,0 +1,15 @@
1
+ import { release } from 'node:os';
2
+ export declare const CLI_VERSION: string;
3
+ /**
4
+ * RFC-7231-style User-Agent. Format:
5
+ * `mxs/<cli-version> (<os-platform> <os-arch>; node/<node-version>)`
6
+ *
7
+ * Example: `mxs/0.4.0 (darwin arm64; node/v22.22.2)`
8
+ *
9
+ * mx-core's spider guard whitelists any UA containing `mx-space`; this string
10
+ * does (`mxs` is the @mx-space/cli binary). Authenticated requests bypass the
11
+ * guard regardless of UA, but a well-formed UA helps server-side analytics
12
+ * tell agent traffic apart from human browser sessions.
13
+ */
14
+ export declare const USER_AGENT: string;
15
+ export declare const HOST_KERNEL_RELEASE: typeof release;
@@ -0,0 +1,43 @@
1
+ import { createRequire } from 'node:module';
2
+ import { arch, platform, release } from 'node:os';
3
+ // `import.meta.url` resolves to one of:
4
+ // `<root>/packages/cli/src/.../*.ts` (tsx, dev)
5
+ // `<root>/packages/cli/dist/*.mjs` (bundled)
6
+ // `<root>/packages/cli/dist/bin/*.mjs` (bin shim)
7
+ // Walk up until we find the @mx-space/cli package.json.
8
+ const requireFrom = createRequire(import.meta.url);
9
+ const resolveCliVersion = () => {
10
+ const candidates = [
11
+ '../package.json',
12
+ '../../package.json',
13
+ '../../../package.json',
14
+ ];
15
+ for (const candidate of candidates) {
16
+ try {
17
+ const pkg = requireFrom(candidate);
18
+ if (pkg.name === '@mx-space/cli' && typeof pkg.version === 'string') {
19
+ return pkg.version;
20
+ }
21
+ }
22
+ catch {
23
+ // try next candidate
24
+ }
25
+ }
26
+ return '0.0.0-unknown';
27
+ };
28
+ export const CLI_VERSION = resolveCliVersion();
29
+ /**
30
+ * RFC-7231-style User-Agent. Format:
31
+ * `mxs/<cli-version> (<os-platform> <os-arch>; node/<node-version>)`
32
+ *
33
+ * Example: `mxs/0.4.0 (darwin arm64; node/v22.22.2)`
34
+ *
35
+ * mx-core's spider guard whitelists any UA containing `mx-space`; this string
36
+ * does (`mxs` is the @mx-space/cli binary). Authenticated requests bypass the
37
+ * guard regardless of UA, but a well-formed UA helps server-side analytics
38
+ * tell agent traffic apart from human browser sessions.
39
+ */
40
+ export const USER_AGENT = `mxs/${CLI_VERSION} (${platform()} ${arch()}; node/${process.version}) @mx-space/cli`;
41
+ // `release()` is exposed for future enrichment (build/dist channel) — kept off
42
+ // the default UA to avoid leaking host detail unnecessarily.
43
+ export const HOST_KERNEL_RELEASE = release;
@@ -0,0 +1,4 @@
1
+ export { run } from './bin/mxs';
2
+ export { type CliError, type CliErrorTag, codeForTag, defaultMessageFor, type ErrorEnvelope, exitCodeForError, exitCodeForTag, tagToCode, toErrorEnvelope, } from './domain/errors';
3
+ export { defaultGlobalFlags, type GlobalFlags, parseGlobalFlags, } from './domain/runtime-flags';
4
+ export type { OutputMode, OutputOptions } from './services/Renderer';
@@ -0,0 +1,8 @@
1
+ // Public surface for `@mx-space/cli`. The v0.3 rewrite is internal: most of
2
+ // what we exported in v0.2.x was structural plumbing that has since been
3
+ // replaced by Effect services. Downstream consumers that still want to
4
+ // programmatically drive the CLI use `run` below; everything else is
5
+ // available through the namespaced `domain/`, `services/`, `cli/` exports.
6
+ export { run } from './bin/mxs';
7
+ export { codeForTag, defaultMessageFor, exitCodeForError, exitCodeForTag, tagToCode, toErrorEnvelope, } from './domain/errors';
8
+ export { defaultGlobalFlags, parseGlobalFlags, } from './domain/runtime-flags';
@@ -0,0 +1,30 @@
1
+ import type { FileSystem, HttpClient, Path } from '@effect/platform';
2
+ import { Layer } from 'effect';
3
+ import { Auth } from '../services/Auth';
4
+ import { Config } from '../services/Config';
5
+ import { Editor } from '../services/Editor';
6
+ import { Lexical } from '../services/Lexical';
7
+ import { Migration } from '../services/Migration';
8
+ import { Profile } from '../services/Profile';
9
+ import { Renderer } from '../services/Renderer';
10
+ import { Skill } from '../services/Skill';
11
+ import { UpdateNotifier } from '../services/UpdateNotifier';
12
+ /**
13
+ * Application-wide service layer — everything EXCEPT `Api` and `Resolver`,
14
+ * which depend on per-invocation global flags (`--api-url`, `--token`,
15
+ * `--api-key`, `--profile`, `--dry-run`, `--lang`) and must be constructed
16
+ * inside `bin/mxs.ts` after `parseGlobalFlags`.
17
+ *
18
+ * Internal dependencies are wired here so callers only need to provide the
19
+ * platform-level services: `FileSystem`, `Path`, `HttpClient`.
20
+ *
21
+ * Config ← FileSystem, Path
22
+ * Profile ← Config
23
+ * Migration ← Config, FileSystem
24
+ * Auth ← Config, HttpClient
25
+ * Editor ← FileSystem
26
+ * Renderer — pure
27
+ * Lexical — pure
28
+ * UpdateNotifier — pure
29
+ */
30
+ export declare const AppLayer: Layer.Layer<Auth | Config | Editor | Lexical | Migration | Profile | Renderer | Skill | UpdateNotifier, never, FileSystem.FileSystem | HttpClient.HttpClient | Path.Path>;
@@ -0,0 +1,39 @@
1
+ import { Layer } from 'effect';
2
+ import { Auth } from '../services/Auth';
3
+ import { Config } from '../services/Config';
4
+ import { Editor } from '../services/Editor';
5
+ import { Lexical } from '../services/Lexical';
6
+ import { Migration } from '../services/Migration';
7
+ import { Profile } from '../services/Profile';
8
+ import { Renderer } from '../services/Renderer';
9
+ import { Skill } from '../services/Skill';
10
+ import { UpdateNotifier } from '../services/UpdateNotifier';
11
+ // NOTE: `Comment` depends on `Api`, so it is layered into the composition in
12
+ // `bin/mxs.ts` (alongside `Resolver`) — NOT here. Listing it would create a
13
+ // dependency on per-invocation flags. See `bin/mxs.ts#fullAppLayer`.
14
+ /**
15
+ * Application-wide service layer — everything EXCEPT `Api` and `Resolver`,
16
+ * which depend on per-invocation global flags (`--api-url`, `--token`,
17
+ * `--api-key`, `--profile`, `--dry-run`, `--lang`) and must be constructed
18
+ * inside `bin/mxs.ts` after `parseGlobalFlags`.
19
+ *
20
+ * Internal dependencies are wired here so callers only need to provide the
21
+ * platform-level services: `FileSystem`, `Path`, `HttpClient`.
22
+ *
23
+ * Config ← FileSystem, Path
24
+ * Profile ← Config
25
+ * Migration ← Config, FileSystem
26
+ * Auth ← Config, HttpClient
27
+ * Editor ← FileSystem
28
+ * Renderer — pure
29
+ * Lexical — pure
30
+ * UpdateNotifier — pure
31
+ */
32
+ export const AppLayer = (() => {
33
+ const configLayer = Config.Default;
34
+ const profileLayer = Profile.Default.pipe(Layer.provide(configLayer));
35
+ const migrationLayer = Migration.Default.pipe(Layer.provide(configLayer));
36
+ const authLayer = Auth.Default.pipe(Layer.provide(configLayer));
37
+ const editorLayer = Editor.Default;
38
+ return Layer.mergeAll(configLayer, profileLayer, migrationLayer, authLayer, editorLayer, Renderer.Default, Lexical.Default, Skill.Default, UpdateNotifier.Default);
39
+ })();