@mx-space/cli 0.14.2 → 0.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -12
- package/dist/{Lexical.dev-CtGmYDoh.mjs → Lexical.dev-BSvx45_E.mjs} +350 -402
- package/dist/{Lexical.node-8sRFmq2X.mjs → Lexical.node-kAh5GM2n.mjs} +2 -2
- package/dist/{Lexical.prod-D-VfeKDz.mjs → Lexical.prod-Bqwgb3ez.mjs} +1757 -1785
- package/dist/{LexicalClipboard.dev-CzQ15z6E.mjs → LexicalClipboard.dev-BWU3KXIa.mjs} +19 -15
- package/dist/{LexicalClipboard.node-D4gMGws6.mjs → LexicalClipboard.node-BygAdNdF.mjs} +2 -2
- package/dist/{LexicalClipboard.prod-CltkQpzS.mjs → LexicalClipboard.prod-BtMuKNyT.mjs} +11 -11
- package/dist/{LexicalCodeCore.dev-DkYBZRGB.mjs → LexicalCodeCore.dev-CD2xgvDs.mjs} +95 -89
- package/dist/{LexicalCodeCore.prod-COc3_QL8.mjs → LexicalCodeCore.prod-Bl6FFMc7.mjs} +146 -158
- package/dist/{LexicalDragon.dev-Dv5_WUae.mjs → LexicalDragon.dev-BwdYhm4K.mjs} +3 -3
- package/dist/{LexicalDragon.node-DgjrmWkd.mjs → LexicalDragon.node-CpJhkCVV.mjs} +2 -2
- package/dist/{LexicalDragon.prod-DnpbDe-_.mjs → LexicalDragon.prod-CvXmWwo1.mjs} +3 -3
- package/dist/{LexicalExtension.dev-JMH_6-OZ.mjs → LexicalExtension.dev-LcRLXI5Z.mjs} +33 -30
- package/dist/{LexicalExtension.node-BUozzx4t.mjs → LexicalExtension.node-BwJt2LXV.mjs} +2 -2
- package/dist/{LexicalExtension.prod-UiyDgmou.mjs → LexicalExtension.prod-lg8_33-H.mjs} +87 -93
- package/dist/{LexicalHeadless.dev-BfLGciiX.mjs → LexicalHeadless.dev-BeUbKBes.mjs} +2 -2
- package/dist/{LexicalHeadless.prod-CWF7edmQ.mjs → LexicalHeadless.prod-4gbIA8HM.mjs} +2 -2
- package/dist/{LexicalHtml.dev-D5EF5PGW.mjs → LexicalHtml.dev-BLdZWTCJ.mjs} +22 -16
- package/dist/{LexicalHtml.node-BYbzHNVe.mjs → LexicalHtml.node-BeuJMvvt.mjs} +2 -2
- package/dist/{LexicalHtml.prod-D_FfkvVD.mjs → LexicalHtml.prod-CHUyCocN.mjs} +6 -6
- package/dist/{LexicalLink.dev-D3Pgh6ik.mjs → LexicalLink.dev-DgsFRqw0.mjs} +41 -58
- package/dist/{LexicalLink.prod-XZoAYVYD.mjs → LexicalLink.prod-CkXkeKY2.mjs} +115 -138
- package/dist/{LexicalList.dev-B5d3ObhB.mjs → LexicalList.dev-OOms3kQi.mjs} +15 -47
- package/dist/{LexicalList.prod-OQDpVAEb.mjs → LexicalList.prod-DzMBeqHn.mjs} +208 -224
- package/dist/{LexicalMarkdown.dev-BkM8G3DG.mjs → LexicalMarkdown.dev-DJLKbZtD.mjs} +42 -30
- package/dist/{LexicalMarkdown.prod-DcVXCex6.mjs → LexicalMarkdown.prod-Cp21kDCU.mjs} +12 -8
- package/dist/{LexicalRichText.dev-DppD7IrA.mjs → LexicalRichText.dev-0rkAGjUf.mjs} +84 -86
- package/dist/{LexicalRichText.node-CPSn7dkg.mjs → LexicalRichText.node-Cd-BySPE.mjs} +8 -8
- package/dist/{LexicalRichText.prod-h7JPxFNp.mjs → LexicalRichText.prod-DTQiEr8C.mjs} +96 -100
- package/dist/{LexicalSelection.dev-CD0SLbxP.mjs → LexicalSelection.dev-Bi0VlUEv.mjs} +29 -25
- package/dist/{LexicalSelection.node-CGlJgUlZ.mjs → LexicalSelection.node-t2U46EF_.mjs} +2 -2
- package/dist/{LexicalSelection.prod-DbVZN5AV.mjs → LexicalSelection.prod-CrFG111g.mjs} +3 -3
- package/dist/{LexicalTable.dev-D0HU14UV.mjs → LexicalTable.dev-D-sFhO-o.mjs} +288 -154
- package/dist/{LexicalTable.prod-BcPNSrxP.mjs → LexicalTable.prod-DwYaa_dN.mjs} +689 -632
- package/dist/{LexicalUtils.dev-iKy_TrRT.mjs → LexicalUtils.dev-Q2q3-UDM.mjs} +9 -6
- package/dist/{LexicalUtils.node-CIgMS8cG.mjs → LexicalUtils.node-Dl7OvqJV.mjs} +2 -2
- package/dist/{LexicalUtils.prod-DIAsKJzu.mjs → LexicalUtils.prod-CBnq_iEV.mjs} +8 -7
- package/dist/bin/mxs.mjs +1 -1
- package/dist/esm-CNZ7kdTg.mjs +2 -0
- package/dist/{esm-CwXl1N0a.mjs → esm-ZXjJmLEC.mjs} +422 -391
- package/dist/index.d.mts +16 -16
- package/dist/index.mjs +1 -1
- package/dist/{mxs-iW9DgqSZ.mjs → mxs-DC9zR3f2.mjs} +2203 -2782
- package/dist/{rolldown-runtime-JspESFgx.mjs → rolldown-runtime-B4iAMlE-.mjs} +1 -1
- package/dist/src/bin/mxs.d.ts +2 -0
- package/dist/src/bin/mxs.js +310 -0
- package/dist/src/cli/ai/_poll.d.ts +12 -0
- package/dist/src/cli/ai/_poll.js +38 -0
- package/dist/src/cli/ai/_resolve.d.ts +8 -0
- package/dist/src/cli/ai/_resolve.js +27 -0
- package/dist/src/cli/ai/index.d.ts +127 -0
- package/dist/src/cli/ai/index.js +46 -0
- package/dist/src/cli/ai/insights/by-article.d.ts +10 -0
- package/dist/src/cli/ai/insights/by-article.js +21 -0
- package/dist/src/cli/ai/insights/delete.d.ts +7 -0
- package/dist/src/cli/ai/insights/delete.js +18 -0
- package/dist/src/cli/ai/insights/edit.d.ts +8 -0
- package/dist/src/cli/ai/insights/edit.js +54 -0
- package/dist/src/cli/ai/insights/get.d.ts +6 -0
- package/dist/src/cli/ai/insights/get.js +11 -0
- package/dist/src/cli/ai/insights/index.d.ts +30 -0
- package/dist/src/cli/ai/insights/index.js +17 -0
- package/dist/src/cli/ai/insights/list.d.ts +10 -0
- package/dist/src/cli/ai/insights/list.js +20 -0
- package/dist/src/cli/ai/insights/refresh.d.ts +10 -0
- package/dist/src/cli/ai/insights/refresh.js +25 -0
- package/dist/src/cli/ai/insights/translate.d.ts +10 -0
- package/dist/src/cli/ai/insights/translate.js +25 -0
- package/dist/src/cli/ai/overview/by-article.d.ts +7 -0
- package/dist/src/cli/ai/overview/by-article.js +15 -0
- package/dist/src/cli/ai/overview/index.d.ts +11 -0
- package/dist/src/cli/ai/overview/index.js +4 -0
- package/dist/src/cli/ai/overview/list.d.ts +10 -0
- package/dist/src/cli/ai/overview/list.js +20 -0
- package/dist/src/cli/ai/summary/by-article.d.ts +10 -0
- package/dist/src/cli/ai/summary/by-article.js +21 -0
- package/dist/src/cli/ai/summary/delete.d.ts +7 -0
- package/dist/src/cli/ai/summary/delete.js +18 -0
- package/dist/src/cli/ai/summary/edit.d.ts +8 -0
- package/dist/src/cli/ai/summary/edit.js +54 -0
- package/dist/src/cli/ai/summary/get.d.ts +6 -0
- package/dist/src/cli/ai/summary/get.js +11 -0
- package/dist/src/cli/ai/summary/index.d.ts +30 -0
- package/dist/src/cli/ai/summary/index.js +9 -0
- package/dist/src/cli/ai/summary/list.d.ts +10 -0
- package/dist/src/cli/ai/summary/list.js +20 -0
- package/dist/src/cli/ai/summary/regen.d.ts +10 -0
- package/dist/src/cli/ai/summary/regen.js +25 -0
- package/dist/src/cli/ai/summary/translate.d.ts +10 -0
- package/dist/src/cli/ai/summary/translate.js +25 -0
- package/dist/src/cli/ai/translate/by-article.d.ts +9 -0
- package/dist/src/cli/ai/translate/by-article.js +19 -0
- package/dist/src/cli/ai/translate/delete.d.ts +7 -0
- package/dist/src/cli/ai/translate/delete.js +18 -0
- package/dist/src/cli/ai/translate/edit.d.ts +8 -0
- package/dist/src/cli/ai/translate/edit.js +97 -0
- package/dist/src/cli/ai/translate/entries/delete.d.ts +7 -0
- package/dist/src/cli/ai/translate/entries/delete.js +18 -0
- package/dist/src/cli/ai/translate/entries/edit.d.ts +8 -0
- package/dist/src/cli/ai/translate/entries/edit.js +73 -0
- package/dist/src/cli/ai/translate/entries/generate.d.ts +7 -0
- package/dist/src/cli/ai/translate/entries/generate.js +15 -0
- package/dist/src/cli/ai/translate/entries/index.d.ts +17 -0
- package/dist/src/cli/ai/translate/entries/index.js +6 -0
- package/dist/src/cli/ai/translate/entries/list.d.ts +10 -0
- package/dist/src/cli/ai/translate/entries/list.js +20 -0
- package/dist/src/cli/ai/translate/get.d.ts +6 -0
- package/dist/src/cli/ai/translate/get.js +11 -0
- package/dist/src/cli/ai/translate/index.d.ts +40 -0
- package/dist/src/cli/ai/translate/index.js +19 -0
- package/dist/src/cli/ai/translate/languages.d.ts +7 -0
- package/dist/src/cli/ai/translate/languages.js +15 -0
- package/dist/src/cli/ai/translate/list.d.ts +9 -0
- package/dist/src/cli/ai/translate/list.js +19 -0
- package/dist/src/cli/ai/translate/run.d.ts +10 -0
- package/dist/src/cli/ai/translate/run.js +31 -0
- package/dist/src/cli/ai/tts/by-article.d.ts +7 -0
- package/dist/src/cli/ai/tts/by-article.js +15 -0
- package/dist/src/cli/ai/tts/delete.d.ts +7 -0
- package/dist/src/cli/ai/tts/delete.js +18 -0
- package/dist/src/cli/ai/tts/index.d.ts +22 -0
- package/dist/src/cli/ai/tts/index.js +7 -0
- package/dist/src/cli/ai/tts/list.d.ts +10 -0
- package/dist/src/cli/ai/tts/list.js +20 -0
- package/dist/src/cli/ai/tts/run.d.ts +10 -0
- package/dist/src/cli/ai/tts/run.js +25 -0
- package/dist/src/cli/ai/tts/voices.d.ts +7 -0
- package/dist/src/cli/ai/tts/voices.js +12 -0
- package/dist/src/cli/ai/views.d.ts +3 -0
- package/dist/src/cli/ai/views.js +45 -0
- package/dist/src/cli/auth/index.d.ts +6 -0
- package/dist/src/cli/auth/index.js +22 -0
- package/dist/src/cli/auth/login.d.ts +11 -0
- package/dist/src/cli/auth/login.js +168 -0
- package/dist/src/cli/auth/logout.d.ts +6 -0
- package/dist/src/cli/auth/logout.js +21 -0
- package/dist/src/cli/auth/status.d.ts +4 -0
- package/dist/src/cli/auth/status.js +31 -0
- package/dist/src/cli/auth/view.d.ts +25 -0
- package/dist/src/cli/auth/view.js +46 -0
- package/dist/src/cli/auth/whoami.d.ts +7 -0
- package/dist/src/cli/auth/whoami.js +44 -0
- package/dist/src/cli/category/create.d.ts +10 -0
- package/dist/src/cli/category/create.js +24 -0
- package/dist/src/cli/category/delete.d.ts +8 -0
- package/dist/src/cli/category/delete.js +21 -0
- package/dist/src/cli/category/get.d.ts +6 -0
- package/dist/src/cli/category/get.js +11 -0
- package/dist/src/cli/category/index.d.ts +20 -0
- package/dist/src/cli/category/index.js +41 -0
- package/dist/src/cli/category/list.d.ts +4 -0
- package/dist/src/cli/category/list.js +10 -0
- package/dist/src/cli/category/update.d.ts +12 -0
- package/dist/src/cli/category/update.js +34 -0
- package/dist/src/cli/comment/_flags.d.ts +28 -0
- package/dist/src/cli/comment/_flags.js +48 -0
- package/dist/src/cli/comment/approve.d.ts +9 -0
- package/dist/src/cli/comment/approve.js +23 -0
- package/dist/src/cli/comment/delete.d.ts +9 -0
- package/dist/src/cli/comment/delete.js +24 -0
- package/dist/src/cli/comment/get.d.ts +6 -0
- package/dist/src/cli/comment/get.js +12 -0
- package/dist/src/cli/comment/index.d.ts +34 -0
- package/dist/src/cli/comment/index.js +53 -0
- package/dist/src/cli/comment/list.d.ts +9 -0
- package/dist/src/cli/comment/list.js +20 -0
- package/dist/src/cli/comment/reject.d.ts +9 -0
- package/dist/src/cli/comment/reject.js +23 -0
- package/dist/src/cli/comment/reply.d.ts +9 -0
- package/dist/src/cli/comment/reply.js +31 -0
- package/dist/src/cli/comment/unread.d.ts +7 -0
- package/dist/src/cli/comment/unread.js +21 -0
- package/dist/src/cli/comment/view.d.ts +3 -0
- package/dist/src/cli/comment/view.js +197 -0
- package/dist/src/cli/config/edit.d.ts +5 -0
- package/dist/src/cli/config/edit.js +36 -0
- package/dist/src/cli/config/get.d.ts +6 -0
- package/dist/src/cli/config/get.js +11 -0
- package/dist/src/cli/config/index.d.ts +10 -0
- package/dist/src/cli/config/index.js +22 -0
- package/dist/src/cli/config/list.d.ts +4 -0
- package/dist/src/cli/config/list.js +10 -0
- package/dist/src/cli/config/set.d.ts +9 -0
- package/dist/src/cli/config/set.js +48 -0
- package/dist/src/cli/draft/_shared.d.ts +27 -0
- package/dist/src/cli/draft/_shared.js +85 -0
- package/dist/src/cli/draft/create.d.ts +21 -0
- package/dist/src/cli/draft/create.js +34 -0
- package/dist/src/cli/draft/delete.d.ts +7 -0
- package/dist/src/cli/draft/delete.js +20 -0
- package/dist/src/cli/draft/get.d.ts +6 -0
- package/dist/src/cli/draft/get.js +11 -0
- package/dist/src/cli/draft/index.d.ts +54 -0
- package/dist/src/cli/draft/index.js +42 -0
- package/dist/src/cli/draft/list.d.ts +11 -0
- package/dist/src/cli/draft/list.js +23 -0
- package/dist/src/cli/draft/publish.d.ts +8 -0
- package/dist/src/cli/draft/publish.js +64 -0
- package/dist/src/cli/draft/update.d.ts +22 -0
- package/dist/src/cli/draft/update.js +29 -0
- package/dist/src/cli/file/_shared.d.ts +6 -0
- package/dist/src/cli/file/_shared.js +5 -0
- package/dist/src/cli/file/delete.d.ts +8 -0
- package/dist/src/cli/file/delete.js +21 -0
- package/dist/src/cli/file/index.d.ts +19 -0
- package/dist/src/cli/file/index.js +33 -0
- package/dist/src/cli/file/list.d.ts +6 -0
- package/dist/src/cli/file/list.js +11 -0
- package/dist/src/cli/file/rename.d.ts +8 -0
- package/dist/src/cli/file/rename.js +16 -0
- package/dist/src/cli/file/upload.d.ts +9 -0
- package/dist/src/cli/file/upload.js +32 -0
- package/dist/src/cli/help/index.d.ts +62 -0
- package/dist/src/cli/help/index.js +276 -0
- package/dist/src/cli/help/registry.d.ts +28 -0
- package/dist/src/cli/help/registry.js +29 -0
- package/dist/src/cli/note/_flags.d.ts +66 -0
- package/dist/src/cli/note/_flags.js +73 -0
- package/dist/src/cli/note/create.d.ts +23 -0
- package/dist/src/cli/note/create.js +25 -0
- package/dist/src/cli/note/delete.d.ts +8 -0
- package/dist/src/cli/note/delete.js +21 -0
- package/dist/src/cli/note/edit.d.ts +28 -0
- package/dist/src/cli/note/edit.js +114 -0
- package/dist/src/cli/note/get.d.ts +6 -0
- package/dist/src/cli/note/get.js +29 -0
- package/dist/src/cli/note/index.d.ts +77 -0
- package/dist/src/cli/note/index.js +63 -0
- package/dist/src/cli/note/list.d.ts +10 -0
- package/dist/src/cli/note/list.js +22 -0
- package/dist/src/cli/note/publish.d.ts +7 -0
- package/dist/src/cli/note/publish.js +17 -0
- package/dist/src/cli/note/unpublish.d.ts +7 -0
- package/dist/src/cli/note/unpublish.js +17 -0
- package/dist/src/cli/note/update.d.ts +25 -0
- package/dist/src/cli/note/update.js +36 -0
- package/dist/src/cli/note/view.d.ts +3 -0
- package/dist/src/cli/note/view.js +162 -0
- package/dist/src/cli/page/create.d.ts +41 -0
- package/dist/src/cli/page/create.js +56 -0
- package/dist/src/cli/page/delete.d.ts +7 -0
- package/dist/src/cli/page/delete.js +37 -0
- package/dist/src/cli/page/edit.d.ts +19 -0
- package/dist/src/cli/page/edit.js +117 -0
- package/dist/src/cli/page/get.d.ts +6 -0
- package/dist/src/cli/page/get.js +16 -0
- package/dist/src/cli/page/index.d.ts +44 -0
- package/dist/src/cli/page/index.js +38 -0
- package/dist/src/cli/page/list.d.ts +4 -0
- package/dist/src/cli/page/list.js +10 -0
- package/dist/src/cli/page/update.d.ts +16 -0
- package/dist/src/cli/page/update.js +48 -0
- package/dist/src/cli/page/view.d.ts +2 -0
- package/dist/src/cli/page/view.js +79 -0
- package/dist/src/cli/post/_flags.d.ts +66 -0
- package/dist/src/cli/post/_flags.js +96 -0
- package/dist/src/cli/post/apply.d.ts +7 -0
- package/dist/src/cli/post/apply.js +70 -0
- package/dist/src/cli/post/create.d.ts +21 -0
- package/dist/src/cli/post/create.js +24 -0
- package/dist/src/cli/post/delete.d.ts +8 -0
- package/dist/src/cli/post/delete.js +21 -0
- package/dist/src/cli/post/edit.d.ts +26 -0
- package/dist/src/cli/post/edit.js +115 -0
- package/dist/src/cli/post/get.d.ts +7 -0
- package/dist/src/cli/post/get.js +15 -0
- package/dist/src/cli/post/index.d.ts +91 -0
- package/dist/src/cli/post/index.js +73 -0
- package/dist/src/cli/post/list.d.ts +10 -0
- package/dist/src/cli/post/list.js +23 -0
- package/dist/src/cli/post/publish.d.ts +7 -0
- package/dist/src/cli/post/publish.js +17 -0
- package/dist/src/cli/post/stage.d.ts +23 -0
- package/dist/src/cli/post/stage.js +55 -0
- package/dist/src/cli/post/unpublish.d.ts +7 -0
- package/dist/src/cli/post/unpublish.js +17 -0
- package/dist/src/cli/post/update.d.ts +23 -0
- package/dist/src/cli/post/update.js +38 -0
- package/dist/src/cli/post/view.d.ts +3 -0
- package/dist/src/cli/post/view.js +150 -0
- package/dist/src/cli/preview/index.d.ts +13 -0
- package/dist/src/cli/preview/index.js +226 -0
- package/dist/src/cli/profile/index.d.ts +14 -0
- package/dist/src/cli/profile/index.js +36 -0
- package/dist/src/cli/profile/ls.d.ts +5 -0
- package/dist/src/cli/profile/ls.js +26 -0
- package/dist/src/cli/profile/mark.d.ts +9 -0
- package/dist/src/cli/profile/mark.js +23 -0
- package/dist/src/cli/profile/rm.d.ts +12 -0
- package/dist/src/cli/profile/rm.js +50 -0
- package/dist/src/cli/profile/show.d.ts +9 -0
- package/dist/src/cli/profile/show.js +40 -0
- package/dist/src/cli/profile/use.d.ts +6 -0
- package/dist/src/cli/profile/use.js +11 -0
- package/dist/src/cli/profile/view.d.ts +8 -0
- package/dist/src/cli/profile/view.js +21 -0
- package/dist/src/cli/project/_flags.d.ts +56 -0
- package/dist/src/cli/project/_flags.js +130 -0
- package/dist/src/cli/project/create.d.ts +17 -0
- package/dist/src/cli/project/create.js +25 -0
- package/dist/src/cli/project/delete.d.ts +8 -0
- package/dist/src/cli/project/delete.js +22 -0
- package/dist/src/cli/project/edit.d.ts +11 -0
- package/dist/src/cli/project/edit.js +61 -0
- package/dist/src/cli/project/get.d.ts +7 -0
- package/dist/src/cli/project/get.js +14 -0
- package/dist/src/cli/project/index.d.ts +43 -0
- package/dist/src/cli/project/index.js +52 -0
- package/dist/src/cli/project/list.d.ts +8 -0
- package/dist/src/cli/project/list.js +19 -0
- package/dist/src/cli/project/update.d.ts +18 -0
- package/dist/src/cli/project/update.js +24 -0
- package/dist/src/cli/project/view-cmd.d.ts +7 -0
- package/dist/src/cli/project/view-cmd.js +15 -0
- package/dist/src/cli/project/view.d.ts +3 -0
- package/dist/src/cli/project/view.js +102 -0
- package/dist/src/cli/render/codehighlight.d.ts +8 -0
- package/dist/src/cli/render/codehighlight.js +264 -0
- package/dist/src/cli/render/envelope.d.ts +7 -0
- package/dist/src/cli/render/envelope.js +23 -0
- package/dist/src/cli/render/frontmatter.d.ts +8 -0
- package/dist/src/cli/render/frontmatter.js +50 -0
- package/dist/src/cli/render/helpers.d.ts +2 -0
- package/dist/src/cli/render/helpers.js +11 -0
- package/dist/src/cli/render/index.d.ts +7 -0
- package/dist/src/cli/render/index.js +10 -0
- package/dist/src/cli/render/lexical/blocks.d.ts +19 -0
- package/dist/src/cli/render/lexical/blocks.js +208 -0
- package/dist/src/cli/render/lexical/code.d.ts +2 -0
- package/dist/src/cli/render/lexical/code.js +22 -0
- package/dist/src/cli/render/lexical/embeds.d.ts +6 -0
- package/dist/src/cli/render/lexical/embeds.js +51 -0
- package/dist/src/cli/render/lexical/index.d.ts +9 -0
- package/dist/src/cli/render/lexical/index.js +25 -0
- package/dist/src/cli/render/lexical/inlines.d.ts +17 -0
- package/dist/src/cli/render/lexical/inlines.js +76 -0
- package/dist/src/cli/render/lexical/parser.d.ts +10 -0
- package/dist/src/cli/render/lexical/parser.js +64 -0
- package/dist/src/cli/render/lexical/walker.d.ts +21 -0
- package/dist/src/cli/render/lexical/walker.js +51 -0
- package/dist/src/cli/render/markdown.d.ts +18 -0
- package/dist/src/cli/render/markdown.js +196 -0
- package/dist/src/cli/render/metadata-block.d.ts +14 -0
- package/dist/src/cli/render/metadata-block.js +50 -0
- package/dist/src/cli/skill/all.d.ts +4 -0
- package/dist/src/cli/skill/all.js +11 -0
- package/dist/src/cli/skill/get.d.ts +6 -0
- package/dist/src/cli/skill/get.js +12 -0
- package/dist/src/cli/skill/index.d.ts +10 -0
- package/dist/src/cli/skill/index.js +34 -0
- package/dist/src/cli/skill/list.d.ts +4 -0
- package/dist/src/cli/skill/list.js +11 -0
- package/dist/src/cli/skill/search.d.ts +6 -0
- package/dist/src/cli/skill/search.js +12 -0
- package/dist/src/cli/skill/views.d.ts +6 -0
- package/dist/src/cli/skill/views.js +90 -0
- package/dist/src/cli/snippet/_flags.d.ts +57 -0
- package/dist/src/cli/snippet/_flags.js +123 -0
- package/dist/src/cli/snippet/_resolve.d.ts +4 -0
- package/dist/src/cli/snippet/_resolve.js +32 -0
- package/dist/src/cli/snippet/_sync.d.ts +5 -0
- package/dist/src/cli/snippet/_sync.js +54 -0
- package/dist/src/cli/snippet/create.d.ts +19 -0
- package/dist/src/cli/snippet/create.js +35 -0
- package/dist/src/cli/snippet/delete.d.ts +8 -0
- package/dist/src/cli/snippet/delete.js +28 -0
- package/dist/src/cli/snippet/edit.d.ts +7 -0
- package/dist/src/cli/snippet/edit.js +29 -0
- package/dist/src/cli/snippet/get.d.ts +6 -0
- package/dist/src/cli/snippet/get.js +12 -0
- package/dist/src/cli/snippet/index.d.ts +43 -0
- package/dist/src/cli/snippet/index.js +58 -0
- package/dist/src/cli/snippet/list.d.ts +9 -0
- package/dist/src/cli/snippet/list.js +20 -0
- package/dist/src/cli/snippet/pull.d.ts +8 -0
- package/dist/src/cli/snippet/pull.js +33 -0
- package/dist/src/cli/snippet/push.d.ts +10 -0
- package/dist/src/cli/snippet/push.js +31 -0
- package/dist/src/cli/snippet/update.d.ts +8 -0
- package/dist/src/cli/snippet/update.js +16 -0
- package/dist/src/cli/topic/create.d.ts +10 -0
- package/dist/src/cli/topic/create.js +24 -0
- package/dist/src/cli/topic/delete.d.ts +7 -0
- package/dist/src/cli/topic/delete.js +37 -0
- package/dist/src/cli/topic/get.d.ts +6 -0
- package/dist/src/cli/topic/get.js +15 -0
- package/dist/src/cli/topic/index.d.ts +20 -0
- package/dist/src/cli/topic/index.js +32 -0
- package/dist/src/cli/topic/list.d.ts +4 -0
- package/dist/src/cli/topic/list.js +10 -0
- package/dist/src/cli/topic/update.d.ts +11 -0
- package/dist/src/cli/topic/update.js +51 -0
- package/dist/src/cli/ui/index.d.ts +24 -0
- package/dist/src/cli/ui/index.js +83 -0
- package/dist/src/cli/update/index.d.ts +10 -0
- package/dist/src/cli/update/index.js +142 -0
- package/dist/src/domain/admin-link.d.ts +12 -0
- package/dist/src/domain/admin-link.js +45 -0
- package/dist/src/domain/content-spec.d.ts +20 -0
- package/dist/src/domain/content-spec.js +78 -0
- package/dist/src/domain/envelope-compat.d.ts +68 -0
- package/dist/src/domain/envelope-compat.js +121 -0
- package/dist/src/domain/envelope.d.ts +34 -0
- package/dist/src/domain/envelope.js +355 -0
- package/dist/src/domain/errors.d.ts +336 -0
- package/dist/src/domain/errors.js +239 -0
- package/dist/src/domain/gate.d.ts +14 -0
- package/dist/src/domain/gate.js +18 -0
- package/dist/src/domain/payload.d.ts +64 -0
- package/dist/src/domain/payload.js +237 -0
- package/dist/src/domain/preflight-guards.d.ts +54 -0
- package/dist/src/domain/preflight-guards.js +130 -0
- package/dist/src/domain/runtime-flags.d.ts +33 -0
- package/dist/src/domain/runtime-flags.js +166 -0
- package/dist/src/domain/schema/api-envelope.d.ts +67 -0
- package/dist/src/domain/schema/api-envelope.js +65 -0
- package/dist/src/domain/schema/category.d.ts +23 -0
- package/dist/src/domain/schema/category.js +19 -0
- package/dist/src/domain/schema/config.d.ts +13 -0
- package/dist/src/domain/schema/config.js +18 -0
- package/dist/src/domain/schema/note.d.ts +76 -0
- package/dist/src/domain/schema/note.js +35 -0
- package/dist/src/domain/schema/page.d.ts +40 -0
- package/dist/src/domain/schema/page.js +22 -0
- package/dist/src/domain/schema/post.d.ts +68 -0
- package/dist/src/domain/schema/post.js +35 -0
- package/dist/src/domain/schema/profile.d.ts +14 -0
- package/dist/src/domain/schema/profile.js +22 -0
- package/dist/src/domain/schema/topic.d.ts +24 -0
- package/dist/src/domain/schema/topic.js +16 -0
- package/dist/src/domain/version.d.ts +15 -0
- package/dist/src/domain/version.js +43 -0
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.js +8 -0
- package/dist/src/layers/App.d.ts +30 -0
- package/dist/src/layers/App.js +39 -0
- package/dist/src/services/Ai/index.d.ts +13 -0
- package/dist/src/services/Ai/index.js +127 -0
- package/dist/src/services/Ai/overview.d.ts +7 -0
- package/dist/src/services/Ai/overview.js +11 -0
- package/dist/src/services/Ai/resources.d.ts +7 -0
- package/dist/src/services/Ai/resources.js +59 -0
- package/dist/src/services/Ai/shared.d.ts +2 -0
- package/dist/src/services/Ai/shared.js +11 -0
- package/dist/src/services/Ai/tasks.d.ts +8 -0
- package/dist/src/services/Ai/tasks.js +144 -0
- package/dist/src/services/Ai/types.d.ts +130 -0
- package/dist/src/services/Ai/types.js +1 -0
- package/dist/src/services/Api.d.ts +67 -0
- package/dist/src/services/Api.js +348 -0
- package/dist/src/services/Auth.d.ts +101 -0
- package/dist/src/services/Auth.js +402 -0
- package/dist/src/services/Backup.d.ts +8 -0
- package/dist/src/services/Backup.js +4 -0
- package/dist/src/services/Cache.d.ts +8 -0
- package/dist/src/services/Cache.js +4 -0
- package/dist/src/services/Comment.d.ts +48 -0
- package/dist/src/services/Comment.js +102 -0
- package/dist/src/services/Config.d.ts +95 -0
- package/dist/src/services/Config.js +359 -0
- package/dist/src/services/Editor.d.ts +28 -0
- package/dist/src/services/Editor.js +95 -0
- package/dist/src/services/Lexical.d.ts +27 -0
- package/dist/src/services/Lexical.js +56 -0
- package/dist/src/services/Migration.d.ts +31 -0
- package/dist/src/services/Migration.js +177 -0
- package/dist/src/services/Profile.d.ts +29 -0
- package/dist/src/services/Profile.js +115 -0
- package/dist/src/services/Renderer/content.d.ts +16 -0
- package/dist/src/services/Renderer/content.js +110 -0
- package/dist/src/services/Renderer/datetime.d.ts +38 -0
- package/dist/src/services/Renderer/datetime.js +147 -0
- package/dist/src/services/Renderer/errors.d.ts +3 -0
- package/dist/src/services/Renderer/errors.js +59 -0
- package/dist/src/services/Renderer/index.d.ts +13 -0
- package/dist/src/services/Renderer/index.js +11 -0
- package/dist/src/services/Renderer/lists.d.ts +1 -0
- package/dist/src/services/Renderer/lists.js +101 -0
- package/dist/src/services/Renderer/options.d.ts +10 -0
- package/dist/src/services/Renderer/options.js +13 -0
- package/dist/src/services/Renderer/primitives.d.ts +4 -0
- package/dist/src/services/Renderer/primitives.js +12 -0
- package/dist/src/services/Renderer/service.d.ts +35 -0
- package/dist/src/services/Renderer/service.js +123 -0
- package/dist/src/services/Renderer/view.d.ts +16 -0
- package/dist/src/services/Renderer/view.js +1 -0
- package/dist/src/services/Resolver.d.ts +47 -0
- package/dist/src/services/Resolver.js +269 -0
- package/dist/src/services/Skill.d.ts +29 -0
- package/dist/src/services/Skill.js +421 -0
- package/dist/src/services/UpdateNotifier.d.ts +162 -0
- package/dist/src/services/UpdateNotifier.js +572 -0
- package/dist/test/cli/ai/ai.test.d.ts +1 -0
- package/dist/test/cli/ai/ai.test.js +507 -0
- package/dist/test/cli/ai/verbs.test.d.ts +1 -0
- package/dist/test/cli/ai/verbs.test.js +235 -0
- package/dist/test/cli/auth/login.test.d.ts +1 -0
- package/dist/test/cli/auth/login.test.js +236 -0
- package/dist/test/cli/auth/logout-whoami.test.d.ts +1 -0
- package/dist/test/cli/auth/logout-whoami.test.js +124 -0
- package/dist/test/cli/auth/status.test.d.ts +1 -0
- package/dist/test/cli/auth/status.test.js +90 -0
- package/dist/test/cli/category/category.test.d.ts +1 -0
- package/dist/test/cli/category/category.test.js +175 -0
- package/dist/test/cli/comment/comment.test.d.ts +1 -0
- package/dist/test/cli/comment/comment.test.js +445 -0
- package/dist/test/cli/config/config.test.d.ts +1 -0
- package/dist/test/cli/config/config.test.js +281 -0
- package/dist/test/cli/edit-roundtrip.test.d.ts +1 -0
- package/dist/test/cli/edit-roundtrip.test.js +259 -0
- package/dist/test/cli/file/file.test.d.ts +1 -0
- package/dist/test/cli/file/file.test.js +185 -0
- package/dist/test/cli/help.test.d.ts +1 -0
- package/dist/test/cli/help.test.js +289 -0
- package/dist/test/cli/note/create.test.d.ts +1 -0
- package/dist/test/cli/note/create.test.js +155 -0
- package/dist/test/cli/note/list.test.d.ts +1 -0
- package/dist/test/cli/note/list.test.js +115 -0
- package/dist/test/cli/note/publish.test.d.ts +1 -0
- package/dist/test/cli/note/publish.test.js +123 -0
- package/dist/test/cli/page/page.test.d.ts +1 -0
- package/dist/test/cli/page/page.test.js +185 -0
- package/dist/test/cli/post/create.test.d.ts +1 -0
- package/dist/test/cli/post/create.test.js +172 -0
- package/dist/test/cli/post/list.test.d.ts +1 -0
- package/dist/test/cli/post/list.test.js +133 -0
- package/dist/test/cli/post/publish.test.d.ts +1 -0
- package/dist/test/cli/post/publish.test.js +139 -0
- package/dist/test/cli/post/stage-apply.test.d.ts +1 -0
- package/dist/test/cli/post/stage-apply.test.js +215 -0
- package/dist/test/cli/post/update.test.d.ts +1 -0
- package/dist/test/cli/post/update.test.js +160 -0
- package/dist/test/cli/post-note-crud.test.d.ts +1 -0
- package/dist/test/cli/post-note-crud.test.js +362 -0
- package/dist/test/cli/profile/ls.test.d.ts +1 -0
- package/dist/test/cli/profile/ls.test.js +93 -0
- package/dist/test/cli/profile/mark-use.test.d.ts +1 -0
- package/dist/test/cli/profile/mark-use.test.js +216 -0
- package/dist/test/cli/project-crud.test.d.ts +1 -0
- package/dist/test/cli/project-crud.test.js +315 -0
- package/dist/test/cli/render/lexical.test.d.ts +1 -0
- package/dist/test/cli/render/lexical.test.js +216 -0
- package/dist/test/cli/render/markdown.test.d.ts +1 -0
- package/dist/test/cli/render/markdown.test.js +39 -0
- package/dist/test/cli/snippet-crud.test.d.ts +1 -0
- package/dist/test/cli/snippet-crud.test.js +293 -0
- package/dist/test/cli/topic/topic.test.d.ts +1 -0
- package/dist/test/cli/topic/topic.test.js +181 -0
- package/dist/test/cli/update.test.d.ts +1 -0
- package/dist/test/cli/update.test.js +395 -0
- package/dist/test/domain/content-spec.test.d.ts +1 -0
- package/dist/test/domain/content-spec.test.js +126 -0
- package/dist/test/domain/envelope-compat.test.d.ts +1 -0
- package/dist/test/domain/envelope-compat.test.js +126 -0
- package/dist/test/domain/envelope.test.d.ts +1 -0
- package/dist/test/domain/envelope.test.js +149 -0
- package/dist/test/domain/errors.test.d.ts +1 -0
- package/dist/test/domain/errors.test.js +127 -0
- package/dist/test/domain/gate.test.d.ts +1 -0
- package/dist/test/domain/gate.test.js +128 -0
- package/dist/test/domain/payload.test.d.ts +1 -0
- package/dist/test/domain/payload.test.js +259 -0
- package/dist/test/helper/test-fs.d.ts +24 -0
- package/dist/test/helper/test-fs.js +161 -0
- package/dist/test/helper/test-http.d.ts +31 -0
- package/dist/test/helper/test-http.js +66 -0
- package/dist/test/integration/_helpers.d.ts +5 -0
- package/dist/test/integration/_helpers.js +24 -0
- package/dist/test/integration/cli-error-envelope.test.d.ts +1 -0
- package/dist/test/integration/cli-error-envelope.test.js +137 -0
- package/dist/test/integration/cli-help-render.test.d.ts +1 -0
- package/dist/test/integration/cli-help-render.test.js +149 -0
- package/dist/test/integration/cli-help.test.d.ts +1 -0
- package/dist/test/integration/cli-help.test.js +67 -0
- package/dist/test/integration/cli-post-list.test.d.ts +1 -0
- package/dist/test/integration/cli-post-list.test.js +140 -0
- package/dist/test/integration/cli-skill.test.d.ts +1 -0
- package/dist/test/integration/cli-skill.test.js +74 -0
- package/dist/test/integration/cli-version.test.d.ts +1 -0
- package/dist/test/integration/cli-version.test.js +37 -0
- package/dist/test/services/Api.test.d.ts +1 -0
- package/dist/test/services/Api.test.js +553 -0
- package/dist/test/services/Auth.test.d.ts +1 -0
- package/dist/test/services/Auth.test.js +650 -0
- package/dist/test/services/Config.test.d.ts +1 -0
- package/dist/test/services/Config.test.js +510 -0
- package/dist/test/services/Datetime.test.d.ts +1 -0
- package/dist/test/services/Datetime.test.js +113 -0
- package/dist/test/services/Editor.test.d.ts +1 -0
- package/dist/test/services/Editor.test.js +205 -0
- package/dist/test/services/Lexical.errors.test.d.ts +1 -0
- package/dist/test/services/Lexical.errors.test.js +60 -0
- package/dist/test/services/Lexical.test.d.ts +1 -0
- package/dist/test/services/Lexical.test.js +68 -0
- package/dist/test/services/Migration.test.d.ts +1 -0
- package/dist/test/services/Migration.test.js +376 -0
- package/dist/test/services/Profile.test.d.ts +1 -0
- package/dist/test/services/Profile.test.js +277 -0
- package/dist/test/services/Renderer.test.d.ts +1 -0
- package/dist/test/services/Renderer.test.js +538 -0
- package/dist/test/services/Resolver.test.d.ts +1 -0
- package/dist/test/services/Resolver.test.js +320 -0
- package/dist/test/services/Skill.test.d.ts +1 -0
- package/dist/test/services/Skill.test.js +261 -0
- package/dist/test/services/UpdateNotifier.spawn.test.d.ts +1 -0
- package/dist/test/services/UpdateNotifier.spawn.test.js +73 -0
- package/dist/test/services/UpdateNotifier.test.d.ts +1 -0
- package/dist/test/services/UpdateNotifier.test.js +912 -0
- package/dist/vendor/litexml/cli.mjs +2481 -2561
- package/dist/vendor/litexml/litexml-html-preview-client.css +178 -60
- package/dist/vendor/litexml/litexml-html-preview-client.js +9950 -8762
- package/dist/vendor/litexml/style.css +11 -7
- package/package.json +23 -21
- package/skills/commands-ai.md +45 -12
- package/skills/overview.md +1 -1
- package/skills/safety.md +1 -1
- package/dist/esm-CH7CrOvh.mjs +0 -2
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
/**
|
|
3
|
+
* Wire-format error envelope emitted by `Renderer.emitError` (and consumed
|
|
4
|
+
* by tests as a regression oracle). Mirrors `MxsError.toJSON()` from the
|
|
5
|
+
* v0.2.x core, plus the `tagToCode` table in `domain/errors.ts`.
|
|
6
|
+
*/
|
|
7
|
+
export const ErrorEnvelopeSchema = Schema.Struct({
|
|
8
|
+
ok: Schema.Literal(false),
|
|
9
|
+
code: Schema.String,
|
|
10
|
+
message: Schema.String,
|
|
11
|
+
details: Schema.optional(Schema.Unknown),
|
|
12
|
+
hint: Schema.optional(Schema.String),
|
|
13
|
+
});
|
|
14
|
+
/**
|
|
15
|
+
* Server-side pagination block. mx-core servers emit `page/size/total` —
|
|
16
|
+
* the CLI also accepts the legacy aliases (`currentPage`/`pageSize`/
|
|
17
|
+
* `totalCount`) for back-compat with old fixtures.
|
|
18
|
+
*/
|
|
19
|
+
export const PaginationSchema = Schema.Struct({
|
|
20
|
+
page: Schema.optional(Schema.Number),
|
|
21
|
+
size: Schema.optional(Schema.Number),
|
|
22
|
+
total: Schema.optional(Schema.Number),
|
|
23
|
+
totalPage: Schema.optional(Schema.Number),
|
|
24
|
+
currentPage: Schema.optional(Schema.Number),
|
|
25
|
+
pageSize: Schema.optional(Schema.Number),
|
|
26
|
+
totalCount: Schema.optional(Schema.Number),
|
|
27
|
+
});
|
|
28
|
+
/**
|
|
29
|
+
* `{ data, pagination }` envelope — produced by paginator-decorated
|
|
30
|
+
* controllers in mx-core (`ResponseInterceptor`).
|
|
31
|
+
*/
|
|
32
|
+
export const paginatedEnvelopeSchema = (item) => Schema.Struct({
|
|
33
|
+
data: Schema.Array(item),
|
|
34
|
+
pagination: Schema.optional(PaginationSchema),
|
|
35
|
+
});
|
|
36
|
+
/**
|
|
37
|
+
* `{ data: [...] }` envelope — produced by array responses without
|
|
38
|
+
* paginator decoration.
|
|
39
|
+
*/
|
|
40
|
+
export const dataArrayEnvelopeSchema = (item) => Schema.Struct({
|
|
41
|
+
data: Schema.Array(item),
|
|
42
|
+
});
|
|
43
|
+
/**
|
|
44
|
+
* Common server error body shape — used to extract the human `message`
|
|
45
|
+
* when mapping non-2xx responses to `TaggedError`s.
|
|
46
|
+
*/
|
|
47
|
+
export const ServerErrorBodySchema = Schema.Struct({
|
|
48
|
+
message: Schema.optional(Schema.Union(Schema.String, Schema.Array(Schema.String))),
|
|
49
|
+
code: Schema.optional(Schema.String),
|
|
50
|
+
details: Schema.optional(Schema.Unknown),
|
|
51
|
+
});
|
|
52
|
+
/**
|
|
53
|
+
* Extract a flattened `message` string from an arbitrary error body,
|
|
54
|
+
* matching the legacy `extractMessage` helper in `api-client.ts`.
|
|
55
|
+
*/
|
|
56
|
+
export const extractServerMessage = (body) => {
|
|
57
|
+
if (!body || typeof body !== 'object')
|
|
58
|
+
return null;
|
|
59
|
+
const msg = body.message;
|
|
60
|
+
if (typeof msg === 'string')
|
|
61
|
+
return msg;
|
|
62
|
+
if (Array.isArray(msg) && typeof msg[0] === 'string')
|
|
63
|
+
return msg.join('; ');
|
|
64
|
+
return null;
|
|
65
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
export declare const CategoryTypeSchema: Schema.Union<[Schema.Literal<[0, 1]>, Schema.Literal<["0", "1"]>]>;
|
|
3
|
+
export declare const CategorySchema: Schema.Struct<{
|
|
4
|
+
id: typeof Schema.String;
|
|
5
|
+
slug: typeof Schema.String;
|
|
6
|
+
name: typeof Schema.String;
|
|
7
|
+
createdAt: Schema.optional<typeof Schema.Any>;
|
|
8
|
+
type: Schema.optional<typeof Schema.Any>;
|
|
9
|
+
count: Schema.optional<typeof Schema.Any>;
|
|
10
|
+
}>;
|
|
11
|
+
export type Category = Schema.Schema.Type<typeof CategorySchema>;
|
|
12
|
+
export declare const CategoryListResponse: Schema.Struct<{
|
|
13
|
+
data: Schema.Array$<Schema.Struct<{
|
|
14
|
+
id: typeof Schema.String;
|
|
15
|
+
slug: typeof Schema.String;
|
|
16
|
+
name: typeof Schema.String;
|
|
17
|
+
createdAt: Schema.optional<typeof Schema.Any>;
|
|
18
|
+
type: Schema.optional<typeof Schema.Any>;
|
|
19
|
+
count: Schema.optional<typeof Schema.Any>;
|
|
20
|
+
}>>;
|
|
21
|
+
pagination: Schema.optional<typeof Schema.Any>;
|
|
22
|
+
}>;
|
|
23
|
+
export type CategoryListResponse = Schema.Schema.Type<typeof CategoryListResponse>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
// CategoryType enum mirrors `@mx-space/api-client` `CategoryType` (0 = category, 1 = tag).
|
|
3
|
+
// We accept either numeric or string forms because legacy responses occasionally
|
|
4
|
+
// stringify the value.
|
|
5
|
+
export const CategoryTypeSchema = Schema.Union(Schema.Literal(0, 1), Schema.Literal('0', '1'));
|
|
6
|
+
export const CategorySchema = Schema.Struct({
|
|
7
|
+
id: Schema.String,
|
|
8
|
+
slug: Schema.String,
|
|
9
|
+
name: Schema.String,
|
|
10
|
+
// Unknown / loosely typed fields — kept as `Any` so server-side additions
|
|
11
|
+
// don't break decoding. Critical fields above are strictly typed.
|
|
12
|
+
createdAt: Schema.optional(Schema.Any),
|
|
13
|
+
type: Schema.optional(Schema.Any),
|
|
14
|
+
count: Schema.optional(Schema.Any),
|
|
15
|
+
});
|
|
16
|
+
export const CategoryListResponse = Schema.Struct({
|
|
17
|
+
data: Schema.Array(CategorySchema),
|
|
18
|
+
pagination: Schema.optional(Schema.Any),
|
|
19
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
export declare const ProfileConfigSchema: Schema.Struct<{
|
|
3
|
+
api_url: Schema.optional<typeof Schema.String>;
|
|
4
|
+
api_version: Schema.optional<typeof Schema.Number>;
|
|
5
|
+
production: Schema.optional<typeof Schema.Boolean>;
|
|
6
|
+
}>;
|
|
7
|
+
export type ProfileConfig = Schema.Schema.Type<typeof ProfileConfigSchema>;
|
|
8
|
+
export declare const LegacyConfigSchema: Schema.Struct<{
|
|
9
|
+
api_url: Schema.optional<typeof Schema.String>;
|
|
10
|
+
api_version: Schema.optional<typeof Schema.Number>;
|
|
11
|
+
production: Schema.optional<typeof Schema.Boolean>;
|
|
12
|
+
}>;
|
|
13
|
+
export type LegacyConfig = ProfileConfig;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
// ---------------------------------------------------------------------------
|
|
3
|
+
// Profile config schema — matches `~/.config/mxs/profiles/<name>/config.json`.
|
|
4
|
+
//
|
|
5
|
+
// `production` is optional and only present when explicitly marked. Legacy
|
|
6
|
+
// fields (`api_base`, `auth_base`, `client_id`) are tolerated on read by
|
|
7
|
+
// stripping them before decoding — see `stripLegacyConfigFields` in
|
|
8
|
+
// `services/Config.ts`.
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
export const ProfileConfigSchema = Schema.Struct({
|
|
11
|
+
api_url: Schema.optional(Schema.String),
|
|
12
|
+
api_version: Schema.optional(Schema.Number),
|
|
13
|
+
production: Schema.optional(Schema.Boolean),
|
|
14
|
+
});
|
|
15
|
+
// Top-level `~/.config/mxs/config.json` is identical in shape today (it only
|
|
16
|
+
// exists in the legacy single-profile layout). We re-export the same schema
|
|
17
|
+
// under a distinct name to keep call sites self-documenting.
|
|
18
|
+
export const LegacyConfigSchema = ProfileConfigSchema;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
export declare const NoteSchema: Schema.Struct<{
|
|
3
|
+
id: typeof Schema.String;
|
|
4
|
+
title: typeof Schema.String;
|
|
5
|
+
nid: Schema.optional<typeof Schema.Any>;
|
|
6
|
+
slug: Schema.optional<typeof Schema.Any>;
|
|
7
|
+
text: Schema.optional<typeof Schema.Any>;
|
|
8
|
+
content: Schema.optional<typeof Schema.Any>;
|
|
9
|
+
contentFormat: Schema.optional<typeof Schema.Any>;
|
|
10
|
+
isPublished: Schema.optional<typeof Schema.Any>;
|
|
11
|
+
hasPassword: Schema.optional<typeof Schema.Any>;
|
|
12
|
+
publicAt: Schema.optional<typeof Schema.Any>;
|
|
13
|
+
mood: Schema.optional<typeof Schema.Any>;
|
|
14
|
+
weather: Schema.optional<typeof Schema.Any>;
|
|
15
|
+
bookmark: Schema.optional<typeof Schema.Any>;
|
|
16
|
+
location: Schema.optional<typeof Schema.Any>;
|
|
17
|
+
coordinates: Schema.optional<typeof Schema.Any>;
|
|
18
|
+
topicId: Schema.optional<typeof Schema.Any>;
|
|
19
|
+
topic: Schema.optional<Schema.Union<[Schema.Struct<{
|
|
20
|
+
id: typeof Schema.String;
|
|
21
|
+
name: typeof Schema.String;
|
|
22
|
+
slug: typeof Schema.String;
|
|
23
|
+
description: Schema.optional<typeof Schema.Any>;
|
|
24
|
+
introduce: Schema.optional<typeof Schema.Any>;
|
|
25
|
+
icon: Schema.optional<typeof Schema.Any>;
|
|
26
|
+
createdAt: Schema.optional<typeof Schema.Any>;
|
|
27
|
+
}>, typeof Schema.Null]>>;
|
|
28
|
+
summary: Schema.optional<typeof Schema.Any>;
|
|
29
|
+
meta: Schema.optional<typeof Schema.Any>;
|
|
30
|
+
images: Schema.optional<typeof Schema.Any>;
|
|
31
|
+
readCount: Schema.optional<typeof Schema.Any>;
|
|
32
|
+
likeCount: Schema.optional<typeof Schema.Any>;
|
|
33
|
+
createdAt: Schema.optional<typeof Schema.Any>;
|
|
34
|
+
modifiedAt: Schema.optional<typeof Schema.Any>;
|
|
35
|
+
enrichments: Schema.optional<typeof Schema.Any>;
|
|
36
|
+
}>;
|
|
37
|
+
export type Note = Schema.Schema.Type<typeof NoteSchema>;
|
|
38
|
+
export declare const NoteListResponse: Schema.Struct<{
|
|
39
|
+
data: Schema.Array$<Schema.Struct<{
|
|
40
|
+
id: typeof Schema.String;
|
|
41
|
+
title: typeof Schema.String;
|
|
42
|
+
nid: Schema.optional<typeof Schema.Any>;
|
|
43
|
+
slug: Schema.optional<typeof Schema.Any>;
|
|
44
|
+
text: Schema.optional<typeof Schema.Any>;
|
|
45
|
+
content: Schema.optional<typeof Schema.Any>;
|
|
46
|
+
contentFormat: Schema.optional<typeof Schema.Any>;
|
|
47
|
+
isPublished: Schema.optional<typeof Schema.Any>;
|
|
48
|
+
hasPassword: Schema.optional<typeof Schema.Any>;
|
|
49
|
+
publicAt: Schema.optional<typeof Schema.Any>;
|
|
50
|
+
mood: Schema.optional<typeof Schema.Any>;
|
|
51
|
+
weather: Schema.optional<typeof Schema.Any>;
|
|
52
|
+
bookmark: Schema.optional<typeof Schema.Any>;
|
|
53
|
+
location: Schema.optional<typeof Schema.Any>;
|
|
54
|
+
coordinates: Schema.optional<typeof Schema.Any>;
|
|
55
|
+
topicId: Schema.optional<typeof Schema.Any>;
|
|
56
|
+
topic: Schema.optional<Schema.Union<[Schema.Struct<{
|
|
57
|
+
id: typeof Schema.String;
|
|
58
|
+
name: typeof Schema.String;
|
|
59
|
+
slug: typeof Schema.String;
|
|
60
|
+
description: Schema.optional<typeof Schema.Any>;
|
|
61
|
+
introduce: Schema.optional<typeof Schema.Any>;
|
|
62
|
+
icon: Schema.optional<typeof Schema.Any>;
|
|
63
|
+
createdAt: Schema.optional<typeof Schema.Any>;
|
|
64
|
+
}>, typeof Schema.Null]>>;
|
|
65
|
+
summary: Schema.optional<typeof Schema.Any>;
|
|
66
|
+
meta: Schema.optional<typeof Schema.Any>;
|
|
67
|
+
images: Schema.optional<typeof Schema.Any>;
|
|
68
|
+
readCount: Schema.optional<typeof Schema.Any>;
|
|
69
|
+
likeCount: Schema.optional<typeof Schema.Any>;
|
|
70
|
+
createdAt: Schema.optional<typeof Schema.Any>;
|
|
71
|
+
modifiedAt: Schema.optional<typeof Schema.Any>;
|
|
72
|
+
enrichments: Schema.optional<typeof Schema.Any>;
|
|
73
|
+
}>>;
|
|
74
|
+
pagination: Schema.optional<typeof Schema.Any>;
|
|
75
|
+
}>;
|
|
76
|
+
export type NoteListResponse = Schema.Schema.Type<typeof NoteListResponse>;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
import { TopicSchema } from './topic';
|
|
3
|
+
export const NoteSchema = Schema.Struct({
|
|
4
|
+
id: Schema.String,
|
|
5
|
+
title: Schema.String,
|
|
6
|
+
// `nid` is required by api-client but stays loose so legacy / older
|
|
7
|
+
// payloads decode cleanly.
|
|
8
|
+
nid: Schema.optional(Schema.Any),
|
|
9
|
+
slug: Schema.optional(Schema.Any),
|
|
10
|
+
text: Schema.optional(Schema.Any),
|
|
11
|
+
content: Schema.optional(Schema.Any),
|
|
12
|
+
contentFormat: Schema.optional(Schema.Any),
|
|
13
|
+
isPublished: Schema.optional(Schema.Any),
|
|
14
|
+
hasPassword: Schema.optional(Schema.Any),
|
|
15
|
+
publicAt: Schema.optional(Schema.Any),
|
|
16
|
+
mood: Schema.optional(Schema.Any),
|
|
17
|
+
weather: Schema.optional(Schema.Any),
|
|
18
|
+
bookmark: Schema.optional(Schema.Any),
|
|
19
|
+
location: Schema.optional(Schema.Any),
|
|
20
|
+
coordinates: Schema.optional(Schema.Any),
|
|
21
|
+
topicId: Schema.optional(Schema.Any),
|
|
22
|
+
topic: Schema.optional(Schema.Union(TopicSchema, Schema.Null)),
|
|
23
|
+
summary: Schema.optional(Schema.Any),
|
|
24
|
+
meta: Schema.optional(Schema.Any),
|
|
25
|
+
images: Schema.optional(Schema.Any),
|
|
26
|
+
readCount: Schema.optional(Schema.Any),
|
|
27
|
+
likeCount: Schema.optional(Schema.Any),
|
|
28
|
+
createdAt: Schema.optional(Schema.Any),
|
|
29
|
+
modifiedAt: Schema.optional(Schema.Any),
|
|
30
|
+
enrichments: Schema.optional(Schema.Any),
|
|
31
|
+
});
|
|
32
|
+
export const NoteListResponse = Schema.Struct({
|
|
33
|
+
data: Schema.Array(NoteSchema),
|
|
34
|
+
pagination: Schema.optional(Schema.Any),
|
|
35
|
+
});
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
export declare const PageSchema: Schema.Struct<{
|
|
3
|
+
id: typeof Schema.String;
|
|
4
|
+
title: typeof Schema.String;
|
|
5
|
+
slug: typeof Schema.String;
|
|
6
|
+
subtitle: Schema.optional<typeof Schema.Any>;
|
|
7
|
+
text: Schema.optional<typeof Schema.Any>;
|
|
8
|
+
content: Schema.optional<typeof Schema.Any>;
|
|
9
|
+
contentFormat: Schema.optional<typeof Schema.Any>;
|
|
10
|
+
order: Schema.optional<typeof Schema.Any>;
|
|
11
|
+
type: Schema.optional<typeof Schema.Any>;
|
|
12
|
+
options: Schema.optional<typeof Schema.Any>;
|
|
13
|
+
meta: Schema.optional<typeof Schema.Any>;
|
|
14
|
+
images: Schema.optional<typeof Schema.Any>;
|
|
15
|
+
createdAt: Schema.optional<typeof Schema.Any>;
|
|
16
|
+
modifiedAt: Schema.optional<typeof Schema.Any>;
|
|
17
|
+
enrichments: Schema.optional<typeof Schema.Any>;
|
|
18
|
+
}>;
|
|
19
|
+
export type Page = Schema.Schema.Type<typeof PageSchema>;
|
|
20
|
+
export declare const PageListResponse: Schema.Struct<{
|
|
21
|
+
data: Schema.Array$<Schema.Struct<{
|
|
22
|
+
id: typeof Schema.String;
|
|
23
|
+
title: typeof Schema.String;
|
|
24
|
+
slug: typeof Schema.String;
|
|
25
|
+
subtitle: Schema.optional<typeof Schema.Any>;
|
|
26
|
+
text: Schema.optional<typeof Schema.Any>;
|
|
27
|
+
content: Schema.optional<typeof Schema.Any>;
|
|
28
|
+
contentFormat: Schema.optional<typeof Schema.Any>;
|
|
29
|
+
order: Schema.optional<typeof Schema.Any>;
|
|
30
|
+
type: Schema.optional<typeof Schema.Any>;
|
|
31
|
+
options: Schema.optional<typeof Schema.Any>;
|
|
32
|
+
meta: Schema.optional<typeof Schema.Any>;
|
|
33
|
+
images: Schema.optional<typeof Schema.Any>;
|
|
34
|
+
createdAt: Schema.optional<typeof Schema.Any>;
|
|
35
|
+
modifiedAt: Schema.optional<typeof Schema.Any>;
|
|
36
|
+
enrichments: Schema.optional<typeof Schema.Any>;
|
|
37
|
+
}>>;
|
|
38
|
+
pagination: Schema.optional<typeof Schema.Any>;
|
|
39
|
+
}>;
|
|
40
|
+
export type PageListResponse = Schema.Schema.Type<typeof PageListResponse>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
export const PageSchema = Schema.Struct({
|
|
3
|
+
id: Schema.String,
|
|
4
|
+
title: Schema.String,
|
|
5
|
+
slug: Schema.String,
|
|
6
|
+
subtitle: Schema.optional(Schema.Any),
|
|
7
|
+
text: Schema.optional(Schema.Any),
|
|
8
|
+
content: Schema.optional(Schema.Any),
|
|
9
|
+
contentFormat: Schema.optional(Schema.Any),
|
|
10
|
+
order: Schema.optional(Schema.Any),
|
|
11
|
+
type: Schema.optional(Schema.Any),
|
|
12
|
+
options: Schema.optional(Schema.Any),
|
|
13
|
+
meta: Schema.optional(Schema.Any),
|
|
14
|
+
images: Schema.optional(Schema.Any),
|
|
15
|
+
createdAt: Schema.optional(Schema.Any),
|
|
16
|
+
modifiedAt: Schema.optional(Schema.Any),
|
|
17
|
+
enrichments: Schema.optional(Schema.Any),
|
|
18
|
+
});
|
|
19
|
+
export const PageListResponse = Schema.Struct({
|
|
20
|
+
data: Schema.Array(PageSchema),
|
|
21
|
+
pagination: Schema.optional(Schema.Any),
|
|
22
|
+
});
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
export declare const PostSchema: Schema.Struct<{
|
|
3
|
+
id: typeof Schema.String;
|
|
4
|
+
title: typeof Schema.String;
|
|
5
|
+
slug: typeof Schema.String;
|
|
6
|
+
text: Schema.optional<typeof Schema.Any>;
|
|
7
|
+
content: Schema.optional<typeof Schema.Any>;
|
|
8
|
+
contentFormat: Schema.optional<typeof Schema.Any>;
|
|
9
|
+
summary: Schema.optional<typeof Schema.Any>;
|
|
10
|
+
copyright: Schema.optional<typeof Schema.Any>;
|
|
11
|
+
tags: Schema.optional<typeof Schema.Any>;
|
|
12
|
+
isPublished: Schema.optional<typeof Schema.Any>;
|
|
13
|
+
pinAt: Schema.optional<typeof Schema.Any>;
|
|
14
|
+
pinOrder: Schema.optional<typeof Schema.Any>;
|
|
15
|
+
categoryId: Schema.optional<typeof Schema.Any>;
|
|
16
|
+
category: Schema.optional<Schema.Struct<{
|
|
17
|
+
id: typeof Schema.String;
|
|
18
|
+
slug: typeof Schema.String;
|
|
19
|
+
name: typeof Schema.String;
|
|
20
|
+
createdAt: Schema.optional<typeof Schema.Any>;
|
|
21
|
+
type: Schema.optional<typeof Schema.Any>;
|
|
22
|
+
count: Schema.optional<typeof Schema.Any>;
|
|
23
|
+
}>>;
|
|
24
|
+
meta: Schema.optional<typeof Schema.Any>;
|
|
25
|
+
images: Schema.optional<typeof Schema.Any>;
|
|
26
|
+
readCount: Schema.optional<typeof Schema.Any>;
|
|
27
|
+
likeCount: Schema.optional<typeof Schema.Any>;
|
|
28
|
+
createdAt: Schema.optional<typeof Schema.Any>;
|
|
29
|
+
modifiedAt: Schema.optional<typeof Schema.Any>;
|
|
30
|
+
related: Schema.optional<typeof Schema.Any>;
|
|
31
|
+
enrichments: Schema.optional<typeof Schema.Any>;
|
|
32
|
+
}>;
|
|
33
|
+
export type Post = Schema.Schema.Type<typeof PostSchema>;
|
|
34
|
+
export declare const PostListResponse: Schema.Struct<{
|
|
35
|
+
data: Schema.Array$<Schema.Struct<{
|
|
36
|
+
id: typeof Schema.String;
|
|
37
|
+
title: typeof Schema.String;
|
|
38
|
+
slug: typeof Schema.String;
|
|
39
|
+
text: Schema.optional<typeof Schema.Any>;
|
|
40
|
+
content: Schema.optional<typeof Schema.Any>;
|
|
41
|
+
contentFormat: Schema.optional<typeof Schema.Any>;
|
|
42
|
+
summary: Schema.optional<typeof Schema.Any>;
|
|
43
|
+
copyright: Schema.optional<typeof Schema.Any>;
|
|
44
|
+
tags: Schema.optional<typeof Schema.Any>;
|
|
45
|
+
isPublished: Schema.optional<typeof Schema.Any>;
|
|
46
|
+
pinAt: Schema.optional<typeof Schema.Any>;
|
|
47
|
+
pinOrder: Schema.optional<typeof Schema.Any>;
|
|
48
|
+
categoryId: Schema.optional<typeof Schema.Any>;
|
|
49
|
+
category: Schema.optional<Schema.Struct<{
|
|
50
|
+
id: typeof Schema.String;
|
|
51
|
+
slug: typeof Schema.String;
|
|
52
|
+
name: typeof Schema.String;
|
|
53
|
+
createdAt: Schema.optional<typeof Schema.Any>;
|
|
54
|
+
type: Schema.optional<typeof Schema.Any>;
|
|
55
|
+
count: Schema.optional<typeof Schema.Any>;
|
|
56
|
+
}>>;
|
|
57
|
+
meta: Schema.optional<typeof Schema.Any>;
|
|
58
|
+
images: Schema.optional<typeof Schema.Any>;
|
|
59
|
+
readCount: Schema.optional<typeof Schema.Any>;
|
|
60
|
+
likeCount: Schema.optional<typeof Schema.Any>;
|
|
61
|
+
createdAt: Schema.optional<typeof Schema.Any>;
|
|
62
|
+
modifiedAt: Schema.optional<typeof Schema.Any>;
|
|
63
|
+
related: Schema.optional<typeof Schema.Any>;
|
|
64
|
+
enrichments: Schema.optional<typeof Schema.Any>;
|
|
65
|
+
}>>;
|
|
66
|
+
pagination: Schema.optional<typeof Schema.Any>;
|
|
67
|
+
}>;
|
|
68
|
+
export type PostListResponse = Schema.Schema.Type<typeof PostListResponse>;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
import { CategorySchema } from './category';
|
|
3
|
+
// Strictly typed: `id`, `title`, `slug` are the fields the CLI surfaces in
|
|
4
|
+
// every output mode (`readable`, `llm`, `envelope`). Everything else is left
|
|
5
|
+
// as `Schema.Any` so server-side additions (new flags, enrichments, etc.) do
|
|
6
|
+
// not break decoding.
|
|
7
|
+
export const PostSchema = Schema.Struct({
|
|
8
|
+
id: Schema.String,
|
|
9
|
+
title: Schema.String,
|
|
10
|
+
slug: Schema.String,
|
|
11
|
+
// Optional / loose typed fields
|
|
12
|
+
text: Schema.optional(Schema.Any),
|
|
13
|
+
content: Schema.optional(Schema.Any),
|
|
14
|
+
contentFormat: Schema.optional(Schema.Any),
|
|
15
|
+
summary: Schema.optional(Schema.Any),
|
|
16
|
+
copyright: Schema.optional(Schema.Any),
|
|
17
|
+
tags: Schema.optional(Schema.Any),
|
|
18
|
+
isPublished: Schema.optional(Schema.Any),
|
|
19
|
+
pinAt: Schema.optional(Schema.Any),
|
|
20
|
+
pinOrder: Schema.optional(Schema.Any),
|
|
21
|
+
categoryId: Schema.optional(Schema.Any),
|
|
22
|
+
category: Schema.optional(CategorySchema),
|
|
23
|
+
meta: Schema.optional(Schema.Any),
|
|
24
|
+
images: Schema.optional(Schema.Any),
|
|
25
|
+
readCount: Schema.optional(Schema.Any),
|
|
26
|
+
likeCount: Schema.optional(Schema.Any),
|
|
27
|
+
createdAt: Schema.optional(Schema.Any),
|
|
28
|
+
modifiedAt: Schema.optional(Schema.Any),
|
|
29
|
+
related: Schema.optional(Schema.Any),
|
|
30
|
+
enrichments: Schema.optional(Schema.Any),
|
|
31
|
+
});
|
|
32
|
+
export const PostListResponse = Schema.Struct({
|
|
33
|
+
data: Schema.Array(PostSchema),
|
|
34
|
+
pagination: Schema.optional(Schema.Any),
|
|
35
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
export declare const ProfileCredentialsSchema: Schema.Struct<{
|
|
3
|
+
access_token: typeof Schema.String;
|
|
4
|
+
refresh_token: Schema.optional<typeof Schema.String>;
|
|
5
|
+
expires_at: typeof Schema.Number;
|
|
6
|
+
user: Schema.optional<Schema.Struct<{
|
|
7
|
+
id: Schema.optional<typeof Schema.String>;
|
|
8
|
+
email: Schema.optional<typeof Schema.String>;
|
|
9
|
+
name: Schema.optional<typeof Schema.String>;
|
|
10
|
+
}>>;
|
|
11
|
+
}>;
|
|
12
|
+
export type ProfileCredentials = Schema.Schema.Type<typeof ProfileCredentialsSchema>;
|
|
13
|
+
export declare const ProfileNameSchema: Schema.filter<Schema.filter<typeof Schema.String>>;
|
|
14
|
+
export type ProfileName = Schema.Schema.Type<typeof ProfileNameSchema>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
// ---------------------------------------------------------------------------
|
|
3
|
+
// Profile credentials schema — matches
|
|
4
|
+
// `~/.config/mxs/profiles/<name>/credentials.json`.
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
const ProfileUserSchema = Schema.Struct({
|
|
7
|
+
id: Schema.optional(Schema.String),
|
|
8
|
+
email: Schema.optional(Schema.String),
|
|
9
|
+
name: Schema.optional(Schema.String),
|
|
10
|
+
});
|
|
11
|
+
export const ProfileCredentialsSchema = Schema.Struct({
|
|
12
|
+
access_token: Schema.String,
|
|
13
|
+
refresh_token: Schema.optional(Schema.String),
|
|
14
|
+
expires_at: Schema.Number,
|
|
15
|
+
user: Schema.optional(ProfileUserSchema),
|
|
16
|
+
});
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
// Profile name — `^[a-z0-9_-]{1,32}$`, excluding the reserved word `current`.
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
export const ProfileNameSchema = Schema.String.pipe(Schema.pattern(/^[\d_a-z-]{1,32}$/, {
|
|
21
|
+
message: () => 'profile name must match ^[a-z0-9_-]{1,32}$ and is case-sensitive',
|
|
22
|
+
}), Schema.filter((s) => (s === 'current' ? "'current' is reserved" : true)));
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
export declare const TopicSchema: Schema.Struct<{
|
|
3
|
+
id: typeof Schema.String;
|
|
4
|
+
name: typeof Schema.String;
|
|
5
|
+
slug: typeof Schema.String;
|
|
6
|
+
description: Schema.optional<typeof Schema.Any>;
|
|
7
|
+
introduce: Schema.optional<typeof Schema.Any>;
|
|
8
|
+
icon: Schema.optional<typeof Schema.Any>;
|
|
9
|
+
createdAt: Schema.optional<typeof Schema.Any>;
|
|
10
|
+
}>;
|
|
11
|
+
export type Topic = Schema.Schema.Type<typeof TopicSchema>;
|
|
12
|
+
export declare const TopicListResponse: Schema.Struct<{
|
|
13
|
+
data: Schema.Array$<Schema.Struct<{
|
|
14
|
+
id: typeof Schema.String;
|
|
15
|
+
name: typeof Schema.String;
|
|
16
|
+
slug: typeof Schema.String;
|
|
17
|
+
description: Schema.optional<typeof Schema.Any>;
|
|
18
|
+
introduce: Schema.optional<typeof Schema.Any>;
|
|
19
|
+
icon: Schema.optional<typeof Schema.Any>;
|
|
20
|
+
createdAt: Schema.optional<typeof Schema.Any>;
|
|
21
|
+
}>>;
|
|
22
|
+
pagination: Schema.optional<typeof Schema.Any>;
|
|
23
|
+
}>;
|
|
24
|
+
export type TopicListResponse = Schema.Schema.Type<typeof TopicListResponse>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
export const TopicSchema = Schema.Struct({
|
|
3
|
+
id: Schema.String,
|
|
4
|
+
name: Schema.String,
|
|
5
|
+
slug: Schema.String,
|
|
6
|
+
// Loose fields — mirror api-client `TopicModel` without forcing nullability
|
|
7
|
+
// shape since the wire payload occasionally omits them.
|
|
8
|
+
description: Schema.optional(Schema.Any),
|
|
9
|
+
introduce: Schema.optional(Schema.Any),
|
|
10
|
+
icon: Schema.optional(Schema.Any),
|
|
11
|
+
createdAt: Schema.optional(Schema.Any),
|
|
12
|
+
});
|
|
13
|
+
export const TopicListResponse = Schema.Struct({
|
|
14
|
+
data: Schema.Array(TopicSchema),
|
|
15
|
+
pagination: Schema.optional(Schema.Any),
|
|
16
|
+
});
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { release } from 'node:os';
|
|
2
|
+
export declare const CLI_VERSION: string;
|
|
3
|
+
/**
|
|
4
|
+
* RFC-7231-style User-Agent. Format:
|
|
5
|
+
* `mxs/<cli-version> (<os-platform> <os-arch>; node/<node-version>)`
|
|
6
|
+
*
|
|
7
|
+
* Example: `mxs/0.4.0 (darwin arm64; node/v22.22.2)`
|
|
8
|
+
*
|
|
9
|
+
* mx-core's spider guard whitelists any UA containing `mx-space`; this string
|
|
10
|
+
* does (`mxs` is the @mx-space/cli binary). Authenticated requests bypass the
|
|
11
|
+
* guard regardless of UA, but a well-formed UA helps server-side analytics
|
|
12
|
+
* tell agent traffic apart from human browser sessions.
|
|
13
|
+
*/
|
|
14
|
+
export declare const USER_AGENT: string;
|
|
15
|
+
export declare const HOST_KERNEL_RELEASE: typeof release;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';
|
|
2
|
+
import { arch, platform, release } from 'node:os';
|
|
3
|
+
// `import.meta.url` resolves to one of:
|
|
4
|
+
// `<root>/packages/cli/src/.../*.ts` (tsx, dev)
|
|
5
|
+
// `<root>/packages/cli/dist/*.mjs` (bundled)
|
|
6
|
+
// `<root>/packages/cli/dist/bin/*.mjs` (bin shim)
|
|
7
|
+
// Walk up until we find the @mx-space/cli package.json.
|
|
8
|
+
const requireFrom = createRequire(import.meta.url);
|
|
9
|
+
const resolveCliVersion = () => {
|
|
10
|
+
const candidates = [
|
|
11
|
+
'../package.json',
|
|
12
|
+
'../../package.json',
|
|
13
|
+
'../../../package.json',
|
|
14
|
+
];
|
|
15
|
+
for (const candidate of candidates) {
|
|
16
|
+
try {
|
|
17
|
+
const pkg = requireFrom(candidate);
|
|
18
|
+
if (pkg.name === '@mx-space/cli' && typeof pkg.version === 'string') {
|
|
19
|
+
return pkg.version;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
// try next candidate
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return '0.0.0-unknown';
|
|
27
|
+
};
|
|
28
|
+
export const CLI_VERSION = resolveCliVersion();
|
|
29
|
+
/**
|
|
30
|
+
* RFC-7231-style User-Agent. Format:
|
|
31
|
+
* `mxs/<cli-version> (<os-platform> <os-arch>; node/<node-version>)`
|
|
32
|
+
*
|
|
33
|
+
* Example: `mxs/0.4.0 (darwin arm64; node/v22.22.2)`
|
|
34
|
+
*
|
|
35
|
+
* mx-core's spider guard whitelists any UA containing `mx-space`; this string
|
|
36
|
+
* does (`mxs` is the @mx-space/cli binary). Authenticated requests bypass the
|
|
37
|
+
* guard regardless of UA, but a well-formed UA helps server-side analytics
|
|
38
|
+
* tell agent traffic apart from human browser sessions.
|
|
39
|
+
*/
|
|
40
|
+
export const USER_AGENT = `mxs/${CLI_VERSION} (${platform()} ${arch()}; node/${process.version}) @mx-space/cli`;
|
|
41
|
+
// `release()` is exposed for future enrichment (build/dist channel) — kept off
|
|
42
|
+
// the default UA to avoid leaking host detail unnecessarily.
|
|
43
|
+
export const HOST_KERNEL_RELEASE = release;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { run } from './bin/mxs';
|
|
2
|
+
export { type CliError, type CliErrorTag, codeForTag, defaultMessageFor, type ErrorEnvelope, exitCodeForError, exitCodeForTag, tagToCode, toErrorEnvelope, } from './domain/errors';
|
|
3
|
+
export { defaultGlobalFlags, type GlobalFlags, parseGlobalFlags, } from './domain/runtime-flags';
|
|
4
|
+
export type { OutputMode, OutputOptions } from './services/Renderer';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// Public surface for `@mx-space/cli`. The v0.3 rewrite is internal: most of
|
|
2
|
+
// what we exported in v0.2.x was structural plumbing that has since been
|
|
3
|
+
// replaced by Effect services. Downstream consumers that still want to
|
|
4
|
+
// programmatically drive the CLI use `run` below; everything else is
|
|
5
|
+
// available through the namespaced `domain/`, `services/`, `cli/` exports.
|
|
6
|
+
export { run } from './bin/mxs';
|
|
7
|
+
export { codeForTag, defaultMessageFor, exitCodeForError, exitCodeForTag, tagToCode, toErrorEnvelope, } from './domain/errors';
|
|
8
|
+
export { defaultGlobalFlags, parseGlobalFlags, } from './domain/runtime-flags';
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { FileSystem, HttpClient, Path } from '@effect/platform';
|
|
2
|
+
import { Layer } from 'effect';
|
|
3
|
+
import { Auth } from '../services/Auth';
|
|
4
|
+
import { Config } from '../services/Config';
|
|
5
|
+
import { Editor } from '../services/Editor';
|
|
6
|
+
import { Lexical } from '../services/Lexical';
|
|
7
|
+
import { Migration } from '../services/Migration';
|
|
8
|
+
import { Profile } from '../services/Profile';
|
|
9
|
+
import { Renderer } from '../services/Renderer';
|
|
10
|
+
import { Skill } from '../services/Skill';
|
|
11
|
+
import { UpdateNotifier } from '../services/UpdateNotifier';
|
|
12
|
+
/**
|
|
13
|
+
* Application-wide service layer — everything EXCEPT `Api` and `Resolver`,
|
|
14
|
+
* which depend on per-invocation global flags (`--api-url`, `--token`,
|
|
15
|
+
* `--api-key`, `--profile`, `--dry-run`, `--lang`) and must be constructed
|
|
16
|
+
* inside `bin/mxs.ts` after `parseGlobalFlags`.
|
|
17
|
+
*
|
|
18
|
+
* Internal dependencies are wired here so callers only need to provide the
|
|
19
|
+
* platform-level services: `FileSystem`, `Path`, `HttpClient`.
|
|
20
|
+
*
|
|
21
|
+
* Config ← FileSystem, Path
|
|
22
|
+
* Profile ← Config
|
|
23
|
+
* Migration ← Config, FileSystem
|
|
24
|
+
* Auth ← Config, HttpClient
|
|
25
|
+
* Editor ← FileSystem
|
|
26
|
+
* Renderer — pure
|
|
27
|
+
* Lexical — pure
|
|
28
|
+
* UpdateNotifier — pure
|
|
29
|
+
*/
|
|
30
|
+
export declare const AppLayer: Layer.Layer<Auth | Config | Editor | Lexical | Migration | Profile | Renderer | Skill | UpdateNotifier, never, FileSystem.FileSystem | HttpClient.HttpClient | Path.Path>;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Layer } from 'effect';
|
|
2
|
+
import { Auth } from '../services/Auth';
|
|
3
|
+
import { Config } from '../services/Config';
|
|
4
|
+
import { Editor } from '../services/Editor';
|
|
5
|
+
import { Lexical } from '../services/Lexical';
|
|
6
|
+
import { Migration } from '../services/Migration';
|
|
7
|
+
import { Profile } from '../services/Profile';
|
|
8
|
+
import { Renderer } from '../services/Renderer';
|
|
9
|
+
import { Skill } from '../services/Skill';
|
|
10
|
+
import { UpdateNotifier } from '../services/UpdateNotifier';
|
|
11
|
+
// NOTE: `Comment` depends on `Api`, so it is layered into the composition in
|
|
12
|
+
// `bin/mxs.ts` (alongside `Resolver`) — NOT here. Listing it would create a
|
|
13
|
+
// dependency on per-invocation flags. See `bin/mxs.ts#fullAppLayer`.
|
|
14
|
+
/**
|
|
15
|
+
* Application-wide service layer — everything EXCEPT `Api` and `Resolver`,
|
|
16
|
+
* which depend on per-invocation global flags (`--api-url`, `--token`,
|
|
17
|
+
* `--api-key`, `--profile`, `--dry-run`, `--lang`) and must be constructed
|
|
18
|
+
* inside `bin/mxs.ts` after `parseGlobalFlags`.
|
|
19
|
+
*
|
|
20
|
+
* Internal dependencies are wired here so callers only need to provide the
|
|
21
|
+
* platform-level services: `FileSystem`, `Path`, `HttpClient`.
|
|
22
|
+
*
|
|
23
|
+
* Config ← FileSystem, Path
|
|
24
|
+
* Profile ← Config
|
|
25
|
+
* Migration ← Config, FileSystem
|
|
26
|
+
* Auth ← Config, HttpClient
|
|
27
|
+
* Editor ← FileSystem
|
|
28
|
+
* Renderer — pure
|
|
29
|
+
* Lexical — pure
|
|
30
|
+
* UpdateNotifier — pure
|
|
31
|
+
*/
|
|
32
|
+
export const AppLayer = (() => {
|
|
33
|
+
const configLayer = Config.Default;
|
|
34
|
+
const profileLayer = Profile.Default.pipe(Layer.provide(configLayer));
|
|
35
|
+
const migrationLayer = Migration.Default.pipe(Layer.provide(configLayer));
|
|
36
|
+
const authLayer = Auth.Default.pipe(Layer.provide(configLayer));
|
|
37
|
+
const editorLayer = Editor.Default;
|
|
38
|
+
return Layer.mergeAll(configLayer, profileLayer, migrationLayer, authLayer, editorLayer, Renderer.Default, Lexical.Default, Skill.Default, UpdateNotifier.Default);
|
|
39
|
+
})();
|