@mx-space/cli 0.15.1 → 0.15.2

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 (611) hide show
  1. package/dist/{Lexical.dev-BSvx45_E.mjs → Lexical.dev-Df5TNMgP.mjs} +2 -2
  2. package/dist/{Lexical.node-kAh5GM2n.mjs → Lexical.node-B064E4Hy.mjs} +1 -1
  3. package/dist/{Lexical.prod-Bqwgb3ez.mjs → Lexical.prod-DRFSwoE7.mjs} +2 -2
  4. package/dist/{LexicalClipboard.dev-BWU3KXIa.mjs → LexicalClipboard.dev-ClOWeg5v.mjs} +5 -5
  5. package/dist/{LexicalClipboard.node-BygAdNdF.mjs → LexicalClipboard.node-BJBLWpEi.mjs} +1 -1
  6. package/dist/{LexicalClipboard.prod-BtMuKNyT.mjs → LexicalClipboard.prod-Ytt65eQo.mjs} +5 -5
  7. package/dist/{LexicalCodeCore.dev-CD2xgvDs.mjs → LexicalCodeCore.dev-CzEPINOT.mjs} +4 -4
  8. package/dist/{LexicalCodeCore.prod-Bl6FFMc7.mjs → LexicalCodeCore.prod-DOVk7lL_.mjs} +4 -4
  9. package/dist/{LexicalDragon.dev-BwdYhm4K.mjs → LexicalDragon.dev-DxePN9fP.mjs} +2 -2
  10. package/dist/{LexicalDragon.node-CpJhkCVV.mjs → LexicalDragon.node-DBwaqStp.mjs} +1 -1
  11. package/dist/{LexicalDragon.prod-CvXmWwo1.mjs → LexicalDragon.prod-Bji84-Hq.mjs} +2 -2
  12. package/dist/{LexicalExtension.dev-LcRLXI5Z.mjs → LexicalExtension.dev-DtSRyjbf.mjs} +2 -2
  13. package/dist/{LexicalExtension.node-BwJt2LXV.mjs → LexicalExtension.node-3nsS5NjU.mjs} +1 -1
  14. package/dist/{LexicalExtension.prod-lg8_33-H.mjs → LexicalExtension.prod-Ddk0ja_6.mjs} +2 -2
  15. package/dist/{LexicalHeadless.dev-BeUbKBes.mjs → LexicalHeadless.dev-DdWJsPoH.mjs} +1 -1
  16. package/dist/{LexicalHeadless.prod-4gbIA8HM.mjs → LexicalHeadless.prod-CH74ZDMt.mjs} +1 -1
  17. package/dist/{LexicalHtml.dev-BLdZWTCJ.mjs → LexicalHtml.dev-DN7QIb_7.mjs} +4 -4
  18. package/dist/{LexicalHtml.node-BeuJMvvt.mjs → LexicalHtml.node-DAwuaPeI.mjs} +1 -1
  19. package/dist/{LexicalHtml.prod-CHUyCocN.mjs → LexicalHtml.prod-X4eTHEfI.mjs} +4 -4
  20. package/dist/{LexicalLink.dev-DgsFRqw0.mjs → LexicalLink.dev-owitIl6I.mjs} +4 -4
  21. package/dist/{LexicalLink.prod-CkXkeKY2.mjs → LexicalLink.prod-BZ7ZZkVD.mjs} +4 -4
  22. package/dist/{LexicalList.dev-OOms3kQi.mjs → LexicalList.dev-CUbi09Yo.mjs} +4 -4
  23. package/dist/{LexicalList.prod-DzMBeqHn.mjs → LexicalList.prod-pUsUZa0r.mjs} +4 -4
  24. package/dist/{LexicalMarkdown.dev-DJLKbZtD.mjs → LexicalMarkdown.dev-S2yWckH9.mjs} +3 -3
  25. package/dist/{LexicalMarkdown.prod-Cp21kDCU.mjs → LexicalMarkdown.prod-TRkMWfmC.mjs} +3 -3
  26. package/dist/{LexicalRichText.dev-0rkAGjUf.mjs → LexicalRichText.dev-Y3ybFF2S.mjs} +7 -7
  27. package/dist/{LexicalRichText.node-Cd-BySPE.mjs → LexicalRichText.node-wNAi2Z4i.mjs} +4 -4
  28. package/dist/{LexicalRichText.prod-DTQiEr8C.mjs → LexicalRichText.prod-HLxqZ6hQ.mjs} +7 -7
  29. package/dist/{LexicalSelection.dev-Bi0VlUEv.mjs → LexicalSelection.dev-CyhKOKbs.mjs} +1 -1
  30. package/dist/{LexicalSelection.node-t2U46EF_.mjs → LexicalSelection.node-BCuHMbzl.mjs} +1 -1
  31. package/dist/{LexicalSelection.prod-CrFG111g.mjs → LexicalSelection.prod-RebDJliC.mjs} +1 -1
  32. package/dist/{LexicalTable.dev-D-sFhO-o.mjs → LexicalTable.dev-DN3ezVey.mjs} +5 -5
  33. package/dist/{LexicalTable.prod-DwYaa_dN.mjs → LexicalTable.prod-B0MioVyq.mjs} +5 -5
  34. package/dist/{LexicalUtils.dev-Q2q3-UDM.mjs → LexicalUtils.dev-Bw6LFRlt.mjs} +2 -2
  35. package/dist/{LexicalUtils.node-Dl7OvqJV.mjs → LexicalUtils.node-BPKMFN80.mjs} +1 -1
  36. package/dist/{LexicalUtils.prod-CBnq_iEV.mjs → LexicalUtils.prod-CJYQVQJO.mjs} +2 -2
  37. package/dist/bin/mxs.mjs +1 -1
  38. package/dist/{esm-ZXjJmLEC.mjs → esm-7vSMGlFz.mjs} +171 -245
  39. package/dist/esm-ZrfYH2y2.mjs +2 -0
  40. package/dist/index.mjs +1 -1
  41. package/dist/{mxs-DC9zR3f2.mjs → mxs-DKv-4ZTg.mjs} +362 -297
  42. package/dist/vendor/litexml/cli.mjs +94 -38
  43. package/dist/vendor/litexml/litexml-html-preview-client.css +329 -836
  44. package/dist/vendor/litexml/litexml-html-preview-client.js +6048 -5832
  45. package/dist/vendor/litexml/style.css +5 -1
  46. package/package.json +10 -10
  47. package/dist/esm-CNZ7kdTg.mjs +0 -2
  48. package/dist/src/bin/mxs.d.ts +0 -2
  49. package/dist/src/bin/mxs.js +0 -310
  50. package/dist/src/cli/ai/_poll.d.ts +0 -12
  51. package/dist/src/cli/ai/_poll.js +0 -38
  52. package/dist/src/cli/ai/_resolve.d.ts +0 -8
  53. package/dist/src/cli/ai/_resolve.js +0 -27
  54. package/dist/src/cli/ai/index.d.ts +0 -127
  55. package/dist/src/cli/ai/index.js +0 -46
  56. package/dist/src/cli/ai/insights/by-article.d.ts +0 -10
  57. package/dist/src/cli/ai/insights/by-article.js +0 -21
  58. package/dist/src/cli/ai/insights/delete.d.ts +0 -7
  59. package/dist/src/cli/ai/insights/delete.js +0 -18
  60. package/dist/src/cli/ai/insights/edit.d.ts +0 -8
  61. package/dist/src/cli/ai/insights/edit.js +0 -54
  62. package/dist/src/cli/ai/insights/get.d.ts +0 -6
  63. package/dist/src/cli/ai/insights/get.js +0 -11
  64. package/dist/src/cli/ai/insights/index.d.ts +0 -30
  65. package/dist/src/cli/ai/insights/index.js +0 -17
  66. package/dist/src/cli/ai/insights/list.d.ts +0 -10
  67. package/dist/src/cli/ai/insights/list.js +0 -20
  68. package/dist/src/cli/ai/insights/refresh.d.ts +0 -10
  69. package/dist/src/cli/ai/insights/refresh.js +0 -25
  70. package/dist/src/cli/ai/insights/translate.d.ts +0 -10
  71. package/dist/src/cli/ai/insights/translate.js +0 -25
  72. package/dist/src/cli/ai/overview/by-article.d.ts +0 -7
  73. package/dist/src/cli/ai/overview/by-article.js +0 -15
  74. package/dist/src/cli/ai/overview/index.d.ts +0 -11
  75. package/dist/src/cli/ai/overview/index.js +0 -4
  76. package/dist/src/cli/ai/overview/list.d.ts +0 -10
  77. package/dist/src/cli/ai/overview/list.js +0 -20
  78. package/dist/src/cli/ai/summary/by-article.d.ts +0 -10
  79. package/dist/src/cli/ai/summary/by-article.js +0 -21
  80. package/dist/src/cli/ai/summary/delete.d.ts +0 -7
  81. package/dist/src/cli/ai/summary/delete.js +0 -18
  82. package/dist/src/cli/ai/summary/edit.d.ts +0 -8
  83. package/dist/src/cli/ai/summary/edit.js +0 -54
  84. package/dist/src/cli/ai/summary/get.d.ts +0 -6
  85. package/dist/src/cli/ai/summary/get.js +0 -11
  86. package/dist/src/cli/ai/summary/index.d.ts +0 -30
  87. package/dist/src/cli/ai/summary/index.js +0 -9
  88. package/dist/src/cli/ai/summary/list.d.ts +0 -10
  89. package/dist/src/cli/ai/summary/list.js +0 -20
  90. package/dist/src/cli/ai/summary/regen.d.ts +0 -10
  91. package/dist/src/cli/ai/summary/regen.js +0 -25
  92. package/dist/src/cli/ai/summary/translate.d.ts +0 -10
  93. package/dist/src/cli/ai/summary/translate.js +0 -25
  94. package/dist/src/cli/ai/translate/by-article.d.ts +0 -9
  95. package/dist/src/cli/ai/translate/by-article.js +0 -19
  96. package/dist/src/cli/ai/translate/delete.d.ts +0 -7
  97. package/dist/src/cli/ai/translate/delete.js +0 -18
  98. package/dist/src/cli/ai/translate/edit.d.ts +0 -8
  99. package/dist/src/cli/ai/translate/edit.js +0 -97
  100. package/dist/src/cli/ai/translate/entries/delete.d.ts +0 -7
  101. package/dist/src/cli/ai/translate/entries/delete.js +0 -18
  102. package/dist/src/cli/ai/translate/entries/edit.d.ts +0 -8
  103. package/dist/src/cli/ai/translate/entries/edit.js +0 -73
  104. package/dist/src/cli/ai/translate/entries/generate.d.ts +0 -7
  105. package/dist/src/cli/ai/translate/entries/generate.js +0 -15
  106. package/dist/src/cli/ai/translate/entries/index.d.ts +0 -17
  107. package/dist/src/cli/ai/translate/entries/index.js +0 -6
  108. package/dist/src/cli/ai/translate/entries/list.d.ts +0 -10
  109. package/dist/src/cli/ai/translate/entries/list.js +0 -20
  110. package/dist/src/cli/ai/translate/get.d.ts +0 -6
  111. package/dist/src/cli/ai/translate/get.js +0 -11
  112. package/dist/src/cli/ai/translate/index.d.ts +0 -40
  113. package/dist/src/cli/ai/translate/index.js +0 -19
  114. package/dist/src/cli/ai/translate/languages.d.ts +0 -7
  115. package/dist/src/cli/ai/translate/languages.js +0 -15
  116. package/dist/src/cli/ai/translate/list.d.ts +0 -9
  117. package/dist/src/cli/ai/translate/list.js +0 -19
  118. package/dist/src/cli/ai/translate/run.d.ts +0 -10
  119. package/dist/src/cli/ai/translate/run.js +0 -31
  120. package/dist/src/cli/ai/tts/by-article.d.ts +0 -7
  121. package/dist/src/cli/ai/tts/by-article.js +0 -15
  122. package/dist/src/cli/ai/tts/delete.d.ts +0 -7
  123. package/dist/src/cli/ai/tts/delete.js +0 -18
  124. package/dist/src/cli/ai/tts/index.d.ts +0 -22
  125. package/dist/src/cli/ai/tts/index.js +0 -7
  126. package/dist/src/cli/ai/tts/list.d.ts +0 -10
  127. package/dist/src/cli/ai/tts/list.js +0 -20
  128. package/dist/src/cli/ai/tts/run.d.ts +0 -10
  129. package/dist/src/cli/ai/tts/run.js +0 -25
  130. package/dist/src/cli/ai/tts/voices.d.ts +0 -7
  131. package/dist/src/cli/ai/tts/voices.js +0 -12
  132. package/dist/src/cli/ai/views.d.ts +0 -3
  133. package/dist/src/cli/ai/views.js +0 -45
  134. package/dist/src/cli/auth/index.d.ts +0 -6
  135. package/dist/src/cli/auth/index.js +0 -22
  136. package/dist/src/cli/auth/login.d.ts +0 -11
  137. package/dist/src/cli/auth/login.js +0 -168
  138. package/dist/src/cli/auth/logout.d.ts +0 -6
  139. package/dist/src/cli/auth/logout.js +0 -21
  140. package/dist/src/cli/auth/status.d.ts +0 -4
  141. package/dist/src/cli/auth/status.js +0 -31
  142. package/dist/src/cli/auth/view.d.ts +0 -25
  143. package/dist/src/cli/auth/view.js +0 -46
  144. package/dist/src/cli/auth/whoami.d.ts +0 -7
  145. package/dist/src/cli/auth/whoami.js +0 -44
  146. package/dist/src/cli/category/create.d.ts +0 -10
  147. package/dist/src/cli/category/create.js +0 -24
  148. package/dist/src/cli/category/delete.d.ts +0 -8
  149. package/dist/src/cli/category/delete.js +0 -21
  150. package/dist/src/cli/category/get.d.ts +0 -6
  151. package/dist/src/cli/category/get.js +0 -11
  152. package/dist/src/cli/category/index.d.ts +0 -20
  153. package/dist/src/cli/category/index.js +0 -41
  154. package/dist/src/cli/category/list.d.ts +0 -4
  155. package/dist/src/cli/category/list.js +0 -10
  156. package/dist/src/cli/category/update.d.ts +0 -12
  157. package/dist/src/cli/category/update.js +0 -34
  158. package/dist/src/cli/comment/_flags.d.ts +0 -28
  159. package/dist/src/cli/comment/_flags.js +0 -48
  160. package/dist/src/cli/comment/approve.d.ts +0 -9
  161. package/dist/src/cli/comment/approve.js +0 -23
  162. package/dist/src/cli/comment/delete.d.ts +0 -9
  163. package/dist/src/cli/comment/delete.js +0 -24
  164. package/dist/src/cli/comment/get.d.ts +0 -6
  165. package/dist/src/cli/comment/get.js +0 -12
  166. package/dist/src/cli/comment/index.d.ts +0 -34
  167. package/dist/src/cli/comment/index.js +0 -53
  168. package/dist/src/cli/comment/list.d.ts +0 -9
  169. package/dist/src/cli/comment/list.js +0 -20
  170. package/dist/src/cli/comment/reject.d.ts +0 -9
  171. package/dist/src/cli/comment/reject.js +0 -23
  172. package/dist/src/cli/comment/reply.d.ts +0 -9
  173. package/dist/src/cli/comment/reply.js +0 -31
  174. package/dist/src/cli/comment/unread.d.ts +0 -7
  175. package/dist/src/cli/comment/unread.js +0 -21
  176. package/dist/src/cli/comment/view.d.ts +0 -3
  177. package/dist/src/cli/comment/view.js +0 -197
  178. package/dist/src/cli/config/edit.d.ts +0 -5
  179. package/dist/src/cli/config/edit.js +0 -36
  180. package/dist/src/cli/config/get.d.ts +0 -6
  181. package/dist/src/cli/config/get.js +0 -11
  182. package/dist/src/cli/config/index.d.ts +0 -10
  183. package/dist/src/cli/config/index.js +0 -22
  184. package/dist/src/cli/config/list.d.ts +0 -4
  185. package/dist/src/cli/config/list.js +0 -10
  186. package/dist/src/cli/config/set.d.ts +0 -9
  187. package/dist/src/cli/config/set.js +0 -48
  188. package/dist/src/cli/draft/_shared.d.ts +0 -27
  189. package/dist/src/cli/draft/_shared.js +0 -85
  190. package/dist/src/cli/draft/create.d.ts +0 -21
  191. package/dist/src/cli/draft/create.js +0 -34
  192. package/dist/src/cli/draft/delete.d.ts +0 -7
  193. package/dist/src/cli/draft/delete.js +0 -20
  194. package/dist/src/cli/draft/get.d.ts +0 -6
  195. package/dist/src/cli/draft/get.js +0 -11
  196. package/dist/src/cli/draft/index.d.ts +0 -54
  197. package/dist/src/cli/draft/index.js +0 -42
  198. package/dist/src/cli/draft/list.d.ts +0 -11
  199. package/dist/src/cli/draft/list.js +0 -23
  200. package/dist/src/cli/draft/publish.d.ts +0 -8
  201. package/dist/src/cli/draft/publish.js +0 -64
  202. package/dist/src/cli/draft/update.d.ts +0 -22
  203. package/dist/src/cli/draft/update.js +0 -29
  204. package/dist/src/cli/file/_shared.d.ts +0 -6
  205. package/dist/src/cli/file/_shared.js +0 -5
  206. package/dist/src/cli/file/delete.d.ts +0 -8
  207. package/dist/src/cli/file/delete.js +0 -21
  208. package/dist/src/cli/file/index.d.ts +0 -19
  209. package/dist/src/cli/file/index.js +0 -33
  210. package/dist/src/cli/file/list.d.ts +0 -6
  211. package/dist/src/cli/file/list.js +0 -11
  212. package/dist/src/cli/file/rename.d.ts +0 -8
  213. package/dist/src/cli/file/rename.js +0 -16
  214. package/dist/src/cli/file/upload.d.ts +0 -9
  215. package/dist/src/cli/file/upload.js +0 -32
  216. package/dist/src/cli/help/index.d.ts +0 -62
  217. package/dist/src/cli/help/index.js +0 -276
  218. package/dist/src/cli/help/registry.d.ts +0 -28
  219. package/dist/src/cli/help/registry.js +0 -29
  220. package/dist/src/cli/note/_flags.d.ts +0 -66
  221. package/dist/src/cli/note/_flags.js +0 -73
  222. package/dist/src/cli/note/create.d.ts +0 -23
  223. package/dist/src/cli/note/create.js +0 -25
  224. package/dist/src/cli/note/delete.d.ts +0 -8
  225. package/dist/src/cli/note/delete.js +0 -21
  226. package/dist/src/cli/note/edit.d.ts +0 -28
  227. package/dist/src/cli/note/edit.js +0 -114
  228. package/dist/src/cli/note/get.d.ts +0 -6
  229. package/dist/src/cli/note/get.js +0 -29
  230. package/dist/src/cli/note/index.d.ts +0 -77
  231. package/dist/src/cli/note/index.js +0 -63
  232. package/dist/src/cli/note/list.d.ts +0 -10
  233. package/dist/src/cli/note/list.js +0 -22
  234. package/dist/src/cli/note/publish.d.ts +0 -7
  235. package/dist/src/cli/note/publish.js +0 -17
  236. package/dist/src/cli/note/unpublish.d.ts +0 -7
  237. package/dist/src/cli/note/unpublish.js +0 -17
  238. package/dist/src/cli/note/update.d.ts +0 -25
  239. package/dist/src/cli/note/update.js +0 -36
  240. package/dist/src/cli/note/view.d.ts +0 -3
  241. package/dist/src/cli/note/view.js +0 -162
  242. package/dist/src/cli/page/create.d.ts +0 -41
  243. package/dist/src/cli/page/create.js +0 -56
  244. package/dist/src/cli/page/delete.d.ts +0 -7
  245. package/dist/src/cli/page/delete.js +0 -37
  246. package/dist/src/cli/page/edit.d.ts +0 -19
  247. package/dist/src/cli/page/edit.js +0 -117
  248. package/dist/src/cli/page/get.d.ts +0 -6
  249. package/dist/src/cli/page/get.js +0 -16
  250. package/dist/src/cli/page/index.d.ts +0 -44
  251. package/dist/src/cli/page/index.js +0 -38
  252. package/dist/src/cli/page/list.d.ts +0 -4
  253. package/dist/src/cli/page/list.js +0 -10
  254. package/dist/src/cli/page/update.d.ts +0 -16
  255. package/dist/src/cli/page/update.js +0 -48
  256. package/dist/src/cli/page/view.d.ts +0 -2
  257. package/dist/src/cli/page/view.js +0 -79
  258. package/dist/src/cli/post/_flags.d.ts +0 -66
  259. package/dist/src/cli/post/_flags.js +0 -96
  260. package/dist/src/cli/post/apply.d.ts +0 -7
  261. package/dist/src/cli/post/apply.js +0 -70
  262. package/dist/src/cli/post/create.d.ts +0 -21
  263. package/dist/src/cli/post/create.js +0 -24
  264. package/dist/src/cli/post/delete.d.ts +0 -8
  265. package/dist/src/cli/post/delete.js +0 -21
  266. package/dist/src/cli/post/edit.d.ts +0 -26
  267. package/dist/src/cli/post/edit.js +0 -115
  268. package/dist/src/cli/post/get.d.ts +0 -7
  269. package/dist/src/cli/post/get.js +0 -15
  270. package/dist/src/cli/post/index.d.ts +0 -91
  271. package/dist/src/cli/post/index.js +0 -73
  272. package/dist/src/cli/post/list.d.ts +0 -10
  273. package/dist/src/cli/post/list.js +0 -23
  274. package/dist/src/cli/post/publish.d.ts +0 -7
  275. package/dist/src/cli/post/publish.js +0 -17
  276. package/dist/src/cli/post/stage.d.ts +0 -23
  277. package/dist/src/cli/post/stage.js +0 -55
  278. package/dist/src/cli/post/unpublish.d.ts +0 -7
  279. package/dist/src/cli/post/unpublish.js +0 -17
  280. package/dist/src/cli/post/update.d.ts +0 -23
  281. package/dist/src/cli/post/update.js +0 -38
  282. package/dist/src/cli/post/view.d.ts +0 -3
  283. package/dist/src/cli/post/view.js +0 -150
  284. package/dist/src/cli/preview/index.d.ts +0 -13
  285. package/dist/src/cli/preview/index.js +0 -226
  286. package/dist/src/cli/profile/index.d.ts +0 -14
  287. package/dist/src/cli/profile/index.js +0 -36
  288. package/dist/src/cli/profile/ls.d.ts +0 -5
  289. package/dist/src/cli/profile/ls.js +0 -26
  290. package/dist/src/cli/profile/mark.d.ts +0 -9
  291. package/dist/src/cli/profile/mark.js +0 -23
  292. package/dist/src/cli/profile/rm.d.ts +0 -12
  293. package/dist/src/cli/profile/rm.js +0 -50
  294. package/dist/src/cli/profile/show.d.ts +0 -9
  295. package/dist/src/cli/profile/show.js +0 -40
  296. package/dist/src/cli/profile/use.d.ts +0 -6
  297. package/dist/src/cli/profile/use.js +0 -11
  298. package/dist/src/cli/profile/view.d.ts +0 -8
  299. package/dist/src/cli/profile/view.js +0 -21
  300. package/dist/src/cli/project/_flags.d.ts +0 -56
  301. package/dist/src/cli/project/_flags.js +0 -130
  302. package/dist/src/cli/project/create.d.ts +0 -17
  303. package/dist/src/cli/project/create.js +0 -25
  304. package/dist/src/cli/project/delete.d.ts +0 -8
  305. package/dist/src/cli/project/delete.js +0 -22
  306. package/dist/src/cli/project/edit.d.ts +0 -11
  307. package/dist/src/cli/project/edit.js +0 -61
  308. package/dist/src/cli/project/get.d.ts +0 -7
  309. package/dist/src/cli/project/get.js +0 -14
  310. package/dist/src/cli/project/index.d.ts +0 -43
  311. package/dist/src/cli/project/index.js +0 -52
  312. package/dist/src/cli/project/list.d.ts +0 -8
  313. package/dist/src/cli/project/list.js +0 -19
  314. package/dist/src/cli/project/update.d.ts +0 -18
  315. package/dist/src/cli/project/update.js +0 -24
  316. package/dist/src/cli/project/view-cmd.d.ts +0 -7
  317. package/dist/src/cli/project/view-cmd.js +0 -15
  318. package/dist/src/cli/project/view.d.ts +0 -3
  319. package/dist/src/cli/project/view.js +0 -102
  320. package/dist/src/cli/render/codehighlight.d.ts +0 -8
  321. package/dist/src/cli/render/codehighlight.js +0 -264
  322. package/dist/src/cli/render/envelope.d.ts +0 -7
  323. package/dist/src/cli/render/envelope.js +0 -23
  324. package/dist/src/cli/render/frontmatter.d.ts +0 -8
  325. package/dist/src/cli/render/frontmatter.js +0 -50
  326. package/dist/src/cli/render/helpers.d.ts +0 -2
  327. package/dist/src/cli/render/helpers.js +0 -11
  328. package/dist/src/cli/render/index.d.ts +0 -7
  329. package/dist/src/cli/render/index.js +0 -10
  330. package/dist/src/cli/render/lexical/blocks.d.ts +0 -19
  331. package/dist/src/cli/render/lexical/blocks.js +0 -208
  332. package/dist/src/cli/render/lexical/code.d.ts +0 -2
  333. package/dist/src/cli/render/lexical/code.js +0 -22
  334. package/dist/src/cli/render/lexical/embeds.d.ts +0 -6
  335. package/dist/src/cli/render/lexical/embeds.js +0 -51
  336. package/dist/src/cli/render/lexical/index.d.ts +0 -9
  337. package/dist/src/cli/render/lexical/index.js +0 -25
  338. package/dist/src/cli/render/lexical/inlines.d.ts +0 -17
  339. package/dist/src/cli/render/lexical/inlines.js +0 -76
  340. package/dist/src/cli/render/lexical/parser.d.ts +0 -10
  341. package/dist/src/cli/render/lexical/parser.js +0 -64
  342. package/dist/src/cli/render/lexical/walker.d.ts +0 -21
  343. package/dist/src/cli/render/lexical/walker.js +0 -51
  344. package/dist/src/cli/render/markdown.d.ts +0 -18
  345. package/dist/src/cli/render/markdown.js +0 -196
  346. package/dist/src/cli/render/metadata-block.d.ts +0 -14
  347. package/dist/src/cli/render/metadata-block.js +0 -50
  348. package/dist/src/cli/skill/all.d.ts +0 -4
  349. package/dist/src/cli/skill/all.js +0 -11
  350. package/dist/src/cli/skill/get.d.ts +0 -6
  351. package/dist/src/cli/skill/get.js +0 -12
  352. package/dist/src/cli/skill/index.d.ts +0 -10
  353. package/dist/src/cli/skill/index.js +0 -34
  354. package/dist/src/cli/skill/list.d.ts +0 -4
  355. package/dist/src/cli/skill/list.js +0 -11
  356. package/dist/src/cli/skill/search.d.ts +0 -6
  357. package/dist/src/cli/skill/search.js +0 -12
  358. package/dist/src/cli/skill/views.d.ts +0 -6
  359. package/dist/src/cli/skill/views.js +0 -90
  360. package/dist/src/cli/snippet/_flags.d.ts +0 -57
  361. package/dist/src/cli/snippet/_flags.js +0 -123
  362. package/dist/src/cli/snippet/_resolve.d.ts +0 -4
  363. package/dist/src/cli/snippet/_resolve.js +0 -32
  364. package/dist/src/cli/snippet/_sync.d.ts +0 -5
  365. package/dist/src/cli/snippet/_sync.js +0 -54
  366. package/dist/src/cli/snippet/create.d.ts +0 -19
  367. package/dist/src/cli/snippet/create.js +0 -35
  368. package/dist/src/cli/snippet/delete.d.ts +0 -8
  369. package/dist/src/cli/snippet/delete.js +0 -28
  370. package/dist/src/cli/snippet/edit.d.ts +0 -7
  371. package/dist/src/cli/snippet/edit.js +0 -29
  372. package/dist/src/cli/snippet/get.d.ts +0 -6
  373. package/dist/src/cli/snippet/get.js +0 -12
  374. package/dist/src/cli/snippet/index.d.ts +0 -43
  375. package/dist/src/cli/snippet/index.js +0 -58
  376. package/dist/src/cli/snippet/list.d.ts +0 -9
  377. package/dist/src/cli/snippet/list.js +0 -20
  378. package/dist/src/cli/snippet/pull.d.ts +0 -8
  379. package/dist/src/cli/snippet/pull.js +0 -33
  380. package/dist/src/cli/snippet/push.d.ts +0 -10
  381. package/dist/src/cli/snippet/push.js +0 -31
  382. package/dist/src/cli/snippet/update.d.ts +0 -8
  383. package/dist/src/cli/snippet/update.js +0 -16
  384. package/dist/src/cli/topic/create.d.ts +0 -10
  385. package/dist/src/cli/topic/create.js +0 -24
  386. package/dist/src/cli/topic/delete.d.ts +0 -7
  387. package/dist/src/cli/topic/delete.js +0 -37
  388. package/dist/src/cli/topic/get.d.ts +0 -6
  389. package/dist/src/cli/topic/get.js +0 -15
  390. package/dist/src/cli/topic/index.d.ts +0 -20
  391. package/dist/src/cli/topic/index.js +0 -32
  392. package/dist/src/cli/topic/list.d.ts +0 -4
  393. package/dist/src/cli/topic/list.js +0 -10
  394. package/dist/src/cli/topic/update.d.ts +0 -11
  395. package/dist/src/cli/topic/update.js +0 -51
  396. package/dist/src/cli/ui/index.d.ts +0 -24
  397. package/dist/src/cli/ui/index.js +0 -83
  398. package/dist/src/cli/update/index.d.ts +0 -10
  399. package/dist/src/cli/update/index.js +0 -142
  400. package/dist/src/domain/admin-link.d.ts +0 -12
  401. package/dist/src/domain/admin-link.js +0 -45
  402. package/dist/src/domain/content-spec.d.ts +0 -20
  403. package/dist/src/domain/content-spec.js +0 -78
  404. package/dist/src/domain/envelope-compat.d.ts +0 -68
  405. package/dist/src/domain/envelope-compat.js +0 -121
  406. package/dist/src/domain/envelope.d.ts +0 -34
  407. package/dist/src/domain/envelope.js +0 -355
  408. package/dist/src/domain/errors.d.ts +0 -336
  409. package/dist/src/domain/errors.js +0 -239
  410. package/dist/src/domain/gate.d.ts +0 -14
  411. package/dist/src/domain/gate.js +0 -18
  412. package/dist/src/domain/payload.d.ts +0 -64
  413. package/dist/src/domain/payload.js +0 -237
  414. package/dist/src/domain/preflight-guards.d.ts +0 -54
  415. package/dist/src/domain/preflight-guards.js +0 -130
  416. package/dist/src/domain/runtime-flags.d.ts +0 -33
  417. package/dist/src/domain/runtime-flags.js +0 -166
  418. package/dist/src/domain/schema/api-envelope.d.ts +0 -67
  419. package/dist/src/domain/schema/api-envelope.js +0 -65
  420. package/dist/src/domain/schema/category.d.ts +0 -23
  421. package/dist/src/domain/schema/category.js +0 -19
  422. package/dist/src/domain/schema/config.d.ts +0 -13
  423. package/dist/src/domain/schema/config.js +0 -18
  424. package/dist/src/domain/schema/note.d.ts +0 -76
  425. package/dist/src/domain/schema/note.js +0 -35
  426. package/dist/src/domain/schema/page.d.ts +0 -40
  427. package/dist/src/domain/schema/page.js +0 -22
  428. package/dist/src/domain/schema/post.d.ts +0 -68
  429. package/dist/src/domain/schema/post.js +0 -35
  430. package/dist/src/domain/schema/profile.d.ts +0 -14
  431. package/dist/src/domain/schema/profile.js +0 -22
  432. package/dist/src/domain/schema/topic.d.ts +0 -24
  433. package/dist/src/domain/schema/topic.js +0 -16
  434. package/dist/src/domain/version.d.ts +0 -15
  435. package/dist/src/domain/version.js +0 -43
  436. package/dist/src/index.d.ts +0 -4
  437. package/dist/src/index.js +0 -8
  438. package/dist/src/layers/App.d.ts +0 -30
  439. package/dist/src/layers/App.js +0 -39
  440. package/dist/src/services/Ai/index.d.ts +0 -13
  441. package/dist/src/services/Ai/index.js +0 -127
  442. package/dist/src/services/Ai/overview.d.ts +0 -7
  443. package/dist/src/services/Ai/overview.js +0 -11
  444. package/dist/src/services/Ai/resources.d.ts +0 -7
  445. package/dist/src/services/Ai/resources.js +0 -59
  446. package/dist/src/services/Ai/shared.d.ts +0 -2
  447. package/dist/src/services/Ai/shared.js +0 -11
  448. package/dist/src/services/Ai/tasks.d.ts +0 -8
  449. package/dist/src/services/Ai/tasks.js +0 -144
  450. package/dist/src/services/Ai/types.d.ts +0 -130
  451. package/dist/src/services/Ai/types.js +0 -1
  452. package/dist/src/services/Api.d.ts +0 -67
  453. package/dist/src/services/Api.js +0 -348
  454. package/dist/src/services/Auth.d.ts +0 -101
  455. package/dist/src/services/Auth.js +0 -402
  456. package/dist/src/services/Backup.d.ts +0 -8
  457. package/dist/src/services/Backup.js +0 -4
  458. package/dist/src/services/Cache.d.ts +0 -8
  459. package/dist/src/services/Cache.js +0 -4
  460. package/dist/src/services/Comment.d.ts +0 -48
  461. package/dist/src/services/Comment.js +0 -102
  462. package/dist/src/services/Config.d.ts +0 -95
  463. package/dist/src/services/Config.js +0 -359
  464. package/dist/src/services/Editor.d.ts +0 -28
  465. package/dist/src/services/Editor.js +0 -95
  466. package/dist/src/services/Lexical.d.ts +0 -27
  467. package/dist/src/services/Lexical.js +0 -56
  468. package/dist/src/services/Migration.d.ts +0 -31
  469. package/dist/src/services/Migration.js +0 -177
  470. package/dist/src/services/Profile.d.ts +0 -29
  471. package/dist/src/services/Profile.js +0 -115
  472. package/dist/src/services/Renderer/content.d.ts +0 -16
  473. package/dist/src/services/Renderer/content.js +0 -110
  474. package/dist/src/services/Renderer/datetime.d.ts +0 -38
  475. package/dist/src/services/Renderer/datetime.js +0 -147
  476. package/dist/src/services/Renderer/errors.d.ts +0 -3
  477. package/dist/src/services/Renderer/errors.js +0 -59
  478. package/dist/src/services/Renderer/index.d.ts +0 -13
  479. package/dist/src/services/Renderer/index.js +0 -11
  480. package/dist/src/services/Renderer/lists.d.ts +0 -1
  481. package/dist/src/services/Renderer/lists.js +0 -101
  482. package/dist/src/services/Renderer/options.d.ts +0 -10
  483. package/dist/src/services/Renderer/options.js +0 -13
  484. package/dist/src/services/Renderer/primitives.d.ts +0 -4
  485. package/dist/src/services/Renderer/primitives.js +0 -12
  486. package/dist/src/services/Renderer/service.d.ts +0 -35
  487. package/dist/src/services/Renderer/service.js +0 -123
  488. package/dist/src/services/Renderer/view.d.ts +0 -16
  489. package/dist/src/services/Renderer/view.js +0 -1
  490. package/dist/src/services/Resolver.d.ts +0 -47
  491. package/dist/src/services/Resolver.js +0 -269
  492. package/dist/src/services/Skill.d.ts +0 -29
  493. package/dist/src/services/Skill.js +0 -421
  494. package/dist/src/services/UpdateNotifier.d.ts +0 -162
  495. package/dist/src/services/UpdateNotifier.js +0 -572
  496. package/dist/test/cli/ai/ai.test.d.ts +0 -1
  497. package/dist/test/cli/ai/ai.test.js +0 -507
  498. package/dist/test/cli/ai/verbs.test.d.ts +0 -1
  499. package/dist/test/cli/ai/verbs.test.js +0 -235
  500. package/dist/test/cli/auth/login.test.d.ts +0 -1
  501. package/dist/test/cli/auth/login.test.js +0 -236
  502. package/dist/test/cli/auth/logout-whoami.test.d.ts +0 -1
  503. package/dist/test/cli/auth/logout-whoami.test.js +0 -124
  504. package/dist/test/cli/auth/status.test.d.ts +0 -1
  505. package/dist/test/cli/auth/status.test.js +0 -90
  506. package/dist/test/cli/category/category.test.d.ts +0 -1
  507. package/dist/test/cli/category/category.test.js +0 -175
  508. package/dist/test/cli/comment/comment.test.d.ts +0 -1
  509. package/dist/test/cli/comment/comment.test.js +0 -445
  510. package/dist/test/cli/config/config.test.d.ts +0 -1
  511. package/dist/test/cli/config/config.test.js +0 -281
  512. package/dist/test/cli/edit-roundtrip.test.d.ts +0 -1
  513. package/dist/test/cli/edit-roundtrip.test.js +0 -259
  514. package/dist/test/cli/file/file.test.d.ts +0 -1
  515. package/dist/test/cli/file/file.test.js +0 -185
  516. package/dist/test/cli/help.test.d.ts +0 -1
  517. package/dist/test/cli/help.test.js +0 -289
  518. package/dist/test/cli/note/create.test.d.ts +0 -1
  519. package/dist/test/cli/note/create.test.js +0 -155
  520. package/dist/test/cli/note/list.test.d.ts +0 -1
  521. package/dist/test/cli/note/list.test.js +0 -115
  522. package/dist/test/cli/note/publish.test.d.ts +0 -1
  523. package/dist/test/cli/note/publish.test.js +0 -123
  524. package/dist/test/cli/page/page.test.d.ts +0 -1
  525. package/dist/test/cli/page/page.test.js +0 -185
  526. package/dist/test/cli/post/create.test.d.ts +0 -1
  527. package/dist/test/cli/post/create.test.js +0 -172
  528. package/dist/test/cli/post/list.test.d.ts +0 -1
  529. package/dist/test/cli/post/list.test.js +0 -133
  530. package/dist/test/cli/post/publish.test.d.ts +0 -1
  531. package/dist/test/cli/post/publish.test.js +0 -139
  532. package/dist/test/cli/post/stage-apply.test.d.ts +0 -1
  533. package/dist/test/cli/post/stage-apply.test.js +0 -215
  534. package/dist/test/cli/post/update.test.d.ts +0 -1
  535. package/dist/test/cli/post/update.test.js +0 -160
  536. package/dist/test/cli/post-note-crud.test.d.ts +0 -1
  537. package/dist/test/cli/post-note-crud.test.js +0 -362
  538. package/dist/test/cli/profile/ls.test.d.ts +0 -1
  539. package/dist/test/cli/profile/ls.test.js +0 -93
  540. package/dist/test/cli/profile/mark-use.test.d.ts +0 -1
  541. package/dist/test/cli/profile/mark-use.test.js +0 -216
  542. package/dist/test/cli/project-crud.test.d.ts +0 -1
  543. package/dist/test/cli/project-crud.test.js +0 -315
  544. package/dist/test/cli/render/lexical.test.d.ts +0 -1
  545. package/dist/test/cli/render/lexical.test.js +0 -216
  546. package/dist/test/cli/render/markdown.test.d.ts +0 -1
  547. package/dist/test/cli/render/markdown.test.js +0 -39
  548. package/dist/test/cli/snippet-crud.test.d.ts +0 -1
  549. package/dist/test/cli/snippet-crud.test.js +0 -293
  550. package/dist/test/cli/topic/topic.test.d.ts +0 -1
  551. package/dist/test/cli/topic/topic.test.js +0 -181
  552. package/dist/test/cli/update.test.d.ts +0 -1
  553. package/dist/test/cli/update.test.js +0 -395
  554. package/dist/test/domain/content-spec.test.d.ts +0 -1
  555. package/dist/test/domain/content-spec.test.js +0 -126
  556. package/dist/test/domain/envelope-compat.test.d.ts +0 -1
  557. package/dist/test/domain/envelope-compat.test.js +0 -126
  558. package/dist/test/domain/envelope.test.d.ts +0 -1
  559. package/dist/test/domain/envelope.test.js +0 -149
  560. package/dist/test/domain/errors.test.d.ts +0 -1
  561. package/dist/test/domain/errors.test.js +0 -127
  562. package/dist/test/domain/gate.test.d.ts +0 -1
  563. package/dist/test/domain/gate.test.js +0 -128
  564. package/dist/test/domain/payload.test.d.ts +0 -1
  565. package/dist/test/domain/payload.test.js +0 -259
  566. package/dist/test/helper/test-fs.d.ts +0 -24
  567. package/dist/test/helper/test-fs.js +0 -161
  568. package/dist/test/helper/test-http.d.ts +0 -31
  569. package/dist/test/helper/test-http.js +0 -66
  570. package/dist/test/integration/_helpers.d.ts +0 -5
  571. package/dist/test/integration/_helpers.js +0 -24
  572. package/dist/test/integration/cli-error-envelope.test.d.ts +0 -1
  573. package/dist/test/integration/cli-error-envelope.test.js +0 -137
  574. package/dist/test/integration/cli-help-render.test.d.ts +0 -1
  575. package/dist/test/integration/cli-help-render.test.js +0 -149
  576. package/dist/test/integration/cli-help.test.d.ts +0 -1
  577. package/dist/test/integration/cli-help.test.js +0 -67
  578. package/dist/test/integration/cli-post-list.test.d.ts +0 -1
  579. package/dist/test/integration/cli-post-list.test.js +0 -140
  580. package/dist/test/integration/cli-skill.test.d.ts +0 -1
  581. package/dist/test/integration/cli-skill.test.js +0 -74
  582. package/dist/test/integration/cli-version.test.d.ts +0 -1
  583. package/dist/test/integration/cli-version.test.js +0 -37
  584. package/dist/test/services/Api.test.d.ts +0 -1
  585. package/dist/test/services/Api.test.js +0 -553
  586. package/dist/test/services/Auth.test.d.ts +0 -1
  587. package/dist/test/services/Auth.test.js +0 -650
  588. package/dist/test/services/Config.test.d.ts +0 -1
  589. package/dist/test/services/Config.test.js +0 -510
  590. package/dist/test/services/Datetime.test.d.ts +0 -1
  591. package/dist/test/services/Datetime.test.js +0 -113
  592. package/dist/test/services/Editor.test.d.ts +0 -1
  593. package/dist/test/services/Editor.test.js +0 -205
  594. package/dist/test/services/Lexical.errors.test.d.ts +0 -1
  595. package/dist/test/services/Lexical.errors.test.js +0 -60
  596. package/dist/test/services/Lexical.test.d.ts +0 -1
  597. package/dist/test/services/Lexical.test.js +0 -68
  598. package/dist/test/services/Migration.test.d.ts +0 -1
  599. package/dist/test/services/Migration.test.js +0 -376
  600. package/dist/test/services/Profile.test.d.ts +0 -1
  601. package/dist/test/services/Profile.test.js +0 -277
  602. package/dist/test/services/Renderer.test.d.ts +0 -1
  603. package/dist/test/services/Renderer.test.js +0 -538
  604. package/dist/test/services/Resolver.test.d.ts +0 -1
  605. package/dist/test/services/Resolver.test.js +0 -320
  606. package/dist/test/services/Skill.test.d.ts +0 -1
  607. package/dist/test/services/Skill.test.js +0 -261
  608. package/dist/test/services/UpdateNotifier.spawn.test.d.ts +0 -1
  609. package/dist/test/services/UpdateNotifier.spawn.test.js +0 -73
  610. package/dist/test/services/UpdateNotifier.test.d.ts +0 -1
  611. package/dist/test/services/UpdateNotifier.test.js +0 -912
