@inkeep/open-knowledge 0.1.1 → 0.3.0

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 (327) hide show
  1. package/dist/THIRD_PARTY_NOTICES.md +5439 -0
  2. package/dist/alias-JE7RI5QX-TirEebNy.mjs +1 -0
  3. package/dist/assets/skills/open-knowledge/SKILL.md +254 -0
  4. package/dist/awk2-POPGKRAI-DigGXYmO.mjs +1 -0
  5. package/dist/banner-BxI1wnW9.mjs +3 -0
  6. package/dist/base64-4YMZCVJ5-B4GnvJtR.mjs +1 -0
  7. package/dist/basename-AA2KJYZQ-DlZHEU5f.mjs +1 -0
  8. package/dist/bash-IJWYRKFO-BA1gxmDh.mjs +1 -0
  9. package/dist/build-D4l8tfO0.mjs +2 -0
  10. package/dist/cat-RDUMLXKC-CAQOzqfy.mjs +1 -0
  11. package/dist/chmod-SYMGL4JA-BC2VVHCa.mjs +1 -0
  12. package/dist/chokidar-CblsKfnx.mjs +4 -0
  13. package/dist/chunk-24IMIIXA-Bz7rlZT3.mjs +2 -0
  14. package/dist/chunk-3THT3N7L-klp8GP84.mjs +2 -0
  15. package/dist/chunk-3ZUFRYJ4-C93H8j0V.mjs +2 -0
  16. package/dist/chunk-44UOCSGV-BUBpWxXm.mjs +2 -0
  17. package/dist/chunk-4GTNDTRF-_OVmXcJ-.mjs +8 -0
  18. package/dist/chunk-4HHKTUW3-Dm69hDaZ.mjs +3 -0
  19. package/dist/chunk-4Q4SM6WR-DDQRsilN.mjs +5 -0
  20. package/dist/chunk-55VFSPNA-DVZfQAzN.mjs +3 -0
  21. package/dist/chunk-5QMZ5MUS-DWTkM0vM.mjs +5 -0
  22. package/dist/chunk-5QVNJEHU-BvsipSFW.mjs +9 -0
  23. package/dist/chunk-5V6VZH6T-BCr5_GDF.mjs +2 -0
  24. package/dist/chunk-62RKD26F-D-luOa0m.mjs +21 -0
  25. package/dist/chunk-64BAICW3-CTJNEx4Q.mjs +2 -0
  26. package/dist/chunk-74CEPOFO-D1bzz49u.mjs +23 -0
  27. package/dist/chunk-7L36YK2X-RiPZFKaV.mjs +3 -0
  28. package/dist/chunk-7TSDKFEO-a-GUGBTu.mjs +2 -0
  29. package/dist/chunk-A4HU7SVR-hefV_YmW.mjs +3 -0
  30. package/dist/chunk-A4JSPFCI-U-xWmMMC.mjs +7 -0
  31. package/dist/chunk-A5O5YHGN-C7BVq0eF.mjs +2 -0
  32. package/dist/chunk-A65PWWJC-D7J5l9eq.mjs +3 -0
  33. package/dist/chunk-A7A2DBEE-PLfkXLI4.mjs +7 -0
  34. package/dist/chunk-A7ICOL4V-Drb3XsEL.mjs +14 -0
  35. package/dist/chunk-ALLTKNUZ-BMiTDN50.mjs +6 -0
  36. package/dist/chunk-APT7OOP2-CXHnSuct.mjs +2 -0
  37. package/dist/chunk-BBXLRYSX-DURjrblE.mjs +6 -0
  38. package/dist/chunk-BRGMQKJV-CdrkqzRA.mjs +63 -0
  39. package/dist/chunk-CR5AFCPT-ROmyDFrB.mjs +24 -0
  40. package/dist/chunk-CWQS3NFK-DFdwmFxJ.mjs +2 -0
  41. package/dist/chunk-D4J545R4-C8nMOauR.mjs +12 -0
  42. package/dist/chunk-D6CWQ5DW-B-J4LN9N.mjs +6 -0
  43. package/dist/chunk-D7MEQ3VN-Csvth_Ss.mjs +5 -0
  44. package/dist/chunk-DCAAORBQ-BdrR5ttw.mjs +2 -0
  45. package/dist/chunk-DXB73IDG-C774okS0.mjs +2 -0
  46. package/dist/chunk-EEXR5ZDP-C5AJH114.mjs +3 -0
  47. package/dist/chunk-EIZGF4BS-8bsVXqW0.mjs +9 -0
  48. package/dist/chunk-F23WWYKW-DST0dB7V.mjs +17 -0
  49. package/dist/chunk-F55TLFGB-DqkrAMO5.mjs +10 -0
  50. package/dist/chunk-FEIOJCZD-C4x0A4rb.mjs +75 -0
  51. package/dist/chunk-FK9Q3tQk.mjs +1 -0
  52. package/dist/chunk-GCTKCWKD-Deqi1D_N.mjs +4 -0
  53. package/dist/chunk-GFQRA5P5-1fzItQ8F.mjs +8 -0
  54. package/dist/chunk-GOV5EKKI-PN17n-Z0.mjs +10 -0
  55. package/dist/chunk-GXVXFKBA-993FoPmq.mjs +6 -0
  56. package/dist/chunk-HDQ56CKY-pGV4pOJA.mjs +16 -0
  57. package/dist/chunk-HJQJAYMS-Ci3vsKQW.mjs +3 -0
  58. package/dist/chunk-HJWBQKYG-UZig4wUt.mjs +6 -0
  59. package/dist/chunk-HWBSOZZR-Dikp87Ww.mjs +37 -0
  60. package/dist/chunk-HWKDQ44K-CPSjqtR_.mjs +4 -0
  61. package/dist/chunk-I57KEIP3-B1DoH8rp.mjs +11 -0
  62. package/dist/chunk-IPJHKYVM-BbWncVr2.mjs +2 -0
  63. package/dist/chunk-J642UCRS-DB77Y2Wt.mjs +2 -0
  64. package/dist/chunk-JVPRLUMK-DnQCNjpq.mjs +8 -0
  65. package/dist/chunk-KMEYNNUA-DfdK88O_.mjs +16 -0
  66. package/dist/chunk-LL3S3NLB-DxXgE3kY.mjs +2 -0
  67. package/dist/chunk-LPQPILI2-BXfU9TgM.mjs +12 -0
  68. package/dist/chunk-LTZRCH7N-GAjTFNwG.mjs +32 -0
  69. package/dist/chunk-LWEGUNWT-BALY4RLC.mjs +8 -0
  70. package/dist/chunk-MDDMCKUK-D6GWoJsI.mjs +7 -0
  71. package/dist/chunk-MDLLFABN-oBQf6bGE.mjs +73 -0
  72. package/dist/chunk-MHTUABJP-dKmK6Hw7.mjs +9 -0
  73. package/dist/chunk-MIZPJHVH-z-geAni9.mjs +8 -0
  74. package/dist/chunk-MLXIYONF-DB-C8Hx8.mjs +16 -0
  75. package/dist/chunk-MYE6AGBJ-B4pRo9ma.mjs +17 -0
  76. package/dist/chunk-NAERJDUW-CX0lf-xx.mjs +9 -0
  77. package/dist/chunk-NCNPKYJZ-BFGan4lR.mjs +3 -0
  78. package/dist/chunk-NUYSJFDK-D2NXm2ND.mjs +8 -0
  79. package/dist/chunk-NYQYO467-Degkom4D.mjs +33 -0
  80. package/dist/chunk-OARHFVLG-CY8D2Qov.mjs +21 -0
  81. package/dist/chunk-OCLXQMOG-BMsyLQhm.mjs +7 -0
  82. package/dist/chunk-OCS6LSEM-BHslttnj.mjs +14 -0
  83. package/dist/chunk-OJDRYQWQ-BV5MVRVg.mjs +2 -0
  84. package/dist/chunk-OL3S66CO-Bmgu4tW4.mjs +100 -0
  85. package/dist/chunk-PBXLG62G-lGjqkk78.mjs +9 -0
  86. package/dist/chunk-PP6PSHAB-DMC_XCfO.mjs +5 -0
  87. package/dist/chunk-PYSFUGCK-CY7pclEB.mjs +11 -0
  88. package/dist/chunk-QCDB2VPH-D1RuXtOm.mjs +7 -0
  89. package/dist/chunk-QJ7O6ZN3-BH67tCjg.mjs +6 -0
  90. package/dist/chunk-R6QSAL5T-CtbJTvt9.mjs +2 -0
  91. package/dist/chunk-R6VWJ2ZL-B0CcMPyK.mjs +2 -0
  92. package/dist/chunk-RPNGRAAP-BughPjdR.mjs +8 -0
  93. package/dist/chunk-SDNKECQQ-C3GEf3VZ.mjs +6 -0
  94. package/dist/chunk-SYMJJMQ4-CWTh95-4.mjs +22 -0
  95. package/dist/chunk-T56QNPHK-DlKQeuXU.mjs +15 -0
  96. package/dist/chunk-TLSUDHID-B8UnqY4U.mjs +7 -0
  97. package/dist/chunk-TOMNU26N-BcdbBQ2p.mjs +5 -0
  98. package/dist/chunk-TXBZCHCQ-l48TczF5.mjs +6 -0
  99. package/dist/chunk-UNYNJIFU-DwPQMz0F.mjs +140 -0
  100. package/dist/chunk-V7TAPXDL-CnKUp2df.mjs +28 -0
  101. package/dist/chunk-VJFXDYWH-IiUXkKX0.mjs +11 -0
  102. package/dist/chunk-VLGZJRPG-D4NVKJYL.mjs +17 -0
  103. package/dist/chunk-VOBGTVA6-BT7gUxqf.mjs +7 -0
  104. package/dist/chunk-VYOJP4TV-BvibOnKG.mjs +14 -0
  105. package/dist/chunk-WKFATFPP-DCZdrA8x.mjs +5 -0
  106. package/dist/chunk-X2AJGDEF-BaH6i1Rq.mjs +2 -0
  107. package/dist/chunk-XHM67O4N-Cg35xc6b.mjs +2 -0
  108. package/dist/chunk-XKQRETAK-cVWA9gEB.mjs +2 -0
  109. package/dist/chunk-XORM457F-CRToN1RQ.mjs +288 -0
  110. package/dist/chunk-XVDPCNWR-CtK-Xs2O.mjs +12 -0
  111. package/dist/chunk-YCFVLTST-Ox9Z0Nk6.mjs +13 -0
  112. package/dist/chunk-YFG2CMIF-Csgr05KV.mjs +5 -0
  113. package/dist/chunk-YNYSPYQ5-BpP11HXS.mjs +34 -0
  114. package/dist/chunk-YS3AZT3J-BEZxz_aQ.mjs +9 -0
  115. package/dist/chunk-YTNYSM6T-DuBR2-TM.mjs +12 -0
  116. package/dist/chunk-Z6LRHWXI-DbRghyzT.mjs +14 -0
  117. package/dist/chunk-Z7JVV2SM-BzR-yvwK.mjs +12 -0
  118. package/dist/clear-5CZ5X4YR-B5oRhK00.mjs +1 -0
  119. package/dist/cli.mjs +1083 -264
  120. package/dist/colors-BnZ-i-vb.mjs +1 -0
  121. package/dist/colors-DoPZvo1q.mjs +2 -0
  122. package/dist/column-WLPMMSTS-fFssyAvW.mjs +1 -0
  123. package/dist/comm-5SLSESQG-DRcwK9Gt.mjs +1 -0
  124. package/dist/constants-ekUaxW9F.mjs +2 -0
  125. package/dist/cp-XOYR4ABJ-BUZu7KNi.mjs +1 -0
  126. package/dist/curl-47BFPSFW-Kn_Na_aU.mjs +26 -0
  127. package/dist/cut-OPC3VAGB-BIRZEN2Y.mjs +1 -0
  128. package/dist/date-DD7FVA2V-DRxppxbV.mjs +1 -0
  129. package/dist/diff-HJF2MPDN-Yo3lE_58.mjs +1 -0
  130. package/dist/dirname-LEMTZZFS-2cTXnmQf.mjs +1 -0
  131. package/dist/dist-0qFIeeXA.mjs +142 -0
  132. package/dist/dist-BCyi1oM7.mjs +116 -0
  133. package/dist/dist-CXdg7KnM.mjs +199 -0
  134. package/dist/dist-Ct-gJ7iD.mjs +1 -0
  135. package/dist/dist-bundle-BSdjl7Rj.mjs +2 -0
  136. package/dist/dist-bundle-BmF5_Mcp.mjs +1 -0
  137. package/dist/du-WO2ENHXQ-B5uda2-L.mjs +1 -0
  138. package/dist/echo-O45JWWI2-B9QCpaZR.mjs +1 -0
  139. package/dist/env-5EPCWSXR--4eujSrM.mjs +1 -0
  140. package/dist/esm-BFkWzFey.mjs +2 -0
  141. package/dist/esm-wByiX8MO.mjs +20 -0
  142. package/dist/execAsync-0jii24p9.mjs +2 -0
  143. package/dist/execAsync-Czqc-yAz.mjs +2 -0
  144. package/dist/execAsync-DgmLXmTx.mjs +2 -0
  145. package/dist/expand-DTNXU4LQ-BWwDphsm.mjs +1 -0
  146. package/dist/expansion-ENLSRCXJ-BBTiIHJS.mjs +1 -0
  147. package/dist/expr-5T3UU5KE-D5OdgUlD.mjs +1 -0
  148. package/dist/file-ZIGAJ4YS-zZfB3nws.mjs +1 -0
  149. package/dist/find-TPUOAIUQ-DaW1-9Vm.mjs +1 -0
  150. package/dist/flag-coverage-QT4N2Z44-B8zntJyb.mjs +2 -0
  151. package/dist/fold-LDSORVYE-CAfX9d8n.mjs +1 -0
  152. package/dist/getMachineId-bsd-C1M346yz.mjs +2 -0
  153. package/dist/getMachineId-bsd-CPESl3L6.mjs +2 -0
  154. package/dist/getMachineId-bsd-DEUypOXJ.mjs +2 -0
  155. package/dist/getMachineId-darwin-0hBTy7c8.mjs +3 -0
  156. package/dist/getMachineId-darwin-CJK3eX9q.mjs +3 -0
  157. package/dist/getMachineId-darwin-Vupnt-kR.mjs +3 -0
  158. package/dist/getMachineId-linux-B2nkqMir.mjs +2 -0
  159. package/dist/getMachineId-linux-BGQn48cN.mjs +2 -0
  160. package/dist/getMachineId-linux-CIp07XEX.mjs +2 -0
  161. package/dist/getMachineId-unsupported-BnsanXR2.mjs +2 -0
  162. package/dist/getMachineId-unsupported-CH1Q20xN.mjs +2 -0
  163. package/dist/getMachineId-unsupported-DfSmC7Gy.mjs +2 -0
  164. package/dist/getMachineId-win-BmmB_8yL.mjs +2 -0
  165. package/dist/getMachineId-win-DlPRChXs.mjs +2 -0
  166. package/dist/getMachineId-win-JnMJbIaW.mjs +2 -0
  167. package/dist/git-handle-BhGnmvTB-BMB_49Sb.mjs +10 -0
  168. package/dist/git-handle-BhGnmvTB-Di8EsrYa.mjs +1 -0
  169. package/dist/grep-3AIAIJVR-C9A_aSMK.mjs +1 -0
  170. package/dist/gzip-AQXSGOVS-CL228lzk.mjs +1 -0
  171. package/dist/head-HT2B6D2J-DyNkF3aY.mjs +1 -0
  172. package/dist/help-VVWX7SA5-D5WzpTIY.mjs +1 -0
  173. package/dist/history-J4QRNGRO-DUTsR2Sf.mjs +1 -0
  174. package/dist/hostname-BK6HG2DE-zmNkhqtV.mjs +1 -0
  175. package/dist/html-to-markdown-TFCECAGV-Ux5cbjMV.mjs +1 -0
  176. package/dist/index.d.mts +2300 -43
  177. package/dist/index.mjs +1 -1
  178. package/dist/init-Ccjx3YjD.mjs +1 -0
  179. package/dist/init-DOTyF3_B.mjs +1 -0
  180. package/dist/init-Dc2dCgGt.mjs +255 -0
  181. package/dist/init-DeV-MdCs.mjs +120 -0
  182. package/dist/{is-object-Miw4czsU.mjs → is-object-BNVklKxg.mjs} +1 -1
  183. package/dist/join-GG2LDHE5-B6C3-ghI.mjs +1 -0
  184. package/dist/jq-ODXZBPLY-Uj_VahOC.mjs +1 -0
  185. package/dist/js-exec-M6UR76J5-DSk5_wnx.mjs +97 -0
  186. package/dist/keepalive-CZzB5k1h.mjs +2 -0
  187. package/dist/lib-Dl2j2VNl.mjs +2 -0
  188. package/dist/libesm-DC4M2SkF.mjs +14 -0
  189. package/dist/ln-4TRFBYAT-DiYK6FgR.mjs +1 -0
  190. package/dist/loader-Bveym9GJ.mjs +1 -0
  191. package/dist/loader-C3jzK-Dy.mjs +3 -0
  192. package/dist/ls-KSXFZCWH-B0la1Q-P.mjs +1 -0
  193. package/dist/lzma-0LJzVZpl.mjs +2 -0
  194. package/dist/md5sum-INMIK4DX-DAG8dmoX.mjs +1 -0
  195. package/dist/mkdir-TDEMSB6C-CRMB4_AE.mjs +1 -0
  196. package/dist/mv-Z6MORUFL-1iTO8NY5.mjs +1 -0
  197. package/dist/nl-U5YJDM32-IRiMqQcZ.mjs +1 -0
  198. package/dist/od-VJEF2UR5-PasvdXXR.mjs +1 -0
  199. package/dist/{open-browser-YjPpHsbF.mjs → open-browser-BzMQ6cLf.mjs} +1 -1
  200. package/dist/paste-7N6AFSDS-C3M5_YM6.mjs +1 -0
  201. package/dist/paths-BA1xev5m.mjs +1 -0
  202. package/dist/paths-DtQI2_ER.mjs +2 -0
  203. package/dist/preview-BTFflPaA.mjs +1 -0
  204. package/dist/preview-BuXqi6nl.mjs +3 -0
  205. package/dist/printf-CX64KX2P-uTOF6Zpa.mjs +1 -0
  206. package/dist/public/assets/ActivityModeContent-Ccu_n0bV.js +2 -0
  207. package/dist/public/assets/ActivityPanelDiffView-D-EUyEh6.js +13 -0
  208. package/dist/public/assets/ActivityPanelDiffView-legcy4jI.css +1 -0
  209. package/dist/public/assets/DocumentContext-C1msvcHp.js +5 -0
  210. package/dist/public/assets/GraphPanel-CJ_U3W3L.js +46 -0
  211. package/dist/public/assets/McpConsentDialogBody-Csjet19t.js +1 -0
  212. package/dist/public/assets/PageListContext-B5SWnlyE.js +278 -0
  213. package/dist/public/assets/SourceEditor-OFesfBB2.js +3 -0
  214. package/dist/public/assets/__vite-browser-external-Dz2JgTKm.js +1 -0
  215. package/dist/public/assets/agent-presence-BXsx4eTl.js +1 -0
  216. package/dist/public/assets/button-BPXuMr5W.js +1 -0
  217. package/dist/public/assets/chunk-DECur_0Z.js +1 -0
  218. package/dist/public/assets/clipboard-DAcKCHl1.js +32 -0
  219. package/dist/public/assets/compiler-runtime-Y11fyRVL.js +1 -0
  220. package/dist/public/assets/dialog-CtSN0d2b.js +45 -0
  221. package/dist/public/assets/dist-BqO6NfD-.js +1 -0
  222. package/dist/public/assets/dist-CgLbXgrr.js +13 -0
  223. package/dist/public/assets/dist-D2wwoXzm.js +1 -0
  224. package/dist/public/assets/dist-DR1MrLJC.js +9 -0
  225. package/dist/public/assets/dist-DeDgmJv2.js +1 -0
  226. package/dist/public/assets/dist-DlS42TIP.js +1 -0
  227. package/dist/public/assets/dist-GlH2KPqY.js +1 -0
  228. package/dist/public/assets/index-CwFTGDhe.js +1843 -0
  229. package/dist/public/assets/index-DjR45Lon.css +1 -0
  230. package/dist/public/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
  231. package/dist/public/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
  232. package/dist/public/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
  233. package/dist/public/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
  234. package/dist/public/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
  235. package/dist/public/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
  236. package/dist/public/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
  237. package/dist/public/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2 +0 -0
  238. package/dist/public/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2 +0 -0
  239. package/dist/public/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
  240. package/dist/public/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
  241. package/dist/public/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2 +0 -0
  242. package/dist/public/assets/panel-BCRdtBla.js +1 -0
  243. package/dist/public/assets/propagation-api-Bugyj7xy.js +1 -0
  244. package/dist/public/assets/telemetry-impl-D8K_lJGH.js +2 -0
  245. package/dist/public/assets/toggle-group-LDOO6zaV.js +1 -0
  246. package/dist/public/assets/tooltip-D0MnQ7ZX.js +1 -0
  247. package/dist/public/assets/w3c-keyname-CSlwavrd.js +1 -0
  248. package/dist/public/favicon.svg +19 -4
  249. package/dist/public/index.html +32 -4
  250. package/dist/pwd-D4OZ7N27-DNkGMjtD.mjs +1 -0
  251. package/dist/python3-AUFTPCU6-MeZyx8_A.mjs +12 -0
  252. package/dist/readlink-MI4GCHJF-DRVZBAvY.mjs +1 -0
  253. package/dist/rev-XOSYPP45-q2MQLs41.mjs +1 -0
  254. package/dist/rg-FOQSCCX3-Cssz8GNh.mjs +1 -0
  255. package/dist/rm-RTZG23RL-fjvVauiI.mjs +1 -0
  256. package/dist/rmdir-XTQXT7RK-C13HY1h7.mjs +1 -0
  257. package/dist/rolldown-runtime-wcPFST8Q-BB0WpHs3.mjs +2 -0
  258. package/dist/sed-VFTTATXJ-DO49xc40.mjs +1 -0
  259. package/dist/seq-RN5ZUASB-D9r6kc_Z.mjs +1 -0
  260. package/dist/server-lock-n3Y5JWNv-3o7br8XE.mjs +2 -0
  261. package/dist/server-lock-n3Y5JWNv-DXpg9_eU.mjs +1 -0
  262. package/dist/sha1sum-VJPNLNU6-4uBt63v6.mjs +1 -0
  263. package/dist/sha256sum-PI32XWXY-_uaXSgBK.mjs +1 -0
  264. package/dist/sleep-VZFPZFWA-CS7jDpXp.mjs +1 -0
  265. package/dist/sort-DCNRDA7U-Dmp_2ZoH.mjs +1 -0
  266. package/dist/split-SITCSYCZ-Cu9ifXuc.mjs +1 -0
  267. package/dist/sqlite3-56UMWEY3-D1Xq8d4g.mjs +1 -0
  268. package/dist/src-CCtbSzLe.mjs +1 -0
  269. package/dist/start-D7mCFrVn.mjs +1 -0
  270. package/dist/start-RnYkhoRl.mjs +2 -0
  271. package/dist/stat-BT5A227F-Dqepjl-k.mjs +1 -0
  272. package/dist/strings-7PLOGTPD-g6FhPS64.mjs +1 -0
  273. package/dist/tac-SJGXQ4T2-DczI7HKk.mjs +1 -0
  274. package/dist/tail-S5ULNTJU-Bk22kVUG.mjs +1 -0
  275. package/dist/tar-ANUBEFJY-1lwT6ndQ.mjs +1 -0
  276. package/dist/tee-O7VXZDCO-Ftqr8Jad.mjs +1 -0
  277. package/dist/time-DEUO3QV2-BtzQ0nVf.mjs +1 -0
  278. package/dist/timeout-VRKMCG72-Cpzi9cz-.mjs +1 -0
  279. package/dist/touch-DX2IJOQ4-ewCHfbB3.mjs +1 -0
  280. package/dist/tr-2HXZRDSW-DrrobhxR.mjs +1 -0
  281. package/dist/tree-LYXBS7DC-DZnTMKSh.mjs +1 -0
  282. package/dist/true-WHJNXCHG-BaLssNp9.mjs +1 -0
  283. package/dist/unexpand-RGTMIGZM-BOmSL08U.mjs +1 -0
  284. package/dist/uniq-SUNANL47-Cn_JDmUJ.mjs +1 -0
  285. package/dist/wc-TQB3VNOX-DkOBrQlr.mjs +1 -0
  286. package/dist/which-XZHEH76L-DxZJ58G5.mjs +1 -0
  287. package/dist/whoami-DGKU3D2X-Bn1LP0m_.mjs +1 -0
  288. package/dist/wrapper-BTT6637Z.mjs +7 -0
  289. package/dist/xan-BXDXYEIB-_Vtao535.mjs +1 -0
  290. package/dist/xan-view-ECQUO7AJ-6vlhfSF-.mjs +1 -0
  291. package/dist/xargs-I6EZUCYF-dHdg4qaj.mjs +1 -0
  292. package/dist/yq-MJMAR36V-pRBq87Ya.mjs +1 -0
  293. package/package.json +27 -14
  294. package/scripts/postinstall.mjs +53 -0
  295. package/scripts/probe-exec.ts +101 -0
  296. package/scripts/probe-read-document.ts +112 -0
  297. package/dist/banner-D0kciHvM.mjs +0 -3
  298. package/dist/colors-DGfDzbma.mjs +0 -1
  299. package/dist/colors-DUgdVug3.mjs +0 -2
  300. package/dist/constants-CTaXJDQW.mjs +0 -2
  301. package/dist/init-CIcYCLDG.mjs +0 -228
  302. package/dist/init-eC_P2JgE.mjs +0 -1
  303. package/dist/keepalive-B3k7ffvp.mjs +0 -2
  304. package/dist/loader-DqbeQ0oE.mjs +0 -3
  305. package/dist/loader-ngoFdcDM.mjs +0 -1
  306. package/dist/paths-CV2EYsvK.mjs +0 -2
  307. package/dist/paths-CeCijg6T.mjs +0 -1
  308. package/dist/preview-Cpze1XQz.mjs +0 -3
  309. package/dist/preview-UvmK-nj9.mjs +0 -1
  310. package/dist/public/assets/dist-BDfJLgAe.js +0 -1
  311. package/dist/public/assets/dist-BSbGs59J.js +0 -1
  312. package/dist/public/assets/dist-BXK-5ZOh.js +0 -1
  313. package/dist/public/assets/dist-BipKfxqO.js +0 -15
  314. package/dist/public/assets/dist-C9Jm0v8G.js +0 -1
  315. package/dist/public/assets/dist-CDCPrjhY.js +0 -1
  316. package/dist/public/assets/dist-CHAniM6T.js +0 -9
  317. package/dist/public/assets/dist-CYsaeLzc.js +0 -1
  318. package/dist/public/assets/dist-Cq9Fm8Xi.js +0 -1
  319. package/dist/public/assets/dist-Ct0eqVZy.js +0 -1
  320. package/dist/public/assets/dist-PgXBewk9.js +0 -23
  321. package/dist/public/assets/index-B0fC333w.css +0 -2
  322. package/dist/public/assets/index-Cs4w_qEK.js +0 -404
  323. package/dist/src-BBqAZd3w.mjs +0 -1
  324. package/dist/src-D1kuMCGT.mjs +0 -1
  325. package/dist/src-ZI61hw95.mjs +0 -261
  326. /package/dist/public/assets/{go-IODVg4Ok.js → go-DatQmDtN.js} +0 -0
  327. /package/dist/public/assets/{shell-COsTRxlr.js → shell-7yok6dsz.js} +0 -0
