@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,196 +0,0 @@
1
- import { eastAsianWidth } from 'get-east-asian-width';
2
- import { highlightCode } from './codehighlight';
3
- export const ANSI = {
4
- reset: '\x1B[0m',
5
- bold: '\x1B[1m',
6
- dim: '\x1B[2m',
7
- red: '\x1B[31m',
8
- green: '\x1B[32m',
9
- yellow: '\x1B[33m',
10
- blue: '\x1B[34m',
11
- magenta: '\x1B[35m',
12
- cyan: '\x1B[36m',
13
- };
14
- export const wrap = (code, text, on) => on ? `${code}${text}${ANSI.reset}` : text;
15
- export const visibleLen = (s) => {
16
- // eslint-disable-next-line no-control-regex
17
- const text = s.replaceAll(/\x1B\[[\d;]*m/g, '');
18
- let width = 0;
19
- for (const ch of text) {
20
- const cp = ch.codePointAt(0);
21
- if (cp !== undefined)
22
- width += eastAsianWidth(cp);
23
- }
24
- return width;
25
- };
26
- export const isColorEnabled = (stream) => {
27
- if (process.env.NO_COLOR && process.env.NO_COLOR !== '')
28
- return false;
29
- if (process.env.FORCE_COLOR && process.env.FORCE_COLOR !== '0')
30
- return true;
31
- return Boolean(stream.isTTY);
32
- };
33
- /**
34
- * Parse inline spans inside a single line of paragraph text.
35
- *
36
- * Order matters: we strip inline code spans first (so their contents are
37
- * never re-interpreted as bold), then bold.
38
- */
39
- const renderInline = (line, opts) => {
40
- // Inline code: `text`
41
- let out = line.replaceAll(/`([^`]+)`/g, (_m, inner) => wrap(ANSI.cyan, inner, opts.color));
42
- // Bold: **text**
43
- out = out.replaceAll(/\*\*([^*]+)\*\*/g, (_m, inner) => wrap(ANSI.bold, inner, opts.color));
44
- return out;
45
- };
46
- const parseTable = (source, start) => {
47
- // Header row must start with `|` and the next row must be the alignment row
48
- // matching the same pipe layout.
49
- if (start + 1 >= source.length)
50
- return null;
51
- const header = source[start];
52
- const sep = source[start + 1];
53
- if (!header.startsWith('|') || !sep.startsWith('|'))
54
- return null;
55
- // eslint-disable-next-line regexp/no-super-linear-backtracking, unicorn/better-regex -- separator-row regex; safe in practice (literal `|` anchors each cell)
56
- if (!/^(?:\|[ \t]*:?-+:?[ \t]*)+\|?[ \t]*$/.test(sep))
57
- return null;
58
- const splitRow = (row) => {
59
- const cells = row.split('|').map((c) => c.trim());
60
- // Strip leading/trailing empties created by the surrounding pipes.
61
- if (cells.length > 0 && cells[0] === '')
62
- cells.shift();
63
- if (cells.length > 0 && cells.at(-1) === '')
64
- cells.pop();
65
- return cells;
66
- };
67
- const rows = [{ cells: splitRow(header) }];
68
- let i = start + 2;
69
- while (i < source.length) {
70
- const row = source[i];
71
- if (!row.startsWith('|'))
72
- break;
73
- rows.push({ cells: splitRow(row) });
74
- i++;
75
- }
76
- return { rows, end: i };
77
- };
78
- const renderTable = (rows, opts) => {
79
- if (rows.length === 0)
80
- return '';
81
- // Render each cell through inline span parsing first so we can measure
82
- // visible width (post inline-styling, the ANSI sequences add no visible
83
- // width).
84
- const rendered = rows.map((r) => r.cells.map((c) => renderInline(c, opts)));
85
- const numCols = Math.max(...rendered.map((r) => r.length));
86
- const widths = [];
87
- for (let c = 0; c < numCols; c++) {
88
- let max = 0;
89
- for (const row of rendered) {
90
- const cell = row[c] ?? '';
91
- if (visibleLen(cell) > max)
92
- max = visibleLen(cell);
93
- }
94
- widths.push(max);
95
- }
96
- const padRight = (s, width) => {
97
- const visible = visibleLen(s);
98
- return visible < width ? s + ' '.repeat(width - visible) : s;
99
- };
100
- const lines = [];
101
- rendered.forEach((row, rowIdx) => {
102
- const cells = row.map((cell, idx) => padRight(cell, widths[idx]));
103
- if (rowIdx === 0) {
104
- // Header: bold the cells (text already styled via renderInline; wrap
105
- // the whole row in bold for emphasis).
106
- lines.push(' ' + cells.map((c) => wrap(ANSI.bold, c, opts.color)).join(' '));
107
- // Underline rule.
108
- lines.push(' ' +
109
- widths
110
- .map((w) => wrap(ANSI.dim, '-'.repeat(w), opts.color))
111
- .join(' '));
112
- }
113
- else {
114
- lines.push(' ' + cells.join(' '));
115
- }
116
- });
117
- return lines.join('\n');
118
- };
119
- const renderHeading = (level, text, opts) => {
120
- const styled = renderInline(text, opts);
121
- if (level === 1) {
122
- return wrap(`${ANSI.bold}${ANSI.magenta}`, styled, opts.color);
123
- }
124
- if (level === 2) {
125
- return wrap(`${ANSI.bold}${ANSI.yellow}`, styled.toUpperCase(), opts.color);
126
- }
127
- return wrap(ANSI.bold, styled, opts.color);
128
- };
129
- export const renderMarkdownToAnsi = (markdown, opts) => {
130
- const source = markdown.split('\n');
131
- const out = [];
132
- let i = 0;
133
- while (i < source.length) {
134
- const line = source[i];
135
- // Fenced code block.
136
- if (line.startsWith('```')) {
137
- const lang = line.slice(3).trim();
138
- i++;
139
- const code = [];
140
- while (i < source.length && !source[i].startsWith('```')) {
141
- code.push(source[i]);
142
- i++;
143
- }
144
- if (i < source.length)
145
- i++; // skip closing fence
146
- const highlighted = highlightCode(code.join('\n'), lang, opts.color);
147
- for (const c of highlighted.split('\n')) {
148
- out.push(' ' + c);
149
- }
150
- continue;
151
- }
152
- // Indented code (4 spaces).
153
- if (line.startsWith(' ')) {
154
- out.push(' ' + wrap(ANSI.cyan, line.slice(4), opts.color));
155
- i++;
156
- continue;
157
- }
158
- // Heading.
159
- const headingMatch = /^(#{1,6}) (.+)$/.exec(line);
160
- if (headingMatch) {
161
- const level = headingMatch[1].length;
162
- // Blank line before non-leading headings, for breathing room.
163
- if (out.length > 0 && out.at(-1) !== '')
164
- out.push('');
165
- out.push(renderHeading(level, headingMatch[2], opts));
166
- i++;
167
- continue;
168
- }
169
- // Table.
170
- if (line.startsWith('|')) {
171
- const parsed = parseTable(source, i);
172
- if (parsed) {
173
- out.push(renderTable(parsed.rows, opts));
174
- i = parsed.end;
175
- continue;
176
- }
177
- }
178
- // List item.
179
- if (/^[*-]\s+/.test(line)) {
180
- const rest = line.replace(/^[*-]\s+/, '');
181
- out.push(' • ' + renderInline(rest, opts));
182
- i++;
183
- continue;
184
- }
185
- // Blank line.
186
- if (line.trim() === '') {
187
- out.push('');
188
- i++;
189
- continue;
190
- }
191
- // Plain paragraph.
192
- out.push(renderInline(line, opts));
193
- i++;
194
- }
195
- return out.join('\n');
196
- };
@@ -1,14 +0,0 @@
1
- export interface MetadataBlockInput {
2
- readonly title?: string;
3
- /** Fallback heading when title is empty (e.g. kind label like 'post'). */
4
- readonly kind?: string;
5
- readonly fields: ReadonlyArray<readonly [string, unknown]>;
6
- /** Optional summary line shown dim below the field block. */
7
- readonly summary?: string;
8
- /** Body string. Routed through markdown renderer iff bodyFormat = 'markdown'. */
9
- readonly body?: string;
10
- readonly bodyFormat?: 'markdown' | 'litexml' | 'text';
11
- }
12
- export declare const renderMetadataBlock: (input: MetadataBlockInput, ctx: {
13
- readonly color: boolean;
14
- }) => string;
@@ -1,50 +0,0 @@
1
- import { formatScalar } from '../../services/Renderer/content';
2
- import { tryFormatTimestamp } from '../../services/Renderer/datetime';
3
- import { formatStateBadge, SEPARATOR_WIDTH } from './helpers';
4
- import { renderLexicalAnsi } from './lexical';
5
- import { ANSI, renderMarkdownToAnsi, visibleLen, wrap } from './markdown';
6
- const formatFieldValue = (key, value, color) => {
7
- if (key === 'state') {
8
- return formatStateBadge(value, color) ?? formatScalar(value);
9
- }
10
- return tryFormatTimestamp(value, { style: 'both' }) ?? formatScalar(value);
11
- };
12
- export const renderMetadataBlock = (input, ctx) => {
13
- const { color } = ctx;
14
- const { title, kind, fields: rawFields, summary, body, bodyFormat } = input;
15
- const fields = rawFields.filter(([, value]) => value !== undefined && value !== null && value !== '');
16
- const lines = [];
17
- if (title) {
18
- lines.push(wrap(ANSI.bold, title, color));
19
- const ruleLen = Math.min(Math.max(visibleLen(title), 24), SEPARATOR_WIDTH);
20
- lines.push(wrap(ANSI.dim, '─'.repeat(ruleLen), color));
21
- }
22
- else if (kind) {
23
- lines.push(kind);
24
- }
25
- const labelWidth = fields.reduce((max, [key]) => Math.max(max, key.length), 0);
26
- for (const [key, value] of fields) {
27
- const label = wrap(ANSI.dim, key.padEnd(labelWidth), color);
28
- const rendered = formatFieldValue(key, value, color);
29
- lines.push(`${label} ${rendered}`);
30
- }
31
- if (summary) {
32
- lines.push('');
33
- lines.push(wrap(ANSI.dim, summary, color));
34
- }
35
- if (body) {
36
- lines.push('');
37
- lines.push(wrap(ANSI.dim, '─'.repeat(SEPARATOR_WIDTH), color));
38
- lines.push('');
39
- if (bodyFormat === 'markdown') {
40
- lines.push(renderMarkdownToAnsi(body, { color }));
41
- }
42
- else if (bodyFormat === 'litexml') {
43
- lines.push(renderLexicalAnsi(body, { color }));
44
- }
45
- else {
46
- lines.push(body);
47
- }
48
- }
49
- return lines.join('\n');
50
- };
@@ -1,4 +0,0 @@
1
- import { Command } from '@effect/cli';
2
- import { Renderer } from '../../services/Renderer';
3
- import { Skill } from '../../services/Skill';
4
- export declare const all: Command.Command<"all", Renderer | Skill, import("../../domain/errors").SkillCorpusEmpty, {}>;
@@ -1,11 +0,0 @@
1
- import { Command } from '@effect/cli';
2
- import { Effect } from 'effect';
3
- import { Renderer } from '../../services/Renderer';
4
- import { Skill } from '../../services/Skill';
5
- import { skillAllView } from './views';
6
- export const all = Command.make('all', {}, () => Effect.gen(function* () {
7
- const skill = yield* Skill;
8
- const renderer = yield* Renderer;
9
- const chapters = yield* skill.all;
10
- yield* renderer.emit(skillAllView, chapters);
11
- }));
@@ -1,6 +0,0 @@
1
- import { Command } from '@effect/cli';
2
- import { Renderer } from '../../services/Renderer';
3
- import { Skill } from '../../services/Skill';
4
- export declare const get: Command.Command<"get", Renderer | Skill, import("../../domain/errors").ChapterNotFound | import("../../domain/errors").SkillCorpusEmpty, {
5
- readonly slug: string;
6
- }>;
@@ -1,12 +0,0 @@
1
- import { Args, Command } from '@effect/cli';
2
- import { Effect } from 'effect';
3
- import { Renderer } from '../../services/Renderer';
4
- import { Skill } from '../../services/Skill';
5
- import { skillChapterView } from './views';
6
- const slugArg = Args.text({ name: 'slug' });
7
- export const get = Command.make('get', { slug: slugArg }, ({ slug }) => Effect.gen(function* () {
8
- const skill = yield* Skill;
9
- const renderer = yield* Renderer;
10
- const chapter = yield* skill.get(slug);
11
- yield* renderer.emit(skillChapterView, chapter);
12
- }));
@@ -1,10 +0,0 @@
1
- import { Command } from '@effect/cli';
2
- import { Renderer } from '../../services/Renderer';
3
- import { Skill } from '../../services/Skill';
4
- export declare const skillCmd: Command.Command<"skill", Renderer | Skill, import("../../domain/errors").ChapterNotFound | import("../../domain/errors").SkillCorpusEmpty, {
5
- readonly subcommand: import("effect/Option").Option<{} | {
6
- readonly slug: string;
7
- } | {} | {
8
- readonly keyword: string;
9
- }>;
10
- }>;
@@ -1,34 +0,0 @@
1
- import { Command } from '@effect/cli';
2
- import { Effect } from 'effect';
3
- import { Renderer } from '../../services/Renderer';
4
- import { Skill } from '../../services/Skill';
5
- import { registerCommandHelp } from '../help/registry';
6
- import { all } from './all';
7
- import { get } from './get';
8
- import { list } from './list';
9
- import { search } from './search';
10
- import { skillListView } from './views';
11
- const help = registerCommandHelp({
12
- name: 'skill',
13
- description: 'read bundled AI skill chapters (commands, authoring, liteXML)',
14
- verbs: [
15
- { name: 'list', description: 'list all chapters (default verb)' },
16
- {
17
- name: 'get',
18
- args: ['<slug>'],
19
- description: 'print one chapter as raw markdown',
20
- },
21
- { name: 'all', description: 'concatenate every chapter in registry order' },
22
- {
23
- name: 'search',
24
- args: ['<keyword>'],
25
- description: 'substring search across chapter title, description, body',
26
- },
27
- ],
28
- });
29
- export const skillCmd = Command.make('skill', {}, () => Effect.gen(function* () {
30
- const skill = yield* Skill;
31
- const renderer = yield* Renderer;
32
- const chapters = yield* skill.list;
33
- yield* renderer.emit(skillListView, chapters);
34
- })).pipe(Command.withDescription(help.description), Command.withSubcommands([list, get, all, search]));
@@ -1,4 +0,0 @@
1
- import { Command } from '@effect/cli';
2
- import { Renderer } from '../../services/Renderer';
3
- import { Skill } from '../../services/Skill';
4
- export declare const list: Command.Command<"list", Renderer | Skill, import("../../domain/errors").SkillCorpusEmpty, {}>;
@@ -1,11 +0,0 @@
1
- import { Command } from '@effect/cli';
2
- import { Effect } from 'effect';
3
- import { Renderer } from '../../services/Renderer';
4
- import { Skill } from '../../services/Skill';
5
- import { skillListView } from './views';
6
- export const list = Command.make('list', {}, () => Effect.gen(function* () {
7
- const skill = yield* Skill;
8
- const renderer = yield* Renderer;
9
- const chapters = yield* skill.list;
10
- yield* renderer.emit(skillListView, chapters);
11
- }));
@@ -1,6 +0,0 @@
1
- import { Command } from '@effect/cli';
2
- import { Renderer } from '../../services/Renderer';
3
- import { Skill } from '../../services/Skill';
4
- export declare const search: Command.Command<"search", Renderer | Skill, import("../../domain/errors").SkillCorpusEmpty, {
5
- readonly keyword: string;
6
- }>;
@@ -1,12 +0,0 @@
1
- import { Args, Command } from '@effect/cli';
2
- import { Effect } from 'effect';
3
- import { Renderer } from '../../services/Renderer';
4
- import { Skill } from '../../services/Skill';
5
- import { skillSearchView } from './views';
6
- const keywordArg = Args.text({ name: 'keyword' });
7
- export const search = Command.make('search', { keyword: keywordArg }, ({ keyword }) => Effect.gen(function* () {
8
- const skill = yield* Skill;
9
- const renderer = yield* Renderer;
10
- const hits = yield* skill.search(keyword);
11
- yield* renderer.emit(skillSearchView, hits);
12
- }));
@@ -1,6 +0,0 @@
1
- import type { View } from '../../services/Renderer/view';
2
- import type { Chapter, SearchHit } from '../../services/Skill';
3
- export declare const skillListView: View<readonly Chapter[]>;
4
- export declare const skillChapterView: View<Chapter>;
5
- export declare const skillAllView: View<readonly Chapter[]>;
6
- export declare const skillSearchView: View<readonly SearchHit[]>;
@@ -1,90 +0,0 @@
1
- import { renderMarkdownToAnsi } from '../render';
2
- import { ANSI, dim, renderTable, wrap } from '../ui';
3
- const xmlEscape = (s) => s
4
- .replaceAll('&', '&amp;')
5
- .replaceAll('<', '&lt;')
6
- .replaceAll('>', '&gt;')
7
- .replaceAll('"', '&quot;');
8
- export const skillListView = {
9
- kind: 'skill-list',
10
- modes: new Set(['readable', 'llm', 'xml']),
11
- readable: (chapters, { color }) => {
12
- if (chapters.length === 0)
13
- return dim('no chapters loaded', color);
14
- return renderTable([
15
- { key: 'slug', label: 'slug' },
16
- { key: 'title', label: 'title' },
17
- { key: 'description', label: 'description' },
18
- { key: 'source', label: 'src' },
19
- ], chapters.map((c) => ({
20
- slug: wrap(ANSI.bold, c.slug, color),
21
- title: c.title,
22
- description: c.description,
23
- source: c.source === 'haklex' ? dim('haklex', color) : 'cli',
24
- })), { color });
25
- },
26
- llm: (chapters) => chapters.map((c) => `${c.slug}\t${c.description}`).join('\n'),
27
- xml: (chapters) => {
28
- const inner = chapters
29
- .map((c) => ` <chapter slug="${xmlEscape(c.slug)}" title="${xmlEscape(c.title)}" description="${xmlEscape(c.description)}" source="${c.source}" />`)
30
- .join('\n');
31
- return `<chapters>\n${inner}\n</chapters>`;
32
- },
33
- };
34
- const renderChapterReadable = (chapter, color) => {
35
- const header = `# ${chapter.title}\n\n_${chapter.description}_\n\n`;
36
- return renderMarkdownToAnsi(header + chapter.body, { color }).trimEnd();
37
- };
38
- export const skillChapterView = {
39
- kind: 'skill-chapter',
40
- modes: new Set(['readable', 'llm', 'xml']),
41
- readable: (chapter, { color }) => renderChapterReadable(chapter, color),
42
- llm: (chapter) => chapter.body.trimEnd(),
43
- xml: (chapter) => `<chapter slug="${xmlEscape(chapter.slug)}" title="${xmlEscape(chapter.title)}" source="${chapter.source}">\n${chapter.body.trimEnd()}\n</chapter>`,
44
- };
45
- export const skillAllView = {
46
- kind: 'skill-all',
47
- modes: new Set(['readable', 'llm', 'xml']),
48
- readable: (chapters, { color }) => chapters.map((c) => renderChapterReadable(c, color)).join('\n\n'),
49
- llm: (chapters) => chapters
50
- .map((c) => `# ${c.title} (${c.slug})\n\n${c.body.trimEnd()}`)
51
- .join('\n\n---\n\n'),
52
- xml: (chapters) => {
53
- const inner = chapters
54
- .map((c) => `<chapter slug="${xmlEscape(c.slug)}" title="${xmlEscape(c.title)}" source="${c.source}">\n${c.body.trimEnd()}\n</chapter>`)
55
- .join('\n');
56
- return `<chapters>\n${inner}\n</chapters>`;
57
- },
58
- };
59
- export const skillSearchView = {
60
- kind: 'skill-search',
61
- modes: new Set(['readable', 'llm', 'xml']),
62
- readable: (hits, { color }) => {
63
- if (hits.length === 0)
64
- return dim('no matches', color);
65
- const lines = [];
66
- for (const h of hits) {
67
- lines.push(`${wrap(ANSI.bold, h.slug, color)} — ${h.title}`);
68
- lines.push(` ${dim(h.description, color)}`);
69
- for (const snippet of h.snippets) {
70
- lines.push(` ${snippet}`);
71
- }
72
- lines.push('');
73
- }
74
- return lines.join('\n').trimEnd();
75
- },
76
- llm: (hits) => hits
77
- .map((h) => [`# ${h.title} (${h.slug})`, h.description, '', ...h.snippets].join('\n'))
78
- .join('\n\n---\n\n'),
79
- xml: (hits) => {
80
- const inner = hits
81
- .map((h) => {
82
- const snippets = h.snippets
83
- .map((s) => ` <snippet>${xmlEscape(s)}</snippet>`)
84
- .join('\n');
85
- return ` <hit slug="${xmlEscape(h.slug)}" title="${xmlEscape(h.title)}">\n${snippets}\n </hit>`;
86
- })
87
- .join('\n');
88
- return `<hits>\n${inner}\n</hits>`;
89
- },
90
- };
@@ -1,57 +0,0 @@
1
- import { Options } from '@effect/cli';
2
- import { Effect, Option } from 'effect';
3
- import type { Generic, ValidationFailed } from '../../domain/errors';
4
- import { Editor } from '../../services/Editor';
5
- export declare const SNIPPET_TYPES: readonly ["json", "json5", "function", "text", "yaml", "skill"];
6
- export declare const SNIPPET_KEYS: readonly ["path", "type", "raw", "private", "comment", "metatype", "schema", "method", "secret", "enable"];
7
- export declare const snippetWriteOptions: {
8
- type: Options.Options<Option.Option<"function" | "json" | "text" | "skill" | "json5" | "yaml">>;
9
- file: Options.Options<Option.Option<string>>;
10
- raw: Options.Options<Option.Option<string>>;
11
- comment: Options.Options<Option.Option<string>>;
12
- method: Options.Options<Option.Option<"GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "ALL">>;
13
- metatype: Options.Options<Option.Option<string>>;
14
- schema: Options.Options<Option.Option<string>>;
15
- secret: Options.Options<Option.Option<string>>;
16
- private: Options.Options<boolean>;
17
- noPrivate: Options.Options<boolean>;
18
- enable: Options.Options<boolean>;
19
- noEnable: Options.Options<boolean>;
20
- };
21
- export interface SnippetWriteOptionsParsed {
22
- readonly type: Option.Option<string>;
23
- readonly file: Option.Option<string>;
24
- readonly raw: Option.Option<string>;
25
- readonly comment: Option.Option<string>;
26
- readonly method: Option.Option<string>;
27
- readonly metatype: Option.Option<string>;
28
- readonly schema: Option.Option<string>;
29
- readonly secret: Option.Option<string>;
30
- readonly private: boolean;
31
- readonly noPrivate: boolean;
32
- readonly enable: boolean;
33
- readonly noEnable: boolean;
34
- }
35
- export interface SnippetFlagInputs {
36
- readonly type?: string;
37
- readonly file?: string;
38
- readonly raw?: string;
39
- readonly comment?: string;
40
- readonly method?: string;
41
- readonly metatype?: string;
42
- readonly schema?: string;
43
- readonly secret?: string;
44
- readonly private?: boolean;
45
- readonly enable?: boolean;
46
- }
47
- export declare const toSnippetFlagInputs: (opts: SnippetWriteOptionsParsed) => SnippetFlagInputs;
48
- export declare const snippetFieldsOf: (flags: SnippetFlagInputs) => Record<string, unknown>;
49
- export declare const resolveRawSource: (flags: {
50
- readonly file?: string;
51
- readonly raw?: string;
52
- }, opts: {
53
- readonly implicitStdin: boolean;
54
- }) => Effect.Effect<string | undefined, ValidationFailed | Generic, Editor>;
55
- export declare const unwrapDoc: (res: unknown) => Record<string, unknown>;
56
- export declare const pickSnippetFields: (doc: Record<string, unknown>) => Record<string, unknown>;
57
- export declare const extForType: (type: unknown) => string;
@@ -1,123 +0,0 @@
1
- import { Options } from '@effect/cli';
2
- import { Effect, Option } from 'effect';
3
- import { Editor } from '../../services/Editor';
4
- const optional = (self) => Options.optional(self);
5
- const unwrap = (value) => Option.getOrUndefined(value);
6
- export const SNIPPET_TYPES = [
7
- 'json',
8
- 'json5',
9
- 'function',
10
- 'text',
11
- 'yaml',
12
- 'skill',
13
- ];
14
- export const SNIPPET_KEYS = [
15
- 'path',
16
- 'type',
17
- 'raw',
18
- 'private',
19
- 'comment',
20
- 'metatype',
21
- 'schema',
22
- 'method',
23
- 'secret',
24
- 'enable',
25
- ];
26
- const type = optional(Options.choice('type', SNIPPET_TYPES));
27
- const file = optional(Options.text('file'));
28
- const raw = optional(Options.text('raw'));
29
- const comment = optional(Options.text('comment'));
30
- const method = optional(Options.choice('method', ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'ALL']));
31
- const metatype = optional(Options.text('metatype'));
32
- const schema = optional(Options.text('schema'));
33
- const secret = optional(Options.text('secret'));
34
- const privateFlag = Options.boolean('private');
35
- const noPrivateFlag = Options.boolean('no-private');
36
- const enableFlag = Options.boolean('enable');
37
- const noEnableFlag = Options.boolean('no-enable');
38
- export const snippetWriteOptions = {
39
- type,
40
- file,
41
- raw,
42
- comment,
43
- method,
44
- metatype,
45
- schema,
46
- secret,
47
- private: privateFlag,
48
- noPrivate: noPrivateFlag,
49
- enable: enableFlag,
50
- noEnable: noEnableFlag,
51
- };
52
- export const toSnippetFlagInputs = (opts) => ({
53
- type: unwrap(opts.type),
54
- file: unwrap(opts.file),
55
- raw: unwrap(opts.raw),
56
- comment: unwrap(opts.comment),
57
- method: unwrap(opts.method),
58
- metatype: unwrap(opts.metatype),
59
- schema: unwrap(opts.schema),
60
- secret: unwrap(opts.secret),
61
- private: opts.private ? true : opts.noPrivate ? false : undefined,
62
- enable: opts.enable ? true : opts.noEnable ? false : undefined,
63
- });
64
- export const snippetFieldsOf = (flags) => {
65
- const out = {};
66
- if (flags.type !== undefined)
67
- out.type = flags.type;
68
- if (flags.comment !== undefined)
69
- out.comment = flags.comment;
70
- if (flags.method !== undefined)
71
- out.method = flags.method;
72
- if (flags.metatype !== undefined)
73
- out.metatype = flags.metatype;
74
- if (flags.schema !== undefined)
75
- out.schema = flags.schema;
76
- if (flags.secret !== undefined)
77
- out.secret = flags.secret;
78
- if (flags.private !== undefined)
79
- out.private = flags.private;
80
- if (flags.enable !== undefined)
81
- out.enable = flags.enable;
82
- return out;
83
- };
84
- export const resolveRawSource = (flags, opts) => Effect.gen(function* () {
85
- if (flags.file !== undefined) {
86
- const editor = yield* Editor;
87
- return yield* editor.readFileOrStdin(flags.file);
88
- }
89
- if (flags.raw !== undefined)
90
- return flags.raw;
91
- if (opts.implicitStdin && !process.stdin.isTTY) {
92
- const editor = yield* Editor;
93
- const piped = yield* editor.readFileOrStdin(undefined);
94
- return piped.trim() ? piped : undefined;
95
- }
96
- return undefined;
97
- });
98
- export const unwrapDoc = (res) => {
99
- if (!res || typeof res !== 'object')
100
- return {};
101
- const r = res;
102
- if (r.data && typeof r.data === 'object' && !Array.isArray(r.data)) {
103
- return r.data;
104
- }
105
- return r;
106
- };
107
- export const pickSnippetFields = (doc) => {
108
- const out = {};
109
- for (const key of SNIPPET_KEYS) {
110
- if (key in doc && doc[key] !== undefined)
111
- out[key] = doc[key];
112
- }
113
- return out;
114
- };
115
- const EXT_BY_TYPE = {
116
- json: 'json',
117
- json5: 'json5',
118
- function: 'js',
119
- yaml: 'yaml',
120
- text: 'txt',
121
- skill: 'md',
122
- };
123
- export const extForType = (type) => (typeof type === 'string' && EXT_BY_TYPE[type]) || 'txt';