@@ -1,421 +0,0 @@
1
- import { existsSync } from 'node:fs';
2
- import { createRequire } from 'node:module';
3
- import { fileURLToPath } from 'node:url';
4
- import { FileSystem, Path } from '@effect/platform';
5
- import { Context, Effect, Layer, Ref } from 'effect';
6
- import MiniSearch from 'minisearch';
7
- import { ChapterNotFound, SkillCorpusEmpty } from '../domain/errors';
8
- const requireFrom = createRequire(import.meta.url);
9
- const findCliPackageRoot = () => {
10
- const here = fileURLToPath(import.meta.url);
11
- let dir = here.slice(0, Math.max(0, here.lastIndexOf('/')));
12
- for (let i = 0; i < 8; i++) {
13
- if (!dir || dir === '/')
14
- break;
15
- try {
16
- const pkg = requireFrom(`${dir}/package.json`);
17
- if (pkg.name === '@mx-space/cli')
18
- return dir;
19
- }
20
- catch {
21
- // not a pkg dir, keep walking
22
- }
23
- const next = dir.slice(0, Math.max(0, dir.lastIndexOf('/')));
24
- if (next === dir)
25
- break;
26
- dir = next;
27
- }
28
- return null;
29
- };
30
- const resolveCliSkillsDir = () => {
31
- const override = process.env.MXS_SKILL_CLI_DIR;
32
- if (override && override.length > 0)
33
- return override;
34
- const root = findCliPackageRoot();
35
- return root ? `${root}/skills` : null;
36
- };
37
- const resolveHaklexSkillsDir = () => {
38
- const override = process.env.MXS_SKILL_HAKLEX_DIR;
39
- if (override && override.length > 0)
40
- return override;
41
- try {
42
- const pkgJson = requireFrom.resolve('@haklex/rich-litexml/package.json');
43
- const dir = pkgJson.slice(0, Math.max(0, pkgJson.lastIndexOf('/')));
44
- return `${dir}/.claude/skills/litexml-authoring`;
45
- }
46
- catch {
47
- // Older `@haklex/rich-litexml` (<= 0.15.2) omits `./package.json` from
48
- // its `exports`, so direct resolve throws under strict ESM resolution.
49
- // Fall back to walking node_modules upward from the cli package root.
50
- const root = findCliPackageRoot();
51
- if (!root)
52
- return null;
53
- const candidates = [];
54
- let dir = root;
55
- while (dir && dir.length > 1) {
56
- candidates.push(`${dir}/node_modules/@haklex/rich-litexml/.claude/skills/litexml-authoring`);
57
- const next = dir.slice(0, Math.max(0, dir.lastIndexOf('/')));
58
- if (next === dir)
59
- break;
60
- dir = next;
61
- }
62
- for (const c of candidates) {
63
- if (existsSync(c))
64
- return c;
65
- }
66
- return null;
67
- }
68
- };
69
- const parseFrontmatter = (raw, file) => {
70
- if (!raw.startsWith('---\n')) {
71
- return { error: `${file}: missing frontmatter (no leading '---' line)` };
72
- }
73
- const end = raw.indexOf('\n---\n', 4);
74
- if (end < 0) {
75
- return { error: `${file}: missing frontmatter terminator ('---' line)` };
76
- }
77
- const head = raw.slice(4, end);
78
- const body = raw.slice(end + 5).replace(/^\n+/, '');
79
- const fields = {};
80
- for (const line of head.split('\n')) {
81
- if (line.trim().length === 0)
82
- continue;
83
- const colon = line.indexOf(':');
84
- if (colon < 0) {
85
- return { error: `${file}: malformed frontmatter line: ${line}` };
86
- }
87
- const key = line.slice(0, colon).trim();
88
- let value = line.slice(colon + 1).trim();
89
- if ((value.startsWith('"') && value.endsWith('"')) ||
90
- (value.startsWith("'") && value.endsWith("'"))) {
91
- value = value.slice(1, -1);
92
- }
93
- fields[key] = value;
94
- }
95
- const slug = fields.slug;
96
- const title = fields.title;
97
- const description = fields.description;
98
- const orderRaw = fields.order;
99
- if (!slug)
100
- return { error: `${file}: frontmatter missing required 'slug'` };
101
- if (!title)
102
- return { error: `${file}: frontmatter missing required 'title'` };
103
- if (!description)
104
- return { error: `${file}: frontmatter missing required 'description'` };
105
- if (!orderRaw)
106
- return { error: `${file}: frontmatter missing required 'order'` };
107
- const order = Number.parseInt(orderRaw, 10);
108
- if (!Number.isFinite(order)) {
109
- return { error: `${file}: frontmatter 'order' not an integer: ${orderRaw}` };
110
- }
111
- if (!/^[\da-z][\da-z-]*$/.test(slug)) {
112
- return { error: `${file}: frontmatter 'slug' not kebab-case: ${slug}` };
113
- }
114
- return { slug, title, description, order, body };
115
- };
116
- const scanCliDir = (fs, path, dir) => Effect.gen(function* () {
117
- const exists = yield* fs
118
- .exists(dir)
119
- .pipe(Effect.catchAll(() => Effect.succeed(false)));
120
- if (!exists)
121
- return [];
122
- const entries = yield* fs
123
- .readDirectory(dir)
124
- .pipe(Effect.catchAll(() => Effect.succeed([])));
125
- const chapters = [];
126
- for (const name of entries) {
127
- if (!name.endsWith('.md'))
128
- continue;
129
- const full = path.join(dir, name);
130
- const raw = yield* fs
131
- .readFileString(full)
132
- .pipe(Effect.catchAll(() => Effect.succeed('')));
133
- if (!raw)
134
- continue;
135
- const parsed = parseFrontmatter(raw, full);
136
- if ('error' in parsed) {
137
- return yield* Effect.die(parsed.error);
138
- }
139
- chapters.push({ ...parsed, source: 'cli' });
140
- }
141
- return chapters;
142
- });
143
- const stripAnyFrontmatter = (raw) => {
144
- if (!raw.startsWith('---\n')) {
145
- return { fields: {}, body: raw };
146
- }
147
- const end = raw.indexOf('\n---\n', 4);
148
- if (end < 0)
149
- return { fields: {}, body: raw };
150
- const head = raw.slice(4, end);
151
- const body = raw.slice(end + 5).replace(/^\n+/, '');
152
- const fields = {};
153
- for (const line of head.split('\n')) {
154
- if (line.trim().length === 0)
155
- continue;
156
- const colon = line.indexOf(':');
157
- if (colon < 0)
158
- continue;
159
- const key = line.slice(0, colon).trim();
160
- let value = line.slice(colon + 1).trim();
161
- if ((value.startsWith('"') && value.endsWith('"')) ||
162
- (value.startsWith("'") && value.endsWith("'"))) {
163
- value = value.slice(1, -1);
164
- }
165
- fields[key] = value;
166
- }
167
- return { fields, body };
168
- };
169
- const humanizeBase = (name) => name.replaceAll(/[_-]+/g, ' ').replaceAll(/\b\w/g, (c) => c.toUpperCase());
170
- const firstNonEmptyLine = (body) => {
171
- for (const line of body.split('\n')) {
172
- const trimmed = line.trim();
173
- if (!trimmed)
174
- continue;
175
- if (trimmed.startsWith('#'))
176
- continue;
177
- return trimmed.slice(0, 200);
178
- }
179
- return null;
180
- };
181
- const scanHaklexDir = (fs, path, dir) => Effect.gen(function* () {
182
- const exists = yield* fs
183
- .exists(dir)
184
- .pipe(Effect.catchAll(() => Effect.succeed(false)));
185
- if (!exists)
186
- return [];
187
- const chapters = [];
188
- const skillMdPath = path.join(dir, 'SKILL.md');
189
- const skillMdExists = yield* fs
190
- .exists(skillMdPath)
191
- .pipe(Effect.catchAll(() => Effect.succeed(false)));
192
- if (skillMdExists) {
193
- const raw = yield* fs
194
- .readFileString(skillMdPath)
195
- .pipe(Effect.catchAll(() => Effect.succeed('')));
196
- if (raw) {
197
- const { fields, body } = stripAnyFrontmatter(raw);
198
- chapters.push({
199
- slug: 'litexml',
200
- title: 'liteXML overview',
201
- description: fields.description ||
202
- firstNonEmptyLine(body) ||
203
- 'liteXML node and authoring reference',
204
- order: 70,
205
- source: 'haklex',
206
- body,
207
- });
208
- }
209
- }
210
- const refsDir = path.join(dir, 'references');
211
- const refsExists = yield* fs
212
- .exists(refsDir)
213
- .pipe(Effect.catchAll(() => Effect.succeed(false)));
214
- if (refsExists) {
215
- const refFiles = yield* fs
216
- .readDirectory(refsDir)
217
- .pipe(Effect.catchAll(() => Effect.succeed([])));
218
- const sorted = [...refFiles].filter((n) => n.endsWith('.md')).sort();
219
- let order = 71;
220
- for (const name of sorted) {
221
- const full = path.join(refsDir, name);
222
- const raw = yield* fs
223
- .readFileString(full)
224
- .pipe(Effect.catchAll(() => Effect.succeed('')));
225
- if (!raw)
226
- continue;
227
- const baseName = name.replace(/\.md$/, '');
228
- const { fields, body } = stripAnyFrontmatter(raw);
229
- chapters.push({
230
- slug: `litexml-${baseName}`,
231
- title: `liteXML ${humanizeBase(baseName)}`,
232
- description: fields.description ||
233
- firstNonEmptyLine(body) ||
234
- `liteXML reference: ${baseName}`,
235
- order: order++,
236
- source: 'haklex',
237
- body,
238
- });
239
- }
240
- }
241
- return chapters;
242
- });
243
- const buildRegistry = (fs, path, cliDir, haklexDir) => Effect.gen(function* () {
244
- const [cliChapters, haklexChapters] = yield* Effect.all([
245
- cliDir
246
- ? scanCliDir(fs, path, cliDir)
247
- : Effect.succeed([]),
248
- haklexDir
249
- ? scanHaklexDir(fs, path, haklexDir)
250
- : Effect.succeed([]),
251
- ], { concurrency: 2 }).pipe(Effect.catchAllDefect((d) => Effect.fail(new SkillCorpusEmpty({
252
- message: typeof d === 'string' ? d : 'failed to load skill corpus',
253
- cause: d,
254
- }))));
255
- const all = [...cliChapters, ...haklexChapters];
256
- if (all.length === 0) {
257
- return yield* Effect.fail(new SkillCorpusEmpty({
258
- message: 'no chapters found',
259
- hint: 'reinstall @mx-space/cli, or check the MXS_SKILL_CLI_DIR / MXS_SKILL_HAKLEX_DIR overrides',
260
- }));
261
- }
262
- const seen = new Set();
263
- for (const c of all) {
264
- if (seen.has(c.slug)) {
265
- return yield* Effect.fail(new SkillCorpusEmpty({
266
- message: `duplicate slug across sources: ${c.slug}`,
267
- hint: 'each chapter slug must be globally unique',
268
- }));
269
- }
270
- seen.add(c.slug);
271
- }
272
- return [...all].sort((a, b) => a.order - b.order);
273
- });
274
- const buildIndex = (chapters) => {
275
- const mini = new MiniSearch({
276
- fields: ['title', 'description', 'body'],
277
- storeFields: ['slug'],
278
- idField: 'slug',
279
- searchOptions: {
280
- boost: { title: 3, description: 2 },
281
- combineWith: 'AND',
282
- prefix: true,
283
- fuzzy: 0.2,
284
- },
285
- });
286
- mini.addAll(chapters.map((c) => ({
287
- slug: c.slug,
288
- title: c.title,
289
- description: c.description,
290
- body: c.body,
291
- })));
292
- return mini;
293
- };
294
- /**
295
- * Tokenize the user's query string the same way MiniSearch does for indexing,
296
- * so snippets can be located in the body. We use this lightweight tokenizer
297
- * rather than `r.terms` because fuzzy / prefix matches expose the indexed
298
- * term, not the substring that appears in the body verbatim.
299
- */
300
- const tokenizeQuery = (s) => s
301
- .toLowerCase()
302
- .split(/[\s\p{P}]+/u)
303
- .filter((t) => t.length > 0);
304
- const buildSnippets = (body, terms) => {
305
- if (terms.length === 0)
306
- return [];
307
- const lower = body.toLowerCase();
308
- // Pre-collect up to 5 occurrences per term so single-term queries can
309
- // surface multiple snippets and multi-term queries stay balanced via
310
- // round-robin emission below.
311
- const occs = terms.map((term) => {
312
- const t = term.toLowerCase();
313
- if (!t)
314
- return [];
315
- const positions = [];
316
- let from = 0;
317
- while (positions.length < 5) {
318
- const idx = lower.indexOf(t, from);
319
- if (idx < 0)
320
- break;
321
- positions.push(idx);
322
- from = idx + t.length;
323
- }
324
- return positions;
325
- });
326
- const cursors = Array.from({ length: terms.length }, () => 0);
327
- const out = [];
328
- let progressed = true;
329
- while (out.length < 3 && progressed) {
330
- progressed = false;
331
- for (let i = 0; i < terms.length && out.length < 3; i++) {
332
- const c = cursors[i];
333
- if (c >= occs[i].length)
334
- continue;
335
- const idx = occs[i][c];
336
- const tLen = terms[i].length;
337
- cursors[i] = c + 1;
338
- progressed = true;
339
- const start = Math.max(0, idx - 60);
340
- const end = Math.min(body.length, idx + tLen + 60);
341
- let snippet = body.slice(start, end).replaceAll(/\s+/g, ' ').trim();
342
- if (start > 0)
343
- snippet = `…${snippet}`;
344
- if (end < body.length)
345
- snippet = `${snippet}…`;
346
- out.push(snippet);
347
- }
348
- }
349
- return out;
350
- };
351
- const make = Effect.gen(function* () {
352
- const fs = yield* FileSystem.FileSystem;
353
- const path = yield* Path.Path;
354
- const cliDir = resolveCliSkillsDir();
355
- const haklexDir = resolveHaklexSkillsDir();
356
- const cache = yield* Ref.make(null);
357
- const indexCache = yield* Ref.make(null);
358
- const load = Effect.gen(function* () {
359
- const cached = yield* Ref.get(cache);
360
- if (cached)
361
- return cached;
362
- const chapters = yield* buildRegistry(fs, path, cliDir, haklexDir);
363
- yield* Ref.set(cache, chapters);
364
- return chapters;
365
- });
366
- const loadIndex = Effect.gen(function* () {
367
- const cached = yield* Ref.get(indexCache);
368
- if (cached)
369
- return cached;
370
- const chapters = yield* load;
371
- const mini = buildIndex(chapters);
372
- yield* Ref.set(indexCache, mini);
373
- return mini;
374
- });
375
- const svc = {
376
- list: load,
377
- all: load,
378
- get: (slug) => Effect.gen(function* () {
379
- const chapters = yield* load;
380
- const found = chapters.find((c) => c.slug === slug);
381
- if (!found) {
382
- const isLitexml = slug.startsWith('litexml');
383
- return yield* Effect.fail(new ChapterNotFound({
384
- slug,
385
- message: `no skill chapter with slug '${slug}'`,
386
- hint: isLitexml
387
- ? 'upgrade @haklex/rich-litexml to >=0.36.1 to ship liteXML chapters'
388
- : 'run `mxs skill` to list available chapters',
389
- }));
390
- }
391
- return found;
392
- }),
393
- search: (keyword) => Effect.gen(function* () {
394
- const kw = keyword.trim();
395
- if (!kw)
396
- return [];
397
- const chapters = yield* load;
398
- const mini = yield* loadIndex;
399
- const tokens = tokenizeQuery(kw);
400
- const results = mini.search(kw);
401
- const bySlug = new Map(chapters.map((c) => [c.slug, c]));
402
- return results.flatMap((r) => {
403
- const chapter = bySlug.get(r.id);
404
- if (!chapter)
405
- return [];
406
- return [
407
- {
408
- slug: chapter.slug,
409
- title: chapter.title,
410
- description: chapter.description,
411
- snippets: buildSnippets(chapter.body, tokens),
412
- },
413
- ];
414
- });
415
- }),
416
- };
417
- return svc;
418
- });
419
- export class Skill extends Context.Tag('Skill')() {
420
- static Default = Layer.effect(Skill, make);
421
- }
@@ -1,162 +0,0 @@
1
- import { Context, Effect, Layer } from 'effect';
2
- import { type Generic, UpdateDevEnvironment, UpdateNodeIncompatible, UpdatePermissionDenied, UpdatePmUnknown, UpdateRegistryUnreachable, UpdateSpawnFailed, UpdateTransientInstall } from '../domain/errors';
3
- export type UpdateChannel = 'stable' | 'next';
4
- export type PmKind = 'npm' | 'pnpm' | 'yarn' | 'bun';
5
- export declare const PACKAGE_NAME = "@mx-space/cli";
6
- export declare const DEFAULT_REGISTRY = "https://registry.npmjs.org";
7
- export interface NotifyOptions {
8
- readonly currentVersion: string;
9
- readonly channel?: UpdateChannel;
10
- readonly quiet?: boolean;
11
- readonly json?: boolean;
12
- readonly output?: string;
13
- readonly commandName?: string;
14
- readonly parentName?: string;
15
- readonly force?: boolean;
16
- readonly isTTY?: boolean;
17
- readonly env?: NodeJS.ProcessEnv;
18
- readonly emit?: (message: string) => void;
19
- readonly configDir?: string;
20
- }
21
- export interface RunUpdateOptions {
22
- readonly currentVersion: string;
23
- readonly channel?: UpdateChannel;
24
- readonly dryRun?: boolean;
25
- readonly check?: boolean;
26
- readonly prerelease?: boolean;
27
- readonly pm?: string;
28
- readonly yes?: boolean;
29
- readonly force?: boolean;
30
- readonly json?: boolean;
31
- /** Override `process.argv[1]` for pm detection (tests). */
32
- readonly entrypoint?: string;
33
- /** Override Node version for engine compatibility check (tests). */
34
- readonly nodeVersion?: string;
35
- }
36
- export interface RunUpdateResult {
37
- readonly fromVersion: string;
38
- readonly toVersion: string;
39
- readonly pm: PmKind | null;
40
- readonly channel: UpdateChannel;
41
- readonly status: number;
42
- /** true when the package manager actually ran and succeeded. */
43
- readonly upgraded: boolean;
44
- /** true when no install was performed (already up to date / --check / --dry-run / cancelled). */
45
- readonly dryRun: boolean;
46
- /** true when local version >= registry latest. */
47
- readonly upToDate: boolean;
48
- readonly command?: string;
49
- readonly cancelled?: boolean;
50
- }
51
- export type RunUpdateError = UpdateDevEnvironment | UpdateTransientInstall | UpdatePmUnknown | UpdateRegistryUnreachable | UpdateNodeIncompatible | UpdateSpawnFailed | UpdatePermissionDenied | Generic;
52
- export interface UpdateNotifierService {
53
- readonly maybeNotify: (opts: NotifyOptions) => Effect.Effect<void>;
54
- readonly runUpdate: (opts: RunUpdateOptions) => Effect.Effect<RunUpdateResult, RunUpdateError>;
55
- }
56
- export type PmDetection = {
57
- kind: 'global';
58
- pm: PmKind;
59
- realPath: string;
60
- } | {
61
- kind: 'dev';
62
- reason: 'monorepo-source' | 'monorepo-dist';
63
- realPath: string;
64
- } | {
65
- kind: 'transient';
66
- cache: 'npx' | 'pnpm-dlx' | 'bunx';
67
- realPath: string;
68
- } | {
69
- kind: 'unknown';
70
- realPath: string;
71
- };
72
- export declare function detectPackageManager(argv1: string): PmDetection;
73
- export interface RegistryHit {
74
- notModified?: false;
75
- version: string;
76
- engines?: {
77
- node?: string;
78
- };
79
- tarball?: string;
80
- etag?: string;
81
- }
82
- export interface NotModified {
83
- notModified: true;
84
- etag?: string;
85
- }
86
- export type FetchImpl = (input: string, init?: {
87
- headers?: Record<string, string>;
88
- signal?: AbortSignal;
89
- }) => Promise<{
90
- ok: boolean;
91
- status: number;
92
- headers: {
93
- get: (name: string) => string | null;
94
- };
95
- json: () => Promise<unknown>;
96
- text: () => Promise<string>;
97
- }>;
98
- export interface FetchOpts {
99
- etag?: string;
100
- signal?: AbortSignal;
101
- registry?: string;
102
- fetchImpl?: FetchImpl;
103
- }
104
- export declare function fetchLatestVersion(channel: UpdateChannel, opts?: FetchOpts): Promise<RegistryHit | NotModified>;
105
- export declare function compareSemver(a: string, b: string): -1 | 0 | 1;
106
- export declare function satisfiesNodeEngine(currentVersion: string, range: string | undefined): boolean;
107
- export declare function buildUpgradeCommand(pm: PmKind, channel: UpdateChannel): {
108
- cmd: string;
109
- args: string[];
110
- };
111
- export interface SpawnUpgradeResult {
112
- status: number;
113
- stderr: string;
114
- }
115
- export type SpawnDetached = (cmd: string, args: string[], logPath: string) => void;
116
- export interface CachedState {
117
- last_check_ts: number;
118
- latest_version?: string;
119
- etag?: string;
120
- /**
121
- * Timestamp of the most recent background auto-update spawn. Used to throttle
122
- * silent installs so a single new release doesn't trigger an `npm i -g` on
123
- * every `mxs <cmd>` invocation within the 24h check window.
124
- */
125
- last_auto_update_ts?: number;
126
- }
127
- export declare function readCache(configDir: string): CachedState | null;
128
- export declare function writeCacheAtomic(state: CachedState, configDir: string): void;
129
- export declare function shouldSkipNotify(opts: NotifyOptions): boolean;
130
- export interface UpdateNotifierDeps {
131
- readonly now?: () => number;
132
- readonly fetchImpl?: FetchImpl;
133
- readonly spawnImpl?: (cmd: string, args: string[]) => Promise<SpawnUpgradeResult>;
134
- /**
135
- * Fire-and-forget detached spawn used by the background auto-update path.
136
- * Unit tests can inject a spy to verify that an install was triggered
137
- * without actually running the package manager.
138
- */
139
- readonly spawnDetached?: SpawnDetached;
140
- /**
141
- * @deprecated The interactive confirm prompt was removed when `mxs update`
142
- * became auto-install by default. Accepted for backward compatibility with
143
- * older `make()` call sites; never invoked.
144
- */
145
- readonly confirmImpl?: (message: string) => Promise<boolean>;
146
- readonly emitInfo?: (msg: string) => void;
147
- readonly configDir?: string;
148
- /**
149
- * Override `process.argv[1]` for the background auto-update path's pm
150
- * detection. Production callers leave this unset and the helper reads
151
- * argv directly.
152
- */
153
- readonly entrypoint?: string;
154
- }
155
- export declare const make: (deps?: UpdateNotifierDeps) => UpdateNotifierService;
156
- declare const UpdateNotifier_base: Context.TagClass<UpdateNotifier, "UpdateNotifier", UpdateNotifierService>;
157
- export declare class UpdateNotifier extends UpdateNotifier_base {
158
- static Default: Layer.Layer<UpdateNotifier>;
159
- }
160
- /** Build a custom UpdateNotifier layer (tests). */
161
- export declare const layer: (deps?: UpdateNotifierDeps) => Layer.Layer<UpdateNotifier>;
162
- export {};