@@ -0,0 +1,7 @@
1
+ import{i as e,o as t,t as n}from"./chunk-FK9Q3tQk.mjs";var r=n(((e,t)=>{let n=[`nodebuffer`,`arraybuffer`,`fragments`],r=typeof Blob<`u`;r&&n.push(`blob`),t.exports={BINARY_TYPES:n,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:`258EAFA5-E914-47DA-95CA-C5AB0DC85B11`,hasBlob:r,kForOnEventAttribute:Symbol(`kIsForOnEventAttribute`),kListener:Symbol(`kListener`),kStatusCode:Symbol(`status-code`),kWebSocket:Symbol(`websocket`),NOOP:()=>{}}})),i=n(((t,n)=>{let{EMPTY_BUFFER:i}=r(),a=Buffer[Symbol.species];function o(e,t){if(e.length===0)return i;if(e.length===1)return e[0];let n=Buffer.allocUnsafe(t),r=0;for(let t=0;t<e.length;t++){let i=e[t];n.set(i,r),r+=i.length}return r<t?new a(n.buffer,n.byteOffset,r):n}function s(e,t,n,r,i){for(let a=0;a<i;a++)n[r+a]=e[a]^t[a&3]}function c(e,t){for(let n=0;n<e.length;n++)e[n]^=t[n&3]}function l(e){return e.length===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.length)}function u(e){if(u.readOnly=!0,Buffer.isBuffer(e))return e;let t;return e instanceof ArrayBuffer?t=new a(e):ArrayBuffer.isView(e)?t=new a(e.buffer,e.byteOffset,e.byteLength):(t=Buffer.from(e),u.readOnly=!1),t}if(n.exports={concat:o,mask:s,toArrayBuffer:l,toBuffer:u,unmask:c},!process.env.WS_NO_BUFFER_UTIL)try{let t=e(`bufferutil`);n.exports.mask=function(e,n,r,i,a){a<48?s(e,n,r,i,a):t.mask(e,n,r,i,a)},n.exports.unmask=function(e,n){e.length<32?c(e,n):t.unmask(e,n)}}catch{}})),a=n(((e,t)=>{let n=Symbol(`kDone`),r=Symbol(`kRun`);t.exports=class{constructor(e){this[n]=()=>{this.pending--,this[r]()},this.concurrency=e||1/0,this.jobs=[],this.pending=0}add(e){this.jobs.push(e),this[r]()}[r](){if(this.pending!==this.concurrency&&this.jobs.length){let e=this.jobs.shift();this.pending++,e(this[n])}}}})),o=n(((t,n)=>{let o=e(`zlib`),s=i(),c=a(),{kStatusCode:l}=r(),u=Buffer[Symbol.species],d=Buffer.from([0,0,255,255]),f=Symbol(`permessage-deflate`),p=Symbol(`total-length`),m=Symbol(`callback`),h=Symbol(`buffers`),g=Symbol(`error`),_;n.exports=class{constructor(e){this._options=e||{},this._threshold=this._options.threshold===void 0?1024:this._options.threshold,this._maxPayload=this._options.maxPayload|0,this._isServer=!!this._options.isServer,this._deflate=null,this._inflate=null,this.params=null,_||=new c(this._options.concurrencyLimit===void 0?10:this._options.concurrencyLimit)}static get extensionName(){return`permessage-deflate`}offer(){let e={};return this._options.serverNoContextTakeover&&(e.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(e.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(e.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?e.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits??(e.client_max_window_bits=!0),e}accept(e){return e=this.normalizeParams(e),this.params=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e),this.params}cleanup(){if(this._inflate&&=(this._inflate.close(),null),this._deflate){let e=this._deflate[m];this._deflate.close(),this._deflate=null,e&&e(Error(`The deflate stream was closed while data was being processed`))}}acceptAsServer(e){let t=this._options,n=e.find(e=>!(t.serverNoContextTakeover===!1&&e.server_no_context_takeover||e.server_max_window_bits&&(t.serverMaxWindowBits===!1||typeof t.serverMaxWindowBits==`number`&&t.serverMaxWindowBits>e.server_max_window_bits)||typeof t.clientMaxWindowBits==`number`&&!e.client_max_window_bits));if(!n)throw Error(`None of the extension offers can be accepted`);return t.serverNoContextTakeover&&(n.server_no_context_takeover=!0),t.clientNoContextTakeover&&(n.client_no_context_takeover=!0),typeof t.serverMaxWindowBits==`number`&&(n.server_max_window_bits=t.serverMaxWindowBits),typeof t.clientMaxWindowBits==`number`?n.client_max_window_bits=t.clientMaxWindowBits:(n.client_max_window_bits===!0||t.clientMaxWindowBits===!1)&&delete n.client_max_window_bits,n}acceptAsClient(e){let t=e[0];if(this._options.clientNoContextTakeover===!1&&t.client_no_context_takeover)throw Error(`Unexpected parameter "client_no_context_takeover"`);if(!t.client_max_window_bits)typeof this._options.clientMaxWindowBits==`number`&&(t.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits==`number`&&t.client_max_window_bits>this._options.clientMaxWindowBits)throw Error(`Unexpected or invalid parameter "client_max_window_bits"`);return t}normalizeParams(e){return e.forEach(e=>{Object.keys(e).forEach(t=>{let n=e[t];if(n.length>1)throw Error(`Parameter "${t}" must have only a single value`);if(n=n[0],t===`client_max_window_bits`){if(n!==!0){let e=+n;if(!Number.isInteger(e)||e<8||e>15)throw TypeError(`Invalid value for parameter "${t}": ${n}`);n=e}else if(!this._isServer)throw TypeError(`Invalid value for parameter "${t}": ${n}`)}else if(t===`server_max_window_bits`){let e=+n;if(!Number.isInteger(e)||e<8||e>15)throw TypeError(`Invalid value for parameter "${t}": ${n}`);n=e}else if(t===`client_no_context_takeover`||t===`server_no_context_takeover`){if(n!==!0)throw TypeError(`Invalid value for parameter "${t}": ${n}`)}else throw Error(`Unknown parameter "${t}"`);e[t]=n})}),e}decompress(e,t,n){_.add(r=>{this._decompress(e,t,(e,t)=>{r(),n(e,t)})})}compress(e,t,n){_.add(r=>{this._compress(e,t,(e,t)=>{r(),n(e,t)})})}_decompress(e,t,n){let r=this._isServer?`client`:`server`;if(!this._inflate){let e=`${r}_max_window_bits`,t=typeof this.params[e]==`number`?this.params[e]:o.Z_DEFAULT_WINDOWBITS;this._inflate=o.createInflateRaw({...this._options.zlibInflateOptions,windowBits:t}),this._inflate[f]=this,this._inflate[p]=0,this._inflate[h]=[],this._inflate.on(`error`,b),this._inflate.on(`data`,y)}this._inflate[m]=n,this._inflate.write(e),t&&this._inflate.write(d),this._inflate.flush(()=>{let e=this._inflate[g];if(e){this._inflate.close(),this._inflate=null,n(e);return}let i=s.concat(this._inflate[h],this._inflate[p]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[p]=0,this._inflate[h]=[],t&&this.params[`${r}_no_context_takeover`]&&this._inflate.reset()),n(null,i)})}_compress(e,t,n){let r=this._isServer?`server`:`client`;if(!this._deflate){let e=`${r}_max_window_bits`,t=typeof this.params[e]==`number`?this.params[e]:o.Z_DEFAULT_WINDOWBITS;this._deflate=o.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:t}),this._deflate[p]=0,this._deflate[h]=[],this._deflate.on(`data`,v)}this._deflate[m]=n,this._deflate.write(e),this._deflate.flush(o.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let e=s.concat(this._deflate[h],this._deflate[p]);t&&(e=new u(e.buffer,e.byteOffset,e.length-4)),this._deflate[m]=null,this._deflate[p]=0,this._deflate[h]=[],t&&this.params[`${r}_no_context_takeover`]&&this._deflate.reset(),n(null,e)})}};function v(e){this[h].push(e),this[p]+=e.length}function y(e){if(this[p]+=e.length,this[f]._maxPayload<1||this[p]<=this[f]._maxPayload){this[h].push(e);return}this[g]=RangeError(`Max payload size exceeded`),this[g].code=`WS_ERR_UNSUPPORTED_MESSAGE_LENGTH`,this[g][l]=1009,this.removeListener(`data`,y),this.reset()}function b(e){if(this[f]._inflate=null,this[g]){this[m](this[g]);return}e[l]=1007,this[m](e)}})),s=n(((t,n)=>{let{isUtf8:i}=e(`buffer`),{hasBlob:a}=r(),o=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function s(e){return e>=1e3&&e<=1014&&e!==1004&&e!==1005&&e!==1006||e>=3e3&&e<=4999}function c(e){let t=e.length,n=0;for(;n<t;)if(!(e[n]&128))n++;else if((e[n]&224)==192){if(n+1===t||(e[n+1]&192)!=128||(e[n]&254)==192)return!1;n+=2}else if((e[n]&240)==224){if(n+2>=t||(e[n+1]&192)!=128||(e[n+2]&192)!=128||e[n]===224&&(e[n+1]&224)==128||e[n]===237&&(e[n+1]&224)==160)return!1;n+=3}else if((e[n]&248)==240){if(n+3>=t||(e[n+1]&192)!=128||(e[n+2]&192)!=128||(e[n+3]&192)!=128||e[n]===240&&(e[n+1]&240)==128||e[n]===244&&e[n+1]>143||e[n]>244)return!1;n+=4}else return!1;return!0}function l(e){return a&&typeof e==`object`&&typeof e.arrayBuffer==`function`&&typeof e.type==`string`&&typeof e.stream==`function`&&(e[Symbol.toStringTag]===`Blob`||e[Symbol.toStringTag]===`File`)}if(n.exports={isBlob:l,isValidStatusCode:s,isValidUTF8:c,tokenChars:o},i)n.exports.isValidUTF8=function(e){return e.length<24?c(e):i(e)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let t=e(`utf-8-validate`);n.exports.isValidUTF8=function(e){return e.length<32?c(e):t(e)}}catch{}})),c=n(((t,n)=>{let{Writable:a}=e(`stream`),c=o(),{BINARY_TYPES:l,EMPTY_BUFFER:u,kStatusCode:d,kWebSocket:f}=r(),{concat:p,toArrayBuffer:m,unmask:h}=i(),{isValidStatusCode:g,isValidUTF8:_}=s(),v=Buffer[Symbol.species];n.exports=class extends a{constructor(e={}){super(),this._allowSynchronousEvents=e.allowSynchronousEvents===void 0?!0:e.allowSynchronousEvents,this._binaryType=e.binaryType||l[0],this._extensions=e.extensions||{},this._isServer=!!e.isServer,this._maxPayload=e.maxPayload|0,this._skipUTF8Validation=!!e.skipUTF8Validation,this[f]=void 0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._errored=!1,this._loop=!1,this._state=0}_write(e,t,n){if(this._opcode===8&&this._state==0)return n();this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop(n)}consume(e){if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift();if(e<this._buffers[0].length){let t=this._buffers[0];return this._buffers[0]=new v(t.buffer,t.byteOffset+e,t.length-e),new v(t.buffer,t.byteOffset,e)}let t=Buffer.allocUnsafe(e);do{let n=this._buffers[0],r=t.length-e;e>=n.length?t.set(this._buffers.shift(),r):(t.set(new Uint8Array(n.buffer,n.byteOffset,e),r),this._buffers[0]=new v(n.buffer,n.byteOffset+e,n.length-e)),e-=n.length}while(e>0);return t}startLoop(e){this._loop=!0;do switch(this._state){case 0:this.getInfo(e);break;case 1:this.getPayloadLength16(e);break;case 2:this.getPayloadLength64(e);break;case 3:this.getMask();break;case 4:this.getData(e);break;case 5:case 6:this._loop=!1;return}while(this._loop);this._errored||e()}getInfo(e){if(this._bufferedBytes<2){this._loop=!1;return}let t=this.consume(2);if(t[0]&48){e(this.createError(RangeError,`RSV2 and RSV3 must be clear`,!0,1002,`WS_ERR_UNEXPECTED_RSV_2_3`));return}let n=(t[0]&64)==64;if(n&&!this._extensions[c.extensionName]){e(this.createError(RangeError,`RSV1 must be clear`,!0,1002,`WS_ERR_UNEXPECTED_RSV_1`));return}if(this._fin=(t[0]&128)==128,this._opcode=t[0]&15,this._payloadLength=t[1]&127,this._opcode===0){if(n){e(this.createError(RangeError,`RSV1 must be clear`,!0,1002,`WS_ERR_UNEXPECTED_RSV_1`));return}if(!this._fragmented){e(this.createError(RangeError,`invalid opcode 0`,!0,1002,`WS_ERR_INVALID_OPCODE`));return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){e(this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,`WS_ERR_INVALID_OPCODE`));return}this._compressed=n}else if(this._opcode>7&&this._opcode<11){if(!this._fin){e(this.createError(RangeError,`FIN must be set`,!0,1002,`WS_ERR_EXPECTED_FIN`));return}if(n){e(this.createError(RangeError,`RSV1 must be clear`,!0,1002,`WS_ERR_UNEXPECTED_RSV_1`));return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){e(this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,`WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH`));return}}else{e(this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,`WS_ERR_INVALID_OPCODE`));return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(t[1]&128)==128,this._isServer){if(!this._masked){e(this.createError(RangeError,`MASK must be set`,!0,1002,`WS_ERR_EXPECTED_MASK`));return}}else if(this._masked){e(this.createError(RangeError,`MASK must be clear`,!0,1002,`WS_ERR_UNEXPECTED_MASK`));return}this._payloadLength===126?this._state=1:this._payloadLength===127?this._state=2:this.haveLength(e)}getPayloadLength16(e){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(e)}getPayloadLength64(e){if(this._bufferedBytes<8){this._loop=!1;return}let t=this.consume(8),n=t.readUInt32BE(0);if(n>2**21-1){e(this.createError(RangeError,`Unsupported WebSocket frame: payload length > 2^53 - 1`,!1,1009,`WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH`));return}this._payloadLength=n*2**32+t.readUInt32BE(4),this.haveLength(e)}haveLength(e){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)){e(this.createError(RangeError,`Max payload size exceeded`,!1,1009,`WS_ERR_UNSUPPORTED_MESSAGE_LENGTH`));return}this._masked?this._state=3:this._state=4}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=4}getData(e){let t=u;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=!1;return}t=this.consume(this._payloadLength),this._masked&&(this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3])!==0&&h(t,this._mask)}if(this._opcode>7){this.controlMessage(t,e);return}if(this._compressed){this._state=5,this.decompress(t,e);return}t.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(t)),this.dataMessage(e)}decompress(e,t){this._extensions[c.extensionName].decompress(e,this._fin,(e,n)=>{if(e)return t(e);if(n.length){if(this._messageLength+=n.length,this._messageLength>this._maxPayload&&this._maxPayload>0){t(this.createError(RangeError,`Max payload size exceeded`,!1,1009,`WS_ERR_UNSUPPORTED_MESSAGE_LENGTH`));return}this._fragments.push(n)}this.dataMessage(t),this._state===0&&this.startLoop(t)})}dataMessage(e){if(!this._fin){this._state=0;return}let t=this._messageLength,n=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let r;r=this._binaryType===`nodebuffer`?p(n,t):this._binaryType===`arraybuffer`?m(p(n,t)):this._binaryType===`blob`?new Blob(n):n,this._allowSynchronousEvents?(this.emit(`message`,r,!0),this._state=0):(this._state=6,setImmediate(()=>{this.emit(`message`,r,!0),this._state=0,this.startLoop(e)}))}else{let r=p(n,t);if(!this._skipUTF8Validation&&!_(r)){e(this.createError(Error,`invalid UTF-8 sequence`,!0,1007,`WS_ERR_INVALID_UTF8`));return}this._state===5||this._allowSynchronousEvents?(this.emit(`message`,r,!1),this._state=0):(this._state=6,setImmediate(()=>{this.emit(`message`,r,!1),this._state=0,this.startLoop(e)}))}}controlMessage(e,t){if(this._opcode===8){if(e.length===0)this._loop=!1,this.emit(`conclude`,1005,u),this.end();else{let n=e.readUInt16BE(0);if(!g(n)){t(this.createError(RangeError,`invalid status code ${n}`,!0,1002,`WS_ERR_INVALID_CLOSE_CODE`));return}let r=new v(e.buffer,e.byteOffset+2,e.length-2);if(!this._skipUTF8Validation&&!_(r)){t(this.createError(Error,`invalid UTF-8 sequence`,!0,1007,`WS_ERR_INVALID_UTF8`));return}this._loop=!1,this.emit(`conclude`,n,r),this.end()}this._state=0;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?`ping`:`pong`,e),this._state=0):(this._state=6,setImmediate(()=>{this.emit(this._opcode===9?`ping`:`pong`,e),this._state=0,this.startLoop(t)}))}createError(e,t,n,r,i){this._loop=!1,this._errored=!0;let a=new e(n?`Invalid WebSocket frame: ${t}`:t);return Error.captureStackTrace(a,this.createError),a.code=i,a[d]=r,a}}})),l=n(((t,n)=>{let{Duplex:a}=e(`stream`),{randomFillSync:c}=e(`crypto`),l=o(),{EMPTY_BUFFER:u,kWebSocket:d,NOOP:f}=r(),{isBlob:p,isValidStatusCode:m}=s(),{mask:h,toBuffer:g}=i(),_=Symbol(`kByteLength`),v=Buffer.alloc(4),y=8*1024,b,x=y;n.exports=class e{constructor(e,t,n){this._extensions=t||{},n&&(this._generateMask=n,this._maskBuffer=Buffer.alloc(4)),this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=0,this.onerror=f,this[d]=void 0}static frame(e,t){let n,r=!1,i=2,a=!1;t.mask&&(n=t.maskBuffer||v,t.generateMask?t.generateMask(n):(x===y&&(b===void 0&&(b=Buffer.alloc(y)),c(b,0,y),x=0),n[0]=b[x++],n[1]=b[x++],n[2]=b[x++],n[3]=b[x++]),a=(n[0]|n[1]|n[2]|n[3])===0,i=6);let o;typeof e==`string`?(!t.mask||a)&&t[_]!==void 0?o=t[_]:(e=Buffer.from(e),o=e.length):(o=e.length,r=t.mask&&t.readOnly&&!a);let s=o;o>=65536?(i+=8,s=127):o>125&&(i+=2,s=126);let l=Buffer.allocUnsafe(r?o+i:i);return l[0]=t.fin?t.opcode|128:t.opcode,t.rsv1&&(l[0]|=64),l[1]=s,s===126?l.writeUInt16BE(o,2):s===127&&(l[2]=l[3]=0,l.writeUIntBE(o,4,6)),!t.mask||(l[1]|=128,l[i-4]=n[0],l[i-3]=n[1],l[i-2]=n[2],l[i-1]=n[3],a)?[l,e]:r?(h(e,n,l,i,o),[l]):(h(e,n,e,0,o),[l,e])}close(t,n,r,i){let a;if(t===void 0)a=u;else if(typeof t!=`number`||!m(t))throw TypeError(`First argument must be a valid error code number`);else if(n===void 0||!n.length)a=Buffer.allocUnsafe(2),a.writeUInt16BE(t,0);else{let e=Buffer.byteLength(n);if(e>123)throw RangeError(`The message must not be greater than 123 bytes`);a=Buffer.allocUnsafe(2+e),a.writeUInt16BE(t,0),typeof n==`string`?a.write(n,2):a.set(n,2)}let o={[_]:a.length,fin:!0,generateMask:this._generateMask,mask:r,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state===0?this.sendFrame(e.frame(a,o),i):this.enqueue([this.dispatch,a,!1,o,i])}ping(t,n,r){let i,a;if(typeof t==`string`?(i=Buffer.byteLength(t),a=!1):p(t)?(i=t.size,a=!1):(t=g(t),i=t.length,a=g.readOnly),i>125)throw RangeError(`The data size must not be greater than 125 bytes`);let o={[_]:i,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:9,readOnly:a,rsv1:!1};p(t)?this._state===0?this.getBlobData(t,!1,o,r):this.enqueue([this.getBlobData,t,!1,o,r]):this._state===0?this.sendFrame(e.frame(t,o),r):this.enqueue([this.dispatch,t,!1,o,r])}pong(t,n,r){let i,a;if(typeof t==`string`?(i=Buffer.byteLength(t),a=!1):p(t)?(i=t.size,a=!1):(t=g(t),i=t.length,a=g.readOnly),i>125)throw RangeError(`The data size must not be greater than 125 bytes`);let o={[_]:i,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:10,readOnly:a,rsv1:!1};p(t)?this._state===0?this.getBlobData(t,!1,o,r):this.enqueue([this.getBlobData,t,!1,o,r]):this._state===0?this.sendFrame(e.frame(t,o),r):this.enqueue([this.dispatch,t,!1,o,r])}send(e,t,n){let r=this._extensions[l.extensionName],i=t.binary?2:1,a=t.compress,o,s;typeof e==`string`?(o=Buffer.byteLength(e),s=!1):p(e)?(o=e.size,s=!1):(e=g(e),o=e.length,s=g.readOnly),this._firstFragment?(this._firstFragment=!1,a&&r&&r.params[r._isServer?`server_no_context_takeover`:`client_no_context_takeover`]&&(a=o>=r._threshold),this._compress=a):(a=!1,i=0),t.fin&&(this._firstFragment=!0);let c={[_]:o,fin:t.fin,generateMask:this._generateMask,mask:t.mask,maskBuffer:this._maskBuffer,opcode:i,readOnly:s,rsv1:a};p(e)?this._state===0?this.getBlobData(e,this._compress,c,n):this.enqueue([this.getBlobData,e,this._compress,c,n]):this._state===0?this.dispatch(e,this._compress,c,n):this.enqueue([this.dispatch,e,this._compress,c,n])}getBlobData(t,n,r,i){this._bufferedBytes+=r[_],this._state=2,t.arrayBuffer().then(t=>{if(this._socket.destroyed){let e=Error(`The socket was closed while the blob was being read`);process.nextTick(S,this,e,i);return}this._bufferedBytes-=r[_];let a=g(t);n?this.dispatch(a,n,r,i):(this._state=0,this.sendFrame(e.frame(a,r),i),this.dequeue())}).catch(e=>{process.nextTick(C,this,e,i)})}dispatch(t,n,r,i){if(!n){this.sendFrame(e.frame(t,r),i);return}let a=this._extensions[l.extensionName];this._bufferedBytes+=r[_],this._state=1,a.compress(t,r.fin,(t,n)=>{if(this._socket.destroyed){S(this,Error(`The socket was closed while data was being compressed`),i);return}this._bufferedBytes-=r[_],this._state=0,r.readOnly=!1,this.sendFrame(e.frame(n,r),i),this.dequeue()})}dequeue(){for(;this._state===0&&this._queue.length;){let e=this._queue.shift();this._bufferedBytes-=e[3][_],Reflect.apply(e[0],this,e.slice(1))}}enqueue(e){this._bufferedBytes+=e[3][_],this._queue.push(e)}sendFrame(e,t){e.length===2?(this._socket.cork(),this._socket.write(e[0]),this._socket.write(e[1],t),this._socket.uncork()):this._socket.write(e[0],t)}};function S(e,t,n){typeof n==`function`&&n(t);for(let n=0;n<e._queue.length;n++){let r=e._queue[n],i=r[r.length-1];typeof i==`function`&&i(t)}}function C(e,t,n){S(e,t,n),e.onerror(t)}})),u=n(((e,t)=>{let{kForOnEventAttribute:n,kListener:i}=r(),a=Symbol(`kCode`),o=Symbol(`kData`),s=Symbol(`kError`),c=Symbol(`kMessage`),l=Symbol(`kReason`),u=Symbol(`kTarget`),d=Symbol(`kType`),f=Symbol(`kWasClean`);var p=class{constructor(e){this[u]=null,this[d]=e}get target(){return this[u]}get type(){return this[d]}};Object.defineProperty(p.prototype,`target`,{enumerable:!0}),Object.defineProperty(p.prototype,`type`,{enumerable:!0});var m=class extends p{constructor(e,t={}){super(e),this[a]=t.code===void 0?0:t.code,this[l]=t.reason===void 0?``:t.reason,this[f]=t.wasClean===void 0?!1:t.wasClean}get code(){return this[a]}get reason(){return this[l]}get wasClean(){return this[f]}};Object.defineProperty(m.prototype,`code`,{enumerable:!0}),Object.defineProperty(m.prototype,`reason`,{enumerable:!0}),Object.defineProperty(m.prototype,`wasClean`,{enumerable:!0});var h=class extends p{constructor(e,t={}){super(e),this[s]=t.error===void 0?null:t.error,this[c]=t.message===void 0?``:t.message}get error(){return this[s]}get message(){return this[c]}};Object.defineProperty(h.prototype,`error`,{enumerable:!0}),Object.defineProperty(h.prototype,`message`,{enumerable:!0});var g=class extends p{constructor(e,t={}){super(e),this[o]=t.data===void 0?null:t.data}get data(){return this[o]}};Object.defineProperty(g.prototype,`data`,{enumerable:!0}),t.exports={CloseEvent:m,ErrorEvent:h,Event:p,EventTarget:{addEventListener(e,t,r={}){for(let a of this.listeners(e))if(!r[n]&&a[i]===t&&!a[n])return;let a;if(e===`message`)a=function(e,n){let r=new g(`message`,{data:n?e:e.toString()});r[u]=this,_(t,this,r)};else if(e===`close`)a=function(e,n){let r=new m(`close`,{code:e,reason:n.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});r[u]=this,_(t,this,r)};else if(e===`error`)a=function(e){let n=new h(`error`,{error:e,message:e.message});n[u]=this,_(t,this,n)};else if(e===`open`)a=function(){let e=new p(`open`);e[u]=this,_(t,this,e)};else return;a[n]=!!r[n],a[i]=t,r.once?this.once(e,a):this.on(e,a)},removeEventListener(e,t){for(let r of this.listeners(e))if(r[i]===t&&!r[n]){this.removeListener(e,r);break}}},MessageEvent:g};function _(e,t,n){typeof e==`object`&&e.handleEvent?e.handleEvent.call(e,n):e.call(t,n)}})),d=n(((e,t)=>{let{tokenChars:n}=s();function r(e,t,n){e[t]===void 0?e[t]=[n]:e[t].push(n)}function i(e){let t=Object.create(null),i=Object.create(null),a=!1,o=!1,s=!1,c,l,u=-1,d=-1,f=-1,p=0;for(;p<e.length;p++)if(d=e.charCodeAt(p),c===void 0)if(f===-1&&n[d]===1)u===-1&&(u=p);else if(p!==0&&(d===32||d===9))f===-1&&u!==-1&&(f=p);else if(d===59||d===44){if(u===-1)throw SyntaxError(`Unexpected character at index ${p}`);f===-1&&(f=p);let n=e.slice(u,f);d===44?(r(t,n,i),i=Object.create(null)):c=n,u=f=-1}else throw SyntaxError(`Unexpected character at index ${p}`);else if(l===void 0)if(f===-1&&n[d]===1)u===-1&&(u=p);else if(d===32||d===9)f===-1&&u!==-1&&(f=p);else if(d===59||d===44){if(u===-1)throw SyntaxError(`Unexpected character at index ${p}`);f===-1&&(f=p),r(i,e.slice(u,f),!0),d===44&&(r(t,c,i),i=Object.create(null),c=void 0),u=f=-1}else if(d===61&&u!==-1&&f===-1)l=e.slice(u,p),u=f=-1;else throw SyntaxError(`Unexpected character at index ${p}`);else if(o){if(n[d]!==1)throw SyntaxError(`Unexpected character at index ${p}`);u===-1?u=p:a||=!0,o=!1}else if(s)if(n[d]===1)u===-1&&(u=p);else if(d===34&&u!==-1)s=!1,f=p;else if(d===92)o=!0;else throw SyntaxError(`Unexpected character at index ${p}`);else if(d===34&&e.charCodeAt(p-1)===61)s=!0;else if(f===-1&&n[d]===1)u===-1&&(u=p);else if(u!==-1&&(d===32||d===9))f===-1&&(f=p);else if(d===59||d===44){if(u===-1)throw SyntaxError(`Unexpected character at index ${p}`);f===-1&&(f=p);let n=e.slice(u,f);a&&=(n=n.replace(/\\/g,``),!1),r(i,l,n),d===44&&(r(t,c,i),i=Object.create(null),c=void 0),l=void 0,u=f=-1}else throw SyntaxError(`Unexpected character at index ${p}`);if(u===-1||s||d===32||d===9)throw SyntaxError(`Unexpected end of input`);f===-1&&(f=p);let m=e.slice(u,f);return c===void 0?r(t,m,i):(l===void 0?r(i,m,!0):a?r(i,l,m.replace(/\\/g,``)):r(i,l,m),r(t,c,i)),t}function a(e){return Object.keys(e).map(t=>{let n=e[t];return Array.isArray(n)||(n=[n]),n.map(e=>[t].concat(Object.keys(e).map(t=>{let n=e[t];return Array.isArray(n)||(n=[n]),n.map(e=>e===!0?t:`${t}=${e}`).join(`; `)})).join(`; `)).join(`, `)}).join(`, `)}t.exports={format:a,parse:i}})),f=n(((t,n)=>{let a=e(`events`),f=e(`https`),p=e(`http`),m=e(`net`),h=e(`tls`),{randomBytes:g,createHash:_}=e(`crypto`),{Duplex:v,Readable:y}=e(`stream`),{URL:b}=e(`url`),x=o(),S=c(),C=l(),{isBlob:w}=s(),{BINARY_TYPES:T,CLOSE_TIMEOUT:E,EMPTY_BUFFER:D,GUID:O,kForOnEventAttribute:k,kListener:A,kStatusCode:j,kWebSocket:M,NOOP:N}=r(),{EventTarget:{addEventListener:ee,removeEventListener:te}}=u(),{format:P,parse:F}=d(),{toBuffer:I}=i(),L=Symbol(`kAborted`),R=[8,13],z=[`CONNECTING`,`OPEN`,`CLOSING`,`CLOSED`],B=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/;var V=class e extends a{constructor(t,n,r){super(),this._binaryType=T[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=D,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol=``,this._readyState=e.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,t===null?(this._autoPong=r.autoPong,this._closeTimeout=r.closeTimeout,this._isServer=!0):(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,n===void 0?n=[]:Array.isArray(n)||(typeof n==`object`&&n?(r=n,n=[]):n=[n]),H(this,t,n,r))}get binaryType(){return this._binaryType}set binaryType(e){T.includes(e)&&(this._binaryType=e,this._receiver&&(this._receiver._binaryType=e))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(t,n,r){let i=new S({allowSynchronousEvents:r.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:r.maxPayload,skipUTF8Validation:r.skipUTF8Validation}),a=new C(t,this._extensions,r.generateMask);this._receiver=i,this._sender=a,this._socket=t,i[M]=this,a[M]=this,t[M]=this,i.on(`conclude`,re),i.on(`drain`,ie),i.on(`error`,ae),i.on(`message`,oe),i.on(`ping`,se),i.on(`pong`,ce),a.onerror=le,t.setTimeout&&t.setTimeout(0),t.setNoDelay&&t.setNoDelay(),n.length>0&&t.unshift(n),t.on(`close`,X),t.on(`data`,Z),t.on(`end`,Q),t.on(`error`,$),this._readyState=e.OPEN,this.emit(`open`)}emitClose(){if(!this._socket){this._readyState=e.CLOSED,this.emit(`close`,this._closeCode,this._closeMessage);return}this._extensions[x.extensionName]&&this._extensions[x.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=e.CLOSED,this.emit(`close`,this._closeCode,this._closeMessage)}close(t,n){if(this.readyState!==e.CLOSED){if(this.readyState===e.CONNECTING){G(this,this._req,`WebSocket was closed before the connection was established`);return}if(this.readyState===e.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=e.CLOSING,this._sender.close(t,n,!this._isServer,e=>{e||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),Y(this)}}pause(){this.readyState===e.CONNECTING||this.readyState===e.CLOSED||(this._paused=!0,this._socket.pause())}ping(t,n,r){if(this.readyState===e.CONNECTING)throw Error(`WebSocket is not open: readyState 0 (CONNECTING)`);if(typeof t==`function`?(r=t,t=n=void 0):typeof n==`function`&&(r=n,n=void 0),typeof t==`number`&&(t=t.toString()),this.readyState!==e.OPEN){K(this,t,r);return}n===void 0&&(n=!this._isServer),this._sender.ping(t||D,n,r)}pong(t,n,r){if(this.readyState===e.CONNECTING)throw Error(`WebSocket is not open: readyState 0 (CONNECTING)`);if(typeof t==`function`?(r=t,t=n=void 0):typeof n==`function`&&(r=n,n=void 0),typeof t==`number`&&(t=t.toString()),this.readyState!==e.OPEN){K(this,t,r);return}n===void 0&&(n=!this._isServer),this._sender.pong(t||D,n,r)}resume(){this.readyState===e.CONNECTING||this.readyState===e.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(t,n,r){if(this.readyState===e.CONNECTING)throw Error(`WebSocket is not open: readyState 0 (CONNECTING)`);if(typeof n==`function`&&(r=n,n={}),typeof t==`number`&&(t=t.toString()),this.readyState!==e.OPEN){K(this,t,r);return}let i={binary:typeof t!=`string`,mask:!this._isServer,compress:!0,fin:!0,...n};this._extensions[x.extensionName]||(i.compress=!1),this._sender.send(t||D,i,r)}terminate(){if(this.readyState!==e.CLOSED){if(this.readyState===e.CONNECTING){G(this,this._req,`WebSocket was closed before the connection was established`);return}this._socket&&(this._readyState=e.CLOSING,this._socket.destroy())}}};Object.defineProperty(V,`CONNECTING`,{enumerable:!0,value:z.indexOf(`CONNECTING`)}),Object.defineProperty(V.prototype,`CONNECTING`,{enumerable:!0,value:z.indexOf(`CONNECTING`)}),Object.defineProperty(V,`OPEN`,{enumerable:!0,value:z.indexOf(`OPEN`)}),Object.defineProperty(V.prototype,`OPEN`,{enumerable:!0,value:z.indexOf(`OPEN`)}),Object.defineProperty(V,`CLOSING`,{enumerable:!0,value:z.indexOf(`CLOSING`)}),Object.defineProperty(V.prototype,`CLOSING`,{enumerable:!0,value:z.indexOf(`CLOSING`)}),Object.defineProperty(V,`CLOSED`,{enumerable:!0,value:z.indexOf(`CLOSED`)}),Object.defineProperty(V.prototype,`CLOSED`,{enumerable:!0,value:z.indexOf(`CLOSED`)}),[`binaryType`,`bufferedAmount`,`extensions`,`isPaused`,`protocol`,`readyState`,`url`].forEach(e=>{Object.defineProperty(V.prototype,e,{enumerable:!0})}),[`open`,`error`,`close`,`message`].forEach(e=>{Object.defineProperty(V.prototype,`on${e}`,{enumerable:!0,get(){for(let t of this.listeners(e))if(t[k])return t[A];return null},set(t){for(let t of this.listeners(e))if(t[k]){this.removeListener(e,t);break}typeof t==`function`&&this.addEventListener(e,t,{[k]:!0})}})}),V.prototype.addEventListener=ee,V.prototype.removeEventListener=te,n.exports=V;function H(e,t,n,r){let i={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:E,protocolVersion:R[1],maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...r,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:`GET`,host:void 0,path:void 0,port:void 0};if(e._autoPong=i.autoPong,e._closeTimeout=i.closeTimeout,!R.includes(i.protocolVersion))throw RangeError(`Unsupported protocol version: ${i.protocolVersion} (supported versions: ${R.join(`, `)})`);let a;if(t instanceof b)a=t;else try{a=new b(t)}catch{throw SyntaxError(`Invalid URL: ${t}`)}a.protocol===`http:`?a.protocol=`ws:`:a.protocol===`https:`&&(a.protocol=`wss:`),e._url=a.href;let o=a.protocol===`wss:`,s=a.protocol===`ws+unix:`,c;if(a.protocol!==`ws:`&&!o&&!s?c=`The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`:s&&!a.pathname?c=`The URL's pathname is empty`:a.hash&&(c=`The URL contains a fragment identifier`),c){let t=SyntaxError(c);if(e._redirects===0)throw t;U(e,t);return}let l=o?443:80,u=g(16).toString(`base64`),d=o?f.request:p.request,m=new Set,h;if(i.createConnection=i.createConnection||(o?ne:W),i.defaultPort=i.defaultPort||l,i.port=a.port||l,i.host=a.hostname.startsWith(`[`)?a.hostname.slice(1,-1):a.hostname,i.headers={...i.headers,"Sec-WebSocket-Version":i.protocolVersion,"Sec-WebSocket-Key":u,Connection:`Upgrade`,Upgrade:`websocket`},i.path=a.pathname+a.search,i.timeout=i.handshakeTimeout,i.perMessageDeflate&&(h=new x({...i.perMessageDeflate,isServer:!1,maxPayload:i.maxPayload}),i.headers[`Sec-WebSocket-Extensions`]=P({[x.extensionName]:h.offer()})),n.length){for(let e of n){if(typeof e!=`string`||!B.test(e)||m.has(e))throw SyntaxError(`An invalid or duplicated subprotocol was specified`);m.add(e)}i.headers[`Sec-WebSocket-Protocol`]=n.join(`,`)}if(i.origin&&(i.protocolVersion<13?i.headers[`Sec-WebSocket-Origin`]=i.origin:i.headers.Origin=i.origin),(a.username||a.password)&&(i.auth=`${a.username}:${a.password}`),s){let e=i.path.split(`:`);i.socketPath=e[0],i.path=e[1]}let v;if(i.followRedirects){if(e._redirects===0){e._originalIpc=s,e._originalSecure=o,e._originalHostOrSocketPath=s?i.socketPath:a.host;let t=r&&r.headers;if(r={...r,headers:{}},t)for(let[e,n]of Object.entries(t))r.headers[e.toLowerCase()]=n}else if(e.listenerCount(`redirect`)===0){let t=s?e._originalIpc?i.socketPath===e._originalHostOrSocketPath:!1:e._originalIpc?!1:a.host===e._originalHostOrSocketPath;(!t||e._originalSecure&&!o)&&(delete i.headers.authorization,delete i.headers.cookie,t||delete i.headers.host,i.auth=void 0)}i.auth&&!r.headers.authorization&&(r.headers.authorization=`Basic `+Buffer.from(i.auth).toString(`base64`)),v=e._req=d(i),e._redirects&&e.emit(`redirect`,e.url,v)}else v=e._req=d(i);i.timeout&&v.on(`timeout`,()=>{G(e,v,`Opening handshake has timed out`)}),v.on(`error`,t=>{v===null||v[L]||(v=e._req=null,U(e,t))}),v.on(`response`,a=>{let o=a.headers.location,s=a.statusCode;if(o&&i.followRedirects&&s>=300&&s<400){if(++e._redirects>i.maxRedirects){G(e,v,`Maximum redirects exceeded`);return}v.abort();let a;try{a=new b(o,t)}catch{U(e,SyntaxError(`Invalid URL: ${o}`));return}H(e,a,n,r)}else e.emit(`unexpected-response`,v,a)||G(e,v,`Unexpected server response: ${a.statusCode}`)}),v.on(`upgrade`,(t,n,r)=>{if(e.emit(`upgrade`,t),e.readyState!==V.CONNECTING)return;v=e._req=null;let a=t.headers.upgrade;if(a===void 0||a.toLowerCase()!==`websocket`){G(e,n,`Invalid Upgrade header`);return}let o=_(`sha1`).update(u+O).digest(`base64`);if(t.headers[`sec-websocket-accept`]!==o){G(e,n,`Invalid Sec-WebSocket-Accept header`);return}let s=t.headers[`sec-websocket-protocol`],c;if(s===void 0?m.size&&(c=`Server sent no subprotocol`):m.size?m.has(s)||(c=`Server sent an invalid subprotocol`):c=`Server sent a subprotocol but none was requested`,c){G(e,n,c);return}s&&(e._protocol=s);let l=t.headers[`sec-websocket-extensions`];if(l!==void 0){if(!h){G(e,n,`Server sent a Sec-WebSocket-Extensions header but no extension was requested`);return}let t;try{t=F(l)}catch{G(e,n,`Invalid Sec-WebSocket-Extensions header`);return}let r=Object.keys(t);if(r.length!==1||r[0]!==x.extensionName){G(e,n,`Server indicated an extension that was not requested`);return}try{h.accept(t[x.extensionName])}catch{G(e,n,`Invalid Sec-WebSocket-Extensions header`);return}e._extensions[x.extensionName]=h}e.setSocket(n,r,{allowSynchronousEvents:i.allowSynchronousEvents,generateMask:i.generateMask,maxPayload:i.maxPayload,skipUTF8Validation:i.skipUTF8Validation})}),i.finishRequest?i.finishRequest(v,e):v.end()}function U(e,t){e._readyState=V.CLOSING,e._errorEmitted=!0,e.emit(`error`,t),e.emitClose()}function W(e){return e.path=e.socketPath,m.connect(e)}function ne(e){return e.path=void 0,!e.servername&&e.servername!==``&&(e.servername=m.isIP(e.host)?``:e.host),h.connect(e)}function G(e,t,n){e._readyState=V.CLOSING;let r=Error(n);Error.captureStackTrace(r,G),t.setHeader?(t[L]=!0,t.abort(),t.socket&&!t.socket.destroyed&&t.socket.destroy(),process.nextTick(U,e,r)):(t.destroy(r),t.once(`error`,e.emit.bind(e,`error`)),t.once(`close`,e.emitClose.bind(e)))}function K(e,t,n){if(t){let n=w(t)?t.size:I(t).length;e._socket?e._sender._bufferedBytes+=n:e._bufferedAmount+=n}if(n){let t=Error(`WebSocket is not open: readyState ${e.readyState} (${z[e.readyState]})`);process.nextTick(n,t)}}function re(e,t){let n=this[M];n._closeFrameReceived=!0,n._closeMessage=t,n._closeCode=e,n._socket[M]!==void 0&&(n._socket.removeListener(`data`,Z),process.nextTick(J,n._socket),e===1005?n.close():n.close(e,t))}function ie(){let e=this[M];e.isPaused||e._socket.resume()}function ae(e){let t=this[M];t._socket[M]!==void 0&&(t._socket.removeListener(`data`,Z),process.nextTick(J,t._socket),t.close(e[j])),t._errorEmitted||(t._errorEmitted=!0,t.emit(`error`,e))}function q(){this[M].emitClose()}function oe(e,t){this[M].emit(`message`,e,t)}function se(e){let t=this[M];t._autoPong&&t.pong(e,!this._isServer,N),t.emit(`ping`,e)}function ce(e){this[M].emit(`pong`,e)}function J(e){e.resume()}function le(e){let t=this[M];t.readyState!==V.CLOSED&&(t.readyState===V.OPEN&&(t._readyState=V.CLOSING,Y(t)),this._socket.end(),t._errorEmitted||(t._errorEmitted=!0,t.emit(`error`,e)))}function Y(e){e._closeTimer=setTimeout(e._socket.destroy.bind(e._socket),e._closeTimeout)}function X(){let e=this[M];if(this.removeListener(`close`,X),this.removeListener(`data`,Z),this.removeListener(`end`,Q),e._readyState=V.CLOSING,!this._readableState.endEmitted&&!e._closeFrameReceived&&!e._receiver._writableState.errorEmitted&&this._readableState.length!==0){let t=this.read(this._readableState.length);e._receiver.write(t)}e._receiver.end(),this[M]=void 0,clearTimeout(e._closeTimer),e._receiver._writableState.finished||e._receiver._writableState.errorEmitted?e.emitClose():(e._receiver.on(`error`,q),e._receiver.on(`finish`,q))}function Z(e){this[M]._receiver.write(e)||this.pause()}function Q(){let e=this[M];e._readyState=V.CLOSING,e._receiver.end(),this.end()}function $(){let e=this[M];this.removeListener(`error`,$),this.on(`error`,N),e&&(e._readyState=V.CLOSING,this.destroy())}})),p=n(((t,n)=>{f();let{Duplex:r}=e(`stream`);function i(e){e.emit(`close`)}function a(){!this.destroyed&&this._writableState.finished&&this.destroy()}function o(e){this.removeListener(`error`,o),this.destroy(),this.listenerCount(`error`)===0&&this.emit(`error`,e)}function s(e,t){let n=!0,s=new r({...t,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return e.on(`message`,function(t,n){let r=!n&&s._readableState.objectMode?t.toString():t;s.push(r)||e.pause()}),e.once(`error`,function(e){s.destroyed||(n=!1,s.destroy(e))}),e.once(`close`,function(){s.destroyed||s.push(null)}),s._destroy=function(t,r){if(e.readyState===e.CLOSED){r(t),process.nextTick(i,s);return}let a=!1;e.once(`error`,function(e){a=!0,r(e)}),e.once(`close`,function(){a||r(t),process.nextTick(i,s)}),n&&e.terminate()},s._final=function(t){if(e.readyState===e.CONNECTING){e.once(`open`,function(){s._final(t)});return}e._socket!==null&&(e._socket._writableState.finished?(t(),s._readableState.endEmitted&&s.destroy()):(e._socket.once(`finish`,function(){t()}),e.close()))},s._read=function(){e.isPaused&&e.resume()},s._write=function(t,n,r){if(e.readyState===e.CONNECTING){e.once(`open`,function(){s._write(t,n,r)});return}e.send(t,r)},s.on(`end`,a),s.on(`error`,o),s}n.exports=s})),m=n(((e,t)=>{let{tokenChars:n}=s();function r(e){let t=new Set,r=-1,i=-1,a=0;for(;a<e.length;a++){let o=e.charCodeAt(a);if(i===-1&&n[o]===1)r===-1&&(r=a);else if(a!==0&&(o===32||o===9))i===-1&&r!==-1&&(i=a);else if(o===44){if(r===-1)throw SyntaxError(`Unexpected character at index ${a}`);i===-1&&(i=a);let n=e.slice(r,i);if(t.has(n))throw SyntaxError(`The "${n}" subprotocol is duplicated`);t.add(n),r=i=-1}else throw SyntaxError(`Unexpected character at index ${a}`)}if(r===-1||i!==-1)throw SyntaxError(`Unexpected end of input`);let o=e.slice(r,a);if(t.has(o))throw SyntaxError(`The "${o}" subprotocol is duplicated`);return t.add(o),t}t.exports={parse:r}})),h=n(((t,n)=>{let i=e(`events`),a=e(`http`),{Duplex:s}=e(`stream`),{createHash:c}=e(`crypto`),l=d(),u=o(),p=m(),h=f(),{CLOSE_TIMEOUT:g,GUID:_,kWebSocket:v}=r(),y=/^[+/0-9A-Za-z]{22}==$/;n.exports=class extends i{constructor(e,t){if(super(),e={allowSynchronousEvents:!0,autoPong:!0,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:g,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:h,...e},e.port==null&&!e.server&&!e.noServer||e.port!=null&&(e.server||e.noServer)||e.server&&e.noServer)throw TypeError(`One and only one of the "port", "server", or "noServer" options must be specified`);if(e.port==null?e.server&&(this._server=e.server):(this._server=a.createServer((e,t)=>{let n=a.STATUS_CODES[426];t.writeHead(426,{"Content-Length":n.length,"Content-Type":`text/plain`}),t.end(n)}),this._server.listen(e.port,e.host,e.backlog,t)),this._server){let e=this.emit.bind(this,`connection`);this._removeListeners=b(this._server,{listening:this.emit.bind(this,`listening`),error:this.emit.bind(this,`error`),upgrade:(t,n,r)=>{this.handleUpgrade(t,n,r,e)}})}e.perMessageDeflate===!0&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=e,this._state=0}address(){if(this.options.noServer)throw Error(`The server is operating in "noServer" mode`);return this._server?this._server.address():null}close(e){if(this._state===2){e&&this.once(`close`,()=>{e(Error(`The server is not running`))}),process.nextTick(x,this);return}if(e&&this.once(`close`,e),this._state!==1)if(this._state=1,this.options.noServer||this.options.server)this._server&&(this._removeListeners(),this._removeListeners=this._server=null),this.clients&&this.clients.size?this._shouldEmitClose=!0:process.nextTick(x,this);else{let e=this._server;this._removeListeners(),this._removeListeners=this._server=null,e.close(()=>{x(this)})}}shouldHandle(e){if(this.options.path){let t=e.url.indexOf(`?`);if((t===-1?e.url:e.url.slice(0,t))!==this.options.path)return!1}return!0}handleUpgrade(e,t,n,r){t.on(`error`,S);let i=e.headers[`sec-websocket-key`],a=e.headers.upgrade,o=+e.headers[`sec-websocket-version`];if(e.method!==`GET`){w(this,e,t,405,`Invalid HTTP method`);return}if(a===void 0||a.toLowerCase()!==`websocket`){w(this,e,t,400,`Invalid Upgrade header`);return}if(i===void 0||!y.test(i)){w(this,e,t,400,`Missing or invalid Sec-WebSocket-Key header`);return}if(o!==13&&o!==8){w(this,e,t,400,`Missing or invalid Sec-WebSocket-Version header`,{"Sec-WebSocket-Version":`13, 8`});return}if(!this.shouldHandle(e)){C(t,400);return}let s=e.headers[`sec-websocket-protocol`],c=new Set;if(s!==void 0)try{c=p.parse(s)}catch{w(this,e,t,400,`Invalid Sec-WebSocket-Protocol header`);return}let d=e.headers[`sec-websocket-extensions`],f={};if(this.options.perMessageDeflate&&d!==void 0){let n=new u({...this.options.perMessageDeflate,isServer:!0,maxPayload:this.options.maxPayload});try{let e=l.parse(d);e[u.extensionName]&&(n.accept(e[u.extensionName]),f[u.extensionName]=n)}catch{w(this,e,t,400,`Invalid or unacceptable Sec-WebSocket-Extensions header`);return}}if(this.options.verifyClient){let a={origin:e.headers[`${o===8?`sec-websocket-origin`:`origin`}`],secure:!!(e.socket.authorized||e.socket.encrypted),req:e};if(this.options.verifyClient.length===2){this.options.verifyClient(a,(a,o,s,l)=>{if(!a)return C(t,o||401,s,l);this.completeUpgrade(f,i,c,e,t,n,r)});return}if(!this.options.verifyClient(a))return C(t,401)}this.completeUpgrade(f,i,c,e,t,n,r)}completeUpgrade(e,t,n,r,i,a,o){if(!i.readable||!i.writable)return i.destroy();if(i[v])throw Error(`server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration`);if(this._state>0)return C(i,503);let s=[`HTTP/1.1 101 Switching Protocols`,`Upgrade: websocket`,`Connection: Upgrade`,`Sec-WebSocket-Accept: ${c(`sha1`).update(t+_).digest(`base64`)}`],d=new this.options.WebSocket(null,void 0,this.options);if(n.size){let e=this.options.handleProtocols?this.options.handleProtocols(n,r):n.values().next().value;e&&(s.push(`Sec-WebSocket-Protocol: ${e}`),d._protocol=e)}if(e[u.extensionName]){let t=e[u.extensionName].params,n=l.format({[u.extensionName]:[t]});s.push(`Sec-WebSocket-Extensions: ${n}`),d._extensions=e}this.emit(`headers`,s,r),i.write(s.concat(`\r
2
+ `).join(`\r
3
+ `)),i.removeListener(`error`,S),d.setSocket(i,a,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(d),d.on(`close`,()=>{this.clients.delete(d),this._shouldEmitClose&&!this.clients.size&&process.nextTick(x,this)})),o(d,r)}};function b(e,t){for(let n of Object.keys(t))e.on(n,t[n]);return function(){for(let n of Object.keys(t))e.removeListener(n,t[n])}}function x(e){e._state=2,e.emit(`close`)}function S(){this.destroy()}function C(e,t,n,r){n||=a.STATUS_CODES[t],r={Connection:`close`,"Content-Type":`text/html`,"Content-Length":Buffer.byteLength(n),...r},e.once(`finish`,e.destroy),e.end(`HTTP/1.1 ${t} ${a.STATUS_CODES[t]}\r\n`+Object.keys(r).map(e=>`${e}: ${r[e]}`).join(`\r
4
+ `)+`\r
5
+ \r
6
+ `+n)}function w(e,t,n,r,i,a){if(e.listenerCount(`wsClientError`)){let r=Error(i);Error.captureStackTrace(r,w),e.emit(`wsClientError`,r,n,t)}else C(n,r,i,a)}}));p(),d(),o(),c(),l(),m(),f();var g=t(h(),1).default;export{g as WebSocketServer};
7
+ //# sourceMappingURL=wrapper-BTT6637Z.mjs.map
@@ -0,0 +1 @@
1
+ import"./chunk-YNYSPYQ5-BpP11HXS.mjs";import"./chunk-DXB73IDG-C774okS0.mjs";import"./chunk-5QMZ5MUS-DWTkM0vM.mjs";import"./chunk-24IMIIXA-Bz7rlZT3.mjs";import"./chunk-SYMJJMQ4-CWTh95-4.mjs";import"./chunk-7TSDKFEO-a-GUGBTu.mjs";import"./chunk-BBXLRYSX-DURjrblE.mjs";import"./chunk-F55TLFGB-DqkrAMO5.mjs";import{n as e}from"./chunk-UNYNJIFU-DwPQMz0F.mjs";export{e as xanCommand};
@@ -0,0 +1 @@
1
+ import"./chunk-DXB73IDG-C774okS0.mjs";import"./chunk-SYMJJMQ4-CWTh95-4.mjs";import{c as e}from"./chunk-F55TLFGB-DqkrAMO5.mjs";export{e as cmdView};
@@ -0,0 +1 @@
1
+ import"./chunk-DXB73IDG-C774okS0.mjs";import{n as e}from"./chunk-TOMNU26N-BcdbBQ2p.mjs";export{e as xargsCommand};
@@ -0,0 +1 @@
1
+ import"./chunk-YNYSPYQ5-BpP11HXS.mjs";import"./chunk-DXB73IDG-C774okS0.mjs";import"./chunk-5QMZ5MUS-DWTkM0vM.mjs";import"./chunk-24IMIIXA-Bz7rlZT3.mjs";import"./chunk-SYMJJMQ4-CWTh95-4.mjs";import"./chunk-7TSDKFEO-a-GUGBTu.mjs";import"./chunk-BBXLRYSX-DURjrblE.mjs";import{t as e}from"./chunk-XORM457F-CRToN1RQ.mjs";export{e as yqCommand};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inkeep/open-knowledge",
3
- "version": "0.1.1",
3
+ "version": "0.3.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "exports": {
@@ -10,40 +10,54 @@
10
10
  }
11
11
  },
12
12
  "bin": {
13
- "open-knowledge": "./dist/cli.mjs"
13
+ "open-knowledge": "./dist/cli.mjs",
14
+ "ok": "./dist/cli.mjs"
15
+ },
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "git+https://github.com/inkeep/open-knowledge.git",
19
+ "directory": "packages/cli"
14
20
  },
15
21
  "files": [
16
22
  "dist",
23
+ "scripts",
17
24
  "!dist/**/*.map"
18
25
  ],
19
26
  "engines": {
20
- "node": ">=22"
27
+ "node": ">=24"
21
28
  },
22
29
  "publishConfig": {
23
30
  "access": "public"
24
31
  },
25
32
  "scripts": {
26
33
  "build:cli": "tsdown",
27
- "build:assets": "cp -r ../app/dist dist/public",
34
+ "build:app": "cp -r ../app/dist dist/public",
35
+ "build:skill-asset": "mkdir -p dist/assets/skills/open-knowledge && cp ../server/assets/skills/open-knowledge/SKILL.md dist/assets/skills/open-knowledge/SKILL.md",
36
+ "build:notices": "mkdir -p dist && cp ../../THIRD_PARTY_NOTICES.md dist/THIRD_PARTY_NOTICES.md",
37
+ "build:assets": "bun run build:app && bun run build:skill-asset && bun run build:notices",
28
38
  "build": "bun run build:cli && bun run build:assets",
29
- "test": "bun test",
39
+ "postinstall": "node scripts/postinstall.mjs",
40
+ "test": "bun --conditions=development test",
30
41
  "typecheck": "tsc --noEmit",
31
- "prepublishOnly": "bun run build && bun run test"
42
+ "prepublishOnly": "bash ../../scripts/check-notices-clean.sh && bun run build && bun run test"
32
43
  },
33
44
  "dependencies": {
34
- "@clack/prompts": "^1.2.0",
35
- "@hocuspocus/provider": "4.0.0-rc.1",
45
+ "@inquirer/checkbox": "^5.0.11",
46
+ "@inquirer/password": "^5.0.11",
36
47
  "@modelcontextprotocol/sdk": "^1.28.0",
37
- "chokidar": "^5.0.0",
48
+ "@napi-rs/keyring": "^1.2.0",
49
+ "@octokit/auth-oauth-device": "^8.0.3",
50
+ "@octokit/request": "^10.0.8",
51
+ "@octokit/rest": "^22.0.1",
38
52
  "cli-boxes": "^4.0.1",
39
53
  "commander": "^14.0.0",
40
54
  "just-bash": "^2.14.1",
41
55
  "picocolors": "^1.1.1",
42
56
  "picomatch": "^4.0.4",
43
57
  "shell-quote": "^1.8.3",
44
- "simple-git": "^3.35.2",
58
+ "simple-git": "^3.36.0",
45
59
  "sirv": "^3.0.1",
46
- "ws": "^8.20.0",
60
+ "smol-toml": "^1.6.1",
47
61
  "yaml": "^2.7.1",
48
62
  "zod": "^4.3.6"
49
63
  },
@@ -51,13 +65,12 @@
51
65
  "@parcel/watcher": "^2.5.6"
52
66
  },
53
67
  "devDependencies": {
68
+ "@inkeep/open-knowledge-app": "workspace:*",
54
69
  "@inkeep/open-knowledge-core": "workspace:*",
55
70
  "@inkeep/open-knowledge-server": "workspace:*",
56
- "open-knowledge-app": "workspace:*",
57
- "@types/node": "^22.16.0",
71
+ "@types/node": "^24.7.0",
58
72
  "@types/picomatch": "^4.0.3",
59
73
  "@types/shell-quote": "^1.7.5",
60
- "@types/ws": "^8.18.1",
61
74
  "tsdown": "^0.21.7",
62
75
  "typescript": "^5.9.3"
63
76
  }
@@ -0,0 +1,53 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * `@inkeep/open-knowledge` postinstall hook.
4
+ *
5
+ * Fires `installUserSkill()` once per `npm install` / `bun install` / `npx`
6
+ * cache population. Non-fatal: any failure is swallowed so the host install
7
+ * never blocks.
8
+ *
9
+ * Spec: 2026-04-22-mcp-guidance-no-project-pollution (FR12 / D20).
10
+ */
11
+
12
+ async function run() {
13
+ let installUserSkill;
14
+ try {
15
+ // Relative import resolves inside the published npm tarball at
16
+ // <pkg-root>/dist/index.mjs — the tsdown-bundled entry that re-exports
17
+ // `installUserSkill` from @inkeep/open-knowledge-server.
18
+ const mod = await import('../dist/index.mjs');
19
+ installUserSkill = mod.installUserSkill;
20
+ } catch {
21
+ // Dev-install scenarios (e.g. running `npm install` against a tarball
22
+ // where dist/ is missing, `--ignore-scripts`, or source-only installs)
23
+ // never block — fall through to exit 0.
24
+ return;
25
+ }
26
+
27
+ if (typeof installUserSkill !== 'function') return;
28
+
29
+ let result;
30
+ try {
31
+ result = await installUserSkill();
32
+ } catch {
33
+ // installUserSkill is documented as never-throws; this catch is pure
34
+ // defensive hardening so a broken build never blocks `npm install`.
35
+ return;
36
+ }
37
+
38
+ if (result === 'installed') {
39
+ process.stdout.write('[open-knowledge] Agent Skill installed to detected agent hosts.\n');
40
+ } else if (result === 'failed') {
41
+ process.stderr.write(
42
+ '[open-knowledge] Agent Skill auto-install failed; run manually: ' +
43
+ "npx skills@~1.5.0 add <bundled-path> --agent '*' -g -y --copy\n",
44
+ );
45
+ }
46
+ // result === 'skip-current' → silent.
47
+ }
48
+
49
+ // Fire-and-forget. Always exit 0 regardless of outcome per SPEC D20 —
50
+ // `npm install` must never fail because skill-install hit an edge case.
51
+ run().finally(() => {
52
+ process.exit(0);
53
+ });
@@ -0,0 +1,101 @@
1
+ /**
2
+ * End-to-end probe: buildExecResult through the full pipeline
3
+ * (parseCommand → just-bash → extractPaths → enrichPath → dual-channel
4
+ * response). Hand-runnable — not part of the test suite.
5
+ *
6
+ * Run via: `bun run packages/cli/scripts/probe-exec.ts`
7
+ */
8
+ import { mkdirSync, rmSync, writeFileSync } from 'node:fs';
9
+ import { tmpdir } from 'node:os';
10
+ import { resolve } from 'node:path';
11
+ import { setTimeout as wait } from 'node:timers/promises';
12
+ import { commitWip, initShadowRepo, type WriterIdentity } from '@inkeep/open-knowledge-server';
13
+ import simpleGit from 'simple-git';
14
+ import { buildExecResult, type ExecStructuredResult } from '../src/mcp/tools/exec.ts';
15
+
16
+ const root = resolve(tmpdir(), `ok-exec-probe-${Date.now()}`);
17
+ mkdirSync(root, { recursive: true });
18
+
19
+ async function main(): Promise<void> {
20
+ const git = simpleGit(root);
21
+ await git.init();
22
+ await git.raw('config', 'user.name', 'Probe');
23
+ await git.raw('config', 'user.email', 'probe@t.test');
24
+ writeFileSync(resolve(root, 'README.md'), '# probe\n');
25
+ await git.add('README.md');
26
+ await git.commit('init');
27
+
28
+ const contentDir = resolve(root, 'articles');
29
+ mkdirSync(contentDir, { recursive: true });
30
+ writeFileSync(
31
+ resolve(contentDir, 'auth.md'),
32
+ '---\ntitle: Auth\ndescription: OAuth 2.0 flow\ntags:\n - auth\n - oauth\n---\n\n# Auth\n\nOAuth is...\n',
33
+ );
34
+ writeFileSync(
35
+ resolve(contentDir, 'sso.md'),
36
+ '---\ntitle: SSO\ntags:\n - auth\n---\n\n# SSO\n\noauth provider...\n',
37
+ );
38
+
39
+ // Shadow-repo activity
40
+ const shadow = await initShadowRepo(root);
41
+ const branch = (await simpleGit(root).revparse(['--abbrev-ref', 'HEAD'])).trim();
42
+ const agent: WriterIdentity = { id: 'agent-claude-7x', name: 'Claude (Tim)', email: 'a@ok.test' };
43
+ const human: WriterIdentity = { id: 'human-tim', name: 'Tim Cardona', email: 't@ok.test' };
44
+ await commitWip(shadow, human, contentDir, 'initial auth doc', branch);
45
+ await wait(1100);
46
+ writeFileSync(resolve(contentDir, 'auth.md'), '# Auth v2\n\noauth rewrite.\n');
47
+ await commitWip(shadow, agent, contentDir, 'rewrite §3 oauth examples', branch);
48
+
49
+ const deps = { projectDir: root, serverUrl: undefined as string | undefined };
50
+
51
+ const runs: Array<{ label: string; cmd: string }> = [
52
+ { label: 'cat single file (rich enrichment)', cmd: 'cat articles/auth.md' },
53
+ { label: 'ls directory (slim enrichment each)', cmd: 'ls articles/' },
54
+ { label: 'grep | head pipe', cmd: 'grep -rn oauth articles/ | head -5' },
55
+ { label: 'denied: awk (unknown_command)', cmd: 'awk BEGIN{print}' },
56
+ { label: 'denied: redirection (write_blocked)', cmd: 'cat articles/auth.md > out.txt' },
57
+ { label: 'denied: subshell (shell_construct_blocked)', cmd: 'cat `ls`' },
58
+ ];
59
+
60
+ for (const { label, cmd } of runs) {
61
+ console.log('\n═══════════════════════════════════════════════════════════');
62
+ console.log(` ${label}`);
63
+ console.log(` exec(${JSON.stringify(cmd)})`);
64
+ console.log('═══════════════════════════════════════════════════════════');
65
+ const result = (await buildExecResult({ command: cmd }, deps)) as {
66
+ content: Array<{ text: string }>;
67
+ structuredContent: ExecStructuredResult;
68
+ isError?: boolean;
69
+ };
70
+ console.log(result.content[0].text.slice(0, 900));
71
+ if (result.structuredContent.error) {
72
+ console.log(`\n [error.category] ${result.structuredContent.error.category}`);
73
+ } else {
74
+ console.log(`\n [enrichedPaths] ${result.structuredContent.enrichedPaths.length} path(s)`);
75
+ for (const m of result.structuredContent.enrichedPaths) {
76
+ if ((m as { type?: string }).type === 'directory') {
77
+ const d = m as {
78
+ path: string;
79
+ recursiveMdCount: number;
80
+ childDirCount: number;
81
+ };
82
+ console.log(
83
+ ` - ${d.path}/ (directory): ${d.recursiveMdCount} md, ${d.childDirCount} subdirs`,
84
+ );
85
+ } else {
86
+ const f = m as { path: string; title?: string; historySource: unknown };
87
+ const rich = f.historySource !== null ? ' (rich)' : '';
88
+ console.log(` - ${f.path}${rich}: ${f.title ?? '(no title)'}`);
89
+ }
90
+ }
91
+ }
92
+ }
93
+
94
+ console.log('\n═══════════════════════════════════════════════════════════');
95
+ }
96
+
97
+ try {
98
+ await main();
99
+ } finally {
100
+ rmSync(root, { recursive: true, force: true });
101
+ }
@@ -0,0 +1,112 @@
1
+ /**
2
+ * End-to-end probe: buildReadResult flowing through the shared enrichPath
3
+ * → readShadowLog → shadow-repo bare git reads. Confirms agent/human
4
+ * attribution lands in the rendered output (FR15/D12/D13/R3).
5
+ *
6
+ * Run via: `bun run packages/cli/scripts/probe-read-document.ts`
7
+ * Not part of the test suite — a hand-runnable probe.
8
+ */
9
+ import { mkdirSync, rmSync, writeFileSync } from 'node:fs';
10
+ import { tmpdir } from 'node:os';
11
+ import { resolve } from 'node:path';
12
+ import { setTimeout as wait } from 'node:timers/promises';
13
+ import {
14
+ commitUpstreamImport,
15
+ commitWip,
16
+ initShadowRepo,
17
+ type WriterIdentity,
18
+ } from '@inkeep/open-knowledge-server';
19
+ import simpleGit from 'simple-git';
20
+ import { buildReadResult } from '../src/mcp/tools/read-document.ts';
21
+
22
+ const root = resolve(tmpdir(), `ok-probe-${Date.now()}`);
23
+ mkdirSync(root, { recursive: true });
24
+
25
+ async function main(): Promise<void> {
26
+ // 1. Set up a real git-backed project
27
+ const git = simpleGit(root);
28
+ await git.init();
29
+ await git.raw('config', 'user.name', 'Probe');
30
+ await git.raw('config', 'user.email', 'probe@t.test');
31
+ writeFileSync(resolve(root, 'README.md'), '# probe\n');
32
+ await git.add('README.md');
33
+ await git.commit('init');
34
+
35
+ const contentDir = resolve(root, 'content');
36
+ mkdirSync(contentDir, { recursive: true });
37
+ writeFileSync(
38
+ resolve(contentDir, 'auth.md'),
39
+ `---
40
+ title: Auth
41
+ description: OAuth 2.0 flow for SSO
42
+ tags:
43
+ - auth
44
+ - oauth
45
+ ---
46
+
47
+ # Auth
48
+
49
+ OAuth is a protocol that...
50
+ `,
51
+ );
52
+
53
+ // 2. Initialize the shadow repo and record some activity
54
+ const shadow = await initShadowRepo(root);
55
+ const branch = (await simpleGit(root).revparse(['--abbrev-ref', 'HEAD'])).trim();
56
+
57
+ const agent: WriterIdentity = {
58
+ id: 'agent-claude-code-7x',
59
+ name: 'Claude Code (Tim)',
60
+ email: 'agent@ok.test',
61
+ };
62
+ const human: WriterIdentity = {
63
+ id: 'human-tim',
64
+ name: 'Tim Cardona',
65
+ email: 'tim@ok.test',
66
+ };
67
+
68
+ await commitWip(shadow, human, contentDir, 'initial draft of auth doc', branch);
69
+ await wait(1100);
70
+ writeFileSync(resolve(contentDir, 'auth.md'), '# Auth v2\n\nRewrote §3 oauth examples.\n');
71
+ await commitWip(shadow, agent, contentDir, 'rewrite §3 oauth examples', branch);
72
+ await wait(1100);
73
+ writeFileSync(resolve(contentDir, 'auth.md'), '# Auth v3\n\nFixed typo.\n');
74
+ await commitWip(shadow, human, contentDir, 'typo fix', branch);
75
+ await wait(1100);
76
+ // And a fake "upstream" git pull import
77
+ const oldHead = 'a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0';
78
+ const newHead = 'f0e1d2c3b4a5f6e7d8c9b0a1f2e3d4c5b6a7f8e9';
79
+ await commitUpstreamImport(shadow, contentDir, oldHead, newHead, branch);
80
+
81
+ // 3. Call buildReadResult — the actual MCP-tool body, end to end
82
+ const output = await buildReadResult(
83
+ { path: 'content/auth.md' },
84
+ {
85
+ projectDir: root,
86
+ serverUrl: undefined, // disk-only, no Hocuspocus → backlinkCount stays null
87
+ config: {
88
+ mcp: {
89
+ tools: {
90
+ read_document: { historyDepth: 5 },
91
+ // biome-ignore lint/suspicious/noExplicitAny: probe-only cast; full config not needed
92
+ } as any,
93
+ // biome-ignore lint/suspicious/noExplicitAny: probe-only cast
94
+ } as any,
95
+ // biome-ignore lint/suspicious/noExplicitAny: probe-only cast
96
+ } as any,
97
+ },
98
+ );
99
+
100
+ console.log('═══════════════════════════════════════════════════════════');
101
+ console.log(' end-to-end probe: buildReadResult via shadow-repo');
102
+ console.log('═══════════════════════════════════════════════════════════');
103
+ console.log(output);
104
+ console.log('═══════════════════════════════════════════════════════════');
105
+ console.log(` project root: ${root}`);
106
+ }
107
+
108
+ try {
109
+ await main();
110
+ } finally {
111
+ rmSync(root, { recursive: true, force: true });
112
+ }
@@ -1,3 +0,0 @@
1
- import{a as e,i as t,n,t as r}from"./colors-DUgdVug3.mjs";import i from"cli-boxes";const a=i.round;function o(i){let o=[],s=`${i.name} v${i.version}`;o.push({plain:s,colored:r(s)}),o.push({plain:``,colored:``});let c=i.apiUrl?`Editor: `:`Local: `;if(o.push({plain:`${c}${i.localUrl}`,colored:`${c}${e(t(i.localUrl),i.localUrl)}`}),i.apiUrl){let t=`API: `;o.push({plain:`${t}${i.apiUrl}`,colored:`${t}${n(e(i.apiUrl,i.apiUrl))}`})}if(i.networkUrl){let n=`Network: `;o.push({plain:`${n}${i.networkUrl}`,colored:`${n}${e(t(i.networkUrl),i.networkUrl)}`})}o.push({plain:``,colored:``});let l=`Press Ctrl+C to stop`;o.push({plain:l,colored:n(l)});let u=Math.max(...o.map(e=>e.plain.length)),d=u+4,f=` ${a.topLeft}${a.top.repeat(d)}${a.topRight}`,p=` ${a.bottomLeft}${a.bottom.repeat(d)}${a.bottomRight}`;return[``,f,...o.map(e=>{let t=u-e.plain.length;return` ${a.left}${` `.repeat(2)}${e.colored}${` `.repeat(t+2)}${a.right}`}),p,``].join(`
2
- `)}export{o as renderBanner};
3
- //# sourceMappingURL=banner-D0kciHvM.mjs.map
@@ -1 +0,0 @@
1
- import{i as e,n as t,o as n,r}from"./colors-DUgdVug3.mjs";export{t as dim,r as error,e as info,n as warning};
@@ -1,2 +0,0 @@
1
- import e from"picocolors";const t=t=>e.red(t),n=t=>e.yellow(t),r=t=>e.cyan(t),i=t=>e.gray(t),a=t=>e.bold(t);function o(t,n){return e.isColorSupported?`\u001B]8;;${n}\u0007${t}\u001B]8;;\u0007`:t}export{o as a,r as i,i as n,n as o,t as r,a as t};
2
- //# sourceMappingURL=colors-DUgdVug3.mjs.map
@@ -1,2 +0,0 @@
1
- var e=`0.1.1`;const t=`.open-knowledge`,n=`AGENTS.md`,r=`config.yml`,i=`cache`,a=e,o=`open-knowledge`;export{t as a,o as i,i as n,a as o,r,n as t};
2
- //# sourceMappingURL=constants-CTaXJDQW.mjs.map