@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,13 +0,0 @@
1
- import { Context, Layer } from 'effect';
2
- import type { Generic } from '../../domain/errors';
3
- import { Api, type ApiService } from '../Api';
4
- import type { AiService } from './types';
5
- export type * from './types';
6
- export declare const make: (api: ApiService) => AiService;
7
- export type _Generic = Generic;
8
- declare const Ai_base: Context.TagClass<Ai, "Ai", AiService>;
9
- export declare class Ai extends Ai_base {
10
- static Default: Layer.Layer<Ai, never, Api>;
11
- }
12
- /** Build an Ai layer from an explicit ApiService (tests). */
13
- export declare const layer: (api: ApiService) => Layer.Layer<Ai>;
@@ -1,127 +0,0 @@
1
- import { Context, Effect, Layer } from 'effect';
2
- import { Api } from '../Api';
3
- import { makeOverview } from './overview';
4
- import { makeByArticle, makeList, makeMatchById } from './resources';
5
- import { makeCreateTask, makeWaitForTask } from './tasks';
6
- export const make = (api) => {
7
- const createTask = makeCreateTask(api);
8
- const list = makeList(api);
9
- const matchById = makeMatchById(api);
10
- const byArticle = makeByArticle(api);
11
- const translationsByArticle = (refId, opts) => opts?.lang
12
- ? api.request(`/ai/translations/article/${refId}`, {
13
- query: { lang: opts.lang },
14
- })
15
- : api.request(`/ai/translations/ref/${refId}`);
16
- return {
17
- // -- generate
18
- regenSummary: (input) => createTask('summary', '/ai/summaries/task', {
19
- refId: input.refId,
20
- ...(input.targetLanguages?.length
21
- ? { targetLanguages: [...input.targetLanguages] }
22
- : {}),
23
- ...(input.force ? { force: true } : {}),
24
- }),
25
- translate: (input) => createTask('translation', '/ai/translations/task', {
26
- refId: input.refId,
27
- targetLanguages: [...input.targetLanguages],
28
- ...(input.force ? { force: true } : {}),
29
- }),
30
- refreshInsights: (input) => createTask('insights', '/ai/insights/task', {
31
- refId: input.refId,
32
- ...(input.targetLanguages?.length
33
- ? { targetLanguages: [...input.targetLanguages] }
34
- : {}),
35
- ...(input.force ? { force: true } : {}),
36
- }),
37
- translateSummary: (input) => createTask('summary_translation', '/ai/summaries/task/translate', {
38
- refId: input.refId,
39
- targetLang: input.targetLang,
40
- ...(input.force ? { force: true } : {}),
41
- }, {
42
- sourceMissingHint: 'no base summary to translate — run `mxs ai summary regen` first',
43
- }),
44
- translateInsights: (input) => createTask('insights_translation', '/ai/insights/task/translate', {
45
- refId: input.refId,
46
- targetLang: input.targetLang,
47
- ...(input.force ? { force: true } : {}),
48
- }, {
49
- sourceMissingHint: 'no base insights to translate — run `mxs ai insights refresh` first',
50
- }),
51
- runTts: (input) => createTask('tts', '/ai/tts/task', {
52
- refId: input.refId,
53
- ...(input.targetLanguages?.length
54
- ? { langs: [...input.targetLanguages] }
55
- : {}),
56
- ...(input.force ? { force: true } : {}),
57
- }),
58
- waitForTask: makeWaitForTask(api),
59
- // -- tts
60
- listTts: list('/ai/tts', '/', '/grouped'),
61
- getTtsByArticle: (refId) => api.request(`/ai/tts/ref/${refId}`),
62
- discoverTtsVoices: (q) => api.request('/ai/tts/voices', {
63
- query: { providerId: q.providerId, model: q.model },
64
- }),
65
- deleteTts: (id) => api.request(`/ai/tts/${id}`, { method: 'DELETE' }).pipe(Effect.asVoid),
66
- // -- overview
67
- ...makeOverview(api),
68
- // -- summary
69
- listSummaries: list('/ai/summaries', '/', '/grouped'),
70
- getSummary: (id) => matchById('/ai/summaries', id, ['summaries']),
71
- getSummariesByArticle: byArticle('/ai/summaries'),
72
- updateSummary: (id, patch) => api.request(`/ai/summaries/${id}`, { method: 'PATCH', body: patch }),
73
- deleteSummary: (id) => api
74
- .request(`/ai/summaries/${id}`, { method: 'DELETE' })
75
- .pipe(Effect.asVoid),
76
- // -- translation
77
- listTranslations: list('/ai/translations', null, '/grouped'),
78
- getTranslation: (id) => matchById('/ai/translations', id, ['translations']),
79
- getTranslationsByArticle: translationsByArticle,
80
- getTranslationLanguages: (refId) => api.request(`/ai/translations/article/${refId}/languages`),
81
- updateTranslation: (id, patch) => api.request(`/ai/translations/${id}`, { method: 'PATCH', body: patch }),
82
- deleteTranslation: (id) => api
83
- .request(`/ai/translations/${id}`, { method: 'DELETE' })
84
- .pipe(Effect.asVoid),
85
- // -- insights
86
- listInsights: list('/ai/insights', '/', '/grouped'),
87
- getInsights: (id) => matchById('/ai/insights', id, ['insights']),
88
- getInsightsByArticle: byArticle('/ai/insights'),
89
- updateInsights: (id, patch) => api.request(`/ai/insights/${id}`, { method: 'PATCH', body: patch }),
90
- deleteInsights: (id) => api
91
- .request(`/ai/insights/${id}`, { method: 'DELETE' })
92
- .pipe(Effect.asVoid),
93
- // -- entries
94
- listEntries: (q) => api.request('/ai/translations/entries', {
95
- query: {
96
- page: q.page,
97
- size: q.size,
98
- keyPath: q.keyPath,
99
- lang: q.lang,
100
- },
101
- }),
102
- generateEntries: (input) => api.request('/ai/translations/entries/generate', {
103
- method: 'POST',
104
- body: {
105
- ...(input.keyPaths?.length ? { keyPaths: [...input.keyPaths] } : {}),
106
- ...(input.targetLangs?.length
107
- ? { targetLangs: [...input.targetLangs] }
108
- : {}),
109
- },
110
- }),
111
- updateEntry: (id, patch) => api.request(`/ai/translations/entries/${id}`, {
112
- method: 'PATCH',
113
- body: patch,
114
- }),
115
- deleteEntry: (id) => api
116
- .request(`/ai/translations/entries/${id}`, { method: 'DELETE' })
117
- .pipe(Effect.asVoid),
118
- };
119
- };
120
- export class Ai extends Context.Tag('Ai')() {
121
- static Default = Layer.effect(Ai, Effect.gen(function* () {
122
- const api = yield* Api;
123
- return make(api);
124
- }));
125
- }
126
- /** Build an Ai layer from an explicit ApiService (tests). */
127
- export const layer = (api) => Layer.succeed(Ai, make(api));
@@ -1,7 +0,0 @@
1
- import type { Effect } from 'effect';
2
- import type { ApiError, ApiService } from '../Api';
3
- import type { AiOverviewListQuery } from './types';
4
- export declare const makeOverview: (api: ApiService) => {
5
- listOverview: (q: AiOverviewListQuery) => Effect.Effect<unknown, ApiError>;
6
- getOverviewByArticle: (refId: string) => Effect.Effect<unknown, ApiError>;
7
- };
@@ -1,11 +0,0 @@
1
- export const makeOverview = (api) => ({
2
- listOverview: (q) => api.request('/ai/overview/grouped', {
3
- query: {
4
- page: q.page,
5
- size: q.size,
6
- search: q.search,
7
- type: q.type,
8
- },
9
- }),
10
- getOverviewByArticle: (refId) => api.request(`/ai/overview/article/${refId}`),
11
- });
@@ -1,7 +0,0 @@
1
- import { Effect } from 'effect';
2
- import { AiRecordNotFound } from '../../domain/errors';
3
- import type { ApiError, ApiService } from '../Api';
4
- import type { AiByArticleOptions, AiListQuery } from './types';
5
- export declare const makeList: (api: ApiService) => <Q extends AiListQuery>(base: string, flatPath: string | null, groupedPath: string) => (q: Q) => Effect.Effect<unknown, ApiError>;
6
- export declare const makeMatchById: (api: ApiService) => (base: string, id: string, itemKeys: ReadonlyArray<string>) => Effect.Effect<unknown, AiRecordNotFound | ApiError>;
7
- export declare const makeByArticle: (api: ApiService) => (base: string) => (refId: string, opts?: AiByArticleOptions) => Effect.Effect<unknown, ApiError>;
@@ -1,59 +0,0 @@
1
- import { Effect } from 'effect';
2
- import { AiRecordNotFound } from '../../domain/errors';
3
- import { asRecord, unwrapData } from './shared';
4
- export const makeList = (api) => (base, flatPath, groupedPath) => (q) => api.request(q.grouped || flatPath === null
5
- ? `${base}${groupedPath}`
6
- : `${base}${flatPath}`, {
7
- query: {
8
- page: q.page,
9
- size: q.size,
10
- search: q.search,
11
- },
12
- });
13
- const groupedItems = (group, itemKeys) => {
14
- const record = asRecord(group);
15
- for (const key of itemKeys) {
16
- const value = record[key];
17
- if (Array.isArray(value))
18
- return value;
19
- }
20
- return [];
21
- };
22
- export const makeMatchById = (api) => (base, id, itemKeys) => Effect.gen(function* () {
23
- // Try grouped pagination; flatten and match by id. Capped scan to avoid
24
- // unbounded pagination on enormous datasets.
25
- const MAX_PAGES = 50;
26
- const SIZE = 50;
27
- for (let page = 1; page <= MAX_PAGES; page++) {
28
- const raw = yield* api.request(`${base}/grouped`, {
29
- query: { page, size: SIZE },
30
- });
31
- const data = unwrapData(raw);
32
- const groups = Array.isArray(data) ? data : [];
33
- for (const group of groups) {
34
- for (const item of groupedItems(group, itemKeys)) {
35
- const r = asRecord(item);
36
- if (typeof r.id === 'string' && r.id === id)
37
- return item;
38
- }
39
- }
40
- const pagination = asRecord(asRecord(asRecord(raw).meta).pagination);
41
- const totalPages = typeof pagination.totalPages === 'number'
42
- ? pagination.totalPages
43
- : groups.length < SIZE
44
- ? page
45
- : page + 1;
46
- if (page >= totalPages)
47
- break;
48
- }
49
- return yield* Effect.fail(new AiRecordNotFound({
50
- message: `AI record not found: ${id}`,
51
- ref: id,
52
- }));
53
- });
54
- export const makeByArticle = (api) => (base) => (refId, opts) => api.request(`${base}/article/${refId}`, {
55
- query: {
56
- lang: opts?.lang,
57
- onlyDb: opts?.onlyDb,
58
- },
59
- });
@@ -1,2 +0,0 @@
1
- export declare const unwrapData: (raw: unknown) => unknown;
2
- export declare const asRecord: (value: unknown) => Record<string, unknown>;
@@ -1,11 +0,0 @@
1
- export const unwrapData = (raw) => {
2
- if (raw && typeof raw === 'object' && !Array.isArray(raw)) {
3
- const env = raw;
4
- if ('data' in env)
5
- return env.data;
6
- }
7
- return raw;
8
- };
9
- export const asRecord = (value) => value && typeof value === 'object' && !Array.isArray(value)
10
- ? value
11
- : {};
@@ -1,8 +0,0 @@
1
- import { Effect } from 'effect';
2
- import { AiTaskCreateFailed, AiTaskFailed } from '../../domain/errors';
3
- import type { ApiError, ApiService } from '../Api';
4
- import type { AiTaskCreateResult, AiTaskFinalView, AiTaskType, AiWaitOptions } from './types';
5
- export declare const makeCreateTask: (api: ApiService) => (type: AiTaskType, path: string, body: Record<string, unknown>, opts?: {
6
- sourceMissingHint?: string;
7
- }) => Effect.Effect<AiTaskCreateResult, AiTaskCreateFailed | ApiError>;
8
- export declare const makeWaitForTask: (api: ApiService) => (taskId: string, options: AiWaitOptions) => Effect.Effect<AiTaskFinalView, AiTaskFailed | ApiError>;
@@ -1,144 +0,0 @@
1
- import { Effect } from 'effect';
2
- import { AiTaskCreateFailed, AiTaskFailed } from '../../domain/errors';
3
- import { asRecord, unwrapData } from './shared';
4
- const readCreateTask = (raw) => {
5
- const inner = asRecord(unwrapData(raw));
6
- return {
7
- taskId: typeof inner.taskId === 'string' ? inner.taskId : undefined,
8
- created: typeof inner.created === 'boolean' ? inner.created : undefined,
9
- reason: typeof inner.reason === 'string' ? inner.reason : undefined,
10
- };
11
- };
12
- const readTaskRecord = (raw) => {
13
- const inner = asRecord(unwrapData(raw));
14
- const result = asRecord(inner.result);
15
- const payload = asRecord(inner.payload);
16
- const errField = inner.error;
17
- return {
18
- status: typeof inner.status === 'string'
19
- ? inner.status
20
- : undefined,
21
- totalCost: typeof inner.totalCost === 'number' || typeof inner.totalCost === 'string'
22
- ? inner.totalCost
23
- : undefined,
24
- totalTokens: typeof inner.totalTokens === 'number' ||
25
- typeof inner.totalTokens === 'string'
26
- ? inner.totalTokens
27
- : undefined,
28
- resultIds: Array.isArray(inner.resultIds)
29
- ? inner.resultIds
30
- : Array.isArray(result.resultIds)
31
- ? result.resultIds
32
- : undefined,
33
- payload: {
34
- refId: typeof payload.refId === 'string' ? payload.refId : undefined,
35
- targetLanguages: Array.isArray(payload.targetLanguages)
36
- ? payload.targetLanguages
37
- : undefined,
38
- },
39
- error: typeof errField === 'string'
40
- ? { message: errField }
41
- : errField && typeof errField === 'object'
42
- ? errField
43
- : undefined,
44
- errorMessage: typeof inner.errorMessage === 'string' ? inner.errorMessage : undefined,
45
- };
46
- };
47
- const toNumber = (v) => {
48
- if (typeof v === 'number' && Number.isFinite(v))
49
- return v;
50
- if (typeof v === 'string' && v.trim() !== '') {
51
- const n = Number(v);
52
- if (Number.isFinite(n))
53
- return n;
54
- }
55
- return undefined;
56
- };
57
- const TERMINAL = new Set([
58
- 'completed',
59
- 'partial_failed',
60
- 'succeeded',
61
- 'failed',
62
- 'cancelled',
63
- ]);
64
- const DEFAULT_POLL_MS = 1000;
65
- const resolvePollMs = (override) => {
66
- const envRaw = process.env.MXS_AI_POLL_MS;
67
- if (override && override > 0)
68
- return override;
69
- if (envRaw) {
70
- const n = Number(envRaw);
71
- if (Number.isFinite(n) && n > 0)
72
- return n;
73
- }
74
- return DEFAULT_POLL_MS;
75
- };
76
- export const makeCreateTask = (api) => (type, path, body, opts) => Effect.gen(function* () {
77
- const raw = yield* api.request(path, { method: 'POST', body });
78
- const env = readCreateTask(raw);
79
- if (!env.taskId) {
80
- return yield* Effect.fail(new AiTaskCreateFailed({
81
- message: env.reason === 'source-missing' && opts?.sourceMissingHint
82
- ? opts.sourceMissingHint
83
- : 'server returned no taskId',
84
- details: raw,
85
- }));
86
- }
87
- return {
88
- taskId: env.taskId,
89
- created: env.created ?? true,
90
- type,
91
- refId: typeof body.refId === 'string' ? body.refId : '',
92
- targetLanguages: Array.isArray(body.targetLanguages)
93
- ? body.targetLanguages
94
- : Array.isArray(body.langs)
95
- ? body.langs
96
- : typeof body.targetLang === 'string'
97
- ? [body.targetLang]
98
- : undefined,
99
- };
100
- });
101
- export const makeWaitForTask = (api) => (taskId, options) => Effect.gen(function* () {
102
- const pollMs = resolvePollMs(options.pollMs);
103
- let lastStatus;
104
- const pollOnce = () => api.request(`/tasks/${taskId}`).pipe(Effect.flatMap((raw) => {
105
- const rec = readTaskRecord(raw);
106
- const status = (rec.status ?? 'pending');
107
- if (status !== lastStatus) {
108
- lastStatus = status;
109
- options.onProgress?.(`[ai] task ${status}…`);
110
- }
111
- if (TERMINAL.has(status))
112
- return Effect.succeed({ rec, status });
113
- return Effect.sleep(`${pollMs} millis`).pipe(Effect.flatMap(() => pollOnce()));
114
- }));
115
- const { rec, status } = yield* pollOnce();
116
- const final = {
117
- type: options.type,
118
- taskId,
119
- status,
120
- refId: rec.payload?.refId,
121
- targetLanguages: rec.payload?.targetLanguages,
122
- totalTokens: toNumber(rec.totalTokens),
123
- totalCost: toNumber(rec.totalCost),
124
- resultIds: rec.resultIds,
125
- error: typeof rec.error === 'object'
126
- ? rec.error.message
127
- ? { message: rec.error.message }
128
- : undefined
129
- : rec.errorMessage
130
- ? { message: rec.errorMessage }
131
- : undefined,
132
- };
133
- if (status === 'failed' ||
134
- status === 'cancelled' ||
135
- status === 'partial_failed') {
136
- return yield* Effect.fail(new AiTaskFailed({
137
- taskId,
138
- status,
139
- message: final.error?.message ?? `AI task ${status} (id=${taskId})`,
140
- details: final,
141
- }));
142
- }
143
- return final;
144
- });
@@ -1,130 +0,0 @@
1
- import type { Effect } from 'effect';
2
- import type { AiRecordNotFound, AiTaskCreateFailed, AiTaskFailed } from '../../domain/errors';
3
- import type { ApiError } from '../Api';
4
- export type AiTaskType = 'summary' | 'summary_translation' | 'translation' | 'insights' | 'insights_translation' | 'tts';
5
- export type AiTaskStatus = 'pending' | 'queued' | 'running' | 'completed' | 'partial_failed' | 'succeeded' | 'failed' | 'cancelled';
6
- export interface AiTaskCreateResult {
7
- readonly taskId: string;
8
- readonly created: boolean;
9
- readonly type: AiTaskType;
10
- readonly refId: string;
11
- readonly targetLanguages?: ReadonlyArray<string>;
12
- }
13
- export interface AiTaskFinalView {
14
- readonly type: AiTaskType;
15
- readonly taskId: string;
16
- readonly status: AiTaskStatus;
17
- readonly refId?: string;
18
- readonly targetLanguages?: ReadonlyArray<string>;
19
- readonly totalTokens?: number;
20
- readonly totalCost?: number;
21
- readonly resultIds?: ReadonlyArray<string>;
22
- readonly error?: {
23
- readonly message: string;
24
- };
25
- }
26
- export interface AiTaskCreateInput {
27
- readonly refId: string;
28
- readonly targetLanguages?: ReadonlyArray<string>;
29
- readonly force?: boolean;
30
- }
31
- export interface AiTaskTranslateInput {
32
- readonly refId: string;
33
- readonly targetLanguages: ReadonlyArray<string>;
34
- readonly force?: boolean;
35
- }
36
- export interface AiSingleTranslateInput {
37
- readonly refId: string;
38
- readonly targetLang: string;
39
- readonly force?: boolean;
40
- }
41
- export interface AiWaitOptions {
42
- readonly type: AiTaskType;
43
- readonly pollMs?: number;
44
- /** Stderr progress emitter; receives a transition message per state change. */
45
- readonly onProgress?: (message: string) => void;
46
- }
47
- export interface AiListQuery {
48
- readonly page?: number;
49
- readonly size?: number;
50
- readonly grouped?: boolean;
51
- readonly search?: string;
52
- }
53
- export interface AiVoicesQuery {
54
- readonly providerId: string;
55
- readonly model: string;
56
- }
57
- export type AiOverviewType = 'post' | 'note' | 'page';
58
- export interface AiOverviewListQuery {
59
- readonly page?: number;
60
- readonly size?: number;
61
- readonly search?: string;
62
- readonly type?: AiOverviewType;
63
- }
64
- export interface AiEntryListQuery {
65
- readonly page?: number;
66
- readonly size?: number;
67
- readonly keyPath?: string;
68
- readonly lang?: string;
69
- }
70
- export interface AiEntryGenerateInput {
71
- readonly keyPaths?: ReadonlyArray<string>;
72
- readonly targetLangs?: ReadonlyArray<string>;
73
- }
74
- export interface AiSummaryPatch {
75
- readonly summary: string;
76
- }
77
- export interface AiInsightsPatch {
78
- readonly content: string;
79
- }
80
- export interface AiTranslationPatch {
81
- title?: string;
82
- text?: string;
83
- subtitle?: string | null;
84
- summary?: string;
85
- tags?: ReadonlyArray<string>;
86
- content?: string;
87
- }
88
- export interface AiEntryPatch {
89
- readonly translatedText: string;
90
- }
91
- export interface AiByArticleOptions {
92
- readonly lang?: string;
93
- readonly onlyDb?: boolean;
94
- }
95
- export type AiServiceError = ApiError | AiTaskCreateFailed | AiTaskFailed | AiRecordNotFound;
96
- export interface AiService {
97
- readonly regenSummary: (input: AiTaskCreateInput) => Effect.Effect<AiTaskCreateResult, AiTaskCreateFailed | ApiError>;
98
- readonly translate: (input: AiTaskTranslateInput) => Effect.Effect<AiTaskCreateResult, AiTaskCreateFailed | ApiError>;
99
- readonly refreshInsights: (input: AiTaskCreateInput) => Effect.Effect<AiTaskCreateResult, AiTaskCreateFailed | ApiError>;
100
- readonly translateSummary: (input: AiSingleTranslateInput) => Effect.Effect<AiTaskCreateResult, AiTaskCreateFailed | ApiError>;
101
- readonly translateInsights: (input: AiSingleTranslateInput) => Effect.Effect<AiTaskCreateResult, AiTaskCreateFailed | ApiError>;
102
- readonly runTts: (input: AiTaskCreateInput) => Effect.Effect<AiTaskCreateResult, AiTaskCreateFailed | ApiError>;
103
- readonly waitForTask: (taskId: string, options: AiWaitOptions) => Effect.Effect<AiTaskFinalView, AiTaskFailed | ApiError>;
104
- readonly listSummaries: (q: AiListQuery) => Effect.Effect<unknown, ApiError>;
105
- readonly getSummary: (id: string) => Effect.Effect<unknown, AiRecordNotFound | ApiError>;
106
- readonly getSummariesByArticle: (refId: string, opts?: AiByArticleOptions) => Effect.Effect<unknown, ApiError>;
107
- readonly updateSummary: (id: string, patch: AiSummaryPatch) => Effect.Effect<unknown, ApiError>;
108
- readonly deleteSummary: (id: string) => Effect.Effect<void, ApiError>;
109
- readonly listTranslations: (q: AiListQuery) => Effect.Effect<unknown, ApiError>;
110
- readonly getTranslation: (id: string) => Effect.Effect<unknown, AiRecordNotFound | ApiError>;
111
- readonly getTranslationsByArticle: (refId: string, opts?: AiByArticleOptions) => Effect.Effect<unknown, ApiError>;
112
- readonly getTranslationLanguages: (refId: string) => Effect.Effect<unknown, ApiError>;
113
- readonly updateTranslation: (id: string, patch: AiTranslationPatch) => Effect.Effect<unknown, ApiError>;
114
- readonly deleteTranslation: (id: string) => Effect.Effect<void, ApiError>;
115
- readonly listInsights: (q: AiListQuery) => Effect.Effect<unknown, ApiError>;
116
- readonly getInsights: (id: string) => Effect.Effect<unknown, AiRecordNotFound | ApiError>;
117
- readonly getInsightsByArticle: (refId: string, opts?: AiByArticleOptions) => Effect.Effect<unknown, ApiError>;
118
- readonly updateInsights: (id: string, patch: AiInsightsPatch) => Effect.Effect<unknown, ApiError>;
119
- readonly deleteInsights: (id: string) => Effect.Effect<void, ApiError>;
120
- readonly listTts: (q: AiListQuery) => Effect.Effect<unknown, ApiError>;
121
- readonly getTtsByArticle: (refId: string) => Effect.Effect<unknown, ApiError>;
122
- readonly discoverTtsVoices: (q: AiVoicesQuery) => Effect.Effect<unknown, ApiError>;
123
- readonly deleteTts: (id: string) => Effect.Effect<void, ApiError>;
124
- readonly listOverview: (q: AiOverviewListQuery) => Effect.Effect<unknown, ApiError>;
125
- readonly getOverviewByArticle: (refId: string) => Effect.Effect<unknown, ApiError>;
126
- readonly listEntries: (q: AiEntryListQuery) => Effect.Effect<unknown, ApiError>;
127
- readonly generateEntries: (input: AiEntryGenerateInput) => Effect.Effect<unknown, ApiError>;
128
- readonly updateEntry: (id: string, patch: AiEntryPatch) => Effect.Effect<unknown, ApiError>;
129
- readonly deleteEntry: (id: string) => Effect.Effect<void, ApiError>;
130
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,67 +0,0 @@
1
- import { HttpClient } from '@effect/platform';
2
- import type { Schema } from 'effect';
3
- import { Context, Effect, Layer } from 'effect';
4
- import { AuthDenied, AuthExpired, Generic, NetworkDns, NetworkRefused, NetworkTimeout, ResourceNotFound, ServerError, ValidationFailed, WriteRequiresExplicit } from '../domain/errors';
5
- import { Auth } from './Auth';
6
- import { Config, type StoreOverrides } from './Config';
7
- export type ApiMethod = 'GET' | 'POST' | 'PATCH' | 'PUT' | 'DELETE';
8
- export interface ApiRequestOptions<A = unknown, I = unknown> {
9
- readonly method?: ApiMethod;
10
- readonly body?: unknown;
11
- readonly query?: Readonly<Record<string, unknown>>;
12
- readonly headers?: Readonly<Record<string, string>>;
13
- readonly signal?: AbortSignal;
14
- /**
15
- * Decoder for the response payload. When omitted, the raw parsed body is
16
- * returned (likely an object or string, never undefined for non-204
17
- * responses).
18
- */
19
- readonly schema?: Schema.Schema<A, I>;
20
- }
21
- /**
22
- * Per-run overrides + UX flags that Wave 2 command code can supply when
23
- * instantiating the Api layer via `Api.layer(...)`.
24
- *
25
- * - `overrides`: passed straight to `Config.resolve` — supports the global
26
- * flags `--api-url`, `--token`, `--api-key`, `--profile` and their env
27
- * equivalents.
28
- * - `verbose` / `quiet`: control the production banner and `METHOD URL →
29
- * STATUS (Xms)` verbose log lines; they match the today's CLI behavior.
30
- */
31
- export interface ApiOptions {
32
- readonly overrides?: StoreOverrides;
33
- readonly verbose?: boolean;
34
- readonly quiet?: boolean;
35
- /**
36
- * When true, short-circuit writes (POST / PATCH / PUT / DELETE) BEFORE any
37
- * network call. The body that would have been sent is surfaced via the
38
- * returned value (`{ ok: true, dryRun: true, ... }`); reads pass through
39
- * unchanged. Mirrors the v0.2.x `--dry-run` global flag.
40
- */
41
- readonly dryRun?: boolean;
42
- /**
43
- * When set, append `?lang=<code>` to GET / read-only requests so the server
44
- * returns the localized variant. Writes are untouched. Mirrors the v0.2.x
45
- * `--lang <code>` flag.
46
- */
47
- readonly lang?: string;
48
- }
49
- export type ApiError = AuthExpired | AuthDenied | ValidationFailed | ResourceNotFound | ServerError | NetworkTimeout | NetworkDns | NetworkRefused | WriteRequiresExplicit | Generic;
50
- export interface ApiService {
51
- /** Issue a request against the active profile's `apiBase`. */
52
- readonly request: <A = unknown, I = unknown>(path: string, options?: ApiRequestOptions<A, I>) => Effect.Effect<A, ApiError>;
53
- /** Lower-level helper returning the raw parsed body without schema decoding. */
54
- readonly raw: (path: string, options?: Omit<ApiRequestOptions, 'schema'>) => Effect.Effect<unknown, ApiError>;
55
- }
56
- declare const Api_base: Context.TagClass<Api, "Api", ApiService>;
57
- export declare class Api extends Api_base {
58
- /**
59
- * Default Layer: no overrides, banner + verbose enabled per env / config.
60
- * Wave 2 entry-point (`bin/mxs.ts`) should use `Api.layer({...})` to wire
61
- * flag-derived overrides through.
62
- */
63
- static Default: Layer.Layer<Api, never, Config | Auth | HttpClient.HttpClient>;
64
- /** Build an Api Layer with command-specified overrides + UX flags. */
65
- static layer(opts: ApiOptions): Layer.Layer<Api, never, Config | Auth | HttpClient.HttpClient>;
66
- }
67
- export {};